From 1e9c2da386df224b5c87f324a3bbf76f0d5259e1 Mon Sep 17 00:00:00 2001 From: misode Date: Mon, 8 Nov 2021 19:46:15 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20=20@=20b15f1?= =?UTF-8?q?87ccc27a7937c6c906074d4811b7b4febd2=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 404.html | 4 +-- advancement/index.html | 4 +-- assets/blockstate/index.html | 4 +-- assets/index.31efb81f.js | 2 -- assets/index.31efb81f.js.map | 1 - assets/index.fcc7d815.js | 2 ++ assets/index.fcc7d815.js.map | 1 + assets/index.html | 4 +-- assets/model/index.html | 4 +-- assets/vendor.58fc945f.js | 23 ----------------- assets/vendor.58fc945f.js.map | 1 - assets/vendor.f42aafe4.js | 37 +++++++++++++++++++++++++++ assets/vendor.f42aafe4.js.map | 1 + changelog/index.html | 4 +-- dimension-type/index.html | 4 +-- dimension/index.html | 4 +-- index.html | 4 +-- item-modifier/index.html | 4 +-- loot-table/index.html | 4 +-- predicate/index.html | 4 +-- recipe/index.html | 4 +-- sounds/index.html | 4 +-- world/index.html | 4 +-- worldgen/biome/index.html | 4 +-- worldgen/carver/index.html | 4 +-- worldgen/feature/index.html | 4 +-- worldgen/index.html | 4 +-- worldgen/noise-settings/index.html | 4 +-- worldgen/noise/index.html | 4 +-- worldgen/processor-list/index.html | 4 +-- worldgen/structure-feature/index.html | 4 +-- worldgen/surface-builder/index.html | 4 +-- worldgen/template-pool/index.html | 4 +-- 33 files changed, 91 insertions(+), 77 deletions(-) delete mode 100644 assets/index.31efb81f.js delete mode 100644 assets/index.31efb81f.js.map create mode 100644 assets/index.fcc7d815.js create mode 100644 assets/index.fcc7d815.js.map delete mode 100644 assets/vendor.58fc945f.js delete mode 100644 assets/vendor.58fc945f.js.map create mode 100644 assets/vendor.f42aafe4.js create mode 100644 assets/vendor.f42aafe4.js.map diff --git a/404.html b/404.html index 78583015..507211a8 100644 --- a/404.html +++ b/404.html @@ -20,8 +20,8 @@ 404 - - + + diff --git a/advancement/index.html b/advancement/index.html index 63ff5bfb..e86684f3 100644 --- a/advancement/index.html +++ b/advancement/index.html @@ -20,8 +20,8 @@ Advancement Generator Minecraft 1.16, 1.17, 1.18 - - + + diff --git a/assets/blockstate/index.html b/assets/blockstate/index.html index 23a0cf4f..e0828ace 100644 --- a/assets/blockstate/index.html +++ b/assets/blockstate/index.html @@ -20,8 +20,8 @@ Blockstate Generator Minecraft 1.18 - - + + diff --git a/assets/index.31efb81f.js b/assets/index.31efb81f.js deleted file mode 100644 index 22d45b1a..00000000 --- a/assets/index.31efb81f.js +++ /dev/null @@ -1,2 +0,0 @@ -var e=Object.defineProperty,t=Object.defineProperties,n=Object.getOwnPropertyDescriptors,o=Object.getOwnPropertySymbols,a=Object.prototype.hasOwnProperty,r=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={}))a.call(t,n)&&i(e,n,t[n]);if(o)for(var n of o(t))r.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 m,r as h,b as p,j as f,c as g,d as v,e as _,f as w,g as y,m as b,h as x,L as k,G as C,V as A,O as M,i as z,w as j,Z as V,k as $,z as E,T as I,E as O,C as L,n as P,A as S,o as D,p as N,q as T,t as B,u as H,v as R,x as F,B as J,D as W,N as G,R as U}from"./vendor.58fc945f.js";var Y,Z=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","latest":"1.15.2","refs":{"mcdata_master":"13355f7","mcassets":"1.15.2"}},{"id":"1.16","latest":"1.16.5","refs":{"mcdata_master":"1.16.4","mcassets":"1.16.5","vanilla_datapack_data":"1.16.4-data","vanilla_datapack_summary":"1.16.4-summary"}},{"id":"1.17","latest":"1.17.1","refs":{"mcdata_master":"1.17.1","mcassets":"1.17.1","vanilla_datapack_data":"1.17.1-data","vanilla_datapack_summary":"1.17.1-summary"}},{"id":"1.18","refs":{"mcdata_master":"master","mcassets":"21w44a","vanilla_datapack_data":"data","vanilla_datapack_summary":"summary"},"dynamic":true}],"generators":[{"id":"loot_table","url":"loot-table","path":"loot_tables","schema":"loot_table","maxVersion":"1.17"},{"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/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","minVersion":"1.18"},{"id":"model","url":"assets/model","path":"models","category":"assets","schema":"model","minVersion":"1.18"}],"registries":[{"id":"advancement","dynamic":true},{"id":"attribute","minVersion":"1.16"},{"id":"block"},{"id":"block_definition","path":"blockstates","asset":true},{"id":"block_predicate_type","minVersion":"1.18"},{"id":"dimension","dynamic":true},{"id":"dimension_type","dynamic":true},{"id":"enchantment"},{"id":"entity_type"},{"id":"fluid"},{"id":"function","dynamic":true},{"id":"float_provider_type","minVersion":"1.17"},{"id":"item"},{"id":"int_provider_type","minVersion":"1.17"},{"id":"height_provider_type","minVersion":"1.17"},{"id":"loot_condition_type","minVersion":"1.16"},{"id":"loot_condition_type","minVersion":"1.16"},{"id":"loot_function_type","minVersion":"1.16"},{"id":"loot_nbt_provider_type","minVersion":"1.17"},{"id":"loot_number_provider_type","minVersion":"1.17"},{"id":"loot_pool_entry_type","minVersion":"1.16"},{"id":"loot_score_provider_type","minVersion":"1.17"},{"id":"loot_table","dynamic":true},{"id":"mob_effect"},{"id":"model","path":"models","asset":true},{"id":"pos_rule_test","minVersion":"1.16"},{"id":"potion","minVersion":"1.15"},{"id":"predicate","dynamic":true},{"id":"recipe","dynamic":true},{"id":"recipe_serializer"},{"id":"rule_test","minVersion":"1.16"},{"id":"sound_event"},{"id":"stat_type"},{"id":"structure","dynamic":true},{"id":"tag/block","dynamic":true},{"id":"tag/entity_type","dynamic":true},{"id":"tag/fluid","dynamic":true},{"id":"tag/function","dynamic":true},{"id":"tag/item","dynamic":true},{"id":"texture","path":"textures","asset":true},{"id":"worldgen/biome","dynamic":true},{"id":"worldgen/block_state_provider_type","minVersion":"1.16"},{"id":"worldgen/block_placer_type","minVersion":"1.16","maxVersion":"1.17"},{"id":"worldgen/biome_source","minVersion":"1.16"},{"id":"worldgen/carver","minVersion":"1.16"},{"id":"worldgen/chunk_generator","minVersion":"1.16"},{"id":"worldgen/configured_carver","minVersion":"1.16","dynamic":true},{"id":"worldgen/configured_decorator","minVersion":"1.16","dynamic":true},{"id":"worldgen/configured_feature","minVersion":"1.16","dynamic":true},{"id":"worldgen/configured_structure_feature","minVersion":"1.16","dynamic":true},{"id":"worldgen/configured_surface_builder","minVersion":"1.16","dynamic":true},{"id":"worldgen/decorator","minVersion":"1.16"},{"id":"worldgen/feature","minVersion":"1.16"},{"id":"worldgen/feature_size_type","minVersion":"1.16"},{"id":"worldgen/foliage_placer_type","minVersion":"1.16"},{"id":"worldgen/material_condition","minVersion":"1.18"},{"id":"worldgen/material_rule","minVersion":"1.18"},{"id":"worldgen/noise","minVersion":"1.18","dynamic":true},{"id":"worldgen/noise_settings","minVersion":"1.16","dynamic":true},{"id":"worldgen/processor_list","minVersion":"1.16","dynamic":true},{"id":"worldgen/structure_feature","minVersion":"1.16"},{"id":"worldgen/structure_pool_element","minVersion":"1.16"},{"id":"worldgen/structure_processor","minVersion":"1.16"},{"id":"worldgen/surface_builder","minVersion":"1.16","maxVersion":"1.17"},{"id":"worldgen/template_pool","minVersion":"1.16","dynamic":true},{"id":"worldgen/tree_decorator_type","minVersion":"1.16"},{"id":"worldgen/trunk_placer_type","minVersion":"1.16"},{"id":"biome","maxVersion":"1.15"},{"id":"worldgen/biome","minVersion":"1.16","path":"processed/reports/biomes"}]}');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 K({icon:e,label:t,active:n,class:o,tooltip:a,tooltipLoc:r,onClick:i}){return d("div",{class:`btn${n?" active":""}${o?` ${o}`:""}${a?` tooltipped tip-${null!=r?r:"sw"}`:""}`,onClick:i,"aria-label":a},e&&oe[e],t&&d("span",null,t))}function X({icon:e,label:t,large:n,doSelect:o,value:a,placeholder:r,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&&oe[e],t&&d("span",null,t),d("input",{ref:l,type:"text",value:a,onChange:s,placeholder:r}))}function Q({size:e,draw:t,onDrag:n,onHover:o,onLeave:a},r){const i=u(null),s=u(),l=u(),d=u([0,0]),m=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],a=e.offsetY-s.current[1];0===t&&0===a||(d.current=[d.current[0]+t,d.current[1]+a],m.current||(cancelAnimationFrame(l.current),l.current=requestAnimationFrame((async()=>{m.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)),m.current=!1})))),s.current=[e.offsetX,e.offsetY]},r=()=>{s.current=void 0},c=()=>{null==a||a()};return i.current.addEventListener("mousedown",e),i.current.addEventListener("mousemove",t),i.current.addEventListener("mouseleave",c),document.body.addEventListener("mouseup",r),()=>{var n,o,a;null==(n=i.current)||n.removeEventListener("mousedown",e),null==(o=i.current)||o.removeEventListener("mousemove",t),null==(a=i.current)||a.removeEventListener("mouseleave",c),document.body.removeEventListener("mouseup",r)}}),[...null!=r?r:[],i.current]);const h=u(),p=u(0);return h.current=async()=>{const n=i.current.getContext("2d"),o=e();i.current.width=o[0],i.current.height=o[1];const a=n.getImageData(0,0,o[0],o[1]),r=p.current+=1;await t(a),r===p.current&&n.putImageData(a,0,0)},{canvas:i,redraw:h.current}}function ee(){const[e,t]=m(!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 te(e,t){const n={invalidated(){e&&t(e)}};c((()=>(null==e||e.addListener(n),()=>{null==e||e.removeListener(n)})),[e])}function ne({icon:e,label:t,relative:n,tooltip:o,children:a}){const[r,i]=ee();return d("div",{class:"btn-menu"+(!1===n?" no-relative":"")},d(K,l(s({},{icon:e,label:t,tooltip:o}),{onClick:i})),r&&d("div",{class:"btn-group"},a))}!function(e){const t="Site",n="Generator";function o(e,t,n){ga("send","event",e,t,n)}function a(e,t){ga("set",`dimension${e}`,t)}e.pageview=function(e){ga("set","page",e),ga("send","pageview")},e.setLanguage=function(e){a(4,e),o(t,"set-language",e)},e.setTheme=function(e){a(1,e),o(t,"set-theme",e)},e.setVersion=function(e){a(3,e),o(n,"set-version",e)},e.setPreview=function(e){a(5,e),o(n,"set-preview",e)},e.setGenerator=function(e){a(6,e)},e.generatorEvent=function(e,t){o(n,e,t)}}(Y||(Y={}));const oe={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"})),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"})),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"})),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"})),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 ae({error:e,onDismiss:t}){return d("div",{class:"error"},t&&d("div",{class:"error-dismiss",onClick:t},oe.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 re(e,t,n){const o=e=>{const o=e.onChange&&(t=>{var o;const a=t.target.value;null==(o=e.onChange)||o.call(e,n(a))}),a=e.onEnter&&(t=>{var o;if("Enter"===t.key){const a=t.target.value;null==(o=e.onEnter)||o.call(e,n(a))}});return d("input",s(s({},e),{type:t,onChange:o,onKeyDown:a}))};return o.displayName=e,o}const ie=re("TextInput","text",(e=>e)),se=re("NumberInput","number",(e=>Number(e))),le=re("RangeInput","range",(e=>Number(e)));let ce;const de={},ue=function(e,t){if(!t)return e();if(void 0===ce){const e=document.createElement("link").relList;ce=e&&e.supports&&e.supports("modulepreload")?"modulepreload":"preload"}return Promise.all(t.map((e=>{if(e in de)return;de[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":ce,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 me=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","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.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","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 content here","switch_generator":"Switch generator","terrain_settings":"Terrain settings","undo":"Undo","world":"World Settings","worldgen":"Worldgen","worldgen/biome":"Biome","worldgen/configured_carver":"Carver","worldgen/configured_feature":"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"}'),he=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",default:me});const pe={fallback:me};function fe(e,t,...n){var o,a,r,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!=(r=null==(o=pe[e])?void 0:o[t])?r:null==(a=pe.en)?void 0:a[t])?i:pe.fallback[t])?s:t,n)}async function ge(e){const t=Z.languages.find((t=>t.code===e));if(!t)return;const n=await function(e){switch(e){case"../locales/de.json":return ue((()=>import("./de.1d005dc8.js")),void 0);case"../locales/en.json":return ue((()=>Promise.resolve().then((function(){return he}))),void 0);case"../locales/es.json":return ue((()=>import("./es.d3abba45.js")),void 0);case"../locales/fr.json":return ue((()=>import("./fr.f5531eea.js")),void 0);case"../locales/it.json":return ue((()=>import("./it.fd9a8268.js")),void 0);case"../locales/ja.json":return ue((()=>import("./ja.2d7ab812.js")),void 0);case"../locales/pl.json":return ue((()=>import("./pl.3a9fb38c.js")),void 0);case"../locales/pt.json":return ue((()=>import("./pt.689bba1d.js")),void 0);case"../locales/ru.json":return ue((()=>import("./ru.3104e71e.js")),void 0);case"../locales/sk.json":return ue((()=>import("./sk.69c71daa.js")),void 0);case"../locales/zh-cn.json":return ue((()=>import("./zh-cn.b233fc7e.js")),void 0);case"../locales/zh-tw.json":return ue((()=>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/de.json":return ue((()=>import("./de.f9c3209c.js")),void 0);case"../../node_modules/@mcschema/locales/src/en.json":return ue((()=>import("./en.1d6bc972.js")),void 0);case"../../node_modules/@mcschema/locales/src/es.json":return ue((()=>import("./es.c83d9c73.js")),void 0);case"../../node_modules/@mcschema/locales/src/fr.json":return ue((()=>import("./fr.e316b1e2.js")),void 0);case"../../node_modules/@mcschema/locales/src/it.json":return ue((()=>import("./it.7ff123cd.js")),void 0);case"../../node_modules/@mcschema/locales/src/ja.json":return ue((()=>import("./ja.4ae430b9.js")),void 0);case"../../node_modules/@mcschema/locales/src/pl.json":return ue((()=>import("./pl.ae1f6791.js")),void 0);case"../../node_modules/@mcschema/locales/src/pt.json":return ue((()=>import("./pt.31e14993.js")),void 0);case"../../node_modules/@mcschema/locales/src/ru.json":return ue((()=>import("./ru.92df5b59.js")),void 0);case"../../node_modules/@mcschema/locales/src/zh-cn.json":return ue((()=>import("./zh-cn.4129665a.js")),void 0);case"../../node_modules/@mcschema/locales/src/zh-tw.json":return ue((()=>import("./zh-tw.1b64f94d.js")),void 0);default:return Promise.reject(new Error("Unknown variable dynamic import: "+e))}}(`../../node_modules/@mcschema/locales/src/${e}.json`);pe[e]=s(s({},n.default),o.default)}function ve(e){return"object"==typeof e&&null!==e}const _e=e=>("0"+e.toString(16)).substr(-2);function we(e=12){var t=new Uint8Array(e/2);return window.crypto.getRandomValues(t),Array.from(t,_e).join("")}function ye(){return BigInt(Math.floor(Math.random()*Number.MAX_SAFE_INTEGER))}function be(e){const t=Math.floor(4294967296*Math.random())-2147483648,n=e.get(new p.Path(["dimensions"]));e.set(new p.Path(["seed"]),t,!0),"object"==typeof n&&null!==n&&Object.keys(n).forEach((n=>{e.set(new p.Path(["dimensions",n,"generator","seed"]),t,!0),e.set(new p.Path(["dimensions",n,"generator","biome_source","seed"]),t,!0)})),e.set(new p.Path(["generator","seed"]),t,!0),e.set(new p.Path(["generator","biome_source","seed"]),t)}function xe(e){let t=0;for(let n=0;ne.url===t))}function Ae(e){const t=Math.abs(xe(e));return[t%256,(t>>8)%256,(t>>16)%256]}function Me(e){return e*e}function ze(e,t,n){return Math.max(e,Math.min(t,n))}function je(e,t,n){return n<0?e:n>1?t:Ve(n,e,t)}function Ve(e,t,n){return t+e*(n-t)}function $e(e){return e instanceof Error?e.message:`${e}`}const Ee=h();function Ie(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(`${Le}/${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(`${Le}/${e.id}/${t.id}.md`)).text()).map((a=>s({version:t,group:e,order:1e3*n+o},a)))}(e,De(n),t,o))))).flat()}(De(e),t))))).flat()}return Pe}function De(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}:ve(e)?e:{id:"unknown",article:null}}const Ne=["1.15","1.16","1.17","1.18"],Te={},Be={},He={1.15:f,1.16:g,1.17:v,1.18:_};let Re,Fe;async function Je(e){return Te[e]||(Te[e]=(async()=>{try{const t=He[e].getCollections(),n={};await async function(e,t,n){const o=Z.versions.find((t=>t.id===e));if(!o)return void console.error(`[fetchData] Unknown version ${o} in ${JSON.stringify(Z.versions)}`);console.debug(`[fetchData] ${JSON.stringify(o)}`),o.dynamic&&await Promise.all(Ze.filter((e=>localStorage.getItem(`cached_${e.id}`)!==e.hash)).map((async e=>{console.debug(`[deleteMatching] ${e.id} '${localStorage.getItem(`cached_${e.id}`)}' < '${e.hash}' ${e.url}/${o.refs[e.id]}`),await async function(e){try{const t=await caches.open("misode-v1");console.debug("[deleteMatching] Opened cache misode-v1");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-v1: ${$e(t)}`)}}((t=>t.startsWith(`${e.url}/${o.refs[e.id]}`))),console.debug(`[deleteMatching] Done! ${e.id} ${e.hash} '${localStorage.getItem(`cached_${e.id}`)}'`),localStorage.setItem(`cached_${e.id}`,e.hash),console.debug(`[deleteMatching] Set! ${e.id} ${e.hash} '${localStorage.getItem(`cached_${e.id}`)}'`)})));await Promise.all([qe(o,t),Ke(o,n),Xe(o,t),Qe(o,t)])}(e,t,n);const o=He[e].getSchemas(t);return Te[e]={collections:t,schemas:o,blockStates:n},Te[e]}catch(t){throw new Error(`Cannot get version "${e}": ${$e(t)}`)}})()),Te[e]}function We(e,t,n){const o=Z.versions.findIndex((t=>t.id===e)),a=t?Z.versions.findIndex((e=>e.id===t)):0,r=n?Z.versions.findIndex((e=>e.id===n)):Z.versions.length-1;return a<=o&&o<=r}["1.15","1.16","1.17"].forEach((e=>localStorage.removeItem(`cache_${e}`)));const Ge="https://raw.githubusercontent.com/Arcensoth/mcdata",Ue="https://raw.githubusercontent.com/InventivetalentDev/minecraft-assets",Ye="https://raw.githubusercontent.com/SPGoding/vanilla-datapack",Ze=[{id:"mcdata_master",hash:"5f32e0f8300e443d5462a0592cf392b0036f4f59",url:Ge},{id:"vanilla_datapack_summary",hash:"33019b47ae943f905d12933de26eb4b3c027f852",url:Ye}];async function qe(e,t){console.debug(`[fetchRegistries] ${e.id}`);const n=Z.registries.filter((e=>!e.dynamic&&!e.asset)).filter((t=>We(e.id,t.minVersion,t.maxVersion)));if(We(e.id,void 0,"1.15")){const a=`${Ge}/${e.refs.mcdata_master}/generated/reports/registries.json`;try{const e=await nt(a,(e=>{const t={};return Object.keys(e).forEach((n=>{t[n.slice(10)]=Object.keys(e[n].entries)})),t}));n.forEach((n=>{var o;t.register(n.id,null!=(o=e[n.id])?o:[])}))}catch(o){console.warn("Error occurred while fetching registries:",$e(o))}}else await Promise.all(n.map((async n=>{try{const o=n.path?`${Ge}/${e.refs.mcdata_master}/${n.path}/data.min.json`:`${Ge}/${e.refs.mcdata_master}/processed/reports/registries/${n.id}/data.min.json`;t.register(n.id,await nt(o,(e=>e.values)))}catch(o){console.warn(`Error occurred while fetching registry ${n.id}:`,$e(o))}})))}async function Ke(e,t){if(console.debug(`[fetchBlockStateMap] ${e.id}`),We(e.id,void 0,"1.16")){const o=We(e.id,void 0,"1.15")?`${Ge}/${e.refs.mcdata_master}/generated/reports/blocks.json`:`${Ge}/${e.refs.mcdata_master}/processed/reports/blocks/data.min.json`;try{const e=await nt(o,(e=>{const t={};return Object.keys(e).forEach((n=>{t[n]={properties:e[n].properties,default:e[n].states.find((e=>e.default)).properties}})),t}));Object.assign(t,e)}catch(n){console.warn("Error occurred while fetching block state map:",$e(n))}}else{const o=`${Ge}/${e.refs.mcdata_master}/processed/reports/blocks/simplified/data.min.json`;try{const e=await nt(o);Object.assign(t,e)}catch(n){console.warn("Error occurred while fetching block state map:",$e(n))}}}async function Xe(e,t){console.debug(`[fetchDynamicRegistries] ${e.id}`);const n=Z.registries.filter((e=>e.dynamic&&!e.asset)).filter((t=>We(e.id,t.minVersion,t.maxVersion)));if(We(e.id,"1.16")){const a=`${Ye}/${e.refs.vanilla_datapack_summary}/summary/flattened.min.json`;try{const e=await nt(a);n.forEach((n=>{t.register(n.id,e[n.id])}))}catch(o){console.warn("Error occurred while fetching dynamic registries:",$e(o))}}We(e.id,"1.18")&&t.register("worldgen/noise",ot)}async function Qe(e,t){console.debug(`[fetchAssetsRegistries] ${e.id}`);const n=Z.registries.filter((e=>e.asset)).filter((t=>We(e.id,t.minVersion,t.maxVersion)));await Promise.all(n.map((async n=>{var o;try{const a=async t=>{const n=`${Ue}/${e.refs.mcassets}/assets/minecraft/${t}/_list.json`,o=await nt(n);if(0===o.directories.length)return o.files;const r=await Promise.all(o.directories.map((async e=>(await a(`${t}/${e}`)).map((t=>`${e}/${t}`)))));return[...o.files,...r.flat()]},r=(await a(null!=(o=n.path)?o:n.id)).filter((e=>e.endsWith(".json")||e.endsWith(".png"))).map((e=>`minecraft:${e.replace(/\.(json|png)$/,"")}`));t.register(n.id,r)}catch(a){console.warn(`Error occurred while fetching assets registry ${n.id}:`,$e(a))}})))}async function et(e,t,n){console.debug(`[fetchPreset] ${t} ${n}`);const o=Z.versions.find((t=>t.id===e));try{const a=["blockstates","models"].includes(t)?`${Ue}/${o.refs.mcassets}/assets/minecraft/${t}/${n}.json`:`${Ye}/${o.refs.vanilla_datapack_data}/data/minecraft/${t}/${n}.json`,r=await fetch(a);if("worldgen/noise_settings"===t&&"1.18"===e){let e=await r.text();e=e.replaceAll('"max_threshold": Infinity','"max_threshold": 100');const t=JSON.parse(e);return"overworld"!==n&&"large_biomes"!==n&&(t.noise.terrain_shaper={offset:0,factor:0,jaggedness:0}),t}return await r.json()}catch(a){console.warn(`Error occurred while fetching ${t} preset ${n}:`,$e(a))}}function tt(e){return`https://misode-cors-anywhere.herokuapp.com/https://resources.download.minecraft.net/${e.slice(0,2)}/${e}`}async function nt(e,t=(e=>e)){try{const n=await caches.open("misode-v1");console.debug(`[getData] Opened cache misode-v1 ${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 a=await fetch(e),r=t(await a.json());return await n.put(e,new Response(JSON.stringify(r))),r}catch(n){console.warn(`[getData] Failed to open cache misode-v1: ${$e(n)}`),console.debug(`[getData] fetching data ${e}`);const o=await fetch(e);return t(await o.json())}}const ot=["minecraft:aquifer_barrier","minecraft:aquifer_fluid_level_floodedness","minecraft:aquifer_fluid_level_spread","minecraft:aquifer_lava","minecraft:calcite","minecraft:cave_cheese","minecraft:cave_entrance","minecraft:cave_layer","minecraft:clay_bands_offset","minecraft:continentalness","minecraft:erosion","minecraft:gravel","minecraft:gravel_layer","minecraft:ice","minecraft:iceberg_and_badlands_pillar","minecraft:iceberg_and_badlands_pillar_roof","minecraft:jagged","minecraft:nether_state_selector","minecraft:nether_wart","minecraft:netherrack","minecraft:noodle","minecraft:noodle_ridge_a","minecraft:noodle_ridge_b","minecraft:noodle_thickness","minecraft:offset","minecraft:ore_gap","minecraft:ore_vein_a","minecraft:ore_vein_b","minecraft:ore_veininess","minecraft:packed_ice","minecraft:patch","minecraft:pillar","minecraft:pillar_rareness","minecraft:pillar_thickness","minecraft:powder_snow_surface","minecraft:powder_snow_under","minecraft:ridge","minecraft:soul_sand_layer","minecraft:spaghetti_2d","minecraft:spaghetti_2d_elevation","minecraft:spaghetti_2d_modulator","minecraft:spaghetti_2d_thickness","minecraft:spaghetti_3d_1","minecraft:spaghetti_3d_2","minecraft:spaghetti_3d_rarity","minecraft:spaghetti_3d_thickness","minecraft:spaghetti_roughness","minecraft:spaghetti_roughness_modulator","minecraft:surface","minecraft:surface_swamp","minecraft:temperature","minecraft:vegetation"];let at=null;const rt={},it={};async function st(){return at||(at=async function(){try{const e=await fetch("https://launchermeta.mojang.com/mc/game/version_manifest.json");return await e.json()}catch(e){throw new Error(`Error occurred while fetching version manifest: ${$e(e)}`)}}()),at}async function lt(e){return rt[e]||(rt[e]=(async()=>{const t=await st();return await async function(e,t){var n;const o=Z.versions.find((t=>t.id===e)),a=null!=(n=null==o?void 0:o.latest)?n:t.latest.snapshot;try{const e=await nt(t.versions.find((e=>e.id===a)).url);return(await nt(e.assetIndex.url)).objects}catch(r){throw new Error(`Error occurred while fetching assets for ${o}: ${$e(r)}`)}}(e,t)})()),rt[e]}async function ct(e){return it[e]||(it[e]=(async()=>{const t=await lt(e);return await async function(e,t){try{const e=t["minecraft/sounds.json"].hash;return await nt(tt(e))}catch(n){throw new Error(`Error occurred while fetching sounds for ${e}: ${$e(n)}`)}}(e,t)})()),it[e]}let dt=!1;const ut={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 mt,ht;async function pt(e,t){const n=[e,t.octaves,t.shaper.toJson(),`${t.seed}`,t.version];return Ie(n,mt)||(mt=Ee(n),ht=await async function(e,t){var n,o,a,r,i;switch(null==(n=null==e?void 0:e.type)?void 0:n.replace(/^minecraft:/,"")){case"fixed":return new M(e.biome);case"checkerboard":const n=(null!=(o=e.scale)?o:2)+2,l=null!=(r=null==(a=e.biomes)?void 0:a.length)?r:0;return{getBiome(t,o,a){var r;const i=(((t>>n)+(a>>n))%l+l)%l;return null==(r=e.biomes)?void 0:r[i].node}};case"multi_noise":switch(null==(i=e.preset)?void 0:i.replace(/^minecraft:/,"")){case"nether":e="1.18"===t.version?_t:vt;break;case"overworld":e="1.18"===t.version?await async function(){return(await et("1.18","dimension","overworld")).generator.biome_source}():e}if(e=p.DataModel.unwrapLists(e),"1.18"===t.version){await async function(){dt||(await z(j),dt=!0,console.debug(`Loaded deepslate-rs from "${j}"`))}();const n=new Oe,o=e=>"number"==typeof e?[e,e]:e,[a,r,i,l,c,d,u,m,h,p,f,g,v,_]=[[],[],[],[],[],[],[],[],[],[],[],[],[],[]];for(const t of e.biomes){const{temperature:e,humidity:s,continentalness:w,erosion:y,weirdness:b,depth:x,offset:k}=t.parameters;a.push(o(e)[0]),r.push(o(e)[1]),i.push(o(s)[0]),l.push(o(s)[1]),c.push(o(w)[0]),d.push(o(w)[1]),u.push(o(y)[0]),m.push(o(y)[1]),h.push(o(b)[0]),p.push(o(b)[1]),f.push(o(x)[0]),g.push(o(x)[1]),v.push(k),_.push(n.getOrPut(t.biome,Math.floor(2147483647*Math.random())))}const C=w(new Float64Array(a),new Float64Array(r),new Float64Array(i),new Float64Array(l),new Float64Array(c),new Float64Array(d),new Float64Array(u),new Float64Array(m),new Float64Array(h),new Float64Array(p),new Float64Array(f),new Float64Array(g),new Float64Array(v),new Int32Array(_)),A=y(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 a;const r=b(C,A,e,e+1,1,t,t+1,1,o,o+1,1);return null!=(a=n.getA(r[0]))?a:"unknown"},getBiomes:(e,t,o,a,r,i,s,l,c)=>[...b(C,A,e,t,o,a,r,i,s,l,c)].map((e=>{var t;return null!=(t=n.getA(e))?t:"unknown"})),getClimate(e,n,o,a,r,i,l,c,d,u){const m=x(A,n,o,a,r,i,l,c,d,u),h=[];for(let p=0;p{var a;const r=e[`${n}_noise`];return r.firstOctave=ze(null!=(a=r.firstOctave)?a:-7,-100,-1),new C(new A(t.seed+BigInt(o)),r)}));return Array.isArray(e.biomes)&&0!==e.biomes.length?{getBiome(t,o,a){const r=n.map((e=>e.sample(t,a,0)));let i=1/0,s="";for(const{biome:n,parameters:l}of e.biomes){const e=Me(l.altitude-r[0])+Me(l.temperature-r[1])+Me(l.humidity-r[2])+Me(l.weirdness-r[3])+Me(l.offset);eo.nextFloat(),nextInt:e=>o.nextInt(e),sampleInt(e){return Ct(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{zt(t,null==e?void 0:e.decorator,n).forEach((t=>Mt(t,null==e?void 0:e.feature,n)))},random_boolean_selector:(e,t,n)=>{Mt(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,a;for(const r of null!=(o=null==e?void 0:e.features)?o:[])if(n.nextFloat()<(null!=(a=null==r?void 0:r.chance)?a:0))return void Mt(t,r.feature,n);Mt(t,null==e?void 0:e.default,n)},simple_random_selector:(e,t,n)=>{var o,a,r;Mt(t,null==(r=null==e?void 0:e.features)?void 0:r[n.nextInt(null!=(a=null==(o=null==e?void 0:e.features)?void 0:o.length)?a:0)],n)}},Vt={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,a;let r=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 a=Math.max(1,e.noise_factor),r=n.biomeInfoNoise.sample(t[0]/a,0,t[2]/a),i=Math.max(0,Math.ceil((r+(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 a=4*Math.floor(o/4)+1+n.nextInt(3)+t[0];return[a,Math.max(n.seaLevel,wt[ze(0,63,a)]),4*Math.floor(o%4)+1+n.nextInt(3)+t[2]]})),decorated:(e,t,n)=>zt(t,null==e?void 0:e.outer,n).flatMap((t=>zt(t,null==e?void 0:e.inner,n))),depth_average:(e,t,n)=>{var o,a,r,i;return kt(t,n.nextInt(null!=(o=null==e?void 0:e.spread)?o:0)+n.nextInt(null!=(a=null==e?void 0:e.spread)?a:0)-(null!=(r=e.spread)?r: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)=>kt(t,Math.max(n.seaLevel,wt[ze(0,63,t[0])])),heightmap_spread_double:(e,t,n)=>{const o=Math.max(n.seaLevel,wt[ze(0,63,t[0])]);return kt(t,n.nextInt(2*o))},heightmap_world_surface:(e,t,n)=>kt(t,Math.max(n.seaLevel,wt[ze(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,a;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,a,r;return kt(t,n.nextInt((null!=(o=null==e?void 0:e.maximum)?o:1)-(null!=(a=null==e?void 0:e.top_offset)?a:0))+(null!=(r=null==e?void 0:e.bottom_offset)?r:0))},range_biased:(e,t,n)=>{var o,a,r;return kt(t,n.nextInt(n.nextInt((null!=(o=null==e?void 0:e.maximum)?o:1)-(null!=(a=null==e?void 0:e.top_offset)?a:0))+(null!=(r=null==e?void 0:e.bottom_offset)?r:0)))},range_very_biased:(e,t,n)=>{var o,a,r,i;return kt(t,n.nextInt(n.nextInt(n.nextInt((null!=(o=null==e?void 0:e.maximum)?o:1)-(null!=(a=null==e?void 0:e.top_offset)?a:0))+(null!=(r=null==e?void 0:e.bottom_offset)?r:0))+(null!=(i=null==e?void 0:e.bottom_offset)?i:0)))},spread_32_above:(e,t,n)=>kt(t,n.nextInt(t[1]+32)),top_solid_heightmap:(e,t)=>kt(t,wt[ze(0,63,t[0])]),magma:(e,t,n)=>kt(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 a=wt[ze(0,63,t[0])],r=a+(null!=(n=null==e?void 0:e.min_inclusive)?n:-1/0),i=a+(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)]]:[]}};class $t{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 A(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,a){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(a).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,a=this.fillNoiseColumn(n),r=this.fillNoiseColumn(n+1);for(let m=this.chunkCountY-1;m>=0;m-=1)for(let e=this.chunkHeight;e>=0;e-=1){const n=e/this.chunkHeight;t[m*this.chunkHeight+e]=(i=n,s=o,l=a[m],c=a[m+1],d=r[m],u=r[m+1],Ve(s,Ve(i,l,c),Ve(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,a=684.412*this.settings.sampling.y_scale,r=o/this.settings.sampling.xz_factor,i=a/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,a,r,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=je(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=je(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,a,r,i){let s=0,l=0,c=0,d=1;for(let u=0;u<16;u+=1){const m=V.wrap(e*o*d),h=V.wrap(t*a*d),p=V.wrap(n*o*d),f=a*d,g=this.minLimitPerlinNoise.getOctaveNoise(u);g&&(s+=g.sample(m,h,p,f,t*f)/d);const v=this.maxLimitPerlinNoise.getOctaveNoise(u);if(v&&(l+=v.sample(m,h,p,f,t*f)/d),u<8){const o=this.mainPerlinNoise.getOctaveNoise(u);o&&(c+=o.sample(V.wrap(e*r*d),V.wrap(t*i*d),V.wrap(n*r*d),i*d,t*i*d)/d)}d/=2}return je(s/512,l/512,(c/10+1)/2)}}const Et={"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 It,Ot,Lt=[];function Pt(e,t,n){var o,a,r;if(We(n.version,"1.18")){const{settings:a,generator:r}=function(e,t){const n=$.fromJson(p.DataModel.unwrapLists(e));n.octaves=Ht(n);const o=[e,`${t.seed}`];if(!Ie(o,It)){It=Ee(o),Lt=[];const e=new M("unknown");Ot=new E(t.seed,e,n)}return{settings:n,generator:Ot}}(e,n),i=new Dt(-n.offset,n.width,a.noise.minY,a.noise.height);i.fill(r);const s=t.data;for(let e=0;e0?0:e[t+1]>0?150:255}class Dt{constructor(e,t,n,o){this.minX=e,this.filled=[],this.chunks=[...Array(Math.ceil(t/16)+1)].map(((t,a)=>{const r=(e>>4)+a,i=Lt.find((e=>e.pos[0]===r));return i?(this.filled[a]=!0,i):new I(n,o,O.create(r,0))}))}fill(e){this.chunks.forEach(((t,n)=>{this.filled[n]||(e.fill(t),this.filled[n]=!0,Lt.push(t))}))}getBlockState(e){const t=(e[0]>>4)-(this.minX>>4);return this.chunks[t].getBlockState(e)}}const Nt=["biomes","temperature","humidity","continentalness","erosion","weirdness","offset","factor","jaggedness"],Tt=k.overworld(),Bt=({model:e,data:t,shown:n,lang:o,version:a})=>{var r;const[i,s]=m(2),[l,h]=m(void 0),[f,g]=m(new Set(["biomes"])),v=u([0,0]),_=u(1),w=u(void 0),y=BigInt(e.get(new p.Path(["generator","seed"]))),b=Ht(e.get(new p.Path(["generator","settings"]))),x=function(e){var t;if("string"==typeof e)switch(e.replace(/^minecraft:/,"")){case"overworld":case"amplified":return Tt;default:return k.fromJson({offset:0,factor:0,jaggedness:0})}return k.fromJson(p.DataModel.unwrapLists(null==(t=null==e?void 0:e.noise)?void 0:t.terrain_shaper))}(e.get(new p.Path(["generator","settings"]))),C=n?function(e,t,n){return JSON.stringify([e,t,n.toJson()])}(t,b,x):"",A=null==(r=t.type)?void 0:r.replace(/^minecraft:/,""),{canvas:M,redraw:z}=Q({size:()=>[200/_.current,200/_.current],async draw(e){const n={octaves:b,shaper:x,biomeColors:{},layers:f,offset:v.current,scale:i,seed:y,res:_.current,version:a};await async function(e,t,n){var o,a,r;const{biomeSource:i}=await pt(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,m=[l*n.scale,(200+l)*n.scale,n.res*n.scale],h=[c*n.scale,(200+c)*n.scale,n.res*n.scale],p=n.layers.has("biomes")?null==(o=i.getBiomes)?void 0:o.call(i,...m,64,65,1,...h):void 0,f=[...n.layers].filter((e=>"biomes"!==e)),g=0===f.length||null==(a=i.getClimate)?void 0:a.call(i,new Set(f),...m,64,65,1,...h);for(let v=0;v<200;v+=n.res)for(let e=0;e<200;e+=n.res){const t=e*d+v*u,o=v/n.res*200/n.res+e/n.res,a=(v+l)*n.scale,m=(e+c)*n.scale;let h=[50,50,50];if(n.layers.has("biomes"))h=ft(null!=(r=null==p?void 0:p[o])?r:i.getBiome(a,64,m),n.biomeColors);else if(g&&f[0]){const e=g[o][f[0]],[t,n]=ut[f[0]],a=(e-t)/(n-t)*256;h=[a,a,a]}s[t]=h[0],s[t+1]=h[1],s[t+2]=h[2],s[t+3]=255}}(t,e,n),4===_.current&&(clearTimeout(w.current),w.current=setTimeout((()=>{_.current=1,z()}),150))},async onDrag(e,t){v.current[0]=v.current[0]+200*e,v.current[1]=v.current[1]+200*t,clearTimeout(w.current),_.current="multi_noise"===A?4:1,z()},async onHover(e,n){const o={octaves:b,shaper:x,biomeColors:{},layers:f,offset:v.current,scale:i,seed:y,res:1,version:a},r=await async function(e,t,n,o){const{biomeSource:a}=await pt(e,o),[r,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 a.getBiome(r,64,i)}(t,Math.floor(200*e),Math.floor(200*n),o);h(r)},onLeave(){h(void 0)}},[C,i,y,f]);c((()=>{n&&(_.current="multi_noise"===A?4:1,z())}),[C,i,y,f,n]);const j=e=>{v.current[0]=v.current[0]*i/e,v.current[1]=v.current[1]*i/e,s(e)};return d(P,null,d("div",{class:"controls"},l&&d(K,{label:l,class:"no-pointer"}),"multi_noise"===A&&d(ne,{icon:"stack",tooltip:fe(o,"configure_layers")},Nt.map((e=>{const t=f.has(e);return d(K,{label:fe(o,`layer.${e}`),active:t,tooltip:fe(o,t?"enabled":"disabled"),onClick:t=>{g(new Set([e])),t.stopPropagation()}})}))),("multi_noise"===A||"checkerboard"===A)&&d(P,null,d(K,{icon:"dash",tooltip:fe(o,"zoom_out"),onClick:()=>j(1.5*i)}),d(K,{icon:"plus",tooltip:fe(o,"zoom_in"),onClick:()=>j(i/1.5)})),"multi_noise"===A&&d(K,{icon:"sync",tooltip:fe(o,"generate_new_seed"),onClick:()=>be(e)})),d("canvas",{ref:M,width:"200",height:"200"}))};function Ht(e){if("string"!=typeof e){const t=$.fromJson(p.DataModel.unwrapLists(e));e=0===t.noise.densityFactor&&-.030078125===t.noise.densityOffset?"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 Rt=({data:e,version:t,shown:n,lang:o})=>{const[a,r]=m(4),[i,s]=m(ye()),{canvas:l,redraw:u}=Q({size:()=>[16*a,16*a],async draw(n){bt(e,n,{seed:i,version:t,size:[16*a,128,16*a]})}}),h=JSON.stringify(e);return c((()=>{n&&u()}),[h,a,i,n]),d(P,null,d("div",{class:"controls"},d(K,{icon:"dash",tooltip:fe(o,"zoom_out"),onClick:()=>r(Math.min(16,a+1))}),d(K,{icon:"plus",tooltip:fe(o,"zoom_in"),onClick:()=>r(Math.max(1,a-1))}),d(K,{icon:"sync",tooltip:fe(o,"generate_new_seed"),onClick:()=>s(ye())})),d("canvas",{ref:l,width:"64",height:"64"}))},Ft=({lang:e,data:t,shown:n,version:o})=>{const[a,r]=m(ye()),[i,s]=m(2),l=u([0,0]),h=JSON.stringify([t]),{canvas:f,redraw:g}=Q({size:()=>[256,256],async draw(e){const n={offset:l.current,scale:i,seed:a,version:o};!function(e,t,n){const o=new A(n.seed),a=L.fromJson(p.DataModel.unwrapLists(e)),r=new C(o,a),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,a=(e+s)*n.scale,d=128*(r.sample(o,a,0)+1);l[t]=d,l[t+1]=d,l[t+2]=d,l[t+3]=255}}(t,e,n)},async onDrag(e,t){l.current[0]=l.current[0]+256*e,l.current[1]=l.current[1]+256*t,g()}},[h,i,a]);c((()=>{n&&g()}),[h,i,a,n]);const v=e=>{l.current[0]=l.current[0]*i/e,l.current[1]=l.current[1]*i/e,s(e)};return d(P,null,d("div",{class:"controls"},d(K,{icon:"dash",tooltip:fe(e,"zoom_out"),onClick:()=>v(1.5*i)}),d(K,{icon:"plus",tooltip:fe(e,"zoom_in"),onClick:()=>v(i/1.5)}),d(K,{icon:"sync",tooltip:fe(e,"generate_new_seed"),onClick:()=>r(ye())})),d("canvas",{ref:f,width:"256",height:"256"}))},Jt=({lang:e,data:t,shown:n,version:o})=>{var a,r;const i=fe.bind(null,e),[s,l]=m(ye()),[h,p]=m(.2),[f,g]=m(.1),[v,_]=m(void 0),w=u(0),y=JSON.stringify([t,h,f]),b=null!=(r=null==(a=null==t?void 0:t.noise)?void 0:a.height)?r:256,{canvas:x,redraw:k}=Q({size:()=>[b,b],async draw(e){const n={biomeDepth:f,biomeScale:h,offset:w.current,width:e.width,seed:s,version:o};Pt(t,e,n)},async onDrag(e){w.current+=e*b,k()},async onHover(e,n){var o,a;const r=b-Math.max(1,Math.ceil(n*b))+(null!=(a=null==(o=null==t?void 0:t.noise)?void 0:o.min_y)?a:0);_(`${r}`)},onLeave(){_(void 0)}},[y,s]);return c((()=>{n&&k()}),[y,s,n]),d(P,null,d("div",{class:"controls"},v&&d(K,{label:`Y = ${v}`,class:"no-pointer"}),We(o,void 0,"1.17")&&d(ne,{icon:"gear",tooltip:fe(e,"terrain_settings")},d(X,{label:i("preview.scale"),value:`${h}`,onChange:e=>p(Number(e))}),d(X,{label:i("preview.depth"),value:`${f}`,onChange:e=>g(Number(e))})),d(K,{icon:"sync",tooltip:fe(e,"generate_new_seed"),onClick:()=>l(ye())})),d("canvas",{ref:x,width:b,height:b}))},Wt=["dimension","worldgen/noise","worldgen/noise_settings","worldgen/configured_feature"];function Gt({lang:e,model:t,version:n,id:o,shown:a}){var r;const[,i]=m(0);if(te(t,(()=>{i((e=>e+1))})),"dimension"===o&&(null==(r=null==t?void 0:t.get(new p.Path(["generator","type"])))?void 0:r.endsWith("noise"))){const o=t.get(new p.Path(["generator","biome_source"]));if(o)return d(Bt,s({},{lang:e,model:t,version:n,shown:a,data:o}))}if("worldgen/noise"===o&&t){const o=t.get(new p.Path([]));if(o)return d(Ft,s({},{lang:e,model:t,version:n,shown:a,data:o}))}if("worldgen/noise_settings"===o&&t){const o=t.get(new p.Path([]));if(o)return d(Jt,s({},{lang:e,model:t,version:n,shown:a,data:o}))}if("worldgen/configured_feature"===o&&t){const o=t.get(new p.Path([]));if(o)return d(Rt,s({},{lang:e,model:t,version:n,shown:a,data:o}))}return d(P,null)}const Ut={base:({},e,t)=>t,choice({switchNode:e},t,n,o){return e.hook(this,t,n,o)},list({children:e},t,n,o){return Array.isArray(n)?n.map(((n,a)=>e.hook(this,t.push(a),n.node,o))):n},map({children:e,config:t},n,o,a){var r,i;if(void 0===o)return;const s="block_state_map"===(null==(r=t.validation)?void 0:r.validator)?null==(i=a.blockStates)?void 0:i[p.relativePath(n,t.validation.params.id).get()]:null,l={};return Object.keys(o).forEach((t=>{var r;s&&!Object.keys(null!=(r=s.properties)?r:{}).includes(t)||(l[t]=e.hook(this,n.push(t),o[t],a))})),l},object({getActiveFields:e},t,n,o){if(null==n||"object"!=typeof n)return n;const a={},r=e(t);return Object.keys(r).filter((e=>r[e].enabled(t))).forEach((e=>{const i=r[e].hook(this,t.push(e),n[e],o);null!=i&&(a[e]=i)})),a}};var Yt,Zt;(Zt=Yt||(Yt={})).ID_LANGUAGE="language",Zt.ID_THEME="theme",Zt.ID_VERSION="schema_version",Zt.ID_INDENT="indentation",Zt.ID_FORMAT="output_format",Zt.ID_SOUNDS_VERSION="minecraft_sounds_version",Zt.getLanguage=function(){var e;return null!=(e=localStorage.getItem(Zt.ID_LANGUAGE))?e:"en"},Zt.getTheme=function(){var e;return null!=(e=localStorage.getItem(Zt.ID_THEME))?e:"dark"},Zt.getVersion=function(){const e=localStorage.getItem(Zt.ID_VERSION);return e&&Ne.includes(e)?e:"1.17"},Zt.getIndent=function(){var e;return null!=(e=localStorage.getItem(Zt.ID_INDENT))?e:"2_spaces"},Zt.getFormat=function(){var e;return null!=(e=localStorage.getItem(Zt.ID_FORMAT))?e:"json"},Zt.getSoundsVersion=function(){var e;return null!=(e=localStorage.getItem(Zt.ID_SOUNDS_VERSION))?e:"latest"},Zt.setLanguage=function(e){e&&localStorage.setItem(Zt.ID_LANGUAGE,e)},Zt.setTheme=function(e){e&&localStorage.setItem(Zt.ID_THEME,e)},Zt.setVersion=function(e){e&&localStorage.setItem(Zt.ID_VERSION,e)},Zt.setIndent=function(e){e&&localStorage.setItem(Zt.ID_INDENT,e)},Zt.setFormat=function(e){e&&localStorage.setItem(Zt.ID_FORMAT,e)},Zt.setSoundsVersion=function(e){e&&localStorage.setItem(Zt.ID_SOUNDS_VERSION,e)};const qt={"2_spaces":2,"4_spaces":4,tabs:"\t",minified:void 0},Kt={json:{parse:JSON.parse,stringify:(e,t)=>JSON.stringify(e,null,t)},yaml:{parse:D.load,stringify:(e,t)=>D.dump(e,{flowLevel:void 0===t?0:-1,indent:"string"==typeof t?4:t})}};function Xt({lang:e,name:t,model:n,blockStates:o,doCopy:a,doDownload:r,doImport:i,copySuccess:s,onError:l}){const h=fe.bind(null,e),[f,g]=m(Yt.getIndent()),[v,_]=m(Yt.getFormat()),w=u(null),y=u(null),b=u(),x=S(((e,t)=>{const n=e.schema.hook(Ut,new p.ModelPath(e),e.data,{blockStates:t});return Kt[v].stringify(n,qt[f])+"\n"}),[f,v]);c((()=>{b.current=()=>{if(n&&o)try{const e=x(n,o);e.length>=1e4?w.current.value=e.slice(0,1e4)+"\n\nOutput is too large to display (+10000 chars)\nExport to view complete output\n\n":w.current.value=e}catch(e){l(`Error getting JSON output: ${$e(e)}`),console.error(e),w.current.value=""}}})),te(n,(()=>{b.current()})),c((()=>{n&&b.current()}),[n]),c((()=>{b.current()}),[f,v]);c((()=>{a&&n&&o&&navigator.clipboard.writeText(x(n,o)).then((()=>{s()}))}),[a]),c((()=>{if(r&&n&&o&&y.current){const e=encodeURIComponent(x(n,o));y.current.setAttribute("href",`data:text/json;charset=utf-8,${e}`),y.current.setAttribute("download",`${t}.${v}`),y.current.click()}}),[r]),c((()=>{i&&w.current&&(w.current.value="",w.current.select())}),[i]);return d(P,null,d("div",{class:"controls"},d(ne,{icon:"gear",tooltip:h("output_settings")},Object.entries(qt).map((([e])=>d(K,{label:h(`indentation.${e}`),active:f===e,onClick:()=>{return t=e,Yt.setIndent(t),void g(t);var t}}))),d("hr",null),Object.keys(Kt).map((e=>d(K,{label:h(`format.${e}`),active:v===e,onClick:()=>{return t=e,Yt.setFormat(t),void _(t);var t}}))))),d("textarea",{ref:w,class:"source",onBlur:()=>{if(0!==w.current.value.length)try{const e=Kt[v].parse(w.current.value);null==n||n.reset(p.DataModel.wrapLists(e),!1)}catch(e){l(`Error importing: ${$e(e)}`),console.error(e)}},spellcheck:!1,autocorrect:"off",placeholder:h("source_placeholder")}),d("a",{ref:y,style:"display: none;"}))}class Qt extends p.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 en=["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"],tn=["number_provider.type","score_provider.type","nbt_provider.type","int_provider.type","float_provider.type","height_provider.type"],nn=["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"],on=["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"],an=["function.set_nbt.tag","advancement.display.icon.nbt","text_component_object.nbt","entity.nbt","block.nbt","item.nbt"],rn=["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"],sn=["noise_settings.surface_rule","noise_settings.noise.terrain_shaper"],ln=new p.DataModel(p.MapNode(p.StringNode(),p.StringNode()),{historyMax:0});function cn({model:e,lang:t,blockStates:n}){var o;const a=new p.ModelPath(e),[r,i,s]=e.schema.hook(dn,a,Ee(e.data),t,n,{});return(null==(o=null==i?void 0:i.props)?void 0:o.children.some((e=>e)))?d("div",{class:`node ${e.schema.type(a)}-node`,"data-category":e.schema.category(a)},d("div",{class:"node-header"},r,i),d("div",{class:"node-body"},s)):s}const dn={base:()=>[null,null,null],boolean:(e,t,n,o,a,r)=>[null,d(hn,s({},l(s({},e),{path:t,value:n,lang:o,states:a,ctx:r}))),null],choice({choices:e,config:t,switchNode:n},o,a,r,i,s){const l=n.activeCase(o,!0),c=(null==t?void 0:t.context)?new p.ModelPath(o.getModel(),new p.Path(o.getArray(),[t.context])):o,[u,m,h]=l.node.hook(this,c,a,r,i,s);if(1===e.length)return[u,m,h];const f=(null==t?void 0:t.choiceContext)?new p.Path([],[t.choiceContext]):(null==t?void 0:t.context)?new p.Path([],[t.context]):o,g=d("select",{value:l.type,onChange:n=>(n=>{var r,i,s;const c=null!=(r=e.find((e=>e.type===n)))?r:l,d=c.change?c.change(p.DataModel.unwrapLists(a)):"feature"===t.choiceContext?null==(s=null==(i=c.node.default())?void 0:i.config)?void 0:s.feature:c.node.default();o.model.set(o,p.DataModel.wrapLists(d))})(n.target.value)},e.map((e=>d("option",{value:e.type},wn(r,f.contextPush(e.type))))));return[u,d(P,null,g,m),h]},list({children:e,config:t},n,o,a,r,i){const{expand:c,collapse:u,isToggled:h}=mn(),[f,g]=m(50),v=n.getContext().join(".");if(rn.includes(v)){return[d(P,null,[...Array(t.maxLength)].map(((e,t)=>d(yn,{lang:a,path:n.modelPush(t)}))),d("div",{class:"fixed-list"})),d(P,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,a,r,i)[1]}))),null]}return[null,d("button",{class:"add tooltipped tip-se","aria-label":fe(a,"add_top"),onClick:()=>{Array.isArray(o)||(o=[]);const t=p.DataModel.wrapLists(e.default());n.model.set(n,[{node:t,id:we()},...o])}},oe.plus_circle),d(P,null,o&&Array.isArray(o)&&o.map((({node:t,id:m},p)=>{if(p===f)return d("div",{class:"node node-header"},d("label",null,fe(a,"entries_hidden",""+(o.length-f))),d("button",{onClick:()=>g(Math.min(f+50,o.length))},fe(a,"entries_hidden.more","50")),d("button",{onClick:()=>g(o.length)},fe(a,"entries_hidden.all")));if(p>f)return null;const v=n.push(p).contextPush("entry"),_="object"===e.type(v),w=h(m);if(_&&(!1===w||void 0===w&&o.length>20))return d("div",{class:"node node-header","data-category":e.category(v)},d(yn,{lang:a,path:v,nested:!0}),d("button",{class:"toggle tooltipped tip-se","aria-label":`${fe(a,"expand")}\n${fe(a,"expand_all","Ctrl")}`,onClick:c(m)},oe.chevron_right),d("label",null,wn(a,v,`${p}`)),d(un,{key:m,path:v,value:t,schema:e}));return d(gn,l(s({key:m,path:v,schema:e,value:t},{lang:a,states:r,actions:[{icon:"duplicate",label:"duplicate",onSelect:()=>{const e=[...n.get()];e.splice(p,0,{id:we(),node:Ee(t)}),n.model.set(n,e)}}]}),{ctx:l(s({},i),{index:(0===p?1:0)+(p===o.length-1?2:0)})}),_&&d("button",{class:"toggle tooltipped tip-se","aria-label":`${fe(a,"collapse")}\n${fe(a,"collapse_all","Ctrl")}`,onClick:u(m)},oe.chevron_down),d("button",{class:"remove tooltipped tip-se","aria-label":fe(a,"remove"),onClick:()=>v.set(void 0)},oe.trashcan),o.length>1&&d("div",{class:"node-move"},d("button",{class:"move tooltipped tip-se","aria-label":fe(a,"move_up"),onClick:()=>{const e=[...n.get()];[e[p-1],e[p]]=[e[p],e[p-1]],n.model.set(n,e)},disabled:0===p},oe.chevron_up),d("button",{class:"move tooltipped tip-se","aria-label":fe(a,"move_down"),onClick:()=>{const e=[...n.get()];[e[p+1],e[p]]=[e[p],e[p+1]],n.model.set(n,e)},disabled:p===o.length-1},oe.chevron_down)))})),o&&o.length>0&&o.length<=f&&d("div",{class:"node node-header"},d("button",{class:"add tooltipped tip-se","aria-label":fe(a,"add_bottom"),onClick:()=>{Array.isArray(o)||(o=[]);const t=p.DataModel.wrapLists(e.default());n.model.set(n,[...o,{node:t,id:we()}])}},oe.plus_circle)))]},map({children:e,keys:t,config:n},o,a,r,i,c){var u,m,h,f,g;const{expand:v,collapse:_,isToggled:w}=mn(),y=new p.ModelPath(ln,new p.Path([_n(o.toString())])),b="block_state_map"===(null==(u=n.validation)?void 0:u.validator)?null==i?void 0:i[p.relativePath(o,n.validation.params.id).get()]:null,x=(null==b?void 0:b.properties)?p.StringNode(null,{enum:Object.keys(null!=(m=b.properties)?m:{})}):t;if(b&&"Properties"===o.last()){"object"!=typeof a&&(a={});const e=Object.entries(null!=(h=b.properties)?h:{}).map((([e,t])=>[e,p.StringNode(null,{enum:t})]));return Object.entries(null!=(f=b.properties)?f:{}).forEach((([e,t])=>{"string"!=typeof a[e]?o.model.errors.add(o.push(e),"error.expected_string"):t.includes(a[e])||o.model.errors.add(o.push(e),"error.invalid_enum_option",a[e])})),p.ObjectNode(Object.fromEntries(e)).hook(this,o,a,r,i,c)}return[null,d(P,null,x.hook(this,y,null!=(g=y.get())?g:"",r,i,c)[1],d("button",{class:"add tooltipped tip-se","aria-label":fe(r,"add"),onClick:()=>{const t=y.get();o.model.set(o.push(t),p.DataModel.wrapLists(e.default()))}},oe.plus_circle)),d(P,null,"object"==typeof a&&Object.entries(a).map((([t,n])=>{var u,m,h,f;const g=o.modelPush(t),y="object"===e.type(g),x=w(t);if(y&&(!1===x||void 0===x&&a.length>20))return d("div",{class:"node node-header","data-category":e.category(g)},d(yn,{lang:r,path:g,nested:!0}),d("button",{class:"toggle tooltipped tip-se","aria-label":`${fe(r,"expand")}\n${fe(r,"expand_all","Ctrl")}`,onClick:v(t)},oe.chevron_right),d("label",null,t),d(un,{key:t,path:g,value:n,schema:e}));const k=b?p.StringNode(null,{enum:null!=(m=null==(u=b.properties)?void 0:u[t])?m:[]}):e;(null==(h=null==b?void 0:b.properties)?void 0:h[t])&&"string"==typeof n&&!(null==(f=b.properties)?void 0:f[t].includes(n))&&o.model.errors.add(g,"error.invalid_enum_option",n);return d(gn,l(s({key:t,schema:k,path:g,value:n},{lang:r,states:i,ctx:c}),{label:t}),y&&d("button",{class:"toggle tooltipped tip-se","aria-label":`${fe(r,"collapse")}\n${fe(r,"collapse_all","Ctrl")}`,onClick:_(t)},oe.chevron_down),d("button",{class:"remove tooltipped tip-se","aria-label":fe(r,"remove"),onClick:()=>g.set(void 0)},oe.trashcan))})))]},number:(e,t,n,o,a,r)=>[null,d(pn,s({},l(s({},e),{path:t,value:n,lang:o,states:a,ctx:r}))),null],object({node:e,config:t,getActiveFields:n,getChildModelPath:o},a,r,i,c,u){var m;const{expand:h,collapse:f,isToggled:g}=mn();if(0==a.getArray().length&&function(e,t){var n;return"feature"===e&&"decorated"===(null==(n=null==t?void 0:t.type)?void 0:n.replace(/^minecraft:/,""))&&ve(null==t?void 0:t.config)}(t.context,r)){const{wrapper:e,fields:t}=function(e,t,n){const o=[],a=kn(n,o),r={type:e.type,config:p.ObjectNode({decorators:p.ListNode(Re),feature:Fe},{context:"feature.decorated"})},i=p.ObjectNode(r,{context:"feature"}),s=new p.Path(["config","feature"]),l=new p.Path(["config","decorators"]),c=t.getModel(),d=new Qt(i,(e=>{if(e.startsWith(s))return new p.Path([...[...Array(o.length-1)].flatMap((()=>["config","feature"])),...e.modelArr]);if(e.startsWith(l)){if(2===e.modelArr.length)return new p.Path([]);const t=e.modelArr[2];if("number"==typeof t)return new p.Path([...[...Array(t)].flatMap((()=>["config","feature"])),"config","decorator",...e.modelArr.slice(3)])}return e}),(e=>{if(e.equals(l)){const e=[];return kn(c.data,e),e}return c.get(d.map(e))}),((e,t,n)=>{if(e.startsWith(s)){const o=[];kn(c.data,o);const a=new p.Path([...[...Array(o.length-1)].flatMap((()=>["config","feature"])),...e.modelArr]);return c.set(a,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 p.Path,Cn(e,t),n)}if("number"==typeof o){if(3===e.modelArr.length&&void 0===t){const e=d.get(s),t=[];kn(c.data,t),t.splice(o,1);const a=Cn(e,t);return c.set(new p.Path,a,n)}{const a=new p.Path([...[...Array(o)].flatMap((()=>["config","feature"])),"config","decorator",...e.modelArr.slice(3)]);return c.set(a,t,n)}}}c.set(e,t,n)}));return d.data={type:c.data.type,config:{decorators:o,feature:a}},d.errors=c.errors,{fields:r,wrapper:d}}(n(a),a,r);r=e.data,n=()=>t,o=(t,n)=>new p.ModelPath(e,new p.Path(t.getArray(),["feature"])).push(n)}let v=null,_=null;if(e.optional())if(void 0===r){const t=()=>a.set(p.DataModel.wrapLists(e.default()));_=d("button",{class:"collapse closed tooltipped tip-se","aria-label":fe(i,"expand"),onClick:t},oe.plus_circle)}else{const e=()=>a.set(void 0);_=d("button",{class:"collapse open tooltipped tip-se","aria-label":fe(i,"remove"),onClick:e},oe.trashcan)}const w=a.getContext().join(".");if(sn.includes(w)){const e=g("");if(v=d(P,null,d("button",{class:"toggle tooltipped tip-se","aria-label":fe(i,e?"collapse":"expand"),onClick:e?f(""):h("")},e?oe.chevron_down:oe.chevron_right)),!e)return[v,_,null]}const y="object"==typeof r&&null!==r&&(null==(m=e.default())?void 0:m.pools)?l(s({},u),{loot:null==r?void 0:r.type}):u,b=d(P,null,"object"==typeof r&&null!==r&&!(e.optional()&&void 0===r)&&Object.entries(n(a)).filter((([e,t])=>t.enabled(a))).map((([e,t])=>{var n,l,u;const m=o(a,e),h=m.getContext().join(".");if(tn.includes(h))return null;const[p,f,g]=t.hook(this,m,r[e],i,c,y);if(!(p||f||(null!=(u=null==(l=null==(n=null==g?void 0:g.props)?void 0:n.children)?void 0:l.length)?u:0)>0))return null;const w="object"===t.type(m)&&nn.includes(h),b=on.includes(h);return w||b?(v=d(P,null,v,d(yn,{lang:i,path:m}),d(bn,{lang:i,path:m}),p),_=d(P,null,_,f),w?g:null):d(gn,s({key:e,schema:t,path:m,value:r[e]},{lang:i,states:c,ctx:y}))})));return[v,_,b]},string:(e,t,n,o,a,r)=>[null,d(fn,s({},l(s({},e),{path:t,value:n,lang:o,states:a,ctx:r}))),null]};function un({path:e,value:t}){var n,o,a,r,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==(a=null==t?void 0:t.name)?void 0:a.replace(/^minecraft:/,""))?i:null==(r=null==t?void 0:t.type)?void 0:r.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 mn(){const[e,t]=m(new Map),[n,o]=m(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 hn({path:e,node:t,value:n,lang:o}){const a=o=>{e.model.set(e,t.optional()&&n===o?void 0:o)};return d(P,null,d("button",{class:!1===n?"selected":"",onClick:()=>a(!1)},fe(o,"false")),d("button",{class:!0===n?"selected":"",onClick:()=>a(!0)},fe(o,"true")))}function pn({path:e,config:t,integer:n,value:o,lang:a}){var r;const i=t=>{const o=t.target.value,a=n?parseInt(o):parseFloat(o);e.model.set(e,a)};return d(P,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!=(r=null==o?void 0:o.toString(16).padStart(6,"0"))?r:"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:()=>be(e.model),class:"tooltipped tip-se","aria-label":fe(a,"generate_new_seed")},oe.sync))}function fn({path:e,getValues:t,config:n,node:o,value:a,lang:r,states:i}){var s;const l=t=>{t.stopPropagation();const n=t.target.value;n!==a&&e.model.set(e,0===n.length?void 0:n)},c=t(),u=e.getContext().join(".");if(an.includes(u))return d("textarea",{value:null!=a?a:"",onBlur:l});if(vn(n)&&!n.additional||en.includes(u)){let t=new p.Path([]);return vn(n)&&"string"==typeof n.enum?t=t.contextPush(n.enum):vn(n)||"resource"!==(null==n?void 0:n.validator)||"string"!=typeof n.params.pool?vn(n)&&(t=e):t=t.contextPush(n.params.pool),d("select",{value:null!=a?a:"",onChange:l},o.optional()&&d("option",{value:""},fe(r,"unset")),c.map((e=>d("option",{value:e},wn(r,t.contextPush(e.replace(/^minecraft:/,"")))))))}if(vn(n)||"block_state_key"!==(null==n?void 0:n.validator)){const e=we();return d(P,null,d("input",{value:null!=a?a:"",onBlur:l,onKeyDown:e=>{"Enter"===e.key&&l(e)},list:c.length>0?e:""}),c.length>0&&d("datalist",{id:e},c.map((e=>d("option",{value:e})))))}{const t=null==i?void 0:i[p.relativePath(e,n.params.id).get()],o=Object.keys(null!=(s=null==t?void 0:t.properties)?s:{});return d("select",{value:null!=a?a:"",onChange:l},o.map((e=>d("option",null,e))))}}const gn=N((function({label:e,schema:t,path:n,value:o,lang:a,states:r,ctx:i,actions:c,children:u}){var m;const h=t.type(n),p=t.category(n),f=n.getContext().join("."),[g,v]=ee(),_=l(s({},i),{depth:(null!=(m=i.depth)?m:0)+1});delete _.index;const[w,y,b]=t.hook(dn,n,o,a,r,_);return d("div",{class:`node ${h}-node`,"data-category":p},d("div",{class:"node-header",onContextMenu:e=>{e.preventDefault(),v()}},d(yn,{lang:a,path:n}),d(bn,{lang:a,path:n}),u,w,d("label",null,null!=e?e:wn(a,n,`${n.last()}`),g&&d("div",{class:"node-menu"},null==c?void 0:c.map((e=>{var t;return d("div",{key:e.label,class:"menu-item"},d(K,{icon:e.icon,tooltip:fe(a,e.label),tooltipLoc:"se",onClick:()=>e.onSelect()}),d("span",null,null!=(t=e.description)?t:fe(a,e.label)))})),d("div",{class:"menu-item"},d(K,{icon:"clippy",tooltip:fe(a,"copy_context"),tooltipLoc:"se",onClick:()=>navigator.clipboard.writeText(f)}),d("span",null,f)))),y),b&&d("div",{class:"node-body"},b))}),((e,t)=>e.schema===t.schema&&e.lang===t.lang&&e.path.equals(t.path)&&Ie(e.ctx,t.ctx)&&Ie(e.value,t.value)));function vn(e){return!!(null==e?void 0:e.enum)}function _n(e){var t,n=0;for(t=0;te.path.startsWith(t))):t.model.errors.get(t,!0);if(0===a.length)return null;const r=fe(e,a[0].error,...null!=(o=a[0].params)?o:[]);return xn("node-error","issue_opened",r)}function bn({lang:e,path:t}){const n=t.contextPush("help").getContext().join("."),o=fe(e,n);return o===n?null:xn("node-help","info",o)}const xn=(e,t,n)=>{const[o,a]=ee();return d("div",{class:`node-icon ${e}${o?" show":""}`,onClick:a},oe[t],d("span",{class:"icon-popup"},n))};function kn(e,t){var n,o;return"decorated"!==(null==(n=null==e?void 0:e.type)?void 0:n.replace(/^minecraft:/,""))?e:ve(null==e?void 0:e.config)?(t.push({id:t.length,node:e.config.decorator}),kn(null!=(o=e.config.feature)?o:"",t)):e}function Cn(e,t){return 0===t.length?e:{type:"minecraft:decorated",config:{decorator:t.shift().node,feature:Cn(e,t)}}}function An({lang:e,model:t,blockStates:n,onError:o}){if(!t||!n||"none"===e)return d(P,null);const[a]=T((e=>{o(`Error rendering the tree: ${e.message}`),console.error(e)}));if(a)return d(P,null);const[,r]=m(0);return te(t,(()=>{r((e=>e+1))})),d("div",{class:"tree"},d(cn,s({},{model:t,lang:e,blockStates:n})))}const Mn={system:"device_desktop",dark:"moon",light:"sun"};function zn({lang:e,title:t,version:n,theme:o,changeTheme:a,language:r,changeLanguage:i}){const s=fe.bind(null,e),l=Ce(B());return d("header",null,d("div",{class:"title"},d(H,{class:"home-link",href:"/","aria-label":s("home")},jn.home),d("h1",null,t),l&&d(ne,{icon:"chevron_down",tooltip:s("switch_generator")},Z.generators.filter((e=>e.category===(null==l?void 0:l.category)&&We(n,e.minVersion))).map((e=>d(K,{label:s(e.id),active:e.id===l.id,onClick:()=>R(ke(e.url))}))))),d("nav",null,d("ul",null,d("li",null,d(ne,{icon:"globe",tooltip:s("language")},Z.languages.map((({code:e,name:t})=>d(K,{label:t,active:e===r,onClick:()=>i(e)}))))),d("li",null,d(ne,{icon:Mn[o],tooltip:s("theme")},Object.entries(Mn).map((([e,t])=>d(K,{icon:t,label:s(`theme.${e}`),active:e===o,onClick:()=>a(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":s("github")},oe.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 Vn({lang:e,assets:t,sounds:n,sound:o,delay:a,pitch:r,volume:i,onEdit:s,onDelete:l,delayedPlay:h}){const p=fe.bind(null,e),[f,g]=m(!0),[v,_]=m(!1),[w,y]=m(!1),b=u([]),x=`playsound minecraft:${o} master @s ~ ~ ~ ${i} ${r}`;c((()=>{var e,a,s;const l=n[o];y(0===(null!=(a=null==(e=null==l?void 0:l.sounds)?void 0:e.length)?a:0)),b.current.forEach((e=>e.stop())),b.current=(null!=(s=null==l?void 0:l.sounds)?s:[]).map((e=>{const n="string"==typeof e?e:e.name,o=tt(t[`minecraft/sounds/${n}.ogg`].hash),a=new F.Howl({src:[o],format:["ogg"],volume:i,rate:r});a.on("end",(()=>{_(!1)}));const s=()=>{f&&b.current.every((e=>"loaded"===e.state()))&&g(!1)};return"loaded"===a.state()?setTimeout((()=>s())):a.on("load",(()=>{s()})),a})),g(!0)}),[o,n]),c((()=>{b.current.forEach((e=>e.rate(r)))}),[r]),c((()=>{b.current.forEach((e=>e.volume(i)))}),[i]);const k=()=>{if(f||w)return;C();const e=Math.floor(Math.random()*b.current.length);b.current[e].play(),_(!0)},C=()=>{b.current.forEach((e=>e.stop()))};c((()=>{h&&setTimeout((()=>k()),50*a)}),[h]),c((()=>()=>C()),[]);const[A,M]=m(!1),z=u(void 0);return d("div",{class:`sound-config${f?" loading":v?" playing":""}${w?" invalid":""}`},d(K,{class:"play",icon:w?"alert":f?"sync":"play",label:p("sounds.play"),onClick:k,tooltip:p(w?"sounds.unknown_sound":f?"sounds.loading_sound":"sounds.play_sound"),tooltipLoc:"se"}),d(ie,{class:"btn btn-input sound",list:"sound-list",spellcheck:!1,value:o,onChange:e=>s({sound:e})}),d("label",{class:"delay-label"},p("sounds.delay"),": "),d(se,{class:"btn btn-input delay",min:0,value:a,onChange:e=>s({delay:e})}),d("label",{class:"pitch-label"},p("sounds.pitch"),": "),d(le,{class:"pitch tooltipped tip-s",min:.5,max:2,step:.01,"aria-label":r.toFixed(2),style:`--x: ${100/1.5*(r-.5)}%`,value:r,onChange:e=>s({pitch:e})}),d("label",{class:"volume-label"},p("sounds.volume"),": "),d(le,{class:"volume tooltipped tip-s",min:0,max:1,step:.01,"aria-label":i.toFixed(2),style:`--x: ${100*i}%`,value:i,onChange:e=>s({volume:e})}),d(K,{class:"copy"+(A?" active":""),icon:A?"check":"terminal",label:p("copy"),tooltip:p(A?"copied":"sounds.copy_command"),onClick:()=>{navigator.clipboard.writeText(x),M(!0),void 0!==z.current&&clearTimeout(z.current),z.current=setTimeout((()=>{M(!1)}),2e3)}}),d(K,{class:"remove",icon:"trashcan",tooltip:p("sounds.remove_sound"),onClick:()=>{l(),C()}}))}function $n({title:e,desc:t,link:n,icon:o,children:a}){const r=d(P,null,d("div",{class:"tool-head"},o&&jn[o],d("div",null,d("h3",null,e),d("p",null,t))),a&&d("div",{class:"tool-body"},a));return n?d("a",{class:"tool-card",href:n},r):d("div",{class:"tool-card"},r)}function En({category:e,lang:t,changeTitle:n}){const o=fe.bind(null,t);return n(o("title.generator_category",o(e))),d("main",null,d("div",{class:"category"},Z.generators.filter((t=>t.category===e)).map((e=>d($n,{title:o(e.id),link:ke(e.url)})))))}function In({lang:e,changeTitle:t}){const n=fe.bind(null,e),[o,a]=m(null);t(n("title.changelog"));const[r,i]=m([]);c((()=>{Se().then((e=>i(e))).catch((e=>{console.error(e),a(e)}))}),[]);const[s,l]=m(""),[u,h]=m([]),p=e=>{u.includes(e)?h(u.filter((t=>t!==e))):h([...u,e])},f=J((()=>{const e=s.split(" ").map((e=>e.trim().toLowerCase())).filter((e=>e.length>0));return 0===e.length&&0===u.length?r:r.filter((t=>{if(!u.every((e=>t.tags.includes(e))))return!1;const n=t.tags.join(" ")+" "+t.content.toLowerCase();return e.every((e=>n.includes(e)))}))}),[r,s,u]),[g,v]=m(!1),_=J((()=>f.sort(((e,t)=>g?t.order-e.order:e.order-t.order))),[f,g]);return d("main",null,d(q,{type:"text",id:"changelog"}),o&&d(ae,{error:o,onDismiss:()=>a(null)}),d("div",{class:"changelog-controls"},d("div",{class:"changelog-query"},d(ie,{class:"btn btn-input changelog-search",list:"sound-list",placeholder:n("changelog.search"),value:s,onChange:l}),d(K,{icon:g?"sort_desc":"sort_asc",label:g?"Newest first":"Oldest first",onClick:()=>v(!g)})),u.length>0&&d("div",{class:"changelog-tags"},u.map((e=>d(Pn,{label:e,onClick:()=>h(u.filter((t=>t!==e)))}))))),d("div",{class:"changelog"},_.map((e=>d(On,{change:e,activeTags:u,toggleTag:p})))))}function On({change:e,activeTags:t,toggleTag:n}){return d("div",{class:"changelog-entry"},d("div",{class:"changelog-version"},d(Ln,s({},e.version)),d(Ln,s({},e.group))),d("div",{class:"changelog-tags"},e.tags.map((e=>d(Pn,{label:e,onClick:()=>n(e),active:t.includes(e)})))),d("div",{class:"changelog-content",dangerouslySetInnerHTML:{__html:W(e.content)}}))}function Ln({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 Pn({label:e,active:t,onClick:n}){const o="breaking"===e?5:xe(e)%360;return d("div",{class:`changelog-tag${t?" active":""}${n?" clickable":""}`,style:`--tint: ${o}`,onClick:n},"breaking"===e&&oe.alert,e)}function Sn({lang:e,changeTitle:t,version:n,changeVersion:o}){var a;const r=fe.bind(null,e),[i,h]=m(null),[f,g]=T();if(f)return d("main",null,d(ae,{error:`Something went wrong rendering the generator: ${f.message}`,onDismiss:g}));const v=Ce(B());if(!v)return d("main",null,d(ae,{error:`Cannot find generator "${B()}"`}));const _=Z.versions.filter((e=>We(e.id,v.minVersion,v.maxVersion))).map((e=>e.id));t(r("title.generator",r(v.id)),_),We(n,v.minVersion)||h(`The minimum version for this generator is ${v.minVersion}`);const[w,y]=m(null),[b,x]=m(null);c((()=>{h(null),y(null),async function(e){return(await Je(e)).blockStates}(n).then((e=>x(e))),async function(e,t){var n;if(!Be[t]||Be[t].version!==e){const a=await Je(e);Re=p.Reference(a.schemas,"configured_decorator"),Fe=p.ChoiceNode([{type:"string",node:p.StringNode(a.collections,{validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:p.Reference(a.schemas,"configured_feature")}],{choiceContext:"feature"});const r=null==(n=Z.generators.find((e=>e.id===t)))?void 0:n.schema;if(!r)throw new Error(`Cannot find model ${t}`);try{const n=a.schemas.get(r),o=new p.DataModel(n,{wrapLists:!0});Be[t]?o.reset(Be[t].model.data,!1):(o.validate(!0),o.history=[JSON.stringify(o.data)]),Be[t]={model:o,version:e}}catch(o){const n=new Error(`Cannot get generator "${t}" for version "${e}": ${$e(o)}`);throw o instanceof Error&&(n.stack=o.stack),n}}return Be[t].model}(n,v.id).then((e=>{Y.setGenerator(v.id),y(e)})).catch((e=>{console.error(e),h($e(e))}))}),[n,v.id]),te(w,(()=>{h(null)}));const k=e=>{e.ctrlKey&&"z"===e.key?(Y.generatorEvent("undo","Hotkey"),null==w||w.undo()):e.ctrlKey&&"y"===e.key&&(Y.generatorEvent("redo","Hotkey"),null==w||w.redo())};c((()=>(document.addEventListener("keyup",k),()=>{document.removeEventListener("keyup",k)})),[w]);const[C,A]=m(""),[M,z]=m([]);c((()=>{(async function(e){return(await Je(e)).collections})(n).then((e=>{const t=(null!=C?C:"").trim().split(" "),n=e.get(v.id).map((e=>e.slice(10))).filter((e=>t.every((t=>e.includes(t)))));n&&z(n)})).catch((e=>{console.error(e),h(e.message)}))}),[n,v.id,C]);const[j,V]=m(window.innerWidth>820),[$,E]=m(0),[I,O]=m(0),[L,S]=m(0),[D,N]=m(!1),H=u(void 0),[R,F]=m(!1),J=Wt.includes(v.id);R&&!J&&F(!1);let W=1;J&&(W+=1),j&&(W+=2);return d(P,null,d("main",{class:R?"has-preview":""},d(q,{id:"data-pack-generator",type:"text"}),d("div",{class:"controls"},d(K,{icon:"upload",label:r("import"),onClick:()=>{Y.generatorEvent("import"),V(!0),S(L+1)}}),d(ne,{icon:"archive",label:r("presets"),relative:!1},d(X,{icon:"search",large:!0,value:C,onChange:A,doSelect:1,placeholder:r("search")}),d("div",{class:"result-list"},M.map((e=>d(K,{label:e,onClick:()=>{return t=e,Y.generatorEvent("load-preset",t),void et(n,null!=(o=v.path)?o:v.id,t).then((e=>{var t,n;const o=null==w?void 0:w.get(new p.Path(["generator","seed"]));void 0!==(null==(t=null==e?void 0:e.generator)?void 0:t.seed)&&void 0!==o&&(e.generator.seed=o,void 0!==(null==(n=e.generator.biome_source)?void 0:n.seed)&&(e.generator.biome_source.seed=o)),null==w||w.reset(p.DataModel.wrapLists(e),!1)}));var t,o}})))),0===M.length&&d(K,{label:r("no_presets")})),d(ne,{icon:"tag",label:n},_.reverse().map((e=>d(K,{label:e,active:e===n,onClick:()=>o(e)})))),d(ne,{icon:"kebab_horizontal",tooltip:r("more")},d(K,{icon:"history",label:r("reset"),onClick:()=>{Y.generatorEvent("reset"),null==w||w.reset(p.DataModel.wrapLists(w.schema.default()),!0)}}),d(K,{icon:"arrow_left",label:r("undo"),onClick:e=>{e.stopPropagation(),Y.generatorEvent("undo","Menu"),null==w||w.undo()}}),d(K,{icon:"arrow_right",label:r("redo"),onClick:e=>{e.stopPropagation(),Y.generatorEvent("redo","Menu"),null==w||w.redo()}}))),i&&d(ae,{error:i,onDismiss:()=>h(null)}),d(An,l(s({},{lang:e,model:w,version:n,blockStates:b}),{onError:h}))),d("div",{class:"popup-actions",style:`--offset: -${8+50*W}px;`},d("div",{class:`popup-action action-preview${J?" shown":""} tooltipped tip-nw`,"aria-label":r(R?"hide_preview":"show_preview"),onClick:()=>{Y.generatorEvent("toggle-preview",R?"hidden":"visible"),F(!R)}},R?oe.x_circle:oe.play),d("div",{class:`popup-action action-download${j?" shown":""} tooltipped tip-nw`,"aria-label":r("download"),onClick:()=>{Y.generatorEvent("download"),O(I+1)}},oe.download),d("div",{class:`popup-action action-copy${j?" shown":""}${D?" active":""} tooltipped tip-nw`,"aria-label":r(D?"copied":"copy"),onClick:()=>{Y.generatorEvent("copy"),E($+1)}},D?oe.check:oe.clippy),d("div",{class:"popup-action action-code shown tooltipped tip-nw","aria-label":r(j?"hide_output":"show_output"),onClick:()=>{Y.generatorEvent("toggle-output",j?"hidden":"visible"),V(!j),E(0),O(0),S(0)}},j?oe.chevron_right:oe.code)),d("div",{class:"popup-preview"+(R?" shown":"")},d(Gt,l(s({},{lang:e,model:w,version:n,id:v.id}),{shown:R,onError:h}))),d("div",{class:"popup-source"+(j?" shown":"")},d(Xt,l(s({},{lang:e,model:w,blockStates:b,doCopy:$,doDownload:I,doImport:L}),{name:null!=(a=v.schema)?a:"data",copySuccess:()=>{N(!0),void 0!==H.current&&clearTimeout(H.current),H.current=setTimeout((()=>{N(!1)}),2e3)},onError:h}))))}function Dn({lang:e,changeTitle:t}){const n=fe.bind(null,e);return t(n("title.home")),console.log(Z.generators),d("main",null,d("div",{class:"home"},d($n,{title:"Data packs"},Z.generators.filter((e=>!e.category)).map((e=>d($n,{title:n(e.id),link:ke(e.url)}))),d($n,{title:n("worldgen"),link:"/worldgen/"})),d($n,{title:"Resource packs"},Z.generators.filter((e=>"assets"===e.category)).map((e=>d($n,{title:n(e.id),link:ke(e.url)})))),d($n,{title:"Report Inspector",icon:"report",link:"https://misode.github.io/report/",desc:"Analyse your performance reports"}),d($n,{title:"Minecraft Sounds",icon:"sounds",link:"/sounds/",desc:"Browse through and mix all the vanilla sounds"}),d($n,{title:"Data Pack Upgrader",link:"https://misode.github.io/upgrader/",desc:"Convert your 1.16 data packs to 1.17"}),d($n,{title:"Technical Changelog",link:"/changelog/"})))}function Nn({lang:e,changeTitle:t,version:n,changeVersion:o}){const a=fe.bind(null,e),[r,i]=m(null);t(a("title.sounds"));const[h,p]=m({}),[f,g]=m({}),v=Object.keys(null!=f?f:{});c((()=>{lt(n).then((e=>(p(e),ct(n)))).then((e=>{e&&g(e)})).catch((e=>{console.error(e),i($e(e))}))}),[n]);const[_,w]=m(""),[y,b]=m([]),x=()=>{b([{id:we(),sound:_,delay:0,pitch:1,volume:1},...y])},k=e=>()=>{b(y.filter((t=>t.id!==e)))},[C,A]=m(0),M=u(null);return d("main",null,d(q,{type:"text",id:"sounds"}),r&&d(ae,{error:r,onDismiss:()=>i(null)}),v.length>0&&d(P,null,d("div",{class:"controls sounds-controls"},d("div",{class:"sound-search-group"},d(ie,{class:"btn btn-input sound-search",list:"sound-list",placeholder:a("sounds.search"),value:_,onChange:w,onEnter:x}),d(K,{icon:"plus",tooltip:a("sounds.add_sound"),class:"add-sound",onClick:x})),y.length>1&&d(K,{icon:"play",label:a("sounds.play_all"),class:"play-all-sounds",onClick:()=>{A(C+1)}}),d("div",{class:"spacer"}),d(K,{icon:"download",label:a("download"),tooltip:a("sounds.download_function"),class:"download-sounds",onClick:()=>{const e=y.some((e=>e.delay>0)),t=y.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");M.current.setAttribute("href","data:text/plain;charset=utf-8,"+t+"%0A"),M.current.setAttribute("download","sounds.mcfunction"),M.current.click()}}),d(ne,{icon:"tag",label:n},Z.versions.reverse().map((e=>d(K,{label:e.id,active:e.id===n,onClick:()=>o(e.id)}))))),d("div",{class:"sounds"},y.map((t=>{return d(Vn,l(s(s({key:t.id},t),{lang:e,assets:h,sounds:f,delayedPlay:C}),{onEdit:(n=t.id,e=>{b(y.map((t=>t.id===n?s(s({},t),e):t)))}),onDelete:k(t.id)}));var n}))),d("a",{ref:M,style:"display: none;"})),d("datalist",{id:"sound-list"},v.map((e=>d("option",{key:e,value:e})))))}function Tn(){const[e,t]=m("none");c((()=>{(async()=>{const e=Yt.getLanguage();await Promise.all([ge("en"),..."en"!==e?[ge(e)]:[]]),t(e)})()}),[]);const[n,o]=m(Yt.getTheme());c((()=>{document.documentElement.setAttribute("data-theme",n)}),[n]);const[a,r]=m(Yt.getVersion()),i=e=>{Y.setVersion(e),Yt.setVersion(e),r(e)},[l,u]=m(fe(e,"title.home")),h=(e,t)=>{null!=t||(t=Z.versions.map((e=>e.id))),t.splice(0,t.length-3),document.title=`${e} Minecraft ${t.join(", ")}`,u(e)};return d(P,null,d(zn,s({},{lang:e,title:l,version:a,theme:n,language:e,changeLanguage:async e=>{pe[e]||await ge(e),Y.setLanguage(e),Yt.setLanguage(e),t(e)},changeTheme:e=>{Y.setTheme(e),Yt.setTheme(e),o(e)}})),d(U,{onChange:e=>{setTimeout((()=>Y.pageview(ke(e.url))))}},d(Dn,s({path:"/"},{lang:e,changeTitle:h})),d(En,s({path:"/worldgen",category:"worldgen"},{lang:e,changeTitle:h})),d(En,s({path:"/assets",category:"assets"},{lang:e,changeTitle:h})),d(Nn,s({path:"/sounds"},{lang:e,version:a,changeTitle:h,changeVersion:i})),d(In,s({path:"/changelog"},{lang:e,changeTitle:h})),d(Sn,s({default:!0},{lang:e,version:a,changeTitle:h,changeVersion:i}))))}G(d(Tn,null),document.body); -//# sourceMappingURL=index.31efb81f.js.map diff --git a/assets/index.31efb81f.js.map b/assets/index.31efb81f.js.map deleted file mode 100644 index d780a73b..00000000 --- a/assets/index.31efb81f.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.31efb81f.js","sources":["../../src/app/Analytics.ts","../../src/app/components/Ad.tsx","../../src/app/components/Btn.tsx","../../src/app/components/BtnInput.tsx","../../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","../../vite/preload-helper","../../src/app/Locales.ts","../../src/app/Utils.ts","../../src/app/services/Changelogs.ts","../../src/app/services/Schemas.ts","../../src/app/services/DataFetcher.ts","../../src/app/services/Manifest.ts","../../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/Store.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/pages/Category.tsx","../../src/app/pages/Changelog.tsx","../../src/app/pages/Generator.tsx","../../src/app/pages/Home.tsx","../../src/app/pages/Sounds.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 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\ntype BtnMenuProps = {\n\ticon?: keyof typeof Octicon,\n\tlabel?: string,\n\trelative?: boolean,\n\ttooltip?: string,\n\tchildren: ComponentChildren,\n}\nexport function BtnMenu({ icon, label, relative, tooltip, children }: BtnMenuProps) {\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\tdownload: ,\n\tduplicate: ,\n\teye: ,\n\teye_closed: ,\n\tgear: ,\n\tglobe: ,\n\thistory: ,\n\tinfo: ,\n\tissue_opened: ,\n\tkebab_horizontal: ,\n\tlink: ,\n\tmark_github: ,\n\tmoon: ,\n\tplay: ,\n\tplus: ,\n\tplus_circle: ,\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","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 config from '../config.json'\nimport English from '../locales/en.json'\n\nexport type Localize = (key: string, ...params: string[]) => string\n\ninterface Locale {\n\t[key: string]: string\n}\n\nexport const Locales: {\n\t[key: string]: Locale,\n} = {\n\tfallback: English,\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\nexport function locale(language: string, key: string, ...params: string[]): string {\n\tconst value: string | undefined = Locales[language]?.[key]\n\t\t?? Locales.en?.[key] ?? Locales.fallback[key] ?? key\n\treturn resolveLocaleParams(value, params)\n}\n\nexport async function loadLocale(language: string) {\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","import type { DataModel } from '@mcschema/core'\nimport { Path } from '@mcschema/core'\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 getGenerator(url: string) {\n\tconst trimmedUrl = url.replace(/^\\//, '').replace(/\\/$/, '').replace(/\\?.*/, '')\n\treturn config.generators.find(g => g.url === trimmedUrl)\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()\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, 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> = {}\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}\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","import type { CollectionRegistry } from '@mcschema/core'\nimport config from '../../config.json'\nimport { message } from '../Utils'\nimport type { VersionAssets, VersionManifest } from './Manifest'\nimport type { BlockStateRegistry, VersionId } from './Schemas'\nimport { checkVersion } from './Schemas'\n\n['1.15', '1.16', '1.17'].forEach(v => localStorage.removeItem(`cache_${v}`))\n\nconst CACHE_NAME = 'misode-v1'\n\ntype VersionRef = 'mcdata_master' | 'mcassets' | 'vanilla_datapack_summary' | 'vanilla_datapack_data'\n\ntype Version = {\n\tid: string,\n\trefs: Partial<{ [key in VersionRef]: string }>,\n\tdynamic?: boolean,\n}\n\ndeclare var __MCDATA_MASTER_HASH__: string\ndeclare var __VANILLA_DATAPACK_SUMMARY_HASH__: string\n\nconst mcdataUrl = 'https://raw.githubusercontent.com/Arcensoth/mcdata'\nconst mcassetsUrl = 'https://raw.githubusercontent.com/InventivetalentDev/minecraft-assets'\nconst vanillaDatapackUrl = 'https://raw.githubusercontent.com/SPGoding/vanilla-datapack'\nconst manifestUrl = 'https://launchermeta.mojang.com/mc/game/version_manifest.json'\nconst resourceUrl = 'https://resources.download.minecraft.net/'\nconst corsUrl = 'https://misode-cors-anywhere.herokuapp.com/'\n\nconst refs: {\n\tid: VersionRef,\n\thash: string,\n\turl: string,\n}[] = [\n\t{\n\t\tid: 'mcdata_master',\n\t\thash: __MCDATA_MASTER_HASH__,\n\t\turl: mcdataUrl,\n\t},\n\t{\n\t\tid: 'vanilla_datapack_summary',\n\t\thash: __VANILLA_DATAPACK_SUMMARY_HASH__,\n\t\turl: vanillaDatapackUrl,\n\t},\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\tconsole.debug(`[fetchData] ${JSON.stringify(version)}`)\n\n\tif (version.dynamic) {\n\t\tawait Promise.all(refs\n\t\t\t.filter(r => localStorage.getItem(`cached_${r.id}`) !== r.hash)\n\t\t\t.map(async r => {\n\t\t\t\tconsole.debug(`[deleteMatching] ${r.id} '${localStorage.getItem(`cached_${r.id}`)}' < '${r.hash}' ${r.url}/${version.refs[r.id]}`)\n\t\t\t\tawait deleteMatching(url => url.startsWith(`${r.url}/${version.refs[r.id]}`))\n\t\t\t\tconsole.debug(`[deleteMatching] Done! ${r.id} ${r.hash} '${localStorage.getItem(`cached_${r.id}`)}'`)\n\t\t\t\tlocalStorage.setItem(`cached_${r.id}`, r.hash)\n\t\t\t\tconsole.debug(`[deleteMatching] Set! ${r.id} ${r.hash} '${localStorage.getItem(`cached_${r.id}`)}'`)\n\t\t\t}))\n\t}\n\n\tawait Promise.all([\n\t\tfetchRegistries(version, collectionTarget),\n\t\tfetchBlockStateMap(version, blockStateTarget),\n\t\tfetchDynamicRegistries(version, collectionTarget),\n\t\tfetchAssetsRegistries(version, collectionTarget),\n\t])\n}\n\nasync function fetchRegistries(version: Version, target: CollectionRegistry) {\n\tconsole.debug(`[fetchRegistries] ${version.id}`)\n\tconst registries = config.registries\n\t\t.filter(r => !r.dynamic && !r.asset)\n\t\t.filter(r => checkVersion(version.id, r.minVersion, r.maxVersion))\n\n\tif (checkVersion(version.id, undefined, '1.15')) {\n\t\tconst url = `${mcdataUrl}/${version.refs.mcdata_master}/generated/reports/registries.json`\n\t\ttry {\n\t\t\tconst data = await getData(url, (data) => {\n\t\t\t\tconst res: {[id: string]: string[]} = {}\n\t\t\t\tObject.keys(data).forEach(k => {\n\t\t\t\t\tres[k.slice(10)] = Object.keys(data[k].entries)\n\t\t\t\t})\n\t\t\t\treturn res\n\t\t\t})\n\t\t\tregistries.forEach(r => {\n\t\t\t\ttarget.register(r.id, data[r.id] ?? [])\n\t\t\t})\n\t\t} catch (e) {\n\t\t\tconsole.warn('Error occurred while fetching registries:', message(e))\n\t\t}\n\t} else {\n\t\tawait Promise.all(registries.map(async r => {\n\t\t\ttry {\n\t\t\t\tconst url = r.path\n\t\t\t\t\t? `${mcdataUrl}/${version.refs.mcdata_master}/${r.path}/data.min.json`\n\t\t\t\t\t: `${mcdataUrl}/${version.refs.mcdata_master}/processed/reports/registries/${r.id}/data.min.json`\n\t\t\t\ttarget.register(r.id, await getData(url, v => v.values))\n\t\t\t} catch (e) {\n\t\t\t\tconsole.warn(`Error occurred while fetching registry ${r.id}:`, message(e))\n\t\t\t}\n\t\t}))\n\t}\n}\n\nasync function fetchBlockStateMap(version: Version, target: BlockStateRegistry) {\n\tconsole.debug(`[fetchBlockStateMap] ${version.id}`)\n\tif (checkVersion(version.id, undefined, '1.16')) {\n\t\tconst url = (checkVersion(version.id, undefined, '1.15'))\n\t\t\t? `${mcdataUrl}/${version.refs.mcdata_master}/generated/reports/blocks.json`\n\t\t\t: `${mcdataUrl}/${version.refs.mcdata_master}/processed/reports/blocks/data.min.json`\n\n\t\ttry {\n\t\t\tconst data = await getData(url, (data) => {\n\t\t\t\tconst res: BlockStateRegistry = {}\n\t\t\t\tObject.keys(data).forEach(b => {\n\t\t\t\t\tres[b] = {\n\t\t\t\t\t\tproperties: data[b].properties,\n\t\t\t\t\t\tdefault: data[b].states.find((s: any) => s.default).properties,\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\treturn res\n\t\t\t})\n\t\t\tObject.assign(target, data)\n\t\t} catch (e) {\n\t\t\tconsole.warn('Error occurred while fetching block state map:', message(e))\n\t\t}\n\t} else {\n\t\tconst url = `${mcdataUrl}/${version.refs.mcdata_master}/processed/reports/blocks/simplified/data.min.json`\n\t\ttry {\n\t\t\tconst data = await getData(url)\n\t\t\tObject.assign(target, data)\n\t\t} catch (e) {\n\t\t\tconsole.warn('Error occurred while fetching block state map:', message(e))\n\t\t}\n\t}\n}\n\nasync function fetchDynamicRegistries(version: Version, target: CollectionRegistry) {\n\tconsole.debug(`[fetchDynamicRegistries] ${version.id}`)\n\tconst registries = config.registries\n\t\t.filter(r => r.dynamic && !r.asset)\n\t\t.filter(r => checkVersion(version.id, r.minVersion, r.maxVersion))\n\n\tif (checkVersion(version.id, '1.16')) {\n\t\tconst url = `${vanillaDatapackUrl}/${version.refs.vanilla_datapack_summary}/summary/flattened.min.json`\n\t\ttry {\n\t\t\tconst data = await getData(url)\n\t\t\tregistries.forEach(r => {\n\t\t\t\ttarget.register(r.id, data[r.id])\n\t\t\t})\n\t\t} catch (e) {\n\t\t\tconsole.warn('Error occurred while fetching dynamic registries:', message(e))\n\t\t}\n\t}\n\tif (checkVersion(version.id, '1.18')) {\n\t\ttarget.register('worldgen/noise', Noises)\n\t}\n}\n\nexport async function fetchAssetsRegistries(version: Version, target: CollectionRegistry) {\n\tconsole.debug(`[fetchAssetsRegistries] ${version.id}`)\n\tconst registries = config.registries\n\t\t.filter(r => r.asset)\n\t\t.filter(r => checkVersion(version.id, r.minVersion, r.maxVersion))\n\n\tawait Promise.all(registries.map(async r => {\n\t\ttry {\n\t\t\tconst fetchFolder = async (path: string): Promise => {\n\t\t\t\tconst url = `${mcassetsUrl}/${version.refs.mcassets}/assets/minecraft/${path}/_list.json`\n\t\t\t\tconst data = await getData(url)\n\t\t\t\tif (data.directories.length === 0) {\n\t\t\t\t\treturn data.files\n\t\t\t\t}\n\t\t\t\tconst directories = await Promise.all(data.directories.map(async (d: string) => {\n\t\t\t\t\tconst files = await fetchFolder(`${path}/${d}`)\n\t\t\t\t\treturn files.map(v => `${d}/${v}`)\n\t\t\t\t}))\n\t\t\t\treturn [...data.files, ...directories.flat()]\n\t\t\t}\n\t\t\tconst ids = (await fetchFolder(r.path ?? r.id))\t\n\t\t\t\t.filter((v: string) => v.endsWith('.json') || v.endsWith('.png'))\n\t\t\t\t.map(v => `minecraft:${v.replace(/\\.(json|png)$/, '')}`)\n\t\t\ttarget.register(r.id, ids)\n\t\t} catch (e) {\n\t\t\tconsole.warn(`Error occurred while fetching assets registry ${r.id}:`, message(e))\n\t\t}\n\t}))\n}\n\nexport async function fetchPreset(version: VersionId, registry: string, id: string) {\n\tconsole.debug(`[fetchPreset] ${registry} ${id}`)\n\tconst versionData = config.versions.find(v => v.id === version)!\n\ttry {\n\t\tconst url = ['blockstates', 'models'].includes(registry)\n\t\t\t?\t`${mcassetsUrl}/${versionData.refs.mcassets}/assets/minecraft/${registry}/${id}.json`\n\t\t\t: `${vanillaDatapackUrl}/${versionData.refs.vanilla_datapack_data}/data/minecraft/${registry}/${id}.json`\n\t\tconst res = await fetch(url)\n\t\tif (registry === 'worldgen/noise_settings' && version === '1.18') {\n\t\t\tlet text = await res.text()\n\t\t\ttext = text.replaceAll('\"max_threshold\": Infinity', '\"max_threshold\": 100')\n\t\t\tconst data = JSON.parse(text)\n\t\t\tif (id !== 'overworld' && id !== 'large_biomes') {\n\t\t\t\tdata.noise.terrain_shaper = { offset: 0, factor: 0, jaggedness: 0 }\n\t\t\t}\n\t\t\treturn data\n\t\t}\n\t\treturn await res.json()\n\t} catch (e) {\n\t\tconsole.warn(`Error occurred while fetching ${registry} preset ${id}:`, message(e))\n\t}\n}\n\nexport async function fetchManifest() {\n\ttry {\n\t\tconst res = await fetch(manifestUrl)\n\t\treturn await res.json()\n\t} catch (e) {\n\t\tthrow new Error(`Error occurred while fetching version manifest: ${message(e)}`)\n\t}\n}\n\nexport async function fetchAssets(versionId: VersionId, manifest: VersionManifest) {\n\tconst version = config.versions.find(v => v.id === versionId)\n\tconst id = version?.latest ?? manifest.latest.snapshot\n\ttry {\n\t\tconst versionMeta = await getData(manifest.versions.find(v => v.id === id)!.url)\n\t\n\t\treturn (await getData(versionMeta.assetIndex.url)).objects\n\t} catch (e) {\n\t\tthrow new Error(`Error occurred while fetching assets for ${version}: ${message(e)}`)\n\t}\n}\n\nexport async function fetchSounds(version: VersionId, assets: VersionAssets) {\n\ttry {\n\t\tconst hash = assets['minecraft/sounds.json'].hash\n\t\treturn await getData(getResourceUrl(hash))\n\t} catch (e) {\n\t\tthrow new Error(`Error occurred while fetching sounds for ${version}: ${message(e)}`)\n\t}\n}\n\nexport function getResourceUrl(hash: string) {\n\treturn `${corsUrl}${resourceUrl}${hash.slice(0, 2)}/${hash}`\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\nconst Noises = [\n\t'minecraft:aquifer_barrier',\n\t'minecraft:aquifer_fluid_level_floodedness',\n\t'minecraft:aquifer_fluid_level_spread',\n\t'minecraft:aquifer_lava',\n\t'minecraft:calcite',\n\t'minecraft:cave_cheese',\n\t'minecraft:cave_entrance',\n\t'minecraft:cave_layer',\n\t'minecraft:clay_bands_offset',\n\t'minecraft:continentalness',\n\t'minecraft:erosion',\n\t'minecraft:gravel',\n\t'minecraft:gravel_layer',\n\t'minecraft:ice',\n\t'minecraft:iceberg_and_badlands_pillar',\n\t'minecraft:iceberg_and_badlands_pillar_roof',\n\t'minecraft:jagged',\n\t'minecraft:nether_state_selector',\n\t'minecraft:nether_wart',\n\t'minecraft:netherrack',\n\t'minecraft:noodle',\n\t'minecraft:noodle_ridge_a',\n\t'minecraft:noodle_ridge_b',\n\t'minecraft:noodle_thickness',\n\t'minecraft:offset',\n\t'minecraft:ore_gap',\n\t'minecraft:ore_vein_a',\n\t'minecraft:ore_vein_b',\n\t'minecraft:ore_veininess',\n\t'minecraft:packed_ice',\n\t'minecraft:patch',\n\t'minecraft:pillar',\n\t'minecraft:pillar_rareness',\n\t'minecraft:pillar_thickness',\n\t'minecraft:powder_snow_surface',\n\t'minecraft:powder_snow_under',\n\t'minecraft:ridge',\n\t'minecraft:soul_sand_layer',\n\t'minecraft:spaghetti_2d',\n\t'minecraft:spaghetti_2d_elevation',\n\t'minecraft:spaghetti_2d_modulator',\n\t'minecraft:spaghetti_2d_thickness',\n\t'minecraft:spaghetti_3d_1',\n\t'minecraft:spaghetti_3d_2',\n\t'minecraft:spaghetti_3d_rarity',\n\t'minecraft:spaghetti_3d_thickness',\n\t'minecraft:spaghetti_roughness',\n\t'minecraft:spaghetti_roughness_modulator',\n\t'minecraft:surface',\n\t'minecraft:surface_swamp',\n\t'minecraft:temperature',\n\t'minecraft:vegetation',\n]\n","import { fetchAssets, fetchManifest, fetchSounds } from './DataFetcher'\nimport type { VersionId } from './Schemas'\n\nexport type VersionManifest = {\n\tlatest: {\n\t\trelease: string,\n\t\tsnapshot: string,\n\t},\n\tversions: {\n\t\tid: string,\n\t\ttype: string,\n\t\turl: string,\n\t}[],\n}\nlet Manifest: VersionManifest | Promise | null = null\n\nexport type VersionAssets = {\n\t[key: string]: {\n\t\thash: string,\n\t},\n}\nconst VersionAssets: Record> = {}\n\nexport type SoundEvents = {\n\t[key: string]: {\n\t\tsounds: (string | { name: string })[],\n\t},\n}\nconst SoundEvents: Record> = {}\n\nexport async function getManifest() {\n\tif (!Manifest) {\n\t\tManifest = fetchManifest()\n\t}\n\treturn Manifest\n}\n\nexport async function getAssets(version: VersionId) {\n\tif (!VersionAssets[version]) {\n\t\tVersionAssets[version] = (async () => {\n\t\t\tconst manifest = await getManifest()\n\t\t\treturn await fetchAssets(version, manifest)\n\t\t})()\n\t}\n\treturn VersionAssets[version]\n}\n\nexport async function getSounds(version: VersionId) {\n\tif (!SoundEvents[version]) {\n\t\tSoundEvents[version] = (async () => {\n\t\t\tconst assets = await getAssets(version)\n\t\t\treturn await fetchSounds(version, assets)\n\t\t})()\n\t}\n\treturn SoundEvents[version]\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\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,\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, 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 {\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 {\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()\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 = {\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 { clamp, 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\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\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\tgetPlacements([x * 16, 0, z * 16], DataModel.unwrapLists(state), ctx)\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 Math.max(value.value.min_inclusive, Math.min(value.value.max_inclusive, sampleInt(value.value.source, ctx)))\n\t\t}\n\t\treturn 1\n\t}\n}\n\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","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 = {\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, 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 { useCanvas } from '../../hooks'\nimport { locale } from '../../Locales'\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, lang, version }: PreviewProps) => {\n\tconst [scale, setScale] = useState(2)\n\tconst [focused, setFocused] = useState(undefined)\n\tconst [layers, setLayers] = useState(new Set(['biomes']))\n\tconst offset = useRef<[number, number]>([0, 0])\n\tconst res = useRef(1)\n\tconst refineTimeout = useRef(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
\n\t\t\t{focused && }\n\t\t\t{type === 'multi_noise' &&\n\t\t\t\t\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 {\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}\n\t\t\t{(type === 'multi_noise' || type === 'checkerboard') && <>\n\t\t\t\t changeScale(scale * 1.5)} />\n\t\t\t\t changeScale(scale / 1.5)} />\n\t\t\t}\n\t\t\t{type === 'multi_noise' &&\n\t\t\t\t newSeed(model)} />}\n\t\t
\n\t\t\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.noise.densityFactor === 0 && settings.noise.densityOffset === -0.030078125\n\t\t\t? '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 { useCanvas } from '../../hooks'\nimport { locale } from '../../Locales'\nimport { decorator } from '../../previews'\nimport { randomSeed } from '../../Utils'\n\nexport const DecoratorPreview = ({ data, version, shown, lang }: PreviewProps) => {\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
\n\t\t\t setScale(Math.min(16, scale + 1))} />\n\t\t\t setScale(Math.max(1, scale - 1))} />\n\t\t\t setSeed(randomSeed())} />\n\t\t
\n\t\t\n\t\n}\n","import { useEffect, useRef, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn } from '..'\nimport { useCanvas } from '../../hooks'\nimport { locale } from '../../Locales'\nimport { normalNoise } from '../../previews'\nimport { randomSeed } from '../../Utils'\n\nexport const NoisePreview = ({ lang, data, shown, version }: PreviewProps) => {\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
\n\t\t\t changeScale(scale * 1.5)} />\n\t\t\t changeScale(scale / 1.5)} />\n\t\t\t setSeed(randomSeed())} />\n\t\t
\n\t\t\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 { useCanvas } from '../../hooks'\nimport { locale } from '../../Locales'\nimport { noiseSettings } from '../../previews'\nimport { checkVersion } from '../../services'\nimport { randomSeed } from '../../Utils'\n\nexport const NoiseSettingsPreview = ({ lang, data, shown, version }: PreviewProps) => {\n\tconst loc = locale.bind(null, lang)\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(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
\n\t\t\t{focused && }\n\t\t\t{checkVersion(version, undefined, '1.17') &&\n\t\t\t\t\n\t\t\t\t\t setBiomeScale(Number(v))} />\n\t\t\t\t\t setBiomeDepth(Number(v))} />\n\t\t\t\t\n\t\t\t}\n\t\t\t setSeed(randomSeed())} />\n\t\t
\n\t\t\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 { BiomeSourcePreview, DecoratorPreview, NoisePreview, NoiseSettingsPreview } from '../previews'\n\nexport const HasPreview = ['dimension', 'worldgen/noise', 'worldgen/noise_settings', 'worldgen/configured_feature']\n\ntype PreviewPanelProps = {\n\tlang: string,\n\tmodel: DataModel | null,\n\tversion: VersionId,\n\tid: string,\n\tshown: boolean,\n\tonError: (message: string) => unknown,\n}\nexport function PreviewPanel({ lang, 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 (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 \n\t}\n\n\tif (id === 'worldgen/noise' && model) {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return \n\t}\n\n\tif (id === 'worldgen/noise_settings' && model) {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return \n\t}\n\n\tif (id === 'worldgen/configured_feature' && model) {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return \n\t}\n\n\treturn <>\n}\n","import type { Hook } from '@mcschema/core'\nimport { relativePath } from '@mcschema/core'\nimport type { BlockStateRegistry } from '../services'\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\treturn value.map((obj, index) =>\n\t\t\tchildren.hook(this, path.push(index), obj.node, props)\n\t\t)\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\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\treturn res\n\t},\n}\n","import 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\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.17'\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 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","import { DataModel, ModelPath } from '@mcschema/core'\nimport yaml from 'js-yaml'\nimport { useCallback, useEffect, useRef, useState } from 'preact/hooks'\nimport { Btn, BtnMenu } from '..'\nimport { useModel } from '../../hooks'\nimport { locale } from '../../Locales'\nimport { transformOutput } 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 = {\n\t'2_spaces': 2,\n\t'4_spaces': 4,\n\ttabs: '\\t',\n\tminified: undefined,\n}\n\nconst FORMATS: Record 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\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\tlang: string,\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({ lang, name, model, blockStates, doCopy, doDownload, doImport, copySuccess, onError }: SourcePanelProps) {\n\tconst loc = locale.bind(null, lang)\n\tconst [indent, setIndent] = useState(Store.getIndent())\n\tconst [format, setFormat] = useState(Store.getFormat())\n\tconst source = useRef(null)\n\tconst download = useRef(null)\n\tconst retransform = useRef()\n\n\tconst getOutput = useCallback((model: DataModel, blockStates: BlockStateRegistry) => {\n\t\tconst data = model.schema.hook(transformOutput, new ModelPath(model), model.data, { blockStates })\n\t\treturn FORMATS[format].stringify(data, INDENT[indent]) + '\\n'\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 = getOutput(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(getOutput(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(getOutput(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
\n\t\t\t\n\t\t\t\t{Object.entries(INDENT).map(([key]) =>\n\t\t\t\t\t changeIndent(key)}/>\n\t\t\t\t)}\n\t\t\t\t
\n\t\t\t\t{Object.keys(FORMATS).map(key =>\n\t\t\t\t\t changeFormat(key)} />)}\n\t\t\t
\n\t\t
\n\t\t\n\t\t\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,\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 { Btn, Octicon } from '../components'\nimport { useFocus } from '../hooks'\nimport { locale } from '../Locales'\nimport type { BlockStateRegistry } 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\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, BlockStateRegistry, Record], JSXTriple>\n\ntype NodeProps = T & {\n\tnode: INode,\n\tpath: ModelPath,\n\tvalue: any,\n\tlang: string,\n\tstates: BlockStateRegistry,\n\tctx: Record,\n}\n\nexport function FullNode({ model, lang, blockStates }: { model: DataModel, lang: string, blockStates: BlockStateRegistry }) {\n\tconst path = new ModelPath(model)\n\tconst [prefix, suffix, body] = model.schema.hook(renderHtml, path, deepClone(model.data), lang, blockStates, {})\n\treturn suffix?.props?.children.some((c: any) => c) ?
\n\t\t
{prefix}{suffix}
\n\t\t
{body}
\n\t
: body\n}\n\nconst renderHtml: RenderHook = {\n\tbase() {\n\t\treturn [null, null, null]\n\t},\n\n\tboolean(params, path, value, lang, states, ctx) {\n\t\treturn [null, , null]\n\t},\n\n\tchoice({ choices, config, switchNode }, path, value, lang, 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, 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 newValue = c.change\n\t\t\t\t? c.change(DataModel.unwrapLists(value))\n\t\t\t\t: config.choiceContext === 'feature' ?\tc.node.default()?.config?.feature : c.node.default()\n\t\t\tpath.model.set(path, DataModel.wrapLists(newValue))\n\t\t}\n\t\tconst inject = \n\t\treturn [prefix, <>{inject}{suffix}, body]\n\t},\n\n\tlist({ children, config }, path, value, lang, 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)}\n\t\t\t\t
\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, 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 = \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
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\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
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\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 \n\t\t\t\t\t{canToggle && }\n\t\t\t\t\t\n\t\t\t\t\t{value.length > 1 &&
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
}\n\t\t\t\t
\n\t\t\t})}\n\t\t\t{(value && value.length > 0 && value.length <= maxShown) &&
\n\t\t\t\t\n\t\t\t
}\n\t\t\n\t\treturn [null, suffix, body]\n\t},\n\n\tmap({ children, keys, config }, path, value, lang, 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, states, ctx)\n\t\t}\n\t\tconst suffix = <>\n\t\t\t{keysSchema.hook(this, keyPath, keyPath.get() ?? '', lang, states, ctx)[1]}\n\t\t\t\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
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\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 \n\t\t\t\t\t{canToggle && }\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t})}\n\t\t\n\t\treturn [null, suffix, body]\n\t},\n\n\tnumber(params, path, value, lang, states, ctx) {\n\t\treturn [null, , null]\n\t},\n\n\tobject({ node, config, getActiveFields, getChildModelPath }, path, value, lang, 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 = \n\t\t\t} else {\n\t\t\t\tconst onCollapse = () => path.set(undefined)\n\t\t\t\tsuffix = \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\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, 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}{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 \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, states, ctx) {\n\t\treturn [null, , null]\n\t},\n}\n\nfunction Collapsed({ path, value }: { path: ModelPath, value: any, schema: INode }) {\n\tconst context = path.getContext().join('.')\n\tswitch (context) {\n\t\tcase 'loot_table.pools.entry':\n\t\t\treturn \n\t\tcase 'function.set_contents.entries.entry':\n\t\tcase 'loot_pool.entries.entry':\n\t\t\treturn \n\t}\n\tfor (const child of Object.values(value ?? {})) {\n\t\tif (typeof child === 'string') {\n\t\t\treturn \n\t\t}\n\t}\n\treturn null\n}\n\nfunction useToggles() {\n\tconst [toggleState, setToggleState] = useState(new Map())\n\tconst [toggleAll, setToggleAll] = useState(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) {\n\tconst set = (target: boolean) => {\n\t\tpath.model.set(path, node.optional() && value === target ? undefined : target)\n\t}\n\treturn <>\n\t\t\n\t\t\n\t\n}\n\nfunction NumberSuffix({ path, config, integer, value, lang }: NodeProps) {\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 {if (evt.key === 'Enter') onChange(evt)}} />\n\t\t{config?.color && }\n\t\t{['dimension.generator.seed', 'dimension.generator.biome_source.seed', 'world_settings.seed'].includes(path.getContext().join('.')) && }\n\t\n}\n\nfunction StringSuffix({ path, getValues, config, node, value, lang, states }: NodeProps) {\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\tif (nbtFields.includes(context)) {\n\t\treturn \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 (!isEnum(config) && config?.validator === 'resource' && typeof config.params.pool === 'string') {\n\t\t\tcontext = context.contextPush(config.params.pool)\n\t\t} else if (isEnum(config)) {\n\t\t\tcontext = path\n\t\t}\n\t\treturn \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 \n\t} else {\n\t\tconst datalistId = hexId()\n\t\treturn <>\n\t\t\t {if (evt.key === 'Enter') onChange(evt)}}\n\t\t\t\tlist={values.length > 0 ? datalistId : ''} />\n\t\t\t{values.length > 0 && \n\t\t\t\t{values.map(v => }\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,\n\tpath: ModelPath,\n\tvalue: any,\n\tlang: string,\n\tstates: BlockStateRegistry,\n\tctx: Record,\n\tcompare?: any,\n\tlabel?: string,\n\tactions?: MenuAction[],\n\tchildren?: ComponentChildren,\n}\nfunction TreeNode({ label, schema, path, value, lang, 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 = { ...ctx, depth: (ctx.depth ?? 0) + 1 }\n\tdelete newCtx.index\n\tconst [prefix, suffix, body] = schema.hook(renderHtml, path, value, lang, states, newCtx)\n\treturn
\n\t\t
\n\t\t\t\n\t\t\t\n\t\t\t{children}\n\t\t\t{prefix}\n\t\t\t\n\t\t\t{suffix}\n\t\t
\n\t\t{body &&
{body}
}\n\t
\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 = locale(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 = locale(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 = locale(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
\n\t\t{Octicon[icon]}\n\t\t{popup}\n\t
\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 { useModel } from '../../hooks'\nimport { FullNode } from '../../schema/renderHtml'\nimport type { BlockStateRegistry, VersionId } from '../../services'\n\ntype TreePanelProps = {\n\tlang: string,\n\tversion: VersionId,\n\tmodel: DataModel | null,\n\tblockStates: BlockStateRegistry | null,\n\tonError: (message: string) => unknown,\n}\nexport function Tree({ lang, model, blockStates, onError }: TreePanelProps) {\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
\n\t\t\n\t
\n}\n","import { getCurrentUrl, Link, route } from 'preact-router'\nimport { Btn, BtnMenu, Icons, Octicon } from '.'\nimport config from '../../config.json'\nimport { locale } from '../Locales'\nimport type { VersionId } from '../services'\nimport { checkVersion } from '../services'\nimport { cleanUrl, getGenerator } from '../Utils'\n\nconst Themes: Record = {\n\tsystem: 'device_desktop',\n\tdark: 'moon',\n\tlight: 'sun',\n}\n\ntype HeaderProps = {\n\tlang: string,\n\ttitle: string,\n\tversion: VersionId,\n\ttheme: string,\n\tchangeTheme: (theme: string) => unknown,\n\tlanguage: string,\n\tchangeLanguage: (language: string) => unknown,\n}\nexport function Header({ lang, title, version, theme, changeTheme, language, changeLanguage }: HeaderProps) {\n\tconst loc = locale.bind(null, lang)\n\tconst gen = getGenerator(getCurrentUrl())\n\n\treturn
\n\t\t
\n\t\t\t{Icons.home}\n\t\t\t

{title}

\n\t\t\t{gen && \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 route(cleanUrl(g.url))} />\n\t\t\t\t\t)}\n\t\t\t}\n\t\t
\n\t\t\n\t
\n}\n","export const Icons = {\n\thome: ,\n\treport: ,\n\tsounds: ,\n}\n","import { Howl } from 'howler'\nimport { useEffect, useRef, useState } from 'preact/hooks'\nimport { Btn, NumberInput, RangeInput, TextInput } from '..'\nimport { locale } from '../../Locales'\nimport type { SoundEvents, VersionAssets } from '../../services'\nimport { getResourceUrl } 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\tlang: string,\n\tassets: VersionAssets,\n\tsounds: SoundEvents,\n\tonEdit: (changes: Partial) => unknown,\n\tonDelete: () => unknown,\n\tdelayedPlay?: number,\n}\nexport function SoundConfig({ lang, assets, sounds, sound, delay, pitch, volume, onEdit, onDelete, delayedPlay }: SoundConfigProps) {\n\tconst loc = locale.bind(null, lang)\n\tconst [loading, setLoading] = useState(true)\n\tconst [playing, setPlaying] = useState(false)\n\tconst [invalid, setInvalid] = useState(false)\n\tconst howls = useRef([])\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 hash = assets[`minecraft/sounds/${soundPath}.ogg`].hash\n\t\t\tconst url = getResourceUrl(hash)\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(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
\n\t\t\n\t\t onEdit({ sound })} />\n\t\t\n\t\t onEdit({ delay })} />\n\t\t\n\t\t onEdit({ pitch })} />\n\t\t\n\t\t onEdit({ volume })} />\n\t\t\n\t\t {onDelete(); stop()}} />\n\t
\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
\n\t\t\t{icon && Icons[icon]}\n\t\t\t
\n\t\t\t\t

{title}

\n\t\t\t\t

{desc}

\n\t\t\t
\n\t\t
\n\t\t{children &&
\n\t\t\t{children}\n\t\t
}\n\t\n\treturn link\n\t\t? {content}\n\t\t:
{content}
\n}\n","import config from '../../config.json'\nimport { ToolCard } from '../components'\nimport { locale } from '../Locales'\nimport { cleanUrl } from '../Utils'\n\ntype WorldgenProps = {\n\tcategory: string,\n\tlang: string,\n\tchangeTitle: (title: string) => unknown,\n\tpath?: string,\n}\nexport function Category({ category, lang, changeTitle }: WorldgenProps) {\n\tconst loc = locale.bind(null, lang)\n\tchangeTitle(loc('title.generator_category', loc(category)))\n\treturn
\n\t\t
\n\t\t\t{config.generators.filter(g => g.category === category).map(g => \n\t\t\t\t\n\t\t\t)}\n\t\t
\n\t
\n}\n","import marked from 'marked'\nimport { useEffect, useMemo, useState } from 'preact/hooks'\nimport { Ad, Btn, ErrorPanel, Octicon, TextInput } from '../components'\nimport { locale } from '../Locales'\nimport type { ChangelogEntry, ChangelogVersion, VersionId } from '../services'\nimport { getChangelogs } from '../services'\nimport { hashString } from '../Utils'\n\ntype ChangelogProps = {\n\tpath?: string,\n\tlang: string,\n\tchangeTitle: (title: string, versions?: VersionId[]) => unknown,\n}\nexport function Changelog({ lang, changeTitle }: ChangelogProps) {\n\tconst loc = locale.bind(null, lang)\n\tconst [error, setError] = useState(null)\n\tchangeTitle(loc('title.changelog'))\n\n\tconst [changelogs, setChangelogs] = useState([])\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([])\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 => content.includes(q))\n\t\t})\n\t}, [changelogs, search, tags])\n\n\tconst [sort, setSort] = useState(false)\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
\n\t\t\n\t\t{error && setError(null)} />}\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t setSort(!sort)} />\n\t\t\t
\n\t\t\t{tags.length > 0 &&
\n\t\t\t\t{tags.map(tag => setTags(tags.filter(t => t !== tag))} />)}\n\t\t\t
}\n\t\t
\n\t\t
\n\t\t\t{sortedChangelogs.map(change =>\n\t\t\t\t)}\n\t\t
\n\t
\n}\n\ntype ChangeProps = {\n\tchange: ChangelogEntry,\n\tactiveTags: string[],\n\ttoggleTag: (tag: string) => unknown,\n}\nfunction Change({ change, activeTags, toggleTag }: ChangeProps) {\n\treturn
\n\t\t
\n\t\t\t\n\t\t\t\n\t\t
\n\t\t
\n\t\t\t{change.tags.map(tag => toggleTag(tag)} active={activeTags.includes(tag)} />)}\n\t\t
\n\t\t
\n\t
\n}\n\nfunction ArticleLink({ id, article }: ChangelogVersion) {\n\treturn article === null\n\t\t? {id}\n\t\t: {id}\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
\n\t\t{label === 'breaking' && Octicon.alert}\n\t\t{label}\n\t
\n}\n","import { DataModel, Path } from '@mcschema/core'\nimport { getCurrentUrl } from 'preact-router'\nimport { useEffect, useErrorBoundary, useRef, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport { Analytics } from '../Analytics'\nimport { Ad, Btn, BtnInput, BtnMenu, ErrorPanel, HasPreview, Octicon, PreviewPanel, SourcePanel, Tree } from '../components'\nimport { useModel } from '../hooks'\nimport { locale } from '../Locales'\nimport type { BlockStateRegistry, VersionId } from '../services'\nimport { checkVersion, fetchPreset, getBlockStates, getCollections, getModel } from '../services'\nimport { getGenerator, message } from '../Utils'\n\ntype GeneratorProps = {\n\tlang: string,\n\tchangeTitle: (title: string, versions?: VersionId[]) => unknown,\n\tversion: VersionId,\n\tchangeVersion: (version: VersionId) => unknown,\n\tdefault?: true,\n}\nexport function Generator({ lang, changeTitle, version, changeVersion }: GeneratorProps) {\n\tconst loc = locale.bind(null, lang)\n\tconst [error, setError] = useState(null)\n\tconst [errorBoundary, errorRetry] = useErrorBoundary()\n\tif (errorBoundary) {\n\t\treturn
\n\t}\n\n\tconst gen = getGenerator(getCurrentUrl())\n\tif (!gen) {\n\t\treturn
\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\tchangeTitle(loc('title.generator', loc(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\n\tconst [model, setModel] = useState(null)\n\tconst [blockStates, setBlockStates] = useState(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(m => {\n\t\t\t\tAnalytics.setGenerator(gen.id)\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\tuseModel(model, () => {\n\t\tsetError(null)\n\t})\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\tuseEffect(() => {\n\t\tdocument.addEventListener('keyup', onKeyUp)\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('keyup', onKeyUp)\n\t\t}\n\t}, [model])\n\n\tconst [presetFilter, setPresetFilter] = useState('')\n\tconst [presetResults, setPresetResults] = useState([])\n\tuseEffect(() => {\n\t\tgetCollections(version)\n\t\t\t.then(collections => {\n\t\t\t\tconst terms = (presetFilter ?? '').trim().split(' ')\n\t\t\t\tconst presets = collections.get(gen.id)\n\t\t\t\t\t.map(p => p.slice(10))\n\t\t\t\t\t.filter(p => terms.every(t => p.includes(t)))\n\t\t\t\tif (presets) {\n\t\t\t\t\tsetPresetResults(presets)\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(e => { console.error(e); setError(e.message) })\n\t}, [version, gen.id, presetFilter])\n\n\tconst loadPreset = (id: string) => {\n\t\tAnalytics.generatorEvent('load-preset', id)\n\t\tfetchPreset(version, gen.path ?? gen.id, id).then(preset => {\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\tmodel?.reset(DataModel.wrapLists(preset), false)\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, setCopyActive] = useState(false)\n\tconst copyTimeout = useRef(undefined)\n\tconst copySuccess = () => {\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\tconst [previewShown, setPreviewShown] = useState(false)\n\tconst hasPreview = HasPreview.includes(gen.id)\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}\n\n\treturn <>\n\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t{presetResults.map(preset => loadPreset(preset)} />)}\n\t\t\t\t\t
\n\t\t\t\t\t{presetResults.length === 0 && }\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t{allowedVersions.reverse().map(v =>\n\t\t\t\t\t\t changeVersion(v)} />\n\t\t\t\t\t)}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t{error && setError(null)} />}\n\t\t\t\n\t\t
\n\t\t
\n\t\t\t
\n\t\t\t\t{previewShown ? Octicon.x_circle : Octicon.play}\n\t\t\t
\n\t\t\t
\n\t\t\t\t{Octicon.download}\n\t\t\t
\n\t\t\t
\n\t\t\t\t{copyActive ? Octicon.check : Octicon.clippy}\n\t\t\t
\n\t\t\t
\n\t\t\t\t{sourceShown ? Octicon.chevron_right : Octicon.code}\n\t\t\t
\n\t\t
\n\t\t
\n\t\t\t\n\t\t
\n\t\t
\n\t\t\t\n\t\t
\n\t\n}\n","import config from '../../config.json'\nimport { ToolCard } from '../components'\nimport { locale } from '../Locales'\nimport { cleanUrl } from '../Utils'\n\ntype HomeProps = {\n\tlang: string,\n\tchangeTitle: (title: string) => unknown,\n\tpath?: string,\n}\nexport function Home({ lang, changeTitle }: HomeProps) {\n\tconst loc = locale.bind(null, lang)\n\tchangeTitle(loc('title.home'))\n\tconsole.log(config.generators)\n\treturn
\n\t\t
\n\t\t\t\n\t\t\t\t{config.generators.filter(g => !g.category).map(g => \n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{config.generators.filter(g => g.category === 'assets').map(g =>\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
\n\t
\n}\n","import { useEffect, useRef, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport { Ad, Btn, BtnMenu, ErrorPanel, SoundConfig, TextInput } from '../components'\nimport { locale } from '../Locales'\nimport type { SoundEvents, VersionAssets, VersionId } from '../services'\nimport { getAssets, getSounds } from '../services'\nimport { hexId, message } from '../Utils'\n\ntype SoundsProps = {\n\tpath?: string,\n\tlang: string,\n\tchangeTitle: (title: string, versions?: VersionId[]) => unknown,\n\tversion: VersionId,\n\tchangeVersion: (version: VersionId) => unknown,\n}\nexport function Sounds({ lang, changeTitle, version, changeVersion }: SoundsProps) {\n\tconst loc = locale.bind(null, lang)\n\tconst [error, setError] = useState(null)\n\tchangeTitle(loc('title.sounds'))\n\n\tconst [assets, setAssets] = useState({})\n\tconst [sounds, setSounds] = useState({})\n\tconst soundKeys = Object.keys(sounds ?? {})\n\tuseEffect(() => {\n\t\tgetAssets(version)\n\t\t\t.then(assets => { setAssets(assets); return getSounds(version) })\n\t\t\t.then(sounds => { if (sounds) setSounds(sounds) })\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([])\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) => {\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(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
\n\t\t\n\t\t{error && setError(null)} />}\n\t\t{soundKeys.length > 0 && <>\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t{configs.length > 1 && }\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{config.versions.reverse().map(v =>\n\t\t\t\t\t\t changeVersion(v.id as VersionId)} />\n\t\t\t\t\t)}\n\t\t\t\t\n\t\t\t
\n\t\t\t
\n\t\t\t\t{configs.map(c => )}\n\t\t\t
\n\t\t\t\n\t\t}\n\t\t\n\t\t\t{soundKeys.map(s => \n\t
\n}\n","import { render } from 'preact'\nimport type { RouterOnChangeArgs } from 'preact-router'\nimport { Router } from 'preact-router'\nimport { useEffect, useState } from 'preact/hooks'\nimport config from '../config.json'\nimport '../styles/global.css'\nimport '../styles/nodes.css'\nimport { Analytics } from './Analytics'\nimport { Header } from './components'\nimport { loadLocale, locale, Locales } from './Locales'\nimport { Category, Changelog, Generator, Home, Sounds } from './pages'\nimport type { VersionId } from './services'\nimport { Store } from './Store'\nimport { cleanUrl } from './Utils'\n\nconst VERSIONS_IN_TITLE = 3\n\nfunction Main() {\n\tconst [lang, setLanguage] = useState('none')\n\tconst changeLanguage = async (language: string) => {\n\t\tif (!Locales[language]) {\n\t\t\tawait loadLocale(language)\n\t\t}\n\t\tAnalytics.setLanguage(language)\n\t\tStore.setLanguage(language)\n\t\tsetLanguage(language)\n\t}\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 [theme, setTheme] = useState(Store.getTheme())\n\tconst changeTheme = (theme: string) => {\n\t\tAnalytics.setTheme(theme)\n\t\tStore.setTheme(theme)\n\t\tsetTheme(theme)\n\t}\n\tuseEffect(() => {\n\t\tdocument.documentElement.setAttribute('data-theme', theme)\n\t}, [theme])\n\n\tconst [version, setVersion] = useState(Store.getVersion())\n\tconst changeVersion = (version: VersionId) => {\n\t\tAnalytics.setVersion(version)\n\t\tStore.setVersion(version)\n\t\tsetVersion(version)\n\t}\n\n\tconst [title, setTitle] = useState(locale(lang, 'title.home'))\n\tconst changeTitle = (title: string, versions?: VersionId[]) => {\n\t\tversions ??= config.versions.map(v => v.id as VersionId)\n\t\tversions.splice(0, versions.length - VERSIONS_IN_TITLE)\n\t\tdocument.title = `${title} Minecraft ${versions.join(', ')}`\n\t\tsetTitle(title)\n\t}\n\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
\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n}\n\nrender(
, 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","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","setActive","useState","hider","model","invalidated","listener","[object Object]","addListener","removeListener","relative","children","useFocus","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","download","duplicate","eye","eye_closed","gear","globe","history","info","issue_opened","kebab_horizontal","link","mark_github","moon","play","plus","plus_circle","search","sort_asc","sort_desc","stack","sun","sync","tag","terminal","three_bars","trashcan","unfold","upload","x_circle","error","onDismiss","href","component","props","evt","fn","onKeyDown","onEnter","key","__spreadValues","displayName","name","TextInput","BaseInput","v","NumberInput","Number","RangeInput","scriptRel","seen","__vitePreload","baseModule","deps","relList","document","createElement","supports","Promise","all","map","dep","isCss","endsWith","cssSelector","querySelector","rel","as","crossOrigin","head","appendChild","res","rej","then","Locales","fallback","English","params","replace","parseInt","match","slice","resolveLocaleParams","en","langConfig","config","languages","find","lang","data","__variableDynamicImportRuntime0__","schema","schemas","__variableDynamicImportRuntime1__","default","obj","dec2hex","dec","toString","substr","length","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","trimmedUrl","generators","g2","str","abs","hashString","a2","b","c","max","min","lerp","Error","message","deepClone","rfdc","constructor","isArray","deepEqual","valueOf","Object","prototype","hasOwnProperty","call","forward","Map","backward","this","defaultValue","repo","Changelogs","fetch","json","group","groupIndex","versionIndex","text","split","entry","indexOf","tags","substring","trim","content","parseChangelog","order","change","fetchChangelog","parseVersion","flat","fetchGroup","article","isObject","VersionIds","Versions","Models","versionGetter","1.15","java15","1.16","java16","1.17","java17","1.18","java18","CachedDecorator","CachedFeature","collections","getCollections","blockStates","versionId","collectionTarget","blockStateTarget","versions","JSON","stringify","debug","dynamic","refs","filter","localStorage","getItem","r","hash","matches","cache","caches","open","promises","request","push","delete","warn","deleteMatching","startsWith","setItem","fetchRegistries","fetchBlockStateMap","fetchDynamicRegistries","fetchAssetsRegistries","fetchData","getSchemas","minVersionId","maxVersionId","findIndex","minVersion","maxVersion","removeItem","mcdataUrl","mcassetsUrl","vanillaDatapackUrl","registries","asset","checkVersion","mcdata_master","getData","data2","k","entries","register","path","values","properties","states","assign","vanilla_datapack_summary","Noises","fetchFolder","mcassets","directories","files","d2","ids","registry","versionData","includes","vanilla_datapack_data","parse","noise","terrain_shaper","offset","factor","jaggedness","cacheResponse","ok","fetchResponse","responseData","put","Response","Manifest","VersionAssets","SoundEvents","fetchManifest","manifest","getManifest","latest","snapshot","versionMeta","assetIndex","objects","fetchAssets","assets","getAssets","getResourceUrl","fetchSounds","ready","LAYERS","temperature","humidity","continentalness","erosion","weirdness","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","param","p","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","multi_noise","getA","getBiomes","xFrom","xTo","xStep","yFrom","yTo","yStep","zFrom","zTo","zStep","layers","climate","climate_noise","result","t","w","point","TerrainShaper","has","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","sampleInt","fill","pos","feature","j","base","spread","normalize","min_inclusive","max_inclusive","source","useFeature","featureFn","Features","decorator2","decoratorFn","Decorators","decorated","getPositions","decorator","getPlacements","random_boolean_selector","feature_true","feature_false","random_selector","f","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","minLimitPerlinNoise","maxLimitPerlinNoise","mainPerlinNoise","depthNoise","settings","xOffset","chunkWidth","size_horizontal","chunkHeight","size_vertical","chunkCountY","amplified","biomeDepth","biomeScale","noiseColumnCache","cx","ox","noise1","fillNoiseColumn","noise2","yy","oy","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","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","getShaper","calculateState","useCanvas","round","oz","col","xRange","zRange","l2","getClimate","worldX","worldZ","getBiomeColor","getBiome","brightness","biomeMap","setTimeout","xx","zz","toWorld","changeScale","newScale","BtnMenu","locale","enabled","newSeed","densityFactor","densityOffset","DecoratorPreview","setSeed","randomSeed","NoisePreview","NoiseParameters","NoiseSettingsPreview","loc","bind","setBiomeScale","setBiomeDepth","worldY","min_y","BtnInput","HasPreview","setCount","transformOutput","switchNode","hook","blockState","validation","validator","relativePath","getActiveFields","activeFields","out","Store","Store2","getLanguage","getTheme","getVersion","getIndent","getFormat","getSoundsVersion","setIndent","indent","setFormat","format","setSoundsVersion","INDENT","2_spaces","4_spaces","tabs","minified","FORMATS","yaml","dump","flowLevel","doCopy","doDownload","doImport","copySuccess","onError","retransform","getOutput","useCallback","model2","blockStates2","ModelPath","output","clipboard","writeText","encodeURIComponent","setAttribute","click","changeIndent","changeFormat","onBlur","wrapLists","spellcheck","autocorrect","style","mapper","getter","setter","silent","selectRegistries","hiddenFields","flattenedFields","inlineFields","nbtFields","fixedLists","collapsedFields","keysModel","MapNode","StringNode","historyMax","prefix","suffix","renderHtml","some","data-category","boolean","BooleanSuffix","choices","choice","activeCase","contextPath","context","getModel","getArray","choiceContextPath","choiceContext","inject","c2","newValue","pathLocale","contextPush","expand","collapse","isToggled","useToggles","maxShown","setMaxShown","maxLength","ErrorPopup","modelPush","hexId","cValue","cId","cPath","canToggle","toggle","nested","Collapsed","MemoedTreeNode","actions","onSelect","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","newPath","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","additional","pool","datalistId","list","values2","memo","onContextMenu","preventDefault","a","description","navigator","prev","next","withModel","getAll","e2","message2","popupIcon","popup","useErrorBoundary","setState","FullNode","Themes","system","dark","light","title","changeTheme","changeLanguage","gen","getGenerator","getCurrentUrl","Link","Icons","home","route","cleanUrl","th","rx","y","report","sounds","cy","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","every","copyActive","setCopyActive","copyTimeout","step","toFixed","desc","changeTitle","ToolCard","setError","changelogs","setChangelogs","changelogs2","catch","setSearch","setTags","toggleTag","filteredChangelogs","useMemo","query","q2","toLowerCase","sort","setSort","sortedChangelogs","Ad","ErrorPanel","Tag","Change","activeTags","ArticleLink","dangerouslySetInnerHTML","__html","marked","changeVersion","errorBoundary","errorRetry","allowedVersions","setModel","setBlockStates","Reference","ChoiceNode","schemaName","validate","err","m","onKeyUp","undo","redo","presetFilter","setPresetFilter","presetResults","setPresetResults","terms","presets","sourceShown","setSourceShown","innerWidth","setCopy","setDownload","setImport","previewShown","setPreviewShown","hasPreview","actionsShown","loadPreset","Tree","PreviewPanel","SourcePanel","log","setAssets","setSounds","soundKeys","assets2","getSounds","sounds2","configs","setConfigs","addConfig","deleteConfig","setDelayedPlay","hasDelay","SoundConfig","changes","loadLocale","documentElement","version2","setTitle","title2","Header","theme2","Router","Home","Category","Sounds","Changelog","Generator","render","Main"],"mappings":"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"} \ No newline at end of file diff --git a/assets/index.fcc7d815.js b/assets/index.fcc7d815.js new file mode 100644 index 00000000..3e5b7191 --- /dev/null +++ b/assets/index.fcc7d815.js @@ -0,0 +1,2 @@ +var e=Object.defineProperty,t=Object.defineProperties,n=Object.getOwnPropertyDescriptors,o=Object.getOwnPropertySymbols,a=Object.prototype.hasOwnProperty,r=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={}))a.call(t,n)&&i(e,n,t[n]);if(o)for(var n of o(t))r.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 m,r as h,b as p,j as f,c as g,d as v,e as _,f as w,g as y,m as b,h as x,L as k,G as C,V as A,O as M,i as z,w as j,Z as V,k as $,z as E,T as I,E as O,C as L,n as P,A as S,o as D,p as T,q as N,t as B,u as H,v as R,x as F,B as W,D as J,F as G,N as U,R as Y}from"./vendor.f42aafe4.js";var Z,q=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","latest":"1.15.2","refs":{"mcdata_master":"13355f7","mcassets":"1.15.2"}},{"id":"1.16","latest":"1.16.5","refs":{"mcdata_master":"1.16.4","mcassets":"1.16.5","vanilla_datapack_data":"1.16.4-data","vanilla_datapack_summary":"1.16.4-summary"}},{"id":"1.17","latest":"1.17.1","refs":{"mcdata_master":"1.17.1","mcassets":"1.17.1","vanilla_datapack_data":"1.17.1-data","vanilla_datapack_summary":"1.17.1-summary"}},{"id":"1.18","refs":{"mcdata_master":"master","mcassets":"21w44a","vanilla_datapack_data":"data","vanilla_datapack_summary":"summary"},"dynamic":true}],"generators":[{"id":"loot_table","url":"loot-table","path":"loot_tables","schema":"loot_table","maxVersion":"1.17"},{"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/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","minVersion":"1.18"},{"id":"model","url":"assets/model","path":"models","category":"assets","schema":"model","minVersion":"1.18"}],"registries":[{"id":"advancement","dynamic":true},{"id":"attribute","minVersion":"1.16"},{"id":"block"},{"id":"block_definition","path":"blockstates","asset":true},{"id":"block_predicate_type","minVersion":"1.18"},{"id":"dimension","dynamic":true},{"id":"dimension_type","dynamic":true},{"id":"enchantment"},{"id":"entity_type"},{"id":"fluid"},{"id":"function","dynamic":true},{"id":"float_provider_type","minVersion":"1.17"},{"id":"item"},{"id":"int_provider_type","minVersion":"1.17"},{"id":"height_provider_type","minVersion":"1.17"},{"id":"loot_condition_type","minVersion":"1.16"},{"id":"loot_condition_type","minVersion":"1.16"},{"id":"loot_function_type","minVersion":"1.16"},{"id":"loot_nbt_provider_type","minVersion":"1.17"},{"id":"loot_number_provider_type","minVersion":"1.17"},{"id":"loot_pool_entry_type","minVersion":"1.16"},{"id":"loot_score_provider_type","minVersion":"1.17"},{"id":"loot_table","dynamic":true},{"id":"mob_effect"},{"id":"model","path":"models","asset":true},{"id":"pos_rule_test","minVersion":"1.16"},{"id":"potion","minVersion":"1.15"},{"id":"predicate","dynamic":true},{"id":"recipe","dynamic":true},{"id":"recipe_serializer"},{"id":"rule_test","minVersion":"1.16"},{"id":"sound_event"},{"id":"stat_type"},{"id":"structure","dynamic":true},{"id":"tag/block","dynamic":true},{"id":"tag/entity_type","dynamic":true},{"id":"tag/fluid","dynamic":true},{"id":"tag/function","dynamic":true},{"id":"tag/item","dynamic":true},{"id":"texture","path":"textures","asset":true},{"id":"worldgen/biome","dynamic":true},{"id":"worldgen/block_state_provider_type","minVersion":"1.16"},{"id":"worldgen/block_placer_type","minVersion":"1.16","maxVersion":"1.17"},{"id":"worldgen/biome_source","minVersion":"1.16"},{"id":"worldgen/carver","minVersion":"1.16"},{"id":"worldgen/chunk_generator","minVersion":"1.16"},{"id":"worldgen/configured_carver","minVersion":"1.16","dynamic":true},{"id":"worldgen/configured_decorator","minVersion":"1.16","dynamic":true},{"id":"worldgen/configured_feature","minVersion":"1.16","dynamic":true},{"id":"worldgen/configured_structure_feature","minVersion":"1.16","dynamic":true},{"id":"worldgen/configured_surface_builder","minVersion":"1.16","dynamic":true},{"id":"worldgen/decorator","minVersion":"1.16"},{"id":"worldgen/feature","minVersion":"1.16"},{"id":"worldgen/feature_size_type","minVersion":"1.16"},{"id":"worldgen/foliage_placer_type","minVersion":"1.16"},{"id":"worldgen/material_condition","minVersion":"1.18"},{"id":"worldgen/material_rule","minVersion":"1.18"},{"id":"worldgen/noise","minVersion":"1.18","dynamic":true},{"id":"worldgen/noise_settings","minVersion":"1.16","dynamic":true},{"id":"worldgen/processor_list","minVersion":"1.16","dynamic":true},{"id":"worldgen/structure_feature","minVersion":"1.16"},{"id":"worldgen/structure_pool_element","minVersion":"1.16"},{"id":"worldgen/structure_processor","minVersion":"1.16"},{"id":"worldgen/surface_builder","minVersion":"1.16","maxVersion":"1.17"},{"id":"worldgen/template_pool","minVersion":"1.16","dynamic":true},{"id":"worldgen/tree_decorator_type","minVersion":"1.16"},{"id":"worldgen/trunk_placer_type","minVersion":"1.16"},{"id":"biome","maxVersion":"1.15"},{"id":"worldgen/biome","minVersion":"1.16","path":"processed/reports/biomes"}]}');function K({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 X({icon:e,label:t,active:n,class:o,tooltip:a,tooltipLoc:r,onClick:i}){return d("div",{class:`btn${n?" active":""}${o?` ${o}`:""}${a?` tooltipped tip-${null!=r?r:"sw"}`:""}`,onClick:i,"aria-label":a},e&&ae[e],t&&d("span",null,t))}function Q({icon:e,label:t,large:n,doSelect:o,value:a,placeholder:r,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&&ae[e],t&&d("span",null,t),d("input",{ref:l,type:"text",value:a,onChange:s,placeholder:r}))}function ee({size:e,draw:t,onDrag:n,onHover:o,onLeave:a},r){const i=u(null),s=u(),l=u(),d=u([0,0]),m=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],a=e.offsetY-s.current[1];0===t&&0===a||(d.current=[d.current[0]+t,d.current[1]+a],m.current||(cancelAnimationFrame(l.current),l.current=requestAnimationFrame((async()=>{m.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)),m.current=!1})))),s.current=[e.offsetX,e.offsetY]},r=()=>{s.current=void 0},c=()=>{null==a||a()};return i.current.addEventListener("mousedown",e),i.current.addEventListener("mousemove",t),i.current.addEventListener("mouseleave",c),document.body.addEventListener("mouseup",r),()=>{var n,o,a;null==(n=i.current)||n.removeEventListener("mousedown",e),null==(o=i.current)||o.removeEventListener("mousemove",t),null==(a=i.current)||a.removeEventListener("mouseleave",c),document.body.removeEventListener("mouseup",r)}}),[...null!=r?r:[],i.current]);const h=u(),p=u(0);return h.current=async()=>{const n=i.current.getContext("2d"),o=e();i.current.width=o[0],i.current.height=o[1];const a=n.getImageData(0,0,o[0],o[1]),r=p.current+=1;await t(a),r===p.current&&n.putImageData(a,0,0)},{canvas:i,redraw:h.current}}function te(){const[e,t]=m(!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 ne(e,t){const n={invalidated(){e&&t(e)}};c((()=>(null==e||e.addListener(n),()=>{null==e||e.removeListener(n)})),[e])}function oe({icon:e,label:t,relative:n,tooltip:o,children:a}){const[r,i]=te();return d("div",{class:"btn-menu"+(!1===n?" no-relative":"")},d(X,l(s({},{icon:e,label:t,tooltip:o}),{onClick:i})),r&&d("div",{class:"btn-group"},a))}!function(e){const t="Site",n="Generator";function o(e,t,n){ga("send","event",e,t,n)}function a(e,t){ga("set",`dimension${e}`,t)}e.pageview=function(e){ga("set","page",e),ga("send","pageview")},e.setLanguage=function(e){a(4,e),o(t,"set-language",e)},e.setTheme=function(e){a(1,e),o(t,"set-theme",e)},e.setVersion=function(e){a(3,e),o(n,"set-version",e)},e.setPreview=function(e){a(5,e),o(n,"set-preview",e)},e.setGenerator=function(e){a(6,e)},e.generatorEvent=function(e,t){o(n,e,t)}}(Z||(Z={}));const ae={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"})),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"})),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"})),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"})),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 re({error:e,onDismiss:t}){return d("div",{class:"error"},t&&d("div",{class:"error-dismiss",onClick:t},ae.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 ie(e,t,n){const o=e=>{const o=e.onChange&&(t=>{var o;const a=t.target.value;null==(o=e.onChange)||o.call(e,n(a))}),a=e.onEnter&&(t=>{var o;if("Enter"===t.key){const a=t.target.value;null==(o=e.onEnter)||o.call(e,n(a))}});return d("input",s(s({},e),{type:t,onChange:o,onKeyDown:a}))};return o.displayName=e,o}const se=ie("TextInput","text",(e=>e)),le=ie("NumberInput","number",(e=>Number(e))),ce=ie("RangeInput","range",(e=>Number(e)));let de;const ue={},me=function(e,t){if(!t)return e();if(void 0===de){const e=document.createElement("link").relList;de=e&&e.supports&&e.supports("modulepreload")?"modulepreload":"preload"}return Promise.all(t.map((e=>{if(e in ue)return;ue[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":de,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 he=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","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.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","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 content here","switch_generator":"Switch generator","terrain_settings":"Terrain settings","undo":"Undo","world":"World Settings","worldgen":"Worldgen","worldgen/biome":"Biome","worldgen/configured_carver":"Carver","worldgen/configured_feature":"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"}'),pe=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",default:he});const fe={fallback:he};function ge(e,t,...n){var o,a,r,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!=(r=null==(o=fe[e])?void 0:o[t])?r:null==(a=fe.en)?void 0:a[t])?i:fe.fallback[t])?s:t,n)}async function ve(e){const t=q.languages.find((t=>t.code===e));if(!t)return;const n=await function(e){switch(e){case"../locales/de.json":return me((()=>import("./de.1d005dc8.js")),void 0);case"../locales/en.json":return me((()=>Promise.resolve().then((function(){return pe}))),void 0);case"../locales/es.json":return me((()=>import("./es.d3abba45.js")),void 0);case"../locales/fr.json":return me((()=>import("./fr.f5531eea.js")),void 0);case"../locales/it.json":return me((()=>import("./it.fd9a8268.js")),void 0);case"../locales/ja.json":return me((()=>import("./ja.2d7ab812.js")),void 0);case"../locales/pl.json":return me((()=>import("./pl.3a9fb38c.js")),void 0);case"../locales/pt.json":return me((()=>import("./pt.689bba1d.js")),void 0);case"../locales/ru.json":return me((()=>import("./ru.3104e71e.js")),void 0);case"../locales/sk.json":return me((()=>import("./sk.69c71daa.js")),void 0);case"../locales/zh-cn.json":return me((()=>import("./zh-cn.b233fc7e.js")),void 0);case"../locales/zh-tw.json":return me((()=>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/de.json":return me((()=>import("./de.f9c3209c.js")),void 0);case"../../node_modules/@mcschema/locales/src/en.json":return me((()=>import("./en.1d6bc972.js")),void 0);case"../../node_modules/@mcschema/locales/src/es.json":return me((()=>import("./es.c83d9c73.js")),void 0);case"../../node_modules/@mcschema/locales/src/fr.json":return me((()=>import("./fr.e316b1e2.js")),void 0);case"../../node_modules/@mcschema/locales/src/it.json":return me((()=>import("./it.7ff123cd.js")),void 0);case"../../node_modules/@mcschema/locales/src/ja.json":return me((()=>import("./ja.4ae430b9.js")),void 0);case"../../node_modules/@mcschema/locales/src/pl.json":return me((()=>import("./pl.ae1f6791.js")),void 0);case"../../node_modules/@mcschema/locales/src/pt.json":return me((()=>import("./pt.31e14993.js")),void 0);case"../../node_modules/@mcschema/locales/src/ru.json":return me((()=>import("./ru.92df5b59.js")),void 0);case"../../node_modules/@mcschema/locales/src/zh-cn.json":return me((()=>import("./zh-cn.4129665a.js")),void 0);case"../../node_modules/@mcschema/locales/src/zh-tw.json":return me((()=>import("./zh-tw.1b64f94d.js")),void 0);default:return Promise.reject(new Error("Unknown variable dynamic import: "+e))}}(`../../node_modules/@mcschema/locales/src/${e}.json`);fe[e]=s(s({},n.default),o.default)}function _e(e){return"object"==typeof e&&null!==e}const we=e=>("0"+e.toString(16)).substr(-2);function ye(e=12){var t=new Uint8Array(e/2);return window.crypto.getRandomValues(t),Array.from(t,we).join("")}function be(){return BigInt(Math.floor(Math.random()*Number.MAX_SAFE_INTEGER))}function xe(e){const t=Math.floor(4294967296*Math.random())-2147483648,n=e.get(new p.Path(["dimensions"]));e.set(new p.Path(["seed"]),t,!0),"object"==typeof n&&null!==n&&Object.keys(n).forEach((n=>{e.set(new p.Path(["dimensions",n,"generator","seed"]),t,!0),e.set(new p.Path(["dimensions",n,"generator","biome_source","seed"]),t,!0)})),e.set(new p.Path(["generator","seed"]),t,!0),e.set(new p.Path(["generator","biome_source","seed"]),t)}function ke(e){let t=0;for(let n=0;ne.url===t))}function Me(e){const t=Math.abs(ke(e));return[t%256,(t>>8)%256,(t>>16)%256]}function ze(e){return e*e}function je(e,t,n){return Math.max(e,Math.min(t,n))}function Ve(e,t,n){return n<0?e:n>1?t:$e(n,e,t)}function $e(e,t,n){return t+e*(n-t)}function Ee(e){return e instanceof Error?e.message:`${e}`}const Ie=h();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;oasync function(e,t){const n=await(await fetch(`${Pe}/${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(`${Pe}/${e.id}/${t.id}.md`)).text()).map((a=>s({version:t,group:e,order:1e3*n+o},a)))}(e,Te(n),t,o))))).flat()}(Te(e),t))))).flat()}return Se}function Te(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}:_e(e)?e:{id:"unknown",article:null}}const Ne=["1.15","1.16","1.17","1.18"],Be={},He={},Re={1.15:f,1.16:g,1.17:v,1.18:_};let Fe,We;async function Je(e){return Be[e]||(Be[e]=(async()=>{try{const t=Re[e].getCollections(),n={};await async function(e,t,n){const o=q.versions.find((t=>t.id===e));if(!o)return void console.error(`[fetchData] Unknown version ${o} in ${JSON.stringify(q.versions)}`);console.debug(`[fetchData] ${JSON.stringify(o)}`),o.dynamic&&await Promise.all(qe.filter((e=>localStorage.getItem(`cached_${e.id}`)!==e.hash)).map((async e=>{console.debug(`[deleteMatching] ${e.id} '${localStorage.getItem(`cached_${e.id}`)}' < '${e.hash}' ${e.url}/${o.refs[e.id]}`),await async function(e){try{const t=await caches.open("misode-v1");console.debug("[deleteMatching] Opened cache misode-v1");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-v1: ${Ee(t)}`)}}((t=>t.startsWith(`${e.url}/${o.refs[e.id]}`))),console.debug(`[deleteMatching] Done! ${e.id} ${e.hash} '${localStorage.getItem(`cached_${e.id}`)}'`),localStorage.setItem(`cached_${e.id}`,e.hash),console.debug(`[deleteMatching] Set! ${e.id} ${e.hash} '${localStorage.getItem(`cached_${e.id}`)}'`)})));await Promise.all([Ke(o,t),Xe(o,n),Qe(o,t),et(o,t)])}(e,t,n);const o=Re[e].getSchemas(t);return Be[e]={collections:t,schemas:o,blockStates:n},Be[e]}catch(t){throw new Error(`Cannot get version "${e}": ${Ee(t)}`)}})()),Be[e]}function Ge(e,t,n){const o=q.versions.findIndex((t=>t.id===e)),a=t?q.versions.findIndex((e=>e.id===t)):0,r=n?q.versions.findIndex((e=>e.id===n)):q.versions.length-1;return a<=o&&o<=r}["1.15","1.16","1.17"].forEach((e=>localStorage.removeItem(`cache_${e}`)));const Ue="https://raw.githubusercontent.com/Arcensoth/mcdata",Ye="https://raw.githubusercontent.com/InventivetalentDev/minecraft-assets",Ze="https://raw.githubusercontent.com/SPGoding/vanilla-datapack",qe=[{id:"mcdata_master",hash:"5f32e0f8300e443d5462a0592cf392b0036f4f59",url:Ue},{id:"vanilla_datapack_summary",hash:"33019b47ae943f905d12933de26eb4b3c027f852",url:Ze}];async function Ke(e,t){console.debug(`[fetchRegistries] ${e.id}`);const n=q.registries.filter((e=>!e.dynamic&&!e.asset)).filter((t=>Ge(e.id,t.minVersion,t.maxVersion)));if(Ge(e.id,void 0,"1.15")){const a=`${Ue}/${e.refs.mcdata_master}/generated/reports/registries.json`;try{const e=await ot(a,(e=>{const t={};return Object.keys(e).forEach((n=>{t[n.slice(10)]=Object.keys(e[n].entries)})),t}));n.forEach((n=>{var o;t.register(n.id,null!=(o=e[n.id])?o:[])}))}catch(o){console.warn("Error occurred while fetching registries:",Ee(o))}}else await Promise.all(n.map((async n=>{try{const o=n.path?`${Ue}/${e.refs.mcdata_master}/${n.path}/data.min.json`:`${Ue}/${e.refs.mcdata_master}/processed/reports/registries/${n.id}/data.min.json`;t.register(n.id,await ot(o,(e=>e.values)))}catch(o){console.warn(`Error occurred while fetching registry ${n.id}:`,Ee(o))}})))}async function Xe(e,t){if(console.debug(`[fetchBlockStateMap] ${e.id}`),Ge(e.id,void 0,"1.16")){const o=Ge(e.id,void 0,"1.15")?`${Ue}/${e.refs.mcdata_master}/generated/reports/blocks.json`:`${Ue}/${e.refs.mcdata_master}/processed/reports/blocks/data.min.json`;try{const e=await ot(o,(e=>{const t={};return Object.keys(e).forEach((n=>{t[n]={properties:e[n].properties,default:e[n].states.find((e=>e.default)).properties}})),t}));Object.assign(t,e)}catch(n){console.warn("Error occurred while fetching block state map:",Ee(n))}}else{const o=`${Ue}/${e.refs.mcdata_master}/processed/reports/blocks/simplified/data.min.json`;try{const e=await ot(o);Object.assign(t,e)}catch(n){console.warn("Error occurred while fetching block state map:",Ee(n))}}}async function Qe(e,t){console.debug(`[fetchDynamicRegistries] ${e.id}`);const n=q.registries.filter((e=>e.dynamic&&!e.asset)).filter((t=>Ge(e.id,t.minVersion,t.maxVersion)));if(Ge(e.id,"1.16")){const a=`${Ze}/${e.refs.vanilla_datapack_summary}/summary/flattened.min.json`;try{const e=await ot(a);n.forEach((n=>{t.register(n.id,e[n.id])}))}catch(o){console.warn("Error occurred while fetching dynamic registries:",Ee(o))}}Ge(e.id,"1.18")&&t.register("worldgen/noise",at)}async function et(e,t){console.debug(`[fetchAssetsRegistries] ${e.id}`);const n=q.registries.filter((e=>e.asset)).filter((t=>Ge(e.id,t.minVersion,t.maxVersion)));await Promise.all(n.map((async n=>{var o;try{const a=async t=>{const n=`${Ye}/${e.refs.mcassets}/assets/minecraft/${t}/_list.json`,o=await ot(n);if(0===o.directories.length)return o.files;const r=await Promise.all(o.directories.map((async e=>(await a(`${t}/${e}`)).map((t=>`${e}/${t}`)))));return[...o.files,...r.flat()]},r=(await a(null!=(o=n.path)?o:n.id)).filter((e=>e.endsWith(".json")||e.endsWith(".png"))).map((e=>`minecraft:${e.replace(/\.(json|png)$/,"")}`));t.register(n.id,r)}catch(a){console.warn(`Error occurred while fetching assets registry ${n.id}:`,Ee(a))}})))}async function tt(e,t,n){console.debug(`[fetchPreset] ${t} ${n}`);const o=q.versions.find((t=>t.id===e));try{const a=["blockstates","models"].includes(t)?`${Ye}/${o.refs.mcassets}/assets/minecraft/${t}/${n}.json`:`${Ze}/${o.refs.vanilla_datapack_data}/data/minecraft/${t}/${n}.json`,r=await fetch(a);if("worldgen/noise_settings"===t&&"1.18"===e){let e=await r.text();e=e.replaceAll('"max_threshold": Infinity','"max_threshold": 100');const t=JSON.parse(e);return"overworld"!==n&&"large_biomes"!==n&&(t.noise.terrain_shaper={offset:0,factor:0,jaggedness:0}),t}return await r.json()}catch(a){console.warn(`Error occurred while fetching ${t} preset ${n}:`,Ee(a))}}function nt(e){return`https://misode-cors-anywhere.herokuapp.com/https://resources.download.minecraft.net/${e.slice(0,2)}/${e}`}async function ot(e,t=(e=>e)){try{const n=await caches.open("misode-v1");console.debug(`[getData] Opened cache misode-v1 ${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 a=await fetch(e),r=t(await a.json());return await n.put(e,new Response(JSON.stringify(r))),r}catch(n){console.warn(`[getData] Failed to open cache misode-v1: ${Ee(n)}`),console.debug(`[getData] fetching data ${e}`);const o=await fetch(e);return t(await o.json())}}const at=["minecraft:aquifer_barrier","minecraft:aquifer_fluid_level_floodedness","minecraft:aquifer_fluid_level_spread","minecraft:aquifer_lava","minecraft:calcite","minecraft:cave_cheese","minecraft:cave_entrance","minecraft:cave_layer","minecraft:clay_bands_offset","minecraft:continentalness","minecraft:erosion","minecraft:gravel","minecraft:gravel_layer","minecraft:ice","minecraft:iceberg_and_badlands_pillar","minecraft:iceberg_and_badlands_pillar_roof","minecraft:jagged","minecraft:nether_state_selector","minecraft:nether_wart","minecraft:netherrack","minecraft:noodle","minecraft:noodle_ridge_a","minecraft:noodle_ridge_b","minecraft:noodle_thickness","minecraft:offset","minecraft:ore_gap","minecraft:ore_vein_a","minecraft:ore_vein_b","minecraft:ore_veininess","minecraft:packed_ice","minecraft:patch","minecraft:pillar","minecraft:pillar_rareness","minecraft:pillar_thickness","minecraft:powder_snow_surface","minecraft:powder_snow_under","minecraft:ridge","minecraft:soul_sand_layer","minecraft:spaghetti_2d","minecraft:spaghetti_2d_elevation","minecraft:spaghetti_2d_modulator","minecraft:spaghetti_2d_thickness","minecraft:spaghetti_3d_1","minecraft:spaghetti_3d_2","minecraft:spaghetti_3d_rarity","minecraft:spaghetti_3d_thickness","minecraft:spaghetti_roughness","minecraft:spaghetti_roughness_modulator","minecraft:surface","minecraft:surface_swamp","minecraft:temperature","minecraft:vegetation"];let rt=null;const it={},st={};async function lt(){return rt||(rt=async function(){try{const e=await fetch("https://launchermeta.mojang.com/mc/game/version_manifest.json");return await e.json()}catch(e){throw new Error(`Error occurred while fetching version manifest: ${Ee(e)}`)}}()),rt}async function ct(e){return it[e]||(it[e]=(async()=>{const t=await lt();return await async function(e,t){var n;const o=q.versions.find((t=>t.id===e)),a=null!=(n=null==o?void 0:o.latest)?n:t.latest.snapshot;try{const e=await ot(t.versions.find((e=>e.id===a)).url);return(await ot(e.assetIndex.url)).objects}catch(r){throw new Error(`Error occurred while fetching assets for ${o}: ${Ee(r)}`)}}(e,t)})()),it[e]}async function dt(e){return st[e]||(st[e]=(async()=>{const t=await ct(e);return await async function(e,t){try{const e=t["minecraft/sounds.json"].hash;return await ot(nt(e))}catch(n){throw new Error(`Error occurred while fetching sounds for ${e}: ${Ee(n)}`)}}(e,t)})()),st[e]}let ut=!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 ht,pt;async function ft(e,t){const n=[e,t.octaves,t.shaper.toJson(),`${t.seed}`,t.version];return Oe(n,ht)||(ht=Ie(n),pt=await async function(e,t){var n,o,a,r,i;switch(null==(n=null==e?void 0:e.type)?void 0:n.replace(/^minecraft:/,"")){case"fixed":return new M(e.biome);case"checkerboard":const n=(null!=(o=e.scale)?o:2)+2,l=null!=(r=null==(a=e.biomes)?void 0:a.length)?r:0;return{getBiome(t,o,a){var r;const i=(((t>>n)+(a>>n))%l+l)%l;return null==(r=e.biomes)?void 0:r[i].node}};case"multi_noise":switch(null==(i=e.preset)?void 0:i.replace(/^minecraft:/,"")){case"nether":e="1.18"===t.version?wt:_t;break;case"overworld":e="1.18"===t.version?await async function(){return(await tt("1.18","dimension","overworld")).generator.biome_source}():e}if(e=p.DataModel.unwrapLists(e),"1.18"===t.version){await async function(){ut||(await z(j),ut=!0,console.debug(`Loaded deepslate-rs from "${j}"`))}();const n=new Le,o=e=>"number"==typeof e?[e,e]:e,[a,r,i,l,c,d,u,m,h,p,f,g,v,_]=[[],[],[],[],[],[],[],[],[],[],[],[],[],[]];for(const t of e.biomes){const{temperature:e,humidity:s,continentalness:w,erosion:y,weirdness:b,depth:x,offset:k}=t.parameters;a.push(o(e)[0]),r.push(o(e)[1]),i.push(o(s)[0]),l.push(o(s)[1]),c.push(o(w)[0]),d.push(o(w)[1]),u.push(o(y)[0]),m.push(o(y)[1]),h.push(o(b)[0]),p.push(o(b)[1]),f.push(o(x)[0]),g.push(o(x)[1]),v.push(k),_.push(n.getOrPut(t.biome,Math.floor(2147483647*Math.random())))}const C=w(new Float64Array(a),new Float64Array(r),new Float64Array(i),new Float64Array(l),new Float64Array(c),new Float64Array(d),new Float64Array(u),new Float64Array(m),new Float64Array(h),new Float64Array(p),new Float64Array(f),new Float64Array(g),new Float64Array(v),new Int32Array(_)),A=y(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 a;const r=b(C,A,e,e+1,1,t,t+1,1,o,o+1,1);return null!=(a=n.getA(r[0]))?a:"unknown"},getBiomes:(e,t,o,a,r,i,s,l,c)=>[...b(C,A,e,t,o,a,r,i,s,l,c)].map((e=>{var t;return null!=(t=n.getA(e))?t:"unknown"})),getClimate(e,n,o,a,r,i,l,c,d,u){const m=x(A,n,o,a,r,i,l,c,d,u),h=[];for(let p=0;p{var a;const r=e[`${n}_noise`];return r.firstOctave=je(null!=(a=r.firstOctave)?a:-7,-100,-1),new C(new A(t.seed+BigInt(o)),r)}));return Array.isArray(e.biomes)&&0!==e.biomes.length?{getBiome(t,o,a){const r=n.map((e=>e.sample(t,a,0)));let i=1/0,s="";for(const{biome:n,parameters:l}of e.biomes){const e=ze(l.altitude-r[0])+ze(l.temperature-r[1])+ze(l.humidity-r[2])+ze(l.weirdness-r[3])+ze(l.offset);eo.nextFloat(),nextInt:e=>o.nextInt(e),sampleInt(e){return At(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{jt(t,null==e?void 0:e.decorator,n).forEach((t=>zt(t,null==e?void 0:e.feature,n)))},random_boolean_selector:(e,t,n)=>{zt(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,a;for(const r of null!=(o=null==e?void 0:e.features)?o:[])if(n.nextFloat()<(null!=(a=null==r?void 0:r.chance)?a:0))return void zt(t,r.feature,n);zt(t,null==e?void 0:e.default,n)},simple_random_selector:(e,t,n)=>{var o,a,r;zt(t,null==(r=null==e?void 0:e.features)?void 0:r[n.nextInt(null!=(a=null==(o=null==e?void 0:e.features)?void 0:o.length)?a:0)],n)}},$t={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,a;let r=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 a=Math.max(1,e.noise_factor),r=n.biomeInfoNoise.sample(t[0]/a,0,t[2]/a),i=Math.max(0,Math.ceil((r+(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 a=4*Math.floor(o/4)+1+n.nextInt(3)+t[0];return[a,Math.max(n.seaLevel,yt[je(0,63,a)]),4*Math.floor(o%4)+1+n.nextInt(3)+t[2]]})),decorated:(e,t,n)=>jt(t,null==e?void 0:e.outer,n).flatMap((t=>jt(t,null==e?void 0:e.inner,n))),depth_average:(e,t,n)=>{var o,a,r,i;return Ct(t,n.nextInt(null!=(o=null==e?void 0:e.spread)?o:0)+n.nextInt(null!=(a=null==e?void 0:e.spread)?a:0)-(null!=(r=e.spread)?r: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)=>Ct(t,Math.max(n.seaLevel,yt[je(0,63,t[0])])),heightmap_spread_double:(e,t,n)=>{const o=Math.max(n.seaLevel,yt[je(0,63,t[0])]);return Ct(t,n.nextInt(2*o))},heightmap_world_surface:(e,t,n)=>Ct(t,Math.max(n.seaLevel,yt[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,a;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,a,r;return Ct(t,n.nextInt((null!=(o=null==e?void 0:e.maximum)?o:1)-(null!=(a=null==e?void 0:e.top_offset)?a:0))+(null!=(r=null==e?void 0:e.bottom_offset)?r:0))},range_biased:(e,t,n)=>{var o,a,r;return Ct(t,n.nextInt(n.nextInt((null!=(o=null==e?void 0:e.maximum)?o:1)-(null!=(a=null==e?void 0:e.top_offset)?a:0))+(null!=(r=null==e?void 0:e.bottom_offset)?r:0)))},range_very_biased:(e,t,n)=>{var o,a,r,i;return Ct(t,n.nextInt(n.nextInt(n.nextInt((null!=(o=null==e?void 0:e.maximum)?o:1)-(null!=(a=null==e?void 0:e.top_offset)?a:0))+(null!=(r=null==e?void 0:e.bottom_offset)?r:0))+(null!=(i=null==e?void 0:e.bottom_offset)?i:0)))},spread_32_above:(e,t,n)=>Ct(t,n.nextInt(t[1]+32)),top_solid_heightmap:(e,t)=>Ct(t,yt[je(0,63,t[0])]),magma:(e,t,n)=>Ct(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 a=yt[je(0,63,t[0])],r=a+(null!=(n=null==e?void 0:e.min_inclusive)?n:-1/0),i=a+(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)]]:[]}};class Et{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 A(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,a){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(a).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,a=this.fillNoiseColumn(n),r=this.fillNoiseColumn(n+1);for(let m=this.chunkCountY-1;m>=0;m-=1)for(let e=this.chunkHeight;e>=0;e-=1){const n=e/this.chunkHeight;t[m*this.chunkHeight+e]=(i=n,s=o,l=a[m],c=a[m+1],d=r[m],u=r[m+1],$e(s,$e(i,l,c),$e(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,a=684.412*this.settings.sampling.y_scale,r=o/this.settings.sampling.xz_factor,i=a/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,a,r,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=Ve(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=Ve(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,a,r,i){let s=0,l=0,c=0,d=1;for(let u=0;u<16;u+=1){const m=V.wrap(e*o*d),h=V.wrap(t*a*d),p=V.wrap(n*o*d),f=a*d,g=this.minLimitPerlinNoise.getOctaveNoise(u);g&&(s+=g.sample(m,h,p,f,t*f)/d);const v=this.maxLimitPerlinNoise.getOctaveNoise(u);if(v&&(l+=v.sample(m,h,p,f,t*f)/d),u<8){const o=this.mainPerlinNoise.getOctaveNoise(u);o&&(c+=o.sample(V.wrap(e*r*d),V.wrap(t*i*d),V.wrap(n*r*d),i*d,t*i*d)/d)}d/=2}return Ve(s/512,l/512,(c/10+1)/2)}}const It={"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 Ot,Lt,Pt=[];function St(e,t,n){var o,a,r;if(Ge(n.version,"1.18")){const{settings:a,generator:r}=function(e,t){const n=$.fromJson(p.DataModel.unwrapLists(e));n.octaves=Rt(n);const o=[e,`${t.seed}`];if(!Oe(o,Ot)){Ot=Ie(o),Pt=[];const e=new M("unknown");Lt=new E(t.seed,e,n)}return{settings:n,generator:Lt}}(e,n),i=new Tt(-n.offset,n.width,a.noise.minY,a.noise.height);i.fill(r);const s=t.data;for(let e=0;e0?0:e[t+1]>0?150:255}class Tt{constructor(e,t,n,o){this.minX=e,this.filled=[],this.chunks=[...Array(Math.ceil(t/16)+1)].map(((t,a)=>{const r=(e>>4)+a,i=Pt.find((e=>e.pos[0]===r));return i?(this.filled[a]=!0,i):new I(n,o,O.create(r,0))}))}fill(e){this.chunks.forEach(((t,n)=>{this.filled[n]||(e.fill(t),this.filled[n]=!0,Pt.push(t))}))}getBlockState(e){const t=(e[0]>>4)-(this.minX>>4);return this.chunks[t].getBlockState(e)}}const Nt=["biomes","temperature","humidity","continentalness","erosion","weirdness","offset","factor","jaggedness"],Bt=k.overworld(),Ht=({model:e,data:t,shown:n,lang:o,version:a})=>{var r;const[i,s]=m(2),[l,h]=m(void 0),[f,g]=m(new Set(["biomes"])),v=u([0,0]),_=u(1),w=u(void 0),y=BigInt(e.get(new p.Path(["generator","seed"]))),b=Rt(e.get(new p.Path(["generator","settings"]))),x=function(e){var t;if("string"==typeof e)switch(e.replace(/^minecraft:/,"")){case"overworld":case"amplified":return Bt;default:return k.fromJson({offset:0,factor:0,jaggedness:0})}return k.fromJson(p.DataModel.unwrapLists(null==(t=null==e?void 0:e.noise)?void 0:t.terrain_shaper))}(e.get(new p.Path(["generator","settings"]))),C=n?function(e,t,n){return JSON.stringify([e,t,n.toJson()])}(t,b,x):"",A=null==(r=t.type)?void 0:r.replace(/^minecraft:/,""),{canvas:M,redraw:z}=ee({size:()=>[200/_.current,200/_.current],async draw(e){const n={octaves:b,shaper:x,biomeColors:{},layers:f,offset:v.current,scale:i,seed:y,res:_.current,version:a};await async function(e,t,n){var o,a,r;const{biomeSource:i}=await ft(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,m=[l*n.scale,(200+l)*n.scale,n.res*n.scale],h=[c*n.scale,(200+c)*n.scale,n.res*n.scale],p=n.layers.has("biomes")?null==(o=i.getBiomes)?void 0:o.call(i,...m,64,65,1,...h):void 0,f=[...n.layers].filter((e=>"biomes"!==e)),g=0===f.length||null==(a=i.getClimate)?void 0:a.call(i,new Set(f),...m,64,65,1,...h);for(let v=0;v<200;v+=n.res)for(let e=0;e<200;e+=n.res){const t=e*d+v*u,o=v/n.res*200/n.res+e/n.res,a=(v+l)*n.scale,m=(e+c)*n.scale;let h=[50,50,50];if(n.layers.has("biomes"))h=gt(null!=(r=null==p?void 0:p[o])?r:i.getBiome(a,64,m),n.biomeColors);else if(g&&f[0]){const e=g[o][f[0]],[t,n]=mt[f[0]],a=(e-t)/(n-t)*256;h=[a,a,a]}s[t]=h[0],s[t+1]=h[1],s[t+2]=h[2],s[t+3]=255}}(t,e,n),4===_.current&&(clearTimeout(w.current),w.current=setTimeout((()=>{_.current=1,z()}),150))},async onDrag(e,t){v.current[0]=v.current[0]+200*e,v.current[1]=v.current[1]+200*t,clearTimeout(w.current),_.current="multi_noise"===A?4:1,z()},async onHover(e,n){const o={octaves:b,shaper:x,biomeColors:{},layers:f,offset:v.current,scale:i,seed:y,res:1,version:a},r=await async function(e,t,n,o){const{biomeSource:a}=await ft(e,o),[r,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 a.getBiome(r,64,i)}(t,Math.floor(200*e),Math.floor(200*n),o);h(r)},onLeave(){h(void 0)}},[C,i,y,f]);c((()=>{n&&(_.current="multi_noise"===A?4:1,z())}),[C,i,y,f,n]);const j=e=>{v.current[0]=v.current[0]*i/e,v.current[1]=v.current[1]*i/e,s(e)};return d(P,null,d("div",{class:"controls"},l&&d(X,{label:l,class:"no-pointer"}),"multi_noise"===A&&d(oe,{icon:"stack",tooltip:ge(o,"configure_layers")},Nt.map((e=>{const t=f.has(e);return d(X,{label:ge(o,`layer.${e}`),active:t,tooltip:ge(o,t?"enabled":"disabled"),onClick:t=>{g(new Set([e])),t.stopPropagation()}})}))),("multi_noise"===A||"checkerboard"===A)&&d(P,null,d(X,{icon:"dash",tooltip:ge(o,"zoom_out"),onClick:()=>j(1.5*i)}),d(X,{icon:"plus",tooltip:ge(o,"zoom_in"),onClick:()=>j(i/1.5)})),"multi_noise"===A&&d(X,{icon:"sync",tooltip:ge(o,"generate_new_seed"),onClick:()=>xe(e)})),d("canvas",{ref:M,width:"200",height:"200"}))};function Rt(e){if("string"!=typeof e){const t=$.fromJson(p.DataModel.unwrapLists(e));e=0===t.noise.densityFactor&&-.030078125===t.noise.densityOffset?"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 Ft=({data:e,version:t,shown:n,lang:o})=>{const[a,r]=m(4),[i,s]=m(be()),{canvas:l,redraw:u}=ee({size:()=>[16*a,16*a],async draw(n){xt(e,n,{seed:i,version:t,size:[16*a,128,16*a]})}}),h=JSON.stringify(e);return c((()=>{n&&u()}),[h,a,i,n]),d(P,null,d("div",{class:"controls"},d(X,{icon:"dash",tooltip:ge(o,"zoom_out"),onClick:()=>r(Math.min(16,a+1))}),d(X,{icon:"plus",tooltip:ge(o,"zoom_in"),onClick:()=>r(Math.max(1,a-1))}),d(X,{icon:"sync",tooltip:ge(o,"generate_new_seed"),onClick:()=>s(be())})),d("canvas",{ref:l,width:"64",height:"64"}))},Wt=({lang:e,data:t,shown:n,version:o})=>{const[a,r]=m(be()),[i,s]=m(2),l=u([0,0]),h=JSON.stringify([t]),{canvas:f,redraw:g}=ee({size:()=>[256,256],async draw(e){const n={offset:l.current,scale:i,seed:a,version:o};!function(e,t,n){const o=new A(n.seed),a=L.fromJson(p.DataModel.unwrapLists(e)),r=new C(o,a),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,a=(e+s)*n.scale,d=128*(r.sample(o,a,0)+1);l[t]=d,l[t+1]=d,l[t+2]=d,l[t+3]=255}}(t,e,n)},async onDrag(e,t){l.current[0]=l.current[0]+256*e,l.current[1]=l.current[1]+256*t,g()}},[h,i,a]);c((()=>{n&&g()}),[h,i,a,n]);const v=e=>{l.current[0]=l.current[0]*i/e,l.current[1]=l.current[1]*i/e,s(e)};return d(P,null,d("div",{class:"controls"},d(X,{icon:"dash",tooltip:ge(e,"zoom_out"),onClick:()=>v(1.5*i)}),d(X,{icon:"plus",tooltip:ge(e,"zoom_in"),onClick:()=>v(i/1.5)}),d(X,{icon:"sync",tooltip:ge(e,"generate_new_seed"),onClick:()=>r(be())})),d("canvas",{ref:f,width:"256",height:"256"}))},Jt=({lang:e,data:t,shown:n,version:o})=>{var a,r;const i=ge.bind(null,e),[s,l]=m(be()),[h,p]=m(.2),[f,g]=m(.1),[v,_]=m(void 0),w=u(0),y=JSON.stringify([t,h,f]),b=null!=(r=null==(a=null==t?void 0:t.noise)?void 0:a.height)?r:256,{canvas:x,redraw:k}=ee({size:()=>[b,b],async draw(e){const n={biomeDepth:f,biomeScale:h,offset:w.current,width:e.width,seed:s,version:o};St(t,e,n)},async onDrag(e){w.current+=e*b,k()},async onHover(e,n){var o,a;const r=b-Math.max(1,Math.ceil(n*b))+(null!=(a=null==(o=null==t?void 0:t.noise)?void 0:o.min_y)?a:0);_(`${r}`)},onLeave(){_(void 0)}},[y,s]);return c((()=>{n&&k()}),[y,s,n]),d(P,null,d("div",{class:"controls"},v&&d(X,{label:`Y = ${v}`,class:"no-pointer"}),Ge(o,void 0,"1.17")&&d(oe,{icon:"gear",tooltip:ge(e,"terrain_settings")},d(Q,{label:i("preview.scale"),value:`${h}`,onChange:e=>p(Number(e))}),d(Q,{label:i("preview.depth"),value:`${f}`,onChange:e=>g(Number(e))})),d(X,{icon:"sync",tooltip:ge(e,"generate_new_seed"),onClick:()=>l(be())})),d("canvas",{ref:x,width:b,height:b}))},Gt=["dimension","worldgen/noise","worldgen/noise_settings","worldgen/configured_feature"];function Ut({lang:e,model:t,version:n,id:o,shown:a}){var r;const[,i]=m(0);if(ne(t,(()=>{i((e=>e+1))})),"dimension"===o&&(null==(r=null==t?void 0:t.get(new p.Path(["generator","type"])))?void 0:r.endsWith("noise"))){const o=t.get(new p.Path(["generator","biome_source"]));if(o)return d(Ht,s({},{lang:e,model:t,version:n,shown:a,data:o}))}if("worldgen/noise"===o&&t){const o=t.get(new p.Path([]));if(o)return d(Wt,s({},{lang:e,model:t,version:n,shown:a,data:o}))}if("worldgen/noise_settings"===o&&t){const o=t.get(new p.Path([]));if(o)return d(Jt,s({},{lang:e,model:t,version:n,shown:a,data:o}))}if("worldgen/configured_feature"===o&&t){const o=t.get(new p.Path([]));if(o)return d(Ft,s({},{lang:e,model:t,version:n,shown:a,data:o}))}return d(P,null)}const Yt={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 a=n.map(((n,a)=>e.hook(this,t.push(a),n.node,o)));for(const r of Object.getOwnPropertySymbols(n))a[r]=n[r];return a},map({children:e,config:t},n,o,a){var r,i;if(void 0===o)return;const s="block_state_map"===(null==(r=t.validation)?void 0:r.validator)?null==(i=a.blockStates)?void 0:i[p.relativePath(n,t.validation.params.id).get()]:null,l={};Object.keys(o).forEach((t=>{var r;s&&!Object.keys(null!=(r=s.properties)?r:{}).includes(t)||(l[t]=e.hook(this,n.push(t),o[t],a))}));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 a={},r=e(t);Object.keys(r).filter((e=>r[e].enabled(t))).forEach((e=>{const i=r[e].hook(this,t.push(e),n[e],o);null!=i&&(a[e]=i)}));for(const i of Object.getOwnPropertySymbols(n))a[i]=n[i];return a}};var Zt,qt;(qt=Zt||(Zt={})).ID_LANGUAGE="language",qt.ID_THEME="theme",qt.ID_VERSION="schema_version",qt.ID_INDENT="indentation",qt.ID_FORMAT="output_format",qt.ID_SOUNDS_VERSION="minecraft_sounds_version",qt.getLanguage=function(){var e;return null!=(e=localStorage.getItem(qt.ID_LANGUAGE))?e:"en"},qt.getTheme=function(){var e;return null!=(e=localStorage.getItem(qt.ID_THEME))?e:"dark"},qt.getVersion=function(){const e=localStorage.getItem(qt.ID_VERSION);return e&&Ne.includes(e)?e:"1.17"},qt.getIndent=function(){var e;return null!=(e=localStorage.getItem(qt.ID_INDENT))?e:"2_spaces"},qt.getFormat=function(){var e;return null!=(e=localStorage.getItem(qt.ID_FORMAT))?e:"json"},qt.getSoundsVersion=function(){var e;return null!=(e=localStorage.getItem(qt.ID_SOUNDS_VERSION))?e:"latest"},qt.setLanguage=function(e){e&&localStorage.setItem(qt.ID_LANGUAGE,e)},qt.setTheme=function(e){e&&localStorage.setItem(qt.ID_THEME,e)},qt.setVersion=function(e){e&&localStorage.setItem(qt.ID_VERSION,e)},qt.setIndent=function(e){e&&localStorage.setItem(qt.ID_INDENT,e)},qt.setFormat=function(e){e&&localStorage.setItem(qt.ID_FORMAT,e)},qt.setSoundsVersion=function(e){e&&localStorage.setItem(qt.ID_SOUNDS_VERSION,e)};const Kt={"2_spaces":2,"4_spaces":4,tabs:"\t",minified:void 0},Xt={json:{parse:D.parse,stringify:(e,t)=>D.stringify(e,null,t)},yaml:{parse:T.load,stringify:(e,t)=>T.dump(e,{flowLevel:void 0===t?0:-1,indent:"string"==typeof t?4:t})}};function Qt({lang:e,name:t,model:n,blockStates:o,doCopy:a,doDownload:r,doImport:i,copySuccess:s,onError:l}){const h=ge.bind(null,e),[f,g]=m(Zt.getIndent()),[v,_]=m(Zt.getFormat()),w=u(null),y=u(null),b=u(),x=S(((e,t)=>{const n=e.schema.hook(Yt,new p.ModelPath(e),e.data,{blockStates:t});return Xt[v].stringify(n,Kt[f])+"\n"}),[f,v]);c((()=>{b.current=()=>{if(n&&o)try{const e=x(n,o);e.length>=1e4?w.current.value=e.slice(0,1e4)+"\n\nOutput is too large to display (+10000 chars)\nExport to view complete output\n\n":w.current.value=e}catch(e){l(`Error getting JSON output: ${Ee(e)}`),console.error(e),w.current.value=""}}})),ne(n,(()=>{b.current()})),c((()=>{n&&b.current()}),[n]),c((()=>{b.current()}),[f,v]);c((()=>{a&&n&&o&&navigator.clipboard.writeText(x(n,o)).then((()=>{s()}))}),[a]),c((()=>{if(r&&n&&o&&y.current){const e=encodeURIComponent(x(n,o));y.current.setAttribute("href",`data:text/json;charset=utf-8,${e}`),y.current.setAttribute("download",`${t}.${v}`),y.current.click()}}),[r]),c((()=>{i&&w.current&&(w.current.value="",w.current.select())}),[i]);return d(P,null,d("div",{class:"controls"},d(oe,{icon:"gear",tooltip:h("output_settings")},Object.entries(Kt).map((([e])=>d(X,{label:h(`indentation.${e}`),active:f===e,onClick:()=>{return t=e,Zt.setIndent(t),void g(t);var t}}))),d("hr",null),Object.keys(Xt).map((e=>d(X,{label:h(`format.${e}`),active:v===e,onClick:()=>{return t=e,Zt.setFormat(t),void _(t);var t}}))))),d("textarea",{ref:w,class:"source",onBlur:()=>{if(0!==w.current.value.length)try{const e=Xt[v].parse(w.current.value);null==n||n.reset(p.DataModel.wrapLists(e),!1)}catch(e){l(`Error importing: ${Ee(e)}`),console.error(e)}},spellcheck:!1,autocorrect:"off",placeholder:h("source_placeholder")}),d("a",{ref:y,style:"display: none;"}))}class en extends p.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 tn=["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"],nn=["number_provider.type","score_provider.type","nbt_provider.type","int_provider.type","float_provider.type","height_provider.type"],on=["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"],an=["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"],rn=["function.set_nbt.tag","advancement.display.icon.nbt","text_component_object.nbt","entity.nbt","block.nbt","item.nbt"],sn=["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"],ln=["noise_settings.surface_rule","noise_settings.noise.terrain_shaper"],cn=new p.DataModel(p.MapNode(p.StringNode(),p.StringNode()),{historyMax:0});function dn({model:e,lang:t,blockStates:n}){var o;const a=new p.ModelPath(e),[r,i,s]=e.schema.hook(un,a,Ie(e.data),t,n,{});return(null==(o=null==i?void 0:i.props)?void 0:o.children.some((e=>e)))?d("div",{class:`node ${e.schema.type(a)}-node`,"data-category":e.schema.category(a)},d("div",{class:"node-header"},r,i),d("div",{class:"node-body"},s)):s}const un={base:()=>[null,null,null],boolean:(e,t,n,o,a,r)=>[null,d(pn,s({},l(s({},e),{path:t,value:n,lang:o,states:a,ctx:r}))),null],choice({choices:e,config:t,switchNode:n},o,a,r,i,s){const l=n.activeCase(o,!0),c=(null==t?void 0:t.context)?new p.ModelPath(o.getModel(),new p.Path(o.getArray(),[t.context])):o,[u,m,h]=l.node.hook(this,c,a,r,i,s);if(1===e.length)return[u,m,h];const f=(null==t?void 0:t.choiceContext)?new p.Path([],[t.choiceContext]):(null==t?void 0:t.context)?new p.Path([],[t.context]):o,g=d("select",{value:l.type,onChange:n=>(n=>{var r,i,s;const c=null!=(r=e.find((e=>e.type===n)))?r:l,d=c.change?c.change(p.DataModel.unwrapLists(a)):"feature"===t.choiceContext?null==(s=null==(i=c.node.default())?void 0:i.config)?void 0:s.feature:c.node.default();o.model.set(o,p.DataModel.wrapLists(d))})(n.target.value)},e.map((e=>d("option",{value:e.type},yn(r,f.contextPush(e.type))))));return[u,d(P,null,g,m),h]},list({children:e,config:t},n,o,a,r,i){const{expand:c,collapse:u,isToggled:h}=hn(),[f,g]=m(50),v=n.getContext().join(".");if(sn.includes(v)){return[d(P,null,[...Array(t.maxLength)].map(((e,t)=>d(bn,{lang:a,path:n.modelPush(t)}))),d("div",{class:"fixed-list"})),d(P,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,a,r,i)[1]}))),null]}return[null,d("button",{class:"add tooltipped tip-se","aria-label":ge(a,"add_top"),onClick:()=>{Array.isArray(o)||(o=[]);const t=p.DataModel.wrapLists(e.default());n.model.set(n,[{node:t,id:ye()},...o])}},ae.plus_circle),d(P,null,o&&Array.isArray(o)&&o.map((({node:t,id:m},p)=>{if(p===f)return d("div",{class:"node node-header"},d("label",null,ge(a,"entries_hidden",""+(o.length-f))),d("button",{onClick:()=>g(Math.min(f+50,o.length))},ge(a,"entries_hidden.more","50")),d("button",{onClick:()=>g(o.length)},ge(a,"entries_hidden.all")));if(p>f)return null;const v=n.push(p).contextPush("entry"),_="object"===e.type(v),w=h(m);if(_&&(!1===w||void 0===w&&o.length>20))return d("div",{class:"node node-header","data-category":e.category(v)},d(bn,{lang:a,path:v,nested:!0}),d("button",{class:"toggle tooltipped tip-se","aria-label":`${ge(a,"expand")}\n${ge(a,"expand_all","Ctrl")}`,onClick:c(m)},ae.chevron_right),d("label",null,yn(a,v,`${p}`)),d(mn,{key:m,path:v,value:t,schema:e}));return d(vn,l(s({key:m,path:v,schema:e,value:t},{lang:a,states:r,actions:[{icon:"duplicate",label:"duplicate",onSelect:()=>{const e=[...n.get()];e.splice(p,0,{id:ye(),node:Ie(t)}),n.model.set(n,e)}}]}),{ctx:l(s({},i),{index:(0===p?1:0)+(p===o.length-1?2:0)})}),_&&d("button",{class:"toggle tooltipped tip-se","aria-label":`${ge(a,"collapse")}\n${ge(a,"collapse_all","Ctrl")}`,onClick:u(m)},ae.chevron_down),d("button",{class:"remove tooltipped tip-se","aria-label":ge(a,"remove"),onClick:()=>v.set(void 0)},ae.trashcan),o.length>1&&d("div",{class:"node-move"},d("button",{class:"move tooltipped tip-se","aria-label":ge(a,"move_up"),onClick:()=>{const e=[...n.get()];[e[p-1],e[p]]=[e[p],e[p-1]],n.model.set(n,e)},disabled:0===p},ae.chevron_up),d("button",{class:"move tooltipped tip-se","aria-label":ge(a,"move_down"),onClick:()=>{const e=[...n.get()];[e[p+1],e[p]]=[e[p],e[p+1]],n.model.set(n,e)},disabled:p===o.length-1},ae.chevron_down)))})),o&&o.length>0&&o.length<=f&&d("div",{class:"node node-header"},d("button",{class:"add tooltipped tip-se","aria-label":ge(a,"add_bottom"),onClick:()=>{Array.isArray(o)||(o=[]);const t=p.DataModel.wrapLists(e.default());n.model.set(n,[...o,{node:t,id:ye()}])}},ae.plus_circle)))]},map({children:e,keys:t,config:n},o,a,r,i,c){var u,m,h,f,g;const{expand:v,collapse:_,isToggled:w}=hn(),y=new p.ModelPath(cn,new p.Path([wn(o.toString())])),b="block_state_map"===(null==(u=n.validation)?void 0:u.validator)?null==i?void 0:i[p.relativePath(o,n.validation.params.id).get()]:null,x=(null==b?void 0:b.properties)?p.StringNode(null,{enum:Object.keys(null!=(m=b.properties)?m:{})}):t;if(b&&"Properties"===o.last()){"object"!=typeof a&&(a={});const e=Object.entries(null!=(h=b.properties)?h:{}).map((([e,t])=>[e,p.StringNode(null,{enum:t})]));return Object.entries(null!=(f=b.properties)?f:{}).forEach((([e,t])=>{"string"!=typeof a[e]?o.model.errors.add(o.push(e),"error.expected_string"):t.includes(a[e])||o.model.errors.add(o.push(e),"error.invalid_enum_option",a[e])})),p.ObjectNode(Object.fromEntries(e)).hook(this,o,a,r,i,c)}return[null,d(P,null,x.hook(this,y,null!=(g=y.get())?g:"",r,i,c)[1],d("button",{class:"add tooltipped tip-se","aria-label":ge(r,"add"),onClick:()=>{const t=y.get();o.model.set(o.push(t),p.DataModel.wrapLists(e.default()))}},ae.plus_circle)),d(P,null,"object"==typeof a&&Object.entries(a).map((([t,n])=>{var u,m,h,f;const g=o.modelPush(t),y="object"===e.type(g),x=w(t);if(y&&(!1===x||void 0===x&&a.length>20))return d("div",{class:"node node-header","data-category":e.category(g)},d(bn,{lang:r,path:g,nested:!0}),d("button",{class:"toggle tooltipped tip-se","aria-label":`${ge(r,"expand")}\n${ge(r,"expand_all","Ctrl")}`,onClick:v(t)},ae.chevron_right),d("label",null,t),d(mn,{key:t,path:g,value:n,schema:e}));const k=b?p.StringNode(null,{enum:null!=(m=null==(u=b.properties)?void 0:u[t])?m:[]}):e;(null==(h=null==b?void 0:b.properties)?void 0:h[t])&&"string"==typeof n&&!(null==(f=b.properties)?void 0:f[t].includes(n))&&o.model.errors.add(g,"error.invalid_enum_option",n);return d(vn,l(s({key:t,schema:k,path:g,value:n},{lang:r,states:i,ctx:c}),{label:t}),y&&d("button",{class:"toggle tooltipped tip-se","aria-label":`${ge(r,"collapse")}\n${ge(r,"collapse_all","Ctrl")}`,onClick:_(t)},ae.chevron_down),d("button",{class:"remove tooltipped tip-se","aria-label":ge(r,"remove"),onClick:()=>g.set(void 0)},ae.trashcan))})))]},number:(e,t,n,o,a,r)=>[null,d(fn,s({},l(s({},e),{path:t,value:n,lang:o,states:a,ctx:r}))),null],object({node:e,config:t,getActiveFields:n,getChildModelPath:o},a,r,i,c,u){var m;const{expand:h,collapse:f,isToggled:g}=hn();if(0==a.getArray().length&&function(e,t){var n;return"feature"===e&&"decorated"===(null==(n=null==t?void 0:t.type)?void 0:n.replace(/^minecraft:/,""))&&_e(null==t?void 0:t.config)}(t.context,r)){const{wrapper:e,fields:t}=function(e,t,n){const o=[],a=Cn(n,o),r={type:e.type,config:p.ObjectNode({decorators:p.ListNode(Fe),feature:We},{context:"feature.decorated"})},i=p.ObjectNode(r,{context:"feature"}),s=new p.Path(["config","feature"]),l=new p.Path(["config","decorators"]),c=t.getModel(),d=new en(i,(e=>{if(e.startsWith(s))return new p.Path([...[...Array(o.length-1)].flatMap((()=>["config","feature"])),...e.modelArr]);if(e.startsWith(l)){if(2===e.modelArr.length)return new p.Path([]);const t=e.modelArr[2];if("number"==typeof t)return new p.Path([...[...Array(t)].flatMap((()=>["config","feature"])),"config","decorator",...e.modelArr.slice(3)])}return e}),(e=>{if(e.equals(l)){const e=[];return Cn(c.data,e),e}return c.get(d.map(e))}),((e,t,n)=>{if(e.startsWith(s)){const o=[];Cn(c.data,o);const a=new p.Path([...[...Array(o.length-1)].flatMap((()=>["config","feature"])),...e.modelArr]);return c.set(a,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 p.Path,An(e,t),n)}if("number"==typeof o){if(3===e.modelArr.length&&void 0===t){const e=d.get(s),t=[];Cn(c.data,t),t.splice(o,1);const a=An(e,t);return c.set(new p.Path,a,n)}{const a=new p.Path([...[...Array(o)].flatMap((()=>["config","feature"])),"config","decorator",...e.modelArr.slice(3)]);return c.set(a,t,n)}}}c.set(e,t,n)}));return d.data={type:c.data.type,config:{decorators:o,feature:a}},d.errors=c.errors,{fields:r,wrapper:d}}(n(a),a,r);r=e.data,n=()=>t,o=(t,n)=>new p.ModelPath(e,new p.Path(t.getArray(),["feature"])).push(n)}let v=null,_=null;if(e.optional())if(void 0===r){const t=()=>a.set(p.DataModel.wrapLists(e.default()));_=d("button",{class:"collapse closed tooltipped tip-se","aria-label":ge(i,"expand"),onClick:t},ae.plus_circle)}else{const e=()=>a.set(void 0);_=d("button",{class:"collapse open tooltipped tip-se","aria-label":ge(i,"remove"),onClick:e},ae.trashcan)}const w=a.getContext().join(".");if(ln.includes(w)){const e=g("");if(v=d(P,null,d("button",{class:"toggle tooltipped tip-se","aria-label":ge(i,e?"collapse":"expand"),onClick:e?f(""):h("")},e?ae.chevron_down:ae.chevron_right)),!e)return[v,_,null]}const y="object"==typeof r&&null!==r&&(null==(m=e.default())?void 0:m.pools)?l(s({},u),{loot:null==r?void 0:r.type}):u,b=d(P,null,"object"==typeof r&&null!==r&&!(e.optional()&&void 0===r)&&Object.entries(n(a)).filter((([e,t])=>t.enabled(a))).map((([e,t])=>{var n,l,u;const m=o(a,e),h=m.getContext().join(".");if(nn.includes(h))return null;const[p,f,g]=t.hook(this,m,r[e],i,c,y);if(!(p||f||(null!=(u=null==(l=null==(n=null==g?void 0:g.props)?void 0:n.children)?void 0:l.length)?u:0)>0))return null;const w="object"===t.type(m)&&on.includes(h),b=an.includes(h);return w||b?(v=d(P,null,v,d(bn,{lang:i,path:m}),d(xn,{lang:i,path:m}),p),_=d(P,null,_,f),w?g:null):d(vn,s({key:e,schema:t,path:m,value:r[e]},{lang:i,states:c,ctx:y}))})));return[v,_,b]},string:(e,t,n,o,a,r)=>[null,d(gn,s({},l(s({},e),{path:t,value:n,lang:o,states:a,ctx:r}))),null]};function mn({path:e,value:t}){var n,o,a,r,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==(a=null==t?void 0:t.name)?void 0:a.replace(/^minecraft:/,""))?i:null==(r=null==t?void 0:t.type)?void 0:r.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 hn(){const[e,t]=m(new Map),[n,o]=m(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 pn({path:e,node:t,value:n,lang:o}){const a=o=>{e.model.set(e,t.optional()&&n===o?void 0:o)};return d(P,null,d("button",{class:!1===n?"selected":"",onClick:()=>a(!1)},ge(o,"false")),d("button",{class:!0===n?"selected":"",onClick:()=>a(!0)},ge(o,"true")))}function fn({path:e,config:t,integer:n,value:o,lang:a}){var r;const i=t=>{const o=t.target.value,a=n?parseInt(o):parseFloat(o);e.model.set(e,a)};return d(P,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!=(r=null==o?void 0:o.toString(16).padStart(6,"0"))?r:"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:()=>xe(e.model),class:"tooltipped tip-se","aria-label":ge(a,"generate_new_seed")},ae.sync))}function gn({path:e,getValues:t,config:n,node:o,value:a,lang:r,states:i}){var s;const l=t=>{t.stopPropagation();const n=t.target.value;n!==a&&e.model.set(e,0===n.length?void 0:n)},c=t(),u=e.getContext().join(".");if(rn.includes(u))return d("textarea",{value:null!=a?a:"",onBlur:l});if(_n(n)&&!n.additional||tn.includes(u)){let t=new p.Path([]);return _n(n)&&"string"==typeof n.enum?t=t.contextPush(n.enum):_n(n)||"resource"!==(null==n?void 0:n.validator)||"string"!=typeof n.params.pool?_n(n)&&(t=e):t=t.contextPush(n.params.pool),d("select",{value:null!=a?a:"",onChange:l},o.optional()&&d("option",{value:""},ge(r,"unset")),c.map((e=>d("option",{value:e},yn(r,t.contextPush(e.replace(/^minecraft:/,"")))))))}if(_n(n)||"block_state_key"!==(null==n?void 0:n.validator)){const e=ye();return d(P,null,d("input",{value:null!=a?a:"",onBlur:l,onKeyDown:e=>{"Enter"===e.key&&l(e)},list:c.length>0?e:""}),c.length>0&&d("datalist",{id:e},c.map((e=>d("option",{value:e})))))}{const t=null==i?void 0:i[p.relativePath(e,n.params.id).get()],o=Object.keys(null!=(s=null==t?void 0:t.properties)?s:{});return d("select",{value:null!=a?a:"",onChange:l},o.map((e=>d("option",null,e))))}}const vn=N((function({label:e,schema:t,path:n,value:o,lang:a,states:r,ctx:i,actions:c,children:u}){var m;const h=t.type(n),p=t.category(n),f=n.getContext().join("."),[g,v]=te(),_=l(s({},i),{depth:(null!=(m=i.depth)?m:0)+1});delete _.index;const[w,y,b]=t.hook(un,n,o,a,r,_);return d("div",{class:`node ${h}-node`,"data-category":p},d("div",{class:"node-header",onContextMenu:e=>{e.preventDefault(),v()}},d(bn,{lang:a,path:n}),d(xn,{lang:a,path:n}),u,w,d("label",null,null!=e?e:yn(a,n,`${n.last()}`),g&&d("div",{class:"node-menu"},null==c?void 0:c.map((e=>{var t;return d("div",{key:e.label,class:"menu-item"},d(X,{icon:e.icon,tooltip:ge(a,e.label),tooltipLoc:"se",onClick:()=>e.onSelect()}),d("span",null,null!=(t=e.description)?t:ge(a,e.label)))})),d("div",{class:"menu-item"},d(X,{icon:"clippy",tooltip:ge(a,"copy_context"),tooltipLoc:"se",onClick:()=>navigator.clipboard.writeText(f)}),d("span",null,f)))),y),b&&d("div",{class:"node-body"},b))}),((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 _n(e){return!!(null==e?void 0:e.enum)}function wn(e){var t,n=0;for(t=0;te.path.startsWith(t))):t.model.errors.get(t,!0);if(0===a.length)return null;const r=ge(e,a[0].error,...null!=(o=a[0].params)?o:[]);return kn("node-error","issue_opened",r)}function xn({lang:e,path:t}){const n=t.contextPush("help").getContext().join("."),o=ge(e,n);return o===n?null:kn("node-help","info",o)}const kn=(e,t,n)=>{const[o,a]=te();return d("div",{class:`node-icon ${e}${o?" show":""}`,onClick:a},ae[t],d("span",{class:"icon-popup"},n))};function Cn(e,t){var n,o;return"decorated"!==(null==(n=null==e?void 0:e.type)?void 0:n.replace(/^minecraft:/,""))?e:_e(null==e?void 0:e.config)?(t.push({id:t.length,node:e.config.decorator}),Cn(null!=(o=e.config.feature)?o:"",t)):e}function An(e,t){return 0===t.length?e:{type:"minecraft:decorated",config:{decorator:t.shift().node,feature:An(e,t)}}}function Mn({lang:e,model:t,blockStates:n,onError:o}){if(!t||!n||"none"===e)return d(P,null);const[a]=B((e=>{o(`Error rendering the tree: ${e.message}`),console.error(e)}));if(a)return d(P,null);const[,r]=m(0);return ne(t,(()=>{r((e=>e+1))})),d("div",{class:"tree"},d(dn,s({},{model:t,lang:e,blockStates:n})))}const zn={system:"device_desktop",dark:"moon",light:"sun"};function jn({lang:e,title:t,version:n,theme:o,changeTheme:a,language:r,changeLanguage:i}){const s=ge.bind(null,e),l=Ae(H());return d("header",null,d("div",{class:"title"},d(R,{class:"home-link",href:"/","aria-label":s("home")},Vn.home),d("h1",null,t),l&&d(oe,{icon:"chevron_down",tooltip:s("switch_generator")},q.generators.filter((e=>e.category===(null==l?void 0:l.category)&&Ge(n,e.minVersion))).map((e=>d(X,{label:s(e.id),active:e.id===l.id,onClick:()=>F(Ce(e.url))}))))),d("nav",null,d("ul",null,d("li",null,d(oe,{icon:"globe",tooltip:s("language")},q.languages.map((({code:e,name:t})=>d(X,{label:t,active:e===r,onClick:()=>i(e)}))))),d("li",null,d(oe,{icon:zn[o],tooltip:s("theme")},Object.entries(zn).map((([e,t])=>d(X,{icon:t,label:s(`theme.${e}`),active:e===o,onClick:()=>a(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":s("github")},ae.mark_github)))))}const Vn={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 $n({lang:e,assets:t,sounds:n,sound:o,delay:a,pitch:r,volume:i,onEdit:s,onDelete:l,delayedPlay:h}){const p=ge.bind(null,e),[f,g]=m(!0),[v,_]=m(!1),[w,y]=m(!1),b=u([]),x=`playsound minecraft:${o} master @s ~ ~ ~ ${i} ${r}`;c((()=>{var e,a,s;const l=n[o];y(0===(null!=(a=null==(e=null==l?void 0:l.sounds)?void 0:e.length)?a:0)),b.current.forEach((e=>e.stop())),b.current=(null!=(s=null==l?void 0:l.sounds)?s:[]).map((e=>{const n="string"==typeof e?e:e.name,o=nt(t[`minecraft/sounds/${n}.ogg`].hash),a=new W.Howl({src:[o],format:["ogg"],volume:i,rate:r});a.on("end",(()=>{_(!1)}));const s=()=>{f&&b.current.every((e=>"loaded"===e.state()))&&g(!1)};return"loaded"===a.state()?setTimeout((()=>s())):a.on("load",(()=>{s()})),a})),g(!0)}),[o,n]),c((()=>{b.current.forEach((e=>e.rate(r)))}),[r]),c((()=>{b.current.forEach((e=>e.volume(i)))}),[i]);const k=()=>{if(f||w)return;C();const e=Math.floor(Math.random()*b.current.length);b.current[e].play(),_(!0)},C=()=>{b.current.forEach((e=>e.stop()))};c((()=>{h&&setTimeout((()=>k()),50*a)}),[h]),c((()=>()=>C()),[]);const[A,M]=m(!1),z=u(void 0);return d("div",{class:`sound-config${f?" loading":v?" playing":""}${w?" invalid":""}`},d(X,{class:"play",icon:w?"alert":f?"sync":"play",label:p("sounds.play"),onClick:k,tooltip:p(w?"sounds.unknown_sound":f?"sounds.loading_sound":"sounds.play_sound"),tooltipLoc:"se"}),d(se,{class:"btn btn-input sound",list:"sound-list",spellcheck:!1,value:o,onChange:e=>s({sound:e})}),d("label",{class:"delay-label"},p("sounds.delay"),": "),d(le,{class:"btn btn-input delay",min:0,value:a,onChange:e=>s({delay:e})}),d("label",{class:"pitch-label"},p("sounds.pitch"),": "),d(ce,{class:"pitch tooltipped tip-s",min:.5,max:2,step:.01,"aria-label":r.toFixed(2),style:`--x: ${100/1.5*(r-.5)}%`,value:r,onChange:e=>s({pitch:e})}),d("label",{class:"volume-label"},p("sounds.volume"),": "),d(ce,{class:"volume tooltipped tip-s",min:0,max:1,step:.01,"aria-label":i.toFixed(2),style:`--x: ${100*i}%`,value:i,onChange:e=>s({volume:e})}),d(X,{class:"copy"+(A?" active":""),icon:A?"check":"terminal",label:p("copy"),tooltip:p(A?"copied":"sounds.copy_command"),onClick:()=>{navigator.clipboard.writeText(x),M(!0),void 0!==z.current&&clearTimeout(z.current),z.current=setTimeout((()=>{M(!1)}),2e3)}}),d(X,{class:"remove",icon:"trashcan",tooltip:p("sounds.remove_sound"),onClick:()=>{l(),C()}}))}function En({title:e,desc:t,link:n,icon:o,children:a}){const r=d(P,null,d("div",{class:"tool-head"},o&&Vn[o],d("div",null,d("h3",null,e),d("p",null,t))),a&&d("div",{class:"tool-body"},a));return n?d("a",{class:"tool-card",href:n},r):d("div",{class:"tool-card"},r)}function In({category:e,lang:t,changeTitle:n}){const o=ge.bind(null,t);return n(o("title.generator_category",o(e))),d("main",null,d("div",{class:"category"},q.generators.filter((t=>t.category===e)).map((e=>d(En,{title:o(e.id),link:Ce(e.url)})))))}function On({lang:e,changeTitle:t}){const n=ge.bind(null,e),[o,a]=m(null);t(n("title.changelog"));const[r,i]=m([]);c((()=>{De().then((e=>i(e))).catch((e=>{console.error(e),a(e)}))}),[]);const[s,l]=m(""),[u,h]=m([]),p=e=>{u.includes(e)?h(u.filter((t=>t!==e))):h([...u,e])},f=J((()=>{const e=s.split(" ").map((e=>e.trim().toLowerCase())).filter((e=>e.length>0));return 0===e.length&&0===u.length?r:r.filter((t=>{if(!u.every((e=>t.tags.includes(e))))return!1;const n=t.tags.join(" ")+" "+t.content.toLowerCase();return e.every((e=>n.includes(e)))}))}),[r,s,u]),[g,v]=m(!1),_=J((()=>f.sort(((e,t)=>g?t.order-e.order:e.order-t.order))),[f,g]);return d("main",null,d(K,{type:"text",id:"changelog"}),o&&d(re,{error:o,onDismiss:()=>a(null)}),d("div",{class:"changelog-controls"},d("div",{class:"changelog-query"},d(se,{class:"btn btn-input changelog-search",list:"sound-list",placeholder:n("changelog.search"),value:s,onChange:l}),d(X,{icon:g?"sort_desc":"sort_asc",label:g?"Newest first":"Oldest first",onClick:()=>v(!g)})),u.length>0&&d("div",{class:"changelog-tags"},u.map((e=>d(Sn,{label:e,onClick:()=>h(u.filter((t=>t!==e)))}))))),d("div",{class:"changelog"},_.map((e=>d(Ln,{change:e,activeTags:u,toggleTag:p})))))}function Ln({change:e,activeTags:t,toggleTag:n}){return d("div",{class:"changelog-entry"},d("div",{class:"changelog-version"},d(Pn,s({},e.version)),d(Pn,s({},e.group))),d("div",{class:"changelog-tags"},e.tags.map((e=>d(Sn,{label:e,onClick:()=>n(e),active:t.includes(e)})))),d("div",{class:"changelog-content",dangerouslySetInnerHTML:{__html:G(e.content)}}))}function Pn({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 Sn({label:e,active:t,onClick:n}){const o="breaking"===e?5:ke(e)%360;return d("div",{class:`changelog-tag${t?" active":""}${n?" clickable":""}`,style:`--tint: ${o}`,onClick:n},"breaking"===e&&ae.alert,e)}function Dn({lang:e,changeTitle:t,version:n,changeVersion:o}){var a;const r=ge.bind(null,e),[i,h]=m(null),[f,g]=B();if(f)return d("main",null,d(re,{error:`Something went wrong rendering the generator: ${f.message}`,onDismiss:g}));const v=Ae(H());if(!v)return d("main",null,d(re,{error:`Cannot find generator "${H()}"`}));const _=q.versions.filter((e=>Ge(e.id,v.minVersion,v.maxVersion))).map((e=>e.id));t(r("title.generator",r(v.id)),_),Ge(n,v.minVersion)||h(`The minimum version for this generator is ${v.minVersion}`);const[w,y]=m(null),[b,x]=m(null);c((()=>{h(null),y(null),async function(e){return(await Je(e)).blockStates}(n).then((e=>x(e))),async function(e,t){var n;if(!He[t]||He[t].version!==e){const a=await Je(e);Fe=p.Reference(a.schemas,"configured_decorator"),We=p.ChoiceNode([{type:"string",node:p.StringNode(a.collections,{validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:p.Reference(a.schemas,"configured_feature")}],{choiceContext:"feature"});const r=null==(n=q.generators.find((e=>e.id===t)))?void 0:n.schema;if(!r)throw new Error(`Cannot find model ${t}`);try{const n=a.schemas.get(r),o=new p.DataModel(n,{wrapLists:!0});He[t]?o.reset(He[t].model.data,!1):(o.validate(!0),o.history=[JSON.stringify(o.data)]),He[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 He[t].model}(n,v.id).then((e=>{Z.setGenerator(v.id),y(e)})).catch((e=>{console.error(e),h(Ee(e))}))}),[n,v.id]),ne(w,(()=>{h(null)}));const k=e=>{e.ctrlKey&&"z"===e.key?(Z.generatorEvent("undo","Hotkey"),null==w||w.undo()):e.ctrlKey&&"y"===e.key&&(Z.generatorEvent("redo","Hotkey"),null==w||w.redo())};c((()=>(document.addEventListener("keyup",k),()=>{document.removeEventListener("keyup",k)})),[w]);const[C,A]=m(""),[M,z]=m([]);c((()=>{(async function(e){return(await Je(e)).collections})(n).then((e=>{const t=(null!=C?C:"").trim().split(" "),n=e.get(v.id).map((e=>e.slice(10))).filter((e=>t.every((t=>e.includes(t)))));n&&z(n)})).catch((e=>{console.error(e),h(e.message)}))}),[n,v.id,C]);const[j,V]=m(window.innerWidth>820),[$,E]=m(0),[I,O]=m(0),[L,S]=m(0),[D,T]=m(!1),N=u(void 0),[R,F]=m(!1),W=Gt.includes(v.id);R&&!W&&F(!1);let J=1;W&&(J+=1),j&&(J+=2);return d(P,null,d("main",{class:R?"has-preview":""},d(K,{id:"data-pack-generator",type:"text"}),d("div",{class:"controls"},d(X,{icon:"upload",label:r("import"),onClick:()=>{Z.generatorEvent("import"),V(!0),S(L+1)}}),d(oe,{icon:"archive",label:r("presets"),relative:!1},d(Q,{icon:"search",large:!0,value:C,onChange:A,doSelect:1,placeholder:r("search")}),d("div",{class:"result-list"},M.map((e=>d(X,{label:e,onClick:()=>{return t=e,Z.generatorEvent("load-preset",t),void tt(n,null!=(o=v.path)?o:v.id,t).then((e=>{var t,n;const o=null==w?void 0:w.get(new p.Path(["generator","seed"]));void 0!==(null==(t=null==e?void 0:e.generator)?void 0:t.seed)&&void 0!==o&&(e.generator.seed=o,void 0!==(null==(n=e.generator.biome_source)?void 0:n.seed)&&(e.generator.biome_source.seed=o)),null==w||w.reset(p.DataModel.wrapLists(e),!1)}));var t,o}})))),0===M.length&&d(X,{label:r("no_presets")})),d(oe,{icon:"tag",label:n},_.reverse().map((e=>d(X,{label:e,active:e===n,onClick:()=>o(e)})))),d(oe,{icon:"kebab_horizontal",tooltip:r("more")},d(X,{icon:"history",label:r("reset"),onClick:()=>{Z.generatorEvent("reset"),null==w||w.reset(p.DataModel.wrapLists(w.schema.default()),!0)}}),d(X,{icon:"arrow_left",label:r("undo"),onClick:e=>{e.stopPropagation(),Z.generatorEvent("undo","Menu"),null==w||w.undo()}}),d(X,{icon:"arrow_right",label:r("redo"),onClick:e=>{e.stopPropagation(),Z.generatorEvent("redo","Menu"),null==w||w.redo()}}))),i&&d(re,{error:i,onDismiss:()=>h(null)}),d(Mn,l(s({},{lang:e,model:w,version:n,blockStates:b}),{onError:h}))),d("div",{class:"popup-actions",style:`--offset: -${8+50*J}px;`},d("div",{class:`popup-action action-preview${W?" shown":""} tooltipped tip-nw`,"aria-label":r(R?"hide_preview":"show_preview"),onClick:()=>{Z.generatorEvent("toggle-preview",R?"hidden":"visible"),F(!R)}},R?ae.x_circle:ae.play),d("div",{class:`popup-action action-download${j?" shown":""} tooltipped tip-nw`,"aria-label":r("download"),onClick:()=>{Z.generatorEvent("download"),O(I+1)}},ae.download),d("div",{class:`popup-action action-copy${j?" shown":""}${D?" active":""} tooltipped tip-nw`,"aria-label":r(D?"copied":"copy"),onClick:()=>{Z.generatorEvent("copy"),E($+1)}},D?ae.check:ae.clippy),d("div",{class:"popup-action action-code shown tooltipped tip-nw","aria-label":r(j?"hide_output":"show_output"),onClick:()=>{Z.generatorEvent("toggle-output",j?"hidden":"visible"),V(!j),E(0),O(0),S(0)}},j?ae.chevron_right:ae.code)),d("div",{class:"popup-preview"+(R?" shown":"")},d(Ut,l(s({},{lang:e,model:w,version:n,id:v.id}),{shown:R,onError:h}))),d("div",{class:"popup-source"+(j?" shown":"")},d(Qt,l(s({},{lang:e,model:w,blockStates:b,doCopy:$,doDownload:I,doImport:L}),{name:null!=(a=v.schema)?a:"data",copySuccess:()=>{T(!0),void 0!==N.current&&clearTimeout(N.current),N.current=setTimeout((()=>{T(!1)}),2e3)},onError:h}))))}function Tn({lang:e,changeTitle:t}){const n=ge.bind(null,e);return t(n("title.home")),d("main",null,d("div",{class:"home"},d(En,{title:"Data packs"},q.generators.filter((e=>!e.category)).map((e=>d(En,{title:n(e.id),link:Ce(e.url)}))),d(En,{title:n("worldgen"),link:"/worldgen/"})),d(En,{title:"Resource packs"},q.generators.filter((e=>"assets"===e.category)).map((e=>d(En,{title:n(e.id),link:Ce(e.url)})))),d(En,{title:"Report Inspector",icon:"report",link:"https://misode.github.io/report/",desc:"Analyse your performance reports"}),d(En,{title:"Minecraft Sounds",icon:"sounds",link:"/sounds/",desc:"Browse through and mix all the vanilla sounds"}),d(En,{title:"Data Pack Upgrader",link:"https://misode.github.io/upgrader/",desc:"Convert your 1.16 data packs to 1.17"}),d(En,{title:"Technical Changelog",link:"/changelog/"})))}function Nn({lang:e,changeTitle:t,version:n,changeVersion:o}){const a=ge.bind(null,e),[r,i]=m(null);t(a("title.sounds"));const[h,p]=m({}),[f,g]=m({}),v=Object.keys(null!=f?f:{});c((()=>{ct(n).then((e=>(p(e),dt(n)))).then((e=>{e&&g(e)})).catch((e=>{console.error(e),i(Ee(e))}))}),[n]);const[_,w]=m(""),[y,b]=m([]),x=()=>{b([{id:ye(),sound:_,delay:0,pitch:1,volume:1},...y])},k=e=>()=>{b(y.filter((t=>t.id!==e)))},[C,A]=m(0),M=u(null);return d("main",null,d(K,{type:"text",id:"sounds"}),r&&d(re,{error:r,onDismiss:()=>i(null)}),v.length>0&&d(P,null,d("div",{class:"controls sounds-controls"},d("div",{class:"sound-search-group"},d(se,{class:"btn btn-input sound-search",list:"sound-list",placeholder:a("sounds.search"),value:_,onChange:w,onEnter:x}),d(X,{icon:"plus",tooltip:a("sounds.add_sound"),class:"add-sound",onClick:x})),y.length>1&&d(X,{icon:"play",label:a("sounds.play_all"),class:"play-all-sounds",onClick:()=>{A(C+1)}}),d("div",{class:"spacer"}),d(X,{icon:"download",label:a("download"),tooltip:a("sounds.download_function"),class:"download-sounds",onClick:()=>{const e=y.some((e=>e.delay>0)),t=y.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");M.current.setAttribute("href","data:text/plain;charset=utf-8,"+t+"%0A"),M.current.setAttribute("download","sounds.mcfunction"),M.current.click()}}),d(oe,{icon:"tag",label:n},q.versions.reverse().map((e=>d(X,{label:e.id,active:e.id===n,onClick:()=>o(e.id)}))))),d("div",{class:"sounds"},y.map((t=>{return d($n,l(s(s({key:t.id},t),{lang:e,assets:h,sounds:f,delayedPlay:C}),{onEdit:(n=t.id,e=>{b(y.map((t=>t.id===n?s(s({},t),e):t)))}),onDelete:k(t.id)}));var n}))),d("a",{ref:M,style:"display: none;"})),d("datalist",{id:"sound-list"},v.map((e=>d("option",{key:e,value:e})))))}function Bn(){const[e,t]=m("none");c((()=>{(async()=>{const e=Zt.getLanguage();await Promise.all([ve("en"),..."en"!==e?[ve(e)]:[]]),t(e)})()}),[]);const[n,o]=m(Zt.getTheme());c((()=>{document.documentElement.setAttribute("data-theme",n)}),[n]);const[a,r]=m(Zt.getVersion()),i=e=>{Z.setVersion(e),Zt.setVersion(e),r(e)},[l,u]=m(ge(e,"title.home")),h=(e,t)=>{null!=t||(t=q.versions.map((e=>e.id))),t.splice(0,t.length-3),document.title=`${e} Minecraft ${t.join(", ")}`,u(e)};return d(P,null,d(jn,s({},{lang:e,title:l,version:a,theme:n,language:e,changeLanguage:async e=>{fe[e]||await ve(e),Z.setLanguage(e),Zt.setLanguage(e),t(e)},changeTheme:e=>{Z.setTheme(e),Zt.setTheme(e),o(e)}})),d(Y,{onChange:e=>{setTimeout((()=>Z.pageview(Ce(e.url))))}},d(Tn,s({path:"/"},{lang:e,changeTitle:h})),d(In,s({path:"/worldgen",category:"worldgen"},{lang:e,changeTitle:h})),d(In,s({path:"/assets",category:"assets"},{lang:e,changeTitle:h})),d(Nn,s({path:"/sounds"},{lang:e,version:a,changeTitle:h,changeVersion:i})),d(On,s({path:"/changelog"},{lang:e,changeTitle:h})),d(Dn,s({default:!0},{lang:e,version:a,changeTitle:h,changeVersion:i}))))}U(d(Bn,null),document.body); +//# sourceMappingURL=index.fcc7d815.js.map diff --git a/assets/index.fcc7d815.js.map b/assets/index.fcc7d815.js.map new file mode 100644 index 00000000..a6d8a80c --- /dev/null +++ b/assets/index.fcc7d815.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.fcc7d815.js","sources":["../../src/app/Analytics.ts","../../src/app/components/Ad.tsx","../../src/app/components/Btn.tsx","../../src/app/components/BtnInput.tsx","../../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","../../vite/preload-helper","../../src/app/Locales.ts","../../src/app/Utils.ts","../../src/app/services/Changelogs.ts","../../src/app/services/Schemas.ts","../../src/app/services/DataFetcher.ts","../../src/app/services/Manifest.ts","../../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/Store.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/pages/Category.tsx","../../src/app/pages/Changelog.tsx","../../src/app/pages/Generator.tsx","../../src/app/pages/Home.tsx","../../src/app/pages/Sounds.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 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\ntype BtnMenuProps = {\n\ticon?: keyof typeof Octicon,\n\tlabel?: string,\n\trelative?: boolean,\n\ttooltip?: string,\n\tchildren: ComponentChildren,\n}\nexport function BtnMenu({ icon, label, relative, tooltip, children }: BtnMenuProps) {\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\tdownload: ,\n\tduplicate: ,\n\teye: ,\n\teye_closed: ,\n\tgear: ,\n\tglobe: ,\n\thistory: ,\n\tinfo: ,\n\tissue_opened: ,\n\tkebab_horizontal: ,\n\tlink: ,\n\tmark_github: ,\n\tmoon: ,\n\tplay: ,\n\tplus: ,\n\tplus_circle: ,\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","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 config from '../config.json'\nimport English from '../locales/en.json'\n\nexport type Localize = (key: string, ...params: string[]) => string\n\ninterface Locale {\n\t[key: string]: string\n}\n\nexport const Locales: {\n\t[key: string]: Locale,\n} = {\n\tfallback: English,\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\nexport function locale(language: string, key: string, ...params: string[]): string {\n\tconst value: string | undefined = Locales[language]?.[key]\n\t\t?? Locales.en?.[key] ?? Locales.fallback[key] ?? key\n\treturn resolveLocaleParams(value, params)\n}\n\nexport async function loadLocale(language: string) {\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","import type { DataModel } from '@mcschema/core'\nimport { Path } from '@mcschema/core'\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 getGenerator(url: string) {\n\tconst trimmedUrl = url.replace(/^\\//, '').replace(/\\/$/, '').replace(/\\?.*/, '')\n\treturn config.generators.find(g => g.url === trimmedUrl)\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()\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, 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> = {}\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}\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","import type { CollectionRegistry } from '@mcschema/core'\nimport config from '../../config.json'\nimport { message } from '../Utils'\nimport type { VersionAssets, VersionManifest } from './Manifest'\nimport type { BlockStateRegistry, VersionId } from './Schemas'\nimport { checkVersion } from './Schemas'\n\n['1.15', '1.16', '1.17'].forEach(v => localStorage.removeItem(`cache_${v}`))\n\nconst CACHE_NAME = 'misode-v1'\n\ntype VersionRef = 'mcdata_master' | 'mcassets' | 'vanilla_datapack_summary' | 'vanilla_datapack_data'\n\ntype Version = {\n\tid: string,\n\trefs: Partial<{ [key in VersionRef]: string }>,\n\tdynamic?: boolean,\n}\n\ndeclare var __MCDATA_MASTER_HASH__: string\ndeclare var __VANILLA_DATAPACK_SUMMARY_HASH__: string\n\nconst mcdataUrl = 'https://raw.githubusercontent.com/Arcensoth/mcdata'\nconst mcassetsUrl = 'https://raw.githubusercontent.com/InventivetalentDev/minecraft-assets'\nconst vanillaDatapackUrl = 'https://raw.githubusercontent.com/SPGoding/vanilla-datapack'\nconst manifestUrl = 'https://launchermeta.mojang.com/mc/game/version_manifest.json'\nconst resourceUrl = 'https://resources.download.minecraft.net/'\nconst corsUrl = 'https://misode-cors-anywhere.herokuapp.com/'\n\nconst refs: {\n\tid: VersionRef,\n\thash: string,\n\turl: string,\n}[] = [\n\t{\n\t\tid: 'mcdata_master',\n\t\thash: __MCDATA_MASTER_HASH__,\n\t\turl: mcdataUrl,\n\t},\n\t{\n\t\tid: 'vanilla_datapack_summary',\n\t\thash: __VANILLA_DATAPACK_SUMMARY_HASH__,\n\t\turl: vanillaDatapackUrl,\n\t},\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\tconsole.debug(`[fetchData] ${JSON.stringify(version)}`)\n\n\tif (version.dynamic) {\n\t\tawait Promise.all(refs\n\t\t\t.filter(r => localStorage.getItem(`cached_${r.id}`) !== r.hash)\n\t\t\t.map(async r => {\n\t\t\t\tconsole.debug(`[deleteMatching] ${r.id} '${localStorage.getItem(`cached_${r.id}`)}' < '${r.hash}' ${r.url}/${version.refs[r.id]}`)\n\t\t\t\tawait deleteMatching(url => url.startsWith(`${r.url}/${version.refs[r.id]}`))\n\t\t\t\tconsole.debug(`[deleteMatching] Done! ${r.id} ${r.hash} '${localStorage.getItem(`cached_${r.id}`)}'`)\n\t\t\t\tlocalStorage.setItem(`cached_${r.id}`, r.hash)\n\t\t\t\tconsole.debug(`[deleteMatching] Set! ${r.id} ${r.hash} '${localStorage.getItem(`cached_${r.id}`)}'`)\n\t\t\t}))\n\t}\n\n\tawait Promise.all([\n\t\tfetchRegistries(version, collectionTarget),\n\t\tfetchBlockStateMap(version, blockStateTarget),\n\t\tfetchDynamicRegistries(version, collectionTarget),\n\t\tfetchAssetsRegistries(version, collectionTarget),\n\t])\n}\n\nasync function fetchRegistries(version: Version, target: CollectionRegistry) {\n\tconsole.debug(`[fetchRegistries] ${version.id}`)\n\tconst registries = config.registries\n\t\t.filter(r => !r.dynamic && !r.asset)\n\t\t.filter(r => checkVersion(version.id, r.minVersion, r.maxVersion))\n\n\tif (checkVersion(version.id, undefined, '1.15')) {\n\t\tconst url = `${mcdataUrl}/${version.refs.mcdata_master}/generated/reports/registries.json`\n\t\ttry {\n\t\t\tconst data = await getData(url, (data) => {\n\t\t\t\tconst res: {[id: string]: string[]} = {}\n\t\t\t\tObject.keys(data).forEach(k => {\n\t\t\t\t\tres[k.slice(10)] = Object.keys(data[k].entries)\n\t\t\t\t})\n\t\t\t\treturn res\n\t\t\t})\n\t\t\tregistries.forEach(r => {\n\t\t\t\ttarget.register(r.id, data[r.id] ?? [])\n\t\t\t})\n\t\t} catch (e) {\n\t\t\tconsole.warn('Error occurred while fetching registries:', message(e))\n\t\t}\n\t} else {\n\t\tawait Promise.all(registries.map(async r => {\n\t\t\ttry {\n\t\t\t\tconst url = r.path\n\t\t\t\t\t? `${mcdataUrl}/${version.refs.mcdata_master}/${r.path}/data.min.json`\n\t\t\t\t\t: `${mcdataUrl}/${version.refs.mcdata_master}/processed/reports/registries/${r.id}/data.min.json`\n\t\t\t\ttarget.register(r.id, await getData(url, v => v.values))\n\t\t\t} catch (e) {\n\t\t\t\tconsole.warn(`Error occurred while fetching registry ${r.id}:`, message(e))\n\t\t\t}\n\t\t}))\n\t}\n}\n\nasync function fetchBlockStateMap(version: Version, target: BlockStateRegistry) {\n\tconsole.debug(`[fetchBlockStateMap] ${version.id}`)\n\tif (checkVersion(version.id, undefined, '1.16')) {\n\t\tconst url = (checkVersion(version.id, undefined, '1.15'))\n\t\t\t? `${mcdataUrl}/${version.refs.mcdata_master}/generated/reports/blocks.json`\n\t\t\t: `${mcdataUrl}/${version.refs.mcdata_master}/processed/reports/blocks/data.min.json`\n\n\t\ttry {\n\t\t\tconst data = await getData(url, (data) => {\n\t\t\t\tconst res: BlockStateRegistry = {}\n\t\t\t\tObject.keys(data).forEach(b => {\n\t\t\t\t\tres[b] = {\n\t\t\t\t\t\tproperties: data[b].properties,\n\t\t\t\t\t\tdefault: data[b].states.find((s: any) => s.default).properties,\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\treturn res\n\t\t\t})\n\t\t\tObject.assign(target, data)\n\t\t} catch (e) {\n\t\t\tconsole.warn('Error occurred while fetching block state map:', message(e))\n\t\t}\n\t} else {\n\t\tconst url = `${mcdataUrl}/${version.refs.mcdata_master}/processed/reports/blocks/simplified/data.min.json`\n\t\ttry {\n\t\t\tconst data = await getData(url)\n\t\t\tObject.assign(target, data)\n\t\t} catch (e) {\n\t\t\tconsole.warn('Error occurred while fetching block state map:', message(e))\n\t\t}\n\t}\n}\n\nasync function fetchDynamicRegistries(version: Version, target: CollectionRegistry) {\n\tconsole.debug(`[fetchDynamicRegistries] ${version.id}`)\n\tconst registries = config.registries\n\t\t.filter(r => r.dynamic && !r.asset)\n\t\t.filter(r => checkVersion(version.id, r.minVersion, r.maxVersion))\n\n\tif (checkVersion(version.id, '1.16')) {\n\t\tconst url = `${vanillaDatapackUrl}/${version.refs.vanilla_datapack_summary}/summary/flattened.min.json`\n\t\ttry {\n\t\t\tconst data = await getData(url)\n\t\t\tregistries.forEach(r => {\n\t\t\t\ttarget.register(r.id, data[r.id])\n\t\t\t})\n\t\t} catch (e) {\n\t\t\tconsole.warn('Error occurred while fetching dynamic registries:', message(e))\n\t\t}\n\t}\n\tif (checkVersion(version.id, '1.18')) {\n\t\ttarget.register('worldgen/noise', Noises)\n\t}\n}\n\nexport async function fetchAssetsRegistries(version: Version, target: CollectionRegistry) {\n\tconsole.debug(`[fetchAssetsRegistries] ${version.id}`)\n\tconst registries = config.registries\n\t\t.filter(r => r.asset)\n\t\t.filter(r => checkVersion(version.id, r.minVersion, r.maxVersion))\n\n\tawait Promise.all(registries.map(async r => {\n\t\ttry {\n\t\t\tconst fetchFolder = async (path: string): Promise => {\n\t\t\t\tconst url = `${mcassetsUrl}/${version.refs.mcassets}/assets/minecraft/${path}/_list.json`\n\t\t\t\tconst data = await getData(url)\n\t\t\t\tif (data.directories.length === 0) {\n\t\t\t\t\treturn data.files\n\t\t\t\t}\n\t\t\t\tconst directories = await Promise.all(data.directories.map(async (d: string) => {\n\t\t\t\t\tconst files = await fetchFolder(`${path}/${d}`)\n\t\t\t\t\treturn files.map(v => `${d}/${v}`)\n\t\t\t\t}))\n\t\t\t\treturn [...data.files, ...directories.flat()]\n\t\t\t}\n\t\t\tconst ids = (await fetchFolder(r.path ?? r.id))\t\n\t\t\t\t.filter((v: string) => v.endsWith('.json') || v.endsWith('.png'))\n\t\t\t\t.map(v => `minecraft:${v.replace(/\\.(json|png)$/, '')}`)\n\t\t\ttarget.register(r.id, ids)\n\t\t} catch (e) {\n\t\t\tconsole.warn(`Error occurred while fetching assets registry ${r.id}:`, message(e))\n\t\t}\n\t}))\n}\n\nexport async function fetchPreset(version: VersionId, registry: string, id: string) {\n\tconsole.debug(`[fetchPreset] ${registry} ${id}`)\n\tconst versionData = config.versions.find(v => v.id === version)!\n\ttry {\n\t\tconst url = ['blockstates', 'models'].includes(registry)\n\t\t\t?\t`${mcassetsUrl}/${versionData.refs.mcassets}/assets/minecraft/${registry}/${id}.json`\n\t\t\t: `${vanillaDatapackUrl}/${versionData.refs.vanilla_datapack_data}/data/minecraft/${registry}/${id}.json`\n\t\tconst res = await fetch(url)\n\t\tif (registry === 'worldgen/noise_settings' && version === '1.18') {\n\t\t\tlet text = await res.text()\n\t\t\ttext = text.replaceAll('\"max_threshold\": Infinity', '\"max_threshold\": 100')\n\t\t\tconst data = JSON.parse(text)\n\t\t\tif (id !== 'overworld' && id !== 'large_biomes') {\n\t\t\t\tdata.noise.terrain_shaper = { offset: 0, factor: 0, jaggedness: 0 }\n\t\t\t}\n\t\t\treturn data\n\t\t}\n\t\treturn await res.json()\n\t} catch (e) {\n\t\tconsole.warn(`Error occurred while fetching ${registry} preset ${id}:`, message(e))\n\t}\n}\n\nexport async function fetchManifest() {\n\ttry {\n\t\tconst res = await fetch(manifestUrl)\n\t\treturn await res.json()\n\t} catch (e) {\n\t\tthrow new Error(`Error occurred while fetching version manifest: ${message(e)}`)\n\t}\n}\n\nexport async function fetchAssets(versionId: VersionId, manifest: VersionManifest) {\n\tconst version = config.versions.find(v => v.id === versionId)\n\tconst id = version?.latest ?? manifest.latest.snapshot\n\ttry {\n\t\tconst versionMeta = await getData(manifest.versions.find(v => v.id === id)!.url)\n\t\n\t\treturn (await getData(versionMeta.assetIndex.url)).objects\n\t} catch (e) {\n\t\tthrow new Error(`Error occurred while fetching assets for ${version}: ${message(e)}`)\n\t}\n}\n\nexport async function fetchSounds(version: VersionId, assets: VersionAssets) {\n\ttry {\n\t\tconst hash = assets['minecraft/sounds.json'].hash\n\t\treturn await getData(getResourceUrl(hash))\n\t} catch (e) {\n\t\tthrow new Error(`Error occurred while fetching sounds for ${version}: ${message(e)}`)\n\t}\n}\n\nexport function getResourceUrl(hash: string) {\n\treturn `${corsUrl}${resourceUrl}${hash.slice(0, 2)}/${hash}`\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\nconst Noises = [\n\t'minecraft:aquifer_barrier',\n\t'minecraft:aquifer_fluid_level_floodedness',\n\t'minecraft:aquifer_fluid_level_spread',\n\t'minecraft:aquifer_lava',\n\t'minecraft:calcite',\n\t'minecraft:cave_cheese',\n\t'minecraft:cave_entrance',\n\t'minecraft:cave_layer',\n\t'minecraft:clay_bands_offset',\n\t'minecraft:continentalness',\n\t'minecraft:erosion',\n\t'minecraft:gravel',\n\t'minecraft:gravel_layer',\n\t'minecraft:ice',\n\t'minecraft:iceberg_and_badlands_pillar',\n\t'minecraft:iceberg_and_badlands_pillar_roof',\n\t'minecraft:jagged',\n\t'minecraft:nether_state_selector',\n\t'minecraft:nether_wart',\n\t'minecraft:netherrack',\n\t'minecraft:noodle',\n\t'minecraft:noodle_ridge_a',\n\t'minecraft:noodle_ridge_b',\n\t'minecraft:noodle_thickness',\n\t'minecraft:offset',\n\t'minecraft:ore_gap',\n\t'minecraft:ore_vein_a',\n\t'minecraft:ore_vein_b',\n\t'minecraft:ore_veininess',\n\t'minecraft:packed_ice',\n\t'minecraft:patch',\n\t'minecraft:pillar',\n\t'minecraft:pillar_rareness',\n\t'minecraft:pillar_thickness',\n\t'minecraft:powder_snow_surface',\n\t'minecraft:powder_snow_under',\n\t'minecraft:ridge',\n\t'minecraft:soul_sand_layer',\n\t'minecraft:spaghetti_2d',\n\t'minecraft:spaghetti_2d_elevation',\n\t'minecraft:spaghetti_2d_modulator',\n\t'minecraft:spaghetti_2d_thickness',\n\t'minecraft:spaghetti_3d_1',\n\t'minecraft:spaghetti_3d_2',\n\t'minecraft:spaghetti_3d_rarity',\n\t'minecraft:spaghetti_3d_thickness',\n\t'minecraft:spaghetti_roughness',\n\t'minecraft:spaghetti_roughness_modulator',\n\t'minecraft:surface',\n\t'minecraft:surface_swamp',\n\t'minecraft:temperature',\n\t'minecraft:vegetation',\n]\n","import { fetchAssets, fetchManifest, fetchSounds } from './DataFetcher'\nimport type { VersionId } from './Schemas'\n\nexport type VersionManifest = {\n\tlatest: {\n\t\trelease: string,\n\t\tsnapshot: string,\n\t},\n\tversions: {\n\t\tid: string,\n\t\ttype: string,\n\t\turl: string,\n\t}[],\n}\nlet Manifest: VersionManifest | Promise | null = null\n\nexport type VersionAssets = {\n\t[key: string]: {\n\t\thash: string,\n\t},\n}\nconst VersionAssets: Record> = {}\n\nexport type SoundEvents = {\n\t[key: string]: {\n\t\tsounds: (string | { name: string })[],\n\t},\n}\nconst SoundEvents: Record> = {}\n\nexport async function getManifest() {\n\tif (!Manifest) {\n\t\tManifest = fetchManifest()\n\t}\n\treturn Manifest\n}\n\nexport async function getAssets(version: VersionId) {\n\tif (!VersionAssets[version]) {\n\t\tVersionAssets[version] = (async () => {\n\t\t\tconst manifest = await getManifest()\n\t\t\treturn await fetchAssets(version, manifest)\n\t\t})()\n\t}\n\treturn VersionAssets[version]\n}\n\nexport async function getSounds(version: VersionId) {\n\tif (!SoundEvents[version]) {\n\t\tSoundEvents[version] = (async () => {\n\t\t\tconst assets = await getAssets(version)\n\t\t\treturn await fetchSounds(version, assets)\n\t\t})()\n\t}\n\treturn SoundEvents[version]\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\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,\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, 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 {\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 {\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()\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 = {\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 { clamp, 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\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\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\tgetPlacements([x * 16, 0, z * 16], DataModel.unwrapLists(state), ctx)\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 Math.max(value.value.min_inclusive, Math.min(value.value.max_inclusive, sampleInt(value.value.source, ctx)))\n\t\t}\n\t\treturn 1\n\t}\n}\n\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","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 = {\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, 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 { useCanvas } from '../../hooks'\nimport { locale } from '../../Locales'\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, lang, version }: PreviewProps) => {\n\tconst [scale, setScale] = useState(2)\n\tconst [focused, setFocused] = useState(undefined)\n\tconst [layers, setLayers] = useState(new Set(['biomes']))\n\tconst offset = useRef<[number, number]>([0, 0])\n\tconst res = useRef(1)\n\tconst refineTimeout = useRef(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
\n\t\t\t{focused && }\n\t\t\t{type === 'multi_noise' &&\n\t\t\t\t\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 {\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}\n\t\t\t{(type === 'multi_noise' || type === 'checkerboard') && <>\n\t\t\t\t changeScale(scale * 1.5)} />\n\t\t\t\t changeScale(scale / 1.5)} />\n\t\t\t}\n\t\t\t{type === 'multi_noise' &&\n\t\t\t\t newSeed(model)} />}\n\t\t
\n\t\t\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.noise.densityFactor === 0 && settings.noise.densityOffset === -0.030078125\n\t\t\t? '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 { useCanvas } from '../../hooks'\nimport { locale } from '../../Locales'\nimport { decorator } from '../../previews'\nimport { randomSeed } from '../../Utils'\n\nexport const DecoratorPreview = ({ data, version, shown, lang }: PreviewProps) => {\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
\n\t\t\t setScale(Math.min(16, scale + 1))} />\n\t\t\t setScale(Math.max(1, scale - 1))} />\n\t\t\t setSeed(randomSeed())} />\n\t\t
\n\t\t\n\t\n}\n","import { useEffect, useRef, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn } from '..'\nimport { useCanvas } from '../../hooks'\nimport { locale } from '../../Locales'\nimport { normalNoise } from '../../previews'\nimport { randomSeed } from '../../Utils'\n\nexport const NoisePreview = ({ lang, data, shown, version }: PreviewProps) => {\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
\n\t\t\t changeScale(scale * 1.5)} />\n\t\t\t changeScale(scale / 1.5)} />\n\t\t\t setSeed(randomSeed())} />\n\t\t
\n\t\t\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 { useCanvas } from '../../hooks'\nimport { locale } from '../../Locales'\nimport { noiseSettings } from '../../previews'\nimport { checkVersion } from '../../services'\nimport { randomSeed } from '../../Utils'\n\nexport const NoiseSettingsPreview = ({ lang, data, shown, version }: PreviewProps) => {\n\tconst loc = locale.bind(null, lang)\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(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
\n\t\t\t{focused && }\n\t\t\t{checkVersion(version, undefined, '1.17') &&\n\t\t\t\t\n\t\t\t\t\t setBiomeScale(Number(v))} />\n\t\t\t\t\t setBiomeDepth(Number(v))} />\n\t\t\t\t\n\t\t\t}\n\t\t\t setSeed(randomSeed())} />\n\t\t
\n\t\t\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 { BiomeSourcePreview, DecoratorPreview, NoisePreview, NoiseSettingsPreview } from '../previews'\n\nexport const HasPreview = ['dimension', 'worldgen/noise', 'worldgen/noise_settings', 'worldgen/configured_feature']\n\ntype PreviewPanelProps = {\n\tlang: string,\n\tmodel: DataModel | null,\n\tversion: VersionId,\n\tid: string,\n\tshown: boolean,\n\tonError: (message: string) => unknown,\n}\nexport function PreviewPanel({ lang, 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 (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 \n\t}\n\n\tif (id === 'worldgen/noise' && model) {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return \n\t}\n\n\tif (id === 'worldgen/noise_settings' && model) {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return \n\t}\n\n\tif (id === 'worldgen/configured_feature' && model) {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return \n\t}\n\n\treturn <>\n}\n","import type { Hook } from '@mcschema/core'\nimport { relativePath } from '@mcschema/core'\nimport type { BlockStateRegistry } from '../services'\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 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\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.17'\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 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","import { DataModel, ModelPath } 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 { useModel } from '../../hooks'\nimport { locale } from '../../Locales'\nimport { transformOutput } 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 = {\n\t'2_spaces': 2,\n\t'4_spaces': 4,\n\ttabs: '\\t',\n\tminified: undefined,\n}\n\nconst FORMATS: Record 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\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\tlang: string,\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({ lang, name, model, blockStates, doCopy, doDownload, doImport, copySuccess, onError }: SourcePanelProps) {\n\tconst loc = locale.bind(null, lang)\n\tconst [indent, setIndent] = useState(Store.getIndent())\n\tconst [format, setFormat] = useState(Store.getFormat())\n\tconst source = useRef(null)\n\tconst download = useRef(null)\n\tconst retransform = useRef()\n\n\tconst getOutput = useCallback((model: DataModel, blockStates: BlockStateRegistry) => {\n\t\tconst data = model.schema.hook(transformOutput, new ModelPath(model), model.data, { blockStates })\n\t\treturn FORMATS[format].stringify(data, INDENT[indent]) + '\\n'\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 = getOutput(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(getOutput(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(getOutput(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
\n\t\t\t\n\t\t\t\t{Object.entries(INDENT).map(([key]) =>\n\t\t\t\t\t changeIndent(key)}/>\n\t\t\t\t)}\n\t\t\t\t
\n\t\t\t\t{Object.keys(FORMATS).map(key =>\n\t\t\t\t\t changeFormat(key)} />)}\n\t\t\t
\n\t\t
\n\t\t\n\t\t\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,\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 { Btn, Octicon } from '../components'\nimport { useFocus } from '../hooks'\nimport { locale } from '../Locales'\nimport type { BlockStateRegistry } 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\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, BlockStateRegistry, Record], JSXTriple>\n\ntype NodeProps = T & {\n\tnode: INode,\n\tpath: ModelPath,\n\tvalue: any,\n\tlang: string,\n\tstates: BlockStateRegistry,\n\tctx: Record,\n}\n\nexport function FullNode({ model, lang, blockStates }: { model: DataModel, lang: string, blockStates: BlockStateRegistry }) {\n\tconst path = new ModelPath(model)\n\tconst [prefix, suffix, body] = model.schema.hook(renderHtml, path, deepClone(model.data), lang, blockStates, {})\n\treturn suffix?.props?.children.some((c: any) => c) ?
\n\t\t
{prefix}{suffix}
\n\t\t
{body}
\n\t
: body\n}\n\nconst renderHtml: RenderHook = {\n\tbase() {\n\t\treturn [null, null, null]\n\t},\n\n\tboolean(params, path, value, lang, states, ctx) {\n\t\treturn [null, , null]\n\t},\n\n\tchoice({ choices, config, switchNode }, path, value, lang, 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, 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 newValue = c.change\n\t\t\t\t? c.change(DataModel.unwrapLists(value))\n\t\t\t\t: config.choiceContext === 'feature' ?\tc.node.default()?.config?.feature : c.node.default()\n\t\t\tpath.model.set(path, DataModel.wrapLists(newValue))\n\t\t}\n\t\tconst inject = \n\t\treturn [prefix, <>{inject}{suffix}, body]\n\t},\n\n\tlist({ children, config }, path, value, lang, 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)}\n\t\t\t\t
\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, 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 = \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
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\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
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\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 \n\t\t\t\t\t{canToggle && }\n\t\t\t\t\t\n\t\t\t\t\t{value.length > 1 &&
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
}\n\t\t\t\t
\n\t\t\t})}\n\t\t\t{(value && value.length > 0 && value.length <= maxShown) &&
\n\t\t\t\t\n\t\t\t
}\n\t\t\n\t\treturn [null, suffix, body]\n\t},\n\n\tmap({ children, keys, config }, path, value, lang, 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, states, ctx)\n\t\t}\n\t\tconst suffix = <>\n\t\t\t{keysSchema.hook(this, keyPath, keyPath.get() ?? '', lang, states, ctx)[1]}\n\t\t\t\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
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\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 \n\t\t\t\t\t{canToggle && }\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t})}\n\t\t\n\t\treturn [null, suffix, body]\n\t},\n\n\tnumber(params, path, value, lang, states, ctx) {\n\t\treturn [null, , null]\n\t},\n\n\tobject({ node, config, getActiveFields, getChildModelPath }, path, value, lang, 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 = \n\t\t\t} else {\n\t\t\t\tconst onCollapse = () => path.set(undefined)\n\t\t\t\tsuffix = \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\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, 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}{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 \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, states, ctx) {\n\t\treturn [null, , null]\n\t},\n}\n\nfunction Collapsed({ path, value }: { path: ModelPath, value: any, schema: INode }) {\n\tconst context = path.getContext().join('.')\n\tswitch (context) {\n\t\tcase 'loot_table.pools.entry':\n\t\t\treturn \n\t\tcase 'function.set_contents.entries.entry':\n\t\tcase 'loot_pool.entries.entry':\n\t\t\treturn \n\t}\n\tfor (const child of Object.values(value ?? {})) {\n\t\tif (typeof child === 'string') {\n\t\t\treturn \n\t\t}\n\t}\n\treturn null\n}\n\nfunction useToggles() {\n\tconst [toggleState, setToggleState] = useState(new Map())\n\tconst [toggleAll, setToggleAll] = useState(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) {\n\tconst set = (target: boolean) => {\n\t\tpath.model.set(path, node.optional() && value === target ? undefined : target)\n\t}\n\treturn <>\n\t\t\n\t\t\n\t\n}\n\nfunction NumberSuffix({ path, config, integer, value, lang }: NodeProps) {\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 {if (evt.key === 'Enter') onChange(evt)}} />\n\t\t{config?.color && }\n\t\t{['dimension.generator.seed', 'dimension.generator.biome_source.seed', 'world_settings.seed'].includes(path.getContext().join('.')) && }\n\t\n}\n\nfunction StringSuffix({ path, getValues, config, node, value, lang, states }: NodeProps) {\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\tif (nbtFields.includes(context)) {\n\t\treturn \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 (!isEnum(config) && config?.validator === 'resource' && typeof config.params.pool === 'string') {\n\t\t\tcontext = context.contextPush(config.params.pool)\n\t\t} else if (isEnum(config)) {\n\t\t\tcontext = path\n\t\t}\n\t\treturn \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 \n\t} else {\n\t\tconst datalistId = hexId()\n\t\treturn <>\n\t\t\t {if (evt.key === 'Enter') onChange(evt)}}\n\t\t\t\tlist={values.length > 0 ? datalistId : ''} />\n\t\t\t{values.length > 0 && \n\t\t\t\t{values.map(v => }\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,\n\tpath: ModelPath,\n\tvalue: any,\n\tlang: string,\n\tstates: BlockStateRegistry,\n\tctx: Record,\n\tcompare?: any,\n\tlabel?: string,\n\tactions?: MenuAction[],\n\tchildren?: ComponentChildren,\n}\nfunction TreeNode({ label, schema, path, value, lang, 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 = { ...ctx, depth: (ctx.depth ?? 0) + 1 }\n\tdelete newCtx.index\n\tconst [prefix, suffix, body] = schema.hook(renderHtml, path, value, lang, states, newCtx)\n\treturn
\n\t\t
\n\t\t\t\n\t\t\t\n\t\t\t{children}\n\t\t\t{prefix}\n\t\t\t\n\t\t\t{suffix}\n\t\t
\n\t\t{body &&
{body}
}\n\t
\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 = locale(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 = locale(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 = locale(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
\n\t\t{Octicon[icon]}\n\t\t{popup}\n\t
\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 { useModel } from '../../hooks'\nimport { FullNode } from '../../schema/renderHtml'\nimport type { BlockStateRegistry, VersionId } from '../../services'\n\ntype TreePanelProps = {\n\tlang: string,\n\tversion: VersionId,\n\tmodel: DataModel | null,\n\tblockStates: BlockStateRegistry | null,\n\tonError: (message: string) => unknown,\n}\nexport function Tree({ lang, model, blockStates, onError }: TreePanelProps) {\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
\n\t\t\n\t
\n}\n","import { getCurrentUrl, Link, route } from 'preact-router'\nimport { Btn, BtnMenu, Icons, Octicon } from '.'\nimport config from '../../config.json'\nimport { locale } from '../Locales'\nimport type { VersionId } from '../services'\nimport { checkVersion } from '../services'\nimport { cleanUrl, getGenerator } from '../Utils'\n\nconst Themes: Record = {\n\tsystem: 'device_desktop',\n\tdark: 'moon',\n\tlight: 'sun',\n}\n\ntype HeaderProps = {\n\tlang: string,\n\ttitle: string,\n\tversion: VersionId,\n\ttheme: string,\n\tchangeTheme: (theme: string) => unknown,\n\tlanguage: string,\n\tchangeLanguage: (language: string) => unknown,\n}\nexport function Header({ lang, title, version, theme, changeTheme, language, changeLanguage }: HeaderProps) {\n\tconst loc = locale.bind(null, lang)\n\tconst gen = getGenerator(getCurrentUrl())\n\n\treturn
\n\t\t
\n\t\t\t{Icons.home}\n\t\t\t

{title}

\n\t\t\t{gen && \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 route(cleanUrl(g.url))} />\n\t\t\t\t\t)}\n\t\t\t}\n\t\t
\n\t\t\n\t
\n}\n","export const Icons = {\n\thome: ,\n\treport: ,\n\tsounds: ,\n}\n","import { Howl } from 'howler'\nimport { useEffect, useRef, useState } from 'preact/hooks'\nimport { Btn, NumberInput, RangeInput, TextInput } from '..'\nimport { locale } from '../../Locales'\nimport type { SoundEvents, VersionAssets } from '../../services'\nimport { getResourceUrl } 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\tlang: string,\n\tassets: VersionAssets,\n\tsounds: SoundEvents,\n\tonEdit: (changes: Partial) => unknown,\n\tonDelete: () => unknown,\n\tdelayedPlay?: number,\n}\nexport function SoundConfig({ lang, assets, sounds, sound, delay, pitch, volume, onEdit, onDelete, delayedPlay }: SoundConfigProps) {\n\tconst loc = locale.bind(null, lang)\n\tconst [loading, setLoading] = useState(true)\n\tconst [playing, setPlaying] = useState(false)\n\tconst [invalid, setInvalid] = useState(false)\n\tconst howls = useRef([])\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 hash = assets[`minecraft/sounds/${soundPath}.ogg`].hash\n\t\t\tconst url = getResourceUrl(hash)\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(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
\n\t\t\n\t\t onEdit({ sound })} />\n\t\t\n\t\t onEdit({ delay })} />\n\t\t\n\t\t onEdit({ pitch })} />\n\t\t\n\t\t onEdit({ volume })} />\n\t\t\n\t\t {onDelete(); stop()}} />\n\t
\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
\n\t\t\t{icon && Icons[icon]}\n\t\t\t
\n\t\t\t\t

{title}

\n\t\t\t\t

{desc}

\n\t\t\t
\n\t\t
\n\t\t{children &&
\n\t\t\t{children}\n\t\t
}\n\t\n\treturn link\n\t\t? {content}\n\t\t:
{content}
\n}\n","import config from '../../config.json'\nimport { ToolCard } from '../components'\nimport { locale } from '../Locales'\nimport { cleanUrl } from '../Utils'\n\ntype WorldgenProps = {\n\tcategory: string,\n\tlang: string,\n\tchangeTitle: (title: string) => unknown,\n\tpath?: string,\n}\nexport function Category({ category, lang, changeTitle }: WorldgenProps) {\n\tconst loc = locale.bind(null, lang)\n\tchangeTitle(loc('title.generator_category', loc(category)))\n\treturn
\n\t\t
\n\t\t\t{config.generators.filter(g => g.category === category).map(g => \n\t\t\t\t\n\t\t\t)}\n\t\t
\n\t
\n}\n","import marked from 'marked'\nimport { useEffect, useMemo, useState } from 'preact/hooks'\nimport { Ad, Btn, ErrorPanel, Octicon, TextInput } from '../components'\nimport { locale } from '../Locales'\nimport type { ChangelogEntry, ChangelogVersion, VersionId } from '../services'\nimport { getChangelogs } from '../services'\nimport { hashString } from '../Utils'\n\ntype ChangelogProps = {\n\tpath?: string,\n\tlang: string,\n\tchangeTitle: (title: string, versions?: VersionId[]) => unknown,\n}\nexport function Changelog({ lang, changeTitle }: ChangelogProps) {\n\tconst loc = locale.bind(null, lang)\n\tconst [error, setError] = useState(null)\n\tchangeTitle(loc('title.changelog'))\n\n\tconst [changelogs, setChangelogs] = useState([])\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([])\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 => content.includes(q))\n\t\t})\n\t}, [changelogs, search, tags])\n\n\tconst [sort, setSort] = useState(false)\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
\n\t\t\n\t\t{error && setError(null)} />}\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t setSort(!sort)} />\n\t\t\t
\n\t\t\t{tags.length > 0 &&
\n\t\t\t\t{tags.map(tag => setTags(tags.filter(t => t !== tag))} />)}\n\t\t\t
}\n\t\t
\n\t\t
\n\t\t\t{sortedChangelogs.map(change =>\n\t\t\t\t)}\n\t\t
\n\t
\n}\n\ntype ChangeProps = {\n\tchange: ChangelogEntry,\n\tactiveTags: string[],\n\ttoggleTag: (tag: string) => unknown,\n}\nfunction Change({ change, activeTags, toggleTag }: ChangeProps) {\n\treturn
\n\t\t
\n\t\t\t\n\t\t\t\n\t\t
\n\t\t
\n\t\t\t{change.tags.map(tag => toggleTag(tag)} active={activeTags.includes(tag)} />)}\n\t\t
\n\t\t
\n\t
\n}\n\nfunction ArticleLink({ id, article }: ChangelogVersion) {\n\treturn article === null\n\t\t? {id}\n\t\t: {id}\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
\n\t\t{label === 'breaking' && Octicon.alert}\n\t\t{label}\n\t
\n}\n","import { DataModel, Path } from '@mcschema/core'\nimport { getCurrentUrl } from 'preact-router'\nimport { useEffect, useErrorBoundary, useRef, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport { Analytics } from '../Analytics'\nimport { Ad, Btn, BtnInput, BtnMenu, ErrorPanel, HasPreview, Octicon, PreviewPanel, SourcePanel, Tree } from '../components'\nimport { useModel } from '../hooks'\nimport { locale } from '../Locales'\nimport type { BlockStateRegistry, VersionId } from '../services'\nimport { checkVersion, fetchPreset, getBlockStates, getCollections, getModel } from '../services'\nimport { getGenerator, message } from '../Utils'\n\ntype GeneratorProps = {\n\tlang: string,\n\tchangeTitle: (title: string, versions?: VersionId[]) => unknown,\n\tversion: VersionId,\n\tchangeVersion: (version: VersionId) => unknown,\n\tdefault?: true,\n}\nexport function Generator({ lang, changeTitle, version, changeVersion }: GeneratorProps) {\n\tconst loc = locale.bind(null, lang)\n\tconst [error, setError] = useState(null)\n\tconst [errorBoundary, errorRetry] = useErrorBoundary()\n\tif (errorBoundary) {\n\t\treturn
\n\t}\n\n\tconst gen = getGenerator(getCurrentUrl())\n\tif (!gen) {\n\t\treturn
\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\tchangeTitle(loc('title.generator', loc(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\n\tconst [model, setModel] = useState(null)\n\tconst [blockStates, setBlockStates] = useState(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(m => {\n\t\t\t\tAnalytics.setGenerator(gen.id)\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\tuseModel(model, () => {\n\t\tsetError(null)\n\t})\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\tuseEffect(() => {\n\t\tdocument.addEventListener('keyup', onKeyUp)\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('keyup', onKeyUp)\n\t\t}\n\t}, [model])\n\n\tconst [presetFilter, setPresetFilter] = useState('')\n\tconst [presetResults, setPresetResults] = useState([])\n\tuseEffect(() => {\n\t\tgetCollections(version)\n\t\t\t.then(collections => {\n\t\t\t\tconst terms = (presetFilter ?? '').trim().split(' ')\n\t\t\t\tconst presets = collections.get(gen.id)\n\t\t\t\t\t.map(p => p.slice(10))\n\t\t\t\t\t.filter(p => terms.every(t => p.includes(t)))\n\t\t\t\tif (presets) {\n\t\t\t\t\tsetPresetResults(presets)\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(e => { console.error(e); setError(e.message) })\n\t}, [version, gen.id, presetFilter])\n\n\tconst loadPreset = (id: string) => {\n\t\tAnalytics.generatorEvent('load-preset', id)\n\t\tfetchPreset(version, gen.path ?? gen.id, id).then(preset => {\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\tmodel?.reset(DataModel.wrapLists(preset), false)\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, setCopyActive] = useState(false)\n\tconst copyTimeout = useRef(undefined)\n\tconst copySuccess = () => {\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\tconst [previewShown, setPreviewShown] = useState(false)\n\tconst hasPreview = HasPreview.includes(gen.id)\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}\n\n\treturn <>\n\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t{presetResults.map(preset => loadPreset(preset)} />)}\n\t\t\t\t\t
\n\t\t\t\t\t{presetResults.length === 0 && }\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t{allowedVersions.reverse().map(v =>\n\t\t\t\t\t\t changeVersion(v)} />\n\t\t\t\t\t)}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t{error && setError(null)} />}\n\t\t\t\n\t\t
\n\t\t
\n\t\t\t
\n\t\t\t\t{previewShown ? Octicon.x_circle : Octicon.play}\n\t\t\t
\n\t\t\t
\n\t\t\t\t{Octicon.download}\n\t\t\t
\n\t\t\t
\n\t\t\t\t{copyActive ? Octicon.check : Octicon.clippy}\n\t\t\t
\n\t\t\t
\n\t\t\t\t{sourceShown ? Octicon.chevron_right : Octicon.code}\n\t\t\t
\n\t\t
\n\t\t
\n\t\t\t\n\t\t
\n\t\t
\n\t\t\t\n\t\t
\n\t\n}\n","import config from '../../config.json'\nimport { ToolCard } from '../components'\nimport { locale } from '../Locales'\nimport { cleanUrl } from '../Utils'\n\ntype HomeProps = {\n\tlang: string,\n\tchangeTitle: (title: string) => unknown,\n\tpath?: string,\n}\nexport function Home({ lang, changeTitle }: HomeProps) {\n\tconst loc = locale.bind(null, lang)\n\tchangeTitle(loc('title.home'))\n\treturn
\n\t\t
\n\t\t\t\n\t\t\t\t{config.generators.filter(g => !g.category).map(g => \n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{config.generators.filter(g => g.category === 'assets').map(g =>\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
\n\t
\n}\n","import { useEffect, useRef, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport { Ad, Btn, BtnMenu, ErrorPanel, SoundConfig, TextInput } from '../components'\nimport { locale } from '../Locales'\nimport type { SoundEvents, VersionAssets, VersionId } from '../services'\nimport { getAssets, getSounds } from '../services'\nimport { hexId, message } from '../Utils'\n\ntype SoundsProps = {\n\tpath?: string,\n\tlang: string,\n\tchangeTitle: (title: string, versions?: VersionId[]) => unknown,\n\tversion: VersionId,\n\tchangeVersion: (version: VersionId) => unknown,\n}\nexport function Sounds({ lang, changeTitle, version, changeVersion }: SoundsProps) {\n\tconst loc = locale.bind(null, lang)\n\tconst [error, setError] = useState(null)\n\tchangeTitle(loc('title.sounds'))\n\n\tconst [assets, setAssets] = useState({})\n\tconst [sounds, setSounds] = useState({})\n\tconst soundKeys = Object.keys(sounds ?? {})\n\tuseEffect(() => {\n\t\tgetAssets(version)\n\t\t\t.then(assets => { setAssets(assets); return getSounds(version) })\n\t\t\t.then(sounds => { if (sounds) setSounds(sounds) })\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([])\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) => {\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(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
\n\t\t\n\t\t{error && setError(null)} />}\n\t\t{soundKeys.length > 0 && <>\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t{configs.length > 1 && }\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{config.versions.reverse().map(v =>\n\t\t\t\t\t\t changeVersion(v.id as VersionId)} />\n\t\t\t\t\t)}\n\t\t\t\t\n\t\t\t
\n\t\t\t
\n\t\t\t\t{configs.map(c => )}\n\t\t\t
\n\t\t\t\n\t\t}\n\t\t\n\t\t\t{soundKeys.map(s => \n\t
\n}\n","import { render } from 'preact'\nimport type { RouterOnChangeArgs } from 'preact-router'\nimport { Router } from 'preact-router'\nimport { useEffect, useState } from 'preact/hooks'\nimport config from '../config.json'\nimport '../styles/global.css'\nimport '../styles/nodes.css'\nimport { Analytics } from './Analytics'\nimport { Header } from './components'\nimport { loadLocale, locale, Locales } from './Locales'\nimport { Category, Changelog, Generator, Home, Sounds } from './pages'\nimport type { VersionId } from './services'\nimport { Store } from './Store'\nimport { cleanUrl } from './Utils'\n\nconst VERSIONS_IN_TITLE = 3\n\nfunction Main() {\n\tconst [lang, setLanguage] = useState('none')\n\tconst changeLanguage = async (language: string) => {\n\t\tif (!Locales[language]) {\n\t\t\tawait loadLocale(language)\n\t\t}\n\t\tAnalytics.setLanguage(language)\n\t\tStore.setLanguage(language)\n\t\tsetLanguage(language)\n\t}\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 [theme, setTheme] = useState(Store.getTheme())\n\tconst changeTheme = (theme: string) => {\n\t\tAnalytics.setTheme(theme)\n\t\tStore.setTheme(theme)\n\t\tsetTheme(theme)\n\t}\n\tuseEffect(() => {\n\t\tdocument.documentElement.setAttribute('data-theme', theme)\n\t}, [theme])\n\n\tconst [version, setVersion] = useState(Store.getVersion())\n\tconst changeVersion = (version: VersionId) => {\n\t\tAnalytics.setVersion(version)\n\t\tStore.setVersion(version)\n\t\tsetVersion(version)\n\t}\n\n\tconst [title, setTitle] = useState(locale(lang, 'title.home'))\n\tconst changeTitle = (title: string, versions?: VersionId[]) => {\n\t\tversions ??= config.versions.map(v => v.id as VersionId)\n\t\tversions.splice(0, versions.length - VERSIONS_IN_TITLE)\n\t\tdocument.title = `${title} Minecraft ${versions.join(', ')}`\n\t\tsetTitle(title)\n\t}\n\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
\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n}\n\nrender(
, 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","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","setActive","useState","hider","model","invalidated","listener","[object Object]","addListener","removeListener","relative","children","useFocus","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","download","duplicate","eye","eye_closed","gear","globe","history","info","issue_opened","kebab_horizontal","link","mark_github","moon","play","plus","plus_circle","search","sort_asc","sort_desc","stack","sun","sync","tag","terminal","three_bars","trashcan","unfold","upload","x_circle","error","onDismiss","href","component","props","evt","fn","onKeyDown","onEnter","key","__spreadValues","displayName","name","TextInput","BaseInput","v","NumberInput","Number","RangeInput","scriptRel","seen","__vitePreload","baseModule","deps","relList","document","createElement","supports","Promise","all","map","dep","isCss","endsWith","cssSelector","querySelector","rel","as","crossOrigin","head","appendChild","res","rej","then","Locales","fallback","English","params","replace","parseInt","match","slice","resolveLocaleParams","en","langConfig","config","languages","find","lang","data","__variableDynamicImportRuntime0__","schema","schemas","__variableDynamicImportRuntime1__","default","obj","dec2hex","dec","toString","substr","length","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","trimmedUrl","generators","g2","str","abs","hashString","a2","b","c","max","min","lerp","Error","message","deepClone","rfdc","constructor","isArray","deepEqual","valueOf","Object","prototype","hasOwnProperty","call","forward","Map","backward","this","defaultValue","repo","Changelogs","fetch","json","group","groupIndex","versionIndex","text","split","entry","indexOf","tags","substring","trim","content","parseChangelog","order","change","fetchChangelog","parseVersion","flat","fetchGroup","article","isObject","VersionIds","Versions","Models","versionGetter","1.15","java15","1.16","java16","1.17","java17","1.18","java18","CachedDecorator","CachedFeature","collections","getCollections","blockStates","versionId","collectionTarget","blockStateTarget","versions","JSON","stringify","debug","dynamic","refs","filter","localStorage","getItem","r","hash","matches","cache","caches","open","promises","request","push","delete","warn","deleteMatching","startsWith","setItem","fetchRegistries","fetchBlockStateMap","fetchDynamicRegistries","fetchAssetsRegistries","fetchData","getSchemas","minVersionId","maxVersionId","findIndex","minVersion","maxVersion","removeItem","mcdataUrl","mcassetsUrl","vanillaDatapackUrl","registries","asset","checkVersion","mcdata_master","getData","data2","k","entries","register","path","values","properties","states","assign","vanilla_datapack_summary","Noises","fetchFolder","mcassets","directories","files","d2","ids","registry","versionData","includes","vanilla_datapack_data","parse","noise","terrain_shaper","offset","factor","jaggedness","cacheResponse","ok","fetchResponse","responseData","put","Response","Manifest","VersionAssets","SoundEvents","fetchManifest","manifest","getManifest","latest","snapshot","versionMeta","assetIndex","objects","fetchAssets","assets","getAssets","getResourceUrl","fetchSounds","ready","LAYERS","temperature","humidity","continentalness","erosion","weirdness","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","param","p","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","multi_noise","getA","getBiomes","xFrom","xTo","xStep","yFrom","yTo","yStep","zFrom","zTo","zStep","layers","climate","climate_noise","result","t","w","point","TerrainShaper","has","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","sampleInt","fill","pos","feature","j","base","spread","normalize","min_inclusive","max_inclusive","source","useFeature","featureFn","Features","decorator2","decoratorFn","Decorators","decorated","getPositions","decorator","getPlacements","random_boolean_selector","feature_true","feature_false","random_selector","f","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","minLimitPerlinNoise","maxLimitPerlinNoise","mainPerlinNoise","depthNoise","settings","xOffset","chunkWidth","size_horizontal","chunkHeight","size_vertical","chunkCountY","amplified","biomeDepth","biomeScale","noiseColumnCache","cx","ox","noise1","fillNoiseColumn","noise2","yy","oy","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","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","getShaper","calculateState","useCanvas","round","oz","col","xRange","zRange","l2","getClimate","worldX","worldZ","getBiomeColor","getBiome","brightness","biomeMap","setTimeout","xx","zz","toWorld","changeScale","newScale","BtnMenu","locale","enabled","newSeed","densityFactor","densityOffset","DecoratorPreview","setSeed","randomSeed","NoisePreview","NoiseParameters","NoiseSettingsPreview","loc","bind","setBiomeScale","setBiomeDepth","worldY","min_y","BtnInput","HasPreview","setCount","transformOutput","switchNode","hook","getOwnPropertySymbols","blockState","validation","validator","relativePath","getActiveFields","activeFields","out","Store","Store2","getLanguage","getTheme","getVersion","getIndent","getFormat","getSoundsVersion","setIndent","indent","setFormat","format","setSoundsVersion","INDENT","2_spaces","4_spaces","tabs","minified","FORMATS","yaml","dump","flowLevel","doCopy","doDownload","doImport","copySuccess","onError","retransform","getOutput","useCallback","model2","blockStates2","ModelPath","output","clipboard","writeText","encodeURIComponent","setAttribute","click","changeIndent","changeFormat","onBlur","wrapLists","spellcheck","autocorrect","style","mapper","getter","setter","silent","selectRegistries","hiddenFields","flattenedFields","inlineFields","nbtFields","fixedLists","collapsedFields","keysModel","MapNode","StringNode","historyMax","prefix","suffix","renderHtml","some","data-category","boolean","BooleanSuffix","choices","choice","activeCase","contextPath","context","getModel","getArray","choiceContextPath","choiceContext","inject","c2","newValue","pathLocale","contextPush","expand","collapse","isToggled","useToggles","maxShown","setMaxShown","maxLength","ErrorPopup","modelPush","hexId","cValue","cId","cPath","canToggle","toggle","nested","Collapsed","MemoedTreeNode","actions","onSelect","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","newPath","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","additional","pool","datalistId","list","values2","memo","onContextMenu","preventDefault","a","description","navigator","prev","next","withModel","getAll","e2","message2","popupIcon","popup","useErrorBoundary","setState","FullNode","Themes","system","dark","light","title","changeTheme","changeLanguage","gen","getGenerator","getCurrentUrl","Link","Icons","home","route","cleanUrl","th","rx","y","report","sounds","cy","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","every","copyActive","setCopyActive","copyTimeout","step","toFixed","desc","changeTitle","ToolCard","setError","changelogs","setChangelogs","changelogs2","catch","setSearch","setTags","toggleTag","filteredChangelogs","useMemo","query","q2","toLowerCase","sort","setSort","sortedChangelogs","Ad","ErrorPanel","Tag","Change","activeTags","ArticleLink","dangerouslySetInnerHTML","__html","marked","changeVersion","errorBoundary","errorRetry","allowedVersions","setModel","setBlockStates","Reference","ChoiceNode","schemaName","validate","err","m","onKeyUp","undo","redo","presetFilter","setPresetFilter","presetResults","setPresetResults","terms","presets","sourceShown","setSourceShown","innerWidth","setCopy","setDownload","setImport","previewShown","setPreviewShown","hasPreview","actionsShown","loadPreset","Tree","PreviewPanel","SourcePanel","setAssets","setSounds","soundKeys","assets2","getSounds","sounds2","configs","setConfigs","addConfig","deleteConfig","setDelayedPlay","hasDelay","SoundConfig","changes","loadLocale","documentElement","version2","setTitle","title2","Header","theme2","Router","Home","Category","Sounds","Changelog","Generator","render","Main"],"mappings":"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"} \ No newline at end of file diff --git a/assets/index.html b/assets/index.html index 5532fc20..7b1ef3cf 100644 --- a/assets/index.html +++ b/assets/index.html @@ -20,8 +20,8 @@ Assets Generators Minecraft 1.16, 1.17, 1.18 - - + + diff --git a/assets/model/index.html b/assets/model/index.html index c0985651..13a40955 100644 --- a/assets/model/index.html +++ b/assets/model/index.html @@ -20,8 +20,8 @@ Model Generator Minecraft 1.18 - - + + diff --git a/assets/vendor.58fc945f.js b/assets/vendor.58fc945f.js deleted file mode 100644 index 26486451..00000000 --- a/assets/vendor.58fc945f.js +++ /dev/null @@ -1,23 +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 d={};var u,p,m,_,f={},h=[],g=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function b(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 y(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=v[d])||p&&m.key==p.key&&m.type===p.type)v[d]=void 0;else for(u=0;ut.rank?-1:e.index-t.index}function W(e,t){return e.index=t,e.rank=function(e){return e.props.default?0:(t=e.props.path,G(t).map(X).join(""));var t}(e),e.props}function G(e){return e.replace(/(^\/+|\/+$)/g,"").split("/")}function X(e){return":"==e.charAt(0)?1+"*+?".indexOf(e.charAt(e.length-1))||4:5}var Y=null,V=[],J=[],K={};function Q(){var e;return""+((e=Y&&Y.location?Y.location:Y&&Y.getCurrentLocation?Y.getCurrentLocation():"undefined"!=typeof location?location:K).pathname||"")+(e.search||"")}function ee(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"),te(e)}function te(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(W).sort(H).map((function(e){var n=Z(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=b({},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 ye(e){return pe=1,function(e,t,r){var n=ve(le++,2);return n.t=e,n.__c||(n.__=[r?r(t):Le(void 0,t),function(e){var t=n.t(n.__[0],e);n.__[0]!==t&&(n.__=[t,n.__[1]],n.__c.setState({}))}],n.__c=de),n.__}(Le,e)}function Ne(e,t){var r=ve(le++,3);!u.__s&&Ce(r.__H,t)&&(r.__=e,r.__H=t,de.__H.__h.push(r))}function ke(e){return pe=5,we((function(){return{current:e}}),[])}function we(e,t){var r=ve(le++,7);return Ce(r.__H,t)&&(r.__=e(),r.__H=t,r.__h=e),r.__}function Oe(e,t){return pe=8,we((function(){return e}),t)}function xe(e){var t=ve(le++,10),r=ye();return t.__=e,de.componentDidCatch||(de.componentDidCatch=function(e){t.__&&t.__(e),r[1](e)}),[r[0],function(){r[1](void 0)}]}function Se(){me.forEach((function(e){if(e.__P)try{e.__H.__h.forEach(Ae),e.__H.__h.forEach(Me),e.__H.__h=[]}catch(t){e.__H.__h=[],u.__e(t,e.__v)}})),me=[]}u.__b=function(e){de=null,_e&&_e(e)},u.__r=function(e){fe&&fe(e),le=0;var t=(de=e.__c).__H;t&&(t.__h.forEach(Ae),t.__h.forEach(Me),t.__h=[])},u.diffed=function(e){he&&he(e);var t=e.__c;t&&t.__H&&t.__H.__h.length&&(1!==me.push(t)&&ue===u.requestAnimationFrame||((ue=u.requestAnimationFrame)||function(e){var t,r=function(){clearTimeout(n),je&&cancelAnimationFrame(t),setTimeout(e)},n=setTimeout(r,100);je&&(t=requestAnimationFrame(r))})(Se)),de=void 0},u.__c=function(e,t){t.some((function(e){try{e.__h.forEach(Ae),e.__h=e.__h.filter((function(e){return!e.__||Me(e)}))}catch(r){t.some((function(e){e.__h&&(e.__h=[])})),t=[],u.__e(r,e.__v)}})),ge&&ge(e,t)},u.unmount=function(e){be&&be(e);var t=e.__c;if(t&&t.__H)try{t.__H.__.forEach(Ae)}catch(r){u.__e(r,t.__v)}};var je="function"==typeof requestAnimationFrame;function Ae(e){var t=de;"function"==typeof e.__c&&e.__c(),de=t}function Me(e){var t=de;e.__c=e.__(),de=t}function Ce(e,t){return!e||e.length!==t.length||t.some((function(t,r){return t!==e[r]}))}function Le(e,t){return"function"==typeof t?t(e):t}var Pe="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},Be={},Ie={},Te={};Object.defineProperty(Te,"__esModule",{value:!0}),Te.ModelPath=Te.Path=Te.relativePath=void 0,Te.relativePath=function(e,t){return t.reduce(((e,t)=>"pop"===t?e.pop():e.push(t.push)),e)};class ze{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 ze(this.modelArr.slice(e,t),this.contextArr)}shift(){return new ze(this.modelArr.slice(1),this.contextArr)}pop(){return new ze(this.modelArr.slice(0,-1),this.contextArr)}push(e){return this.modelPush(e).contextPush(e)}modelPush(e){return new ze([...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 ze([...this.modelArr],[...this.contextArr,t])}copy(){return new ze([...this.modelArr],[...this.contextArr])}getArray(){return this.modelArr}withModel(e){return new Re(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)}}Te.Path=ze;class Re extends ze{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 Re(this.model,super.slice(e,t))}shift(){return new Re(this.model,super.shift())}pop(){return new Re(this.model,super.pop())}push(e){return this.modelPush(e).contextPush(e)}modelPush(e){return new Re(this.model,super.modelPush(e))}contextPush(e){return new Re(this.model,super.contextPush(e))}copy(){return new Re(this.model,super.copy())}}Te.ModelPath=Re;var Fe={};Object.defineProperty(Fe,"__esModule",{value:!0}),Fe.Errors=void 0;class Ee{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}}Fe.Errors=Ee;var De={};function $e(e){return e.replace(/(\\|")/g,"\\$1")}Object.defineProperty(De,"__esModule",{value:!0}),De.hexId=De.quoteString=De.escapeString=void 0,De.escapeString=$e,De.quoteString=function(e){return`"${$e(e)}"`};const Ue=e=>("0"+e.toString(16)).substr(-2);De.hexId=function(e=12){var t=new Uint8Array(e/2);return window.crypto.getRandomValues(t),Array.from(t,Ue).join("")},Object.defineProperty(Ie,"__esModule",{value:!0}),Ie.DataModel=void 0;const qe=Te,Ze=Fe,He=De;class We{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?We.wrapLists(a):a,this.listeners=[],this.errors=new Ze.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:He.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:He.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))return e.map((e=>({node:this.wrapLists(e),id:He.hexId()})));if("object"==typeof e&&null!==e){const t={};return Object.entries(e).map((([e,r])=>{t[e]=this.wrapLists(r)})),t}return e}static unwrapLists(e){if(Array.isArray(e))return e.map((e=>this.unwrapLists(e.node)));if("object"==typeof e&&null!==e){const t={};return Object.entries(e).map((([e,r])=>{t[e]=this.unwrapLists(r)})),t}return e}}Ie.DataModel=We;var Ge,Xe={};Ge=Xe,Object.defineProperty(Ge,"__esModule",{value:!0}),Ge.Keep=Ge.Opt=Ge.Has=Ge.Mod=Ge.Base=void 0,Ge.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:()=>[]},Ge.Mod=(e,t)=>s(s({},e),"function"==typeof t?t(e):t),Ge.Has=(e,t)=>Ge.Mod(t,{enabled:t=>void 0!==t.push(e).get()}),Ge.Opt=function(e){return c(s({},e),{optional:()=>!0})},Ge.Keep=function(e){return c(s({},e),{keep:()=>!0})};var Ye={};Object.defineProperty(Ye,"__esModule",{value:!0}),Ye.BooleanNode=void 0;const Ve=Ie,Je=Xe;Ye.BooleanNode=()=>c(s({},Je.Base),{type:()=>"boolean",default:()=>!1,suggest:()=>["false","true"],validate(e,t,r,n){return n.loose&&"boolean"!=typeof t&&(t=n.wrapLists?Ve.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 Ke={},Qe={};Object.defineProperty(Qe,"__esModule",{value:!0}),Qe.ListNode=void 0;const et=Ie,tt=Xe;Qe.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({},tt.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){return s.loose&&!Array.isArray(r)&&(r=s.wrapLists?et.DataModel.wrapLists(this.default()):this.default()),Array.isArray(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),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}))):(n.add(t,"error.expected_list"),r)},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 rt={};Object.defineProperty(rt,"__esModule",{value:!0}),rt.SwitchNode=void 0;const nt=Xe;rt.SwitchNode=e=>c(s({},nt.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=Qe,r=rt;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]]}}])}(Ke);var it={};Object.defineProperty(it,"__esModule",{value:!0}),it.MapNode=void 0;const ot=Xe,at=Ie;it.MapNode=(e,t,r)=>c(s({},ot.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?at.DataModel.wrapLists(this.default()):this.default()),null===n||"object"!=typeof n)return i.add(r,"error.expected_object"),n;let a={};return Object.keys(n).forEach((s=>{e.validate(r,s,i,o),a[s]=t.validate(r.push(s),n[s],i,o)})),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 st={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.NumberEnum=e.NumberNode=void 0;const t=Be,r=Ie,n=Xe;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,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({},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"):u&&(td)?n.add(e,"error.invalid_number_range.between",t,l,d):td&&n.add(e,"error.invalid_number_range.larger",t,d),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:d,between:u,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)})))}(st);var ct={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ObjectNode=e.Case=e.Switch=void 0;const t=Xe,r=Te,a=Fe,d=De,u=Ie;e.Switch=Symbol("switch"),e.Case=Symbol("case"),e.ObjectNode=(p,m)=>{var _,f;const h=p,{[_=e.Switch]:g,[f=e.Case]:b}=h,v=((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})(h,[l(_),l(f)]),y=e=>{if(void 0===g)return v;const t=r.relativePath(e,g).get(),n=b[t];return s(s({},v),n)},N=(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=y(e.slice(0,r))[n[r]];return null==i?void 0:i.navigate(e,r)},pathPush:(e,t)=>N(e,t.toString()),suggest(e,t){const r=y(e),n=Object.keys("object"==typeof t?t:{});return Object.keys(r).filter((t=>r[t].enabled(e))).filter((e=>!n.includes(e))).map(d.quoteString)},validate(e,t,n,i){if(i.loose&&"object"!=typeof t&&(t=i.wrapLists?u.DataModel.wrapLists(this.default()):this.default()),"object"!=typeof t||null===t)return n.add(e,"error.expected_object"),t;let o=v;if(g){const n=r.relativePath(e,g);let c=n.get();if(e.equals(n.pop())){const r=n.last();c=v[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())),d=new Set([...l,...Object.keys(t)]);let p={};return d.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]})),p},hook(e,t,...r){var n;return(null!==(n=e.object)&&void 0!==n?n:e.base).call(e,{node:this,fields:v,config:null!=m?m:{},filter:g,cases:b,getActiveFields:y,getChildModelPath:N},t,...r)}})}}(ct);var lt={};Object.defineProperty(lt,"__esModule",{value:!0}),lt.Reference=void 0,lt.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 dt={};Object.defineProperty(dt,"__esModule",{value:!0}),dt.StringNode=void 0;const ut=Xe,pt=De,mt=Ie,_t=e=>{var t;return!!(null===(t=e)||void 0===t?void 0:t.enum)},ft=e=>{var t;return!!(null===(t=e)||void 0===t?void 0:t.validator)};dt.StringNode=(e,t)=>{const r=_t(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({},ut.Base),{type:()=>"string",default:()=>"",validate(e,n,i,o){if(o.loose&&"string"!=typeof n&&(n=(o.wrapLists?mt.DataModel.wrapLists(this.default()):this.default())||void 0),"string"!=typeof n)return i.add(e,"error.expected_string"),n;if(ft(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(_t(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(pt.quoteString),validationOption:()=>ft(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 ht={};Object.defineProperty(ht,"__esModule",{value:!0});var gt={};Object.defineProperty(gt,"__esModule",{value:!0}),gt.CollectionRegistry=gt.SchemaRegistry=void 0;gt.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}};gt.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 bt={};Object.defineProperty(bt,"__esModule",{value:!0}),function(e){var t=Pe&&Pe.__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=Pe&&Pe.__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(Ie,e),r(Te,e),r(Fe,e),r(Xe,e),r(Ye,e),r(Ke,e),r(Qe,e),r(it,e),r(st,e),r(ct,e),r(lt,e),r(dt,e),r(rt,e),r(ht,e),r(gt,e),r(bt,e)}(Be);function vt(e){let t=e.length;for(;--t>=0;)e[t]=0}const yt=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]),Nt=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]),kt=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),wt=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Ot=new Array(576);vt(Ot);const xt=new Array(60);vt(xt);const St=new Array(512);vt(St);const jt=new Array(256);vt(jt);const At=new Array(29);vt(At);const Mt=new Array(30);function Ct(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 Lt,Pt,Bt;function It(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}vt(Mt);const Tt=e=>e<256?St[e]:St[256+(e>>>7)],zt=(e,t)=>{e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255},Rt=(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<{Rt(e,r[2*t],r[2*t+1])},Et=(e,t)=>{let r=0;do{r|=1&e,e>>>=1,r<<=1}while(--t>0);return r>>>1},Dt=(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]=Et(n[t]++,t))}},$t=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},Ut=e=>{e.bi_valid>8?zt(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},qt=(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?Ft(e,i,t):(o=jt[i],Ft(e,o+256+1,t),a=yt[o],0!==a&&(i-=At[o],Rt(e,i,a)),n--,o=Tt(n),Ft(e,o,r),a=Nt[o],0!==a&&(n-=Mt[o],Rt(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--)Zt(e,r,a);c=o;do{a=e.heap[1],e.heap[1]=e.heap[e.heap_len--],Zt(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++,Zt(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,d,u,p,m,_,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++)d=e.heap[l],p=r[2*r[2*d+1]+1]+1,p>c&&(p=c,f++),r[2*d+1]=p,d>n||(e.bl_count[p]++,m=0,d>=s&&(m=a[d-s]),_=r[2*d],e.opt_len+=_*(p+m),o&&(e.static_len+=_*(i[2*d+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(d=e.bl_count[p];0!==d;)u=e.heap[--l],u>n||(r[2*u+1]!==p&&(e.opt_len+=(p-r[2*u+1])*r[2*u],r[2*u+1]=p),d--)}})(e,t),Dt(r,l,e.bl_count)},Gt=(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{Rt(e,0+(n?1:0),3),((e,t,r,n)=>{Ut(e),n&&(zt(e,r),zt(e,~r)),e.pending_buf.set(e.window.subarray(t,t+r),e.pending),e.pending+=r})(e,t,r,!0)};var Jt={_tr_init:e=>{Yt||((()=>{let e,t,r,n,i;const o=new Array(16);for(r=0,n=0;n<28;n++)for(At[n]=r,e=0;e<1<>=7;n<30;n++)for(Mt[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)),Wt(e,e.l_desc),Wt(e,e.d_desc),a=(e=>{let t;for(Gt(e,e.dyn_ltree,e.l_desc.max_code),Gt(e,e.dyn_dtree,e.d_desc.max_code),Wt(e,e.bl_desc),t=18;t>=3&&0===e.bl_tree[2*wt[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?Vt(e,t,r,n):4===e.strategy||o===i?(Rt(e,2+(n?1:0),3),Ht(e,Ot,xt)):(Rt(e,4+(n?1:0),3),((e,t,r,n)=>{let i;for(Rt(e,t-257,5),Rt(e,r-1,5),Rt(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*(jt[r]+256+1)]++,e.dyn_dtree[2*Tt(t)]++),e.last_lit===e.lit_bufsize-1),_tr_align:e=>{Rt(e,2,3),Ft(e,256,Ot),(e=>{16===e.bi_valid?(zt(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 Kt=(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 Qt=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 er=(e,t,r,n)=>{const i=Qt,o=n+r;e^=-1;for(let a=n;a>>8^i[255&(e^t[a])];return-1^e},tr={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"},rr={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:nr,_tr_stored_block:ir,_tr_flush_block:or,_tr_tally:ar,_tr_align:sr}=Jt,{Z_NO_FLUSH:cr,Z_PARTIAL_FLUSH:lr,Z_FULL_FLUSH:dr,Z_FINISH:ur,Z_BLOCK:pr,Z_OK:mr,Z_STREAM_END:_r,Z_STREAM_ERROR:fr,Z_DATA_ERROR:hr,Z_BUF_ERROR:gr,Z_DEFAULT_COMPRESSION:br,Z_FILTERED:vr,Z_HUFFMAN_ONLY:yr,Z_RLE:Nr,Z_FIXED:kr,Z_DEFAULT_STRATEGY:wr,Z_UNKNOWN:Or,Z_DEFLATED:xr}=rr,Sr=(e,t)=>(e.msg=tr[t],t),jr=e=>(e<<1)-(e>4?9:0),Ar=e=>{let t=e.length;for(;--t>=0;)e[t]=0};let Mr=(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))},Lr=(e,t)=>{or(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Cr(e.strm)},Pr=(e,t)=>{e.pending_buf[e.pending++]=t},Br=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t},Ir=(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=Kt(e.adler,t,i,r):2===e.state.wrap&&(e.adler=er(e.adler,t,i,r)),e.next_in+=i,e.total_in+=i,i)},Tr=(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,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&&(i>>=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=n,n>=s)break;m=l[o+a-1],_=l[o+a]}}}while((t=u[t&d])>c&&0!=--i);return a<=e.lookahead?a:e.lookahead},zr=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=Ir(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=Mr(e,e.ins_h,e.window[a+1]);e.insert&&(e.ins_h=Mr(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)},Rr=(e,t)=>{let r,n;for(;;){if(e.lookahead<262){if(zr(e),e.lookahead<262&&t===cr)return 1;if(0===e.lookahead)break}if(r=0,e.lookahead>=3&&(e.ins_h=Mr(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=Tr(e,r)),e.match_length>=3)if(n=ar(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=Mr(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=Mr(e,e.ins_h,e.window[e.strstart+1]);else n=ar(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(Lr(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<2?e.strstart:2,t===ur?(Lr(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(Lr(e,!1),0===e.strm.avail_out)?1:2},Fr=(e,t)=>{let r,n,i;for(;;){if(e.lookahead<262){if(zr(e),e.lookahead<262&&t===cr)return 1;if(0===e.lookahead)break}if(r=0,e.lookahead>=3&&(e.ins_h=Mr(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=ar(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=Mr(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&&(Lr(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if(n=ar(e,0,e.window[e.strstart-1]),n&&Lr(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=ar(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,t===ur?(Lr(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(Lr(e,!1),0===e.strm.avail_out)?1:2};function Er(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 Dr=[new Er(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(zr(e),0===e.lookahead&&t===cr)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,Lr(e,!1),0===e.strm.avail_out))return 1;if(e.strstart-e.block_start>=e.w_size-262&&(Lr(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===ur?(Lr(e,!0),0===e.strm.avail_out?3:4):(e.strstart>e.block_start&&(Lr(e,!1),e.strm.avail_out),1)})),new Er(4,4,8,4,Rr),new Er(4,5,16,8,Rr),new Er(4,6,32,32,Rr),new Er(4,4,16,16,Fr),new Er(8,16,32,32,Fr),new Er(8,16,128,128,Fr),new Er(8,32,128,256,Fr),new Er(32,128,258,1024,Fr),new Er(32,258,258,4096,Fr)];function $r(){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=xr,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),Ar(this.dyn_ltree),Ar(this.dyn_dtree),Ar(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),Ar(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),Ar(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 Ur=e=>{if(!e||!e.state)return Sr(e,fr);e.total_in=e.total_out=0,e.data_type=Or;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=cr,nr(t),mr},qr=e=>{const t=Ur(e);var r;return t===mr&&((r=e.state).window_size=2*r.w_size,Ar(r.head),r.max_lazy_match=Dr[r.level].max_lazy,r.good_match=Dr[r.level].good_length,r.nice_match=Dr[r.level].nice_length,r.max_chain_length=Dr[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},Zr=(e,t,r,n,i,o)=>{if(!e)return fr;let a=1;if(t===br&&(t=6),n<0?(a=0,n=-n):n>15&&(a=2,n-=16),i<1||i>9||r!==xr||n<8||n>15||t<0||t>9||o<0||o>kr)return Sr(e,fr);8===n&&(n=9);const s=new $r;return e.state=s,s.strm=e,s.wrap=a,s.gzhead=null,s.w_bits=n,s.w_size=1<Zr(e,t,xr,15,8,wr),deflateInit2:Zr,deflateReset:qr,deflateResetKeep:Ur,deflateSetHeader:(e,t)=>e&&e.state?2!==e.state.wrap?fr:(e.state.gzhead=t,mr):fr,deflate:(e,t)=>{let r,n;if(!e||!e.state||t>pr||t<0)return e?Sr(e,fr):fr;const i=e.state;if(!e.output||!e.input&&0!==e.avail_in||666===i.status&&t!==ur)return Sr(e,0===e.avail_out?gr:fr);i.strm=e;const o=i.last_flush;if(i.last_flush=t,42===i.status)if(2===i.wrap)e.adler=0,Pr(i,31),Pr(i,139),Pr(i,8),i.gzhead?(Pr(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)),Pr(i,255&i.gzhead.time),Pr(i,i.gzhead.time>>8&255),Pr(i,i.gzhead.time>>16&255),Pr(i,i.gzhead.time>>24&255),Pr(i,9===i.level?2:i.strategy>=yr||i.level<2?4:0),Pr(i,255&i.gzhead.os),i.gzhead.extra&&i.gzhead.extra.length&&(Pr(i,255&i.gzhead.extra.length),Pr(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(e.adler=er(e.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=69):(Pr(i,0),Pr(i,0),Pr(i,0),Pr(i,0),Pr(i,0),Pr(i,9===i.level?2:i.strategy>=yr||i.level<2?4:0),Pr(i,3),i.status=113);else{let t=xr+(i.w_bits-8<<4)<<8,r=-1;r=i.strategy>=yr||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,Br(i,t),0!==i.strstart&&(Br(i,e.adler>>>16),Br(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=er(e.adler,i.pending_buf,i.pending-r,r)),Cr(e),r=i.pending,i.pending!==i.pending_buf_size));)Pr(i,255&i.gzhead.extra[i.gzindex]),i.gzindex++;i.gzhead.hcrc&&i.pending>r&&(e.adler=er(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=er(e.adler,i.pending_buf,i.pending-r,r)),Cr(e),r=i.pending,i.pending===i.pending_buf_size)){n=1;break}n=i.gzindexr&&(e.adler=er(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=er(e.adler,i.pending_buf,i.pending-r,r)),Cr(e),r=i.pending,i.pending===i.pending_buf_size)){n=1;break}n=i.gzindexr&&(e.adler=er(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&&Cr(e),i.pending+2<=i.pending_buf_size&&(Pr(i,255&e.adler),Pr(i,e.adler>>8&255),e.adler=0,i.status=113)):i.status=113),0!==i.pending){if(Cr(e),0===e.avail_out)return i.last_flush=-1,mr}else if(0===e.avail_in&&jr(t)<=jr(o)&&t!==ur)return Sr(e,gr);if(666===i.status&&0!==e.avail_in)return Sr(e,gr);if(0!==e.avail_in||0!==i.lookahead||t!==cr&&666!==i.status){let r=i.strategy===yr?((e,t)=>{let r;for(;;){if(0===e.lookahead&&(zr(e),0===e.lookahead)){if(t===cr)return 1;break}if(e.match_length=0,r=ar(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(Lr(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===ur?(Lr(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(Lr(e,!1),0===e.strm.avail_out)?1:2})(i,t):i.strategy===Nr?((e,t)=>{let r,n,i,o;const a=e.window;for(;;){if(e.lookahead<=258){if(zr(e),e.lookahead<=258&&t===cr)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=ar(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=ar(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(Lr(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===ur?(Lr(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(Lr(e,!1),0===e.strm.avail_out)?1:2})(i,t):Dr[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),mr;if(2===r&&(t===lr?sr(i):t!==pr&&(ir(i,0,0,!1),t===dr&&(Ar(i.head),0===i.lookahead&&(i.strstart=0,i.block_start=0,i.insert=0))),Cr(e),0===e.avail_out))return i.last_flush=-1,mr}return t!==ur?mr:i.wrap<=0?_r:(2===i.wrap?(Pr(i,255&e.adler),Pr(i,e.adler>>8&255),Pr(i,e.adler>>16&255),Pr(i,e.adler>>24&255),Pr(i,255&e.total_in),Pr(i,e.total_in>>8&255),Pr(i,e.total_in>>16&255),Pr(i,e.total_in>>24&255)):(Br(i,e.adler>>>16),Br(i,65535&e.adler)),Cr(e),i.wrap>0&&(i.wrap=-i.wrap),0!==i.pending?mr:_r)},deflateEnd:e=>{if(!e||!e.state)return fr;const t=e.state.status;return 42!==t&&69!==t&&73!==t&&91!==t&&103!==t&&113!==t&&666!==t?Sr(e,fr):(e.state=null,113===t?Sr(e,hr):mr)},deflateSetDictionary:(e,t)=>{let r=t.length;if(!e||!e.state)return fr;const n=e.state,i=n.wrap;if(2===i||1===i&&42!==n.status||n.lookahead)return fr;if(1===i&&(e.adler=Kt(e.adler,t,r,0)),n.wrap=0,r>=n.w_size){0===i&&(Ar(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,zr(n);n.lookahead>=3;){let e=n.strstart,t=n.lookahead-2;do{n.ins_h=Mr(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,zr(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,mr},deflateInfo:"pako deflate (from Nodeca project)"};const Wr=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var Gr=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)Wr(r,t)&&(e[t]=r[t])}}return e},Xr=e=>{let t=0;for(let n=0,i=e.length;n=252?6:Df>=248?5:Df>=240?4:Df>=224?3:Df>=192?2:1;Vr[254]=Vr[254]=1;var Jr=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},Kr=(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&&Yr)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+Vr[e[r]]>t?r:t};var en=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 tn=Object.prototype.toString,{Z_NO_FLUSH:rn,Z_SYNC_FLUSH:nn,Z_FULL_FLUSH:on,Z_FINISH:an,Z_OK:sn,Z_STREAM_END:cn,Z_DEFAULT_COMPRESSION:ln,Z_DEFAULT_STRATEGY:dn,Z_DEFLATED:un}=rr;function pn(e){this.options=Gr({level:ln,method:un,chunkSize:16384,windowBits:15,memLevel:8,strategy:dn},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 en,this.strm.avail_out=0;let r=Hr.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(r!==sn)throw new Error(tr[r]);if(t.header&&Hr.deflateSetHeader(this.strm,t.header),t.dictionary){let e;if(e="string"==typeof t.dictionary?Jr(t.dictionary):"[object ArrayBuffer]"===tn.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,r=Hr.deflateSetDictionary(this.strm,e),r!==sn)throw new Error(tr[r]);this._dict_set=!0}}pn.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?an:rn,"string"==typeof e?r.input=Jr(e):"[object ArrayBuffer]"===tn.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===nn||o===on)&&r.avail_out<=6)this.onData(r.output.subarray(0,r.next_out)),r.avail_out=0;else{if(i=Hr.deflate(r,o),i===cn)return r.next_out>0&&this.onData(r.output.subarray(0,r.next_out)),i=Hr.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===sn;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},pn.prototype.onData=function(e){this.chunks.push(e)},pn.prototype.onEnd=function(e){e===sn&&(this.result=Xr(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var mn=function(e,t){let r,n,i,o,a,s,c,l,d,u,p,m,_,f,h,g,b,v,y,N,k,w,O,x;const S=e.state;r=e.next_in,O=e.input,n=r+(e.avail_in-5),i=e.next_out,x=e.output,o=i-(t-e.avail_out),a=i+(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,f=S.distcode,h=(1<>>24,p>>>=v,m-=v,v=b>>>16&255,0===v)x[i++]=65535&b;else{if(!(16&v)){if(0==(64&v)){b=_[(65535&b)+(p&(1<>>=v,m-=v),m<15&&(p+=O[r++]<>>24,p>>>=v,m-=v,v=b>>>16&255,!(16&v)){if(0==(64&v)){b=f[(65535&b)+(p&(1<s){e.msg="invalid distance too far back",S.mode=30;break e}if(p>>>=v,m-=v,v=i-o,N>v){if(v=N-v,v>l&&S.sane){e.msg="invalid distance too far back",S.mode=30;break e}if(k=0,w=u,0===d){if(k+=c-v,v2;)x[i++]=w[k++],x[i++]=w[k++],x[i++]=w[k++],y-=3;y&&(x[i++]=w[k++],y>1&&(x[i++]=w[k++]))}else{k=i-N;do{x[i++]=x[k++],x[i++]=x[k++],x[i++]=x[k++],y-=3}while(y>2);y&&(x[i++]=x[k++],y>1&&(x[i++]=x[k++]))}break}}break}}while(r>3,r-=y,m-=y<<3,p&=(1<{const c=s.bits;let l,d,u,p,m,_,f=0,h=0,g=0,b=0,v=0,y=0,N=0,k=0,w=0,O=0,x=null,S=0;const j=new Uint16Array(16),A=new Uint16Array(16);let M,C,L,P=null,B=0;for(f=0;f<=15;f++)j[f]=0;for(h=0;h=1&&0===j[b];b--);if(v>b&&(v=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(A[1]=0,f=1;f<15;f++)A[f+1]=A[f]+j[f];for(h=0;h852||2===e&&w>592)return 1;for(;;){M=f-N,a[h]<_?(C=0,L=a[h]):a[h]>_?(C=P[B+a[h]],L=x[S+a[h]]):(C=96,L=0),l=1<>N)+d]=M<<24|C<<16|L|0}while(0!==d);for(l=1<>=1;if(0!==l?(O&=l-1,O+=l):O=0,h++,0==--j[f]){if(f===b)break;f=t[r+a[h]]}if(f>v&&(O&p)!==u){for(0===N&&(N=v),m+=g,y=f-N,k=1<852||2===e&&w>592)return 1;u=O&p,i[u]=v<<24|y<<16|m-o|0}}return 0!==O&&(i[m+O]=f-N<<24|64<<16|0),s.bits=v,0};const{Z_FINISH:vn,Z_BLOCK:yn,Z_TREES:Nn,Z_OK:kn,Z_STREAM_END:wn,Z_NEED_DICT:On,Z_STREAM_ERROR:xn,Z_DATA_ERROR:Sn,Z_MEM_ERROR:jn,Z_BUF_ERROR:An,Z_DEFLATED:Mn}=rr,Cn=e=>(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24);function Ln(){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 Pn=e=>{if(!e||!e.state)return xn;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,kn},Bn=e=>{if(!e||!e.state)return xn;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,Pn(e)},In=(e,t)=>{let r;if(!e||!e.state)return xn;const n=e.state;return t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?xn:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=r,n.wbits=t,Bn(e))},Tn=(e,t)=>{if(!e)return xn;const r=new Ln;e.state=r,r.window=null;const n=In(e,t);return n!==kn&&(e.state=null),n};let zn,Rn,Fn=!0;const En=e=>{if(Fn){zn=new Int32Array(512),Rn=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(bn(1,e.lens,0,288,zn,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;bn(2,e.lens,0,32,Rn,0,e.work,{bits:5}),Fn=!1}e.lencode=zn,e.lenbits=9,e.distcode=Rn,e.distbits=5},Dn=(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.whaveTn(e,15),inflateInit2:Tn,inflate:(e,t)=>{let r,n,i,o,a,s,c,l,d,u,p,m,_,f,h,g,b,v,y,N,k,w,O=0;const x=new Uint8Array(4);let S,j;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 xn;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,d=r.bits,u=s,p=c,w=kn;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+=n[o++]<>>8&255,r.check=er(r.check,x,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)!==Mn){e.msg="unknown compression method",r.mode=30;break}if(l>>>=4,d-=4,k=8+(15&l),0===r.wbits)r.wbits=k;else if(k>r.wbits){e.msg="invalid window size",r.mode=30;break}r.dmax=1<>8&1),512&r.flags&&(x[0]=255&l,x[1]=l>>>8&255,r.check=er(r.check,x,2,0)),l=0,d=0,r.mode=3;case 3:for(;d<32;){if(0===s)break e;s--,l+=n[o++]<>>8&255,x[2]=l>>>16&255,x[3]=l>>>24&255,r.check=er(r.check,x,4,0)),l=0,d=0,r.mode=4;case 4:for(;d<16;){if(0===s)break e;s--,l+=n[o++]<>8),512&r.flags&&(x[0]=255&l,x[1]=l>>>8&255,r.check=er(r.check,x,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+=n[o++]<>>8&255,r.check=er(r.check,x,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&&(k=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),k)),512&r.flags&&(r.check=er(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{k=n[o+m++],r.head&&k&&r.length<65536&&(r.head.name+=String.fromCharCode(k))}while(k&&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+=n[o++]<>>=7&d,d-=7&d,r.mode=27;break}for(;d<3;){if(0===s)break e;s--,l+=n[o++]<>>=1,d-=1,3&l){case 0:r.mode=14;break;case 1:if(En(r),r.mode=20,t===Nn){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+=n[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===Nn)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(;d<14;){if(0===s)break e;s--,l+=n[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=bn(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=O>>>16&255,b=65535&O,!(h<=d);){if(0===s)break e;s--,l+=n[o++]<>>=h,d-=h,r.lens[r.have++]=b;else{if(16===b){for(j=h+2;d>>=h,d-=h,0===r.have){e.msg="invalid bit length repeat",r.mode=30;break}k=r.lens[r.have-1],m=3+(3&l),l>>>=2,d-=2}else if(17===b){for(j=h+3;d>>=h,d-=h,k=0,m=3+(7&l),l>>>=3,d-=3}else{for(j=h+7;d>>=h,d-=h,k=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++]=k}}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=bn(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=bn(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===Nn)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,mn(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,d=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;O=r.lencode[l&(1<>>24,g=O>>>16&255,b=65535&O,!(h<=d);){if(0===s)break e;s--,l+=n[o++]<>v)],h=O>>>24,g=O>>>16&255,b=65535&O,!(v+h<=d);){if(0===s)break e;s--,l+=n[o++]<>>=v,d-=v,r.back+=v}if(l>>>=h,d-=h,r.back+=h,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(j=r.extra;d>>=r.extra,d-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;O=r.distcode[l&(1<>>24,g=O>>>16&255,b=65535&O,!(h<=d);){if(0===s)break e;s--,l+=n[o++]<>v)],h=O>>>24,g=O>>>16&255,b=65535&O,!(v+h<=d);){if(0===s)break e;s--,l+=n[o++]<>>=v,d-=v,r.back+=v}if(l>>>=h,d-=h,r.back+=h,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(j=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),f=r.window}else f=i,_=a-r.offset,m=r.length;m>c&&(m=c),c-=m,r.length-=m;do{i[a++]=f[_++]}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(;d<32;){if(0===s)break e;s--,l|=n[o++]<{if(!e||!e.state)return xn;let t=e.state;return t.window&&(t.window=null),e.state=null,kn},inflateGetHeader:(e,t)=>{if(!e||!e.state)return xn;const r=e.state;return 0==(2&r.wrap)?xn:(r.head=t,t.done=!1,kn)},inflateSetDictionary:(e,t)=>{const r=t.length;let n,i,o;return e&&e.state?(n=e.state,0!==n.wrap&&11!==n.mode?xn:11===n.mode&&(i=1,i=Kt(i,t,r,0),i!==n.check)?Sn:(o=Dn(e,t,r,r),o?(n.mode=31,jn):(n.havedict=1,kn))):xn},inflateInfo:"pako inflate (from Nodeca project)"};var Un=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 qn=Object.prototype.toString,{Z_NO_FLUSH:Zn,Z_FINISH:Hn,Z_OK:Wn,Z_STREAM_END:Gn,Z_NEED_DICT:Xn,Z_STREAM_ERROR:Yn,Z_DATA_ERROR:Vn,Z_MEM_ERROR:Jn}=rr;function Kn(e){this.options=Gr({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 en,this.strm.avail_out=0;let r=$n.inflateInit2(this.strm,t.windowBits);if(r!==Wn)throw new Error(tr[r]);if(this.header=new Un,$n.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=Jr(t.dictionary):"[object ArrayBuffer]"===qn.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(r=$n.inflateSetDictionary(this.strm,t.dictionary),r!==Wn)))throw new Error(tr[r])}Kn.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?Hn:Zn,"[object ArrayBuffer]"===qn.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=$n.inflate(r,a),o===Xn&&i&&(o=$n.inflateSetDictionary(r,i),o===Wn?o=$n.inflate(r,a):o===Vn&&(o=Xn));r.avail_in>0&&o===Gn&&r.state.wrap>0&&0!==e[r.next_in];)$n.inflateReset(r),o=$n.inflate(r,a);switch(o){case Yn:case Vn:case Xn:case Jn:return this.onEnd(o),this.ended=!0,!1}if(s=r.avail_out,r.next_out&&(0===r.avail_out||o===Gn))if("string"===this.options.to){let e=Qr(r.output,r.next_out),t=r.next_out-e,i=Kr(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!==Wn||0!==s){if(o===Gn)return o=$n.inflateEnd(this.strm),this.onEnd(o),this.ended=!0,!0;if(0===r.avail_in)break}}return!0},Kn.prototype.onData=function(e){this.chunks.push(e)},Kn.prototype.onEnd=function(e){e===Wn&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=Xr(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var Qn,ei,ti={exports:{}},ri={exports:{}};Qn="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ei={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&ei.rotl(e,8)|4278255360&ei.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}},ri.exports=ei;var ni={utf8:{stringToBytes:function(e){return ni.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape(ni.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 _=i._ff,f=i._gg,h=i._hh,g=i._ii;for(m=0;m>>0,d=d+v>>>0,u=u+y>>>0,p=p+N>>>0}return e.endian([l,d,u,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,ti.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 si,ci,li=ti.exports;(ci=si||(si={})).UP="up",ci.DOWN="down",ci.NORTH="north",ci.EAST="east",ci.SOUTH="south",ci.WEST="west";const di={[si.UP]:[0,1,0],[si.DOWN]:[0,-1,0],[si.NORTH]:[0,0,-1],[si.EAST]:[1,0,0],[si.SOUTH]:[0,0,1],[si.WEST]:[-1,0,0]};var ui,pi,mi,_i,fi,hi,gi,bi,vi,yi,Ni,ki,wi,Oi,xi,Si;function ji(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 di[e]}}(si||(si={})),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,...si.normal(r))}}(ui||(ui={})),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}}(pi||(pi={}));class Ai{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=ji(e.value,"Name","string"),r=function(e,t){try{return e()}catch(r){return t}}((()=>ji(e.value,"Properties","compound")),{}),n=Object.keys(r).reduce(((e,t)=>Object.assign(Object.assign({},e),{[t]:ji(r,t,"string")})),{});return new Ai(t,n)}static fromJson(e){var t,r;const n=null!==(t=pi.readObject(e))&&void 0!==t?t:{},i=null!==(r=pi.readString(n.Name))&&void 0!==r?r:"minecraft:stone",o=pi.readMap(n.Properties,(e=>{var t;return null!==(t=pi.readString(e))&&void 0!==t?t:""}));return new Ai(i,o)}}Ai.AIR=new Ai("minecraft:air");class Mi{constructor(e){this.minY=e,this.storage=Array(Mi.SIZE),this.palette=[Ai.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:Ai.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}}Mi.WIDTH=16,Mi.SIZE=Mi.WIDTH*Mi.WIDTH*Mi.WIDTH;class Ci{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:Ai.AIR}setBlockState(e,t){const[r,n,i]=e,o=this.getSectionIndex(n);let a=this.sections[o];if(null===a){if(t.equals(Ai.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 Mi(this.minSection+e)),this.sections[e]}}function Li(e){return e*e}function Pi(e,t,r){return Math.max(t,Math.min(r,e))}function Bi(e,t,r){return t+e*(r-t)}function Ii(e,t,r,n,i,o){return Bi(t,Bi(e,r,n),Bi(e,i,o))}function Ti(e,t,r){return r<0?e:r>1?t:Bi(r,e,t)}function zi(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}}(mi||(mi={}));class Ri{constructor(e){this.seed=BigInt(0),this.setSeed(e)}fork(){return new Ri(this.nextLong())}setSeed(e){this.seed=e^Ri.MULTIPLIER&Ri.MODULUS_MASK}advance(){this.seed=this.seed*Ri.MULTIPLIER+Ri.INCREMENT&Ri.MODULUS_MASK}consume(e){for(let t=0;t>BigInt(Ri.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^Fi.SILVER_RATIO_64,r=t+Fi.GOLDEN_RATIO_64&BigInt("0xFFFFFFFFFFFFFFFF");return[Fi.mixStafford13(t),Fi.mixStafford13(r)]}static rotateLeft(e,t){return e<>BigInt(64)-t}setSeed(e){this.seed=Fi.upgradeSeedTo128bit(e)}fork(){return new Fi([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=Fi.getSeed(e,t,r)^this.seed[0];return new Fi([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){var t=this.next()&BigInt(4294967295);if(e){const a=BigInt(e);var r=t*a,n=r&BigInt(4294967295);if(n>BigInt(32);return Number(o)}var a=Number(t);return a>=2147483648&&(a-=4294967296),a}nextFloat(){return Number(this.nextBits(24))*Fi.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*Fi.DOUBLE_MULTIPLIER}parityConfigString(){return"seedLo: "+this.seed[0]+", seedHi: "+this.seed[1]}}Fi.SILVER_RATIO_64=BigInt("7640891576956012809"),Fi.GOLDEN_RATIO_64=BigInt("-7046029254386353131"),Fi.FLOAT_MULTIPLIER=1/Math.pow(2,24),Fi.DOUBLE_MULTIPLIER=11102230246251565e-32;class Ei{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)*Ei.F2,a=Math.floor(e+o),s=e-(a-(r=(a+(n=Math.floor(t+o)))*Ei.G2));let c,l;s>(i=t-(n-r))?(c=1,l=0):(c=0,l=1);const d=s-c+Ei.G2,u=i-l+Ei.G2,p=s-1+2*Ei.G2,m=i-1+2*Ei.G2,_=255&a,f=255&n,h=this.P(_+this.P(f))%12,g=this.P(_+c+this.P(f+l))%12,b=this.P(_+1+this.P(f+1))%12;return 70*(this.getCornerNoise3D(h,s,i,0,.5)+this.getCornerNoise3D(g,d,u,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),d=r-(a-s);let u,p,m,_,f,h;c>=l?l>=d?(u=1,p=0,m=0,_=1,f=1,h=0):c>=d?(u=1,p=0,m=0,_=1,f=0,h=1):(u=0,p=0,m=1,_=1,f=0,h=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),d=Math.floor(s),u=o-c,p=a-l,m=s-d;let _=0;if(0!==n){const e=i>=0&&i=0;n-=1)n0&&(n=this.maxLimitNoise.getOctaveNoise(c))&&(s+=n.sample(u,p,m,d,t*d)/o),o/=2}return Ti(a/512,s/512,i)/128}}(_i||(_i={})).fromJson=function(e){var t,r,n,i,o;const a=null!==(t=pi.readObject(e))&&void 0!==t?t:{};return{xzScale:null!==(r=pi.readNumber(a.xz_scale))&&void 0!==r?r:1,yScale:null!==(n=pi.readNumber(a.y_scale))&&void 0!==n?n:1,xzFactor:null!==(i=pi.readNumber(a.xz_factor))&&void 0!==i?i:80,yFactor:null!==(o=pi.readNumber(a.y_factor))&&void 0!==o?o:80}};class qi{constructor(e,{firstOctave:t,amplitudes:r}){this.first=new $i(e,t,r),this.second=new $i(e,t,r);let n=1/0,i=-1/0;for(let a=0;a{var t;return null!==(t=pi.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 Zi(t);const s=null!==(n=pi.readObject(t))&&void 0!==n?n:{},c=new Hi(r(s.coordinate)),l=null!==(i=pi.readArray(s.points,(e=>{var t;return null!==(t=pi.readObject(e))&&void 0!==t?t:{}})))&&void 0!==i?i:[];if(0===l.length)return new Zi(0);for(const d of l){const t=null!==(o=pi.readNumber(d.location))&&void 0!==o?o:0,n=e.fromJson(d.value,r),i=null!==(a=pi.readNumber(d.derivative))&&void 0!==a?a:0;c.addPoint(t,n,i)}return c}}(hi||(hi={}));class Zi{constructor(e){this.value=e}apply(){return this.value}toJson(){return this.value}}class Hi{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]})))}}}(gi||(gi={})).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=pi.readArray(e,(e=>pi.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 Li(this.temperature.distance(e.temperature))+Li(this.humidity.distance(e.humidity))+Li(this.continentalness.distance(e.continentalness))+Li(this.erosion.distance(e.erosion))+Li(this.depth.distance(e.depth))+Li(this.weirdness.distance(e.weirdness))+Li(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=pi.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=pi.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}(bi||(bi={}));class Wi{constructor(e){this.biome=e}getBiome(){return this.biome}static fromJson(e){var t,r;const n=null!==(t=pi.readObject(e))&&void 0!==t?t:{},i=null!==(r=pi.readString(n.biome))&&void 0!==r?r:"minecraft:the_void";return new Wi(i)}}class Gi{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=pi.readObject(e))&&void 0!==t?t:{};return new Gi(hi.fromJson(r.offset,this.EXTRACTOR),hi.fromJson(r.factor,this.EXTRACTOR),hi.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)+Gi.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 Hi(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 Hi(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 Hi(this.CONTINENTS).addPoint(.11,0).addPoint(.03,this.buildErosionJaggednessSpline(1,.5,0,0)).addPoint(.65,this.buildErosionJaggednessSpline(1,1,1,0));return new Gi(i,o,a)}static getErosionFactor(e,t){const r=new Hi(this.WEIRDNESS).addPoint(-.2,6.3).addPoint(.2,e),n=new Hi(this.EROSION).addPoint(-.6,r).addPoint(-.5,new Hi(this.WEIRDNESS).addPoint(-.05,6.3).addPoint(.05,2.67)).addPoint(-.35,r).addPoint(-.25,r).addPoint(-.1,new Hi(this.WEIRDNESS).addPoint(-.05,2.67).addPoint(.05,6.3)).addPoint(.03,r);if(t){const t=new Hi(this.WEIRDNESS).addPoint(0,e).addPoint(.1,.625),r=new Hi(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 Hi(this.RIDGES).addPoint(-.7,r).addPoint(-.15,1.37),i=new Hi(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(Bi(n,.6,1.5),s),l=this.buildMountainRidgeSplineWithPoints(Bi(n,.6,1),s),d=this.buildMountainRidgeSplineWithPoints(n,s),u=this.ridgeSpline(e-.15,.5*n,Bi(.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),_=this.ridgeSpline(e,i,i,t,r,.5),f=new Hi(this.RIDGES).addPoint(-1,e).addPoint(-.4,m).addPoint(0,r+.07),h=this.ridgeSpline(-.02,o,o,t,r,0),g=new Hi(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,f).addPoint(.55,f).addPoint(.58,_),g.addPoint(.7,h),g}static buildMountainRidgeSplineWithPoints(e,t){const r=new Hi(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 Hi(Gi.WEIRDNESS).addPoint(-.01,.63*e).addPoint(.01,.3*e)}}Gi.GLOBAL_OFFSET=-.50375,Gi.EXTRACTOR=e=>{var t;const r=null!==(t=pi.readString(e))&&void 0!==t?t:"continents";return Gi.extractor(r)},Gi.CONTINENTS=Gi.extractor("continents"),Gi.EROSION=Gi.extractor("erosion"),Gi.WEIRDNESS=Gi.extractor("weirdness"),Gi.RIDGES=Gi.extractor("ridges"),(vi||(vi={})).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}};class Xi{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=Xi.allocateSlice(e.cellCountY,e.cellCountXZ),this.slice1=Xi.allocateSlice(e.cellCountY,e.cellCountXZ)}static allocateSlice(e,t){const r=Array(t+1);for(let n=0;ne.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)}}(yi||(yi={})).create=function(e,t,r){return{offset:e,factor:t,jaggedness:r}},(Ni||(Ni={})).create=function(e,t,r){const n=t+e.getOffset(t,0,r),i=r+e.getOffset(r,t,0),o=e.getContinentalness(n,i),a=e.getWeirdness(n,i),s=e.getErosion(n,i);return{shiftedX:n,shiftedZ:i,continentalness:o,weirdness:a,erosion:s,terrainInfo:e.getTerrainInfo(n<<2,i<<2,o,a,s)}},(ki||(ki={})).fromJson=function(e){var t,r,n,i,o,a,s,c,l,d,u,p;const m=null!==(t=pi.readObject(e))&&void 0!==t?t:{};return{minY:null!==(r=pi.readInt(m.min_y))&&void 0!==r?r:0,height:null!==(n=pi.readInt(m.height))&&void 0!==n?n:256,xzSize:null!==(i=pi.readInt(m.size_horizontal))&&void 0!==i?i:1,ySize:null!==(o=pi.readInt(m.size_vertical))&&void 0!==o?o:1,densityFactor:null!==(a=pi.readNumber(m.density_factor))&&void 0!==a?a:0,densityOffset:null!==(s=pi.readNumber(m.density_offset))&&void 0!==s?s:0,sampling:_i.fromJson(m.sampling),topSlide:wi.fromJson(m.top_slide),bottomSlide:wi.fromJson(m.bottom_slide),terrainShaper:Gi.fromJson(m.terrain_shaper),useSimplexSurfaceNoise:null!==(c=pi.readBoolean(m.simplex_surface_noise))&&void 0!==c&&c,randomDensityOffset:null!==(l=pi.readBoolean(m.random_density_offset))&&void 0!==l&&l,islandNoiseOverride:null!==(d=pi.readBoolean(m.island_noise_override))&&void 0!==d&&d,isAmplified:null!==(u=pi.readBoolean(m.amplified))&&void 0!==u&&u,useLegacyRandom:null!==(p=pi.readBoolean(m.use_legacy_random))&&void 0!==p&&p}},function(e){e.fromJson=function(e){var t,r,n,i;const o=null!==(t=pi.readObject(e))&&void 0!==t?t:{};return{target:null!==(r=pi.readNumber(o.target))&&void 0!==r?r:0,size:null!==(n=pi.readInt(o.size))&&void 0!==n?n:0,offset:null!==(i=pi.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 Ti(e.target,t,n)}}(wi||(wi={}));class Vi{constructor(e,t,r,n,i,o,a=!1){if(this.cellWidth=e,this.cellHeight=t,this.cellCountY=r,this.settings=n,a){const r=new Ri(o),a=n.useLegacyRandom?new Ri(o):r.fork();this.blendedNoise=new Ui(a,n.sampling,e,t),r.consume(8),this.temperatureNoise=new qi(new Ri(o),i.temperature),this.humidityNoise=new qi(new Ri(o+BigInt(1)),i.humidity),this.continentalnessNoise=new qi(new Ri(o+BigInt(2)),i.continentalness),this.erosionNoise=new qi(new Ri(o+BigInt(3)),i.erosion),this.weirdnessNoise=new qi(new Ri(o+BigInt(4)),i.weirdness),this.offsetNoise=new qi(new Ri(o+BigInt(5)),i.shift),this.jaggedNoise=new qi(r.fork(),{firstOctave:-16,amplitudes:[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]})}else{const r=Fi.create(o).fork();this.blendedNoise=new Ui(r.forkWithHashOf("minecraft:terrain"),n.sampling,e,t),this.temperatureNoise=new qi(r.forkWithHashOf("minecraft:temperature"),i.temperature),this.humidityNoise=new qi(r.forkWithHashOf("minecraft:vegetation"),i.humidity),this.continentalnessNoise=new qi(r.forkWithHashOf("minecraft:continentalness"),i.continentalness),this.erosionNoise=new qi(r.forkWithHashOf("minecraft:erosion"),i.erosion),this.weirdnessNoise=new qi(r.forkWithHashOf("minecraft:ridge"),i.weirdness),this.offsetNoise=new qi(r.forkWithHashOf("minecraft:offset"),i.shift),this.jaggedNoise=new qi(r.forkWithHashOf("minecraft:jagged"),{firstOctave:-16,amplitudes:[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]})}this.shaper=n.terrainShaper,this.baseNoise=e=>{const t=e.createNoiseInterpolator(((t,r,n)=>this.calculateBaseNoise(t,r,n,e.getTerrainInfo(t>>2,n>>2))));return()=>t.sample()}}sample(e,t,r){const n=e+this.getOffset(e,0,r),i=r+this.getOffset(r,e,0),o=this.getContinentalness(n,i),a=this.getErosion(n,i),s=this.getWeirdness(n,i),c=this.shaper.offset(Gi.point(o,a,s));return this.target(e,t,r,n,i,o,a,s,c)}target(e,t,r,n,i,o,a,s,c){const l=t+this.getOffset(t,r,e),d=this.getTemperature(n,l,i),u=this.getHumidity(n,l,i),p=this.computeDimensionDensity(t<<2)+c;return bi.target(d,u,o,a,p,s)}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)}getTerrainInfo(e,t,r,n,i){const o=Gi.point(r,n,i);return yi.create(this.shaper.offset(o),this.shaper.factor(o),this.shaper.jaggedness(o))}makeBaseNoiseFiller(e,t){const r=this.baseNoise(e);return(e,n,i)=>{let o=r();return o=Pi(.64*o,-1,1),o=o/2-o*o*o/24,o+=t(e,n,i),o>0?null:Ai.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),s=n.factor*(n.offset+o+a);i+=s>0?4*s:s}return i=Pi(i,-64,64),i=this.applySlide(i,t/this.cellHeight),i=Pi(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){return(1-e/128)*this.settings.densityFactor+this.settings.densityOffset}applySlide(e,t){const r=t-Math.floor(this.settings.minY/this.cellHeight);return e=wi.apply(this.settings.topSlide,e,this.cellCountY-r),wi.apply(this.settings.bottomSlide,e,r)}}class Ji{constructor(e,t,r){this.biomeSource=t,this.settings=r,this.cellHeight=r.noise.ySize<<2,this.cellWidth=r.noise.xzSize<<2,this.cellCountXZ=Math.floor(16/this.cellWidth),this.cellCountY=Math.floor(r.noise.height/this.cellHeight),this.sampler=new Vi(this.cellWidth,this.cellHeight,this.cellCountY,r.noise,r.octaves,e,r.legacyRandomSource),this.materialRule=vi.fromList([(e,t,r,n)=>e.updateNoiseAndGenerateBaseState(t,r,n)])}fillBiomes(e){const t=Math.max(e.minY,this.settings.noise.minY),r=Math.min(e.maxY,this.settings.noise.minY+this.settings.noise.height),n=Math.floor(t/this.cellHeight);Math.floor((r-t)/this.cellHeight);const i=mi.minBlockX(e.pos),o=mi.minBlockZ(e.pos),a=new Yi(this.cellWidth,this.cellHeight,this.cellCountXZ,this.cellCountY,n,this.sampler,i,o,(()=>0));for(let s=0;sh))}}}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=Math.floor(r/this.cellHeight),o=Math.floor((n-r)/this.cellHeight),a=mi.minBlockX(e.pos),s=mi.minBlockZ(e.pos),c=new Yi(this.cellWidth,this.cellHeight,this.cellCountXZ,this.cellCountY,i,this.sampler,a,s,(()=>0));c.initializeForFirstCellX();for(let l=0;l=0;d-=1){c.selectCellYZ(d,r);for(let o=this.cellHeight-1;o>=0;o-=1){const u=(i+d)*this.cellHeight+o,p=15&u,m=e.getSectionIndex(u);e.getSectionIndex(n.minBlockY)!==m&&(n=e.getOrCreateSection(m));const _=o/this.cellHeight;c.updateForY(_);for(let e=0;e{var t,r,n;return{distance:null!==(t=pi.readInt(e.distance))&&void 0!==t?t:0,spread:null!==(r=pi.readInt(e.spread))&&void 0!==r?r:0,count:null!==(n=pi.readInt(e.count))&&void 0!==n?n:0}})),structures:pi.readMap(r.structures,(e=>{var t,r,n,i,o;return r=null!==(t=pi.readObject(e))&&void 0!==t?t:{},{spacing:null!==(n=pi.readInt(r.spacing))&&void 0!==n?n:0,separation:null!==(i=pi.readInt(r.separation))&&void 0!==i?i:0,salt:null!==(o=pi.readInt(r.salt))&&void 0!==o?o:0}}))}},(Si||(Si={})).fromJson=function(e){var t;const r=null!==(t=pi.readObject(e))&&void 0!==t?t:{};return{temperature:fi.fromJson(r.temperature),humidity:fi.fromJson(r.humidity),continentalness:fi.fromJson(r.continentalness),erosion:fi.fromJson(r.erosion),weirdness:fi.fromJson(r.weirdness),shift:fi.fromJson(r.shift)}};let Qi=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});Qi.decode();let eo=null;function to(e,t){return Qi.decode((null!==eo&&eo.buffer===Ki.memory.buffer||(eo=new Uint8Array(Ki.memory.buffer)),eo).subarray(e,e+t))}const ro=new Uint32Array(2),no=new BigInt64Array(ro.buffer);let io=null;function oo(){return null!==io&&io.buffer===Ki.memory.buffer||(io=new Int32Array(Ki.memory.buffer)),io}let ao=null;function so(){return null!==ao&&ao.buffer===Ki.memory.buffer||(ao=new Float64Array(Ki.memory.buffer)),ao}let co=0;function lo(e,t){const r=t(8*e.length);return so().set(e,r/8),co=e.length,r}let uo=null;function po(e,t){const r=t(4*e.length);return(null!==uo&&uo.buffer===Ki.memory.buffer||(uo=new Uint32Array(Ki.memory.buffer)),uo).set(e,r/4),co=e.length,r}function mo(e,t,r,n,i,o,a,s,c,l,d,u,p,m){var _=lo(e,Ki.__wbindgen_malloc),f=co,h=lo(t,Ki.__wbindgen_malloc),g=co,b=lo(r,Ki.__wbindgen_malloc),v=co,y=lo(n,Ki.__wbindgen_malloc),N=co,k=lo(i,Ki.__wbindgen_malloc),w=co,O=lo(o,Ki.__wbindgen_malloc),x=co,S=lo(a,Ki.__wbindgen_malloc),j=co,A=lo(s,Ki.__wbindgen_malloc),M=co,C=lo(c,Ki.__wbindgen_malloc),L=co,P=lo(l,Ki.__wbindgen_malloc),B=co,I=lo(d,Ki.__wbindgen_malloc),T=co,z=lo(u,Ki.__wbindgen_malloc),R=co,F=lo(p,Ki.__wbindgen_malloc),E=co,D=po(m,Ki.__wbindgen_malloc),$=co,U=Ki.biome_parameters(_,f,h,g,b,v,y,N,k,w,O,x,S,j,A,M,C,L,P,B,I,T,z,R,F,E,D,$);return bo.__wrap(U)}function _o(e,t,r,n,i,o,a,s,c,l,d,u,p){no[0]=e;const m=ro[0],_=ro[1];var f=lo(r,Ki.__wbindgen_malloc),h=co,g=lo(i,Ki.__wbindgen_malloc),b=co,v=lo(a,Ki.__wbindgen_malloc),y=co,N=lo(c,Ki.__wbindgen_malloc),k=co,w=lo(d,Ki.__wbindgen_malloc),O=co,x=lo(p,Ki.__wbindgen_malloc),S=co,j=Ki.climate_sampler(m,_,t,f,h,n,g,b,o,v,y,s,N,k,l,w,O,u,x,S);return vo.__wrap(j)}function fo(e,t){if(!(e instanceof t))throw new Error(`expected instance of ${t.name}`);return e.ptr}function ho(e,t,r,n,i,o,a,s,c,l,d){try{const h=Ki.__wbindgen_add_to_stack_pointer(-16);fo(e,bo),fo(t,vo),Ki.multi_noise(h,e.ptr,t.ptr,r,n,i,o,a,s,c,l,d);var u=oo()[h/4+0],p=oo()[h/4+1],m=(_=u,f=p,oo().subarray(_/4,_/4+f)).slice();return Ki.__wbindgen_free(u,4*p),m}finally{Ki.__wbindgen_add_to_stack_pointer(16)}var _,f}function go(e,t,r,n,i,o,a,s,c,l){try{const f=Ki.__wbindgen_add_to_stack_pointer(-16);fo(e,vo),Ki.climate_noise(f,e.ptr,t,r,n,i,o,a,s,c,l);var d=oo()[f/4+0],u=oo()[f/4+1],p=(m=d,_=u,so().subarray(m/8,m/8+_)).slice();return Ki.__wbindgen_free(d,8*u),p}finally{Ki.__wbindgen_add_to_stack_pointer(16)}var m,_}class bo{static __wrap(e){const t=Object.create(bo.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();Ki.__wbg_parameterlist_free(e)}}class vo{static __wrap(e){const t=Object.create(vo.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();Ki.__wbg_sampler_free(e)}}async function yo(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(to(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 Ki=r.exports,yo.__wbindgen_wasm_module=n,Ki}var No="/assets/deepslate_rs_bg.4990c219.wasm",ko=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]=wo(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]=wo(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())}}}}(Ao);var Mo={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initPredicatesSchemas=e.LocationFields=void 0;const t=Be,r=Ao;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"}))}}(Mo),Object.defineProperty(jo,"__esModule",{value:!0}),jo.initAdvancementSchemas=void 0;const Co=Be,Lo=Ao,Po=Mo;jo.initAdvancementSchemas=function(e,t){const r=Co.Reference.bind(void 0,e),n=Co.StringNode.bind(void 0,t);e.register("advancement",Co.Mod(Co.ObjectNode({display:Co.Opt(Co.Mod(Co.ObjectNode({icon:Co.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),nbt:Co.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:r("text_component"),description:r("text_component"),background:Co.Opt(n()),frame:Co.Opt(n({enum:["task","challenge","goal"]})),show_toast:Co.Opt(Co.BooleanNode()),announce_to_chat:Co.Opt(Co.BooleanNode()),hidden:Co.Opt(Co.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:Co.Opt(n({validator:"resource",params:{pool:"$advancement"}})),criteria:Co.MapNode(n(),r("advancement_criteria")),requirements:Co.Opt(Co.ListNode(Co.ListNode(n()))),rewards:Co.Opt(Co.ObjectNode({function:Co.Opt(n({validator:"resource",params:{pool:"$function"}})),loot:Co.Opt(Co.ListNode(n({validator:"resource",params:{pool:"$loot_table"}}))),recipes:Co.Opt(Co.ListNode(n({validator:"resource",params:{pool:"$recipe"}}))),experience:Co.Opt(Co.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",Co.ObjectNode({trigger:n({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:Co.Opt(Co.ObjectNode({[Co.Switch]:["pop",{push:"trigger"}],[Co.Case]:{"minecraft:bee_nest_destroyed":{block:Co.Opt(n({validator:"resource",params:{pool:"block"}})),num_bees_inside:Co.Opt(Co.NumberNode({integer:!0})),item:Co.Opt(r("item_predicate"))},"minecraft:bred_animals":{parent:Co.Opt(r("entity_predicate")),partner:Co.Opt(r("entity_predicate")),child:Co.Opt(r("entity_predicate"))},"minecraft:brewed_potion":{potion:Co.Opt(n({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:Co.Opt(n({enum:"dimension"})),to:Co.Opt(n({enum:"dimension"}))},"minecraft:channeled_lightning":{victims:Co.Opt(Co.ListNode(Co.Opt(r("entity_predicate"))))},"minecraft:construct_beacon":{level:Co.Opt(Lo.Range())},"minecraft:consume_item":{item:Co.Opt(r("item_predicate"))},"minecraft:cured_zombie_villager":{villager:Co.Opt(r("entity_predicate")),zombie:Co.Opt(r("entity_predicate"))},"minecraft:effects_changed":{effects:Co.Opt(Co.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),r("status_effect_predicate")))},"minecraft:enter_block":{block:Co.Opt(n({validator:"resource",params:{pool:"block"}})),state:Co.Opt(Co.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:Co.Opt(Lo.Range()),item:Co.Opt(r("item_predicate"))},"minecraft:entity_hurt_player":{damage:Co.Opt(r("damage_predicate"))},"minecraft:entity_killed_player":{entity:Co.Opt(r("entity_predicate")),killing_blow:Co.Opt(r("damage_source_predicate"))},"minecraft:filled_bucket":{item:Co.Opt(r("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:Co.Opt(r("entity_predicate")),item:Co.Opt(r("item_predicate"))},"minecraft:hero_of_the_village":Po.LocationFields,"minecraft:inventory_changed":{slots:Co.Opt(Co.ObjectNode({empty:Co.Opt(Lo.Range()),occupied:Co.Opt(Lo.Range()),full:Co.Opt(Lo.Range())})),items:Co.Opt(Co.ListNode(r("item_predicate")))},"minecraft:item_durability_changed":{delta:Co.Opt(Lo.Range()),durability:Co.Opt(Lo.Range()),item:Co.Opt(r("item_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:Co.Opt(Lo.Range()),victims:Co.Opt(Co.ListNode(Co.Opt(r("entity_predicate"))))},"minecraft:levitation":{distance:Co.Opt(Lo.Range()),duration:Co.Opt(Lo.Range())},"minecraft:location":Po.LocationFields,"minecraft:nether_travel":{distance:Co.Opt(Lo.Range()),entered:Co.Opt(r("location_predicate")),exited:Co.Opt(r("location_predicate"))},"minecraft:placed_block":{block:Co.Opt(n({validator:"resource",params:{pool:"block"}})),state:Co.Opt(Co.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:Co.Opt(r("item_predicate")),location:Co.Opt(r("location_predicate"))},"minecraft:player_hurt_entity":{damage:Co.Opt(r("damage_predicate")),entity:Co.Opt(r("entity_predicate"))},"minecraft:player_killed_entity":{entity:Co.Opt(r("entity_predicate")),killing_blow:Co.Opt(r("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:n({validator:"resource",params:{pool:"$recipe"}})},"minecraft:safely_harvest_honey":{block:Co.Opt(Co.ObjectNode({block:Co.Opt(n({validator:"resource",params:{pool:"block"}})),tag:Co.Opt(n({validator:"resource",params:{pool:"$tag/block"}}))})),item:Co.Opt(r("item_predicate"))},"minecraft:slept_in_bed":Po.LocationFields,"minecraft:slide_down_block":{block:Co.Opt(n({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:Co.Opt(r("item_predicate"))},"minecraft:summoned_entity":{entity:Co.Opt(r("entity_predicate"))},"minecraft:tame_animal":{entity:Co.Opt(r("entity_predicate"))},"minecraft:used_ender_eye":{distance:Co.Opt(Lo.Range())},"minecraft:used_totem":{item:Co.Opt(r("item_predicate"))},"minecraft:villager_trade":{villager:Co.Opt(r("entity_predicate")),item:Co.Opt(r("item_predicate"))},"minecraft:voluntary_exile":Po.LocationFields}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var Bo={};Object.defineProperty(Bo,"__esModule",{value:!0}),Bo.initConditionSchemas=void 0;const Io=Be,To=Ao;Bo.initConditionSchemas=function(e,t){const r=Io.Reference.bind(void 0,e),n=Io.StringNode.bind(void 0,t);e.register("predicate",Io.ObjectOrList(r("condition"),{choiceContext:"condition"})),e.register("condition",Io.Mod(Io.ObjectNode({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[Io.Switch]:[{push:"condition"}],[Io.Case]:To.ConditionCases},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var zo={},Ro={};Object.defineProperty(Ro,"__esModule",{value:!0}),Ro.LootFunctions=Ro.LootConditions=Ro.LootCopySources=Ro.LootEntitySources=Ro.LootTableTypes=void 0,Ro.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]}]]),Ro.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Ro.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Ro.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",[]]]),Ro.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(zo,"__esModule",{value:!0}),zo.initLootTableSchemas=void 0;const Fo=Be,Eo=Ro,Do=Ao;zo.initLootTableSchemas=function(e,t){const r=Fo.Reference.bind(void 0,e),n=Fo.StringNode.bind(void 0,t),i={conditions:Fo.Opt(Fo.ListNode(r("loot_condition")))},o=s({functions:Fo.Opt(Fo.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 Eo.LootTableTypes){const e=[...a,...s];i.push({match:e=>e.getModel().get(new Fo.Path(["type"]))===t,node:n(o(e))})}return i.push({match:e=>!0,node:n(r)}),Fo.SwitchNode(i)}const l=a(Eo.LootConditions,"loot_condition_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),d=a(Eo.LootFunctions,"loot_function_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),u=a(Eo.LootEntitySources,"entity_source",(e=>n({enum:e}))),p=a(Eo.LootCopySources,"copy_source",(e=>n({enum:e})));e.register("loot_table",Fo.Mod(Fo.ObjectNode({type:Fo.Opt(n({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:Fo.Opt(Fo.ListNode(Fo.Mod(Fo.ObjectNode(s({rolls:Do.Range({allowBinomial:!0,integer:!0}),bonus_rolls:Fo.Opt(Do.Range({integer:!0})),entries:Fo.ListNode(r("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:Fo.Opt(Fo.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",Fo.Mod(Fo.ObjectNode({type:n({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:Fo.Opt(Fo.Mod(Fo.NumberNode({integer:!0,min:1}),m)),quality:Fo.Opt(Fo.Mod(Fo.NumberNode({integer:!0}),m)),[Fo.Switch]:[{push:"type"}],[Fo.Case]:{"minecraft:alternatives":s({children:Fo.ListNode(r("loot_entry"))},o),"minecraft:dynamic":s({name:n()},o),"minecraft:group":s({children:Fo.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:Fo.ListNode(r("loot_entry"))},o),"minecraft:tag":s({name:n({validator:"resource",params:{pool:"$tag/item"}}),expand:Fo.Opt(Fo.BooleanNode())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",Fo.Mod(Fo.ObjectNode({function:d,[Fo.Switch]:[{push:"function"}],[Fo.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:Fo.Mod(Fo.ObjectNode({bonusMultiplier:Fo.Mod(Fo.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:Fo.Mod(Fo.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:Fo.Mod(Fo.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:Fo.ListNode(Fo.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:Fo.ListNode(n({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:Fo.Opt(Fo.ListNode(n({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:Do.Range({allowBinomial:!0}),treasure:Fo.Opt(Fo.BooleanNode())},"minecraft:exploration_map":{destination:Fo.Opt(n({enum:"structure_feature"})),decoration:Fo.Opt(n({enum:"map_decoration"})),zoom:Fo.Opt(Fo.NumberNode({integer:!0})),search_radius:Fo.Opt(Fo.NumberNode({integer:!0})),skip_existing_chunks:Fo.Opt(Fo.BooleanNode())},"minecraft:fill_player_head":{entity:u},"minecraft:limit_count":{limit:Do.Range({bounds:!0})},"minecraft:looting_enchant":{count:Do.Range({bounds:!0}),limit:Fo.Opt(Fo.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:Fo.ListNode(r("attribute_modifier"))},"minecraft:set_contents":{entries:Fo.ListNode(r("loot_entry"))},"minecraft:set_count":{count:Do.Range({allowBinomial:!0})},"minecraft:set_damage":{damage:Do.Range({forceRange:!0})},"minecraft:set_loot_table":{name:n({validator:"resource",params:{pool:"$loot_table"}}),seed:Fo.Opt(Fo.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:Fo.Opt(u),lore:Fo.ListNode(r("text_component")),replace:Fo.Opt(Fo.BooleanNode())},"minecraft:set_name":{entity:Fo.Opt(u),name:Fo.Opt(r("text_component"))},"minecraft:set_nbt":{tag:n({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:Fo.Opt(Fo.ListNode(Fo.ObjectNode({type:n({validator:"resource",params:{pool:"mob_effect"}}),duration:Do.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",Fo.Mod(Fo.ObjectNode({condition:l,[Fo.Switch]:[{push:"condition"}],[Fo.Case]:c(s({},Do.ConditionCases),{"minecraft:entity_properties":{entity:u,predicate:r("entity_predicate")},"minecraft:entity_scores":{entity:u,scores:Fo.MapNode(n({validator:"objective"}),Do.Range({bounds:!0}))}})},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",Fo.Mod(Fo.ObjectNode({attribute:n({validator:"resource",params:{pool:"attribute"}}),name:n(),amount:Do.Range({bounds:!0}),operation:n({enum:["addition","multiply_base","multiply_total"]}),slot:Fo.StringOrList(n({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var $o={};Object.defineProperty($o,"__esModule",{value:!0}),$o.initPackMcmetaSchemas=void 0;const Uo=Be;$o.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",Uo.Mod(Uo.ObjectNode({pack:Uo.Mod(Uo.ObjectNode({pack_format:Uo.Mod(Uo.NumberNode({integer:!0,min:5,max:5}),{default:()=>5}),description:Uo.Reference(e,"text_component")}),{default:()=>({pack_format:5,description:""})})}),{default:()=>({pack:{pack_format:5,description:""}})}))};var qo={};Object.defineProperty(qo,"__esModule",{value:!0}),qo.initRecipeSchemas=void 0;const Zo=Be;qo.initRecipeSchemas=function(e,t){const r=Zo.Reference.bind(void 0,e),n=Zo.StringNode.bind(void 0,t);e.register("recipe",Zo.Mod(Zo.ObjectNode({type:n({validator:"resource",params:{pool:"recipe_serializer"}}),[Zo.Switch]:[{push:"type"}],[Zo.Case]:{"minecraft:crafting_shaped":{group:Zo.Opt(n({enum:"recipe_group",additional:!0})),pattern:Zo.ListNode(n()),key:Zo.MapNode(n(),r("recipe_ingredient")),result:r("recipe_result")},"minecraft:crafting_shapeless":{group:Zo.Opt(n()),ingredients:Zo.ListNode(r("recipe_ingredient")),result:r("recipe_result")},"minecraft:smelting":{group:Zo.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Zo.Opt(Zo.NumberNode()),cookingtime:Zo.Opt(Zo.Mod(Zo.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:Zo.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Zo.Opt(Zo.NumberNode()),cookingtime:Zo.Opt(Zo.Mod(Zo.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:Zo.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Zo.Opt(Zo.NumberNode()),cookingtime:Zo.Opt(Zo.Mod(Zo.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:Zo.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Zo.Opt(Zo.NumberNode()),cookingtime:Zo.Opt(Zo.Mod(Zo.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:Zo.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),count:Zo.NumberNode({integer:!0})},"minecraft:smithing":{group:Zo.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",Zo.Mod(Zo.ChoiceNode([{type:"object",node:r("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:Zo.ListNode(r("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",Zo.Mod(Zo.ObjectNode({item:Zo.Opt(n({validator:"resource",params:{pool:"item"}})),tag:Zo.Opt(n({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",Zo.Mod(Zo.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),count:Zo.Opt(Zo.Mod(Zo.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var Ho={};Object.defineProperty(Ho,"__esModule",{value:!0}),Ho.initTagsSchemas=void 0;const Wo=Be;Ho.initTagsSchemas=function(e,t){const r=Wo.StringNode.bind(void 0,t),n=e=>Wo.Mod(Wo.ObjectNode({replace:Wo.Opt(Wo.BooleanNode()),values:Wo.ListNode(Wo.ChoiceNode([{type:"string",node:r({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:Wo.ObjectNode({id:r({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:Wo.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 Go={};Object.defineProperty(Go,"__esModule",{value:!0}),Go.initTextComponentSchemas=void 0;const Xo=Be;Go.initTextComponentSchemas=function(e,t){const r=Xo.Reference.bind(void 0,e),n=Xo.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",Xo.Mod(Xo.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:Xo.NumberNode(),change:e=>{const t=parseFloat(i(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:Xo.BooleanNode(),change:e=>{const t=i(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={bold:Xo.Opt(Xo.BooleanNode()),italic:Xo.Opt(Xo.BooleanNode()),underlined:Xo.Opt(Xo.BooleanNode()),strikethrough:Xo.Opt(Xo.BooleanNode()),obfuscated:Xo.Opt(Xo.BooleanNode()),insertion:Xo.Opt(n()),clickEvent:Xo.Opt(Xo.ObjectNode({action:n({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[Xo.Switch]:[{push:"action"}],[Xo.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:Xo.Opt(Xo.ObjectNode({action:n({enum:["show_text","show_item","show_entity"]}),[Xo.Switch]:[{push:"action"}],[Xo.Case]:{show_text:{value:Xo.Opt(r("text_component"))},show_item:{value:Xo.Opt(n({validator:"nbt",params:{module:"util::InventoryItem"}}))},show_entity:{value:Xo.Opt(Xo.ObjectNode({name:Xo.Opt(n()),type:Xo.Opt(n()),id:Xo.Opt(n())}))}}})),extra:Xo.Opt(r("text_component_list"))};e.register("text_component_object",Xo.Mod(Xo.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:Xo.ObjectNode(s({text:n()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:Xo.ObjectNode(s({translate:n(),with:Xo.Opt(r("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:Xo.ObjectNode(s({score:Xo.ObjectNode({name:n({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:n({validator:"objective"}),value:Xo.Opt(n())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:Xo.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:Xo.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:Xo.ObjectNode(s({nbt:n({validator:"nbt_path"}),block:Xo.Opt(n({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:Xo.Opt(n({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:Xo.Opt(n({validator:"resource",params:{pool:"$storage"}})),interpret:Xo.Opt(Xo.BooleanNode())},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",Xo.Mod(Xo.ListNode(r("text_component")),{default:()=>[{text:""}]}))},Object.defineProperty(So,"__esModule",{value:!0}),So.initSchemas=void 0;const Yo=jo,Vo=Ao,Jo=Bo,Ko=zo,Qo=$o,ea=Mo,ta=qo,ra=Ho,na=Go;So.initSchemas=function(e,t){Vo.initCommonSchemas(e,t),ea.initPredicatesSchemas(e,t),Yo.initAdvancementSchemas(e,t),Jo.initConditionSchemas(e,t),Ko.initLootTableSchemas(e,t),Qo.initPackMcmetaSchemas(e,t),ta.initRecipeSchemas(e,t),ra.initTagsSchemas(e,t),na.initTextComponentSchemas(e,t)};var ia=Pe&&Pe.__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]}),oa=Pe&&Pe.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),aa=Pe&&Pe.__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)&&ia(t,e,r);return oa(t,e),t};Object.defineProperty(Oo,"__esModule",{value:!0});var sa=Oo.getSchemas=Oo.getCollections=void 0;const ca=Be,la=xo,da=So;var ua=Oo.lootContext=aa(Ro);var pa=Oo.getCollections=function(){const e=new ca.CollectionRegistry;return la.initCollections(e),e};sa=Oo.getSchemas=function(e){const t=new ca.SchemaRegistry;return da.initSchemas(t,e),t};var ma=Object.freeze(Object.assign(Object.create(null),Oo,{[Symbol.toStringTag]:"Module",get getSchemas(){return sa},get getCollections(){return pa},lootContext:ua,default:Oo})),_a={},fa={};Object.defineProperty(fa,"__esModule",{value:!0}),fa.initCollections=void 0,fa.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 ha={},ga={},ba={};!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=Be;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"}}}})}}(ba),Object.defineProperty(ga,"__esModule",{value:!0}),ga.initAdvancementSchemas=void 0;const va=Be,ya=ba;ga.initAdvancementSchemas=function(e,t){const r=va.Reference.bind(void 0,e),n=va.StringNode.bind(void 0,t),i=va.ChoiceNode([{type:"object",node:va.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:va.ListNode(r("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",va.Mod(va.ObjectNode({display:va.Opt(va.Mod(va.ObjectNode({icon:va.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),nbt:va.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:r("text_component"),description:r("text_component"),background:va.Opt(n()),frame:va.Opt(n({enum:["task","challenge","goal"]})),show_toast:va.Opt(va.BooleanNode()),announce_to_chat:va.Opt(va.BooleanNode()),hidden:va.Opt(va.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:va.Opt(n({validator:"resource",params:{pool:"$advancement"}})),criteria:va.MapNode(n(),r("advancement_criteria")),requirements:va.Opt(va.ListNode(va.ListNode(n()))),rewards:va.Opt(va.ObjectNode({function:va.Opt(n({validator:"resource",params:{pool:"$function"}})),loot:va.Opt(va.ListNode(n({validator:"resource",params:{pool:"$loot_table"}}))),recipes:va.Opt(va.ListNode(n({validator:"resource",params:{pool:"$recipe"}}))),experience:va.Opt(va.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",va.ObjectNode({trigger:n({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:va.Opt(va.ObjectNode({player:va.Mod(i,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[va.Switch]:["pop",{push:"trigger"}],[va.Case]:{"minecraft:bee_nest_destroyed":{block:va.Opt(n({validator:"resource",params:{pool:"block"}})),num_bees_inside:va.Opt(va.NumberNode({integer:!0})),item:va.Opt(r("item_predicate"))},"minecraft:bred_animals":{parent:i,partner:i,child:i},"minecraft:brewed_potion":{potion:va.Opt(n({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:va.Opt(n({validator:"resource",params:{pool:"$dimension"}})),to:va.Opt(n({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:va.Opt(va.ListNode(i))},"minecraft:construct_beacon":{level:va.Opt(ya.Range())},"minecraft:consume_item":{item:va.Opt(r("item_predicate"))},"minecraft:cured_zombie_villager":{villager:i,zombie:i},"minecraft:effects_changed":{effects:va.Opt(va.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),r("status_effect_predicate")))},"minecraft:enter_block":{block:va.Opt(n({validator:"resource",params:{pool:"block"}})),state:va.Opt(va.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:va.Opt(ya.Range()),item:va.Opt(r("item_predicate"))},"minecraft:entity_hurt_player":{damage:va.Opt(r("damage_predicate"))},"minecraft:entity_killed_player":{entity:i,killing_blow:va.Opt(r("damage_source_predicate"))},"minecraft:filled_bucket":{item:va.Opt(r("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:i,item:va.Opt(r("item_predicate"))},"minecraft:hero_of_the_village":{location:va.Opt(r("location_predicate"))},"minecraft:inventory_changed":{slots:va.Opt(va.ObjectNode({empty:va.Opt(ya.Range()),occupied:va.Opt(ya.Range()),full:va.Opt(ya.Range())})),items:va.Opt(va.ListNode(r("item_predicate")))},"minecraft:item_durability_changed":{delta:va.Opt(ya.Range()),durability:va.Opt(ya.Range()),item:va.Opt(r("item_predicate"))},"minecraft:item_used_on_block":{item:va.Opt(r("item_predicate")),location:va.Opt(r("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:va.Opt(ya.Range()),victims:va.Opt(va.ListNode(i))},"minecraft:levitation":{distance:va.Opt(ya.Range()),duration:va.Opt(ya.Range())},"minecraft:location":{location:va.Opt(r("location_predicate"))},"minecraft:nether_travel":{distance:va.Opt(ya.Range()),entered:va.Opt(r("location_predicate")),exited:va.Opt(r("location_predicate"))},"minecraft:placed_block":{block:va.Opt(n({validator:"resource",params:{pool:"block"}})),state:va.Opt(va.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:va.Opt(r("item_predicate")),location:va.Opt(r("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:n({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:va.Opt(r("damage_predicate")),entity:i},"minecraft:player_interacted_with_entity":{item:va.Opt(r("item_predicate")),entity:i},"minecraft:player_killed_entity":{entity:i,killing_blow:va.Opt(r("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:n({validator:"resource",params:{pool:"$recipe"}})},"minecraft:slept_in_bed":{location:va.Opt(r("location_predicate"))},"minecraft:slide_down_block":{block:va.Opt(n({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:va.Opt(r("item_predicate"))},"minecraft:summoned_entity":{entity:i},"minecraft:tame_animal":{entity:i},"minecraft:target_hit":{projectile:i,shooter:i,signal_strength:va.Opt(ya.Range({integer:!0}))},"minecraft:thrown_item_picked_up_by_entity":{entity:va.Opt(r("entity_predicate")),item:va.Opt(r("item_predicate"))},"minecraft:used_ender_eye":{distance:va.Opt(ya.Range())},"minecraft:used_totem":{item:va.Opt(r("item_predicate"))},"minecraft:villager_trade":{villager:va.Opt(r("entity_predicate")),item:va.Opt(r("item_predicate"))},"minecraft:voluntary_exile":{location:r("location_predicate")}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var Na={};Object.defineProperty(Na,"__esModule",{value:!0}),Na.initConditionSchemas=void 0;const ka=Be,wa=ba;Na.initConditionSchemas=function(e,t){const r=ka.Reference.bind(void 0,e),n=ka.StringNode.bind(void 0,t);e.register("predicate",ka.ObjectOrList(r("condition"),{choiceContext:"condition"})),e.register("condition",ka.Mod(ka.ObjectNode({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[ka.Switch]:[{push:"condition"}],[ka.Case]:wa.ConditionCases},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var Oa={};Object.defineProperty(Oa,"__esModule",{value:!0}),Oa.initDimensionSchemas=void 0;const xa=Be,Sa=ba;Oa.initDimensionSchemas=function(e,t){const r=xa.Reference.bind(void 0,e),n=xa.StringNode.bind(void 0,t),i=e=>xa.Mod(e,{enabled:e=>void 0===e.push("preset").get()});e.register("dimension",xa.Mod(xa.ObjectNode({type:Sa.DimensionTypePresets(r("dimension_type")),generator:xa.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[xa.Switch]:[{push:"type"}],[xa.Case]:{"minecraft:noise":{seed:xa.NumberNode({integer:!0}),settings:Sa.NoiseSettingsPresets(r("noise_settings")),biome_source:xa.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/biome_source"}}),[xa.Switch]:[{push:"type"}],[xa.Case]:{"minecraft:fixed":{biome:n({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{seed:xa.NumberNode({integer:!0}),preset:xa.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(xa.Mod(xa.ListNode(r("generator_biome")),{default:()=>[{biome:"minecraft:plains"}]}))},"minecraft:checkerboard":{scale:xa.Opt(xa.NumberNode({integer:!0,min:0,max:62})),biomes:xa.ListNode(n({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:xa.NumberNode({integer:!0})},"minecraft:vanilla_layered":{seed:xa.NumberNode({integer:!0}),large_biomes:xa.Opt(xa.BooleanNode()),legacy_biome_init_layer:xa.Opt(xa.BooleanNode())}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:xa.ObjectNode({biome:xa.Opt(n({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"}}}})),e.register("generator_biome",xa.Mod(xa.ObjectNode({biome:n({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:xa.ObjectNode({altitude:xa.NumberNode(),temperature:xa.NumberNode(),humidity:xa.NumberNode(),weirdness:xa.NumberNode(),offset:xa.NumberNode()})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})})),e.register("generator_biome_noise",xa.Mod(xa.ObjectNode({firstOctave:xa.NumberNode({integer:!0}),amplitudes:xa.ListNode(xa.NumberNode())},{context:"generator_biome_noise"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})}))};var ja={};Object.defineProperty(ja,"__esModule",{value:!0}),ja.initDimensionTypeSchemas=void 0;const Aa=Be,Ma=ba;ja.initDimensionTypeSchemas=function(e,t){const r=Aa.StringNode.bind(void 0,t);e.register("dimension_type",Aa.Mod(Aa.ObjectNode({name:Aa.Mod(r({validator:"resource",params:{pool:"$dimension_type",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),ultrawarm:Aa.BooleanNode(),natural:Aa.BooleanNode(),piglin_safe:Aa.BooleanNode(),respawn_anchor_works:Aa.BooleanNode(),bed_works:Aa.BooleanNode(),has_raids:Aa.BooleanNode(),has_skylight:Aa.BooleanNode(),has_ceiling:Aa.BooleanNode(),coordinate_scale:Aa.NumberNode({min:1e-5,max:3e7}),ambient_light:Aa.NumberNode(),fixed_time:Aa.Opt(Aa.NumberNode({integer:!0})),logical_height:Aa.NumberNode({integer:!0,min:0,max:256}),effects:Aa.Opt(r({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:r({validator:"resource",params:{pool:"$tag/block"}})},{context:"dimension_type"}),{default:()=>Ma.DefaultDimensionType}))};var Ca={},La={};Object.defineProperty(La,"__esModule",{value:!0}),La.LootFunctions=La.LootConditions=La.LootCopySources=La.LootEntitySources=La.LootTableTypes=void 0,La.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]}]]),La.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),La.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),La.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",[]]]),La.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(Ca,"__esModule",{value:!0}),Ca.initLootTableSchemas=void 0;const Pa=Be,Ba=La,Ia=ba;Ca.initLootTableSchemas=function(e,t){const r=Pa.Reference.bind(void 0,e),n=Pa.StringNode.bind(void 0,t),i={conditions:Pa.Opt(Pa.ListNode(r("loot_condition")))},o=s({functions:Pa.Opt(Pa.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 Ba.LootTableTypes){const e=[...a,...s];i.push({match:e=>e.getModel().get(new Pa.Path(["type"]))===t,node:n(o(e))})}return i.push({match:e=>!0,node:n(r)}),Pa.SwitchNode(i)}const l=a(Ba.LootConditions,"loot_condition_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),d=a(Ba.LootFunctions,"loot_function_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),u=a(Ba.LootEntitySources,"entity_source",(e=>n({enum:e}))),p=a(Ba.LootCopySources,"copy_source",(e=>n({enum:e})));e.register("loot_table",Pa.Mod(Pa.ObjectNode({type:Pa.Opt(n({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:Pa.Opt(Pa.ListNode(Pa.Mod(Pa.ObjectNode(s({rolls:Ia.Range({allowBinomial:!0,integer:!0}),bonus_rolls:Pa.Opt(Ia.Range({integer:!0})),entries:Pa.ListNode(r("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:Pa.Opt(Pa.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",Pa.Mod(Pa.ObjectNode({type:n({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:Pa.Opt(Pa.Mod(Pa.NumberNode({integer:!0,min:1}),m)),quality:Pa.Opt(Pa.Mod(Pa.NumberNode({integer:!0}),m)),[Pa.Switch]:[{push:"type"}],[Pa.Case]:{"minecraft:alternatives":s({children:Pa.ListNode(r("loot_entry"))},o),"minecraft:dynamic":s({name:n()},o),"minecraft:group":s({children:Pa.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:Pa.ListNode(r("loot_entry"))},o),"minecraft:tag":s({name:n({validator:"resource",params:{pool:"$tag/item"}}),expand:Pa.Opt(Pa.BooleanNode())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",Pa.Mod(Pa.ObjectNode({function:d,[Pa.Switch]:[{push:"function"}],[Pa.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:Pa.Mod(Pa.ObjectNode({bonusMultiplier:Pa.Mod(Pa.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:Pa.Mod(Pa.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:Pa.Mod(Pa.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:Pa.ListNode(Pa.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:Pa.ListNode(n({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:Pa.Opt(Pa.ListNode(n({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:Ia.Range({allowBinomial:!0}),treasure:Pa.Opt(Pa.BooleanNode())},"minecraft:exploration_map":{destination:Pa.Opt(n({enum:"map_feature"})),decoration:Pa.Opt(n({enum:"map_decoration"})),zoom:Pa.Opt(Pa.NumberNode({integer:!0})),search_radius:Pa.Opt(Pa.NumberNode({integer:!0})),skip_existing_chunks:Pa.Opt(Pa.BooleanNode())},"minecraft:fill_player_head":{entity:u},"minecraft:limit_count":{limit:Ia.Range({bounds:!0})},"minecraft:looting_enchant":{count:Ia.Range({bounds:!0}),limit:Pa.Opt(Pa.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:Pa.ListNode(r("attribute_modifier"))},"minecraft:set_contents":{entries:Pa.ListNode(r("loot_entry"))},"minecraft:set_count":{count:Ia.Range({allowBinomial:!0})},"minecraft:set_damage":{damage:Ia.Range({forceRange:!0})},"minecraft:set_loot_table":{name:n({validator:"resource",params:{pool:"$loot_table"}}),seed:Pa.Opt(Pa.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:Pa.Opt(u),lore:Pa.ListNode(r("text_component")),replace:Pa.Opt(Pa.BooleanNode())},"minecraft:set_name":{entity:Pa.Opt(u),name:Pa.Opt(r("text_component"))},"minecraft:set_nbt":{tag:n({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:Pa.Opt(Pa.ListNode(Pa.ObjectNode({type:n({validator:"resource",params:{pool:"mob_effect"}}),duration:Ia.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",Pa.Mod(Pa.ObjectNode({condition:l,[Pa.Switch]:[{push:"condition"}],[Pa.Case]:c(s({},Ia.ConditionCases),{"minecraft:entity_properties":{entity:u,predicate:r("entity_predicate")},"minecraft:entity_scores":{entity:u,scores:Pa.MapNode(n({validator:"objective"}),Ia.Range({bounds:!0}))}})},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",Pa.Mod(Pa.ObjectNode({attribute:n({validator:"resource",params:{pool:"attribute"}}),name:n(),amount:Ia.Range({bounds:!0}),operation:n({enum:["addition","multiply_base","multiply_total"]}),slot:Pa.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 za=Be;Ta.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",za.Mod(za.ObjectNode({pack:za.Mod(za.ObjectNode({pack_format:za.Mod(za.NumberNode({integer:!0,min:6,max:6}),{default:()=>6}),description:za.Reference(e,"text_component")}),{default:()=>({pack_format:6,description:""})})}),{default:()=>({pack:{pack_format:6,description:""}})}))};var Ra={};Object.defineProperty(Ra,"__esModule",{value:!0}),Ra.initPredicatesSchemas=void 0;const Fa=Be,Ea=ba;Ra.initPredicatesSchemas=function(e,t){const r=Fa.Reference.bind(void 0,e),n=Fa.StringNode.bind(void 0,t),i=Fa.ChoiceNode([{type:"string",node:n(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:Fa.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:Fa.ObjectNode({min:Fa.Opt(Fa.NumberNode({integer:!0})),max:Fa.Opt(Fa.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:Fa.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",Fa.ObjectNode({item:Fa.Opt(n({validator:"resource",params:{pool:"item"}})),tag:Fa.Opt(n({validator:"resource",params:{pool:"$tag/item"}})),count:Fa.Opt(Ea.Range()),durability:Fa.Opt(Ea.Range()),potion:Fa.Opt(n({validator:"resource",params:{pool:"potion"}})),nbt:Fa.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:Fa.Opt(Fa.ListNode(r("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",Fa.ObjectNode({enchantment:Fa.Opt(n({validator:"resource",params:{pool:"enchantment"}})),levels:Fa.Opt(Ea.Range())},{context:"enchantment"})),e.register("block_predicate",Fa.ObjectNode({block:Fa.Opt(n({validator:"resource",params:{pool:"block"}})),tag:Fa.Opt(n({validator:"resource",params:{pool:"$tag/block"}})),nbt:Fa.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:Fa.Opt(Fa.MapNode(n(),i,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",Fa.ObjectNode({fluid:Fa.Opt(n({validator:"resource",params:{pool:"fluid"}})),tag:Fa.Opt(n({validator:"resource",params:{pool:"$tag/fluid"}})),state:Fa.Opt(Fa.MapNode(n(),i))},{context:"fluid"})),e.register("location_predicate",Fa.ObjectNode({position:Fa.Opt(Fa.ObjectNode({x:Fa.Opt(Ea.Range()),y:Fa.Opt(Ea.Range()),z:Fa.Opt(Ea.Range())})),biome:Fa.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:Fa.Opt(n({enum:t.get("worldgen/structure_feature").map((e=>e.slice(10)))})),dimension:Fa.Opt(n({validator:"resource",params:{pool:"$dimension"}})),light:Fa.Opt(Fa.ObjectNode({light:Fa.Opt(Ea.Range({integer:!0,min:0,max:15}))})),smokey:Fa.Opt(Fa.BooleanNode()),block:Fa.Opt(r("block_predicate")),fluid:Fa.Opt(r("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",Fa.ObjectNode({type:n({validator:"resource",params:{pool:"stat_type"}}),stat:n(),value:Ea.Range(),[Fa.Switch]:[{push:"type"}],[Fa.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",Fa.ObjectNode({gamemode:Fa.Opt(n({enum:"gamemode"})),level:Fa.Opt(Ea.Range()),advancements:Fa.Opt(Fa.MapNode(n({validator:"resource",params:{pool:"$advancement"}}),Fa.ChoiceNode([{type:"boolean",node:Fa.BooleanNode(),change:e=>!0},{type:"object",node:Fa.MapNode(n(),Fa.BooleanNode())}]))),recipes:Fa.Opt(Fa.MapNode(n({validator:"resource",params:{pool:"$recipe"}}),Fa.BooleanNode())),stats:Fa.Opt(Fa.ListNode(r("statistic_predicate")))},{context:"player"})),e.register("status_effect_predicate",Fa.ObjectNode({amplifier:Fa.Opt(Ea.Range()),duration:Fa.Opt(Ea.Range()),ambient:Fa.Opt(Fa.BooleanNode()),visible:Fa.Opt(Fa.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",Fa.ObjectNode({x:Fa.Opt(Ea.Range()),y:Fa.Opt(Ea.Range()),z:Fa.Opt(Ea.Range()),absolute:Fa.Opt(Ea.Range()),horizontal:Fa.Opt(Ea.Range())},{context:"distance"})),e.register("entity_predicate",Fa.ObjectNode({type:Fa.Opt(n({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:Fa.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:Fa.Opt(n({validator:"team"})),location:Fa.Opt(r("location_predicate")),distance:Fa.Opt(r("distance_predicate")),flags:Fa.Opt(Fa.ObjectNode({is_on_fire:Fa.Opt(Fa.BooleanNode()),is_sneaking:Fa.Opt(Fa.BooleanNode()),is_sprinting:Fa.Opt(Fa.BooleanNode()),is_swimming:Fa.Opt(Fa.BooleanNode()),is_baby:Fa.Opt(Fa.BooleanNode())})),equipment:Fa.Opt(Fa.MapNode(n({enum:"slot"}),r("item_predicate"))),vehicle:Fa.Opt(r("entity_predicate")),targeted_entity:Fa.Opt(r("entity_predicate")),player:Fa.Opt(r("player_predicate")),fishing_hook:Fa.Opt(Fa.ObjectNode({in_open_water:Fa.Opt(Fa.BooleanNode())})),effects:Fa.Opt(Fa.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),r("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",Fa.ObjectNode({is_explosion:Fa.Opt(Fa.BooleanNode()),is_fire:Fa.Opt(Fa.BooleanNode()),is_magic:Fa.Opt(Fa.BooleanNode()),is_projectile:Fa.Opt(Fa.BooleanNode()),is_lightning:Fa.Opt(Fa.BooleanNode()),bypasses_armor:Fa.Opt(Fa.BooleanNode()),bypasses_invulnerability:Fa.Opt(Fa.BooleanNode()),bypasses_magic:Fa.Opt(Fa.BooleanNode()),source_entity:Fa.Opt(r("entity_predicate")),direct_entity:Fa.Opt(r("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",Fa.ObjectNode({dealt:Fa.Opt(Ea.Range()),taken:Fa.Opt(Ea.Range()),blocked:Fa.Opt(Fa.BooleanNode()),source_entity:Fa.Opt(r("entity_predicate")),type:Fa.Opt(r("damage_source_predicate"))},{context:"damage"}))};var Da={};Object.defineProperty(Da,"__esModule",{value:!0}),Da.initRecipeSchemas=void 0;const $a=Be;Da.initRecipeSchemas=function(e,t){const r=$a.Reference.bind(void 0,e),n=$a.StringNode.bind(void 0,t);e.register("recipe",$a.Mod($a.ObjectNode({type:n({validator:"resource",params:{pool:"recipe_serializer"}}),[$a.Switch]:[{push:"type"}],[$a.Case]:{"minecraft:crafting_shaped":{group:$a.Opt(n({enum:"recipe_group",additional:!0})),pattern:$a.ListNode(n()),key:$a.MapNode(n(),r("recipe_ingredient")),result:r("recipe_result")},"minecraft:crafting_shapeless":{group:$a.Opt(n()),ingredients:$a.ListNode(r("recipe_ingredient")),result:r("recipe_result")},"minecraft:smelting":{group:$a.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:$a.Opt($a.NumberNode()),cookingtime:$a.Opt($a.Mod($a.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:$a.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:$a.Opt($a.NumberNode()),cookingtime:$a.Opt($a.Mod($a.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:$a.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:$a.Opt($a.NumberNode()),cookingtime:$a.Opt($a.Mod($a.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:$a.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:$a.Opt($a.NumberNode()),cookingtime:$a.Opt($a.Mod($a.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:$a.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),count:$a.NumberNode({integer:!0})},"minecraft:smithing":{group:$a.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",$a.Mod($a.ChoiceNode([{type:"object",node:r("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:$a.ListNode(r("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",$a.Mod($a.ObjectNode({item:$a.Opt(n({validator:"resource",params:{pool:"item"}})),tag:$a.Opt(n({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",$a.Mod($a.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),count:$a.Opt($a.Mod($a.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var Ua={};Object.defineProperty(Ua,"__esModule",{value:!0}),Ua.initTagsSchemas=void 0;const qa=Be;Ua.initTagsSchemas=function(e,t){const r=qa.StringNode.bind(void 0,t),n=e=>qa.Mod(qa.ObjectNode({replace:qa.Opt(qa.BooleanNode()),values:qa.ListNode(qa.ChoiceNode([{type:"string",node:r({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:qa.ObjectNode({id:r({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:qa.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 Za={};Object.defineProperty(Za,"__esModule",{value:!0}),Za.initTextComponentSchemas=void 0;const Ha=Be;Za.initTextComponentSchemas=function(e,t){const r=Ha.Reference.bind(void 0,e),n=Ha.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",Ha.Mod(Ha.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:Ha.NumberNode(),change:e=>{const t=parseFloat(i(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:Ha.BooleanNode(),change:e=>{const t=i(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={color:Ha.Opt(n()),font:Ha.Opt(n()),bold:Ha.Opt(Ha.BooleanNode()),italic:Ha.Opt(Ha.BooleanNode()),underlined:Ha.Opt(Ha.BooleanNode()),strikethrough:Ha.Opt(Ha.BooleanNode()),obfuscated:Ha.Opt(Ha.BooleanNode()),insertion:Ha.Opt(n()),clickEvent:Ha.Opt(Ha.ObjectNode({action:n({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[Ha.Switch]:[{push:"action"}],[Ha.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:Ha.Opt(Ha.ObjectNode({action:n({enum:["show_text","show_item","show_entity"]}),[Ha.Switch]:[{push:"action"}],[Ha.Case]:{show_text:{value:Ha.Opt(r("text_component")),contents:Ha.Opt(r("text_component"))},show_item:{value:Ha.Opt(n({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:Ha.Opt(Ha.ObjectNode({id:n({validator:"resource",params:{pool:"item"}}),count:Ha.Opt(Ha.NumberNode({integer:!0})),tag:Ha.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:Ha.Opt(Ha.ObjectNode({name:Ha.Opt(n()),type:Ha.Opt(n()),id:Ha.Opt(n())})),contents:Ha.Opt(Ha.Mod(Ha.ObjectNode({name:Ha.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:Ha.Opt(r("text_component_list"))};e.register("text_component_object",Ha.Mod(Ha.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:Ha.ObjectNode(s({text:n()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:Ha.ObjectNode(s({translate:n(),with:Ha.Opt(r("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:Ha.ObjectNode(s({score:Ha.ObjectNode({name:n({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:n({validator:"objective"}),value:Ha.Opt(n())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:Ha.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:Ha.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:Ha.ObjectNode(s({nbt:n({validator:"nbt_path"}),block:Ha.Opt(n({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:Ha.Opt(n({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:Ha.Opt(n({validator:"resource",params:{pool:"$storage"}})),interpret:Ha.Opt(Ha.BooleanNode())},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",Ha.Mod(Ha.ListNode(r("text_component")),{default:()=>[{text:""}]}))};var Wa={},Ga={};Object.defineProperty(Ga,"__esModule",{value:!0}),Ga.initBiomeSchemas=void 0;const Xa=Be;Ga.initBiomeSchemas=function(e,t){const r=Xa.StringNode.bind(void 0,t);e.register("biome",Xa.Mod(Xa.ObjectNode({surface_builder:r({validator:"resource",params:{pool:"$worldgen/configured_surface_builder"}}),depth:Xa.NumberNode(),scale:Xa.NumberNode(),temperature:Xa.NumberNode(),downfall:Xa.NumberNode(),precipitation:r({enum:["none","rain","snow"]}),temperature_modifier:Xa.Opt(r({enum:["none","frozen"]})),category:r({enum:"biome_category"}),player_spawn_friendly:Xa.Opt(Xa.BooleanNode()),creature_spawn_probability:Xa.Opt(Xa.NumberNode({min:0,max:1})),effects:Xa.ObjectNode({sky_color:Xa.NumberNode({color:!0}),fog_color:Xa.NumberNode({color:!0}),water_color:Xa.NumberNode({color:!0}),water_fog_color:Xa.NumberNode({color:!0}),grass_color:Xa.Opt(Xa.NumberNode({color:!0})),foliage_color:Xa.Opt(Xa.NumberNode({color:!0})),grass_color_modifier:Xa.Opt(r({enum:["none","dark_forest","swamp"]})),ambient_sound:Xa.Opt(r()),mood_sound:Xa.Opt(Xa.ObjectNode({sound:r(),tick_delay:Xa.NumberNode({integer:!0}),block_search_extent:Xa.NumberNode({integer:!0}),offset:Xa.NumberNode()})),additions_sound:Xa.Opt(Xa.ObjectNode({sound:r(),tick_chance:Xa.NumberNode({min:0,max:1})})),music:Xa.Opt(Xa.ObjectNode({sound:r(),min_delay:Xa.NumberNode({integer:!0,min:0}),max_delay:Xa.NumberNode({integer:!0,min:0}),replace_current_music:Xa.BooleanNode()})),particle:Xa.Opt(Xa.ObjectNode({options:Xa.ObjectNode({type:r()}),probability:Xa.NumberNode({min:0,max:1})}))}),starts:Xa.ListNode(r({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),spawners:Xa.MapNode(r({enum:["water_ambient","ambient","misc","water_creature","creature","monster"]}),Xa.Mod(Xa.ListNode(Xa.ObjectNode({type:r({validator:"resource",params:{pool:"entity_type"}}),weight:Xa.NumberNode({integer:!0}),minCount:Xa.NumberNode({integer:!0}),maxCount:Xa.NumberNode({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:Xa.MapNode(r({validator:"resource",params:{pool:"entity_type"}}),Xa.Mod(Xa.ObjectNode({energy_budget:Xa.NumberNode(),charge:Xa.NumberNode()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:Xa.MapNode(r({enum:["air","liquid"]}),Xa.Mod(Xa.ListNode(r({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:Xa.ListNode(Xa.Mod(Xa.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 Ya={};Object.defineProperty(Ya,"__esModule",{value:!0}),Ya.initCarverSchemas=void 0;const Va=Be;Ya.initCarverSchemas=function(e,t){const r=Va.StringNode.bind(void 0,t);e.register("configured_carver",Va.Mod(Va.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/carver"}}),config:Va.ObjectNode({probability:Va.NumberNode({min:0,max:1})})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))};var Ja={};Object.defineProperty(Ja,"__esModule",{value:!0}),Ja.initDecoratorSchemas=void 0;const Ka=Be,Qa=ba;Ja.initDecoratorSchemas=function(e,t){const r=Ka.Reference.bind(void 0,e),n=Ka.StringNode.bind(void 0,t),i={maximum:Ka.NumberNode({integer:!0}),bottom_offset:Ka.NumberNode({integer:!0}),top_offset:Ka.NumberNode({integer:!0})},o={chance:Ka.NumberNode({integer:!0,min:0})},a={count:Qa.UniformInt({min:-10,max:128,maxSpread:128})};e.register("configured_decorator",Ka.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/decorator"}}),config:Ka.ObjectNode({[Ka.Switch]:["pop",{push:"type"}],[Ka.Case]:{"minecraft:carving_mask":{step:n({enum:"generation_step"}),probability:Ka.NumberNode({min:0,max:1})},"minecraft:chance":o,"minecraft:count":a,"minecraft:count_extra":{count:Ka.NumberNode({integer:!0}),extra_count:Ka.NumberNode({integer:!0}),extra_chance:Ka.NumberNode({min:0,max:1})},"minecraft:count_multilayer":a,"minecraft:count_noise":{noise_level:Ka.NumberNode(),below_noise:Ka.NumberNode({integer:!0}),above_noise:Ka.NumberNode({integer:!0})},"minecraft:count_noise_biased":{noise_to_count_ratio:Ka.NumberNode({integer:!0}),noise_factor:Ka.NumberNode(),noise_offset:Ka.Opt(Ka.NumberNode())},"minecraft:decorated":{outer:r("configured_decorator"),inner:r("configured_decorator")},"minecraft:depth_average":{baseline:Ka.NumberNode({integer:!0}),spread:Ka.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 es={},ts={};Object.defineProperty(ts,"__esModule",{value:!0}),ts.initProcessorListSchemas=void 0;const rs=Be;ts.initProcessorListSchemas=function(e,t){const r=rs.Reference.bind(void 0,e),n=rs.StringNode.bind(void 0,t);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: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.NumberNode({min:0,max:255,integer:!0}),max_dist:rs.NumberNode({min:0,max:255,integer:!0}),min_chance:rs.NumberNode({min:0,max:1}),max_chance: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=Be,is=ba;es.initFeatureSchemas=function(e,t){const r=ns.Reference.bind(void 0,e),n=ns.StringNode.bind(void 0,t),i={can_replace:ns.BooleanNode(),project:ns.BooleanNode(),need_water:ns.BooleanNode(),xspread:ns.NumberNode({integer:!0}),yspread:ns.NumberNode({integer:!0}),zspread:ns.NumberNode({integer:!0}),tries:ns.NumberNode({integer:!0}),state_provider:r("block_state_provider"),block_placer:r("block_placer"),whitelist:ns.ListNode(r("block_state")),blacklist:ns.ListNode(r("block_state"))},o={state:r("block_state"),radius:is.UniformInt({min:0,max:4,maxSpread:4}),half_height:ns.NumberNode({integer:!0,min:0,max:4}),targets:ns.ListNode(r("block_state"))},a={cap_provider:r("block_state_provider"),stem_provider:r("block_state_provider"),foliage_radius:ns.Opt(ns.NumberNode({integer:!0}))},s={state:r("block_state"),size:ns.NumberNode({integer:!0,min:0,max:64}),target:r("rule_test")},c={count:is.UniformInt({min:-10,max:128,maxSpread:128})},l=ns.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:r("configured_feature")}],{choiceContext:"feature"});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.UniformInt({min:0,max:2,maxSpread:1}),height:is.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:is.UniformInt({min:0,max:8,maxSpread:8}),rim_size:is.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: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":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:ns.Opt(ns.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:is.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:ns.ListNode(ns.ObjectNode({chance:ns.NumberNode({min:0,max:1}),feature:l})),default:l},"minecraft:sea_pickle":c,"minecraft:seagrass":{probability:ns.NumberNode({min:0,max:1})},"minecraft:simple_block":{to_place:r("block_state"),place_on:ns.ListNode(r("block_state")),place_in:ns.ListNode(r("block_state")),place_under:ns.ListNode(r("block_state"))},"minecraft:simple_random_selector":{features:ns.ListNode(l)},"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":{max_water_depth:ns.NumberNode({integer:!0}),ignore_vines:ns.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: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})},{context:"trunk_placer"}),foliage_placer:ns.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:is.UniformInt({min:0,max:8,maxSpread:8}),offset:is.UniformInt({min:0,max:8,maxSpread:8}),[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.UniformInt({min:0,max:16,maxSpread:8})},"minecraft:pine_foliage_placer":{height:is.UniformInt({min:0,max:16,maxSpread:8})},"minecraft:spruce_foliage_placer":{trunk_height:is.UniformInt({min:0,max:16,maxSpread:8})}}},{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"}))}}},{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",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"})})),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: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"})})),e.register("block_placer",ns.Mod(ns.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/block_placer_type"}}),[ns.Switch]:[{push:"type"}],[ns.Case]:{"minecraft:column_placer":{min_size:ns.NumberNode({integer:!0}),extra_size:ns.NumberNode({integer:!0})}}},{context:"block_placer"}),{default:()=>({type:"minecraft:simple_block_placer"})}))};var os={};Object.defineProperty(os,"__esModule",{value:!0}),os.initNoiseSettingsSchemas=void 0;const as=Be,ss=ba;os.initNoiseSettingsSchemas=function(e,t){const r=as.Reference.bind(void 0,e),n=as.StringNode.bind(void 0,t);e.register("noise_settings",as.Mod(as.ObjectNode({name:as.Mod(n({validator:"resource",params:{pool:"$worldgen/noise_settings",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),bedrock_roof_position:as.NumberNode({integer:!0}),bedrock_floor_position:as.NumberNode({integer:!0}),sea_level:as.NumberNode({integer:!0}),disable_mob_generation:as.BooleanNode(),default_block:r("block_state"),default_fluid:r("block_state"),noise:as.ObjectNode({height:as.NumberNode({integer:!0}),density_factor:as.NumberNode(),density_offset:as.NumberNode(),size_horizontal:as.NumberNode({integer:!0}),size_vertical:as.NumberNode({integer:!0}),simplex_surface_noise:as.BooleanNode(),random_density_offset:as.Opt(as.BooleanNode()),island_noise_override:as.Opt(as.BooleanNode()),amplified:as.Opt(as.BooleanNode()),sampling:as.ObjectNode({xz_scale:as.NumberNode(),y_scale:as.NumberNode(),xz_factor:as.NumberNode(),y_factor:as.NumberNode()}),bottom_slide:as.ObjectNode({target:as.NumberNode({integer:!0}),size:as.NumberNode({integer:!0}),offset:as.NumberNode({integer:!0})}),top_slide:as.ObjectNode({target:as.NumberNode({integer:!0}),size:as.NumberNode({integer:!0}),offset:as.NumberNode({integer:!0})})}),structures:r("generator_structures")},{context:"noise_settings"}),{default:()=>ss.DefaultNoiseSettings})),e.register("generator_structures",as.ObjectNode({stronghold:as.Opt(as.ObjectNode({distance:as.NumberNode({integer:!0,min:0,max:1023}),spread:as.NumberNode({integer:!0,min:0,max:1023}),count:as.NumberNode({integer:!0,min:1,max:4095})})),structures:as.MapNode(n({validator:"resource",params:{pool:"worldgen/structure_feature"}}),as.Mod(as.ObjectNode({spacing:as.NumberNode({integer:!0,min:0,max:4096}),separation:as.Mod(as.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:as.NumberNode({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),e.register("generator_layer",as.Mod(as.ObjectNode({block:n({validator:"resource",params:{pool:"block"}}),height:as.NumberNode({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})}))};var cs={};Object.defineProperty(cs,"__esModule",{value:!0}),cs.initStructureFeatureSchemas=void 0;const ls=Be;cs.initStructureFeatureSchemas=function(e,t){const r=ls.StringNode.bind(void 0,t),n={start_pool:r({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:ls.NumberNode({integer:!0})};e.register("configured_structure_feature",ls.Mod(ls.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:ls.ObjectNode({[ls.Switch]:["pop",{push:"type"}],[ls.Case]:{"minecraft:bastion_remnant":n,"minecraft:buried_treasure":{probability:ls.NumberNode({min:0,max:1})},"minecraft:mineshaft":{type:r({enum:["normal","mesa"]}),probability:ls.NumberNode({min:0,max:1})},"minecraft:ocean_ruin":{biome_temp:r({enum:["cold","warm"]}),large_probability:ls.NumberNode({min:0,max:1}),cluster_probability:ls.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:ls.Opt(ls.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 ds={};Object.defineProperty(ds,"__esModule",{value:!0}),ds.initSurfaceBuilderSchemas=void 0;const us=Be;ds.initSurfaceBuilderSchemas=function(e,t){const r=us.StringNode.bind(void 0,t),n=us.Reference.bind(void 0,e);e.register("configured_surface_builder",us.Mod(us.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/surface_builder"}}),config:us.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 ps={};Object.defineProperty(ps,"__esModule",{value:!0}),ps.initTemplatePoolSchemas=void 0;const ms=Be;ps.initTemplatePoolSchemas=function(e,t){const r=ms.Reference.bind(void 0,e),n=ms.StringNode.bind(void 0,t),i=ms.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",ms.Mod(ms.ObjectNode({name:n(),fallback:n(),elements:ms.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",ms.Mod(ms.ObjectNode({weight:ms.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",ms.Mod(ms.ObjectNode({element_type:n({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:n({enum:["rigid","terrain_matching"]}),[ms.Switch]:[{push:"element_type"}],[ms.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:ms.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(Wa,"__esModule",{value:!0}),Wa.initWorldgenSchemas=void 0;const _s=Ga,fs=Ya,hs=Ja,gs=es,bs=os,vs=ts,ys=cs,Ns=ds,ks=ps;Wa.initWorldgenSchemas=function(e,t){_s.initBiomeSchemas(e,t),fs.initCarverSchemas(e,t),hs.initDecoratorSchemas(e,t),gs.initFeatureSchemas(e,t),bs.initNoiseSettingsSchemas(e,t),vs.initProcessorListSchemas(e,t),ys.initStructureFeatureSchemas(e,t),Ns.initSurfaceBuilderSchemas(e,t),ks.initTemplatePoolSchemas(e,t)};var ws={};Object.defineProperty(ws,"__esModule",{value:!0}),ws.initWorldSettingsSchemas=void 0;const Os=Be;ws.initWorldSettingsSchemas=function(e,t){const r=Os.Reference.bind(void 0,e),n=Os.StringNode.bind(void 0,t);e.register("world_settings",Os.Mod(Os.ObjectNode({generate_features:Os.BooleanNode(),bonus_chest:Os.BooleanNode(),seed:Os.NumberNode({integer:!0}),dimensions:Os.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(ha,"__esModule",{value:!0}),ha.initSchemas=void 0;const xs=ga,Ss=ba,js=Na,As=Oa,Ms=ja,Cs=Ca,Ls=Ta,Ps=Ra,Bs=Da,Is=Ua,Ts=Za,zs=Wa,Rs=ws;ha.initSchemas=function(e,t){Ss.initCommonSchemas(e,t),xs.initAdvancementSchemas(e,t),js.initConditionSchemas(e,t),Ms.initDimensionTypeSchemas(e,t),As.initDimensionSchemas(e,t),Cs.initLootTableSchemas(e,t),Ls.initPackMcmetaSchemas(e,t),Ps.initPredicatesSchemas(e,t),Bs.initRecipeSchemas(e,t),Is.initTagsSchemas(e,t),Ts.initTextComponentSchemas(e,t),zs.initWorldgenSchemas(e,t),Rs.initWorldSettingsSchemas(e,t)};var Fs=Pe&&Pe.__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]}),Es=Pe&&Pe.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Ds=Pe&&Pe.__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)&&Fs(t,e,r);return Es(t,e),t};Object.defineProperty(_a,"__esModule",{value:!0});var $s=_a.getSchemas=_a.getCollections=void 0;const Us=Be,qs=fa,Zs=ha;var Hs=_a.lootContext=Ds(La);var Ws=_a.getCollections=function(){const e=new Us.CollectionRegistry;return qs.initCollections(e),e};$s=_a.getSchemas=function(e){const t=new Us.SchemaRegistry;return Zs.initSchemas(t,e),t};var Gs=Object.freeze(Object.assign(Object.create(null),_a,{[Symbol.toStringTag]:"Module",get getSchemas(){return $s},get getCollections(){return Ws},lootContext:Hs,default:_a})),Xs={},Ys={};Object.defineProperty(Ys,"__esModule",{value:!0}),Ys.initCollections=void 0,Ys.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 Vs={},Js={};Object.defineProperty(Js,"__esModule",{value:!0}),Js.initAdvancementSchemas=void 0;const Ks=Be;Js.initAdvancementSchemas=function(e,t){const r=Ks.Reference.bind(void 0,e),n=Ks.StringNode.bind(void 0,t),i=Ks.ChoiceNode([{type:"object",node:Ks.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:Ks.ListNode(r("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",Ks.Mod(Ks.ObjectNode({display:Ks.Opt(Ks.Mod(Ks.ObjectNode({icon:Ks.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),nbt:Ks.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:r("text_component"),description:r("text_component"),background:Ks.Opt(n()),frame:Ks.Opt(n({enum:["task","challenge","goal"]})),show_toast:Ks.Opt(Ks.BooleanNode()),announce_to_chat:Ks.Opt(Ks.BooleanNode()),hidden:Ks.Opt(Ks.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:Ks.Opt(n({validator:"resource",params:{pool:"$advancement"}})),criteria:Ks.MapNode(n(),r("advancement_criteria")),requirements:Ks.Opt(Ks.ListNode(Ks.ListNode(n()))),rewards:Ks.Opt(Ks.ObjectNode({function:Ks.Opt(n({validator:"resource",params:{pool:"$function"}})),loot:Ks.Opt(Ks.ListNode(n({validator:"resource",params:{pool:"$loot_table"}}))),recipes:Ks.Opt(Ks.ListNode(n({validator:"resource",params:{pool:"$recipe"}}))),experience:Ks.Opt(Ks.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",Ks.ObjectNode({trigger:n({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:Ks.Opt(Ks.ObjectNode({player:Ks.Mod(i,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[Ks.Switch]:["pop",{push:"trigger"}],[Ks.Case]:{"minecraft:bee_nest_destroyed":{block:Ks.Opt(n({validator:"resource",params:{pool:"block"}})),num_bees_inside:Ks.Opt(Ks.NumberNode({integer:!0})),item:Ks.Opt(r("item_predicate"))},"minecraft:bred_animals":{parent:i,partner:i,child:i},"minecraft:brewed_potion":{potion:Ks.Opt(n({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:Ks.Opt(n({validator:"resource",params:{pool:"$dimension"}})),to:Ks.Opt(n({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:Ks.Opt(Ks.ListNode(i))},"minecraft:construct_beacon":{level:r("int_bounds")},"minecraft:consume_item":{item:Ks.Opt(r("item_predicate"))},"minecraft:cured_zombie_villager":{villager:i,zombie:i},"minecraft:effects_changed":{effects:Ks.Opt(Ks.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),Ks.ObjectNode({amplifier:r("int_bounds"),duration:r("int_bounds")}))),source:Ks.Opt(i)},"minecraft:enter_block":{block:Ks.Opt(n({validator:"resource",params:{pool:"block"}})),state:Ks.Opt(Ks.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:r("int_bounds"),item:Ks.Opt(r("item_predicate"))},"minecraft:entity_hurt_player":{damage:Ks.Opt(r("damage_predicate"))},"minecraft:entity_killed_player":{entity:i,killing_blow:Ks.Opt(r("damage_source_predicate"))},"minecraft:filled_bucket":{item:Ks.Opt(r("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:i,item:Ks.Opt(r("item_predicate"))},"minecraft:hero_of_the_village":{location:Ks.Opt(r("location_predicate"))},"minecraft:inventory_changed":{slots:Ks.Opt(Ks.ObjectNode({empty:r("int_bounds"),occupied:r("int_bounds"),full:r("int_bounds")})),items:Ks.Opt(Ks.ListNode(r("item_predicate")))},"minecraft:item_durability_changed":{delta:r("int_bounds"),durability:r("int_bounds"),item:Ks.Opt(r("item_predicate"))},"minecraft:item_used_on_block":{item:Ks.Opt(r("item_predicate")),location:Ks.Opt(r("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:r("int_bounds"),victims:Ks.Opt(Ks.ListNode(i))},"minecraft:levitation":{distance:r("distance_predicate"),duration:r("int_bounds")},"minecraft:lightning_strike":{lightning:i,bystander:i},"minecraft:location":{location:Ks.Opt(r("location_predicate"))},"minecraft:nether_travel":{distance:r("distance_predicate"),entered:Ks.Opt(r("location_predicate")),exited:Ks.Opt(r("location_predicate"))},"minecraft:placed_block":{block:Ks.Opt(n({validator:"resource",params:{pool:"block"}})),state:Ks.Opt(Ks.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:Ks.Opt(r("item_predicate")),location:Ks.Opt(r("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:n({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:Ks.Opt(r("damage_predicate")),entity:i},"minecraft:player_interacted_with_entity":{item:Ks.Opt(r("item_predicate")),entity:i},"minecraft:player_killed_entity":{entity:i,killing_blow:Ks.Opt(r("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:n({validator:"resource",params:{pool:"$recipe"}})},"minecraft:slept_in_bed":{location:Ks.Opt(r("location_predicate"))},"minecraft:slide_down_block":{block:Ks.Opt(n({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:Ks.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:Ks.Opt(r("entity_predicate")),item:Ks.Opt(r("item_predicate"))},"minecraft:used_ender_eye":{distance:r("float_bounds")},"minecraft:used_totem":{item:Ks.Opt(r("item_predicate"))},"minecraft:using_item":{item:Ks.Opt(r("item_predicate"))},"minecraft:villager_trade":{villager:Ks.Opt(r("entity_predicate")),item:Ks.Opt(r("item_predicate"))},"minecraft:voluntary_exile":{location:r("location_predicate")}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var Qs={};!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=Be;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 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(i({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][n]}];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 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: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: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"}}}})}}(Qs);var ec={};Object.defineProperty(ec,"__esModule",{value:!0}),ec.initConditionSchemas=void 0;const tc=Be,rc=Qs;ec.initConditionSchemas=function(e,t){const r=tc.Reference.bind(void 0,e),n=tc.StringNode.bind(void 0,t);e.register("predicate",tc.ObjectOrList(r("condition"),{choiceContext:"condition"})),e.register("condition",tc.Mod(tc.ObjectNode({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[tc.Switch]:[{push:"condition"}],[tc.Case]:rc.ConditionCases()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var nc={};Object.defineProperty(nc,"__esModule",{value:!0}),nc.initDimensionSchemas=void 0;const ic=Be,oc=Qs;nc.initDimensionSchemas=function(e,t){const r=ic.Reference.bind(void 0,e),n=ic.StringNode.bind(void 0,t),i=e=>ic.Mod(e,{enabled:e=>void 0===e.push("preset").get()});e.register("dimension",ic.Mod(ic.ObjectNode({type:oc.DimensionTypePresets(r("dimension_type")),generator:ic.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[ic.Switch]:[{push:"type"}],[ic.Case]:{"minecraft:noise":{seed:ic.NumberNode({integer:!0}),settings:oc.NoiseSettingsPresets(r("noise_settings")),biome_source:ic.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/biome_source"}}),[ic.Switch]:[{push:"type"}],[ic.Case]:{"minecraft:fixed":{biome:n({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{seed:ic.NumberNode({integer:!0}),preset:ic.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(ic.Mod(ic.ListNode(r("generator_biome")),{default:()=>[{biome:"minecraft:plains"}]}))},"minecraft:checkerboard":{scale:ic.Opt(ic.NumberNode({integer:!0,min:0,max:62})),biomes:ic.ListNode(n({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:ic.NumberNode({integer:!0})},"minecraft:vanilla_layered":{seed:ic.NumberNode({integer:!0}),large_biomes:ic.Opt(ic.BooleanNode()),legacy_biome_init_layer:ic.Opt(ic.BooleanNode())}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:ic.ObjectNode({biome:ic.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:ic.Opt(ic.BooleanNode()),features:ic.Opt(ic.BooleanNode()),layers:ic.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",ic.Mod(ic.ObjectNode({biome:n({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:ic.ObjectNode({altitude:ic.NumberNode(),temperature:ic.NumberNode(),humidity:ic.NumberNode(),weirdness:ic.NumberNode(),offset:ic.NumberNode()})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})})),e.register("generator_biome_noise",ic.Mod(ic.ObjectNode({firstOctave:ic.NumberNode({integer:!0}),amplitudes:ic.ListNode(ic.NumberNode())},{context:"generator_biome_noise"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})}))};var ac={};Object.defineProperty(ac,"__esModule",{value:!0}),ac.initDimensionTypeSchemas=void 0;const sc=Be,cc=Qs;ac.initDimensionTypeSchemas=function(e,t){const r=sc.StringNode.bind(void 0,t);e.register("dimension_type",sc.Mod(sc.ObjectNode({name:sc.Mod(r({validator:"resource",params:{pool:"$dimension_type",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),ultrawarm:sc.BooleanNode(),natural:sc.BooleanNode(),piglin_safe:sc.BooleanNode(),respawn_anchor_works:sc.BooleanNode(),bed_works:sc.BooleanNode(),has_raids:sc.BooleanNode(),has_skylight:sc.BooleanNode(),has_ceiling:sc.BooleanNode(),coordinate_scale:sc.NumberNode({min:1e-5,max:3e7}),ambient_light:sc.NumberNode(),fixed_time:sc.Opt(sc.NumberNode({integer:!0})),logical_height:sc.NumberNode({integer:!0,min:0,max:4096}),effects:sc.Opt(r({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:r({validator:"resource",params:{pool:"$tag/block"}}),min_y:sc.NumberNode({integer:!0,min:-2048,max:2047}),height:sc.NumberNode({integer:!0,min:0,max:4096})},{context:"dimension_type"}),(e=>({default:()=>cc.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 lc={};Object.defineProperty(lc,"__esModule",{value:!0}),lc.initItemModifierSchemas=void 0;const dc=Be,uc=Qs;lc.initItemModifierSchemas=function(e,t){const r=dc.Reference.bind(void 0,e),n=dc.StringNode.bind(void 0,t);e.register("item_modifier",dc.ObjectOrList(r("function"),{choiceContext:"function"}));const i={conditions:dc.Opt(dc.ListNode(r("condition")))};e.register("function",dc.Mod(dc.ObjectNode({function:n({validator:"resource",params:{pool:"loot_function_type"}}),[dc.Switch]:[{push:"function"}],[dc.Case]:uc.FunctionCases(i)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))};var pc={},mc={};Object.defineProperty(mc,"__esModule",{value:!0}),mc.LootFunctions=mc.LootConditions=mc.LootCopySources=mc.LootEntitySources=mc.LootTableTypes=void 0,mc.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]}]]),mc.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),mc.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),mc.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",[]]]),mc.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(pc,"__esModule",{value:!0}),pc.initLootTableSchemas=void 0;const _c=Be,fc=mc,hc=Qs;pc.initLootTableSchemas=function(e,t){const r=_c.Reference.bind(void 0,e),n=_c.StringNode.bind(void 0,t),i={conditions:_c.Opt(_c.ListNode(r("loot_condition")))},o=s({functions:_c.Opt(_c.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 fc.LootTableTypes){const e=[...a,...s];i.push({match:e=>e.getModel().get(new _c.Path(["type"]))===t,node:n(o(e))})}return i.push({match:e=>!0,node:n(r)}),_c.SwitchNode(i)}const c=a(fc.LootConditions,"loot_condition_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),l=a(fc.LootFunctions,"loot_function_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),d=a(fc.LootEntitySources,"entity_source",(e=>n({enum:e}))),u=a(fc.LootCopySources,"copy_source",(e=>n({enum:e})));e.register("loot_table",_c.Mod(_c.ObjectNode({type:_c.Opt(n({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:_c.Opt(_c.ListNode(_c.Mod(_c.ObjectNode(s({rolls:r("number_provider"),bonus_rolls:_c.Opt(r("number_provider")),entries:_c.ListNode(r("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:_c.Opt(_c.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",_c.Mod(_c.ObjectNode({type:n({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:_c.Opt(_c.Mod(_c.NumberNode({integer:!0,min:1}),p)),quality:_c.Opt(_c.Mod(_c.NumberNode({integer:!0}),p)),[_c.Switch]:[{push:"type"}],[_c.Case]:{"minecraft:alternatives":s({children:_c.ListNode(r("loot_entry"))},o),"minecraft:dynamic":s({name:n()},o),"minecraft:group":s({children:_c.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:_c.ListNode(r("loot_entry"))},o),"minecraft:tag":s({name:n({validator:"resource",params:{pool:"$tag/item"}}),expand:_c.Opt(_c.BooleanNode())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",_c.Mod(_c.ObjectNode({function:l,[_c.Switch]:[{push:"function"}],[_c.Case]:hc.FunctionCases(i,u,d)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",_c.Mod(_c.ObjectNode({condition:c,[_c.Switch]:[{push:"condition"}],[_c.Case]:hc.ConditionCases(d)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",_c.Mod(_c.ObjectNode({attribute:n({validator:"resource",params:{pool:"attribute"}}),name:n(),amount:r("number_provider"),operation:n({enum:["addition","multiply_base","multiply_total"]}),slot:_c.StringOrList(n({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var gc={};Object.defineProperty(gc,"__esModule",{value:!0}),gc.initPackMcmetaSchemas=void 0;const bc=Be;gc.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",bc.Mod(bc.ObjectNode({pack:bc.Mod(bc.ObjectNode({pack_format:bc.Mod(bc.NumberNode({integer:!0,min:7,max:7}),{default:()=>7,canUpdate:(e,t)=>7!==t,update:()=>[{name:"pack_format",params:[7],newValue:7}]}),description:bc.Reference(e,"text_component")}),{default:()=>({pack_format:7,description:""})})}),{default:()=>({pack:{pack_format:7,description:""}})}))};var vc={};Object.defineProperty(vc,"__esModule",{value:!0}),vc.initPredicatesSchemas=void 0;const yc=Be;vc.initPredicatesSchemas=function(e,t){const r=yc.Reference.bind(void 0,e),n=yc.StringNode.bind(void 0,t),i=yc.ChoiceNode([{type:"string",node:n(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:yc.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:yc.ObjectNode({min:yc.Opt(yc.NumberNode({integer:!0})),max:yc.Opt(yc.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:yc.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",yc.ObjectNode({items:yc.Opt(yc.ListNode(n({validator:"resource",params:{pool:"item"}}))),tag:yc.Opt(n({validator:"resource",params:{pool:"$tag/item"}})),count:r("int_bounds"),durability:r("int_bounds"),potion:yc.Opt(n({validator:"resource",params:{pool:"potion"}})),nbt:yc.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:yc.Opt(yc.ListNode(r("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",yc.ObjectNode({enchantment:yc.Opt(n({validator:"resource",params:{pool:"enchantment"}})),levels:r("int_bounds")},{context:"enchantment"})),e.register("block_predicate",yc.ObjectNode({blocks:yc.Opt(yc.ListNode(n({validator:"resource",params:{pool:"block"}}))),tag:yc.Opt(n({validator:"resource",params:{pool:"$tag/block"}})),nbt:yc.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:yc.Opt(yc.MapNode(n(),i,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",yc.ObjectNode({fluid:yc.Opt(n({validator:"resource",params:{pool:"fluid"}})),tag:yc.Opt(n({validator:"resource",params:{pool:"$tag/fluid"}})),state:yc.Opt(yc.MapNode(n(),i))},{context:"fluid"})),e.register("location_predicate",yc.ObjectNode({position:yc.Opt(yc.ObjectNode({x:r("float_bounds"),y:r("float_bounds"),z:r("float_bounds")})),biome:yc.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:yc.Opt(n({enum:t.get("worldgen/structure_feature").map((e=>e.slice(10)))})),dimension:yc.Opt(n({validator:"resource",params:{pool:"$dimension"}})),light:yc.Opt(yc.ObjectNode({light:r("int_bounds")})),smokey:yc.Opt(yc.BooleanNode()),block:yc.Opt(r("block_predicate")),fluid:yc.Opt(r("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",yc.ObjectNode({type:n({validator:"resource",params:{pool:"stat_type"}}),stat:n(),value:r("int_bounds"),[yc.Switch]:[{push:"type"}],[yc.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",yc.ObjectNode({gamemode:yc.Opt(n({enum:"gamemode"})),level:r("int_bounds"),advancements:yc.Opt(yc.MapNode(n({validator:"resource",params:{pool:"$advancement"}}),yc.ChoiceNode([{type:"boolean",node:yc.BooleanNode(),change:e=>!0},{type:"object",node:yc.MapNode(n(),yc.BooleanNode())}]))),recipes:yc.Opt(yc.MapNode(n({validator:"resource",params:{pool:"$recipe"}}),yc.BooleanNode())),stats:yc.Opt(yc.ListNode(r("statistic_predicate"))),looking_at:yc.Opt(r("entity_predicate"))},{context:"player"})),e.register("status_effect_predicate",yc.ObjectNode({amplifier:r("int_bounds"),duration:r("int_bounds"),ambient:yc.Opt(yc.BooleanNode()),visible:yc.Opt(yc.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",yc.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",yc.ObjectNode({type:yc.Opt(n({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:yc.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:yc.Opt(n({validator:"team"})),location:yc.Opt(r("location_predicate")),stepping_on:yc.Opt(r("location_predicate")),distance:yc.Opt(r("distance_predicate")),flags:yc.Opt(yc.ObjectNode({is_on_fire:yc.Opt(yc.BooleanNode()),is_sneaking:yc.Opt(yc.BooleanNode()),is_sprinting:yc.Opt(yc.BooleanNode()),is_swimming:yc.Opt(yc.BooleanNode()),is_baby:yc.Opt(yc.BooleanNode())})),equipment:yc.Opt(yc.MapNode(n({enum:"slot"}),r("item_predicate"))),player:yc.Opt(r("player_predicate")),vehicle:yc.Opt(r("entity_predicate")),passenger:yc.Opt(r("entity_predicate")),targeted_entity:yc.Opt(r("entity_predicate")),lightning_bolt:yc.Opt(yc.ObjectNode({blocks_set_on_fire:yc.Opt(r("int_bounds")),entity_struck:yc.Opt(r("entity_predicate"))})),fishing_hook:yc.Opt(yc.ObjectNode({in_open_water:yc.Opt(yc.BooleanNode())})),effects:yc.Opt(yc.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),r("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",yc.ObjectNode({is_explosion:yc.Opt(yc.BooleanNode()),is_fire:yc.Opt(yc.BooleanNode()),is_magic:yc.Opt(yc.BooleanNode()),is_projectile:yc.Opt(yc.BooleanNode()),is_lightning:yc.Opt(yc.BooleanNode()),bypasses_armor:yc.Opt(yc.BooleanNode()),bypasses_invulnerability:yc.Opt(yc.BooleanNode()),bypasses_magic:yc.Opt(yc.BooleanNode()),source_entity:yc.Opt(r("entity_predicate")),direct_entity:yc.Opt(r("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",yc.ObjectNode({dealt:r("float_bounds"),taken:r("float_bounds"),blocked:yc.Opt(yc.BooleanNode()),source_entity:yc.Opt(r("entity_predicate")),type:yc.Opt(r("damage_source_predicate"))},{context:"damage"}))};var Nc={};Object.defineProperty(Nc,"__esModule",{value:!0}),Nc.initRecipeSchemas=void 0;const kc=Be;Nc.initRecipeSchemas=function(e,t){const r=kc.Reference.bind(void 0,e),n=kc.StringNode.bind(void 0,t);e.register("recipe",kc.Mod(kc.ObjectNode({type:n({validator:"resource",params:{pool:"recipe_serializer"}}),[kc.Switch]:[{push:"type"}],[kc.Case]:{"minecraft:crafting_shaped":{group:kc.Opt(n({enum:"recipe_group",additional:!0})),pattern:kc.ListNode(n()),key:kc.MapNode(n(),r("recipe_ingredient")),result:r("recipe_result")},"minecraft:crafting_shapeless":{group:kc.Opt(n()),ingredients:kc.ListNode(r("recipe_ingredient")),result:r("recipe_result")},"minecraft:smelting":{group:kc.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:kc.Opt(kc.NumberNode()),cookingtime:kc.Opt(kc.Mod(kc.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:kc.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:kc.Opt(kc.NumberNode()),cookingtime:kc.Opt(kc.Mod(kc.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:kc.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:kc.Opt(kc.NumberNode()),cookingtime:kc.Opt(kc.Mod(kc.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:kc.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:kc.Opt(kc.NumberNode()),cookingtime:kc.Opt(kc.Mod(kc.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:kc.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),count:kc.NumberNode({integer:!0})},"minecraft:smithing":{group:kc.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",kc.Mod(kc.ChoiceNode([{type:"object",node:r("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:kc.ListNode(r("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",kc.Mod(kc.ObjectNode({item:kc.Opt(n({validator:"resource",params:{pool:"item"}})),tag:kc.Opt(n({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",kc.Mod(kc.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),count:kc.Opt(kc.Mod(kc.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var wc={};Object.defineProperty(wc,"__esModule",{value:!0}),wc.initTagsSchemas=void 0;const Oc=Be;wc.initTagsSchemas=function(e,t){const r=Oc.StringNode.bind(void 0,t),n=e=>Oc.Mod(Oc.ObjectNode({replace:Oc.Opt(Oc.BooleanNode()),values:Oc.ListNode(Oc.ChoiceNode([{type:"string",node:r({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:Oc.ObjectNode({id:r({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:Oc.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 xc={};Object.defineProperty(xc,"__esModule",{value:!0}),xc.initTextComponentSchemas=void 0;const Sc=Be;xc.initTextComponentSchemas=function(e,t){const r=Sc.Reference.bind(void 0,e),n=Sc.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",Sc.Mod(Sc.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:Sc.NumberNode(),change:e=>{const t=parseFloat(i(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:Sc.BooleanNode(),change:e=>{const t=i(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={color:Sc.Opt(n()),font:Sc.Opt(n()),bold:Sc.Opt(Sc.BooleanNode()),italic:Sc.Opt(Sc.BooleanNode()),underlined:Sc.Opt(Sc.BooleanNode()),strikethrough:Sc.Opt(Sc.BooleanNode()),obfuscated:Sc.Opt(Sc.BooleanNode()),insertion:Sc.Opt(n()),clickEvent:Sc.Opt(Sc.ObjectNode({action:n({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[Sc.Switch]:[{push:"action"}],[Sc.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:Sc.Opt(Sc.ObjectNode({action:n({enum:["show_text","show_item","show_entity"]}),[Sc.Switch]:[{push:"action"}],[Sc.Case]:{show_text:{value:Sc.Opt(r("text_component")),contents:Sc.Opt(r("text_component"))},show_item:{value:Sc.Opt(n({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:Sc.Opt(Sc.ObjectNode({id:n({validator:"resource",params:{pool:"item"}}),count:Sc.Opt(Sc.NumberNode({integer:!0})),tag:Sc.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:Sc.Opt(Sc.ObjectNode({name:Sc.Opt(n()),type:Sc.Opt(n()),id:Sc.Opt(n())})),contents:Sc.Opt(Sc.Mod(Sc.ObjectNode({name:Sc.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:Sc.Opt(r("text_component_list"))};e.register("text_component_object",Sc.Mod(Sc.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:Sc.ObjectNode(s({text:n()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:Sc.ObjectNode(s({translate:n(),with:Sc.Opt(r("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:Sc.ObjectNode(s({score:Sc.ObjectNode({name:n({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:n({validator:"objective"}),value:Sc.Opt(n())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:Sc.ObjectNode(s({selector:n({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:Sc.Opt(r("text_component"))},o))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:Sc.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:Sc.ObjectNode(s({nbt:n({validator:"nbt_path"}),block:Sc.Opt(n({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:Sc.Opt(n({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:Sc.Opt(n({validator:"resource",params:{pool:"$storage"}})),interpret:Sc.Opt(Sc.BooleanNode()),separator:Sc.Opt(r("text_component"))},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",Sc.Mod(Sc.ListNode(r("text_component")),{default:()=>[{text:""}]}))};var jc={},Ac={};Object.defineProperty(Ac,"__esModule",{value:!0}),Ac.initBiomeSchemas=void 0;const Mc=Be;Ac.initBiomeSchemas=function(e,t){const r=Mc.StringNode.bind(void 0,t);e.register("biome",Mc.Mod(Mc.ObjectNode({surface_builder:r({validator:"resource",params:{pool:"$worldgen/configured_surface_builder"}}),depth:Mc.NumberNode(),scale:Mc.NumberNode(),temperature:Mc.NumberNode(),downfall:Mc.NumberNode(),precipitation:r({enum:["none","rain","snow"]}),temperature_modifier:Mc.Opt(r({enum:["none","frozen"]})),category:r({enum:"biome_category"}),player_spawn_friendly:Mc.Opt(Mc.BooleanNode()),creature_spawn_probability:Mc.Opt(Mc.NumberNode({min:0,max:1})),effects:Mc.ObjectNode({sky_color:Mc.NumberNode({color:!0}),fog_color:Mc.NumberNode({color:!0}),water_color:Mc.NumberNode({color:!0}),water_fog_color:Mc.NumberNode({color:!0}),grass_color:Mc.Opt(Mc.NumberNode({color:!0})),foliage_color:Mc.Opt(Mc.NumberNode({color:!0})),grass_color_modifier:Mc.Opt(r({enum:["none","dark_forest","swamp"]})),ambient_sound:Mc.Opt(r()),mood_sound:Mc.Opt(Mc.ObjectNode({sound:r(),tick_delay:Mc.NumberNode({integer:!0}),block_search_extent:Mc.NumberNode({integer:!0}),offset:Mc.NumberNode()})),additions_sound:Mc.Opt(Mc.ObjectNode({sound:r(),tick_chance:Mc.NumberNode({min:0,max:1})})),music:Mc.Opt(Mc.ObjectNode({sound:r(),min_delay:Mc.NumberNode({integer:!0,min:0}),max_delay:Mc.NumberNode({integer:!0,min:0}),replace_current_music:Mc.BooleanNode()})),particle:Mc.Opt(Mc.ObjectNode({options:Mc.ObjectNode({type:r()}),probability:Mc.NumberNode({min:0,max:1})}))}),starts:Mc.ListNode(r({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),spawners:Mc.MapNode(r({enum:["monster","creature","ambient","underground_water_creature","water_creature","water_ambient","misc"]}),Mc.Mod(Mc.ListNode(Mc.ObjectNode({type:r({validator:"resource",params:{pool:"entity_type"}}),weight:Mc.NumberNode({integer:!0}),minCount:Mc.NumberNode({integer:!0}),maxCount:Mc.NumberNode({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:Mc.MapNode(r({validator:"resource",params:{pool:"entity_type"}}),Mc.Mod(Mc.ObjectNode({energy_budget:Mc.NumberNode(),charge:Mc.NumberNode()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:Mc.MapNode(r({enum:["air","liquid"]}),Mc.Mod(Mc.ListNode(r({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:Mc.ListNode(Mc.Mod(Mc.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 Cc={};Object.defineProperty(Cc,"__esModule",{value:!0}),Cc.initCarverSchemas=void 0;const Lc=Be,Pc=Qs;Cc.initCarverSchemas=function(e,t){const r=Lc.Reference.bind(void 0,e),n=Lc.StringNode.bind(void 0,t),i={vertical_rotation:Pc.FloatProvider(),shape:Lc.ObjectNode({distance_factor:Pc.FloatProvider(),thickness:Pc.FloatProvider(),width_smoothness:Lc.NumberNode({integer:!0,min:0}),horizontal_radius_factor:Pc.FloatProvider(),vertical_radius_default_factor:Lc.NumberNode(),vertical_radius_center_factor:Lc.NumberNode()})},o={horizontal_radius_multiplier:Pc.FloatProvider(),vertical_radius_multiplier:Pc.FloatProvider(),floor_level:Pc.FloatProvider({min:-1,max:1})};e.register("configured_carver",Lc.Mod(Lc.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/carver"}}),config:Lc.ObjectNode({probability:Lc.NumberNode({min:0,max:1}),y:r("height_provider"),yScale:Pc.FloatProvider(),lava_level:r("vertical_anchor"),aquifers_enabled:Lc.BooleanNode(),debug_settings:Lc.Opt(Lc.ObjectNode({debug_mode:Lc.Opt(Lc.BooleanNode()),air_state:Lc.Opt(r("block_state")),water_state:Lc.Opt(r("block_state")),lava_state:Lc.Opt(r("block_state")),barrier_state:Lc.Opt(r("block_state"))})),[Lc.Switch]:["pop",{push:"type"}],[Lc.Case]:{"minecraft:canyon":i,"minecraft:cave":o,"minecraft:nether_cave":o}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))};var Bc={};Object.defineProperty(Bc,"__esModule",{value:!0}),Bc.initDecoratorSchemas=void 0;const Ic=Be,Tc=Qs;Bc.initDecoratorSchemas=function(e,t){const r=Ic.Reference.bind(void 0,e),n=Ic.StringNode.bind(void 0,t),i={count:Tc.IntProvider({min:0,max:256})};e.register("configured_decorator",Ic.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/decorator"}}),config:Ic.ObjectNode({[Ic.Switch]:["pop",{push:"type"}],[Ic.Case]:{"minecraft:carving_mask":{step:n({enum:"generation_step"})},"minecraft:cave_surface":{surface:n({enum:["floor","ceiling"]}),floor_to_ceiling_search_range:Ic.NumberNode({integer:!0})},"minecraft:chance":{chance:Ic.NumberNode({integer:!0,min:0})},"minecraft:count":i,"minecraft:count_extra":{count:Ic.NumberNode({integer:!0,min:0}),extra_count:Ic.NumberNode({integer:!0,min:0}),extra_chance:Ic.NumberNode({min:0,max:1})},"minecraft:count_multilayer":i,"minecraft:count_noise":{noise_level:Ic.NumberNode(),below_noise:Ic.NumberNode({integer:!0}),above_noise:Ic.NumberNode({integer:!0})},"minecraft:count_noise_biased":{noise_to_count_ratio:Ic.NumberNode({integer:!0}),noise_factor:Ic.NumberNode(),noise_offset:Ic.Opt(Ic.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:Ic.NumberNode({integer:!0,min:0})},"minecraft:range":{height:r("height_provider")},"minecraft:water_depth_threshold":{max_water_depth:Ic.NumberNode({integer:!0})}}},{context:"decorator",category:"predicate"})},{context:"decorator",category:"predicate"}))};var zc={},Rc={};Object.defineProperty(Rc,"__esModule",{value:!0}),Rc.initProcessorListSchemas=Rc.Processors=void 0;const Fc=Be;Rc.initProcessorListSchemas=function(e,t){const r=Fc.Reference.bind(void 0,e),n=Fc.StringNode.bind(void 0,t);Rc.Processors=Fc.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",Fc.Mod(Fc.ObjectNode({processors:Fc.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",Fc.Mod(Fc.ObjectNode({processor_type:n({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[Fc.Switch]:[{push:"processor_type"}],[Fc.Case]:{"minecraft:block_age":{mossiness:Fc.NumberNode()},"minecraft:block_ignore":{blocks:Fc.ListNode(r("block_state"))},"minecraft:block_rot":{integrity:Fc.NumberNode({min:0,max:1})},"minecraft:gravity":{heightmap:n({enum:"heightmap_type"}),offset:Fc.NumberNode({integer:!0})},"minecraft:protected_blocks":{value:n({validator:"resource",params:{pool:"$tag/block"}})},"minecraft:rule":{rules:Fc.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",Fc.Mod(Fc.ObjectNode({position_predicate:Fc.Opt(r("pos_rule_test")),location_predicate:r("rule_test"),input_predicate:r("rule_test"),output_state:r("block_state"),output_nbt:Fc.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:Fc.Opt(Fc.NumberNode({min:0,max:255,integer:!0})),max_dist:Fc.Opt(Fc.NumberNode({min:0,max:255,integer:!0})),min_chance:Fc.Opt(Fc.NumberNode({min:0,max:1})),max_chance:Fc.Opt(Fc.NumberNode({min:0,max:1}))};e.register("pos_rule_test",Fc.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"pos_rule_test"}}),[Fc.Switch]:[{push:"predicate_type"}],[Fc.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",Fc.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"rule_test"}}),[Fc.Switch]:[{push:"predicate_type"}],[Fc.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:Fc.NumberNode({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:r("block_state"),probability:Fc.NumberNode({min:0,max:1})},"minecraft:tag_match":{tag:n({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))},Object.defineProperty(zc,"__esModule",{value:!0}),zc.initFeatureSchemas=void 0;const Ec=Be,Dc=Qs,$c=Rc;zc.initFeatureSchemas=function(e,t){const r=Ec.Reference.bind(void 0,e),n=Ec.StringNode.bind(void 0,t),i={can_replace:Ec.Opt(Ec.BooleanNode()),project:Ec.Opt(Ec.BooleanNode()),need_water:Ec.Opt(Ec.BooleanNode()),xspread:Ec.Opt(Ec.NumberNode({integer:!0,min:0})),yspread:Ec.Opt(Ec.NumberNode({integer:!0,min:0})),zspread:Ec.Opt(Ec.NumberNode({integer:!0,min:0})),tries:Ec.Opt(Ec.NumberNode({integer:!0,min:1})),state_provider:r("block_state_provider"),block_placer:r("block_placer"),whitelist:Ec.ListNode(r("block_state")),blacklist:Ec.ListNode(r("block_state"))},o={state:r("block_state"),radius:Dc.IntProvider({min:0,max:8}),half_height:Ec.NumberNode({integer:!0,min:0,max:4}),targets:Ec.ListNode(r("block_state"))},a={cap_provider:r("block_state_provider"),stem_provider:r("block_state_provider"),foliage_radius:Ec.Opt(Ec.NumberNode({integer:!0}))},s=Ec.ObjectNode({target:r("rule_test"),state:r("block_state")}),c={size:Ec.NumberNode({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:Ec.NumberNode({min:0,max:1}),targets:Ec.ListNode(s)},l=Ec.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:r("configured_feature")}],{choiceContext:"feature"}),d={surface:n({enum:["floor","ceiling"]}),depth:Dc.IntProvider({min:1,max:128}),vertical_range:Ec.NumberNode({integer:!0,min:1,max:256}),extra_bottom_block_chance:Ec.NumberNode({min:0,max:1}),extra_edge_column_chance:Ec.NumberNode({min:0,max:1}),vegetation_chance:Ec.NumberNode({min:0,max:1}),xz_radius:Dc.IntProvider(),replaceable:n({validator:"resource",params:{pool:"$tag/block"}}),ground_state:r("block_state_provider"),vegetation_feature:l};e.register("configured_feature",Ec.Mod(Ec.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature"}}),config:Ec.ObjectNode({[Ec.Switch]:["pop",{push:"type"}],[Ec.Case]:{"minecraft:bamboo":{probability:Ec.NumberNode({min:0,max:1})},"minecraft:basalt_columns":{reach:Dc.IntProvider({min:0,max:3}),height:Dc.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:Dc.IntProvider({min:0,max:16}),rim_size:Dc.IntProvider({min:0,max:16})},"minecraft:disk":o,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:Ec.NumberNode({integer:!0,min:1,max:512}),height:Dc.IntProvider({min:0,max:128}),radius:Dc.IntProvider({min:0,max:128}),max_stalagmite_stalactite_height_diff:Ec.NumberNode({integer:!0,min:0,max:64}),height_deviation:Ec.NumberNode({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:Dc.IntProvider({min:0,max:128}),density:Dc.FloatProvider({min:0,max:2}),wetness:Dc.FloatProvider({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:Ec.NumberNode({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:Ec.NumberNode({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:Ec.NumberNode({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:Ec.BooleanNode(),exit:Ec.Opt(r("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:Ec.Opt(Ec.BooleanNode()),crystal_beam_target:Ec.Opt(r("block_pos")),spikes:Ec.ListNode(Ec.ObjectNode({centerX:Ec.Opt(Ec.NumberNode({integer:!0})),centerZ:Ec.Opt(Ec.NumberNode({integer:!0})),radius:Ec.Opt(Ec.NumberNode({integer:!0})),height:Ec.Opt(Ec.NumberNode({integer:!0})),guarded:Ec.Opt(Ec.BooleanNode())}))},"minecraft:fill_layer":{state:r("block_state"),height:Ec.NumberNode({integer:!0,min:0,max:255})},"minecraft:flower":i,"minecraft:forest_rock":{state:r("block_state")},"minecraft:fossil":{max_empty_corners_allowed:Ec.NumberNode({integer:!0,min:0,max:7}),fossil_structures:Ec.ListNode(n({validator:"resource",params:{pool:"$structure"}})),overlay_structures:Ec.ListNode(n({validator:"resource",params:{pool:"$structure"}})),fossil_processors:$c.Processors,overlay_processors:$c.Processors},"minecraft:geode":{blocks:Ec.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:Ec.ListNode(r("block_state")),cannot_replace:n({validator:"resource",params:{pool:"$tag/block"}}),invalid_blocks:n({validator:"resource",params:{pool:"$tag/block"}})}),layers:Ec.ObjectNode({filling:Ec.Opt(Ec.NumberNode({min:.01,max:50})),inner_layer:Ec.Opt(Ec.NumberNode({min:.01,max:50})),middle_layer:Ec.Opt(Ec.NumberNode({min:.01,max:50})),outer_layer:Ec.Opt(Ec.NumberNode({min:.01,max:50}))}),crack:Ec.ObjectNode({generate_crack_chance:Ec.Opt(Ec.NumberNode({min:0,max:1})),base_crack_size:Ec.Opt(Ec.NumberNode({min:0,max:5})),crack_point_offset:Ec.Opt(Ec.NumberNode({min:0,max:10,integer:!0}))}),noise_multiplier:Ec.Opt(Ec.NumberNode({min:0,max:1})),use_potential_placements_chance:Ec.Opt(Ec.NumberNode({min:0,max:1})),use_alternate_layer0_chance:Ec.Opt(Ec.NumberNode({min:0,max:1})),placements_require_layer0_alternate:Ec.Opt(Ec.BooleanNode()),outer_wall_distance:Ec.Opt(Dc.IntProvider({min:1,max:20})),distribution_points:Ec.Opt(Dc.IntProvider({min:1,max:20})),point_offset:Ec.Opt(Dc.IntProvider({min:0,max:10})),min_gen_offset:Ec.Opt(Ec.NumberNode({integer:!0})),max_gen_offset:Ec.Opt(Ec.NumberNode({integer:!0})),invalid_blocks_threshold:Ec.NumberNode({integer:!0})},"minecraft:glow_lichen":{search_range:Ec.Opt(Ec.NumberNode({min:1,max:64,integer:!0})),chance_of_spreading:Ec.Opt(Ec.NumberNode({min:0,max:1})),can_place_on_floor:Ec.Opt(Ec.BooleanNode()),can_place_on_ceiling:Ec.Opt(Ec.BooleanNode()),can_place_on_wall:Ec.Opt(Ec.BooleanNode()),can_be_placed_on:Ec.ListNode(r("block_state"))},"minecraft:growing_plant":{direction:n({enum:["up","down","north","east","south","west"]}),allow_water:Ec.BooleanNode(),height_distribution:Ec.ListNode(Ec.ObjectNode({weight:Ec.NumberNode({integer:!0}),data:Dc.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:Ec.Opt(Ec.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:Ec.Opt(Ec.NumberNode({integer:!0,min:1,max:512})),column_radius:Dc.IntProvider({min:0,max:60}),height_scale:Dc.FloatProvider({min:0,max:20}),max_column_radius_to_cave_height_ratio:Ec.NumberNode({min:0,max:1}),stalactite_bluntness:Dc.FloatProvider({min:.1,max:10}),stalagmite_bluntness:Dc.FloatProvider({min:.1,max:10}),wind_speed:Dc.FloatProvider({min:0,max:2}),min_radius_for_wind:Ec.NumberNode({integer:!0,min:0,max:100}),min_bluntness_for_wind:Ec.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:Dc.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:Ec.ListNode(Ec.ObjectNode({chance:Ec.NumberNode({min:0,max:1}),feature:l})),default:l},"minecraft:replace_single_block":{targets:Ec.ListNode(s)},"minecraft:root_system":{required_vertical_space_for_tree:Ec.NumberNode({integer:!0,min:1,max:64}),root_radius:Ec.NumberNode({integer:!0,min:1,max:64}),root_placement_attempts:Ec.NumberNode({integer:!0,min:1,max:256}),root_column_max_height:Ec.NumberNode({integer:!0,min:1,max:4096}),hanging_root_radius:Ec.NumberNode({integer:!0,min:1,max:64}),hanging_roots_vertical_span:Ec.NumberNode({integer:!0,min:0,max:16}),hanging_root_placement_attempts:Ec.NumberNode({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:Ec.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:Dc.IntProvider({min:0,max:256})},"minecraft:seagrass":{probability:Ec.NumberNode({min:0,max:1})},"minecraft:simple_block":{to_place:r("block_state_provider"),place_on:Ec.Opt(Ec.ListNode(r("block_state"))),place_in:Ec.Opt(Ec.ListNode(r("block_state"))),place_under:Ec.Opt(Ec.ListNode(r("block_state")))},"minecraft:simple_random_selector":{features:Ec.ListNode(l)},"minecraft:small_dripstone":{max_placements:Ec.Opt(Ec.NumberNode({integer:!0,min:0,max:100})),empty_space_search_radius:Ec.Opt(Ec.NumberNode({integer:!0,min:0,max:20})),max_offset_from_origin:Ec.Opt(Ec.NumberNode({integer:!0,min:0,max:20})),chance_of_taller_dripstone:Ec.Opt(Ec.NumberNode({min:0,max:1}))},"minecraft:spring_feature":{state:r("fluid_state"),rock_count:Ec.NumberNode({integer:!0}),hole_count:Ec.NumberNode({integer:!0}),requires_block_below:Ec.BooleanNode(),valid_blocks:Ec.ListNode(n({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{ignore_vines:Ec.Opt(Ec.BooleanNode()),force_dirt:Ec.Opt(Ec.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:Ec.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:Ec.NumberNode({integer:!0,min:0,max:32}),height_rand_a:Ec.NumberNode({integer:!0,min:0,max:24}),height_rand_b:Ec.NumberNode({integer:!0,min:0,max:24}),[Ec.Switch]:[{push:"type"}],[Ec.Case]:{"minecraft:bending_trunk_placer":{bend_length:Dc.IntProvider({min:1,max:64}),min_height_for_leaves:Ec.Opt(Ec.NumberNode({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:Ec.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:Dc.IntProvider({min:0,max:16}),offset:Dc.IntProvider({min:0,max:16}),[Ec.Switch]:[{push:"type"}],[Ec.Case]:{"minecraft:blob_foliage_placer":{height:Ec.NumberNode({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:Ec.NumberNode({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:Ec.NumberNode({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:Ec.NumberNode({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:Dc.IntProvider({min:0,max:24})},"minecraft:pine_foliage_placer":{height:Dc.IntProvider({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:Dc.IntProvider({min:1,max:512}),leaf_placement_attempts:Ec.NumberNode({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:Dc.IntProvider({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:Ec.ListNode(Ec.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[Ec.Switch]:[{push:"type"}],[Ec.Case]:{"minecraft:alter_ground":{provider:r("block_state_provider")},"minecraft:beehive":{probability:Ec.NumberNode({min:0,max:1})},"minecraft:cocoa":{probability:Ec.NumberNode({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:underwater_magma":{floor_search_range:Ec.NumberNode({integer:!0,min:0,max:512}),placement_radius_around_floor:Ec.NumberNode({integer:!0,min:0,max:64}),placement_probability_per_valid_position:Ec.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",Ec.Mod(Ec.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:Ec.Opt(Ec.NumberNode({min:0,max:80})),[Ec.Switch]:[{push:"type"}],[Ec.Case]:{"minecraft:two_layers_feature_size":{limit:Ec.Opt(Ec.NumberNode({integer:!0,min:0,max:81})),lower_size:Ec.Opt(Ec.NumberNode({integer:!0,min:0,max:16})),upper_size:Ec.Opt(Ec.NumberNode({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:Ec.Opt(Ec.NumberNode({integer:!0,min:0,max:80})),upper_limit:Ec.Opt(Ec.NumberNode({integer:!0,min:0,max:80})),lower_size:Ec.Opt(Ec.NumberNode({integer:!0,min:0,max:16})),middle_size:Ec.Opt(Ec.NumberNode({integer:!0,min:0,max:16})),upper_size:Ec.Opt(Ec.NumberNode({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})})),e.register("block_state_provider",Ec.Mod(Ec.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[Ec.Switch]:[{push:"type"}],[Ec.Case]:{"minecraft:randomized_int_state_provider":{property:n(),values:Dc.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:Ec.ListNode(Ec.Mod(Ec.ObjectNode({weight:Ec.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",Ec.Mod(Ec.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/block_placer_type"}}),[Ec.Switch]:[{push:"type"}],[Ec.Case]:{"minecraft:column_placer":{size:Dc.IntProvider({min:0})}}},{context:"block_placer"}),{default:()=>({type:"minecraft:simple_block_placer"})}))};var Uc={};Object.defineProperty(Uc,"__esModule",{value:!0}),Uc.initNoiseSettingsSchemas=void 0;const qc=Be,Zc=Qs;Uc.initNoiseSettingsSchemas=function(e,t){const r=qc.Reference.bind(void 0,e),n=qc.StringNode.bind(void 0,t);e.register("noise_settings",qc.Mod(qc.ObjectNode({name:qc.Mod(n({validator:"resource",params:{pool:"$worldgen/noise_settings",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),bedrock_roof_position:qc.NumberNode({integer:!0}),bedrock_floor_position:qc.NumberNode({integer:!0}),sea_level:qc.NumberNode({integer:!0}),min_surface_level:qc.NumberNode({integer:!0}),disable_mob_generation:qc.BooleanNode(),noise_caves_enabled:qc.BooleanNode(),noodle_caves_enabled:qc.BooleanNode(),aquifers_enabled:qc.BooleanNode(),deepslate_enabled:qc.BooleanNode(),ore_veins_enabled:qc.BooleanNode(),default_block:r("block_state"),default_fluid:r("block_state"),noise:qc.ObjectNode({min_y:qc.NumberNode({integer:!0,min:-2048,max:2047}),height:qc.NumberNode({integer:!0,min:0,max:4096}),density_factor:qc.NumberNode(),density_offset:qc.NumberNode(),size_horizontal:qc.NumberNode({integer:!0}),size_vertical:qc.NumberNode({integer:!0}),simplex_surface_noise:qc.BooleanNode(),random_density_offset:qc.Opt(qc.BooleanNode()),island_noise_override:qc.Opt(qc.BooleanNode()),amplified:qc.Opt(qc.BooleanNode()),sampling:qc.ObjectNode({xz_scale:qc.NumberNode(),y_scale:qc.NumberNode(),xz_factor:qc.NumberNode(),y_factor:qc.NumberNode()}),bottom_slide:qc.ObjectNode({target:qc.NumberNode({integer:!0}),size:qc.NumberNode({integer:!0,min:0}),offset:qc.NumberNode({integer:!0})}),top_slide:qc.ObjectNode({target:qc.NumberNode({integer:!0}),size:qc.NumberNode({integer:!0,min:0}),offset:qc.NumberNode({integer:!0})})}),structures:r("generator_structures")},{context:"noise_settings"}),(e=>({default:()=>Zc.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",qc.ObjectNode({stronghold:qc.Opt(qc.ObjectNode({distance:qc.NumberNode({integer:!0,min:0,max:1023}),spread:qc.NumberNode({integer:!0,min:0,max:1023}),count:qc.NumberNode({integer:!0,min:1,max:4095})})),structures:qc.MapNode(n({validator:"resource",params:{pool:"worldgen/structure_feature"}}),qc.Mod(qc.ObjectNode({spacing:qc.NumberNode({integer:!0,min:0,max:4096}),separation:qc.Mod(qc.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:qc.NumberNode({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),e.register("generator_layer",qc.Mod(qc.ObjectNode({block:n({validator:"resource",params:{pool:"block"}}),height:qc.NumberNode({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})}))};var Hc={};Object.defineProperty(Hc,"__esModule",{value:!0}),Hc.initStructureFeatureSchemas=void 0;const Wc=Be;Hc.initStructureFeatureSchemas=function(e,t){const r=Wc.StringNode.bind(void 0,t),n=Wc.Reference.bind(void 0,e),i={start_pool:r({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:Wc.NumberNode({integer:!0})};e.register("configured_structure_feature",Wc.Mod(Wc.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:Wc.ObjectNode({[Wc.Switch]:["pop",{push:"type"}],[Wc.Case]:{"minecraft:bastion_remnant":i,"minecraft:buried_treasure":{probability:Wc.NumberNode({min:0,max:1})},"minecraft:mineshaft":{type:r({enum:["normal","mesa"]}),probability:Wc.NumberNode({min:0,max:1})},"minecraft:nether_fossil":{height:n("height_provider")},"minecraft:ocean_ruin":{biome_temp:r({enum:["cold","warm"]}),large_probability:Wc.NumberNode({min:0,max:1}),cluster_probability:Wc.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:Wc.Opt(Wc.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 Gc={};Object.defineProperty(Gc,"__esModule",{value:!0}),Gc.initSurfaceBuilderSchemas=void 0;const Xc=Be;Gc.initSurfaceBuilderSchemas=function(e,t){const r=Xc.StringNode.bind(void 0,t),n=Xc.Reference.bind(void 0,e);e.register("configured_surface_builder",Xc.Mod(Xc.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/surface_builder"}}),config:Xc.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 Yc={};Object.defineProperty(Yc,"__esModule",{value:!0}),Yc.initTemplatePoolSchemas=void 0;const Vc=Be,Jc=Rc;Yc.initTemplatePoolSchemas=function(e,t){const r=Vc.Reference.bind(void 0,e),n=Vc.StringNode.bind(void 0,t);e.register("template_pool",Vc.Mod(Vc.ObjectNode({name:n(),fallback:n(),elements:Vc.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",Vc.Mod(Vc.ObjectNode({weight:Vc.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",Vc.Mod(Vc.ObjectNode({element_type:n({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:n({enum:["rigid","terrain_matching"]}),[Vc.Switch]:[{push:"element_type"}],[Vc.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:Jc.Processors},"minecraft:list_pool_element":{elements:Vc.ListNode(r("template_element"))},"minecraft:single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:Jc.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))},Object.defineProperty(jc,"__esModule",{value:!0}),jc.initWorldgenSchemas=void 0;const Kc=Ac,Qc=Cc,el=Bc,tl=zc,rl=Uc,nl=Rc,il=Hc,ol=Gc,al=Yc;jc.initWorldgenSchemas=function(e,t){nl.initProcessorListSchemas(e,t),Kc.initBiomeSchemas(e,t),Qc.initCarverSchemas(e,t),el.initDecoratorSchemas(e,t),tl.initFeatureSchemas(e,t),rl.initNoiseSettingsSchemas(e,t),il.initStructureFeatureSchemas(e,t),ol.initSurfaceBuilderSchemas(e,t),al.initTemplatePoolSchemas(e,t)};var sl={};Object.defineProperty(sl,"__esModule",{value:!0}),sl.initWorldSettingsSchemas=void 0;const cl=Be;sl.initWorldSettingsSchemas=function(e,t){const r=cl.Reference.bind(void 0,e),n=cl.StringNode.bind(void 0,t);e.register("world_settings",cl.Mod(cl.ObjectNode({generate_features:cl.BooleanNode(),bonus_chest:cl.BooleanNode(),seed:cl.NumberNode({integer:!0}),dimensions:cl.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(Vs,"__esModule",{value:!0}),Vs.initSchemas=void 0;const ll=Js,dl=Qs,ul=ec,pl=nc,ml=ac,_l=lc,fl=pc,hl=gc,gl=vc,bl=Nc,vl=wc,yl=xc,Nl=jc,kl=sl;Vs.initSchemas=function(e,t){dl.initCommonSchemas(e,t),ll.initAdvancementSchemas(e,t),ul.initConditionSchemas(e,t),ml.initDimensionTypeSchemas(e,t),pl.initDimensionSchemas(e,t),_l.initItemModifierSchemas(e,t),fl.initLootTableSchemas(e,t),hl.initPackMcmetaSchemas(e,t),gl.initPredicatesSchemas(e,t),bl.initRecipeSchemas(e,t),vl.initTagsSchemas(e,t),yl.initTextComponentSchemas(e,t),Nl.initWorldgenSchemas(e,t),kl.initWorldSettingsSchemas(e,t)};var wl=Pe&&Pe.__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]}),Ol=Pe&&Pe.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),xl=Pe&&Pe.__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)&&wl(t,e,r);return Ol(t,e),t};Object.defineProperty(Xs,"__esModule",{value:!0});var Sl=Xs.getSchemas=Xs.getCollections=void 0;const jl=Be,Al=Ys,Ml=Vs;var Cl=Xs.lootContext=xl(mc);var Ll=Xs.getCollections=function(){const e=new jl.CollectionRegistry;return Al.initCollections(e),e};Sl=Xs.getSchemas=function(e){const t=new jl.SchemaRegistry;return Ml.initSchemas(t,e),t};var Pl=Object.freeze(Object.assign(Object.create(null),Xs,{[Symbol.toStringTag]:"Module",get getSchemas(){return Sl},get getCollections(){return Ll},lootContext:Cl,default:Xs})),Bl={},Il={};Object.defineProperty(Il,"__esModule",{value:!0}),Il.initCollections=void 0,Il.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 Tl={},zl={};Object.defineProperty(zl,"__esModule",{value:!0}),zl.initAdvancementSchemas=void 0;const Rl=Be;zl.initAdvancementSchemas=function(e,t){const r=Rl.Reference.bind(void 0,e),n=Rl.StringNode.bind(void 0,t),i=Rl.ChoiceNode([{type:"object",node:Rl.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:Rl.ListNode(r("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",Rl.Mod(Rl.ObjectNode({display:Rl.Opt(Rl.Mod(Rl.ObjectNode({icon:Rl.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),nbt:Rl.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:r("text_component"),description:r("text_component"),background:Rl.Opt(n()),frame:Rl.Opt(n({enum:["task","challenge","goal"]})),show_toast:Rl.Opt(Rl.BooleanNode()),announce_to_chat:Rl.Opt(Rl.BooleanNode()),hidden:Rl.Opt(Rl.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:Rl.Opt(n({validator:"resource",params:{pool:"$advancement"}})),criteria:Rl.MapNode(n(),r("advancement_criteria")),requirements:Rl.Opt(Rl.ListNode(Rl.ListNode(n()))),rewards:Rl.Opt(Rl.ObjectNode({function:Rl.Opt(n({validator:"resource",params:{pool:"$function"}})),loot:Rl.Opt(Rl.ListNode(n({validator:"resource",params:{pool:"$loot_table"}}))),recipes:Rl.Opt(Rl.ListNode(n({validator:"resource",params:{pool:"$recipe"}}))),experience:Rl.Opt(Rl.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",Rl.ObjectNode({trigger:n({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:Rl.Opt(Rl.ObjectNode({player:Rl.Mod(i,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[Rl.Switch]:["pop",{push:"trigger"}],[Rl.Case]:{"minecraft:bee_nest_destroyed":{block:Rl.Opt(n({validator:"resource",params:{pool:"block"}})),num_bees_inside:Rl.Opt(Rl.NumberNode({integer:!0})),item:Rl.Opt(r("item_predicate"))},"minecraft:bred_animals":{parent:i,partner:i,child:i},"minecraft:brewed_potion":{potion:Rl.Opt(n({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:Rl.Opt(n({validator:"resource",params:{pool:"$dimension"}})),to:Rl.Opt(n({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:Rl.Opt(Rl.ListNode(i))},"minecraft:construct_beacon":{level:r("int_bounds")},"minecraft:consume_item":{item:Rl.Opt(r("item_predicate"))},"minecraft:cured_zombie_villager":{villager:i,zombie:i},"minecraft:effects_changed":{effects:Rl.Opt(Rl.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),Rl.ObjectNode({amplifier:r("int_bounds"),duration:r("int_bounds")}))),source:Rl.Opt(i)},"minecraft:enter_block":{block:Rl.Opt(n({validator:"resource",params:{pool:"block"}})),state:Rl.Opt(Rl.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:r("int_bounds"),item:Rl.Opt(r("item_predicate"))},"minecraft:entity_hurt_player":{damage:Rl.Opt(r("damage_predicate"))},"minecraft:entity_killed_player":{entity:i,killing_blow:Rl.Opt(r("damage_source_predicate"))},"minecraft:fall_from_height":{start_position:Rl.Opt(r("location_predicate")),distance:Rl.Opt(r("distance_predicate"))},"minecraft:filled_bucket":{item:Rl.Opt(r("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:i,item:Rl.Opt(r("item_predicate"))},"minecraft:hero_of_the_village":{location:Rl.Opt(r("location_predicate"))},"minecraft:inventory_changed":{slots:Rl.Opt(Rl.ObjectNode({empty:r("int_bounds"),occupied:r("int_bounds"),full:r("int_bounds")})),items:Rl.Opt(Rl.ListNode(r("item_predicate")))},"minecraft:item_durability_changed":{delta:r("int_bounds"),durability:r("int_bounds"),item:Rl.Opt(r("item_predicate"))},"minecraft:item_used_on_block":{item:Rl.Opt(r("item_predicate")),location:Rl.Opt(r("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:r("int_bounds"),victims:Rl.Opt(Rl.ListNode(i))},"minecraft:levitation":{distance:Rl.Opt(r("distance_predicate")),duration:r("int_bounds")},"minecraft:lightning_strike":{lightning:i,bystander:i},"minecraft:location":{location:Rl.Opt(r("location_predicate"))},"minecraft:nether_travel":{start_position:Rl.Opt(r("location_predicate")),distance:Rl.Opt(r("distance_predicate"))},"minecraft:placed_block":{block:Rl.Opt(n({validator:"resource",params:{pool:"block"}})),state:Rl.Opt(Rl.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:Rl.Opt(r("item_predicate")),location:Rl.Opt(r("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:n({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:Rl.Opt(r("damage_predicate")),entity:i},"minecraft:player_interacted_with_entity":{item:Rl.Opt(r("item_predicate")),entity:i},"minecraft:player_killed_entity":{entity:i,killing_blow:Rl.Opt(r("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:n({validator:"resource",params:{pool:"$recipe"}})},"minecraft:ride_entity_in_lava":{start_position:Rl.Opt(r("location_predicate")),distance:Rl.Opt(r("distance_predicate"))},"minecraft:slept_in_bed":{location:Rl.Opt(r("location_predicate"))},"minecraft:slide_down_block":{block:Rl.Opt(n({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:Rl.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:Rl.Opt(r("entity_predicate")),item:Rl.Opt(r("item_predicate"))},"minecraft:used_ender_eye":{distance:Rl.Opt(r("float_bounds"))},"minecraft:used_totem":{item:Rl.Opt(r("item_predicate"))},"minecraft:using_item":{item:Rl.Opt(r("item_predicate"))},"minecraft:villager_trade":{villager:Rl.Opt(r("entity_predicate")),item:Rl.Opt(r("item_predicate"))},"minecraft:voluntary_exile":{location:Rl.Opt(r("location_predicate"))}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var Fl={},El={};Object.defineProperty(El,"__esModule",{value:!0}),El.initModelSchemas=void 0;const Dl=Be;El.initModelSchemas=function(e,t){Dl.Reference.bind(void 0,e);const r=Dl.StringNode.bind(void 0,t),n=(e,t,r)=>Dl.ListNode(Dl.NumberNode({min:t,max:r}),{minLength:e,maxLength:e}),i=Dl.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",Dl.Mod(Dl.ObjectNode({parent:r({validator:"resource",params:{pool:"$model"}}),ambientocclusion:Dl.Opt(Dl.BooleanNode()),gui_light:Dl.Opt(r({enum:"gui_light"})),textures:Dl.Opt(Dl.MapNode(r(),i)),elements:Dl.Opt(Dl.ListNode(Dl.ObjectNode({from:n(3,-16,32),to:n(3,-16,32),rotation:Dl.Opt(Dl.ObjectNode({origin:n(3),axis:r({enum:"axis"}),angle:Dl.NumberEnum({values:[-45,-22.5,0,22.5,45]}),rescale:Dl.Opt(Dl.BooleanNode())})),shade:Dl.Opt(Dl.BooleanNode()),faces:Dl.MapNode(r({enum:"direction"}),Dl.ObjectNode({texture:i,uv:Dl.Opt(n(4)),cullface:Dl.Opt(r({enum:"direction"})),rotation:Dl.Opt(Dl.NumberNode({integer:!0})),tintindex:Dl.Opt(Dl.NumberNode({integer:!0}))}))},{context:"model_element"}))),display:Dl.Opt(Dl.MapNode(r({enum:"display_position"}),Dl.ObjectNode({rotation:n(3),translation:n(3,-80,80),scale:n(3,-4,4)},{context:"item_transform"}))),overrides:Dl.Opt(Dl.ListNode(Dl.ObjectNode({predicate:Dl.MapNode(r({enum:"item_model_predicates"}),Dl.NumberNode()),model:r({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))};var $l={};Object.defineProperty($l,"__esModule",{value:!0}),$l.initBlockDefinitionSchemas=void 0;const Ul=Be;$l.initBlockDefinitionSchemas=function(e,t){const r=Ul.Reference.bind(void 0,e),n=Ul.StringNode.bind(void 0,t);e.register("block_definition",Ul.Mod(Ul.ChoiceNode([{type:"variants",match:e=>void 0!==e.variants,node:Ul.ObjectNode({variants:Ul.MapNode(n(),r("model_variant"))}),change:e=>({variants:{"":{}}})},{type:"multipart",match:e=>void 0!==e.multipart,node:Ul.ObjectNode({multipart:Ul.ListNode(Ul.ObjectNode({when:Ul.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:Ul.Opt(Ul.NumberEnum({integer:!0,values:[0,90,180,270]})),y:Ul.Opt(Ul.NumberEnum({integer:!0,values:[0,90,180,270]})),uvlock:Ul.Opt(Ul.BooleanNode())};e.register("model_variant",Ul.ChoiceNode([{type:"object",node:Ul.ObjectNode(i),change:e=>Array.isArray(e)&&e.length>0?e[0]:{}},{type:"list",node:Ul.ListNode(Ul.ObjectNode(c(s({},i),{weight:Ul.Opt(Ul.NumberNode({integer:!0,min:1}))}),{context:"model_variant"})),change:e=>[s({weight:1},e)]}],{context:"model_variant"})),e.register("multipart_condition",Ul.ChoiceNode([{type:"object",priority:-1,match:()=>!0,node:Ul.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:Ul.ObjectNode({OR:Ul.ListNode(r("multipart_condition"))}),change:e=>({OR:[null!=e?e:{}]})}],{context:"multipart_condition"}))},Object.defineProperty(Fl,"__esModule",{value:!0}),Fl.initAssetsSchemas=void 0;const ql=El,Zl=$l;Fl.initAssetsSchemas=function(e,t){Zl.initBlockDefinitionSchemas(e,t),ql.initModelSchemas(e,t)};var Hl={};!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=Be;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 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[i][n]}];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 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:u,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":{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":{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}}})}}(Hl);var Wl={};Object.defineProperty(Wl,"__esModule",{value:!0}),Wl.initConditionSchemas=void 0;const Gl=Be,Xl=Hl;Wl.initConditionSchemas=function(e,t){const r=Gl.Reference.bind(void 0,e),n=Gl.StringNode.bind(void 0,t);e.register("predicate",Gl.ObjectOrList(r("condition"),{choiceContext:"condition"})),e.register("condition",Gl.Mod(Gl.ObjectNode({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[Gl.Switch]:[{push:"condition"}],[Gl.Case]:Xl.ConditionCases()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var Yl={};Object.defineProperty(Yl,"__esModule",{value:!0}),Yl.initDimensionSchemas=void 0;const Vl=Be,Jl=Hl;Yl.initDimensionSchemas=function(e,t){const r=Vl.Reference.bind(void 0,e),n=Vl.StringNode.bind(void 0,t);e.register("dimension",Vl.Mod(Vl.ObjectNode({type:Jl.DimensionTypePresets(r("dimension_type")),generator:Vl.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[Vl.Switch]:[{push:"type"}],[Vl.Case]:{"minecraft:noise":{seed:Vl.NumberNode({integer:!0}),settings:Jl.NoiseSettingsPresets(r("noise_settings")),biome_source:Vl.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/biome_source"}}),[Vl.Switch]:[{push:"type"}],[Vl.Case]:{"minecraft:fixed":{biome:n({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{preset:Vl.Opt(n({validator:"resource",params:{pool:["minecraft:overworld","minecraft:nether"]}})),biomes:Vl.Mod(Vl.ListNode(r("generator_biome")),{enabled:e=>void 0===e.push("preset").get(),default:()=>[{biome:"minecraft:plains"}]})},"minecraft:checkerboard":{scale:Vl.Opt(Vl.NumberNode({integer:!0,min:0,max:62})),biomes:Vl.ListNode(n({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:Vl.NumberNode({integer:!0})}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:Vl.ObjectNode({biome:Vl.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:Vl.Opt(Vl.BooleanNode()),features:Vl.Opt(Vl.BooleanNode()),layers:Vl.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=Vl.ChoiceNode([{type:"number",node:Vl.NumberNode({min:-2,max:2}),change:e=>{var t;return null!==(t=e[0])&&void 0!==t?t:0}},{type:"list",node:Vl.ListNode(Vl.NumberNode({min:-2,max:2}),{minLength:2,maxLength:2}),change:e=>[null!=e?e:0,null!=e?e:0]}]);e.register("generator_biome",Vl.Mod(Vl.ObjectNode({biome:n({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:Vl.ObjectNode({temperature:i,humidity:i,continentalness:i,erosion:i,weirdness:i,depth:i,offset:Vl.NumberNode({min:0,max:1})})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})}))};var Kl={};Object.defineProperty(Kl,"__esModule",{value:!0}),Kl.initDimensionTypeSchemas=void 0;const Ql=Be,ed=Hl;Kl.initDimensionTypeSchemas=function(e,t){const r=Ql.StringNode.bind(void 0,t);e.register("dimension_type",Ql.Mod(Ql.ObjectNode({ultrawarm:Ql.BooleanNode(),natural:Ql.BooleanNode(),piglin_safe:Ql.BooleanNode(),respawn_anchor_works:Ql.BooleanNode(),bed_works:Ql.BooleanNode(),has_raids:Ql.BooleanNode(),has_skylight:Ql.BooleanNode(),has_ceiling:Ql.BooleanNode(),coordinate_scale:Ql.NumberNode({min:1e-5,max:3e7}),ambient_light:Ql.NumberNode(),fixed_time:Ql.Opt(Ql.NumberNode({integer:!0})),logical_height:Ql.NumberNode({integer:!0,min:0,max:4096}),effects:Ql.Opt(r({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:r({validator:"resource",params:{pool:"$tag/block"}}),min_y:Ql.NumberNode({integer:!0,min:-2048,max:2047}),height:Ql.NumberNode({integer:!0,min:0,max:4096})},{context:"dimension_type"}),(e=>({default:()=>ed.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 td={};Object.defineProperty(td,"__esModule",{value:!0}),td.initItemModifierSchemas=void 0;const rd=Be,nd=Hl;td.initItemModifierSchemas=function(e,t){const r=rd.Reference.bind(void 0,e),n=rd.StringNode.bind(void 0,t);e.register("item_modifier",rd.ObjectOrList(r("function"),{choiceContext:"function"}));const i={conditions:rd.Opt(rd.ListNode(r("condition")))};e.register("function",rd.Mod(rd.ObjectNode({function:n({validator:"resource",params:{pool:"loot_function_type"}}),[rd.Switch]:[{push:"function"}],[rd.Case]:nd.FunctionCases(i)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))};var id={},od={};Object.defineProperty(od,"__esModule",{value:!0}),od.LootFunctions=od.LootConditions=od.LootCopySources=od.LootEntitySources=od.LootTableTypes=void 0,od.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]}]]),od.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),od.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),od.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",[]]]),od.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(id,"__esModule",{value:!0}),id.initLootTableSchemas=void 0;const ad=Be,sd=od,cd=Hl;id.initLootTableSchemas=function(e,t){const r=ad.Reference.bind(void 0,e),n=ad.StringNode.bind(void 0,t),i={conditions:ad.Opt(ad.ListNode(r("loot_condition")))},o=s({functions:ad.Opt(ad.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 sd.LootTableTypes){const e=[...a,...s];i.push({match:e=>e.getModel().get(new ad.Path(["type"]))===t,node:n(o(e))})}return i.push({match:e=>!0,node:n(r)}),ad.SwitchNode(i)}const c=a(sd.LootConditions,"loot_condition_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),l=a(sd.LootFunctions,"loot_function_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),d=a(sd.LootEntitySources,"entity_source",(e=>n({enum:e}))),u=a(sd.LootCopySources,"copy_source",(e=>n({enum:e})));e.register("loot_table",ad.Mod(ad.ObjectNode({type:ad.Opt(n({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:ad.Opt(ad.ListNode(ad.Mod(ad.ObjectNode(s({rolls:r("number_provider"),bonus_rolls:ad.Opt(r("number_provider")),entries:ad.ListNode(r("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:ad.Opt(ad.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",ad.Mod(ad.ObjectNode({type:n({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:ad.Opt(ad.Mod(ad.NumberNode({integer:!0,min:1}),p)),quality:ad.Opt(ad.Mod(ad.NumberNode({integer:!0}),p)),[ad.Switch]:[{push:"type"}],[ad.Case]:{"minecraft:alternatives":s({children:ad.ListNode(r("loot_entry"))},o),"minecraft:dynamic":s({name:n()},o),"minecraft:group":s({children:ad.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:ad.ListNode(r("loot_entry"))},o),"minecraft:tag":s({name:n({validator:"resource",params:{pool:"$tag/item"}}),expand:ad.Opt(ad.BooleanNode())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",ad.Mod(ad.ObjectNode({function:l,[ad.Switch]:[{push:"function"}],[ad.Case]:cd.FunctionCases(i,u,d)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",ad.Mod(ad.ObjectNode({condition:c,[ad.Switch]:[{push:"condition"}],[ad.Case]:cd.ConditionCases(d)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",ad.Mod(ad.ObjectNode({attribute:n({validator:"resource",params:{pool:"attribute"}}),name:n(),amount:r("number_provider"),operation:n({enum:["addition","multiply_base","multiply_total"]}),slot:ad.StringOrList(n({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var ld={};Object.defineProperty(ld,"__esModule",{value:!0}),ld.initPackMcmetaSchemas=void 0;const dd=Be;ld.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",dd.Mod(dd.ObjectNode({pack:dd.Mod(dd.ObjectNode({pack_format:dd.Mod(dd.NumberNode({integer:!0,min:7,max:7}),{default:()=>7,canUpdate:(e,t)=>7!==t,update:()=>[{name:"pack_format",params:[7],newValue:7}]}),description:dd.Reference(e,"text_component")}),{default:()=>({pack_format:7,description:""})})}),{default:()=>({pack:{pack_format:7,description:""}})}))};var ud={};Object.defineProperty(ud,"__esModule",{value:!0}),ud.initPredicatesSchemas=void 0;const pd=Be;ud.initPredicatesSchemas=function(e,t){const r=pd.Reference.bind(void 0,e),n=pd.StringNode.bind(void 0,t),i=pd.ChoiceNode([{type:"string",node:n(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:pd.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:pd.ObjectNode({min:pd.Opt(pd.NumberNode({integer:!0})),max:pd.Opt(pd.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:pd.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",pd.ObjectNode({items:pd.Opt(pd.ListNode(n({validator:"resource",params:{pool:"item"}}))),tag:pd.Opt(n({validator:"resource",params:{pool:"$tag/item"}})),count:r("int_bounds"),durability:r("int_bounds"),potion:pd.Opt(n({validator:"resource",params:{pool:"potion"}})),nbt:pd.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:pd.Opt(pd.ListNode(r("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",pd.ObjectNode({enchantment:pd.Opt(n({validator:"resource",params:{pool:"enchantment"}})),levels:r("int_bounds")},{context:"enchantment"})),e.register("block_predicate",pd.ObjectNode({blocks:pd.Opt(pd.ListNode(n({validator:"resource",params:{pool:"block"}}))),tag:pd.Opt(n({validator:"resource",params:{pool:"$tag/block"}})),nbt:pd.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:pd.Opt(pd.MapNode(n(),i,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",pd.ObjectNode({fluid:pd.Opt(n({validator:"resource",params:{pool:"fluid"}})),tag:pd.Opt(n({validator:"resource",params:{pool:"$tag/fluid"}})),state:pd.Opt(pd.MapNode(n(),i))},{context:"fluid"})),e.register("location_predicate",pd.ObjectNode({position:pd.Opt(pd.ObjectNode({x:r("float_bounds"),y:r("float_bounds"),z:r("float_bounds")})),biome:pd.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:pd.Opt(n({enum:t.get("worldgen/structure_feature").map((e=>e.slice(10)))})),dimension:pd.Opt(n({validator:"resource",params:{pool:"$dimension"}})),light:pd.Opt(pd.ObjectNode({light:r("int_bounds")})),smokey:pd.Opt(pd.BooleanNode()),block:pd.Opt(r("block_predicate")),fluid:pd.Opt(r("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",pd.ObjectNode({type:n({validator:"resource",params:{pool:"stat_type"}}),stat:n(),value:r("int_bounds"),[pd.Switch]:[{push:"type"}],[pd.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",pd.ObjectNode({gamemode:pd.Opt(n({enum:"gamemode"})),level:r("int_bounds"),advancements:pd.Opt(pd.MapNode(n({validator:"resource",params:{pool:"$advancement"}}),pd.ChoiceNode([{type:"boolean",node:pd.BooleanNode(),change:e=>!0},{type:"object",node:pd.MapNode(n(),pd.BooleanNode())}]))),recipes:pd.Opt(pd.MapNode(n({validator:"resource",params:{pool:"$recipe"}}),pd.BooleanNode())),stats:pd.Opt(pd.ListNode(r("statistic_predicate"))),looking_at:pd.Opt(r("entity_predicate"))},{context:"player"})),e.register("status_effect_predicate",pd.ObjectNode({amplifier:r("int_bounds"),duration:r("int_bounds"),ambient:pd.Opt(pd.BooleanNode()),visible:pd.Opt(pd.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",pd.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",pd.ObjectNode({type:pd.Opt(n({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:pd.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:pd.Opt(n({validator:"team"})),location:pd.Opt(r("location_predicate")),stepping_on:pd.Opt(r("location_predicate")),distance:pd.Opt(r("distance_predicate")),flags:pd.Opt(pd.ObjectNode({is_on_fire:pd.Opt(pd.BooleanNode()),is_sneaking:pd.Opt(pd.BooleanNode()),is_sprinting:pd.Opt(pd.BooleanNode()),is_swimming:pd.Opt(pd.BooleanNode()),is_baby:pd.Opt(pd.BooleanNode())})),equipment:pd.Opt(pd.MapNode(n({enum:"slot"}),r("item_predicate"))),player:pd.Opt(r("player_predicate")),vehicle:pd.Opt(r("entity_predicate")),passenger:pd.Opt(r("entity_predicate")),targeted_entity:pd.Opt(r("entity_predicate")),lightning_bolt:pd.Opt(pd.ObjectNode({blocks_set_on_fire:pd.Opt(r("int_bounds")),entity_struck:pd.Opt(r("entity_predicate"))})),fishing_hook:pd.Opt(pd.ObjectNode({in_open_water:pd.Opt(pd.BooleanNode())})),effects:pd.Opt(pd.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),r("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",pd.ObjectNode({is_explosion:pd.Opt(pd.BooleanNode()),is_fire:pd.Opt(pd.BooleanNode()),is_magic:pd.Opt(pd.BooleanNode()),is_projectile:pd.Opt(pd.BooleanNode()),is_lightning:pd.Opt(pd.BooleanNode()),bypasses_armor:pd.Opt(pd.BooleanNode()),bypasses_invulnerability:pd.Opt(pd.BooleanNode()),bypasses_magic:pd.Opt(pd.BooleanNode()),source_entity:pd.Opt(r("entity_predicate")),direct_entity:pd.Opt(r("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",pd.ObjectNode({dealt:r("float_bounds"),taken:r("float_bounds"),blocked:pd.Opt(pd.BooleanNode()),source_entity:pd.Opt(r("entity_predicate")),type:pd.Opt(r("damage_source_predicate"))},{context:"damage"}))};var md={};Object.defineProperty(md,"__esModule",{value:!0}),md.initRecipeSchemas=void 0;const _d=Be;md.initRecipeSchemas=function(e,t){const r=_d.Reference.bind(void 0,e),n=_d.StringNode.bind(void 0,t);e.register("recipe",_d.Mod(_d.ObjectNode({type:n({validator:"resource",params:{pool:"recipe_serializer"}}),[_d.Switch]:[{push:"type"}],[_d.Case]:{"minecraft:crafting_shaped":{group:_d.Opt(n({enum:"recipe_group",additional:!0})),pattern:_d.ListNode(n()),key:_d.MapNode(n(),r("recipe_ingredient")),result:r("recipe_result")},"minecraft:crafting_shapeless":{group:_d.Opt(n()),ingredients:_d.ListNode(r("recipe_ingredient")),result:r("recipe_result")},"minecraft:smelting":{group:_d.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:_d.Opt(_d.NumberNode()),cookingtime:_d.Opt(_d.Mod(_d.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:_d.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:_d.Opt(_d.NumberNode()),cookingtime:_d.Opt(_d.Mod(_d.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:_d.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:_d.Opt(_d.NumberNode()),cookingtime:_d.Opt(_d.Mod(_d.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:_d.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:_d.Opt(_d.NumberNode()),cookingtime:_d.Opt(_d.Mod(_d.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:_d.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),count:_d.NumberNode({integer:!0})},"minecraft:smithing":{group:_d.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",_d.Mod(_d.ChoiceNode([{type:"object",node:r("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:_d.ListNode(r("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",_d.Mod(_d.ObjectNode({item:_d.Opt(n({validator:"resource",params:{pool:"item"}})),tag:_d.Opt(n({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",_d.Mod(_d.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),count:_d.Opt(_d.Mod(_d.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var fd={};Object.defineProperty(fd,"__esModule",{value:!0}),fd.initTagsSchemas=void 0;const hd=Be;fd.initTagsSchemas=function(e,t){const r=hd.StringNode.bind(void 0,t),n=e=>hd.Mod(hd.ObjectNode({replace:hd.Opt(hd.BooleanNode()),values:hd.ListNode(hd.ChoiceNode([{type:"string",node:r({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:hd.ObjectNode({id:r({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:hd.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 gd={};Object.defineProperty(gd,"__esModule",{value:!0}),gd.initTextComponentSchemas=void 0;const bd=Be;gd.initTextComponentSchemas=function(e,t){const r=bd.Reference.bind(void 0,e),n=bd.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",bd.Mod(bd.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:bd.NumberNode(),change:e=>{const t=parseFloat(i(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:bd.BooleanNode(),change:e=>{const t=i(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={color:bd.Opt(n()),font:bd.Opt(n()),bold:bd.Opt(bd.BooleanNode()),italic:bd.Opt(bd.BooleanNode()),underlined:bd.Opt(bd.BooleanNode()),strikethrough:bd.Opt(bd.BooleanNode()),obfuscated:bd.Opt(bd.BooleanNode()),insertion:bd.Opt(n()),clickEvent:bd.Opt(bd.ObjectNode({action:n({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[bd.Switch]:[{push:"action"}],[bd.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:bd.Opt(bd.ObjectNode({action:n({enum:["show_text","show_item","show_entity"]}),[bd.Switch]:[{push:"action"}],[bd.Case]:{show_text:{value:bd.Opt(r("text_component")),contents:bd.Opt(r("text_component"))},show_item:{value:bd.Opt(n({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:bd.Opt(bd.ObjectNode({id:n({validator:"resource",params:{pool:"item"}}),count:bd.Opt(bd.NumberNode({integer:!0})),tag:bd.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:bd.Opt(bd.ObjectNode({name:bd.Opt(n()),type:bd.Opt(n()),id:bd.Opt(n())})),contents:bd.Opt(bd.Mod(bd.ObjectNode({name:bd.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:bd.Opt(r("text_component_list"))};e.register("text_component_object",bd.Mod(bd.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:bd.ObjectNode(s({text:n()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:bd.ObjectNode(s({translate:n(),with:bd.Opt(r("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:bd.ObjectNode(s({score:bd.ObjectNode({name:n({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:n({validator:"objective"}),value:bd.Opt(n())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:bd.ObjectNode(s({selector:n({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:bd.Opt(r("text_component"))},o))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:bd.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:bd.ObjectNode(s({nbt:n({validator:"nbt_path"}),block:bd.Opt(n({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:bd.Opt(n({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:bd.Opt(n({validator:"resource",params:{pool:"$storage"}})),interpret:bd.Opt(bd.BooleanNode()),separator:bd.Opt(r("text_component"))},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",bd.Mod(bd.ListNode(r("text_component")),{default:()=>[{text:""}]}))};var vd={},yd={};Object.defineProperty(yd,"__esModule",{value:!0}),yd.initBiomeSchemas=void 0;const Nd=Be;yd.initBiomeSchemas=function(e,t){const r=Nd.StringNode.bind(void 0,t);e.register("biome",Nd.Mod(Nd.ObjectNode({temperature:Nd.NumberNode(),downfall:Nd.NumberNode(),precipitation:r({enum:["none","rain","snow"]}),temperature_modifier:Nd.Opt(r({enum:["none","frozen"]})),category:r({enum:"biome_category"}),player_spawn_friendly:Nd.Opt(Nd.BooleanNode()),creature_spawn_probability:Nd.Opt(Nd.NumberNode({min:0,max:1})),effects:Nd.ObjectNode({sky_color:Nd.NumberNode({color:!0}),fog_color:Nd.NumberNode({color:!0}),water_color:Nd.NumberNode({color:!0}),water_fog_color:Nd.NumberNode({color:!0}),grass_color:Nd.Opt(Nd.NumberNode({color:!0})),foliage_color:Nd.Opt(Nd.NumberNode({color:!0})),grass_color_modifier:Nd.Opt(r({enum:["none","dark_forest","swamp"]})),ambient_sound:Nd.Opt(r()),mood_sound:Nd.Opt(Nd.ObjectNode({sound:r(),tick_delay:Nd.NumberNode({integer:!0}),block_search_extent:Nd.NumberNode({integer:!0}),offset:Nd.NumberNode()})),additions_sound:Nd.Opt(Nd.ObjectNode({sound:r(),tick_chance:Nd.NumberNode({min:0,max:1})})),music:Nd.Opt(Nd.ObjectNode({sound:r(),min_delay:Nd.NumberNode({integer:!0,min:0}),max_delay:Nd.NumberNode({integer:!0,min:0}),replace_current_music:Nd.BooleanNode()})),particle:Nd.Opt(Nd.ObjectNode({options:Nd.ObjectNode({type:r()}),probability:Nd.NumberNode({min:0,max:1})}))}),spawners:Nd.MapNode(r({enum:["monster","creature","ambient","axolotls","underground_water_creature","water_creature","water_ambient","misc"]}),Nd.Mod(Nd.ListNode(Nd.ObjectNode({type:r({validator:"resource",params:{pool:"entity_type"}}),weight:Nd.NumberNode({integer:!0}),minCount:Nd.NumberNode({integer:!0}),maxCount:Nd.NumberNode({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:Nd.MapNode(r({validator:"resource",params:{pool:"entity_type"}}),Nd.Mod(Nd.ObjectNode({energy_budget:Nd.NumberNode(),charge:Nd.NumberNode()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:Nd.MapNode(r({enum:["air","liquid"]}),Nd.Mod(Nd.ListNode(r({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:Nd.ListNode(Nd.Mod(Nd.ListNode(r({validator:"resource",params:{pool:"$worldgen/configured_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 kd={};Object.defineProperty(kd,"__esModule",{value:!0}),kd.initCarverSchemas=void 0;const wd=Be,Od=Hl;kd.initCarverSchemas=function(e,t){const r=wd.Reference.bind(void 0,e),n=wd.StringNode.bind(void 0,t),i={vertical_rotation:Od.FloatProvider(),shape:wd.ObjectNode({distance_factor:Od.FloatProvider(),thickness:Od.FloatProvider(),width_smoothness:wd.NumberNode({integer:!0,min:0}),horizontal_radius_factor:Od.FloatProvider(),vertical_radius_default_factor:wd.NumberNode(),vertical_radius_center_factor:wd.NumberNode()})},o={horizontal_radius_multiplier:Od.FloatProvider(),vertical_radius_multiplier:Od.FloatProvider(),floor_level:Od.FloatProvider({min:-1,max:1})};e.register("configured_carver",wd.Mod(wd.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/carver"}}),config:wd.ObjectNode({probability:wd.NumberNode({min:0,max:1}),y:r("height_provider"),yScale:Od.FloatProvider(),lava_level:r("vertical_anchor"),debug_settings:wd.Opt(wd.ObjectNode({debug_mode:wd.Opt(wd.BooleanNode()),air_state:wd.Opt(r("block_state")),water_state:wd.Opt(r("block_state")),lava_state:wd.Opt(r("block_state")),barrier_state:wd.Opt(r("block_state"))})),[wd.Switch]:["pop",{push:"type"}],[wd.Case]:{"minecraft:canyon":i,"minecraft:cave":o,"minecraft:nether_cave":o}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))};var xd={};Object.defineProperty(xd,"__esModule",{value:!0}),xd.initDecoratorSchemas=void 0;const Sd=Be,jd=Hl;xd.initDecoratorSchemas=function(e,t){const r=Sd.Reference.bind(void 0,e),n=Sd.StringNode.bind(void 0,t),i={count:jd.IntProvider({min:0,max:256})};e.register("configured_decorator",Sd.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/decorator"}}),config:Sd.ObjectNode({[Sd.Switch]:["pop",{push:"type"}],[Sd.Case]:{"minecraft:block_filter":{predicate:r("block_predicate_worldgen")},"minecraft:carving_mask":{step:n({enum:"generation_step"})},"minecraft:cave_surface":{surface:n({enum:["floor","ceiling"]}),floor_to_ceiling_search_range:Sd.NumberNode({integer:!0}),allow_water:Sd.BooleanNode()},"minecraft:chance":{chance:Sd.NumberNode({integer:!0,min:0})},"minecraft:count":i,"minecraft:count_extra":{count:Sd.NumberNode({integer:!0,min:0}),extra_count:Sd.NumberNode({integer:!0,min:0}),extra_chance:Sd.NumberNode({min:0,max:1})},"minecraft:count_multilayer":i,"minecraft:count_noise":{noise_level:Sd.NumberNode(),below_noise:Sd.NumberNode({integer:!0}),above_noise:Sd.NumberNode({integer:!0})},"minecraft:count_noise_biased":{noise_to_count_ratio:Sd.NumberNode({integer:!0}),noise_factor:Sd.NumberNode(),noise_offset:Sd.Opt(Sd.NumberNode())},"minecraft:decorated":{outer:r("configured_decorator"),inner:r("configured_decorator")},"minecraft:environment_scan":{direction_of_search:n({enum:["up","down"]}),max_steps:Sd.NumberNode({integer:!0,min:1,max:32}),target_condition:r("block_predicate_worldgen")},"minecraft:heightmap":{heightmap:n({enum:"heightmap_type"})},"minecraft:lava_lake":{chance:Sd.NumberNode({integer:!0,min:0})},"minecraft:range":{height:r("height_provider")},"minecraft:scatter":{xz_spread:jd.IntProvider({min:-16,max:16}),y_spread:jd.IntProvider({min:-16,max:16})},"minecraft:surface_relative_threshold":{heightmap:n({enum:"heightmap_type"}),min_inclusive:Sd.Opt(Sd.NumberNode({integer:!0})),max_inclusive:Sd.Opt(Sd.NumberNode({integer:!0}))},"minecraft:water_depth_threshold":{max_water_depth:Sd.NumberNode({integer:!0})}}},{context:"decorator",category:"predicate"})},{context:"decorator",category:"predicate"}))};var Ad={},Md={};Object.defineProperty(Md,"__esModule",{value:!0}),Md.initProcessorListSchemas=Md.Processors=void 0;const Cd=Be;Md.initProcessorListSchemas=function(e,t){const r=Cd.Reference.bind(void 0,e),n=Cd.StringNode.bind(void 0,t);Md.Processors=Cd.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",Cd.Mod(Cd.ObjectNode({processors:Cd.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",Cd.Mod(Cd.ObjectNode({processor_type:n({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[Cd.Switch]:[{push:"processor_type"}],[Cd.Case]:{"minecraft:block_age":{mossiness:Cd.NumberNode()},"minecraft:block_ignore":{blocks:Cd.ListNode(r("block_state"))},"minecraft:block_rot":{integrity:Cd.NumberNode({min:0,max:1})},"minecraft:gravity":{heightmap:n({enum:"heightmap_type"}),offset:Cd.NumberNode({integer:!0})},"minecraft:protected_blocks":{value:n({validator:"resource",params:{pool:"$tag/block"}})},"minecraft:rule":{rules:Cd.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",Cd.Mod(Cd.ObjectNode({position_predicate:Cd.Opt(r("pos_rule_test")),location_predicate:r("rule_test"),input_predicate:r("rule_test"),output_state:r("block_state"),output_nbt:Cd.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:Cd.Opt(Cd.NumberNode({min:0,max:255,integer:!0})),max_dist:Cd.Opt(Cd.NumberNode({min:0,max:255,integer:!0})),min_chance:Cd.Opt(Cd.NumberNode({min:0,max:1})),max_chance:Cd.Opt(Cd.NumberNode({min:0,max:1}))};e.register("pos_rule_test",Cd.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"pos_rule_test"}}),[Cd.Switch]:[{push:"predicate_type"}],[Cd.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",Cd.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"rule_test"}}),[Cd.Switch]:[{push:"predicate_type"}],[Cd.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:Cd.NumberNode({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:r("block_state"),probability:Cd.NumberNode({min:0,max:1})},"minecraft:tag_match":{tag:n({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))},Object.defineProperty(Ad,"__esModule",{value:!0}),Ad.initFeatureSchemas=void 0;const Ld=Be,Pd=Hl,Bd=Md;Ad.initFeatureSchemas=function(e,t){const r=Ld.Reference.bind(void 0,e),n=Ld.StringNode.bind(void 0,t),i=Ld.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:r("configured_feature")}],{choiceContext:"feature"}),o={tries:Ld.Opt(Ld.NumberNode({integer:!0,min:1})),xz_spread:Ld.Opt(Ld.NumberNode({integer:!0,min:0})),y_spread:Ld.Opt(Ld.NumberNode({integer:!0,min:0})),feature:i},a={state:r("block_state"),radius:Pd.IntProvider({min:0,max:8}),half_height:Ld.NumberNode({integer:!0,min:0,max:4}),targets:Ld.ListNode(r("block_state"))},l={cap_provider:r("block_state_provider"),stem_provider:r("block_state_provider"),foliage_radius:Ld.Opt(Ld.NumberNode({integer:!0}))},d=Ld.ObjectNode({target:r("rule_test"),state:r("block_state")}),u={size:Ld.NumberNode({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:Ld.NumberNode({min:0,max:1}),targets:Ld.ListNode(d)},p={surface:n({enum:"cave_surface"}),depth:Pd.IntProvider({min:1,max:128}),vertical_range:Ld.NumberNode({integer:!0,min:1,max:256}),extra_bottom_block_chance:Ld.NumberNode({min:0,max:1}),extra_edge_column_chance:Ld.NumberNode({min:0,max:1}),vegetation_chance:Ld.NumberNode({min:0,max:1}),xz_radius:Pd.IntProvider(),replaceable:n({validator:"resource",params:{pool:"$tag/block"}}),ground_state:r("block_state_provider"),vegetation_feature:i};e.register("configured_feature",Ld.Mod(Ld.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature"}}),config:Ld.ObjectNode({[Ld.Switch]:["pop",{push:"type"}],[Ld.Case]:{"minecraft:bamboo":{probability:Ld.NumberNode({min:0,max:1})},"minecraft:basalt_columns":{reach:Pd.IntProvider({min:0,max:3}),height:Pd.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:Ld.BooleanNode(),layers:Ld.ListNode(Ld.ObjectNode({height:Pd.IntProvider({min:0}),provider:r("block_state_provider")}))},"minecraft:block_pile":{state_provider:r("block_state_provider")},"minecraft:decorated":{decorator:r("configured_decorator"),feature:i},"minecraft:decorated_flower":{decorator:r("configured_decorator"),feature:i},"minecraft:delta_feature":{contents:r("block_state"),rim:r("block_state"),size:Pd.IntProvider({min:0,max:16}),rim_size:Pd.IntProvider({min:0,max:16})},"minecraft:disk":a,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:Ld.NumberNode({integer:!0,min:1,max:512}),height:Pd.IntProvider({min:0,max:128}),radius:Pd.IntProvider({min:0,max:128}),max_stalagmite_stalactite_height_diff:Ld.NumberNode({integer:!0,min:0,max:64}),height_deviation:Ld.NumberNode({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:Pd.IntProvider({min:0,max:128}),density:Pd.FloatProvider({min:0,max:2}),wetness:Pd.FloatProvider({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:Ld.NumberNode({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:Ld.NumberNode({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:Ld.NumberNode({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:Ld.BooleanNode(),exit:Ld.Opt(r("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:Ld.Opt(Ld.BooleanNode()),crystal_beam_target:Ld.Opt(r("block_pos")),spikes:Ld.ListNode(Ld.ObjectNode({centerX:Ld.Opt(Ld.NumberNode({integer:!0})),centerZ:Ld.Opt(Ld.NumberNode({integer:!0})),radius:Ld.Opt(Ld.NumberNode({integer:!0})),height:Ld.Opt(Ld.NumberNode({integer:!0})),guarded:Ld.Opt(Ld.BooleanNode())}))},"minecraft:fill_layer":{state:r("block_state"),height:Ld.NumberNode({integer:!0,min:0,max:255})},"minecraft:flower":o,"minecraft:forest_rock":{state:r("block_state")},"minecraft:fossil":{max_empty_corners_allowed:Ld.NumberNode({integer:!0,min:0,max:7}),fossil_structures:Ld.ListNode(n({validator:"resource",params:{pool:"$structure"}})),overlay_structures:Ld.ListNode(n({validator:"resource",params:{pool:"$structure"}})),fossil_processors:Bd.Processors,overlay_processors:Bd.Processors},"minecraft:geode":{blocks:Ld.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:Ld.ListNode(r("block_state")),cannot_replace:n({validator:"resource",params:{pool:"$tag/block"}}),invalid_blocks:n({validator:"resource",params:{pool:"$tag/block"}})}),layers:Ld.ObjectNode({filling:Ld.Opt(Ld.NumberNode({min:.01,max:50})),inner_layer:Ld.Opt(Ld.NumberNode({min:.01,max:50})),middle_layer:Ld.Opt(Ld.NumberNode({min:.01,max:50})),outer_layer:Ld.Opt(Ld.NumberNode({min:.01,max:50}))}),crack:Ld.ObjectNode({generate_crack_chance:Ld.Opt(Ld.NumberNode({min:0,max:1})),base_crack_size:Ld.Opt(Ld.NumberNode({min:0,max:5})),crack_point_offset:Ld.Opt(Ld.NumberNode({min:0,max:10,integer:!0}))}),noise_multiplier:Ld.Opt(Ld.NumberNode({min:0,max:1})),use_potential_placements_chance:Ld.Opt(Ld.NumberNode({min:0,max:1})),use_alternate_layer0_chance:Ld.Opt(Ld.NumberNode({min:0,max:1})),placements_require_layer0_alternate:Ld.Opt(Ld.BooleanNode()),outer_wall_distance:Ld.Opt(Pd.IntProvider({min:1,max:20})),distribution_points:Ld.Opt(Pd.IntProvider({min:1,max:20})),point_offset:Ld.Opt(Pd.IntProvider({min:0,max:10})),min_gen_offset:Ld.Opt(Ld.NumberNode({integer:!0})),max_gen_offset:Ld.Opt(Ld.NumberNode({integer:!0})),invalid_blocks_threshold:Ld.NumberNode({integer:!0})},"minecraft:glow_lichen":{search_range:Ld.Opt(Ld.NumberNode({min:1,max:64,integer:!0})),chance_of_spreading:Ld.Opt(Ld.NumberNode({min:0,max:1})),can_place_on_floor:Ld.Opt(Ld.BooleanNode()),can_place_on_ceiling:Ld.Opt(Ld.BooleanNode()),can_place_on_wall:Ld.Opt(Ld.BooleanNode()),can_be_placed_on:Ld.ListNode(r("block_state"))},"minecraft:huge_brown_mushroom":l,"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:Ld.Opt(Ld.BooleanNode())},"minecraft:huge_red_mushroom":l,"minecraft:ice_patch":a,"minecraft:iceberg":{state:r("block_state")},"minecraft:lake":{state:r("block_state")},"minecraft:large_dripstone":{floor_to_ceiling_search_range:Ld.Opt(Ld.NumberNode({integer:!0,min:1,max:512})),column_radius:Pd.IntProvider({min:0,max:60}),height_scale:Pd.FloatProvider({min:0,max:20}),max_column_radius_to_cave_height_ratio:Ld.NumberNode({min:0,max:1}),stalactite_bluntness:Pd.FloatProvider({min:.1,max:10}),stalagmite_bluntness:Pd.FloatProvider({min:.1,max:10}),wind_speed:Pd.FloatProvider({min:0,max:2}),min_radius_for_wind:Ld.NumberNode({integer:!0,min:0,max:100}),min_bluntness_for_wind:Ld.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:Pd.IntProvider({min:0,max:12})},"minecraft:no_bonemeal_flower":o,"minecraft:ore":u,"minecraft:pointed_dripstone":{chance_of_taller_dripstone:Ld.Opt(Ld.NumberNode({min:0,max:1})),chance_of_directional_spread:Ld.Opt(Ld.NumberNode({min:0,max:1})),chance_of_spread_radius2:Ld.Opt(Ld.NumberNode({min:0,max:1})),chance_of_spread_radius3:Ld.Opt(Ld.NumberNode({min:0,max:1}))},"minecraft:random_patch":o,"minecraft:random_boolean_selector":{feature_false:i,feature_true:i},"minecraft:random_selector":{features:Ld.ListNode(Ld.ObjectNode({chance:Ld.NumberNode({min:0,max:1}),feature:i})),default:i},"minecraft:replace_single_block":{targets:Ld.ListNode(d)},"minecraft:root_system":{required_vertical_space_for_tree:Ld.NumberNode({integer:!0,min:1,max:64}),root_radius:Ld.NumberNode({integer:!0,min:1,max:64}),root_placement_attempts:Ld.NumberNode({integer:!0,min:1,max:256}),root_column_max_height:Ld.NumberNode({integer:!0,min:1,max:4096}),hanging_root_radius:Ld.NumberNode({integer:!0,min:1,max:64}),hanging_roots_vertical_span:Ld.NumberNode({integer:!0,min:0,max:16}),hanging_root_placement_attempts:Ld.NumberNode({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:Ld.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:i},"minecraft:scattered_ore":u,"minecraft:sea_pickle":{count:Pd.IntProvider({min:0,max:256})},"minecraft:seagrass":{probability:Ld.NumberNode({min:0,max:1})},"minecraft:simple_block":{to_place:r("block_state_provider")},"minecraft:simple_random_selector":{features:Ld.ListNode(i)},"minecraft:spring_feature":{state:r("fluid_state"),rock_count:Ld.NumberNode({integer:!0}),hole_count:Ld.NumberNode({integer:!0}),requires_block_below:Ld.BooleanNode(),valid_blocks:Ld.ListNode(n({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{ignore_vines:Ld.Opt(Ld.BooleanNode()),force_dirt:Ld.Opt(Ld.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:Ld.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:Ld.NumberNode({integer:!0,min:0,max:32}),height_rand_a:Ld.NumberNode({integer:!0,min:0,max:24}),height_rand_b:Ld.NumberNode({integer:!0,min:0,max:24}),[Ld.Switch]:[{push:"type"}],[Ld.Case]:{"minecraft:bending_trunk_placer":{bend_length:Pd.IntProvider({min:1,max:64}),min_height_for_leaves:Ld.Opt(Ld.NumberNode({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:Ld.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:Pd.IntProvider({min:0,max:16}),offset:Pd.IntProvider({min:0,max:16}),[Ld.Switch]:[{push:"type"}],[Ld.Case]:{"minecraft:blob_foliage_placer":{height:Ld.NumberNode({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:Ld.NumberNode({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:Ld.NumberNode({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:Ld.NumberNode({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:Pd.IntProvider({min:0,max:24})},"minecraft:pine_foliage_placer":{height:Pd.IntProvider({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:Pd.IntProvider({min:1,max:512}),leaf_placement_attempts:Ld.NumberNode({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:Pd.IntProvider({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:Ld.ListNode(Ld.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[Ld.Switch]:[{push:"type"}],[Ld.Case]:{"minecraft:alter_ground":{provider:r("block_state_provider")},"minecraft:beehive":{probability:Ld.NumberNode({min:0,max:1})},"minecraft:cocoa":{probability:Ld.NumberNode({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:underwater_magma":{floor_search_range:Ld.NumberNode({integer:!0,min:0,max:512}),placement_radius_around_floor:Ld.NumberNode({integer:!0,min:0,max:64}),placement_probability_per_valid_position:Ld.NumberNode({min:0,max:1})},"minecraft:vegetation_patch":p,"minecraft:waterlogged_vegetation_patch":p}},{context:"feature"})},{context:"feature"}),{default:()=>({type:"minecraft:decorated",config:{decorator:{type:"minecraft:count",config:{count:4}},feature:{type:"minecraft:tree",config:{ignore_vines:!0,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("feature_size",Ld.Mod(Ld.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:Ld.Opt(Ld.NumberNode({min:0,max:80})),[Ld.Switch]:[{push:"type"}],[Ld.Case]:{"minecraft:two_layers_feature_size":{limit:Ld.Opt(Ld.NumberNode({integer:!0,min:0,max:81})),lower_size:Ld.Opt(Ld.NumberNode({integer:!0,min:0,max:16})),upper_size:Ld.Opt(Ld.NumberNode({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:Ld.Opt(Ld.NumberNode({integer:!0,min:0,max:80})),upper_limit:Ld.Opt(Ld.NumberNode({integer:!0,min:0,max:80})),lower_size:Ld.Opt(Ld.NumberNode({integer:!0,min:0,max:16})),middle_size:Ld.Opt(Ld.NumberNode({integer:!0,min:0,max:16})),upper_size:Ld.Opt(Ld.NumberNode({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})}));const m={seed:Ld.NumberNode({integer:!0}),noise:r("noise_parameters"),scale:Ld.Mod(Ld.NumberNode({min:Number.MIN_VALUE}),{default:()=>1})};e.register("block_state_provider",Ld.Mod(Ld.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[Ld.Switch]:[{push:"type"}],[Ld.Case]:{"minecraft:dual_noise_provider":c(s({},m),{variety:Pd.InclusiveRange({integer:!0,min:1,max:64}),slow_noise:r("noise_parameters"),slow_scale:Ld.Mod(Ld.NumberNode({min:Number.MIN_VALUE}),{default:()=>1}),states:Ld.ListNode(r("block_state"))}),"minecraft:noise_threshold_provider":c(s({},m),{threshold:Ld.NumberNode({min:-1,max:1}),high_chance:Ld.NumberNode({min:0,max:1}),default_state:r("block_state"),low_states:Ld.ListNode(r("block_state")),high_states:Ld.ListNode(r("block_state"))}),"minecraft:noise_provider":c(s({},m),{states:Ld.ListNode(r("block_state"))}),"minecraft:randomized_int_state_provider":{property:n(),values:Pd.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:Ld.ListNode(Ld.Mod(Ld.ObjectNode({weight:Ld.NumberNode({integer:!0,min:1}),data:r("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})})),e.register("block_predicate_worldgen",Ld.Mod(Ld.ObjectNode({type:n({validator:"resource",params:{pool:"block_predicate_type"}}),[Ld.Switch]:[{push:"type"}],[Ld.Case]:{"minecraft:all_of":{predicates:Ld.ListNode(r("block_predicate_worldgen"))},"minecraft:any_of":{predicates:Ld.ListNode(r("block_predicate_worldgen"))},"minecraft:matching_blocks":{offset:Ld.Opt(r("block_pos")),blocks:Ld.ListNode(n({validator:"resource",params:{pool:"block"}}))},"minecraft:matching_fluids":{offset:Ld.Opt(r("block_pos")),fluids:Ld.ListNode(n({validator:"resource",params:{pool:"fluid"}}))},"minecraft:not":{predicate:r("block_predicate_worldgen")},"minecraft:would_survive":{offset:Ld.Opt(r("block_pos")),state:r("block_state")}}},{context:"block_predicate"}),{default:()=>({type:"minecraft:true"})}))};var Id={};Object.defineProperty(Id,"__esModule",{value:!0}),Id.initNoiseSettingsSchemas=void 0;const Td=Be,zd=Hl;Id.initNoiseSettingsSchemas=function(e,t){const r=Td.Reference.bind(void 0,e),n=Td.StringNode.bind(void 0,t);e.register("noise_settings",Td.Mod(Td.ObjectNode({sea_level:Td.NumberNode({integer:!0}),disable_mob_generation:Td.BooleanNode(),noise_caves_enabled:Td.BooleanNode(),noodle_caves_enabled:Td.BooleanNode(),aquifers_enabled:Td.BooleanNode(),ore_veins_enabled:Td.BooleanNode(),legacy_random_source:Td.BooleanNode(),default_block:r("block_state"),default_fluid:r("block_state"),noise:Td.ObjectNode({min_y:Td.NumberNode({integer:!0,min:-2048,max:2047}),height:Td.NumberNode({integer:!0,min:0,max:4096}),size_horizontal:Td.NumberNode({integer:!0}),size_vertical:Td.NumberNode({integer:!0}),island_noise_override:Td.Opt(Td.BooleanNode()),amplified:Td.Opt(Td.BooleanNode()),large_biomes:Td.Opt(Td.BooleanNode()),sampling:Td.ObjectNode({xz_scale:Td.NumberNode(),y_scale:Td.NumberNode(),xz_factor:Td.NumberNode(),y_factor:Td.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:()=>zd.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",Td.ObjectNode({target:Td.NumberNode(),size:Td.NumberNode({integer:!0,min:0}),offset:Td.NumberNode({integer:!0})})),e.register("generator_structures",Td.ObjectNode({stronghold:Td.Opt(Td.ObjectNode({distance:Td.NumberNode({integer:!0,min:0,max:1023}),spread:Td.NumberNode({integer:!0,min:0,max:1023}),count:Td.NumberNode({integer:!0,min:1,max:4095})})),structures:Td.MapNode(n({validator:"resource",params:{pool:"worldgen/structure_feature"}}),Td.Mod(Td.ObjectNode({spacing:Td.NumberNode({integer:!0,min:0,max:4096}),separation:Td.Mod(Td.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:Td.NumberNode({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),e.register("generator_layer",Td.Mod(Td.ObjectNode({block:n({validator:"resource",params:{pool:"block"}}),height:Td.NumberNode({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})})),e.register("terrain_shaper",Td.Mod(Td.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",Td.Mod(Td.ChoiceNode([{type:"number",node:Td.NumberNode()},{type:"object",node:Td.ObjectNode({coordinate:Td.Mod(n({enum:["continents","erosion","weirdness","ridges"]}),{default:()=>"continents"}),points:Td.ListNode(Td.ObjectNode({location:Td.NumberNode(),derivative:Td.NumberNode(),value:r("terrain_spline")}))},{category:"function"})}],{context:"terrain_spline",choiceContext:"terrain_spline"}),{default:()=>0}))};var Rd={};Object.defineProperty(Rd,"__esModule",{value:!0}),Rd.initStructureFeatureSchemas=void 0;const Fd=Be;Rd.initStructureFeatureSchemas=function(e,t){const r=Fd.StringNode.bind(void 0,t),n=Fd.Reference.bind(void 0,e),i={start_pool:r({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:Fd.NumberNode({integer:!0})};e.register("configured_structure_feature",Fd.Mod(Fd.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:Fd.ObjectNode({[Fd.Switch]:["pop",{push:"type"}],[Fd.Case]:{"minecraft:bastion_remnant":i,"minecraft:buried_treasure":{probability:Fd.NumberNode({min:0,max:1})},"minecraft:mineshaft":{type:r({enum:["normal","mesa"]}),probability:Fd.NumberNode({min:0,max:1})},"minecraft:nether_fossil":{height:n("height_provider")},"minecraft:ocean_ruin":{biome_temp:r({enum:["cold","warm"]}),large_probability:Fd.NumberNode({min:0,max:1}),cluster_probability:Fd.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:Fd.Opt(Fd.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 Ed={};Object.defineProperty(Ed,"__esModule",{value:!0}),Ed.initSurfaceRuleSchemas=void 0;const Dd=Be;Ed.initSurfaceRuleSchemas=function(e,t){const r=Dd.StringNode.bind(void 0,t),n=Dd.Reference.bind(void 0,e);e.register("material_rule",Dd.Mod(Dd.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/material_rule"}}),[Dd.Switch]:[{push:"type"}],[Dd.Case]:{"minecraft:block":{result_state:n("block_state")},"minecraft:condition":{if_true:n("material_condition"),then_run:n("material_rule")},"minecraft:sequence":{sequence:Dd.ListNode(n("material_rule"))}}},{context:"material_rule",category:"pool"}),{default:()=>({type:"minecraft:block",result_state:{Name:"minecraft:stone"}})})),e.register("material_condition",Dd.Mod(Dd.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/material_condition"}}),[Dd.Switch]:[{push:"type"}],[Dd.Case]:{"minecraft:biome":{biome_is:Dd.ListNode(r({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:noise_threshold":{noise:r({validator:"resource",params:{pool:"$worldgen/noise"}}),min_threshold:Dd.NumberNode(),max_threshold:Dd.NumberNode()},"minecraft:not":{invert:n("material_condition")},"minecraft:stone_depth":{surface_type:r({enum:"cave_surface"}),add_run_depth:Dd.BooleanNode()},"minecraft:vertical_gradient":{random_name:r(),true_at_and_below:n("vertical_anchor"),false_at_and_above:n("vertical_anchor")},"minecraft:water":{offset:Dd.NumberNode({integer:!0}),run_depth_multiplier:Dd.NumberNode({integer:!0,min:-20,max:20}),add_stone_depth:Dd.BooleanNode()},"minecraft:y_above":{anchor:n("vertical_anchor"),run_depth_multiplier:Dd.NumberNode({integer:!0,min:-20,max:20}),add_stone_depth:Dd.BooleanNode()}}},{context:"material_condition"}),{default:()=>({type:"minecraft:biome",is_biome:"minecraft:plains"})}))};var $d={};Object.defineProperty($d,"__esModule",{value:!0}),$d.initTemplatePoolSchemas=void 0;const Ud=Be,qd=Md;$d.initTemplatePoolSchemas=function(e,t){const r=Ud.Reference.bind(void 0,e),n=Ud.StringNode.bind(void 0,t);e.register("template_pool",Ud.Mod(Ud.ObjectNode({fallback:n(),elements:Ud.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",Ud.Mod(Ud.ObjectNode({weight:Ud.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",Ud.Mod(Ud.ObjectNode({element_type:n({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:n({enum:["rigid","terrain_matching"]}),[Ud.Switch]:[{push:"element_type"}],[Ud.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:qd.Processors},"minecraft:list_pool_element":{elements:Ud.ListNode(r("template_element"))},"minecraft:single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:qd.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))},Object.defineProperty(vd,"__esModule",{value:!0}),vd.initWorldgenSchemas=void 0;const Zd=yd,Hd=kd,Wd=xd,Gd=Ad,Xd=Id,Yd=Md,Vd=Rd,Jd=Ed,Kd=$d;vd.initWorldgenSchemas=function(e,t){Yd.initProcessorListSchemas(e,t),Zd.initBiomeSchemas(e,t),Hd.initCarverSchemas(e,t),Wd.initDecoratorSchemas(e,t),Gd.initFeatureSchemas(e,t),Xd.initNoiseSettingsSchemas(e,t),Vd.initStructureFeatureSchemas(e,t),Jd.initSurfaceRuleSchemas(e,t),Kd.initTemplatePoolSchemas(e,t)};var Qd={};Object.defineProperty(Qd,"__esModule",{value:!0}),Qd.initWorldSettingsSchemas=void 0;const eu=Be;Qd.initWorldSettingsSchemas=function(e,t){const r=eu.Reference.bind(void 0,e),n=eu.StringNode.bind(void 0,t);e.register("world_settings",eu.Mod(eu.ObjectNode({generate_features:eu.BooleanNode(),bonus_chest:eu.BooleanNode(),seed:eu.NumberNode({integer:!0}),dimensions:eu.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(Tl,"__esModule",{value:!0}),Tl.initSchemas=void 0;const tu=zl,ru=Fl,nu=Hl,iu=Wl,ou=Yl,au=Kl,su=td,cu=id,lu=ld,du=ud,uu=md,pu=fd,mu=gd,_u=vd,fu=Qd;Tl.initSchemas=function(e,t){nu.initCommonSchemas(e,t),tu.initAdvancementSchemas(e,t),ru.initAssetsSchemas(e,t),iu.initConditionSchemas(e,t),au.initDimensionTypeSchemas(e,t),ou.initDimensionSchemas(e,t),su.initItemModifierSchemas(e,t),cu.initLootTableSchemas(e,t),lu.initPackMcmetaSchemas(e,t),du.initPredicatesSchemas(e,t),uu.initRecipeSchemas(e,t),pu.initTagsSchemas(e,t),mu.initTextComponentSchemas(e,t),_u.initWorldgenSchemas(e,t),fu.initWorldSettingsSchemas(e,t)};var hu=Pe&&Pe.__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]}),gu=Pe&&Pe.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),bu=Pe&&Pe.__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)&&hu(t,e,r);return gu(t,e),t};Object.defineProperty(Bl,"__esModule",{value:!0});var vu=Bl.getSchemas=Bl.getCollections=void 0;const yu=Be,Nu=Il,ku=Tl;var wu=Bl.lootContext=bu(od);var Ou=Bl.getCollections=function(){const e=new yu.CollectionRegistry;return Nu.initCollections(e),e};vu=Bl.getSchemas=function(e){const t=new yu.SchemaRegistry;return ku.initSchemas(t,e),t};var xu=Object.freeze(Object.assign(Object.create(null),Bl,{[Symbol.toStringTag]:"Module",get getSchemas(){return vu},get getCollections(){return Ou},lootContext:wu,default:Bl})),Su={},ju={},Au={};function Mu(e){return null==e}function Cu(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||""}Au.isNothing=Mu,Au.isObject=function(e){return"object"==typeof e&&null!==e},Au.toArray=function(e){return Array.isArray(e)?e:Mu(e)?[]:[e]},Au.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),Pu.repeat(" ",e)+r+a+i+"\n"+Pu.repeat(" ",e+this.position-n+r.length)+"^"},Bu.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 Iu=Bu,Tu=Lu,zu=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],Ru=["scalar","sequence","mapping"];var Fu=function(e,t){var r,n;if(t=t||{},Object.keys(t).forEach((function(t){if(-1===zu.indexOf(t))throw new Tu('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===Ru.indexOf(this.kind))throw new Tu('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')},Eu=Au,Du=Lu,$u=Fu;function Uu(e,t,r){var n=[];return e.include.forEach((function(e){r=Uu(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 qu(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 Du("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")})),this.compiledImplicit=Uu(this,"implicit",[]),this.compiledExplicit=Uu(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"]}}),Ku=Au,Qu=Fu,ep=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 tp=/^[-+]?[0-9]+e/;var rp=new Zu({include:[Hu],implicit:[Wu,Gu,Ju,new Qu("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(e){return null!==e&&!(!ep.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||Ku.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(Ku.isNegativeZero(e))return"-0.0";return r=e.toString(10),tp.test(r)?r.replace("e",".e"):r},defaultStyle:"lowercase"})]}),np=new Zu({include:[rp]}),ip=Fu,op=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),ap=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 sp=new ip("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(e){return null!==e&&(null!==op.exec(e)||null!==ap.exec(e))},construct:function(e){var t,r,n,i,o,a,s,c,l=0,d=null;if(null===(t=op.exec(e))&&(t=ap.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]&&(d=6e4*(60*+t[10]+ +(t[11]||0)),"-"===t[9]&&(d=-d)),c=new Date(Date.UTC(r,n,i,o,a,s,l)),d&&c.setTime(c.getTime()-d),c},instanceOf:Date,represent:function(e){return e.toISOString()}});var cp,lp=new Fu("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(e){return"<<"===e||null===e}});try{var dp=require;cp=dp("buffer").Buffer}catch(Ff){}var up="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";var pp=new Fu("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,r,n=0,i=e.length,o=up;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=up,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),cp?cp.from?cp.from(s):new cp(s):s},predicate:function(e){return cp&&cp.isBuffer(e)},represent:function(e){var t,r,n="",i=0,o=e.length,a=up;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}}),mp=Fu,_p=Object.prototype.hasOwnProperty,fp=Object.prototype.toString;var hp=new mp("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 Sp=require;Op=Sp("esprima")}catch(Ef){"undefined"!=typeof window&&(Op=window.esprima)}var jp=new Fu("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:function(e){if(null===e)return!1;try{var t="("+e+")",r=Op.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=Op.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()}}),Ap=Zu,Mp=Ap.DEFAULT=new Ap({include:[kp],explicit:[wp,xp,jp]}),Cp=Au,Lp=Lu,Pp=Iu,Bp=kp,Ip=Mp,Tp=Object.prototype.hasOwnProperty,zp=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,Rp=/[\x85\u2028\u2029]/,Fp=/[,\[\]\{\}]/,Ep=/^(?:!|!!|![a-z\-]+!)$/i,Dp=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function $p(e){return Object.prototype.toString.call(e)}function Up(e){return 10===e||13===e}function qp(e){return 9===e||32===e}function Zp(e){return 9===e||32===e||10===e||13===e}function Hp(e){return 44===e||91===e||93===e||123===e||125===e}function Wp(e){var t;return 48<=e&&e<=57?e-48:97<=(t=32|e)&&t<=102?t-97+10:-1}function Gp(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 Xp(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10),56320+(e-65536&1023))}for(var Yp=new Array(256),Vp=new Array(256),Jp=0;Jp<256;Jp++)Yp[Jp]=Gp(Jp)?1:0,Vp[Jp]=Gp(Jp);function Kp(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||Ip,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 Qp(e,t){return new Lp(t,new Pp(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function em(e,t){throw Qp(e,t)}function tm(e,t){e.onWarning&&e.onWarning.call(null,Qp(e,t))}var rm={YAML:function(e,t,r){var n,i,o;null!==e.version&&em(e,"duplication of %YAML directive"),1!==r.length&&em(e,"YAML directive accepts exactly one argument"),null===(n=/^([0-9]+)\.([0-9]+)$/.exec(r[0]))&&em(e,"ill-formed argument of the YAML directive"),i=parseInt(n[1],10),o=parseInt(n[2],10),1!==i&&em(e,"unacceptable YAML version of the document"),e.version=r[0],e.checkLineBreaks=o<2,1!==o&&2!==o&&tm(e,"unsupported YAML version of the document")},TAG:function(e,t,r){var n,i;2!==r.length&&em(e,"TAG directive accepts exactly two arguments"),n=r[0],i=r[1],Ep.test(n)||em(e,"ill-formed tag handle (first argument) of the TAG directive"),Tp.call(e.tagMap,n)&&em(e,'there is a previously declared suffix for "'+n+'" tag handle'),Dp.test(i)||em(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=i}};function nm(e,t,r,n){var i,o,a,s;if(t1&&(e.result+=Cp.repeat("\n",t-1))}function dm(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&&Zp(e.input.charCodeAt(e.position+1));)if(s=!0,e.position++,sm(e,!0,-1)&&e.lineIndent<=t)a.push(null),n=e.input.charCodeAt(e.position);else if(r=e.line,mm(e,t,3,!1,!0),a.push(e.result),sm(e,!0,-1),n=e.input.charCodeAt(e.position),(e.line===r||e.lineIndent>t)&&0!==n)em(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)&&(mm(e,t,4,!0,i)&&(f?m=e.result:_=e.result),f||(om(e,d,u,p,m,_,o,a),p=m=_=null),sm(e,!0,-1),s=e.input.charCodeAt(e.position)),e.lineIndent>t&&0!==s)em(e,"bad indentation of a mapping entry");else if(e.lineIndent=0))break;0===i?em(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):l?em(e,"repeat of an indentation width identifier"):(d=t+i-1,l=!0)}if(qp(o)){do{o=e.input.charCodeAt(++e.position)}while(qp(o));if(35===o)do{o=e.input.charCodeAt(++e.position)}while(!Up(o)&&0!==o)}for(;0!==o;){for(am(e),e.lineIndent=0,o=e.input.charCodeAt(e.position);(!l||e.lineIndentd&&(d=e.lineIndent),Up(o))u++;else{if(e.lineIndent0){for(i=a,o=0;i>0;i--)(a=Wp(s=e.input.charCodeAt(++e.position)))>=0?o=(o<<4)+a:em(e,"expected hexadecimal character");e.result+=Xp(o),e.position++}else em(e,"unknown escape sequence");r=n=e.position}else Up(s)?(nm(e,r,n,!0),lm(e,sm(e,!1,t)),r=n=e.position):e.position===e.lineStart&&cm(e)?em(e,"unexpected end of the document within a double quoted scalar"):(e.position++,n=e.position)}em(e,"unexpected end of the stream within a double quoted scalar")}(e,u)?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&&!Zp(n)&&!Hp(n);)n=e.input.charCodeAt(++e.position);return e.position===t&&em(e,"name of an alias node must contain at least one character"),r=e.input.slice(t,e.position),Tp.call(e.anchorMap,r)||em(e,'unidentified alias "'+r+'"'),e.result=e.anchorMap[r],sm(e,!0,-1),!0}(e)?function(e,t,r){var n,i,o,a,s,c,l,d,u=e.kind,p=e.result;if(Zp(d=e.input.charCodeAt(e.position))||Hp(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)&&(Zp(n=e.input.charCodeAt(e.position+1))||r&&Hp(n)))return!1;for(e.kind="scalar",e.result="",i=o=e.position,a=!1;0!==d;){if(58===d){if(Zp(n=e.input.charCodeAt(e.position+1))||r&&Hp(n))break}else if(35===d){if(Zp(e.input.charCodeAt(e.position-1)))break}else{if(e.position===e.lineStart&&cm(e)||r&&Hp(d))break;if(Up(d)){if(s=e.line,c=e.lineStart,l=e.lineIndent,sm(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&&(nm(e,i,o,!1),lm(e,e.line-s),i=o=e.position,a=!1),qp(d)||(o=e.position+1),d=e.input.charCodeAt(++e.position)}return nm(e,i,o,!1),!!e.result||(e.kind=u,e.result=p,!1)}(e,u,1===r)&&(f=!0,null===e.tag&&(e.tag="?")):(f=!0,null===e.tag&&null===e.anchor||em(e,"alias node should not have any properties")),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):0===m&&(f=s&&dm(e,p))),null!==e.tag&&"!"!==e.tag)if("?"===e.tag){for(null!==e.result&&"scalar"!==e.kind&&em(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)):em(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):em(e,"unknown tag !<"+e.tag+">");return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||f}function _m(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))&&(sm(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&&!Zp(i);)i=e.input.charCodeAt(++e.position);for(n=[],(r=e.input.slice(t,e.position)).length<1&&em(e,"directive name must not be less than one character in length");0!==i;){for(;qp(i);)i=e.input.charCodeAt(++e.position);if(35===i){do{i=e.input.charCodeAt(++e.position)}while(0!==i&&!Up(i));break}if(Up(i))break;for(t=e.position;0!==i&&!Zp(i);)i=e.input.charCodeAt(++e.position);n.push(e.input.slice(t,e.position))}0!==i&&am(e),Tp.call(rm,r)?rm[r](e,r,n):tm(e,'unknown document directive "'+r+'"')}sm(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,sm(e,!0,-1)):a&&em(e,"directives end mark is expected"),mm(e,e.lineIndent-1,4,!1,!0),sm(e,!0,-1),e.checkLineBreaks&&Rp.test(e.input.slice(o,e.position))&&tm(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&cm(e)?46===e.input.charCodeAt(e.position)&&(e.position+=3,sm(e,!0,-1)):e.position0?e.charCodeAt(o-1):null,m=m&&Bm(a,s)}else{for(o=0;on&&" "!==e[p+1],p=o);else if(!Pm(a))return 5;s=o>0?e.charCodeAt(o-1):null,m=m&&Bm(a,s)}d=d||u&&o-p-1>n&&" "!==e[p+1]}return l||d?r>9&&Im(e)?5:d?4:3:m&&!i(e)?1:2}function zm(e,t,r,n){e.dump=function(){if(0===t.length)return"''";if(!e.noCompatMode&&-1!==Sm.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(Tm(t,a,e.indent,o,(function(t){return function(e,t){var r,n;for(r=0,n=e.implicitTypes.length;r"+Rm(t,e.indent)+Fm(Mm(function(e,t){var r,n,i=/(\n+)([^\n]*)/g,o=(s=e.indexOf("\n"),s=-1!==s?s:e.length,i.lastIndex=s,Em(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")+Em(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+=jm(1024*(t-55296)+r-56320+65536),o++):i+=!(n=xm[t])&&Pm(t)?e[o]:n||jm(t);return i}(t)+'"';default:throw new ym("impossible error: invalid scalar style")}}()}function Rm(e,t){var r=Im(e)?String(t):"",n="\n"===e[e.length-1];return r+(n&&("\n"===e[e.length-2]||"\n"===e)?"+":n?"":"-")+"\n"}function Fm(e){return"\n"===e[e.length-1]?e.slice(0,-1):e}function Em(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 Dm(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 $m(e,t,r,n,i,o){e.tag=null,e.dump=r,Dm(e,r,!1)||Dm(e,r,!0);var a=wm.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,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 ym("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+=Cm(e,t)),$m(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,i),c&&(e.dump="&ref_"+s+e.dump)):(!function(e,t,r){var n,i,o,a,s,c="",l=e.tag,d=Object.keys(r);for(n=0,i=d.length;n1024&&(s+="? "),s+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),$m(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;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 Um(e,t){var r,n,i=[],o=[];for(qm(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,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 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),d=Math.max(0,(n._sprite[e][0]+n._sprite[e][1])/1e3-l),u=1e3*d/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 _=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 h=function(){n._playLock=!1,_(),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,d):s._loop?f.bufferSource.start(0,l,86400):f.bufferSource.start(0,l,d),u!==1/0&&(n._endTimers[s._id]=setTimeout(n._ended.bind(n,s),u)),t||setTimeout((function(){n._emit("play",s._id),n._loadQueue()}),0)};"running"===r.state&&"interrupted"!==r.ctx.state?h():(n._playLock=!0,n.once("resume",h),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,_(),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,_(),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),u):(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 v=function(){n._state="loaded",g(),f.removeEventListener(r._canPlayEvent,v,!1)};f.addEventListener(r._canPlayEvent,v,!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),u=Date.now();e._fadeTo=r,e._interval=setInterval((function(){var i=(Date.now()-u)/n;u=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))}),d)},_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 d=n.playing(t);d&&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 u=function(){d&&n.play(t,!0),n._emit("seek",t)};if(d&&!n._webAudio){var p=function(){n._playLock?setTimeout(p,0):u()};setTimeout(p,0)}else u()}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())},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+)?/),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!==Pe?(Pe.HowlerGlobal=t,Pe.Howler=r,Pe.Howl=n,Pe.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"']/,y_=/[&<>"']/g,N_=/[<>"']|&(?!#?\w+;)/,k_=/[<>"']|&(?!#?\w+;)/g,w_={"&":"&","<":"<",">":">",'"':""","'":"'"},O_=e=>w_[e];const x_=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function S_(e){return e.replace(x_,((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 j_=/(^|[^\[])\^/g;const A_=/[^\w:]/g,M_=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;const C_={},L_=/^[^:]+:\/*[^/]*$/,P_=/^([^:]+:)[\s\S]*$/,B_=/^([^:]+:\/*[^/]*)[\s\S]*$/;function I_(e,t){C_[" "+e]||(L_.test(e)?C_[" "+e]=e+"/":C_[" "+e]=T_(e,"/",!0));const r=-1===(e=C_[" "+e]).indexOf(":");return"//"===t.substring(0,2)?r?t:e.replace(P_,"$1")+t:"/"===t.charAt(0)?r?t:e.replace(B_,"$1")+t:e+t}function T_(e,t,r){const n=e.length;if(0===n)return"";let i=0;for(;i(n=(n=n.source||n).replace(j_,"$1"),e=e.replace(t,n),r),getRegex:()=>new RegExp(e,t)};return r},cleanUrl:function(e,t,r){if(e){let e;try{e=decodeURIComponent(S_(r)).replace(A_,"").toLowerCase()}catch(n){return null}if(0===e.indexOf("javascript:")||0===e.indexOf("vbscript:")||0===e.indexOf("data:"))return null}t&&!M_.test(r)&&(r=I_(t,r));try{r=encodeURI(r).replace(/%25/g,"%")}catch(n){return null}return r},resolveUrl:I_,noopTest:{exec:function(){}},merge:function(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}};const{defaults:R_}=g_.exports,{rtrim:F_,splitCells:E_,escape:D_,findClosingBracket:$_}=z_;function U_(e,t,r,n){const i=t.href,o=t.title?D_(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:D_(a)}}var q_=class{constructor(e){this.options=e||R_}space(e){const t=this.rules.block.newline.exec(e);if(t)return t[0].length>1?{type:"space",raw:t[0]}:{raw:"\n"}}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:F_(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=F_(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,d,u,p=t[1].trim();const m=p.length>1,_={type:"list",raw:"",ordered:m,start:m?+p.slice(0,-1):"",loose:!1,items:[]};p=m?`\\d{1,9}\\${p.slice(-1)}`:`\\${p}`,this.options.pedantic&&(p=m?p:"[*+-]");const f=new RegExp(`^( {0,3}${p})((?: [^\\n]*| *)(?:\\n[^\\n]*)*(?:\\n|$))`);for(;e&&!this.rules.block.hr.test(e)&&(t=f.exec(e));){d=t[2].split("\n"),this.options.pedantic?(o=2,u=d[0].trimLeft()):(o=t[2].search(/[^ ]/),o=t[1].length+(o>4?1:o),u=d[0].slice(o-t[1].length)),s=!1,r=t[0],!d[0]&&/^ *$/.test(d[1])&&(r=t[1]+d.slice(0,2).join("\n")+"\n",_.loose=!0,d=[]);const p=new RegExp(`^ {0,${Math.min(3,o-1)}}(?:[*+-]|\\d{1,9}[.)])`);for(a=1;a=o)&&l.trim()){r=t[1]+d.slice(0,a).join("\n")+"\n";break}u+="\n"+l.slice(o)}else l.trim()||(s=!0),l.search(/[^ ]/)>=o?u+="\n"+l.slice(o):u+="\n"+l}_.loose||(c?_.loose=!0:/\n *\n *$/.test(r)&&(c=!0)),this.options.gfm&&(n=/^\[[ xX]\] /.exec(u),n&&(i="[ ] "!==n[0],u=u.replace(/^\[[ xX]\] +/,""))),_.items.push({type:"list_item",raw:r,task:!!n,checked:i,loose:!1,text:u}),_.raw+=r,e=e.slice(r.length)}_.items[_.items.length-1].raw=r.trimRight(),_.items[_.items.length-1].text=u.trimRight(),_.raw=_.raw.trimRight();const h=_.items.length;for(a=0;a"space"===e.type))&&(_.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]):D_(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:E_(t[1]).map((e=>({text:e}))),align:t[2].replace(/^ *|\| *$/g,"").split(/ *\| */),rows:t[3]?t[3].replace(/\n$/,"").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]):D_(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=F_(e.slice(0,-1),"\\");if((e.length-t.length)%2==0)return}else{const e=$_(t[2],"()");if(e>-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)),U_(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 U_(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=D_(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=D_(this.options.mangle?t(r[1]):r[1]),n="mailto:"+e):(e=D_(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=D_(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=D_(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]):D_(r[0]):r[0]:D_(this.options.smartypants?t(r[0]):r[0]),{type:"text",raw:r[0],text:e}}}};const{noopTest:Z_,edit:H_,merge:W_}=z_,G_={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:Z_,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html| +\n)[^\n]+)*)/,text:/^[^\n]+/,_label:/(?!\s*\])(?:\\[\[\]]|[^\[\]])+/,_title:/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/};G_.def=H_(G_.def).replace("label",G_._label).replace("title",G_._title).getRegex(),G_.bullet=/(?:[*+-]|\d{1,9}[.)])/,G_.listItemStart=H_(/^( *)(bull) */).replace("bull",G_.bullet).getRegex(),G_.list=H_(G_.list).replace(/bull/g,G_.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+G_.def.source+")").getRegex(),G_._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",G_._comment=/|$)/,G_.html=H_(G_.html,"i").replace("comment",G_._comment).replace("tag",G_._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),G_.paragraph=H_(G_._paragraph).replace("hr",G_.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").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",G_._tag).getRegex(),G_.blockquote=H_(G_.blockquote).replace("paragraph",G_.paragraph).getRegex(),G_.normal=W_({},G_),G_.gfm=W_({},G_.normal,{table:"^ *([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"}),G_.gfm.table=H_(G_.gfm.table).replace("hr",G_.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",G_._tag).getRegex(),G_.pedantic=W_({},G_.normal,{html:H_("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",G_._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:Z_,paragraph:H_(G_.normal._paragraph).replace("hr",G_.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",G_.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});const X_={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:Z_,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,nolink:/^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,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:Z_,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\?@\\[\\]`^{|}~"};X_.punctuation=H_(X_.punctuation).replace(/punctuation/g,X_._punctuation).getRegex(),X_.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g,X_.escapedEmSt=/\\\*|\\_/g,X_._comment=H_(G_._comment).replace("(?:--\x3e|$)","--\x3e").getRegex(),X_.emStrong.lDelim=H_(X_.emStrong.lDelim).replace(/punct/g,X_._punctuation).getRegex(),X_.emStrong.rDelimAst=H_(X_.emStrong.rDelimAst,"g").replace(/punct/g,X_._punctuation).getRegex(),X_.emStrong.rDelimUnd=H_(X_.emStrong.rDelimUnd,"g").replace(/punct/g,X_._punctuation).getRegex(),X_._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,X_._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,X_._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])?)+(?![-_])/,X_.autolink=H_(X_.autolink).replace("scheme",X_._scheme).replace("email",X_._email).getRegex(),X_._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,X_.tag=H_(X_.tag).replace("comment",X_._comment).replace("attribute",X_._attribute).getRegex(),X_._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,X_._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,X_._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,X_.link=H_(X_.link).replace("label",X_._label).replace("href",X_._href).replace("title",X_._title).getRegex(),X_.reflink=H_(X_.reflink).replace("label",X_._label).getRegex(),X_.reflinkSearch=H_(X_.reflinkSearch,"g").replace("reflink",X_.reflink).replace("nolink",X_.nolink).getRegex(),X_.normal=W_({},X_),X_.pedantic=W_({},X_.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:H_(/^!?\[(label)\]\((.*?)\)/).replace("label",X_._label).getRegex(),reflink:H_(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",X_._label).getRegex()}),X_.gfm=W_({},X_.normal,{escape:H_(X_.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]*?(?:(?=[\\.5&&(r="x"+r.toString(16)),n+="&#"+r+";";return n}var nf=class e{constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||J_,this.options.tokenizer=this.options.tokenizer||new V_,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};const t={block:K_.normal,inline:Q_.normal};this.options.pedantic?(t.block=K_.pedantic,t.inline=Q_.pedantic):this.options.gfm&&(t.block=K_.gfm,this.options.breaks?t.inline=Q_.breaks:t.inline=Q_.gfm),this.tokenizer.rules=t}static get rules(){return{block:K_,inline:Q_}}static lex(t,r){return new e(r).lex(t)}static lexInline(t,r){return new e(r).inlineTokens(t)}lex(e){let t;for(e=e.replace(/\r\n|\r/g,"\n").replace(/\t/g," "),this.blockTokens(e,this.tokens);t=this.inlineQueue.shift();)this.inlineTokens(t.src,t.tokens);return this.tokens}blockTokens(e,t=[]){let r,n,i,o;for(this.options.pedantic&&(e=e.replace(/^ +$/gm,""));e;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some((n=>!!(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),r.type&&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)+"["+ef("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)+"["+ef("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,rf))e=e.substring(r.raw.length),t.push(r);else if(this.state.inLink||!(r=this.tokenizer.url(e,rf))){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,tf))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}};const{defaults:of}=g_.exports,{cleanUrl:af,escape:sf}=z_;var cf=class{constructor(e){this.options=e||of}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:sf(e,!0))+"
\n":"
"+(r?e:sf(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=af(this.options.sanitize,this.options.baseUrl,e)))return r;let n='",n}image(e,t,r){if(null===(e=af(this.options.sanitize,this.options.baseUrl,e)))return r;let n=''+r+'":">",n}text(e){return e}},lf=class{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""}},df=class{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)}};const uf=cf,pf=lf,mf=df,{defaults:_f}=g_.exports,{unescape:ff}=z_;var hf=class e{constructor(e){this.options=e||_f,this.options.renderer=this.options.renderer||new uf,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new pf,this.slugger=new mf}static parse(t,r){return new e(r).parse(t)}static parseInline(t,r){return new e(r).parseInline(t)}parse(e,t=!0){let r,n,i,o,a,s,c,l,d,u,p,m,_,f,h,g,b,v,y,N="";const k=e.length;for(r=0;r0&&"paragraph"===h.tokens[0].type?(h.tokens[0].text=v+" "+h.tokens[0].text,h.tokens[0].tokens&&h.tokens[0].tokens.length>0&&"text"===h.tokens[0].tokens[0].type&&(h.tokens[0].tokens[0].text=v+" "+h.tokens[0].tokens[0].text)):h.tokens.unshift({type:"text",text:v}):f+=v),f+=this.parse(h.tokens,_),d+=this.renderer.listitem(f,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{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=gf.lex(e,t);return t.walkTokens&&Mf.walkTokens(r,t.walkTokens),bf.parse(r,t)}catch(n){if(n.message+="\nPlease report this to https://github.com/markedjs/marked.",t.silent)return"

    An error occurred:

    "+xf(n.message+"",!0)+"
    ";throw n}}Mf.options=Mf.setOptions=function(e){return wf(Mf.defaults,e),jf(Mf.defaults),Mf},Mf.getDefaults=Sf,Mf.defaults=Af,Mf.use=function(...e){const t=wf({},...e),r=Mf.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=Mf.defaults.renderer||new yf;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=Mf.defaults.tokenizer||new vf;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=Mf.defaults.walkTokens;t.walkTokens=function(t){e.walkTokens.call(this,t),r&&r.call(this,t)}}n&&(t.extensions=r),Mf.setOptions(t)}))},Mf.walkTokens=function(e,t){for(const r of e)switch(t.call(Mf,r),r.type){case"table":for(const e of r.header)Mf.walkTokens(e.tokens,t);for(const e of r.rows)for(const r of e)Mf.walkTokens(r.tokens,t);break;case"list":Mf.walkTokens(r.items,t);break;default:Mf.defaults.extensions&&Mf.defaults.extensions.childTokens&&Mf.defaults.extensions.childTokens[r.type]?Mf.defaults.extensions.childTokens[r.type].forEach((function(e){Mf.walkTokens(r[e],t)})):r.tokens&&Mf.walkTokens(r.tokens,t)}},Mf.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");t=wf({},Mf.defaults,t||{}),Of(t);try{const r=gf.lexInline(e,t);return t.walkTokens&&Mf.walkTokens(r,t.walkTokens),bf.parseInline(r,t)}catch(r){if(r.message+="\nPlease report this to https://github.com/markedjs/marked.",t.silent)return"

    An error occurred:

    "+xf(r.message+"",!0)+"
    ";throw r}},Mf.Parser=bf,Mf.parser=bf.parse,Mf.Renderer=yf,Mf.TextRenderer=Nf,Mf.Lexer=gf,Mf.lexer=gf.lex,Mf.Tokenizer=vf,Mf.Slugger=kf,Mf.parse=Mf;const Cf=Mf,Lf=nf,Pf=hf,Bf=q_,If=cf,Tf=lf,zf=df;h_.exports=Cf,h_.exports.parse=Cf,h_.exports.Parser=Pf,h_.exports.parser=Pf.parse,h_.exports.Renderer=If,h_.exports.TextRenderer=Tf,h_.exports.Lexer=Lf,h_.exports.lexer=Lf.lex,h_.exports.Tokenizer=Bf,h_.exports.Slugger=zf;var Rf=h_.exports;export{Oe as A,we as B,fi as C,Rf as D,mi as E,qi as G,Gi as L,$ as N,Wi as O,se as R,Ci as T,Ri as V,$i as Z,y as a,Be as b,Gs as c,Pl as d,xu as e,mo as f,_o as g,go as h,yo as i,ma as j,Oi as k,ye as l,ho as m,k as n,Xm as o,Jm as p,xe as q,ko as r,ke as s,Q as t,ce as u,ee as v,No as w,f_ as x,Ne as y,Ji as z}; -//# sourceMappingURL=vendor.58fc945f.js.map diff --git a/assets/vendor.58fc945f.js.map b/assets/vendor.58fc945f.js.map deleted file mode 100644 index 0cedfa7c..00000000 --- a/assets/vendor.58fc945f.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"vendor.58fc945f.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/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/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/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/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/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/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/howler/dist/howler.js","../../node_modules/marked/lib/marked.esm.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 return value.map(v => ({\r\n node: this.wrapLists(v),\r\n id: utils_1.hexId(),\r\n }));\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 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 return value.map(v => this.unwrapLists(v.node));\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 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 return 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 },\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 let 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 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 let 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 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","\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 y(t,e,i,s){const n=x(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 x(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 S(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 B(t,e,i,s){const n=S(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 I(t,e){try{return t()}catch(t){return e}}var P,E,A,C,R;!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 N{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=S(t.value,\"Name\",\"string\"),i=I((()=>S(t.value,\"Properties\",\"compound\")),{}),s=Object.keys(i).reduce(((t,e)=>Object.assign(Object.assign({},t),{[e]:S(i,e,\"string\")})),{});return new N(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 N(n,r)}}N.AIR=new N(\"minecraft:air\");class k{constructor(t){this.minY=t,this.storage=Array(k.SIZE),this.palette=[N.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:N.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:N.AIR}setBlockState(t,e){const[i,s,n]=t,r=this.getSectionIndex(s);let o=this.sections[r];if(null===o){if(e.equals(N.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 N(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]N.fromNbt({name:\"\",value:t}))),s=B(t.value,\"blocks\",\"compound\").map((t=>({pos:B(t,\"pos\",\"int\",3),state:S(t,\"state\",\"int\"),nbt:I((()=>S(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 X(t,e,i){return i<0?t:i>1?e:L(i,t,e)}function z(t){return t*t*t*(t*(6*t-15)+10)}function j(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 V{constructor(t){this.seed=BigInt(0),this.setSeed(t)}fork(){return new V(this.nextLong())}setSeed(t){this.seed=t^V.MULTIPLIER&V.MODULUS_MASK}advance(){this.seed=this.seed*V.MULTIPLIER+V.INCREMENT&V.MODULUS_MASK}consume(t){for(let e=0;e>BigInt(V.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^W.SILVER_RATIO_64,i=e+W.GOLDEN_RATIO_64&BigInt(\"0xFFFFFFFFFFFFFFFF\");return[W.mixStafford13(e),W.mixStafford13(i)]}static rotateLeft(t,e){return t<>BigInt(64)-e}setSeed(t){this.seed=W.upgradeSeedTo128bit(t)}fork(){return new W([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=W.getSeed(t,e,i)^this.seed[0];return new W([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){var e=this.next()&BigInt(4294967295);if(t){const o=BigInt(t);var i=e*o,s=i&BigInt(4294967295);if(s>BigInt(32);return Number(r)}var o=Number(e);return o>=2147483648&&(o-=4294967296),o}nextFloat(){return Number(this.nextBits(24))*W.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*W.DOUBLE_MULTIPLIER}parityConfigString(){return\"seedLo: \"+this.seed[0]+\", seedHi: \"+this.seed[1]}}W.SILVER_RATIO_64=BigInt(\"7640891576956012809\"),W.GOLDEN_RATIO_64=BigInt(\"-7046029254386353131\"),W.FLOAT_MULTIPLIER=1/Math.pow(2,24),W.DOUBLE_MULTIPLIER=11102230246251565e-32;class Y{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)*Y.F2,o=Math.floor(t+r),a=t-(o-(i=(o+(s=Math.floor(e+r)))*Y.G2));let l,h;a>(n=e-(s-i))?(l=1,h=0):(l=0,h=1);const u=a-l+Y.G2,c=n-h+Y.G2,d=a-1+2*Y.G2,f=n-1+2*Y.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 X(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 Z(t,e,i),this.second=new Z(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:[]}}}(C||(C={}));class ${constructor(t,e){const i=e[e.length-1],s=-e[0]+i+1,n=new Set(e),r=new Y(t);this.noiseLevels=Array(s),i>=0&&i=0&&n.has(i-e)?this.noiseLevels[e]=new Y(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}}(R||(R={}));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=j(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 y=r.from[0],x=r.from[1],S=r.from[2],B=r.to[0],I=r.to[1],P=r.to[2],E=[],A=[],C=[],R=[],N=(i,s,n)=>{var r,l,h,u,c,d,f,g,p,m,v,b;const[w,F,y,x]=a.getTextureUV(this.getTexture(i.texture)),S=(y-w)/16,B=(x-F)/16,I=S/16,P=B/16;s[0]=(null!==(l=null===(r=i.uv)||void 0===r?void 0:r[0])&&void 0!==l?l:s[0])*S+I,s[1]=(null!==(u=null===(h=i.uv)||void 0===h?void 0:h[1])&&void 0!==u?u:s[1])*B+P,s[2]=(null!==(d=null===(c=i.uv)||void 0===c?void 0:c[2])&&void 0!==d?d:s[2])*S-I,s[3]=(null!==(g=null===(f=i.uv)||void 0===f?void 0:f[3])&&void 0!==g?g:s[3])*B-P;const N=ft[null!==(p=i.rotation)&&void 0!==p?p:0];A.push(w+s[N[0]],F+s[N[1]],w+s[N[2]],F+s[N[3]],w+s[N[4]],F+s[N[5]],w+s[N[6]],F+s[N[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];C.push(...k,...k,...k,...k),E.push(...n),R.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]||N(r.faces.up,[y,16-P,B,16-S],[y,I,P,B,I,P,B,I,S,y,I,S]),!(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]||N(r.faces.down,[16-P,16-B,16-S,16-y],[y,x,S,B,x,S,B,x,P,y,x,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]||N(r.faces.south,[y,16-I,B,16-x],[y,x,P,B,x,P,B,I,P,y,I,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]||N(r.faces.north,[16-B,16-I,16-y,16-x],[B,x,S,y,x,S,y,I,S,B,I,S]),!(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]||N(r.faces.east,[16-P,16-I,16-S,16-x],[B,x,P,B,x,S,B,I,S,B,I,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]||N(r.faces.west,[S,16-I,P,16-x],[y,x,S,y,x,P,y,I,P,y,I,S]);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:C,index:R}}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 yt={\"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)},xt=new Set(Object.keys(yt));class St{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)),xt.has(o)&&(l=yt[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 Bt(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 It{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 Bt(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=>Bt(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 It(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 It.drawInvalidTexture(e),new It(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,Ct,Rt,Nt,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(R.fromJson(i.offset,this.EXTRACTOR),R.fromJson(i.factor,this.EXTRACTOR),R.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={}));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;st.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}}}(At||(At={})),function(t){t.create=function(t,e,i){const s=e+t.getOffset(e,0,i),n=i+t.getOffset(i,e,0),r=t.getContinentalness(s,n),o=t.getWeirdness(s,n),a=t.getErosion(s,n);return{shiftedX:s,shiftedZ:n,continentalness:r,weirdness:o,erosion:a,terrainInfo:t.getTerrainInfo(s<<2,n<<2,r,o,a)}}}(Ct||(Ct={})),function(t){t.fromJson=function(t){var e,i,s,n,r,o,a,l,h,u,c,d;const f=null!==(e=P.readObject(t))&&void 0!==e?e:{};return{minY:null!==(i=P.readInt(f.min_y))&&void 0!==i?i:0,height:null!==(s=P.readInt(f.height))&&void 0!==s?s:256,xzSize:null!==(n=P.readInt(f.size_horizontal))&&void 0!==n?n:1,ySize:null!==(r=P.readInt(f.size_vertical))&&void 0!==r?r:1,densityFactor:null!==(o=P.readNumber(f.density_factor))&&void 0!==o?o:0,densityOffset:null!==(a=P.readNumber(f.density_offset))&&void 0!==a?a:0,sampling:A.fromJson(f.sampling),topSlide:Nt.fromJson(f.top_slide),bottomSlide:Nt.fromJson(f.bottom_slide),terrainShaper:Lt.fromJson(f.terrain_shaper),useSimplexSurfaceNoise:null!==(l=P.readBoolean(f.simplex_surface_noise))&&void 0!==l&&l,randomDensityOffset:null!==(h=P.readBoolean(f.random_density_offset))&&void 0!==h&&h,islandNoiseOverride:null!==(u=P.readBoolean(f.island_noise_override))&&void 0!==u&&u,isAmplified:null!==(c=P.readBoolean(f.amplified))&&void 0!==c&&c,useLegacyRandom:null!==(d=P.readBoolean(f.use_legacy_random))&&void 0!==d&&d}}}(Rt||(Rt={})),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 X(t.target,e,s)}}(Nt||(Nt={}));class Xt{constructor(t,e,i,s,n,r,o=!1){if(this.cellWidth=t,this.cellHeight=e,this.cellCountY=i,this.settings=s,o){const i=new V(r),o=s.useLegacyRandom?new V(r):i.fork();this.blendedNoise=new H(o,s.sampling,t,e),i.consume(8),this.temperatureNoise=new G(new V(r),n.temperature),this.humidityNoise=new G(new V(r+BigInt(1)),n.humidity),this.continentalnessNoise=new G(new V(r+BigInt(2)),n.continentalness),this.erosionNoise=new G(new V(r+BigInt(3)),n.erosion),this.weirdnessNoise=new G(new V(r+BigInt(4)),n.weirdness),this.offsetNoise=new G(new V(r+BigInt(5)),n.shift),this.jaggedNoise=new G(i.fork(),{firstOctave:-16,amplitudes:[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]})}else{const i=W.create(r).fork();this.blendedNoise=new H(i.forkWithHashOf(\"minecraft:terrain\"),s.sampling,t,e),this.temperatureNoise=new G(i.forkWithHashOf(\"minecraft:temperature\"),n.temperature),this.humidityNoise=new G(i.forkWithHashOf(\"minecraft:vegetation\"),n.humidity),this.continentalnessNoise=new G(i.forkWithHashOf(\"minecraft:continentalness\"),n.continentalness),this.erosionNoise=new G(i.forkWithHashOf(\"minecraft:erosion\"),n.erosion),this.weirdnessNoise=new G(i.forkWithHashOf(\"minecraft:ridge\"),n.weirdness),this.offsetNoise=new G(i.forkWithHashOf(\"minecraft:offset\"),n.shift),this.jaggedNoise=new G(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=s.terrainShaper,this.baseNoise=t=>{const e=t.createNoiseInterpolator(((e,i,s)=>this.calculateBaseNoise(e,i,s,t.getTerrainInfo(e>>2,s>>2))));return()=>e.sample()}}sample(t,e,i){const s=t+this.getOffset(t,0,i),n=i+this.getOffset(i,t,0),r=this.getContinentalness(s,n),o=this.getErosion(s,n),a=this.getWeirdness(s,n),l=this.shaper.offset(Lt.point(r,o,a));return this.target(t,e,i,s,n,r,o,a,l)}target(t,e,i,s,n,r,o,a,l){const h=e+this.getOffset(e,i,t),u=this.getTemperature(s,h,n),c=this.getHumidity(s,h,n),d=this.computeDimensionDensity(e<<2)+l;return Pt.target(u,c,r,o,d,a)}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)}getTerrainInfo(t,e,i,s,n){const r=Lt.point(i,s,n);return At.create(this.shaper.offset(r),this.shaper.factor(r),this.shaper.jaggedness(r))}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:N.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),a=s.factor*(s.offset+r+o);n+=a>0?4*a:a}return n=M(n,-64,64),n=this.applySlide(n,e/this.cellHeight),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){return(1-t/128)*this.settings.densityFactor+this.settings.densityOffset}applySlide(t,e){const i=e-Math.floor(this.settings.minY/this.cellHeight);return t=Nt.apply(this.settings.topSlide,t,this.cellCountY-i),t=Nt.apply(this.settings.bottomSlide,t,i)}}class zt{constructor(t,e,i){this.biomeSource=e,this.settings=i,this.cellHeight=i.noise.ySize<<2,this.cellWidth=i.noise.xzSize<<2,this.cellCountXZ=Math.floor(16/this.cellWidth),this.cellCountY=Math.floor(i.noise.height/this.cellHeight),this.sampler=new Xt(this.cellWidth,this.cellHeight,this.cellCountY,i.noise,i.octaves,t,i.legacyRandomSource),this.materialRule=Et.fromList([(t,e,i,s)=>t.updateNoiseAndGenerateBaseState(e,i,s)])}fillBiomes(t){const e=Math.max(t.minY,this.settings.noise.minY),i=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),s=Math.floor(e/this.cellHeight);Math.floor((i-e)/this.cellHeight);const n=E.minBlockX(t.pos),r=E.minBlockZ(t.pos),o=new Ut(this.cellWidth,this.cellHeight,this.cellCountXZ,this.cellCountY,s,this.sampler,n,r,(()=>0));for(let e=0;em))}}}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=Math.floor(i/this.cellHeight),r=Math.floor((s-i)/this.cellHeight),o=E.minBlockX(t.pos),a=E.minBlockZ(t.pos),l=new Ut(this.cellWidth,this.cellHeight,this.cellCountXZ,this.cellCountY,n,this.sampler,o,a,(()=>0));l.initializeForFirstCellX();for(let i=0;i=0;u-=1){l.selectCellYZ(u,s);for(let r=this.cellHeight-1;r>=0;r-=1){const c=(n+u)*this.cellHeight+r,d=15&c,f=t.getSectionIndex(c);t.getSectionIndex(h.minBlockY)!==f&&(h=t.getOrCreateSection(f));const g=r/this.cellHeight;l.updateForY(g);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:C.fromJson(i.temperature),humidity:C.fromJson(i.humidity),continentalness:C.fromJson(i.continentalness),erosion:C.fromJson(i.erosion),weirdness:C.fromJson(i.weirdness),shift:C.fromJson(i.shift)}}}(_t||(_t={}));export{H as BlendedNoise,lt as BlockColors,dt as BlockDefinition,vt as BlockModel,a as BlockPos,N 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,J as ImprovedNoise,P as Json,V as LegacyRandom,Et as MaterialRule,Mt as MultiNoise,u as NbtReader,c as NbtWriter,Ut as NoiseChunk,zt as NoiseChunkGenerator,kt as NoiseGeneratorSettings,Dt as NoiseInterpolator,_t as NoiseOctaves,C as NoiseParameters,Xt as NoiseSampler,A as NoiseSamplingSettings,Rt as NoiseSettings,Nt as NoiseSlideSettings,G as NormalNoise,R as NumberProvider,Z as PerlinNoise,$ as PerlinSimplexNoise,Y as SimplexNoise,K as Spline,_ as Structure,St as StructureRenderer,Tt as StructureSettings,At as TerrainInfo,Lt as TerrainShaper,It as TextureAtlas,W as XoroshiroRandom,j as binarySearch,M as clamp,X as clampedLerp,B as getListTag,I as getOptional,S 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,z as smoothstep,O as square,h as tagNames,l as tagTypes,w as write,y 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__\"","'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.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 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 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.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 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 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.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 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 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: 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 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_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 = 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 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 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/configured_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 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:block_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:cave_surface': {\r\n surface: StringNode({ enum: ['floor', 'ceiling'] }),\r\n floor_to_ceiling_search_range: core_1.NumberNode({ integer: true }),\r\n allow_water: core_1.BooleanNode(),\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: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 },\r\n 'minecraft:heightmap': {\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:scatter': {\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': {\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: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 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 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: Feature,\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: 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_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: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: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: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: 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 },\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 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: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 ignore_vines: true,\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 })\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 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:matching_blocks': {\r\n offset: core_1.Opt(Reference('block_pos')),\r\n blocks: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:matching_fluids': {\r\n offset: core_1.Opt(Reference('block_pos')),\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: core_1.Opt(Reference('block_pos')),\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 surface_type: StringNode({ enum: 'cave_surface' }),\r\n add_run_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 run_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 run_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/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 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: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';\n\n\nfunction isNothing(subject) {\n return (typeof subject === 'undefined') || (subject === null);\n}\n\n\nfunction isObject(subject) {\n return (typeof subject === 'object') && (subject !== null);\n}\n\n\nfunction toArray(sequence) {\n if (Array.isArray(sequence)) return sequence;\n else if (isNothing(sequence)) return [];\n\n return [ sequence ];\n}\n\n\nfunction extend(target, source) {\n var index, length, key, sourceKeys;\n\n if (source) {\n sourceKeys = Object.keys(source);\n\n for (index = 0, length = sourceKeys.length; index < length; index += 1) {\n key = sourceKeys[index];\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\n\nfunction repeat(string, count) {\n var result = '', cycle;\n\n for (cycle = 0; cycle < count; cycle += 1) {\n result += string;\n }\n\n return result;\n}\n\n\nfunction isNegativeZero(number) {\n return (number === 0) && (Number.NEGATIVE_INFINITY === 1 / number);\n}\n\n\nmodule.exports.isNothing = isNothing;\nmodule.exports.isObject = isObject;\nmodule.exports.toArray = toArray;\nmodule.exports.repeat = repeat;\nmodule.exports.isNegativeZero = isNegativeZero;\nmodule.exports.extend = extend;\n","// YAML error class. http://stackoverflow.com/questions/8458984\n//\n'use strict';\n\nfunction YAMLException(reason, mark) {\n // Super constructor\n Error.call(this);\n\n this.name = 'YAMLException';\n this.reason = reason;\n this.mark = mark;\n this.message = (this.reason || '(unknown reason)') + (this.mark ? ' ' + this.mark.toString() : '');\n\n // Include stack trace in error object\n if (Error.captureStackTrace) {\n // Chrome and NodeJS\n Error.captureStackTrace(this, this.constructor);\n } else {\n // FF, IE 10+ and Safari 6+. Fallback for others\n this.stack = (new Error()).stack || '';\n }\n}\n\n\n// Inherit from Error\nYAMLException.prototype = Object.create(Error.prototype);\nYAMLException.prototype.constructor = YAMLException;\n\n\nYAMLException.prototype.toString = function toString(compact) {\n var result = this.name + ': ';\n\n result += this.reason || '(unknown reason)';\n\n if (!compact && this.mark) {\n result += ' ' + this.mark.toString();\n }\n\n return result;\n};\n\n\nmodule.exports = YAMLException;\n","'use strict';\n\n\nvar common = require('./common');\n\n\nfunction Mark(name, buffer, position, line, column) {\n this.name = name;\n this.buffer = buffer;\n this.position = position;\n this.line = line;\n this.column = column;\n}\n\n\nMark.prototype.getSnippet = function getSnippet(indent, maxLength) {\n var head, start, tail, end, snippet;\n\n if (!this.buffer) return null;\n\n indent = indent || 4;\n maxLength = maxLength || 75;\n\n head = '';\n start = this.position;\n\n while (start > 0 && '\\x00\\r\\n\\x85\\u2028\\u2029'.indexOf(this.buffer.charAt(start - 1)) === -1) {\n start -= 1;\n if (this.position - start > (maxLength / 2 - 1)) {\n head = ' ... ';\n start += 5;\n break;\n }\n }\n\n tail = '';\n end = this.position;\n\n while (end < this.buffer.length && '\\x00\\r\\n\\x85\\u2028\\u2029'.indexOf(this.buffer.charAt(end)) === -1) {\n end += 1;\n if (end - this.position > (maxLength / 2 - 1)) {\n tail = ' ... ';\n end -= 5;\n break;\n }\n }\n\n snippet = this.buffer.slice(start, end);\n\n return common.repeat(' ', indent) + head + snippet + tail + '\\n' +\n common.repeat(' ', indent + this.position - start + head.length) + '^';\n};\n\n\nMark.prototype.toString = function toString(compact) {\n var snippet, where = '';\n\n if (this.name) {\n where += 'in \"' + this.name + '\" ';\n }\n\n where += 'at line ' + (this.line + 1) + ', column ' + (this.column + 1);\n\n if (!compact) {\n snippet = this.getSnippet();\n\n if (snippet) {\n where += ':\\n' + snippet;\n }\n }\n\n return where;\n};\n\n\nmodule.exports = Mark;\n","'use strict';\n\nvar YAMLException = require('./exception');\n\nvar TYPE_CONSTRUCTOR_OPTIONS = [\n 'kind',\n 'resolve',\n 'construct',\n 'instanceOf',\n 'predicate',\n 'represent',\n 'defaultStyle',\n 'styleAliases'\n];\n\nvar YAML_NODE_KINDS = [\n 'scalar',\n 'sequence',\n 'mapping'\n];\n\nfunction compileStyleAliases(map) {\n var result = {};\n\n if (map !== null) {\n Object.keys(map).forEach(function (style) {\n map[style].forEach(function (alias) {\n result[String(alias)] = style;\n });\n });\n }\n\n return result;\n}\n\nfunction Type(tag, options) {\n options = options || {};\n\n Object.keys(options).forEach(function (name) {\n if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) {\n throw new YAMLException('Unknown option \"' + name + '\" is met in definition of \"' + tag + '\" YAML type.');\n }\n });\n\n // TODO: Add tag format check.\n this.tag = tag;\n this.kind = options['kind'] || null;\n this.resolve = options['resolve'] || function () { return true; };\n this.construct = options['construct'] || function (data) { return data; };\n this.instanceOf = options['instanceOf'] || null;\n this.predicate = options['predicate'] || null;\n this.represent = options['represent'] || null;\n this.defaultStyle = options['defaultStyle'] || null;\n this.styleAliases = compileStyleAliases(options['styleAliases'] || null);\n\n if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {\n throw new YAMLException('Unknown kind \"' + this.kind + '\" is specified for \"' + tag + '\" YAML type.');\n }\n}\n\nmodule.exports = Type;\n","'use strict';\n\n/*eslint-disable max-len*/\n\nvar common = require('./common');\nvar YAMLException = require('./exception');\nvar Type = require('./type');\n\n\nfunction compileList(schema, name, result) {\n var exclude = [];\n\n schema.include.forEach(function (includedSchema) {\n result = compileList(includedSchema, name, result);\n });\n\n schema[name].forEach(function (currentType) {\n result.forEach(function (previousType, previousIndex) {\n if (previousType.tag === currentType.tag && previousType.kind === currentType.kind) {\n exclude.push(previousIndex);\n }\n });\n\n result.push(currentType);\n });\n\n return result.filter(function (type, index) {\n return exclude.indexOf(index) === -1;\n });\n}\n\n\nfunction compileMap(/* lists... */) {\n var result = {\n scalar: {},\n sequence: {},\n mapping: {},\n fallback: {}\n }, index, length;\n\n function collectType(type) {\n result[type.kind][type.tag] = result['fallback'][type.tag] = type;\n }\n\n for (index = 0, length = arguments.length; index < length; index += 1) {\n arguments[index].forEach(collectType);\n }\n return result;\n}\n\n\nfunction Schema(definition) {\n this.include = definition.include || [];\n this.implicit = definition.implicit || [];\n this.explicit = definition.explicit || [];\n\n this.implicit.forEach(function (type) {\n if (type.loadKind && type.loadKind !== 'scalar') {\n throw new YAMLException('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.');\n }\n });\n\n this.compiledImplicit = compileList(this, 'implicit', []);\n this.compiledExplicit = compileList(this, 'explicit', []);\n this.compiledTypeMap = compileMap(this.compiledImplicit, this.compiledExplicit);\n}\n\n\nSchema.DEFAULT = null;\n\n\nSchema.create = function createSchema() {\n var schemas, types;\n\n switch (arguments.length) {\n case 1:\n schemas = Schema.DEFAULT;\n types = arguments[0];\n break;\n\n case 2:\n schemas = arguments[0];\n types = arguments[1];\n break;\n\n default:\n throw new YAMLException('Wrong number of arguments for Schema.create function');\n }\n\n schemas = common.toArray(schemas);\n types = common.toArray(types);\n\n if (!schemas.every(function (schema) { return schema instanceof Schema; })) {\n throw new YAMLException('Specified list of super schemas (or a single Schema object) contains a non-Schema object.');\n }\n\n if (!types.every(function (type) { return type instanceof Type; })) {\n throw new YAMLException('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n\n return new Schema({\n include: schemas,\n explicit: types\n });\n};\n\n\nmodule.exports = Schema;\n","// Standard YAML's Failsafe schema.\n// http://www.yaml.org/spec/1.2/spec.html#id2802346\n\n\n'use strict';\n\n\nvar Schema = require('../schema');\n\n\nmodule.exports = new Schema({\n explicit: [\n require('../type/str'),\n require('../type/seq'),\n require('../type/map')\n ]\n});\n","'use strict';\n\nvar Type = require('../type');\n\nmodule.exports = new Type('tag:yaml.org,2002:str', {\n kind: 'scalar',\n construct: function (data) { return data !== null ? data : ''; }\n});\n","'use strict';\n\nvar Type = require('../type');\n\nmodule.exports = new Type('tag:yaml.org,2002:seq', {\n kind: 'sequence',\n construct: function (data) { return data !== null ? data : []; }\n});\n","'use strict';\n\nvar Type = require('../type');\n\nmodule.exports = new Type('tag:yaml.org,2002:map', {\n kind: 'mapping',\n construct: function (data) { return data !== null ? data : {}; }\n});\n","'use strict';\n\nvar Type = require('../type');\n\nfunction resolveYamlNull(data) {\n if (data === null) return true;\n\n var max = data.length;\n\n return (max === 1 && data === '~') ||\n (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL'));\n}\n\nfunction constructYamlNull() {\n return null;\n}\n\nfunction isNull(object) {\n return object === null;\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:null', {\n kind: 'scalar',\n resolve: resolveYamlNull,\n construct: constructYamlNull,\n predicate: isNull,\n represent: {\n canonical: function () { return '~'; },\n lowercase: function () { return 'null'; },\n uppercase: function () { return 'NULL'; },\n camelcase: function () { return 'Null'; }\n },\n defaultStyle: 'lowercase'\n});\n","'use strict';\n\nvar Type = require('../type');\n\nfunction resolveYamlBoolean(data) {\n if (data === null) return false;\n\n var max = data.length;\n\n return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) ||\n (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE'));\n}\n\nfunction constructYamlBoolean(data) {\n return data === 'true' ||\n data === 'True' ||\n data === 'TRUE';\n}\n\nfunction isBoolean(object) {\n return Object.prototype.toString.call(object) === '[object Boolean]';\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:bool', {\n kind: 'scalar',\n resolve: resolveYamlBoolean,\n construct: constructYamlBoolean,\n predicate: isBoolean,\n represent: {\n lowercase: function (object) { return object ? 'true' : 'false'; },\n uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; },\n camelcase: function (object) { return object ? 'True' : 'False'; }\n },\n defaultStyle: 'lowercase'\n});\n","'use strict';\n\nvar common = require('../common');\nvar Type = require('../type');\n\nfunction isHexCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) ||\n ((0x41/* A */ <= c) && (c <= 0x46/* F */)) ||\n ((0x61/* a */ <= c) && (c <= 0x66/* f */));\n}\n\nfunction isOctCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */));\n}\n\nfunction isDecCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */));\n}\n\nfunction resolveYamlInteger(data) {\n if (data === null) return false;\n\n var max = data.length,\n index = 0,\n hasDigits = false,\n ch;\n\n if (!max) return false;\n\n ch = data[index];\n\n // sign\n if (ch === '-' || ch === '+') {\n ch = data[++index];\n }\n\n if (ch === '0') {\n // 0\n if (index + 1 === max) return true;\n ch = data[++index];\n\n // base 2, base 8, base 16\n\n if (ch === 'b') {\n // base 2\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (ch !== '0' && ch !== '1') return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n\n if (ch === 'x') {\n // base 16\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isHexCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n // base 8\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isOctCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n // base 10 (except 0) or base 60\n\n // value should not start with `_`;\n if (ch === '_') return false;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (ch === ':') break;\n if (!isDecCode(data.charCodeAt(index))) {\n return false;\n }\n hasDigits = true;\n }\n\n // Should have digits and should not end with `_`\n if (!hasDigits || ch === '_') return false;\n\n // if !base60 - done;\n if (ch !== ':') return true;\n\n // base60 almost not used, no needs to optimize\n return /^(:[0-5]?[0-9])+$/.test(data.slice(index));\n}\n\nfunction constructYamlInteger(data) {\n var value = data, sign = 1, ch, base, digits = [];\n\n if (value.indexOf('_') !== -1) {\n value = value.replace(/_/g, '');\n }\n\n ch = value[0];\n\n if (ch === '-' || ch === '+') {\n if (ch === '-') sign = -1;\n value = value.slice(1);\n ch = value[0];\n }\n\n if (value === '0') return 0;\n\n if (ch === '0') {\n if (value[1] === 'b') return sign * parseInt(value.slice(2), 2);\n if (value[1] === 'x') return sign * parseInt(value, 16);\n return sign * parseInt(value, 8);\n }\n\n if (value.indexOf(':') !== -1) {\n value.split(':').forEach(function (v) {\n digits.unshift(parseInt(v, 10));\n });\n\n value = 0;\n base = 1;\n\n digits.forEach(function (d) {\n value += (d * base);\n base *= 60;\n });\n\n return sign * value;\n\n }\n\n return sign * parseInt(value, 10);\n}\n\nfunction isInteger(object) {\n return (Object.prototype.toString.call(object)) === '[object Number]' &&\n (object % 1 === 0 && !common.isNegativeZero(object));\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:int', {\n kind: 'scalar',\n resolve: resolveYamlInteger,\n construct: constructYamlInteger,\n predicate: isInteger,\n represent: {\n binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); },\n octal: function (obj) { return obj >= 0 ? '0' + obj.toString(8) : '-0' + obj.toString(8).slice(1); },\n decimal: function (obj) { return obj.toString(10); },\n /* eslint-disable max-len */\n hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); }\n },\n defaultStyle: 'decimal',\n styleAliases: {\n binary: [ 2, 'bin' ],\n octal: [ 8, 'oct' ],\n decimal: [ 10, 'dec' ],\n hexadecimal: [ 16, 'hex' ]\n }\n});\n","'use strict';\n\nvar common = require('../common');\nvar Type = require('../type');\n\nvar YAML_FLOAT_PATTERN = new RegExp(\n // 2.5e4, 2.5 and integers\n '^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' +\n // .2e4, .2\n // special case, seems not from spec\n '|\\\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' +\n // 20:59\n '|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\\\.[0-9_]*' +\n // .inf\n '|[-+]?\\\\.(?:inf|Inf|INF)' +\n // .nan\n '|\\\\.(?:nan|NaN|NAN))$');\n\nfunction resolveYamlFloat(data) {\n if (data === null) return false;\n\n if (!YAML_FLOAT_PATTERN.test(data) ||\n // Quick hack to not allow integers end with `_`\n // Probably should update regexp & check speed\n data[data.length - 1] === '_') {\n return false;\n }\n\n return true;\n}\n\nfunction constructYamlFloat(data) {\n var value, sign, base, digits;\n\n value = data.replace(/_/g, '').toLowerCase();\n sign = value[0] === '-' ? -1 : 1;\n digits = [];\n\n if ('+-'.indexOf(value[0]) >= 0) {\n value = value.slice(1);\n }\n\n if (value === '.inf') {\n return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\n\n } else if (value === '.nan') {\n return NaN;\n\n } else if (value.indexOf(':') >= 0) {\n value.split(':').forEach(function (v) {\n digits.unshift(parseFloat(v, 10));\n });\n\n value = 0.0;\n base = 1;\n\n digits.forEach(function (d) {\n value += d * base;\n base *= 60;\n });\n\n return sign * value;\n\n }\n return sign * parseFloat(value, 10);\n}\n\n\nvar SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;\n\nfunction representYamlFloat(object, style) {\n var res;\n\n if (isNaN(object)) {\n switch (style) {\n case 'lowercase': return '.nan';\n case 'uppercase': return '.NAN';\n case 'camelcase': return '.NaN';\n }\n } else if (Number.POSITIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '.inf';\n case 'uppercase': return '.INF';\n case 'camelcase': return '.Inf';\n }\n } else if (Number.NEGATIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '-.inf';\n case 'uppercase': return '-.INF';\n case 'camelcase': return '-.Inf';\n }\n } else if (common.isNegativeZero(object)) {\n return '-0.0';\n }\n\n res = object.toString(10);\n\n // JS stringifier can build scientific format without dots: 5e-100,\n // while YAML requres dot: 5.e-100. Fix it with simple hack\n\n return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res;\n}\n\nfunction isFloat(object) {\n return (Object.prototype.toString.call(object) === '[object Number]') &&\n (object % 1 !== 0 || common.isNegativeZero(object));\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:float', {\n kind: 'scalar',\n resolve: resolveYamlFloat,\n construct: constructYamlFloat,\n predicate: isFloat,\n represent: representYamlFloat,\n defaultStyle: 'lowercase'\n});\n","// Standard YAML's JSON schema.\n// http://www.yaml.org/spec/1.2/spec.html#id2803231\n//\n// NOTE: JS-YAML does not support schema-specific tag resolution restrictions.\n// So, this schema is not such strict as defined in the YAML specification.\n// It allows numbers in binary notaion, use `Null` and `NULL` as `null`, etc.\n\n\n'use strict';\n\n\nvar Schema = require('../schema');\n\n\nmodule.exports = new Schema({\n include: [\n require('./failsafe')\n ],\n implicit: [\n require('../type/null'),\n require('../type/bool'),\n require('../type/int'),\n require('../type/float')\n ]\n});\n","// Standard YAML's Core schema.\n// http://www.yaml.org/spec/1.2/spec.html#id2804923\n//\n// NOTE: JS-YAML does not support schema-specific tag resolution restrictions.\n// So, Core schema has no distinctions from JSON schema is JS-YAML.\n\n\n'use strict';\n\n\nvar Schema = require('../schema');\n\n\nmodule.exports = new Schema({\n include: [\n require('./json')\n ]\n});\n","'use strict';\n\nvar Type = require('../type');\n\nvar YAML_DATE_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9])' + // [2] month\n '-([0-9][0-9])$'); // [3] day\n\nvar YAML_TIMESTAMP_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9]?)' + // [2] month\n '-([0-9][0-9]?)' + // [3] day\n '(?:[Tt]|[ \\\\t]+)' + // ...\n '([0-9][0-9]?)' + // [4] hour\n ':([0-9][0-9])' + // [5] minute\n ':([0-9][0-9])' + // [6] second\n '(?:\\\\.([0-9]*))?' + // [7] fraction\n '(?:[ \\\\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour\n '(?::([0-9][0-9]))?))?$'); // [11] tz_minute\n\nfunction resolveYamlTimestamp(data) {\n if (data === null) return false;\n if (YAML_DATE_REGEXP.exec(data) !== null) return true;\n if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true;\n return false;\n}\n\nfunction constructYamlTimestamp(data) {\n var match, year, month, day, hour, minute, second, fraction = 0,\n delta = null, tz_hour, tz_minute, date;\n\n match = YAML_DATE_REGEXP.exec(data);\n if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data);\n\n if (match === null) throw new Error('Date resolve error');\n\n // match: [1] year [2] month [3] day\n\n year = +(match[1]);\n month = +(match[2]) - 1; // JS month starts with 0\n day = +(match[3]);\n\n if (!match[4]) { // no hour\n return new Date(Date.UTC(year, month, day));\n }\n\n // match: [4] hour [5] minute [6] second [7] fraction\n\n hour = +(match[4]);\n minute = +(match[5]);\n second = +(match[6]);\n\n if (match[7]) {\n fraction = match[7].slice(0, 3);\n while (fraction.length < 3) { // milli-seconds\n fraction += '0';\n }\n fraction = +fraction;\n }\n\n // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute\n\n if (match[9]) {\n tz_hour = +(match[10]);\n tz_minute = +(match[11] || 0);\n delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds\n if (match[9] === '-') delta = -delta;\n }\n\n date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));\n\n if (delta) date.setTime(date.getTime() - delta);\n\n return date;\n}\n\nfunction representYamlTimestamp(object /*, style*/) {\n return object.toISOString();\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:timestamp', {\n kind: 'scalar',\n resolve: resolveYamlTimestamp,\n construct: constructYamlTimestamp,\n instanceOf: Date,\n represent: representYamlTimestamp\n});\n","'use strict';\n\n/*eslint-disable no-bitwise*/\n\nvar NodeBuffer;\n\ntry {\n // A trick for browserified version, to not include `Buffer` shim\n var _require = require;\n NodeBuffer = _require('buffer').Buffer;\n} catch (__) {}\n\nvar Type = require('../type');\n\n\n// [ 64, 65, 66 ] -> [ padding, CR, LF ]\nvar BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\\n\\r';\n\n\nfunction resolveYamlBinary(data) {\n if (data === null) return false;\n\n var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP;\n\n // Convert one by one.\n for (idx = 0; idx < max; idx++) {\n code = map.indexOf(data.charAt(idx));\n\n // Skip CR/LF\n if (code > 64) continue;\n\n // Fail on illegal characters\n if (code < 0) return false;\n\n bitlen += 6;\n }\n\n // If there are any bits left, source was corrupted\n return (bitlen % 8) === 0;\n}\n\nfunction constructYamlBinary(data) {\n var idx, tailbits,\n input = data.replace(/[\\r\\n=]/g, ''), // remove CR/LF & padding to simplify scan\n max = input.length,\n map = BASE64_MAP,\n bits = 0,\n result = [];\n\n // Collect by 6*4 bits (3 bytes)\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 4 === 0) && idx) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n }\n\n bits = (bits << 6) | map.indexOf(input.charAt(idx));\n }\n\n // Dump tail\n\n tailbits = (max % 4) * 6;\n\n if (tailbits === 0) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n } else if (tailbits === 18) {\n result.push((bits >> 10) & 0xFF);\n result.push((bits >> 2) & 0xFF);\n } else if (tailbits === 12) {\n result.push((bits >> 4) & 0xFF);\n }\n\n // Wrap into Buffer for NodeJS and leave Array for browser\n if (NodeBuffer) {\n // Support node 6.+ Buffer API when available\n return NodeBuffer.from ? NodeBuffer.from(result) : new NodeBuffer(result);\n }\n\n return result;\n}\n\nfunction representYamlBinary(object /*, style*/) {\n var result = '', bits = 0, idx, tail,\n max = object.length,\n map = BASE64_MAP;\n\n // Convert every three bytes to 4 ASCII characters.\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 3 === 0) && idx) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n }\n\n bits = (bits << 8) + object[idx];\n }\n\n // Dump tail\n\n tail = max % 3;\n\n if (tail === 0) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n } else if (tail === 2) {\n result += map[(bits >> 10) & 0x3F];\n result += map[(bits >> 4) & 0x3F];\n result += map[(bits << 2) & 0x3F];\n result += map[64];\n } else if (tail === 1) {\n result += map[(bits >> 2) & 0x3F];\n result += map[(bits << 4) & 0x3F];\n result += map[64];\n result += map[64];\n }\n\n return result;\n}\n\nfunction isBinary(object) {\n return NodeBuffer && NodeBuffer.isBuffer(object);\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:binary', {\n kind: 'scalar',\n resolve: resolveYamlBinary,\n construct: constructYamlBinary,\n predicate: isBinary,\n represent: representYamlBinary\n});\n","'use strict';\n\nvar Type = require('../type');\n\nfunction resolveYamlMerge(data) {\n return data === '<<' || data === null;\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:merge', {\n kind: 'scalar',\n resolve: resolveYamlMerge\n});\n","'use strict';\n\nvar Type = require('../type');\n\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\nvar _toString = Object.prototype.toString;\n\nfunction resolveYamlOmap(data) {\n if (data === null) return true;\n\n var objectKeys = [], index, length, pair, pairKey, pairHasKey,\n object = data;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n pairHasKey = false;\n\n if (_toString.call(pair) !== '[object Object]') return false;\n\n for (pairKey in pair) {\n if (_hasOwnProperty.call(pair, pairKey)) {\n if (!pairHasKey) pairHasKey = true;\n else return false;\n }\n }\n\n if (!pairHasKey) return false;\n\n if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey);\n else return false;\n }\n\n return true;\n}\n\nfunction constructYamlOmap(data) {\n return data !== null ? data : [];\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:omap', {\n kind: 'sequence',\n resolve: resolveYamlOmap,\n construct: constructYamlOmap\n});\n","'use strict';\n\nvar Type = require('../type');\n\nvar _toString = Object.prototype.toString;\n\nfunction resolveYamlPairs(data) {\n if (data === null) return true;\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n if (_toString.call(pair) !== '[object Object]') return false;\n\n keys = Object.keys(pair);\n\n if (keys.length !== 1) return false;\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return true;\n}\n\nfunction constructYamlPairs(data) {\n if (data === null) return [];\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n keys = Object.keys(pair);\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return result;\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:pairs', {\n kind: 'sequence',\n resolve: resolveYamlPairs,\n construct: constructYamlPairs\n});\n","'use strict';\n\nvar Type = require('../type');\n\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction resolveYamlSet(data) {\n if (data === null) return true;\n\n var key, object = data;\n\n for (key in object) {\n if (_hasOwnProperty.call(object, key)) {\n if (object[key] !== null) return false;\n }\n }\n\n return true;\n}\n\nfunction constructYamlSet(data) {\n return data !== null ? data : {};\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:set', {\n kind: 'mapping',\n resolve: resolveYamlSet,\n construct: constructYamlSet\n});\n","// JS-YAML's default schema for `safeLoad` function.\n// It is not described in the YAML specification.\n//\n// This schema is based on standard YAML's Core schema and includes most of\n// extra types described at YAML tag repository. (http://yaml.org/type/)\n\n\n'use strict';\n\n\nvar Schema = require('../schema');\n\n\nmodule.exports = new Schema({\n include: [\n require('./core')\n ],\n implicit: [\n require('../type/timestamp'),\n require('../type/merge')\n ],\n explicit: [\n require('../type/binary'),\n require('../type/omap'),\n require('../type/pairs'),\n require('../type/set')\n ]\n});\n","'use strict';\n\nvar Type = require('../../type');\n\nfunction resolveJavascriptUndefined() {\n return true;\n}\n\nfunction constructJavascriptUndefined() {\n /*eslint-disable no-undefined*/\n return undefined;\n}\n\nfunction representJavascriptUndefined() {\n return '';\n}\n\nfunction isUndefined(object) {\n return typeof object === 'undefined';\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:js/undefined', {\n kind: 'scalar',\n resolve: resolveJavascriptUndefined,\n construct: constructJavascriptUndefined,\n predicate: isUndefined,\n represent: representJavascriptUndefined\n});\n","'use strict';\n\nvar esprima;\n\n// Browserified version does not have esprima\n//\n// 1. For node.js just require module as deps\n// 2. For browser try to require mudule via external AMD system.\n// If not found - try to fallback to window.esprima. If not\n// found too - then fail to parse.\n//\ntry {\n // workaround to exclude package from browserify list.\n var _require = require;\n esprima = _require('esprima');\n} catch (_) {\n /* eslint-disable no-redeclare */\n /* global window */\n if (typeof window !== 'undefined') esprima = window.esprima;\n}\n\nvar Type = require('../../type');\n\nfunction resolveJavascriptFunction(data) {\n if (data === null) return false;\n\n try {\n var source = '(' + data + ')',\n ast = esprima.parse(source, { range: true });\n\n if (ast.type !== 'Program' ||\n ast.body.length !== 1 ||\n ast.body[0].type !== 'ExpressionStatement' ||\n (ast.body[0].expression.type !== 'ArrowFunctionExpression' &&\n ast.body[0].expression.type !== 'FunctionExpression')) {\n return false;\n }\n\n return true;\n } catch (err) {\n return false;\n }\n}\n\nfunction constructJavascriptFunction(data) {\n /*jslint evil:true*/\n\n var source = '(' + data + ')',\n ast = esprima.parse(source, { range: true }),\n params = [],\n body;\n\n if (ast.type !== 'Program' ||\n ast.body.length !== 1 ||\n ast.body[0].type !== 'ExpressionStatement' ||\n (ast.body[0].expression.type !== 'ArrowFunctionExpression' &&\n ast.body[0].expression.type !== 'FunctionExpression')) {\n throw new Error('Failed to resolve function');\n }\n\n ast.body[0].expression.params.forEach(function (param) {\n params.push(param.name);\n });\n\n body = ast.body[0].expression.body.range;\n\n // Esprima's ranges include the first '{' and the last '}' characters on\n // function expressions. So cut them out.\n if (ast.body[0].expression.body.type === 'BlockStatement') {\n /*eslint-disable no-new-func*/\n return new Function(params, source.slice(body[0] + 1, body[1] - 1));\n }\n // ES6 arrow functions can omit the BlockStatement. In that case, just return\n // the body.\n /*eslint-disable no-new-func*/\n return new Function(params, 'return ' + source.slice(body[0], body[1]));\n}\n\nfunction representJavascriptFunction(object /*, style*/) {\n return object.toString();\n}\n\nfunction isFunction(object) {\n return Object.prototype.toString.call(object) === '[object Function]';\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:js/function', {\n kind: 'scalar',\n resolve: resolveJavascriptFunction,\n construct: constructJavascriptFunction,\n predicate: isFunction,\n represent: representJavascriptFunction\n});\n","'use strict';\n\nvar Type = require('../../type');\n\nfunction resolveJavascriptRegExp(data) {\n if (data === null) return false;\n if (data.length === 0) return false;\n\n var regexp = data,\n tail = /\\/([gim]*)$/.exec(data),\n modifiers = '';\n\n // if regexp starts with '/' it can have modifiers and must be properly closed\n // `/foo/gim` - modifiers tail can be maximum 3 chars\n if (regexp[0] === '/') {\n if (tail) modifiers = tail[1];\n\n if (modifiers.length > 3) return false;\n // if expression starts with /, is should be properly terminated\n if (regexp[regexp.length - modifiers.length - 1] !== '/') return false;\n }\n\n return true;\n}\n\nfunction constructJavascriptRegExp(data) {\n var regexp = data,\n tail = /\\/([gim]*)$/.exec(data),\n modifiers = '';\n\n // `/foo/gim` - tail can be maximum 4 chars\n if (regexp[0] === '/') {\n if (tail) modifiers = tail[1];\n regexp = regexp.slice(1, regexp.length - modifiers.length - 1);\n }\n\n return new RegExp(regexp, modifiers);\n}\n\nfunction representJavascriptRegExp(object /*, style*/) {\n var result = '/' + object.source + '/';\n\n if (object.global) result += 'g';\n if (object.multiline) result += 'm';\n if (object.ignoreCase) result += 'i';\n\n return result;\n}\n\nfunction isRegExp(object) {\n return Object.prototype.toString.call(object) === '[object RegExp]';\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:js/regexp', {\n kind: 'scalar',\n resolve: resolveJavascriptRegExp,\n construct: constructJavascriptRegExp,\n predicate: isRegExp,\n represent: representJavascriptRegExp\n});\n","// JS-YAML's default schema for `load` function.\n// It is not described in the YAML specification.\n//\n// This schema is based on JS-YAML's default safe schema and includes\n// JavaScript-specific types: !!js/undefined, !!js/regexp and !!js/function.\n//\n// Also this schema is used as default base schema at `Schema.create` function.\n\n\n'use strict';\n\n\nvar Schema = require('../schema');\n\n\nmodule.exports = Schema.DEFAULT = new Schema({\n include: [\n require('./default_safe')\n ],\n explicit: [\n require('../type/js/undefined'),\n require('../type/js/regexp'),\n require('../type/js/function')\n ]\n});\n","'use strict';\n\n/*eslint-disable max-len,no-use-before-define*/\n\nvar common = require('./common');\nvar YAMLException = require('./exception');\nvar Mark = require('./mark');\nvar DEFAULT_SAFE_SCHEMA = require('./schema/default_safe');\nvar DEFAULT_FULL_SCHEMA = require('./schema/default_full');\n\n\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\n\nvar CONTEXT_FLOW_IN = 1;\nvar CONTEXT_FLOW_OUT = 2;\nvar CONTEXT_BLOCK_IN = 3;\nvar CONTEXT_BLOCK_OUT = 4;\n\n\nvar CHOMPING_CLIP = 1;\nvar CHOMPING_STRIP = 2;\nvar CHOMPING_KEEP = 3;\n\n\nvar PATTERN_NON_PRINTABLE = /[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x84\\x86-\\x9F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\nvar PATTERN_NON_ASCII_LINE_BREAKS = /[\\x85\\u2028\\u2029]/;\nvar PATTERN_FLOW_INDICATORS = /[,\\[\\]\\{\\}]/;\nvar PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\\-]+!)$/i;\nvar PATTERN_TAG_URI = /^(?:!|[^,\\[\\]\\{\\}])(?:%[0-9a-f]{2}|[0-9a-z\\-#;\\/\\?:@&=\\+\\$,_\\.!~\\*'\\(\\)\\[\\]])*$/i;\n\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\n\nfunction is_EOL(c) {\n return (c === 0x0A/* LF */) || (c === 0x0D/* CR */);\n}\n\nfunction is_WHITE_SPACE(c) {\n return (c === 0x09/* Tab */) || (c === 0x20/* Space */);\n}\n\nfunction is_WS_OR_EOL(c) {\n return (c === 0x09/* Tab */) ||\n (c === 0x20/* Space */) ||\n (c === 0x0A/* LF */) ||\n (c === 0x0D/* CR */);\n}\n\nfunction is_FLOW_INDICATOR(c) {\n return c === 0x2C/* , */ ||\n c === 0x5B/* [ */ ||\n c === 0x5D/* ] */ ||\n c === 0x7B/* { */ ||\n c === 0x7D/* } */;\n}\n\nfunction fromHexCode(c) {\n var lc;\n\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n /*eslint-disable no-bitwise*/\n lc = c | 0x20;\n\n if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) {\n return lc - 0x61 + 10;\n }\n\n return -1;\n}\n\nfunction escapedHexLen(c) {\n if (c === 0x78/* x */) { return 2; }\n if (c === 0x75/* u */) { return 4; }\n if (c === 0x55/* U */) { return 8; }\n return 0;\n}\n\nfunction fromDecimalCode(c) {\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n return -1;\n}\n\nfunction simpleEscapeSequence(c) {\n /* eslint-disable indent */\n return (c === 0x30/* 0 */) ? '\\x00' :\n (c === 0x61/* a */) ? '\\x07' :\n (c === 0x62/* b */) ? '\\x08' :\n (c === 0x74/* t */) ? '\\x09' :\n (c === 0x09/* Tab */) ? '\\x09' :\n (c === 0x6E/* n */) ? '\\x0A' :\n (c === 0x76/* v */) ? '\\x0B' :\n (c === 0x66/* f */) ? '\\x0C' :\n (c === 0x72/* r */) ? '\\x0D' :\n (c === 0x65/* e */) ? '\\x1B' :\n (c === 0x20/* Space */) ? ' ' :\n (c === 0x22/* \" */) ? '\\x22' :\n (c === 0x2F/* / */) ? '/' :\n (c === 0x5C/* \\ */) ? '\\x5C' :\n (c === 0x4E/* N */) ? '\\x85' :\n (c === 0x5F/* _ */) ? '\\xA0' :\n (c === 0x4C/* L */) ? '\\u2028' :\n (c === 0x50/* P */) ? '\\u2029' : '';\n}\n\nfunction charFromCodepoint(c) {\n if (c <= 0xFFFF) {\n return String.fromCharCode(c);\n }\n // Encode UTF-16 surrogate pair\n // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF\n return String.fromCharCode(\n ((c - 0x010000) >> 10) + 0xD800,\n ((c - 0x010000) & 0x03FF) + 0xDC00\n );\n}\n\nvar simpleEscapeCheck = new Array(256); // integer, for fast access\nvar simpleEscapeMap = new Array(256);\nfor (var i = 0; i < 256; i++) {\n simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;\n simpleEscapeMap[i] = simpleEscapeSequence(i);\n}\n\n\nfunction State(input, options) {\n this.input = input;\n\n this.filename = options['filename'] || null;\n this.schema = options['schema'] || DEFAULT_FULL_SCHEMA;\n this.onWarning = options['onWarning'] || null;\n this.legacy = options['legacy'] || false;\n this.json = options['json'] || false;\n this.listener = options['listener'] || null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.typeMap = this.schema.compiledTypeMap;\n\n this.length = input.length;\n this.position = 0;\n this.line = 0;\n this.lineStart = 0;\n this.lineIndent = 0;\n\n this.documents = [];\n\n /*\n this.version;\n this.checkLineBreaks;\n this.tagMap;\n this.anchorMap;\n this.tag;\n this.anchor;\n this.kind;\n this.result;*/\n\n}\n\n\nfunction generateError(state, message) {\n return new YAMLException(\n message,\n new Mark(state.filename, state.input, state.position, state.line, (state.position - state.lineStart)));\n}\n\nfunction throwError(state, message) {\n throw generateError(state, message);\n}\n\nfunction throwWarning(state, message) {\n if (state.onWarning) {\n state.onWarning.call(null, generateError(state, message));\n }\n}\n\n\nvar directiveHandlers = {\n\n YAML: function handleYamlDirective(state, name, args) {\n\n var match, major, minor;\n\n if (state.version !== null) {\n throwError(state, 'duplication of %YAML directive');\n }\n\n if (args.length !== 1) {\n throwError(state, 'YAML directive accepts exactly one argument');\n }\n\n match = /^([0-9]+)\\.([0-9]+)$/.exec(args[0]);\n\n if (match === null) {\n throwError(state, 'ill-formed argument of the YAML directive');\n }\n\n major = parseInt(match[1], 10);\n minor = parseInt(match[2], 10);\n\n if (major !== 1) {\n throwError(state, 'unacceptable YAML version of the document');\n }\n\n state.version = args[0];\n state.checkLineBreaks = (minor < 2);\n\n if (minor !== 1 && minor !== 2) {\n throwWarning(state, 'unsupported YAML version of the document');\n }\n },\n\n TAG: function handleTagDirective(state, name, args) {\n\n var handle, prefix;\n\n if (args.length !== 2) {\n throwError(state, 'TAG directive accepts exactly two arguments');\n }\n\n handle = args[0];\n prefix = args[1];\n\n if (!PATTERN_TAG_HANDLE.test(handle)) {\n throwError(state, 'ill-formed tag handle (first argument) of the TAG directive');\n }\n\n if (_hasOwnProperty.call(state.tagMap, handle)) {\n throwError(state, 'there is a previously declared suffix for \"' + handle + '\" tag handle');\n }\n\n if (!PATTERN_TAG_URI.test(prefix)) {\n throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive');\n }\n\n state.tagMap[handle] = prefix;\n }\n};\n\n\nfunction captureSegment(state, start, end, checkJson) {\n var _position, _length, _character, _result;\n\n if (start < end) {\n _result = state.input.slice(start, end);\n\n if (checkJson) {\n for (_position = 0, _length = _result.length; _position < _length; _position += 1) {\n _character = _result.charCodeAt(_position);\n if (!(_character === 0x09 ||\n (0x20 <= _character && _character <= 0x10FFFF))) {\n throwError(state, 'expected valid JSON character');\n }\n }\n } else if (PATTERN_NON_PRINTABLE.test(_result)) {\n throwError(state, 'the stream contains non-printable characters');\n }\n\n state.result += _result;\n }\n}\n\nfunction mergeMappings(state, destination, source, overridableKeys) {\n var sourceKeys, key, index, quantity;\n\n if (!common.isObject(source)) {\n throwError(state, 'cannot merge mappings; the provided source object is unacceptable');\n }\n\n sourceKeys = Object.keys(source);\n\n for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {\n key = sourceKeys[index];\n\n if (!_hasOwnProperty.call(destination, key)) {\n destination[key] = source[key];\n overridableKeys[key] = true;\n }\n }\n}\n\nfunction storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startPos) {\n var index, quantity;\n\n // The output is a plain object here, so keys can only be strings.\n // We need to convert keyNode to a string, but doing so can hang the process\n // (deeply nested arrays that explode exponentially using aliases).\n if (Array.isArray(keyNode)) {\n keyNode = Array.prototype.slice.call(keyNode);\n\n for (index = 0, quantity = keyNode.length; index < quantity; index += 1) {\n if (Array.isArray(keyNode[index])) {\n throwError(state, 'nested arrays are not supported inside keys');\n }\n\n if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') {\n keyNode[index] = '[object Object]';\n }\n }\n }\n\n // Avoid code execution in load() via toString property\n // (still use its own toString for arrays, timestamps,\n // and whatever user schema extensions happen to have @@toStringTag)\n if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') {\n keyNode = '[object Object]';\n }\n\n\n keyNode = String(keyNode);\n\n if (_result === null) {\n _result = {};\n }\n\n if (keyTag === 'tag:yaml.org,2002:merge') {\n if (Array.isArray(valueNode)) {\n for (index = 0, quantity = valueNode.length; index < quantity; index += 1) {\n mergeMappings(state, _result, valueNode[index], overridableKeys);\n }\n } else {\n mergeMappings(state, _result, valueNode, overridableKeys);\n }\n } else {\n if (!state.json &&\n !_hasOwnProperty.call(overridableKeys, keyNode) &&\n _hasOwnProperty.call(_result, keyNode)) {\n state.line = startLine || state.line;\n state.position = startPos || state.position;\n throwError(state, 'duplicated mapping key');\n }\n _result[keyNode] = valueNode;\n delete overridableKeys[keyNode];\n }\n\n return _result;\n}\n\nfunction readLineBreak(state) {\n var ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x0A/* LF */) {\n state.position++;\n } else if (ch === 0x0D/* CR */) {\n state.position++;\n if (state.input.charCodeAt(state.position) === 0x0A/* LF */) {\n state.position++;\n }\n } else {\n throwError(state, 'a line break is expected');\n }\n\n state.line += 1;\n state.lineStart = state.position;\n}\n\nfunction skipSeparationSpace(state, allowComments, checkIndent) {\n var lineBreaks = 0,\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (allowComments && ch === 0x23/* # */) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0);\n }\n\n if (is_EOL(ch)) {\n readLineBreak(state);\n\n ch = state.input.charCodeAt(state.position);\n lineBreaks++;\n state.lineIndent = 0;\n\n while (ch === 0x20/* Space */) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n } else {\n break;\n }\n }\n\n if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) {\n throwWarning(state, 'deficient indentation');\n }\n\n return lineBreaks;\n}\n\nfunction testDocumentSeparator(state) {\n var _position = state.position,\n ch;\n\n ch = state.input.charCodeAt(_position);\n\n // Condition state.position === state.lineStart is tested\n // in parent on each call, for efficiency. No needs to test here again.\n if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) &&\n ch === state.input.charCodeAt(_position + 1) &&\n ch === state.input.charCodeAt(_position + 2)) {\n\n _position += 3;\n\n ch = state.input.charCodeAt(_position);\n\n if (ch === 0 || is_WS_OR_EOL(ch)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction writeFoldedLines(state, count) {\n if (count === 1) {\n state.result += ' ';\n } else if (count > 1) {\n state.result += common.repeat('\\n', count - 1);\n }\n}\n\n\nfunction readPlainScalar(state, nodeIndent, withinFlowCollection) {\n var preceding,\n following,\n captureStart,\n captureEnd,\n hasPendingContent,\n _line,\n _lineStart,\n _lineIndent,\n _kind = state.kind,\n _result = state.result,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (is_WS_OR_EOL(ch) ||\n is_FLOW_INDICATOR(ch) ||\n ch === 0x23/* # */ ||\n ch === 0x26/* & */ ||\n ch === 0x2A/* * */ ||\n ch === 0x21/* ! */ ||\n ch === 0x7C/* | */ ||\n ch === 0x3E/* > */ ||\n ch === 0x27/* ' */ ||\n ch === 0x22/* \" */ ||\n ch === 0x25/* % */ ||\n ch === 0x40/* @ */ ||\n ch === 0x60/* ` */) {\n return false;\n }\n\n if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n return false;\n }\n }\n\n state.kind = 'scalar';\n state.result = '';\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n\n while (ch !== 0) {\n if (ch === 0x3A/* : */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n break;\n }\n\n } else if (ch === 0x23/* # */) {\n preceding = state.input.charCodeAt(state.position - 1);\n\n if (is_WS_OR_EOL(preceding)) {\n break;\n }\n\n } else if ((state.position === state.lineStart && testDocumentSeparator(state)) ||\n withinFlowCollection && is_FLOW_INDICATOR(ch)) {\n break;\n\n } else if (is_EOL(ch)) {\n _line = state.line;\n _lineStart = state.lineStart;\n _lineIndent = state.lineIndent;\n skipSeparationSpace(state, false, -1);\n\n if (state.lineIndent >= nodeIndent) {\n hasPendingContent = true;\n ch = state.input.charCodeAt(state.position);\n continue;\n } else {\n state.position = captureEnd;\n state.line = _line;\n state.lineStart = _lineStart;\n state.lineIndent = _lineIndent;\n break;\n }\n }\n\n if (hasPendingContent) {\n captureSegment(state, captureStart, captureEnd, false);\n writeFoldedLines(state, state.line - _line);\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n }\n\n if (!is_WHITE_SPACE(ch)) {\n captureEnd = state.position + 1;\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, captureEnd, false);\n\n if (state.result) {\n return true;\n }\n\n state.kind = _kind;\n state.result = _result;\n return false;\n}\n\nfunction readSingleQuotedScalar(state, nodeIndent) {\n var ch,\n captureStart, captureEnd;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x27/* ' */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x27/* ' */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x27/* ' */) {\n captureStart = state.position;\n state.position++;\n captureEnd = state.position;\n } else {\n return true;\n }\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a single quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a single quoted scalar');\n}\n\nfunction readDoubleQuotedScalar(state, nodeIndent) {\n var captureStart,\n captureEnd,\n hexLength,\n hexResult,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x22/* \" */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x22/* \" */) {\n captureSegment(state, captureStart, state.position, true);\n state.position++;\n return true;\n\n } else if (ch === 0x5C/* \\ */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (is_EOL(ch)) {\n skipSeparationSpace(state, false, nodeIndent);\n\n // TODO: rework to inline fn with no type cast?\n } else if (ch < 256 && simpleEscapeCheck[ch]) {\n state.result += simpleEscapeMap[ch];\n state.position++;\n\n } else if ((tmp = escapedHexLen(ch)) > 0) {\n hexLength = tmp;\n hexResult = 0;\n\n for (; hexLength > 0; hexLength--) {\n ch = state.input.charCodeAt(++state.position);\n\n if ((tmp = fromHexCode(ch)) >= 0) {\n hexResult = (hexResult << 4) + tmp;\n\n } else {\n throwError(state, 'expected hexadecimal character');\n }\n }\n\n state.result += charFromCodepoint(hexResult);\n\n state.position++;\n\n } else {\n throwError(state, 'unknown escape sequence');\n }\n\n captureStart = captureEnd = state.position;\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a double quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a double quoted scalar');\n}\n\nfunction readFlowCollection(state, nodeIndent) {\n var readNext = true,\n _line,\n _tag = state.tag,\n _result,\n _anchor = state.anchor,\n following,\n terminator,\n isPair,\n isExplicitPair,\n isMapping,\n overridableKeys = {},\n keyNode,\n keyTag,\n valueNode,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x5B/* [ */) {\n terminator = 0x5D;/* ] */\n isMapping = false;\n _result = [];\n } else if (ch === 0x7B/* { */) {\n terminator = 0x7D;/* } */\n isMapping = true;\n _result = {};\n } else {\n return false;\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n while (ch !== 0) {\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === terminator) {\n state.position++;\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = isMapping ? 'mapping' : 'sequence';\n state.result = _result;\n return true;\n } else if (!readNext) {\n throwError(state, 'missed comma between flow collection entries');\n }\n\n keyTag = keyNode = valueNode = null;\n isPair = isExplicitPair = false;\n\n if (ch === 0x3F/* ? */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following)) {\n isPair = isExplicitPair = true;\n state.position++;\n skipSeparationSpace(state, true, nodeIndent);\n }\n }\n\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n keyTag = state.tag;\n keyNode = state.result;\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) {\n isPair = true;\n ch = state.input.charCodeAt(++state.position);\n skipSeparationSpace(state, true, nodeIndent);\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n valueNode = state.result;\n }\n\n if (isMapping) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode);\n } else if (isPair) {\n _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode));\n } else {\n _result.push(keyNode);\n }\n\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x2C/* , */) {\n readNext = true;\n ch = state.input.charCodeAt(++state.position);\n } else {\n readNext = false;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a flow collection');\n}\n\nfunction readBlockScalar(state, nodeIndent) {\n var captureStart,\n folding,\n chomping = CHOMPING_CLIP,\n didReadContent = false,\n detectedIndent = false,\n textIndent = nodeIndent,\n emptyLines = 0,\n atMoreIndented = false,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x7C/* | */) {\n folding = false;\n } else if (ch === 0x3E/* > */) {\n folding = true;\n } else {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n\n while (ch !== 0) {\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x2B/* + */ || ch === 0x2D/* - */) {\n if (CHOMPING_CLIP === chomping) {\n chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP;\n } else {\n throwError(state, 'repeat of a chomping mode identifier');\n }\n\n } else if ((tmp = fromDecimalCode(ch)) >= 0) {\n if (tmp === 0) {\n throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one');\n } else if (!detectedIndent) {\n textIndent = nodeIndent + tmp - 1;\n detectedIndent = true;\n } else {\n throwError(state, 'repeat of an indentation width identifier');\n }\n\n } else {\n break;\n }\n }\n\n if (is_WHITE_SPACE(ch)) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (is_WHITE_SPACE(ch));\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (!is_EOL(ch) && (ch !== 0));\n }\n }\n\n while (ch !== 0) {\n readLineBreak(state);\n state.lineIndent = 0;\n\n ch = state.input.charCodeAt(state.position);\n\n while ((!detectedIndent || state.lineIndent < textIndent) &&\n (ch === 0x20/* Space */)) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (!detectedIndent && state.lineIndent > textIndent) {\n textIndent = state.lineIndent;\n }\n\n if (is_EOL(ch)) {\n emptyLines++;\n continue;\n }\n\n // End of the scalar.\n if (state.lineIndent < textIndent) {\n\n // Perform the chomping.\n if (chomping === CHOMPING_KEEP) {\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n } else if (chomping === CHOMPING_CLIP) {\n if (didReadContent) { // i.e. only if the scalar is not empty.\n state.result += '\\n';\n }\n }\n\n // Break this `while` cycle and go to the funciton's epilogue.\n break;\n }\n\n // Folded style: use fancy rules to handle line breaks.\n if (folding) {\n\n // Lines starting with white space characters (more-indented lines) are not folded.\n if (is_WHITE_SPACE(ch)) {\n atMoreIndented = true;\n // except for the first content line (cf. Example 8.1)\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n\n // End of more-indented block.\n } else if (atMoreIndented) {\n atMoreIndented = false;\n state.result += common.repeat('\\n', emptyLines + 1);\n\n // Just one line break - perceive as the same line.\n } else if (emptyLines === 0) {\n if (didReadContent) { // i.e. only if we have already read some scalar content.\n state.result += ' ';\n }\n\n // Several line breaks - perceive as different lines.\n } else {\n state.result += common.repeat('\\n', emptyLines);\n }\n\n // Literal style: just add exact number of line breaks between content lines.\n } else {\n // Keep all line breaks except the header line break.\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n }\n\n didReadContent = true;\n detectedIndent = true;\n emptyLines = 0;\n captureStart = state.position;\n\n while (!is_EOL(ch) && (ch !== 0)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, state.position, false);\n }\n\n return true;\n}\n\nfunction readBlockSequence(state, nodeIndent) {\n var _line,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = [],\n following,\n detected = false,\n ch;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n\n if (ch !== 0x2D/* - */) {\n break;\n }\n\n following = state.input.charCodeAt(state.position + 1);\n\n if (!is_WS_OR_EOL(following)) {\n break;\n }\n\n detected = true;\n state.position++;\n\n if (skipSeparationSpace(state, true, -1)) {\n if (state.lineIndent <= nodeIndent) {\n _result.push(null);\n ch = state.input.charCodeAt(state.position);\n continue;\n }\n }\n\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);\n _result.push(state.result);\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {\n throwError(state, 'bad indentation of a sequence entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'sequence';\n state.result = _result;\n return true;\n }\n return false;\n}\n\nfunction readBlockMapping(state, nodeIndent, flowIndent) {\n var following,\n allowCompact,\n _line,\n _pos,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = {},\n overridableKeys = {},\n keyTag = null,\n keyNode = null,\n valueNode = null,\n atExplicitKey = false,\n detected = false,\n ch;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n following = state.input.charCodeAt(state.position + 1);\n _line = state.line; // Save the current line.\n _pos = state.position;\n\n //\n // Explicit notation case. There are two separate blocks:\n // first for the key (denoted by \"?\") and second for the value (denoted by \":\")\n //\n if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) {\n\n if (ch === 0x3F/* ? */) {\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = true;\n allowCompact = true;\n\n } else if (atExplicitKey) {\n // i.e. 0x3A/* : */ === character after the explicit key.\n atExplicitKey = false;\n allowCompact = true;\n\n } else {\n throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line');\n }\n\n state.position += 1;\n ch = following;\n\n //\n // Implicit notation case. Flow-style node as the key first, then \":\", and the value.\n //\n } else if (composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) {\n\n if (state.line === _line) {\n ch = state.input.charCodeAt(state.position);\n\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x3A/* : */) {\n ch = state.input.charCodeAt(++state.position);\n\n if (!is_WS_OR_EOL(ch)) {\n throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping');\n }\n\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = false;\n allowCompact = false;\n keyTag = state.tag;\n keyNode = state.result;\n\n } else if (detected) {\n throwError(state, 'can not read an implicit mapping pair; a colon is missed');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n\n } else if (detected) {\n throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n\n } else {\n break; // Reading is done. Go to the epilogue.\n }\n\n //\n // Common reading code for both explicit and implicit notations.\n //\n if (state.line === _line || state.lineIndent > nodeIndent) {\n if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {\n if (atExplicitKey) {\n keyNode = state.result;\n } else {\n valueNode = state.result;\n }\n }\n\n if (!atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _pos);\n keyTag = keyNode = valueNode = null;\n }\n\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n }\n\n if (state.lineIndent > nodeIndent && (ch !== 0)) {\n throwError(state, 'bad indentation of a mapping entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n //\n // Epilogue.\n //\n\n // Special case: last mapping's node contains only the key in explicit notation.\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null);\n }\n\n // Expose the resulting mapping.\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'mapping';\n state.result = _result;\n }\n\n return detected;\n}\n\nfunction readTagProperty(state) {\n var _position,\n isVerbatim = false,\n isNamed = false,\n tagHandle,\n tagName,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x21/* ! */) return false;\n\n if (state.tag !== null) {\n throwError(state, 'duplication of a tag property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x3C/* < */) {\n isVerbatim = true;\n ch = state.input.charCodeAt(++state.position);\n\n } else if (ch === 0x21/* ! */) {\n isNamed = true;\n tagHandle = '!!';\n ch = state.input.charCodeAt(++state.position);\n\n } else {\n tagHandle = '!';\n }\n\n _position = state.position;\n\n if (isVerbatim) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && ch !== 0x3E/* > */);\n\n if (state.position < state.length) {\n tagName = state.input.slice(_position, state.position);\n ch = state.input.charCodeAt(++state.position);\n } else {\n throwError(state, 'unexpected end of the stream within a verbatim tag');\n }\n } else {\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n\n if (ch === 0x21/* ! */) {\n if (!isNamed) {\n tagHandle = state.input.slice(_position - 1, state.position + 1);\n\n if (!PATTERN_TAG_HANDLE.test(tagHandle)) {\n throwError(state, 'named tag handle cannot contain such characters');\n }\n\n isNamed = true;\n _position = state.position + 1;\n } else {\n throwError(state, 'tag suffix cannot contain exclamation marks');\n }\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n tagName = state.input.slice(_position, state.position);\n\n if (PATTERN_FLOW_INDICATORS.test(tagName)) {\n throwError(state, 'tag suffix cannot contain flow indicator characters');\n }\n }\n\n if (tagName && !PATTERN_TAG_URI.test(tagName)) {\n throwError(state, 'tag name cannot contain such characters: ' + tagName);\n }\n\n if (isVerbatim) {\n state.tag = tagName;\n\n } else if (_hasOwnProperty.call(state.tagMap, tagHandle)) {\n state.tag = state.tagMap[tagHandle] + tagName;\n\n } else if (tagHandle === '!') {\n state.tag = '!' + tagName;\n\n } else if (tagHandle === '!!') {\n state.tag = 'tag:yaml.org,2002:' + tagName;\n\n } else {\n throwError(state, 'undeclared tag handle \"' + tagHandle + '\"');\n }\n\n return true;\n}\n\nfunction readAnchorProperty(state) {\n var _position,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x26/* & */) return false;\n\n if (state.anchor !== null) {\n throwError(state, 'duplication of an anchor property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an anchor node must contain at least one character');\n }\n\n state.anchor = state.input.slice(_position, state.position);\n return true;\n}\n\nfunction readAlias(state) {\n var _position, alias,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x2A/* * */) return false;\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an alias node must contain at least one character');\n }\n\n alias = state.input.slice(_position, state.position);\n\n if (!_hasOwnProperty.call(state.anchorMap, alias)) {\n throwError(state, 'unidentified alias \"' + alias + '\"');\n }\n\n state.result = state.anchorMap[alias];\n skipSeparationSpace(state, true, -1);\n return true;\n}\n\nfunction composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) {\n var allowBlockStyles,\n allowBlockScalars,\n allowBlockCollections,\n indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n }\n }\n\n if (indentStatus === 1) {\n while (readTagProperty(state) || readAnchorProperty(state)) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n allowBlockCollections = allowBlockStyles;\n\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n } else {\n allowBlockCollections = false;\n }\n }\n }\n\n if (allowBlockCollections) {\n allowBlockCollections = atNewLine || allowCompact;\n }\n\n if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {\n if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {\n flowIndent = parentIndent;\n } else {\n flowIndent = parentIndent + 1;\n }\n\n blockIndent = state.position - state.lineStart;\n\n if (indentStatus === 1) {\n if (allowBlockCollections &&\n (readBlockSequence(state, blockIndent) ||\n readBlockMapping(state, blockIndent, flowIndent)) ||\n readFlowCollection(state, flowIndent)) {\n hasContent = true;\n } else {\n if ((allowBlockScalars && readBlockScalar(state, flowIndent)) ||\n readSingleQuotedScalar(state, flowIndent) ||\n readDoubleQuotedScalar(state, flowIndent)) {\n hasContent = true;\n\n } else if (readAlias(state)) {\n hasContent = true;\n\n if (state.tag !== null || state.anchor !== null) {\n throwError(state, 'alias node should not have any properties');\n }\n\n } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {\n hasContent = true;\n\n if (state.tag === null) {\n state.tag = '?';\n }\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n } else if (indentStatus === 0) {\n // Special case: block sequences are allowed to have same indentation level as the parent.\n // http://www.yaml.org/spec/1.2/spec.html#id2799784\n hasContent = allowBlockCollections && readBlockSequence(state, blockIndent);\n }\n }\n\n if (state.tag !== null && state.tag !== '!') {\n if (state.tag === '?') {\n // Implicit resolving is not allowed for non-scalar types, and '?'\n // non-specific tag is only automatically assigned to plain scalars.\n //\n // We only need to check kind conformity in case user explicitly assigns '?'\n // tag, for example like this: \"! [0]\"\n //\n if (state.result !== null && state.kind !== 'scalar') {\n throwError(state, 'unacceptable node kind for ! tag; it should be \"scalar\", not \"' + state.kind + '\"');\n }\n\n for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {\n type = state.implicitTypes[typeIndex];\n\n if (type.resolve(state.result)) { // `state.result` updated in resolver if matched\n state.result = type.construct(state.result);\n state.tag = type.tag;\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n break;\n }\n }\n } else if (_hasOwnProperty.call(state.typeMap[state.kind || 'fallback'], state.tag)) {\n type = state.typeMap[state.kind || 'fallback'][state.tag];\n\n if (state.result !== null && type.kind !== state.kind) {\n throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be \"' + type.kind + '\", not \"' + state.kind + '\"');\n }\n\n if (!type.resolve(state.result)) { // `state.result` updated in resolver if matched\n throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag');\n } else {\n state.result = type.construct(state.result);\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n } else {\n throwError(state, 'unknown tag !<' + state.tag + '>');\n }\n }\n\n if (state.listener !== null) {\n state.listener('close', state);\n }\n return state.tag !== null || state.anchor !== null || hasContent;\n}\n\nfunction readDocument(state) {\n var documentStart = state.position,\n _position,\n directiveName,\n directiveArgs,\n hasDirectives = false,\n ch;\n\n state.version = null;\n state.checkLineBreaks = state.legacy;\n state.tagMap = {};\n state.anchorMap = {};\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if (state.lineIndent > 0 || ch !== 0x25/* % */) {\n break;\n }\n\n hasDirectives = true;\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveName = state.input.slice(_position, state.position);\n directiveArgs = [];\n\n if (directiveName.length < 1) {\n throwError(state, 'directive name must not be less than one character in length');\n }\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && !is_EOL(ch));\n break;\n }\n\n if (is_EOL(ch)) break;\n\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveArgs.push(state.input.slice(_position, state.position));\n }\n\n if (ch !== 0) readLineBreak(state);\n\n if (_hasOwnProperty.call(directiveHandlers, directiveName)) {\n directiveHandlers[directiveName](state, directiveName, directiveArgs);\n } else {\n throwWarning(state, 'unknown document directive \"' + directiveName + '\"');\n }\n }\n\n skipSeparationSpace(state, true, -1);\n\n if (state.lineIndent === 0 &&\n state.input.charCodeAt(state.position) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 1) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 2) === 0x2D/* - */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n\n } else if (hasDirectives) {\n throwError(state, 'directives end mark is expected');\n }\n\n composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);\n skipSeparationSpace(state, true, -1);\n\n if (state.checkLineBreaks &&\n PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) {\n throwWarning(state, 'non-ASCII line breaks are interpreted as content');\n }\n\n state.documents.push(state.result);\n\n if (state.position === state.lineStart && testDocumentSeparator(state)) {\n\n if (state.input.charCodeAt(state.position) === 0x2E/* . */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n }\n return;\n }\n\n if (state.position < (state.length - 1)) {\n throwError(state, 'end of the stream or a document separator is expected');\n } else {\n return;\n }\n}\n\n\nfunction loadDocuments(input, options) {\n input = String(input);\n options = options || {};\n\n if (input.length !== 0) {\n\n // Add tailing `\\n` if not exists\n if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ &&\n input.charCodeAt(input.length - 1) !== 0x0D/* CR */) {\n input += '\\n';\n }\n\n // Strip BOM\n if (input.charCodeAt(0) === 0xFEFF) {\n input = input.slice(1);\n }\n }\n\n var state = new State(input, options);\n\n var nullpos = input.indexOf('\\0');\n\n if (nullpos !== -1) {\n state.position = nullpos;\n throwError(state, 'null byte is not allowed in input');\n }\n\n // Use 0 as string terminator. That significantly simplifies bounds check.\n state.input += '\\0';\n\n while (state.input.charCodeAt(state.position) === 0x20/* Space */) {\n state.lineIndent += 1;\n state.position += 1;\n }\n\n while (state.position < (state.length - 1)) {\n readDocument(state);\n }\n\n return state.documents;\n}\n\n\nfunction loadAll(input, iterator, options) {\n if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') {\n options = iterator;\n iterator = null;\n }\n\n var documents = loadDocuments(input, options);\n\n if (typeof iterator !== 'function') {\n return documents;\n }\n\n for (var index = 0, length = documents.length; index < length; index += 1) {\n iterator(documents[index]);\n }\n}\n\n\nfunction load(input, options) {\n var documents = loadDocuments(input, options);\n\n if (documents.length === 0) {\n /*eslint-disable no-undefined*/\n return undefined;\n } else if (documents.length === 1) {\n return documents[0];\n }\n throw new YAMLException('expected a single document in the stream, but found more');\n}\n\n\nfunction safeLoadAll(input, iterator, options) {\n if (typeof iterator === 'object' && iterator !== null && typeof options === 'undefined') {\n options = iterator;\n iterator = null;\n }\n\n return loadAll(input, iterator, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options));\n}\n\n\nfunction safeLoad(input, options) {\n return load(input, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options));\n}\n\n\nmodule.exports.loadAll = loadAll;\nmodule.exports.load = load;\nmodule.exports.safeLoadAll = safeLoadAll;\nmodule.exports.safeLoad = safeLoad;\n","'use strict';\n\n/*eslint-disable no-use-before-define*/\n\nvar common = require('./common');\nvar YAMLException = require('./exception');\nvar DEFAULT_FULL_SCHEMA = require('./schema/default_full');\nvar DEFAULT_SAFE_SCHEMA = require('./schema/default_safe');\n\nvar _toString = Object.prototype.toString;\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar CHAR_TAB = 0x09; /* Tab */\nvar CHAR_LINE_FEED = 0x0A; /* LF */\nvar CHAR_CARRIAGE_RETURN = 0x0D; /* CR */\nvar CHAR_SPACE = 0x20; /* Space */\nvar CHAR_EXCLAMATION = 0x21; /* ! */\nvar CHAR_DOUBLE_QUOTE = 0x22; /* \" */\nvar CHAR_SHARP = 0x23; /* # */\nvar CHAR_PERCENT = 0x25; /* % */\nvar CHAR_AMPERSAND = 0x26; /* & */\nvar CHAR_SINGLE_QUOTE = 0x27; /* ' */\nvar CHAR_ASTERISK = 0x2A; /* * */\nvar CHAR_COMMA = 0x2C; /* , */\nvar CHAR_MINUS = 0x2D; /* - */\nvar CHAR_COLON = 0x3A; /* : */\nvar CHAR_EQUALS = 0x3D; /* = */\nvar CHAR_GREATER_THAN = 0x3E; /* > */\nvar CHAR_QUESTION = 0x3F; /* ? */\nvar CHAR_COMMERCIAL_AT = 0x40; /* @ */\nvar CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */\nvar CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */\nvar CHAR_GRAVE_ACCENT = 0x60; /* ` */\nvar CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */\nvar CHAR_VERTICAL_LINE = 0x7C; /* | */\nvar CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */\n\nvar ESCAPE_SEQUENCES = {};\n\nESCAPE_SEQUENCES[0x00] = '\\\\0';\nESCAPE_SEQUENCES[0x07] = '\\\\a';\nESCAPE_SEQUENCES[0x08] = '\\\\b';\nESCAPE_SEQUENCES[0x09] = '\\\\t';\nESCAPE_SEQUENCES[0x0A] = '\\\\n';\nESCAPE_SEQUENCES[0x0B] = '\\\\v';\nESCAPE_SEQUENCES[0x0C] = '\\\\f';\nESCAPE_SEQUENCES[0x0D] = '\\\\r';\nESCAPE_SEQUENCES[0x1B] = '\\\\e';\nESCAPE_SEQUENCES[0x22] = '\\\\\"';\nESCAPE_SEQUENCES[0x5C] = '\\\\\\\\';\nESCAPE_SEQUENCES[0x85] = '\\\\N';\nESCAPE_SEQUENCES[0xA0] = '\\\\_';\nESCAPE_SEQUENCES[0x2028] = '\\\\L';\nESCAPE_SEQUENCES[0x2029] = '\\\\P';\n\nvar DEPRECATED_BOOLEANS_SYNTAX = [\n 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON',\n 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF'\n];\n\nfunction compileStyleMap(schema, map) {\n var result, keys, index, length, tag, style, type;\n\n if (map === null) return {};\n\n result = {};\n keys = Object.keys(map);\n\n for (index = 0, length = keys.length; index < length; index += 1) {\n tag = keys[index];\n style = String(map[tag]);\n\n if (tag.slice(0, 2) === '!!') {\n tag = 'tag:yaml.org,2002:' + tag.slice(2);\n }\n type = schema.compiledTypeMap['fallback'][tag];\n\n if (type && _hasOwnProperty.call(type.styleAliases, style)) {\n style = type.styleAliases[style];\n }\n\n result[tag] = style;\n }\n\n return result;\n}\n\nfunction encodeHex(character) {\n var string, handle, length;\n\n string = character.toString(16).toUpperCase();\n\n if (character <= 0xFF) {\n handle = 'x';\n length = 2;\n } else if (character <= 0xFFFF) {\n handle = 'u';\n length = 4;\n } else if (character <= 0xFFFFFFFF) {\n handle = 'U';\n length = 8;\n } else {\n throw new YAMLException('code point within a string may not be greater than 0xFFFFFFFF');\n }\n\n return '\\\\' + handle + common.repeat('0', length - string.length) + string;\n}\n\nfunction State(options) {\n this.schema = options['schema'] || DEFAULT_FULL_SCHEMA;\n this.indent = Math.max(1, (options['indent'] || 2));\n this.noArrayIndent = options['noArrayIndent'] || false;\n this.skipInvalid = options['skipInvalid'] || false;\n this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']);\n this.styleMap = compileStyleMap(this.schema, options['styles'] || null);\n this.sortKeys = options['sortKeys'] || false;\n this.lineWidth = options['lineWidth'] || 80;\n this.noRefs = options['noRefs'] || false;\n this.noCompatMode = options['noCompatMode'] || false;\n this.condenseFlow = options['condenseFlow'] || false;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.explicitTypes = this.schema.compiledExplicit;\n\n this.tag = null;\n this.result = '';\n\n this.duplicates = [];\n this.usedDuplicates = null;\n}\n\n// Indents every line in a string. Empty lines (\\n only) are not indented.\nfunction indentString(string, spaces) {\n var ind = common.repeat(' ', spaces),\n position = 0,\n next = -1,\n result = '',\n line,\n length = string.length;\n\n while (position < length) {\n next = string.indexOf('\\n', position);\n if (next === -1) {\n line = string.slice(position);\n position = length;\n } else {\n line = string.slice(position, next + 1);\n position = next + 1;\n }\n\n if (line.length && line !== '\\n') result += ind;\n\n result += line;\n }\n\n return result;\n}\n\nfunction generateNextLine(state, level) {\n return '\\n' + common.repeat(' ', state.indent * level);\n}\n\nfunction testImplicitResolving(state, str) {\n var index, length, type;\n\n for (index = 0, length = state.implicitTypes.length; index < length; index += 1) {\n type = state.implicitTypes[index];\n\n if (type.resolve(str)) {\n return true;\n }\n }\n\n return false;\n}\n\n// [33] s-white ::= s-space | s-tab\nfunction isWhitespace(c) {\n return c === CHAR_SPACE || c === CHAR_TAB;\n}\n\n// Returns true if the character can be printed without escaping.\n// From YAML 1.2: \"any allowed characters known to be non-printable\n// should also be escaped. [However,] This isn’t mandatory\"\n// Derived from nb-char - \\t - #x85 - #xA0 - #x2028 - #x2029.\nfunction isPrintable(c) {\n return (0x00020 <= c && c <= 0x00007E)\n || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029)\n || ((0x0E000 <= c && c <= 0x00FFFD) && c !== 0xFEFF /* BOM */)\n || (0x10000 <= c && c <= 0x10FFFF);\n}\n\n// [34] ns-char ::= nb-char - s-white\n// [27] nb-char ::= c-printable - b-char - c-byte-order-mark\n// [26] b-char ::= b-line-feed | b-carriage-return\n// [24] b-line-feed ::= #xA /* LF */\n// [25] b-carriage-return ::= #xD /* CR */\n// [3] c-byte-order-mark ::= #xFEFF\nfunction isNsChar(c) {\n return isPrintable(c) && !isWhitespace(c)\n // byte-order-mark\n && c !== 0xFEFF\n // b-char\n && c !== CHAR_CARRIAGE_RETURN\n && c !== CHAR_LINE_FEED;\n}\n\n// Simplified test for values allowed after the first character in plain style.\nfunction isPlainSafe(c, prev) {\n // Uses a subset of nb-char - c-flow-indicator - \":\" - \"#\"\n // where nb-char ::= c-printable - b-char - c-byte-order-mark.\n return isPrintable(c) && c !== 0xFEFF\n // - c-flow-indicator\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n // - \":\" - \"#\"\n // /* An ns-char preceding */ \"#\"\n && c !== CHAR_COLON\n && ((c !== CHAR_SHARP) || (prev && isNsChar(prev)));\n}\n\n// Simplified test for values allowed as the first character in plain style.\nfunction isPlainSafeFirst(c) {\n // Uses a subset of ns-char - c-indicator\n // where ns-char = nb-char - s-white.\n return isPrintable(c) && c !== 0xFEFF\n && !isWhitespace(c) // - s-white\n // - (c-indicator ::=\n // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}”\n && c !== CHAR_MINUS\n && c !== CHAR_QUESTION\n && c !== CHAR_COLON\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “\"”\n && c !== CHAR_SHARP\n && c !== CHAR_AMPERSAND\n && c !== CHAR_ASTERISK\n && c !== CHAR_EXCLAMATION\n && c !== CHAR_VERTICAL_LINE\n && c !== CHAR_EQUALS\n && c !== CHAR_GREATER_THAN\n && c !== CHAR_SINGLE_QUOTE\n && c !== CHAR_DOUBLE_QUOTE\n // | “%” | “@” | “`”)\n && c !== CHAR_PERCENT\n && c !== CHAR_COMMERCIAL_AT\n && c !== CHAR_GRAVE_ACCENT;\n}\n\n// Determines whether block indentation indicator is required.\nfunction needIndentIndicator(string) {\n var leadingSpaceRe = /^\\n* /;\n return leadingSpaceRe.test(string);\n}\n\nvar STYLE_PLAIN = 1,\n STYLE_SINGLE = 2,\n STYLE_LITERAL = 3,\n STYLE_FOLDED = 4,\n STYLE_DOUBLE = 5;\n\n// Determines which scalar styles are possible and returns the preferred style.\n// lineWidth = -1 => no limit.\n// Pre-conditions: str.length > 0.\n// Post-conditions:\n// STYLE_PLAIN or STYLE_SINGLE => no \\n are in the string.\n// STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1).\n// STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1).\nfunction chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth, testAmbiguousType) {\n var i;\n var char, prev_char;\n var hasLineBreak = false;\n var hasFoldableLine = false; // only checked if shouldTrackWidth\n var shouldTrackWidth = lineWidth !== -1;\n var previousLineBreak = -1; // count the first line correctly\n var plain = isPlainSafeFirst(string.charCodeAt(0))\n && !isWhitespace(string.charCodeAt(string.length - 1));\n\n if (singleLineOnly) {\n // Case: no block styles.\n // Check for disallowed characters to rule out plain and single.\n for (i = 0; i < string.length; i++) {\n char = string.charCodeAt(i);\n if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n prev_char = i > 0 ? string.charCodeAt(i - 1) : null;\n plain = plain && isPlainSafe(char, prev_char);\n }\n } else {\n // Case: block styles permitted.\n for (i = 0; i < string.length; i++) {\n char = string.charCodeAt(i);\n if (char === CHAR_LINE_FEED) {\n hasLineBreak = true;\n // Check if any line can be folded.\n if (shouldTrackWidth) {\n hasFoldableLine = hasFoldableLine ||\n // Foldable line = too long, and not more-indented.\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' ');\n previousLineBreak = i;\n }\n } else if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n prev_char = i > 0 ? string.charCodeAt(i - 1) : null;\n plain = plain && isPlainSafe(char, prev_char);\n }\n // in case the end is missing a \\n\n hasFoldableLine = hasFoldableLine || (shouldTrackWidth &&\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' '));\n }\n // Although every style can represent \\n without escaping, prefer block styles\n // for multiline, since they're more readable and they don't add empty lines.\n // Also prefer folding a super-long line.\n if (!hasLineBreak && !hasFoldableLine) {\n // Strings interpretable as another type have to be quoted;\n // e.g. the string 'true' vs. the boolean true.\n return plain && !testAmbiguousType(string)\n ? STYLE_PLAIN : STYLE_SINGLE;\n }\n // Edge case: block indentation indicator can only have one digit.\n if (indentPerLevel > 9 && needIndentIndicator(string)) {\n return STYLE_DOUBLE;\n }\n // At this point we know block styles are valid.\n // Prefer literal style unless we want to fold.\n return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL;\n}\n\n// Note: line breaking/folding is implemented for only the folded style.\n// NB. We drop the last trailing newline (if any) of a returned block scalar\n// since the dumper adds its own newline. This always works:\n// • No ending newline => unaffected; already using strip \"-\" chomping.\n// • Ending newline => removed then restored.\n// Importantly, this keeps the \"+\" chomp indicator from gaining an extra line.\nfunction writeScalar(state, string, level, iskey) {\n state.dump = (function () {\n if (string.length === 0) {\n return \"''\";\n }\n if (!state.noCompatMode &&\n DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1) {\n return \"'\" + string + \"'\";\n }\n\n var indent = state.indent * Math.max(1, level); // no 0-indent scalars\n // As indentation gets deeper, let the width decrease monotonically\n // to the lower bound min(state.lineWidth, 40).\n // Note that this implies\n // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound.\n // state.lineWidth > 40 + state.indent: width decreases until the lower bound.\n // This behaves better than a constant minimum width which disallows narrower options,\n // or an indent threshold which causes the width to suddenly increase.\n var lineWidth = state.lineWidth === -1\n ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent);\n\n // Without knowing if keys are implicit/explicit, assume implicit for safety.\n var singleLineOnly = iskey\n // No block styles in flow mode.\n || (state.flowLevel > -1 && level >= state.flowLevel);\n function testAmbiguity(string) {\n return testImplicitResolving(state, string);\n }\n\n switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth, testAmbiguity)) {\n case STYLE_PLAIN:\n return string;\n case STYLE_SINGLE:\n return \"'\" + string.replace(/'/g, \"''\") + \"'\";\n case STYLE_LITERAL:\n return '|' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(string, indent));\n case STYLE_FOLDED:\n return '>' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(foldString(string, lineWidth), indent));\n case STYLE_DOUBLE:\n return '\"' + escapeString(string, lineWidth) + '\"';\n default:\n throw new YAMLException('impossible error: invalid scalar style');\n }\n }());\n}\n\n// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9.\nfunction blockHeader(string, indentPerLevel) {\n var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : '';\n\n // note the special case: the string '\\n' counts as a \"trailing\" empty line.\n var clip = string[string.length - 1] === '\\n';\n var keep = clip && (string[string.length - 2] === '\\n' || string === '\\n');\n var chomp = keep ? '+' : (clip ? '' : '-');\n\n return indentIndicator + chomp + '\\n';\n}\n\n// (See the note for writeScalar.)\nfunction dropEndingNewline(string) {\n return string[string.length - 1] === '\\n' ? string.slice(0, -1) : string;\n}\n\n// Note: a long line without a suitable break point will exceed the width limit.\n// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0.\nfunction foldString(string, width) {\n // In folded style, $k$ consecutive newlines output as $k+1$ newlines—\n // unless they're before or after a more-indented line, or at the very\n // beginning or end, in which case $k$ maps to $k$.\n // Therefore, parse each chunk as newline(s) followed by a content line.\n var lineRe = /(\\n+)([^\\n]*)/g;\n\n // first line (possibly an empty line)\n var result = (function () {\n var nextLF = string.indexOf('\\n');\n nextLF = nextLF !== -1 ? nextLF : string.length;\n lineRe.lastIndex = nextLF;\n return foldLine(string.slice(0, nextLF), width);\n }());\n // If we haven't reached the first content line yet, don't add an extra \\n.\n var prevMoreIndented = string[0] === '\\n' || string[0] === ' ';\n var moreIndented;\n\n // rest of the lines\n var match;\n while ((match = lineRe.exec(string))) {\n var prefix = match[1], line = match[2];\n moreIndented = (line[0] === ' ');\n result += prefix\n + (!prevMoreIndented && !moreIndented && line !== ''\n ? '\\n' : '')\n + foldLine(line, width);\n prevMoreIndented = moreIndented;\n }\n\n return result;\n}\n\n// Greedy line breaking.\n// Picks the longest line under the limit each time,\n// otherwise settles for the shortest line over the limit.\n// NB. More-indented lines *cannot* be folded, as that would add an extra \\n.\nfunction foldLine(line, width) {\n if (line === '' || line[0] === ' ') return line;\n\n // Since a more-indented line adds a \\n, breaks can't be followed by a space.\n var breakRe = / [^ ]/g; // note: the match index will always be <= length-2.\n var match;\n // start is an inclusive index. end, curr, and next are exclusive.\n var start = 0, end, curr = 0, next = 0;\n var result = '';\n\n // Invariants: 0 <= start <= length-1.\n // 0 <= curr <= next <= max(0, length-2). curr - start <= width.\n // Inside the loop:\n // A match implies length >= 2, so curr and next are <= length-2.\n while ((match = breakRe.exec(line))) {\n next = match.index;\n // maintain invariant: curr - start <= width\n if (next - start > width) {\n end = (curr > start) ? curr : next; // derive end <= length-2\n result += '\\n' + line.slice(start, end);\n // skip the space that was output as \\n\n start = end + 1; // derive start <= length-1\n }\n curr = next;\n }\n\n // By the invariants, start <= length-1, so there is something left over.\n // It is either the whole string or a part starting from non-whitespace.\n result += '\\n';\n // Insert a break if the remainder is too long and there is a break available.\n if (line.length - start > width && curr > start) {\n result += line.slice(start, curr) + '\\n' + line.slice(curr + 1);\n } else {\n result += line.slice(start);\n }\n\n return result.slice(1); // drop extra \\n joiner\n}\n\n// Escapes a double-quoted string.\nfunction escapeString(string) {\n var result = '';\n var char, nextChar;\n var escapeSeq;\n\n for (var i = 0; i < string.length; i++) {\n char = string.charCodeAt(i);\n // Check for surrogate pairs (reference Unicode 3.0 section \"3.7 Surrogates\").\n if (char >= 0xD800 && char <= 0xDBFF/* high surrogate */) {\n nextChar = string.charCodeAt(i + 1);\n if (nextChar >= 0xDC00 && nextChar <= 0xDFFF/* low surrogate */) {\n // Combine the surrogate pair and store it escaped.\n result += encodeHex((char - 0xD800) * 0x400 + nextChar - 0xDC00 + 0x10000);\n // Advance index one extra since we already used that char here.\n i++; continue;\n }\n }\n escapeSeq = ESCAPE_SEQUENCES[char];\n result += !escapeSeq && isPrintable(char)\n ? string[i]\n : escapeSeq || encodeHex(char);\n }\n\n return result;\n}\n\nfunction writeFlowSequence(state, level, object) {\n var _result = '',\n _tag = state.tag,\n index,\n length;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n // Write only valid elements.\n if (writeNode(state, level, object[index], false, false)) {\n if (index !== 0) _result += ',' + (!state.condenseFlow ? ' ' : '');\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = '[' + _result + ']';\n}\n\nfunction writeBlockSequence(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n index,\n length;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n // Write only valid elements.\n if (writeNode(state, level + 1, object[index], true, true)) {\n if (!compact || index !== 0) {\n _result += generateNextLine(state, level);\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n _result += '-';\n } else {\n _result += '- ';\n }\n\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = _result || '[]'; // Empty sequence if no valid values.\n}\n\nfunction writeFlowMapping(state, level, object) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n pairBuffer;\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n\n pairBuffer = '';\n if (index !== 0) pairBuffer += ', ';\n\n if (state.condenseFlow) pairBuffer += '\"';\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (!writeNode(state, level, objectKey, false, false)) {\n continue; // Skip this pair because of invalid key;\n }\n\n if (state.dump.length > 1024) pairBuffer += '? ';\n\n pairBuffer += state.dump + (state.condenseFlow ? '\"' : '') + ':' + (state.condenseFlow ? '' : ' ');\n\n if (!writeNode(state, level, objectValue, false, false)) {\n continue; // Skip this pair because of invalid value.\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = '{' + _result + '}';\n}\n\nfunction writeBlockMapping(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n explicitPair,\n pairBuffer;\n\n // Allow sorting keys so that the output file is deterministic\n if (state.sortKeys === true) {\n // Default sorting\n objectKeyList.sort();\n } else if (typeof state.sortKeys === 'function') {\n // Custom sort function\n objectKeyList.sort(state.sortKeys);\n } else if (state.sortKeys) {\n // Something is wrong\n throw new YAMLException('sortKeys must be a boolean or a function');\n }\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n pairBuffer = '';\n\n if (!compact || index !== 0) {\n pairBuffer += generateNextLine(state, level);\n }\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (!writeNode(state, level + 1, objectKey, true, true, true)) {\n continue; // Skip this pair because of invalid key.\n }\n\n explicitPair = (state.tag !== null && state.tag !== '?') ||\n (state.dump && state.dump.length > 1024);\n\n if (explicitPair) {\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += '?';\n } else {\n pairBuffer += '? ';\n }\n }\n\n pairBuffer += state.dump;\n\n if (explicitPair) {\n pairBuffer += generateNextLine(state, level);\n }\n\n if (!writeNode(state, level + 1, objectValue, true, explicitPair)) {\n continue; // Skip this pair because of invalid value.\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += ':';\n } else {\n pairBuffer += ': ';\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = _result || '{}'; // Empty mapping if no valid pairs.\n}\n\nfunction detectType(state, object, explicit) {\n var _result, typeList, index, length, type, style;\n\n typeList = explicit ? state.explicitTypes : state.implicitTypes;\n\n for (index = 0, length = typeList.length; index < length; index += 1) {\n type = typeList[index];\n\n if ((type.instanceOf || type.predicate) &&\n (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) &&\n (!type.predicate || type.predicate(object))) {\n\n state.tag = explicit ? type.tag : '?';\n\n if (type.represent) {\n style = state.styleMap[type.tag] || type.defaultStyle;\n\n if (_toString.call(type.represent) === '[object Function]') {\n _result = type.represent(object, style);\n } else if (_hasOwnProperty.call(type.represent, style)) {\n _result = type.represent[style](object, style);\n } else {\n throw new YAMLException('!<' + type.tag + '> tag resolver accepts not \"' + style + '\" style');\n }\n\n state.dump = _result;\n }\n\n return true;\n }\n }\n\n return false;\n}\n\n// Serializes `object` and writes it to global `result`.\n// Returns true on success, or false on invalid object.\n//\nfunction writeNode(state, level, object, block, compact, iskey) {\n state.tag = null;\n state.dump = object;\n\n if (!detectType(state, object, false)) {\n detectType(state, object, true);\n }\n\n var type = _toString.call(state.dump);\n\n if (block) {\n block = (state.flowLevel < 0 || state.flowLevel > level);\n }\n\n var objectOrArray = type === '[object Object]' || type === '[object Array]',\n duplicateIndex,\n duplicate;\n\n if (objectOrArray) {\n duplicateIndex = state.duplicates.indexOf(object);\n duplicate = duplicateIndex !== -1;\n }\n\n if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) {\n compact = false;\n }\n\n if (duplicate && state.usedDuplicates[duplicateIndex]) {\n state.dump = '*ref_' + duplicateIndex;\n } else {\n if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) {\n state.usedDuplicates[duplicateIndex] = true;\n }\n if (type === '[object Object]') {\n if (block && (Object.keys(state.dump).length !== 0)) {\n writeBlockMapping(state, level, state.dump, compact);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowMapping(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object Array]') {\n var arrayLevel = (state.noArrayIndent && (level > 0)) ? level - 1 : level;\n if (block && (state.dump.length !== 0)) {\n writeBlockSequence(state, arrayLevel, state.dump, compact);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowSequence(state, arrayLevel, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object String]') {\n if (state.tag !== '?') {\n writeScalar(state, state.dump, level, iskey);\n }\n } else {\n if (state.skipInvalid) return false;\n throw new YAMLException('unacceptable kind of an object to dump ' + type);\n }\n\n if (state.tag !== null && state.tag !== '?') {\n state.dump = '!<' + state.tag + '> ' + state.dump;\n }\n }\n\n return true;\n}\n\nfunction getDuplicateReferences(object, state) {\n var objects = [],\n duplicatesIndexes = [],\n index,\n length;\n\n inspectNode(object, objects, duplicatesIndexes);\n\n for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) {\n state.duplicates.push(objects[duplicatesIndexes[index]]);\n }\n state.usedDuplicates = new Array(length);\n}\n\nfunction inspectNode(object, objects, duplicatesIndexes) {\n var objectKeyList,\n index,\n length;\n\n if (object !== null && typeof object === 'object') {\n index = objects.indexOf(object);\n if (index !== -1) {\n if (duplicatesIndexes.indexOf(index) === -1) {\n duplicatesIndexes.push(index);\n }\n } else {\n objects.push(object);\n\n if (Array.isArray(object)) {\n for (index = 0, length = object.length; index < length; index += 1) {\n inspectNode(object[index], objects, duplicatesIndexes);\n }\n } else {\n objectKeyList = Object.keys(object);\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes);\n }\n }\n }\n }\n}\n\nfunction dump(input, options) {\n options = options || {};\n\n var state = new State(options);\n\n if (!state.noRefs) getDuplicateReferences(input, state);\n\n if (writeNode(state, 0, input, true, true)) return state.dump + '\\n';\n\n return '';\n}\n\nfunction safeDump(input, options) {\n return dump(input, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options));\n}\n\nmodule.exports.dump = dump;\nmodule.exports.safeDump = safeDump;\n","'use strict';\n\n\nvar loader = require('./js-yaml/loader');\nvar dumper = require('./js-yaml/dumper');\n\n\nfunction deprecated(name) {\n return function () {\n throw new Error('Function ' + name + ' is deprecated and cannot be used.');\n };\n}\n\n\nmodule.exports.Type = require('./js-yaml/type');\nmodule.exports.Schema = require('./js-yaml/schema');\nmodule.exports.FAILSAFE_SCHEMA = require('./js-yaml/schema/failsafe');\nmodule.exports.JSON_SCHEMA = require('./js-yaml/schema/json');\nmodule.exports.CORE_SCHEMA = require('./js-yaml/schema/core');\nmodule.exports.DEFAULT_SAFE_SCHEMA = require('./js-yaml/schema/default_safe');\nmodule.exports.DEFAULT_FULL_SCHEMA = require('./js-yaml/schema/default_full');\nmodule.exports.load = loader.load;\nmodule.exports.loadAll = loader.loadAll;\nmodule.exports.safeLoad = loader.safeLoad;\nmodule.exports.safeLoadAll = loader.safeLoadAll;\nmodule.exports.dump = dumper.dump;\nmodule.exports.safeDump = dumper.safeDump;\nmodule.exports.YAMLException = require('./js-yaml/exception');\n\n// Deprecated schema names from JS-YAML 2.0.x\nmodule.exports.MINIMAL_SCHEMA = require('./js-yaml/schema/failsafe');\nmodule.exports.SAFE_SCHEMA = require('./js-yaml/schema/default_safe');\nmodule.exports.DEFAULT_SCHEMA = require('./js-yaml/schema/default_full');\n\n// Deprecated functions from JS-YAML 1.x.x\nmodule.exports.scan = deprecated('scan');\nmodule.exports.parse = deprecated('parse');\nmodule.exports.compose = deprecated('compose');\nmodule.exports.addConstructor = deprecated('addConstructor');\n","'use strict';\n\n\nvar yaml = require('./lib/js-yaml.js');\n\n\nmodule.exports = yaml;\n","import{useState as n,useReducer as t,useEffect as e,useLayoutEffect as r,useRef as u,useImperativeHandle as o,useMemo as i,useCallback as l,useContext as f,useDebugValue as c}from\"preact/hooks\";export*from\"preact/hooks\";import{Component as a,createElement as s,options as h,toChildArray as p,Fragment as v,render as d,hydrate as m,cloneElement as y,createRef as b,createContext as _}from\"preact\";export{createElement,createContext,createRef,Fragment,Component}from\"preact\";function C(n,t){for(var e in t)n[e]=t[e];return n}function S(n,t){for(var e in n)if(\"__source\"!==e&&!(e in t))return!0;for(var r in t)if(\"__source\"!==r&&n[r]!==t[r])return!0;return!1}function E(n){this.props=n}function g(n,t){function e(n){var e=this.props.ref,r=e==n.ref;return!r&&e&&(e.call?e(null):e.current=null),t?!t(this.props,n)||!r:S(this.props,n)}function r(t){return this.shouldComponentUpdate=e,s(n,t)}return r.displayName=\"Memo(\"+(n.displayName||n.name)+\")\",r.prototype.isReactComponent=!0,r.__f=!0,r}(E.prototype=new a).isPureReactComponent=!0,E.prototype.shouldComponentUpdate=function(n,t){return S(this.props,n)||S(this.state,t)};var w=h.__b;h.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),w&&w(n)};var R=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.forward_ref\")||3911;function x(n){function t(t,e){var r=C({},t);return delete r.ref,n(r,(e=t.ref||e)&&(\"object\"!=typeof e||\"current\"in e)?e:null)}return t.$$typeof=R,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName=\"ForwardRef(\"+(n.displayName||n.name)+\")\",t}var N=function(n,t){return null==n?null:p(p(n).map(t))},k={map:N,forEach:N,count:function(n){return n?p(n).length:0},only:function(n){var t=p(n);if(1!==t.length)throw\"Children.only\";return t[0]},toArray:p},A=h.__e;h.__e=function(n,t,e){if(n.then)for(var r,u=t;u=u.__;)if((r=u.__c)&&r.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),r.__c(n,t);A(n,t,e)};var O=h.unmount;function L(){this.__u=0,this.t=null,this.__b=null}function U(n){var t=n.__.__c;return t&&t.__e&&t.__e(n)}function D(n){var t,e,r;function u(u){if(t||(t=n()).then(function(n){e=n.default||n},function(n){r=n}),r)throw r;if(!e)throw t;return s(e,u)}return u.displayName=\"Lazy\",u.__f=!0,u}function F(){this.u=null,this.o=null}h.unmount=function(n){var t=n.__c;t&&t.__R&&t.__R(),t&&!0===n.__h&&(n.type=null),O&&O(n)},(L.prototype=new a).__c=function(n,t){var e=t.__c,r=this;null==r.t&&(r.t=[]),r.t.push(e);var u=U(r.__v),o=!1,i=function(){o||(o=!0,e.__R=null,u?u(l):l())};e.__R=i;var l=function(){if(!--r.__u){if(r.state.__e){var n=r.state.__e;r.__v.__k[0]=function n(t,e,r){return t&&(t.__v=null,t.__k=t.__k&&t.__k.map(function(t){return n(t,e,r)}),t.__c&&t.__c.__P===e&&(t.__e&&r.insertBefore(t.__e,t.__d),t.__c.__e=!0,t.__c.__P=r)),t}(n,n.__c.__P,n.__c.__O)}var t;for(r.setState({__e:r.__b=null});t=r.t.pop();)t.forceUpdate()}},f=!0===t.__h;r.__u++||f||r.setState({__e:r.__b=r.__v.__k[0]}),n.then(i,i)},L.prototype.componentWillUnmount=function(){this.t=[]},L.prototype.render=function(n,t){if(this.__b){if(this.__v.__k){var e=document.createElement(\"div\"),r=this.__v.__k[0].__c;this.__v.__k[0]=function n(t,e,r){return t&&(t.__c&&t.__c.__H&&(t.__c.__H.__.forEach(function(n){\"function\"==typeof n.__c&&n.__c()}),t.__c.__H=null),null!=(t=C({},t)).__c&&(t.__c.__P===r&&(t.__c.__P=e),t.__c=null),t.__k=t.__k&&t.__k.map(function(t){return n(t,e,r)})),t}(this.__b,e,r.__O=r.__P)}this.__b=null}var u=t.__e&&s(v,null,n.fallback);return u&&(u.__h=null),[s(v,null,t.__e?null:n.children),u]};var M=function(n,t,e){if(++e[1]===e[0]&&n.o.delete(t),n.props.revealOrder&&(\"t\"!==n.props.revealOrder[0]||!n.o.size))for(e=n.u;e;){for(;e.length>3;)e.pop()();if(e[1]>>1,1),t.i.removeChild(n)}}),d(s(T,{context:t.context},n.__v),t.l)):t.l&&t.componentWillUnmount()}function I(n,t){return s(j,{__v:n,i:t})}(F.prototype=new a).__e=function(n){var t=this,e=U(t.__v),r=t.o.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),M(t,n,r)):u()};e?e(o):o()}},F.prototype.render=function(n){this.u=null,this.o=new Map;var t=p(n.children);n.revealOrder&&\"b\"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.o.set(t[e],this.u=[1,0,this.u]);return n.children},F.prototype.componentDidUpdate=F.prototype.componentDidMount=function(){var n=this;this.o.forEach(function(t,e){M(n,e,t)})};var W=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103,P=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,V=function(n){return(\"undefined\"!=typeof Symbol&&\"symbol\"==typeof Symbol()?/fil|che|rad/i:/fil|che|ra/i).test(n)};function z(n,t,e){return null==t.__k&&(t.textContent=\"\"),d(n,t),\"function\"==typeof e&&e(),n?n.__c:null}function B(n,t,e){return m(n,t),\"function\"==typeof e&&e(),n?n.__c:null}a.prototype.isReactComponent={},[\"componentWillMount\",\"componentWillReceiveProps\",\"componentWillUpdate\"].forEach(function(n){Object.defineProperty(a.prototype,n,{configurable:!0,get:function(){return this[\"UNSAFE_\"+n]},set:function(t){Object.defineProperty(this,n,{configurable:!0,writable:!0,value:t})}})});var H=h.event;function Z(){}function Y(){return this.cancelBubble}function $(){return this.defaultPrevented}h.event=function(n){return H&&(n=H(n)),n.persist=Z,n.isPropagationStopped=Y,n.isDefaultPrevented=$,n.nativeEvent=n};var q,G={configurable:!0,get:function(){return this.class}},J=h.vnode;h.vnode=function(n){var t=n.type,e=n.props,r=e;if(\"string\"==typeof t){for(var u in r={},e){var o=e[u];\"value\"===u&&\"defaultValue\"in e&&null==o||(\"defaultValue\"===u&&\"value\"in e&&null==e.value?u=\"value\":\"download\"===u&&!0===o?o=\"\":/ondoubleclick/i.test(u)?u=\"ondblclick\":/^onchange(textarea|input)/i.test(u+t)&&!V(e.type)?u=\"oninput\":/^on(Ani|Tra|Tou|BeforeInp)/.test(u)?u=u.toLowerCase():P.test(u)?u=u.replace(/[A-Z0-9]/,\"-$&\").toLowerCase():null===o&&(o=void 0),r[u]=o)}\"select\"==t&&r.multiple&&Array.isArray(r.value)&&(r.value=p(e.children).forEach(function(n){n.props.selected=-1!=r.value.indexOf(n.props.value)})),\"select\"==t&&null!=r.defaultValue&&(r.value=p(e.children).forEach(function(n){n.props.selected=r.multiple?-1!=r.defaultValue.indexOf(n.props.value):r.defaultValue==n.props.value})),n.props=r}t&&e.class!=e.className&&(G.enumerable=\"className\"in e,null!=e.className&&(r.class=e.className),Object.defineProperty(r,\"className\",G)),n.$$typeof=W,J&&J(n)};var K=h.__r;h.__r=function(n){K&&K(n),q=n.__c};var Q={ReactCurrentDispatcher:{current:{readContext:function(n){return q.__n[n.__c].props.value}}}},X=1,nn=2,tn=3,en=4,rn=5;function un(n,t){return t()}var on=\"object\"==typeof performance&&\"function\"==typeof performance.now?performance.now.bind(performance):function(){return Date.now()},ln=\"16.8.0\";function fn(n){return s.bind(null,n)}function cn(n){return!!n&&n.$$typeof===W}function an(n){return cn(n)?y.apply(null,arguments):n}function sn(n){return!!n.__k&&(d(null,n),!0)}function hn(n){return n&&(n.base||1===n.nodeType&&n)||null}var pn=function(n,t){return n(t)},vn=v;export default{useState:n,useReducer:t,useEffect:e,useLayoutEffect:r,useRef:u,useImperativeHandle:o,useMemo:i,useCallback:l,useContext:f,useDebugValue:c,version:\"16.8.0\",Children:k,render:z,hydrate:B,unmountComponentAtNode:sn,createPortal:I,createElement:s,createContext:_,createFactory:fn,cloneElement:an,createRef:b,Fragment:v,isValidElement:cn,findDOMNode:hn,Component:a,PureComponent:E,memo:g,forwardRef:x,unstable_batchedUpdates:pn,StrictMode:v,Suspense:L,SuspenseList:F,lazy:D,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:Q};export{ln as version,k as Children,z as render,B as hydrate,sn as unmountComponentAtNode,I as createPortal,fn as createFactory,an as cloneElement,cn as isValidElement,hn as findDOMNode,E as PureComponent,g as memo,x as forwardRef,pn as unstable_batchedUpdates,vn as StrictMode,L as Suspense,F as SuspenseList,D as lazy,Q as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,X as unstable_ImmediatePriority,nn as unstable_UserBlockingPriority,tn as unstable_NormalPriority,en as unstable_LowPriority,rn as unstable_IdlePriority,un as unstable_runWithPriority,on as unstable_now};\n//# sourceMappingURL=compat.module.js.map\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\"']/;\nconst escapeReplace = /[&<>\"']/g;\nconst escapeTestNoEncode = /[<>\"']|&(?!#?\\w+;)/;\nconst escapeReplaceNoEncode = /[<>\"']|&(?!#?\\w+;)/g;\nconst escapeReplacements = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n};\nconst getEscapeReplacement = (ch) => escapeReplacements[ch];\nfunction escape$3(html, encode) {\n if (encode) {\n if (escapeTest.test(html)) {\n return html.replace(escapeReplace, getEscapeReplacement);\n }\n } else {\n if (escapeTestNoEncode.test(html)) {\n return html.replace(escapeReplaceNoEncode, getEscapeReplacement);\n }\n }\n\n return html;\n}\n\nconst unescapeTest = /&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig;\n\nfunction unescape$1(html) {\n // explicitly match decimal, hex, and named HTML entities\n return html.replace(unescapeTest, (_, n) => {\n n = n.toLowerCase();\n if (n === 'colon') return ':';\n if (n.charAt(0) === '#') {\n return n.charAt(1) === 'x'\n ? String.fromCharCode(parseInt(n.substring(2), 16))\n : String.fromCharCode(+n.substring(1));\n }\n return '';\n });\n}\n\nconst caret = /(^|[^\\[])\\^/g;\nfunction edit$1(regex, opt) {\n regex = regex.source || regex;\n opt = opt || '';\n const obj = {\n replace: (name, val) => {\n val = val.source || val;\n val = val.replace(caret, '$1');\n regex = regex.replace(name, val);\n return obj;\n },\n getRegex: () => {\n return new RegExp(regex, opt);\n }\n };\n return obj;\n}\n\nconst nonWordAndColonTest = /[^\\w:]/g;\nconst originIndependentUrl = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;\nfunction cleanUrl$1(sanitize, base, href) {\n if (sanitize) {\n let prot;\n try {\n prot = decodeURIComponent(unescape$1(href))\n .replace(nonWordAndColonTest, '')\n .toLowerCase();\n } catch (e) {\n return null;\n }\n if (prot.indexOf('javascript:') === 0 || prot.indexOf('vbscript:') === 0 || prot.indexOf('data:') === 0) {\n return null;\n }\n }\n if (base && !originIndependentUrl.test(href)) {\n href = resolveUrl(base, href);\n }\n try {\n href = encodeURI(href).replace(/%25/g, '%');\n } catch (e) {\n return null;\n }\n return href;\n}\n\nconst baseUrls = {};\nconst justDomain = /^[^:]+:\\/*[^/]*$/;\nconst protocol = /^([^:]+:)[\\s\\S]*$/;\nconst domain = /^([^:]+:\\/*[^/]*)[\\s\\S]*$/;\n\nfunction resolveUrl(base, href) {\n if (!baseUrls[' ' + base]) {\n // we can ignore everything in base after the last slash of its path component,\n // but we might need to add _that_\n // https://tools.ietf.org/html/rfc3986#section-3\n if (justDomain.test(base)) {\n baseUrls[' ' + base] = base + '/';\n } else {\n baseUrls[' ' + base] = rtrim$1(base, '/', true);\n }\n }\n base = baseUrls[' ' + base];\n const relativeBase = base.indexOf(':') === -1;\n\n if (href.substring(0, 2) === '//') {\n if (relativeBase) {\n return href;\n }\n return base.replace(protocol, '$1') + href;\n } else if (href.charAt(0) === '/') {\n if (relativeBase) {\n return href;\n }\n return base.replace(domain, '$1') + href;\n } else {\n return base + href;\n }\n}\n\nconst noopTest$1 = { exec: function noopTest() {} };\n\nfunction merge$2(obj) {\n let i = 1,\n target,\n key;\n\n for (; i < arguments.length; i++) {\n target = arguments[i];\n for (key in target) {\n if (Object.prototype.hasOwnProperty.call(target, key)) {\n obj[key] = target[key];\n }\n }\n }\n\n return obj;\n}\n\nfunction splitCells$1(tableRow, count) {\n // ensure that every cell-delimiting pipe has a space\n // before it to distinguish it from an escaped pipe\n const row = tableRow.replace(/\\|/g, (match, offset, str) => {\n let escaped = false,\n curr = offset;\n while (--curr >= 0 && str[curr] === '\\\\') escaped = !escaped;\n if (escaped) {\n // odd number of slashes means | is escaped\n // so we leave it alone\n return '|';\n } else {\n // add space before unescaped |\n return ' |';\n }\n }),\n cells = row.split(/ \\|/);\n let i = 0;\n\n // First/last cell in a row cannot be empty if it has no leading/trailing pipe\n if (!cells[0].trim()) { cells.shift(); }\n if (!cells[cells.length - 1].trim()) { cells.pop(); }\n\n if (cells.length > count) {\n cells.splice(count);\n } else {\n while (cells.length < count) cells.push('');\n }\n\n for (; i < cells.length; i++) {\n // leading or trailing whitespace is ignored per the gfm spec\n cells[i] = cells[i].trim().replace(/\\\\\\|/g, '|');\n }\n return cells;\n}\n\n// Remove trailing 'c's. Equivalent to str.replace(/c*$/, '').\n// /c*$/ is vulnerable to REDOS.\n// invert: Remove suffix of non-c chars instead. Default falsey.\nfunction rtrim$1(str, c, invert) {\n const l = str.length;\n if (l === 0) {\n return '';\n }\n\n // Length of suffix matching the invert condition.\n let suffLen = 0;\n\n // Step left until we fail to match the invert condition.\n while (suffLen < l) {\n const currChar = str.charAt(l - suffLen - 1);\n if (currChar === c && !invert) {\n suffLen++;\n } else if (currChar !== c && invert) {\n suffLen++;\n } else {\n break;\n }\n }\n\n return str.substr(0, l - suffLen);\n}\n\nfunction findClosingBracket$1(str, b) {\n if (str.indexOf(b[1]) === -1) {\n return -1;\n }\n const l = str.length;\n let level = 0,\n i = 0;\n for (; i < l; i++) {\n if (str[i] === '\\\\') {\n i++;\n } else if (str[i] === b[0]) {\n level++;\n } else if (str[i] === b[1]) {\n level--;\n if (level < 0) {\n return i;\n }\n }\n }\n return -1;\n}\n\nfunction checkSanitizeDeprecation$1(opt) {\n if (opt && opt.sanitize && !opt.silent) {\n console.warn('marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options');\n }\n}\n\n// copied from https://stackoverflow.com/a/5450113/806777\nfunction repeatString$1(pattern, count) {\n if (count < 1) {\n return '';\n }\n let result = '';\n while (count > 1) {\n if (count & 1) {\n result += pattern;\n }\n count >>= 1;\n pattern += pattern;\n }\n return result + pattern;\n}\n\nvar helpers = {\n escape: escape$3,\n unescape: unescape$1,\n edit: edit$1,\n cleanUrl: cleanUrl$1,\n resolveUrl,\n noopTest: noopTest$1,\n merge: merge$2,\n splitCells: splitCells$1,\n rtrim: rtrim$1,\n findClosingBracket: findClosingBracket$1,\n checkSanitizeDeprecation: checkSanitizeDeprecation$1,\n repeatString: repeatString$1\n};\n\nconst { defaults: defaults$4 } = defaults$5.exports;\nconst {\n rtrim,\n splitCells,\n escape: escape$2,\n findClosingBracket\n} = helpers;\n\nfunction outputLink(cap, link, raw, lexer) {\n const href = link.href;\n const title = link.title ? escape$2(link.title) : null;\n const text = cap[1].replace(/\\\\([\\[\\]])/g, '$1');\n\n if (cap[0].charAt(0) !== '!') {\n lexer.state.inLink = true;\n const token = {\n type: 'link',\n raw,\n href,\n title,\n text,\n tokens: lexer.inlineTokens(text, [])\n };\n lexer.state.inLink = false;\n return token;\n } else {\n return {\n type: 'image',\n raw,\n href,\n title,\n text: escape$2(text)\n };\n }\n}\n\nfunction indentCodeCompensation(raw, text) {\n const matchIndentToCode = raw.match(/^(\\s+)(?:```)/);\n\n if (matchIndentToCode === null) {\n return text;\n }\n\n const indentToCode = matchIndentToCode[1];\n\n return text\n .split('\\n')\n .map(node => {\n const matchIndentInNode = node.match(/^\\s+/);\n if (matchIndentInNode === null) {\n return node;\n }\n\n const [indentInNode] = matchIndentInNode;\n\n if (indentInNode.length >= indentToCode.length) {\n return node.slice(indentToCode.length);\n }\n\n return node;\n })\n .join('\\n');\n}\n\n/**\n * Tokenizer\n */\nvar Tokenizer_1$1 = class Tokenizer {\n constructor(options) {\n this.options = options || defaults$4;\n }\n\n space(src) {\n const cap = this.rules.block.newline.exec(src);\n if (cap) {\n if (cap[0].length > 1) {\n return {\n type: 'space',\n raw: cap[0]\n };\n }\n return { raw: '\\n' };\n }\n }\n\n code(src) {\n const cap = this.rules.block.code.exec(src);\n if (cap) {\n const text = cap[0].replace(/^ {1,4}/gm, '');\n return {\n type: 'code',\n raw: cap[0],\n codeBlockStyle: 'indented',\n text: !this.options.pedantic\n ? rtrim(text, '\\n')\n : text\n };\n }\n }\n\n fences(src) {\n const cap = this.rules.block.fences.exec(src);\n if (cap) {\n const raw = cap[0];\n const text = indentCodeCompensation(raw, cap[3] || '');\n\n return {\n type: 'code',\n raw,\n lang: cap[2] ? cap[2].trim() : cap[2],\n text\n };\n }\n }\n\n heading(src) {\n const cap = this.rules.block.heading.exec(src);\n if (cap) {\n let text = cap[2].trim();\n\n // remove trailing #s\n if (/#$/.test(text)) {\n const trimmed = rtrim(text, '#');\n if (this.options.pedantic) {\n text = trimmed.trim();\n } else if (!trimmed || / $/.test(trimmed)) {\n // CommonMark requires space before trailing #s\n text = trimmed.trim();\n }\n }\n\n const token = {\n type: 'heading',\n raw: cap[0],\n depth: cap[1].length,\n text: text,\n tokens: []\n };\n this.lexer.inline(token.text, token.tokens);\n return token;\n }\n }\n\n hr(src) {\n const cap = this.rules.block.hr.exec(src);\n if (cap) {\n return {\n type: 'hr',\n raw: cap[0]\n };\n }\n }\n\n blockquote(src) {\n const cap = this.rules.block.blockquote.exec(src);\n if (cap) {\n const text = cap[0].replace(/^ *> ?/gm, '');\n\n return {\n type: 'blockquote',\n raw: cap[0],\n tokens: this.lexer.blockTokens(text, []),\n text\n };\n }\n }\n\n list(src) {\n let cap = this.rules.block.list.exec(src);\n if (cap) {\n let raw, istask, ischecked, indent, i, blankLine, endsWithBlankLine,\n line, lines, itemContents;\n\n let bull = cap[1].trim();\n const isordered = bull.length > 1;\n\n const list = {\n type: 'list',\n raw: '',\n ordered: isordered,\n start: isordered ? +bull.slice(0, -1) : '',\n loose: false,\n items: []\n };\n\n bull = isordered ? `\\\\d{1,9}\\\\${bull.slice(-1)}` : `\\\\${bull}`;\n\n if (this.options.pedantic) {\n bull = isordered ? bull : '[*+-]';\n }\n\n // Get next list item\n const itemRegex = new RegExp(`^( {0,3}${bull})((?: [^\\\\n]*| *)(?:\\\\n[^\\\\n]*)*(?:\\\\n|$))`);\n\n // Get each top-level item\n while (src) {\n if (this.rules.block.hr.test(src)) { // End list if we encounter an HR (possibly move into itemRegex?)\n break;\n }\n\n if (!(cap = itemRegex.exec(src))) {\n break;\n }\n\n lines = cap[2].split('\\n');\n\n if (this.options.pedantic) {\n indent = 2;\n itemContents = lines[0].trimLeft();\n } else {\n indent = cap[2].search(/[^ ]/); // Find first non-space char\n indent = cap[1].length + (indent > 4 ? 1 : indent); // intented code blocks after 4 spaces; indent is always 1\n itemContents = lines[0].slice(indent - cap[1].length);\n }\n\n blankLine = false;\n raw = cap[0];\n\n if (!lines[0] && /^ *$/.test(lines[1])) { // items begin with at most one blank line\n raw = cap[1] + lines.slice(0, 2).join('\\n') + '\\n';\n list.loose = true;\n lines = [];\n }\n\n const nextBulletRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:[*+-]|\\\\d{1,9}[.)])`);\n\n for (i = 1; i < lines.length; i++) {\n line = lines[i];\n\n if (this.options.pedantic) { // Re-align to follow commonmark nesting rules\n line = line.replace(/^ {1,4}(?=( {4})*[^ ])/g, ' ');\n }\n\n // End list item if found start of new bullet\n if (nextBulletRegex.test(line)) {\n raw = cap[1] + lines.slice(0, i).join('\\n') + '\\n';\n break;\n }\n\n // Until we encounter a blank line, item contents do not need indentation\n if (!blankLine) {\n if (!line.trim()) { // Check if current line is empty\n blankLine = true;\n }\n\n // Dedent if possible\n if (line.search(/[^ ]/) >= indent) {\n itemContents += '\\n' + line.slice(indent);\n } else {\n itemContents += '\\n' + line;\n }\n continue;\n }\n\n // Dedent this line\n if (line.search(/[^ ]/) >= indent || !line.trim()) {\n itemContents += '\\n' + line.slice(indent);\n continue;\n } else { // Line was not properly indented; end of this item\n raw = cap[1] + lines.slice(0, i).join('\\n') + '\\n';\n break;\n }\n }\n\n if (!list.loose) {\n // If the previous item ended with a blank line, the list is loose\n if (endsWithBlankLine) {\n list.loose = true;\n } else if (/\\n *\\n *$/.test(raw)) {\n endsWithBlankLine = true;\n }\n }\n\n // Check for task list items\n if (this.options.gfm) {\n istask = /^\\[[ xX]\\] /.exec(itemContents);\n if (istask) {\n ischecked = istask[0] !== '[ ] ';\n itemContents = itemContents.replace(/^\\[[ xX]\\] +/, '');\n }\n }\n\n list.items.push({\n type: 'list_item',\n raw: raw,\n task: !!istask,\n checked: ischecked,\n loose: false,\n text: itemContents\n });\n\n list.raw += raw;\n src = src.slice(raw.length);\n }\n\n // Do not consume newlines at end of final item. Alternatively, make itemRegex *start* with any newlines to simplify/speed up endsWithBlankLine logic\n list.items[list.items.length - 1].raw = raw.trimRight();\n list.items[list.items.length - 1].text = itemContents.trimRight();\n list.raw = list.raw.trimRight();\n\n const l = list.items.length;\n\n // Item child tokens handled here at end because we needed to have the final item to trim it first\n for (i = 0; i < l; i++) {\n this.lexer.state.top = false;\n list.items[i].tokens = this.lexer.blockTokens(list.items[i].text, []);\n if (list.items[i].tokens.some(t => t.type === 'space')) {\n list.loose = true;\n list.items[i].loose = true;\n }\n }\n\n return list;\n }\n }\n\n html(src) {\n const cap = this.rules.block.html.exec(src);\n if (cap) {\n const token = {\n type: 'html',\n raw: cap[0],\n pre: !this.options.sanitizer\n && (cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style'),\n text: cap[0]\n };\n if (this.options.sanitize) {\n token.type = 'paragraph';\n token.text = this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape$2(cap[0]);\n token.tokens = [];\n this.lexer.inline(token.text, token.tokens);\n }\n return token;\n }\n }\n\n def(src) {\n const cap = this.rules.block.def.exec(src);\n if (cap) {\n if (cap[3]) cap[3] = cap[3].substring(1, cap[3].length - 1);\n const tag = cap[1].toLowerCase().replace(/\\s+/g, ' ');\n return {\n type: 'def',\n tag,\n raw: cap[0],\n href: cap[2],\n title: cap[3]\n };\n }\n }\n\n table(src) {\n const cap = this.rules.block.table.exec(src);\n if (cap) {\n const item = {\n type: 'table',\n header: splitCells(cap[1]).map(c => { return { text: c }; }),\n align: cap[2].replace(/^ *|\\| *$/g, '').split(/ *\\| */),\n rows: cap[3] ? cap[3].replace(/\\n$/, '').split('\\n') : []\n };\n\n if (item.header.length === item.align.length) {\n item.raw = cap[0];\n\n let l = item.align.length;\n let i, j, k, row;\n for (i = 0; i < l; i++) {\n if (/^ *-+: *$/.test(item.align[i])) {\n item.align[i] = 'right';\n } else if (/^ *:-+: *$/.test(item.align[i])) {\n item.align[i] = 'center';\n } else if (/^ *:-+ *$/.test(item.align[i])) {\n item.align[i] = 'left';\n } else {\n item.align[i] = null;\n }\n }\n\n l = item.rows.length;\n for (i = 0; i < l; i++) {\n item.rows[i] = splitCells(item.rows[i], item.header.length).map(c => { return { text: c }; });\n }\n\n // parse child tokens inside headers and cells\n\n // header child tokens\n l = item.header.length;\n for (j = 0; j < l; j++) {\n item.header[j].tokens = [];\n this.lexer.inlineTokens(item.header[j].text, item.header[j].tokens);\n }\n\n // cell child tokens\n l = item.rows.length;\n for (j = 0; j < l; j++) {\n row = item.rows[j];\n for (k = 0; k < row.length; k++) {\n row[k].tokens = [];\n this.lexer.inlineTokens(row[k].text, row[k].tokens);\n }\n }\n\n return item;\n }\n }\n }\n\n lheading(src) {\n const cap = this.rules.block.lheading.exec(src);\n if (cap) {\n const token = {\n type: 'heading',\n raw: cap[0],\n depth: cap[2].charAt(0) === '=' ? 1 : 2,\n text: cap[1],\n tokens: []\n };\n this.lexer.inline(token.text, token.tokens);\n return token;\n }\n }\n\n paragraph(src) {\n const cap = this.rules.block.paragraph.exec(src);\n if (cap) {\n const token = {\n type: 'paragraph',\n raw: cap[0],\n text: cap[1].charAt(cap[1].length - 1) === '\\n'\n ? cap[1].slice(0, -1)\n : cap[1],\n tokens: []\n };\n this.lexer.inline(token.text, token.tokens);\n return token;\n }\n }\n\n text(src) {\n const cap = this.rules.block.text.exec(src);\n if (cap) {\n const token = {\n type: 'text',\n raw: cap[0],\n text: cap[0],\n tokens: []\n };\n this.lexer.inline(token.text, token.tokens);\n return token;\n }\n }\n\n escape(src) {\n const cap = this.rules.inline.escape.exec(src);\n if (cap) {\n return {\n type: 'escape',\n raw: cap[0],\n text: escape$2(cap[1])\n };\n }\n }\n\n tag(src) {\n const cap = this.rules.inline.tag.exec(src);\n if (cap) {\n if (!this.lexer.state.inLink && /^
    /i.test(cap[0])) {\n this.lexer.state.inLink = false;\n }\n if (!this.lexer.state.inRawBlock && /^<(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.lexer.state.inRawBlock = true;\n } else if (this.lexer.state.inRawBlock && /^<\\/(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.lexer.state.inRawBlock = false;\n }\n\n return {\n type: this.options.sanitize\n ? 'text'\n : 'html',\n raw: cap[0],\n inLink: this.lexer.state.inLink,\n inRawBlock: this.lexer.state.inRawBlock,\n text: this.options.sanitize\n ? (this.options.sanitizer\n ? this.options.sanitizer(cap[0])\n : escape$2(cap[0]))\n : cap[0]\n };\n }\n }\n\n link(src) {\n const cap = this.rules.inline.link.exec(src);\n if (cap) {\n const trimmedUrl = cap[2].trim();\n if (!this.options.pedantic && /^$/.test(trimmedUrl))) {\n return;\n }\n\n // ending angle bracket cannot be escaped\n const rtrimSlash = rtrim(trimmedUrl.slice(0, -1), '\\\\');\n if ((trimmedUrl.length - rtrimSlash.length) % 2 === 0) {\n return;\n }\n } else {\n // find closing parenthesis\n const lastParenIndex = findClosingBracket(cap[2], '()');\n if (lastParenIndex > -1) {\n const start = cap[0].indexOf('!') === 0 ? 5 : 4;\n const linkLen = start + cap[1].length + lastParenIndex;\n cap[2] = cap[2].substring(0, lastParenIndex);\n cap[0] = cap[0].substring(0, linkLen).trim();\n cap[3] = '';\n }\n }\n let href = cap[2];\n let title = '';\n if (this.options.pedantic) {\n // split pedantic href and title\n const link = /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/.exec(href);\n\n if (link) {\n href = link[1];\n title = link[3];\n }\n } else {\n title = cap[3] ? cap[3].slice(1, -1) : '';\n }\n\n href = href.trim();\n if (/^$/.test(trimmedUrl))) {\n // pedantic allows starting angle bracket without ending angle bracket\n href = href.slice(1);\n } else {\n href = href.slice(1, -1);\n }\n }\n return outputLink(cap, {\n href: href ? href.replace(this.rules.inline._escapes, '$1') : href,\n title: title ? title.replace(this.rules.inline._escapes, '$1') : title\n }, cap[0], this.lexer);\n }\n }\n\n reflink(src, links) {\n let cap;\n if ((cap = this.rules.inline.reflink.exec(src))\n || (cap = this.rules.inline.nolink.exec(src))) {\n let link = (cap[2] || cap[1]).replace(/\\s+/g, ' ');\n link = links[link.toLowerCase()];\n if (!link || !link.href) {\n const text = cap[0].charAt(0);\n return {\n type: 'text',\n raw: text,\n text\n };\n }\n return outputLink(cap, link, cap[0], this.lexer);\n }\n }\n\n emStrong(src, maskedSrc, prevChar = '') {\n let match = this.rules.inline.emStrong.lDelim.exec(src);\n if (!match) return;\n\n // _ can't be between two alphanumerics. \\p{L}\\p{N} includes non-english alphabet/numbers as well\n if (match[3] && prevChar.match(/[\\p{L}\\p{N}]/u)) return;\n\n const nextChar = match[1] || match[2] || '';\n\n if (!nextChar || (nextChar && (prevChar === '' || this.rules.inline.punctuation.exec(prevChar)))) {\n const lLength = match[0].length - 1;\n let rDelim, rLength, delimTotal = lLength, midDelimTotal = 0;\n\n const endReg = match[0][0] === '*' ? this.rules.inline.emStrong.rDelimAst : this.rules.inline.emStrong.rDelimUnd;\n endReg.lastIndex = 0;\n\n // Clip maskedSrc to same section of string as src (move to lexer?)\n maskedSrc = maskedSrc.slice(-1 * src.length + lLength);\n\n while ((match = endReg.exec(maskedSrc)) != null) {\n rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];\n\n if (!rDelim) continue; // skip single * in __abc*abc__\n\n rLength = rDelim.length;\n\n if (match[3] || match[4]) { // found another Left Delim\n delimTotal += rLength;\n continue;\n } else if (match[5] || match[6]) { // either Left or Right Delim\n if (lLength % 3 && !((lLength + rLength) % 3)) {\n midDelimTotal += rLength;\n continue; // CommonMark Emphasis Rules 9-10\n }\n }\n\n delimTotal -= rLength;\n\n if (delimTotal > 0) continue; // Haven't found enough closing delimiters\n\n // Remove extra characters. *a*** -> *a*\n rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal);\n\n // Create `em` if smallest delimiter has odd char count. *a***\n if (Math.min(lLength, rLength) % 2) {\n const text = src.slice(1, lLength + match.index + rLength);\n return {\n type: 'em',\n raw: src.slice(0, lLength + match.index + rLength + 1),\n text,\n tokens: this.lexer.inlineTokens(text, [])\n };\n }\n\n // Create 'strong' if smallest delimiter has even char count. **a***\n const text = src.slice(2, lLength + match.index + rLength - 1);\n return {\n type: 'strong',\n raw: src.slice(0, lLength + match.index + rLength + 1),\n text,\n tokens: this.lexer.inlineTokens(text, [])\n };\n }\n }\n }\n\n codespan(src) {\n const cap = this.rules.inline.code.exec(src);\n if (cap) {\n let text = cap[2].replace(/\\n/g, ' ');\n const hasNonSpaceChars = /[^ ]/.test(text);\n const hasSpaceCharsOnBothEnds = /^ /.test(text) && / $/.test(text);\n if (hasNonSpaceChars && hasSpaceCharsOnBothEnds) {\n text = text.substring(1, text.length - 1);\n }\n text = escape$2(text, true);\n return {\n type: 'codespan',\n raw: cap[0],\n text\n };\n }\n }\n\n br(src) {\n const cap = this.rules.inline.br.exec(src);\n if (cap) {\n return {\n type: 'br',\n raw: cap[0]\n };\n }\n }\n\n del(src) {\n const cap = this.rules.inline.del.exec(src);\n if (cap) {\n return {\n type: 'del',\n raw: cap[0],\n text: cap[2],\n tokens: this.lexer.inlineTokens(cap[2], [])\n };\n }\n }\n\n autolink(src, mangle) {\n const cap = this.rules.inline.autolink.exec(src);\n if (cap) {\n let text, href;\n if (cap[2] === '@') {\n text = escape$2(this.options.mangle ? mangle(cap[1]) : cap[1]);\n href = 'mailto:' + text;\n } else {\n text = escape$2(cap[1]);\n href = text;\n }\n\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: 'text',\n raw: text,\n text\n }\n ]\n };\n }\n }\n\n url(src, mangle) {\n let cap;\n if (cap = this.rules.inline.url.exec(src)) {\n let text, href;\n if (cap[2] === '@') {\n text = escape$2(this.options.mangle ? mangle(cap[0]) : cap[0]);\n href = 'mailto:' + text;\n } else {\n // do extended autolink path validation\n let prevCapZero;\n do {\n prevCapZero = cap[0];\n cap[0] = this.rules.inline._backpedal.exec(cap[0])[0];\n } while (prevCapZero !== cap[0]);\n text = escape$2(cap[0]);\n if (cap[1] === 'www.') {\n href = 'http://' + text;\n } else {\n href = text;\n }\n }\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: 'text',\n raw: text,\n text\n }\n ]\n };\n }\n }\n\n inlineText(src, smartypants) {\n const cap = this.rules.inline.text.exec(src);\n if (cap) {\n let text;\n if (this.lexer.state.inRawBlock) {\n text = this.options.sanitize ? (this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape$2(cap[0])) : cap[0];\n } else {\n text = escape$2(this.options.smartypants ? smartypants(cap[0]) : cap[0]);\n }\n return {\n type: 'text',\n raw: cap[0],\n text\n };\n }\n }\n};\n\nconst {\n noopTest,\n edit,\n merge: merge$1\n} = helpers;\n\n/**\n * Block-Level Grammar\n */\nconst block$1 = {\n newline: /^(?: *(?:\\n|$))+/,\n code: /^( {4}[^\\n]+(?:\\n(?: *(?:\\n|$))*)?)+/,\n fences: /^ {0,3}(`{3,}(?=[^`\\n]*\\n)|~{3,})([^\\n]*)\\n(?:|([\\s\\S]*?)\\n)(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/,\n hr: /^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)/,\n heading: /^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/,\n blockquote: /^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/,\n list: /^( {0,3}bull)( [^\\n]+?)?(?:\\n|$)/,\n html: '^ {0,3}(?:' // optional indentation\n + '<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:[^\\\\n]*\\\\n+|$)' // (1)\n + '|comment[^\\\\n]*(\\\\n+|$)' // (2)\n + '|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)' // (3)\n + '|\\\\n*|$)' // (4)\n + '|\\\\n*|$)' // (5)\n + '|)[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (6)\n + '|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) open tag\n + '|(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) closing tag\n + ')',\n def: /^ {0,3}\\[(label)\\]: *\\n? *]+)>?(?:(?: +\\n? *| *\\n *)(title))? *(?:\\n+|$)/,\n table: noopTest,\n lheading: /^([^\\n]+)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n // regex template, placeholders will be replaced according to different paragraph\n // interruption rules of commonmark and the original markdown spec:\n _paragraph: /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html| +\\n)[^\\n]+)*)/,\n text: /^[^\\n]+/\n};\n\nblock$1._label = /(?!\\s*\\])(?:\\\\[\\[\\]]|[^\\[\\]])+/;\nblock$1._title = /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/;\nblock$1.def = edit(block$1.def)\n .replace('label', block$1._label)\n .replace('title', block$1._title)\n .getRegex();\n\nblock$1.bullet = /(?:[*+-]|\\d{1,9}[.)])/;\nblock$1.listItemStart = edit(/^( *)(bull) */)\n .replace('bull', block$1.bullet)\n .getRegex();\n\nblock$1.list = edit(block$1.list)\n .replace(/bull/g, block$1.bullet)\n .replace('hr', '\\\\n+(?=\\\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$))')\n .replace('def', '\\\\n+(?=' + block$1.def.source + ')')\n .getRegex();\n\nblock$1._tag = 'address|article|aside|base|basefont|blockquote|body|caption'\n + '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption'\n + '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe'\n + '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option'\n + '|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr'\n + '|track|ul';\nblock$1._comment = /|$)/;\nblock$1.html = edit(block$1.html, 'i')\n .replace('comment', block$1._comment)\n .replace('tag', block$1._tag)\n .replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/)\n .getRegex();\n\nblock$1.paragraph = edit(block$1._paragraph)\n .replace('hr', block$1.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\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$1._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n\nblock$1.blockquote = edit(block$1.blockquote)\n .replace('paragraph', block$1.paragraph)\n .getRegex();\n\n/**\n * Normal Block Grammar\n */\n\nblock$1.normal = merge$1({}, block$1);\n\n/**\n * GFM Block Grammar\n */\n\nblock$1.gfm = merge$1({}, block$1.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$1.gfm.table = edit(block$1.gfm.table)\n .replace('hr', block$1.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$1._tag) // tables can be interrupted by type (6) html blocks\n .getRegex();\n\n/**\n * Pedantic grammar (original John Gruber's loose markdown specification)\n */\n\nblock$1.pedantic = merge$1({}, block$1.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$1._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$1.normal._paragraph)\n .replace('hr', block$1.hr)\n .replace('heading', ' *#{1,6} *[^\\n]')\n .replace('lheading', block$1.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$1 = {\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)\\]\\[(?!\\s*\\])((?:\\\\[\\[\\]]?|[^\\[\\]\\\\])+)\\]/,\n nolink: /^!?\\[(?!\\s*\\])((?:\\[[^\\[\\]]*\\]|\\\\[\\[\\]]|[^\\[\\]])*)\\](?:\\[\\])?/,\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$1.punctuation = edit(inline$1.punctuation).replace(/punctuation/g, inline$1._punctuation).getRegex();\n\n// sequences em should skip over [title](link), `code`, \ninline$1.blockSkip = /\\[[^\\]]*?\\]\\([^\\)]*?\\)|`[^`]*?`|<[^>]*?>/g;\ninline$1.escapedEmSt = /\\\\\\*|\\\\_/g;\n\ninline$1._comment = edit(block$1._comment).replace('(?:-->|$)', '-->').getRegex();\n\ninline$1.emStrong.lDelim = edit(inline$1.emStrong.lDelim)\n .replace(/punct/g, inline$1._punctuation)\n .getRegex();\n\ninline$1.emStrong.rDelimAst = edit(inline$1.emStrong.rDelimAst, 'g')\n .replace(/punct/g, inline$1._punctuation)\n .getRegex();\n\ninline$1.emStrong.rDelimUnd = edit(inline$1.emStrong.rDelimUnd, 'g')\n .replace(/punct/g, inline$1._punctuation)\n .getRegex();\n\ninline$1._escapes = /\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/g;\n\ninline$1._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;\ninline$1._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$1.autolink = edit(inline$1.autolink)\n .replace('scheme', inline$1._scheme)\n .replace('email', inline$1._email)\n .getRegex();\n\ninline$1._attribute = /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/;\n\ninline$1.tag = edit(inline$1.tag)\n .replace('comment', inline$1._comment)\n .replace('attribute', inline$1._attribute)\n .getRegex();\n\ninline$1._label = /(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\ninline$1._href = /<(?:\\\\.|[^\\n<>\\\\])+>|[^\\s\\x00-\\x1f]*/;\ninline$1._title = /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/;\n\ninline$1.link = edit(inline$1.link)\n .replace('label', inline$1._label)\n .replace('href', inline$1._href)\n .replace('title', inline$1._title)\n .getRegex();\n\ninline$1.reflink = edit(inline$1.reflink)\n .replace('label', inline$1._label)\n .getRegex();\n\ninline$1.reflinkSearch = edit(inline$1.reflinkSearch, 'g')\n .replace('reflink', inline$1.reflink)\n .replace('nolink', inline$1.nolink)\n .getRegex();\n\n/**\n * Normal Inline Grammar\n */\n\ninline$1.normal = merge$1({}, inline$1);\n\n/**\n * Pedantic Inline Grammar\n */\n\ninline$1.pedantic = merge$1({}, inline$1.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$1._label)\n .getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/)\n .replace('label', inline$1._label)\n .getRegex()\n});\n\n/**\n * GFM Inline Grammar\n */\n\ninline$1.gfm = merge$1({}, inline$1.normal, {\n escape: edit(inline$1.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 */\nvar Lexer_1$1 = class Lexer {\n constructor(options) {\n this.tokens = [];\n this.tokens.links = Object.create(null);\n this.options = options || defaults$3;\n this.options.tokenizer = this.options.tokenizer || new Tokenizer$2();\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.type) {\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\nconst { defaults: defaults$2 } = defaults$5.exports;\nconst {\n cleanUrl,\n escape: escape$1\n} = helpers;\n\n/**\n * Renderer\n */\nvar Renderer_1$1 = class Renderer {\n constructor(options) {\n this.options = options || defaults$2;\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$1(code, true))\n        + '
    \\n';\n }\n\n return '
    '\n      + (escaped ? code : escape$1(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 */\n\nvar TextRenderer_1$1 = class 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 */\n\nvar Slugger_1$1 = class 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\nconst Renderer$2 = Renderer_1$1;\nconst TextRenderer$2 = TextRenderer_1$1;\nconst Slugger$2 = Slugger_1$1;\nconst { defaults: defaults$1 } = defaults$5.exports;\nconst {\n unescape\n} = helpers;\n\n/**\n * Parsing & Compiling\n */\nvar Parser_1$1 = class Parser {\n constructor(options) {\n this.options = options || defaults$1;\n this.options.renderer = this.options.renderer || new Renderer$2();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n this.textRenderer = new TextRenderer$2();\n this.slugger = new Slugger$2();\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\nconst Lexer$1 = Lexer_1$1;\nconst Parser$1 = Parser_1$1;\nconst Tokenizer$1 = Tokenizer_1$1;\nconst Renderer$1 = Renderer_1$1;\nconst TextRenderer$1 = TextRenderer_1$1;\nconst Slugger$1 = Slugger_1$1;\nconst {\n merge,\n checkSanitizeDeprecation,\n escape\n} = helpers;\nconst {\n getDefaults,\n changeDefaults,\n defaults\n} = defaults$5.exports;\n\n/**\n * Marked\n */\nfunction marked$1(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$1.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n\n if (callback) {\n const highlight = opt.highlight;\n let tokens;\n\n try {\n tokens = Lexer$1.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$1.walkTokens(tokens, opt.walkTokens);\n }\n out = Parser$1.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$1.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$1.lex(src, opt);\n if (opt.walkTokens) {\n marked$1.walkTokens(tokens, opt.walkTokens);\n }\n return Parser$1.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$1.options =\nmarked$1.setOptions = function(opt) {\n merge(marked$1.defaults, opt);\n changeDefaults(marked$1.defaults);\n return marked$1;\n};\n\nmarked$1.getDefaults = getDefaults;\n\nmarked$1.defaults = defaults;\n\n/**\n * Use Extension\n */\n\nmarked$1.use = function(...args) {\n const opts = merge({}, ...args);\n const extensions = marked$1.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$1.defaults.renderer || new Renderer$1();\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$1.defaults.tokenizer || new Tokenizer$1();\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$1.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$1.setOptions(opts);\n });\n};\n\n/**\n * Run callback for every token\n */\n\nmarked$1.walkTokens = function(tokens, callback) {\n for (const token of tokens) {\n callback.call(marked$1, token);\n switch (token.type) {\n case 'table': {\n for (const cell of token.header) {\n marked$1.walkTokens(cell.tokens, callback);\n }\n for (const row of token.rows) {\n for (const cell of row) {\n marked$1.walkTokens(cell.tokens, callback);\n }\n }\n break;\n }\n case 'list': {\n marked$1.walkTokens(token.items, callback);\n break;\n }\n default: {\n if (marked$1.defaults.extensions && marked$1.defaults.extensions.childTokens && marked$1.defaults.extensions.childTokens[token.type]) { // Walk any extensions\n marked$1.defaults.extensions.childTokens[token.type].forEach(function(childTokens) {\n marked$1.walkTokens(token[childTokens], callback);\n });\n } else if (token.tokens) {\n marked$1.walkTokens(token.tokens, callback);\n }\n }\n }\n }\n};\n\n/**\n * Parse Inline\n */\nmarked$1.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$1.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n\n try {\n const tokens = Lexer$1.lexInline(src, opt);\n if (opt.walkTokens) {\n marked$1.walkTokens(tokens, opt.walkTokens);\n }\n return Parser$1.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$1.Parser = Parser$1;\nmarked$1.parser = Parser$1.parse;\nmarked$1.Renderer = Renderer$1;\nmarked$1.TextRenderer = TextRenderer$1;\nmarked$1.Lexer = Lexer$1;\nmarked$1.lexer = Lexer$1.lex;\nmarked$1.Tokenizer = Tokenizer$1;\nmarked$1.Slugger = Slugger$1;\nmarked$1.parse = marked$1;\n\nvar marked_1 = marked$1;\n\nconst marked = marked_1;\nconst Lexer = Lexer_1$1;\nconst Parser = Parser_1$1;\nconst Tokenizer = Tokenizer_1$1;\nconst Renderer = Renderer_1$1;\nconst TextRenderer = TextRenderer_1$1;\nconst Slugger = Slugger_1$1;\n\nesmEntry$1.exports = marked;\nvar parse = esmEntry$1.exports.parse = marked;\nvar Parser_1 = esmEntry$1.exports.Parser = Parser;\nvar parser = esmEntry$1.exports.parser = Parser.parse;\nvar Renderer_1 = esmEntry$1.exports.Renderer = Renderer;\nvar TextRenderer_1 = esmEntry$1.exports.TextRenderer = TextRenderer;\nvar Lexer_1 = esmEntry$1.exports.Lexer = Lexer;\nvar lexer = esmEntry$1.exports.lexer = Lexer.lex;\nvar Tokenizer_1 = esmEntry$1.exports.Tokenizer = Tokenizer;\nvar Slugger_1 = esmEntry$1.exports.Slugger = Slugger;\n\nvar esmEntry = esmEntry$1.exports;\n\nexport { Lexer_1 as Lexer, Parser_1 as Parser, Renderer_1 as Renderer, Slugger_1 as Slugger, TextRenderer_1 as TextRenderer, Tokenizer_1 as Tokenizer, esmEntry as default, lexer, parse, parser };\n"],"names":["n","u","i","t","r","f","e","n2","l2","u2","parentNode","removeChild","t2","o2","r2","arguments","f2","length","push","children","defaultProps","v","type","props","key","ref","__k","__","__b","__e","__d","__c","__h","constructor","__v","vnode","this","context","d","indexOf","base","_","b","__r","debounceRendering","sort","n3","some","__P","c","I","__n","ownerSVGElement","T","e2","c2","s2","a2","h","p2","_2","k2","b2","m2","w2","A2","P2","Array","isArray","y","g","x","value","L","appendChild","nextSibling","insertBefore","setProperty","test","style","cssText","P","replace","toLowerCase","slice","l","addEventListener","H","$","removeEventListener","setAttribute","removeAttribute","event","v2","d2","g2","x2","contextType","__E","prototype","render","p","M","sub","state","__s","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","shouldComponentUpdate","forEach","componentWillUpdate","componentDidUpdate","getChildContext","getSnapshotBeforeUpdate","m","y2","localName","nodeType","document","createTextNode","createElementNS","createElement","is","data","call","childNodes","dangerouslySetInnerHTML","attributes","name","__html","innerHTML","C","A","firstChild","s","checked","j","diffed","l3","u3","current","unmount","z","componentWillUnmount","a","getDerivedStateFromError","setState","componentDidCatch","k","forceUpdate","Promise","then","bind","resolve","setTimeout","EMPTY$1","obj","url","route2","opts","ret","reg","match","matches","split","decodeURIComponent","join","segmentize","max","Math","i$12","charAt","param","flags","plus","star","val","map","default","rank","index","path","rankSegment","rankChild","segment","customHistory","ROUTERS","subscribers","EMPTY","location","getCurrentLocation","pathname","search","canRoute","type2","history","routeTo","didRoute","node","getAttribute","href","target","route","ctrlKey","metaKey","altKey","shiftKey","button","currentTarget","prevent","stopImmediatePropagation","stopPropagation","preventDefault","String","nodeName","toUpperCase","hasAttribute","routeFromLink","eventListenersInitialized","Router","Component$$1","getCurrentUrl","delegateLinkHandler","__proto__","Object","create","Router2","static","onChange","toChildArray","getMatchingChildren","updating","this$1","unlisten","listen","location2","splice","invoke","filter","prepareVNodeForRanking","pathRankSort","exec","newProps","cloneElement","Boolean","ref$1","active","previous","previousUrl","router","Component","Link","assign","onClick","handleLinkClick","Route","component","o","__H","w","requestAnimationFrame","t3","cancelAnimationFrame","defineProperty","Path_1","start","relativePath2","reduce","pop","[object Object]","modelArr","contextArr","end","Path","element","modelPush","contextPush","copy","newElement","startsWith","model","ModelPath","other","every","offset","fn","thisArg","_a","get","set","super","shift","Errors_1","errors","error","params","exact","equals","Symbol","iterator","Errors","str2","utils","escapeString","dec2hex","dec","toString","substr","arr","Uint8Array","crypto","getRandomValues","from","DataModel_1","require$$0","require$$1","utils_1","require$$2","schema2","options","_b","_c","_d","historyMax","verbose","wrapLists","schema","initialData","DataModel","listeners","JSON","stringify","historyIndex","listener","newHistory","silentInvalidate","invalidated","loose","validate","invalidate","silent","getArray","reset","id","hexId","isNaN","last","log","parse","withModel","clear","tempErrors","add","res","entries","unwrapLists","exports","category","enabled","keep","optional","pathPush","suggest","validationOption","hook","args","canUpdate","update","mods","__spreadValues","Mod","__spreadProps","BooleanNode","Node_1","Base","boolean","ListNode","config","min","minLength","maxLength","Infinity","between","nextIndex","navigate","parseInt","newObj","_a2","list","SwitchNode","cases","activeCase","concat","fallback","sorter","priority","matchedCases","ListNode_1","SwitchNode_1","choices","switchNode","choice","isValid","XOrList","ChoiceNode","change","presetNode","objectNode","presets","keys","MapNode","validation","__1","DataModel_12","Node_12","integer","color","Number","isInteger","number","values","NumberNode","includes","Path_12","Errors_12","utils_12","require$$3","require$$4","fields","Switch","Case","defaultFields","__restKey","getActiveFields","switchValue","relativePath","getChildModelPath","childKey","caseFields","caseKeys","pathWithContext","getModel","disableSwitchContext","pathElements","activeFields","existingKeys","quoteString","filterPath","filterField","activeKeys","forcedKeys","Set","newValue","object","Reference","schemas2","transform","StringNode","isEnum","enum","isValidator","validator","collections","getValues","pool","allowTag","isDefinition","allowUnknown","additional","string","Hook","Registries","registry","warn","ValidationOption","__createBinding2","__createBinding","k22","enumerable","__exportStar","exports2","hasOwnProperty","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","buf","len","extra_lbits","extra_dbits","extra_blbits","bl_order","static_ltree","zero$1","static_dtree","D_CODES$1","_dist_code","_length_code","MAX_MATCH$1","base_length","base_dist","static_tree","extra_bits","extra_base","elems","max_length","has_stree","static_l_desc","static_d_desc","static_bl_desc","dyn_tree","stat_desc","max_code","d_code","dist","put_short","pending_buf","pending","send_bits","bi_valid","bi_buf","send_code","tree","bi_reverse","code","gen_codes","bl_count","next_code","MAX_BITS$1","bits","init_block","LITERALS$1","dyn_ltree","dyn_dtree","bl_tree","END_BLOCK","opt_len","static_len","last_lit","bi_windup","smaller","depth","_n2","_m2","pqdownheap","heap","j2","heap_len","compress_block","ltree","dtree","lc","extra","lx","d_buf","l_buf","build_tree","desc","stree","heap_max","xbits","overflow","scan_tree","curlen","prevlen","nextlen","count","max_count","min_count","REP_3_6","REPZ_3_10","REPZ_11_138","send_tree","static_init_done","_tr_stored_block$1","stored_len","header","window","subarray","trees","_tr_init","LENGTH_CODES$1","L_CODES$1","StaticTreeDesc","l_desc","TreeDesc","d_desc","bl_desc","_tr_stored_block","_tr_flush_block","opt_lenb","static_lenb","max_blindex","level","strm","data_type","black_mask","detect_data_type","BL_CODES$1","build_bl_tree","strategy","lcodes","dcodes","blcodes","rank2","_tr_tally","lit_bufsize","_tr_align","STATIC_TREES","adler32_1","adler","pos","s1","crcTable","Uint32Array","table","makeTable","crc32_1","crc","messages","2","1","0","-1","-2","-3","-4","-5","-6","constants$2","Z_NO_FLUSH","Z_PARTIAL_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_FINISH","Z_BLOCK","Z_TREES","Z_OK","Z_STREAM_END","Z_NEED_DICT","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_MEM_ERROR","Z_BUF_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_DEFAULT_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_DEFAULT_STRATEGY","Z_BINARY","Z_TEXT","Z_UNKNOWN","Z_DEFLATED","Z_NO_FLUSH$2","Z_FULL_FLUSH$1","Z_FINISH$3","Z_BLOCK$1","Z_OK$3","Z_STREAM_END$3","Z_STREAM_ERROR$2","Z_DATA_ERROR$2","Z_BUF_ERROR$1","Z_DEFAULT_COMPRESSION$1","Z_DEFAULT_STRATEGY$1","Z_DEFLATED$2","err","errorCode","msg","zero","HASH","prev","hash_shift","hash_mask","flush_pending","avail_out","output","pending_out","next_out","total_out","flush_block_only","block_start","strstart","put_byte","putShortMSB","read_buf","size","avail_in","input","next_in","wrap","total_in","longest_match","cur_match","chain_length","max_chain_length","scan","best_len","prev_length","nice_match","limit","w_size","MAX_MATCH","_win","wmask","w_mask","strend","scan_end1","scan_end","good_match","lookahead","match_start","fill_window","_w_size","more","window_size","hash_size","head","insert","ins_h","deflate_fast","flush","hash_head","bflush","match_length","max_lazy_match","MIN_MATCH","deflate_slow","max_insert","prev_match","match_available","good_length","max_lazy","nice_length","max_chain","func","configuration_table","Config","max_block_size","pending_buf_size","max_start","status","gzhead","gzindex","method","last_flush","w_bits","hash_bits","Uint16Array","HEAP_SIZE","MAX_BITS","deflateResetKeep","deflateReset","deflateInit2","windowBits","memLevel","DeflateState","deflate_1$2","deflateInit","deflateSetHeader","deflate","beg","old_flush","text","hcrc","comment","time","os","level_flags","charCodeAt","bstate","deflate_huff","deflate_rle","deflateEnd","deflateSetDictionary","dictionary","dictLength","tmpDict","avail","next","deflateInfo","_has","common","sources","source","TypeError","chunks","result","chunk","STR_APPLY_UIA_OK","fromCharCode","apply","_utf8len","q2","strings","TextEncoder","encode","c22","m_pos","str_len","buf_len","TextDecoder","decode","out","utf16buf","c_len","buf2binstring","zstream","toString$1","Z_NO_FLUSH$1","Z_FINISH$2","Z_OK$2","Z_STREAM_END$2","Z_DEFLATED$1","chunkSize","opt","raw","gzip","ended","Error","dict","_dict_set","Deflate$1","flush_mode","_flush_mode","onData","onEnd","inffast","_in","_out","dmax","wsize","whave","wnext","s_window","hold","lcode","dcode","lmask","dmask","here","op","from_source","lencode","distcode","lenbits","distbits","mode","sane","lbase","lext","dbase","dext","inftrees","lens","lens_index","codes","table_index","work","incr","fill","low","mask","sym","root","curr","drop","left","used","huff","base_index","MAXBITS","offs","here_bits","here_op","here_val","extra_index","Z_FINISH$1","Z_OK$1","Z_STREAM_END$1","Z_NEED_DICT$1","Z_STREAM_ERROR$1","Z_DATA_ERROR$1","Z_MEM_ERROR$1","zswap32","havedict","check","total","wbits","ncode","nlen","ndist","have","lendyn","distdyn","back","was","inflateResetKeep","Int32Array","inflateReset","inflateReset2","inflateInit2","InflateState","lenfix","distfix","virgin","fixedtables","updatewindow","src","inflate_1$2","inflateInit","inflate","put","last_bits","last_op","last_val","hbuf","order","done","xflags","extra_len","inflateEnd","inflateGetHeader","inflateSetDictionary","dictid","inflateInfo","gzheader","to","Inflate$1","last_avail_out","next_out_utf8","tail","utf8str","base64map","crypt","rotl","rotr","endian","randomBytes","bytes","floor","random","bytesToWords","words","wordsToBytes","bytesToHex","hex","hexToBytes","bytesToBase64","base64","triplet","base64ToBytes","imod4","pow","charenc","utf8","stringToBytes","bin","unescape","encodeURIComponent","bytesToString","escape","charenc_1","isBuffer_1","readFloatLE","isBuffer","isSlowBuffer","_isBuffer","isBuffer2","md5","message","encoding","FF","_ff","GG","_gg","HH","_hh","II","_ii","aa","bb","cc","dd","_blocksize","_digestsize","digestbytes","asBytes","asString","UP","DOWN","NORTH","EAST","SOUTH","WEST","E","R","ht","Pt","Et","At","Ct","Rt","Nt","kt","Tt","_t","ALL","normal","towards","readNumber","readInt","readString","readBoolean","readObject","readArray","e3","t4","readMap","fromEntries","compose","properties","S","N","Name","Properties","AIR","minY","storage","SIZE","palette","findIndex","WIDTH","height","sections","sectionsCount","maxY","maxSection","minSection","getSectionIndex","getBlockState","getOrCreateSection","setBlockState","fromBlockPos","fromLong","BigInt","minBlockX","minBlockZ","maxBlockX","maxBlockZ","seed","setSeed","V","nextLong","MULTIPLIER","MODULUS_MASK","INCREMENT","advance","MODULUS_BITS","FLOAT_MULTIPLIER","DOUBLE_MULTIPLIER","W","upgradeSeedTo128bit","SILVER_RATIO_64","GOLDEN_RATIO_64","mixStafford13","getSeed","LongfromBytes","rotateLeft","o3","nextBits","xo","nextDouble","yo","zo","nextInt","Y","F2","G2","getCornerNoise3D","S2","B","I2","E2","C2","R2","N2","gradDot","GRADIENT","sqrt","sampleAndLerp","D","U","fork","noiseLevels","i2","J","forkWithHashOf","consume","amplitudes","lowestFreqInputFactor","lowestFreqValueFactor","sample","Z","cellWidth","cellHeight","minLimitNoise","maxLimitNoise","mainNoise","xzScale","yScale","xzMainScale","xzFactor","yMainScale","yFactor","getOctaveNoise","o4","a3","X","fromJson","xz_scale","y_scale","xz_factor","y_factor","firstOctave","first","second","valueFactor","G","INPUT_FACTOR","q","K","coordinate","points","s3","derivative","addPoint","locations","derivatives","toJson","rotate","up","down","north","east","south","west","r3","parameters","Param","temperature","humidity","continentalness","erosion","weirdness","O","distance","ParamPoint","TargetPoint","Parameters","things","build","CHILDREN_PER_NODE","e4","e5","i3","s4","space","abs","bucketize","area","toArray","thing","RTree","RNode","buildSpace","union","RSubTree","RLeaf","biome","Ot","offsetSampler","factorSampler","jaggednessSampler","Lt","EXTRACTOR","factor","jaggedness","GLOBAL_OFFSET","continents","ridges","peaksAndValleys","buildErosionOffsetSpline","CONTINENTS","getErosionFactor","buildErosionJaggednessSpline","WEIRDNESS","EROSION","RIDGES","buildMountainRidgeSplineWithPoints","ridgeSpline","mountainContinentalness","calculateMountainRidgeZeroContinentalnessPoint","calculateSlope","buildRidgeJaggednessSpline","buildWeirdnessJaggednessSpline","extractor","fromList","filler","noise000","noise001","noise100","noise101","noise010","noise011","noise110","noise111","valueXZ00","valueXZ10","valueXZ01","valueXZ11","valueZ0","valueZ1","slice0","Dt","allocateSlice","cellCountY","cellCountXZ","slice1","fillSlice","firstCellX","firstCellZ","cellCountNoiseMinY","interpolators","terrainInfo","Map","shiftedX","shiftedZ","terrainInfoBuffer","baseNoise","makeBaseNoiseFiller","initializeForFirstCellX","advanceCellX","selectCellYZ","updateForY","updateForX","updateForZ","swapSlices","getOffset","getContinentalness","getWeirdness","getErosion","getTerrainInfo","min_y","xzSize","size_horizontal","ySize","size_vertical","densityFactor","density_factor","densityOffset","density_offset","sampling","topSlide","top_slide","bottomSlide","bottom_slide","terrainShaper","terrain_shaper","useSimplexSurfaceNoise","simplex_surface_noise","randomDensityOffset","random_density_offset","islandNoiseOverride","island_noise_override","isAmplified","amplified","useLegacyRandom","use_legacy_random","settings","blendedNoise","temperatureNoise","humidityNoise","continentalnessNoise","erosionNoise","weirdnessNoise","offsetNoise","jaggedNoise","shaper","createNoiseInterpolator","calculateBaseNoise","point","getTemperature","getHumidity","computeDimensionDensity","sampleJaggedNoise","applySlide","biomeSource","noise","sampler","Xt","octaves","legacyRandomSource","materialRule","updateNoiseAndGenerateBaseState","Ut","minBlockY","getShiftedX","getShiftedZ","getBiome","r4","u4","f3","defaultBlock","seaLevel","defaultFluid","wasm","structures","default_block","default_fluid","bedrockRoofPosition","bedrock_roof_position","bedrockFloorPosition","bedrock_floor_position","sea_level","disableMobGeneration","disable_mob_generation","aquifersEnabled","aquifers_enabled","noiseCavesEnabled","noise_caves_enabled","deepslateEnabled","deepslate_enabled","oreVeinsEnabled","ore_veins_enabled","noodleCavesEnabled","noodle_caves_enabled","legacy_random_source","stronghold","spread","spacing","t5","separation","salt","cachedTextDecoder","ignoreBOM","fatal","cachegetUint8Memory0","ptr","buffer","memory","u32CvtShim","int64CvtShim","BigInt64Array","cachegetInt32Memory0","cachegetFloat64Memory0","Float64Array","WASM_VECTOR_LEN","arg","malloc","cachegetUint32Memory0","t_min","t_max","h_min","h_max","c_min","c_max","e_min","e_max","w_min","w_max","d_min","d_max","ptr0","passArrayF64ToWasm0","__wbindgen_malloc","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","passArray32ToWasm0","len13","biome_parameters","ParameterList","__wrap","t_first","t_amplitudes","h_first","h_amplitudes","c_first","c_amplitudes","e_first","e_amplitudes","w_first","w_amplitudes","s_first","s_amplitudes","low0","high0","climate_sampler","Sampler","instance","klass","x_from","x_to","x_step","y_from","y_to","y_step","z_from","z_to","z_step","retptr","__wbindgen_add_to_stack_pointer","multi_noise","r0","getInt32Memory0","r1","v0","__wbindgen_free","climate_noise","getFloat64Memory0","__destroy_into_raw","__wbg_parameterlist_free","__wbg_sampler_free","async","URL","import_meta","imports","wbg","__wbindgen_throw","arg0","arg1","getStringFromWasm0","Request","fetch","module","Response","WebAssembly","instantiateStreaming","headers","arrayBuffer","instantiate","Instance","load","__wbindgen_wasm_module","rfdc_1","circles","refs","refsNew","proto","Date","cloneArray","cloneProto","o22","cur","ArrayBuffer","isView","copyBuffer","clone","a22","rfdcCircles","Buffer","byteOffset","Collections","register","core_12","StringNode2","Reference2","ObjectNode","Opt","forceRange","bounds","allowBinomial","choiceContext","minecraft:alternative","terms","minecraft:block_state_property","block","minecraft:damage_source_properties","predicate","minecraft:entity_properties","entity","minecraft:entity_scores","scores","Range","minecraft:inverted","term","minecraft:killed_by_player","inverse","minecraft:location_check","offsetX","offsetY","offsetZ","minecraft:match_tool","minecraft:random_chance","chance","minecraft:random_chance_with_looting","looting_multiplier","minecraft:reference","minecraft:table_bonus","enchantment","chances","minecraft:time_check","period","minecraft:weather_check","raining","thundering","Common_12","StateChoice","item","tag","durability","potion","nbt","enchantments","levels","fluid","position","feature","dimension","light","LocationFields","stat","minecraft:mined","minecraft:crafted","minecraft:used","minecraft:broken","minecraft:picked_up","minecraft:dropped","minecraft:killed","minecraft:killed_by","minecraft:custom","gamemode","advancements","recipes","stats","amplifier","duration","ambient","visible","absolute","horizontal","team","is_on_fire","is_sneaking","is_sprinting","is_swimming","is_baby","equipment","player","effects","is_explosion","is_fire","is_magic","is_projectile","is_lightning","bypasses_armor","bypasses_invulnerability","bypasses_magic","source_entity","direct_entity","dealt","taken","blocked","Advancement","core_1","Common_1","Predicates_1","display","icon","title","description","background","frame","show_toast","announce_to_chat","hidden","parent","criteria","requirements","rewards","function","loot","experience","requirement","trigger","conditions","minecraft:bee_nest_destroyed","num_bees_inside","minecraft:bred_animals","partner","child","minecraft:brewed_potion","minecraft:changed_dimension","minecraft:channeled_lightning","victims","minecraft:construct_beacon","minecraft:consume_item","minecraft:cured_zombie_villager","villager","zombie","minecraft:effects_changed","minecraft:enter_block","minecraft:enchanted_item","minecraft:entity_hurt_player","damage","minecraft:entity_killed_player","killing_blow","minecraft:filled_bucket","minecraft:fishing_rod_hooked","minecraft:hero_of_the_village","minecraft:inventory_changed","slots","empty","occupied","full","items","minecraft:item_durability_changed","delta","minecraft:killed_by_crossbow","unique_entity_types","minecraft:levitation","minecraft:location","minecraft:nether_travel","entered","exited","minecraft:placed_block","minecraft:player_hurt_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","recipe","minecraft:safely_harvest_honey","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:shot_crossbow","minecraft:summoned_entity","minecraft:tame_animal","minecraft:used_ender_eye","minecraft:used_totem","minecraft:villager_trade","minecraft:voluntary_exile","Condition","ObjectOrList","condition","ConditionCases","LootContext","requires","allows","LootTable","LootContext_1","functionsAndConditions","functions","contextMap","collectionID","getNode","getAvailableOptions","providedContext","tableType","LootTableTypes","conditionSwtichNode","compileSwitchNode","LootConditions","functionSwtichNode","LootFunctions","entitySourceSwtichNode","LootEntitySources","copySourceSwtichNode","LootCopySources","pools","rolls","bonus_rolls","weightMod","weight","quality","minecraft:alternatives","minecraft:dynamic","minecraft:group","minecraft:item","minecraft:loot_table","minecraft:sequence","minecraft:tag","expand","minecraft:apply_bonus","formula","bonusMultiplier","probability","minecraft:copy_name","minecraft:copy_nbt","ops","getter","minecraft:copy_state","minecraft:enchant_randomly","minecraft:enchant_with_levels","treasure","minecraft:exploration_map","destination","decoration","zoom","search_radius","skip_existing_chunks","minecraft:fill_player_head","minecraft:limit_count","minecraft:looting_enchant","minecraft:set_attributes","modifiers","minecraft:set_contents","minecraft:set_count","minecraft:set_damage","minecraft:set_loot_table","minecraft:set_lore","lore","minecraft:set_name","minecraft:set_nbt","minecraft:set_stew_effect","attribute","amount","operation","slot","StringOrList","PackMcmeta","pack","pack_format","Recipe","minecraft:crafting_shaped","group","pattern","minecraft:crafting_shapeless","ingredients","minecraft:smelting","ingredient","cookingtime","minecraft:blasting","minecraft:smoking","minecraft:campfire_cooking","minecraft:stonecutting","minecraft:smithing","addition","Tags","TagBase","required","TextComponent","getSimpleString","parseFloat","isFinite","CommonFields","bold","italic","underlined","strikethrough","obfuscated","insertion","clickEvent","action","change_page","copy_to_clipboard","open_file","open_url","run_command","leadingSlash","allowPartial","suggest_command","hoverEvent","show_text","show_item","show_entity","translate","with","score","isScoreHolder","objective","selector","keybind","interpret","schemas","Advancement_1","Condition_1","LootTable_1","PackMcmeta_1","Recipe_1","Tags_1","TextComponent_1","initCommonSchemas","initPredicatesSchemas","initAdvancementSchemas","initConditionSchemas","initLootTableSchemas","initPackMcmetaSchemas","initRecipeSchemas","initTagsSchemas","initTextComponentSchemas","__setModuleDefault","__importStar","mod","__esModule","lib","Collections_1","schemas_1","CollectionRegistry","initCollections","getSchemas_1","SchemaRegistry","initSchemas","ultrawarm","natural","piglin_safe","respawn_anchor_works","bed_works","has_raids","has_skylight","has_ceiling","coordinate_scale","ambient_light","logical_height","infiniburn","maxSpread","ObjectOrPreset","minecraft:overworld","DefaultDimensionType","minecraft:the_nether","shrunk","fixed_time","minecraft:the_end","DefaultNoiseSettings","minecraft:nether","minecraft:end","minecraft:amplified","minecraft:caves","minecraft:floating_islands","EntityPredicate","minecraft:item_used_on_block","minecraft:player_generates_container_loot","loot_table","minecraft:player_interacted_with_entity","minecraft:target_hit","projectile","shooter","signal_strength","minecraft:thrown_item_picked_up_by_entity","Dimension","NoPreset","DimensionTypePresets","generator","minecraft:noise","NoiseSettingsPresets","biome_source","minecraft:fixed","minecraft:multi_noise","preset","altitude_noise","temperature_noise","humidity_noise","weirdness_noise","biomes","minecraft:checkerboard","scale","minecraft:vanilla_layered","large_biomes","legacy_biome_init_layer","minecraft:flat","lakes","features","layers","altitude","DimensionType","Predicates","smokey","vehicle","targeted_entity","fishing_hook","in_open_water","font","contents","Biome","surface_builder","downfall","precipitation","temperature_modifier","player_spawn_friendly","creature_spawn_probability","sky_color","fog_color","water_color","water_fog_color","grass_color","foliage_color","grass_color_modifier","ambient_sound","mood_sound","sound","tick_delay","block_search_extent","additions_sound","tick_chance","music","min_delay","max_delay","replace_current_music","particle","starts","spawners","minCount","maxCount","spawn_costs","energy_budget","charge","carvers","Carver","Decorator","RangeConfig","maximum","bottom_offset","top_offset","ChanceConfig","CountConfig","UniformInt","minecraft:carving_mask","step","minecraft:chance","minecraft:count","minecraft:count_extra","extra_count","extra_chance","minecraft:count_multilayer","minecraft:count_noise","noise_level","below_noise","above_noise","minecraft:count_noise_biased","noise_to_count_ratio","noise_factor","noise_offset","minecraft:decorated","outer","inner","minecraft:depth_average","baseline","minecraft:fire","minecraft:glowstone","minecraft:lava_lake","minecraft:range","minecraft:range_biased","minecraft:range_very_biased","minecraft:water_lake","ProcessorList","processors","processor_type","rules","location_predicate","predicate_type","input_predicate","minecraft:block_age","mossiness","minecraft:block_ignore","blocks","minecraft:block_rot","integrity","minecraft:gravity","heightmap","minecraft:rule","position_predicate","output_state","output_nbt","posTestFields","min_dist","max_dist","min_chance","max_chance","minecraft:axis_aligned_linear_pos","axis","minecraft:linear_pos","minecraft:block_match","minecraft:blockstate_match","block_state","minecraft:random_block_match","minecraft:random_blockstate_match","minecraft:tag_match","Feature","RandomPatchConfig","can_replace","project","need_water","xspread","yspread","zspread","tries","state_provider","block_placer","whitelist","blacklist","DiskConfig","radius","half_height","targets","HugeMushroomConfig","cap_provider","stem_provider","foliage_radius","OreConfig","Feature2","minecraft:bamboo","minecraft:basalt_columns","reach","minecraft:block_pile","decorator","minecraft:delta_feature","rim","rim_size","minecraft:disk","minecraft:emerald_ore","minecraft:end_gateway","exit","minecraft:end_spike","crystal_invulnerable","crystal_beam_target","spikes","centerX","centerZ","guarded","minecraft:fill_layer","minecraft:flower","minecraft:forest_rock","minecraft:huge_brown_mushroom","minecraft:huge_fungus","hat_state","decor_state","stem_state","valid_base_block","planted","minecraft:huge_red_mushroom","minecraft:ice_patch","minecraft:iceberg","minecraft:lake","minecraft:nether_forest_vegetation","minecraft:netherrack_replace_blobs","minecraft:no_bonemeal_flower","minecraft:no_surface_ore","minecraft:ore","minecraft:random_patch","minecraft:random_boolean_selector","feature_false","feature_true","minecraft:random_selector","minecraft:sea_pickle","minecraft:seagrass","minecraft:simple_block","to_place","place_on","place_in","place_under","minecraft:simple_random_selector","minecraft:spring_feature","rock_count","hole_count","requires_block_below","valid_blocks","minecraft:tree","max_water_depth","ignore_vines","minimum_size","trunk_provider","leaves_provider","trunk_placer","base_height","height_rand_a","height_rand_b","foliage_placer","minecraft:blob_foliage_placer","minecraft:bush_foliage_placer","minecraft:fancy_foliage_placer","minecraft:jungle_foliage_placer","minecraft:mega_pine_foliage_placer","crown_height","minecraft:pine_foliage_placer","minecraft:spruce_foliage_placer","trunk_height","decorators","minecraft:alter_ground","provider","minecraft:beehive","minecraft:cocoa","min_clipped_height","minecraft:two_layers_feature_size","lower_size","upper_size","minecraft:three_layers_feature_size","upper_limit","middle_size","minecraft:rotated_block_provider","minecraft:simple_state_provider","minecraft:weighted_state_provider","minecraft:column_placer","min_size","extra_size","NoiseSettings","StructureFeature","templatePoolConfig","start_pool","minecraft:bastion_remnant","minecraft:buried_treasure","minecraft:mineshaft","minecraft:ocean_ruin","biome_temp","large_probability","cluster_probability","minecraft:pillager_outpost","minecraft:ruined_portal","portal_type","minecraft:shipwreck","is_beached","minecraft:village","SurfaceBuilder","top_material","under_material","underwater_material","snowy","TemplatePool","Processors","elements","element_type","projection","minecraft:feature_pool_element","minecraft:legacy_single_pool_element","minecraft:list_pool_element","minecraft:single_pool_element","worldgen","Biome_1","Carver_1","Decorator_1","Feature_1","NoiseSettings_1","ProcessorList_1","StructureFeature_1","SurfaceBuilder_1","TemplatePool_1","initBiomeSchemas","initCarverSchemas","initDecoratorSchemas","initFeatureSchemas","initNoiseSettingsSchemas","initProcessorListSchemas","initStructureFeatureSchemas","initSurfaceBuilderSchemas","initTemplatePoolSchemas","WorldSettings","generate_features","bonus_chest","dimensions","Dimension_1","DimensionType_1","worldgen_1","WorldSettings_1","initDimensionTypeSchemas","initDimensionSchemas","initWorldgenSchemas","initWorldSettingsSchemas","minecraft:lightning_strike","lightning","bystander","minecraft:using_item","Bounds","ObjectWithType","directType","directPath","directDefault","objectDefault","defaultCase","minecraft:constant","minecraft:uniform","minecraft:binomial","minecraft:score","minecraft:context","minecraft:storage","min_inclusive","max_exclusive","minecraft:clamped_normal","mean","deviation","minecraft:trapezoid","plateau","FloatProvider","max_inclusive","minecraft:biased_to_bottom","minecraft:clamped","IntProvider","above_bottom","below_top","minecraft:very_biased_to_bottom","entitySourceNode","minecraft:value_check","range","copySourceNode","minecraft:set_banner_pattern","patterns","append","minecraft:set_enchantments","ItemModifier","FunctionCases","conditionIDSwtichNode","functionIDSwtichNode","_p","looking_at","stepping_on","passenger","lightning_bolt","blocks_set_on_fire","entity_struck","separator","CanyonConfig","vertical_rotation","shape","distance_factor","thickness","width_smoothness","horizontal_radius_factor","vertical_radius_default_factor","vertical_radius_center_factor","CaveConfig","horizontal_radius_multiplier","vertical_radius_multiplier","floor_level","lava_level","debug_settings","debug_mode","air_state","water_state","lava_state","barrier_state","minecraft:canyon","minecraft:cave","minecraft:nether_cave","minecraft:cave_surface","surface","floor_to_ceiling_search_range","minecraft:heightmap","minecraft:heightmap_spread_double","minecraft:water_depth_threshold","minecraft:protected_blocks","TargetBlockState","discard_chance_on_air_exposure","VegetationPatchConfig","vertical_range","extra_bottom_block_chance","extra_edge_column_chance","vegetation_chance","xz_radius","replaceable","ground_state","vegetation_feature","minecraft:decorated_flower","minecraft:dripstone_cluster","max_stalagmite_stalactite_height_diff","height_deviation","dripstone_block_layer_thickness","density","wetness","chance_of_dripstone_column_at_max_distance_from_center","max_distance_from_edge_affecting_chance_of_dripstone_column","max_distance_from_center_affecting_height_bias","minecraft:fossil","max_empty_corners_allowed","fossil_structures","overlay_structures","fossil_processors","overlay_processors","minecraft:geode","filling_provider","inner_layer_provider","alternate_inner_layer_provider","middle_layer_provider","outer_layer_provider","inner_placements","cannot_replace","invalid_blocks","filling","inner_layer","middle_layer","outer_layer","crack","generate_crack_chance","base_crack_size","crack_point_offset","noise_multiplier","use_potential_placements_chance","use_alternate_layer0_chance","placements_require_layer0_alternate","outer_wall_distance","distribution_points","point_offset","min_gen_offset","max_gen_offset","invalid_blocks_threshold","minecraft:glow_lichen","search_range","chance_of_spreading","can_place_on_floor","can_place_on_ceiling","can_place_on_wall","can_be_placed_on","minecraft:growing_plant","direction","allow_water","height_distribution","body_provider","head_provider","minecraft:large_dripstone","column_radius","height_scale","max_column_radius_to_cave_height_ratio","stalactite_bluntness","stalagmite_bluntness","wind_speed","min_radius_for_wind","min_bluntness_for_wind","minecraft:replace_single_block","minecraft:root_system","required_vertical_space_for_tree","root_radius","root_placement_attempts","root_column_max_height","hanging_root_radius","hanging_roots_vertical_span","hanging_root_placement_attempts","allowed_vertical_water_for_tree","root_replaceable","root_state_provider","hanging_root_state_provider","minecraft:scattered_ore","minecraft:small_dripstone","max_placements","empty_space_search_radius","max_offset_from_origin","chance_of_taller_dripstone","force_dirt","dirt_provider","sapling_provider","foliage_provider","minecraft:bending_trunk_placer","bend_length","min_height_for_leaves","minecraft:random_spread_foliage_placer","foliage_height","leaf_placement_attempts","minecraft:underwater_magma","floor_search_range","placement_radius_around_floor","placement_probability_per_valid_position","minecraft:vegetation_patch","minecraft:waterlogged_vegetation_patch","minecraft:randomized_int_state_provider","property","min_surface_level","minecraft:nether_fossil","ItemModifier_1","initItemModifierSchemas","minecraft:fall_from_height","start_position","minecraft:ride_entity_in_lava","Model","Vec","Texture","ambientocclusion","gui_light","textures","rotation","origin","angle","NumberEnum","rescale","shade","faces","texture","uv","cullface","tintindex","translation","overrides","layer0","BlockDefinition","variants","multipart","when","VariantChildren","uvlock","OR","assets","Model_1","BlockDefinition_1","initBlockDefinitionSchemas","initModelSchemas","DefaultStructureSettings","minecraft:igloo","minecraft:mansion","minecraft:jungle_pyramid","minecraft:stronghold","minecraft:desert_pyramid","minecraft:fortress","minecraft:endcity","minecraft:swamp_hut","minecraft:monument","surface_rule","sequence","minecraft:weighted_list","distribution","minecraft:set_potion","ClimateParameter","minecraft:block_filter","minecraft:environment_scan","direction_of_search","max_steps","target_condition","minecraft:scatter","xz_spread","y_spread","minecraft:surface_relative_threshold","minecraft:block_column","allowed_placement","prioritize_tip","minecraft:pointed_dripstone","chance_of_directional_spread","chance_of_spread_radius2","chance_of_spread_radius3","NoiseProvider","MIN_VALUE","minecraft:dual_noise_provider","variety","InclusiveRange","slow_noise","slow_scale","states","minecraft:noise_threshold_provider","threshold","high_chance","default_state","low_states","high_states","minecraft:noise_provider","minecraft:all_of","predicates","minecraft:any_of","minecraft:matching_blocks","minecraft:matching_fluids","fluids","minecraft:not","minecraft:would_survive","SurfaceRule","minecraft:block","result_state","minecraft:condition","if_true","then_run","minecraft:biome","biome_is","minecraft:noise_threshold","min_threshold","max_threshold","invert","minecraft:stone_depth","surface_type","add_run_depth","minecraft:vertical_gradient","random_name","true_at_and_below","false_at_and_above","minecraft:water","run_depth_multiplier","add_stone_depth","minecraft:y_above","anchor","is_biome","SurfaceRule_1","initSurfaceRuleSchemas","assets_1","initAssetsSchemas","subject","reason","mark2","mark","captureStackTrace","stack","isNothing","cycle","NEGATIVE_INFINITY","sourceKeys","YAMLException","compact","exception","line","column","Mark","getSnippet","indent","snippet","repeat","where","TYPE_CONSTRUCTOR_OPTIONS","YAML_NODE_KINDS","map2","kind","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","int","ch","hasDigits","isOctCode","isDecCode","sign","digits","unshift","isNegativeZero","binary","octal","decimal","hexadecimal","YAML_FLOAT_PATTERN","RegExp","SCIENTIFIC_WITHOUT_DOT","json","POSITIVE_INFINITY","NaN","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","idx","bitlen","tailbits","_hasOwnProperty","_toString","omap","pair","pairKey","pairHasKey","objectKeys","pairs","default_safe","_undefined","esprima","regexp","regexp2","global","multiline","ignoreCase","_function","ast","body","expression","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","lineStart","lineIndent","documents","generateError","directiveHandlers","YAML","major","minor","version","checkLineBreaks","TAG","handle","prefix","tagMap","checkJson","_position","_length","_character","_result","overridableKeys","quantity","isObject","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","tmp","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","char","prev_char","hasLineBreak","hasFoldableLine","shouldTrackWidth","previousLineBreak","plain","isPlainSafe","needIndentIndicator","iskey","dump","chooseScalarStyle","string2","testImplicitResolving","blockHeader","dropEndingNewline","indentString","width","moreIndented","lineRe","nextLF","lastIndex","foldLine","prevMoreIndented","foldString","nextChar","escapeSeq","encodeHex","indentIndicator","clip","breakRe","typeList","block2","detectType","duplicateIndex","duplicate","objectOrArray","objectKey","objectValue","explicitPair","pairBuffer","objectKeyList","generateNextLine","writeNode","arrayLevel","objects","duplicatesIndexes","loader","dumper","safeLoad","safeLoadAll","safeDump","deprecated","jsYaml","displayName","isReactComponent","__f","isPureReactComponent","__u","__R","n4","__O","delete","revealOrder","F","reverse","for","configurable","writable","cancelBubble","defaultPrevented","persist","isPropagationStopped","isDefaultPrevented","nativeEvent","class","multiple","selected","defaultValue","className","$$typeof","performance","now","HowlerGlobal2","init","self2","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","ext","_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","createBuffer","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","num","_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","cache","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","_super","_orientation","stereo","pan","z2","positionX","setTargetAtTime","positionY","positionZ","setPosition","orientation","xUp","yUp","zUp","or","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","esmEntry$1","defaults$5","baseUrl","breaks","extensions","gfm","headerIds","headerPrefix","highlight","langPrefix","mangle","pedantic","renderer","sanitize","sanitizer","smartLists","smartypants","tokenizer","walkTokens","xhtml","defaults","getDefaults","getDefaults$1","changeDefaults","newDefaults","escapeTest","escapeReplace","escapeTestNoEncode","escapeReplaceNoEncode","escapeReplacements","&","<",">","\"","'","getEscapeReplacement","unescapeTest","html","substring","caret","nonWordAndColonTest","originIndependentUrl","baseUrls","justDomain","domain","rtrim$1","relativeBase","suffLen","currChar","helpers","unescape$1","edit","regex","getRegex","cleanUrl","prot","resolveUrl","encodeURI","noopTest","splitCells","tableRow","cells","escaped","trim","rtrim","findClosingBracket","checkSanitizeDeprecation","repeatString","defaults$4","escape$2","cap","link","lexer","inLink","token","tokens","inlineTokens","Tokenizer_1$1","newline","codeBlockStyle","fences","matchIndentToCode","indentToCode","matchIndentInNode","indentInNode","indentCodeCompensation","lang","heading","trimmed","inline","hr","blockquote","blockTokens","istask","ischecked","blankLine","endsWithBlankLine","lines","itemContents","bull","isordered","ordered","itemRegex","trimLeft","nextBulletRegex","trimRight","top","pre","def","align","rows","row","lheading","paragraph","inRawBlock","trimmedUrl","rtrimSlash","lastParenIndex","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","merge$1","block$1","noopTest2","_paragraph","_label","_title","bullet","listItemStart","_comment","inline$1","reflinkSearch","_punctuation","blockSkip","escapedEmSt","_scheme","_email","_attribute","_href","strong","middle","endAst","endUnd","em","_extended_email","Tokenizer$2","defaults$3","Lexer_1$1","inlineQueue","rules2","Lexer","lex","lastToken","cutSrc","lastParagraphClipped","extTokenizer","startBlock","startIndex","tempSrc","tempStart","getStartIndex","errMsg","keepPrevChar","lastIndexOf","codespan","startInline","inlineText","defaults$2","escape$1","Renderer_1$1","infostring","quote","slugger","slug","content","TextRenderer_1$1","Slugger_1$1","seen","originalSlug","isDryRun","occurenceAccumulator","serialize","getNextSafeSlug","dryrun","Renderer$2","TextRenderer$2","Slugger$2","defaults$1","Parser_1$1","textRenderer","Parser","parseInline","cell","itemBody","checkbox","l4","renderers","parser","tablecell","tablerow","listitem","image","Lexer$1","Parser$1","Tokenizer$1","Renderer$1","TextRenderer$1","Slugger$1","callback","marked$1","setOptions","use","childTokens","hasExtensions","prevRenderer","args2","prop","prevTokenizer","lexInline","Renderer","TextRenderer","Tokenizer","Slugger","marked","Lexer2","Parser2","Tokenizer2","Renderer2","TextRenderer2","Slugger2","esmEntry"],"mappings":"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ACA,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,qBAC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,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,g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ACA,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,aACA,SACA,OACA,OACA,OACA,aACA,OACA,SACA,OACA,QACA,QACA,MACA,2BCpkBR1vC,OAAOuC,eAAeuzC,GAAS,aAAc,CAAEx/C,OAAO,mCACrB,EACjC,MAAMy/C,GAASrwC,6BACf,SAAgC6I,EAASO,SAC/B+gC,EAAYkG,GAAOznC,UAAU9S,UAAK,EAAW+S,GAC7CqhC,EAAamG,GAAOtnC,WAAWjT,UAAK,EAAWsT,GAC/Cw3C,EAAkBvQ,GAAO3qC,WAAW,CACtC,CACIhY,KAAM,SACNkL,KAAMy3C,GAAOhG,IAAIF,EAAU,qBAC3BxkC,eAAmBtH,EAAIiC,SAAoF,UAAnD,UAAVrO,EAAE,UAAuB,IAAPoM,OAAgB,EAASA,EAAG0sC,iBAA8B,IAAPzqC,EAAgBA,EAAM,KAE7I,CACI5S,KAAM,OACNkL,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A,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,0BC1WR1vC,OAAOuC,eAAeuzC,GAAS,aAAc,CAAEx/C,OAAO,mCACrB,EACjC,MAAMy/C,GAASrwC,6BACf,SAAgC6I,EAASO,SAC/B+gC,EAAYkG,GAAOznC,UAAU9S,UAAK,EAAW+S,GAC7CqhC,EAAamG,GAAOtnC,WAAWjT,UAAK,EAAWsT,GAC/Cw3C,EAAkBvQ,GAAO3qC,WAAW,CACtC,CACIhY,KAAM,SACNkL,KAAMy3C,GAAOhG,IAAIF,EAAU,qBAC3BxkC,eAAmBtH,EAAIiC,SAAoF,UAAnD,UAAVrO,EAAE,UAAuB,IAAPoM,OAAgB,EAASA,EAAG0sC,iBAA8B,IAAPzqC,EAAgBA,EAAM,KAE7I,CACI5S,KAAM,OACNkL,KAAMy3C,GAAOvsC,SAASqmC,EAAU,cAChCxkC,UAAa,CAAC,CACN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"} \ No newline at end of file diff --git a/assets/vendor.f42aafe4.js b/assets/vendor.f42aafe4.js new file mode 100644 index 00000000..ecdc3170 --- /dev/null +++ b/assets/vendor.f42aafe4.js @@ -0,0 +1,37 @@ +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=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function b(e,t){for(var r in t)e[r]=t[r];return e}function y(e){var t=e.parentNode;t&&t.removeChild(e)}function v(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?x(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 H(e,t){return e.index=t,e.rank=function(e){return e.props.default?0:(t=e.props.path,W(t).map(Z).join(""));var t}(e),e.props}function W(e){return e.replace(/(^\/+|\/+$)/g,"").split("/")}function Z(e){return":"==e.charAt(0)?1+"*+?".indexOf(e.charAt(e.length-1))||4:5}var G=null,K=[],Y=[],V={};function Q(){var e;return""+((e=G&&G.location?G.location:G&&G.getCurrentLocation?G.getCurrentLocation():"undefined"!=typeof location?location:V).pathname||"")+(e.search||"")}function ee(e,t){return void 0===t&&(t=!1),"string"!=typeof e&&e.url&&(t=e.replace,e=e.url),function(e){for(var t=K.length;t--;)if(K[t].canRoute(e))return!0;return!1}(e)&&function(e,t){void 0===t&&(t="push"),G&&G[t]?G[t](e):"undefined"!=typeof history&&history[t+"State"]&&history[t+"State"](null,null,e)}(e,t?"replace":"push"),te(e)}function te(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(){K.push(this),this.updating=!0},t.prototype.componentDidMount=function(){var e=this;G&&(this.unlisten=G.listen((function(t){e.routeTo(""+(t.pathname||"")+(t.search||""))}))),this.updating=!1},t.prototype.componentWillUnmount=function(){"function"==typeof this.unlisten&&this.unlisten(),K.splice(K.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(H).sort(q).map((function(e){var n=J(t,e.props.path,e.props);if(n){if(!1!==r){var i={url:t,matches:n};return X(i,n),delete i.ref,delete i.key,function(e,t,r){var n,i,o,a=arguments,s=b({},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 ve(e){return pe=1,function(e,t,r){var n=ye(le++,2);return n.t=e,n.__c||(n.__=[r?r(t):Fe(void 0,t),function(e){var t=n.t(n.__[0],e);n.__[0]!==t&&(n.__=[t,n.__[1]],n.__c.setState({}))}],n.__c=ue),n.__}(Fe,e)}function xe(e,t){var r=ye(le++,3);!d.__s&&Ee(r.__H,t)&&(r.__=e,r.__H=t,ue.__H.__h.push(r))}function Ne(e){return pe=5,we((function(){return{current:e}}),[])}function we(e,t){var r=ye(le++,7);return Ee(r.__H,t)&&(r.__=e(),r.__H=t,r.__h=e),r.__}function ke(e,t){return pe=8,we((function(){return e}),t)}function Oe(e){var t=ye(le++,10),r=ve();return t.__=e,ue.componentDidCatch||(ue.componentDidCatch=function(e){t.__&&t.__(e),r[1](e)}),[r[0],function(){r[1](void 0)}]}function Se(){me.forEach((function(e){if(e.__P)try{e.__H.__h.forEach(De),e.__H.__h.forEach(Ce),e.__H.__h=[]}catch(t){e.__H.__h=[],d.__e(t,e.__v)}})),me=[]}d.__b=function(e){ue=null,he&&he(e)},d.__r=function(e){fe&&fe(e),le=0;var t=(ue=e.__c).__H;t&&(t.__h.forEach(De),t.__h.forEach(Ce),t.__h=[])},d.diffed=function(e){_e&&_e(e);var t=e.__c;t&&t.__H&&t.__H.__h.length&&(1!==me.push(t)&&de===d.requestAnimationFrame||((de=d.requestAnimationFrame)||function(e){var t,r=function(){clearTimeout(n),Ae&&cancelAnimationFrame(t),setTimeout(e)},n=setTimeout(r,100);Ae&&(t=requestAnimationFrame(r))})(Se)),ue=void 0},d.__c=function(e,t){t.some((function(e){try{e.__h.forEach(De),e.__h=e.__h.filter((function(e){return!e.__||Ce(e)}))}catch(r){t.some((function(e){e.__h&&(e.__h=[])})),t=[],d.__e(r,e.__v)}})),ge&&ge(e,t)},d.unmount=function(e){be&&be(e);var t=e.__c;if(t&&t.__H)try{t.__H.__.forEach(De)}catch(r){d.__e(r,t.__v)}};var Ae="function"==typeof requestAnimationFrame;function De(e){var t=ue;"function"==typeof e.__c&&e.__c(),ue=t}function Ce(e){var t=ue;e.__c=e.__(),ue=t}function Ee(e,t){return!e||e.length!==t.length||t.some((function(t,r){return t!==e[r]}))}function Fe(e,t){return"function"==typeof t?t(e):t}var Be="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},Me={},je={},Te={};Object.defineProperty(Te,"__esModule",{value:!0}),Te.ModelPath=Te.Path=Te.relativePath=void 0,Te.relativePath=function(e,t){return t.reduce(((e,t)=>"pop"===t?e.pop():e.push(t.push)),e)};class Ie{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 Ie(this.modelArr.slice(e,t),this.contextArr)}shift(){return new Ie(this.modelArr.slice(1),this.contextArr)}pop(){return new Ie(this.modelArr.slice(0,-1),this.contextArr)}push(e){return this.modelPush(e).contextPush(e)}modelPush(e){return new Ie([...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 Ie([...this.modelArr],[...this.contextArr,t])}copy(){return new Ie([...this.modelArr],[...this.contextArr])}getArray(){return this.modelArr}withModel(e){return new Pe(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)}}Te.Path=Ie;class Pe extends Ie{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 Pe(this.model,super.slice(e,t))}shift(){return new Pe(this.model,super.shift())}pop(){return new Pe(this.model,super.pop())}push(e){return this.modelPush(e).contextPush(e)}modelPush(e){return new Pe(this.model,super.modelPush(e))}contextPush(e){return new Pe(this.model,super.contextPush(e))}copy(){return new Pe(this.model,super.copy())}}Te.ModelPath=Pe;var Le={};Object.defineProperty(Le,"__esModule",{value:!0}),Le.Errors=void 0;class Re{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}}Le.Errors=Re;var ze={};function Ue(e){return e.replace(/(\\|")/g,"\\$1")}Object.defineProperty(ze,"__esModule",{value:!0}),ze.hexId=ze.quoteString=ze.escapeString=void 0,ze.escapeString=Ue,ze.quoteString=function(e){return`"${Ue(e)}"`};const $e=e=>("0"+e.toString(16)).substr(-2);ze.hexId=function(e=12){var t=new Uint8Array(e/2);return window.crypto.getRandomValues(t),Array.from(t,$e).join("")},Object.defineProperty(je,"__esModule",{value:!0}),je.DataModel=void 0;const Xe=Te,Je=Le,qe=ze;class He{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?He.wrapLists(a):a,this.listeners=[],this.errors=new Je.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:qe.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:qe.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:qe.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}}je.DataModel=He;var We,Ze={};We=Ze,Object.defineProperty(We,"__esModule",{value:!0}),We.Keep=We.Opt=We.Has=We.Mod=We.Base=void 0,We.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:()=>[]},We.Mod=(e,t)=>s(s({},e),"function"==typeof t?t(e):t),We.Has=(e,t)=>We.Mod(t,{enabled:t=>void 0!==t.push(e).get()}),We.Opt=function(e){return c(s({},e),{optional:()=>!0})},We.Keep=function(e){return c(s({},e),{keep:()=>!0})};var Ge={};Object.defineProperty(Ge,"__esModule",{value:!0}),Ge.BooleanNode=void 0;const Ke=je,Ye=Ze;Ge.BooleanNode=()=>c(s({},Ye.Base),{type:()=>"boolean",default:()=>!1,suggest:()=>["false","true"],validate(e,t,r,n){return n.loose&&"boolean"!=typeof t&&(t=n.wrapLists?Ke.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 Ve={},Qe={};Object.defineProperty(Qe,"__esModule",{value:!0}),Qe.ListNode=void 0;const et=je,tt=Ze;Qe.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({},tt.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?et.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 rt={};Object.defineProperty(rt,"__esModule",{value:!0}),rt.SwitchNode=void 0;const nt=Ze;rt.SwitchNode=e=>c(s({},nt.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=Qe,r=rt;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]]}}])}(Ve);var it={};Object.defineProperty(it,"__esModule",{value:!0}),it.MapNode=void 0;const ot=Ze,at=je;it.MapNode=(e,t,r)=>c(s({},ot.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?at.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 st={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.NumberEnum=e.NumberNode=void 0;const t=Me,r=je,n=Ze;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)})))}(st);var ct={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ObjectNode=e.Case=e.Switch=void 0;const t=Ze,r=Te,a=Le,u=ze,d=je;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)}})}}(ct);var lt={};Object.defineProperty(lt,"__esModule",{value:!0}),lt.Reference=void 0,lt.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 ut={};Object.defineProperty(ut,"__esModule",{value:!0}),ut.StringNode=void 0;const dt=Ze,pt=ze,mt=je,ht=e=>{var t;return!!(null===(t=e)||void 0===t?void 0:t.enum)},ft=e=>{var t;return!!(null===(t=e)||void 0===t?void 0:t.validator)};ut.StringNode=(e,t)=>{const r=ht(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({},dt.Base),{type:()=>"string",default:()=>"",validate(e,n,i,o){if(o.loose&&"string"!=typeof n&&(n=(o.wrapLists?mt.DataModel.wrapLists(this.default()):this.default())||void 0),"string"!=typeof n)return i.add(e,"error.expected_string"),n;if(ft(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(ht(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(pt.quoteString),validationOption:()=>ft(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 _t={};Object.defineProperty(_t,"__esModule",{value:!0});var gt={};Object.defineProperty(gt,"__esModule",{value:!0}),gt.CollectionRegistry=gt.SchemaRegistry=void 0;gt.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}};gt.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 bt={};Object.defineProperty(bt,"__esModule",{value:!0}),function(e){var t=Be&&Be.__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=Be&&Be.__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(je,e),r(Te,e),r(Le,e),r(Ze,e),r(Ge,e),r(Ve,e),r(Qe,e),r(it,e),r(st,e),r(ct,e),r(lt,e),r(ut,e),r(rt,e),r(_t,e),r(gt,e),r(bt,e)}(Me);function yt(e){let t=e.length;for(;--t>=0;)e[t]=0}const vt=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]),xt=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]),Nt=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),wt=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),kt=new Array(576);yt(kt);const Ot=new Array(60);yt(Ot);const St=new Array(512);yt(St);const At=new Array(256);yt(At);const Dt=new Array(29);yt(Dt);const Ct=new Array(30);function Et(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 Ft,Bt,Mt;function jt(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}yt(Ct);const Tt=e=>e<256?St[e]:St[256+(e>>>7)],It=(e,t)=>{e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255},Pt=(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<{Pt(e,r[2*t],r[2*t+1])},Rt=(e,t)=>{let r=0;do{r|=1&e,e>>>=1,r<<=1}while(--t>0);return r>>>1},zt=(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]=Rt(n[t]++,t))}},Ut=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},$t=e=>{e.bi_valid>8?It(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},Xt=(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?Lt(e,i,t):(o=At[i],Lt(e,o+256+1,t),a=vt[o],0!==a&&(i-=Dt[o],Pt(e,i,a)),n--,o=Tt(n),Lt(e,o,r),a=xt[o],0!==a&&(n-=Ct[o],Pt(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--)Jt(e,r,a);c=o;do{a=e.heap[1],e.heap[1]=e.heap[e.heap_len--],Jt(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++,Jt(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),zt(r,l,e.bl_count)},Wt=(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{Pt(e,0+(n?1:0),3),((e,t,r,n)=>{$t(e),n&&(It(e,r),It(e,~r)),e.pending_buf.set(e.window.subarray(t,t+r),e.pending),e.pending+=r})(e,t,r,!0)};var Yt={_tr_init:e=>{Gt||((()=>{let e,t,r,n,i;const o=new Array(16);for(r=0,n=0;n<28;n++)for(Dt[n]=r,e=0;e<1<>=7;n<30;n++)for(Ct[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)),Ht(e,e.l_desc),Ht(e,e.d_desc),a=(e=>{let t;for(Wt(e,e.dyn_ltree,e.l_desc.max_code),Wt(e,e.dyn_dtree,e.d_desc.max_code),Ht(e,e.bl_desc),t=18;t>=3&&0===e.bl_tree[2*wt[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?Kt(e,t,r,n):4===e.strategy||o===i?(Pt(e,2+(n?1:0),3),qt(e,kt,Ot)):(Pt(e,4+(n?1:0),3),((e,t,r,n)=>{let i;for(Pt(e,t-257,5),Pt(e,r-1,5),Pt(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*(At[r]+256+1)]++,e.dyn_dtree[2*Tt(t)]++),e.last_lit===e.lit_bufsize-1),_tr_align:e=>{Pt(e,2,3),Lt(e,256,kt),(e=>{16===e.bi_valid?(It(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 Vt=(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 Qt=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 er=(e,t,r,n)=>{const i=Qt,o=n+r;e^=-1;for(let a=n;a>>8^i[255&(e^t[a])];return-1^e},tr={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"},rr={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:nr,_tr_stored_block:ir,_tr_flush_block:or,_tr_tally:ar,_tr_align:sr}=Yt,{Z_NO_FLUSH:cr,Z_PARTIAL_FLUSH:lr,Z_FULL_FLUSH:ur,Z_FINISH:dr,Z_BLOCK:pr,Z_OK:mr,Z_STREAM_END:hr,Z_STREAM_ERROR:fr,Z_DATA_ERROR:_r,Z_BUF_ERROR:gr,Z_DEFAULT_COMPRESSION:br,Z_FILTERED:yr,Z_HUFFMAN_ONLY:vr,Z_RLE:xr,Z_FIXED:Nr,Z_DEFAULT_STRATEGY:wr,Z_UNKNOWN:kr,Z_DEFLATED:Or}=rr,Sr=(e,t)=>(e.msg=tr[t],t),Ar=e=>(e<<1)-(e>4?9:0),Dr=e=>{let t=e.length;for(;--t>=0;)e[t]=0};let Cr=(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))},Fr=(e,t)=>{or(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Er(e.strm)},Br=(e,t)=>{e.pending_buf[e.pending++]=t},Mr=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t},jr=(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=Vt(e.adler,t,i,r):2===e.state.wrap&&(e.adler=er(e.adler,t,i,r)),e.next_in+=i,e.total_in+=i,i)},Tr=(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},Ir=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=jr(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=Cr(e,e.ins_h,e.window[a+1]);e.insert&&(e.ins_h=Cr(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)},Pr=(e,t)=>{let r,n;for(;;){if(e.lookahead<262){if(Ir(e),e.lookahead<262&&t===cr)return 1;if(0===e.lookahead)break}if(r=0,e.lookahead>=3&&(e.ins_h=Cr(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=Tr(e,r)),e.match_length>=3)if(n=ar(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=Cr(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=Cr(e,e.ins_h,e.window[e.strstart+1]);else n=ar(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(Fr(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<2?e.strstart:2,t===dr?(Fr(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(Fr(e,!1),0===e.strm.avail_out)?1:2},Lr=(e,t)=>{let r,n,i;for(;;){if(e.lookahead<262){if(Ir(e),e.lookahead<262&&t===cr)return 1;if(0===e.lookahead)break}if(r=0,e.lookahead>=3&&(e.ins_h=Cr(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=ar(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=Cr(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&&(Fr(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if(n=ar(e,0,e.window[e.strstart-1]),n&&Fr(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=ar(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,t===dr?(Fr(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(Fr(e,!1),0===e.strm.avail_out)?1:2};function Rr(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 zr=[new Rr(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(Ir(e),0===e.lookahead&&t===cr)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,Fr(e,!1),0===e.strm.avail_out))return 1;if(e.strstart-e.block_start>=e.w_size-262&&(Fr(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===dr?(Fr(e,!0),0===e.strm.avail_out?3:4):(e.strstart>e.block_start&&(Fr(e,!1),e.strm.avail_out),1)})),new Rr(4,4,8,4,Pr),new Rr(4,5,16,8,Pr),new Rr(4,6,32,32,Pr),new Rr(4,4,16,16,Lr),new Rr(8,16,32,32,Lr),new Rr(8,16,128,128,Lr),new Rr(8,32,128,256,Lr),new Rr(32,128,258,1024,Lr),new Rr(32,258,258,4096,Lr)];function Ur(){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=Or,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),Dr(this.dyn_ltree),Dr(this.dyn_dtree),Dr(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),Dr(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),Dr(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 $r=e=>{if(!e||!e.state)return Sr(e,fr);e.total_in=e.total_out=0,e.data_type=kr;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=cr,nr(t),mr},Xr=e=>{const t=$r(e);var r;return t===mr&&((r=e.state).window_size=2*r.w_size,Dr(r.head),r.max_lazy_match=zr[r.level].max_lazy,r.good_match=zr[r.level].good_length,r.nice_match=zr[r.level].nice_length,r.max_chain_length=zr[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},Jr=(e,t,r,n,i,o)=>{if(!e)return fr;let a=1;if(t===br&&(t=6),n<0?(a=0,n=-n):n>15&&(a=2,n-=16),i<1||i>9||r!==Or||n<8||n>15||t<0||t>9||o<0||o>Nr)return Sr(e,fr);8===n&&(n=9);const s=new Ur;return e.state=s,s.strm=e,s.wrap=a,s.gzhead=null,s.w_bits=n,s.w_size=1<Jr(e,t,Or,15,8,wr),deflateInit2:Jr,deflateReset:Xr,deflateResetKeep:$r,deflateSetHeader:(e,t)=>e&&e.state?2!==e.state.wrap?fr:(e.state.gzhead=t,mr):fr,deflate:(e,t)=>{let r,n;if(!e||!e.state||t>pr||t<0)return e?Sr(e,fr):fr;const i=e.state;if(!e.output||!e.input&&0!==e.avail_in||666===i.status&&t!==dr)return Sr(e,0===e.avail_out?gr:fr);i.strm=e;const o=i.last_flush;if(i.last_flush=t,42===i.status)if(2===i.wrap)e.adler=0,Br(i,31),Br(i,139),Br(i,8),i.gzhead?(Br(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)),Br(i,255&i.gzhead.time),Br(i,i.gzhead.time>>8&255),Br(i,i.gzhead.time>>16&255),Br(i,i.gzhead.time>>24&255),Br(i,9===i.level?2:i.strategy>=vr||i.level<2?4:0),Br(i,255&i.gzhead.os),i.gzhead.extra&&i.gzhead.extra.length&&(Br(i,255&i.gzhead.extra.length),Br(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(e.adler=er(e.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=69):(Br(i,0),Br(i,0),Br(i,0),Br(i,0),Br(i,0),Br(i,9===i.level?2:i.strategy>=vr||i.level<2?4:0),Br(i,3),i.status=113);else{let t=Or+(i.w_bits-8<<4)<<8,r=-1;r=i.strategy>=vr||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,Mr(i,t),0!==i.strstart&&(Mr(i,e.adler>>>16),Mr(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=er(e.adler,i.pending_buf,i.pending-r,r)),Er(e),r=i.pending,i.pending!==i.pending_buf_size));)Br(i,255&i.gzhead.extra[i.gzindex]),i.gzindex++;i.gzhead.hcrc&&i.pending>r&&(e.adler=er(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=er(e.adler,i.pending_buf,i.pending-r,r)),Er(e),r=i.pending,i.pending===i.pending_buf_size)){n=1;break}n=i.gzindexr&&(e.adler=er(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=er(e.adler,i.pending_buf,i.pending-r,r)),Er(e),r=i.pending,i.pending===i.pending_buf_size)){n=1;break}n=i.gzindexr&&(e.adler=er(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&&Er(e),i.pending+2<=i.pending_buf_size&&(Br(i,255&e.adler),Br(i,e.adler>>8&255),e.adler=0,i.status=113)):i.status=113),0!==i.pending){if(Er(e),0===e.avail_out)return i.last_flush=-1,mr}else if(0===e.avail_in&&Ar(t)<=Ar(o)&&t!==dr)return Sr(e,gr);if(666===i.status&&0!==e.avail_in)return Sr(e,gr);if(0!==e.avail_in||0!==i.lookahead||t!==cr&&666!==i.status){let r=i.strategy===vr?((e,t)=>{let r;for(;;){if(0===e.lookahead&&(Ir(e),0===e.lookahead)){if(t===cr)return 1;break}if(e.match_length=0,r=ar(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(Fr(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===dr?(Fr(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(Fr(e,!1),0===e.strm.avail_out)?1:2})(i,t):i.strategy===xr?((e,t)=>{let r,n,i,o;const a=e.window;for(;;){if(e.lookahead<=258){if(Ir(e),e.lookahead<=258&&t===cr)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=ar(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=ar(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(Fr(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===dr?(Fr(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(Fr(e,!1),0===e.strm.avail_out)?1:2})(i,t):zr[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),mr;if(2===r&&(t===lr?sr(i):t!==pr&&(ir(i,0,0,!1),t===ur&&(Dr(i.head),0===i.lookahead&&(i.strstart=0,i.block_start=0,i.insert=0))),Er(e),0===e.avail_out))return i.last_flush=-1,mr}return t!==dr?mr:i.wrap<=0?hr:(2===i.wrap?(Br(i,255&e.adler),Br(i,e.adler>>8&255),Br(i,e.adler>>16&255),Br(i,e.adler>>24&255),Br(i,255&e.total_in),Br(i,e.total_in>>8&255),Br(i,e.total_in>>16&255),Br(i,e.total_in>>24&255)):(Mr(i,e.adler>>>16),Mr(i,65535&e.adler)),Er(e),i.wrap>0&&(i.wrap=-i.wrap),0!==i.pending?mr:hr)},deflateEnd:e=>{if(!e||!e.state)return fr;const t=e.state.status;return 42!==t&&69!==t&&73!==t&&91!==t&&103!==t&&113!==t&&666!==t?Sr(e,fr):(e.state=null,113===t?Sr(e,_r):mr)},deflateSetDictionary:(e,t)=>{let r=t.length;if(!e||!e.state)return fr;const n=e.state,i=n.wrap;if(2===i||1===i&&42!==n.status||n.lookahead)return fr;if(1===i&&(e.adler=Vt(e.adler,t,r,0)),n.wrap=0,r>=n.w_size){0===i&&(Dr(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,Ir(n);n.lookahead>=3;){let e=n.strstart,t=n.lookahead-2;do{n.ins_h=Cr(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,Ir(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,mr},deflateInfo:"pako deflate (from Nodeca project)"};const Hr=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var Wr=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)Hr(r,t)&&(e[t]=r[t])}}return e},Zr=e=>{let t=0;for(let n=0,i=e.length;n=252?6:Sb>=248?5:Sb>=240?4:Sb>=224?3:Sb>=192?2:1;Kr[254]=Kr[254]=1;var Yr=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},Vr=(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&&Gr)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+Kr[e[r]]>t?r:t};var en=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 tn=Object.prototype.toString,{Z_NO_FLUSH:rn,Z_SYNC_FLUSH:nn,Z_FULL_FLUSH:on,Z_FINISH:an,Z_OK:sn,Z_STREAM_END:cn,Z_DEFAULT_COMPRESSION:ln,Z_DEFAULT_STRATEGY:un,Z_DEFLATED:dn}=rr;function pn(e){this.options=Wr({level:ln,method:dn,chunkSize:16384,windowBits:15,memLevel:8,strategy:un},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 en,this.strm.avail_out=0;let r=qr.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(r!==sn)throw new Error(tr[r]);if(t.header&&qr.deflateSetHeader(this.strm,t.header),t.dictionary){let e;if(e="string"==typeof t.dictionary?Yr(t.dictionary):"[object ArrayBuffer]"===tn.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,r=qr.deflateSetDictionary(this.strm,e),r!==sn)throw new Error(tr[r]);this._dict_set=!0}}pn.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?an:rn,"string"==typeof e?r.input=Yr(e):"[object ArrayBuffer]"===tn.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===nn||o===on)&&r.avail_out<=6)this.onData(r.output.subarray(0,r.next_out)),r.avail_out=0;else{if(i=qr.deflate(r,o),i===cn)return r.next_out>0&&this.onData(r.output.subarray(0,r.next_out)),i=qr.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===sn;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},pn.prototype.onData=function(e){this.chunks.push(e)},pn.prototype.onEnd=function(e){e===sn&&(this.result=Zr(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var mn=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:yn,Z_BLOCK:vn,Z_TREES:xn,Z_OK:Nn,Z_STREAM_END:wn,Z_NEED_DICT:kn,Z_STREAM_ERROR:On,Z_DATA_ERROR:Sn,Z_MEM_ERROR:An,Z_BUF_ERROR:Dn,Z_DEFLATED:Cn}=rr,En=e=>(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24);function Fn(){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 Bn=e=>{if(!e||!e.state)return On;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,Nn},Mn=e=>{if(!e||!e.state)return On;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,Bn(e)},jn=(e,t)=>{let r;if(!e||!e.state)return On;const n=e.state;return t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?On:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=r,n.wbits=t,Mn(e))},Tn=(e,t)=>{if(!e)return On;const r=new Fn;e.state=r,r.window=null;const n=jn(e,t);return n!==Nn&&(e.state=null),n};let In,Pn,Ln=!0;const Rn=e=>{if(Ln){In=new Int32Array(512),Pn=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(bn(1,e.lens,0,288,In,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;bn(2,e.lens,0,32,Pn,0,e.work,{bits:5}),Ln=!1}e.lencode=In,e.lenbits=9,e.distcode=Pn,e.distbits=5},zn=(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.whaveTn(e,15),inflateInit2:Tn,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 On;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=Nn;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=er(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)!==Cn){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=er(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=er(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=er(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=er(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=er(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(Rn(r),r.mode=20,t===xn){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===xn)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=bn(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=bn(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=bn(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===xn)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,mn(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 On;let t=e.state;return t.window&&(t.window=null),e.state=null,Nn},inflateGetHeader:(e,t)=>{if(!e||!e.state)return On;const r=e.state;return 0==(2&r.wrap)?On:(r.head=t,t.done=!1,Nn)},inflateSetDictionary:(e,t)=>{const r=t.length;let n,i,o;return e&&e.state?(n=e.state,0!==n.wrap&&11!==n.mode?On:11===n.mode&&(i=1,i=Vt(i,t,r,0),i!==n.check)?Sn:(o=zn(e,t,r,r),o?(n.mode=31,An):(n.havedict=1,Nn))):On},inflateInfo:"pako inflate (from Nodeca project)"};var $n=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 Xn=Object.prototype.toString,{Z_NO_FLUSH:Jn,Z_FINISH:qn,Z_OK:Hn,Z_STREAM_END:Wn,Z_NEED_DICT:Zn,Z_STREAM_ERROR:Gn,Z_DATA_ERROR:Kn,Z_MEM_ERROR:Yn}=rr;function Vn(e){this.options=Wr({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 en,this.strm.avail_out=0;let r=Un.inflateInit2(this.strm,t.windowBits);if(r!==Hn)throw new Error(tr[r]);if(this.header=new $n,Un.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=Yr(t.dictionary):"[object ArrayBuffer]"===Xn.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(r=Un.inflateSetDictionary(this.strm,t.dictionary),r!==Hn)))throw new Error(tr[r])}Vn.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?qn:Jn,"[object ArrayBuffer]"===Xn.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=Un.inflate(r,a),o===Zn&&i&&(o=Un.inflateSetDictionary(r,i),o===Hn?o=Un.inflate(r,a):o===Kn&&(o=Zn));r.avail_in>0&&o===Wn&&r.state.wrap>0&&0!==e[r.next_in];)Un.inflateReset(r),o=Un.inflate(r,a);switch(o){case Gn:case Kn:case Zn:case Yn:return this.onEnd(o),this.ended=!0,!1}if(s=r.avail_out,r.next_out&&(0===r.avail_out||o===Wn))if("string"===this.options.to){let e=Qr(r.output,r.next_out),t=r.next_out-e,i=Vr(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!==Hn||0!==s){if(o===Wn)return o=Un.inflateEnd(this.strm),this.onEnd(o),this.ended=!0,!0;if(0===r.avail_in)break}}return!0},Vn.prototype.onData=function(e){this.chunks.push(e)},Vn.prototype.onEnd=function(e){e===Hn&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=Zr(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var Qn,ei,ti={exports:{}},ri={exports:{}};Qn="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ei={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&ei.rotl(e,8)|4278255360&ei.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}},ri.exports=ei;var ni={utf8:{stringToBytes:function(e){return ni.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape(ni.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,ti.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 si,ci,li=ti.exports;(ci=si||(si={})).UP="up",ci.DOWN="down",ci.NORTH="north",ci.EAST="east",ci.SOUTH="south",ci.WEST="west";const ui={[si.UP]:[0,1,0],[si.DOWN]:[0,-1,0],[si.NORTH]:[0,0,-1],[si.EAST]:[1,0,0],[si.SOUTH]:[0,0,1],[si.WEST]:[-1,0,0]};var di,pi,mi,hi,fi,_i,gi,bi,yi,vi,xi,Ni,wi,ki,Oi,Si;function Ai(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 ui[e]}}(si||(si={})),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,...si.normal(r))}}(di||(di={})),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}}(pi||(pi={}));class Di{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=Ai(e.value,"Name","string"),r=function(e,t){try{return e()}catch(r){return t}}((()=>Ai(e.value,"Properties","compound")),{}),n=Object.keys(r).reduce(((e,t)=>Object.assign(Object.assign({},e),{[t]:Ai(r,t,"string")})),{});return new Di(t,n)}static fromJson(e){var t,r;const n=null!==(t=pi.readObject(e))&&void 0!==t?t:{},i=null!==(r=pi.readString(n.Name))&&void 0!==r?r:"minecraft:stone",o=pi.readMap(n.Properties,(e=>{var t;return null!==(t=pi.readString(e))&&void 0!==t?t:""}));return new Di(i,o)}}Di.AIR=new Di("minecraft:air");class Ci{constructor(e){this.minY=e,this.storage=Array(Ci.SIZE),this.palette=[Di.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:Di.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}}Ci.WIDTH=16,Ci.SIZE=Ci.WIDTH*Ci.WIDTH*Ci.WIDTH;class Ei{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:Di.AIR}setBlockState(e,t){const[r,n,i]=e,o=this.getSectionIndex(n);let a=this.sections[o];if(null===a){if(t.equals(Di.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 Ci(this.minSection+e)),this.sections[e]}}function Fi(e){return e*e}function Bi(e,t,r){return Math.max(t,Math.min(r,e))}function Mi(e,t,r){return t+e*(r-t)}function ji(e,t,r,n,i,o){return Mi(t,Mi(e,r,n),Mi(e,i,o))}function Ti(e,t,r){return r<0?e:r>1?t:Mi(r,e,t)}function Ii(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}}(mi||(mi={}));class Pi{constructor(e){this.seed=BigInt(0),this.setSeed(e)}fork(){return new Pi(this.nextLong())}setSeed(e){this.seed=e^Pi.MULTIPLIER&Pi.MODULUS_MASK}advance(){this.seed=this.seed*Pi.MULTIPLIER+Pi.INCREMENT&Pi.MODULUS_MASK}consume(e){for(let t=0;t>BigInt(Pi.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^Li.SILVER_RATIO_64,r=t+Li.GOLDEN_RATIO_64&BigInt("0xFFFFFFFFFFFFFFFF");return[Li.mixStafford13(t),Li.mixStafford13(r)]}static rotateLeft(e,t){return e<>BigInt(64)-t}setSeed(e){this.seed=Li.upgradeSeedTo128bit(e)}fork(){return new Li([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=Li.getSeed(e,t,r)^this.seed[0];return new Li([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){var t=this.next()&BigInt(4294967295);if(e){const a=BigInt(e);var r=t*a,n=r&BigInt(4294967295);if(n>BigInt(32);return Number(o)}var a=Number(t);return a>=2147483648&&(a-=4294967296),a}nextFloat(){return Number(this.nextBits(24))*Li.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*Li.DOUBLE_MULTIPLIER}parityConfigString(){return"seedLo: "+this.seed[0]+", seedHi: "+this.seed[1]}}Li.SILVER_RATIO_64=BigInt("7640891576956012809"),Li.GOLDEN_RATIO_64=BigInt("-7046029254386353131"),Li.FLOAT_MULTIPLIER=1/Math.pow(2,24),Li.DOUBLE_MULTIPLIER=11102230246251565e-32;class Ri{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)*Ri.F2,a=Math.floor(e+o),s=e-(a-(r=(a+(n=Math.floor(t+o)))*Ri.G2));let c,l;s>(i=t-(n-r))?(c=1,l=0):(c=0,l=1);const u=s-c+Ri.G2,d=i-l+Ri.G2,p=s-1+2*Ri.G2,m=i-1+2*Ri.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 Ti(a/512,s/512,i)/128}}(hi||(hi={})).fromJson=function(e){var t,r,n,i,o;const a=null!==(t=pi.readObject(e))&&void 0!==t?t:{};return{xzScale:null!==(r=pi.readNumber(a.xz_scale))&&void 0!==r?r:1,yScale:null!==(n=pi.readNumber(a.y_scale))&&void 0!==n?n:1,xzFactor:null!==(i=pi.readNumber(a.xz_factor))&&void 0!==i?i:80,yFactor:null!==(o=pi.readNumber(a.y_factor))&&void 0!==o?o:80}};class Xi{constructor(e,{firstOctave:t,amplitudes:r}){this.first=new Ui(e,t,r),this.second=new Ui(e,t,r);let n=1/0,i=-1/0;for(let a=0;a{var t;return null!==(t=pi.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 Ji(t);const s=null!==(n=pi.readObject(t))&&void 0!==n?n:{},c=new qi(r(s.coordinate)),l=null!==(i=pi.readArray(s.points,(e=>{var t;return null!==(t=pi.readObject(e))&&void 0!==t?t:{}})))&&void 0!==i?i:[];if(0===l.length)return new Ji(0);for(const u of l){const t=null!==(o=pi.readNumber(u.location))&&void 0!==o?o:0,n=e.fromJson(u.value,r),i=null!==(a=pi.readNumber(u.derivative))&&void 0!==a?a:0;c.addPoint(t,n,i)}return c}}(_i||(_i={}));class Ji{constructor(e){this.value=e}apply(){return this.value}toJson(){return this.value}}class qi{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]})))}}}(gi||(gi={})).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=pi.readArray(e,(e=>pi.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 Fi(this.temperature.distance(e.temperature))+Fi(this.humidity.distance(e.humidity))+Fi(this.continentalness.distance(e.continentalness))+Fi(this.erosion.distance(e.erosion))+Fi(this.depth.distance(e.depth))+Fi(this.weirdness.distance(e.weirdness))+Fi(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=pi.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=pi.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}(bi||(bi={}));class Hi{constructor(e){this.biome=e}getBiome(){return this.biome}static fromJson(e){var t,r;const n=null!==(t=pi.readObject(e))&&void 0!==t?t:{},i=null!==(r=pi.readString(n.biome))&&void 0!==r?r:"minecraft:the_void";return new Hi(i)}}class Wi{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=pi.readObject(e))&&void 0!==t?t:{};return new Wi(_i.fromJson(r.offset,this.EXTRACTOR),_i.fromJson(r.factor,this.EXTRACTOR),_i.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)+Wi.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 qi(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 qi(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 qi(this.CONTINENTS).addPoint(.11,0).addPoint(.03,this.buildErosionJaggednessSpline(1,.5,0,0)).addPoint(.65,this.buildErosionJaggednessSpline(1,1,1,0));return new Wi(i,o,a)}static getErosionFactor(e,t){const r=new qi(this.WEIRDNESS).addPoint(-.2,6.3).addPoint(.2,e),n=new qi(this.EROSION).addPoint(-.6,r).addPoint(-.5,new qi(this.WEIRDNESS).addPoint(-.05,6.3).addPoint(.05,2.67)).addPoint(-.35,r).addPoint(-.25,r).addPoint(-.1,new qi(this.WEIRDNESS).addPoint(-.05,2.67).addPoint(.05,6.3)).addPoint(.03,r);if(t){const t=new qi(this.WEIRDNESS).addPoint(0,e).addPoint(.1,.625),r=new qi(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 qi(this.RIDGES).addPoint(-.7,r).addPoint(-.15,1.37),i=new qi(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(Mi(n,.6,1.5),s),l=this.buildMountainRidgeSplineWithPoints(Mi(n,.6,1),s),u=this.buildMountainRidgeSplineWithPoints(n,s),d=this.ridgeSpline(e-.15,.5*n,Mi(.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 qi(this.RIDGES).addPoint(-1,e).addPoint(-.4,m).addPoint(0,r+.07),_=this.ridgeSpline(-.02,o,o,t,r,0),g=new qi(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 qi(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 qi(Wi.WEIRDNESS).addPoint(-.01,.63*e).addPoint(.01,.3*e)}}Wi.GLOBAL_OFFSET=-.50375,Wi.EXTRACTOR=e=>{var t;const r=null!==(t=pi.readString(e))&&void 0!==t?t:"continents";return Wi.extractor(r)},Wi.CONTINENTS=Wi.extractor("continents"),Wi.EROSION=Wi.extractor("erosion"),Wi.WEIRDNESS=Wi.extractor("weirdness"),Wi.RIDGES=Wi.extractor("ridges"),(yi||(yi={})).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}};class Zi{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=Zi.allocateSlice(e.cellCountY,e.cellCountXZ),this.slice1=Zi.allocateSlice(e.cellCountY,e.cellCountXZ)}static allocateSlice(e,t){const r=Array(t+1);for(let n=0;ne.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)}}(vi||(vi={})).create=function(e,t,r){return{offset:e,factor:t,jaggedness:r}},(xi||(xi={})).create=function(e,t,r){const n=t+e.getOffset(t,0,r),i=r+e.getOffset(r,t,0),o=e.getContinentalness(n,i),a=e.getWeirdness(n,i),s=e.getErosion(n,i);return{shiftedX:n,shiftedZ:i,continentalness:o,weirdness:a,erosion:s,terrainInfo:e.getTerrainInfo(n<<2,i<<2,o,a,s)}},(Ni||(Ni={})).fromJson=function(e){var t,r,n,i,o,a,s,c,l,u,d,p;const m=null!==(t=pi.readObject(e))&&void 0!==t?t:{};return{minY:null!==(r=pi.readInt(m.min_y))&&void 0!==r?r:0,height:null!==(n=pi.readInt(m.height))&&void 0!==n?n:256,xzSize:null!==(i=pi.readInt(m.size_horizontal))&&void 0!==i?i:1,ySize:null!==(o=pi.readInt(m.size_vertical))&&void 0!==o?o:1,densityFactor:null!==(a=pi.readNumber(m.density_factor))&&void 0!==a?a:0,densityOffset:null!==(s=pi.readNumber(m.density_offset))&&void 0!==s?s:0,sampling:hi.fromJson(m.sampling),topSlide:wi.fromJson(m.top_slide),bottomSlide:wi.fromJson(m.bottom_slide),terrainShaper:Wi.fromJson(m.terrain_shaper),useSimplexSurfaceNoise:null!==(c=pi.readBoolean(m.simplex_surface_noise))&&void 0!==c&&c,randomDensityOffset:null!==(l=pi.readBoolean(m.random_density_offset))&&void 0!==l&&l,islandNoiseOverride:null!==(u=pi.readBoolean(m.island_noise_override))&&void 0!==u&&u,isAmplified:null!==(d=pi.readBoolean(m.amplified))&&void 0!==d&&d,useLegacyRandom:null!==(p=pi.readBoolean(m.use_legacy_random))&&void 0!==p&&p}},function(e){e.fromJson=function(e){var t,r,n,i;const o=null!==(t=pi.readObject(e))&&void 0!==t?t:{};return{target:null!==(r=pi.readNumber(o.target))&&void 0!==r?r:0,size:null!==(n=pi.readInt(o.size))&&void 0!==n?n:0,offset:null!==(i=pi.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 Ti(e.target,t,n)}}(wi||(wi={}));class Ki{constructor(e,t,r,n,i,o,a=!1){if(this.cellWidth=e,this.cellHeight=t,this.cellCountY=r,this.settings=n,a){const r=new Pi(o),a=n.useLegacyRandom?new Pi(o):r.fork();this.blendedNoise=new $i(a,n.sampling,e,t),r.consume(8),this.temperatureNoise=new Xi(new Pi(o),i.temperature),this.humidityNoise=new Xi(new Pi(o+BigInt(1)),i.humidity),this.continentalnessNoise=new Xi(new Pi(o+BigInt(2)),i.continentalness),this.erosionNoise=new Xi(new Pi(o+BigInt(3)),i.erosion),this.weirdnessNoise=new Xi(new Pi(o+BigInt(4)),i.weirdness),this.offsetNoise=new Xi(new Pi(o+BigInt(5)),i.shift),this.jaggedNoise=new Xi(r.fork(),{firstOctave:-16,amplitudes:[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]})}else{const r=Li.create(o).fork();this.blendedNoise=new $i(r.forkWithHashOf("minecraft:terrain"),n.sampling,e,t),this.temperatureNoise=new Xi(r.forkWithHashOf("minecraft:temperature"),i.temperature),this.humidityNoise=new Xi(r.forkWithHashOf("minecraft:vegetation"),i.humidity),this.continentalnessNoise=new Xi(r.forkWithHashOf("minecraft:continentalness"),i.continentalness),this.erosionNoise=new Xi(r.forkWithHashOf("minecraft:erosion"),i.erosion),this.weirdnessNoise=new Xi(r.forkWithHashOf("minecraft:ridge"),i.weirdness),this.offsetNoise=new Xi(r.forkWithHashOf("minecraft:offset"),i.shift),this.jaggedNoise=new Xi(r.forkWithHashOf("minecraft:jagged"),{firstOctave:-16,amplitudes:[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]})}this.shaper=n.terrainShaper,this.baseNoise=e=>{const t=e.createNoiseInterpolator(((t,r,n)=>this.calculateBaseNoise(t,r,n,e.getTerrainInfo(t>>2,n>>2))));return()=>t.sample()}}sample(e,t,r){const n=e+this.getOffset(e,0,r),i=r+this.getOffset(r,e,0),o=this.getContinentalness(n,i),a=this.getErosion(n,i),s=this.getWeirdness(n,i),c=this.shaper.offset(Wi.point(o,a,s));return this.target(e,t,r,n,i,o,a,s,c)}target(e,t,r,n,i,o,a,s,c){const l=t+this.getOffset(t,r,e),u=this.getTemperature(n,l,i),d=this.getHumidity(n,l,i),p=this.computeDimensionDensity(t<<2)+c;return bi.target(u,d,o,a,p,s)}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)}getTerrainInfo(e,t,r,n,i){const o=Wi.point(r,n,i);return vi.create(this.shaper.offset(o),this.shaper.factor(o),this.shaper.jaggedness(o))}makeBaseNoiseFiller(e,t){const r=this.baseNoise(e);return(e,n,i)=>{let o=r();return o=Bi(.64*o,-1,1),o=o/2-o*o*o/24,o+=t(e,n,i),o>0?null:Di.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),s=n.factor*(n.offset+o+a);i+=s>0?4*s:s}return i=Bi(i,-64,64),i=this.applySlide(i,t/this.cellHeight),i=Bi(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){return(1-e/128)*this.settings.densityFactor+this.settings.densityOffset}applySlide(e,t){const r=t-Math.floor(this.settings.minY/this.cellHeight);return e=wi.apply(this.settings.topSlide,e,this.cellCountY-r),wi.apply(this.settings.bottomSlide,e,r)}}class Yi{constructor(e,t,r){this.biomeSource=t,this.settings=r,this.cellHeight=r.noise.ySize<<2,this.cellWidth=r.noise.xzSize<<2,this.cellCountXZ=Math.floor(16/this.cellWidth),this.cellCountY=Math.floor(r.noise.height/this.cellHeight),this.sampler=new Ki(this.cellWidth,this.cellHeight,this.cellCountY,r.noise,r.octaves,e,r.legacyRandomSource),this.materialRule=yi.fromList([(e,t,r,n)=>e.updateNoiseAndGenerateBaseState(t,r,n)])}fillBiomes(e){const t=Math.max(e.minY,this.settings.noise.minY),r=Math.min(e.maxY,this.settings.noise.minY+this.settings.noise.height),n=Math.floor(t/this.cellHeight);Math.floor((r-t)/this.cellHeight);const i=mi.minBlockX(e.pos),o=mi.minBlockZ(e.pos),a=new Gi(this.cellWidth,this.cellHeight,this.cellCountXZ,this.cellCountY,n,this.sampler,i,o,(()=>0));for(let s=0;s_))}}}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=Math.floor(r/this.cellHeight),o=Math.floor((n-r)/this.cellHeight),a=mi.minBlockX(e.pos),s=mi.minBlockZ(e.pos),c=new Gi(this.cellWidth,this.cellHeight,this.cellCountXZ,this.cellCountY,i,this.sampler,a,s,(()=>0));c.initializeForFirstCellX();for(let l=0;l=0;u-=1){c.selectCellYZ(u,r);for(let o=this.cellHeight-1;o>=0;o-=1){const d=(i+u)*this.cellHeight+o,p=15&d,m=e.getSectionIndex(d);e.getSectionIndex(n.minBlockY)!==m&&(n=e.getOrCreateSection(m));const h=o/this.cellHeight;c.updateForY(h);for(let e=0;e{var t,r,n;return{distance:null!==(t=pi.readInt(e.distance))&&void 0!==t?t:0,spread:null!==(r=pi.readInt(e.spread))&&void 0!==r?r:0,count:null!==(n=pi.readInt(e.count))&&void 0!==n?n:0}})),structures:pi.readMap(r.structures,(e=>{var t,r,n,i,o;return r=null!==(t=pi.readObject(e))&&void 0!==t?t:{},{spacing:null!==(n=pi.readInt(r.spacing))&&void 0!==n?n:0,separation:null!==(i=pi.readInt(r.separation))&&void 0!==i?i:0,salt:null!==(o=pi.readInt(r.salt))&&void 0!==o?o:0}}))}},(Si||(Si={})).fromJson=function(e){var t;const r=null!==(t=pi.readObject(e))&&void 0!==t?t:{};return{temperature:fi.fromJson(r.temperature),humidity:fi.fromJson(r.humidity),continentalness:fi.fromJson(r.continentalness),erosion:fi.fromJson(r.erosion),weirdness:fi.fromJson(r.weirdness),shift:fi.fromJson(r.shift)}};let Qi=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});Qi.decode();let eo=null;function to(e,t){return Qi.decode((null!==eo&&eo.buffer===Vi.memory.buffer||(eo=new Uint8Array(Vi.memory.buffer)),eo).subarray(e,e+t))}const ro=new Uint32Array(2),no=new BigInt64Array(ro.buffer);let io=null;function oo(){return null!==io&&io.buffer===Vi.memory.buffer||(io=new Int32Array(Vi.memory.buffer)),io}let ao=null;function so(){return null!==ao&&ao.buffer===Vi.memory.buffer||(ao=new Float64Array(Vi.memory.buffer)),ao}let co=0;function lo(e,t){const r=t(8*e.length);return so().set(e,r/8),co=e.length,r}let uo=null;function po(e,t){const r=t(4*e.length);return(null!==uo&&uo.buffer===Vi.memory.buffer||(uo=new Uint32Array(Vi.memory.buffer)),uo).set(e,r/4),co=e.length,r}function mo(e,t,r,n,i,o,a,s,c,l,u,d,p,m){var h=lo(e,Vi.__wbindgen_malloc),f=co,_=lo(t,Vi.__wbindgen_malloc),g=co,b=lo(r,Vi.__wbindgen_malloc),y=co,v=lo(n,Vi.__wbindgen_malloc),x=co,N=lo(i,Vi.__wbindgen_malloc),w=co,k=lo(o,Vi.__wbindgen_malloc),O=co,S=lo(a,Vi.__wbindgen_malloc),A=co,D=lo(s,Vi.__wbindgen_malloc),C=co,E=lo(c,Vi.__wbindgen_malloc),F=co,B=lo(l,Vi.__wbindgen_malloc),M=co,j=lo(u,Vi.__wbindgen_malloc),T=co,I=lo(d,Vi.__wbindgen_malloc),P=co,L=lo(p,Vi.__wbindgen_malloc),R=co,z=po(m,Vi.__wbindgen_malloc),U=co,$=Vi.biome_parameters(h,f,_,g,b,y,v,x,N,w,k,O,S,A,D,C,E,F,B,M,j,T,I,P,L,R,z,U);return bo.__wrap($)}function ho(e,t,r,n,i,o,a,s,c,l,u,d,p){no[0]=e;const m=ro[0],h=ro[1];var f=lo(r,Vi.__wbindgen_malloc),_=co,g=lo(i,Vi.__wbindgen_malloc),b=co,y=lo(a,Vi.__wbindgen_malloc),v=co,x=lo(c,Vi.__wbindgen_malloc),N=co,w=lo(u,Vi.__wbindgen_malloc),k=co,O=lo(p,Vi.__wbindgen_malloc),S=co,A=Vi.climate_sampler(m,h,t,f,_,n,g,b,o,y,v,s,x,N,l,w,k,d,O,S);return yo.__wrap(A)}function fo(e,t){if(!(e instanceof t))throw new Error(`expected instance of ${t.name}`);return e.ptr}function _o(e,t,r,n,i,o,a,s,c,l,u){try{const h=Vi.__wbindgen_add_to_stack_pointer(-16);fo(e,bo),fo(t,yo),Vi.multi_noise(h,e.ptr,t.ptr,r,n,i,o,a,s,c,l,u);var d=oo()[h/4+0],p=oo()[h/4+1],m=function(e,t){return oo().subarray(e/4,e/4+t)}(d,p).slice();return Vi.__wbindgen_free(d,4*p),m}finally{Vi.__wbindgen_add_to_stack_pointer(16)}}function go(e,t,r,n,i,o,a,s,c,l){try{const m=Vi.__wbindgen_add_to_stack_pointer(-16);fo(e,yo),Vi.climate_noise(m,e.ptr,t,r,n,i,o,a,s,c,l);var u=oo()[m/4+0],d=oo()[m/4+1],p=function(e,t){return so().subarray(e/8,e/8+t)}(u,d).slice();return Vi.__wbindgen_free(u,8*d),p}finally{Vi.__wbindgen_add_to_stack_pointer(16)}}class bo{static __wrap(e){const t=Object.create(bo.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();Vi.__wbg_parameterlist_free(e)}}class yo{static __wrap(e){const t=Object.create(yo.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();Vi.__wbg_sampler_free(e)}}async function vo(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(to(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 Vi=r.exports,vo.__wbindgen_wasm_module=n,Vi}var xo="/assets/deepslate_rs_bg.4990c219.wasm",No=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]=wo(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]=wo(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())}}}}(Do);var Co={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initPredicatesSchemas=e.LocationFields=void 0;const t=Me,r=Do;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"}))}}(Co),Object.defineProperty(Ao,"__esModule",{value:!0}),Ao.initAdvancementSchemas=void 0;const Eo=Me,Fo=Do,Bo=Co;Ao.initAdvancementSchemas=function(e,t){const r=Eo.Reference.bind(void 0,e),n=Eo.StringNode.bind(void 0,t);e.register("advancement",Eo.Mod(Eo.ObjectNode({display:Eo.Opt(Eo.Mod(Eo.ObjectNode({icon:Eo.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),nbt:Eo.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:r("text_component"),description:r("text_component"),background:Eo.Opt(n()),frame:Eo.Opt(n({enum:["task","challenge","goal"]})),show_toast:Eo.Opt(Eo.BooleanNode()),announce_to_chat:Eo.Opt(Eo.BooleanNode()),hidden:Eo.Opt(Eo.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:Eo.Opt(n({validator:"resource",params:{pool:"$advancement"}})),criteria:Eo.MapNode(n(),r("advancement_criteria")),requirements:Eo.Opt(Eo.ListNode(Eo.ListNode(n()))),rewards:Eo.Opt(Eo.ObjectNode({function:Eo.Opt(n({validator:"resource",params:{pool:"$function"}})),loot:Eo.Opt(Eo.ListNode(n({validator:"resource",params:{pool:"$loot_table"}}))),recipes:Eo.Opt(Eo.ListNode(n({validator:"resource",params:{pool:"$recipe"}}))),experience:Eo.Opt(Eo.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",Eo.ObjectNode({trigger:n({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:Eo.Opt(Eo.ObjectNode({[Eo.Switch]:["pop",{push:"trigger"}],[Eo.Case]:{"minecraft:bee_nest_destroyed":{block:Eo.Opt(n({validator:"resource",params:{pool:"block"}})),num_bees_inside:Eo.Opt(Eo.NumberNode({integer:!0})),item:Eo.Opt(r("item_predicate"))},"minecraft:bred_animals":{parent:Eo.Opt(r("entity_predicate")),partner:Eo.Opt(r("entity_predicate")),child:Eo.Opt(r("entity_predicate"))},"minecraft:brewed_potion":{potion:Eo.Opt(n({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:Eo.Opt(n({enum:"dimension"})),to:Eo.Opt(n({enum:"dimension"}))},"minecraft:channeled_lightning":{victims:Eo.Opt(Eo.ListNode(Eo.Opt(r("entity_predicate"))))},"minecraft:construct_beacon":{level:Eo.Opt(Fo.Range())},"minecraft:consume_item":{item:Eo.Opt(r("item_predicate"))},"minecraft:cured_zombie_villager":{villager:Eo.Opt(r("entity_predicate")),zombie:Eo.Opt(r("entity_predicate"))},"minecraft:effects_changed":{effects:Eo.Opt(Eo.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),r("status_effect_predicate")))},"minecraft:enter_block":{block:Eo.Opt(n({validator:"resource",params:{pool:"block"}})),state:Eo.Opt(Eo.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:Eo.Opt(Fo.Range()),item:Eo.Opt(r("item_predicate"))},"minecraft:entity_hurt_player":{damage:Eo.Opt(r("damage_predicate"))},"minecraft:entity_killed_player":{entity:Eo.Opt(r("entity_predicate")),killing_blow:Eo.Opt(r("damage_source_predicate"))},"minecraft:filled_bucket":{item:Eo.Opt(r("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:Eo.Opt(r("entity_predicate")),item:Eo.Opt(r("item_predicate"))},"minecraft:hero_of_the_village":Bo.LocationFields,"minecraft:inventory_changed":{slots:Eo.Opt(Eo.ObjectNode({empty:Eo.Opt(Fo.Range()),occupied:Eo.Opt(Fo.Range()),full:Eo.Opt(Fo.Range())})),items:Eo.Opt(Eo.ListNode(r("item_predicate")))},"minecraft:item_durability_changed":{delta:Eo.Opt(Fo.Range()),durability:Eo.Opt(Fo.Range()),item:Eo.Opt(r("item_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:Eo.Opt(Fo.Range()),victims:Eo.Opt(Eo.ListNode(Eo.Opt(r("entity_predicate"))))},"minecraft:levitation":{distance:Eo.Opt(Fo.Range()),duration:Eo.Opt(Fo.Range())},"minecraft:location":Bo.LocationFields,"minecraft:nether_travel":{distance:Eo.Opt(Fo.Range()),entered:Eo.Opt(r("location_predicate")),exited:Eo.Opt(r("location_predicate"))},"minecraft:placed_block":{block:Eo.Opt(n({validator:"resource",params:{pool:"block"}})),state:Eo.Opt(Eo.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:Eo.Opt(r("item_predicate")),location:Eo.Opt(r("location_predicate"))},"minecraft:player_hurt_entity":{damage:Eo.Opt(r("damage_predicate")),entity:Eo.Opt(r("entity_predicate"))},"minecraft:player_killed_entity":{entity:Eo.Opt(r("entity_predicate")),killing_blow:Eo.Opt(r("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:n({validator:"resource",params:{pool:"$recipe"}})},"minecraft:safely_harvest_honey":{block:Eo.Opt(Eo.ObjectNode({block:Eo.Opt(n({validator:"resource",params:{pool:"block"}})),tag:Eo.Opt(n({validator:"resource",params:{pool:"$tag/block"}}))})),item:Eo.Opt(r("item_predicate"))},"minecraft:slept_in_bed":Bo.LocationFields,"minecraft:slide_down_block":{block:Eo.Opt(n({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:Eo.Opt(r("item_predicate"))},"minecraft:summoned_entity":{entity:Eo.Opt(r("entity_predicate"))},"minecraft:tame_animal":{entity:Eo.Opt(r("entity_predicate"))},"minecraft:used_ender_eye":{distance:Eo.Opt(Fo.Range())},"minecraft:used_totem":{item:Eo.Opt(r("item_predicate"))},"minecraft:villager_trade":{villager:Eo.Opt(r("entity_predicate")),item:Eo.Opt(r("item_predicate"))},"minecraft:voluntary_exile":Bo.LocationFields}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var Mo={};Object.defineProperty(Mo,"__esModule",{value:!0}),Mo.initConditionSchemas=void 0;const jo=Me,To=Do;Mo.initConditionSchemas=function(e,t){const r=jo.Reference.bind(void 0,e),n=jo.StringNode.bind(void 0,t);e.register("predicate",jo.ObjectOrList(r("condition"),{choiceContext:"condition"})),e.register("condition",jo.Mod(jo.ObjectNode({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[jo.Switch]:[{push:"condition"}],[jo.Case]:To.ConditionCases},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var Io={},Po={};Object.defineProperty(Po,"__esModule",{value:!0}),Po.LootFunctions=Po.LootConditions=Po.LootCopySources=Po.LootEntitySources=Po.LootTableTypes=void 0,Po.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]}]]),Po.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Po.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Po.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",[]]]),Po.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(Io,"__esModule",{value:!0}),Io.initLootTableSchemas=void 0;const Lo=Me,Ro=Po,zo=Do;Io.initLootTableSchemas=function(e,t){const r=Lo.Reference.bind(void 0,e),n=Lo.StringNode.bind(void 0,t),i={conditions:Lo.Opt(Lo.ListNode(r("loot_condition")))},o=s({functions:Lo.Opt(Lo.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 Ro.LootTableTypes){const e=[...a,...s];i.push({match:e=>e.getModel().get(new Lo.Path(["type"]))===t,node:n(o(e))})}return i.push({match:e=>!0,node:n(r)}),Lo.SwitchNode(i)}const l=a(Ro.LootConditions,"loot_condition_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),u=a(Ro.LootFunctions,"loot_function_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),d=a(Ro.LootEntitySources,"entity_source",(e=>n({enum:e}))),p=a(Ro.LootCopySources,"copy_source",(e=>n({enum:e})));e.register("loot_table",Lo.Mod(Lo.ObjectNode({type:Lo.Opt(n({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:Lo.Opt(Lo.ListNode(Lo.Mod(Lo.ObjectNode(s({rolls:zo.Range({allowBinomial:!0,integer:!0}),bonus_rolls:Lo.Opt(zo.Range({integer:!0})),entries:Lo.ListNode(r("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:Lo.Opt(Lo.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",Lo.Mod(Lo.ObjectNode({type:n({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:Lo.Opt(Lo.Mod(Lo.NumberNode({integer:!0,min:1}),m)),quality:Lo.Opt(Lo.Mod(Lo.NumberNode({integer:!0}),m)),[Lo.Switch]:[{push:"type"}],[Lo.Case]:{"minecraft:alternatives":s({children:Lo.ListNode(r("loot_entry"))},o),"minecraft:dynamic":s({name:n()},o),"minecraft:group":s({children:Lo.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:Lo.ListNode(r("loot_entry"))},o),"minecraft:tag":s({name:n({validator:"resource",params:{pool:"$tag/item"}}),expand:Lo.Opt(Lo.BooleanNode())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",Lo.Mod(Lo.ObjectNode({function:u,[Lo.Switch]:[{push:"function"}],[Lo.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:Lo.Mod(Lo.ObjectNode({bonusMultiplier:Lo.Mod(Lo.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:Lo.Mod(Lo.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:Lo.Mod(Lo.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:Lo.ListNode(Lo.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:Lo.ListNode(n({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:Lo.Opt(Lo.ListNode(n({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:zo.Range({allowBinomial:!0}),treasure:Lo.Opt(Lo.BooleanNode())},"minecraft:exploration_map":{destination:Lo.Opt(n({enum:"structure_feature"})),decoration:Lo.Opt(n({enum:"map_decoration"})),zoom:Lo.Opt(Lo.NumberNode({integer:!0})),search_radius:Lo.Opt(Lo.NumberNode({integer:!0})),skip_existing_chunks:Lo.Opt(Lo.BooleanNode())},"minecraft:fill_player_head":{entity:d},"minecraft:limit_count":{limit:zo.Range({bounds:!0})},"minecraft:looting_enchant":{count:zo.Range({bounds:!0}),limit:Lo.Opt(Lo.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:Lo.ListNode(r("attribute_modifier"))},"minecraft:set_contents":{entries:Lo.ListNode(r("loot_entry"))},"minecraft:set_count":{count:zo.Range({allowBinomial:!0})},"minecraft:set_damage":{damage:zo.Range({forceRange:!0})},"minecraft:set_loot_table":{name:n({validator:"resource",params:{pool:"$loot_table"}}),seed:Lo.Opt(Lo.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:Lo.Opt(d),lore:Lo.ListNode(r("text_component")),replace:Lo.Opt(Lo.BooleanNode())},"minecraft:set_name":{entity:Lo.Opt(d),name:Lo.Opt(r("text_component"))},"minecraft:set_nbt":{tag:n({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:Lo.Opt(Lo.ListNode(Lo.ObjectNode({type:n({validator:"resource",params:{pool:"mob_effect"}}),duration:zo.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",Lo.Mod(Lo.ObjectNode({condition:l,[Lo.Switch]:[{push:"condition"}],[Lo.Case]:c(s({},zo.ConditionCases),{"minecraft:entity_properties":{entity:d,predicate:r("entity_predicate")},"minecraft:entity_scores":{entity:d,scores:Lo.MapNode(n({validator:"objective"}),zo.Range({bounds:!0}))}})},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",Lo.Mod(Lo.ObjectNode({attribute:n({validator:"resource",params:{pool:"attribute"}}),name:n(),amount:zo.Range({bounds:!0}),operation:n({enum:["addition","multiply_base","multiply_total"]}),slot:Lo.StringOrList(n({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var Uo={};Object.defineProperty(Uo,"__esModule",{value:!0}),Uo.initPackMcmetaSchemas=void 0;const $o=Me;Uo.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",$o.Mod($o.ObjectNode({pack:$o.Mod($o.ObjectNode({pack_format:$o.Mod($o.NumberNode({integer:!0,min:5,max:5}),{default:()=>5}),description:$o.Reference(e,"text_component")}),{default:()=>({pack_format:5,description:""})})}),{default:()=>({pack:{pack_format:5,description:""}})}))};var Xo={};Object.defineProperty(Xo,"__esModule",{value:!0}),Xo.initRecipeSchemas=void 0;const Jo=Me;Xo.initRecipeSchemas=function(e,t){const r=Jo.Reference.bind(void 0,e),n=Jo.StringNode.bind(void 0,t);e.register("recipe",Jo.Mod(Jo.ObjectNode({type:n({validator:"resource",params:{pool:"recipe_serializer"}}),[Jo.Switch]:[{push:"type"}],[Jo.Case]:{"minecraft:crafting_shaped":{group:Jo.Opt(n({enum:"recipe_group",additional:!0})),pattern:Jo.ListNode(n()),key:Jo.MapNode(n(),r("recipe_ingredient")),result:r("recipe_result")},"minecraft:crafting_shapeless":{group:Jo.Opt(n()),ingredients:Jo.ListNode(r("recipe_ingredient")),result:r("recipe_result")},"minecraft:smelting":{group:Jo.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Jo.Opt(Jo.NumberNode()),cookingtime:Jo.Opt(Jo.Mod(Jo.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:Jo.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Jo.Opt(Jo.NumberNode()),cookingtime:Jo.Opt(Jo.Mod(Jo.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:Jo.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Jo.Opt(Jo.NumberNode()),cookingtime:Jo.Opt(Jo.Mod(Jo.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:Jo.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Jo.Opt(Jo.NumberNode()),cookingtime:Jo.Opt(Jo.Mod(Jo.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:Jo.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),count:Jo.NumberNode({integer:!0})},"minecraft:smithing":{group:Jo.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",Jo.Mod(Jo.ChoiceNode([{type:"object",node:r("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:Jo.ListNode(r("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",Jo.Mod(Jo.ObjectNode({item:Jo.Opt(n({validator:"resource",params:{pool:"item"}})),tag:Jo.Opt(n({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",Jo.Mod(Jo.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),count:Jo.Opt(Jo.Mod(Jo.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var qo={};Object.defineProperty(qo,"__esModule",{value:!0}),qo.initTagsSchemas=void 0;const Ho=Me;qo.initTagsSchemas=function(e,t){const r=Ho.StringNode.bind(void 0,t),n=e=>Ho.Mod(Ho.ObjectNode({replace:Ho.Opt(Ho.BooleanNode()),values:Ho.ListNode(Ho.ChoiceNode([{type:"string",node:r({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:Ho.ObjectNode({id:r({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:Ho.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 Wo={};Object.defineProperty(Wo,"__esModule",{value:!0}),Wo.initTextComponentSchemas=void 0;const Zo=Me;Wo.initTextComponentSchemas=function(e,t){const r=Zo.Reference.bind(void 0,e),n=Zo.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",Zo.Mod(Zo.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:Zo.NumberNode(),change:e=>{const t=parseFloat(i(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:Zo.BooleanNode(),change:e=>{const t=i(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={bold:Zo.Opt(Zo.BooleanNode()),italic:Zo.Opt(Zo.BooleanNode()),underlined:Zo.Opt(Zo.BooleanNode()),strikethrough:Zo.Opt(Zo.BooleanNode()),obfuscated:Zo.Opt(Zo.BooleanNode()),insertion:Zo.Opt(n()),clickEvent:Zo.Opt(Zo.ObjectNode({action:n({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[Zo.Switch]:[{push:"action"}],[Zo.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:Zo.Opt(Zo.ObjectNode({action:n({enum:["show_text","show_item","show_entity"]}),[Zo.Switch]:[{push:"action"}],[Zo.Case]:{show_text:{value:Zo.Opt(r("text_component"))},show_item:{value:Zo.Opt(n({validator:"nbt",params:{module:"util::InventoryItem"}}))},show_entity:{value:Zo.Opt(Zo.ObjectNode({name:Zo.Opt(n()),type:Zo.Opt(n()),id:Zo.Opt(n())}))}}})),extra:Zo.Opt(r("text_component_list"))};e.register("text_component_object",Zo.Mod(Zo.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:Zo.ObjectNode(s({text:n()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:Zo.ObjectNode(s({translate:n(),with:Zo.Opt(r("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:Zo.ObjectNode(s({score:Zo.ObjectNode({name:n({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:n({validator:"objective"}),value:Zo.Opt(n())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:Zo.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:Zo.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:Zo.ObjectNode(s({nbt:n({validator:"nbt_path"}),block:Zo.Opt(n({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:Zo.Opt(n({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:Zo.Opt(n({validator:"resource",params:{pool:"$storage"}})),interpret:Zo.Opt(Zo.BooleanNode())},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",Zo.Mod(Zo.ListNode(r("text_component")),{default:()=>[{text:""}]}))},Object.defineProperty(So,"__esModule",{value:!0}),So.initSchemas=void 0;const Go=Ao,Ko=Do,Yo=Mo,Vo=Io,Qo=Uo,ea=Co,ta=Xo,ra=qo,na=Wo;So.initSchemas=function(e,t){Ko.initCommonSchemas(e,t),ea.initPredicatesSchemas(e,t),Go.initAdvancementSchemas(e,t),Yo.initConditionSchemas(e,t),Vo.initLootTableSchemas(e,t),Qo.initPackMcmetaSchemas(e,t),ta.initRecipeSchemas(e,t),ra.initTagsSchemas(e,t),na.initTextComponentSchemas(e,t)};var ia=Be&&Be.__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]}),oa=Be&&Be.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),aa=Be&&Be.__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)&&ia(t,e,r);return oa(t,e),t};Object.defineProperty(ko,"__esModule",{value:!0});var sa=ko.getSchemas=ko.getCollections=void 0;const ca=Me,la=Oo,ua=So;var da=ko.lootContext=aa(Po);var pa=ko.getCollections=function(){const e=new ca.CollectionRegistry;return la.initCollections(e),e};sa=ko.getSchemas=function(e){const t=new ca.SchemaRegistry;return ua.initSchemas(t,e),t};var ma=Object.freeze(Object.assign(Object.create(null),ko,{[Symbol.toStringTag]:"Module",get getSchemas(){return sa},get getCollections(){return pa},lootContext:da,default:ko})),ha={},fa={};Object.defineProperty(fa,"__esModule",{value:!0}),fa.initCollections=void 0,fa.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 _a={},ga={},ba={};!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=Me;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"}}}})}}(ba),Object.defineProperty(ga,"__esModule",{value:!0}),ga.initAdvancementSchemas=void 0;const ya=Me,va=ba;ga.initAdvancementSchemas=function(e,t){const r=ya.Reference.bind(void 0,e),n=ya.StringNode.bind(void 0,t),i=ya.ChoiceNode([{type:"object",node:ya.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:ya.ListNode(r("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",ya.Mod(ya.ObjectNode({display:ya.Opt(ya.Mod(ya.ObjectNode({icon:ya.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),nbt:ya.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:r("text_component"),description:r("text_component"),background:ya.Opt(n()),frame:ya.Opt(n({enum:["task","challenge","goal"]})),show_toast:ya.Opt(ya.BooleanNode()),announce_to_chat:ya.Opt(ya.BooleanNode()),hidden:ya.Opt(ya.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:ya.Opt(n({validator:"resource",params:{pool:"$advancement"}})),criteria:ya.MapNode(n(),r("advancement_criteria")),requirements:ya.Opt(ya.ListNode(ya.ListNode(n()))),rewards:ya.Opt(ya.ObjectNode({function:ya.Opt(n({validator:"resource",params:{pool:"$function"}})),loot:ya.Opt(ya.ListNode(n({validator:"resource",params:{pool:"$loot_table"}}))),recipes:ya.Opt(ya.ListNode(n({validator:"resource",params:{pool:"$recipe"}}))),experience:ya.Opt(ya.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",ya.ObjectNode({trigger:n({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:ya.Opt(ya.ObjectNode({player:ya.Mod(i,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[ya.Switch]:["pop",{push:"trigger"}],[ya.Case]:{"minecraft:bee_nest_destroyed":{block:ya.Opt(n({validator:"resource",params:{pool:"block"}})),num_bees_inside:ya.Opt(ya.NumberNode({integer:!0})),item:ya.Opt(r("item_predicate"))},"minecraft:bred_animals":{parent:i,partner:i,child:i},"minecraft:brewed_potion":{potion:ya.Opt(n({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:ya.Opt(n({validator:"resource",params:{pool:"$dimension"}})),to:ya.Opt(n({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:ya.Opt(ya.ListNode(i))},"minecraft:construct_beacon":{level:ya.Opt(va.Range())},"minecraft:consume_item":{item:ya.Opt(r("item_predicate"))},"minecraft:cured_zombie_villager":{villager:i,zombie:i},"minecraft:effects_changed":{effects:ya.Opt(ya.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),r("status_effect_predicate")))},"minecraft:enter_block":{block:ya.Opt(n({validator:"resource",params:{pool:"block"}})),state:ya.Opt(ya.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:ya.Opt(va.Range()),item:ya.Opt(r("item_predicate"))},"minecraft:entity_hurt_player":{damage:ya.Opt(r("damage_predicate"))},"minecraft:entity_killed_player":{entity:i,killing_blow:ya.Opt(r("damage_source_predicate"))},"minecraft:filled_bucket":{item:ya.Opt(r("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:i,item:ya.Opt(r("item_predicate"))},"minecraft:hero_of_the_village":{location:ya.Opt(r("location_predicate"))},"minecraft:inventory_changed":{slots:ya.Opt(ya.ObjectNode({empty:ya.Opt(va.Range()),occupied:ya.Opt(va.Range()),full:ya.Opt(va.Range())})),items:ya.Opt(ya.ListNode(r("item_predicate")))},"minecraft:item_durability_changed":{delta:ya.Opt(va.Range()),durability:ya.Opt(va.Range()),item:ya.Opt(r("item_predicate"))},"minecraft:item_used_on_block":{item:ya.Opt(r("item_predicate")),location:ya.Opt(r("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:ya.Opt(va.Range()),victims:ya.Opt(ya.ListNode(i))},"minecraft:levitation":{distance:ya.Opt(va.Range()),duration:ya.Opt(va.Range())},"minecraft:location":{location:ya.Opt(r("location_predicate"))},"minecraft:nether_travel":{distance:ya.Opt(va.Range()),entered:ya.Opt(r("location_predicate")),exited:ya.Opt(r("location_predicate"))},"minecraft:placed_block":{block:ya.Opt(n({validator:"resource",params:{pool:"block"}})),state:ya.Opt(ya.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:ya.Opt(r("item_predicate")),location:ya.Opt(r("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:n({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:ya.Opt(r("damage_predicate")),entity:i},"minecraft:player_interacted_with_entity":{item:ya.Opt(r("item_predicate")),entity:i},"minecraft:player_killed_entity":{entity:i,killing_blow:ya.Opt(r("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:n({validator:"resource",params:{pool:"$recipe"}})},"minecraft:slept_in_bed":{location:ya.Opt(r("location_predicate"))},"minecraft:slide_down_block":{block:ya.Opt(n({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:ya.Opt(r("item_predicate"))},"minecraft:summoned_entity":{entity:i},"minecraft:tame_animal":{entity:i},"minecraft:target_hit":{projectile:i,shooter:i,signal_strength:ya.Opt(va.Range({integer:!0}))},"minecraft:thrown_item_picked_up_by_entity":{entity:ya.Opt(r("entity_predicate")),item:ya.Opt(r("item_predicate"))},"minecraft:used_ender_eye":{distance:ya.Opt(va.Range())},"minecraft:used_totem":{item:ya.Opt(r("item_predicate"))},"minecraft:villager_trade":{villager:ya.Opt(r("entity_predicate")),item:ya.Opt(r("item_predicate"))},"minecraft:voluntary_exile":{location:r("location_predicate")}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var xa={};Object.defineProperty(xa,"__esModule",{value:!0}),xa.initConditionSchemas=void 0;const Na=Me,wa=ba;xa.initConditionSchemas=function(e,t){const r=Na.Reference.bind(void 0,e),n=Na.StringNode.bind(void 0,t);e.register("predicate",Na.ObjectOrList(r("condition"),{choiceContext:"condition"})),e.register("condition",Na.Mod(Na.ObjectNode({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[Na.Switch]:[{push:"condition"}],[Na.Case]:wa.ConditionCases},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var ka={};Object.defineProperty(ka,"__esModule",{value:!0}),ka.initDimensionSchemas=void 0;const Oa=Me,Sa=ba;ka.initDimensionSchemas=function(e,t){const r=Oa.Reference.bind(void 0,e),n=Oa.StringNode.bind(void 0,t),i=e=>Oa.Mod(e,{enabled:e=>void 0===e.push("preset").get()});e.register("dimension",Oa.Mod(Oa.ObjectNode({type:Sa.DimensionTypePresets(r("dimension_type")),generator:Oa.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[Oa.Switch]:[{push:"type"}],[Oa.Case]:{"minecraft:noise":{seed:Oa.NumberNode({integer:!0}),settings:Sa.NoiseSettingsPresets(r("noise_settings")),biome_source:Oa.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/biome_source"}}),[Oa.Switch]:[{push:"type"}],[Oa.Case]:{"minecraft:fixed":{biome:n({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{seed:Oa.NumberNode({integer:!0}),preset:Oa.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(Oa.Mod(Oa.ListNode(r("generator_biome")),{default:()=>[{biome:"minecraft:plains"}]}))},"minecraft:checkerboard":{scale:Oa.Opt(Oa.NumberNode({integer:!0,min:0,max:62})),biomes:Oa.ListNode(n({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:Oa.NumberNode({integer:!0})},"minecraft:vanilla_layered":{seed:Oa.NumberNode({integer:!0}),large_biomes:Oa.Opt(Oa.BooleanNode()),legacy_biome_init_layer:Oa.Opt(Oa.BooleanNode())}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:Oa.ObjectNode({biome:Oa.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:Oa.Opt(Oa.BooleanNode()),features:Oa.Opt(Oa.BooleanNode()),layers:Oa.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",Oa.Mod(Oa.ObjectNode({biome:n({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:Oa.ObjectNode({altitude:Oa.NumberNode(),temperature:Oa.NumberNode(),humidity:Oa.NumberNode(),weirdness:Oa.NumberNode(),offset:Oa.NumberNode()})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})})),e.register("generator_biome_noise",Oa.Mod(Oa.ObjectNode({firstOctave:Oa.NumberNode({integer:!0}),amplitudes:Oa.ListNode(Oa.NumberNode())},{context:"generator_biome_noise"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})}))};var Aa={};Object.defineProperty(Aa,"__esModule",{value:!0}),Aa.initDimensionTypeSchemas=void 0;const Da=Me,Ca=ba;Aa.initDimensionTypeSchemas=function(e,t){const r=Da.StringNode.bind(void 0,t);e.register("dimension_type",Da.Mod(Da.ObjectNode({name:Da.Mod(r({validator:"resource",params:{pool:"$dimension_type",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),ultrawarm:Da.BooleanNode(),natural:Da.BooleanNode(),piglin_safe:Da.BooleanNode(),respawn_anchor_works:Da.BooleanNode(),bed_works:Da.BooleanNode(),has_raids:Da.BooleanNode(),has_skylight:Da.BooleanNode(),has_ceiling:Da.BooleanNode(),coordinate_scale:Da.NumberNode({min:1e-5,max:3e7}),ambient_light:Da.NumberNode(),fixed_time:Da.Opt(Da.NumberNode({integer:!0})),logical_height:Da.NumberNode({integer:!0,min:0,max:256}),effects:Da.Opt(r({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:r({validator:"resource",params:{pool:"$tag/block"}})},{context:"dimension_type"}),{default:()=>Ca.DefaultDimensionType}))};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_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=Me,Ma=Fa,ja=ba;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 l=a(Ma.LootConditions,"loot_condition_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),u=a(Ma.LootFunctions,"loot_function_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),d=a(Ma.LootEntitySources,"entity_source",(e=>n({enum:e}))),p=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:ja.Range({allowBinomial:!0,integer:!0}),bonus_rolls:Ba.Opt(ja.Range({integer:!0})),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 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",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}),m)),quality:Ba.Opt(Ba.Mod(Ba.NumberNode({integer:!0}),m)),[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:u,[Ba.Switch]:[{push:"function"}],[Ba.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:Ba.Mod(Ba.ObjectNode({bonusMultiplier:Ba.Mod(Ba.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:Ba.Mod(Ba.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:Ba.Mod(Ba.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:Ba.ListNode(Ba.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:Ba.ListNode(n({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:Ba.Opt(Ba.ListNode(n({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:ja.Range({allowBinomial:!0}),treasure:Ba.Opt(Ba.BooleanNode())},"minecraft:exploration_map":{destination:Ba.Opt(n({enum:"map_feature"})),decoration:Ba.Opt(n({enum:"map_decoration"})),zoom:Ba.Opt(Ba.NumberNode({integer:!0})),search_radius:Ba.Opt(Ba.NumberNode({integer:!0})),skip_existing_chunks:Ba.Opt(Ba.BooleanNode())},"minecraft:fill_player_head":{entity:d},"minecraft:limit_count":{limit:ja.Range({bounds:!0})},"minecraft:looting_enchant":{count:ja.Range({bounds:!0}),limit:Ba.Opt(Ba.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:Ba.ListNode(r("attribute_modifier"))},"minecraft:set_contents":{entries:Ba.ListNode(r("loot_entry"))},"minecraft:set_count":{count:ja.Range({allowBinomial:!0})},"minecraft:set_damage":{damage:ja.Range({forceRange:!0})},"minecraft:set_loot_table":{name:n({validator:"resource",params:{pool:"$loot_table"}}),seed:Ba.Opt(Ba.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:Ba.Opt(d),lore:Ba.ListNode(r("text_component")),replace:Ba.Opt(Ba.BooleanNode())},"minecraft:set_name":{entity:Ba.Opt(d),name:Ba.Opt(r("text_component"))},"minecraft:set_nbt":{tag:n({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:Ba.Opt(Ba.ListNode(Ba.ObjectNode({type:n({validator:"resource",params:{pool:"mob_effect"}}),duration:ja.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",Ba.Mod(Ba.ObjectNode({condition:l,[Ba.Switch]:[{push:"condition"}],[Ba.Case]:c(s({},ja.ConditionCases),{"minecraft:entity_properties":{entity:d,predicate:r("entity_predicate")},"minecraft:entity_scores":{entity:d,scores:Ba.MapNode(n({validator:"objective"}),ja.Range({bounds:!0}))}})},{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:ja.Range({bounds:!0}),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=Me;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:6,max:6}),{default:()=>6}),description:Ia.Reference(e,"text_component")}),{default:()=>({pack_format:6,description:""})})}),{default:()=>({pack:{pack_format:6,description:""}})}))};var Pa={};Object.defineProperty(Pa,"__esModule",{value:!0}),Pa.initPredicatesSchemas=void 0;const La=Me,Ra=ba;Pa.initPredicatesSchemas=function(e,t){const r=La.Reference.bind(void 0,e),n=La.StringNode.bind(void 0,t),i=La.ChoiceNode([{type:"string",node:n(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:La.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:La.ObjectNode({min:La.Opt(La.NumberNode({integer:!0})),max:La.Opt(La.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:La.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",La.ObjectNode({item:La.Opt(n({validator:"resource",params:{pool:"item"}})),tag:La.Opt(n({validator:"resource",params:{pool:"$tag/item"}})),count:La.Opt(Ra.Range()),durability:La.Opt(Ra.Range()),potion:La.Opt(n({validator:"resource",params:{pool:"potion"}})),nbt:La.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:La.Opt(La.ListNode(r("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",La.ObjectNode({enchantment:La.Opt(n({validator:"resource",params:{pool:"enchantment"}})),levels:La.Opt(Ra.Range())},{context:"enchantment"})),e.register("block_predicate",La.ObjectNode({block:La.Opt(n({validator:"resource",params:{pool:"block"}})),tag:La.Opt(n({validator:"resource",params:{pool:"$tag/block"}})),nbt:La.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:La.Opt(La.MapNode(n(),i,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",La.ObjectNode({fluid:La.Opt(n({validator:"resource",params:{pool:"fluid"}})),tag:La.Opt(n({validator:"resource",params:{pool:"$tag/fluid"}})),state:La.Opt(La.MapNode(n(),i))},{context:"fluid"})),e.register("location_predicate",La.ObjectNode({position:La.Opt(La.ObjectNode({x:La.Opt(Ra.Range()),y:La.Opt(Ra.Range()),z:La.Opt(Ra.Range())})),biome:La.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:La.Opt(n({enum:t.get("worldgen/structure_feature").map((e=>e.slice(10)))})),dimension:La.Opt(n({validator:"resource",params:{pool:"$dimension"}})),light:La.Opt(La.ObjectNode({light:La.Opt(Ra.Range({integer:!0,min:0,max:15}))})),smokey:La.Opt(La.BooleanNode()),block:La.Opt(r("block_predicate")),fluid:La.Opt(r("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",La.ObjectNode({type:n({validator:"resource",params:{pool:"stat_type"}}),stat:n(),value:Ra.Range(),[La.Switch]:[{push:"type"}],[La.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",La.ObjectNode({gamemode:La.Opt(n({enum:"gamemode"})),level:La.Opt(Ra.Range()),advancements:La.Opt(La.MapNode(n({validator:"resource",params:{pool:"$advancement"}}),La.ChoiceNode([{type:"boolean",node:La.BooleanNode(),change:e=>!0},{type:"object",node:La.MapNode(n(),La.BooleanNode())}]))),recipes:La.Opt(La.MapNode(n({validator:"resource",params:{pool:"$recipe"}}),La.BooleanNode())),stats:La.Opt(La.ListNode(r("statistic_predicate")))},{context:"player"})),e.register("status_effect_predicate",La.ObjectNode({amplifier:La.Opt(Ra.Range()),duration:La.Opt(Ra.Range()),ambient:La.Opt(La.BooleanNode()),visible:La.Opt(La.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",La.ObjectNode({x:La.Opt(Ra.Range()),y:La.Opt(Ra.Range()),z:La.Opt(Ra.Range()),absolute:La.Opt(Ra.Range()),horizontal:La.Opt(Ra.Range())},{context:"distance"})),e.register("entity_predicate",La.ObjectNode({type:La.Opt(n({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:La.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:La.Opt(n({validator:"team"})),location:La.Opt(r("location_predicate")),distance:La.Opt(r("distance_predicate")),flags:La.Opt(La.ObjectNode({is_on_fire:La.Opt(La.BooleanNode()),is_sneaking:La.Opt(La.BooleanNode()),is_sprinting:La.Opt(La.BooleanNode()),is_swimming:La.Opt(La.BooleanNode()),is_baby:La.Opt(La.BooleanNode())})),equipment:La.Opt(La.MapNode(n({enum:"slot"}),r("item_predicate"))),vehicle:La.Opt(r("entity_predicate")),targeted_entity:La.Opt(r("entity_predicate")),player:La.Opt(r("player_predicate")),fishing_hook:La.Opt(La.ObjectNode({in_open_water:La.Opt(La.BooleanNode())})),effects:La.Opt(La.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),r("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",La.ObjectNode({is_explosion:La.Opt(La.BooleanNode()),is_fire:La.Opt(La.BooleanNode()),is_magic:La.Opt(La.BooleanNode()),is_projectile:La.Opt(La.BooleanNode()),is_lightning:La.Opt(La.BooleanNode()),bypasses_armor:La.Opt(La.BooleanNode()),bypasses_invulnerability:La.Opt(La.BooleanNode()),bypasses_magic:La.Opt(La.BooleanNode()),source_entity:La.Opt(r("entity_predicate")),direct_entity:La.Opt(r("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",La.ObjectNode({dealt:La.Opt(Ra.Range()),taken:La.Opt(Ra.Range()),blocked:La.Opt(La.BooleanNode()),source_entity:La.Opt(r("entity_predicate")),type:La.Opt(r("damage_source_predicate"))},{context:"damage"}))};var za={};Object.defineProperty(za,"__esModule",{value:!0}),za.initRecipeSchemas=void 0;const Ua=Me;za.initRecipeSchemas=function(e,t){const r=Ua.Reference.bind(void 0,e),n=Ua.StringNode.bind(void 0,t);e.register("recipe",Ua.Mod(Ua.ObjectNode({type:n({validator:"resource",params:{pool:"recipe_serializer"}}),[Ua.Switch]:[{push:"type"}],[Ua.Case]:{"minecraft:crafting_shaped":{group:Ua.Opt(n({enum:"recipe_group",additional:!0})),pattern:Ua.ListNode(n()),key:Ua.MapNode(n(),r("recipe_ingredient")),result:r("recipe_result")},"minecraft:crafting_shapeless":{group:Ua.Opt(n()),ingredients:Ua.ListNode(r("recipe_ingredient")),result:r("recipe_result")},"minecraft:smelting":{group:Ua.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Ua.Opt(Ua.NumberNode()),cookingtime:Ua.Opt(Ua.Mod(Ua.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:Ua.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Ua.Opt(Ua.NumberNode()),cookingtime:Ua.Opt(Ua.Mod(Ua.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:Ua.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Ua.Opt(Ua.NumberNode()),cookingtime:Ua.Opt(Ua.Mod(Ua.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:Ua.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Ua.Opt(Ua.NumberNode()),cookingtime:Ua.Opt(Ua.Mod(Ua.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:Ua.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),count:Ua.NumberNode({integer:!0})},"minecraft:smithing":{group:Ua.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",Ua.Mod(Ua.ChoiceNode([{type:"object",node:r("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:Ua.ListNode(r("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",Ua.Mod(Ua.ObjectNode({item:Ua.Opt(n({validator:"resource",params:{pool:"item"}})),tag:Ua.Opt(n({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",Ua.Mod(Ua.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),count:Ua.Opt(Ua.Mod(Ua.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var $a={};Object.defineProperty($a,"__esModule",{value:!0}),$a.initTagsSchemas=void 0;const Xa=Me;$a.initTagsSchemas=function(e,t){const r=Xa.StringNode.bind(void 0,t),n=e=>Xa.Mod(Xa.ObjectNode({replace:Xa.Opt(Xa.BooleanNode()),values:Xa.ListNode(Xa.ChoiceNode([{type:"string",node:r({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:Xa.ObjectNode({id:r({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:Xa.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 Ja={};Object.defineProperty(Ja,"__esModule",{value:!0}),Ja.initTextComponentSchemas=void 0;const qa=Me;Ja.initTextComponentSchemas=function(e,t){const r=qa.Reference.bind(void 0,e),n=qa.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",qa.Mod(qa.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:qa.NumberNode(),change:e=>{const t=parseFloat(i(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:qa.BooleanNode(),change:e=>{const t=i(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={color:qa.Opt(n()),font:qa.Opt(n()),bold:qa.Opt(qa.BooleanNode()),italic:qa.Opt(qa.BooleanNode()),underlined:qa.Opt(qa.BooleanNode()),strikethrough:qa.Opt(qa.BooleanNode()),obfuscated:qa.Opt(qa.BooleanNode()),insertion:qa.Opt(n()),clickEvent:qa.Opt(qa.ObjectNode({action:n({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[qa.Switch]:[{push:"action"}],[qa.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:qa.Opt(qa.ObjectNode({action:n({enum:["show_text","show_item","show_entity"]}),[qa.Switch]:[{push:"action"}],[qa.Case]:{show_text:{value:qa.Opt(r("text_component")),contents:qa.Opt(r("text_component"))},show_item:{value:qa.Opt(n({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:qa.Opt(qa.ObjectNode({id:n({validator:"resource",params:{pool:"item"}}),count:qa.Opt(qa.NumberNode({integer:!0})),tag:qa.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:qa.Opt(qa.ObjectNode({name:qa.Opt(n()),type:qa.Opt(n()),id:qa.Opt(n())})),contents:qa.Opt(qa.Mod(qa.ObjectNode({name:qa.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:qa.Opt(r("text_component_list"))};e.register("text_component_object",qa.Mod(qa.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:qa.ObjectNode(s({text:n()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:qa.ObjectNode(s({translate:n(),with:qa.Opt(r("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:qa.ObjectNode(s({score:qa.ObjectNode({name:n({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:n({validator:"objective"}),value:qa.Opt(n())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:qa.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:qa.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:qa.ObjectNode(s({nbt:n({validator:"nbt_path"}),block:qa.Opt(n({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:qa.Opt(n({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:qa.Opt(n({validator:"resource",params:{pool:"$storage"}})),interpret:qa.Opt(qa.BooleanNode())},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",qa.Mod(qa.ListNode(r("text_component")),{default:()=>[{text:""}]}))};var Ha={},Wa={};Object.defineProperty(Wa,"__esModule",{value:!0}),Wa.initBiomeSchemas=void 0;const Za=Me;Wa.initBiomeSchemas=function(e,t){const r=Za.StringNode.bind(void 0,t);e.register("biome",Za.Mod(Za.ObjectNode({surface_builder:r({validator:"resource",params:{pool:"$worldgen/configured_surface_builder"}}),depth:Za.NumberNode(),scale:Za.NumberNode(),temperature:Za.NumberNode(),downfall:Za.NumberNode(),precipitation:r({enum:["none","rain","snow"]}),temperature_modifier:Za.Opt(r({enum:["none","frozen"]})),category:r({enum:"biome_category"}),player_spawn_friendly:Za.Opt(Za.BooleanNode()),creature_spawn_probability:Za.Opt(Za.NumberNode({min:0,max:1})),effects:Za.ObjectNode({sky_color:Za.NumberNode({color:!0}),fog_color:Za.NumberNode({color:!0}),water_color:Za.NumberNode({color:!0}),water_fog_color:Za.NumberNode({color:!0}),grass_color:Za.Opt(Za.NumberNode({color:!0})),foliage_color:Za.Opt(Za.NumberNode({color:!0})),grass_color_modifier:Za.Opt(r({enum:["none","dark_forest","swamp"]})),ambient_sound:Za.Opt(r()),mood_sound:Za.Opt(Za.ObjectNode({sound:r(),tick_delay:Za.NumberNode({integer:!0}),block_search_extent:Za.NumberNode({integer:!0}),offset:Za.NumberNode()})),additions_sound:Za.Opt(Za.ObjectNode({sound:r(),tick_chance:Za.NumberNode({min:0,max:1})})),music:Za.Opt(Za.ObjectNode({sound:r(),min_delay:Za.NumberNode({integer:!0,min:0}),max_delay:Za.NumberNode({integer:!0,min:0}),replace_current_music:Za.BooleanNode()})),particle:Za.Opt(Za.ObjectNode({options:Za.ObjectNode({type:r()}),probability:Za.NumberNode({min:0,max:1})}))}),starts:Za.ListNode(r({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),spawners:Za.MapNode(r({enum:["water_ambient","ambient","misc","water_creature","creature","monster"]}),Za.Mod(Za.ListNode(Za.ObjectNode({type:r({validator:"resource",params:{pool:"entity_type"}}),weight:Za.NumberNode({integer:!0}),minCount:Za.NumberNode({integer:!0}),maxCount:Za.NumberNode({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:Za.MapNode(r({validator:"resource",params:{pool:"entity_type"}}),Za.Mod(Za.ObjectNode({energy_budget:Za.NumberNode(),charge:Za.NumberNode()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:Za.MapNode(r({enum:["air","liquid"]}),Za.Mod(Za.ListNode(r({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:Za.ListNode(Za.Mod(Za.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 Ga={};Object.defineProperty(Ga,"__esModule",{value:!0}),Ga.initCarverSchemas=void 0;const Ka=Me;Ga.initCarverSchemas=function(e,t){const r=Ka.StringNode.bind(void 0,t);e.register("configured_carver",Ka.Mod(Ka.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/carver"}}),config:Ka.ObjectNode({probability:Ka.NumberNode({min:0,max:1})})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))};var Ya={};Object.defineProperty(Ya,"__esModule",{value:!0}),Ya.initDecoratorSchemas=void 0;const Va=Me,Qa=ba;Ya.initDecoratorSchemas=function(e,t){const r=Va.Reference.bind(void 0,e),n=Va.StringNode.bind(void 0,t),i={maximum:Va.NumberNode({integer:!0}),bottom_offset:Va.NumberNode({integer:!0}),top_offset:Va.NumberNode({integer:!0})},o={chance:Va.NumberNode({integer:!0,min:0})},a={count:Qa.UniformInt({min:-10,max:128,maxSpread:128})};e.register("configured_decorator",Va.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/decorator"}}),config:Va.ObjectNode({[Va.Switch]:["pop",{push:"type"}],[Va.Case]:{"minecraft:carving_mask":{step:n({enum:"generation_step"}),probability:Va.NumberNode({min:0,max:1})},"minecraft:chance":o,"minecraft:count":a,"minecraft:count_extra":{count:Va.NumberNode({integer:!0}),extra_count:Va.NumberNode({integer:!0}),extra_chance:Va.NumberNode({min:0,max:1})},"minecraft:count_multilayer":a,"minecraft:count_noise":{noise_level:Va.NumberNode(),below_noise:Va.NumberNode({integer:!0}),above_noise:Va.NumberNode({integer:!0})},"minecraft:count_noise_biased":{noise_to_count_ratio:Va.NumberNode({integer:!0}),noise_factor:Va.NumberNode(),noise_offset:Va.Opt(Va.NumberNode())},"minecraft:decorated":{outer:r("configured_decorator"),inner:r("configured_decorator")},"minecraft:depth_average":{baseline:Va.NumberNode({integer:!0}),spread:Va.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 es={},ts={};Object.defineProperty(ts,"__esModule",{value:!0}),ts.initProcessorListSchemas=void 0;const rs=Me;ts.initProcessorListSchemas=function(e,t){const r=rs.Reference.bind(void 0,e),n=rs.StringNode.bind(void 0,t);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: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.NumberNode({min:0,max:255,integer:!0}),max_dist:rs.NumberNode({min:0,max:255,integer:!0}),min_chance:rs.NumberNode({min:0,max:1}),max_chance: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=Me,is=ba;es.initFeatureSchemas=function(e,t){const r=ns.Reference.bind(void 0,e),n=ns.StringNode.bind(void 0,t),i={can_replace:ns.BooleanNode(),project:ns.BooleanNode(),need_water:ns.BooleanNode(),xspread:ns.NumberNode({integer:!0}),yspread:ns.NumberNode({integer:!0}),zspread:ns.NumberNode({integer:!0}),tries:ns.NumberNode({integer:!0}),state_provider:r("block_state_provider"),block_placer:r("block_placer"),whitelist:ns.ListNode(r("block_state")),blacklist:ns.ListNode(r("block_state"))},o={state:r("block_state"),radius:is.UniformInt({min:0,max:4,maxSpread:4}),half_height:ns.NumberNode({integer:!0,min:0,max:4}),targets:ns.ListNode(r("block_state"))},a={cap_provider:r("block_state_provider"),stem_provider:r("block_state_provider"),foliage_radius:ns.Opt(ns.NumberNode({integer:!0}))},s={state:r("block_state"),size:ns.NumberNode({integer:!0,min:0,max:64}),target:r("rule_test")},c={count:is.UniformInt({min:-10,max:128,maxSpread:128})},l=ns.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:r("configured_feature")}],{choiceContext:"feature"});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.UniformInt({min:0,max:2,maxSpread:1}),height:is.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:is.UniformInt({min:0,max:8,maxSpread:8}),rim_size:is.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: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":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:ns.Opt(ns.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:is.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:ns.ListNode(ns.ObjectNode({chance:ns.NumberNode({min:0,max:1}),feature:l})),default:l},"minecraft:sea_pickle":c,"minecraft:seagrass":{probability:ns.NumberNode({min:0,max:1})},"minecraft:simple_block":{to_place:r("block_state"),place_on:ns.ListNode(r("block_state")),place_in:ns.ListNode(r("block_state")),place_under:ns.ListNode(r("block_state"))},"minecraft:simple_random_selector":{features:ns.ListNode(l)},"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":{max_water_depth:ns.NumberNode({integer:!0}),ignore_vines:ns.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: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})},{context:"trunk_placer"}),foliage_placer:ns.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:is.UniformInt({min:0,max:8,maxSpread:8}),offset:is.UniformInt({min:0,max:8,maxSpread:8}),[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.UniformInt({min:0,max:16,maxSpread:8})},"minecraft:pine_foliage_placer":{height:is.UniformInt({min:0,max:16,maxSpread:8})},"minecraft:spruce_foliage_placer":{trunk_height:is.UniformInt({min:0,max:16,maxSpread:8})}}},{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"}))}}},{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",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"})})),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: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"})})),e.register("block_placer",ns.Mod(ns.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/block_placer_type"}}),[ns.Switch]:[{push:"type"}],[ns.Case]:{"minecraft:column_placer":{min_size:ns.NumberNode({integer:!0}),extra_size:ns.NumberNode({integer:!0})}}},{context:"block_placer"}),{default:()=>({type:"minecraft:simple_block_placer"})}))};var os={};Object.defineProperty(os,"__esModule",{value:!0}),os.initNoiseSettingsSchemas=void 0;const as=Me,ss=ba;os.initNoiseSettingsSchemas=function(e,t){const r=as.Reference.bind(void 0,e),n=as.StringNode.bind(void 0,t);e.register("noise_settings",as.Mod(as.ObjectNode({name:as.Mod(n({validator:"resource",params:{pool:"$worldgen/noise_settings",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),bedrock_roof_position:as.NumberNode({integer:!0}),bedrock_floor_position:as.NumberNode({integer:!0}),sea_level:as.NumberNode({integer:!0}),disable_mob_generation:as.BooleanNode(),default_block:r("block_state"),default_fluid:r("block_state"),noise:as.ObjectNode({height:as.NumberNode({integer:!0}),density_factor:as.NumberNode(),density_offset:as.NumberNode(),size_horizontal:as.NumberNode({integer:!0}),size_vertical:as.NumberNode({integer:!0}),simplex_surface_noise:as.BooleanNode(),random_density_offset:as.Opt(as.BooleanNode()),island_noise_override:as.Opt(as.BooleanNode()),amplified:as.Opt(as.BooleanNode()),sampling:as.ObjectNode({xz_scale:as.NumberNode(),y_scale:as.NumberNode(),xz_factor:as.NumberNode(),y_factor:as.NumberNode()}),bottom_slide:as.ObjectNode({target:as.NumberNode({integer:!0}),size:as.NumberNode({integer:!0}),offset:as.NumberNode({integer:!0})}),top_slide:as.ObjectNode({target:as.NumberNode({integer:!0}),size:as.NumberNode({integer:!0}),offset:as.NumberNode({integer:!0})})}),structures:r("generator_structures")},{context:"noise_settings"}),{default:()=>ss.DefaultNoiseSettings})),e.register("generator_structures",as.ObjectNode({stronghold:as.Opt(as.ObjectNode({distance:as.NumberNode({integer:!0,min:0,max:1023}),spread:as.NumberNode({integer:!0,min:0,max:1023}),count:as.NumberNode({integer:!0,min:1,max:4095})})),structures:as.MapNode(n({validator:"resource",params:{pool:"worldgen/structure_feature"}}),as.Mod(as.ObjectNode({spacing:as.NumberNode({integer:!0,min:0,max:4096}),separation:as.Mod(as.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:as.NumberNode({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),e.register("generator_layer",as.Mod(as.ObjectNode({block:n({validator:"resource",params:{pool:"block"}}),height:as.NumberNode({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})}))};var cs={};Object.defineProperty(cs,"__esModule",{value:!0}),cs.initStructureFeatureSchemas=void 0;const ls=Me;cs.initStructureFeatureSchemas=function(e,t){const r=ls.StringNode.bind(void 0,t),n={start_pool:r({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:ls.NumberNode({integer:!0})};e.register("configured_structure_feature",ls.Mod(ls.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:ls.ObjectNode({[ls.Switch]:["pop",{push:"type"}],[ls.Case]:{"minecraft:bastion_remnant":n,"minecraft:buried_treasure":{probability:ls.NumberNode({min:0,max:1})},"minecraft:mineshaft":{type:r({enum:["normal","mesa"]}),probability:ls.NumberNode({min:0,max:1})},"minecraft:ocean_ruin":{biome_temp:r({enum:["cold","warm"]}),large_probability:ls.NumberNode({min:0,max:1}),cluster_probability:ls.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:ls.Opt(ls.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.initSurfaceBuilderSchemas=void 0;const ds=Me;us.initSurfaceBuilderSchemas=function(e,t){const r=ds.StringNode.bind(void 0,t),n=ds.Reference.bind(void 0,e);e.register("configured_surface_builder",ds.Mod(ds.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/surface_builder"}}),config:ds.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 ps={};Object.defineProperty(ps,"__esModule",{value:!0}),ps.initTemplatePoolSchemas=void 0;const ms=Me;ps.initTemplatePoolSchemas=function(e,t){const r=ms.Reference.bind(void 0,e),n=ms.StringNode.bind(void 0,t),i=ms.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",ms.Mod(ms.ObjectNode({name:n(),fallback:n(),elements:ms.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",ms.Mod(ms.ObjectNode({weight:ms.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",ms.Mod(ms.ObjectNode({element_type:n({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:n({enum:["rigid","terrain_matching"]}),[ms.Switch]:[{push:"element_type"}],[ms.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:ms.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(Ha,"__esModule",{value:!0}),Ha.initWorldgenSchemas=void 0;const hs=Wa,fs=Ga,_s=Ya,gs=es,bs=os,ys=ts,vs=cs,xs=us,Ns=ps;Ha.initWorldgenSchemas=function(e,t){hs.initBiomeSchemas(e,t),fs.initCarverSchemas(e,t),_s.initDecoratorSchemas(e,t),gs.initFeatureSchemas(e,t),bs.initNoiseSettingsSchemas(e,t),ys.initProcessorListSchemas(e,t),vs.initStructureFeatureSchemas(e,t),xs.initSurfaceBuilderSchemas(e,t),Ns.initTemplatePoolSchemas(e,t)};var ws={};Object.defineProperty(ws,"__esModule",{value:!0}),ws.initWorldSettingsSchemas=void 0;const ks=Me;ws.initWorldSettingsSchemas=function(e,t){const r=ks.Reference.bind(void 0,e),n=ks.StringNode.bind(void 0,t);e.register("world_settings",ks.Mod(ks.ObjectNode({generate_features:ks.BooleanNode(),bonus_chest:ks.BooleanNode(),seed:ks.NumberNode({integer:!0}),dimensions:ks.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(_a,"__esModule",{value:!0}),_a.initSchemas=void 0;const Os=ga,Ss=ba,As=xa,Ds=ka,Cs=Aa,Es=Ea,Fs=Ta,Bs=Pa,Ms=za,js=$a,Ts=Ja,Is=Ha,Ps=ws;_a.initSchemas=function(e,t){Ss.initCommonSchemas(e,t),Os.initAdvancementSchemas(e,t),As.initConditionSchemas(e,t),Cs.initDimensionTypeSchemas(e,t),Ds.initDimensionSchemas(e,t),Es.initLootTableSchemas(e,t),Fs.initPackMcmetaSchemas(e,t),Bs.initPredicatesSchemas(e,t),Ms.initRecipeSchemas(e,t),js.initTagsSchemas(e,t),Ts.initTextComponentSchemas(e,t),Is.initWorldgenSchemas(e,t),Ps.initWorldSettingsSchemas(e,t)};var Ls=Be&&Be.__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]}),Rs=Be&&Be.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),zs=Be&&Be.__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)&&Ls(t,e,r);return Rs(t,e),t};Object.defineProperty(ha,"__esModule",{value:!0});var Us=ha.getSchemas=ha.getCollections=void 0;const $s=Me,Xs=fa,Js=_a;var qs=ha.lootContext=zs(Fa);var Hs=ha.getCollections=function(){const e=new $s.CollectionRegistry;return Xs.initCollections(e),e};Us=ha.getSchemas=function(e){const t=new $s.SchemaRegistry;return Js.initSchemas(t,e),t};var Ws=Object.freeze(Object.assign(Object.create(null),ha,{[Symbol.toStringTag]:"Module",get getSchemas(){return Us},get getCollections(){return Hs},lootContext:qs,default:ha})),Zs={},Gs={};Object.defineProperty(Gs,"__esModule",{value:!0}),Gs.initCollections=void 0,Gs.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 Ks={},Ys={};Object.defineProperty(Ys,"__esModule",{value:!0}),Ys.initAdvancementSchemas=void 0;const Vs=Me;Ys.initAdvancementSchemas=function(e,t){const r=Vs.Reference.bind(void 0,e),n=Vs.StringNode.bind(void 0,t),i=Vs.ChoiceNode([{type:"object",node:Vs.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:Vs.ListNode(r("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",Vs.Mod(Vs.ObjectNode({display:Vs.Opt(Vs.Mod(Vs.ObjectNode({icon:Vs.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),nbt:Vs.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:r("text_component"),description:r("text_component"),background:Vs.Opt(n()),frame:Vs.Opt(n({enum:["task","challenge","goal"]})),show_toast:Vs.Opt(Vs.BooleanNode()),announce_to_chat:Vs.Opt(Vs.BooleanNode()),hidden:Vs.Opt(Vs.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:Vs.Opt(n({validator:"resource",params:{pool:"$advancement"}})),criteria:Vs.MapNode(n(),r("advancement_criteria")),requirements:Vs.Opt(Vs.ListNode(Vs.ListNode(n()))),rewards:Vs.Opt(Vs.ObjectNode({function:Vs.Opt(n({validator:"resource",params:{pool:"$function"}})),loot:Vs.Opt(Vs.ListNode(n({validator:"resource",params:{pool:"$loot_table"}}))),recipes:Vs.Opt(Vs.ListNode(n({validator:"resource",params:{pool:"$recipe"}}))),experience:Vs.Opt(Vs.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",Vs.ObjectNode({trigger:n({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:Vs.Opt(Vs.ObjectNode({player:Vs.Mod(i,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[Vs.Switch]:["pop",{push:"trigger"}],[Vs.Case]:{"minecraft:bee_nest_destroyed":{block:Vs.Opt(n({validator:"resource",params:{pool:"block"}})),num_bees_inside:Vs.Opt(Vs.NumberNode({integer:!0})),item:Vs.Opt(r("item_predicate"))},"minecraft:bred_animals":{parent:i,partner:i,child:i},"minecraft:brewed_potion":{potion:Vs.Opt(n({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:Vs.Opt(n({validator:"resource",params:{pool:"$dimension"}})),to:Vs.Opt(n({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:Vs.Opt(Vs.ListNode(i))},"minecraft:construct_beacon":{level:r("int_bounds")},"minecraft:consume_item":{item:Vs.Opt(r("item_predicate"))},"minecraft:cured_zombie_villager":{villager:i,zombie:i},"minecraft:effects_changed":{effects:Vs.Opt(Vs.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),Vs.ObjectNode({amplifier:r("int_bounds"),duration:r("int_bounds")}))),source:Vs.Opt(i)},"minecraft:enter_block":{block:Vs.Opt(n({validator:"resource",params:{pool:"block"}})),state:Vs.Opt(Vs.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:r("int_bounds"),item:Vs.Opt(r("item_predicate"))},"minecraft:entity_hurt_player":{damage:Vs.Opt(r("damage_predicate"))},"minecraft:entity_killed_player":{entity:i,killing_blow:Vs.Opt(r("damage_source_predicate"))},"minecraft:filled_bucket":{item:Vs.Opt(r("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:i,item:Vs.Opt(r("item_predicate"))},"minecraft:hero_of_the_village":{location:Vs.Opt(r("location_predicate"))},"minecraft:inventory_changed":{slots:Vs.Opt(Vs.ObjectNode({empty:r("int_bounds"),occupied:r("int_bounds"),full:r("int_bounds")})),items:Vs.Opt(Vs.ListNode(r("item_predicate")))},"minecraft:item_durability_changed":{delta:r("int_bounds"),durability:r("int_bounds"),item:Vs.Opt(r("item_predicate"))},"minecraft:item_used_on_block":{item:Vs.Opt(r("item_predicate")),location:Vs.Opt(r("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:r("int_bounds"),victims:Vs.Opt(Vs.ListNode(i))},"minecraft:levitation":{distance:r("distance_predicate"),duration:r("int_bounds")},"minecraft:lightning_strike":{lightning:i,bystander:i},"minecraft:location":{location:Vs.Opt(r("location_predicate"))},"minecraft:nether_travel":{distance:r("distance_predicate"),entered:Vs.Opt(r("location_predicate")),exited:Vs.Opt(r("location_predicate"))},"minecraft:placed_block":{block:Vs.Opt(n({validator:"resource",params:{pool:"block"}})),state:Vs.Opt(Vs.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:Vs.Opt(r("item_predicate")),location:Vs.Opt(r("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:n({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:Vs.Opt(r("damage_predicate")),entity:i},"minecraft:player_interacted_with_entity":{item:Vs.Opt(r("item_predicate")),entity:i},"minecraft:player_killed_entity":{entity:i,killing_blow:Vs.Opt(r("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:n({validator:"resource",params:{pool:"$recipe"}})},"minecraft:slept_in_bed":{location:Vs.Opt(r("location_predicate"))},"minecraft:slide_down_block":{block:Vs.Opt(n({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:Vs.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:Vs.Opt(r("entity_predicate")),item:Vs.Opt(r("item_predicate"))},"minecraft:used_ender_eye":{distance:r("float_bounds")},"minecraft:used_totem":{item:Vs.Opt(r("item_predicate"))},"minecraft:using_item":{item:Vs.Opt(r("item_predicate"))},"minecraft:villager_trade":{villager:Vs.Opt(r("entity_predicate")),item:Vs.Opt(r("item_predicate"))},"minecraft:voluntary_exile":{location:r("location_predicate")}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var Qs={};!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=Me;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"}}}})}}(Qs);var ec={};Object.defineProperty(ec,"__esModule",{value:!0}),ec.initConditionSchemas=void 0;const tc=Me,rc=Qs;ec.initConditionSchemas=function(e,t){const r=tc.Reference.bind(void 0,e),n=tc.StringNode.bind(void 0,t);e.register("predicate",tc.ObjectOrList(r("condition"),{choiceContext:"condition"})),e.register("condition",tc.Mod(tc.ObjectNode({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[tc.Switch]:[{push:"condition"}],[tc.Case]:rc.ConditionCases()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var nc={};Object.defineProperty(nc,"__esModule",{value:!0}),nc.initDimensionSchemas=void 0;const ic=Me,oc=Qs;nc.initDimensionSchemas=function(e,t){const r=ic.Reference.bind(void 0,e),n=ic.StringNode.bind(void 0,t),i=e=>ic.Mod(e,{enabled:e=>void 0===e.push("preset").get()});e.register("dimension",ic.Mod(ic.ObjectNode({type:oc.DimensionTypePresets(r("dimension_type")),generator:ic.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[ic.Switch]:[{push:"type"}],[ic.Case]:{"minecraft:noise":{seed:ic.NumberNode({integer:!0}),settings:oc.NoiseSettingsPresets(r("noise_settings")),biome_source:ic.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/biome_source"}}),[ic.Switch]:[{push:"type"}],[ic.Case]:{"minecraft:fixed":{biome:n({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{seed:ic.NumberNode({integer:!0}),preset:ic.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(ic.Mod(ic.ListNode(r("generator_biome")),{default:()=>[{biome:"minecraft:plains"}]}))},"minecraft:checkerboard":{scale:ic.Opt(ic.NumberNode({integer:!0,min:0,max:62})),biomes:ic.ListNode(n({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:ic.NumberNode({integer:!0})},"minecraft:vanilla_layered":{seed:ic.NumberNode({integer:!0}),large_biomes:ic.Opt(ic.BooleanNode()),legacy_biome_init_layer:ic.Opt(ic.BooleanNode())}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:ic.ObjectNode({biome:ic.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:ic.Opt(ic.BooleanNode()),features:ic.Opt(ic.BooleanNode()),layers:ic.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",ic.Mod(ic.ObjectNode({biome:n({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:ic.ObjectNode({altitude:ic.NumberNode(),temperature:ic.NumberNode(),humidity:ic.NumberNode(),weirdness:ic.NumberNode(),offset:ic.NumberNode()})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})})),e.register("generator_biome_noise",ic.Mod(ic.ObjectNode({firstOctave:ic.NumberNode({integer:!0}),amplitudes:ic.ListNode(ic.NumberNode())},{context:"generator_biome_noise"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})}))};var ac={};Object.defineProperty(ac,"__esModule",{value:!0}),ac.initDimensionTypeSchemas=void 0;const sc=Me,cc=Qs;ac.initDimensionTypeSchemas=function(e,t){const r=sc.StringNode.bind(void 0,t);e.register("dimension_type",sc.Mod(sc.ObjectNode({name:sc.Mod(r({validator:"resource",params:{pool:"$dimension_type",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),ultrawarm:sc.BooleanNode(),natural:sc.BooleanNode(),piglin_safe:sc.BooleanNode(),respawn_anchor_works:sc.BooleanNode(),bed_works:sc.BooleanNode(),has_raids:sc.BooleanNode(),has_skylight:sc.BooleanNode(),has_ceiling:sc.BooleanNode(),coordinate_scale:sc.NumberNode({min:1e-5,max:3e7}),ambient_light:sc.NumberNode(),fixed_time:sc.Opt(sc.NumberNode({integer:!0})),logical_height:sc.NumberNode({integer:!0,min:0,max:4096}),effects:sc.Opt(r({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:r({validator:"resource",params:{pool:"$tag/block"}}),min_y:sc.NumberNode({integer:!0,min:-2048,max:2047}),height:sc.NumberNode({integer:!0,min:0,max:4096})},{context:"dimension_type"}),(e=>({default:()=>cc.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 lc={};Object.defineProperty(lc,"__esModule",{value:!0}),lc.initItemModifierSchemas=void 0;const uc=Me,dc=Qs;lc.initItemModifierSchemas=function(e,t){const r=uc.Reference.bind(void 0,e),n=uc.StringNode.bind(void 0,t);e.register("item_modifier",uc.ObjectOrList(r("function"),{choiceContext:"function"}));const i={conditions:uc.Opt(uc.ListNode(r("condition")))};e.register("function",uc.Mod(uc.ObjectNode({function:n({validator:"resource",params:{pool:"loot_function_type"}}),[uc.Switch]:[{push:"function"}],[uc.Case]:dc.FunctionCases(i)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))};var pc={},mc={};Object.defineProperty(mc,"__esModule",{value:!0}),mc.LootFunctions=mc.LootConditions=mc.LootCopySources=mc.LootEntitySources=mc.LootTableTypes=void 0,mc.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]}]]),mc.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),mc.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),mc.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",[]]]),mc.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(pc,"__esModule",{value:!0}),pc.initLootTableSchemas=void 0;const hc=Me,fc=mc,_c=Qs;pc.initLootTableSchemas=function(e,t){const r=hc.Reference.bind(void 0,e),n=hc.StringNode.bind(void 0,t),i={conditions:hc.Opt(hc.ListNode(r("loot_condition")))},o=s({functions:hc.Opt(hc.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 fc.LootTableTypes){const e=[...a,...s];i.push({match:e=>e.getModel().get(new hc.Path(["type"]))===t,node:n(o(e))})}return i.push({match:e=>!0,node:n(r)}),hc.SwitchNode(i)}const c=a(fc.LootConditions,"loot_condition_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),l=a(fc.LootFunctions,"loot_function_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),u=a(fc.LootEntitySources,"entity_source",(e=>n({enum:e}))),d=a(fc.LootCopySources,"copy_source",(e=>n({enum:e})));e.register("loot_table",hc.Mod(hc.ObjectNode({type:hc.Opt(n({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:hc.Opt(hc.ListNode(hc.Mod(hc.ObjectNode(s({rolls:r("number_provider"),bonus_rolls:hc.Opt(r("number_provider")),entries:hc.ListNode(r("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:hc.Opt(hc.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",hc.Mod(hc.ObjectNode({type:n({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:hc.Opt(hc.Mod(hc.NumberNode({integer:!0,min:1}),p)),quality:hc.Opt(hc.Mod(hc.NumberNode({integer:!0}),p)),[hc.Switch]:[{push:"type"}],[hc.Case]:{"minecraft:alternatives":s({children:hc.ListNode(r("loot_entry"))},o),"minecraft:dynamic":s({name:n()},o),"minecraft:group":s({children:hc.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:hc.ListNode(r("loot_entry"))},o),"minecraft:tag":s({name:n({validator:"resource",params:{pool:"$tag/item"}}),expand:hc.Opt(hc.BooleanNode())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",hc.Mod(hc.ObjectNode({function:l,[hc.Switch]:[{push:"function"}],[hc.Case]:_c.FunctionCases(i,d,u)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",hc.Mod(hc.ObjectNode({condition:c,[hc.Switch]:[{push:"condition"}],[hc.Case]:_c.ConditionCases(u)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",hc.Mod(hc.ObjectNode({attribute:n({validator:"resource",params:{pool:"attribute"}}),name:n(),amount:r("number_provider"),operation:n({enum:["addition","multiply_base","multiply_total"]}),slot:hc.StringOrList(n({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var gc={};Object.defineProperty(gc,"__esModule",{value:!0}),gc.initPackMcmetaSchemas=void 0;const bc=Me;gc.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",bc.Mod(bc.ObjectNode({pack:bc.Mod(bc.ObjectNode({pack_format:bc.Mod(bc.NumberNode({integer:!0,min:7,max:7}),{default:()=>7,canUpdate:(e,t)=>7!==t,update:()=>[{name:"pack_format",params:[7],newValue:7}]}),description:bc.Reference(e,"text_component")}),{default:()=>({pack_format:7,description:""})})}),{default:()=>({pack:{pack_format:7,description:""}})}))};var yc={};Object.defineProperty(yc,"__esModule",{value:!0}),yc.initPredicatesSchemas=void 0;const vc=Me;yc.initPredicatesSchemas=function(e,t){const r=vc.Reference.bind(void 0,e),n=vc.StringNode.bind(void 0,t),i=vc.ChoiceNode([{type:"string",node:n(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:vc.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:vc.ObjectNode({min:vc.Opt(vc.NumberNode({integer:!0})),max:vc.Opt(vc.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:vc.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",vc.ObjectNode({items:vc.Opt(vc.ListNode(n({validator:"resource",params:{pool:"item"}}))),tag:vc.Opt(n({validator:"resource",params:{pool:"$tag/item"}})),count:r("int_bounds"),durability:r("int_bounds"),potion:vc.Opt(n({validator:"resource",params:{pool:"potion"}})),nbt:vc.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:vc.Opt(vc.ListNode(r("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",vc.ObjectNode({enchantment:vc.Opt(n({validator:"resource",params:{pool:"enchantment"}})),levels:r("int_bounds")},{context:"enchantment"})),e.register("block_predicate",vc.ObjectNode({blocks:vc.Opt(vc.ListNode(n({validator:"resource",params:{pool:"block"}}))),tag:vc.Opt(n({validator:"resource",params:{pool:"$tag/block"}})),nbt:vc.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:vc.Opt(vc.MapNode(n(),i,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",vc.ObjectNode({fluid:vc.Opt(n({validator:"resource",params:{pool:"fluid"}})),tag:vc.Opt(n({validator:"resource",params:{pool:"$tag/fluid"}})),state:vc.Opt(vc.MapNode(n(),i))},{context:"fluid"})),e.register("location_predicate",vc.ObjectNode({position:vc.Opt(vc.ObjectNode({x:r("float_bounds"),y:r("float_bounds"),z:r("float_bounds")})),biome:vc.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:vc.Opt(n({enum:t.get("worldgen/structure_feature").map((e=>e.slice(10)))})),dimension:vc.Opt(n({validator:"resource",params:{pool:"$dimension"}})),light:vc.Opt(vc.ObjectNode({light:r("int_bounds")})),smokey:vc.Opt(vc.BooleanNode()),block:vc.Opt(r("block_predicate")),fluid:vc.Opt(r("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",vc.ObjectNode({type:n({validator:"resource",params:{pool:"stat_type"}}),stat:n(),value:r("int_bounds"),[vc.Switch]:[{push:"type"}],[vc.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",vc.ObjectNode({gamemode:vc.Opt(n({enum:"gamemode"})),level:r("int_bounds"),advancements:vc.Opt(vc.MapNode(n({validator:"resource",params:{pool:"$advancement"}}),vc.ChoiceNode([{type:"boolean",node:vc.BooleanNode(),change:e=>!0},{type:"object",node:vc.MapNode(n(),vc.BooleanNode())}]))),recipes:vc.Opt(vc.MapNode(n({validator:"resource",params:{pool:"$recipe"}}),vc.BooleanNode())),stats:vc.Opt(vc.ListNode(r("statistic_predicate"))),looking_at:vc.Opt(r("entity_predicate"))},{context:"player"})),e.register("status_effect_predicate",vc.ObjectNode({amplifier:r("int_bounds"),duration:r("int_bounds"),ambient:vc.Opt(vc.BooleanNode()),visible:vc.Opt(vc.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",vc.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",vc.ObjectNode({type:vc.Opt(n({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:vc.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:vc.Opt(n({validator:"team"})),location:vc.Opt(r("location_predicate")),stepping_on:vc.Opt(r("location_predicate")),distance:vc.Opt(r("distance_predicate")),flags:vc.Opt(vc.ObjectNode({is_on_fire:vc.Opt(vc.BooleanNode()),is_sneaking:vc.Opt(vc.BooleanNode()),is_sprinting:vc.Opt(vc.BooleanNode()),is_swimming:vc.Opt(vc.BooleanNode()),is_baby:vc.Opt(vc.BooleanNode())})),equipment:vc.Opt(vc.MapNode(n({enum:"slot"}),r("item_predicate"))),player:vc.Opt(r("player_predicate")),vehicle:vc.Opt(r("entity_predicate")),passenger:vc.Opt(r("entity_predicate")),targeted_entity:vc.Opt(r("entity_predicate")),lightning_bolt:vc.Opt(vc.ObjectNode({blocks_set_on_fire:vc.Opt(r("int_bounds")),entity_struck:vc.Opt(r("entity_predicate"))})),fishing_hook:vc.Opt(vc.ObjectNode({in_open_water:vc.Opt(vc.BooleanNode())})),effects:vc.Opt(vc.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),r("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",vc.ObjectNode({is_explosion:vc.Opt(vc.BooleanNode()),is_fire:vc.Opt(vc.BooleanNode()),is_magic:vc.Opt(vc.BooleanNode()),is_projectile:vc.Opt(vc.BooleanNode()),is_lightning:vc.Opt(vc.BooleanNode()),bypasses_armor:vc.Opt(vc.BooleanNode()),bypasses_invulnerability:vc.Opt(vc.BooleanNode()),bypasses_magic:vc.Opt(vc.BooleanNode()),source_entity:vc.Opt(r("entity_predicate")),direct_entity:vc.Opt(r("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",vc.ObjectNode({dealt:r("float_bounds"),taken:r("float_bounds"),blocked:vc.Opt(vc.BooleanNode()),source_entity:vc.Opt(r("entity_predicate")),type:vc.Opt(r("damage_source_predicate"))},{context:"damage"}))};var xc={};Object.defineProperty(xc,"__esModule",{value:!0}),xc.initRecipeSchemas=void 0;const Nc=Me;xc.initRecipeSchemas=function(e,t){const r=Nc.Reference.bind(void 0,e),n=Nc.StringNode.bind(void 0,t);e.register("recipe",Nc.Mod(Nc.ObjectNode({type:n({validator:"resource",params:{pool:"recipe_serializer"}}),[Nc.Switch]:[{push:"type"}],[Nc.Case]:{"minecraft:crafting_shaped":{group:Nc.Opt(n({enum:"recipe_group",additional:!0})),pattern:Nc.ListNode(n()),key:Nc.MapNode(n(),r("recipe_ingredient")),result:r("recipe_result")},"minecraft:crafting_shapeless":{group:Nc.Opt(n()),ingredients:Nc.ListNode(r("recipe_ingredient")),result:r("recipe_result")},"minecraft:smelting":{group:Nc.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Nc.Opt(Nc.NumberNode()),cookingtime:Nc.Opt(Nc.Mod(Nc.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:Nc.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Nc.Opt(Nc.NumberNode()),cookingtime:Nc.Opt(Nc.Mod(Nc.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:Nc.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Nc.Opt(Nc.NumberNode()),cookingtime:Nc.Opt(Nc.Mod(Nc.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:Nc.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Nc.Opt(Nc.NumberNode()),cookingtime:Nc.Opt(Nc.Mod(Nc.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:Nc.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),count:Nc.NumberNode({integer:!0})},"minecraft:smithing":{group:Nc.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",Nc.Mod(Nc.ChoiceNode([{type:"object",node:r("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:Nc.ListNode(r("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",Nc.Mod(Nc.ObjectNode({item:Nc.Opt(n({validator:"resource",params:{pool:"item"}})),tag:Nc.Opt(n({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",Nc.Mod(Nc.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),count:Nc.Opt(Nc.Mod(Nc.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var wc={};Object.defineProperty(wc,"__esModule",{value:!0}),wc.initTagsSchemas=void 0;const kc=Me;wc.initTagsSchemas=function(e,t){const r=kc.StringNode.bind(void 0,t),n=e=>kc.Mod(kc.ObjectNode({replace:kc.Opt(kc.BooleanNode()),values:kc.ListNode(kc.ChoiceNode([{type:"string",node:r({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:kc.ObjectNode({id:r({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:kc.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 Oc={};Object.defineProperty(Oc,"__esModule",{value:!0}),Oc.initTextComponentSchemas=void 0;const Sc=Me;Oc.initTextComponentSchemas=function(e,t){const r=Sc.Reference.bind(void 0,e),n=Sc.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",Sc.Mod(Sc.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:Sc.NumberNode(),change:e=>{const t=parseFloat(i(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:Sc.BooleanNode(),change:e=>{const t=i(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={color:Sc.Opt(n()),font:Sc.Opt(n()),bold:Sc.Opt(Sc.BooleanNode()),italic:Sc.Opt(Sc.BooleanNode()),underlined:Sc.Opt(Sc.BooleanNode()),strikethrough:Sc.Opt(Sc.BooleanNode()),obfuscated:Sc.Opt(Sc.BooleanNode()),insertion:Sc.Opt(n()),clickEvent:Sc.Opt(Sc.ObjectNode({action:n({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[Sc.Switch]:[{push:"action"}],[Sc.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:Sc.Opt(Sc.ObjectNode({action:n({enum:["show_text","show_item","show_entity"]}),[Sc.Switch]:[{push:"action"}],[Sc.Case]:{show_text:{value:Sc.Opt(r("text_component")),contents:Sc.Opt(r("text_component"))},show_item:{value:Sc.Opt(n({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:Sc.Opt(Sc.ObjectNode({id:n({validator:"resource",params:{pool:"item"}}),count:Sc.Opt(Sc.NumberNode({integer:!0})),tag:Sc.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:Sc.Opt(Sc.ObjectNode({name:Sc.Opt(n()),type:Sc.Opt(n()),id:Sc.Opt(n())})),contents:Sc.Opt(Sc.Mod(Sc.ObjectNode({name:Sc.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:Sc.Opt(r("text_component_list"))};e.register("text_component_object",Sc.Mod(Sc.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:Sc.ObjectNode(s({text:n()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:Sc.ObjectNode(s({translate:n(),with:Sc.Opt(r("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:Sc.ObjectNode(s({score:Sc.ObjectNode({name:n({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:n({validator:"objective"}),value:Sc.Opt(n())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:Sc.ObjectNode(s({selector:n({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:Sc.Opt(r("text_component"))},o))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:Sc.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:Sc.ObjectNode(s({nbt:n({validator:"nbt_path"}),block:Sc.Opt(n({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:Sc.Opt(n({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:Sc.Opt(n({validator:"resource",params:{pool:"$storage"}})),interpret:Sc.Opt(Sc.BooleanNode()),separator:Sc.Opt(r("text_component"))},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",Sc.Mod(Sc.ListNode(r("text_component")),{default:()=>[{text:""}]}))};var Ac={},Dc={};Object.defineProperty(Dc,"__esModule",{value:!0}),Dc.initBiomeSchemas=void 0;const Cc=Me;Dc.initBiomeSchemas=function(e,t){const r=Cc.StringNode.bind(void 0,t);e.register("biome",Cc.Mod(Cc.ObjectNode({surface_builder:r({validator:"resource",params:{pool:"$worldgen/configured_surface_builder"}}),depth:Cc.NumberNode(),scale:Cc.NumberNode(),temperature:Cc.NumberNode(),downfall:Cc.NumberNode(),precipitation:r({enum:["none","rain","snow"]}),temperature_modifier:Cc.Opt(r({enum:["none","frozen"]})),category:r({enum:"biome_category"}),player_spawn_friendly:Cc.Opt(Cc.BooleanNode()),creature_spawn_probability:Cc.Opt(Cc.NumberNode({min:0,max:1})),effects:Cc.ObjectNode({sky_color:Cc.NumberNode({color:!0}),fog_color:Cc.NumberNode({color:!0}),water_color:Cc.NumberNode({color:!0}),water_fog_color:Cc.NumberNode({color:!0}),grass_color:Cc.Opt(Cc.NumberNode({color:!0})),foliage_color:Cc.Opt(Cc.NumberNode({color:!0})),grass_color_modifier:Cc.Opt(r({enum:["none","dark_forest","swamp"]})),ambient_sound:Cc.Opt(r()),mood_sound:Cc.Opt(Cc.ObjectNode({sound:r(),tick_delay:Cc.NumberNode({integer:!0}),block_search_extent:Cc.NumberNode({integer:!0}),offset:Cc.NumberNode()})),additions_sound:Cc.Opt(Cc.ObjectNode({sound:r(),tick_chance:Cc.NumberNode({min:0,max:1})})),music:Cc.Opt(Cc.ObjectNode({sound:r(),min_delay:Cc.NumberNode({integer:!0,min:0}),max_delay:Cc.NumberNode({integer:!0,min:0}),replace_current_music:Cc.BooleanNode()})),particle:Cc.Opt(Cc.ObjectNode({options:Cc.ObjectNode({type:r()}),probability:Cc.NumberNode({min:0,max:1})}))}),starts:Cc.ListNode(r({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),spawners:Cc.MapNode(r({enum:["monster","creature","ambient","underground_water_creature","water_creature","water_ambient","misc"]}),Cc.Mod(Cc.ListNode(Cc.ObjectNode({type:r({validator:"resource",params:{pool:"entity_type"}}),weight:Cc.NumberNode({integer:!0}),minCount:Cc.NumberNode({integer:!0}),maxCount:Cc.NumberNode({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:Cc.MapNode(r({validator:"resource",params:{pool:"entity_type"}}),Cc.Mod(Cc.ObjectNode({energy_budget:Cc.NumberNode(),charge:Cc.NumberNode()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:Cc.MapNode(r({enum:["air","liquid"]}),Cc.Mod(Cc.ListNode(r({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:Cc.ListNode(Cc.Mod(Cc.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 Ec={};Object.defineProperty(Ec,"__esModule",{value:!0}),Ec.initCarverSchemas=void 0;const Fc=Me,Bc=Qs;Ec.initCarverSchemas=function(e,t){const r=Fc.Reference.bind(void 0,e),n=Fc.StringNode.bind(void 0,t),i={vertical_rotation:Bc.FloatProvider(),shape:Fc.ObjectNode({distance_factor:Bc.FloatProvider(),thickness:Bc.FloatProvider(),width_smoothness:Fc.NumberNode({integer:!0,min:0}),horizontal_radius_factor:Bc.FloatProvider(),vertical_radius_default_factor:Fc.NumberNode(),vertical_radius_center_factor:Fc.NumberNode()})},o={horizontal_radius_multiplier:Bc.FloatProvider(),vertical_radius_multiplier:Bc.FloatProvider(),floor_level:Bc.FloatProvider({min:-1,max:1})};e.register("configured_carver",Fc.Mod(Fc.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/carver"}}),config:Fc.ObjectNode({probability:Fc.NumberNode({min:0,max:1}),y:r("height_provider"),yScale:Bc.FloatProvider(),lava_level:r("vertical_anchor"),aquifers_enabled:Fc.BooleanNode(),debug_settings:Fc.Opt(Fc.ObjectNode({debug_mode:Fc.Opt(Fc.BooleanNode()),air_state:Fc.Opt(r("block_state")),water_state:Fc.Opt(r("block_state")),lava_state:Fc.Opt(r("block_state")),barrier_state:Fc.Opt(r("block_state"))})),[Fc.Switch]:["pop",{push:"type"}],[Fc.Case]:{"minecraft:canyon":i,"minecraft:cave":o,"minecraft:nether_cave":o}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))};var Mc={};Object.defineProperty(Mc,"__esModule",{value:!0}),Mc.initDecoratorSchemas=void 0;const jc=Me,Tc=Qs;Mc.initDecoratorSchemas=function(e,t){const r=jc.Reference.bind(void 0,e),n=jc.StringNode.bind(void 0,t),i={count:Tc.IntProvider({min:0,max:256})};e.register("configured_decorator",jc.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/decorator"}}),config:jc.ObjectNode({[jc.Switch]:["pop",{push:"type"}],[jc.Case]:{"minecraft:carving_mask":{step:n({enum:"generation_step"})},"minecraft:cave_surface":{surface:n({enum:["floor","ceiling"]}),floor_to_ceiling_search_range:jc.NumberNode({integer:!0})},"minecraft:chance":{chance:jc.NumberNode({integer:!0,min:0})},"minecraft:count":i,"minecraft:count_extra":{count:jc.NumberNode({integer:!0,min:0}),extra_count:jc.NumberNode({integer:!0,min:0}),extra_chance:jc.NumberNode({min:0,max:1})},"minecraft:count_multilayer":i,"minecraft:count_noise":{noise_level:jc.NumberNode(),below_noise:jc.NumberNode({integer:!0}),above_noise:jc.NumberNode({integer:!0})},"minecraft:count_noise_biased":{noise_to_count_ratio:jc.NumberNode({integer:!0}),noise_factor:jc.NumberNode(),noise_offset:jc.Opt(jc.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:jc.NumberNode({integer:!0,min:0})},"minecraft:range":{height:r("height_provider")},"minecraft:water_depth_threshold":{max_water_depth:jc.NumberNode({integer:!0})}}},{context:"decorator",category:"predicate"})},{context:"decorator",category:"predicate"}))};var Ic={},Pc={};Object.defineProperty(Pc,"__esModule",{value:!0}),Pc.initProcessorListSchemas=Pc.Processors=void 0;const Lc=Me;Pc.initProcessorListSchemas=function(e,t){const r=Lc.Reference.bind(void 0,e),n=Lc.StringNode.bind(void 0,t);Pc.Processors=Lc.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",Lc.Mod(Lc.ObjectNode({processors:Lc.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",Lc.Mod(Lc.ObjectNode({processor_type:n({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[Lc.Switch]:[{push:"processor_type"}],[Lc.Case]:{"minecraft:block_age":{mossiness:Lc.NumberNode()},"minecraft:block_ignore":{blocks:Lc.ListNode(r("block_state"))},"minecraft:block_rot":{integrity:Lc.NumberNode({min:0,max:1})},"minecraft:gravity":{heightmap:n({enum:"heightmap_type"}),offset:Lc.NumberNode({integer:!0})},"minecraft:protected_blocks":{value:n({validator:"resource",params:{pool:"$tag/block"}})},"minecraft:rule":{rules:Lc.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",Lc.Mod(Lc.ObjectNode({position_predicate:Lc.Opt(r("pos_rule_test")),location_predicate:r("rule_test"),input_predicate:r("rule_test"),output_state:r("block_state"),output_nbt:Lc.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:Lc.Opt(Lc.NumberNode({min:0,max:255,integer:!0})),max_dist:Lc.Opt(Lc.NumberNode({min:0,max:255,integer:!0})),min_chance:Lc.Opt(Lc.NumberNode({min:0,max:1})),max_chance:Lc.Opt(Lc.NumberNode({min:0,max:1}))};e.register("pos_rule_test",Lc.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"pos_rule_test"}}),[Lc.Switch]:[{push:"predicate_type"}],[Lc.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",Lc.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"rule_test"}}),[Lc.Switch]:[{push:"predicate_type"}],[Lc.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:Lc.NumberNode({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:r("block_state"),probability:Lc.NumberNode({min:0,max:1})},"minecraft:tag_match":{tag:n({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))},Object.defineProperty(Ic,"__esModule",{value:!0}),Ic.initFeatureSchemas=void 0;const Rc=Me,zc=Qs,Uc=Pc;Ic.initFeatureSchemas=function(e,t){const r=Rc.Reference.bind(void 0,e),n=Rc.StringNode.bind(void 0,t),i={can_replace:Rc.Opt(Rc.BooleanNode()),project:Rc.Opt(Rc.BooleanNode()),need_water:Rc.Opt(Rc.BooleanNode()),xspread:Rc.Opt(Rc.NumberNode({integer:!0,min:0})),yspread:Rc.Opt(Rc.NumberNode({integer:!0,min:0})),zspread:Rc.Opt(Rc.NumberNode({integer:!0,min:0})),tries:Rc.Opt(Rc.NumberNode({integer:!0,min:1})),state_provider:r("block_state_provider"),block_placer:r("block_placer"),whitelist:Rc.ListNode(r("block_state")),blacklist:Rc.ListNode(r("block_state"))},o={state:r("block_state"),radius:zc.IntProvider({min:0,max:8}),half_height:Rc.NumberNode({integer:!0,min:0,max:4}),targets:Rc.ListNode(r("block_state"))},a={cap_provider:r("block_state_provider"),stem_provider:r("block_state_provider"),foliage_radius:Rc.Opt(Rc.NumberNode({integer:!0}))},s=Rc.ObjectNode({target:r("rule_test"),state:r("block_state")}),c={size:Rc.NumberNode({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:Rc.NumberNode({min:0,max:1}),targets:Rc.ListNode(s)},l=Rc.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:zc.IntProvider({min:1,max:128}),vertical_range:Rc.NumberNode({integer:!0,min:1,max:256}),extra_bottom_block_chance:Rc.NumberNode({min:0,max:1}),extra_edge_column_chance:Rc.NumberNode({min:0,max:1}),vegetation_chance:Rc.NumberNode({min:0,max:1}),xz_radius:zc.IntProvider(),replaceable:n({validator:"resource",params:{pool:"$tag/block"}}),ground_state:r("block_state_provider"),vegetation_feature:l};e.register("configured_feature",Rc.Mod(Rc.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature"}}),config:Rc.ObjectNode({[Rc.Switch]:["pop",{push:"type"}],[Rc.Case]:{"minecraft:bamboo":{probability:Rc.NumberNode({min:0,max:1})},"minecraft:basalt_columns":{reach:zc.IntProvider({min:0,max:3}),height:zc.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:zc.IntProvider({min:0,max:16}),rim_size:zc.IntProvider({min:0,max:16})},"minecraft:disk":o,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:Rc.NumberNode({integer:!0,min:1,max:512}),height:zc.IntProvider({min:0,max:128}),radius:zc.IntProvider({min:0,max:128}),max_stalagmite_stalactite_height_diff:Rc.NumberNode({integer:!0,min:0,max:64}),height_deviation:Rc.NumberNode({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:zc.IntProvider({min:0,max:128}),density:zc.FloatProvider({min:0,max:2}),wetness:zc.FloatProvider({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:Rc.NumberNode({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:Rc.NumberNode({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:Rc.NumberNode({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:Rc.BooleanNode(),exit:Rc.Opt(r("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:Rc.Opt(Rc.BooleanNode()),crystal_beam_target:Rc.Opt(r("block_pos")),spikes:Rc.ListNode(Rc.ObjectNode({centerX:Rc.Opt(Rc.NumberNode({integer:!0})),centerZ:Rc.Opt(Rc.NumberNode({integer:!0})),radius:Rc.Opt(Rc.NumberNode({integer:!0})),height:Rc.Opt(Rc.NumberNode({integer:!0})),guarded:Rc.Opt(Rc.BooleanNode())}))},"minecraft:fill_layer":{state:r("block_state"),height:Rc.NumberNode({integer:!0,min:0,max:255})},"minecraft:flower":i,"minecraft:forest_rock":{state:r("block_state")},"minecraft:fossil":{max_empty_corners_allowed:Rc.NumberNode({integer:!0,min:0,max:7}),fossil_structures:Rc.ListNode(n({validator:"resource",params:{pool:"$structure"}})),overlay_structures:Rc.ListNode(n({validator:"resource",params:{pool:"$structure"}})),fossil_processors:Uc.Processors,overlay_processors:Uc.Processors},"minecraft:geode":{blocks:Rc.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:Rc.ListNode(r("block_state")),cannot_replace:n({validator:"resource",params:{pool:"$tag/block"}}),invalid_blocks:n({validator:"resource",params:{pool:"$tag/block"}})}),layers:Rc.ObjectNode({filling:Rc.Opt(Rc.NumberNode({min:.01,max:50})),inner_layer:Rc.Opt(Rc.NumberNode({min:.01,max:50})),middle_layer:Rc.Opt(Rc.NumberNode({min:.01,max:50})),outer_layer:Rc.Opt(Rc.NumberNode({min:.01,max:50}))}),crack:Rc.ObjectNode({generate_crack_chance:Rc.Opt(Rc.NumberNode({min:0,max:1})),base_crack_size:Rc.Opt(Rc.NumberNode({min:0,max:5})),crack_point_offset:Rc.Opt(Rc.NumberNode({min:0,max:10,integer:!0}))}),noise_multiplier:Rc.Opt(Rc.NumberNode({min:0,max:1})),use_potential_placements_chance:Rc.Opt(Rc.NumberNode({min:0,max:1})),use_alternate_layer0_chance:Rc.Opt(Rc.NumberNode({min:0,max:1})),placements_require_layer0_alternate:Rc.Opt(Rc.BooleanNode()),outer_wall_distance:Rc.Opt(zc.IntProvider({min:1,max:20})),distribution_points:Rc.Opt(zc.IntProvider({min:1,max:20})),point_offset:Rc.Opt(zc.IntProvider({min:0,max:10})),min_gen_offset:Rc.Opt(Rc.NumberNode({integer:!0})),max_gen_offset:Rc.Opt(Rc.NumberNode({integer:!0})),invalid_blocks_threshold:Rc.NumberNode({integer:!0})},"minecraft:glow_lichen":{search_range:Rc.Opt(Rc.NumberNode({min:1,max:64,integer:!0})),chance_of_spreading:Rc.Opt(Rc.NumberNode({min:0,max:1})),can_place_on_floor:Rc.Opt(Rc.BooleanNode()),can_place_on_ceiling:Rc.Opt(Rc.BooleanNode()),can_place_on_wall:Rc.Opt(Rc.BooleanNode()),can_be_placed_on:Rc.ListNode(r("block_state"))},"minecraft:growing_plant":{direction:n({enum:["up","down","north","east","south","west"]}),allow_water:Rc.BooleanNode(),height_distribution:Rc.ListNode(Rc.ObjectNode({weight:Rc.NumberNode({integer:!0}),data:zc.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:Rc.Opt(Rc.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:Rc.Opt(Rc.NumberNode({integer:!0,min:1,max:512})),column_radius:zc.IntProvider({min:0,max:60}),height_scale:zc.FloatProvider({min:0,max:20}),max_column_radius_to_cave_height_ratio:Rc.NumberNode({min:0,max:1}),stalactite_bluntness:zc.FloatProvider({min:.1,max:10}),stalagmite_bluntness:zc.FloatProvider({min:.1,max:10}),wind_speed:zc.FloatProvider({min:0,max:2}),min_radius_for_wind:Rc.NumberNode({integer:!0,min:0,max:100}),min_bluntness_for_wind:Rc.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:zc.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:Rc.ListNode(Rc.ObjectNode({chance:Rc.NumberNode({min:0,max:1}),feature:l})),default:l},"minecraft:replace_single_block":{targets:Rc.ListNode(s)},"minecraft:root_system":{required_vertical_space_for_tree:Rc.NumberNode({integer:!0,min:1,max:64}),root_radius:Rc.NumberNode({integer:!0,min:1,max:64}),root_placement_attempts:Rc.NumberNode({integer:!0,min:1,max:256}),root_column_max_height:Rc.NumberNode({integer:!0,min:1,max:4096}),hanging_root_radius:Rc.NumberNode({integer:!0,min:1,max:64}),hanging_roots_vertical_span:Rc.NumberNode({integer:!0,min:0,max:16}),hanging_root_placement_attempts:Rc.NumberNode({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:Rc.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:zc.IntProvider({min:0,max:256})},"minecraft:seagrass":{probability:Rc.NumberNode({min:0,max:1})},"minecraft:simple_block":{to_place:r("block_state_provider"),place_on:Rc.Opt(Rc.ListNode(r("block_state"))),place_in:Rc.Opt(Rc.ListNode(r("block_state"))),place_under:Rc.Opt(Rc.ListNode(r("block_state")))},"minecraft:simple_random_selector":{features:Rc.ListNode(l)},"minecraft:small_dripstone":{max_placements:Rc.Opt(Rc.NumberNode({integer:!0,min:0,max:100})),empty_space_search_radius:Rc.Opt(Rc.NumberNode({integer:!0,min:0,max:20})),max_offset_from_origin:Rc.Opt(Rc.NumberNode({integer:!0,min:0,max:20})),chance_of_taller_dripstone:Rc.Opt(Rc.NumberNode({min:0,max:1}))},"minecraft:spring_feature":{state:r("fluid_state"),rock_count:Rc.NumberNode({integer:!0}),hole_count:Rc.NumberNode({integer:!0}),requires_block_below:Rc.BooleanNode(),valid_blocks:Rc.ListNode(n({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{ignore_vines:Rc.Opt(Rc.BooleanNode()),force_dirt:Rc.Opt(Rc.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:Rc.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:Rc.NumberNode({integer:!0,min:0,max:32}),height_rand_a:Rc.NumberNode({integer:!0,min:0,max:24}),height_rand_b:Rc.NumberNode({integer:!0,min:0,max:24}),[Rc.Switch]:[{push:"type"}],[Rc.Case]:{"minecraft:bending_trunk_placer":{bend_length:zc.IntProvider({min:1,max:64}),min_height_for_leaves:Rc.Opt(Rc.NumberNode({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:Rc.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:zc.IntProvider({min:0,max:16}),offset:zc.IntProvider({min:0,max:16}),[Rc.Switch]:[{push:"type"}],[Rc.Case]:{"minecraft:blob_foliage_placer":{height:Rc.NumberNode({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:Rc.NumberNode({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:Rc.NumberNode({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:Rc.NumberNode({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:zc.IntProvider({min:0,max:24})},"minecraft:pine_foliage_placer":{height:zc.IntProvider({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:zc.IntProvider({min:1,max:512}),leaf_placement_attempts:Rc.NumberNode({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:zc.IntProvider({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:Rc.ListNode(Rc.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[Rc.Switch]:[{push:"type"}],[Rc.Case]:{"minecraft:alter_ground":{provider:r("block_state_provider")},"minecraft:beehive":{probability:Rc.NumberNode({min:0,max:1})},"minecraft:cocoa":{probability:Rc.NumberNode({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:underwater_magma":{floor_search_range:Rc.NumberNode({integer:!0,min:0,max:512}),placement_radius_around_floor:Rc.NumberNode({integer:!0,min:0,max:64}),placement_probability_per_valid_position:Rc.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",Rc.Mod(Rc.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:Rc.Opt(Rc.NumberNode({min:0,max:80})),[Rc.Switch]:[{push:"type"}],[Rc.Case]:{"minecraft:two_layers_feature_size":{limit:Rc.Opt(Rc.NumberNode({integer:!0,min:0,max:81})),lower_size:Rc.Opt(Rc.NumberNode({integer:!0,min:0,max:16})),upper_size:Rc.Opt(Rc.NumberNode({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:Rc.Opt(Rc.NumberNode({integer:!0,min:0,max:80})),upper_limit:Rc.Opt(Rc.NumberNode({integer:!0,min:0,max:80})),lower_size:Rc.Opt(Rc.NumberNode({integer:!0,min:0,max:16})),middle_size:Rc.Opt(Rc.NumberNode({integer:!0,min:0,max:16})),upper_size:Rc.Opt(Rc.NumberNode({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})})),e.register("block_state_provider",Rc.Mod(Rc.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[Rc.Switch]:[{push:"type"}],[Rc.Case]:{"minecraft:randomized_int_state_provider":{property:n(),values:zc.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:Rc.ListNode(Rc.Mod(Rc.ObjectNode({weight:Rc.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",Rc.Mod(Rc.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/block_placer_type"}}),[Rc.Switch]:[{push:"type"}],[Rc.Case]:{"minecraft:column_placer":{size:zc.IntProvider({min:0})}}},{context:"block_placer"}),{default:()=>({type:"minecraft:simple_block_placer"})}))};var $c={};Object.defineProperty($c,"__esModule",{value:!0}),$c.initNoiseSettingsSchemas=void 0;const Xc=Me,Jc=Qs;$c.initNoiseSettingsSchemas=function(e,t){const r=Xc.Reference.bind(void 0,e),n=Xc.StringNode.bind(void 0,t);e.register("noise_settings",Xc.Mod(Xc.ObjectNode({name:Xc.Mod(n({validator:"resource",params:{pool:"$worldgen/noise_settings",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),bedrock_roof_position:Xc.NumberNode({integer:!0}),bedrock_floor_position:Xc.NumberNode({integer:!0}),sea_level:Xc.NumberNode({integer:!0}),min_surface_level:Xc.NumberNode({integer:!0}),disable_mob_generation:Xc.BooleanNode(),noise_caves_enabled:Xc.BooleanNode(),noodle_caves_enabled:Xc.BooleanNode(),aquifers_enabled:Xc.BooleanNode(),deepslate_enabled:Xc.BooleanNode(),ore_veins_enabled:Xc.BooleanNode(),default_block:r("block_state"),default_fluid:r("block_state"),noise:Xc.ObjectNode({min_y:Xc.NumberNode({integer:!0,min:-2048,max:2047}),height:Xc.NumberNode({integer:!0,min:0,max:4096}),density_factor:Xc.NumberNode(),density_offset:Xc.NumberNode(),size_horizontal:Xc.NumberNode({integer:!0}),size_vertical:Xc.NumberNode({integer:!0}),simplex_surface_noise:Xc.BooleanNode(),random_density_offset:Xc.Opt(Xc.BooleanNode()),island_noise_override:Xc.Opt(Xc.BooleanNode()),amplified:Xc.Opt(Xc.BooleanNode()),sampling:Xc.ObjectNode({xz_scale:Xc.NumberNode(),y_scale:Xc.NumberNode(),xz_factor:Xc.NumberNode(),y_factor:Xc.NumberNode()}),bottom_slide:Xc.ObjectNode({target:Xc.NumberNode({integer:!0}),size:Xc.NumberNode({integer:!0,min:0}),offset:Xc.NumberNode({integer:!0})}),top_slide:Xc.ObjectNode({target:Xc.NumberNode({integer:!0}),size:Xc.NumberNode({integer:!0,min:0}),offset:Xc.NumberNode({integer:!0})})}),structures:r("generator_structures")},{context:"noise_settings"}),(e=>({default:()=>Jc.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",Xc.ObjectNode({stronghold:Xc.Opt(Xc.ObjectNode({distance:Xc.NumberNode({integer:!0,min:0,max:1023}),spread:Xc.NumberNode({integer:!0,min:0,max:1023}),count:Xc.NumberNode({integer:!0,min:1,max:4095})})),structures:Xc.MapNode(n({validator:"resource",params:{pool:"worldgen/structure_feature"}}),Xc.Mod(Xc.ObjectNode({spacing:Xc.NumberNode({integer:!0,min:0,max:4096}),separation:Xc.Mod(Xc.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:Xc.NumberNode({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),e.register("generator_layer",Xc.Mod(Xc.ObjectNode({block:n({validator:"resource",params:{pool:"block"}}),height:Xc.NumberNode({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})}))};var qc={};Object.defineProperty(qc,"__esModule",{value:!0}),qc.initStructureFeatureSchemas=void 0;const Hc=Me;qc.initStructureFeatureSchemas=function(e,t){const r=Hc.StringNode.bind(void 0,t),n=Hc.Reference.bind(void 0,e),i={start_pool:r({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:Hc.NumberNode({integer:!0})};e.register("configured_structure_feature",Hc.Mod(Hc.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:Hc.ObjectNode({[Hc.Switch]:["pop",{push:"type"}],[Hc.Case]:{"minecraft:bastion_remnant":i,"minecraft:buried_treasure":{probability:Hc.NumberNode({min:0,max:1})},"minecraft:mineshaft":{type:r({enum:["normal","mesa"]}),probability:Hc.NumberNode({min:0,max:1})},"minecraft:nether_fossil":{height:n("height_provider")},"minecraft:ocean_ruin":{biome_temp:r({enum:["cold","warm"]}),large_probability:Hc.NumberNode({min:0,max:1}),cluster_probability:Hc.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:Hc.Opt(Hc.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 Wc={};Object.defineProperty(Wc,"__esModule",{value:!0}),Wc.initSurfaceBuilderSchemas=void 0;const Zc=Me;Wc.initSurfaceBuilderSchemas=function(e,t){const r=Zc.StringNode.bind(void 0,t),n=Zc.Reference.bind(void 0,e);e.register("configured_surface_builder",Zc.Mod(Zc.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/surface_builder"}}),config:Zc.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 Gc={};Object.defineProperty(Gc,"__esModule",{value:!0}),Gc.initTemplatePoolSchemas=void 0;const Kc=Me,Yc=Pc;Gc.initTemplatePoolSchemas=function(e,t){const r=Kc.Reference.bind(void 0,e),n=Kc.StringNode.bind(void 0,t);e.register("template_pool",Kc.Mod(Kc.ObjectNode({name:n(),fallback:n(),elements:Kc.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",Kc.Mod(Kc.ObjectNode({weight:Kc.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",Kc.Mod(Kc.ObjectNode({element_type:n({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:n({enum:["rigid","terrain_matching"]}),[Kc.Switch]:[{push:"element_type"}],[Kc.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:Yc.Processors},"minecraft:list_pool_element":{elements:Kc.ListNode(r("template_element"))},"minecraft:single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:Yc.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))},Object.defineProperty(Ac,"__esModule",{value:!0}),Ac.initWorldgenSchemas=void 0;const Vc=Dc,Qc=Ec,el=Mc,tl=Ic,rl=$c,nl=Pc,il=qc,ol=Wc,al=Gc;Ac.initWorldgenSchemas=function(e,t){nl.initProcessorListSchemas(e,t),Vc.initBiomeSchemas(e,t),Qc.initCarverSchemas(e,t),el.initDecoratorSchemas(e,t),tl.initFeatureSchemas(e,t),rl.initNoiseSettingsSchemas(e,t),il.initStructureFeatureSchemas(e,t),ol.initSurfaceBuilderSchemas(e,t),al.initTemplatePoolSchemas(e,t)};var sl={};Object.defineProperty(sl,"__esModule",{value:!0}),sl.initWorldSettingsSchemas=void 0;const cl=Me;sl.initWorldSettingsSchemas=function(e,t){const r=cl.Reference.bind(void 0,e),n=cl.StringNode.bind(void 0,t);e.register("world_settings",cl.Mod(cl.ObjectNode({generate_features:cl.BooleanNode(),bonus_chest:cl.BooleanNode(),seed:cl.NumberNode({integer:!0}),dimensions:cl.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(Ks,"__esModule",{value:!0}),Ks.initSchemas=void 0;const ll=Ys,ul=Qs,dl=ec,pl=nc,ml=ac,hl=lc,fl=pc,_l=gc,gl=yc,bl=xc,yl=wc,vl=Oc,xl=Ac,Nl=sl;Ks.initSchemas=function(e,t){ul.initCommonSchemas(e,t),ll.initAdvancementSchemas(e,t),dl.initConditionSchemas(e,t),ml.initDimensionTypeSchemas(e,t),pl.initDimensionSchemas(e,t),hl.initItemModifierSchemas(e,t),fl.initLootTableSchemas(e,t),_l.initPackMcmetaSchemas(e,t),gl.initPredicatesSchemas(e,t),bl.initRecipeSchemas(e,t),yl.initTagsSchemas(e,t),vl.initTextComponentSchemas(e,t),xl.initWorldgenSchemas(e,t),Nl.initWorldSettingsSchemas(e,t)};var wl=Be&&Be.__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]}),kl=Be&&Be.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Ol=Be&&Be.__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)&&wl(t,e,r);return kl(t,e),t};Object.defineProperty(Zs,"__esModule",{value:!0});var Sl=Zs.getSchemas=Zs.getCollections=void 0;const Al=Me,Dl=Gs,Cl=Ks;var El=Zs.lootContext=Ol(mc);var Fl=Zs.getCollections=function(){const e=new Al.CollectionRegistry;return Dl.initCollections(e),e};Sl=Zs.getSchemas=function(e){const t=new Al.SchemaRegistry;return Cl.initSchemas(t,e),t};var Bl=Object.freeze(Object.assign(Object.create(null),Zs,{[Symbol.toStringTag]:"Module",get getSchemas(){return Sl},get getCollections(){return Fl},lootContext:El,default:Zs})),Ml={},jl={};Object.defineProperty(jl,"__esModule",{value:!0}),jl.initCollections=void 0,jl.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 Tl={},Il={};Object.defineProperty(Il,"__esModule",{value:!0}),Il.initAdvancementSchemas=void 0;const Pl=Me;Il.initAdvancementSchemas=function(e,t){const r=Pl.Reference.bind(void 0,e),n=Pl.StringNode.bind(void 0,t),i=Pl.ChoiceNode([{type:"object",node:Pl.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:Pl.ListNode(r("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",Pl.Mod(Pl.ObjectNode({display:Pl.Opt(Pl.Mod(Pl.ObjectNode({icon:Pl.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),nbt:Pl.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:r("text_component"),description:r("text_component"),background:Pl.Opt(n()),frame:Pl.Opt(n({enum:["task","challenge","goal"]})),show_toast:Pl.Opt(Pl.BooleanNode()),announce_to_chat:Pl.Opt(Pl.BooleanNode()),hidden:Pl.Opt(Pl.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:Pl.Opt(n({validator:"resource",params:{pool:"$advancement"}})),criteria:Pl.MapNode(n(),r("advancement_criteria")),requirements:Pl.Opt(Pl.ListNode(Pl.ListNode(n()))),rewards:Pl.Opt(Pl.ObjectNode({function:Pl.Opt(n({validator:"resource",params:{pool:"$function"}})),loot:Pl.Opt(Pl.ListNode(n({validator:"resource",params:{pool:"$loot_table"}}))),recipes:Pl.Opt(Pl.ListNode(n({validator:"resource",params:{pool:"$recipe"}}))),experience:Pl.Opt(Pl.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",Pl.ObjectNode({trigger:n({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:Pl.Opt(Pl.ObjectNode({player:Pl.Mod(i,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[Pl.Switch]:["pop",{push:"trigger"}],[Pl.Case]:{"minecraft:bee_nest_destroyed":{block:Pl.Opt(n({validator:"resource",params:{pool:"block"}})),num_bees_inside:Pl.Opt(Pl.NumberNode({integer:!0})),item:Pl.Opt(r("item_predicate"))},"minecraft:bred_animals":{parent:i,partner:i,child:i},"minecraft:brewed_potion":{potion:Pl.Opt(n({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:Pl.Opt(n({validator:"resource",params:{pool:"$dimension"}})),to:Pl.Opt(n({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:Pl.Opt(Pl.ListNode(i))},"minecraft:construct_beacon":{level:r("int_bounds")},"minecraft:consume_item":{item:Pl.Opt(r("item_predicate"))},"minecraft:cured_zombie_villager":{villager:i,zombie:i},"minecraft:effects_changed":{effects:Pl.Opt(Pl.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),Pl.ObjectNode({amplifier:r("int_bounds"),duration:r("int_bounds")}))),source:Pl.Opt(i)},"minecraft:enter_block":{block:Pl.Opt(n({validator:"resource",params:{pool:"block"}})),state:Pl.Opt(Pl.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:r("int_bounds"),item:Pl.Opt(r("item_predicate"))},"minecraft:entity_hurt_player":{damage:Pl.Opt(r("damage_predicate"))},"minecraft:entity_killed_player":{entity:i,killing_blow:Pl.Opt(r("damage_source_predicate"))},"minecraft:fall_from_height":{start_position:Pl.Opt(r("location_predicate")),distance:Pl.Opt(r("distance_predicate"))},"minecraft:filled_bucket":{item:Pl.Opt(r("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:i,item:Pl.Opt(r("item_predicate"))},"minecraft:hero_of_the_village":{location:Pl.Opt(r("location_predicate"))},"minecraft:inventory_changed":{slots:Pl.Opt(Pl.ObjectNode({empty:r("int_bounds"),occupied:r("int_bounds"),full:r("int_bounds")})),items:Pl.Opt(Pl.ListNode(r("item_predicate")))},"minecraft:item_durability_changed":{delta:r("int_bounds"),durability:r("int_bounds"),item:Pl.Opt(r("item_predicate"))},"minecraft:item_used_on_block":{item:Pl.Opt(r("item_predicate")),location:Pl.Opt(r("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:r("int_bounds"),victims:Pl.Opt(Pl.ListNode(i))},"minecraft:levitation":{distance:Pl.Opt(r("distance_predicate")),duration:r("int_bounds")},"minecraft:lightning_strike":{lightning:i,bystander:i},"minecraft:location":{location:Pl.Opt(r("location_predicate"))},"minecraft:nether_travel":{start_position:Pl.Opt(r("location_predicate")),distance:Pl.Opt(r("distance_predicate"))},"minecraft:placed_block":{block:Pl.Opt(n({validator:"resource",params:{pool:"block"}})),state:Pl.Opt(Pl.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:Pl.Opt(r("item_predicate")),location:Pl.Opt(r("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:n({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:Pl.Opt(r("damage_predicate")),entity:i},"minecraft:player_interacted_with_entity":{item:Pl.Opt(r("item_predicate")),entity:i},"minecraft:player_killed_entity":{entity:i,killing_blow:Pl.Opt(r("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:n({validator:"resource",params:{pool:"$recipe"}})},"minecraft:ride_entity_in_lava":{start_position:Pl.Opt(r("location_predicate")),distance:Pl.Opt(r("distance_predicate"))},"minecraft:slept_in_bed":{location:Pl.Opt(r("location_predicate"))},"minecraft:slide_down_block":{block:Pl.Opt(n({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:Pl.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:Pl.Opt(r("entity_predicate")),item:Pl.Opt(r("item_predicate"))},"minecraft:used_ender_eye":{distance:Pl.Opt(r("float_bounds"))},"minecraft:used_totem":{item:Pl.Opt(r("item_predicate"))},"minecraft:using_item":{item:Pl.Opt(r("item_predicate"))},"minecraft:villager_trade":{villager:Pl.Opt(r("entity_predicate")),item:Pl.Opt(r("item_predicate"))},"minecraft:voluntary_exile":{location:Pl.Opt(r("location_predicate"))}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var Ll={},Rl={};Object.defineProperty(Rl,"__esModule",{value:!0}),Rl.initModelSchemas=void 0;const zl=Me;Rl.initModelSchemas=function(e,t){zl.Reference.bind(void 0,e);const r=zl.StringNode.bind(void 0,t),n=(e,t,r)=>zl.ListNode(zl.NumberNode({min:t,max:r}),{minLength:e,maxLength:e}),i=zl.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",zl.Mod(zl.ObjectNode({parent:r({validator:"resource",params:{pool:"$model"}}),ambientocclusion:zl.Opt(zl.BooleanNode()),gui_light:zl.Opt(r({enum:"gui_light"})),textures:zl.Opt(zl.MapNode(r(),i)),elements:zl.Opt(zl.ListNode(zl.ObjectNode({from:n(3,-16,32),to:n(3,-16,32),rotation:zl.Opt(zl.ObjectNode({origin:n(3),axis:r({enum:"axis"}),angle:zl.NumberEnum({values:[-45,-22.5,0,22.5,45]}),rescale:zl.Opt(zl.BooleanNode())})),shade:zl.Opt(zl.BooleanNode()),faces:zl.MapNode(r({enum:"direction"}),zl.ObjectNode({texture:i,uv:zl.Opt(n(4)),cullface:zl.Opt(r({enum:"direction"})),rotation:zl.Opt(zl.NumberNode({integer:!0})),tintindex:zl.Opt(zl.NumberNode({integer:!0}))}))},{context:"model_element"}))),display:zl.Opt(zl.MapNode(r({enum:"display_position"}),zl.ObjectNode({rotation:n(3),translation:n(3,-80,80),scale:n(3,-4,4)},{context:"item_transform"}))),overrides:zl.Opt(zl.ListNode(zl.ObjectNode({predicate:zl.MapNode(r({enum:"item_model_predicates"}),zl.NumberNode()),model:r({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))};var Ul={};Object.defineProperty(Ul,"__esModule",{value:!0}),Ul.initBlockDefinitionSchemas=void 0;const $l=Me;Ul.initBlockDefinitionSchemas=function(e,t){const r=$l.Reference.bind(void 0,e),n=$l.StringNode.bind(void 0,t);e.register("block_definition",$l.Mod($l.ChoiceNode([{type:"variants",match:e=>void 0!==e.variants,node:$l.ObjectNode({variants:$l.MapNode(n(),r("model_variant"))}),change:e=>({variants:{"":{}}})},{type:"multipart",match:e=>void 0!==e.multipart,node:$l.ObjectNode({multipart:$l.ListNode($l.ObjectNode({when:$l.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:$l.Opt($l.NumberEnum({integer:!0,values:[0,90,180,270]})),y:$l.Opt($l.NumberEnum({integer:!0,values:[0,90,180,270]})),uvlock:$l.Opt($l.BooleanNode())};e.register("model_variant",$l.ChoiceNode([{type:"object",node:$l.ObjectNode(i),change:e=>Array.isArray(e)&&e.length>0?e[0]:{}},{type:"list",node:$l.ListNode($l.ObjectNode(c(s({},i),{weight:$l.Opt($l.NumberNode({integer:!0,min:1}))}),{context:"model_variant"})),change:e=>[s({weight:1},e)]}],{context:"model_variant"})),e.register("multipart_condition",$l.ChoiceNode([{type:"object",priority:-1,match:()=>!0,node:$l.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:$l.ObjectNode({OR:$l.ListNode(r("multipart_condition"))}),change:e=>({OR:[null!=e?e:{}]})}],{context:"multipart_condition"}))},Object.defineProperty(Ll,"__esModule",{value:!0}),Ll.initAssetsSchemas=void 0;const Xl=Rl,Jl=Ul;Ll.initAssetsSchemas=function(e,t){Jl.initBlockDefinitionSchemas(e,t),Xl.initModelSchemas(e,t)};var ql={};!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=Me;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":{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":{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}}})}}(ql);var Hl={};Object.defineProperty(Hl,"__esModule",{value:!0}),Hl.initConditionSchemas=void 0;const Wl=Me,Zl=ql;Hl.initConditionSchemas=function(e,t){const r=Wl.Reference.bind(void 0,e),n=Wl.StringNode.bind(void 0,t);e.register("predicate",Wl.ObjectOrList(r("condition"),{choiceContext:"condition"})),e.register("condition",Wl.Mod(Wl.ObjectNode({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[Wl.Switch]:[{push:"condition"}],[Wl.Case]:Zl.ConditionCases()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var Gl={};Object.defineProperty(Gl,"__esModule",{value:!0}),Gl.initDimensionSchemas=void 0;const Kl=Me,Yl=ql;Gl.initDimensionSchemas=function(e,t){const r=Kl.Reference.bind(void 0,e),n=Kl.StringNode.bind(void 0,t);e.register("dimension",Kl.Mod(Kl.ObjectNode({type:Yl.DimensionTypePresets(r("dimension_type")),generator:Kl.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[Kl.Switch]:[{push:"type"}],[Kl.Case]:{"minecraft:noise":{seed:Kl.NumberNode({integer:!0}),settings:Yl.NoiseSettingsPresets(r("noise_settings")),biome_source:Kl.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/biome_source"}}),[Kl.Switch]:[{push:"type"}],[Kl.Case]:{"minecraft:fixed":{biome:n({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{preset:Kl.Opt(n({validator:"resource",params:{pool:["minecraft:overworld","minecraft:nether"]}})),biomes:Kl.Mod(Kl.ListNode(r("generator_biome")),{enabled:e=>void 0===e.push("preset").get(),default:()=>[{biome:"minecraft:plains"}]})},"minecraft:checkerboard":{scale:Kl.Opt(Kl.NumberNode({integer:!0,min:0,max:62})),biomes:Kl.ListNode(n({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:Kl.NumberNode({integer:!0})}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:Kl.ObjectNode({biome:Kl.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:Kl.Opt(Kl.BooleanNode()),features:Kl.Opt(Kl.BooleanNode()),layers:Kl.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=Kl.ChoiceNode([{type:"number",node:Kl.NumberNode({min:-2,max:2}),change:e=>{var t;return null!==(t=e[0])&&void 0!==t?t:0}},{type:"list",node:Kl.ListNode(Kl.NumberNode({min:-2,max:2}),{minLength:2,maxLength:2}),change:e=>[null!=e?e:0,null!=e?e:0]}]);e.register("generator_biome",Kl.Mod(Kl.ObjectNode({biome:n({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:Kl.ObjectNode({temperature:i,humidity:i,continentalness:i,erosion:i,weirdness:i,depth:i,offset:Kl.NumberNode({min:0,max:1})})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})}))};var Vl={};Object.defineProperty(Vl,"__esModule",{value:!0}),Vl.initDimensionTypeSchemas=void 0;const Ql=Me,eu=ql;Vl.initDimensionTypeSchemas=function(e,t){const r=Ql.StringNode.bind(void 0,t);e.register("dimension_type",Ql.Mod(Ql.ObjectNode({ultrawarm:Ql.BooleanNode(),natural:Ql.BooleanNode(),piglin_safe:Ql.BooleanNode(),respawn_anchor_works:Ql.BooleanNode(),bed_works:Ql.BooleanNode(),has_raids:Ql.BooleanNode(),has_skylight:Ql.BooleanNode(),has_ceiling:Ql.BooleanNode(),coordinate_scale:Ql.NumberNode({min:1e-5,max:3e7}),ambient_light:Ql.NumberNode(),fixed_time:Ql.Opt(Ql.NumberNode({integer:!0})),logical_height:Ql.NumberNode({integer:!0,min:0,max:4096}),effects:Ql.Opt(r({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:r({validator:"resource",params:{pool:"$tag/block"}}),min_y:Ql.NumberNode({integer:!0,min:-2048,max:2047}),height:Ql.NumberNode({integer:!0,min:0,max:4096})},{context:"dimension_type"}),(e=>({default:()=>eu.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 tu={};Object.defineProperty(tu,"__esModule",{value:!0}),tu.initItemModifierSchemas=void 0;const ru=Me,nu=ql;tu.initItemModifierSchemas=function(e,t){const r=ru.Reference.bind(void 0,e),n=ru.StringNode.bind(void 0,t);e.register("item_modifier",ru.ObjectOrList(r("function"),{choiceContext:"function"}));const i={conditions:ru.Opt(ru.ListNode(r("condition")))};e.register("function",ru.Mod(ru.ObjectNode({function:n({validator:"resource",params:{pool:"loot_function_type"}}),[ru.Switch]:[{push:"function"}],[ru.Case]:nu.FunctionCases(i)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))};var iu={},ou={};Object.defineProperty(ou,"__esModule",{value:!0}),ou.LootFunctions=ou.LootConditions=ou.LootCopySources=ou.LootEntitySources=ou.LootTableTypes=void 0,ou.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]}]]),ou.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),ou.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),ou.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",[]]]),ou.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(iu,"__esModule",{value:!0}),iu.initLootTableSchemas=void 0;const au=Me,su=ou,cu=ql;iu.initLootTableSchemas=function(e,t){const r=au.Reference.bind(void 0,e),n=au.StringNode.bind(void 0,t),i={conditions:au.Opt(au.ListNode(r("loot_condition")))},o=s({functions:au.Opt(au.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 su.LootTableTypes){const e=[...a,...s];i.push({match:e=>e.getModel().get(new au.Path(["type"]))===t,node:n(o(e))})}return i.push({match:e=>!0,node:n(r)}),au.SwitchNode(i)}const c=a(su.LootConditions,"loot_condition_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),l=a(su.LootFunctions,"loot_function_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),u=a(su.LootEntitySources,"entity_source",(e=>n({enum:e}))),d=a(su.LootCopySources,"copy_source",(e=>n({enum:e})));e.register("loot_table",au.Mod(au.ObjectNode({type:au.Opt(n({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:au.Opt(au.ListNode(au.Mod(au.ObjectNode(s({rolls:r("number_provider"),bonus_rolls:au.Opt(r("number_provider")),entries:au.ListNode(r("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:au.Opt(au.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",au.Mod(au.ObjectNode({type:n({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:au.Opt(au.Mod(au.NumberNode({integer:!0,min:1}),p)),quality:au.Opt(au.Mod(au.NumberNode({integer:!0}),p)),[au.Switch]:[{push:"type"}],[au.Case]:{"minecraft:alternatives":s({children:au.ListNode(r("loot_entry"))},o),"minecraft:dynamic":s({name:n()},o),"minecraft:group":s({children:au.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:au.ListNode(r("loot_entry"))},o),"minecraft:tag":s({name:n({validator:"resource",params:{pool:"$tag/item"}}),expand:au.Opt(au.BooleanNode())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",au.Mod(au.ObjectNode({function:l,[au.Switch]:[{push:"function"}],[au.Case]:cu.FunctionCases(i,d,u)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",au.Mod(au.ObjectNode({condition:c,[au.Switch]:[{push:"condition"}],[au.Case]:cu.ConditionCases(u)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",au.Mod(au.ObjectNode({attribute:n({validator:"resource",params:{pool:"attribute"}}),name:n(),amount:r("number_provider"),operation:n({enum:["addition","multiply_base","multiply_total"]}),slot:au.StringOrList(n({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var lu={};Object.defineProperty(lu,"__esModule",{value:!0}),lu.initPackMcmetaSchemas=void 0;const uu=Me;lu.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",uu.Mod(uu.ObjectNode({pack:uu.Mod(uu.ObjectNode({pack_format:uu.Mod(uu.NumberNode({integer:!0,min:7,max:7}),{default:()=>7,canUpdate:(e,t)=>7!==t,update:()=>[{name:"pack_format",params:[7],newValue:7}]}),description:uu.Reference(e,"text_component")}),{default:()=>({pack_format:7,description:""})})}),{default:()=>({pack:{pack_format:7,description:""}})}))};var du={};Object.defineProperty(du,"__esModule",{value:!0}),du.initPredicatesSchemas=void 0;const pu=Me;du.initPredicatesSchemas=function(e,t){const r=pu.Reference.bind(void 0,e),n=pu.StringNode.bind(void 0,t),i=pu.ChoiceNode([{type:"string",node:n(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:pu.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:pu.ObjectNode({min:pu.Opt(pu.NumberNode({integer:!0})),max:pu.Opt(pu.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:pu.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",pu.ObjectNode({items:pu.Opt(pu.ListNode(n({validator:"resource",params:{pool:"item"}}))),tag:pu.Opt(n({validator:"resource",params:{pool:"$tag/item"}})),count:r("int_bounds"),durability:r("int_bounds"),potion:pu.Opt(n({validator:"resource",params:{pool:"potion"}})),nbt:pu.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:pu.Opt(pu.ListNode(r("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",pu.ObjectNode({enchantment:pu.Opt(n({validator:"resource",params:{pool:"enchantment"}})),levels:r("int_bounds")},{context:"enchantment"})),e.register("block_predicate",pu.ObjectNode({blocks:pu.Opt(pu.ListNode(n({validator:"resource",params:{pool:"block"}}))),tag:pu.Opt(n({validator:"resource",params:{pool:"$tag/block"}})),nbt:pu.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:pu.Opt(pu.MapNode(n(),i,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",pu.ObjectNode({fluid:pu.Opt(n({validator:"resource",params:{pool:"fluid"}})),tag:pu.Opt(n({validator:"resource",params:{pool:"$tag/fluid"}})),state:pu.Opt(pu.MapNode(n(),i))},{context:"fluid"})),e.register("location_predicate",pu.ObjectNode({position:pu.Opt(pu.ObjectNode({x:r("float_bounds"),y:r("float_bounds"),z:r("float_bounds")})),biome:pu.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:pu.Opt(n({enum:t.get("worldgen/structure_feature").map((e=>e.slice(10)))})),dimension:pu.Opt(n({validator:"resource",params:{pool:"$dimension"}})),light:pu.Opt(pu.ObjectNode({light:r("int_bounds")})),smokey:pu.Opt(pu.BooleanNode()),block:pu.Opt(r("block_predicate")),fluid:pu.Opt(r("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",pu.ObjectNode({type:n({validator:"resource",params:{pool:"stat_type"}}),stat:n(),value:r("int_bounds"),[pu.Switch]:[{push:"type"}],[pu.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",pu.ObjectNode({gamemode:pu.Opt(n({enum:"gamemode"})),level:r("int_bounds"),advancements:pu.Opt(pu.MapNode(n({validator:"resource",params:{pool:"$advancement"}}),pu.ChoiceNode([{type:"boolean",node:pu.BooleanNode(),change:e=>!0},{type:"object",node:pu.MapNode(n(),pu.BooleanNode())}]))),recipes:pu.Opt(pu.MapNode(n({validator:"resource",params:{pool:"$recipe"}}),pu.BooleanNode())),stats:pu.Opt(pu.ListNode(r("statistic_predicate"))),looking_at:pu.Opt(r("entity_predicate"))},{context:"player"})),e.register("status_effect_predicate",pu.ObjectNode({amplifier:r("int_bounds"),duration:r("int_bounds"),ambient:pu.Opt(pu.BooleanNode()),visible:pu.Opt(pu.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",pu.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",pu.ObjectNode({type:pu.Opt(n({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:pu.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:pu.Opt(n({validator:"team"})),location:pu.Opt(r("location_predicate")),stepping_on:pu.Opt(r("location_predicate")),distance:pu.Opt(r("distance_predicate")),flags:pu.Opt(pu.ObjectNode({is_on_fire:pu.Opt(pu.BooleanNode()),is_sneaking:pu.Opt(pu.BooleanNode()),is_sprinting:pu.Opt(pu.BooleanNode()),is_swimming:pu.Opt(pu.BooleanNode()),is_baby:pu.Opt(pu.BooleanNode())})),equipment:pu.Opt(pu.MapNode(n({enum:"slot"}),r("item_predicate"))),player:pu.Opt(r("player_predicate")),vehicle:pu.Opt(r("entity_predicate")),passenger:pu.Opt(r("entity_predicate")),targeted_entity:pu.Opt(r("entity_predicate")),lightning_bolt:pu.Opt(pu.ObjectNode({blocks_set_on_fire:pu.Opt(r("int_bounds")),entity_struck:pu.Opt(r("entity_predicate"))})),fishing_hook:pu.Opt(pu.ObjectNode({in_open_water:pu.Opt(pu.BooleanNode())})),effects:pu.Opt(pu.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),r("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",pu.ObjectNode({is_explosion:pu.Opt(pu.BooleanNode()),is_fire:pu.Opt(pu.BooleanNode()),is_magic:pu.Opt(pu.BooleanNode()),is_projectile:pu.Opt(pu.BooleanNode()),is_lightning:pu.Opt(pu.BooleanNode()),bypasses_armor:pu.Opt(pu.BooleanNode()),bypasses_invulnerability:pu.Opt(pu.BooleanNode()),bypasses_magic:pu.Opt(pu.BooleanNode()),source_entity:pu.Opt(r("entity_predicate")),direct_entity:pu.Opt(r("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",pu.ObjectNode({dealt:r("float_bounds"),taken:r("float_bounds"),blocked:pu.Opt(pu.BooleanNode()),source_entity:pu.Opt(r("entity_predicate")),type:pu.Opt(r("damage_source_predicate"))},{context:"damage"}))};var mu={};Object.defineProperty(mu,"__esModule",{value:!0}),mu.initRecipeSchemas=void 0;const hu=Me;mu.initRecipeSchemas=function(e,t){const r=hu.Reference.bind(void 0,e),n=hu.StringNode.bind(void 0,t);e.register("recipe",hu.Mod(hu.ObjectNode({type:n({validator:"resource",params:{pool:"recipe_serializer"}}),[hu.Switch]:[{push:"type"}],[hu.Case]:{"minecraft:crafting_shaped":{group:hu.Opt(n({enum:"recipe_group",additional:!0})),pattern:hu.ListNode(n()),key:hu.MapNode(n(),r("recipe_ingredient")),result:r("recipe_result")},"minecraft:crafting_shapeless":{group:hu.Opt(n()),ingredients:hu.ListNode(r("recipe_ingredient")),result:r("recipe_result")},"minecraft:smelting":{group:hu.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:hu.Opt(hu.NumberNode()),cookingtime:hu.Opt(hu.Mod(hu.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:hu.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:hu.Opt(hu.NumberNode()),cookingtime:hu.Opt(hu.Mod(hu.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:hu.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:hu.Opt(hu.NumberNode()),cookingtime:hu.Opt(hu.Mod(hu.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:hu.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:hu.Opt(hu.NumberNode()),cookingtime:hu.Opt(hu.Mod(hu.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:hu.Opt(n()),ingredient:r("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),count:hu.NumberNode({integer:!0})},"minecraft:smithing":{group:hu.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",hu.Mod(hu.ChoiceNode([{type:"object",node:r("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:hu.ListNode(r("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",hu.Mod(hu.ObjectNode({item:hu.Opt(n({validator:"resource",params:{pool:"item"}})),tag:hu.Opt(n({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",hu.Mod(hu.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),count:hu.Opt(hu.Mod(hu.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var fu={};Object.defineProperty(fu,"__esModule",{value:!0}),fu.initTagsSchemas=void 0;const _u=Me;fu.initTagsSchemas=function(e,t){const r=_u.StringNode.bind(void 0,t),n=e=>_u.Mod(_u.ObjectNode({replace:_u.Opt(_u.BooleanNode()),values:_u.ListNode(_u.ChoiceNode([{type:"string",node:r({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:_u.ObjectNode({id:r({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:_u.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 gu={};Object.defineProperty(gu,"__esModule",{value:!0}),gu.initTextComponentSchemas=void 0;const bu=Me;gu.initTextComponentSchemas=function(e,t){const r=bu.Reference.bind(void 0,e),n=bu.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",bu.Mod(bu.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:bu.NumberNode(),change:e=>{const t=parseFloat(i(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:bu.BooleanNode(),change:e=>{const t=i(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={color:bu.Opt(n()),font:bu.Opt(n()),bold:bu.Opt(bu.BooleanNode()),italic:bu.Opt(bu.BooleanNode()),underlined:bu.Opt(bu.BooleanNode()),strikethrough:bu.Opt(bu.BooleanNode()),obfuscated:bu.Opt(bu.BooleanNode()),insertion:bu.Opt(n()),clickEvent:bu.Opt(bu.ObjectNode({action:n({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[bu.Switch]:[{push:"action"}],[bu.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:bu.Opt(bu.ObjectNode({action:n({enum:["show_text","show_item","show_entity"]}),[bu.Switch]:[{push:"action"}],[bu.Case]:{show_text:{value:bu.Opt(r("text_component")),contents:bu.Opt(r("text_component"))},show_item:{value:bu.Opt(n({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:bu.Opt(bu.ObjectNode({id:n({validator:"resource",params:{pool:"item"}}),count:bu.Opt(bu.NumberNode({integer:!0})),tag:bu.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:bu.Opt(bu.ObjectNode({name:bu.Opt(n()),type:bu.Opt(n()),id:bu.Opt(n())})),contents:bu.Opt(bu.Mod(bu.ObjectNode({name:bu.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:bu.Opt(r("text_component_list"))};e.register("text_component_object",bu.Mod(bu.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:bu.ObjectNode(s({text:n()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:bu.ObjectNode(s({translate:n(),with:bu.Opt(r("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:bu.ObjectNode(s({score:bu.ObjectNode({name:n({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:n({validator:"objective"}),value:bu.Opt(n())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:bu.ObjectNode(s({selector:n({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:bu.Opt(r("text_component"))},o))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:bu.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:bu.ObjectNode(s({nbt:n({validator:"nbt_path"}),block:bu.Opt(n({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:bu.Opt(n({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:bu.Opt(n({validator:"resource",params:{pool:"$storage"}})),interpret:bu.Opt(bu.BooleanNode()),separator:bu.Opt(r("text_component"))},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",bu.Mod(bu.ListNode(r("text_component")),{default:()=>[{text:""}]}))};var yu={},vu={};Object.defineProperty(vu,"__esModule",{value:!0}),vu.initBiomeSchemas=void 0;const xu=Me;vu.initBiomeSchemas=function(e,t){const r=xu.StringNode.bind(void 0,t);e.register("biome",xu.Mod(xu.ObjectNode({temperature:xu.NumberNode(),downfall:xu.NumberNode(),precipitation:r({enum:["none","rain","snow"]}),temperature_modifier:xu.Opt(r({enum:["none","frozen"]})),category:r({enum:"biome_category"}),player_spawn_friendly:xu.Opt(xu.BooleanNode()),creature_spawn_probability:xu.Opt(xu.NumberNode({min:0,max:1})),effects:xu.ObjectNode({sky_color:xu.NumberNode({color:!0}),fog_color:xu.NumberNode({color:!0}),water_color:xu.NumberNode({color:!0}),water_fog_color:xu.NumberNode({color:!0}),grass_color:xu.Opt(xu.NumberNode({color:!0})),foliage_color:xu.Opt(xu.NumberNode({color:!0})),grass_color_modifier:xu.Opt(r({enum:["none","dark_forest","swamp"]})),ambient_sound:xu.Opt(r()),mood_sound:xu.Opt(xu.ObjectNode({sound:r(),tick_delay:xu.NumberNode({integer:!0}),block_search_extent:xu.NumberNode({integer:!0}),offset:xu.NumberNode()})),additions_sound:xu.Opt(xu.ObjectNode({sound:r(),tick_chance:xu.NumberNode({min:0,max:1})})),music:xu.Opt(xu.ObjectNode({sound:r(),min_delay:xu.NumberNode({integer:!0,min:0}),max_delay:xu.NumberNode({integer:!0,min:0}),replace_current_music:xu.BooleanNode()})),particle:xu.Opt(xu.ObjectNode({options:xu.ObjectNode({type:r()}),probability:xu.NumberNode({min:0,max:1})}))}),spawners:xu.MapNode(r({enum:["monster","creature","ambient","axolotls","underground_water_creature","water_creature","water_ambient","misc"]}),xu.Mod(xu.ListNode(xu.ObjectNode({type:r({validator:"resource",params:{pool:"entity_type"}}),weight:xu.NumberNode({integer:!0}),minCount:xu.NumberNode({integer:!0}),maxCount:xu.NumberNode({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:xu.MapNode(r({validator:"resource",params:{pool:"entity_type"}}),xu.Mod(xu.ObjectNode({energy_budget:xu.NumberNode(),charge:xu.NumberNode()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:xu.MapNode(r({enum:["air","liquid"]}),xu.Mod(xu.ListNode(r({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:xu.ListNode(xu.Mod(xu.ListNode(r({validator:"resource",params:{pool:"$worldgen/configured_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 Nu={};Object.defineProperty(Nu,"__esModule",{value:!0}),Nu.initCarverSchemas=void 0;const wu=Me,ku=ql;Nu.initCarverSchemas=function(e,t){const r=wu.Reference.bind(void 0,e),n=wu.StringNode.bind(void 0,t),i={vertical_rotation:ku.FloatProvider(),shape:wu.ObjectNode({distance_factor:ku.FloatProvider(),thickness:ku.FloatProvider(),width_smoothness:wu.NumberNode({integer:!0,min:0}),horizontal_radius_factor:ku.FloatProvider(),vertical_radius_default_factor:wu.NumberNode(),vertical_radius_center_factor:wu.NumberNode()})},o={horizontal_radius_multiplier:ku.FloatProvider(),vertical_radius_multiplier:ku.FloatProvider(),floor_level:ku.FloatProvider({min:-1,max:1})};e.register("configured_carver",wu.Mod(wu.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/carver"}}),config:wu.ObjectNode({probability:wu.NumberNode({min:0,max:1}),y:r("height_provider"),yScale:ku.FloatProvider(),lava_level:r("vertical_anchor"),debug_settings:wu.Opt(wu.ObjectNode({debug_mode:wu.Opt(wu.BooleanNode()),air_state:wu.Opt(r("block_state")),water_state:wu.Opt(r("block_state")),lava_state:wu.Opt(r("block_state")),barrier_state:wu.Opt(r("block_state"))})),[wu.Switch]:["pop",{push:"type"}],[wu.Case]:{"minecraft:canyon":i,"minecraft:cave":o,"minecraft:nether_cave":o}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))};var Ou={};Object.defineProperty(Ou,"__esModule",{value:!0}),Ou.initDecoratorSchemas=void 0;const Su=Me,Au=ql;Ou.initDecoratorSchemas=function(e,t){const r=Su.Reference.bind(void 0,e),n=Su.StringNode.bind(void 0,t),i={count:Au.IntProvider({min:0,max:256})};e.register("configured_decorator",Su.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/decorator"}}),config:Su.ObjectNode({[Su.Switch]:["pop",{push:"type"}],[Su.Case]:{"minecraft:block_filter":{predicate:r("block_predicate_worldgen")},"minecraft:carving_mask":{step:n({enum:"generation_step"})},"minecraft:cave_surface":{surface:n({enum:["floor","ceiling"]}),floor_to_ceiling_search_range:Su.NumberNode({integer:!0}),allow_water:Su.BooleanNode()},"minecraft:chance":{chance:Su.NumberNode({integer:!0,min:0})},"minecraft:count":i,"minecraft:count_extra":{count:Su.NumberNode({integer:!0,min:0}),extra_count:Su.NumberNode({integer:!0,min:0}),extra_chance:Su.NumberNode({min:0,max:1})},"minecraft:count_multilayer":i,"minecraft:count_noise":{noise_level:Su.NumberNode(),below_noise:Su.NumberNode({integer:!0}),above_noise:Su.NumberNode({integer:!0})},"minecraft:count_noise_biased":{noise_to_count_ratio:Su.NumberNode({integer:!0}),noise_factor:Su.NumberNode(),noise_offset:Su.Opt(Su.NumberNode())},"minecraft:decorated":{outer:r("configured_decorator"),inner:r("configured_decorator")},"minecraft:environment_scan":{direction_of_search:n({enum:["up","down"]}),max_steps:Su.NumberNode({integer:!0,min:1,max:32}),target_condition:r("block_predicate_worldgen")},"minecraft:heightmap":{heightmap:n({enum:"heightmap_type"})},"minecraft:lava_lake":{chance:Su.NumberNode({integer:!0,min:0})},"minecraft:range":{height:r("height_provider")},"minecraft:scatter":{xz_spread:Au.IntProvider({min:-16,max:16}),y_spread:Au.IntProvider({min:-16,max:16})},"minecraft:surface_relative_threshold":{heightmap:n({enum:"heightmap_type"}),min_inclusive:Su.Opt(Su.NumberNode({integer:!0})),max_inclusive:Su.Opt(Su.NumberNode({integer:!0}))},"minecraft:water_depth_threshold":{max_water_depth:Su.NumberNode({integer:!0})}}},{context:"decorator",category:"predicate"})},{context:"decorator",category:"predicate"}))};var Du={},Cu={};Object.defineProperty(Cu,"__esModule",{value:!0}),Cu.initProcessorListSchemas=Cu.Processors=void 0;const Eu=Me;Cu.initProcessorListSchemas=function(e,t){const r=Eu.Reference.bind(void 0,e),n=Eu.StringNode.bind(void 0,t);Cu.Processors=Eu.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",Eu.Mod(Eu.ObjectNode({processors:Eu.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",Eu.Mod(Eu.ObjectNode({processor_type:n({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[Eu.Switch]:[{push:"processor_type"}],[Eu.Case]:{"minecraft:block_age":{mossiness:Eu.NumberNode()},"minecraft:block_ignore":{blocks:Eu.ListNode(r("block_state"))},"minecraft:block_rot":{integrity:Eu.NumberNode({min:0,max:1})},"minecraft:gravity":{heightmap:n({enum:"heightmap_type"}),offset:Eu.NumberNode({integer:!0})},"minecraft:protected_blocks":{value:n({validator:"resource",params:{pool:"$tag/block"}})},"minecraft:rule":{rules:Eu.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",Eu.Mod(Eu.ObjectNode({position_predicate:Eu.Opt(r("pos_rule_test")),location_predicate:r("rule_test"),input_predicate:r("rule_test"),output_state:r("block_state"),output_nbt:Eu.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:Eu.Opt(Eu.NumberNode({min:0,max:255,integer:!0})),max_dist:Eu.Opt(Eu.NumberNode({min:0,max:255,integer:!0})),min_chance:Eu.Opt(Eu.NumberNode({min:0,max:1})),max_chance:Eu.Opt(Eu.NumberNode({min:0,max:1}))};e.register("pos_rule_test",Eu.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"pos_rule_test"}}),[Eu.Switch]:[{push:"predicate_type"}],[Eu.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",Eu.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"rule_test"}}),[Eu.Switch]:[{push:"predicate_type"}],[Eu.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:Eu.NumberNode({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:r("block_state"),probability:Eu.NumberNode({min:0,max:1})},"minecraft:tag_match":{tag:n({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))},Object.defineProperty(Du,"__esModule",{value:!0}),Du.initFeatureSchemas=void 0;const Fu=Me,Bu=ql,Mu=Cu;Du.initFeatureSchemas=function(e,t){const r=Fu.Reference.bind(void 0,e),n=Fu.StringNode.bind(void 0,t),i=Fu.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:r("configured_feature")}],{choiceContext:"feature"}),o={tries:Fu.Opt(Fu.NumberNode({integer:!0,min:1})),xz_spread:Fu.Opt(Fu.NumberNode({integer:!0,min:0})),y_spread:Fu.Opt(Fu.NumberNode({integer:!0,min:0})),feature:i},a={state:r("block_state"),radius:Bu.IntProvider({min:0,max:8}),half_height:Fu.NumberNode({integer:!0,min:0,max:4}),targets:Fu.ListNode(r("block_state"))},l={cap_provider:r("block_state_provider"),stem_provider:r("block_state_provider"),foliage_radius:Fu.Opt(Fu.NumberNode({integer:!0}))},u=Fu.ObjectNode({target:r("rule_test"),state:r("block_state")}),d={size:Fu.NumberNode({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:Fu.NumberNode({min:0,max:1}),targets:Fu.ListNode(u)},p={surface:n({enum:"cave_surface"}),depth:Bu.IntProvider({min:1,max:128}),vertical_range:Fu.NumberNode({integer:!0,min:1,max:256}),extra_bottom_block_chance:Fu.NumberNode({min:0,max:1}),extra_edge_column_chance:Fu.NumberNode({min:0,max:1}),vegetation_chance:Fu.NumberNode({min:0,max:1}),xz_radius:Bu.IntProvider(),replaceable:n({validator:"resource",params:{pool:"$tag/block"}}),ground_state:r("block_state_provider"),vegetation_feature:i};e.register("configured_feature",Fu.Mod(Fu.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature"}}),config:Fu.ObjectNode({[Fu.Switch]:["pop",{push:"type"}],[Fu.Case]:{"minecraft:bamboo":{probability:Fu.NumberNode({min:0,max:1})},"minecraft:basalt_columns":{reach:Bu.IntProvider({min:0,max:3}),height:Bu.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:Fu.BooleanNode(),layers:Fu.ListNode(Fu.ObjectNode({height:Bu.IntProvider({min:0}),provider:r("block_state_provider")}))},"minecraft:block_pile":{state_provider:r("block_state_provider")},"minecraft:decorated":{decorator:r("configured_decorator"),feature:i},"minecraft:decorated_flower":{decorator:r("configured_decorator"),feature:i},"minecraft:delta_feature":{contents:r("block_state"),rim:r("block_state"),size:Bu.IntProvider({min:0,max:16}),rim_size:Bu.IntProvider({min:0,max:16})},"minecraft:disk":a,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:Fu.NumberNode({integer:!0,min:1,max:512}),height:Bu.IntProvider({min:0,max:128}),radius:Bu.IntProvider({min:0,max:128}),max_stalagmite_stalactite_height_diff:Fu.NumberNode({integer:!0,min:0,max:64}),height_deviation:Fu.NumberNode({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:Bu.IntProvider({min:0,max:128}),density:Bu.FloatProvider({min:0,max:2}),wetness:Bu.FloatProvider({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:Fu.NumberNode({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:Fu.NumberNode({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:Fu.NumberNode({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:Fu.BooleanNode(),exit:Fu.Opt(r("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:Fu.Opt(Fu.BooleanNode()),crystal_beam_target:Fu.Opt(r("block_pos")),spikes:Fu.ListNode(Fu.ObjectNode({centerX:Fu.Opt(Fu.NumberNode({integer:!0})),centerZ:Fu.Opt(Fu.NumberNode({integer:!0})),radius:Fu.Opt(Fu.NumberNode({integer:!0})),height:Fu.Opt(Fu.NumberNode({integer:!0})),guarded:Fu.Opt(Fu.BooleanNode())}))},"minecraft:fill_layer":{state:r("block_state"),height:Fu.NumberNode({integer:!0,min:0,max:255})},"minecraft:flower":o,"minecraft:forest_rock":{state:r("block_state")},"minecraft:fossil":{max_empty_corners_allowed:Fu.NumberNode({integer:!0,min:0,max:7}),fossil_structures:Fu.ListNode(n({validator:"resource",params:{pool:"$structure"}})),overlay_structures:Fu.ListNode(n({validator:"resource",params:{pool:"$structure"}})),fossil_processors:Mu.Processors,overlay_processors:Mu.Processors},"minecraft:geode":{blocks:Fu.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:Fu.ListNode(r("block_state")),cannot_replace:n({validator:"resource",params:{pool:"$tag/block"}}),invalid_blocks:n({validator:"resource",params:{pool:"$tag/block"}})}),layers:Fu.ObjectNode({filling:Fu.Opt(Fu.NumberNode({min:.01,max:50})),inner_layer:Fu.Opt(Fu.NumberNode({min:.01,max:50})),middle_layer:Fu.Opt(Fu.NumberNode({min:.01,max:50})),outer_layer:Fu.Opt(Fu.NumberNode({min:.01,max:50}))}),crack:Fu.ObjectNode({generate_crack_chance:Fu.Opt(Fu.NumberNode({min:0,max:1})),base_crack_size:Fu.Opt(Fu.NumberNode({min:0,max:5})),crack_point_offset:Fu.Opt(Fu.NumberNode({min:0,max:10,integer:!0}))}),noise_multiplier:Fu.Opt(Fu.NumberNode({min:0,max:1})),use_potential_placements_chance:Fu.Opt(Fu.NumberNode({min:0,max:1})),use_alternate_layer0_chance:Fu.Opt(Fu.NumberNode({min:0,max:1})),placements_require_layer0_alternate:Fu.Opt(Fu.BooleanNode()),outer_wall_distance:Fu.Opt(Bu.IntProvider({min:1,max:20})),distribution_points:Fu.Opt(Bu.IntProvider({min:1,max:20})),point_offset:Fu.Opt(Bu.IntProvider({min:0,max:10})),min_gen_offset:Fu.Opt(Fu.NumberNode({integer:!0})),max_gen_offset:Fu.Opt(Fu.NumberNode({integer:!0})),invalid_blocks_threshold:Fu.NumberNode({integer:!0})},"minecraft:glow_lichen":{search_range:Fu.Opt(Fu.NumberNode({min:1,max:64,integer:!0})),chance_of_spreading:Fu.Opt(Fu.NumberNode({min:0,max:1})),can_place_on_floor:Fu.Opt(Fu.BooleanNode()),can_place_on_ceiling:Fu.Opt(Fu.BooleanNode()),can_place_on_wall:Fu.Opt(Fu.BooleanNode()),can_be_placed_on:Fu.ListNode(r("block_state"))},"minecraft:huge_brown_mushroom":l,"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:Fu.Opt(Fu.BooleanNode())},"minecraft:huge_red_mushroom":l,"minecraft:ice_patch":a,"minecraft:iceberg":{state:r("block_state")},"minecraft:lake":{state:r("block_state")},"minecraft:large_dripstone":{floor_to_ceiling_search_range:Fu.Opt(Fu.NumberNode({integer:!0,min:1,max:512})),column_radius:Bu.IntProvider({min:0,max:60}),height_scale:Bu.FloatProvider({min:0,max:20}),max_column_radius_to_cave_height_ratio:Fu.NumberNode({min:0,max:1}),stalactite_bluntness:Bu.FloatProvider({min:.1,max:10}),stalagmite_bluntness:Bu.FloatProvider({min:.1,max:10}),wind_speed:Bu.FloatProvider({min:0,max:2}),min_radius_for_wind:Fu.NumberNode({integer:!0,min:0,max:100}),min_bluntness_for_wind:Fu.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:Bu.IntProvider({min:0,max:12})},"minecraft:no_bonemeal_flower":o,"minecraft:ore":d,"minecraft:pointed_dripstone":{chance_of_taller_dripstone:Fu.Opt(Fu.NumberNode({min:0,max:1})),chance_of_directional_spread:Fu.Opt(Fu.NumberNode({min:0,max:1})),chance_of_spread_radius2:Fu.Opt(Fu.NumberNode({min:0,max:1})),chance_of_spread_radius3:Fu.Opt(Fu.NumberNode({min:0,max:1}))},"minecraft:random_patch":o,"minecraft:random_boolean_selector":{feature_false:i,feature_true:i},"minecraft:random_selector":{features:Fu.ListNode(Fu.ObjectNode({chance:Fu.NumberNode({min:0,max:1}),feature:i})),default:i},"minecraft:replace_single_block":{targets:Fu.ListNode(u)},"minecraft:root_system":{required_vertical_space_for_tree:Fu.NumberNode({integer:!0,min:1,max:64}),root_radius:Fu.NumberNode({integer:!0,min:1,max:64}),root_placement_attempts:Fu.NumberNode({integer:!0,min:1,max:256}),root_column_max_height:Fu.NumberNode({integer:!0,min:1,max:4096}),hanging_root_radius:Fu.NumberNode({integer:!0,min:1,max:64}),hanging_roots_vertical_span:Fu.NumberNode({integer:!0,min:0,max:16}),hanging_root_placement_attempts:Fu.NumberNode({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:Fu.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:i},"minecraft:scattered_ore":d,"minecraft:sea_pickle":{count:Bu.IntProvider({min:0,max:256})},"minecraft:seagrass":{probability:Fu.NumberNode({min:0,max:1})},"minecraft:simple_block":{to_place:r("block_state_provider")},"minecraft:simple_random_selector":{features:Fu.ListNode(i)},"minecraft:spring_feature":{state:r("fluid_state"),rock_count:Fu.NumberNode({integer:!0}),hole_count:Fu.NumberNode({integer:!0}),requires_block_below:Fu.BooleanNode(),valid_blocks:Fu.ListNode(n({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{ignore_vines:Fu.Opt(Fu.BooleanNode()),force_dirt:Fu.Opt(Fu.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:Fu.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:Fu.NumberNode({integer:!0,min:0,max:32}),height_rand_a:Fu.NumberNode({integer:!0,min:0,max:24}),height_rand_b:Fu.NumberNode({integer:!0,min:0,max:24}),[Fu.Switch]:[{push:"type"}],[Fu.Case]:{"minecraft:bending_trunk_placer":{bend_length:Bu.IntProvider({min:1,max:64}),min_height_for_leaves:Fu.Opt(Fu.NumberNode({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:Fu.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:Bu.IntProvider({min:0,max:16}),offset:Bu.IntProvider({min:0,max:16}),[Fu.Switch]:[{push:"type"}],[Fu.Case]:{"minecraft:blob_foliage_placer":{height:Fu.NumberNode({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:Fu.NumberNode({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:Fu.NumberNode({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:Fu.NumberNode({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:Bu.IntProvider({min:0,max:24})},"minecraft:pine_foliage_placer":{height:Bu.IntProvider({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:Bu.IntProvider({min:1,max:512}),leaf_placement_attempts:Fu.NumberNode({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:Bu.IntProvider({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:Fu.ListNode(Fu.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[Fu.Switch]:[{push:"type"}],[Fu.Case]:{"minecraft:alter_ground":{provider:r("block_state_provider")},"minecraft:beehive":{probability:Fu.NumberNode({min:0,max:1})},"minecraft:cocoa":{probability:Fu.NumberNode({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:underwater_magma":{floor_search_range:Fu.NumberNode({integer:!0,min:0,max:512}),placement_radius_around_floor:Fu.NumberNode({integer:!0,min:0,max:64}),placement_probability_per_valid_position:Fu.NumberNode({min:0,max:1})},"minecraft:vegetation_patch":p,"minecraft:waterlogged_vegetation_patch":p}},{context:"feature"})},{context:"feature"}),{default:()=>({type:"minecraft:decorated",config:{decorator:{type:"minecraft:count",config:{count:4}},feature:{type:"minecraft:tree",config:{ignore_vines:!0,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("feature_size",Fu.Mod(Fu.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:Fu.Opt(Fu.NumberNode({min:0,max:80})),[Fu.Switch]:[{push:"type"}],[Fu.Case]:{"minecraft:two_layers_feature_size":{limit:Fu.Opt(Fu.NumberNode({integer:!0,min:0,max:81})),lower_size:Fu.Opt(Fu.NumberNode({integer:!0,min:0,max:16})),upper_size:Fu.Opt(Fu.NumberNode({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:Fu.Opt(Fu.NumberNode({integer:!0,min:0,max:80})),upper_limit:Fu.Opt(Fu.NumberNode({integer:!0,min:0,max:80})),lower_size:Fu.Opt(Fu.NumberNode({integer:!0,min:0,max:16})),middle_size:Fu.Opt(Fu.NumberNode({integer:!0,min:0,max:16})),upper_size:Fu.Opt(Fu.NumberNode({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})}));const m={seed:Fu.NumberNode({integer:!0}),noise:r("noise_parameters"),scale:Fu.Mod(Fu.NumberNode({min:Number.MIN_VALUE}),{default:()=>1})};e.register("block_state_provider",Fu.Mod(Fu.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[Fu.Switch]:[{push:"type"}],[Fu.Case]:{"minecraft:dual_noise_provider":c(s({},m),{variety:Bu.InclusiveRange({integer:!0,min:1,max:64}),slow_noise:r("noise_parameters"),slow_scale:Fu.Mod(Fu.NumberNode({min:Number.MIN_VALUE}),{default:()=>1}),states:Fu.ListNode(r("block_state"))}),"minecraft:noise_threshold_provider":c(s({},m),{threshold:Fu.NumberNode({min:-1,max:1}),high_chance:Fu.NumberNode({min:0,max:1}),default_state:r("block_state"),low_states:Fu.ListNode(r("block_state")),high_states:Fu.ListNode(r("block_state"))}),"minecraft:noise_provider":c(s({},m),{states:Fu.ListNode(r("block_state"))}),"minecraft:randomized_int_state_provider":{property:n(),values:Bu.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:Fu.ListNode(Fu.Mod(Fu.ObjectNode({weight:Fu.NumberNode({integer:!0,min:1}),data:r("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})})),e.register("block_predicate_worldgen",Fu.Mod(Fu.ObjectNode({type:n({validator:"resource",params:{pool:"block_predicate_type"}}),[Fu.Switch]:[{push:"type"}],[Fu.Case]:{"minecraft:all_of":{predicates:Fu.ListNode(r("block_predicate_worldgen"))},"minecraft:any_of":{predicates:Fu.ListNode(r("block_predicate_worldgen"))},"minecraft:matching_blocks":{offset:Fu.Opt(r("block_pos")),blocks:Fu.ListNode(n({validator:"resource",params:{pool:"block"}}))},"minecraft:matching_fluids":{offset:Fu.Opt(r("block_pos")),fluids:Fu.ListNode(n({validator:"resource",params:{pool:"fluid"}}))},"minecraft:not":{predicate:r("block_predicate_worldgen")},"minecraft:would_survive":{offset:Fu.Opt(r("block_pos")),state:r("block_state")}}},{context:"block_predicate"}),{default:()=>({type:"minecraft:true"})}))};var ju={};Object.defineProperty(ju,"__esModule",{value:!0}),ju.initNoiseSettingsSchemas=void 0;const Tu=Me,Iu=ql;ju.initNoiseSettingsSchemas=function(e,t){const r=Tu.Reference.bind(void 0,e),n=Tu.StringNode.bind(void 0,t);e.register("noise_settings",Tu.Mod(Tu.ObjectNode({sea_level:Tu.NumberNode({integer:!0}),disable_mob_generation:Tu.BooleanNode(),noise_caves_enabled:Tu.BooleanNode(),noodle_caves_enabled:Tu.BooleanNode(),aquifers_enabled:Tu.BooleanNode(),ore_veins_enabled:Tu.BooleanNode(),legacy_random_source:Tu.BooleanNode(),default_block:r("block_state"),default_fluid:r("block_state"),noise:Tu.ObjectNode({min_y:Tu.NumberNode({integer:!0,min:-2048,max:2047}),height:Tu.NumberNode({integer:!0,min:0,max:4096}),size_horizontal:Tu.NumberNode({integer:!0}),size_vertical:Tu.NumberNode({integer:!0}),island_noise_override:Tu.Opt(Tu.BooleanNode()),amplified:Tu.Opt(Tu.BooleanNode()),large_biomes:Tu.Opt(Tu.BooleanNode()),sampling:Tu.ObjectNode({xz_scale:Tu.NumberNode(),y_scale:Tu.NumberNode(),xz_factor:Tu.NumberNode(),y_factor:Tu.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:()=>Iu.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",Tu.ObjectNode({target:Tu.NumberNode(),size:Tu.NumberNode({integer:!0,min:0}),offset:Tu.NumberNode({integer:!0})})),e.register("generator_structures",Tu.ObjectNode({stronghold:Tu.Opt(Tu.ObjectNode({distance:Tu.NumberNode({integer:!0,min:0,max:1023}),spread:Tu.NumberNode({integer:!0,min:0,max:1023}),count:Tu.NumberNode({integer:!0,min:1,max:4095})})),structures:Tu.MapNode(n({validator:"resource",params:{pool:"worldgen/structure_feature"}}),Tu.Mod(Tu.ObjectNode({spacing:Tu.NumberNode({integer:!0,min:0,max:4096}),separation:Tu.Mod(Tu.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:Tu.NumberNode({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),e.register("generator_layer",Tu.Mod(Tu.ObjectNode({block:n({validator:"resource",params:{pool:"block"}}),height:Tu.NumberNode({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})})),e.register("terrain_shaper",Tu.Mod(Tu.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",Tu.Mod(Tu.ChoiceNode([{type:"number",node:Tu.NumberNode()},{type:"object",node:Tu.ObjectNode({coordinate:Tu.Mod(n({enum:["continents","erosion","weirdness","ridges"]}),{default:()=>"continents"}),points:Tu.ListNode(Tu.ObjectNode({location:Tu.NumberNode(),derivative:Tu.NumberNode(),value:r("terrain_spline")}))},{category:"function"})}],{context:"terrain_spline",choiceContext:"terrain_spline"}),{default:()=>0}))};var Pu={};Object.defineProperty(Pu,"__esModule",{value:!0}),Pu.initStructureFeatureSchemas=void 0;const Lu=Me;Pu.initStructureFeatureSchemas=function(e,t){const r=Lu.StringNode.bind(void 0,t),n=Lu.Reference.bind(void 0,e),i={start_pool:r({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:Lu.NumberNode({integer:!0})};e.register("configured_structure_feature",Lu.Mod(Lu.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:Lu.ObjectNode({[Lu.Switch]:["pop",{push:"type"}],[Lu.Case]:{"minecraft:bastion_remnant":i,"minecraft:buried_treasure":{probability:Lu.NumberNode({min:0,max:1})},"minecraft:mineshaft":{type:r({enum:["normal","mesa"]}),probability:Lu.NumberNode({min:0,max:1})},"minecraft:nether_fossil":{height:n("height_provider")},"minecraft:ocean_ruin":{biome_temp:r({enum:["cold","warm"]}),large_probability:Lu.NumberNode({min:0,max:1}),cluster_probability:Lu.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:Lu.Opt(Lu.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 Ru={};Object.defineProperty(Ru,"__esModule",{value:!0}),Ru.initSurfaceRuleSchemas=void 0;const zu=Me;Ru.initSurfaceRuleSchemas=function(e,t){const r=zu.StringNode.bind(void 0,t),n=zu.Reference.bind(void 0,e);e.register("material_rule",zu.Mod(zu.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/material_rule"}}),[zu.Switch]:[{push:"type"}],[zu.Case]:{"minecraft:block":{result_state:n("block_state")},"minecraft:condition":{if_true:n("material_condition"),then_run:n("material_rule")},"minecraft:sequence":{sequence:zu.ListNode(n("material_rule"))}}},{context:"material_rule",category:"pool"}),{default:()=>({type:"minecraft:block",result_state:{Name:"minecraft:stone"}})})),e.register("material_condition",zu.Mod(zu.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/material_condition"}}),[zu.Switch]:[{push:"type"}],[zu.Case]:{"minecraft:biome":{biome_is:zu.ListNode(r({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:noise_threshold":{noise:r({validator:"resource",params:{pool:"$worldgen/noise"}}),min_threshold:zu.NumberNode(),max_threshold:zu.NumberNode()},"minecraft:not":{invert:n("material_condition")},"minecraft:stone_depth":{surface_type:r({enum:"cave_surface"}),add_run_depth:zu.BooleanNode()},"minecraft:vertical_gradient":{random_name:r(),true_at_and_below:n("vertical_anchor"),false_at_and_above:n("vertical_anchor")},"minecraft:water":{offset:zu.NumberNode({integer:!0}),run_depth_multiplier:zu.NumberNode({integer:!0,min:-20,max:20}),add_stone_depth:zu.BooleanNode()},"minecraft:y_above":{anchor:n("vertical_anchor"),run_depth_multiplier:zu.NumberNode({integer:!0,min:-20,max:20}),add_stone_depth:zu.BooleanNode()}}},{context:"material_condition"}),{default:()=>({type:"minecraft:biome",is_biome:"minecraft:plains"})}))};var Uu={};Object.defineProperty(Uu,"__esModule",{value:!0}),Uu.initTemplatePoolSchemas=void 0;const $u=Me,Xu=Cu;Uu.initTemplatePoolSchemas=function(e,t){const r=$u.Reference.bind(void 0,e),n=$u.StringNode.bind(void 0,t);e.register("template_pool",$u.Mod($u.ObjectNode({fallback:n(),elements:$u.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",$u.Mod($u.ObjectNode({weight:$u.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",$u.Mod($u.ObjectNode({element_type:n({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:n({enum:["rigid","terrain_matching"]}),[$u.Switch]:[{push:"element_type"}],[$u.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:Xu.Processors},"minecraft:list_pool_element":{elements:$u.ListNode(r("template_element"))},"minecraft:single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:Xu.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))},Object.defineProperty(yu,"__esModule",{value:!0}),yu.initWorldgenSchemas=void 0;const Ju=vu,qu=Nu,Hu=Ou,Wu=Du,Zu=ju,Gu=Cu,Ku=Pu,Yu=Ru,Vu=Uu;yu.initWorldgenSchemas=function(e,t){Gu.initProcessorListSchemas(e,t),Ju.initBiomeSchemas(e,t),qu.initCarverSchemas(e,t),Hu.initDecoratorSchemas(e,t),Wu.initFeatureSchemas(e,t),Zu.initNoiseSettingsSchemas(e,t),Ku.initStructureFeatureSchemas(e,t),Yu.initSurfaceRuleSchemas(e,t),Vu.initTemplatePoolSchemas(e,t)};var Qu={};Object.defineProperty(Qu,"__esModule",{value:!0}),Qu.initWorldSettingsSchemas=void 0;const ed=Me;Qu.initWorldSettingsSchemas=function(e,t){const r=ed.Reference.bind(void 0,e),n=ed.StringNode.bind(void 0,t);e.register("world_settings",ed.Mod(ed.ObjectNode({generate_features:ed.BooleanNode(),bonus_chest:ed.BooleanNode(),seed:ed.NumberNode({integer:!0}),dimensions:ed.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(Tl,"__esModule",{value:!0}),Tl.initSchemas=void 0;const td=Il,rd=Ll,nd=ql,id=Hl,od=Gl,ad=Vl,sd=tu,cd=iu,ld=lu,ud=du,dd=mu,pd=fu,md=gu,hd=yu,fd=Qu;Tl.initSchemas=function(e,t){nd.initCommonSchemas(e,t),td.initAdvancementSchemas(e,t),rd.initAssetsSchemas(e,t),id.initConditionSchemas(e,t),ad.initDimensionTypeSchemas(e,t),od.initDimensionSchemas(e,t),sd.initItemModifierSchemas(e,t),cd.initLootTableSchemas(e,t),ld.initPackMcmetaSchemas(e,t),ud.initPredicatesSchemas(e,t),dd.initRecipeSchemas(e,t),pd.initTagsSchemas(e,t),md.initTextComponentSchemas(e,t),hd.initWorldgenSchemas(e,t),fd.initWorldSettingsSchemas(e,t)};var _d=Be&&Be.__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]}),gd=Be&&Be.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),bd=Be&&Be.__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)&&_d(t,e,r);return gd(t,e),t};Object.defineProperty(Ml,"__esModule",{value:!0});var yd=Ml.getSchemas=Ml.getCollections=void 0;const vd=Me,xd=jl,Nd=Tl;var wd=Ml.lootContext=bd(ou);var kd=Ml.getCollections=function(){const e=new vd.CollectionRegistry;return xd.initCollections(e),e};yd=Ml.getSchemas=function(e){const t=new vd.SchemaRegistry;return Nd.initSchemas(t,e),t};var Od=Object.freeze(Object.assign(Object.create(null),Ml,{[Symbol.toStringTag]:"Module",get getSchemas(){return yd},get getCollections(){return kd},lootContext:wd,default:Ml})),Sd={exports:{}};Sd.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 P=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=P;var L=function(e){this.type=n.Syntax.Identifier,this.name=e};t.Identifier=L;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=Fd[e.charCodeAt(r)]<<2|Fd[e.charCodeAt(r+1)]>>4,a[s++]=255&t);1===o&&(t=Fd[e.charCodeAt(r)]<<10|Fd[e.charCodeAt(r+1)]<<4|Fd[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(Ed[t>>2]+Ed[t<<4&63]+"==")):2===n&&(t=(e[r-2]<<8)+e[r-1],i.push(Ed[t>>10]+Ed[t>>4&63]+Ed[t<<2&63]+"="));return i.join("")}},Ed=[],Fd=[],Bd="undefined"!=typeof Uint8Array?Uint8Array:Array,Md="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",jd=0,Td=Md.length;jd0)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 Pd(e,t,r){for(var n,i,o=[],a=t;a>18&63]+Ed[i>>12&63]+Ed[i>>6&63]+Ed[63&i]);return o.join("")}Fd["-".charCodeAt(0)]=62,Fd["_".charCodeAt(0)]=63;var Ld={}; +/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */function Rd(e){return Object.prototype.toString.call(e)}Ld.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)},Ld.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=Cd,r=Ld,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 P.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 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)}L("ERR_BUFFER_OUT_OF_BOUNDS",(function(e){return e?`${e} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"}),RangeError),L("ERR_INVALID_ARG_TYPE",(function(e,t){return`The "${e}" argument must be of type number. Received type ${typeof t}`}),TypeError),L("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")}}(Dd),Ad.isArray=function(e){return Array.isArray?Array.isArray(e):"[object Array]"===Rd(e)},Ad.isBoolean=function(e){return"boolean"==typeof e},Ad.isNull=function(e){return null===e},Ad.isNullOrUndefined=function(e){return null==e},Ad.isNumber=function(e){return"number"==typeof e},Ad.isString=function(e){return"string"==typeof e},Ad.isSymbol=function(e){return"symbol"==typeof e},Ad.isUndefined=function(e){return void 0===e},Ad.isRegExp=function(e){return"[object RegExp]"===Rd(e)},Ad.isObject=function(e){return"object"==typeof e&&null!==e},Ad.isDate=function(e){return"[object Date]"===Rd(e)},Ad.isError=function(e){return"[object Error]"===Rd(e)||e instanceof Error},Ad.isFunction=function(e){return"function"==typeof e},Ad.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},Ad.isBuffer=Dd.Buffer.isBuffer;const zd=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9];let Ud;const $d=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 Xd(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=$d(e),n=$d(t);let i=0;return rn&&(t*=zd[r-n-1],e/=10,i=1),e===t?i:e=0;)i++;return i-t}function qd(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],Ud[a+3]=Ud[a+2];case 2:e[a+2]=e[a+1],Ud[a+2]=Ud[a+1];case 1:e[a+1]=e[a],Ud[a+1]=Ud[a];break;default:for(;c>0;)e[a+c]=e[a+c-1],Ud[a+c]=Ud[a+c-1],c--}e[a]=r,Ud[a]=o}}function Wd(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 Zd(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 Gd{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],Ud[m+c]=Ud[p+c];return o[d]=a[u],void(Ud[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],Ud[d]=Ud[l],d--,l--,r++,f=0,0==--t){_=!0;break}}else if(o[d]=a[u],Ud[d]=s[u],d--,u--,f++,r=0,1==--n){_=!0;break}}while((r|f)=0;c--)o[m+c]=o[p+c],Ud[m+c]=Ud[p+c];if(0===t){_=!0;break}}if(o[d]=a[u],Ud[d]=s[u],d--,u--,1==--n){_=!0;break}if(f=n-Wd(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],Ud[m+c]=Ud[p+c];o[d]=a[u],Ud[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=Jd(e,r,n,t),sl&&(n=l),Hd(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(),Ud}};const Yd=Object.prototype.hasOwnProperty;const Vd=(e,t)=>Yd.call(e,t),{isObject:Qd,isArray:ep}=Ad,tp="before",rp="before-all",np="after-all",ip=[tp,"after-prop","after-colon","after-value","after"],op=[tp,rp,np].map(Symbol.for),ap=(e,t)=>Symbol.for(e+":"+t),sp=(e,t,r)=>Object.defineProperty(e,t,{value:r,writable:!0,configurable:!0}),cp=(e,t,r,n,i,o)=>{const a=ap(i,n);if(!Vd(t,a))return;const s=r===n?a:ap(i,r);sp(e,s,t[a]),o&&delete t[a]},lp=(e,t,r,n,i)=>{ip.forEach((o=>{cp(e,t,r,n,o,i)}))},up=(e,t)=>{op.forEach((r=>{const n=t[r];n&&sp(e,r,n)}))};var dp={SYMBOL_PREFIXES:ip,PREFIX_BEFORE:tp,PREFIX_AFTER_PROP:"after-prop",PREFIX_AFTER_COLON:"after-colon",PREFIX_AFTER_VALUE:"after-value",PREFIX_AFTER:"after",PREFIX_BEFORE_ALL:rp,PREFIX_AFTER_ALL:np,BRACKET_OPEN:"[",BRACKET_CLOSE:"]",CURLY_BRACKET_OPEN:"{",CURLY_BRACKET_CLOSE:"}",COLON:":",COMMA:",",MINUS:"-",EMPTY:"",UNDEFINED:undefined,symbol:ap,define:sp,copy_comments:lp,swap_comments:(e,t,r)=>{t!==r&&ip.forEach((n=>{const i=ap(n,r);if(!Vd(e,i))return void cp(e,e,r,t,n,!0);const o=e[i];delete e[i],cp(e,e,r,t,n,!0),sp(e,ap(n,t),o)}))},assign_non_prop_comments:up,assign(e,t,r){if(!Qd(e))throw new TypeError("Cannot convert undefined or null to object");if(!Qd(t))return e;if(undefined===r)r=Object.keys(t),up(e,t);else{if(!ep(r))throw new TypeError("keys must be array or undefined");0===r.length&&up(e,t)}return((e,t,r)=>(r.forEach((r=>{Vd(t,r)&&(e[r]=t[r],lp(e,t,r,r))})),e))(e,t,r)}};const{isArray:pp}=Ad,{sort:mp}=Kd,{SYMBOL_PREFIXES:hp,UNDEFINED:fp,symbol:_p,copy_comments:gp,swap_comments:bp}=dp,yp=(e,t,r,n,i)=>{gp(e,t,r+n,r,i)},vp=(e,t,r,n,i,o)=>{if(i>0){let a=n;for(;a-- >0;)yp(e,t,r+a,i,o);return}let a=0;for(;a{hp.forEach((r=>{const n=_p(r,t);delete e[n]}))};class Np 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 vp(this,this,s,t-s,a-i,!0),r}slice(...e){const{length:t}=this,r=super.slice(...e);if(!r.length)return new Np;let[n,i]=e;return i===fp?i=t:i<0&&(i+=t),n<0?n+=t:n===fp&&(n=0),vp(r,this,n,i-n,-n),r}unshift(...e){const{length:t}=this,r=super.unshift(...e),{length:n}=e;return n>0&&vp(this,this,0,t,n,!0),r}shift(){const e=super.shift(),{length:t}=this;return xp(this,0),vp(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+=pp(e)?e.length:1,e instanceof Np&&vp(r,e,0,e.length,n)})),r):r}sort(...e){const t=mp(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,bp(this,t,n))})),this}}var wp={CommentArray:Np};const kp=Sd.exports,{CommentArray:Op}=wp,{PREFIX_BEFORE:Sp,PREFIX_AFTER_PROP:Ap,PREFIX_AFTER_COLON:Dp,PREFIX_AFTER_VALUE:Cp,PREFIX_AFTER:Ep,PREFIX_BEFORE_ALL:Fp,PREFIX_AFTER_ALL:Bp,BRACKET_OPEN:Mp,BRACKET_CLOSE:jp,CURLY_BRACKET_OPEN:Tp,CURLY_BRACKET_CLOSE:Ip,COLON:Pp,COMMA:Lp,MINUS:Rp,EMPTY:zp,UNDEFINED:Up,define:$p,assign_non_prop_comments:Xp}=dp,Jp=e=>kp.tokenize(e,{comment:!0,loc:!0}),qp=[];let Hp=null,Wp=null;const Zp=[];let Gp,Kp,Yp=!1,Vp=!1,Qp=null,em=null,tm=null,rm=null;const nm=()=>{Zp.length=qp.length=0,em=null,Gp=Up},im=e=>Symbol.for(Gp!==Up?e+Pp+Gp:e),om=(e,t)=>rm?rm(e,t):t,am=()=>{const e=new SyntaxError(`Unexpected token ${tm.value.slice(0,1)}`);throw Object.assign(e,tm.loc.start),e},sm=()=>{const e=new SyntaxError("Unexpected end of JSON input");throw Object.assign(e,em?em.loc.end:{line:1,column:0}),e},cm=()=>{const e=Qp[++Kp];Vp=tm&&e&&tm.loc.end.line===e.loc.start.line||!1,em=tm,tm=e},lm=()=>(tm||sm(),"Punctuator"===tm.type?tm.value:tm.type),um=e=>lm()===e,dm=e=>{um(e)||am()},pm=e=>{qp.push(Hp),Hp=e},mm=()=>{Hp=qp.pop()},hm=()=>{if(!Wp)return;const e=[];for(const r of Wp){if(!r.inline)break;e.push(r)}const{length:t}=e;t&&(t===Wp.length?Wp=null:Wp.splice(0,t),$p(Hp,im(Ep),e))},fm=e=>{Wp&&($p(Hp,im(e),Wp),Wp=null)},_m=e=>{const t=[];for(;tm&&(um("LineComment")||um("BlockComment"));){const e=c(s({},tm),{inline:Vp});t.push(e),cm()}Yp||t.length&&(e?$p(Hp,im(e),t):Wp=t)},gm=(e,t)=>{t&&Zp.push(Gp),Gp=e},bm=()=>{Gp=Zp.pop()};function ym(){let e=lm();if(e===Tp)return cm(),(()=>{const e={};pm(e),gm(Up,!0);let t,r=!1;for(_m();!(um(Ip)||r&&(fm(Cp),dm(Lp),cm(),_m(),hm(),um(Ip)));)r=!0,dm("String"),t=JSON.parse(tm.value),gm(t),fm(Sp),cm(),_m(Ap),dm(Pp),cm(),_m(Dp),e[t]=om(t,ym()),_m();return r&&fm(Ep),cm(),Gp=void 0,r||fm(Sp),mm(),bm(),e})();if(e===Mp)return cm(),(()=>{const e=new Op;pm(e),gm(Up,!0);let t=!1,r=0;for(_m();!(um(jp)||t&&(fm(Cp),dm(Lp),cm(),_m(),hm(),um(jp)));)t=!0,gm(r),fm(Sp),e[r]=om(r,ym()),r++,_m();return t&&fm(Ep),cm(),Gp=void 0,t||fm(Sp),mm(),bm(),e})();let t,r=zp;switch(e===Rp&&(cm(),e=lm(),r=Rp),e){case"String":case"Boolean":case"Null":case"Numeric":return t=tm.value,cm(),JSON.parse(r+t)}}var vm,xm={parse:(e,t,r)=>{nm(),Qp=Jp(e),rm=t,Yp=r,Qp.length||sm(),Kp=-1,cm(),pm({}),_m(Fp);let n=ym();var i;return _m(Bp),tm&&am(),r||null===n||(i=n,Object(i)!==i&&(n=new Object(n)),Xp(n,Hp)),mm(),n=om("",n),nm(),Qp.length=0,Wp=Hp=Qp=em=tm=rm=null,n},tokenize:Jp},Nm="",wm=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(vm!==e||void 0===vm)vm=e,Nm="";else if(Nm.length>=r)return Nm.substr(0,r);for(;r>Nm.length&&t>1;)1&t&&(Nm+=e),t>>=1,e+=e;return Nm=(Nm+=e).substr(0,r)}; +/*! + * repeat-string + * + * Copyright (c) 2014-2015, Jon Schlinkert. + * Licensed under the MIT License. + */const{isArray:km,isObject:Om,isFunction:Sm,isNumber:Am,isString:Dm}=Ad,Cm=wm,{PREFIX_BEFORE_ALL:Em,PREFIX_BEFORE:Fm,PREFIX_AFTER_PROP:Bm,PREFIX_AFTER_COLON:Mm,PREFIX_AFTER_VALUE:jm,PREFIX_AFTER:Tm,PREFIX_AFTER_ALL:Im,BRACKET_OPEN:Pm,BRACKET_CLOSE:Lm,CURLY_BRACKET_OPEN:Rm,CURLY_BRACKET_CLOSE:zm,COLON:Um,COMMA:$m,EMPTY:Xm,UNDEFINED:Jm}=dp,qm=/[\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,Hm=e=>`${Fm}:${e}`,Wm=e=>`${jm}:${e}`,Zm=e=>`${Tm}:${e}`,Gm={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},Km=e=>`"${(e=>(qm.lastIndex=0,qm.test(e)?e.replace(qm,(e=>{const t=Gm[e];return"string"==typeof t?t:e})):e))(e)}"`,Ym=(e,t,r,n)=>{const i=e[Symbol.for(t)];if(!i||!i.length)return Xm;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))),Xm);return n||o?a+"\n"+r:a};let Vm=null,Qm=Xm;const eh=(e,t,r)=>e?t?e+t.trim()+"\n"+r:e.trimRight()+"\n"+r:t?t.trimRight()+"\n"+r:Xm,th=(e,t,r)=>{const n=Ym(t,Fm,r+Qm,!0);return eh(n,e,r)},rh=(e,t)=>{if(!e)return"null";const r=t+Qm;let n=Xm,i=Xm,o=!0;return(km(Vm)?Vm:Object.keys(e)).forEach((t=>{const a=nh(t,e,r);if(a===Jm)return;o||(n+=$m),o=!1;const s=eh(i,Ym(e,Hm(t),r),r);n+=s||"\n"+r,n+=Km(t)+Ym(e,`${Bm}:${t}`,r)+Um+Ym(e,(e=>`${Mm}:${e}`)(t),r)+" "+a+Ym(e,Wm(t),r),i=Ym(e,Zm(t),r)})),n+=eh(i,Ym(e,Tm,r),r),Rm+th(n,e,t)+zm};function nh(e,t,r){let n=t[e];switch(Om(n)&&Sm(n.toJSON)&&(n=n.toJSON(e)),Sm(Vm)&&(n=Vm.call(t,e,n)),typeof n){case"string":return Km(n);case"number":return Number.isFinite(n)?String(n):"null";case"boolean":case"null":return String(n);case"object":return km(n)?((e,t)=>{const r=t+Qm,{length:n}=e;let i=Xm,o=Xm;for(let a=0;a{const n=(e=>Dm(e)?e:Am(e)?Cm(" ",e):Xm)(r);if(!n)return JSON.stringify(e,t);Sm(t)||km(t)||(t=null),Vm=t,Qm=n;const i=(e=>{if("object"!=typeof e)return!1;const t=ih.call(e);return oh.includes(t)})(e)?JSON.stringify(e):nh("",{"":e},Xm);return Vm=null,Qm=Xm,Om(e)?Ym(e,Em,Xm).trimLeft()+i+Ym(e,Im,Xm).trimRight():i},{CommentArray:lh}=wp,{assign:uh}=dp;var dh={parse:ah,stringify:ch,tokenize:sh,CommentArray:lh,assign:uh},ph={},mh={},hh={};function fh(e){return null==e}function _h(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||""}hh.isNothing=fh,hh.isObject=function(e){return"object"==typeof e&&null!==e},hh.toArray=function(e){return Array.isArray(e)?e:fh(e)?[]:[e]},hh.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),bh.repeat(" ",e)+r+a+i+"\n"+bh.repeat(" ",e+this.position-n+r.length)+"^"},yh.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 vh=yh,xh=gh,Nh=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],wh=["scalar","sequence","mapping"];var kh=function(e,t){var r,n;if(t=t||{},Object.keys(t).forEach((function(t){if(-1===Nh.indexOf(t))throw new xh('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===wh.indexOf(this.kind))throw new xh('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')},Oh=hh,Sh=gh,Ah=kh;function Dh(e,t,r){var n=[];return e.include.forEach((function(e){r=Dh(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 Ch(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 Sh("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")})),this.compiledImplicit=Dh(this,"implicit",[]),this.compiledExplicit=Dh(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"]}}),Lh=hh,Rh=kh,zh=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 Uh=/^[-+]?[0-9]+e/;var $h=new Eh({include:[Fh],implicit:[Bh,Mh,Ph,new Rh("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(e){return null!==e&&!(!zh.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||Lh.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(Lh.isNegativeZero(e))return"-0.0";return r=e.toString(10),Uh.test(r)?r.replace("e",".e"):r},defaultStyle:"lowercase"})]}),Xh=new Eh({include:[$h]}),Jh=kh,qh=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),Hh=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 Wh=new Jh("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(e){return null!==e&&(null!==qh.exec(e)||null!==Hh.exec(e))},construct:function(e){var t,r,n,i,o,a,s,c,l=0,u=null;if(null===(t=qh.exec(e))&&(t=Hh.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 Zh,Gh=new kh("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(e){return"<<"===e||null===e}});try{var Kh=require;Zh=Kh("buffer").Buffer}catch(kb){}var Yh="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";var Vh=new kh("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,r,n=0,i=e.length,o=Yh;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=Yh,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),Zh?Zh.from?Zh.from(s):new Zh(s):s},predicate:function(e){return Zh&&Zh.isBuffer(e)},represent:function(e){var t,r,n="",i=0,o=e.length,a=Yh;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}}),Qh=kh,ef=Object.prototype.hasOwnProperty,tf=Object.prototype.toString;var rf=new Qh("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 mf=require;df=mf("esprima")}catch(Ob){"undefined"!=typeof window&&(df=window.esprima)}var hf=new kh("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:function(e){if(null===e)return!1;try{var t="("+e+")",r=df.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=df.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()}}),ff=Eh,_f=ff.DEFAULT=new ff({include:[lf],explicit:[uf,pf,hf]}),gf=hh,bf=gh,yf=vh,vf=lf,xf=_f,Nf=Object.prototype.hasOwnProperty,wf=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,kf=/[\x85\u2028\u2029]/,Of=/[,\[\]\{\}]/,Sf=/^(?:!|!!|![a-z\-]+!)$/i,Af=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function Df(e){return Object.prototype.toString.call(e)}function Cf(e){return 10===e||13===e}function Ef(e){return 9===e||32===e}function Ff(e){return 9===e||32===e||10===e||13===e}function Bf(e){return 44===e||91===e||93===e||123===e||125===e}function Mf(e){var t;return 48<=e&&e<=57?e-48:97<=(t=32|e)&&t<=102?t-97+10:-1}function jf(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 Tf(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10),56320+(e-65536&1023))}for(var If=new Array(256),Pf=new Array(256),Lf=0;Lf<256;Lf++)If[Lf]=jf(Lf)?1:0,Pf[Lf]=jf(Lf);function Rf(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||xf,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 zf(e,t){return new bf(t,new yf(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function Uf(e,t){throw zf(e,t)}function $f(e,t){e.onWarning&&e.onWarning.call(null,zf(e,t))}var Xf={YAML:function(e,t,r){var n,i,o;null!==e.version&&Uf(e,"duplication of %YAML directive"),1!==r.length&&Uf(e,"YAML directive accepts exactly one argument"),null===(n=/^([0-9]+)\.([0-9]+)$/.exec(r[0]))&&Uf(e,"ill-formed argument of the YAML directive"),i=parseInt(n[1],10),o=parseInt(n[2],10),1!==i&&Uf(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&&Uf(e,"TAG directive accepts exactly two arguments"),n=r[0],i=r[1],Sf.test(n)||Uf(e,"ill-formed tag handle (first argument) of the TAG directive"),Nf.call(e.tagMap,n)&&Uf(e,'there is a previously declared suffix for "'+n+'" tag handle'),Af.test(i)||Uf(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=i}};function Jf(e,t,r,n){var i,o,a,s;if(t1&&(e.result+=gf.repeat("\n",t-1))}function Yf(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&&Ff(e.input.charCodeAt(e.position+1));)if(s=!0,e.position++,Zf(e,!0,-1)&&e.lineIndent<=t)a.push(null),n=e.input.charCodeAt(e.position);else if(r=e.line,e_(e,t,3,!1,!0),a.push(e.result),Zf(e,!0,-1),n=e.input.charCodeAt(e.position),(e.line===r||e.lineIndent>t)&&0!==n)Uf(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)&&(e_(e,t,4,!0,i)&&(f?m=e.result:h=e.result),f||(Hf(e,u,d,p,m,h,o,a),p=m=h=null),Zf(e,!0,-1),s=e.input.charCodeAt(e.position)),e.lineIndent>t&&0!==s)Uf(e,"bad indentation of a mapping entry");else if(e.lineIndent=0))break;0===i?Uf(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):l?Uf(e,"repeat of an indentation width identifier"):(u=t+i-1,l=!0)}if(Ef(o)){do{o=e.input.charCodeAt(++e.position)}while(Ef(o));if(35===o)do{o=e.input.charCodeAt(++e.position)}while(!Cf(o)&&0!==o)}for(;0!==o;){for(Wf(e),e.lineIndent=0,o=e.input.charCodeAt(e.position);(!l||e.lineIndentu&&(u=e.lineIndent),Cf(o))d++;else{if(e.lineIndent0){for(i=a,o=0;i>0;i--)(a=Mf(s=e.input.charCodeAt(++e.position)))>=0?o=(o<<4)+a:Uf(e,"expected hexadecimal character");e.result+=Tf(o),e.position++}else Uf(e,"unknown escape sequence");r=n=e.position}else Cf(s)?(Jf(e,r,n,!0),Kf(e,Zf(e,!1,t)),r=n=e.position):e.position===e.lineStart&&Gf(e)?Uf(e,"unexpected end of the document within a double quoted scalar"):(e.position++,n=e.position)}Uf(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&&!Ff(n)&&!Bf(n);)n=e.input.charCodeAt(++e.position);return e.position===t&&Uf(e,"name of an alias node must contain at least one character"),r=e.input.slice(t,e.position),Nf.call(e.anchorMap,r)||Uf(e,'unidentified alias "'+r+'"'),e.result=e.anchorMap[r],Zf(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(Ff(u=e.input.charCodeAt(e.position))||Bf(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)&&(Ff(n=e.input.charCodeAt(e.position+1))||r&&Bf(n)))return!1;for(e.kind="scalar",e.result="",i=o=e.position,a=!1;0!==u;){if(58===u){if(Ff(n=e.input.charCodeAt(e.position+1))||r&&Bf(n))break}else if(35===u){if(Ff(e.input.charCodeAt(e.position-1)))break}else{if(e.position===e.lineStart&&Gf(e)||r&&Bf(u))break;if(Cf(u)){if(s=e.line,c=e.lineStart,l=e.lineIndent,Zf(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&&(Jf(e,i,o,!1),Kf(e,e.line-s),i=o=e.position,a=!1),Ef(u)||(o=e.position+1),u=e.input.charCodeAt(++e.position)}return Jf(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||Uf(e,"alias node should not have any properties")),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):0===m&&(f=s&&Yf(e,p))),null!==e.tag&&"!"!==e.tag)if("?"===e.tag){for(null!==e.result&&"scalar"!==e.kind&&Uf(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)):Uf(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):Uf(e,"unknown tag !<"+e.tag+">");return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||f}function t_(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))&&(Zf(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&&!Ff(i);)i=e.input.charCodeAt(++e.position);for(n=[],(r=e.input.slice(t,e.position)).length<1&&Uf(e,"directive name must not be less than one character in length");0!==i;){for(;Ef(i);)i=e.input.charCodeAt(++e.position);if(35===i){do{i=e.input.charCodeAt(++e.position)}while(0!==i&&!Cf(i));break}if(Cf(i))break;for(t=e.position;0!==i&&!Ff(i);)i=e.input.charCodeAt(++e.position);n.push(e.input.slice(t,e.position))}0!==i&&Wf(e),Nf.call(Xf,r)?Xf[r](e,r,n):$f(e,'unknown document directive "'+r+'"')}Zf(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,Zf(e,!0,-1)):a&&Uf(e,"directives end mark is expected"),e_(e,e.lineIndent-1,4,!1,!0),Zf(e,!0,-1),e.checkLineBreaks&&kf.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&&Gf(e)?46===e.input.charCodeAt(e.position)&&(e.position+=3,Zf(e,!0,-1)):e.position0?e.charCodeAt(o-1):null,m=m&&v_(a,s)}else{for(o=0;on&&" "!==e[p+1],p=o);else if(!y_(a))return 5;s=o>0?e.charCodeAt(o-1):null,m=m&&v_(a,s)}u=u||d&&o-p-1>n&&" "!==e[p+1]}return l||u?r>9&&x_(e)?5:u?4:3:m&&!i(e)?1:2}function w_(e,t,r,n){e.dump=function(){if(0===t.length)return"''";if(!e.noCompatMode&&-1!==m_.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(N_(t,a,e.indent,o,(function(t){return function(e,t){var r,n;for(r=0,n=e.implicitTypes.length;r"+k_(t,e.indent)+O_(__(function(e,t){var r,n,i=/(\n+)([^\n]*)/g,o=(s=e.indexOf("\n"),s=-1!==s?s:e.length,i.lastIndex=s,S_(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")+S_(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+=h_(1024*(t-55296)+r-56320+65536),o++):i+=!(n=p_[t])&&y_(t)?e[o]:n||h_(t);return i}(t)+'"';default:throw new s_("impossible error: invalid scalar style")}}()}function k_(e,t){var r=x_(e)?String(t):"",n="\n"===e[e.length-1];return r+(n&&("\n"===e[e.length-2]||"\n"===e)?"+":n?"":"-")+"\n"}function O_(e){return"\n"===e[e.length-1]?e.slice(0,-1):e}function S_(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 A_(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 D_(e,t,r,n,i,o){e.tag=null,e.dump=r,A_(e,r,!1)||A_(e,r,!0);var a=u_.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 s_("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+=g_(e,t)),D_(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?"":" "),D_(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 C_(e,t){var r,n,i=[],o=[];for(E_(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!==Be?(Be.HowlerGlobal=t,Be.Howler=r,Be.Howl=n,Be.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"']/,sg=/[&<>"']/g,cg=/[<>"']|&(?!#?\w+;)/,lg=/[<>"']|&(?!#?\w+;)/g,ug={"&":"&","<":"<",">":">",'"':""","'":"'"},dg=e=>ug[e];const pg=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function mg(e){return e.replace(pg,((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 hg=/(^|[^\[])\^/g;const fg=/[^\w:]/g,_g=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;const gg={},bg=/^[^:]+:\/*[^/]*$/,yg=/^([^:]+:)[\s\S]*$/,vg=/^([^:]+:\/*[^/]*)[\s\S]*$/;function xg(e,t){gg[" "+e]||(bg.test(e)?gg[" "+e]=e+"/":gg[" "+e]=Ng(e,"/",!0));const r=-1===(e=gg[" "+e]).indexOf(":");return"//"===t.substring(0,2)?r?t:e.replace(yg,"$1")+t:"/"===t.charAt(0)?r?t:e.replace(vg,"$1")+t:e+t}function Ng(e,t,r){const n=e.length;if(0===n)return"";let i=0;for(;i(n=(n=n.source||n).replace(hg,"$1"),e=e.replace(t,n),r),getRegex:()=>new RegExp(e,t)};return r},cleanUrl:function(e,t,r){if(e){let e;try{e=decodeURIComponent(mg(r)).replace(fg,"").toLowerCase()}catch(n){return null}if(0===e.indexOf("javascript:")||0===e.indexOf("vbscript:")||0===e.indexOf("data:"))return null}t&&!_g.test(r)&&(r=xg(t,r));try{r=encodeURI(r).replace(/%25/g,"%")}catch(n){return null}return r},resolveUrl:xg,noopTest:{exec:function(){}},merge:function(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}};const{defaults:kg}=ig.exports,{rtrim:Og,splitCells:Sg,escape:Ag,findClosingBracket:Dg}=wg;function Cg(e,t,r,n){const i=t.href,o=t.title?Ag(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:Ag(a)}}var Eg=class{constructor(e){this.options=e||kg}space(e){const t=this.rules.block.newline.exec(e);if(t)return t[0].length>1?{type:"space",raw:t[0]}:{raw:"\n"}}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:Og(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=Og(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=t[1].trim();const m=p.length>1,h={type:"list",raw:"",ordered:m,start:m?+p.slice(0,-1):"",loose:!1,items:[]};p=m?`\\d{1,9}\\${p.slice(-1)}`:`\\${p}`,this.options.pedantic&&(p=m?p:"[*+-]");const f=new RegExp(`^( {0,3}${p})((?: [^\\n]*| *)(?:\\n[^\\n]*)*(?:\\n|$))`);for(;e&&!this.rules.block.hr.test(e)&&(t=f.exec(e));){u=t[2].split("\n"),this.options.pedantic?(o=2,d=u[0].trimLeft()):(o=t[2].search(/[^ ]/),o=t[1].length+(o>4?1:o),d=u[0].slice(o-t[1].length)),s=!1,r=t[0],!u[0]&&/^ *$/.test(u[1])&&(r=t[1]+u.slice(0,2).join("\n")+"\n",h.loose=!0,u=[]);const p=new RegExp(`^ {0,${Math.min(3,o-1)}}(?:[*+-]|\\d{1,9}[.)])`);for(a=1;a=o)&&l.trim()){r=t[1]+u.slice(0,a).join("\n")+"\n";break}d+="\n"+l.slice(o)}else l.trim()||(s=!0),l.search(/[^ ]/)>=o?d+="\n"+l.slice(o):d+="\n"+l}h.loose||(c?h.loose=!0:/\n *\n *$/.test(r)&&(c=!0)),this.options.gfm&&(n=/^\[[ xX]\] /.exec(d),n&&(i="[ ] "!==n[0],d=d.replace(/^\[[ xX]\] +/,""))),h.items.push({type:"list_item",raw:r,task:!!n,checked:i,loose:!1,text:d}),h.raw+=r,e=e.slice(r.length)}h.items[h.items.length-1].raw=r.trimRight(),h.items[h.items.length-1].text=d.trimRight(),h.raw=h.raw.trimRight();const _=h.items.length;for(a=0;a<_;a++)this.lexer.state.top=!1,h.items[a].tokens=this.lexer.blockTokens(h.items[a].text,[]),h.items[a].tokens.some((e=>"space"===e.type))&&(h.loose=!0,h.items[a].loose=!0);return h}}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]):Ag(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:Sg(t[1]).map((e=>({text:e}))),align:t[2].replace(/^ *|\| *$/g,"").split(/ *\| */),rows:t[3]?t[3].replace(/\n$/,"").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]):Ag(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=Og(e.slice(0,-1),"\\");if((e.length-t.length)%2==0)return}else{const e=Dg(t[2],"()");if(e>-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)),Cg(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 Cg(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=Ag(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=Ag(this.options.mangle?t(r[1]):r[1]),n="mailto:"+e):(e=Ag(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=Ag(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=Ag(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]):Ag(r[0]):r[0]:Ag(this.options.smartypants?t(r[0]):r[0]),{type:"text",raw:r[0],text:e}}}};const{noopTest:Fg,edit:Bg,merge:Mg}=wg,jg={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:Fg,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html| +\n)[^\n]+)*)/,text:/^[^\n]+/,_label:/(?!\s*\])(?:\\[\[\]]|[^\[\]])+/,_title:/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/};jg.def=Bg(jg.def).replace("label",jg._label).replace("title",jg._title).getRegex(),jg.bullet=/(?:[*+-]|\d{1,9}[.)])/,jg.listItemStart=Bg(/^( *)(bull) */).replace("bull",jg.bullet).getRegex(),jg.list=Bg(jg.list).replace(/bull/g,jg.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+jg.def.source+")").getRegex(),jg._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",jg._comment=/|$)/,jg.html=Bg(jg.html,"i").replace("comment",jg._comment).replace("tag",jg._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),jg.paragraph=Bg(jg._paragraph).replace("hr",jg.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").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",jg._tag).getRegex(),jg.blockquote=Bg(jg.blockquote).replace("paragraph",jg.paragraph).getRegex(),jg.normal=Mg({},jg),jg.gfm=Mg({},jg.normal,{table:"^ *([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"}),jg.gfm.table=Bg(jg.gfm.table).replace("hr",jg.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",jg._tag).getRegex(),jg.pedantic=Mg({},jg.normal,{html:Bg("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",jg._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:Fg,paragraph:Bg(jg.normal._paragraph).replace("hr",jg.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",jg.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});const Tg={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:Fg,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,nolink:/^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,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:Fg,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\?@\\[\\]`^{|}~"};Tg.punctuation=Bg(Tg.punctuation).replace(/punctuation/g,Tg._punctuation).getRegex(),Tg.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g,Tg.escapedEmSt=/\\\*|\\_/g,Tg._comment=Bg(jg._comment).replace("(?:--\x3e|$)","--\x3e").getRegex(),Tg.emStrong.lDelim=Bg(Tg.emStrong.lDelim).replace(/punct/g,Tg._punctuation).getRegex(),Tg.emStrong.rDelimAst=Bg(Tg.emStrong.rDelimAst,"g").replace(/punct/g,Tg._punctuation).getRegex(),Tg.emStrong.rDelimUnd=Bg(Tg.emStrong.rDelimUnd,"g").replace(/punct/g,Tg._punctuation).getRegex(),Tg._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,Tg._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,Tg._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])?)+(?![-_])/,Tg.autolink=Bg(Tg.autolink).replace("scheme",Tg._scheme).replace("email",Tg._email).getRegex(),Tg._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,Tg.tag=Bg(Tg.tag).replace("comment",Tg._comment).replace("attribute",Tg._attribute).getRegex(),Tg._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,Tg._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,Tg._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,Tg.link=Bg(Tg.link).replace("label",Tg._label).replace("href",Tg._href).replace("title",Tg._title).getRegex(),Tg.reflink=Bg(Tg.reflink).replace("label",Tg._label).getRegex(),Tg.reflinkSearch=Bg(Tg.reflinkSearch,"g").replace("reflink",Tg.reflink).replace("nolink",Tg.nolink).getRegex(),Tg.normal=Mg({},Tg),Tg.pedantic=Mg({},Tg.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:Bg(/^!?\[(label)\]\((.*?)\)/).replace("label",Tg._label).getRegex(),reflink:Bg(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Tg._label).getRegex()}),Tg.gfm=Mg({},Tg.normal,{escape:Bg(Tg.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]*?(?:(?=[\\.5&&(r="x"+r.toString(16)),n+="&#"+r+";";return n}var Jg=class e{constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||Lg,this.options.tokenizer=this.options.tokenizer||new Pg,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};const t={block:Rg.normal,inline:zg.normal};this.options.pedantic?(t.block=Rg.pedantic,t.inline=zg.pedantic):this.options.gfm&&(t.block=Rg.gfm,this.options.breaks?t.inline=zg.breaks:t.inline=zg.gfm),this.tokenizer.rules=t}static get rules(){return{block:Rg,inline:zg}}static lex(t,r){return new e(r).lex(t)}static lexInline(t,r){return new e(r).inlineTokens(t)}lex(e){let t;for(e=e.replace(/\r\n|\r/g,"\n").replace(/\t/g," "),this.blockTokens(e,this.tokens);t=this.inlineQueue.shift();)this.inlineTokens(t.src,t.tokens);return this.tokens}blockTokens(e,t=[]){let r,n,i,o;for(this.options.pedantic&&(e=e.replace(/^ +$/gm,""));e;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some((n=>!!(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),r.type&&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)+"["+Ug("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)+"["+Ug("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,Xg))e=e.substring(r.raw.length),t.push(r);else if(this.state.inLink||!(r=this.tokenizer.url(e,Xg))){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,$g))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}};const{defaults:qg}=ig.exports,{cleanUrl:Hg,escape:Wg}=wg;var Zg=class{constructor(e){this.options=e||qg}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:Wg(e,!0))+"
    \n":"
    "+(r?e:Wg(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=Hg(this.options.sanitize,this.options.baseUrl,e)))return r;let n='
    ",n}image(e,t,r){if(null===(e=Hg(this.options.sanitize,this.options.baseUrl,e)))return r;let n=''+r+'":">",n}text(e){return e}},Gg=class{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""}},Kg=class{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)}};const Yg=Zg,Vg=Gg,Qg=Kg,{defaults:eb}=ig.exports,{unescape:tb}=wg;var rb=class e{constructor(e){this.options=e||eb,this.options.renderer=this.options.renderer||new Yg,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new Vg,this.slugger=new Qg}static parse(t,r){return new e(r).parse(t)}static parseInline(t,r){return new e(r).parseInline(t)}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=nb.lex(e,t);return t.walkTokens&&fb.walkTokens(r,t.walkTokens),ib.parse(r,t)}catch(n){if(n.message+="\nPlease report this to https://github.com/markedjs/marked.",t.silent)return"

    An error occurred:

    "+db(n.message+"",!0)+"
    ";throw n}}fb.options=fb.setOptions=function(e){return lb(fb.defaults,e),mb(fb.defaults),fb},fb.getDefaults=pb,fb.defaults=hb,fb.use=function(...e){const t=lb({},...e),r=fb.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=fb.defaults.renderer||new ab;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=fb.defaults.tokenizer||new ob;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=fb.defaults.walkTokens;t.walkTokens=function(t){e.walkTokens.call(this,t),r&&r.call(this,t)}}n&&(t.extensions=r),fb.setOptions(t)}))},fb.walkTokens=function(e,t){for(const r of e)switch(t.call(fb,r),r.type){case"table":for(const e of r.header)fb.walkTokens(e.tokens,t);for(const e of r.rows)for(const r of e)fb.walkTokens(r.tokens,t);break;case"list":fb.walkTokens(r.items,t);break;default:fb.defaults.extensions&&fb.defaults.extensions.childTokens&&fb.defaults.extensions.childTokens[r.type]?fb.defaults.extensions.childTokens[r.type].forEach((function(e){fb.walkTokens(r[e],t)})):r.tokens&&fb.walkTokens(r.tokens,t)}},fb.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");t=lb({},fb.defaults,t||{}),ub(t);try{const r=nb.lexInline(e,t);return t.walkTokens&&fb.walkTokens(r,t.walkTokens),ib.parseInline(r,t)}catch(r){if(r.message+="\nPlease report this to https://github.com/markedjs/marked.",t.silent)return"

    An error occurred:

    "+db(r.message+"",!0)+"
    ";throw r}},fb.Parser=ib,fb.parser=ib.parse,fb.Renderer=ab,fb.TextRenderer=sb,fb.Lexer=nb,fb.lexer=nb.lex,fb.Tokenizer=ob,fb.Slugger=cb,fb.parse=fb;const _b=fb,gb=Jg,bb=rb,yb=Eg,vb=Zg,xb=Gg,Nb=Kg;ng.exports=_b,ng.exports.parse=_b,ng.exports.Parser=bb,ng.exports.parser=bb.parse,ng.exports.Renderer=vb,ng.exports.TextRenderer=xb,ng.exports.Lexer=gb,ng.exports.lexer=gb.lex,ng.exports.Tokenizer=yb,ng.exports.Slugger=Nb;var wb=ng.exports;export{ke as A,rg as B,fi as C,we as D,mi as E,wb as F,Xi as G,Wi as L,U as N,Hi as O,se as R,Ei as T,Pi as V,Ui as Z,v as a,Me as b,Ws as c,Bl as d,Od as e,mo as f,ho as g,go as h,vo as i,ma as j,ki as k,ve as l,_o as m,N as n,dh as o,T_ as p,L_ as q,No as r,Ne as s,Oe as t,Q as u,ce as v,xo as w,ee as x,xe as y,Yi as z}; +//# sourceMappingURL=vendor.f42aafe4.js.map diff --git a/assets/vendor.f42aafe4.js.map b/assets/vendor.f42aafe4.js.map new file mode 100644 index 00000000..924c1a50 --- /dev/null +++ b/assets/vendor.f42aafe4.js.map @@ -0,0 +1 @@ +{"version":3,"file":"vendor.f42aafe4.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/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/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/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/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/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/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/howler/dist/howler.js","../../node_modules/marked/lib/marked.esm.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","\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 y(t,e,i,s){const n=x(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 x(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 S(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 B(t,e,i,s){const n=S(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 I(t,e){try{return t()}catch(t){return e}}var P,E,A,C,R;!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 N{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=S(t.value,\"Name\",\"string\"),i=I((()=>S(t.value,\"Properties\",\"compound\")),{}),s=Object.keys(i).reduce(((t,e)=>Object.assign(Object.assign({},t),{[e]:S(i,e,\"string\")})),{});return new N(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 N(n,r)}}N.AIR=new N(\"minecraft:air\");class k{constructor(t){this.minY=t,this.storage=Array(k.SIZE),this.palette=[N.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:N.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:N.AIR}setBlockState(t,e){const[i,s,n]=t,r=this.getSectionIndex(s);let o=this.sections[r];if(null===o){if(e.equals(N.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 N(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]N.fromNbt({name:\"\",value:t}))),s=B(t.value,\"blocks\",\"compound\").map((t=>({pos:B(t,\"pos\",\"int\",3),state:S(t,\"state\",\"int\"),nbt:I((()=>S(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 X(t,e,i){return i<0?t:i>1?e:L(i,t,e)}function z(t){return t*t*t*(t*(6*t-15)+10)}function j(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 V{constructor(t){this.seed=BigInt(0),this.setSeed(t)}fork(){return new V(this.nextLong())}setSeed(t){this.seed=t^V.MULTIPLIER&V.MODULUS_MASK}advance(){this.seed=this.seed*V.MULTIPLIER+V.INCREMENT&V.MODULUS_MASK}consume(t){for(let e=0;e>BigInt(V.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^W.SILVER_RATIO_64,i=e+W.GOLDEN_RATIO_64&BigInt(\"0xFFFFFFFFFFFFFFFF\");return[W.mixStafford13(e),W.mixStafford13(i)]}static rotateLeft(t,e){return t<>BigInt(64)-e}setSeed(t){this.seed=W.upgradeSeedTo128bit(t)}fork(){return new W([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=W.getSeed(t,e,i)^this.seed[0];return new W([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){var e=this.next()&BigInt(4294967295);if(t){const o=BigInt(t);var i=e*o,s=i&BigInt(4294967295);if(s>BigInt(32);return Number(r)}var o=Number(e);return o>=2147483648&&(o-=4294967296),o}nextFloat(){return Number(this.nextBits(24))*W.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*W.DOUBLE_MULTIPLIER}parityConfigString(){return\"seedLo: \"+this.seed[0]+\", seedHi: \"+this.seed[1]}}W.SILVER_RATIO_64=BigInt(\"7640891576956012809\"),W.GOLDEN_RATIO_64=BigInt(\"-7046029254386353131\"),W.FLOAT_MULTIPLIER=1/Math.pow(2,24),W.DOUBLE_MULTIPLIER=11102230246251565e-32;class Y{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)*Y.F2,o=Math.floor(t+r),a=t-(o-(i=(o+(s=Math.floor(e+r)))*Y.G2));let l,h;a>(n=e-(s-i))?(l=1,h=0):(l=0,h=1);const u=a-l+Y.G2,c=n-h+Y.G2,d=a-1+2*Y.G2,f=n-1+2*Y.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 X(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 Z(t,e,i),this.second=new Z(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:[]}}}(C||(C={}));class ${constructor(t,e){const i=e[e.length-1],s=-e[0]+i+1,n=new Set(e),r=new Y(t);this.noiseLevels=Array(s),i>=0&&i=0&&n.has(i-e)?this.noiseLevels[e]=new Y(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}}(R||(R={}));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=j(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 y=r.from[0],x=r.from[1],S=r.from[2],B=r.to[0],I=r.to[1],P=r.to[2],E=[],A=[],C=[],R=[],N=(i,s,n)=>{var r,l,h,u,c,d,f,g,p,m,v,b;const[w,F,y,x]=a.getTextureUV(this.getTexture(i.texture)),S=(y-w)/16,B=(x-F)/16,I=S/16,P=B/16;s[0]=(null!==(l=null===(r=i.uv)||void 0===r?void 0:r[0])&&void 0!==l?l:s[0])*S+I,s[1]=(null!==(u=null===(h=i.uv)||void 0===h?void 0:h[1])&&void 0!==u?u:s[1])*B+P,s[2]=(null!==(d=null===(c=i.uv)||void 0===c?void 0:c[2])&&void 0!==d?d:s[2])*S-I,s[3]=(null!==(g=null===(f=i.uv)||void 0===f?void 0:f[3])&&void 0!==g?g:s[3])*B-P;const N=ft[null!==(p=i.rotation)&&void 0!==p?p:0];A.push(w+s[N[0]],F+s[N[1]],w+s[N[2]],F+s[N[3]],w+s[N[4]],F+s[N[5]],w+s[N[6]],F+s[N[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];C.push(...k,...k,...k,...k),E.push(...n),R.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]||N(r.faces.up,[y,16-P,B,16-S],[y,I,P,B,I,P,B,I,S,y,I,S]),!(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]||N(r.faces.down,[16-P,16-B,16-S,16-y],[y,x,S,B,x,S,B,x,P,y,x,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]||N(r.faces.south,[y,16-I,B,16-x],[y,x,P,B,x,P,B,I,P,y,I,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]||N(r.faces.north,[16-B,16-I,16-y,16-x],[B,x,S,y,x,S,y,I,S,B,I,S]),!(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]||N(r.faces.east,[16-P,16-I,16-S,16-x],[B,x,P,B,x,S,B,I,S,B,I,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]||N(r.faces.west,[S,16-I,P,16-x],[y,x,S,y,x,P,y,I,P,y,I,S]);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:C,index:R}}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 yt={\"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)},xt=new Set(Object.keys(yt));class St{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)),xt.has(o)&&(l=yt[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 Bt(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 It{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 Bt(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=>Bt(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 It(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 It.drawInvalidTexture(e),new It(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,Ct,Rt,Nt,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(R.fromJson(i.offset,this.EXTRACTOR),R.fromJson(i.factor,this.EXTRACTOR),R.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={}));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;st.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}}}(At||(At={})),function(t){t.create=function(t,e,i){const s=e+t.getOffset(e,0,i),n=i+t.getOffset(i,e,0),r=t.getContinentalness(s,n),o=t.getWeirdness(s,n),a=t.getErosion(s,n);return{shiftedX:s,shiftedZ:n,continentalness:r,weirdness:o,erosion:a,terrainInfo:t.getTerrainInfo(s<<2,n<<2,r,o,a)}}}(Ct||(Ct={})),function(t){t.fromJson=function(t){var e,i,s,n,r,o,a,l,h,u,c,d;const f=null!==(e=P.readObject(t))&&void 0!==e?e:{};return{minY:null!==(i=P.readInt(f.min_y))&&void 0!==i?i:0,height:null!==(s=P.readInt(f.height))&&void 0!==s?s:256,xzSize:null!==(n=P.readInt(f.size_horizontal))&&void 0!==n?n:1,ySize:null!==(r=P.readInt(f.size_vertical))&&void 0!==r?r:1,densityFactor:null!==(o=P.readNumber(f.density_factor))&&void 0!==o?o:0,densityOffset:null!==(a=P.readNumber(f.density_offset))&&void 0!==a?a:0,sampling:A.fromJson(f.sampling),topSlide:Nt.fromJson(f.top_slide),bottomSlide:Nt.fromJson(f.bottom_slide),terrainShaper:Lt.fromJson(f.terrain_shaper),useSimplexSurfaceNoise:null!==(l=P.readBoolean(f.simplex_surface_noise))&&void 0!==l&&l,randomDensityOffset:null!==(h=P.readBoolean(f.random_density_offset))&&void 0!==h&&h,islandNoiseOverride:null!==(u=P.readBoolean(f.island_noise_override))&&void 0!==u&&u,isAmplified:null!==(c=P.readBoolean(f.amplified))&&void 0!==c&&c,useLegacyRandom:null!==(d=P.readBoolean(f.use_legacy_random))&&void 0!==d&&d}}}(Rt||(Rt={})),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 X(t.target,e,s)}}(Nt||(Nt={}));class Xt{constructor(t,e,i,s,n,r,o=!1){if(this.cellWidth=t,this.cellHeight=e,this.cellCountY=i,this.settings=s,o){const i=new V(r),o=s.useLegacyRandom?new V(r):i.fork();this.blendedNoise=new H(o,s.sampling,t,e),i.consume(8),this.temperatureNoise=new G(new V(r),n.temperature),this.humidityNoise=new G(new V(r+BigInt(1)),n.humidity),this.continentalnessNoise=new G(new V(r+BigInt(2)),n.continentalness),this.erosionNoise=new G(new V(r+BigInt(3)),n.erosion),this.weirdnessNoise=new G(new V(r+BigInt(4)),n.weirdness),this.offsetNoise=new G(new V(r+BigInt(5)),n.shift),this.jaggedNoise=new G(i.fork(),{firstOctave:-16,amplitudes:[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]})}else{const i=W.create(r).fork();this.blendedNoise=new H(i.forkWithHashOf(\"minecraft:terrain\"),s.sampling,t,e),this.temperatureNoise=new G(i.forkWithHashOf(\"minecraft:temperature\"),n.temperature),this.humidityNoise=new G(i.forkWithHashOf(\"minecraft:vegetation\"),n.humidity),this.continentalnessNoise=new G(i.forkWithHashOf(\"minecraft:continentalness\"),n.continentalness),this.erosionNoise=new G(i.forkWithHashOf(\"minecraft:erosion\"),n.erosion),this.weirdnessNoise=new G(i.forkWithHashOf(\"minecraft:ridge\"),n.weirdness),this.offsetNoise=new G(i.forkWithHashOf(\"minecraft:offset\"),n.shift),this.jaggedNoise=new G(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=s.terrainShaper,this.baseNoise=t=>{const e=t.createNoiseInterpolator(((e,i,s)=>this.calculateBaseNoise(e,i,s,t.getTerrainInfo(e>>2,s>>2))));return()=>e.sample()}}sample(t,e,i){const s=t+this.getOffset(t,0,i),n=i+this.getOffset(i,t,0),r=this.getContinentalness(s,n),o=this.getErosion(s,n),a=this.getWeirdness(s,n),l=this.shaper.offset(Lt.point(r,o,a));return this.target(t,e,i,s,n,r,o,a,l)}target(t,e,i,s,n,r,o,a,l){const h=e+this.getOffset(e,i,t),u=this.getTemperature(s,h,n),c=this.getHumidity(s,h,n),d=this.computeDimensionDensity(e<<2)+l;return Pt.target(u,c,r,o,d,a)}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)}getTerrainInfo(t,e,i,s,n){const r=Lt.point(i,s,n);return At.create(this.shaper.offset(r),this.shaper.factor(r),this.shaper.jaggedness(r))}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:N.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),a=s.factor*(s.offset+r+o);n+=a>0?4*a:a}return n=M(n,-64,64),n=this.applySlide(n,e/this.cellHeight),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){return(1-t/128)*this.settings.densityFactor+this.settings.densityOffset}applySlide(t,e){const i=e-Math.floor(this.settings.minY/this.cellHeight);return t=Nt.apply(this.settings.topSlide,t,this.cellCountY-i),t=Nt.apply(this.settings.bottomSlide,t,i)}}class zt{constructor(t,e,i){this.biomeSource=e,this.settings=i,this.cellHeight=i.noise.ySize<<2,this.cellWidth=i.noise.xzSize<<2,this.cellCountXZ=Math.floor(16/this.cellWidth),this.cellCountY=Math.floor(i.noise.height/this.cellHeight),this.sampler=new Xt(this.cellWidth,this.cellHeight,this.cellCountY,i.noise,i.octaves,t,i.legacyRandomSource),this.materialRule=Et.fromList([(t,e,i,s)=>t.updateNoiseAndGenerateBaseState(e,i,s)])}fillBiomes(t){const e=Math.max(t.minY,this.settings.noise.minY),i=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),s=Math.floor(e/this.cellHeight);Math.floor((i-e)/this.cellHeight);const n=E.minBlockX(t.pos),r=E.minBlockZ(t.pos),o=new Ut(this.cellWidth,this.cellHeight,this.cellCountXZ,this.cellCountY,s,this.sampler,n,r,(()=>0));for(let e=0;em))}}}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=Math.floor(i/this.cellHeight),r=Math.floor((s-i)/this.cellHeight),o=E.minBlockX(t.pos),a=E.minBlockZ(t.pos),l=new Ut(this.cellWidth,this.cellHeight,this.cellCountXZ,this.cellCountY,n,this.sampler,o,a,(()=>0));l.initializeForFirstCellX();for(let i=0;i=0;u-=1){l.selectCellYZ(u,s);for(let r=this.cellHeight-1;r>=0;r-=1){const c=(n+u)*this.cellHeight+r,d=15&c,f=t.getSectionIndex(c);t.getSectionIndex(h.minBlockY)!==f&&(h=t.getOrCreateSection(f));const g=r/this.cellHeight;l.updateForY(g);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:C.fromJson(i.temperature),humidity:C.fromJson(i.humidity),continentalness:C.fromJson(i.continentalness),erosion:C.fromJson(i.erosion),weirdness:C.fromJson(i.weirdness),shift:C.fromJson(i.shift)}}}(_t||(_t={}));export{H as BlendedNoise,lt as BlockColors,dt as BlockDefinition,vt as BlockModel,a as BlockPos,N 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,J as ImprovedNoise,P as Json,V as LegacyRandom,Et as MaterialRule,Mt as MultiNoise,u as NbtReader,c as NbtWriter,Ut as NoiseChunk,zt as NoiseChunkGenerator,kt as NoiseGeneratorSettings,Dt as NoiseInterpolator,_t as NoiseOctaves,C as NoiseParameters,Xt as NoiseSampler,A as NoiseSamplingSettings,Rt as NoiseSettings,Nt as NoiseSlideSettings,G as NormalNoise,R as NumberProvider,Z as PerlinNoise,$ as PerlinSimplexNoise,Y as SimplexNoise,K as Spline,_ as Structure,St as StructureRenderer,Tt as StructureSettings,At as TerrainInfo,Lt as TerrainShaper,It as TextureAtlas,W as XoroshiroRandom,j as binarySearch,M as clamp,X as clampedLerp,B as getListTag,I as getOptional,S 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,z as smoothstep,O as square,h as tagNames,l as tagTypes,w as write,y 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__\"","'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.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 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 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.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 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 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.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 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 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: 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 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_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 = 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 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 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/configured_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 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:block_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:cave_surface': {\r\n surface: StringNode({ enum: ['floor', 'ceiling'] }),\r\n floor_to_ceiling_search_range: core_1.NumberNode({ integer: true }),\r\n allow_water: core_1.BooleanNode(),\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: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 },\r\n 'minecraft:heightmap': {\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:scatter': {\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': {\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: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 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 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: Feature,\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: 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_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: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: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: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: 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 },\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 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: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 ignore_vines: true,\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 })\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 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:matching_blocks': {\r\n offset: core_1.Opt(Reference('block_pos')),\r\n blocks: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:matching_fluids': {\r\n offset: core_1.Opt(Reference('block_pos')),\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: core_1.Opt(Reference('block_pos')),\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 surface_type: StringNode({ enum: 'cave_surface' }),\r\n add_run_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 run_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 run_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/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 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: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","(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$1.html = edit(block$1.html, 'i')\n .replace('comment', block$1._comment)\n .replace('tag', block$1._tag)\n .replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/)\n .getRegex();\n\nblock$1.paragraph = edit(block$1._paragraph)\n .replace('hr', block$1.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\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$1._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n\nblock$1.blockquote = edit(block$1.blockquote)\n .replace('paragraph', block$1.paragraph)\n .getRegex();\n\n/**\n * Normal Block Grammar\n */\n\nblock$1.normal = merge$1({}, block$1);\n\n/**\n * GFM Block Grammar\n */\n\nblock$1.gfm = merge$1({}, block$1.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$1.gfm.table = edit(block$1.gfm.table)\n .replace('hr', block$1.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$1._tag) // tables can be interrupted by type (6) html blocks\n .getRegex();\n\n/**\n * Pedantic grammar (original John Gruber's loose markdown specification)\n */\n\nblock$1.pedantic = merge$1({}, block$1.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$1._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$1.normal._paragraph)\n .replace('hr', block$1.hr)\n .replace('heading', ' *#{1,6} *[^\\n]')\n .replace('lheading', block$1.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$1 = {\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)\\]\\[(?!\\s*\\])((?:\\\\[\\[\\]]?|[^\\[\\]\\\\])+)\\]/,\n nolink: /^!?\\[(?!\\s*\\])((?:\\[[^\\[\\]]*\\]|\\\\[\\[\\]]|[^\\[\\]])*)\\](?:\\[\\])?/,\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$1.punctuation = edit(inline$1.punctuation).replace(/punctuation/g, inline$1._punctuation).getRegex();\n\n// sequences em should skip over [title](link), `code`, \ninline$1.blockSkip = /\\[[^\\]]*?\\]\\([^\\)]*?\\)|`[^`]*?`|<[^>]*?>/g;\ninline$1.escapedEmSt = /\\\\\\*|\\\\_/g;\n\ninline$1._comment = edit(block$1._comment).replace('(?:-->|$)', '-->').getRegex();\n\ninline$1.emStrong.lDelim = edit(inline$1.emStrong.lDelim)\n .replace(/punct/g, inline$1._punctuation)\n .getRegex();\n\ninline$1.emStrong.rDelimAst = edit(inline$1.emStrong.rDelimAst, 'g')\n .replace(/punct/g, inline$1._punctuation)\n .getRegex();\n\ninline$1.emStrong.rDelimUnd = edit(inline$1.emStrong.rDelimUnd, 'g')\n .replace(/punct/g, inline$1._punctuation)\n .getRegex();\n\ninline$1._escapes = /\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/g;\n\ninline$1._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;\ninline$1._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$1.autolink = edit(inline$1.autolink)\n .replace('scheme', inline$1._scheme)\n .replace('email', inline$1._email)\n .getRegex();\n\ninline$1._attribute = /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/;\n\ninline$1.tag = edit(inline$1.tag)\n .replace('comment', inline$1._comment)\n .replace('attribute', inline$1._attribute)\n .getRegex();\n\ninline$1._label = /(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\ninline$1._href = /<(?:\\\\.|[^\\n<>\\\\])+>|[^\\s\\x00-\\x1f]*/;\ninline$1._title = /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/;\n\ninline$1.link = edit(inline$1.link)\n .replace('label', inline$1._label)\n .replace('href', inline$1._href)\n .replace('title', inline$1._title)\n .getRegex();\n\ninline$1.reflink = edit(inline$1.reflink)\n .replace('label', inline$1._label)\n .getRegex();\n\ninline$1.reflinkSearch = edit(inline$1.reflinkSearch, 'g')\n .replace('reflink', inline$1.reflink)\n .replace('nolink', inline$1.nolink)\n .getRegex();\n\n/**\n * Normal Inline Grammar\n */\n\ninline$1.normal = merge$1({}, inline$1);\n\n/**\n * Pedantic Inline Grammar\n */\n\ninline$1.pedantic = merge$1({}, inline$1.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$1._label)\n .getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/)\n .replace('label', inline$1._label)\n .getRegex()\n});\n\n/**\n * GFM Inline Grammar\n */\n\ninline$1.gfm = merge$1({}, inline$1.normal, {\n escape: edit(inline$1.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 */\nvar Lexer_1$1 = class Lexer {\n constructor(options) {\n this.tokens = [];\n this.tokens.links = Object.create(null);\n this.options = options || defaults$3;\n this.options.tokenizer = this.options.tokenizer || new Tokenizer$2();\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.type) {\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\nconst { defaults: defaults$2 } = defaults$5.exports;\nconst {\n cleanUrl,\n escape: escape$1\n} = helpers;\n\n/**\n * Renderer\n */\nvar Renderer_1$1 = class Renderer {\n constructor(options) {\n this.options = options || defaults$2;\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$1(code, true))\n        + '
    \\n';\n }\n\n return '
    '\n      + (escaped ? code : escape$1(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 */\n\nvar TextRenderer_1$1 = class 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 */\n\nvar Slugger_1$1 = class 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\nconst Renderer$2 = Renderer_1$1;\nconst TextRenderer$2 = TextRenderer_1$1;\nconst Slugger$2 = Slugger_1$1;\nconst { defaults: defaults$1 } = defaults$5.exports;\nconst {\n unescape\n} = helpers;\n\n/**\n * Parsing & Compiling\n */\nvar Parser_1$1 = class Parser {\n constructor(options) {\n this.options = options || defaults$1;\n this.options.renderer = this.options.renderer || new Renderer$2();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n this.textRenderer = new TextRenderer$2();\n this.slugger = new Slugger$2();\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\nconst Lexer$1 = Lexer_1$1;\nconst Parser$1 = Parser_1$1;\nconst Tokenizer$1 = Tokenizer_1$1;\nconst Renderer$1 = Renderer_1$1;\nconst TextRenderer$1 = TextRenderer_1$1;\nconst Slugger$1 = Slugger_1$1;\nconst {\n merge,\n checkSanitizeDeprecation,\n escape\n} = helpers;\nconst {\n getDefaults,\n changeDefaults,\n defaults\n} = defaults$5.exports;\n\n/**\n * Marked\n */\nfunction marked$1(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$1.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n\n if (callback) {\n const highlight = opt.highlight;\n let tokens;\n\n try {\n tokens = Lexer$1.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$1.walkTokens(tokens, opt.walkTokens);\n }\n out = Parser$1.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$1.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$1.lex(src, opt);\n if (opt.walkTokens) {\n marked$1.walkTokens(tokens, opt.walkTokens);\n }\n return Parser$1.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$1.options =\nmarked$1.setOptions = function(opt) {\n merge(marked$1.defaults, opt);\n changeDefaults(marked$1.defaults);\n return marked$1;\n};\n\nmarked$1.getDefaults = getDefaults;\n\nmarked$1.defaults = defaults;\n\n/**\n * Use Extension\n */\n\nmarked$1.use = function(...args) {\n const opts = merge({}, ...args);\n const extensions = marked$1.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$1.defaults.renderer || new Renderer$1();\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$1.defaults.tokenizer || new Tokenizer$1();\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$1.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$1.setOptions(opts);\n });\n};\n\n/**\n * Run callback for every token\n */\n\nmarked$1.walkTokens = function(tokens, callback) {\n for (const token of tokens) {\n callback.call(marked$1, token);\n switch (token.type) {\n case 'table': {\n for (const cell of token.header) {\n marked$1.walkTokens(cell.tokens, callback);\n }\n for (const row of token.rows) {\n for (const cell of row) {\n marked$1.walkTokens(cell.tokens, callback);\n }\n }\n break;\n }\n case 'list': {\n marked$1.walkTokens(token.items, callback);\n break;\n }\n default: {\n if (marked$1.defaults.extensions && marked$1.defaults.extensions.childTokens && marked$1.defaults.extensions.childTokens[token.type]) { // Walk any extensions\n marked$1.defaults.extensions.childTokens[token.type].forEach(function(childTokens) {\n marked$1.walkTokens(token[childTokens], callback);\n });\n } else if (token.tokens) {\n marked$1.walkTokens(token.tokens, callback);\n }\n }\n }\n }\n};\n\n/**\n * Parse Inline\n */\nmarked$1.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$1.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n\n try {\n const tokens = Lexer$1.lexInline(src, opt);\n if (opt.walkTokens) {\n marked$1.walkTokens(tokens, opt.walkTokens);\n }\n return Parser$1.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$1.Parser = Parser$1;\nmarked$1.parser = Parser$1.parse;\nmarked$1.Renderer = Renderer$1;\nmarked$1.TextRenderer = TextRenderer$1;\nmarked$1.Lexer = Lexer$1;\nmarked$1.lexer = Lexer$1.lex;\nmarked$1.Tokenizer = Tokenizer$1;\nmarked$1.Slugger = Slugger$1;\nmarked$1.parse = marked$1;\n\nvar marked_1 = marked$1;\n\nconst marked = marked_1;\nconst Lexer = Lexer_1$1;\nconst Parser = Parser_1$1;\nconst Tokenizer = Tokenizer_1$1;\nconst Renderer = Renderer_1$1;\nconst TextRenderer = TextRenderer_1$1;\nconst Slugger = Slugger_1$1;\n\nesmEntry$1.exports = marked;\nvar parse = esmEntry$1.exports.parse = marked;\nvar Parser_1 = esmEntry$1.exports.Parser = Parser;\nvar parser = esmEntry$1.exports.parser = Parser.parse;\nvar Renderer_1 = esmEntry$1.exports.Renderer = Renderer;\nvar TextRenderer_1 = esmEntry$1.exports.TextRenderer = TextRenderer;\nvar Lexer_1 = esmEntry$1.exports.Lexer = Lexer;\nvar lexer = esmEntry$1.exports.lexer = Lexer.lex;\nvar Tokenizer_1 = esmEntry$1.exports.Tokenizer = Tokenizer;\nvar Slugger_1 = esmEntry$1.exports.Slugger = Slugger;\n\nvar esmEntry = esmEntry$1.exports;\n\nexport { Lexer_1 as Lexer, Parser_1 as Parser, Renderer_1 as Renderer, Slugger_1 as Slugger, TextRenderer_1 as TextRenderer, Tokenizer_1 as Tokenizer, esmEntry as default, lexer, parse, parser };\n"],"names":["n","u","i","t","r","f","e","n2","l2","u2","parentNode","removeChild","t2","o2","r2","arguments","f2","length","push","children","defaultProps","v","type","props","key","ref","__k","__","__b","__e","__d","__c","__h","constructor","__v","vnode","this","context","d","indexOf","base","_","b","__r","debounceRendering","sort","n3","some","__P","c","I","__n","ownerSVGElement","T","e2","c2","s2","a2","h","p2","_2","k2","b2","m2","w2","A2","P2","Array","isArray","y","g","x","value","L","appendChild","nextSibling","insertBefore","setProperty","test","style","cssText","P","replace","toLowerCase","slice","l","addEventListener","H","$","removeEventListener","setAttribute","removeAttribute","event","v2","d2","g2","x2","contextType","__E","prototype","render","p","M","sub","state","__s","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","shouldComponentUpdate","forEach","componentWillUpdate","componentDidUpdate","getChildContext","getSnapshotBeforeUpdate","m","y2","localName","nodeType","document","createTextNode","createElementNS","createElement","is","data","call","childNodes","dangerouslySetInnerHTML","attributes","name","__html","innerHTML","C","A","firstChild","s","checked","j","diffed","l3","u3","current","unmount","z","componentWillUnmount","a","getDerivedStateFromError","setState","componentDidCatch","k","forceUpdate","Promise","then","bind","resolve","setTimeout","EMPTY$1","obj","url","route2","opts","ret","reg","match","matches","split","decodeURIComponent","join","segmentize","max","Math","i$1","charAt","param","flags","plus","star","val","map","default","rank","index","index2","path","rankSegment","rankChild","segment","customHistory","ROUTERS","subscribers","EMPTY","location","getCurrentLocation","pathname","search","canRoute","type2","history","routeTo","didRoute","node","getAttribute","href","target","route","ctrlKey","metaKey","altKey","shiftKey","button","currentTarget","prevent","stopImmediatePropagation","stopPropagation","preventDefault","String","nodeName","toUpperCase","hasAttribute","routeFromLink","eventListenersInitialized","Router","Component$$1","getCurrentUrl","delegateLinkHandler","__proto__","Object","create","Router2","static","onChange","toChildArray","getMatchingChildren","updating","this$1","unlisten","listen","location2","splice","invoke","filter","prepareVNodeForRanking","pathRankSort","exec","newProps","cloneElement","Boolean","ref$1","active","current2","previous","previousUrl","router","Component","Link","assign","onClick","handleLinkClick","Route","component","o","__H","w","requestAnimationFrame","t3","cancelAnimationFrame","defineProperty","Path_1","start","relativePath2","reduce","pop","[object Object]","modelArr","contextArr","end","Path","element","modelPush","contextPush","copy","newElement","startsWith","model","ModelPath","other","every","offset","fn","thisArg","_a","get","set","super","shift","Errors_1","errors","error","params","exact","equals","Symbol","iterator","Errors","str2","utils","escapeString","dec2hex","dec","toString","substr","arr","Uint8Array","crypto","getRandomValues","from","DataModel_1","require$$0","require$$1","utils_1","require$$2","schema2","options","_b","_c","_d","historyMax","verbose","wrapLists","schema","initialData","DataModel","listeners","JSON","stringify","historyIndex","listener","newHistory","silentInvalidate","invalidated","loose","validate","invalidate","silent","getArray","reset","id","hexId","isNaN","last","log","parse","withModel","clear","tempErrors","add","res2","getOwnPropertySymbols","entries","unwrapLists","exports","category","enabled","keep","optional","pathPush","suggest","validationOption","hook","args","canUpdate","update","mods","__spreadValues","Mod","__spreadProps","BooleanNode","Node_1","Base","boolean","ListNode","config","min","minLength","maxLength","Infinity","between","nextIndex","navigate","parseInt","newObj","_a2","list","SwitchNode","cases","activeCase","concat","fallback","sorter","priority","matchedCases","ListNode_1","SwitchNode_1","choices","switchNode","choice","isValid","XOrList","ChoiceNode","change","presetNode","objectNode","presets","keys","MapNode","validation","__1","DataModel_12","Node_12","integer","color","Number","isInteger","number","values","NumberNode","includes","Path_12","Errors_12","utils_12","require$$3","require$$4","fields","Switch","Case","defaultFields","__restKey","getActiveFields","switchValue","relativePath","getChildModelPath","childKey","caseFields","caseKeys","pathWithContext","getModel","disableSwitchContext","pathElements","activeFields","existingKeys","quoteString","filterPath","filterField","activeKeys","forcedKeys","Set","newValue","object","Reference","schemas2","transform","StringNode","isEnum","enum","isValidator","validator","collections","getValues","pool","allowTag","isDefinition","allowUnknown","additional","string","Hook","Registries","registry","warn","ValidationOption","__createBinding2","__createBinding","k22","enumerable","__exportStar","exports2","hasOwnProperty","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","buf","len","extra_lbits","extra_dbits","extra_blbits","bl_order","static_ltree","zero$1","static_dtree","D_CODES$1","_dist_code","_length_code","MAX_MATCH$1","base_length","base_dist","static_tree","extra_bits","extra_base","elems","max_length","has_stree","static_l_desc","static_d_desc","static_bl_desc","dyn_tree","stat_desc","max_code","d_code","dist","put_short","pending_buf","pending","send_bits","bi_valid","bi_buf","send_code","tree","bi_reverse","code2","gen_codes","bl_count","next_code","MAX_BITS$1","bits","init_block","LITERALS$1","dyn_ltree","dyn_dtree","bl_tree","END_BLOCK","opt_len","static_len","last_lit","bi_windup","smaller","depth","_n2","_m2","pqdownheap","heap","j2","heap_len","compress_block","ltree","dtree","lc","extra","lx","d_buf","l_buf","build_tree","desc","stree","heap_max","xbits","overflow","scan_tree","curlen","prevlen","nextlen","count","max_count","min_count","REP_3_6","REPZ_3_10","REPZ_11_138","send_tree","static_init_done","_tr_stored_block$1","stored_len","last2","header","window","subarray","trees","_tr_init","LENGTH_CODES$1","L_CODES$1","StaticTreeDesc","l_desc","TreeDesc","d_desc","bl_desc","_tr_stored_block","_tr_flush_block","opt_lenb","static_lenb","max_blindex","level","strm","data_type","black_mask","detect_data_type","BL_CODES$1","build_bl_tree","strategy","lcodes","dcodes","blcodes","rank2","_tr_tally","lit_bufsize","_tr_align","STATIC_TREES","adler32_1","adler","pos","s1","crcTable","Uint32Array","table","makeTable","crc32_1","crc","messages","2","1","0","-1","-2","-3","-4","-5","-6","constants$2","Z_NO_FLUSH","Z_PARTIAL_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_FINISH","Z_BLOCK","Z_TREES","Z_OK","Z_STREAM_END","Z_NEED_DICT","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_MEM_ERROR","Z_BUF_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_DEFAULT_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_DEFAULT_STRATEGY","Z_BINARY","Z_TEXT","Z_UNKNOWN","Z_DEFLATED","Z_NO_FLUSH$2","Z_FULL_FLUSH$1","Z_FINISH$3","Z_BLOCK$1","Z_OK$3","Z_STREAM_END$3","Z_STREAM_ERROR$2","Z_DATA_ERROR$2","Z_BUF_ERROR$1","Z_DEFAULT_COMPRESSION$1","Z_DEFAULT_STRATEGY$1","Z_DEFLATED$2","err","errorCode","msg","zero","HASH","prev","hash_shift","hash_mask","flush_pending","avail_out","output","pending_out","next_out","total_out","flush_block_only","block_start","strstart","put_byte","putShortMSB","read_buf","size","avail_in","input","next_in","wrap","total_in","longest_match","cur_match","chain_length","max_chain_length","scan","best_len","prev_length","nice_match","limit","w_size","MAX_MATCH","_win","wmask","w_mask","strend","scan_end1","scan_end","good_match","lookahead","match_start","fill_window","_w_size","more","window_size","hash_size","head","insert","ins_h","deflate_fast","flush","hash_head","bflush","match_length","max_lazy_match","MIN_MATCH","deflate_slow","max_insert","prev_match","match_available","good_length","max_lazy","nice_length","max_chain","func","configuration_table","Config","max_block_size","pending_buf_size","max_start","status","gzhead","gzindex","method","last_flush","w_bits","hash_bits","Uint16Array","HEAP_SIZE","MAX_BITS","deflateResetKeep","deflateReset","deflateInit2","windowBits","memLevel","DeflateState","deflate_1$2","deflateInit","deflateSetHeader","deflate","beg","old_flush","text","hcrc","comment","time","os","level_flags","charCodeAt","bstate","deflate_huff","deflate_rle","deflateEnd","deflateSetDictionary","dictionary","dictLength","tmpDict","avail","next2","deflateInfo","_has","common","sources","source","TypeError","chunks","result","chunk","STR_APPLY_UIA_OK","fromCharCode","apply","_utf8len","q2","strings","TextEncoder","encode","c22","m_pos","str_len","buf_len","TextDecoder","decode","out","utf16buf","c_len","buf2binstring","zstream","toString$1","Z_NO_FLUSH$1","Z_FINISH$2","Z_OK$2","Z_STREAM_END$2","Z_DEFLATED$1","chunkSize","opt","raw","gzip","ended","Error","dict","_dict_set","Deflate$1","flush_mode","_flush_mode","onData","onEnd","inffast","_in","_out","dmax","wsize","whave","wnext","s_window","hold","lcode","dcode","lmask","dmask","here","op","from_source","lencode","distcode","lenbits","distbits","mode","sane","lbase","lext","dbase","dext","inftrees","lens","lens_index","codes","table_index","work","incr","fill","low","mask","sym","root","curr","drop","left","used","huff","base_index","MAXBITS","offs","here_bits","here_op","here_val","extra_index","Z_FINISH$1","Z_OK$1","Z_STREAM_END$1","Z_NEED_DICT$1","Z_STREAM_ERROR$1","Z_DATA_ERROR$1","Z_MEM_ERROR$1","zswap32","havedict","check","total","wbits","ncode","nlen","ndist","have","next","lendyn","distdyn","back","was","inflateResetKeep","Int32Array","inflateReset","inflateReset2","inflateInit2","InflateState","lenfix","distfix","virgin","fixedtables","updatewindow","src2","inflate_1$2","inflateInit","inflate","put","last_bits","last_op","last_val","hbuf","order","done","xflags","extra_len","inflateEnd","inflateGetHeader","inflateSetDictionary","dictid","inflateInfo","gzheader","to","Inflate$1","last_avail_out","next_out_utf8","tail","utf8str","base64map","crypt","rotl","rotr","endian","randomBytes","bytes","floor","random","bytesToWords","words","wordsToBytes","bytesToHex","hex","hexToBytes","bytesToBase64","base64","triplet","base64ToBytes","imod4","pow","charenc","utf8","stringToBytes","bin","unescape","encodeURIComponent","bytesToString","escape","charenc_1","isBuffer_1","readFloatLE","isBuffer","isSlowBuffer","_isBuffer","isBuffer2","md5","message","encoding","FF","_ff","GG","_gg","HH","_hh","II","_ii","aa","bb","cc","dd","_blocksize","_digestsize","digestbytes","asBytes","asString","UP","DOWN","NORTH","EAST","SOUTH","WEST","E","R","ht","Pt","Et","At","Ct","Rt","Nt","kt","Tt","_t","ALL","normal","towards","readNumber","readInt","readString","readBoolean","readObject","readArray","e3","t4","readMap","fromEntries","compose","properties","S","N","Name","Properties","AIR","minY","storage","SIZE","palette","findIndex","WIDTH","height","sections","sectionsCount","maxY","maxSection","minSection","getSectionIndex","getBlockState","getOrCreateSection","setBlockState","fromBlockPos","fromLong","BigInt","minBlockX","minBlockZ","maxBlockX","maxBlockZ","seed","setSeed","V","nextLong","MULTIPLIER","MODULUS_MASK","INCREMENT","advance","MODULUS_BITS","FLOAT_MULTIPLIER","DOUBLE_MULTIPLIER","W","upgradeSeedTo128bit","SILVER_RATIO_64","GOLDEN_RATIO_64","mixStafford13","getSeed","LongfromBytes","rotateLeft","o3","nextBits","xo","nextDouble","yo","zo","nextInt","Y","F2","G2","getCornerNoise3D","S2","B","I2","E2","C2","R2","N2","gradDot","GRADIENT","sqrt","sampleAndLerp","D","U","fork","noiseLevels","i2","J","forkWithHashOf","consume","amplitudes","lowestFreqInputFactor","lowestFreqValueFactor","sample","Z","cellWidth","cellHeight","minLimitNoise","maxLimitNoise","mainNoise","xzScale","yScale","xzMainScale","xzFactor","yMainScale","yFactor","getOctaveNoise","o4","a3","X","fromJson","xz_scale","y_scale","xz_factor","y_factor","firstOctave","first","second","valueFactor","G","INPUT_FACTOR","q","K","coordinate","points","s3","derivative","addPoint","locations","derivatives","toJson","rotate","up","down","north","east","south","west","r3","parameters","Param","temperature","humidity","continentalness","erosion","weirdness","O","distance","ParamPoint","TargetPoint","Parameters","things","build","CHILDREN_PER_NODE","e4","e5","i3","s4","space","abs","bucketize","area","toArray","thing","RTree","RNode","buildSpace","union","RSubTree","RLeaf","biome","Ot","offsetSampler","factorSampler","jaggednessSampler","Lt","EXTRACTOR","factor","jaggedness","GLOBAL_OFFSET","continents","ridges","peaksAndValleys","buildErosionOffsetSpline","CONTINENTS","getErosionFactor","buildErosionJaggednessSpline","WEIRDNESS","EROSION","RIDGES","buildMountainRidgeSplineWithPoints","ridgeSpline","mountainContinentalness","calculateMountainRidgeZeroContinentalnessPoint","calculateSlope","buildRidgeJaggednessSpline","buildWeirdnessJaggednessSpline","extractor","fromList","filler","noise000","noise001","noise100","noise101","noise010","noise011","noise110","noise111","valueXZ00","valueXZ10","valueXZ01","valueXZ11","valueZ0","valueZ1","slice0","Dt","allocateSlice","cellCountY","cellCountXZ","slice1","fillSlice","firstCellX","firstCellZ","cellCountNoiseMinY","interpolators","terrainInfo","Map","shiftedX","shiftedZ","terrainInfoBuffer","baseNoise","makeBaseNoiseFiller","initializeForFirstCellX","advanceCellX","selectCellYZ","updateForY","updateForX","updateForZ","swapSlices","getOffset","getContinentalness","getWeirdness","getErosion","getTerrainInfo","min_y","xzSize","size_horizontal","ySize","size_vertical","densityFactor","density_factor","densityOffset","density_offset","sampling","topSlide","top_slide","bottomSlide","bottom_slide","terrainShaper","terrain_shaper","useSimplexSurfaceNoise","simplex_surface_noise","randomDensityOffset","random_density_offset","islandNoiseOverride","island_noise_override","isAmplified","amplified","useLegacyRandom","use_legacy_random","settings","blendedNoise","temperatureNoise","humidityNoise","continentalnessNoise","erosionNoise","weirdnessNoise","offsetNoise","jaggedNoise","shaper","createNoiseInterpolator","calculateBaseNoise","point","getTemperature","getHumidity","computeDimensionDensity","sampleJaggedNoise","applySlide","biomeSource","noise","sampler","Xt","octaves","legacyRandomSource","materialRule","updateNoiseAndGenerateBaseState","Ut","minBlockY","getShiftedX","getShiftedZ","getBiome","r4","u4","f3","defaultBlock","seaLevel","defaultFluid","wasm","structures","default_block","default_fluid","bedrockRoofPosition","bedrock_roof_position","bedrockFloorPosition","bedrock_floor_position","sea_level","disableMobGeneration","disable_mob_generation","aquifersEnabled","aquifers_enabled","noiseCavesEnabled","noise_caves_enabled","deepslateEnabled","deepslate_enabled","oreVeinsEnabled","ore_veins_enabled","noodleCavesEnabled","noodle_caves_enabled","legacy_random_source","stronghold","spread","spacing","t5","separation","salt","cachedTextDecoder","ignoreBOM","fatal","cachegetUint8Memory0","ptr","buffer","memory","u32CvtShim","int64CvtShim","BigInt64Array","cachegetInt32Memory0","cachegetFloat64Memory0","Float64Array","WASM_VECTOR_LEN","arg","malloc","cachegetUint32Memory0","t_min","t_max","h_min","h_max","c_min","c_max","e_min","e_max","w_min","w_max","d_min","d_max","ptr0","passArrayF64ToWasm0","__wbindgen_malloc","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","passArray32ToWasm0","len13","biome_parameters","ParameterList","__wrap","t_first","t_amplitudes","h_first","h_amplitudes","c_first","c_amplitudes","e_first","e_amplitudes","w_first","w_amplitudes","s_first","s_amplitudes","low0","high0","climate_sampler","Sampler","instance","klass","x_from","x_to","x_step","y_from","y_to","y_step","z_from","z_to","z_step","retptr","__wbindgen_add_to_stack_pointer","multi_noise","r0","getInt32Memory0","r1","v0","getArrayI32FromWasm0","__wbindgen_free","climate_noise","getFloat64Memory0","getArrayF64FromWasm0","__destroy_into_raw","__wbg_parameterlist_free","__wbg_sampler_free","async","URL","import_meta","imports","wbg","__wbindgen_throw","arg0","arg1","getStringFromWasm0","Request","fetch","module","Response","WebAssembly","instantiateStreaming","headers","arrayBuffer","instantiate","Instance","load","__wbindgen_wasm_module","rfdc_1","circles","refs","refsNew","proto","Date","cloneArray","cloneProto","o22","cur","ArrayBuffer","isView","copyBuffer","clone","a22","rfdcCircles","Buffer","byteOffset","Collections","register","core_12","StringNode2","Reference2","ObjectNode","Opt","forceRange","bounds","allowBinomial","choiceContext","minecraft:alternative","terms","minecraft:block_state_property","block","minecraft:damage_source_properties","predicate","minecraft:entity_properties","entity","minecraft:entity_scores","scores","Range","minecraft:inverted","term","minecraft:killed_by_player","inverse","minecraft:location_check","offsetX","offsetY","offsetZ","minecraft:match_tool","minecraft:random_chance","chance","minecraft:random_chance_with_looting","looting_multiplier","minecraft:reference","minecraft:table_bonus","enchantment","chances","minecraft:time_check","period","minecraft:weather_check","raining","thundering","Common_12","StateChoice","item","tag","durability","potion","nbt","enchantments","levels","fluid","position","feature","dimension","light","LocationFields","stat","minecraft:mined","minecraft:crafted","minecraft:used","minecraft:broken","minecraft:picked_up","minecraft:dropped","minecraft:killed","minecraft:killed_by","minecraft:custom","gamemode","advancements","recipes","stats","amplifier","duration","ambient","visible","absolute","horizontal","team","is_on_fire","is_sneaking","is_sprinting","is_swimming","is_baby","equipment","player","effects","is_explosion","is_fire","is_magic","is_projectile","is_lightning","bypasses_armor","bypasses_invulnerability","bypasses_magic","source_entity","direct_entity","dealt","taken","blocked","Advancement","core_1","Common_1","Predicates_1","display","icon","title","description","background","frame","show_toast","announce_to_chat","hidden","parent","criteria","requirements","rewards","function","loot","experience","requirement","trigger","conditions","minecraft:bee_nest_destroyed","num_bees_inside","minecraft:bred_animals","partner","child","minecraft:brewed_potion","minecraft:changed_dimension","minecraft:channeled_lightning","victims","minecraft:construct_beacon","minecraft:consume_item","minecraft:cured_zombie_villager","villager","zombie","minecraft:effects_changed","minecraft:enter_block","minecraft:enchanted_item","minecraft:entity_hurt_player","damage","minecraft:entity_killed_player","killing_blow","minecraft:filled_bucket","minecraft:fishing_rod_hooked","minecraft:hero_of_the_village","minecraft:inventory_changed","slots","empty","occupied","full","items","minecraft:item_durability_changed","delta","minecraft:killed_by_crossbow","unique_entity_types","minecraft:levitation","minecraft:location","minecraft:nether_travel","entered","exited","minecraft:placed_block","minecraft:player_hurt_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","recipe","minecraft:safely_harvest_honey","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:shot_crossbow","minecraft:summoned_entity","minecraft:tame_animal","minecraft:used_ender_eye","minecraft:used_totem","minecraft:villager_trade","minecraft:voluntary_exile","Condition","ObjectOrList","condition","ConditionCases","LootContext","requires","allows","LootTable","LootContext_1","functionsAndConditions","functions","contextMap","collectionID","getNode","getAvailableOptions","providedContext","tableType","LootTableTypes","conditionSwtichNode","compileSwitchNode","LootConditions","functionSwtichNode","LootFunctions","entitySourceSwtichNode","LootEntitySources","copySourceSwtichNode","LootCopySources","pools","rolls","bonus_rolls","weightMod","weight","quality","minecraft:alternatives","minecraft:dynamic","minecraft:group","minecraft:item","minecraft:loot_table","minecraft:sequence","minecraft:tag","expand","minecraft:apply_bonus","formula","bonusMultiplier","probability","minecraft:copy_name","minecraft:copy_nbt","ops","getter","minecraft:copy_state","minecraft:enchant_randomly","minecraft:enchant_with_levels","treasure","minecraft:exploration_map","destination","decoration","zoom","search_radius","skip_existing_chunks","minecraft:fill_player_head","minecraft:limit_count","minecraft:looting_enchant","minecraft:set_attributes","modifiers","minecraft:set_contents","minecraft:set_count","minecraft:set_damage","minecraft:set_loot_table","minecraft:set_lore","lore","minecraft:set_name","minecraft:set_nbt","minecraft:set_stew_effect","attribute","amount","operation","slot","StringOrList","PackMcmeta","pack","pack_format","Recipe","minecraft:crafting_shaped","group","pattern","minecraft:crafting_shapeless","ingredients","minecraft:smelting","ingredient","cookingtime","minecraft:blasting","minecraft:smoking","minecraft:campfire_cooking","minecraft:stonecutting","minecraft:smithing","addition","Tags","TagBase","required","TextComponent","getSimpleString","parseFloat","isFinite","CommonFields","bold","italic","underlined","strikethrough","obfuscated","insertion","clickEvent","action","change_page","copy_to_clipboard","open_file","open_url","run_command","leadingSlash","allowPartial","suggest_command","hoverEvent","show_text","show_item","show_entity","translate","with","score","isScoreHolder","objective","selector","keybind","interpret","schemas","Advancement_1","Condition_1","LootTable_1","PackMcmeta_1","Recipe_1","Tags_1","TextComponent_1","initCommonSchemas","initPredicatesSchemas","initAdvancementSchemas","initConditionSchemas","initLootTableSchemas","initPackMcmetaSchemas","initRecipeSchemas","initTagsSchemas","initTextComponentSchemas","__setModuleDefault","__importStar","mod","__esModule","lib","Collections_1","schemas_1","CollectionRegistry","initCollections","getSchemas_1","SchemaRegistry","initSchemas","ultrawarm","natural","piglin_safe","respawn_anchor_works","bed_works","has_raids","has_skylight","has_ceiling","coordinate_scale","ambient_light","logical_height","infiniburn","maxSpread","ObjectOrPreset","minecraft:overworld","DefaultDimensionType","minecraft:the_nether","shrunk","fixed_time","minecraft:the_end","DefaultNoiseSettings","minecraft:nether","minecraft:end","minecraft:amplified","minecraft:caves","minecraft:floating_islands","EntityPredicate","minecraft:item_used_on_block","minecraft:player_generates_container_loot","loot_table","minecraft:player_interacted_with_entity","minecraft:target_hit","projectile","shooter","signal_strength","minecraft:thrown_item_picked_up_by_entity","Dimension","NoPreset","DimensionTypePresets","generator","minecraft:noise","NoiseSettingsPresets","biome_source","minecraft:fixed","minecraft:multi_noise","preset","altitude_noise","temperature_noise","humidity_noise","weirdness_noise","biomes","minecraft:checkerboard","scale","minecraft:vanilla_layered","large_biomes","legacy_biome_init_layer","minecraft:flat","lakes","features","layers","altitude","DimensionType","Predicates","smokey","vehicle","targeted_entity","fishing_hook","in_open_water","font","contents","Biome","surface_builder","downfall","precipitation","temperature_modifier","player_spawn_friendly","creature_spawn_probability","sky_color","fog_color","water_color","water_fog_color","grass_color","foliage_color","grass_color_modifier","ambient_sound","mood_sound","sound","tick_delay","block_search_extent","additions_sound","tick_chance","music","min_delay","max_delay","replace_current_music","particle","starts","spawners","minCount","maxCount","spawn_costs","energy_budget","charge","carvers","Carver","Decorator","RangeConfig","maximum","bottom_offset","top_offset","ChanceConfig","CountConfig","UniformInt","minecraft:carving_mask","step","minecraft:chance","minecraft:count","minecraft:count_extra","extra_count","extra_chance","minecraft:count_multilayer","minecraft:count_noise","noise_level","below_noise","above_noise","minecraft:count_noise_biased","noise_to_count_ratio","noise_factor","noise_offset","minecraft:decorated","outer","inner","minecraft:depth_average","baseline","minecraft:fire","minecraft:glowstone","minecraft:lava_lake","minecraft:range","minecraft:range_biased","minecraft:range_very_biased","minecraft:water_lake","ProcessorList","processors","processor_type","rules","location_predicate","predicate_type","input_predicate","minecraft:block_age","mossiness","minecraft:block_ignore","blocks","minecraft:block_rot","integrity","minecraft:gravity","heightmap","minecraft:rule","position_predicate","output_state","output_nbt","posTestFields","min_dist","max_dist","min_chance","max_chance","minecraft:axis_aligned_linear_pos","axis","minecraft:linear_pos","minecraft:block_match","minecraft:blockstate_match","block_state","minecraft:random_block_match","minecraft:random_blockstate_match","minecraft:tag_match","Feature","RandomPatchConfig","can_replace","project","need_water","xspread","yspread","zspread","tries","state_provider","block_placer","whitelist","blacklist","DiskConfig","radius","half_height","targets","HugeMushroomConfig","cap_provider","stem_provider","foliage_radius","OreConfig","Feature2","minecraft:bamboo","minecraft:basalt_columns","reach","minecraft:block_pile","decorator","minecraft:delta_feature","rim","rim_size","minecraft:disk","minecraft:emerald_ore","minecraft:end_gateway","exit","minecraft:end_spike","crystal_invulnerable","crystal_beam_target","spikes","centerX","centerZ","guarded","minecraft:fill_layer","minecraft:flower","minecraft:forest_rock","minecraft:huge_brown_mushroom","minecraft:huge_fungus","hat_state","decor_state","stem_state","valid_base_block","planted","minecraft:huge_red_mushroom","minecraft:ice_patch","minecraft:iceberg","minecraft:lake","minecraft:nether_forest_vegetation","minecraft:netherrack_replace_blobs","minecraft:no_bonemeal_flower","minecraft:no_surface_ore","minecraft:ore","minecraft:random_patch","minecraft:random_boolean_selector","feature_false","feature_true","minecraft:random_selector","minecraft:sea_pickle","minecraft:seagrass","minecraft:simple_block","to_place","place_on","place_in","place_under","minecraft:simple_random_selector","minecraft:spring_feature","rock_count","hole_count","requires_block_below","valid_blocks","minecraft:tree","max_water_depth","ignore_vines","minimum_size","trunk_provider","leaves_provider","trunk_placer","base_height","height_rand_a","height_rand_b","foliage_placer","minecraft:blob_foliage_placer","minecraft:bush_foliage_placer","minecraft:fancy_foliage_placer","minecraft:jungle_foliage_placer","minecraft:mega_pine_foliage_placer","crown_height","minecraft:pine_foliage_placer","minecraft:spruce_foliage_placer","trunk_height","decorators","minecraft:alter_ground","provider","minecraft:beehive","minecraft:cocoa","min_clipped_height","minecraft:two_layers_feature_size","lower_size","upper_size","minecraft:three_layers_feature_size","upper_limit","middle_size","minecraft:rotated_block_provider","minecraft:simple_state_provider","minecraft:weighted_state_provider","minecraft:column_placer","min_size","extra_size","NoiseSettings","StructureFeature","templatePoolConfig","start_pool","minecraft:bastion_remnant","minecraft:buried_treasure","minecraft:mineshaft","minecraft:ocean_ruin","biome_temp","large_probability","cluster_probability","minecraft:pillager_outpost","minecraft:ruined_portal","portal_type","minecraft:shipwreck","is_beached","minecraft:village","SurfaceBuilder","top_material","under_material","underwater_material","snowy","TemplatePool","Processors","elements","element_type","projection","minecraft:feature_pool_element","minecraft:legacy_single_pool_element","minecraft:list_pool_element","minecraft:single_pool_element","worldgen","Biome_1","Carver_1","Decorator_1","Feature_1","NoiseSettings_1","ProcessorList_1","StructureFeature_1","SurfaceBuilder_1","TemplatePool_1","initBiomeSchemas","initCarverSchemas","initDecoratorSchemas","initFeatureSchemas","initNoiseSettingsSchemas","initProcessorListSchemas","initStructureFeatureSchemas","initSurfaceBuilderSchemas","initTemplatePoolSchemas","WorldSettings","generate_features","bonus_chest","dimensions","Dimension_1","DimensionType_1","worldgen_1","WorldSettings_1","initDimensionTypeSchemas","initDimensionSchemas","initWorldgenSchemas","initWorldSettingsSchemas","minecraft:lightning_strike","lightning","bystander","minecraft:using_item","Bounds","ObjectWithType","directType","directPath","directDefault","objectDefault","defaultCase","minecraft:constant","minecraft:uniform","minecraft:binomial","minecraft:score","minecraft:context","minecraft:storage","min_inclusive","max_exclusive","minecraft:clamped_normal","mean","deviation","minecraft:trapezoid","plateau","FloatProvider","max_inclusive","minecraft:biased_to_bottom","minecraft:clamped","IntProvider","above_bottom","below_top","minecraft:very_biased_to_bottom","entitySourceNode","minecraft:value_check","range","copySourceNode","minecraft:set_banner_pattern","patterns","append","minecraft:set_enchantments","ItemModifier","FunctionCases","conditionIDSwtichNode","functionIDSwtichNode","_p","looking_at","stepping_on","passenger","lightning_bolt","blocks_set_on_fire","entity_struck","separator","CanyonConfig","vertical_rotation","shape","distance_factor","thickness","width_smoothness","horizontal_radius_factor","vertical_radius_default_factor","vertical_radius_center_factor","CaveConfig","horizontal_radius_multiplier","vertical_radius_multiplier","floor_level","lava_level","debug_settings","debug_mode","air_state","water_state","lava_state","barrier_state","minecraft:canyon","minecraft:cave","minecraft:nether_cave","minecraft:cave_surface","surface","floor_to_ceiling_search_range","minecraft:heightmap","minecraft:heightmap_spread_double","minecraft:water_depth_threshold","minecraft:protected_blocks","TargetBlockState","discard_chance_on_air_exposure","VegetationPatchConfig","vertical_range","extra_bottom_block_chance","extra_edge_column_chance","vegetation_chance","xz_radius","replaceable","ground_state","vegetation_feature","minecraft:decorated_flower","minecraft:dripstone_cluster","max_stalagmite_stalactite_height_diff","height_deviation","dripstone_block_layer_thickness","density","wetness","chance_of_dripstone_column_at_max_distance_from_center","max_distance_from_edge_affecting_chance_of_dripstone_column","max_distance_from_center_affecting_height_bias","minecraft:fossil","max_empty_corners_allowed","fossil_structures","overlay_structures","fossil_processors","overlay_processors","minecraft:geode","filling_provider","inner_layer_provider","alternate_inner_layer_provider","middle_layer_provider","outer_layer_provider","inner_placements","cannot_replace","invalid_blocks","filling","inner_layer","middle_layer","outer_layer","crack","generate_crack_chance","base_crack_size","crack_point_offset","noise_multiplier","use_potential_placements_chance","use_alternate_layer0_chance","placements_require_layer0_alternate","outer_wall_distance","distribution_points","point_offset","min_gen_offset","max_gen_offset","invalid_blocks_threshold","minecraft:glow_lichen","search_range","chance_of_spreading","can_place_on_floor","can_place_on_ceiling","can_place_on_wall","can_be_placed_on","minecraft:growing_plant","direction","allow_water","height_distribution","body_provider","head_provider","minecraft:large_dripstone","column_radius","height_scale","max_column_radius_to_cave_height_ratio","stalactite_bluntness","stalagmite_bluntness","wind_speed","min_radius_for_wind","min_bluntness_for_wind","minecraft:replace_single_block","minecraft:root_system","required_vertical_space_for_tree","root_radius","root_placement_attempts","root_column_max_height","hanging_root_radius","hanging_roots_vertical_span","hanging_root_placement_attempts","allowed_vertical_water_for_tree","root_replaceable","root_state_provider","hanging_root_state_provider","minecraft:scattered_ore","minecraft:small_dripstone","max_placements","empty_space_search_radius","max_offset_from_origin","chance_of_taller_dripstone","force_dirt","dirt_provider","sapling_provider","foliage_provider","minecraft:bending_trunk_placer","bend_length","min_height_for_leaves","minecraft:random_spread_foliage_placer","foliage_height","leaf_placement_attempts","minecraft:underwater_magma","floor_search_range","placement_radius_around_floor","placement_probability_per_valid_position","minecraft:vegetation_patch","minecraft:waterlogged_vegetation_patch","minecraft:randomized_int_state_provider","property","min_surface_level","minecraft:nether_fossil","ItemModifier_1","initItemModifierSchemas","minecraft:fall_from_height","start_position","minecraft:ride_entity_in_lava","Model","Vec","Texture","ambientocclusion","gui_light","textures","rotation","origin","angle","NumberEnum","rescale","shade","faces","texture","uv","cullface","tintindex","translation","overrides","layer0","BlockDefinition","variants","multipart","when","VariantChildren","uvlock","OR","assets","Model_1","BlockDefinition_1","initBlockDefinitionSchemas","initModelSchemas","DefaultStructureSettings","minecraft:igloo","minecraft:mansion","minecraft:jungle_pyramid","minecraft:stronghold","minecraft:desert_pyramid","minecraft:fortress","minecraft:endcity","minecraft:swamp_hut","minecraft:monument","surface_rule","sequence","minecraft:weighted_list","distribution","minecraft:set_potion","ClimateParameter","minecraft:block_filter","minecraft:environment_scan","direction_of_search","max_steps","target_condition","minecraft:scatter","xz_spread","y_spread","minecraft:surface_relative_threshold","minecraft:block_column","allowed_placement","prioritize_tip","minecraft:pointed_dripstone","chance_of_directional_spread","chance_of_spread_radius2","chance_of_spread_radius3","NoiseProvider","MIN_VALUE","minecraft:dual_noise_provider","variety","InclusiveRange","slow_noise","slow_scale","states","minecraft:noise_threshold_provider","threshold","high_chance","default_state","low_states","high_states","minecraft:noise_provider","minecraft:all_of","predicates","minecraft:any_of","minecraft:matching_blocks","minecraft:matching_fluids","fluids","minecraft:not","minecraft:would_survive","SurfaceRule","minecraft:block","result_state","minecraft:condition","if_true","then_run","minecraft:biome","biome_is","minecraft:noise_threshold","min_threshold","max_threshold","invert","minecraft:stone_depth","surface_type","add_run_depth","minecraft:vertical_gradient","random_name","true_at_and_below","false_at_and_above","minecraft:water","run_depth_multiplier","add_stone_depth","minecraft:y_above","anchor","is_biome","SurfaceRule_1","initSurfaceRuleSchemas","assets_1","initAssetsSchemas","modules","installedModules","moduleId","module2","loaded","__webpack_require__","comment_handler_1","jsx_parser_1","parser_1","tokenizer_1","delegate","commentHandler","proxyDelegate","metadata","visit","parserDelegate","collectComment","attachComment","CommentHandler","attach","parser","isModule","sourceType","jsx","JSXParser","Parser","ast","parseModule","parseScript","comments","tokens","tolerant","errorHandler","parse2","parsingOptions","tokenize","tokens2","tokenizer","Tokenizer","token","getNextToken","tolerate","syntax_1","Syntax","version","stack","leading","trailing","insertInnerComments","BlockStatement","body","innerComments","entry","unshift","findTrailingComments","trailingComments","entry_1","firstComment","findLeadingComments","leadingComments","visitNode","Program","visitComment","loc","CommentHandler2","AssignmentExpression","AssignmentPattern","ArrayExpression","ArrayPattern","ArrowFunctionExpression","AwaitExpression","BinaryExpression","BreakStatement","CallExpression","CatchClause","ClassBody","ClassDeclaration","ClassExpression","ConditionalExpression","ContinueStatement","DoWhileStatement","DebuggerStatement","EmptyStatement","ExportAllDeclaration","ExportDefaultDeclaration","ExportNamedDeclaration","ExportSpecifier","ExpressionStatement","ForStatement","ForOfStatement","ForInStatement","FunctionDeclaration","FunctionExpression","Identifier","IfStatement","ImportDeclaration","ImportDefaultSpecifier","ImportNamespaceSpecifier","ImportSpecifier","Literal","LabeledStatement","LogicalExpression","MemberExpression","MetaProperty","MethodDefinition","NewExpression","ObjectExpression","ObjectPattern","Property","RestElement","ReturnStatement","SequenceExpression","SpreadElement","Super","SwitchCase","SwitchStatement","TaggedTemplateExpression","TemplateElement","TemplateLiteral","ThisExpression","ThrowStatement","TryStatement","UnaryExpression","UpdateExpression","VariableDeclaration","VariableDeclarator","WhileStatement","WithStatement","YieldExpression","extendStatics","__extends","setPrototypeOf","character_1","JSXNode","jsx_syntax_1","Node2","token_1","xhtml_entities_1","elementName","qualifiedName","JSXSyntax","JSXIdentifier","JSXNamespacedName","ns","getQualifiedElementName","namespace","JSXMemberExpression","expr","TokenName","_super","JSXParser2","parsePrimaryExpression","parseJSXRoot","startJSX","scanner","startMarker","lineNumber","line","lineStart","column","finishJSX","nextToken","reenterJSX","expectJSX","createJSXNode","collectComments","createJSXChildNode","scanXHTMLEntity","quote2","valid","terminated","numeric","eof","ch","Character","isDecimalDigit","isHexDigit","XHTMLEntities","lexJSX","cp","n1","isIdentifierStart","isIdentifierPart","lex","nextJSXToken","lastMarker","convertToken","nextJSXText","isLineTerminator","peekJSXToken","saveState","scanComments","restoreState","throwUnexpectedToken","matchJSX","parseJSXIdentifier","finalize","parseJSXElementName","name_1","parseJSXAttributeName","attributeName","identifier","name_2","parseJSXStringLiteralAttribute","getTokenRaw","parseJSXExpressionAttribute","tolerateError","expression","parseAssignmentExpression","JSXExpressionContainer","parseJSXAttributeValue","parseJSXElement","parseJSXNameValueAttribute","JSXAttribute","parseJSXSpreadAttribute","argument","JSXSpreadAttribute","parseJSXAttributes","parseJSXOpeningElement","selfClosing","JSXOpeningElement","parseJSXBoundaryElement","name_3","JSXClosingElement","parseJSXEmptyExpression","JSXEmptyExpression","parseJSXExpressionContainer","parseJSXChildren","JSXText","container","parseComplexJSXElement","el","opening","JSXElement","closing","open_1","isStartOfExpression","Regex","NonAsciiIdentifierStart","NonAsciiIdentifierPart","fromCodePoint","isWhiteSpace","isOctalDigit","openingElement","closingElement","operator","right","AsyncArrowFunctionExpression","AsyncFunctionDeclaration","AsyncFunctionExpression","logical","label","callee","superClass","ComputedMemberExpression","computed","consequent","alternate","Directive","directive","declaration","specifiers","local","exported","each","init2","init","imported","meta2","meta","kind","isStatic","Module","shorthand","RegexLiteral","regex","Script","expressions","StaticMemberExpression","discriminant","quasi","quasis","block2","handler","finalizer","prefix","declarations","assert_1","error_handler_1","messages_1","scanner_1","ArrowParameterPlaceHolder","Parser3","ErrorHandler","Scanner","trackComment","operatorPrecedence",")",";",",","=","]","||","&&","|","^","&","==","!=","===","!==","<",">","<=",">=","<<",">>",">>>","+","-","*","/","%","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","Parser4","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","Tokenizer3","trackRange","trackLoc","reader","Tokenizer4","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","displayName","isReactComponent","__f","isPureReactComponent","__u","__R","n4","__O","delete","revealOrder","F","cancelBubble","defaultPrevented","persist","isPropagationStopped","isDefaultPrevented","nativeEvent","class","multiple","selected","defaultValue","className","$$typeof","performance","now","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","esmEntry$1","defaults$5","baseUrl","breaks","extensions","gfm","headerIds","headerPrefix","highlight","langPrefix","mangle","pedantic","renderer","sanitize","sanitizer","smartLists","smartypants","walkTokens","xhtml","defaults","getDefaults","getDefaults$1","changeDefaults","newDefaults","escapeTest","escapeReplace","escapeTestNoEncode","escapeReplaceNoEncode","escapeReplacements","'","getEscapeReplacement","unescapeTest","html","substring","caret","nonWordAndColonTest","originIndependentUrl","baseUrls","justDomain","domain","rtrim$1","relativeBase","suffLen","currChar","helpers","unescape$1","edit","getRegex","cleanUrl","prot","resolveUrl","encodeURI","noopTest","splitCells","tableRow","cells","escaped","rtrim","findClosingBracket","checkSanitizeDeprecation","defaults$4","escape$2","link","lexer","inLink","inlineTokens","Tokenizer_1$1","newline","codeBlockStyle","fences","matchIndentToCode","indentToCode","matchIndentInNode","indentInNode","indentCodeCompensation","heading","trimmed","hr","blockquote","blockTokens","istask","ischecked","blankLine","endsWithBlankLine","lines","itemContents","isordered","ordered","itemRegex","nextBulletRegex","top","pre","def","align","rows","row","lheading","paragraph","inRawBlock","trimmedUrl","rtrimSlash","lastParenIndex","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","merge$1","block$1","noopTest2","_paragraph","_label","_title","bullet","listItemStart","_comment","inline$1","reflinkSearch","_punctuation","blockSkip","escapedEmSt","_scheme","_email","_attribute","_href","strong","middle","endAst","endUnd","em","_extended_email","Tokenizer$2","defaults$3","Lexer_1$1","inlineQueue","rules2","Lexer","lastToken","cutSrc","lastParagraphClipped","extTokenizer","startBlock","startIndex","tempSrc","tempStart","getStartIndex","errMsg","keepPrevChar","codespan","startInline","inlineText","defaults$2","escape$1","Renderer_1$1","infostring","slugger","slug","content","TextRenderer_1$1","Slugger_1$1","seen","originalSlug","isDryRun","occurenceAccumulator","serialize","getNextSafeSlug","dryrun","Renderer$2","TextRenderer$2","Slugger$2","defaults$1","Parser_1$1","textRenderer","parseInline","cell","itemBody","checkbox","l4","renderers","tablecell","tablerow","listitem","Lexer$1","Parser$1","Tokenizer$1","Renderer$1","TextRenderer$1","Slugger$1","callback","marked$1","setOptions","use","childTokens","hasExtensions","prevRenderer","args2","prevTokenizer","lexInline","Renderer","TextRenderer","Slugger","marked","Lexer2","Parser2","Tokenizer2","Renderer2","TextRenderer2","Slugger2","esmEntry"],"mappings":"4bAAG,WAAA,IAACA,EAAIC,EAAEC,EAAEC,EAAIC,EAAE,GAAGC,EAAE,GAAGC,EAAE,oEAAoE,WAAWC,EAAEC,WAAWC,KAAKD,IAAIC,GAAGD,EAAEC,UAAUF,EAAE,WAAWA,OAAOC,EAAED,EAAEG,cAAcF,EAAEG,YAAYJ,GAAG,WAAWA,EAAEC,EAAEC,OAAOP,EAAEU,EAAEC,EAAEC,EAAEC,UAAUC,EAAE,OAAOH,KAAKL,EAAE,OAAOK,EAAEX,EAAEM,EAAEK,GAAG,OAAOA,EAAED,EAAEJ,EAAEK,GAAGG,EAAEH,GAAGL,EAAEK,MAAME,UAAUE,OAAO,MAAMR,EAAE,CAACA,GAAGI,EAAE,EAAEA,EAAEE,UAAUE,OAAOJ,MAAMK,KAAKJ,EAAED,OAAO,MAAAJ,MAAYU,SAASV,GAAG,mBAAmBF,GAAG,MAAAA,EAAQa,iBAAiBP,KAAKN,EAAEa,kBAAa,IAASJ,EAAEH,OAAOA,GAAGN,EAAEa,aAAaP,WAAWQ,EAAEd,EAAES,EAAEd,EAAEU,EAAE,MAAM,WAAWJ,EAAEC,EAAEP,EAAEU,EAAEC,OAAOC,EAAE,CAACQ,KAAKd,EAAEe,MAAMd,EAAEe,IAAItB,EAAEuB,IAAIb,EAAEc,IAAI,KAAKC,GAAG,KAAKC,IAAI,EAAEC,IAAI,KAAKC,SAAI,EAAOC,IAAI,KAAKC,IAAI,KAAKC,iBAAY,EAAOC,IAAI,MAAArB,IAAUb,EAAEkC,IAAIrB,UAAU,MAAAb,EAAQmC,OAAOnC,EAAEmC,MAAMrB,GAAGA,EAAoC,WAAWP,UAAUA,EAAEY,SAAS,WAAWZ,EAAEC,QAAQe,MAAMhB,EAAE6B,KAAKC,QAAQ7B,EAAE,WAAWD,EAAEC,MAAM,MAAAA,SAAeD,EAAEoB,GAAGW,EAAE/B,EAAEoB,GAAGpB,EAAEoB,GAAGD,IAAIa,QAAQhC,GAAG,GAAG,aAAaE,EAAED,EAAED,EAAEmB,IAAIT,OAAOT,OAAO,SAASD,EAAEmB,IAAIlB,KAAK,MAAMC,EAAEoB,WAAWpB,EAAEoB,UAAU,mBAAmBtB,EAAEe,KAAKgB,EAAE/B,GAAG,KAAK,WAAWA,OAAOC,EAAEC,KAAK,SAASF,EAAEoB,KAAK,MAAApB,EAAQwB,IAAI,KAAKxB,EAAEsB,IAAItB,EAAEwB,IAAIS,KAAK,KAAKhC,EAAE,EAAEA,EAAED,EAAEmB,IAAIT,OAAOT,OAAO,SAASD,EAAEmB,IAAIlB,KAAK,MAAMC,EAAEoB,IAAI,GAAGA,IAAItB,EAAEwB,IAAIS,KAAK/B,EAAEoB,iBAAiBY,EAAElC,IAAI,WAAWC,KAAKA,EAAEsB,QAAQA,KAAI,IAAK7B,EAAEiB,KAAKV,KAAKkC,EAAEC,OAAOxC,IAAIH,EAAE4C,wBAAwB5C,EAAE4C,oBAAoB1C,GAAGwC,GAAG,qBAAqBnC,EAAEmC,EAAEC,IAAI1C,EAAEgB,UAAUhB,EAAE4C,MAAK,SAASC,EAAEtC,UAAUsC,EAAEZ,IAAIN,IAAIpB,EAAE0B,IAAIN,OAAM3B,EAAE,GAAGM,EAAEwC,MAAK,SAASD,OAAOtC,EAAEC,EAAEP,EAAEU,EAAEC,EAAEC,IAAIgB,cAAcgB,GAAGZ,KAAKL,OAAOrB,EAAEwC,SAAS,MAAMC,EAAE,GAAGrC,IAAIsB,IAAItB,EAAEsB,IAAI,EAAEgB,EAAEpC,EAAEF,EAAEV,EAAEM,EAAE2C,SAAI,IAAArC,EAAWsC,gBAAgB,MAAMxC,EAAEoB,IAAI,CAACnB,GAAG,KAAKJ,EAAE,MAAAI,EAAQyB,EAAE1B,GAAGC,EAAED,EAAEoB,KAAKqB,EAAE5C,EAAEG,GAAGA,EAAEiB,KAAKhB,GAAG4B,EAAE7B,QAAO,WAAWL,EAAEC,EAAEC,EAAEP,EAAEU,EAAEC,EAAEyC,EAAEC,EAAEC,EAAEC,OAAOC,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,EAAE/D,GAAGA,EAAEwB,KAAKrB,EAAE6D,EAAED,EAAEhD,WAAWR,EAAEiB,IAAI,GAAGgC,EAAE,EAAEA,EAAElD,EAAES,OAAOyC,OAAO,SAASjD,EAAEiB,IAAIgC,GAAG,SAASlD,EAAEkD,KAAK,kBAAkBG,EAAE,KAAK,iBAAiBA,GAAG,iBAAiBA,GAAG,iBAAiBA,EAAExC,EAAE,KAAKwC,EAAE,KAAK,KAAKA,GAAGM,MAAMC,QAAQP,GAAGxC,EAAEgD,EAAE,CAAClD,SAAS0C,GAAG,KAAK,KAAK,MAAMA,EAAEjC,IAAI,EAAEP,EAAEwC,EAAEvC,KAAKuC,EAAEtC,MAAMsC,EAAErC,IAAI,KAAKqC,EAAE3B,KAAK2B,GAAG,IAAIA,EAAElC,GAAGlB,EAAEoD,EAAEjC,IAAInB,EAAEmB,IAAI,EAAE,UAAUqC,EAAEP,KAAKE,GAAGC,EAAErC,KAAKoC,EAAEpC,KAAKqC,EAAEvC,OAAOsC,EAAEtC,OAAOoC,QAAG,WAAgBC,EAAE,EAAEA,EAAEO,EAAEP,IAAI,OAAOM,EAAEN,KAAKE,EAAErC,KAAKoC,EAAEpC,KAAKqC,EAAEvC,OAAOsC,EAAEtC,KAAK,GAAGqC,QAAG,UAAe,OAAOpD,EAAEsD,EAAED,EAAEA,GAAGxD,EAAEQ,EAAEC,EAAEyC,EAAEC,EAAEC,EAAEC,GAAGK,EAAED,EAAEhC,OAAOgC,EAAEpC,MAAMmC,EAAEnC,KAAKkC,UAAU,IAAIC,EAAEnC,KAAKuC,EAAE9C,KAAK0C,EAAEnC,IAAI,KAAKoC,GAAGG,EAAE9C,KAAKyC,EAAEE,EAAE9B,KAAK+B,EAAED,IAAI,MAAMC,GAAG,MAAMC,MAAMD,GAAG,mBAAmBD,EAAEvC,MAAM,MAAMuC,EAAEnC,KAAKmC,EAAEnC,MAAMkC,EAAElC,IAAImC,EAAE/B,IAAI0B,EAAEc,EAAET,EAAEL,EAAEjD,GAAGiD,EAAEe,EAAEhE,EAAEsD,EAAED,EAAEK,EAAEH,EAAEN,GAAGC,GAAG,WAAAhD,EAAaa,KAAK,mBAAmBb,EAAEa,SAASQ,IAAI0B,GAAGjD,EAAEiE,MAAM,IAAIhB,GAAGI,EAAE/B,KAAK2B,GAAGA,EAAE9C,YAAYH,MAAM+B,EAAEsB,QAAQnD,EAAEoB,IAAIkC,EAAEL,EAAEQ,EAAER,KAAK,MAAMO,EAAEP,KAAK,mBAAmBjD,EAAEa,MAAM,MAAM2C,EAAEP,GAAG7B,KAAKoC,EAAEP,GAAG7B,KAAKpB,EAAEqB,QAAQA,IAAIQ,EAAEpC,EAAEwD,EAAE,IAAIe,EAAER,EAAEP,GAAGO,EAAEP,QAAQM,MAAMN,EAAE,EAAEA,EAAEM,EAAE/C,OAAOyC,MAAMM,EAAEN,GAAGM,IAAIN,GAAGM,IAAIN,IAAI,WAAWnD,EAAEC,EAAEC,OAAOP,EAAEU,MAAMV,EAAE,EAAEA,EAAEK,EAAEmB,IAAIT,OAAOf,OAAOK,EAAEmB,IAAIxB,QAAQyB,GAAGpB,EAAEC,EAAE,mBAAmBI,EAAEU,KAAKgD,EAAE1D,EAAEJ,EAAEC,GAAG8D,EAAE9D,EAAEG,EAAEA,EAAEL,EAAEmB,IAAId,EAAEiB,IAAIrB,WAAWA,EAAE,WAAWD,EAAEC,UAAUA,EAAEA,GAAG,GAAG,MAAAD,GAAS,kBAAkBA,UAAU6D,QAAQ7D,GAAGA,EAAEwC,MAAK,SAASD,KAAKA,EAAEtC,MAAKA,EAAEU,KAAKX,IAAIC,EAAE,WAAWD,EAAEC,EAAEC,EAAEP,EAAEU,EAAEC,OAAOC,EAAEE,EAAEsC,UAAK,IAAS9C,EAAEsB,MAAMtB,EAAEsB,IAAItB,EAAEsB,SAAI,UAAe,MAAArB,GAASG,GAAGC,GAAG,MAAMD,EAAEF,gBAAgB,MAAAG,GAASA,EAAEH,aAAaH,IAAImE,YAAY9D,GAAGE,EAAE,SAAS,KAAKE,EAAEH,EAAEyC,EAAE,KAAKtC,EAAE2D,cAAcrB,EAAEpD,EAAEe,OAAOqC,GAAG,KAAKtC,GAAGJ,YAAYgE,aAAahE,EAAEC,GAAGC,EAAED,cAAS,IAAAC,EAAWA,EAAEF,EAAE+D,YAAuO,WAAWpE,EAAEC,EAAEC,GAAG,MAAMD,EAAE,GAAGD,EAAEsE,YAAYrE,EAAEC,GAAGF,EAAEC,GAAG,MAAMC,EAAE,GAAG,iBAAiBA,GAAGH,EAAEwE,KAAKtE,GAAGC,EAAEA,EAAE,KAAK,WAAWF,EAAEC,EAAEC,EAAEP,EAAEU,OAAOC,OAAO,UAAAL,KAAe,iBAAiBC,IAAIsE,MAAMC,QAAQvE,MAAM,IAAI,iBAAiBP,MAAM6E,MAAMC,QAAQ9E,EAAE,IAAIA,MAAMM,KAAKN,KAAKM,KAAKC,GAAGwE,EAAE1E,EAAEwE,MAAMvE,EAAE,OAAOC,MAAMD,KAAKC,KAAKA,EAAED,KAAKN,EAAEM,IAAIyE,EAAE1E,EAAEwE,MAAMvE,EAAEC,EAAED,YAAY,MAAAA,EAAQ,IAAI,MAAMA,EAAE,KAAKA,OAAOA,EAAE0E,QAAQ,WAAW,KAAK1E,EAAEA,EAAE2E,gBAAgB5E,EAAEC,EAAE2E,cAAcC,MAAM,GAAG5E,EAAE4E,MAAM,GAAG7E,EAAE8E,MAAMA,EAAE,IAAI9E,EAAE8E,EAAE7E,EAAEK,GAAGJ,EAAEA,EAAEP,GAAGK,EAAE+E,iBAAiB9E,EAAEK,EAAE0E,EAAEC,EAAE3E,GAAGN,EAAEkF,oBAAoBjF,EAAEK,EAAE0E,EAAEC,EAAE3E,WAAW,4BAA4BL,EAAE,IAAII,IAAIJ,EAAE0E,QAAQ,aAAa,KAAKA,QAAQ,SAAS,aAAa,SAAA1E,GAAY,SAASA,GAAG,SAASA,GAAG,aAAAA,GAAgB,aAAAA,GAAgBA,KAAKD,QAAQC,GAAG,MAAMC,EAAE,GAAGA,gBAAgBqC,IAAI,mBAAmBrC,IAAI,MAAMA,KAAI,IAAKA,GAAG,MAAAD,EAAQ,IAAI,MAAMA,EAAE,IAAID,EAAEmF,aAAalF,EAAEC,GAAGF,EAAEoF,gBAAgBnF,KAAK,WAAWA,QAAQ6E,EAAE7E,EAAEc,MAAK,GAAItB,EAAE4F,MAAM5F,EAAE4F,MAAMpF,GAAGA,GAAG,WAAWA,QAAQ6E,EAAE7E,EAAEc,MAAK,GAAItB,EAAE4F,MAAM5F,EAAE4F,MAAMpF,GAAGA,GAAG,WAAWA,EAAEC,EAAEP,EAAEU,EAAEC,EAAEC,EAAEE,EAAEsC,EAAEE,OAAOC,EAAEoC,EAAEnC,EAAEoC,EAAElC,EAAEC,EAAEC,EAAEiC,EAAE/B,EAAEgC,EAAE/B,EAAEC,EAAEzD,EAAEa,aAAQ,IAASb,EAAEwB,mBAAmB,KAAK,MAAM/B,EAAE8B,QAAQ9B,EAAE8B,IAAIsB,EAAE7C,EAAEoB,IAAI3B,EAAE2B,IAAIpB,EAAEuB,IAAI,KAAKlB,EAAE,CAACwC,OAAOtD,EAAE4B,MAAM6B,EAAEhD,YAAY,mBAAmByD,EAAE,IAAI6B,EAAEtF,EAAEc,MAAMyC,KAAKE,EAAE+B,cAAcrF,EAAE6C,EAAE1B,KAAKiE,EAAEvC,EAAEO,EAAEA,EAAEzC,MAAMiD,MAAMf,EAAE9B,GAAGf,EAAEV,EAAE6B,IAAI+B,KAAKrD,EAAEsB,IAAI7B,EAAE6B,KAAKJ,GAAGkE,EAAEK,mBAAmBhC,GAAGA,EAAEiC,UAAUC,OAAO3F,EAAEsB,IAAI8D,EAAE,IAAI3B,EAAE6B,EAAEC,MAAMjE,IAAI8D,EAAE,IAAIQ,EAAEN,EAAEC,GAAGH,EAAE5D,YAAYiC,EAAE2B,EAAEO,OAAOE,GAAGtC,GAAGA,EAAEuC,IAAIV,GAAGA,EAAEtE,MAAMwE,EAAEF,EAAEW,UAAUA,MAAM,IAAIX,EAAExD,QAAQ2D,EAAEH,EAAE1C,IAAIvC,EAAE8C,EAAEmC,EAAE/D,KAAI,EAAG+D,EAAE7D,IAAI,IAAI,MAAM6D,EAAEY,QAAQA,IAAIZ,EAAEW,OAAO,MAAAtC,EAAQwC,6BAA6BD,KAAKZ,EAAEW,UAAUC,IAAIxD,EAAE,GAAG4C,EAAEY,MAAMxD,EAAE4C,EAAEY,IAAIvC,EAAEwC,yBAAyBX,EAAEF,EAAEY,OAAOX,EAAED,EAAEtE,MAAMqC,EAAEiC,EAAEW,MAAM9C,EAAE,MAAMQ,EAAEwC,0BAA0B,MAAAb,EAAQc,oBAAoBd,EAAEc,qBAAqB,MAAMd,EAAEe,mBAAmBf,EAAE7D,IAAId,KAAK2E,EAAEe,uBAAuB,IAAI,MAAA1C,EAAQwC,0BAA0BX,IAAID,GAAG,MAAMD,EAAEgB,2BAA2BhB,EAAEgB,0BAA0Bd,EAAEC,IAAIH,EAAEhE,KAAK,MAAMgE,EAAEiB,wBAAuB,IAAKjB,EAAEiB,sBAAsBf,EAAEF,EAAEY,IAAIT,IAAIvF,EAAEyB,MAAMhC,EAAEgC,IAAI,GAAGX,MAAMwE,EAAEF,EAAEW,MAAMX,EAAEY,IAAIhG,EAAEyB,MAAMhC,EAAEgC,QAAQJ,KAAI,GAAI+D,EAAE3D,IAAIzB,EAAEA,EAAEoB,IAAI3B,EAAE2B,IAAIpB,EAAEiB,IAAIxB,EAAEwB,IAAIjB,EAAEiB,IAAIqF,SAAQ,SAASxG,SAASoB,GAAGlB,MAAKoF,EAAE7D,IAAIf,QAAQD,EAAEE,KAAK2E,WAAW,MAAMA,EAAEmB,qBAAqBnB,EAAEmB,oBAAoBjB,EAAEF,EAAEY,IAAIT,GAAG,MAAMH,EAAEoB,oBAAoBpB,EAAE7D,IAAId,MAAK,aAAa+F,mBAAmBnB,EAAElC,EAAEC,QAAOxB,QAAQ2D,EAAEH,EAAEtE,MAAMwE,EAAEF,EAAEW,MAAMX,EAAEY,OAAOzG,EAAE2C,MAAMc,EAAEhD,GAAGoF,EAAE/D,KAAI,EAAG+D,EAAE3D,IAAIzB,EAAEoF,EAAE7C,IAAIxC,EAAEiD,EAAEoC,EAAEO,OAAOP,EAAEtE,MAAMsE,EAAEW,MAAMX,EAAExD,SAASwD,EAAEW,MAAMX,EAAEY,IAAI,MAAAZ,EAAQqB,oBAAoBjE,EAAEA,EAAE,GAAGrC,GAAGiF,EAAEqB,oBAAoBxD,GAAG,MAAAmC,EAAQsB,4BAA4BtB,EAAEsB,wBAAwBrB,EAAElC,IAAIK,EAAE,MAAMR,GAAGA,EAAEnC,OAAO+C,GAAG,MAAAZ,EAAQjC,IAAIiC,EAAElC,MAAMJ,SAASsC,EAAE2D,EAAE5G,EAAE2D,MAAMC,QAAQH,GAAGA,EAAE,CAACA,GAAGxD,EAAEP,EAAEU,EAAEC,EAAEC,EAAEE,EAAEsC,EAAEE,GAAGqC,EAAErD,KAAK/B,EAAEoB,IAAIpB,EAAEuB,IAAI,KAAK6D,EAAE7D,IAAIf,QAAQD,EAAEE,KAAK2E,GAAG/B,MAAMoC,IAAIL,EAAElE,GAAG,MAAMkE,EAAEhE,KAAI,OAAQ,MAAMf,GAAGL,EAAEyB,MAAMhC,EAAEgC,OAAOR,IAAIxB,EAAEwB,IAAIjB,EAAEoB,IAAI3B,EAAE2B,KAAKpB,EAAEoB,IAA2Q,SAAWtB,EAAEC,EAAEC,EAAEP,EAAEU,EAAEC,EAAEyC,EAAEC,OAAOE,EAAEoC,EAAEnC,EAAE2D,EAAE1D,EAAElD,EAAEc,MAAMuE,EAAEtF,EAAEe,MAAMqC,EAAEpD,EAAEc,KAAKuC,EAAE,KAAK,QAAAD,OAAc,GAAI,MAAA/C,OAAagD,EAAEhD,EAAEI,OAAO4C,UAAUhD,EAAEgD,UAAUtD,MAAMkD,EAAE6D,WAAW1D,EAAE,GAAGH,EAAE8D,WAAW,GAAG9D,EAAE5C,EAAEgD,GAAG,cAAc,MAAMtD,EAAE,IAAI,OAAAqD,SAAgB4D,SAASC,eAAe3B,KAAKlF,EAAE4G,SAASE,gBAAgB,6BAA6B9D,GAAG4D,SAASG,cAAc/D,EAAEkC,EAAE8B,IAAI9B,GAAGjF,EAAE,KAAK0C,GAAE,KAAM,OAAAK,MAAakC,GAAGvC,GAAGhD,EAAEsH,OAAO/B,MAAM+B,KAAK/B,OAAO,IAAIjF,EAAEA,GAAGR,EAAE+E,MAAM0C,KAAKvH,EAAEwH,YAAYlC,KAAKpF,EAAEc,OAAOnB,GAAG4H,wBAAwBtE,EAAEoC,EAAEkC,yBAAyBzE,EAAE,IAAI,MAAA1C,MAAY8C,EAAE,GAAG0D,EAAE,EAAEA,EAAE9G,EAAE0H,WAAWhH,OAAOoG,MAAM9G,EAAE0H,WAAWZ,GAAGa,MAAM3H,EAAE0H,WAAWZ,GAAG7C,UAAUqB,YAAYnC,EAAEyE,QAAQtC,EAAEsC,QAAQzE,EAAEyE,SAAS5H,EAAE6H,eAAeA,UAAU1E,GAAGA,EAAEyE,QAAQ,QAA34H,SAAW5H,EAAEC,EAAEC,EAAEP,EAAEU,OAAOC,MAAMA,KAAKJ,EAAE,aAAaI,GAAG,QAAAA,GAAWA,KAAKL,GAAG6H,EAAE9H,EAAEM,EAAE,KAAKJ,EAAEI,GAAGX,OAAOW,KAAKL,KAAK,mBAAmBA,EAAEK,IAAI,aAAAA,GAAgB,QAAQA,GAAG,UAAAA,GAAa,YAAYA,GAAGJ,EAAEI,KAAKL,EAAEK,IAAIwH,EAAE9H,EAAEM,EAAEL,EAAEK,GAAGJ,EAAEI,GAAGX,GAA2rHoI,CAAE/H,EAAEuF,EAAEnC,EAAE/C,EAAE2C,GAAGG,IAAIhC,IAAI,WAAWmC,EAAErD,EAAEe,MAAMJ,SAASiG,EAAE7G,EAAE4D,MAAMC,QAAQP,GAAGA,EAAE,CAACA,GAAGrD,EAAEC,EAAEP,EAAEU,GAAG,kBAAkBgD,EAAE/C,EAAEyC,EAAE/C,EAAEgI,WAAWhF,GAAG,MAAM1C,MAAMgD,EAAEhD,EAAEI,OAAO4C,KAAK,MAAMhD,EAAEgD,IAAI2E,EAAE3H,EAAEgD,kBAAkBiC,QAAG,OAAYA,EAAEtB,aAAajE,EAAEiE,OAAO,aAAAZ,IAAiBC,IAAIwE,EAAE9H,EAAE,QAAQsD,EAAEF,EAAEa,OAAM,GAAI,YAAYsB,QAAG,OAAYA,EAAE2C,UAAU5E,IAAItD,EAAEkI,SAASJ,EAAE9H,EAAE,UAAUsD,EAAEF,EAAE8E,SAAQ,WAAYlI,EAA9zCmI,CAAExI,EAAE2B,IAAIpB,EAAEP,EAAEU,EAAEC,EAAEC,EAAEE,EAAEwC,MAAMxD,EAAE2I,SAASlF,EAAEhD,SAASmI,KAAK1G,IAAI,SAAS,MAAMpB,OAAOe,IAAIyB,EAAE7C,EAAEuB,MAAMwB,EAAE1C,EAAEA,EAAEyB,QAAQe,IAAI,MAAMtD,EAAE6B,IAAI+G,EAAEnI,EAAEP,IAAI,WAAWM,EAAEC,KAAKsB,KAAK/B,EAAE+B,IAAItB,EAAED,GAAGA,EAAEuC,MAAK,SAAS8F,SAASA,EAAE7G,IAAI6G,EAAE7G,IAAI,GAAGxB,EAAEuC,MAAK,SAASxC,KAAKuH,KAAKe,YAAWD,KAAK/G,IAAI+G,EAAEC,EAAE3G,SAAikC,WAAW1B,EAAEC,EAAEP,OAAO,mBAAmBM,EAAEA,EAAEC,GAAGD,EAAEsI,QAAQrI,QAAQmI,KAAK/G,IAAI+G,EAAE1I,IAAI,WAAWM,EAAEC,EAAEP,OAAOU,EAAEC,EAAEC,KAAKd,EAAE+I,SAAS/I,EAAE+I,QAAQvI,MAAMA,EAAEiB,SAASqH,SAASlI,EAAEkI,UAAUtI,EAAEqB,KAAKmH,EAAEpI,EAAE,KAAKH,IAAIP,GAAG,mBAAmBM,EAAEc,SAAS,SAASd,EAAEqB,MAAMrB,EAAEqB,IAAIrB,EAAEsB,SAAI,EAAO,SAAStB,EAAEuB,KAAK,IAAInB,EAAEqI,2BAA2BA,6BAA6BL,KAAK/G,IAAI+G,EAAEnI,KAAK+B,KAAK5B,EAAEoC,IAAI,QAAQpC,EAAEJ,EAAEkB,QAAQZ,EAAE,EAAEA,EAAEF,EAAEK,OAAOH,MAAMA,IAAI2D,EAAE7D,EAAEE,GAAGL,EAAEP,GAAG,MAAMW,GAAG2H,EAAE3H,GAAG,WAAWN,EAAEC,EAAEC,UAAU2B,KAAKH,YAAY1B,EAAEE,GAAG,WAAWD,EAAEC,EAAEP,OAAOU,EAAEC,EAAEyC,IAAI3B,IAAI3B,EAAE2B,GAAGnB,EAAEC,GAAGI,KAAK,mBAAmBX,GAAG,KAAKA,GAAGA,EAAEwB,KAAKjB,EAAEiB,IAAI4B,EAAE,GAAGJ,EAAEzC,EAAED,IAAII,GAAGV,GAAGO,GAAGiB,IAAIwH,EAAE7E,EAAE,KAAK,CAAC7D,IAAIK,GAAGT,EAAEA,OAAE,IAAAK,EAAW2C,iBAAiBxC,GAAGV,EAAE,CAACA,GAAGW,EAAE,KAAKJ,EAAE8H,WAAWlI,EAAE+E,MAAM0C,KAAKrH,EAAEsH,YAAY,KAAKzE,GAAG1C,GAAGV,EAAEA,EAAEW,EAAEA,EAAEgB,IAAIpB,EAAE8H,WAAW3H,GAAGyC,EAAEC,EAAE9C,GAAsvBR,EAAE,CAAC6B,IAAI,SAAStB,EAAEC,WAAWC,EAAEP,EAAEU,EAAEJ,EAAEA,EAAEmB,UAAUnB,EAAEuB,OAAOtB,EAAEkB,aAAalB,EAAEwB,cAAc,MAAA/B,EAAQiJ,6BAA6BC,SAASlJ,EAAEiJ,yBAAyB5I,IAAIK,EAAEH,EAAEqB,KAAK,MAAArB,EAAQ4I,sBAAsBA,kBAAkB9I,GAAGK,EAAEH,EAAEqB,KAAKlB,SAASH,EAAEyF,IAAIzF,QAAQmI,KAAKA,QAAQrI,GAAG2B,IAAI,GAAyDmE,EAAEF,UAAUiD,SAAS,SAAS7I,EAAEC,OAAOC,IAAI,MAAA2B,KAAWqE,KAAKrE,KAAKqE,MAAMrE,KAAKoE,MAAMpE,KAAKqE,IAAIrE,KAAKqE,IAAIxD,EAAE,GAAGb,KAAKoE,OAAO,mBAAmBjG,MAAMA,EAAE0C,EAAE,GAAGxC,GAAG2B,KAAKb,QAAQhB,GAAG0C,EAAExC,EAAEF,GAAG,MAAAA,GAAS6B,KAAKF,SAASE,KAAKJ,IAAId,KAAKV,GAAG8I,EAAElH,QAAQiE,EAAEF,UAAUoD,YAAY,SAAShJ,QAAQ2B,WAAWL,KAAI,EAAGtB,GAAG6B,KAAKJ,IAAId,KAAKX,GAAG+I,EAAElH,QAAQiE,EAAEF,UAAUC,OAAO/B,EAAEpE,EAAE,GAAGC,EAAE,mBAAmBsJ,QAAQA,QAAQrD,UAAUsD,KAAKC,KAAKF,QAAQG,WAAWC,WAAWlH,EAAEC,IAAI,ECEjoT,IAAIkH,EAAU,GAEd,WAAgBC,EAAKvI,WAEXrB,KAAKqB,IACTrB,GAAKqB,EAAMrB,UAET4J,EAGR,WAAcC,EAAKC,EAAOC,OAIxBC,EAHGC,EAAM,wBACT5G,EAAIwG,EAAIK,MAAMD,GACdE,EAAU,MAEP9G,GAAKA,EAAE,WACNI,EAAIJ,EAAE,GAAG+G,MAAM,KACVpK,EAAE,EAAGA,EAAEyD,EAAE1C,OAAQf,IAAK,KAC1BY,EAAI6C,EAAEzD,GAAGoK,MAAM,OACXC,mBAAmBzJ,EAAE,KAAOyJ,mBAAmBzJ,EAAEsE,MAAM,GAAGoF,KAAK,QAGnEC,EAAWV,EAAI7E,QAAQiF,EAAK,OAC1BM,EAAWT,GAAS,YACxBU,EAAMC,KAAKD,IAAIX,EAAI9I,OAAQ+I,EAAM/I,QAC5B2J,EAAI,EAAGA,EAAIF,EAAKE,OACpBZ,EAAMY,IAA+B,MAAvBZ,EAAMY,GAAKC,OAAO,GAAU,KACzCC,EAAQd,EAAMY,GAAK1F,QAAQ,gBAAiB,IAC/C6F,KAAeH,GAAKR,MAAM,YAAcP,GAAS,IAAM,GACvDmB,GAAQD,EAAMxI,QAAQ,KACtB0I,GAAQF,EAAMxI,QAAQ,KACtB2I,EAAMnB,EAAIa,IAAQ,OACdM,IAAQD,MAAe1I,QAAQ,KAAK,GAAKyI,GAAO,IAC9C,aAGCF,GAASP,mBAAmBW,GAChCF,GAAQC,EAAM,GACTH,GAASf,EAAI3E,MAAMwF,GAAKO,IAAIZ,oBAAoBC,KAAK,oBAItDR,EAAMY,KAAOb,EAAIa,GAAM,IACzB,gBAIW,IAAfX,EAAKmB,UAAwB,IAANlB,IACpBG,EAGR,WAAsB5G,EAAGK,UAEtBL,EAAE4H,KAAOvH,EAAEuH,KAAQ,EAClB5H,EAAE4H,KAAOvH,EAAEuH,QACV5H,EAAE6H,MAAQxH,EAAEwH,MAKjB,WAAgCnJ,EAAOoJ,YAChCD,MAAQC,IACRF,KAgBP,SAAmBlJ,UACXA,EAAMZ,MAAM6J,QAAU,GALhBI,EAKyBrJ,EAAMZ,MAAMiK,KAJ3Cf,EAAWe,GAAML,IAAIM,GAAajB,KAAK,KAD/C,IAAcgB,EAZAE,CAAUvJ,GAChBA,EAAMZ,MAGd,WAAoBwI,UACZA,EAAI7E,QAAQ,eAAgB,IAAIoF,MAAM,KAG9C,WAAqBqB,SACM,KAAnBA,EAAQd,OAAO,GAAW,EAAI,MAAMtI,QAAQoJ,EAAQd,OAAOc,EAAQ1K,OAAO,KAAQ,EAAI,EAW9F,IAAI2K,EAAgB,KAEhBC,EAAU,GAEVC,EAAc,GAEdC,EAAQ,GAcZ,iBACKhC,QAUI,OATJ6B,GAAiBA,EAAcI,SAC5BJ,EAAcI,SAEZJ,GAAiBA,EAAcK,mBACjCL,EAAcK,qBAGI,oBAAXD,SAAyBA,SAAWD,GAEhCG,UAAY,OAAWC,QAAU,IAKpD,YAAepC,EAAK7E,eACF,IAAZA,OAA6B,GAEjB,iBAAN6E,GAAkBA,EAAIA,QACtBA,EAAI7E,UACR6E,EAAIA,KAaZ,SAAkBA,WACR7J,EAAE2L,EAAQ5K,OAAQf,QACtB2L,EAAQ3L,GAAGkM,SAASrC,UAAe,SAEjC,EAbHqC,CAASrC,IArCd,SAAgBA,EAAKsC,QACN,IAATA,MAAuB,QAExBT,GAAiBA,EAAcS,KACpBA,GAAMtC,GAEK,oBAAVuC,SAAyBA,QAAQD,EAAK,kBAC7CA,EAAK,SAAS,KAAM,KAAMtC,IA+B3BA,EAAK7E,EAAU,UAAY,QAG5BqH,GAAQxC,GAchB,YAAiBA,WACZyC,GAAW,EACNtM,EAAE,EAAGA,EAAE2L,EAAQ5K,OAAQf,KACD,IAA1B2L,EAAQ3L,GAAGqM,QAAQxC,QACX,WAGJa,EAAIkB,EAAY7K,OAAQ2J,OACpBA,GAAKb,UAEXyC,EAIR,YAAuBC,MAEjBA,GAASA,EAAKC,kBAEfC,EAAOF,EAAKC,aAAa,QAC5BE,EAASH,EAAKC,aAAa,aAGvBC,GAASA,EAAKvC,MAAM,WAAYwC,GAAWA,EAAOxC,MAAM,qBAGtDyC,GAAMF,IAId,YAAyBrJ,QACpBA,EAAEwJ,SAAWxJ,EAAEyJ,SAAWzJ,EAAE0J,QAAU1J,EAAE2J,UAAuB,IAAX3J,EAAE4J,kBAC5C5J,EAAE6J,eAAiB7J,EAAEsJ,QAAUxK,MACtCgL,GAAQ9J,GAIhB,YAAiBA,UACZA,IACCA,EAAE+J,4BAA8BA,2BAChC/J,EAAEgK,mBAAqBA,oBACzBC,mBAEI,EAIR,YAA6BjK,QAExBA,EAAEwJ,SAAWxJ,EAAEyJ,SAAWzJ,EAAE0J,QAAU1J,EAAE2J,UAAuB,IAAX3J,EAAE4J,aAEtDtM,EAAI0C,EAAEsJ,aAE8B,MAAnCY,OAAO5M,EAAE6M,UAAUC,eAAuB9M,EAAE8L,aAAa,QAAS,IACjE9L,EAAE+M,aAAa,oBAEfC,GAAchN,UACVwM,GAAQ9J,UAGR1C,EAAEA,EAAEF,aAIf,IAAImN,IAA4B,EAiB7B,IAACC,GAAU,SAAUC,cACPxM,KACFuG,KAAK1F,KAAMb,GACpBA,EAAM+K,YACO/K,EAAM+K,cAGlB9F,MAAQ,CACZuD,IAAKxI,EAAMwI,KAAOiE,KAtBhBH,KAE0B,mBAAnBvI,mBACLsG,oBACa,YAAY,cACpBoC,yBAGO,QAASC,SAEC,UAkBvBF,MAAsBG,UAAYH,KAChC5H,UAAYgI,OAAOC,OAAQL,GAAgBA,EAAa5H,aACxDA,UAAUlE,YAAcoM,IAExBlI,UAAUW,sBAAwB,SAAgCvF,UACrD,IAAfA,EAAM+M,SACH/M,EAAMwI,MAAM3H,KAAKb,MAAMwI,KAAOxI,EAAMgN,WAAWnM,KAAKb,MAAMgN,aAI3DpI,UAAUiG,SAAW,SAAmBrC,OAC1C5I,EAAWqN,EAAapM,KAAKb,MAAMJ,iBAChCiB,KAAKqM,oBAAoBtN,EAAU4I,GAAK,GAAO9I,OAAS,KAIzDkF,UAAUoG,QAAU,SAAkBxC,QACvCX,SAAS,CAAEW,IAAAA,QAEZyC,EAAWpK,KAAKgK,SAASrC,UAGxB3H,KAAKsM,eAAiBnF,cAEpBiD,KAGDrG,UAAUQ,mBAAqB,aAC7BzF,KAAKkB,WACRsM,UAAW,KAGVvI,UAAUS,kBAAoB,eAChC+H,EAASvM,KAETwJ,SACEgD,SAAWhD,EAAciD,QAAO,SAAUC,KACvCvC,QAAS,MAAeL,UAAY,OAAgBC,QAAU,cAGlEuC,UAAW,KAGVvI,UAAU8C,qBAAuB,WACZ,mBAAhB7G,KAAKwM,eAA8BA,aACtCG,OAAOlD,EAAQtJ,QAAQH,MAAO,MAGhC+D,UAAUa,oBAAsB,gBACjC0H,UAAW,KAGVvI,UAAUc,mBAAqB,gBAChCyH,UAAW,KAGVvI,UAAUsI,oBAAsB,SAA8BtN,EAAU4I,EAAKiF,UAC5E7N,EACL8N,OAAOC,GACPrM,KAAKsM,GACLhE,KAAK,SAAUhJ,OACXkI,EAAU+E,EAAKrF,EAAK5H,EAAMZ,MAAMiK,KAAMrJ,EAAMZ,UAC5C8I,EAAS,KACG,IAAX2E,EAAkB,KACjBK,EAAW,CAAEtF,IAAAA,EAAUM,QAAAA,YACpBgF,EAAUhF,UACVgF,EAAS5N,WACT4N,EAAS7N,IDpTkpQ,SAAWjB,EAAEC,EAAEC,OAAOP,EAAEU,EAAEC,EAAEC,EAAEC,UAAUC,EAAEiC,EAAE,GAAG1C,EAAEgB,WAAWV,KAAKL,EAAE,OAAOK,EAAEX,EAAEM,EAAEK,GAAG,OAAOA,EAAED,EAAEJ,EAAEK,GAAGG,EAAEH,GAAGL,EAAEK,MAAME,UAAUE,OAAO,MAAMR,EAAE,CAACA,GAAGI,EAAE,EAAEA,EAAEE,UAAUE,OAAOJ,MAAMK,KAAKJ,EAAED,WAAW,MAAAJ,MAAYU,SAASV,GAAGY,EAAEd,EAAEe,KAAKN,EAAEd,GAAGK,EAAEiB,IAAIZ,GAAGL,EAAEkB,IAAI,MCqT54Q6N,CAAanN,EAAOkN,UAErBlN,MAEN8M,OAAOM,YAGLpJ,UAAUC,OAAS,SAAiB3E,EAAK+N,OAC3CrO,EAAWM,EAAIN,SACfoN,EAAW9M,EAAI8M,SACfxE,EAAMyF,EAAMzF,IAEZ0F,EAASrN,KAAKqM,oBAAoBD,EAAarN,GAAW4I,GAAK,GAE/D2F,EAAUD,EAAO,IAAM,KAEvBE,EAAWvN,KAAKwN,mBAChB7F,IAAM4F,SACJC,YAAc7F,EACG,mBAAXwE,KACD,CACRsB,OAAQzN,KACR2H,IAAAA,EACA4F,SAAAA,EACAF,OAAAA,EACA3G,QAAS4G,KAKLA,GAGDrB,EAnHM,CAoHZyB,GAEEC,GAAO,SAAUxO,UACpBoG,EAAc,IAAKqI,EAAO,CAAEC,QAASC,IAAmB3O,KAKzDuM,GAAOhC,YAAcA,EACrBgC,GAAOE,cAAgBA,EACvBF,GAAOjB,MAAQA,GACfiB,GAAOA,OAASA,GAChBA,GAAOqC,MANK,SAAU5O,UAAgBoG,EAAcpG,EAAM6O,UAAW7O,IAOrEuM,GAAOiC,KAAOA,GACdjC,GAAOsB,KAAOA,ECrWmB,IAAIjP,GAAEF,GAAEG,GAAEiQ,GAAE,EAAEnQ,GAAE,GAAG+C,GAAEjD,EAAE4B,IAAIvB,GAAEL,EAAE2C,IAAIrC,GAAEN,EAAE2I,OAAOO,GAAElJ,EAAE+B,IAAIV,GAAErB,EAAE+I,QAAQ,YAAWnI,EAAEE,KAAKkB,KAAKhC,EAAEgC,IAAI/B,GAAEW,EAAEyP,IAAGvP,GAAGuP,GAAE,MAAMnQ,EAAED,GAAEqQ,SAAQA,IAAI,CAAC3O,GAAG,GAAGK,IAAI,YAAYpB,GAAGV,EAAEyB,GAAGV,QAAQf,EAAEyB,GAAGT,KAAK,IAAIhB,EAAEyB,GAAGf,GAAG,YAAWL,UAAU8P,GAAE,EAAS,SAAW9P,EAAEO,EAAED,OAAOX,EAAEkH,GAAEjH,KAAI,UAAUD,EAAEC,EAAEI,EAAEL,EAAE6B,QAAQJ,GAAG,CAACd,EAAEA,EAAEC,GAAGyP,QAAE,EAAOzP,GAAG,SAASgC,OAAOlC,EAAEV,EAAEC,EAAED,EAAEyB,GAAG,GAAGmB,KAAKnB,GAAG,KAAKf,MAAMe,GAAG,CAACf,EAAEV,EAAEyB,GAAG,IAAIzB,EAAE6B,IAAIqH,SAAS,OAAOlJ,EAAE6B,IAAI9B,IAAGC,EAAEyB,GAAvL0E,CAAEkK,GAAEhQ,GAAsL,YAAWO,EAAED,OAAOX,EAAEkH,GAAEjH,KAAI,IAAIH,EAAEyG,KAAK6C,GAAEpJ,EAAEoQ,IAAIzP,OAAOc,GAAGb,EAAEZ,EAAEoQ,IAAIzP,EAAEZ,GAAEqQ,IAAItO,IAAId,KAAKhB,IAAsF,YAAWK,UAAU8P,GAAE,EAAE/N,IAAE,iBAAiB,CAACwG,QAAQvI,KAAI,IAA8G,YAAWA,EAAEE,OAAOK,EAAEsG,GAAEjH,KAAI,UAAUmJ,GAAExI,EAAEwP,IAAI7P,OAAOkB,GAAGpB,IAAIO,EAAEwP,IAAI7P,EAAEK,EAAEkB,IAAIzB,GAAGO,EAAEa,GAAG,YAAWpB,EAAEK,UAAUyP,GAAE,EAAE/N,IAAE,kBAAkB/B,IAAGK,GAAmL,YAAWL,OAAOO,EAAEsG,GAAEjH,KAAI,IAAIU,EAAEwE,YAAWvE,EAAEa,GAAGpB,EAAEN,GAAEoJ,uBAAsBA,kBAAkB,SAASvG,KAAKnB,IAAIb,EAAEa,GAAGmB,GAAGjC,EAAE,GAAGiC,KAAK,CAACjC,EAAE,GAAG,aAAa,QAAG,KAAU,iBAAekG,SAAQ,SAASnG,MAAMA,EAAEoC,UAAUsN,IAAItO,IAAI+E,QAAQzC,IAAG1D,EAAE0P,IAAItO,IAAI+E,QAAQ2B,IAAG9H,EAAE0P,IAAItO,IAAI,SAASvB,KAAK6P,IAAItO,IAAI,GAAGhC,EAAE6B,IAAIpB,EAAEG,EAAEsB,SAAQhC,GAAE,GAAGF,EAAE4B,IAAI,SAASrB,MAAK,KAAK0C,IAAGA,GAAE1C,IAAIP,EAAE2C,IAAI,SAASpC,OAAMF,GAAEE,GAAGJ,GAAE,MAAMW,MAAKP,EAAEwB,KAAKuO,UAAUtO,IAAI+E,QAAQzC,IAAGxD,EAAEkB,IAAI+E,QAAQ2B,IAAG5H,EAAEkB,IAAI,KAAKhC,EAAE2I,OAAO,SAAS/H,OAAMN,GAAEM,OAAOC,EAAED,EAAEmB,OAAOlB,EAAEyP,KAAKzP,EAAEyP,IAAItO,IAAIf,SAAS,IAAIf,GAAEgB,KAAKL,IAAIT,KAAIJ,EAAEwQ,4BAA2BxQ,EAAEwQ,wBAAwB,SAASjQ,OAAOkQ,EAAEhQ,EAAE,wBAAwBK,GAAG4B,IAAGgO,qBAAqBD,GAAG7G,WAAWrJ,IAAIO,EAAE8I,WAAWnJ,EAAE,YAAW+P,sBAAsB/P,MAAM8D,KAAItE,QAAE,GAAQD,EAAE+B,IAAI,SAASnB,EAAEH,KAAKsC,MAAK,SAAS0N,SAASzO,IAAI+E,QAAQzC,IAAGmM,EAAEzO,IAAIyO,EAAEzO,IAAIiN,QAAO,SAAS1O,UAAUA,EAAEoB,IAAI+G,GAAEnI,YAAWO,KAAKiC,MAAK,SAASxC,KAAKyB,QAAQA,IAAI,OAAMvB,EAAE,GAAGT,EAAE6B,IAAIf,EAAE2P,EAAEvO,SAAQgH,IAAGA,GAAEtI,EAAEH,IAAIT,EAAE+I,QAAQ,SAASnI,OAAMS,GAAET,OAAOH,EAAEG,EAAEmB,OAAOtB,GAAGA,EAAE6P,UAAUA,IAAI3O,GAAGoF,QAAQzC,UAASmM,KAAK5O,IAAI4O,EAAEhQ,EAAEyB,OAAO,IAAIQ,GAAE,mBAAmB8N,sBAAsB,YAAWjQ,OAAOK,EAAEX,GAAE,mBAAmBM,EAAEwB,KAAKxB,EAAEwB,MAAM9B,GAAEW,EAAE,YAAWL,OAAOK,EAAEX,KAAI8B,IAAIxB,EAAEoB,KAAK1B,GAAEW,EAAE,YAAWL,EAAEK,UAAUL,GAAGA,EAAEU,SAASL,EAAEK,QAAQL,EAAEmC,MAAK,SAAS0N,EAAEhQ,UAAUgQ,IAAIlQ,EAAEE,MAAK,YAAWF,EAAEK,SAAS,mBAAmBA,EAAEA,EAAEL,GAAGK,0KCC/1EuN,OAAOwC,eAAeC,GAAS,aAAc,CAAEpM,OAAO,8CACI,kBAC1D,SAAsBqM,EAAOC,UAClBA,EAAaC,QAAO,CAACvF,EAAMlI,IACpB,QAANA,EACOkI,EAAKwF,MAGLxF,EAAKtK,KAAKoC,EAAEpC,OAExB2P,IAMP,SAKII,YAAYC,EAAUC,QACbD,SAAWA,MAAAA,EAA2CA,EAAW,QACjEC,WAAaA,MAAAA,EAA+CA,EAAa,GAKlFF,cACW7O,KAAK8O,SAAS9O,KAAK8O,SAASjQ,OAAS,GAKhDgQ,MAAMJ,EAAOO,UACF,IAAIC,GAAKjP,KAAK8O,SAAS9L,MAAMyL,EAAOO,GAAMhP,KAAK+O,YAK1DF,eACW,IAAII,GAAKjP,KAAK8O,SAAS9L,MAAM,GAAIhD,KAAK+O,YAKjDF,aACW,IAAII,GAAKjP,KAAK8O,SAAS9L,MAAM,MAAQhD,KAAK+O,YAMrDF,KAAKK,UACMlP,KAAKmP,UAAUD,GAASE,YAAYF,GAM/CL,UAAUK,UACC,IAAID,GAAK,IAAIjP,KAAK8O,SAAUI,GAAU,IAAIlP,KAAK+O,aAM1DF,YAAYK,MACe,iBAAZA,SACAlP,KAAKqP,aACVC,EAAaJ,EAAQK,WAAW,cAAgBL,EAAQlM,MAAM,IAAMkM,SACnE,IAAID,GAAK,IAAIjP,KAAK8O,UAAW,IAAI9O,KAAK+O,WAAYO,IAE7DT,cACW,IAAII,GAAK,IAAIjP,KAAK8O,UAAW,IAAI9O,KAAK+O,aAEjDF,kBACW7O,KAAK8O,SAMhBD,UAAUW,UACC,IAAIC,GAAUD,EAAOxP,MAEhC6O,oBACW7O,KAAK+O,WAMhBF,OAAOa,UACIA,EAAMZ,SAASjQ,SAAWmB,KAAK8O,SAASjQ,QACxC6Q,EAAMZ,SAASa,OAAM,CAAClM,EAAG3F,IAAM2F,IAAMzD,KAAK8O,SAAShR,KAM9D+Q,WAAWa,WACH1P,KAAK8O,SAASjQ,OAAS6Q,EAAMZ,SAASjQ,SAEnC6Q,EAAMZ,SAASa,OAAM,CAAClM,EAAG3F,IAAM2F,IAAMzD,KAAK8O,SAAShR,KAM9D+Q,SAASa,SACCE,EAAS5P,KAAK8O,SAASjQ,OAAS6Q,EAAMZ,SAASjQ,eACjD+Q,EAAS,IAENF,EAAMZ,SAASa,OAAM,CAAClM,EAAG3F,IAAM2F,IAAMzD,KAAK8O,SAASc,EAAS9R,KAEvE+Q,kBACW7O,KAAK8O,SACP/F,QAAuB,iBAAN7H,EAAkB,IAAIA,IAAM,IAAIA,OACjDkH,KAAK,IACLtF,QAAQ,MAAO,IAExB+L,QAAQgB,EAAIC,UACD9P,KAAK8O,SAASnK,QAAQkL,EAAIC,YAG1Bb,GACf,iBAAwBA,GACpBJ,YAAYW,EAAOpG,SACTA,MAAAA,OAAmC,EAASA,EAAK0F,SAAU1F,MAAAA,OAAmC,EAASA,EAAK2F,iBAC7GS,MAAQA,EAEjBX,kBACW7O,KAAKwP,MAMhBX,UACQkB,SACyB,UAAhB/P,KAAKwP,aAA0B,IAAPO,OAAgB,EAASA,EAAGC,IAAIhQ,MAKzE6O,IAAIzM,OACI2N,EACkB,UAAhB/P,KAAKwP,aAA0B,IAAPO,GAAyBA,EAAGE,IAAIjQ,KAAMoC,GAKxEyM,MAAMJ,EAAOO,UACF,IAAIS,GAAUzP,KAAKwP,MAAOU,MAAMlN,MAAMyL,EAAOO,IAKxDH,eACW,IAAIY,GAAUzP,KAAKwP,MAAOU,MAAMC,SAK3CtB,aACW,IAAIY,GAAUzP,KAAKwP,MAAOU,MAAMtB,OAM3CC,KAAKK,UACMlP,KAAKmP,UAAUD,GAASE,YAAYF,GAM/CL,UAAUK,UACC,IAAIO,GAAUzP,KAAKwP,MAAOU,MAAMf,UAAUD,IAMrDL,YAAYK,UACD,IAAIO,GAAUzP,KAAKwP,MAAOU,MAAMd,YAAYF,IAEvDL,cACW,IAAIY,GAAUzP,KAAKwP,MAAOU,MAAMb,sBAG3BI,aCjMpB1D,OAAOwC,eAAe6B,GAAS,aAAc,CAAEhO,OAAO,mBACrC,EAIjB,SACIyM,mBACSwB,OAAS,GAElBxB,IAAIzF,EAAMkH,KAAUC,eACXF,OAAOvR,KAAK,CAAEsK,KAAAA,EAAMkH,MAAAA,EAAOC,OAAAA,KACzB,EAEX1B,IAAIzF,EAAMoH,GAAQ,UACPA,EAAQxQ,KAAKqQ,OAAOxD,WAAY3L,EAAEkI,KAAKqH,OAAOrH,KAC/CpJ,KAAKqQ,OAAOxD,WAAY3L,EAAEkI,KAAKmG,WAAWnG,KAEpDyF,gBACW7O,KAAKqQ,OAEhBxB,aACSwB,OAAS,GAElBxB,eACW7O,KAAKqQ,OAAOxR,SAErB6R,OAAOC,sBACMzP,KAAKlB,KAAKqQ,aACXnP,aAID0P,aC9BjB,YAAsBC,UACXA,EAAI/N,QAAQ,UAAW,QAHlCiJ,OAAOwC,eAAeuC,GAAS,aAAc,CAAE1O,OAAO,iDACO,kBAItC2O,kBACvB,SAAqBF,SACV,IAAIE,GAAaF,OAG5B,MAAMG,GAAWC,QAAeA,EAAIC,SAAS,KAAKC,oBAClD,SAAetS,EAAS,QAChBuS,EAAM,IAAIC,WAAWxS,EAAS,iBAC3ByS,OAAOC,gBAAgBH,GACvBrP,MAAMyP,KAAKJ,EAAKJ,IAAS5I,KAAK,KCdzC2D,OAAOwC,eAAekD,GAAS,aAAc,CAAErP,OAAO,sBAClC,EACpB,MAAMoM,GAASkD,GACTtB,GAAWuB,GACXC,GAAUC,GAIhB,SAIIhD,YAAYiD,EAAQC,OACZhC,EAAIiC,EAAIC,EAAIC,OACXC,WAA6F,UAA1EJ,MAAAA,OAAyC,EAASA,EAAQI,kBAA+B,IAAPpC,EAAgBA,EAAK,QAC1HqC,QAAuF,UAAvEL,MAAAA,OAAyC,EAASA,EAAQK,eAA4B,IAAPJ,GAAgBA,OAC/GK,UAA2F,UAAzEN,MAAAA,OAAyC,EAASA,EAAQM,iBAA8B,IAAPJ,GAAgBA,OACnHK,OAASR,QACRrM,EAAwF,UAA3EsM,MAAAA,OAAyC,EAASA,EAAQQ,mBAAgC,IAAPL,EAAgBA,EAAKJ,EAAO9I,eAC7HvD,KAAOzF,KAAKqS,UAAYG,GAAUH,UAAU5M,GAAQA,OACpDgN,UAAY,QACZpC,OAAS,IAAID,GAASQ,YACtB1G,QAAU,CAACwI,KAAKC,UAAU3S,KAAKyF,YAC/BmN,aAAe,EAMxB/D,YAAYgE,QACHJ,UAAU3T,KAAK+T,GAMxBhE,eAAegE,SACL1J,EAAQnJ,KAAKyS,UAAUtS,QAAQ0S,GACjC1J,WACKsJ,UAAU9F,OAAOxD,EAAO,GAOrC0F,mBACUiE,EAAaJ,KAAKC,UAAU3S,KAAKyF,MACnCzF,KAAKkK,QAAQlK,KAAK4S,gBAAkBE,SAC/BF,cAAgB,OAChB1I,QAAQyC,OAAO3M,KAAK4S,aAAc5S,KAAKmS,WAAYW,GACpD9S,KAAKkK,QAAQrL,OAASmB,KAAKmS,kBACtBjI,QAAQyC,OAAO,EAAG,QAClBiG,cAAgB,SAGxBG,mBAKTlE,wBACS4D,UAAU9N,aACPvG,EAAE4U,eACAA,YAAYhT,MACd5B,EAAEiS,UACAA,OAAOrQ,KAAKqQ,WAO1BxB,MAAMzM,EAAO6Q,QACJxN,KAAOrD,OACP8Q,SAASD,QACTE,aAOTtE,IAAIzF,OACIiB,EAAOrK,KAAKyF,cACXd,qBACY,IAAT0F,SACOA,IACPrK,KAAKqS,WAA0B,iBAANnR,EAClBmJ,EAAKnJ,GAAGmJ,KAGRA,EAAKnJ,MAGbmJ,EAOXwE,IAAIzF,EAAMhH,EAAOgR,MACkB,IAA3BhK,EAAKiK,WAAWxU,wBACXyU,MAAMlR,GAAO,OAGlBiI,EAAOrK,KAAKyF,OACXmJ,MAAMjK,kBACS,IAAZ0F,EAAKnJ,IAAuC,iBAAZmJ,EAAKnJ,IAAsC,iBAAZmJ,EAAKnJ,KAChElB,KAAKqS,WAA0B,iBAANnR,IACpBA,GAAK,CAAEmJ,KAAM,GAAIkJ,GAAI3B,GAAQ4B,WAG7BtS,GAAK,MAGdlB,KAAKqS,WAA0B,iBAANnR,EAClBmJ,EAAKnJ,GAAGmJ,KAGRA,EAAKnJ,MAGP,OAATmJ,SAEU,IAAVjI,GAAyC,iBAAVA,GAAsBqR,MAAMrR,GAChC,iBAAhBgH,EAAKsK,SACP/G,OAAOvD,EAAKsK,OAAQ,UAGlBrJ,EAAKjB,EAAKsK,QAGhB1T,KAAKqS,WAAoC,iBAAhBjJ,EAAKsK,SAC9BtK,EAAKsK,QAAU,CAAErJ,KAAMjI,EAAOmR,GAAI3B,GAAQ4B,WAG1CpK,EAAKsK,QAAUtR,EAEpBgR,IAEApT,KAAKoS,iBACGuB,IAAI,MAAOvK,EAAK8H,WAAYwB,KAAKC,UAAUvQ,SAElD8Q,UAAS,QACTC,eAKTtE,OACQ7O,KAAK4S,aAAe,SACfA,cAAgB,OAChBnN,KAAOiN,KAAKkB,MAAM5T,KAAKkK,QAAQlK,KAAK4S,oBACpCM,UAAS,QACTH,oBAMblE,OACQ7O,KAAK4S,aAAe5S,KAAKkK,QAAQrL,OAAS,SACrC+T,cAAgB,OAChBnN,KAAOiN,KAAKkB,MAAM5T,KAAKkK,QAAQlK,KAAK4S,oBACpCM,UAAS,QACTH,oBAMblE,SAASoE,OACDlD,QACE3G,GAAO,IAAIoF,GAAOS,MAAO4E,UAAU7T,WACpCqQ,OAAOyD,aACPrO,KAA2G,UAA9FzF,KAAKsS,OAAOY,SAAS9J,EAAMpJ,KAAKyF,KAAMzF,KAAKqQ,OAAQ,CAAE4C,MAAAA,EAAOZ,UAAWrS,KAAKqS,mBAAiC,IAAPtC,EAAgBA,EAAK,GAEjJlB,MAAMzF,EAAMkH,KAAUC,SACZwD,EAAa,IAAI3D,GAASQ,SACrBoD,IAAI5K,EAAMkH,EAAOC,QACvBkC,UAAU9N,aACPvG,EAAEiS,UACAA,OAAO0D,uBAGJ3R,MACTL,MAAMC,QAAQI,GAAQ,OAChB6R,EAAM7R,EAAM2G,SAAU,CACxBsB,KAAMrK,KAAKqS,UAAU5O,GACrB8P,GAAI3B,GAAQ4B,sBAELnS,KAAK0K,OAAOmI,sBAAsB9R,KACrCf,GAAKe,EAAMf,UAEZ4S,KAEe,iBAAV7R,GAAgC,OAAVA,EAAgB,OAC5C6R,EAAM,UACLE,QAAQ/R,GAAO2G,KAAI,EAAEtH,EAAGgC,QACvBhC,GAAKzB,KAAKqS,UAAU5O,gBAEjBpC,KAAK0K,OAAOmI,sBAAsB9R,KACrCf,GAAKe,EAAMf,UAEZ4S,SAGA7R,qBAGIA,MACXL,MAAMC,QAAQI,GAAQ,OAChB6R,EAAM7R,EAAM2G,QAAS/I,KAAKoU,YAAY3Q,EAAE4G,kBACnChJ,KAAK0K,OAAOmI,sBAAsB9R,KACrCf,GAAKe,EAAMf,UAEZ4S,KAEe,iBAAV7R,GAAgC,OAAVA,EAAgB,OAC5C6R,EAAM,UACLE,QAAQ/R,GAAO2G,KAAI,EAAEtH,EAAGgC,QACvBhC,GAAKzB,KAAKoU,YAAY3Q,gBAEnBpC,KAAK0K,OAAOmI,sBAAsB9R,KACrCf,GAAKe,EAAMf,UAEZ4S,SAGA7R,gBAICoQ,6BC3ObjE,kBAAwB,aAAc,CAAEnM,OAAO,YACvCiS,OAAcA,OAAcA,OAAcA,aAAe,UACxD,CACZnV,KAAM,IAAM,OACZoV,SAAU,OACVtL,QAAS,OACTuL,QAAS,KAAM,EACfC,KAAM,KAAM,EACZC,SAAU,KAAM,EAChB5F,kBAAoB7O,MACpB0U,SAAWnT,GAAMA,EACjBoT,QAAS,IAAM,GACfzB,SAAU,CAAC1R,EAAGiC,IAAMA,EACpBmR,iBAAkB,OAClB/F,KAAKgG,EAAMzL,KAAS0L,UAAeD,EAAKzU,KAAK,CAAEiK,KAAMrK,MAAQoJ,KAAS0L,IACtEC,UAAW,KAAM,EACjBC,OAAQ,IAAM,WAEJ,CAAC3K,EAAM4K,IAAUC,OACxB7K,GAA0B,mBAAT4K,EAAsBA,EAAK5K,GAAQ4K,UAE7C,CAAC7V,EAAKiL,IAASgK,GAAQc,IAAI9K,EAAM,CAC3CkK,QAAUhT,QAA4B,IAAtBA,EAAEzC,KAAKM,GAAK4Q,wBAEnB3F,UACF+K,OACA/K,GADA,CAEHoK,SAAU,KAAM,sBAIVpK,UACH+K,OACA/K,GADA,CAEHmK,KAAM,KAAM,eClCpBzI,OAAOwC,eAAe8G,GAAS,aAAc,CAAEjT,OAAO,wBAChC,EACtB,MAAMqP,GAAcC,GACd4D,GAAS3D,kBAIO,IACXyD,OACAE,GAAOC,MADP,CAEHrW,KAAM,IAAM,UACZ8J,QAAS,KAAM,EACf2L,QAAS,IAAM,CAAC,QAAS,QACzB9F,SAASzF,EAAMhH,EAAOiO,EAAQ0B,UACtBA,EAAQkB,OAA0B,kBAAV7Q,MAChB2P,EAAQM,UAAYZ,GAAYe,UAAUH,UAAUrS,KAAKgJ,WAAahJ,KAAKgJ,WAElE,kBAAV5G,QAAiC,IAAVA,KACvB4R,IAAI5K,EAAM,0BAEdhH,GAEXyM,KAAKgG,EAAMzL,KAAS0L,OACZ/E,SAC4B,UAAlB8E,EAAKW,eAA4B,IAAPzF,EAAgBA,EAAK8E,EAAKzU,MAAMsF,KAAKmP,EAAM,CAAExK,KAAMrK,MAAQoJ,KAAS0L,sBCxBxH/I,OAAOwC,eAAekH,GAAS,aAAc,CAAErT,OAAO,qBACnC,EACnB,MAAMqP,GAAcC,GACd4D,GAAS3D,eACI,CAAC5S,EAAU2W,SACtB3F,EAAIiC,QACF2D,EAAkF,UAAtED,MAAAA,OAAuC,EAASA,EAAOE,iBAA8B,IAAP7F,EAAgBA,EAAK,EAC/GzH,EAAkF,UAAtEoN,MAAAA,OAAuC,EAASA,EAAOG,iBAA8B,IAAP7D,EAAgBA,EAAK8D,EAAAA,EAC/GC,gBAAkD,EAASL,EAAOE,0BAAsD,EAASF,EAAOG,kBACtIT,OACDE,GAAOC,MADN,CAEJrW,KAAM,IAAM,OACZ8J,QAAS,kBAA8C,EAAS0M,EAAOE,WAAa,IAAI7T,MAAM4T,IAAM5M,QAAShK,EAASiK,YAAa,GACnI6F,SAASzF,EAAMD,SACL6M,EAAY7M,EAAQ,SACLC,EAAKiK,WACTxU,QAAUmX,EAChBhW,KAEJjB,EAASkX,SAAS7M,EAAM4M,IAEnCtB,UAAStL,EAAMD,IACJC,EAAKtK,KAAKoX,SAAS/M,EAAM+H,aAAa9B,YAAY,SAE7DP,SAASzF,EAAMhH,EAAOiO,EAAQ0B,MACtBA,EAAQkB,QAAUlR,MAAMC,QAAQI,OACxB2P,EAAQM,UAAYZ,GAAYe,UAAUH,UAAUrS,KAAKgJ,WAAahJ,KAAKgJ,YAElFjH,MAAMC,QAAQI,YACR4R,IAAI5K,EAAM,uBACVhH,EAEF2T,MAAkBlX,OAAS8W,GAAOvT,EAAMvD,OAASyJ,GAClDqN,IAAQrN,IACD0L,IAAI5K,EAAM,iCAAkChH,EAAMvD,OAAQ8W,KAG1D3B,IAAI5K,EAAM,mCAAoChH,EAAMvD,OAAQ8W,EAAKrN,GAGvElG,EAAMvD,OAAS8W,IACb3B,IAAI5K,EAAM,mCAAoChH,EAAMvD,OAAQ8W,GAE9DvT,EAAMvD,OAASyJ,KACb0L,IAAI5K,EAAM,kCAAmChH,EAAMvD,OAAQyJ,SAEhE2L,EAAM7R,EAAM2G,KAAI,CAACrB,EAAKyB,WAClBgN,EAASpX,EAASmU,SAAS9J,EAAKtK,KAAKqK,GAAQ4I,EAAQM,UAAY3K,EAAI2C,KAAO3C,EAAK2I,EAAQ0B,UACxFA,EAAQM,UAAY,CAAEhI,KAAM8L,EAAQ5C,GAAI7L,EAAI6L,IAAO4C,eAEnD9U,KAAK0K,OAAOmI,sBAAsB9R,KACrCf,GAAKe,EAAMf,UAEZ4S,GAEXpF,KAAKgG,EAAMzL,KAAS0L,OACZsB,SACyB,UAAfvB,EAAKwB,YAAyB,IAAPD,EAAgBA,EAAKvB,EAAKzU,MAAMsF,KAAKmP,EAAM,CAAExK,KAAMrK,KAAMjB,SAAAA,EAAU2W,OAAQA,MAAAA,EAAuCA,EAAS,IAAMtM,KAAS0L,iBCzD3L/I,OAAOwC,eAAe+H,GAAS,aAAc,CAAElU,OAAO,uBACjC,EACrB,MAAMkT,GAAS5D,iBAIO6E,GACXnB,OACAE,GAAOC,MADP,CAEH1G,KAAKzF,UACMpJ,KAAKwW,WAAWpN,GAAM,GACxBiB,KAAKnL,KAAKkK,IAEnByF,SAASzF,UACEpJ,KAAKwW,WAAWpN,GAAM,GACxBiB,KAAKiK,SAASlL,IAEvBJ,QAAS,IAAMuN,EAAM,GAAGlM,KAAKrB,UAC7B6F,SAASzF,EAAMD,OACP4G,QACEiG,EAAY7M,EAAQ,SACkC,UAA/CnJ,KAAKwW,WAAWpN,EAAKpG,MAAM,EAAGgT,WAAgC,IAAPjG,OAAgB,EAASA,EAAG1F,KAAK4L,SAAS7M,EAAMD,IAExH0F,SAASzF,EAAMhK,OACP2Q,EAAIiC,SACwG,UAAlE,UAA3BhS,KAAKwW,WAAWpN,UAA0B,IAAP2G,OAAgB,EAASA,EAAG1F,KAAKqK,SAAStL,EAAMhK,UAAyB,IAAP4S,EAAgBA,EAAK5I,GAEjJyF,QAAQzF,EAAMhH,OACN2N,EAAIiC,SACyG,UAAnE,UAA3BhS,KAAKwW,WAAWpN,UAA0B,IAAP2G,OAAgB,EAASA,EAAG1F,KAAKsK,QAAQvL,EAAMhH,UAA2B,IAAP4P,EAAgBA,EAAKuE,EACzI1J,WAAY1L,EAAE6G,MAAMoB,KACpBL,QAAS5H,EAAEkJ,KAAKsK,QAAQvL,EAAMhH,KAC9BuM,QAAO,CAACpN,EAAGJ,IAAMI,EAAEkV,OAAOtV,MAEnC0N,SAASzF,EAAMhH,EAAOiO,EAAQ0B,OACtB5Q,EAAInB,KAAKwW,WAAWpN,eACd,IAANjI,EACOiB,EAEJjB,EAAEkJ,KAAK6I,SAAS9J,EAAMhH,EAAOiO,EAAQ0B,IAEhDlD,iBAAiBzF,OACT2G,SACoC,UAA3B/P,KAAKwW,WAAWpN,UAA0B,IAAP2G,OAAgB,EAASA,EAAG1F,KAAKuK,iBAAiBxL,IAEtGyF,WAAWzF,EAAMsN,SACPC,EAAS,CAACtV,EAAGK,SAAYqO,EAAIiC,SAAkC,UAAhBtQ,EAAEkV,gBAA6B,IAAP7G,EAAgBA,EAAK,IAA4B,UAAhB1O,EAAEuV,gBAA6B,IAAP5E,EAAgBA,EAAK,IACrJ6E,EAAeN,EAAM1J,WAAY1L,EAAE6G,MAAMoB,KAAO3I,KAAKkW,UACvDD,GAAoC,IAAxBG,EAAahY,OAClB0X,EAAM9V,KAAKkW,GAAQ,GAEtBE,EAAahY,OAAS,EAAIgY,EAAa,QAAK,GAExDhI,KAAKgG,EAAMzL,KAAS0L,UACT9U,KAAKwW,WAAWpN,GAAM,GACxBiB,KAAKwK,KAAKA,EAAMzL,KAAS0L,yBCvDnCvG,iBAAwB,aAAc,CAAEnM,OAAO,qBAC7BiS,eAAuBA,eAAuBA,kBAAqB,QACtFyC,EAAapF,GACbqF,EAAepF,gBAIA,CAACqF,EAAStB,WAWrBuB,EAAaF,EAAaT,WAAWU,EAAQjO,SAAU,CACzD7J,KAAMiC,EAAEjC,KACR0X,SAAUzV,EAAEyV,SACZ5O,MAAQoB,GAbI,EAAC8N,EAAQ9U,QACjB8U,EAAOlP,aACAkP,EAAOlP,MAAM5F,UAEhB8U,EAAOhY,UACN,cAAe6C,MAAMC,QAAQI,OAC7B,eAAkC,iBAAVA,IAAuBL,MAAMC,QAAQI,yBAC3CA,IAAU8U,EAAOhY,OAM3BiY,CAAQhW,EAAGiI,EAAK4G,OACjC3F,KAAMlJ,EAAEkJ,iBAEL+K,OACA6B,GADA,CAEHpI,SAASzF,EAAMhH,EAAOiO,EAAQ0B,OACtBmF,EAASD,EAAWT,WAAWpN,GAAM,UACrC8N,EAAO7M,KAAKoK,WACLrS,EAEJ8U,EAAO7M,KAAK6I,SAAS9J,EAAMhH,EAAOiO,EAAQ0B,IAErDlD,KAAKgG,EAAMzL,KAAS0L,OACZ/E,SAC2B,UAAjB8E,EAAKqC,cAA2B,IAAPnH,EAAgBA,EAAK8E,EAAKzU,MAAMsF,KAAKmP,EAAM,CAAExK,KAAMrK,KAAMgX,QAAAA,EAAStB,OAAQA,MAAAA,EAAuCA,EAAS,GAAIuB,WAAAA,GAAc7N,KAAS0L,aAIlMsC,EAAWxT,GAAO,CAACyG,EAAMqL,IACpBrB,EAAQgD,WAAW,CACtB,CACInY,KAAM0E,EACNyG,KAAAA,EACAiN,eAAmBvH,SAA2B,UAAVtM,EAAE,UAAuB,IAAPsM,EAAgBA,EAAK1F,EAAKrB,YAEpF,CACI9J,KAAM,OACNmL,KAAMyM,EAAWrB,SAASpL,GAC1BiN,UAAa7T,EAAI,CAACA,GAAK,KAE5BiS,kBAEgB0B,EAAQ,yBACRA,EAAQ,2BACN,CAACG,EAAYC,EAAYC,IACvCpD,EAAQgD,WAAW,CACtB,CACInY,KAAM,SACN0X,SAAU,EACVvM,KAAMkN,EACND,UAAavL,OAAO2L,KAAKD,GAAS,IAEtC,CACIvY,KAAM,SACNmL,KAAMmN,EACNF,eAAmBvH,SAAiC,UAAhB0H,EAAQhU,UAAuB,IAAPsM,EAAgBA,EAAK0H,EAAQ1L,OAAO2L,KAAKD,GAAS,uBClE1H1L,OAAOwC,eAAeoJ,GAAS,aAAc,CAAEvV,OAAO,oBACpC,EAClB,MAAMkT,GAAS5D,GACTD,GAAcE,cAIF,CAAC+F,EAAM3Y,EAAU2W,IACxBN,OACAE,GAAOC,MADP,CAEHrW,KAAM,IAAM,MACZ8J,QAAS,KAAO,IAChB6F,SAASzF,EAAMD,SACL6M,EAAY7M,EAAQ,SACLC,EAAKiK,WACTxU,QAAUmX,EAChBhW,KAEJjB,EAASkX,SAAS7M,EAAM4M,IAEnCtB,UAAStL,EAAMhK,IACJgK,EAAK+F,UAAU/P,GAE1BuV,QAAUvL,GAASsO,EAAK/C,QAAQvL,EAAM,IACtCyF,SAASzF,EAAMhH,EAAOiO,EAAQ0B,MACtBA,EAAQkB,OAA0B,iBAAV7Q,MAChB2P,EAAQM,UAAYZ,GAAYe,UAAUH,UAAUrS,KAAKgJ,WAAahJ,KAAKgJ,WAEzE,OAAV5G,GAAmC,iBAAVA,WAClB4R,IAAI5K,EAAM,yBACVhH,QAEL6R,EAAM,UACLyD,KAAKtV,GAAOuC,eACVuO,SAAS9J,EAAM3H,EAAG4O,EAAQ0B,KAC3BtQ,GAAK1C,EAASmU,SAAS9J,EAAKtK,KAAK2C,GAAIW,EAAMX,GAAI4O,EAAQ0B,gBAEpD1Q,KAAK0K,OAAOmI,sBAAsB9R,KACrCf,GAAKe,EAAMf,UAEZ4S,GAEXpF,iBAAiBzF,OACT2G,SACgF,UAAvE2F,MAAAA,OAAuC,EAASA,EAAOkC,kBAA+B,IAAP7H,EAAgBA,EAAK2H,EAAK9C,iBAAiBxL,EAAKtK,KAAK,MAErJ+P,KAAKgG,EAAMzL,KAAS0L,OACZ/E,SACwB,UAAd8E,EAAK9L,WAAwB,IAAPgH,EAAgBA,EAAK8E,EAAKzU,MAAMsF,KAAKmP,EAAM,CAAExK,KAAMrK,KAAM0X,KAAAA,EAAM3Y,SAAAA,EAAU2W,OAAQA,MAAAA,EAAuCA,EAAS,IAAMtM,KAAS0L,oCChDzLvG,iBAAwB,aAAc,CAAEnM,OAAO,iBACjCiS,kBAAqB,QACpCwD,EAAMnG,GACNoG,EAAcnG,GACdoG,EAASlG,gBACO6D,QACd3F,EAAIiC,EAAIC,QACN+F,kBAAkD,EAAStC,EAAOuC,QAA0F,UAApEvC,MAAAA,OAAuC,EAASA,EAAOsC,eAA4B,IAAPjI,GAAgBA,EACpL4F,gBAA8C,EAASD,EAAOuC,OAAS,EAA0E,UAAhEvC,MAAAA,OAAuC,EAASA,EAAOC,WAAwB,IAAP3D,EAAgBA,OACzK1J,gBAA8C,EAASoN,EAAOuC,OAAS,SAAiF,UAAhEvC,MAAAA,OAAuC,EAASA,EAAOpN,WAAwB,IAAP2J,EAAgBA,EAAK6D,EAAAA,EACrLC,OAA2E,kBAAzB,EAASL,EAAOC,WAAuF,kBAAzB,EAASD,EAAOpN,YAC/I8M,OACA2C,EAAOxC,MADP,CAEHrW,KAAM,IAAM,SACZ8J,QAAS,IAAM2M,EAAM,EAAIA,EAAM,EAC/B9G,SAASzF,EAAMhH,EAAOiO,EAAQ0B,UACtBA,EAAQkB,OAA0B,iBAAV7Q,MAChB2P,EAAQM,UAAYyF,EAAYtF,UAAUH,UAAUrS,KAAKgJ,WAAahJ,KAAKgJ,WAElE,iBAAV5G,IACA4R,IAAI5K,EAAM,yBAEZ4O,IAAYE,OAAOC,UAAU/V,KAC3B4R,IAAI5K,EAAM,0BAEZ2M,MAAoBJ,GAAOvT,EAAQkG,KACjC0L,IAAI5K,EAAM,qCAAsChH,EAAOuT,EAAKrN,GAE9DlG,EAAQuT,IACN3B,IAAI5K,EAAM,qCAAsChH,EAAOuT,GAEzDvT,EAAQkG,KACN0L,IAAI5K,EAAM,oCAAqChH,EAAOkG,GAE1DlG,GAEXyM,KAAKgG,EAAMzL,KAAS0L,OACZsB,SAC2B,UAAjBvB,EAAKuD,cAA2B,IAAPhC,EAAgBA,EAAKvB,EAAKzU,MAAMsF,KAAKmP,EAAM,CAAExK,KAAMrK,KAAMgY,QAAAA,EAASrC,IAAAA,EAAKrN,IAAAA,EAAKyN,QAAAA,EAASL,OAAQA,MAAAA,EAAuCA,EAAS,IAAMtM,KAAS0L,oBAI1L,EAAGkD,QAAAA,EAASK,OAAAA,KAAaR,EAAI1C,IAAId,EAAQiE,WAAW,CAAEN,QAAAA,SAAqB,CAC5F9E,SAAU,CAAC9J,EAAMhH,EAAOiO,EAAQ0B,OACpB1H,EAAK6I,SAAS9J,EAAMhH,EAAOiO,EAAQ0B,GACtCsG,EAAOE,SAASnW,MACV4R,IAAI5K,EAAM,4BAA6BiP,EAAOjQ,KAAK,OAEvDhG,0CChDRmM,iBAAwB,aAAc,CAAEnM,OAAO,iBACjCiS,OAAeA,cAAiB,QAC/C0D,EAASrG,GACT8G,EAAS7G,GACT8G,EAAW5G,GACX6G,EAAUC,GACVb,EAAcc,YACHlI,OAAO,iBACTA,OAAO,qBACD,CAACmI,EAAQnD,mBACoDzD,UAA7D6G,QAASjM,GAASmF,IAAQ+G,MAAOxC,GAA4BtE,EAAlB+G,gKAAkB/G,EAAlB,CAAnDgH,KAA0BA,OAC7BC,EAAmB9P,YACN,IAAXyD,SACOmM,QACLG,EAAcX,EAAOY,aAAahQ,EAAMyD,GAAQmD,MAChDwG,EAAaD,EAAM4C,UAClBjE,OAAK8D,GAAkBxC,IAE5B6C,EAAoB,CAACjQ,EAAMkQ,SACzBlD,QACE+C,EAActM,EAAS2L,EAAOY,aAAahQ,EAAMyD,GAAQmD,WAAQ,EACjEuJ,EAAa1M,GAAwC,UAAxB0J,EAAM4C,UAAiC,IAAP/C,EAAgBA,EAAW,GACxFoD,EAAWzN,OAAO2L,KAAK6B,GACvBE,gBAA0D,EAAS/D,EAAOzV,SAC5E,IAAIuY,EAAO/I,UAAUrG,EAAKsQ,WAAY,IAAIlB,EAAOvJ,KAAK7F,EAAKiK,WAAY,CAACqC,EAAOzV,WAAamJ,wBAChC,EAASsM,EAAOiE,uBAAyBR,GAAeK,EAASjB,SAASe,GACtIG,EAAgBrK,YAAY+J,GAAeM,GACzB3a,KAAKwa,WAEvBlE,OACD2C,EAAOxC,MADN,CAEJrW,KAAM,IAAM,SACZoV,SAAU,IAAMoB,MAAAA,OAAuC,EAASA,EAAOpB,SACvEtL,QAAS,KAAO,IAChB6F,cACW7O,KAAKyU,YAEhB5F,SAASzF,EAAMD,SACL6M,EAAY7M,EAAQ,EACpByQ,EAAexQ,EAAKiK,cACtBuG,EAAa/a,QAAUmX,SAChBhW,WAGLqK,EADe6O,EAAgB9P,EAAKpG,MAAM,EAAGgT,IACzB4D,EAAa5D,WAChC3L,MAAAA,OAAmC,EAASA,EAAK4L,SAAS7M,EAAM4M,IAE3EtB,UAAStL,EAAMhK,IACJia,EAAkBjQ,EAAMhK,EAAI8R,YAEvCrC,QAAQzF,EAAMhH,SACJyX,EAAeX,EAAgB9P,GAC/B0Q,EAAe/N,OAAO2L,KAAsB,iBAAVtV,EAAqBA,EAAQ,WAC9D2J,OAAO2L,KAAKmC,GACdhN,WAAYgN,EAAapY,GAAG8S,QAAQnL,KACpCyD,YAAaiN,EAAavB,SAAS9W,KACnCsH,IAAI2P,EAAQqB,cAErBlL,SAASzF,EAAMhH,EAAOiO,EAAQ0B,MACtBA,EAAQkB,OAA0B,iBAAV7Q,MAChB2P,EAAQM,UAAYyF,EAAYtF,UAAUH,UAAUrS,KAAKgJ,WAAahJ,KAAKgJ,WAElE,iBAAV5G,GAAgC,OAAVA,WACtB4R,IAAI5K,EAAM,yBACVhH,MAEPyX,EAAeb,KACfnM,EAAQ,OACFmN,EAAaxB,EAAOY,aAAahQ,EAAMyD,OACzCsM,EAAca,EAAWhK,SACzB5G,EAAKqH,OAAOuJ,EAAWpL,OAAQ,OACzBqL,EAAcD,EAAWtG,SACjBsF,EAAciB,GAAa/G,SAAS9J,EAAKtK,KAAKmb,GAAc7X,EAAM6X,GAAc,IAAIxB,EAAS7H,OAAUmB,KAE1GmD,OAAK2E,GAAiBtD,EAAM4C,UAEzCe,EAAanO,OAAO2L,KAAKmC,GACzBM,EAAaD,EAAWrN,YAAagN,EAAapY,GAAGgT,aACrDiD,EAAO,IAAI0C,IAAI,IAAID,KAAepO,OAAO2L,KAAKtV,KAC9C6R,EAAM,KACPtP,gBACGuV,EAAW3B,SAAS9W,GAAI,KACnBoY,EAAapY,GAAG8S,QAAQnL,gBAEvBiR,EAAWR,EAAapY,GAAGyR,SAAS9J,EAAKtK,KAAK2C,GAAIW,EAAMX,GAAI4O,EAAQ0B,IACrE8H,EAAapY,GAAG+S,QAAUqF,EAAapY,GAAGgT,kBAC1B,OACT1S,MAAMC,QAAQqY,IAAiC,IAApBA,EAASxb,QACpCwb,EAASxa,cAAgBkM,QAA2C,IAAjCA,OAAO2L,KAAK2C,GAAUxb,eAC1DoV,EAAIxS,MAGPA,GAAK4Y,IACJX,WAAWzJ,IAAI7G,EAAKtK,KAAK2C,GAAI4Y,GAAU,WAI5C5Y,GAAKW,EAAMX,gBAGZJ,KAAK0K,OAAOmI,sBAAsB9R,KACrCf,GAAKe,EAAMf,UAEZ4S,GAEXpF,KAAKgG,EAAMzL,KAAS0L,OACZsB,SAC2B,UAAjBvB,EAAKyF,cAA2B,IAAPlE,EAAgBA,EAAKvB,EAAKzU,MAAMsF,KAAKmP,EAAM,CAAExK,KAAMrK,KAAM6Y,OAAQG,EAAetD,OAAQA,MAAAA,EAAuCA,EAAS,GAAI7I,OAAAA,EAAQ0J,MAAAA,EAAO2C,gBAAAA,EAAiBG,kBAAAA,GAAqBjQ,KAAS0L,sBC3G7P/I,OAAOwC,eAAegM,GAAS,aAAc,CAAEnY,OAAO,sBAClC,eACA,CAACoY,EAAS1I,KAAY,CACtCjD,KAAKzF,UACMoR,EAAQxK,IAAI8B,GAAQ5S,KAAKoI,KAAKtH,KAA9Bwa,CAAoCpR,IAE/CyF,SAASzF,UACEoR,EAAQxK,IAAI8B,GAAQwC,SAAShN,KAAKtH,KAAlCwa,CAAwCpR,IAEnDyF,iBACW2L,EAAQxK,IAAI8B,GAAQ9I,QAAQ1B,KAAKtH,KAAjCwa,IAEXC,WAAUrR,EAAMhH,IACLoY,EAAQxK,IAAI8B,GAAQ2I,UAAUrR,EAAMhH,GAE/CyM,QAAQzF,UACGoR,EAAQxK,IAAI8B,GAAQyC,QAAQjN,KAAKtH,KAAjCwa,CAAuCpR,IAElDyF,cACW2L,EAAQxK,IAAI8B,GAAQ0C,KAAKlN,KAAKtH,KAA9Bwa,IAEX3L,kBACW2L,EAAQxK,IAAI8B,GAAQ2C,SAASnN,KAAKtH,KAAlCwa,IAEX3L,SAASzF,EAAMD,UACJqR,EAAQxK,IAAI8B,GAAQmE,SAAS3O,KAAKtH,KAAlCwa,CAAwCpR,EAAMD,IAEzD0F,SAASzF,EAAMhK,UACJob,EAAQxK,IAAI8B,GAAQ4C,SAASpN,KAAKtH,KAAlCwa,CAAwCpR,EAAMhK,IAEzDyP,QAAQzF,EAAMhH,UACHoY,EAAQxK,IAAI8B,GAAQ6C,QAAQrN,KAAKtH,KAAjCwa,CAAuCpR,EAAMhH,IAExDyM,SAASzF,EAAMhH,EAAOiO,EAAQ0B,UACnByI,EAAQxK,IAAI8B,GAAQoB,SAAS5L,KAAKtH,KAAlCwa,CAAwCpR,EAAMhH,EAAOiO,EAAQ0B,IAExElD,iBAAiBzF,UACNoR,EAAQxK,IAAI8B,GAAQ8C,iBAAiBtN,KAAKtH,KAA1Cwa,CAAgDpR,IAE3DyF,KAAKgG,EAAMzL,KAAS0L,UACT0F,EAAQxK,IAAI8B,GAAQ+C,KAAKvN,KAAKtH,KAA9Bwa,CAAoC3F,EAAMzL,KAAS0L,IAE9DjG,WAAWzF,EAAMsN,UACN8D,EAAQxK,IAAI8B,GAAQ0E,WAAWlP,KAAKtH,KAApCwa,CAA0CpR,EAAMsN,IAE3D7H,UAAUzF,EAAMhH,UACLoY,EAAQxK,IAAI8B,GAAQiD,UAAUzN,KAAKtH,KAAnCwa,CAAyCpR,EAAMhH,IAE1DyM,OAAOzF,EAAMhH,UACFoY,EAAQxK,IAAI8B,GAAQkD,OAAO1N,KAAKtH,KAAhCwa,CAAsCpR,EAAMhH,gBCjD3D2J,OAAOwC,eAAemM,GAAS,aAAc,CAAEtY,OAAO,uBACjC,EACrB,MAAMkT,GAAS5D,GACTE,GAAUD,GACVF,GAAcI,GACd8I,GAAUvY,QACR2N,WACuB,UAAX3N,SAA0B,IAAP2N,OAAgB,EAASA,EAAG6K,OAE7DC,GAAezY,QACb2N,WACuB,UAAX3N,SAA0B,IAAP2N,OAAgB,EAASA,EAAG+K,0BAK9C,CAACC,EAAarF,WACzBsF,EAAYL,GAAOjF,GACM,iBAAhBA,EAAOkF,KACZ,SAAY7K,SAA6G,UAA5FgL,MAAAA,OAAiD,EAASA,EAAY/K,IAAI0F,EAAOkF,aAA0B,IAAP7K,EAAgBA,EAAK,IACtJ,IAAM2F,EAAOkF,KACwD,2BAA/B,EAASlF,EAAOoF,WACtB,iBAAvBpF,EAAOnF,OAAO0K,KAClBvF,EAAOnF,OAAO0K,KAAK1L,WAAW,KAC3B,SAAYQ,SAA6H,UAA5GgL,MAAAA,OAAiD,EAASA,EAAY/K,IAAI0F,EAAOnF,OAAO0K,KAAKjY,MAAM,WAAwB,IAAP+M,EAAgBA,EAAK,IACtK,SAAYA,SAAoH,UAAnGgL,MAAAA,OAAiD,EAASA,EAAY/K,IAAI0F,EAAOnF,OAAO0K,aAA0B,IAAPlL,EAAgBA,EAAK,IACjK,IAAM2F,EAAOnF,OAAO0K,KACxB,IAAM,UACT7F,OACAE,GAAOC,MADP,CAEHrW,KAAM,IAAM,SACZ8J,QAAS,IAAM,GACf6F,SAASzF,EAAMhH,EAAOiO,EAAQ0B,MACtBA,EAAQkB,OAA0B,iBAAV7Q,SACPiQ,UAAYZ,GAAYe,UAAUH,UAAUrS,KAAKgJ,WAAahJ,KAAKgJ,iBAAc,GAEjF,iBAAV5G,WACA4R,IAAI5K,EAAM,yBACVhH,KAEPyY,GAAYnF,KACa,aAArBA,EAAOoF,WAA4B1Y,EAAMvD,OAAS,IAAMuD,EAAMmW,SAAS,SAClD,MAAbnW,EAAM,GACR,cAAgBA,EAAMY,MAAM,GAC5B,aAAeZ,GAEA,aAArBsT,EAAOoF,YAA4D,iBAAvBpF,EAAOnF,OAAO0K,MAAqBvF,EAAOnF,OAAO0K,KAAK1L,WAAW,MAC5GmG,EAAOnF,OAAO2K,UAAyB,MAAb9Y,EAAM,IACjCsT,EAAOnF,OAAO4K,cACdzF,EAAOnF,OAAO6K,sBACPhZ,KAGVuY,GAAOjF,IAAWA,EAAO2F,kBACnBjZ,QAELiW,EAAS2C,WACX3C,EAAOxZ,OAAS,IAAMwZ,EAAOE,SAASnW,MAC/B4R,IAAI5K,EAAM,4BAA6BhH,GAE3CA,GAEXuS,QAAS,IAAMqG,IAAYjS,IAAI6I,GAAQmI,aACvCnF,qBACWiG,GAAYnF,GAAUA,OAAS,EAE1C7G,KAAKgG,EAAMzL,KAAS0L,OACZ/E,SAC2B,UAAjB8E,EAAKyG,cAA2B,IAAPvL,EAAgBA,EAAK8E,EAAKzU,MAAMsF,KAAKmP,EAAM,CAAExK,KAAMrK,KAAMgb,UAAAA,EAAWtF,OAAAA,GAAUtM,KAAS0L,iBCpE1I/I,OAAOwC,eAAegN,GAAS,aAAc,CAAEnZ,OAAO,cCAtD2J,OAAOwC,eAAeiN,GAAS,aAAc,CAAEpZ,OAAO,iDACA,oBAItD,MACIyM,mBACS4M,SAAW,GAEpB5M,SAAS0E,EAAIlJ,QACJoR,SAASlI,GAAMlJ,EAExBwE,IAAI0E,SACMlJ,EAAOrK,KAAKyb,SAASlI,eACd,IAATlJ,WACQiG,MAAM,2BAA2BiD,+BAEtClJ,0BAOf,MACIwE,mBACS4M,SAAW,GAEpB5M,SAAS0E,EAAI8C,QACJoF,SAASlI,GAAM8C,EAExBxH,IAAI0E,SACM8C,EAAOrW,KAAKyb,SAASlI,eACd,IAAT8C,WACQqF,KAAK,+BAA+BnI,+BAEzC8C,MAAAA,EAAmCA,EAAO,eCpCzDtK,OAAOwC,eAAeoN,GAAS,aAAc,CAAEvZ,OAAO,oBCAlDwZ,EAAmB5b,IAAQA,GAAK6b,yBAA4B7P,OAAU,SAASvN,EAAGkD,EAAGF,EAAGqa,QAC7E,IAAPA,MAAuBra,UACpB8M,eAAe9P,EAAGqd,EAAI,CAAEC,YAAY,EAAM/L,IAAK,kBAAoBrO,EAAEF,OAC1E,SAAShD,EAAGkD,EAAGF,EAAGqa,QACT,IAAPA,MAAuBra,KACzBqa,GAAMna,EAAEF,KAEVua,EAAgBhc,IAAQA,GAAKgc,cAAiB,SAASra,EAAGsa,WACjD1a,KAAKI,EAAa,YAANJ,GAAoB0a,EAAQC,eAAe3a,MAAoB0a,EAASta,EAAGJ,WAE7FgN,iBAAwB,aAAc,CAAEnM,OAAO,MACzCsP,GAA8B2C,KAC9B1C,GAAyB0C,KACzBxC,GAA2BwC,KAC3BsE,GAAyBtE,KACzBuE,GAAgCvE,KAChC8H,GAA+B9H,KAC/B+H,GAA6B/H,KAC7BgI,GAA4BhI,KAC5BiI,GAA+BjI,KAC/BkI,GAA+BlI,KAC/BmI,GAA8BnI,KAC9BoI,GAA+BpI,KAC/BqI,GAA+BrI,KAC/BsI,GAAmBtI,KACnBuI,GAAyBvI,KACzBwI,GAA+BxI,QCe5C,YAAgByI,OAAWC,EAAMD,EAAIje,cAAiBke,GAAO,KAASA,GAAO,EAI7E,MA2DMC,GACJ,IAAI3L,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAEpE4L,GACJ,IAAI5L,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAE7E6L,GACJ,IAAI7L,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAEhD8L,GACJ,IAAI9L,WAAW,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAgBxD+L,GAAgB,IAAIrb,MAAO,KACjCsb,GAAOD,IAOP,MAAME,GAAgB,IAAIvb,MAAMwb,IAChCF,GAAOC,IAKP,MAAME,GAAgB,IAAIzb,MAjBJ,KAkBtBsb,GAAOG,IAMP,MAAMC,GAAgB,IAAI1b,MAAM2b,KAChCL,GAAOI,IAGP,MAAME,GAAgB,IAAI5b,MAhGF,IAiGxBsb,GAAOM,IAGP,MAAMC,GAAgB,IAAI7b,MA3FF,IAgGxB,YAAwB8b,EAAaC,EAAYC,EAAYC,EAAOC,QAE7DJ,YAAeA,OACfC,WAAeA,OACfC,WAAeA,OACfC,MAAeA,OACfC,WAAeA,OAGfC,UAAeL,GAAeA,EAAYhf,OAIjD,IAAIsf,GACAC,GACAC,GAGJ,YAAkBC,EAAUC,QACrBD,SAAWA,OACXE,SAAW,OACXD,UAAYA,EAzBnBlB,GAAOO,IA8BP,MAAMa,GAAUC,GAEPA,EAAO,IAAMlB,GAAWkB,GAAQlB,GAAW,SAAgB,IAQ9DmB,GAAY,CAACvd,EAAGQ,OAGlBgd,YAAYxd,EAAEyd,WAAmB,IAALjd,IAC5Bgd,YAAYxd,EAAEyd,WAAcjd,IAAM,EAAK,KAQrCkd,GAAY,CAAC1d,EAAGgB,EAAOvD,KAEvBuC,EAAE2d,SAtIc,GAsISlgB,KACzBmgB,QAAW5c,GAAShB,EAAE2d,SAAY,SAC1B3d,EAAGA,EAAE4d,UACbA,OAAS5c,GAzIO,GAyIchB,EAAE2d,WAChCA,UAAYlgB,EA1II,OA4IhBmgB,QAAW5c,GAAShB,EAAE2d,SAAY,QAClCA,UAAYlgB,IAKZogB,GAAY,CAAC7d,EAAGD,EAAG+d,QAEb9d,EAAG8d,EAAS,EAAJ/d,GAAiB+d,EAAS,EAAJ/d,EAAQ,KAS5Cge,GAAa,CAACC,EAAMrC,SAEpB9I,EAAM,QAEM,EAAPmL,OACG,MACF,UACCrC,EAAM,UACV9I,IAAQ,GAiIXoL,GAAY,CAACH,EAAMV,EAAUc,WAK3BC,EAAY,IAAIxd,MAAMyd,QAExBC,EACAthB,EAFAihB,EAAO,MAONK,EAAO,EAAGA,GAtTO,GAsTaA,MACvBA,GAAQL,EAAQA,EAAOE,EAASG,EAAO,IAAO,MASrDthB,EAAI,EAAIA,GAAKqgB,EAAUrgB,IAAK,KAC3B4e,EAAMmC,EAAS,EAAJ/gB,EAAQ,GACX,IAAR4e,MAEK,EAAJ5e,GAAkBghB,GAAWI,EAAUxC,KAAQA,MAoHlD2C,GAActe,QAEdjD,MAGCA,EAAI,EAAGA,EAzcUwhB,IAycMxhB,MAASyhB,UAAc,EAAJzhB,GAAkB,MAC5DA,EAAI,EAAGA,EAvcU,GAucMA,MAAS0hB,UAAc,EAAJ1hB,GAAkB,MAC5DA,EAAI,EAAGA,EArcU,GAqcMA,MAAS2hB,QAAY,EAAJ3hB,GAAkB,IAE7DyhB,UAAUG,KAA0B,IACpCC,QAAU5e,EAAE6e,WAAa,IACzBC,SAAW9e,EAAE6G,QAAU,GAOrBkY,GAAa/e,IAEbA,EAAE2d,SAAW,KACL3d,EAAGA,EAAE4d,QACN5d,EAAE2d,SAAW,MAEpBH,YAAYxd,EAAEyd,WAAazd,EAAE4d,UAE/BA,OAAS,IACTD,SAAW,GA8BTqB,GAAU,CAAClB,EAAM/gB,EAAGwD,EAAG0e,WAErBC,EAAU,EAAJniB,EACNoiB,EAAU,EAAJ5e,SACJud,EAAKoB,GAAgBpB,EAAKqB,IAC1BrB,EAAKoB,KAAkBpB,EAAKqB,IAAiBF,EAAMliB,IAAMkiB,EAAM1e,IASnE6e,GAAa,CAACpf,EAAG8d,EAAMzd,WAKrBgC,EAAIrC,EAAEqf,KAAKhf,OACbif,EAAIjf,GAAK,OACNif,GAAKtf,EAAEuf,WAERD,EAAItf,EAAEuf,UACRP,GAAQlB,EAAM9d,EAAEqf,KAAKC,EAAI,GAAItf,EAAEqf,KAAKC,GAAItf,EAAEif,aAIxCD,GAAQlB,EAAMzb,EAAGrC,EAAEqf,KAAKC,GAAItf,EAAEif,WAGhCI,KAAKhf,GAAKL,EAAEqf,KAAKC,KACfA,MAGE,IAEND,KAAKhf,GAAKgC,GAURmd,GAAiB,CAACxf,EAAGyf,EAAOC,SAK5BpC,EACAqC,EAEA3B,EACA4B,EAFAC,EAAK,KAIU,IAAf7f,EAAE8e,cAEM9e,EAAEwd,YAAYxd,EAAE8f,MAAa,EAALD,IAAW,EAAM7f,EAAEwd,YAAYxd,EAAE8f,MAAa,EAALD,EAAS,KAC7E7f,EAAEwd,YAAYxd,EAAE+f,MAAQF,OAGhB,IAATvC,KACQtd,EAAG2f,EAAIF,MAIVpD,GAAasD,MACV3f,EAAGge,EAtkBG,IAskBiB,EAAGyB,KAC5B7D,GAAYoC,GACN,IAAV4B,OACIrD,GAAYyB,MACRhe,EAAG2f,EAAIC,UAGZvC,GAAOC,MAGJtd,EAAGge,EAAM0B,KACX7D,GAAYmC,GACN,IAAV4B,OACMpD,GAAUwB,MACRhe,EAAGsd,EAAMsC,WAQhBC,EAAK7f,EAAE8e,aAGR9e,EAlkBQ,IAkkBMyf,IAYpBO,GAAa,CAAChgB,EAAGigB,WAIfnC,EAAWmC,EAAK/C,SAChBgD,EAAWD,EAAK9C,UAAUV,YAC1BK,EAAYmD,EAAK9C,UAAUL,UAC3BF,EAAWqD,EAAK9C,UAAUP,UAC5B7f,EAAGwD,EAEH0I,EADAmU,WAOFmC,SAAW,IACXY,SAhnBoB,IAknBjBpjB,EAAI,EAAGA,EAAI6f,EAAO7f,IACQ,IAAzB+gB,EAAS,EAAJ/gB,MACLsiB,OAAOrf,EAAEuf,UAAYnC,EAAWrgB,IAChCkiB,MAAMliB,GAAK,KAGJ,EAAJA,EAAQ,GAAa,OASvBiD,EAAEuf,SAAW,KACXvf,EAAEqf,OAAOrf,EAAEuf,UAAanC,EAAW,IAAMA,EAAW,IAC/C,EAAPnU,GAAqB,IACxBgW,MAAMhW,GAAQ,IACd2V,UAEE9B,MACA+B,YAAcqB,EAAa,EAAPjX,EAAW,UAIhCmU,SAAWA,EAKXrgB,EAAKiD,EAAEuf,UAAY,EAAcxiB,GAAK,EAAGA,OAAkBiD,EAAG8d,EAAM/gB,KAKlE6f,OAID5c,EAAEqf,KAAK,KACTA,KAAK,GAAiBrf,EAAEqf,KAAKrf,EAAEuf,eACtBvf,EAAG8d,EAAM,KAGhB9d,EAAEqf,KAAK,KAETA,OAAOrf,EAAEmgB,UAAYpjB,IACrBsiB,OAAOrf,EAAEmgB,UAAY5f,IAGX,EAAP0I,GAAqB6U,EAAS,EAAJ/gB,GAAkB+gB,EAAS,EAAJvd,KACpD0e,MAAMhW,MAAWgW,MAAMliB,IAAMiD,EAAEif,MAAM1e,GAAKP,EAAEif,MAAMliB,GAAKiD,EAAEif,MAAM1e,IAAM,IAC9D,EAAJxD,EAAQ,GAAa+gB,EAAS,EAAJvd,EAAQ,GAAa0I,IAGlDoW,KAAK,GAAiBpW,OACbjJ,EAAG8d,EAAM,SAEb9d,EAAEuf,UAAY,KAErBF,OAAOrf,EAAEmgB,UAAYngB,EAAEqf,KAAK,GApeb,EAACrf,EAAGigB,WAIfnC,EAAkBmC,EAAK/C,SACvBE,EAAkB6C,EAAK7C,SACvB8C,EAAkBD,EAAK9C,UAAUV,YACjCK,EAAkBmD,EAAK9C,UAAUL,UACjC8C,EAAkBK,EAAK9C,UAAUT,WACjC1d,EAAkBihB,EAAK9C,UAAUR,WACjCE,EAAkBoD,EAAK9C,UAAUN,eACnC3c,EACAnD,EAAGwD,EACH8d,EACA+B,EACA5iB,EACA6iB,EAAW,MAEVhC,EAAO,EAAGA,GA1NO,GA0NaA,MAC/BH,SAASG,GAAQ,QAMK,EAArBre,EAAEqf,KAAKrf,EAAEmgB,UAAgB,GAAa,EAEtCjgB,EAAIF,EAAEmgB,SAAW,EAAGjgB,EAtOH,IAsOoBA,MACpCF,EAAEqf,KAAKnf,KACJ4d,EAA+B,EAA1BA,EAAS,EAAJ/gB,EAAQ,GAAiB,GAAa,EACnDshB,EAAOxB,MACFA,SAGA,EAAJ9f,EAAQ,GAAashB,EAGtBthB,EAAIqgB,MAENc,SAASG,OACH,EACJthB,GAAKiC,MACC4gB,EAAM7iB,EAAIiC,MAEhB8e,EAAS,EAAJ/gB,KACP6hB,SAAWphB,KAAY4iB,GACrBtD,MACA+B,YAAcrhB,KAAe,EAAJT,EAAQ,GAAaqjB,QAGnC,IAAbC,KAMD,OACMxD,EAAa,EACQ,IAArB7c,EAAEke,SAASG,UAChBH,SAASG,OACTH,SAASG,EAAO,IAAM,IACtBH,SAASrB,QAIC,QACLwD,EAAW,OAOfhC,EAAOxB,EAAqB,IAATwB,EAAYA,UAC9Bre,EAAEke,SAASG,GACF,IAANthB,KACDiD,EAAEqf,OAAOnf,GACTK,EAAI6c,IACJU,EAAS,EAAJvd,EAAQ,KAAe8d,MAE5BO,YAAmBd,EAAS,EAAJvd,EAAQ,IAAcud,EAAS,EAAJvd,KAC5C,EAAJA,EAAQ,GAAa8d,WAwZrBre,EAAGigB,MAGJnC,EAAMV,EAAUpd,EAAEke,WAQxBoC,GAAY,CAACtgB,EAAG8d,EAAMV,SAKtBrgB,EAEAwjB,EADAC,KAGAC,EAAU3C,EAAK,GAEf4C,EAAQ,EACRC,EAAY,EACZC,EAAY,MAEA,IAAZH,MACU,MACA,KAEQ,KAAL,GAAS,GAAa,MAElC1jB,EAAI,EAAGA,GAAKqgB,EAAUrgB,MAChB0jB,IACC3C,EAAe,KAAL,GAAS,KAEvB4C,EAAQC,GAAaJ,IAAWE,IAG3BC,EAAQE,IACflC,QAAiB,EAAT6B,IAAwBG,EAEd,IAAXH,GAELA,IAAWC,KAAa9B,QAAiB,EAAT6B,OAClC7B,QAAQmC,OAEDH,GAAS,KAChBhC,QAAQoC,QAGRpC,QAAQqC,QAGJ,IACER,EAEM,IAAZE,KACU,MACA,GAEHF,IAAWE,KACR,IACA,MAGA,IACA,KAUZO,GAAY,CAAChhB,EAAG8d,EAAMV,SAKtBrgB,EAEAwjB,EADAC,KAGAC,EAAU3C,EAAK,GAEf4C,EAAQ,EACRC,EAAY,EACZC,EAAY,MAGA,IAAZH,MACU,MACA,GAGT1jB,EAAI,EAAGA,GAAKqgB,EAAUrgB,SAChB0jB,IACC3C,EAAe,KAAL,GAAS,OAEvB4C,EAAQC,GAAaJ,IAAWE,OAG3BC,EAAQE,QACF5gB,EAAGugB,EAAQvgB,EAAE0e,eAA+B,KAAVgC,QAE7B,IAAXH,GACLA,IAAWC,OACHxgB,EAAGugB,EAAQvgB,EAAE0e,iBAIf1e,EAlxBI,GAkxBQA,EAAE0e,YACd1e,EAAG0gB,EAAQ,EAAG,IAEfA,GAAS,OACR1gB,EAnxBI,GAmxBUA,EAAE0e,YAChB1e,EAAG0gB,EAAQ,EAAG,QAGd1gB,EApxBI,GAoxBYA,EAAE0e,YAClB1e,EAAG0gB,EAAQ,GAAI,MAGnB,IACEH,EACM,IAAZE,KACU,MACA,GAEHF,IAAWE,KACR,IACA,MAGA,IACA,KAwHlB,IAAIQ,IAAmB,EAKvB,MAuBMC,GAAqB,CAAClhB,EAAG0b,EAAKyF,EAAYC,QAMpCphB,EAAI,KAA6B,EAAI,GAAI,GA3flC,EAACA,EAAG0b,EAAKC,EAAK0F,QAMrBrhB,GAENqhB,OACQrhB,EAAG2b,MACH3b,GAAI2b,MAKd6B,YAAY3O,IAAI7O,EAAEshB,OAAOC,SAAS7F,EAAKA,EAAMC,GAAM3b,EAAEyd,WACrDA,SAAW9B,IA4eF3b,EAAG0b,EAAKyF,GAAY,IAoKjC,IAMIK,GAAQ,CACXC,SAzMmBzhB,IAGbihB,KA5mBgB,UAEjBlkB,EACAshB,EACA5gB,EACAugB,EACAV,QACEY,EAAW,IAAIvd,MAAMyd,UAgBlB,EACJJ,EAAO,EAAGA,EAAO0D,GAAoB1D,WAC5BA,GAAQvgB,EACfV,EAAI,EAAGA,EAAK,GAAK6e,GAAYoC,GAAQjhB,OAC3BU,KAAYugB,SAQhBvgB,EAAS,GAAKugB,IAGpB,EACFA,EAAO,EAAGA,EAAO,GAAIA,WACdA,GAAQV,EACbvgB,EAAI,EAAGA,EAAK,GAAK8e,GAAYmC,GAAQjhB,OAC7BugB,KAAUU,UAIhB,EACFA,EAvYe,GAuYGA,WACbA,GAAQV,GAAQ,EACrBvgB,EAAI,EAAGA,EAAK,GAAM8e,GAAYmC,GAAQ,EAAKjhB,OACnC,IAAMugB,KAAUU,MAM1BK,EAAO,EAAGA,GAvYO,GAuYaA,MACxBA,GAAQ,QAGf,EACGthB,GAAK,QACO,EAAJA,EAAQ,GAAa,QAEzB,UAEJA,GAAK,QACO,EAAJA,EAAQ,GAAa,QAEzB,UAEJA,GAAK,QACO,EAAJA,EAAQ,GAAa,QAEzB,UAEJA,GAAK,QACO,EAAJA,EAAQ,GAAa,QAEzB,YAMDif,GAAc2F,IAAezD,GAGlCnhB,EAAI,EAAGA,EAhbU,GAgbKA,OACR,EAAJA,EAAQ,GAAa,KACjB,EAAJA,GAAkBghB,GAAWhhB,EAAG,MAI/B,IAAI6kB,GAAe5F,GAAcJ,GAAa2C,IAzbxCA,IAYA,OA8aN,IAAIqD,GAAe1F,GAAcL,GAAa,EAvbxC,GASA,OA+aL,IAAI+F,GAAe,IAAIjhB,MAAM,GAAImb,GAAc,EArb1C,GAiBJ,WAk7BG,KAGnB+F,OAAU,IAAIC,GAAS9hB,EAAEwe,UAAWzB,MACpCgF,OAAU,IAAID,GAAS9hB,EAAEye,UAAWzB,MACpCgF,QAAU,IAAIF,GAAS9hB,EAAE0e,QAASzB,MAElCW,OAAS,IACTD,SAAW,KAGF3d,IA0LZiiB,iBAPwBf,GAQxBgB,gBA1JyB,CAACliB,EAAG0b,EAAKyF,EAAYC,SAMzCe,EAAUC,EACVC,EAAc,EAGdriB,EAAEsiB,MAAQ,GA5hCgB,IA+hCxBtiB,EAAEuiB,KAAKC,cACPD,KAAKC,UArGY,CAACxiB,QAMpBjD,EADA0lB,EAAa,eAIZ1lB,EAAI,EAAGA,GAAK,GAAIA,IAAK0lB,KAAgB,KACtB,EAAbA,GAAoD,IAAhCziB,EAAEwe,UAAc,EAAJzhB,UAx8BX,KA88BQ,IAAhCiD,EAAEwe,UAAU,KAA0D,IAAjCxe,EAAEwe,UAAU,KAChB,IAAjCxe,EAAEwe,UAAU,WA98BY,MAi9BvBzhB,EAAI,GAAIA,EAr7BS,IAq7BOA,OACS,IAAhCiD,EAAEwe,UAAc,EAAJzhB,UAl9BU,SADA,GAmiCL2lB,CAAiB1iB,OAI3BA,EAAGA,EAAE6hB,WAIL7hB,EAAGA,EAAE+hB,UA1LE,CAAC/hB,QAEjBqiB,SAGMriB,EAAGA,EAAEwe,UAAWxe,EAAE6hB,OAAOzE,aACzBpd,EAAGA,EAAEye,UAAWze,EAAE+hB,OAAO3E,aAGxBpd,EAAGA,EAAEgiB,SASXK,EAAcM,GAAgBN,GAAe,GACS,IAArDriB,EAAE0e,QAAgC,EAAxB3C,GAASsG,GAAmB,GADSA,cAMnDzD,SAAW,KAAmB,GAAK,EAAI,EAAI,EAItCyD,GAwKSO,CAAc5iB,KAGhBA,EAAE4e,QAAU,EAAI,IAAO,IACpB5e,EAAE6e,WAAa,EAAI,IAAO,EAMrCuD,GAAeD,MAAuBC,MAI/BA,EAAcjB,EAAa,EAGnCA,EAAa,GAAKgB,QAAczG,KAShB1b,EAAG0b,EAAKyF,EAAYC,GAnlCX,IAqlCnBphB,EAAE6iB,UAA0BT,IAAgBD,MAE3CniB,EAAI,KAA6B,EAAI,GAAI,MACpCA,EAAGgc,GAAcE,SAGtBlc,EAAI,KAA0B,EAAI,GAAI,GAjM7B,EAACA,EAAG8iB,EAAQC,EAAQC,SAIrCC,SAMMjjB,EAAG8iB,EAAS,IAAK,MACjB9iB,EAAG+iB,EAAS,EAAK,MACjB/iB,EAAGgjB,EAAU,EAAI,GACtBC,EAAO,EAAGA,EAAOD,EAASC,OAEnBjjB,EAAGA,EAAE0e,QAAyB,EAAjB3C,GAASkH,GAAY,GAAY,MAIhDjjB,EAAGA,EAAEwe,UAAWsE,EAAS,MAGzB9iB,EAAGA,EAAEye,UAAWsE,EAAS,KA4KlB/iB,EAAGA,EAAE6hB,OAAOzE,SAAW,EAAGpd,EAAE+hB,OAAO3E,SAAW,EAAGiF,EAAc,MAC/DriB,EAAGA,EAAEwe,UAAWxe,EAAEye,eAMxBze,GAEPohB,MACQphB,IA8EbkjB,UApEmB,CAACljB,EAAGsd,EAAMqC,OAO1BnC,YAAYxd,EAAE8f,MAAqB,EAAb9f,EAAE8e,UAAqBxB,IAAS,EAAK,MAC3DE,YAAYxd,EAAE8f,MAAqB,EAAb9f,EAAE8e,SAAe,GAAY,IAAPxB,IAE5CE,YAAYxd,EAAE+f,MAAQ/f,EAAE8e,UAAiB,IAALa,IACpCb,WAEW,IAATxB,IAEAkB,UAAe,EAALmB,QAEV9Y,gBAOA2X,UAAgD,MAAxBmB,GAvmCN,IAumCyB,QAC3ClB,UAAyB,EAAfpB,GAAOC,OA0Bbtd,EAAE8e,WAAa9e,EAAEmjB,YAAc,GAkBxCC,UAvKoBpjB,OACTA,EAAGqjB,EAAmB,MACtBrjB,EAl9BQ,IAk9BMgc,IAjzBT,CAAChc,IAEG,KAAfA,EAAE2d,aACM3d,EAAGA,EAAE4d,UACbA,OAAS,IACTD,SAAW,GAEJ3d,EAAE2d,UAAY,MACrBH,YAAYxd,EAAEyd,WAAwB,IAAXzd,EAAE4d,SAC7BA,SAAW,IACXD,UAAY,KAwyBP3d,KAuNX,IAAIsjB,GAzBY,CAACC,EAAO7H,EAAKC,EAAK6H,SAC5BC,EAAc,MAARF,EAAiB,EACvBvjB,EAAOujB,IAAU,GAAM,MAAS,EAChCxmB,EAAI,OAEO,IAAR4e,GAAW,GAIZA,EAAM,IAAO,IAAOA,KACjB5e,OAGC0mB,EAAK/H,EAAI8H,KAAS,IAClBxjB,EAAKyjB,EAAK,UACP1mB,MAEL,SACA,aAGA0mB,EAAMzjB,GAAM,GAAM,GA8B5B,MAeM0jB,GAAW,IAAIC,YAfH,UACZ5jB,EAAG6jB,EAAQ,WAEN7mB,EAAI,EAAGA,EAAI,IAAKA,IAAK,GACxBA,UACKsD,EAAI,EAAGA,EAAI,EAAGA,MACX,EAAJN,EAAU,WAAcA,IAAM,EAAOA,IAAM,IAE7ChD,GAAKgD,SAGN6jB,GAIwBC,IAiBjC,IAAIC,GAdU,CAACC,EAAKrI,EAAKC,EAAK6H,WACtBpmB,EAAIsmB,GACJ9V,EAAM4V,EAAM7H,gBAITjf,EAAI8mB,EAAK9mB,EAAIkR,EAAKlR,MAClBqnB,IAAQ,EAAK3mB,EAAmB,OAAVse,EAAIhf,cAG3BqnB,GAyBNC,GAAW,CACbC,EAAQ,kBACRC,EAAQ,aACRC,EAAQ,GACRC,KAAQ,aACRC,KAAQ,eACRC,KAAQ,aACRC,KAAQ,sBACRC,KAAQ,eACRC,KAAQ,wBAsBNC,GAAc,CAGhBC,WAAoB,EACpBC,gBAAoB,EACpBC,aAAoB,EACpBC,aAAoB,EACpBC,SAAoB,EACpBC,QAAoB,EACpBC,QAAoB,EAKpBC,KAAoB,EACpBC,aAAoB,EACpBC,YAAoB,EACpBC,WACAC,kBACAC,gBACAC,eACAC,eAIAC,iBAA0B,EAC1BC,aAA0B,EAC1BC,mBAA0B,EAC1BC,yBAGAC,WAA0B,EAC1BC,eAA0B,EAC1BC,MAA0B,EAC1BC,QAA0B,EAC1BC,mBAA0B,EAG1BC,SAA0B,EAC1BC,OAA0B,EAE1BC,UAA0B,EAG1BC,WAA0B,GAuB5B,MAAM7E,SAAEA,oBAAUQ,mBAAkBC,aAAiBgB,aAAWE,IAAc5B,IAS5EmD,WAAY4B,mBAAc3B,GAAiBE,aAAc0B,GAAgBzB,SAAU0B,GAAYzB,QAAS0B,GACxGxB,KAAMyB,GAAQxB,aAAcyB,GAAgBtB,eAAgBuB,GAAkBtB,aAAcuB,GAAgBrB,YAAasB,GACzHlB,sBAAuBmB,cACvBlB,kBAAYC,SAAgBC,WAAOC,GAASC,mBAAoBe,aAChEZ,GACAC,WAAYY,IACVxC,GAgDEyC,GAAM,CAAC5E,EAAM6E,OACZC,IAAMrD,GAASoD,GACbA,GAGHvf,GAAQrK,OACG,MAAY,EAAI,EAAI,GAG/B8pB,GAAQ5L,QACRC,EAAMD,EAAIje,cAAiBke,GAAO,KAASA,GAAO,GAKxD,IAII4L,GAJY,CAACvnB,EAAGwnB,EAAMnjB,QAAmBrE,EAAEynB,WAAcpjB,GAAQrE,EAAE0nB,UAYvE,MAAMC,GAAiBpF,UACfviB,EAAIuiB,EAAKvf,UAGX2Y,EAAM3b,EAAEyd,QACR9B,EAAM4G,EAAKqF,cACPrF,EAAKqF,WAED,IAARjM,MAECkM,OAAOhZ,IAAI7O,EAAEwd,YAAY+D,SAASvhB,EAAE8nB,YAAa9nB,EAAE8nB,YAAcnM,GAAM4G,EAAKwF,YAC5EA,UAAYpM,IACfmM,aAAenM,IACZqM,WAAarM,IACbiM,WAAajM,IAChB8B,SAAW9B,EACK,IAAd3b,EAAEyd,YACFqK,YAAc,KAKdG,GAAmB,CAACjoB,EAAGohB,QACXphB,EAAIA,EAAEkoB,aAAe,EAAIloB,EAAEkoB,eAAmBloB,EAAEmoB,SAAWnoB,EAAEkoB,YAAa9G,KACxF8G,YAAcloB,EAAEmoB,YACJnoB,EAAEuiB,OAIZ6F,GAAW,CAACpoB,EAAGM,OACjBkd,YAAYxd,EAAEyd,WAAand,GASzB+nB,GAAc,CAACroB,EAAGM,OAIpBkd,YAAYxd,EAAEyd,WAAcnd,IAAM,EAAK,MACvCkd,YAAYxd,EAAEyd,WAAiB,IAAJnd,GAWzBgoB,GAAW,CAAC/F,EAAM7G,EAAKrO,EAAOkb,SAE9B5M,EAAM4G,EAAKiG,gBAEX7M,EAAM4M,MAAcA,GACZ,IAAR5M,EAAoB,KAEnB6M,UAAY7M,IAGb9M,IAAI0T,EAAKkG,MAAMlH,SAASgB,EAAKmG,QAASnG,EAAKmG,QAAU/M,GAAMtO,GACvC,IAApBkV,EAAKvf,MAAM2lB,OACRpF,MAAQD,GAAUf,EAAKgB,MAAO7H,EAAKC,EAAKtO,GAGlB,IAApBkV,EAAKvf,MAAM2lB,SACbpF,MAAQO,GAAQvB,EAAKgB,MAAO7H,EAAKC,EAAKtO,MAGxCqb,SAAW/M,IACXiN,UAAYjN,EAEVA,IAaHkN,GAAgB,CAAC7oB,EAAG8oB,SAIpBliB,EACA+U,EAHAoN,EAAe/oB,EAAEgpB,iBACjBC,EAAOjpB,EAAEmoB,SAGTe,EAAWlpB,EAAEmpB,YACbC,EAAappB,EAAEopB,iBACbC,EAASrpB,EAAEmoB,SAAYnoB,EAAEspB,OAhJVC,IAiJjBvpB,EAAEmoB,YAAcmB,OAjJCC,KAiJyB,EAExCC,EAAOxpB,EAAEshB,OAETmI,EAAQzpB,EAAE0pB,OACVlC,EAAQxnB,EAAEwnB,KAMVmC,EAAS3pB,EAAEmoB,SA7JD,QA8JZyB,EAAaJ,EAAKP,EAAOC,EAAW,GACpCW,EAAaL,EAAKP,EAAOC,GAQzBlpB,EAAEmpB,aAAenpB,EAAE8pB,iBACJ,GAKfV,EAAappB,EAAE+pB,cAA0B/pB,EAAE+pB,mBAMrCjB,EAWJU,EAAK5iB,EAAQsiB,KAAkBW,GAC/BL,EAAK5iB,EAAQsiB,EAAW,KAAOU,GAC/BJ,EAAK5iB,KAA0B4iB,EAAKP,IACpCO,IAAO5iB,KAAwB4iB,EAAKP,EAAO,OAUvC,gBASCO,IAAOP,KAAUO,IAAO5iB,IAAU4iB,IAAOP,KAAUO,IAAO5iB,IAC1D4iB,IAAOP,KAAUO,IAAO5iB,IAAU4iB,IAAOP,KAAUO,IAAO5iB,IAC1D4iB,IAAOP,KAAUO,IAAO5iB,IAAU4iB,IAAOP,KAAUO,IAAO5iB,IAC1D4iB,IAAOP,KAAUO,IAAO5iB,IAAU4iB,IAAOP,KAAUO,IAAO5iB,IAC1DqiB,EAAOU,QAxNF,OA4NcV,KACrBU,EA7NO,IA+NVhO,EAAMuN,EAAU,MAChBc,YAAclB,IACLnN,EACPA,GAAOyN,UAGEI,EAAKP,EAAOC,EAAW,KACvBM,EAAKP,EAAOC,cAEP1B,EAAKsB,EAAYW,IAAUJ,GAA4B,KAAjBN,UAExDG,GAAYlpB,EAAE+pB,UACTb,EAEFlpB,EAAE+pB,WAcLE,GAAejqB,UAEbkqB,EAAUlqB,EAAEspB,WACdnpB,EAAGpD,EAAGwD,EAAG4pB,EAAM1a,IAIhB,MACMzP,EAAEoqB,YAAcpqB,EAAE+pB,UAAY/pB,EAAEmoB,SAoBnCnoB,EAAEmoB,UAAY+B,KAtRCX,KAsRoC,GAEnDjI,OAAOzS,IAAI7O,EAAEshB,OAAOC,SAAS2I,EAASA,EAAUA,GAAU,KAC1DF,aAAeE,IACf/B,UAAY+B,IAEZhC,aAAegC,IASblqB,EAAEqqB,YACFttB,OAGEiD,EAAEsqB,OAAOnqB,KACXmqB,KAAKnqB,GAAMI,GAAK2pB,EAAU3pB,EAAI2pB,EAAU,UACjCntB,KAEPmtB,IACAntB,OAGEiD,EAAEwnB,OAAOrnB,KACXqnB,KAAKrnB,GAAMI,GAAK2pB,EAAU3pB,EAAI2pB,EAAU,UAIjCntB,MAEHmtB,KAEc,IAApBlqB,EAAEuiB,KAAKiG,oBAgBPF,GAAStoB,EAAEuiB,KAAMviB,EAAEshB,OAAQthB,EAAEmoB,SAAWnoB,EAAE+pB,UAAWI,KACvDJ,WAAahtB,EAGXiD,EAAE+pB,UAAY/pB,EAAEuqB,QAhVN,QAiVNvqB,EAAEmoB,SAAWnoB,EAAEuqB,SACnBC,MAAQxqB,EAAEshB,OAAO7R,KAGjB+a,MAAQjD,GAAKvnB,EAAGA,EAAEwqB,MAAOxqB,EAAEshB,OAAO7R,EAAM,IAInCzP,EAAEuqB,WAELC,MAAQjD,GAAKvnB,EAAGA,EAAEwqB,MAAOxqB,EAAEshB,OAAO7R,EA3V1B,EA2V4C,MAEpD+X,KAAK/X,EAAMzP,EAAE0pB,QAAU1pB,EAAEsqB,KAAKtqB,EAAEwqB,SAChCF,KAAKtqB,EAAEwqB,OAAS/a,QAEhB8a,WACEvqB,EAAE+pB,UAAY/pB,EAAEuqB,OAjWV,aA0WPvqB,EAAE+pB,UAxWUR,KAwWuC,IAApBvpB,EAAEuiB,KAAKiG,WAoJ3CiC,GAAe,CAACzqB,EAAG0qB,SAEnBC,EACAC,SAEK,IAMH5qB,EAAE+pB,UAvgBaR,IAugBc,OACnBvpB,GACRA,EAAE+pB,UAzgBWR,KAygBkBmB,IAAUnE,UA7fzB,KAggBA,IAAhBvmB,EAAE+pB,qBAQI,EACR/pB,EAAE+pB,WAvhBQ,MAyhBVS,MAAQjD,GAAKvnB,EAAGA,EAAEwqB,MAAOxqB,EAAEshB,OAAOthB,EAAEmoB,SAzhB1B,EAyhBiD,MACjDnoB,EAAEwnB,KAAKxnB,EAAEmoB,SAAWnoB,EAAE0pB,QAAU1pB,EAAEsqB,KAAKtqB,EAAEwqB,SACnDF,KAAKtqB,EAAEwqB,OAASxqB,EAAEmoB,UAOJ,IAAdwC,GAA4B3qB,EAAEmoB,SAAWwC,GAAe3qB,EAAEspB,OAhiB3CC,QAqiBfsB,aAAehC,GAAc7oB,EAAG2qB,IAGhC3qB,EAAE6qB,cA1iBQ,OA+iBH3H,GAAUljB,EAAGA,EAAEmoB,SAAWnoB,EAAEgqB,YAAahqB,EAAE6qB,aA/iBxC,KAijBVd,WAAa/pB,EAAE6qB,aAKb7qB,EAAE6qB,cAAgB7qB,EAAE8qB,gBAAuC9qB,EAAE+pB,WAtjBrD,EAsjB6E,GACrFc,oBAEE1C,aAEAqC,MAAQjD,GAAKvnB,EAAGA,EAAEwqB,MAAOxqB,EAAEshB,OAAOthB,EAAEmoB,SA3jB9B,EA2jBqD,MACjDnoB,EAAEwnB,KAAKxnB,EAAEmoB,SAAWnoB,EAAE0pB,QAAU1pB,EAAEsqB,KAAKtqB,EAAEwqB,SACnDF,KAAKtqB,EAAEwqB,OAASxqB,EAAEmoB,eAKQ,KAAnBnoB,EAAE6qB,gBACX1C,kBAGAA,UAAYnoB,EAAE6qB,eACdA,aAAe,IACfL,MAAQxqB,EAAEshB,OAAOthB,EAAEmoB,YAEnBqC,MAAQjD,GAAKvnB,EAAGA,EAAEwqB,MAAOxqB,EAAEshB,OAAOthB,EAAEmoB,SAAW,WAa1CjF,GAAUljB,EAAG,EAAGA,EAAEshB,OAAOthB,EAAEmoB,aAElC4B,cACA5B,cAEAyC,OAEe5qB,GAAG,GACK,IAArBA,EAAEuiB,KAAKqF,kBAjlBS,WAulBtB2C,OAAWvqB,EAAEmoB,SAAY4C,EAAkB/qB,EAAEmoB,SAAW4C,EACtDL,IAAUjE,OAEKzmB,GAAG,GACK,IAArBA,EAAEuiB,KAAKqF,UAzlBW,EACA,GA8lBpB5nB,EAAE8e,cAEa9e,GAAG,GACK,IAArBA,EAAEuiB,KAAKqF,WApmBW,EACA,GAgnBpBoD,GAAe,CAAChrB,EAAG0qB,SAEnBC,EACAC,EAEAK,SAGK,IAMHjrB,EAAE+pB,UA3oBaR,IA2oBc,OACnBvpB,GACRA,EAAE+pB,UA7oBWR,KA6oBkBmB,IAAUnE,UAjoBzB,KAooBA,IAAhBvmB,EAAE+pB,qBAMI,EACR/pB,EAAE+pB,WAzpBQ,MA2pBVS,MAAQjD,GAAKvnB,EAAGA,EAAEwqB,MAAOxqB,EAAEshB,OAAOthB,EAAEmoB,SA3pB1B,EA2pBiD,MACjDnoB,EAAEwnB,KAAKxnB,EAAEmoB,SAAWnoB,EAAE0pB,QAAU1pB,EAAEsqB,KAAKtqB,EAAEwqB,SACnDF,KAAKtqB,EAAEwqB,OAASxqB,EAAEmoB,YAMpBgB,YAAcnpB,EAAE6qB,eAChBK,WAAalrB,EAAEgqB,cACfa,aAAeE,EAEC,IAAdJ,GAA0B3qB,EAAEmpB,YAAcnpB,EAAE8qB,gBAC5C9qB,EAAEmoB,SAAWwC,GAAc3qB,EAAEspB,OAtqBdC,QA2qBfsB,aAAehC,GAAc7oB,EAAG2qB,GAG9B3qB,EAAE6qB,cAAgB,MAChBhI,WAAaiD,IAjrBP,IAirBsB9lB,EAAE6qB,cAA8B7qB,EAAEmoB,SAAWnoB,EAAEgqB,YAAc,UAK3Fa,aAAeE,IAMjB/qB,EAAEmpB,aA5rBQ,GA4rBoBnpB,EAAE6qB,cAAgB7qB,EAAEmpB,YAAa,GACpDnpB,EAAEmoB,SAAWnoB,EAAE+pB,UA7rBhB,IAosBH7G,GAAUljB,EAAGA,EAAEmoB,SAAW,EAAInoB,EAAEkrB,WAAYlrB,EAAEmpB,YApsB3C,KA0sBVY,WAAa/pB,EAAEmpB,YAAc,IAC7BA,aAAe,OAETnpB,EAAEmoB,UAAY8C,MAEhBT,MAAQjD,GAAKvnB,EAAGA,EAAEwqB,MAAOxqB,EAAEshB,OAAOthB,EAAEmoB,SA/sB9B,EA+sBqD,MACjDnoB,EAAEwnB,KAAKxnB,EAAEmoB,SAAWnoB,EAAE0pB,QAAU1pB,EAAEsqB,KAAKtqB,EAAEwqB,SACnDF,KAAKtqB,EAAEwqB,OAASxqB,EAAEmoB,gBAGK,KAAlBnoB,EAAEmpB,kBACXgC,gBAAkB,IAClBN,aAAeE,IACf5C,WAEEyC,OAEe5qB,GAAG,GACK,IAArBA,EAAEuiB,KAAKqF,kBA9sBO,UAotBX5nB,EAAEmrB,sBAOFjI,GAAUljB,EAAG,EAAGA,EAAEshB,OAAOthB,EAAEmoB,SAAW,IAE3CyC,MAEe5qB,GAAG,KAGpBmoB,aACA4B,YACuB,IAArB/pB,EAAEuiB,KAAKqF,iBApuBS,SA2uBlBuD,gBAAkB,IAClBhD,aACA4B,mBAIF/pB,EAAEmrB,oBAGKjI,GAAUljB,EAAG,EAAGA,EAAEshB,OAAOthB,EAAEmoB,SAAW,MAE7CgD,gBAAkB,KAEpBZ,OAASvqB,EAAEmoB,SAAW4C,EAAgB/qB,EAAEmoB,SAAW4C,EACjDL,IAAUjE,OAEKzmB,GAAG,GACK,IAArBA,EAAEuiB,KAAKqF,UA1vBW,EACA,GA+vBpB5nB,EAAE8e,cAEa9e,GAAG,GACK,IAArBA,EAAEuiB,KAAKqF,WArwBW,EACA,GA66B1B,YAAgBwD,EAAaC,EAAUC,EAAaC,EAAWC,QAExDJ,YAAcA,OACdC,SAAWA,OACXC,YAAcA,OACdC,UAAYA,OACZC,KAAOA,EAGd,MAAMC,GAAsB,CAE1B,IAAIC,GAAO,EAAG,EAAG,EAAG,GA5iBC,CAAC1rB,EAAG0qB,SAKrBiB,EAAiB,UAEjBA,EAAiB3rB,EAAE4rB,iBAAmB,MACvB5rB,EAAE4rB,iBAAmB,KAI/B,IAEH5rB,EAAE+pB,WAAa,EAAG,OASR/pB,GACQ,IAAhBA,EAAE+pB,WAAmBW,IAAUnE,UAraf,KAyaA,IAAhBvmB,EAAE+pB,kBAQN5B,UAAYnoB,EAAE+pB,YACdA,UAAY,QAGR8B,EAAY7rB,EAAEkoB,YAAcyD,MAEf,IAAf3rB,EAAEmoB,UAAkBnoB,EAAEmoB,UAAY0D,OAElC9B,UAAY/pB,EAAEmoB,SAAW0D,IACzB1D,SAAW0D,KAEI7rB,GAAG,GACK,IAArBA,EAAEuiB,KAAKqF,kBA7bS,KAuclB5nB,EAAEmoB,SAAWnoB,EAAEkoB,aAAgBloB,EAAEspB,OAndlBC,SAqdAvpB,GAAG,GACK,IAArBA,EAAEuiB,KAAKqF,kBA1cS,WAidtB2C,OAAS,EAEPG,IAAUjE,OAEKzmB,GAAG,GACK,IAArBA,EAAEuiB,KAAKqF,UApdW,EACA,IA0dpB5nB,EAAEmoB,SAAWnoB,EAAEkoB,iBAEAloB,GAAG,GAChBA,EAAEuiB,KAAKqF,WAheW,MA07BxB,IAAI8D,GAAO,EAAG,EAAG,EAAG,EAAGjB,IACvB,IAAIiB,GAAO,EAAG,EAAG,GAAI,EAAGjB,IACxB,IAAIiB,GAAO,EAAG,EAAG,GAAI,GAAIjB,IAEzB,IAAIiB,GAAO,EAAG,EAAG,GAAI,GAAIV,IACzB,IAAIU,GAAO,EAAG,GAAI,GAAI,GAAIV,IAC1B,IAAIU,GAAO,EAAG,GAAI,IAAK,IAAKV,IAC5B,IAAIU,GAAO,EAAG,GAAI,IAAK,IAAKV,IAC5B,IAAIU,GAAO,GAAI,IAAK,IAAK,KAAMV,IAC/B,IAAIU,GAAO,GAAI,IAAK,IAAK,KAAMV,KA+BjC,mBACOzI,KAAO,UACPuJ,OAAS,OACTtO,YAAc,UACdoO,iBAAmB,OACnB9D,YAAc,OACdrK,QAAU,OACVkL,KAAO,OACPoD,OAAS,UACTC,QAAU,OACVC,OAAS/E,QACTgF,mBAEA5C,OAAS,OACT6C,OAAS,OACTzC,OAAS,OAETpI,OAAS,UAQT8I,YAAc,OAKd5C,KAAO,UAMP8C,KAAO,UAEPE,MAAQ,OACRH,UAAY,OACZ+B,UAAY,OACZ1E,UAAY,OAEZD,WAAa,OAObS,YAAc,OAKd2C,aAAe,OACfK,WAAa,OACbC,gBAAkB,OAClBhD,SAAW,OACX6B,YAAc,OACdD,UAAY,OAEZZ,YAAc,OAKdH,iBAAmB,OAMnB8B,eAAiB,OAYjBxI,MAAQ,OACRO,SAAW,OAEXiH,WAAa,OAGbV,WAAa,OAYb5K,UAAa,IAAI6N,YAAYC,WAC7B7N,UAAa,IAAI4N,YAAa,UAC9B3N,QAAa,IAAI2N,YAAa,OAC9BztB,KAAK4f,cACL5f,KAAK6f,cACL7f,KAAK8f,cAELmD,OAAW,UACXE,OAAW,UACXC,QAAW,UAGX9D,SAAW,IAAImO,YAAYE,SAI3BlN,KAAO,IAAIgN,YAAY,QACvBztB,KAAKygB,WAELE,SAAW,OACXY,SAAW,OAKXlB,MAAQ,IAAIoN,YAAY,QACxBztB,KAAKqgB,YAILc,MAAQ,OAERoD,YAAc,OAoBdrE,SAAW,OAEXgB,MAAQ,OAMRlB,QAAU,OACVC,WAAa,OACbhY,QAAU,OACV0jB,OAAS,OAGT3M,OAAS,OAITD,SAAW,EAgBlB,MAAM6O,GAAoBjK,QAEnBA,IAASA,EAAKvf,aACVmkB,GAAI5E,EAAMsE,MAGd+B,SAAWrG,EAAKyF,UAAY,IAC5BxF,UAAY6D,SAEXrmB,EAAIuiB,EAAKvf,eACbya,QAAU,IACVqK,YAAc,EAEZ9nB,EAAE2oB,KAAO,MACTA,MAAQ3oB,EAAE2oB,QAGZmD,OAAU9rB,EAAE2oB,KAxrCG,GAKA,MAorCZpF,MAAoB,IAAXvjB,EAAE2oB,KACd,EAEA,IACAuD,WAAa3F,MACNvmB,GACF2mB,IAIH8F,GAAgBlK,UAEd7b,EAAM8lB,GAAiBjK,GAnPf,IAACviB,SAoPX0G,IAAQigB,MApPG3mB,EAqPLuiB,EAAKvf,OAnPbonB,YAAc,EAAIpqB,EAAEspB,UAGjBtpB,EAAEsqB,QAILQ,eAAiBW,GAAoBzrB,EAAEsiB,OAAO+I,WAC9CvB,WAAa2B,GAAoBzrB,EAAEsiB,OAAO8I,cAC1ChC,WAAaqC,GAAoBzrB,EAAEsiB,OAAOgJ,cAC1CtC,iBAAmByC,GAAoBzrB,EAAEsiB,OAAOiJ,YAEhDpD,SAAW,IACXD,YAAc,IACd6B,UAAY,IACZQ,OAAS,IACTM,aAAe7qB,EAAEmpB,YAAc4B,IAC/BI,gBAAkB,IAClBX,MAAQ,GAmOH9jB,GAaHgmB,GAAe,CAACnK,EAAMD,EAAO2J,EAAQU,EAAYC,EAAU/J,SAE1DN,SACIsE,OAEL8B,EAAO,KAEPrG,IAAU0E,OACJ,GAGN2F,EAAa,KACR,KACOA,GAGPA,EAAa,OACb,KACO,IAIZC,EAAW,GAAKA,EAxwCA,GAwwC4BX,IAAW/E,IACzDyF,EAAa,GAAKA,EAAa,IAAMrK,EAAQ,GAAKA,EAAQ,GAC1DO,EAAW,GAAKA,EAAWoD,UACpBkB,GAAI5E,EAAMsE,IAIA,IAAf8F,MACW,SAIT3sB,EAAI,IAAI6sB,YAET7pB,MAAQhD,IACXuiB,KAAOA,IAEPoG,KAAOA,IACPoD,OAAS,OACTI,OAASQ,IACTrD,OAAS,GAAKtpB,EAAEmsB,SAChBzC,OAAS1pB,EAAEspB,OAAS,IAEpB8C,UAAYQ,EAAW,IACvBvC,UAAY,GAAKrqB,EAAEosB,YACnB1E,UAAY1nB,EAAEqqB,UAAY,IAC1B5C,iBAAmB2E,UA5wCL,EA4wC6B,GA5wC7B,KA8wCd9K,OAAS,IAAIrR,WAAsB,EAAXjQ,EAAEspB,UAC1BgB,KAAO,IAAI+B,YAAYrsB,EAAEqqB,aACzB7C,KAAO,IAAI6E,YAAYrsB,EAAEspB,UAKzBnG,YAAc,GAAMyJ,EAAW,IAE/BhB,iBAAmC,EAAhB5rB,EAAEmjB,cAIrB3F,YAAc,IAAIvN,WAAWjQ,EAAE4rB,oBAI/B9L,MAAQ,EAAI9f,EAAEmjB,cAGdpD,MAAS,EAAS/f,EAAEmjB,cAEpBb,MAAQA,IACRO,SAAWA,IACXoJ,OAASA,EAEJQ,GAAalK,IAictB,IAmBIuK,GAAc,CACjBC,YAldmB,CAACxK,EAAMD,IAElBoK,GAAanK,EAAMD,EAAO4E,GAj0Cf,GAEE,EA+zCuDD,IAid5EyF,aApBoBA,GAqBpBD,aApBoBA,GAqBpBD,iBApBwBA,GAqBxBQ,iBA9iBwB,CAACzK,EAAM+H,IAEzB/H,GAASA,EAAKvf,MACK,IAApBuf,EAAKvf,MAAM2lB,KAAqB9B,MAC/B7jB,MAAM+oB,OAASzB,EACb3D,IAH4BE,GA6iBpCoG,QAjdiB,CAAC1K,EAAMmI,SAEnBwC,EAAKxlB,MAEJ6a,IAASA,EAAKvf,OACjB0nB,EAAQhE,IAAagE,EAAQ,SACtBnI,EAAO4E,GAAI5E,EAAMsE,IAAoBA,SAGxC7mB,EAAIuiB,EAAKvf,UAEVuf,EAAKsF,SACJtF,EAAKkG,OAA2B,IAAlBlG,EAAKiG,UAjzCN,MAkzCdxoB,EAAE8rB,QAA2BpB,IAAUjE,UACnCU,GAAI5E,EAA0B,IAAnBA,EAAKqF,UAAmBb,GAAgBF,MAG1DtE,KAAOA,QACH4K,EAAYntB,EAAEksB,gBAClBA,WAAaxB,EA9zCE,KAi0Cb1qB,EAAE8rB,UAEW,IAAX9rB,EAAE2oB,OACCpF,MAAQ,KACJvjB,EAAG,OACHA,EAAG,QACHA,EAAG,GACPA,EAAE+rB,WAaI/rB,KAAM+rB,OAAOqB,KAAO,EAAI,MAClBrB,OAAOsB,KAAO,EAAI,IACnBrtB,EAAE+rB,OAAOnM,MAAY,EAAJ,IACjB5f,EAAE+rB,OAAOrnB,KAAW,EAAJ,IAChB1E,EAAE+rB,OAAOuB,QAAc,GAAJ,OAExBttB,EAAmB,IAAhBA,EAAE+rB,OAAOwB,SACZvtB,EAAIA,EAAE+rB,OAAOwB,MAAQ,EAAK,QAC1BvtB,EAAIA,EAAE+rB,OAAOwB,MAAQ,GAAM,QAC3BvtB,EAAIA,EAAE+rB,OAAOwB,MAAQ,GAAM,QAC3BvtB,EAAe,IAAZA,EAAEsiB,MAAc,EACftiB,EAAE6iB,UAAYkD,IAAkB/lB,EAAEsiB,MAAQ,EAC1C,EAAI,MACRtiB,EAAiB,IAAdA,EAAE+rB,OAAOyB,IACjBxtB,EAAE+rB,OAAOnM,OAAS5f,EAAE+rB,OAAOnM,MAAMniB,YAC1BuC,EAA2B,IAAxBA,EAAE+rB,OAAOnM,MAAMniB,WAClBuC,EAAIA,EAAE+rB,OAAOnM,MAAMniB,QAAU,EAAK,MAEzCuC,EAAE+rB,OAAOsB,SACN9J,MAAQO,GAAQvB,EAAKgB,MAAOvjB,EAAEwd,YAAaxd,EAAEyd,QAAS,MAE3DuO,QAAU,IACVF,OA12CU,QAw0CH9rB,EAAG,MACHA,EAAG,MACHA,EAAG,MACHA,EAAG,MACHA,EAAG,MACHA,EAAe,IAAZA,EAAEsiB,MAAc,EACftiB,EAAE6iB,UAAYkD,IAAkB/lB,EAAEsiB,MAAQ,EAC1C,EAAI,MACRtiB,EAp0CD,KAq0CN8rB,OA70CS,SA02Cf,KACMzK,EAAU6F,MAAmBiF,OAAS,GAAM,IAAO,EACnDsB,OAEAztB,EAAE6iB,UAAYkD,IAAkB/lB,EAAEsiB,MAAQ,EAC9B,EACLtiB,EAAEsiB,MAAQ,EACL,EACO,IAAZtiB,EAAEsiB,MACG,EAEA,KAELmL,GAAe,EACP,IAAfztB,EAAEmoB,cA/3CQ,OAg4CJ,GAAM9G,EAAS,KAEvByK,OA33CW,OA43CD9rB,EAAGqhB,GAGI,IAAfrhB,EAAEmoB,cACQnoB,EAAGuiB,EAAKgB,QAAU,OAClBvjB,EAAgB,MAAbuiB,EAAKgB,UAEjBA,MAAQ,KAv4CC,KA44CdvjB,EAAE8rB,UACA9rB,EAAE+rB,OAAOnM,MAAqB,OAC1B5f,EAAEyd,QAEDzd,EAAEgsB,SAAmC,QAAtBD,OAAOnM,MAAMniB,UAC7BuC,EAAEyd,UAAYzd,EAAE4rB,mBACd5rB,EAAE+rB,OAAOsB,MAAQrtB,EAAEyd,QAAUyP,MAC1B3J,MAAQO,GAAQvB,EAAKgB,MAAOvjB,EAAEwd,YAAaxd,EAAEyd,QAAUyP,EAAKA,OAErD3K,KACRviB,EAAEyd,QACJzd,EAAEyd,UAAYzd,EAAE4rB,uBAIb5rB,EAA+B,IAA5BA,EAAE+rB,OAAOnM,MAAM5f,EAAEgsB,YAC3BA,UAEAhsB,EAAE+rB,OAAOsB,MAAQrtB,EAAEyd,QAAUyP,MAC1B3J,MAAQO,GAAQvB,EAAKgB,MAAOvjB,EAAEwd,YAAaxd,EAAEyd,QAAUyP,EAAKA,IAE/DltB,EAAEgsB,UAAYhsB,EAAE+rB,OAAOnM,MAAMniB,WAC7BuuB,QAAU,IACVF,OAl6CS,WAs6CXA,OAt6CW,MAAA,KAy6Cb9rB,EAAE8rB,UACA9rB,EAAE+rB,OAAOrnB,KAAoB,GACzB1E,EAAEyd,UAGL,IACGzd,EAAEyd,UAAYzd,EAAE4rB,mBACd5rB,EAAE+rB,OAAOsB,MAAQrtB,EAAEyd,QAAUyP,MAC1B3J,MAAQO,GAAQvB,EAAKgB,MAAOvjB,EAAEwd,YAAaxd,EAAEyd,QAAUyP,EAAKA,OAErD3K,KACRviB,EAAEyd,QACJzd,EAAEyd,UAAYzd,EAAE4rB,kBAAkB,GAC9B,UAKN5rB,EAAEgsB,QAAUhsB,EAAE+rB,OAAOrnB,KAAKjH,OACkB,IAAxCuC,EAAE+rB,OAAOrnB,KAAKgpB,WAAW1tB,EAAEgsB,WAE3B,KAEChsB,EAAG0H,SACG,IAARA,GAEL1H,EAAE+rB,OAAOsB,MAAQrtB,EAAEyd,QAAUyP,MAC1B3J,MAAQO,GAAQvB,EAAKgB,MAAOvjB,EAAEwd,YAAaxd,EAAEyd,QAAUyP,EAAKA,IAEvD,IAARxlB,MACAskB,QAAU,IACVF,OAv8CY,WA28CdA,OA38Cc,MAAA,KA88ChB9rB,EAAE8rB,UACA9rB,EAAE+rB,OAAOuB,QAAuB,GAC5BttB,EAAEyd,UAGL,IACGzd,EAAEyd,UAAYzd,EAAE4rB,mBACd5rB,EAAE+rB,OAAOsB,MAAQrtB,EAAEyd,QAAUyP,MAC1B3J,MAAQO,GAAQvB,EAAKgB,MAAOvjB,EAAEwd,YAAaxd,EAAEyd,QAAUyP,EAAKA,OAErD3K,KACRviB,EAAEyd,QACJzd,EAAEyd,UAAYzd,EAAE4rB,kBAAkB,GAC9B,UAKN5rB,EAAEgsB,QAAUhsB,EAAE+rB,OAAOuB,QAAQ7vB,OACkB,IAA3CuC,EAAE+rB,OAAOuB,QAAQI,WAAW1tB,EAAEgsB,WAE9B,KAEChsB,EAAG0H,SACG,IAARA,GAEL1H,EAAE+rB,OAAOsB,MAAQrtB,EAAEyd,QAAUyP,MAC1B3J,MAAQO,GAAQvB,EAAKgB,MAAOvjB,EAAEwd,YAAaxd,EAAEyd,QAAUyP,EAAKA,IAEvD,IAARxlB,MACAokB,OA3+CS,YA++CXA,OA/+CW,OAAA,MAk/Cb9rB,EAAE8rB,SACA9rB,EAAE+rB,OAAOsB,MACPrtB,EAAEyd,QAAU,EAAIzd,EAAE4rB,qBACNrJ,GAEZviB,EAAEyd,QAAU,GAAKzd,EAAE4rB,sBACZ5rB,EAAgB,IAAbuiB,EAAKgB,UACRvjB,EAAIuiB,EAAKgB,OAAS,EAAK,OAC3BA,MAAQ,IACXuI,OA1/CS,QA8/CXA,OA9/CW,KAogDC,IAAd9rB,EAAEyd,eACU8E,GACS,IAAnBA,EAAKqF,mBAOLsE,cACKvF,WAOkB,IAAlBpE,EAAKiG,UAAkB3gB,GAAK6iB,IAAU7iB,GAAKslB,IACpDzC,IAAUjE,UACHU,GAAI5E,EAAMwE,OAthDA,MA0hDf/mB,EAAE8rB,QAA6C,IAAlBvJ,EAAKiG,gBAC7BrB,GAAI5E,EAAMwE,OAKG,IAAlBxE,EAAKiG,UAAkC,IAAhBxoB,EAAE+pB,WAC1BW,IAAUnE,IAjiDM,MAiiDUvmB,EAAE8rB,OAA0B,KACnD6B,EAAU3tB,EAAE6iB,WAAakD,GA5qBZ,EAAC/lB,EAAG0qB,SAEnBE,SAEK,IAEa,IAAhB5qB,EAAE+pB,eACQ/pB,GACQ,IAAhBA,EAAE+pB,WAAiB,IACjBW,IAAUnE,UA73BI,aAq4BpBsE,aAAe,IAGR3H,GAAUljB,EAAG,EAAGA,EAAEshB,OAAOthB,EAAEmoB,aAClC4B,cACA5B,WACEyC,OAEe5qB,GAAG,GACK,IAArBA,EAAEuiB,KAAKqF,kBA94BS,WAo5BtB2C,OAAS,EACPG,IAAUjE,OAEKzmB,GAAG,GACK,IAArBA,EAAEuiB,KAAKqF,UAt5BW,EACA,GA25BpB5nB,EAAE8e,cAEa9e,GAAG,GACK,IAArBA,EAAEuiB,KAAKqF,WAj6BW,EACA,GA+hDyBgG,CAAa5tB,EAAG0qB,GAC5D1qB,EAAE6iB,WAAamD,GA7wBF,EAAChmB,EAAG0qB,SAElBE,EACApD,EACAyB,EAAMU,QAEJH,EAAOxpB,EAAEshB,cAEN,IAKHthB,EAAE+pB,WA9yBQ,IA8yBgB,OAChB/pB,GACRA,EAAE+pB,WAhzBM,KAgzBoBW,IAAUnE,UAnyBtB,KAsyBA,IAAhBvmB,EAAE+pB,qBAINc,aAAe,EACb7qB,EAAE+pB,WAzzBQ,GAyzBkB/pB,EAAEmoB,SAAW,MACpCnoB,EAAEmoB,SAAW,IACbqB,EAAKP,GACRzB,IAASgC,IAAOP,IAASzB,IAASgC,IAAOP,IAASzB,IAASgC,IAAOP,IAAO,GAClEjpB,EAAEmoB,SA5zBD,cA+zBDX,IAASgC,IAAOP,IAASzB,IAASgC,IAAOP,IACzCzB,IAASgC,IAAOP,IAASzB,IAASgC,IAAOP,IACzCzB,IAASgC,IAAOP,IAASzB,IAASgC,IAAOP,IACzCzB,IAASgC,IAAOP,IAASzB,IAASgC,IAAOP,IACzCA,EAAOU,KACdkB,aAp0BQ,OAo0B6B5B,GACnCjpB,EAAE6qB,aAAe7qB,EAAE+pB,cACnBc,aAAe7qB,EAAE+pB,cAOrB/pB,EAAE6qB,cA90BQ,KAk1BH3H,GAAUljB,EAAG,EAAGA,EAAE6qB,aAl1Bf,KAo1BVd,WAAa/pB,EAAE6qB,eACf1C,UAAYnoB,EAAE6qB,eACdA,aAAe,MAKR3H,GAAUljB,EAAG,EAAGA,EAAEshB,OAAOthB,EAAEmoB,aAElC4B,cACA5B,YAEAyC,OAEe5qB,GAAG,GACK,IAArBA,EAAEuiB,KAAKqF,kBAr1BS,WA21BtB2C,OAAS,EACPG,IAAUjE,OAEKzmB,GAAG,GACK,IAArBA,EAAEuiB,KAAKqF,UA71BW,EACA,GAk2BpB5nB,EAAE8e,cAEa9e,GAAG,GACK,IAArBA,EAAEuiB,KAAKqF,WAx2BW,EACA,GAgiDIiG,CAAY7tB,EAAG0qB,GACrCe,GAAoBzrB,EAAEsiB,OAAOkJ,KAAKxrB,EAAG0qB,MAhiDnB,IAkiDlBiD,GAjiDkB,IAiiDcA,MAChC7B,OAviDa,KAEK,IAuiDlB6B,GAriDkB,IAqiDSA,SACN,IAAnBpL,EAAKqF,cACLsE,eAGGvF,MA3iDa,IAojDlBgH,IACEjD,IAAU9F,MACF5kB,GAEH0qB,IAAUhE,QAEA1mB,EAAG,EAAG,GAAG,GAItB0qB,IAAUlE,QAEPxmB,EAAEsqB,MAEa,IAAhBtqB,EAAE+pB,cACF5B,SAAW,IACXD,YAAc,IACdqC,OAAS,QAIHhI,GACS,IAAnBA,EAAKqF,oBACLsE,cACKvF,UAOT+D,IAAUjE,GAAqBE,GAC/B3mB,EAAE2oB,MAAQ,EAAY/B,IAGX,IAAX5mB,EAAE2oB,SACK3oB,EAAgB,IAAbuiB,EAAKgB,UACRvjB,EAAIuiB,EAAKgB,OAAS,EAAK,QACvBvjB,EAAIuiB,EAAKgB,OAAS,GAAM,QACxBvjB,EAAIuiB,EAAKgB,OAAS,GAAM,QACxBvjB,EAAmB,IAAhBuiB,EAAKqG,aACR5oB,EAAIuiB,EAAKqG,UAAY,EAAK,QAC1B5oB,EAAIuiB,EAAKqG,UAAY,GAAM,QAC3B5oB,EAAIuiB,EAAKqG,UAAY,GAAM,UAIxB5oB,EAAGuiB,EAAKgB,QAAU,OAClBvjB,EAAgB,MAAbuiB,EAAKgB,WAGRhB,GAIVviB,EAAE2oB,KAAO,MAAOA,MAAQ3oB,EAAE2oB,MAET,IAAd3oB,EAAEyd,QAAgBkJ,GAASC,KAuInCkH,WAnImBvL,QAEbA,IAAsBA,EAAKvf,aACvB6jB,SAGHiF,EAASvJ,EAAKvf,MAAM8oB,cAhoDT,KAioDbA,GAhoDc,KAioDhBA,GAhoDe,KAioDfA,GAhoDkB,KAioDlBA,GAhoDe,MAioDfA,GAhoDe,MAioDfA,GAhoDiB,MAioDjBA,EAEO3E,GAAI5E,EAAMsE,OAGd7jB,MAAQ,KAvoDI,MAyoDV8oB,EAAwB3E,GAAI5E,EAAMuE,IAAkBH,KAgH5DoH,qBAxG4B,CAACxL,EAAMyL,SAE9BC,EAAaD,EAAWvwB,WAEvB8kB,IAAsBA,EAAKvf,aACvB6jB,SAGH7mB,EAAIuiB,EAAKvf,MACT2lB,EAAO3oB,EAAE2oB,QAEF,IAATA,GAAwB,IAATA,GAjqDF,KAiqDgB3oB,EAAE8rB,QAA0B9rB,EAAE+pB,iBACtDlD,MAII,IAAT8B,MAEGpF,MAAQD,GAAUf,EAAKgB,MAAOyK,EAAYC,EAAY,MAG3DtF,KAAO,EAGLsF,GAAcjuB,EAAEspB,OAAQ,CACb,IAATX,OAEG3oB,EAAEsqB,QACLnC,SAAW,IACXD,YAAc,IACdqC,OAAS,OAIT2D,EAAU,IAAIje,WAAWjQ,EAAEspB,UACvBza,IAAImf,EAAWzM,SAAS0M,EAAajuB,EAAEspB,OAAQ2E,GAAa,KACvDC,IACAluB,EAAEspB,aAGX6E,EAAQ5L,EAAKiG,SACb4F,EAAO7L,EAAKmG,QACZD,EAAQlG,EAAKkG,YACdD,SAAWyF,IACXvF,QAAU,IACVD,MAAQuF,KACDhuB,GACLA,EAAE+pB,WA3sDO,GA2sDiB,KAC3Bta,EAAMzP,EAAEmoB,SACRprB,EAAIiD,EAAE+pB,UAAa,OAGnBS,MAAQjD,GAAKvnB,EAAGA,EAAEwqB,MAAOxqB,EAAEshB,OAAO7R,EAhtDxB,EAgtD0C,MAEpD+X,KAAK/X,EAAMzP,EAAE0pB,QAAU1pB,EAAEsqB,KAAKtqB,EAAEwqB,SAEhCF,KAAKtqB,EAAEwqB,OAAS/a,cAET1S,KACTorB,SAAW1Y,IACXsa,UAAYgB,KACF/qB,YAEZmoB,UAAYnoB,EAAE+pB,YACd7B,YAAcloB,EAAEmoB,WAChBoC,OAASvqB,EAAE+pB,YACXA,UAAY,IACZc,aAAe7qB,EAAEmpB,YAAc4B,IAC/BI,gBAAkB,IACfzC,QAAU0F,IACV3F,MAAQA,IACRD,SAAW2F,IACdxF,KAAOA,EACFhC,IAgCR0H,YApBiB,sCAuBlB,MAAMC,GAAO,CAAChoB,EAAKtI,IACV2M,OAAOhI,UAAUmY,eAAexW,KAAKgC,EAAKtI,GAGnD,IA0CIuwB,GA1CS,SAAUjoB,SACfkoB,EAAU7tB,MAAMgC,UAAUf,MAAM0C,KAAK/G,UAAW,QAC/CixB,EAAQ/wB,QAAQ,OACfgxB,EAASD,EAAQzf,WAClB0f,MAEiB,iBAAXA,QACH,IAAIC,UAAUD,EAAS,gCAGpBtuB,KAAKsuB,EACVH,GAAKG,EAAQtuB,OACXA,GAAKsuB,EAAOtuB,YAKfmG,GAyBLioB,GApBiBI,QAEfhT,EAAM,UAEDjf,EAAI,EAAGM,EAAI2xB,EAAOlxB,OAAQf,EAAIM,EAAGN,OACjCiyB,EAAOjyB,GAAGe,aAIbmxB,EAAS,IAAI3e,WAAW0L,WAErBjf,EAAI,EAAG8mB,EAAM,EAAGxmB,EAAI2xB,EAAOlxB,OAAQf,EAAIM,EAAGN,IAAK,KAClDmyB,EAAQF,EAAOjyB,KACZmS,IAAIggB,EAAOrL,MACXqL,EAAMpxB,cAGRmxB,GAgBT,IAAIE,IAAmB,EAEvB,WAAaC,aAAaC,MAAM,KAAM,IAAI/e,WAAW,UAAc9R,QAAyB,EAM5F,MAAM8wB,GAAW,IAAIhf,WAAW,KAChC,QAASif,GAAI,EAAGA,GAAI,IAAKA,QACdA,IAAMA,IAAK,IAAM,EAAIA,IAAK,IAAM,EAAIA,IAAK,IAAM,EAAIA,IAAK,IAAM,EAAIA,IAAK,IAAM,EAAI,EAE5FD,GAAS,KAAOA,GAAS,KAAO,EAiFhC,IAyEIE,GAtJc1f,OACW,mBAAhB2f,aAA8BA,YAAYzsB,UAAU0sB,cACtD,IAAID,aAAcC,OAAO5f,OAG9BiM,EAAK3b,EAAGuvB,EAAIC,EAAO7yB,EAAG8yB,EAAU/f,EAAIhS,OAAQgyB,EAAU,MAGrDF,EAAQ,EAAGA,EAAQC,EAASD,MAC3B9f,EAAIie,WAAW6B,GACE,QAAZ,UAAuBA,EAAQ,EAAIC,MACrC/f,EAAIie,WAAW6B,EAAQ,GACN,QAAZ,aACJ,SAAgB,OAAW,OAAY,gBAIpCxvB,EAAI,IAAO,EAAIA,EAAI,KAAQ,EAAIA,EAAI,MAAU,EAAI,QAIxD,IAAIkQ,WAAWwf,GAGhB/yB,EAAI,EAAG6yB,EAAQ,EAAG7yB,EAAI+yB,EAASF,MAC9B9f,EAAIie,WAAW6B,GACE,QAAZ,UAAuBA,EAAQ,EAAIC,MACrC/f,EAAIie,WAAW6B,EAAQ,GACN,QAAZ,aACJ,SAAgB,OAAW,OAAY,aAI3CxvB,EAAI,MAEFrD,KAAOqD,EACFA,EAAI,QAETrD,KAAO,IAAQqD,IAAM,IACrBrD,KAAO,IAAY,GAAJqD,GACVA,EAAI,SAETrD,KAAO,IAAQqD,IAAM,KACrBrD,KAAO,IAAQqD,IAAM,EAAI,KACzBrD,KAAO,IAAY,GAAJqD,MAGfrD,KAAO,IAAQqD,IAAM,KACrBrD,KAAO,IAAQqD,IAAM,GAAK,KAC1BrD,KAAO,IAAQqD,IAAM,EAAI,KACzBrD,KAAO,IAAY,GAAJqD,UAIhB2b,GAgGLyT,GAzEa,CAACzT,EAAKxU,WACfyU,EAAMzU,GAAOwU,EAAIje,UAEI,mBAAhBiyB,aAA8BA,YAAY/sB,UAAUgtB,cACtD,IAAID,aAAcC,OAAOjU,EAAI6F,SAAS,EAAGra,QAG9CxK,EAAGkzB,QAKDC,EAAW,IAAIlvB,MAAY,EAANgb,OAEtBiU,EAAM,EAAGlzB,EAAI,EAAGA,EAAIif,GAAM,KACzB5b,EAAI2b,EAAIhf,QAERqD,EAAI,IAAM,GAAW6vB,KAAS7vB,eAE9B+vB,EAAQb,GAASlvB,MAEjB+vB,EAAQ,IAAcF,KAAS,SAAaE,EAAQ,cAGzC,IAAVA,EAAc,GAAiB,IAAVA,EAAc,GAAO,EAExCA,EAAQ,GAAKpzB,EAAIif,KACjB5b,GAAK,EAAiB,GAAX2b,EAAIhf,SAKlBozB,EAAQ,IAAcF,KAAS,MAE/B7vB,EAAI,QACG6vB,KAAS7vB,MAEb,QACI6vB,KAAS,MAAW7vB,GAAK,GAAM,OAC/B6vB,KAAS,MAAc,KAAJ7vB,UA1DZ,EAAC2b,EAAKC,QAItBA,EAAM,OACJD,EAAI6F,UAAYuN,UACX9kB,OAAO+kB,aAAaC,MAAM,KAAMtT,EAAIje,SAAWke,EAAMD,EAAMA,EAAI6F,SAAS,EAAG5F,QAIlFiT,EAAS,WACJlyB,EAAI,EAAGA,EAAIif,EAAKjf,OACbsN,OAAO+kB,aAAarT,EAAIhf,WAE7BkyB,GAgDAmB,CAAcF,EAAUD,IA8B7BT,GApBa,CAACzT,EAAKxU,QAEfA,GAAOwU,EAAIje,QACPie,EAAIje,WAAgBie,EAAIje,YAG9B+lB,EAAMtc,EAAM,OACTsc,GAAO,GAA2B,MAAV,MAAPA,gBAIpBA,EAAM,GAIE,IAARA,EAJkBtc,EAMdsc,EAAMyL,GAASvT,EAAI8H,IAAQtc,EAAOsc,EAAMtc,GAqDlD,IAAI8oB,GAzBJ,gBAEOvH,MAAQ,UACRC,QAAU,OAEVF,SAAW,OAEXI,SAAW,OAEXf,OAAS,UACTE,SAAW,OAEXH,UAAY,OAEZI,UAAY,OAEZX,IAAM,QAENrkB,MAAQ,UAERwf,UAAY,OAEZe,MAAQ,GAKf,MAAM0M,GAAatlB,OAAOhI,UAAUmN,UAMlC6U,WAAYuL,gBAAcrL,gBAAcC,GAAcC,SAAUoL,GAChEjL,KAAMkL,GAAQjL,aAAckL,yBAC5BxK,sBACAK,GACAI,WAAYgK,IACV5L,GA0FJ,YAAmB/T,QACZA,QAAU4d,GAAc,CAC3BjM,MAAOuD,GACPoG,OAAQqE,GACRC,UAAW,MACX5D,WAAY,GACZC,SAAU,EACV/J,SAAUqD,IACTvV,GAAW,QAEV6f,EAAM5xB,KAAK+R,QAEX6f,EAAIC,KAAQD,EAAI7D,WAAa,IAC3BA,YAAc6D,EAAI7D,WAGf6D,EAAIE,MAASF,EAAI7D,WAAa,GAAO6D,EAAI7D,WAAa,OACzDA,YAAc,SAGfxF,IAAS,OACTE,IAAS,QACTsJ,OAAS,OACThC,OAAS,QAETpM,KAAO,IAAIyN,QACXzN,KAAKqF,UAAY,MAElBkE,EAASgB,GAAYJ,aACvB9tB,KAAK2jB,KACLiO,EAAIlO,MACJkO,EAAIvE,OACJuE,EAAI7D,WACJ6D,EAAI5D,SACJ4D,EAAI3N,aAGFiJ,IAAWsE,SACP,IAAIQ,MAAM5M,GAAS8H,OAGvB0E,EAAInP,WACM2L,iBAAiBpuB,KAAK2jB,KAAMiO,EAAInP,QAG1CmP,EAAIxC,WAAY,KACd6C,OAE0B,iBAAnBL,EAAIxC,WAENmB,GAAmBqB,EAAIxC,YACe,yBAApCiC,GAAW3rB,KAAKksB,EAAIxC,YACtB,IAAI/d,WAAWugB,EAAIxC,YAEnBwC,EAAIxC,aAGJlB,GAAYiB,qBAAqBnvB,KAAK2jB,KAAMsO,GAEjD/E,IAAWsE,SACP,IAAIQ,MAAM5M,GAAS8H,SAGtBgF,WAAY,GA0BrBC,GAAUpuB,UAAUjF,KAAO,SAAU2G,EAAM2sB,SACnCzO,EAAO3jB,KAAK2jB,KACZgO,EAAY3xB,KAAK+R,QAAQ4f,cAC3BzE,EAAQmF,KAERryB,KAAK+xB,aAAgB,QAErBK,MAAiBA,EAA0BA,GACb,IAAfA,EAAsBb,GAAaD,GAGlC,iBAAT7rB,IAEJokB,MAAQ0G,GAAmB9qB,GACG,yBAA1B4rB,GAAW3rB,KAAKD,KACpBokB,MAAQ,IAAIxY,WAAW5L,KAEvBokB,MAAQpkB,IAGVqkB,QAAU,IACVF,SAAWjG,EAAKkG,MAAMhrB,YAGF,IAAnB8kB,EAAKqF,cACFC,OAAS,IAAI5X,WAAWsgB,KACxBxI,SAAW,IACXH,UAAY2I,QAIE1L,IAAgBoM,IAAgBnM,KAAiBvC,EAAKqF,WAAa,OACjFsJ,OAAO3O,EAAKsF,OAAOtG,SAAS,EAAGgB,EAAKwF,aACpCH,UAAY,YAIVkF,GAAYG,QAAQ1K,EAAM0O,GAG/BnF,IAAWuE,UACT9N,EAAKwF,SAAW,QACbmJ,OAAO3O,EAAKsF,OAAOtG,SAAS,EAAGgB,EAAKwF,aAElC+E,GAAYgB,WAAWlvB,KAAK2jB,WAChC4O,MAAMrF,QACN6E,OAAQ,EACN7E,IAAWsE,MAIG,IAAnB7N,EAAKqF,cAMLqJ,EAAc,GAAK1O,EAAKwF,SAAW,OAChCmJ,OAAO3O,EAAKsF,OAAOtG,SAAS,EAAGgB,EAAKwF,aACpCH,UAAY,UAIG,IAAlBrF,EAAKiG,yBAXF0I,OAAO3O,EAAKsF,eAcd,GAWTkJ,GAAUpuB,UAAUuuB,OAAS,SAAUrC,QAChCF,OAAOjxB,KAAKmxB,IAanBkC,GAAUpuB,UAAUwuB,MAAQ,SAAUrF,GAEhCA,IAAWsE,UACRxB,OAASL,GAAqB3vB,KAAK+vB,cAErCA,OAAS,QACTxH,IAAM2E,OACNzE,IAAMzoB,KAAK2jB,KAAK8E,KAsJvB,IAAI+J,GAAU,SAAsB7O,EAAMlV,OACpCgkB,EACAjQ,EACAkQ,EACApE,EACAtf,EAEA2jB,EAEAC,EACAC,EACAC,EAEAC,EACAC,EACAvT,EACAwT,EACAC,EACAC,EACAC,EACAC,EACAC,EAEAvW,EACA2B,EACAlN,EACA+hB,EAGA1J,EAAOZ,QAGL7kB,EAAQuf,EAAKvf,QAEbuf,EAAKmG,UACHnG,EAAKkG,QACN4I,KAAY7I,SAAW,KACvBjG,EAAKwF,WACHxF,EAAKsF,SACRyJ,KAAgB/O,EAAKqF,aACrB0J,KAAa1J,UAAY,OAExB5kB,EAAMuuB,OAELvuB,EAAMwuB,QACNxuB,EAAMyuB,QACNzuB,EAAM0uB,QACH1uB,EAAMse,SACVte,EAAM4uB,OACN5uB,EAAMqb,OACLrb,EAAMovB,UACNpvB,EAAMqvB,eACArvB,EAAMsvB,SAAW,QACjBtvB,EAAMuvB,UAAY,MAO7B,CACGlU,EAAO,QACDoK,EAAM4I,MAAUhT,KAChB,KACAoK,EAAM4I,MAAUhT,KAChB,KAGHwT,EAAMD,EAAOG,YAGX,MACFE,IAAS,QACJC,KACFA,IACFD,IAAS,GAAM,IACV,IAAPC,IAIKZ,KAAiB,MAAPW,YAEL,GAALC,OAwKc,IAAR,MAAW,GACjBL,GAAc,gBAAqCK,GAAM,kBAGpD,GAALA,EAAS,GAEVM,KArSC,aAySFnL,IAAM,gCACLmL,KA3SA,aAyHO,MAAPP,KACA,GACFC,IACE7T,EAAO6T,OACDzJ,EAAM4I,MAAUhT,KAChB,MAEHuT,MAAcM,GAAM,OACjBA,KACFA,GAGN7T,EAAO,QACDoK,EAAM4I,MAAUhT,KAChB,KACAoK,EAAM4I,MAAUhT,KAChB,KAEHyT,EAAMF,EAAOI,YAGX,MACFC,IAAS,QACJC,KACFA,IACFD,IAAS,GAAM,MAEZ,GAALC,OA+HmB,IAAR,MAAW,GACjBJ,GAAc,gBAAqCI,GAAM,iBAI3D7K,IAAM,0BACLmL,KAzRJ,gBAqJY,MAAPP,KACD,GACF5T,EAAO6T,OACDzJ,EAAM4I,MAAUhT,KAChB,EACJA,EAAO6T,OACDzJ,EAAM4I,MAAUhT,KAChB,OAGJuT,MAAcM,GAAM,EAExB5U,EAAOiU,EAAM,GACVlK,IAAM,kCACLmL,KAnKN,mBAuKQN,KACFA,IAEHZ,EAAOpE,EACR5P,EAAO4U,EAAI,MACR5U,EAAO4U,EACRA,EAAKT,GACHzuB,EAAMyvB,KAAM,GACTpL,IAAM,kCACLmL,KAhLV,gBA0MO,IACOb,EACA,IAAVD,SACMF,EAAQU,EACZA,EAAKvW,EAAK,IACLuW,OAEEZ,KAAUK,EAASvhB,aACjB8hB,KACJZ,EAAOhU,IACAuK,WAGT6J,EAAQQ,SACPV,EAAQE,EAAQQ,KAClBR,EACFQ,EAAKvW,EAAK,IACLuW,OAEEZ,KAAUK,EAASvhB,aACjB8hB,QACJ,EACHR,EAAQ/V,EAAK,GACV+V,KACEQ,OAEEZ,KAAUK,EAASvhB,aACjB8hB,KACJZ,EAAOhU,IACAuK,eAKV6J,EAAQQ,EACZA,EAAKvW,EAAK,IACLuW,OAEEZ,KAAUK,EAASvhB,aACjB8hB,KACJZ,EAAOhU,IACAuK,OAGXlM,EAAM,KACJ2V,KAAUa,EAAY/hB,OACtBkhB,KAAUa,EAAY/hB,OACtBkhB,KAAUa,EAAY/hB,QACtB,EAELuL,MACK2V,KAAUa,EAAY/hB,KACzBuL,EAAM,MACD2V,KAAUa,EAAY/hB,WAI9B,GACIkhB,EAAOhU,OAELgU,KAAUzJ,EAAOzX,OACjBkhB,KAAUzJ,EAAOzX,OACjBkhB,KAAUzJ,EAAOzX,QACjB,QACAuL,EAAM,GACXA,MACK2V,KAAUzJ,EAAOzX,KACpBuL,EAAM,MACD2V,KAAUzJ,EAAOzX,2BAmC/BihB,EAAMjQ,GAAQkQ,EAAO1jB,KAGxByQ,GAAQ,KACP1C,KACCA,GAAO,SACD0C,GAAQ,IAGjBqK,QAAU2I,IACVtJ,SAAWuJ,IACX9I,SAAY6I,EAAMjQ,IAAmBiQ,EAAZ,EAAmB,KAAWjQ,KACvDwG,UAAa0J,EAAO1jB,IAAmB0jB,EAAb,IAAqB,OAAc1jB,KAC5DgkB,KAAOA,IACPvT,KAAOA,GAuBf,MASMqU,GAAQ,IAAIrG,YAAY,CAC5B,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACrD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAGzDsG,GAAO,IAAI1iB,WAAW,CAC1B,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KAGpD2iB,GAAQ,IAAIvG,YAAY,CAC5B,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IACtD,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAClD,KAAM,MAAO,MAAO,MAAO,EAAG,IAG1BwG,GAAO,IAAI5iB,WAAW,CAC1B,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpC,GAAI,GAAI,GAAI,GAAI,GAAI,KAsStB,IAAI6iB,GAnSkB,CAACjqB,EAAMkqB,EAAMC,EAAYC,EAAOrP,EAAOsP,EAAaC,EAAM1sB,WAExE4X,EAAO5X,EAAK4X,SAYd+U,EACAC,EACAC,EACAC,EACAnF,EAIAxgB,EAjBA+N,EAAM,EACN6X,EAAM,EACNjf,EAAM,EAAGrN,EAAM,EACfusB,EAAO,EACPC,EAAO,EACPC,EAAO,EACPC,EAAO,EACPC,EAAO,EACPC,EAAO,EAMP90B,EAAO,KACP+0B,EAAa,QAGXrT,EAAQ,IAAI2L,YAAY2H,IACxBC,EAAO,IAAI5H,YAAY2H,QAIzBE,EAAWC,EAASC,EAHpBxU,EAAQ,KACRyU,EAAc,MAoCb1Y,EAAM,EAAGA,GA7FA,GA6FgBA,MACtBA,GAAO,MAEV6X,EAAM,EAAGA,EAAMP,EAAOO,MACnBT,EAAKC,EAAaQ,YAInBnV,EACFnX,EAtGS,GAsGMA,GAAO,GACN,IAAfwZ,EAAMxZ,GADkBA,QAG1BusB,EAAOvsB,MACFA,GAEG,IAARA,WAIIgsB,KAAkB,WAMlBA,KAAkB,WAEnB7U,KAAO,EACL,MAEJ9J,EAAM,EAAGA,EAAMrN,GACC,IAAfwZ,EAAMnM,GADaA,SAGrBkf,EAAOlf,MACFA,KAIF,EACFoH,EAAM,EAAGA,GApIA,GAoIgBA,WACnB,KACD+E,EAAM/E,GACViY,EAAO,cAITA,EAAO,IAtIG,OAsI+B,IAAR1sB,kBAKhC,GAAK,EACLyU,EAAM,EAAGA,EAjJA,GAiJeA,MACtBA,EAAM,GAAKsY,EAAKtY,GAAO+E,EAAM/E,OAI/B6X,EAAM,EAAGA,EAAMP,EAAOO,IACM,IAA3BT,EAAKC,EAAaQ,OACfS,EAAKlB,EAAKC,EAAaQ,OAAWA,MAnJ7B,IAyLV3qB,KACK+W,EAAQuT,IACT,IA1LK,IA4LFtqB,KACF6pB,MACO,MACNC,MACO,MACT,QAGCC,KACCC,WAKH,IACD,IACAte,IACC2e,IACAO,IACA,SAEA,GAAKA,IACLI,EAAO,EAlND,IAqNRhrB,GAAmBgrB,EA1NJ,KAMN,IAqNXhrB,GAAoBgrB,EA1NF,WA2NZ,SAIA,GAEKlY,EAAMgY,EACdR,EAAKK,GAAO5lB,KACJ,IACCulB,EAAKK,IAETL,EAAKK,GAAO5lB,KACTgS,EAAMyU,EAAclB,EAAKK,MACxBx0B,EAAK+0B,EAAaZ,EAAKK,QAGxB,KACC,KAIN,GAAM7X,EAAMgY,IACZ,GAAKD,IACNL,QAEID,IACFhF,MAAgBuF,GAAQN,GAASa,GAAa,GAAOC,GAAW,GAAMC,EAAU,QACtE,IAATf,SAGF,GAAM1X,EAAM,EACZmY,EAAOV,OACH,KAEE,IAATA,MACMA,EAAO,KACPA,KAED,MAKY,KAAf1S,EAAM/E,GAAY,IAClBA,IAAQzU,UACN6rB,EAAKC,EAAaG,EAAKK,OAI3B7X,EAAM8X,MAAgBF,KAAUD,EAAK,KAE1B,IAATK,MACKF,MAIDlf,IAGDoH,EAAMgY,IACN,GAAKD,EACLA,EAAOC,EAAOzsB,OACXwZ,EAAMgT,EAAOC,KACjBC,GAAQ,aAEH,QAIH,GAAKF,EA5RJ,IA6RJ7qB,GAAmBgrB,EAlSR,KAMN,IA6RPhrB,GAAoBgrB,EAlSN,WAmSR,IAIHC,EAAOP,IAIPD,GAAQG,GAAQ,GAAOC,GAAQ,GAAOtF,EAAO8E,EAAc,UAOxD,IAATY,MAII1F,EAAO0F,GAAUnY,EAAMgY,GAAS,GAAO,IAAM,GAAK,KAKrDtV,KAAOoV,EACL,GA8BT,MAQE1O,SAAUuP,WAAYtP,WAASC,GAC/BC,KAAMqP,GAAQpP,aAAcqP,GAAgBpP,YAAaqP,GAAenP,eAAgBoP,GAAkBnP,aAAcoP,GAAgBnP,YAAaoP,eAAenP,cACpKa,IACE5B,GAqDEmQ,GAAW3F,QAEE,GAAM,UACP,EAAK,SACP,UAAW,KACX,QAAS,IAIzB,mBACOsD,KAAO,OACPlgB,MAAO,OACPqW,KAAO,OACPmM,UAAW,OACXvtB,MAAQ,OACRgqB,KAAO,OACPwD,MAAQ,OACRC,MAAQ,OAER1K,KAAO,UAGP2K,MAAQ,OACRzD,MAAQ,OACRC,MAAQ,OACRC,MAAQ,OACRpQ,OAAS,UAGTsQ,KAAO,OACPvT,KAAO,OAGP5gB,OAAS,OACT+Q,OAAS,OAGToR,MAAQ,OAGRwS,QAAU,UACVC,SAAW,UACXC,QAAU,OACVC,SAAW,OAGX2C,MAAQ,OACRC,KAAO,OACPC,MAAQ,OACRC,KAAO,OACPC,KAAO,UAEPvC,KAAO,IAAI1G,YAAY,UACvB8G,KAAO,IAAI9G,YAAY,UAOvBkJ,OAAS,UACTC,QAAU,UACV/C,KAAO,OACPgD,KAAO,OACPC,IAAM,EAIb,MAAMC,GAAoBpT,QAEnBA,IAASA,EAAKvf,aAAgB0xB,SAC7B1xB,EAAQuf,EAAKvf,eACd4lB,SAAWrG,EAAKyF,UAAYhlB,EAAMgyB,MAAQ,IAC1C3N,IAAM,GACPrkB,EAAM2lB,SACHpF,MAAqB,EAAbvgB,EAAM2lB,QAEf6J,KA3HQ,IA4HRlgB,KAAO,IACPwiB,SAAW,IACXvD,KAAO,QACPjH,KAAO,OACPsH,KAAO,IACPvT,KAAO,IAEP+T,QAAUpvB,EAAMuyB,OAAS,IAAIK,WA9FjB,OA+FZvD,SAAWrvB,EAAMwyB,QAAU,IAAII,WA9FlB,OAgGbnD,KAAO,IACPgD,QAEClB,IAIHsB,GAAgBtT,QAEfA,IAASA,EAAKvf,aAAgB0xB,SAC7B1xB,EAAQuf,EAAKvf,eACbwuB,MAAQ,IACRC,MAAQ,IACRC,MAAQ,EACPiE,GAAiBpT,IAKpBuT,GAAgB,CAACvT,EAAMoK,SACvBhE,MAGCpG,IAASA,EAAKvf,aAAgB0xB,SAC7B1xB,EAAQuf,EAAKvf,aAGf2pB,EAAa,KACR,KACOA,MAGa,MAAL,GAClBA,EAAa,QACD,KAKdA,MAA4B,GAAKA,EAAa,IACzC+H,IAEY,OAAjB1xB,EAAMse,QAAmBte,EAAMiyB,QAAUtI,MACrCrL,OAAS,QAIXqH,KAAOA,IACPsM,MAAQtI,EACPkJ,GAAatT,KAIhBwT,GAAe,CAACxT,EAAMoK,SAErBpK,SAAemS,SAGd1xB,EAAQ,IAAIgzB,KAIbhzB,MAAQA,IACPse,OAAS,WACT5a,EAAMovB,GAAcvT,EAAMoK,UAC5BjmB,IAAQ6tB,OACLvxB,MAAQ,MAER0D,GAoBT,IAEIuvB,GAAQC,GAFRC,IAAS,EAKb,MAAMC,GAAepzB,OAGfmzB,GAAQ,IACD,IAAIP,WAAW,QACd,IAAIA,WAAW,QAGrBpC,EAAM,OACHA,EAAM,OAAaT,KAAKS,KAAS,OACjCA,EAAM,OAAaT,KAAKS,KAAS,OACjCA,EAAM,OAAaT,KAAKS,KAAS,OACjCA,EAAM,OAAaT,KAAKS,KAAS,SAhQ/B,EAkQOxwB,EAAM+vB,KAAM,EAAG,IAAKkD,GAAU,EAAGjzB,EAAMmwB,KAAM,CAAE9U,KAAM,MAG/D,EACCmV,EAAM,MAAYT,KAAKS,KAAS,KArQ7B,EAuQMxwB,EAAM+vB,KAAM,EAAG,GAAMmD,GAAS,EAAGlzB,EAAMmwB,KAAM,CAAE9U,KAAM,QAG5D,IAGL+T,QAAU6D,KACV3D,QAAU,IACVD,SAAW6D,KACX3D,SAAW,GAkBb8D,GAAe,CAAC9T,EAAM+T,EAAK1oB,EAAKK,SAEhCqP,QACEta,EAAQuf,EAAKvf,aAGE,OAAjBA,EAAMse,WACFkQ,MAAQ,GAAKxuB,EAAMiyB,QACnBvD,MAAQ,IACRD,MAAQ,IAERnQ,OAAS,IAAIrR,WAAWjN,EAAMwuB,QAIlCvjB,GAAQjL,EAAMwuB,SACVlQ,OAAOzS,IAAIynB,EAAI/U,SAAS3T,EAAM5K,EAAMwuB,MAAO5jB,GAAM,KACjD8jB,MAAQ,IACRD,MAAQzuB,EAAMwuB,UAGbxuB,EAAMwuB,MAAQxuB,EAAM0uB,MACvBpU,EAAOrP,MACFA,KAGHqT,OAAOzS,IAAIynB,EAAI/U,SAAS3T,EAAMK,EAAML,EAAMK,EAAOqP,GAAOta,EAAM0uB,WAC5DpU,MAGAgE,OAAOzS,IAAIynB,EAAI/U,SAAS3T,EAAMK,EAAML,GAAM,KAC1C8jB,MAAQzjB,IACRwjB,MAAQzuB,EAAMwuB,UAGdE,OAASpU,EACXta,EAAM0uB,QAAU1uB,EAAMwuB,UAAeE,MAAQ,GAC7C1uB,EAAMyuB,MAAQzuB,EAAMwuB,UAAeC,OAASnU,KAG7C,GA8oCT,IAqBIiZ,GAAc,CACjBV,aAtBoBA,GAuBpBC,cAtBqBA,GAuBrBH,iBAtBwBA,GAuBxBa,YAnxCoBjU,GAEZwT,GAAaxT,EAvKJ,IAy7CjBwT,aAtBoBA,GAuBpBU,QArqCiB,CAAClU,EAAMmI,SAEnB1nB,EACAylB,EAAOZ,EACPuG,EACAsI,EACArB,EAAMzB,EACNhC,EACAvT,EACAgT,EAAKC,EACLrjB,EACAmC,EACA+hB,EAEA+B,EAAWC,EAASC,EAEpBuC,EAAWC,EAASC,EACpBlb,EACAjV,EALAurB,EAAO,QAML6E,EAAO,IAAI7mB,WAAW,OACxBxJ,EAEA1J,QAEEg6B,EACJ,IAAI9mB,WAAW,CAAE,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,SAG5EsS,IAASA,EAAKvf,QAAUuf,EAAKsF,SAC5BtF,EAAKkG,OAA2B,IAAlBlG,EAAKiG,gBAChBkM,KAGDnS,EAAKvf,MApVK,KAqVdA,EAAMwvB,SAAuBA,KApVb,MAwVdjQ,EAAKwF,WACFxF,EAAKsF,SACPtF,EAAKqF,YACLrF,EAAKmG,UACJnG,EAAKkG,QACNlG,EAAKiG,WACLxlB,EAAM4uB,OACN5uB,EAAMqb,OAGPgX,IACCzB,IACDW,mBAIIvxB,EAAMwvB,WApXF,KAsXW,IAAfxvB,EAAM2lB,KAAY,GACd6J,KA3WM,cA+WPnU,EAAO,IAAI,IACH,IAATgX,iBAEI5M,EAAM2F,MAAW/P,KACjB,KAGQ,EAAbrb,EAAM2lB,MAAsB,QAATiJ,EAAiB,GACjCmD,MAAQ,IAET,GAAY,IAAPnD,IACL,GAAMA,IAAS,EAAK,MACnBmD,MAAQjR,GAAQ9gB,EAAM+xB,MAAO+B,EAAM,EAAG,KAIrC,IACA,IAEDtE,KA7YC,aAgZHjrB,MAAQ,EACVvE,EAAMsnB,SACFA,KAAK0M,MAAO,KAED,IAAPrO,UACA,QAAoB,OAAc,IAAM,GAAI,GACjDtB,IAAM,2BACLmL,KA3XD,aA8XK,QAAqBlM,GAAY,GACtCe,IAAM,+BACLmL,KAhYD,iBAoYG,KACF,IAEyB,GAAnB,MACM,IAAhBxvB,EAAMiyB,QACFA,MAAQtZ,UAEPA,EAAM3Y,EAAMiyB,MAAO,GACrB5N,IAAM,wBACLmL,KA7YD,WAmZDjB,KAAO,GAAKvuB,EAAMiyB,QAInB1R,MAAQvgB,EAAM+xB,MAAQ,IACrBvC,KAAc,IAAPZ,EA5aH,GAEE,KA4aL,IACA,aAvbE,OA4bFvT,EAAO,IAAI,IACH,IAATgX,iBAEI5M,EAAM2F,MAAW/P,KACjB,OAGJ9W,MAAQqqB,GACK,MAARrqB,SAAkB+e,GAAY,GAClCe,IAAM,+BACLmL,KA1aD,YA6aW,MAAdxvB,EAAMuE,MAAgB,GACnB8f,IAAM,6BACLmL,KA/aD,SAkbHxvB,EAAMsnB,SACFA,KAAK8C,KAASwE,GAAQ,EAAK,GAEjB,IAAd5uB,EAAMuE,UAEH,GAAY,IAAPqqB,IACL,GAAMA,IAAS,EAAK,MACnBmD,MAAQjR,GAAQ9gB,EAAM+xB,MAAO+B,EAAM,EAAG,MAIvC,IACA,IAEDtE,KA3dE,OAAA,OA+dDnU,EAAO,IAAI,IACH,IAATgX,iBAEI5M,EAAM2F,MAAW/P,KACjB,EAGNrb,EAAMsnB,SACFA,KAAKiD,KAAOqE,GAEF,IAAd5uB,EAAMuE,UAEH,GAAY,IAAPqqB,IACL,GAAMA,IAAS,EAAK,MACpB,GAAMA,IAAS,GAAM,MACrB,GAAMA,IAAS,GAAM,MACpBmD,MAAQjR,GAAQ9gB,EAAM+xB,MAAO+B,EAAM,EAAG,MAIvC,IACA,IAEDtE,KArfA,OAAA,OAyfCnU,EAAO,IAAI,IACH,IAATgX,iBAEI5M,EAAM2F,MAAW/P,KACjB,EAGNrb,EAAMsnB,SACFA,KAAK2M,OAAiB,IAAPrF,IACftH,KAAKkD,GAAMoE,GAAQ,GAET,IAAd5uB,EAAMuE,UAEH,GAAY,IAAPqqB,IACL,GAAMA,IAAS,EAAK,MACnBmD,MAAQjR,GAAQ9gB,EAAM+xB,MAAO+B,EAAM,EAAG,MAIvC,IACA,IAEDtE,KA9gBG,OAAA,KAihBS,KAAdxvB,EAAMuE,MAAgB,MAEjB8W,EAAO,IAAI,IACH,IAATgX,iBAEI5M,EAAM2F,MAAW/P,KACjB,IAGJ5gB,OAASm0B,EACX5uB,EAAMsnB,SACFA,KAAK4M,UAAYtF,GAEP,IAAd5uB,EAAMuE,UAEH,GAAY,IAAPqqB,IACL,GAAMA,IAAS,EAAK,MACnBmD,MAAQjR,GAAQ9gB,EAAM+xB,MAAO+B,EAAM,EAAG,MAIvC,IACA,OAGA9zB,EAAMsnB,SACPA,KAAK1K,MAAQ,QAEf4S,KA5iBG,OAAA,KA+iBS,KAAdxvB,EAAMuE,UACDvE,EAAMvF,OACTwQ,EAAOonB,MAAeA,GACtBpnB,IACEjL,EAAMsnB,SACFtnB,EAAMsnB,KAAK4M,UAAYl0B,EAAMvF,OAC9BuF,EAAMsnB,KAAK1K,UAER0K,KAAK1K,MAAQ,IAAI3P,WAAWjN,EAAMsnB,KAAK4M,cAEzC5M,KAAK1K,MAAM/Q,IACf4Z,EAAMlH,SACJ6M,EAGAA,EAAOngB,GAGT0N,IAMc,IAAd3Y,EAAMuE,UACFwtB,MAAQjR,GAAQ9gB,EAAM+xB,MAAOtM,EAAOxa,EAAMmgB,OAE1CngB,KACAA,IACFxQ,QAAUwQ,GAEdjL,EAAMvF,kBAENA,OAAS,IACT+0B,KAhlBE,OAAA,KAmlBU,KAAdxvB,EAAMuE,MAAgB,IACX,IAAT8tB,YACG,OAGC5M,EAAM2F,EAAOngB,KAEfjL,EAAMsnB,MAAQ3O,GACb3Y,EAAMvF,OAAS,UACZ6sB,KAAK5lB,MAAQsF,OAAO+kB,aAAapT,UAElCA,GAAO1N,EAAOonB,MAEL,IAAdryB,EAAMuE,UACFwtB,MAAQjR,GAAQ9gB,EAAM+xB,MAAOtM,EAAOxa,EAAMmgB,OAE1CngB,KACAA,EACJ0N,eAEG3Y,EAAMsnB,SACPA,KAAK5lB,KAAO,QAEdjH,OAAS,IACT+0B,KA1mBK,OAAA,KA6mBO,KAAdxvB,EAAMuE,MAAgB,IACX,IAAT8tB,YACG,OAEC5M,EAAM2F,EAAOngB,KAEfjL,EAAMsnB,MAAQ3O,GACb3Y,EAAMvF,OAAS,UACZ6sB,KAAKgD,SAAWtjB,OAAO+kB,aAAapT,UAErCA,GAAO1N,EAAOonB,MACL,IAAdryB,EAAMuE,UACFwtB,MAAQjR,GAAQ9gB,EAAM+xB,MAAOtM,EAAOxa,EAAMmgB,OAE1CngB,KACAA,EACJ0N,eAEG3Y,EAAMsnB,SACPA,KAAKgD,QAAU,QAEjBkF,KAjoBE,OAAA,KAooBU,IAAdxvB,EAAMuE,MAAgB,MAEjB8W,EAAO,IAAI,IACH,IAATgX,iBAEI5M,EAAM2F,MAAW/P,KACjB,KAGNuT,KAAwB,QAARmD,OAAiB,GAC9B1N,IAAM,wBACLmL,KA1nBH,WA8nBE,IACA,EAGLxvB,EAAMsnB,SACFA,KAAK+C,KAASrqB,EAAMuE,OAAS,EAAK,IAClC+iB,KAAK0M,MAAO,KAEfzT,MAAQvgB,EAAM+xB,MAAQ,IACrBvC,KAzpBM,cAFF,QA+pBHnU,EAAO,IAAI,IACH,IAATgX,iBAEI5M,EAAM2F,MAAW/P,KACjB,IAGLkF,MAAQvgB,EAAM+xB,MAAQF,GAAQjD,KAE5B,IACA,IAEDY,KA1qBE,QAAA,MA6qBe,IAAnBxvB,EAAM8xB,kBAEH/M,SAAW2O,IACX9O,UAAYgM,IACZlL,QAAU0F,IACV5F,SAAW6M,IACVzD,KAAOA,IACPvT,KAAOA,EAENoW,KAEJlR,MAAQvgB,EAAM+xB,MAAQ,IACrBvC,KAxrBM,QAAA,MA2rBR9H,IAAU1F,IAAW0F,IAAUzF,gBA1rBrB,MA6rBVjiB,EAAMsP,KAAM,MAEG,EAAP+L,KACK,EAAPA,IAEFmU,KAprBC,cAwrBFnU,EAAO,GAAG,IACF,IAATgX,iBAEI5M,EAAM2F,MAAW/P,KACjB,WAGJ/L,KAAe,EAAPsf,OAEJ,KACF,EAGQ,EAAPA,QACF,IAGGY,KAttBI,cAwtBP,QACSxvB,KAGNwvB,KAttBM,GAutBR9H,IAAUzF,GAAS,MAEX,KACF,qBAKP,IAGGuN,KAruBG,cAuuBN,IACEnL,IAAM,uBACLmL,KA5tBH,QA+tBG,KACF,aAhvBM,YAqvBG,EAAPnU,KACK,EAAPA,EAGDA,EAAO,IAAI,IACH,IAATgX,iBAEI5M,EAAM2F,MAAW/P,KACjB,MAGE,eAAuB,GAAM,OAAS,GAC3CgJ,IAAM,iCACLmL,KAlvBD,cAqvBD/0B,OAAgB,MAAPm0B,IAIR,IACA,IAEDY,KA3wBO,GA4wBT9H,IAAUzF,gBA5wBD,KA+wBPuN,KA9wBM,QAAA,QAixBLxvB,EAAMvF,OACTwQ,EAAM,IACJA,EAAOonB,MAAeA,GACtBpnB,EAAO2lB,MAAeA,GACb,IAAT3lB,YAEGY,IAAI4Z,EAAMlH,SAAS6M,EAAMA,EAAOngB,GAAOyoB,MAEtCzoB,KACAA,KACAA,KACDA,IACDxQ,QAAUwQ,UAIZukB,KAryBM,cAKC,QAoyBNnU,EAAO,IAAI,IACH,IAATgX,iBAEI5M,EAAM2F,MAAW/P,KACjB,OAGJ8W,KAAkC,KAAnB,WAEX,KACF,IAEFC,MAAmC,GAAnB,WAEZ,KACF,IAEFF,MAAmC,GAAnB,WAEZ,KACF,EAGJlyB,EAAMmyB,KAAO,KAAOnyB,EAAMoyB,MAAQ,GAAI,GACnC/N,IAAM,wCACLmL,KAhzBD,WAqzBD6C,KAAO,IACP7C,KAl0BS,QAAA,QAq0BRxvB,EAAMqyB,KAAOryB,EAAMkyB,OAAO,MAExB7W,EAAO,GAAG,IACF,IAATgX,iBAEI5M,EAAM2F,MAAW/P,KACjB,IAGJ0U,KAAKgE,EAAM/zB,EAAMqyB,SAAmB,EAAPzD,OAEzB,KACF,OAGH5uB,EAAMqyB,KAAO,MACZtC,KAAKgE,EAAM/zB,EAAMqyB,SAAW,OAM9BjD,QAAUpvB,EAAMuyB,SAChBjD,QAAU,IAET,CAAEjU,KAAMrb,EAAMsvB,WACfQ,GAl4BA,EAk4BgB9vB,EAAM+vB,KAAM,EAAG,GAAI/vB,EAAMovB,QAAS,EAAGpvB,EAAMmwB,KAAM1sB,KACjE6rB,QAAU7rB,EAAK4X,KAEjB3X,EAAK,GACF2gB,IAAM,6BACLmL,KAx1BD,WA41BD6C,KAAO,IACP7C,KAx2BU,QAAA,QA22BTxvB,EAAMqyB,KAAOryB,EAAMmyB,KAAOnyB,EAAMoyB,OAAO,QAEnCpyB,EAAMovB,QAAQR,MAAc5uB,EAAMsvB,SAAW,KACxCL,IAAS,KACVA,IAAS,GAAM,MACR,MAAPA,IAENiC,GAAc7V,IANZ,IAQM,IAATgX,iBAEI5M,EAAM2F,MAAW/P,KACjB,KAGN+V,EAAW,QAEHF,KACFA,IAEFnB,KAAK/vB,EAAMqyB,QAAUjB,MAExB,IACc,KAAbA,EAAiB,OAEfF,EAAY,EACT7V,EAAOthB,GAAG,IACF,IAATs4B,iBAEI5M,EAAM2F,MAAW/P,KACjB,UAIA6V,KACFA,EAEW,IAAflxB,EAAMqyB,KAAY,GACfhO,IAAM,8BACLmL,KAv4BP,WA04BKxvB,EAAM+vB,KAAK/vB,EAAMqyB,KAAO,KACvB,GAAY,UAET,KACF,UAGY,KAAbjB,EAAiB,OAEpBF,EAAY,EACT7V,EAAOthB,GAAG,IACF,IAATs4B,iBAEI5M,EAAM2F,MAAW/P,KACjB,OAIA6V,KACFA,IAEF,IACC,GAAY,UAET,KACF,MAGL,OAECA,EAAY,EACT7V,EAAOthB,GAAG,IACF,IAATs4B,iBAEI5M,EAAM2F,MAAW/P,KACjB,OAIA6V,KACFA,IAEF,IACC,IAAa,YAEV,KACF,KAGNlxB,EAAMqyB,KAAOpnB,EAAOjL,EAAMmyB,KAAOnyB,EAAMoyB,MAAO,GAC3C/N,IAAM,8BACLmL,KA77BL,cAg8BIvkB,OACC8kB,KAAK/vB,EAAMqyB,QAAU1Z,MAj8B1B,KAu8BH3Y,EAAMwvB,cAGc,IAApBxvB,EAAM+vB,KAAK,KAAY,GACpB1L,IAAM,yCACLmL,KA58BD,cAm9BDF,QAAU,IAET,CAAEjU,KAAMrb,EAAMsvB,WACfQ,GApgCD,EAogCgB9vB,EAAM+vB,KAAM,EAAG/vB,EAAMmyB,KAAMnyB,EAAMovB,QAAS,EAAGpvB,EAAMmwB,KAAM1sB,KAGxE6rB,QAAU7rB,EAAK4X,KAGjB3X,EAAK,GACF2gB,IAAM,gCACLmL,KA99BD,cAk+BDD,SAAW,IAGXF,SAAWrvB,EAAMwyB,UAChB,CAAEnX,KAAMrb,EAAMuvB,YACfO,GAphCA,EAohCgB9vB,EAAM+vB,KAAM/vB,EAAMmyB,KAAMnyB,EAAMoyB,MAAOpyB,EAAMqvB,SAAU,EAAGrvB,EAAMmwB,KAAM1sB,KAGpF8rB,SAAW9rB,EAAK4X,KAGlB3X,EAAK,GACF2gB,IAAM,0BACLmL,KA/+BD,cAm/BDA,KA7/BU,GA8/BZ9H,IAAUzF,gBA9/BE,KAigCVuN,KAhgCS,QAAA,MAmgCX6C,GAAQ,GAAKzB,GAAQ,IAAK,GAEvB7L,SAAW2O,IACX9O,UAAYgM,IACZlL,QAAU0F,IACV5F,SAAW6M,IACVzD,KAAOA,IACPvT,KAAOA,KAELkE,EAAM+O,KAER/O,EAAKwF,WACFxF,EAAKsF,SACPtF,EAAKqF,YACLrF,EAAKmG,UACJnG,EAAKkG,QACNlG,EAAKiG,WACLxlB,EAAM4uB,OACN5uB,EAAMqb,KA9hCH,KAiiCNrb,EAAMwvB,SACFiD,qBAIJA,KAAO,IAEJzyB,EAAMovB,QAAQR,MAAc5uB,EAAMsvB,SAAW,KACxCL,IAAS,KACVA,IAAS,GAAM,MACR,MAAPA,IAEPiC,GAAa7V,IANV,IAQM,IAATgX,iBAEI5M,EAAM2F,MAAW/P,KACjB,KAGN8V,GAAgC,IAAV,OAAa,OACzBD,IACFC,IACCC,IAEFpxB,EAAMovB,QAAQyE,UACIF,EAAYC,GAAY,IAAoCD,MACzE1E,IAAS,KACVA,IAAS,GAAM,MACR,MAAPA,IAEN0E,EAAYzC,GAAc7V,IAPxB,IASM,IAATgX,iBAEI5M,EAAM2F,MAAW/P,KACjB,OAIAsY,KACFA,IAEFlB,MAAQkB,UAGNzC,KACFA,IAEFuB,MAAQvB,IACRz2B,OAAS22B,EACC,IAAZD,EAAe,GAIX3B,KA1kCO,YA6kCD,GAAV2B,EAAc,GAEVsB,UACAjD,KA9lCI,YAimCE,GAAV2B,EAAc,GACX9M,IAAM,gCACLmL,KAjlCD,WAolCD5S,MAAkB,GAAVuU,IACR3B,KA7lCY,QAAA,MAgmCdxvB,EAAM4c,MAAO,OAEX5c,EAAM4c,MACHvB,EAAOthB,GAAG,IACF,IAATs4B,iBAEI5M,EAAM2F,MAAW/P,KACjB,IAGJ5gB,QAAUm0B,MAAc5uB,EAAM4c,OAAS,OAEnC5c,EAAM4c,SACR5c,EAAM4c,QAER6V,MAAQzyB,EAAM4c,QAGhB8V,IAAM1yB,EAAMvF,SACZ+0B,KAlnCU,QAAA,UAsnCPxvB,EAAMqvB,SAAST,MAAc5uB,EAAMuvB,UAAY,KAC1CN,IAAS,KACVA,IAAS,GAAM,MACR,MAAPA,IAENiC,GAAc7V,IANZ,IAQM,IAATgX,iBAEI5M,EAAM2F,MAAW/P,KACjB,KAGe,IAAV,OAAa,OACd6V,IACFC,IACCC,IAEFpxB,EAAMqvB,SAASwE,UACGF,EAAYC,GAAY,IAAoCD,MACzE1E,IAAS,KACVA,IAAS,GAAM,MACR,MAAPA,IAEN0E,EAAYzC,GAAc7V,IAPxB,IASM,IAATgX,iBAEI5M,EAAM2F,MAAW/P,KACjB,OAIAsY,KACFA,IAEFlB,MAAQkB,UAGNzC,KACFA,IAEFuB,MAAQvB,EACA,GAAVC,EAAc,GACX9M,IAAM,0BACLmL,KA5pCD,WA+pCDhkB,OAAS4lB,IACTxU,MAAoB,GAAXuU,IACT3B,KAvqCa,QAAA,MA0qCfxvB,EAAM4c,MAAO,OAEX5c,EAAM4c,MACHvB,EAAOthB,GAAG,IACF,IAATs4B,iBAEI5M,EAAM2F,MAAW/P,KACjB,IAGJ7P,QAAUojB,MAAc5uB,EAAM4c,OAAS,OAEnC5c,EAAM4c,SACR5c,EAAM4c,QAER6V,MAAQzyB,EAAM4c,SAGlB5c,EAAMwL,OAASxL,EAAMuuB,KAAM,GACxBlK,IAAM,kCACLmL,KAxrCD,WA6rCDA,KAlsCW,QAAA,MAqsCJ,IAAToB,eACGtC,EAAOsC,EACV5wB,EAAMwL,OAASP,EAAM,MAChBjL,EAAMwL,OAASP,EAClBA,EAAOjL,EAAMyuB,OACXzuB,EAAMyvB,KAAM,GACTpL,IAAM,kCACLmL,KAvsCL,SA0tCDvkB,EAAOjL,EAAM0uB,UACP1uB,EAAM0uB,QACP1uB,EAAMwuB,MAAQvjB,KAGdjL,EAAM0uB,MAAQzjB,EAEnBA,EAAOjL,EAAMvF,WAAiBuF,EAAMvF,UAC1BuF,EAAMse,cAGNuG,IACP6O,EAAM1zB,EAAMwL,SACZxL,EAAMvF,OAEXwQ,EAAO2lB,MAAeA,MAClB3lB,IACFxQ,QAAUwQ,OAEPyoB,KAASvE,EAAY/hB,aACnBnC,GACU,IAAjBjL,EAAMvF,WAAsB+0B,KAxvCjB,eAKA,MAsvCF,IAAToB,YACG8C,KAAS1zB,EAAMvF,aAEhB+0B,KA9vCS,cAMN,MA2vCLxvB,EAAM2lB,KAAM,MAEPtK,EAAO,IAAI,IACH,IAATgX,iBAGI5M,EAAM2F,MAAW/P,KACjB,QAGFuV,IACH5L,WAAasJ,IACZ0D,OAAS1D,EACXA,MACG/N,MAAQvgB,EAAM+xB,MAEd/xB,EAAMuE,MAAQuc,GAAQ9gB,EAAM+xB,MAAOlN,EAAQyJ,EAAMoF,EAAMpF,GAAQhO,GAAUtgB,EAAM+xB,MAAOlN,EAAQyJ,EAAMoF,EAAMpF,MAG1GsC,KAEIrsB,MAAQqqB,EAAOiD,GAAQjD,MAAW5uB,EAAM+xB,MAAO,GACnD1N,IAAM,yBACLmL,KA/wCH,WAmxCE,IACA,IAIHA,KA1xCI,QAAA,MA6xCNxvB,EAAM2lB,MAAQ3lB,EAAMuE,MAAO,MAEtB8W,EAAO,IAAI,IACH,IAATgX,iBAEI5M,EAAM2F,MAAW/P,KACjB,KAGNuT,KAAwB,aAARoD,OAAqB,GAClC3N,IAAM,2BACLmL,KAtyCH,WA0yCE,IACA,IAIHA,KAhzCE,QAAA,KAmzCFgC,gBAlzCC,KAqzCDG,gBApzCC,UAuzCAC,QAtzCC,kBA0zCDF,YAcR3M,SAAW2O,IACX9O,UAAYgM,IACZlL,QAAU0F,IACV5F,SAAW6M,IACVzD,KAAOA,IACPvT,KAAOA,GAGTrb,EAAMwuB,OAAUF,IAAS/O,EAAKqF,WAAa5kB,EAAMwvB,KAl1CxC,OAm1CcA,KAt1CZ,IAs1C4B9H,IAAU4J,MAC/C+B,GAAa9T,EAAMA,EAAKsF,OAAQtF,EAAKwF,SAAUuJ,EAAO/O,EAAKqF,cAE1DrF,EAAKiG,YACJjG,EAAKqF,YACRgB,UAAYyI,IACZrJ,WAAasJ,IACZ0D,OAAS1D,EACXtuB,EAAM2lB,MAAQ2I,MACX/N,MAAQvgB,EAAM+xB,MAChB/xB,EAAMuE,MAAQuc,GAAQ9gB,EAAM+xB,MAAOlN,EAAQyJ,EAAM/O,EAAKwF,SAAWuJ,GAAQhO,GAAUtgB,EAAM+xB,MAAOlN,EAAQyJ,EAAM/O,EAAKwF,SAAWuJ,MAE9H9O,UAAYxf,EAAMqb,QAAc/L,KAAO,GAAK,IAj3C/B,OAk3COkgB,KAAgB,IAAM,IA12CzB,OA22CGA,MAh3CN,KAg3CuBxvB,EAAMwvB,KAAiB,IAAM,IACzD,OAAc,IAATlB,GAAe5G,IAAU4J,KAAe5tB,IAAQ6tB,OAC3D9O,IAED/e,GAkGRywB,WA9FmB5U,QAEbA,IAASA,EAAKvf,aACV0xB,OAGL1xB,EAAQuf,EAAKvf,aACbA,EAAMse,WACFA,OAAS,QAEZte,MAAQ,KACNuxB,IAoFR6C,iBAhFwB,CAAC7U,EAAM+H,SAGzB/H,IAASA,EAAKvf,aAAgB0xB,SAC7B1xB,EAAQuf,EAAKvf,aACM,IAAP,IAAP2lB,MAA0B+L,MAG/BpK,KAAOA,IACR0M,MAAO,EACLzC,KAuER8C,qBAnE4B,CAAC9U,EAAMyL,WAC5BC,EAAaD,EAAWvwB,WAE1BuF,EACAs0B,EACA5wB,SAGC6b,GAAyBA,EAAKvf,SAC3Buf,EAAKvf,MAEM,IAAfA,EAAM2lB,MAp6CI,KAo6CU3lB,EAAMwvB,KACrBkC,GAr6CK,KAy6CV1xB,EAAMwvB,SACC,IAEAlP,GAAUgU,EAAQtJ,EAAYC,EAAY,GAC/CqJ,IAAWt0B,EAAM+xB,OACZJ,MAKL0B,GAAa9T,EAAMyL,EAAYC,EAAYA,GAC7CvnB,KACI8rB,KAj6CK,GAk6CJoC,OAEHE,SAAW,EAEVP,MAzB4DG,IA4DpE6C,YAtBiB,sCAgFlB,IAAIC,GApCJ,gBAEOpK,KAAa,OAEbG,KAAa,OAEb0J,OAAa,OAEbzJ,GAAa,OAEb5N,MAAa,UAEbsX,UAAa,OAWbxyB,KAAa,QAIb4oB,QAAa,QAIbD,KAAa,OAEb2J,MAAa,GAKpB,MAAMlnB,GAAWnF,OAAOhI,UAAUmN,UAK5B6U,WACJA,YAAYI,QACZG,gBAAMC,eAAcC,kBAAaE,gBAAgBC,eAAcC,IAC7Dd,GAkFJ,YAAmB/T,QACZA,QAAU4d,GAAc,CAC3BgC,UAAW,MACX5D,WAAY,GACZ8K,GAAI,IACH9mB,GAAW,UAER6f,EAAM5xB,KAAK+R,QAIb6f,EAAIC,KAAQD,EAAI7D,YAAc,GAAO6D,EAAI7D,WAAa,OACpDA,YAAc6D,EAAI7D,WACC,IAAnB6D,EAAI7D,eAAwBA,mBAI7B6D,EAAI7D,YAAc,GAAO6D,EAAI7D,WAAa,QAC9Bhc,EAAQgc,eACnBA,YAAc,IAKf6D,EAAI7D,WAAa,IAAQ6D,EAAI7D,WAAa,IAGf,IAAR,KAAbA,gBACHA,YAAc,SAIjBxF,IAAS,OACTE,IAAS,QACTsJ,OAAS,OACThC,OAAS,QAETpM,KAAS,IAAIyN,QACbzN,KAAKqF,UAAY,MAElBkE,EAAUyK,GAAYR,aACxBn3B,KAAK2jB,KACLiO,EAAI7D,eAGFb,IAAW5G,SACP,IAAI0L,MAAM5M,GAAS8H,YAGtBzK,OAAS,IAAImW,MAENJ,iBAAiBx4B,KAAK2jB,KAAM3jB,KAAKyiB,QAGzCmP,EAAIxC,aAEwB,iBAAnBwC,EAAIxC,aACTA,WAAamB,GAAmBqB,EAAIxC,YACG,yBAAlCle,GAASxL,KAAKksB,EAAIxC,gBACvBA,WAAa,IAAI/d,WAAWugB,EAAIxC,aAElCwC,EAAIC,QACG8F,GAAYc,qBAAqBz4B,KAAK2jB,KAAMiO,EAAIxC,YACrDlC,IAAW5G,WACP,IAAI0L,MAAM5M,GAAS8H,IA+BjC4L,GAAU/0B,UAAUjF,KAAO,SAAU2G,EAAM2sB,SACnCzO,EAAO3jB,KAAK2jB,KACZgO,EAAY3xB,KAAK+R,QAAQ4f,UACzBvC,EAAapvB,KAAK+R,QAAQqd,eAC5BlC,EAAQmF,EAAa0G,KAErB/4B,KAAK+xB,aAAc,QAEnBK,MAAiBA,EAA0BA,GACb,IAAfA,EAAsBjM,GAAWJ,GAGxB,yBAAxB7U,GAASxL,KAAKD,KACXokB,MAAQ,IAAIxY,WAAW5L,KAEvBokB,MAAQpkB,IAGVqkB,QAAU,IACVF,SAAWjG,EAAKkG,MAAMhrB,SAElB,KACgB,IAAnB8kB,EAAKqF,cACFC,OAAS,IAAI5X,WAAWsgB,KACxBxI,SAAW,IACXH,UAAY2I,KAGVgG,GAAYE,QAAQlU,EAAM0O,GAE/BnF,IAAW1G,IAAe4I,MACnBuI,GAAYc,qBAAqB9U,EAAMyL,GAE5ClC,IAAW5G,KACJqR,GAAYE,QAAQlU,EAAM0O,GAC1BnF,IAAWvG,OAEXH,KAKN7C,EAAKiG,SAAW,GAChBsD,IAAW3G,IACX5C,EAAKvf,MAAM2lB,KAAO,GACK,IAAvBtkB,EAAKke,EAAKmG,aAEHmN,aAAatT,KAChBgU,GAAYE,QAAQlU,EAAM0O,UAG7BnF,QACDxG,QACAC,QACAH,QACAI,eACE2L,MAAMrF,QACN6E,OAAQ,GACN,OAKMpO,EAAKqF,UAElBrF,EAAKwF,WACgB,IAAnBxF,EAAKqF,WAAmBkE,IAAW3G,OAEb,WAApBvmB,KAAK+R,QAAQ8mB,GAAiB,KAE5BG,EAAgBzI,GAAmB5M,EAAKsF,OAAQtF,EAAKwF,UAErD8P,EAAOtV,EAAKwF,SAAW6P,EACvBE,EAAU3I,GAAmB5M,EAAKsF,OAAQ+P,KAGzC7P,SAAW8P,IACXjQ,UAAY2I,EAAYsH,EACzBA,KAAWhQ,OAAOhZ,IAAI0T,EAAKsF,OAAOtG,SAASqW,EAAeA,EAAgBC,GAAO,QAEhF3G,OAAO4G,aAGP5G,OAAO3O,EAAKsF,OAAOpqB,SAAW8kB,EAAKwF,SAAWxF,EAAKsF,OAAStF,EAAKsF,OAAOtG,SAAS,EAAGgB,EAAKwF,cAMhG+D,IAAW5G,IAA2B,IAAnByS,MAGnB7L,IAAW3G,YACJoR,GAAYY,WAAWv4B,KAAK2jB,WAChC4O,MAAMrF,QACN6E,OAAQ,GACN,KAGa,IAAlBpO,EAAKiG,uBAGJ,GAYTkP,GAAU/0B,UAAUuuB,OAAS,SAAUrC,QAChCF,OAAOjxB,KAAKmxB,IAanB6I,GAAU/0B,UAAUwuB,MAAQ,SAAUrF,GAEhCA,IAAW5G,KACW,WAApBtmB,KAAK+R,QAAQ8mB,QACV7I,OAAShwB,KAAK+vB,OAAO3nB,KAAK,SAE1B4nB,OAASL,GAAqB3vB,KAAK+vB,cAGvCA,OAAS,QACTxH,IAAM2E,OACNzE,IAAMzoB,KAAK2jB,KAAK8E,SCx7MjB0Q,GAGJC,mCAHID,GACE,mEAENC,GAAQ,CAENC,KAAM,SAASl7B,EAAGuD,UACRvD,GAAKuD,EAAMvD,IAAO,GAAKuD,GAIjC43B,KAAM,SAASn7B,EAAGuD,UACRvD,GAAM,GAAKuD,EAAOvD,IAAMuD,GAIlC63B,OAAQ,SAASp7B,MAEXA,EAAE0B,aAAeqY,cACO,SAAnBkhB,GAAMC,KAAKl7B,EAAG,GAAsC,WAApBi7B,GAAMC,KAAKl7B,EAAG,YAI9CL,EAAI,EAAGA,EAAIK,EAAEU,OAAQf,MAC1BA,GAAKs7B,GAAMG,OAAOp7B,EAAEL,WACjBK,GAITq7B,YAAa,SAASr7B,WACXs7B,EAAQ,GAAIt7B,EAAI,EAAGA,MACpBW,KAAKyJ,KAAKmxB,MAAsB,IAAhBnxB,KAAKoxB,kBACtBF,GAITG,aAAc,SAASH,WACZI,EAAQ,GAAI/7B,EAAI,EAAG4D,EAAI,EAAG5D,EAAI27B,EAAM56B,OAAQf,IAAK4D,GAAK,IACvDA,IAAM,IAAM+3B,EAAM37B,IAAO,GAAK4D,EAAI,UACnCm4B,GAITC,aAAc,SAASD,WACZJ,EAAQ,GAAI/3B,EAAI,EAAGA,EAAmB,GAAfm4B,EAAMh7B,OAAa6C,GAAK,IAChD5C,KAAM+6B,EAAMn4B,IAAM,KAAQ,GAAKA,EAAI,GAAO,YAC3C+3B,GAITM,WAAY,SAASN,WACVO,EAAM,GAAIl8B,EAAI,EAAGA,EAAI27B,EAAM56B,OAAQf,MACtCgB,QAAYhB,KAAO,GAAGoT,SAAS,OAC/BpS,MAAiB,KAALhB,IAAUoT,SAAS,YAE9B8oB,EAAI5xB,KAAK,KAIlB6xB,WAAY,SAASD,WACVP,EAAQ,GAAIt4B,EAAI,EAAGA,EAAI64B,EAAIn7B,OAAQsC,GAAK,IACzCrC,KAAKoX,SAAS8jB,EAAI7oB,OAAOhQ,EAAG,GAAI,YACjCs4B,GAITS,cAAe,SAAST,WACbU,EAAS,GAAIr8B,EAAI,EAAGA,EAAI27B,EAAM56B,OAAQf,GAAK,UAC9Cs8B,EAAWX,EAAM37B,IAAM,GAAO27B,EAAM37B,EAAI,IAAM,EAAK27B,EAAM37B,EAAI,GACxD4iB,EAAI,EAAGA,EAAI,EAAGA,IACb,EAAJ5iB,EAAY,EAAJ4iB,GAAwB,EAAf+Y,EAAM56B,SAClBC,KAAKq6B,GAAU1wB,OAAQ2xB,IAAY,KAAS1Z,GAAM,OAElD5hB,KAAK,YAEXq7B,EAAO/xB,KAAK,KAIrBiyB,cAAe,SAASF,KAEbA,EAAOr3B,QAAQ,iBAAkB,YAEjC22B,EAAQ,GAAI37B,EAAI,EAAGw8B,EAAQ,EAAGx8B,EAAIq8B,EAAOt7B,OAC9Cy7B,IAAUx8B,EAAI,EACH,GAATw8B,KACEx7B,SAAiBqB,QAAQg6B,EAAO1xB,OAAO3K,EAAI,IAC1CyK,KAAKgyB,IAAI,KAAQD,EAAQ,GAAK,IAAgB,EAARA,EACtCnB,GAAUh5B,QAAQg6B,EAAO1xB,OAAO3K,MAAS,EAAY,EAARw8B,UAE/Cb,eAIML,GC9FnB,IAAIoB,GAAU,CAEZC,KAAM,CAEJC,cAAe,SAAS7pB,UACf2pB,GAAQG,IAAID,cAAcE,SAASC,mBAAmBhqB,MAI/DiqB,cAAe,SAASrB,UACftxB,mBAAmB4yB,OAAOP,GAAQG,IAAIG,cAAcrB,OAK/DkB,IAAK,CAEHD,cAAe,SAAS7pB,WACb4oB,EAAQ,GAAI37B,EAAI,EAAGA,EAAI+S,EAAIhS,OAAQf,MACpCgB,KAAyB,IAApB+R,EAAIie,WAAWhxB,WACrB27B,GAITqB,cAAe,SAASrB,WACb5oB,EAAM,GAAI/S,EAAI,EAAGA,EAAI27B,EAAM56B,OAAQf,MACtCgB,KAAKsM,OAAO+kB,aAAasJ,EAAM37B,YAC9B+S,EAAIzI,KAAK,OAKtB4yB,GAAiBR,GCvBjBS,GAAiB,SAAUvzB,UACX,MAAPA,OAAyBA,IAQlC,SAAuBA,SACa,mBAApBA,EAAIwzB,aAAmD,mBAAdxzB,EAAI1E,OAAwBm4B,GAASzzB,EAAI1E,MAAM,EAAG,IATjEo4B,CAAa1zB,MAAUA,EAAI2zB,YAGrE,YAAmB3zB,WACRA,EAAI7H,aAAmD,mBAA7B6H,EAAI7H,YAAYs7B,UAA2BzzB,EAAI7H,YAAYs7B,SAASzzB,ICdxG,eACK0xB,EAAQ1nB,WACR+oB,EAAO9oB,GAAmB8oB,KAC1Ba,EAAWzpB,GACX8oB,EAAMhpB,GAAmBgpB,IAG7BY,EAAM,SAAUC,EAASzpB,GAEnBypB,EAAQ37B,aAAeuL,SACrB2G,GAAgC,WAArBA,EAAQ0pB,SACXd,EAAID,cAAcc,GAElBf,EAAKC,cAAcc,GACxBF,EAASE,KACNz5B,MAAMgC,UAAUf,MAAM0C,KAAK81B,EAAS,GACtCz5B,MAAMC,QAAQw5B,IAAYA,EAAQ37B,cAAgBwR,eAChDmqB,EAAQtqB,oBAGhBvP,EAAIy3B,EAAMQ,aAAa4B,GACvBp9B,EAAqB,EAAjBo9B,EAAQ38B,OACZwC,EAAK,WACLK,aACAP,cACAuC,EAAK,UAGA5F,EAAI,EAAGA,EAAI6D,EAAE9C,OAAQf,MAC1BA,GAAsC,YAA7BA,IAAO,EAAM6D,EAAE7D,KAAO,IACO,cAA7BA,IAAM,GAAO6D,EAAE7D,KAAQ,KAIlCM,IAAM,IAAM,KAASA,EAAI,KACC,MAAnB,KAAQ,GAAM,IAAWA,MAG9Bs9B,EAAKH,EAAII,IACTC,EAAKL,EAAIM,IACTC,EAAKP,EAAIQ,IACTC,EAAKT,EAAIU,QAEJn+B,EAAI,EAAGA,EAAI6D,EAAE9C,OAAQf,GAAK,GAAI,KAEjCo+B,EAAK76B,EACL86B,EAAKz6B,EACL06B,EAAKj7B,EACLk7B,EAAK34B,IAELg4B,EAAGr6B,EAAGK,EAAGP,EAAGuC,EAAG/B,EAAE7D,EAAG,GAAK,gBACzB49B,EAAGh4B,EAAGrC,EAAGK,EAAGP,EAAGQ,EAAE7D,EAAG,GAAI,iBACxB49B,EAAGv6B,EAAGuC,EAAGrC,EAAGK,EAAGC,EAAE7D,EAAG,GAAI,GAAK,aAC7B49B,EAAGh6B,EAAGP,EAAGuC,EAAGrC,EAAGM,EAAE7D,EAAG,GAAI,kBACxB49B,EAAGr6B,EAAGK,EAAGP,EAAGuC,EAAG/B,EAAE7D,EAAG,GAAK,gBACzB49B,EAAGh4B,EAAGrC,EAAGK,EAAGP,EAAGQ,EAAE7D,EAAG,GAAI,GAAK,cAC7B49B,EAAGv6B,EAAGuC,EAAGrC,EAAGK,EAAGC,EAAE7D,EAAG,GAAI,kBACxB49B,EAAGh6B,EAAGP,EAAGuC,EAAGrC,EAAGM,EAAE7D,EAAG,GAAI,gBACxB49B,EAAGr6B,EAAGK,EAAGP,EAAGuC,EAAG/B,EAAE7D,EAAG,GAAK,EAAI,cAC7B49B,EAAGh4B,EAAGrC,EAAGK,EAAGP,EAAGQ,EAAE7D,EAAG,GAAI,kBACxB49B,EAAGv6B,EAAGuC,EAAGrC,EAAGK,EAAGC,EAAE7D,EAAE,IAAK,aACxB49B,EAAGh6B,EAAGP,EAAGuC,EAAGrC,EAAGM,EAAE7D,EAAE,IAAK,kBACxB49B,EAAGr6B,EAAGK,EAAGP,EAAGuC,EAAG/B,EAAE7D,EAAE,IAAM,EAAI,cAC7B49B,EAAGh4B,EAAGrC,EAAGK,EAAGP,EAAGQ,EAAE7D,EAAE,IAAK,gBACxB49B,EAAGv6B,EAAGuC,EAAGrC,EAAGK,EAAGC,EAAE7D,EAAE,IAAK,kBAGxB89B,EAAGv6B,IAFHq6B,EAAGh6B,EAAGP,EAAGuC,EAAGrC,EAAGM,EAAE7D,EAAE,IAAK,GAAK,YAEpBqD,EAAGuC,EAAG/B,EAAE7D,EAAG,GAAK,gBACzB89B,EAAGl4B,EAAGrC,EAAGK,EAAGP,EAAGQ,EAAE7D,EAAG,GAAK,iBACzB89B,EAAGz6B,EAAGuC,EAAGrC,EAAGK,EAAGC,EAAE7D,EAAE,IAAK,GAAK,aAC7B89B,EAAGl6B,EAAGP,EAAGuC,EAAGrC,EAAGM,EAAE7D,EAAG,GAAI,iBACxB89B,EAAGv6B,EAAGK,EAAGP,EAAGuC,EAAG/B,EAAE7D,EAAG,GAAK,gBACzB89B,EAAGl4B,EAAGrC,EAAGK,EAAGP,EAAGQ,EAAE7D,EAAE,IAAM,EAAI,YAC7B89B,EAAGz6B,EAAGuC,EAAGrC,EAAGK,EAAGC,EAAE7D,EAAE,IAAK,iBACxB89B,EAAGl6B,EAAGP,EAAGuC,EAAGrC,EAAGM,EAAE7D,EAAG,GAAI,iBACxB89B,EAAGv6B,EAAGK,EAAGP,EAAGuC,EAAG/B,EAAE7D,EAAG,GAAK,EAAI,aAC7B89B,EAAGl4B,EAAGrC,EAAGK,EAAGP,EAAGQ,EAAE7D,EAAE,IAAM,iBACzB89B,EAAGz6B,EAAGuC,EAAGrC,EAAGK,EAAGC,EAAE7D,EAAG,GAAI,iBACxB89B,EAAGl6B,EAAGP,EAAGuC,EAAGrC,EAAGM,EAAE7D,EAAG,GAAI,GAAK,cAC7B89B,EAAGv6B,EAAGK,EAAGP,EAAGuC,EAAG/B,EAAE7D,EAAE,IAAM,iBACzB89B,EAAGl4B,EAAGrC,EAAGK,EAAGP,EAAGQ,EAAE7D,EAAG,GAAK,eACzB89B,EAAGz6B,EAAGuC,EAAGrC,EAAGK,EAAGC,EAAE7D,EAAG,GAAI,GAAK,cAG7Bg+B,EAAGz6B,IAFHu6B,EAAGl6B,EAAGP,EAAGuC,EAAGrC,EAAGM,EAAE7D,EAAE,IAAK,gBAEfqD,EAAGuC,EAAG/B,EAAE7D,EAAG,GAAK,aACzBg+B,EAAGp4B,EAAGrC,EAAGK,EAAGP,EAAGQ,EAAE7D,EAAG,GAAI,kBACxBg+B,EAAG36B,EAAGuC,EAAGrC,EAAGK,EAAGC,EAAE7D,EAAE,IAAK,GAAK,cAC7Bg+B,EAAGp6B,EAAGP,EAAGuC,EAAGrC,EAAGM,EAAE7D,EAAE,IAAK,gBACxBg+B,EAAGz6B,EAAGK,EAAGP,EAAGuC,EAAG/B,EAAE7D,EAAG,GAAK,iBACzBg+B,EAAGp4B,EAAGrC,EAAGK,EAAGP,EAAGQ,EAAE7D,EAAG,GAAI,GAAK,cAC7Bg+B,EAAG36B,EAAGuC,EAAGrC,EAAGK,EAAGC,EAAE7D,EAAG,GAAI,iBACxBg+B,EAAGp6B,EAAGP,EAAGuC,EAAGrC,EAAGM,EAAE7D,EAAE,IAAK,kBACxBg+B,EAAGz6B,EAAGK,EAAGP,EAAGuC,EAAG/B,EAAE7D,EAAE,IAAM,EAAI,aAC7Bg+B,EAAGp4B,EAAGrC,EAAGK,EAAGP,EAAGQ,EAAE7D,EAAG,GAAI,iBACxBg+B,EAAG36B,EAAGuC,EAAGrC,EAAGK,EAAGC,EAAE7D,EAAG,GAAI,iBACxBg+B,EAAGp6B,EAAGP,EAAGuC,EAAGrC,EAAGM,EAAE7D,EAAG,GAAI,GAAK,YAC7Bg+B,EAAGz6B,EAAGK,EAAGP,EAAGuC,EAAG/B,EAAE7D,EAAG,GAAK,gBACzBg+B,EAAGp4B,EAAGrC,EAAGK,EAAGP,EAAGQ,EAAE7D,EAAE,IAAK,iBACxBg+B,EAAG36B,EAAGuC,EAAGrC,EAAGK,EAAGC,EAAE7D,EAAE,IAAK,GAAK,aAG7Bk+B,EAAG36B,IAFHy6B,EAAGp6B,EAAGP,EAAGuC,EAAGrC,EAAGM,EAAE7D,EAAG,GAAI,eAEfqD,EAAGuC,EAAG/B,EAAE7D,EAAG,GAAK,gBACzBk+B,EAAGt4B,EAAGrC,EAAGK,EAAGP,EAAGQ,EAAE7D,EAAG,GAAI,GAAK,cAC7Bk+B,EAAG76B,EAAGuC,EAAGrC,EAAGK,EAAGC,EAAE7D,EAAE,IAAK,kBACxBk+B,EAAGt6B,EAAGP,EAAGuC,EAAGrC,EAAGM,EAAE7D,EAAG,GAAI,gBACxBk+B,EAAG36B,EAAGK,EAAGP,EAAGuC,EAAG/B,EAAE7D,EAAE,IAAM,EAAI,cAC7Bk+B,EAAGt4B,EAAGrC,EAAGK,EAAGP,EAAGQ,EAAE7D,EAAG,GAAI,kBACxBk+B,EAAG76B,EAAGuC,EAAGrC,EAAGK,EAAGC,EAAE7D,EAAE,IAAK,eACxBk+B,EAAGt6B,EAAGP,EAAGuC,EAAGrC,EAAGM,EAAE7D,EAAG,GAAI,kBACxBk+B,EAAG36B,EAAGK,EAAGP,EAAGuC,EAAG/B,EAAE7D,EAAG,GAAK,EAAI,cAC7Bk+B,EAAGt4B,EAAGrC,EAAGK,EAAGP,EAAGQ,EAAE7D,EAAE,IAAK,gBACxBk+B,EAAG76B,EAAGuC,EAAGrC,EAAGK,EAAGC,EAAE7D,EAAG,GAAI,kBACxBk+B,EAAGt6B,EAAGP,EAAGuC,EAAGrC,EAAGM,EAAE7D,EAAE,IAAK,GAAK,cAC7Bk+B,EAAG36B,EAAGK,EAAGP,EAAGuC,EAAG/B,EAAE7D,EAAG,GAAK,gBACzBk+B,EAAGt4B,EAAGrC,EAAGK,EAAGP,EAAGQ,EAAE7D,EAAE,IAAK,kBACxBk+B,EAAG76B,EAAGuC,EAAGrC,EAAGK,EAAGC,EAAE7D,EAAG,GAAI,GAAK,aAC7Bk+B,EAAGt6B,EAAGP,EAAGuC,EAAGrC,EAAGM,EAAE7D,EAAG,GAAI,iBAEvBuD,EAAI66B,IAAQ,IACZx6B,EAAIy6B,IAAQ,IACZh7B,EAAIi7B,IAAQ,IACZ14B,EAAI24B,IAAQ,SAGZjD,EAAMG,OAAO,CAACl4B,EAAGK,EAAGP,EAAGuC,OAI5Bi4B,IAAO,SAAUt6B,EAAGK,EAAGP,EAAGuC,EAAGE,EAAGxC,EAAG5C,OACjCL,EAAIkD,KAASF,GAAKO,EAAIgC,QAAY,GAAKlF,YAC7B4C,EAAMjD,IAAO,GAAKiD,GAAOM,KAErCm6B,IAAO,SAAUx6B,EAAGK,EAAGP,EAAGuC,EAAGE,EAAGxC,EAAG5C,OACjCL,EAAIkD,KAASqC,EAAIvC,GAAKuC,QAAY,GAAKlF,YAC7B4C,EAAMjD,IAAO,GAAKiD,GAAOM,KAErCq6B,IAAO,SAAU16B,EAAGK,EAAGP,EAAGuC,EAAGE,EAAGxC,EAAG5C,OACjCL,EAAIkD,KAASF,EAAIuC,QAAY,GAAKlF,YACxB4C,EAAMjD,IAAO,GAAKiD,GAAOM,KAErCu6B,IAAO,SAAU56B,EAAGK,EAAGP,EAAGuC,EAAGE,EAAGxC,EAAG5C,OACjCL,EAAIkD,SAAeqC,SAAa,GAAKlF,YAC3B4C,EAAMjD,IAAO,GAAKiD,GAAOM,KAIrC46B,WAAa,KACbC,YAAc,cAED,SAAUf,EAASzpB,MAC9BypB,MAAAA,QACI,IAAIxJ,MAAM,oBAAsBwJ,OAEpCgB,EAAcpD,EAAMU,aAAayB,EAAIC,EAASzpB,WAC3CA,GAAWA,EAAQ0qB,QAAUD,EAChCzqB,GAAWA,EAAQ2qB,SAAW/B,EAAIG,cAAc0B,GAChDpD,EAAMW,WAAWyC,IA5JxB,OCAmGx+B,GAAYQ,kBAAAA,GAAwFR,QAAM,KAAzF2+B,GAAG,KAAKn+B,GAAEo+B,KAAK,OAAOp+B,GAAEq+B,MAAM,QAAQr+B,GAAEs+B,KAAK,OAAOt+B,GAAEu+B,MAAM,QAAQv+B,GAAEw+B,KAAK,OAAmB,MAAM/uB,GAAE,EAAEjQ,GAAE2+B,IAAI,CAAC,EAAE,EAAE,IAAI3+B,GAAE4+B,MAAM,CAAC,KAAK,IAAI5+B,GAAE6+B,OAAO,CAAC,EAAE,OAAO7+B,GAAE8+B,MAAM,CAAC,EAAE,EAAE,IAAI9+B,GAAE++B,OAAO,CAAC,EAAE,EAAE,IAAI/+B,GAAEg/B,MAAM,IAAI,EAAE,IAAI,IAAIl2B,GAAivMjE,GAAEo6B,GAAE/2B,GAAED,GAAEi3B,GAAqwiBC,GAc/5sBC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAdwoJ,YAAWp/B,EAAE0C,EAAEpD,OAAOU,EAAE0C,SAAS,IAAI8wB,MAAM,WAAW9wB,YAAY1C,EAAE0C,GAAGhC,OAAOpB,QAAQ,IAAIk0B,MAAM,YAAY9wB,mBAAmBpD,gBAAgBU,EAAE0C,GAAGhC,eAAeV,EAAE0C,GAAGkB,OAAp6L,SAAS5D,KAAKq/B,IAAI,CAACr/B,EAAEm+B,GAAGn+B,EAAEo+B,KAAKp+B,EAAEq+B,MAAMr+B,EAAEs+B,KAAKt+B,EAAEu+B,MAAMv+B,EAAEw+B,MAAMx+B,EAAEs/B,OAAO,SAASzvB,UAAUJ,GAAEI,IAA5F,CAAiGrQ,QAAM,KAAK,SAASQ,KAAKwN,OAAO,SAASqC,EAAEnN,EAAEpD,SAAS,CAACuQ,EAAEnN,EAAEpD,IAAIU,EAAEoR,OAAO,SAASvB,EAAEnN,EAAEpD,EAAEsD,SAAS,CAACiN,EAAE,GAAGnN,EAAEmN,EAAE,GAAGvQ,EAAEuQ,EAAE,GAAGjN,IAAI5C,EAAEu/B,QAAQ,SAAS78B,EAAEpD,UAAUU,EAAEoR,OAAO1O,KAAKlD,GAAE8/B,OAAOhgC,KAAnK,CAAyKgJ,QAAM,KAA89L,SAAStI,cAAc6P,SAAS,iBAAiBA,GAAG,OAAAA,EAASA,OAAE,IAAS2vB,WAAW,SAAS3vB,SAAS,iBAAiBA,EAAEA,OAAE,GAAQ7P,EAAEy/B,QAAQ,SAAS5vB,SAAS,iBAAiBA,EAAE9F,KAAKmxB,MAAMrrB,QAAG,GAAQ7P,EAAE0/B,WAAW,SAAS7vB,SAAS,iBAAiBA,EAAEA,OAAE,GAAQ7P,EAAE2/B,YAAY,SAAS9vB,SAAS,kBAAkBA,EAAEA,OAAE,GAAQ7P,EAAE4/B,WAAWl9B,EAAE1C,EAAE6/B,UAAU,SAAShwB,EAAEiwB,MAAMv8B,MAAMC,QAAQqM,UAAUA,EAAEtF,QAAQu1B,EAAEC,MAAM//B,EAAEggC,QAAQ,SAASnwB,EAAEvQ,OAAOsD,QAAQjD,EAAE,UAAU+C,EAAEmN,UAAK,IAASjN,EAAEA,EAAE,UAAU2K,OAAO0yB,YAAY1yB,OAAOoI,QAAQhW,GAAG4K,KAAK,EAAEw1B,EAAED,KAAK,CAACC,EAAEzgC,EAAEwgC,QAAQ9/B,EAAEkgC,QAAQ,SAASrwB,EAAEiwB,EAAExgC,SAASsD,EAAEk9B,EAAEjwB,UAAUjN,EAAEtD,EAAEsD,QAAG,GAA1lB,CAAmmByB,QAAM,KAAK,SAAQgM,YAAYrQ,EAAE0C,EAAE,SAAS4E,KAAKtH,EAAEwB,KAAK2+B,WAAWz9B,EAAE2N,iBAAiB7O,KAAK8F,KAAK+I,uBAAuB7O,KAAK2+B,WAAW9vB,YAAYrQ,UAAUwB,KAAK2+B,WAAWngC,GAAGqQ,gBAAgB,oBAAA7O,KAAyB8F,MAAM,mBAAmB9F,KAAK8F,KAAK+I,OAAOrQ,UAAUwB,KAAK8F,OAAOtH,EAAEsH,MAAMiG,OAAO2L,KAAK1X,KAAK2+B,YAAYhvB,UAAUnR,EAAEmgC,WAAWz9B,KAAKlB,KAAK2+B,WAAWz9B,KAAK2N,kBAAkB,IAAI9C,OAAO2L,KAAK1X,KAAK2+B,YAAY9/B,OAAOmB,KAAK8F,KAAK,GAAG9F,KAAK8F,QAAQiG,OAAOoI,QAAQnU,KAAK2+B,YAAY51B,KAAK,EAAEvK,EAAE0C,KAAK1C,EAAE,IAAI0C,IAAIkH,KAAK,uBAAuB5J,SAAS0C,EAAE09B,GAAEpgC,EAAE4D,MAAM,OAAO,UAAUtE,EAAjuC,SAAWU,EAAE0C,cAAc1C,UAAU6P,UAAUnN,GAAorCJ,EAAG,IAAI89B,GAAEpgC,EAAE4D,MAAM,aAAa,aAAa,IAAIhB,EAAE2K,OAAO2L,KAAK5Z,GAAG6Q,QAAQ,CAACN,EAAEiwB,IAAIvyB,OAAO6B,OAAO7B,OAAO6B,OAAO,GAAGS,GAAG,EAAEiwB,GAAGM,GAAE9gC,EAAEwgC,EAAE,aAAa,WAAW,IAAIO,GAAE39B,EAAEE,mBAAmB5C,OAAO0C,EAAEpD,QAAQsD,EAAE,UAAUyB,GAAEu7B,WAAW5/B,UAAK,IAAS0C,EAAEA,EAAE,GAAG/C,EAAE,UAAU0E,GAAEq7B,WAAW98B,EAAE09B,aAAQ,IAAShhC,EAAEA,EAAE,kBAAkBY,EAAEmE,GAAE27B,QAAQp9B,EAAE29B,oBAAoBT,SAAS,UAAUz7B,GAAEq7B,WAAW7vB,UAAK,IAASiwB,EAAEA,EAAE,aAAa,IAAIO,GAAE1gC,EAAEO,IAAImgC,GAAEG,IAAI,IAAIH,GAAE,iBAAiB,SAAQhwB,YAAYrQ,QAAQygC,KAAKzgC,EAAEwB,KAAKk/B,QAAQn9B,MAAMmF,GAAEi4B,MAAMn/B,KAAKo/B,QAAQ,CAACP,GAAEG,4BAA4Bh/B,KAAKi/B,MAAM,EAAEpwB,MAAMrQ,EAAE0C,EAAEpD,aAAa,OAAO,GAAGA,EAAE+Q,cAAcrQ,EAAE0C,EAAEpD,OAAOsD,QAAQjD,EAAE6B,KAAKk/B,QAAQl/B,KAAKkJ,MAAM1K,EAAE0C,EAAEpD,WAAW,UAAUkC,KAAKo/B,QAAQjhC,UAAK,IAAAiD,EAAWA,EAAEy9B,GAAEG,IAAInwB,cAAcrQ,EAAE0C,EAAEpD,EAAEsD,OAAOjD,EAAE6B,KAAKo/B,QAAQC,cAAchxB,EAAEoC,OAAOrP,UAAUjD,MAAM6B,KAAKo/B,QAAQvgC,OAAOmB,KAAKo/B,QAAQtgC,KAAKsC,IAAIpB,KAAKk/B,QAAQl/B,KAAKkJ,MAAM1K,EAAE0C,EAAEpD,IAAIK,GAAG+I,GAAEo4B,MAAM,GAAGp4B,GAAEi4B,KAAKj4B,GAAEo4B,MAAMp4B,GAAEo4B,MAAMp4B,GAAEo4B,MAAM,SAAQzwB,YAAYrQ,EAAE0C,EAAEpD,QAAQmhC,KAAKzgC,EAAEwB,KAAKu/B,OAAOr+B,EAAElB,KAAK4kB,IAAI9mB,EAAEkC,KAAKw/B,SAASz9B,MAAM/B,KAAKy/B,eAAehL,KAAK,wBAAwBz0B,KAAKi/B,KAAKj/B,KAAKu/B,+BAA+Bv/B,KAAKi/B,MAAM,0BAA0B,QAAQS,KAAK,GAAG,8BAA8B1/B,KAAK2/B,WAAW3/B,KAAK4/B,WAAW/wB,gBAAgBrQ,aAAa,GAAGwB,KAAK4/B,WAAW/wB,cAAcrQ,OAAO0C,QAAQpD,EAAEsD,EAAEjD,GAAGK,EAAEE,EAAEsB,KAAKw/B,SAASx/B,KAAK6/B,gBAAgBz+B,WAAW,UAAU,MAAM1C,OAAE,EAAOA,EAAEohC,cAAc,GAAGhiC,EAAE,GAAGsD,EAAE,GAAGjD,UAAK,IAAA+C,EAAWA,EAAE29B,GAAEG,IAAInwB,cAAcrQ,EAAE0C,SAASpD,EAAEsD,EAAEjD,GAAGK,EAAEE,EAAEsB,KAAK6/B,gBAAgBz+B,OAAO3C,EAAEuB,KAAKw/B,SAAS9gC,MAAM,OAAOD,EAAE,IAAIyC,EAAEuP,OAAOouB,GAAEG,cAAch/B,KAAK+/B,mBAAmBrhC,KAAKshC,cAAc,GAAGliC,EAAE,GAAGsD,EAAE,GAAGjD,EAAE+C,GAAG2N,mBAAmBrQ,UAAU,MAAAwB,KAAWw/B,SAAShhC,UAAUghC,SAAShhC,GAAG,IAAI0I,GAAElH,KAAK4/B,WAAWphC,IAAIwB,KAAKw/B,SAAShhC,IAAosD,YAAWA,UAAUA,EAAEA,EAAE,YAAWA,EAAE0C,EAAEpD,UAAUyK,KAAKD,IAAIpH,EAAEqH,KAAKoN,IAAI7X,EAAEU,IAAI,YAAWA,EAAE0C,EAAEpD,UAAUoD,EAAE1C,KAAK0C,GAAG,YAAW1C,EAAE0C,EAAEpD,EAAEsD,EAAEjD,EAAEO,UAAU2D,GAAEnB,EAAEmB,GAAE7D,EAAEV,EAAEsD,GAAGiB,GAAE7D,EAAEL,EAAEO,IAAgF,YAAWF,EAAE0C,EAAEpD,UAAUA,EAAE,EAAEU,EAAEV,EAAE,EAAEoD,EAAEmB,GAAEvE,EAAEU,EAAE0C,GAAG,YAAW1C,UAAUA,EAAEA,EAAEA,QAAQA,EAAE,IAAI,KAArgE,SAASA,KAAKwN,OAAO,SAASqC,EAAEnN,SAAS,CAACmN,EAAEnN,IAAI1C,EAAEyhC,aAAa,SAAS5xB,SAAS,CAACA,EAAE,IAAI,EAAEA,EAAE,IAAI,IAAI7P,EAAE0hC,SAAS,SAAS7xB,SAAS,CAAC,WAAW6J,OAAO7J,GAAG6J,OAAO7J,GAAG8xB,OAAO,OAAO3hC,EAAE4hC,UAAU,SAAS/xB,UAAUA,EAAE,IAAI,GAAG7P,EAAE6hC,UAAU,SAAShyB,UAAUA,EAAE,IAAI,GAAG7P,EAAE8hC,UAAU,SAASjyB,UAAUA,EAAE,IAAI,IAAI7P,EAAE+hC,UAAU,SAASlyB,UAAUA,EAAE,IAAI,IAA7U,CAAkV4uB,QAAM,KAAuxD,SAAQpuB,YAAYrQ,QAAQgiC,KAAKL,OAAO,GAAGngC,KAAKygC,QAAQjiC,GAAGqQ,cAAc,IAAI6xB,GAAE1gC,KAAK2gC,YAAY9xB,QAAQrQ,QAAQgiC,KAAKhiC,EAAEkiC,GAAEE,WAAWF,GAAEG,aAAahyB,eAAe2xB,KAAKxgC,KAAKwgC,KAAKE,GAAEE,WAAWF,GAAEI,UAAUJ,GAAEG,aAAahyB,QAAQrQ,WAAW0C,EAAE,EAAEA,EAAE1C,EAAE0C,GAAG,OAAO6/B,UAAUlyB,KAAKrQ,QAAQuiC,gBAAgB7/B,EAAEgX,OAAOlY,KAAKwgC,MAAML,OAAOO,GAAEM,aAAaxiC,WAAW0C,EAAE,WAAWA,EAAE,WAAWA,EAAE2N,QAAQrQ,WAAM,IAAAA,SAAkBwB,KAAK02B,KAAK,OAAO,MAAMl4B,EAAE,UAAU0Z,OAAOioB,OAAO3hC,GAAG2hC,OAAOngC,KAAK02B,KAAK,MAAMyJ,OAAO,SAASj/B,EAAEpD,UAAUkC,KAAK02B,KAAK,QAAQx1B,EAAE1C,MAAM,GAAG,WAAWV,EAAE+Q,yBAAyB7O,KAAK02B,KAAK,MAAMyJ,OAAO,KAAKA,OAAOngC,KAAK02B,KAAK,KAAK7nB,mBAAmB7O,KAAK02B,KAAK,IAAIgK,GAAEO,iBAAiBpyB,mBAAmBrQ,EAAEwB,KAAK02B,KAAK,WAAW12B,KAAK+gC,UAAUviC,EAAEkiC,GAAEQ,mBAAmBR,GAAEM,aAAa,GAAGN,GAAEG,aAAaV,OAAO,mBAAmBO,GAAEE,WAAWT,OAAO,eAAeO,GAAEI,UAAUX,OAAO,MAAMO,GAAEO,iBAAiB,EAAE14B,KAAKgyB,IAAI,EAAE,IAAImG,GAAEQ,kBAAkB,EAAE34B,KAAKgyB,IAAI,EAAE,IAAI,SAAQ1rB,YAAYrQ,QAAQgiC,KAAK,CAACL,OAAO,GAAGA,OAAO,IAAIngC,KAAKwgC,KAAKhiC,gBAAgBA,UAAU,IAAI2iC,GAAEA,GAAEC,oBAAoB5iC,yBAAyBA,oBAAoBA,GAAG2hC,OAAO,KAAKA,OAAO,wBAAwBA,OAAO,uBAAuB3hC,GAAG2hC,OAAO,KAAKA,OAAO,wBAAwBA,OAAO,uBAAuB3hC,GAAG2hC,OAAO,KAAKA,OAAO,iDAAiD3hC,KAAK,OAAO2hC,OAAO,8BAA8Bj/B,EAAE1C,EAAE2iC,GAAEE,gBAAgBvjC,EAAEoD,EAAEigC,GAAEG,gBAAgBnB,OAAO,4BAA4B,CAACgB,GAAEI,cAAcrgC,GAAGigC,GAAEI,cAAczjC,sBAAsBU,EAAE0C,UAAU1C,GAAG0C,EAAEi/B,OAAO,sBAAsB3hC,GAAG2hC,OAAO,IAAIj/B,EAAE2N,QAAQrQ,QAAQgiC,KAAKW,GAAEC,oBAAoB5iC,GAAGqQ,cAAc,IAAIsyB,GAAE,CAACnhC,KAAK02B,OAAO12B,KAAK02B,wBAAwBl4B,EAAE0C,EAAEpD,OAAOsD,EAAE5C,EAAE2hC,OAAO,SAASriC,EAAEqiC,OAAO,WAAWj/B,SAASE,EAAEA,EAAEA,EAAE++B,OAAO,UAAU/+B,EAAE++B,OAAO,IAAI/+B,GAAG++B,OAAO,IAAItxB,OAAOrQ,EAAE0C,EAAEpD,SAASsD,EAAE+/B,GAAEK,QAAQhjC,EAAE0C,EAAEpD,GAAGkC,KAAKwgC,KAAK,UAAU,IAAIW,GAAE,CAAC//B,EAAEpB,KAAKwgC,KAAK,0BAA0BhiC,EAAE0C,EAAEpD,EAAEsD,EAAEjD,EAAEO,EAAED,EAAE4C,UAAU8+B,OAAO3hC,IAAI2hC,OAAO,IAAIA,OAAOj/B,IAAIi/B,OAAO,IAAIA,OAAOriC,IAAIqiC,OAAO,IAAIA,OAAO/+B,IAAI++B,OAAO,IAAIA,OAAOhiC,IAAIgiC,OAAO,IAAIA,OAAOzhC,IAAIyhC,OAAO,IAAIA,OAAO1hC,IAAI0hC,OAAO,GAAGA,OAAO9+B,GAAGwN,eAAerQ,SAASV,EAAEI,GAAEM,EAAE,CAACi+B,SAAQ,IAAKr7B,EAAE+/B,GAAEM,cAAc3jC,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,IAAIK,EAAEgjC,GAAEM,cAAc3jC,EAAE,GAAGA,EAAE,GAAGA,EAAE,IAAIA,EAAE,IAAIA,EAAE,IAAIA,EAAE,IAAIA,EAAE,IAAIA,EAAE,YAAY,IAAIqjC,GAAE,CAAC//B,EAAEpB,KAAKwgC,KAAK,GAAGriC,EAAE6B,KAAKwgC,KAAK,KAAK3xB,aAAarQ,EAAEwB,KAAKwgC,KAAK,OAAOt/B,EAAElB,KAAKwgC,KAAK,SAAS1iC,EAAEqjC,GAAEO,WAAWljC,EAAE0C,EAAEi/B,OAAO,sBAAsBA,OAAO,KAAK3hC,EAAE2hC,OAAO,6BAA6Bj/B,GAAG1C,EAAEwB,KAAKwgC,KAAK,CAACW,GAAEO,WAAWljC,EAAE2hC,OAAO,KAAKj/B,EAAEA,GAAGi/B,OAAO,IAAIA,OAAO,sBAAsBgB,GAAEO,WAAWxgC,EAAEi/B,OAAO,MAAMriC,EAAE+Q,eAAerQ,EAAEwB,KAAK02B,cAAcl4B,EAAE2hC,OAAO,2BAA2BA,OAAO,wBAAwB3hC,EAAEqQ,QAAQrQ,OAAO0C,EAAElB,KAAKwgC,KAAK,GAAG1iC,EAAEkC,KAAKwgC,KAAK,WAAWp/B,EAAE,EAAEA,EAAE5C,EAAE4C,GAAG,KAAKF,EAAEA,EAAEigC,GAAEO,WAAWxgC,EAAEi/B,OAAO,KAAKriC,EAAEA,GAAGqiC,OAAO,IAAIriC,EAAEqjC,GAAEO,WAAW5jC,EAAEqiC,OAAO,UAAUK,KAAK,CAACt/B,EAAEpD,GAAG+Q,SAASrQ,UAAUwB,KAAK02B,QAAQyJ,OAAO,GAAG3hC,GAAGqQ,QAAQrQ,OAAO0C,EAAElB,KAAK02B,OAAOyJ,OAAO,eAAe3hC,EAAE,OAAOmjC,EAAExB,OAAO3hC,OAAOV,EAAEoD,EAAEygC,EAAEvgC,EAAEtD,EAAEqiC,OAAO,eAAe/+B,EAAEugC,UAAUxjC,KAAKwjC,EAAExB,OAAO,aAAaA,OAAO,IAAIwB,EAAEvgC,EAAEjD,WAAW6B,KAAK02B,OAAOyJ,OAAO,aAAawB,GAAGxB,OAAO,gBAAgBzhC,EAAEZ,GAAGqiC,OAAO,WAAWjoB,OAAOxZ,OAAOD,EAAEyZ,OAAOhX,UAAUzC,GAAG,gBAAgB,YAAYA,EAAEoQ,mBAAmBqJ,OAAOlY,KAAK4hC,SAAS,KAAKT,GAAEF,iBAAiBpyB,oBAAoBqJ,OAAOlY,KAAK4hC,SAAS,KAAKT,GAAED,kBAAkBryB,2BAA2B,WAAW7O,KAAKwgC,KAAK,GAAG,aAAaxgC,KAAKwgC,KAAK,IAAIW,GAAEE,gBAAgBlB,OAAO,uBAAuBgB,GAAEG,gBAAgBnB,OAAO,wBAAwBgB,GAAEF,iBAAiB,EAAE14B,KAAKgyB,IAAI,EAAE,IAAI4G,GAAED,kBAAkB,sBAAsB,SAAQryB,YAAYrQ,QAAQqjC,GAAG,IAAIrjC,EAAEsjC,aAAa9hC,KAAK+hC,GAAG,IAAIvjC,EAAEsjC,aAAa9hC,KAAKgiC,GAAG,IAAIxjC,EAAEsjC,aAAa9hC,KAAKiE,EAAElC,MAAM,aAAasM,EAAE,EAAEA,EAAE,IAAIA,GAAG,OAAOpK,EAAEoK,GAAGA,UAAUnN,EAAE,EAAEA,EAAE,IAAIA,GAAG,EAAE,OAAOpD,EAAEU,EAAEyjC,QAAQ,IAAI/gC,GAAGE,EAAEpB,KAAKiE,EAAE/C,QAAQ+C,EAAE/C,GAAGlB,KAAKiE,EAAE/C,EAAEpD,GAAGkC,KAAKiE,EAAE/C,EAAEpD,GAAGsD,GAAGyN,SAASrQ,EAAE0C,OAAOpD,EAAEsD,EAAEjD,QAAQO,KAAKwC,GAAGghC,GAAEC,GAAG1jC,EAAE8J,KAAKmxB,MAAMl7B,EAAEE,GAAG2C,EAAE7C,cAAc+J,KAAKmxB,MAAMx4B,EAAExC,KAAKwjC,GAAEE,SAAShkC,EAAEkD,OAAOJ,KAAKpD,OAAO,EAAEwD,EAAE,MAAM,EAAEA,EAAE,SAASjD,EAAEgD,EAAEjD,EAAE8jC,GAAEE,GAAGjhC,EAAEhD,EAAEmD,EAAE4gC,GAAEE,GAAG1+B,EAAErC,EAAE,EAAE,EAAE6gC,GAAEE,GAAGxjC,EAAET,EAAE,EAAE,EAAE+jC,GAAEE,GAAGz+B,EAAE,IAAIlF,EAAE8C,EAAE,IAAIH,EAAEO,EAAE3B,KAAK6C,EAAEc,EAAE3D,KAAK6C,EAAEtB,IAAI,GAAGkC,EAAEzD,KAAK6C,EAAEc,EAAEvF,EAAE4B,KAAK6C,EAAEtB,EAAED,IAAI,GAAGI,EAAE1B,KAAK6C,EAAEc,EAAE,EAAE3D,KAAK6C,EAAEtB,EAAE,IAAI,UAAU,SAAS8gC,iBAAiB1gC,EAAEN,EAAElD,EAAE,EAAE,IAAI6B,KAAKqiC,iBAAiB5+B,EAAEpF,EAAE8C,EAAE,EAAE,IAAInB,KAAKqiC,iBAAiB3gC,EAAEgC,EAAE9E,EAAE,EAAE,KAAKiQ,OAAOrQ,EAAE0C,EAAEpD,SAASsD,EAAE,qBAAqBF,EAAEpD,GAAGK,EAAEoK,KAAKmxB,MAAMl7B,EAAE4C,GAAG1C,EAAE6J,KAAKmxB,MAAMx4B,EAAEE,GAAG3C,EAAE8J,KAAKmxB,MAAM57B,EAAEsD,GAAGC,EAAE,sBAAsB3C,EAAED,GAAGL,EAAEI,KAAK6C,GAAGC,EAAEJ,KAAKG,GAAGhD,EAAEP,KAAKuD,OAAOF,EAAEuC,EAAE9E,EAAE+E,EAAEpC,EAAEI,KAAKL,EAAEA,GAAGjD,KAAK,EAAEqF,EAAE,EAAE9E,EAAE,EAAE+E,EAAE,EAAEpC,EAAE,EAAEI,EAAE,GAAGvD,GAAGC,KAAK,EAAEqF,EAAE,EAAE9E,EAAE,EAAE+E,EAAE,EAAEpC,EAAE,EAAEI,EAAE,MAAM,EAAE+B,EAAE,EAAE9E,EAAE,EAAE+E,EAAE,EAAEpC,EAAE,EAAEI,EAAE,GAAGL,EAAEjD,KAAK,EAAEqF,EAAE,EAAE9E,EAAE,EAAE+E,EAAE,EAAEpC,EAAE,EAAEI,EAAE,GAAGvD,EAAEC,KAAK,EAAEqF,EAAE,EAAE9E,EAAE,EAAE+E,EAAE,EAAEpC,EAAE,EAAEI,EAAE,MAAM,EAAE+B,EAAE,EAAE9E,EAAE,EAAE+E,EAAE,EAAEpC,EAAE,EAAEI,EAAE,SAAS8B,EAAErF,EAAE+C,EAAE,mBAAmBO,EAAEJ,EAAEoC,EAAE,mBAAmB9B,EAAEvD,EAAEO,EAAE,mBAAmBujC,EAAE/jC,EAAEuF,EAAE,kBAAkBsB,EAAE3D,EAAEC,EAAE,kBAAkBqC,EAAEvF,EAAEsD,EAAE,kBAAkB2gC,EAAElkC,EAAE,GAAGmkC,EAAEjhC,EAAE,GAAGkhC,EAAEnkC,EAAE,GAAGyD,EAAE,IAAI3D,EAAEskC,EAAE,IAAI/jC,EAAEmD,EAAE,IAAIpD,EAAEikC,EAAE1iC,KAAK6C,EAAEf,EAAE9B,KAAK6C,EAAE4/B,EAAEziC,KAAK6C,EAAEhB,KAAK,GAAG8gC,EAAE3iC,KAAK6C,EAAEf,EAAEX,EAAEnB,KAAK6C,EAAE4/B,EAAE/+B,EAAE1D,KAAK6C,EAAEhB,EAAEjD,KAAK,GAAGgkC,EAAE5iC,KAAK6C,EAAEf,EAAE6B,EAAE3D,KAAK6C,EAAE4/B,EAAElhC,EAAEvB,KAAK6C,EAAEhB,EAAEF,KAAK,GAAGF,EAAEzB,KAAK6C,EAAEf,EAAE,EAAE9B,KAAK6C,EAAE4/B,EAAE,EAAEziC,KAAK6C,EAAEhB,EAAE,KAAK,UAAU,SAASwgC,iBAAiBK,EAAEtkC,EAAEkD,EAAEjD,EAAE,IAAI2B,KAAKqiC,iBAAiBM,EAAEl/B,EAAE/B,EAAEE,EAAE,IAAI5B,KAAKqiC,iBAAiBO,EAAET,EAAEl9B,EAAErB,EAAE,IAAI5D,KAAKqiC,iBAAiB5gC,EAAE6gC,EAAEC,EAAEC,EAAE,KAAK3zB,EAAErQ,UAAUwB,KAAKiE,EAAE,IAAIzF,GAAGqQ,iBAAiBrQ,EAAE0C,EAAEpD,EAAEsD,EAAEjD,OAAOO,EAAED,EAAEN,EAAE+C,EAAEA,EAAEpD,EAAEA,EAAEsD,EAAEA,SAAS3C,EAAE,EAAEC,EAAE,MAAMD,EAAEC,EAAED,EAAEA,EAAEyjC,GAAEW,QAAQrkC,EAAE0C,EAAEpD,EAAEsD,IAAI1C,iBAAiBF,EAAE0C,EAAEpD,EAAEsD,SAASjD,EAAE+jC,GAAEY,SAAS,GAAGtkC,UAAUL,EAAE,GAAG+C,EAAE/C,EAAE,GAAGL,EAAEK,EAAE,GAAGiD,GAAG8gC,GAAEY,SAAS,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,KAAK,GAAG,OAAO,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,MAAM,IAAI,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,CAAC,UAAUZ,GAAEC,GAAG,SAASY,KAAK,GAAG,GAAGb,GAAEE,MAAM75B,KAAKw6B,KAAK,IAAI,EAAE,SAAQl0B,YAAYrQ,QAAQqjC,GAAG,IAAIrjC,EAAEsjC,aAAa9hC,KAAK+hC,GAAG,IAAIvjC,EAAEsjC,aAAa9hC,KAAKgiC,GAAG,IAAIxjC,EAAEsjC,aAAa9hC,KAAKiE,EAAElC,MAAM,aAAasM,EAAE,EAAEA,EAAE,IAAIA,GAAG,OAAOpK,EAAEoK,GAAGA,EAAE,IAAIA,EAAE,IAAIA,UAAUnN,EAAE,EAAEA,EAAE,IAAIA,GAAG,EAAE,OAAOpD,EAAEU,EAAEyjC,QAAQ,IAAI/gC,GAAGE,EAAEpB,KAAKiE,EAAE/C,QAAQ+C,EAAE/C,GAAGlB,KAAKiE,EAAE/C,EAAEpD,GAAGkC,KAAKiE,EAAE/C,EAAEpD,GAAGsD,GAAGyN,OAAOrQ,EAAE0C,EAAEpD,EAAEsD,EAAE,EAAEjD,EAAE,SAASO,EAAEF,EAAEwB,KAAK6hC,GAAGpjC,EAAEyC,EAAElB,KAAK+hC,GAAG1gC,EAAEvD,EAAEkC,KAAKgiC,GAAG5jC,EAAEmK,KAAKmxB,MAAMh7B,GAAG4C,EAAEiH,KAAKmxB,MAAMj7B,GAAGJ,EAAEkK,KAAKmxB,MAAMr4B,GAAGF,EAAEzC,EAAEN,EAAEsF,EAAEjF,EAAE6C,EAAE1C,EAAEyC,EAAEhD,MAAMsF,EAAE,KAAK,IAAIvC,EAAE,OAAOiN,EAAElQ,GAAG,GAAGA,EAAEuF,EAAEvF,EAAEuF,IAAI6E,KAAKmxB,MAAMrrB,EAAEjN,EAAE,MAAMA,SAASpB,KAAKgjC,cAAc5kC,EAAEkD,EAAEjD,EAAE8C,EAAEuC,EAAEC,EAAE/E,EAAE8E,GAAGmL,cAAcrQ,EAAE0C,EAAEpD,EAAEsD,EAAEjD,EAAEO,EAAED,SAAS4C,EAAErB,KAAK6C,EAAErE,GAAGJ,EAAE4B,KAAK6C,EAAErE,EAAE,GAAG8C,EAAEtB,KAAK6C,EAAExB,EAAEH,GAAG7C,EAAE2B,KAAK6C,EAAExB,EAAEH,EAAE,GAAGC,EAAEnB,KAAK6C,EAAEzE,EAAE8C,GAAGwC,EAAE1D,KAAK6C,EAAEzE,EAAE8C,EAAE,GAAGtC,EAAEsjC,GAAEW,QAAQ7iC,KAAK6C,EAAEvB,EAAExD,GAAGsD,EAAEjD,EAAEO,GAAGiF,EAAEu+B,GAAEW,QAAQ7iC,KAAK6C,EAAE1B,EAAErD,GAAGsD,EAAE,EAAEjD,EAAEO,GAAG6C,EAAE2gC,GAAEW,QAAQ7iC,KAAK6C,EAAExE,EAAEP,GAAGsD,EAAEjD,EAAE,EAAEO,GAAGiD,EAAEugC,GAAEW,QAAQ7iC,KAAK6C,EAAEa,EAAE5F,GAAGsD,EAAE,EAAEjD,EAAE,EAAEO,GAAG+E,EAAEy+B,GAAEW,QAAQ7iC,KAAK6C,EAAEvB,EAAExD,EAAE,GAAGsD,EAAEjD,EAAEO,EAAE,GAAGgD,EAAEwgC,GAAEW,QAAQ7iC,KAAK6C,EAAE1B,EAAErD,EAAE,GAAGsD,EAAE,EAAEjD,EAAEO,EAAE,GAAGkD,EAAEsgC,GAAEW,QAAQ7iC,KAAK6C,EAAExE,EAAEP,EAAE,GAAGsD,EAAEjD,EAAE,EAAEO,EAAE,GAAGyjC,EAAED,GAAEW,QAAQ7iC,KAAK6C,EAAEa,EAAE5F,EAAE,GAAGsD,EAAE,EAAEjD,EAAE,EAAEO,EAAE,UAAxiN,SAAWF,EAAE0C,EAAEpD,EAAEsD,EAAEjD,EAAEO,EAAED,EAAE4C,EAAEjD,EAAEkD,EAAEjD,UAAUgE,GAAEvE,EAAEmlC,GAAEzkC,EAAE0C,EAAEE,EAAEjD,EAAEO,EAAED,GAAGwkC,GAAEzkC,EAAE0C,EAAEG,EAAEjD,EAAEkD,EAAEjD,IAA0+M6kC,CAAEt8B,GAAExF,GAAGwF,GAAEnI,GAAGmI,GAAElI,GAAGE,EAAE+E,EAAEpC,EAAEI,EAAE8B,EAAE/B,EAAEE,EAAEugC,GAAGtzB,EAAErQ,UAAU,IAAIwB,KAAKiE,EAAE,IAAIzF,IAAI,SAAQqQ,YAAYrQ,EAAE0C,EAAEpD,MAAMU,aAAa2iC,GAAE,OAAO//B,EAAE5C,EAAE2kC,YAAYC,YAAYrhC,MAAMjE,EAAEe,gBAAgBwP,EAAE,EAAEA,EAAEvQ,EAAEe,OAAOwP,OAAO,IAAIvQ,EAAEuQ,GAAG,OAAOg1B,EAAEniC,EAAEmN,OAAO+0B,YAAY/0B,GAAG,IAAIi1B,GAAEliC,EAAEmiC,eAAe,UAAUF,SAAS,IAAI,EAAEniC,EAAEpD,EAAEe,aAAa,IAAImzB,MAAM,iEAAiEoR,YAAYrhC,MAAMjE,EAAEe,gBAAgBuC,GAAGF,EAAEE,GAAG,EAAEA,GAAG,IAAItD,EAAEe,QAAQ,IAAAf,EAAMsD,GAAGpB,KAAKojC,YAAYhiC,GAAG,IAAIkiC,GAAE9kC,GAAGA,EAAEglC,QAAQ,UAAUC,WAAW3lC,EAAEkC,KAAK0jC,sBAAsBn7B,KAAKgyB,IAAI,EAAEr5B,GAAGlB,KAAK2jC,sBAAsBp7B,KAAKgyB,IAAI,EAAEz8B,EAAEe,OAAO,SAAS07B,IAAI,EAAEz8B,EAAEe,QAAQ,GAAGgQ,OAAOrQ,EAAE0C,EAAEpD,EAAEsD,EAAE,EAAEjD,EAAE,EAAEO,GAAE,OAAQD,EAAE,EAAE4C,EAAErB,KAAK0jC,sBAAsBtlC,EAAE4B,KAAK2jC,8BAA8BriC,EAAE,EAAEA,EAAEtB,KAAKojC,YAAYvkC,OAAOyC,GAAG,EAAE,OAAOjD,EAAE2B,KAAKojC,YAAY9hC,UAAUtB,KAAKyjC,WAAWniC,GAAGlD,EAAEC,EAAEulC,OAAOC,GAAE9Z,KAAKvrB,EAAE6C,GAAG3C,GAAGL,EAAE0jC,GAAG8B,GAAE9Z,KAAK7oB,EAAEG,GAAGwiC,GAAE9Z,KAAKjsB,EAAEuD,GAAGD,EAAEC,EAAElD,EAAEkD,IAAIA,GAAG,EAAEjD,GAAG,SAASK,EAAEoQ,eAAerQ,UAAUwB,KAAKojC,YAAYpjC,KAAKojC,YAAYvkC,OAAO,EAAEL,eAAeA,UAAUA,EAAE,SAAS+J,KAAKmxB,MAAMl7B,EAAE,SAAS,KAAK,SAAQqQ,YAAYrQ,EAAE0C,EAAEpD,EAAEsD,QAAQ0iC,UAAUhmC,EAAEkC,KAAK+jC,WAAW3iC,EAAEpB,KAAKgkC,cAAc,IAAIH,GAAErlC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAIwB,KAAKikC,cAAc,IAAIJ,GAAErlC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAIwB,KAAKkkC,UAAU,IAAIL,GAAErlC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAIwB,KAAKmkC,QAAQ,QAAQjjC,EAAEijC,QAAQnkC,KAAKokC,OAAO,QAAQljC,EAAEkjC,OAAOpkC,KAAKqkC,YAAYrkC,KAAKmkC,QAAQjjC,EAAEojC,SAAStkC,KAAKukC,WAAWvkC,KAAKokC,OAAOljC,EAAEsjC,QAAQ31B,OAAOrQ,EAAE0C,EAAEpD,OAAOsD,IAAImH,KAAKmxB,MAAMl7B,EAAEwB,KAAK8jC,WAAW5iC,EAAEqH,KAAKmxB,MAAMx4B,EAAElB,KAAK+jC,YAAYjmC,EAAEyK,KAAKmxB,MAAM57B,EAAEkC,KAAK8jC,eAAe3lC,EAAE,EAAEO,EAAE,UAAUijC,EAAE,EAAEA,EAAE,EAAEA,GAAG,EAAE,IAAIvgC,EAAEpB,KAAKkkC,UAAUO,eAAe9C,GAAGvgC,EAAE,OAAOsjC,EAAE1kC,KAAKqkC,YAAY3lC,EAAEimC,EAAE3kC,KAAKukC,WAAW7lC,EAAEN,EAAEylC,GAAE9Z,KAAKvrB,EAAEkmC,GAAGpjC,EAAEuiC,GAAE9Z,KAAK7oB,EAAEyjC,GAAGtmC,EAAEwlC,GAAE9Z,KAAKjsB,EAAE4mC,MAAMtjC,EAAEwiC,OAAOxlC,EAAEkD,EAAEjD,EAAEsmC,EAAEzjC,EAAEyjC,GAAGjmC,KAAK,OAAO,GAAG,GAAG,EAAEA,EAAE,MAAMD,EAAE,EAAE4C,EAAE,UAAUjD,EAAE,EAAEA,EAAE,GAAGA,GAAG,EAAE,OAAOkD,EAAEtB,KAAKmkC,QAAQzlC,EAAEL,EAAE2B,KAAKokC,OAAO1lC,EAAEyC,EAAE0iC,GAAE9Z,KAAKvrB,EAAE8C,GAAGoC,EAAEmgC,GAAE9Z,KAAK7oB,EAAE7C,GAAGO,EAAEilC,GAAE9Z,KAAKjsB,EAAEwD,KAAK,MAAMtB,KAAKgkC,cAAcS,eAAermC,SAASgD,EAAEwiC,OAAOziC,EAAEuC,EAAE9E,EAAEP,EAAE6C,EAAE7C,GAAGK,GAAGP,EAAE,MAAM6B,KAAKikC,cAAcQ,eAAermC,SAASgD,EAAEwiC,OAAOziC,EAAEuC,EAAE9E,EAAEP,EAAE6C,EAAE7C,GAAGK,GAAGA,GAAG,SAASkmC,GAAEnmC,EAAE,IAAI4C,EAAE,IAAIlD,GAAG,MAAuW+H,QAAM,KAAzV2+B,SAAS,SAASx2B,OAAOnN,EAAEpD,EAAEsD,EAAEjD,EAAEO,QAAQD,EAAE,UAAUoE,GAAEu7B,WAAW/vB,UAAK,IAASnN,EAAEA,EAAE,SAAS,CAACijC,QAAQ,UAAUthC,GAAEm7B,WAAWv/B,EAAEqmC,iBAAY,IAAAhnC,EAAWA,EAAE,EAAEsmC,OAAO,UAAUvhC,GAAEm7B,WAAWv/B,EAAEsmC,gBAAW,IAAS3jC,EAAEA,EAAE,EAAEkjC,SAAS,UAAUzhC,GAAEm7B,WAAWv/B,EAAEumC,kBAAa,IAAA7mC,EAAWA,EAAE,GAAGqmC,QAAQ,UAAU3hC,GAAEm7B,WAAWv/B,EAAEwmC,iBAAY,IAASvmC,EAAEA,EAAE,KAAiB,SAAQmQ,YAAYrQ,GAAG0mC,YAAYhkC,EAAEuiC,WAAW3lC,SAASqnC,MAAM,IAAItB,GAAErlC,EAAE0C,EAAEpD,GAAGkC,KAAKolC,OAAO,IAAIvB,GAAErlC,EAAE0C,EAAEpD,OAAOsD,EAAE,EAAA,EAAIjD,GAAE,EAAA,UAAakQ,EAAE,EAAEA,EAAEvQ,EAAEe,OAAOwP,GAAG,EAAE,IAAIvQ,EAAEuQ,OAAO9F,KAAKoN,IAAIvU,EAAEiN,GAAGlQ,EAAEoK,KAAKD,IAAInK,EAAEkQ,UAAU3P,EAAE,MAAM,KAAK0C,EAAE,SAASikC,YAAY,EAAE,EAAE3mC,EAAEmQ,OAAOrQ,EAAE0C,EAAEpD,SAASsD,EAAE5C,EAAE8mC,GAAEC,aAAapnC,EAAE+C,EAAEokC,GAAEC,aAAa7mC,EAAEZ,EAAEwnC,GAAEC,yBAAyBJ,MAAMvB,OAAOplC,EAAE0C,EAAEpD,GAAGkC,KAAKolC,OAAOxB,OAAOxiC,EAAEjD,EAAEO,IAAIsB,KAAKqlC,aAAaC,GAAEC,aAAa,oBAA8Tt/B,QAAM,KAAnS4+B,SAAS,SAASx2B,OAAOnN,EAAEpD,EAAEsD,QAAQjD,EAAE,UAAU0E,GAAEu7B,WAAW/vB,UAAK,IAASnN,EAAEA,EAAE,SAAS,CAACgkC,YAAY,UAAUriC,GAAEo7B,QAAQ9/B,EAAE+mC,oBAAe,IAASpnC,EAAEA,EAAE,EAAE2lC,WAAW,UAAU5gC,GAAEw7B,UAAUlgC,EAAEslC,oBAAoBnF,SAAS,UAAUz7B,GAAEm7B,WAAWO,UAAK,IAASD,EAAEA,EAAE,YAAO,IAASl9B,EAAEA,EAAE,KAAunB,SAAS5C,KAAKqmC,SAAS,SAAS3jC,EAAEpD,OAAOsD,EAAEjD,EAAEO,EAAED,KAAK,iBAAiByC,SAAS,IAAIskC,GAAEtkC,SAASG,EAAE,UAAUwB,GAAEu7B,WAAWl9B,UAAK,IAASE,EAAEA,EAAE,GAAGhD,EAAE,IAAIqnC,GAAE3nC,EAAEuD,EAAEqkC,aAAapkC,EAAE,UAAUuB,GAAEw7B,UAAUh9B,EAAEskC,gBAAgBrH,SAAS,UAAUz7B,GAAEu7B,WAAW/vB,UAAK,IAASiwB,EAAEA,EAAE,aAAQ,IAASngC,EAAEA,EAAE,MAAM,IAAImD,EAAEzC,cAAc,IAAI2mC,GAAE,aAAalH,KAAKh9B,EAAE,OAAOskC,EAAE,UAAU/iC,GAAEm7B,WAAWM,EAAE10B,iBAAY,IAAAlL,EAAWA,EAAE,EAAEgC,EAAElC,EAAEqmC,SAASvG,EAAEl8B,MAAMtE,GAAG6mC,EAAE,UAAU9hC,GAAEm7B,WAAWM,EAAEuH,mBAAc,IAAApnC,EAAWA,EAAE,IAAIqnC,SAASF,EAAEllC,EAAEikC,UAAUvmC,GAA/e,CAAmf8+B,QAAM,KAAK,SAAQruB,YAAYrQ,QAAQ4D,MAAM5D,EAAEqQ,eAAe7O,KAAKoC,MAAMyM,gBAAgB7O,KAAKoC,OAAO,SAAQyM,YAAYrQ,EAAE0C,EAAE,GAAGpD,EAAE,GAAGsD,EAAE,SAASskC,WAAWlnC,EAAEwB,KAAK+lC,UAAU7kC,EAAElB,KAAKqY,OAAOva,EAAEkC,KAAKgmC,YAAY5kC,EAAEyN,MAAMrQ,SAAS0C,EAAElB,KAAK0lC,WAAWtV,MAAM5xB,GAAGV,EAAlyV,SAAWU,EAAE0C,EAAEpD,OAAOsD,EAAEF,EAAE1C,OAAO4C,EAAE,GAAG,OAAOk9B,EAAE/1B,KAAKmxB,MAAMt4B,EAAE,GAAGjD,EAAEK,EAAE8/B,IAAIngC,GAAGiD,EAAEk9B,KAAKngC,EAAE,EAAEiD,GAAGk9B,EAAE,UAAU9/B,EAAgsV8H,CAAE,EAAEtG,KAAK+lC,UAAUlnC,WAAWqC,EAAElB,KAAK+lC,UAAU13B,KAAK,EAAEjN,EAAEpB,KAAK+lC,UAAUlnC,OAAO,KAAKf,EAAE,SAASkC,KAAKqY,OAAO,GAAG+X,MAAM5xB,GAAGwB,KAAKgmC,YAAY,MAAMhmC,KAAK+lC,UAAU,OAAOjoC,IAAIsD,SAASpB,KAAKqY,OAAOjX,GAAGgvB,MAAM5xB,GAAGwB,KAAKgmC,YAAY5kC,MAAMpB,KAAK+lC,UAAU3kC,UAAUjD,EAAE6B,KAAK+lC,UAAUjoC,GAAGY,EAAEsB,KAAK+lC,UAAUjoC,EAAE,GAAGW,EAAEuB,KAAKgmC,YAAYloC,GAAGuD,EAAErB,KAAKgmC,YAAYloC,EAAE,GAAGM,KAAKD,MAAMA,GAAGmD,EAAEtB,KAAKqY,OAAOva,GAAGsyB,MAAM5xB,GAAGH,EAAE2B,KAAKqY,OAAOva,EAAE,GAAGsyB,MAAM5xB,GAAG2C,EAAE1C,KAAKN,MAAMmD,GAAGoC,GAAGrC,KAAKlD,MAAMmD,UAAUe,GAAEjE,EAAEkD,EAAEjD,GAAGD,KAAKA,GAAGiE,GAAEjE,EAAE+C,EAAEuC,GAAGmL,SAASrQ,EAAE0C,EAAEpD,EAAE,UAAUkC,KAAK+lC,UAAUjnC,KAAKN,GAAGwB,KAAKqY,OAAOvZ,KAAK,iBAAiBoC,EAAE,IAAIskC,GAAEtkC,GAAGA,GAAGlB,KAAKgmC,YAAYlnC,KAAKhB,GAAGkC,KAAK6O,eAAe,CAAC62B,WAAW1lC,KAAK0lC,WAAWO,SAASN,OAAO3lC,KAAK+lC,UAAUh9B,KAAK,CAACvK,EAAE0C,KAAK,CAAC0I,SAASpL,EAAE4D,MAAMpC,KAAKqY,OAAOnX,GAAG+kC,SAASJ,WAAW7lC,KAAKgmC,YAAY9kC,UAAmhDi8B,QAAQ,KAA5V+I,OAAO,SAAS73B,EAAEnN,EAAEpD,OAAOqoC,GAAG/kC,EAAEglC,KAAKjoC,EAAEkoC,MAAM3nC,EAAE4nC,KAAK7nC,EAAE8nC,MAAMllC,EAAEmlC,KAAKpoC,GAAGiQ,SAASvQ,QAAQ,IAAIY,EAAED,EAAE4C,EAAEjD,GAAG,CAACK,EAAE4C,EAAEjD,EAAEM,cAAc,KAAKA,EAAED,EAAE4C,EAAEjD,GAAG,CAACiD,EAAEjD,EAAEM,EAAED,cAAc,KAAKC,EAAED,EAAE4C,EAAEjD,GAAG,CAACA,EAAEM,EAAED,EAAE4C,UAAUH,QAAQ,IAAIE,EAAE1C,EAAEP,EAAEkD,GAAG,CAAC3C,EAAEP,EAAEkD,EAAED,cAAc,KAAKA,EAAE1C,EAAEP,EAAEkD,GAAG,CAAClD,EAAEkD,EAAED,EAAE1C,cAAc,KAAK0C,EAAE1C,EAAEP,EAAEkD,GAAG,CAACA,EAAED,EAAE1C,EAAEP,SAAS,CAACgoC,GAAG/kC,EAAEglC,KAAKjoC,EAAEkoC,MAAM3nC,EAAE4nC,KAAK7nC,EAAE8nC,MAAMllC,EAAEmlC,KAAKpoC,IAc3guB,SAASI,cAAc6P,EAAEiwB,SAAS,iBAAiBjwB,EAAE,IAAIvQ,EAAEuQ,EAAE,MAAAiwB,EAAQA,EAAEjwB,GAAGA,IAAI7D,OAAO,SAAS6D,EAAEiwB,EAAE+E,EAAEuC,EAAEa,EAAE9E,UAAU,IAAIxjC,EAAEkQ,EAAEiwB,EAAE+E,EAAEuC,EAAEa,EAAE9E,IAAInjC,EAAEkoC,WAAW,SAASr4B,EAAEg1B,EAAE3iC,EAAE+lC,EAAE9E,EAAEgD,EAAEn+B,UAAU,IAAIpF,EAAEF,EAAEmN,GAAGnN,EAAEmiC,GAAGniC,EAAER,GAAGQ,EAAEulC,GAAGvlC,EAAEygC,GAAGzgC,EAAEyjC,GAAGn+B,IAAIhI,EAAEkK,MAAMxH,UAAU2N,YAAYR,EAAEiwB,QAAQ3oB,IAAItH,EAAErO,KAAKsI,IAAIg2B,EAAEzvB,SAASR,SAASiwB,GAAG,iBAAiBjwB,EAAEA,EAAEA,EAAEsH,KAAK3V,KAAKsI,IAAI+6B,EAAErjC,KAAK2V,KAAK,iBAAiBtH,EAAEA,EAAEA,EAAE/F,YAAYg2B,EAAE,EAAEA,EAAE/1B,KAAKD,IAAI+6B,EAAE,GAAGx0B,MAAMR,UAAU,IAAIvQ,EAAEyK,KAAKoN,IAAI3V,KAAK2V,IAAItH,EAAEsH,KAAKpN,KAAKD,IAAItI,KAAKsI,IAAI+F,EAAE/F,sBAAsB+F,OAAOiwB,KAAK,iBAAiBjwB,SAAS,IAAIvQ,EAAEuQ,EAAEA,SAASu3B,EAAEllC,GAAG,UAAUmC,GAAEw7B,UAAUhwB,MAAMxL,GAAEm7B,WAAWO,YAAO,IAAAD,EAAWA,EAAE,UAAU,IAAIxgC,EAAE,MAAM8nC,EAAEA,EAAE,EAAE,MAAMllC,EAAEA,EAAE,MAAMimC,MAAM7oC,UAAU+Q,YAAYR,EAAEiwB,EAAE+E,EAAEuC,EAAEllC,EAAE+lC,EAAE9E,QAAQiF,YAAYv4B,EAAErO,KAAK6mC,SAASvI,EAAEt+B,KAAK8mC,gBAAgBzD,EAAErjC,KAAK+mC,QAAQnB,EAAE5lC,KAAKqgB,MAAM3f,EAAEV,KAAKgnC,UAAUP,EAAEzmC,KAAK4P,OAAO+xB,EAAE9yB,SAASR,UAAU44B,GAAEjnC,KAAK4mC,YAAYM,SAAS74B,EAAEu4B,cAAcK,GAAEjnC,KAAK6mC,SAASK,SAAS74B,EAAEw4B,WAAWI,GAAEjnC,KAAK8mC,gBAAgBI,SAAS74B,EAAEy4B,kBAAkBG,GAAEjnC,KAAK+mC,QAAQG,SAAS74B,EAAE04B,UAAUE,GAAEjnC,KAAKqgB,MAAM6mB,SAAS74B,EAAEgS,QAAQ4mB,GAAEjnC,KAAKgnC,UAAUE,SAAS74B,EAAE24B,YAAYC,GAAEjnC,KAAK4P,OAAOvB,EAAEuB,QAAQf,cAAc,CAAC7O,KAAK4mC,YAAY5mC,KAAK6mC,SAAS7mC,KAAK8mC,gBAAgB9mC,KAAK+mC,QAAQ/mC,KAAKqgB,MAAMrgB,KAAKgnC,UAAU,IAAIlpC,EAAEkC,KAAK4P,OAAO5P,KAAK4P,yBAAyBvB,OAAOiwB,EAAE59B,QAAQ+lC,EAAE,UAAU5jC,GAAEu7B,WAAW/vB,UAAK,IAASiwB,EAAEA,EAAE,UAAU,IAAIl9B,EAAEtD,EAAE+mC,SAAS4B,EAAEG,aAAa9oC,EAAE+mC,SAAS4B,EAAEI,UAAU/oC,EAAE+mC,SAAS4B,EAAEK,iBAAiBhpC,EAAE+mC,SAAS4B,EAAEM,SAASjpC,EAAE+mC,SAAS4B,EAAEpmB,OAAOviB,EAAE+mC,SAAS4B,EAAEO,WAAW,UAAUnkC,GAAEo7B,QAAQwI,EAAE72B,eAAU,IAAAlP,EAAWA,EAAE,MAAMymC,WAAW/lC,UAAUyN,YAAYR,EAAEiwB,EAAE+E,EAAEuC,EAAEllC,EAAE+lC,QAAQG,YAAYv4B,EAAErO,KAAK6mC,SAASvI,EAAEt+B,KAAK8mC,gBAAgBzD,EAAErjC,KAAK+mC,QAAQnB,EAAE5lC,KAAKqgB,MAAM3f,EAAEV,KAAKgnC,UAAUP,sBAAsB,EAAE53B,gBAAgB,CAAC7O,KAAK4mC,YAAY5mC,KAAK6mC,SAAS7mC,KAAK8mC,gBAAgB9mC,KAAK+mC,QAAQ/mC,KAAKqgB,MAAMrgB,KAAKgnC,UAAUhnC,KAAK4P,WAAWw3B,YAAYjpC,IAAIkpC,WAAW,MAAMx4B,YAAYR,QAAQi5B,OAAOj5B,EAAErO,KAAKkJ,MAAM,IAAIxK,EAAE2P,GAAGQ,KAAKR,UAAUrO,KAAKkJ,MAAMa,OAAOsE,GAAG,CAACkwB,EAAED,IAAIC,EAAE2I,SAAS5I,eAAezvB,YAAYR,QAAQwmB,KAAKn2B,EAAE6oC,MAAMl5B,EAAEtF,KAAK,EAAEw1B,EAAED,KAAK,IAAIlgC,EAAEmgC,EAAED,mBAAmBjwB,MAAM,IAAIA,EAAExP,cAAcwP,EAAE,MAAMA,EAAExP,QAAQH,EAAE8oC,kBAAkB,OAAOC,EAAEp5B,EAAEtF,aAAa2+B,EAAE,UAAUC,EAAE,EAAEA,EAAE,EAAEA,GAAG,EAAE,OAAOC,EAAErJ,EAAEsJ,MAAMF,MAAMp/B,KAAKu/B,OAAOnyB,IAAIiyB,EAAEt/B,KAAK,SAAS,CAAClJ,IAAIsoC,EAAEr9B,KAAKk0B,MAAM99B,MAAM,CAAC89B,EAAEmJ,IAAInJ,EAAEn/B,IAAIsoC,EAAEtoC,MAAM2J,KAAK,EAAEsB,KAAKk0B,KAAKA,WAAW,IAAIl9B,EAAEomC,OAAOnJ,EAAE,EAAA,EAAI+E,KAAKuC,EAAE,WAAWllC,EAAE,EAAEA,EAAE,IAAIA,EAAE,GAAGhC,EAAE+B,KAAK4N,EAAE3N,GAAE,GAAIklC,EAAElnC,EAAEqpC,UAAU15B,OAAOszB,EAAE,YAAYpD,KAAKqH,KAAKlnC,EAAEspC,KAAKzJ,EAAEsJ,SAASlG,MAAMA,EAAE0B,EAAE3iC,UAAU2N,EAAE3P,EAAE+B,KAAK4N,EAAEg1B,GAAE,GAAIuC,EAAElnC,EAAEqpC,UAAU15B,GAAGu3B,EAAElnC,EAAE+B,KAAKmlC,EAAEvC,GAAE,GAAI,IAAIhiC,EAAEukC,EAAE78B,QAAQrK,EAAE6oC,MAAMhJ,EAAEx/B,yBAAyBsP,EAAEiwB,EAAE+E,UAAUh1B,EAAEtF,eAAe68B,EAAErH,EAAEsJ,MAAMvJ,GAAG59B,KAAKiV,IAAIiwB,EAAEt9B,KAAK,QAAQ,CAAClJ,IAAIikC,EAAE96B,KAAKu/B,IAAIpnC,GAAGA,EAAE2J,KAAKk0B,MAAM99B,MAAM,CAAC89B,EAAEkJ,IAAIlJ,EAAEn/B,IAAIqoC,EAAEroC,MAAM2J,KAAK,EAAEsB,KAAKk0B,KAAKA,qBAAqBlwB,SAASiwB,EAAE,OAAO+E,EAAE,SAASuC,EAAEr9B,KAAKgyB,IAAI,GAAGhyB,KAAKmxB,MAAMnxB,KAAKoL,IAAItF,EAAExP,OAAO,KAAK0J,KAAKoL,IAAI,gBAAgBjT,KAAK2N,IAAIvP,KAAK4B,GAAG2iC,EAAExkC,OAAO+mC,MAAM9mC,KAAK,IAAIuC,EAAEgiC,IAAIA,EAAE,WAAW,IAAIA,EAAExkC,QAAQy/B,EAAEx/B,KAAK,IAAIuC,EAAEgiC,IAAI/E,cAAcjwB,OAAOiwB,EAAE,YAAY+E,KAAKh1B,KAAK9F,KAAKu/B,IAAIzE,EAAE/6B,IAAI+6B,EAAE1tB,YAAY2oB,EAAEzvB,OAAOR,EAAEiwB,UAAUt+B,KAAK60B,KAAK9qB,OAAOsE,EAAE45B,UAAU3J,GAAG4J,WAAWV,kBAAkB,GAAGhpC,EAAE2pC,MAAMzpC,UAAUmQ,YAAYR,QAAQw5B,MAAMx5B,EAAEQ,SAASR,OAAOiwB,EAAE,UAAU+E,EAAE,EAAEA,EAAE,EAAEA,GAAG,KAAK4D,GAAEjnC,KAAK6nC,MAAMxE,GAAG6D,SAAS74B,EAAEg1B,YAAY/E,KAAK8J,MAAM3pC,kBAAkBA,EAAEoQ,YAAYR,SAAShN,EAAEgnC,WAAWh6B,IAAIrO,KAAKjB,SAASsP,oBAAoBA,OAAOiwB,EAAE,IAAIv8B,MAAM,IAAIgH,KAAK,IAAI,IAAIjL,EAAE,EAAA,GAAI,EAAA,eAAkBulC,KAAKh1B,IAAI,IAAItM,MAAM,IAAIgH,KAAK,CAACw1B,EAAEqH,IAAItH,EAAEsH,GAAG0C,MAAMjF,EAAEwE,MAAMjC,aAAatH,EAAEzvB,OAAOR,EAAEiwB,OAAO+E,EAAE,EAAA,EAAIuC,EAAE,eAAellC,KAAKV,KAAKjB,SAAS,OAAO0nC,EAAEnI,EAAE59B,EAAE2N,MAAMg1B,GAAGoD,iBAAiB9E,EAAEjhC,EAAEqJ,OAAOsE,EAAEiwB,GAAGqG,EAAEjkC,GAAGihC,EAAE8E,EAAEnI,EAAEqD,EAAEtzB,MAAMs2B,MAAMA,EAAEiB,EAAEjE,UAAUiE,KAAK2C,SAASlnC,kBAAkB5C,EAAEoQ,YAAYR,EAAEiwB,SAASjwB,EAAEw5B,SAAS7nC,KAAKkoC,MAAM5J,EAAEzvB,gBAAgB7O,QAAQwoC,MAAMpqC,EAAjmH,CAAomHg/B,QAAQ,KAAK,SAASvuB,YAAYrQ,QAAQiqC,MAAMjqC,EAAEqQ,kBAAkB7O,KAAKyoC,sBAAsBjqC,OAAO0C,EAAEpD,QAAQsD,EAAE,UAAUyB,GAAEu7B,WAAW5/B,UAAK,IAAA0C,EAAWA,EAAE,GAAG/C,EAAE,UAAU0E,GAAEq7B,WAAW98B,EAAEqnC,cAAS,IAAS3qC,EAAEA,EAAE,4BAA4B,IAAI4qC,GAAGvqC,IAA8gB,SAAS0Q,YAAYrQ,EAAE0C,EAAEpD,QAAQ6qC,cAAcnqC,EAAEwB,KAAK4oC,cAAc1nC,EAAElB,KAAK6oC,kBAAkB/qC,mBAAmBU,SAAS,CAAC4xB,SAASlvB,EAAE1C,GAAGynC,OAAO,IAAIznC,mBAAmBA,OAAO0C,QAAQpD,EAAE,UAAU+E,GAAEu7B,WAAW5/B,UAAK,IAAS0C,EAAEA,EAAE,UAAU,IAAI4nC,GAAG5L,GAAE2H,SAAS/mC,EAAE8R,OAAO5P,KAAK+oC,WAAW7L,GAAE2H,SAAS/mC,EAAEkrC,OAAOhpC,KAAK+oC,WAAW7L,GAAE2H,SAAS/mC,EAAEmrC,WAAWjpC,KAAK+oC,YAAYl6B,eAAe,CAACe,OAAO5P,KAAK2oC,cAAc1C,SAAS+C,OAAOhpC,KAAK4oC,cAAc3C,SAASgD,WAAWjpC,KAAK6oC,kBAAkB5C,UAAUp3B,OAAOrQ,UAAUwB,KAAK2oC,cAAcvY,MAAM5xB,GAAGsqC,GAAGI,cAAcr6B,OAAOrQ,UAAUwB,KAAK4oC,cAAcxY,MAAM5xB,GAAGqQ,WAAWrQ,UAAUwB,KAAK6oC,kBAAkBzY,MAAM5xB,gBAAgBA,EAAE0C,EAAEpD,SAAS,CAACqrC,WAAW3qC,EAAEuoC,QAAQ7lC,EAAE8lC,UAAUlpC,EAAEsrC,OAAOppC,KAAKqpC,gBAAgBvrC,2BAA2BU,UAAU,SAASspC,IAAIv/B,KAAKu/B,IAAItpC,GAAG,UAAU,oCAAoCA,EAAEwB,KAAKspC,8BAA8B,EAAE,EAAE,GAAG,QAAO,GAAG,GAAIpoC,EAAElB,KAAKspC,6BAA6B,IAAI,GAAG,GAAG,UAAS,GAAG,GAAIxrC,EAAEkC,KAAKspC,6BAA6B,IAAI,GAAG,GAAG,UAAS,GAAG,GAAIloC,EAAEpB,KAAKspC,yBAAyB,GAAG,IAAI,GAAG,EAAE,IAAI,KAAI,GAAG,GAAInrC,EAAE,IAAIsnC,GAAEzlC,KAAKupC,YAAYzD,cAAc,MAAMA,uBAAuBA,sBAAsBA,oBAAoBA,oBAAoBA,cAActnC,GAAGsnC,cAActnC,GAAGsnC,aAAa5kC,GAAG4kC,SAAS,IAAIhoC,GAAGgoC,SAAS,EAAE1kC,GAAG1C,EAAE,IAAI+mC,GAAEzlC,KAAKupC,YAAYzD,cAAc,MAAMA,cAAc9lC,KAAKwpC,iBAAiB,MAAK,IAAK1D,aAAa9lC,KAAKwpC,iBAAiB,MAAK,IAAK1D,SAAS,IAAI9lC,KAAKwpC,iBAAiB,MAAK,IAAK1D,SAAS,IAAI9lC,KAAKwpC,iBAAiB,MAAK,IAAK/qC,EAAE,IAAIgnC,GAAEzlC,KAAKupC,YAAYzD,SAAS,IAAI,GAAGA,SAAS,IAAI9lC,KAAKypC,6BAA6B,EAAE,GAAG,EAAE,IAAI3D,SAAS,IAAI9lC,KAAKypC,6BAA6B,EAAE,EAAE,EAAE,WAAW,IAAIX,GAAG3qC,EAAEO,EAAED,2BAA2BD,EAAE0C,SAASpD,EAAE,IAAI2nC,GAAEzlC,KAAK0pC,WAAW5D,aAAa,KAAKA,SAAS,GAAGtnC,GAAG4C,EAAE,IAAIqkC,GAAEzlC,KAAK2pC,SAAS7D,aAAahoC,GAAGgoC,aAAa,IAAIL,GAAEzlC,KAAK0pC,WAAW5D,cAAc,KAAKA,SAAS,IAAI,OAAOA,cAAchoC,GAAGgoC,cAAchoC,GAAGgoC,aAAa,IAAIL,GAAEzlC,KAAK0pC,WAAW5D,cAAc,MAAMA,SAAS,IAAI,MAAMA,SAAS,IAAIhoC,MAAMoD,EAAE,OAAOo9B,EAAE,IAAImH,GAAEzlC,KAAK0pC,WAAW5D,SAAS,EAAEtnC,GAAGsnC,SAAS,GAAG,MAAMzC,EAAE,IAAIoC,GAAEzlC,KAAK4pC,QAAQ9D,aAAatnC,GAAGsnC,cAAcxH,KAAKwH,SAAS,IAAItnC,GAAGsnC,SAAS,IAAIzC,GAAGyC,SAAS,IAAIzC,GAAGyC,SAAS,IAAItnC,OAAO,OAAO8/B,EAAE,IAAImH,GAAEzlC,KAAK4pC,QAAQ9D,aAAahoC,GAAGgoC,cAAc,MAAM3nC,EAAE,IAAIsnC,GAAEzlC,KAAK4pC,QAAQ9D,SAAS,IAAIhoC,GAAGgoC,SAAS,GAAG,QAAQA,SAAS,IAAI3nC,GAAG2nC,SAAS,GAAG3nC,GAAG2nC,SAAS,IAAIxH,GAAGwH,SAAS,IAAIxH,GAAGwH,SAAS,IAAItnC,UAAU4C,kCAAkC5C,EAAE0C,EAAEpD,EAAEsD,EAAEjD,EAAEO,EAAED,EAAE4C,SAASjD,EAAE4B,KAAK6pC,mCAAmCxnC,GAAEjB,EAAE,GAAG,KAAKC,GAAGC,EAAEtB,KAAK6pC,mCAAmCxnC,GAAEjB,EAAE,GAAG,GAAGC,GAAGhD,EAAE2B,KAAK6pC,mCAAmCzoC,EAAEC,GAAGF,EAAEnB,KAAK8pC,YAAYtrC,EAAE,IAAI,GAAG4C,EAAEiB,GAAE,GAAG,GAAG,IAAIjB,EAAE,GAAGA,EAAE,GAAGA,EAAE,IAAIsC,EAAE1D,KAAK8pC,YAAYtrC,EAAEL,EAAEiD,EAAEF,EAAEE,EAAE,GAAGA,EAAE,GAAGA,EAAE,IAAIxC,EAAEoB,KAAK8pC,YAAYtrC,EAAEL,EAAEA,EAAE+C,EAAEpD,EAAE,IAAI6F,EAAE3D,KAAK8pC,YAAYtrC,EAAEL,EAAEA,EAAE+C,EAAEpD,EAAE,IAAIyD,EAAE,IAAIkkC,GAAEzlC,KAAK4pC,QAAQ9D,YAAYtnC,GAAGsnC,aAAalnC,GAAGknC,SAAS,EAAEhoC,EAAE,KAAK6D,EAAE3B,KAAK8pC,iBAAiBprC,EAAEA,EAAEwC,EAAEpD,EAAE,GAAG2F,EAAE,IAAIgiC,GAAEzlC,KAAK2pC,SAAS7D,cAAc1nC,GAAG0nC,aAAaxkC,GAAGwkC,aAAaznC,GAAGynC,cAAc3kC,GAAG2kC,aAAapiC,GAAGoiC,SAAS,GAAGlnC,UAAUH,GAAGgF,EAAEqiC,SAAS,GAAGniC,GAAGmiC,SAAS,IAAIvkC,GAAGukC,SAAS,IAAIvkC,GAAGukC,SAAS,IAAIniC,GAAGF,EAAEqiC,SAAS,GAAGnkC,GAAG8B,4CAA4CjF,EAAE0C,SAASpD,EAAE,IAAI2nC,GAAEzlC,KAAK4pC,QAAQxoC,EAAEpB,KAAK+pC,2BAA2BvrC,OAAOL,EAAE6B,KAAK+pC,wBAAwB,EAAEvrC,OAAOE,EAAEsB,KAAKgqC,+CAA+CxrC,WAAWE,GAAGA,EAAE,EAAE,OAAO4/B,EAAEt+B,KAAK+pC,6BAA6BvrC,OAAOC,EAAEuB,KAAK+pC,6BAA6BvrC,OAAO6C,EAAErB,KAAKiqC,eAAe7oC,EAAE3C,aAAaqnC,YAAY1kC,EAAEC,GAAGvD,EAAEgoC,cAAcrnC,GAAGX,EAAEgoC,cAAcxH,SAASlgC,EAAE4B,KAAK+pC,wBAAwBrrC,EAAEF,OAAO8C,EAAEtB,KAAKiqC,eAAe7rC,EAAED,EAAEO,EAAE,KAAKonC,SAASpnC,EAAE,IAAIN,GAAGN,EAAEgoC,SAASpnC,EAAEN,EAAEkD,GAAGxD,EAAEgoC,SAAS,EAAE3nC,EAAEmD,OAAO,OAAO+M,EAAErO,KAAKiqC,eAAe7oC,EAAEjD,KAAK,QAAQ2nC,YAAYv9B,KAAKD,IAAI,GAAGlH,IAAItD,EAAEgoC,SAAS,EAAEzjC,GAAE,GAAGjB,EAAEjD,GAAGkQ,IAAIvQ,EAAEgoC,YAAY1kC,EAAEiN,GAAGvQ,EAAEgoC,SAAS,EAAE3nC,EAAEkQ,UAAUvQ,iCAAiCU,EAAE0C,EAAEpD,SAASsD,EAAE,aAAa,SAAS,MAAMF,IAAI,MAAMA,UAAU1C,EAAEV,EAAEyK,KAAKD,IAAIlH,UAAUmH,KAAKD,IAAIlH,EAAE,yDAAyD5C,SAAS,MAAMA,iBAAiB,MAAMA,KAAK,2BAA2BA,EAAE0C,EAAEpD,EAAEsD,YAAY5C,MAAMV,sBAAsBU,EAAE0C,EAAEpD,EAAEsD,EAAEjD,EAAEO,SAASD,EAAE8J,KAAKD,IAAI,MAAM9J,GAAGE,GAAG2C,EAAE,KAAKH,UAAU,IAAIukC,GAAEzlC,KAAK4pC,QAAQ9D,YAAYtnC,EAAEC,GAAGqnC,aAAa5kC,EAAEqH,KAAKoN,IAAIlX,EAAE4C,IAAIykC,SAAS,EAAEhoC,EAAEuD,GAAGykC,SAAS,GAAG1kC,EAAE,KAAKtD,IAAIgoC,SAAS,EAAE3nC,EAAE,MAAMiD,wCAAwC5C,EAAE0C,EAAEpD,EAAEsD,SAASjD,EAAE6B,KAAKkqC,2BAA2B1rC,EAAEV,GAAGY,EAAEsB,KAAKkqC,2BAA2BhpC,EAAEE,UAAU,IAAIqkC,GAAEzlC,KAAK2pC,SAAS7D,YAAY3nC,GAAG2nC,cAAcpnC,GAAGonC,gBAAgBpnC,GAAGonC,eAAe,qCAAqCtnC,EAAE0C,SAASpD,EAAEgrC,GAAGO,gBAAgB,IAAIjoC,KAAK0nC,GAAGO,gBAAgB,YAAY,SAAS,IAAI5D,GAAEzlC,KAAK4pC,QAAQ9D,SAAShoC,EAAE,GAAGgoC,SAAS1kC,EAAEF,EAAE,EAAElB,KAAKmqC,+BAA+BjpC,GAAG,GAAG4kC,SAAS,EAAEtnC,EAAE,EAAEwB,KAAKmqC,+BAA+B3rC,GAAG,yCAAyCA,UAAU,IAAIinC,GAAEqD,GAAGY,WAAW5D,cAAc,IAAItnC,GAAGsnC,SAAS,IAAI,GAAGtnC,IAAIsqC,GAAGI,sBAAsBJ,GAAGC,kBAAkB7nC,QAAQpD,EAAE,UAAU+E,GAAEq7B,WAAW1/B,UAAK,IAAS0C,EAAEA,EAAE,oBAAoB4nC,GAAGsB,UAAUtsC,IAAIgrC,GAAGS,WAAWT,GAAGsB,UAAU,cAActB,GAAGa,QAAQb,GAAGsB,UAAU,WAAWtB,GAAGY,UAAUZ,GAAGsB,UAAU,aAAatB,GAAGc,OAAOd,GAAGsB,UAAU,WAAiI/M,QAAQ,KAAjHgN,SAAS,SAASh8B,SAAS,CAACnN,EAAEpD,EAAEsD,EAAEjD,eAAeO,KAAK2P,EAAE,OAAOkwB,EAAE7/B,EAAEwC,EAAEpD,EAAEsD,EAAEjD,MAAMogC,SAASA,SAAS,OAAqB,SAAS1vB,YAAYrQ,EAAE0C,QAAQ+uB,MAAMzxB,EAAEwB,KAAKsqC,OAAOppC,EAAElB,KAAKuqC,SAAS,EAAEvqC,KAAKwqC,SAAS,EAAExqC,KAAKyqC,SAAS,EAAEzqC,KAAK0qC,SAAS,EAAE1qC,KAAK2qC,SAAS,EAAE3qC,KAAK4qC,SAAS,EAAE5qC,KAAK6qC,SAAS,EAAE7qC,KAAK8qC,SAAS,EAAE9qC,KAAK+qC,UAAU,EAAE/qC,KAAKgrC,UAAU,EAAEhrC,KAAKirC,UAAU,EAAEjrC,KAAKkrC,UAAU,EAAElrC,KAAKmrC,QAAQ,EAAEnrC,KAAKorC,QAAQ,EAAEprC,KAAKoC,MAAM,EAAEpC,KAAKqrC,OAAOC,GAAGC,cAAc/sC,EAAEgtC,WAAWhtC,EAAEitC,aAAazrC,KAAK0rC,OAAOJ,GAAGC,cAAc/sC,EAAEgtC,WAAWhtC,EAAEitC,kCAAkCjtC,EAAE0C,SAASpD,EAAEiE,MAAMb,EAAE,WAAWE,EAAE,EAAEA,EAAEF,EAAE,EAAEE,GAAG,IAAIA,GAAGW,MAAMvD,EAAE,UAAUV,EAAE+Q,+BAA+B88B,UAAU3rC,KAAKqrC,OAAOrrC,KAAKiwB,MAAM2b,YAAY/8B,aAAarQ,QAAQmtC,UAAU3rC,KAAK0rC,OAAO1rC,KAAKiwB,MAAM2b,WAAWptC,EAAE,GAAGqQ,UAAUrQ,EAAE0C,SAASpD,EAAEoD,EAAElB,KAAKiwB,MAAM6T,kBAAkBxF,EAAE,EAAEA,EAAEt+B,KAAKiwB,MAAMwb,YAAY,EAAEnN,GAAG,EAAE,OAAOl9B,QAAQ6uB,MAAM4b,WAAWvN,GAAGt+B,KAAKiwB,MAAM6T,kBAAkB3lC,EAAE,EAAEA,EAAE6B,KAAKiwB,MAAMub,WAAW,EAAErtC,GAAG,EAAE,OAAOO,QAAQuxB,MAAM6b,mBAAmB3tC,GAAG6B,KAAKiwB,MAAM8T,aAAazF,GAAGngC,GAAG6B,KAAKsqC,OAAOxsC,EAAEY,EAAE0C,KAAKyN,aAAarQ,EAAE0C,QAAQqpC,SAASvqC,KAAKqrC,OAAOnqC,GAAG1C,GAAGwB,KAAKwqC,SAASxqC,KAAKqrC,OAAOnqC,EAAE,GAAG1C,GAAGwB,KAAKyqC,SAASzqC,KAAK0rC,OAAOxqC,GAAG1C,GAAGwB,KAAK0qC,SAAS1qC,KAAK0rC,OAAOxqC,EAAE,GAAG1C,GAAGwB,KAAK2qC,SAAS3qC,KAAKqrC,OAAOnqC,GAAG1C,EAAE,GAAGwB,KAAK4qC,SAAS5qC,KAAKqrC,OAAOnqC,EAAE,GAAG1C,EAAE,GAAGwB,KAAK6qC,SAAS7qC,KAAK0rC,OAAOxqC,GAAG1C,EAAE,GAAGwB,KAAK8qC,SAAS9qC,KAAK0rC,OAAOxqC,EAAE,GAAG1C,EAAE,GAAGqQ,WAAWrQ,QAAQusC,UAAU1oC,GAAE7D,EAAEwB,KAAKuqC,SAASvqC,KAAK2qC,UAAU3qC,KAAKgrC,UAAU3oC,GAAE7D,EAAEwB,KAAKyqC,SAASzqC,KAAK6qC,UAAU7qC,KAAKirC,UAAU5oC,GAAE7D,EAAEwB,KAAKwqC,SAASxqC,KAAK4qC,UAAU5qC,KAAKkrC,UAAU7oC,GAAE7D,EAAEwB,KAAK0qC,SAAS1qC,KAAK8qC,UAAUj8B,WAAWrQ,QAAQ2sC,QAAQ9oC,GAAE7D,EAAEwB,KAAK+qC,UAAU/qC,KAAKgrC,WAAWhrC,KAAKorC,QAAQ/oC,GAAE7D,EAAEwB,KAAKirC,UAAUjrC,KAAKkrC,WAAWr8B,WAAWrQ,QAAQ4D,MAAMC,GAAE7D,EAAEwB,KAAKmrC,QAAQnrC,KAAKorC,SAASv8B,gBAAgB7O,KAAKoC,MAAMyM,cAAc7O,KAAKqrC,OAAOrrC,KAAK0rC,QAAQ,CAAC1rC,KAAK0rC,OAAO1rC,KAAKqrC,SAAS,SAASx8B,YAAYrQ,EAAE0C,EAAEpD,EAAEsD,EAAEjD,EAAEO,EAAED,EAAE4C,EAAEjD,QAAQ0lC,UAAUtlC,EAAEwB,KAAK+jC,WAAW7iC,EAAElB,KAAKyrC,YAAY3tC,EAAEkC,KAAKwrC,WAAWpqC,EAAEpB,KAAK8rC,mBAAmB3tC,EAAE6B,KAAK4rC,WAAWrjC,KAAKmxB,MAAMj7B,EAAED,GAAGwB,KAAK6rC,WAAWtjC,KAAKmxB,MAAMr4B,EAAE7C,GAAGwB,KAAK+rC,cAAc,GAAG/rC,KAAKgsC,YAAY,IAAIC,UAAU3qC,EAAExD,EAAEU,EAAE,OAAO0tC,SAASnqC,MAAMT,GAAGtB,KAAKmsC,SAASpqC,MAAMT,GAAGtB,KAAK8mC,gBAAgB/kC,MAAMT,GAAGtB,KAAKgnC,UAAUjlC,MAAMT,GAAGtB,KAAK+mC,QAAQhlC,MAAMT,GAAGtB,KAAKosC,kBAAkBrqC,MAAMT,WAAW+M,EAAE,EAAEA,EAAE/M,EAAE+M,GAAG,EAAE,OAAOiwB,EAAEt+B,KAAK4rC,WAAWv9B,OAAO69B,SAAS79B,GAAGtM,MAAMT,GAAGtB,KAAKmsC,SAAS99B,GAAGtM,MAAMT,GAAGtB,KAAK8mC,gBAAgBz4B,GAAGtM,MAAMT,GAAGtB,KAAKgnC,UAAU34B,GAAGtM,MAAMT,GAAGtB,KAAK+mC,QAAQ14B,GAAGtM,MAAMT,GAAGtB,KAAKosC,kBAAkB/9B,GAAGtM,MAAMT,WAAW+hC,EAAE,EAAEA,EAAE/hC,EAAE+hC,GAAG,EAAE,OAAOuC,EAAE5lC,KAAK6rC,WAAWxI,EAAE3iC,EAAE68B,GAAGvxB,OAAOtN,EAAE4/B,EAAEsH,QAAQsG,SAAS79B,GAAGg1B,GAAG3iC,EAAEwrC,SAASlsC,KAAKmsC,SAAS99B,GAAGg1B,GAAG3iC,EAAEyrC,SAASnsC,KAAK8mC,gBAAgBz4B,GAAGg1B,GAAG3iC,EAAEomC,gBAAgB9mC,KAAKgnC,UAAU34B,GAAGg1B,GAAG3iC,EAAEsmC,UAAUhnC,KAAK+mC,QAAQ14B,GAAGg1B,GAAG3iC,EAAEqmC,QAAQ/mC,KAAKosC,kBAAkB/9B,GAAGg1B,GAAG3iC,EAAEsrC,kBAAkBK,UAAU3tC,EAAE4tC,oBAAoBtsC,KAAK5B,GAAGyQ,YAAYrQ,EAAE0C,UAAUlB,KAAKksC,SAAS1tC,EAAEwB,KAAK4rC,YAAY1qC,EAAElB,KAAK6rC,YAAYh9B,YAAYrQ,EAAE0C,UAAUlB,KAAKmsC,SAAS3tC,EAAEwB,KAAK4rC,YAAY1qC,EAAElB,KAAK6rC,YAAYh9B,mBAAmBrQ,EAAE0C,UAAUlB,KAAK8mC,gBAAgBtoC,EAAEwB,KAAK4rC,YAAY1qC,EAAElB,KAAK6rC,YAAYh9B,aAAarQ,EAAE0C,UAAUlB,KAAKgnC,UAAUxoC,EAAEwB,KAAK4rC,YAAY1qC,EAAElB,KAAK6rC,YAAYh9B,WAAWrQ,EAAE0C,UAAUlB,KAAK+mC,QAAQvoC,EAAEwB,KAAK4rC,YAAY1qC,EAAElB,KAAK6rC,YAAYh9B,eAAerQ,EAAE0C,UAAUlB,KAAKosC,kBAAkB5tC,EAAEwB,KAAK4rC,YAAY1qC,EAAElB,KAAK6rC,YAAYh9B,wBAAwBrQ,SAAS0C,EAAE,IAAIoqC,GAAGtrC,KAAKxB,UAAUwB,KAAK+rC,cAAcjtC,KAAKoC,GAAGA,EAAE2N,+BAA+Bk9B,cAAcpnC,YAAYnG,EAAE+tC,4BAA4B19B,aAAarQ,QAAQutC,cAAcpnC,YAAYzD,EAAEsrC,aAAahuC,KAAKqQ,aAAarQ,EAAE0C,QAAQ6qC,cAAcpnC,YAAY7G,EAAE2uC,aAAajuC,EAAE0C,KAAK2N,WAAWrQ,QAAQutC,cAAcpnC,YAAYzD,EAAEwrC,WAAWluC,KAAKqQ,WAAWrQ,QAAQutC,cAAcpnC,YAAYzD,EAAEyrC,WAAWnuC,KAAKqQ,WAAWrQ,QAAQutC,cAAcpnC,YAAYzD,EAAE0rC,WAAWpuC,KAAKqQ,kBAAkBk9B,cAAcpnC,YAAYnG,EAAEquC,eAAeh+B,gCAAgCrQ,EAAE0C,EAAEpD,UAAUkC,KAAKqsC,UAAU7tC,EAAE0C,EAAEpD,KAAmFw/B,QAAQ,KAAxEtxB,OAAO,SAASqC,EAAEnN,EAAEpD,SAAS,CAAC8R,OAAOvB,EAAE26B,OAAO9nC,EAAE+nC,WAAWnrC,KAAuSy/B,QAAQ,KAA/QvxB,OAAO,SAASqC,EAAEnN,EAAEpD,SAASsD,EAAEF,EAAEmN,EAAEy+B,UAAU5rC,EAAE,EAAEpD,GAAGK,EAAEL,EAAEuQ,EAAEy+B,UAAUhvC,EAAEoD,EAAE,GAAGxC,EAAE2P,EAAE0+B,mBAAmB3rC,EAAEjD,GAAGM,EAAE4P,EAAE2+B,aAAa5rC,EAAEjD,GAAGkD,EAAEgN,EAAE4+B,WAAW7rC,EAAEjD,SAAS,CAAC+tC,SAAS9qC,EAAE+qC,SAAShuC,EAAE2oC,gBAAgBpoC,EAAEsoC,UAAUvoC,EAAEsoC,QAAQ1lC,EAAE2qC,YAAY39B,EAAE6+B,eAAe9rC,GAAG,EAAEjD,GAAG,EAAEO,EAAED,EAAE4C,MAA4iCm8B,QAAQ,KAAnhCqH,SAAS,SAASx2B,OAAOnN,EAAEpD,EAAEsD,EAAEjD,EAAEO,EAAED,EAAE4C,EAAEjD,EAAEkD,EAAEjD,EAAE8C,EAAEuC,QAAQ9E,EAAE,UAAUiE,GAAEu7B,WAAW/vB,UAAK,IAASnN,EAAEA,EAAE,SAAS,CAAC+9B,KAAK,UAAUp8B,GAAEo7B,QAAQr/B,EAAEuuC,cAAS,IAASrvC,EAAEA,EAAE,EAAEyhC,OAAO,UAAU18B,GAAEo7B,QAAQr/B,EAAE2gC,eAAU,IAASn+B,EAAEA,EAAE,IAAIgsC,OAAO,UAAUvqC,GAAEo7B,QAAQr/B,EAAEyuC,wBAAmB,IAAAlvC,EAAWA,EAAE,EAAEmvC,MAAM,UAAUzqC,GAAEo7B,QAAQr/B,EAAE2uC,sBAAiB,IAAA7uC,EAAWA,EAAE,EAAE8uC,cAAc,UAAU3qC,GAAEm7B,WAAWp/B,EAAE6uC,uBAAkB,IAAAhvC,EAAWA,EAAE,EAAEivC,cAAc,UAAU7qC,GAAEm7B,WAAWp/B,EAAE+uC,uBAAkB,IAAStsC,EAAEA,EAAE,EAAEusC,SAAS1nC,GAAE2+B,SAASjmC,EAAEgvC,UAAUC,SAASpQ,GAAGoH,SAASjmC,EAAEkvC,WAAWC,YAAYtQ,GAAGoH,SAASjmC,EAAEovC,cAAcC,cAAcnF,GAAGjE,SAASjmC,EAAEsvC,gBAAgBC,uBAAuB,UAAUtrC,GAAEs7B,YAAYv/B,EAAEwvC,8BAAyB,IAAShwC,GAAGA,EAAEiwC,oBAAoB,UAAUxrC,GAAEs7B,YAAYv/B,EAAE0vC,8BAAyB,IAAShtC,GAAGA,EAAEitC,oBAAoB,UAAU1rC,GAAEs7B,YAAYv/B,EAAE4vC,8BAAyB,IAAAnwC,GAAYA,EAAEowC,YAAY,UAAU5rC,GAAEs7B,YAAYv/B,EAAE8vC,kBAAa,IAAAvtC,GAAYA,EAAEwtC,gBAAgB,UAAU9rC,GAAEs7B,YAAYv/B,EAAEgwC,0BAAqB,IAASlrC,GAAGA,IAAkB,SAASlF,KAAKqmC,SAAS,SAASx2B,OAAOnN,EAAEpD,EAAEsD,EAAEjD,QAAQO,EAAE,UAAUmE,GAAEu7B,WAAW/vB,UAAK,IAASnN,EAAEA,EAAE,SAAS,CAACsJ,OAAO,UAAU3H,GAAEm7B,WAAWt/B,EAAE8L,eAAU,IAAS1M,EAAEA,EAAE,EAAE6rB,KAAK,UAAU9mB,GAAEo7B,QAAQv/B,EAAEirB,aAAQ,IAAAvoB,EAAWA,EAAE,EAAEwO,OAAO,UAAU/M,GAAEo7B,QAAQv/B,EAAEkR,eAAU,IAAAzR,EAAWA,EAAE,IAAIK,EAAE4xB,MAAM,SAAS/hB,EAAEnN,EAAEpD,MAAMuQ,EAAEsb,MAAM,SAASzoB,QAAQE,KAAKiN,EAAEuB,QAAQvB,EAAEsb,YAAYib,GAAEv2B,EAAE7D,OAAOtJ,EAAEE,IAA3W,CAAgXq8B,QAAQ,KAAK,SAAS5uB,YAAYrQ,EAAE0C,EAAEpD,EAAEsD,EAAEjD,EAAEO,EAAED,GAAE,MAAOuB,KAAK8jC,UAAUtlC,EAAEwB,KAAK+jC,WAAW7iC,EAAElB,KAAKwrC,WAAW1tC,EAAEkC,KAAK6uC,SAASztC,EAAE3C,EAAE,OAAO4kC,EAAE,IAAI3C,GAAEhiC,GAAGijC,EAAEvgC,EAAEutC,gBAAgB,IAAIjO,GAAEhiC,GAAG2kC,EAAEF,YAAY2L,aAAa,IAAI3rC,GAAEw+B,EAAEvgC,EAAEwsC,SAASpvC,EAAE0C,GAAGmiC,EAAEG,QAAQ,GAAGxjC,KAAK+uC,iBAAiB,IAAIzJ,GAAE,IAAI5E,GAAEhiC,GAAGP,EAAEyoC,aAAa5mC,KAAKgvC,cAAc,IAAI1J,GAAE,IAAI5E,GAAEhiC,EAAEyhC,OAAO,IAAIhiC,EAAE0oC,UAAU7mC,KAAKivC,qBAAqB,IAAI3J,GAAE,IAAI5E,GAAEhiC,EAAEyhC,OAAO,IAAIhiC,EAAE2oC,iBAAiB9mC,KAAKkvC,aAAa,IAAI5J,GAAE,IAAI5E,GAAEhiC,EAAEyhC,OAAO,IAAIhiC,EAAE4oC,SAAS/mC,KAAKmvC,eAAe,IAAI7J,GAAE,IAAI5E,GAAEhiC,EAAEyhC,OAAO,IAAIhiC,EAAE6oC,WAAWhnC,KAAKovC,YAAY,IAAI9J,GAAE,IAAI5E,GAAEhiC,EAAEyhC,OAAO,IAAIhiC,EAAEgS,OAAOnQ,KAAKqvC,YAAY,IAAI/J,GAAEjC,EAAEF,OAAO,CAAC+B,gBAAgBzB,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,OAAOJ,EAAElC,GAAEn1B,OAAOtN,GAAGykC,YAAY2L,aAAa,IAAI3rC,GAAEkgC,EAAEE,eAAe,qBAAqBniC,EAAEwsC,SAASpvC,EAAE0C,GAAGlB,KAAK+uC,iBAAiB,IAAIzJ,GAAEjC,EAAEE,eAAe,yBAAyBplC,EAAEyoC,aAAa5mC,KAAKgvC,cAAc,IAAI1J,GAAEjC,EAAEE,eAAe,wBAAwBplC,EAAE0oC,UAAU7mC,KAAKivC,qBAAqB,IAAI3J,GAAEjC,EAAEE,eAAe,6BAA6BplC,EAAE2oC,iBAAiB9mC,KAAKkvC,aAAa,IAAI5J,GAAEjC,EAAEE,eAAe,qBAAqBplC,EAAE4oC,SAAS/mC,KAAKmvC,eAAe,IAAI7J,GAAEjC,EAAEE,eAAe,mBAAmBplC,EAAE6oC,WAAWhnC,KAAKovC,YAAY,IAAI9J,GAAEjC,EAAEE,eAAe,oBAAoBplC,EAAEgS,OAAOnQ,KAAKqvC,YAAY,IAAI/J,GAAEjC,EAAEE,eAAe,oBAAoB,CAAC2B,gBAAgBzB,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU6L,OAAOluC,EAAE6sC,cAAcjuC,KAAKqsC,oBAAoB/N,EAAEjwB,EAAEkhC,yBAAyB,CAAC9H,EAAEpE,EAAEuC,IAAI5lC,KAAKwvC,mBAAmB/H,EAAEpE,EAAEuC,EAAEv3B,EAAE6+B,eAAezF,GAAG,EAAE7B,GAAG,YAAY,IAAItH,EAAEsF,UAAU/0B,OAAOrQ,EAAE0C,EAAEpD,SAASsD,EAAE5C,EAAEwB,KAAK8sC,UAAUtuC,EAAE,EAAEV,GAAGK,EAAEL,EAAEkC,KAAK8sC,UAAUhvC,EAAEU,EAAE,GAAGE,EAAEsB,KAAK+sC,mBAAmB3rC,EAAEjD,GAAGM,EAAEuB,KAAKitC,WAAW7rC,EAAEjD,GAAGkD,EAAErB,KAAKgtC,aAAa5rC,EAAEjD,GAAGC,EAAE4B,KAAKsvC,OAAO1/B,OAAOk5B,GAAG2G,MAAM/wC,EAAED,EAAE4C,WAAWrB,KAAKwK,OAAOhM,EAAE0C,EAAEpD,EAAEsD,EAAEjD,EAAEO,EAAED,EAAE4C,EAAEjD,GAAGyQ,OAAOrQ,EAAE0C,EAAEpD,EAAEsD,EAAEjD,EAAEO,EAAED,EAAE4C,EAAEjD,SAASkD,EAAEJ,EAAElB,KAAK8sC,UAAU5rC,EAAEpD,EAAEU,GAAGH,EAAE2B,KAAK0vC,eAAetuC,EAAEE,EAAEnD,GAAGgD,EAAEnB,KAAK2vC,YAAYvuC,EAAEE,EAAEnD,GAAGuF,EAAE1D,KAAK4vC,wBAAwB1uC,GAAG,GAAG9C,SAASg/B,GAAG5yB,OAAOnM,EAAE8C,EAAEzC,EAAED,EAAEiF,EAAErC,GAAGwN,UAAUrQ,EAAE0C,EAAEpD,UAAU,EAAEkC,KAAKovC,YAAYxL,OAAOplC,EAAE0C,EAAEpD,GAAG+Q,eAAerQ,EAAE0C,EAAEpD,UAAUkC,KAAK+uC,iBAAiBnL,OAAOplC,EAAE0C,EAAEpD,GAAG+Q,YAAYrQ,EAAE0C,EAAEpD,UAAUkC,KAAKgvC,cAAcpL,OAAOplC,EAAE0C,EAAEpD,GAAG+Q,mBAAmBrQ,EAAE0C,UAAUlB,KAAKivC,qBAAqBrL,OAAOplC,EAAE,EAAE0C,GAAG2N,WAAWrQ,EAAE0C,UAAUlB,KAAKkvC,aAAatL,OAAOplC,EAAE,EAAE0C,GAAG2N,aAAarQ,EAAE0C,UAAUlB,KAAKmvC,eAAevL,OAAOplC,EAAE,EAAE0C,GAAG2N,eAAerQ,EAAE0C,EAAEpD,EAAEsD,EAAEjD,SAASO,EAAEoqC,GAAG2G,MAAM3xC,EAAEsD,EAAEjD,UAAUm/B,GAAGtxB,OAAOhM,KAAKsvC,OAAO1/B,OAAOlR,GAAGsB,KAAKsvC,OAAOtG,OAAOtqC,GAAGsB,KAAKsvC,OAAOrG,WAAWvqC,IAAImQ,oBAAoBrQ,EAAE0C,SAASpD,EAAEkC,KAAKqsC,UAAU7tC,SAAS,CAAC6P,EAAEjN,EAAEjD,SAASO,EAAEZ,WAAWY,EAAEwF,GAAE,IAAIxF,KAAK,GAAGA,EAAEA,EAAE,EAAEA,EAAEA,EAAEA,EAAE,GAAGA,GAAGwC,EAAEmN,EAAEjN,EAAEjD,GAAGO,EAAE,EAAE,KAAKmgC,GAAEG,KAAKnwB,mBAAmBrQ,EAAE0C,EAAEpD,EAAEsD,OAAOjD,EAAE6B,KAAK8uC,aAAalL,OAAOplC,EAAE0C,EAAEpD,MAAMsD,EAAE,OAAO1C,EAAEsB,KAAK6vC,kBAAkBzuC,EAAE6nC,WAAWzqC,EAAEV,GAAGW,EAAEuB,KAAK4vC,wBAAwB1uC,GAAGG,EAAED,EAAE4nC,UAAUp5B,OAAOlR,EAAED,MAAM4C,EAAE,EAAE,EAAEA,EAAEA,SAASlD,EAAE+F,GAAE/F,MAAM,IAAIA,EAAE6B,KAAK8vC,WAAW3xC,EAAE+C,EAAElB,KAAK+jC,YAAY5lC,EAAE+F,GAAE/F,MAAM,IAAIA,EAAE0Q,kBAAkBrQ,EAAE0C,EAAEpD,MAAM,IAAAU,SAAa,QAAQ4C,EAAEpB,KAAKqvC,YAAYzL,OAAO,KAAK1iC,EAAE,EAAE,KAAKpD,UAAUsD,EAAE,EAAE5C,EAAE4C,EAAE5C,EAAE,EAAE4C,EAAEyN,wBAAwBrQ,YAAYA,EAAE,KAAKwB,KAAK6uC,SAASrB,cAAcxtC,KAAK6uC,SAASnB,cAAc7+B,WAAWrQ,EAAE0C,SAASpD,EAAEoD,EAAEqH,KAAKmxB,MAAM15B,KAAK6uC,SAAS5P,KAAKj/B,KAAK+jC,mBAAmBvlC,EAAEi/B,GAAGrN,MAAMpwB,KAAK6uC,SAAShB,SAASrvC,EAAEwB,KAAKwrC,WAAW1tC,GAAK2/B,GAAGrN,MAAMpwB,KAAK6uC,SAASd,YAAYvvC,EAAEV,IAAI,SAAS+Q,YAAYrQ,EAAE0C,EAAEpD,QAAQiyC,YAAY7uC,EAAElB,KAAK6uC,SAAS/wC,EAAEkC,KAAK+jC,WAAWjmC,EAAEkyC,MAAM1C,OAAO,EAAEttC,KAAK8jC,UAAUhmC,EAAEkyC,MAAM5C,QAAQ,EAAEptC,KAAKyrC,YAAYljC,KAAKmxB,MAAM,GAAG15B,KAAK8jC,WAAW9jC,KAAKwrC,WAAWjjC,KAAKmxB,MAAM57B,EAAEkyC,MAAMzQ,OAAOv/B,KAAK+jC,YAAY/jC,KAAKiwC,QAAQ,IAAIC,GAAGlwC,KAAK8jC,UAAU9jC,KAAK+jC,WAAW/jC,KAAKwrC,WAAW1tC,EAAEkyC,MAAMlyC,EAAEqyC,QAAQ3xC,EAAEV,EAAEsyC,oBAAoBpwC,KAAKqwC,aAAahT,GAAGgN,SAAS,CAAC,CAACh8B,EAAEiwB,EAAE+E,EAAEjiC,IAAIiN,EAAEiiC,gCAAgChS,EAAE+E,EAAEjiC,KAAKyN,WAAWrQ,SAAS0C,EAAEqH,KAAKD,IAAI9J,EAAEygC,KAAKj/B,KAAK6uC,SAASmB,MAAM/Q,MAAMnhC,EAAEyK,KAAKoN,IAAInX,EAAEkhC,KAAK1/B,KAAK6uC,SAASmB,MAAM/Q,KAAKj/B,KAAK6uC,SAASmB,MAAMzQ,QAAQn+B,EAAEmH,KAAKmxB,MAAMx4B,EAAElB,KAAK+jC,iBAAiBrK,SAASx4B,GAAGlB,KAAK+jC,kBAAkB5lC,EAAE8+B,GAAEmD,UAAU5hC,EAAEomB,KAAKlmB,EAAEu+B,GAAEoD,UAAU7hC,EAAEomB,KAAKnmB,EAAE,IAAI8xC,GAAGvwC,KAAK8jC,UAAU9jC,KAAK+jC,WAAW/jC,KAAKyrC,YAAYzrC,KAAKwrC,WAAWpqC,EAAEpB,KAAKiwC,QAAQ9xC,EAAEO,GAAG,IAAI,YAAY4/B,EAAE,EAAEA,EAAE9/B,EAAEihC,cAAcnB,GAAG,EAAE,OAAO+E,EAAE7kC,EAAEghC,SAASlB,GAAGkS,kBAAkBniC,EAAE,EAAEA,EAAE,EAAEA,GAAG,UAAUo5B,EAAE,EAAEA,EAAE,EAAEA,GAAG,UAAU7B,EAAE,EAAEA,EAAE,EAAEA,GAAG,EAAE,OAAOvkC,EAAElD,EAAEkQ,EAAEjQ,EAAEilC,EAAEoE,EAAEnmC,EAAE5C,EAAEknC,EAAEvnC,EAAEI,EAAEgyC,YAAYpvC,EAAEC,GAAGH,EAAE1C,EAAEiyC,YAAYrvC,EAAEC,GAAGoC,EAAEjF,EAAEsuC,mBAAmB1rC,EAAEC,GAAG1C,EAAEH,EAAEwuC,WAAW5rC,EAAEC,GAAGqC,EAAElF,EAAEuuC,aAAa3rC,EAAEC,GAAGC,EAAE9C,EAAEyuC,eAAe7rC,EAAEC,GAAGsO,OAAOjO,EAAE3B,KAAKiwC,QAAQzlC,OAAOnJ,EAAEjD,EAAEkD,EAAEjD,EAAE8C,EAAEuC,EAAE9E,EAAE+E,EAAEpC,QAAQwuC,YAAYY,SAAStvC,EAAEjD,EAAEkD,GAAG,IAAIK,MAAMkN,KAAKrQ,OAAO0C,QAAQpD,EAAEyK,KAAKD,IAAI9J,EAAEygC,KAAKj/B,KAAK6uC,SAASmB,MAAM/Q,MAAM79B,EAAEmH,KAAKoN,IAAInX,EAAEkhC,KAAK1/B,KAAK6uC,SAASmB,MAAM/Q,KAAKj/B,KAAK6uC,SAASmB,MAAMzQ,QAAQphC,EAAEoK,KAAKmxB,MAAM57B,EAAEkC,KAAK+jC,YAAYrlC,EAAE6J,KAAKmxB,SAAS57B,GAAGkC,KAAK+jC,YAAYtlC,EAAEw+B,GAAEmD,UAAU5hC,EAAEomB,KAAKvjB,EAAE47B,GAAEoD,UAAU7hC,EAAEomB,KAAKxmB,EAAE,IAAImyC,GAAGvwC,KAAK8jC,UAAU9jC,KAAK+jC,WAAW/jC,KAAKyrC,YAAYzrC,KAAKwrC,WAAWrtC,EAAE6B,KAAKiwC,QAAQxxC,EAAE4C,GAAG,IAAI,MAAMkrC,kCAAkClJ,EAAE,EAAEA,EAAErjC,KAAKyrC,YAAYpI,GAAG,EAAE,GAAGmJ,aAAanJ,WAAWuC,EAAE,EAAEA,EAAE5lC,KAAKyrC,YAAY7F,GAAG,EAAE,KAAKtkC,EAAE9C,EAAEuhC,mBAAmBvhC,EAAEihC,cAAc,WAAWphC,EAAEK,EAAE,EAAEL,GAAG,EAAEA,GAAG,EAAE,GAAGouC,aAAapuC,EAAEunC,WAAWa,EAAEzmC,KAAK+jC,WAAW,EAAE0C,GAAG,EAAEA,GAAG,EAAE,OAAOtlC,KAAK9C,GAAG2B,KAAK+jC,WAAW0C,EAAE/iC,EAAE,GAAGvC,EAAEvC,EAAEJ,EAAEqhC,gBAAgB1+B,KAAK0+B,gBAAgBv+B,EAAEkvC,aAAa5xC,MAAMJ,EAAEuhC,mBAAmBnhC,UAAU+E,EAAE8iC,EAAEzmC,KAAK+jC,aAAa2I,WAAW/oC,WAAW0K,EAAE,EAAEA,EAAErO,KAAK8jC,UAAUz1B,GAAG,EAAE,OAAO3N,EAAEjC,EAAE4kC,EAAErjC,KAAK8jC,UAAUz1B,EAAEuiC,EAAE,GAAGlwC,EAAE+F,EAAE4H,EAAErO,KAAK8jC,YAAY6I,WAAWlmC,WAAW83B,EAAE,EAAEA,EAAEv+B,KAAK8jC,UAAUvF,GAAG,EAAE,OAAOoJ,EAAEtmC,EAAEukC,EAAE5lC,KAAK8jC,UAAUvF,EAAEoD,EAAE,GAAGgG,EAAEkJ,EAAEtS,EAAEv+B,KAAK8jC,YAAY8I,WAAWiE,OAAOC,EAAE,UAAU9wC,KAAKqwC,aAAajyC,EAAEsC,EAAES,EAAEwmC,UAAK,IAAAzmC,EAAWA,EAAElB,KAAK6uC,SAASkC,gBAAgBD,EAAErgC,OAAOouB,GAAEG,KAAK,QAAQh/B,KAAK6uC,SAASmC,qBAAqBhxC,KAAK6uC,SAASoC,eAAejR,cAAc4Q,EAAEltC,EAAEi+B,EAAEmP,SAASjE,eCbh6rB,IAAIqE,IDa8+tBxT,QAAQ,KAA5jCmH,SAAS,SAASx2B,OAAOnN,EAAEpD,EAAEsD,EAAEjD,EAAEO,EAAED,EAAE4C,EAAEjD,EAAEkD,EAAEjD,EAAE8C,QAAQuC,EAAE,UAAUb,GAAEu7B,WAAW/vB,UAAK,IAASnN,EAAEA,EAAE,SAAS,CAACiwC,WAAWxT,GAAGkH,SAASnhC,EAAEytC,YAAYnB,MAAMxS,GAAGqH,SAASnhC,EAAEssC,OAAOG,QAAQvS,GAAGiH,SAASnhC,EAAEysC,SAASY,aAAalS,GAAEgG,SAASnhC,EAAE0tC,eAAeH,aAAapS,GAAEgG,SAASnhC,EAAE2tC,eAAeC,oBAAoB,UAAUzuC,GAAEo7B,QAAQv6B,EAAE6tC,8BAAyB,IAASzzC,EAAEA,EAAE,EAAE0zC,qBAAqB,UAAU3uC,GAAEo7B,QAAQv6B,EAAE+tC,+BAA0B,IAAArwC,EAAWA,EAAE,EAAE4vC,SAAS,UAAUnuC,GAAEo7B,QAAQv6B,EAAEguC,kBAAa,IAAAvzC,EAAWA,EAAE,EAAEwzC,qBAAqB,UAAU9uC,GAAEs7B,YAAYz6B,EAAEkuC,+BAA0B,IAAAlzC,GAAYA,EAAEmzC,gBAAgB,UAAUhvC,GAAEs7B,YAAYz6B,EAAEouC,yBAAoB,IAAArzC,GAAYA,EAAEszC,kBAAkB,UAAUlvC,GAAEs7B,YAAYz6B,EAAEsuC,4BAAuB,IAAS3wC,GAAGA,EAAE4wC,iBAAiB,UAAUpvC,GAAEs7B,YAAYz6B,EAAEwuC,0BAAqB,IAAA9zC,GAAYA,EAAE+zC,gBAAgB,UAAUtvC,GAAEs7B,YAAYz6B,EAAE0uC,0BAAqB,IAAS9wC,GAAGA,EAAE+wC,mBAAmB,UAAUxvC,GAAEs7B,YAAYz6B,EAAE4uC,6BAAwB,IAASj0C,GAAGA,EAAE+xC,mBAAmB,UAAUvtC,GAAEs7B,YAAYz6B,EAAE6uC,6BAAwB,IAASpxC,GAAGA,KAA0oBw8B,QAAQ,KAAlnBkH,SAAS,SAASx2B,OAAOnN,QAAQpD,EAAE,UAAU+E,GAAEu7B,WAAW/vB,UAAK,IAASnN,EAAEA,EAAE,SAAS,CAACsxC,WAAW3vC,GAAE67B,QAAQ5gC,EAAE00C,WAAW3vC,GAAEu7B,oBAAoBE,EAAE+E,EAAEjiC,QAAQ,CAAC8lC,SAAS,UAAUrkC,GAAEo7B,QAAQM,EAAE2I,iBAAY,IAAS5I,EAAEA,EAAE,EAAEmU,OAAO,UAAU5vC,GAAEo7B,QAAQM,EAAEkU,eAAU,IAAApP,EAAWA,EAAE,EAAEvhB,MAAM,UAAUjf,GAAEo7B,QAAQM,EAAEzc,cAAS,IAAA1gB,EAAWA,EAAE,MAAM+vC,WAAWtuC,GAAE27B,QAAQ1gC,EAAEqzC,oBAAoB7S,IAAiBmJ,EAAEpE,EAAEjiC,WAAoL,UAAUyB,GAAEu7B,WAAWG,UAAK,IAASD,EAAEA,EAAE,GAArN,CAACoU,QAAQ,UAAU7vC,GAAEo7B,QAAQ0U,EAAED,gBAAW,IAASjL,EAAEA,EAAE,EAAEmL,WAAW,UAAU/vC,GAAEo7B,QAAQ0U,EAAEC,mBAAc,IAAAvP,EAAWA,EAAE,EAAEwP,KAAK,UAAUhwC,GAAEo7B,QAAQ0U,EAAEE,aAAQ,IAAAzxC,EAAWA,EAAE,SAA0Xw8B,QAAQ,KAA/SiH,SAAS,SAASx2B,OAAOnN,QAAQpD,EAAE,UAAU+E,GAAEu7B,WAAW/vB,UAAK,IAASnN,EAAEA,EAAE,SAAS,CAAC0lC,YAAY3gC,GAAE4+B,SAAS/mC,EAAE8oC,aAAaC,SAAS5gC,GAAE4+B,SAAS/mC,EAAE+oC,UAAUC,gBAAgB7gC,GAAE4+B,SAAS/mC,EAAEgpC,iBAAiBC,QAAQ9gC,GAAE4+B,SAAS/mC,EAAEipC,SAASC,UAAU/gC,GAAE4+B,SAAS/mC,EAAEkpC,WAAW72B,MAAMlK,GAAE4+B,SAAS/mC,EAAEqS,SCX/6vB,IAAI2iC,GAAoB,IAAIhiB,YAAY,QAAS,CAAEiiB,WAAW,EAAMC,OAAO,IAE3EF,GAAkB/hB,SAElB,IAAIkiB,GAAuB,KAQ3B,YAA4BC,EAAKn2B,UACtB+1B,GAAkB/hB,QAPI,OAAzBkiB,IAAiCA,GAAqBE,SAAWjC,GAAKkC,OAAOD,YACtD,IAAI9hC,WAAW6/B,GAAKkC,OAAOD,SAE/CF,IAI2CtwB,SAASuwB,EAAKA,EAAMn2B,IAG1E,MAAMs2B,GAAa,IAAItuB,YAAY,GAE7BuuB,GAAe,IAAIC,cAAcF,GAAWF,QAElD,IAAIK,GAAuB,KAC3B,qBACiC,OAAzBA,IAAiCA,GAAqBL,SAAWjC,GAAKkC,OAAOD,YACtD,IAAInc,WAAWka,GAAKkC,OAAOD,SAE/CK,GAGX,IAAIC,GAAyB,KAC7B,qBACmC,OAA3BA,IAAmCA,GAAuBN,SAAWjC,GAAKkC,OAAOD,YACxD,IAAIO,aAAaxC,GAAKkC,OAAOD,SAEnDM,GAoCX,IAAIE,GAAkB,EAEtB,YAA6BC,EAAKC,SACxBX,EAAMW,EAAoB,EAAbD,EAAI/0C,oBACHoR,IAAI2jC,EAAKV,EAAM,MACjBU,EAAI/0C,OACfq0C,EAsEX,IAAIY,GAAwB,KAQ5B,YAA4BF,EAAKC,SACvBX,EAAMW,EAAoB,EAAbD,EAAI/0C,eAPO,OAA1Bi1C,IAAkCA,GAAsBX,SAAWjC,GAAKkC,OAAOD,YACvD,IAAIpuB,YAAYmsB,GAAKkC,OAAOD,SAEjDW,IAKY7jC,IAAI2jC,EAAKV,EAAM,MAChBU,EAAI/0C,OACfq0C,EAmBJ,YAA0Ba,EAAOC,EAAOC,EAAOC,EAAOC,EAAOC,EAAOC,EAAOC,EAAOC,EAAOC,EAAOC,EAAOC,EAAO9kC,EAAQ64B,OACrHkM,EAAOC,GAAoBb,EAAO7C,GAAK2D,mBACvCC,EAAOnB,GACPoB,EAAOH,GAAoBZ,EAAO9C,GAAK2D,mBACvCG,EAAOrB,GACPsB,EAAOL,GAAoBX,EAAO/C,GAAK2D,mBACvCK,EAAOvB,GACPwB,EAAOP,GAAoBV,EAAOhD,GAAK2D,mBACvCO,EAAOzB,GACP0B,EAAOT,GAAoBT,EAAOjD,GAAK2D,mBACvCS,EAAO3B,GACP4B,EAAOX,GAAoBR,EAAOlD,GAAK2D,mBACvCW,EAAO7B,GACP8B,EAAOb,GAAoBP,EAAOnD,GAAK2D,mBACvCa,EAAO/B,GACPgC,EAAOf,GAAoBN,EAAOpD,GAAK2D,mBACvCe,EAAOjC,GACPkC,EAAOjB,GAAoBL,EAAOrD,GAAK2D,mBACvCiB,EAAOnC,GACPoC,EAAOnB,GAAoBJ,EAAOtD,GAAK2D,mBACvCmB,EAAOrC,GACPsC,EAAQrB,GAAoBH,EAAOvD,GAAK2D,mBACxCqB,EAAQvC,GACRwC,EAAQvB,GAAoBF,EAAOxD,GAAK2D,mBACxCuB,EAAQzC,GACR0C,EAAQzB,GAAoBhlC,EAAQshC,GAAK2D,mBACzCyB,EAAQ3C,GACR4C,EAAQC,GAAmB/N,EAAOyI,GAAK2D,mBACvC4B,EAAQ9C,GACR7rC,EAAMopC,GAAKwF,iBAAiB/B,EAAMG,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAOC,EAAOC,EAAOC,EAAOC,EAAOC,EAAOC,EAAOE,UAClME,GAAcC,OAAO9uC,GA+BzB,YAAyB04B,EAAMqW,EAASC,EAAcC,EAASC,EAAcC,EAASC,EAAcC,EAASC,EAAcC,EAASC,EAAcC,EAASC,MACjJ,GAAKhX,QACZiX,EAAOpE,GAAW,GAClBqE,EAAQrE,GAAW,OACrB0B,EAAOH,GAAoBkC,EAAc5F,GAAK2D,mBAC9CG,EAAOrB,GACPsB,EAAOL,GAAoBoC,EAAc9F,GAAK2D,mBAC9CK,EAAOvB,GACPwB,EAAOP,GAAoBsC,EAAchG,GAAK2D,mBAC9CO,EAAOzB,GACP0B,EAAOT,GAAoBwC,EAAclG,GAAK2D,mBAC9CS,EAAO3B,GACP4B,EAAOX,GAAoB0C,EAAcpG,GAAK2D,mBAC9CW,EAAO7B,GACP8B,EAAOb,GAAoB4C,EAActG,GAAK2D,mBAC9Ca,EAAO/B,GACP7rC,EAAMopC,GAAKyG,gBAAgBF,EAAMC,EAAOb,EAAS9B,EAAMC,EAAM+B,EAAS9B,EAAMC,EAAM+B,EAAS9B,EAAMC,EAAM+B,EAAS9B,EAAMC,EAAM+B,EAAS9B,EAAMC,EAAM+B,EAAS9B,EAAMC,UAC7JkC,GAAQhB,OAAO9uC,GAG1B,YAAsB+vC,EAAUC,qBACFA,SAChB,IAAI9lB,MAAM,wBAAwB8lB,EAAMhyC,eAE3C+xC,EAAS3E,IAgCb,YAAqBxM,EAAYuJ,EAAS8H,EAAQC,EAAMC,EAAQC,EAAQC,EAAMC,EAAQC,EAAQC,EAAMC,aAE7FC,EAAStH,GAAKuH,wCACP/R,EAAYiQ,OACZ1G,EAAS2H,OACjBc,YAAYF,EAAQ9R,EAAWwM,IAAKjD,EAAQiD,IAAK6E,EAAQC,EAAMC,EAAQC,EAAQC,EAAMC,EAAQC,EAAQC,EAAMC,OAC5GI,EAAKC,KAAkBJ,EAAS,EAAI,GACpCK,EAAKD,KAAkBJ,EAAS,EAAI,GACpCM,EAzBZ,SAA8B5F,EAAKn2B,UACxB67B,KAAkBj2B,SAASuwB,EAAM,EAAGA,EAAM,EAAIn2B,GAwBxCg8B,CAAqBJ,EAAIE,GAAI71C,kBACjCg2C,gBAAgBL,EAAS,EAALE,GAClBC,aAEFL,gCAAgC,KAiBtC,YAAuBxI,EAAS8H,EAAQC,EAAMC,EAAQC,EAAQC,EAAMC,EAAQC,EAAQC,EAAMC,aAEnFC,EAAStH,GAAKuH,wCACPxI,EAAS2H,OACjBqB,cAAcT,EAAQvI,EAAQiD,IAAK6E,EAAQC,EAAMC,EAAQC,EAAQC,EAAMC,EAAQC,EAAQC,EAAMC,OAC9FI,EAAKC,KAAkBJ,EAAS,EAAI,GACpCK,EAAKD,KAAkBJ,EAAS,EAAI,GACpCM,EArSZ,SAA8B5F,EAAKn2B,UACxBm8B,KAAoBv2B,SAASuwB,EAAM,EAAGA,EAAM,EAAIn2B,GAoS1Co8B,CAAqBR,EAAIE,GAAI71C,kBACjCg2C,gBAAgBL,EAAS,EAALE,GAClBC,aAEFL,gCAAgC,KAgGtC,uBAEWvF,SACJxrC,EAAMqE,OAAOC,OAAO2qC,GAAc5yC,oBACpCmvC,IAAMA,EAEHxrC,EAGXmH,2BACUqkC,EAAMlzC,KAAKkzC,gBACZA,IAAM,EAEJA,EAGXrkC,aACUqkC,EAAMlzC,KAAKo5C,wBACZC,yBAAyBnG,IAqB/B,uBAEWA,SACJxrC,EAAMqE,OAAOC,OAAO4rC,GAAQ7zC,oBAC9BmvC,IAAMA,EAEHxrC,EAGXmH,2BACUqkC,EAAMlzC,KAAKkzC,gBACZA,IAAM,EAEJA,EAGXrkC,aACUqkC,EAAMlzC,KAAKo5C,wBACZE,mBAAmBpG,IA0DhCqG,kBAAoB1vB,QACK,IAAVA,MACC,IAAI2vB,IAAI,uBAAwBC,EAAY9xC,YAElD+xC,EAAU,KACF,MACNC,IAAIC,iBAAmB,SAASC,EAAMC,SACpC,IAAI9nB,MAAM+nB,GAAmBF,EAAMC,MAGxB,iBAAVjwB,GAA0C,mBAAZmwB,SAA0BnwB,aAAiBmwB,SAA4B,mBAARR,KAAsB3vB,aAAiB2vB,SACnIS,MAAMpwB,UAKZguB,SAAEA,SAAUqC,SA/CtBX,eAAoBW,EAAQR,MACA,mBAAbS,UAA2BD,aAAkBC,SAAU,IACd,mBAArCC,YAAYC,sCAEFD,YAAYC,qBAAqBH,EAAQR,SAEjDx4C,MACqC,oBAAtCg5C,EAAOI,QAAQtqC,IAAI,sBAIb9O,UAHEwa,KAAK,oMAAqMxa,SAQxNu4B,QAAcygB,EAAOK,2BACdH,YAAYI,YAAY/gB,EAAOigB,GAEzC,OACG7B,QAAiBuC,YAAYI,YAAYN,EAAQR,UAEnD7B,aAAoBuC,YAAYK,SACzB,CAAE5C,SAAAA,EAAUqC,OAAAA,GAGZrC,GAqBoB6C,OAAW7wB,EAAO6vB,aAE9C7B,EAASxjC,WACXsmC,uBAAyBT,EAEvBhJ,GCxjBX,OAAe,wCCCf0J,GAUA,SAAe/yC,YACNA,GAAQ,IAENgzC,QA4EX,SAAsBhzC,OAChBizC,EAAO,GACPC,EAAU,UAEPlzC,EAAKmzC,iBA8DSv8C,MACF,iBAANA,GAAwB,OAANA,SAAmBA,KAC5CA,aAAaw8C,YAAa,IAAIA,KAAKx8C,MACnCsD,MAAMC,QAAQvD,UAAWy8C,EAAWz8C,EAAG08C,MACvC18C,aAAawtC,WAAY,IAAIA,IAAIiP,EAAWn5C,MAAMyP,KAAK/S,GAAI08C,OAC3D18C,aAAa2b,WAAY,IAAIA,IAAI8gC,EAAWn5C,MAAMyP,KAAK/S,GAAI08C,QAC3DC,EAAK,WAGA35C,OAFJ3C,KAAKL,KACFK,KAAKs8C,GACC38C,EAAG,KACX48C,EAAM58C,EAAEgD,MACO,iBAAR45C,GAA4B,OAARA,IAC1B55C,GAAK45C,UACCA,aAAeJ,OACrBx5C,GAAK,IAAIw5C,KAAKI,WACRA,aAAepP,MACrBxqC,GAAK,IAAIwqC,IAAIiP,EAAWn5C,MAAMyP,KAAK6pC,GAAMF,YACnCE,aAAejhC,MACrB3Y,GAAK,IAAI2Y,IAAI8gC,EAAWn5C,MAAMyP,KAAK6pC,GAAMF,YACnCG,YAAYC,OAAOF,KACzB55C,GAAK+5C,GAAWH,OACd,KACDv9C,EAAIg9C,EAAK36C,QAAQk7C,KAEhB55C,QADD3D,EACMi9C,EAAQj9C,GAERq9C,EAAWE,aAIpBzsC,QACGA,MACDwsC,cApEO38C,MACG,iBAANA,GAAwB,OAANA,SAAmBA,KAC5CA,aAAaw8C,YAAa,IAAIA,KAAKx8C,MACnCsD,MAAMC,QAAQvD,UAAWy8C,EAAWz8C,EAAGg9C,MACvCh9C,aAAawtC,WAAY,IAAIA,IAAIiP,EAAWn5C,MAAMyP,KAAK/S,GAAIg9C,OAC3Dh9C,aAAa2b,WAAY,IAAIA,IAAI8gC,EAAWn5C,MAAMyP,KAAK/S,GAAIg9C,QAC3DL,EAAK,WAGA35C,OAFJ3C,KAAKL,KACFK,KAAKs8C,GACC38C,MAC6B,IAArCsN,OAAOmQ,eAAexW,KAAKjH,EAAGgD,QAC9B45C,EAAM58C,EAAEgD,MACO,iBAAR45C,GAA4B,OAARA,IAC1B55C,GAAK45C,UACCA,aAAeJ,OACrBx5C,GAAK,IAAIw5C,KAAKI,WACRA,aAAepP,MACrBxqC,GAAK,IAAIwqC,IAAIiP,EAAWn5C,MAAMyP,KAAK6pC,GAAMI,YACnCJ,aAAejhC,MACrB3Y,GAAK,IAAI2Y,IAAI8gC,EAAWn5C,MAAMyP,KAAK6pC,GAAMI,YACnCH,YAAYC,OAAOF,KACzB55C,GAAK+5C,GAAWH,OACd,KACDv9C,EAAIg9C,EAAK36C,QAAQk7C,KAEhB55C,QADD3D,EACMi9C,EAAQj9C,GAER29C,EAAMJ,aAIfzsC,QACGA,MACDwsC,cAzDY/5C,EAAGwO,WAClB6H,EAAO3L,OAAO2L,KAAKrW,GACnBq6C,EAAK,IAAI35C,MAAM2V,EAAK7Y,QACff,EAAI,EAAGA,EAAI4Z,EAAK7Y,OAAQf,IAAK,KAChC2D,EAAIiW,EAAK5Z,GACTu9C,EAAMh6C,EAAEI,MACO,iBAAR45C,GAA4B,OAARA,IAC1B55C,GAAK45C,UACCA,aAAeJ,OACrBx5C,GAAK,IAAIw5C,KAAKI,WACRC,YAAYC,OAAOF,KACzB55C,GAAK+5C,GAAWH,OACd,KACDlyC,EAAQ2xC,EAAK36C,QAAQk7C,KAEpB55C,QADD0H,EACM4xC,EAAQ5xC,GAER0G,EAAGwrC,WAIVK,GAvGgBC,CAAY9zC,GAC9BA,EAAKmzC,iBAgDSv8C,MACF,iBAANA,GAAwB,OAANA,SAAmBA,KAC5CA,aAAaw8C,YAAa,IAAIA,KAAKx8C,MACnCsD,MAAMC,QAAQvD,UAAWy8C,EAAWz8C,EAAG08C,MACvC18C,aAAawtC,WAAY,IAAIA,IAAIiP,EAAWn5C,MAAMyP,KAAK/S,GAAI08C,OAC3D18C,aAAa2b,WAAY,IAAIA,IAAI8gC,EAAWn5C,MAAMyP,KAAK/S,GAAI08C,QAC3DC,EAAK,WACA35C,KAAKhD,EAAG,KACX48C,EAAM58C,EAAEgD,GACO,iBAAR45C,GAA4B,OAARA,IAC1B55C,GAAK45C,EACCA,aAAeJ,OACrBx5C,GAAK,IAAIw5C,KAAKI,GACRA,aAAepP,MACrBxqC,GAAK,IAAIwqC,IAAIiP,EAAWn5C,MAAMyP,KAAK6pC,GAAMF,IACnCE,aAAejhC,MACrB3Y,GAAK,IAAI2Y,IAAI8gC,EAAWn5C,MAAMyP,KAAK6pC,GAAMF,IACnCG,YAAYC,OAAOF,KACzB55C,GAAK+5C,GAAWH,KAEhB55C,GAAK05C,EAAWE,UAGhBD,cAlDO38C,MACG,iBAANA,GAAwB,OAANA,SAAmBA,KAC5CA,aAAaw8C,YAAa,IAAIA,KAAKx8C,MACnCsD,MAAMC,QAAQvD,UAAWy8C,EAAWz8C,EAAGg9C,MACvCh9C,aAAawtC,WAAY,IAAIA,IAAIiP,EAAWn5C,MAAMyP,KAAK/S,GAAIg9C,OAC3Dh9C,aAAa2b,WAAY,IAAIA,IAAI8gC,EAAWn5C,MAAMyP,KAAK/S,GAAIg9C,QAC3DL,EAAK,WACA35C,KAAKhD,MAC6B,IAArCsN,OAAOmQ,eAAexW,KAAKjH,EAAGgD,QAC9B45C,EAAM58C,EAAEgD,GACO,iBAAR45C,GAA4B,OAARA,IAC1B55C,GAAK45C,EACCA,aAAeJ,OACrBx5C,GAAK,IAAIw5C,KAAKI,GACRA,aAAepP,MACrBxqC,GAAK,IAAIwqC,IAAIiP,EAAWn5C,MAAMyP,KAAK6pC,GAAMI,IACnCJ,aAAejhC,MACrB3Y,GAAK,IAAI2Y,IAAI8gC,EAAWn5C,MAAMyP,KAAK6pC,GAAMI,IACnCH,YAAYC,OAAOF,KACzB55C,GAAK+5C,GAAWH,KAEhB55C,GAAKg6C,EAAMJ,UAGXD,cA3CY/5C,EAAGwO,WAClB6H,EAAO3L,OAAO2L,KAAKrW,GACnBq6C,EAAK,IAAI35C,MAAM2V,EAAK7Y,QACff,EAAI,EAAGA,EAAI4Z,EAAK7Y,OAAQf,IAAK,KAChC2D,EAAIiW,EAAK5Z,GACTu9C,EAAMh6C,EAAEI,GACO,iBAAR45C,GAA4B,OAARA,IAC1B55C,GAAK45C,EACCA,aAAeJ,OACrBx5C,GAAK,IAAIw5C,KAAKI,GACRC,YAAYC,OAAOF,KACzB55C,GAAK+5C,GAAWH,KAEhB55C,GAAKoO,EAAGwrC,UAGRK,IA9BX,YAAqBL,UACfA,aAAeO,OACVA,OAAOpqC,KAAK6pC,GAGd,IAAIA,EAAIx7C,YAAYw7C,EAAIlI,OAAOnwC,QAASq4C,EAAIQ,WAAYR,EAAIx8C,wBCPrEkN,OAAOwC,eAAeutC,GAAS,aAAc,CAAE15C,OAAO,4BAC5B,qBAC1B,SAAyB2Y,KACTghC,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,UA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ACA,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,+DCngBDxtC,iBAAwB,aAAc,CAAEnM,OAAO,wBAC1BiS,aAAqBA,QAAgBA,uBAA+BA,uBAA+BA,uBAA+BA,uBAA+BA,sBAAyB,QAChN2nC,EAAStqC,0BACgB,CAC3Bu/C,WAAW,EACXC,SAAS,EACTC,aAAa,EACbC,sBAAsB,EACtBC,WAAW,EACXC,WAAW,EACXC,cAAc,EACdC,aAAa,EACbC,iBAAkB,EAClBC,cAAe,EACfC,eAAgB,IAChBC,WAAY,yDAEe,CAC3B9rD,KAAM,sBACNyrC,0BACAE,uBAAwB,EACxBC,UAAW,GACXE,wBAAwB,EACxB5B,MAAO,CACHvC,eAAgB,EAChBE,uBACAS,uBAAuB,EACvBE,uBAAuB,EACvBjB,gBAAiB,EACjBE,cAAe,EACfhO,OAAQ,IACRqO,SAAU,CACN9I,SAAU,EACVC,QAAS,EACTC,UAAW,GACXC,SAAU,KAEd6I,UAAW,CACPtjC,WACAmf,KAAM,EACN/Z,OAAQ,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VP,EAAU,IAAI4nC,GAAO2O,yBACjBC,YAAYx2C,EAASO,GACxBP,iMChDXzO,OAAOwC,eAAeutC,GAAS,aAAc,CAAE15C,OAAO,4BAC5B,qBAC1B,SAAyB2Y,KACTghC,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,aACA,SACA,OACA,OACA,OACA,aACA,OACA,SACA,OACA,QACA,QACA,MACA,2BCpkBRhwC,OAAOwC,eAAe4zC,GAAS,aAAc,CAAE//C,OAAO,mCACrB,EACjC,MAAMggD,GAAS1wC,6BACf,SAAgC8I,EAASO,SAC/BmhC,EAAYkG,GAAO7nC,UAAUjT,UAAK,EAAWkT,GAC7CyhC,EAAamG,GAAO1nC,WAAWpT,UAAK,EAAWyT,GAC/C43C,EAAkBvQ,GAAO/qC,WAAW,CACtC,CACInY,KAAM,SACNmL,KAAM+3C,GAAOhG,IAAIF,EAAU,qBAC3B5kC,eAAmBvH,EAAIiC,SAAoF,UAAnD,UAAVvO,EAAE,UAAuB,IAAPsM,OAAgB,EAASA,EAAG+sC,iBAA8B,IAAP9qC,EAAgBA,EAAM,KAE7I,CACI9S,KAAM,OACNmL,KAAM+3C,GAAO3sC,SAASymC,EAAU,cAChC5kC,UAAa,CAAC,CACN4vC,UAAW,8BACXpK,UAAWr5C,MAGxB,CAAExD,QAAS,iBACN87C,SAAS,cAAeqG,GAAOjtC,IAAIitC,GAAOjG,WAAW,CACzDoG,QAASH,GAAOhG,IAAIgG,GAAOjtC,IAAIitC,GAAOjG,WAAW,CAC7CqG,KAAMJ,GAAOjG,WAAW,CACpByC,KAAM3C,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,UAC1D+jC,IAAKoD,GAAOhG,IAAIH,EAAW,CAAEnhC,UAAW,MAAOvK,OAAQ,CAAEkL,SAAU,CAAEnH,SAAU,iBAAkBf,GAAI,CAAC,MAAO,CAAEzU,KAAM,gBAEzH2jD,MAAOvG,EAAU,kBACjBwG,YAAaxG,EAAU,kBACvByG,WAAYP,GAAOhG,IAAIH,KACvB2G,MAAOR,GAAOhG,IAAIH,EAAW,CAAErhC,KAAM,CAAC,OAAQ,YAAa,WAC3DioC,WAAYT,GAAOhG,IAAIgG,GAAO/sC,eAC9BytC,iBAAkBV,GAAOhG,IAAIgG,GAAO/sC,eACpC0tC,OAAQX,GAAOhG,IAAIgG,GAAO/sC,iBAC1B,CACArM,QAAS,KAAO,CACZw5C,KAAM,CACF5D,KAAM,mBAEV6D,MAAO,GACPC,YAAa,QAGrBM,OAAQZ,GAAOhG,IAAIH,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,mBACvEgoC,SAAUb,GAAOzqC,QAAQskC,IAAcC,EAAU,yBACjDgH,aAAcd,GAAOhG,IAAIgG,GAAO3sC,SAAS2sC,GAAO3sC,SAASwmC,OAEzDkH,QAASf,GAAOhG,IAAIgG,GAAOjG,WAAW,CAClCiH,SAAUhB,GAAOhG,IAAIH,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gBACzEooC,KAAMjB,GAAOhG,IAAIgG,GAAO3sC,SAASwmC,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,mBACrFolC,QAAS+B,GAAOhG,IAAIgG,GAAO3sC,SAASwmC,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,eACxFqoC,WAAYlB,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAEN,SAAS,SAEzD,CAAE/X,QAAS,gBAAkB,CAC5B+I,QAAS,KAAO,CACZi6C,SAAU,CACNM,YAAa,CACTC,QAAS,8BAKjBzH,SAAS,uBAAwBqG,GAAOjG,WAAW,CACvDqH,QAASvH,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAMF,EAAY/K,IAAI,0BAC7EyzC,WAAYrB,GAAOhG,IAAIgG,GAAOjG,WAAW,CACrCiF,OAAQgB,GAAOjtC,IAAIw9C,EAAiB,CAChCp+C,WAAsD,yBAArCnL,EAAKwF,MAAM9P,KAAK,WAAWkR,SAE/CoyC,GAAOtpC,QAAS,CAAC,MAAO,CAAEha,KAAM,aAChCsjD,GAAOrpC,MAAO,CACX2qC,+BAAgC,CAC5B9G,MAAOwF,GAAOhG,IAAIH,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,YACtE0oC,gBAAiBvB,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAEN,SAAS,KACzD4mC,KAAMwD,GAAOhG,IAAIF,EAAU,oBAE/B0H,yBAA0B,CACtBZ,OAAQ2P,EACR9O,QAAS8O,EACT7O,MAAO6O,GAEX5O,0BAA2B,CACvBhF,OAAQqD,GAAOhG,IAAIH,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,cAE3E+oC,8BAA+B,CAC3BxyC,KAAM4wC,GAAOhG,IAAIH,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBACrE4d,GAAIupB,GAAOhG,IAAIH,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,kBAEvEgpC,gCAAiC,CAC7BC,QAAS9B,GAAOhG,IAAIgG,GAAO3sC,SAASk9C,KAExCxO,6BAA8B,CAC1BzgC,MAAOw4B,EAAU,eAErBkI,yBAA0B,CACtBxF,KAAMwD,GAAOhG,IAAIF,EAAU,oBAE/BmI,kCAAmC,CAC/BC,SAAUqO,EACVpO,OAAQoO,GAEZnO,4BAA6B,CACzBnD,QAASe,GAAOhG,IAAIgG,GAAOzqC,QAAQskC,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gBAAmBmnC,GAAOjG,WAAW,CACxHoE,UAAWrE,EAAU,cACrBsE,SAAUtE,EAAU,kBAExBrsB,OAAQuyB,GAAOhG,IAAIuW,IAEvBlO,wBAAyB,CACrB7H,MAAOwF,GAAOhG,IAAIH,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,YACtE7W,MAAOg+C,GAAOhG,IAAIgG,GAAOzqC,QAAQskC,IAAcA,IAAc,CAAErkC,WAAY,CAAEkD,UAAW,kBAAmBvK,OAAQ,CAAEgD,GAAI,CAAC,MAAO,CAAEzU,KAAM,gBAE7I4lD,2BAA4B,CACxBxF,OAAQhD,EAAU,cAClB0C,KAAMwD,GAAOhG,IAAIF,EAAU,oBAE/ByI,+BAAgC,CAC5BC,OAAQxC,GAAOhG,IAAIF,EAAU,sBAEjC2I,iCAAkC,CAC9B7H,OAAQ2V,EACR7N,aAAc1C,GAAOhG,IAAIF,EAAU,6BAEvC6I,0BAA2B,CACvBnG,KAAMwD,GAAOhG,IAAIF,EAAU,oBAE/B8I,+BAAgC,CAC5BhI,OAAQ2V,EACR/T,KAAMwD,GAAOhG,IAAIF,EAAU,oBAE/B+I,gCAAiC,CAC7Br7C,SAAUw4C,GAAOhG,IAAIF,EAAU,wBAEnCgJ,8BAA+B,CAC3BC,MAAO/C,GAAOhG,IAAIgG,GAAOjG,WAAW,CAChCiJ,MAAOlJ,EAAU,cACjBmJ,SAAUnJ,EAAU,cACpBoJ,KAAMpJ,EAAU,iBAEpBqJ,MAAOnD,GAAOhG,IAAIgG,GAAO3sC,SAASymC,EAAU,qBAEhDsJ,oCAAqC,CACjCC,MAAOvJ,EAAU,cACjB4C,WAAY5C,EAAU,cACtB0C,KAAMwD,GAAOhG,IAAIF,EAAU,oBAE/B0W,+BAAgC,CAC5BhU,KAAMwD,GAAOhG,IAAIF,EAAU,mBAC3BtyC,SAAUw4C,GAAOhG,IAAIF,EAAU,wBAEnCwJ,+BAAgC,CAC5BC,oBAAqBzJ,EAAU,cAC/BgI,QAAS9B,GAAOhG,IAAIgG,GAAO3sC,SAASk9C,KAExC/M,uBAAwB,CACpB1e,SAAUgV,EAAU,sBACpBsE,SAAUtE,EAAU,eAExBgrB,6BAA8B,CAC1BC,UAAWxU,EACXyU,UAAWzU,GAEf9M,qBAAsB,CAClBj8C,SAAUw4C,GAAOhG,IAAIF,EAAU,wBAEnC4J,0BAA2B,CACvB5e,SAAUgV,EAAU,sBACpB6J,QAAS3D,GAAOhG,IAAIF,EAAU,uBAC9B8J,OAAQ5D,GAAOhG,IAAIF,EAAU,wBAEjC+J,yBAA0B,CACtBrJ,MAAOwF,GAAOhG,IAAIH,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,YACtE7W,MAAOg+C,GAAOhG,IAAIgG,GAAOzqC,QAAQskC,IAAcA,IAAc,CAAErkC,WAAY,CAAEkD,UAAW,kBAAmBvK,OAAQ,CAAEgD,GAAI,CAAC,MAAO,CAAEzU,KAAM,eACzI8/C,KAAMwD,GAAOhG,IAAIF,EAAU,mBAC3BtyC,SAAUw4C,GAAOhG,IAAIF,EAAU,wBAEnC2W,4CAA6C,CACzCC,WAAY7W,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,kBAEpEirC,+BAAgC,CAC5BtB,OAAQxC,GAAOhG,IAAIF,EAAU,qBAC7Bc,OAAQ2V,GAEZI,0CAA2C,CACvCnU,KAAMwD,GAAOhG,IAAIF,EAAU,mBAC3Bc,OAAQ2V,GAEZxM,iCAAkC,CAC9BnJ,OAAQ2V,EACR7N,aAAc1C,GAAOhG,IAAIF,EAAU,6BAEvCkK,4BAA6B,CACzBC,OAAQpK,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,cAEhEsrC,yBAA0B,CACtB38C,SAAUw4C,GAAOhG,IAAIF,EAAU,wBAEnCsK,6BAA8B,CAC1B5J,MAAOwF,GAAOhG,IAAIH,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,aAE1EwrC,0BAA2B,CACvB7H,KAAMwD,GAAOhG,IAAIF,EAAU,oBAE/BwK,4BAA6B,CACzB1J,OAAQ2V,GAEZhM,wBAAyB,CACrB3J,OAAQ2V,GAEZK,uBAAwB,CACpBC,WAAYN,EACZO,QAASP,EACTQ,gBAAiBjX,EAAU,eAE/BkX,4CAA6C,CACzCpW,OAAQoF,GAAOhG,IAAIF,EAAU,qBAC7B0C,KAAMwD,GAAOhG,IAAIF,EAAU,oBAE/B0K,2BAA4B,CACxB1f,SAAUgV,EAAU,iBAExB2K,uBAAwB,CACpBjI,KAAMwD,GAAOhG,IAAIF,EAAU,oBAE/BmrB,uBAAwB,CACpBzoB,KAAMwD,GAAOhG,IAAIF,EAAU,oBAE/B4K,2BAA4B,CACxBxC,SAAUlC,GAAOhG,IAAIF,EAAU,qBAC/B0C,KAAMwD,GAAOhG,IAAIF,EAAU,oBAE/B6K,4BAA6B,CACzBn9C,SAAUsyC,EAAU,yBAG7B,CAAEj8C,QAAS,gBACf,CAAEqU,SAAU,YAAarU,QAAS,8CC3OlCsO,iBAAwB,aAAc,CAAEnM,OAAO,wBAC1BiS,cAAsBA,gBAAwBA,uBAA+BA,uBAA+BA,uBAA+BA,uBAA+BA,gBAAwBA,sBAAyB,QACjP2nC,EAAStqC,0BACgB,CAC3Bu/C,WAAW,EACXC,SAAS,EACTC,aAAa,EACbC,sBAAsB,EACtBC,WAAW,EACXC,WAAW,EACXC,cAAc,EACdC,aAAa,EACbC,iBAAkB,EAClBC,cAAe,EACfC,eAAgB,IAChBC,WAAY,iCACZzkB,MAAO,EACP5N,OAAQ,4BAEmB,CAC3Bz5B,KAAM,sBACNyrC,0BACAE,uBAAwB,EACxBC,UAAW,GACXE,wBAAwB,EACxBI,qBAAqB,EACrBF,kBAAkB,EAClBI,mBAAmB,EACnBlC,MAAO,CACH7C,MAAO,EACP5N,OAAQ,IACRkO,eAAgB,EAChBE,uBACAS,uBAAuB,EACvBE,uBAAuB,EACvBjB,gBAAiB,EACjBE,cAAe,EACfK,SAAU,CACN9I,SAAU,EACVC,QAAS,EACTC,UAAW,GACXC,SAAU,KAEd6I,UAAW,CACPtjC,WACAmf,KAAM,EACN/Z,OAAQ,GAEZo+B,aAAc,CACVxjC,WACAmf,KAAM,EACN/Z,OAAQ,IAGhBwhC,cAAe,CACXtS,KAAM,mBAEVuS,cAAe,CACXvS,KAAM,kBACNC,WAAY,CACRrb,MAAO,oCAIQlJ,EAASO,SAC1BkhC,EAAaD,EAAOthC,WAAWpT,UAAK,EAAWyT,GAC/CmhC,EAAYF,EAAOzhC,UAAUjT,UAAK,EAAWkT,KAC3CuhC,SAAS,cAAeC,EAAO7mC,IAAI6mC,EAAOG,WAAW,CACzDrd,KAAMmd,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WAC1D8jB,WAAYid,EAAOI,IAAIJ,EAAOrkC,QAAQskC,IAAcA,IAAc,CAAErkC,WAAY,CAAEkD,UAAW,kBAAmBvK,OAAQ,CAAEgD,GAAI,CAAC,MAAO,CAAEzU,KAAM,eAC/I,CAAEmB,QAAS,gBAAkB,CAC5B+I,QAAS,KAAO,CACZ81B,KAAM,yBAGNid,SAAS,cAAeC,EAAO7mC,IAAI6mC,EAAOG,WAAW,CACzDrd,KAAMmd,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WAC1D8jB,WAAYid,EAAOI,IAAIJ,EAAOrkC,QAAQskC,IAAcA,OACrD,CAAEh8C,QAAS,gBAAkB,CAC5B+I,QAAS,KAAO,CACZ81B,KAAM,kBACNC,WAAY,CACRrb,MAAS,YAIbq4B,SAAS,YAAaC,EAAO7mC,IAAI6mC,EAAOvmC,SAASumC,EAAO1jC,WAAW,CAAEN,SAAS,IAAS,CAAEpC,UAAW,EAAGC,UAAW,IAAM,CAC5H7M,QAAS,IAAM,CAAC,EAAG,EAAG,YAEpBs+D,EAAUtvD,GAAYgkC,EAAOI,IAAIJ,EAAO3kC,WAAW,CACrD,CACInY,KAAM,SACNmL,KAAM2xC,EAAO1jC,WAAW,CAAEN,QAAAA,IAC1BV,OAAS7T,QAAYsM,EAAIiC,cAAiB,IAANvO,EAAkB,EAAmE,UAAxC,UAAXA,EAAEkS,WAAwB,IAAP5F,EAAgBA,EAAKtM,EAAE6E,WAAwB,IAAP0J,EAAgBA,EAAK,IAE1J,CACI9S,KAAM,SACNmL,KAAM2xC,EAAOG,WAAW,CACpBxmC,IAAKqmC,EAAOI,IAAIJ,EAAO1jC,WAAW,CAAEN,QAAAA,KACpC1P,IAAK0zC,EAAOI,IAAIJ,EAAO1jC,WAAW,CAAEN,QAAAA,MACrC,CAAE/X,QAAS,UACdqX,OAAS7T,IAAO,CACZkS,IAAKlS,MAAAA,EAA6BA,EAAI,EACtC6E,IAAK7E,MAAAA,EAA6BA,EAAI,UAI1Cs4C,SAAS,aAAcurB,GAAO,MAC9BvrB,SAAS,eAAgBurB,OACzBvrB,SAAS,YAAaC,EAAO3kC,WAAW,CAC5C,CACInY,KAAM,SACNmL,KAAM2xC,EAAOG,WAAW,CACpBxmC,IAAKqmC,EAAOI,IAAIF,EAAU,oBAC1B5zC,IAAK0zC,EAAOI,IAAIF,EAAU,uBAGlC,CACIh9C,KAAM,SACNmL,KAAM2xC,EAAO1jC,WAAW,CAAEN,SAAS,MAExC,CAAE/X,QAAS,iBACRsnE,EAAiB,CAACtsD,EAAMusD,EAAYC,EAAYC,EAAeC,EAAe1nE,EAASsW,SACrFqxD,EAAc,GACdD,UACOjwD,KAAKnB,EAAMoxD,IAAgBhjE,eAClBlD,GAAKu6C,EAAO7mC,IAAIoB,EAAMoxD,GAAelmE,GAAI,CACjD8S,gBAA6C,IAA5BnL,EAAKtK,KAAK,QAAQkR,iBAIzCoyD,EAAWpmB,EAAOG,WAAWjnC,GAC/BhW,KAAM88C,EAAO7mC,IAAI6mC,EAAOI,IAAIH,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAAA,MAAY,CAClF8nC,OAAQ,KAAM,KAEjB/G,EAAOljC,QAAS,CAAC,CAAEha,KAAM,UACzBk9C,EAAOjjC,MAAOxC,GACZqxD,GACJ,CAAE3nE,QAAAA,EAAS0Z,sBAAsB,IAC9B3C,EAAU,CAAC,CACT9X,KAAMsoE,EACNn9D,KAAMkM,EAAMmxD,GAAeD,YAE/BE,KACQ7oE,KAAK,CACTI,KAAM,SACN0X,YACAvM,KAAM+3D,WAGP1qD,KAAKnB,GAAO5R,eACP7F,KAAK,CACTI,KAAMuC,EACNuG,MAAQvE,QACAsM,KACS,cAAwE,UAAlDtM,MAAAA,OAA6B,EAASA,EAAEvE,YAAyB,IAAP6Q,OAAgB,EAASA,EAAGjN,QAAQ,cAAe,OACnIrB,SACF,QACLiW,EAAOjU,EAAIsI,OAAO2L,KAAKjU,GAAK,SACd,iBAANA,IAAiF,kBAA1B,EAASiU,EAAK7Y,SAAgF,kBAA1B,EAAS6Y,EAAK7Y,SAA2E,uBAAtB,EAAS6Y,EAAK,MAE9NrN,KAAM+3D,EACN9qD,OAAS7T,IAAO,CAAEvE,KAAMuC,SAGzBu6C,EAAO3kC,WAAWL,EAAS,CAAE/W,QAAAA,EAASu8C,cAAe,GAAGv8C,cAE3D87C,SAAS,kBAAmBwrB,EAAe,4BAA6B,SAAU,QAAS,qBAAsB,oBAAqB,kBAAmB,CAC7JM,qBAAsB,CAClBzlE,MAAO45C,EAAO1jC,cAElBwvD,oBAAqB,CACjBnyD,IAAKumC,EAAU,mBACf5zC,IAAK4zC,EAAU,oBAEnB6rB,qBAAsB,CAClBnqE,EAAGs+C,EAAU,mBACbj4C,EAAGi4C,EAAU,oBAEjB8rB,kBAAmB,CACfx9D,OAAQ0xC,EAAU,4BAClB4S,MAAO7S,EAAW,CAAEnhC,UAAW,cAC/Bu5C,MAAOrY,EAAOI,IAAIJ,EAAO1jC,oBAGzByjC,SAAS,2BAA4BwrB,EAAe,2BAA4B,SAAU,SAAU,oBAAqB,KAAM,iBAAkB,CACrJ3T,kBAAmB,CACf9tD,KAAMm2C,EAAW,CAAEnhC,UAAW,SAAUvK,OAAQ,CAAEm7C,OAAQ,WAAYxsD,KAAM,WAAY6vD,eAAe,MAE3GkZ,oBAAqB,CACjBz9D,OAAQwxC,EAAO7mC,IAAI8mC,EAAW,CAAErhC,KAAM,kBAAoB,CAAE5R,QAAS,IAAM,eAG3E+yC,SAAS,eAAgBwrB,EAAe,yBAA0B,SAAU,SAAU,oBAAqB,KAAM,eAAgB,CACrIW,oBAAqB,CACjBr4C,OAAQosB,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,eAEhEgtD,oBAAqB,CACjBz9D,OAAQwxC,EAAO7mC,IAAI8mC,EAAW,CAAErhC,KAAM,gBAAkB,CAAE5R,QAAS,IAAM,6BAGxD0M,GAAW6xD,EAAe,sBAAuB,SAAU,QAAS,qBAAsB,KAAM,iBAAkB,CACvIM,qBAAsB,CAClBzlE,MAAO45C,EAAO1jC,WAAW5C,IAE7BoyD,oBAAqB,CACjB1lE,MAAO45C,EAAOG,WAAW,CACrBgsB,cAAensB,EAAO1jC,WAAW5C,GACjC0yD,cAAepsB,EAAO1jC,WAAW5C,MAGzC2yD,2BAA4B,CACxBjmE,MAAO45C,EAAOG,WAAW,CACrBxmC,IAAKqmC,EAAO1jC,aACZhQ,IAAK0zC,EAAO1jC,aACZgwD,KAAMtsB,EAAO1jC,aACbiwD,UAAWvsB,EAAO1jC,gBAG1BkwD,sBAAuB,CACnBpmE,MAAO45C,EAAOG,WAAW,CACrBxmC,IAAKqmC,EAAO1jC,aACZhQ,IAAK0zC,EAAO1jC,aACZmwD,QAASzsB,EAAO1jC,oBAIpByjC,SAAS,iBAAkB1nC,EAAQq0D,+BACpBhzD,GAAW6xD,EAAe,oBAAqB,SAAU,QAAS,qBAAsB,KAAM,eAAgB,CACjIM,qBAAsB,CAClBzlE,MAAO45C,EAAO1jC,WAAWpD,GAAE8C,SAAS,GAAStC,KAEjDoyD,oBAAqB,CACjB1lE,MAAO45C,EAAOG,WAAW,CACrBgsB,cAAensB,EAAO1jC,WAAWpD,GAAE8C,SAAS,GAAStC,IACrDizD,cAAe3sB,EAAO1jC,WAAWpD,GAAE8C,SAAS,GAAStC,OAG7DkzD,6BAA8B,CAC1BxmE,MAAO45C,EAAOG,WAAW,CACrBgsB,cAAensB,EAAO1jC,WAAWpD,GAAE8C,SAAS,GAAStC,IACrDizD,cAAe3sB,EAAO1jC,WAAWpD,GAAE8C,SAAS,GAAStC,OAG7DmzD,oBAAqB,CACjBzmE,MAAO45C,EAAOG,WAAW,CACrBgsB,cAAensB,EAAO1jC,WAAWpD,GAAE8C,SAAS,GAAStC,IACrDizD,cAAe3sB,EAAO1jC,WAAWpD,GAAE8C,SAAS,GAAStC,IACrDma,OAAQqsB,EAAU,uBAItBH,SAAS,eAAgB1nC,EAAQy0D,iBACjC/sB,SAAS,kBAAmBC,EAAO3kC,WAAW,CAAC,WAAY,eAAgB,aAAatO,SAAU,CACtG7J,KAAMV,EACNwJ,cAA6D,kBAAnB,EAASvE,EAAEjF,IACrD8Y,eAAmBvH,EAAIiC,EAAIC,QAAY,EAAGzT,GAAqI,UAA9C,UAAjD,UAAhBiF,EAAEk9C,gBAA6B,IAAP5wC,EAAgBA,EAAKtM,EAAEslE,oBAAiC,IAAP/2D,EAAgBA,EAAKvO,EAAEulE,iBAA8B,IAAP/2D,EAAgBA,EAAK,IAC5M5H,KAAM2xC,EAAOG,WAAW,EACnB39C,GAAIw9C,EAAO1jC,WAAW,CAAEN,SAAS,EAAMrC,UAAYrN,IAAK,aAE5D,CAAErI,QAAS,uBACR87C,SAAS,kBAAmBwrB,EAAe,uBAAwB,SAAU,QAAS,qBAAsB,KAAM,kBAAmB,CACzIM,qBAAsB,CAClBzlE,MAAO85C,EAAU,oBAErB4rB,oBAAqB,CACjBK,cAAejsB,EAAU,mBACzBysB,cAAezsB,EAAU,oBAE7B0sB,6BAA8B,CAC1BT,cAAejsB,EAAU,mBACzBysB,cAAezsB,EAAU,mBACzBkd,MAAOpd,EAAOI,IAAIJ,EAAO1jC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,MAE9DszD,kCAAmC,CAC/Bd,cAAejsB,EAAU,mBACzBysB,cAAezsB,EAAU,mBACzBkd,MAAOpd,EAAOI,IAAIJ,EAAO1jC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,MAE9D6yD,sBAAuB,CACnBL,cAAejsB,EAAU,mBACzBysB,cAAezsB,EAAU,mBACzBusB,QAASzsB,EAAOI,IAAIJ,EAAO1jC,WAAW,CAAEN,SAAS,0BAGhC,CAACkxD,EAAmBjtB,EAAW,CAAErhC,KAAM,qBAAwB,CACpF6hC,wBAAyB,CACrBC,MAAOV,EAAOvmC,SAASymC,EAAU,eAErCS,iCAAkC,CAC9BC,MAAOX,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WAC3D0jB,WAAYqd,EAAOrkC,QAAQskC,IAAcA,IAAc,CAAErkC,WAAY,CAAEkD,UAAW,kBAAmBvK,OAAQ,CAAEgD,GAAI,CAAC,MAAO,CAAEzU,KAAM,eAEvI+9C,qCAAsC,CAClCC,UAAWZ,EAAU,4BAEzBa,8BAA+B,CAC3BC,OAAQksB,EACRpsB,UAAWZ,EAAU,qBAEzBe,0BAA2B,CACvBD,OAAQksB,EACRhsB,OAAQlB,EAAOrkC,QAAQskC,EAAW,CAAEnhC,UAAW,cAAgBohC,EAAU,eAE7EkB,qBAAsB,CAClBC,KAAMnB,EAAU,cAEpBoB,6BAA8B,CAC1BC,QAASvB,EAAOI,IAAIJ,EAAO3mC,gBAE/BmoC,2BAA4B,CACxBC,QAASzB,EAAOI,IAAIJ,EAAO1jC,WAAW,CAAEN,SAAS,KACjD0lC,QAAS1B,EAAOI,IAAIJ,EAAO1jC,WAAW,CAAEN,SAAS,KACjD2lC,QAAS3B,EAAOI,IAAIJ,EAAO1jC,WAAW,CAAEN,SAAS,KACjD8kC,UAAWZ,EAAU,uBAEzB0B,uBAAwB,CACpBd,UAAWZ,EAAU,mBAEzB2B,0BAA2B,CACvBC,OAAQ9B,EAAO1jC,WAAW,CAAE3C,IAAK,EAAGrN,IAAK,KAE7Cy1C,uCAAwC,CACpCD,OAAQ9B,EAAO1jC,WAAW,CAAE3C,IAAK,EAAGrN,IAAK,IACzC01C,mBAAoBhC,EAAO1jC,cAE/B2lC,sBAAuB,CACnBn4C,KAAMm2C,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBAE9DijC,wBAAyB,CACrBC,YAAalC,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBACjEmjC,QAASpC,EAAOvmC,SAASumC,EAAO1jC,WAAW,CAAE3C,IAAK,EAAGrN,IAAK,MAE9D+1C,uBAAwB,CACpBj8C,MAAO85C,EAAU,aACjBoC,OAAQtC,EAAOI,IAAIJ,EAAO1jC,WAAW,CAAEN,SAAS,MAEpDmxD,wBAAyB,CACrB/mE,MAAO85C,EAAU,mBACjBktB,MAAOltB,EAAU,cAErBqC,0BAA2B,CACvBC,QAASxC,EAAOI,IAAIJ,EAAO3mC,eAC3BopC,WAAYzC,EAAOI,IAAIJ,EAAO3mC,kCAGd,CAACouC,EAAY4lB,EAAiBptB,EAAW,CAAErhC,KAAM,gBAAkBsuD,EAAmBjtB,EAAW,CAAErhC,KAAM,2BACvHrE,EAAQ,CACVkzC,wBAAyB,CACrBtL,YAAalC,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBACjEyuC,QAASzN,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAMF,EAAY/K,IAAI,qCAC7E02B,WAAYsV,EAAO7mC,IAAI6mC,EAAOG,WAAW,CACrCwN,gBAAiB3N,EAAO7mC,IAAI6mC,EAAO1jC,aAAc,CAC7C/D,WAAsD,kCAArCnL,EAAKwF,MAAM9P,KAAK,WAAWkR,QAEhDgR,MAAOg7B,EAAO7mC,IAAI6mC,EAAO1jC,aAAc,CACnC/D,WAAsD,wCAArCnL,EAAKwF,MAAM9P,KAAK,WAAWkR,QAEhD45C,YAAa5N,EAAO7mC,IAAI6mC,EAAO1jC,aAAc,CACzC/D,WAAsD,wCAArCnL,EAAKwF,MAAM9P,KAAK,WAAWkR,UAEhD,CACAuE,WAAgD,wBAA/BnL,EAAKtK,KAAK,WAAWkR,SAG9C65C,sBAAuB,CACnBh6B,OAAQw5C,GAEZvf,qBAAsB,CAClBj6B,OAAQqsB,EAAU,gBAClB6N,IAAK/N,EAAOvmC,SAASumC,EAAOG,WAAW,CACnCtsB,OAAQosB,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE+D,SAAU,CAAE01C,OAAQ,cAAe5gD,KAAM,CAAC,MAAO,MAAO,MAAO,CAAEtK,KAAM,eAC7H0L,OAAQyxC,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE+D,SAAU,oBAChEgf,GAAI2oB,EAAW,CAAErhC,KAAM,CAAC,UAAW,SAAU,YAC9C,CAAE3a,QAAS,oBAElBgqD,uBAAwB,CACpBrN,MAAOX,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WAC3D0jB,WAAYqd,EAAOvmC,SAASwmC,EAAW,CAAEnhC,UAAW,kBAAmBvK,OAAQ,CAAEgD,GAAI,CAAC,MAAO,MAAO,CAAEzU,KAAM,eAEhHorD,6BAA8B,CAC1BjL,aAAcjD,EAAOI,IAAIJ,EAAOvmC,SAASwmC,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,oBAEjGkvC,gCAAiC,CAC7BjL,OAAQhD,EAAU,mBAClBkO,SAAUpO,EAAOI,IAAIJ,EAAO3mC,gBAEhCg1C,4BAA6B,CACzBC,YAAatO,EAAOI,IAAIH,EAAW,CAAErhC,KAAM,iBAC3C2vC,WAAYvO,EAAOI,IAAIH,EAAW,CAAErhC,KAAM,oBAC1C4vC,KAAMxO,EAAOI,IAAIJ,EAAO1jC,WAAW,CAAEN,SAAS,KAC9CyyC,cAAezO,EAAOI,IAAIJ,EAAO1jC,WAAW,CAAEN,SAAS,KACvD0yC,qBAAsB1O,EAAOI,IAAIJ,EAAO3mC,gBAE5Cs1C,6BAA8B,CAC1B3N,OAAQksB,GAEZte,wBAAyB,CACrBngC,MAAOyxB,EAAU,cAErB2O,4BAA6B,CACzB/oC,MAAOo6B,EAAU,mBACjBzxB,MAAOuxB,EAAOI,IAAIJ,EAAO1jC,WAAW,CAAEN,SAAS,MAEnD8yC,2BAA4B,CACxBC,UAAW/O,EAAOvmC,SAASymC,EAAU,wBAEzCotB,+BAAgC,CAC5BC,SAAUvtB,EAAOvmC,SAASumC,EAAOG,WAAW,CACxCiQ,QAASnQ,EAAW,CAAErhC,KAAM,mBAC5B3C,MAAOgkC,EAAW,CAAErhC,KAAM,iBAE9B4uD,OAAQxtB,EAAOI,IAAIJ,EAAO3mC,gBAE9B21C,yBAA0B,CACtB72C,QAAS6nC,EAAOvmC,SAASymC,EAAU,gBAEvC+O,sBAAuB,CACnBnpC,MAAOo6B,EAAU,mBACjBloC,IAAKgoC,EAAOI,IAAIJ,EAAO3mC,gBAE3B61C,uBAAwB,CACpBtG,OAAQ1I,EAAU,mBAClBloC,IAAKgoC,EAAOI,IAAIJ,EAAO3mC,gBAE3Bo0D,6BAA8B,CAC1BxqB,aAAcjD,EAAOrkC,QAAQskC,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBAAoBihC,EAAU,oBAC/GloC,IAAKgoC,EAAOI,IAAIJ,EAAO3mC,gBAE3B81C,2BAA4B,CACxBrlD,KAAMm2C,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBAC1DulB,KAAMwb,EAAOI,IAAIJ,EAAO1jC,WAAW,CAAEN,SAAS,MAElDozC,qBAAsB,CAClBpO,OAAQhB,EAAOI,IAAI8sB,GACnB7d,KAAMrP,EAAOvmC,SAASymC,EAAU,mBAChCp5C,QAASk5C,EAAOI,IAAIJ,EAAO3mC,gBAE/Bi2C,qBAAsB,CAClBtO,OAAQhB,EAAOI,IAAI8sB,GACnBpjE,KAAMk2C,EAAOI,IAAIF,EAAU,oBAE/BqP,oBAAqB,CACjB1M,IAAK5C,EAAW,CAAEnhC,UAAW,MAAOvK,OAAQ,CAAEkL,SAAU,CAAEnH,SAAU,sBAExEk3C,4BAA6B,CACzBnK,QAASrF,EAAOI,IAAIJ,EAAOvmC,SAASumC,EAAOG,WAAW,CAClDj9C,KAAM+8C,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gBAC1DulC,SAAUtE,EAAU,yBAI1BjoC,EAAM,YACAjE,IAAI,sBAAsBrL,eAC9B/F,GAAKsW,OAAKqB,EAAM3X,IAAO6kD,MAExBxvC,0BAEqB5J,GAAS2xC,EAAO8V,eAAe7V,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,qBAAwB5Q,EAAM,CAC7I0nD,sBAAuB19C,EAAQ29C,qBAC/BC,uBAAwB,CACpBnsD,KAAM,uBACNmrD,WAAW,EACXC,SAAS,EACTgB,QAAQ,EACRf,aAAa,EACbC,sBAAsB,EACtBC,WAAW,EACXC,WAAW,EACXC,cAAc,EACdC,aAAa,EACbE,cAAe,GACfS,WAAY,KACZR,eAAgB,IAChBtQ,QAAS,uBACTuQ,WAAY,8BACZzkB,MAAO,EACP5N,OAAQ,KAEZ6yB,oBAAqB,CACjBtsD,KAAM,oBACNmrD,WAAW,EACXC,SAAS,EACTgB,QAAQ,EACRf,aAAa,EACbC,sBAAsB,EACtBC,WAAW,EACXC,WAAW,EACXC,cAAc,EACdC,aAAa,EACbE,cAAe,EACfS,WAAY,IACZR,eAAgB,IAChBtQ,QAAS,oBACTuQ,WAAY,2BACZzkB,MAAO,EACP5N,OAAQ,8BAGgBl1B,GAAS2xC,EAAO8V,eAAe7V,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,8BAAiC5Q,EAAM,CACtJ0nD,sBAAuB19C,EAAQg+C,qBAC/BC,mBAAoB,CAChBxsD,KAAM,mBACNyrC,sBAAuB,EACvBE,uBAAwB,EACxBC,UAAW,GACXE,wBAAwB,EACxBI,qBAAqB,EACrBF,kBAAkB,EAClBI,mBAAmB,EACnBlC,MAAO,CACH7C,MAAO,EACP5N,OAAQ,IACRkO,eAAgB,EAChBE,eAAgB,WAChBS,uBAAuB,EACvBE,uBAAuB,EACvBjB,gBAAiB,EACjBE,cAAe,EACfK,SAAU,CACN9I,SAAU,EACVC,QAAS,EACTC,UAAW,GACXC,SAAU,IAEd6I,UAAW,CACPtjC,OAAQ,IACRmf,KAAM,EACN/Z,OAAQ,GAEZo+B,aAAc,CACVxjC,OAAQ,IACRmf,KAAM,EACN/Z,YAGRwhC,cAAe,CACXtS,KAAM,wBAEVuS,cAAe,CACXvS,KAAM,iBACNC,WAAY,CACRrb,MAAO,OAInB6uC,gBAAiB,CACbzsD,KAAM,gBACNyrC,0BACAE,2BACAC,UAAW,EACXE,wBAAwB,EACxBI,qBAAqB,EACrBF,kBAAkB,EAClBI,mBAAmB,EACnBlC,MAAO,CACH7C,MAAO,EACP5N,OAAQ,IACRkO,eAAgB,EAChBE,eAAgB,EAChBS,uBAAuB,EACvBE,uBAAuB,EACvBE,uBAAuB,EACvBnB,gBAAiB,EACjBE,cAAe,EACfK,SAAU,CACN9I,SAAU,EACVC,QAAS,EACTC,UAAW,GACXC,SAAU,KAEd6I,UAAW,CACPtjC,YACAmf,KAAM,GACN/Z,YAEJo+B,aAAc,CACVxjC,WACAmf,KAAM,EACN/Z,OAAQ,IAGhBwhC,cAAe,CACXtS,KAAM,uBAEVuS,cAAe,CACXvS,KAAM,kBAGd0zB,sBAAuB,CACnB1sD,KAAM,sBACNyrC,0BACAE,uBAAwB,EACxBC,UAAW,GACXE,wBAAwB,EACxBI,qBAAqB,EACrBF,kBAAkB,EAClBI,mBAAmB,EACnBlC,MAAO,CACH7C,MAAO,EACP5N,OAAQ,IACRkO,eAAgB,EAChBE,uBACAS,uBAAuB,EACvBE,uBAAuB,EACvBI,WAAW,EACXrB,gBAAiB,EACjBE,cAAe,EACfK,SAAU,CACN9I,SAAU,EACVC,QAAS,EACTC,UAAW,GACXC,SAAU,KAEd6I,UAAW,CACPtjC,WACAmf,KAAM,EACN/Z,OAAQ,GAEZo+B,aAAc,CACVxjC,WACAmf,KAAM,EACN/Z,OAAQ,IAGhBwhC,cAAe,CACXtS,KAAM,mBAEVuS,cAAe,CACXvS,KAAM,kBACNC,WAAY,CACRrb,MAAO,OAInB+uC,kBAAmB,CACf3sD,KAAM,kBACNyrC,sBAAuB,EACvBE,uBAAwB,EACxBC,UAAW,GACXE,wBAAwB,EACxBI,qBAAqB,EACrBF,kBAAkB,EAClBI,mBAAmB,EACnBlC,MAAO,CACH7C,MAAO,EACP5N,OAAQ,IACRkO,eAAgB,EAChBE,eAAgB,WAChBS,uBAAuB,EACvBE,uBAAuB,EACvBjB,gBAAiB,EACjBE,cAAe,EACfK,SAAU,CACN9I,SAAU,EACVC,QAAS,EACTC,UAAW,GACXC,SAAU,IAEd6I,UAAW,CACPtjC,OAAQ,IACRmf,KAAM,EACN/Z,OAAQ,GAEZo+B,aAAc,CACVxjC,OAAQ,IACRmf,KAAM,EACN/Z,YAGRwhC,cAAe,CACXtS,KAAM,mBAEVuS,cAAe,CACXvS,KAAM,kBACNC,WAAY,CACRrb,MAAO,OAInBgvC,6BAA8B,CAC1B5sD,KAAM,6BACNyrC,0BACAE,2BACAC,UAAW,EACXE,wBAAwB,EACxBI,qBAAqB,EACrBF,kBAAkB,EAClBI,mBAAmB,EACnBlC,MAAO,CACH7C,MAAO,EACP5N,OAAQ,IACRkO,eAAgB,EAChBE,eAAgB,EAChBS,uBAAuB,EACvBE,uBAAuB,EACvBE,uBAAuB,EACvBnB,gBAAiB,EACjBE,cAAe,EACfK,SAAU,CACN9I,SAAU,EACVC,QAAS,EACTC,UAAW,GACXC,SAAU,KAEd6I,UAAW,CACPtjC,YACAmf,KAAM,GACN/Z,YAEJo+B,aAAc,CACVxjC,WACAmf,KAAM,EACN/Z,OAAQ,IAGhBwhC,cAAe,CACXtS,KAAM,mBAEVuS,cAAe,CACXvS,KAAM,kBACNC,WAAY,CACRrb,MAAO,yBCltB3B3X,OAAOwC,eAAey4C,GAAS,aAAc,CAAE5kD,OAAO,iCACvB,EAC/B,MAAMggD,GAAS1wC,GACT2wC,GAAW1wC,2BACjB,SAA8B6I,EAASO,SAC7BmhC,EAAYkG,GAAO7nC,UAAUjT,UAAK,EAAWkT,GAC7CyhC,EAAamG,GAAO1nC,WAAWpT,UAAK,EAAWyT,KAC7CghC,SAAS,YAAaqG,GAAO6E,aAAa/K,EAAU,aAAc,CAAEM,cAAe,iBACnFT,SAAS,YAAaqG,GAAOjtC,IAAIitC,GAAOjG,WAAW,CACvD+K,UAAWjL,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,0BAC9DmnC,GAAOtpC,QAAS,CAAC,CAAEha,KAAM,eACzBsjD,GAAOrpC,MAAOspC,GAAS8E,kBACzB,CAAE7yC,SAAU,YAAarU,QAAS,cAAgB,CACjD+I,QAAS,KAAO,CACZk+C,UAAW,8BACXlK,OAAQ,uBCfpBjxC,OAAOwC,eAAe8kD,GAAS,aAAc,CAAEjxD,OAAO,iCACvB,EAC/B,MAAMggD,GAAS1wC,GACT2wC,GAAW1wC,2BACjB,SAA8B6I,EAASO,SAC7BmhC,EAAYkG,GAAO7nC,UAAUjT,UAAK,EAAWkT,GAC7CyhC,EAAamG,GAAO1nC,WAAWpT,UAAK,EAAWyT,GAC/Cu4C,EAAYjpD,GAAS+3C,GAAOjtC,IAAI9K,EAAM,CACxCkK,gBAA+C,IAA9BnL,EAAKtK,KAAK,UAAUkR,UAEjC+rC,SAAS,YAAaqG,GAAOjtC,IAAIitC,GAAOjG,WAAW,CACvDj9C,KAAMmjD,GAASkR,qBAAqBrX,EAAU,mBAC9CsX,UAAWpR,GAAOjG,WAAW,CACzBj9C,KAAM+8C,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,+BACzDmnC,GAAOtpC,QAAS,CAAC,CAAEha,KAAM,UACzBsjD,GAAOrpC,MAAO,CACX06C,kBAAmB,CACfjzB,KAAM4hB,GAAO9pC,WAAW,CAAEN,SAAS,IACnC62B,SAAUwT,GAASqR,qBAAqBxX,EAAU,mBAClDyX,aAAcvR,GAAOjG,WAAW,CAC5Bj9C,KAAM+8C,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,4BACzDmnC,GAAOtpC,QAAS,CAAC,CAAEha,KAAM,UACzBsjD,GAAOrpC,MAAO,CACX66C,kBAAmB,CACfnrB,MAAOwT,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,sBAE/D44C,wBAAyB,CACrBrzB,KAAM4hB,GAAO9pC,WAAW,CAAEN,SAAS,IACnC87C,OAAQ1R,GAAOhG,IAAIH,EAAW,CAAErhC,KAAM,CAAC,aACvCm5C,eAAgBT,EAASpX,EAAU,0BACnC8X,kBAAmBV,EAASpX,EAAU,0BACtC+X,eAAgBX,EAASpX,EAAU,0BACnCgY,gBAAiBZ,EAASpX,EAAU,0BACpCiY,OAAQb,EAASlR,GAAOjtC,IAAIitC,GAAO3sC,SAASymC,EAAU,oBAAqB,CACvElzC,QAAS,IAAM,CAAC,CACRy/B,MAAO,yBAIvB2rB,yBAA0B,CACtBC,MAAOjS,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,MAClE6rD,OAAQ/R,GAAO3sC,SAASwmC,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,uBAEhFm3C,oBAAqB,CACjB5xB,KAAM4hB,GAAO9pC,WAAW,CAAEN,SAAS,KAEvCs8C,4BAA6B,CACzB9zB,KAAM4hB,GAAO9pC,WAAW,CAAEN,SAAS,IACnCu8C,aAAcnS,GAAOhG,IAAIgG,GAAO/sC,eAChCm/C,wBAAyBpS,GAAOhG,IAAIgG,GAAO/sC,kBAGpD,CAAEf,SAAU,YAAaqF,sBAAsB,KAEtD86C,iBAAkB,CACd5lB,SAAUuT,GAAOjG,WAAW,CACxB1T,MAAO2Z,GAAOhG,IAAIH,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,sBACtEy5C,MAAOtS,GAAOhG,IAAIgG,GAAO/sC,eACzBs/C,SAAUvS,GAAOhG,IAAIgG,GAAO/sC,eAC5Bu/C,OAAQxS,GAAO3sC,SAASymC,EAAU,oBAClC/K,WAAY+K,EAAU,6BAInC,CAAEviC,sBAAsB,KAC5B,CAAErF,SAAU,OAAQrU,QAAS,cAAgB,CAC5C+I,QAAS,WACCw3B,EAAOj4B,KAAKmxB,MAAuB,WAAjBnxB,KAAKoxB,UAA2B,iBACjD,CACHz6B,KAAM,sBACNs0D,UAAW,CACPt0D,KAAM,kBACNshC,KAAAA,EACAmzB,aAAc,CACVz0D,KAAM,kBACNshC,KAAAA,EACAiI,MAAO,oBAEXoG,SAAU,8BAKlBkN,SAAS,kBAAmBqG,GAAOjtC,IAAIitC,GAAOjG,WAAW,CAC7D1T,MAAOwT,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,qBAC3DyrB,WAAY0b,GAAOjG,WAAW,CAC1B0Y,SAAUzS,GAAO9pC,aACjBsuB,YAAawb,GAAO9pC,aACpBuuB,SAAUub,GAAO9pC,aACjB0uB,UAAWob,GAAO9pC,aAClB1I,OAAQwyC,GAAO9pC,gBAEpB,CAAErY,QAAS,oBAAsB,CAChC+I,QAAS,KAAO,CACZy/B,MAAO,mBACP/B,WAAY,CACRmuB,SAAU,EACVjuB,YAAa,EACbC,SAAU,EACVG,UAAW,EACXp3B,OAAQ,UAIZmsC,SAAS,wBAAyBqG,GAAOjtC,IAAIitC,GAAOjG,WAAW,CACnEjX,YAAakd,GAAO9pC,WAAW,CAAEN,SAAS,IAC1CyrB,WAAY2e,GAAO3sC,SAAS2sC,GAAO9pC,eACpC,CAAErY,QAAS,0BAA4B,CACtC+I,QAAS,KAAO,CACZk8B,eACAzB,WAAY,CAAC,EAAG,mBC9G5B13B,OAAOwC,eAAeumD,GAAS,aAAc,CAAE1yD,OAAO,qCACnB,EACnC,MAAMggD,GAAS1wC,GACT2wC,GAAW1wC,+BACjB,SAAkC6I,EAASO,SACjCkhC,EAAamG,GAAO1nC,WAAWpT,UAAK,EAAWyT,KAC7CghC,SAAS,iBAAkBqG,GAAOjtC,IAAIitC,GAAOjG,WAAW,CAC5Dr2C,KAAMs8C,GAAOjtC,IAAI8mC,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,kBAAmBE,cAAc,KAAW,CAC7G5G,QAAUnL,GAASA,EAAKiK,WAAWxU,OAAS,IAEhDoyD,UAAW7O,GAAO/sC,cAClB67C,QAAS9O,GAAO/sC,cAChB87C,YAAa/O,GAAO/sC,cACpB+7C,qBAAsBhP,GAAO/sC,cAC7Bg8C,UAAWjP,GAAO/sC,cAClBi8C,UAAWlP,GAAO/sC,cAClBk8C,aAAcnP,GAAO/sC,cACrBm8C,YAAapP,GAAO/sC,cACpBo8C,iBAAkBrP,GAAO9pC,WAAW,CAAE3C,IAAK,KAASrN,IAAK,MACzDopD,cAAetP,GAAO9pC,aACtB65C,WAAY/P,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAEN,SAAS,KACpD25C,eAAgBvP,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,OAChE+4C,QAASe,GAAOhG,IAAIH,EAAW,CAAErhC,KAAM,CAAC,sBAAuB,uBAAwB,wBACvFg3C,WAAY3V,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gBAChEkyB,MAAOiV,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,UAAYrN,IAAK,OAC3Di3B,OAAQ6iB,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,QACzD,CAAErI,QAAS,wBAA8B,CACxC+I,QAAS,IAAMq5C,GAAS2P,qBACxB9+C,SAAU,CAAC9J,EAAMhH,EAAOiO,EAAQ0B,eACpB1H,EAAK6I,SAAS9J,EAAMhH,EAAOiO,EAAQ0B,SACD,EAAS3P,EAAM+qC,qBAA+C,EAAS/qC,EAAMm9B,QAAU,QACtHvrB,IAAI5K,EAAKtK,KAAK,UAAW,0BAA2B,oBAErB,EAASsD,EAAMuvD,8BAAwD,EAASvvD,EAAMm9B,WACrHvrB,IAAI5K,EAAKtK,KAAK,kBAAmB,sCAEF,EAASsD,EAAMm9B,QAAU,IAAO,KAC/DvrB,IAAI5K,EAAKtK,KAAK,UAAW,wBAAyB,kBAEnB,EAASsD,EAAM+qC,OAAS,IAAO,KAC9Dn5B,IAAI5K,EAAKtK,KAAK,SAAU,uBAAwB,IAEpDsD,mBC1CnB2J,OAAOwC,eAAem7D,GAAS,aAAc,CAAEtnE,OAAO,oCACpB,EAClC,MAAMggD,GAAS1wC,GACT2wC,GAAW1wC,8BACjB,SAAiC6I,EAASO,SAChCmhC,EAAYkG,GAAO7nC,UAAUjT,UAAK,EAAWkT,GAC7CyhC,EAAamG,GAAO1nC,WAAWpT,UAAK,EAAWyT,KAC7CghC,SAAS,gBAAiBqG,GAAO6E,aAAa/K,EAAU,YAAa,CAAEM,cAAe,oBACxFiH,EAAa,CACfA,WAAYrB,GAAOhG,IAAIgG,GAAO3sC,SAASymC,EAAU,kBAE7CH,SAAS,WAAYqG,GAAOjtC,IAAIitC,GAAOjG,WAAW,CACtDiH,SAAUnH,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,yBAC7DmnC,GAAOtpC,QAAS,CAAC,CAAEha,KAAM,cACzBsjD,GAAOrpC,MAAOspC,GAASsnB,cAAclmB,IACvC,CAAEnvC,SAAU,WAAYrU,QAAS,aAAe,CAC/C+I,QAAS,IAAM,CAAC,CACRo6C,SAAU,sBACVthC,MAAO,wBClBvB/V,OAAOwC,eAAe64C,GAAS,aAAc,CAAEhlD,OAAO,sGAC0E,oBACvG,IAAI6pC,IAAI,CAC7B,CAAC,+BAAgC,CAAEob,SAAU,CAAC,EAAgB,GAAqBC,OAAQ,KAC3F,CAAC,+BAAgC,CAAED,SAAU,CAAC,EAAgB,GAAqBC,OAAQ,KAC3F,CAAC,mBAAoB,CAAED,SAAU,CAAC,GAAqBC,OAAQ,KAC/D,CAAC,kBAAmB,CAAED,SAAU,CAAC,EAAoB,EAAgB,GAAeC,OAAQ,CAAC,EAAqB,EAAyB,KAC3I,CAAC,kBAAmB,CAAED,SAAU,CAAC,GAAiBC,OAAQ,CAAC,KAC3D,CAAC,oBAAqB,CAAED,SAAU,CAAC,GAAiBC,OAAQ,CAAC,KAC7D,CAAC,kBAAmB,CAAED,SAAU,GAAIC,OAAQ,KAC5C,CAAC,mBAAoB,CAAED,SAAU,CAAC,EAAsB,EAAgB,GAAqBC,OAAQ,CAAC,EAA4B,EAAsB,KACxJ,CAAC,oBAAqB,CAAED,SAAU,CAAC,EAAgB,GAAeC,OAAQ,CAAC,KAC3E,CAAC,oBAAqB,CAAED,SAAU,CAAC,EAAsB,EAAqB,EAAoB,EAA4B,EAAyB,EAAsB,EAA0B,EAAgB,EAAoB,GAAeC,OAAQ,KAClQ,CAAC,iBAAkB,CAAED,SAAU,CAAC,EAAgB,GAAqBC,OAAQ,KAC7E,CAAC,qBAAsB,CAAED,SAAU,CAAC,GAAiBC,OAAQ,CAAC,4BAKtC,IAAIrb,IAAI,CAChC,CAAC,gBAAiB,CAAC,IACnB,CAAC,SAAU,CAAC,IACZ,CAAC,gBAAiB,CAAC,IACnB,CAAC,OAAQ,CAAC,yBAKY,IAAIA,IAAI,CAC9B,CAAC,eAAgB,CAAC,IAClB,CAAC,SAAU,CAAC,IACZ,CAAC,gBAAiB,CAAC,IACnB,CAAC,OAAQ,CAAC,wBAKW,IAAIA,IAAI,CAC7B,CAAC,wBAAyB,IAC1B,CAAC,iCAAkC,CAAC,IACpC,CAAC,qCAAsC,CAAC,IACxC,CAAC,8BAA+B,CAAC,IACjC,CAAC,0BAA2B,IAC5B,CAAC,qBAAsB,IACvB,CAAC,6BAA8B,CAAC,IAChC,CAAC,2BAA4B,IAC7B,CAAC,uBAAwB,CAAC,IAC1B,CAAC,0BAA2B,IAC5B,CAAC,uCAAwC,CAAC,IAC1C,CAAC,sBAAuB,IACxB,CAAC,+BAAgC,CAAC,IAClC,CAAC,wBAAyB,CAAC,IAC3B,CAAC,uBAAwB,IACzB,CAAC,0BAA2B,uBAKR,IAAIA,IAAI,CAC5B,CAAC,wBAAyB,CAAC,IAC3B,CAAC,sBAAuB,IACxB,CAAC,qBAAsB,IACvB,CAAC,uBAAwB,CAAC,IAC1B,CAAC,6BAA8B,IAC/B,CAAC,gCAAiC,IAClC,CAAC,4BAA6B,CAAC,IAC/B,CAAC,4BAA6B,IAC9B,CAAC,6BAA8B,IAC/B,CAAC,0BAA2B,IAC5B,CAAC,wBAAyB,IAC1B,CAAC,4BAA6B,CAAC,IAC/B,CAAC,2BAA4B,IAC7B,CAAC,+BAAgC,IACjC,CAAC,yBAA0B,IAC3B,CAAC,sBAAuB,IACxB,CAAC,uBAAwB,IACzB,CAAC,2BAA4B,IAC7B,CAAC,qBAAsB,IACvB,CAAC,qBAAsB,IACvB,CAAC,oBAAqB,IACtB,CAAC,4BAA6B,MChFlClgC,OAAOwC,eAAeg5C,GAAS,aAAc,CAAEnlD,OAAO,iCACvB,EAC/B,MAAMggD,GAAS1wC,GACT81C,GAAgB71C,GAChB0wC,GAAWxwC,2BACjB,SAA8B2I,EAASO,SAC7BmhC,EAAYkG,GAAO7nC,UAAUjT,UAAK,EAAWkT,GAC7CyhC,EAAamG,GAAO1nC,WAAWpT,UAAK,EAAWyT,GAC/C0oC,EAAa,CACfA,WAAYrB,GAAOhG,IAAIgG,GAAO3sC,SAASymC,EAAU,qBAE/CuL,EAAyBvyC,GAC3BwyC,UAAWtF,GAAOhG,IAAIgG,GAAO3sC,SAASymC,EAAU,oBAC7CuH,cAEoBkE,EAAYC,EAAcC,SAC3CtxC,EAAQ,GACRuxC,EAAuBC,GAAoBhtC,EAC5C/K,IAAI43C,GACJ/6C,gBACGkD,SACiD,UAAvB43C,EAAW33C,IAAIxR,UAAuB,IAAPuR,EAAgBA,EAAK,IAC3DJ,UAAWo4C,EAAgBxvC,SAASpX,kBAEnD6mD,GAAWV,OAAEA,WAAQD,MAAeG,GAAcS,eAAgB,OACpEF,EAAkB,IAAIT,KAAWD,KACjCvoD,KAAK,CACPkJ,SAAeoB,EAAKsQ,WAAW1J,IAAI,IAAIoyC,GAAOnzC,KAAK,CAAC,YAAc+4C,EAClE39C,KAAMw9C,EAAQC,EAAoBC,eAGpCjpD,KAAK,CAAEkJ,UAAY,EAAMqC,KAAMw9C,EAAQD,KACtCxF,GAAO9rC,WAAWC,SAEvBqzD,EAAwBzhB,EAAkBX,GAAcY,eAAgB,0BAA+BnM,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAMhR,aAAgBlI,MAAQkI,EAAO,2BAC1L4/D,EAAuB1hB,EAAkBX,GAAcc,cAAe,yBAA8BrM,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAMhR,aAAgBlI,MAAQkI,EAAO,0BACvLs+C,EAAyBJ,EAAkBX,GAAcgB,kBAAmB,oBAAyBvM,EAAW,CAAErhC,KAAM3Q,MACxHw+C,EAAuBN,EAAkBX,GAAckB,gBAAiB,kBAAuBzM,EAAW,CAAErhC,KAAM3Q,QAChH8xC,SAAS,aAAcqG,GAAOjtC,IAAIitC,GAAOjG,WAAW,CACxDj9C,KAAMkjD,GAAOhG,IAAIH,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAMF,EAAY/K,IAAI,yBACrF24C,MAAOvG,GAAOhG,IAAIgG,GAAO3sC,SAAS2sC,GAAOjtC,IAAIitC,GAAOjG,WAAWjnC,GAC3D0zC,MAAO1M,EAAU,mBACjB2M,YAAazG,GAAOhG,IAAIF,EAAU,oBAClC/nC,QAASiuC,GAAO3sC,SAASymC,EAAU,gBAChCuL,GACJ,CAAEnzC,SAAU,OAAQrU,QAAS,cAAgB,CAC5C+I,QAAS,KAAO,CACZ4/C,MAAO,EACPz0C,QAAS,CAAC,CACFjV,KAAM,iBACN4G,KAAM,0BAItB4hD,UAAWtF,GAAOhG,IAAIgG,GAAO3sC,SAASymC,EAAU,oBACjD,CAAEj8C,QAAS,eAAiB,CAC3B+I,QAAS,KAAO,CACZ2/C,MAAO,CAAC,CACAC,MAAO,EACPz0C,QAAS,CAAC,CACFjV,KAAM,iBACN4G,KAAM,iCAKxBgjD,EAAY,CACdv0C,gBACQxE,SACgC,UAAtB3G,EAAKwF,MAAMoB,aAA0B,IAAPD,OAAgB,EAASA,EAAGlR,QAAU,IAC1E,CAAC,yBAA0B,kBAAmB,sBAAsB0Z,SAASnP,EAAKtK,KAAK,QAAQkR,WAGvG+rC,SAAS,aAAcqG,GAAOjtC,IAAIitC,GAAOjG,WAAW,CACxDj9C,KAAM+8C,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,0BAC1D8tC,OAAQ3G,GAAOhG,IAAIgG,GAAOjtC,IAAIitC,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,IAAMmzC,IAC5EE,QAAS5G,GAAOhG,IAAIgG,GAAOjtC,IAAIitC,GAAO9pC,WAAW,CAAEN,SAAS,IAAS8wC,KACpE1G,GAAOtpC,QAAS,CAAC,CAAEha,KAAM,UACzBsjD,GAAOrpC,MAAO,CACXkwC,yBAA0B/zC,GACtBnW,SAAUqjD,GAAO3sC,SAASymC,EAAU,gBACjCuL,GAEPyB,oBAAqBh0C,GACjBpP,KAAMm2C,KACHwL,GAEP0B,kBAAmBj0C,GACfnW,SAAUqjD,GAAO3sC,SAASymC,EAAU,gBACjCuL,GAEP2B,iBAAkBl0C,GACdpP,KAAMm2C,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WACvDwsC,GAEP4B,uBAAwBn0C,GACpBpP,KAAMm2C,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,kBACvDwsC,GAEP6B,qBAAsBp0C,GAClBnW,SAAUqjD,GAAO3sC,SAASymC,EAAU,gBACjCuL,GAEP8B,gBAAiBr0C,GACbpP,KAAMm2C,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,eAC1DuuC,OAAQpH,GAAOhG,IAAIgG,GAAO/sC,gBACvBoyC,KAGZ,CAAExnD,QAAS,eAAiB,CAC3B+I,QAAS,KAAO,CACZ9J,KAAM,iBACN4G,KAAM,yBAGNi2C,SAAS,gBAAiBqG,GAAOjtC,IAAIitC,GAAOjG,WAAW,CAC3DiH,SAAUymB,GACTznB,GAAOtpC,QAAS,CAAC,CAAEha,KAAM,cACzBsjD,GAAOrpC,MAAOspC,GAASsnB,cAAclmB,EAAYgF,EAAsBF,IACzE,CAAEj0C,SAAU,WAAYrU,QAAS,aAAe,CAC/C+I,QAAS,KAAO,CACZo6C,SAAU,sBACVthC,MAAO,SAGPi6B,SAAS,iBAAkBqG,GAAOjtC,IAAIitC,GAAOjG,WAAW,CAC5D+K,UAAW0iB,GACVxnB,GAAOtpC,QAAS,CAAC,CAAEha,KAAM,eACzBsjD,GAAOrpC,MAAOspC,GAAS8E,eAAeoB,IACxC,CAAEj0C,SAAU,YAAarU,QAAS,cAAgB,CACjD+I,QAAS,KAAO,CACZk+C,UAAW,0BACXpJ,OAAQ,UAGR/B,SAAS,qBAAsBqG,GAAOjtC,IAAIitC,GAAOjG,WAAW,CAChEsP,UAAWxP,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,eAC/DnV,KAAMm2C,IACNyP,OAAQxP,EAAU,mBAClByP,UAAW1P,EAAW,CAAErhC,KAAM,CAAC,WAAY,gBAAiB,oBAC5DgxC,KAAMxJ,GAAOyJ,aAAa5P,EAAW,CAAErhC,KAAM,WAC9C,CAAE3a,QAAS,uBAAyB,CACnC+I,QAAS,KAAO,CACZyiD,UAAW,+BACX3lD,KAAM,GACN4lD,OAAQ,EACRC,UAAW,WACXC,KAAM,2BCnJlB7/C,OAAOwC,eAAeu9C,GAAS,aAAc,CAAE1pD,OAAO,kCACtB,EAChC,MAAMggD,GAAS1wC,4BAEf,SAA+B8I,EAAShZ,KAE5Bu6C,SAAS,cAAeqG,GAAOjtC,IAAIitC,GAAOjG,WAAW,CACzD4P,KAAM3J,GAAOjtC,IAAIitC,GAAOjG,WAAW,CAC/B6P,YAAa5J,GAAOjtC,IAAIitC,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAL3C,EAKqErN,IALrE,IAKkG,CAC9GU,QAAS,IANG,EAOZ+L,UAAW,CAAC+0D,EAAIrmE,IAPJ,IAOUA,EACtBuR,OAAQ,IAAM,CAAC,CAAElP,KAAM,cAAeyK,OAAQ,CARlC,GAQyD8J,SARzD,MAUhBqoC,YAAaN,GAAO7nC,UAAUC,EAAS,oBACvC,CACAxR,QAAS,KAAO,CACZgjD,YAbY,EAcZtJ,YAAa,SAGrB,CACA15C,QAAS,KAAO,CACZ+iD,KAAM,CACFC,YApBY,EAqBZtJ,YAAa,oBCxB7B32C,OAAOwC,eAAewmD,GAAS,aAAc,CAAE3yD,OAAO,kCACtB,EAChC,MAAMggD,GAAS1wC,4BACf,SAA+B8I,EAASO,SAC9BmhC,EAAYkG,GAAO7nC,UAAUjT,UAAK,EAAWkT,GAC7CyhC,EAAamG,GAAO1nC,WAAWpT,UAAK,EAAWyT,GAC/C4jC,EAAcyD,GAAO/qC,WAAW,CAClC,CACInY,KAAM,SACNmL,KAAM4xC,IACN3kC,UAA2B,kBAAN7T,GAAgC,iBAANA,EAAkBA,EAAEyN,WAAa,IAEpF,CACIhS,KAAM,SACNmL,KAAM+3C,GAAO9pC,aACbhB,UAA2B,iBAAN7T,EAAkByS,SAASzS,GAAK,GAEzD,CACIvE,KAAM,SACNmL,KAAM+3C,GAAOjG,WAAW,CACpBxmC,IAAKysC,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAEN,SAAS,KAC7C1P,IAAK85C,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAEN,SAAS,OAEjDV,UAA2B,iBAAN7T,EAAmB,CAAEkS,IAAKlS,EAAG6E,IAAK7E,GAAQ,IAEnE,CACIvE,KAAM,UACNmL,KAAM+3C,GAAO/sC,cACbiC,UAAmB,SAAN7T,GAAsB,IAANA,OAG7Bs4C,SAAS,iBAAkBqG,GAAOjG,WAAW,CACjDoJ,MAAOnD,GAAOhG,IAAIgG,GAAO3sC,SAASwmC,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,YACtF4jC,IAAKuD,GAAOhG,IAAIH,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gBACpE6G,MAAOo6B,EAAU,cACjB4C,WAAY5C,EAAU,cACtB6C,OAAQqD,GAAOhG,IAAIH,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,aACvE+jC,IAAKoD,GAAOhG,IAAIH,EAAW,CAAEnhC,UAAW,MAAOvK,OAAQ,CAAEkL,SAAU,CAAEnH,SAAU,iBAAkBf,GAAI,CAAC,MAAO,CAAEzU,KAAM,cACrHmgD,aAAcmD,GAAOhG,IAAIgG,GAAO3sC,SAASymC,EAAU,4BACpD,CAAEj8C,QAAS,YACN87C,SAAS,wBAAyBqG,GAAOjG,WAAW,CACxDgC,YAAaiE,GAAOhG,IAAIH,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,kBAC5EikC,OAAQhD,EAAU,eACnB,CAAEj8C,QAAS,mBACN87C,SAAS,kBAAmBqG,GAAOjG,WAAW,CAClDqe,OAAQpY,GAAOhG,IAAIgG,GAAO3sC,SAASwmC,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,aACvF4jC,IAAKuD,GAAOhG,IAAIH,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBACpE+jC,IAAKoD,GAAOhG,IAAIH,EAAW,CAAEnhC,UAAW,MAAOvK,OAAQ,CAAEkL,SAAU,CAAEnH,SAAU,kBAAmBf,GAAI,CAAC,MAAO,CAAEzU,KAAM,eACtHsF,MAAOg+C,GAAOhG,IAAIgG,GAAOzqC,QAAQskC,IAAc0C,EAAa,CAAE/mC,WAAY,CAAEkD,UAAW,kBAAmBvK,OAAQ,CAAEgD,GAAI,CAAC,MAAO,CAAEzU,KAAM,gBACzI,CAAEmB,QAAS,aACN87C,SAAS,kBAAmBqG,GAAOjG,WAAW,CAClDgD,MAAOiD,GAAOhG,IAAIH,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,YACtE4jC,IAAKuD,GAAOhG,IAAIH,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBACpE7W,MAAOg+C,GAAOhG,IAAIgG,GAAOzqC,QAAQskC,IAAc0C,KAChD,CAAE1+C,QAAS,aACN87C,SAAS,qBAAsBqG,GAAOjG,WAAW,CACrDiD,SAAUgD,GAAOhG,IAAIgG,GAAOjG,WAAW,CACnCh6C,EAAG+5C,EAAU,gBACbj6C,EAAGi6C,EAAU,gBACbt1C,EAAGs1C,EAAU,mBAEjBzT,MAAO2Z,GAAOhG,IAAIH,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,sBACtEokC,QAAS+C,GAAOhG,IAAIH,EAAW,CAAErhC,KAAMG,EAAY/K,IAAI,8BAA8BjH,QAAStF,EAAET,MAAM,SACtGs8C,UAAW8C,GAAOhG,IAAIH,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBAC1EskC,MAAO6C,GAAOhG,IAAIgG,GAAOjG,WAAW,CAChCoD,MAAOrD,EAAU,iBAErB8Y,OAAQ5S,GAAOhG,IAAIgG,GAAO/sC,eAC1BunC,MAAOwF,GAAOhG,IAAIF,EAAU,oBAC5BiD,MAAOiD,GAAOhG,IAAIF,EAAU,qBAC7B,CAAEj8C,QAAS,gBACN87C,SAAS,sBAAuBqG,GAAOjG,WAAW,CACtDj9C,KAAM+8C,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,eAC1DwkC,KAAMxD,IACN75C,MAAO85C,EAAU,eAChBkG,GAAOtpC,QAAS,CAAC,CAAEha,KAAM,UACzBsjD,GAAOrpC,MAAO,CACX2mC,kBAAmB,CACfD,KAAMxD,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,YAE9D0kC,oBAAqB,CACjBF,KAAMxD,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WAE9D2kC,iBAAkB,CACdH,KAAMxD,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WAE9D4kC,mBAAoB,CAChBJ,KAAMxD,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WAE9D6kC,sBAAuB,CACnBL,KAAMxD,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WAE9D8kC,oBAAqB,CACjBN,KAAMxD,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WAE9D+kC,mBAAoB,CAChBP,KAAMxD,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,kBAE9DglC,sBAAuB,CACnBR,KAAMxD,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,kBAE9DilC,mBAAoB,CAChBT,KAAMxD,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,wBAI9D8gC,SAAS,mBAAoBqG,GAAOjG,WAAW,CACnDgE,SAAUiC,GAAOhG,IAAIH,EAAW,CAAErhC,KAAM,cACxC8I,MAAOw4B,EAAU,cACjBkE,aAAcgC,GAAOhG,IAAIgG,GAAOzqC,QAAQskC,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,kBAAqBmnC,GAAO/qC,WAAW,CAC/H,CAAEnY,KAAM,UAAWmL,KAAM+3C,GAAO/sC,cAAeiC,WAAa,GAC5D,CACIpY,KAAM,SAAUmL,KAAM+3C,GAAOzqC,QAAQskC,IAAcmG,GAAO/sC,oBAGlEgrC,QAAS+B,GAAOhG,IAAIgG,GAAOzqC,QAAQskC,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,aAAgBmnC,GAAO/sC,gBAC9GirC,MAAO8B,GAAOhG,IAAIgG,GAAO3sC,SAASymC,EAAU,yBAC5C6tB,WAAY3nB,GAAOhG,IAAIF,EAAU,sBAClC,CAAEj8C,QAAS,cACN87C,SAAS,0BAA2BqG,GAAOjG,WAAW,CAC1DoE,UAAWrE,EAAU,cACrBsE,SAAUtE,EAAU,cACpBuE,QAAS2B,GAAOhG,IAAIgG,GAAO/sC,eAC3BqrC,QAAS0B,GAAOhG,IAAIgG,GAAO/sC,gBAC5B,CAAEpV,QAAS,qBACN87C,SAAS,qBAAsBqG,GAAOjG,WAAW,CACrDh6C,EAAG+5C,EAAU,gBACbj6C,EAAGi6C,EAAU,gBACbt1C,EAAGs1C,EAAU,gBACbyE,SAAUzE,EAAU,gBACpB0E,WAAY1E,EAAU,iBACvB,CAAEj8C,QAAS,gBACN87C,SAAS,mBAAoBqG,GAAOjG,WAAW,CACnDj9C,KAAMkjD,GAAOhG,IAAIH,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,cAAeC,UAAU,MAC9F8jC,IAAKoD,GAAOhG,IAAIH,EAAW,CAAEnhC,UAAW,MAAOvK,OAAQ,CAAEkL,SAAU,CAAEnH,SAAU,mBAAoBf,GAAI,CAAC,MAAO,CAAEzU,KAAM,cACvH+hD,KAAMuB,GAAOhG,IAAIH,EAAW,CAAEnhC,UAAW,UACzClR,SAAUw4C,GAAOhG,IAAIF,EAAU,uBAC/B8tB,YAAa5nB,GAAOhG,IAAIF,EAAU,uBAClChV,SAAUkb,GAAOhG,IAAIF,EAAU,uBAC/BvzC,MAAOy5C,GAAOhG,IAAIgG,GAAOjG,WAAW,CAChC2E,WAAYsB,GAAOhG,IAAIgG,GAAO/sC,eAC9B0rC,YAAaqB,GAAOhG,IAAIgG,GAAO/sC,eAC/B2rC,aAAcoB,GAAOhG,IAAIgG,GAAO/sC,eAChC4rC,YAAamB,GAAOhG,IAAIgG,GAAO/sC,eAC/B6rC,QAASkB,GAAOhG,IAAIgG,GAAO/sC,kBAE/B8rC,UAAWiB,GAAOhG,IAAIgG,GAAOzqC,QAAQskC,EAAW,CAAErhC,KAAM,SAAWshC,EAAU,oBAC7EkF,OAAQgB,GAAOhG,IAAIF,EAAU,qBAC7B+Y,QAAS7S,GAAOhG,IAAIF,EAAU,qBAC9B+tB,UAAW7nB,GAAOhG,IAAIF,EAAU,qBAChCgZ,gBAAiB9S,GAAOhG,IAAIF,EAAU,qBACtCguB,eAAgB9nB,GAAOhG,IAAIgG,GAAOjG,WAAW,CACzCguB,mBAAoB/nB,GAAOhG,IAAIF,EAAU,eACzCkuB,cAAehoB,GAAOhG,IAAIF,EAAU,wBAExCiZ,aAAc/S,GAAOhG,IAAIgG,GAAOjG,WAAW,CACvCiZ,cAAehT,GAAOhG,IAAIgG,GAAO/sC,kBAErCgsC,QAASe,GAAOhG,IAAIgG,GAAOzqC,QAAQskC,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gBAAmBihC,EAAU,8BACrH,CAAEj8C,QAAS,cACN87C,SAAS,0BAA2BqG,GAAOjG,WAAW,CAC1DmF,aAAcc,GAAOhG,IAAIgG,GAAO/sC,eAChCksC,QAASa,GAAOhG,IAAIgG,GAAO/sC,eAC3BmsC,SAAUY,GAAOhG,IAAIgG,GAAO/sC,eAC5BosC,cAAeW,GAAOhG,IAAIgG,GAAO/sC,eACjCqsC,aAAcU,GAAOhG,IAAIgG,GAAO/sC,eAChCssC,eAAgBS,GAAOhG,IAAIgG,GAAO/sC,eAClCusC,yBAA0BQ,GAAOhG,IAAIgG,GAAO/sC,eAC5CwsC,eAAgBO,GAAOhG,IAAIgG,GAAO/sC,eAClCysC,cAAeM,GAAOhG,IAAIF,EAAU,qBACpC6F,cAAeK,GAAOhG,IAAIF,EAAU,sBACrC,CAAEj8C,QAAS,qBACN87C,SAAS,mBAAoBqG,GAAOjG,WAAW,CACnD6F,MAAO9F,EAAU,gBACjB+F,MAAO/F,EAAU,gBACjBgG,QAASE,GAAOhG,IAAIgG,GAAO/sC,eAC3BysC,cAAeM,GAAOhG,IAAIF,EAAU,qBACpCh9C,KAAMkjD,GAAOhG,IAAIF,EAAU,6BAC5B,CAAEj8C,QAAS,uBClLlB8L,OAAOwC,eAAe09C,GAAS,aAAc,CAAE7pD,OAAO,8BAC1B,EAC5B,MAAMggD,GAAS1wC,wBACf,SAA2B8I,EAASO,SAC1BmhC,EAAYkG,GAAO7nC,UAAUjT,UAAK,EAAWkT,GAC7CyhC,EAAamG,GAAO1nC,WAAWpT,UAAK,EAAWyT,KAC7CghC,SAAS,SAAUqG,GAAOjtC,IAAIitC,GAAOjG,WAAW,CACpDj9C,KAAM+8C,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,wBACzDmnC,GAAOtpC,QAAS,CAAC,CAAEha,KAAM,UACzBsjD,GAAOrpC,MAAO,CACXmzC,4BAA6B,CACzBC,MAAO/J,GAAOhG,IAAIH,EAAW,CAAErhC,KAAM,eAAgBS,YAAY,KACjE+wC,QAAShK,GAAO3sC,SAASwmC,KACzB78C,IAAKgjD,GAAOzqC,QAAQskC,IACpBC,EAAU,sBACVlsB,OAAQksB,EAAU,kBAEtBmQ,+BAAgC,CAC5BF,MAAO/J,GAAOhG,IAAIH,KAClBqQ,YAAalK,GAAO3sC,SAASymC,EAAU,sBACvClsB,OAAQksB,EAAU,kBAEtBqQ,qBAAsB,CAClBJ,MAAO/J,GAAOhG,IAAIH,KAClBuQ,WAAYtQ,EAAU,qBACtBlsB,OAAQisB,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,UAC5DqoC,WAAYlB,GAAOhG,IAAIgG,GAAO9pC,cAC9Bm0C,YAAarK,GAAOhG,IAAIgG,GAAOjtC,IAAIitC,GAAO9pC,WAAW,CAAEN,SAAS,IAAS,CAAEhP,QAAS,IAAM,QAE9F0jD,qBAAsB,CAClBP,MAAO/J,GAAOhG,IAAIH,KAClBuQ,WAAYtQ,EAAU,qBACtBlsB,OAAQisB,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,UAC5DqoC,WAAYlB,GAAOhG,IAAIgG,GAAO9pC,cAC9Bm0C,YAAarK,GAAOhG,IAAIgG,GAAOjtC,IAAIitC,GAAO9pC,WAAW,CAAEN,SAAS,IAAS,CAAEhP,QAAS,IAAM,QAE9F2jD,oBAAqB,CACjBR,MAAO/J,GAAOhG,IAAIH,KAClBuQ,WAAYtQ,EAAU,qBACtBlsB,OAAQisB,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,UAC5DqoC,WAAYlB,GAAOhG,IAAIgG,GAAO9pC,cAC9Bm0C,YAAarK,GAAOhG,IAAIgG,GAAOjtC,IAAIitC,GAAO9pC,WAAW,CAAEN,SAAS,IAAS,CAAEhP,QAAS,IAAM,QAE9F4jD,6BAA8B,CAC1BT,MAAO/J,GAAOhG,IAAIH,KAClBuQ,WAAYtQ,EAAU,qBACtBlsB,OAAQisB,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,UAC5DqoC,WAAYlB,GAAOhG,IAAIgG,GAAO9pC,cAC9Bm0C,YAAarK,GAAOhG,IAAIgG,GAAOjtC,IAAIitC,GAAO9pC,WAAW,CAAEN,SAAS,IAAS,CAAEhP,QAAS,IAAM,QAE9F6jD,yBAA0B,CACtBV,MAAO/J,GAAOhG,IAAIH,KAClBuQ,WAAYtQ,EAAU,qBACtBlsB,OAAQisB,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,UAC5D6G,MAAOsgC,GAAO9pC,WAAW,CAAEN,SAAS,KAExC80C,qBAAsB,CAClBX,MAAO/J,GAAOhG,IAAIH,KAClB77C,KAAM87C,EAAU,4BAChB6Q,SAAU7Q,EAAU,4BACpBlsB,OAAQksB,EAAU,oBAG3B,CAAEj8C,QAAS,SAAU0Z,sBAAsB,IAAS,CACnD3Q,QAAS,KAAO,CACZ9J,KAAM,mCAGN68C,SAAS,oBAAqBqG,GAAOjtC,IAAIitC,GAAO/qC,WAAW,CAC/D,CACInY,KAAM,SACNmL,KAAM6xC,EAAU,4BAChB5kC,UAAa7T,EAAE,IAEnB,CACIvE,KAAM,OACNmL,KAAM+3C,GAAO3sC,SAASymC,EAAU,6BAChC5kC,UAAa,CAAC7T,MAElB,CACAuF,QAAS,KAAO,CACZ41C,KAAM,yBAGN7C,SAAS,2BAA4BqG,GAAOjtC,IAAIitC,GAAOjG,WAAW,CACtEyC,KAAMwD,GAAOhG,IAAIH,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WACrE4jC,IAAKuD,GAAOhG,IAAIH,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,kBACpE,CACAjS,QAAS,KAAO,CACZ41C,KAAM,yBAGN7C,SAAS,gBAAiBqG,GAAOjtC,IAAIitC,GAAOjG,WAAW,CAC3DyC,KAAM3C,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,UAC1D6G,MAAOsgC,GAAOhG,IAAIgG,GAAOjtC,IAAIitC,GAAO9pC,WAAW,CAAEN,SAAS,IAAS,CAAEhP,QAAS,IAAM,OACpF,CACAA,QAAS,KAAO,CACZ41C,KAAM,kCCjGlB7yC,OAAOwC,eAAey+C,GAAS,aAAc,CAAE5qD,OAAO,4BAC5B,EAC1B,MAAMggD,GAAS1wC,sBACf,SAAyB8I,EAASO,SACxBkhC,EAAamG,GAAO1nC,WAAWpT,UAAK,EAAWyT,GAC/CkyC,EAAWhjD,GAASm4C,GAAOjtC,IAAIitC,GAAOjG,WAAW,CACnDr5C,QAASs/C,GAAOhG,IAAIgG,GAAO/sC,eAC3BgD,OAAQ+pC,GAAO3sC,SAAS2sC,GAAO/qC,WAAW,CACtC,CACInY,KAAM,SACNmL,KAAM4xC,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAMhR,EAAMiR,UAAU,KAC1E5D,UAAa7T,EAAE8P,IAEnB,CACIrU,KAAM,SACNmL,KAAM+3C,GAAOjG,WAAW,CACpB5oC,GAAI0oC,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAMhR,EAAMiR,UAAU,EAAME,cAAc,KAC5F8xC,SAAU9K,GAAO/sC,gBAErBiC,WAAc,CAAE/D,GAAI9P,SAG7B,CAAExD,QAAS,QAAU,CACpB+I,QAAS,KAAO,CACZqP,OAAQ,SAGR0jC,SAAS,YAAakR,EAAQ,YAC9BlR,SAAS,kBAAmBkR,EAAQ,kBACpClR,SAAS,YAAakR,EAAQ,YAC9BlR,SAAS,eAAgBkR,EAAQ,gBACjClR,SAAS,iBAAkBkR,EAAQ,iBACnClR,SAAS,WAAYkR,EAAQ,oBChCzClhD,OAAOwC,eAAe4+C,GAAS,aAAc,CAAE/qD,OAAO,qCACnB,EACnC,MAAMggD,GAAS1wC,+BACf,SAAkC8I,EAASO,SACjCmhC,EAAYkG,GAAO7nC,UAAUjT,UAAK,EAAWkT,GAC7CyhC,EAAamG,GAAO1nC,WAAWpT,UAAK,EAAWyT,GAC/CqyC,EAAmB3pD,QAAYsM,SAAWtM,aAAa1B,MAAQqrD,EAAgB3pD,EAAE,IAA8D,UAAlDA,MAAAA,OAA6B,EAASA,EAAE+qB,YAAyB,IAAPze,EAAgBA,EAAmB,iBAANtM,EAAiB,GAAKA,MAAAA,OAA6B,EAASA,EAAEyN,cAChP6qC,SAAS,iBAAkBqG,GAAOjtC,IAAIitC,GAAO/qC,WAAW,CAC5D,CACInY,KAAM,SACNmL,KAAM6xC,EAAU,yBAChB5kC,UAAa7T,aAAa1B,MAAyB,iBAAT0B,EAAE,GAAkBA,EAAE,GAAK,CAAE+qB,KAAM4+B,EAAgB3pD,EAAE,KAAsB,iBAANA,EAAiBA,EAAI,CAAE+qB,KAAM4+B,EAAgB3pD,KAEhK,CACIvE,KAAM,OACNmL,KAAM6xC,EAAU,uBAChB5kC,UAAa,CAAC7T,IAElB,CACIvE,KAAM,SACN0X,SAAU,EACVvM,KAAM4xC,IACN3kC,OAAQ81C,GAEZ,CACIluD,KAAM,SACNmL,KAAM+3C,GAAO9pC,aACbhB,iBACUnZ,EAAIkvD,WAAWD,EAAgB3pD,WAC9B6pD,SAASnvD,GAAKA,EAAOsF,EAAI,EAAI,IAG5C,CACIvE,KAAM,UACNmL,KAAM+3C,GAAO/sC,cACbiC,iBACUlW,EAAIgsD,EAAgB3pD,SACb,SAANrC,GAAsB,UAANA,EAAsB,SAANA,IAAiBA,KAGjE,CAAEnB,QAAS,mBAAqB,CAC/B+I,QAAS,KAAO,CACZwlB,KAAM,cAGR++B,EAAe,CACjBt1C,MAAOmqC,GAAOhG,IAAIH,KAClBoZ,KAAMjT,GAAOhG,IAAIH,KACjBuR,KAAMpL,GAAOhG,IAAIgG,GAAO/sC,eACxBo4C,OAAQrL,GAAOhG,IAAIgG,GAAO/sC,eAC1Bq4C,WAAYtL,GAAOhG,IAAIgG,GAAO/sC,eAC9Bs4C,cAAevL,GAAOhG,IAAIgG,GAAO/sC,eACjCu4C,WAAYxL,GAAOhG,IAAIgG,GAAO/sC,eAC9Bw4C,UAAWzL,GAAOhG,IAAIH,KACtB6R,WAAY1L,GAAOhG,IAAIgG,GAAOjG,WAAW,CACrC4R,OAAQ9R,EAAW,CAAErhC,KAAM,CAAC,WAAY,YAAa,cAAe,kBAAmB,cAAe,wBACrGwnC,GAAOtpC,QAAS,CAAC,CAAEha,KAAM,YACzBsjD,GAAOrpC,MAAO,CACXi1C,YAAe,CACX5rD,MAAO65C,KAEXgS,kBAAqB,CACjB7rD,MAAO65C,KAEXiS,UAAa,CACT9rD,MAAO65C,KAEXkS,SAAY,CACR/rD,MAAO65C,KAEXmS,YAAe,CACXhsD,MAAO65C,EAAW,CAAEnhC,UAAW,UAAWvK,OAAQ,CAAE89C,cAAc,EAAMC,cAAc,MAE1FC,gBAAmB,CACfnsD,MAAO65C,EAAW,CAAEnhC,UAAW,UAAWvK,OAAQ,CAAE89C,cAAc,EAAMC,cAAc,UAIlGE,WAAYpM,GAAOhG,IAAIgG,GAAOjG,WAAW,CACrC4R,OAAQ9R,EAAW,CAAErhC,KAAM,CAAC,YAAa,YAAa,kBACrDwnC,GAAOtpC,QAAS,CAAC,CAAEha,KAAM,YACzBsjD,GAAOrpC,MAAO,CACX01C,UAAa,CACTrsD,MAAOggD,GAAOhG,IAAIF,EAAU,mBAC5BoZ,SAAUlT,GAAOhG,IAAIF,EAAU,oBAEnCwS,UAAa,CACTtsD,MAAOggD,GAAOhG,IAAIH,EAAW,CAAEnhC,UAAW,MAAOvK,OAAQ,CAAE2pC,OAAQ,0BACnEob,SAAUlT,GAAOhG,IAAIgG,GAAOjG,WAAW,CACnC5oC,GAAI0oC,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,UACxD6G,MAAOsgC,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAEN,SAAS,KAC/C6mC,IAAKuD,GAAOhG,IAAIH,EAAW,CAAEnhC,UAAW,MAAOvK,OAAQ,CAAEkL,SAAU,CAAEnH,SAAU,iBAAkBf,GAAI,CAAC,MAAO,CAAEzU,KAAM,gBAG7H6vD,YAAe,CACXvsD,MAAOggD,GAAOhG,IAAIgG,GAAOjG,WAAW,CAChCr2C,KAAMs8C,GAAOhG,IAAIH,KACjB/8C,KAAMkjD,GAAOhG,IAAIH,KACjB1oC,GAAI6uC,GAAOhG,IAAIH,QAEnBqZ,SAAUlT,GAAOhG,IAAIgG,GAAOjtC,IAAIitC,GAAOjG,WAAW,CAC9Cr2C,KAAMs8C,GAAOhG,IAAIF,EAAU,mBAC3Bh9C,KAAM+8C,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBAC1D1H,GAAI0oC,EAAW,CAAEnhC,UAAW,WAC5B,CACA9R,QAAS,KAAO,CACZ9J,KAAM,gBACNqU,GAAI,iDAMxByN,MAAOohC,GAAOhG,IAAIF,EAAU,2BAExBH,SAAS,wBAAyBqG,GAAOjtC,IAAIitC,GAAO/qC,WAAW,CACnE,CACInY,KAAM,OACN8I,SAAyB,iBAANvE,EACnB6T,WAAc,CAAEkX,KAAM,KACtB5X,YACAvM,KAAM+3C,GAAOjG,WAAWjnC,GACpBsZ,KAAMytB,KACHsR,KAGX,CACIruD,KAAM,cACN8I,cAAoE,kBAA1B,EAASvE,EAAEmrD,WACrDt3C,WAAc,CAAEs3C,UAAW,KAC3BvkD,KAAM+3C,GAAOjG,WAAWjnC,GACpB05C,UAAW3S,IACX4S,KAAMzM,GAAOhG,IAAIF,EAAU,yBACxBqR,KAGX,CACIruD,KAAM,QACN8I,cAAgE,kBAAtB,EAASvE,EAAEqrD,OACrDx3C,WAAc,CAAEw3C,MAAO,KACvBzkD,KAAM+3C,GAAOjG,WAAWjnC,GACpB45C,MAAO1M,GAAOjG,WAAW,CACrBr2C,KAAMm2C,EAAW,CAAEnhC,UAAW,SAAUvK,OAAQ,CAAEm7C,OAAQ,SAAUxsD,KAAM,WAAY6vD,eAAe,KACrGC,UAAW/S,EAAW,CAAEnhC,UAAW,cACnC1Y,MAAOggD,GAAOhG,IAAIH,QAEnBsR,KAGX,CACIruD,KAAM,WACN8I,cAAmE,kBAAzB,EAASvE,EAAEwrD,UACrD33C,WAAc,CAAE23C,SAAU,KAC1B5kD,KAAM+3C,GAAOjG,WAAWjnC,GACpB+5C,SAAUhT,EAAW,CAAEnhC,UAAW,SAAUvK,OAAQ,CAAEm7C,OAAQ,WAAYxsD,KAAM,cAChFmrE,UAAWjoB,GAAOhG,IAAIF,EAAU,oBAC7BqR,KAGX,CACIruD,KAAM,UACN8I,cAAkE,kBAAxB,EAASvE,EAAEyrD,SACrD53C,WAAc,CAAE43C,QAAS,KACzB7kD,KAAM+3C,GAAOjG,WAAWjnC,GACpBg6C,QAASjT,EAAW,CAAErhC,KAAM,UAAWS,YAAY,KAChDkyC,KAGX,CACIruD,KAAM,MACN8I,cAA8D,kBAApB,EAASvE,EAAEu7C,KACrD1nC,WAAc,CAAE0nC,IAAK,KACrB30C,KAAM+3C,GAAOjG,WAAWjnC,GACpB8pC,IAAK/C,EAAW,CAAEnhC,UAAW,aAC7B8hC,MAAOwF,GAAOhG,IAAIH,EAAW,CAAEnhC,UAAW,SAAUvK,OAAQ,CAAE+uC,UAAW,EAAGnnC,WAAW,MACvF6kC,OAAQoF,GAAOhG,IAAIH,EAAW,CAAEnhC,UAAW,SAAUvK,OAAQ,CAAEm7C,OAAQ,WAAYxsD,KAAM,eACzFggC,QAASkjB,GAAOhG,IAAIH,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,eACxEk0C,UAAW/M,GAAOhG,IAAIgG,GAAO/sC,eAC7Bg1D,UAAWjoB,GAAOhG,IAAIF,EAAU,oBAC7BqR,MAGZ,CAAEttD,QAAS,wBAAyBu8C,cAAe,0BAA4B,CAC9ExzC,QAAS,KAAO,CACZwlB,KAAM,UAGNutB,SAAS,sBAAuBqG,GAAOjtC,IAAIitC,GAAO3sC,SAASymC,EAAU,mBAAoB,CAC7FlzC,QAAS,IAAM,CAAC,CACRwlB,KAAM,yBC7LtBziB,OAAOwC,eAAegnD,GAAS,aAAc,CAAEnzD,OAAO,6BAC3B,EAC3B,MAAMggD,GAAS1wC,uBACf,SAA0B8I,EAASO,SACzBkhC,EAAamG,GAAO1nC,WAAWpT,UAAK,EAAWyT,KAC7CghC,SAAS,QAASqG,GAAOjtC,IAAIitC,GAAOjG,WAAW,CACnDqZ,gBAAiBvZ,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,0CACrEoF,MAAO+hC,GAAO9pC,aACd+7C,MAAOjS,GAAO9pC,aACdsuB,YAAawb,GAAO9pC,aACpBm9C,SAAUrT,GAAO9pC,aACjBo9C,cAAezZ,EAAW,CAAErhC,KAAM,CAAC,OAAQ,OAAQ,UACnD+6C,qBAAsBvT,GAAOhG,IAAIH,EAAW,CAAErhC,KAAM,CAAC,OAAQ,aAC7DtG,SAAU2nC,EAAW,CAAErhC,KAAM,mBAC7Bg7C,sBAAuBxT,GAAOhG,IAAIgG,GAAO/sC,eACzCwgD,2BAA4BzT,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAE3C,IAAK,EAAGrN,IAAK,KACxE+4C,QAASe,GAAOjG,WAAW,CACvB2Z,UAAW1T,GAAO9pC,WAAW,CAAEL,OAAO,IACtC89C,UAAW3T,GAAO9pC,WAAW,CAAEL,OAAO,IACtC+9C,YAAa5T,GAAO9pC,WAAW,CAAEL,OAAO,IACxCg+C,gBAAiB7T,GAAO9pC,WAAW,CAAEL,OAAO,IAC5Ci+C,YAAa9T,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAEL,OAAO,KACnDk+C,cAAe/T,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAEL,OAAO,KACrDm+C,qBAAsBhU,GAAOhG,IAAIH,EAAW,CAAErhC,KAAM,CAAC,OAAQ,cAAe,YAC5Ey7C,cAAejU,GAAOhG,IAAIH,KAC1Bqa,WAAYlU,GAAOhG,IAAIgG,GAAOjG,WAAW,CACrCoa,MAAOta,IACPua,WAAYpU,GAAO9pC,WAAW,CAAEN,SAAS,IACzCy+C,oBAAqBrU,GAAO9pC,WAAW,CAAEN,SAAS,IAClDpI,OAAQwyC,GAAO9pC,gBAEnBo+C,gBAAiBtU,GAAOhG,IAAIgG,GAAOjG,WAAW,CAC1Coa,MAAOta,IACP0a,YAAavU,GAAO9pC,WAAW,CAAE3C,IAAK,EAAGrN,IAAK,OAElDsuD,MAAOxU,GAAOhG,IAAIgG,GAAOjG,WAAW,CAChCoa,MAAOta,IACP4a,UAAWzU,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,IACnDmhD,UAAW1U,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,IACnDohD,sBAAuB3U,GAAO/sC,iBAElC2hD,SAAU5U,GAAOhG,IAAIgG,GAAOjG,WAAW,CACnCpqC,QAASqwC,GAAOjG,WAAW,CACvBj9C,KAAM+8C,MAEV2N,YAAaxH,GAAO9pC,WAAW,CAAE3C,IAAK,EAAGrN,IAAK,SAGtD2uD,OAAQ7U,GAAO3sC,SAASwmC,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,6CAC5Ei8C,SAAU9U,GAAOzqC,QAAQskC,EAAW,CAAErhC,KAAM,CACpC,UACA,WACA,UACA,6BACA,iBACA,gBACA,UACEwnC,GAAOjtC,IAAIitC,GAAO3sC,SAAS2sC,GAAOjG,WAAW,CACnDj9C,KAAM+8C,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBAC1D8tC,OAAQ3G,GAAO9pC,WAAW,CAAEN,SAAS,IACrCm/C,SAAU/U,GAAO9pC,WAAW,CAAEN,SAAS,IACvCo/C,SAAUhV,GAAO9pC,WAAW,CAAEN,SAAS,OACtC,CACD1D,SAAU,IAAM,OAChBtL,QAAS,IAAM,CAAC,CACR9J,KAAM,gBACN6pD,OAAQ,OAGpBsO,YAAajV,GAAOzqC,QAAQskC,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBAAoBmnC,GAAOjtC,IAAIitC,GAAOjG,WAAW,CAC7Hmb,cAAelV,GAAO9pC,aACtBi/C,OAAQnV,GAAO9pC,cAChB,CAAEhE,SAAU,aAAe,CAC1BtL,QAAS,KAAO,CACZsuD,cAAe,IACfC,OAAQ,OAGhBC,QAASpV,GAAOzqC,QAAQskC,EAAW,CAAErhC,KAAM,CAAC,MAAO,YAAcwnC,GAAOjtC,IAAIitC,GAAO3sC,SAASwmC,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,kCAAqC,CACjLjS,QAAS,IAAM,CAAC,qBAEpB2rD,SAAUvS,GAAO3sC,SAAS2sC,GAAOjtC,IAAIitC,GAAO3sC,SAASwmC,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,mCAAsC,CAAE3G,SAAU,IAAM,cAAgB,CAAEuB,UAAW,MAC/L,CAAE5V,QAAS,UAAY,CACtB+I,QAAS,KAAO,CACZwsD,gBAAiB,kBACjBn1C,MAAO,KACPg0C,MAAO,IACPztB,YAAa,GACb6uB,SAAU,GACVC,cAAe,OACfphD,SAAU,SACV+sC,QAAS,CACLyU,UAAW,QACXC,UAAW,SACXC,YAAa,QACbC,gBAAiB,wBC/FjClqD,OAAOwC,eAAekpD,GAAS,aAAc,CAAEr1D,OAAO,8BAC1B,EAC5B,MAAMggD,GAAS1wC,GACT2wC,GAAW1wC,wBACjB,SAA2B6I,EAASO,SAC1BmhC,EAAYkG,GAAO7nC,UAAUjT,UAAK,EAAWkT,GAC7CyhC,EAAamG,GAAO1nC,WAAWpT,UAAK,EAAWyT,GAC/CuvD,EAAe,CACjBC,kBAAmBloB,GAASqmB,gBAC5B8B,MAAOpoB,GAAOjG,WAAW,CACrBsuB,gBAAiBpoB,GAASqmB,gBAC1BgC,UAAWroB,GAASqmB,gBACpBiC,iBAAkBvoB,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,IAC1Di1D,yBAA0BvoB,GAASqmB,gBACnCmC,+BAAgCzoB,GAAO9pC,aACvCwyD,8BAA+B1oB,GAAO9pC,gBAGxCyyD,EAAa,CACfC,6BAA8B3oB,GAASqmB,gBACvCuC,2BAA4B5oB,GAASqmB,gBACrCwC,YAAa7oB,GAASqmB,cAAc,CAAE/yD,OAASrN,IAAK,OAEhDyzC,SAAS,oBAAqBqG,GAAOjtC,IAAIitC,GAAOjG,WAAW,CAC/Dj9C,KAAM+8C,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,qBAC1DvF,OAAQ0sC,GAAOjG,WAAW,CACtByN,YAAaxH,GAAO9pC,WAAW,CAAE3C,IAAK,EAAGrN,IAAK,IAC9CrG,EAAGi6C,EAAU,mBACb9X,OAAQie,GAASqmB,gBACjByC,WAAYjvB,EAAU,mBACtBpK,iBAAkBsQ,GAAO/sC,cACzB+1D,eAAgBhpB,GAAOhG,IAAIgG,GAAOjG,WAAW,CACzCkvB,WAAYjpB,GAAOhG,IAAIgG,GAAO/sC,eAC9Bi2D,UAAWlpB,GAAOhG,IAAIF,EAAU,gBAChCqvB,YAAanpB,GAAOhG,IAAIF,EAAU,gBAClCsvB,WAAYppB,GAAOhG,IAAIF,EAAU,gBACjCuvB,cAAerpB,GAAOhG,IAAIF,EAAU,oBAEvCkG,GAAOtpC,QAAS,CAAC,MAAO,CAAEha,KAAM,UAChCsjD,GAAOrpC,MAAO,CACX2yD,mBAAoBpB,EACpBqB,iBAAkBZ,EAClBa,wBAAyBb,MAGlC,CAAE9qE,QAAS,WAAa,CACvB+I,QAAS,KAAO,CACZ9J,KAAM,iBACNwW,OAAQ,CACJk0C,YAAa,oBCjD7B79C,OAAOwC,eAAempD,GAAS,aAAc,CAAEt1D,OAAO,iCACvB,EAC/B,MAAMggD,GAAS1wC,GACT2wC,GAAW1wC,2BACjB,SAA8B6I,EAASO,SAC7BmhC,EAAYkG,GAAO7nC,UAAUjT,UAAK,EAAWkT,GAC7CyhC,EAAamG,GAAO1nC,WAAWpT,UAAK,EAAWyT,GAC/Ci9C,EAAc,CAChBl2C,MAAOugC,GAASymB,YAAY,CAAEnzD,IAAK,EAAGrN,IAAK,SAEvCyzC,SAAS,uBAAwBqG,GAAOjG,WAAW,CACvDj9C,KAAM+8C,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,wBAC1DvF,OAAQ0sC,GAAOjG,WAAW,EACrBiG,GAAOtpC,QAAS,CAAC,MAAO,CAAEha,KAAM,UAChCsjD,GAAOrpC,MAAO,CACXm/C,yBAA0B,CACtBC,KAAMlc,EAAW,CAAErhC,KAAM,qBAE7BixD,yBAA0B,CACtBC,QAAS7vB,EAAW,CAAErhC,KAAM,CAAC,QAAS,aACtCmxD,8BAA+B3pB,GAAO9pC,WAAW,CAAEN,SAAS,KAEhEogD,mBAAoB,CAChBta,OAAQsE,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,KAEpD0iD,kBAAmBL,EACnBM,wBAAyB,CACrBx2C,MAAOsgC,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,IAC/C4iD,YAAanW,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,IACrD6iD,aAAcpW,GAAO9pC,WAAW,CAAE3C,IAAK,EAAGrN,IAAK,KAEnDmwD,6BAA8BT,EAC9BU,wBAAyB,CACrBC,YAAavW,GAAO9pC,aACpBsgD,YAAaxW,GAAO9pC,WAAW,CAAEN,SAAS,IAC1C6gD,YAAazW,GAAO9pC,WAAW,CAAEN,SAAS,KAE9C8gD,+BAAgC,CAC5BC,qBAAsB3W,GAAO9pC,WAAW,CAAEN,SAAS,IACnDghD,aAAc5W,GAAO9pC,aACrB2gD,aAAc7W,GAAOhG,IAAIgG,GAAO9pC,eAEpC4gD,sBAAuB,CACnBC,MAAOjd,EAAU,wBACjBkd,MAAOld,EAAU,yBAErB8vB,sBAAuB,CACnBpR,UAAW3e,EAAW,CAAErhC,KAAM,oBAElCqxD,oCAAqC,CACjCrR,UAAW3e,EAAW,CAAErhC,KAAM,oBAElC6+C,sBAAuB,CACnB3b,OAAQsE,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,KAEpD+jD,kBAAmB,CACfn6B,OAAQ2c,EAAU,oBAEtBgwB,kCAAmC,CAC/BnL,gBAAiB3e,GAAO9pC,WAAW,CAAEN,SAAS,OAGvD,CAAE/X,QAAS,YAAaqU,SAAU,eACtC,CAAErU,QAAS,YAAaqU,SAAU,gCC/DzCvI,OAAOwC,eAAeurD,GAAS,aAAc,CAAE13D,OAAO,mDACE,EACxD,MAAMggD,GAAS1wC,+BACf,SAAkC8I,EAASO,SACjCmhC,EAAYkG,GAAO7nC,UAAUjT,UAAK,EAAWkT,GAC7CyhC,EAAamG,GAAO1nC,WAAWpT,UAAK,EAAWyT,iBAChCqnC,GAAO/qC,WAAW,CACnC,CACInY,KAAM,SACNmL,KAAM4xC,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,8BAC1D3D,cAEJ,CACIpY,KAAM,SACNmL,KAAM6xC,EAAU,kBAChB5kC,WAAc,CACVyiD,WAAY,CAAC,CACLC,eAAkB,yBAK9Bje,SAAS,iBAAkBqG,GAAOjtC,IAAIitC,GAAOjG,WAAW,CAC5D4d,WAAY3X,GAAO3sC,SAASymC,EAAU,eACvC,CAAEj8C,QAAS,mBAAqB,CAC/B+I,QAAS,KAAO,CACZ+wD,WAAY,CAAC,CACLC,eAAgB,iBAChBC,MAAO,CAAC,CACAC,mBAAoB,CAChBC,eAAgB,yBAEpBC,gBAAiB,CACbD,eAAgB,oCAMpCpe,SAAS,YAAaqG,GAAOjtC,IAAIitC,GAAOjG,WAAW,CACvD6d,eAAgB/d,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,mCACnEmnC,GAAOtpC,QAAS,CAAC,CAAEha,KAAM,oBACzBsjD,GAAOrpC,MAAO,CACXshD,sBAAuB,CACnBC,UAAWlY,GAAO9pC,cAEtBiiD,yBAA0B,CACtBC,OAAQpY,GAAO3sC,SAASymC,EAAU,iBAEtCue,sBAAuB,CACnBC,UAAWtY,GAAO9pC,WAAW,CAAE3C,IAAK,EAAGrN,IAAK,KAEhDqyD,oBAAqB,CACjBC,UAAW3e,EAAW,CAAErhC,KAAM,mBAC9BhL,OAAQwyC,GAAO9pC,WAAW,CAAEN,SAAS,KAEzCm0D,6BAA8B,CAC1B/pE,MAAO65C,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBAE/D4/C,iBAAkB,CACdZ,MAAO7X,GAAO3sC,SAASymC,EAAU,sBAG1C,CAAE5nC,SAAU,WAAYrU,QAAS,cAAgB,CAChD+I,QAAS,KAAO,CACZgxD,eAAgB,iBAChBC,MAAO,CAAC,CACAC,mBAAoB,CAChBC,eAAgB,yBAEpBC,gBAAiB,CACbD,eAAgB,kCAK5Bpe,SAAS,iBAAkBqG,GAAOjtC,IAAIitC,GAAOjG,WAAW,CAC5D2e,mBAAoB1Y,GAAOhG,IAAIF,EAAU,kBACzCge,mBAAoBhe,EAAU,aAC9Bke,gBAAiBle,EAAU,aAC3B6e,aAAc7e,EAAU,eACxB8e,WAAY5Y,GAAOhG,IAAIH,EAAW,CAAEnhC,UAAW,MAAOvK,OAAQ,CAAEkL,SAAU,CAAEnH,SAAU,wBACvF,CAAEA,SAAU,YAAarU,QAAS,mBAAqB,CACtD+I,QAAS,KAAO,CACZkxD,mBAAoB,CAChBC,eAAgB,yBAEpBC,gBAAiB,CACbD,eAAgB,oCAItBc,EAAgB,CAClBC,SAAU9Y,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAE3C,IAAK,EAAGrN,IAAK,IAAK0P,SAAS,KACpEmjD,SAAU/Y,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAE3C,IAAK,EAAGrN,IAAK,IAAK0P,SAAS,KACpEojD,WAAYhZ,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAE3C,IAAK,EAAGrN,IAAK,KACxD+yD,WAAYjZ,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAE3C,IAAK,EAAGrN,IAAK,QAEpDyzC,SAAS,gBAAiBqG,GAAOjG,WAAW,CAChDge,eAAgBle,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,oBACnEmnC,GAAOtpC,QAAS,CAAC,CAAEha,KAAM,oBACzBsjD,GAAOrpC,MAAO,CACXuiD,oCAAqCpmD,GACjCqmD,KAAMtf,EAAW,CAAErhC,KAAM,CAAC,IAAK,IAAK,QACjCqgD,GAEPO,uBAAwBP,IAE7B,CAAEh7D,QAAS,gBAAiB0Z,sBAAsB,OAC7CoiC,SAAS,YAAaqG,GAAOjG,WAAW,CAC5Cge,eAAgBle,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gBACnEmnC,GAAOtpC,QAAS,CAAC,CAAEha,KAAM,oBACzBsjD,GAAOrpC,MAAO,CACX0iD,wBAAyB,CACrB7e,MAAOX,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,YAE/DygD,6BAA8B,CAC1BC,YAAazf,EAAU,gBAE3B0f,+BAAgC,CAC5Bhf,MAAOX,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WAC3D2uC,YAAaxH,GAAO9pC,WAAW,CAAE3C,IAAK,EAAGrN,IAAK,KAElDuzD,oCAAqC,CACjCF,YAAazf,EAAU,eACvB0N,YAAaxH,GAAO9pC,WAAW,CAAE3C,IAAK,EAAGrN,IAAK,KAElDwzD,sBAAuB,CACnBjd,IAAK5C,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,mBAGlE,CAAEhb,QAAS,YAAa0Z,sBAAsB,MCnIrD5N,OAAOwC,eAAewtD,GAAS,aAAc,CAAE35D,OAAO,+BACzB,EAC7B,MAAMggD,GAAS1wC,GACT2wC,GAAW1wC,GAGX8zD,GAAkB5zD,yBACxB,SAA4B2I,EAASO,SAC3BmhC,EAAYkG,GAAO7nC,UAAUjT,UAAK,EAAWkT,GAC7CyhC,EAAamG,GAAO1nC,WAAWpT,UAAK,EAAWyT,GAC/CihD,EAAoB,CACtBC,YAAa7Z,GAAOhG,IAAIgG,GAAO/sC,eAC/B6mD,QAAS9Z,GAAOhG,IAAIgG,GAAO/sC,eAC3B8mD,WAAY/Z,GAAOhG,IAAIgG,GAAO/sC,eAC9B+mD,QAASha,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,KAC5D0mD,QAASja,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,KAC5D2mD,QAASla,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,KAC5D4mD,MAAOna,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,KAC1D6mD,eAAgBtgB,EAAU,wBAC1BugB,aAAcvgB,EAAU,gBACxBwgB,UAAWta,GAAO3sC,SAASymC,EAAU,gBACrCygB,UAAWva,GAAO3sC,SAASymC,EAAU,iBAEnC0gB,EAAa,CACfx4D,MAAO83C,EAAU,eACjB2gB,OAAQxa,GAASymB,YAAY,CAAEnzD,IAAK,EAAGrN,IAAK,IAC5Cw0D,YAAa1a,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,IAC7Dy0D,QAAS3a,GAAO3sC,SAASymC,EAAU,iBAEjC8gB,EAAqB,CACvBC,aAAc/gB,EAAU,wBACxBghB,cAAehhB,EAAU,wBACzBihB,eAAgB/a,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAEN,SAAS,MAEtDo0D,EAAmBhqB,GAAOjG,WAAW,CACvC3xC,OAAQ0xC,EAAU,aAClB93C,MAAO83C,EAAU,iBAEfkhB,EAAY,CACdzzC,KAAMy4B,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,KACtD+jE,+BAAgCjqB,GAAO9pC,WAAW,CAAE3C,IAAK,EAAGrN,IAAK,IACjEy0D,QAAS3a,GAAO3sC,SAAS22D,IAEvB/O,EAAUjb,GAAO/qC,WAAW,CAC9B,CACInY,KAAM,SACNmL,KAAM4xC,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,mCAE9D,CACI/b,KAAM,SACNmL,KAAM6xC,EAAU,wBAErB,CAAEM,cAAe,YACd8vB,EAAwB,CAC1BR,QAAS7vB,EAAW,CAAErhC,KAAM,CAAC,QAAS,aACtCyF,MAAOgiC,GAASymB,YAAY,CAAEnzD,IAAK,EAAGrN,IAAK,MAC3CikE,eAAgBnqB,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,MAChEkkE,0BAA2BpqB,GAAO9pC,WAAW,CAAE3C,IAAK,EAAGrN,IAAK,IAC5DmkE,yBAA0BrqB,GAAO9pC,WAAW,CAAE3C,IAAK,EAAGrN,IAAK,IAC3DokE,kBAAmBtqB,GAAO9pC,WAAW,CAAE3C,IAAK,EAAGrN,IAAK,IACpDqkE,UAAWtqB,GAASymB,cACpB8D,YAAa3wB,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gBACjE4xD,aAAc3wB,EAAU,wBACxB4wB,mBAAoBzP,KAEhBthB,SAAS,qBAAsBqG,GAAOjtC,IAAIitC,GAAOjG,WAAW,CAChEj9C,KAAM+8C,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,sBAC1DvF,OAAQ0sC,GAAOjG,WAAW,EACrBiG,GAAOtpC,QAAS,CAAC,MAAO,CAAEha,KAAM,UAChCsjD,GAAOrpC,MAAO,CACXukD,mBAAoB,CAChB1T,YAAaxH,GAAO9pC,WAAW,CAAE3C,IAAK,EAAGrN,IAAK,KAElDi1D,2BAA4B,CACxBC,MAAOnb,GAASymB,YAAY,CAAEnzD,IAAK,EAAGrN,IAAK,IAC3Ci3B,OAAQ8iB,GAASymB,YAAY,CAAEnzD,IAAK,EAAGrN,IAAK,MAEhDm1D,uBAAwB,CACpBjB,eAAgBtgB,EAAU,yBAE9Bgd,sBAAuB,CACnBwE,UAAWxhB,EAAU,wBACrBmD,QAASge,GAEb0P,6BAA8B,CAC1BrP,UAAWxhB,EAAU,wBACrBmD,QAASge,GAEbM,0BAA2B,CACvBrI,SAAUpZ,EAAU,eACpB0hB,IAAK1hB,EAAU,eACfvyB,KAAM04B,GAASymB,YAAY,CAAEnzD,IAAK,EAAGrN,IAAK,KAC1Cu1D,SAAUxb,GAASymB,YAAY,CAAEnzD,IAAK,EAAGrN,IAAK,MAElDw1D,iBAAkBlB,EAClBoQ,8BAA+B,CAC3BjB,8BAA+B3pB,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,MAC/Ei3B,OAAQ8iB,GAASymB,YAAY,CAAEnzD,IAAK,EAAGrN,IAAK,MAC5Cu0D,OAAQxa,GAASymB,YAAY,CAAEnzD,IAAK,EAAGrN,IAAK,MAC5C2kE,sCAAuC7qB,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,KACvF4kE,iBAAkB9qB,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,KAClE6kE,gCAAiC9qB,GAASymB,YAAY,CAAEnzD,IAAK,EAAGrN,IAAK,MACrE8kE,QAAS/qB,GAASqmB,cAAc,CAAE/yD,IAAK,EAAGrN,IAAK,IAC/C+kE,QAAShrB,GAASqmB,cAAc,CAAE/yD,IAAK,EAAGrN,IAAK,IAC/CglE,uDAAwDlrB,GAAO9pC,WAAW,CAAE3C,IAAK,EAAGrN,IAAK,IACzFilE,4DAA6DnrB,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,KAC7GklE,+CAAgDprB,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,MAEpG01D,wBAAyB,CACrBxtD,MAAO4xC,GAAO/sC,cACd4oD,KAAM7b,GAAOhG,IAAIF,EAAU,eAE/BgiB,sBAAuB,CACnBC,qBAAsB/b,GAAOhG,IAAIgG,GAAO/sC,eACxC+oD,oBAAqBhc,GAAOhG,IAAIF,EAAU,cAC1CmiB,OAAQjc,GAAO3sC,SAAS2sC,GAAOjG,WAAW,CACtCmiB,QAASlc,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAEN,SAAS,KACjDumD,QAASnc,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAEN,SAAS,KACjD6kD,OAAQza,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAEN,SAAS,KAChDunB,OAAQ6iB,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAEN,SAAS,KAChDwmD,QAASpc,GAAOhG,IAAIgG,GAAO/sC,mBAGnCopD,uBAAwB,CACpBr6D,MAAO83C,EAAU,eACjB3c,OAAQ6iB,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,OAE5Do2D,mBAAoB1C,EACpB2C,wBAAyB,CACrBv6D,MAAO83C,EAAU,gBAErBuxB,mBAAoB,CAChBC,0BAA2BtrB,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,IAC3EqlE,kBAAmBvrB,GAAO3sC,SAASwmC,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBACvF2yD,mBAAoBxrB,GAAO3sC,SAASwmC,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBACxF4yD,kBAAmBpI,GAAgBd,WACnCmJ,mBAAoBrI,GAAgBd,YAExCoJ,kBAAmB,CACfvT,OAAQpY,GAAOjG,WAAW,CACtB6xB,iBAAkB9xB,EAAU,wBAC5B+xB,qBAAsB/xB,EAAU,wBAChCgyB,+BAAgChyB,EAAU,wBAC1CiyB,sBAAuBjyB,EAAU,wBACjCkyB,qBAAsBlyB,EAAU,wBAChCmyB,iBAAkBjsB,GAAO3sC,SAASymC,EAAU,gBAC5CoyB,eAAgBryB,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gBACpEszD,eAAgBtyB,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,kBAExE25C,OAAQxS,GAAOjG,WAAW,CACtBqyB,QAASpsB,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAE3C,IAAK,IAAMrN,IAAK,MACxDmmE,YAAarsB,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAE3C,IAAK,IAAMrN,IAAK,MAC5DomE,aAActsB,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAE3C,IAAK,IAAMrN,IAAK,MAC7DqmE,YAAavsB,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAE3C,IAAK,IAAMrN,IAAK,QAEhEsmE,MAAOxsB,GAAOjG,WAAW,CACrB0yB,sBAAuBzsB,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAE3C,IAAK,EAAGrN,IAAK,KACnEwmE,gBAAiB1sB,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAE3C,IAAK,EAAGrN,IAAK,KAC7DymE,mBAAoB3sB,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAE3C,IAAK,EAAGrN,IAAK,GAAI0P,SAAS,OAEjFg3D,iBAAkB5sB,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAE3C,IAAK,EAAGrN,IAAK,KAC9D2mE,gCAAiC7sB,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAE3C,IAAK,EAAGrN,IAAK,KAC7E4mE,4BAA6B9sB,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAE3C,IAAK,EAAGrN,IAAK,KACzE6mE,oCAAqC/sB,GAAOhG,IAAIgG,GAAO/sC,eACvD+5D,oBAAqBhtB,GAAOhG,IAAIiG,GAASymB,YAAY,CAAEnzD,IAAK,EAAGrN,IAAK,MACpE+mE,oBAAqBjtB,GAAOhG,IAAIiG,GAASymB,YAAY,CAAEnzD,IAAK,EAAGrN,IAAK,MACpEgnE,aAAcltB,GAAOhG,IAAIiG,GAASymB,YAAY,CAAEnzD,IAAK,EAAGrN,IAAK,MAC7DinE,eAAgBntB,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAEN,SAAS,KACxDw3D,eAAgBptB,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAEN,SAAS,KACxDy3D,yBAA0BrtB,GAAO9pC,WAAW,CAAEN,SAAS,KAE3D03D,wBAAyB,CACrBC,aAAcvtB,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAE3C,IAAK,EAAGrN,IAAK,GAAI0P,SAAS,KACvE43D,oBAAqBxtB,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAE3C,IAAK,EAAGrN,IAAK,KACjEunE,mBAAoBztB,GAAOhG,IAAIgG,GAAO/sC,eACtCy6D,qBAAsB1tB,GAAOhG,IAAIgG,GAAO/sC,eACxC06D,kBAAmB3tB,GAAOhG,IAAIgG,GAAO/sC,eACrC26D,iBAAkB5tB,GAAO3sC,SAASymC,EAAU,iBAEhD+zB,0BAA2B,CACvBC,UAAWj0B,EAAW,CAAErhC,KAAM,CAAC,KAAM,OAAQ,QAAS,OAAQ,QAAS,UACvEu1D,YAAa/tB,GAAO/sC,cACpB+6D,oBAAqBhuB,GAAO3sC,SAAS2sC,GAAOjG,WAAW,CACnD4M,OAAQ3G,GAAO9pC,WAAW,CAAEN,SAAS,IACrCvS,KAAM48C,GAASymB,iBAEnBuH,cAAen0B,EAAU,wBACzBo0B,cAAep0B,EAAU,yBAE7B0iB,gCAAiC5B,EACjC6B,wBAAyB,CACrBC,UAAW5iB,EAAU,eACrB6iB,YAAa7iB,EAAU,eACvB8iB,WAAY9iB,EAAU,eACtB+iB,iBAAkB/iB,EAAU,eAC5BgjB,QAAS9c,GAAOhG,IAAIgG,GAAO/sC,gBAE/B8pD,8BAA+BnC,EAC/BoC,sBAAuBxC,EACvByC,oBAAqB,CACjBj7D,MAAO83C,EAAU,gBAErBojB,iBAAkB,CACdl7D,MAAO83C,EAAU,gBAErBq0B,4BAA6B,CACzBxE,8BAA+B3pB,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,OAC1FkoE,cAAenuB,GAASymB,YAAY,CAAEnzD,IAAK,EAAGrN,IAAK,KACnDmoE,aAAcpuB,GAASqmB,cAAc,CAAE/yD,IAAK,EAAGrN,IAAK,KACpDooE,uCAAwCtuB,GAAO9pC,WAAW,CAAE3C,IAAK,EAAGrN,IAAK,IACzEqoE,qBAAsBtuB,GAASqmB,cAAc,CAAE/yD,IAAK,GAAKrN,IAAK,KAC9DsoE,qBAAsBvuB,GAASqmB,cAAc,CAAE/yD,IAAK,GAAKrN,IAAK,KAC9DuoE,WAAYxuB,GAASqmB,cAAc,CAAE/yD,IAAK,EAAGrN,IAAK,IAClDwoE,oBAAqB1uB,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,MACrEyoE,uBAAwB3uB,GAAO9pC,WAAW,CAAE3C,IAAK,EAAGrN,IAAK,KAE7Di3D,qCAAsC,CAClC/C,eAAgBtgB,EAAU,yBAE9BsjB,qCAAsC,CAClCp7D,MAAO83C,EAAU,eACjB1xC,OAAQ0xC,EAAU,eAClB2gB,OAAQxa,GAASymB,YAAY,CAAEnzD,IAAK,EAAGrN,IAAK,MAEhDm3D,+BAAgCzD,EAChC2D,gBAAiBvC,EACjBwC,yBAA0B5D,EAC1B6D,oCAAqC,CACjCC,cAAezC,EACf0C,aAAc1C,GAElB2C,4BAA6B,CACzBrL,SAAUvS,GAAO3sC,SAAS2sC,GAAOjG,WAAW,CACxC2B,OAAQsE,GAAO9pC,WAAW,CAAE3C,IAAK,EAAGrN,IAAK,IACzC+2C,QAASge,KAEbr0D,QAASq0D,GAEb2T,iCAAkC,CAC9BjU,QAAS3a,GAAO3sC,SAAS22D,IAE7B6E,wBAAyB,CACrBC,iCAAkC9uB,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,KAClF6oE,YAAa/uB,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,KAC7D8oE,wBAAyBhvB,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,MACzE+oE,uBAAwBjvB,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,OACxEgpE,oBAAqBlvB,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,KACrEipE,4BAA6BnvB,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,KAC7EkpE,gCAAiCpvB,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,MACjFmpE,gCAAiCrvB,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,KACjFopE,iBAAkBz1B,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gBACtE02D,oBAAqBz1B,EAAU,wBAC/B01B,4BAA6B11B,EAAU,wBACvCmD,QAASge,GAEbwU,0BAA2BzU,EAC3B6C,uBAAwB,CACpBn+C,MAAOugC,GAASymB,YAAY,CAAEnzD,IAAK,EAAGrN,IAAK,OAE/C43D,qBAAsB,CAClBtW,YAAaxH,GAAO9pC,WAAW,CAAE3C,IAAK,EAAGrN,IAAK,KAElD63D,yBAA0B,CACtBC,SAAUlkB,EAAU,wBACpBmkB,SAAUje,GAAOhG,IAAIgG,GAAO3sC,SAASymC,EAAU,iBAC/CokB,SAAUle,GAAOhG,IAAIgG,GAAO3sC,SAASymC,EAAU,iBAC/CqkB,YAAane,GAAOhG,IAAIgG,GAAO3sC,SAASymC,EAAU,kBAEtDskB,mCAAoC,CAChC7L,SAAUvS,GAAO3sC,SAAS4nD,IAE9ByU,4BAA6B,CACzBC,eAAgB3vB,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,OAC3E0pE,0BAA2B5vB,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,MACtF2pE,uBAAwB7vB,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,MACnF4pE,2BAA4B9vB,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAE3C,IAAK,EAAGrN,IAAK,MAE5Em4D,2BAA4B,CACxBr8D,MAAO83C,EAAU,eACjBwkB,WAAYte,GAAO9pC,WAAW,CAAEN,SAAS,IACzC2oD,WAAYve,GAAO9pC,WAAW,CAAEN,SAAS,IACzC4oD,qBAAsBxe,GAAO/sC,cAC7BwrD,aAAcze,GAAO3sC,SAASwmC,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,aAEtF6lD,iBAAkB,CACdE,aAAc5e,GAAOhG,IAAIgG,GAAO/sC,eAChC88D,WAAY/vB,GAAOhG,IAAIgG,GAAO/sC,eAC9B4rD,aAAc/kB,EAAU,gBACxBk2B,cAAel2B,EAAU,wBACzBm2B,iBAAkBn2B,EAAU,wBAC5BglB,eAAgBhlB,EAAU,wBAC1Bo2B,iBAAkBp2B,EAAU,wBAC5BklB,aAAchf,GAAOjG,WAAW,CAC5Bj9C,KAAM+8C,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gCAC1DomD,YAAajf,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,KAC7Dg5D,cAAelf,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,KAC/Di5D,cAAenf,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,MAC9D85C,GAAOtpC,QAAS,CAAC,CAAEha,KAAM,UACzBsjD,GAAOrpC,MAAO,CACXw5D,iCAAkC,CAC9BC,YAAanwB,GAASymB,YAAY,CAAEnzD,IAAK,EAAGrN,IAAK,KACjDmqE,sBAAuBrwB,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,QAGnF,CAAE1V,QAAS,iBACduhE,eAAgBpf,GAAOjG,WAAW,CAC9Bj9C,KAAM+8C,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,kCAC1D4hD,OAAQxa,GAASymB,YAAY,CAAEnzD,IAAK,EAAGrN,IAAK,KAC5CsH,OAAQyyC,GAASymB,YAAY,CAAEnzD,IAAK,EAAGrN,IAAK,MAC3C85C,GAAOtpC,QAAS,CAAC,CAAEha,KAAM,UACzBsjD,GAAOrpC,MAAO,CACX0oD,gCAAiC,CAC7BliC,OAAQ6iB,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,MAE5Do5D,gCAAiC,CAC7BniC,OAAQ6iB,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,MAE5Dq5D,iCAAkC,CAC9BpiC,OAAQ6iB,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,MAE5Ds5D,kCAAmC,CAC/BriC,OAAQ6iB,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,MAE5Du5D,qCAAsC,CAClCC,aAAczf,GAASymB,YAAY,CAAEnzD,IAAK,EAAGrN,IAAK,MAEtDy5D,gCAAiC,CAC7BxiC,OAAQ8iB,GAASymB,YAAY,CAAEnzD,IAAK,EAAGrN,IAAK,MAEhDoqE,yCAA0C,CACtCC,eAAgBtwB,GAASymB,YAAY,CAAEnzD,IAAK,EAAGrN,IAAK,MACpDsqE,wBAAyBxwB,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,OAE7E05D,kCAAmC,CAC/BC,aAAc5f,GAASymB,YAAY,CAAEnzD,IAAK,EAAGrN,IAAK,QAG3D,CAAErI,QAAS,iBAAkB0Z,sBAAsB,IACtDuoD,WAAY9f,GAAO3sC,SAAS2sC,GAAOjG,WAAW,CAC1Cj9C,KAAM+8C,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,mCACzDmnC,GAAOtpC,QAAS,CAAC,CAAEha,KAAM,UACzBsjD,GAAOrpC,MAAO,CACXopD,yBAA0B,CACtBC,SAAUlmB,EAAU,yBAExBmmB,oBAAqB,CACjBzY,YAAaxH,GAAO9pC,WAAW,CAAE3C,IAAK,EAAGrN,IAAK,KAElDg6D,kBAAmB,CACf1Y,YAAaxH,GAAO9pC,WAAW,CAAE3C,IAAK,EAAGrN,IAAK,OAGvD,CAAErI,QAAS,qBAElB4yE,6BAA8B,CAC1BC,mBAAoB1wB,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,MACpEyqE,8BAA+B3wB,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,KAC/E0qE,yCAA0C5wB,GAAO9pC,WAAW,CAAE3C,IAAK,EAAGrN,IAAK,KAE/E2qE,6BAA8B3G,EAC9B4G,yCAA0C5G,IAE/C,CAAErsE,QAAS,aACf,CAAEA,QAAS,YAAc,CACxB+I,QAAS,KAAO,CACZ9J,KAAM,sBACNwW,OAAQ,CACJgoD,UAAW,CACPx+D,KAAM,kBACNwW,OAAQ,CACJoM,MAAO,IAGfu9B,QAAS,CACLngD,KAAM,iBACNwW,OAAQ,CACJqrD,gBAAiB,EACjBC,cAAc,EACdC,aAAc,GACdG,aAAc,CACVC,YAAa,EACbC,cAAe,EACfC,cAAe,GAEnBC,eAAgB,CACZ3E,OAAQ,EACRjtD,OAAQ,EACR2vB,OAAQ,aAOxBwc,SAAS,eAAgBqG,GAAOjtC,IAAIitC,GAAOjG,WAAW,CAC1Dj9C,KAAM+8C,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gCAC1DsnD,mBAAoBngB,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAE3C,IAAK,EAAGrN,IAAK,OAC/D85C,GAAOtpC,QAAS,CAAC,CAAEha,KAAM,UACzBsjD,GAAOrpC,MAAO,CACXypD,oCAAqC,CACjC/3C,MAAO23B,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,MAClEm6D,WAAYrgB,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,MACvEo6D,WAAYtgB,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,OAE3Eq6D,sCAAuC,CACnCl4C,MAAO23B,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,MAClEs6D,YAAaxgB,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,MACxEm6D,WAAYrgB,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,MACvEu6D,YAAazgB,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,MACxEo6D,WAAYtgB,GAAOhG,IAAIgG,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,SAGhF,CAAEqR,sBAAsB,IAAS,CAChC3Q,QAAS,KAAO,CACZ9J,KAAM,2CAGN68C,SAAS,uBAAwBqG,GAAOjtC,IAAIitC,GAAOjG,WAAW,CAClEj9C,KAAM+8C,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,yCACzDmnC,GAAOtpC,QAAS,CAAC,CAAEha,KAAM,UACzBsjD,GAAOrpC,MAAO,CACXo6D,0CAA2C,CACvCC,SAAUn3B,IACV5jC,OAAQgqC,GAASymB,cACjBj5C,OAAQqsB,EAAU,yBAEtB4mB,mCAAoC,CAChC1+D,MAAO83C,EAAU,gBAErB6mB,kCAAmC,CAC/B3+D,MAAO83C,EAAU,gBAErB8mB,oCAAqC,CACjC7uD,QAASiuC,GAAO3sC,SAAS2sC,GAAOjtC,IAAIitC,GAAOjG,WAAW,CAClD4M,OAAQ3G,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,IAChDlQ,KAAMy2C,EAAU,iBAChB,CACAlzC,QAAS,KAAO,CACZvD,KAAM,WAKvB,CAAExF,QAAS,yBAA2B,CACrC+I,QAAS,KAAO,CACZ9J,KAAM,yCAGN68C,SAAS,eAAgBqG,GAAOjtC,IAAIitC,GAAOjG,WAAW,CAC1Dj9C,KAAM+8C,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iCACzDmnC,GAAOtpC,QAAS,CAAC,CAAEha,KAAM,UACzBsjD,GAAOrpC,MAAO,CACXkqD,0BAA2B,CACvBt5C,KAAM04B,GAASymB,YAAY,CAAEnzD,IAAK,OAG3C,CAAE1V,QAAS,iBAAmB,CAC7B+I,QAAS,KAAO,CACZ9J,KAAM,gDC1clB6M,OAAOwC,eAAe60D,GAAS,aAAc,CAAEhhE,OAAO,qCACnB,EACnC,MAAMggD,GAAS1wC,GACT2wC,GAAW1wC,+BACjB,SAAkC6I,EAASO,SACjCmhC,EAAYkG,GAAO7nC,UAAUjT,UAAK,EAAWkT,GAC7CyhC,EAAamG,GAAO1nC,WAAWpT,UAAK,EAAWyT,KAC7CghC,SAAS,iBAAkBqG,GAAOjtC,IAAIitC,GAAOjG,WAAW,CAC5Dr2C,KAAMs8C,GAAOjtC,IAAI8mC,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,2BAA4BE,cAAc,KAAW,CACtH5G,QAAUnL,GAASA,EAAKiK,WAAWxU,OAAS,IAEhD0yC,sBAAuB6Q,GAAO9pC,WAAW,CAAEN,SAAS,IACpDy5B,uBAAwB2Q,GAAO9pC,WAAW,CAAEN,SAAS,IACrD05B,UAAW0Q,GAAO9pC,WAAW,CAAEN,SAAS,IACxCq7D,kBAAmBjxB,GAAO9pC,WAAW,CAAEN,SAAS,IAChD45B,uBAAwBwQ,GAAO/sC,cAC/B28B,oBAAqBoQ,GAAO/sC,cAC5Bi9B,qBAAsB8P,GAAO/sC,cAC7By8B,iBAAkBsQ,GAAO/sC,cACzB68B,kBAAmBkQ,GAAO/sC,cAC1B+8B,kBAAmBgQ,GAAO/sC,cAC1B+7B,cAAe8K,EAAU,eACzB7K,cAAe6K,EAAU,eACzBlM,MAAOoS,GAAOjG,WAAW,CACrBhP,MAAOiV,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,UAAYrN,IAAK,OAC3Di3B,OAAQ6iB,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,OACxDmlC,eAAgB2U,GAAO9pC,aACvBq1B,eAAgByU,GAAO9pC,aACvB+0B,gBAAiB+U,GAAO9pC,WAAW,CAAEN,SAAS,IAC9Cu1B,cAAe6U,GAAO9pC,WAAW,CAAEN,SAAS,IAC5Co2B,sBAAuBgU,GAAO/sC,cAC9Bi5B,sBAAuB8T,GAAOhG,IAAIgG,GAAO/sC,eACzCm5B,sBAAuB4T,GAAOhG,IAAIgG,GAAO/sC,eACzCq5B,UAAW0T,GAAOhG,IAAIgG,GAAO/sC,eAC7Bu4B,SAAUwU,GAAOjG,WAAW,CACxBrX,SAAUsd,GAAO9pC,aACjBysB,QAASqd,GAAO9pC,aAChB0sB,UAAWod,GAAO9pC,aAClB2sB,SAAUmd,GAAO9pC,eAErB01B,aAAcoU,GAAOjG,WAAW,CAC5B3xC,OAAQ43C,GAAO9pC,WAAW,CAAEN,SAAS,IACrC2R,KAAMy4B,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,IAC9C/F,OAAQwyC,GAAO9pC,WAAW,CAAEN,SAAS,MAEzC81B,UAAWsU,GAAOjG,WAAW,CACzB3xC,OAAQ43C,GAAO9pC,WAAW,CAAEN,SAAS,IACrC2R,KAAMy4B,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,IAC9C/F,OAAQwyC,GAAO9pC,WAAW,CAAEN,SAAS,QAG7Cm5B,WAAY+K,EAAU,yBACvB,CAAEj8C,QAAS,wBAA8B,CACxC+I,QAAS,IAAMq5C,GAASgQ,qBACxBn/C,SAAU,CAAC9J,EAAMhH,EAAOiO,EAAQ0B,SACxBhC,EAAIiC,EAAIC,EAAIC,SAE0D,UAA/D9P,SADHiI,EAAK6I,SAAS9J,EAAMhH,EAAOiO,EAAQ0B,SACK,EAAS3P,EAAM4tC,aAA0B,IAAPjgC,OAAgB,EAASA,EAAGo9B,QAA+E,UAA/D/qC,MAAAA,OAAqC,EAASA,EAAM4tC,aAA0B,IAAPh+B,OAAgB,EAASA,EAAGutB,QAAU,QAChOvrB,IAAI5K,EAAKtK,KAAK,SAASA,KAAK,UAAW,0BAA2B,OAEH,UAA/DsD,MAAAA,OAAqC,EAASA,EAAM4tC,aAA0B,IAAP/9B,OAAgB,EAASA,EAAGstB,QAAU,IAAO,KACpHvrB,IAAI5K,EAAKtK,KAAK,SAASA,KAAK,UAAW,wBAAyB,KAED,UAA/DsD,MAAAA,OAAqC,EAASA,EAAM4tC,aAA0B,IAAP99B,OAAgB,EAASA,EAAGi7B,OAAS,IAAO,KACnHn5B,IAAI5K,EAAKtK,KAAK,SAASA,KAAK,SAAU,uBAAwB,IAElEsD,UAGP25C,SAAS,uBAAwBqG,GAAOjG,WAAW,CACvD3J,WAAY4P,GAAOhG,IAAIgG,GAAOjG,WAAW,CACrCjV,SAAUkb,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,OAC1DmqC,OAAQ2P,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,OACxDwZ,MAAOsgC,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,UAE3D6oC,WAAYiR,GAAOzqC,QAAQskC,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gCAAmCmnC,GAAOjtC,IAAIitC,GAAOjG,WAAW,CAC3IzJ,QAAS0P,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,OACzDsqC,WAAYwP,GAAOjtC,IAAIitC,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGrN,IAAK,QAAU+B,IAAU,CACvF6I,SAAU,CAAC9J,EAAMhH,EAAOiO,EAAQ0B,KACxB3I,EAAKwF,MAAM9P,KAAK,WAAWkR,OAAS5N,KAC7B4R,IAAI5K,EAAM,oCAEdiB,EAAK6I,SAAS9J,EAAMhH,EAAOiO,EAAQ0B,QAGlD8gC,KAAMuP,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,KAC/C,CAAE1V,QAAS,wBAA0B,CACpC+I,QAAS,KAAO,CACZ0pC,QAAS,GACTE,WAAY,EACZC,KAAM,YAIVkJ,SAAS,kBAAmBqG,GAAOjtC,IAAIitC,GAAOjG,WAAW,CAC7DS,MAAOX,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WAC3DskB,OAAQ6iB,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,MAChD,CACA3M,QAAS,KAAO,CACZ4zC,MAAO,kBACPrd,OAAQ,kBCpGpBxzB,OAAOwC,eAAe80D,GAAS,aAAc,CAAEjhE,OAAO,wCAChB,EACtC,MAAMggD,GAAS1wC,kCACf,SAAqC8I,EAASO,SACpCkhC,EAAamG,GAAO1nC,WAAWpT,UAAK,EAAWyT,GAC/CmhC,EAAYkG,GAAO7nC,UAAUjT,UAAK,EAAWkT,GAC7C8oD,EAAqB,CACvBC,WAAYtnB,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,6BAChE0O,KAAMy4B,GAAO9pC,WAAW,CAAEN,SAAS,OAE/B+jC,SAAS,+BAAgCqG,GAAOjtC,IAAIitC,GAAOjG,WAAW,CAC1Ej9C,KAAM+8C,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gCAC1DvF,OAAQ0sC,GAAOjG,WAAW,EACrBiG,GAAOtpC,QAAS,CAAC,MAAO,CAAEha,KAAM,UAChCsjD,GAAOrpC,MAAO,CACXyqD,4BAA6BF,EAC7BG,4BAA6B,CACzB7Z,YAAaxH,GAAO9pC,WAAW,CAAE3C,IAAK,EAAGrN,IAAK,KAElDo7D,sBAAuB,CACnBxkE,KAAM+8C,EAAW,CAAErhC,KAAM,CAAC,SAAU,UACpCgvC,YAAaxH,GAAO9pC,WAAW,CAAE3C,IAAK,EAAGrN,IAAK,KAElDgrE,0BAA2B,CACvB/zC,OAAQ2c,EAAU,oBAEtBynB,uBAAwB,CACpBC,WAAY3nB,EAAW,CAAErhC,KAAM,CAAC,OAAQ,UACxCipD,kBAAmBzhB,GAAO9pC,WAAW,CAAE3C,IAAK,EAAGrN,IAAK,IACpDw7D,oBAAqB1hB,GAAO9pC,WAAW,CAAE3C,IAAK,EAAGrN,IAAK,KAE1Dy7D,6BAA8BT,EAC9BU,0BAA2B,CACvBC,YAAahoB,EAAW,CAAErhC,KAAM,CAAC,WAAY,SAAU,SAAU,WAAY,SAAU,QAAS,YAEpGspD,sBAAuB,CACnBC,WAAY/hB,GAAOhG,IAAIgG,GAAO/sC,gBAElC+uD,oBAAqBd,IAE1B,CAAErjE,QAAS,oBAAqB0Z,sBAAsB,KAC1D,CAAE1Z,QAAS,sBAAwB,CAClC+I,QAAS,KAAO,CACZ9J,KAAM,4BACNwW,OAAQ,CACJ6tD,WAAY,2BACZ55C,KAAM,mBC9CtB5d,OAAOwC,eAAe81D,GAAS,aAAc,CAAEjiE,OAAO,sCAClB,EACpC,MAAMggD,GAAS1wC,gCACf,SAAmC8I,EAASO,SAClCkhC,EAAamG,GAAO1nC,WAAWpT,UAAK,EAAWyT,GAC/CmhC,EAAYkG,GAAO7nC,UAAUjT,UAAK,EAAWkT,KAC3CuhC,SAAS,6BAA8BqG,GAAOjtC,IAAIitC,GAAOjG,WAAW,CACxEj9C,KAAM+8C,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,8BAC1DvF,OAAQ0sC,GAAOjG,WAAW,CACtBmoB,aAAcpoB,EAAU,eACxBqoB,eAAgBroB,EAAU,eAC1BsoB,oBAAqBtoB,EAAU,gBAChC,CAAEj8C,QAAS,qBACf,CAAEA,QAAS,oBAAsB,CAChC+I,QAAS,KAAO,CACZ9J,KAAM,oBACNwW,OAAQ,CACJ4uD,aAAc,CACVxlC,KAAM,wBACNC,WAAY,CACR0lC,MAAO,UAGfF,eAAgB,CACZzlC,KAAM,kBAEV0lC,oBAAqB,CACjB1lC,KAAM,qCC3B1B/yB,OAAOwC,eAAem2D,GAAS,aAAc,CAAEtiE,OAAO,oCACpB,EAClC,MAAMggD,GAAS1wC,GAET+zD,GAAkB9zD,8BACxB,SAAiC6I,EAASO,SAChCmhC,EAAYkG,GAAO7nC,UAAUjT,UAAK,EAAWkT,GAC7CyhC,EAAamG,GAAO1nC,WAAWpT,UAAK,EAAWyT,KAC7CghC,SAAS,gBAAiBqG,GAAOjtC,IAAIitC,GAAOjG,WAAW,CAC3Dr2C,KAAMm2C,IACNvlC,SAAUulC,IACV2oB,SAAUxiB,GAAO3sC,SAASymC,EAAU,+BACrC,CAAEj8C,QAAS,kBAAoB,CAC9B+I,QAAS,KAAO,CACZ0N,SAAU,kBACVkuD,SAAU,CACN,CACI7b,OAAQ,EACR75C,QAAS,CACL21D,aAAc,gCACdC,WAAY,QACZ/K,WAAY,4BAMxBhe,SAAS,4BAA6BqG,GAAOjtC,IAAIitC,GAAOjG,WAAW,CACvE4M,OAAQ3G,GAAO9pC,WAAW,CAAEN,SAAS,EAAMrC,IAAK,IAChDzG,QAASgtC,EAAU,qBACpB,CAAE5nC,SAAU,SAAW,CACtBtL,QAAS,KAAO,CACZ+/C,OAAQ,EACR75C,QAAS,CACL21D,aAAc,gCACdC,WAAY,QACZ/K,WAAY,0BAIhBhe,SAAS,mBAAoBqG,GAAOjtC,IAAIitC,GAAOjG,WAAW,CAC9D0oB,aAAc5oB,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,qCAClE6pD,WAAY7oB,EAAW,CAAErhC,KAAM,CAAC,QAAS,uBACxCwnC,GAAOtpC,QAAS,CAAC,CAAEha,KAAM,kBACzBsjD,GAAOrpC,MAAO,CACXgsD,iCAAkC,CAC9B1lB,QAASpD,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,mCAEjE+pD,uCAAwC,CACpCp7D,SAAUqyC,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gBAC9D8+C,WAAY0L,GAAgBd,YAEhCM,8BAA+B,CAC3BL,SAAUxiB,GAAO3sC,SAASymC,EAAU,sBAExCgpB,gCAAiC,CAC7Bt7D,SAAUqyC,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gBAC9D8+C,WAAY0L,GAAgBd,cAGrC,CAAE1kE,QAAS,mBAAoB0Z,sBAAsB,IAAS,CAC7D3Q,QAAS,KAAO,CACZ67D,aAAc,gCACdC,WAAY,QACZ/K,WAAY,wBChExBhuD,OAAOwC,eAAe42D,GAAS,aAAc,CAAE/iE,OAAO,gCACxB,EAC9B,MAAMgjE,GAAU1zD,GACV2zD,GAAW1zD,GACX2zD,GAAczzD,GACd0zD,GAAY5sD,GACZ6sD,GAAkB5sD,GAClB6sD,GAAkBtpD,GAClBupD,GAAqBtpD,GACrBupD,GAAmBtpD,GACnBupD,GAAiBtpD,0BACvB,SAA6B9B,EAASO,MAElBmrD,yBAAyB1rD,EAASO,MAC1C8qD,iBAAiBrrD,EAASO,MACzB+qD,kBAAkBtrD,EAASO,MACxBgrD,qBAAqBvrD,EAASO,MAChCirD,mBAAmBxrD,EAASO,MACtBkrD,yBAAyBzrD,EAASO,MAC/BorD,4BAA4B3rD,EAASO,MACvCqrD,0BAA0B5rD,EAASO,MACrCsrD,wBAAwB7rD,EAASO,cCrBpDhP,OAAOwC,eAAe+3D,GAAS,aAAc,CAAElkE,OAAO,qCACnB,EACnC,MAAMggD,GAAS1wC,+BACf,SAAkC8I,EAASO,SACjCmhC,EAAYkG,GAAO7nC,UAAUjT,UAAK,EAAWkT,GAC7CyhC,EAAamG,GAAO1nC,WAAWpT,UAAK,EAAWyT,KAC7CghC,SAAS,iBAAkBqG,GAAOjtC,IAAIitC,GAAOjG,WAAW,CAC5DoqB,kBAAmBnkB,GAAO/sC,cAC1BmxD,YAAapkB,GAAO/sC,cACpBmrB,KAAM4hB,GAAO9pC,WAAW,CAAEN,SAAS,IACnCyuD,WAAYrkB,GAAOzqC,QAAQskC,EAAW,CAAEnhC,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gBAAmBihC,EAAU,eAC7G,CAAEj8C,QAAS,mBAAqB,CAC/B+I,QAAS,WACCw3B,EAAOj4B,KAAKmxB,MAAuB,WAAjBnxB,KAAKoxB,UAA2B,iBACjD,CACH4sC,mBAAmB,EACnBC,aAAa,EACbhmC,KAAAA,EACAimC,WAAY,CACR1U,sBAAuB,CACnB7yD,KAAM,sBACNs0D,UAAW,CACPt0D,KAAM,kBACNshC,KAAAA,EACAmzB,aAAc,CACVz0D,KAAM,4BACNshC,KAAAA,GAEJqO,SAAU,wBAGlBojB,uBAAwB,CACpB/yD,KAAM,uBACNs0D,UAAW,CACPt0D,KAAM,kBACNshC,KAAAA,EACAmzB,aAAc,CACVz0D,KAAM,wBACNshC,KAAAA,EACAyzB,eAAgB,CACZ/uB,eACAzB,WAAY,CAAC,EAAK,IAEtBswB,eAAgB,CACZ7uB,eACAzB,WAAY,CAAC,EAAK,IAEtBywB,gBAAiB,CACbhvB,eACAzB,WAAY,CAAC,EAAK,IAEtBuwB,kBAAmB,CACf9uB,eACAzB,WAAY,CAAC,EAAK,IAEtB0wB,OAAQ,CACJ,CACIztB,WAAY,CAAEmuB,SAAU,EAAK7tB,UAAW,EAAKp3B,OAAQ,EAAKg3B,YAAa,EAAKC,SAAU,GACtF4B,MAAO,2BAEX,CACI/B,WAAY,CAAEmuB,SAAU,EAAK7tB,UAAW,EAAKp3B,OAAQ,EAAKg3B,YAAa,EAAKC,cAC5E4B,MAAO,8BAEX,CACI/B,WAAY,CAAEmuB,SAAU,EAAK7tB,UAAW,EAAKp3B,OAAQ,EAAKg3B,YAAa,GAAKC,SAAU,GACtF4B,MAAO,4BAEX,CACI/B,WAAY,CAAEmuB,SAAU,EAAK7tB,UAAW,EAAKp3B,OAAQ,KAAOg3B,YAAa,EAAKC,SAAU,IACxF4B,MAAO,2BAEX,CACI/B,WAAY,CAAEmuB,SAAU,EAAK7tB,UAAW,EAAKp3B,OAAQ,KAAOg3B,gBAAmBC,SAAU,GACzF4B,MAAO,6BAInBoG,SAAU,qBAGlBujB,oBAAqB,CACjBlzD,KAAM,oBACNs0D,UAAW,CACPt0D,KAAM,kBACNshC,KAAAA,EACAmzB,aAAc,CACVz0D,KAAM,oBACNshC,KAAAA,GAEJqO,SAAU,yBC1FtC9iC,OAAOwC,eAAe6gD,GAAS,aAAc,CAAEhtD,OAAO,wBAChC,EACtB,MAAMitD,GAAgB39C,GAChB2wC,GAAW1wC,GACX29C,GAAcz9C,GACd60D,GAAc/tD,GACdguD,GAAkB/tD,GAClB26D,GAAiBp3D,GACjBozC,GAAcnzC,GACdozC,GAAenzC,GACfimC,GAAehmC,GACfmzC,GAAWlzC,GACXmzC,GAASlzC,GACTmzC,GAAkBlzC,GAClBmqD,GAAalqD,GACbmqD,GAAkBlqD,kBACxB,SAAqBnC,EAASO,MAEjB60C,kBAAkBp1C,EAASO,MACtB+0C,uBAAuBt1C,EAASO,MAClCg1C,qBAAqBv1C,EAASO,MAC1B+rD,yBAAyBtsD,EAASO,MACtCgsD,qBAAqBvsD,EAASO,MAC3By4D,wBAAwBh5D,EAASO,MACpCi1C,qBAAqBx1C,EAASO,MAC7Bk1C,sBAAsBz1C,EAASO,MAC/B80C,sBAAsBr1C,EAASO,MACnCm1C,kBAAkB11C,EAASO,MAC7Bo1C,gBAAgB31C,EAASO,MAChBq1C,yBAAyB51C,EAASO,MACvCisD,oBAAoBxsD,EAASO,MACxBksD,yBAAyBzsD,EAASO,IC/BtD,IAAIc,GAAmB7b,IAAQA,GAAK6b,yBAA4B7P,OAAU,SAASvN,EAAGkD,EAAGF,EAAGqa,QAC7E,IAAPA,MAAuBra,UACpB8M,eAAe9P,EAAGqd,EAAI,CAAEC,YAAY,EAAM/L,IAAK,kBAAoBrO,EAAEF,OAC1E,SAAShD,EAAGkD,EAAGF,EAAGqa,QACT,IAAPA,MAAuBra,KACzBqa,GAAMna,EAAEF,KAEV4uD,GAAsBrwD,IAAQA,GAAKqwD,4BAA+BrkD,OAAU,SAASvN,EAAGgF,UACjF8K,eAAe9P,EAAG,UAAW,CAAEsd,YAAY,EAAM3Z,MAAOqB,KAC9D,SAAShF,EAAGgF,aACEA,IAEf6sD,GAAgBtwD,IAAQA,GAAKswD,cAAiB,SAAUC,MACpDA,GAAOA,EAAIC,kBAAmBD,MAC9BvgC,EAAS,MACF,MAAPugC,UAAsB9uD,KAAK8uD,EAAe,YAAN9uD,GAAmBsK,OAAOmQ,eAAexW,KAAK6qD,EAAK9uD,OAAoBuuB,EAAQugC,EAAK9uD,aACzGuuB,EAAQugC,GACpBvgC,GAEXjkB,OAAOwC,eAAekiD,GAAS,aAAc,CAAEruD,OAAO,IACtD,4CAA8C,EAC9C,MAAMggD,GAAS1wC,GACTg/C,GAAgB/+C,GAChBg/C,GAAY9+C,GAClB,sBAAsBy+C,GAAa33C,IAMnC,yBALA,iBACUoC,EAAc,IAAIqnC,GAAOwO,6BACjBC,gBAAgB91C,GACvBA,GAsBX+1C,iBALA,SAAoB/1C,SACVP,EAAU,IAAI4nC,GAAO2O,yBACjBC,YAAYx2C,EAASO,GACxBP,iMChDXzO,OAAOwC,eAAeutC,GAAS,aAAc,CAAE15C,OAAO,4BAC5B,qBAC1B,SAAyB2Y,KACTghC,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,0BC1WRhwC,OAAOwC,eAAe4zC,GAAS,aAAc,CAAE//C,OAAO,mCACrB,EACjC,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"} \ No newline at end of file diff --git a/changelog/index.html b/changelog/index.html index d86876fb..e08d2a0b 100644 --- a/changelog/index.html +++ b/changelog/index.html @@ -20,8 +20,8 @@ Technical Changelog Minecraft 1.16, 1.17, 1.18 - - + + diff --git a/dimension-type/index.html b/dimension-type/index.html index b48b7503..5646292c 100644 --- a/dimension-type/index.html +++ b/dimension-type/index.html @@ -20,8 +20,8 @@ Dimension Type Generator Minecraft 1.16, 1.17, 1.18 - - + + diff --git a/dimension/index.html b/dimension/index.html index 2259e702..8bd5b498 100644 --- a/dimension/index.html +++ b/dimension/index.html @@ -20,8 +20,8 @@ Dimension Generator Minecraft 1.16, 1.17, 1.18 - - + + diff --git a/index.html b/index.html index d704f3a7..953414fb 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 2cc9f8e0..24469c36 100644 --- a/item-modifier/index.html +++ b/item-modifier/index.html @@ -20,8 +20,8 @@ Item Modifier Generator Minecraft 1.17, 1.18 - - + + diff --git a/loot-table/index.html b/loot-table/index.html index 12ba001d..45a665f4 100644 --- a/loot-table/index.html +++ b/loot-table/index.html @@ -20,8 +20,8 @@ Loot Table Generator Minecraft 1.16, 1.17, 1.18 - - + + diff --git a/predicate/index.html b/predicate/index.html index a35d3c84..11e608cb 100644 --- a/predicate/index.html +++ b/predicate/index.html @@ -20,8 +20,8 @@ Predicate Generator Minecraft 1.16, 1.17, 1.18 - - + + diff --git a/recipe/index.html b/recipe/index.html index a72e46b6..e4fe5f5a 100644 --- a/recipe/index.html +++ b/recipe/index.html @@ -20,8 +20,8 @@ Recipe Generator Minecraft 1.16, 1.17, 1.18 - - + + diff --git a/sounds/index.html b/sounds/index.html index 1289fdbb..c726204a 100644 --- a/sounds/index.html +++ b/sounds/index.html @@ -20,8 +20,8 @@ Sound Explorer Minecraft 1.16, 1.17, 1.18 - - + + diff --git a/world/index.html b/world/index.html index 06080ef0..ce7c70ab 100644 --- a/world/index.html +++ b/world/index.html @@ -20,8 +20,8 @@ World Settings Generator Minecraft 1.16, 1.17, 1.18 - - + + diff --git a/worldgen/biome/index.html b/worldgen/biome/index.html index 2262d76b..74211164 100644 --- a/worldgen/biome/index.html +++ b/worldgen/biome/index.html @@ -20,8 +20,8 @@ Biome Generator Minecraft 1.16, 1.17, 1.18 - - + + diff --git a/worldgen/carver/index.html b/worldgen/carver/index.html index dfbad703..3cc85d1f 100644 --- a/worldgen/carver/index.html +++ b/worldgen/carver/index.html @@ -20,8 +20,8 @@ Carver Generator Minecraft 1.16, 1.17, 1.18 - - + + diff --git a/worldgen/feature/index.html b/worldgen/feature/index.html index 743382fa..5988f6ab 100644 --- a/worldgen/feature/index.html +++ b/worldgen/feature/index.html @@ -20,8 +20,8 @@ Feature Generator Minecraft 1.16, 1.17, 1.18 - - + + diff --git a/worldgen/index.html b/worldgen/index.html index 9a1abab4..ade8284a 100644 --- a/worldgen/index.html +++ b/worldgen/index.html @@ -20,8 +20,8 @@ Worldgen Generators Minecraft 1.16, 1.17, 1.18 - - + + diff --git a/worldgen/noise-settings/index.html b/worldgen/noise-settings/index.html index 9371eac9..4fbe11e3 100644 --- a/worldgen/noise-settings/index.html +++ b/worldgen/noise-settings/index.html @@ -20,8 +20,8 @@ Noise Settings Generator Minecraft 1.16, 1.17, 1.18 - - + + diff --git a/worldgen/noise/index.html b/worldgen/noise/index.html index 15d71007..14d4e535 100644 --- a/worldgen/noise/index.html +++ b/worldgen/noise/index.html @@ -20,8 +20,8 @@ Noise Generator Minecraft 1.18 - - + + diff --git a/worldgen/processor-list/index.html b/worldgen/processor-list/index.html index 683c4758..fd9e4b6c 100644 --- a/worldgen/processor-list/index.html +++ b/worldgen/processor-list/index.html @@ -20,8 +20,8 @@ Processor List Generator Minecraft 1.16, 1.17, 1.18 - - + + diff --git a/worldgen/structure-feature/index.html b/worldgen/structure-feature/index.html index a37917d3..ae1e2cec 100644 --- a/worldgen/structure-feature/index.html +++ b/worldgen/structure-feature/index.html @@ -20,8 +20,8 @@ Structure Feature Generator Minecraft 1.16, 1.17, 1.18 - - + + diff --git a/worldgen/surface-builder/index.html b/worldgen/surface-builder/index.html index 41d5256b..2ab7b0b0 100644 --- a/worldgen/surface-builder/index.html +++ b/worldgen/surface-builder/index.html @@ -20,8 +20,8 @@ Surface Builder Generator Minecraft 1.16, 1.17, 1.18 - - + + diff --git a/worldgen/template-pool/index.html b/worldgen/template-pool/index.html index 46064061..b62b8d39 100644 --- a/worldgen/template-pool/index.html +++ b/worldgen/template-pool/index.html @@ -20,8 +20,8 @@ Template Pool Generator Minecraft 1.16, 1.17, 1.18 - - + +