From 643783bbc3a60ff531552e1976c1cc09359318a8 Mon Sep 17 00:00:00 2001 From: misode Date: Thu, 13 Oct 2022 00:06:34 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20=20@=20ac259?= =?UTF-8?q?bb83e008f723d4b3831fc0fdf736b103529=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 +- ....6eb5e9dc.js => deepslate.esm.666d0ed0.js} | 4 +- ...c.js.map => deepslate.esm.666d0ed0.js.map} | 2 +- ....4f951104.js => deepslate.esm.feae856d.js} | 4 +- ...4.js.map => deepslate.esm.feae856d.js.map} | 2 +- assets/font/index.html | 4 +- ...{howler.16819b6c.js => howler.ce49acbd.js} | 4 +- ...16819b6c.js.map => howler.ce49acbd.js.map} | 2 +- assets/index.139af8e4.css | 1 + .../{index.435793bb.js => index.2c9aa543.js} | 4 +- ....435793bb.js.map => index.2c9aa543.js.map} | 2 +- .../{index.be9c54c6.js => index.2fb6412f.js} | 4 +- ....be9c54c6.js.map => index.2fb6412f.js.map} | 2 +- assets/index.41a3dfd7.js | 139 ------------------ assets/index.41a3dfd7.js.map | 1 - .../{index.e81c6084.js => index.6c5eeb89.js} | 4 +- ....e81c6084.js.map => index.6c5eeb89.js.map} | 2 +- .../{index.dd43bf43.js => index.80f19794.js} | 4 +- ....dd43bf43.js.map => index.80f19794.js.map} | 2 +- .../{index.7025560c.js => index.883f1c74.js} | 4 +- ....7025560c.js.map => index.883f1c74.js.map} | 2 +- .../{index.64d29f63.js => index.abe095be.js} | 4 +- ....64d29f63.js.map => index.abe095be.js.map} | 2 +- assets/index.c53548d8.css | 1 - assets/index.d528c217.js | 139 ++++++++++++++++++ assets/index.d528c217.js.map | 1 + .../{index.d48dc598.js => index.f2087122.js} | 4 +- ....d48dc598.js.map => index.f2087122.js.map} | 2 +- assets/index.html | 4 +- assets/model/index.html | 4 +- ...js => sourcemapped-stacktrace.d972a070.js} | 4 +- ...> sourcemapped-stacktrace.d972a070.js.map} | 2 +- changelog/index.html | 4 +- chat-type/index.html | 4 +- dimension-type/index.html | 4 +- dimension/index.html | 4 +- fonts/seven.ttf | Bin 0 -> 188416 bytes guides/adding-custom-structures/index.html | 4 +- guides/density-functions/index.html | 4 +- guides/feature-order-cycle/index.html | 4 +- guides/heightmap-types/index.html | 4 +- guides/index.html | 4 +- guides/noise-router/index.html | 4 +- guides/placed-features/index.html | 4 +- images/container.png | Bin 0 -> 417 bytes images/glint.png | Bin 0 -> 24860 bytes images/tooltip.png | Bin 0 -> 158 bytes index.html | 4 +- item-modifier/index.html | 4 +- loot-table/index.html | 4 +- pack-mcmeta/index.html | 4 +- .../block-growth/index.html | 4 +- predicate/index.html | 4 +- recipe/index.html | 4 +- sounds/index.html | 4 +- tags/biome/index.html | 4 +- tags/block/index.html | 4 +- tags/entity-type/index.html | 4 +- tags/fluid/index.html | 4 +- tags/game-event/index.html | 4 +- tags/item/index.html | 4 +- text-component/index.html | 4 +- versions/index.html | 4 +- world/index.html | 4 +- worldgen/biome/index.html | 4 +- worldgen/carver/index.html | 4 +- worldgen/density-function/index.html | 4 +- worldgen/feature/index.html | 4 +- worldgen/flat-world-preset/index.html | 4 +- worldgen/index.html | 4 +- worldgen/noise-settings/index.html | 4 +- worldgen/noise/index.html | 4 +- worldgen/placed-feature/index.html | 4 +- worldgen/processor-list/index.html | 4 +- worldgen/structure-feature/index.html | 4 +- worldgen/structure-set/index.html | 4 +- worldgen/structure/index.html | 4 +- worldgen/surface-builder/index.html | 4 +- worldgen/template-pool/index.html | 4 +- worldgen/world-preset/index.html | 4 +- 82 files changed, 274 insertions(+), 274 deletions(-) rename assets/{deepslate.esm.6eb5e9dc.js => deepslate.esm.666d0ed0.js} (99%) rename assets/{deepslate.esm.6eb5e9dc.js.map => deepslate.esm.666d0ed0.js.map} (99%) rename assets/{deepslate.esm.4f951104.js => deepslate.esm.feae856d.js} (99%) rename assets/{deepslate.esm.4f951104.js.map => deepslate.esm.feae856d.js.map} (99%) rename assets/{howler.16819b6c.js => howler.ce49acbd.js} (99%) rename assets/{howler.16819b6c.js.map => howler.ce49acbd.js.map} (99%) create mode 100644 assets/index.139af8e4.css rename assets/{index.435793bb.js => index.2c9aa543.js} (99%) rename assets/{index.435793bb.js.map => index.2c9aa543.js.map} (99%) rename assets/{index.be9c54c6.js => index.2fb6412f.js} (99%) rename assets/{index.be9c54c6.js.map => index.2fb6412f.js.map} (99%) delete mode 100644 assets/index.41a3dfd7.js delete mode 100644 assets/index.41a3dfd7.js.map rename assets/{index.e81c6084.js => index.6c5eeb89.js} (99%) rename assets/{index.e81c6084.js.map => index.6c5eeb89.js.map} (99%) rename assets/{index.dd43bf43.js => index.80f19794.js} (99%) rename assets/{index.dd43bf43.js.map => index.80f19794.js.map} (99%) rename assets/{index.7025560c.js => index.883f1c74.js} (99%) rename assets/{index.7025560c.js.map => index.883f1c74.js.map} (99%) rename assets/{index.64d29f63.js => index.abe095be.js} (99%) rename assets/{index.64d29f63.js.map => index.abe095be.js.map} (99%) delete mode 100644 assets/index.c53548d8.css create mode 100644 assets/index.d528c217.js create mode 100644 assets/index.d528c217.js.map rename assets/{index.d48dc598.js => index.f2087122.js} (99%) rename assets/{index.d48dc598.js.map => index.f2087122.js.map} (99%) rename assets/{sourcemapped-stacktrace.cf55c084.js => sourcemapped-stacktrace.d972a070.js} (99%) rename assets/{sourcemapped-stacktrace.cf55c084.js.map => sourcemapped-stacktrace.d972a070.js.map} (99%) create mode 100644 fonts/seven.ttf create mode 100644 images/container.png create mode 100644 images/glint.png create mode 100644 images/tooltip.png diff --git a/404.html b/404.html index 1ee9c34b..c3b2cdf8 100644 --- a/404.html +++ b/404.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } - - + +
diff --git a/advancement/index.html b/advancement/index.html index 7eae75e2..dd0150ec 100644 --- a/advancement/index.html +++ b/advancement/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } - - + +
diff --git a/assets/blockstate/index.html b/assets/blockstate/index.html index 395ed470..aeed8a49 100644 --- a/assets/blockstate/index.html +++ b/assets/blockstate/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } - - + +
diff --git a/assets/deepslate.esm.6eb5e9dc.js b/assets/deepslate.esm.666d0ed0.js similarity index 99% rename from assets/deepslate.esm.6eb5e9dc.js rename to assets/deepslate.esm.666d0ed0.js index 54c8cc90..f0489a7c 100644 --- a/assets/deepslate.esm.6eb5e9dc.js +++ b/assets/deepslate.esm.666d0ed0.js @@ -1,4 +1,4 @@ -import{p as jt,e as Zt,c as Re,i as ft,t as Ce,r as ls,a as us,s as qt,f as Ze,b as hs,d as mt,n as cs,g as fs,h as ms,j as ds,k as ps,l as gs,m as Tt,o as vs,q as ws}from"./index.41a3dfd7.js";var F,Ee;(Ee=F||(F={})).UP="up",Ee.DOWN="down",Ee.NORTH="north",Ee.EAST="east",Ee.SOUTH="south",Ee.WEST="west";const bs={[F.UP]:[0,1,0],[F.DOWN]:[0,-1,0],[F.NORTH]:[0,0,-1],[F.EAST]:[1,0,0],[F.SOUTH]:[0,0,1],[F.WEST]:[-1,0,0]};var J,me;(function(s){s.ALL=[s.UP,s.DOWN,s.NORTH,s.EAST,s.SOUTH,s.WEST],s.normal=function(e){return bs[e]}})(F||(F={})),(me=J||(J={})).create=function(s,e,t){return[s,e,t]},me.ZERO=me.create(0,0,0),me.offset=function(s,e,t,i){return[s[0]+e,s[1]+t,s[2]+i]},me.towards=function(s,e){return me.offset(s,...F.normal(e))},me.equals=function(s,e){return s===e||s[0]===e[0]&&s[1]===e[1]&&s[2]===e[2]},me.magnitude=function(s){return s[0]*s[0]+s[1]*s[1]+s[2]*s[2]};const Ve={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},Ct=["end","byte","short","int","long","float","double","byteArray","string","list","compound","intArray","longArray"];class Ss{constructor(e,t=!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=t,this.arrayView=e,this.dataView=new DataView(e.buffer,e.byteOffset)}end(){return null}readNum(e,t){const i=this.dataView[e](this.offset,this.littleEndian);return this.offset+=t,i}long(){return[this.int(),this.int()]}byteArray(){const e=this.int(),t=[];for(let i=0;i=t)return;let i=this.buffer.byteLength;for(;ithis.buffer.byteLength&&n.fill(0,this.buffer.byteLength,this.offset),this.buffer=r,this.dataView=new DataView(r),this.arrayView=n}getData(){return this.accommodate(0),this.arrayView.slice(0,this.offset)}end(e){}writeNum(e,t,i){this.accommodate(t),this.dataView[e](this.offset,i,this.littleEndian),this.offset+=t}long(e){this.int(e[0]),this.int(e[1])}byteArray(e){this.int(e.length),this.accommodate(e.length),this.arrayView.set(e,this.offset),this.offset+=e.length}intArray(e){this.int(e.length);for(let t=0;t>6),a.push(128|63&n)):n<65536?(a.push(224|n>>12),a.push(128|n>>6&63),a.push(128|63&n)):(a.push(240|n>>18&7),a.push(128|n>>12&63),a.push(128|n>>6&63),a.push(128|63&n));return a}(e);this.short(t.length),this.accommodate(t.length),this.arrayView.set(t,this.offset),this.offset+=t.length}list(e){this.byte(Ve[e.type]),this.int(e.value.length),e.value;for(let t=0;t>16),i.setInt16(a+1,65535&r),i.setInt8(a+3,o),i.setInt32(a+4096,n.timestamp);const u=4096*r;i.setInt32(u,n.data.length+1),i.setInt8(u+4,n.compression),t.set(n.data,u+5),r+=o}return t}function ei(s,e,t,i){const r=Jt(s,e,t);switch(r.compression){case 1:r.data=dt(i);break;case 2:r.data=dt(i,!1,!0);break;case 3:r.data=It(i);break;default:throw new Error(`Invalid compression mode ${r.compression}`)}return r}function Jt(s,e,t){const i=s.find(r=>r.x===e&&r.z===t);if(i===void 0)throw new Error(`Cannot find chunk [${e}, ${t}]`);return i}function Be(s,e,t){if(!s[e])throw new Error(`Missing ${e} tag`);if(s[e].type!==t)throw new Error(`Expected ${e} to be of type ${t}, but found ${s[e].type}`);return s[e].value}function He(s,e,t,i){const r=Be(s,e,"list");if(r.type!==t)throw new Error(`Expected ${e} to be a list of ${t}s, but found ${r.type}s`);if(i&&r.value.length!==i)throw new Error(`Expected ${e} to be a list of length ${i}, but found length ${r.value.length}`);return r.value}function $t(s,e){try{return s()}catch{return e}}var v;function qe(s){let e=null;return()=>(e==null&&(e=s()),e)}function nt(s,e,t){const i=s.get(e);if(i)return i;const r=t(e);return s.set(e,r),r}(function(s){function e(t){return typeof t=="object"&&t!==null?t:void 0}s.readNumber=function(t){return typeof t=="number"?t:void 0},s.readInt=function(t){return typeof t=="number"?Math.floor(t):void 0},s.readString=function(t){return typeof t=="string"?t:void 0},s.readBoolean=function(t){return typeof t=="boolean"?t:void 0},s.readObject=e,s.readArray=function(t,i){if(Array.isArray(t))return t.map(r=>i(r))},s.readMap=function(t,i){var r;const n=(r=e(t))!=null?r:{};return Object.fromEntries(Object.entries(n).map(([a,o])=>[a,i(o)]))},s.compose=function(t,i,r){const n=i(t);return n?r(n):void 0},s.readEnum=function(t,i){return typeof t!="string"?i[0]:i.includes(t)?t:i[0]}})(v||(v={}));const We=class{constructor(s,e){if(this.namespace=s,this.path=e,!s.match(/^[a-z0-9._-]+$/))throw new Error(`Non [a-z0-9._-] character in namespace of ${s}:${e}`);if(!e.match(/^[a-z0-9/._-]+$/))throw new Error(`Non [a-z0-9/._-] character in path of ${s}:${e}`)}equals(s){return this===s||this.namespace===s.namespace&&this.path===s.path}toString(){return`${this.namespace}:${this.path}`}static create(s){return new We(this.DEFAULT_NAMESPACE,s)}static parse(s){const e=s.indexOf(this.SEPARATOR);if(e>=0){const t=e>=1?s.substring(0,e):this.DEFAULT_NAMESPACE,i=s.substring(e+1);return new We(t,i)}return new We(this.DEFAULT_NAMESPACE,s)}};let D=We;D.DEFAULT_NAMESPACE="minecraft",D.SEPARATOR=":";var As=Object.defineProperty,ys=Object.defineProperties,_s=Object.getOwnPropertyDescriptors,Mt=Object.getOwnPropertySymbols,Es=Object.prototype.hasOwnProperty,Is=Object.prototype.propertyIsEnumerable,kt=(s,e,t)=>e in s?As(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t;const oe=class{constructor(s,e={}){this.properties=e,this.name=typeof s=="string"?D.parse(s):s}getName(){return this.name}getProperties(){return this.properties}getProperty(s){return this.properties[s]}isFluid(){return this.is(oe.WATER)||this.is(oe.LAVA)}equals(s){return!!this.name.equals(s.name)&&Object.keys(this.properties).every(e=>s.properties[e]===this.properties[e])}is(s){return this.name.equals(s.name)}toString(){return Object.keys(this.properties).length===0?this.name.toString():`${this.name.toString()}[${Object.entries(this.properties).map(([s,e])=>s+"="+e).join(",")}]`}static fromNbt(s){const e=D.parse(Be(s.value,"Name","string")),t=$t(()=>Be(s.value,"Properties","compound"),{}),i=Object.keys(t).reduce((r,n)=>{return a=((u,f)=>{for(var c in f||(f={}))Es.call(f,c)&&kt(u,c,f[c]);if(Mt)for(var c of Mt(f))Is.call(f,c)&&kt(u,c,f[c]);return u})({},r),o={[n]:Be(t,n,"string")},ys(a,_s(o));var a,o},{});return new oe(e,i)}static fromJson(s){var e,t;const i=(e=v.readObject(s))!=null?e:{},r=D.parse((t=v.readString(i.Name))!=null?t:oe.STONE.name.toString()),n=v.readMap(i.Properties,a=>{var o;return(o=v.readString(a))!=null?o:""});return new oe(r,n)}};let P=oe;P.AIR=new oe(D.create("air")),P.STONE=new oe(D.create("stone")),P.WATER=new oe(D.create("water"),{level:"0"}),P.LAVA=new oe(D.create("lava"),{level:"0"});const Ue=class{constructor(s){this.minY=s,this.storage=Array(Ue.SIZE).fill(0),this.palette=[P.AIR]}get minBlockY(){return this.minY<<4}index(s,e,t){return(s<<8)+(e<<4)+t}getBlockState(s,e,t){var i;const r=this.storage[this.index(s,e,t)];return(i=this.palette[r])!=null?i:P.AIR}setBlockState(s,e,t,i){let r=this.palette.findIndex(n=>n.equals(i));r===-1&&(r=this.palette.length,this.palette.push(i)),this.storage[this.index(s,e,t)]=r}};let pt=Ue;pt.WIDTH=16,pt.SIZE=Ue.WIDTH*Ue.WIDTH*Ue.WIDTH;class ti{constructor(e,t,i){this.minY=e,this.height=t,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(e){return(e>>4)-this.minSection}getBlockState(e){var t;const[i,r,n]=e,a=this.sections[this.getSectionIndex(r)];return(t=a==null?void 0:a.getBlockState(15&i,15&r,15&n))!=null?t:P.AIR}setBlockState(e,t){const[i,r,n]=e,a=this.getSectionIndex(r);let o=this.sections[a];if(o===null){if(t.equals(P.AIR))return;o=this.getOrCreateSection(a)}o.setBlockState(15&i,15&r,15&n,t)}getOrCreateSection(e){return this.sections[e]==null&&(this.sections[e]=new pt(this.minSection+e)),this.sections[e]}}var $,Me;(function(s){function e(t,i){return BigInt(4294967295&t)|BigInt(4294967295&i)<>4,t[2]>>4]},s.fromLong=function(t){return[4294967295&Number(t),Number(t>>BigInt(32))]},s.toLong=function(t){return e(t[0],t[1])},s.asLong=e,s.minBlockX=function(t){return t[0]<<4},s.minBlockZ=function(t){return t[1]<<4},s.maxBlockX=function(t){return 15+(t[0]<<4)},s.maxBlockZ=function(t){return 15+(t[1]<<4)}})($||($={})),function(s){function e(i){return{value:()=>i,key:()=>{}}}function t(i,r){return{value:()=>i.getOrThrow(r),key:()=>r}}s.parser=function(i,r){return n=>typeof n=="string"?t(i,D.parse(n)):e(r(n))},s.direct=e,s.reference=t}(Me||(Me={}));const Nt=class{constructor(s,e){this.key=s,this.parser=e,this.storage=new Map,this.builtin=new Map}register(s,e,t){return this.storage.set(s.toString(),e),t&&this.builtin.set(s.toString(),e),Me.reference(this,s)}keys(){return[...this.storage.keys()].map(s=>D.parse(s))}get(s){return this.storage.get(s.toString())}getOrThrow(s){const e=this.storage.get(s.toString());if(e===void 0)throw new Error(`Missing key in ${this.key.toString()}: ${s.toString()}`);return e}parse(s){if(!this.parser)throw new Error(`No parser exists for ${this.key.toString()}`);return this.parser(s)}clear(){this.storage.clear();for(const[s,e]of this.builtin.entries())this.storage.set(s,e);return this}assign(s){if(!this.key.equals(s.key))throw new Error(`Cannot assign registry of type ${s.key.toString()} to registry of type ${this.key.toString()}`);for(const e of s.keys())this.storage.set(e.toString(),s.getOrThrow(e));return this}cloneEmpty(){return new Nt(this.key,this.parser)}};let gt=Nt;gt.REGISTRY=new Nt(D.create("root"));class Kt{constructor(e,t=[],i=[]){this.size=e,this.palette=t,this.blocks=i,this.blocksMap=[],i.forEach(r=>{if(!this.isInside(r.pos))throw new Error(`Found block at ${r.pos} which is outside the structure bounds ${this.size}`);this.blocksMap[r.pos[0]*e[1]*e[2]+r.pos[1]*e[2]+r.pos[2]]=r})}getSize(){return this.size}addBlock(e,t,i,r){if(!this.isInside(e))throw new Error(`Cannot add block at ${e} outside the structure bounds ${this.size}`);const n=new P(t,i);let a=this.palette.findIndex(o=>o.equals(n));return a===-1&&(a=this.palette.length,this.palette.push(n)),this.blocks.push({pos:e,state:a,nbt:r}),this.blocksMap[e[0]*this.size[1]*this.size[2]+e[1]*this.size[2]+e[2]]={pos:e,state:a,nbt:r},this}getBlocks(){return this.blocks.map(e=>({pos:e.pos,state:this.palette[e.state],nbt:e.nbt}))}getBlock(e){if(!this.isInside(e))return null;const t=this.blocksMap[e[0]*this.size[1]*this.size[2]+e[1]*this.size[2]+e[2]];return t?{pos:t.pos,state:this.palette[t.state],nbt:t.nbt}:null}isInside(e){return e[0]>=0&&e[0]=0&&e[1]=0&&e[2]P.fromNbt({name:"",value:n})),r=He(e.value,"blocks","compound").map(n=>({pos:He(n,"pos","int",3),state:Be(n,"state","int"),nbt:$t(()=>Be(n,"nbt","compound"),void 0)}));return new Kt(t,i,r)}}function de(s){return s*s}function ve(s,e,t){return Math.max(e,Math.min(t,s))}function we(s,e,t){return e+s*(t-e)}function vt(s,e,t,i,r,n){return we(e,we(s,t,i),we(s,r,n))}function Ns(s,e,t,i,r,n,a,o,u,f,c){return we(t,vt(s,e,i,r,n,a),vt(s,e,o,u,f,c))}function Je(s,e,t){return s===0?e():s===1?t():e()+s*(t()-e())}function Ot(s,e,t,i,r,n){return Je(e,()=>Je(s,t,i),()=>Je(s,r,n))}function Rs(s,e,t,i,r,n,a,o,u,f,c){return Je(t,()=>Ot(s,e,i,r,n,a),()=>Ot(s,e,o,u,f,c))}function Rt(s,e,t){return t<0?s:t>1?e:we(t,s,e)}function Qt(s,e,t){return(s-e)/(t-e)}function lt(s){return s*s*s*(s*(6*s-15)+10)}function Qe(s,e,t,i,r){return we(Qt(s,e,t),i,r)}function es(s,e,t,i,r){return Rt(i,r,Qt(s,e,t))}function Bs(s,e,t){let i=e-s;for(;i>0;){const r=Math.floor(i/2),n=s+r;t(n)?i=r:(s=n+1,i-=r+1)}return s}function ts(s,e,t){let i=BigInt(3129871*s)^BigInt(t)*BigInt(116129781)^BigInt(e);return i=i*i*BigInt(42317861)+i*BigInt(11),i>>BigInt(16)}function wt(s,e,t,i,r,n,a,o){return BigInt(s)<{var g;return(g=v.readObject(d))!=null?g:{}}))!=null?o:[];if(m.length===0)return new e(0);for(const d of m){const g=(u=v.readNumber(d.location))!=null?u:0,w=i(d.value,n),S=(f=v.readNumber(d.derivative))!=null?f:0;h.addPoint(g,w,S)}return h};class e{constructor(r){this.value=r}compute(){return this.value}min(){return this.value}max(){return this.value}mapAll(){return this}}s.Constant=e;class t{constructor(r,n=[],a=[],o=[]){this.coordinate=r,this.locations=n,this.values=a,this.derivatives=o}compute(r){const n=this.coordinate.compute(r),a=Bs(0,this.locations.length,I=>nr.min()))}max(){return Math.max(...this.values.map(r=>r.max()))}mapAll(r){return new t(r(this.coordinate),this.locations,this.values.map(n=>n.mapAll(r)),this.derivatives)}addPoint(r,n,a=0){return this.locations.push(r),this.values.push(typeof n=="number"?new s.Constant(n):n),this.derivatives.push(a),this}}s.MultiPoint=t})(Te||(Te={}));const ae=class{constructor(s){this.seed=BigInt(0),this.setSeed(s)}fork(){return new ae(this.nextLong())}forkPositional(){return new Ts(this.nextLong())}setSeed(s){this.seed=s^ae.MULTIPLIER&ae.MODULUS_MASK}advance(){this.seed=this.seed*ae.MULTIPLIER+ae.INCREMENT&ae.MODULUS_MASK}consume(s){for(let e=0;e>BigInt(ae.MODULUS_BITS-s));return e>2147483647?e-4294967296:e}nextInt(s){if(s===void 0)return this.next(32);if((s&s-1)==0)return Number(BigInt(s)*BigInt(this.next(31))>>BigInt(31));let e,t;for(;(e=this.next(31))-(t=e%s)+(s-1)<0;);return t}nextLong(){return(BigInt(this.next(32))<>N.BIGINT_30)*N.STAFFORD_1&N.MAX_ULONG)^s>>N.BIGINT_27)*N.STAFFORD_2&N.MAX_ULONG)^s>>N.BIGINT_31)&N.MAX_ULONG}static upgradeSeedTo128bit(s){s<0&&(s+=N.POW2_60);const e=s^N.SILVER_RATIO_64,t=e+N.GOLDEN_RATIO_64&N.MAX_ULONG;return[N.mixStafford13(e),N.mixStafford13(t)]}static rotateLeft(s,e){return s<>N.BIGINT_64-e}setSeed(s){this.seed=N.upgradeSeedTo128bit(s)}fork(){return new N([this.next(),this.next()])}forkPositional(){return new Cs(this.next(),this.next())}next(){const s=this.seed[0];let e=this.seed[1];const t=N.rotateLeft(s+e&N.MAX_ULONG,N.BIGINT_17)+s&N.MAX_ULONG;return e^=s,this.seed=[N.rotateLeft(s,N.BIGINT_49)^e^e<N.POW2_63&&(s-=N.POW2_60),s}consume(s){let e=this.seed[0],t=this.seed[1];for(let i=0;i>BigInt(64-s)}nextInt(s){let e=this.next()&N.MAX_UINT;if(s){const t=BigInt(s);let i=e*t,r=i&N.MAX_UINT;if(r>N.BIGINT_32;return Number(n)}{let t=Number(e);return t>=2147483648&&(t-=4294967296),t}}nextFloat(){return Number(this.nextBits(24))*N.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*N.DOUBLE_MULTIPLIER}parityConfigString(){return"seedLo: "+this.seed[0]+", seedHi: "+this.seed[1]}};let L=N;L.SILVER_RATIO_64=BigInt("7640891576956012809"),L.GOLDEN_RATIO_64=BigInt("-7046029254386353131"),L.FLOAT_MULTIPLIER=1/Math.pow(2,24),L.DOUBLE_MULTIPLIER=11102230246251565e-32,L.BIGINT_1=BigInt(1),L.BIGINT_17=BigInt(17),L.BIGINT_21=BigInt(21),L.BIGINT_27=BigInt(27),L.BIGINT_28=BigInt(28),L.BIGINT_30=BigInt(30),L.BIGINT_31=BigInt(31),L.BIGINT_32=BigInt(32),L.BIGINT_49=BigInt(49),L.BIGINT_64=BigInt(64),L.STAFFORD_1=BigInt("-4658895280553007687"),L.STAFFORD_2=BigInt("-7723592293110705685"),L.MAX_ULONG=BigInt("0xFFFFFFFFFFFFFFFF"),L.POW2_60=BigInt("0x10000000000000000"),L.POW2_63=BigInt("0x8000000000000000"),L.MAX_UINT=BigInt(4294967295);class Cs{constructor(e,t){this.seedLo=e,this.seedHi=t}at(e,t,i){const r=ts(e,t,i)^this.seedLo;return new L([r,this.seedHi])}fromHashOf(e){const t=Zt(e,{asBytes:!0}),i=wt(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),r=wt(t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15]);return new L([i^this.seedLo,r^this.seedHi])}seedKey(){return[this.seedLo,this.seedHi]}}const ue=class{constructor(s){this.xo=256*s.nextDouble(),this.yo=256*s.nextDouble(),this.zo=256*s.nextDouble(),this.p=Array(256);for(let e=0;e<256;e+=1)this.p[e]=e;for(let e=0;e<256;e+=1){const t=s.nextInt(256-e),i=this.p[e];this.p[e]=this.p[e+t],this.p[e+t]=i}}sample2D(s,e){let t,i,r;const n=(s+e)*ue.F2,a=Math.floor(s+n),o=s-(a-(t=(a+(i=Math.floor(e+n)))*ue.G2));let u,f;o>(r=e-(i-t))?(u=1,f=0):(u=0,f=1);const c=o-u+ue.G2,h=r-f+ue.G2,m=o-1+2*ue.G2,d=r-1+2*ue.G2,g=255&a,w=255&i,S=this.P(g+this.P(w))%12,I=this.P(g+u+this.P(w+f))%12,B=this.P(g+1+this.P(w+1))%12;return 70*(this.getCornerNoise3D(S,o,r,0,.5)+this.getCornerNoise3D(I,c,h,0,.5)+this.getCornerNoise3D(B,m,d,0,.5))}sample(s,e,t){const i=.3333333333333333*(s+e+t),r=Math.floor(s+i),n=Math.floor(e+i),a=Math.floor(t+i),o=.16666666666666666*(r+n+a),u=s-(r-o),f=e-(n-o),c=t-(a-o);let h,m,d,g,w,S;u>=f?f>=c?(h=1,m=0,d=0,g=1,w=1,S=0):u>=c?(h=1,m=0,d=0,g=1,w=0,S=1):(h=0,m=0,d=1,g=1,w=0,S=1):f127?t-256:t;for(let t=0;t<256;t+=1){const i=e.nextInt(256-t),r=this.p[t];this.p[t]=this.p[t+i],this.p[t+i]=r}}sample(e,t,i,r=0,n=0){const a=e+this.xo,o=t+this.yo,u=i+this.zo,f=Math.floor(a),c=Math.floor(o),h=Math.floor(u),m=a-f,d=o-c,g=u-h;let w=0;if(r!==0){const S=n>=0&&n=0;r-=1)r0&&(r=this.maxLimitNoise.getOctaveNoise(f))&&(u+=r.sample(m,d,g,h,t*h)/a),a/=2}return Rt(o/512,u/512,n)/128}}var bt;(bt||(bt={})).fromJson=function(s){var e,t,i,r,n;const a=(e=v.readObject(s))!=null?e:{};return{xzScale:(t=v.readNumber(a.xz_scale))!=null?t:1,yScale:(i=v.readNumber(a.y_scale))!=null?i:1,xzFactor:(r=v.readNumber(a.xz_factor))!=null?r:80,yFactor:(n=v.readNumber(a.y_factor))!=null?n:80}};const $e=class{constructor(s,{firstOctave:e,amplitudes:t}){this.first=new X(s,e,t),this.second=new X(s,e,t);let i=1/0,r=-1/0;for(let a=0;a{var a;return(a=v.readNumber(n))!=null?a:0}))!=null?i:[]}};class si{constructor(e,t){const i=t[t.length-1],r=-t[0]+i+1,n=new Set(t),a=new te(e);this.noiseLevels=Array(r),i>=0&&i=0&&n.has(i-o)?this.noiseLevels[o]=new te(e):e.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,r)-1)}sample(e,t,i){let r=0,n=this.highestFreqInputFactor,a=this.highestFreqValueFactor;for(let o=0;o[(s>>16&255)/256,(s>>8&255)/256,(255&s)/256],xe=[124/256,189/256,107/256],Ms=Oe(6396257),ks=Oe(8431445),De=Oe(4764952),ut=Oe(4159204),Ft=Oe(8431445),Os=Oe(2129968),Dt=s=>[s/8,1-s/32,64*s],Ps={large_fern:()=>xe,tall_grass:()=>xe,grass_block:()=>xe,fern:()=>xe,grass:()=>xe,potted_fern:()=>xe,spruce_leaves:()=>Ms,birch_leaves:()=>ks,oak_leaves:()=>De,jungle_leaves:()=>De,acacia_leaves:()=>De,dark_oak_leaves:()=>De,vine:()=>De,water:()=>ut,bubble_column:()=>ut,cauldron:()=>ut,redstone_wire:s=>{var e;return(t=>{const i=t/15;return[.6*i+(i>0?.4:.3),ve(i*i*.7-.5,0,1),ve(i*i*.6-.7,0,1)]})(parseInt((e=s.power)!=null?e:"0"))},sugar_cane:()=>xe,attached_melon_stem:()=>Ft,attached_pumpkin_stem:()=>Ft,melon_stem:s=>{var e;return Dt(parseInt((e=s.age)!=null?e:"0"))},pumpkin_stem:s=>{var e;return Dt(parseInt((e=s.age)!=null?e:"0"))},lily_pad:()=>Os};var St;function tt(...s){let e=0;for(const r of s)e+=r.length;const t=new Float32Array(e);let i=0;for(const r of s)t.set(r,i),i+=r.length;return t}function st(s,e){const t=ps();for(let i=0;ithis.matchesVariant(r,e));if(t.length===0)return[];const i=this.variants[t[0]];return[Array.isArray(i)?i[0]:i]}return this.multipart?this.multipart.filter(t=>!t.when||this.matchesCase(t.when,e)).map(t=>Array.isArray(t.apply)?t.apply[0]:t.apply):[]}getBuffers(e,t,i,r,n,a){var o,u,f,c;const h=this.getModelVariants(t),m=[],d=[],g=[],w=[];for(const B of h){const R=St.rotate(a,(o=B.x)!=null?o:0,(u=B.y)!=null?u:0),_=r.getBlockModel(B.model).getBuffers(e,t,i,n,R);if(B.x||B.y){const x=Re();ft(x),Ce(x,x,[8,8,8]),ls(x,x,-mt((f=B.y)!=null?f:0)),us(x,x,-mt((c=B.x)!=null?c:0)),Ce(x,x,[-8,-8,-8]),st(_.position,x)}m.push(_.position),d.push(..._.texCoord),g.push(..._.tintColor),w.push(..._.index),n+=_.texCoord.length/2}const S=Re();ft(S),qt(S,S,[.0625,.0625,.0625]);const I=tt(...m);return st(I,S),{position:I,texCoord:d,tintColor:g,index:w}}matchesVariant(e,t){return e.split(",").every(i=>{const[r,n]=i.split("=");return t[r]===n})}matchesCase(e,t){if(Array.isArray(e.OR))return e.OR.some(r=>this.matchesCase(r,t));const i=e;return Object.keys(i).every(r=>i[r].split("|").includes(t[r]))}static fromJson(e,t){return new Bt(e,t.variants,t.multipart)}}const Ls={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]},Fs={x:[1,0,0],y:[0,1,0],z:[0,0,1]},Ie=1.41421356237,Ds={x:[1,Ie,Ie],y:[Ie,1,Ie],z:[Ie,Ie,1]};class at{constructor(e,t,i,r){this.id=e,this.parent=t,this.textures=i,this.elements=r,this.flattened=!1}getBuffers(e,t,i,r,n){var a;const o=[],u=[],f=[],c=[];for(const h of(a=this.elements)!=null?a:[]){const m=this.getElementBuffers(e,t,h,r,i,n);o.push(m.position),u.push(...m.texCoord),f.push(...m.tintColor),c.push(...m.index),r+=m.texCoord.length/2}return{position:tt(...o),texCoord:u,tintColor:f,index:c}}getElementBuffers(e,t,i,r,n,a){var o,u,f,c,h,m,d,g,w,S,I,B;const R=i.from[0],_=i.from[1],x=i.from[2],T=i.to[0],M=i.to[1],k=i.to[2],K=[],Y=[],H=[],Q=[],ee=(V,z,Ae)=>{var Pe,b,l,p,A,y,O,U,se,be,Z,q,W;const[ce,fe,Ye,Xe]=n.getTextureUV(this.getTexture(V.texture)),ye=(Ye-ce)/16,_e=(Xe-fe)/16,Le=ye/16,Fe=_e/16;z[0]=((b=(Pe=V.uv)==null?void 0:Pe[0])!=null?b:z[0])*ye+Le,z[1]=((p=(l=V.uv)==null?void 0:l[1])!=null?p:z[1])*_e+Fe,z[2]=((y=(A=V.uv)==null?void 0:A[2])!=null?y:z[2])*ye-Le,z[3]=((U=(O=V.uv)==null?void 0:O[3])!=null?U:z[3])*_e-Fe;const ie=Ls[(se=V.rotation)!=null?se:0];Y.push(ce+z[ie[0]],fe+z[ie[1]],ce+z[ie[2]],fe+z[ie[3]],ce+z[ie[4]],fe+z[ie[5]],ce+z[ie[6]],fe+z[ie[7]]);const Se=((be=V.tintindex)!=null?be:-1)>=0&&(W=(q=(Z=Ps)[e.path])==null?void 0:q.call(Z,t))!=null?W:[1,1,1];H.push(...Se,...Se,...Se,...Se),K.push(...Ae),Q.push(r,r+1,r+2,r,r+2,r+3),r+=4};!((u=(o=i.faces)==null?void 0:o.up)!=null&&u.texture)||i.faces.up.cullface&&a[i.faces.up.cullface]||ee(i.faces.up,[R,16-k,T,16-x],[R,M,k,T,M,k,T,M,x,R,M,x]),!((c=(f=i.faces)==null?void 0:f.down)!=null&&c.texture)||i.faces.down.cullface&&a[i.faces.down.cullface]||ee(i.faces.down,[16-k,16-T,16-x,16-R],[R,_,x,T,_,x,T,_,k,R,_,k]),!((m=(h=i.faces)==null?void 0:h.south)!=null&&m.texture)||i.faces.south.cullface&&a[i.faces.south.cullface]||ee(i.faces.south,[R,16-M,T,16-_],[R,_,k,T,_,k,T,M,k,R,M,k]),!((g=(d=i.faces)==null?void 0:d.north)!=null&&g.texture)||i.faces.north.cullface&&a[i.faces.north.cullface]||ee(i.faces.north,[16-T,16-M,16-R,16-_],[T,_,x,R,_,x,R,M,x,T,M,x]),!((S=(w=i.faces)==null?void 0:w.east)!=null&&S.texture)||i.faces.east.cullface&&a[i.faces.east.cullface]||ee(i.faces.east,[16-k,16-M,16-x,16-_],[T,_,k,T,_,x,T,M,x,T,M,k]),!((B=(I=i.faces)==null?void 0:I.west)!=null&&B.texture)||i.faces.west.cullface&&a[i.faces.west.cullface]||ee(i.faces.west,[x,16-M,k,16-_],[R,_,x,R,_,k,R,M,k,R,M,x]);const j=Re();if(ft(j),i.rotation){const V=Ze(...i.rotation.origin);Ce(j,j,V),hs(j,j,mt(i.rotation.angle),Fs[i.rotation.axis]),i.rotation.rescale&&qt(j,j,Ds[i.rotation.axis]),cs(V,V),Ce(j,j,V)}const ne=new Float32Array(K);return st(ne,j),{position:ne,texCoord:Y,tintColor:H,index:Q}}getTexture(e){for(var t,i;e.startsWith("#");)e=(i=(t=this.textures)==null?void 0:t[e.slice(1)])!=null?i:"";return e.startsWith("minecraft:")||(e="minecraft:"+e),e}flatten(e){var t;if(!this.flattened&&this.parent){const i=e.getBlockModel(this.parent);if(!i)return console.warn(`parent ${this.parent} does not exist!`),void(this.flattened=!0);i.flatten(e),this.elements||(this.elements=i.elements),this.textures||(this.textures={}),Object.keys((t=i.textures)!=null?t:{}).forEach(r=>{this.textures[r]||(this.textures[r]=i.textures[r])}),this.flattened=!0}}static fromJson(e,t){let i=t.parent;return i&&!i.startsWith("minecraft:")&&(i="minecraft:"+i),new at(e,i,t.textures,t.elements)}}class ht{constructor(e,t,i){this.gl=e,this.program=this.initShaderProgram(t,i)}getProgram(){return this.program}initShaderProgram(e,t){const i=this.loadShader(this.gl.VERTEX_SHADER,e),r=this.loadShader(this.gl.FRAGMENT_SHADER,t),n=this.gl.createProgram();if(this.gl.attachShader(n,i),this.gl.attachShader(n,r),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(e,t){const i=this.gl.createShader(e);if(this.gl.shaderSource(i,t),this.gl.compileShader(i),!this.gl.getShaderParameter(i,this.gl.COMPILE_STATUS)){const r=new Error(`Compiling ${e===this.gl.VERTEX_SHADER?"vertex":"fragment"} shader: ${this.gl.getShaderInfoLog(i)}`);throw this.gl.deleteShader(i),r}return i}}function rs(s,e,t,i,r){const n=new Bt("",{"":{model:""}},void 0),a={getBlockModel:()=>r};return r.flatten(a),n.getBuffers(s,{},e,a,t,i)}function Vt(s,e,t,i,r,n){const a=r.up?16:[14.2,12.5,10.5,9,7,5.3,3.7,1.9,16,16,16,16,16,16,16,16][t];return rs(D.create(s),i,e,r,new at("","",{still:`minecraft:block/${s}_still`,flow:`minecraft:block/${s}_flow`},[{from:[0,0,0],to:[16,a,16],faces:{up:{texture:"#still",tintindex:n,cullface:F.UP},down:{texture:"#still",tintindex:n,cullface:F.DOWN},north:{texture:"#flow",tintindex:n,cullface:F.NORTH},east:{texture:"#flow",tintindex:n,cullface:F.EAST},south:{texture:"#flow",tintindex:n,cullface:F.SOUTH},west:{texture:"#flow",tintindex:n,cullface:F.WEST}}}]))}const ns={"minecraft:water":(s,e,t,i)=>Vt("water",s,parseInt(e.level),t,i,0),"minecraft:lava":(s,e,t,i)=>Vt("lava",s,parseInt(e.level),t,i),"minecraft:chest":(s,e,t)=>function(i,r,n,a){return rs(D.create("chest"),a,i,{},new at("","",{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"}}}]))}(s,e.facing,e.type,t)},Vs=new Set(Object.keys(ns));class ii{constructor(e,t,i,r){var n,a;this.gl=e,this.structure=t,this.resources=i,this.chunks=[],r!=null&&r.facesPerBuffer&&console.warn("webgl render warning: facesPerBuffer option has been removed in favor of chunkSize"),this.chunkSize=(n=r==null?void 0:r.chunkSize)!=null?n:16,this.useInvisibleBlockBuffer=(a=r==null?void 0:r.useInvisibleBlockBuffer)==null||a,this.shaderProgram=new ht(e,` +import{p as jt,e as Zt,c as Re,i as ft,t as Ce,r as ls,a as mt,b as us,s as qt,f as Ze,d as hs,n as cs,g as fs,h as ms,j as ds,k as ps,l as gs,m as Tt,o as vs,q as ws}from"./index.d528c217.js";var F,Ee;(Ee=F||(F={})).UP="up",Ee.DOWN="down",Ee.NORTH="north",Ee.EAST="east",Ee.SOUTH="south",Ee.WEST="west";const bs={[F.UP]:[0,1,0],[F.DOWN]:[0,-1,0],[F.NORTH]:[0,0,-1],[F.EAST]:[1,0,0],[F.SOUTH]:[0,0,1],[F.WEST]:[-1,0,0]};var J,me;(function(s){s.ALL=[s.UP,s.DOWN,s.NORTH,s.EAST,s.SOUTH,s.WEST],s.normal=function(e){return bs[e]}})(F||(F={})),(me=J||(J={})).create=function(s,e,t){return[s,e,t]},me.ZERO=me.create(0,0,0),me.offset=function(s,e,t,i){return[s[0]+e,s[1]+t,s[2]+i]},me.towards=function(s,e){return me.offset(s,...F.normal(e))},me.equals=function(s,e){return s===e||s[0]===e[0]&&s[1]===e[1]&&s[2]===e[2]},me.magnitude=function(s){return s[0]*s[0]+s[1]*s[1]+s[2]*s[2]};const Ve={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},Ct=["end","byte","short","int","long","float","double","byteArray","string","list","compound","intArray","longArray"];class Ss{constructor(e,t=!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=t,this.arrayView=e,this.dataView=new DataView(e.buffer,e.byteOffset)}end(){return null}readNum(e,t){const i=this.dataView[e](this.offset,this.littleEndian);return this.offset+=t,i}long(){return[this.int(),this.int()]}byteArray(){const e=this.int(),t=[];for(let i=0;i=t)return;let i=this.buffer.byteLength;for(;ithis.buffer.byteLength&&n.fill(0,this.buffer.byteLength,this.offset),this.buffer=r,this.dataView=new DataView(r),this.arrayView=n}getData(){return this.accommodate(0),this.arrayView.slice(0,this.offset)}end(e){}writeNum(e,t,i){this.accommodate(t),this.dataView[e](this.offset,i,this.littleEndian),this.offset+=t}long(e){this.int(e[0]),this.int(e[1])}byteArray(e){this.int(e.length),this.accommodate(e.length),this.arrayView.set(e,this.offset),this.offset+=e.length}intArray(e){this.int(e.length);for(let t=0;t>6),a.push(128|63&n)):n<65536?(a.push(224|n>>12),a.push(128|n>>6&63),a.push(128|63&n)):(a.push(240|n>>18&7),a.push(128|n>>12&63),a.push(128|n>>6&63),a.push(128|63&n));return a}(e);this.short(t.length),this.accommodate(t.length),this.arrayView.set(t,this.offset),this.offset+=t.length}list(e){this.byte(Ve[e.type]),this.int(e.value.length),e.value;for(let t=0;t>16),i.setInt16(a+1,65535&r),i.setInt8(a+3,o),i.setInt32(a+4096,n.timestamp);const u=4096*r;i.setInt32(u,n.data.length+1),i.setInt8(u+4,n.compression),t.set(n.data,u+5),r+=o}return t}function ei(s,e,t,i){const r=Jt(s,e,t);switch(r.compression){case 1:r.data=dt(i);break;case 2:r.data=dt(i,!1,!0);break;case 3:r.data=It(i);break;default:throw new Error(`Invalid compression mode ${r.compression}`)}return r}function Jt(s,e,t){const i=s.find(r=>r.x===e&&r.z===t);if(i===void 0)throw new Error(`Cannot find chunk [${e}, ${t}]`);return i}function Be(s,e,t){if(!s[e])throw new Error(`Missing ${e} tag`);if(s[e].type!==t)throw new Error(`Expected ${e} to be of type ${t}, but found ${s[e].type}`);return s[e].value}function He(s,e,t,i){const r=Be(s,e,"list");if(r.type!==t)throw new Error(`Expected ${e} to be a list of ${t}s, but found ${r.type}s`);if(i&&r.value.length!==i)throw new Error(`Expected ${e} to be a list of length ${i}, but found length ${r.value.length}`);return r.value}function $t(s,e){try{return s()}catch{return e}}var v;function qe(s){let e=null;return()=>(e==null&&(e=s()),e)}function nt(s,e,t){const i=s.get(e);if(i)return i;const r=t(e);return s.set(e,r),r}(function(s){function e(t){return typeof t=="object"&&t!==null?t:void 0}s.readNumber=function(t){return typeof t=="number"?t:void 0},s.readInt=function(t){return typeof t=="number"?Math.floor(t):void 0},s.readString=function(t){return typeof t=="string"?t:void 0},s.readBoolean=function(t){return typeof t=="boolean"?t:void 0},s.readObject=e,s.readArray=function(t,i){if(Array.isArray(t))return t.map(r=>i(r))},s.readMap=function(t,i){var r;const n=(r=e(t))!=null?r:{};return Object.fromEntries(Object.entries(n).map(([a,o])=>[a,i(o)]))},s.compose=function(t,i,r){const n=i(t);return n?r(n):void 0},s.readEnum=function(t,i){return typeof t!="string"?i[0]:i.includes(t)?t:i[0]}})(v||(v={}));const We=class{constructor(s,e){if(this.namespace=s,this.path=e,!s.match(/^[a-z0-9._-]+$/))throw new Error(`Non [a-z0-9._-] character in namespace of ${s}:${e}`);if(!e.match(/^[a-z0-9/._-]+$/))throw new Error(`Non [a-z0-9/._-] character in path of ${s}:${e}`)}equals(s){return this===s||this.namespace===s.namespace&&this.path===s.path}toString(){return`${this.namespace}:${this.path}`}static create(s){return new We(this.DEFAULT_NAMESPACE,s)}static parse(s){const e=s.indexOf(this.SEPARATOR);if(e>=0){const t=e>=1?s.substring(0,e):this.DEFAULT_NAMESPACE,i=s.substring(e+1);return new We(t,i)}return new We(this.DEFAULT_NAMESPACE,s)}};let D=We;D.DEFAULT_NAMESPACE="minecraft",D.SEPARATOR=":";var As=Object.defineProperty,ys=Object.defineProperties,_s=Object.getOwnPropertyDescriptors,Mt=Object.getOwnPropertySymbols,Es=Object.prototype.hasOwnProperty,Is=Object.prototype.propertyIsEnumerable,kt=(s,e,t)=>e in s?As(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t;const oe=class{constructor(s,e={}){this.properties=e,this.name=typeof s=="string"?D.parse(s):s}getName(){return this.name}getProperties(){return this.properties}getProperty(s){return this.properties[s]}isFluid(){return this.is(oe.WATER)||this.is(oe.LAVA)}equals(s){return!!this.name.equals(s.name)&&Object.keys(this.properties).every(e=>s.properties[e]===this.properties[e])}is(s){return this.name.equals(s.name)}toString(){return Object.keys(this.properties).length===0?this.name.toString():`${this.name.toString()}[${Object.entries(this.properties).map(([s,e])=>s+"="+e).join(",")}]`}static fromNbt(s){const e=D.parse(Be(s.value,"Name","string")),t=$t(()=>Be(s.value,"Properties","compound"),{}),i=Object.keys(t).reduce((r,n)=>{return a=((u,f)=>{for(var c in f||(f={}))Es.call(f,c)&&kt(u,c,f[c]);if(Mt)for(var c of Mt(f))Is.call(f,c)&&kt(u,c,f[c]);return u})({},r),o={[n]:Be(t,n,"string")},ys(a,_s(o));var a,o},{});return new oe(e,i)}static fromJson(s){var e,t;const i=(e=v.readObject(s))!=null?e:{},r=D.parse((t=v.readString(i.Name))!=null?t:oe.STONE.name.toString()),n=v.readMap(i.Properties,a=>{var o;return(o=v.readString(a))!=null?o:""});return new oe(r,n)}};let P=oe;P.AIR=new oe(D.create("air")),P.STONE=new oe(D.create("stone")),P.WATER=new oe(D.create("water"),{level:"0"}),P.LAVA=new oe(D.create("lava"),{level:"0"});const Ue=class{constructor(s){this.minY=s,this.storage=Array(Ue.SIZE).fill(0),this.palette=[P.AIR]}get minBlockY(){return this.minY<<4}index(s,e,t){return(s<<8)+(e<<4)+t}getBlockState(s,e,t){var i;const r=this.storage[this.index(s,e,t)];return(i=this.palette[r])!=null?i:P.AIR}setBlockState(s,e,t,i){let r=this.palette.findIndex(n=>n.equals(i));r===-1&&(r=this.palette.length,this.palette.push(i)),this.storage[this.index(s,e,t)]=r}};let pt=Ue;pt.WIDTH=16,pt.SIZE=Ue.WIDTH*Ue.WIDTH*Ue.WIDTH;class ti{constructor(e,t,i){this.minY=e,this.height=t,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(e){return(e>>4)-this.minSection}getBlockState(e){var t;const[i,r,n]=e,a=this.sections[this.getSectionIndex(r)];return(t=a==null?void 0:a.getBlockState(15&i,15&r,15&n))!=null?t:P.AIR}setBlockState(e,t){const[i,r,n]=e,a=this.getSectionIndex(r);let o=this.sections[a];if(o===null){if(t.equals(P.AIR))return;o=this.getOrCreateSection(a)}o.setBlockState(15&i,15&r,15&n,t)}getOrCreateSection(e){return this.sections[e]==null&&(this.sections[e]=new pt(this.minSection+e)),this.sections[e]}}var $,Me;(function(s){function e(t,i){return BigInt(4294967295&t)|BigInt(4294967295&i)<>4,t[2]>>4]},s.fromLong=function(t){return[4294967295&Number(t),Number(t>>BigInt(32))]},s.toLong=function(t){return e(t[0],t[1])},s.asLong=e,s.minBlockX=function(t){return t[0]<<4},s.minBlockZ=function(t){return t[1]<<4},s.maxBlockX=function(t){return 15+(t[0]<<4)},s.maxBlockZ=function(t){return 15+(t[1]<<4)}})($||($={})),function(s){function e(i){return{value:()=>i,key:()=>{}}}function t(i,r){return{value:()=>i.getOrThrow(r),key:()=>r}}s.parser=function(i,r){return n=>typeof n=="string"?t(i,D.parse(n)):e(r(n))},s.direct=e,s.reference=t}(Me||(Me={}));const Nt=class{constructor(s,e){this.key=s,this.parser=e,this.storage=new Map,this.builtin=new Map}register(s,e,t){return this.storage.set(s.toString(),e),t&&this.builtin.set(s.toString(),e),Me.reference(this,s)}keys(){return[...this.storage.keys()].map(s=>D.parse(s))}get(s){return this.storage.get(s.toString())}getOrThrow(s){const e=this.storage.get(s.toString());if(e===void 0)throw new Error(`Missing key in ${this.key.toString()}: ${s.toString()}`);return e}parse(s){if(!this.parser)throw new Error(`No parser exists for ${this.key.toString()}`);return this.parser(s)}clear(){this.storage.clear();for(const[s,e]of this.builtin.entries())this.storage.set(s,e);return this}assign(s){if(!this.key.equals(s.key))throw new Error(`Cannot assign registry of type ${s.key.toString()} to registry of type ${this.key.toString()}`);for(const e of s.keys())this.storage.set(e.toString(),s.getOrThrow(e));return this}cloneEmpty(){return new Nt(this.key,this.parser)}};let gt=Nt;gt.REGISTRY=new Nt(D.create("root"));class Kt{constructor(e,t=[],i=[]){this.size=e,this.palette=t,this.blocks=i,this.blocksMap=[],i.forEach(r=>{if(!this.isInside(r.pos))throw new Error(`Found block at ${r.pos} which is outside the structure bounds ${this.size}`);this.blocksMap[r.pos[0]*e[1]*e[2]+r.pos[1]*e[2]+r.pos[2]]=r})}getSize(){return this.size}addBlock(e,t,i,r){if(!this.isInside(e))throw new Error(`Cannot add block at ${e} outside the structure bounds ${this.size}`);const n=new P(t,i);let a=this.palette.findIndex(o=>o.equals(n));return a===-1&&(a=this.palette.length,this.palette.push(n)),this.blocks.push({pos:e,state:a,nbt:r}),this.blocksMap[e[0]*this.size[1]*this.size[2]+e[1]*this.size[2]+e[2]]={pos:e,state:a,nbt:r},this}getBlocks(){return this.blocks.map(e=>({pos:e.pos,state:this.palette[e.state],nbt:e.nbt}))}getBlock(e){if(!this.isInside(e))return null;const t=this.blocksMap[e[0]*this.size[1]*this.size[2]+e[1]*this.size[2]+e[2]];return t?{pos:t.pos,state:this.palette[t.state],nbt:t.nbt}:null}isInside(e){return e[0]>=0&&e[0]=0&&e[1]=0&&e[2]P.fromNbt({name:"",value:n})),r=He(e.value,"blocks","compound").map(n=>({pos:He(n,"pos","int",3),state:Be(n,"state","int"),nbt:$t(()=>Be(n,"nbt","compound"),void 0)}));return new Kt(t,i,r)}}function de(s){return s*s}function ve(s,e,t){return Math.max(e,Math.min(t,s))}function we(s,e,t){return e+s*(t-e)}function vt(s,e,t,i,r,n){return we(e,we(s,t,i),we(s,r,n))}function Ns(s,e,t,i,r,n,a,o,u,f,c){return we(t,vt(s,e,i,r,n,a),vt(s,e,o,u,f,c))}function Je(s,e,t){return s===0?e():s===1?t():e()+s*(t()-e())}function Ot(s,e,t,i,r,n){return Je(e,()=>Je(s,t,i),()=>Je(s,r,n))}function Rs(s,e,t,i,r,n,a,o,u,f,c){return Je(t,()=>Ot(s,e,i,r,n,a),()=>Ot(s,e,o,u,f,c))}function Rt(s,e,t){return t<0?s:t>1?e:we(t,s,e)}function Qt(s,e,t){return(s-e)/(t-e)}function lt(s){return s*s*s*(s*(6*s-15)+10)}function Qe(s,e,t,i,r){return we(Qt(s,e,t),i,r)}function es(s,e,t,i,r){return Rt(i,r,Qt(s,e,t))}function Bs(s,e,t){let i=e-s;for(;i>0;){const r=Math.floor(i/2),n=s+r;t(n)?i=r:(s=n+1,i-=r+1)}return s}function ts(s,e,t){let i=BigInt(3129871*s)^BigInt(t)*BigInt(116129781)^BigInt(e);return i=i*i*BigInt(42317861)+i*BigInt(11),i>>BigInt(16)}function wt(s,e,t,i,r,n,a,o){return BigInt(s)<{var g;return(g=v.readObject(d))!=null?g:{}}))!=null?o:[];if(m.length===0)return new e(0);for(const d of m){const g=(u=v.readNumber(d.location))!=null?u:0,w=i(d.value,n),S=(f=v.readNumber(d.derivative))!=null?f:0;h.addPoint(g,w,S)}return h};class e{constructor(r){this.value=r}compute(){return this.value}min(){return this.value}max(){return this.value}mapAll(){return this}}s.Constant=e;class t{constructor(r,n=[],a=[],o=[]){this.coordinate=r,this.locations=n,this.values=a,this.derivatives=o}compute(r){const n=this.coordinate.compute(r),a=Bs(0,this.locations.length,I=>nr.min()))}max(){return Math.max(...this.values.map(r=>r.max()))}mapAll(r){return new t(r(this.coordinate),this.locations,this.values.map(n=>n.mapAll(r)),this.derivatives)}addPoint(r,n,a=0){return this.locations.push(r),this.values.push(typeof n=="number"?new s.Constant(n):n),this.derivatives.push(a),this}}s.MultiPoint=t})(Te||(Te={}));const ae=class{constructor(s){this.seed=BigInt(0),this.setSeed(s)}fork(){return new ae(this.nextLong())}forkPositional(){return new Ts(this.nextLong())}setSeed(s){this.seed=s^ae.MULTIPLIER&ae.MODULUS_MASK}advance(){this.seed=this.seed*ae.MULTIPLIER+ae.INCREMENT&ae.MODULUS_MASK}consume(s){for(let e=0;e>BigInt(ae.MODULUS_BITS-s));return e>2147483647?e-4294967296:e}nextInt(s){if(s===void 0)return this.next(32);if((s&s-1)==0)return Number(BigInt(s)*BigInt(this.next(31))>>BigInt(31));let e,t;for(;(e=this.next(31))-(t=e%s)+(s-1)<0;);return t}nextLong(){return(BigInt(this.next(32))<>N.BIGINT_30)*N.STAFFORD_1&N.MAX_ULONG)^s>>N.BIGINT_27)*N.STAFFORD_2&N.MAX_ULONG)^s>>N.BIGINT_31)&N.MAX_ULONG}static upgradeSeedTo128bit(s){s<0&&(s+=N.POW2_60);const e=s^N.SILVER_RATIO_64,t=e+N.GOLDEN_RATIO_64&N.MAX_ULONG;return[N.mixStafford13(e),N.mixStafford13(t)]}static rotateLeft(s,e){return s<>N.BIGINT_64-e}setSeed(s){this.seed=N.upgradeSeedTo128bit(s)}fork(){return new N([this.next(),this.next()])}forkPositional(){return new Cs(this.next(),this.next())}next(){const s=this.seed[0];let e=this.seed[1];const t=N.rotateLeft(s+e&N.MAX_ULONG,N.BIGINT_17)+s&N.MAX_ULONG;return e^=s,this.seed=[N.rotateLeft(s,N.BIGINT_49)^e^e<N.POW2_63&&(s-=N.POW2_60),s}consume(s){let e=this.seed[0],t=this.seed[1];for(let i=0;i>BigInt(64-s)}nextInt(s){let e=this.next()&N.MAX_UINT;if(s){const t=BigInt(s);let i=e*t,r=i&N.MAX_UINT;if(r>N.BIGINT_32;return Number(n)}{let t=Number(e);return t>=2147483648&&(t-=4294967296),t}}nextFloat(){return Number(this.nextBits(24))*N.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*N.DOUBLE_MULTIPLIER}parityConfigString(){return"seedLo: "+this.seed[0]+", seedHi: "+this.seed[1]}};let L=N;L.SILVER_RATIO_64=BigInt("7640891576956012809"),L.GOLDEN_RATIO_64=BigInt("-7046029254386353131"),L.FLOAT_MULTIPLIER=1/Math.pow(2,24),L.DOUBLE_MULTIPLIER=11102230246251565e-32,L.BIGINT_1=BigInt(1),L.BIGINT_17=BigInt(17),L.BIGINT_21=BigInt(21),L.BIGINT_27=BigInt(27),L.BIGINT_28=BigInt(28),L.BIGINT_30=BigInt(30),L.BIGINT_31=BigInt(31),L.BIGINT_32=BigInt(32),L.BIGINT_49=BigInt(49),L.BIGINT_64=BigInt(64),L.STAFFORD_1=BigInt("-4658895280553007687"),L.STAFFORD_2=BigInt("-7723592293110705685"),L.MAX_ULONG=BigInt("0xFFFFFFFFFFFFFFFF"),L.POW2_60=BigInt("0x10000000000000000"),L.POW2_63=BigInt("0x8000000000000000"),L.MAX_UINT=BigInt(4294967295);class Cs{constructor(e,t){this.seedLo=e,this.seedHi=t}at(e,t,i){const r=ts(e,t,i)^this.seedLo;return new L([r,this.seedHi])}fromHashOf(e){const t=Zt(e,{asBytes:!0}),i=wt(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),r=wt(t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15]);return new L([i^this.seedLo,r^this.seedHi])}seedKey(){return[this.seedLo,this.seedHi]}}const ue=class{constructor(s){this.xo=256*s.nextDouble(),this.yo=256*s.nextDouble(),this.zo=256*s.nextDouble(),this.p=Array(256);for(let e=0;e<256;e+=1)this.p[e]=e;for(let e=0;e<256;e+=1){const t=s.nextInt(256-e),i=this.p[e];this.p[e]=this.p[e+t],this.p[e+t]=i}}sample2D(s,e){let t,i,r;const n=(s+e)*ue.F2,a=Math.floor(s+n),o=s-(a-(t=(a+(i=Math.floor(e+n)))*ue.G2));let u,f;o>(r=e-(i-t))?(u=1,f=0):(u=0,f=1);const c=o-u+ue.G2,h=r-f+ue.G2,m=o-1+2*ue.G2,d=r-1+2*ue.G2,g=255&a,w=255&i,S=this.P(g+this.P(w))%12,I=this.P(g+u+this.P(w+f))%12,B=this.P(g+1+this.P(w+1))%12;return 70*(this.getCornerNoise3D(S,o,r,0,.5)+this.getCornerNoise3D(I,c,h,0,.5)+this.getCornerNoise3D(B,m,d,0,.5))}sample(s,e,t){const i=.3333333333333333*(s+e+t),r=Math.floor(s+i),n=Math.floor(e+i),a=Math.floor(t+i),o=.16666666666666666*(r+n+a),u=s-(r-o),f=e-(n-o),c=t-(a-o);let h,m,d,g,w,S;u>=f?f>=c?(h=1,m=0,d=0,g=1,w=1,S=0):u>=c?(h=1,m=0,d=0,g=1,w=0,S=1):(h=0,m=0,d=1,g=1,w=0,S=1):f127?t-256:t;for(let t=0;t<256;t+=1){const i=e.nextInt(256-t),r=this.p[t];this.p[t]=this.p[t+i],this.p[t+i]=r}}sample(e,t,i,r=0,n=0){const a=e+this.xo,o=t+this.yo,u=i+this.zo,f=Math.floor(a),c=Math.floor(o),h=Math.floor(u),m=a-f,d=o-c,g=u-h;let w=0;if(r!==0){const S=n>=0&&n=0;r-=1)r0&&(r=this.maxLimitNoise.getOctaveNoise(f))&&(u+=r.sample(m,d,g,h,t*h)/a),a/=2}return Rt(o/512,u/512,n)/128}}var bt;(bt||(bt={})).fromJson=function(s){var e,t,i,r,n;const a=(e=v.readObject(s))!=null?e:{};return{xzScale:(t=v.readNumber(a.xz_scale))!=null?t:1,yScale:(i=v.readNumber(a.y_scale))!=null?i:1,xzFactor:(r=v.readNumber(a.xz_factor))!=null?r:80,yFactor:(n=v.readNumber(a.y_factor))!=null?n:80}};const $e=class{constructor(s,{firstOctave:e,amplitudes:t}){this.first=new X(s,e,t),this.second=new X(s,e,t);let i=1/0,r=-1/0;for(let a=0;a{var a;return(a=v.readNumber(n))!=null?a:0}))!=null?i:[]}};class si{constructor(e,t){const i=t[t.length-1],r=-t[0]+i+1,n=new Set(t),a=new te(e);this.noiseLevels=Array(r),i>=0&&i=0&&n.has(i-o)?this.noiseLevels[o]=new te(e):e.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,r)-1)}sample(e,t,i){let r=0,n=this.highestFreqInputFactor,a=this.highestFreqValueFactor;for(let o=0;o[(s>>16&255)/256,(s>>8&255)/256,(255&s)/256],xe=[124/256,189/256,107/256],Ms=Oe(6396257),ks=Oe(8431445),De=Oe(4764952),ut=Oe(4159204),Ft=Oe(8431445),Os=Oe(2129968),Dt=s=>[s/8,1-s/32,64*s],Ps={large_fern:()=>xe,tall_grass:()=>xe,grass_block:()=>xe,fern:()=>xe,grass:()=>xe,potted_fern:()=>xe,spruce_leaves:()=>Ms,birch_leaves:()=>ks,oak_leaves:()=>De,jungle_leaves:()=>De,acacia_leaves:()=>De,dark_oak_leaves:()=>De,vine:()=>De,water:()=>ut,bubble_column:()=>ut,cauldron:()=>ut,redstone_wire:s=>{var e;return(t=>{const i=t/15;return[.6*i+(i>0?.4:.3),ve(i*i*.7-.5,0,1),ve(i*i*.6-.7,0,1)]})(parseInt((e=s.power)!=null?e:"0"))},sugar_cane:()=>xe,attached_melon_stem:()=>Ft,attached_pumpkin_stem:()=>Ft,melon_stem:s=>{var e;return Dt(parseInt((e=s.age)!=null?e:"0"))},pumpkin_stem:s=>{var e;return Dt(parseInt((e=s.age)!=null?e:"0"))},lily_pad:()=>Os};var St;function tt(...s){let e=0;for(const r of s)e+=r.length;const t=new Float32Array(e);let i=0;for(const r of s)t.set(r,i),i+=r.length;return t}function st(s,e){const t=ps();for(let i=0;ithis.matchesVariant(r,e));if(t.length===0)return[];const i=this.variants[t[0]];return[Array.isArray(i)?i[0]:i]}return this.multipart?this.multipart.filter(t=>!t.when||this.matchesCase(t.when,e)).map(t=>Array.isArray(t.apply)?t.apply[0]:t.apply):[]}getBuffers(e,t,i,r,n,a){var o,u,f,c;const h=this.getModelVariants(t),m=[],d=[],g=[],w=[];for(const B of h){const R=St.rotate(a,(o=B.x)!=null?o:0,(u=B.y)!=null?u:0),_=r.getBlockModel(B.model).getBuffers(e,t,i,n,R);if(B.x||B.y){const x=Re();ft(x),Ce(x,x,[8,8,8]),ls(x,x,-mt((f=B.y)!=null?f:0)),us(x,x,-mt((c=B.x)!=null?c:0)),Ce(x,x,[-8,-8,-8]),st(_.position,x)}m.push(_.position),d.push(..._.texCoord),g.push(..._.tintColor),w.push(..._.index),n+=_.texCoord.length/2}const S=Re();ft(S),qt(S,S,[.0625,.0625,.0625]);const I=tt(...m);return st(I,S),{position:I,texCoord:d,tintColor:g,index:w}}matchesVariant(e,t){return e.split(",").every(i=>{const[r,n]=i.split("=");return t[r]===n})}matchesCase(e,t){if(Array.isArray(e.OR))return e.OR.some(r=>this.matchesCase(r,t));const i=e;return Object.keys(i).every(r=>i[r].split("|").includes(t[r]))}static fromJson(e,t){return new Bt(e,t.variants,t.multipart)}}const Ls={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]},Fs={x:[1,0,0],y:[0,1,0],z:[0,0,1]},Ie=1.41421356237,Ds={x:[1,Ie,Ie],y:[Ie,1,Ie],z:[Ie,Ie,1]};class at{constructor(e,t,i,r){this.id=e,this.parent=t,this.textures=i,this.elements=r,this.flattened=!1}getBuffers(e,t,i,r,n){var a;const o=[],u=[],f=[],c=[];for(const h of(a=this.elements)!=null?a:[]){const m=this.getElementBuffers(e,t,h,r,i,n);o.push(m.position),u.push(...m.texCoord),f.push(...m.tintColor),c.push(...m.index),r+=m.texCoord.length/2}return{position:tt(...o),texCoord:u,tintColor:f,index:c}}getElementBuffers(e,t,i,r,n,a){var o,u,f,c,h,m,d,g,w,S,I,B;const R=i.from[0],_=i.from[1],x=i.from[2],T=i.to[0],M=i.to[1],k=i.to[2],K=[],Y=[],H=[],Q=[],ee=(V,z,Ae)=>{var Pe,b,l,p,A,y,O,U,se,be,Z,q,W;const[ce,fe,Ye,Xe]=n.getTextureUV(this.getTexture(V.texture)),ye=(Ye-ce)/16,_e=(Xe-fe)/16,Le=ye/16,Fe=_e/16;z[0]=((b=(Pe=V.uv)==null?void 0:Pe[0])!=null?b:z[0])*ye+Le,z[1]=((p=(l=V.uv)==null?void 0:l[1])!=null?p:z[1])*_e+Fe,z[2]=((y=(A=V.uv)==null?void 0:A[2])!=null?y:z[2])*ye-Le,z[3]=((U=(O=V.uv)==null?void 0:O[3])!=null?U:z[3])*_e-Fe;const ie=Ls[(se=V.rotation)!=null?se:0];Y.push(ce+z[ie[0]],fe+z[ie[1]],ce+z[ie[2]],fe+z[ie[3]],ce+z[ie[4]],fe+z[ie[5]],ce+z[ie[6]],fe+z[ie[7]]);const Se=((be=V.tintindex)!=null?be:-1)>=0&&(W=(q=(Z=Ps)[e.path])==null?void 0:q.call(Z,t))!=null?W:[1,1,1];H.push(...Se,...Se,...Se,...Se),K.push(...Ae),Q.push(r,r+1,r+2,r,r+2,r+3),r+=4};!((u=(o=i.faces)==null?void 0:o.up)!=null&&u.texture)||i.faces.up.cullface&&a[i.faces.up.cullface]||ee(i.faces.up,[R,16-k,T,16-x],[R,M,k,T,M,k,T,M,x,R,M,x]),!((c=(f=i.faces)==null?void 0:f.down)!=null&&c.texture)||i.faces.down.cullface&&a[i.faces.down.cullface]||ee(i.faces.down,[16-k,16-T,16-x,16-R],[R,_,x,T,_,x,T,_,k,R,_,k]),!((m=(h=i.faces)==null?void 0:h.south)!=null&&m.texture)||i.faces.south.cullface&&a[i.faces.south.cullface]||ee(i.faces.south,[R,16-M,T,16-_],[R,_,k,T,_,k,T,M,k,R,M,k]),!((g=(d=i.faces)==null?void 0:d.north)!=null&&g.texture)||i.faces.north.cullface&&a[i.faces.north.cullface]||ee(i.faces.north,[16-T,16-M,16-R,16-_],[T,_,x,R,_,x,R,M,x,T,M,x]),!((S=(w=i.faces)==null?void 0:w.east)!=null&&S.texture)||i.faces.east.cullface&&a[i.faces.east.cullface]||ee(i.faces.east,[16-k,16-M,16-x,16-_],[T,_,k,T,_,x,T,M,x,T,M,k]),!((B=(I=i.faces)==null?void 0:I.west)!=null&&B.texture)||i.faces.west.cullface&&a[i.faces.west.cullface]||ee(i.faces.west,[x,16-M,k,16-_],[R,_,x,R,_,k,R,M,k,R,M,x]);const j=Re();if(ft(j),i.rotation){const V=Ze(...i.rotation.origin);Ce(j,j,V),hs(j,j,mt(i.rotation.angle),Fs[i.rotation.axis]),i.rotation.rescale&&qt(j,j,Ds[i.rotation.axis]),cs(V,V),Ce(j,j,V)}const ne=new Float32Array(K);return st(ne,j),{position:ne,texCoord:Y,tintColor:H,index:Q}}getTexture(e){for(var t,i;e.startsWith("#");)e=(i=(t=this.textures)==null?void 0:t[e.slice(1)])!=null?i:"";return e.startsWith("minecraft:")||(e="minecraft:"+e),e}flatten(e){var t;if(!this.flattened&&this.parent){const i=e.getBlockModel(this.parent);if(!i)return console.warn(`parent ${this.parent} does not exist!`),void(this.flattened=!0);i.flatten(e),this.elements||(this.elements=i.elements),this.textures||(this.textures={}),Object.keys((t=i.textures)!=null?t:{}).forEach(r=>{this.textures[r]||(this.textures[r]=i.textures[r])}),this.flattened=!0}}static fromJson(e,t){let i=t.parent;return i&&!i.startsWith("minecraft:")&&(i="minecraft:"+i),new at(e,i,t.textures,t.elements)}}class ht{constructor(e,t,i){this.gl=e,this.program=this.initShaderProgram(t,i)}getProgram(){return this.program}initShaderProgram(e,t){const i=this.loadShader(this.gl.VERTEX_SHADER,e),r=this.loadShader(this.gl.FRAGMENT_SHADER,t),n=this.gl.createProgram();if(this.gl.attachShader(n,i),this.gl.attachShader(n,r),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(e,t){const i=this.gl.createShader(e);if(this.gl.shaderSource(i,t),this.gl.compileShader(i),!this.gl.getShaderParameter(i,this.gl.COMPILE_STATUS)){const r=new Error(`Compiling ${e===this.gl.VERTEX_SHADER?"vertex":"fragment"} shader: ${this.gl.getShaderInfoLog(i)}`);throw this.gl.deleteShader(i),r}return i}}function rs(s,e,t,i,r){const n=new Bt("",{"":{model:""}},void 0),a={getBlockModel:()=>r};return r.flatten(a),n.getBuffers(s,{},e,a,t,i)}function Vt(s,e,t,i,r,n){const a=r.up?16:[14.2,12.5,10.5,9,7,5.3,3.7,1.9,16,16,16,16,16,16,16,16][t];return rs(D.create(s),i,e,r,new at("","",{still:`minecraft:block/${s}_still`,flow:`minecraft:block/${s}_flow`},[{from:[0,0,0],to:[16,a,16],faces:{up:{texture:"#still",tintindex:n,cullface:F.UP},down:{texture:"#still",tintindex:n,cullface:F.DOWN},north:{texture:"#flow",tintindex:n,cullface:F.NORTH},east:{texture:"#flow",tintindex:n,cullface:F.EAST},south:{texture:"#flow",tintindex:n,cullface:F.SOUTH},west:{texture:"#flow",tintindex:n,cullface:F.WEST}}}]))}const ns={"minecraft:water":(s,e,t,i)=>Vt("water",s,parseInt(e.level),t,i,0),"minecraft:lava":(s,e,t,i)=>Vt("lava",s,parseInt(e.level),t,i),"minecraft:chest":(s,e,t)=>function(i,r,n,a){return rs(D.create("chest"),a,i,{},new at("","",{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"}}}]))}(s,e.facing,e.type,t)},Vs=new Set(Object.keys(ns));class ii{constructor(e,t,i,r){var n,a;this.gl=e,this.structure=t,this.resources=i,this.chunks=[],r!=null&&r.facesPerBuffer&&console.warn("webgl render warning: facesPerBuffer option has been removed in favor of chunkSize"),this.chunkSize=(n=r==null?void 0:r.chunkSize)!=null?n:16,this.useInvisibleBlockBuffer=(a=r==null?void 0:r.useInvisibleBlockBuffer)==null||a,this.shaderProgram=new ht(e,` attribute vec4 vertPos; attribute vec2 texCoord; attribute vec3 tintColor; @@ -71,4 +71,4 @@ import{p as jt,e as Zt,c as Re,i as ft,t as Ce,r as ls,a as us,s as qt,f as Ze,b gl_FragColor = vec4(vColor, 1.0); } `).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(e){this.structure=e,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 e=this.gl.createTexture();return this.gl.bindTexture(this.gl.TEXTURE_2D,e),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),e}getPerspective(){const e=70*Math.PI/180,t=this.gl.canvas.clientWidth/this.gl.canvas.clientHeight,i=Re();return fs(i,e,t,.1,500),i}getChunk(e){const t=2*Math.abs(e[0])+(e[0]<0?1:0),i=2*Math.abs(e[1])+(e[1]<0?1:0),r=2*Math.abs(e[2])+(e[2]<0?1:0);return this.chunks[t]||(this.chunks[t]=[]),this.chunks[t][i]||(this.chunks[t][i]=[]),this.chunks[t][i][r]||(this.chunks[t][i][r]={positions:[],textureCoordinates:[],tintColors:[],blockPositions:[],normals:[],indices:[],indexOffset:0}),this.chunks[t][i][r]}updateStructureBuffers(e){var t;const i=(o,u,f)=>{const c=Re();Ce(c,c,u),st(o.position,c),f.positions.push(o.position),f.textureCoordinates.push(...o.texCoord),f.tintColors.push(...o.tintColor);for(let h=0;h{o.positions=[],o.textureCoordinates=[],o.tintColors=[],o.blockPositions=[],o.normals=[],o.indices=[],o.indexOffset=0},n=o=>{o.buffer?(this.updateBuffer(o.buffer.position,this.gl.ARRAY_BUFFER,tt(...o.positions)),this.updateBuffer(o.buffer.texCoord,this.gl.ARRAY_BUFFER,new Float32Array(o.textureCoordinates)),this.updateBuffer(o.buffer.tintColor,this.gl.ARRAY_BUFFER,new Float32Array(o.tintColors)),this.updateBuffer(o.buffer.normal,this.gl.ARRAY_BUFFER,new Float32Array(o.normals)),this.updateBuffer(o.buffer.blockPos,this.gl.ARRAY_BUFFER,new Float32Array(o.blockPositions)),this.updateBuffer(o.buffer.index,this.gl.ELEMENT_ARRAY_BUFFER,new Uint16Array(o.indices)),o.buffer.length=o.indices.length):o.buffer={position:this.createBuffer(this.gl.ARRAY_BUFFER,tt(...o.positions)),texCoord:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(o.textureCoordinates)),tintColor:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(o.tintColors)),blockPos:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(o.blockPositions)),normal:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(o.normals)),index:this.createBuffer(this.gl.ELEMENT_ARRAY_BUFFER,new Uint16Array(o.indices)),length:o.indices.length}};let a;e?e.forEach(o=>{const u=this.getChunk(o);r(u)}):this.chunks.forEach(o=>o.forEach(u=>u.forEach(f=>{r(f)})));for(const o of this.structure.getBlocks()){const u=o.state.getName(),f=o.state.getProperties(),c=(t=this.resources.getDefaultBlockProperties(u))!=null?t:{};Object.entries(c).forEach(([d,g])=>{f[d]||(f[d]=g)});const h=[Math.floor(o.pos[0]/this.chunkSize),Math.floor(o.pos[1]/this.chunkSize),Math.floor(o.pos[2]/this.chunkSize)];if(e&&!e.some(d=>ms(d,h)))continue;const m=this.getChunk(h);try{const d=this.resources.getBlockDefinition(u),g={up:this.needsCull(o,F.UP),down:this.needsCull(o,F.DOWN),west:this.needsCull(o,F.WEST),east:this.needsCull(o,F.EAST),north:this.needsCull(o,F.NORTH),south:this.needsCull(o,F.SOUTH)};d&&(a=d.getBuffers(u,f,this.resources,this.resources,m.indexOffset,g),i(a,o.pos,m)),Vs.has(u.toString())&&(a=ns[u.toString()](m.indexOffset,f,this.resources,g),i(a,o.pos,m))}catch(d){console.error(`Error rendering block ${u}`,d)}}e?e.forEach(o=>{const u=this.getChunk(o);n(u)}):this.chunks.forEach(o=>o.forEach(u=>u.forEach(f=>{n(f)})))}needsCull(e,t){var i,r;const n=(i=this.structure.getBlock(J.towards(e.pos,t)))==null?void 0:i.state;return!!n&&((r=this.resources.getBlockFlags(n.getName()))!=null&&r.opaque?!(t===F.UP&&e.state.isFluid()):e.state.isFluid()&&n.isFluid())}getGridBuffers(){const[e,t,i]=this.structure.getSize(),r=[],n=[];r.push(0,0,0,e,0,0),n.push(1,0,0,1,0,0),r.push(0,0,0,0,0,i),n.push(0,0,1,0,0,1),r.push(0,0,0,0,t,0),r.push(e,0,0,e,t,0),r.push(0,0,i,0,t,i),r.push(e,0,i,e,t,i),r.push(0,t,0,0,t,i),r.push(e,t,0,e,t,i),r.push(0,t,0,e,t,0),r.push(0,t,i,e,t,i);for(let a=1;a<=e;a+=1)r.push(a,0,0,a,0,i);for(let a=1;a<=i;a+=1)r.push(0,0,a,e,0,a);for(let a=0;a<8+e+i;a+=1)n.push(.8,.8,.8,.8,.8,.8);return{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(r)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(n)),length:r.length/3}}getOutlineBuffers(){const e=[],t=[];return this.addCube(e,t,[1,1,1],[0,0,0],[1,1,1]),{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(e)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t)),length:e.length/3}}getInvisibleBlockBuffers(){if(!this.useInvisibleBlockBuffer)return;const e=this.structure.getSize(),t=[],i=[];for(let r=0;r{t.forEach(i=>{i.forEach(r=>{r.buffer&&(this.setVertexAttr("vertPos",3,r.buffer.position),this.setVertexAttr("texCoord",2,r.buffer.texCoord),this.setVertexAttr("tintColor",3,r.buffer.tintColor),this.setVertexAttr("normal",3,r.buffer.normal),this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,r.buffer.index),this.gl.drawElements(this.gl.TRIANGLES,r.buffer.length,this.gl.UNSIGNED_SHORT,0))})})})}drawColoredStructure(e){this.setShader(this.colorShaderProgram),this.setUniform("mView",e),this.setUniform("mProj",this.projMatrix),this.chunks.forEach(t=>{t.forEach(i=>{i.forEach(r=>{r.buffer&&(this.setVertexAttr("vertPos",3,r.buffer.position),this.setVertexAttr("blockPos",3,r.buffer.blockPos),this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,r.buffer.index),this.gl.drawElements(this.gl.TRIANGLES,r.buffer.length,this.gl.UNSIGNED_SHORT,0))})})})}drawOutline(e,t){this.setShader(this.gridShaderProgram),this.setVertexAttr("vertPos",3,this.outlineBuffers.position),this.setVertexAttr("vertColor",3,this.outlineBuffers.color);const i=Re();ds(i,e),Ce(i,i,t),this.setUniform("mView",i),this.setUniform("mProj",this.projMatrix),this.gl.drawArrays(this.gl.LINES,0,this.outlineBuffers.length)}setViewport(e,t,i,r){this.gl.viewport(e,t,i,r),this.projMatrix=this.getPerspective()}setShader(e){this.gl.useProgram(e),this.activeShader=e}setVertexAttr(e,t,i){const r=this.gl.getAttribLocation(this.activeShader,e);this.gl.bindBuffer(this.gl.ARRAY_BUFFER,i),this.gl.vertexAttribPointer(r,t,this.gl.FLOAT,!1,0,0),this.gl.enableVertexAttribArray(r)}setUniform(e,t){const i=this.gl.getUniformLocation(this.activeShader,e);this.gl.uniformMatrix4fv(i,!1,t)}}var Ut=(s,e,t)=>new Promise((i,r)=>{var n=u=>{try{o(t.next(u))}catch(f){r(f)}},a=u=>{try{o(t.throw(u))}catch(f){r(f)}},o=u=>u.done?i(u.value):Promise.resolve(u.value).then(n,a);o((t=t.apply(s,e)).next())});class Ke{constructor(e,t){this.img=e,this.idMap=t,this.part=16/e.width}getTextureAtlas(){return this.img}getTextureUV(e){var t;return(t=this.idMap[e])!=null?t:[0,0,this.part,this.part]}static fromBlobs(e){return Ut(this,null,function*(){const t=Math.sqrt(Object.keys(e).length+1),i=Math.pow(2,Math.ceil(Math.log(t)/Math.log(2))),r=16*i,n=1/i,a=document.createElement("canvas");a.width=r,a.height=r;const o=a.getContext("2d");this.drawInvalidTexture(o);const u={};let f=1;return yield Promise.all(Object.keys(e).map(c=>Ut(this,null,function*(){const h=f%i,m=Math.floor(f/i);f+=1,u[c]=[n*h,n*m,n*h+n,n*m+n];const d=yield createImageBitmap(e[c]);o.drawImage(d,0,0,16,16,16*h,16*m,16,16)}))),new Ke(o.getImageData(0,0,r,r),u)})}static empty(){const e=document.createElement("canvas");e.width=16,e.height=16;const t=e.getContext("2d");return Ke.drawInvalidTexture(t),new Ke(t.getImageData(0,0,16,16),{})}static drawInvalidTexture(e){e.fillStyle="black",e.fillRect(0,0,16,16),e.fillStyle="magenta",e.fillRect(0,0,8,8),e.fillRect(8,8,8,8)}}const ge=class{constructor(s,e,t){this.offsetSampler=s,this.factorSampler=e,this.jaggednessSampler=t}static extractor(s){return{compute:e=>e[s]}}static fromJson(s){var e;const t=(e=v.readObject(s))!=null?e:{};return new ge(Te.fromJson(t.offset,this.EXTRACTOR),Te.fromJson(t.factor,this.EXTRACTOR),Te.fromJson(t.jaggedness,this.EXTRACTOR))}offset(s){return this.offsetSampler.compute(s)+ge.GLOBAL_OFFSET}factor(s){return this.factorSampler.compute(s)}jaggedness(s){return this.jaggednessSampler.compute(s)}static point(s,e,t){return{continents:s,erosion:e,weirdness:t,ridges:this.peaksAndValleys(t)}}static peaksAndValleys(s){return 3*-(Math.abs(Math.abs(s)-.6666667)-.33333334)}};let pe=ge;var G,Ne,Gt,ke,xt;pe.GLOBAL_OFFSET=-.50375,pe.EXTRACTOR=s=>{var e;const t=(e=v.readString(s))!=null?e:"continents";return ge.extractor(t)},pe.CONTINENTS=ge.extractor("continents"),pe.EROSION=ge.extractor("erosion"),pe.WEIRDNESS=ge.extractor("weirdness"),pe.RIDGES=ge.extractor("ridges"),function(s){function e(t){return t.ySize<<2}s.fromJson=function(t){var i,r,n,a,o;const u=(i=v.readObject(t))!=null?i:{};return{minY:(r=v.readInt(u.min_y))!=null?r:0,height:(n=v.readInt(u.height))!=null?n:256,xzSize:(a=v.readInt(u.size_horizontal))!=null?a:1,ySize:(o=v.readInt(u.size_vertical))!=null?o:1,sampling:bt.fromJson(u.sampling),topSlide:Ne.fromJson(u.top_slide),bottomSlide:Ne.fromJson(u.bottom_slide),terrainShaper:pe.fromJson(u.terrain_shaper)}},s.cellHeight=e,s.cellWidth=function(t){return t.xzSize<<2},s.cellCountY=function(t){return t.height/e(t)},s.minCellY=function(t){return Math.floor(t.minY/e(t))},s.applySlides=function(t,i,r){const n=Math.floor(r/e(t))-s.minCellY(t);return i=Ne.apply(t.topSlide,i,s.cellCountY(t)-n),i=Ne.apply(t.bottomSlide,i,n)}}(G||(G={})),(Gt=Ne||(Ne={})).fromJson=function(s){var e,t,i,r;const n=(e=v.readObject(s))!=null?e:{};return{target:(t=v.readNumber(n.target))!=null?t:0,size:(i=v.readInt(n.size))!=null?i:0,offset:(r=v.readInt(n.offset))!=null?r:0}},Gt.apply=function(s,e,t){if(s.size<=0)return e;const i=(t-s.offset)/s.size;return Rt(s.target,e,i)},function(s){function e(t){const i=new gt(D.create(t));return gt.REGISTRY.register(i.key,i),i}s.NOISE=e("worldgen/noise"),s.DENSITY_FUNCTION=e("worldgen/density_function")}(ke||(ke={}));class C{minValue(){return-this.maxValue()}mapAll(e){return e.map(this)}}(function(s){s.context=function(b,l,p){return{x:b,y:l,z:p}};class e extends s{constructor(l){super(),this.input=l}compute(l){return this.transform(l,this.input.compute(l))}}const t=Me.parser(ke.NOISE,et.fromJson);s.fromJson=function b(l,p=b){var A,y,O,U,se,be,Z,q,W,ce,fe,Ye,Xe,ye,_e,Le,Fe,ie,Se;if(typeof l=="string")return new n(Me.reference(ke.DENSITY_FUNCTION,D.parse(l)));if(typeof l=="number")return new r(l);const E=(A=v.readObject(l))!=null?A:{},ot=(y=v.readString(E.type))==null?void 0:y.replace(/^minecraft:/,"");switch(ot){case"blend_alpha":return new a(1,0,1);case"blend_offset":case"beardifier":return new a(0,-1/0,1/0);case"old_blended_noise":return new o;case"flat_cache":return new f(p(E.argument));case"interpolated":return new d(p(E.argument));case"cache_2d":return new h(p(E.argument));case"cache_once":return new m(p(E.argument));case"cache_all_in_cell":return new c(p(E.argument));case"noise":return new g((O=v.readNumber(E.xz_scale))!=null?O:1,(U=v.readNumber(E.y_scale))!=null?U:1,t(E.noise));case"end_islands":return new w;case"weird_scaled_sampler":return new B(p(E.input),v.readEnum(E.rarity_value_mapper,S),t(E.noise));case"shifted_noise":return new R(p(E.shift_x),p(E.shift_y),p(E.shift_z),(se=v.readNumber(E.xz_scale))!=null?se:1,(be=v.readNumber(E.y_scale))!=null?be:1,t(E.noise));case"range_choice":return new _(p(E.input),(Z=v.readNumber(E.min_inclusive))!=null?Z:0,(q=v.readNumber(E.max_exclusive))!=null?q:1,p(E.when_in_range),p(E.when_out_of_range));case"shift_a":return new T(t(E.argument));case"shift_b":return new M(t(E.argument));case"shift":return new k(t(E.argument));case"blend_density":return new K(p(E.argument));case"clamp":return new Y(p(E.input),(W=v.readNumber(E.min))!=null?W:0,(ce=v.readNumber(E.max))!=null?ce:1);case"abs":case"square":case"cube":case"half_negative":case"quarter_negative":case"squeeze":return new Q(ot,p(E.argument));case"slide":return new ee(p(E.argument));case"add":case"mul":case"min":case"max":return new ne(v.readEnum(ot,j),p(E.argument1),p(E.argument2));case"spline":return new V(Te.fromJson(E.spline,p),(fe=v.readNumber(E.min_value))!=null?fe:0,(Ye=v.readNumber(E.max_value))!=null?Ye:1);case"terrain_shaper_spline":return new Ae(p(E.continentalness),p(E.erosion),p(E.weirdness),v.readEnum(E.spline,z),(Xe=v.readNumber(E.min_value))!=null?Xe:0,(ye=v.readNumber(E.max_value))!=null?ye:1);case"constant":return new r((_e=v.readNumber(E.argument))!=null?_e:0);case"y_clamped_gradient":return new Pe((Le=v.readInt(E.from_y))!=null?Le:-4064,(Fe=v.readInt(E.to_y))!=null?Fe:4062,(ie=v.readNumber(E.from_value))!=null?ie:-4064,(Se=v.readNumber(E.to_value))!=null?Se:4062)}return r.ZERO};const i=class extends s{constructor(b){super(),this.value=b}compute(){return this.value}minValue(){return this.value}maxValue(){return this.value}};let r=i;r.ZERO=new i(0),r.ONE=new i(1),s.Constant=r;class n extends s{constructor(l){super(),this.holder=l}compute(l){return this.holder.value().compute(l)}minValue(){return this.holder.value().minValue()}maxValue(){return this.holder.value().maxValue()}}s.HolderHolder=n;class a extends s.Constant{constructor(l,p,A){super(l),this.min=p,this.max=A}minValue(){return this.min}maxValue(){return this.max}}s.ConstantMinMax=a;class o extends s{constructor(l){super(),this.blendedNoise=l!=null?l:new ss(L.create(BigInt(0)),{xzScale:1,yScale:1,xzFactor:80,yFactor:160},4,8)}compute(l){return this.blendedNoise.sample(l.x,l.y,l.z)}maxValue(){return this.blendedNoise.maxValue}}s.OldBlendedNoise=o;class u extends s{constructor(l){super(),this.wrapped=l}minValue(){return this.wrapped.minValue()}maxValue(){return this.wrapped.maxValue()}}class f extends u{constructor(l){super(l),this.lastValue=0}compute(l){const p=l.x>>2,A=l.z>>2;return this.lastQuartX===p&&this.lastQuartZ===A||(this.lastValue=this.wrapped.compute(s.context(p<<2,0,A<<2)),this.lastQuartX=p,this.lastQuartZ=A),this.lastValue}mapAll(l){return l.map(new f(this.wrapped.mapAll(l)))}}s.FlatCache=f;class c extends u{constructor(l){super(l)}compute(l){return this.wrapped.compute(l)}mapAll(l){return l.map(new c(this.wrapped.mapAll(l)))}}s.CacheAllInCell=c;class h extends u{constructor(l){super(l),this.lastValue=0}compute(l){const p=l.x,A=l.z;return this.lastBlockX===p&&this.lastBlockZ===A||(this.lastValue=this.wrapped.compute(l),this.lastBlockX=p,this.lastBlockZ=A),this.lastValue}mapAll(l){return l.map(new h(this.wrapped.mapAll(l)))}}s.Cache2D=h;class m extends u{constructor(l){super(l),this.lastValue=0}compute(l){const p=l.x,A=l.y,y=l.z;return this.lastBlockX===p&&this.lastBlockY===A&&this.lastBlockZ===y||(this.lastValue=this.wrapped.compute(l),this.lastBlockX=p,this.lastBlockY=A,this.lastBlockZ=y),this.lastValue}mapAll(l){return l.map(new m(this.wrapped.mapAll(l)))}}s.CacheOnce=m;class d extends u{constructor(l,p=4,A=4){super(l),this.cellWidth=p,this.cellHeight=A,this.values=new Map}compute({x:l,y:p,z:A}){const y=this.cellWidth,O=this.cellHeight,U=(l%y+y)%y/y,se=(p%O+O)%O/O,be=(A%y+y)%y/y,Z=Math.floor(l/y)*y,q=Math.floor(p/O)*O,W=Math.floor(A/y)*y;return Rs(U,se,be,()=>this.computeCorner(Z,q,W),()=>this.computeCorner(Z+y,q,W),()=>this.computeCorner(Z,q+O,W),()=>this.computeCorner(Z+y,q+O,W),()=>this.computeCorner(Z,q,W+y),()=>this.computeCorner(Z+y,q,W+y),()=>this.computeCorner(Z,q+O,W+y),()=>this.computeCorner(Z+y,q+O,W+y))}computeCorner(l,p,A){return nt(this.values,`${l} ${p} ${A}`,()=>this.wrapped.compute(s.context(l,p,A)))}mapAll(l){return l.map(new d(this.wrapped.mapAll(l)))}withCellSize(l,p){return new d(this.wrapped,l,p)}}s.Interpolated=d;class g extends s{constructor(l,p,A,y){super(),this.xzScale=l,this.yScale=p,this.noiseData=A,this.noise=y}compute(l){var p,A;return(A=(p=this.noise)==null?void 0:p.sample(l.x*this.xzScale,l.y*this.yScale,l.z*this.xzScale))!=null?A:0}maxValue(){var l,p;return(p=(l=this.noise)==null?void 0:l.maxValue)!=null?p:2}}s.Noise=g;class w extends s{compute(){return 0}minValue(){return-.84375}maxValue(){return .5625}}const S=["type_1","type_2"],I=class extends e{constructor(b,l,p,A){super(b),this.rarityValueMapper=l,this.noiseData=p,this.noise=A,this.mapper=I.ValueMapper[this.rarityValueMapper]}transform(b,l){if(!this.noise)return 0;const p=this.mapper(l);return p*Math.abs(this.noise.sample(b.x/p,b.y/p,b.z/p))}mapAll(b){return b.map(new I(this.input.mapAll(b),this.rarityValueMapper,this.noiseData,this.noise))}minValue(){return 0}maxValue(){return this.rarityValueMapper==="type_1"?2:3}static rarityValueMapper1(b){return b<-.5?.75:b<0?1:b<.5?1.5:2}static rarityValueMapper2(b){return b<-.75?.5:b<-.5?.75:b<.5?1:b<.75?2:3}};let B=I;B.ValueMapper={type_1:I.rarityValueMapper1,type_2:I.rarityValueMapper2},s.WeirdScaledSampler=B;class R extends g{constructor(l,p,A,y,O,U,se){super(y,O,U,se),this.shiftX=l,this.shiftY=p,this.shiftZ=A}compute(l){var p,A;const y=l.x*this.xzScale+this.shiftX.compute(l),O=l.y*this.yScale+this.shiftY.compute(l),U=l.z*this.xzScale+this.shiftZ.compute(l);return(A=(p=this.noise)==null?void 0:p.sample(y,O,U))!=null?A:0}mapAll(l){return l.map(new R(this.shiftX.mapAll(l),this.shiftY.mapAll(l),this.shiftZ.mapAll(l),this.xzScale,this.yScale,this.noiseData,this.noise))}}s.ShiftedNoise=R;class _ extends s{constructor(l,p,A,y,O){super(),this.input=l,this.minInclusive=p,this.maxExclusive=A,this.whenInRange=y,this.whenOutOfRange=O}compute(l){const p=this.input.compute(l);return this.minInclusive<=p&&pMath.abs(b),square:b=>b*b,cube:b=>b*b*b,half_negative:b=>b>0?b:.5*b,quarter_negative:b=>b>0?b:.25*b,squeeze:b=>{const l=ve(b,-1,1);return l/2-l*l*l/24}},s.Mapped=Q;class ee extends e{constructor(l,p){super(l),this.settings=p}transform(l,p){return this.settings?G.applySlides(this.settings,p,l.y):p}mapAll(l){return l.map(new ee(this.input.mapAll(l),this.settings))}minValue(){return this.settings?Math.min(this.input.minValue(),this.settings.bottomSlide.target,this.settings.topSlide.target):this.input.minValue()}maxValue(){return this.settings?Math.max(this.input.maxValue(),this.settings.bottomSlide.target,this.settings.topSlide.target):this.input.maxValue()}}s.Slide=ee;const j=["add","mul","min","max"];class ne extends s{constructor(l,p,A,y,O){super(),this.type=l,this.argument1=p,this.argument2=A,this.min=y,this.max=O}compute(l){const p=this.argument1.compute(l);switch(this.type){case"add":return p+this.argument2.compute(l);case"mul":return p===0?0:p*this.argument2.compute(l);case"min":return pthis.argument2.maxValue()?p:Math.max(p,this.argument2.compute(l))}}mapAll(l){return l.map(new ne(this.type,this.argument1.mapAll(l),this.argument2.mapAll(l)))}minValue(){var l;return(l=this.min)!=null?l:-1/0}maxValue(){var l;return(l=this.max)!=null?l:1/0}withMinMax(){const l=this.argument1.minValue(),p=this.argument2.minValue(),A=this.argument1.maxValue(),y=this.argument2.maxValue();let O,U;switch(this.type!=="min"&&this.type!=="max"||!(l>=y||p>=A)||console.warn(`Creating a ${this.type} function between two non-overlapping inputs`),this.type){case"add":O=l+p,U=A+y;break;case"mul":O=l>0&&p>0?l*p||0:A<0&&y<0?A*y||0:Math.min(l*y||0,p*A||0),U=l>0&&p>0?A*y||0:A<0&&y<0?l*p||0:Math.max(l*p||0,A*y||0);break;case"min":O=Math.min(l,p),U=Math.min(A,y);break;case"max":O=Math.max(l,p),U=Math.max(A,y)}return new ne(this.type,this.argument1,this.argument2,O,U)}}s.Ap2=ne;class V extends s{constructor(l,p,A){super(),this.spline=l,this.min=p,this.max=A}compute(l){return ve(this.spline.compute(l),this.min,this.max)}mapAll(l){return l.map(new V(this.spline.mapAll(p=>p instanceof s?p.mapAll(l):p),this.min,this.max))}minValue(){return this.min}maxValue(){return this.max}}s.Spline=V;const z=["offset","factor","jaggedness"];class Ae extends s{constructor(l,p,A,y,O,U,se){super(),this.continentalness=l,this.erosion=p,this.weirdness=A,this.spline=y,this.min=O,this.max=U,this.shaper=se}compute(l){if(!this.shaper)return 0;const p=pe.point(this.continentalness.compute(l),this.erosion.compute(l),this.weirdness.compute(l));return ve(this.shaper[this.spline](p),this.min,this.max)}mapAll(l){return l.map(new Ae(this.continentalness.mapAll(l),this.erosion.mapAll(l),this.weirdness.mapAll(l),this.spline,this.min,this.max,this.shaper))}minValue(){return this.min}maxValue(){return this.max}}s.TerrainShaperSpline=Ae;class Pe extends s{constructor(l,p,A,y){super(),this.fromY=l,this.toY=p,this.fromValue=A,this.toValue=y}compute(l){return es(l.y,this.fromY,this.toY,this.fromValue,this.toValue)}minValue(){return Math.min(this.fromValue,this.toValue)}maxValue(){return Math.max(this.fromValue,this.toValue)}}s.YClampedGradient=Pe})(C||(C={}));class it{constructor(e,t){this.level=e,this.type=t}at(e){return e0))return s(e,t,i).at(t)}}};const re=class{constructor(s,e,t,i,r,n,a,o,u,f){this.noiseChunk=s,this.barrierNoise=t,this.fluidLevelFloodednessNoise=i,this.fluidLevelSpreadNoise=r,this.lavaNoise=n,this.random=a,this.globalFluidPicker=f,this.minGridX=this.gridX($.minBlockX(e))-1,this.gridSizeX=this.gridX($.maxBlockX(e))+1-this.minGridX+1,this.minGridY=this.gridY(o)-1,this.minGridZ=this.gridZ($.minBlockZ(e))-1,this.gridSizeZ=this.gridZ($.maxBlockZ(e))+1-this.minGridZ+1;const c=this.gridY(o+u)+1-this.minGridY+1;this.gridSize=this.gridSizeX*c*this.gridSizeZ,this.aquiferCache=Array(this.gridSize).fill(void 0),this.aquiferLocationCache=Array(this.gridSize).fill(J.ZERO)}compute({x:s,y:e,z:t},i){if(i<=0){if(this.globalFluidPicker(s,e,t).at(e).is(P.LAVA))return P.LAVA;{const r=this.gridX(s-5),n=this.gridY(e+1),a=this.gridZ(t-5);let o=Number.MAX_SAFE_INTEGER,u=Number.MAX_SAFE_INTEGER,f=Number.MAX_SAFE_INTEGER,c=J.ZERO,h=J.ZERO,m=J.ZERO;for(let _=0;_<=1;_+=1)for(let x=-1;x<=1;x+=1)for(let T=0;T<=1;T+=1){const M=this.getLocation(r+_,n+x,a+T),k=J.magnitude(M);o>=k?(m=h,h=c,c=M,f=u,u=o,o=k):u>=k?(m=h,h=M,f=u,u=k):f>=k&&(m=M,f=k)}const d=this.getStatus(c),g=this.getStatus(h),w=this.getStatus(m),S=re.similarity(o,u),I=re.similarity(o,f),B=re.similarity(u,f);let R;if(d.at(e).is(P.WATER)&&this.globalFluidPicker(s,e-1,t).at(e-1).is(P.LAVA))R=1;else if(S>-1){const _=qe(()=>this.barrierNoise.compute(C.context(s,.5*e,t))),x=this.calculatePressure(e,d,g,_),T=this.calculatePressure(e,d,w,_),M=this.calculatePressure(e,g,w,_),k=Math.max(x,T*Math.max(0,I),M*Math.max(B));R=Math.max(0,2*Math.max(0,S)*k)}else R=0;if(i+R<=0)return d.at(e)}}}static similarity(s,e){return 1-Math.abs(e-s)/25}calculatePressure(s,e,t,i){const r=e.at(s),n=t.at(s);if(r.is(P.LAVA)&&n.is(P.WATER)||r.is(P.WATER)&&n.is(P.LAVA))return 1;const a=Math.abs(e.level-t.level);if(a===0)return 0;const o=s+.5-(e.level+t.level)/2,u=a/2-Math.abs(o),f=o>0?u>0?u/1.5:u/2.5:u>-3?(u+3)/3:(u+3)/10;return f<-2||f>2?f:f+i()}getStatus(s){const[e,t,i]=s,r=this.getIndex(this.gridX(e),this.gridY(t),this.gridZ(i)),n=this.aquiferCache[r];if(n!==void 0)return n;const a=this.computeStatus(e,t,i);return this.aquiferCache[r]=a,a}computeStatus(s,e,t){const i=this.globalFluidPicker(s,e,t);let r=Number.MAX_SAFE_INTEGER,n=!1;for(const[d,g]of re.SURFACE_SAMPLING){const w=s+(g<<4),S=t+(g<<4),I=this.noiseChunk.getPreliminarySurfaceLevel(w,S);r=Math.min(r,I);const B=d===0&&g===0;if(B&&e-12>I+8)return i;if(B||e+12>I+8){const R=this.globalFluidPicker(w,I+8,S);if(!R.at(I+8).is(P.AIR)){if(B)return R;n=!0}}}const a=n?es(r+8-e,0,64,1,0):0,o=ve(this.fluidLevelFloodednessNoise.compute(C.context(s,.67*e,t)),-1,1);if(o>Qe(a,1,0,-.3,.8))return i;if(o<=Qe(a,1,0,-.8,.4))return new it(Number.MIN_SAFE_INTEGER,i.type);const u=Math.floor(e/40),f=this.fluidLevelSpreadNoise.compute(C.context(Math.floor(s/16),u,Math.floor(t/16))),c=40*u+20+3*Math.floor(f/3),h=Math.min(r,c),m=this.getFluidType(s,e,t,i.type,c);return new it(h,m)}getFluidType(s,e,t,i,r){if(r<=-10){const n=this.lavaNoise.compute(C.context(Math.floor(s/64),Math.floor(e/40),Math.floor(t/64)));if(Math.abs(n)>.3)return P.LAVA}return i}getLocation(s,e,t){const i=this.getIndex(s,e,t),r=this.aquiferLocationCache[i];if(J.equals(r,J.ZERO))return r;const n=this.random.at(s,e,t),a=J.create(s*re.X_SPACING+n.nextInt(10),e*re.Y_SPACING+n.nextInt(9),t*re.Z_SPACING+n.nextInt(10));return this.aquiferLocationCache[i]=a,a}getIndex(s,e,t){const i=s-this.minGridX,r=e-this.minGridY,n=t-this.minGridZ,a=(r*this.gridSizeZ+n)*this.gridSizeX+i;if(a<0||a>=this.gridSize)throw new Error(`Invalid aquifer index at ${s} ${e} ${t}: 0 <= ${a} < ${this.gridSize}`);return a}gridX(s){return Math.floor(s/re.X_SPACING)}gridY(s){return Math.floor(s/re.Y_SPACING)}gridZ(s){return Math.floor(s/re.Z_SPACING)}};let je=re;var rt,le;je.X_SPACING=16,je.Y_SPACING=12,je.Z_SPACING=16,je.SURFACE_SAMPLING=[[-2,-1],[-1,-1],[0,-1],[1,-1],[-3,0],[-2,0],[-1,0],[0,0],[1,0],[-2,1],[-1,1],[0,1],[1,1]],function(s){function e(c,h){return typeof c=="number"?new t(c,h!=null?h:c):c}s.target=function(c,h,m,d,g,w){return new r(c,h,m,d,g,w)},s.parameters=function(c,h,m,d,g,w,S){return new i(e(c),e(h),e(m),e(d),e(g),e(w),S)},s.param=e;class t{constructor(h,m){this.min=h,this.max=m}distance(h){const m=(typeof h=="number"?h:h.min)-this.max,d=this.min-(typeof h=="number"?h:h.max);return m>0?m:Math.max(d,0)}union(h){return new t(Math.min(this.min,h.min),Math.max(this.max,h.max))}static fromJson(h){var m;if(typeof h=="number")return new t(h,h);const[d,g]=(m=v.readArray(h,w=>v.readNumber(w)))!=null?m:[];return new t(d!=null?d:0,g!=null?g:0)}}s.Param=t;class i{constructor(h,m,d,g,w,S,I){this.temperature=h,this.humidity=m,this.continentalness=d,this.erosion=g,this.depth=w,this.weirdness=S,this.offset=I}fittness(h){return de(this.temperature.distance(h.temperature))+de(this.humidity.distance(h.humidity))+de(this.continentalness.distance(h.continentalness))+de(this.erosion.distance(h.erosion))+de(this.depth.distance(h.depth))+de(this.weirdness.distance(h.weirdness))+de(this.offset-h.offset)}space(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,new t(this.offset,this.offset)]}static fromJson(h){var m,d;const g=(m=v.readObject(h))!=null?m:{};return new i(t.fromJson(g.temperature),t.fromJson(g.humidity),t.fromJson(g.continentalness),t.fromJson(g.erosion),t.fromJson(g.depth),t.fromJson(g.weirdness),(d=v.readInt(g.offset))!=null?d:0)}}s.ParamPoint=i;class r{constructor(h,m,d,g,w,S){this.temperature=h,this.humidity=m,this.continentalness=d,this.erosion=g,this.depth=w,this.weirdness=S}get offset(){return 0}toArray(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,this.offset]}}s.TargetPoint=r,s.Parameters=class{constructor(c){this.things=c,this.index=new a(c)}find(c){return this.index.search(c,(h,m)=>h.distance(m))}},s.Sampler=class{constructor(c,h,m,d,g,w){this.temperature=c,this.humidity=h,this.continentalness=m,this.erosion=d,this.depth=g,this.weirdness=w}static fromRouter(c){return new s.Sampler(c.temperature,c.vegetation,c.continents,c.erosion,c.depth,c.ridges)}sample(c,h,m){const d=C.context(c<<2,h<<2,m<<2);return s.target(this.temperature.compute(d),this.humidity.compute(d),this.continentalness.compute(d),this.erosion.compute(d),this.depth.compute(d),this.weirdness.compute(d))}};const n=class{constructor(c){this.root=n.build(c.map(([h,m])=>new f(h,m)))}static build(c){if(c.length===1)return c[0];if(c.length<=n.CHILDREN_PER_NODE){const g=c.map(w=>{let S=0;for(let I=0;I<7;I+=1){const B=w.space[I];S+=Math.abs((B.min+B.max)/2)}return{key:S,node:w}}).sort((w,S)=>w.key-S.key).map(({node:w})=>w);return new u(g)}let h=1/0,m=-1,d=[];for(let g=0;g<7;++g){c=n.sort(c,g,!1),d=n.bucketize(c);let w=0;for(const S of d)w+=n.area(S.space);h>w&&(h=w,m=g)}return c=n.sort(c,m,!1),d=n.bucketize(c),d=n.sort(d,m,!0),new u(d.map(g=>n.build(g.children)))}static sort(c,h,m){return c.map(d=>{const g=d.space[h],w=(g.min+g.max)/2;return{key:m?Math.abs(w):w,node:d}}).sort((d,g)=>d.key-g.key).map(({node:d})=>d)}static bucketize(c){const h=[];let m=[];const d=Math.pow(10,Math.floor(Math.log(c.length-.01)/Math.log(10)));for(const g of c)m.push(g),m.lengthnew t(1/0,-1/0));for(const d of h)m=[...Array(7)].map((g,w)=>m[w].union(d.space[w]));return m}search(h,m){let d=1/0,g=null;for(const w of this.children){const S=m(w,h);if(d<=S)continue;const I=w.search(h,m),B=w==I?S:m(I,h);d<=B||(d=B,g=I)}return g}}s.RSubTree=u;class f extends o{constructor(h,m){super(h.space()),this.thing=m}search(){return this}}s.RLeaf=f}(rt||(rt={}));class as{constructor(e){this.biome=e}getBiome(){return this.biome}static fromJson(e){var t,i;const r=(t=v.readObject(e))!=null?t:{},n=D.parse((i=v.readString(r.biome))!=null?i:"minecraft:the_void");return new as(n)}}class os{constructor(e){this.parameters=e}getBiome(e,t,i,r){const n=r.sample(e,t,i);return this.parameters.find(n)}static fromJson(e){var t,i;const r=(t=v.readObject(e))!=null?t:{},n=((i=v.readArray(r.biomes,a=>{var o,u,f;return u=(o=v.readObject(a))!=null?o:{},{biome:D.parse((f=v.readString(u.biome))!=null?f:"minecraft:the_void"),parameters:rt.ParamPoint.fromJson(u.parameters)}}))!=null?i:[]).map(a=>[a.parameters,()=>a.biome]);return new os(new rt.Parameters(n))}}(function(s){function e(i,r,n){return ke.NOISE.register(D.create(i),et.create(r,n))}s.TEMPERATURE=e("temperature",-10,[1.5,0,1,0,0,0]),s.VEGETATION=e("vegetation",-8,[1,1,0,0,0,0]),s.CONTINENTALNESS=e("continentalness",-9,[1,1,2,2,2,1,1,1,1]),s.EROSION=e("erosion",-9,[1,1,0,1,1]),s.TEMPERATURE_LARGE=e("temperature_large",-12,[1.5,0,1,0,0,0]),s.VEGETATION_LARGE=e("vegetation_large",-10,[1,1,0,0,0,0]),s.CONTINENTALNESS_LARGE=e("continentalness_large",-11,[1,1,2,2,2,1,1,1,1]),s.EROSION_LARGE=e("erosion_large",-11,[1,1,0,1,1]),s.RIDGE=e("ridge",-7,[1,2,1,0,0,0]),s.SHIFT=e("offset",-3,[1,1,1,0]),s.AQUIFER_BARRIER=e("aquifer_barrier",-3,[1]),s.AQUIFER_FLUID_LEVEL_FLOODEDNESS=e("aquifer_fluid_level_floodedness",-7,[1]),s.AQUIFER_FLUID_LEVEL_SPREAD=e("aquifer_fluid_level_spread",-5,[1]),s.AQUIFER_LAVA=e("aquifer_lava",-1,[1]),s.PILLAR=e("pillar",-7,[1,1]),s.PILLAR_RARENESS=e("pillar_rareness",-8,[1]),s.PILLAR_THICKNESS=e("pillar_thickness",-8,[1]),s.SPAGHETTI_2D=e("spaghetti_2d",-8,[1]),s.SPAGHETTI_2D_ELEVATION=e("spaghetti_2d_elevation",-8,[1]),s.SPAGHETTI_2D_MODULATOR=e("spaghetti_2d_modulator",-8,[1]),s.SPAGHETTI_2D_THICKNESS=e("spaghetti_2d_thickness",-8,[1]),s.SPAGHETTI_3D_1=e("spaghetti_3d_1",-8,[1]),s.SPAGHETTI_3D_2=e("spaghetti_3d_2",-8,[1]),s.SPAGHETTI_3D_RARITY=e("spaghetti_3d_rarity",-8,[1]),s.SPAGHETTI_3D_THICKNESS=e("spaghetti_3d_thickness",-8,[1]),s.SPAGHETTI_ROUGHNESS=e("spaghetti_roughness",-8,[1]),s.SPAGHETTI_ROUGHNESS_MODULATOR=e("spaghetti_roughness_modulator",-8,[1]),s.CAVE_ENTRANCE=e("cave_entrance",-7,[.4,.5,1]),s.CAVE_LAYER=e("cave_layer",-8,[1]),s.CAVE_CHEESE=e("cave_cheese",-8,[.5,1,2,1,2,1,0,2,0]),s.NOODLE=e("noodle",-8,[1]),s.NOODLE_THICKNESS=e("noodle_thickness",-8,[1]),s.NOODLE_RIDGE_A=e("noodle_ridge_a",-7,[1]),s.NOODLE_RIDGE_B=e("noodle_ridge_b",-7,[1]),s.JAGGED=e("jagged",-16,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),s.SURFACE=e("surface",-6,[1,1,1]),s.SURFACE_SECONDARY=e("surface_secondary",-6,[1,1,0,1]);const t=new Map;s.instantiate=function(i,r){var n;const a=(n=r.key())==null?void 0:n.toString();if(!a)throw new Error("Cannot instantiate noise from direct holder");const o=i.seedKey(),u=t.get(a);if(u&&u[0]===o[0]&&u[1]===o[1])return u[2];const f=new is(i.fromHashOf(a),r.value());return t.set(a,[o[0],o[1],f]),f}})(le||(le={}));var ze,At,Ge,yt,_t,ct,zt,Us=Object.defineProperty,Gs=Object.defineProperties,zs=Object.getOwnPropertyDescriptors,Yt=Object.getOwnPropertySymbols,Ys=Object.prototype.hasOwnProperty,Xs=Object.prototype.propertyIsEnumerable,Xt=(s,e,t)=>e in s?Us(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,Ht=(s,e)=>{for(var t in e||(e={}))Ys.call(e,t)&&Xt(s,t,e[t]);if(Yt)for(var t of Yt(e))Xs.call(e,t)&&Xt(s,t,e[t]);return s};(function(s){const e=i=>Me.parser(ke.DENSITY_FUNCTION,C.fromJson)(i).value();s.fromJson=function(i){var r;const n=(r=v.readObject(i))!=null?r:{};return{barrier:e(n.barrier),fluidLevelFloodedness:e(n.fluid_level_floodedness),fluidLevelSpread:e(n.fluid_level_spread),lava:e(n.lava),temperature:e(n.temperature),vegetation:e(n.vegetation),continents:e(n.continents),erosion:e(n.erosion),depth:e(n.depth),ridges:e(n.ridges),initialDensityWithoutJaggedness:e(n.initial_density_without_jaggedness),finalDensity:e(n.final_density),veinToggle:e(n.vein_toggle),veinRidged:e(n.vein_ridged),veinGap:e(n.vein_gap)}},s.create=function(i){return Ht({barrier:C.Constant.ZERO,fluidLevelFloodedness:C.Constant.ZERO,fluidLevelSpread:C.Constant.ZERO,lava:C.Constant.ZERO,temperature:C.Constant.ZERO,vegetation:C.Constant.ZERO,continents:C.Constant.ZERO,erosion:C.Constant.ZERO,depth:C.Constant.ZERO,ridges:C.Constant.ZERO,initialDensityWithoutJaggedness:C.Constant.ZERO,finalDensity:C.Constant.ZERO,veinToggle:C.Constant.ZERO,veinRidged:C.Constant.ZERO,veinGap:C.Constant.ZERO},i)},s.withSettings=function(i,r,n,a=!1){const o=(a?new he(n):L.create(n)).forkPositional(),u=new t(o,r);return f=Ht({},u.mapAll(i)),c={aquiferPositionalRandomFactory:o.fromHashOf(D.create("aquifer").toString()).forkPositional(),oreVeinsPositionalRandomFactory:o.fromHashOf(D.create("ore").toString()).forkPositional()},Gs(f,zs(c));var f,c};class t{constructor(r,n){this.random=r,this.settings=n,this.mapped=new Map}map(r){if(r instanceof C.HolderHolder){const n=r.holder.key();if(n!==void 0&&this.mapped.has(n.toString()))return this.mapped.get(n.toString());{const a=r.holder.value().mapAll(this);return n!==void 0&&this.mapped.set(n.toString(),a),a}}if(r instanceof C.Interpolated)return r.withCellSize(G.cellWidth(this.settings),G.cellHeight(this.settings));if(r instanceof C.Noise)return new C.Noise(r.xzScale,r.yScale,r.noiseData,le.instantiate(this.random,r.noiseData));if(r instanceof C.ShiftNoise)return r.withNewNoise(le.instantiate(this.random,r.noiseData));if(r instanceof C.ShiftedNoise){const n=le.instantiate(this.random,r.noiseData);return new C.ShiftedNoise(r.shiftX,r.shiftY,r.shiftZ,r.xzScale,r.yScale,r.noiseData,n)}return r instanceof C.WeirdScaledSampler?new C.WeirdScaledSampler(r.input,r.rarityValueMapper,r.noiseData,le.instantiate(this.random,r.noiseData)):r instanceof C.OldBlendedNoise?new C.OldBlendedNoise(new ss(this.random.fromHashOf(D.create("terrain").toString()),this.settings.sampling,G.cellWidth(this.settings),G.cellHeight(this.settings))):r instanceof C.Mapped||r instanceof C.Ap2?r.withMinMax():r instanceof C.TerrainShaperSpline?new C.TerrainShaperSpline(r.continentalness,r.erosion,r.weirdness,r.spline,r.min,r.max,this.settings.terrainShaper):r instanceof C.Slide?new C.Slide(r.input,this.settings):r}mapAll(r){return{barrier:r.barrier.mapAll(this),fluidLevelFloodedness:r.fluidLevelFloodedness.mapAll(this),fluidLevelSpread:r.fluidLevelSpread.mapAll(this),lava:r.lava.mapAll(this),temperature:r.temperature.mapAll(this),vegetation:r.vegetation.mapAll(this),continents:r.continents.mapAll(this),erosion:r.erosion.mapAll(this),depth:r.depth.mapAll(this),ridges:r.ridges.mapAll(this),initialDensityWithoutJaggedness:r.initialDensityWithoutJaggedness.mapAll(this),finalDensity:r.finalDensity.mapAll(this),veinToggle:r.veinToggle.mapAll(this),veinRidged:r.veinRidged.mapAll(this),veinGap:r.veinGap.mapAll(this)}}}s.Visitor=t,s.computePreliminarySurfaceLevelScanning=function(i,r,n,a){const o=G.minCellY(i)+G.cellCountY(i),u=G.minCellY(i),f=G.cellHeight(i);for(let c=o;c>=u;c-=1){const h=c*f,m=ve(r.compute(C.context(n,h,a)),-64,64);if(G.applySlides(i,m,h)>=.390625)return h}return Number.MAX_SAFE_INTEGER}})(ze||(ze={}));class Hs{constructor(e,t,i,r,n,a,o,u,f){this.cellCountXZ=e,this.cellCountY=t,this.cellNoiseMinY=i,this.router=r,this.minX=n,this.minZ=a,this.settings=o,this.preliminarySurfaceLevel=new Map,this.cellWidth=G.cellWidth(o),this.cellHeight=G.cellHeight(o),this.firstCellX=Math.floor(n/this.cellWidth),this.firstCellZ=Math.floor(a/this.cellWidth),this.firstNoiseX=n>>2,this.firstNoiseZ=a>>2,this.noiseSizeXZ=e*this.cellWidth>>2,this.aquifer=xt.createDisabled(f);const c=this.router.finalDensity;this.materialRule=At.fromList([h=>this.aquifer.compute(h,c.compute(h))]),this.initialDensityWithoutJaggedness=this.router.initialDensityWithoutJaggedness}getFinalState(e,t,i){return this.materialRule({x:e,y:t,z:i})}getPreliminarySurfaceLevel(e,t){return nt(this.preliminarySurfaceLevel,$.asLong(e,t),()=>ze.computePreliminarySurfaceLevelScanning(this.settings,this.initialDensityWithoutJaggedness,e<<2,t<<2))}getAquifer(){return this.aquifer}}(At||(At={})).fromList=function(s){return e=>{for(const t of s){const i=t(e);if(i)return i}}},(Ge||(Ge={})).fromJson=function(s){var e,t,i,r;const n=(e=v.readObject(s))!=null?e:{};return n.absolute!==void 0?(a=(t=v.readNumber(n.absolute))!=null?t:0,()=>a):n.above_bottom!==void 0?function(o){return u=>u.minY+o}((i=v.readNumber(n.above_bottom))!=null?i:0):n.below_top!==void 0?function(o){return u=>u.maxY-o}((r=v.readNumber(n.below_top))!=null?r:0):()=>0;var a},(yt||(yt={})).create=function(s,e){return{minY:s,height:e,maxY:s+e-1}};class js{constructor(e,t,i){this.rule=e,this.defaultBlock=t,this.random=L.create(i).forkPositional(),this.surfaceNoise=le.instantiate(this.random,le.SURFACE),this.surfaceSecondaryNoise=le.instantiate(this.random,le.SURFACE_SECONDARY),this.positionalRandoms=new Map}buildSurface(e,t,i,r){const n=$.minBlockX(e.pos),a=$.minBlockZ(e.pos),o=new Zs(this,e,t,i,r),u=this.rule(o);for(let f=0;f<16;f+=1){const c=n+f;for(let h=0;h<1;h+=1){const m=a+h;o.updateXZ(c,m);let d=0,g=Number.MIN_SAFE_INTEGER,w=Number.MAX_SAFE_INTEGER;for(let S=e.maxY;S>=e.minY;S-=1){const I=J.create(c,S,m),B=e.getBlockState(I);if(B.equals(P.AIR)){d=0,g=Number.MIN_SAFE_INTEGER;continue}if(B.isFluid()){g===Number.MIN_SAFE_INTEGER&&(g=S+1);continue}if(w>=S){w=Number.MIN_SAFE_INTEGER;for(let x=S-1;x>=e.minY;x-=1){const T=e.getBlockState(J.create(c,x,m));if(T.equals(P.AIR)||T.isFluid()){w=x+1;break}}}d+=1;const R=S-w+1;if(!B.equals(this.defaultBlock))continue;o.updateY(d,R,g,S);const _=u(c,S,m);_&&e.setBlockState(I,_)}}}}getSurfaceDepth(e,t){return 2.75*this.surfaceNoise.sample(e,0,t)+3+.25*this.random.at(e,0,t).nextDouble()}getSurfaceSecondary(e,t){return this.surfaceSecondaryNoise.sample(e,0,t)}getRandom(e){return nt(this.positionalRandoms,e,()=>this.random.fromHashOf(e))}}class Zs{constructor(e,t,i,r,n){this.system=e,this.chunk=t,this.noiseChunk=i,this.context=r,this.getBiome=n,this.blockX=0,this.blockY=0,this.blockZ=0,this.stoneDepthAbove=0,this.stoneDepthBelow=0,this.surfaceDepth=0,this.waterHeight=0,this.biome=()=>"",this.surfaceSecondary=()=>0,this.minSurfaceLevel=()=>0}updateXZ(e,t){this.blockX=e,this.blockZ=t,this.surfaceDepth=this.system.getSurfaceDepth(e,t),this.surfaceSecondary=qe(()=>this.system.getSurfaceSecondary(e,t)),this.minSurfaceLevel=qe(()=>this.calculateMinSurfaceLevel(e,t))}updateY(e,t,i,r){this.blockY=r,this.stoneDepthAbove=e,this.stoneDepthBelow=t,this.waterHeight=i,this.biome=qe(()=>this.getBiome(J.create(this.blockX,this.blockY,this.blockZ)))}calculateMinSurfaceLevel(e,t){const i=e>>4,r=t>>4,n=this.noiseChunk.getPreliminarySurfaceLevel(i<<4,r<<4),a=this.noiseChunk.getPreliminarySurfaceLevel(i+1<<4,r<<4),o=this.noiseChunk.getPreliminarySurfaceLevel(i<<4,r+1<<4),u=this.noiseChunk.getPreliminarySurfaceLevel(i+1<<4,r+1<<4);return Math.floor(vt((15&e)/16,(15&t)/16,n,a,o,u))+this.surfaceDepth-8}}(function(s){function e(r){return()=>()=>r}function t(r){return n=>{const a=r.map(o=>o(n));return(o,u,f)=>{for(const c of a){const h=c(o,u,f);if(h)return h}}}}function i(r,n){return a=>(o,u,f)=>{if(r(a))return n(a)(o,u,f)}}s.NOOP=()=>()=>{},s.fromJson=function(r){var n,a,o;const u=(n=v.readObject(r))!=null?n:{};switch((a=v.readString(u.type))==null?void 0:a.replace(/^minecraft:/,"")){case"block":return e(P.fromJson(u.result_state));case"sequence":return t((o=v.readArray(u.sequence,s.fromJson))!=null?o:[]);case"condition":return i(ct.fromJson(u.if_true),s.fromJson(u.then_run))}return s.NOOP},s.block=e,s.sequence=t,s.condition=i})(_t||(_t={})),function(s){function e(){return u=>u.blockY>=u.minSurfaceLevel()}function t(u){const f=new Set(u);return c=>f.has(c.biome())}function i(u){return f=>!u(f)}function r(u,f,c,h){return m=>{const d=h?m.stoneDepthBelow:m.stoneDepthAbove,g=f?m.surfaceDepth:0,w=c===0?0:Qe(m.surfaceSecondary(),-1,1,0,c);return d<=1+u+g+w}}function n(u,f,c){return h=>{const m=f(h.context),d=c(h.context);if(h.blockY<=m)return!0;if(h.blockY>=d)return!1;const g=h.system.getRandom(u),w=Qe(h.blockY,m,d,1,0);return g.nextFloat(){if(h.waterHeight===Number.MIN_SAFE_INTEGER)return!0;const m=c?h.stoneDepthAbove:0;return h.blockY+m>=h.waterHeight+u+h.surfaceDepth*f}}function o(u,f,c){return h=>{const m=c?h.stoneDepthAbove:0;return h.blockY+m>=u(h.context)+h.surfaceDepth*f}}s.FALSE=()=>!1,s.TRUE=()=>!0,s.fromJson=function(u){var f,c,h,m,d,g,w,S,I,B,R,_;const x=(f=v.readObject(u))!=null?f:{};switch((c=v.readString(x.type))==null?void 0:c.replace(/^minecraft:/,"")){case"above_preliminary_surface":return T=>T.blockY>=T.minSurfaceLevel();case"biome":return t((h=v.readArray(x.biome_is,T=>{var M;return(M=v.readString(T))!=null?M:""}))!=null?h:[]);case"not":return i(s.fromJson(x.invert));case"stone_depth":return r((m=v.readInt(x.offset))!=null?m:0,(d=v.readBoolean(x.add_surface_depth))!=null&&d,(g=v.readInt(x.secondary_depth_range))!=null?g:0,v.readString(x.surface_type)==="ceiling");case"vertical_gradient":return n((w=v.readString(x.random_name))!=null?w:"",Ge.fromJson(x.true_at_and_below),Ge.fromJson(x.false_at_and_above));case"water":return a((S=v.readInt(x.offset))!=null?S:0,(I=v.readInt(x.surface_depth_multiplier))!=null?I:0,(B=v.readBoolean(x.add_surface_depth))!=null&&B);case"y_above":return o(Ge.fromJson(x.anchor),(R=v.readInt(x.surface_depth_multiplier))!=null?R:0,(_=v.readBoolean(x.add_surface_depth))!=null&&_)}return s.FALSE},s.abovePreliminarySurface=e,s.biome=t,s.not=i,s.stoneDepth=r,s.verticalGradient=n,s.water=a,s.yAbove=o}(ct||(ct={}));class ri{constructor(e,t,i){this.biomeSource=t,this.settings=i,this.router=ze.withSettings(i.noiseRouter,i.noise,e,i.legacyRandomSource),this.noiseChunkCache=new Map,this.surfaceSystem=new js(i.surfaceRule,i.defaultBlock,e);const r=new it(-54,P.LAVA),n=new it(i.seaLevel,i.defaultFluid);this.globalFluidPicker=(a,o,u)=>o=0;I-=1)for(let B=o-1;B>=0;B-=1){const R=(f+I)*o+B,_=15&R,x=e.getSectionIndex(R);e.getSectionIndex(S.minBlockY)!==x&&(S=e.getOrCreateSection(x));for(let T=0;Tt)}getNoiseChunk(e){return nt(this.noiseChunkCache,$.toLong(e.pos),()=>{const t=Math.max(e.minY,this.settings.noise.minY),i=Math.min(e.maxY,this.settings.noise.minY+this.settings.noise.height),r=G.cellWidth(this.settings.noise),n=G.cellHeight(this.settings.noise),a=Math.floor(16/r),o=Math.floor(t/n),u=Math.floor((i-t)/n),f=$.minBlockX(e.pos),c=$.minBlockZ(e.pos);return new Hs(a,u,o,this.router,f,c,this.settings.noise,this.settings.aquifersEnabled,this.globalFluidPicker)})}}(zt||(zt={})).fromJson=function(s){var e,t,i,r,n,a;const o=(e=v.readObject(s))!=null?e:{};return{surfaceRule:_t.fromJson(o.surface_rule),noise:G.fromJson(o.noise),defaultBlock:P.fromJson(o.default_block),defaultFluid:P.fromJson(o.default_fluid),noiseRouter:ze.fromJson(o.noise_router),seaLevel:(t=v.readInt(o.sea_level))!=null?t:0,disableMobGeneration:(i=v.readBoolean(o.disable_mob_generation))!=null&&i,aquifersEnabled:(r=v.readBoolean(o.aquifers_enabled))!=null&&r,oreVeinsEnabled:(n=v.readBoolean(o.ore_veins_enabled))!=null&&n,legacyRandomSource:(a=v.readBoolean(o.legacy_random_source))!=null&&a}};export{xt as Aquifer,ss as BlendedNoise,Ps as BlockColors,Bt as BlockDefinition,at as BlockModel,J as BlockPos,P as BlockState,ti as Chunk,$ as ChunkPos,pt as ChunkSection,rt as Climate,Te as CubicSpline,C as DensityFunction,F as Direction,as as FixedBiome,it as FluidStatus,Me as Holder,D as Identifier,Pt as ImprovedNoise,Ts as LegacyPositionalRandom,he as LegacyRandom,At as MaterialRule,os as MultiNoise,Ss as NbtReader,xs as NbtWriter,je as NoiseAquifer,Hs as NoiseChunk,ri as NoiseChunkGenerator,zt as NoiseGeneratorSettings,et as NoiseParameters,ze as NoiseRouter,bt as NoiseSamplingSettings,G as NoiseSettings,Ne as NoiseSlideSettings,le as Noises,is as NormalNoise,X as PerlinNoise,si as PerlinSimplexNoise,gt as Registry,te as SimplexNoise,Kt as Structure,ii as StructureRenderer,ct as SurfaceCondition,Zs as SurfaceContext,_t as SurfaceRule,js as SurfaceSystem,pe as TerrainShaper,Ke as TextureAtlas,Ge as VerticalAnchor,yt as WorldgenContext,ke as WorldgenRegistries,Cs as XoroshiroPositionalRandom,L as XoroshiroRandom,Bs as binarySearch,ve as clamp,Rt as clampedLerp,es as clampedMap,He as getListTag,$t as getOptional,ts as getSeed,Be as getTag,Qt as inverseLerp,Je as lazyLerp,Ot as lazyLerp2,Rs as lazyLerp3,we as lerp,vt as lerp2,Ns as lerp3,wt as longfromBytes,Qe as map,Ws as read,$s as readChunk,Wt as readCompressed,Js as readRegion,Et as readUncompressed,lt as smoothstep,de as square,Ct as tagNames,Ve as tagTypes,Ks as write,ei as writeChunk,dt as writeCompressed,Qs as writeRegion,It as writeUncompressed}; -//# sourceMappingURL=deepslate.esm.6eb5e9dc.js.map +//# sourceMappingURL=deepslate.esm.666d0ed0.js.map diff --git a/assets/deepslate.esm.6eb5e9dc.js.map b/assets/deepslate.esm.666d0ed0.js.map similarity index 99% rename from assets/deepslate.esm.6eb5e9dc.js.map rename to assets/deepslate.esm.666d0ed0.js.map index e5772cef..8bdfc7ae 100644 --- a/assets/deepslate.esm.6eb5e9dc.js.map +++ b/assets/deepslate.esm.666d0ed0.js.map @@ -1 +1 @@ -{"version":3,"file":"deepslate.esm.6eb5e9dc.js","sources":["../../node_modules/deepslate-1.18.2/dist/deepslate.esm.js"],"sourcesContent":["import t from\"pako\";import e from\"md5\";import{vec3 as s,mat4 as r,glMatrix as i}from\"gl-matrix\";var n,o;(o=n||(n={})).UP=\"up\",o.DOWN=\"down\",o.NORTH=\"north\",o.EAST=\"east\",o.SOUTH=\"south\",o.WEST=\"west\";const a={[n.UP]:[0,1,0],[n.DOWN]:[0,-1,0],[n.NORTH]:[0,0,-1],[n.EAST]:[1,0,0],[n.SOUTH]:[0,0,1],[n.WEST]:[-1,0,0]};var l,u;!function(t){t.ALL=[t.UP,t.DOWN,t.NORTH,t.EAST,t.SOUTH,t.WEST],t.normal=function(t){return a[t]}}(n||(n={})),(u=l||(l={})).create=function(t,e,s){return[t,e,s]},u.ZERO=u.create(0,0,0),u.offset=function(t,e,s,r){return[t[0]+e,t[1]+s,t[2]+r]},u.towards=function(t,e){return u.offset(t,...n.normal(e))},u.equals=function(t,e){return t===e||t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]},u.magnitude=function(t){return t[0]*t[0]+t[1]*t[1]+t[2]*t[2]};const h={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},c=[\"end\",\"byte\",\"short\",\"int\",\"long\",\"float\",\"double\",\"byteArray\",\"string\",\"list\",\"compound\",\"intArray\",\"longArray\"];class f{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 s=this.dataView[t](this.offset,this.littleEndian);return this.offset+=e,s}long(){return[this.int(),this.int()]}byteArray(){const t=this.int(),e=[];for(let s=0;s=e)return;let s=this.buffer.byteLength;for(;sthis.buffer.byteLength&&i.fill(0,this.buffer.byteLength,this.offset),this.buffer=r,this.dataView=new DataView(r),this.arrayView=i}getData(){return this.accommodate(0),this.arrayView.slice(0,this.offset)}end(t){}writeNum(t,e,s){this.accommodate(e),this.dataView[t](this.offset,s,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),r.push(128|63&s)):s<65536?(r.push(224|s>>12),r.push(128|s>>6&63),r.push(128|63&s)):(r.push(240|s>>18&7),r.push(128|s>>12&63),r.push(128|s>>6&63),r.push(128|63&s));return r}(t);this.short(e.length),this.accommodate(e.length),this.arrayView.set(e,this.offset),this.offset+=e.length}list(t){this.byte(h[t.type]),this.int(t.value.length),t.value;for(let e=0;e>16),r.setInt16(t+1,65535&i),r.setInt8(t+3,n),r.setInt32(t+4096,e.timestamp);const o=4096*i;r.setInt32(o,e.data.length+1),r.setInt8(o+4,e.compression),s.set(e.data,o+5),i+=n}return s}function A(t,e,s,r){const i=y(t,e,s);switch(i.compression){case 1:i.data=x(r);break;case 2:i.data=x(r,!1,!0);break;case 3:i.data=b(r);break;default:throw new Error(`Invalid compression mode ${i.compression}`)}return i}function y(t,e,s){const r=t.find((t=>t.x===e&&t.z===s));if(void 0===r)throw new Error(`Cannot find chunk [${e}, ${s}]`);return r}function E(t,e,s){if(!t[e])throw new Error(`Missing ${e} tag`);if(t[e].type!==s)throw new Error(`Expected ${e} to be of type ${s}, but found ${t[e].type}`);return t[e].value}function I(t,e,s,r){const i=E(t,e,\"list\");if(i.type!==s)throw new Error(`Expected ${e} to be a list of ${s}s, but found ${i.type}s`);if(r&&i.value.length!==r)throw new Error(`Expected ${e} to be a list of length ${r}, but found length ${i.value.length}`);return i.value}function N(t,e){try{return t()}catch(t){return e}}var B;function R(t){let e=null;return()=>(null==e&&(e=t()),e)}function T(t,e,s){const r=t.get(e);if(r)return r;const i=s(e);return t.set(e,i),i}!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,s){var r;const i=null!=(r=e(t))?r:{};return Object.fromEntries(Object.entries(i).map((([t,e])=>[t,s(e)])))},t.compose=function(t,e,s){const r=e(t);return r?s(r):void 0},t.readEnum=function(t,e){return\"string\"!=typeof t?e[0]:e.includes(t)?t:e[0]}}(B||(B={}));const M=class{constructor(t,e){if(this.namespace=t,this.path=e,!t.match(/^[a-z0-9._-]+$/))throw new Error(`Non [a-z0-9._-] character in namespace of ${t}:${e}`);if(!e.match(/^[a-z0-9/._-]+$/))throw new Error(`Non [a-z0-9/._-] character in path of ${t}:${e}`)}equals(t){return this===t||this.namespace===t.namespace&&this.path===t.path}toString(){return`${this.namespace}:${this.path}`}static create(t){return new M(this.DEFAULT_NAMESPACE,t)}static parse(t){const e=t.indexOf(this.SEPARATOR);if(e>=0){const s=e>=1?t.substring(0,e):this.DEFAULT_NAMESPACE,r=t.substring(e+1);return new M(s,r)}return new M(this.DEFAULT_NAMESPACE,t)}};let C=M;C.DEFAULT_NAMESPACE=\"minecraft\",C.SEPARATOR=\":\";var O=Object.defineProperty,k=Object.defineProperties,P=Object.getOwnPropertyDescriptors,L=Object.getOwnPropertySymbols,F=Object.prototype.hasOwnProperty,V=Object.prototype.propertyIsEnumerable,D=(t,e,s)=>e in t?O(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s;const U=class{constructor(t,e={}){this.properties=e,this.name=\"string\"==typeof t?C.parse(t):t}getName(){return this.name}getProperties(){return this.properties}getProperty(t){return this.properties[t]}isFluid(){return this.is(U.WATER)||this.is(U.LAVA)}equals(t){return!!this.name.equals(t.name)&&Object.keys(this.properties).every((e=>t.properties[e]===this.properties[e]))}is(t){return this.name.equals(t.name)}toString(){return 0===Object.keys(this.properties).length?this.name.toString():`${this.name.toString()}[${Object.entries(this.properties).map((([t,e])=>t+\"=\"+e)).join(\",\")}]`}static fromNbt(t){const e=C.parse(E(t.value,\"Name\",\"string\")),s=N((()=>E(t.value,\"Properties\",\"compound\")),{}),r=Object.keys(s).reduce(((t,e)=>{return r=((t,e)=>{for(var s in e||(e={}))F.call(e,s)&&D(t,s,e[s]);if(L)for(var s of L(e))V.call(e,s)&&D(t,s,e[s]);return t})({},t),i={[e]:E(s,e,\"string\")},k(r,P(i));var r,i}),{});return new U(e,r)}static fromJson(t){var e,s;const r=null!=(e=B.readObject(t))?e:{},i=C.parse(null!=(s=B.readString(r.Name))?s:U.STONE.name.toString()),n=B.readMap(r.Properties,(t=>{var e;return null!=(e=B.readString(t))?e:\"\"}));return new U(i,n)}};let G=U;G.AIR=new U(C.create(\"air\")),G.STONE=new U(C.create(\"stone\")),G.WATER=new U(C.create(\"water\"),{level:\"0\"}),G.LAVA=new U(C.create(\"lava\"),{level:\"0\"});const z=class{constructor(t){this.minY=t,this.storage=Array(z.SIZE).fill(0),this.palette=[G.AIR]}get minBlockY(){return this.minY<<4}index(t,e,s){return(t<<8)+(e<<4)+s}getBlockState(t,e,s){var r;const i=this.storage[this.index(t,e,s)];return null!=(r=this.palette[i])?r:G.AIR}setBlockState(t,e,s,r){let i=this.palette.findIndex((t=>t.equals(r)));-1===i&&(i=this.palette.length,this.palette.push(r)),this.storage[this.index(t,e,s)]=i}};let Y=z;Y.WIDTH=16,Y.SIZE=z.WIDTH*z.WIDTH*z.WIDTH;class H{constructor(t,e,s){this.minY=t,this.height=e,this.pos=s,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[s,r,i]=t,n=this.sections[this.getSectionIndex(r)];return null!=(e=null==n?void 0:n.getBlockState(15&s,15&r,15&i))?e:G.AIR}setBlockState(t,e){const[s,r,i]=t,n=this.getSectionIndex(r);let o=this.sections[n];if(null===o){if(e.equals(G.AIR))return;o=this.getOrCreateSection(n)}o.setBlockState(15&s,15&r,15&i,e)}getOrCreateSection(t){return null==this.sections[t]&&(this.sections[t]=new Y(this.minSection+t)),this.sections[t]}}var X,j;!function(t){function e(t,e){return BigInt(4294967295&t)|BigInt(4294967295&e)<>4,t[2]>>4]},t.fromLong=function(t){return[4294967295&Number(t),Number(t>>BigInt(32))]},t.toLong=function(t){return e(t[0],t[1])},t.asLong=e,t.minBlockX=function(t){return t[0]<<4},t.minBlockZ=function(t){return t[1]<<4},t.maxBlockX=function(t){return 15+(t[0]<<4)},t.maxBlockZ=function(t){return 15+(t[1]<<4)}}(X||(X={})),function(t){function e(t){return{value:()=>t,key:()=>{}}}function s(t,e){return{value:()=>t.getOrThrow(e),key:()=>e}}t.parser=function(t,r){return i=>\"string\"==typeof i?s(t,C.parse(i)):e(r(i))},t.direct=e,t.reference=s}(j||(j={}));const Z=class{constructor(t,e){this.key=t,this.parser=e,this.storage=new Map,this.builtin=new Map}register(t,e,s){return this.storage.set(t.toString(),e),s&&this.builtin.set(t.toString(),e),j.reference(this,t)}keys(){return[...this.storage.keys()].map((t=>C.parse(t)))}get(t){return this.storage.get(t.toString())}getOrThrow(t){const e=this.storage.get(t.toString());if(void 0===e)throw new Error(`Missing key in ${this.key.toString()}: ${t.toString()}`);return e}parse(t){if(!this.parser)throw new Error(`No parser exists for ${this.key.toString()}`);return this.parser(t)}clear(){this.storage.clear();for(const[t,e]of this.builtin.entries())this.storage.set(t,e);return this}assign(t){if(!this.key.equals(t.key))throw new Error(`Cannot assign registry of type ${t.key.toString()} to registry of type ${this.key.toString()}`);for(const e of t.keys())this.storage.set(e.toString(),t.getOrThrow(e));return this}cloneEmpty(){return new Z(this.key,this.parser)}};let q=Z;q.REGISTRY=new Z(C.create(\"root\"));class J{constructor(t,e=[],s=[]){this.size=t,this.palette=e,this.blocks=s,this.blocksMap=[],s.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,s,r){if(!this.isInside(t))throw new Error(`Cannot add block at ${t} outside the structure bounds ${this.size}`);const i=new G(e,s);let n=this.palette.findIndex((t=>t.equals(i)));return-1===n&&(n=this.palette.length,this.palette.push(i)),this.blocks.push({pos:t,state:n,nbt:r}),this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]]={pos:t,state:n,nbt:r},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]G.fromNbt({name:\"\",value:t}))),r=I(t.value,\"blocks\",\"compound\").map((t=>({pos:I(t,\"pos\",\"int\",3),state:E(t,\"state\",\"int\"),nbt:N((()=>E(t,\"nbt\",\"compound\")),void 0)})));return new J(e,s,r)}}function W(t){return t*t}function $(t,e,s){return Math.max(e,Math.min(s,t))}function K(t,e,s){return e+t*(s-e)}function Q(t,e,s,r,i,n){return K(e,K(t,s,r),K(t,i,n))}function tt(t,e,s,r,i,n,o,a,l,u,h){return K(s,Q(t,e,r,i,n,o),Q(t,e,a,l,u,h))}function et(t,e,s){return 0===t?e():1===t?s():e()+t*(s()-e())}function st(t,e,s,r,i,n){return et(e,(()=>et(t,s,r)),(()=>et(t,i,n)))}function rt(t,e,s,r,i,n,o,a,l,u,h){return et(s,(()=>st(t,e,r,i,n,o)),(()=>st(t,e,a,l,u,h)))}function it(t,e,s){return s<0?t:s>1?e:K(s,t,e)}function nt(t,e,s){return(t-e)/(s-e)}function ot(t){return t*t*t*(t*(6*t-15)+10)}function at(t,e,s,r,i){return K(nt(t,e,s),r,i)}function lt(t,e,s,r,i){return it(r,i,nt(t,e,s))}function ut(t,e,s){let r=e-t;for(;r>0;){const e=Math.floor(r/2),i=t+e;s(i)?r=e:(t=i+1,r-=e+1)}return t}function ht(t,e,s){let r=BigInt(3129871*t)^BigInt(s)*BigInt(116129781)^BigInt(e);return r=r*r*BigInt(42317861)+r*BigInt(11),r>>BigInt(16)}function ct(t,e,s,r,i,n,o,a){return BigInt(t)<{var e;return null!=(e=B.readObject(t))?e:{}})))?o:[];if(0===c.length)return new e(0);for(const e of c){const s=null!=(a=B.readNumber(e.location))?a:0,r=t(e.value,i),n=null!=(l=B.readNumber(e.derivative))?l:0;h.addPoint(s,r,n)}return h};class e{constructor(t){this.value=t}compute(){return this.value}min(){return this.value}max(){return this.value}mapAll(){return this}}t.Constant=e;class s{constructor(t,e=[],s=[],r=[]){this.coordinate=t,this.locations=e,this.values=s,this.derivatives=r}compute(t){const e=this.coordinate.compute(t),s=ut(0,this.locations.length,(t=>et.min())))}max(){return Math.max(...this.values.map((t=>t.max())))}mapAll(t){return new s(t(this.coordinate),this.locations,this.values.map((e=>e.mapAll(t))),this.derivatives)}addPoint(e,s,r=0){return this.locations.push(e),this.values.push(\"number\"==typeof s?new t.Constant(s):s),this.derivatives.push(r),this}}t.MultiPoint=s}(ft||(ft={}));const mt=class{constructor(t){this.seed=BigInt(0),this.setSeed(t)}fork(){return new mt(this.nextLong())}forkPositional(){return new pt(this.nextLong())}setSeed(t){this.seed=t^mt.MULTIPLIER&mt.MODULUS_MASK}advance(){this.seed=this.seed*mt.MULTIPLIER+mt.INCREMENT&mt.MODULUS_MASK}consume(t){for(let e=0;e>BigInt(mt.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,s;for(;(e=this.next(31))-(s=e%t)+(t-1)<0;);return s}nextLong(){return(BigInt(this.next(32))<>gt.BIGINT_30)*gt.STAFFORD_1>.MAX_ULONG)^t>>gt.BIGINT_27)*gt.STAFFORD_2>.MAX_ULONG)^t>>gt.BIGINT_31)>.MAX_ULONG}static upgradeSeedTo128bit(t){t<0&&(t+=gt.POW2_60);const e=t^gt.SILVER_RATIO_64,s=e+gt.GOLDEN_RATIO_64>.MAX_ULONG;return[gt.mixStafford13(e),gt.mixStafford13(s)]}static rotateLeft(t,e){return t<>gt.BIGINT_64-e}setSeed(t){this.seed=gt.upgradeSeedTo128bit(t)}fork(){return new gt([this.next(),this.next()])}forkPositional(){return new wt(this.next(),this.next())}next(){const t=this.seed[0];let e=this.seed[1];const s=gt.rotateLeft(t+e>.MAX_ULONG,gt.BIGINT_17)+t>.MAX_ULONG;return e^=t,this.seed=[gt.rotateLeft(t,gt.BIGINT_49)^e^e<gt.POW2_63&&(t-=gt.POW2_60),t}consume(t){let e=this.seed[0],s=this.seed[1];for(let r=0;r>BigInt(64-t)}nextInt(t){let e=this.next()>.MAX_UINT;if(t){const s=BigInt(t);let r=e*s,i=r>.MAX_UINT;if(i>gt.BIGINT_32;return Number(n)}{let t=Number(e);return t>=2147483648&&(t-=4294967296),t}}nextFloat(){return Number(this.nextBits(24))*gt.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*gt.DOUBLE_MULTIPLIER}parityConfigString(){return\"seedLo: \"+this.seed[0]+\", seedHi: \"+this.seed[1]}};let vt=gt;vt.SILVER_RATIO_64=BigInt(\"7640891576956012809\"),vt.GOLDEN_RATIO_64=BigInt(\"-7046029254386353131\"),vt.FLOAT_MULTIPLIER=1/Math.pow(2,24),vt.DOUBLE_MULTIPLIER=11102230246251565e-32,vt.BIGINT_1=BigInt(1),vt.BIGINT_17=BigInt(17),vt.BIGINT_21=BigInt(21),vt.BIGINT_27=BigInt(27),vt.BIGINT_28=BigInt(28),vt.BIGINT_30=BigInt(30),vt.BIGINT_31=BigInt(31),vt.BIGINT_32=BigInt(32),vt.BIGINT_49=BigInt(49),vt.BIGINT_64=BigInt(64),vt.STAFFORD_1=BigInt(\"-4658895280553007687\"),vt.STAFFORD_2=BigInt(\"-7723592293110705685\"),vt.MAX_ULONG=BigInt(\"0xFFFFFFFFFFFFFFFF\"),vt.POW2_60=BigInt(\"0x10000000000000000\"),vt.POW2_63=BigInt(\"0x8000000000000000\"),vt.MAX_UINT=BigInt(4294967295);class wt{constructor(t,e){this.seedLo=t,this.seedHi=e}at(t,e,s){const r=ht(t,e,s)^this.seedLo;return new vt([r,this.seedHi])}fromHashOf(t){const s=e(t,{asBytes:!0}),r=ct(s[0],s[1],s[2],s[3],s[4],s[5],s[6],s[7]),i=ct(s[8],s[9],s[10],s[11],s[12],s[13],s[14],s[15]);return new vt([r^this.seedLo,i^this.seedHi])}seedKey(){return[this.seedLo,this.seedHi]}}const bt=class{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 s=t.nextInt(256-e),r=this.p[e];this.p[e]=this.p[e+s],this.p[e+s]=r}}sample2D(t,e){let s,r,i;const n=(t+e)*bt.F2,o=Math.floor(t+n),a=t-(o-(s=(o+(r=Math.floor(e+n)))*bt.G2));let l,u;a>(i=e-(r-s))?(l=1,u=0):(l=0,u=1);const h=a-l+bt.G2,c=i-u+bt.G2,f=a-1+2*bt.G2,m=i-1+2*bt.G2,d=255&o,p=255&r,g=this.P(d+this.P(p))%12,v=this.P(d+l+this.P(p+u))%12,w=this.P(d+1+this.P(p+1))%12;return 70*(this.getCornerNoise3D(g,a,i,0,.5)+this.getCornerNoise3D(v,h,c,0,.5)+this.getCornerNoise3D(w,f,m,0,.5))}sample(t,e,s){const r=.3333333333333333*(t+e+s),i=Math.floor(t+r),n=Math.floor(e+r),o=Math.floor(s+r),a=.16666666666666666*(i+n+o),l=t-(i-a),u=e-(n-a),h=s-(o-a);let c,f,m,d,p,g;l>=u?u>=h?(c=1,f=0,m=0,d=1,p=1,g=0):l>=h?(c=1,f=0,m=0,d=1,p=0,g=1):(c=0,f=0,m=1,d=1,p=0,g=1):u127?t-256:t;for(let e=0;e<256;e+=1){const s=t.nextInt(256-e),r=this.p[e];this.p[e]=this.p[e+s],this.p[e+s]=r}}sample(t,e,s,r=0,i=0){const n=t+this.xo,o=e+this.yo,a=s+this.zo,l=Math.floor(n),u=Math.floor(o),h=Math.floor(a),c=n-l,f=o-u,m=a-h;let d=0;if(0!==r){const t=i>=0&&i=0;r-=1)r0&&(r=this.maxLimitNoise.getOctaveNoise(l))&&(a+=r.sample(c,f,m,h,e*h)/n),n/=2}return it(o/512,a/512,i)/128}}var yt;(yt||(yt={})).fromJson=function(t){var e,s,r,i,n;const o=null!=(e=B.readObject(t))?e:{};return{xzScale:null!=(s=B.readNumber(o.xz_scale))?s:1,yScale:null!=(r=B.readNumber(o.y_scale))?r:1,xzFactor:null!=(i=B.readNumber(o.xz_factor))?i:80,yFactor:null!=(n=B.readNumber(o.y_factor))?n:80}};const Et=class{constructor(t,{firstOctave:e,amplitudes:s}){this.first=new _t(t,e,s),this.second=new _t(t,e,s);let r=1/0,i=-1/0;for(let t=0;t{var e;return null!=(e=B.readNumber(t))?e:0})))?r:[]}};class Rt{constructor(t,e){const s=e[e.length-1],r=-e[0]+s+1,i=new Set(e),n=new xt(t);this.noiseLevels=Array(r),s>=0&&s=0&&i.has(s-e)?this.noiseLevels[e]=new xt(t):t.consume(262);if(s>0)throw new Error(\"Positive octaves are not allowed\");this.highestFreqInputFactor=Math.pow(2,s),this.highestFreqValueFactor=1/(Math.pow(2,r)-1)}sample(t,e,s){let r=0,i=this.highestFreqInputFactor,n=this.highestFreqValueFactor;for(let o=0;o[(t>>16&255)/256,(t>>8&255)/256,(255&t)/256],Mt=[124/256,189/256,107/256],Ct=Tt(6396257),Ot=Tt(8431445),kt=Tt(4764952),Pt=Tt(4159204),Lt=Tt(8431445),Ft=Tt(2129968),Vt=t=>[t/8,1-t/32,64*t],Dt={large_fern:()=>Mt,tall_grass:()=>Mt,grass_block:()=>Mt,fern:()=>Mt,grass:()=>Mt,potted_fern:()=>Mt,spruce_leaves:()=>Ct,birch_leaves:()=>Ot,oak_leaves:()=>kt,jungle_leaves:()=>kt,acacia_leaves:()=>kt,dark_oak_leaves:()=>kt,vine:()=>kt,water:()=>Pt,bubble_column:()=>Pt,cauldron:()=>Pt,redstone_wire:t=>{var e;return(t=>{const e=t/15;return[.6*e+(e>0?.4:.3),$(e*e*.7-.5,0,1),$(e*e*.6-.7,0,1)]})(parseInt(null!=(e=t.power)?e:\"0\"))},sugar_cane:()=>Mt,attached_melon_stem:()=>Lt,attached_pumpkin_stem:()=>Lt,melon_stem:t=>{var e;return Vt(parseInt(null!=(e=t.age)?e:\"0\"))},pumpkin_stem:t=>{var e;return Vt(parseInt(null!=(e=t.age)?e:\"0\"))},lily_pad:()=>Ft};var Ut;function Gt(...t){let e=0;for(const s of t)e+=s.length;const s=new Float32Array(e);let r=0;for(const e of t)s.set(e,r),r+=e.length;return s}function zt(t,e){const r=s.create();for(let i=0;ithis.matchesVariant(e,t)));if(0===e.length)return[];const s=this.variants[e[0]];return[Array.isArray(s)?s[0]:s]}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,s,n,o,a){var l,u,h,c;const f=this.getModelVariants(e),m=[],d=[],p=[],g=[];for(const v of f){const f=Ut.rotate(a,null!=(l=v.x)?l:0,null!=(u=v.y)?u:0),w=n.getBlockModel(v.model).getBuffers(t,e,s,o,f);if(v.x||v.y){const t=r.create();r.identity(t),r.translate(t,t,[8,8,8]),r.rotateY(t,t,-i.toRadian(null!=(h=v.y)?h:0)),r.rotateX(t,t,-i.toRadian(null!=(c=v.x)?c:0)),r.translate(t,t,[-8,-8,-8]),zt(w.position,t)}m.push(w.position),d.push(...w.texCoord),p.push(...w.tintColor),g.push(...w.index),o+=w.texCoord.length/2}const v=r.create();r.identity(v),r.scale(v,v,[.0625,.0625,.0625]);const w=Gt(...m);return zt(w,v),{position:w,texCoord:d,tintColor:p,index:g}}matchesVariant(t,e){return t.split(\",\").every((t=>{const[s,r]=t.split(\"=\");return e[s]===r}))}matchesCase(t,e){if(Array.isArray(t.OR))return t.OR.some((t=>this.matchesCase(t,e)));const s=t;return Object.keys(s).every((t=>s[t].split(\"|\").includes(e[t])))}static fromJson(t,e){return new Yt(t,e.variants,e.multipart)}}const Ht={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]},Xt={x:[1,0,0],y:[0,1,0],z:[0,0,1]},jt=1.41421356237,Zt={x:[1,jt,jt],y:[jt,1,jt],z:[jt,jt,1]};class qt{constructor(t,e,s,r){this.id=t,this.parent=e,this.textures=s,this.elements=r,this.flattened=!1}getBuffers(t,e,s,r,i){var n;const o=[],a=[],l=[],u=[];for(const h of null!=(n=this.elements)?n:[]){const n=this.getElementBuffers(t,e,h,r,s,i);o.push(n.position),a.push(...n.texCoord),l.push(...n.tintColor),u.push(...n.index),r+=n.texCoord.length/2}return{position:Gt(...o),texCoord:a,tintColor:l,index:u}}getElementBuffers(t,e,n,o,a,l){var u,h,c,f,m,d,p,g,v,w,b,x;const S=n.from[0],_=n.from[1],A=n.from[2],y=n.to[0],E=n.to[1],I=n.to[2],N=[],B=[],R=[],T=[],M=(s,r,i)=>{var n,l,u,h,c,f,m,d,p,g,v,w,b;const[x,S,_,A]=a.getTextureUV(this.getTexture(s.texture)),y=(_-x)/16,E=(A-S)/16,I=y/16,M=E/16;r[0]=(null!=(l=null==(n=s.uv)?void 0:n[0])?l:r[0])*y+I,r[1]=(null!=(h=null==(u=s.uv)?void 0:u[1])?h:r[1])*E+M,r[2]=(null!=(f=null==(c=s.uv)?void 0:c[2])?f:r[2])*y-I,r[3]=(null!=(d=null==(m=s.uv)?void 0:m[3])?d:r[3])*E-M;const C=Ht[null!=(p=s.rotation)?p:0];B.push(x+r[C[0]],S+r[C[1]],x+r[C[2]],S+r[C[3]],x+r[C[4]],S+r[C[5]],x+r[C[6]],S+r[C[7]]);const O=(null!=(g=s.tintindex)?g:-1)>=0&&null!=(b=null==(w=(v=Dt)[t.path])?void 0:w.call(v,e))?b:[1,1,1];R.push(...O,...O,...O,...O),N.push(...i),T.push(o,o+1,o+2,o,o+2,o+3),o+=4};!(null==(h=null==(u=n.faces)?void 0:u.up)?void 0:h.texture)||n.faces.up.cullface&&l[n.faces.up.cullface]||M(n.faces.up,[S,16-I,y,16-A],[S,E,I,y,E,I,y,E,A,S,E,A]),!(null==(f=null==(c=n.faces)?void 0:c.down)?void 0:f.texture)||n.faces.down.cullface&&l[n.faces.down.cullface]||M(n.faces.down,[16-I,16-y,16-A,16-S],[S,_,A,y,_,A,y,_,I,S,_,I]),!(null==(d=null==(m=n.faces)?void 0:m.south)?void 0:d.texture)||n.faces.south.cullface&&l[n.faces.south.cullface]||M(n.faces.south,[S,16-E,y,16-_],[S,_,I,y,_,I,y,E,I,S,E,I]),!(null==(g=null==(p=n.faces)?void 0:p.north)?void 0:g.texture)||n.faces.north.cullface&&l[n.faces.north.cullface]||M(n.faces.north,[16-y,16-E,16-S,16-_],[y,_,A,S,_,A,S,E,A,y,E,A]),!(null==(w=null==(v=n.faces)?void 0:v.east)?void 0:w.texture)||n.faces.east.cullface&&l[n.faces.east.cullface]||M(n.faces.east,[16-I,16-E,16-A,16-_],[y,_,I,y,_,A,y,E,A,y,E,I]),!(null==(x=null==(b=n.faces)?void 0:b.west)?void 0:x.texture)||n.faces.west.cullface&&l[n.faces.west.cullface]||M(n.faces.west,[A,16-E,I,16-_],[S,_,A,S,_,I,S,E,I,S,E,A]);const C=r.create();if(r.identity(C),n.rotation){const t=s.fromValues(...n.rotation.origin);r.translate(C,C,t),r.rotate(C,C,i.toRadian(n.rotation.angle),Xt[n.rotation.axis]),n.rotation.rescale&&r.scale(C,C,Zt[n.rotation.axis]),s.negate(t,t),r.translate(C,C,t)}const O=new Float32Array(N);return zt(O,C),{position:O,texCoord:B,tintColor:R,index:T}}getTexture(t){for(var e,s;t.startsWith(\"#\");)t=null!=(s=null==(e=this.textures)?void 0:e[t.slice(1)])?s:\"\";return t.startsWith(\"minecraft:\")||(t=\"minecraft:\"+t),t}flatten(t){var e;if(!this.flattened&&this.parent){const s=t.getBlockModel(this.parent);if(!s)return console.warn(`parent ${this.parent} does not exist!`),void(this.flattened=!0);s.flatten(t),this.elements||(this.elements=s.elements),this.textures||(this.textures={}),Object.keys(null!=(e=s.textures)?e:{}).forEach((t=>{this.textures[t]||(this.textures[t]=s.textures[t])})),this.flattened=!0}}static fromJson(t,e){let s=e.parent;return s&&!s.startsWith(\"minecraft:\")&&(s=\"minecraft:\"+s),new qt(t,s,e.textures,e.elements)}}class Jt{constructor(t,e,s){this.gl=t,this.program=this.initShaderProgram(e,s)}getProgram(){return this.program}initShaderProgram(t,e){const s=this.loadShader(this.gl.VERTEX_SHADER,t),r=this.loadShader(this.gl.FRAGMENT_SHADER,e),i=this.gl.createProgram();if(this.gl.attachShader(i,s),this.gl.attachShader(i,r),this.gl.linkProgram(i),!this.gl.getProgramParameter(i,this.gl.LINK_STATUS))throw new Error(`Unable to link shader program: ${this.gl.getProgramInfoLog(i)}`);return i}loadShader(t,e){const s=this.gl.createShader(t);if(this.gl.shaderSource(s,e),this.gl.compileShader(s),!this.gl.getShaderParameter(s,this.gl.COMPILE_STATUS)){const e=new Error(`Compiling ${t===this.gl.VERTEX_SHADER?\"vertex\":\"fragment\"} shader: ${this.gl.getShaderInfoLog(s)}`);throw this.gl.deleteShader(s),e}return s}}function Wt(t,e,s,r,i){const n=new Yt(\"\",{\"\":{model:\"\"}},void 0),o={getBlockModel:()=>i};return i.flatten(o),n.getBuffers(t,{},e,o,s,r)}function $t(t,e,s,r,i,o){const a=i.up?16:[14.2,12.5,10.5,9,7,5.3,3.7,1.9,16,16,16,16,16,16,16,16][s];return Wt(C.create(t),r,e,i,new qt(\"\",\"\",{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:n.UP},down:{texture:\"#still\",tintindex:o,cullface:n.DOWN},north:{texture:\"#flow\",tintindex:o,cullface:n.NORTH},east:{texture:\"#flow\",tintindex:o,cullface:n.EAST},south:{texture:\"#flow\",tintindex:o,cullface:n.SOUTH},west:{texture:\"#flow\",tintindex:o,cullface:n.WEST}}}]))}const Kt={\"minecraft:water\":(t,e,s,r)=>$t(\"water\",t,parseInt(e.level),s,r,0),\"minecraft:lava\":(t,e,s,r)=>$t(\"lava\",t,parseInt(e.level),s,r),\"minecraft:chest\":(t,e,s)=>function(t,e,s,r){return Wt(C.create(\"chest\"),r,t,{},new qt(\"\",\"\",{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,s)},Qt=new Set(Object.keys(Kt));class te{constructor(t,e,s,r){var i,n;this.gl=t,this.structure=e,this.resources=s,this.chunks=[],(null==r?void 0:r.facesPerBuffer)&&console.warn(\"webgl render warning: facesPerBuffer option has been removed in favor of chunkSize\"),this.chunkSize=null!=(i=null==r?void 0:r.chunkSize)?i:16,this.useInvisibleBlockBuffer=null==(n=null==r?void 0:r.useInvisibleBlockBuffer)||n,this.shaderProgram=new Jt(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 Jt(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 Jt(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,s=r.create();return r.perspective(s,t,e,.1,500),s}getChunk(t){const e=2*Math.abs(t[0])+(t[0]<0?1:0),s=2*Math.abs(t[1])+(t[1]<0?1:0),r=2*Math.abs(t[2])+(t[2]<0?1:0);return this.chunks[e]||(this.chunks[e]=[]),this.chunks[e][s]||(this.chunks[e][s]=[]),this.chunks[e][s][r]||(this.chunks[e][s][r]={positions:[],textureCoordinates:[],tintColors:[],blockPositions:[],normals:[],indices:[],indexOffset:0}),this.chunks[e][s][r]}updateStructureBuffers(t){var e;const i=(t,e,i)=>{const n=r.create();r.translate(n,n,e),zt(t.position,n),i.positions.push(t.position),i.textureCoordinates.push(...t.texCoord),i.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,Gt(...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,Gt(...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 r of this.structure.getBlocks()){const o=r.state.getName(),a=r.state.getProperties(),u=null!=(e=this.resources.getDefaultBlockProperties(o))?e:{};Object.entries(u).forEach((([t,e])=>{a[t]||(a[t]=e)}));const h=[Math.floor(r.pos[0]/this.chunkSize),Math.floor(r.pos[1]/this.chunkSize),Math.floor(r.pos[2]/this.chunkSize)];if(t&&!t.some((t=>s.equals(t,h))))continue;const c=this.getChunk(h);try{const t=this.resources.getBlockDefinition(o),e={up:this.needsCull(r,n.UP),down:this.needsCull(r,n.DOWN),west:this.needsCull(r,n.WEST),east:this.needsCull(r,n.EAST),north:this.needsCull(r,n.NORTH),south:this.needsCull(r,n.SOUTH)};t&&(l=t.getBuffers(o,a,this.resources,this.resources,c.indexOffset,e),i(l,r.pos,c)),Qt.has(o.toString())&&(l=Kt[o.toString()](c.indexOffset,a,this.resources,e),i(l,r.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 s,r;const i=null==(s=this.structure.getBlock(l.towards(t.pos,e)))?void 0:s.state;return!!i&&((null==(r=this.resources.getBlockFlags(i.getName()))?void 0:r.opaque)?!(e===n.UP&&t.state.isFluid()):t.state.isFluid()&&i.isFluid())}getGridBuffers(){const[t,e,s]=this.structure.getSize(),r=[],i=[];r.push(0,0,0,t,0,0),i.push(1,0,0,1,0,0),r.push(0,0,0,0,0,s),i.push(0,0,1,0,0,1),r.push(0,0,0,0,e,0),r.push(t,0,0,t,e,0),r.push(0,0,s,0,e,s),r.push(t,0,s,t,e,s),r.push(0,e,0,0,e,s),r.push(t,e,0,t,e,s),r.push(0,e,0,t,e,0),r.push(0,e,s,t,e,s);for(let e=1;e<=t;e+=1)r.push(e,0,0,e,0,s);for(let e=1;e<=s;e+=1)r.push(0,0,e,t,0,e);for(let e=0;e<8+t+s;e+=1)i.push(.8,.8,.8,.8,.8,.8);return{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(r)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(i)),length:r.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=[],s=[];for(let r=0;r{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 s=r.create();r.copy(s,t),r.translate(s,s,e),this.setUniform(\"mView\",s),this.setUniform(\"mProj\",this.projMatrix),this.gl.drawArrays(this.gl.LINES,0,this.outlineBuffers.length)}setViewport(t,e,s,r){this.gl.viewport(t,e,s,r),this.projMatrix=this.getPerspective()}setShader(t){this.gl.useProgram(t),this.activeShader=t}setVertexAttr(t,e,s){const r=this.gl.getAttribLocation(this.activeShader,t);this.gl.bindBuffer(this.gl.ARRAY_BUFFER,s),this.gl.vertexAttribPointer(r,e,this.gl.FLOAT,!1,0,0),this.gl.enableVertexAttribArray(r)}setUniform(t,e){const s=this.gl.getUniformLocation(this.activeShader,t);this.gl.uniformMatrix4fv(s,!1,e)}}var ee=(t,e,s)=>new Promise(((r,i)=>{var n=t=>{try{a(s.next(t))}catch(t){i(t)}},o=t=>{try{a(s.throw(t))}catch(t){i(t)}},a=t=>t.done?r(t.value):Promise.resolve(t.value).then(n,o);a((s=s.apply(t,e)).next())}));class se{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])?e:[0,0,this.part,this.part]}static fromBlobs(t){return ee(this,null,(function*(){const e=Math.sqrt(Object.keys(t).length+1),s=Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))),r=16*s,i=1/s,n=document.createElement(\"canvas\");n.width=r,n.height=r;const o=n.getContext(\"2d\");this.drawInvalidTexture(o);const a={};let l=1;return yield Promise.all(Object.keys(t).map((e=>ee(this,null,(function*(){const r=l%s,n=Math.floor(l/s);l+=1,a[e]=[i*r,i*n,i*r+i,i*n+i];const u=yield createImageBitmap(t[e]);o.drawImage(u,0,0,16,16,16*r,16*n,16,16)}))))),new se(o.getImageData(0,0,r,r),a)}))}static empty(){const t=document.createElement(\"canvas\");t.width=16,t.height=16;const e=t.getContext(\"2d\");return se.drawInvalidTexture(e),new se(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)}}const re=class{constructor(t,e,s){this.offsetSampler=t,this.factorSampler=e,this.jaggednessSampler=s}static extractor(t){return{compute:e=>e[t]}}static fromJson(t){var e;const s=null!=(e=B.readObject(t))?e:{};return new re(ft.fromJson(s.offset,this.EXTRACTOR),ft.fromJson(s.factor,this.EXTRACTOR),ft.fromJson(s.jaggedness,this.EXTRACTOR))}offset(t){return this.offsetSampler.compute(t)+re.GLOBAL_OFFSET}factor(t){return this.factorSampler.compute(t)}jaggedness(t){return this.jaggednessSampler.compute(t)}static point(t,e,s){return{continents:t,erosion:e,weirdness:s,ridges:this.peaksAndValleys(s)}}static peaksAndValleys(t){return 3*-(Math.abs(Math.abs(t)-.6666667)-.33333334)}};let ie=re;var ne,oe,ae,le,ue;ie.GLOBAL_OFFSET=-.50375,ie.EXTRACTOR=t=>{var e;const s=null!=(e=B.readString(t))?e:\"continents\";return re.extractor(s)},ie.CONTINENTS=re.extractor(\"continents\"),ie.EROSION=re.extractor(\"erosion\"),ie.WEIRDNESS=re.extractor(\"weirdness\"),ie.RIDGES=re.extractor(\"ridges\"),function(t){function e(t){return t.ySize<<2}t.fromJson=function(t){var e,s,r,i,n;const o=null!=(e=B.readObject(t))?e:{};return{minY:null!=(s=B.readInt(o.min_y))?s:0,height:null!=(r=B.readInt(o.height))?r:256,xzSize:null!=(i=B.readInt(o.size_horizontal))?i:1,ySize:null!=(n=B.readInt(o.size_vertical))?n:1,sampling:yt.fromJson(o.sampling),topSlide:oe.fromJson(o.top_slide),bottomSlide:oe.fromJson(o.bottom_slide),terrainShaper:ie.fromJson(o.terrain_shaper)}},t.cellHeight=e,t.cellWidth=function(t){return t.xzSize<<2},t.cellCountY=function(t){return t.height/e(t)},t.minCellY=function(t){return Math.floor(t.minY/e(t))},t.applySlides=function(s,r,i){const n=Math.floor(i/e(s))-t.minCellY(s);return r=oe.apply(s.topSlide,r,t.cellCountY(s)-n),r=oe.apply(s.bottomSlide,r,n)}}(ne||(ne={})),(ae=oe||(oe={})).fromJson=function(t){var e,s,r,i;const n=null!=(e=B.readObject(t))?e:{};return{target:null!=(s=B.readNumber(n.target))?s:0,size:null!=(r=B.readInt(n.size))?r:0,offset:null!=(i=B.readInt(n.offset))?i:0}},ae.apply=function(t,e,s){if(t.size<=0)return e;const r=(s-t.offset)/t.size;return it(t.target,e,r)},function(t){function e(t){const e=new q(C.create(t));return q.REGISTRY.register(e.key,e),e}t.NOISE=e(\"worldgen/noise\"),t.DENSITY_FUNCTION=e(\"worldgen/density_function\")}(le||(le={}));class he{minValue(){return-this.maxValue()}mapAll(t){return t.map(this)}}!function(t){t.context=function(t,e,s){return{x:t,y:e,z:s}};class e extends t{constructor(t){super(),this.input=t}compute(t){return this.transform(t,this.input.compute(t))}}const s=j.parser(le.NOISE,Nt.fromJson);t.fromJson=function t(e,r=t){var l,v,S,N,T,D,U,G,z,Y,H,X,Z,q,J,W,$,K,Q;if(\"string\"==typeof e)return new n(j.reference(le.DENSITY_FUNCTION,C.parse(e)));if(\"number\"==typeof e)return new i(e);const tt=null!=(l=B.readObject(e))?l:{},et=null==(v=B.readString(tt.type))?void 0:v.replace(/^minecraft:/,\"\");switch(et){case\"blend_alpha\":return new o(1,0,1);case\"blend_offset\":case\"beardifier\":return new o(0,-1/0,1/0);case\"old_blended_noise\":return new a;case\"flat_cache\":return new u(r(tt.argument));case\"interpolated\":return new m(r(tt.argument));case\"cache_2d\":return new c(r(tt.argument));case\"cache_once\":return new f(r(tt.argument));case\"cache_all_in_cell\":return new h(r(tt.argument));case\"noise\":return new d(null!=(S=B.readNumber(tt.xz_scale))?S:1,null!=(N=B.readNumber(tt.y_scale))?N:1,s(tt.noise));case\"end_islands\":return new p;case\"weird_scaled_sampler\":return new w(r(tt.input),B.readEnum(tt.rarity_value_mapper,g),s(tt.noise));case\"shifted_noise\":return new b(r(tt.shift_x),r(tt.shift_y),r(tt.shift_z),null!=(T=B.readNumber(tt.xz_scale))?T:1,null!=(D=B.readNumber(tt.y_scale))?D:1,s(tt.noise));case\"range_choice\":return new x(r(tt.input),null!=(U=B.readNumber(tt.min_inclusive))?U:0,null!=(G=B.readNumber(tt.max_exclusive))?G:1,r(tt.when_in_range),r(tt.when_out_of_range));case\"shift_a\":return new _(s(tt.argument));case\"shift_b\":return new A(s(tt.argument));case\"shift\":return new y(s(tt.argument));case\"blend_density\":return new E(r(tt.argument));case\"clamp\":return new I(r(tt.input),null!=(z=B.readNumber(tt.min))?z:0,null!=(Y=B.readNumber(tt.max))?Y:1);case\"abs\":case\"square\":case\"cube\":case\"half_negative\":case\"quarter_negative\":case\"squeeze\":return new R(et,r(tt.argument));case\"slide\":return new M(r(tt.argument));case\"add\":case\"mul\":case\"min\":case\"max\":return new k(B.readEnum(et,O),r(tt.argument1),r(tt.argument2));case\"spline\":return new P(ft.fromJson(tt.spline,r),null!=(H=B.readNumber(tt.min_value))?H:0,null!=(X=B.readNumber(tt.max_value))?X:1);case\"terrain_shaper_spline\":return new F(r(tt.continentalness),r(tt.erosion),r(tt.weirdness),B.readEnum(tt.spline,L),null!=(Z=B.readNumber(tt.min_value))?Z:0,null!=(q=B.readNumber(tt.max_value))?q:1);case\"constant\":return new i(null!=(J=B.readNumber(tt.argument))?J:0);case\"y_clamped_gradient\":return new V(null!=(W=B.readInt(tt.from_y))?W:-4064,null!=($=B.readInt(tt.to_y))?$:4062,null!=(K=B.readNumber(tt.from_value))?K:-4064,null!=(Q=B.readNumber(tt.to_value))?Q:4062)}return i.ZERO};const r=class extends t{constructor(t){super(),this.value=t}compute(){return this.value}minValue(){return this.value}maxValue(){return this.value}};let i=r;i.ZERO=new r(0),i.ONE=new r(1),t.Constant=i;class n extends t{constructor(t){super(),this.holder=t}compute(t){return this.holder.value().compute(t)}minValue(){return this.holder.value().minValue()}maxValue(){return this.holder.value().maxValue()}}t.HolderHolder=n;class o extends t.Constant{constructor(t,e,s){super(t),this.min=e,this.max=s}minValue(){return this.min}maxValue(){return this.max}}t.ConstantMinMax=o;class a extends t{constructor(t){super(),this.blendedNoise=null!=t?t:new At(vt.create(BigInt(0)),{xzScale:1,yScale:1,xzFactor:80,yFactor:160},4,8)}compute(t){return this.blendedNoise.sample(t.x,t.y,t.z)}maxValue(){return this.blendedNoise.maxValue}}t.OldBlendedNoise=a;class l extends t{constructor(t){super(),this.wrapped=t}minValue(){return this.wrapped.minValue()}maxValue(){return this.wrapped.maxValue()}}class u extends l{constructor(t){super(t),this.lastValue=0}compute(e){const s=e.x>>2,r=e.z>>2;return this.lastQuartX===s&&this.lastQuartZ===r||(this.lastValue=this.wrapped.compute(t.context(s<<2,0,r<<2)),this.lastQuartX=s,this.lastQuartZ=r),this.lastValue}mapAll(t){return t.map(new u(this.wrapped.mapAll(t)))}}t.FlatCache=u;class h extends l{constructor(t){super(t)}compute(t){return this.wrapped.compute(t)}mapAll(t){return t.map(new h(this.wrapped.mapAll(t)))}}t.CacheAllInCell=h;class c extends l{constructor(t){super(t),this.lastValue=0}compute(t){const e=t.x,s=t.z;return this.lastBlockX===e&&this.lastBlockZ===s||(this.lastValue=this.wrapped.compute(t),this.lastBlockX=e,this.lastBlockZ=s),this.lastValue}mapAll(t){return t.map(new c(this.wrapped.mapAll(t)))}}t.Cache2D=c;class f extends l{constructor(t){super(t),this.lastValue=0}compute(t){const e=t.x,s=t.y,r=t.z;return this.lastBlockX===e&&this.lastBlockY===s&&this.lastBlockZ===r||(this.lastValue=this.wrapped.compute(t),this.lastBlockX=e,this.lastBlockY=s,this.lastBlockZ=r),this.lastValue}mapAll(t){return t.map(new f(this.wrapped.mapAll(t)))}}t.CacheOnce=f;class m extends l{constructor(t,e=4,s=4){super(t),this.cellWidth=e,this.cellHeight=s,this.values=new Map}compute({x:t,y:e,z:s}){const r=this.cellWidth,i=this.cellHeight,n=(t%r+r)%r/r,o=(e%i+i)%i/i,a=(s%r+r)%r/r,l=Math.floor(t/r)*r,u=Math.floor(e/i)*i,h=Math.floor(s/r)*r;return rt(n,o,a,(()=>this.computeCorner(l,u,h)),(()=>this.computeCorner(l+r,u,h)),(()=>this.computeCorner(l,u+i,h)),(()=>this.computeCorner(l+r,u+i,h)),(()=>this.computeCorner(l,u,h+r)),(()=>this.computeCorner(l+r,u,h+r)),(()=>this.computeCorner(l,u+i,h+r)),(()=>this.computeCorner(l+r,u+i,h+r)))}computeCorner(e,s,r){return T(this.values,`${e} ${s} ${r}`,(()=>this.wrapped.compute(t.context(e,s,r))))}mapAll(t){return t.map(new m(this.wrapped.mapAll(t)))}withCellSize(t,e){return new m(this.wrapped,t,e)}}t.Interpolated=m;class d extends t{constructor(t,e,s,r){super(),this.xzScale=t,this.yScale=e,this.noiseData=s,this.noise=r}compute(t){var e,s;return null!=(s=null==(e=this.noise)?void 0:e.sample(t.x*this.xzScale,t.y*this.yScale,t.z*this.xzScale))?s:0}maxValue(){var t,e;return null!=(e=null==(t=this.noise)?void 0:t.maxValue)?e:2}}t.Noise=d;class p extends t{compute(){return 0}minValue(){return-.84375}maxValue(){return.5625}}const g=[\"type_1\",\"type_2\"],v=class extends e{constructor(t,e,s,r){super(t),this.rarityValueMapper=e,this.noiseData=s,this.noise=r,this.mapper=v.ValueMapper[this.rarityValueMapper]}transform(t,e){if(!this.noise)return 0;const s=this.mapper(e);return s*Math.abs(this.noise.sample(t.x/s,t.y/s,t.z/s))}mapAll(t){return t.map(new v(this.input.mapAll(t),this.rarityValueMapper,this.noiseData,this.noise))}minValue(){return 0}maxValue(){return\"type_1\"===this.rarityValueMapper?2:3}static rarityValueMapper1(t){return t<-.5?.75:t<0?1:t<.5?1.5:2}static rarityValueMapper2(t){return t<-.75?.5:t<-.5?.75:t<.5?1:t<.75?2:3}};let w=v;w.ValueMapper={type_1:v.rarityValueMapper1,type_2:v.rarityValueMapper2},t.WeirdScaledSampler=w;class b extends d{constructor(t,e,s,r,i,n,o){super(r,i,n,o),this.shiftX=t,this.shiftY=e,this.shiftZ=s}compute(t){var e,s;const r=t.x*this.xzScale+this.shiftX.compute(t),i=t.y*this.yScale+this.shiftY.compute(t),n=t.z*this.xzScale+this.shiftZ.compute(t);return null!=(s=null==(e=this.noise)?void 0:e.sample(r,i,n))?s:0}mapAll(t){return t.map(new b(this.shiftX.mapAll(t),this.shiftY.mapAll(t),this.shiftZ.mapAll(t),this.xzScale,this.yScale,this.noiseData,this.noise))}}t.ShiftedNoise=b;class x extends t{constructor(t,e,s,r,i){super(),this.input=t,this.minInclusive=e,this.maxExclusive=s,this.whenInRange=r,this.whenOutOfRange=i}compute(t){const e=this.input.compute(t);return this.minInclusive<=e&&eMath.abs(t),square:t=>t*t,cube:t=>t*t*t,half_negative:t=>t>0?t:.5*t,quarter_negative:t=>t>0?t:.25*t,squeeze:t=>{const e=$(t,-1,1);return e/2-e*e*e/24}},t.Mapped=R;class M extends e{constructor(t,e){super(t),this.settings=e}transform(t,e){return this.settings?ne.applySlides(this.settings,e,t.y):e}mapAll(t){return t.map(new M(this.input.mapAll(t),this.settings))}minValue(){return this.settings?Math.min(this.input.minValue(),this.settings.bottomSlide.target,this.settings.topSlide.target):this.input.minValue()}maxValue(){return this.settings?Math.max(this.input.maxValue(),this.settings.bottomSlide.target,this.settings.topSlide.target):this.input.maxValue()}}t.Slide=M;const O=[\"add\",\"mul\",\"min\",\"max\"];class k extends t{constructor(t,e,s,r,i){super(),this.type=t,this.argument1=e,this.argument2=s,this.min=r,this.max=i}compute(t){const e=this.argument1.compute(t);switch(this.type){case\"add\":return e+this.argument2.compute(t);case\"mul\":return 0===e?0:e*this.argument2.compute(t);case\"min\":return ethis.argument2.maxValue()?e:Math.max(e,this.argument2.compute(t))}}mapAll(t){return t.map(new k(this.type,this.argument1.mapAll(t),this.argument2.mapAll(t)))}minValue(){var t;return null!=(t=this.min)?t:-1/0}maxValue(){var t;return null!=(t=this.max)?t:1/0}withMinMax(){const t=this.argument1.minValue(),e=this.argument2.minValue(),s=this.argument1.maxValue(),r=this.argument2.maxValue();let i,n;switch(\"min\"!==this.type&&\"max\"!==this.type||!(t>=r||e>=s)||console.warn(`Creating a ${this.type} function between two non-overlapping inputs`),this.type){case\"add\":i=t+e,n=s+r;break;case\"mul\":i=t>0&&e>0?t*e||0:s<0&&r<0?s*r||0:Math.min(t*r||0,e*s||0),n=t>0&&e>0?s*r||0:s<0&&r<0?t*e||0:Math.max(t*e||0,s*r||0);break;case\"min\":i=Math.min(t,e),n=Math.min(s,r);break;case\"max\":i=Math.max(t,e),n=Math.max(s,r)}return new k(this.type,this.argument1,this.argument2,i,n)}}t.Ap2=k;class P extends t{constructor(t,e,s){super(),this.spline=t,this.min=e,this.max=s}compute(t){return $(this.spline.compute(t),this.min,this.max)}mapAll(e){return e.map(new P(this.spline.mapAll((s=>s instanceof t?s.mapAll(e):s)),this.min,this.max))}minValue(){return this.min}maxValue(){return this.max}}t.Spline=P;const L=[\"offset\",\"factor\",\"jaggedness\"];class F extends t{constructor(t,e,s,r,i,n,o){super(),this.continentalness=t,this.erosion=e,this.weirdness=s,this.spline=r,this.min=i,this.max=n,this.shaper=o}compute(t){if(!this.shaper)return 0;const e=ie.point(this.continentalness.compute(t),this.erosion.compute(t),this.weirdness.compute(t));return $(this.shaper[this.spline](e),this.min,this.max)}mapAll(t){return t.map(new F(this.continentalness.mapAll(t),this.erosion.mapAll(t),this.weirdness.mapAll(t),this.spline,this.min,this.max,this.shaper))}minValue(){return this.min}maxValue(){return this.max}}t.TerrainShaperSpline=F;class V extends t{constructor(t,e,s,r){super(),this.fromY=t,this.toY=e,this.fromValue=s,this.toValue=r}compute(t){return lt(t.y,this.fromY,this.toY,this.fromValue,this.toValue)}minValue(){return Math.min(this.fromValue,this.toValue)}maxValue(){return Math.max(this.fromValue,this.toValue)}}t.YClampedGradient=V}(he||(he={}));class ce{constructor(t,e){this.level=t,this.type=e}at(t){return t0))return t(e,s,r).at(s)}}};const fe=class{constructor(t,e,s,r,i,n,o,a,u,h){this.noiseChunk=t,this.barrierNoise=s,this.fluidLevelFloodednessNoise=r,this.fluidLevelSpreadNoise=i,this.lavaNoise=n,this.random=o,this.globalFluidPicker=h,this.minGridX=this.gridX(X.minBlockX(e))-1,this.gridSizeX=this.gridX(X.maxBlockX(e))+1-this.minGridX+1,this.minGridY=this.gridY(a)-1,this.minGridZ=this.gridZ(X.minBlockZ(e))-1,this.gridSizeZ=this.gridZ(X.maxBlockZ(e))+1-this.minGridZ+1;const c=this.gridY(a+u)+1-this.minGridY+1;this.gridSize=this.gridSizeX*c*this.gridSizeZ,this.aquiferCache=Array(this.gridSize).fill(void 0),this.aquiferLocationCache=Array(this.gridSize).fill(l.ZERO)}compute({x:t,y:e,z:s},r){if(r<=0){if(this.globalFluidPicker(t,e,s).at(e).is(G.LAVA))return G.LAVA;{const i=this.gridX(t-5),n=this.gridY(e+1),o=this.gridZ(s-5);let a=Number.MAX_SAFE_INTEGER,u=Number.MAX_SAFE_INTEGER,h=Number.MAX_SAFE_INTEGER,c=l.ZERO,f=l.ZERO,m=l.ZERO;for(let t=0;t<=1;t+=1)for(let e=-1;e<=1;e+=1)for(let s=0;s<=1;s+=1){const r=this.getLocation(i+t,n+e,o+s),d=l.magnitude(r);a>=d?(m=f,f=c,c=r,h=u,u=a,a=d):u>=d?(m=f,f=r,h=u,u=d):h>=d&&(m=r,h=d)}const d=this.getStatus(c),p=this.getStatus(f),g=this.getStatus(m),v=fe.similarity(a,u),w=fe.similarity(a,h),b=fe.similarity(u,h);let x;if(d.at(e).is(G.WATER)&&this.globalFluidPicker(t,e-1,s).at(e-1).is(G.LAVA))x=1;else if(v>-1){const r=R((()=>this.barrierNoise.compute(he.context(t,.5*e,s)))),i=this.calculatePressure(e,d,p,r),n=this.calculatePressure(e,d,g,r),o=this.calculatePressure(e,p,g,r),a=Math.max(i,n*Math.max(0,w),o*Math.max(b));x=Math.max(0,2*Math.max(0,v)*a)}else x=0;if(r+x<=0)return d.at(e)}}}static similarity(t,e){return 1-Math.abs(e-t)/25}calculatePressure(t,e,s,r){const i=e.at(t),n=s.at(t);if(i.is(G.LAVA)&&n.is(G.WATER)||i.is(G.WATER)&&n.is(G.LAVA))return 1;const o=Math.abs(e.level-s.level);if(0===o)return 0;const a=t+.5-(e.level+s.level)/2,l=o/2-Math.abs(a),u=a>0?l>0?l/1.5:l/2.5:l>-3?(l+3)/3:(l+3)/10;return u<-2||u>2?u:u+r()}getStatus(t){const[e,s,r]=t,i=this.getIndex(this.gridX(e),this.gridY(s),this.gridZ(r)),n=this.aquiferCache[i];if(void 0!==n)return n;const o=this.computeStatus(e,s,r);return this.aquiferCache[i]=o,o}computeStatus(t,e,s){const r=this.globalFluidPicker(t,e,s);let i=Number.MAX_SAFE_INTEGER,n=!1;for(const[o,a]of fe.SURFACE_SAMPLING){const l=t+(a<<4),u=s+(a<<4),h=this.noiseChunk.getPreliminarySurfaceLevel(l,u);i=Math.min(i,h);const c=0===o&&0===a;if(c&&e-12>h+8)return r;if(c||e+12>h+8){const t=this.globalFluidPicker(l,h+8,u);if(!t.at(h+8).is(G.AIR)){if(c)return t;n=!0}}}const o=n?lt(i+8-e,0,64,1,0):0,a=$(this.fluidLevelFloodednessNoise.compute(he.context(t,.67*e,s)),-1,1);if(a>at(o,1,0,-.3,.8))return r;if(a<=at(o,1,0,-.8,.4))return new ce(Number.MIN_SAFE_INTEGER,r.type);const l=Math.floor(e/40),u=this.fluidLevelSpreadNoise.compute(he.context(Math.floor(t/16),l,Math.floor(s/16))),h=40*l+20+3*Math.floor(u/3),c=Math.min(i,h),f=this.getFluidType(t,e,s,r.type,h);return new ce(c,f)}getFluidType(t,e,s,r,i){if(i<=-10){const r=this.lavaNoise.compute(he.context(Math.floor(t/64),Math.floor(e/40),Math.floor(s/64)));if(Math.abs(r)>.3)return G.LAVA}return r}getLocation(t,e,s){const r=this.getIndex(t,e,s),i=this.aquiferLocationCache[r];if(l.equals(i,l.ZERO))return i;const n=this.random.at(t,e,s),o=l.create(t*fe.X_SPACING+n.nextInt(10),e*fe.Y_SPACING+n.nextInt(9),s*fe.Z_SPACING+n.nextInt(10));return this.aquiferLocationCache[r]=o,o}getIndex(t,e,s){const r=t-this.minGridX,i=e-this.minGridY,n=s-this.minGridZ,o=(i*this.gridSizeZ+n)*this.gridSizeX+r;if(o<0||o>=this.gridSize)throw new Error(`Invalid aquifer index at ${t} ${e} ${s}: 0 <= ${o} < ${this.gridSize}`);return o}gridX(t){return Math.floor(t/fe.X_SPACING)}gridY(t){return Math.floor(t/fe.Y_SPACING)}gridZ(t){return Math.floor(t/fe.Z_SPACING)}};let me=fe;var de,pe;me.X_SPACING=16,me.Y_SPACING=12,me.Z_SPACING=16,me.SURFACE_SAMPLING=[[-2,-1],[-1,-1],[0,-1],[1,-1],[-3,0],[-2,0],[-1,0],[0,0],[1,0],[-2,1],[-1,1],[0,1],[1,1]],function(t){function e(t,e){return\"number\"==typeof t?new s(t,null!=e?e:t):t}t.target=function(t,e,s,r,n,o){return new i(t,e,s,r,n,o)},t.parameters=function(t,s,i,n,o,a,l){return new r(e(t),e(s),e(i),e(n),e(o),e(a),l)},t.param=e;class s{constructor(t,e){this.min=t,this.max=e}distance(t){const e=(\"number\"==typeof t?t:t.min)-this.max,s=this.min-(\"number\"==typeof t?t:t.max);return e>0?e:Math.max(s,0)}union(t){return new s(Math.min(this.min,t.min),Math.max(this.max,t.max))}static fromJson(t){var e;if(\"number\"==typeof t)return new s(t,t);const[r,i]=null!=(e=B.readArray(t,(t=>B.readNumber(t))))?e:[];return new s(null!=r?r:0,null!=i?i:0)}}t.Param=s;class r{constructor(t,e,s,r,i,n,o){this.temperature=t,this.humidity=e,this.continentalness=s,this.erosion=r,this.depth=i,this.weirdness=n,this.offset=o}fittness(t){return W(this.temperature.distance(t.temperature))+W(this.humidity.distance(t.humidity))+W(this.continentalness.distance(t.continentalness))+W(this.erosion.distance(t.erosion))+W(this.depth.distance(t.depth))+W(this.weirdness.distance(t.weirdness))+W(this.offset-t.offset)}space(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,new s(this.offset,this.offset)]}static fromJson(t){var e,i;const n=null!=(e=B.readObject(t))?e:{};return new r(s.fromJson(n.temperature),s.fromJson(n.humidity),s.fromJson(n.continentalness),s.fromJson(n.erosion),s.fromJson(n.depth),s.fromJson(n.weirdness),null!=(i=B.readInt(n.offset))?i:0)}}t.ParamPoint=r;class i{constructor(t,e,s,r,i,n){this.temperature=t,this.humidity=e,this.continentalness=s,this.erosion=r,this.depth=i,this.weirdness=n}get offset(){return 0}toArray(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,this.offset]}}t.TargetPoint=i;t.Parameters=class{constructor(t){this.things=t,this.index=new o(t)}find(t){return this.index.search(t,((t,e)=>t.distance(e)))}};t.Sampler=class{constructor(t,e,s,r,i,n){this.temperature=t,this.humidity=e,this.continentalness=s,this.erosion=r,this.depth=i,this.weirdness=n}static fromRouter(e){return new t.Sampler(e.temperature,e.vegetation,e.continents,e.erosion,e.depth,e.ridges)}sample(e,s,r){const i=he.context(e<<2,s<<2,r<<2);return t.target(this.temperature.compute(i),this.humidity.compute(i),this.continentalness.compute(i),this.erosion.compute(i),this.depth.compute(i),this.weirdness.compute(i))}};const n=class{constructor(t){this.root=n.build(t.map((([t,e])=>new u(t,e))))}static build(t){if(1===t.length)return t[0];if(t.length<=n.CHILDREN_PER_NODE){const e=t.map((t=>{let e=0;for(let s=0;s<7;s+=1){const r=t.space[s];e+=Math.abs((r.min+r.max)/2)}return{key:e,node:t}})).sort(((t,e)=>t.key-e.key)).map((({node:t})=>t));return new l(e)}let e=1/0,s=-1,r=[];for(let i=0;i<7;++i){t=n.sort(t,i,!1),r=n.bucketize(t);let o=0;for(const t of r)o+=n.area(t.space);e>o&&(e=o,s=i)}return t=n.sort(t,s,!1),r=n.bucketize(t),r=n.sort(r,s,!0),new l(r.map((t=>n.build(t.children))))}static sort(t,e,s){return t.map((t=>{const r=t.space[e],i=(r.min+r.max)/2;return{key:s?Math.abs(i):i,node:t}})).sort(((t,e)=>t.key-e.key)).map((({node:t})=>t))}static bucketize(t){const e=[];let s=[];const r=Math.pow(10,Math.floor(Math.log(t.length-.01)/Math.log(10)));for(const i of t)s.push(i),s.lengthnew s(1/0,-1/0)));for(const s of t)e=[...Array(7)].map(((t,r)=>e[r].union(s.space[r])));return e}search(t,e){let s=1/0,r=null;for(const i of this.children){const n=e(i,t);if(s<=n)continue;const o=i.search(t,e),a=i==o?n:e(o,t);s<=a||(s=a,r=o)}return r}}t.RSubTree=l;class u extends a{constructor(t,e){super(t.space()),this.thing=e}search(){return this}}t.RLeaf=u}(de||(de={}));class ge{constructor(t){this.biome=t}getBiome(){return this.biome}static fromJson(t){var e,s;const r=null!=(e=B.readObject(t))?e:{},i=C.parse(null!=(s=B.readString(r.biome))?s:\"minecraft:the_void\");return new ge(i)}}class ve{constructor(t){this.parameters=t}getBiome(t,e,s,r){const i=r.sample(t,e,s);return this.parameters.find(i)}static fromJson(t){var e,s;const r=null!=(e=B.readObject(t))?e:{},i=(null!=(s=B.readArray(r.biomes,(t=>{var e,s,r;return s=null!=(e=B.readObject(t))?e:{},{biome:C.parse(null!=(r=B.readString(s.biome))?r:\"minecraft:the_void\"),parameters:de.ParamPoint.fromJson(s.parameters)}})))?s:[]).map((t=>[t.parameters,()=>t.biome]));return new ve(new de.Parameters(i))}}!function(t){function e(t,e,s){return le.NOISE.register(C.create(t),Nt.create(e,s))}t.TEMPERATURE=e(\"temperature\",-10,[1.5,0,1,0,0,0]),t.VEGETATION=e(\"vegetation\",-8,[1,1,0,0,0,0]),t.CONTINENTALNESS=e(\"continentalness\",-9,[1,1,2,2,2,1,1,1,1]),t.EROSION=e(\"erosion\",-9,[1,1,0,1,1]),t.TEMPERATURE_LARGE=e(\"temperature_large\",-12,[1.5,0,1,0,0,0]),t.VEGETATION_LARGE=e(\"vegetation_large\",-10,[1,1,0,0,0,0]),t.CONTINENTALNESS_LARGE=e(\"continentalness_large\",-11,[1,1,2,2,2,1,1,1,1]),t.EROSION_LARGE=e(\"erosion_large\",-11,[1,1,0,1,1]),t.RIDGE=e(\"ridge\",-7,[1,2,1,0,0,0]),t.SHIFT=e(\"offset\",-3,[1,1,1,0]),t.AQUIFER_BARRIER=e(\"aquifer_barrier\",-3,[1]),t.AQUIFER_FLUID_LEVEL_FLOODEDNESS=e(\"aquifer_fluid_level_floodedness\",-7,[1]),t.AQUIFER_FLUID_LEVEL_SPREAD=e(\"aquifer_fluid_level_spread\",-5,[1]),t.AQUIFER_LAVA=e(\"aquifer_lava\",-1,[1]),t.PILLAR=e(\"pillar\",-7,[1,1]),t.PILLAR_RARENESS=e(\"pillar_rareness\",-8,[1]),t.PILLAR_THICKNESS=e(\"pillar_thickness\",-8,[1]),t.SPAGHETTI_2D=e(\"spaghetti_2d\",-8,[1]),t.SPAGHETTI_2D_ELEVATION=e(\"spaghetti_2d_elevation\",-8,[1]),t.SPAGHETTI_2D_MODULATOR=e(\"spaghetti_2d_modulator\",-8,[1]),t.SPAGHETTI_2D_THICKNESS=e(\"spaghetti_2d_thickness\",-8,[1]),t.SPAGHETTI_3D_1=e(\"spaghetti_3d_1\",-8,[1]),t.SPAGHETTI_3D_2=e(\"spaghetti_3d_2\",-8,[1]),t.SPAGHETTI_3D_RARITY=e(\"spaghetti_3d_rarity\",-8,[1]),t.SPAGHETTI_3D_THICKNESS=e(\"spaghetti_3d_thickness\",-8,[1]),t.SPAGHETTI_ROUGHNESS=e(\"spaghetti_roughness\",-8,[1]),t.SPAGHETTI_ROUGHNESS_MODULATOR=e(\"spaghetti_roughness_modulator\",-8,[1]),t.CAVE_ENTRANCE=e(\"cave_entrance\",-7,[.4,.5,1]),t.CAVE_LAYER=e(\"cave_layer\",-8,[1]),t.CAVE_CHEESE=e(\"cave_cheese\",-8,[.5,1,2,1,2,1,0,2,0]),t.NOODLE=e(\"noodle\",-8,[1]),t.NOODLE_THICKNESS=e(\"noodle_thickness\",-8,[1]),t.NOODLE_RIDGE_A=e(\"noodle_ridge_a\",-7,[1]),t.NOODLE_RIDGE_B=e(\"noodle_ridge_b\",-7,[1]),t.JAGGED=e(\"jagged\",-16,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),t.SURFACE=e(\"surface\",-6,[1,1,1]),t.SURFACE_SECONDARY=e(\"surface_secondary\",-6,[1,1,0,1]);const s=new Map;t.instantiate=function(t,e){var r;const i=null==(r=e.key())?void 0:r.toString();if(!i)throw new Error(\"Cannot instantiate noise from direct holder\");const n=t.seedKey(),o=s.get(i);if(o&&o[0]===n[0]&&o[1]===n[1])return o[2];const a=new It(t.fromHashOf(i),e.value());return s.set(i,[n[0],n[1],a]),a}}(pe||(pe={}));var we,be,xe,Se,_e,Ae,ye,Ee=Object.defineProperty,Ie=Object.defineProperties,Ne=Object.getOwnPropertyDescriptors,Be=Object.getOwnPropertySymbols,Re=Object.prototype.hasOwnProperty,Te=Object.prototype.propertyIsEnumerable,Me=(t,e,s)=>e in t?Ee(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,Ce=(t,e)=>{for(var s in e||(e={}))Re.call(e,s)&&Me(t,s,e[s]);if(Be)for(var s of Be(e))Te.call(e,s)&&Me(t,s,e[s]);return t};!function(t){const e=t=>j.parser(le.DENSITY_FUNCTION,he.fromJson)(t).value();t.fromJson=function(t){var s;const r=null!=(s=B.readObject(t))?s:{};return{barrier:e(r.barrier),fluidLevelFloodedness:e(r.fluid_level_floodedness),fluidLevelSpread:e(r.fluid_level_spread),lava:e(r.lava),temperature:e(r.temperature),vegetation:e(r.vegetation),continents:e(r.continents),erosion:e(r.erosion),depth:e(r.depth),ridges:e(r.ridges),initialDensityWithoutJaggedness:e(r.initial_density_without_jaggedness),finalDensity:e(r.final_density),veinToggle:e(r.vein_toggle),veinRidged:e(r.vein_ridged),veinGap:e(r.vein_gap)}},t.create=function(t){return Ce({barrier:he.Constant.ZERO,fluidLevelFloodedness:he.Constant.ZERO,fluidLevelSpread:he.Constant.ZERO,lava:he.Constant.ZERO,temperature:he.Constant.ZERO,vegetation:he.Constant.ZERO,continents:he.Constant.ZERO,erosion:he.Constant.ZERO,depth:he.Constant.ZERO,ridges:he.Constant.ZERO,initialDensityWithoutJaggedness:he.Constant.ZERO,finalDensity:he.Constant.ZERO,veinToggle:he.Constant.ZERO,veinRidged:he.Constant.ZERO,veinGap:he.Constant.ZERO},t)},t.withSettings=function(t,e,r,i=!1){const n=(i?new dt(r):vt.create(r)).forkPositional(),o=new s(n,e);return a=Ce({},o.mapAll(t)),l={aquiferPositionalRandomFactory:n.fromHashOf(C.create(\"aquifer\").toString()).forkPositional(),oreVeinsPositionalRandomFactory:n.fromHashOf(C.create(\"ore\").toString()).forkPositional()},Ie(a,Ne(l));var a,l};class s{constructor(t,e){this.random=t,this.settings=e,this.mapped=new Map}map(t){if(t instanceof he.HolderHolder){const e=t.holder.key();if(void 0!==e&&this.mapped.has(e.toString()))return this.mapped.get(e.toString());{const s=t.holder.value().mapAll(this);return void 0!==e&&this.mapped.set(e.toString(),s),s}}if(t instanceof he.Interpolated)return t.withCellSize(ne.cellWidth(this.settings),ne.cellHeight(this.settings));if(t instanceof he.Noise)return new he.Noise(t.xzScale,t.yScale,t.noiseData,pe.instantiate(this.random,t.noiseData));if(t instanceof he.ShiftNoise)return t.withNewNoise(pe.instantiate(this.random,t.noiseData));if(t instanceof he.ShiftedNoise){const e=pe.instantiate(this.random,t.noiseData);return new he.ShiftedNoise(t.shiftX,t.shiftY,t.shiftZ,t.xzScale,t.yScale,t.noiseData,e)}return t instanceof he.WeirdScaledSampler?new he.WeirdScaledSampler(t.input,t.rarityValueMapper,t.noiseData,pe.instantiate(this.random,t.noiseData)):t instanceof he.OldBlendedNoise?new he.OldBlendedNoise(new At(this.random.fromHashOf(C.create(\"terrain\").toString()),this.settings.sampling,ne.cellWidth(this.settings),ne.cellHeight(this.settings))):t instanceof he.Mapped||t instanceof he.Ap2?t.withMinMax():t instanceof he.TerrainShaperSpline?new he.TerrainShaperSpline(t.continentalness,t.erosion,t.weirdness,t.spline,t.min,t.max,this.settings.terrainShaper):t instanceof he.Slide?new he.Slide(t.input,this.settings):t}mapAll(t){return{barrier:t.barrier.mapAll(this),fluidLevelFloodedness:t.fluidLevelFloodedness.mapAll(this),fluidLevelSpread:t.fluidLevelSpread.mapAll(this),lava:t.lava.mapAll(this),temperature:t.temperature.mapAll(this),vegetation:t.vegetation.mapAll(this),continents:t.continents.mapAll(this),erosion:t.erosion.mapAll(this),depth:t.depth.mapAll(this),ridges:t.ridges.mapAll(this),initialDensityWithoutJaggedness:t.initialDensityWithoutJaggedness.mapAll(this),finalDensity:t.finalDensity.mapAll(this),veinToggle:t.veinToggle.mapAll(this),veinRidged:t.veinRidged.mapAll(this),veinGap:t.veinGap.mapAll(this)}}}t.Visitor=s,t.computePreliminarySurfaceLevelScanning=function(t,e,s,r){const i=ne.minCellY(t)+ne.cellCountY(t),n=ne.minCellY(t),o=ne.cellHeight(t);for(let a=i;a>=n;a-=1){const i=a*o,n=$(e.compute(he.context(s,i,r)),-64,64);if(ne.applySlides(t,n,i)>=.390625)return i}return Number.MAX_SAFE_INTEGER}}(we||(we={}));class Oe{constructor(t,e,s,r,i,n,o,a,l){this.cellCountXZ=t,this.cellCountY=e,this.cellNoiseMinY=s,this.router=r,this.minX=i,this.minZ=n,this.settings=o,this.preliminarySurfaceLevel=new Map,this.cellWidth=ne.cellWidth(o),this.cellHeight=ne.cellHeight(o),this.firstCellX=Math.floor(i/this.cellWidth),this.firstCellZ=Math.floor(n/this.cellWidth),this.firstNoiseX=i>>2,this.firstNoiseZ=n>>2,this.noiseSizeXZ=t*this.cellWidth>>2,this.aquifer=ue.createDisabled(l);const u=this.router.finalDensity;this.materialRule=be.fromList([t=>this.aquifer.compute(t,u.compute(t))]),this.initialDensityWithoutJaggedness=this.router.initialDensityWithoutJaggedness}getFinalState(t,e,s){return this.materialRule({x:t,y:e,z:s})}getPreliminarySurfaceLevel(t,e){return T(this.preliminarySurfaceLevel,X.asLong(t,e),(()=>we.computePreliminarySurfaceLevelScanning(this.settings,this.initialDensityWithoutJaggedness,t<<2,e<<2)))}getAquifer(){return this.aquifer}}(be||(be={})).fromList=function(t){return e=>{for(const s of t){const t=s(e);if(t)return t}}},(xe||(xe={})).fromJson=function(t){var e,s,r,i;const n=null!=(e=B.readObject(t))?e:{};return void 0!==n.absolute?(o=null!=(s=B.readNumber(n.absolute))?s:0,()=>o):void 0!==n.above_bottom?function(t){return e=>e.minY+t}(null!=(r=B.readNumber(n.above_bottom))?r:0):void 0!==n.below_top?function(t){return e=>e.maxY-t}(null!=(i=B.readNumber(n.below_top))?i:0):()=>0;var o},(Se||(Se={})).create=function(t,e){return{minY:t,height:e,maxY:t+e-1}};class ke{constructor(t,e,s){this.rule=t,this.defaultBlock=e,this.random=vt.create(s).forkPositional(),this.surfaceNoise=pe.instantiate(this.random,pe.SURFACE),this.surfaceSecondaryNoise=pe.instantiate(this.random,pe.SURFACE_SECONDARY),this.positionalRandoms=new Map}buildSurface(t,e,s,r){const i=X.minBlockX(t.pos),n=X.minBlockZ(t.pos),o=new Pe(this,t,e,s,r),a=this.rule(o);for(let e=0;e<16;e+=1){const s=i+e;for(let e=0;e<1;e+=1){const r=n+e;o.updateXZ(s,r);let i=0,u=Number.MIN_SAFE_INTEGER,h=Number.MAX_SAFE_INTEGER;for(let e=t.maxY;e>=t.minY;e-=1){const n=l.create(s,e,r),c=t.getBlockState(n);if(c.equals(G.AIR)){i=0,u=Number.MIN_SAFE_INTEGER;continue}if(c.isFluid()){u===Number.MIN_SAFE_INTEGER&&(u=e+1);continue}if(h>=e){h=Number.MIN_SAFE_INTEGER;for(let i=e-1;i>=t.minY;i-=1){const e=t.getBlockState(l.create(s,i,r));if(e.equals(G.AIR)||e.isFluid()){h=i+1;break}}}i+=1;const f=e-h+1;if(!c.equals(this.defaultBlock))continue;o.updateY(i,f,u,e);const m=a(s,e,r);m&&t.setBlockState(n,m)}}}}getSurfaceDepth(t,e){return 2.75*this.surfaceNoise.sample(t,0,e)+3+.25*this.random.at(t,0,e).nextDouble()}getSurfaceSecondary(t,e){return this.surfaceSecondaryNoise.sample(t,0,e)}getRandom(t){return T(this.positionalRandoms,t,(()=>this.random.fromHashOf(t)))}}class Pe{constructor(t,e,s,r,i){this.system=t,this.chunk=e,this.noiseChunk=s,this.context=r,this.getBiome=i,this.blockX=0,this.blockY=0,this.blockZ=0,this.stoneDepthAbove=0,this.stoneDepthBelow=0,this.surfaceDepth=0,this.waterHeight=0,this.biome=()=>\"\",this.surfaceSecondary=()=>0,this.minSurfaceLevel=()=>0}updateXZ(t,e){this.blockX=t,this.blockZ=e,this.surfaceDepth=this.system.getSurfaceDepth(t,e),this.surfaceSecondary=R((()=>this.system.getSurfaceSecondary(t,e))),this.minSurfaceLevel=R((()=>this.calculateMinSurfaceLevel(t,e)))}updateY(t,e,s,r){this.blockY=r,this.stoneDepthAbove=t,this.stoneDepthBelow=e,this.waterHeight=s,this.biome=R((()=>this.getBiome(l.create(this.blockX,this.blockY,this.blockZ))))}calculateMinSurfaceLevel(t,e){const s=t>>4,r=e>>4,i=this.noiseChunk.getPreliminarySurfaceLevel(s<<4,r<<4),n=this.noiseChunk.getPreliminarySurfaceLevel(s+1<<4,r<<4),o=this.noiseChunk.getPreliminarySurfaceLevel(s<<4,r+1<<4),a=this.noiseChunk.getPreliminarySurfaceLevel(s+1<<4,r+1<<4);return Math.floor(Q((15&t)/16,(15&e)/16,i,n,o,a))+this.surfaceDepth-8}}!function(t){function e(t){return()=>()=>t}function s(t){return e=>{const s=t.map((t=>t(e)));return(t,e,r)=>{for(const i of s){const s=i(t,e,r);if(s)return s}}}}function r(t,e){return s=>(r,i,n)=>{if(t(s))return e(s)(r,i,n)}}t.NOOP=()=>()=>{},t.fromJson=function(i){var n,o,a;const l=null!=(n=B.readObject(i))?n:{};switch(null==(o=B.readString(l.type))?void 0:o.replace(/^minecraft:/,\"\")){case\"block\":return e(G.fromJson(l.result_state));case\"sequence\":return s(null!=(a=B.readArray(l.sequence,t.fromJson))?a:[]);case\"condition\":return r(Ae.fromJson(l.if_true),t.fromJson(l.then_run))}return t.NOOP},t.block=e,t.sequence=s,t.condition=r}(_e||(_e={})),function(t){function e(){return t=>t.blockY>=t.minSurfaceLevel()}function s(t){const e=new Set(t);return t=>e.has(t.biome())}function r(t){return e=>!t(e)}function i(t,e,s,r){return i=>{const n=r?i.stoneDepthBelow:i.stoneDepthAbove,o=e?i.surfaceDepth:0,a=0===s?0:at(i.surfaceSecondary(),-1,1,0,s);return n<=1+t+o+a}}function n(t,e,s){return r=>{const i=e(r.context),n=s(r.context);if(r.blockY<=i)return!0;if(r.blockY>=n)return!1;const o=r.system.getRandom(t),a=at(r.blockY,i,n,1,0);return o.nextFloat(){if(r.waterHeight===Number.MIN_SAFE_INTEGER)return!0;const i=s?r.stoneDepthAbove:0;return r.blockY+i>=r.waterHeight+t+r.surfaceDepth*e}}function a(t,e,s){return r=>{const i=s?r.stoneDepthAbove:0;return r.blockY+i>=t(r.context)+r.surfaceDepth*e}}t.FALSE=()=>!1,t.TRUE=()=>!0,t.fromJson=function(e){var l,u,h,c,f,m,d,p,g,v,w,b;const x=null!=(l=B.readObject(e))?l:{};switch(null==(u=B.readString(x.type))?void 0:u.replace(/^minecraft:/,\"\")){case\"above_preliminary_surface\":return t=>t.blockY>=t.minSurfaceLevel();case\"biome\":return s(null!=(h=B.readArray(x.biome_is,(t=>{var e;return null!=(e=B.readString(t))?e:\"\"})))?h:[]);case\"not\":return r(t.fromJson(x.invert));case\"stone_depth\":return i(null!=(c=B.readInt(x.offset))?c:0,null!=(f=B.readBoolean(x.add_surface_depth))&&f,null!=(m=B.readInt(x.secondary_depth_range))?m:0,\"ceiling\"===B.readString(x.surface_type));case\"vertical_gradient\":return n(null!=(d=B.readString(x.random_name))?d:\"\",xe.fromJson(x.true_at_and_below),xe.fromJson(x.false_at_and_above));case\"water\":return o(null!=(p=B.readInt(x.offset))?p:0,null!=(g=B.readInt(x.surface_depth_multiplier))?g:0,null!=(v=B.readBoolean(x.add_surface_depth))&&v);case\"y_above\":return a(xe.fromJson(x.anchor),null!=(w=B.readInt(x.surface_depth_multiplier))?w:0,null!=(b=B.readBoolean(x.add_surface_depth))&&b)}return t.FALSE},t.abovePreliminarySurface=e,t.biome=s,t.not=r,t.stoneDepth=i,t.verticalGradient=n,t.water=o,t.yAbove=a}(Ae||(Ae={}));class Le{constructor(t,e,s){this.biomeSource=e,this.settings=s,this.router=we.withSettings(s.noiseRouter,s.noise,t,s.legacyRandomSource),this.noiseChunkCache=new Map,this.surfaceSystem=new ke(s.surfaceRule,s.defaultBlock,t);const r=new ce(-54,G.LAVA),i=new ce(s.seaLevel,s.defaultFluid);this.globalFluidPicker=(t,e,n)=>e=0;m-=1)for(let u=o-1;u>=0;u-=1){const d=(l+m)*o+u,p=15&d,g=t.getSectionIndex(d);t.getSectionIndex(a.minBlockY)!==g&&(a=t.getOrCreateSection(g));for(let t=0;te))}getNoiseChunk(t){return T(this.noiseChunkCache,X.toLong(t.pos),(()=>{const e=Math.max(t.minY,this.settings.noise.minY),s=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),r=ne.cellWidth(this.settings.noise),i=ne.cellHeight(this.settings.noise),n=Math.floor(16/r),o=Math.floor(e/i),a=Math.floor((s-e)/i),l=X.minBlockX(t.pos),u=X.minBlockZ(t.pos);return new Oe(n,a,o,this.router,l,u,this.settings.noise,this.settings.aquifersEnabled,this.globalFluidPicker)}))}}(ye||(ye={})).fromJson=function(t){var e,s,r,i,n,o;const a=null!=(e=B.readObject(t))?e:{};return{surfaceRule:_e.fromJson(a.surface_rule),noise:ne.fromJson(a.noise),defaultBlock:G.fromJson(a.default_block),defaultFluid:G.fromJson(a.default_fluid),noiseRouter:we.fromJson(a.noise_router),seaLevel:null!=(s=B.readInt(a.sea_level))?s:0,disableMobGeneration:null!=(r=B.readBoolean(a.disable_mob_generation))&&r,aquifersEnabled:null!=(i=B.readBoolean(a.aquifers_enabled))&&i,oreVeinsEnabled:null!=(n=B.readBoolean(a.ore_veins_enabled))&&n,legacyRandomSource:null!=(o=B.readBoolean(a.legacy_random_source))&&o}};export{ue as Aquifer,At as BlendedNoise,Dt as BlockColors,Yt as BlockDefinition,qt as BlockModel,l as BlockPos,G as BlockState,H as Chunk,X as ChunkPos,Y as ChunkSection,de as Climate,ft as CubicSpline,he as DensityFunction,n as Direction,ge as FixedBiome,ce as FluidStatus,j as Holder,C as Identifier,St as ImprovedNoise,pt as LegacyPositionalRandom,dt as LegacyRandom,be as MaterialRule,ve as MultiNoise,f as NbtReader,m as NbtWriter,me as NoiseAquifer,Oe as NoiseChunk,Le as NoiseChunkGenerator,ye as NoiseGeneratorSettings,Nt as NoiseParameters,we as NoiseRouter,yt as NoiseSamplingSettings,ne as NoiseSettings,oe as NoiseSlideSettings,pe as Noises,It as NormalNoise,_t as PerlinNoise,Rt as PerlinSimplexNoise,q as Registry,xt as SimplexNoise,J as Structure,te as StructureRenderer,Ae as SurfaceCondition,Pe as SurfaceContext,_e as SurfaceRule,ke as SurfaceSystem,ie as TerrainShaper,se as TextureAtlas,xe as VerticalAnchor,Se as WorldgenContext,le as WorldgenRegistries,wt as XoroshiroPositionalRandom,vt as XoroshiroRandom,ut as binarySearch,$ as clamp,it as clampedLerp,lt as clampedMap,I as getListTag,N as getOptional,ht as getSeed,E as getTag,nt as inverseLerp,et as lazyLerp,st as lazyLerp2,rt as lazyLerp3,K as lerp,Q as lerp2,tt as lerp3,ct as longfromBytes,at as map,g as read,w as readChunk,p as readCompressed,v as readRegion,d as readUncompressed,ot as smoothstep,W as square,c as tagNames,h as tagTypes,S as write,A as writeChunk,x as writeCompressed,_ as writeRegion,b as writeUncompressed};\n//# sourceMappingURL=deepslate.esm.js.map\n"],"names":["t","s.create","s.transformMat4","r.create","r.identity","r.translate","r.rotateY","i.toRadian","r.rotateX","r.scale","s.fromValues","r.rotate","s.negate","r.perspective","s.subtract","s.cross","s.normalize","s.equals","r.copy"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"deepslate.esm.666d0ed0.js","sources":["../../node_modules/deepslate-1.18.2/dist/deepslate.esm.js"],"sourcesContent":["import t from\"pako\";import e from\"md5\";import{vec3 as s,mat4 as r,glMatrix as i}from\"gl-matrix\";var n,o;(o=n||(n={})).UP=\"up\",o.DOWN=\"down\",o.NORTH=\"north\",o.EAST=\"east\",o.SOUTH=\"south\",o.WEST=\"west\";const a={[n.UP]:[0,1,0],[n.DOWN]:[0,-1,0],[n.NORTH]:[0,0,-1],[n.EAST]:[1,0,0],[n.SOUTH]:[0,0,1],[n.WEST]:[-1,0,0]};var l,u;!function(t){t.ALL=[t.UP,t.DOWN,t.NORTH,t.EAST,t.SOUTH,t.WEST],t.normal=function(t){return a[t]}}(n||(n={})),(u=l||(l={})).create=function(t,e,s){return[t,e,s]},u.ZERO=u.create(0,0,0),u.offset=function(t,e,s,r){return[t[0]+e,t[1]+s,t[2]+r]},u.towards=function(t,e){return u.offset(t,...n.normal(e))},u.equals=function(t,e){return t===e||t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]},u.magnitude=function(t){return t[0]*t[0]+t[1]*t[1]+t[2]*t[2]};const h={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},c=[\"end\",\"byte\",\"short\",\"int\",\"long\",\"float\",\"double\",\"byteArray\",\"string\",\"list\",\"compound\",\"intArray\",\"longArray\"];class f{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 s=this.dataView[t](this.offset,this.littleEndian);return this.offset+=e,s}long(){return[this.int(),this.int()]}byteArray(){const t=this.int(),e=[];for(let s=0;s=e)return;let s=this.buffer.byteLength;for(;sthis.buffer.byteLength&&i.fill(0,this.buffer.byteLength,this.offset),this.buffer=r,this.dataView=new DataView(r),this.arrayView=i}getData(){return this.accommodate(0),this.arrayView.slice(0,this.offset)}end(t){}writeNum(t,e,s){this.accommodate(e),this.dataView[t](this.offset,s,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),r.push(128|63&s)):s<65536?(r.push(224|s>>12),r.push(128|s>>6&63),r.push(128|63&s)):(r.push(240|s>>18&7),r.push(128|s>>12&63),r.push(128|s>>6&63),r.push(128|63&s));return r}(t);this.short(e.length),this.accommodate(e.length),this.arrayView.set(e,this.offset),this.offset+=e.length}list(t){this.byte(h[t.type]),this.int(t.value.length),t.value;for(let e=0;e>16),r.setInt16(t+1,65535&i),r.setInt8(t+3,n),r.setInt32(t+4096,e.timestamp);const o=4096*i;r.setInt32(o,e.data.length+1),r.setInt8(o+4,e.compression),s.set(e.data,o+5),i+=n}return s}function A(t,e,s,r){const i=y(t,e,s);switch(i.compression){case 1:i.data=x(r);break;case 2:i.data=x(r,!1,!0);break;case 3:i.data=b(r);break;default:throw new Error(`Invalid compression mode ${i.compression}`)}return i}function y(t,e,s){const r=t.find((t=>t.x===e&&t.z===s));if(void 0===r)throw new Error(`Cannot find chunk [${e}, ${s}]`);return r}function E(t,e,s){if(!t[e])throw new Error(`Missing ${e} tag`);if(t[e].type!==s)throw new Error(`Expected ${e} to be of type ${s}, but found ${t[e].type}`);return t[e].value}function I(t,e,s,r){const i=E(t,e,\"list\");if(i.type!==s)throw new Error(`Expected ${e} to be a list of ${s}s, but found ${i.type}s`);if(r&&i.value.length!==r)throw new Error(`Expected ${e} to be a list of length ${r}, but found length ${i.value.length}`);return i.value}function N(t,e){try{return t()}catch(t){return e}}var B;function R(t){let e=null;return()=>(null==e&&(e=t()),e)}function T(t,e,s){const r=t.get(e);if(r)return r;const i=s(e);return t.set(e,i),i}!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,s){var r;const i=null!=(r=e(t))?r:{};return Object.fromEntries(Object.entries(i).map((([t,e])=>[t,s(e)])))},t.compose=function(t,e,s){const r=e(t);return r?s(r):void 0},t.readEnum=function(t,e){return\"string\"!=typeof t?e[0]:e.includes(t)?t:e[0]}}(B||(B={}));const M=class{constructor(t,e){if(this.namespace=t,this.path=e,!t.match(/^[a-z0-9._-]+$/))throw new Error(`Non [a-z0-9._-] character in namespace of ${t}:${e}`);if(!e.match(/^[a-z0-9/._-]+$/))throw new Error(`Non [a-z0-9/._-] character in path of ${t}:${e}`)}equals(t){return this===t||this.namespace===t.namespace&&this.path===t.path}toString(){return`${this.namespace}:${this.path}`}static create(t){return new M(this.DEFAULT_NAMESPACE,t)}static parse(t){const e=t.indexOf(this.SEPARATOR);if(e>=0){const s=e>=1?t.substring(0,e):this.DEFAULT_NAMESPACE,r=t.substring(e+1);return new M(s,r)}return new M(this.DEFAULT_NAMESPACE,t)}};let C=M;C.DEFAULT_NAMESPACE=\"minecraft\",C.SEPARATOR=\":\";var O=Object.defineProperty,k=Object.defineProperties,P=Object.getOwnPropertyDescriptors,L=Object.getOwnPropertySymbols,F=Object.prototype.hasOwnProperty,V=Object.prototype.propertyIsEnumerable,D=(t,e,s)=>e in t?O(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s;const U=class{constructor(t,e={}){this.properties=e,this.name=\"string\"==typeof t?C.parse(t):t}getName(){return this.name}getProperties(){return this.properties}getProperty(t){return this.properties[t]}isFluid(){return this.is(U.WATER)||this.is(U.LAVA)}equals(t){return!!this.name.equals(t.name)&&Object.keys(this.properties).every((e=>t.properties[e]===this.properties[e]))}is(t){return this.name.equals(t.name)}toString(){return 0===Object.keys(this.properties).length?this.name.toString():`${this.name.toString()}[${Object.entries(this.properties).map((([t,e])=>t+\"=\"+e)).join(\",\")}]`}static fromNbt(t){const e=C.parse(E(t.value,\"Name\",\"string\")),s=N((()=>E(t.value,\"Properties\",\"compound\")),{}),r=Object.keys(s).reduce(((t,e)=>{return r=((t,e)=>{for(var s in e||(e={}))F.call(e,s)&&D(t,s,e[s]);if(L)for(var s of L(e))V.call(e,s)&&D(t,s,e[s]);return t})({},t),i={[e]:E(s,e,\"string\")},k(r,P(i));var r,i}),{});return new U(e,r)}static fromJson(t){var e,s;const r=null!=(e=B.readObject(t))?e:{},i=C.parse(null!=(s=B.readString(r.Name))?s:U.STONE.name.toString()),n=B.readMap(r.Properties,(t=>{var e;return null!=(e=B.readString(t))?e:\"\"}));return new U(i,n)}};let G=U;G.AIR=new U(C.create(\"air\")),G.STONE=new U(C.create(\"stone\")),G.WATER=new U(C.create(\"water\"),{level:\"0\"}),G.LAVA=new U(C.create(\"lava\"),{level:\"0\"});const z=class{constructor(t){this.minY=t,this.storage=Array(z.SIZE).fill(0),this.palette=[G.AIR]}get minBlockY(){return this.minY<<4}index(t,e,s){return(t<<8)+(e<<4)+s}getBlockState(t,e,s){var r;const i=this.storage[this.index(t,e,s)];return null!=(r=this.palette[i])?r:G.AIR}setBlockState(t,e,s,r){let i=this.palette.findIndex((t=>t.equals(r)));-1===i&&(i=this.palette.length,this.palette.push(r)),this.storage[this.index(t,e,s)]=i}};let Y=z;Y.WIDTH=16,Y.SIZE=z.WIDTH*z.WIDTH*z.WIDTH;class H{constructor(t,e,s){this.minY=t,this.height=e,this.pos=s,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[s,r,i]=t,n=this.sections[this.getSectionIndex(r)];return null!=(e=null==n?void 0:n.getBlockState(15&s,15&r,15&i))?e:G.AIR}setBlockState(t,e){const[s,r,i]=t,n=this.getSectionIndex(r);let o=this.sections[n];if(null===o){if(e.equals(G.AIR))return;o=this.getOrCreateSection(n)}o.setBlockState(15&s,15&r,15&i,e)}getOrCreateSection(t){return null==this.sections[t]&&(this.sections[t]=new Y(this.minSection+t)),this.sections[t]}}var X,j;!function(t){function e(t,e){return BigInt(4294967295&t)|BigInt(4294967295&e)<>4,t[2]>>4]},t.fromLong=function(t){return[4294967295&Number(t),Number(t>>BigInt(32))]},t.toLong=function(t){return e(t[0],t[1])},t.asLong=e,t.minBlockX=function(t){return t[0]<<4},t.minBlockZ=function(t){return t[1]<<4},t.maxBlockX=function(t){return 15+(t[0]<<4)},t.maxBlockZ=function(t){return 15+(t[1]<<4)}}(X||(X={})),function(t){function e(t){return{value:()=>t,key:()=>{}}}function s(t,e){return{value:()=>t.getOrThrow(e),key:()=>e}}t.parser=function(t,r){return i=>\"string\"==typeof i?s(t,C.parse(i)):e(r(i))},t.direct=e,t.reference=s}(j||(j={}));const Z=class{constructor(t,e){this.key=t,this.parser=e,this.storage=new Map,this.builtin=new Map}register(t,e,s){return this.storage.set(t.toString(),e),s&&this.builtin.set(t.toString(),e),j.reference(this,t)}keys(){return[...this.storage.keys()].map((t=>C.parse(t)))}get(t){return this.storage.get(t.toString())}getOrThrow(t){const e=this.storage.get(t.toString());if(void 0===e)throw new Error(`Missing key in ${this.key.toString()}: ${t.toString()}`);return e}parse(t){if(!this.parser)throw new Error(`No parser exists for ${this.key.toString()}`);return this.parser(t)}clear(){this.storage.clear();for(const[t,e]of this.builtin.entries())this.storage.set(t,e);return this}assign(t){if(!this.key.equals(t.key))throw new Error(`Cannot assign registry of type ${t.key.toString()} to registry of type ${this.key.toString()}`);for(const e of t.keys())this.storage.set(e.toString(),t.getOrThrow(e));return this}cloneEmpty(){return new Z(this.key,this.parser)}};let q=Z;q.REGISTRY=new Z(C.create(\"root\"));class J{constructor(t,e=[],s=[]){this.size=t,this.palette=e,this.blocks=s,this.blocksMap=[],s.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,s,r){if(!this.isInside(t))throw new Error(`Cannot add block at ${t} outside the structure bounds ${this.size}`);const i=new G(e,s);let n=this.palette.findIndex((t=>t.equals(i)));return-1===n&&(n=this.palette.length,this.palette.push(i)),this.blocks.push({pos:t,state:n,nbt:r}),this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]]={pos:t,state:n,nbt:r},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]G.fromNbt({name:\"\",value:t}))),r=I(t.value,\"blocks\",\"compound\").map((t=>({pos:I(t,\"pos\",\"int\",3),state:E(t,\"state\",\"int\"),nbt:N((()=>E(t,\"nbt\",\"compound\")),void 0)})));return new J(e,s,r)}}function W(t){return t*t}function $(t,e,s){return Math.max(e,Math.min(s,t))}function K(t,e,s){return e+t*(s-e)}function Q(t,e,s,r,i,n){return K(e,K(t,s,r),K(t,i,n))}function tt(t,e,s,r,i,n,o,a,l,u,h){return K(s,Q(t,e,r,i,n,o),Q(t,e,a,l,u,h))}function et(t,e,s){return 0===t?e():1===t?s():e()+t*(s()-e())}function st(t,e,s,r,i,n){return et(e,(()=>et(t,s,r)),(()=>et(t,i,n)))}function rt(t,e,s,r,i,n,o,a,l,u,h){return et(s,(()=>st(t,e,r,i,n,o)),(()=>st(t,e,a,l,u,h)))}function it(t,e,s){return s<0?t:s>1?e:K(s,t,e)}function nt(t,e,s){return(t-e)/(s-e)}function ot(t){return t*t*t*(t*(6*t-15)+10)}function at(t,e,s,r,i){return K(nt(t,e,s),r,i)}function lt(t,e,s,r,i){return it(r,i,nt(t,e,s))}function ut(t,e,s){let r=e-t;for(;r>0;){const e=Math.floor(r/2),i=t+e;s(i)?r=e:(t=i+1,r-=e+1)}return t}function ht(t,e,s){let r=BigInt(3129871*t)^BigInt(s)*BigInt(116129781)^BigInt(e);return r=r*r*BigInt(42317861)+r*BigInt(11),r>>BigInt(16)}function ct(t,e,s,r,i,n,o,a){return BigInt(t)<{var e;return null!=(e=B.readObject(t))?e:{}})))?o:[];if(0===c.length)return new e(0);for(const e of c){const s=null!=(a=B.readNumber(e.location))?a:0,r=t(e.value,i),n=null!=(l=B.readNumber(e.derivative))?l:0;h.addPoint(s,r,n)}return h};class e{constructor(t){this.value=t}compute(){return this.value}min(){return this.value}max(){return this.value}mapAll(){return this}}t.Constant=e;class s{constructor(t,e=[],s=[],r=[]){this.coordinate=t,this.locations=e,this.values=s,this.derivatives=r}compute(t){const e=this.coordinate.compute(t),s=ut(0,this.locations.length,(t=>et.min())))}max(){return Math.max(...this.values.map((t=>t.max())))}mapAll(t){return new s(t(this.coordinate),this.locations,this.values.map((e=>e.mapAll(t))),this.derivatives)}addPoint(e,s,r=0){return this.locations.push(e),this.values.push(\"number\"==typeof s?new t.Constant(s):s),this.derivatives.push(r),this}}t.MultiPoint=s}(ft||(ft={}));const mt=class{constructor(t){this.seed=BigInt(0),this.setSeed(t)}fork(){return new mt(this.nextLong())}forkPositional(){return new pt(this.nextLong())}setSeed(t){this.seed=t^mt.MULTIPLIER&mt.MODULUS_MASK}advance(){this.seed=this.seed*mt.MULTIPLIER+mt.INCREMENT&mt.MODULUS_MASK}consume(t){for(let e=0;e>BigInt(mt.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,s;for(;(e=this.next(31))-(s=e%t)+(t-1)<0;);return s}nextLong(){return(BigInt(this.next(32))<>gt.BIGINT_30)*gt.STAFFORD_1>.MAX_ULONG)^t>>gt.BIGINT_27)*gt.STAFFORD_2>.MAX_ULONG)^t>>gt.BIGINT_31)>.MAX_ULONG}static upgradeSeedTo128bit(t){t<0&&(t+=gt.POW2_60);const e=t^gt.SILVER_RATIO_64,s=e+gt.GOLDEN_RATIO_64>.MAX_ULONG;return[gt.mixStafford13(e),gt.mixStafford13(s)]}static rotateLeft(t,e){return t<>gt.BIGINT_64-e}setSeed(t){this.seed=gt.upgradeSeedTo128bit(t)}fork(){return new gt([this.next(),this.next()])}forkPositional(){return new wt(this.next(),this.next())}next(){const t=this.seed[0];let e=this.seed[1];const s=gt.rotateLeft(t+e>.MAX_ULONG,gt.BIGINT_17)+t>.MAX_ULONG;return e^=t,this.seed=[gt.rotateLeft(t,gt.BIGINT_49)^e^e<gt.POW2_63&&(t-=gt.POW2_60),t}consume(t){let e=this.seed[0],s=this.seed[1];for(let r=0;r>BigInt(64-t)}nextInt(t){let e=this.next()>.MAX_UINT;if(t){const s=BigInt(t);let r=e*s,i=r>.MAX_UINT;if(i>gt.BIGINT_32;return Number(n)}{let t=Number(e);return t>=2147483648&&(t-=4294967296),t}}nextFloat(){return Number(this.nextBits(24))*gt.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*gt.DOUBLE_MULTIPLIER}parityConfigString(){return\"seedLo: \"+this.seed[0]+\", seedHi: \"+this.seed[1]}};let vt=gt;vt.SILVER_RATIO_64=BigInt(\"7640891576956012809\"),vt.GOLDEN_RATIO_64=BigInt(\"-7046029254386353131\"),vt.FLOAT_MULTIPLIER=1/Math.pow(2,24),vt.DOUBLE_MULTIPLIER=11102230246251565e-32,vt.BIGINT_1=BigInt(1),vt.BIGINT_17=BigInt(17),vt.BIGINT_21=BigInt(21),vt.BIGINT_27=BigInt(27),vt.BIGINT_28=BigInt(28),vt.BIGINT_30=BigInt(30),vt.BIGINT_31=BigInt(31),vt.BIGINT_32=BigInt(32),vt.BIGINT_49=BigInt(49),vt.BIGINT_64=BigInt(64),vt.STAFFORD_1=BigInt(\"-4658895280553007687\"),vt.STAFFORD_2=BigInt(\"-7723592293110705685\"),vt.MAX_ULONG=BigInt(\"0xFFFFFFFFFFFFFFFF\"),vt.POW2_60=BigInt(\"0x10000000000000000\"),vt.POW2_63=BigInt(\"0x8000000000000000\"),vt.MAX_UINT=BigInt(4294967295);class wt{constructor(t,e){this.seedLo=t,this.seedHi=e}at(t,e,s){const r=ht(t,e,s)^this.seedLo;return new vt([r,this.seedHi])}fromHashOf(t){const s=e(t,{asBytes:!0}),r=ct(s[0],s[1],s[2],s[3],s[4],s[5],s[6],s[7]),i=ct(s[8],s[9],s[10],s[11],s[12],s[13],s[14],s[15]);return new vt([r^this.seedLo,i^this.seedHi])}seedKey(){return[this.seedLo,this.seedHi]}}const bt=class{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 s=t.nextInt(256-e),r=this.p[e];this.p[e]=this.p[e+s],this.p[e+s]=r}}sample2D(t,e){let s,r,i;const n=(t+e)*bt.F2,o=Math.floor(t+n),a=t-(o-(s=(o+(r=Math.floor(e+n)))*bt.G2));let l,u;a>(i=e-(r-s))?(l=1,u=0):(l=0,u=1);const h=a-l+bt.G2,c=i-u+bt.G2,f=a-1+2*bt.G2,m=i-1+2*bt.G2,d=255&o,p=255&r,g=this.P(d+this.P(p))%12,v=this.P(d+l+this.P(p+u))%12,w=this.P(d+1+this.P(p+1))%12;return 70*(this.getCornerNoise3D(g,a,i,0,.5)+this.getCornerNoise3D(v,h,c,0,.5)+this.getCornerNoise3D(w,f,m,0,.5))}sample(t,e,s){const r=.3333333333333333*(t+e+s),i=Math.floor(t+r),n=Math.floor(e+r),o=Math.floor(s+r),a=.16666666666666666*(i+n+o),l=t-(i-a),u=e-(n-a),h=s-(o-a);let c,f,m,d,p,g;l>=u?u>=h?(c=1,f=0,m=0,d=1,p=1,g=0):l>=h?(c=1,f=0,m=0,d=1,p=0,g=1):(c=0,f=0,m=1,d=1,p=0,g=1):u127?t-256:t;for(let e=0;e<256;e+=1){const s=t.nextInt(256-e),r=this.p[e];this.p[e]=this.p[e+s],this.p[e+s]=r}}sample(t,e,s,r=0,i=0){const n=t+this.xo,o=e+this.yo,a=s+this.zo,l=Math.floor(n),u=Math.floor(o),h=Math.floor(a),c=n-l,f=o-u,m=a-h;let d=0;if(0!==r){const t=i>=0&&i=0;r-=1)r0&&(r=this.maxLimitNoise.getOctaveNoise(l))&&(a+=r.sample(c,f,m,h,e*h)/n),n/=2}return it(o/512,a/512,i)/128}}var yt;(yt||(yt={})).fromJson=function(t){var e,s,r,i,n;const o=null!=(e=B.readObject(t))?e:{};return{xzScale:null!=(s=B.readNumber(o.xz_scale))?s:1,yScale:null!=(r=B.readNumber(o.y_scale))?r:1,xzFactor:null!=(i=B.readNumber(o.xz_factor))?i:80,yFactor:null!=(n=B.readNumber(o.y_factor))?n:80}};const Et=class{constructor(t,{firstOctave:e,amplitudes:s}){this.first=new _t(t,e,s),this.second=new _t(t,e,s);let r=1/0,i=-1/0;for(let t=0;t{var e;return null!=(e=B.readNumber(t))?e:0})))?r:[]}};class Rt{constructor(t,e){const s=e[e.length-1],r=-e[0]+s+1,i=new Set(e),n=new xt(t);this.noiseLevels=Array(r),s>=0&&s=0&&i.has(s-e)?this.noiseLevels[e]=new xt(t):t.consume(262);if(s>0)throw new Error(\"Positive octaves are not allowed\");this.highestFreqInputFactor=Math.pow(2,s),this.highestFreqValueFactor=1/(Math.pow(2,r)-1)}sample(t,e,s){let r=0,i=this.highestFreqInputFactor,n=this.highestFreqValueFactor;for(let o=0;o[(t>>16&255)/256,(t>>8&255)/256,(255&t)/256],Mt=[124/256,189/256,107/256],Ct=Tt(6396257),Ot=Tt(8431445),kt=Tt(4764952),Pt=Tt(4159204),Lt=Tt(8431445),Ft=Tt(2129968),Vt=t=>[t/8,1-t/32,64*t],Dt={large_fern:()=>Mt,tall_grass:()=>Mt,grass_block:()=>Mt,fern:()=>Mt,grass:()=>Mt,potted_fern:()=>Mt,spruce_leaves:()=>Ct,birch_leaves:()=>Ot,oak_leaves:()=>kt,jungle_leaves:()=>kt,acacia_leaves:()=>kt,dark_oak_leaves:()=>kt,vine:()=>kt,water:()=>Pt,bubble_column:()=>Pt,cauldron:()=>Pt,redstone_wire:t=>{var e;return(t=>{const e=t/15;return[.6*e+(e>0?.4:.3),$(e*e*.7-.5,0,1),$(e*e*.6-.7,0,1)]})(parseInt(null!=(e=t.power)?e:\"0\"))},sugar_cane:()=>Mt,attached_melon_stem:()=>Lt,attached_pumpkin_stem:()=>Lt,melon_stem:t=>{var e;return Vt(parseInt(null!=(e=t.age)?e:\"0\"))},pumpkin_stem:t=>{var e;return Vt(parseInt(null!=(e=t.age)?e:\"0\"))},lily_pad:()=>Ft};var Ut;function Gt(...t){let e=0;for(const s of t)e+=s.length;const s=new Float32Array(e);let r=0;for(const e of t)s.set(e,r),r+=e.length;return s}function zt(t,e){const r=s.create();for(let i=0;ithis.matchesVariant(e,t)));if(0===e.length)return[];const s=this.variants[e[0]];return[Array.isArray(s)?s[0]:s]}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,s,n,o,a){var l,u,h,c;const f=this.getModelVariants(e),m=[],d=[],p=[],g=[];for(const v of f){const f=Ut.rotate(a,null!=(l=v.x)?l:0,null!=(u=v.y)?u:0),w=n.getBlockModel(v.model).getBuffers(t,e,s,o,f);if(v.x||v.y){const t=r.create();r.identity(t),r.translate(t,t,[8,8,8]),r.rotateY(t,t,-i.toRadian(null!=(h=v.y)?h:0)),r.rotateX(t,t,-i.toRadian(null!=(c=v.x)?c:0)),r.translate(t,t,[-8,-8,-8]),zt(w.position,t)}m.push(w.position),d.push(...w.texCoord),p.push(...w.tintColor),g.push(...w.index),o+=w.texCoord.length/2}const v=r.create();r.identity(v),r.scale(v,v,[.0625,.0625,.0625]);const w=Gt(...m);return zt(w,v),{position:w,texCoord:d,tintColor:p,index:g}}matchesVariant(t,e){return t.split(\",\").every((t=>{const[s,r]=t.split(\"=\");return e[s]===r}))}matchesCase(t,e){if(Array.isArray(t.OR))return t.OR.some((t=>this.matchesCase(t,e)));const s=t;return Object.keys(s).every((t=>s[t].split(\"|\").includes(e[t])))}static fromJson(t,e){return new Yt(t,e.variants,e.multipart)}}const Ht={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]},Xt={x:[1,0,0],y:[0,1,0],z:[0,0,1]},jt=1.41421356237,Zt={x:[1,jt,jt],y:[jt,1,jt],z:[jt,jt,1]};class qt{constructor(t,e,s,r){this.id=t,this.parent=e,this.textures=s,this.elements=r,this.flattened=!1}getBuffers(t,e,s,r,i){var n;const o=[],a=[],l=[],u=[];for(const h of null!=(n=this.elements)?n:[]){const n=this.getElementBuffers(t,e,h,r,s,i);o.push(n.position),a.push(...n.texCoord),l.push(...n.tintColor),u.push(...n.index),r+=n.texCoord.length/2}return{position:Gt(...o),texCoord:a,tintColor:l,index:u}}getElementBuffers(t,e,n,o,a,l){var u,h,c,f,m,d,p,g,v,w,b,x;const S=n.from[0],_=n.from[1],A=n.from[2],y=n.to[0],E=n.to[1],I=n.to[2],N=[],B=[],R=[],T=[],M=(s,r,i)=>{var n,l,u,h,c,f,m,d,p,g,v,w,b;const[x,S,_,A]=a.getTextureUV(this.getTexture(s.texture)),y=(_-x)/16,E=(A-S)/16,I=y/16,M=E/16;r[0]=(null!=(l=null==(n=s.uv)?void 0:n[0])?l:r[0])*y+I,r[1]=(null!=(h=null==(u=s.uv)?void 0:u[1])?h:r[1])*E+M,r[2]=(null!=(f=null==(c=s.uv)?void 0:c[2])?f:r[2])*y-I,r[3]=(null!=(d=null==(m=s.uv)?void 0:m[3])?d:r[3])*E-M;const C=Ht[null!=(p=s.rotation)?p:0];B.push(x+r[C[0]],S+r[C[1]],x+r[C[2]],S+r[C[3]],x+r[C[4]],S+r[C[5]],x+r[C[6]],S+r[C[7]]);const O=(null!=(g=s.tintindex)?g:-1)>=0&&null!=(b=null==(w=(v=Dt)[t.path])?void 0:w.call(v,e))?b:[1,1,1];R.push(...O,...O,...O,...O),N.push(...i),T.push(o,o+1,o+2,o,o+2,o+3),o+=4};!(null==(h=null==(u=n.faces)?void 0:u.up)?void 0:h.texture)||n.faces.up.cullface&&l[n.faces.up.cullface]||M(n.faces.up,[S,16-I,y,16-A],[S,E,I,y,E,I,y,E,A,S,E,A]),!(null==(f=null==(c=n.faces)?void 0:c.down)?void 0:f.texture)||n.faces.down.cullface&&l[n.faces.down.cullface]||M(n.faces.down,[16-I,16-y,16-A,16-S],[S,_,A,y,_,A,y,_,I,S,_,I]),!(null==(d=null==(m=n.faces)?void 0:m.south)?void 0:d.texture)||n.faces.south.cullface&&l[n.faces.south.cullface]||M(n.faces.south,[S,16-E,y,16-_],[S,_,I,y,_,I,y,E,I,S,E,I]),!(null==(g=null==(p=n.faces)?void 0:p.north)?void 0:g.texture)||n.faces.north.cullface&&l[n.faces.north.cullface]||M(n.faces.north,[16-y,16-E,16-S,16-_],[y,_,A,S,_,A,S,E,A,y,E,A]),!(null==(w=null==(v=n.faces)?void 0:v.east)?void 0:w.texture)||n.faces.east.cullface&&l[n.faces.east.cullface]||M(n.faces.east,[16-I,16-E,16-A,16-_],[y,_,I,y,_,A,y,E,A,y,E,I]),!(null==(x=null==(b=n.faces)?void 0:b.west)?void 0:x.texture)||n.faces.west.cullface&&l[n.faces.west.cullface]||M(n.faces.west,[A,16-E,I,16-_],[S,_,A,S,_,I,S,E,I,S,E,A]);const C=r.create();if(r.identity(C),n.rotation){const t=s.fromValues(...n.rotation.origin);r.translate(C,C,t),r.rotate(C,C,i.toRadian(n.rotation.angle),Xt[n.rotation.axis]),n.rotation.rescale&&r.scale(C,C,Zt[n.rotation.axis]),s.negate(t,t),r.translate(C,C,t)}const O=new Float32Array(N);return zt(O,C),{position:O,texCoord:B,tintColor:R,index:T}}getTexture(t){for(var e,s;t.startsWith(\"#\");)t=null!=(s=null==(e=this.textures)?void 0:e[t.slice(1)])?s:\"\";return t.startsWith(\"minecraft:\")||(t=\"minecraft:\"+t),t}flatten(t){var e;if(!this.flattened&&this.parent){const s=t.getBlockModel(this.parent);if(!s)return console.warn(`parent ${this.parent} does not exist!`),void(this.flattened=!0);s.flatten(t),this.elements||(this.elements=s.elements),this.textures||(this.textures={}),Object.keys(null!=(e=s.textures)?e:{}).forEach((t=>{this.textures[t]||(this.textures[t]=s.textures[t])})),this.flattened=!0}}static fromJson(t,e){let s=e.parent;return s&&!s.startsWith(\"minecraft:\")&&(s=\"minecraft:\"+s),new qt(t,s,e.textures,e.elements)}}class Jt{constructor(t,e,s){this.gl=t,this.program=this.initShaderProgram(e,s)}getProgram(){return this.program}initShaderProgram(t,e){const s=this.loadShader(this.gl.VERTEX_SHADER,t),r=this.loadShader(this.gl.FRAGMENT_SHADER,e),i=this.gl.createProgram();if(this.gl.attachShader(i,s),this.gl.attachShader(i,r),this.gl.linkProgram(i),!this.gl.getProgramParameter(i,this.gl.LINK_STATUS))throw new Error(`Unable to link shader program: ${this.gl.getProgramInfoLog(i)}`);return i}loadShader(t,e){const s=this.gl.createShader(t);if(this.gl.shaderSource(s,e),this.gl.compileShader(s),!this.gl.getShaderParameter(s,this.gl.COMPILE_STATUS)){const e=new Error(`Compiling ${t===this.gl.VERTEX_SHADER?\"vertex\":\"fragment\"} shader: ${this.gl.getShaderInfoLog(s)}`);throw this.gl.deleteShader(s),e}return s}}function Wt(t,e,s,r,i){const n=new Yt(\"\",{\"\":{model:\"\"}},void 0),o={getBlockModel:()=>i};return i.flatten(o),n.getBuffers(t,{},e,o,s,r)}function $t(t,e,s,r,i,o){const a=i.up?16:[14.2,12.5,10.5,9,7,5.3,3.7,1.9,16,16,16,16,16,16,16,16][s];return Wt(C.create(t),r,e,i,new qt(\"\",\"\",{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:n.UP},down:{texture:\"#still\",tintindex:o,cullface:n.DOWN},north:{texture:\"#flow\",tintindex:o,cullface:n.NORTH},east:{texture:\"#flow\",tintindex:o,cullface:n.EAST},south:{texture:\"#flow\",tintindex:o,cullface:n.SOUTH},west:{texture:\"#flow\",tintindex:o,cullface:n.WEST}}}]))}const Kt={\"minecraft:water\":(t,e,s,r)=>$t(\"water\",t,parseInt(e.level),s,r,0),\"minecraft:lava\":(t,e,s,r)=>$t(\"lava\",t,parseInt(e.level),s,r),\"minecraft:chest\":(t,e,s)=>function(t,e,s,r){return Wt(C.create(\"chest\"),r,t,{},new qt(\"\",\"\",{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,s)},Qt=new Set(Object.keys(Kt));class te{constructor(t,e,s,r){var i,n;this.gl=t,this.structure=e,this.resources=s,this.chunks=[],(null==r?void 0:r.facesPerBuffer)&&console.warn(\"webgl render warning: facesPerBuffer option has been removed in favor of chunkSize\"),this.chunkSize=null!=(i=null==r?void 0:r.chunkSize)?i:16,this.useInvisibleBlockBuffer=null==(n=null==r?void 0:r.useInvisibleBlockBuffer)||n,this.shaderProgram=new Jt(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 Jt(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 Jt(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,s=r.create();return r.perspective(s,t,e,.1,500),s}getChunk(t){const e=2*Math.abs(t[0])+(t[0]<0?1:0),s=2*Math.abs(t[1])+(t[1]<0?1:0),r=2*Math.abs(t[2])+(t[2]<0?1:0);return this.chunks[e]||(this.chunks[e]=[]),this.chunks[e][s]||(this.chunks[e][s]=[]),this.chunks[e][s][r]||(this.chunks[e][s][r]={positions:[],textureCoordinates:[],tintColors:[],blockPositions:[],normals:[],indices:[],indexOffset:0}),this.chunks[e][s][r]}updateStructureBuffers(t){var e;const i=(t,e,i)=>{const n=r.create();r.translate(n,n,e),zt(t.position,n),i.positions.push(t.position),i.textureCoordinates.push(...t.texCoord),i.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,Gt(...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,Gt(...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 r of this.structure.getBlocks()){const o=r.state.getName(),a=r.state.getProperties(),u=null!=(e=this.resources.getDefaultBlockProperties(o))?e:{};Object.entries(u).forEach((([t,e])=>{a[t]||(a[t]=e)}));const h=[Math.floor(r.pos[0]/this.chunkSize),Math.floor(r.pos[1]/this.chunkSize),Math.floor(r.pos[2]/this.chunkSize)];if(t&&!t.some((t=>s.equals(t,h))))continue;const c=this.getChunk(h);try{const t=this.resources.getBlockDefinition(o),e={up:this.needsCull(r,n.UP),down:this.needsCull(r,n.DOWN),west:this.needsCull(r,n.WEST),east:this.needsCull(r,n.EAST),north:this.needsCull(r,n.NORTH),south:this.needsCull(r,n.SOUTH)};t&&(l=t.getBuffers(o,a,this.resources,this.resources,c.indexOffset,e),i(l,r.pos,c)),Qt.has(o.toString())&&(l=Kt[o.toString()](c.indexOffset,a,this.resources,e),i(l,r.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 s,r;const i=null==(s=this.structure.getBlock(l.towards(t.pos,e)))?void 0:s.state;return!!i&&((null==(r=this.resources.getBlockFlags(i.getName()))?void 0:r.opaque)?!(e===n.UP&&t.state.isFluid()):t.state.isFluid()&&i.isFluid())}getGridBuffers(){const[t,e,s]=this.structure.getSize(),r=[],i=[];r.push(0,0,0,t,0,0),i.push(1,0,0,1,0,0),r.push(0,0,0,0,0,s),i.push(0,0,1,0,0,1),r.push(0,0,0,0,e,0),r.push(t,0,0,t,e,0),r.push(0,0,s,0,e,s),r.push(t,0,s,t,e,s),r.push(0,e,0,0,e,s),r.push(t,e,0,t,e,s),r.push(0,e,0,t,e,0),r.push(0,e,s,t,e,s);for(let e=1;e<=t;e+=1)r.push(e,0,0,e,0,s);for(let e=1;e<=s;e+=1)r.push(0,0,e,t,0,e);for(let e=0;e<8+t+s;e+=1)i.push(.8,.8,.8,.8,.8,.8);return{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(r)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(i)),length:r.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=[],s=[];for(let r=0;r{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 s=r.create();r.copy(s,t),r.translate(s,s,e),this.setUniform(\"mView\",s),this.setUniform(\"mProj\",this.projMatrix),this.gl.drawArrays(this.gl.LINES,0,this.outlineBuffers.length)}setViewport(t,e,s,r){this.gl.viewport(t,e,s,r),this.projMatrix=this.getPerspective()}setShader(t){this.gl.useProgram(t),this.activeShader=t}setVertexAttr(t,e,s){const r=this.gl.getAttribLocation(this.activeShader,t);this.gl.bindBuffer(this.gl.ARRAY_BUFFER,s),this.gl.vertexAttribPointer(r,e,this.gl.FLOAT,!1,0,0),this.gl.enableVertexAttribArray(r)}setUniform(t,e){const s=this.gl.getUniformLocation(this.activeShader,t);this.gl.uniformMatrix4fv(s,!1,e)}}var ee=(t,e,s)=>new Promise(((r,i)=>{var n=t=>{try{a(s.next(t))}catch(t){i(t)}},o=t=>{try{a(s.throw(t))}catch(t){i(t)}},a=t=>t.done?r(t.value):Promise.resolve(t.value).then(n,o);a((s=s.apply(t,e)).next())}));class se{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])?e:[0,0,this.part,this.part]}static fromBlobs(t){return ee(this,null,(function*(){const e=Math.sqrt(Object.keys(t).length+1),s=Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))),r=16*s,i=1/s,n=document.createElement(\"canvas\");n.width=r,n.height=r;const o=n.getContext(\"2d\");this.drawInvalidTexture(o);const a={};let l=1;return yield Promise.all(Object.keys(t).map((e=>ee(this,null,(function*(){const r=l%s,n=Math.floor(l/s);l+=1,a[e]=[i*r,i*n,i*r+i,i*n+i];const u=yield createImageBitmap(t[e]);o.drawImage(u,0,0,16,16,16*r,16*n,16,16)}))))),new se(o.getImageData(0,0,r,r),a)}))}static empty(){const t=document.createElement(\"canvas\");t.width=16,t.height=16;const e=t.getContext(\"2d\");return se.drawInvalidTexture(e),new se(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)}}const re=class{constructor(t,e,s){this.offsetSampler=t,this.factorSampler=e,this.jaggednessSampler=s}static extractor(t){return{compute:e=>e[t]}}static fromJson(t){var e;const s=null!=(e=B.readObject(t))?e:{};return new re(ft.fromJson(s.offset,this.EXTRACTOR),ft.fromJson(s.factor,this.EXTRACTOR),ft.fromJson(s.jaggedness,this.EXTRACTOR))}offset(t){return this.offsetSampler.compute(t)+re.GLOBAL_OFFSET}factor(t){return this.factorSampler.compute(t)}jaggedness(t){return this.jaggednessSampler.compute(t)}static point(t,e,s){return{continents:t,erosion:e,weirdness:s,ridges:this.peaksAndValleys(s)}}static peaksAndValleys(t){return 3*-(Math.abs(Math.abs(t)-.6666667)-.33333334)}};let ie=re;var ne,oe,ae,le,ue;ie.GLOBAL_OFFSET=-.50375,ie.EXTRACTOR=t=>{var e;const s=null!=(e=B.readString(t))?e:\"continents\";return re.extractor(s)},ie.CONTINENTS=re.extractor(\"continents\"),ie.EROSION=re.extractor(\"erosion\"),ie.WEIRDNESS=re.extractor(\"weirdness\"),ie.RIDGES=re.extractor(\"ridges\"),function(t){function e(t){return t.ySize<<2}t.fromJson=function(t){var e,s,r,i,n;const o=null!=(e=B.readObject(t))?e:{};return{minY:null!=(s=B.readInt(o.min_y))?s:0,height:null!=(r=B.readInt(o.height))?r:256,xzSize:null!=(i=B.readInt(o.size_horizontal))?i:1,ySize:null!=(n=B.readInt(o.size_vertical))?n:1,sampling:yt.fromJson(o.sampling),topSlide:oe.fromJson(o.top_slide),bottomSlide:oe.fromJson(o.bottom_slide),terrainShaper:ie.fromJson(o.terrain_shaper)}},t.cellHeight=e,t.cellWidth=function(t){return t.xzSize<<2},t.cellCountY=function(t){return t.height/e(t)},t.minCellY=function(t){return Math.floor(t.minY/e(t))},t.applySlides=function(s,r,i){const n=Math.floor(i/e(s))-t.minCellY(s);return r=oe.apply(s.topSlide,r,t.cellCountY(s)-n),r=oe.apply(s.bottomSlide,r,n)}}(ne||(ne={})),(ae=oe||(oe={})).fromJson=function(t){var e,s,r,i;const n=null!=(e=B.readObject(t))?e:{};return{target:null!=(s=B.readNumber(n.target))?s:0,size:null!=(r=B.readInt(n.size))?r:0,offset:null!=(i=B.readInt(n.offset))?i:0}},ae.apply=function(t,e,s){if(t.size<=0)return e;const r=(s-t.offset)/t.size;return it(t.target,e,r)},function(t){function e(t){const e=new q(C.create(t));return q.REGISTRY.register(e.key,e),e}t.NOISE=e(\"worldgen/noise\"),t.DENSITY_FUNCTION=e(\"worldgen/density_function\")}(le||(le={}));class he{minValue(){return-this.maxValue()}mapAll(t){return t.map(this)}}!function(t){t.context=function(t,e,s){return{x:t,y:e,z:s}};class e extends t{constructor(t){super(),this.input=t}compute(t){return this.transform(t,this.input.compute(t))}}const s=j.parser(le.NOISE,Nt.fromJson);t.fromJson=function t(e,r=t){var l,v,S,N,T,D,U,G,z,Y,H,X,Z,q,J,W,$,K,Q;if(\"string\"==typeof e)return new n(j.reference(le.DENSITY_FUNCTION,C.parse(e)));if(\"number\"==typeof e)return new i(e);const tt=null!=(l=B.readObject(e))?l:{},et=null==(v=B.readString(tt.type))?void 0:v.replace(/^minecraft:/,\"\");switch(et){case\"blend_alpha\":return new o(1,0,1);case\"blend_offset\":case\"beardifier\":return new o(0,-1/0,1/0);case\"old_blended_noise\":return new a;case\"flat_cache\":return new u(r(tt.argument));case\"interpolated\":return new m(r(tt.argument));case\"cache_2d\":return new c(r(tt.argument));case\"cache_once\":return new f(r(tt.argument));case\"cache_all_in_cell\":return new h(r(tt.argument));case\"noise\":return new d(null!=(S=B.readNumber(tt.xz_scale))?S:1,null!=(N=B.readNumber(tt.y_scale))?N:1,s(tt.noise));case\"end_islands\":return new p;case\"weird_scaled_sampler\":return new w(r(tt.input),B.readEnum(tt.rarity_value_mapper,g),s(tt.noise));case\"shifted_noise\":return new b(r(tt.shift_x),r(tt.shift_y),r(tt.shift_z),null!=(T=B.readNumber(tt.xz_scale))?T:1,null!=(D=B.readNumber(tt.y_scale))?D:1,s(tt.noise));case\"range_choice\":return new x(r(tt.input),null!=(U=B.readNumber(tt.min_inclusive))?U:0,null!=(G=B.readNumber(tt.max_exclusive))?G:1,r(tt.when_in_range),r(tt.when_out_of_range));case\"shift_a\":return new _(s(tt.argument));case\"shift_b\":return new A(s(tt.argument));case\"shift\":return new y(s(tt.argument));case\"blend_density\":return new E(r(tt.argument));case\"clamp\":return new I(r(tt.input),null!=(z=B.readNumber(tt.min))?z:0,null!=(Y=B.readNumber(tt.max))?Y:1);case\"abs\":case\"square\":case\"cube\":case\"half_negative\":case\"quarter_negative\":case\"squeeze\":return new R(et,r(tt.argument));case\"slide\":return new M(r(tt.argument));case\"add\":case\"mul\":case\"min\":case\"max\":return new k(B.readEnum(et,O),r(tt.argument1),r(tt.argument2));case\"spline\":return new P(ft.fromJson(tt.spline,r),null!=(H=B.readNumber(tt.min_value))?H:0,null!=(X=B.readNumber(tt.max_value))?X:1);case\"terrain_shaper_spline\":return new F(r(tt.continentalness),r(tt.erosion),r(tt.weirdness),B.readEnum(tt.spline,L),null!=(Z=B.readNumber(tt.min_value))?Z:0,null!=(q=B.readNumber(tt.max_value))?q:1);case\"constant\":return new i(null!=(J=B.readNumber(tt.argument))?J:0);case\"y_clamped_gradient\":return new V(null!=(W=B.readInt(tt.from_y))?W:-4064,null!=($=B.readInt(tt.to_y))?$:4062,null!=(K=B.readNumber(tt.from_value))?K:-4064,null!=(Q=B.readNumber(tt.to_value))?Q:4062)}return i.ZERO};const r=class extends t{constructor(t){super(),this.value=t}compute(){return this.value}minValue(){return this.value}maxValue(){return this.value}};let i=r;i.ZERO=new r(0),i.ONE=new r(1),t.Constant=i;class n extends t{constructor(t){super(),this.holder=t}compute(t){return this.holder.value().compute(t)}minValue(){return this.holder.value().minValue()}maxValue(){return this.holder.value().maxValue()}}t.HolderHolder=n;class o extends t.Constant{constructor(t,e,s){super(t),this.min=e,this.max=s}minValue(){return this.min}maxValue(){return this.max}}t.ConstantMinMax=o;class a extends t{constructor(t){super(),this.blendedNoise=null!=t?t:new At(vt.create(BigInt(0)),{xzScale:1,yScale:1,xzFactor:80,yFactor:160},4,8)}compute(t){return this.blendedNoise.sample(t.x,t.y,t.z)}maxValue(){return this.blendedNoise.maxValue}}t.OldBlendedNoise=a;class l extends t{constructor(t){super(),this.wrapped=t}minValue(){return this.wrapped.minValue()}maxValue(){return this.wrapped.maxValue()}}class u extends l{constructor(t){super(t),this.lastValue=0}compute(e){const s=e.x>>2,r=e.z>>2;return this.lastQuartX===s&&this.lastQuartZ===r||(this.lastValue=this.wrapped.compute(t.context(s<<2,0,r<<2)),this.lastQuartX=s,this.lastQuartZ=r),this.lastValue}mapAll(t){return t.map(new u(this.wrapped.mapAll(t)))}}t.FlatCache=u;class h extends l{constructor(t){super(t)}compute(t){return this.wrapped.compute(t)}mapAll(t){return t.map(new h(this.wrapped.mapAll(t)))}}t.CacheAllInCell=h;class c extends l{constructor(t){super(t),this.lastValue=0}compute(t){const e=t.x,s=t.z;return this.lastBlockX===e&&this.lastBlockZ===s||(this.lastValue=this.wrapped.compute(t),this.lastBlockX=e,this.lastBlockZ=s),this.lastValue}mapAll(t){return t.map(new c(this.wrapped.mapAll(t)))}}t.Cache2D=c;class f extends l{constructor(t){super(t),this.lastValue=0}compute(t){const e=t.x,s=t.y,r=t.z;return this.lastBlockX===e&&this.lastBlockY===s&&this.lastBlockZ===r||(this.lastValue=this.wrapped.compute(t),this.lastBlockX=e,this.lastBlockY=s,this.lastBlockZ=r),this.lastValue}mapAll(t){return t.map(new f(this.wrapped.mapAll(t)))}}t.CacheOnce=f;class m extends l{constructor(t,e=4,s=4){super(t),this.cellWidth=e,this.cellHeight=s,this.values=new Map}compute({x:t,y:e,z:s}){const r=this.cellWidth,i=this.cellHeight,n=(t%r+r)%r/r,o=(e%i+i)%i/i,a=(s%r+r)%r/r,l=Math.floor(t/r)*r,u=Math.floor(e/i)*i,h=Math.floor(s/r)*r;return rt(n,o,a,(()=>this.computeCorner(l,u,h)),(()=>this.computeCorner(l+r,u,h)),(()=>this.computeCorner(l,u+i,h)),(()=>this.computeCorner(l+r,u+i,h)),(()=>this.computeCorner(l,u,h+r)),(()=>this.computeCorner(l+r,u,h+r)),(()=>this.computeCorner(l,u+i,h+r)),(()=>this.computeCorner(l+r,u+i,h+r)))}computeCorner(e,s,r){return T(this.values,`${e} ${s} ${r}`,(()=>this.wrapped.compute(t.context(e,s,r))))}mapAll(t){return t.map(new m(this.wrapped.mapAll(t)))}withCellSize(t,e){return new m(this.wrapped,t,e)}}t.Interpolated=m;class d extends t{constructor(t,e,s,r){super(),this.xzScale=t,this.yScale=e,this.noiseData=s,this.noise=r}compute(t){var e,s;return null!=(s=null==(e=this.noise)?void 0:e.sample(t.x*this.xzScale,t.y*this.yScale,t.z*this.xzScale))?s:0}maxValue(){var t,e;return null!=(e=null==(t=this.noise)?void 0:t.maxValue)?e:2}}t.Noise=d;class p extends t{compute(){return 0}minValue(){return-.84375}maxValue(){return.5625}}const g=[\"type_1\",\"type_2\"],v=class extends e{constructor(t,e,s,r){super(t),this.rarityValueMapper=e,this.noiseData=s,this.noise=r,this.mapper=v.ValueMapper[this.rarityValueMapper]}transform(t,e){if(!this.noise)return 0;const s=this.mapper(e);return s*Math.abs(this.noise.sample(t.x/s,t.y/s,t.z/s))}mapAll(t){return t.map(new v(this.input.mapAll(t),this.rarityValueMapper,this.noiseData,this.noise))}minValue(){return 0}maxValue(){return\"type_1\"===this.rarityValueMapper?2:3}static rarityValueMapper1(t){return t<-.5?.75:t<0?1:t<.5?1.5:2}static rarityValueMapper2(t){return t<-.75?.5:t<-.5?.75:t<.5?1:t<.75?2:3}};let w=v;w.ValueMapper={type_1:v.rarityValueMapper1,type_2:v.rarityValueMapper2},t.WeirdScaledSampler=w;class b extends d{constructor(t,e,s,r,i,n,o){super(r,i,n,o),this.shiftX=t,this.shiftY=e,this.shiftZ=s}compute(t){var e,s;const r=t.x*this.xzScale+this.shiftX.compute(t),i=t.y*this.yScale+this.shiftY.compute(t),n=t.z*this.xzScale+this.shiftZ.compute(t);return null!=(s=null==(e=this.noise)?void 0:e.sample(r,i,n))?s:0}mapAll(t){return t.map(new b(this.shiftX.mapAll(t),this.shiftY.mapAll(t),this.shiftZ.mapAll(t),this.xzScale,this.yScale,this.noiseData,this.noise))}}t.ShiftedNoise=b;class x extends t{constructor(t,e,s,r,i){super(),this.input=t,this.minInclusive=e,this.maxExclusive=s,this.whenInRange=r,this.whenOutOfRange=i}compute(t){const e=this.input.compute(t);return this.minInclusive<=e&&eMath.abs(t),square:t=>t*t,cube:t=>t*t*t,half_negative:t=>t>0?t:.5*t,quarter_negative:t=>t>0?t:.25*t,squeeze:t=>{const e=$(t,-1,1);return e/2-e*e*e/24}},t.Mapped=R;class M extends e{constructor(t,e){super(t),this.settings=e}transform(t,e){return this.settings?ne.applySlides(this.settings,e,t.y):e}mapAll(t){return t.map(new M(this.input.mapAll(t),this.settings))}minValue(){return this.settings?Math.min(this.input.minValue(),this.settings.bottomSlide.target,this.settings.topSlide.target):this.input.minValue()}maxValue(){return this.settings?Math.max(this.input.maxValue(),this.settings.bottomSlide.target,this.settings.topSlide.target):this.input.maxValue()}}t.Slide=M;const O=[\"add\",\"mul\",\"min\",\"max\"];class k extends t{constructor(t,e,s,r,i){super(),this.type=t,this.argument1=e,this.argument2=s,this.min=r,this.max=i}compute(t){const e=this.argument1.compute(t);switch(this.type){case\"add\":return e+this.argument2.compute(t);case\"mul\":return 0===e?0:e*this.argument2.compute(t);case\"min\":return ethis.argument2.maxValue()?e:Math.max(e,this.argument2.compute(t))}}mapAll(t){return t.map(new k(this.type,this.argument1.mapAll(t),this.argument2.mapAll(t)))}minValue(){var t;return null!=(t=this.min)?t:-1/0}maxValue(){var t;return null!=(t=this.max)?t:1/0}withMinMax(){const t=this.argument1.minValue(),e=this.argument2.minValue(),s=this.argument1.maxValue(),r=this.argument2.maxValue();let i,n;switch(\"min\"!==this.type&&\"max\"!==this.type||!(t>=r||e>=s)||console.warn(`Creating a ${this.type} function between two non-overlapping inputs`),this.type){case\"add\":i=t+e,n=s+r;break;case\"mul\":i=t>0&&e>0?t*e||0:s<0&&r<0?s*r||0:Math.min(t*r||0,e*s||0),n=t>0&&e>0?s*r||0:s<0&&r<0?t*e||0:Math.max(t*e||0,s*r||0);break;case\"min\":i=Math.min(t,e),n=Math.min(s,r);break;case\"max\":i=Math.max(t,e),n=Math.max(s,r)}return new k(this.type,this.argument1,this.argument2,i,n)}}t.Ap2=k;class P extends t{constructor(t,e,s){super(),this.spline=t,this.min=e,this.max=s}compute(t){return $(this.spline.compute(t),this.min,this.max)}mapAll(e){return e.map(new P(this.spline.mapAll((s=>s instanceof t?s.mapAll(e):s)),this.min,this.max))}minValue(){return this.min}maxValue(){return this.max}}t.Spline=P;const L=[\"offset\",\"factor\",\"jaggedness\"];class F extends t{constructor(t,e,s,r,i,n,o){super(),this.continentalness=t,this.erosion=e,this.weirdness=s,this.spline=r,this.min=i,this.max=n,this.shaper=o}compute(t){if(!this.shaper)return 0;const e=ie.point(this.continentalness.compute(t),this.erosion.compute(t),this.weirdness.compute(t));return $(this.shaper[this.spline](e),this.min,this.max)}mapAll(t){return t.map(new F(this.continentalness.mapAll(t),this.erosion.mapAll(t),this.weirdness.mapAll(t),this.spline,this.min,this.max,this.shaper))}minValue(){return this.min}maxValue(){return this.max}}t.TerrainShaperSpline=F;class V extends t{constructor(t,e,s,r){super(),this.fromY=t,this.toY=e,this.fromValue=s,this.toValue=r}compute(t){return lt(t.y,this.fromY,this.toY,this.fromValue,this.toValue)}minValue(){return Math.min(this.fromValue,this.toValue)}maxValue(){return Math.max(this.fromValue,this.toValue)}}t.YClampedGradient=V}(he||(he={}));class ce{constructor(t,e){this.level=t,this.type=e}at(t){return t0))return t(e,s,r).at(s)}}};const fe=class{constructor(t,e,s,r,i,n,o,a,u,h){this.noiseChunk=t,this.barrierNoise=s,this.fluidLevelFloodednessNoise=r,this.fluidLevelSpreadNoise=i,this.lavaNoise=n,this.random=o,this.globalFluidPicker=h,this.minGridX=this.gridX(X.minBlockX(e))-1,this.gridSizeX=this.gridX(X.maxBlockX(e))+1-this.minGridX+1,this.minGridY=this.gridY(a)-1,this.minGridZ=this.gridZ(X.minBlockZ(e))-1,this.gridSizeZ=this.gridZ(X.maxBlockZ(e))+1-this.minGridZ+1;const c=this.gridY(a+u)+1-this.minGridY+1;this.gridSize=this.gridSizeX*c*this.gridSizeZ,this.aquiferCache=Array(this.gridSize).fill(void 0),this.aquiferLocationCache=Array(this.gridSize).fill(l.ZERO)}compute({x:t,y:e,z:s},r){if(r<=0){if(this.globalFluidPicker(t,e,s).at(e).is(G.LAVA))return G.LAVA;{const i=this.gridX(t-5),n=this.gridY(e+1),o=this.gridZ(s-5);let a=Number.MAX_SAFE_INTEGER,u=Number.MAX_SAFE_INTEGER,h=Number.MAX_SAFE_INTEGER,c=l.ZERO,f=l.ZERO,m=l.ZERO;for(let t=0;t<=1;t+=1)for(let e=-1;e<=1;e+=1)for(let s=0;s<=1;s+=1){const r=this.getLocation(i+t,n+e,o+s),d=l.magnitude(r);a>=d?(m=f,f=c,c=r,h=u,u=a,a=d):u>=d?(m=f,f=r,h=u,u=d):h>=d&&(m=r,h=d)}const d=this.getStatus(c),p=this.getStatus(f),g=this.getStatus(m),v=fe.similarity(a,u),w=fe.similarity(a,h),b=fe.similarity(u,h);let x;if(d.at(e).is(G.WATER)&&this.globalFluidPicker(t,e-1,s).at(e-1).is(G.LAVA))x=1;else if(v>-1){const r=R((()=>this.barrierNoise.compute(he.context(t,.5*e,s)))),i=this.calculatePressure(e,d,p,r),n=this.calculatePressure(e,d,g,r),o=this.calculatePressure(e,p,g,r),a=Math.max(i,n*Math.max(0,w),o*Math.max(b));x=Math.max(0,2*Math.max(0,v)*a)}else x=0;if(r+x<=0)return d.at(e)}}}static similarity(t,e){return 1-Math.abs(e-t)/25}calculatePressure(t,e,s,r){const i=e.at(t),n=s.at(t);if(i.is(G.LAVA)&&n.is(G.WATER)||i.is(G.WATER)&&n.is(G.LAVA))return 1;const o=Math.abs(e.level-s.level);if(0===o)return 0;const a=t+.5-(e.level+s.level)/2,l=o/2-Math.abs(a),u=a>0?l>0?l/1.5:l/2.5:l>-3?(l+3)/3:(l+3)/10;return u<-2||u>2?u:u+r()}getStatus(t){const[e,s,r]=t,i=this.getIndex(this.gridX(e),this.gridY(s),this.gridZ(r)),n=this.aquiferCache[i];if(void 0!==n)return n;const o=this.computeStatus(e,s,r);return this.aquiferCache[i]=o,o}computeStatus(t,e,s){const r=this.globalFluidPicker(t,e,s);let i=Number.MAX_SAFE_INTEGER,n=!1;for(const[o,a]of fe.SURFACE_SAMPLING){const l=t+(a<<4),u=s+(a<<4),h=this.noiseChunk.getPreliminarySurfaceLevel(l,u);i=Math.min(i,h);const c=0===o&&0===a;if(c&&e-12>h+8)return r;if(c||e+12>h+8){const t=this.globalFluidPicker(l,h+8,u);if(!t.at(h+8).is(G.AIR)){if(c)return t;n=!0}}}const o=n?lt(i+8-e,0,64,1,0):0,a=$(this.fluidLevelFloodednessNoise.compute(he.context(t,.67*e,s)),-1,1);if(a>at(o,1,0,-.3,.8))return r;if(a<=at(o,1,0,-.8,.4))return new ce(Number.MIN_SAFE_INTEGER,r.type);const l=Math.floor(e/40),u=this.fluidLevelSpreadNoise.compute(he.context(Math.floor(t/16),l,Math.floor(s/16))),h=40*l+20+3*Math.floor(u/3),c=Math.min(i,h),f=this.getFluidType(t,e,s,r.type,h);return new ce(c,f)}getFluidType(t,e,s,r,i){if(i<=-10){const r=this.lavaNoise.compute(he.context(Math.floor(t/64),Math.floor(e/40),Math.floor(s/64)));if(Math.abs(r)>.3)return G.LAVA}return r}getLocation(t,e,s){const r=this.getIndex(t,e,s),i=this.aquiferLocationCache[r];if(l.equals(i,l.ZERO))return i;const n=this.random.at(t,e,s),o=l.create(t*fe.X_SPACING+n.nextInt(10),e*fe.Y_SPACING+n.nextInt(9),s*fe.Z_SPACING+n.nextInt(10));return this.aquiferLocationCache[r]=o,o}getIndex(t,e,s){const r=t-this.minGridX,i=e-this.minGridY,n=s-this.minGridZ,o=(i*this.gridSizeZ+n)*this.gridSizeX+r;if(o<0||o>=this.gridSize)throw new Error(`Invalid aquifer index at ${t} ${e} ${s}: 0 <= ${o} < ${this.gridSize}`);return o}gridX(t){return Math.floor(t/fe.X_SPACING)}gridY(t){return Math.floor(t/fe.Y_SPACING)}gridZ(t){return Math.floor(t/fe.Z_SPACING)}};let me=fe;var de,pe;me.X_SPACING=16,me.Y_SPACING=12,me.Z_SPACING=16,me.SURFACE_SAMPLING=[[-2,-1],[-1,-1],[0,-1],[1,-1],[-3,0],[-2,0],[-1,0],[0,0],[1,0],[-2,1],[-1,1],[0,1],[1,1]],function(t){function e(t,e){return\"number\"==typeof t?new s(t,null!=e?e:t):t}t.target=function(t,e,s,r,n,o){return new i(t,e,s,r,n,o)},t.parameters=function(t,s,i,n,o,a,l){return new r(e(t),e(s),e(i),e(n),e(o),e(a),l)},t.param=e;class s{constructor(t,e){this.min=t,this.max=e}distance(t){const e=(\"number\"==typeof t?t:t.min)-this.max,s=this.min-(\"number\"==typeof t?t:t.max);return e>0?e:Math.max(s,0)}union(t){return new s(Math.min(this.min,t.min),Math.max(this.max,t.max))}static fromJson(t){var e;if(\"number\"==typeof t)return new s(t,t);const[r,i]=null!=(e=B.readArray(t,(t=>B.readNumber(t))))?e:[];return new s(null!=r?r:0,null!=i?i:0)}}t.Param=s;class r{constructor(t,e,s,r,i,n,o){this.temperature=t,this.humidity=e,this.continentalness=s,this.erosion=r,this.depth=i,this.weirdness=n,this.offset=o}fittness(t){return W(this.temperature.distance(t.temperature))+W(this.humidity.distance(t.humidity))+W(this.continentalness.distance(t.continentalness))+W(this.erosion.distance(t.erosion))+W(this.depth.distance(t.depth))+W(this.weirdness.distance(t.weirdness))+W(this.offset-t.offset)}space(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,new s(this.offset,this.offset)]}static fromJson(t){var e,i;const n=null!=(e=B.readObject(t))?e:{};return new r(s.fromJson(n.temperature),s.fromJson(n.humidity),s.fromJson(n.continentalness),s.fromJson(n.erosion),s.fromJson(n.depth),s.fromJson(n.weirdness),null!=(i=B.readInt(n.offset))?i:0)}}t.ParamPoint=r;class i{constructor(t,e,s,r,i,n){this.temperature=t,this.humidity=e,this.continentalness=s,this.erosion=r,this.depth=i,this.weirdness=n}get offset(){return 0}toArray(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,this.offset]}}t.TargetPoint=i;t.Parameters=class{constructor(t){this.things=t,this.index=new o(t)}find(t){return this.index.search(t,((t,e)=>t.distance(e)))}};t.Sampler=class{constructor(t,e,s,r,i,n){this.temperature=t,this.humidity=e,this.continentalness=s,this.erosion=r,this.depth=i,this.weirdness=n}static fromRouter(e){return new t.Sampler(e.temperature,e.vegetation,e.continents,e.erosion,e.depth,e.ridges)}sample(e,s,r){const i=he.context(e<<2,s<<2,r<<2);return t.target(this.temperature.compute(i),this.humidity.compute(i),this.continentalness.compute(i),this.erosion.compute(i),this.depth.compute(i),this.weirdness.compute(i))}};const n=class{constructor(t){this.root=n.build(t.map((([t,e])=>new u(t,e))))}static build(t){if(1===t.length)return t[0];if(t.length<=n.CHILDREN_PER_NODE){const e=t.map((t=>{let e=0;for(let s=0;s<7;s+=1){const r=t.space[s];e+=Math.abs((r.min+r.max)/2)}return{key:e,node:t}})).sort(((t,e)=>t.key-e.key)).map((({node:t})=>t));return new l(e)}let e=1/0,s=-1,r=[];for(let i=0;i<7;++i){t=n.sort(t,i,!1),r=n.bucketize(t);let o=0;for(const t of r)o+=n.area(t.space);e>o&&(e=o,s=i)}return t=n.sort(t,s,!1),r=n.bucketize(t),r=n.sort(r,s,!0),new l(r.map((t=>n.build(t.children))))}static sort(t,e,s){return t.map((t=>{const r=t.space[e],i=(r.min+r.max)/2;return{key:s?Math.abs(i):i,node:t}})).sort(((t,e)=>t.key-e.key)).map((({node:t})=>t))}static bucketize(t){const e=[];let s=[];const r=Math.pow(10,Math.floor(Math.log(t.length-.01)/Math.log(10)));for(const i of t)s.push(i),s.lengthnew s(1/0,-1/0)));for(const s of t)e=[...Array(7)].map(((t,r)=>e[r].union(s.space[r])));return e}search(t,e){let s=1/0,r=null;for(const i of this.children){const n=e(i,t);if(s<=n)continue;const o=i.search(t,e),a=i==o?n:e(o,t);s<=a||(s=a,r=o)}return r}}t.RSubTree=l;class u extends a{constructor(t,e){super(t.space()),this.thing=e}search(){return this}}t.RLeaf=u}(de||(de={}));class ge{constructor(t){this.biome=t}getBiome(){return this.biome}static fromJson(t){var e,s;const r=null!=(e=B.readObject(t))?e:{},i=C.parse(null!=(s=B.readString(r.biome))?s:\"minecraft:the_void\");return new ge(i)}}class ve{constructor(t){this.parameters=t}getBiome(t,e,s,r){const i=r.sample(t,e,s);return this.parameters.find(i)}static fromJson(t){var e,s;const r=null!=(e=B.readObject(t))?e:{},i=(null!=(s=B.readArray(r.biomes,(t=>{var e,s,r;return s=null!=(e=B.readObject(t))?e:{},{biome:C.parse(null!=(r=B.readString(s.biome))?r:\"minecraft:the_void\"),parameters:de.ParamPoint.fromJson(s.parameters)}})))?s:[]).map((t=>[t.parameters,()=>t.biome]));return new ve(new de.Parameters(i))}}!function(t){function e(t,e,s){return le.NOISE.register(C.create(t),Nt.create(e,s))}t.TEMPERATURE=e(\"temperature\",-10,[1.5,0,1,0,0,0]),t.VEGETATION=e(\"vegetation\",-8,[1,1,0,0,0,0]),t.CONTINENTALNESS=e(\"continentalness\",-9,[1,1,2,2,2,1,1,1,1]),t.EROSION=e(\"erosion\",-9,[1,1,0,1,1]),t.TEMPERATURE_LARGE=e(\"temperature_large\",-12,[1.5,0,1,0,0,0]),t.VEGETATION_LARGE=e(\"vegetation_large\",-10,[1,1,0,0,0,0]),t.CONTINENTALNESS_LARGE=e(\"continentalness_large\",-11,[1,1,2,2,2,1,1,1,1]),t.EROSION_LARGE=e(\"erosion_large\",-11,[1,1,0,1,1]),t.RIDGE=e(\"ridge\",-7,[1,2,1,0,0,0]),t.SHIFT=e(\"offset\",-3,[1,1,1,0]),t.AQUIFER_BARRIER=e(\"aquifer_barrier\",-3,[1]),t.AQUIFER_FLUID_LEVEL_FLOODEDNESS=e(\"aquifer_fluid_level_floodedness\",-7,[1]),t.AQUIFER_FLUID_LEVEL_SPREAD=e(\"aquifer_fluid_level_spread\",-5,[1]),t.AQUIFER_LAVA=e(\"aquifer_lava\",-1,[1]),t.PILLAR=e(\"pillar\",-7,[1,1]),t.PILLAR_RARENESS=e(\"pillar_rareness\",-8,[1]),t.PILLAR_THICKNESS=e(\"pillar_thickness\",-8,[1]),t.SPAGHETTI_2D=e(\"spaghetti_2d\",-8,[1]),t.SPAGHETTI_2D_ELEVATION=e(\"spaghetti_2d_elevation\",-8,[1]),t.SPAGHETTI_2D_MODULATOR=e(\"spaghetti_2d_modulator\",-8,[1]),t.SPAGHETTI_2D_THICKNESS=e(\"spaghetti_2d_thickness\",-8,[1]),t.SPAGHETTI_3D_1=e(\"spaghetti_3d_1\",-8,[1]),t.SPAGHETTI_3D_2=e(\"spaghetti_3d_2\",-8,[1]),t.SPAGHETTI_3D_RARITY=e(\"spaghetti_3d_rarity\",-8,[1]),t.SPAGHETTI_3D_THICKNESS=e(\"spaghetti_3d_thickness\",-8,[1]),t.SPAGHETTI_ROUGHNESS=e(\"spaghetti_roughness\",-8,[1]),t.SPAGHETTI_ROUGHNESS_MODULATOR=e(\"spaghetti_roughness_modulator\",-8,[1]),t.CAVE_ENTRANCE=e(\"cave_entrance\",-7,[.4,.5,1]),t.CAVE_LAYER=e(\"cave_layer\",-8,[1]),t.CAVE_CHEESE=e(\"cave_cheese\",-8,[.5,1,2,1,2,1,0,2,0]),t.NOODLE=e(\"noodle\",-8,[1]),t.NOODLE_THICKNESS=e(\"noodle_thickness\",-8,[1]),t.NOODLE_RIDGE_A=e(\"noodle_ridge_a\",-7,[1]),t.NOODLE_RIDGE_B=e(\"noodle_ridge_b\",-7,[1]),t.JAGGED=e(\"jagged\",-16,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),t.SURFACE=e(\"surface\",-6,[1,1,1]),t.SURFACE_SECONDARY=e(\"surface_secondary\",-6,[1,1,0,1]);const s=new Map;t.instantiate=function(t,e){var r;const i=null==(r=e.key())?void 0:r.toString();if(!i)throw new Error(\"Cannot instantiate noise from direct holder\");const n=t.seedKey(),o=s.get(i);if(o&&o[0]===n[0]&&o[1]===n[1])return o[2];const a=new It(t.fromHashOf(i),e.value());return s.set(i,[n[0],n[1],a]),a}}(pe||(pe={}));var we,be,xe,Se,_e,Ae,ye,Ee=Object.defineProperty,Ie=Object.defineProperties,Ne=Object.getOwnPropertyDescriptors,Be=Object.getOwnPropertySymbols,Re=Object.prototype.hasOwnProperty,Te=Object.prototype.propertyIsEnumerable,Me=(t,e,s)=>e in t?Ee(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,Ce=(t,e)=>{for(var s in e||(e={}))Re.call(e,s)&&Me(t,s,e[s]);if(Be)for(var s of Be(e))Te.call(e,s)&&Me(t,s,e[s]);return t};!function(t){const e=t=>j.parser(le.DENSITY_FUNCTION,he.fromJson)(t).value();t.fromJson=function(t){var s;const r=null!=(s=B.readObject(t))?s:{};return{barrier:e(r.barrier),fluidLevelFloodedness:e(r.fluid_level_floodedness),fluidLevelSpread:e(r.fluid_level_spread),lava:e(r.lava),temperature:e(r.temperature),vegetation:e(r.vegetation),continents:e(r.continents),erosion:e(r.erosion),depth:e(r.depth),ridges:e(r.ridges),initialDensityWithoutJaggedness:e(r.initial_density_without_jaggedness),finalDensity:e(r.final_density),veinToggle:e(r.vein_toggle),veinRidged:e(r.vein_ridged),veinGap:e(r.vein_gap)}},t.create=function(t){return Ce({barrier:he.Constant.ZERO,fluidLevelFloodedness:he.Constant.ZERO,fluidLevelSpread:he.Constant.ZERO,lava:he.Constant.ZERO,temperature:he.Constant.ZERO,vegetation:he.Constant.ZERO,continents:he.Constant.ZERO,erosion:he.Constant.ZERO,depth:he.Constant.ZERO,ridges:he.Constant.ZERO,initialDensityWithoutJaggedness:he.Constant.ZERO,finalDensity:he.Constant.ZERO,veinToggle:he.Constant.ZERO,veinRidged:he.Constant.ZERO,veinGap:he.Constant.ZERO},t)},t.withSettings=function(t,e,r,i=!1){const n=(i?new dt(r):vt.create(r)).forkPositional(),o=new s(n,e);return a=Ce({},o.mapAll(t)),l={aquiferPositionalRandomFactory:n.fromHashOf(C.create(\"aquifer\").toString()).forkPositional(),oreVeinsPositionalRandomFactory:n.fromHashOf(C.create(\"ore\").toString()).forkPositional()},Ie(a,Ne(l));var a,l};class s{constructor(t,e){this.random=t,this.settings=e,this.mapped=new Map}map(t){if(t instanceof he.HolderHolder){const e=t.holder.key();if(void 0!==e&&this.mapped.has(e.toString()))return this.mapped.get(e.toString());{const s=t.holder.value().mapAll(this);return void 0!==e&&this.mapped.set(e.toString(),s),s}}if(t instanceof he.Interpolated)return t.withCellSize(ne.cellWidth(this.settings),ne.cellHeight(this.settings));if(t instanceof he.Noise)return new he.Noise(t.xzScale,t.yScale,t.noiseData,pe.instantiate(this.random,t.noiseData));if(t instanceof he.ShiftNoise)return t.withNewNoise(pe.instantiate(this.random,t.noiseData));if(t instanceof he.ShiftedNoise){const e=pe.instantiate(this.random,t.noiseData);return new he.ShiftedNoise(t.shiftX,t.shiftY,t.shiftZ,t.xzScale,t.yScale,t.noiseData,e)}return t instanceof he.WeirdScaledSampler?new he.WeirdScaledSampler(t.input,t.rarityValueMapper,t.noiseData,pe.instantiate(this.random,t.noiseData)):t instanceof he.OldBlendedNoise?new he.OldBlendedNoise(new At(this.random.fromHashOf(C.create(\"terrain\").toString()),this.settings.sampling,ne.cellWidth(this.settings),ne.cellHeight(this.settings))):t instanceof he.Mapped||t instanceof he.Ap2?t.withMinMax():t instanceof he.TerrainShaperSpline?new he.TerrainShaperSpline(t.continentalness,t.erosion,t.weirdness,t.spline,t.min,t.max,this.settings.terrainShaper):t instanceof he.Slide?new he.Slide(t.input,this.settings):t}mapAll(t){return{barrier:t.barrier.mapAll(this),fluidLevelFloodedness:t.fluidLevelFloodedness.mapAll(this),fluidLevelSpread:t.fluidLevelSpread.mapAll(this),lava:t.lava.mapAll(this),temperature:t.temperature.mapAll(this),vegetation:t.vegetation.mapAll(this),continents:t.continents.mapAll(this),erosion:t.erosion.mapAll(this),depth:t.depth.mapAll(this),ridges:t.ridges.mapAll(this),initialDensityWithoutJaggedness:t.initialDensityWithoutJaggedness.mapAll(this),finalDensity:t.finalDensity.mapAll(this),veinToggle:t.veinToggle.mapAll(this),veinRidged:t.veinRidged.mapAll(this),veinGap:t.veinGap.mapAll(this)}}}t.Visitor=s,t.computePreliminarySurfaceLevelScanning=function(t,e,s,r){const i=ne.minCellY(t)+ne.cellCountY(t),n=ne.minCellY(t),o=ne.cellHeight(t);for(let a=i;a>=n;a-=1){const i=a*o,n=$(e.compute(he.context(s,i,r)),-64,64);if(ne.applySlides(t,n,i)>=.390625)return i}return Number.MAX_SAFE_INTEGER}}(we||(we={}));class Oe{constructor(t,e,s,r,i,n,o,a,l){this.cellCountXZ=t,this.cellCountY=e,this.cellNoiseMinY=s,this.router=r,this.minX=i,this.minZ=n,this.settings=o,this.preliminarySurfaceLevel=new Map,this.cellWidth=ne.cellWidth(o),this.cellHeight=ne.cellHeight(o),this.firstCellX=Math.floor(i/this.cellWidth),this.firstCellZ=Math.floor(n/this.cellWidth),this.firstNoiseX=i>>2,this.firstNoiseZ=n>>2,this.noiseSizeXZ=t*this.cellWidth>>2,this.aquifer=ue.createDisabled(l);const u=this.router.finalDensity;this.materialRule=be.fromList([t=>this.aquifer.compute(t,u.compute(t))]),this.initialDensityWithoutJaggedness=this.router.initialDensityWithoutJaggedness}getFinalState(t,e,s){return this.materialRule({x:t,y:e,z:s})}getPreliminarySurfaceLevel(t,e){return T(this.preliminarySurfaceLevel,X.asLong(t,e),(()=>we.computePreliminarySurfaceLevelScanning(this.settings,this.initialDensityWithoutJaggedness,t<<2,e<<2)))}getAquifer(){return this.aquifer}}(be||(be={})).fromList=function(t){return e=>{for(const s of t){const t=s(e);if(t)return t}}},(xe||(xe={})).fromJson=function(t){var e,s,r,i;const n=null!=(e=B.readObject(t))?e:{};return void 0!==n.absolute?(o=null!=(s=B.readNumber(n.absolute))?s:0,()=>o):void 0!==n.above_bottom?function(t){return e=>e.minY+t}(null!=(r=B.readNumber(n.above_bottom))?r:0):void 0!==n.below_top?function(t){return e=>e.maxY-t}(null!=(i=B.readNumber(n.below_top))?i:0):()=>0;var o},(Se||(Se={})).create=function(t,e){return{minY:t,height:e,maxY:t+e-1}};class ke{constructor(t,e,s){this.rule=t,this.defaultBlock=e,this.random=vt.create(s).forkPositional(),this.surfaceNoise=pe.instantiate(this.random,pe.SURFACE),this.surfaceSecondaryNoise=pe.instantiate(this.random,pe.SURFACE_SECONDARY),this.positionalRandoms=new Map}buildSurface(t,e,s,r){const i=X.minBlockX(t.pos),n=X.minBlockZ(t.pos),o=new Pe(this,t,e,s,r),a=this.rule(o);for(let e=0;e<16;e+=1){const s=i+e;for(let e=0;e<1;e+=1){const r=n+e;o.updateXZ(s,r);let i=0,u=Number.MIN_SAFE_INTEGER,h=Number.MAX_SAFE_INTEGER;for(let e=t.maxY;e>=t.minY;e-=1){const n=l.create(s,e,r),c=t.getBlockState(n);if(c.equals(G.AIR)){i=0,u=Number.MIN_SAFE_INTEGER;continue}if(c.isFluid()){u===Number.MIN_SAFE_INTEGER&&(u=e+1);continue}if(h>=e){h=Number.MIN_SAFE_INTEGER;for(let i=e-1;i>=t.minY;i-=1){const e=t.getBlockState(l.create(s,i,r));if(e.equals(G.AIR)||e.isFluid()){h=i+1;break}}}i+=1;const f=e-h+1;if(!c.equals(this.defaultBlock))continue;o.updateY(i,f,u,e);const m=a(s,e,r);m&&t.setBlockState(n,m)}}}}getSurfaceDepth(t,e){return 2.75*this.surfaceNoise.sample(t,0,e)+3+.25*this.random.at(t,0,e).nextDouble()}getSurfaceSecondary(t,e){return this.surfaceSecondaryNoise.sample(t,0,e)}getRandom(t){return T(this.positionalRandoms,t,(()=>this.random.fromHashOf(t)))}}class Pe{constructor(t,e,s,r,i){this.system=t,this.chunk=e,this.noiseChunk=s,this.context=r,this.getBiome=i,this.blockX=0,this.blockY=0,this.blockZ=0,this.stoneDepthAbove=0,this.stoneDepthBelow=0,this.surfaceDepth=0,this.waterHeight=0,this.biome=()=>\"\",this.surfaceSecondary=()=>0,this.minSurfaceLevel=()=>0}updateXZ(t,e){this.blockX=t,this.blockZ=e,this.surfaceDepth=this.system.getSurfaceDepth(t,e),this.surfaceSecondary=R((()=>this.system.getSurfaceSecondary(t,e))),this.minSurfaceLevel=R((()=>this.calculateMinSurfaceLevel(t,e)))}updateY(t,e,s,r){this.blockY=r,this.stoneDepthAbove=t,this.stoneDepthBelow=e,this.waterHeight=s,this.biome=R((()=>this.getBiome(l.create(this.blockX,this.blockY,this.blockZ))))}calculateMinSurfaceLevel(t,e){const s=t>>4,r=e>>4,i=this.noiseChunk.getPreliminarySurfaceLevel(s<<4,r<<4),n=this.noiseChunk.getPreliminarySurfaceLevel(s+1<<4,r<<4),o=this.noiseChunk.getPreliminarySurfaceLevel(s<<4,r+1<<4),a=this.noiseChunk.getPreliminarySurfaceLevel(s+1<<4,r+1<<4);return Math.floor(Q((15&t)/16,(15&e)/16,i,n,o,a))+this.surfaceDepth-8}}!function(t){function e(t){return()=>()=>t}function s(t){return e=>{const s=t.map((t=>t(e)));return(t,e,r)=>{for(const i of s){const s=i(t,e,r);if(s)return s}}}}function r(t,e){return s=>(r,i,n)=>{if(t(s))return e(s)(r,i,n)}}t.NOOP=()=>()=>{},t.fromJson=function(i){var n,o,a;const l=null!=(n=B.readObject(i))?n:{};switch(null==(o=B.readString(l.type))?void 0:o.replace(/^minecraft:/,\"\")){case\"block\":return e(G.fromJson(l.result_state));case\"sequence\":return s(null!=(a=B.readArray(l.sequence,t.fromJson))?a:[]);case\"condition\":return r(Ae.fromJson(l.if_true),t.fromJson(l.then_run))}return t.NOOP},t.block=e,t.sequence=s,t.condition=r}(_e||(_e={})),function(t){function e(){return t=>t.blockY>=t.minSurfaceLevel()}function s(t){const e=new Set(t);return t=>e.has(t.biome())}function r(t){return e=>!t(e)}function i(t,e,s,r){return i=>{const n=r?i.stoneDepthBelow:i.stoneDepthAbove,o=e?i.surfaceDepth:0,a=0===s?0:at(i.surfaceSecondary(),-1,1,0,s);return n<=1+t+o+a}}function n(t,e,s){return r=>{const i=e(r.context),n=s(r.context);if(r.blockY<=i)return!0;if(r.blockY>=n)return!1;const o=r.system.getRandom(t),a=at(r.blockY,i,n,1,0);return o.nextFloat(){if(r.waterHeight===Number.MIN_SAFE_INTEGER)return!0;const i=s?r.stoneDepthAbove:0;return r.blockY+i>=r.waterHeight+t+r.surfaceDepth*e}}function a(t,e,s){return r=>{const i=s?r.stoneDepthAbove:0;return r.blockY+i>=t(r.context)+r.surfaceDepth*e}}t.FALSE=()=>!1,t.TRUE=()=>!0,t.fromJson=function(e){var l,u,h,c,f,m,d,p,g,v,w,b;const x=null!=(l=B.readObject(e))?l:{};switch(null==(u=B.readString(x.type))?void 0:u.replace(/^minecraft:/,\"\")){case\"above_preliminary_surface\":return t=>t.blockY>=t.minSurfaceLevel();case\"biome\":return s(null!=(h=B.readArray(x.biome_is,(t=>{var e;return null!=(e=B.readString(t))?e:\"\"})))?h:[]);case\"not\":return r(t.fromJson(x.invert));case\"stone_depth\":return i(null!=(c=B.readInt(x.offset))?c:0,null!=(f=B.readBoolean(x.add_surface_depth))&&f,null!=(m=B.readInt(x.secondary_depth_range))?m:0,\"ceiling\"===B.readString(x.surface_type));case\"vertical_gradient\":return n(null!=(d=B.readString(x.random_name))?d:\"\",xe.fromJson(x.true_at_and_below),xe.fromJson(x.false_at_and_above));case\"water\":return o(null!=(p=B.readInt(x.offset))?p:0,null!=(g=B.readInt(x.surface_depth_multiplier))?g:0,null!=(v=B.readBoolean(x.add_surface_depth))&&v);case\"y_above\":return a(xe.fromJson(x.anchor),null!=(w=B.readInt(x.surface_depth_multiplier))?w:0,null!=(b=B.readBoolean(x.add_surface_depth))&&b)}return t.FALSE},t.abovePreliminarySurface=e,t.biome=s,t.not=r,t.stoneDepth=i,t.verticalGradient=n,t.water=o,t.yAbove=a}(Ae||(Ae={}));class Le{constructor(t,e,s){this.biomeSource=e,this.settings=s,this.router=we.withSettings(s.noiseRouter,s.noise,t,s.legacyRandomSource),this.noiseChunkCache=new Map,this.surfaceSystem=new ke(s.surfaceRule,s.defaultBlock,t);const r=new ce(-54,G.LAVA),i=new ce(s.seaLevel,s.defaultFluid);this.globalFluidPicker=(t,e,n)=>e=0;m-=1)for(let u=o-1;u>=0;u-=1){const d=(l+m)*o+u,p=15&d,g=t.getSectionIndex(d);t.getSectionIndex(a.minBlockY)!==g&&(a=t.getOrCreateSection(g));for(let t=0;te))}getNoiseChunk(t){return T(this.noiseChunkCache,X.toLong(t.pos),(()=>{const e=Math.max(t.minY,this.settings.noise.minY),s=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),r=ne.cellWidth(this.settings.noise),i=ne.cellHeight(this.settings.noise),n=Math.floor(16/r),o=Math.floor(e/i),a=Math.floor((s-e)/i),l=X.minBlockX(t.pos),u=X.minBlockZ(t.pos);return new Oe(n,a,o,this.router,l,u,this.settings.noise,this.settings.aquifersEnabled,this.globalFluidPicker)}))}}(ye||(ye={})).fromJson=function(t){var e,s,r,i,n,o;const a=null!=(e=B.readObject(t))?e:{};return{surfaceRule:_e.fromJson(a.surface_rule),noise:ne.fromJson(a.noise),defaultBlock:G.fromJson(a.default_block),defaultFluid:G.fromJson(a.default_fluid),noiseRouter:we.fromJson(a.noise_router),seaLevel:null!=(s=B.readInt(a.sea_level))?s:0,disableMobGeneration:null!=(r=B.readBoolean(a.disable_mob_generation))&&r,aquifersEnabled:null!=(i=B.readBoolean(a.aquifers_enabled))&&i,oreVeinsEnabled:null!=(n=B.readBoolean(a.ore_veins_enabled))&&n,legacyRandomSource:null!=(o=B.readBoolean(a.legacy_random_source))&&o}};export{ue as Aquifer,At as BlendedNoise,Dt as BlockColors,Yt as BlockDefinition,qt as BlockModel,l as BlockPos,G as BlockState,H as Chunk,X as ChunkPos,Y as ChunkSection,de as Climate,ft as CubicSpline,he as DensityFunction,n as Direction,ge as FixedBiome,ce as FluidStatus,j as Holder,C as Identifier,St as ImprovedNoise,pt as LegacyPositionalRandom,dt as LegacyRandom,be as MaterialRule,ve as MultiNoise,f as NbtReader,m as NbtWriter,me as NoiseAquifer,Oe as NoiseChunk,Le as NoiseChunkGenerator,ye as NoiseGeneratorSettings,Nt as NoiseParameters,we as NoiseRouter,yt as NoiseSamplingSettings,ne as NoiseSettings,oe as NoiseSlideSettings,pe as Noises,It as NormalNoise,_t as PerlinNoise,Rt as PerlinSimplexNoise,q as Registry,xt as SimplexNoise,J as Structure,te as StructureRenderer,Ae as SurfaceCondition,Pe as SurfaceContext,_e as SurfaceRule,ke as SurfaceSystem,ie as TerrainShaper,se as TextureAtlas,xe as VerticalAnchor,Se as WorldgenContext,le as WorldgenRegistries,wt as XoroshiroPositionalRandom,vt as XoroshiroRandom,ut as binarySearch,$ as clamp,it as clampedLerp,lt as clampedMap,I as getListTag,N as getOptional,ht as getSeed,E as getTag,nt as inverseLerp,et as lazyLerp,st as lazyLerp2,rt as lazyLerp3,K as lerp,Q as lerp2,tt as lerp3,ct as longfromBytes,at as map,g as read,w as readChunk,p as readCompressed,v as readRegion,d as readUncompressed,ot as smoothstep,W as square,c as tagNames,h as tagTypes,S as write,A as writeChunk,x as writeCompressed,_ as writeRegion,b as writeUncompressed};\n//# sourceMappingURL=deepslate.esm.js.map\n"],"names":["t","s.create","s.transformMat4","r.create","r.identity","r.translate","r.rotateY","i.toRadian","r.rotateX","r.scale","s.fromValues","r.rotate","s.negate","r.perspective","s.subtract","s.cross","s.normalize","s.equals","r.copy"],"mappings":"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"} \ No newline at end of file diff --git a/assets/deepslate.esm.4f951104.js b/assets/deepslate.esm.feae856d.js similarity index 99% rename from assets/deepslate.esm.4f951104.js rename to assets/deepslate.esm.feae856d.js index 07b8f752..f879f74f 100644 --- a/assets/deepslate.esm.4f951104.js +++ b/assets/deepslate.esm.feae856d.js @@ -1,4 +1,4 @@ -import{p as Se,e as Ee,c as et,i as zt,t as nt,r as De,a as Me,s as Ie,f as bt,b as Oe,d as jt,n as Le,g as Ue,h as Ge,j as Ye,k as He,l as Ve,m as he,o as ze,q as je}from"./index.41a3dfd7.js";var F;(function(a){a.UP="up",a.DOWN="down",a.NORTH="north",a.EAST="east",a.SOUTH="south",a.WEST="west"})(F||(F={}));const Je={[F.UP]:[0,1,0],[F.DOWN]:[0,-1,0],[F.NORTH]:[0,0,-1],[F.EAST]:[1,0,0],[F.SOUTH]:[0,0,1],[F.WEST]:[-1,0,0]};var rt;(function(a){a.ALL=[a.UP,a.DOWN,a.NORTH,a.EAST,a.SOUTH,a.WEST],a.normal=function(t){return Je[t]}})(F||(F={})),function(a){a.create=function(t,e,s){return[t,e,s]},a.offset=function(t,e,s,i){return[t[0]+e,t[1]+s,t[2]+i]},a.towards=function(t,e){return a.offset(t,...F.normal(e))}}(rt||(rt={}));const ut={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},ue=["end","byte","short","int","long","float","double","byteArray","string","list","compound","intArray","longArray"];class Xe{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 s=this.dataView[t](this.offset,this.littleEndian);return this.offset+=e,s}long(){return[this.int(),this.int()]}byteArray(){const t=this.int(),e=[];for(let s=0;s=e)return;let s=this.buffer.byteLength;for(;sthis.buffer.byteLength&&n.fill(0,this.buffer.byteLength,this.offset),this.buffer=i,this.dataView=new DataView(i),this.arrayView=n}getData(){return this.accommodate(0),this.arrayView.slice(0,this.offset)}end(t){}writeNum(t,e,s){this.accommodate(e),this.dataView[t](this.offset,s,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),r.push(128|63&n)):n<65536?(r.push(224|n>>12),r.push(128|n>>6&63),r.push(128|63&n)):(r.push(240|n>>18&7),r.push(128|n>>12&63),r.push(128|n>>6&63),r.push(128|63&n));return r}(t);this.short(e.length),this.accommodate(e.length),this.arrayView.set(e,this.offset),this.offset+=e.length}list(t){this.byte(ut[t.type]),this.int(t.value.length),t.value;for(let e=0;e>16),s.setInt16(r+1,65535&i),s.setInt8(r+3,o),s.setInt32(r+4096,n.timestamp);const h=4096*i;s.setInt32(h,n.data.length+1),s.setInt8(h+4,n.compression),e.set(n.data,h+5),i+=o}return e}function vs(a,t,e,s){const i=Ne(a,t,e);switch(i.compression){case 1:i.data=Jt(s);break;case 2:i.data=Jt(s,!1,!0);break;case 3:i.data=ne(s);break;default:throw new Error(`Invalid compression mode ${i.compression}`)}return i}function Ne(a,t,e){const s=a.find(i=>i.x===t&&i.z===e);if(s===void 0)throw new Error(`Cannot find chunk [${t}, ${e}]`);return s}function st(a,t,e){if(!a[t])throw new Error(`Missing ${t} tag`);if(a[t].type!==e)throw new Error(`Expected ${t} to be of type ${e}, but found ${a[t].type}`);return a[t].value}function vt(a,t,e,s){const i=st(a,t,"list");if(i.type!==e)throw new Error(`Expected ${t} to be a list of ${e}s, but found ${i.type}s`);if(s&&i.value.length!==s)throw new Error(`Expected ${t} to be a list of length ${s}, but found length ${i.value.length}`);return i.value}function Ae(a,t){try{return a()}catch{return t}}var p,H,Xt,it,ct;(function(a){function t(e){return typeof e=="object"&&e!==null?e:void 0}a.readNumber=function(e){return typeof e=="number"?e:void 0},a.readInt=function(e){return typeof e=="number"?Math.floor(e):void 0},a.readString=function(e){return typeof e=="string"?e:void 0},a.readBoolean=function(e){return typeof e=="boolean"?e:void 0},a.readObject=t,a.readArray=function(e,s){if(Array.isArray(e))return e.map(i=>s(i))},a.readMap=function(e,s){var i;const n=(i=t(e))!==null&&i!==void 0?i:{};return Object.fromEntries(Object.entries(n).map(([r,o])=>[r,s(o)]))},a.compose=function(e,s,i){const n=s(e);return n?i(n):void 0}})(p||(p={}));class M{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 this.name==="minecraft:water"||this.name==="minecraft:lava"}equals(t){return this.name===t.name&&Object.keys(this.properties).every(e=>t.properties[e]===this.properties[e])}toString(){return Object.keys(this.properties).length===0?this.name:`${this.name}[${Object.entries(this.properties).map(([t,e])=>t+"="+e).join(",")}]`}static fromNbt(t){const e=st(t.value,"Name","string"),s=Ae(()=>st(t.value,"Properties","compound"),{}),i=Object.keys(s).reduce((n,r)=>Object.assign(Object.assign({},n),{[r]:st(s,r,"string")}),{});return new M(e,i)}static fromJson(t){var e,s;const i=(e=p.readObject(t))!==null&&e!==void 0?e:{},n=(s=p.readString(i.Name))!==null&&s!==void 0?s:"minecraft:stone",r=p.readMap(i.Properties,o=>{var h;return(h=p.readString(o))!==null&&h!==void 0?h:""});return new M(n,r)}}M.AIR=new M("minecraft:air");class ${constructor(t){this.minY=t,this.storage=Array($.SIZE),this.palette=[M.AIR]}get minBlockY(){return this.minY<<4}index(t,e,s){return(t<<8)+(e<<4)+s}getBlockState(t,e,s){var i;const n=this.storage[this.index(t,e,s)];return(i=this.palette[n])!==null&&i!==void 0?i:M.AIR}setBlockState(t,e,s,i){let n=this.palette.findIndex(r=>r.equals(i));n===-1&&(n=this.palette.length,this.palette.push(i)),this.storage[this.index(t,e,s)]=n}}$.WIDTH=16,$.SIZE=$.WIDTH*$.WIDTH*$.WIDTH;class bs{constructor(t,e,s){this.minY=t,this.height=e,this.pos=s,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[s,i,n]=t,r=this.sections[this.getSectionIndex(i)];return(e=r==null?void 0:r.getBlockState(15&s,15&i,15&n))!==null&&e!==void 0?e:M.AIR}setBlockState(t,e){const[s,i,n]=t,r=this.getSectionIndex(i);let o=this.sections[r];if(o===null){if(e.equals(M.AIR))return;o=this.getOrCreateSection(r)}o.setBlockState(15&s,15&i,15&n,e)}getOrCreateSection(t){return this.sections[t]==null&&(this.sections[t]=new $(this.minSection+t)),this.sections[t]}}(function(a){function t(e,s){return BigInt(4294967295&e)|BigInt(4294967295&s)<>4,e[2]>>4]},a.fromLong=function(e){return[4294967295&Number(e),Number(e>>BigInt(32))]},a.toLong=function(e){return t(e[0],e[1])},a.asLong=t,a.minBlockX=function(e){return e[0]<<4},a.minBlockZ=function(e){return e[1]<<4},a.maxBlockX=function(e){return 15+(e[0]<<4)},a.maxBlockZ=function(e){return 15+(e[1]<<4)}})(H||(H={}));class ye{constructor(t,e=[],s=[]){this.size=t,this.palette=e,this.blocks=s,this.blocksMap=[],s.forEach(i=>{if(!this.isInside(i.pos))throw new Error(`Found block at ${i.pos} which is outside the structure bounds ${this.size}`);this.blocksMap[i.pos[0]*t[1]*t[2]+i.pos[1]*t[2]+i.pos[2]]=i})}getSize(){return this.size}addBlock(t,e,s,i){if(!this.isInside(t))throw new Error(`Cannot add block at ${t} outside the structure bounds ${this.size}`);const n=new M(e,s);let r=this.palette.findIndex(o=>o.equals(n));return r===-1&&(r=this.palette.length,this.palette.push(n)),this.blocks.push({pos:t,state:r,nbt:i}),this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]]={pos:t,state:r,nbt:i},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]];return e?{pos:e.pos,state:this.palette[e.state],nbt:e.nbt}:null}isInside(t){return t[0]>=0&&t[0]=0&&t[1]=0&&t[2]M.fromNbt({name:"",value:n})),i=vt(t.value,"blocks","compound").map(n=>({pos:vt(n,"pos","int",3),state:st(n,"state","int"),nbt:Ae(()=>st(n,"nbt","compound"),void 0)}));return new ye(e,s,i)}}function Lt(a){let t=null;return()=>(t==null&&(t=a()),t)}function re(a,t,e){const s=a.get(t);if(s)return s;const i=e(t);return a.set(t,i),i}function j(a){return a*a}function Z(a,t,e){return Math.max(t,Math.min(e,a))}function k(a,t,e){return t+a*(e-t)}function Zt(a,t,e,s,i,n){return k(t,k(a,e,s),k(a,i,n))}function We(a,t,e,s,i,n,r,o,h,c,l){return k(e,Zt(a,t,s,i,n,r),Zt(a,t,o,h,c,l))}function ft(a,t,e){return e<0?a:e>1?t:k(e,a,t)}function Pe(a,t,e){return(a-t)/(e-t)}function Ut(a){return a*a*a*(a*(6*a-15)+10)}function W(a,t,e,s,i){return k(Pe(a,t,e),s,i)}function $e(a,t,e,s,i){return ft(s,i,Pe(a,t,e))}function qe(a,t,e){let s=t-a;for(;s>0;){const i=Math.floor(s/2),n=a+i;e(n)?s=i:(a=n+1,s-=i+1)}return a}function Fe(a,t,e){let s=BigInt(3129871*a)^BigInt(e)*BigInt(116129781)^BigInt(t);return s=s*s*BigInt(42317861)+s*BigInt(11),s>>BigInt(16)}function Wt(a,t,e,s,i,n,r,o){return BigInt(a)<>BigInt(R.MODULUS_BITS-t));return e>2147483647?e-4294967296:e}nextInt(t){if(t===void 0)return this.next(32);if((t&t-1)==0)return Number(BigInt(t)*BigInt(this.next(31))>>BigInt(31));let e,s;for(;(e=this.next(31))-(s=e%t)+(t-1)<0;);return s}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^P.SILVER_RATIO_64,s=e+P.GOLDEN_RATIO_64&BigInt("0xFFFFFFFFFFFFFFFF");return[P.mixStafford13(e),P.mixStafford13(s)]}static rotateLeft(t,e){return t<>BigInt(64)-e}setSeed(t){this.seed=P.upgradeSeedTo128bit(t)}fork(){return new P([this.next(),this.next()])}forkPositional(){return new Ke(this.next(),this.next())}next(){const t=this.seed[0];let e=this.seed[1];const s=P.rotateLeft(t+e&BigInt("0xFFFFFFFFFFFFFFFF"),BigInt(17))+t&BigInt("0xFFFFFFFFFFFFFFFF");return e^=t,this.seed=[P.rotateLeft(t,BigInt(49))^e^e<BigInt("0x8000000000000000")&&(t-=BigInt("0x10000000000000000")),t}consume(t){let e=this.seed[0],s=this.seed[1];for(let i=0;i>BigInt(64-t)}nextInt(t){let e=this.next()&BigInt(4294967295);if(t){const s=BigInt(t);let i=e*s,n=i&BigInt(4294967295);if(n>BigInt(32);return Number(r)}{let s=Number(e);return s>=2147483648&&(s-=4294967296),s}}nextFloat(){return Number(this.nextBits(24))*P.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*P.DOUBLE_MULTIPLIER}parityConfigString(){return"seedLo: "+this.seed[0]+", seedHi: "+this.seed[1]}}P.SILVER_RATIO_64=BigInt("7640891576956012809"),P.GOLDEN_RATIO_64=BigInt("-7046029254386353131"),P.FLOAT_MULTIPLIER=1/Math.pow(2,24),P.DOUBLE_MULTIPLIER=11102230246251565e-32;class Ke{constructor(t,e){this.seedLo=t,this.seedHi=e}at(t,e,s){const i=Fe(t,e,s)^this.seedLo;return new P([i,this.seedHi])}fromHashOf(t){const e=Ee(t,{asBytes:!0}),s=Wt(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7]),i=Wt(e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]);return new P([s^this.seedLo,i^this.seedHi])}}class x{constructor(t){this.xo=256*t.nextDouble(),this.yo=256*t.nextDouble(),this.zo=256*t.nextDouble(),this.p=Array(256);for(let e=0;e<256;e+=1)this.p[e]=e;for(let e=0;e<256;e+=1){const s=t.nextInt(256-e),i=this.p[e];this.p[e]=this.p[e+s],this.p[e+s]=i}}sample2D(t,e){let s,i,n;const r=(t+e)*x.F2,o=Math.floor(t+r),h=t-(o-(s=(o+(i=Math.floor(e+r)))*x.G2));let c,l;h>(n=e-(i-s))?(c=1,l=0):(c=0,l=1);const u=h-c+x.G2,d=n-l+x.G2,f=h-1+2*x.G2,g=n-1+2*x.G2,m=255&o,b=255&i,E=this.P(m+this.P(b))%12,I=this.P(m+c+this.P(b+l))%12,N=this.P(m+1+this.P(b+1))%12;return 70*(this.getCornerNoise3D(E,h,n,0,.5)+this.getCornerNoise3D(I,u,d,0,.5)+this.getCornerNoise3D(N,f,g,0,.5))}sample(t,e,s){const i=.3333333333333333*(t+e+s),n=Math.floor(t+i),r=Math.floor(e+i),o=Math.floor(s+i),h=.16666666666666666*(n+r+o),c=t-(n-h),l=e-(r-h),u=s-(o-h);let d,f,g,m,b,E;c>=l?l>=u?(d=1,f=0,g=0,m=1,b=1,E=0):c>=u?(d=1,f=0,g=0,m=1,b=0,E=1):(d=0,f=0,g=1,m=1,b=0,E=1):l127?e-256:e;for(let e=0;e<256;e+=1){const s=t.nextInt(256-e),i=this.p[e];this.p[e]=this.p[e+s],this.p[e+s]=i}}sample(t,e,s,i=0,n=0){const r=t+this.xo,o=e+this.yo,h=s+this.zo,c=Math.floor(r),l=Math.floor(o),u=Math.floor(h),d=r-c,f=o-l,g=h-u;let m=0;if(i!==0){const b=n>=0&&n=0;i-=1)i0&&(i=this.maxLimitNoise.getOctaveNoise(c))&&(h+=i.sample(d,f,g,u,e*u)/r),r/=2}return ft(o/512,h/512,n)/128}}(function(a){a.fromJson=function(t){var e,s,i,n,r;const o=(e=p.readObject(t))!==null&&e!==void 0?e:{};return{xzScale:(s=p.readNumber(o.xz_scale))!==null&&s!==void 0?s:1,yScale:(i=p.readNumber(o.y_scale))!==null&&i!==void 0?i:1,xzFactor:(n=p.readNumber(o.xz_factor))!==null&&n!==void 0?n:80,yFactor:(r=p.readNumber(o.y_factor))!==null&&r!==void 0?r:80}}})(Xt||(Xt={}));class J{constructor(t,{firstOctave:e,amplitudes:s}){this.first=new L(t,e,s),this.second=new L(t,e,s);let i=1/0,n=-1/0;for(let o=0;o{var o;return(o=p.readNumber(r))!==null&&o!==void 0?o:0}))!==null&&i!==void 0?i:[]}}}(it||(it={}));class Ss{constructor(t,e){const s=e[e.length-1],i=-e[0]+s+1,n=new Set(e),r=new x(t);this.noiseLevels=Array(i),s>=0&&s=0&&n.has(s-o)?this.noiseLevels[o]=new x(t):t.consume(262);if(s>0)throw new Error("Positive octaves are not allowed");this.highestFreqInputFactor=Math.pow(2,s),this.highestFreqValueFactor=1/(Math.pow(2,i)-1)}sample(t,e,s){let i=0,n=this.highestFreqInputFactor,r=this.highestFreqValueFactor;for(let o=0;o{var u;return(u=p.readObject(l))!==null&&u!==void 0?u:{}}))!==null&&i!==void 0?i:[];if(c.length===0)return new $t(0);for(const l of c){const u=(n=p.readNumber(l.location))!==null&&n!==void 0?n:0,d=a.fromJson(l.value,e),f=(r=p.readNumber(l.derivative))!==null&&r!==void 0?r:0;h.addPoint(u,d,f)}return h}})(ct||(ct={}));class $t{constructor(t){this.value=t}apply(){return this.value}toJson(){return this.value}}class _{constructor(t,e=[],s=[],i=[]){this.coordinate=t,this.locations=e,this.values=s,this.derivatives=i}apply(t){const e=this.coordinate.apply(t),s=qe(0,this.locations.length,g=>e({location:t,value:this.values[e].toJson(),derivative:this.derivatives[e]}))}}}const ot=a=>[(a>>16&255)/256,(a>>8&255)/256,(255&a)/256],q=[124/256,189/256,107/256],ts=ot(6396257),es=ot(8431445),ht=ot(4764952),Gt=ot(4159204),fe=ot(8431445),ss=ot(2129968),ge=a=>[a/8,1-a/32,64*a],pe={large_fern:()=>q,tall_grass:()=>q,grass_block:()=>q,fern:()=>q,grass:()=>q,potted_fern:()=>q,spruce_leaves:()=>ts,birch_leaves:()=>es,oak_leaves:()=>ht,jungle_leaves:()=>ht,acacia_leaves:()=>ht,dark_oak_leaves:()=>ht,vine:()=>ht,water:()=>Gt,bubble_column:()=>Gt,cauldron:()=>Gt,redstone_wire:a=>{var t;return(e=>{const s=e/15;return[.6*s+(s>0?.4:.3),Z(s*s*.7-.5,0,1),Z(s*s*.6-.7,0,1)]})(parseInt((t=a.power)!==null&&t!==void 0?t:"0"))},sugar_cane:()=>q,attached_melon_stem:()=>fe,attached_pumpkin_stem:()=>fe,melon_stem:a=>{var t;return ge(parseInt((t=a.age)!==null&&t!==void 0?t:"0"))},pumpkin_stem:a=>{var t;return ge(parseInt((t=a.age)!==null&&t!==void 0?t:"0"))},lily_pad:()=>ss};var qt;function Et(...a){let t=0;for(const i of a)t+=i.length;const e=new Float32Array(t);let s=0;for(const i of a)e.set(i,s),s+=i.length;return e}function It(a,t){const e=He();for(let s=0;sthis.matchesVariant(i,t));if(e.length===0)return[];const s=this.variants[e[0]];return[Array.isArray(s)?s[0]:s]}return this.multipart?this.multipart.filter(e=>!e.when||this.matchesCase(e.when,t)).map(e=>Array.isArray(e.apply)?e.apply[0]:e.apply):[]}getBuffers(t,e,s,i,n,r){var o,h,c,l;const u=this.getModelVariants(e),d=[],f=[],g=[],m=[];for(const I of u){const N=qt.rotate(r,(o=I.x)!==null&&o!==void 0?o:0,(h=I.y)!==null&&h!==void 0?h:0),w=i.getBlockModel(I.model).getBuffers(t,e,s,n,N);if(I.x||I.y){const S=et();zt(S),nt(S,S,[8,8,8]),De(S,S,-jt((c=I.y)!==null&&c!==void 0?c:0)),Me(S,S,-jt((l=I.x)!==null&&l!==void 0?l:0)),nt(S,S,[-8,-8,-8]),It(w.position,S)}d.push(w.position),f.push(...w.texCoord),g.push(...w.tintColor),m.push(...w.index),n+=w.texCoord.length/2}const b=et();zt(b),Ie(b,b,[.0625,.0625,.0625]);const E=Et(...d);return It(E,b),{position:E,texCoord:f,tintColor:g,index:m}}matchesVariant(t,e){return t.split(",").every(s=>{const[i,n]=s.split("=");return e[i]===n})}matchesCase(t,e){if(Array.isArray(t.OR))return t.OR.some(i=>this.matchesCase(i,e));const s=t;return Object.keys(s).every(i=>s[i].split("|").includes(e[i]))}static fromJson(t,e){return new oe(t,e.variants,e.multipart)}}const is={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]},ns={x:[1,0,0],y:[0,1,0],z:[0,0,1]},K=1.41421356237,rs={x:[1,K,K],y:[K,1,K],z:[K,K,1]};class Nt{constructor(t,e,s,i){this.id=t,this.parent=e,this.textures=s,this.elements=i,this.flattened=!1}getBuffers(t,e,s,i,n){var r;const o=[],h=[],c=[],l=[];for(const u of(r=this.elements)!==null&&r!==void 0?r:[]){const d=this.getElementBuffers(t,e,u,i,s,n);o.push(d.position),h.push(...d.texCoord),c.push(...d.tintColor),l.push(...d.index),i+=d.texCoord.length/2}return{position:Et(...o),texCoord:h,tintColor:c,index:l}}getElementBuffers(t,e,s,i,n,r){var o,h,c,l,u,d,f,g,m,b,E,I;const N=s.from[0],w=s.from[1],S=s.from[2],A=s.to[0],y=s.to[1],T=s.to[2],Q=[],V=[],Y=[],z=[],G=(U,D,Ce)=>{var At,yt,Pt,Ft,Rt,Bt,xt,Tt,Ct,_t,kt,Dt;const[at,lt,_e,ke]=n.getTextureUV(this.getTexture(U.texture)),Mt=(_e-at)/16,Ot=(ke-lt)/16,ae=Mt/16,le=Ot/16;D[0]=((yt=(At=U.uv)===null||At===void 0?void 0:At[0])!==null&&yt!==void 0?yt:D[0])*Mt+ae,D[1]=((Ft=(Pt=U.uv)===null||Pt===void 0?void 0:Pt[1])!==null&&Ft!==void 0?Ft:D[1])*Ot+le,D[2]=((Bt=(Rt=U.uv)===null||Rt===void 0?void 0:Rt[2])!==null&&Bt!==void 0?Bt:D[2])*Mt-ae,D[3]=((Tt=(xt=U.uv)===null||xt===void 0?void 0:xt[3])!==null&&Tt!==void 0?Tt:D[3])*Ot-le;const X=is[(Ct=U.rotation)!==null&&Ct!==void 0?Ct:0];V.push(at+D[X[0]],lt+D[X[1]],at+D[X[2]],lt+D[X[3]],at+D[X[4]],lt+D[X[5]],at+D[X[6]],lt+D[X[7]]);const mt=((_t=U.tintindex)!==null&&_t!==void 0?_t:-1)>=0&&(Dt=(kt=pe[t.slice(10)])===null||kt===void 0?void 0:kt.call(pe,e))!==null&&Dt!==void 0?Dt:[1,1,1];Y.push(...mt,...mt,...mt,...mt),Q.push(...Ce),z.push(i,i+1,i+2,i,i+2,i+3),i+=4};!(!((h=(o=s.faces)===null||o===void 0?void 0:o.up)===null||h===void 0)&&h.texture)||s.faces.up.cullface&&r[s.faces.up.cullface]||G(s.faces.up,[N,16-T,A,16-S],[N,y,T,A,y,T,A,y,S,N,y,S]),!(!((l=(c=s.faces)===null||c===void 0?void 0:c.down)===null||l===void 0)&&l.texture)||s.faces.down.cullface&&r[s.faces.down.cullface]||G(s.faces.down,[16-T,16-A,16-S,16-N],[N,w,S,A,w,S,A,w,T,N,w,T]),!(!((d=(u=s.faces)===null||u===void 0?void 0:u.south)===null||d===void 0)&&d.texture)||s.faces.south.cullface&&r[s.faces.south.cullface]||G(s.faces.south,[N,16-y,A,16-w],[N,w,T,A,w,T,A,y,T,N,y,T]),!(!((g=(f=s.faces)===null||f===void 0?void 0:f.north)===null||g===void 0)&&g.texture)||s.faces.north.cullface&&r[s.faces.north.cullface]||G(s.faces.north,[16-A,16-y,16-N,16-w],[A,w,S,N,w,S,N,y,S,A,y,S]),!(!((b=(m=s.faces)===null||m===void 0?void 0:m.east)===null||b===void 0)&&b.texture)||s.faces.east.cullface&&r[s.faces.east.cullface]||G(s.faces.east,[16-T,16-y,16-S,16-w],[A,w,T,A,w,S,A,y,S,A,y,T]),!(!((I=(E=s.faces)===null||E===void 0?void 0:E.west)===null||I===void 0)&&I.texture)||s.faces.west.cullface&&r[s.faces.west.cullface]||G(s.faces.west,[S,16-y,T,16-w],[N,w,S,N,w,T,N,y,T,N,y,S]);const O=et();if(zt(O),s.rotation){const U=bt(...s.rotation.origin);nt(O,O,U),Oe(O,O,jt(s.rotation.angle),ns[s.rotation.axis]),s.rotation.rescale&&Ie(O,O,rs[s.rotation.axis]),Le(U,U),nt(O,O,U)}const pt=new Float32Array(Q);return It(pt,O),{position:pt,texCoord:V,tintColor:Y,index:z}}getTexture(t){for(var e,s;t.startsWith("#");)t=(s=(e=this.textures)===null||e===void 0?void 0:e[t.slice(1)])!==null&&s!==void 0?s:"";return t.startsWith("minecraft:")||(t="minecraft:"+t),t}flatten(t){var e;if(!this.flattened&&this.parent){const s=t.getBlockModel(this.parent);if(!s)return console.warn(`parent ${this.parent} does not exist!`),void(this.flattened=!0);s.flatten(t),this.elements||(this.elements=s.elements),this.textures||(this.textures={}),Object.keys((e=s.textures)!==null&&e!==void 0?e:{}).forEach(i=>{this.textures[i]||(this.textures[i]=s.textures[i])}),this.flattened=!0}}static fromJson(t,e){let s=e.parent;return s&&!s.startsWith("minecraft:")&&(s="minecraft:"+s),new Nt(t,s,e.textures,e.elements)}}class Yt{constructor(t,e,s){this.gl=t,this.program=this.initShaderProgram(e,s)}getProgram(){return this.program}initShaderProgram(t,e){const s=this.loadShader(this.gl.VERTEX_SHADER,t),i=this.loadShader(this.gl.FRAGMENT_SHADER,e),n=this.gl.createProgram();if(this.gl.attachShader(n,s),this.gl.attachShader(n,i),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 s=this.gl.createShader(t);if(this.gl.shaderSource(s,e),this.gl.compileShader(s),!this.gl.getShaderParameter(s,this.gl.COMPILE_STATUS)){const i=new Error(`Compiling ${t===this.gl.VERTEX_SHADER?"vertex":"fragment"} shader: ${this.gl.getShaderInfoLog(s)}`);throw this.gl.deleteShader(s),i}return s}}function Re(a,t,e,s,i){const n=new oe("",{"":{model:""}},void 0),r={getBlockModel:()=>i};return i.flatten(r),n.getBuffers(a,{},t,r,e,s)}function me(a,t,e,s,i,n){const r=i.up?16:[14.2,12.5,10.5,9,7,5.3,3.7,1.9,16,16,16,16,16,16,16,16][e];return Re(`minecraft:${a}`,s,t,i,new Nt("","",{still:`minecraft:block/${a}_still`,flow:`minecraft:block/${a}_flow`},[{from:[0,0,0],to:[16,r,16],faces:{up:{texture:"#still",tintindex:n,cullface:F.UP},down:{texture:"#still",tintindex:n,cullface:F.DOWN},north:{texture:"#flow",tintindex:n,cullface:F.NORTH},east:{texture:"#flow",tintindex:n,cullface:F.EAST},south:{texture:"#flow",tintindex:n,cullface:F.SOUTH},west:{texture:"#flow",tintindex:n,cullface:F.WEST}}}]))}const Be={"minecraft:water":(a,t,e,s)=>me("water",a,parseInt(t.level),e,s,0),"minecraft:lava":(a,t,e,s)=>me("lava",a,parseInt(t.level),e,s),"minecraft:chest":(a,t,e)=>function(s,i,n,r){return Re("minecraft:chest",r,s,{},new Nt("","",{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"}}}]))}(a,t.facing,t.type,e)},os=new Set(Object.keys(Be));class Es{constructor(t,e,s,i){var n,r;this.gl=t,this.structure=e,this.resources=s,this.chunks=[],i!=null&&i.facesPerBuffer&&console.warn("webgl render warning: facesPerBuffer option has been removed in favor of chunkSize"),this.chunkSize=(n=i==null?void 0:i.chunkSize)!==null&&n!==void 0?n:16,this.useInvisibleBlockBuffer=(r=i==null?void 0:i.useInvisibleBlockBuffer)===null||r===void 0||r,this.shaderProgram=new Yt(t,` +import{p as Se,e as Ee,c as et,i as zt,t as nt,r as De,a as jt,b as Me,s as Ie,f as bt,d as Oe,n as Le,g as Ue,h as Ge,j as Ye,k as He,l as Ve,m as he,o as ze,q as je}from"./index.d528c217.js";var F;(function(a){a.UP="up",a.DOWN="down",a.NORTH="north",a.EAST="east",a.SOUTH="south",a.WEST="west"})(F||(F={}));const Je={[F.UP]:[0,1,0],[F.DOWN]:[0,-1,0],[F.NORTH]:[0,0,-1],[F.EAST]:[1,0,0],[F.SOUTH]:[0,0,1],[F.WEST]:[-1,0,0]};var rt;(function(a){a.ALL=[a.UP,a.DOWN,a.NORTH,a.EAST,a.SOUTH,a.WEST],a.normal=function(t){return Je[t]}})(F||(F={})),function(a){a.create=function(t,e,s){return[t,e,s]},a.offset=function(t,e,s,i){return[t[0]+e,t[1]+s,t[2]+i]},a.towards=function(t,e){return a.offset(t,...F.normal(e))}}(rt||(rt={}));const ut={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},ue=["end","byte","short","int","long","float","double","byteArray","string","list","compound","intArray","longArray"];class Xe{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 s=this.dataView[t](this.offset,this.littleEndian);return this.offset+=e,s}long(){return[this.int(),this.int()]}byteArray(){const t=this.int(),e=[];for(let s=0;s=e)return;let s=this.buffer.byteLength;for(;sthis.buffer.byteLength&&n.fill(0,this.buffer.byteLength,this.offset),this.buffer=i,this.dataView=new DataView(i),this.arrayView=n}getData(){return this.accommodate(0),this.arrayView.slice(0,this.offset)}end(t){}writeNum(t,e,s){this.accommodate(e),this.dataView[t](this.offset,s,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),r.push(128|63&n)):n<65536?(r.push(224|n>>12),r.push(128|n>>6&63),r.push(128|63&n)):(r.push(240|n>>18&7),r.push(128|n>>12&63),r.push(128|n>>6&63),r.push(128|63&n));return r}(t);this.short(e.length),this.accommodate(e.length),this.arrayView.set(e,this.offset),this.offset+=e.length}list(t){this.byte(ut[t.type]),this.int(t.value.length),t.value;for(let e=0;e>16),s.setInt16(r+1,65535&i),s.setInt8(r+3,o),s.setInt32(r+4096,n.timestamp);const h=4096*i;s.setInt32(h,n.data.length+1),s.setInt8(h+4,n.compression),e.set(n.data,h+5),i+=o}return e}function vs(a,t,e,s){const i=Ne(a,t,e);switch(i.compression){case 1:i.data=Jt(s);break;case 2:i.data=Jt(s,!1,!0);break;case 3:i.data=ne(s);break;default:throw new Error(`Invalid compression mode ${i.compression}`)}return i}function Ne(a,t,e){const s=a.find(i=>i.x===t&&i.z===e);if(s===void 0)throw new Error(`Cannot find chunk [${t}, ${e}]`);return s}function st(a,t,e){if(!a[t])throw new Error(`Missing ${t} tag`);if(a[t].type!==e)throw new Error(`Expected ${t} to be of type ${e}, but found ${a[t].type}`);return a[t].value}function vt(a,t,e,s){const i=st(a,t,"list");if(i.type!==e)throw new Error(`Expected ${t} to be a list of ${e}s, but found ${i.type}s`);if(s&&i.value.length!==s)throw new Error(`Expected ${t} to be a list of length ${s}, but found length ${i.value.length}`);return i.value}function Ae(a,t){try{return a()}catch{return t}}var p,H,Xt,it,ct;(function(a){function t(e){return typeof e=="object"&&e!==null?e:void 0}a.readNumber=function(e){return typeof e=="number"?e:void 0},a.readInt=function(e){return typeof e=="number"?Math.floor(e):void 0},a.readString=function(e){return typeof e=="string"?e:void 0},a.readBoolean=function(e){return typeof e=="boolean"?e:void 0},a.readObject=t,a.readArray=function(e,s){if(Array.isArray(e))return e.map(i=>s(i))},a.readMap=function(e,s){var i;const n=(i=t(e))!==null&&i!==void 0?i:{};return Object.fromEntries(Object.entries(n).map(([r,o])=>[r,s(o)]))},a.compose=function(e,s,i){const n=s(e);return n?i(n):void 0}})(p||(p={}));class M{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 this.name==="minecraft:water"||this.name==="minecraft:lava"}equals(t){return this.name===t.name&&Object.keys(this.properties).every(e=>t.properties[e]===this.properties[e])}toString(){return Object.keys(this.properties).length===0?this.name:`${this.name}[${Object.entries(this.properties).map(([t,e])=>t+"="+e).join(",")}]`}static fromNbt(t){const e=st(t.value,"Name","string"),s=Ae(()=>st(t.value,"Properties","compound"),{}),i=Object.keys(s).reduce((n,r)=>Object.assign(Object.assign({},n),{[r]:st(s,r,"string")}),{});return new M(e,i)}static fromJson(t){var e,s;const i=(e=p.readObject(t))!==null&&e!==void 0?e:{},n=(s=p.readString(i.Name))!==null&&s!==void 0?s:"minecraft:stone",r=p.readMap(i.Properties,o=>{var h;return(h=p.readString(o))!==null&&h!==void 0?h:""});return new M(n,r)}}M.AIR=new M("minecraft:air");class ${constructor(t){this.minY=t,this.storage=Array($.SIZE),this.palette=[M.AIR]}get minBlockY(){return this.minY<<4}index(t,e,s){return(t<<8)+(e<<4)+s}getBlockState(t,e,s){var i;const n=this.storage[this.index(t,e,s)];return(i=this.palette[n])!==null&&i!==void 0?i:M.AIR}setBlockState(t,e,s,i){let n=this.palette.findIndex(r=>r.equals(i));n===-1&&(n=this.palette.length,this.palette.push(i)),this.storage[this.index(t,e,s)]=n}}$.WIDTH=16,$.SIZE=$.WIDTH*$.WIDTH*$.WIDTH;class bs{constructor(t,e,s){this.minY=t,this.height=e,this.pos=s,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[s,i,n]=t,r=this.sections[this.getSectionIndex(i)];return(e=r==null?void 0:r.getBlockState(15&s,15&i,15&n))!==null&&e!==void 0?e:M.AIR}setBlockState(t,e){const[s,i,n]=t,r=this.getSectionIndex(i);let o=this.sections[r];if(o===null){if(e.equals(M.AIR))return;o=this.getOrCreateSection(r)}o.setBlockState(15&s,15&i,15&n,e)}getOrCreateSection(t){return this.sections[t]==null&&(this.sections[t]=new $(this.minSection+t)),this.sections[t]}}(function(a){function t(e,s){return BigInt(4294967295&e)|BigInt(4294967295&s)<>4,e[2]>>4]},a.fromLong=function(e){return[4294967295&Number(e),Number(e>>BigInt(32))]},a.toLong=function(e){return t(e[0],e[1])},a.asLong=t,a.minBlockX=function(e){return e[0]<<4},a.minBlockZ=function(e){return e[1]<<4},a.maxBlockX=function(e){return 15+(e[0]<<4)},a.maxBlockZ=function(e){return 15+(e[1]<<4)}})(H||(H={}));class ye{constructor(t,e=[],s=[]){this.size=t,this.palette=e,this.blocks=s,this.blocksMap=[],s.forEach(i=>{if(!this.isInside(i.pos))throw new Error(`Found block at ${i.pos} which is outside the structure bounds ${this.size}`);this.blocksMap[i.pos[0]*t[1]*t[2]+i.pos[1]*t[2]+i.pos[2]]=i})}getSize(){return this.size}addBlock(t,e,s,i){if(!this.isInside(t))throw new Error(`Cannot add block at ${t} outside the structure bounds ${this.size}`);const n=new M(e,s);let r=this.palette.findIndex(o=>o.equals(n));return r===-1&&(r=this.palette.length,this.palette.push(n)),this.blocks.push({pos:t,state:r,nbt:i}),this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]]={pos:t,state:r,nbt:i},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]];return e?{pos:e.pos,state:this.palette[e.state],nbt:e.nbt}:null}isInside(t){return t[0]>=0&&t[0]=0&&t[1]=0&&t[2]M.fromNbt({name:"",value:n})),i=vt(t.value,"blocks","compound").map(n=>({pos:vt(n,"pos","int",3),state:st(n,"state","int"),nbt:Ae(()=>st(n,"nbt","compound"),void 0)}));return new ye(e,s,i)}}function Lt(a){let t=null;return()=>(t==null&&(t=a()),t)}function re(a,t,e){const s=a.get(t);if(s)return s;const i=e(t);return a.set(t,i),i}function j(a){return a*a}function Z(a,t,e){return Math.max(t,Math.min(e,a))}function k(a,t,e){return t+a*(e-t)}function Zt(a,t,e,s,i,n){return k(t,k(a,e,s),k(a,i,n))}function We(a,t,e,s,i,n,r,o,h,c,l){return k(e,Zt(a,t,s,i,n,r),Zt(a,t,o,h,c,l))}function ft(a,t,e){return e<0?a:e>1?t:k(e,a,t)}function Pe(a,t,e){return(a-t)/(e-t)}function Ut(a){return a*a*a*(a*(6*a-15)+10)}function W(a,t,e,s,i){return k(Pe(a,t,e),s,i)}function $e(a,t,e,s,i){return ft(s,i,Pe(a,t,e))}function qe(a,t,e){let s=t-a;for(;s>0;){const i=Math.floor(s/2),n=a+i;e(n)?s=i:(a=n+1,s-=i+1)}return a}function Fe(a,t,e){let s=BigInt(3129871*a)^BigInt(e)*BigInt(116129781)^BigInt(t);return s=s*s*BigInt(42317861)+s*BigInt(11),s>>BigInt(16)}function Wt(a,t,e,s,i,n,r,o){return BigInt(a)<>BigInt(R.MODULUS_BITS-t));return e>2147483647?e-4294967296:e}nextInt(t){if(t===void 0)return this.next(32);if((t&t-1)==0)return Number(BigInt(t)*BigInt(this.next(31))>>BigInt(31));let e,s;for(;(e=this.next(31))-(s=e%t)+(t-1)<0;);return s}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^P.SILVER_RATIO_64,s=e+P.GOLDEN_RATIO_64&BigInt("0xFFFFFFFFFFFFFFFF");return[P.mixStafford13(e),P.mixStafford13(s)]}static rotateLeft(t,e){return t<>BigInt(64)-e}setSeed(t){this.seed=P.upgradeSeedTo128bit(t)}fork(){return new P([this.next(),this.next()])}forkPositional(){return new Ke(this.next(),this.next())}next(){const t=this.seed[0];let e=this.seed[1];const s=P.rotateLeft(t+e&BigInt("0xFFFFFFFFFFFFFFFF"),BigInt(17))+t&BigInt("0xFFFFFFFFFFFFFFFF");return e^=t,this.seed=[P.rotateLeft(t,BigInt(49))^e^e<BigInt("0x8000000000000000")&&(t-=BigInt("0x10000000000000000")),t}consume(t){let e=this.seed[0],s=this.seed[1];for(let i=0;i>BigInt(64-t)}nextInt(t){let e=this.next()&BigInt(4294967295);if(t){const s=BigInt(t);let i=e*s,n=i&BigInt(4294967295);if(n>BigInt(32);return Number(r)}{let s=Number(e);return s>=2147483648&&(s-=4294967296),s}}nextFloat(){return Number(this.nextBits(24))*P.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*P.DOUBLE_MULTIPLIER}parityConfigString(){return"seedLo: "+this.seed[0]+", seedHi: "+this.seed[1]}}P.SILVER_RATIO_64=BigInt("7640891576956012809"),P.GOLDEN_RATIO_64=BigInt("-7046029254386353131"),P.FLOAT_MULTIPLIER=1/Math.pow(2,24),P.DOUBLE_MULTIPLIER=11102230246251565e-32;class Ke{constructor(t,e){this.seedLo=t,this.seedHi=e}at(t,e,s){const i=Fe(t,e,s)^this.seedLo;return new P([i,this.seedHi])}fromHashOf(t){const e=Ee(t,{asBytes:!0}),s=Wt(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7]),i=Wt(e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]);return new P([s^this.seedLo,i^this.seedHi])}}class x{constructor(t){this.xo=256*t.nextDouble(),this.yo=256*t.nextDouble(),this.zo=256*t.nextDouble(),this.p=Array(256);for(let e=0;e<256;e+=1)this.p[e]=e;for(let e=0;e<256;e+=1){const s=t.nextInt(256-e),i=this.p[e];this.p[e]=this.p[e+s],this.p[e+s]=i}}sample2D(t,e){let s,i,n;const r=(t+e)*x.F2,o=Math.floor(t+r),h=t-(o-(s=(o+(i=Math.floor(e+r)))*x.G2));let c,l;h>(n=e-(i-s))?(c=1,l=0):(c=0,l=1);const u=h-c+x.G2,d=n-l+x.G2,f=h-1+2*x.G2,g=n-1+2*x.G2,m=255&o,b=255&i,E=this.P(m+this.P(b))%12,I=this.P(m+c+this.P(b+l))%12,N=this.P(m+1+this.P(b+1))%12;return 70*(this.getCornerNoise3D(E,h,n,0,.5)+this.getCornerNoise3D(I,u,d,0,.5)+this.getCornerNoise3D(N,f,g,0,.5))}sample(t,e,s){const i=.3333333333333333*(t+e+s),n=Math.floor(t+i),r=Math.floor(e+i),o=Math.floor(s+i),h=.16666666666666666*(n+r+o),c=t-(n-h),l=e-(r-h),u=s-(o-h);let d,f,g,m,b,E;c>=l?l>=u?(d=1,f=0,g=0,m=1,b=1,E=0):c>=u?(d=1,f=0,g=0,m=1,b=0,E=1):(d=0,f=0,g=1,m=1,b=0,E=1):l127?e-256:e;for(let e=0;e<256;e+=1){const s=t.nextInt(256-e),i=this.p[e];this.p[e]=this.p[e+s],this.p[e+s]=i}}sample(t,e,s,i=0,n=0){const r=t+this.xo,o=e+this.yo,h=s+this.zo,c=Math.floor(r),l=Math.floor(o),u=Math.floor(h),d=r-c,f=o-l,g=h-u;let m=0;if(i!==0){const b=n>=0&&n=0;i-=1)i0&&(i=this.maxLimitNoise.getOctaveNoise(c))&&(h+=i.sample(d,f,g,u,e*u)/r),r/=2}return ft(o/512,h/512,n)/128}}(function(a){a.fromJson=function(t){var e,s,i,n,r;const o=(e=p.readObject(t))!==null&&e!==void 0?e:{};return{xzScale:(s=p.readNumber(o.xz_scale))!==null&&s!==void 0?s:1,yScale:(i=p.readNumber(o.y_scale))!==null&&i!==void 0?i:1,xzFactor:(n=p.readNumber(o.xz_factor))!==null&&n!==void 0?n:80,yFactor:(r=p.readNumber(o.y_factor))!==null&&r!==void 0?r:80}}})(Xt||(Xt={}));class J{constructor(t,{firstOctave:e,amplitudes:s}){this.first=new L(t,e,s),this.second=new L(t,e,s);let i=1/0,n=-1/0;for(let o=0;o{var o;return(o=p.readNumber(r))!==null&&o!==void 0?o:0}))!==null&&i!==void 0?i:[]}}}(it||(it={}));class Ss{constructor(t,e){const s=e[e.length-1],i=-e[0]+s+1,n=new Set(e),r=new x(t);this.noiseLevels=Array(i),s>=0&&s=0&&n.has(s-o)?this.noiseLevels[o]=new x(t):t.consume(262);if(s>0)throw new Error("Positive octaves are not allowed");this.highestFreqInputFactor=Math.pow(2,s),this.highestFreqValueFactor=1/(Math.pow(2,i)-1)}sample(t,e,s){let i=0,n=this.highestFreqInputFactor,r=this.highestFreqValueFactor;for(let o=0;o{var u;return(u=p.readObject(l))!==null&&u!==void 0?u:{}}))!==null&&i!==void 0?i:[];if(c.length===0)return new $t(0);for(const l of c){const u=(n=p.readNumber(l.location))!==null&&n!==void 0?n:0,d=a.fromJson(l.value,e),f=(r=p.readNumber(l.derivative))!==null&&r!==void 0?r:0;h.addPoint(u,d,f)}return h}})(ct||(ct={}));class $t{constructor(t){this.value=t}apply(){return this.value}toJson(){return this.value}}class _{constructor(t,e=[],s=[],i=[]){this.coordinate=t,this.locations=e,this.values=s,this.derivatives=i}apply(t){const e=this.coordinate.apply(t),s=qe(0,this.locations.length,g=>e({location:t,value:this.values[e].toJson(),derivative:this.derivatives[e]}))}}}const ot=a=>[(a>>16&255)/256,(a>>8&255)/256,(255&a)/256],q=[124/256,189/256,107/256],ts=ot(6396257),es=ot(8431445),ht=ot(4764952),Gt=ot(4159204),fe=ot(8431445),ss=ot(2129968),ge=a=>[a/8,1-a/32,64*a],pe={large_fern:()=>q,tall_grass:()=>q,grass_block:()=>q,fern:()=>q,grass:()=>q,potted_fern:()=>q,spruce_leaves:()=>ts,birch_leaves:()=>es,oak_leaves:()=>ht,jungle_leaves:()=>ht,acacia_leaves:()=>ht,dark_oak_leaves:()=>ht,vine:()=>ht,water:()=>Gt,bubble_column:()=>Gt,cauldron:()=>Gt,redstone_wire:a=>{var t;return(e=>{const s=e/15;return[.6*s+(s>0?.4:.3),Z(s*s*.7-.5,0,1),Z(s*s*.6-.7,0,1)]})(parseInt((t=a.power)!==null&&t!==void 0?t:"0"))},sugar_cane:()=>q,attached_melon_stem:()=>fe,attached_pumpkin_stem:()=>fe,melon_stem:a=>{var t;return ge(parseInt((t=a.age)!==null&&t!==void 0?t:"0"))},pumpkin_stem:a=>{var t;return ge(parseInt((t=a.age)!==null&&t!==void 0?t:"0"))},lily_pad:()=>ss};var qt;function Et(...a){let t=0;for(const i of a)t+=i.length;const e=new Float32Array(t);let s=0;for(const i of a)e.set(i,s),s+=i.length;return e}function It(a,t){const e=He();for(let s=0;sthis.matchesVariant(i,t));if(e.length===0)return[];const s=this.variants[e[0]];return[Array.isArray(s)?s[0]:s]}return this.multipart?this.multipart.filter(e=>!e.when||this.matchesCase(e.when,t)).map(e=>Array.isArray(e.apply)?e.apply[0]:e.apply):[]}getBuffers(t,e,s,i,n,r){var o,h,c,l;const u=this.getModelVariants(e),d=[],f=[],g=[],m=[];for(const I of u){const N=qt.rotate(r,(o=I.x)!==null&&o!==void 0?o:0,(h=I.y)!==null&&h!==void 0?h:0),w=i.getBlockModel(I.model).getBuffers(t,e,s,n,N);if(I.x||I.y){const S=et();zt(S),nt(S,S,[8,8,8]),De(S,S,-jt((c=I.y)!==null&&c!==void 0?c:0)),Me(S,S,-jt((l=I.x)!==null&&l!==void 0?l:0)),nt(S,S,[-8,-8,-8]),It(w.position,S)}d.push(w.position),f.push(...w.texCoord),g.push(...w.tintColor),m.push(...w.index),n+=w.texCoord.length/2}const b=et();zt(b),Ie(b,b,[.0625,.0625,.0625]);const E=Et(...d);return It(E,b),{position:E,texCoord:f,tintColor:g,index:m}}matchesVariant(t,e){return t.split(",").every(s=>{const[i,n]=s.split("=");return e[i]===n})}matchesCase(t,e){if(Array.isArray(t.OR))return t.OR.some(i=>this.matchesCase(i,e));const s=t;return Object.keys(s).every(i=>s[i].split("|").includes(e[i]))}static fromJson(t,e){return new oe(t,e.variants,e.multipart)}}const is={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]},ns={x:[1,0,0],y:[0,1,0],z:[0,0,1]},K=1.41421356237,rs={x:[1,K,K],y:[K,1,K],z:[K,K,1]};class Nt{constructor(t,e,s,i){this.id=t,this.parent=e,this.textures=s,this.elements=i,this.flattened=!1}getBuffers(t,e,s,i,n){var r;const o=[],h=[],c=[],l=[];for(const u of(r=this.elements)!==null&&r!==void 0?r:[]){const d=this.getElementBuffers(t,e,u,i,s,n);o.push(d.position),h.push(...d.texCoord),c.push(...d.tintColor),l.push(...d.index),i+=d.texCoord.length/2}return{position:Et(...o),texCoord:h,tintColor:c,index:l}}getElementBuffers(t,e,s,i,n,r){var o,h,c,l,u,d,f,g,m,b,E,I;const N=s.from[0],w=s.from[1],S=s.from[2],A=s.to[0],y=s.to[1],T=s.to[2],Q=[],V=[],Y=[],z=[],G=(U,D,Ce)=>{var At,yt,Pt,Ft,Rt,Bt,xt,Tt,Ct,_t,kt,Dt;const[at,lt,_e,ke]=n.getTextureUV(this.getTexture(U.texture)),Mt=(_e-at)/16,Ot=(ke-lt)/16,ae=Mt/16,le=Ot/16;D[0]=((yt=(At=U.uv)===null||At===void 0?void 0:At[0])!==null&&yt!==void 0?yt:D[0])*Mt+ae,D[1]=((Ft=(Pt=U.uv)===null||Pt===void 0?void 0:Pt[1])!==null&&Ft!==void 0?Ft:D[1])*Ot+le,D[2]=((Bt=(Rt=U.uv)===null||Rt===void 0?void 0:Rt[2])!==null&&Bt!==void 0?Bt:D[2])*Mt-ae,D[3]=((Tt=(xt=U.uv)===null||xt===void 0?void 0:xt[3])!==null&&Tt!==void 0?Tt:D[3])*Ot-le;const X=is[(Ct=U.rotation)!==null&&Ct!==void 0?Ct:0];V.push(at+D[X[0]],lt+D[X[1]],at+D[X[2]],lt+D[X[3]],at+D[X[4]],lt+D[X[5]],at+D[X[6]],lt+D[X[7]]);const mt=((_t=U.tintindex)!==null&&_t!==void 0?_t:-1)>=0&&(Dt=(kt=pe[t.slice(10)])===null||kt===void 0?void 0:kt.call(pe,e))!==null&&Dt!==void 0?Dt:[1,1,1];Y.push(...mt,...mt,...mt,...mt),Q.push(...Ce),z.push(i,i+1,i+2,i,i+2,i+3),i+=4};!(!((h=(o=s.faces)===null||o===void 0?void 0:o.up)===null||h===void 0)&&h.texture)||s.faces.up.cullface&&r[s.faces.up.cullface]||G(s.faces.up,[N,16-T,A,16-S],[N,y,T,A,y,T,A,y,S,N,y,S]),!(!((l=(c=s.faces)===null||c===void 0?void 0:c.down)===null||l===void 0)&&l.texture)||s.faces.down.cullface&&r[s.faces.down.cullface]||G(s.faces.down,[16-T,16-A,16-S,16-N],[N,w,S,A,w,S,A,w,T,N,w,T]),!(!((d=(u=s.faces)===null||u===void 0?void 0:u.south)===null||d===void 0)&&d.texture)||s.faces.south.cullface&&r[s.faces.south.cullface]||G(s.faces.south,[N,16-y,A,16-w],[N,w,T,A,w,T,A,y,T,N,y,T]),!(!((g=(f=s.faces)===null||f===void 0?void 0:f.north)===null||g===void 0)&&g.texture)||s.faces.north.cullface&&r[s.faces.north.cullface]||G(s.faces.north,[16-A,16-y,16-N,16-w],[A,w,S,N,w,S,N,y,S,A,y,S]),!(!((b=(m=s.faces)===null||m===void 0?void 0:m.east)===null||b===void 0)&&b.texture)||s.faces.east.cullface&&r[s.faces.east.cullface]||G(s.faces.east,[16-T,16-y,16-S,16-w],[A,w,T,A,w,S,A,y,S,A,y,T]),!(!((I=(E=s.faces)===null||E===void 0?void 0:E.west)===null||I===void 0)&&I.texture)||s.faces.west.cullface&&r[s.faces.west.cullface]||G(s.faces.west,[S,16-y,T,16-w],[N,w,S,N,w,T,N,y,T,N,y,S]);const O=et();if(zt(O),s.rotation){const U=bt(...s.rotation.origin);nt(O,O,U),Oe(O,O,jt(s.rotation.angle),ns[s.rotation.axis]),s.rotation.rescale&&Ie(O,O,rs[s.rotation.axis]),Le(U,U),nt(O,O,U)}const pt=new Float32Array(Q);return It(pt,O),{position:pt,texCoord:V,tintColor:Y,index:z}}getTexture(t){for(var e,s;t.startsWith("#");)t=(s=(e=this.textures)===null||e===void 0?void 0:e[t.slice(1)])!==null&&s!==void 0?s:"";return t.startsWith("minecraft:")||(t="minecraft:"+t),t}flatten(t){var e;if(!this.flattened&&this.parent){const s=t.getBlockModel(this.parent);if(!s)return console.warn(`parent ${this.parent} does not exist!`),void(this.flattened=!0);s.flatten(t),this.elements||(this.elements=s.elements),this.textures||(this.textures={}),Object.keys((e=s.textures)!==null&&e!==void 0?e:{}).forEach(i=>{this.textures[i]||(this.textures[i]=s.textures[i])}),this.flattened=!0}}static fromJson(t,e){let s=e.parent;return s&&!s.startsWith("minecraft:")&&(s="minecraft:"+s),new Nt(t,s,e.textures,e.elements)}}class Yt{constructor(t,e,s){this.gl=t,this.program=this.initShaderProgram(e,s)}getProgram(){return this.program}initShaderProgram(t,e){const s=this.loadShader(this.gl.VERTEX_SHADER,t),i=this.loadShader(this.gl.FRAGMENT_SHADER,e),n=this.gl.createProgram();if(this.gl.attachShader(n,s),this.gl.attachShader(n,i),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 s=this.gl.createShader(t);if(this.gl.shaderSource(s,e),this.gl.compileShader(s),!this.gl.getShaderParameter(s,this.gl.COMPILE_STATUS)){const i=new Error(`Compiling ${t===this.gl.VERTEX_SHADER?"vertex":"fragment"} shader: ${this.gl.getShaderInfoLog(s)}`);throw this.gl.deleteShader(s),i}return s}}function Re(a,t,e,s,i){const n=new oe("",{"":{model:""}},void 0),r={getBlockModel:()=>i};return i.flatten(r),n.getBuffers(a,{},t,r,e,s)}function me(a,t,e,s,i,n){const r=i.up?16:[14.2,12.5,10.5,9,7,5.3,3.7,1.9,16,16,16,16,16,16,16,16][e];return Re(`minecraft:${a}`,s,t,i,new Nt("","",{still:`minecraft:block/${a}_still`,flow:`minecraft:block/${a}_flow`},[{from:[0,0,0],to:[16,r,16],faces:{up:{texture:"#still",tintindex:n,cullface:F.UP},down:{texture:"#still",tintindex:n,cullface:F.DOWN},north:{texture:"#flow",tintindex:n,cullface:F.NORTH},east:{texture:"#flow",tintindex:n,cullface:F.EAST},south:{texture:"#flow",tintindex:n,cullface:F.SOUTH},west:{texture:"#flow",tintindex:n,cullface:F.WEST}}}]))}const Be={"minecraft:water":(a,t,e,s)=>me("water",a,parseInt(t.level),e,s,0),"minecraft:lava":(a,t,e,s)=>me("lava",a,parseInt(t.level),e,s),"minecraft:chest":(a,t,e)=>function(s,i,n,r){return Re("minecraft:chest",r,s,{},new Nt("","",{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"}}}]))}(a,t.facing,t.type,e)},os=new Set(Object.keys(Be));class Es{constructor(t,e,s,i){var n,r;this.gl=t,this.structure=e,this.resources=s,this.chunks=[],i!=null&&i.facesPerBuffer&&console.warn("webgl render warning: facesPerBuffer option has been removed in favor of chunkSize"),this.chunkSize=(n=i==null?void 0:i.chunkSize)!==null&&n!==void 0?n:16,this.useInvisibleBlockBuffer=(r=i==null?void 0:i.useInvisibleBlockBuffer)===null||r===void 0||r,this.shaderProgram=new Yt(t,` attribute vec4 vertPos; attribute vec2 texCoord; attribute vec3 tintColor; @@ -84,4 +84,4 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */function ve(a,t,e,s){return new(e||(e=Promise))(function(i,n){function r(c){try{h(s.next(c))}catch(l){n(l)}}function o(c){try{h(s.throw(c))}catch(l){n(l)}}function h(c){var l;c.done?i(c.value):(l=c.value,l instanceof e?l:new e(function(u){u(l)})).then(r,o)}h((s=s.apply(a,t||[])).next())})}class St{constructor(t,e){this.img=t,this.idMap=e,this.part=16/t.width}getTextureAtlas(){return this.img}getTextureUV(t){var e;return(e=this.idMap[t])!==null&&e!==void 0?e:[0,0,this.part,this.part]}static fromBlobs(t){return ve(this,void 0,void 0,function*(){const e=Math.sqrt(Object.keys(t).length+1),s=Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))),i=16*s,n=1/s,r=document.createElement("canvas");r.width=i,r.height=i;const o=r.getContext("2d");this.drawInvalidTexture(o);const h={};let c=1;return yield Promise.all(Object.keys(t).map(l=>ve(this,void 0,void 0,function*(){const u=c%s,d=Math.floor(c/s);c+=1,h[l]=[n*u,n*d,n*u+n,n*d+n];const f=yield createImageBitmap(t[l]);o.drawImage(f,0,0,16,16,16*u,16*d,16,16)}))),new St(o.getImageData(0,0,i,i),h)})}static empty(){const t=document.createElement("canvas");t.width=16,t.height=16;const e=t.getContext("2d");return St.drawInvalidTexture(e),new St(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 gt,Qt,B,tt,Kt,v,te,dt,ee,se,Ht,be,Vt;(function(a){function t(c,l){return typeof c=="number"?new e(c,l!=null?l:c):c}a.target=function(c,l,u,d,f,g){return new i(c,l,u,d,f,g)},a.parameters=function(c,l,u,d,f,g,m){return new s(t(c),t(l),t(u),t(d),t(f),t(g),m)},a.param=t;class e{constructor(l,u){this.min=l,this.max=u}distance(l){const u=(typeof l=="number"?l:l.min)-this.max,d=this.min-(typeof l=="number"?l:l.max);return u>0?u:Math.max(d,0)}union(l){return new e(Math.min(this.min,l.min),Math.max(this.max,l.max))}static fromJson(l){var u;if(typeof l=="number")return new e(l,l);const[d,f]=(u=p.readArray(l,g=>p.readNumber(g)))!==null&&u!==void 0?u:[];return new e(d!=null?d:0,f!=null?f:0)}}a.Param=e;class s{constructor(l,u,d,f,g,m,b){this.temperature=l,this.humidity=u,this.continentalness=d,this.erosion=f,this.depth=g,this.weirdness=m,this.offset=b}fittness(l){return j(this.temperature.distance(l.temperature))+j(this.humidity.distance(l.humidity))+j(this.continentalness.distance(l.continentalness))+j(this.erosion.distance(l.erosion))+j(this.depth.distance(l.depth))+j(this.weirdness.distance(l.weirdness))+j(this.offset-l.offset)}space(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,new e(this.offset,this.offset)]}static fromJson(l){var u,d;const f=(u=p.readObject(l))!==null&&u!==void 0?u:{};return new s(e.fromJson(f.temperature),e.fromJson(f.humidity),e.fromJson(f.continentalness),e.fromJson(f.erosion),e.fromJson(f.depth),e.fromJson(f.weirdness),(d=p.readInt(f.offset))!==null&&d!==void 0?d:0)}}a.ParamPoint=s;class i{constructor(l,u,d,f,g,m){this.temperature=l,this.humidity=u,this.continentalness=d,this.erosion=f,this.depth=g,this.weirdness=m}get offset(){return 0}toArray(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,this.offset]}}a.TargetPoint=i,a.Parameters=class{constructor(c){this.things=c,this.index=new n(c)}find(c){return this.index.search(c,(l,u)=>l.distance(u))}};class n{constructor(l){this.root=n.build(l.map(([u,d])=>new h(u,d)))}static build(l){if(l.length===1)return l[0];if(l.length<=n.CHILDREN_PER_NODE){const g=l.map(m=>{let b=0;for(let E=0;E<7;E+=1){const I=m.space[E];b+=Math.abs((I.min+I.max)/2)}return{key:b,node:m}}).sort((m,b)=>m.key-b.key).map(({node:m})=>m);return new o(g)}let u=1/0,d=-1,f=[];for(let g=0;g<7;++g){l=n.sort(l,g,!1),f=n.bucketize(l);let m=0;for(const b of f)m+=n.area(b.space);u>m&&(u=m,d=g)}return l=n.sort(l,d,!1),f=n.bucketize(l),f=n.sort(f,d,!0),new o(f.map(g=>n.build(g.children)))}static sort(l,u,d){return l.map(f=>{const g=f.space[u],m=(g.min+g.max)/2;return{key:d?Math.abs(m):m,node:f}}).sort((f,g)=>f.key-g.key).map(({node:f})=>f)}static bucketize(l){const u=[];let d=[];const f=Math.pow(10,Math.floor(Math.log(l.length-.01)/Math.log(10)));for(const g of l)d.push(g),d.lengthnew e(1/0,-1/0));for(const d of l)u=[...Array(7)].map((f,g)=>u[g].union(d.space[g]));return u}search(l,u){let d=1/0,f=null;for(const g of this.children){const m=u(g,l);if(d<=m)continue;const b=g.search(l,u),E=g==b?m:u(b,l);d<=E||(d=E,f=b)}return f}}a.RSubTree=o;class h extends r{constructor(l,u){super(l.space()),this.thing=u}search(){return this}}a.RLeaf=h})(gt||(gt={}));class xe{constructor(t){this.biome=t}getBiome(){return this.biome}static fromJson(t){var e,s;const i=(e=p.readObject(t))!==null&&e!==void 0?e:{},n=(s=p.readString(i.biome))!==null&&s!==void 0?s:"minecraft:the_void";return new xe(n)}}class Te{constructor(t){this.parameters=t}getBiome(t,e,s,i){const n=i(t,e,s);return this.parameters.find(n)}static fromJson(t){var e,s;const i=(e=p.readObject(t))!==null&&e!==void 0?e:{},n=((s=p.readArray(i.biomes,r=>{var o;return(h=>{var c;return{biome:(c=p.readString(h.biome))!==null&&c!==void 0?c:"minecraft:the_void",parameters:gt.ParamPoint.fromJson(h.parameters)}})((o=p.readObject(r))!==null&&o!==void 0?o:{})}))!==null&&s!==void 0?s:[]).map(r=>[r.parameters,()=>r.biome]);return new Te(new gt.Parameters(n))}}class C{constructor(t,e,s){this.offsetSampler=t,this.factorSampler=e,this.jaggednessSampler=s}static extractor(t){return{apply:e=>e[t],toJson:()=>t}}static fromJson(t){var e;const s=(e=p.readObject(t))!==null&&e!==void 0?e:{};return new C(ct.fromJson(s.offset,this.EXTRACTOR),ct.fromJson(s.factor,this.EXTRACTOR),ct.fromJson(s.jaggedness,this.EXTRACTOR))}toJson(){return{offset:this.offsetSampler.toJson(),factor:this.factorSampler.toJson(),jaggedness:this.jaggednessSampler.toJson()}}offset(t){return this.offsetSampler.apply(t)+C.GLOBAL_OFFSET}factor(t){return this.factorSampler.apply(t)}jaggedness(t){return this.jaggednessSampler.apply(t)}static point(t,e,s){return{continents:t,erosion:e,weirdness:s,ridges:this.peaksAndValleys(s)}}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),s=this.buildErosionOffsetSpline(-.1,.03,.1,.7,.01,-.03,!0,!0),i=this.buildErosionOffsetSpline(.3,.03,.1,1,.01,.01,!0,!0),n=new _(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,s).addPoint(1,i),r=new _(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 _(this.CONTINENTS).addPoint(.11,0).addPoint(.03,this.buildErosionJaggednessSpline(1,.5,0,0)).addPoint(.65,this.buildErosionJaggednessSpline(1,1,1,0));return new C(n,r,o)}static getErosionFactor(t,e){const s=new _(this.WEIRDNESS).addPoint(-.2,6.3).addPoint(.2,t),i=new _(this.EROSION).addPoint(-.6,s).addPoint(-.5,new _(this.WEIRDNESS).addPoint(-.05,6.3).addPoint(.05,2.67)).addPoint(-.35,s).addPoint(-.25,s).addPoint(-.1,new _(this.WEIRDNESS).addPoint(-.05,2.67).addPoint(.05,6.3)).addPoint(.03,s);if(e){const n=new _(this.WEIRDNESS).addPoint(0,t).addPoint(.1,.625),r=new _(this.RIDGES).addPoint(-.9,t).addPoint(-.69,n);i.addPoint(.35,t).addPoint(.45,r).addPoint(.55,r).addPoint(.62,t)}else{const n=new _(this.RIDGES).addPoint(-.7,s).addPoint(-.15,1.37),r=new _(this.RIDGES).addPoint(.45,s).addPoint(.7,1.56);i.addPoint(.05,r).addPoint(.4,r).addPoint(.45,n).addPoint(.55,n).addPoint(.58,t)}return i}static buildErosionOffsetSpline(t,e,s,i,n,r,o,h){const c=this.buildMountainRidgeSplineWithPoints(k(i,.6,1.5),h),l=this.buildMountainRidgeSplineWithPoints(k(i,.6,1),h),u=this.buildMountainRidgeSplineWithPoints(i,h),d=this.ridgeSpline(t-.15,.5*i,k(.5,.5,.5)*i,.5*i,.6*i,.5),f=this.ridgeSpline(t,n*i,e*i,.5*i,.6*i,.5),g=this.ridgeSpline(t,n,n,e,s,.5),m=this.ridgeSpline(t,n,n,e,s,.5),b=new _(this.RIDGES).addPoint(-1,t).addPoint(-.4,g).addPoint(0,s+.07),E=this.ridgeSpline(-.02,r,r,e,s,0),I=new _(this.EROSION).addPoint(-.85,c).addPoint(-.7,l).addPoint(-.4,u).addPoint(-.35,d).addPoint(-.1,f).addPoint(.2,g);return o&&I.addPoint(.4,m).addPoint(.45,b).addPoint(.55,b).addPoint(.58,m),I.addPoint(.7,E),I}static buildMountainRidgeSplineWithPoints(t,e){const s=new _(this.RIDGES),i=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 _(C.WEIRDNESS).addPoint(-.01,.63*t).addPoint(.01,.3*t)}}C.GLOBAL_OFFSET=-.50375,C.EXTRACTOR=a=>{var t;const e=(t=p.readString(a))!==null&&t!==void 0?t:"continents";return C.extractor(e)},C.CONTINENTS=C.extractor("continents"),C.EROSION=C.extractor("erosion"),C.WEIRDNESS=C.extractor("weirdness"),C.RIDGES=C.extractor("ridges"),function(a){a.fromList=function(t){return(e,s,i,n)=>{for(const r of t){const o=r(e,s,i,n);if(o)return o}return null}}}(Qt||(Qt={})),function(a){function t(e){return e.ySize<<2}a.fromJson=function(e){var s,i,n,r,o,h,c,l;const u=(s=p.readObject(e))!==null&&s!==void 0?s:{};return{minY:(i=p.readInt(u.min_y))!==null&&i!==void 0?i:0,height:(n=p.readInt(u.height))!==null&&n!==void 0?n:256,xzSize:(r=p.readInt(u.size_horizontal))!==null&&r!==void 0?r:1,ySize:(o=p.readInt(u.size_vertical))!==null&&o!==void 0?o:1,sampling:Xt.fromJson(u.sampling),topSlide:tt.fromJson(u.top_slide),bottomSlide:tt.fromJson(u.bottom_slide),terrainShaper:C.fromJson(u.terrain_shaper),islandNoiseOverride:(h=p.readBoolean(u.island_noise_override))!==null&&h!==void 0&&h,isAmplified:(c=p.readBoolean(u.amplified))!==null&&c!==void 0&&c,hasLargeBiomes:(l=p.readBoolean(u.large_biomes))!==null&&l!==void 0&&l}},a.cellHeight=t,a.cellWidth=function(e){return e.xzSize<<2},a.cellCountY=function(e){return e.height/t(e)},a.minCellY=function(e){return Math.floor(e.minY/t(e))}}(B||(B={})),function(a){a.fromJson=function(t){var e,s,i,n;const r=(e=p.readObject(t))!==null&&e!==void 0?e:{};return{target:(s=p.readNumber(r.target))!==null&&s!==void 0?s:0,size:(i=p.readInt(r.size))!==null&&i!==void 0?i:0,offset:(n=p.readInt(r.offset))!==null&&n!==void 0?n:0}},a.apply=function(t,e,s){if(t.size<=0)return e;const i=(s-t.offset)/t.size;return ft(t.target,e,i)}}(tt||(tt={}));class wt{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=wt.allocateSlice(t.cellCountY,t.cellCountXZ),this.slice1=wt.allocateSlice(t.cellCountY,t.cellCountXZ)}static allocateSlice(t,e){const s=Array(e+1);for(let i=0;i>2,this.firstNoiseZ=r>>2,this.interpolators=[];const l=t*c>>2;this.noiseData=Array(l+1);for(let u=0;u<=l;u+=1){const d=this.firstNoiseX+u;this.noiseData[u]=Array(l+1);for(let f=0;f<=l;f+=1){const g=this.firstNoiseZ+f;this.noiseData[u][f]=i.noiseData(d,g)}}this.preliminarySurfaceLevel=new Map,this.baseNoise=i.makeBaseNoiseFiller(this,o,h.noodleCavesEnabled)}getNoiseData(t,e){return this.noiseData[t-this.firstNoiseX][e-this.firstNoiseZ]}getPreliminarySurfaceLevel(t,e){return re(this.preliminarySurfaceLevel,H.asLong(t,e),()=>{const s=t-this.firstNoiseX,i=e-this.firstNoiseZ,n=this.noiseData.length,r=s>=0&&i>=0&&st.initializeForFirstCellX())}advanceCellX(t){this.interpolators.forEach(e=>e.advanceCellX(t))}selectCellYZ(t,e){this.interpolators.forEach(s=>s.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,s){return this.baseNoise(t,e,s)}}(function(a){a.create=function(t,e,s){return{offset:t,factor:e,jaggedness:s}}})(Kt||(Kt={})),function(a){const t=new Map;function e(s,i,n){const r=Object.assign({name:`minecraft:${s}`},it.create(i,n));return t.set(s,r),r}a.TEMPERATURE=e("temperature",-10,[1.5,0,1,0,0,0]),a.VEGETATION=e("vegetation",-8,[1,1,0,0,0,0]),a.CONTINENTALNESS=e("continentalness",-9,[1,1,2,2,2,1,1,1,1]),a.EROSION=e("erosion",-9,[1,1,0,1,1]),a.TEMPERATURE_LARGE=e("temperature_large",-12,[1.5,0,1,0,0,0]),a.VEGETATION_LARGE=e("vegetation_large",-10,[1,1,0,0,0,0]),a.CONTINENTALNESS_LARGE=e("continentalness_large",-11,[1,1,2,2,2,1,1,1,1]),a.EROSION_LARGE=e("erosion_large",-11,[1,1,0,1,1]),a.RIDGE=e("ridge",-7,[1,2,1,0,0,0]),a.SHIFT=e("offset",-3,[1,1,1,0]),a.PILLAR=e("pillar",-7,[1,1]),a.PILLAR_RARENESS=e("pillar_rareness",-8,[1]),a.PILLAR_THICKNESS=e("pillar_thickness",-8,[1]),a.SPAGHETTI_2D=e("spaghetti_2d",-8,[1]),a.SPAGHETTI_2D_ELEVATION=e("spaghetti_2d_elevation",-8,[1]),a.SPAGHETTI_2D_MODULATOR=e("spaghetti_2d_modulator",-8,[1]),a.SPAGHETTI_2D_THICKNESS=e("spaghetti_2d_thickness",-8,[1]),a.SPAGHETTI_3D_1=e("spaghetti_3d_1",-8,[1]),a.SPAGHETTI_3D_2=e("spaghetti_3d_2",-8,[1]),a.SPAGHETTI_3D_RARITY=e("spaghetti_3d_rarity",-8,[1]),a.SPAGHETTI_3D_THICKNESS=e("spaghetti_3d_thickness",-8,[1]),a.SPAGHETTI_ROUGHNESS=e("spaghetti_roughness",-8,[1]),a.SPAGHETTI_ROUGHNESS_MODULATOR=e("spaghetti_roughness_modulator",-8,[1]),a.CAVE_ENTRANCE=e("cave_entrance",-7,[.4,.5,1]),a.CAVE_LAYER=e("cave_layer",-8,[1]),a.CAVE_CHEESE=e("cave_cheese",-8,[.5,1,2,1,2,1,0,2,0]),a.NOODLE=e("noodle",-8,[1]),a.NOODLE_THICKNESS=e("noodle_thickness",-8,[1]),a.NOODLE_RIDGE_A=e("noodle_ridge_a",-7,[1]),a.NOODLE_RIDGE_B=e("noodle_ridge_b",-7,[1]),a.JAGGED=e("jagged",-16,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),a.SURFACE=e("surface",-6,[1,1,1]),a.SURFACE_SECONDARY=e("surface_secondary",-6,[1,1,0,1]),a.instantiate=function(s,i){return new J(s.fromHashOf(i.name),i)}}(v||(v={}));class ls{constructor(t,e,s,i=!1){this.settings=t,this.isNoiseCavesEnabled=e;const n=t.hasLargeBiomes,r=(i?new R(s):P.create(s)).forkPositional();i?(this.blendedNoise=new de(new R(s),t.sampling,B.cellWidth(t),B.cellHeight(t)),this.temperatureNoise=new J(new R(s),it.create(-7,[1,1])),this.humidityNoise=new J(new R(s+BigInt(1)),it.create(-7,[1,1])),this.offsetNoise=new J(new R(s+BigInt(5)),it.create(0,[0]))):(this.blendedNoise=new de(r.fromHashOf("minecraft:terrain"),t.sampling,B.cellWidth(t),B.cellHeight(t)),this.temperatureNoise=v.instantiate(r,n?v.TEMPERATURE_LARGE:v.TEMPERATURE),this.humidityNoise=v.instantiate(r,n?v.VEGETATION_LARGE:v.VEGETATION),this.offsetNoise=v.instantiate(r,v.SHIFT)),this.continentalnessNoise=v.instantiate(r,n?v.CONTINENTALNESS_LARGE:v.CONTINENTALNESS),this.erosionNoise=v.instantiate(r,n?v.EROSION_LARGE:v.EROSION),this.weirdnessNoise=v.instantiate(r,v.RIDGE),this.pillarNoise=v.instantiate(r,v.PILLAR),this.pillarRarenessModulator=v.instantiate(r,v.PILLAR_RARENESS),this.pillarThicknessModulator=v.instantiate(r,v.PILLAR_THICKNESS),this.spaghetti2DNoise=v.instantiate(r,v.SPAGHETTI_2D),this.spaghetti2DElevationModulator=v.instantiate(r,v.SPAGHETTI_2D_ELEVATION),this.spaghetti2DRarityModulator=v.instantiate(r,v.SPAGHETTI_2D_MODULATOR),this.spaghetti2DThicknessModulator=v.instantiate(r,v.SPAGHETTI_2D_THICKNESS),this.spaghetti3DNoise1=v.instantiate(r,v.SPAGHETTI_3D_1),this.spaghetti3DNoise2=v.instantiate(r,v.SPAGHETTI_3D_2),this.spaghetti3DRarityModulator=v.instantiate(r,v.SPAGHETTI_3D_RARITY),this.spaghetti3DThicknessModulator=v.instantiate(r,v.SPAGHETTI_3D_THICKNESS),this.spaghettiRoughnessNoise=v.instantiate(r,v.SPAGHETTI_ROUGHNESS),this.spaghettiRoughnessModulator=v.instantiate(r,v.SPAGHETTI_ROUGHNESS_MODULATOR),this.bigEntranceNoise=v.instantiate(r,v.CAVE_ENTRANCE),this.layerNoise=v.instantiate(r,v.CAVE_LAYER),this.cheeseNoise=v.instantiate(r,v.CAVE_CHEESE);const o=t.minY+4,h=o+t.height;this.noodleToggleNoise=this.yLimitedInterpolatable(v.instantiate(r,v.NOODLE),o,h,-1,1),this.noodleThicknessNoise=this.yLimitedInterpolatable(v.instantiate(r,v.NOODLE_THICKNESS),o,h,0,1),this.noodleRidgeANoise=this.yLimitedInterpolatable(v.instantiate(r,v.NOODLE_RIDGE_A),o,h,0,8/3),this.noodleRidgeBNoise=this.yLimitedInterpolatable(v.instantiate(r,v.NOODLE_RIDGE_B),o,h,0,8/3),this.jaggedNoise=v.instantiate(r,v.JAGGED),this.shaper=t.terrainShaper,this.baseNoise=c=>c.createNoiseInterpolator((l,u,d)=>this.calculateBlendedBaseNoise(l,u,d,c.getNoiseData(l>>2,d>>2).terrainInfo))}yLimitedInterpolatable(t,e,s,i,n){const r=(o,h,c)=>h>s||ho.createNoiseInterpolator(r)}noiseData(t,e){const s=t+this.getOffset(t,0,e),i=e+this.getOffset(e,t,0),n=this.getContinentalness(s,i),r=this.getErosion(s,i),o=this.getWeirdness(s,i),h=this.terrainInfo(n,r,o);return te.create(s,i,n,r,o,h)}sample(t,e,s){return this.target(t,e,s,this.noiseData(t,s))}target(t,e,s,i){const n=i.shiftedX,r=e+this.getOffset(e,s,t),o=i.shiftedZ,h=this.getTemperature(n,r,o),c=this.getHumidity(n,r,o),l=this.computeDimensionDensity(e<<2,i.terrainInfo);return gt.target(h,c,i.continentalness,i.erosion,l,i.weirdness)}terrainInfo(t,e,s){const i=C.point(t,e,s),n=this.shaper.offset(i),r=this.shaper.factor(i),o=this.shaper.jaggedness(i);return Kt.create(n,r,o)}getOffset(t,e,s){return 4*this.offsetNoise.sample(t,e,s)}getTemperature(t,e,s){return this.temperatureNoise.sample(t,e,s)}getHumidity(t,e,s){return this.humidityNoise.sample(t,e,s)}getContinentalness(t,e){return this.continentalnessNoise.sample(t,0,e)}getErosion(t,e){return this.erosionNoise.sample(t,0,e)}getWeirdness(t,e){return this.weirdnessNoise.sample(t,0,e)}makeBaseNoiseFiller(t,e,s){const i=this.baseNoise(t),n=s?this.noodleToggleNoise(t):()=>-1,r=s?this.noodleThicknessNoise(t):()=>0,o=s?this.noodleRidgeANoise(t):()=>0,h=s?this.noodleRidgeBNoise(t):()=>0;return(c,l,u)=>{let d=i();if(d=Z(.64*d,-1,1),d=d/2-d*d*d/24,n()>=0){const f=$e(r(),-1,1,.05,.1),g=Math.abs(1.5*o())-f,m=Math.abs(1.5*h())-f;d=Math.min(d,Math.max(g,m))}return d+=e(c,l,u),d>0?null:M.AIR}}calculateBlendedBaseNoise(t,e,s,i){const n=this.blendedNoise.sample(t,e,s);return this.calculateBaseNoise(t,e,s,i,n,!this.isNoiseCavesEnabled,!0)}calculateBaseNoise(t,e,s,i,n,r,o){if(!this.settings.islandNoiseOverride){const l=o?this.sampleJaggedNoise(i.jaggedness,t,s):0,u=this.computeDimensionDensity(e,i),d=i.factor*(l+u);n+=d>0?4*d:d}let h=-64,c=64;if(!r&&n>=-64){const l=n-1.5625,u=this.getBigEntrances(t,e,s),d=this.getSpaghettiRoughness(t,e,s),f=this.getSpaghetti3D(t,e,s),g=Math.min(u,f+d);if(l<0)c=g;else{const m=this.getLayerizedCaverns(t,e,s);m>64?n=64:n=this.getCheese(t,e,s)+m+ft(.5,0,1.28*l);const b=this.getSpaghetti2D(t,e,s);h=this.getPillars(t,e,s),c=Math.min(g,b+d)}}return n=Z(n,h,c),n=Z(n=this.applySlide(n,e/B.cellHeight(this.settings)),-64,64)}sampleJaggedNoise(t,e,s){if(t===0)return 0;const i=this.jaggedNoise.sample(1500*e,0,1500*s);return i>0?t*i:t/2*i}computeDimensionDensity(t,e){return 1-t/128+e.offset}getBigEntrances(t,e,s){return this.bigEntranceNoise.sample(.75*t,.5*e,.75*s)+.37+ft(.3,0,(e+10)/40)}getSpaghettiRoughness(t,e,s){const i=this.spaghettiRoughnessNoise.sample(t,e,s),n=W(this.spaghettiRoughnessModulator.sample(t,e,s),-1,1,0,1);return(.4-Math.abs(i))*n}getSpaghetti2D(t,e,s){const i=this.quantizeSpaghettiRarity2D(this.spaghetti2DRarityModulator.sample(2*t,e,2*s)),n=W(this.spaghetti2DThicknessModulator.sample(2*t,e,2*s),-1,1,.6,1.3),r=this.sampleWithRarity(this.spaghetti2DNoise,t,e,s,i),o=Math.abs(i*r)-.083*n,h=B.minCellY(this.settings),c=W(this.spaghetti2DElevationModulator.sample(t,0,s),-1,1,h,8),l=Math.abs(c-e/8)-1*n;return Z(Math.max(l,o),-1,1)}getSpaghetti3D(t,e,s){const i=this.quantizeSpaghettiRarity3D(this.spaghetti3DRarityModulator.sample(2*t,e,2*s)),n=W(this.spaghetti3DThicknessModulator.sample(t,e,s),-1,1,.065,.088),r=this.sampleWithRarity(this.spaghetti3DNoise1,t,e,s,i),o=Math.abs(i*r)-n,h=this.sampleWithRarity(this.spaghetti3DNoise2,t,e,s,i),c=Math.abs(i*h)-n;return Z(Math.max(o,c),-1,1)}quantizeSpaghettiRarity2D(t){return t<-.75?.5:t<-.5?.75:t<.5?1:t<.75?2:3}quantizeSpaghettiRarity3D(t){return t<-.5?.75:t<0?1:t<.5?1.5:2}sampleWithRarity(t,e,s,i,n){return t.sample(e/n,s/n,i/n)}getLayerizedCaverns(t,e,s){return 4*j(this.layerNoise.sample(t,8*e,s))}getCheese(t,e,s){return Z(this.cheeseNoise.sample(t,e/1.5,s)+.27,-1,1)}getPillars(t,e,s){const i=W(this.pillarRarenessModulator.sample(t,e,s),-1,1,0,2),n=W(this.pillarThicknessModulator.sample(t,e,s),-1,1,0,1.1),r=this.pillarNoise.sample(25*t,.3*e,25*s),o=Math.pow(n,3)*(2*r-i);return o<=.03?Number.MIN_SAFE_INTEGER:o}applySlide(t,e){const s=e-B.minCellY(this.settings);return t=tt.apply(this.settings.topSlide,t,B.cellCountY(this.settings)-s),t=tt.apply(this.settings.bottomSlide,t,s)}getPreliminarySurfaceLevel(t,e,s){const i=B.minCellY(this.settings)+B.cellCountY(this.settings),n=B.minCellY(this.settings),r=B.cellHeight(this.settings);for(let o=i;o>=n;o-=1){const h=o*r;if(this.calculateBaseNoise(t,h,e,s,-.703125,!0,!1)>=.390625)return h}return Number.MAX_SAFE_INTEGER}}(function(a){a.create=function(t,e,s,i,n,r){return{shiftedX:t,shiftedZ:e,continentalness:s,weirdness:i,erosion:n,terrainInfo:r}}})(te||(te={})),function(a){a.fromJson=function(t){var e,s,i,n;const r=(e=p.readObject(t))!==null&&e!==void 0?e:{};return r.absolute!==void 0?(o=(s=p.readNumber(r.absolute))!==null&&s!==void 0?s:0,()=>o):r.above_bottom!==void 0?function(h){return c=>c.minY+h}((i=p.readNumber(r.above_bottom))!==null&&i!==void 0?i:0):r.below_top!==void 0?function(h){return c=>c.maxY-h}((n=p.readNumber(r.below_top))!==null&&n!==void 0?n:0):()=>0;var o}}(dt||(dt={})),function(a){a.create=function(t,e){return{minY:t,height:e,maxY:t+e-1}}}(ee||(ee={}));class hs{constructor(t,e,s){this.rule=t,this.defaultBlock=e,this.random=P.create(s).forkPositional(),this.surfaceNoise=v.instantiate(this.random,v.SURFACE),this.surfaceSecondaryNoise=v.instantiate(this.random,v.SURFACE_SECONDARY),this.positionalRandoms=new Map}buildSurface(t,e,s,i){const n=H.minBlockX(t.pos),r=H.minBlockZ(t.pos),o=new us(this,t,e,s,i),h=this.rule(o);for(let c=0;c<16;c+=1){const l=n+c;for(let u=0;u<1;u+=1){const d=r+u;o.updateXZ(l,d);let f=0,g=Number.MIN_SAFE_INTEGER,m=Number.MAX_SAFE_INTEGER;for(let b=t.maxY;b>=t.minY;b-=1){const E=rt.create(l,b,d),I=t.getBlockState(E);if(I.equals(M.AIR)){f=0,g=Number.MIN_SAFE_INTEGER;continue}if(I.isFluid()){g===Number.MIN_SAFE_INTEGER&&(g=b+1);continue}if(m>=b){m=Number.MIN_SAFE_INTEGER;for(let S=b-1;S>=t.minY;S-=1){const A=t.getBlockState(rt.create(l,S,d));if(A.equals(M.AIR)||A.isFluid()){m=S+1;break}}}f+=1;const N=b-m+1;if(!I.equals(this.defaultBlock))continue;o.updateY(f,N,g,b);const w=h(l,b,d);w&&t.setBlockState(E,w)}}}}getSurfaceDepth(t,e){return 2.75*this.surfaceNoise.sample(t,0,e)+3+.25*this.random.at(t,0,e).nextDouble()}getSurfaceSecondary(t,e){return this.surfaceSecondaryNoise.sample(t,0,e)}getRandom(t){return re(this.positionalRandoms,t,()=>this.random.fromHashOf(t))}}class us{constructor(t,e,s,i,n){this.system=t,this.chunk=e,this.noiseChunk=s,this.context=i,this.getBiome=n,this.blockX=0,this.blockY=0,this.blockZ=0,this.stoneDepthAbove=0,this.stoneDepthBelow=0,this.surfaceDepth=0,this.waterHeight=0,this.biome=()=>"",this.surfaceSecondary=()=>0,this.minSurfaceLevel=()=>0}updateXZ(t,e){this.blockX=t,this.blockZ=e,this.surfaceDepth=this.system.getSurfaceDepth(t,e),this.surfaceSecondary=Lt(()=>this.system.getSurfaceSecondary(t,e)),this.minSurfaceLevel=Lt(()=>this.calculateMinSurfaceLevel(t,e))}updateY(t,e,s,i){this.blockY=i,this.stoneDepthAbove=t,this.stoneDepthBelow=e,this.waterHeight=s,this.biome=Lt(()=>this.getBiome(rt.create(this.blockX,this.blockY,this.blockZ)))}calculateMinSurfaceLevel(t,e){const s=t>>4,i=e>>4,n=this.noiseChunk.getPreliminarySurfaceLevel(s<<4,i<<4),r=this.noiseChunk.getPreliminarySurfaceLevel(s+1<<4,i<<4),o=this.noiseChunk.getPreliminarySurfaceLevel(s<<4,i+1<<4),h=this.noiseChunk.getPreliminarySurfaceLevel(s+1<<4,i+1<<4);return Math.floor(Zt((15&t)/16,(15&e)/16,n,r,o,h))+this.surfaceDepth-8}}(function(a){function t(i){return()=>()=>i}function e(i){return n=>{const r=i.map(o=>o(n));return(o,h,c)=>{for(const l of r){const u=l(o,h,c);if(u)return u}}}}function s(i,n){return r=>(o,h,c)=>{if(i(r))return n(r)(o,h,c)}}a.NOOP=()=>()=>{},a.fromJson=function(i){var n,r,o;const h=(n=p.readObject(i))!==null&&n!==void 0?n:{};switch((r=p.readString(h.type))===null||r===void 0?void 0:r.replace(/^minecraft:/,"")){case"block":return t(M.fromJson(h.result_state));case"sequence":return e((o=p.readArray(h.sequence,a.fromJson))!==null&&o!==void 0?o:[]);case"condition":return s(Ht.fromJson(h.if_true),a.fromJson(h.then_run))}return a.NOOP},a.block=t,a.sequence=e,a.condition=s})(se||(se={})),function(a){function t(){return h=>h.blockY>=h.minSurfaceLevel()}function e(h){const c=new Set(h);return l=>c.has(l.biome())}function s(h){return c=>!h(c)}function i(h,c,l,u){return d=>{const f=u?d.stoneDepthBelow:d.stoneDepthAbove,g=c?d.surfaceDepth:0,m=l===0?0:W(d.surfaceSecondary(),-1,1,0,l);return f<=1+h+g+m}}function n(h,c,l){return u=>{const d=c(u.context),f=l(u.context);if(u.blockY<=d)return!0;if(u.blockY>=f)return!1;const g=u.system.getRandom(h),m=W(u.blockY,d,f,1,0);return g.nextFloat(){if(u.waterHeight===Number.MIN_SAFE_INTEGER)return!0;const d=l?u.stoneDepthAbove:0;return u.blockY+d>=u.waterHeight+h+u.surfaceDepth*c}}function o(h,c,l){return u=>{const d=l?u.stoneDepthAbove:0;return u.blockY+d>=h(u.context)+u.surfaceDepth*c}}a.FALSE=()=>!1,a.TRUE=()=>!0,a.fromJson=function(h){var c,l,u,d,f,g,m,b,E,I,N,w;const S=(c=p.readObject(h))!==null&&c!==void 0?c:{};switch((l=p.readString(S.type))===null||l===void 0?void 0:l.replace(/^minecraft:/,"")){case"above_preliminary_surface":return A=>A.blockY>=A.minSurfaceLevel();case"biome":return e((u=p.readArray(S.biome_is,A=>{var y;return(y=p.readString(A))!==null&&y!==void 0?y:""}))!==null&&u!==void 0?u:[]);case"not":return s(a.fromJson(S.invert));case"stone_depth":return i((d=p.readInt(S.offset))!==null&&d!==void 0?d:0,(f=p.readBoolean(S.add_surface_depth))!==null&&f!==void 0&&f,(g=p.readInt(S.secondary_depth_range))!==null&&g!==void 0?g:0,p.readString(S.surface_type)==="ceiling");case"vertical_gradient":return n((m=p.readString(S.random_name))!==null&&m!==void 0?m:"",dt.fromJson(S.true_at_and_below),dt.fromJson(S.false_at_and_above));case"water":return r((b=p.readInt(S.offset))!==null&&b!==void 0?b:0,(E=p.readInt(S.surface_depth_multiplier))!==null&&E!==void 0?E:0,(I=p.readBoolean(S.add_surface_depth))!==null&&I!==void 0&&I);case"y_above":return o(dt.fromJson(S.anchor),(N=p.readInt(S.surface_depth_multiplier))!==null&&N!==void 0?N:0,(w=p.readBoolean(S.add_surface_depth))!==null&&w!==void 0&&w)}return a.FALSE},a.abovePreliminarySurface=t,a.biome=e,a.not=s,a.stoneDepth=i,a.verticalGradient=n,a.water=r,a.yAbove=o}(Ht||(Ht={}));class Is{constructor(t,e,s){this.biomeSource=e,this.settings=s,this.sampler=new ls(s.noise,s.noiseCavesEnabled,t,s.legacyRandomSource),this.noiseChunkCache=new Map,this.materialRule=Qt.fromList([(i,n,r,o)=>i.updateNoiseAndGenerateBaseState(n,r,o)]),this.surfaceSystem=new hs(s.surfaceRule,s.defaultBlock,t)}fill(t){var e;const s=Math.max(t.minY,this.settings.noise.minY),i=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),n=B.cellWidth(this.settings.noise),r=B.cellHeight(this.settings.noise),o=Math.floor(16/n),h=Math.floor(s/r),c=Math.floor((i-s)/r),l=H.minBlockX(t.pos),u=H.minBlockZ(t.pos),d=this.getNoiseChunk(t);d.initializeForFirstCellX();for(let f=0;f=0;b-=1){d.selectCellYZ(b,g);for(let E=r-1;E>=0;E-=1){const I=(h+b)*r+E,N=15&I,w=t.getSectionIndex(I);t.getSectionIndex(m.minBlockY)!==w&&(m=t.getOrCreateSection(w));const S=E/r;d.updateForY(S);for(let A=0;Ae)}getNoiseChunk(t){return re(this.noiseChunkCache,H.toLong(t.pos),()=>{const e=Math.max(t.minY,this.settings.noise.minY),s=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),i=B.cellWidth(this.settings.noise),n=B.cellHeight(this.settings.noise),r=Math.floor(16/i),o=Math.floor(e/n),h=Math.floor((s-e)/n),c=H.minBlockX(t.pos),l=H.minBlockZ(t.pos);return new as(r,h,o,this.sampler,c,l,()=>0,this.settings)})}}(function(a){a.fromJson=function(t){var e,s,i,n,r,o,h,c,l,u,d;const f=(e=p.readObject(t))!==null&&e!==void 0?e:{};return{structures:Vt.fromJson(f.structures),surfaceRule:se.fromJson(f.surface_rule),noise:B.fromJson(f.noise),defaultBlock:M.fromJson(f.default_block),defaultFluid:M.fromJson(f.default_fluid),bedrockRoofPosition:(s=p.readInt(f.bedrock_roof_position))!==null&&s!==void 0?s:0,bedrockFloorPosition:(i=p.readInt(f.bedrock_floor_position))!==null&&i!==void 0?i:0,seaLevel:(n=p.readInt(f.sea_level))!==null&&n!==void 0?n:0,disableMobGeneration:(r=p.readBoolean(f.disable_mob_generation))!==null&&r!==void 0&&r,aquifersEnabled:(o=p.readBoolean(f.aquifers_enabled))!==null&&o!==void 0&&o,noiseCavesEnabled:(h=p.readBoolean(f.noise_caves_enabled))!==null&&h!==void 0&&h,deepslateEnabled:(c=p.readBoolean(f.deepslate_enabled))!==null&&c!==void 0&&c,oreVeinsEnabled:(l=p.readBoolean(f.ore_veins_enabled))!==null&&l!==void 0&&l,noodleCavesEnabled:(u=p.readBoolean(f.noodle_caves_enabled))!==null&&u!==void 0&&u,legacyRandomSource:(d=p.readBoolean(f.legacy_random_source))!==null&&d!==void 0&&d}}})(be||(be={})),function(a){a.fromJson=function(t){var e;const s=(e=p.readObject(t))!==null&&e!==void 0?e:{};return{stronghold:p.compose(s.stronghold,p.readObject,i=>{var n,r,o;return{distance:(n=p.readInt(i.distance))!==null&&n!==void 0?n:0,spread:(r=p.readInt(i.spread))!==null&&r!==void 0?r:0,count:(o=p.readInt(i.count))!==null&&o!==void 0?o:0}}),structures:p.readMap(s.structures,i=>{var n;return(r=>{var o,h,c;return{spacing:(o=p.readInt(r.spacing))!==null&&o!==void 0?o:0,separation:(h=p.readInt(r.separation))!==null&&h!==void 0?h:0,salt:(c=p.readInt(r.salt))!==null&&c!==void 0?c:0}})((n=p.readObject(i))!==null&&n!==void 0?n:{})})}}}(Vt||(Vt={}));export{de as BlendedNoise,pe as BlockColors,oe as BlockDefinition,Nt as BlockModel,rt as BlockPos,M as BlockState,bs as Chunk,H as ChunkPos,$ as ChunkSection,gt as Climate,$t as ConstantProvider,F as Direction,xe as FixedBiome,te as FlatNoiseData,ce as ImprovedNoise,p as Json,Qe as LegacyPositionalRandom,R as LegacyRandom,Qt as MaterialRule,Te as MultiNoise,Xe as NbtReader,Ze as NbtWriter,as as NoiseChunk,Is as NoiseChunkGenerator,be as NoiseGeneratorSettings,wt as NoiseInterpolator,it as NoiseParameters,ls as NoiseSampler,Xt as NoiseSamplingSettings,B as NoiseSettings,tt as NoiseSlideSettings,v as Noises,J as NormalNoise,ct as NumberProvider,L as PerlinNoise,Ss as PerlinSimplexNoise,x as SimplexNoise,_ as Spline,ye as Structure,Es as StructureRenderer,Vt as StructureSettings,Ht as SurfaceCondition,us as SurfaceContext,se as SurfaceRule,hs as SurfaceSystem,Kt as TerrainInfo,C as TerrainShaper,St as TextureAtlas,dt as VerticalAnchor,ee as WorldgenContext,Ke as XoroshiroPositionalRandom,P as XoroshiroRandom,qe as binarySearch,Z as clamp,ft as clampedLerp,$e as clampedMap,re as computeIfAbsent,vt as getListTag,Ae as getOptional,Fe as getSeed,st as getTag,Pe as inverseLerp,Lt as lazy,k as lerp,Zt as lerp2,We as lerp3,Wt as longfromBytes,W as map,ds as read,gs as readChunk,we as readCompressed,fs as readRegion,ie as readUncompressed,Ut as smoothstep,j as square,ue as tagNames,ut as tagTypes,ps as write,vs as writeChunk,Jt as writeCompressed,ms as writeRegion,ne as writeUncompressed}; -//# sourceMappingURL=deepslate.esm.4f951104.js.map +//# sourceMappingURL=deepslate.esm.feae856d.js.map diff --git a/assets/deepslate.esm.4f951104.js.map b/assets/deepslate.esm.feae856d.js.map similarity index 99% rename from assets/deepslate.esm.4f951104.js.map rename to assets/deepslate.esm.feae856d.js.map index c9406d00..9ef9d080 100644 --- a/assets/deepslate.esm.4f951104.js.map +++ b/assets/deepslate.esm.feae856d.js.map @@ -1 +1 @@ -{"version":3,"file":"deepslate.esm.4f951104.js","sources":["../../node_modules/deepslate-1.18/dist/deepslate.esm.js"],"sourcesContent":["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 I(t,e,i,s){const n=w(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 w(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 A(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 N(t,e,i,s){const n=A(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 F(t,e){try{return t()}catch(t){return e}}var _,y,P,R,B;!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}}(_||(_={}));class x{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=A(t.value,\"Name\",\"string\"),i=F((()=>A(t.value,\"Properties\",\"compound\")),{}),s=Object.keys(i).reduce(((t,e)=>Object.assign(Object.assign({},t),{[e]:A(i,e,\"string\")})),{});return new x(e,s)}static fromJson(t){var e,i;const s=null!==(e=_.readObject(t))&&void 0!==e?e:{},n=null!==(i=_.readString(s.Name))&&void 0!==i?i:\"minecraft:stone\",r=_.readMap(s.Properties,(t=>{var e;return null!==(e=_.readString(t))&&void 0!==e?e:\"\"}));return new x(n,r)}}x.AIR=new x(\"minecraft:air\");class T{constructor(t){this.minY=t,this.storage=Array(T.SIZE),this.palette=[x.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:x.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}}T.WIDTH=16,T.SIZE=T.WIDTH*T.WIDTH*T.WIDTH;class C{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:x.AIR}setBlockState(t,e){const[i,s,n]=t,r=this.getSectionIndex(s);let o=this.sections[r];if(null===o){if(e.equals(x.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 T(this.minSection+t)),this.sections[t]}}!function(t){function e(t,e){return BigInt(4294967295&t)|BigInt(4294967295&e)<>4,t[2]>>4]},t.fromLong=function(t){return[4294967295&Number(t),Number(t>>BigInt(32))]},t.toLong=function(t){return e(t[0],t[1])},t.asLong=e,t.minBlockX=function(t){return t[0]<<4},t.minBlockZ=function(t){return t[1]<<4},t.maxBlockX=function(t){return 15+(t[0]<<4)},t.maxBlockZ=function(t){return 15+(t[1]<<4)}}(y||(y={}));class k{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 x(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]x.fromNbt({name:\"\",value:t}))),s=N(t.value,\"blocks\",\"compound\").map((t=>({pos:N(t,\"pos\",\"int\",3),state:A(t,\"state\",\"int\"),nbt:F((()=>A(t,\"nbt\",\"compound\")),void 0)})));return new k(e,i,s)}}function D(t){let e=null;return()=>(null==e&&(e=t()),e)}function M(t,e,i){const s=t.get(e);if(s)return s;const n=i(e);return t.set(e,n),n}function O(t){return t*t}function L(t,e,i){return Math.max(e,Math.min(i,t))}function U(t,e,i){return e+t*(i-e)}function Y(t,e,i,s,n,r){return U(e,U(t,i,s),U(t,n,r))}function G(t,e,i,s,n,r,o,a,l,h,u){return U(i,Y(t,e,s,n,r,o),Y(t,e,a,l,h,u))}function H(t,e,i){return i<0?t:i>1?e:U(i,t,e)}function V(t,e,i){return(t-e)/(i-e)}function z(t){return t*t*t*(t*(6*t-15)+10)}function j(t,e,i,s,n){return U(V(t,e,i),s,n)}function J(t,e,i,s,n){return H(s,n,V(t,e,i))}function X(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}function Z(t,e,i){let s=BigInt(3129871*t)^BigInt(i)*BigInt(116129781)^BigInt(e);return s=s*s*BigInt(42317861)+s*BigInt(11),s>>BigInt(16)}function W(t,e,i,s,n,r,o,a){return BigInt(t)<>BigInt(q.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^K.SILVER_RATIO_64,i=e+K.GOLDEN_RATIO_64&BigInt(\"0xFFFFFFFFFFFFFFFF\");return[K.mixStafford13(e),K.mixStafford13(i)]}static rotateLeft(t,e){return t<>BigInt(64)-e}setSeed(t){this.seed=K.upgradeSeedTo128bit(t)}fork(){return new K([this.next(),this.next()])}forkPositional(){return new Q(this.next(),this.next())}next(){const t=this.seed[0];let e=this.seed[1];const i=K.rotateLeft(t+e&BigInt(\"0xFFFFFFFFFFFFFFFF\"),BigInt(17))+t&BigInt(\"0xFFFFFFFFFFFFFFFF\");return e^=t,this.seed=[K.rotateLeft(t,BigInt(49))^e^e<BigInt(\"0x8000000000000000\")&&(t-=BigInt(\"0x10000000000000000\")),t}consume(t){let e=this.seed[0],i=this.seed[1];for(let s=0;s>BigInt(64-t)}nextInt(t){let e=this.next()&BigInt(4294967295);if(t){const i=BigInt(t);let s=e*i,n=s&BigInt(4294967295);if(n>BigInt(32);return Number(r)}{let t=Number(e);return t>=2147483648&&(t-=4294967296),t}}nextFloat(){return Number(this.nextBits(24))*K.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*K.DOUBLE_MULTIPLIER}parityConfigString(){return\"seedLo: \"+this.seed[0]+\", seedHi: \"+this.seed[1]}}K.SILVER_RATIO_64=BigInt(\"7640891576956012809\"),K.GOLDEN_RATIO_64=BigInt(\"-7046029254386353131\"),K.FLOAT_MULTIPLIER=1/Math.pow(2,24),K.DOUBLE_MULTIPLIER=11102230246251565e-32;class Q{constructor(t,e){this.seedLo=t,this.seedHi=e}at(t,e,i){const s=Z(t,e,i)^this.seedLo;return new K([s,this.seedHi])}fromHashOf(t){const i=e(t,{asBytes:!0}),s=W(i[0],i[1],i[2],i[3],i[4],i[5],i[6],i[7]),n=W(i[8],i[9],i[10],i[11],i[12],i[13],i[14],i[15]);return new K([s^this.seedLo,n^this.seedHi])}}class tt{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)*tt.F2,o=Math.floor(t+r),a=t-(o-(i=(o+(s=Math.floor(e+r)))*tt.G2));let l,h;a>(n=e-(s-i))?(l=1,h=0):(l=0,h=1);const u=a-l+tt.G2,c=n-h+tt.G2,d=a-1+2*tt.G2,f=n-1+2*tt.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 H(o/512,a/512,n)/128}}!function(t){t.fromJson=function(t){var e,i,s,n,r;const o=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{xzScale:null!==(i=_.readNumber(o.xz_scale))&&void 0!==i?i:1,yScale:null!==(s=_.readNumber(o.y_scale))&&void 0!==s?s:1,xzFactor:null!==(n=_.readNumber(o.xz_factor))&&void 0!==n?n:80,yFactor:null!==(r=_.readNumber(o.y_factor))&&void 0!==r?r:80}}}(P||(P={}));class nt{constructor(t,{firstOctave:e,amplitudes:i}){this.first=new it(t,e,i),this.second=new it(t,e,i);let s=1/0,n=-1/0;for(let t=0;t{var e;return null!==(e=_.readNumber(t))&&void 0!==e?e:0})))&&void 0!==s?s:[]}}}(R||(R={}));class rt{constructor(t,e){const i=e[e.length-1],s=-e[0]+i+1,n=new Set(e),r=new tt(t);this.noiseLevels=Array(s),i>=0&&i=0&&n.has(i-e)?this.noiseLevels[e]=new tt(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=_.readObject(t))&&void 0!==e?e:{}})))&&void 0!==n?n:[];if(0===h.length)return new ot(0);for(const e of h){const s=null!==(r=_.readNumber(e.location))&&void 0!==r?r:0,n=t.fromJson(e.value,i),a=null!==(o=_.readNumber(e.derivative))&&void 0!==o?o:0;l.addPoint(s,n,a)}return l}}(B||(B={}));class ot{constructor(t){this.value=t}apply(){return this.value}toJson(){return this.value}}class at{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=X(0,this.locations.length,(t=>e({location:t,value:this.values[e].toJson(),derivative:this.derivatives[e]})))}}}const lt=t=>[(t>>16&255)/256,(t>>8&255)/256,(255&t)/256],ht=[124/256,189/256,107/256],ut=lt(6396257),ct=lt(8431445),dt=lt(4764952),ft=lt(4159204),gt=lt(8431445),pt=lt(2129968),mt=t=>[t/8,1-t/32,64*t],vt={large_fern:()=>ht,tall_grass:()=>ht,grass_block:()=>ht,fern:()=>ht,grass:()=>ht,potted_fern:()=>ht,spruce_leaves:()=>ut,birch_leaves:()=>ct,oak_leaves:()=>dt,jungle_leaves:()=>dt,acacia_leaves:()=>dt,dark_oak_leaves:()=>dt,vine:()=>dt,water:()=>ft,bubble_column:()=>ft,cauldron:()=>ft,redstone_wire:t=>{var e;return(t=>{const e=t/15;return[.6*e+(e>0?.4:.3),L(e*e*.7-.5,0,1),L(e*e*.6-.7,0,1)]})(parseInt(null!==(e=t.power)&&void 0!==e?e:\"0\"))},sugar_cane:()=>ht,attached_melon_stem:()=>gt,attached_pumpkin_stem:()=>gt,melon_stem:t=>{var e;return mt(parseInt(null!==(e=t.age)&&void 0!==e?e:\"0\"))},pumpkin_stem:t=>{var e;return mt(parseInt(null!==(e=t.age)&&void 0!==e?e:\"0\"))},lily_pad:()=>pt};var bt;function St(...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 Et(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=bt.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]),Et(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=St(...f);return Et(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 It(t,e.variants,e.multipart)}}const wt={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]},At={x:[1,0,0],y:[0,1,0],z:[0,0,1]},Nt=1.41421356237,Ft={x:[1,Nt,Nt],y:[Nt,1,Nt],z:[Nt,Nt,1]};class _t{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:St(...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,S,E;const I=r.from[0],w=r.from[1],A=r.from[2],N=r.to[0],F=r.to[1],_=r.to[2],y=[],P=[],R=[],B=[],x=(i,s,n)=>{var r,l,h,u,c,d,f,g,p,m,v,b;const[S,E,I,w]=a.getTextureUV(this.getTexture(i.texture)),A=(I-S)/16,N=(w-E)/16,F=A/16,_=N/16;s[0]=(null!==(l=null===(r=i.uv)||void 0===r?void 0:r[0])&&void 0!==l?l:s[0])*A+F,s[1]=(null!==(u=null===(h=i.uv)||void 0===h?void 0:h[1])&&void 0!==u?u:s[1])*N+_,s[2]=(null!==(d=null===(c=i.uv)||void 0===c?void 0:c[2])&&void 0!==d?d:s[2])*A-F,s[3]=(null!==(g=null===(f=i.uv)||void 0===f?void 0:f[3])&&void 0!==g?g:s[3])*N-_;const x=wt[null!==(p=i.rotation)&&void 0!==p?p:0];P.push(S+s[x[0]],E+s[x[1]],S+s[x[2]],E+s[x[3]],S+s[x[4]],E+s[x[5]],S+s[x[6]],E+s[x[7]]);const T=(null!==(m=i.tintindex)&&void 0!==m?m:-1)>=0&&null!==(b=null===(v=vt[t.slice(10)])||void 0===v?void 0:v.call(vt,e))&&void 0!==b?b:[1,1,1];R.push(...T,...T,...T,...T),y.push(...n),B.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]||x(r.faces.up,[I,16-_,N,16-A],[I,F,_,N,F,_,N,F,A,I,F,A]),!(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]||x(r.faces.down,[16-_,16-N,16-A,16-I],[I,w,A,N,w,A,N,w,_,I,w,_]),!(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]||x(r.faces.south,[I,16-F,N,16-w],[I,w,_,N,w,_,N,F,_,I,F,_]),!(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]||x(r.faces.north,[16-N,16-F,16-I,16-w],[N,w,A,I,w,A,I,F,A,N,F,A]),!(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]||x(r.faces.east,[16-_,16-F,16-A,16-w],[N,w,_,N,w,A,N,F,A,N,F,_]),!(null===(E=null===(S=r.faces)||void 0===S?void 0:S.west)||void 0===E?void 0:E.texture)||r.faces.west.cullface&&l[r.faces.west.cullface]||x(r.faces.west,[A,16-F,_,16-w],[I,w,A,I,w,_,I,F,_,I,F,A]);const T=s.create();if(s.identity(T),r.rotation){const t=i.fromValues(...r.rotation.origin);s.translate(T,T,t),s.rotate(T,T,n.toRadian(r.rotation.angle),At[r.rotation.axis]),r.rotation.rescale&&s.scale(T,T,Ft[r.rotation.axis]),i.negate(t,t),s.translate(T,T,t)}const C=new Float32Array(y);return Et(C,T),{position:C,texCoord:P,tintColor:R,index:B}}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 _t(t,i,e.textures,e.elements)}}class yt{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 Pt(t,e,i,s,n){const r=new It(\"\",{\"\":{model:\"\"}},void 0),o={getBlockModel:()=>n};return n.flatten(o),r.getBuffers(t,{},e,o,i,s)}function Rt(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 Pt(`minecraft:${t}`,s,e,n,new _t(\"\",\"\",{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 Bt={\"minecraft:water\":(t,e,i,s)=>Rt(\"water\",t,parseInt(e.level),i,s,0),\"minecraft:lava\":(t,e,i,s)=>Rt(\"lava\",t,parseInt(e.level),i,s),\"minecraft:chest\":(t,e,i)=>function(t,e,i,s){return Pt(\"minecraft:chest\",s,t,{},new _t(\"\",\"\",{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(Bt));class Tt{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 yt(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 yt(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 yt(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),Et(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,St(...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,St(...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=Bt[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 Ct(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 kt{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 Ct(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=>Ct(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 kt(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 kt.drawInvalidTexture(e),new kt(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 Dt,Mt,Ot,Lt,Ut,Yt,Gt,Ht,Vt,zt,jt,Jt,Xt;!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=_.readArray(t,(t=>_.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=_.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=_.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}(Dt||(Dt={}));class Zt{constructor(t){this.biome=t}getBiome(){return this.biome}static fromJson(t){var e,i;const s=null!==(e=_.readObject(t))&&void 0!==e?e:{},n=null!==(i=_.readString(s.biome))&&void 0!==i?i:\"minecraft:the_void\";return new Zt(n)}}class Wt{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=_.readObject(t))&&void 0!==e?e:{},n=(null!==(i=_.readArray(s.biomes,(t=>{var e;return(t=>{var e;return{biome:null!==(e=_.readString(t.biome))&&void 0!==e?e:\"minecraft:the_void\",parameters:Dt.ParamPoint.fromJson(t.parameters)}})(null!==(e=_.readObject(t))&&void 0!==e?e:{})})))&&void 0!==i?i:[]).map((t=>[t.parameters,()=>t.biome]));return new Wt(new Dt.Parameters(n))}}class qt{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=_.readObject(t))&&void 0!==e?e:{};return new qt(B.fromJson(i.offset,this.EXTRACTOR),B.fromJson(i.factor,this.EXTRACTOR),B.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)+qt.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 at(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 at(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 at(this.CONTINENTS).addPoint(.11,0).addPoint(.03,this.buildErosionJaggednessSpline(1,.5,0,0)).addPoint(.65,this.buildErosionJaggednessSpline(1,1,1,0));return new qt(n,r,o)}static getErosionFactor(t,e){const i=new at(this.WEIRDNESS).addPoint(-.2,6.3).addPoint(.2,t),s=new at(this.EROSION).addPoint(-.6,i).addPoint(-.5,new at(this.WEIRDNESS).addPoint(-.05,6.3).addPoint(.05,2.67)).addPoint(-.35,i).addPoint(-.25,i).addPoint(-.1,new at(this.WEIRDNESS).addPoint(-.05,2.67).addPoint(.05,6.3)).addPoint(.03,i);if(e){const e=new at(this.WEIRDNESS).addPoint(0,t).addPoint(.1,.625),i=new at(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 at(this.RIDGES).addPoint(-.7,i).addPoint(-.15,1.37),n=new at(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(U(s,.6,1.5),a),h=this.buildMountainRidgeSplineWithPoints(U(s,.6,1),a),u=this.buildMountainRidgeSplineWithPoints(s,a),c=this.ridgeSpline(t-.15,.5*s,U(.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 at(this.RIDGES).addPoint(-1,t).addPoint(-.4,f).addPoint(0,i+.07),m=this.ridgeSpline(-.02,r,r,e,i,0),v=new at(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 at(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 at(qt.WEIRDNESS).addPoint(-.01,.63*t).addPoint(.01,.3*t)}}qt.GLOBAL_OFFSET=-.50375,qt.EXTRACTOR=t=>{var e;const i=null!==(e=_.readString(t))&&void 0!==e?e:\"continents\";return qt.extractor(i)},qt.CONTINENTS=qt.extractor(\"continents\"),qt.EROSION=qt.extractor(\"erosion\"),qt.WEIRDNESS=qt.extractor(\"weirdness\"),qt.RIDGES=qt.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}}}(Mt||(Mt={})),function(t){function e(t){return t.ySize<<2}t.fromJson=function(t){var e,i,s,n,r,o,a,l;const h=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{minY:null!==(i=_.readInt(h.min_y))&&void 0!==i?i:0,height:null!==(s=_.readInt(h.height))&&void 0!==s?s:256,xzSize:null!==(n=_.readInt(h.size_horizontal))&&void 0!==n?n:1,ySize:null!==(r=_.readInt(h.size_vertical))&&void 0!==r?r:1,sampling:P.fromJson(h.sampling),topSlide:Lt.fromJson(h.top_slide),bottomSlide:Lt.fromJson(h.bottom_slide),terrainShaper:qt.fromJson(h.terrain_shaper),islandNoiseOverride:null!==(o=_.readBoolean(h.island_noise_override))&&void 0!==o&&o,isAmplified:null!==(a=_.readBoolean(h.amplified))&&void 0!==a&&a,hasLargeBiomes:null!==(l=_.readBoolean(h.large_biomes))&&void 0!==l&&l}},t.cellHeight=e,t.cellWidth=function(t){return t.xzSize<<2},t.cellCountY=function(t){return t.height/e(t)},t.minCellY=function(t){return Math.floor(t.minY/e(t))}}(Ot||(Ot={})),function(t){t.fromJson=function(t){var e,i,s,n;const r=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{target:null!==(i=_.readNumber(r.target))&&void 0!==i?i:0,size:null!==(s=_.readInt(r.size))&&void 0!==s?s:0,offset:null!==(n=_.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 H(t.target,e,s)}}(Lt||(Lt={}));class $t{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=$t.allocateSlice(t.cellCountY,t.cellCountXZ),this.slice1=$t.allocateSlice(t.cellCountY,t.cellCountXZ)}static allocateSlice(t,e){const i=Array(e+1);for(let s=0;s>2,this.firstNoiseZ=r>>2,this.interpolators=[];const h=t*l>>2;this.noiseData=Array(h+1);for(let t=0;t<=h;t+=1){const e=this.firstNoiseX+t;this.noiseData[t]=Array(h+1);for(let i=0;i<=h;i+=1){const n=this.firstNoiseZ+i;this.noiseData[t][i]=s.noiseData(e,n)}}this.preliminarySurfaceLevel=new Map,this.baseNoise=s.makeBaseNoiseFiller(this,o,a.noodleCavesEnabled)}getNoiseData(t,e){return this.noiseData[t-this.firstNoiseX][e-this.firstNoiseZ]}getPreliminarySurfaceLevel(t,e){return M(this.preliminarySurfaceLevel,y.asLong(t,e),(()=>{const i=t-this.firstNoiseX,s=e-this.firstNoiseZ,n=this.noiseData.length,r=i>=0&&s>=0&&it.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}}}(Ut||(Ut={})),function(t){const e=new Map;function i(t,i,s){const n=Object.assign({name:`minecraft:${t}`},R.create(i,s));return e.set(t,n),n}t.TEMPERATURE=i(\"temperature\",-10,[1.5,0,1,0,0,0]),t.VEGETATION=i(\"vegetation\",-8,[1,1,0,0,0,0]),t.CONTINENTALNESS=i(\"continentalness\",-9,[1,1,2,2,2,1,1,1,1]),t.EROSION=i(\"erosion\",-9,[1,1,0,1,1]),t.TEMPERATURE_LARGE=i(\"temperature_large\",-12,[1.5,0,1,0,0,0]),t.VEGETATION_LARGE=i(\"vegetation_large\",-10,[1,1,0,0,0,0]),t.CONTINENTALNESS_LARGE=i(\"continentalness_large\",-11,[1,1,2,2,2,1,1,1,1]),t.EROSION_LARGE=i(\"erosion_large\",-11,[1,1,0,1,1]),t.RIDGE=i(\"ridge\",-7,[1,2,1,0,0,0]),t.SHIFT=i(\"offset\",-3,[1,1,1,0]),t.PILLAR=i(\"pillar\",-7,[1,1]),t.PILLAR_RARENESS=i(\"pillar_rareness\",-8,[1]),t.PILLAR_THICKNESS=i(\"pillar_thickness\",-8,[1]),t.SPAGHETTI_2D=i(\"spaghetti_2d\",-8,[1]),t.SPAGHETTI_2D_ELEVATION=i(\"spaghetti_2d_elevation\",-8,[1]),t.SPAGHETTI_2D_MODULATOR=i(\"spaghetti_2d_modulator\",-8,[1]),t.SPAGHETTI_2D_THICKNESS=i(\"spaghetti_2d_thickness\",-8,[1]),t.SPAGHETTI_3D_1=i(\"spaghetti_3d_1\",-8,[1]),t.SPAGHETTI_3D_2=i(\"spaghetti_3d_2\",-8,[1]),t.SPAGHETTI_3D_RARITY=i(\"spaghetti_3d_rarity\",-8,[1]),t.SPAGHETTI_3D_THICKNESS=i(\"spaghetti_3d_thickness\",-8,[1]),t.SPAGHETTI_ROUGHNESS=i(\"spaghetti_roughness\",-8,[1]),t.SPAGHETTI_ROUGHNESS_MODULATOR=i(\"spaghetti_roughness_modulator\",-8,[1]),t.CAVE_ENTRANCE=i(\"cave_entrance\",-7,[.4,.5,1]),t.CAVE_LAYER=i(\"cave_layer\",-8,[1]),t.CAVE_CHEESE=i(\"cave_cheese\",-8,[.5,1,2,1,2,1,0,2,0]),t.NOODLE=i(\"noodle\",-8,[1]),t.NOODLE_THICKNESS=i(\"noodle_thickness\",-8,[1]),t.NOODLE_RIDGE_A=i(\"noodle_ridge_a\",-7,[1]),t.NOODLE_RIDGE_B=i(\"noodle_ridge_b\",-7,[1]),t.JAGGED=i(\"jagged\",-16,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),t.SURFACE=i(\"surface\",-6,[1,1,1]),t.SURFACE_SECONDARY=i(\"surface_secondary\",-6,[1,1,0,1]),t.instantiate=function(t,e){return new nt(t.fromHashOf(e.name),e)}}(Yt||(Yt={}));class Qt{constructor(t,e,i,s=!1){this.settings=t,this.isNoiseCavesEnabled=e;const n=t.hasLargeBiomes,r=(s?new q(i):K.create(i)).forkPositional();s?(this.blendedNoise=new st(new q(i),t.sampling,Ot.cellWidth(t),Ot.cellHeight(t)),this.temperatureNoise=new nt(new q(i),R.create(-7,[1,1])),this.humidityNoise=new nt(new q(i+BigInt(1)),R.create(-7,[1,1])),this.offsetNoise=new nt(new q(i+BigInt(5)),R.create(0,[0]))):(this.blendedNoise=new st(r.fromHashOf(\"minecraft:terrain\"),t.sampling,Ot.cellWidth(t),Ot.cellHeight(t)),this.temperatureNoise=Yt.instantiate(r,n?Yt.TEMPERATURE_LARGE:Yt.TEMPERATURE),this.humidityNoise=Yt.instantiate(r,n?Yt.VEGETATION_LARGE:Yt.VEGETATION),this.offsetNoise=Yt.instantiate(r,Yt.SHIFT)),this.continentalnessNoise=Yt.instantiate(r,n?Yt.CONTINENTALNESS_LARGE:Yt.CONTINENTALNESS),this.erosionNoise=Yt.instantiate(r,n?Yt.EROSION_LARGE:Yt.EROSION),this.weirdnessNoise=Yt.instantiate(r,Yt.RIDGE),this.pillarNoise=Yt.instantiate(r,Yt.PILLAR),this.pillarRarenessModulator=Yt.instantiate(r,Yt.PILLAR_RARENESS),this.pillarThicknessModulator=Yt.instantiate(r,Yt.PILLAR_THICKNESS),this.spaghetti2DNoise=Yt.instantiate(r,Yt.SPAGHETTI_2D),this.spaghetti2DElevationModulator=Yt.instantiate(r,Yt.SPAGHETTI_2D_ELEVATION),this.spaghetti2DRarityModulator=Yt.instantiate(r,Yt.SPAGHETTI_2D_MODULATOR),this.spaghetti2DThicknessModulator=Yt.instantiate(r,Yt.SPAGHETTI_2D_THICKNESS),this.spaghetti3DNoise1=Yt.instantiate(r,Yt.SPAGHETTI_3D_1),this.spaghetti3DNoise2=Yt.instantiate(r,Yt.SPAGHETTI_3D_2),this.spaghetti3DRarityModulator=Yt.instantiate(r,Yt.SPAGHETTI_3D_RARITY),this.spaghetti3DThicknessModulator=Yt.instantiate(r,Yt.SPAGHETTI_3D_THICKNESS),this.spaghettiRoughnessNoise=Yt.instantiate(r,Yt.SPAGHETTI_ROUGHNESS),this.spaghettiRoughnessModulator=Yt.instantiate(r,Yt.SPAGHETTI_ROUGHNESS_MODULATOR),this.bigEntranceNoise=Yt.instantiate(r,Yt.CAVE_ENTRANCE),this.layerNoise=Yt.instantiate(r,Yt.CAVE_LAYER),this.cheeseNoise=Yt.instantiate(r,Yt.CAVE_CHEESE);const o=t.minY+4,a=o+t.height;this.noodleToggleNoise=this.yLimitedInterpolatable(Yt.instantiate(r,Yt.NOODLE),o,a,-1,1),this.noodleThicknessNoise=this.yLimitedInterpolatable(Yt.instantiate(r,Yt.NOODLE_THICKNESS),o,a,0,1),this.noodleRidgeANoise=this.yLimitedInterpolatable(Yt.instantiate(r,Yt.NOODLE_RIDGE_A),o,a,0,8/3),this.noodleRidgeBNoise=this.yLimitedInterpolatable(Yt.instantiate(r,Yt.NOODLE_RIDGE_B),o,a,0,8/3),this.jaggedNoise=Yt.instantiate(r,Yt.JAGGED),this.shaper=t.terrainShaper,this.baseNoise=t=>t.createNoiseInterpolator(((e,i,s)=>this.calculateBlendedBaseNoise(e,i,s,t.getNoiseData(e>>2,s>>2).terrainInfo)))}yLimitedInterpolatable(t,e,i,s,n){const r=(r,o,a)=>o>i||ot.createNoiseInterpolator(r)}noiseData(t,e){const i=t+this.getOffset(t,0,e),s=e+this.getOffset(e,t,0),n=this.getContinentalness(i,s),r=this.getErosion(i,s),o=this.getWeirdness(i,s),a=this.terrainInfo(n,r,o);return Gt.create(i,s,n,r,o,a)}sample(t,e,i){return this.target(t,e,i,this.noiseData(t,i))}target(t,e,i,s){const n=s.shiftedX,r=e+this.getOffset(e,i,t),o=s.shiftedZ,a=this.getTemperature(n,r,o),l=this.getHumidity(n,r,o),h=this.computeDimensionDensity(e<<2,s.terrainInfo);return Dt.target(a,l,s.continentalness,s.erosion,h,s.weirdness)}terrainInfo(t,e,i){const s=qt.point(t,e,i),n=this.shaper.offset(s),r=this.shaper.factor(s),o=this.shaper.jaggedness(s);return Ut.create(n,r,o)}getOffset(t,e,i){return 4*this.offsetNoise.sample(t,e,i)}getTemperature(t,e,i){return this.temperatureNoise.sample(t,e,i)}getHumidity(t,e,i){return this.humidityNoise.sample(t,e,i)}getContinentalness(t,e){return this.continentalnessNoise.sample(t,0,e)}getErosion(t,e){return this.erosionNoise.sample(t,0,e)}getWeirdness(t,e){return this.weirdnessNoise.sample(t,0,e)}makeBaseNoiseFiller(t,e,i){const s=this.baseNoise(t),n=i?this.noodleToggleNoise(t):()=>-1,r=i?this.noodleThicknessNoise(t):()=>0,o=i?this.noodleRidgeANoise(t):()=>0,a=i?this.noodleRidgeBNoise(t):()=>0;return(t,i,l)=>{let h=s();if(h=L(.64*h,-1,1),h=h/2-h*h*h/24,n()>=0){const t=J(r(),-1,1,.05,.1),e=Math.abs(1.5*o())-t,i=Math.abs(1.5*a())-t;h=Math.min(h,Math.max(e,i))}return h+=e(t,i,l),h>0?null:x.AIR}}calculateBlendedBaseNoise(t,e,i,s){const n=this.blendedNoise.sample(t,e,i);return this.calculateBaseNoise(t,e,i,s,n,!this.isNoiseCavesEnabled,!0)}calculateBaseNoise(t,e,i,s,n,r,o){if(!this.settings.islandNoiseOverride){const r=o?this.sampleJaggedNoise(s.jaggedness,t,i):0,a=this.computeDimensionDensity(e,s),l=s.factor*(r+a);n+=l>0?4*l:l}let a=-64,l=64;if(!r&&n>=-64){const s=n-1.5625,r=this.getBigEntrances(t,e,i),o=this.getSpaghettiRoughness(t,e,i),h=this.getSpaghetti3D(t,e,i),u=Math.min(r,h+o);if(s<0)l=u;else{const r=this.getLayerizedCaverns(t,e,i);if(r>64)n=64;else{n=this.getCheese(t,e,i)+r+H(.5,0,1.28*s)}const h=this.getSpaghetti2D(t,e,i);a=this.getPillars(t,e,i),l=Math.min(u,h+o)}}return n=L(n,a,l),n=L(n=this.applySlide(n,e/Ot.cellHeight(this.settings)),-64,64)}sampleJaggedNoise(t,e,i){if(0===t)return 0;const s=this.jaggedNoise.sample(1500*e,0,1500*i);return s>0?t*s:t/2*s}computeDimensionDensity(t,e){return 1-t/128+e.offset}getBigEntrances(t,e,i){return this.bigEntranceNoise.sample(.75*t,.5*e,.75*i)+.37+H(.3,0,(e+10)/40)}getSpaghettiRoughness(t,e,i){const s=this.spaghettiRoughnessNoise.sample(t,e,i),n=j(this.spaghettiRoughnessModulator.sample(t,e,i),-1,1,0,1);return(.4-Math.abs(s))*n}getSpaghetti2D(t,e,i){const s=this.quantizeSpaghettiRarity2D(this.spaghetti2DRarityModulator.sample(2*t,e,2*i)),n=j(this.spaghetti2DThicknessModulator.sample(2*t,e,2*i),-1,1,.6,1.3),r=this.sampleWithRarity(this.spaghetti2DNoise,t,e,i,s),o=Math.abs(s*r)-.083*n,a=Ot.minCellY(this.settings),l=j(this.spaghetti2DElevationModulator.sample(t,0,i),-1,1,a,8),h=Math.abs(l-e/8)-1*n;return L(Math.max(h,o),-1,1)}getSpaghetti3D(t,e,i){const s=this.quantizeSpaghettiRarity3D(this.spaghetti3DRarityModulator.sample(2*t,e,2*i)),n=j(this.spaghetti3DThicknessModulator.sample(t,e,i),-1,1,.065,.088),r=this.sampleWithRarity(this.spaghetti3DNoise1,t,e,i,s),o=Math.abs(s*r)-n,a=this.sampleWithRarity(this.spaghetti3DNoise2,t,e,i,s),l=Math.abs(s*a)-n;return L(Math.max(o,l),-1,1)}quantizeSpaghettiRarity2D(t){return t<-.75?.5:t<-.5?.75:t<.5?1:t<.75?2:3}quantizeSpaghettiRarity3D(t){return t<-.5?.75:t<0?1:t<.5?1.5:2}sampleWithRarity(t,e,i,s,n){return t.sample(e/n,i/n,s/n)}getLayerizedCaverns(t,e,i){return 4*O(this.layerNoise.sample(t,8*e,i))}getCheese(t,e,i){return L(this.cheeseNoise.sample(t,e/1.5,i)+.27,-1,1)}getPillars(t,e,i){const s=j(this.pillarRarenessModulator.sample(t,e,i),-1,1,0,2),n=j(this.pillarThicknessModulator.sample(t,e,i),-1,1,0,1.1),r=this.pillarNoise.sample(25*t,.3*e,25*i),o=Math.pow(n,3)*(2*r-s);return o<=.03?Number.MIN_SAFE_INTEGER:o}applySlide(t,e){const i=e-Ot.minCellY(this.settings);return t=Lt.apply(this.settings.topSlide,t,Ot.cellCountY(this.settings)-i),t=Lt.apply(this.settings.bottomSlide,t,i)}getPreliminarySurfaceLevel(t,e,i){const s=Ot.minCellY(this.settings)+Ot.cellCountY(this.settings),n=Ot.minCellY(this.settings),r=Ot.cellHeight(this.settings);for(let o=s;o>=n;o-=1){const s=o*r;if(this.calculateBaseNoise(t,s,e,i,-.703125,!0,!1)>=.390625)return s}return Number.MAX_SAFE_INTEGER}}!function(t){t.create=function(t,e,i,s,n,r){return{shiftedX:t,shiftedZ:e,continentalness:i,weirdness:s,erosion:n,terrainInfo:r}}}(Gt||(Gt={})),function(t){t.fromJson=function(t){var e,i,s,n;const r=null!==(e=_.readObject(t))&&void 0!==e?e:{};return void 0!==r.absolute?(o=null!==(i=_.readNumber(r.absolute))&&void 0!==i?i:0,()=>o):void 0!==r.above_bottom?function(t){return e=>e.minY+t}(null!==(s=_.readNumber(r.above_bottom))&&void 0!==s?s:0):void 0!==r.below_top?function(t){return e=>e.maxY-t}(null!==(n=_.readNumber(r.below_top))&&void 0!==n?n:0):()=>0;var o}}(Ht||(Ht={})),function(t){t.create=function(t,e){return{minY:t,height:e,maxY:t+e-1}}}(Vt||(Vt={}));class te{constructor(t,e,i){this.rule=t,this.defaultBlock=e,this.random=K.create(i).forkPositional(),this.surfaceNoise=Yt.instantiate(this.random,Yt.SURFACE),this.surfaceSecondaryNoise=Yt.instantiate(this.random,Yt.SURFACE_SECONDARY),this.positionalRandoms=new Map}buildSurface(t,e,i,s){const n=y.minBlockX(t.pos),r=y.minBlockZ(t.pos),o=new ee(this,t,e,i,s),l=this.rule(o);for(let e=0;e<16;e+=1){const i=n+e;for(let e=0;e<1;e+=1){const s=r+e;o.updateXZ(i,s);let n=0,h=Number.MIN_SAFE_INTEGER,u=Number.MAX_SAFE_INTEGER;for(let e=t.maxY;e>=t.minY;e-=1){const r=a.create(i,e,s),c=t.getBlockState(r);if(c.equals(x.AIR)){n=0,h=Number.MIN_SAFE_INTEGER;continue}if(c.isFluid()){h===Number.MIN_SAFE_INTEGER&&(h=e+1);continue}if(u>=e){u=Number.MIN_SAFE_INTEGER;for(let n=e-1;n>=t.minY;n-=1){const e=t.getBlockState(a.create(i,n,s));if(e.equals(x.AIR)||e.isFluid()){u=n+1;break}}}n+=1;const d=e-u+1;if(!c.equals(this.defaultBlock))continue;o.updateY(n,d,h,e);const f=l(i,e,s);f&&t.setBlockState(r,f)}}}}getSurfaceDepth(t,e){return 2.75*this.surfaceNoise.sample(t,0,e)+3+.25*this.random.at(t,0,e).nextDouble()}getSurfaceSecondary(t,e){return this.surfaceSecondaryNoise.sample(t,0,e)}getRandom(t){return M(this.positionalRandoms,t,(()=>this.random.fromHashOf(t)))}}class ee{constructor(t,e,i,s,n){this.system=t,this.chunk=e,this.noiseChunk=i,this.context=s,this.getBiome=n,this.blockX=0,this.blockY=0,this.blockZ=0,this.stoneDepthAbove=0,this.stoneDepthBelow=0,this.surfaceDepth=0,this.waterHeight=0,this.biome=()=>\"\",this.surfaceSecondary=()=>0,this.minSurfaceLevel=()=>0}updateXZ(t,e){this.blockX=t,this.blockZ=e,this.surfaceDepth=this.system.getSurfaceDepth(t,e),this.surfaceSecondary=D((()=>this.system.getSurfaceSecondary(t,e))),this.minSurfaceLevel=D((()=>this.calculateMinSurfaceLevel(t,e)))}updateY(t,e,i,s){this.blockY=s,this.stoneDepthAbove=t,this.stoneDepthBelow=e,this.waterHeight=i,this.biome=D((()=>this.getBiome(a.create(this.blockX,this.blockY,this.blockZ))))}calculateMinSurfaceLevel(t,e){const i=t>>4,s=e>>4,n=this.noiseChunk.getPreliminarySurfaceLevel(i<<4,s<<4),r=this.noiseChunk.getPreliminarySurfaceLevel(i+1<<4,s<<4),o=this.noiseChunk.getPreliminarySurfaceLevel(i<<4,s+1<<4),a=this.noiseChunk.getPreliminarySurfaceLevel(i+1<<4,s+1<<4);return Math.floor(Y((15&t)/16,(15&e)/16,n,r,o,a))+this.surfaceDepth-8}}!function(t){function e(t){return()=>()=>t}function i(t){return e=>{const i=t.map((t=>t(e)));return(t,e,s)=>{for(const n of i){const i=n(t,e,s);if(i)return i}}}}function s(t,e){return i=>(s,n,r)=>{if(t(i))return e(i)(s,n,r)}}t.NOOP=()=>()=>{},t.fromJson=function(n){var r,o,a;const l=null!==(r=_.readObject(n))&&void 0!==r?r:{};switch(null===(o=_.readString(l.type))||void 0===o?void 0:o.replace(/^minecraft:/,\"\")){case\"block\":return e(x.fromJson(l.result_state));case\"sequence\":return i(null!==(a=_.readArray(l.sequence,t.fromJson))&&void 0!==a?a:[]);case\"condition\":return s(jt.fromJson(l.if_true),t.fromJson(l.then_run))}return t.NOOP},t.block=e,t.sequence=i,t.condition=s}(zt||(zt={})),function(t){function e(){return t=>t.blockY>=t.minSurfaceLevel()}function i(t){const e=new Set(t);return t=>e.has(t.biome())}function s(t){return e=>!t(e)}function n(t,e,i,s){return n=>{const r=s?n.stoneDepthBelow:n.stoneDepthAbove,o=e?n.surfaceDepth:0,a=0===i?0:j(n.surfaceSecondary(),-1,1,0,i);return r<=1+t+o+a}}function r(t,e,i){return s=>{const n=e(s.context),r=i(s.context);if(s.blockY<=n)return!0;if(s.blockY>=r)return!1;const o=s.system.getRandom(t),a=j(s.blockY,n,r,1,0);return o.nextFloat(){if(s.waterHeight===Number.MIN_SAFE_INTEGER)return!0;const n=i?s.stoneDepthAbove:0;return s.blockY+n>=s.waterHeight+t+s.surfaceDepth*e}}function a(t,e,i){return s=>{const n=i?s.stoneDepthAbove:0;return s.blockY+n>=t(s.context)+s.surfaceDepth*e}}t.FALSE=()=>!1,t.TRUE=()=>!0,t.fromJson=function(e){var l,h,u,c,d,f,g,p,m,v,b,S;const E=null!==(l=_.readObject(e))&&void 0!==l?l:{};switch(null===(h=_.readString(E.type))||void 0===h?void 0:h.replace(/^minecraft:/,\"\")){case\"above_preliminary_surface\":return t=>t.blockY>=t.minSurfaceLevel();case\"biome\":return i(null!==(u=_.readArray(E.biome_is,(t=>{var e;return null!==(e=_.readString(t))&&void 0!==e?e:\"\"})))&&void 0!==u?u:[]);case\"not\":return s(t.fromJson(E.invert));case\"stone_depth\":return n(null!==(c=_.readInt(E.offset))&&void 0!==c?c:0,null!==(d=_.readBoolean(E.add_surface_depth))&&void 0!==d&&d,null!==(f=_.readInt(E.secondary_depth_range))&&void 0!==f?f:0,\"ceiling\"===_.readString(E.surface_type));case\"vertical_gradient\":return r(null!==(g=_.readString(E.random_name))&&void 0!==g?g:\"\",Ht.fromJson(E.true_at_and_below),Ht.fromJson(E.false_at_and_above));case\"water\":return o(null!==(p=_.readInt(E.offset))&&void 0!==p?p:0,null!==(m=_.readInt(E.surface_depth_multiplier))&&void 0!==m?m:0,null!==(v=_.readBoolean(E.add_surface_depth))&&void 0!==v&&v);case\"y_above\":return a(Ht.fromJson(E.anchor),null!==(b=_.readInt(E.surface_depth_multiplier))&&void 0!==b?b:0,null!==(S=_.readBoolean(E.add_surface_depth))&&void 0!==S&&S)}return t.FALSE},t.abovePreliminarySurface=e,t.biome=i,t.not=s,t.stoneDepth=n,t.verticalGradient=r,t.water=o,t.yAbove=a}(jt||(jt={}));class ie{constructor(t,e,i){this.biomeSource=e,this.settings=i,this.sampler=new Qt(i.noise,i.noiseCavesEnabled,t,i.legacyRandomSource),this.noiseChunkCache=new Map,this.materialRule=Mt.fromList([(t,e,i,s)=>t.updateNoiseAndGenerateBaseState(e,i,s)]),this.surfaceSystem=new te(i.surfaceRule,i.defaultBlock,t)}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=Ot.cellWidth(this.settings.noise),r=Ot.cellHeight(this.settings.noise),o=Math.floor(16/n),a=Math.floor(i/r),l=Math.floor((s-i)/r),h=y.minBlockX(t.pos),u=y.minBlockZ(t.pos),c=this.getNoiseChunk(t);c.initializeForFirstCellX();for(let i=0;i=0;d-=1){c.selectCellYZ(d,s);for(let l=r-1;l>=0;l-=1){const f=(a+d)*r+l,g=15&f,p=t.getSectionIndex(f);t.getSectionIndex(o.minBlockY)!==p&&(o=t.getOrCreateSection(p));const m=l/r;c.updateForY(m);for(let t=0;te))}getNoiseChunk(t){return M(this.noiseChunkCache,y.toLong(t.pos),(()=>{const e=Math.max(t.minY,this.settings.noise.minY),i=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),s=Ot.cellWidth(this.settings.noise),n=Ot.cellHeight(this.settings.noise),r=Math.floor(16/s),o=Math.floor(e/n),a=Math.floor((i-e)/n),l=y.minBlockX(t.pos),h=y.minBlockZ(t.pos);return new Kt(r,a,o,this.sampler,l,h,(()=>0),this.settings)}))}}!function(t){t.fromJson=function(t){var e,i,s,n,r,o,a,l,h,u,c;const d=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{structures:Xt.fromJson(d.structures),surfaceRule:zt.fromJson(d.surface_rule),noise:Ot.fromJson(d.noise),defaultBlock:x.fromJson(d.default_block),defaultFluid:x.fromJson(d.default_fluid),bedrockRoofPosition:null!==(i=_.readInt(d.bedrock_roof_position))&&void 0!==i?i:0,bedrockFloorPosition:null!==(s=_.readInt(d.bedrock_floor_position))&&void 0!==s?s:0,seaLevel:null!==(n=_.readInt(d.sea_level))&&void 0!==n?n:0,disableMobGeneration:null!==(r=_.readBoolean(d.disable_mob_generation))&&void 0!==r&&r,aquifersEnabled:null!==(o=_.readBoolean(d.aquifers_enabled))&&void 0!==o&&o,noiseCavesEnabled:null!==(a=_.readBoolean(d.noise_caves_enabled))&&void 0!==a&&a,deepslateEnabled:null!==(l=_.readBoolean(d.deepslate_enabled))&&void 0!==l&&l,oreVeinsEnabled:null!==(h=_.readBoolean(d.ore_veins_enabled))&&void 0!==h&&h,noodleCavesEnabled:null!==(u=_.readBoolean(d.noodle_caves_enabled))&&void 0!==u&&u,legacyRandomSource:null!==(c=_.readBoolean(d.legacy_random_source))&&void 0!==c&&c}}}(Jt||(Jt={})),function(t){t.fromJson=function(t){var e;const i=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{stronghold:_.compose(i.stronghold,_.readObject,(t=>{var e,i,s;return{distance:null!==(e=_.readInt(t.distance))&&void 0!==e?e:0,spread:null!==(i=_.readInt(t.spread))&&void 0!==i?i:0,count:null!==(s=_.readInt(t.count))&&void 0!==s?s:0}})),structures:_.readMap(i.structures,(t=>{var e;return(t=>{var e,i,s;return{spacing:null!==(e=_.readInt(t.spacing))&&void 0!==e?e:0,separation:null!==(i=_.readInt(t.separation))&&void 0!==i?i:0,salt:null!==(s=_.readInt(t.salt))&&void 0!==s?s:0}})(null!==(e=_.readObject(t))&&void 0!==e?e:{})}))}}}(Xt||(Xt={}));export{st as BlendedNoise,vt as BlockColors,It as BlockDefinition,_t as BlockModel,a as BlockPos,x as BlockState,C as Chunk,y as ChunkPos,T as ChunkSection,Dt as Climate,ot as ConstantProvider,r as Direction,Zt as FixedBiome,Gt as FlatNoiseData,et as ImprovedNoise,_ as Json,$ as LegacyPositionalRandom,q as LegacyRandom,Mt as MaterialRule,Wt as MultiNoise,u as NbtReader,c as NbtWriter,Kt as NoiseChunk,ie as NoiseChunkGenerator,Jt as NoiseGeneratorSettings,$t as NoiseInterpolator,R as NoiseParameters,Qt as NoiseSampler,P as NoiseSamplingSettings,Ot as NoiseSettings,Lt as NoiseSlideSettings,Yt as Noises,nt as NormalNoise,B as NumberProvider,it as PerlinNoise,rt as PerlinSimplexNoise,tt as SimplexNoise,at as Spline,k as Structure,Tt as StructureRenderer,Xt as StructureSettings,jt as SurfaceCondition,ee as SurfaceContext,zt as SurfaceRule,te as SurfaceSystem,Ut as TerrainInfo,qt as TerrainShaper,kt as TextureAtlas,Ht as VerticalAnchor,Vt as WorldgenContext,Q as XoroshiroPositionalRandom,K as XoroshiroRandom,X as binarySearch,L as clamp,H as clampedLerp,J as clampedMap,M as computeIfAbsent,N as getListTag,F as getOptional,Z as getSeed,A as getTag,V as inverseLerp,D as lazy,U as lerp,Y as lerp2,G as lerp3,W as longfromBytes,j as map,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,S as write,I as writeChunk,b as writeCompressed,E as writeRegion,v as writeUncompressed};\n//# sourceMappingURL=deepslate.esm.js.map\n"],"names":["t","i.create","i.transformMat4","s.create","s.identity","s.translate","s.rotateY","n.toRadian","s.rotateX","s.scale","i.fromValues","s.rotate","i.negate","s.perspective","i.subtract","i.cross","i.normalize","i.equals","s.copy"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"deepslate.esm.feae856d.js","sources":["../../node_modules/deepslate-1.18/dist/deepslate.esm.js"],"sourcesContent":["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 I(t,e,i,s){const n=w(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 w(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 A(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 N(t,e,i,s){const n=A(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 F(t,e){try{return t()}catch(t){return e}}var _,y,P,R,B;!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}}(_||(_={}));class x{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=A(t.value,\"Name\",\"string\"),i=F((()=>A(t.value,\"Properties\",\"compound\")),{}),s=Object.keys(i).reduce(((t,e)=>Object.assign(Object.assign({},t),{[e]:A(i,e,\"string\")})),{});return new x(e,s)}static fromJson(t){var e,i;const s=null!==(e=_.readObject(t))&&void 0!==e?e:{},n=null!==(i=_.readString(s.Name))&&void 0!==i?i:\"minecraft:stone\",r=_.readMap(s.Properties,(t=>{var e;return null!==(e=_.readString(t))&&void 0!==e?e:\"\"}));return new x(n,r)}}x.AIR=new x(\"minecraft:air\");class T{constructor(t){this.minY=t,this.storage=Array(T.SIZE),this.palette=[x.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:x.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}}T.WIDTH=16,T.SIZE=T.WIDTH*T.WIDTH*T.WIDTH;class C{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:x.AIR}setBlockState(t,e){const[i,s,n]=t,r=this.getSectionIndex(s);let o=this.sections[r];if(null===o){if(e.equals(x.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 T(this.minSection+t)),this.sections[t]}}!function(t){function e(t,e){return BigInt(4294967295&t)|BigInt(4294967295&e)<>4,t[2]>>4]},t.fromLong=function(t){return[4294967295&Number(t),Number(t>>BigInt(32))]},t.toLong=function(t){return e(t[0],t[1])},t.asLong=e,t.minBlockX=function(t){return t[0]<<4},t.minBlockZ=function(t){return t[1]<<4},t.maxBlockX=function(t){return 15+(t[0]<<4)},t.maxBlockZ=function(t){return 15+(t[1]<<4)}}(y||(y={}));class k{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 x(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]x.fromNbt({name:\"\",value:t}))),s=N(t.value,\"blocks\",\"compound\").map((t=>({pos:N(t,\"pos\",\"int\",3),state:A(t,\"state\",\"int\"),nbt:F((()=>A(t,\"nbt\",\"compound\")),void 0)})));return new k(e,i,s)}}function D(t){let e=null;return()=>(null==e&&(e=t()),e)}function M(t,e,i){const s=t.get(e);if(s)return s;const n=i(e);return t.set(e,n),n}function O(t){return t*t}function L(t,e,i){return Math.max(e,Math.min(i,t))}function U(t,e,i){return e+t*(i-e)}function Y(t,e,i,s,n,r){return U(e,U(t,i,s),U(t,n,r))}function G(t,e,i,s,n,r,o,a,l,h,u){return U(i,Y(t,e,s,n,r,o),Y(t,e,a,l,h,u))}function H(t,e,i){return i<0?t:i>1?e:U(i,t,e)}function V(t,e,i){return(t-e)/(i-e)}function z(t){return t*t*t*(t*(6*t-15)+10)}function j(t,e,i,s,n){return U(V(t,e,i),s,n)}function J(t,e,i,s,n){return H(s,n,V(t,e,i))}function X(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}function Z(t,e,i){let s=BigInt(3129871*t)^BigInt(i)*BigInt(116129781)^BigInt(e);return s=s*s*BigInt(42317861)+s*BigInt(11),s>>BigInt(16)}function W(t,e,i,s,n,r,o,a){return BigInt(t)<>BigInt(q.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^K.SILVER_RATIO_64,i=e+K.GOLDEN_RATIO_64&BigInt(\"0xFFFFFFFFFFFFFFFF\");return[K.mixStafford13(e),K.mixStafford13(i)]}static rotateLeft(t,e){return t<>BigInt(64)-e}setSeed(t){this.seed=K.upgradeSeedTo128bit(t)}fork(){return new K([this.next(),this.next()])}forkPositional(){return new Q(this.next(),this.next())}next(){const t=this.seed[0];let e=this.seed[1];const i=K.rotateLeft(t+e&BigInt(\"0xFFFFFFFFFFFFFFFF\"),BigInt(17))+t&BigInt(\"0xFFFFFFFFFFFFFFFF\");return e^=t,this.seed=[K.rotateLeft(t,BigInt(49))^e^e<BigInt(\"0x8000000000000000\")&&(t-=BigInt(\"0x10000000000000000\")),t}consume(t){let e=this.seed[0],i=this.seed[1];for(let s=0;s>BigInt(64-t)}nextInt(t){let e=this.next()&BigInt(4294967295);if(t){const i=BigInt(t);let s=e*i,n=s&BigInt(4294967295);if(n>BigInt(32);return Number(r)}{let t=Number(e);return t>=2147483648&&(t-=4294967296),t}}nextFloat(){return Number(this.nextBits(24))*K.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*K.DOUBLE_MULTIPLIER}parityConfigString(){return\"seedLo: \"+this.seed[0]+\", seedHi: \"+this.seed[1]}}K.SILVER_RATIO_64=BigInt(\"7640891576956012809\"),K.GOLDEN_RATIO_64=BigInt(\"-7046029254386353131\"),K.FLOAT_MULTIPLIER=1/Math.pow(2,24),K.DOUBLE_MULTIPLIER=11102230246251565e-32;class Q{constructor(t,e){this.seedLo=t,this.seedHi=e}at(t,e,i){const s=Z(t,e,i)^this.seedLo;return new K([s,this.seedHi])}fromHashOf(t){const i=e(t,{asBytes:!0}),s=W(i[0],i[1],i[2],i[3],i[4],i[5],i[6],i[7]),n=W(i[8],i[9],i[10],i[11],i[12],i[13],i[14],i[15]);return new K([s^this.seedLo,n^this.seedHi])}}class tt{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)*tt.F2,o=Math.floor(t+r),a=t-(o-(i=(o+(s=Math.floor(e+r)))*tt.G2));let l,h;a>(n=e-(s-i))?(l=1,h=0):(l=0,h=1);const u=a-l+tt.G2,c=n-h+tt.G2,d=a-1+2*tt.G2,f=n-1+2*tt.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 H(o/512,a/512,n)/128}}!function(t){t.fromJson=function(t){var e,i,s,n,r;const o=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{xzScale:null!==(i=_.readNumber(o.xz_scale))&&void 0!==i?i:1,yScale:null!==(s=_.readNumber(o.y_scale))&&void 0!==s?s:1,xzFactor:null!==(n=_.readNumber(o.xz_factor))&&void 0!==n?n:80,yFactor:null!==(r=_.readNumber(o.y_factor))&&void 0!==r?r:80}}}(P||(P={}));class nt{constructor(t,{firstOctave:e,amplitudes:i}){this.first=new it(t,e,i),this.second=new it(t,e,i);let s=1/0,n=-1/0;for(let t=0;t{var e;return null!==(e=_.readNumber(t))&&void 0!==e?e:0})))&&void 0!==s?s:[]}}}(R||(R={}));class rt{constructor(t,e){const i=e[e.length-1],s=-e[0]+i+1,n=new Set(e),r=new tt(t);this.noiseLevels=Array(s),i>=0&&i=0&&n.has(i-e)?this.noiseLevels[e]=new tt(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=_.readObject(t))&&void 0!==e?e:{}})))&&void 0!==n?n:[];if(0===h.length)return new ot(0);for(const e of h){const s=null!==(r=_.readNumber(e.location))&&void 0!==r?r:0,n=t.fromJson(e.value,i),a=null!==(o=_.readNumber(e.derivative))&&void 0!==o?o:0;l.addPoint(s,n,a)}return l}}(B||(B={}));class ot{constructor(t){this.value=t}apply(){return this.value}toJson(){return this.value}}class at{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=X(0,this.locations.length,(t=>e({location:t,value:this.values[e].toJson(),derivative:this.derivatives[e]})))}}}const lt=t=>[(t>>16&255)/256,(t>>8&255)/256,(255&t)/256],ht=[124/256,189/256,107/256],ut=lt(6396257),ct=lt(8431445),dt=lt(4764952),ft=lt(4159204),gt=lt(8431445),pt=lt(2129968),mt=t=>[t/8,1-t/32,64*t],vt={large_fern:()=>ht,tall_grass:()=>ht,grass_block:()=>ht,fern:()=>ht,grass:()=>ht,potted_fern:()=>ht,spruce_leaves:()=>ut,birch_leaves:()=>ct,oak_leaves:()=>dt,jungle_leaves:()=>dt,acacia_leaves:()=>dt,dark_oak_leaves:()=>dt,vine:()=>dt,water:()=>ft,bubble_column:()=>ft,cauldron:()=>ft,redstone_wire:t=>{var e;return(t=>{const e=t/15;return[.6*e+(e>0?.4:.3),L(e*e*.7-.5,0,1),L(e*e*.6-.7,0,1)]})(parseInt(null!==(e=t.power)&&void 0!==e?e:\"0\"))},sugar_cane:()=>ht,attached_melon_stem:()=>gt,attached_pumpkin_stem:()=>gt,melon_stem:t=>{var e;return mt(parseInt(null!==(e=t.age)&&void 0!==e?e:\"0\"))},pumpkin_stem:t=>{var e;return mt(parseInt(null!==(e=t.age)&&void 0!==e?e:\"0\"))},lily_pad:()=>pt};var bt;function St(...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 Et(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=bt.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]),Et(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=St(...f);return Et(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 It(t,e.variants,e.multipart)}}const wt={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]},At={x:[1,0,0],y:[0,1,0],z:[0,0,1]},Nt=1.41421356237,Ft={x:[1,Nt,Nt],y:[Nt,1,Nt],z:[Nt,Nt,1]};class _t{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:St(...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,S,E;const I=r.from[0],w=r.from[1],A=r.from[2],N=r.to[0],F=r.to[1],_=r.to[2],y=[],P=[],R=[],B=[],x=(i,s,n)=>{var r,l,h,u,c,d,f,g,p,m,v,b;const[S,E,I,w]=a.getTextureUV(this.getTexture(i.texture)),A=(I-S)/16,N=(w-E)/16,F=A/16,_=N/16;s[0]=(null!==(l=null===(r=i.uv)||void 0===r?void 0:r[0])&&void 0!==l?l:s[0])*A+F,s[1]=(null!==(u=null===(h=i.uv)||void 0===h?void 0:h[1])&&void 0!==u?u:s[1])*N+_,s[2]=(null!==(d=null===(c=i.uv)||void 0===c?void 0:c[2])&&void 0!==d?d:s[2])*A-F,s[3]=(null!==(g=null===(f=i.uv)||void 0===f?void 0:f[3])&&void 0!==g?g:s[3])*N-_;const x=wt[null!==(p=i.rotation)&&void 0!==p?p:0];P.push(S+s[x[0]],E+s[x[1]],S+s[x[2]],E+s[x[3]],S+s[x[4]],E+s[x[5]],S+s[x[6]],E+s[x[7]]);const T=(null!==(m=i.tintindex)&&void 0!==m?m:-1)>=0&&null!==(b=null===(v=vt[t.slice(10)])||void 0===v?void 0:v.call(vt,e))&&void 0!==b?b:[1,1,1];R.push(...T,...T,...T,...T),y.push(...n),B.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]||x(r.faces.up,[I,16-_,N,16-A],[I,F,_,N,F,_,N,F,A,I,F,A]),!(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]||x(r.faces.down,[16-_,16-N,16-A,16-I],[I,w,A,N,w,A,N,w,_,I,w,_]),!(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]||x(r.faces.south,[I,16-F,N,16-w],[I,w,_,N,w,_,N,F,_,I,F,_]),!(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]||x(r.faces.north,[16-N,16-F,16-I,16-w],[N,w,A,I,w,A,I,F,A,N,F,A]),!(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]||x(r.faces.east,[16-_,16-F,16-A,16-w],[N,w,_,N,w,A,N,F,A,N,F,_]),!(null===(E=null===(S=r.faces)||void 0===S?void 0:S.west)||void 0===E?void 0:E.texture)||r.faces.west.cullface&&l[r.faces.west.cullface]||x(r.faces.west,[A,16-F,_,16-w],[I,w,A,I,w,_,I,F,_,I,F,A]);const T=s.create();if(s.identity(T),r.rotation){const t=i.fromValues(...r.rotation.origin);s.translate(T,T,t),s.rotate(T,T,n.toRadian(r.rotation.angle),At[r.rotation.axis]),r.rotation.rescale&&s.scale(T,T,Ft[r.rotation.axis]),i.negate(t,t),s.translate(T,T,t)}const C=new Float32Array(y);return Et(C,T),{position:C,texCoord:P,tintColor:R,index:B}}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 _t(t,i,e.textures,e.elements)}}class yt{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 Pt(t,e,i,s,n){const r=new It(\"\",{\"\":{model:\"\"}},void 0),o={getBlockModel:()=>n};return n.flatten(o),r.getBuffers(t,{},e,o,i,s)}function Rt(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 Pt(`minecraft:${t}`,s,e,n,new _t(\"\",\"\",{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 Bt={\"minecraft:water\":(t,e,i,s)=>Rt(\"water\",t,parseInt(e.level),i,s,0),\"minecraft:lava\":(t,e,i,s)=>Rt(\"lava\",t,parseInt(e.level),i,s),\"minecraft:chest\":(t,e,i)=>function(t,e,i,s){return Pt(\"minecraft:chest\",s,t,{},new _t(\"\",\"\",{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(Bt));class Tt{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 yt(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 yt(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 yt(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),Et(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,St(...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,St(...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=Bt[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 Ct(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 kt{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 Ct(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=>Ct(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 kt(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 kt.drawInvalidTexture(e),new kt(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 Dt,Mt,Ot,Lt,Ut,Yt,Gt,Ht,Vt,zt,jt,Jt,Xt;!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=_.readArray(t,(t=>_.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=_.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=_.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}(Dt||(Dt={}));class Zt{constructor(t){this.biome=t}getBiome(){return this.biome}static fromJson(t){var e,i;const s=null!==(e=_.readObject(t))&&void 0!==e?e:{},n=null!==(i=_.readString(s.biome))&&void 0!==i?i:\"minecraft:the_void\";return new Zt(n)}}class Wt{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=_.readObject(t))&&void 0!==e?e:{},n=(null!==(i=_.readArray(s.biomes,(t=>{var e;return(t=>{var e;return{biome:null!==(e=_.readString(t.biome))&&void 0!==e?e:\"minecraft:the_void\",parameters:Dt.ParamPoint.fromJson(t.parameters)}})(null!==(e=_.readObject(t))&&void 0!==e?e:{})})))&&void 0!==i?i:[]).map((t=>[t.parameters,()=>t.biome]));return new Wt(new Dt.Parameters(n))}}class qt{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=_.readObject(t))&&void 0!==e?e:{};return new qt(B.fromJson(i.offset,this.EXTRACTOR),B.fromJson(i.factor,this.EXTRACTOR),B.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)+qt.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 at(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 at(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 at(this.CONTINENTS).addPoint(.11,0).addPoint(.03,this.buildErosionJaggednessSpline(1,.5,0,0)).addPoint(.65,this.buildErosionJaggednessSpline(1,1,1,0));return new qt(n,r,o)}static getErosionFactor(t,e){const i=new at(this.WEIRDNESS).addPoint(-.2,6.3).addPoint(.2,t),s=new at(this.EROSION).addPoint(-.6,i).addPoint(-.5,new at(this.WEIRDNESS).addPoint(-.05,6.3).addPoint(.05,2.67)).addPoint(-.35,i).addPoint(-.25,i).addPoint(-.1,new at(this.WEIRDNESS).addPoint(-.05,2.67).addPoint(.05,6.3)).addPoint(.03,i);if(e){const e=new at(this.WEIRDNESS).addPoint(0,t).addPoint(.1,.625),i=new at(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 at(this.RIDGES).addPoint(-.7,i).addPoint(-.15,1.37),n=new at(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(U(s,.6,1.5),a),h=this.buildMountainRidgeSplineWithPoints(U(s,.6,1),a),u=this.buildMountainRidgeSplineWithPoints(s,a),c=this.ridgeSpline(t-.15,.5*s,U(.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 at(this.RIDGES).addPoint(-1,t).addPoint(-.4,f).addPoint(0,i+.07),m=this.ridgeSpline(-.02,r,r,e,i,0),v=new at(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 at(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 at(qt.WEIRDNESS).addPoint(-.01,.63*t).addPoint(.01,.3*t)}}qt.GLOBAL_OFFSET=-.50375,qt.EXTRACTOR=t=>{var e;const i=null!==(e=_.readString(t))&&void 0!==e?e:\"continents\";return qt.extractor(i)},qt.CONTINENTS=qt.extractor(\"continents\"),qt.EROSION=qt.extractor(\"erosion\"),qt.WEIRDNESS=qt.extractor(\"weirdness\"),qt.RIDGES=qt.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}}}(Mt||(Mt={})),function(t){function e(t){return t.ySize<<2}t.fromJson=function(t){var e,i,s,n,r,o,a,l;const h=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{minY:null!==(i=_.readInt(h.min_y))&&void 0!==i?i:0,height:null!==(s=_.readInt(h.height))&&void 0!==s?s:256,xzSize:null!==(n=_.readInt(h.size_horizontal))&&void 0!==n?n:1,ySize:null!==(r=_.readInt(h.size_vertical))&&void 0!==r?r:1,sampling:P.fromJson(h.sampling),topSlide:Lt.fromJson(h.top_slide),bottomSlide:Lt.fromJson(h.bottom_slide),terrainShaper:qt.fromJson(h.terrain_shaper),islandNoiseOverride:null!==(o=_.readBoolean(h.island_noise_override))&&void 0!==o&&o,isAmplified:null!==(a=_.readBoolean(h.amplified))&&void 0!==a&&a,hasLargeBiomes:null!==(l=_.readBoolean(h.large_biomes))&&void 0!==l&&l}},t.cellHeight=e,t.cellWidth=function(t){return t.xzSize<<2},t.cellCountY=function(t){return t.height/e(t)},t.minCellY=function(t){return Math.floor(t.minY/e(t))}}(Ot||(Ot={})),function(t){t.fromJson=function(t){var e,i,s,n;const r=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{target:null!==(i=_.readNumber(r.target))&&void 0!==i?i:0,size:null!==(s=_.readInt(r.size))&&void 0!==s?s:0,offset:null!==(n=_.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 H(t.target,e,s)}}(Lt||(Lt={}));class $t{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=$t.allocateSlice(t.cellCountY,t.cellCountXZ),this.slice1=$t.allocateSlice(t.cellCountY,t.cellCountXZ)}static allocateSlice(t,e){const i=Array(e+1);for(let s=0;s>2,this.firstNoiseZ=r>>2,this.interpolators=[];const h=t*l>>2;this.noiseData=Array(h+1);for(let t=0;t<=h;t+=1){const e=this.firstNoiseX+t;this.noiseData[t]=Array(h+1);for(let i=0;i<=h;i+=1){const n=this.firstNoiseZ+i;this.noiseData[t][i]=s.noiseData(e,n)}}this.preliminarySurfaceLevel=new Map,this.baseNoise=s.makeBaseNoiseFiller(this,o,a.noodleCavesEnabled)}getNoiseData(t,e){return this.noiseData[t-this.firstNoiseX][e-this.firstNoiseZ]}getPreliminarySurfaceLevel(t,e){return M(this.preliminarySurfaceLevel,y.asLong(t,e),(()=>{const i=t-this.firstNoiseX,s=e-this.firstNoiseZ,n=this.noiseData.length,r=i>=0&&s>=0&&it.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}}}(Ut||(Ut={})),function(t){const e=new Map;function i(t,i,s){const n=Object.assign({name:`minecraft:${t}`},R.create(i,s));return e.set(t,n),n}t.TEMPERATURE=i(\"temperature\",-10,[1.5,0,1,0,0,0]),t.VEGETATION=i(\"vegetation\",-8,[1,1,0,0,0,0]),t.CONTINENTALNESS=i(\"continentalness\",-9,[1,1,2,2,2,1,1,1,1]),t.EROSION=i(\"erosion\",-9,[1,1,0,1,1]),t.TEMPERATURE_LARGE=i(\"temperature_large\",-12,[1.5,0,1,0,0,0]),t.VEGETATION_LARGE=i(\"vegetation_large\",-10,[1,1,0,0,0,0]),t.CONTINENTALNESS_LARGE=i(\"continentalness_large\",-11,[1,1,2,2,2,1,1,1,1]),t.EROSION_LARGE=i(\"erosion_large\",-11,[1,1,0,1,1]),t.RIDGE=i(\"ridge\",-7,[1,2,1,0,0,0]),t.SHIFT=i(\"offset\",-3,[1,1,1,0]),t.PILLAR=i(\"pillar\",-7,[1,1]),t.PILLAR_RARENESS=i(\"pillar_rareness\",-8,[1]),t.PILLAR_THICKNESS=i(\"pillar_thickness\",-8,[1]),t.SPAGHETTI_2D=i(\"spaghetti_2d\",-8,[1]),t.SPAGHETTI_2D_ELEVATION=i(\"spaghetti_2d_elevation\",-8,[1]),t.SPAGHETTI_2D_MODULATOR=i(\"spaghetti_2d_modulator\",-8,[1]),t.SPAGHETTI_2D_THICKNESS=i(\"spaghetti_2d_thickness\",-8,[1]),t.SPAGHETTI_3D_1=i(\"spaghetti_3d_1\",-8,[1]),t.SPAGHETTI_3D_2=i(\"spaghetti_3d_2\",-8,[1]),t.SPAGHETTI_3D_RARITY=i(\"spaghetti_3d_rarity\",-8,[1]),t.SPAGHETTI_3D_THICKNESS=i(\"spaghetti_3d_thickness\",-8,[1]),t.SPAGHETTI_ROUGHNESS=i(\"spaghetti_roughness\",-8,[1]),t.SPAGHETTI_ROUGHNESS_MODULATOR=i(\"spaghetti_roughness_modulator\",-8,[1]),t.CAVE_ENTRANCE=i(\"cave_entrance\",-7,[.4,.5,1]),t.CAVE_LAYER=i(\"cave_layer\",-8,[1]),t.CAVE_CHEESE=i(\"cave_cheese\",-8,[.5,1,2,1,2,1,0,2,0]),t.NOODLE=i(\"noodle\",-8,[1]),t.NOODLE_THICKNESS=i(\"noodle_thickness\",-8,[1]),t.NOODLE_RIDGE_A=i(\"noodle_ridge_a\",-7,[1]),t.NOODLE_RIDGE_B=i(\"noodle_ridge_b\",-7,[1]),t.JAGGED=i(\"jagged\",-16,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),t.SURFACE=i(\"surface\",-6,[1,1,1]),t.SURFACE_SECONDARY=i(\"surface_secondary\",-6,[1,1,0,1]),t.instantiate=function(t,e){return new nt(t.fromHashOf(e.name),e)}}(Yt||(Yt={}));class Qt{constructor(t,e,i,s=!1){this.settings=t,this.isNoiseCavesEnabled=e;const n=t.hasLargeBiomes,r=(s?new q(i):K.create(i)).forkPositional();s?(this.blendedNoise=new st(new q(i),t.sampling,Ot.cellWidth(t),Ot.cellHeight(t)),this.temperatureNoise=new nt(new q(i),R.create(-7,[1,1])),this.humidityNoise=new nt(new q(i+BigInt(1)),R.create(-7,[1,1])),this.offsetNoise=new nt(new q(i+BigInt(5)),R.create(0,[0]))):(this.blendedNoise=new st(r.fromHashOf(\"minecraft:terrain\"),t.sampling,Ot.cellWidth(t),Ot.cellHeight(t)),this.temperatureNoise=Yt.instantiate(r,n?Yt.TEMPERATURE_LARGE:Yt.TEMPERATURE),this.humidityNoise=Yt.instantiate(r,n?Yt.VEGETATION_LARGE:Yt.VEGETATION),this.offsetNoise=Yt.instantiate(r,Yt.SHIFT)),this.continentalnessNoise=Yt.instantiate(r,n?Yt.CONTINENTALNESS_LARGE:Yt.CONTINENTALNESS),this.erosionNoise=Yt.instantiate(r,n?Yt.EROSION_LARGE:Yt.EROSION),this.weirdnessNoise=Yt.instantiate(r,Yt.RIDGE),this.pillarNoise=Yt.instantiate(r,Yt.PILLAR),this.pillarRarenessModulator=Yt.instantiate(r,Yt.PILLAR_RARENESS),this.pillarThicknessModulator=Yt.instantiate(r,Yt.PILLAR_THICKNESS),this.spaghetti2DNoise=Yt.instantiate(r,Yt.SPAGHETTI_2D),this.spaghetti2DElevationModulator=Yt.instantiate(r,Yt.SPAGHETTI_2D_ELEVATION),this.spaghetti2DRarityModulator=Yt.instantiate(r,Yt.SPAGHETTI_2D_MODULATOR),this.spaghetti2DThicknessModulator=Yt.instantiate(r,Yt.SPAGHETTI_2D_THICKNESS),this.spaghetti3DNoise1=Yt.instantiate(r,Yt.SPAGHETTI_3D_1),this.spaghetti3DNoise2=Yt.instantiate(r,Yt.SPAGHETTI_3D_2),this.spaghetti3DRarityModulator=Yt.instantiate(r,Yt.SPAGHETTI_3D_RARITY),this.spaghetti3DThicknessModulator=Yt.instantiate(r,Yt.SPAGHETTI_3D_THICKNESS),this.spaghettiRoughnessNoise=Yt.instantiate(r,Yt.SPAGHETTI_ROUGHNESS),this.spaghettiRoughnessModulator=Yt.instantiate(r,Yt.SPAGHETTI_ROUGHNESS_MODULATOR),this.bigEntranceNoise=Yt.instantiate(r,Yt.CAVE_ENTRANCE),this.layerNoise=Yt.instantiate(r,Yt.CAVE_LAYER),this.cheeseNoise=Yt.instantiate(r,Yt.CAVE_CHEESE);const o=t.minY+4,a=o+t.height;this.noodleToggleNoise=this.yLimitedInterpolatable(Yt.instantiate(r,Yt.NOODLE),o,a,-1,1),this.noodleThicknessNoise=this.yLimitedInterpolatable(Yt.instantiate(r,Yt.NOODLE_THICKNESS),o,a,0,1),this.noodleRidgeANoise=this.yLimitedInterpolatable(Yt.instantiate(r,Yt.NOODLE_RIDGE_A),o,a,0,8/3),this.noodleRidgeBNoise=this.yLimitedInterpolatable(Yt.instantiate(r,Yt.NOODLE_RIDGE_B),o,a,0,8/3),this.jaggedNoise=Yt.instantiate(r,Yt.JAGGED),this.shaper=t.terrainShaper,this.baseNoise=t=>t.createNoiseInterpolator(((e,i,s)=>this.calculateBlendedBaseNoise(e,i,s,t.getNoiseData(e>>2,s>>2).terrainInfo)))}yLimitedInterpolatable(t,e,i,s,n){const r=(r,o,a)=>o>i||ot.createNoiseInterpolator(r)}noiseData(t,e){const i=t+this.getOffset(t,0,e),s=e+this.getOffset(e,t,0),n=this.getContinentalness(i,s),r=this.getErosion(i,s),o=this.getWeirdness(i,s),a=this.terrainInfo(n,r,o);return Gt.create(i,s,n,r,o,a)}sample(t,e,i){return this.target(t,e,i,this.noiseData(t,i))}target(t,e,i,s){const n=s.shiftedX,r=e+this.getOffset(e,i,t),o=s.shiftedZ,a=this.getTemperature(n,r,o),l=this.getHumidity(n,r,o),h=this.computeDimensionDensity(e<<2,s.terrainInfo);return Dt.target(a,l,s.continentalness,s.erosion,h,s.weirdness)}terrainInfo(t,e,i){const s=qt.point(t,e,i),n=this.shaper.offset(s),r=this.shaper.factor(s),o=this.shaper.jaggedness(s);return Ut.create(n,r,o)}getOffset(t,e,i){return 4*this.offsetNoise.sample(t,e,i)}getTemperature(t,e,i){return this.temperatureNoise.sample(t,e,i)}getHumidity(t,e,i){return this.humidityNoise.sample(t,e,i)}getContinentalness(t,e){return this.continentalnessNoise.sample(t,0,e)}getErosion(t,e){return this.erosionNoise.sample(t,0,e)}getWeirdness(t,e){return this.weirdnessNoise.sample(t,0,e)}makeBaseNoiseFiller(t,e,i){const s=this.baseNoise(t),n=i?this.noodleToggleNoise(t):()=>-1,r=i?this.noodleThicknessNoise(t):()=>0,o=i?this.noodleRidgeANoise(t):()=>0,a=i?this.noodleRidgeBNoise(t):()=>0;return(t,i,l)=>{let h=s();if(h=L(.64*h,-1,1),h=h/2-h*h*h/24,n()>=0){const t=J(r(),-1,1,.05,.1),e=Math.abs(1.5*o())-t,i=Math.abs(1.5*a())-t;h=Math.min(h,Math.max(e,i))}return h+=e(t,i,l),h>0?null:x.AIR}}calculateBlendedBaseNoise(t,e,i,s){const n=this.blendedNoise.sample(t,e,i);return this.calculateBaseNoise(t,e,i,s,n,!this.isNoiseCavesEnabled,!0)}calculateBaseNoise(t,e,i,s,n,r,o){if(!this.settings.islandNoiseOverride){const r=o?this.sampleJaggedNoise(s.jaggedness,t,i):0,a=this.computeDimensionDensity(e,s),l=s.factor*(r+a);n+=l>0?4*l:l}let a=-64,l=64;if(!r&&n>=-64){const s=n-1.5625,r=this.getBigEntrances(t,e,i),o=this.getSpaghettiRoughness(t,e,i),h=this.getSpaghetti3D(t,e,i),u=Math.min(r,h+o);if(s<0)l=u;else{const r=this.getLayerizedCaverns(t,e,i);if(r>64)n=64;else{n=this.getCheese(t,e,i)+r+H(.5,0,1.28*s)}const h=this.getSpaghetti2D(t,e,i);a=this.getPillars(t,e,i),l=Math.min(u,h+o)}}return n=L(n,a,l),n=L(n=this.applySlide(n,e/Ot.cellHeight(this.settings)),-64,64)}sampleJaggedNoise(t,e,i){if(0===t)return 0;const s=this.jaggedNoise.sample(1500*e,0,1500*i);return s>0?t*s:t/2*s}computeDimensionDensity(t,e){return 1-t/128+e.offset}getBigEntrances(t,e,i){return this.bigEntranceNoise.sample(.75*t,.5*e,.75*i)+.37+H(.3,0,(e+10)/40)}getSpaghettiRoughness(t,e,i){const s=this.spaghettiRoughnessNoise.sample(t,e,i),n=j(this.spaghettiRoughnessModulator.sample(t,e,i),-1,1,0,1);return(.4-Math.abs(s))*n}getSpaghetti2D(t,e,i){const s=this.quantizeSpaghettiRarity2D(this.spaghetti2DRarityModulator.sample(2*t,e,2*i)),n=j(this.spaghetti2DThicknessModulator.sample(2*t,e,2*i),-1,1,.6,1.3),r=this.sampleWithRarity(this.spaghetti2DNoise,t,e,i,s),o=Math.abs(s*r)-.083*n,a=Ot.minCellY(this.settings),l=j(this.spaghetti2DElevationModulator.sample(t,0,i),-1,1,a,8),h=Math.abs(l-e/8)-1*n;return L(Math.max(h,o),-1,1)}getSpaghetti3D(t,e,i){const s=this.quantizeSpaghettiRarity3D(this.spaghetti3DRarityModulator.sample(2*t,e,2*i)),n=j(this.spaghetti3DThicknessModulator.sample(t,e,i),-1,1,.065,.088),r=this.sampleWithRarity(this.spaghetti3DNoise1,t,e,i,s),o=Math.abs(s*r)-n,a=this.sampleWithRarity(this.spaghetti3DNoise2,t,e,i,s),l=Math.abs(s*a)-n;return L(Math.max(o,l),-1,1)}quantizeSpaghettiRarity2D(t){return t<-.75?.5:t<-.5?.75:t<.5?1:t<.75?2:3}quantizeSpaghettiRarity3D(t){return t<-.5?.75:t<0?1:t<.5?1.5:2}sampleWithRarity(t,e,i,s,n){return t.sample(e/n,i/n,s/n)}getLayerizedCaverns(t,e,i){return 4*O(this.layerNoise.sample(t,8*e,i))}getCheese(t,e,i){return L(this.cheeseNoise.sample(t,e/1.5,i)+.27,-1,1)}getPillars(t,e,i){const s=j(this.pillarRarenessModulator.sample(t,e,i),-1,1,0,2),n=j(this.pillarThicknessModulator.sample(t,e,i),-1,1,0,1.1),r=this.pillarNoise.sample(25*t,.3*e,25*i),o=Math.pow(n,3)*(2*r-s);return o<=.03?Number.MIN_SAFE_INTEGER:o}applySlide(t,e){const i=e-Ot.minCellY(this.settings);return t=Lt.apply(this.settings.topSlide,t,Ot.cellCountY(this.settings)-i),t=Lt.apply(this.settings.bottomSlide,t,i)}getPreliminarySurfaceLevel(t,e,i){const s=Ot.minCellY(this.settings)+Ot.cellCountY(this.settings),n=Ot.minCellY(this.settings),r=Ot.cellHeight(this.settings);for(let o=s;o>=n;o-=1){const s=o*r;if(this.calculateBaseNoise(t,s,e,i,-.703125,!0,!1)>=.390625)return s}return Number.MAX_SAFE_INTEGER}}!function(t){t.create=function(t,e,i,s,n,r){return{shiftedX:t,shiftedZ:e,continentalness:i,weirdness:s,erosion:n,terrainInfo:r}}}(Gt||(Gt={})),function(t){t.fromJson=function(t){var e,i,s,n;const r=null!==(e=_.readObject(t))&&void 0!==e?e:{};return void 0!==r.absolute?(o=null!==(i=_.readNumber(r.absolute))&&void 0!==i?i:0,()=>o):void 0!==r.above_bottom?function(t){return e=>e.minY+t}(null!==(s=_.readNumber(r.above_bottom))&&void 0!==s?s:0):void 0!==r.below_top?function(t){return e=>e.maxY-t}(null!==(n=_.readNumber(r.below_top))&&void 0!==n?n:0):()=>0;var o}}(Ht||(Ht={})),function(t){t.create=function(t,e){return{minY:t,height:e,maxY:t+e-1}}}(Vt||(Vt={}));class te{constructor(t,e,i){this.rule=t,this.defaultBlock=e,this.random=K.create(i).forkPositional(),this.surfaceNoise=Yt.instantiate(this.random,Yt.SURFACE),this.surfaceSecondaryNoise=Yt.instantiate(this.random,Yt.SURFACE_SECONDARY),this.positionalRandoms=new Map}buildSurface(t,e,i,s){const n=y.minBlockX(t.pos),r=y.minBlockZ(t.pos),o=new ee(this,t,e,i,s),l=this.rule(o);for(let e=0;e<16;e+=1){const i=n+e;for(let e=0;e<1;e+=1){const s=r+e;o.updateXZ(i,s);let n=0,h=Number.MIN_SAFE_INTEGER,u=Number.MAX_SAFE_INTEGER;for(let e=t.maxY;e>=t.minY;e-=1){const r=a.create(i,e,s),c=t.getBlockState(r);if(c.equals(x.AIR)){n=0,h=Number.MIN_SAFE_INTEGER;continue}if(c.isFluid()){h===Number.MIN_SAFE_INTEGER&&(h=e+1);continue}if(u>=e){u=Number.MIN_SAFE_INTEGER;for(let n=e-1;n>=t.minY;n-=1){const e=t.getBlockState(a.create(i,n,s));if(e.equals(x.AIR)||e.isFluid()){u=n+1;break}}}n+=1;const d=e-u+1;if(!c.equals(this.defaultBlock))continue;o.updateY(n,d,h,e);const f=l(i,e,s);f&&t.setBlockState(r,f)}}}}getSurfaceDepth(t,e){return 2.75*this.surfaceNoise.sample(t,0,e)+3+.25*this.random.at(t,0,e).nextDouble()}getSurfaceSecondary(t,e){return this.surfaceSecondaryNoise.sample(t,0,e)}getRandom(t){return M(this.positionalRandoms,t,(()=>this.random.fromHashOf(t)))}}class ee{constructor(t,e,i,s,n){this.system=t,this.chunk=e,this.noiseChunk=i,this.context=s,this.getBiome=n,this.blockX=0,this.blockY=0,this.blockZ=0,this.stoneDepthAbove=0,this.stoneDepthBelow=0,this.surfaceDepth=0,this.waterHeight=0,this.biome=()=>\"\",this.surfaceSecondary=()=>0,this.minSurfaceLevel=()=>0}updateXZ(t,e){this.blockX=t,this.blockZ=e,this.surfaceDepth=this.system.getSurfaceDepth(t,e),this.surfaceSecondary=D((()=>this.system.getSurfaceSecondary(t,e))),this.minSurfaceLevel=D((()=>this.calculateMinSurfaceLevel(t,e)))}updateY(t,e,i,s){this.blockY=s,this.stoneDepthAbove=t,this.stoneDepthBelow=e,this.waterHeight=i,this.biome=D((()=>this.getBiome(a.create(this.blockX,this.blockY,this.blockZ))))}calculateMinSurfaceLevel(t,e){const i=t>>4,s=e>>4,n=this.noiseChunk.getPreliminarySurfaceLevel(i<<4,s<<4),r=this.noiseChunk.getPreliminarySurfaceLevel(i+1<<4,s<<4),o=this.noiseChunk.getPreliminarySurfaceLevel(i<<4,s+1<<4),a=this.noiseChunk.getPreliminarySurfaceLevel(i+1<<4,s+1<<4);return Math.floor(Y((15&t)/16,(15&e)/16,n,r,o,a))+this.surfaceDepth-8}}!function(t){function e(t){return()=>()=>t}function i(t){return e=>{const i=t.map((t=>t(e)));return(t,e,s)=>{for(const n of i){const i=n(t,e,s);if(i)return i}}}}function s(t,e){return i=>(s,n,r)=>{if(t(i))return e(i)(s,n,r)}}t.NOOP=()=>()=>{},t.fromJson=function(n){var r,o,a;const l=null!==(r=_.readObject(n))&&void 0!==r?r:{};switch(null===(o=_.readString(l.type))||void 0===o?void 0:o.replace(/^minecraft:/,\"\")){case\"block\":return e(x.fromJson(l.result_state));case\"sequence\":return i(null!==(a=_.readArray(l.sequence,t.fromJson))&&void 0!==a?a:[]);case\"condition\":return s(jt.fromJson(l.if_true),t.fromJson(l.then_run))}return t.NOOP},t.block=e,t.sequence=i,t.condition=s}(zt||(zt={})),function(t){function e(){return t=>t.blockY>=t.minSurfaceLevel()}function i(t){const e=new Set(t);return t=>e.has(t.biome())}function s(t){return e=>!t(e)}function n(t,e,i,s){return n=>{const r=s?n.stoneDepthBelow:n.stoneDepthAbove,o=e?n.surfaceDepth:0,a=0===i?0:j(n.surfaceSecondary(),-1,1,0,i);return r<=1+t+o+a}}function r(t,e,i){return s=>{const n=e(s.context),r=i(s.context);if(s.blockY<=n)return!0;if(s.blockY>=r)return!1;const o=s.system.getRandom(t),a=j(s.blockY,n,r,1,0);return o.nextFloat(){if(s.waterHeight===Number.MIN_SAFE_INTEGER)return!0;const n=i?s.stoneDepthAbove:0;return s.blockY+n>=s.waterHeight+t+s.surfaceDepth*e}}function a(t,e,i){return s=>{const n=i?s.stoneDepthAbove:0;return s.blockY+n>=t(s.context)+s.surfaceDepth*e}}t.FALSE=()=>!1,t.TRUE=()=>!0,t.fromJson=function(e){var l,h,u,c,d,f,g,p,m,v,b,S;const E=null!==(l=_.readObject(e))&&void 0!==l?l:{};switch(null===(h=_.readString(E.type))||void 0===h?void 0:h.replace(/^minecraft:/,\"\")){case\"above_preliminary_surface\":return t=>t.blockY>=t.minSurfaceLevel();case\"biome\":return i(null!==(u=_.readArray(E.biome_is,(t=>{var e;return null!==(e=_.readString(t))&&void 0!==e?e:\"\"})))&&void 0!==u?u:[]);case\"not\":return s(t.fromJson(E.invert));case\"stone_depth\":return n(null!==(c=_.readInt(E.offset))&&void 0!==c?c:0,null!==(d=_.readBoolean(E.add_surface_depth))&&void 0!==d&&d,null!==(f=_.readInt(E.secondary_depth_range))&&void 0!==f?f:0,\"ceiling\"===_.readString(E.surface_type));case\"vertical_gradient\":return r(null!==(g=_.readString(E.random_name))&&void 0!==g?g:\"\",Ht.fromJson(E.true_at_and_below),Ht.fromJson(E.false_at_and_above));case\"water\":return o(null!==(p=_.readInt(E.offset))&&void 0!==p?p:0,null!==(m=_.readInt(E.surface_depth_multiplier))&&void 0!==m?m:0,null!==(v=_.readBoolean(E.add_surface_depth))&&void 0!==v&&v);case\"y_above\":return a(Ht.fromJson(E.anchor),null!==(b=_.readInt(E.surface_depth_multiplier))&&void 0!==b?b:0,null!==(S=_.readBoolean(E.add_surface_depth))&&void 0!==S&&S)}return t.FALSE},t.abovePreliminarySurface=e,t.biome=i,t.not=s,t.stoneDepth=n,t.verticalGradient=r,t.water=o,t.yAbove=a}(jt||(jt={}));class ie{constructor(t,e,i){this.biomeSource=e,this.settings=i,this.sampler=new Qt(i.noise,i.noiseCavesEnabled,t,i.legacyRandomSource),this.noiseChunkCache=new Map,this.materialRule=Mt.fromList([(t,e,i,s)=>t.updateNoiseAndGenerateBaseState(e,i,s)]),this.surfaceSystem=new te(i.surfaceRule,i.defaultBlock,t)}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=Ot.cellWidth(this.settings.noise),r=Ot.cellHeight(this.settings.noise),o=Math.floor(16/n),a=Math.floor(i/r),l=Math.floor((s-i)/r),h=y.minBlockX(t.pos),u=y.minBlockZ(t.pos),c=this.getNoiseChunk(t);c.initializeForFirstCellX();for(let i=0;i=0;d-=1){c.selectCellYZ(d,s);for(let l=r-1;l>=0;l-=1){const f=(a+d)*r+l,g=15&f,p=t.getSectionIndex(f);t.getSectionIndex(o.minBlockY)!==p&&(o=t.getOrCreateSection(p));const m=l/r;c.updateForY(m);for(let t=0;te))}getNoiseChunk(t){return M(this.noiseChunkCache,y.toLong(t.pos),(()=>{const e=Math.max(t.minY,this.settings.noise.minY),i=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),s=Ot.cellWidth(this.settings.noise),n=Ot.cellHeight(this.settings.noise),r=Math.floor(16/s),o=Math.floor(e/n),a=Math.floor((i-e)/n),l=y.minBlockX(t.pos),h=y.minBlockZ(t.pos);return new Kt(r,a,o,this.sampler,l,h,(()=>0),this.settings)}))}}!function(t){t.fromJson=function(t){var e,i,s,n,r,o,a,l,h,u,c;const d=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{structures:Xt.fromJson(d.structures),surfaceRule:zt.fromJson(d.surface_rule),noise:Ot.fromJson(d.noise),defaultBlock:x.fromJson(d.default_block),defaultFluid:x.fromJson(d.default_fluid),bedrockRoofPosition:null!==(i=_.readInt(d.bedrock_roof_position))&&void 0!==i?i:0,bedrockFloorPosition:null!==(s=_.readInt(d.bedrock_floor_position))&&void 0!==s?s:0,seaLevel:null!==(n=_.readInt(d.sea_level))&&void 0!==n?n:0,disableMobGeneration:null!==(r=_.readBoolean(d.disable_mob_generation))&&void 0!==r&&r,aquifersEnabled:null!==(o=_.readBoolean(d.aquifers_enabled))&&void 0!==o&&o,noiseCavesEnabled:null!==(a=_.readBoolean(d.noise_caves_enabled))&&void 0!==a&&a,deepslateEnabled:null!==(l=_.readBoolean(d.deepslate_enabled))&&void 0!==l&&l,oreVeinsEnabled:null!==(h=_.readBoolean(d.ore_veins_enabled))&&void 0!==h&&h,noodleCavesEnabled:null!==(u=_.readBoolean(d.noodle_caves_enabled))&&void 0!==u&&u,legacyRandomSource:null!==(c=_.readBoolean(d.legacy_random_source))&&void 0!==c&&c}}}(Jt||(Jt={})),function(t){t.fromJson=function(t){var e;const i=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{stronghold:_.compose(i.stronghold,_.readObject,(t=>{var e,i,s;return{distance:null!==(e=_.readInt(t.distance))&&void 0!==e?e:0,spread:null!==(i=_.readInt(t.spread))&&void 0!==i?i:0,count:null!==(s=_.readInt(t.count))&&void 0!==s?s:0}})),structures:_.readMap(i.structures,(t=>{var e;return(t=>{var e,i,s;return{spacing:null!==(e=_.readInt(t.spacing))&&void 0!==e?e:0,separation:null!==(i=_.readInt(t.separation))&&void 0!==i?i:0,salt:null!==(s=_.readInt(t.salt))&&void 0!==s?s:0}})(null!==(e=_.readObject(t))&&void 0!==e?e:{})}))}}}(Xt||(Xt={}));export{st as BlendedNoise,vt as BlockColors,It as BlockDefinition,_t as BlockModel,a as BlockPos,x as BlockState,C as Chunk,y as ChunkPos,T as ChunkSection,Dt as Climate,ot as ConstantProvider,r as Direction,Zt as FixedBiome,Gt as FlatNoiseData,et as ImprovedNoise,_ as Json,$ as LegacyPositionalRandom,q as LegacyRandom,Mt as MaterialRule,Wt as MultiNoise,u as NbtReader,c as NbtWriter,Kt as NoiseChunk,ie as NoiseChunkGenerator,Jt as NoiseGeneratorSettings,$t as NoiseInterpolator,R as NoiseParameters,Qt as NoiseSampler,P as NoiseSamplingSettings,Ot as NoiseSettings,Lt as NoiseSlideSettings,Yt as Noises,nt as NormalNoise,B as NumberProvider,it as PerlinNoise,rt as PerlinSimplexNoise,tt as SimplexNoise,at as Spline,k as Structure,Tt as StructureRenderer,Xt as StructureSettings,jt as SurfaceCondition,ee as SurfaceContext,zt as SurfaceRule,te as SurfaceSystem,Ut as TerrainInfo,qt as TerrainShaper,kt as TextureAtlas,Ht as VerticalAnchor,Vt as WorldgenContext,Q as XoroshiroPositionalRandom,K as XoroshiroRandom,X as binarySearch,L as clamp,H as clampedLerp,J as clampedMap,M as computeIfAbsent,N as getListTag,F as getOptional,Z as getSeed,A as getTag,V as inverseLerp,D as lazy,U as lerp,Y as lerp2,G as lerp3,W as longfromBytes,j as map,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,S as write,I as writeChunk,b as writeCompressed,E as writeRegion,v as writeUncompressed};\n//# sourceMappingURL=deepslate.esm.js.map\n"],"names":["t","i.create","i.transformMat4","s.create","s.identity","s.translate","s.rotateY","n.toRadian","s.rotateX","s.scale","i.fromValues","s.rotate","i.negate","s.perspective","i.subtract","i.cross","i.normalize","i.equals","s.copy"],"mappings":"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"} \ No newline at end of file diff --git a/assets/font/index.html b/assets/font/index.html index 0740d7cc..6d2a2506 100644 --- a/assets/font/index.html +++ b/assets/font/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } - - + +
diff --git a/assets/howler.16819b6c.js b/assets/howler.ce49acbd.js similarity index 99% rename from assets/howler.16819b6c.js rename to assets/howler.ce49acbd.js index 3ff4ec96..3dbef526 100644 --- a/assets/howler.16819b6c.js +++ b/assets/howler.ce49acbd.js @@ -1,4 +1,4 @@ -import{u as S}from"./index.41a3dfd7.js";function L(b,g){return g.forEach(function(r){r&&typeof r!="string"&&!Array.isArray(r)&&Object.keys(r).forEach(function(u){if(u!=="default"&&!(u in b)){var i=Object.getOwnPropertyDescriptor(r,u);Object.defineProperty(b,u,i.get?i:{enumerable:!0,get:function(){return r[u]}})}})}),Object.freeze(Object.defineProperty(b,Symbol.toStringTag,{value:"Module"}))}var O={};/*! +import{u as S}from"./index.d528c217.js";function L(b,g){return g.forEach(function(r){r&&typeof r!="string"&&!Array.isArray(r)&&Object.keys(r).forEach(function(u){if(u!=="default"&&!(u in b)){var i=Object.getOwnPropertyDescriptor(r,u);Object.defineProperty(b,u,i.get?i:{enumerable:!0,get:function(){return r[u]}})}})}),Object.freeze(Object.defineProperty(b,Symbol.toStringTag,{value:"Module"}))}var O={};/*! * howler.js v2.2.3 * howlerjs.com * @@ -17,4 +17,4 @@ import{u as S}from"./index.41a3dfd7.js";function L(b,g){return g.forEach(functio * * MIT License */(function(){HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(r){var u=this;if(!u.ctx||!u.ctx.listener)return u;for(var i=u._howls.length-1;i>=0;i--)u._howls[i].stereo(r);return u},HowlerGlobal.prototype.pos=function(r,u,i){var c=this;if(!c.ctx||!c.ctx.listener)return c;if(u=typeof u!="number"?c._pos[1]:u,i=typeof i!="number"?c._pos[2]:i,typeof r=="number")c._pos=[r,u,i],typeof c.ctx.listener.positionX!="undefined"?(c.ctx.listener.positionX.setTargetAtTime(c._pos[0],Howler.ctx.currentTime,.1),c.ctx.listener.positionY.setTargetAtTime(c._pos[1],Howler.ctx.currentTime,.1),c.ctx.listener.positionZ.setTargetAtTime(c._pos[2],Howler.ctx.currentTime,.1)):c.ctx.listener.setPosition(c._pos[0],c._pos[1],c._pos[2]);else return c._pos;return c},HowlerGlobal.prototype.orientation=function(r,u,i,c,d,h){var p=this;if(!p.ctx||!p.ctx.listener)return p;var s=p._orientation;if(u=typeof u!="number"?s[1]:u,i=typeof i!="number"?s[2]:i,c=typeof c!="number"?s[3]:c,d=typeof d!="number"?s[4]:d,h=typeof h!="number"?s[5]:h,typeof r=="number")p._orientation=[r,u,i,c,d,h],typeof p.ctx.listener.forwardX!="undefined"?(p.ctx.listener.forwardX.setTargetAtTime(r,Howler.ctx.currentTime,.1),p.ctx.listener.forwardY.setTargetAtTime(u,Howler.ctx.currentTime,.1),p.ctx.listener.forwardZ.setTargetAtTime(i,Howler.ctx.currentTime,.1),p.ctx.listener.upX.setTargetAtTime(c,Howler.ctx.currentTime,.1),p.ctx.listener.upY.setTargetAtTime(d,Howler.ctx.currentTime,.1),p.ctx.listener.upZ.setTargetAtTime(h,Howler.ctx.currentTime,.1)):p.ctx.listener.setOrientation(r,u,i,c,d,h);else return s;return p},Howl.prototype.init=function(r){return function(u){var i=this;return i._orientation=u.orientation||[1,0,0],i._stereo=u.stereo||null,i._pos=u.pos||null,i._pannerAttr={coneInnerAngle:typeof u.coneInnerAngle!="undefined"?u.coneInnerAngle:360,coneOuterAngle:typeof u.coneOuterAngle!="undefined"?u.coneOuterAngle:360,coneOuterGain:typeof u.coneOuterGain!="undefined"?u.coneOuterGain:0,distanceModel:typeof u.distanceModel!="undefined"?u.distanceModel:"inverse",maxDistance:typeof u.maxDistance!="undefined"?u.maxDistance:1e4,panningModel:typeof u.panningModel!="undefined"?u.panningModel:"HRTF",refDistance:typeof u.refDistance!="undefined"?u.refDistance:1,rolloffFactor:typeof u.rolloffFactor!="undefined"?u.rolloffFactor:1},i._onstereo=u.onstereo?[{fn:u.onstereo}]:[],i._onpos=u.onpos?[{fn:u.onpos}]:[],i._onorientation=u.onorientation?[{fn:u.onorientation}]:[],r.call(this,u)}}(Howl.prototype.init),Howl.prototype.stereo=function(r,u){var i=this;if(!i._webAudio)return i;if(i._state!=="loaded")return i._queue.push({event:"stereo",action:function(){i.stereo(r,u)}}),i;var c=typeof Howler.ctx.createStereoPanner=="undefined"?"spatial":"stereo";if(typeof u=="undefined")if(typeof r=="number")i._stereo=r,i._pos=[r,0,0];else return i._stereo;for(var d=i._getSoundIds(u),h=0;h= 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= 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*,nav li svg,nav li .btn svg{width:24px;height:24px;fill:inherit}.title .btn-menu{margin:0 8px}.title .btn-menu>.btn svg{width:24px;height:24px}header .btn-menu>.btn{background:none!important;padding:0;box-shadow:none;fill:var(--nav)}header .btn-menu>.btn:hover{fill:var(--nav-hover)}footer{display:flex;align-items:flex-end;flex-wrap:wrap;padding:50px 30px;color:var(--text-3)}footer>*{margin-bottom:10px}footer>*:not(:last-child){margin-right:30px}footer p{display:flex;align-items:center}footer a{color:var(--text-3)}footer a:hover{color:var(--text-1)}footer svg{fill:var(--text-3);margin-right:8px}footer .donate svg{fill:var(--accent-donate)}main{padding-top:68px;color:var(--text-1);fill:var(--text-1);transition:padding .3s}.controls{display:flex;justify-content:flex-end;position:fixed;top:12px;right:16px;left:16px;pointer-events:none}.controls>*{pointer-events:all}main>.controls{margin-right:16px;margin-left:16px;row-gap:8px}.generator-controls{display:flex;margin-left:auto;position:sticky;top:68px;z-index:1}.sounds-controls>*:not(:last-child),.preview-controls>*:not(:last-child),.generator-controls>*:not(:last-child),.project-controls>*:not(:last-child){margin-right:8px}.secondary-controls{margin-top:40px}.sounds-controls{display:flex;margin:0 16px;position:sticky;top:68px;z-index:1}.project-controls{margin:8px;display:flex;z-index:2}.project-controls>:first-child{max-width:138px;max-width:calc(max(200px,20vw) - 62px);text-overflow:ellipsis;margin-right:auto}.status-icon.active{fill:var(--accent-success)}.status-icon.danger{fill:var(--accent-danger)}.project-creation .btn-menu .btn-group,.project-controls .btn-menu:first-child .btn-group{left:0;right:unset}.source-controls{justify-content:flex-end;z-index:10}.tree{margin-top:-40px;overflow-x:auto;padding:8px 16px 50vh}.error+.tree{margin-top:0}.popup-source{position:fixed;display:flex;flex-direction:column;width:40vw;left:100%;bottom:0;z-index:3;transition:transform .3s;border-radius:6px 0 0}.popup-source.shown{transform:translate(-100%)}.source{width:100%;height:40vh;max-height:50vh;padding:12px;border:none;font-family:Consolas,monospace;font-size:14px;white-space:pre;overflow-wrap:normal;overflow-x:auto;tab-size:4;-moz-tab-size:4;-o-tab-size:4;-webkit-tab-size:4;outline:none;resize:none;position:static;background-color:var(--background-2);border-top-left-radius:6px;color:var(--text-1);box-shadow:0 0 7px -3px #000}.popup-source .btn-menu>.btn-group{right:100%;top:50%;margin-top:0;margin-right:8px;transform:translateY(-50%)}.popup-preview{position:fixed;display:flex;flex-direction:column;height:calc(100% - 56px);width:40vw;left:100%;bottom:0;z-index:3;background-color:var(--background-2);box-shadow:0 0 7px -3px #000;transition:transform .3s}main.has-preview{padding-right:40vw}.popup-preview.shown{transform:translate(-100%)}.popup-preview canvas{width:100%;background-color:var(--nav-faded);display:block;cursor:crosshair}.popup-preview canvas,.popup-preview .pixelated{image-rendering:-moz-crisp-edges;image-rendering:-webkit-crisp-edges;image-rendering:crisp-edges;image-rendering:pixelated;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.popup-share{position:fixed;display:flex;width:40vw;min-height:108px;left:100%;bottom:0;z-index:3;padding:12px;background-color:var(--background-3);box-shadow:0 0 7px -3px #000;color:var(--text-2);transition:transform .3s;border-radius:6px 0 0}.popup-share.shown{transform:translate(-100%)}.popup-share>input{height:32px;background-color:var(--background-1);color:var(--text-2);border:none;border-radius:6px;padding:7px 11px;margin-right:8px;width:100%}.popup-share>.btn.active{fill:var(--accent-success)}.popup-project{position:fixed;display:flex;flex-direction:column;height:calc(100% - 56px);width:200px;width:max(200px,20vw);right:100%;bottom:0;z-index:3;background-color:var(--background-2);box-shadow:0 0 7px -3px #000;fill:var(--text-2);transition:transform .3s,width .3s}.popup-project.shown{transform:translate(100%)}main.has-project{padding-left:200px;padding-left:max(200px,20vw)}.preview-overlay{height:min-content;position:relative}.preview-overlay>img{display:block;width:100%}.preview-overlay>div{position:absolute}.btn{display:flex;align-items:center;border:none;height:32px;border-radius:6px;padding:7px 11px;cursor:pointer;outline:none;font-size:1rem;white-space:nowrap;background-color:var(--background-4);box-shadow:0 1px 7px -2px #000;color:var(--text-2);fill:var(--text-2);user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.btn.active{color:var(--accent-primary);fill:var(--accent-primary)}.btn.disabled{cursor:default;background-color:var(--background-2)}.btn.invalid{outline:var(--accent-danger) solid 1px;outline-offset:-1px}.btn:not(.btn-input):not(.disabled):hover{background-color:var(--background-5)}.btn.no-pointer{pointer-events:none}.btn svg{flex-shrink:0;width:16px;height:16px;fill:currentColor}.btn svg:not(:last-child){margin-right:5px}.btn svg:not(:first-child){margin-left:5px}.btn span{overflow:hidden;text-overflow:ellipsis}.btn-link{text-decoration:none;display:inline-flex}.btn-link:not([href]){cursor:default;background-color:var(--background-2)!important}.btn-menu:not(.no-relative){position:relative}.btn-menu .btn-group{display:flex;flex-direction:column;position:absolute;top:100%;right:0;margin-top:8px;z-index:10}.btn-group{border-radius:6px;box-shadow:0 0 7px -2px #000}.btn-group .btn{box-shadow:none}.btn-group .btn:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-menu .result-list .btn:first-child,.btn-group .btn:not(:first-child){border-top-right-radius:0;border-top-left-radius:0}.btn-group>hr{border:4px solid var(--background-4);border-left:transparent;border-right:transparent;background-color:var(--background-6);margin:0;padding:2px 0}.btn-row{display:flex;box-shadow:0 1px 7px -2px #000;border-radius:6px}.btn-row>*,.btn-row>.btn-menu>*{box-shadow:none}.btn-row>*:not(:first-child),.btn-row>.btn-menu:not(:first-child)>*{border-top-left-radius:0;border-bottom-left-radius:0}.btn-row>*:not(:last-child),.btn-row>.btn-menu:not(:last-child)>*{border-top-right-radius:0;border-bottom-right-radius:0}.btn-input{cursor:initial;padding-right:7px}.btn-input input,.btn-input select{background:var(--background-1);color:var(--text-1);font-size:17px;border:none;padding:0 3px;margin-left:5px;width:100px}.btn-input.larger-input input,.btn-input.larger-input select{width:200px}.btn-input.large-input{padding:5px 5px 5px 11px}.btn-input.large-input input,.btn-input.large-input select{width:100%;height:100%}.btn.danger{background-color:var(--errors-background)}.btn.danger:not(.btn-input):not(.disabled):hover{background-color:var(--errors-background-hover)}.btn-menu .result-list{display:block;width:380px;height:unset;overflow-y:auto;overflow-x:hidden;max-height:240px;border-bottom-left-radius:6px;border-bottom-right-radius:6px}.version-switcher>.btn{background-color:var(--accent-site-1);font-weight:700}.version-switcher>.btn:after{font-weight:400}.version-switcher>.btn:not(.btn-input):not(.disabled):hover{background-color:var(--accent-site-2)}.version-switcher.attention>.btn{outline:2px solid transparent;outline-offset:-2px;animation:outline-grow 2s ease-out 1s 4 forwards}@keyframes outline-grow{0%{outline-offset:-2px;outline-width:2px;outline-color:var(--accent-site-1)}50%,to{outline-offset:10px;outline-width:0px;outline-color:transparent}}.button-group{display:flex;justify-content:flex-start}.button-group>*:not(:last-child){margin-right:8px}.popup-actions{display:flex;position:fixed;bottom:8px;z-index:4;background-color:var(--background-4);box-shadow:0 0 7px -3px #000;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;transform:translate(var(--offset));transition:padding .1s,transform .3s}.popup-action{padding:12px;fill:var(--text-3);cursor:pointer}.popup-actions.right-actions{left:100%;padding-right:16px;border-top-left-radius:24px;border-bottom-left-radius:24px}.popup-actions.right-actions .popup-action{padding-left:16px;border-top-left-radius:50%;border-bottom-left-radius:50%}.popup-actions.left-actions{right:100%;padding-left:16px;border-top-right-radius:24px;border-bottom-right-radius:24px}.popup-actions.left-actions .popup-action{padding-right:16px;border-top-right-radius:50%;border-bottom-right-radius:50%}.popup-action.shown~.popup-action{border-top-left-radius:0;border-bottom-left-radius:0;padding-left:12px}.popup-action:not(.shown){pointer-events:none;order:1;visibility:hidden}.popup-action>svg{display:block;width:24px;height:24px}.popup-action:hover{background-color:var(--background-5)}.popup-action.action-preview{fill:var(--accent-primary)}.popup-action.action-copy.active{fill:var(--accent-success)}.tooltipped{position:relative}.tooltipped:after{content:attr(aria-label);position:absolute;z-index:100;padding:3px 7px;display:none;white-space:pre;pointer-events:none;background-color:var(--background-6);color:var(--text-1);border-radius:6px;font-size:14px;line-height:1.5;text-align:left;opacity:0}.tooltipped.tip-nw:after,.tooltipped.tip-ne:after{bottom:100%;margin-bottom:6px}.tooltipped.tip-se:after,.tooltipped.tip-s:after,.tooltipped.tip-sw:after{top:100%;margin-top:6px}.tooltipped.tip-ne:after,.tooltipped.tip-se:after{left:50%;margin-left:-16px}.tooltipped.tip-nw:after,.tooltipped.tip-sw:after{right:50%;margin-right:-16px}.tooltipped.tip-ne:before,.tooltipped.tip-n:before,.tooltipped.tip-nw:before{bottom:auto;top:-7px;border-top-color:var(--background-6)}.tooltipped.tip-se:before,.tooltipped.tip-s:before,.tooltipped.tip-sw:before{top:auto;bottom:-7px;border-bottom-color:var(--background-6)}.tooltipped.tip-s:after,.tooltipped.tip-n:after,.tooltipped.tip-s:before,.tooltipped.tip-n:before{left:var(--x, 50%);transform:translate(-50%,8px)}.tooltipped:before{content:"";position:absolute;z-index:101;display:none;right:50%;width:0;height:0;margin-right:-8px;pointer-events:none;border:8px solid transparent;opacity:0}.tooltipped.tip-shown:before,.tooltipped.tip-shown:after,.tooltipped:not([disabled]):hover:before,.tooltipped:not([disabled]):hover:after{display:inline-block;animation:tooltip-appear .1s ease-in .4s forwards}.tooltipped.tip-shown:after,.tooltipped:not([disabled]):hover:after{box-shadow:0 1px 3px #0007}@keyframes tooltip-appear{0%{opacity:0}to{opacity:1}}.error{padding:5px 14px;margin:12px 16px;color:var(--text-1);background-color:var(--errors-background);border-radius:3px}.error>*{margin:10px 0}.error h3 span{margin-left:8px;cursor:pointer}.error .error-dismiss{float:right;cursor:pointer;margin-left:10px}.error-dismiss svg{display:block;width:24px;height:24px}.error a{color:var(--text-1)}.modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background-color:var(--background-2);color:var(--text-2);box-shadow:0 0 18px -2px #000;border-radius:6px;padding:24px;z-index:101;pointer-events:all}[data-modals] .tree{pointer-events:none}.file-modal{display:flex;flex-direction:column}.file-modal>*:not(:last-child){margin-bottom:8px}.file-modal input{background-color:var(--background-1);box-shadow:none}.container{padding:16px;max-width:960px;margin:0 auto}.worldgen{display:grid;gap:16px}.tool-card{display:flex;padding:10px;color:var(--text-2);background-color:var(--background-2);border-radius:6px;text-decoration:none}a.tool-card:hover,a.tool-head:hover{background-color:var(--background-3)}.tool-group{display:flex;flex-direction:column;color:var(--text-2);background-color:var(--background-2);box-shadow:1px 1px 7px -3px #000;border-radius:6px}.tool-card svg{width:32px;height:32px;flex-shrink:0;margin-right:8px}.tool-card h3{display:flex;font-weight:unset;align-items:center}.tool-card h3 svg{color:var(--text-2);fill:currentColor;width:20px;height:20px;margin-left:8px;transition:margin .2s}.tool-card:hover h3>svg{margin-left:14px}.tool-head p{color:var(--text-3)}.tool-body{display:flex;flex-direction:column;border-top:2px solid var(--background-1);padding:4px 8px}.tool-body>.tool-card{box-shadow:none;margin-bottom:0}hr{margin:12px 0;border:none}.note{color:var(--text-3)}.settings{padding:20px}.settings p{color:var(--nav);padding:8px;border-bottom:2px solid var(--background-4)}.field-list{width:100%;border-collapse:collapse;list-style-type:none}.field-list li{display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px solid var(--background-4)}.field-prop{display:inline-flex;align-items:center;max-width:100%;margin:4px}.field-prop>label,.field-prop>input{height:34px;color:var(--text-1);margin-right:-1px;border:1px solid;border-color:var(--nav-faded-hover)}.field-prop label{padding:0 9px;line-height:1.94rem;background-color:var(--node-background-label);white-space:nowrap;border-top-left-radius:3px;border-bottom-left-radius:3px}.field-prop input{width:100%;line-height:1.6rem;background-color:var(--node-background-input);color:var(--text-1);padding-left:9px;font-size:18px;border-top-right-radius:3px;border-bottom-right-radius:3px}.field-prop svg{padding:4px;margin:0 4px;height:28px;width:28px;fill:var(--nav);cursor:pointer}.field-prop .hidden svg{fill:#be4b2e}.field-prop .dimmed svg{fill:var(--nav-faded)}.very-large{font-size:80px;font-weight:100}.item-display{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.item-display>img{width:88.888%;image-rendering:-moz-crisp-edges;image-rendering:-webkit-crisp-edges;image-rendering:crisp-edges;image-rendering:pixelated}.item-display>img.model{image-rendering:auto}.item-display>svg:not(.item-count):not(.item-durability){width:81.25%;height:62.5%;fill:var(--node-text-dimmed)}.item-display>svg.item-count,.item-display>svg.item-durability,.item-display>.item-glint,.item-display>.item-slot-overlay{position:absolute;right:0;bottom:0;width:100%;height:100%;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.item-display>.item-glint,.item-display>.item-slot-overlay{left:5.555%;top:5.555%;width:88.888%;height:88.888%}.item-display>.item-glint,.item-display>.item-glint:after{background:url(/images/glint.png) repeat;filter:brightness(1.4) blur(1px) opacity(.8);animation:glint 20s linear 0s infinite;background-size:400%;background-blend-mode:overlay;-webkit-mask-image:var(--mask-image);mask-image:var(--mask-image);-webkit-mask-size:contain;mask-size:contain;image-rendering:-moz-crisp-edges;image-rendering:-webkit-crisp-edges;image-rendering:crisp-edges;image-rendering:pixelated}.item-display>.item-glint:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;animation:glint2 30s linear 0s infinite}@keyframes glint{0%{background-position:0 0}to{background-position:-400% 400%}}@keyframes glint2{0%{background-position:100% 0}to{background-position:500% 0}}.item-display:hover>.item-slot-overlay{background-color:#fff4}.item-tooltip{padding:3px 1px 1px 3px;border:solid 4px #220044;border-image-source:url(/images/tooltip.png);border-image-slice:2 fill;border-image-outset:2px;image-rendering:-moz-crisp-edges;image-rendering:-webkit-crisp-edges;image-rendering:crisp-edges;image-rendering:pixelated}.item-display>.item-tooltip{display:none;position:absolute;margin:4px;pointer-events:none;z-index:5}.item-display:hover>.item-tooltip{display:block}.item-display>.item-tooltip>:nth-child(1){margin-top:-2px}.item-display>.item-tooltip>:nth-child(2){margin-top:4px}.text-component{font-family:MinecraftSeven,sans-serif;font-size:20px;position:relative;white-space:nowrap;line-height:1.1}.text-component>.text-foreground{position:absolute;z-index:1;left:-2px;top:-2px}.file-view{background-color:var(--background-2);color:var(--text-2);overflow:hidden;overflow-y:auto;padding-bottom:64px;flex-grow:1}.file-view>span{padding:4px 8px}.project-creation{display:flex;flex-direction:column;align-items:flex-start;background-color:var(--background-2);padding:16px;border-radius:6px;color:var(--text-2)}.project-creation>*:not(:last-child){margin-bottom:8px}.project-creation label{margin-right:8px}.project-creation input{background-color:var(--background-1);box-shadow:none}.input-group{display:flex;align-items:center}.input-group .status-icon{margin-left:8px}.input-group .status-icon svg{display:block}.file-upload{display:flex;align-items:center;padding:16px;border-radius:6px;background-color:var(--background-1)}.file-upload input[type=file]{display:none}.file-upload .btn{margin-right:8px}.tree-view .entry{position:relative;display:flex;align-items:center;cursor:pointer;padding:4px 2px;padding-left:calc(var(--indent, 0) * 15px + 8px);user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;background-color:var(--background-2);color:var(--text-2)}.tree-view .entry:hover{background-color:var(--background-3)}.tree-view .entry.has-error{color:var(--accent-danger);fill:var(--accent-danger)}.tree-view .entry.focused{background-color:var(--background-3);outline:1px solid var(--accent-primary);outline-offset:-1px;z-index:1}.tree-view .entry.active{background-color:var(--background-4)}.tree-view .entry svg{margin-right:4px;flex-shrink:0}.tree-view .entry .status-icon{margin-left:4px;display:flex}.tree-view .entry-menu{position:absolute;top:100%;left:0;background-color:var(--background-4);z-index:4;margin-top:5px;margin-left:24px;border-radius:6px;box-shadow:0 0 7px -2px #000}.tree-view .entry-menu:after{content:"";position:absolute;bottom:100%;left:0;margin-left:6px;border-width:5px;border-style:solid;border-color:transparent transparent var(--background-4) transparent}.tree-view .entry-menu .action{padding:4px 8px}.tree-view .entry-menu .action:first-child{border-top-left-radius:6px;border-top-right-radius:6px}.tree-view .entry-menu .action:last-child{border-bottom-left-radius:6px;border-bottom-right-radius:6px}.tree-view .entry-menu .action:hover{background-color:var(--background-5)}[data-ea-publisher]{margin:0 16px 8px;min-height:69.38px}.ea-content{margin:0!important;background:var(--background-2)!important}.ea-content span{color:var(--text-2)!important}.ea-content strong{color:var(--accent-primary)!important}.ea-callout{margin:.25rem 0!important;padding:0!important}.ea-callout a{color:var(--text-3)!important}.sounds{padding:16px}.sound-search-group{flex-basis:350px;height:32px;display:flex;border-radius:6px;box-shadow:0 1px 7px -2px #000}.sound-search{flex-basis:100%;padding:8px;color:var(--text-1);background-color:var(--background-2);border:none;border-radius:6px 0 0 6px;font-size:16px;margin-right:0!important;box-shadow:none}.btn.add-sound{border-top-left-radius:0;border-bottom-left-radius:0;background-color:var(--accent-sounds-1);box-shadow:none}.btn.add-sound:hover{background-color:var(--accent-sounds-2)}.spacer{margin-right:auto!important}.sound-config{display:grid;grid-template-columns:min-content 2fr min-content min-content min-content 1fr min-content 1fr min-content min-content;align-items:center;gap:12px 8px;padding:10px;background-color:var(--background-2);border-radius:5px}.sound-config:not(:last-child){margin-bottom:8px}.sound-config .btn{box-shadow:none}.sound-config .sound{width:100%}.sound-config label{color:var(--text-2);white-space:nowrap}.sound-config .delay{width:50px;padding:4px}.sound-config input[type=range]{-webkit-appearance:none;appearance:none;width:100%;background:transparent}.sound-config input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none}.sound-config input[type=range]:focus{outline:none}.sound-config input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;border:none;height:16px;width:16px;border-radius:50%;background:var(--text-3);cursor:pointer;margin-top:-5px}.sound-config input[type=range]::-moz-range-thumb{border:none;height:16px;width:16px;border-radius:50%;background:var(--text-3);cursor:pointer}.sound-config input[type=range]::-webkit-slider-runnable-track{width:100%;height:8px;cursor:pointer;background:var(--background-4);border-radius:2px;border:none}.sound-config input[type=range]:focus::-webkit-slider-runnable-track{background:var(--background-5)}.sound-config input[type=range]::-moz-range-track{width:100%;height:8px;cursor:pointer;background:var(--background-4);border-radius:2px;border:none}.sound-config input[type=range]:focus::-moz-range-track{background:var(--background-5)}.sound-config .copy[data-command]{position:relative}.sound-config .copy[data-command]:after{content:attr(data-command);position:absolute;top:100%;right:0;margin-top:6px;padding:8px 12px;background-color:var(--background-3);border-radius:5px;box-shadow:0 2px 4px var(--background-1);cursor:initial}.sound-config.invalid .play,.sound-config.loading .play{cursor:initial}.sound-config.playing{background-color:var(--background-3)}.sound-config.playing .play{background-image:linear-gradient(110deg,var(--accent-sounds-3),var(--accent-sounds-3) 45%,var(--accent-sounds-4) 47%,var(--accent-sounds-4) 53%,var(--accent-sounds-3) 55%);background-size:300%;background-position:right;animation:playing 1s infinite}@keyframes playing{0%{background-position:left}to{background-position:right}}.sound-config.loading:not(.invalid) .play svg{animation:spinning 2s infinite linear}.sound-config.invalid .sound{color:var(--invalid-text)}.changelog{display:flex;flex-direction:column;padding:16px}.changelog>.badges-list{margin-top:12px}.badge{--color: hsl(var(--tint, 0), var(--text-saturation), var(--text-lightness));display:flex;align-items:center;margin-right:8px;border:1.5px solid var(--color);height:24px;border-radius:12px;padding:0 8px;color:var(--color);fill:var(--color);white-space:nowrap;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.badge svg{margin-right:4px;width:20px;height:20px}.badge.clickable{cursor:pointer}.badge.active{background-color:var(--color);color:var(--background-2);fill:var(--background-2)}.badges-list{display:flex;flex-wrap:wrap;gap:8px 0}.changelog-version{margin-left:auto;font-size:15px;color:var(--text-3);text-decoration:none}.changelog-version:not(:last-child){position:relative;margin-right:19px}.changelog-version:not(:last-child):after{content:"\2022";position:absolute;text-decoration:none;right:-12px;top:0;pointer-events:none}.changelog-version:hover{text-decoration:underline}.changelog-content{word-wrap:break-word}.changelog-content ul{padding-left:24px}.changelog-content code{background-color:var(--background-5);padding:1px 4px;border-radius:4px;color:var(--text-1)}.query-search{flex-basis:100%;background-color:var(--background-2)}.checkbox{display:flex;align-items:center;padding:7px 11px;border-radius:6px;height:32px;font-size:1rem;white-space:nowrap;color:var(--text-2);background-color:var(--background-2);box-shadow:0 1px 7px -2px #000;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.checkbox input{margin-right:8px}.version-list{margin-top:16px;display:flex;flex-direction:column}.version-entry{display:grid;grid-template-columns:.8fr 1.2fr 1fr .8fr;gap:8px;background:var(--background-2);border-radius:4px;margin-bottom:8px;padding:8px;text-decoration:none}.version-entry:hover{background:var(--background-3)}.version-entry>.version-metadata{font-size:1rem;align-self:center}.version-entry>.version-id{color:var(--text-1);font-size:1.1rem}.navigation{display:flex}.navigation>*:not(:last-child){margin-right:8px}.navigation-divider{flex-basis:100%}.navigation+.card-column{margin-top:8px}.version-detail{color:var(--text-3)}.version-detail h2{font-size:24px;font-weight:unset}.version-detail h2,.version-detail h3,.version-detail h4{color:var(--text-2);margin-top:24px;margin-bottom:8px}.version-info{background:var(--background-2);border-radius:6px;padding:7px 11px;box-shadow:0 1px 5px -2px #000}.version-metadata{color:var(--text-3);font-size:1.2rem}.version-metadata-value{color:var(--text-1)}.version-metadata-link{fill:var(--text-2);vertical-align:middle;margin-left:8px}.version-metadata-link:hover{fill:var(--accent-primary)}.version-tabs{display:flex;margin:20px 0 10px;box-shadow:inset 0 -1px 0 var(--background-4)}.version-tabs>*{border-bottom:2px solid transparent;padding:8px 16px;cursor:pointer;color:var(--text-3);fill:var(--text-3);text-decoration:none;display:inline-flex;align-items:center}.version-tabs>*>svg{margin-left:8px}.version-tabs>.selected{border-color:var(--text-3);color:var(--text-1)}.ace_editor,.ace_gutter,.ace_gutter .ace_layer,.ace_content{color:var(--text-2)!important;background-color:var(--background-2)!important;border:none}.ace_cursor{color:var(--text-1)!important}.ace_gutter-active-line{background-color:var(--background-3)!important}.ace_tag,.ace_variable{color:var(--editor-variable)!important}.ace_string{color:var(--editor-string)!important}.ace_constant{color:var(--editor-constant)!important}.ace_numeric{color:var(--editor-number)!important}.ace_markup,.ace_keyword{color:unset!important}.ace_marker-layer .ace_selection{background-color:var(--selection)!important}.giscus-container{margin-top:16px;min-height:325.667px}.card-group{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:flex-start}.card-column{display:flex;flex-direction:column}.card-column>*:not(:last-child){margin-bottom:8px}.card{display:block;text-decoration:none;color:var(--text-2);background-color:var(--background-2);padding:12px;border-radius:6px}.card:hover{background-color:var(--background-3)}.card-content{display:flex;flex-direction:column}.card-content>*:not(:last-child){margin-bottom:12px}.card-title{display:flex;align-items:center}.card-title svg{width:20px;height:20px;color:var(--text-2);fill:currentColor;margin-left:8px;transition:margin .2s}.card:hover .card-title svg{margin-left:14px}.card-overlay{color:var(--text-3);float:right}.card-subtitle{overflow:hidden;text-overflow:ellipsis}.guides>.badges-list{margin-top:8px}.guide{padding-left:32px;padding-right:32px}.guide>.badges-list{margin-top:12px}.guide-share.active{fill:var(--accent-success);color:var(--text-2)}.guide .ad{margin:12px 0 8px}.guide .ad[data-ea-type=image]{float:right;margin-left:12px}.guide-toc{display:inline-block;border:2px solid var(--background-6);border-radius:6px;padding:8px 16px;line-height:1.2;font-size:90%}.guide-content{color:var(--text-2);margin-top:12px;line-height:1.5;word-wrap:break-word}.guide-content p{margin-top:0;margin-bottom:10px}.guide-content h1,.guide-content h2,.guide-content h3,.guide-content h4,.guide-content h5,.guide-content h6{margin:1.2em 0 .4em;position:relative;font-weight:400}.guide-content h1>[id],.guide-content h2>[id],.guide-content h3>[id],.guide-content h4>[id],.guide-content h5>[id],.guide-content h6>[id]{fill:var(--text-3);opacity:0;transition:opacity .2s;float:left;padding-right:4px;margin-left:-20px;cursor:pointer}.guide-content h1>[id] *,.guide-content h2>[id] *,.guide-content h3>[id] *,.guide-content h4>[id] *,.guide-content h5>[id] *,.guide-content h6>[id] *{pointer-events:none}.guide-content h1:hover>[id],.guide-content h2:hover>[id],.guide-content h3:hover>[id],.guide-content h4:hover>[id],.guide-content h5:hover>[id],.guide-content h6:hover>[id]{opacity:1}.guide-content h2{font-size:24px}.guide-content blockquote{border-left:4px solid var(--background-6);color:var(--text-3);padding-left:.7em;margin:.7em 0}.guide-content blockquote>p{padding:.3em 0}.guide-content a{text-decoration:underline;color:var(--accent-primary)}.guide-content ul,.guide-content ol{padding-left:1.6em;margin:.2em 0 .5em}.guide-content li+li{margin-top:.25em}.guide-content img{border-radius:.2em;max-width:100%}.guide-content table{border-spacing:0}.guide-content th{border-bottom:2px solid var(--background-6);padding:4px 8px}.guide-content td{border-bottom:1px solid var(--background-6);padding:4px 8px}.guide-content tbody tr:last-child td{border-bottom:none}.guide-content code{display:inline-block;padding:.1em .4em;margin:0;background-color:var(--background-2);border-radius:6px;overflow-wrap:break-word;word-break:break-all;font-size:85%}.guide-content h1 code,.guide-content h2 code,.guide-content h3 code,.guide-content h4 code,.guide-content h5 code,.guide-content h6 code{font-size:100%}.guide-content pre>code{display:block;padding:.8em;margin-top:4px;margin-bottom:20px;overflow-x:auto}.guide-content .hljs-attr{color:var(--editor-variable)}.guide-content .hljs-string{color:var(--editor-string)}.guide-content .hljs-number{color:var(--editor-number)}.guide-content .hljs-keyword{color:var(--editor-constant)}@media screen and (max-width: 720px){.sound-search-group{margin-bottom:8px;flex-basis:100%;margin-right:0!important}.sounds-controls{flex-wrap:wrap}.sounds .btn{padding:8px 10px}.sounds .btn svg{margin-right:0!important}.sounds .btn span{display:none}.sound-config{grid-template-columns:min-content min-content 1fr min-content 1fr min-content;grid-template-areas:"play sound sound sound sound copy" "pitch-label pitch-label pitch volume-label volume remove"}.sound-config .play{grid-area:play}.sound-config .sound{grid-area:sound}.sound-config .delay-label,.sound-config .delay{display:none}.sound-config .pitch-label{grid-area:pitch-label}.sound-config .pitch{grid-area:pitch}.sound-config .volume-label{grid-area:volume-label}.sound-config .volume{grid-area:volume}.sound-config .copy{grid-area:copy}.sound-config .remove{grid-area:remove}.version-entry{grid-template-columns:1fr 1fr}}@keyframes spinning{0%{transform:rotate(0)}to{transform:rotate(-360deg)}}@keyframes fadein{0%{opacity:0}to{opacity:1}}@media screen and (max-width: 1300px){main.has-preview .tree{margin-top:4px}}@media screen and (max-width: 800px){main .tree{margin-top:4px!important}}@media screen and (max-width: 580px){.card-group{grid-template-columns:1fr}.title h1{font-size:18px}body nav li{margin:0 8px}main.has-preview{padding-right:0}main.has-project{padding-left:0}main .controls{top:64px}.tree{padding-left:8px;padding-right:8px}.popup-source{width:var(--full-width)}.source{border-radius:0}.popup-preview{width:var(--full-width);height:unset;bottom:0;background-color:transparent;box-shadow:none}.popup-preview canvas{margin-top:8px}.btn.btn.large-input,.btn-menu .result-list{width:calc(100vw - 32px)}.version-metadata-hide,.card-overlay{display:none}}@font-face{font-family:MinecraftSeven;src:url(/fonts/seven.ttf) format("truetype")}:root{--node-border: #3f3f3f;--node-background-label: #1b1b1b;--node-background-input: #272727;--node-background-hover: #1f1f1f;--node-text: #dadada;--node-text-dimmed: #b4b4b4;--node-selected: #ad9715;--node-selected-hover: #a38c0a;--node-selected-border: #8d7a0d;--node-add: #487c13;--node-add-hover: #3e7409;--node-add-border: #3b6e0c;--node-remove: #9b341b;--node-remove-hover: #922d13;--node-remove-border: #7e1d05;--node-indent-border: #454749;--category-predicate: #306163;--category-predicate-border: #224849;--category-predicate-background: #1d3333;--category-function: #838383;--category-function-border: #6b6b6b;--category-function-background: #414141;--category-pool: #386330;--category-pool-border: #2e4922;--category-pool-background: #21331d}:root[data-theme=light]{--node-border: #bcbfc3;--node-background-label: #e4e4e4;--node-background-input: #ffffff;--node-background-hover: #e7e7e7;--node-text: #000000;--node-text-dimmed: #2c2c2c;--node-selected: #f0e65e;--node-selected-hover: #faf06c;--node-selected-border: #b9a327;--node-add: #9bd464;--node-add-hover: #a5dd70;--node-add-border: #498d09;--node-remove: #e76f51;--node-remove-hover: #f57656;--node-remove-border: #be4b2e;--node-indent-border: #b9b9b9;--category-predicate: #65b5b8;--category-predicate-border: #187e81;--category-predicate-background: #95c5c7;--category-function: #979fa7;--category-function-border: #788086;--category-function-background: #dce0e4;--category-pool: #76b865;--category-pool-border: #398118;--category-pool-background: #b1d6a6}@media (prefers-color-scheme: light){:root[data-theme=system]{--node-border: #bcbfc3;--node-background-label: #e4e4e4;--node-background-input: #ffffff;--node-background-hover: #e7e7e7;--node-text: #000000;--node-text-dimmed: #2c2c2c;--node-selected: #f0e65e;--node-selected-hover: #faf06c;--node-selected-border: #b9a327;--node-add: #9bd464;--node-add-hover: #a5dd70;--node-add-border: #498d09;--node-remove: #e76f51;--node-remove-hover: #f57656;--node-remove-border: #be4b2e;--node-indent-border: #b9b9b9;--category-predicate: #65b5b8;--category-predicate-border: #187e81;--category-predicate-background: #95c5c7;--category-function: #979fa7;--category-function-border: #788086;--category-function-background: #dce0e4;--category-pool: #76b865;--category-pool-border: #398118;--category-pool-background: #b1d6a6}}.node-header{display:inline-flex;position:relative;align-items:center;width:100%}.node-header>*{height:34px;border:1px solid;color:var(--node-text);border-color:var(--node-border)}.node-header>label{align-self:flex-start;padding:0 9px;line-height:1.94rem;white-space:nowrap;user-select:none;background-color:var(--node-background-label)}.node-header>label>.item-display{width:32px;height:32px}.node-header>input{font-size:18px;padding-left:9px;background-color:var(--node-background-input)}.node-header>input[type=color]{padding:0 2px}.node-header>textarea{min-width:236.33px;min-height:34px;font-size:18px;padding-left:9px;padding-top:5px;background-color:var(--node-background-input)}.node-header>select,.node-header>datalist{font-size:18px;padding-left:6px;background-color:var(--node-background-input)}.node-header button{font-size:18px;padding:0 9px;line-height:1.94rem;white-space:nowrap;user-select:none;cursor:pointer;background-color:var(--node-background-input)}.node-header button:not([disabled]):hover{background-color:var(--node-background-hover)}.node-header a{display:flex;align-items:center;font-size:18px;padding:0 9px;white-space:nowrap;user-select:none;cursor:pointer;fill:var(--node-text);background-color:var(--node-background-input)}.object-node>.node-header>.collapse{cursor:pointer}.node-error~select:last-child,.node-error~input:last-child,.node-error~input[list]:nth-last-child(2),.node-error+.fixed-list~input{border-color:var(--node-remove)!important}.node-header>.node-icon{order:1}.node-header>*:first-child,.node-header>.node-icon:first-child+*{border-top-left-radius:3px;border-bottom-left-radius:3px}.node-header>*:last-child,.node-header>input[list]:nth-last-child(2){border-top-right-radius:3px;border-bottom-right-radius:3px}.node-header>*{margin-right:-1px}.object-node:not(.no-body)>.node-header>*:first-child,.map-node>.node-header>*:first-child,.list-node>.node-header>*:first-child{border-top-left-radius:8px;border-bottom-left-radius:0}button.selected{background-color:var(--node-selected);border-color:var(--node-selected-border)}button:not([disabled]).selected:hover{background-color:var(--node-selected-hover)}.collapse svg{fill:var(--node-text)}.collapse.closed,button.add{background-color:var(--node-add);border-color:var(--node-add-border)}.collapse:not([disabled]).closed:hover,button:not([disabled]).add:hover{background-color:var(--node-add-hover)}.collapse.open,button.remove{background-color:var(--node-remove);border-color:var(--node-remove-border)}.collapse:not([disabled]).open:hover,button:not([disabled]).remove:hover{background-color:var(--node-remove-hover)}.node-header>button svg{display:inline-block;position:relative;top:2px;fill:var(--node-text)}.node-header>button.collapse:last-child,.node-header>button.add:last-child{border-top-right-radius:6px;border-bottom-right-radius:6px}.node-move{display:flex;flex-direction:column;width:34px}button.move{height:50%;border:none;display:flex}button.move+button.move{border-top:1px solid var(--node-border)}button.move:disabled{cursor:unset;fill:var(--node-border)}.node-icon{border:none;position:relative;display:inline-block}.node-icon .icon-popup{visibility:hidden;width:240px;background-color:var(--background-6);color:var(--text-1);text-align:center;border-radius:6px;padding:8px 4px;position:absolute;z-index:2;top:125%;left:50%;margin-left:-120px}.node-icon .icon-popup:after{content:"";position:absolute;bottom:100%;left:50%;margin-left:-3px;border-width:5px;border-style:solid;border-color:transparent transparent var(--background-6) transparent}.node-icon svg:hover+.icon-popup,.node-icon.show .icon-popup{visibility:visible}.node-icon svg{height:34px;width:34px;min-width:34px;margin-left:6px;cursor:pointer}.node-icon.node-help svg{fill:var(--node-border)}.node-icon.node-error svg{fill:var(--node-remove)}.node-menu{position:absolute;left:0;top:100%;width:min-content;margin-top:4px;margin-left:4px;z-index:1;color:var(--text-1);font-size:16px;border-radius:6px;background-color:var(--background-6);box-shadow:0 1px 5px -2px #000}.node-menu:after{content:"";position:absolute;bottom:100%;left:0;margin-left:6px;border-width:5px;border-style:solid;border-color:transparent transparent var(--background-6) transparent}.menu-item{padding:4px;display:flex;align-items:center;white-space:normal}.menu-item>*{margin-right:4px}.menu-item .btn{padding:8px;box-shadow:unset}.menu-item span{color:var(--text-2)}.node{margin-bottom:4px}.node-body>.node:first-child{margin-top:4px}.node:last-child{margin-bottom:0}.node-body{border-left:3px solid var(--node-indent-border)}.node-body{display:flex;flex-direction:column;padding-left:18px}.list-node>.node-body>.object-node>.node-body,.map-node>.node-body>.object-node>.node-body{padding-left:0}.list-node>.node-body>.object-node>.node-body>.node>.node-body,.map-node>.node-body>.object-node>.node-body>.node>.node-body{border-left:none}.list-node>.node-body>.object-node>.node-body>.node>.node-header>.node-icon:first-child+*,.list-node>.node-body>.object-node>.node-body>.node>.node-header>*:first-child,.map-node>.node-body>.object-node>.node-body>.node>.node-header>.node-icon:first-child+*,.map-node>.node-body>.object-node>.node-body>.node>.node-header>*:first-child{border-top-left-radius:0;border-bottom-left-radius:0;border-left:none}.node-body>.object-node[data-category],.node-body>.list-node[data-category],.node-body>.map-node[data-category]{width:100%;min-width:max-content;padding:5px 5px 5px 0;border:2px solid var(--node-border);border-radius:3px}.node-body>.object-node[data-category]>.node-header>.node-icon:first-child+*,.node-body>.object-node[data-category]>.node-header>*:first-child{border-top-left-radius:0;border-bottom-left-radius:0;border-left:none}.node-body>.object-node[data-category]>.node-body,.node-body>.list-node[data-category]>.node-body,.node-body>.map-node[data-category]>.node-body{border:none}.range-node select{width:25px}.fixed-list{display:none}.number-node input,.range-node input,.fixed-list~input{width:100px}[data-category=predicate]>.node-header>label,[data-category=predicate].node-header>label,[data-category=predicate]>.node-body>.node>.node-header>label{background-color:var(--category-predicate)}[data-category=predicate]>.node-body,[data-category=predicate]>.node-header>label,[data-category=predicate].node-header>label,[data-category=predicate]>.node-header>*:not(.selected),[data-category=predicate]>.node-body>.node>.node-header>*:not(.selected){border-color:var(--category-predicate-border)}.node-body>.node.object-node[data-category=predicate],.node-body>.node.list-node[data-category=predicate],.node-body>.node.map-node[data-category=predicate]{background-color:var(--category-predicate-background);border-color:var(--category-predicate-border)}[data-category=function]>.node-header>label,[data-category=function].node-header>label,[data-category=function]>.node-body>.node>.node-header>label{background-color:var(--category-function)}[data-category=function]>.node-body,[data-category=function]>.node-header>label,[data-category=function].node-header>label,[data-category=function]>.node-header>*:not(.selected),[data-category=function]>.node-body>.node>.node-header>*:not(.selected){border-color:var(--category-function-border)}.node-body>.node.object-node[data-category=function],.node-body>.node.list-node[data-category=function],.node-body>.node.map-node[data-category=function]{background-color:var(--category-function-background);border-color:var(--category-function-border)}[data-category=pool]>.node-header>label,[data-category=pool].node-header>label,[data-category=pool]>.node-body>.node>.node-header>label{background-color:var(--category-pool)}[data-category=pool]>.node-body,[data-category=pool]>.node-header>label,[data-category=pool].node-header>label,[data-category=pool]>.node-header>*:not(.selected),[data-category=pool]>.node-body>.node>.node-header>*:not(.selected){border-color:var(--category-pool-border)}.node-body>.node.object-node[data-category=pool],.node-body>.node.list-node[data-category=pool],.node-body>.node.map-node[data-category=pool]{background-color:var(--category-pool-background);border-color:var(--category-pool-border)} diff --git a/assets/index.435793bb.js b/assets/index.2c9aa543.js similarity index 99% rename from assets/index.435793bb.js rename to assets/index.2c9aa543.js index 0770b51a..dcddb4be 100644 --- a/assets/index.435793bb.js +++ b/assets/index.2c9aa543.js @@ -1,4 +1,4 @@ -var Xi=Object.defineProperty,Ji=Object.defineProperties;var zi=Object.getOwnPropertyDescriptors;var Mt=Object.getOwnPropertySymbols;var _i=Object.prototype.hasOwnProperty,Ki=Object.prototype.propertyIsEnumerable;var Rt=(o,p,x)=>p in o?Xi(o,p,{enumerable:!0,configurable:!0,writable:!0,value:x}):o[p]=x,Lt=(o,p)=>{for(var x in p||(p={}))_i.call(p,x)&&Rt(o,x,p[x]);if(Mt)for(var x of Mt(p))Ki.call(p,x)&&Rt(o,x,p[x]);return o},Ut=(o,p)=>Ji(o,zi(p));import{u as ji}from"./index.41a3dfd7.js";function $i(o,p){return p.forEach(function(x){x&&typeof x!="string"&&!Array.isArray(x)&&Object.keys(x).forEach(function(c){if(c!=="default"&&!(c in o)){var C=Object.getOwnPropertyDescriptor(x,c);Object.defineProperty(o,c,C.get?C:{enumerable:!0,get:function(){return x[c]}})}})}),Object.freeze(Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}))}var ei={exports:{}};(function(o,p){(function(c,C){o.exports=C()})(ji,function(){return function(x){var c={};function C(d){if(c[d])return c[d].exports;var D=c[d]={exports:{},id:d,loaded:!1};return x[d].call(D.exports,D,D.exports,C),D.loaded=!0,D.exports}return C.m=x,C.c=c,C.p="",C(0)}([function(x,c,C){Object.defineProperty(c,"__esModule",{value:!0});var d=C(1),D=C(3),s=C(8),l=C(15);function A(f,e,i){var n=null,a=function(X,z){i&&i(X,z),n&&n.visit(X,z)},E=typeof i=="function"?a:null,F=!1;if(e){F=typeof e.comment=="boolean"&&e.comment;var T=typeof e.attachComment=="boolean"&&e.attachComment;(F||T)&&(n=new d.CommentHandler,n.attach=T,e.comment=!0,E=a)}var I=!1;e&&typeof e.sourceType=="string"&&(I=e.sourceType==="module");var P;e&&typeof e.jsx=="boolean"&&e.jsx?P=new D.JSXParser(f,e,E):P=new s.Parser(f,e,E);var R=I?P.parseModule():P.parseScript(),L=R;return F&&n&&(L.comments=n.comments),P.config.tokens&&(L.tokens=P.tokens),P.config.tolerant&&(L.errors=P.errorHandler.errors),L}c.parse=A;function S(f,e,i){var n=e||{};return n.sourceType="module",A(f,n,i)}c.parseModule=S;function g(f,e,i){var n=e||{};return n.sourceType="script",A(f,n,i)}c.parseScript=g;function h(f,e,i){var n=new l.Tokenizer(f,e),a;a=[];try{for(;;){var E=n.getNextToken();if(!E)break;i&&(E=i(E)),a.push(E)}}catch(F){n.errorHandler.tolerate(F)}return n.errorHandler.tolerant&&(a.errors=n.errors()),a}c.tokenize=h;var y=C(2);c.Syntax=y.Syntax,c.version="4.0.1"},function(x,c,C){Object.defineProperty(c,"__esModule",{value:!0});var d=C(2),D=function(){function s(){this.attach=!1,this.comments=[],this.stack=[],this.leading=[],this.trailing=[]}return s.prototype.insertInnerComments=function(l,A){if(l.type===d.Syntax.BlockStatement&&l.body.length===0){for(var S=[],g=this.leading.length-1;g>=0;--g){var h=this.leading[g];A.end.offset>=h.start&&(S.unshift(h.comment),this.leading.splice(g,1),this.trailing.splice(g,1))}S.length&&(l.innerComments=S)}},s.prototype.findTrailingComments=function(l){var A=[];if(this.trailing.length>0){for(var S=this.trailing.length-1;S>=0;--S){var g=this.trailing[S];g.start>=l.end.offset&&A.unshift(g.comment)}return this.trailing.length=0,A}var h=this.stack[this.stack.length-1];if(h&&h.node.trailingComments){var y=h.node.trailingComments[0];y&&y.range[0]>=l.end.offset&&(A=h.node.trailingComments,delete h.node.trailingComments)}return A},s.prototype.findLeadingComments=function(l){for(var A=[],S;this.stack.length>0;){var g=this.stack[this.stack.length-1];if(g&&g.start>=l.start.offset)S=g.node,this.stack.pop();else break}if(S){for(var h=S.leadingComments?S.leadingComments.length:0,y=h-1;y>=0;--y){var f=S.leadingComments[y];f.range[1]<=l.start.offset&&(A.unshift(f),S.leadingComments.splice(y,1))}return S.leadingComments&&S.leadingComments.length===0&&delete S.leadingComments,A}for(var y=this.leading.length-1;y>=0;--y){var g=this.leading[y];g.start<=l.start.offset&&(A.unshift(g.comment),this.leading.splice(y,1))}return A},s.prototype.visitNode=function(l,A){if(!(l.type===d.Syntax.Program&&l.body.length>0)){this.insertInnerComments(l,A);var S=this.findTrailingComments(A),g=this.findLeadingComments(A);g.length>0&&(l.leadingComments=g),S.length>0&&(l.trailingComments=S),this.stack.push({node:l,start:A.start.offset})}},s.prototype.visitComment=function(l,A){var S=l.type[0]==="L"?"Line":"Block",g={type:S,value:l.value};if(l.range&&(g.range=l.range),l.loc&&(g.loc=l.loc),this.comments.push(g),this.attach){var h={comment:{type:S,value:l.value,range:[A.start.offset,A.end.offset]},start:A.start.offset};l.loc&&(h.comment.loc=l.loc),l.type=S,this.leading.push(h),this.trailing.push(h)}},s.prototype.visit=function(l,A){l.type==="LineComment"?this.visitComment(l,A):l.type==="BlockComment"?this.visitComment(l,A):this.attach&&this.visitNode(l,A)},s}();c.CommentHandler=D},function(x,c){Object.defineProperty(c,"__esModule",{value:!0}),c.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(x,c,C){var d=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)n.hasOwnProperty(a)&&(i[a]=n[a])};return function(i,n){e(i,n);function a(){this.constructor=i}i.prototype=n===null?Object.create(n):(a.prototype=n.prototype,new a)}}();Object.defineProperty(c,"__esModule",{value:!0});var D=C(4),s=C(5),l=C(6),A=C(7),S=C(8),g=C(13),h=C(14);g.TokenName[100]="JSXIdentifier",g.TokenName[101]="JSXText";function y(e){var i;switch(e.type){case l.JSXSyntax.JSXIdentifier:var n=e;i=n.name;break;case l.JSXSyntax.JSXNamespacedName:var a=e;i=y(a.namespace)+":"+y(a.name);break;case l.JSXSyntax.JSXMemberExpression:var E=e;i=y(E.object)+"."+y(E.property);break}return i}var f=function(e){d(i,e);function i(n,a,E){return e.call(this,n,a,E)||this}return i.prototype.parsePrimaryExpression=function(){return this.match("<")?this.parseJSXRoot():e.prototype.parsePrimaryExpression.call(this)},i.prototype.startJSX=function(){this.scanner.index=this.startMarker.index,this.scanner.lineNumber=this.startMarker.line,this.scanner.lineStart=this.startMarker.index-this.startMarker.column},i.prototype.finishJSX=function(){this.nextToken()},i.prototype.reenterJSX=function(){this.startJSX(),this.expectJSX("}"),this.config.tokens&&this.tokens.pop()},i.prototype.createJSXNode=function(){return this.collectComments(),{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},i.prototype.createJSXChildNode=function(){return{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},i.prototype.scanXHTMLEntity=function(n){for(var a="&",E=!0,F=!1,T=!1,I=!1;!this.scanner.eof()&&E&&!F;){var P=this.scanner.source[this.scanner.index];if(P===n)break;if(F=P===";",a+=P,++this.scanner.index,!F)switch(a.length){case 2:T=P==="#";break;case 3:T&&(I=P==="x",E=I||D.Character.isDecimalDigit(P.charCodeAt(0)),T=T&&!I);break;default:E=E&&!(T&&!D.Character.isDecimalDigit(P.charCodeAt(0))),E=E&&!(I&&!D.Character.isHexDigit(P.charCodeAt(0)));break}}if(E&&F&&a.length>2){var R=a.substr(1,a.length-2);T&&R.length>1?a=String.fromCharCode(parseInt(R.substr(1),10)):I&&R.length>2?a=String.fromCharCode(parseInt("0"+R.substr(1),16)):!T&&!I&&h.XHTMLEntities[R]&&(a=h.XHTMLEntities[R])}return a},i.prototype.lexJSX=function(){var n=this.scanner.source.charCodeAt(this.scanner.index);if(n===60||n===62||n===47||n===58||n===61||n===123||n===125){var a=this.scanner.source[this.scanner.index++];return{type:7,value:a,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index-1,end:this.scanner.index}}if(n===34||n===39){for(var E=this.scanner.index,F=this.scanner.source[this.scanner.index++],T="";!this.scanner.eof();){var I=this.scanner.source[this.scanner.index++];if(I===F)break;I==="&"?T+=this.scanXHTMLEntity(F):T+=I}return{type:8,value:T,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:E,end:this.scanner.index}}if(n===46){var P=this.scanner.source.charCodeAt(this.scanner.index+1),R=this.scanner.source.charCodeAt(this.scanner.index+2),a=P===46&&R===46?"...":".",E=this.scanner.index;return this.scanner.index+=a.length,{type:7,value:a,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:E,end:this.scanner.index}}if(n===96)return{type:10,value:"",lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index,end:this.scanner.index};if(D.Character.isIdentifierStart(n)&&n!==92){var E=this.scanner.index;for(++this.scanner.index;!this.scanner.eof();){var I=this.scanner.source.charCodeAt(this.scanner.index);if(D.Character.isIdentifierPart(I)&&I!==92)++this.scanner.index;else if(I===45)++this.scanner.index;else break}var L=this.scanner.source.slice(E,this.scanner.index);return{type:100,value:L,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:E,end:this.scanner.index}}return this.scanner.lex()},i.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 n=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(n)),n},i.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 n=this.scanner.index,a="";!this.scanner.eof();){var E=this.scanner.source[this.scanner.index];if(E==="{"||E==="<")break;++this.scanner.index,a+=E,D.Character.isLineTerminator(E.charCodeAt(0))&&(++this.scanner.lineNumber,E==="\r"&&this.scanner.source[this.scanner.index]===` +var Xi=Object.defineProperty,Ji=Object.defineProperties;var zi=Object.getOwnPropertyDescriptors;var Mt=Object.getOwnPropertySymbols;var _i=Object.prototype.hasOwnProperty,Ki=Object.prototype.propertyIsEnumerable;var Rt=(o,p,x)=>p in o?Xi(o,p,{enumerable:!0,configurable:!0,writable:!0,value:x}):o[p]=x,Lt=(o,p)=>{for(var x in p||(p={}))_i.call(p,x)&&Rt(o,x,p[x]);if(Mt)for(var x of Mt(p))Ki.call(p,x)&&Rt(o,x,p[x]);return o},Ut=(o,p)=>Ji(o,zi(p));import{u as ji}from"./index.d528c217.js";function $i(o,p){return p.forEach(function(x){x&&typeof x!="string"&&!Array.isArray(x)&&Object.keys(x).forEach(function(c){if(c!=="default"&&!(c in o)){var C=Object.getOwnPropertyDescriptor(x,c);Object.defineProperty(o,c,C.get?C:{enumerable:!0,get:function(){return x[c]}})}})}),Object.freeze(Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}))}var ei={exports:{}};(function(o,p){(function(c,C){o.exports=C()})(ji,function(){return function(x){var c={};function C(d){if(c[d])return c[d].exports;var D=c[d]={exports:{},id:d,loaded:!1};return x[d].call(D.exports,D,D.exports,C),D.loaded=!0,D.exports}return C.m=x,C.c=c,C.p="",C(0)}([function(x,c,C){Object.defineProperty(c,"__esModule",{value:!0});var d=C(1),D=C(3),s=C(8),l=C(15);function A(f,e,i){var n=null,a=function(X,z){i&&i(X,z),n&&n.visit(X,z)},E=typeof i=="function"?a:null,F=!1;if(e){F=typeof e.comment=="boolean"&&e.comment;var T=typeof e.attachComment=="boolean"&&e.attachComment;(F||T)&&(n=new d.CommentHandler,n.attach=T,e.comment=!0,E=a)}var I=!1;e&&typeof e.sourceType=="string"&&(I=e.sourceType==="module");var P;e&&typeof e.jsx=="boolean"&&e.jsx?P=new D.JSXParser(f,e,E):P=new s.Parser(f,e,E);var R=I?P.parseModule():P.parseScript(),L=R;return F&&n&&(L.comments=n.comments),P.config.tokens&&(L.tokens=P.tokens),P.config.tolerant&&(L.errors=P.errorHandler.errors),L}c.parse=A;function S(f,e,i){var n=e||{};return n.sourceType="module",A(f,n,i)}c.parseModule=S;function g(f,e,i){var n=e||{};return n.sourceType="script",A(f,n,i)}c.parseScript=g;function h(f,e,i){var n=new l.Tokenizer(f,e),a;a=[];try{for(;;){var E=n.getNextToken();if(!E)break;i&&(E=i(E)),a.push(E)}}catch(F){n.errorHandler.tolerate(F)}return n.errorHandler.tolerant&&(a.errors=n.errors()),a}c.tokenize=h;var y=C(2);c.Syntax=y.Syntax,c.version="4.0.1"},function(x,c,C){Object.defineProperty(c,"__esModule",{value:!0});var d=C(2),D=function(){function s(){this.attach=!1,this.comments=[],this.stack=[],this.leading=[],this.trailing=[]}return s.prototype.insertInnerComments=function(l,A){if(l.type===d.Syntax.BlockStatement&&l.body.length===0){for(var S=[],g=this.leading.length-1;g>=0;--g){var h=this.leading[g];A.end.offset>=h.start&&(S.unshift(h.comment),this.leading.splice(g,1),this.trailing.splice(g,1))}S.length&&(l.innerComments=S)}},s.prototype.findTrailingComments=function(l){var A=[];if(this.trailing.length>0){for(var S=this.trailing.length-1;S>=0;--S){var g=this.trailing[S];g.start>=l.end.offset&&A.unshift(g.comment)}return this.trailing.length=0,A}var h=this.stack[this.stack.length-1];if(h&&h.node.trailingComments){var y=h.node.trailingComments[0];y&&y.range[0]>=l.end.offset&&(A=h.node.trailingComments,delete h.node.trailingComments)}return A},s.prototype.findLeadingComments=function(l){for(var A=[],S;this.stack.length>0;){var g=this.stack[this.stack.length-1];if(g&&g.start>=l.start.offset)S=g.node,this.stack.pop();else break}if(S){for(var h=S.leadingComments?S.leadingComments.length:0,y=h-1;y>=0;--y){var f=S.leadingComments[y];f.range[1]<=l.start.offset&&(A.unshift(f),S.leadingComments.splice(y,1))}return S.leadingComments&&S.leadingComments.length===0&&delete S.leadingComments,A}for(var y=this.leading.length-1;y>=0;--y){var g=this.leading[y];g.start<=l.start.offset&&(A.unshift(g.comment),this.leading.splice(y,1))}return A},s.prototype.visitNode=function(l,A){if(!(l.type===d.Syntax.Program&&l.body.length>0)){this.insertInnerComments(l,A);var S=this.findTrailingComments(A),g=this.findLeadingComments(A);g.length>0&&(l.leadingComments=g),S.length>0&&(l.trailingComments=S),this.stack.push({node:l,start:A.start.offset})}},s.prototype.visitComment=function(l,A){var S=l.type[0]==="L"?"Line":"Block",g={type:S,value:l.value};if(l.range&&(g.range=l.range),l.loc&&(g.loc=l.loc),this.comments.push(g),this.attach){var h={comment:{type:S,value:l.value,range:[A.start.offset,A.end.offset]},start:A.start.offset};l.loc&&(h.comment.loc=l.loc),l.type=S,this.leading.push(h),this.trailing.push(h)}},s.prototype.visit=function(l,A){l.type==="LineComment"?this.visitComment(l,A):l.type==="BlockComment"?this.visitComment(l,A):this.attach&&this.visitNode(l,A)},s}();c.CommentHandler=D},function(x,c){Object.defineProperty(c,"__esModule",{value:!0}),c.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(x,c,C){var d=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)n.hasOwnProperty(a)&&(i[a]=n[a])};return function(i,n){e(i,n);function a(){this.constructor=i}i.prototype=n===null?Object.create(n):(a.prototype=n.prototype,new a)}}();Object.defineProperty(c,"__esModule",{value:!0});var D=C(4),s=C(5),l=C(6),A=C(7),S=C(8),g=C(13),h=C(14);g.TokenName[100]="JSXIdentifier",g.TokenName[101]="JSXText";function y(e){var i;switch(e.type){case l.JSXSyntax.JSXIdentifier:var n=e;i=n.name;break;case l.JSXSyntax.JSXNamespacedName:var a=e;i=y(a.namespace)+":"+y(a.name);break;case l.JSXSyntax.JSXMemberExpression:var E=e;i=y(E.object)+"."+y(E.property);break}return i}var f=function(e){d(i,e);function i(n,a,E){return e.call(this,n,a,E)||this}return i.prototype.parsePrimaryExpression=function(){return this.match("<")?this.parseJSXRoot():e.prototype.parsePrimaryExpression.call(this)},i.prototype.startJSX=function(){this.scanner.index=this.startMarker.index,this.scanner.lineNumber=this.startMarker.line,this.scanner.lineStart=this.startMarker.index-this.startMarker.column},i.prototype.finishJSX=function(){this.nextToken()},i.prototype.reenterJSX=function(){this.startJSX(),this.expectJSX("}"),this.config.tokens&&this.tokens.pop()},i.prototype.createJSXNode=function(){return this.collectComments(),{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},i.prototype.createJSXChildNode=function(){return{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},i.prototype.scanXHTMLEntity=function(n){for(var a="&",E=!0,F=!1,T=!1,I=!1;!this.scanner.eof()&&E&&!F;){var P=this.scanner.source[this.scanner.index];if(P===n)break;if(F=P===";",a+=P,++this.scanner.index,!F)switch(a.length){case 2:T=P==="#";break;case 3:T&&(I=P==="x",E=I||D.Character.isDecimalDigit(P.charCodeAt(0)),T=T&&!I);break;default:E=E&&!(T&&!D.Character.isDecimalDigit(P.charCodeAt(0))),E=E&&!(I&&!D.Character.isHexDigit(P.charCodeAt(0)));break}}if(E&&F&&a.length>2){var R=a.substr(1,a.length-2);T&&R.length>1?a=String.fromCharCode(parseInt(R.substr(1),10)):I&&R.length>2?a=String.fromCharCode(parseInt("0"+R.substr(1),16)):!T&&!I&&h.XHTMLEntities[R]&&(a=h.XHTMLEntities[R])}return a},i.prototype.lexJSX=function(){var n=this.scanner.source.charCodeAt(this.scanner.index);if(n===60||n===62||n===47||n===58||n===61||n===123||n===125){var a=this.scanner.source[this.scanner.index++];return{type:7,value:a,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index-1,end:this.scanner.index}}if(n===34||n===39){for(var E=this.scanner.index,F=this.scanner.source[this.scanner.index++],T="";!this.scanner.eof();){var I=this.scanner.source[this.scanner.index++];if(I===F)break;I==="&"?T+=this.scanXHTMLEntity(F):T+=I}return{type:8,value:T,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:E,end:this.scanner.index}}if(n===46){var P=this.scanner.source.charCodeAt(this.scanner.index+1),R=this.scanner.source.charCodeAt(this.scanner.index+2),a=P===46&&R===46?"...":".",E=this.scanner.index;return this.scanner.index+=a.length,{type:7,value:a,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:E,end:this.scanner.index}}if(n===96)return{type:10,value:"",lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index,end:this.scanner.index};if(D.Character.isIdentifierStart(n)&&n!==92){var E=this.scanner.index;for(++this.scanner.index;!this.scanner.eof();){var I=this.scanner.source.charCodeAt(this.scanner.index);if(D.Character.isIdentifierPart(I)&&I!==92)++this.scanner.index;else if(I===45)++this.scanner.index;else break}var L=this.scanner.source.slice(E,this.scanner.index);return{type:100,value:L,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:E,end:this.scanner.index}}return this.scanner.lex()},i.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 n=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(n)),n},i.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 n=this.scanner.index,a="";!this.scanner.eof();){var E=this.scanner.source[this.scanner.index];if(E==="{"||E==="<")break;++this.scanner.index,a+=E,D.Character.isLineTerminator(E.charCodeAt(0))&&(++this.scanner.lineNumber,E==="\r"&&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 F={type:101,value:a,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:n,end:this.scanner.index};return a.length>0&&this.config.tokens&&this.tokens.push(this.convertToken(F)),F},i.prototype.peekJSXToken=function(){var n=this.scanner.saveState();this.scanner.scanComments();var a=this.lexJSX();return this.scanner.restoreState(n),a},i.prototype.expectJSX=function(n){var a=this.nextJSXToken();(a.type!==7||a.value!==n)&&this.throwUnexpectedToken(a)},i.prototype.matchJSX=function(n){var a=this.peekJSXToken();return a.type===7&&a.value===n},i.prototype.parseJSXIdentifier=function(){var n=this.createJSXNode(),a=this.nextJSXToken();return a.type!==100&&this.throwUnexpectedToken(a),this.finalize(n,new s.JSXIdentifier(a.value))},i.prototype.parseJSXElementName=function(){var n=this.createJSXNode(),a=this.parseJSXIdentifier();if(this.matchJSX(":")){var E=a;this.expectJSX(":");var F=this.parseJSXIdentifier();a=this.finalize(n,new s.JSXNamespacedName(E,F))}else if(this.matchJSX("."))for(;this.matchJSX(".");){var T=a;this.expectJSX(".");var I=this.parseJSXIdentifier();a=this.finalize(n,new s.JSXMemberExpression(T,I))}return a},i.prototype.parseJSXAttributeName=function(){var n=this.createJSXNode(),a,E=this.parseJSXIdentifier();if(this.matchJSX(":")){var F=E;this.expectJSX(":");var T=this.parseJSXIdentifier();a=this.finalize(n,new s.JSXNamespacedName(F,T))}else a=E;return a},i.prototype.parseJSXStringLiteralAttribute=function(){var n=this.createJSXNode(),a=this.nextJSXToken();a.type!==8&&this.throwUnexpectedToken(a);var E=this.getTokenRaw(a);return this.finalize(n,new A.Literal(a.value,E))},i.prototype.parseJSXExpressionAttribute=function(){var n=this.createJSXNode();this.expectJSX("{"),this.finishJSX(),this.match("}")&&this.tolerateError("JSX attributes must only be assigned a non-empty expression");var a=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(n,new s.JSXExpressionContainer(a))},i.prototype.parseJSXAttributeValue=function(){return this.matchJSX("{")?this.parseJSXExpressionAttribute():this.matchJSX("<")?this.parseJSXElement():this.parseJSXStringLiteralAttribute()},i.prototype.parseJSXNameValueAttribute=function(){var n=this.createJSXNode(),a=this.parseJSXAttributeName(),E=null;return this.matchJSX("=")&&(this.expectJSX("="),E=this.parseJSXAttributeValue()),this.finalize(n,new s.JSXAttribute(a,E))},i.prototype.parseJSXSpreadAttribute=function(){var n=this.createJSXNode();this.expectJSX("{"),this.expectJSX("..."),this.finishJSX();var a=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(n,new s.JSXSpreadAttribute(a))},i.prototype.parseJSXAttributes=function(){for(var n=[];!this.matchJSX("/")&&!this.matchJSX(">");){var a=this.matchJSX("{")?this.parseJSXSpreadAttribute():this.parseJSXNameValueAttribute();n.push(a)}return n},i.prototype.parseJSXOpeningElement=function(){var n=this.createJSXNode();this.expectJSX("<");var a=this.parseJSXElementName(),E=this.parseJSXAttributes(),F=this.matchJSX("/");return F&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(n,new s.JSXOpeningElement(a,F,E))},i.prototype.parseJSXBoundaryElement=function(){var n=this.createJSXNode();if(this.expectJSX("<"),this.matchJSX("/")){this.expectJSX("/");var a=this.parseJSXElementName();return this.expectJSX(">"),this.finalize(n,new s.JSXClosingElement(a))}var E=this.parseJSXElementName(),F=this.parseJSXAttributes(),T=this.matchJSX("/");return T&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(n,new s.JSXOpeningElement(E,T,F))},i.prototype.parseJSXEmptyExpression=function(){var n=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(n,new s.JSXEmptyExpression)},i.prototype.parseJSXExpressionContainer=function(){var n=this.createJSXNode();this.expectJSX("{");var a;return this.matchJSX("}")?(a=this.parseJSXEmptyExpression(),this.expectJSX("}")):(this.finishJSX(),a=this.parseAssignmentExpression(),this.reenterJSX()),this.finalize(n,new s.JSXExpressionContainer(a))},i.prototype.parseJSXChildren=function(){for(var n=[];!this.scanner.eof();){var a=this.createJSXChildNode(),E=this.nextJSXText();if(E.start0){var I=this.finalize(n.node,new s.JSXElement(n.opening,n.children,n.closing));n=a[a.length-1],n.children.push(I),a.pop()}else break}}return n},i.prototype.parseJSXElement=function(){var n=this.createJSXNode(),a=this.parseJSXOpeningElement(),E=[],F=null;if(!a.selfClosing){var T=this.parseComplexJSXElement({node:n,opening:a,closing:F,children:E});E=T.children,F=T.closing}return this.finalize(n,new s.JSXElement(a,E,F))},i.prototype.parseJSXRoot=function(){this.config.tokens&&this.tokens.pop(),this.startJSX();var n=this.parseJSXElement();return this.finishJSX(),n},i.prototype.isStartOfExpression=function(){return e.prototype.isStartOfExpression.call(this)||this.match("<")},i}(S.Parser);c.JSXParser=f},function(x,c){Object.defineProperty(c,"__esModule",{value:!0});var C={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]/};c.Character={fromCodePoint:function(d){return d<65536?String.fromCharCode(d):String.fromCharCode(55296+(d-65536>>10))+String.fromCharCode(56320+(d-65536&1023))},isWhiteSpace:function(d){return d===32||d===9||d===11||d===12||d===160||d>=5760&&[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(d)>=0},isLineTerminator:function(d){return d===10||d===13||d===8232||d===8233},isIdentifierStart:function(d){return d===36||d===95||d>=65&&d<=90||d>=97&&d<=122||d===92||d>=128&&C.NonAsciiIdentifierStart.test(c.Character.fromCodePoint(d))},isIdentifierPart:function(d){return d===36||d===95||d>=65&&d<=90||d>=97&&d<=122||d>=48&&d<=57||d===92||d>=128&&C.NonAsciiIdentifierPart.test(c.Character.fromCodePoint(d))},isDecimalDigit:function(d){return d>=48&&d<=57},isHexDigit:function(d){return d>=48&&d<=57||d>=65&&d<=70||d>=97&&d<=102},isOctalDigit:function(d){return d>=48&&d<=55}}},function(x,c,C){Object.defineProperty(c,"__esModule",{value:!0});var d=C(6),D=function(){function n(a){this.type=d.JSXSyntax.JSXClosingElement,this.name=a}return n}();c.JSXClosingElement=D;var s=function(){function n(a,E,F){this.type=d.JSXSyntax.JSXElement,this.openingElement=a,this.children=E,this.closingElement=F}return n}();c.JSXElement=s;var l=function(){function n(){this.type=d.JSXSyntax.JSXEmptyExpression}return n}();c.JSXEmptyExpression=l;var A=function(){function n(a){this.type=d.JSXSyntax.JSXExpressionContainer,this.expression=a}return n}();c.JSXExpressionContainer=A;var S=function(){function n(a){this.type=d.JSXSyntax.JSXIdentifier,this.name=a}return n}();c.JSXIdentifier=S;var g=function(){function n(a,E){this.type=d.JSXSyntax.JSXMemberExpression,this.object=a,this.property=E}return n}();c.JSXMemberExpression=g;var h=function(){function n(a,E){this.type=d.JSXSyntax.JSXAttribute,this.name=a,this.value=E}return n}();c.JSXAttribute=h;var y=function(){function n(a,E){this.type=d.JSXSyntax.JSXNamespacedName,this.namespace=a,this.name=E}return n}();c.JSXNamespacedName=y;var f=function(){function n(a,E,F){this.type=d.JSXSyntax.JSXOpeningElement,this.name=a,this.selfClosing=E,this.attributes=F}return n}();c.JSXOpeningElement=f;var e=function(){function n(a){this.type=d.JSXSyntax.JSXSpreadAttribute,this.argument=a}return n}();c.JSXSpreadAttribute=e;var i=function(){function n(a,E){this.type=d.JSXSyntax.JSXText,this.value=a,this.raw=E}return n}();c.JSXText=i},function(x,c){Object.defineProperty(c,"__esModule",{value:!0}),c.JSXSyntax={JSXAttribute:"JSXAttribute",JSXClosingElement:"JSXClosingElement",JSXElement:"JSXElement",JSXEmptyExpression:"JSXEmptyExpression",JSXExpressionContainer:"JSXExpressionContainer",JSXIdentifier:"JSXIdentifier",JSXMemberExpression:"JSXMemberExpression",JSXNamespacedName:"JSXNamespacedName",JSXOpeningElement:"JSXOpeningElement",JSXSpreadAttribute:"JSXSpreadAttribute",JSXText:"JSXText"}},function(x,c,C){Object.defineProperty(c,"__esModule",{value:!0});var d=C(2),D=function(){function B(k){this.type=d.Syntax.ArrayExpression,this.elements=k}return B}();c.ArrayExpression=D;var s=function(){function B(k){this.type=d.Syntax.ArrayPattern,this.elements=k}return B}();c.ArrayPattern=s;var l=function(){function B(k,N,U){this.type=d.Syntax.ArrowFunctionExpression,this.id=null,this.params=k,this.body=N,this.generator=!1,this.expression=U,this.async=!1}return B}();c.ArrowFunctionExpression=l;var A=function(){function B(k,N,U){this.type=d.Syntax.AssignmentExpression,this.operator=k,this.left=N,this.right=U}return B}();c.AssignmentExpression=A;var S=function(){function B(k,N){this.type=d.Syntax.AssignmentPattern,this.left=k,this.right=N}return B}();c.AssignmentPattern=S;var g=function(){function B(k,N,U){this.type=d.Syntax.ArrowFunctionExpression,this.id=null,this.params=k,this.body=N,this.generator=!1,this.expression=U,this.async=!0}return B}();c.AsyncArrowFunctionExpression=g;var h=function(){function B(k,N,U){this.type=d.Syntax.FunctionDeclaration,this.id=k,this.params=N,this.body=U,this.generator=!1,this.expression=!1,this.async=!0}return B}();c.AsyncFunctionDeclaration=h;var y=function(){function B(k,N,U){this.type=d.Syntax.FunctionExpression,this.id=k,this.params=N,this.body=U,this.generator=!1,this.expression=!1,this.async=!0}return B}();c.AsyncFunctionExpression=y;var f=function(){function B(k){this.type=d.Syntax.AwaitExpression,this.argument=k}return B}();c.AwaitExpression=f;var e=function(){function B(k,N,U){var q=k==="||"||k==="&&";this.type=q?d.Syntax.LogicalExpression:d.Syntax.BinaryExpression,this.operator=k,this.left=N,this.right=U}return B}();c.BinaryExpression=e;var i=function(){function B(k){this.type=d.Syntax.BlockStatement,this.body=k}return B}();c.BlockStatement=i;var n=function(){function B(k){this.type=d.Syntax.BreakStatement,this.label=k}return B}();c.BreakStatement=n;var a=function(){function B(k,N){this.type=d.Syntax.CallExpression,this.callee=k,this.arguments=N}return B}();c.CallExpression=a;var E=function(){function B(k,N){this.type=d.Syntax.CatchClause,this.param=k,this.body=N}return B}();c.CatchClause=E;var F=function(){function B(k){this.type=d.Syntax.ClassBody,this.body=k}return B}();c.ClassBody=F;var T=function(){function B(k,N,U){this.type=d.Syntax.ClassDeclaration,this.id=k,this.superClass=N,this.body=U}return B}();c.ClassDeclaration=T;var I=function(){function B(k,N,U){this.type=d.Syntax.ClassExpression,this.id=k,this.superClass=N,this.body=U}return B}();c.ClassExpression=I;var P=function(){function B(k,N){this.type=d.Syntax.MemberExpression,this.computed=!0,this.object=k,this.property=N}return B}();c.ComputedMemberExpression=P;var R=function(){function B(k,N,U){this.type=d.Syntax.ConditionalExpression,this.test=k,this.consequent=N,this.alternate=U}return B}();c.ConditionalExpression=R;var L=function(){function B(k){this.type=d.Syntax.ContinueStatement,this.label=k}return B}();c.ContinueStatement=L;var X=function(){function B(){this.type=d.Syntax.DebuggerStatement}return B}();c.DebuggerStatement=X;var z=function(){function B(k,N){this.type=d.Syntax.ExpressionStatement,this.expression=k,this.directive=N}return B}();c.Directive=z;var G=function(){function B(k,N){this.type=d.Syntax.DoWhileStatement,this.body=k,this.test=N}return B}();c.DoWhileStatement=G;var V=function(){function B(){this.type=d.Syntax.EmptyStatement}return B}();c.EmptyStatement=V;var oe=function(){function B(k){this.type=d.Syntax.ExportAllDeclaration,this.source=k}return B}();c.ExportAllDeclaration=oe;var De=function(){function B(k){this.type=d.Syntax.ExportDefaultDeclaration,this.declaration=k}return B}();c.ExportDefaultDeclaration=De;var We=function(){function B(k,N,U){this.type=d.Syntax.ExportNamedDeclaration,this.declaration=k,this.specifiers=N,this.source=U}return B}();c.ExportNamedDeclaration=We;var Ve=function(){function B(k,N){this.type=d.Syntax.ExportSpecifier,this.exported=N,this.local=k}return B}();c.ExportSpecifier=Ve;var qe=function(){function B(k){this.type=d.Syntax.ExpressionStatement,this.expression=k}return B}();c.ExpressionStatement=qe;var Ze=function(){function B(k,N,U){this.type=d.Syntax.ForInStatement,this.left=k,this.right=N,this.body=U,this.each=!1}return B}();c.ForInStatement=Ze;var Qe=function(){function B(k,N,U){this.type=d.Syntax.ForOfStatement,this.left=k,this.right=N,this.body=U}return B}();c.ForOfStatement=Qe;var $=function(){function B(k,N,U,q){this.type=d.Syntax.ForStatement,this.init=k,this.test=N,this.update=U,this.body=q}return B}();c.ForStatement=$;var H=function(){function B(k,N,U,q){this.type=d.Syntax.FunctionDeclaration,this.id=k,this.params=N,this.body=U,this.generator=q,this.expression=!1,this.async=!1}return B}();c.FunctionDeclaration=H;var Ie=function(){function B(k,N,U,q){this.type=d.Syntax.FunctionExpression,this.id=k,this.params=N,this.body=U,this.generator=q,this.expression=!1,this.async=!1}return B}();c.FunctionExpression=Ie;var Ne=function(){function B(k){this.type=d.Syntax.Identifier,this.name=k}return B}();c.Identifier=Ne;var Pe=function(){function B(k,N,U){this.type=d.Syntax.IfStatement,this.test=k,this.consequent=N,this.alternate=U}return B}();c.IfStatement=Pe;var Me=function(){function B(k,N){this.type=d.Syntax.ImportDeclaration,this.specifiers=k,this.source=N}return B}();c.ImportDeclaration=Me;var Re=function(){function B(k){this.type=d.Syntax.ImportDefaultSpecifier,this.local=k}return B}();c.ImportDefaultSpecifier=Re;var he=function(){function B(k){this.type=d.Syntax.ImportNamespaceSpecifier,this.local=k}return B}();c.ImportNamespaceSpecifier=he;var ve=function(){function B(k,N){this.type=d.Syntax.ImportSpecifier,this.local=k,this.imported=N}return B}();c.ImportSpecifier=ve;var Le=function(){function B(k,N){this.type=d.Syntax.LabeledStatement,this.label=k,this.body=N}return B}();c.LabeledStatement=Le;var et=function(){function B(k,N){this.type=d.Syntax.Literal,this.value=k,this.raw=N}return B}();c.Literal=et;var Ue=function(){function B(k,N){this.type=d.Syntax.MetaProperty,this.meta=k,this.property=N}return B}();c.MetaProperty=Ue;var ce=function(){function B(k,N,U,q,ot){this.type=d.Syntax.MethodDefinition,this.key=k,this.computed=N,this.value=U,this.kind=q,this.static=ot}return B}();c.MethodDefinition=ce;var de=function(){function B(k){this.type=d.Syntax.Program,this.body=k,this.sourceType="module"}return B}();c.Module=de;var tt=function(){function B(k,N){this.type=d.Syntax.NewExpression,this.callee=k,this.arguments=N}return B}();c.NewExpression=tt;var it=function(){function B(k){this.type=d.Syntax.ObjectExpression,this.properties=k}return B}();c.ObjectExpression=it;var Fe=function(){function B(k){this.type=d.Syntax.ObjectPattern,this.properties=k}return B}();c.ObjectPattern=Fe;var rt=function(){function B(k,N,U,q,ot,Oi){this.type=d.Syntax.Property,this.key=N,this.computed=U,this.value=q,this.kind=k,this.method=ot,this.shorthand=Oi}return B}();c.Property=rt;var nt=function(){function B(k,N,U,q){this.type=d.Syntax.Literal,this.value=k,this.raw=N,this.regex={pattern:U,flags:q}}return B}();c.RegexLiteral=nt;var Oe=function(){function B(k){this.type=d.Syntax.RestElement,this.argument=k}return B}();c.RestElement=Oe;var Ee=function(){function B(k){this.type=d.Syntax.ReturnStatement,this.argument=k}return B}();c.ReturnStatement=Ee;var ee=function(){function B(k){this.type=d.Syntax.Program,this.body=k,this.sourceType="script"}return B}();c.Script=ee;var Se=function(){function B(k){this.type=d.Syntax.SequenceExpression,this.expressions=k}return B}();c.SequenceExpression=Se;var st=function(){function B(k){this.type=d.Syntax.SpreadElement,this.argument=k}return B}();c.SpreadElement=st;var re=function(){function B(k,N){this.type=d.Syntax.MemberExpression,this.computed=!1,this.object=k,this.property=N}return B}();c.StaticMemberExpression=re;var at=function(){function B(){this.type=d.Syntax.Super}return B}();c.Super=at;var u=function(){function B(k,N){this.type=d.Syntax.SwitchCase,this.test=k,this.consequent=N}return B}();c.SwitchCase=u;var t=function(){function B(k,N){this.type=d.Syntax.SwitchStatement,this.discriminant=k,this.cases=N}return B}();c.SwitchStatement=t;var r=function(){function B(k,N){this.type=d.Syntax.TaggedTemplateExpression,this.tag=k,this.quasi=N}return B}();c.TaggedTemplateExpression=r;var m=function(){function B(k,N){this.type=d.Syntax.TemplateElement,this.value=k,this.tail=N}return B}();c.TemplateElement=m;var v=function(){function B(k,N){this.type=d.Syntax.TemplateLiteral,this.quasis=k,this.expressions=N}return B}();c.TemplateLiteral=v;var w=function(){function B(){this.type=d.Syntax.ThisExpression}return B}();c.ThisExpression=w;var b=function(){function B(k){this.type=d.Syntax.ThrowStatement,this.argument=k}return B}();c.ThrowStatement=b;var O=function(){function B(k,N,U){this.type=d.Syntax.TryStatement,this.block=k,this.handler=N,this.finalizer=U}return B}();c.TryStatement=O;var K=function(){function B(k,N){this.type=d.Syntax.UnaryExpression,this.operator=k,this.argument=N,this.prefix=!0}return B}();c.UnaryExpression=K;var _=function(){function B(k,N,U){this.type=d.Syntax.UpdateExpression,this.operator=k,this.argument=N,this.prefix=U}return B}();c.UpdateExpression=_;var j=function(){function B(k,N){this.type=d.Syntax.VariableDeclaration,this.declarations=k,this.kind=N}return B}();c.VariableDeclaration=j;var J=function(){function B(k,N){this.type=d.Syntax.VariableDeclarator,this.id=k,this.init=N}return B}();c.VariableDeclarator=J;var Ri=function(){function B(k,N){this.type=d.Syntax.WhileStatement,this.test=k,this.body=N}return B}();c.WhileStatement=Ri;var Li=function(){function B(k,N){this.type=d.Syntax.WithStatement,this.object=k,this.body=N}return B}();c.WithStatement=Li;var Ui=function(){function B(k,N){this.type=d.Syntax.YieldExpression,this.argument=k,this.delegate=N}return B}();c.YieldExpression=Ui},function(x,c,C){Object.defineProperty(c,"__esModule",{value:!0});var d=C(9),D=C(10),s=C(11),l=C(7),A=C(12),S=C(2),g=C(13),h="ArrowParameterPlaceHolder",y=function(){function f(e,i,n){i===void 0&&(i={}),this.config={range:typeof i.range=="boolean"&&i.range,loc:typeof i.loc=="boolean"&&i.loc,source:null,tokens:typeof i.tokens=="boolean"&&i.tokens,comment:typeof i.comment=="boolean"&&i.comment,tolerant:typeof i.tolerant=="boolean"&&i.tolerant},this.config.loc&&i.source&&i.source!==null&&(this.config.source=String(i.source)),this.delegate=n,this.errorHandler=new D.ErrorHandler,this.errorHandler.tolerant=this.config.tolerant,this.scanner=new A.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 f.prototype.throwError=function(e){for(var i=[],n=1;n0&&this.delegate)for(var i=0;i>="||e===">>>="||e==="&="||e==="^="||e==="|="},f.prototype.isolateCoverGrammar=function(e){var i=this.context.isBindingElement,n=this.context.isAssignmentTarget,a=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var E=e.call(this);return this.context.firstCoverInitializedNameError!==null&&this.throwUnexpectedToken(this.context.firstCoverInitializedNameError),this.context.isBindingElement=i,this.context.isAssignmentTarget=n,this.context.firstCoverInitializedNameError=a,E},f.prototype.inheritCoverGrammar=function(e){var i=this.context.isBindingElement,n=this.context.isAssignmentTarget,a=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var E=e.call(this);return this.context.isBindingElement=this.context.isBindingElement&&i,this.context.isAssignmentTarget=this.context.isAssignmentTarget&&n,this.context.firstCoverInitializedNameError=a||this.context.firstCoverInitializedNameError,E},f.prototype.consumeSemicolon=function(){this.match(";")?this.nextToken():this.hasLineTerminator||(this.lookahead.type!==2&&!this.match("}")&&this.throwUnexpectedToken(this.lookahead),this.lastMarker.index=this.startMarker.index,this.lastMarker.line=this.startMarker.line,this.lastMarker.column=this.startMarker.column)},f.prototype.parsePrimaryExpression=function(){var e=this.createNode(),i,n,a;switch(this.lookahead.type){case 3:(this.context.isModule||this.context.await)&&this.lookahead.value==="await"&&this.tolerateUnexpectedToken(this.lookahead),i=this.matchAsyncFunction()?this.parseFunctionExpression():this.finalize(e,new l.Identifier(this.nextToken().value));break;case 6:case 8:this.context.strict&&this.lookahead.octal&&this.tolerateUnexpectedToken(this.lookahead,s.Messages.StrictOctalLiteral),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,n=this.nextToken(),a=this.getTokenRaw(n),i=this.finalize(e,new l.Literal(n.value,a));break;case 1:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,n=this.nextToken(),a=this.getTokenRaw(n),i=this.finalize(e,new l.Literal(n.value==="true",a));break;case 5:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,n=this.nextToken(),a=this.getTokenRaw(n),i=this.finalize(e,new l.Literal(null,a));break;case 10:i=this.parseTemplateLiteral();break;case 7:switch(this.lookahead.value){case"(":this.context.isBindingElement=!1,i=this.inheritCoverGrammar(this.parseGroupExpression);break;case"[":i=this.inheritCoverGrammar(this.parseArrayInitializer);break;case"{":i=this.inheritCoverGrammar(this.parseObjectInitializer);break;case"/":case"/=":this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.scanner.index=this.startMarker.index,n=this.nextRegexToken(),a=this.getTokenRaw(n),i=this.finalize(e,new l.RegexLiteral(n.regex,a,n.pattern,n.flags));break;default:i=this.throwUnexpectedToken(this.nextToken())}break;case 4:!this.context.strict&&this.context.allowYield&&this.matchKeyword("yield")?i=this.parseIdentifierName():!this.context.strict&&this.matchKeyword("let")?i=this.finalize(e,new l.Identifier(this.nextToken().value)):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.matchKeyword("function")?i=this.parseFunctionExpression():this.matchKeyword("this")?(this.nextToken(),i=this.finalize(e,new l.ThisExpression)):this.matchKeyword("class")?i=this.parseClassExpression():i=this.throwUnexpectedToken(this.nextToken()));break;default:i=this.throwUnexpectedToken(this.nextToken())}return i},f.prototype.parseSpreadElement=function(){var e=this.createNode();this.expect("...");var i=this.inheritCoverGrammar(this.parseAssignmentExpression);return this.finalize(e,new l.SpreadElement(i))},f.prototype.parseArrayInitializer=function(){var e=this.createNode(),i=[];for(this.expect("[");!this.match("]");)if(this.match(","))this.nextToken(),i.push(null);else if(this.match("...")){var n=this.parseSpreadElement();this.match("]")||(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.expect(",")),i.push(n)}else i.push(this.inheritCoverGrammar(this.parseAssignmentExpression)),this.match("]")||this.expect(",");return this.expect("]"),this.finalize(e,new l.ArrayExpression(i))},f.prototype.parsePropertyMethod=function(e){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var i=this.context.strict,n=this.context.allowStrictDirective;this.context.allowStrictDirective=e.simple;var a=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=i,this.context.allowStrictDirective=n,a},f.prototype.parsePropertyMethodFunction=function(){var e=!1,i=this.createNode(),n=this.context.allowYield;this.context.allowYield=!0;var a=this.parseFormalParameters(),E=this.parsePropertyMethod(a);return this.context.allowYield=n,this.finalize(i,new l.FunctionExpression(null,a.params,E,e))},f.prototype.parsePropertyMethodAsyncFunction=function(){var e=this.createNode(),i=this.context.allowYield,n=this.context.await;this.context.allowYield=!1,this.context.await=!0;var a=this.parseFormalParameters(),E=this.parsePropertyMethod(a);return this.context.allowYield=i,this.context.await=n,this.finalize(e,new l.AsyncFunctionExpression(null,a.params,E))},f.prototype.parseObjectPropertyKey=function(){var e=this.createNode(),i=this.nextToken(),n;switch(i.type){case 8:case 6:this.context.strict&&i.octal&&this.tolerateUnexpectedToken(i,s.Messages.StrictOctalLiteral);var a=this.getTokenRaw(i);n=this.finalize(e,new l.Literal(i.value,a));break;case 3:case 1:case 5:case 4:n=this.finalize(e,new l.Identifier(i.value));break;case 7:i.value==="["?(n=this.isolateCoverGrammar(this.parseAssignmentExpression),this.expect("]")):n=this.throwUnexpectedToken(i);break;default:n=this.throwUnexpectedToken(i)}return n},f.prototype.isPropertyKey=function(e,i){return e.type===S.Syntax.Identifier&&e.name===i||e.type===S.Syntax.Literal&&e.value===i},f.prototype.parseObjectProperty=function(e){var i=this.createNode(),n=this.lookahead,a,E=null,F=null,T=!1,I=!1,P=!1,R=!1;if(n.type===3){var L=n.value;this.nextToken(),T=this.match("["),R=!this.hasLineTerminator&&L==="async"&&!this.match(":")&&!this.match("(")&&!this.match("*")&&!this.match(","),E=R?this.parseObjectPropertyKey():this.finalize(i,new l.Identifier(L))}else this.match("*")?this.nextToken():(T=this.match("["),E=this.parseObjectPropertyKey());var X=this.qualifiedPropertyName(this.lookahead);if(n.type===3&&!R&&n.value==="get"&&X)a="get",T=this.match("["),E=this.parseObjectPropertyKey(),this.context.allowYield=!1,F=this.parseGetterMethod();else if(n.type===3&&!R&&n.value==="set"&&X)a="set",T=this.match("["),E=this.parseObjectPropertyKey(),F=this.parseSetterMethod();else if(n.type===7&&n.value==="*"&&X)a="init",T=this.match("["),E=this.parseObjectPropertyKey(),F=this.parseGeneratorMethod(),I=!0;else if(E||this.throwUnexpectedToken(this.lookahead),a="init",this.match(":")&&!R)!T&&this.isPropertyKey(E,"__proto__")&&(e.value&&this.tolerateError(s.Messages.DuplicateProtoProperty),e.value=!0),this.nextToken(),F=this.inheritCoverGrammar(this.parseAssignmentExpression);else if(this.match("("))F=R?this.parsePropertyMethodAsyncFunction():this.parsePropertyMethodFunction(),I=!0;else if(n.type===3){var L=this.finalize(i,new l.Identifier(n.value));if(this.match("=")){this.context.firstCoverInitializedNameError=this.lookahead,this.nextToken(),P=!0;var z=this.isolateCoverGrammar(this.parseAssignmentExpression);F=this.finalize(i,new l.AssignmentPattern(L,z))}else P=!0,F=L}else this.throwUnexpectedToken(this.nextToken());return this.finalize(i,new l.Property(a,E,T,F,I,P))},f.prototype.parseObjectInitializer=function(){var e=this.createNode();this.expect("{");for(var i=[],n={value:!1};!this.match("}");)i.push(this.parseObjectProperty(n)),this.match("}")||this.expectCommaSeparator();return this.expect("}"),this.finalize(e,new l.ObjectExpression(i))},f.prototype.parseTemplateHead=function(){d.assert(this.lookahead.head,"Template literal must start with a template head");var e=this.createNode(),i=this.nextToken(),n=i.value,a=i.cooked;return this.finalize(e,new l.TemplateElement({raw:n,cooked:a},i.tail))},f.prototype.parseTemplateElement=function(){this.lookahead.type!==10&&this.throwUnexpectedToken();var e=this.createNode(),i=this.nextToken(),n=i.value,a=i.cooked;return this.finalize(e,new l.TemplateElement({raw:n,cooked:a},i.tail))},f.prototype.parseTemplateLiteral=function(){var e=this.createNode(),i=[],n=[],a=this.parseTemplateHead();for(n.push(a);!a.tail;)i.push(this.parseExpression()),a=this.parseTemplateElement(),n.push(a);return this.finalize(e,new l.TemplateLiteral(n,i))},f.prototype.reinterpretExpressionAsPattern=function(e){switch(e.type){case S.Syntax.Identifier:case S.Syntax.MemberExpression:case S.Syntax.RestElement:case S.Syntax.AssignmentPattern:break;case S.Syntax.SpreadElement:e.type=S.Syntax.RestElement,this.reinterpretExpressionAsPattern(e.argument);break;case S.Syntax.ArrayExpression:e.type=S.Syntax.ArrayPattern;for(var i=0;i")||this.expect("=>"),e={type:h,params:[],async:!1};else{var i=this.lookahead,n=[];if(this.match("..."))e=this.parseRestElement(n),this.expect(")"),this.match("=>")||this.expect("=>"),e={type:h,params:[e],async:!1};else{var a=!1;if(this.context.isBindingElement=!0,e=this.inheritCoverGrammar(this.parseAssignmentExpression),this.match(",")){var E=[];for(this.context.isAssignmentTarget=!1,E.push(e);this.lookahead.type!==2&&this.match(",");){if(this.nextToken(),this.match(")")){this.nextToken();for(var F=0;F")||this.expect("=>"),this.context.isBindingElement=!1;for(var F=0;F")&&(e.type===S.Syntax.Identifier&&e.name==="yield"&&(a=!0,e={type:h,params:[e],async:!1}),!a)){if(this.context.isBindingElement||this.throwUnexpectedToken(this.lookahead),e.type===S.Syntax.SequenceExpression)for(var F=0;F")){for(var I=0;I0){this.nextToken(),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;for(var E=[e,this.lookahead],F=i,T=this.isolateCoverGrammar(this.parseExponentiationExpression),I=[F,n.value,T],P=[a];a=this.binaryPrecedence(this.lookahead),!(a<=0);){for(;I.length>2&&a<=P[P.length-1];){T=I.pop();var R=I.pop();P.pop(),F=I.pop(),E.pop();var L=this.startNode(E[E.length-1]);I.push(this.finalize(L,new l.BinaryExpression(R,F,T)))}I.push(this.nextToken().value),P.push(a),E.push(this.lookahead),I.push(this.isolateCoverGrammar(this.parseExponentiationExpression))}var X=I.length-1;i=I[X];for(var z=E.pop();X>1;){var G=E.pop(),V=z&&z.lineStart,L=this.startNode(G,V),R=I[X-1];i=this.finalize(L,new l.BinaryExpression(R,I[X-2],i)),X-=2,z=G}}return i},f.prototype.parseConditionalExpression=function(){var e=this.lookahead,i=this.inheritCoverGrammar(this.parseBinaryExpression);if(this.match("?")){this.nextToken();var n=this.context.allowIn;this.context.allowIn=!0;var a=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowIn=n,this.expect(":");var E=this.isolateCoverGrammar(this.parseAssignmentExpression);i=this.finalize(this.startNode(e),new l.ConditionalExpression(i,a,E)),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}return i},f.prototype.checkPatternParam=function(e,i){switch(i.type){case S.Syntax.Identifier:this.validateParam(e,i,i.name);break;case S.Syntax.RestElement:this.checkPatternParam(e,i.argument);break;case S.Syntax.AssignmentPattern:this.checkPatternParam(e,i.left);break;case S.Syntax.ArrayPattern:for(var n=0;n")){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var E=e.async,F=this.reinterpretAsCoverFormalsList(e);if(F){this.hasLineTerminator&&this.tolerateUnexpectedToken(this.lookahead),this.context.firstCoverInitializedNameError=null;var T=this.context.strict,I=this.context.allowStrictDirective;this.context.allowStrictDirective=F.simple;var P=this.context.allowYield,R=this.context.await;this.context.allowYield=!0,this.context.await=E;var L=this.startNode(i);this.expect("=>");var X=void 0;if(this.match("{")){var z=this.context.allowIn;this.context.allowIn=!0,X=this.parseFunctionSourceElements(),this.context.allowIn=z}else X=this.isolateCoverGrammar(this.parseAssignmentExpression);var G=X.type!==S.Syntax.BlockStatement;this.context.strict&&F.firstRestricted&&this.throwUnexpectedToken(F.firstRestricted,F.message),this.context.strict&&F.stricted&&this.tolerateUnexpectedToken(F.stricted,F.message),e=E?this.finalize(L,new l.AsyncArrowFunctionExpression(F.params,X,G)):this.finalize(L,new l.ArrowFunctionExpression(F.params,X,G)),this.context.strict=T,this.context.allowStrictDirective=I,this.context.allowYield=P,this.context.await=R}}else if(this.matchAssign()){if(this.context.isAssignmentTarget||this.tolerateError(s.Messages.InvalidLHSInAssignment),this.context.strict&&e.type===S.Syntax.Identifier){var V=e;this.scanner.isRestrictedWord(V.name)&&this.tolerateUnexpectedToken(n,s.Messages.StrictLHSAssignment),this.scanner.isStrictModeReservedWord(V.name)&&this.tolerateUnexpectedToken(n,s.Messages.StrictReservedWord)}this.match("=")?this.reinterpretExpressionAsPattern(e):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1),n=this.nextToken();var oe=n.value,De=this.isolateCoverGrammar(this.parseAssignmentExpression);e=this.finalize(this.startNode(i),new l.AssignmentExpression(oe,e,De)),this.context.firstCoverInitializedNameError=null}}return e},f.prototype.parseExpression=function(){var e=this.lookahead,i=this.isolateCoverGrammar(this.parseAssignmentExpression);if(this.match(",")){var n=[];for(n.push(i);this.lookahead.type!==2&&this.match(",");)this.nextToken(),n.push(this.isolateCoverGrammar(this.parseAssignmentExpression));i=this.finalize(this.startNode(e),new l.SequenceExpression(n))}return i},f.prototype.parseStatementListItem=function(){var e;if(this.context.isAssignmentTarget=!0,this.context.isBindingElement=!0,this.lookahead.type===4)switch(this.lookahead.value){case"export":this.context.isModule||this.tolerateUnexpectedToken(this.lookahead,s.Messages.IllegalExportDeclaration),e=this.parseExportDeclaration();break;case"import":this.context.isModule||this.tolerateUnexpectedToken(this.lookahead,s.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();break}else e=this.parseStatement();return e},f.prototype.parseBlock=function(){var e=this.createNode();this.expect("{");for(var i=[];!this.match("}");)i.push(this.parseStatementListItem());return this.expect("}"),this.finalize(e,new l.BlockStatement(i))},f.prototype.parseLexicalBinding=function(e,i){var n=this.createNode(),a=[],E=this.parsePattern(a,e);this.context.strict&&E.type===S.Syntax.Identifier&&this.scanner.isRestrictedWord(E.name)&&this.tolerateError(s.Messages.StrictVarName);var F=null;return e==="const"?!this.matchKeyword("in")&&!this.matchContextualKeyword("of")&&(this.match("=")?(this.nextToken(),F=this.isolateCoverGrammar(this.parseAssignmentExpression)):this.throwError(s.Messages.DeclarationMissingInitializer,"const")):(!i.inFor&&E.type!==S.Syntax.Identifier||this.match("="))&&(this.expect("="),F=this.isolateCoverGrammar(this.parseAssignmentExpression)),this.finalize(n,new l.VariableDeclarator(E,F))},f.prototype.parseBindingList=function(e,i){for(var n=[this.parseLexicalBinding(e,i)];this.match(",");)this.nextToken(),n.push(this.parseLexicalBinding(e,i));return n},f.prototype.isLexicalDeclaration=function(){var e=this.scanner.saveState();this.scanner.scanComments();var i=this.scanner.lex();return this.scanner.restoreState(e),i.type===3||i.type===7&&i.value==="["||i.type===7&&i.value==="{"||i.type===4&&i.value==="let"||i.type===4&&i.value==="yield"},f.prototype.parseLexicalDeclaration=function(e){var i=this.createNode(),n=this.nextToken().value;d.assert(n==="let"||n==="const","Lexical declaration must be either let or const");var a=this.parseBindingList(n,e);return this.consumeSemicolon(),this.finalize(i,new l.VariableDeclaration(a,n))},f.prototype.parseBindingRestElement=function(e,i){var n=this.createNode();this.expect("...");var a=this.parsePattern(e,i);return this.finalize(n,new l.RestElement(a))},f.prototype.parseArrayPattern=function(e,i){var n=this.createNode();this.expect("[");for(var a=[];!this.match("]");)if(this.match(","))this.nextToken(),a.push(null);else{if(this.match("...")){a.push(this.parseBindingRestElement(e,i));break}else a.push(this.parsePatternWithDefault(e,i));this.match("]")||this.expect(",")}return this.expect("]"),this.finalize(n,new l.ArrayPattern(a))},f.prototype.parsePropertyPattern=function(e,i){var n=this.createNode(),a=!1,E=!1,F=!1,T,I;if(this.lookahead.type===3){var P=this.lookahead;T=this.parseVariableIdentifier();var R=this.finalize(n,new l.Identifier(P.value));if(this.match("=")){e.push(P),E=!0,this.nextToken();var L=this.parseAssignmentExpression();I=this.finalize(this.startNode(P),new l.AssignmentPattern(R,L))}else this.match(":")?(this.expect(":"),I=this.parsePatternWithDefault(e,i)):(e.push(P),E=!0,I=R)}else a=this.match("["),T=this.parseObjectPropertyKey(),this.expect(":"),I=this.parsePatternWithDefault(e,i);return this.finalize(n,new l.Property("init",T,a,I,F,E))},f.prototype.parseObjectPattern=function(e,i){var n=this.createNode(),a=[];for(this.expect("{");!this.match("}");)a.push(this.parsePropertyPattern(e,i)),this.match("}")||this.expect(",");return this.expect("}"),this.finalize(n,new l.ObjectPattern(a))},f.prototype.parsePattern=function(e,i){var n;return this.match("[")?n=this.parseArrayPattern(e,i):this.match("{")?n=this.parseObjectPattern(e,i):(this.matchKeyword("let")&&(i==="const"||i==="let")&&this.tolerateUnexpectedToken(this.lookahead,s.Messages.LetInLexicalBinding),e.push(this.lookahead),n=this.parseVariableIdentifier(i)),n},f.prototype.parsePatternWithDefault=function(e,i){var n=this.lookahead,a=this.parsePattern(e,i);if(this.match("=")){this.nextToken();var E=this.context.allowYield;this.context.allowYield=!0;var F=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowYield=E,a=this.finalize(this.startNode(n),new l.AssignmentPattern(a,F))}return a},f.prototype.parseVariableIdentifier=function(e){var i=this.createNode(),n=this.nextToken();return n.type===4&&n.value==="yield"?this.context.strict?this.tolerateUnexpectedToken(n,s.Messages.StrictReservedWord):this.context.allowYield||this.throwUnexpectedToken(n):n.type!==3?this.context.strict&&n.type===4&&this.scanner.isStrictModeReservedWord(n.value)?this.tolerateUnexpectedToken(n,s.Messages.StrictReservedWord):(this.context.strict||n.value!=="let"||e!=="var")&&this.throwUnexpectedToken(n):(this.context.isModule||this.context.await)&&n.type===3&&n.value==="await"&&this.tolerateUnexpectedToken(n),this.finalize(i,new l.Identifier(n.value))},f.prototype.parseVariableDeclaration=function(e){var i=this.createNode(),n=[],a=this.parsePattern(n,"var");this.context.strict&&a.type===S.Syntax.Identifier&&this.scanner.isRestrictedWord(a.name)&&this.tolerateError(s.Messages.StrictVarName);var E=null;return this.match("=")?(this.nextToken(),E=this.isolateCoverGrammar(this.parseAssignmentExpression)):a.type!==S.Syntax.Identifier&&!e.inFor&&this.expect("="),this.finalize(i,new l.VariableDeclarator(a,E))},f.prototype.parseVariableDeclarationList=function(e){var i={inFor:e.inFor},n=[];for(n.push(this.parseVariableDeclaration(i));this.match(",");)this.nextToken(),n.push(this.parseVariableDeclaration(i));return n},f.prototype.parseVariableStatement=function(){var e=this.createNode();this.expectKeyword("var");var i=this.parseVariableDeclarationList({inFor:!1});return this.consumeSemicolon(),this.finalize(e,new l.VariableDeclaration(i,"var"))},f.prototype.parseEmptyStatement=function(){var e=this.createNode();return this.expect(";"),this.finalize(e,new l.EmptyStatement)},f.prototype.parseExpressionStatement=function(){var e=this.createNode(),i=this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new l.ExpressionStatement(i))},f.prototype.parseIfClause=function(){return this.context.strict&&this.matchKeyword("function")&&this.tolerateError(s.Messages.StrictFunction),this.parseStatement()},f.prototype.parseIfStatement=function(){var e=this.createNode(),i,n=null;this.expectKeyword("if"),this.expect("(");var a=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),i=this.finalize(this.createNode(),new l.EmptyStatement)):(this.expect(")"),i=this.parseIfClause(),this.matchKeyword("else")&&(this.nextToken(),n=this.parseIfClause())),this.finalize(e,new l.IfStatement(a,i,n))},f.prototype.parseDoWhileStatement=function(){var e=this.createNode();this.expectKeyword("do");var i=this.context.inIteration;this.context.inIteration=!0;var n=this.parseStatement();this.context.inIteration=i,this.expectKeyword("while"),this.expect("(");var a=this.parseExpression();return!this.match(")")&&this.config.tolerant?this.tolerateUnexpectedToken(this.nextToken()):(this.expect(")"),this.match(";")&&this.nextToken()),this.finalize(e,new l.DoWhileStatement(n,a))},f.prototype.parseWhileStatement=function(){var e=this.createNode(),i;this.expectKeyword("while"),this.expect("(");var n=this.parseExpression();if(!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),i=this.finalize(this.createNode(),new l.EmptyStatement);else{this.expect(")");var a=this.context.inIteration;this.context.inIteration=!0,i=this.parseStatement(),this.context.inIteration=a}return this.finalize(e,new l.WhileStatement(n,i))},f.prototype.parseForStatement=function(){var e=null,i=null,n=null,a=!0,E,F,T=this.createNode();if(this.expectKeyword("for"),this.expect("("),this.match(";"))this.nextToken();else if(this.matchKeyword("var")){e=this.createNode(),this.nextToken();var I=this.context.allowIn;this.context.allowIn=!1;var P=this.parseVariableDeclarationList({inFor:!0});if(this.context.allowIn=I,P.length===1&&this.matchKeyword("in")){var R=P[0];R.init&&(R.id.type===S.Syntax.ArrayPattern||R.id.type===S.Syntax.ObjectPattern||this.context.strict)&&this.tolerateError(s.Messages.ForInOfLoopInitializer,"for-in"),e=this.finalize(e,new l.VariableDeclaration(P,"var")),this.nextToken(),E=e,F=this.parseExpression(),e=null}else P.length===1&&P[0].init===null&&this.matchContextualKeyword("of")?(e=this.finalize(e,new l.VariableDeclaration(P,"var")),this.nextToken(),E=e,F=this.parseAssignmentExpression(),e=null,a=!1):(e=this.finalize(e,new l.VariableDeclaration(P,"var")),this.expect(";"))}else if(this.matchKeyword("const")||this.matchKeyword("let")){e=this.createNode();var L=this.nextToken().value;if(!this.context.strict&&this.lookahead.value==="in")e=this.finalize(e,new l.Identifier(L)),this.nextToken(),E=e,F=this.parseExpression(),e=null;else{var I=this.context.allowIn;this.context.allowIn=!1;var P=this.parseBindingList(L,{inFor:!0});this.context.allowIn=I,P.length===1&&P[0].init===null&&this.matchKeyword("in")?(e=this.finalize(e,new l.VariableDeclaration(P,L)),this.nextToken(),E=e,F=this.parseExpression(),e=null):P.length===1&&P[0].init===null&&this.matchContextualKeyword("of")?(e=this.finalize(e,new l.VariableDeclaration(P,L)),this.nextToken(),E=e,F=this.parseAssignmentExpression(),e=null,a=!1):(this.consumeSemicolon(),e=this.finalize(e,new l.VariableDeclaration(P,L)))}}else{var X=this.lookahead,I=this.context.allowIn;if(this.context.allowIn=!1,e=this.inheritCoverGrammar(this.parseAssignmentExpression),this.context.allowIn=I,this.matchKeyword("in"))(!this.context.isAssignmentTarget||e.type===S.Syntax.AssignmentExpression)&&this.tolerateError(s.Messages.InvalidLHSInForIn),this.nextToken(),this.reinterpretExpressionAsPattern(e),E=e,F=this.parseExpression(),e=null;else if(this.matchContextualKeyword("of"))(!this.context.isAssignmentTarget||e.type===S.Syntax.AssignmentExpression)&&this.tolerateError(s.Messages.InvalidLHSInForLoop),this.nextToken(),this.reinterpretExpressionAsPattern(e),E=e,F=this.parseAssignmentExpression(),e=null,a=!1;else{if(this.match(",")){for(var z=[e];this.match(",");)this.nextToken(),z.push(this.isolateCoverGrammar(this.parseAssignmentExpression));e=this.finalize(this.startNode(X),new l.SequenceExpression(z))}this.expect(";")}}typeof E=="undefined"&&(this.match(";")||(i=this.parseExpression()),this.expect(";"),this.match(")")||(n=this.parseExpression()));var G;if(!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),G=this.finalize(this.createNode(),new l.EmptyStatement);else{this.expect(")");var V=this.context.inIteration;this.context.inIteration=!0,G=this.isolateCoverGrammar(this.parseStatement),this.context.inIteration=V}return typeof E=="undefined"?this.finalize(T,new l.ForStatement(e,i,n,G)):a?this.finalize(T,new l.ForInStatement(E,F,G)):this.finalize(T,new l.ForOfStatement(E,F,G))},f.prototype.parseContinueStatement=function(){var e=this.createNode();this.expectKeyword("continue");var i=null;if(this.lookahead.type===3&&!this.hasLineTerminator){var n=this.parseVariableIdentifier();i=n;var a="$"+n.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,a)||this.throwError(s.Messages.UnknownLabel,n.name)}return this.consumeSemicolon(),i===null&&!this.context.inIteration&&this.throwError(s.Messages.IllegalContinue),this.finalize(e,new l.ContinueStatement(i))},f.prototype.parseBreakStatement=function(){var e=this.createNode();this.expectKeyword("break");var i=null;if(this.lookahead.type===3&&!this.hasLineTerminator){var n=this.parseVariableIdentifier(),a="$"+n.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,a)||this.throwError(s.Messages.UnknownLabel,n.name),i=n}return this.consumeSemicolon(),i===null&&!this.context.inIteration&&!this.context.inSwitch&&this.throwError(s.Messages.IllegalBreak),this.finalize(e,new l.BreakStatement(i))},f.prototype.parseReturnStatement=function(){this.context.inFunctionBody||this.tolerateError(s.Messages.IllegalReturn);var e=this.createNode();this.expectKeyword("return");var i=!this.match(";")&&!this.match("}")&&!this.hasLineTerminator&&this.lookahead.type!==2||this.lookahead.type===8||this.lookahead.type===10,n=i?this.parseExpression():null;return this.consumeSemicolon(),this.finalize(e,new l.ReturnStatement(n))},f.prototype.parseWithStatement=function(){this.context.strict&&this.tolerateError(s.Messages.StrictModeWith);var e=this.createNode(),i;this.expectKeyword("with"),this.expect("(");var n=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),i=this.finalize(this.createNode(),new l.EmptyStatement)):(this.expect(")"),i=this.parseStatement()),this.finalize(e,new l.WithStatement(n,i))},f.prototype.parseSwitchCase=function(){var e=this.createNode(),i;this.matchKeyword("default")?(this.nextToken(),i=null):(this.expectKeyword("case"),i=this.parseExpression()),this.expect(":");for(var n=[];!(this.match("}")||this.matchKeyword("default")||this.matchKeyword("case"));)n.push(this.parseStatementListItem());return this.finalize(e,new l.SwitchCase(i,n))},f.prototype.parseSwitchStatement=function(){var e=this.createNode();this.expectKeyword("switch"),this.expect("(");var i=this.parseExpression();this.expect(")");var n=this.context.inSwitch;this.context.inSwitch=!0;var a=[],E=!1;for(this.expect("{");!this.match("}");){var F=this.parseSwitchCase();F.test===null&&(E&&this.throwError(s.Messages.MultipleDefaultsInSwitch),E=!0),a.push(F)}return this.expect("}"),this.context.inSwitch=n,this.finalize(e,new l.SwitchStatement(i,a))},f.prototype.parseLabelledStatement=function(){var e=this.createNode(),i=this.parseExpression(),n;if(i.type===S.Syntax.Identifier&&this.match(":")){this.nextToken();var a=i,E="$"+a.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,E)&&this.throwError(s.Messages.Redeclaration,"Label",a.name),this.context.labelSet[E]=!0;var F=void 0;if(this.matchKeyword("class"))this.tolerateUnexpectedToken(this.lookahead),F=this.parseClassDeclaration();else if(this.matchKeyword("function")){var T=this.lookahead,I=this.parseFunctionDeclaration();this.context.strict?this.tolerateUnexpectedToken(T,s.Messages.StrictFunction):I.generator&&this.tolerateUnexpectedToken(T,s.Messages.GeneratorInLegacyContext),F=I}else F=this.parseStatement();delete this.context.labelSet[E],n=new l.LabeledStatement(a,F)}else this.consumeSemicolon(),n=new l.ExpressionStatement(i);return this.finalize(e,n)},f.prototype.parseThrowStatement=function(){var e=this.createNode();this.expectKeyword("throw"),this.hasLineTerminator&&this.throwError(s.Messages.NewlineAfterThrow);var i=this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new l.ThrowStatement(i))},f.prototype.parseCatchClause=function(){var e=this.createNode();this.expectKeyword("catch"),this.expect("("),this.match(")")&&this.throwUnexpectedToken(this.lookahead);for(var i=[],n=this.parsePattern(i),a={},E=0;E0&&this.tolerateError(s.Messages.BadGetterArity);var E=this.parsePropertyMethod(a);return this.context.allowYield=n,this.finalize(e,new l.FunctionExpression(null,a.params,E,i))},f.prototype.parseSetterMethod=function(){var e=this.createNode(),i=!1,n=this.context.allowYield;this.context.allowYield=!i;var a=this.parseFormalParameters();a.params.length!==1?this.tolerateError(s.Messages.BadSetterArity):a.params[0]instanceof l.RestElement&&this.tolerateError(s.Messages.BadSetterRestParameter);var E=this.parsePropertyMethod(a);return this.context.allowYield=n,this.finalize(e,new l.FunctionExpression(null,a.params,E,i))},f.prototype.parseGeneratorMethod=function(){var e=this.createNode(),i=!0,n=this.context.allowYield;this.context.allowYield=!0;var a=this.parseFormalParameters();this.context.allowYield=!1;var E=this.parsePropertyMethod(a);return this.context.allowYield=n,this.finalize(e,new l.FunctionExpression(null,a.params,E,i))},f.prototype.isStartOfExpression=function(){var e=!0,i=this.lookahead.value;switch(this.lookahead.type){case 7:e=i==="["||i==="("||i==="{"||i==="+"||i==="-"||i==="!"||i==="~"||i==="++"||i==="--"||i==="/"||i==="/=";break;case 4:e=i==="class"||i==="delete"||i==="function"||i==="let"||i==="new"||i==="super"||i==="this"||i==="typeof"||i==="void"||i==="yield";break}return e},f.prototype.parseYieldExpression=function(){var e=this.createNode();this.expectKeyword("yield");var i=null,n=!1;if(!this.hasLineTerminator){var a=this.context.allowYield;this.context.allowYield=!1,n=this.match("*"),n?(this.nextToken(),i=this.parseAssignmentExpression()):this.isStartOfExpression()&&(i=this.parseAssignmentExpression()),this.context.allowYield=a}return this.finalize(e,new l.YieldExpression(i,n))},f.prototype.parseClassElement=function(e){var i=this.lookahead,n=this.createNode(),a="",E=null,F=null,T=!1,I=!1,P=!1,R=!1;if(this.match("*"))this.nextToken();else{T=this.match("["),E=this.parseObjectPropertyKey();var L=E;if(L.name==="static"&&(this.qualifiedPropertyName(this.lookahead)||this.match("*"))&&(i=this.lookahead,P=!0,T=this.match("["),this.match("*")?this.nextToken():E=this.parseObjectPropertyKey()),i.type===3&&!this.hasLineTerminator&&i.value==="async"){var X=this.lookahead.value;X!==":"&&X!=="("&&X!=="*"&&(R=!0,i=this.lookahead,E=this.parseObjectPropertyKey(),i.type===3&&i.value==="constructor"&&this.tolerateUnexpectedToken(i,s.Messages.ConstructorIsAsync))}}var z=this.qualifiedPropertyName(this.lookahead);return i.type===3?i.value==="get"&&z?(a="get",T=this.match("["),E=this.parseObjectPropertyKey(),this.context.allowYield=!1,F=this.parseGetterMethod()):i.value==="set"&&z&&(a="set",T=this.match("["),E=this.parseObjectPropertyKey(),F=this.parseSetterMethod()):i.type===7&&i.value==="*"&&z&&(a="init",T=this.match("["),E=this.parseObjectPropertyKey(),F=this.parseGeneratorMethod(),I=!0),!a&&E&&this.match("(")&&(a="init",F=R?this.parsePropertyMethodAsyncFunction():this.parsePropertyMethodFunction(),I=!0),a||this.throwUnexpectedToken(this.lookahead),a==="init"&&(a="method"),T||(P&&this.isPropertyKey(E,"prototype")&&this.throwUnexpectedToken(i,s.Messages.StaticPrototype),!P&&this.isPropertyKey(E,"constructor")&&((a!=="method"||!I||F&&F.generator)&&this.throwUnexpectedToken(i,s.Messages.ConstructorSpecialMethod),e.value?this.throwUnexpectedToken(i,s.Messages.DuplicateConstructor):e.value=!0,a="constructor")),this.finalize(n,new l.MethodDefinition(E,T,F,a,P))},f.prototype.parseClassElementList=function(){var e=[],i={value:!1};for(this.expect("{");!this.match("}");)this.match(";")?this.nextToken():e.push(this.parseClassElement(i));return this.expect("}"),e},f.prototype.parseClassBody=function(){var e=this.createNode(),i=this.parseClassElementList();return this.finalize(e,new l.ClassBody(i))},f.prototype.parseClassDeclaration=function(e){var i=this.createNode(),n=this.context.strict;this.context.strict=!0,this.expectKeyword("class");var a=e&&this.lookahead.type!==3?null:this.parseVariableIdentifier(),E=null;this.matchKeyword("extends")&&(this.nextToken(),E=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var F=this.parseClassBody();return this.context.strict=n,this.finalize(i,new l.ClassDeclaration(a,E,F))},f.prototype.parseClassExpression=function(){var e=this.createNode(),i=this.context.strict;this.context.strict=!0,this.expectKeyword("class");var n=this.lookahead.type===3?this.parseVariableIdentifier():null,a=null;this.matchKeyword("extends")&&(this.nextToken(),a=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var E=this.parseClassBody();return this.context.strict=i,this.finalize(e,new l.ClassExpression(n,a,E))},f.prototype.parseModule=function(){this.context.strict=!0,this.context.isModule=!0,this.scanner.isModule=!0;for(var e=this.createNode(),i=this.parseDirectivePrologues();this.lookahead.type!==2;)i.push(this.parseStatementListItem());return this.finalize(e,new l.Module(i))},f.prototype.parseScript=function(){for(var e=this.createNode(),i=this.parseDirectivePrologues();this.lookahead.type!==2;)i.push(this.parseStatementListItem());return this.finalize(e,new l.Script(i))},f.prototype.parseModuleSpecifier=function(){var e=this.createNode();this.lookahead.type!==8&&this.throwError(s.Messages.InvalidModuleSpecifier);var i=this.nextToken(),n=this.getTokenRaw(i);return this.finalize(e,new l.Literal(i.value,n))},f.prototype.parseImportSpecifier=function(){var e=this.createNode(),i,n;return this.lookahead.type===3?(i=this.parseVariableIdentifier(),n=i,this.matchContextualKeyword("as")&&(this.nextToken(),n=this.parseVariableIdentifier())):(i=this.parseIdentifierName(),n=i,this.matchContextualKeyword("as")?(this.nextToken(),n=this.parseVariableIdentifier()):this.throwUnexpectedToken(this.nextToken())),this.finalize(e,new l.ImportSpecifier(n,i))},f.prototype.parseNamedImports=function(){this.expect("{");for(var e=[];!this.match("}");)e.push(this.parseImportSpecifier()),this.match("}")||this.expect(",");return this.expect("}"),e},f.prototype.parseImportDefaultSpecifier=function(){var e=this.createNode(),i=this.parseIdentifierName();return this.finalize(e,new l.ImportDefaultSpecifier(i))},f.prototype.parseImportNamespaceSpecifier=function(){var e=this.createNode();this.expect("*"),this.matchContextualKeyword("as")||this.throwError(s.Messages.NoAsAfterImportNamespace),this.nextToken();var i=this.parseIdentifierName();return this.finalize(e,new l.ImportNamespaceSpecifier(i))},f.prototype.parseImportDeclaration=function(){this.context.inFunctionBody&&this.throwError(s.Messages.IllegalImportDeclaration);var e=this.createNode();this.expectKeyword("import");var i,n=[];if(this.lookahead.type===8)i=this.parseModuleSpecifier();else{if(this.match("{")?n=n.concat(this.parseNamedImports()):this.match("*")?n.push(this.parseImportNamespaceSpecifier()):this.isIdentifierName(this.lookahead)&&!this.matchKeyword("default")?(n.push(this.parseImportDefaultSpecifier()),this.match(",")&&(this.nextToken(),this.match("*")?n.push(this.parseImportNamespaceSpecifier()):this.match("{")?n=n.concat(this.parseNamedImports()):this.throwUnexpectedToken(this.lookahead))):this.throwUnexpectedToken(this.nextToken()),!this.matchContextualKeyword("from")){var a=this.lookahead.value?s.Messages.UnexpectedToken:s.Messages.MissingFromClause;this.throwError(a,this.lookahead.value)}this.nextToken(),i=this.parseModuleSpecifier()}return this.consumeSemicolon(),this.finalize(e,new l.ImportDeclaration(n,i))},f.prototype.parseExportSpecifier=function(){var e=this.createNode(),i=this.parseIdentifierName(),n=i;return this.matchContextualKeyword("as")&&(this.nextToken(),n=this.parseIdentifierName()),this.finalize(e,new l.ExportSpecifier(i,n))},f.prototype.parseExportDeclaration=function(){this.context.inFunctionBody&&this.throwError(s.Messages.IllegalExportDeclaration);var e=this.createNode();this.expectKeyword("export");var i;if(this.matchKeyword("default"))if(this.nextToken(),this.matchKeyword("function")){var n=this.parseFunctionDeclaration(!0);i=this.finalize(e,new l.ExportDefaultDeclaration(n))}else if(this.matchKeyword("class")){var n=this.parseClassDeclaration(!0);i=this.finalize(e,new l.ExportDefaultDeclaration(n))}else if(this.matchContextualKeyword("async")){var n=this.matchAsyncFunction()?this.parseFunctionDeclaration(!0):this.parseAssignmentExpression();i=this.finalize(e,new l.ExportDefaultDeclaration(n))}else{this.matchContextualKeyword("from")&&this.throwError(s.Messages.UnexpectedToken,this.lookahead.value);var n=this.match("{")?this.parseObjectInitializer():this.match("[")?this.parseArrayInitializer():this.parseAssignmentExpression();this.consumeSemicolon(),i=this.finalize(e,new l.ExportDefaultDeclaration(n))}else if(this.match("*")){if(this.nextToken(),!this.matchContextualKeyword("from")){var a=this.lookahead.value?s.Messages.UnexpectedToken:s.Messages.MissingFromClause;this.throwError(a,this.lookahead.value)}this.nextToken();var E=this.parseModuleSpecifier();this.consumeSemicolon(),i=this.finalize(e,new l.ExportAllDeclaration(E))}else if(this.lookahead.type===4){var n=void 0;switch(this.lookahead.value){case"let":case"const":n=this.parseLexicalDeclaration({inFor:!1});break;case"var":case"class":case"function":n=this.parseStatementListItem();break;default:this.throwUnexpectedToken(this.lookahead)}i=this.finalize(e,new l.ExportNamedDeclaration(n,[],null))}else if(this.matchAsyncFunction()){var n=this.parseFunctionDeclaration();i=this.finalize(e,new l.ExportNamedDeclaration(n,[],null))}else{var F=[],T=null,I=!1;for(this.expect("{");!this.match("}");)I=I||this.matchKeyword("default"),F.push(this.parseExportSpecifier()),this.match("}")||this.expect(",");if(this.expect("}"),this.matchContextualKeyword("from"))this.nextToken(),T=this.parseModuleSpecifier(),this.consumeSemicolon();else if(I){var a=this.lookahead.value?s.Messages.UnexpectedToken:s.Messages.MissingFromClause;this.throwError(a,this.lookahead.value)}else this.consumeSemicolon();i=this.finalize(e,new l.ExportNamedDeclaration(null,F,T))}return i},f}();c.Parser=y},function(x,c){Object.defineProperty(c,"__esModule",{value:!0});function C(d,D){if(!d)throw new Error("ASSERT: "+D)}c.assert=C},function(x,c){Object.defineProperty(c,"__esModule",{value:!0});var C=function(){function d(){this.errors=[],this.tolerant=!1}return d.prototype.recordError=function(D){this.errors.push(D)},d.prototype.tolerate=function(D){if(this.tolerant)this.recordError(D);else throw D},d.prototype.constructError=function(D,s){var l=new Error(D);try{throw l}catch(A){Object.create&&Object.defineProperty&&(l=Object.create(A),Object.defineProperty(l,"column",{value:s}))}return l},d.prototype.createError=function(D,s,l,A){var S="Line "+s+": "+A,g=this.constructError(S,l);return g.index=D,g.lineNumber=s,g.description=A,g},d.prototype.throwError=function(D,s,l,A){throw this.createError(D,s,l,A)},d.prototype.tolerateError=function(D,s,l,A){var S=this.createError(D,s,l,A);if(this.tolerant)this.recordError(S);else throw S},d}();c.ErrorHandler=C},function(x,c){Object.defineProperty(c,"__esModule",{value:!0}),c.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(x,c,C){Object.defineProperty(c,"__esModule",{value:!0});var d=C(9),D=C(4),s=C(11);function l(g){return"0123456789abcdef".indexOf(g.toLowerCase())}function A(g){return"01234567".indexOf(g)}var S=function(){function g(h,y){this.source=h,this.errorHandler=y,this.trackComment=!1,this.isModule=!1,this.length=h.length,this.index=0,this.lineNumber=h.length>0?1:0,this.lineStart=0,this.curlyStack=[]}return g.prototype.saveState=function(){return{index:this.index,lineNumber:this.lineNumber,lineStart:this.lineStart}},g.prototype.restoreState=function(h){this.index=h.index,this.lineNumber=h.lineNumber,this.lineStart=h.lineStart},g.prototype.eof=function(){return this.index>=this.length},g.prototype.throwUnexpectedToken=function(h){return h===void 0&&(h=s.Messages.UnexpectedTokenIllegal),this.errorHandler.throwError(this.index,this.lineNumber,this.index-this.lineStart+1,h)},g.prototype.tolerateUnexpectedToken=function(h){h===void 0&&(h=s.Messages.UnexpectedTokenIllegal),this.errorHandler.tolerateError(this.index,this.lineNumber,this.index-this.lineStart+1,h)},g.prototype.skipSingleLineComment=function(h){var y=[],f,e;for(this.trackComment&&(y=[],f=this.index-h,e={start:{line:this.lineNumber,column:this.index-this.lineStart-h},end:{}});!this.eof();){var i=this.source.charCodeAt(this.index);if(++this.index,D.Character.isLineTerminator(i)){if(this.trackComment){e.end={line:this.lineNumber,column:this.index-this.lineStart-1};var n={multiLine:!1,slice:[f+h,this.index-1],range:[f,this.index-1],loc:e};y.push(n)}return i===13&&this.source.charCodeAt(this.index)===10&&++this.index,++this.lineNumber,this.lineStart=this.index,y}}if(this.trackComment){e.end={line:this.lineNumber,column:this.index-this.lineStart};var n={multiLine:!1,slice:[f+h,this.index],range:[f,this.index],loc:e};y.push(n)}return y},g.prototype.skipMultiLineComment=function(){var h=[],y,f;for(this.trackComment&&(h=[],y=this.index-2,f={start:{line:this.lineNumber,column:this.index-this.lineStart-2},end:{}});!this.eof();){var e=this.source.charCodeAt(this.index);if(D.Character.isLineTerminator(e))e===13&&this.source.charCodeAt(this.index+1)===10&&++this.index,++this.lineNumber,++this.index,this.lineStart=this.index;else if(e===42){if(this.source.charCodeAt(this.index+1)===47){if(this.index+=2,this.trackComment){f.end={line:this.lineNumber,column:this.index-this.lineStart};var i={multiLine:!0,slice:[y+2,this.index-2],range:[y,this.index],loc:f};h.push(i)}return h}++this.index}else++this.index}if(this.trackComment){f.end={line:this.lineNumber,column:this.index-this.lineStart};var i={multiLine:!0,slice:[y+2,this.index],range:[y,this.index],loc:f};h.push(i)}return this.tolerateUnexpectedToken(),h},g.prototype.scanComments=function(){var h;this.trackComment&&(h=[]);for(var y=this.index===0;!this.eof();){var f=this.source.charCodeAt(this.index);if(D.Character.isWhiteSpace(f))++this.index;else if(D.Character.isLineTerminator(f))++this.index,f===13&&this.source.charCodeAt(this.index)===10&&++this.index,++this.lineNumber,this.lineStart=this.index,y=!0;else if(f===47)if(f=this.source.charCodeAt(this.index+1),f===47){this.index+=2;var e=this.skipSingleLineComment(2);this.trackComment&&(h=h.concat(e)),y=!0}else if(f===42){this.index+=2;var e=this.skipMultiLineComment();this.trackComment&&(h=h.concat(e))}else break;else if(y&&f===45)if(this.source.charCodeAt(this.index+1)===45&&this.source.charCodeAt(this.index+2)===62){this.index+=3;var e=this.skipSingleLineComment(3);this.trackComment&&(h=h.concat(e))}else break;else if(f===60&&!this.isModule)if(this.source.slice(this.index+1,this.index+4)==="!--"){this.index+=4;var e=this.skipSingleLineComment(4);this.trackComment&&(h=h.concat(e))}else break;else break}return h},g.prototype.isFutureReservedWord=function(h){switch(h){case"enum":case"export":case"import":case"super":return!0;default:return!1}},g.prototype.isStrictModeReservedWord=function(h){switch(h){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0;default:return!1}},g.prototype.isRestrictedWord=function(h){return h==="eval"||h==="arguments"},g.prototype.isKeyword=function(h){switch(h.length){case 2:return h==="if"||h==="in"||h==="do";case 3:return h==="var"||h==="for"||h==="new"||h==="try"||h==="let";case 4:return h==="this"||h==="else"||h==="case"||h==="void"||h==="with"||h==="enum";case 5:return h==="while"||h==="break"||h==="catch"||h==="throw"||h==="const"||h==="yield"||h==="class"||h==="super";case 6:return h==="return"||h==="typeof"||h==="delete"||h==="switch"||h==="export"||h==="import";case 7:return h==="default"||h==="finally"||h==="extends";case 8:return h==="function"||h==="continue"||h==="debugger";case 10:return h==="instanceof";default:return!1}},g.prototype.codePointAt=function(h){var y=this.source.charCodeAt(h);if(y>=55296&&y<=56319){var f=this.source.charCodeAt(h+1);if(f>=56320&&f<=57343){var e=y;y=(e-55296)*1024+f-56320+65536}}return y},g.prototype.scanHexEscape=function(h){for(var y=h==="u"?4:2,f=0,e=0;e1114111||h!=="}")&&this.throwUnexpectedToken(),D.Character.fromCodePoint(y)},g.prototype.getIdentifier=function(){for(var h=this.index++;!this.eof();){var y=this.source.charCodeAt(this.index);if(y===92)return this.index=h,this.getComplexIdentifier();if(y>=55296&&y<57343)return this.index=h,this.getComplexIdentifier();if(D.Character.isIdentifierPart(y))++this.index;else break}return this.source.slice(h,this.index)},g.prototype.getComplexIdentifier=function(){var h=this.codePointAt(this.index),y=D.Character.fromCodePoint(h);this.index+=y.length;var f;for(h===92&&(this.source.charCodeAt(this.index)!==117&&this.throwUnexpectedToken(),++this.index,this.source[this.index]==="{"?(++this.index,f=this.scanUnicodeCodePointEscape()):(f=this.scanHexEscape("u"),(f===null||f==="\\"||!D.Character.isIdentifierStart(f.charCodeAt(0)))&&this.throwUnexpectedToken()),y=f);!this.eof()&&(h=this.codePointAt(this.index),!!D.Character.isIdentifierPart(h));)f=D.Character.fromCodePoint(h),y+=f,this.index+=f.length,h===92&&(y=y.substr(0,y.length-1),this.source.charCodeAt(this.index)!==117&&this.throwUnexpectedToken(),++this.index,this.source[this.index]==="{"?(++this.index,f=this.scanUnicodeCodePointEscape()):(f=this.scanHexEscape("u"),(f===null||f==="\\"||!D.Character.isIdentifierPart(f.charCodeAt(0)))&&this.throwUnexpectedToken()),y+=f);return y},g.prototype.octalToDecimal=function(h){var y=h!=="0",f=A(h);return!this.eof()&&D.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(y=!0,f=f*8+A(this.source[this.index++]),"0123".indexOf(h)>=0&&!this.eof()&&D.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(f=f*8+A(this.source[this.index++]))),{code:f,octal:y}},g.prototype.scanIdentifier=function(){var h,y=this.index,f=this.source.charCodeAt(y)===92?this.getComplexIdentifier():this.getIdentifier();if(f.length===1?h=3:this.isKeyword(f)?h=4:f==="null"?h=5:f==="true"||f==="false"?h=1:h=3,h!==3&&y+f.length!==this.index){var e=this.index;this.index=y,this.tolerateUnexpectedToken(s.Messages.InvalidEscapedReservedWord),this.index=e}return{type:h,value:f,lineNumber:this.lineNumber,lineStart:this.lineStart,start:y,end:this.index}},g.prototype.scanPunctuator=function(){var h=this.index,y=this.source[this.index];switch(y){case"(":case"{":y==="{"&&this.curlyStack.push("{"),++this.index;break;case".":++this.index,this.source[this.index]==="."&&this.source[this.index+1]==="."&&(this.index+=2,y="...");break;case"}":++this.index,this.curlyStack.pop();break;case")":case";":case",":case"[":case"]":case":":case"?":case"~":++this.index;break;default:y=this.source.substr(this.index,4),y===">>>="?this.index+=4:(y=y.substr(0,3),y==="==="||y==="!=="||y===">>>"||y==="<<="||y===">>="||y==="**="?this.index+=3:(y=y.substr(0,2),y==="&&"||y==="||"||y==="=="||y==="!="||y==="+="||y==="-="||y==="*="||y==="/="||y==="++"||y==="--"||y==="<<"||y===">>"||y==="&="||y==="|="||y==="^="||y==="%="||y==="<="||y===">="||y==="=>"||y==="**"?this.index+=2:(y=this.source[this.index],"<>=!+-*%&|^/".indexOf(y)>=0&&++this.index)))}return this.index===h&&this.throwUnexpectedToken(),{type:7,value:y,lineNumber:this.lineNumber,lineStart:this.lineStart,start:h,end:this.index}},g.prototype.scanHexLiteral=function(h){for(var y="";!this.eof()&&D.Character.isHexDigit(this.source.charCodeAt(this.index));)y+=this.source[this.index++];return y.length===0&&this.throwUnexpectedToken(),D.Character.isIdentifierStart(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(),{type:6,value:parseInt("0x"+y,16),lineNumber:this.lineNumber,lineStart:this.lineStart,start:h,end:this.index}},g.prototype.scanBinaryLiteral=function(h){for(var y="",f;!this.eof()&&(f=this.source[this.index],!(f!=="0"&&f!=="1"));)y+=this.source[this.index++];return y.length===0&&this.throwUnexpectedToken(),this.eof()||(f=this.source.charCodeAt(this.index),(D.Character.isIdentifierStart(f)||D.Character.isDecimalDigit(f))&&this.throwUnexpectedToken()),{type:6,value:parseInt(y,2),lineNumber:this.lineNumber,lineStart:this.lineStart,start:h,end:this.index}},g.prototype.scanOctalLiteral=function(h,y){var f="",e=!1;for(D.Character.isOctalDigit(h.charCodeAt(0))?(e=!0,f="0"+this.source[this.index++]):++this.index;!this.eof()&&D.Character.isOctalDigit(this.source.charCodeAt(this.index));)f+=this.source[this.index++];return!e&&f.length===0&&this.throwUnexpectedToken(),(D.Character.isIdentifierStart(this.source.charCodeAt(this.index))||D.Character.isDecimalDigit(this.source.charCodeAt(this.index)))&&this.throwUnexpectedToken(),{type:6,value:parseInt(f,8),octal:e,lineNumber:this.lineNumber,lineStart:this.lineStart,start:y,end:this.index}},g.prototype.isImplicitOctalLiteral=function(){for(var h=this.index+1;h=x)return ue.substr(0,x);for(;x>ue.length&&p>1;)p&1&&(ue+=o),p>>=1,o+=o;return ue+=o,ue=ue.substr(0,x),ue}const{isArray:Tt,isObject:wi,isFunction:xt,isNumber:rn,isString:nn}=Y,sn=en,{PREFIX_BEFORE_ALL:an,PREFIX_BEFORE:Bi,PREFIX_AFTER_PROP:on,PREFIX_AFTER_COLON:un,PREFIX_AFTER_VALUE:hn,PREFIX_AFTER:It,PREFIX_AFTER_ALL:cn,BRACKET_OPEN:ln,BRACKET_CLOSE:pn,CURLY_BRACKET_OPEN:fn,CURLY_BRACKET_CLOSE:dn,COLON:mn,COMMA:ki,EMPTY:Q,UNDEFINED:xn}=Ye,ft=/[\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,Nt=" ",me=` `,bi="null",Ti=o=>`${Bi}:${o}`,Dn=o=>`${on}:${o}`,En=o=>`${un}:${o}`,Ii=o=>`${hn}:${o}`,Ni=o=>`${It}:${o}`,yn={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},Cn=o=>(ft.lastIndex=0,ft.test(o)?o.replace(ft,p=>{const x=yn[p];return typeof x=="string"?x:p}):o),Pi=o=>`"${Cn(o)}"`,An=(o,p)=>p?`//${o}`:`/*${o}*/`,Z=(o,p,x,c)=>{const C=o[Symbol.for(p)];if(!C||!C.length)return Q;let d=!1;const D=C.reduce((s,{inline:l,type:A,value:S})=>{const g=l?Nt:me+x;return d=A==="LineComment",s+g+An(S,d)},Q);return c||d?D+me+x:D};let Ae=null,Te=Q;const vn=()=>{Ae=null,Te=Q},be=(o,p,x)=>o?p?o+p.trim()+me+x:o.trimRight()+me+x:p?p.trimRight()+me+x:Q,Mi=(o,p,x)=>{const c=Z(p,Bi,x+Te,!0);return be(c,o,x)},Fn=(o,p)=>{const x=p+Te,{length:c}=o;let C=Q,d=Q;for(let D=0;D{if(!o)return"null";const x=p+Te;let c=Q,C=Q,d=!0;const D=Tt(Ae)?Ae:Object.keys(o),s=l=>{const A=Pt(l,o,x);if(A===xn)return;d||(c+=ki),d=!1,c+=be(C,Z(o,Ti(l),x),x)||me+x,c+=Pi(l)+Z(o,Dn(l),x)+mn+Z(o,En(l),x)+Nt+A+Z(o,Ii(l),x),C=Z(o,Ni(l),x)};return D.forEach(s),c+=be(C,Z(o,It,x),x),fn+Mi(c,o,p)+dn};function Pt(o,p,x){let c=p[o];switch(wi(c)&&xt(c.toJSON)&&(c=c.toJSON(o)),xt(Ae)&&(c=Ae.call(p,o,c)),typeof c){case"string":return Pi(c);case"number":return Number.isFinite(c)?String(c):bi;case"boolean":case"null":return String(c);case"object":return Tt(c)?Fn(c,x):Sn(c,x)}}const gn=o=>nn(o)?o:rn(o)?sn(Nt,o):Q,{toString:wn}=Object.prototype,Bn=["[object Number]","[object String]","[object Boolean]"],kn=o=>{if(typeof o!="object")return!1;const p=wn.call(o);return Bn.includes(p)};var bn=(o,p,x)=>{const c=gn(x);if(!c)return JSON.stringify(o,p);!xt(p)&&!Tt(p)&&(p=null),Ae=p,Te=c;const C=kn(o)?JSON.stringify(o):Pt("",{"":o},Q);return vn(),wi(o)?Z(o,an,Q).trimLeft()+C+Z(o,cn,Q).trimRight():C};const{parse:Tn,tokenize:In}=Qr,Nn=bn,{CommentArray:Pn}=fi,{assign:Mn}=Ye;var Qt={parse:Tn,stringify:Nn,tokenize:In,CommentArray:Pn,assign:Mn},On=$i({__proto__:null,default:Qt},[Qt]);export{On as i}; -//# sourceMappingURL=index.435793bb.js.map +//# sourceMappingURL=index.2c9aa543.js.map diff --git a/assets/index.435793bb.js.map b/assets/index.2c9aa543.js.map similarity index 99% rename from assets/index.435793bb.js.map rename to assets/index.2c9aa543.js.map index 3e860d23..86430a01 100644 --- a/assets/index.435793bb.js.map +++ b/assets/index.2c9aa543.js.map @@ -1 +1 @@ -{"version":3,"file":"index.435793bb.js","sources":["../../node_modules/esprima/dist/esprima.js","../../node_modules/base64-js/index.js","../../node_modules/ieee754/index.js","../../node_modules/buffer/index.js","../../node_modules/core-util-is/lib/util.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"],"sourcesContent":["(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; // `' 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; // `|$)/;ue.html=We(ue.html,"i").replace("comment",ue._comment).replace("tag",ue._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex();ue.paragraph=We(ue._paragraph).replace("hr",ue.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",ue._tag).getRegex();ue.blockquote=We(ue.blockquote).replace("paragraph",ue.paragraph).getRegex();ue.normal=pn({},ue);ue.gfm=pn({},ue.normal,{table:"^ *([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"});ue.gfm.table=We(ue.gfm.table).replace("hr",ue.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",ue._tag).getRegex();ue.gfm.paragraph=We(ue._paragraph).replace("hr",ue.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("table",ue.gfm.table).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",ue._tag).getRegex();ue.pedantic=pn({},ue.normal,{html:We(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",ue._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:Os,paragraph:We(ue.normal._paragraph).replace("hr",ue.hr).replace("heading",` *#{1,6} *[^ -]`).replace("lheading",ue.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});const re={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:Os,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(ref)\]/,nolink:/^!?\[(ref)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",emStrong:{lDelim:/^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,rDelimAst:/^[^_*]*?\_\_[^_*]*?\*[^_*]*?(?=\_\_)|[punct_](\*+)(?=[\s]|$)|[^punct*_\s](\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|[^punct*_\s](\*+)(?=[^punct*_\s])/,rDelimUnd:/^[^_*]*?\*\*[^_*]*?\_[^_*]*?(?=\*\*)|[punct*](\_+)(?=[\s]|$)|[^punct*_\s](\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:Os,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\?@\\[\\]`^{|}~";re.punctuation=We(re.punctuation).replace(/punctuation/g,re._punctuation).getRegex();re.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g;re.escapedEmSt=/\\\*|\\_/g;re._comment=We(ue._comment).replace("(?:-->|$)","-->").getRegex();re.emStrong.lDelim=We(re.emStrong.lDelim).replace(/punct/g,re._punctuation).getRegex();re.emStrong.rDelimAst=We(re.emStrong.rDelimAst,"g").replace(/punct/g,re._punctuation).getRegex();re.emStrong.rDelimUnd=We(re.emStrong.rDelimUnd,"g").replace(/punct/g,re._punctuation).getRegex();re._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g;re._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;re._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])?)+(?![-_])/;re.autolink=We(re.autolink).replace("scheme",re._scheme).replace("email",re._email).getRegex();re._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/;re.tag=We(re.tag).replace("comment",re._comment).replace("attribute",re._attribute).getRegex();re._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/;re._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/;re._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/;re.link=We(re.link).replace("label",re._label).replace("href",re._href).replace("title",re._title).getRegex();re.reflink=We(re.reflink).replace("label",re._label).replace("ref",ue._label).getRegex();re.nolink=We(re.nolink).replace("ref",ue._label).getRegex();re.reflinkSearch=We(re.reflinkSearch,"g").replace("reflink",re.reflink).replace("nolink",re.nolink).getRegex();re.normal=pn({},re);re.pedantic=pn({},re.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:We(/^!?\[(label)\]\((.*?)\)/).replace("label",re._label).getRegex(),reflink:We(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",re._label).getRegex()});re.gfm=pn({},re.normal,{escape:We(re.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)),t+="&#"+r+";";return t}class tr{constructor(t){this.tokens=[],this.tokens.links=Object.create(null),this.options=t||Ji,this.options.tokenizer=this.options.tokenizer||new Td,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 n={block:ue.normal,inline:re.normal};this.options.pedantic?(n.block=ue.pedantic,n.inline=re.pedantic):this.options.gfm&&(n.block=ue.gfm,this.options.breaks?n.inline=re.breaks:n.inline=re.gfm),this.tokenizer.rules=n}static get rules(){return{block:ue,inline:re}}static lex(t,n){return new tr(n).lex(t)}static lexInline(t,n){return new tr(n).inlineTokens(t)}lex(t){t=t.replace(/\r\n|\r/g,` -`).replace(/\t/g," "),this.blockTokens(t,this.tokens);let n;for(;n=this.inlineQueue.shift();)this.inlineTokens(n.src,n.tokens);return this.tokens}blockTokens(t,n=[]){this.options.pedantic&&(t=t.replace(/^ +$/gm,""));let r,i,o,a;for(;t;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(s=>(r=s.call({lexer:this},t,n))?(t=t.substring(r.raw.length),n.push(r),!0):!1))){if(r=this.tokenizer.space(t)){t=t.substring(r.raw.length),r.raw.length===1&&n.length>0?n[n.length-1].raw+=` -`:n.push(r);continue}if(r=this.tokenizer.code(t)){t=t.substring(r.raw.length),i=n[n.length-1],i&&(i.type==="paragraph"||i.type==="text")?(i.raw+=` -`+r.raw,i.text+=` -`+r.text,this.inlineQueue[this.inlineQueue.length-1].src=i.text):n.push(r);continue}if(r=this.tokenizer.fences(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.heading(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.hr(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.blockquote(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.list(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.html(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.def(t)){t=t.substring(r.raw.length),i=n[n.length-1],i&&(i.type==="paragraph"||i.type==="text")?(i.raw+=` -`+r.raw,i.text+=` -`+r.raw,this.inlineQueue[this.inlineQueue.length-1].src=i.text):this.tokens.links[r.tag]||(this.tokens.links[r.tag]={href:r.href,title:r.title});continue}if(r=this.tokenizer.table(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.lheading(t)){t=t.substring(r.raw.length),n.push(r);continue}if(o=t,this.options.extensions&&this.options.extensions.startBlock){let s=1/0;const l=t.slice(1);let d;this.options.extensions.startBlock.forEach(function(c){d=c.call({lexer:this},l),typeof d=="number"&&d>=0&&(s=Math.min(s,d))}),s<1/0&&s>=0&&(o=t.substring(0,s+1))}if(this.state.top&&(r=this.tokenizer.paragraph(o))){i=n[n.length-1],a&&i.type==="paragraph"?(i.raw+=` -`+r.raw,i.text+=` -`+r.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=i.text):n.push(r),a=o.length!==t.length,t=t.substring(r.raw.length);continue}if(r=this.tokenizer.text(t)){t=t.substring(r.raw.length),i=n[n.length-1],i&&i.type==="text"?(i.raw+=` -`+r.raw,i.text+=` -`+r.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=i.text):n.push(r);continue}if(t){const s="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(s);break}else throw new Error(s)}}return this.state.top=!0,n}inline(t,n){this.inlineQueue.push({src:t,tokens:n})}inlineTokens(t,n=[]){let r,i,o,a=t,s,l,d;if(this.tokens.links){const c=Object.keys(this.tokens.links);if(c.length>0)for(;(s=this.tokenizer.rules.inline.reflinkSearch.exec(a))!=null;)c.includes(s[0].slice(s[0].lastIndexOf("[")+1,-1))&&(a=a.slice(0,s.index)+"["+Vu("a",s[0].length-2)+"]"+a.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(s=this.tokenizer.rules.inline.blockSkip.exec(a))!=null;)a=a.slice(0,s.index)+"["+Vu("a",s[0].length-2)+"]"+a.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;(s=this.tokenizer.rules.inline.escapedEmSt.exec(a))!=null;)a=a.slice(0,s.index)+"++"+a.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);for(;t;)if(l||(d=""),l=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(c=>(r=c.call({lexer:this},t,n))?(t=t.substring(r.raw.length),n.push(r),!0):!1))){if(r=this.tokenizer.escape(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.tag(t)){t=t.substring(r.raw.length),i=n[n.length-1],i&&r.type==="text"&&i.type==="text"?(i.raw+=r.raw,i.text+=r.text):n.push(r);continue}if(r=this.tokenizer.link(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(r.raw.length),i=n[n.length-1],i&&r.type==="text"&&i.type==="text"?(i.raw+=r.raw,i.text+=r.text):n.push(r);continue}if(r=this.tokenizer.emStrong(t,a,d)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.codespan(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.br(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.del(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.autolink(t,Hu)){t=t.substring(r.raw.length),n.push(r);continue}if(!this.state.inLink&&(r=this.tokenizer.url(t,Hu))){t=t.substring(r.raw.length),n.push(r);continue}if(o=t,this.options.extensions&&this.options.extensions.startInline){let c=1/0;const u=t.slice(1);let f;this.options.extensions.startInline.forEach(function(h){f=h.call({lexer:this},u),typeof f=="number"&&f>=0&&(c=Math.min(c,f))}),c<1/0&&c>=0&&(o=t.substring(0,c+1))}if(r=this.tokenizer.inlineText(o,Nx)){t=t.substring(r.raw.length),r.raw.slice(-1)!=="_"&&(d=r.raw.slice(-1)),l=!0,i=n[n.length-1],i&&i.type==="text"?(i.raw+=r.raw,i.text+=r.text):n.push(r);continue}if(t){const c="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(c);break}else throw new Error(c)}}return n}}class Ld{constructor(t){this.options=t||Ji}code(t,n,r){const i=(n||"").match(/\S*/)[0];if(this.options.highlight){const o=this.options.highlight(t,i);o!=null&&o!==t&&(r=!0,t=o)}return t=t.replace(/\n$/,"")+` -`,i?'
'+(r?t:ht(t,!0))+`
-`:"
"+(r?t:ht(t,!0))+`
-`}blockquote(t){return`
-`+t+`
-`}html(t){return t}heading(t,n,r,i){return this.options.headerIds?"'+t+" -`:""+t+" -`}hr(){return this.options.xhtml?`
-`:`
-`}list(t,n,r){const i=n?"ol":"ul",o=n&&r!==1?' start="'+r+'"':"";return"<"+i+o+`> -`+t+" -`}listitem(t){return"
  • "+t+`
  • -`}checkbox(t){return" "}paragraph(t){return"

    "+t+`

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

    An error occurred:

    "+ht(r.message+"",!0)+"
    ";throw r}}ve.options=ve.setOptions=function(e){return pn(ve.defaults,e),_x(ve.defaults),ve};ve.getDefaults=H2;ve.defaults=Ji;ve.use=function(...e){const t=pn({},...e),n=ve.defaults.extensions||{renderers:{},childTokens:{}};let r;e.forEach(i=>{if(i.extensions&&(r=!0,i.extensions.forEach(o=>{if(!o.name)throw new Error("extension name required");if(o.renderer){const a=n.renderers?n.renderers[o.name]:null;a?n.renderers[o.name]=function(...s){let l=o.renderer.apply(this,s);return l===!1&&(l=a.apply(this,s)),l}:n.renderers[o.name]=o.renderer}if(o.tokenizer){if(!o.level||o.level!=="block"&&o.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");n[o.level]?n[o.level].unshift(o.tokenizer):n[o.level]=[o.tokenizer],o.start&&(o.level==="block"?n.startBlock?n.startBlock.push(o.start):n.startBlock=[o.start]:o.level==="inline"&&(n.startInline?n.startInline.push(o.start):n.startInline=[o.start]))}o.childTokens&&(n.childTokens[o.name]=o.childTokens)})),i.renderer){const o=ve.defaults.renderer||new Ld;for(const a in i.renderer){const s=o[a];o[a]=(...l)=>{let d=i.renderer[a].apply(o,l);return d===!1&&(d=s.apply(o,l)),d}}t.renderer=o}if(i.tokenizer){const o=ve.defaults.tokenizer||new Td;for(const a in i.tokenizer){const s=o[a];o[a]=(...l)=>{let d=i.tokenizer[a].apply(o,l);return d===!1&&(d=s.apply(o,l)),d}}t.tokenizer=o}if(i.walkTokens){const o=ve.defaults.walkTokens;t.walkTokens=function(a){i.walkTokens.call(this,a),o&&o.call(this,a)}}r&&(t.extensions=n),ve.setOptions(t)})};ve.walkTokens=function(e,t){for(const n of e)switch(t.call(ve,n),n.type){case"table":{for(const r of n.header)ve.walkTokens(r.tokens,t);for(const r of n.rows)for(const i of r)ve.walkTokens(i.tokens,t);break}case"list":{ve.walkTokens(n.items,t);break}default:ve.defaults.extensions&&ve.defaults.extensions.childTokens&&ve.defaults.extensions.childTokens[n.type]?ve.defaults.extensions.childTokens[n.type].forEach(function(r){ve.walkTokens(n[r],t)}):n.tokens&&ve.walkTokens(n.tokens,t)}};ve.parseInline=function(e,t){if(typeof e=="undefined"||e===null)throw new Error("marked.parseInline(): input parameter is undefined or null");if(typeof e!="string")throw new Error("marked.parseInline(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected");t=pn({},ve.defaults,t||{}),G2(t);try{const n=tr.lexInline(e,t);return t.walkTokens&&ve.walkTokens(n,t.walkTokens),nr.parseInline(n,t)}catch(n){if(n.message+=` -Please report this to https://github.com/markedjs/marked.`,t.silent)return"

    An error occurred:

    "+ht(n.message+"",!0)+"
    ";throw n}};ve.Parser=nr;ve.parser=nr.parse;ve.Renderer=Ld;ve.TextRenderer=Y2;ve.Lexer=tr;ve.lexer=tr.lex;ve.Tokenizer=Td;ve.Slugger=W2;ve.parse=ve;nr.parse;tr.lex;function q2({change:e,minimal:t,activeTags:n,toggleTag:r}){return F(ud,{overlay:!t&&F(me,{children:[g("a",{class:"changelog-version",href:`/versions/?id=${e.version}`,children:e.version}),g("a",{class:"changelog-version",href:`/versions/?id=${e.group}`,children:e.group})]}),children:[g("div",{class:"badges-list",children:e.tags.map(i=>g(Ki,{label:i,onClick:r?()=>r(i):void 0,active:n==null?void 0:n.includes(i)}))}),g("div",{class:"changelog-content",dangerouslySetInnerHTML:{__html:ve(e.content)}})]})}const Rx="search";function X2({changes:e,defaultOrder:t,limit:n,navigation:r}){var m,v;const{locale:i}=Ee(),[o,a]=Zr(Rx),[s,l]=dp(),d=Ce(()=>{const x=(o!=null?o:"").split(" ").map(b=>b.trim().toLowerCase()).filter(b=>b.length>0);return x.length===0&&s.length===0?e:e==null?void 0:e.filter(b=>{if(!s.every(k=>b.tags.includes(k)))return!1;const y=`${b.group} ${b.version} ${b.tags.join(" ")} ${b.content.toLowerCase()}`;return x.every(k=>k.startsWith("!")?k.length===1||!y.includes(k.slice(1)):y.includes(k))})},[e,o,s]),[c,u]=J(t==="desc"),f=Ce(()=>d==null?void 0:d.sort((x,b)=>c?b.order-x.order:x.order-b.order),[d,c]),[h,w]=J(!0),_=Ce(()=>!h||(n!=null?n:-1)<0?f:f==null?void 0:f.slice(0,n),[f,h,n,c]),p=((m=f==null?void 0:f.length)!=null?m:0)-((v=_==null?void 0:_.length)!=null?v:0);return F(me,{children:[F("div",{class:"navigation",children:[r,g(fn,{class:"btn btn-input query-search",list:"sound-list",placeholder:i("changelog.search"),value:o,onChange:x=>a(x,!0)}),g(se,{icon:c?"sort_desc":"sort_asc",label:c?"Newest first":"Oldest first",onClick:()=>u(!c)})]}),s.length>0&&g("div",{class:"badges-list",children:s.map(x=>g(Ki,{label:x,onClick:()=>l(x)}))}),F("div",{class:"card-column",children:[_===void 0?g(me,{children:g("span",{class:"note",children:i("loading")})}):_.length===0?g(me,{children:g("span",{class:"note",children:i("changelog.no_results")})}):g(me,{children:_.map(x=>g(q2,{change:x,activeTags:s,toggleTag:l}))}),p>0&&g(se,{label:i("changelog.show_more",`${p}`),onClick:()=>w(!1)})]})]})}function Dx({id:e,version:t}){var l,d;const{locale:n}=Ee(),[r,i]=J("changelog"),{value:o}=Nn(hd,[]),a=Ce(()=>o==null?void 0:o.filter(c=>c.version===e||c.group===e),[e,o]),s=t&&xw(t.id);return g(me,{children:F("div",{class:"version-detail",children:[g("h2",{children:(l=t==null?void 0:t.name)!=null?l:e}),g("div",{class:"version-info",children:t?F(me,{children:[g(Zn,{label:n("versions.released"),value:K2(t)}),g(Zn,{label:n("versions.release_target"),value:t.release_target,link:t.id!==t.release_target?`/versions/?id=${t.release_target}`:void 0}),g(Zn,{label:n("versions.data_version"),value:t.data_version}),g(Zn,{label:n("versions.protocol_version"),value:t.protocol_version}),g(Zn,{label:n("versions.data_pack_format"),value:t.data_pack_version}),g(Zn,{label:n("versions.resource_pack_format"),value:t.resource_pack_version})]}):((d=a==null?void 0:a.length)!=null?d:0>1)?g("p",{children:"This version is not released yet."}):g("p",{children:"This version does not exist. Only versions since 1.14 are tracked, or it may be too recent."})}),F("div",{class:"version-tabs",children:[g("span",{class:r==="changelog"?"selected":"",onClick:()=>i("changelog"),children:n("versions.technical_changes")}),g("span",{class:r==="discussion"?"selected":"",onClick:()=>i("discussion"),children:n("versions.discussion")}),s&&F("a",{href:s,target:"_blank",children:[n("versions.article"),de.link_external]})]}),F("div",{class:"version-tab",children:[r==="changelog"&&g(X2,{changes:a,defaultOrder:"asc"}),r==="discussion"&&g(Md,{term:`version/${e}/`})]})]})})}function K2(e){return new Date(e.release_time).toLocaleDateString(void 0,{day:"numeric",month:"short",year:"numeric"})}function Fx({version:e,link:t}){const{locale:n}=Ee();return F("a",{class:"version-entry",href:t,children:[g("span",{class:"version-id",children:e.id}),g(Zn,{label:n("versions.released"),value:K2(e),compact:!0}),g(Zn,{label:n("versions.data_version"),value:e.data_version,optional:!0}),g(Zn,{label:n("versions.pack_format"),value:e.data_pack_version,optional:!0})]})}const Px="misode_include_snapshots",$x="search";function Bx({versions:e,link:t,navigation:n}){const{locale:r}=Ee(),[i,o]=cp(Px,!0,d=>d==="true",d=>`${d}`),[a,s]=Zr($x),l=Ce(()=>e==null?void 0:e.filter(d=>d.type==="snapshot"&&!i?!1:d.id.includes(a!=null?a:"")),[e,i,a]);return F(me,{children:[F("div",{class:"navigation",children:[n,g(fn,{class:"btn btn-input query-search",placeholder:r("versions.search"),value:a,onChange:s}),g(iv,{label:"Include snapshots",value:i,onChange:o})]}),g("div",{class:"version-list",children:l===void 0?g("span",{class:"note",children:r("loading")}):l.length===0?g("span",{class:"note",children:r("versions.no_results")}):l.map(d=>g(Fx,{version:d,link:t==null?void 0:t(d.id)}))})]})}function Zn({label:e,value:t,link:n,compact:r,optional:i}){return F("div",{class:`version-metadata${i?" version-metadata-hide":""}`,children:[F("span",{class:r?"version-metadata-hide":void 0,children:[e,": "]}),g("span",{class:"version-metadata-value",children:t}),n&&g("a",{href:n,class:"version-metadata-link",children:de.link_external})]})}function da({value:e,allowed:t,hasAny:n,onChange:r,onAny:i}){const{locale:o}=Ee(),a=Ce(()=>t||Pe.versions.map(s=>s.id).reverse(),[t]);return F(Pt,{class:`version-switcher${He.getVersion()===null?" attention":""}`,icon:"tag",label:e!=null?e:o("any_version"),tooltip:o("switch_version"),children:[n&&g(se,{label:o("any_version"),onClick:i,active:!e}),a.map(s=>g(se,{label:s,active:s===e,onClick:()=>r(s)}))]})}function zx({}){const{locale:e}=Ee();hn(e("title.changelog"));const{value:t,error:n}=Nn(hd,[]);return F("main",{children:[n&&g(Mi,{error:n}),g("div",{class:"container changelog",children:g(X2,{changes:t,defaultOrder:"desc",limit:100,navigation:g(ho,{link:"/versions/",icon:"three_bars",label:e("versions.all")})})}),g(Fn,{})]})}const ql="share";function jx({}){var Y,te;const{locale:e}=Ee(),{version:t,changeVersion:n,changeTargetVersion:r}=Dn(),{projects:i,project:o,file:a,updateProject:s,updateFile:l}=Rn(),[d,c]=J(null),[u,f]=Ef();if(u)return u.message=`Something went wrong rendering the generator: ${u.message}`,g("main",{children:g(Mi,{error:u,onDismiss:f})});const h=sp(Fi());if(!h)return g("main",{children:g(Mi,{error:`Cannot find generator "${Fi()}"`})});const w=Ce(()=>Pe.versions.filter(Z=>gt(Z.id,h.minVersion,h.maxVersion)).map(Z=>Z.id).reverse(),[h.minVersion,h.maxVersion]);hn(e("title.generator",e(h.partner?`partner.${h.partner}.${h.id}`:h.id)),w),gt(t,h.minVersion)||c(`The minimum version for this generator is ${h.minVersion}`),gt(t,void 0,h.maxVersion)||c(`This generator is not available in versions above ${h.maxVersion}`),_e(()=>He.visitGenerator(h.id),[h.id]);const[_,p]=Zr("preset"),[m,v]=Zr(ql),x=Re(!1),b=Ce(()=>He.getBackup(h.id),[h.id]),y=()=>{b!==void 0&&(C==null||C.reset(P.DataModel.wrapLists(b),!1))},{value:k}=Nn(async()=>{let Z;if(_&&m)return v(void 0),Ya;if(_)Z=await j(_);else if(m){const qe=await zw(m);let dt=!1;if(qe.version&&qe.version!==t&&(n(qe.version,!1),dt=!0),qe.type&&qe.type!==h.id){const nn=Pe.generators.find(fa=>fa.id===qe.type);nn&&(Jr(`${xr(nn.url)}?${ql}=${qe.id}`),dt=!0)}if(dt)return Ya;qe.show_preview&&!et&&(_t(!0),ce(!1)),Te.openSnippet(h.id,m,t),Z=qe.data}else if(a){if(o.version&&o.version!==t)return n(o.version,!1),Ya;Z=a.data}const[oe,Ke]=await Promise.all([Fw(t,h.id),Pw(t)]);return Z&&(x.current=!0,oe.reset(P.DataModel.wrapLists(Z),!1)),Te.setGenerator(h.id),{model:oe,blockStates:Ke}},[h.id,t,m,_,o.name,a==null?void 0:a.id]),C=k==null?void 0:k.model,E=k==null?void 0:k.blockStates;Gs(C,Z=>{if(x.current||(p(void 0,!0),v(void 0,!0)),a&&Z&&E){const oe=Pc(Z,E);l(h.id,a.id,{id:a.id,data:oe})}x.current=!1,He.setBackup(h.id,P.DataModel.unwrapLists(Z.data)),c(null)},[h.id,p,v,E,a==null?void 0:a.id]);const M=()=>{var Z;Te.resetGenerator(h.id,(Z=C==null?void 0:C.historyIndex)!=null?Z:1,"menu"),C==null||C.reset(P.DataModel.wrapLists(C.schema.default()),!0)},S=Z=>{var oe;Z.stopPropagation(),Te.undoGenerator(h.id,(oe=C==null?void 0:C.historyIndex)!=null?oe:1,"menu"),C==null||C.undo()},T=Z=>{var oe;Z.stopPropagation(),Te.redoGenerator(h.id,(oe=C==null?void 0:C.historyIndex)!=null?oe:1,"menu"),C==null||C.redo()},L=Z=>{var oe,Ke;Z.ctrlKey&&Z.key==="z"?(Te.undoGenerator(h.id,(oe=C==null?void 0:C.historyIndex)!=null?oe:1,"hotkey"),C==null||C.undo()):Z.ctrlKey&&Z.key==="y"&&(Te.redoGenerator(h.id,(Ke=C==null?void 0:C.historyIndex)!=null?Ke:1,"hotkey"),C==null||C.redo())},D=Z=>{Z.ctrlKey&&Z.key==="s"&&(z("hotkey"),Z.preventDefault(),Z.stopPropagation())};_e(()=>(document.addEventListener("keyup",L),document.addEventListener("keydown",D),()=>{document.removeEventListener("keyup",L),document.removeEventListener("keydown",D)}),[C,E,a]);const[q,V]=J([]);_e(()=>{mp(t).then(Z=>{V(Z.get(h.id).map(oe=>oe.startsWith("minecraft:")?oe.slice(10):oe))}).catch(Z=>{console.error(Z),c(Z)})},[t,h.id]);const O=Z=>{Te.loadPreset(h.id,Z),v(void 0,!0),r(t,!0),p(Z)},j=async Z=>{var oe,Ke,qe;try{const dt=await fp(t,(oe=h.path)!=null?oe:h.id,Z),nn=C==null?void 0:C.get(new P.Path(["generator","seed"]));return((Ke=dt==null?void 0:dt.generator)==null?void 0:Ke.seed)!==void 0&&nn!==void 0&&(dt.generator.seed=nn,((qe=dt.generator.biome_source)==null?void 0:qe.seed)!==void 0&&(dt.generator.biome_source.seed=nn)),dt}catch{c(`Cannot load preset ${Z} in ${t}`),p(void 0,!0)}},H=Z=>{v(void 0,!0),n(Z),o.name!==yr.name&&o.version!==Z&&s({version:Z})},[Q,R]=J(void 0),[A,N]=J(!1),[$,X]=vc({cooldown:3e3}),ie=()=>{if(A){N(!1);return}if(_)R(`${location.origin}/${h.url}/?version=${t}&preset=${_}`),N(!0),B();else if(C&&E){const Z=Pc(C,E);ji(Z,C.schema.default())?(R(`${location.origin}/${h.url}/?version=${t}`),N(!0)):Bw(h.id,t,Z,et).then(({id:oe,length:Ke,compressed:qe,rate:dt})=>{Te.createSnippet(h.id,oe,t,Ke,qe,dt);const nn=`${location.origin}/${h.url}/?${ql}=${oe}`;R(nn),N(!0)}).catch(oe=>{oe instanceof Error&&c(oe)})}},B=()=>{navigator.clipboard.writeText(Q!=null?Q:""),X()};_e(()=>{$||(R(void 0),N(!1))},[$]);const[K,ce]=J(window.innerWidth>820),[fe,Oe]=J(0),[Ae,Ue]=J(0),[rt,ke]=J(0),Se=()=>{Te.copyOutput(h.id,"menu"),Oe(fe+1)},Ie=()=>{Te.downloadOutput(h.id,"menu"),Ue(Ae+1)},ae=()=>{Te.generatorEvent("import"),ce(!0),ke(rt+1)},gn=()=>{K?Te.hideOutput(h.id,"menu"):Te.showOutput(h.id,"menu"),ce(!K),Oe(0),Ue(0),ke(0)},[Ze,$e]=vc(),[et,_t]=J(!1),mn=sb.includes(h.id)&&!(h.id==="worldgen/configured_feature"&>(t,"1.18"));et&&!mn&&_t(!1);let Pn=2;mn&&(Pn+=1),K&&(Pn+=2);const ee=()=>{K?Te.hidePreview(h.id,"menu"):Te.showPreview(h.id,"menu"),_t(!et),!et&&K&&ce(!1)},[ne,pe]=J((Y=He.getProjectPanelOpen())!=null?Y:window.innerWidth>600),Me=je(()=>{ne?Te.hideProject(h.id,i.length,o.files.length,"menu"):Te.showProject(h.id,i.length,o.files.length,"menu"),He.setProjectPanelOpen(!ne),pe(!ne)},[ne]),[at,At]=J(!1),[Qi,oi]=J(!1),[ua,z]=J(void 0),[G,U]=J(void 0);return F(me,{children:[F("main",{class:`generator${et?" has-preview":""}${ne?" has-project":""}`,children:[!h.partner&&g(Lf,{id:"data-pack-generator",type:"text"}),F("div",{class:"controls generator-controls",children:[g(se,{icon:"upload",label:e("import"),onClick:ae}),g(Pt,{icon:"archive",label:e("presets"),relative:!1,children:g(ov,{searchPlaceholder:e("search"),noResults:e("no_presets"),values:q,onSelect:O})}),g(da,{value:t,onChange:H,allowed:w}),F(Pt,{icon:"kebab_horizontal",tooltip:e("more"),children:[g(se,{icon:"history",label:e("reset_default"),onClick:M}),b!==void 0&&g(se,{icon:"history",label:e("restore_backup"),onClick:y}),g(se,{icon:"arrow_left",label:e("undo"),onClick:S}),g(se,{icon:"arrow_right",label:e("redo"),onClick:T}),g(se,{icon:"file",label:e("project.save"),onClick:()=>z("menu")})]})]}),d&&g(Mi,{error:d,onDismiss:()=>c(null)}),g(ox,{model:C,version:t,blockStates:E,onError:c}),g(Fn,{donate:!h.partner})]}),F("div",{class:"popup-actions right-actions",style:`--offset: -${8+Pn*50}px;`,children:[g("div",{class:`popup-action action-preview${mn?" shown":""} tooltipped tip-nw`,"aria-label":e(et?"hide_preview":"show_preview"),onClick:ee,children:et?de.x_circle:de.play}),g("div",{class:"popup-action action-share shown tooltipped tip-nw","aria-label":e("share"),onClick:ie,children:de.link}),g("div",{class:`popup-action action-download${K?" shown":""} tooltipped tip-nw`,"aria-label":e("download"),onClick:Ie,children:de.download}),g("div",{class:`popup-action action-copy${K?" shown":""}${Ze?" active":""} tooltipped tip-nw`,"aria-label":e(Ze?"copied":"copy"),onClick:Se,children:Ze?de.check:de.clippy}),g("div",{class:"popup-action action-code shown tooltipped tip-nw","aria-label":e(K?"hide_output":"show_output"),onClick:gn,children:K?de.chevron_right:de.code})]}),g("div",{class:`popup-preview${et?" shown":""}`,children:g(lb,{model:C,version:t,id:h.id,shown:et,onError:c})}),g("div",{class:`popup-source${K?" shown":""}`,children:g(hb,{model:C,blockStates:E,doCopy:fe,doDownload:Ae,doImport:rt,name:(te=h.schema)!=null?te:"data",copySuccess:$e,onError:c})}),F("div",{class:`popup-share${A?" shown":""}`,children:[g(fn,{value:Q,readonly:!0}),g(se,{icon:$?"check":"clippy",onClick:B,tooltip:e($?"copied":"copy_share"),tooltipLoc:"nw",active:$})]}),g("div",{class:"popup-actions left-actions",style:"--offset: 50px;",children:g("div",{class:"popup-action action-project shown tooltipped tip-ne","aria-label":e(ne?"hide_project":"show_project"),onClick:Me,children:ne?de.chevron_left:de.repo})}),g("div",{class:`popup-project${ne?" shown":""}`,children:g(ub,{model:C,version:t,id:h.id,onError:c,onDeleteProject:()=>oi(!0),onRename:U,onCreate:()=>At(!0)})}),at&&g(cb,{onClose:()=>At(!1)}),Qi&&g(db,{onClose:()=>oi(!1)}),C&&ua&&g(av,{id:h.id,model:C,method:ua,onClose:()=>z(void 0)}),G&&g(sv,{id:G.type,name:G.id,onClose:()=>U(void 0)})]})}function Vx({}){const{locale:e}=Ee();return hn(e("title.generators")),F("main",{children:[g("div",{class:"container",children:g(wd,{predicate:t=>!t.partner})}),g(Fn,{})]})}var Od={exports:{}};function Nd(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach(function(t){var n=e[t];typeof n=="object"&&!Object.isFrozen(n)&&Nd(n)}),e}Od.exports=Nd;Od.exports.default=Nd;var Ux=Od.exports;class Zu{constructor(t){t.data===void 0&&(t.data={}),this.data=t.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function J2(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function gr(e,...t){const n=Object.create(null);for(const r in e)n[r]=e[r];return t.forEach(function(r){for(const i in r)n[i]=r[i]}),n}const Hx="",Gu=e=>!!e.kind,Zx=(e,{prefix:t})=>{if(e.includes(".")){const n=e.split(".");return[`${t}${n.shift()}`,...n.map((r,i)=>`${r}${"_".repeat(i+1)}`)].join(" ")}return`${t}${e}`};class Gx{constructor(t,n){this.buffer="",this.classPrefix=n.classPrefix,t.walk(this)}addText(t){this.buffer+=J2(t)}openNode(t){if(!Gu(t))return;let n=t.kind;t.sublanguage?n=`language-${n}`:n=Zx(n,{prefix:this.classPrefix}),this.span(n)}closeNode(t){!Gu(t)||(this.buffer+=Hx)}value(){return this.buffer}span(t){this.buffer+=``}}class Rd{constructor(){this.rootNode={children:[]},this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(t){this.top.children.push(t)}openNode(t){const n={kind:t,children:[]};this.add(n),this.stack.push(n)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(t){return this.constructor._walk(t,this.rootNode)}static _walk(t,n){return typeof n=="string"?t.addText(n):n.children&&(t.openNode(n),n.children.forEach(r=>this._walk(t,r)),t.closeNode(n)),t}static _collapse(t){typeof t!="string"&&(!t.children||(t.children.every(n=>typeof n=="string")?t.children=[t.children.join("")]:t.children.forEach(n=>{Rd._collapse(n)})))}}class Yx extends Rd{constructor(t){super(),this.options=t}addKeyword(t,n){t!==""&&(this.openNode(n),this.addText(t),this.closeNode())}addText(t){t!==""&&this.add(t)}addSublanguage(t,n){const r=t.root;r.kind=n,r.sublanguage=!0,this.add(r)}toHTML(){return new Gx(this,this.options).value()}finalize(){return!0}}function Yo(e){return e?typeof e=="string"?e:e.source:null}function Q2(e){return ii("(?=",e,")")}function Wx(e){return ii("(?:",e,")*")}function qx(e){return ii("(?:",e,")?")}function ii(...e){return e.map(n=>Yo(n)).join("")}function Xx(e){const t=e[e.length-1];return typeof t=="object"&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function Dd(...e){const t=Xx(e);return"("+(t.capture?"":"?:")+e.map(r=>Yo(r)).join("|")+")"}function eg(e){return new RegExp(e.toString()+"|").exec("").length-1}function Kx(e,t){const n=e&&e.exec(t);return n&&n.index===0}const Jx=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function Fd(e,{joinWith:t}){let n=0;return e.map(r=>{n+=1;const i=n;let o=Yo(r),a="";for(;o.length>0;){const s=Jx.exec(o);if(!s){a+=o;break}a+=o.substring(0,s.index),o=o.substring(s.index+s[0].length),s[0][0]==="\\"&&s[1]?a+="\\"+String(Number(s[1])+i):(a+=s[0],s[0]==="("&&n++)}return a}).map(r=>`(${r})`).join(t)}const Qx=/\b\B/,tg="[a-zA-Z]\\w*",Pd="[a-zA-Z_]\\w*",ng="\\b\\d+(\\.\\d+)?",rg="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",ig="\\b(0b[01]+)",e9="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",t9=(e={})=>{const t=/^#![ ]*\//;return e.binary&&(e.begin=ii(t,/.*\b/,e.binary,/\b.*/)),gr({scope:"meta",begin:t,end:/$/,relevance:0,"on:begin":(n,r)=>{n.index!==0&&r.ignoreMatch()}},e)},Wo={begin:"\\\\[\\s\\S]",relevance:0},n9={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[Wo]},r9={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[Wo]},i9={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},rl=function(e,t,n={}){const r=gr({scope:"comment",begin:e,end:t,contains:[]},n);r.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const i=Dd("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return r.contains.push({begin:ii(/[ ]+/,"(",i,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),r},o9=rl("//","$"),a9=rl("/\\*","\\*/"),s9=rl("#","$"),l9={scope:"number",begin:ng,relevance:0},c9={scope:"number",begin:rg,relevance:0},d9={scope:"number",begin:ig,relevance:0},u9={begin:/(?=\/[^/\n]*\/)/,contains:[{scope:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[Wo,{begin:/\[/,end:/\]/,relevance:0,contains:[Wo]}]}]},f9={scope:"title",begin:tg,relevance:0},h9={scope:"title",begin:Pd,relevance:0},p9={begin:"\\.\\s*"+Pd,relevance:0},g9=function(e){return Object.assign(e,{"on:begin":(t,n)=>{n.data._beginMatch=t[1]},"on:end":(t,n)=>{n.data._beginMatch!==t[1]&&n.ignoreMatch()}})};var Ra=Object.freeze({__proto__:null,MATCH_NOTHING_RE:Qx,IDENT_RE:tg,UNDERSCORE_IDENT_RE:Pd,NUMBER_RE:ng,C_NUMBER_RE:rg,BINARY_NUMBER_RE:ig,RE_STARTERS_RE:e9,SHEBANG:t9,BACKSLASH_ESCAPE:Wo,APOS_STRING_MODE:n9,QUOTE_STRING_MODE:r9,PHRASAL_WORDS_MODE:i9,COMMENT:rl,C_LINE_COMMENT_MODE:o9,C_BLOCK_COMMENT_MODE:a9,HASH_COMMENT_MODE:s9,NUMBER_MODE:l9,C_NUMBER_MODE:c9,BINARY_NUMBER_MODE:d9,REGEXP_MODE:u9,TITLE_MODE:f9,UNDERSCORE_TITLE_MODE:h9,METHOD_GUARD:p9,END_SAME_AS_BEGIN:g9});function m9(e,t){e.input[e.index-1]==="."&&t.ignoreMatch()}function _9(e,t){e.className!==void 0&&(e.scope=e.className,delete e.className)}function w9(e,t){!t||!e.beginKeywords||(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=m9,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,e.relevance===void 0&&(e.relevance=0))}function v9(e,t){!Array.isArray(e.illegal)||(e.illegal=Dd(...e.illegal))}function b9(e,t){if(!!e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function x9(e,t){e.relevance===void 0&&(e.relevance=1)}const y9=(e,t)=>{if(!e.beforeMatch)return;if(e.starts)throw new Error("beforeMatch cannot be used with starts");const n=Object.assign({},e);Object.keys(e).forEach(r=>{delete e[r]}),e.keywords=n.keywords,e.begin=ii(n.beforeMatch,Q2(n.begin)),e.starts={relevance:0,contains:[Object.assign(n,{endsParent:!0})]},e.relevance=0,delete n.beforeMatch},k9=["of","and","for","in","not","or","if","then","parent","list","value"],C9="keyword";function og(e,t,n=C9){const r=Object.create(null);return typeof e=="string"?i(n,e.split(" ")):Array.isArray(e)?i(n,e):Object.keys(e).forEach(function(o){Object.assign(r,og(e[o],t,o))}),r;function i(o,a){t&&(a=a.map(s=>s.toLowerCase())),a.forEach(function(s){const l=s.split("|");r[l[0]]=[o,E9(l[0],l[1])]})}}function E9(e,t){return t?Number(t):A9(e)?0:1}function A9(e){return k9.includes(e.toLowerCase())}const Yu={},Vr=e=>{console.error(e)},Wu=(e,...t)=>{console.log(`WARN: ${e}`,...t)},mi=(e,t)=>{Yu[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),Yu[`${e}/${t}`]=!0)},Ns=new Error;function ag(e,t,{key:n}){let r=0;const i=e[n],o={},a={};for(let s=1;s<=t.length;s++)a[s+r]=i[s],o[s+r]=!0,r+=eg(t[s-1]);e[n]=a,e[n]._emit=o,e[n]._multi=!0}function S9(e){if(!!Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw Vr("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),Ns;if(typeof e.beginScope!="object"||e.beginScope===null)throw Vr("beginScope must be object"),Ns;ag(e,e.begin,{key:"beginScope"}),e.begin=Fd(e.begin,{joinWith:""})}}function I9(e){if(!!Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw Vr("skip, excludeEnd, returnEnd not compatible with endScope: {}"),Ns;if(typeof e.endScope!="object"||e.endScope===null)throw Vr("endScope must be object"),Ns;ag(e,e.end,{key:"endScope"}),e.end=Fd(e.end,{joinWith:""})}}function M9(e){e.scope&&typeof e.scope=="object"&&e.scope!==null&&(e.beginScope=e.scope,delete e.scope)}function T9(e){M9(e),typeof e.beginScope=="string"&&(e.beginScope={_wrap:e.beginScope}),typeof e.endScope=="string"&&(e.endScope={_wrap:e.endScope}),S9(e),I9(e)}function L9(e){function t(a,s){return new RegExp(Yo(a),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(s?"g":""))}class n{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(s,l){l.position=this.position++,this.matchIndexes[this.matchAt]=l,this.regexes.push([l,s]),this.matchAt+=eg(s)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const s=this.regexes.map(l=>l[1]);this.matcherRe=t(Fd(s,{joinWith:"|"}),!0),this.lastIndex=0}exec(s){this.matcherRe.lastIndex=this.lastIndex;const l=this.matcherRe.exec(s);if(!l)return null;const d=l.findIndex((u,f)=>f>0&&u!==void 0),c=this.matchIndexes[d];return l.splice(0,d),Object.assign(l,c)}}class r{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(s){if(this.multiRegexes[s])return this.multiRegexes[s];const l=new n;return this.rules.slice(s).forEach(([d,c])=>l.addRule(d,c)),l.compile(),this.multiRegexes[s]=l,l}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(s,l){this.rules.push([s,l]),l.type==="begin"&&this.count++}exec(s){const l=this.getMatcher(this.regexIndex);l.lastIndex=this.lastIndex;let d=l.exec(s);if(this.resumingScanAtSamePosition()&&!(d&&d.index===this.lastIndex)){const c=this.getMatcher(0);c.lastIndex=this.lastIndex+1,d=c.exec(s)}return d&&(this.regexIndex+=d.position+1,this.regexIndex===this.count&&this.considerAll()),d}}function i(a){const s=new r;return a.contains.forEach(l=>s.addRule(l.begin,{rule:l,type:"begin"})),a.terminatorEnd&&s.addRule(a.terminatorEnd,{type:"end"}),a.illegal&&s.addRule(a.illegal,{type:"illegal"}),s}function o(a,s){const l=a;if(a.isCompiled)return l;[_9,b9,T9,y9].forEach(c=>c(a,s)),e.compilerExtensions.forEach(c=>c(a,s)),a.__beforeBegin=null,[w9,v9,x9].forEach(c=>c(a,s)),a.isCompiled=!0;let d=null;return typeof a.keywords=="object"&&a.keywords.$pattern&&(a.keywords=Object.assign({},a.keywords),d=a.keywords.$pattern,delete a.keywords.$pattern),d=d||/\w+/,a.keywords&&(a.keywords=og(a.keywords,e.case_insensitive)),l.keywordPatternRe=t(d,!0),s&&(a.begin||(a.begin=/\B|\b/),l.beginRe=t(l.begin),!a.end&&!a.endsWithParent&&(a.end=/\B|\b/),a.end&&(l.endRe=t(l.end)),l.terminatorEnd=Yo(l.end)||"",a.endsWithParent&&s.terminatorEnd&&(l.terminatorEnd+=(a.end?"|":"")+s.terminatorEnd)),a.illegal&&(l.illegalRe=t(a.illegal)),a.contains||(a.contains=[]),a.contains=[].concat(...a.contains.map(function(c){return O9(c==="self"?a:c)})),a.contains.forEach(function(c){o(c,l)}),a.starts&&o(a.starts,s),l.matcher=i(l),l}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=gr(e.classNameAliases||{}),o(e)}function sg(e){return e?e.endsWithParent||sg(e.starts):!1}function O9(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map(function(t){return gr(e,{variants:null},t)})),e.cachedVariants?e.cachedVariants:sg(e)?gr(e,{starts:e.starts?gr(e.starts):null}):Object.isFrozen(e)?gr(e):e}var N9="11.5.1";class R9 extends Error{constructor(t,n){super(t),this.name="HTMLInjectionError",this.html=n}}const Xl=J2,qu=gr,Xu=Symbol("nomatch"),D9=7,F9=function(e){const t=Object.create(null),n=Object.create(null),r=[];let i=!0;const o="Could not find the language '{}', did you forget to load/include a language module?",a={disableAutodetect:!0,name:"Plain text",contains:[]};let s={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:Yx};function l(O){return s.noHighlightRe.test(O)}function d(O){let j=O.className+" ";j+=O.parentNode?O.parentNode.className:"";const H=s.languageDetectRe.exec(j);if(H){const Q=M(H[1]);return Q||(Wu(o.replace("{}",H[1])),Wu("Falling back to no-highlight mode for this block.",O)),Q?H[1]:"no-highlight"}return j.split(/\s+/).find(Q=>l(Q)||M(Q))}function c(O,j,H){let Q="",R="";typeof j=="object"?(Q=O,H=j.ignoreIllegals,R=j.language):(mi("10.7.0","highlight(lang, code, ...args) has been deprecated."),mi("10.7.0",`Please use highlight(code, options) instead. -https://github.com/highlightjs/highlight.js/issues/2277`),R=O,Q=j),H===void 0&&(H=!0);const A={code:Q,language:R};q("before:highlight",A);const N=A.result?A.result:u(A.language,A.code,H);return N.code=A.code,q("after:highlight",N),N}function u(O,j,H,Q){const R=Object.create(null);function A(ee,ne){return ee.keywords[ne]}function N(){if(!ae.keywords){Ze.addText($e);return}let ee=0;ae.keywordPatternRe.lastIndex=0;let ne=ae.keywordPatternRe.exec($e),pe="";for(;ne;){pe+=$e.substring(ee,ne.index);const Me=ke.case_insensitive?ne[0].toLowerCase():ne[0],at=A(ae,Me);if(at){const[At,Qi]=at;if(Ze.addText(pe),pe="",R[Me]=(R[Me]||0)+1,R[Me]<=D9&&(et+=Qi),At.startsWith("_"))pe+=ne[0];else{const oi=ke.classNameAliases[At]||At;Ze.addKeyword(ne[0],oi)}}else pe+=ne[0];ee=ae.keywordPatternRe.lastIndex,ne=ae.keywordPatternRe.exec($e)}pe+=$e.substr(ee),Ze.addText(pe)}function $(){if($e==="")return;let ee=null;if(typeof ae.subLanguage=="string"){if(!t[ae.subLanguage]){Ze.addText($e);return}ee=u(ae.subLanguage,$e,!0,gn[ae.subLanguage]),gn[ae.subLanguage]=ee._top}else ee=h($e,ae.subLanguage.length?ae.subLanguage:null);ae.relevance>0&&(et+=ee.relevance),Ze.addSublanguage(ee._emitter,ee.language)}function X(){ae.subLanguage!=null?$():N(),$e=""}function ie(ee,ne){let pe=1;const Me=ne.length-1;for(;pe<=Me;){if(!ee._emit[pe]){pe++;continue}const at=ke.classNameAliases[ee[pe]]||ee[pe],At=ne[pe];at?Ze.addKeyword(At,at):($e=At,N(),$e=""),pe++}}function B(ee,ne){return ee.scope&&typeof ee.scope=="string"&&Ze.openNode(ke.classNameAliases[ee.scope]||ee.scope),ee.beginScope&&(ee.beginScope._wrap?(Ze.addKeyword($e,ke.classNameAliases[ee.beginScope._wrap]||ee.beginScope._wrap),$e=""):ee.beginScope._multi&&(ie(ee.beginScope,ne),$e="")),ae=Object.create(ee,{parent:{value:ae}}),ae}function K(ee,ne,pe){let Me=Kx(ee.endRe,pe);if(Me){if(ee["on:end"]){const at=new Zu(ee);ee["on:end"](ne,at),at.isMatchIgnored&&(Me=!1)}if(Me){for(;ee.endsParent&&ee.parent;)ee=ee.parent;return ee}}if(ee.endsWithParent)return K(ee.parent,ne,pe)}function ce(ee){return ae.matcher.regexIndex===0?($e+=ee[0],1):(Pn=!0,0)}function fe(ee){const ne=ee[0],pe=ee.rule,Me=new Zu(pe),at=[pe.__beforeBegin,pe["on:begin"]];for(const At of at)if(!!At&&(At(ee,Me),Me.isMatchIgnored))return ce(ne);return pe.skip?$e+=ne:(pe.excludeBegin&&($e+=ne),X(),!pe.returnBegin&&!pe.excludeBegin&&($e=ne)),B(pe,ee),pe.returnBegin?0:ne.length}function Oe(ee){const ne=ee[0],pe=j.substr(ee.index),Me=K(ae,ee,pe);if(!Me)return Xu;const at=ae;ae.endScope&&ae.endScope._wrap?(X(),Ze.addKeyword(ne,ae.endScope._wrap)):ae.endScope&&ae.endScope._multi?(X(),ie(ae.endScope,ee)):at.skip?$e+=ne:(at.returnEnd||at.excludeEnd||($e+=ne),X(),at.excludeEnd&&($e=ne));do ae.scope&&Ze.closeNode(),!ae.skip&&!ae.subLanguage&&(et+=ae.relevance),ae=ae.parent;while(ae!==Me.parent);return Me.starts&&B(Me.starts,ee),at.returnEnd?0:ne.length}function Ae(){const ee=[];for(let ne=ae;ne!==ke;ne=ne.parent)ne.scope&&ee.unshift(ne.scope);ee.forEach(ne=>Ze.openNode(ne))}let Ue={};function rt(ee,ne){const pe=ne&&ne[0];if($e+=ee,pe==null)return X(),0;if(Ue.type==="begin"&&ne.type==="end"&&Ue.index===ne.index&&pe===""){if($e+=j.slice(ne.index,ne.index+1),!i){const Me=new Error(`0 width match regex (${O})`);throw Me.languageName=O,Me.badRule=Ue.rule,Me}return 1}if(Ue=ne,ne.type==="begin")return fe(ne);if(ne.type==="illegal"&&!H){const Me=new Error('Illegal lexeme "'+pe+'" for mode "'+(ae.scope||"")+'"');throw Me.mode=ae,Me}else if(ne.type==="end"){const Me=Oe(ne);if(Me!==Xu)return Me}if(ne.type==="illegal"&&pe==="")return 1;if(mn>1e5&&mn>ne.index*3)throw new Error("potential infinite loop, way more iterations than matches");return $e+=pe,pe.length}const ke=M(O);if(!ke)throw Vr(o.replace("{}",O)),new Error('Unknown language: "'+O+'"');const Se=L9(ke);let Ie="",ae=Q||Se;const gn={},Ze=new s.__emitter(s);Ae();let $e="",et=0,_t=0,mn=0,Pn=!1;try{for(ae.matcher.considerAll();;){mn++,Pn?Pn=!1:ae.matcher.considerAll(),ae.matcher.lastIndex=_t;const ee=ae.matcher.exec(j);if(!ee)break;const ne=j.substring(_t,ee.index),pe=rt(ne,ee);_t=ee.index+pe}return rt(j.substr(_t)),Ze.closeAllNodes(),Ze.finalize(),Ie=Ze.toHTML(),{language:O,value:Ie,relevance:et,illegal:!1,_emitter:Ze,_top:ae}}catch(ee){if(ee.message&&ee.message.includes("Illegal"))return{language:O,value:Xl(j),illegal:!0,relevance:0,_illegalBy:{message:ee.message,index:_t,context:j.slice(_t-100,_t+100),mode:ee.mode,resultSoFar:Ie},_emitter:Ze};if(i)return{language:O,value:Xl(j),illegal:!1,relevance:0,errorRaised:ee,_emitter:Ze,_top:ae};throw ee}}function f(O){const j={value:Xl(O),illegal:!1,relevance:0,_top:a,_emitter:new s.__emitter(s)};return j._emitter.addText(O),j}function h(O,j){j=j||s.languages||Object.keys(t);const H=f(O),Q=j.filter(M).filter(T).map(X=>u(X,O,!1));Q.unshift(H);const R=Q.sort((X,ie)=>{if(X.relevance!==ie.relevance)return ie.relevance-X.relevance;if(X.language&&ie.language){if(M(X.language).supersetOf===ie.language)return 1;if(M(ie.language).supersetOf===X.language)return-1}return 0}),[A,N]=R,$=A;return $.secondBest=N,$}function w(O,j,H){const Q=j&&n[j]||H;O.classList.add("hljs"),O.classList.add(`language-${Q}`)}function _(O){let j=null;const H=d(O);if(l(H))return;if(q("before:highlightElement",{el:O,language:H}),O.children.length>0&&(s.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(O)),s.throwUnescapedHTML))throw new R9("One of your code blocks includes unescaped HTML.",O.innerHTML);j=O;const Q=j.textContent,R=H?c(Q,{language:H,ignoreIllegals:!0}):h(Q);O.innerHTML=R.value,w(O,H,R.language),O.result={language:R.language,re:R.relevance,relevance:R.relevance},R.secondBest&&(O.secondBest={language:R.secondBest.language,relevance:R.secondBest.relevance}),q("after:highlightElement",{el:O,result:R,text:Q})}function p(O){s=qu(s,O)}const m=()=>{b(),mi("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function v(){b(),mi("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let x=!1;function b(){if(document.readyState==="loading"){x=!0;return}document.querySelectorAll(s.cssSelector).forEach(_)}function y(){x&&b()}typeof window!="undefined"&&window.addEventListener&&window.addEventListener("DOMContentLoaded",y,!1);function k(O,j){let H=null;try{H=j(e)}catch(Q){if(Vr("Language definition for '{}' could not be registered.".replace("{}",O)),i)Vr(Q);else throw Q;H=a}H.name||(H.name=O),t[O]=H,H.rawDefinition=j.bind(null,e),H.aliases&&S(H.aliases,{languageName:O})}function C(O){delete t[O];for(const j of Object.keys(n))n[j]===O&&delete n[j]}function E(){return Object.keys(t)}function M(O){return O=(O||"").toLowerCase(),t[O]||t[n[O]]}function S(O,{languageName:j}){typeof O=="string"&&(O=[O]),O.forEach(H=>{n[H.toLowerCase()]=j})}function T(O){const j=M(O);return j&&!j.disableAutodetect}function L(O){O["before:highlightBlock"]&&!O["before:highlightElement"]&&(O["before:highlightElement"]=j=>{O["before:highlightBlock"](Object.assign({block:j.el},j))}),O["after:highlightBlock"]&&!O["after:highlightElement"]&&(O["after:highlightElement"]=j=>{O["after:highlightBlock"](Object.assign({block:j.el},j))})}function D(O){L(O),r.push(O)}function q(O,j){const H=O;r.forEach(function(Q){Q[H]&&Q[H](j)})}function V(O){return mi("10.7.0","highlightBlock will be removed entirely in v12.0"),mi("10.7.0","Please use highlightElement now."),_(O)}Object.assign(e,{highlight:c,highlightAuto:h,highlightAll:b,highlightElement:_,highlightBlock:V,configure:p,initHighlighting:m,initHighlightingOnLoad:v,registerLanguage:k,unregisterLanguage:C,listLanguages:E,getLanguage:M,registerAliases:S,autoDetection:T,inherit:qu,addPlugin:D}),e.debugMode=function(){i=!1},e.safeMode=function(){i=!0},e.versionString=N9,e.regex={concat:ii,lookahead:Q2,either:Dd,optional:qx,anyNumberOfTimes:Wx};for(const O in Ra)typeof Ra[O]=="object"&&Ux(Ra[O]);return Object.assign(e,Ra),e};var qo=F9({}),P9=qo;qo.HighlightJS=qo;qo.default=qo;var $d=P9;function $9(e){const t={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},n={match:/[{}[\],:]/,className:"punctuation",relevance:0},r={beginKeywords:["true","false","null"].join(" ")};return{name:"JSON",contains:[t,n,e.QUOTE_STRING_MODE,r,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}const B9='';$d.registerLanguage("json",$9);ve.use({highlight:(e,t)=>{if(t!=="")return $d.highlight(e,{language:t}).value}});function z9({id:e}){const{locale:t}=Ee(),{version:n,changeVersion:r}=Dn(),{changeTitle:i}=hn(),{value:o,refresh:a}=Nn(async()=>await(await fetch(`../../guides/${e}.md`)).text(),[e]),s=Ce(()=>{if(!o)return;const b=ow(o);return i(b==null?void 0:b.title,b==null?void 0:b.versions),b},[o]),l=Ce(()=>{var y;const b=Pe.versions.map(k=>k.id);return(y=s==null?void 0:s.versions)==null?void 0:y.sort((k,C)=>b.indexOf(C)-b.indexOf(k))},[s==null?void 0:s.versions]),d=Ce(()=>!l||l.includes(n)?n:l[0],[n,s==null?void 0:s.versions]),c=Ce(()=>{if(!o)return;const b=[];let y=!1;ve.use({extensions:[{name:"styledCode",level:"inline",start(E){var M,S;return(S=(M=E.match(/\b[fsnj]`/))==null?void 0:M.index)!=null?S:-1},tokenizer(E){const M=E.match(/^([fsnj])`([^`]+)`/);if(M)return{type:"styledCode",raw:M[0],prefix:M[1],text:M[2]}},renderer(E){let M=E.text,S={f:"hljs-attr",s:"hljs-string",n:"hljs-number"}[E.prefix];return E.prefix==="j"&&(M=$d.highlight("json",E.text).value,S="language-json"),`${M}`}}],walkTokens(E){E.type==="heading"&&b.push(E)},renderer:{link(E,M,S){if(E===null)return S;const T=M?` title="${M}"`:"",L=E!=null&&E.match(/^https?:\/\//)?' target="_blank"':"";return`
    ${S}`},heading(E,M,S,T){let L="";y||(L=`
      ${b.filter(V=>V.depth===2).map(V=>{var H,Q;const O=T.slug((Q=(H=V.raw.match(/^#+ (.*)/))==null?void 0:H[1])!=null?Q:"",{dryrun:!0}),j=V.text.replaceAll("`","");return`
    1. ${j}
    2. `}).join("")}
    `,y=!0);const D=T.slug(S),q=`${B9}`;return`${L}${q}${E}`}}});const k=o.substring(o.indexOf("---",3)+3),C=aw(k,d);return ve(C,{version:"1.19"})},[d,o]),[u,f]=mw(),h=je(()=>{if(!c)return;const b=document.querySelector(`[id=guide-${u.slice(1)}]`);if(b){const y=b.getBoundingClientRect().top+window.scrollY;window.scrollTo({top:y-68,behavior:"smooth"})}},[c,u]);_e(()=>{h()},[c===void 0,u]);const w=je(b=>{if(!(b.target instanceof HTMLSpanElement))return;const y="#"+b.target.id.replace(/^guide-/,"");r(n,!1,!0),f(y),y===u&&h()},[h,u,n]),[_,p]=vc(),m=je(()=>{const b=`${location.origin}/guides/${e}/?version=${n}`;navigator.clipboard.writeText(b),p()},[e,n]),v=je(b=>{Jr(`/guides/?tags=${b}`)},[]),[x]=J(window.innerWidth>600);return F("main",{children:[F("div",{class:"container guide",children:[F("div",{class:"navigation",children:[F("a",{class:"btn btn-link",href:"/guides/",children:[de.arrow_left,g("span",{children:t("guides.all")})]}),F("a",{class:"btn btn-link",href:"/worldgen/",children:[Hi.worldgen,g("span",{children:t("worldgen")})]}),g("div",{class:"navigation-divider"}),g(se,{icon:_?"check":"link",label:t("share"),onClick:m,active:_,tooltip:t(_?"copied":"copy_share"),class:"guide-share"}),l&&g(da,{value:d,allowed:l,onChange:r})]}),(s==null?void 0:s.tags)&&s.tags.length>0&&g("div",{class:"badges-list",children:s.tags.map(b=>g(Ki,{label:b,active:!0,onClick:()=>v(b)}))}),c&&F(me,{children:[g(Lf,{id:"guide",type:x?"image":"text"}),g("div",{class:"guide-content",dangerouslySetInnerHTML:{__html:c},onClick:w}),g(Md,{})]})]}),g(Fn,{})]})}function j9({}){const{locale:e}=Ee(),{version:t,changeVersion:n}=Dn();hn(e("title.guides"));const[r,i]=J(""),[o,a]=dp(),[s,l]=J(!1),d=Ce(()=>s===!1?Vc():Vc().filter(u=>{var f;return(f=u.versions)==null?void 0:f.includes(t)}),[t,s]),c=Ce(()=>{const u=r.split(" ").map(f=>f.trim().toLowerCase()).filter(f=>f.length>0);return d.filter(f=>{var w;if(!o.every(_=>{var p;return(p=f.tags)==null?void 0:p.includes(_)}))return!1;const h=((w=f.tags)==null?void 0:w.join(" "))+" "+f.title.toLowerCase();return u.every(_=>_.startsWith("!")?_.length===1||!h.includes(_.slice(1)):h.includes(_))})},[d,r,o]);return F("main",{children:[F("div",{class:"container guides",children:[F("div",{class:"navigation",children:[g(fn,{class:"btn btn-input query-search",placeholder:e("guides.search"),value:r,onChange:i}),g(da,{value:s?t:void 0,onChange:u=>{n(u),l(!0)},hasAny:!0,onAny:()=>l(!1)})]}),o.length>0&&g("div",{class:"badges-list",children:o.map(u=>g(Ki,{label:u,onClick:()=>a(u)}))}),g("div",{class:"card-column",children:d.length===0?g(me,{children:g("span",{class:"note",children:e("guides.no_results.version")})}):c.length===0?g(me,{children:g("span",{class:"note",children:e("guides.no_results.query")})}):c.map(u=>g(Go,{id:u.id,activeTags:o,toggleTag:a}))})]}),g(Fn,{})]})}const V9=2,U9=5;function H9({}){const{locale:e}=Ee();hn(e("title.home"));const t=ms("(max-width: 580px)");return g("main",{children:F("div",{class:"container",children:[F("div",{class:"card-group",children:[F("div",{class:"card-column",children:[g(Z9,{}),t&&g(Ku,{}),g(Y9,{}),t&&g(Ju,{}),g(G9,{}),t&&g(Qu,{})]}),!t&&F("div",{class:"card-column",children:[g(Ku,{}),g(Ju,{}),g(Qu,{})]})]}),g(Md,{}),g(Fn,{})]})})}function Z9(){const{locale:e}=Ee();return F(Er,{title:e("generators.popular"),link:"/generators/",children:[g(xn,{minimal:!0,id:"loot_table"}),g(xn,{minimal:!0,id:"advancement"}),g(xn,{minimal:!0,id:"predicate"}),g(Kn,{title:e("worldgen"),link:"/worldgen/",titleIcon:"worldgen"}),g(Kn,{title:e("generators.all"),link:"/generators/",titleIcon:"arrow_right"})]})}function Ku(){const{locale:e}=Ee(),t=Ce(()=>{const n=[];for(const r of He.getGeneratorHistory().reverse())n.includes(r)||n.push(r);return n.slice(0,U9)},[]);return t.lengthg(xn,{minimal:!0,id:n}))})}function Ju(){const{locale:e}=Ee();return F(Er,{title:e("guides"),link:"/guides/",titleIcon:"arrow_right",children:[g(Go,{minimal:!0,id:"adding-custom-structures"}),g(Go,{minimal:!0,id:"noise-router"})]})}function Qu(){const{locale:e}=Ee();return F(Er,{title:e("tools"),children:[g(Kn,{title:"Report Inspector",icon:"report",link:"https://misode.github.io/report/",desc:"Analyse your performance reports"}),g(Kn,{title:"Minecraft Sounds",icon:"sounds",link:"/sounds/",desc:"Browse through and mix all the vanilla sounds"}),g(Kn,{title:"Data Pack Upgrader",link:"https://misode.github.io/upgrader/",desc:"Convert your data packs from 1.16 to 1.19"})]})}function G9(){const{locale:e}=Ee(),{value:t}=Nn(fd,[]),n=Ce(()=>t==null?void 0:t.find(r=>r.type==="release"),[t]);return g(Er,{title:e("versions.minecraft_versions"),link:"/versions/",titleIcon:"arrow_right",children:(t==null?void 0:t[0])&&n&&F(me,{children:[t[0].id!==n.id&&g(Kn,{title:t[0].name,link:`/versions/?id=${t[0].id}`,desc:e("versions.latest_snapshot")}),g(Kn,{title:n.name,link:`/versions/?id=${n.id}`,desc:e("versions.latest_release")})]})})}function Y9(){const{locale:e}=Ee(),t=ms("(min-width: 960px)"),{value:n}=Nn(hd,[]),r=Ce(()=>n==null?void 0:n.sort((i,o)=>o.order-i.order).slice(0,2),[n]);return g(Er,{title:e("changelog"),link:"/changelog/",titleIcon:"git_commit",children:r==null?void 0:r.map(i=>g(q2,{minimal:!t,change:i}))})}function W9({}){const{locale:e}=Ee();return hn(e("title.partners")),F("main",{children:[g("div",{class:"container",children:g(wd,{predicate:t=>t.partner!==void 0})}),g(Fn,{donate:!1})]})}function q9({}){const{locale:e}=Ee(),{version:t,changeVersion:n}=Dn();hn(e("title.sounds"));const[r,i]=J(void 0);_e(()=>{(async()=>{const b=await ye(()=>import("./howler.16819b6c.js").then(function(y){return y.h}),[]);i(()=>y=>new b.Howl(y))})()},[]);const{value:o,error:a}=Nn(async()=>await Aw(t),[t]),s=Ce(()=>Object.keys(o!=null?o:{}),[o]),[l,d]=J(""),[c,u]=J([]),f=()=>{u([{id:zr(),sound:l,delay:0,pitch:1,volume:1},...c])},h=b=>y=>{u(c.map(k=>k.id===b?ge(ge({},k),y):k))},w=b=>()=>{u(c.filter(y=>y.id!==b))},[_,p]=J(0),m=()=>{p(_+1)},v=Re(null),x=()=>{if(!v.current)return;const b=c.some(k=>k.delay>0),y=c.sort((k,C)=>k.delay-C.delay).map(k=>`${b?`execute if score @s delay matches ${k.delay} run `:""}playsound minecraft:${k.sound} master @s ~ ~ ~ ${k.volume} ${k.pitch}`).join(` -`);v.current.setAttribute("href","data:text/plain;charset=utf-8,"+y+"%0A"),v.current.setAttribute("download","sounds.mcfunction"),v.current.click()};return F("main",{children:[a&&g(Mi,{error:a}),s.length>0&&F(me,{children:[F("div",{class:"sounds-controls",children:[F("div",{class:"sound-search-group",children:[g(fn,{class:"btn btn-input sound-search",list:"sound-list",placeholder:e("sounds.search"),value:l,onChange:d,onEnter:f}),g(se,{icon:"plus",tooltip:e("sounds.add_sound"),class:"add-sound",onClick:f})]}),c.length>1&&g(se,{icon:"play",label:e("sounds.play_all"),class:"play-all-sounds",onClick:m}),g("div",{class:"spacer"}),g(se,{icon:"download",label:e("download"),tooltip:e("sounds.download_function"),tooltipLoc:"se",class:"download-sounds",onClick:x}),g(da,{value:t,onChange:n})]}),g("div",{class:"sounds",children:o&&r&&c.map(b=>g(mx,De(ge({},b),{howler:r,sounds:o,delayedPlay:_,onEdit:h(b.id),onDelete:w(b.id)}),b.id))}),g("a",{ref:v,style:"display: none;"}),g("datalist",{id:"sound-list",children:s.map(b=>g("option",{value:b},b))})]}),g(Fn,{donate:!1})]})}function X9({}){const{locale:e}=Ee(),{value:t,error:n}=Nn(fd,[]),[r]=Zr("id"),i=(t!=null?t:[]).find(s=>s.id===r);hn(i?`Minecraft ${i.name}`:"Versions Explorer",i?[]:void 0,i?"Changes and metadata":void 0);const o=i&&ef(t!=null?t:[],i,-1),a=i&&ef(t!=null?t:[],i,1);return F("main",{children:[n&&g(Mi,{error:n}),g("div",{class:"container",children:r?F(me,{children:[F("div",{class:"navigation",children:[g(ho,{link:"/versions/",icon:"three_bars",label:e("versions.all")}),g(ho,{link:a?`/versions/?id=${a.id}`:void 0,icon:"arrow_left",label:e("versions.previous")}),g(ho,{link:o?`/versions/?id=${o.id}`:void 0,icon:"arrow_right",label:e("versions.next"),swapped:!0})]}),g(Dx,{id:r,version:i})]}):g(me,{children:g(Bx,{versions:t,link:s=>`/versions/?id=${s}`,navigation:g(ho,{link:"/changelog",icon:"git_commit",label:e("versions.technical_changes")})})})}),g(Fn,{donate:!1})]})}function ef(e,t,n){const i=e.findIndex(o=>o.id===t.id)+n;if(!(i<0||i>=e.length))return e[i]}function K9({}){const{locale:e}=Ee();return hn(e("title.worldgen")),F("main",{children:[F("div",{class:"container worldgen",children:[F("div",{class:"card-group",children:[F(Er,{title:e("generators.popular"),children:[g(xn,{minimal:!0,id:"dimension"}),g(xn,{minimal:!0,id:"worldgen/biome"}),g(xn,{minimal:!0,id:"worldgen/noise_settings"}),g(xn,{minimal:!0,id:"worldgen/configured_feature"}),g(xn,{minimal:!0,id:"worldgen/placed_feature"})]}),F(Er,{title:e("guides"),link:"/guides/?tags=worldgen",titleIcon:"arrow_right",children:[g(Go,{id:"adding-custom-structures"}),g(Go,{id:"placed-features"})]})]}),g(wd,{predicate:t=>{var n;return(n=t.tags)==null?void 0:n.includes("worldgen")}})]}),g(Fn,{})]})}function J9(){const e=t=>{window.dispatchEvent(new CustomEvent("replacestate")),setTimeout(()=>Te.pageview(xr(t.url)))};return F(me,{children:[g(gx,{}),F(Qn,{onChange:e,children:[g(H9,{path:"/"}),g(Vx,{path:"/generators"}),g(K9,{path:"/worldgen"}),g(W9,{path:"/partners"}),g(q9,{path:"/sounds"}),g(zx,{path:"/changelog"}),g(X9,{path:"/versions"}),g(j9,{path:"/guides"}),g(z9,{path:"/guides/:id"}),g(jx,{default:!0})]})]})}function Q9(){return g(Kw,{children:g(Ww,{children:g(Jw,{children:g(nv,{children:g(ev,{children:g(Xw,{children:g(J9,{})})})})})})})}Ur(g(Q9,{}),document.body);export{iy as a,Rc as b,So as c,b7 as d,b2 as e,ts as f,y7 as g,ay as h,S2 as i,ry as j,M2 as k,I7 as l,pu as m,E7 as n,S7 as o,ny as p,A7 as q,oy as r,I2 as s,Ts as t,pa as u,P as v}; -//# sourceMappingURL=index.41a3dfd7.js.map diff --git a/assets/index.41a3dfd7.js.map b/assets/index.41a3dfd7.js.map deleted file mode 100644 index 57be701d..00000000 --- a/assets/index.41a3dfd7.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"mappings":"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EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAChJ,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAC9I,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,GAAI,EAC9I,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAC9I,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAC/I,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,IAAK,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAC/I,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EACjJ,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,GAC/I,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAC7I,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAC/I,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,IAC7I,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,GAChJ,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAC/I,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAC/I,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,IAAK,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAC/I,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAC9I,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAC9I,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAC/I,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAChJ,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EACjJ,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EACjJ,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAChJ,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EACjJ,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,IAAK,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EACjJ,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAC/I,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,GAAI,EAAG,GAAI,EACjJ,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EACjJ,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EACjJ,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EACjJ,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EACjJ,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EACjJ,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAChJ,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,IAAK,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAChJ,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAChJ,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,I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","names":["p","n","l","u","i","t","o","r","f","e","c","s","y","k","b","g","a","j","z","d","x","P","N","M","A","H","$","T","I","_","O","w","L","C","h","v","S","q","m","rank","toChildArray","this$1","assign","cloneElement","Component","createElement","Analytics","ID_SITE","ID_GENERATOR","category","action","label","ga","dimension","index","value","page","pageview","generatorEvent","method","locale","DIM_LANGUAGE","gtag","setLocale","prev_locale","changeLocale","theme","DIM_THEME","setTheme","prev_theme","changeTheme","version","DIM_VERSION","setVersion","selected_version","setSelectedVersion","prev_version","changeVersion","file_type","DIM_GENERATOR","setGenerator","prefers_color_scheme","DIM_PREFERS_COLOR_SCHEME","setPrefersColorScheme","tree_view_mode","setTreeViewMode","history","event","resetGenerator","legacyMethod","undoGenerator","redoGenerator","file_name","loadPreset","openPreset","snippet_id","data_size","compressed_size","compression_rate","createSnippet","openSnippet","copyOutput","downloadOutput","showOutput","hideOutput","showPreview","hidePreview","projects_count","project_size","showProject","hideProject","saveProjectFile","deleteProjectFile","renameProjectFile","deleteProject","Fragment","jsx","jsxs","jsxRuntime.jsx","jsxRuntime.jsxs","jsxRuntime.Fragment","type","id","useEffect","getElementById","remove","window","ethicalads","load","_jsx","icon","active","class","clazz","tooltip","tooltipLoc","onClick","disabled","undefined","Octicon","Path_1","Errors_1","escapeString","hexId","DataModel_1","require$$0","require$$1","utils_1","require$$2","BooleanNode_1","Node_1","ListNode_1","SwitchNode_1","MapNode_1","require$$3","require$$4","Reference_1","StringNode_1","isEnum","this","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","MAX_BITS","D_CODES","BL_CODES","LENGTH_CODES","LITERALS","L_CODES","HEAP_SIZE","END_BLOCK","MAX_BL_BITS","REP_3_6","REPZ_3_10","REPZ_11_138","Buf_size","Z_DEFAULT_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_DEFAULT_STRATEGY","Z_NO_FLUSH","Z_PARTIAL_FLUSH","Z_FULL_FLUSH","Z_FINISH","Z_OK","Z_STREAM_END","Z_NEED_DICT","Z_STREAM_ERROR","Z_DATA_ERROR","Z_BUF_ERROR","_dist_code","Tree","MAX_MEM_LEVEL","DEF_MEM_LEVEL","STORED","Config","PRESET_DICT","INIT_STATE","BUSY_STATE","FINISH_STATE","Z_DEFLATED","STORED_BLOCK","STATIC_TREES","DYN_TREES","MIN_MATCH","MAX_MATCH","MIN_LOOKAHEAD","smaller","ZStream","Deflate","getMaximumCompressedSize","Z_MEM_ERROR","LEN","LENEXT","DIST","DISTEXT","COPY","LIT","TYPE","LENS","TABLE","CODES","DONE","BAD","mark","Inflate","config","table","concat","createKeys","createCodec","getDataView","getOptionValue","setUint32","configureWebWorker","common","isObject","YAMLException","Mark","Type","Schema","map","json","core","_require","require","_hasOwnProperty","_toString","DEFAULT_SAFE_SCHEMA","DEFAULT_FULL_SCHEMA","State","loader","dumper","jsYaml","deprecated","obj","toString","padStart","length","arr","Uint8Array","crypto","getRandomValues","Array","from","decToHex","join","BigInt","Math","floor","random","Number","MAX_SAFE_INTEGER","replace","model","seed","dimensions","get","Path","set","Object","keys","forEach","abs","imul","charCodeAt","url","replaceAll","searchIndex","indexOf","slice","cleanUrl","trimmedUrl","getPath","generators","find","path","search","hash","location","pathname","startsWith","route","source","data","yaml","substring","content","cursor","start","end","findMatchingClose","vStart","sub","vEnd","trim","key","versionConfig","versions","pack_format","depth","iteration","close","open","console","warn","str","hashString","color","isArray","hex","num","parseInt","max","min","lerp","Error","message","deepClone","rfdc","constructor","deepEqual","valueOf","prototype","hasOwnProperty","call","BiMap","forward","Map","backward","getA","getB","getOrPut","defaultValue","computeIfAbsent","newValue","file","predicate","buffer","File","arrayBuffer","entries","reader","zip","Blob","getEntries","Promise","all","filter","directory","filename","writer","getData","name","add","getter","existing","large","larger","doSelect","placeholder","dataList","onChange","onInput","target","ref","useRef","current","select","dataListId","stopPropagation","link","swapped","href","_jsxs","cooldown","invert","initial","setActive","useState","timeout","clearTimeout","setTimeout","fn","inputs","initialState","loading","state","callback","useAsyncFn","refresh","AsyncCancel","Symbol","setState","isMounted","lastCallId","useCallback","args","callId","prev","then","error","size","draw","onDrag","onHover","onLeave","canvas","dragStart","dragRequest","dragPending","dragBusy","onMouseDown","offsetX","offsetY","onMouseMove","clientWidth","clientHeight","dx","dy","cancelAnimationFrame","requestAnimationFrame","onMouseUp","onMouseLeave","addEventListener","body","removeEventListener","redraw","redrawCount","ctx","getContext","width","height","img","getImageData","ownCount","putImageData","LOSE_FOCUS","hider","setHash","changeHash","newHash","parse","stringify","raw","localStorage","getItem","setter","removeItem","setItem","query","prefers","setPrefers","matchMedia","matches","mediaQuery","invalidated","listener","addListener","removeListener","getValue","param","URLSearchParams","setValue","changeValue","params","delete","TAG_KEY","TAG_SEP","tags","setTags","useSearchParam","activeTags","useMemo","split","tag","force","includes","sort","props","relative","children","useFocus","title","overlay","onDismiss","stackVisible","setStackVisible","stack","setStack","line","mapStackTrace","mapped","mappedStack","encodeURIComponent","info","ARTICLE_PREFIX","ARTICLE_OVERRIDES","override","match","CACHE_NAME","CACHE_LATEST_VERSION","CACHE_PATCH","latestVersion","__LATEST_VERSION__","mcmetaUrl","mcmetaTarballUrl","changesUrl","tarball","dynamic","applyPatches","deleteMatching","versionId","collectionTarget","blockStateTarget","JSON","validateCache","fetchRegistries","fetchBlockStateMap","debug","cachedFetch","mcmeta","register","properties","default","registry","res","fetch","models","uvMapping","atlas","fetchAllPresets","loadImage","src","image","Image","onload","crossOrigin","changes","fetchVersions","versionMap","order","REFRESHED","Set","decode","cache","caches","cacheResponse","has","fetchAndCache","ok","fetchResponse","fetchData","fetchClone","clone","put","promises","request","push","PATCHES","patch","toFixed","ID","schemas","collections","Reference","RawReference","bind","StringNode","RawStringNode","Tag","ChoiceNode","node","validator","pool","allowTag","change","ListNode","choiceContext","ObjectNode","area_condition","position_predicates","Opt","growth_chance","NumberNode","growth_for_face","direction","enum","weight","integer","growth","owners","replacing_target","target_self","BooleanNode","destroy_target","context","Switch","Case","generate_if_not_too_many","radiusX","radiusY","radiusZ","requiredAmount","yOffset","must_have","must_not_have","neighbor_based_generation","required_amount","directions","block","above_block","Name","Properties","MapNode","predicate_type","biome_match","biomes","day_test","day","nand","predicates","precipitation_test","precipitation","temperature_range","use_local_pos","block_state","probability","blocks","fluid","disableSwitchContext","initImmersiveWeathering","VersionIds","DEFAULT_VERSION","Versions","Models","versionGetter","CachedDecorator","CachedFeature","CachedCollections","mcschema","getCollections","blockStates","getSchemas","initPartners","versionData","getVersion","schemaName","schema","DataModel","wrapLists","reset","validate","err","minVersionId","maxVersionId","findIndex","minVersion","maxVersion","API_PREFIX","ShareCache","jsonData","show_preview","lz","compressToBase64","snippet","fetchApi","compressed","rate","decompressFromBase64","headers","errors","INDENTS","tabs","minified","commentJson","FORMATS","dump","flowLevel","indent","format","Store","getFormat","getIndent","ID_LANGUAGE","ID_THEME","ID_VERSION","ID_INDENT","ID_FORMAT","ID_HIGHLIGHTING","ID_SOUNDS_VERSION","ID_PROJECTS","ID_BACKUPS","ID_PROJECT_PANEL_OPEN","ID_OPEN_PROJECT","ID_TREE_VIEW_MODE","ID_GENERATOR_HISTORY","getLanguage","getTheme","getVersionOrDefault","getHighlighting","getSoundsVersion","projects","DRAFT_PROJECT","getProjects","backups","getBackup","getProjectPanelOpen","getOpenProject","getTreeViewMode","getGeneratorHistory","language","setLanguage","setIndent","setFormat","highlighting","setHighlighting","setSoundsVersion","setProjects","setBackup","setProjectPanelOpen","projectName","setOpenProject","mode","visitGenerator","Locale","createContext","lang","Locales","fallback","English","en","resolveLocaleParams","langConfig","languages","code","partners","useContext","localize","newLang","loadLocale","namespace","files","FilePatterns","RegExp","Project","project","createProject","changeProject","updateProject","updateFile","openFile","closeFile","setProjectName","fileId","setFileId","changeProjects","edits","newId","exists","some","gen","biomeColors","setBiomeColor","setBiomeColors","useLocalStorage","biome","Theme","actualTheme","prefersLight","useMediaQuery","prefersDark","documentElement","setAttribute","newTheme","VERSIONS_IN_TITLE","Title","changeTitle","suffix","useLocale","setTitle","versionIds","titleSuffix","titleVersions","document","VERSION_PARAM","Version","changeTargetVersion","targetVersion","newVersion","store","updateSearch","accept","fileUpload","onUpload","onDrop","preventDefault","dataTransfer","donate","heart","mark_github","component","evt","onKeyDown","onEnter","onCancel","autofocus","displayName","TextInput","BaseInput","NumberInput","RangeInput","values","onSelect","searchPlaceholder","noResults","setSearch","results","terms","every","MODALS_KEY","addCurrentModals","dispatchEvent","Event","bubbles","diff","newModals","currentModals","getAttribute","removeAttribute","onClose","useProject","doSave","unwrapLists","minimal","partner","Icons","checkVersion","noPath","useVersion","versionFilter","setVersionFiler","versionedGenerators","filteredGenerators","toLowerCase","HASH","COMMENT","crypt","cryptModule","md5","md5Module","NoiseChunkGenerator","glMatrix.ARRAY_TYPE","glMatrix.EPSILON","vec3.create","vec3.transformMat4","mat4.create","mat4.identity","vec3.fromValues","mat4.translate","mat4.rotate","glMatrix.toRadian","mat4.scale","vec3.negate","Renderer","mat4.perspective","vec3.subtract","vec3.cross","vec3.normalize","mat4.ortho","DYNAMIC_REGISTRIES","Deepslate","deepslate19","deepslateCache","chunksCache","biomeCache","presetCache","loadVersion","loadedVersion","applyProjectData","loadingVersion","loadingPromise","doLoadVersion","cachedDeepslate","Registry","REGISTRY","Identifier","WorldgenRegistries","NOISE","NoiseParameters","fromJson","DENSITY_FUNCTION","DensityFunction","clear","loadChunkGenerator","settings","biomeState","newCacheState","cacheState","noiseSettings","createNoiseSettings","biomeSource","createBiomeSource","chunkGenerator","isVersion","settingsCache","noise","generatorCache","randomStateCache","RandomState","biomeSourceCache","getBiome","preset","computeIfAbsentAsync","fetchPreset","generator","biome_source","BiomeSource","root","FixedBiome","shift","scale","numBiomes","_y","parameters","Climate","Parameters","ParamPoint","multiNoise","MultiNoise","sampler","router","NoiseRouter","create","temperature","Noise","Noises","TEMPERATURE","vegetation","VEGETATION","continents","CONTINENTALNESS","erosion","EROSION","ridges","RIDGE","Sampler","fromRouter","withSettings","noiseSampler","NoiseSampler","NoiseSettings","sample","firstOctave","clamp","NormalNoise","LegacyRandom","minDist","Infinity","minBiome","dist","square","altitude","humidity","weirdness","offset","NOISE_SETTINGS","getOrThrow","NoiseGeneratorSettings","generateChunks","minX","minY","ceil","cached","pos","chunk","Chunk","ChunkPos","Z","fill","buildSurface","fillBiomes","maxX","minZ","maxZ","step","quartY","minQuartX","maxQuartX","minQuartZ","maxQuartZ","countX","countZ","biomeIds","Int8Array","biomeId","posKey","DEBUG","computeDebugBiome","computeBiome","palette","loadDensityFunction","xzSize","ySize","noiseRouter","finalDensity","randomState","XoroshiroRandom","forkPositional","min_y","size_horizontal","size_vertical","sampling","xz_scale","y_scale","xz_factor","y_factor","bottom_slide","top_slide","terrain_shaper","factor","jaggedness","originalFn","mapAll","Visitor","getNoiseSettings","getBlockState","minBlockX","maxBlockX","BlockPos","DEEPSLATE","noiseColumnCache","minLimitPerlinNoise","PerlinNoise","maxLimitPerlinNoise","mainPerlinNoise","depthNoise","xOffset","chunkWidth","chunkHeight","chunkCountY","amplified","biomeDepth","biomeScale","iterateNoiseColumn","cx","ox","noise1","fillNoiseColumn","noise2","yy","oy","lerp2","cachedColumn","xzScale","yScale","xzFactor","yFactor","randomDensity","random_density_offset","getRandomDensity","sampleAndClampNoise","getOctaveNoise","zo","falloff","density","density_factor","density_offset","clampedLerp","x2","wrap","y2","z2","minLimitNoise","maxLimitNoise","mainNoise","colors","options","getProjectData","BlockState","AIR","getName","OldNoiseChunkGenerator","row","reverse","getColor","compute","clampedMap","fromEntries","resources","quartStep","round","quartWidth","centerX","centerZ","getBiomeColor","xx","zz","log","VanillaColors","stringToColor","terrain","featureColors","placements","features","biomeInfoNoise","fork","seaLevel","nextFloat","nextInt","nextGaussian","sqrt","cos","PI","sampleInt","modifyPlacement","placement","feature","base","spread","normalize","min_inclusive","max_inclusive","normal","mean","deviation","totalWeight","distribution","reduce","sum","anchor","_ctx","absolute","above_bottom","below_top","resolveAnchor","inner","n1","n2","plateau","useFeature","featureFn","Features","decorator","decoratorFn","Decorators","decorated","positions","getPositions","getPlacements","random_boolean_selector","feature_true","feature_false","random_selector","chance","simple_random_selector","count","count_extra","extra_chance","extra_count","count_multilayer","count_noise","noise_level","below_noise","above_noise","count_noise_biased","noise_factor","noise_offset","noise_to_count_ratio","dark_oak_tree","_config","outer","flatMap","depth_average","baseline","decorateY","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","modifier","PlacementModifiers","count_on_every_layer","environment_scan","height_range","sampleHeight","in_square","noise_based_count","noise_threshold_count","random_offset","xz_spread","y_spread","rarity_filter","oz","BiomeSourcePreview","shown","setSeed","randomSeed","setScale","setYOffset","focused","setFocused","useStore","refineTimeout","hasRandomness","useCanvas","biomeMap","changeScale","newScale","toUpperCase","DecoratorPreview","DensityFunctionPreview","autoScroll","setAutoScroll","scrollInterval","densityFunction","worldX","worldY","clearInterval","setInterval","NoisePreview","NoiseSettingsPreview","setBiome","setBiomeScale","setBiomeDepth","getNoiseBlock","allBiomes","HasPreview","setCount","useModel","_Fragment","endsWith","setName","setNamespace","setFile","creating","setCreating","projectUpdater","onCreate","readZip","entry","disectFilePath","parseSource","catch","invalidName","invalidNamespace","issue_opened","SEPARATOR","selected","actions","roots","groups","rootActions","onAction","rootErrors","leaves","hidden","setHidden","toggle","er","setFocus","onRename","onDeleteProject","treeViewMode","changeTreeViewMode","disectEntry","getFilePath","selectFile","download","onDownload","hasPack","stringifySource","pack","description","writeZip","click","hook","transformOutput","ModelPath","choice","switchNode","list","getOwnPropertySymbols","blockState","validation","relativePath","object","getActiveFields","activeFields","enabled","out","doCopy","doDownload","doImport","copySuccess","onError","braceLoaded","setBraceLoaded","retransform","onImport","textarea","editor","getSerializedOutput","getOutput","output","configure","brace","braceEditor","edit","setOptions","fontSize","showFoldWidgets","highlightSelectedWord","$blockScrolling","on","getSession","setMode","setOption","getSourceIndent","selectAll","clipboard","writeText","fileName","changeIndent","changeFormat","changeHighlighting","getSourceIndents","getSourceFormats","Resources","fetchResources","ResourceManager","RENDER_SIZE","ItemRenderCache","item","cache_key","promise","getResources","gl","preserveDrawingBuffer","renderer","ItemRenderer","drawItem","toDataURL","textureAtlas","blockModels","TextureAtlas","empty","loadBlockModels","loadBlockAtlas","getBlockModel","getTextureUV","getTextureAtlas","BlockModel","flatten","textures","atlasCanvas","upperPowerOfTwo","drawImage","imageData","idMap","du","dv","dv2","alert","archive","arrow_left","arrow_right","check","chevron_down","chevron_left","chevron_right","chevron_up","clippy","codescan_checkmark","dash","device_desktop","dot_fill","duplicate","eye","eye_closed","file_directory","file_zip","gear","git_commit","globe","kebab_horizontal","link_external","moon","package","pencil","play","plus","plus_circle","repo","rocket","rows","sort_asc","sort_desc","square_fill","sun","sync","terminal","three_bars","trashcan","unfold","upload","x_circle","errored","setErrored","useAsync","texturePath","getAssetUrl","modelPath","renderItem","ModelWrapper","mapper","silent","selectRegistries","hiddenFields","flattenedFields","inlineFields","nbtFields","fixedLists","collapsedFields","collapsableFields","findGenerator","keysModel","historyMax","prefix","renderHtml","boolean","states","choices","activeCase","contextPath","getModel","getArray","choiceContextPath","def","inject","pathLocale","contextPush","expand","collapse","isToggled","useToggles","maxShown","setMaxShown","maxLength","modelPush","child","onAdd","onAddBottom","cValue","cId","cPath","canToggle","onRemove","onMoveUp","onMoveDown","splice","keyPath","keysSchema","last","cSchema","number","getChildModelPath","isDecorated","wrapper","fields","createDecoratorsWrapper","optional","onExpand","onCollapse","toggled","expanded","newCtx","pools","loot","cPrefix","cSuffix","cBody","isFlattened","isInlined","string","toggleState","setToggleState","toggleAll","setToggleAll","ctrlKey","parsed","parseFloat","onColor","newSeed","getValues","additional","fullId","datalistId","rgbToHex","hexToRgb","currentTarget","generateUUID","onContextMenu","navigator","MemoedTreeNode","memo","TreeNode","next","equals","chr","result","nested","withModel","getAll","popupIcon","popup","originalFields","decorators","iterateNestedDecorators","featurePath","decoratorsPath","modelArr","newDecorators","newPath","produceNestedDecorators","useErrorBoundary","term","useTheme","themeSuffix","themeUrl","protocol","host","GiscusReact","__GUIDES__","guide","getGuides","toggleTag","getGuide","onToggleTag","stopImmediatePropagation","Themes","system","dark","light","changeLanguage","useTitle","getCurrentUrl","getGenerator","home","th","TAG","STRUCTURE","report","sounds","advancement","block_definition","chat_type","dimension_type","font","item_modifier","loot_table","pack_mcmeta","recipe","text_component","world","worldgen","howler","sound","delay","pitch","volume","onEdit","onDelete","delayedPlay","setLoading","playing","setPlaying","invalid","setInvalid","howls","command","soundEvent","stop","soundPath","getSoundUrl","howl","completed","copyActive","setCopyActive","copyTimeout","copy","desc","titleIcon","unescape","escape","group","__html","marked","SEARCH_KEY","defaultOrder","limit","navigation","useTags","filteredChangelogs","setSort","sortedChangelogs","limitActive","setLimitActive","limitedChangelogs","hiddenChanges","tab","setTab","fetchChangelogs","articleLink","getArticleLink","releaseDate","release_target","data_version","protocol_version","data_pack_version","resource_pack_version","Date","release_time","toLocaleDateString","month","year","INCLUDE_SNAPSHOTS","snapshots","setSnapshots","filteredVersions","compact","allowed","hasAny","onAny","SHARE_KEY","setError","errorBoundary","errorRetry","allowedVersions","currentPreset","setCurrentPreset","sharedSnippetId","setSharedSnippetId","ignoreChange","backup","loadBackup","getSnippet","cancel","snippetGen","previewShown","setPreviewShown","setSourceShown","getBlockStates","historyIndex","undo","redo","onKeyUp","setFileSaving","presets","setPresets","selectPreset","selectVersion","shareUrl","setShareUrl","shareShown","setShareShown","shareCopyActive","shareCopySuccess","useActiveTimeout","share","origin","shareSnippet","copySharedId","sourceShown","innerWidth","setCopy","setDownload","setImport","copySource","downloadSource","importSource","toggleSource","hasPreview","actionsShown","togglePreview","projectShown","setProjectShown","toggleProjectShown","projectCreating","setProjectCreating","projectDeleting","setprojectDeleting","fileSaving","fileRenaming","setFileRenaming","hljs","registerLanguage","use","highlight","text","frontMatter","parseFrontMatter","orderedVersions","guideVersion","html","headings","insertedToc","extensions","level","tokenizer","token","walkTokens","title2","heading","slugger","toc","slug","dryrun","versionedContent","versionContent","useHash","scrollToHeading","querySelector","top","getBoundingClientRect","scrollY","scrollTo","behavior","clickGuideContent","HTMLSpanElement","targetHash","shareActive","shareSuccess","onShare","onClickTag","largeWidth","versionedGuides","filteredGuides","MIN_FAVORITES","MAX_FAVORITES","smallScreen","favorites","release","hugeScreen","latestChanges","setHowler","Howl","fetchSounds","soundKeys","configs","setConfigs","addConfig","editConfig","deleteConfig","setDelayedPlay","playAll","downloadFunction","hasDelay","selectedId","nextVersion","getOffsetVersion","previousVersion","offsetIndex","currentIndex","changeRoute","CustomEvent","Changelog","Guides","render"],"sources":["../../vite/modulepreload-polyfill","../../node_modules/preact/dist/preact.module.js","../../node_modules/preact-router/dist/preact-router.es.js","../../src/app/Analytics.ts","../../node_modules/preact/hooks/dist/hooks.module.js","../../node_modules/preact/jsx-runtime/dist/jsxRuntime.js","../../preact/jsx-runtime","../../src/app/components/Ad.tsx","../../src/app/components/Btn.tsx","../../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/@zip.js/zip.js/lib/core/codecs/deflate.js","../../node_modules/@zip.js/zip.js/lib/core/codecs/inflate.js","../../node_modules/@zip.js/zip.js/lib/core/configuration.js","../../node_modules/@zip.js/zip.js/lib/core/util/mime-type.js","../../node_modules/@zip.js/zip.js/lib/core/codecs/crc32.js","../../node_modules/@zip.js/zip.js/lib/core/util/encode-text.js","../../node_modules/@zip.js/zip.js/lib/core/codecs/sjcl.js","../../node_modules/@zip.js/zip.js/lib/core/codecs/aes-crypto.js","../../node_modules/@zip.js/zip.js/lib/core/codecs/zip-crypto.js","../../node_modules/@zip.js/zip.js/lib/core/codecs/codec.js","../../node_modules/@zip.js/zip.js/lib/core/codecs/codec-pool-worker.js","../../node_modules/@zip.js/zip.js/lib/core/codecs/codec-pool.js","../../node_modules/@zip.js/zip.js/lib/z-worker-inline.js","../../node_modules/@zip.js/zip.js/lib/core/io.js","../../node_modules/@zip.js/zip.js/lib/core/constants.js","../../node_modules/@zip.js/zip.js/lib/core/util/cp437-decode.js","../../node_modules/@zip.js/zip.js/lib/core/util/decode-text.js","../../node_modules/@zip.js/zip.js/lib/core/engine.js","../../node_modules/@zip.js/zip.js/lib/core/zip-entry.js","../../node_modules/@zip.js/zip.js/lib/core/zip-reader.js","../../node_modules/@zip.js/zip.js/lib/core/zip-writer.js","../../node_modules/@zip.js/zip.js/lib/zip-fs.js","../../node_modules/@zip.js/zip.js/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/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/schema/failsafe.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/merge.js","../../node_modules/js-yaml/lib/js-yaml/type/binary.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/regexp.js","../../node_modules/js-yaml/lib/js-yaml/type/js/function.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/rfdc/index.js","../../src/app/Utils.ts","../../src/app/components/BtnInput.tsx","../../src/app/components/BtnLink.tsx","../../src/app/hooks/useActiveTimout.ts","../../src/app/hooks/useAsync.ts","../../src/app/hooks/useAsyncFn.ts","../../src/app/hooks/useCanvas.ts","../../src/app/hooks/useFocus.ts","../../src/app/hooks/useHash.ts","../../src/app/hooks/useLocalStorage.ts","../../src/app/hooks/useMediaQuery.ts","../../src/app/hooks/useModel.ts","../../src/app/hooks/useSearchParam.ts","../../src/app/hooks/useTags.ts","../../src/app/components/BtnMenu.tsx","../../src/app/components/Card.tsx","../../vite/preload-helper","../../src/app/components/ErrorPanel.tsx","../../src/app/services/Article.ts","../../src/app/services/DataFetcher.ts","../../src/app/partners/ImmersiveWeathering.ts","../../src/app/partners/index.ts","../../src/app/services/Schemas.ts","../../node_modules/lz-string/libs/lz-string.js","../../src/app/services/Sharing.ts","../../src/app/services/Source.ts","../../src/app/Store.ts","../../src/app/contexts/Locale.tsx","../../src/app/contexts/Project.tsx","../../src/app/contexts/Store.tsx","../../src/app/contexts/Theme.tsx","../../src/app/contexts/Title.tsx","../../src/app/contexts/Version.tsx","../../src/app/components/FileUpload.tsx","../../src/app/components/Footer.tsx","../../src/app/components/forms/Checkbox.tsx","../../src/app/components/forms/Input.tsx","../../src/app/components/forms/SearchList.tsx","../../src/app/components/Modal.tsx","../../src/app/components/generator/FileCreation.tsx","../../src/app/components/generator/FileRenaming.tsx","../../src/app/components/generator/GeneratorCard.tsx","../../src/app/components/generator/GeneratorList.tsx","../../node_modules/deepslate/lib/core/Direction.js","../../node_modules/deepslate/lib/core/BlockPos.js","../../node_modules/pako/dist/pako.esm.mjs","../../node_modules/deepslate/lib/nbt/TagUtils.js","../../node_modules/deepslate/lib/util/Json.js","../../node_modules/deepslate/lib/util/Util.js","../../node_modules/deepslate/lib/core/Identifier.js","../../node_modules/deepslate/lib/core/BlockState.js","../../node_modules/deepslate/lib/core/PalettedContainer.js","../../node_modules/deepslate/lib/core/ChunkSection.js","../../node_modules/deepslate/lib/core/Chunk.js","../../node_modules/deepslate/lib/core/ChunkPos.js","../../node_modules/deepslate/lib/core/Holder.js","../../node_modules/deepslate/lib/core/Registry.js","../../node_modules/deepslate/lib/core/Structure.js","../../node_modules/deepslate/lib/math/Util.js","../../node_modules/deepslate/lib/math/CubicSpline.js","../../node_modules/crypt/crypt.js","../../node_modules/charenc/charenc.js","../../node_modules/is-buffer/index.js","../../node_modules/md5/md5.js","../../node_modules/deepslate/lib/math/random/LegacyRandom.js","../../node_modules/deepslate/lib/math/random/XoroshiroRandom.js","../../node_modules/deepslate/lib/math/noise/SimplexNoise.js","../../node_modules/deepslate/lib/math/noise/ImprovedNoise.js","../../node_modules/deepslate/lib/math/noise/PerlinNoise.js","../../node_modules/deepslate/lib/math/noise/BlendedNoise.js","../../node_modules/deepslate/lib/math/noise/NormalNoise.js","../../node_modules/deepslate/lib/math/noise/PerlinSimplexNoise.js","../../node_modules/deepslate/lib/worldgen/NoiseRouter.js","../../node_modules/deepslate/lib/worldgen/NoiseSettings.js","../../node_modules/deepslate/lib/worldgen/VerticalAnchor.js","../../node_modules/deepslate/lib/worldgen/SurfaceSystem.js","../../node_modules/deepslate/lib/worldgen/NoiseGeneratorSettings.js","../../node_modules/deepslate/lib/worldgen/WorldgenRegistries.js","../../node_modules/deepslate/lib/worldgen/DensityFunction.js","../../node_modules/deepslate/lib/worldgen/Aquifer.js","../../node_modules/deepslate/lib/worldgen/biome/CheckerboardBiomeSource.js","../../node_modules/deepslate/lib/worldgen/biome/FixedBiomeSource.js","../../node_modules/deepslate/lib/worldgen/biome/Climate.js","../../node_modules/deepslate/lib/worldgen/biome/MultiNoiseBiomeSource.js","../../node_modules/deepslate/lib/worldgen/biome/TheEndBiomeSource.js","../../node_modules/deepslate/lib/worldgen/biome/BiomeSource.js","../../node_modules/deepslate/lib/worldgen/NoiseChunk.js","../../node_modules/deepslate/lib/worldgen/NoiseChunkGenerator.js","../../node_modules/deepslate/lib/render/BlockColors.js","../../node_modules/gl-matrix/esm/common.js","../../node_modules/gl-matrix/esm/mat4.js","../../node_modules/gl-matrix/esm/vec3.js","../../node_modules/deepslate/lib/render/Cull.js","../../node_modules/deepslate/lib/render/Util.js","../../node_modules/deepslate/lib/render/BlockModel.js","../../node_modules/deepslate/lib/render/ShaderProgram.js","../../node_modules/deepslate/lib/render/Renderer.js","../../node_modules/deepslate/lib/render/ItemRenderer.js","../../node_modules/deepslate/lib/render/TextureAtlas.js","../../node_modules/deepslate/lib/worldgen/RandomState.js","../../src/app/previews/Deepslate.ts","../../src/app/previews/noise/NoiseChunkGenerator.ts","../../src/app/previews/NoiseSettings.ts","../../src/app/previews/BiomeSource.ts","../../src/app/previews/Decorator.ts","../../src/app/previews/NormalNoise.ts","../../src/app/components/previews/BiomeSourcePreview.tsx","../../src/app/components/previews/DecoratorPreview.tsx","../../src/app/components/previews/DensityFunctionPreview.tsx","../../src/app/components/previews/NoisePreview.tsx","../../src/app/components/previews/NoiseSettingsPreview.tsx","../../src/app/components/generator/PreviewPanel.tsx","../../src/app/components/generator/ProjectCreation.tsx","../../src/app/components/generator/ProjectDeletion.tsx","../../src/app/components/TreeView.tsx","../../src/app/components/generator/ProjectPanel.tsx","../../src/app/schema/transformOutput.ts","../../src/app/components/generator/SourcePanel.tsx","../../node_modules/preact/compat/dist/compat.module.js","../../src/app/services/Resources.ts","../../src/app/components/Octicon.tsx","../../src/app/components/ItemDisplay.tsx","../../src/app/schema/ModelWrapper.ts","../../src/app/schema/renderHtml.tsx","../../src/app/components/generator/Tree.tsx","../../node_modules/@giscus/react/dist/index.es.js","../../src/app/components/Giscus.tsx","../../src/app/services/Guides.ts","../../src/app/components/GuideCard.tsx","../../src/app/components/Header.tsx","../../src/app/components/Icons.tsx","../../src/app/components/sounds/SoundConfig.tsx","../../src/app/components/ToolCard.tsx","../../src/app/components/ToolGroup.tsx","../../src/app/components/Badge.tsx","../../node_modules/marked/lib/marked.esm.js","../../src/app/components/versions/ChangelogEntry.tsx","../../src/app/components/versions/ChangelogList.tsx","../../src/app/components/versions/VersionDetail.tsx","../../src/app/components/versions/VersionEntry.tsx","../../src/app/components/versions/VersionList.tsx","../../src/app/components/versions/VersionMetaData.tsx","../../src/app/components/VersionSwitcher.tsx","../../src/app/pages/Changelog.tsx","../../src/app/pages/Generator.tsx","../../src/app/pages/Generators.tsx","../../node_modules/highlight.js/lib/core.js","../../node_modules/highlight.js/es/languages/json.js","../../src/app/pages/Guide.tsx","../../src/app/pages/Guides.tsx","../../src/app/pages/Home.tsx","../../src/app/pages/Partners.tsx","../../src/app/pages/Sounds.tsx","../../src/app/pages/Versions.tsx","../../src/app/pages/Worldgen.tsx","../../src/app/App.tsx","../../src/app/Main.tsx"],"sourcesContent":["const p = function polyfill() {\n const relList = document.createElement('link').relList;\n if (relList && relList.supports && relList.supports('modulepreload')) {\n return;\n }\n for (const link of document.querySelectorAll('link[rel=\"modulepreload\"]')) {\n processPreload(link);\n }\n new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n if (mutation.type !== 'childList') {\n continue;\n }\n for (const node of mutation.addedNodes) {\n if (node.tagName === 'LINK' && node.rel === 'modulepreload')\n processPreload(node);\n }\n }\n }).observe(document, { childList: true, subtree: true });\n function getFetchOpts(script) {\n const fetchOpts = {};\n if (script.integrity)\n fetchOpts.integrity = script.integrity;\n if (script.referrerpolicy)\n fetchOpts.referrerPolicy = script.referrerpolicy;\n if (script.crossorigin === 'use-credentials')\n fetchOpts.credentials = 'include';\n else if (script.crossorigin === 'anonymous')\n fetchOpts.credentials = 'omit';\n else\n fetchOpts.credentials = 'same-origin';\n return fetchOpts;\n }\n function processPreload(link) {\n if (link.ep)\n // ep marker = processed\n return;\n link.ep = true;\n // prepopulate the load record\n const fetchOpts = getFetchOpts(link);\n fetch(link.href, fetchOpts);\n }\n};__VITE_IS_MODERN__&&p();","var n,l,u,i,t,o,r,f,e={},c=[],s=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function a(n,l){for(var u in l)n[u]=l[u];return n}function h(n){var l=n.parentNode;l&&l.removeChild(n)}function v(l,u,i){var t,o,r,f={};for(r in u)\"key\"==r?t=u[r]:\"ref\"==r?o=u[r]:f[r]=u[r];if(arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),\"function\"==typeof l&&null!=l.defaultProps)for(r in l.defaultProps)void 0===f[r]&&(f[r]=l.defaultProps[r]);return y(l,f,t,o,null)}function y(n,i,t,o,r){var f={type:n,props:i,key:t,ref:o,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==r?++u:r};return null==r&&null!=l.vnode&&l.vnode(f),f}function p(){return{current:null}}function d(n){return n.children}function _(n,l){this.props=n,this.context=l}function k(n,l){if(null==l)return n.__?k(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l0?y(_.type,_.props,_.key,null,_.__v):_)){if(_.__=u,_.__b=u.__b+1,null===(p=w[h])||p&&_.key==p.key&&_.type===p.type)w[h]=void 0;else for(v=0;v2&&(f.children=arguments.length>3?n.call(arguments,2):i),y(l.type,f,t||l.key,o||l.ref,null)}function D(n,l){var u={__c:l=\"__cC\"+f++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,i;return this.getChildContext||(u=[],(i={})[l]=this,this.getChildContext=function(){return i},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(m)},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u.splice(u.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n=c.slice,l={__e:function(n,l,u,i){for(var t,o,r;l=l.__;)if((t=l.__c)&&!t.__)try{if((o=t.constructor)&&null!=o.getDerivedStateFromError&&(t.setState(o.getDerivedStateFromError(n)),r=t.__d),null!=t.componentDidCatch&&(t.componentDidCatch(n,i||{}),r=t.__d),r)return t.__E=t}catch(l){n=l}throw n}},u=0,i=function(n){return null!=n&&void 0===n.constructor},_.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=a({},this.state),\"function\"==typeof n&&(n=n(a({},u),this.props)),n&&a(u,n),null!=n&&this.__v&&(l&&this.__h.push(l),m(this))},_.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),m(this))},_.prototype.render=d,t=[],o=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,g.__r=0,f=0;export{S as render,q as hydrate,v as createElement,v as h,d as Fragment,p as createRef,i as isValidElement,_ as Component,B as cloneElement,D as createContext,A as toChildArray,l as options};\n//# sourceMappingURL=preact.module.js.map\n","import { Component, cloneElement, createElement, toChildArray } from 'preact';\n\nvar EMPTY$1 = {};\n\nfunction assign(obj, props) {\n\t// eslint-disable-next-line guard-for-in\n\tfor (var i in props) {\n\t\tobj[i] = props[i];\n\t}\n\treturn obj;\n}\n\nfunction exec(url, route, opts) {\n\tvar reg = /(?:\\?([^#]*))?(#.*)?$/,\n\t\tc = url.match(reg),\n\t\tmatches = {},\n\t\tret;\n\tif (c && c[1]) {\n\t\tvar p = c[1].split('&');\n\t\tfor (var i=0; i 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 type { VersionId } from './services/index.js'\n\ntype Method = 'menu' | 'hotkey'\n\nexport namespace Analytics {\n\n\t/** Universal 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_GENERATOR = 6\n\tconst DIM_PREFERS_COLOR_SCHEME = 7\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\t/**\n\t * @deprecated\n\t */\n\texport function generatorEvent(action: string, label?: string) {\n\t\tevent(ID_GENERATOR, action, label)\n\t}\n\n\tfunction legacyMethod(method: Method) {\n\t\treturn method === 'menu' ? 'Menu' : 'Hotkey'\n\t}\n\t/** END Universal Analytics 4 */\n\n\texport function setLocale(locale: string) {\n\t\tdimension(DIM_LANGUAGE, locale)\n\t\tgtag('set', {\n\t\t\tlocale,\n\t\t})\n\t}\n\n\texport function changeLocale(prev_locale: string, locale: string) {\n\t\tsetLocale(locale)\n\t\tevent(ID_SITE, 'set-language', locale)\n\t\tgtag('event', 'change_locale', {\n\t\t\tprev_locale,\n\t\t})\n\t}\n\n\texport function setTheme(theme: string) {\n\t\tdimension(DIM_THEME, theme)\n\t\tgtag('set', {\n\t\t\ttheme,\n\t\t})\n\t}\n\n\texport function changeTheme(prev_theme: string, theme: string) {\n\t\tsetTheme(theme)\n\t\tevent(ID_SITE, 'set-theme', theme)\n\t\tgtag('event', 'change_theme', {\n\t\t\tprev_theme,\n\t\t})\n\t}\n\n\texport function setVersion(version: string) {\n\t\tdimension(DIM_VERSION, version)\n\t\tgtag('set', {\n\t\t\tversion,\n\t\t})\n\t}\n\n\texport function setSelectedVersion(selected_version: string) {\n\t\tgtag('set', {\n\t\t\tselected_version,\n\t\t})\n\t}\n\n\texport function changeVersion(prev_version: string, version: string) {\n\t\tsetVersion(version)\n\t\tevent(ID_GENERATOR, 'set-version', version)\n\t\tgtag('event', 'change_version', {\n\t\t\tprev_version,\n\t\t})\n\t}\n\n\texport function setGenerator(file_type: string) {\n\t\tdimension(DIM_GENERATOR, file_type)\n\t\tgtag('event', 'use_generator', {\n\t\t\tfile_type,\n\t\t})\n\t}\n\n\texport function setPrefersColorScheme(prefers_color_scheme: string) {\n\t\tdimension(DIM_PREFERS_COLOR_SCHEME, prefers_color_scheme)\n\t\tgtag('set', {\n\t\t\tprefers_color_scheme,\n\t\t})\n\t}\n\n\texport function setTreeViewMode(tree_view_mode: string) {\n\t\tgtag('set', {\n\t\t\ttree_view_mode,\n\t\t})\n\t}\n\n\texport function resetGenerator(file_type: string, history: number, method: Method) {\n\t\tevent(ID_GENERATOR, 'reset')\n\t\tgtag('event', 'reset_generator', {\n\t\t\tfile_type,\n\t\t\thistory,\n\t\t\tmethod,\n\t\t})\n\t}\n\n\texport function undoGenerator(file_type: string, history: number, method: Method) {\n\t\tevent(ID_GENERATOR, 'undo', legacyMethod(method))\n\t\tgtag('event', 'undo_generator', {\n\t\t\tfile_type,\n\t\t\thistory,\n\t\t\tmethod,\n\t\t})\n\t}\n\n\texport function redoGenerator(file_type: string, history: number, method: Method) {\n\t\tevent(ID_GENERATOR, 'undo', legacyMethod(method))\n\t\tgtag('event', 'redo_generator', {\n\t\t\tfile_type,\n\t\t\thistory,\n\t\t\tmethod,\n\t\t})\n\t}\n\n\texport function loadPreset(file_type: string, file_name: string) {\n\t\tevent(ID_GENERATOR, 'load-preset', file_name)\n\t\tgtag('event', 'load_generator_preset', {\n\t\t\tfile_type,\n\t\t\tfile_name,\n\t\t})\n\t}\n\n\texport function openPreset(file_type: string, file_name: string) {\n\t\tgtag('event', 'open_generator_preset', {\n\t\t\tfile_type,\n\t\t\tfile_name,\n\t\t})\n\t}\n\n\texport function createSnippet(file_type: string, snippet_id: string, version: VersionId, data_size: number, compressed_size: number, compression_rate: number) {\n\t\tgtag('event', 'create_generator_snippet', {\n\t\t\tfile_type,\n\t\t\tsnippet_id,\n\t\t\tversion,\n\t\t\tdata_size,\n\t\t\tcompressed_size,\n\t\t\tcompression_rate,\n\t\t})\n\t}\n\n\texport function openSnippet(file_type: string, snippet_id: string, version: VersionId) {\n\t\tgtag('event', 'open_generator_snippet', {\n\t\t\tfile_type,\n\t\t\tsnippet_id,\n\t\t\tversion,\n\t\t})\n\t}\n\n\texport function copyOutput(file_type: string, method: Method) {\n\t\tevent(ID_GENERATOR, 'copy')\n\t\tgtag('event', 'copy_generator_output', {\n\t\t\tfile_type,\n\t\t\tmethod,\n\t\t})\n\t}\n\n\texport function downloadOutput(file_type: string, method: Method) {\n\t\tevent(ID_GENERATOR, 'download')\n\t\tgtag('event', 'download_generator_output', {\n\t\t\tfile_type,\n\t\t\tmethod,\n\t\t})\n\t}\n\n\texport function showOutput(file_type: string, method: Method) {\n\t\tevent(ID_GENERATOR, 'toggle-output', 'visible')\n\t\tgtag('event', 'show_generator_output', {\n\t\t\tfile_type,\n\t\t\tmethod,\n\t\t})\n\t}\n\n\texport function hideOutput(file_type: string, method: Method) {\n\t\tevent(ID_GENERATOR, 'toggle-output', 'hidden')\n\t\tgtag('event', 'hide_generator_output', {\n\t\t\tfile_type,\n\t\t\tmethod,\n\t\t})\n\t}\n\n\texport function showPreview(file_type: string, method: Method) {\n\t\tevent(ID_GENERATOR, 'toggle-preview', 'visible')\n\t\tgtag('event', 'show_generator_preview', {\n\t\t\tfile_type,\n\t\t\tmethod,\n\t\t})\n\t}\n\n\texport function hidePreview(file_type: string, method: Method) {\n\t\tevent(ID_GENERATOR, 'toggle-preview', 'hidden')\n\t\tgtag('event', 'hide_generator_preview', {\n\t\t\tfile_type,\n\t\t\tmethod,\n\t\t})\n\t}\n\n\texport function showProject(file_type: string, projects_count: number, project_size: number, method: Method) {\n\t\tevent(ID_GENERATOR, 'show-project', legacyMethod(method))\n\t\tgtag('event', 'show_project', {\n\t\t\tfile_type,\n\t\t\tprojects_count,\n\t\t\tproject_size,\n\t\t\tmethod,\n\t\t})\n\t}\n\n\texport function hideProject(file_type: string, projects_count: number, project_size: number, method: Method) {\n\t\tevent(ID_GENERATOR, 'hide-project', legacyMethod(method))\n\t\tgtag('event', 'hide_project', {\n\t\t\tfile_type,\n\t\t\tprojects_count,\n\t\t\tproject_size,\n\t\t\tmethod,\n\t\t})\n\t}\n\n\texport function saveProjectFile(file_type: string, projects_count: number, project_size: number, method: Method) {\n\t\tevent(ID_GENERATOR, 'save-project-file', legacyMethod(method))\n\t\tgtag('event', 'save_project_file', {\n\t\t\tfile_type,\n\t\t\tprojects_count,\n\t\t\tproject_size,\n\t\t\tmethod,\n\t\t})\n\t}\n\n\texport function deleteProjectFile(file_type: string, projects_count: number, project_size: number, method: Method) {\n\t\tevent(ID_GENERATOR, 'delete-project-file', legacyMethod(method))\n\t\tgtag('event', 'delete_project_file', {\n\t\t\tfile_type,\n\t\t\tprojects_count,\n\t\t\tproject_size,\n\t\t\tmethod,\n\t\t})\n\t}\n\n\texport function renameProjectFile(file_type: string, projects_count: number, project_size: number, method: Method) {\n\t\tevent(ID_GENERATOR, 'rename-project-file', legacyMethod(method))\n\t\tgtag('event', 'rename_project_file', {\n\t\t\tfile_type,\n\t\t\tprojects_count,\n\t\t\tproject_size,\n\t\t\tmethod,\n\t\t})\n\t}\n\n\texport function deleteProject(projects_count: number, project_size: number, method: Method) {\n\t\tevent(ID_GENERATOR, 'delete-project', legacyMethod(method))\n\t\tgtag('event', 'delete_project', {\n\t\t\tprojects_count,\n\t\t\tproject_size,\n\t\t\tmethod,\n\t\t})\n\t}\n}\n","import{options as n}from\"preact\";var t,u,r,o,i=0,c=[],f=n.__b,e=n.__r,a=n.diffed,v=n.__c,l=n.unmount;function m(t,r){n.__h&&n.__h(u,t,i||r),i=0;var o=u.__H||(u.__H={__:[],__h:[]});return t>=o.__.length&&o.__.push({}),o.__[t]}function p(n){return i=1,y(z,n)}function y(n,r,o){var i=m(t++,2);return i.t=n,i.__c||(i.__=[o?o(r):z(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 d(r,o){var i=m(t++,3);!n.__s&&w(i.__H,o)&&(i.__=r,i.__H=o,u.__H.__h.push(i))}function h(r,o){var i=m(t++,4);!n.__s&&w(i.__H,o)&&(i.__=r,i.__H=o,u.__h.push(i))}function s(n){return i=5,A(function(){return{current:n}},[])}function _(n,t,u){i=6,h(function(){return\"function\"==typeof n?(n(t()),function(){return n(null)}):n?(n.current=t(),function(){return n.current=null}):void 0},null==u?u:u.concat(n))}function A(n,u){var r=m(t++,7);return w(r.__H,u)&&(r.__=n(),r.__H=u,r.__h=n),r.__}function F(n,t){return i=8,A(function(){return n},t)}function T(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 q(t,u){n.useDebugValue&&n.useDebugValue(u?u(t):t)}function x(n){var r=m(t++,10),o=p();return r.__=n,u.componentDidCatch||(u.componentDidCatch=function(n){r.__&&r.__(n),o[1](n)}),[o[0],function(){o[1](void 0)}]}function b(){for(var t;t=c.shift();)if(t.__P)try{t.__H.__h.forEach(j),t.__H.__h.forEach(k),t.__H.__h=[]}catch(u){t.__H.__h=[],n.__e(u,t.__v)}}n.__b=function(n){u=null,f&&f(n)},n.__r=function(n){e&&e(n),t=0;var o=(u=n.__c).__H;o&&(r===u?(o.__h=[],u.__h=[],o.__.forEach(function(n){n.__H&&(n.__H=void 0)})):(o.__h.forEach(j),o.__h.forEach(k),o.__h=[])),r=u},n.diffed=function(t){a&&a(t);var i=t.__c;i&&i.__H&&i.__H.__h.length&&(1!==c.push(i)&&o===n.requestAnimationFrame||((o=n.requestAnimationFrame)||function(n){var t,u=function(){clearTimeout(r),g&&cancelAnimationFrame(t),setTimeout(n)},r=setTimeout(u,100);g&&(t=requestAnimationFrame(u))})(b)),u=null,r=null},n.__c=function(t,u){u.some(function(t){try{t.__h.forEach(j),t.__h=t.__h.filter(function(n){return!n.__||k(n)})}catch(r){u.some(function(n){n.__h&&(n.__h=[])}),u=[],n.__e(r,t.__v)}}),v&&v(t,u)},n.unmount=function(t){l&&l(t);var u,r=t.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{j(n)}catch(n){u=n}}),u&&n.__e(u,r.__v))};var g=\"function\"==typeof requestAnimationFrame;function j(n){var t=u,r=n.__c;\"function\"==typeof r&&(n.__c=void 0,r()),u=t}function k(n){var t=u;n.__c=n.__(),u=t}function w(n,t){return!n||n.length!==t.length||t.some(function(t,u){return t!==n[u]})}function z(n,t){return\"function\"==typeof t?t(n):t}export{p as useState,y as useReducer,d as useEffect,h as useLayoutEffect,s as useRef,_ as useImperativeHandle,A as useMemo,F as useCallback,T as useContext,q as useDebugValue,x as useErrorBoundary};\n//# sourceMappingURL=hooks.module.js.map\n","var r=require(\"preact\"),_=0;function e(e,o,n,t,l){var u,f,i={};for(f in o)\"ref\"==f?u=o[f]:i[f]=o[f];var p={type:e,props:i,key:n,ref:u,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:--_,__source:l,__self:t};if(\"function\"==typeof e&&(u=e.defaultProps))for(f in u)void 0===i[f]&&(i[f]=u[f]);return r.options.vnode&&r.options.vnode(p),p}exports.Fragment=r.Fragment,exports.jsx=e,exports.jsxs=e,exports.jsxDEV=e;\n//# sourceMappingURL=jsxRuntime.js.map\n","import * as jsxRuntime from \"/home/runner/work/misode.github.io/misode.github.io/node_modules/preact/jsx-runtime/dist/jsxRuntime.js\"\nexport const jsx = jsxRuntime.jsx\nexport const jsxs = jsxRuntime.jsxs\nexport const Fragment = jsxRuntime.Fragment","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 './index.js'\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\tdisabled?: boolean,\n}\nexport function Btn({ icon, label, active, class: clazz, tooltip, tooltipLoc, onClick, disabled }: BtnProps) {\n\treturn
    \n\t\t{icon && Octicon[icon]}\n\t\t{label && {label}}\n\t
    \n}\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: (0, 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: (0, 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: (0, 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\nconst Mod = (node, mods) => ({\r\n ...node, ...(typeof mods === 'function' ? mods(node) : mods)\r\n});\r\nexports.Mod = Mod;\r\nconst Has = (key, node) => (0, exports.Mod)(node, {\r\n enabled: (p) => p.push(key).get() !== undefined\r\n});\r\nexports.Has = Has;\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\nconst 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\nexports.BooleanNode = BooleanNode;\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\nconst 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\nexports.ListNode = ListNode;\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\nconst 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\nexports.SwitchNode = SwitchNode;\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\nconst 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 = (0, 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\nexports.ChoiceNode = ChoiceNode;\r\nconst XOrList = (x) => ((node, config) => {\r\n return (0, 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: (0, 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\nconst ObjectOrPreset = (presetNode, objectNode, presets) => {\r\n return (0, 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\nexports.ObjectOrPreset = ObjectOrPreset;\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\nconst 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\nexports.MapNode = MapNode;\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\nconst 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.NumberNode = NumberNode;\r\nconst NumberEnum = ({ integer, values }) => (0, __1.Mod)((0, 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\nexports.NumberEnum = NumberEnum;\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\nconst 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 = (0, 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 ? (0, 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 = (0, 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\nexports.ObjectNode = ObjectNode;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Reference = void 0;\r\nconst 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\nexports.Reference = Reference;\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 return !!(value === null || value === void 0 ? void 0 : value.enum);\r\n};\r\nconst isValidator = (value) => {\r\n return !!(value === null || value === void 0 ? void 0 : value.validator);\r\n};\r\n/**\r\n * Simple string node with one text field\r\n */\r\nconst StringNode = (collections, config) => {\r\n const getValues = () => {\r\n var _a, _b, _c, _d;\r\n if (isEnum(config)) {\r\n if (typeof config.enum === 'string') {\r\n return (_a = collections === null || collections === void 0 ? void 0 : collections.get(config.enum)) !== null && _a !== void 0 ? _a : [];\r\n }\r\n return config.enum;\r\n }\r\n if ((config === null || config === void 0 ? void 0 : config.validator) === 'resource') {\r\n if (typeof config.params.pool === 'string') {\r\n if (config.params.requireTag) {\r\n return (_b = collections === null || collections === void 0 ? void 0 : collections.get(`tag/${config.params.pool}`).map(e => `#${e}`)) !== null && _b !== void 0 ? _b : [];\r\n }\r\n const registry = config.params.pool.replace(/^\\$/, '');\r\n const values = (_c = collections === null || collections === void 0 ? void 0 : collections.get(registry)) !== null && _c !== void 0 ? _c : [];\r\n return [\r\n ...config.params.allowTag ? (_d = collections === null || collections === void 0 ? void 0 : collections.get(`tag/${registry}`).map(e => `#${e}`)) !== null && _d !== void 0 ? _d : [] : [],\r\n ...config.params.suffix ? values.map(v => v + config.params.suffix) : values,\r\n ];\r\n }\r\n return config.params.pool;\r\n }\r\n return [];\r\n };\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'string',\r\n default: () => '',\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'string') {\r\n value = (options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default()) || undefined;\r\n }\r\n if (typeof value !== 'string') {\r\n errors.add(path, 'error.expected_string');\r\n return value;\r\n }\r\n if (isValidator(config)) {\r\n if (config.validator === 'resource' && value.length > 0 && !value.includes(':')) {\r\n value = value.startsWith('#')\r\n ? '#minecraft:' + value.slice(1)\r\n : 'minecraft:' + value;\r\n }\r\n if (config.validator === 'resource' && typeof value == 'string') {\r\n let id = value;\r\n if (value.startsWith('#')) {\r\n if (typeof config.params.pool === 'string' && config.params.pool.startsWith('$tag/')) {\r\n errors.add(path, 'error.disallowed_tag_prefix');\r\n return value;\r\n }\r\n else if (!config.params.allowTag && !config.params.requireTag) {\r\n errors.add(path, 'error.disallowed_tag');\r\n return value;\r\n }\r\n id = id.slice(1);\r\n }\r\n else if (config.params.requireTag) {\r\n errors.add(path, 'error.expected_tag');\r\n return value;\r\n }\r\n if (!id.match(/^(?:[_\\-a-z0-9.]*:)?[_\\-a-z0-9/.]*$/g)) {\r\n errors.add(path, 'error.invalid_resource_location');\r\n return value;\r\n }\r\n if (config.params.suffix && !id.endsWith(config.params.suffix)) {\r\n errors.add(path, 'error.expected_suffix', config.params.suffix);\r\n return value;\r\n }\r\n }\r\n if (config.validator === 'resource' && ((typeof config.params.pool === 'string' && config.params.pool.startsWith('$')) ||\r\n ((config.params.allowTag || config.params.requireTag) && value.startsWith('#')) ||\r\n (typeof value === 'string' && value.includes(':') && !value.startsWith('minecraft:')) ||\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\nexports.StringNode = StringNode;\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 var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\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\" && !Object.prototype.hasOwnProperty.call(exports, 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 Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/*\n * This program is based on JZlib 1.0.2 ymnk, JCraft,Inc.\n * JZlib is based on zlib-1.1.3, so all credit should go authors\n * Jean-loup Gailly(jloup@gzip.org) and Mark Adler(madler@alumni.caltech.edu)\n * and contributors of zlib.\n */\n\n// Global\n\nconst MAX_BITS = 15;\nconst D_CODES = 30;\nconst BL_CODES = 19;\n\nconst LENGTH_CODES = 29;\nconst LITERALS = 256;\nconst L_CODES = (LITERALS + 1 + LENGTH_CODES);\nconst HEAP_SIZE = (2 * L_CODES + 1);\n\nconst END_BLOCK = 256;\n\n// Bit length codes must not exceed MAX_BL_BITS bits\nconst MAX_BL_BITS = 7;\n\n// repeat previous bit length 3-6 times (2 bits of repeat count)\nconst REP_3_6 = 16;\n\n// repeat a zero length 3-10 times (3 bits of repeat count)\nconst REPZ_3_10 = 17;\n\n// repeat a zero length 11-138 times (7 bits of repeat count)\nconst REPZ_11_138 = 18;\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\n// length codes.\n\nconst Buf_size = 8 * 2;\n\n// JZlib version : \"1.0.2\"\nconst Z_DEFAULT_COMPRESSION = -1;\n\n// compression strategy\nconst Z_FILTERED = 1;\nconst Z_HUFFMAN_ONLY = 2;\nconst Z_DEFAULT_STRATEGY = 0;\n\nconst Z_NO_FLUSH = 0;\nconst Z_PARTIAL_FLUSH = 1;\nconst Z_FULL_FLUSH = 3;\nconst Z_FINISH = 4;\n\nconst Z_OK = 0;\nconst Z_STREAM_END = 1;\nconst Z_NEED_DICT = 2;\nconst Z_STREAM_ERROR = -2;\nconst Z_DATA_ERROR = -3;\nconst Z_BUF_ERROR = -5;\n\n// Tree\n\nfunction extractArray(array) {\n\treturn flatArray(array.map(([length, value]) => (new Array(length)).fill(value, 0, length)));\n}\n\nfunction flatArray(array) {\n\treturn array.reduce((a, b) => a.concat(Array.isArray(b) ? flatArray(b) : b), []);\n}\n\n// see definition of array dist_code below\nconst _dist_code = [0, 1, 2, 3].concat(...extractArray([\n\t[2, 4], [2, 5], [4, 6], [4, 7], [8, 8], [8, 9], [16, 10], [16, 11], [32, 12], [32, 13], [64, 14], [64, 15], [2, 0], [1, 16],\n\t[1, 17], [2, 18], [2, 19], [4, 20], [4, 21], [8, 22], [8, 23], [16, 24], [16, 25], [32, 26], [32, 27], [64, 28], [64, 29]\n]));\n\nfunction Tree() {\n\tconst that = this;\n\n\t// dyn_tree; // the dynamic tree\n\t// max_code; // largest code with non zero frequency\n\t// stat_desc; // the corresponding static tree\n\n\t// Compute the optimal bit lengths for a tree and update the total bit\n\t// length\n\t// for the current block.\n\t// IN assertion: the fields freq and dad are set, heap[heap_max] and\n\t// above are the tree nodes sorted by increasing frequency.\n\t// OUT assertions: the field len is set to the optimal bit length, the\n\t// array bl_count contains the frequencies for each bit length.\n\t// The length opt_len is updated; static_len is also updated if stree is\n\t// not null.\n\tfunction gen_bitlen(s) {\n\t\tconst tree = that.dyn_tree;\n\t\tconst stree = that.stat_desc.static_tree;\n\t\tconst extra = that.stat_desc.extra_bits;\n\t\tconst base = that.stat_desc.extra_base;\n\t\tconst max_length = that.stat_desc.max_length;\n\t\tlet h; // heap index\n\t\tlet n, m; // iterate over the tree elements\n\t\tlet bits; // bit length\n\t\tlet xbits; // extra bits\n\t\tlet f; // frequency\n\t\tlet overflow = 0; // number of elements with bit length too large\n\n\t\tfor (bits = 0; bits <= MAX_BITS; bits++)\n\t\t\ts.bl_count[bits] = 0;\n\n\t\t// In a first pass, compute the optimal bit lengths (which may\n\t\t// overflow in the case of the bit length tree).\n\t\ttree[s.heap[s.heap_max] * 2 + 1] = 0; // root of the heap\n\n\t\tfor (h = s.heap_max + 1; h < HEAP_SIZE; h++) {\n\t\t\tn = s.heap[h];\n\t\t\tbits = tree[tree[n * 2 + 1] * 2 + 1] + 1;\n\t\t\tif (bits > max_length) {\n\t\t\t\tbits = max_length;\n\t\t\t\toverflow++;\n\t\t\t}\n\t\t\ttree[n * 2 + 1] = bits;\n\t\t\t// We overwrite tree[n*2+1] which is no longer needed\n\n\t\t\tif (n > that.max_code)\n\t\t\t\tcontinue; // not a leaf node\n\n\t\t\ts.bl_count[bits]++;\n\t\t\txbits = 0;\n\t\t\tif (n >= base)\n\t\t\t\txbits = extra[n - base];\n\t\t\tf = tree[n * 2];\n\t\t\ts.opt_len += f * (bits + xbits);\n\t\t\tif (stree)\n\t\t\t\ts.static_len += f * (stree[n * 2 + 1] + xbits);\n\t\t}\n\t\tif (overflow === 0)\n\t\t\treturn;\n\n\t\t// This happens for example on obj2 and pic of the Calgary corpus\n\t\t// Find the first bit length which could increase:\n\t\tdo {\n\t\t\tbits = max_length - 1;\n\t\t\twhile (s.bl_count[bits] === 0)\n\t\t\t\tbits--;\n\t\t\ts.bl_count[bits]--; // move one leaf down the tree\n\t\t\ts.bl_count[bits + 1] += 2; // move one overflow item as its brother\n\t\t\ts.bl_count[max_length]--;\n\t\t\t// The brother of the overflow item also moves one step up,\n\t\t\t// but this does not affect bl_count[max_length]\n\t\t\toverflow -= 2;\n\t\t} while (overflow > 0);\n\n\t\tfor (bits = max_length; bits !== 0; bits--) {\n\t\t\tn = s.bl_count[bits];\n\t\t\twhile (n !== 0) {\n\t\t\t\tm = s.heap[--h];\n\t\t\t\tif (m > that.max_code)\n\t\t\t\t\tcontinue;\n\t\t\t\tif (tree[m * 2 + 1] != bits) {\n\t\t\t\t\ts.opt_len += (bits - tree[m * 2 + 1]) * tree[m * 2];\n\t\t\t\t\ttree[m * 2 + 1] = bits;\n\t\t\t\t}\n\t\t\t\tn--;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Reverse the first len bits of a code, using straightforward code (a\n\t// faster\n\t// method would use a table)\n\t// IN assertion: 1 <= len <= 15\n\tfunction bi_reverse(code, // the value to invert\n\t\tlen // its bit length\n\t) {\n\t\tlet res = 0;\n\t\tdo {\n\t\t\tres |= code & 1;\n\t\t\tcode >>>= 1;\n\t\t\tres <<= 1;\n\t\t} while (--len > 0);\n\t\treturn res >>> 1;\n\t}\n\n\t// Generate the codes for a given tree and bit counts (which need not be\n\t// optimal).\n\t// IN assertion: the array bl_count contains the bit length statistics for\n\t// the given tree and the field len is set for all tree elements.\n\t// OUT assertion: the field code is set for all tree elements of non\n\t// zero code length.\n\tfunction gen_codes(tree, // the tree to decorate\n\t\tmax_code, // largest code with non zero frequency\n\t\tbl_count // number of codes at each bit length\n\t) {\n\t\tconst next_code = []; // next code value for each\n\t\t// bit length\n\t\tlet code = 0; // running code value\n\t\tlet bits; // bit index\n\t\tlet n; // code index\n\t\tlet len;\n\n\t\t// The distribution counts are first used to generate the code values\n\t\t// without bit reversal.\n\t\tfor (bits = 1; bits <= MAX_BITS; bits++) {\n\t\t\tnext_code[bits] = code = ((code + bl_count[bits - 1]) << 1);\n\t\t}\n\n\t\t// Check that the bit counts in bl_count are consistent. The last code\n\t\t// must be all ones.\n\t\t// Assert (code + bl_count[MAX_BITS]-1 == (1<= 1; n--)\n\t\t\ts.pqdownheap(tree, n);\n\n\t\t// Construct the Huffman tree by repeatedly combining the least two\n\t\t// frequent nodes.\n\n\t\tnode = elems; // next internal node of the tree\n\t\tdo {\n\t\t\t// n = node of least frequency\n\t\t\tn = s.heap[1];\n\t\t\ts.heap[1] = s.heap[s.heap_len--];\n\t\t\ts.pqdownheap(tree, 1);\n\t\t\tm = s.heap[1]; // m = node of next least frequency\n\n\t\t\ts.heap[--s.heap_max] = n; // keep the nodes sorted by frequency\n\t\t\ts.heap[--s.heap_max] = m;\n\n\t\t\t// Create a new node father of n and m\n\t\t\ttree[node * 2] = (tree[n * 2] + tree[m * 2]);\n\t\t\ts.depth[node] = Math.max(s.depth[n], s.depth[m]) + 1;\n\t\t\ttree[n * 2 + 1] = tree[m * 2 + 1] = node;\n\n\t\t\t// and insert the new node in the heap\n\t\t\ts.heap[1] = node++;\n\t\t\ts.pqdownheap(tree, 1);\n\t\t} while (s.heap_len >= 2);\n\n\t\ts.heap[--s.heap_max] = s.heap[1];\n\n\t\t// At this point, the fields freq and dad are set. We can now\n\t\t// generate the bit lengths.\n\n\t\tgen_bitlen(s);\n\n\t\t// The field len is now set, we can generate the bit codes\n\t\tgen_codes(tree, that.max_code, s.bl_count);\n\t};\n\n}\n\nTree._length_code = [0, 1, 2, 3, 4, 5, 6, 7].concat(...extractArray([\n\t[2, 8], [2, 9], [2, 10], [2, 11], [4, 12], [4, 13], [4, 14], [4, 15], [8, 16], [8, 17], [8, 18], [8, 19],\n\t[16, 20], [16, 21], [16, 22], [16, 23], [32, 24], [32, 25], [32, 26], [31, 27], [1, 28]]));\n\nTree.base_length = [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, 24, 28, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 0];\n\nTree.base_dist = [0, 1, 2, 3, 4, 6, 8, 12, 16, 24, 32, 48, 64, 96, 128, 192, 256, 384, 512, 768, 1024, 1536, 2048, 3072, 4096, 6144, 8192, 12288, 16384,\n\t24576];\n\n// Mapping from a distance to a distance code. dist is the distance - 1 and\n// must not have side effects. _dist_code[256] and _dist_code[257] are never\n// used.\nTree.d_code = function (dist) {\n\treturn ((dist) < 256 ? _dist_code[dist] : _dist_code[256 + ((dist) >>> 7)]);\n};\n\n// extra bits for each length code\nTree.extra_lbits = [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\n// extra bits for each distance code\nTree.extra_dbits = [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\n// extra bits for each bit length code\nTree.extra_blbits = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7];\n\nTree.bl_order = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15];\n\n// StaticTree\n\nfunction StaticTree(static_tree, extra_bits, extra_base, elems, max_length) {\n\tconst that = this;\n\tthat.static_tree = static_tree;\n\tthat.extra_bits = extra_bits;\n\tthat.extra_base = extra_base;\n\tthat.elems = elems;\n\tthat.max_length = max_length;\n}\n\nconst static_ltree2_first_part = [12, 140, 76, 204, 44, 172, 108, 236, 28, 156, 92, 220, 60, 188, 124, 252, 2, 130, 66, 194, 34, 162, 98, 226, 18, 146, 82,\n\t210, 50, 178, 114, 242, 10, 138, 74, 202, 42, 170, 106, 234, 26, 154, 90, 218, 58, 186, 122, 250, 6, 134, 70, 198, 38, 166, 102, 230, 22, 150, 86,\n\t214, 54, 182, 118, 246, 14, 142, 78, 206, 46, 174, 110, 238, 30, 158, 94, 222, 62, 190, 126, 254, 1, 129, 65, 193, 33, 161, 97, 225, 17, 145, 81,\n\t209, 49, 177, 113, 241, 9, 137, 73, 201, 41, 169, 105, 233, 25, 153, 89, 217, 57, 185, 121, 249, 5, 133, 69, 197, 37, 165, 101, 229, 21, 149, 85,\n\t213, 53, 181, 117, 245, 13, 141, 77, 205, 45, 173, 109, 237, 29, 157, 93, 221, 61, 189, 125, 253, 19, 275, 147, 403, 83, 339, 211, 467, 51, 307,\n\t179, 435, 115, 371, 243, 499, 11, 267, 139, 395, 75, 331, 203, 459, 43, 299, 171, 427, 107, 363, 235, 491, 27, 283, 155, 411, 91, 347, 219, 475,\n\t59, 315, 187, 443, 123, 379, 251, 507, 7, 263, 135, 391, 71, 327, 199, 455, 39, 295, 167, 423, 103, 359, 231, 487, 23, 279, 151, 407, 87, 343, 215,\n\t471, 55, 311, 183, 439, 119, 375, 247, 503, 15, 271, 143, 399, 79, 335, 207, 463, 47, 303, 175, 431, 111, 367, 239, 495, 31, 287, 159, 415, 95,\n\t351, 223, 479, 63, 319, 191, 447, 127, 383, 255, 511, 0, 64, 32, 96, 16, 80, 48, 112, 8, 72, 40, 104, 24, 88, 56, 120, 4, 68, 36, 100, 20, 84, 52,\n\t116, 3, 131, 67, 195, 35, 163, 99, 227];\nconst static_ltree2_second_part = extractArray([[144, 8], [112, 9], [24, 7], [8, 8]]);\nStaticTree.static_ltree = flatArray(static_ltree2_first_part.map((value, index) => [value, static_ltree2_second_part[index]]));\n\nconst static_dtree_first_part = [0, 16, 8, 24, 4, 20, 12, 28, 2, 18, 10, 26, 6, 22, 14, 30, 1, 17, 9, 25, 5, 21, 13, 29, 3, 19, 11, 27, 7, 23];\nconst static_dtree_second_part = extractArray([[30, 5]]);\nStaticTree.static_dtree = flatArray(static_dtree_first_part.map((value, index) => [value, static_dtree_second_part[index]]));\n\nStaticTree.static_l_desc = new StaticTree(StaticTree.static_ltree, Tree.extra_lbits, LITERALS + 1, L_CODES, MAX_BITS);\n\nStaticTree.static_d_desc = new StaticTree(StaticTree.static_dtree, Tree.extra_dbits, 0, D_CODES, MAX_BITS);\n\nStaticTree.static_bl_desc = new StaticTree(null, Tree.extra_blbits, 0, BL_CODES, MAX_BL_BITS);\n\n// Deflate\n\nconst MAX_MEM_LEVEL = 9;\nconst DEF_MEM_LEVEL = 8;\n\nfunction Config(good_length, max_lazy, nice_length, max_chain, func) {\n\tconst that = this;\n\tthat.good_length = good_length;\n\tthat.max_lazy = max_lazy;\n\tthat.nice_length = nice_length;\n\tthat.max_chain = max_chain;\n\tthat.func = func;\n}\n\nconst STORED = 0;\nconst FAST = 1;\nconst SLOW = 2;\nconst config_table = [\n\tnew Config(0, 0, 0, 0, STORED),\n\tnew Config(4, 4, 8, 4, FAST),\n\tnew Config(4, 5, 16, 8, FAST),\n\tnew Config(4, 6, 32, 32, FAST),\n\tnew Config(4, 4, 16, 16, SLOW),\n\tnew Config(8, 16, 32, 32, SLOW),\n\tnew Config(8, 16, 128, 128, SLOW),\n\tnew Config(8, 32, 128, 256, SLOW),\n\tnew Config(32, 128, 258, 1024, SLOW),\n\tnew Config(32, 258, 258, 4096, SLOW)\n];\n\nconst z_errmsg = [\"need dictionary\", // Z_NEED_DICT\n\t// 2\n\t\"stream end\", // Z_STREAM_END 1\n\t\"\", // Z_OK 0\n\t\"\", // Z_ERRNO (-1)\n\t\"stream error\", // Z_STREAM_ERROR (-2)\n\t\"data error\", // Z_DATA_ERROR (-3)\n\t\"\", // Z_MEM_ERROR (-4)\n\t\"buffer error\", // Z_BUF_ERROR (-5)\n\t\"\",// Z_VERSION_ERROR (-6)\n\t\"\"];\n\n// block not completed, need more input or more output\nconst NeedMore = 0;\n\n// block flush performed\nconst BlockDone = 1;\n\n// finish started, need only more output at next deflate\nconst FinishStarted = 2;\n\n// finish done, accept no more input or output\nconst FinishDone = 3;\n\n// preset dictionary flag in zlib header\nconst PRESET_DICT = 0x20;\n\nconst INIT_STATE = 42;\nconst BUSY_STATE = 113;\nconst FINISH_STATE = 666;\n\n// The deflate compression method\nconst Z_DEFLATED = 8;\n\nconst STORED_BLOCK = 0;\nconst STATIC_TREES = 1;\nconst DYN_TREES = 2;\n\nconst MIN_MATCH = 3;\nconst MAX_MATCH = 258;\nconst MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);\n\nfunction smaller(tree, n, m, depth) {\n\tconst tn2 = tree[n * 2];\n\tconst tm2 = tree[m * 2];\n\treturn (tn2 < tm2 || (tn2 == tm2 && depth[n] <= depth[m]));\n}\n\nfunction Deflate() {\n\n\tconst that = this;\n\tlet strm; // pointer back to this zlib stream\n\tlet status; // as the name implies\n\t// pending_buf; // output still pending\n\tlet pending_buf_size; // size of pending_buf\n\t// pending_out; // next pending byte to output to the stream\n\t// pending; // nb of bytes in the pending buffer\n\n\t// dist_buf; // buffer for distances\n\t// lc_buf; // buffer for literals or lengths\n\t// To simplify the code, dist_buf and lc_buf have the same number of elements.\n\t// To use different lengths, an extra flag array would be necessary.\n\n\tlet last_flush; // value of flush param for previous deflate call\n\n\tlet w_size; // LZ77 win size (32K by default)\n\tlet w_bits; // log2(w_size) (8..16)\n\tlet w_mask; // w_size - 1\n\n\tlet win;\n\t// Sliding win. Input bytes are read into the second half of the win,\n\t// and move to the first half later to keep a dictionary of at least wSize\n\t// bytes. With this organization, matches are limited to a distance of\n\t// wSize-MAX_MATCH bytes, but this ensures that IO is always\n\t// performed with a length multiple of the block size. Also, it limits\n\t// the win size to 64K, which is quite useful on MSDOS.\n\t// To do: use the user input buffer as sliding win.\n\n\tlet window_size;\n\t// Actual size of win: 2*wSize, except when the user input buffer\n\t// is directly used as sliding win.\n\n\tlet prev;\n\t// Link to older string with same hash index. To limit the size of this\n\t// array to 64K, this link is maintained only for the last 32K strings.\n\t// An index in this array is thus a win index modulo 32K.\n\n\tlet head; // Heads of the hash chains or NIL.\n\n\tlet ins_h; // hash index of string to be inserted\n\tlet hash_size; // number of elements in hash table\n\tlet hash_bits; // log2(hash_size)\n\tlet hash_mask; // hash_size-1\n\n\t// Number of bits by which ins_h must be shifted at each input\n\t// step. It must be such that after MIN_MATCH steps, the oldest\n\t// byte no longer takes part in the hash key, that is:\n\t// hash_shift * MIN_MATCH >= hash_bits\n\tlet hash_shift;\n\n\t// Window position at the beginning of the current output block. Gets\n\t// negative when the win is moved backwards.\n\n\tlet block_start;\n\n\tlet match_length; // length of best match\n\tlet prev_match; // previous match\n\tlet match_available; // set if previous match exists\n\tlet strstart; // start of string to insert\n\tlet match_start; // start of matching string\n\tlet lookahead; // number of valid bytes ahead in win\n\n\t// Length of the best match at previous step. Matches not greater than this\n\t// are discarded. This is used in the lazy match evaluation.\n\tlet prev_length;\n\n\t// To speed up deflation, hash chains are never searched beyond this\n\t// length. A higher limit improves compression ratio but degrades the speed.\n\tlet max_chain_length;\n\n\t// Attempt to find a better match only when the current match is strictly\n\t// smaller than this value. This mechanism is used only for compression\n\t// levels >= 4.\n\tlet max_lazy_match;\n\n\t// Insert new strings in the hash table only if the match length is not\n\t// greater than this length. This saves time but degrades compression.\n\t// max_insert_length is used only for compression levels <= 3.\n\n\tlet level; // compression level (1..9)\n\tlet strategy; // favor or force Huffman coding\n\n\t// Use a faster search when the previous match is longer than this\n\tlet good_match;\n\n\t// Stop searching when current match exceeds this\n\tlet nice_match;\n\n\tlet dyn_ltree; // literal and length tree\n\tlet dyn_dtree; // distance tree\n\tlet bl_tree; // Huffman tree for bit lengths\n\n\tconst l_desc = new Tree(); // desc for literal tree\n\tconst d_desc = new Tree(); // desc for distance tree\n\tconst bl_desc = new Tree(); // desc for bit length tree\n\n\t// that.heap_len; // number of elements in the heap\n\t// that.heap_max; // element of largest frequency\n\t// The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n\t// The same heap array is used to build all trees.\n\n\t// Depth of each subtree used as tie breaker for trees of equal frequency\n\tthat.depth = [];\n\n\t// Size of match buffer for literals/lengths. There are 4 reasons for\n\t// limiting lit_bufsize to 64K:\n\t// - frequencies can be kept in 16 bit counters\n\t// - if compression is not successful for the first block, all input\n\t// data is still in the win so we can still emit a stored block even\n\t// when input comes from standard input. (This can also be done for\n\t// all blocks if lit_bufsize is not greater than 32K.)\n\t// - if compression is not successful for a file smaller than 64K, we can\n\t// even emit a stored file instead of a stored block (saving 5 bytes).\n\t// This is applicable only for zip (not gzip or zlib).\n\t// - creating new Huffman trees less frequently may not provide fast\n\t// adaptation to changes in the input data statistics. (Take for\n\t// example a binary file with poorly compressible code followed by\n\t// a highly compressible string table.) Smaller buffer sizes give\n\t// fast adaptation but have of course the overhead of transmitting\n\t// trees more frequently.\n\t// - I can't count above 4\n\tlet lit_bufsize;\n\n\tlet last_lit; // running index in dist_buf and lc_buf\n\n\t// that.opt_len; // bit length of current block with optimal trees\n\t// that.static_len; // bit length of current block with static trees\n\tlet matches; // number of string matches in current block\n\tlet last_eob_len; // bit length of EOB code for last block\n\n\t// Output buffer. bits are inserted starting at the bottom (least\n\t// significant bits).\n\tlet bi_buf;\n\n\t// Number of valid bits in bi_buf. All bits above the last valid bit\n\t// are always zero.\n\tlet bi_valid;\n\n\t// number of codes at each bit length for an optimal tree\n\tthat.bl_count = [];\n\n\t// heap used to build the Huffman trees\n\tthat.heap = [];\n\n\tdyn_ltree = [];\n\tdyn_dtree = [];\n\tbl_tree = [];\n\n\tfunction lm_init() {\n\t\twindow_size = 2 * w_size;\n\n\t\thead[hash_size - 1] = 0;\n\t\tfor (let i = 0; i < hash_size - 1; i++) {\n\t\t\thead[i] = 0;\n\t\t}\n\n\t\t// Set the default configuration parameters:\n\t\tmax_lazy_match = config_table[level].max_lazy;\n\t\tgood_match = config_table[level].good_length;\n\t\tnice_match = config_table[level].nice_length;\n\t\tmax_chain_length = config_table[level].max_chain;\n\n\t\tstrstart = 0;\n\t\tblock_start = 0;\n\t\tlookahead = 0;\n\t\tmatch_length = prev_length = MIN_MATCH - 1;\n\t\tmatch_available = 0;\n\t\tins_h = 0;\n\t}\n\n\tfunction init_block() {\n\t\tlet i;\n\t\t// Initialize the trees.\n\t\tfor (i = 0; i < L_CODES; i++)\n\t\t\tdyn_ltree[i * 2] = 0;\n\t\tfor (i = 0; i < D_CODES; i++)\n\t\t\tdyn_dtree[i * 2] = 0;\n\t\tfor (i = 0; i < BL_CODES; i++)\n\t\t\tbl_tree[i * 2] = 0;\n\n\t\tdyn_ltree[END_BLOCK * 2] = 1;\n\t\tthat.opt_len = that.static_len = 0;\n\t\tlast_lit = matches = 0;\n\t}\n\n\t// Initialize the tree data structures for a new zlib stream.\n\tfunction tr_init() {\n\n\t\tl_desc.dyn_tree = dyn_ltree;\n\t\tl_desc.stat_desc = StaticTree.static_l_desc;\n\n\t\td_desc.dyn_tree = dyn_dtree;\n\t\td_desc.stat_desc = StaticTree.static_d_desc;\n\n\t\tbl_desc.dyn_tree = bl_tree;\n\t\tbl_desc.stat_desc = StaticTree.static_bl_desc;\n\n\t\tbi_buf = 0;\n\t\tbi_valid = 0;\n\t\tlast_eob_len = 8; // enough lookahead for inflate\n\n\t\t// Initialize the first block of the first file:\n\t\tinit_block();\n\t}\n\n\t// Restore the heap property by moving down the tree starting at node k,\n\t// exchanging a node with the smallest of its two sons if necessary,\n\t// stopping\n\t// when the heap property is re-established (each father smaller than its\n\t// two sons).\n\tthat.pqdownheap = function (tree, // the tree to restore\n\t\tk // node to move down\n\t) {\n\t\tconst heap = that.heap;\n\t\tconst v = heap[k];\n\t\tlet j = k << 1; // left son of k\n\t\twhile (j <= that.heap_len) {\n\t\t\t// Set j to the smallest of the two sons:\n\t\t\tif (j < that.heap_len && smaller(tree, heap[j + 1], heap[j], that.depth)) {\n\t\t\t\tj++;\n\t\t\t}\n\t\t\t// Exit if v is smaller than both sons\n\t\t\tif (smaller(tree, v, heap[j], that.depth))\n\t\t\t\tbreak;\n\n\t\t\t// Exchange v with the smallest son\n\t\t\theap[k] = heap[j];\n\t\t\tk = j;\n\t\t\t// And continue down the tree, setting j to the left son of k\n\t\t\tj <<= 1;\n\t\t}\n\t\theap[k] = v;\n\t};\n\n\t// Scan a literal or distance tree to determine the frequencies of the codes\n\t// in the bit length tree.\n\tfunction scan_tree(tree,// the tree to be scanned\n\t\tmax_code // and its largest code of non zero frequency\n\t) {\n\t\tlet prevlen = -1; // last emitted length\n\t\tlet curlen; // length of current code\n\t\tlet nextlen = tree[0 * 2 + 1]; // length of next code\n\t\tlet count = 0; // repeat count of the current code\n\t\tlet max_count = 7; // max repeat count\n\t\tlet min_count = 4; // min repeat count\n\n\t\tif (nextlen === 0) {\n\t\t\tmax_count = 138;\n\t\t\tmin_count = 3;\n\t\t}\n\t\ttree[(max_code + 1) * 2 + 1] = 0xffff; // guard\n\n\t\tfor (let n = 0; n <= max_code; n++) {\n\t\t\tcurlen = nextlen;\n\t\t\tnextlen = tree[(n + 1) * 2 + 1];\n\t\t\tif (++count < max_count && curlen == nextlen) {\n\t\t\t\tcontinue;\n\t\t\t} else if (count < min_count) {\n\t\t\t\tbl_tree[curlen * 2] += count;\n\t\t\t} else if (curlen !== 0) {\n\t\t\t\tif (curlen != prevlen)\n\t\t\t\t\tbl_tree[curlen * 2]++;\n\t\t\t\tbl_tree[REP_3_6 * 2]++;\n\t\t\t} else if (count <= 10) {\n\t\t\t\tbl_tree[REPZ_3_10 * 2]++;\n\t\t\t} else {\n\t\t\t\tbl_tree[REPZ_11_138 * 2]++;\n\t\t\t}\n\t\t\tcount = 0;\n\t\t\tprevlen = curlen;\n\t\t\tif (nextlen === 0) {\n\t\t\t\tmax_count = 138;\n\t\t\t\tmin_count = 3;\n\t\t\t} else if (curlen == nextlen) {\n\t\t\t\tmax_count = 6;\n\t\t\t\tmin_count = 3;\n\t\t\t} else {\n\t\t\t\tmax_count = 7;\n\t\t\t\tmin_count = 4;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Construct the Huffman tree for the bit lengths and return the index in\n\t// bl_order of the last bit length code to send.\n\tfunction build_bl_tree() {\n\t\tlet max_blindex; // index of last bit length code of non zero freq\n\n\t\t// Determine the bit length frequencies for literal and distance trees\n\t\tscan_tree(dyn_ltree, l_desc.max_code);\n\t\tscan_tree(dyn_dtree, d_desc.max_code);\n\n\t\t// Build the bit length tree:\n\t\tbl_desc.build_tree(that);\n\t\t// opt_len now includes the length of the tree representations, except\n\t\t// the lengths of the bit lengths codes and the 5+5+4 bits for the\n\t\t// counts.\n\n\t\t// Determine the number of bit length codes to send. The pkzip format\n\t\t// requires that at least 4 bit length codes be sent. (appnote.txt says\n\t\t// 3 but the actual value used is 4.)\n\t\tfor (max_blindex = BL_CODES - 1; max_blindex >= 3; max_blindex--) {\n\t\t\tif (bl_tree[Tree.bl_order[max_blindex] * 2 + 1] !== 0)\n\t\t\t\tbreak;\n\t\t}\n\t\t// Update opt_len to include the bit length tree and counts\n\t\tthat.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;\n\n\t\treturn max_blindex;\n\t}\n\n\t// Output a byte on the stream.\n\t// IN assertion: there is enough room in pending_buf.\n\tfunction put_byte(p) {\n\t\tthat.pending_buf[that.pending++] = p;\n\t}\n\n\tfunction put_short(w) {\n\t\tput_byte(w & 0xff);\n\t\tput_byte((w >>> 8) & 0xff);\n\t}\n\n\tfunction putShortMSB(b) {\n\t\tput_byte((b >> 8) & 0xff);\n\t\tput_byte((b & 0xff) & 0xff);\n\t}\n\n\tfunction send_bits(value, length) {\n\t\tlet val;\n\t\tconst len = length;\n\t\tif (bi_valid > Buf_size - len) {\n\t\t\tval = value;\n\t\t\t// bi_buf |= (val << bi_valid);\n\t\t\tbi_buf |= ((val << bi_valid) & 0xffff);\n\t\t\tput_short(bi_buf);\n\t\t\tbi_buf = val >>> (Buf_size - bi_valid);\n\t\t\tbi_valid += len - Buf_size;\n\t\t} else {\n\t\t\t// bi_buf |= (value) << bi_valid;\n\t\t\tbi_buf |= (((value) << bi_valid) & 0xffff);\n\t\t\tbi_valid += len;\n\t\t}\n\t}\n\n\tfunction send_code(c, tree) {\n\t\tconst c2 = c * 2;\n\t\tsend_bits(tree[c2] & 0xffff, tree[c2 + 1] & 0xffff);\n\t}\n\n\t// Send a literal or distance tree in compressed form, using the codes in\n\t// bl_tree.\n\tfunction send_tree(tree,// the tree to be sent\n\t\tmax_code // and its largest code of non zero frequency\n\t) {\n\t\tlet n; // iterates over all tree elements\n\t\tlet prevlen = -1; // last emitted length\n\t\tlet curlen; // length of current code\n\t\tlet nextlen = tree[0 * 2 + 1]; // length of next code\n\t\tlet count = 0; // repeat count of the current code\n\t\tlet max_count = 7; // max repeat count\n\t\tlet min_count = 4; // min repeat count\n\n\t\tif (nextlen === 0) {\n\t\t\tmax_count = 138;\n\t\t\tmin_count = 3;\n\t\t}\n\n\t\tfor (n = 0; n <= max_code; n++) {\n\t\t\tcurlen = nextlen;\n\t\t\tnextlen = tree[(n + 1) * 2 + 1];\n\t\t\tif (++count < max_count && curlen == nextlen) {\n\t\t\t\tcontinue;\n\t\t\t} else if (count < min_count) {\n\t\t\t\tdo {\n\t\t\t\t\tsend_code(curlen, bl_tree);\n\t\t\t\t} while (--count !== 0);\n\t\t\t} else if (curlen !== 0) {\n\t\t\t\tif (curlen != prevlen) {\n\t\t\t\t\tsend_code(curlen, bl_tree);\n\t\t\t\t\tcount--;\n\t\t\t\t}\n\t\t\t\tsend_code(REP_3_6, bl_tree);\n\t\t\t\tsend_bits(count - 3, 2);\n\t\t\t} else if (count <= 10) {\n\t\t\t\tsend_code(REPZ_3_10, bl_tree);\n\t\t\t\tsend_bits(count - 3, 3);\n\t\t\t} else {\n\t\t\t\tsend_code(REPZ_11_138, bl_tree);\n\t\t\t\tsend_bits(count - 11, 7);\n\t\t\t}\n\t\t\tcount = 0;\n\t\t\tprevlen = curlen;\n\t\t\tif (nextlen === 0) {\n\t\t\t\tmax_count = 138;\n\t\t\t\tmin_count = 3;\n\t\t\t} else if (curlen == nextlen) {\n\t\t\t\tmax_count = 6;\n\t\t\t\tmin_count = 3;\n\t\t\t} else {\n\t\t\t\tmax_count = 7;\n\t\t\t\tmin_count = 4;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Send the header for a block using dynamic Huffman trees: the counts, the\n\t// lengths of the bit length codes, the literal tree and the distance tree.\n\t// IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n\tfunction send_all_trees(lcodes, dcodes, blcodes) {\n\t\tlet rank; // index in bl_order\n\n\t\tsend_bits(lcodes - 257, 5); // not +255 as stated in appnote.txt\n\t\tsend_bits(dcodes - 1, 5);\n\t\tsend_bits(blcodes - 4, 4); // not -3 as stated in appnote.txt\n\t\tfor (rank = 0; rank < blcodes; rank++) {\n\t\t\tsend_bits(bl_tree[Tree.bl_order[rank] * 2 + 1], 3);\n\t\t}\n\t\tsend_tree(dyn_ltree, lcodes - 1); // literal tree\n\t\tsend_tree(dyn_dtree, dcodes - 1); // distance tree\n\t}\n\n\t// Flush the bit buffer, keeping at most 7 bits in it.\n\tfunction bi_flush() {\n\t\tif (bi_valid == 16) {\n\t\t\tput_short(bi_buf);\n\t\t\tbi_buf = 0;\n\t\t\tbi_valid = 0;\n\t\t} else if (bi_valid >= 8) {\n\t\t\tput_byte(bi_buf & 0xff);\n\t\t\tbi_buf >>>= 8;\n\t\t\tbi_valid -= 8;\n\t\t}\n\t}\n\n\t// Send one empty static block to give enough lookahead for inflate.\n\t// This takes 10 bits, of which 7 may remain in the bit buffer.\n\t// The current inflate code requires 9 bits of lookahead. If the\n\t// last two codes for the previous block (real code plus EOB) were coded\n\t// on 5 bits or less, inflate may have only 5+3 bits of lookahead to decode\n\t// the last real code. In this case we send two empty static blocks instead\n\t// of one. (There are no problems if the previous block is stored or fixed.)\n\t// To simplify the code, we assume the worst case of last real code encoded\n\t// on one bit only.\n\tfunction _tr_align() {\n\t\tsend_bits(STATIC_TREES << 1, 3);\n\t\tsend_code(END_BLOCK, StaticTree.static_ltree);\n\n\t\tbi_flush();\n\n\t\t// Of the 10 bits for the empty block, we have already sent\n\t\t// (10 - bi_valid) bits. The lookahead for the last real code (before\n\t\t// the EOB of the previous block) was thus at least one plus the length\n\t\t// of the EOB plus what we have just sent of the empty static block.\n\t\tif (1 + last_eob_len + 10 - bi_valid < 9) {\n\t\t\tsend_bits(STATIC_TREES << 1, 3);\n\t\t\tsend_code(END_BLOCK, StaticTree.static_ltree);\n\t\t\tbi_flush();\n\t\t}\n\t\tlast_eob_len = 7;\n\t}\n\n\t// Save the match info and tally the frequency counts. Return true if\n\t// the current block must be flushed.\n\tfunction _tr_tally(dist, // distance of matched string\n\t\tlc // match length-MIN_MATCH or unmatched char (if dist==0)\n\t) {\n\t\tlet out_length, in_length, dcode;\n\t\tthat.dist_buf[last_lit] = dist;\n\t\tthat.lc_buf[last_lit] = lc & 0xff;\n\t\tlast_lit++;\n\n\t\tif (dist === 0) {\n\t\t\t// lc is the unmatched char\n\t\t\tdyn_ltree[lc * 2]++;\n\t\t} else {\n\t\t\tmatches++;\n\t\t\t// Here, lc is the match length - MIN_MATCH\n\t\t\tdist--; // dist = match distance - 1\n\t\t\tdyn_ltree[(Tree._length_code[lc] + LITERALS + 1) * 2]++;\n\t\t\tdyn_dtree[Tree.d_code(dist) * 2]++;\n\t\t}\n\n\t\tif ((last_lit & 0x1fff) === 0 && level > 2) {\n\t\t\t// Compute an upper bound for the compressed length\n\t\t\tout_length = last_lit * 8;\n\t\t\tin_length = strstart - block_start;\n\t\t\tfor (dcode = 0; dcode < D_CODES; dcode++) {\n\t\t\t\tout_length += dyn_dtree[dcode * 2] * (5 + Tree.extra_dbits[dcode]);\n\t\t\t}\n\t\t\tout_length >>>= 3;\n\t\t\tif ((matches < Math.floor(last_lit / 2)) && out_length < Math.floor(in_length / 2))\n\t\t\t\treturn true;\n\t\t}\n\n\t\treturn (last_lit == lit_bufsize - 1);\n\t\t// We avoid equality with lit_bufsize because of wraparound at 64K\n\t\t// on 16 bit machines and because stored blocks are restricted to\n\t\t// 64K-1 bytes.\n\t}\n\n\t// Send the block data compressed using the given Huffman trees\n\tfunction compress_block(ltree, dtree) {\n\t\tlet dist; // distance of matched string\n\t\tlet lc; // match length or unmatched char (if dist === 0)\n\t\tlet lx = 0; // running index in dist_buf and lc_buf\n\t\tlet code; // the code to send\n\t\tlet extra; // number of extra bits to send\n\n\t\tif (last_lit !== 0) {\n\t\t\tdo {\n\t\t\t\tdist = that.dist_buf[lx];\n\t\t\t\tlc = that.lc_buf[lx];\n\t\t\t\tlx++;\n\n\t\t\t\tif (dist === 0) {\n\t\t\t\t\tsend_code(lc, ltree); // send a literal byte\n\t\t\t\t} else {\n\t\t\t\t\t// Here, lc is the match length - MIN_MATCH\n\t\t\t\t\tcode = Tree._length_code[lc];\n\n\t\t\t\t\tsend_code(code + LITERALS + 1, ltree); // send the length\n\t\t\t\t\t// code\n\t\t\t\t\textra = Tree.extra_lbits[code];\n\t\t\t\t\tif (extra !== 0) {\n\t\t\t\t\t\tlc -= Tree.base_length[code];\n\t\t\t\t\t\tsend_bits(lc, extra); // send the extra length bits\n\t\t\t\t\t}\n\t\t\t\t\tdist--; // dist is now the match distance - 1\n\t\t\t\t\tcode = Tree.d_code(dist);\n\n\t\t\t\t\tsend_code(code, dtree); // send the distance code\n\t\t\t\t\textra = Tree.extra_dbits[code];\n\t\t\t\t\tif (extra !== 0) {\n\t\t\t\t\t\tdist -= Tree.base_dist[code];\n\t\t\t\t\t\tsend_bits(dist, extra); // send the extra distance bits\n\t\t\t\t\t}\n\t\t\t\t} // literal or match pair ?\n\t\t\t} while (lx < last_lit);\n\t\t}\n\n\t\tsend_code(END_BLOCK, ltree);\n\t\tlast_eob_len = ltree[END_BLOCK * 2 + 1];\n\t}\n\n\t// Flush the bit buffer and align the output on a byte boundary\n\tfunction bi_windup() {\n\t\tif (bi_valid > 8) {\n\t\t\tput_short(bi_buf);\n\t\t} else if (bi_valid > 0) {\n\t\t\tput_byte(bi_buf & 0xff);\n\t\t}\n\t\tbi_buf = 0;\n\t\tbi_valid = 0;\n\t}\n\n\t// Copy a stored block, storing first the length and its\n\t// one's complement if requested.\n\tfunction copy_block(buf, // the input data\n\t\tlen, // its length\n\t\theader // true if block header must be written\n\t) {\n\t\tbi_windup(); // align on byte boundary\n\t\tlast_eob_len = 8; // enough lookahead for inflate\n\n\t\tif (header) {\n\t\t\tput_short(len);\n\t\t\tput_short(~len);\n\t\t}\n\n\t\tthat.pending_buf.set(win.subarray(buf, buf + len), that.pending);\n\t\tthat.pending += len;\n\t}\n\n\t// Send a stored block\n\tfunction _tr_stored_block(buf, // input block\n\t\tstored_len, // length of input block\n\t\teof // true if this is the last block for a file\n\t) {\n\t\tsend_bits((STORED_BLOCK << 1) + (eof ? 1 : 0), 3); // send block type\n\t\tcopy_block(buf, stored_len, true); // with header\n\t}\n\n\t// Determine the best encoding for the current block: dynamic trees, static\n\t// trees or store, and output the encoded block to the zip file.\n\tfunction _tr_flush_block(buf, // input block, or NULL if too old\n\t\tstored_len, // length of input block\n\t\teof // true if this is the last block for a file\n\t) {\n\t\tlet opt_lenb, static_lenb;// opt_len and static_len in bytes\n\t\tlet max_blindex = 0; // index of last bit length code of non zero freq\n\n\t\t// Build the Huffman trees unless a stored block is forced\n\t\tif (level > 0) {\n\t\t\t// Construct the literal and distance trees\n\t\t\tl_desc.build_tree(that);\n\n\t\t\td_desc.build_tree(that);\n\n\t\t\t// At this point, opt_len and static_len are the total bit lengths\n\t\t\t// of\n\t\t\t// the compressed block data, excluding the tree representations.\n\n\t\t\t// Build the bit length tree for the above two trees, and get the\n\t\t\t// index\n\t\t\t// in bl_order of the last bit length code to send.\n\t\t\tmax_blindex = build_bl_tree();\n\n\t\t\t// Determine the best encoding. Compute first the block length in\n\t\t\t// bytes\n\t\t\topt_lenb = (that.opt_len + 3 + 7) >>> 3;\n\t\t\tstatic_lenb = (that.static_len + 3 + 7) >>> 3;\n\n\t\t\tif (static_lenb <= opt_lenb)\n\t\t\t\topt_lenb = static_lenb;\n\t\t} else {\n\t\t\topt_lenb = static_lenb = stored_len + 5; // force a stored block\n\t\t}\n\n\t\tif ((stored_len + 4 <= opt_lenb) && buf != -1) {\n\t\t\t// 4: two words for the lengths\n\t\t\t// The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n\t\t\t// Otherwise we can't have processed more than WSIZE input bytes\n\t\t\t// since\n\t\t\t// the last block flush, because compression would have been\n\t\t\t// successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n\t\t\t// transform a block into a stored block.\n\t\t\t_tr_stored_block(buf, stored_len, eof);\n\t\t} else if (static_lenb == opt_lenb) {\n\t\t\tsend_bits((STATIC_TREES << 1) + (eof ? 1 : 0), 3);\n\t\t\tcompress_block(StaticTree.static_ltree, StaticTree.static_dtree);\n\t\t} else {\n\t\t\tsend_bits((DYN_TREES << 1) + (eof ? 1 : 0), 3);\n\t\t\tsend_all_trees(l_desc.max_code + 1, d_desc.max_code + 1, max_blindex + 1);\n\t\t\tcompress_block(dyn_ltree, dyn_dtree);\n\t\t}\n\n\t\t// The above check is made mod 2^32, for files larger than 512 MB\n\t\t// and uLong implemented on 32 bits.\n\n\t\tinit_block();\n\n\t\tif (eof) {\n\t\t\tbi_windup();\n\t\t}\n\t}\n\n\tfunction flush_block_only(eof) {\n\t\t_tr_flush_block(block_start >= 0 ? block_start : -1, strstart - block_start, eof);\n\t\tblock_start = strstart;\n\t\tstrm.flush_pending();\n\t}\n\n\t// Fill the win when the lookahead becomes insufficient.\n\t// Updates strstart and lookahead.\n\t//\n\t// IN assertion: lookahead < MIN_LOOKAHEAD\n\t// OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n\t// At least one byte has been read, or avail_in === 0; reads are\n\t// performed for at least two bytes (required for the zip translate_eol\n\t// option -- not supported here).\n\tfunction fill_window() {\n\t\tlet n, m;\n\t\tlet p;\n\t\tlet more; // Amount of free space at the end of the win.\n\n\t\tdo {\n\t\t\tmore = (window_size - lookahead - strstart);\n\n\t\t\t// Deal with !@#$% 64K limit:\n\t\t\tif (more === 0 && strstart === 0 && lookahead === 0) {\n\t\t\t\tmore = w_size;\n\t\t\t} else if (more == -1) {\n\t\t\t\t// Very unlikely, but possible on 16 bit machine if strstart ==\n\t\t\t\t// 0\n\t\t\t\t// and lookahead == 1 (input done one byte at time)\n\t\t\t\tmore--;\n\n\t\t\t\t// If the win is almost full and there is insufficient\n\t\t\t\t// lookahead,\n\t\t\t\t// move the upper half to the lower one to make room in the\n\t\t\t\t// upper half.\n\t\t\t} else if (strstart >= w_size + w_size - MIN_LOOKAHEAD) {\n\t\t\t\twin.set(win.subarray(w_size, w_size + w_size), 0);\n\n\t\t\t\tmatch_start -= w_size;\n\t\t\t\tstrstart -= w_size; // we now have strstart >= MAX_DIST\n\t\t\t\tblock_start -= w_size;\n\n\t\t\t\t// Slide the hash table (could be avoided with 32 bit values\n\t\t\t\t// at the expense of memory usage). We slide even when level ==\n\t\t\t\t// 0\n\t\t\t\t// to keep the hash table consistent if we switch back to level\n\t\t\t\t// > 0\n\t\t\t\t// later. (Using level 0 permanently is not an optimal usage of\n\t\t\t\t// zlib, so we don't care about this pathological case.)\n\n\t\t\t\tn = hash_size;\n\t\t\t\tp = n;\n\t\t\t\tdo {\n\t\t\t\t\tm = (head[--p] & 0xffff);\n\t\t\t\t\thead[p] = (m >= w_size ? m - w_size : 0);\n\t\t\t\t} while (--n !== 0);\n\n\t\t\t\tn = w_size;\n\t\t\t\tp = n;\n\t\t\t\tdo {\n\t\t\t\t\tm = (prev[--p] & 0xffff);\n\t\t\t\t\tprev[p] = (m >= w_size ? m - w_size : 0);\n\t\t\t\t\t// If n is not on any hash chain, prev[n] is garbage but\n\t\t\t\t\t// its value will never be used.\n\t\t\t\t} while (--n !== 0);\n\t\t\t\tmore += w_size;\n\t\t\t}\n\n\t\t\tif (strm.avail_in === 0)\n\t\t\t\treturn;\n\n\t\t\t// If there was no sliding:\n\t\t\t// strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n\t\t\t// more == window_size - lookahead - strstart\n\t\t\t// => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n\t\t\t// => more >= window_size - 2*WSIZE + 2\n\t\t\t// In the BIG_MEM or MMAP case (not yet supported),\n\t\t\t// window_size == input_size + MIN_LOOKAHEAD &&\n\t\t\t// strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n\t\t\t// Otherwise, window_size == 2*WSIZE so more >= 2.\n\t\t\t// If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n\n\t\t\tn = strm.read_buf(win, strstart + lookahead, more);\n\t\t\tlookahead += n;\n\n\t\t\t// Initialize the hash value now that we have some input:\n\t\t\tif (lookahead >= MIN_MATCH) {\n\t\t\t\tins_h = win[strstart] & 0xff;\n\t\t\t\tins_h = (((ins_h) << hash_shift) ^ (win[strstart + 1] & 0xff)) & hash_mask;\n\t\t\t}\n\t\t\t// If the whole input has less than MIN_MATCH bytes, ins_h is\n\t\t\t// garbage,\n\t\t\t// but this is not important since only literal bytes will be\n\t\t\t// emitted.\n\t\t} while (lookahead < MIN_LOOKAHEAD && strm.avail_in !== 0);\n\t}\n\n\t// Copy without compression as much as possible from the input stream,\n\t// return\n\t// the current block state.\n\t// This function does not insert new strings in the dictionary since\n\t// uncompressible data is probably not useful. This function is used\n\t// only for the level=0 compression option.\n\t// NOTE: this function should be optimized to avoid extra copying from\n\t// win to pending_buf.\n\tfunction deflate_stored(flush) {\n\t\t// Stored blocks are limited to 0xffff bytes, pending_buf is limited\n\t\t// to pending_buf_size, and each stored block has a 5 byte header:\n\n\t\tlet max_block_size = 0xffff;\n\t\tlet max_start;\n\n\t\tif (max_block_size > pending_buf_size - 5) {\n\t\t\tmax_block_size = pending_buf_size - 5;\n\t\t}\n\n\t\t// Copy as much as possible from input to output:\n\t\t// eslint-disable-next-line no-constant-condition\n\t\twhile (true) {\n\t\t\t// Fill the win as much as possible:\n\t\t\tif (lookahead <= 1) {\n\t\t\t\tfill_window();\n\t\t\t\tif (lookahead === 0 && flush == Z_NO_FLUSH)\n\t\t\t\t\treturn NeedMore;\n\t\t\t\tif (lookahead === 0)\n\t\t\t\t\tbreak; // flush the current block\n\t\t\t}\n\n\t\t\tstrstart += lookahead;\n\t\t\tlookahead = 0;\n\n\t\t\t// Emit a stored block if pending_buf will be full:\n\t\t\tmax_start = block_start + max_block_size;\n\t\t\tif (strstart === 0 || strstart >= max_start) {\n\t\t\t\t// strstart === 0 is possible when wraparound on 16-bit machine\n\t\t\t\tlookahead = (strstart - max_start);\n\t\t\t\tstrstart = max_start;\n\n\t\t\t\tflush_block_only(false);\n\t\t\t\tif (strm.avail_out === 0)\n\t\t\t\t\treturn NeedMore;\n\n\t\t\t}\n\n\t\t\t// Flush if we may have to slide, otherwise block_start may become\n\t\t\t// negative and the data will be gone:\n\t\t\tif (strstart - block_start >= w_size - MIN_LOOKAHEAD) {\n\t\t\t\tflush_block_only(false);\n\t\t\t\tif (strm.avail_out === 0)\n\t\t\t\t\treturn NeedMore;\n\t\t\t}\n\t\t}\n\n\t\tflush_block_only(flush == Z_FINISH);\n\t\tif (strm.avail_out === 0)\n\t\t\treturn (flush == Z_FINISH) ? FinishStarted : NeedMore;\n\n\t\treturn flush == Z_FINISH ? FinishDone : BlockDone;\n\t}\n\n\tfunction longest_match(cur_match) {\n\t\tlet chain_length = max_chain_length; // max hash chain length\n\t\tlet scan = strstart; // current string\n\t\tlet match; // matched string\n\t\tlet len; // length of current match\n\t\tlet best_len = prev_length; // best match length so far\n\t\tconst limit = strstart > (w_size - MIN_LOOKAHEAD) ? strstart - (w_size - MIN_LOOKAHEAD) : 0;\n\t\tlet _nice_match = nice_match;\n\n\t\t// Stop when cur_match becomes <= limit. To simplify the code,\n\t\t// we prevent matches with the string of win index 0.\n\n\t\tconst wmask = w_mask;\n\n\t\tconst strend = strstart + MAX_MATCH;\n\t\tlet scan_end1 = win[scan + best_len - 1];\n\t\tlet scan_end = win[scan + best_len];\n\n\t\t// The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of\n\t\t// 16.\n\t\t// It is easy to get rid of this optimization if necessary.\n\n\t\t// Do not waste too much time if we already have a good match:\n\t\tif (prev_length >= good_match) {\n\t\t\tchain_length >>= 2;\n\t\t}\n\n\t\t// Do not look for matches beyond the end of the input. This is\n\t\t// necessary\n\t\t// to make deflate deterministic.\n\t\tif (_nice_match > lookahead)\n\t\t\t_nice_match = lookahead;\n\n\t\tdo {\n\t\t\tmatch = cur_match;\n\n\t\t\t// Skip to next match if the match length cannot increase\n\t\t\t// or if the match length is less than 2:\n\t\t\tif (win[match + best_len] != scan_end || win[match + best_len - 1] != scan_end1 || win[match] != win[scan]\n\t\t\t\t|| win[++match] != win[scan + 1])\n\t\t\t\tcontinue;\n\n\t\t\t// The check at best_len-1 can be removed because it will be made\n\t\t\t// again later. (This heuristic is not always a win.)\n\t\t\t// It is not necessary to compare scan[2] and match[2] since they\n\t\t\t// are always equal when the other bytes match, given that\n\t\t\t// the hash keys are equal and that HASH_BITS >= 8.\n\t\t\tscan += 2;\n\t\t\tmatch++;\n\n\t\t\t// We check for insufficient lookahead only every 8th comparison;\n\t\t\t// the 256th check will be made at strstart+258.\n\t\t\t// eslint-disable-next-line no-empty\n\t\t\tdo {\n\t\t\t} while (win[++scan] == win[++match] && win[++scan] == win[++match] && win[++scan] == win[++match]\n\t\t\t&& win[++scan] == win[++match] && win[++scan] == win[++match] && win[++scan] == win[++match]\n\t\t\t&& win[++scan] == win[++match] && win[++scan] == win[++match] && scan < strend);\n\n\t\t\tlen = MAX_MATCH - (strend - scan);\n\t\t\tscan = strend - MAX_MATCH;\n\n\t\t\tif (len > best_len) {\n\t\t\t\tmatch_start = cur_match;\n\t\t\t\tbest_len = len;\n\t\t\t\tif (len >= _nice_match)\n\t\t\t\t\tbreak;\n\t\t\t\tscan_end1 = win[scan + best_len - 1];\n\t\t\t\tscan_end = win[scan + best_len];\n\t\t\t}\n\n\t\t} while ((cur_match = (prev[cur_match & wmask] & 0xffff)) > limit && --chain_length !== 0);\n\n\t\tif (best_len <= lookahead)\n\t\t\treturn best_len;\n\t\treturn lookahead;\n\t}\n\n\t// Compress as much as possible from the input stream, return the current\n\t// block state.\n\t// This function does not perform lazy evaluation of matches and inserts\n\t// new strings in the dictionary only for unmatched strings or for short\n\t// matches. It is used only for the fast compression options.\n\tfunction deflate_fast(flush) {\n\t\t// short hash_head = 0; // head of the hash chain\n\t\tlet hash_head = 0; // head of the hash chain\n\t\tlet bflush; // set if current block must be flushed\n\n\t\t// eslint-disable-next-line no-constant-condition\n\t\twhile (true) {\n\t\t\t// Make sure that we always have enough lookahead, except\n\t\t\t// at the end of the input file. We need MAX_MATCH bytes\n\t\t\t// for the next match, plus MIN_MATCH bytes to insert the\n\t\t\t// string following the next match.\n\t\t\tif (lookahead < MIN_LOOKAHEAD) {\n\t\t\t\tfill_window();\n\t\t\t\tif (lookahead < MIN_LOOKAHEAD && flush == Z_NO_FLUSH) {\n\t\t\t\t\treturn NeedMore;\n\t\t\t\t}\n\t\t\t\tif (lookahead === 0)\n\t\t\t\t\tbreak; // flush the current block\n\t\t\t}\n\n\t\t\t// Insert the string win[strstart .. strstart+2] in the\n\t\t\t// dictionary, and set hash_head to the head of the hash chain:\n\t\t\tif (lookahead >= MIN_MATCH) {\n\t\t\t\tins_h = (((ins_h) << hash_shift) ^ (win[(strstart) + (MIN_MATCH - 1)] & 0xff)) & hash_mask;\n\n\t\t\t\t// prev[strstart&w_mask]=hash_head=head[ins_h];\n\t\t\t\thash_head = (head[ins_h] & 0xffff);\n\t\t\t\tprev[strstart & w_mask] = head[ins_h];\n\t\t\t\thead[ins_h] = strstart;\n\t\t\t}\n\n\t\t\t// Find the longest match, discarding those <= prev_length.\n\t\t\t// At this point we have always match_length < MIN_MATCH\n\n\t\t\tif (hash_head !== 0 && ((strstart - hash_head) & 0xffff) <= w_size - MIN_LOOKAHEAD) {\n\t\t\t\t// To simplify the code, we prevent matches with the string\n\t\t\t\t// of win index 0 (in particular we have to avoid a match\n\t\t\t\t// of the string with itself at the start of the input file).\n\t\t\t\tif (strategy != Z_HUFFMAN_ONLY) {\n\t\t\t\t\tmatch_length = longest_match(hash_head);\n\t\t\t\t}\n\t\t\t\t// longest_match() sets match_start\n\t\t\t}\n\t\t\tif (match_length >= MIN_MATCH) {\n\t\t\t\t// check_match(strstart, match_start, match_length);\n\n\t\t\t\tbflush = _tr_tally(strstart - match_start, match_length - MIN_MATCH);\n\n\t\t\t\tlookahead -= match_length;\n\n\t\t\t\t// Insert new strings in the hash table only if the match length\n\t\t\t\t// is not too large. This saves time but degrades compression.\n\t\t\t\tif (match_length <= max_lazy_match && lookahead >= MIN_MATCH) {\n\t\t\t\t\tmatch_length--; // string at strstart already in hash table\n\t\t\t\t\tdo {\n\t\t\t\t\t\tstrstart++;\n\n\t\t\t\t\t\tins_h = ((ins_h << hash_shift) ^ (win[(strstart) + (MIN_MATCH - 1)] & 0xff)) & hash_mask;\n\t\t\t\t\t\t// prev[strstart&w_mask]=hash_head=head[ins_h];\n\t\t\t\t\t\thash_head = (head[ins_h] & 0xffff);\n\t\t\t\t\t\tprev[strstart & w_mask] = head[ins_h];\n\t\t\t\t\t\thead[ins_h] = strstart;\n\n\t\t\t\t\t\t// strstart never exceeds WSIZE-MAX_MATCH, so there are\n\t\t\t\t\t\t// always MIN_MATCH bytes ahead.\n\t\t\t\t\t} while (--match_length !== 0);\n\t\t\t\t\tstrstart++;\n\t\t\t\t} else {\n\t\t\t\t\tstrstart += match_length;\n\t\t\t\t\tmatch_length = 0;\n\t\t\t\t\tins_h = win[strstart] & 0xff;\n\n\t\t\t\t\tins_h = (((ins_h) << hash_shift) ^ (win[strstart + 1] & 0xff)) & hash_mask;\n\t\t\t\t\t// If lookahead < MIN_MATCH, ins_h is garbage, but it does\n\t\t\t\t\t// not\n\t\t\t\t\t// matter since it will be recomputed at next deflate call.\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// No match, output a literal byte\n\n\t\t\t\tbflush = _tr_tally(0, win[strstart] & 0xff);\n\t\t\t\tlookahead--;\n\t\t\t\tstrstart++;\n\t\t\t}\n\t\t\tif (bflush) {\n\n\t\t\t\tflush_block_only(false);\n\t\t\t\tif (strm.avail_out === 0)\n\t\t\t\t\treturn NeedMore;\n\t\t\t}\n\t\t}\n\n\t\tflush_block_only(flush == Z_FINISH);\n\t\tif (strm.avail_out === 0) {\n\t\t\tif (flush == Z_FINISH)\n\t\t\t\treturn FinishStarted;\n\t\t\telse\n\t\t\t\treturn NeedMore;\n\t\t}\n\t\treturn flush == Z_FINISH ? FinishDone : BlockDone;\n\t}\n\n\t// Same as above, but achieves better compression. We use a lazy\n\t// evaluation for matches: a match is finally adopted only if there is\n\t// no better match at the next win position.\n\tfunction deflate_slow(flush) {\n\t\t// short hash_head = 0; // head of hash chain\n\t\tlet hash_head = 0; // head of hash chain\n\t\tlet bflush; // set if current block must be flushed\n\t\tlet max_insert;\n\n\t\t// Process the input block.\n\t\t// eslint-disable-next-line no-constant-condition\n\t\twhile (true) {\n\t\t\t// Make sure that we always have enough lookahead, except\n\t\t\t// at the end of the input file. We need MAX_MATCH bytes\n\t\t\t// for the next match, plus MIN_MATCH bytes to insert the\n\t\t\t// string following the next match.\n\n\t\t\tif (lookahead < MIN_LOOKAHEAD) {\n\t\t\t\tfill_window();\n\t\t\t\tif (lookahead < MIN_LOOKAHEAD && flush == Z_NO_FLUSH) {\n\t\t\t\t\treturn NeedMore;\n\t\t\t\t}\n\t\t\t\tif (lookahead === 0)\n\t\t\t\t\tbreak; // flush the current block\n\t\t\t}\n\n\t\t\t// Insert the string win[strstart .. strstart+2] in the\n\t\t\t// dictionary, and set hash_head to the head of the hash chain:\n\n\t\t\tif (lookahead >= MIN_MATCH) {\n\t\t\t\tins_h = (((ins_h) << hash_shift) ^ (win[(strstart) + (MIN_MATCH - 1)] & 0xff)) & hash_mask;\n\t\t\t\t// prev[strstart&w_mask]=hash_head=head[ins_h];\n\t\t\t\thash_head = (head[ins_h] & 0xffff);\n\t\t\t\tprev[strstart & w_mask] = head[ins_h];\n\t\t\t\thead[ins_h] = strstart;\n\t\t\t}\n\n\t\t\t// Find the longest match, discarding those <= prev_length.\n\t\t\tprev_length = match_length;\n\t\t\tprev_match = match_start;\n\t\t\tmatch_length = MIN_MATCH - 1;\n\n\t\t\tif (hash_head !== 0 && prev_length < max_lazy_match && ((strstart - hash_head) & 0xffff) <= w_size - MIN_LOOKAHEAD) {\n\t\t\t\t// To simplify the code, we prevent matches with the string\n\t\t\t\t// of win index 0 (in particular we have to avoid a match\n\t\t\t\t// of the string with itself at the start of the input file).\n\n\t\t\t\tif (strategy != Z_HUFFMAN_ONLY) {\n\t\t\t\t\tmatch_length = longest_match(hash_head);\n\t\t\t\t}\n\t\t\t\t// longest_match() sets match_start\n\n\t\t\t\tif (match_length <= 5 && (strategy == Z_FILTERED || (match_length == MIN_MATCH && strstart - match_start > 4096))) {\n\n\t\t\t\t\t// If prev_match is also MIN_MATCH, match_start is garbage\n\t\t\t\t\t// but we will ignore the current match anyway.\n\t\t\t\t\tmatch_length = MIN_MATCH - 1;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// If there was a match at the previous step and the current\n\t\t\t// match is not better, output the previous match:\n\t\t\tif (prev_length >= MIN_MATCH && match_length <= prev_length) {\n\t\t\t\tmax_insert = strstart + lookahead - MIN_MATCH;\n\t\t\t\t// Do not insert strings in hash table beyond this.\n\n\t\t\t\t// check_match(strstart-1, prev_match, prev_length);\n\n\t\t\t\tbflush = _tr_tally(strstart - 1 - prev_match, prev_length - MIN_MATCH);\n\n\t\t\t\t// Insert in hash table all strings up to the end of the match.\n\t\t\t\t// strstart-1 and strstart are already inserted. If there is not\n\t\t\t\t// enough lookahead, the last two strings are not inserted in\n\t\t\t\t// the hash table.\n\t\t\t\tlookahead -= prev_length - 1;\n\t\t\t\tprev_length -= 2;\n\t\t\t\tdo {\n\t\t\t\t\tif (++strstart <= max_insert) {\n\t\t\t\t\t\tins_h = (((ins_h) << hash_shift) ^ (win[(strstart) + (MIN_MATCH - 1)] & 0xff)) & hash_mask;\n\t\t\t\t\t\t// prev[strstart&w_mask]=hash_head=head[ins_h];\n\t\t\t\t\t\thash_head = (head[ins_h] & 0xffff);\n\t\t\t\t\t\tprev[strstart & w_mask] = head[ins_h];\n\t\t\t\t\t\thead[ins_h] = strstart;\n\t\t\t\t\t}\n\t\t\t\t} while (--prev_length !== 0);\n\t\t\t\tmatch_available = 0;\n\t\t\t\tmatch_length = MIN_MATCH - 1;\n\t\t\t\tstrstart++;\n\n\t\t\t\tif (bflush) {\n\t\t\t\t\tflush_block_only(false);\n\t\t\t\t\tif (strm.avail_out === 0)\n\t\t\t\t\t\treturn NeedMore;\n\t\t\t\t}\n\t\t\t} else if (match_available !== 0) {\n\n\t\t\t\t// If there was no match at the previous position, output a\n\t\t\t\t// single literal. If there was a match but the current match\n\t\t\t\t// is longer, truncate the previous match to a single literal.\n\n\t\t\t\tbflush = _tr_tally(0, win[strstart - 1] & 0xff);\n\n\t\t\t\tif (bflush) {\n\t\t\t\t\tflush_block_only(false);\n\t\t\t\t}\n\t\t\t\tstrstart++;\n\t\t\t\tlookahead--;\n\t\t\t\tif (strm.avail_out === 0)\n\t\t\t\t\treturn NeedMore;\n\t\t\t} else {\n\t\t\t\t// There is no previous match to compare with, wait for\n\t\t\t\t// the next step to decide.\n\n\t\t\t\tmatch_available = 1;\n\t\t\t\tstrstart++;\n\t\t\t\tlookahead--;\n\t\t\t}\n\t\t}\n\n\t\tif (match_available !== 0) {\n\t\t\tbflush = _tr_tally(0, win[strstart - 1] & 0xff);\n\t\t\tmatch_available = 0;\n\t\t}\n\t\tflush_block_only(flush == Z_FINISH);\n\n\t\tif (strm.avail_out === 0) {\n\t\t\tif (flush == Z_FINISH)\n\t\t\t\treturn FinishStarted;\n\t\t\telse\n\t\t\t\treturn NeedMore;\n\t\t}\n\n\t\treturn flush == Z_FINISH ? FinishDone : BlockDone;\n\t}\n\n\tfunction deflateReset(strm) {\n\t\tstrm.total_in = strm.total_out = 0;\n\t\tstrm.msg = null; //\n\n\t\tthat.pending = 0;\n\t\tthat.pending_out = 0;\n\n\t\tstatus = BUSY_STATE;\n\n\t\tlast_flush = Z_NO_FLUSH;\n\n\t\ttr_init();\n\t\tlm_init();\n\t\treturn Z_OK;\n\t}\n\n\tthat.deflateInit = function (strm, _level, bits, _method, memLevel, _strategy) {\n\t\tif (!_method)\n\t\t\t_method = Z_DEFLATED;\n\t\tif (!memLevel)\n\t\t\tmemLevel = DEF_MEM_LEVEL;\n\t\tif (!_strategy)\n\t\t\t_strategy = Z_DEFAULT_STRATEGY;\n\n\t\t// byte[] my_version=ZLIB_VERSION;\n\n\t\t//\n\t\t// if (!version || version[0] != my_version[0]\n\t\t// || stream_size != sizeof(z_stream)) {\n\t\t// return Z_VERSION_ERROR;\n\t\t// }\n\n\t\tstrm.msg = null;\n\n\t\tif (_level == Z_DEFAULT_COMPRESSION)\n\t\t\t_level = 6;\n\n\t\tif (memLevel < 1 || memLevel > MAX_MEM_LEVEL || _method != Z_DEFLATED || bits < 9 || bits > 15 || _level < 0 || _level > 9 || _strategy < 0\n\t\t\t|| _strategy > Z_HUFFMAN_ONLY) {\n\t\t\treturn Z_STREAM_ERROR;\n\t\t}\n\n\t\tstrm.dstate = that;\n\n\t\tw_bits = bits;\n\t\tw_size = 1 << w_bits;\n\t\tw_mask = w_size - 1;\n\n\t\thash_bits = memLevel + 7;\n\t\thash_size = 1 << hash_bits;\n\t\thash_mask = hash_size - 1;\n\t\thash_shift = Math.floor((hash_bits + MIN_MATCH - 1) / MIN_MATCH);\n\n\t\twin = new Uint8Array(w_size * 2);\n\t\tprev = [];\n\t\thead = [];\n\n\t\tlit_bufsize = 1 << (memLevel + 6); // 16K elements by default\n\n\t\tthat.pending_buf = new Uint8Array(lit_bufsize * 4);\n\t\tpending_buf_size = lit_bufsize * 4;\n\n\t\tthat.dist_buf = new Uint16Array(lit_bufsize);\n\t\tthat.lc_buf = new Uint8Array(lit_bufsize);\n\n\t\tlevel = _level;\n\n\t\tstrategy = _strategy;\n\n\t\treturn deflateReset(strm);\n\t};\n\n\tthat.deflateEnd = function () {\n\t\tif (status != INIT_STATE && status != BUSY_STATE && status != FINISH_STATE) {\n\t\t\treturn Z_STREAM_ERROR;\n\t\t}\n\t\t// Deallocate in reverse order of allocations:\n\t\tthat.lc_buf = null;\n\t\tthat.dist_buf = null;\n\t\tthat.pending_buf = null;\n\t\thead = null;\n\t\tprev = null;\n\t\twin = null;\n\t\t// free\n\t\tthat.dstate = null;\n\t\treturn status == BUSY_STATE ? Z_DATA_ERROR : Z_OK;\n\t};\n\n\tthat.deflateParams = function (strm, _level, _strategy) {\n\t\tlet err = Z_OK;\n\n\t\tif (_level == Z_DEFAULT_COMPRESSION) {\n\t\t\t_level = 6;\n\t\t}\n\t\tif (_level < 0 || _level > 9 || _strategy < 0 || _strategy > Z_HUFFMAN_ONLY) {\n\t\t\treturn Z_STREAM_ERROR;\n\t\t}\n\n\t\tif (config_table[level].func != config_table[_level].func && strm.total_in !== 0) {\n\t\t\t// Flush the last buffer:\n\t\t\terr = strm.deflate(Z_PARTIAL_FLUSH);\n\t\t}\n\n\t\tif (level != _level) {\n\t\t\tlevel = _level;\n\t\t\tmax_lazy_match = config_table[level].max_lazy;\n\t\t\tgood_match = config_table[level].good_length;\n\t\t\tnice_match = config_table[level].nice_length;\n\t\t\tmax_chain_length = config_table[level].max_chain;\n\t\t}\n\t\tstrategy = _strategy;\n\t\treturn err;\n\t};\n\n\tthat.deflateSetDictionary = function (strm, dictionary, dictLength) {\n\t\tlet length = dictLength;\n\t\tlet n, index = 0;\n\n\t\tif (!dictionary || status != INIT_STATE)\n\t\t\treturn Z_STREAM_ERROR;\n\n\t\tif (length < MIN_MATCH)\n\t\t\treturn Z_OK;\n\t\tif (length > w_size - MIN_LOOKAHEAD) {\n\t\t\tlength = w_size - MIN_LOOKAHEAD;\n\t\t\tindex = dictLength - length; // use the tail of the dictionary\n\t\t}\n\t\twin.set(dictionary.subarray(index, index + length), 0);\n\n\t\tstrstart = length;\n\t\tblock_start = length;\n\n\t\t// Insert all strings in the hash table (except for the last two bytes).\n\t\t// s->lookahead stays null, so s->ins_h will be recomputed at the next\n\t\t// call of fill_window.\n\n\t\tins_h = win[0] & 0xff;\n\t\tins_h = (((ins_h) << hash_shift) ^ (win[1] & 0xff)) & hash_mask;\n\n\t\tfor (n = 0; n <= length - MIN_MATCH; n++) {\n\t\t\tins_h = (((ins_h) << hash_shift) ^ (win[(n) + (MIN_MATCH - 1)] & 0xff)) & hash_mask;\n\t\t\tprev[n & w_mask] = head[ins_h];\n\t\t\thead[ins_h] = n;\n\t\t}\n\t\treturn Z_OK;\n\t};\n\n\tthat.deflate = function (_strm, flush) {\n\t\tlet i, header, level_flags, old_flush, bstate;\n\n\t\tif (flush > Z_FINISH || flush < 0) {\n\t\t\treturn Z_STREAM_ERROR;\n\t\t}\n\n\t\tif (!_strm.next_out || (!_strm.next_in && _strm.avail_in !== 0) || (status == FINISH_STATE && flush != Z_FINISH)) {\n\t\t\t_strm.msg = z_errmsg[Z_NEED_DICT - (Z_STREAM_ERROR)];\n\t\t\treturn Z_STREAM_ERROR;\n\t\t}\n\t\tif (_strm.avail_out === 0) {\n\t\t\t_strm.msg = z_errmsg[Z_NEED_DICT - (Z_BUF_ERROR)];\n\t\t\treturn Z_BUF_ERROR;\n\t\t}\n\n\t\tstrm = _strm; // just in case\n\t\told_flush = last_flush;\n\t\tlast_flush = flush;\n\n\t\t// Write the zlib header\n\t\tif (status == INIT_STATE) {\n\t\t\theader = (Z_DEFLATED + ((w_bits - 8) << 4)) << 8;\n\t\t\tlevel_flags = ((level - 1) & 0xff) >> 1;\n\n\t\t\tif (level_flags > 3)\n\t\t\t\tlevel_flags = 3;\n\t\t\theader |= (level_flags << 6);\n\t\t\tif (strstart !== 0)\n\t\t\t\theader |= PRESET_DICT;\n\t\t\theader += 31 - (header % 31);\n\n\t\t\tstatus = BUSY_STATE;\n\t\t\tputShortMSB(header);\n\t\t}\n\n\t\t// Flush as much pending output as possible\n\t\tif (that.pending !== 0) {\n\t\t\tstrm.flush_pending();\n\t\t\tif (strm.avail_out === 0) {\n\t\t\t\t// console.log(\" avail_out==0\");\n\t\t\t\t// Since avail_out is 0, deflate will be called again with\n\t\t\t\t// more output space, but possibly with both pending and\n\t\t\t\t// avail_in equal to zero. There won't be anything to do,\n\t\t\t\t// but this is not an error situation so make sure we\n\t\t\t\t// return OK instead of BUF_ERROR at next call of deflate:\n\t\t\t\tlast_flush = -1;\n\t\t\t\treturn Z_OK;\n\t\t\t}\n\n\t\t\t// Make sure there is something to do and avoid duplicate\n\t\t\t// consecutive\n\t\t\t// flushes. For repeated and useless calls with Z_FINISH, we keep\n\t\t\t// returning Z_STREAM_END instead of Z_BUFF_ERROR.\n\t\t} else if (strm.avail_in === 0 && flush <= old_flush && flush != Z_FINISH) {\n\t\t\tstrm.msg = z_errmsg[Z_NEED_DICT - (Z_BUF_ERROR)];\n\t\t\treturn Z_BUF_ERROR;\n\t\t}\n\n\t\t// User must not provide more input after the first FINISH:\n\t\tif (status == FINISH_STATE && strm.avail_in !== 0) {\n\t\t\t_strm.msg = z_errmsg[Z_NEED_DICT - (Z_BUF_ERROR)];\n\t\t\treturn Z_BUF_ERROR;\n\t\t}\n\n\t\t// Start a new block or continue the current one.\n\t\tif (strm.avail_in !== 0 || lookahead !== 0 || (flush != Z_NO_FLUSH && status != FINISH_STATE)) {\n\t\t\tbstate = -1;\n\t\t\tswitch (config_table[level].func) {\n\t\t\t\tcase STORED:\n\t\t\t\t\tbstate = deflate_stored(flush);\n\t\t\t\t\tbreak;\n\t\t\t\tcase FAST:\n\t\t\t\t\tbstate = deflate_fast(flush);\n\t\t\t\t\tbreak;\n\t\t\t\tcase SLOW:\n\t\t\t\t\tbstate = deflate_slow(flush);\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t}\n\n\t\t\tif (bstate == FinishStarted || bstate == FinishDone) {\n\t\t\t\tstatus = FINISH_STATE;\n\t\t\t}\n\t\t\tif (bstate == NeedMore || bstate == FinishStarted) {\n\t\t\t\tif (strm.avail_out === 0) {\n\t\t\t\t\tlast_flush = -1; // avoid BUF_ERROR next call, see above\n\t\t\t\t}\n\t\t\t\treturn Z_OK;\n\t\t\t\t// If flush != Z_NO_FLUSH && avail_out === 0, the next call\n\t\t\t\t// of deflate should use the same flush parameter to make sure\n\t\t\t\t// that the flush is complete. So we don't have to output an\n\t\t\t\t// empty block here, this will be done at next call. This also\n\t\t\t\t// ensures that for a very small output buffer, we emit at most\n\t\t\t\t// one empty block.\n\t\t\t}\n\n\t\t\tif (bstate == BlockDone) {\n\t\t\t\tif (flush == Z_PARTIAL_FLUSH) {\n\t\t\t\t\t_tr_align();\n\t\t\t\t} else { // FULL_FLUSH or SYNC_FLUSH\n\t\t\t\t\t_tr_stored_block(0, 0, false);\n\t\t\t\t\t// For a full flush, this empty block will be recognized\n\t\t\t\t\t// as a special marker by inflate_sync().\n\t\t\t\t\tif (flush == Z_FULL_FLUSH) {\n\t\t\t\t\t\t// state.head[s.hash_size-1]=0;\n\t\t\t\t\t\tfor (i = 0; i < hash_size/*-1*/; i++)\n\t\t\t\t\t\t\t// forget history\n\t\t\t\t\t\t\thead[i] = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstrm.flush_pending();\n\t\t\t\tif (strm.avail_out === 0) {\n\t\t\t\t\tlast_flush = -1; // avoid BUF_ERROR at next call, see above\n\t\t\t\t\treturn Z_OK;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (flush != Z_FINISH)\n\t\t\treturn Z_OK;\n\t\treturn Z_STREAM_END;\n\t};\n}\n\n// ZStream\n\nfunction ZStream() {\n\tconst that = this;\n\tthat.next_in_index = 0;\n\tthat.next_out_index = 0;\n\t// that.next_in; // next input byte\n\tthat.avail_in = 0; // number of bytes available at next_in\n\tthat.total_in = 0; // total nb of input bytes read so far\n\t// that.next_out; // next output byte should be put there\n\tthat.avail_out = 0; // remaining free space at next_out\n\tthat.total_out = 0; // total nb of bytes output so far\n\t// that.msg;\n\t// that.dstate;\n}\n\nZStream.prototype = {\n\tdeflateInit: function (level, bits) {\n\t\tconst that = this;\n\t\tthat.dstate = new Deflate();\n\t\tif (!bits)\n\t\t\tbits = MAX_BITS;\n\t\treturn that.dstate.deflateInit(that, level, bits);\n\t},\n\n\tdeflate: function (flush) {\n\t\tconst that = this;\n\t\tif (!that.dstate) {\n\t\t\treturn Z_STREAM_ERROR;\n\t\t}\n\t\treturn that.dstate.deflate(that, flush);\n\t},\n\n\tdeflateEnd: function () {\n\t\tconst that = this;\n\t\tif (!that.dstate)\n\t\t\treturn Z_STREAM_ERROR;\n\t\tconst ret = that.dstate.deflateEnd();\n\t\tthat.dstate = null;\n\t\treturn ret;\n\t},\n\n\tdeflateParams: function (level, strategy) {\n\t\tconst that = this;\n\t\tif (!that.dstate)\n\t\t\treturn Z_STREAM_ERROR;\n\t\treturn that.dstate.deflateParams(that, level, strategy);\n\t},\n\n\tdeflateSetDictionary: function (dictionary, dictLength) {\n\t\tconst that = this;\n\t\tif (!that.dstate)\n\t\t\treturn Z_STREAM_ERROR;\n\t\treturn that.dstate.deflateSetDictionary(that, dictionary, dictLength);\n\t},\n\n\t// Read a new buffer from the current input stream, update the\n\t// total number of bytes read. All deflate() input goes through\n\t// this function so some applications may wish to modify it to avoid\n\t// allocating a large strm->next_in buffer and copying from it.\n\t// (See also flush_pending()).\n\tread_buf: function (buf, start, size) {\n\t\tconst that = this;\n\t\tlet len = that.avail_in;\n\t\tif (len > size)\n\t\t\tlen = size;\n\t\tif (len === 0)\n\t\t\treturn 0;\n\t\tthat.avail_in -= len;\n\t\tbuf.set(that.next_in.subarray(that.next_in_index, that.next_in_index + len), start);\n\t\tthat.next_in_index += len;\n\t\tthat.total_in += len;\n\t\treturn len;\n\t},\n\n\t// Flush as much pending output as possible. All deflate() output goes\n\t// through this function so some applications may wish to modify it\n\t// to avoid allocating a large strm->next_out buffer and copying into it.\n\t// (See also read_buf()).\n\tflush_pending: function () {\n\t\tconst that = this;\n\t\tlet len = that.dstate.pending;\n\n\t\tif (len > that.avail_out)\n\t\t\tlen = that.avail_out;\n\t\tif (len === 0)\n\t\t\treturn;\n\n\t\t// if (that.dstate.pending_buf.length <= that.dstate.pending_out || that.next_out.length <= that.next_out_index\n\t\t// || that.dstate.pending_buf.length < (that.dstate.pending_out + len) || that.next_out.length < (that.next_out_index +\n\t\t// len)) {\n\t\t// console.log(that.dstate.pending_buf.length + \", \" + that.dstate.pending_out + \", \" + that.next_out.length + \", \" +\n\t\t// that.next_out_index + \", \" + len);\n\t\t// console.log(\"avail_out=\" + that.avail_out);\n\t\t// }\n\n\t\tthat.next_out.set(that.dstate.pending_buf.subarray(that.dstate.pending_out, that.dstate.pending_out + len), that.next_out_index);\n\n\t\tthat.next_out_index += len;\n\t\tthat.dstate.pending_out += len;\n\t\tthat.total_out += len;\n\t\tthat.avail_out -= len;\n\t\tthat.dstate.pending -= len;\n\t\tif (that.dstate.pending === 0) {\n\t\t\tthat.dstate.pending_out = 0;\n\t\t}\n\t}\n};\n\n// Deflate\n\nfunction ZipDeflate(options) {\n\tconst that = this;\n\tconst z = new ZStream();\n\tconst bufsize = getMaximumCompressedSize(options && options.chunkSize ? options.chunkSize : 64 * 1024);\n\tconst flush = Z_NO_FLUSH;\n\tconst buf = new Uint8Array(bufsize);\n\tlet level = options ? options.level : Z_DEFAULT_COMPRESSION;\n\tif (typeof level == \"undefined\")\n\t\tlevel = Z_DEFAULT_COMPRESSION;\n\tz.deflateInit(level);\n\tz.next_out = buf;\n\n\tthat.append = function (data, onprogress) {\n\t\tlet err, array, lastIndex = 0, bufferIndex = 0, bufferSize = 0;\n\t\tconst buffers = [];\n\t\tif (!data.length)\n\t\t\treturn;\n\t\tz.next_in_index = 0;\n\t\tz.next_in = data;\n\t\tz.avail_in = data.length;\n\t\tdo {\n\t\t\tz.next_out_index = 0;\n\t\t\tz.avail_out = bufsize;\n\t\t\terr = z.deflate(flush);\n\t\t\tif (err != Z_OK)\n\t\t\t\tthrow new Error(\"deflating: \" + z.msg);\n\t\t\tif (z.next_out_index)\n\t\t\t\tif (z.next_out_index == bufsize)\n\t\t\t\t\tbuffers.push(new Uint8Array(buf));\n\t\t\t\telse\n\t\t\t\t\tbuffers.push(buf.slice(0, z.next_out_index));\n\t\t\tbufferSize += z.next_out_index;\n\t\t\tif (onprogress && z.next_in_index > 0 && z.next_in_index != lastIndex) {\n\t\t\t\tonprogress(z.next_in_index);\n\t\t\t\tlastIndex = z.next_in_index;\n\t\t\t}\n\t\t} while (z.avail_in > 0 || z.avail_out === 0);\n\t\tif (buffers.length > 1) {\n\t\t\tarray = new Uint8Array(bufferSize);\n\t\t\tbuffers.forEach(function (chunk) {\n\t\t\t\tarray.set(chunk, bufferIndex);\n\t\t\t\tbufferIndex += chunk.length;\n\t\t\t});\n\t\t} else {\n\t\t\tarray = buffers[0] || new Uint8Array(0);\n\t\t}\n\t\treturn array;\n\t};\n\tthat.flush = function () {\n\t\tlet err, array, bufferIndex = 0, bufferSize = 0;\n\t\tconst buffers = [];\n\t\tdo {\n\t\t\tz.next_out_index = 0;\n\t\t\tz.avail_out = bufsize;\n\t\t\terr = z.deflate(Z_FINISH);\n\t\t\tif (err != Z_STREAM_END && err != Z_OK)\n\t\t\t\tthrow new Error(\"deflating: \" + z.msg);\n\t\t\tif (bufsize - z.avail_out > 0)\n\t\t\t\tbuffers.push(buf.slice(0, z.next_out_index));\n\t\t\tbufferSize += z.next_out_index;\n\t\t} while (z.avail_in > 0 || z.avail_out === 0);\n\t\tz.deflateEnd();\n\t\tarray = new Uint8Array(bufferSize);\n\t\tbuffers.forEach(function (chunk) {\n\t\t\tarray.set(chunk, bufferIndex);\n\t\t\tbufferIndex += chunk.length;\n\t\t});\n\t\treturn array;\n\t};\n}\n\nfunction getMaximumCompressedSize(uncompressedSize) {\n\treturn uncompressedSize + (5 * (Math.floor(uncompressedSize / 16383) + 1));\n}\n\nexport default ZipDeflate;","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/*\n * This program is based on JZlib 1.0.2 ymnk, JCraft,Inc.\n * JZlib is based on zlib-1.1.3, so all credit should go authors\n * Jean-loup Gailly(jloup@gzip.org) and Mark Adler(madler@alumni.caltech.edu)\n * and contributors of zlib.\n */\n\n// Global\nconst MAX_BITS = 15;\n\nconst Z_OK = 0;\nconst Z_STREAM_END = 1;\nconst Z_NEED_DICT = 2;\nconst Z_STREAM_ERROR = -2;\nconst Z_DATA_ERROR = -3;\nconst Z_MEM_ERROR = -4;\nconst Z_BUF_ERROR = -5;\n\nconst inflate_mask = [0x00000000, 0x00000001, 0x00000003, 0x00000007, 0x0000000f, 0x0000001f, 0x0000003f, 0x0000007f, 0x000000ff, 0x000001ff, 0x000003ff,\n\t0x000007ff, 0x00000fff, 0x00001fff, 0x00003fff, 0x00007fff, 0x0000ffff];\n\nconst MANY = 1440;\n\n// JZlib version : \"1.0.2\"\nconst Z_NO_FLUSH = 0;\nconst Z_FINISH = 4;\n\n// InfTree\nconst fixed_bl = 9;\nconst fixed_bd = 5;\n\nconst fixed_tl = [96, 7, 256, 0, 8, 80, 0, 8, 16, 84, 8, 115, 82, 7, 31, 0, 8, 112, 0, 8, 48, 0, 9, 192, 80, 7, 10, 0, 8, 96, 0, 8, 32, 0, 9, 160, 0, 8, 0,\n\t0, 8, 128, 0, 8, 64, 0, 9, 224, 80, 7, 6, 0, 8, 88, 0, 8, 24, 0, 9, 144, 83, 7, 59, 0, 8, 120, 0, 8, 56, 0, 9, 208, 81, 7, 17, 0, 8, 104, 0, 8, 40,\n\t0, 9, 176, 0, 8, 8, 0, 8, 136, 0, 8, 72, 0, 9, 240, 80, 7, 4, 0, 8, 84, 0, 8, 20, 85, 8, 227, 83, 7, 43, 0, 8, 116, 0, 8, 52, 0, 9, 200, 81, 7, 13,\n\t0, 8, 100, 0, 8, 36, 0, 9, 168, 0, 8, 4, 0, 8, 132, 0, 8, 68, 0, 9, 232, 80, 7, 8, 0, 8, 92, 0, 8, 28, 0, 9, 152, 84, 7, 83, 0, 8, 124, 0, 8, 60,\n\t0, 9, 216, 82, 7, 23, 0, 8, 108, 0, 8, 44, 0, 9, 184, 0, 8, 12, 0, 8, 140, 0, 8, 76, 0, 9, 248, 80, 7, 3, 0, 8, 82, 0, 8, 18, 85, 8, 163, 83, 7,\n\t35, 0, 8, 114, 0, 8, 50, 0, 9, 196, 81, 7, 11, 0, 8, 98, 0, 8, 34, 0, 9, 164, 0, 8, 2, 0, 8, 130, 0, 8, 66, 0, 9, 228, 80, 7, 7, 0, 8, 90, 0, 8,\n\t26, 0, 9, 148, 84, 7, 67, 0, 8, 122, 0, 8, 58, 0, 9, 212, 82, 7, 19, 0, 8, 106, 0, 8, 42, 0, 9, 180, 0, 8, 10, 0, 8, 138, 0, 8, 74, 0, 9, 244, 80,\n\t7, 5, 0, 8, 86, 0, 8, 22, 192, 8, 0, 83, 7, 51, 0, 8, 118, 0, 8, 54, 0, 9, 204, 81, 7, 15, 0, 8, 102, 0, 8, 38, 0, 9, 172, 0, 8, 6, 0, 8, 134, 0,\n\t8, 70, 0, 9, 236, 80, 7, 9, 0, 8, 94, 0, 8, 30, 0, 9, 156, 84, 7, 99, 0, 8, 126, 0, 8, 62, 0, 9, 220, 82, 7, 27, 0, 8, 110, 0, 8, 46, 0, 9, 188, 0,\n\t8, 14, 0, 8, 142, 0, 8, 78, 0, 9, 252, 96, 7, 256, 0, 8, 81, 0, 8, 17, 85, 8, 131, 82, 7, 31, 0, 8, 113, 0, 8, 49, 0, 9, 194, 80, 7, 10, 0, 8, 97,\n\t0, 8, 33, 0, 9, 162, 0, 8, 1, 0, 8, 129, 0, 8, 65, 0, 9, 226, 80, 7, 6, 0, 8, 89, 0, 8, 25, 0, 9, 146, 83, 7, 59, 0, 8, 121, 0, 8, 57, 0, 9, 210,\n\t81, 7, 17, 0, 8, 105, 0, 8, 41, 0, 9, 178, 0, 8, 9, 0, 8, 137, 0, 8, 73, 0, 9, 242, 80, 7, 4, 0, 8, 85, 0, 8, 21, 80, 8, 258, 83, 7, 43, 0, 8, 117,\n\t0, 8, 53, 0, 9, 202, 81, 7, 13, 0, 8, 101, 0, 8, 37, 0, 9, 170, 0, 8, 5, 0, 8, 133, 0, 8, 69, 0, 9, 234, 80, 7, 8, 0, 8, 93, 0, 8, 29, 0, 9, 154,\n\t84, 7, 83, 0, 8, 125, 0, 8, 61, 0, 9, 218, 82, 7, 23, 0, 8, 109, 0, 8, 45, 0, 9, 186, 0, 8, 13, 0, 8, 141, 0, 8, 77, 0, 9, 250, 80, 7, 3, 0, 8, 83,\n\t0, 8, 19, 85, 8, 195, 83, 7, 35, 0, 8, 115, 0, 8, 51, 0, 9, 198, 81, 7, 11, 0, 8, 99, 0, 8, 35, 0, 9, 166, 0, 8, 3, 0, 8, 131, 0, 8, 67, 0, 9, 230,\n\t80, 7, 7, 0, 8, 91, 0, 8, 27, 0, 9, 150, 84, 7, 67, 0, 8, 123, 0, 8, 59, 0, 9, 214, 82, 7, 19, 0, 8, 107, 0, 8, 43, 0, 9, 182, 0, 8, 11, 0, 8, 139,\n\t0, 8, 75, 0, 9, 246, 80, 7, 5, 0, 8, 87, 0, 8, 23, 192, 8, 0, 83, 7, 51, 0, 8, 119, 0, 8, 55, 0, 9, 206, 81, 7, 15, 0, 8, 103, 0, 8, 39, 0, 9, 174,\n\t0, 8, 7, 0, 8, 135, 0, 8, 71, 0, 9, 238, 80, 7, 9, 0, 8, 95, 0, 8, 31, 0, 9, 158, 84, 7, 99, 0, 8, 127, 0, 8, 63, 0, 9, 222, 82, 7, 27, 0, 8, 111,\n\t0, 8, 47, 0, 9, 190, 0, 8, 15, 0, 8, 143, 0, 8, 79, 0, 9, 254, 96, 7, 256, 0, 8, 80, 0, 8, 16, 84, 8, 115, 82, 7, 31, 0, 8, 112, 0, 8, 48, 0, 9,\n\t193, 80, 7, 10, 0, 8, 96, 0, 8, 32, 0, 9, 161, 0, 8, 0, 0, 8, 128, 0, 8, 64, 0, 9, 225, 80, 7, 6, 0, 8, 88, 0, 8, 24, 0, 9, 145, 83, 7, 59, 0, 8,\n\t120, 0, 8, 56, 0, 9, 209, 81, 7, 17, 0, 8, 104, 0, 8, 40, 0, 9, 177, 0, 8, 8, 0, 8, 136, 0, 8, 72, 0, 9, 241, 80, 7, 4, 0, 8, 84, 0, 8, 20, 85, 8,\n\t227, 83, 7, 43, 0, 8, 116, 0, 8, 52, 0, 9, 201, 81, 7, 13, 0, 8, 100, 0, 8, 36, 0, 9, 169, 0, 8, 4, 0, 8, 132, 0, 8, 68, 0, 9, 233, 80, 7, 8, 0, 8,\n\t92, 0, 8, 28, 0, 9, 153, 84, 7, 83, 0, 8, 124, 0, 8, 60, 0, 9, 217, 82, 7, 23, 0, 8, 108, 0, 8, 44, 0, 9, 185, 0, 8, 12, 0, 8, 140, 0, 8, 76, 0, 9,\n\t249, 80, 7, 3, 0, 8, 82, 0, 8, 18, 85, 8, 163, 83, 7, 35, 0, 8, 114, 0, 8, 50, 0, 9, 197, 81, 7, 11, 0, 8, 98, 0, 8, 34, 0, 9, 165, 0, 8, 2, 0, 8,\n\t130, 0, 8, 66, 0, 9, 229, 80, 7, 7, 0, 8, 90, 0, 8, 26, 0, 9, 149, 84, 7, 67, 0, 8, 122, 0, 8, 58, 0, 9, 213, 82, 7, 19, 0, 8, 106, 0, 8, 42, 0, 9,\n\t181, 0, 8, 10, 0, 8, 138, 0, 8, 74, 0, 9, 245, 80, 7, 5, 0, 8, 86, 0, 8, 22, 192, 8, 0, 83, 7, 51, 0, 8, 118, 0, 8, 54, 0, 9, 205, 81, 7, 15, 0, 8,\n\t102, 0, 8, 38, 0, 9, 173, 0, 8, 6, 0, 8, 134, 0, 8, 70, 0, 9, 237, 80, 7, 9, 0, 8, 94, 0, 8, 30, 0, 9, 157, 84, 7, 99, 0, 8, 126, 0, 8, 62, 0, 9,\n\t221, 82, 7, 27, 0, 8, 110, 0, 8, 46, 0, 9, 189, 0, 8, 14, 0, 8, 142, 0, 8, 78, 0, 9, 253, 96, 7, 256, 0, 8, 81, 0, 8, 17, 85, 8, 131, 82, 7, 31, 0,\n\t8, 113, 0, 8, 49, 0, 9, 195, 80, 7, 10, 0, 8, 97, 0, 8, 33, 0, 9, 163, 0, 8, 1, 0, 8, 129, 0, 8, 65, 0, 9, 227, 80, 7, 6, 0, 8, 89, 0, 8, 25, 0, 9,\n\t147, 83, 7, 59, 0, 8, 121, 0, 8, 57, 0, 9, 211, 81, 7, 17, 0, 8, 105, 0, 8, 41, 0, 9, 179, 0, 8, 9, 0, 8, 137, 0, 8, 73, 0, 9, 243, 80, 7, 4, 0, 8,\n\t85, 0, 8, 21, 80, 8, 258, 83, 7, 43, 0, 8, 117, 0, 8, 53, 0, 9, 203, 81, 7, 13, 0, 8, 101, 0, 8, 37, 0, 9, 171, 0, 8, 5, 0, 8, 133, 0, 8, 69, 0, 9,\n\t235, 80, 7, 8, 0, 8, 93, 0, 8, 29, 0, 9, 155, 84, 7, 83, 0, 8, 125, 0, 8, 61, 0, 9, 219, 82, 7, 23, 0, 8, 109, 0, 8, 45, 0, 9, 187, 0, 8, 13, 0, 8,\n\t141, 0, 8, 77, 0, 9, 251, 80, 7, 3, 0, 8, 83, 0, 8, 19, 85, 8, 195, 83, 7, 35, 0, 8, 115, 0, 8, 51, 0, 9, 199, 81, 7, 11, 0, 8, 99, 0, 8, 35, 0, 9,\n\t167, 0, 8, 3, 0, 8, 131, 0, 8, 67, 0, 9, 231, 80, 7, 7, 0, 8, 91, 0, 8, 27, 0, 9, 151, 84, 7, 67, 0, 8, 123, 0, 8, 59, 0, 9, 215, 82, 7, 19, 0, 8,\n\t107, 0, 8, 43, 0, 9, 183, 0, 8, 11, 0, 8, 139, 0, 8, 75, 0, 9, 247, 80, 7, 5, 0, 8, 87, 0, 8, 23, 192, 8, 0, 83, 7, 51, 0, 8, 119, 0, 8, 55, 0, 9,\n\t207, 81, 7, 15, 0, 8, 103, 0, 8, 39, 0, 9, 175, 0, 8, 7, 0, 8, 135, 0, 8, 71, 0, 9, 239, 80, 7, 9, 0, 8, 95, 0, 8, 31, 0, 9, 159, 84, 7, 99, 0, 8,\n\t127, 0, 8, 63, 0, 9, 223, 82, 7, 27, 0, 8, 111, 0, 8, 47, 0, 9, 191, 0, 8, 15, 0, 8, 143, 0, 8, 79, 0, 9, 255];\nconst fixed_td = [80, 5, 1, 87, 5, 257, 83, 5, 17, 91, 5, 4097, 81, 5, 5, 89, 5, 1025, 85, 5, 65, 93, 5, 16385, 80, 5, 3, 88, 5, 513, 84, 5, 33, 92, 5,\n\t8193, 82, 5, 9, 90, 5, 2049, 86, 5, 129, 192, 5, 24577, 80, 5, 2, 87, 5, 385, 83, 5, 25, 91, 5, 6145, 81, 5, 7, 89, 5, 1537, 85, 5, 97, 93, 5,\n\t24577, 80, 5, 4, 88, 5, 769, 84, 5, 49, 92, 5, 12289, 82, 5, 13, 90, 5, 3073, 86, 5, 193, 192, 5, 24577];\n\n// Tables for deflate from PKZIP's appnote.txt.\nconst cplens = [ // Copy lengths for literal codes 257..285\n\t3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0];\n\n// see note #13 above about 258\nconst cplext = [ // Extra bits for literal codes 257..285\n\t0, 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, 112, 112 // 112==invalid\n];\n\nconst cpdist = [ // Copy offsets for distance codes 0..29\n\t1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577];\n\nconst cpdext = [ // Extra bits for distance codes\n\t0, 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\n// If BMAX needs to be larger than 16, then h and x[] should be uLong.\nconst BMAX = 15; // maximum bit length of any code\n\nfunction InfTree() {\n\tconst that = this;\n\n\tlet hn; // hufts used in space\n\tlet v; // work area for huft_build\n\tlet c; // bit length count table\n\tlet r; // table entry for structure assignment\n\tlet u; // table stack\n\tlet x; // bit offsets, then code stack\n\n\tfunction huft_build(b, // code lengths in bits (all assumed <=\n\t\t// BMAX)\n\t\tbindex, n, // number of codes (assumed <= 288)\n\t\ts, // number of simple-valued codes (0..s-1)\n\t\td, // list of base values for non-simple codes\n\t\te, // list of extra bits for non-simple codes\n\t\tt, // result: starting table\n\t\tm, // maximum lookup bits, returns actual\n\t\thp,// space for trees\n\t\thn,// hufts used in space\n\t\tv // working area: values in order of bit length\n\t) {\n\t\t// Given a list of code lengths and a maximum table size, make a set of\n\t\t// tables to decode that set of codes. Return Z_OK on success,\n\t\t// Z_BUF_ERROR\n\t\t// if the given code set is incomplete (the tables are still built in\n\t\t// this\n\t\t// case), Z_DATA_ERROR if the input is invalid (an over-subscribed set\n\t\t// of\n\t\t// lengths), or Z_MEM_ERROR if not enough memory.\n\n\t\tlet a; // counter for codes of length k\n\t\tlet f; // i repeats in table every f entries\n\t\tlet g; // maximum code length\n\t\tlet h; // table level\n\t\tlet i; // counter, current code\n\t\tlet j; // counter\n\t\tlet k; // number of bits in current code\n\t\tlet l; // bits per table (returned in m)\n\t\tlet mask; // (1 << w) - 1, to avoid cc -O bug on HP\n\t\tlet p; // pointer into c[], b[], or v[]\n\t\tlet q; // points to current table\n\t\tlet w; // bits before this table == (l * h)\n\t\tlet xp; // pointer into x\n\t\tlet y; // number of dummy codes added\n\t\tlet z; // number of entries in current table\n\n\t\t// Generate counts for each bit length\n\n\t\tp = 0;\n\t\ti = n;\n\t\tdo {\n\t\t\tc[b[bindex + p]]++;\n\t\t\tp++;\n\t\t\ti--; // assume all entries <= BMAX\n\t\t} while (i !== 0);\n\n\t\tif (c[0] == n) { // null input--all zero length codes\n\t\t\tt[0] = -1;\n\t\t\tm[0] = 0;\n\t\t\treturn Z_OK;\n\t\t}\n\n\t\t// Find minimum and maximum length, bound *m by those\n\t\tl = m[0];\n\t\tfor (j = 1; j <= BMAX; j++)\n\t\t\tif (c[j] !== 0)\n\t\t\t\tbreak;\n\t\tk = j; // minimum code length\n\t\tif (l < j) {\n\t\t\tl = j;\n\t\t}\n\t\tfor (i = BMAX; i !== 0; i--) {\n\t\t\tif (c[i] !== 0)\n\t\t\t\tbreak;\n\t\t}\n\t\tg = i; // maximum code length\n\t\tif (l > i) {\n\t\t\tl = i;\n\t\t}\n\t\tm[0] = l;\n\n\t\t// Adjust last length count to fill out codes, if needed\n\t\tfor (y = 1 << j; j < i; j++, y <<= 1) {\n\t\t\tif ((y -= c[j]) < 0) {\n\t\t\t\treturn Z_DATA_ERROR;\n\t\t\t}\n\t\t}\n\t\tif ((y -= c[i]) < 0) {\n\t\t\treturn Z_DATA_ERROR;\n\t\t}\n\t\tc[i] += y;\n\n\t\t// Generate starting offsets into the value table for each length\n\t\tx[1] = j = 0;\n\t\tp = 1;\n\t\txp = 2;\n\t\twhile (--i !== 0) { // note that i == g from above\n\t\t\tx[xp] = (j += c[p]);\n\t\t\txp++;\n\t\t\tp++;\n\t\t}\n\n\t\t// Make a table of values in order of bit lengths\n\t\ti = 0;\n\t\tp = 0;\n\t\tdo {\n\t\t\tif ((j = b[bindex + p]) !== 0) {\n\t\t\t\tv[x[j]++] = i;\n\t\t\t}\n\t\t\tp++;\n\t\t} while (++i < n);\n\t\tn = x[g]; // set n to length of v\n\n\t\t// Generate the Huffman codes and for each, make the table entries\n\t\tx[0] = i = 0; // first Huffman code is zero\n\t\tp = 0; // grab values in bit order\n\t\th = -1; // no tables yet--level -1\n\t\tw = -l; // bits decoded == (l * h)\n\t\tu[0] = 0; // just to keep compilers happy\n\t\tq = 0; // ditto\n\t\tz = 0; // ditto\n\n\t\t// go through the bit lengths (k already is bits in shortest code)\n\t\tfor (; k <= g; k++) {\n\t\t\ta = c[k];\n\t\t\twhile (a-- !== 0) {\n\t\t\t\t// here i is the Huffman code of length k bits for value *p\n\t\t\t\t// make tables up to required level\n\t\t\t\twhile (k > w + l) {\n\t\t\t\t\th++;\n\t\t\t\t\tw += l; // previous table always l bits\n\t\t\t\t\t// compute minimum size table less than or equal to l bits\n\t\t\t\t\tz = g - w;\n\t\t\t\t\tz = (z > l) ? l : z; // table size upper limit\n\t\t\t\t\tif ((f = 1 << (j = k - w)) > a + 1) { // try a k-w bit table\n\t\t\t\t\t\t// too few codes for\n\t\t\t\t\t\t// k-w bit table\n\t\t\t\t\t\tf -= a + 1; // deduct codes from patterns left\n\t\t\t\t\t\txp = k;\n\t\t\t\t\t\tif (j < z) {\n\t\t\t\t\t\t\twhile (++j < z) { // try smaller tables up to z bits\n\t\t\t\t\t\t\t\tif ((f <<= 1) <= c[++xp])\n\t\t\t\t\t\t\t\t\tbreak; // enough codes to use up j bits\n\t\t\t\t\t\t\t\tf -= c[xp]; // else deduct codes from patterns\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tz = 1 << j; // table entries for j-bit table\n\n\t\t\t\t\t// allocate new table\n\t\t\t\t\tif (hn[0] + z > MANY) { // (note: doesn't matter for fixed)\n\t\t\t\t\t\treturn Z_DATA_ERROR; // overflow of MANY\n\t\t\t\t\t}\n\t\t\t\t\tu[h] = q = /* hp+ */hn[0]; // DEBUG\n\t\t\t\t\thn[0] += z;\n\n\t\t\t\t\t// connect to last table, if there is one\n\t\t\t\t\tif (h !== 0) {\n\t\t\t\t\t\tx[h] = i; // save pattern for backing up\n\t\t\t\t\t\tr[0] = /* (byte) */j; // bits in this table\n\t\t\t\t\t\tr[1] = /* (byte) */l; // bits to dump before this table\n\t\t\t\t\t\tj = i >>> (w - l);\n\t\t\t\t\t\tr[2] = /* (int) */(q - u[h - 1] - j); // offset to this table\n\t\t\t\t\t\thp.set(r, (u[h - 1] + j) * 3);\n\t\t\t\t\t\t// to\n\t\t\t\t\t\t// last\n\t\t\t\t\t\t// table\n\t\t\t\t\t} else {\n\t\t\t\t\t\tt[0] = q; // first table is returned result\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// set up table entry in r\n\t\t\t\tr[1] = /* (byte) */(k - w);\n\t\t\t\tif (p >= n) {\n\t\t\t\t\tr[0] = 128 + 64; // out of values--invalid code\n\t\t\t\t} else if (v[p] < s) {\n\t\t\t\t\tr[0] = /* (byte) */(v[p] < 256 ? 0 : 32 + 64); // 256 is\n\t\t\t\t\t// end-of-block\n\t\t\t\t\tr[2] = v[p++]; // simple code is just the value\n\t\t\t\t} else {\n\t\t\t\t\tr[0] = /* (byte) */(e[v[p] - s] + 16 + 64); // non-simple--look\n\t\t\t\t\t// up in lists\n\t\t\t\t\tr[2] = d[v[p++] - s];\n\t\t\t\t}\n\n\t\t\t\t// fill code-like entries with r\n\t\t\t\tf = 1 << (k - w);\n\t\t\t\tfor (j = i >>> w; j < z; j += f) {\n\t\t\t\t\thp.set(r, (q + j) * 3);\n\t\t\t\t}\n\n\t\t\t\t// backwards increment the k-bit code i\n\t\t\t\tfor (j = 1 << (k - 1); (i & j) !== 0; j >>>= 1) {\n\t\t\t\t\ti ^= j;\n\t\t\t\t}\n\t\t\t\ti ^= j;\n\n\t\t\t\t// backup over finished tables\n\t\t\t\tmask = (1 << w) - 1; // needed on HP, cc -O bug\n\t\t\t\twhile ((i & mask) != x[h]) {\n\t\t\t\t\th--; // don't need to update q\n\t\t\t\t\tw -= l;\n\t\t\t\t\tmask = (1 << w) - 1;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// Return Z_BUF_ERROR if we were given an incomplete table\n\t\treturn y !== 0 && g != 1 ? Z_BUF_ERROR : Z_OK;\n\t}\n\n\tfunction initWorkArea(vsize) {\n\t\tlet i;\n\t\tif (!hn) {\n\t\t\thn = []; // []; //new Array(1);\n\t\t\tv = []; // new Array(vsize);\n\t\t\tc = new Int32Array(BMAX + 1); // new Array(BMAX + 1);\n\t\t\tr = []; // new Array(3);\n\t\t\tu = new Int32Array(BMAX); // new Array(BMAX);\n\t\t\tx = new Int32Array(BMAX + 1); // new Array(BMAX + 1);\n\t\t}\n\t\tif (v.length < vsize) {\n\t\t\tv = []; // new Array(vsize);\n\t\t}\n\t\tfor (i = 0; i < vsize; i++) {\n\t\t\tv[i] = 0;\n\t\t}\n\t\tfor (i = 0; i < BMAX + 1; i++) {\n\t\t\tc[i] = 0;\n\t\t}\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\tr[i] = 0;\n\t\t}\n\t\t// for(int i=0; i 257)) {\n\t\t\tif (result == Z_DATA_ERROR) {\n\t\t\t\tz.msg = \"oversubscribed distance tree\";\n\t\t\t} else if (result == Z_BUF_ERROR) {\n\t\t\t\tz.msg = \"incomplete distance tree\";\n\t\t\t\tresult = Z_DATA_ERROR;\n\t\t\t} else if (result != Z_MEM_ERROR) {\n\t\t\t\tz.msg = \"empty distance tree with lengths\";\n\t\t\t\tresult = Z_DATA_ERROR;\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\n\t\treturn Z_OK;\n\t};\n\n}\n\nInfTree.inflate_trees_fixed = function (bl, // literal desired/actual bit depth\n\tbd, // distance desired/actual bit depth\n\ttl,// literal/length tree result\n\ttd// distance tree result\n) {\n\tbl[0] = fixed_bl;\n\tbd[0] = fixed_bd;\n\ttl[0] = fixed_tl;\n\ttd[0] = fixed_td;\n\treturn Z_OK;\n};\n\n// InfCodes\n\n// waiting for \"i:\"=input,\n// \"o:\"=output,\n// \"x:\"=nothing\nconst START = 0; // x: set up for LEN\nconst LEN = 1; // i: get length/literal/eob next\nconst LENEXT = 2; // i: getting length extra (have base)\nconst DIST = 3; // i: get distance next\nconst DISTEXT = 4;// i: getting distance extra\nconst COPY = 5; // o: copying bytes in win, waiting\n// for space\nconst LIT = 6; // o: got literal, waiting for output\n// space\nconst WASH = 7; // o: got eob, possibly still output\n// waiting\nconst END = 8; // x: got eob and all data flushed\nconst BADCODE = 9;// x: got error\n\nfunction InfCodes() {\n\tconst that = this;\n\n\tlet mode; // current inflate_codes mode\n\n\t// mode dependent information\n\tlet len = 0;\n\n\tlet tree; // pointer into tree\n\tlet tree_index = 0;\n\tlet need = 0; // bits needed\n\n\tlet lit = 0;\n\n\t// if EXT or COPY, where and how much\n\tlet get = 0; // bits to get for extra\n\tlet dist = 0; // distance back to copy from\n\n\tlet lbits = 0; // ltree bits decoded per branch\n\tlet dbits = 0; // dtree bits decoder per branch\n\tlet ltree; // literal/length/eob tree\n\tlet ltree_index = 0; // literal/length/eob tree\n\tlet dtree; // distance tree\n\tlet dtree_index = 0; // distance tree\n\n\t// Called with number of bytes left to write in win at least 258\n\t// (the maximum string length) and number of input bytes available\n\t// at least ten. The ten bytes are six bytes for the longest length/\n\t// distance pair plus four bytes for overloading the bit buffer.\n\n\tfunction inflate_fast(bl, bd, tl, tl_index, td, td_index, s, z) {\n\t\tlet t; // temporary pointer\n\t\tlet tp; // temporary pointer\n\t\tlet tp_index; // temporary pointer\n\t\tlet e; // extra bits or operation\n\t\tlet b; // bit buffer\n\t\tlet k; // bits in bit buffer\n\t\tlet p; // input data pointer\n\t\tlet n; // bytes available there\n\t\tlet q; // output win write pointer\n\t\tlet m; // bytes to end of win or read pointer\n\t\tlet ml; // mask for literal/length tree\n\t\tlet md; // mask for distance tree\n\t\tlet c; // bytes to copy\n\t\tlet d; // distance back to copy from\n\t\tlet r; // copy source pointer\n\n\t\tlet tp_index_t_3; // (tp_index+t)*3\n\n\t\t// load input, output, bit values\n\t\tp = z.next_in_index;\n\t\tn = z.avail_in;\n\t\tb = s.bitb;\n\t\tk = s.bitk;\n\t\tq = s.write;\n\t\tm = q < s.read ? s.read - q - 1 : s.end - q;\n\n\t\t// initialize masks\n\t\tml = inflate_mask[bl];\n\t\tmd = inflate_mask[bd];\n\n\t\t// do until not enough input or output space for fast loop\n\t\tdo { // assume called with m >= 258 && n >= 10\n\t\t\t// get literal/length code\n\t\t\twhile (k < (20)) { // max bits for literal/length code\n\t\t\t\tn--;\n\t\t\t\tb |= (z.read_byte(p++) & 0xff) << k;\n\t\t\t\tk += 8;\n\t\t\t}\n\n\t\t\tt = b & ml;\n\t\t\ttp = tl;\n\t\t\ttp_index = tl_index;\n\t\t\ttp_index_t_3 = (tp_index + t) * 3;\n\t\t\tif ((e = tp[tp_index_t_3]) === 0) {\n\t\t\t\tb >>= (tp[tp_index_t_3 + 1]);\n\t\t\t\tk -= (tp[tp_index_t_3 + 1]);\n\n\t\t\t\ts.win[q++] = /* (byte) */tp[tp_index_t_3 + 2];\n\t\t\t\tm--;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tdo {\n\n\t\t\t\tb >>= (tp[tp_index_t_3 + 1]);\n\t\t\t\tk -= (tp[tp_index_t_3 + 1]);\n\n\t\t\t\tif ((e & 16) !== 0) {\n\t\t\t\t\te &= 15;\n\t\t\t\t\tc = tp[tp_index_t_3 + 2] + (/* (int) */b & inflate_mask[e]);\n\n\t\t\t\t\tb >>= e;\n\t\t\t\t\tk -= e;\n\n\t\t\t\t\t// decode distance base of block to copy\n\t\t\t\t\twhile (k < (15)) { // max bits for distance code\n\t\t\t\t\t\tn--;\n\t\t\t\t\t\tb |= (z.read_byte(p++) & 0xff) << k;\n\t\t\t\t\t\tk += 8;\n\t\t\t\t\t}\n\n\t\t\t\t\tt = b & md;\n\t\t\t\t\ttp = td;\n\t\t\t\t\ttp_index = td_index;\n\t\t\t\t\ttp_index_t_3 = (tp_index + t) * 3;\n\t\t\t\t\te = tp[tp_index_t_3];\n\n\t\t\t\t\tdo {\n\n\t\t\t\t\t\tb >>= (tp[tp_index_t_3 + 1]);\n\t\t\t\t\t\tk -= (tp[tp_index_t_3 + 1]);\n\n\t\t\t\t\t\tif ((e & 16) !== 0) {\n\t\t\t\t\t\t\t// get extra bits to add to distance base\n\t\t\t\t\t\t\te &= 15;\n\t\t\t\t\t\t\twhile (k < (e)) { // get extra bits (up to 13)\n\t\t\t\t\t\t\t\tn--;\n\t\t\t\t\t\t\t\tb |= (z.read_byte(p++) & 0xff) << k;\n\t\t\t\t\t\t\t\tk += 8;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\td = tp[tp_index_t_3 + 2] + (b & inflate_mask[e]);\n\n\t\t\t\t\t\t\tb >>= (e);\n\t\t\t\t\t\t\tk -= (e);\n\n\t\t\t\t\t\t\t// do the copy\n\t\t\t\t\t\t\tm -= c;\n\t\t\t\t\t\t\tif (q >= d) { // offset before dest\n\t\t\t\t\t\t\t\t// just copy\n\t\t\t\t\t\t\t\tr = q - d;\n\t\t\t\t\t\t\t\tif (q - r > 0 && 2 > (q - r)) {\n\t\t\t\t\t\t\t\t\ts.win[q++] = s.win[r++]; // minimum\n\t\t\t\t\t\t\t\t\t// count is\n\t\t\t\t\t\t\t\t\t// three,\n\t\t\t\t\t\t\t\t\ts.win[q++] = s.win[r++]; // so unroll\n\t\t\t\t\t\t\t\t\t// loop a\n\t\t\t\t\t\t\t\t\t// little\n\t\t\t\t\t\t\t\t\tc -= 2;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts.win.set(s.win.subarray(r, r + 2), q);\n\t\t\t\t\t\t\t\t\tq += 2;\n\t\t\t\t\t\t\t\t\tr += 2;\n\t\t\t\t\t\t\t\t\tc -= 2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else { // else offset after destination\n\t\t\t\t\t\t\t\tr = q - d;\n\t\t\t\t\t\t\t\tdo {\n\t\t\t\t\t\t\t\t\tr += s.end; // force pointer in win\n\t\t\t\t\t\t\t\t} while (r < 0); // covers invalid distances\n\t\t\t\t\t\t\t\te = s.end - r;\n\t\t\t\t\t\t\t\tif (c > e) { // if source crosses,\n\t\t\t\t\t\t\t\t\tc -= e; // wrapped copy\n\t\t\t\t\t\t\t\t\tif (q - r > 0 && e > (q - r)) {\n\t\t\t\t\t\t\t\t\t\tdo {\n\t\t\t\t\t\t\t\t\t\t\ts.win[q++] = s.win[r++];\n\t\t\t\t\t\t\t\t\t\t} while (--e !== 0);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts.win.set(s.win.subarray(r, r + e), q);\n\t\t\t\t\t\t\t\t\t\tq += e;\n\t\t\t\t\t\t\t\t\t\tr += e;\n\t\t\t\t\t\t\t\t\t\te = 0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tr = 0; // copy rest from start of win\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// copy all or what's left\n\t\t\t\t\t\t\tif (q - r > 0 && c > (q - r)) {\n\t\t\t\t\t\t\t\tdo {\n\t\t\t\t\t\t\t\t\ts.win[q++] = s.win[r++];\n\t\t\t\t\t\t\t\t} while (--c !== 0);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts.win.set(s.win.subarray(r, r + c), q);\n\t\t\t\t\t\t\t\tq += c;\n\t\t\t\t\t\t\t\tr += c;\n\t\t\t\t\t\t\t\tc = 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t} else if ((e & 64) === 0) {\n\t\t\t\t\t\t\tt += tp[tp_index_t_3 + 2];\n\t\t\t\t\t\t\tt += (b & inflate_mask[e]);\n\t\t\t\t\t\t\ttp_index_t_3 = (tp_index + t) * 3;\n\t\t\t\t\t\t\te = tp[tp_index_t_3];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tz.msg = \"invalid distance code\";\n\n\t\t\t\t\t\t\tc = z.avail_in - n;\n\t\t\t\t\t\t\tc = (k >> 3) < c ? k >> 3 : c;\n\t\t\t\t\t\t\tn += c;\n\t\t\t\t\t\t\tp -= c;\n\t\t\t\t\t\t\tk -= c << 3;\n\n\t\t\t\t\t\t\ts.bitb = b;\n\t\t\t\t\t\t\ts.bitk = k;\n\t\t\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\t\t\ts.write = q;\n\n\t\t\t\t\t\t\treturn Z_DATA_ERROR;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// eslint-disable-next-line no-constant-condition\n\t\t\t\t\t} while (true);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif ((e & 64) === 0) {\n\t\t\t\t\tt += tp[tp_index_t_3 + 2];\n\t\t\t\t\tt += (b & inflate_mask[e]);\n\t\t\t\t\ttp_index_t_3 = (tp_index + t) * 3;\n\t\t\t\t\tif ((e = tp[tp_index_t_3]) === 0) {\n\n\t\t\t\t\t\tb >>= (tp[tp_index_t_3 + 1]);\n\t\t\t\t\t\tk -= (tp[tp_index_t_3 + 1]);\n\n\t\t\t\t\t\ts.win[q++] = /* (byte) */tp[tp_index_t_3 + 2];\n\t\t\t\t\t\tm--;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} else if ((e & 32) !== 0) {\n\n\t\t\t\t\tc = z.avail_in - n;\n\t\t\t\t\tc = (k >> 3) < c ? k >> 3 : c;\n\t\t\t\t\tn += c;\n\t\t\t\t\tp -= c;\n\t\t\t\t\tk -= c << 3;\n\n\t\t\t\t\ts.bitb = b;\n\t\t\t\t\ts.bitk = k;\n\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\ts.write = q;\n\n\t\t\t\t\treturn Z_STREAM_END;\n\t\t\t\t} else {\n\t\t\t\t\tz.msg = \"invalid literal/length code\";\n\n\t\t\t\t\tc = z.avail_in - n;\n\t\t\t\t\tc = (k >> 3) < c ? k >> 3 : c;\n\t\t\t\t\tn += c;\n\t\t\t\t\tp -= c;\n\t\t\t\t\tk -= c << 3;\n\n\t\t\t\t\ts.bitb = b;\n\t\t\t\t\ts.bitk = k;\n\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\ts.write = q;\n\n\t\t\t\t\treturn Z_DATA_ERROR;\n\t\t\t\t}\n\t\t\t\t// eslint-disable-next-line no-constant-condition\n\t\t\t} while (true);\n\t\t} while (m >= 258 && n >= 10);\n\n\t\t// not enough input or output--restore pointers and return\n\t\tc = z.avail_in - n;\n\t\tc = (k >> 3) < c ? k >> 3 : c;\n\t\tn += c;\n\t\tp -= c;\n\t\tk -= c << 3;\n\n\t\ts.bitb = b;\n\t\ts.bitk = k;\n\t\tz.avail_in = n;\n\t\tz.total_in += p - z.next_in_index;\n\t\tz.next_in_index = p;\n\t\ts.write = q;\n\n\t\treturn Z_OK;\n\t}\n\n\tthat.init = function (bl, bd, tl, tl_index, td, td_index) {\n\t\tmode = START;\n\t\tlbits = /* (byte) */bl;\n\t\tdbits = /* (byte) */bd;\n\t\tltree = tl;\n\t\tltree_index = tl_index;\n\t\tdtree = td;\n\t\tdtree_index = td_index;\n\t\ttree = null;\n\t};\n\n\tthat.proc = function (s, z, r) {\n\t\tlet j; // temporary storage\n\t\tlet tindex; // temporary pointer\n\t\tlet e; // extra bits or operation\n\t\tlet b = 0; // bit buffer\n\t\tlet k = 0; // bits in bit buffer\n\t\tlet p = 0; // input data pointer\n\t\tlet n; // bytes available there\n\t\tlet q; // output win write pointer\n\t\tlet m; // bytes to end of win or read pointer\n\t\tlet f; // pointer to copy strings from\n\n\t\t// copy input/output information to locals (UPDATE macro restores)\n\t\tp = z.next_in_index;\n\t\tn = z.avail_in;\n\t\tb = s.bitb;\n\t\tk = s.bitk;\n\t\tq = s.write;\n\t\tm = q < s.read ? s.read - q - 1 : s.end - q;\n\n\t\t// process input and output based on current state\n\t\t// eslint-disable-next-line no-constant-condition\n\t\twhile (true) {\n\t\t\tswitch (mode) {\n\t\t\t\t// waiting for \"i:\"=input, \"o:\"=output, \"x:\"=nothing\n\t\t\t\tcase START: // x: set up for LEN\n\t\t\t\t\tif (m >= 258 && n >= 10) {\n\n\t\t\t\t\t\ts.bitb = b;\n\t\t\t\t\t\ts.bitk = k;\n\t\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\t\ts.write = q;\n\t\t\t\t\t\tr = inflate_fast(lbits, dbits, ltree, ltree_index, dtree, dtree_index, s, z);\n\n\t\t\t\t\t\tp = z.next_in_index;\n\t\t\t\t\t\tn = z.avail_in;\n\t\t\t\t\t\tb = s.bitb;\n\t\t\t\t\t\tk = s.bitk;\n\t\t\t\t\t\tq = s.write;\n\t\t\t\t\t\tm = q < s.read ? s.read - q - 1 : s.end - q;\n\n\t\t\t\t\t\tif (r != Z_OK) {\n\t\t\t\t\t\t\tmode = r == Z_STREAM_END ? WASH : BADCODE;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tneed = lbits;\n\t\t\t\t\ttree = ltree;\n\t\t\t\t\ttree_index = ltree_index;\n\n\t\t\t\t\tmode = LEN;\n\t\t\t\t/* falls through */\n\t\t\t\tcase LEN: // i: get length/literal/eob next\n\t\t\t\t\tj = need;\n\n\t\t\t\t\twhile (k < (j)) {\n\t\t\t\t\t\tif (n !== 0)\n\t\t\t\t\t\t\tr = Z_OK;\n\t\t\t\t\t\telse {\n\n\t\t\t\t\t\t\ts.bitb = b;\n\t\t\t\t\t\t\ts.bitk = k;\n\t\t\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\t\t\ts.write = q;\n\t\t\t\t\t\t\treturn s.inflate_flush(z, r);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tn--;\n\t\t\t\t\t\tb |= (z.read_byte(p++) & 0xff) << k;\n\t\t\t\t\t\tk += 8;\n\t\t\t\t\t}\n\n\t\t\t\t\ttindex = (tree_index + (b & inflate_mask[j])) * 3;\n\n\t\t\t\t\tb >>>= (tree[tindex + 1]);\n\t\t\t\t\tk -= (tree[tindex + 1]);\n\n\t\t\t\t\te = tree[tindex];\n\n\t\t\t\t\tif (e === 0) { // literal\n\t\t\t\t\t\tlit = tree[tindex + 2];\n\t\t\t\t\t\tmode = LIT;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif ((e & 16) !== 0) { // length\n\t\t\t\t\t\tget = e & 15;\n\t\t\t\t\t\tlen = tree[tindex + 2];\n\t\t\t\t\t\tmode = LENEXT;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif ((e & 64) === 0) { // next table\n\t\t\t\t\t\tneed = e;\n\t\t\t\t\t\ttree_index = tindex / 3 + tree[tindex + 2];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif ((e & 32) !== 0) { // end of block\n\t\t\t\t\t\tmode = WASH;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tmode = BADCODE; // invalid code\n\t\t\t\t\tz.msg = \"invalid literal/length code\";\n\t\t\t\t\tr = Z_DATA_ERROR;\n\n\t\t\t\t\ts.bitb = b;\n\t\t\t\t\ts.bitk = k;\n\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\ts.write = q;\n\t\t\t\t\treturn s.inflate_flush(z, r);\n\n\t\t\t\tcase LENEXT: // i: getting length extra (have base)\n\t\t\t\t\tj = get;\n\n\t\t\t\t\twhile (k < (j)) {\n\t\t\t\t\t\tif (n !== 0)\n\t\t\t\t\t\t\tr = Z_OK;\n\t\t\t\t\t\telse {\n\n\t\t\t\t\t\t\ts.bitb = b;\n\t\t\t\t\t\t\ts.bitk = k;\n\t\t\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\t\t\ts.write = q;\n\t\t\t\t\t\t\treturn s.inflate_flush(z, r);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tn--;\n\t\t\t\t\t\tb |= (z.read_byte(p++) & 0xff) << k;\n\t\t\t\t\t\tk += 8;\n\t\t\t\t\t}\n\n\t\t\t\t\tlen += (b & inflate_mask[j]);\n\n\t\t\t\t\tb >>= j;\n\t\t\t\t\tk -= j;\n\n\t\t\t\t\tneed = dbits;\n\t\t\t\t\ttree = dtree;\n\t\t\t\t\ttree_index = dtree_index;\n\t\t\t\t\tmode = DIST;\n\t\t\t\t/* falls through */\n\t\t\t\tcase DIST: // i: get distance next\n\t\t\t\t\tj = need;\n\n\t\t\t\t\twhile (k < (j)) {\n\t\t\t\t\t\tif (n !== 0)\n\t\t\t\t\t\t\tr = Z_OK;\n\t\t\t\t\t\telse {\n\n\t\t\t\t\t\t\ts.bitb = b;\n\t\t\t\t\t\t\ts.bitk = k;\n\t\t\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\t\t\ts.write = q;\n\t\t\t\t\t\t\treturn s.inflate_flush(z, r);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tn--;\n\t\t\t\t\t\tb |= (z.read_byte(p++) & 0xff) << k;\n\t\t\t\t\t\tk += 8;\n\t\t\t\t\t}\n\n\t\t\t\t\ttindex = (tree_index + (b & inflate_mask[j])) * 3;\n\n\t\t\t\t\tb >>= tree[tindex + 1];\n\t\t\t\t\tk -= tree[tindex + 1];\n\n\t\t\t\t\te = (tree[tindex]);\n\t\t\t\t\tif ((e & 16) !== 0) { // distance\n\t\t\t\t\t\tget = e & 15;\n\t\t\t\t\t\tdist = tree[tindex + 2];\n\t\t\t\t\t\tmode = DISTEXT;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif ((e & 64) === 0) { // next table\n\t\t\t\t\t\tneed = e;\n\t\t\t\t\t\ttree_index = tindex / 3 + tree[tindex + 2];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tmode = BADCODE; // invalid code\n\t\t\t\t\tz.msg = \"invalid distance code\";\n\t\t\t\t\tr = Z_DATA_ERROR;\n\n\t\t\t\t\ts.bitb = b;\n\t\t\t\t\ts.bitk = k;\n\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\ts.write = q;\n\t\t\t\t\treturn s.inflate_flush(z, r);\n\n\t\t\t\tcase DISTEXT: // i: getting distance extra\n\t\t\t\t\tj = get;\n\n\t\t\t\t\twhile (k < (j)) {\n\t\t\t\t\t\tif (n !== 0)\n\t\t\t\t\t\t\tr = Z_OK;\n\t\t\t\t\t\telse {\n\n\t\t\t\t\t\t\ts.bitb = b;\n\t\t\t\t\t\t\ts.bitk = k;\n\t\t\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\t\t\ts.write = q;\n\t\t\t\t\t\t\treturn s.inflate_flush(z, r);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tn--;\n\t\t\t\t\t\tb |= (z.read_byte(p++) & 0xff) << k;\n\t\t\t\t\t\tk += 8;\n\t\t\t\t\t}\n\n\t\t\t\t\tdist += (b & inflate_mask[j]);\n\n\t\t\t\t\tb >>= j;\n\t\t\t\t\tk -= j;\n\n\t\t\t\t\tmode = COPY;\n\t\t\t\t/* falls through */\n\t\t\t\tcase COPY: // o: copying bytes in win, waiting for space\n\t\t\t\t\tf = q - dist;\n\t\t\t\t\twhile (f < 0) { // modulo win size-\"while\" instead\n\t\t\t\t\t\tf += s.end; // of \"if\" handles invalid distances\n\t\t\t\t\t}\n\t\t\t\t\twhile (len !== 0) {\n\n\t\t\t\t\t\tif (m === 0) {\n\t\t\t\t\t\t\tif (q == s.end && s.read !== 0) {\n\t\t\t\t\t\t\t\tq = 0;\n\t\t\t\t\t\t\t\tm = q < s.read ? s.read - q - 1 : s.end - q;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (m === 0) {\n\t\t\t\t\t\t\t\ts.write = q;\n\t\t\t\t\t\t\t\tr = s.inflate_flush(z, r);\n\t\t\t\t\t\t\t\tq = s.write;\n\t\t\t\t\t\t\t\tm = q < s.read ? s.read - q - 1 : s.end - q;\n\n\t\t\t\t\t\t\t\tif (q == s.end && s.read !== 0) {\n\t\t\t\t\t\t\t\t\tq = 0;\n\t\t\t\t\t\t\t\t\tm = q < s.read ? s.read - q - 1 : s.end - q;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (m === 0) {\n\t\t\t\t\t\t\t\t\ts.bitb = b;\n\t\t\t\t\t\t\t\t\ts.bitk = k;\n\t\t\t\t\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\t\t\t\t\ts.write = q;\n\t\t\t\t\t\t\t\t\treturn s.inflate_flush(z, r);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\ts.win[q++] = s.win[f++];\n\t\t\t\t\t\tm--;\n\n\t\t\t\t\t\tif (f == s.end)\n\t\t\t\t\t\t\tf = 0;\n\t\t\t\t\t\tlen--;\n\t\t\t\t\t}\n\t\t\t\t\tmode = START;\n\t\t\t\t\tbreak;\n\t\t\t\tcase LIT: // o: got literal, waiting for output space\n\t\t\t\t\tif (m === 0) {\n\t\t\t\t\t\tif (q == s.end && s.read !== 0) {\n\t\t\t\t\t\t\tq = 0;\n\t\t\t\t\t\t\tm = q < s.read ? s.read - q - 1 : s.end - q;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (m === 0) {\n\t\t\t\t\t\t\ts.write = q;\n\t\t\t\t\t\t\tr = s.inflate_flush(z, r);\n\t\t\t\t\t\t\tq = s.write;\n\t\t\t\t\t\t\tm = q < s.read ? s.read - q - 1 : s.end - q;\n\n\t\t\t\t\t\t\tif (q == s.end && s.read !== 0) {\n\t\t\t\t\t\t\t\tq = 0;\n\t\t\t\t\t\t\t\tm = q < s.read ? s.read - q - 1 : s.end - q;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (m === 0) {\n\t\t\t\t\t\t\t\ts.bitb = b;\n\t\t\t\t\t\t\t\ts.bitk = k;\n\t\t\t\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\t\t\t\ts.write = q;\n\t\t\t\t\t\t\t\treturn s.inflate_flush(z, r);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tr = Z_OK;\n\n\t\t\t\t\ts.win[q++] = /* (byte) */lit;\n\t\t\t\t\tm--;\n\n\t\t\t\t\tmode = START;\n\t\t\t\t\tbreak;\n\t\t\t\tcase WASH: // o: got eob, possibly more output\n\t\t\t\t\tif (k > 7) { // return unused byte, if any\n\t\t\t\t\t\tk -= 8;\n\t\t\t\t\t\tn++;\n\t\t\t\t\t\tp--; // can always return one\n\t\t\t\t\t}\n\n\t\t\t\t\ts.write = q;\n\t\t\t\t\tr = s.inflate_flush(z, r);\n\t\t\t\t\tq = s.write;\n\t\t\t\t\tm = q < s.read ? s.read - q - 1 : s.end - q;\n\n\t\t\t\t\tif (s.read != s.write) {\n\t\t\t\t\t\ts.bitb = b;\n\t\t\t\t\t\ts.bitk = k;\n\t\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\t\ts.write = q;\n\t\t\t\t\t\treturn s.inflate_flush(z, r);\n\t\t\t\t\t}\n\t\t\t\t\tmode = END;\n\t\t\t\t/* falls through */\n\t\t\t\tcase END:\n\t\t\t\t\tr = Z_STREAM_END;\n\t\t\t\t\ts.bitb = b;\n\t\t\t\t\ts.bitk = k;\n\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\ts.write = q;\n\t\t\t\t\treturn s.inflate_flush(z, r);\n\n\t\t\t\tcase BADCODE: // x: got error\n\n\t\t\t\t\tr = Z_DATA_ERROR;\n\n\t\t\t\t\ts.bitb = b;\n\t\t\t\t\ts.bitk = k;\n\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\ts.write = q;\n\t\t\t\t\treturn s.inflate_flush(z, r);\n\n\t\t\t\tdefault:\n\t\t\t\t\tr = Z_STREAM_ERROR;\n\n\t\t\t\t\ts.bitb = b;\n\t\t\t\t\ts.bitk = k;\n\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\ts.write = q;\n\t\t\t\t\treturn s.inflate_flush(z, r);\n\t\t\t}\n\t\t}\n\t};\n\n\tthat.free = function () {\n\t\t// ZFREE(z, c);\n\t};\n\n}\n\n// InfBlocks\n\n// Table for deflate from PKZIP's appnote.txt.\nconst border = [ // Order of the bit length code lengths\n\t16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15];\n\nconst TYPE = 0; // get type bits (3, including end bit)\nconst LENS = 1; // get lengths for stored\nconst STORED = 2;// processing stored block\nconst TABLE = 3; // get table lengths\nconst BTREE = 4; // get bit lengths tree for a dynamic\n// block\nconst DTREE = 5; // get length, distance trees for a\n// dynamic block\nconst CODES = 6; // processing fixed or dynamic block\nconst DRY = 7; // output remaining win bytes\nconst DONELOCKS = 8; // finished last block, done\nconst BADBLOCKS = 9; // ot a data error--stuck here\n\nfunction InfBlocks(z, w) {\n\tconst that = this;\n\n\tlet mode = TYPE; // current inflate_block mode\n\n\tlet left = 0; // if STORED, bytes left to copy\n\n\tlet table = 0; // table lengths (14 bits)\n\tlet index = 0; // index into blens (or border)\n\tlet blens; // bit lengths of codes\n\tconst bb = [0]; // bit length tree depth\n\tconst tb = [0]; // bit length decoding tree\n\n\tconst codes = new InfCodes(); // if CODES, current state\n\n\tlet last = 0; // true if this block is the last block\n\n\tlet hufts = new Int32Array(MANY * 3); // single malloc for tree space\n\tconst check = 0; // check on output\n\tconst inftree = new InfTree();\n\n\tthat.bitk = 0; // bits in bit buffer\n\tthat.bitb = 0; // bit buffer\n\tthat.win = new Uint8Array(w); // sliding win\n\tthat.end = w; // one byte after sliding win\n\tthat.read = 0; // win read pointer\n\tthat.write = 0; // win write pointer\n\n\tthat.reset = function (z, c) {\n\t\tif (c)\n\t\t\tc[0] = check;\n\t\t// if (mode == BTREE || mode == DTREE) {\n\t\t// }\n\t\tif (mode == CODES) {\n\t\t\tcodes.free(z);\n\t\t}\n\t\tmode = TYPE;\n\t\tthat.bitk = 0;\n\t\tthat.bitb = 0;\n\t\tthat.read = that.write = 0;\n\t};\n\n\tthat.reset(z, null);\n\n\t// copy as much as possible from the sliding win to the output area\n\tthat.inflate_flush = function (z, r) {\n\t\tlet n;\n\t\tlet p;\n\t\tlet q;\n\n\t\t// local copies of source and destination pointers\n\t\tp = z.next_out_index;\n\t\tq = that.read;\n\n\t\t// compute number of bytes to copy as far as end of win\n\t\tn = /* (int) */((q <= that.write ? that.write : that.end) - q);\n\t\tif (n > z.avail_out)\n\t\t\tn = z.avail_out;\n\t\tif (n !== 0 && r == Z_BUF_ERROR)\n\t\t\tr = Z_OK;\n\n\t\t// update counters\n\t\tz.avail_out -= n;\n\t\tz.total_out += n;\n\n\t\t// copy as far as end of win\n\t\tz.next_out.set(that.win.subarray(q, q + n), p);\n\t\tp += n;\n\t\tq += n;\n\n\t\t// see if more to copy at beginning of win\n\t\tif (q == that.end) {\n\t\t\t// wrap pointers\n\t\t\tq = 0;\n\t\t\tif (that.write == that.end)\n\t\t\t\tthat.write = 0;\n\n\t\t\t// compute bytes to copy\n\t\t\tn = that.write - q;\n\t\t\tif (n > z.avail_out)\n\t\t\t\tn = z.avail_out;\n\t\t\tif (n !== 0 && r == Z_BUF_ERROR)\n\t\t\t\tr = Z_OK;\n\n\t\t\t// update counters\n\t\t\tz.avail_out -= n;\n\t\t\tz.total_out += n;\n\n\t\t\t// copy\n\t\t\tz.next_out.set(that.win.subarray(q, q + n), p);\n\t\t\tp += n;\n\t\t\tq += n;\n\t\t}\n\n\t\t// update pointers\n\t\tz.next_out_index = p;\n\t\tthat.read = q;\n\n\t\t// done\n\t\treturn r;\n\t};\n\n\tthat.proc = function (z, r) {\n\t\tlet t; // temporary storage\n\t\tlet b; // bit buffer\n\t\tlet k; // bits in bit buffer\n\t\tlet p; // input data pointer\n\t\tlet n; // bytes available there\n\t\tlet q; // output win write pointer\n\t\tlet m; // bytes to end of win or read pointer\n\n\t\tlet i;\n\n\t\t// copy input/output information to locals (UPDATE macro restores)\n\t\t// {\n\t\tp = z.next_in_index;\n\t\tn = z.avail_in;\n\t\tb = that.bitb;\n\t\tk = that.bitk;\n\t\t// }\n\t\t// {\n\t\tq = that.write;\n\t\tm = /* (int) */(q < that.read ? that.read - q - 1 : that.end - q);\n\t\t// }\n\n\t\t// process input based on current state\n\t\t// DEBUG dtree\n\t\t// eslint-disable-next-line no-constant-condition\n\t\twhile (true) {\n\t\t\tlet bl, bd, tl, td, bl_, bd_, tl_, td_;\n\t\t\tswitch (mode) {\n\t\t\t\tcase TYPE:\n\n\t\t\t\t\twhile (k < (3)) {\n\t\t\t\t\t\tif (n !== 0) {\n\t\t\t\t\t\t\tr = Z_OK;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthat.bitb = b;\n\t\t\t\t\t\t\tthat.bitk = k;\n\t\t\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\t\t\tthat.write = q;\n\t\t\t\t\t\t\treturn that.inflate_flush(z, r);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tn--;\n\t\t\t\t\t\tb |= (z.read_byte(p++) & 0xff) << k;\n\t\t\t\t\t\tk += 8;\n\t\t\t\t\t}\n\t\t\t\t\tt = /* (int) */(b & 7);\n\t\t\t\t\tlast = t & 1;\n\n\t\t\t\t\tswitch (t >>> 1) {\n\t\t\t\t\t\tcase 0: // stored\n\t\t\t\t\t\t\t// {\n\t\t\t\t\t\t\tb >>>= (3);\n\t\t\t\t\t\t\tk -= (3);\n\t\t\t\t\t\t\t// }\n\t\t\t\t\t\t\tt = k & 7; // go to byte boundary\n\n\t\t\t\t\t\t\t// {\n\t\t\t\t\t\t\tb >>>= (t);\n\t\t\t\t\t\t\tk -= (t);\n\t\t\t\t\t\t\t// }\n\t\t\t\t\t\t\tmode = LENS; // get length of stored block\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 1: // fixed\n\t\t\t\t\t\t\t// {\n\t\t\t\t\t\t\tbl = []; // new Array(1);\n\t\t\t\t\t\t\tbd = []; // new Array(1);\n\t\t\t\t\t\t\ttl = [[]]; // new Array(1);\n\t\t\t\t\t\t\ttd = [[]]; // new Array(1);\n\n\t\t\t\t\t\t\tInfTree.inflate_trees_fixed(bl, bd, tl, td);\n\t\t\t\t\t\t\tcodes.init(bl[0], bd[0], tl[0], 0, td[0], 0);\n\t\t\t\t\t\t\t// }\n\n\t\t\t\t\t\t\t// {\n\t\t\t\t\t\t\tb >>>= (3);\n\t\t\t\t\t\t\tk -= (3);\n\t\t\t\t\t\t\t// }\n\n\t\t\t\t\t\t\tmode = CODES;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 2: // dynamic\n\n\t\t\t\t\t\t\t// {\n\t\t\t\t\t\t\tb >>>= (3);\n\t\t\t\t\t\t\tk -= (3);\n\t\t\t\t\t\t\t// }\n\n\t\t\t\t\t\t\tmode = TABLE;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 3: // illegal\n\n\t\t\t\t\t\t\t// {\n\t\t\t\t\t\t\tb >>>= (3);\n\t\t\t\t\t\t\tk -= (3);\n\t\t\t\t\t\t\t// }\n\t\t\t\t\t\t\tmode = BADBLOCKS;\n\t\t\t\t\t\t\tz.msg = \"invalid block type\";\n\t\t\t\t\t\t\tr = Z_DATA_ERROR;\n\n\t\t\t\t\t\t\tthat.bitb = b;\n\t\t\t\t\t\t\tthat.bitk = k;\n\t\t\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\t\t\tthat.write = q;\n\t\t\t\t\t\t\treturn that.inflate_flush(z, r);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase LENS:\n\n\t\t\t\t\twhile (k < (32)) {\n\t\t\t\t\t\tif (n !== 0) {\n\t\t\t\t\t\t\tr = Z_OK;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthat.bitb = b;\n\t\t\t\t\t\t\tthat.bitk = k;\n\t\t\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\t\t\tthat.write = q;\n\t\t\t\t\t\t\treturn that.inflate_flush(z, r);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tn--;\n\t\t\t\t\t\tb |= (z.read_byte(p++) & 0xff) << k;\n\t\t\t\t\t\tk += 8;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ((((~b) >>> 16) & 0xffff) != (b & 0xffff)) {\n\t\t\t\t\t\tmode = BADBLOCKS;\n\t\t\t\t\t\tz.msg = \"invalid stored block lengths\";\n\t\t\t\t\t\tr = Z_DATA_ERROR;\n\n\t\t\t\t\t\tthat.bitb = b;\n\t\t\t\t\t\tthat.bitk = k;\n\t\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\t\tthat.write = q;\n\t\t\t\t\t\treturn that.inflate_flush(z, r);\n\t\t\t\t\t}\n\t\t\t\t\tleft = (b & 0xffff);\n\t\t\t\t\tb = k = 0; // dump bits\n\t\t\t\t\tmode = left !== 0 ? STORED : (last !== 0 ? DRY : TYPE);\n\t\t\t\t\tbreak;\n\t\t\t\tcase STORED:\n\t\t\t\t\tif (n === 0) {\n\t\t\t\t\t\tthat.bitb = b;\n\t\t\t\t\t\tthat.bitk = k;\n\t\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\t\tthat.write = q;\n\t\t\t\t\t\treturn that.inflate_flush(z, r);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (m === 0) {\n\t\t\t\t\t\tif (q == that.end && that.read !== 0) {\n\t\t\t\t\t\t\tq = 0;\n\t\t\t\t\t\t\tm = /* (int) */(q < that.read ? that.read - q - 1 : that.end - q);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (m === 0) {\n\t\t\t\t\t\t\tthat.write = q;\n\t\t\t\t\t\t\tr = that.inflate_flush(z, r);\n\t\t\t\t\t\t\tq = that.write;\n\t\t\t\t\t\t\tm = /* (int) */(q < that.read ? that.read - q - 1 : that.end - q);\n\t\t\t\t\t\t\tif (q == that.end && that.read !== 0) {\n\t\t\t\t\t\t\t\tq = 0;\n\t\t\t\t\t\t\t\tm = /* (int) */(q < that.read ? that.read - q - 1 : that.end - q);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (m === 0) {\n\t\t\t\t\t\t\t\tthat.bitb = b;\n\t\t\t\t\t\t\t\tthat.bitk = k;\n\t\t\t\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\t\t\t\tthat.write = q;\n\t\t\t\t\t\t\t\treturn that.inflate_flush(z, r);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tr = Z_OK;\n\n\t\t\t\t\tt = left;\n\t\t\t\t\tif (t > n)\n\t\t\t\t\t\tt = n;\n\t\t\t\t\tif (t > m)\n\t\t\t\t\t\tt = m;\n\t\t\t\t\tthat.win.set(z.read_buf(p, t), q);\n\t\t\t\t\tp += t;\n\t\t\t\t\tn -= t;\n\t\t\t\t\tq += t;\n\t\t\t\t\tm -= t;\n\t\t\t\t\tif ((left -= t) !== 0)\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tmode = last !== 0 ? DRY : TYPE;\n\t\t\t\t\tbreak;\n\t\t\t\tcase TABLE:\n\n\t\t\t\t\twhile (k < (14)) {\n\t\t\t\t\t\tif (n !== 0) {\n\t\t\t\t\t\t\tr = Z_OK;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthat.bitb = b;\n\t\t\t\t\t\t\tthat.bitk = k;\n\t\t\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\t\t\tthat.write = q;\n\t\t\t\t\t\t\treturn that.inflate_flush(z, r);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tn--;\n\t\t\t\t\t\tb |= (z.read_byte(p++) & 0xff) << k;\n\t\t\t\t\t\tk += 8;\n\t\t\t\t\t}\n\n\t\t\t\t\ttable = t = (b & 0x3fff);\n\t\t\t\t\tif ((t & 0x1f) > 29 || ((t >> 5) & 0x1f) > 29) {\n\t\t\t\t\t\tmode = BADBLOCKS;\n\t\t\t\t\t\tz.msg = \"too many length or distance symbols\";\n\t\t\t\t\t\tr = Z_DATA_ERROR;\n\n\t\t\t\t\t\tthat.bitb = b;\n\t\t\t\t\t\tthat.bitk = k;\n\t\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\t\tthat.write = q;\n\t\t\t\t\t\treturn that.inflate_flush(z, r);\n\t\t\t\t\t}\n\t\t\t\t\tt = 258 + (t & 0x1f) + ((t >> 5) & 0x1f);\n\t\t\t\t\tif (!blens || blens.length < t) {\n\t\t\t\t\t\tblens = []; // new Array(t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfor (i = 0; i < t; i++) {\n\t\t\t\t\t\t\tblens[i] = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// {\n\t\t\t\t\tb >>>= (14);\n\t\t\t\t\tk -= (14);\n\t\t\t\t\t// }\n\n\t\t\t\t\tindex = 0;\n\t\t\t\t\tmode = BTREE;\n\t\t\t\t/* falls through */\n\t\t\t\tcase BTREE:\n\t\t\t\t\twhile (index < 4 + (table >>> 10)) {\n\t\t\t\t\t\twhile (k < (3)) {\n\t\t\t\t\t\t\tif (n !== 0) {\n\t\t\t\t\t\t\t\tr = Z_OK;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthat.bitb = b;\n\t\t\t\t\t\t\t\tthat.bitk = k;\n\t\t\t\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\t\t\t\tthat.write = q;\n\t\t\t\t\t\t\t\treturn that.inflate_flush(z, r);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tn--;\n\t\t\t\t\t\t\tb |= (z.read_byte(p++) & 0xff) << k;\n\t\t\t\t\t\t\tk += 8;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tblens[border[index++]] = b & 7;\n\n\t\t\t\t\t\t// {\n\t\t\t\t\t\tb >>>= (3);\n\t\t\t\t\t\tk -= (3);\n\t\t\t\t\t\t// }\n\t\t\t\t\t}\n\n\t\t\t\t\twhile (index < 19) {\n\t\t\t\t\t\tblens[border[index++]] = 0;\n\t\t\t\t\t}\n\n\t\t\t\t\tbb[0] = 7;\n\t\t\t\t\tt = inftree.inflate_trees_bits(blens, bb, tb, hufts, z);\n\t\t\t\t\tif (t != Z_OK) {\n\t\t\t\t\t\tr = t;\n\t\t\t\t\t\tif (r == Z_DATA_ERROR) {\n\t\t\t\t\t\t\tblens = null;\n\t\t\t\t\t\t\tmode = BADBLOCKS;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthat.bitb = b;\n\t\t\t\t\t\tthat.bitk = k;\n\t\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\t\tthat.write = q;\n\t\t\t\t\t\treturn that.inflate_flush(z, r);\n\t\t\t\t\t}\n\n\t\t\t\t\tindex = 0;\n\t\t\t\t\tmode = DTREE;\n\t\t\t\t/* falls through */\n\t\t\t\tcase DTREE:\n\t\t\t\t\t// eslint-disable-next-line no-constant-condition\n\t\t\t\t\twhile (true) {\n\t\t\t\t\t\tt = table;\n\t\t\t\t\t\tif (index >= 258 + (t & 0x1f) + ((t >> 5) & 0x1f)) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tlet j, c;\n\n\t\t\t\t\t\tt = bb[0];\n\n\t\t\t\t\t\twhile (k < (t)) {\n\t\t\t\t\t\t\tif (n !== 0) {\n\t\t\t\t\t\t\t\tr = Z_OK;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthat.bitb = b;\n\t\t\t\t\t\t\t\tthat.bitk = k;\n\t\t\t\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\t\t\t\tthat.write = q;\n\t\t\t\t\t\t\t\treturn that.inflate_flush(z, r);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tn--;\n\t\t\t\t\t\t\tb |= (z.read_byte(p++) & 0xff) << k;\n\t\t\t\t\t\t\tk += 8;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// if (tb[0] == -1) {\n\t\t\t\t\t\t// System.err.println(\"null...\");\n\t\t\t\t\t\t// }\n\n\t\t\t\t\t\tt = hufts[(tb[0] + (b & inflate_mask[t])) * 3 + 1];\n\t\t\t\t\t\tc = hufts[(tb[0] + (b & inflate_mask[t])) * 3 + 2];\n\n\t\t\t\t\t\tif (c < 16) {\n\t\t\t\t\t\t\tb >>>= (t);\n\t\t\t\t\t\t\tk -= (t);\n\t\t\t\t\t\t\tblens[index++] = c;\n\t\t\t\t\t\t} else { // c == 16..18\n\t\t\t\t\t\t\ti = c == 18 ? 7 : c - 14;\n\t\t\t\t\t\t\tj = c == 18 ? 11 : 3;\n\n\t\t\t\t\t\t\twhile (k < (t + i)) {\n\t\t\t\t\t\t\t\tif (n !== 0) {\n\t\t\t\t\t\t\t\t\tr = Z_OK;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tthat.bitb = b;\n\t\t\t\t\t\t\t\t\tthat.bitk = k;\n\t\t\t\t\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\t\t\t\t\tthat.write = q;\n\t\t\t\t\t\t\t\t\treturn that.inflate_flush(z, r);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tn--;\n\t\t\t\t\t\t\t\tb |= (z.read_byte(p++) & 0xff) << k;\n\t\t\t\t\t\t\t\tk += 8;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tb >>>= (t);\n\t\t\t\t\t\t\tk -= (t);\n\n\t\t\t\t\t\t\tj += (b & inflate_mask[i]);\n\n\t\t\t\t\t\t\tb >>>= (i);\n\t\t\t\t\t\t\tk -= (i);\n\n\t\t\t\t\t\t\ti = index;\n\t\t\t\t\t\t\tt = table;\n\t\t\t\t\t\t\tif (i + j > 258 + (t & 0x1f) + ((t >> 5) & 0x1f) || (c == 16 && i < 1)) {\n\t\t\t\t\t\t\t\tblens = null;\n\t\t\t\t\t\t\t\tmode = BADBLOCKS;\n\t\t\t\t\t\t\t\tz.msg = \"invalid bit length repeat\";\n\t\t\t\t\t\t\t\tr = Z_DATA_ERROR;\n\n\t\t\t\t\t\t\t\tthat.bitb = b;\n\t\t\t\t\t\t\t\tthat.bitk = k;\n\t\t\t\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\t\t\t\tthat.write = q;\n\t\t\t\t\t\t\t\treturn that.inflate_flush(z, r);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tc = c == 16 ? blens[i - 1] : 0;\n\t\t\t\t\t\t\tdo {\n\t\t\t\t\t\t\t\tblens[i++] = c;\n\t\t\t\t\t\t\t} while (--j !== 0);\n\t\t\t\t\t\t\tindex = i;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\ttb[0] = -1;\n\t\t\t\t\t// {\n\t\t\t\t\tbl_ = []; // new Array(1);\n\t\t\t\t\tbd_ = []; // new Array(1);\n\t\t\t\t\ttl_ = []; // new Array(1);\n\t\t\t\t\ttd_ = []; // new Array(1);\n\t\t\t\t\tbl_[0] = 9; // must be <= 9 for lookahead assumptions\n\t\t\t\t\tbd_[0] = 6; // must be <= 9 for lookahead assumptions\n\n\t\t\t\t\tt = table;\n\t\t\t\t\tt = inftree.inflate_trees_dynamic(257 + (t & 0x1f), 1 + ((t >> 5) & 0x1f), blens, bl_, bd_, tl_, td_, hufts, z);\n\n\t\t\t\t\tif (t != Z_OK) {\n\t\t\t\t\t\tif (t == Z_DATA_ERROR) {\n\t\t\t\t\t\t\tblens = null;\n\t\t\t\t\t\t\tmode = BADBLOCKS;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tr = t;\n\n\t\t\t\t\t\tthat.bitb = b;\n\t\t\t\t\t\tthat.bitk = k;\n\t\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\t\tthat.write = q;\n\t\t\t\t\t\treturn that.inflate_flush(z, r);\n\t\t\t\t\t}\n\t\t\t\t\tcodes.init(bl_[0], bd_[0], hufts, tl_[0], hufts, td_[0]);\n\t\t\t\t\t// }\n\t\t\t\t\tmode = CODES;\n\t\t\t\t/* falls through */\n\t\t\t\tcase CODES:\n\t\t\t\t\tthat.bitb = b;\n\t\t\t\t\tthat.bitk = k;\n\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\tthat.write = q;\n\n\t\t\t\t\tif ((r = codes.proc(that, z, r)) != Z_STREAM_END) {\n\t\t\t\t\t\treturn that.inflate_flush(z, r);\n\t\t\t\t\t}\n\t\t\t\t\tr = Z_OK;\n\t\t\t\t\tcodes.free(z);\n\n\t\t\t\t\tp = z.next_in_index;\n\t\t\t\t\tn = z.avail_in;\n\t\t\t\t\tb = that.bitb;\n\t\t\t\t\tk = that.bitk;\n\t\t\t\t\tq = that.write;\n\t\t\t\t\tm = /* (int) */(q < that.read ? that.read - q - 1 : that.end - q);\n\n\t\t\t\t\tif (last === 0) {\n\t\t\t\t\t\tmode = TYPE;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tmode = DRY;\n\t\t\t\t/* falls through */\n\t\t\t\tcase DRY:\n\t\t\t\t\tthat.write = q;\n\t\t\t\t\tr = that.inflate_flush(z, r);\n\t\t\t\t\tq = that.write;\n\t\t\t\t\tm = /* (int) */(q < that.read ? that.read - q - 1 : that.end - q);\n\t\t\t\t\tif (that.read != that.write) {\n\t\t\t\t\t\tthat.bitb = b;\n\t\t\t\t\t\tthat.bitk = k;\n\t\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\t\tthat.write = q;\n\t\t\t\t\t\treturn that.inflate_flush(z, r);\n\t\t\t\t\t}\n\t\t\t\t\tmode = DONELOCKS;\n\t\t\t\t/* falls through */\n\t\t\t\tcase DONELOCKS:\n\t\t\t\t\tr = Z_STREAM_END;\n\n\t\t\t\t\tthat.bitb = b;\n\t\t\t\t\tthat.bitk = k;\n\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\tthat.write = q;\n\t\t\t\t\treturn that.inflate_flush(z, r);\n\t\t\t\tcase BADBLOCKS:\n\t\t\t\t\tr = Z_DATA_ERROR;\n\n\t\t\t\t\tthat.bitb = b;\n\t\t\t\t\tthat.bitk = k;\n\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\tthat.write = q;\n\t\t\t\t\treturn that.inflate_flush(z, r);\n\n\t\t\t\tdefault:\n\t\t\t\t\tr = Z_STREAM_ERROR;\n\n\t\t\t\t\tthat.bitb = b;\n\t\t\t\t\tthat.bitk = k;\n\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\tthat.write = q;\n\t\t\t\t\treturn that.inflate_flush(z, r);\n\t\t\t}\n\t\t}\n\t};\n\n\tthat.free = function (z) {\n\t\tthat.reset(z, null);\n\t\tthat.win = null;\n\t\thufts = null;\n\t\t// ZFREE(z, s);\n\t};\n\n\tthat.set_dictionary = function (d, start, n) {\n\t\tthat.win.set(d.subarray(start, start + n), 0);\n\t\tthat.read = that.write = n;\n\t};\n\n\t// Returns true if inflate is currently at the end of a block generated\n\t// by Z_SYNC_FLUSH or Z_FULL_FLUSH.\n\tthat.sync_point = function () {\n\t\treturn mode == LENS ? 1 : 0;\n\t};\n\n}\n\n// Inflate\n\n// preset dictionary flag in zlib header\nconst PRESET_DICT = 0x20;\n\nconst Z_DEFLATED = 8;\n\nconst METHOD = 0; // waiting for method byte\nconst FLAG = 1; // waiting for flag byte\nconst DICT4 = 2; // four dictionary check bytes to go\nconst DICT3 = 3; // three dictionary check bytes to go\nconst DICT2 = 4; // two dictionary check bytes to go\nconst DICT1 = 5; // one dictionary check byte to go\nconst DICT0 = 6; // waiting for inflateSetDictionary\nconst BLOCKS = 7; // decompressing blocks\nconst DONE = 12; // finished check, done\nconst BAD = 13; // got an error--stay here\n\nconst mark = [0, 0, 0xff, 0xff];\n\nfunction Inflate() {\n\tconst that = this;\n\n\tthat.mode = 0; // current inflate mode\n\n\t// mode dependent information\n\tthat.method = 0; // if FLAGS, method byte\n\n\t// if CHECK, check values to compare\n\tthat.was = [0]; // new Array(1); // computed check value\n\tthat.need = 0; // stream check value\n\n\t// if BAD, inflateSync's marker bytes count\n\tthat.marker = 0;\n\n\t// mode independent information\n\tthat.wbits = 0; // log2(win size) (8..15, defaults to 15)\n\n\t// this.blocks; // current inflate_blocks state\n\n\tfunction inflateReset(z) {\n\t\tif (!z || !z.istate)\n\t\t\treturn Z_STREAM_ERROR;\n\n\t\tz.total_in = z.total_out = 0;\n\t\tz.msg = null;\n\t\tz.istate.mode = BLOCKS;\n\t\tz.istate.blocks.reset(z, null);\n\t\treturn Z_OK;\n\t}\n\n\tthat.inflateEnd = function (z) {\n\t\tif (that.blocks)\n\t\t\tthat.blocks.free(z);\n\t\tthat.blocks = null;\n\t\t// ZFREE(z, z->state);\n\t\treturn Z_OK;\n\t};\n\n\tthat.inflateInit = function (z, w) {\n\t\tz.msg = null;\n\t\tthat.blocks = null;\n\n\t\t// set win size\n\t\tif (w < 8 || w > 15) {\n\t\t\tthat.inflateEnd(z);\n\t\t\treturn Z_STREAM_ERROR;\n\t\t}\n\t\tthat.wbits = w;\n\n\t\tz.istate.blocks = new InfBlocks(z, 1 << w);\n\n\t\t// reset state\n\t\tinflateReset(z);\n\t\treturn Z_OK;\n\t};\n\n\tthat.inflate = function (z, f) {\n\t\tlet r;\n\t\tlet b;\n\n\t\tif (!z || !z.istate || !z.next_in)\n\t\t\treturn Z_STREAM_ERROR;\n\t\tconst istate = z.istate;\n\t\tf = f == Z_FINISH ? Z_BUF_ERROR : Z_OK;\n\t\tr = Z_BUF_ERROR;\n\t\t// eslint-disable-next-line no-constant-condition\n\t\twhile (true) {\n\t\t\tswitch (istate.mode) {\n\t\t\t\tcase METHOD:\n\n\t\t\t\t\tif (z.avail_in === 0)\n\t\t\t\t\t\treturn r;\n\t\t\t\t\tr = f;\n\n\t\t\t\t\tz.avail_in--;\n\t\t\t\t\tz.total_in++;\n\t\t\t\t\tif (((istate.method = z.read_byte(z.next_in_index++)) & 0xf) != Z_DEFLATED) {\n\t\t\t\t\t\tistate.mode = BAD;\n\t\t\t\t\t\tz.msg = \"unknown compression method\";\n\t\t\t\t\t\tistate.marker = 5; // can't try inflateSync\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif ((istate.method >> 4) + 8 > istate.wbits) {\n\t\t\t\t\t\tistate.mode = BAD;\n\t\t\t\t\t\tz.msg = \"invalid win size\";\n\t\t\t\t\t\tistate.marker = 5; // can't try inflateSync\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tistate.mode = FLAG;\n\t\t\t\t/* falls through */\n\t\t\t\tcase FLAG:\n\n\t\t\t\t\tif (z.avail_in === 0)\n\t\t\t\t\t\treturn r;\n\t\t\t\t\tr = f;\n\n\t\t\t\t\tz.avail_in--;\n\t\t\t\t\tz.total_in++;\n\t\t\t\t\tb = (z.read_byte(z.next_in_index++)) & 0xff;\n\n\t\t\t\t\tif ((((istate.method << 8) + b) % 31) !== 0) {\n\t\t\t\t\t\tistate.mode = BAD;\n\t\t\t\t\t\tz.msg = \"incorrect header check\";\n\t\t\t\t\t\tistate.marker = 5; // can't try inflateSync\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ((b & PRESET_DICT) === 0) {\n\t\t\t\t\t\tistate.mode = BLOCKS;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tistate.mode = DICT4;\n\t\t\t\t/* falls through */\n\t\t\t\tcase DICT4:\n\n\t\t\t\t\tif (z.avail_in === 0)\n\t\t\t\t\t\treturn r;\n\t\t\t\t\tr = f;\n\n\t\t\t\t\tz.avail_in--;\n\t\t\t\t\tz.total_in++;\n\t\t\t\t\tistate.need = ((z.read_byte(z.next_in_index++) & 0xff) << 24) & 0xff000000;\n\t\t\t\t\tistate.mode = DICT3;\n\t\t\t\t/* falls through */\n\t\t\t\tcase DICT3:\n\n\t\t\t\t\tif (z.avail_in === 0)\n\t\t\t\t\t\treturn r;\n\t\t\t\t\tr = f;\n\n\t\t\t\t\tz.avail_in--;\n\t\t\t\t\tz.total_in++;\n\t\t\t\t\tistate.need += ((z.read_byte(z.next_in_index++) & 0xff) << 16) & 0xff0000;\n\t\t\t\t\tistate.mode = DICT2;\n\t\t\t\t/* falls through */\n\t\t\t\tcase DICT2:\n\n\t\t\t\t\tif (z.avail_in === 0)\n\t\t\t\t\t\treturn r;\n\t\t\t\t\tr = f;\n\n\t\t\t\t\tz.avail_in--;\n\t\t\t\t\tz.total_in++;\n\t\t\t\t\tistate.need += ((z.read_byte(z.next_in_index++) & 0xff) << 8) & 0xff00;\n\t\t\t\t\tistate.mode = DICT1;\n\t\t\t\t/* falls through */\n\t\t\t\tcase DICT1:\n\n\t\t\t\t\tif (z.avail_in === 0)\n\t\t\t\t\t\treturn r;\n\t\t\t\t\tr = f;\n\n\t\t\t\t\tz.avail_in--;\n\t\t\t\t\tz.total_in++;\n\t\t\t\t\tistate.need += (z.read_byte(z.next_in_index++) & 0xff);\n\t\t\t\t\tistate.mode = DICT0;\n\t\t\t\t\treturn Z_NEED_DICT;\n\t\t\t\tcase DICT0:\n\t\t\t\t\tistate.mode = BAD;\n\t\t\t\t\tz.msg = \"need dictionary\";\n\t\t\t\t\tistate.marker = 0; // can try inflateSync\n\t\t\t\t\treturn Z_STREAM_ERROR;\n\t\t\t\tcase BLOCKS:\n\n\t\t\t\t\tr = istate.blocks.proc(z, r);\n\t\t\t\t\tif (r == Z_DATA_ERROR) {\n\t\t\t\t\t\tistate.mode = BAD;\n\t\t\t\t\t\tistate.marker = 0; // can try inflateSync\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif (r == Z_OK) {\n\t\t\t\t\t\tr = f;\n\t\t\t\t\t}\n\t\t\t\t\tif (r != Z_STREAM_END) {\n\t\t\t\t\t\treturn r;\n\t\t\t\t\t}\n\t\t\t\t\tr = f;\n\t\t\t\t\tistate.blocks.reset(z, istate.was);\n\t\t\t\t\tistate.mode = DONE;\n\t\t\t\t/* falls through */\n\t\t\t\tcase DONE:\n\t\t\t\t\treturn Z_STREAM_END;\n\t\t\t\tcase BAD:\n\t\t\t\t\treturn Z_DATA_ERROR;\n\t\t\t\tdefault:\n\t\t\t\t\treturn Z_STREAM_ERROR;\n\t\t\t}\n\t\t}\n\t};\n\n\tthat.inflateSetDictionary = function (z, dictionary, dictLength) {\n\t\tlet index = 0, length = dictLength;\n\t\tif (!z || !z.istate || z.istate.mode != DICT0)\n\t\t\treturn Z_STREAM_ERROR;\n\t\tconst istate = z.istate;\n\t\tif (length >= (1 << istate.wbits)) {\n\t\t\tlength = (1 << istate.wbits) - 1;\n\t\t\tindex = dictLength - length;\n\t\t}\n\t\tistate.blocks.set_dictionary(dictionary, index, length);\n\t\tistate.mode = BLOCKS;\n\t\treturn Z_OK;\n\t};\n\n\tthat.inflateSync = function (z) {\n\t\tlet n; // number of bytes to look at\n\t\tlet p; // pointer to bytes\n\t\tlet m; // number of marker bytes found in a row\n\t\tlet r, w; // temporaries to save total_in and total_out\n\n\t\t// set up\n\t\tif (!z || !z.istate)\n\t\t\treturn Z_STREAM_ERROR;\n\t\tconst istate = z.istate;\n\t\tif (istate.mode != BAD) {\n\t\t\tistate.mode = BAD;\n\t\t\tistate.marker = 0;\n\t\t}\n\t\tif ((n = z.avail_in) === 0)\n\t\t\treturn Z_BUF_ERROR;\n\t\tp = z.next_in_index;\n\t\tm = istate.marker;\n\n\t\t// search\n\t\twhile (n !== 0 && m < 4) {\n\t\t\tif (z.read_byte(p) == mark[m]) {\n\t\t\t\tm++;\n\t\t\t} else if (z.read_byte(p) !== 0) {\n\t\t\t\tm = 0;\n\t\t\t} else {\n\t\t\t\tm = 4 - m;\n\t\t\t}\n\t\t\tp++;\n\t\t\tn--;\n\t\t}\n\n\t\t// restore\n\t\tz.total_in += p - z.next_in_index;\n\t\tz.next_in_index = p;\n\t\tz.avail_in = n;\n\t\tistate.marker = m;\n\n\t\t// return no joy or set up to restart on a new block\n\t\tif (m != 4) {\n\t\t\treturn Z_DATA_ERROR;\n\t\t}\n\t\tr = z.total_in;\n\t\tw = z.total_out;\n\t\tinflateReset(z);\n\t\tz.total_in = r;\n\t\tz.total_out = w;\n\t\tistate.mode = BLOCKS;\n\t\treturn Z_OK;\n\t};\n\n\t// Returns true if inflate is currently at the end of a block generated\n\t// by Z_SYNC_FLUSH or Z_FULL_FLUSH. This function is used by one PPP\n\t// implementation to provide an additional safety check. PPP uses\n\t// Z_SYNC_FLUSH\n\t// but removes the length bytes of the resulting empty stored block. When\n\t// decompressing, PPP checks that at the end of input packet, inflate is\n\t// waiting for these length bytes.\n\tthat.inflateSyncPoint = function (z) {\n\t\tif (!z || !z.istate || !z.istate.blocks)\n\t\t\treturn Z_STREAM_ERROR;\n\t\treturn z.istate.blocks.sync_point();\n\t};\n}\n\n// ZStream\n\nfunction ZStream() {\n}\n\nZStream.prototype = {\n\tinflateInit: function (bits) {\n\t\tconst that = this;\n\t\tthat.istate = new Inflate();\n\t\tif (!bits)\n\t\t\tbits = MAX_BITS;\n\t\treturn that.istate.inflateInit(that, bits);\n\t},\n\n\tinflate: function (f) {\n\t\tconst that = this;\n\t\tif (!that.istate)\n\t\t\treturn Z_STREAM_ERROR;\n\t\treturn that.istate.inflate(that, f);\n\t},\n\n\tinflateEnd: function () {\n\t\tconst that = this;\n\t\tif (!that.istate)\n\t\t\treturn Z_STREAM_ERROR;\n\t\tconst ret = that.istate.inflateEnd(that);\n\t\tthat.istate = null;\n\t\treturn ret;\n\t},\n\n\tinflateSync: function () {\n\t\tconst that = this;\n\t\tif (!that.istate)\n\t\t\treturn Z_STREAM_ERROR;\n\t\treturn that.istate.inflateSync(that);\n\t},\n\tinflateSetDictionary: function (dictionary, dictLength) {\n\t\tconst that = this;\n\t\tif (!that.istate)\n\t\t\treturn Z_STREAM_ERROR;\n\t\treturn that.istate.inflateSetDictionary(that, dictionary, dictLength);\n\t},\n\tread_byte: function (start) {\n\t\tconst that = this;\n\t\treturn that.next_in[start];\n\t},\n\tread_buf: function (start, size) {\n\t\tconst that = this;\n\t\treturn that.next_in.subarray(start, start + size);\n\t}\n};\n\n// Inflater\n\nfunction ZipInflate(options) {\n\tconst that = this;\n\tconst z = new ZStream();\n\tconst bufsize = options && options.chunkSize ? Math.floor(options.chunkSize * 2) : 128 * 1024;\n\tconst flush = Z_NO_FLUSH;\n\tconst buf = new Uint8Array(bufsize);\n\tlet nomoreinput = false;\n\n\tz.inflateInit();\n\tz.next_out = buf;\n\n\tthat.append = function (data, onprogress) {\n\t\tconst buffers = [];\n\t\tlet err, array, lastIndex = 0, bufferIndex = 0, bufferSize = 0;\n\t\tif (data.length === 0)\n\t\t\treturn;\n\t\tz.next_in_index = 0;\n\t\tz.next_in = data;\n\t\tz.avail_in = data.length;\n\t\tdo {\n\t\t\tz.next_out_index = 0;\n\t\t\tz.avail_out = bufsize;\n\t\t\tif ((z.avail_in === 0) && (!nomoreinput)) { // if buffer is empty and more input is available, refill it\n\t\t\t\tz.next_in_index = 0;\n\t\t\t\tnomoreinput = true;\n\t\t\t}\n\t\t\terr = z.inflate(flush);\n\t\t\tif (nomoreinput && (err === Z_BUF_ERROR)) {\n\t\t\t\tif (z.avail_in !== 0)\n\t\t\t\t\tthrow new Error(\"inflating: bad input\");\n\t\t\t} else if (err !== Z_OK && err !== Z_STREAM_END)\n\t\t\t\tthrow new Error(\"inflating: \" + z.msg);\n\t\t\tif ((nomoreinput || err === Z_STREAM_END) && (z.avail_in === data.length))\n\t\t\t\tthrow new Error(\"inflating: bad input\");\n\t\t\tif (z.next_out_index)\n\t\t\t\tif (z.next_out_index === bufsize)\n\t\t\t\t\tbuffers.push(new Uint8Array(buf));\n\t\t\t\telse\n\t\t\t\t\tbuffers.push(buf.slice(0, z.next_out_index));\n\t\t\tbufferSize += z.next_out_index;\n\t\t\tif (onprogress && z.next_in_index > 0 && z.next_in_index != lastIndex) {\n\t\t\t\tonprogress(z.next_in_index);\n\t\t\t\tlastIndex = z.next_in_index;\n\t\t\t}\n\t\t} while (z.avail_in > 0 || z.avail_out === 0);\n\t\tif (buffers.length > 1) {\n\t\t\tarray = new Uint8Array(bufferSize);\n\t\t\tbuffers.forEach(function (chunk) {\n\t\t\t\tarray.set(chunk, bufferIndex);\n\t\t\t\tbufferIndex += chunk.length;\n\t\t\t});\n\t\t} else {\n\t\t\tarray = buffers[0] || new Uint8Array(0);\n\t\t}\n\t\treturn array;\n\t};\n\tthat.flush = function () {\n\t\tz.inflateEnd();\n\t};\n}\n\nexport default ZipInflate;","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/* global navigator */\n\nconst DEFAULT_CONFIGURATION = {\n\tchunkSize: 512 * 1024,\n\tmaxWorkers: (typeof navigator != \"undefined\" && navigator.hardwareConcurrency) || 2,\n\tterminateWorkerTimeout: 5000,\n\tuseWebWorkers: true,\n\tworkerScripts: undefined\n};\n\nconst config = Object.assign({}, DEFAULT_CONFIGURATION);\n\nexport {\n\tconfigure,\n\tgetConfiguration\n};\n\nfunction getConfiguration() {\n\treturn config;\n}\n\nfunction configure(configuration) {\n\tif (configuration.baseURL !== undefined) {\n\t\tconfig.baseURL = configuration.baseURL;\n\t}\n\tif (configuration.chunkSize !== undefined) {\n\t\tconfig.chunkSize = configuration.chunkSize;\n\t}\n\tif (configuration.maxWorkers !== undefined) {\n\t\tconfig.maxWorkers = configuration.maxWorkers;\n\t}\n\tif (configuration.terminateWorkerTimeout !== undefined) {\n\t\tconfig.terminateWorkerTimeout = configuration.terminateWorkerTimeout;\n\t}\n\tif (configuration.useWebWorkers !== undefined) {\n\t\tconfig.useWebWorkers = configuration.useWebWorkers;\n\t}\n\tif (configuration.Deflate !== undefined) {\n\t\tconfig.Deflate = configuration.Deflate;\n\t}\n\tif (configuration.Inflate !== undefined) {\n\t\tconfig.Inflate = configuration.Inflate;\n\t}\n\tif (configuration.workerScripts !== undefined) {\n\t\tif (configuration.workerScripts.deflate) {\n\t\t\tif (!Array.isArray(configuration.workerScripts.deflate)) {\n\t\t\t\tthrow new Error(\"workerScripts.deflate must be an array\");\n\t\t\t}\n\t\t\tif (!config.workerScripts) {\n\t\t\t\tconfig.workerScripts = {};\n\t\t\t}\n\t\t\tconfig.workerScripts.deflate = configuration.workerScripts.deflate;\n\t\t}\n\t\tif (configuration.workerScripts.inflate) {\n\t\t\tif (!Array.isArray(configuration.workerScripts.inflate)) {\n\t\t\t\tthrow new Error(\"workerScripts.inflate must be an array\");\n\t\t\t}\n\t\t\tif (!config.workerScripts) {\n\t\t\t\tconfig.workerScripts = {};\n\t\t\t}\n\t\t\tconfig.workerScripts.inflate = configuration.workerScripts.inflate;\n\t\t}\n\t}\n}\n","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nconst table = {\n\t\"application\": {\n\t\t\"andrew-inset\": \"ez\",\n\t\t\"annodex\": \"anx\",\n\t\t\"atom+xml\": \"atom\",\n\t\t\"atomcat+xml\": \"atomcat\",\n\t\t\"atomserv+xml\": \"atomsrv\",\n\t\t\"bbolin\": \"lin\",\n\t\t\"cap\": [\"cap\", \"pcap\"],\n\t\t\"cu-seeme\": \"cu\",\n\t\t\"davmount+xml\": \"davmount\",\n\t\t\"dsptype\": \"tsp\",\n\t\t\"ecmascript\": [\"es\", \"ecma\"],\n\t\t\"futuresplash\": \"spl\",\n\t\t\"hta\": \"hta\",\n\t\t\"java-archive\": \"jar\",\n\t\t\"java-serialized-object\": \"ser\",\n\t\t\"java-vm\": \"class\",\n\t\t\"javascript\": \"js\",\n\t\t\"m3g\": \"m3g\",\n\t\t\"mac-binhex40\": \"hqx\",\n\t\t\"mathematica\": [\"nb\", \"ma\", \"mb\"],\n\t\t\"msaccess\": \"mdb\",\n\t\t\"msword\": [\"doc\", \"dot\"],\n\t\t\"mxf\": \"mxf\",\n\t\t\"oda\": \"oda\",\n\t\t\"ogg\": \"ogx\",\n\t\t\"pdf\": \"pdf\",\n\t\t\"pgp-keys\": \"key\",\n\t\t\"pgp-signature\": [\"asc\", \"sig\"],\n\t\t\"pics-rules\": \"prf\",\n\t\t\"postscript\": [\"ps\", \"ai\", \"eps\", \"epsi\", \"epsf\", \"eps2\", \"eps3\"],\n\t\t\"rar\": \"rar\",\n\t\t\"rdf+xml\": \"rdf\",\n\t\t\"rss+xml\": \"rss\",\n\t\t\"rtf\": \"rtf\",\n\t\t\"smil\": [\"smi\", \"smil\"],\n\t\t\"xhtml+xml\": [\"xhtml\", \"xht\"],\n\t\t\"xml\": [\"xml\", \"xsl\", \"xsd\"],\n\t\t\"xspf+xml\": \"xspf\",\n\t\t\"zip\": \"zip\",\n\t\t\"vnd.android.package-archive\": \"apk\",\n\t\t\"vnd.cinderella\": \"cdy\",\n\t\t\"vnd.google-earth.kml+xml\": \"kml\",\n\t\t\"vnd.google-earth.kmz\": \"kmz\",\n\t\t\"vnd.mozilla.xul+xml\": \"xul\",\n\t\t\"vnd.ms-excel\": [\"xls\", \"xlb\", \"xlt\", \"xlm\", \"xla\", \"xlc\", \"xlw\"],\n\t\t\"vnd.ms-pki.seccat\": \"cat\",\n\t\t\"vnd.ms-pki.stl\": \"stl\",\n\t\t\"vnd.ms-powerpoint\": [\"ppt\", \"pps\", \"pot\"],\n\t\t\"vnd.oasis.opendocument.chart\": \"odc\",\n\t\t\"vnd.oasis.opendocument.database\": \"odb\",\n\t\t\"vnd.oasis.opendocument.formula\": \"odf\",\n\t\t\"vnd.oasis.opendocument.graphics\": \"odg\",\n\t\t\"vnd.oasis.opendocument.graphics-template\": \"otg\",\n\t\t\"vnd.oasis.opendocument.image\": \"odi\",\n\t\t\"vnd.oasis.opendocument.presentation\": \"odp\",\n\t\t\"vnd.oasis.opendocument.presentation-template\": \"otp\",\n\t\t\"vnd.oasis.opendocument.spreadsheet\": \"ods\",\n\t\t\"vnd.oasis.opendocument.spreadsheet-template\": \"ots\",\n\t\t\"vnd.oasis.opendocument.text\": \"odt\",\n\t\t\"vnd.oasis.opendocument.text-master\": \"odm\",\n\t\t\"vnd.oasis.opendocument.text-template\": \"ott\",\n\t\t\"vnd.oasis.opendocument.text-web\": \"oth\",\n\t\t\"vnd.openxmlformats-officedocument.spreadsheetml.sheet\": \"xlsx\",\n\t\t\"vnd.openxmlformats-officedocument.spreadsheetml.template\": \"xltx\",\n\t\t\"vnd.openxmlformats-officedocument.presentationml.presentation\": \"pptx\",\n\t\t\"vnd.openxmlformats-officedocument.presentationml.slideshow\": \"ppsx\",\n\t\t\"vnd.openxmlformats-officedocument.presentationml.template\": \"potx\",\n\t\t\"vnd.openxmlformats-officedocument.wordprocessingml.document\": \"docx\",\n\t\t\"vnd.openxmlformats-officedocument.wordprocessingml.template\": \"dotx\",\n\t\t\"vnd.smaf\": \"mmf\",\n\t\t\"vnd.stardivision.calc\": \"sdc\",\n\t\t\"vnd.stardivision.chart\": \"sds\",\n\t\t\"vnd.stardivision.draw\": \"sda\",\n\t\t\"vnd.stardivision.impress\": \"sdd\",\n\t\t\"vnd.stardivision.math\": [\"sdf\", \"smf\"],\n\t\t\"vnd.stardivision.writer\": [\"sdw\", \"vor\"],\n\t\t\"vnd.stardivision.writer-global\": \"sgl\",\n\t\t\"vnd.sun.xml.calc\": \"sxc\",\n\t\t\"vnd.sun.xml.calc.template\": \"stc\",\n\t\t\"vnd.sun.xml.draw\": \"sxd\",\n\t\t\"vnd.sun.xml.draw.template\": \"std\",\n\t\t\"vnd.sun.xml.impress\": \"sxi\",\n\t\t\"vnd.sun.xml.impress.template\": \"sti\",\n\t\t\"vnd.sun.xml.math\": \"sxm\",\n\t\t\"vnd.sun.xml.writer\": \"sxw\",\n\t\t\"vnd.sun.xml.writer.global\": \"sxg\",\n\t\t\"vnd.sun.xml.writer.template\": \"stw\",\n\t\t\"vnd.symbian.install\": [\"sis\", \"sisx\"],\n\t\t\"vnd.visio\": [\"vsd\", \"vst\", \"vss\", \"vsw\"],\n\t\t\"vnd.wap.wbxml\": \"wbxml\",\n\t\t\"vnd.wap.wmlc\": \"wmlc\",\n\t\t\"vnd.wap.wmlscriptc\": \"wmlsc\",\n\t\t\"vnd.wordperfect\": \"wpd\",\n\t\t\"vnd.wordperfect5.1\": \"wp5\",\n\t\t\"x-123\": \"wk\",\n\t\t\"x-7z-compressed\": \"7z\",\n\t\t\"x-abiword\": \"abw\",\n\t\t\"x-apple-diskimage\": \"dmg\",\n\t\t\"x-bcpio\": \"bcpio\",\n\t\t\"x-bittorrent\": \"torrent\",\n\t\t\"x-cbr\": [\"cbr\", \"cba\", \"cbt\", \"cb7\"],\n\t\t\"x-cbz\": \"cbz\",\n\t\t\"x-cdf\": [\"cdf\", \"cda\"],\n\t\t\"x-cdlink\": \"vcd\",\n\t\t\"x-chess-pgn\": \"pgn\",\n\t\t\"x-cpio\": \"cpio\",\n\t\t\"x-csh\": \"csh\",\n\t\t\"x-debian-package\": [\"deb\", \"udeb\"],\n\t\t\"x-director\": [\"dcr\", \"dir\", \"dxr\", \"cst\", \"cct\", \"cxt\", \"w3d\", \"fgd\", \"swa\"],\n\t\t\"x-dms\": \"dms\",\n\t\t\"x-doom\": \"wad\",\n\t\t\"x-dvi\": \"dvi\",\n\t\t\"x-httpd-eruby\": \"rhtml\",\n\t\t\"x-font\": \"pcf.Z\",\n\t\t\"x-freemind\": \"mm\",\n\t\t\"x-gnumeric\": \"gnumeric\",\n\t\t\"x-go-sgf\": \"sgf\",\n\t\t\"x-graphing-calculator\": \"gcf\",\n\t\t\"x-gtar\": [\"gtar\", \"taz\"],\n\t\t\"x-hdf\": \"hdf\",\n\t\t\"x-httpd-php\": [\"phtml\", \"pht\", \"php\"],\n\t\t\"x-httpd-php-source\": \"phps\",\n\t\t\"x-httpd-php3\": \"php3\",\n\t\t\"x-httpd-php3-preprocessed\": \"php3p\",\n\t\t\"x-httpd-php4\": \"php4\",\n\t\t\"x-httpd-php5\": \"php5\",\n\t\t\"x-ica\": \"ica\",\n\t\t\"x-info\": \"info\",\n\t\t\"x-internet-signup\": [\"ins\", \"isp\"],\n\t\t\"x-iphone\": \"iii\",\n\t\t\"x-iso9660-image\": \"iso\",\n\t\t\"x-java-jnlp-file\": \"jnlp\",\n\t\t\"x-jmol\": \"jmz\",\n\t\t\"x-killustrator\": \"kil\",\n\t\t\"x-koan\": [\"skp\", \"skd\", \"skt\", \"skm\"],\n\t\t\"x-kpresenter\": [\"kpr\", \"kpt\"],\n\t\t\"x-kword\": [\"kwd\", \"kwt\"],\n\t\t\"x-latex\": \"latex\",\n\t\t\"x-lha\": \"lha\",\n\t\t\"x-lyx\": \"lyx\",\n\t\t\"x-lzh\": \"lzh\",\n\t\t\"x-lzx\": \"lzx\",\n\t\t\"x-maker\": [\"frm\", \"maker\", \"frame\", \"fm\", \"fb\", \"book\", \"fbdoc\"],\n\t\t\"x-ms-wmd\": \"wmd\",\n\t\t\"x-ms-wmz\": \"wmz\",\n\t\t\"x-msdos-program\": [\"com\", \"exe\", \"bat\", \"dll\"],\n\t\t\"x-msi\": \"msi\",\n\t\t\"x-netcdf\": [\"nc\", \"cdf\"],\n\t\t\"x-ns-proxy-autoconfig\": [\"pac\", \"dat\"],\n\t\t\"x-nwc\": \"nwc\",\n\t\t\"x-object\": \"o\",\n\t\t\"x-oz-application\": \"oza\",\n\t\t\"x-pkcs7-certreqresp\": \"p7r\",\n\t\t\"x-python-code\": [\"pyc\", \"pyo\"],\n\t\t\"x-qgis\": [\"qgs\", \"shp\", \"shx\"],\n\t\t\"x-quicktimeplayer\": \"qtl\",\n\t\t\"x-redhat-package-manager\": \"rpm\",\n\t\t\"x-ruby\": \"rb\",\n\t\t\"x-sh\": \"sh\",\n\t\t\"x-shar\": \"shar\",\n\t\t\"x-shockwave-flash\": [\"swf\", \"swfl\"],\n\t\t\"x-silverlight\": \"scr\",\n\t\t\"x-stuffit\": \"sit\",\n\t\t\"x-sv4cpio\": \"sv4cpio\",\n\t\t\"x-sv4crc\": \"sv4crc\",\n\t\t\"x-tar\": \"tar\",\n\t\t\"x-tcl\": \"tcl\",\n\t\t\"x-tex-gf\": \"gf\",\n\t\t\"x-tex-pk\": \"pk\",\n\t\t\"x-texinfo\": [\"texinfo\", \"texi\"],\n\t\t\"x-trash\": [\"~\", \"%\", \"bak\", \"old\", \"sik\"],\n\t\t\"x-troff\": [\"t\", \"tr\", \"roff\"],\n\t\t\"x-troff-man\": \"man\",\n\t\t\"x-troff-me\": \"me\",\n\t\t\"x-troff-ms\": \"ms\",\n\t\t\"x-ustar\": \"ustar\",\n\t\t\"x-wais-source\": \"src\",\n\t\t\"x-wingz\": \"wz\",\n\t\t\"x-x509-ca-cert\": [\"crt\", \"der\", \"cer\"],\n\t\t\"x-xcf\": \"xcf\",\n\t\t\"x-xfig\": \"fig\",\n\t\t\"x-xpinstall\": \"xpi\",\n\t\t\"applixware\": \"aw\",\n\t\t\"atomsvc+xml\": \"atomsvc\",\n\t\t\"ccxml+xml\": \"ccxml\",\n\t\t\"cdmi-capability\": \"cdmia\",\n\t\t\"cdmi-container\": \"cdmic\",\n\t\t\"cdmi-domain\": \"cdmid\",\n\t\t\"cdmi-object\": \"cdmio\",\n\t\t\"cdmi-queue\": \"cdmiq\",\n\t\t\"docbook+xml\": \"dbk\",\n\t\t\"dssc+der\": \"dssc\",\n\t\t\"dssc+xml\": \"xdssc\",\n\t\t\"emma+xml\": \"emma\",\n\t\t\"epub+zip\": \"epub\",\n\t\t\"exi\": \"exi\",\n\t\t\"font-tdpfr\": \"pfr\",\n\t\t\"gml+xml\": \"gml\",\n\t\t\"gpx+xml\": \"gpx\",\n\t\t\"gxf\": \"gxf\",\n\t\t\"hyperstudio\": \"stk\",\n\t\t\"inkml+xml\": [\"ink\", \"inkml\"],\n\t\t\"ipfix\": \"ipfix\",\n\t\t\"json\": \"json\",\n\t\t\"jsonml+json\": \"jsonml\",\n\t\t\"lost+xml\": \"lostxml\",\n\t\t\"mads+xml\": \"mads\",\n\t\t\"marc\": \"mrc\",\n\t\t\"marcxml+xml\": \"mrcx\",\n\t\t\"mathml+xml\": \"mathml\",\n\t\t\"mbox\": \"mbox\",\n\t\t\"mediaservercontrol+xml\": \"mscml\",\n\t\t\"metalink+xml\": \"metalink\",\n\t\t\"metalink4+xml\": \"meta4\",\n\t\t\"mets+xml\": \"mets\",\n\t\t\"mods+xml\": \"mods\",\n\t\t\"mp21\": [\"m21\", \"mp21\"],\n\t\t\"mp4\": \"mp4s\",\n\t\t\"oebps-package+xml\": \"opf\",\n\t\t\"omdoc+xml\": \"omdoc\",\n\t\t\"onenote\": [\"onetoc\", \"onetoc2\", \"onetmp\", \"onepkg\"],\n\t\t\"oxps\": \"oxps\",\n\t\t\"patch-ops-error+xml\": \"xer\",\n\t\t\"pgp-encrypted\": \"pgp\",\n\t\t\"pkcs10\": \"p10\",\n\t\t\"pkcs7-mime\": [\"p7m\", \"p7c\"],\n\t\t\"pkcs7-signature\": \"p7s\",\n\t\t\"pkcs8\": \"p8\",\n\t\t\"pkix-attr-cert\": \"ac\",\n\t\t\"pkix-crl\": \"crl\",\n\t\t\"pkix-pkipath\": \"pkipath\",\n\t\t\"pkixcmp\": \"pki\",\n\t\t\"pls+xml\": \"pls\",\n\t\t\"prs.cww\": \"cww\",\n\t\t\"pskc+xml\": \"pskcxml\",\n\t\t\"reginfo+xml\": \"rif\",\n\t\t\"relax-ng-compact-syntax\": \"rnc\",\n\t\t\"resource-lists+xml\": \"rl\",\n\t\t\"resource-lists-diff+xml\": \"rld\",\n\t\t\"rls-services+xml\": \"rs\",\n\t\t\"rpki-ghostbusters\": \"gbr\",\n\t\t\"rpki-manifest\": \"mft\",\n\t\t\"rpki-roa\": \"roa\",\n\t\t\"rsd+xml\": \"rsd\",\n\t\t\"sbml+xml\": \"sbml\",\n\t\t\"scvp-cv-request\": \"scq\",\n\t\t\"scvp-cv-response\": \"scs\",\n\t\t\"scvp-vp-request\": \"spq\",\n\t\t\"scvp-vp-response\": \"spp\",\n\t\t\"sdp\": \"sdp\",\n\t\t\"set-payment-initiation\": \"setpay\",\n\t\t\"set-registration-initiation\": \"setreg\",\n\t\t\"shf+xml\": \"shf\",\n\t\t\"sparql-query\": \"rq\",\n\t\t\"sparql-results+xml\": \"srx\",\n\t\t\"srgs\": \"gram\",\n\t\t\"srgs+xml\": \"grxml\",\n\t\t\"sru+xml\": \"sru\",\n\t\t\"ssdl+xml\": \"ssdl\",\n\t\t\"ssml+xml\": \"ssml\",\n\t\t\"tei+xml\": [\"tei\", \"teicorpus\"],\n\t\t\"thraud+xml\": \"tfi\",\n\t\t\"timestamped-data\": \"tsd\",\n\t\t\"vnd.3gpp.pic-bw-large\": \"plb\",\n\t\t\"vnd.3gpp.pic-bw-small\": \"psb\",\n\t\t\"vnd.3gpp.pic-bw-var\": \"pvb\",\n\t\t\"vnd.3gpp2.tcap\": \"tcap\",\n\t\t\"vnd.3m.post-it-notes\": \"pwn\",\n\t\t\"vnd.accpac.simply.aso\": \"aso\",\n\t\t\"vnd.accpac.simply.imp\": \"imp\",\n\t\t\"vnd.acucobol\": \"acu\",\n\t\t\"vnd.acucorp\": [\"atc\", \"acutc\"],\n\t\t\"vnd.adobe.air-application-installer-package+zip\": \"air\",\n\t\t\"vnd.adobe.formscentral.fcdt\": \"fcdt\",\n\t\t\"vnd.adobe.fxp\": [\"fxp\", \"fxpl\"],\n\t\t\"vnd.adobe.xdp+xml\": \"xdp\",\n\t\t\"vnd.adobe.xfdf\": \"xfdf\",\n\t\t\"vnd.ahead.space\": \"ahead\",\n\t\t\"vnd.airzip.filesecure.azf\": \"azf\",\n\t\t\"vnd.airzip.filesecure.azs\": \"azs\",\n\t\t\"vnd.amazon.ebook\": \"azw\",\n\t\t\"vnd.americandynamics.acc\": \"acc\",\n\t\t\"vnd.amiga.ami\": \"ami\",\n\t\t\"vnd.anser-web-certificate-issue-initiation\": \"cii\",\n\t\t\"vnd.anser-web-funds-transfer-initiation\": \"fti\",\n\t\t\"vnd.antix.game-component\": \"atx\",\n\t\t\"vnd.apple.installer+xml\": \"mpkg\",\n\t\t\"vnd.apple.mpegurl\": \"m3u8\",\n\t\t\"vnd.aristanetworks.swi\": \"swi\",\n\t\t\"vnd.astraea-software.iota\": \"iota\",\n\t\t\"vnd.audiograph\": \"aep\",\n\t\t\"vnd.blueice.multipass\": \"mpm\",\n\t\t\"vnd.bmi\": \"bmi\",\n\t\t\"vnd.businessobjects\": \"rep\",\n\t\t\"vnd.chemdraw+xml\": \"cdxml\",\n\t\t\"vnd.chipnuts.karaoke-mmd\": \"mmd\",\n\t\t\"vnd.claymore\": \"cla\",\n\t\t\"vnd.cloanto.rp9\": \"rp9\",\n\t\t\"vnd.clonk.c4group\": [\"c4g\", \"c4d\", \"c4f\", \"c4p\", \"c4u\"],\n\t\t\"vnd.cluetrust.cartomobile-config\": \"c11amc\",\n\t\t\"vnd.cluetrust.cartomobile-config-pkg\": \"c11amz\",\n\t\t\"vnd.commonspace\": \"csp\",\n\t\t\"vnd.contact.cmsg\": \"cdbcmsg\",\n\t\t\"vnd.cosmocaller\": \"cmc\",\n\t\t\"vnd.crick.clicker\": \"clkx\",\n\t\t\"vnd.crick.clicker.keyboard\": \"clkk\",\n\t\t\"vnd.crick.clicker.palette\": \"clkp\",\n\t\t\"vnd.crick.clicker.template\": \"clkt\",\n\t\t\"vnd.crick.clicker.wordbank\": \"clkw\",\n\t\t\"vnd.criticaltools.wbs+xml\": \"wbs\",\n\t\t\"vnd.ctc-posml\": \"pml\",\n\t\t\"vnd.cups-ppd\": \"ppd\",\n\t\t\"vnd.curl.car\": \"car\",\n\t\t\"vnd.curl.pcurl\": \"pcurl\",\n\t\t\"vnd.dart\": \"dart\",\n\t\t\"vnd.data-vision.rdz\": \"rdz\",\n\t\t\"vnd.dece.data\": [\"uvf\", \"uvvf\", \"uvd\", \"uvvd\"],\n\t\t\"vnd.dece.ttml+xml\": [\"uvt\", \"uvvt\"],\n\t\t\"vnd.dece.unspecified\": [\"uvx\", \"uvvx\"],\n\t\t\"vnd.dece.zip\": [\"uvz\", \"uvvz\"],\n\t\t\"vnd.denovo.fcselayout-link\": \"fe_launch\",\n\t\t\"vnd.dna\": \"dna\",\n\t\t\"vnd.dolby.mlp\": \"mlp\",\n\t\t\"vnd.dpgraph\": \"dpg\",\n\t\t\"vnd.dreamfactory\": \"dfac\",\n\t\t\"vnd.ds-keypoint\": \"kpxx\",\n\t\t\"vnd.dvb.ait\": \"ait\",\n\t\t\"vnd.dvb.service\": \"svc\",\n\t\t\"vnd.dynageo\": \"geo\",\n\t\t\"vnd.ecowin.chart\": \"mag\",\n\t\t\"vnd.enliven\": \"nml\",\n\t\t\"vnd.epson.esf\": \"esf\",\n\t\t\"vnd.epson.msf\": \"msf\",\n\t\t\"vnd.epson.quickanime\": \"qam\",\n\t\t\"vnd.epson.salt\": \"slt\",\n\t\t\"vnd.epson.ssf\": \"ssf\",\n\t\t\"vnd.eszigno3+xml\": [\"es3\", \"et3\"],\n\t\t\"vnd.ezpix-album\": \"ez2\",\n\t\t\"vnd.ezpix-package\": \"ez3\",\n\t\t\"vnd.fdf\": \"fdf\",\n\t\t\"vnd.fdsn.mseed\": \"mseed\",\n\t\t\"vnd.fdsn.seed\": [\"seed\", \"dataless\"],\n\t\t\"vnd.flographit\": \"gph\",\n\t\t\"vnd.fluxtime.clip\": \"ftc\",\n\t\t\"vnd.framemaker\": [\"fm\", \"frame\", \"maker\", \"book\"],\n\t\t\"vnd.frogans.fnc\": \"fnc\",\n\t\t\"vnd.frogans.ltf\": \"ltf\",\n\t\t\"vnd.fsc.weblaunch\": \"fsc\",\n\t\t\"vnd.fujitsu.oasys\": \"oas\",\n\t\t\"vnd.fujitsu.oasys2\": \"oa2\",\n\t\t\"vnd.fujitsu.oasys3\": \"oa3\",\n\t\t\"vnd.fujitsu.oasysgp\": \"fg5\",\n\t\t\"vnd.fujitsu.oasysprs\": \"bh2\",\n\t\t\"vnd.fujixerox.ddd\": \"ddd\",\n\t\t\"vnd.fujixerox.docuworks\": \"xdw\",\n\t\t\"vnd.fujixerox.docuworks.binder\": \"xbd\",\n\t\t\"vnd.fuzzysheet\": \"fzs\",\n\t\t\"vnd.genomatix.tuxedo\": \"txd\",\n\t\t\"vnd.geogebra.file\": \"ggb\",\n\t\t\"vnd.geogebra.tool\": \"ggt\",\n\t\t\"vnd.geometry-explorer\": [\"gex\", \"gre\"],\n\t\t\"vnd.geonext\": \"gxt\",\n\t\t\"vnd.geoplan\": \"g2w\",\n\t\t\"vnd.geospace\": \"g3w\",\n\t\t\"vnd.gmx\": \"gmx\",\n\t\t\"vnd.grafeq\": [\"gqf\", \"gqs\"],\n\t\t\"vnd.groove-account\": \"gac\",\n\t\t\"vnd.groove-help\": \"ghf\",\n\t\t\"vnd.groove-identity-message\": \"gim\",\n\t\t\"vnd.groove-injector\": \"grv\",\n\t\t\"vnd.groove-tool-message\": \"gtm\",\n\t\t\"vnd.groove-tool-template\": \"tpl\",\n\t\t\"vnd.groove-vcard\": \"vcg\",\n\t\t\"vnd.hal+xml\": \"hal\",\n\t\t\"vnd.handheld-entertainment+xml\": \"zmm\",\n\t\t\"vnd.hbci\": \"hbci\",\n\t\t\"vnd.hhe.lesson-player\": \"les\",\n\t\t\"vnd.hp-hpgl\": \"hpgl\",\n\t\t\"vnd.hp-hpid\": \"hpid\",\n\t\t\"vnd.hp-hps\": \"hps\",\n\t\t\"vnd.hp-jlyt\": \"jlt\",\n\t\t\"vnd.hp-pcl\": \"pcl\",\n\t\t\"vnd.hp-pclxl\": \"pclxl\",\n\t\t\"vnd.hydrostatix.sof-data\": \"sfd-hdstx\",\n\t\t\"vnd.ibm.minipay\": \"mpy\",\n\t\t\"vnd.ibm.modcap\": [\"afp\", \"listafp\", \"list3820\"],\n\t\t\"vnd.ibm.rights-management\": \"irm\",\n\t\t\"vnd.ibm.secure-container\": \"sc\",\n\t\t\"vnd.iccprofile\": [\"icc\", \"icm\"],\n\t\t\"vnd.igloader\": \"igl\",\n\t\t\"vnd.immervision-ivp\": \"ivp\",\n\t\t\"vnd.immervision-ivu\": \"ivu\",\n\t\t\"vnd.insors.igm\": \"igm\",\n\t\t\"vnd.intercon.formnet\": [\"xpw\", \"xpx\"],\n\t\t\"vnd.intergeo\": \"i2g\",\n\t\t\"vnd.intu.qbo\": \"qbo\",\n\t\t\"vnd.intu.qfx\": \"qfx\",\n\t\t\"vnd.ipunplugged.rcprofile\": \"rcprofile\",\n\t\t\"vnd.irepository.package+xml\": \"irp\",\n\t\t\"vnd.is-xpr\": \"xpr\",\n\t\t\"vnd.isac.fcs\": \"fcs\",\n\t\t\"vnd.jam\": \"jam\",\n\t\t\"vnd.jcp.javame.midlet-rms\": \"rms\",\n\t\t\"vnd.jisp\": \"jisp\",\n\t\t\"vnd.joost.joda-archive\": \"joda\",\n\t\t\"vnd.kahootz\": [\"ktz\", \"ktr\"],\n\t\t\"vnd.kde.karbon\": \"karbon\",\n\t\t\"vnd.kde.kchart\": \"chrt\",\n\t\t\"vnd.kde.kformula\": \"kfo\",\n\t\t\"vnd.kde.kivio\": \"flw\",\n\t\t\"vnd.kde.kontour\": \"kon\",\n\t\t\"vnd.kde.kpresenter\": [\"kpr\", \"kpt\"],\n\t\t\"vnd.kde.kspread\": \"ksp\",\n\t\t\"vnd.kde.kword\": [\"kwd\", \"kwt\"],\n\t\t\"vnd.kenameaapp\": \"htke\",\n\t\t\"vnd.kidspiration\": \"kia\",\n\t\t\"vnd.kinar\": [\"kne\", \"knp\"],\n\t\t\"vnd.koan\": [\"skp\", \"skd\", \"skt\", \"skm\"],\n\t\t\"vnd.kodak-descriptor\": \"sse\",\n\t\t\"vnd.las.las+xml\": \"lasxml\",\n\t\t\"vnd.llamagraphics.life-balance.desktop\": \"lbd\",\n\t\t\"vnd.llamagraphics.life-balance.exchange+xml\": \"lbe\",\n\t\t\"vnd.lotus-1-2-3\": \"123\",\n\t\t\"vnd.lotus-approach\": \"apr\",\n\t\t\"vnd.lotus-freelance\": \"pre\",\n\t\t\"vnd.lotus-notes\": \"nsf\",\n\t\t\"vnd.lotus-organizer\": \"org\",\n\t\t\"vnd.lotus-screencam\": \"scm\",\n\t\t\"vnd.lotus-wordpro\": \"lwp\",\n\t\t\"vnd.macports.portpkg\": \"portpkg\",\n\t\t\"vnd.mcd\": \"mcd\",\n\t\t\"vnd.medcalcdata\": \"mc1\",\n\t\t\"vnd.mediastation.cdkey\": \"cdkey\",\n\t\t\"vnd.mfer\": \"mwf\",\n\t\t\"vnd.mfmp\": \"mfm\",\n\t\t\"vnd.micrografx.flo\": \"flo\",\n\t\t\"vnd.micrografx.igx\": \"igx\",\n\t\t\"vnd.mif\": \"mif\",\n\t\t\"vnd.mobius.daf\": \"daf\",\n\t\t\"vnd.mobius.dis\": \"dis\",\n\t\t\"vnd.mobius.mbk\": \"mbk\",\n\t\t\"vnd.mobius.mqy\": \"mqy\",\n\t\t\"vnd.mobius.msl\": \"msl\",\n\t\t\"vnd.mobius.plc\": \"plc\",\n\t\t\"vnd.mobius.txf\": \"txf\",\n\t\t\"vnd.mophun.application\": \"mpn\",\n\t\t\"vnd.mophun.certificate\": \"mpc\",\n\t\t\"vnd.ms-artgalry\": \"cil\",\n\t\t\"vnd.ms-cab-compressed\": \"cab\",\n\t\t\"vnd.ms-excel.addin.macroenabled.12\": \"xlam\",\n\t\t\"vnd.ms-excel.sheet.binary.macroenabled.12\": \"xlsb\",\n\t\t\"vnd.ms-excel.sheet.macroenabled.12\": \"xlsm\",\n\t\t\"vnd.ms-excel.template.macroenabled.12\": \"xltm\",\n\t\t\"vnd.ms-fontobject\": \"eot\",\n\t\t\"vnd.ms-htmlhelp\": \"chm\",\n\t\t\"vnd.ms-ims\": \"ims\",\n\t\t\"vnd.ms-lrm\": \"lrm\",\n\t\t\"vnd.ms-officetheme\": \"thmx\",\n\t\t\"vnd.ms-powerpoint.addin.macroenabled.12\": \"ppam\",\n\t\t\"vnd.ms-powerpoint.presentation.macroenabled.12\": \"pptm\",\n\t\t\"vnd.ms-powerpoint.slide.macroenabled.12\": \"sldm\",\n\t\t\"vnd.ms-powerpoint.slideshow.macroenabled.12\": \"ppsm\",\n\t\t\"vnd.ms-powerpoint.template.macroenabled.12\": \"potm\",\n\t\t\"vnd.ms-project\": [\"mpp\", \"mpt\"],\n\t\t\"vnd.ms-word.document.macroenabled.12\": \"docm\",\n\t\t\"vnd.ms-word.template.macroenabled.12\": \"dotm\",\n\t\t\"vnd.ms-works\": [\"wps\", \"wks\", \"wcm\", \"wdb\"],\n\t\t\"vnd.ms-wpl\": \"wpl\",\n\t\t\"vnd.ms-xpsdocument\": \"xps\",\n\t\t\"vnd.mseq\": \"mseq\",\n\t\t\"vnd.musician\": \"mus\",\n\t\t\"vnd.muvee.style\": \"msty\",\n\t\t\"vnd.mynfc\": \"taglet\",\n\t\t\"vnd.neurolanguage.nlu\": \"nlu\",\n\t\t\"vnd.nitf\": [\"ntf\", \"nitf\"],\n\t\t\"vnd.noblenet-directory\": \"nnd\",\n\t\t\"vnd.noblenet-sealer\": \"nns\",\n\t\t\"vnd.noblenet-web\": \"nnw\",\n\t\t\"vnd.nokia.n-gage.data\": \"ngdat\",\n\t\t\"vnd.nokia.n-gage.symbian.install\": \"n-gage\",\n\t\t\"vnd.nokia.radio-preset\": \"rpst\",\n\t\t\"vnd.nokia.radio-presets\": \"rpss\",\n\t\t\"vnd.novadigm.edm\": \"edm\",\n\t\t\"vnd.novadigm.edx\": \"edx\",\n\t\t\"vnd.novadigm.ext\": \"ext\",\n\t\t\"vnd.oasis.opendocument.chart-template\": \"otc\",\n\t\t\"vnd.oasis.opendocument.formula-template\": \"odft\",\n\t\t\"vnd.oasis.opendocument.image-template\": \"oti\",\n\t\t\"vnd.olpc-sugar\": \"xo\",\n\t\t\"vnd.oma.dd2+xml\": \"dd2\",\n\t\t\"vnd.openofficeorg.extension\": \"oxt\",\n\t\t\"vnd.openxmlformats-officedocument.presentationml.slide\": \"sldx\",\n\t\t\"vnd.osgeo.mapguide.package\": \"mgp\",\n\t\t\"vnd.osgi.dp\": \"dp\",\n\t\t\"vnd.osgi.subsystem\": \"esa\",\n\t\t\"vnd.palm\": [\"pdb\", \"pqa\", \"oprc\"],\n\t\t\"vnd.pawaafile\": \"paw\",\n\t\t\"vnd.pg.format\": \"str\",\n\t\t\"vnd.pg.osasli\": \"ei6\",\n\t\t\"vnd.picsel\": \"efif\",\n\t\t\"vnd.pmi.widget\": \"wg\",\n\t\t\"vnd.pocketlearn\": \"plf\",\n\t\t\"vnd.powerbuilder6\": \"pbd\",\n\t\t\"vnd.previewsystems.box\": \"box\",\n\t\t\"vnd.proteus.magazine\": \"mgz\",\n\t\t\"vnd.publishare-delta-tree\": \"qps\",\n\t\t\"vnd.pvi.ptid1\": \"ptid\",\n\t\t\"vnd.quark.quarkxpress\": [\"qxd\", \"qxt\", \"qwd\", \"qwt\", \"qxl\", \"qxb\"],\n\t\t\"vnd.realvnc.bed\": \"bed\",\n\t\t\"vnd.recordare.musicxml\": \"mxl\",\n\t\t\"vnd.recordare.musicxml+xml\": \"musicxml\",\n\t\t\"vnd.rig.cryptonote\": \"cryptonote\",\n\t\t\"vnd.rn-realmedia\": \"rm\",\n\t\t\"vnd.rn-realmedia-vbr\": \"rmvb\",\n\t\t\"vnd.route66.link66+xml\": \"link66\",\n\t\t\"vnd.sailingtracker.track\": \"st\",\n\t\t\"vnd.seemail\": \"see\",\n\t\t\"vnd.sema\": \"sema\",\n\t\t\"vnd.semd\": \"semd\",\n\t\t\"vnd.semf\": \"semf\",\n\t\t\"vnd.shana.informed.formdata\": \"ifm\",\n\t\t\"vnd.shana.informed.formtemplate\": \"itp\",\n\t\t\"vnd.shana.informed.interchange\": \"iif\",\n\t\t\"vnd.shana.informed.package\": \"ipk\",\n\t\t\"vnd.simtech-mindmapper\": [\"twd\", \"twds\"],\n\t\t\"vnd.smart.teacher\": \"teacher\",\n\t\t\"vnd.solent.sdkm+xml\": [\"sdkm\", \"sdkd\"],\n\t\t\"vnd.spotfire.dxp\": \"dxp\",\n\t\t\"vnd.spotfire.sfs\": \"sfs\",\n\t\t\"vnd.stepmania.package\": \"smzip\",\n\t\t\"vnd.stepmania.stepchart\": \"sm\",\n\t\t\"vnd.sus-calendar\": [\"sus\", \"susp\"],\n\t\t\"vnd.svd\": \"svd\",\n\t\t\"vnd.syncml+xml\": \"xsm\",\n\t\t\"vnd.syncml.dm+wbxml\": \"bdm\",\n\t\t\"vnd.syncml.dm+xml\": \"xdm\",\n\t\t\"vnd.tao.intent-module-archive\": \"tao\",\n\t\t\"vnd.tcpdump.pcap\": [\"pcap\", \"cap\", \"dmp\"],\n\t\t\"vnd.tmobile-livetv\": \"tmo\",\n\t\t\"vnd.trid.tpt\": \"tpt\",\n\t\t\"vnd.triscape.mxs\": \"mxs\",\n\t\t\"vnd.trueapp\": \"tra\",\n\t\t\"vnd.ufdl\": [\"ufd\", \"ufdl\"],\n\t\t\"vnd.uiq.theme\": \"utz\",\n\t\t\"vnd.umajin\": \"umj\",\n\t\t\"vnd.unity\": \"unityweb\",\n\t\t\"vnd.uoml+xml\": \"uoml\",\n\t\t\"vnd.vcx\": \"vcx\",\n\t\t\"vnd.visionary\": \"vis\",\n\t\t\"vnd.vsf\": \"vsf\",\n\t\t\"vnd.webturbo\": \"wtb\",\n\t\t\"vnd.wolfram.player\": \"nbp\",\n\t\t\"vnd.wqd\": \"wqd\",\n\t\t\"vnd.wt.stf\": \"stf\",\n\t\t\"vnd.xara\": \"xar\",\n\t\t\"vnd.xfdl\": \"xfdl\",\n\t\t\"vnd.yamaha.hv-dic\": \"hvd\",\n\t\t\"vnd.yamaha.hv-script\": \"hvs\",\n\t\t\"vnd.yamaha.hv-voice\": \"hvp\",\n\t\t\"vnd.yamaha.openscoreformat\": \"osf\",\n\t\t\"vnd.yamaha.openscoreformat.osfpvg+xml\": \"osfpvg\",\n\t\t\"vnd.yamaha.smaf-audio\": \"saf\",\n\t\t\"vnd.yamaha.smaf-phrase\": \"spf\",\n\t\t\"vnd.yellowriver-custom-menu\": \"cmp\",\n\t\t\"vnd.zul\": [\"zir\", \"zirz\"],\n\t\t\"vnd.zzazz.deck+xml\": \"zaz\",\n\t\t\"voicexml+xml\": \"vxml\",\n\t\t\"widget\": \"wgt\",\n\t\t\"winhlp\": \"hlp\",\n\t\t\"wsdl+xml\": \"wsdl\",\n\t\t\"wspolicy+xml\": \"wspolicy\",\n\t\t\"x-ace-compressed\": \"ace\",\n\t\t\"x-authorware-bin\": [\"aab\", \"x32\", \"u32\", \"vox\"],\n\t\t\"x-authorware-map\": \"aam\",\n\t\t\"x-authorware-seg\": \"aas\",\n\t\t\"x-blorb\": [\"blb\", \"blorb\"],\n\t\t\"x-bzip\": \"bz\",\n\t\t\"x-bzip2\": [\"bz2\", \"boz\"],\n\t\t\"x-cfs-compressed\": \"cfs\",\n\t\t\"x-chat\": \"chat\",\n\t\t\"x-conference\": \"nsc\",\n\t\t\"x-dgc-compressed\": \"dgc\",\n\t\t\"x-dtbncx+xml\": \"ncx\",\n\t\t\"x-dtbook+xml\": \"dtb\",\n\t\t\"x-dtbresource+xml\": \"res\",\n\t\t\"x-eva\": \"eva\",\n\t\t\"x-font-bdf\": \"bdf\",\n\t\t\"x-font-ghostscript\": \"gsf\",\n\t\t\"x-font-linux-psf\": \"psf\",\n\t\t\"x-font-otf\": \"otf\",\n\t\t\"x-font-pcf\": \"pcf\",\n\t\t\"x-font-snf\": \"snf\",\n\t\t\"x-font-ttf\": [\"ttf\", \"ttc\"],\n\t\t\"x-font-type1\": [\"pfa\", \"pfb\", \"pfm\", \"afm\"],\n\t\t\"x-font-woff\": \"woff\",\n\t\t\"x-freearc\": \"arc\",\n\t\t\"x-gca-compressed\": \"gca\",\n\t\t\"x-glulx\": \"ulx\",\n\t\t\"x-gramps-xml\": \"gramps\",\n\t\t\"x-install-instructions\": \"install\",\n\t\t\"x-lzh-compressed\": [\"lzh\", \"lha\"],\n\t\t\"x-mie\": \"mie\",\n\t\t\"x-mobipocket-ebook\": [\"prc\", \"mobi\"],\n\t\t\"x-ms-application\": \"application\",\n\t\t\"x-ms-shortcut\": \"lnk\",\n\t\t\"x-ms-xbap\": \"xbap\",\n\t\t\"x-msbinder\": \"obd\",\n\t\t\"x-mscardfile\": \"crd\",\n\t\t\"x-msclip\": \"clp\",\n\t\t\"x-msdownload\": [\"exe\", \"dll\", \"com\", \"bat\", \"msi\"],\n\t\t\"x-msmediaview\": [\"mvb\", \"m13\", \"m14\"],\n\t\t\"x-msmetafile\": [\"wmf\", \"wmz\", \"emf\", \"emz\"],\n\t\t\"x-msmoney\": \"mny\",\n\t\t\"x-mspublisher\": \"pub\",\n\t\t\"x-msschedule\": \"scd\",\n\t\t\"x-msterminal\": \"trm\",\n\t\t\"x-mswrite\": \"wri\",\n\t\t\"x-nzb\": \"nzb\",\n\t\t\"x-pkcs12\": [\"p12\", \"pfx\"],\n\t\t\"x-pkcs7-certificates\": [\"p7b\", \"spc\"],\n\t\t\"x-research-info-systems\": \"ris\",\n\t\t\"x-silverlight-app\": \"xap\",\n\t\t\"x-sql\": \"sql\",\n\t\t\"x-stuffitx\": \"sitx\",\n\t\t\"x-subrip\": \"srt\",\n\t\t\"x-t3vm-image\": \"t3\",\n\t\t\"x-tads\": \"gam\",\n\t\t\"x-tex\": \"tex\",\n\t\t\"x-tex-tfm\": \"tfm\",\n\t\t\"x-tgif\": \"obj\",\n\t\t\"x-xliff+xml\": \"xlf\",\n\t\t\"x-xz\": \"xz\",\n\t\t\"x-zmachine\": [\"z1\", \"z2\", \"z3\", \"z4\", \"z5\", \"z6\", \"z7\", \"z8\"],\n\t\t\"xaml+xml\": \"xaml\",\n\t\t\"xcap-diff+xml\": \"xdf\",\n\t\t\"xenc+xml\": \"xenc\",\n\t\t\"xml-dtd\": \"dtd\",\n\t\t\"xop+xml\": \"xop\",\n\t\t\"xproc+xml\": \"xpl\",\n\t\t\"xslt+xml\": \"xslt\",\n\t\t\"xv+xml\": [\"mxml\", \"xhvml\", \"xvml\", \"xvm\"],\n\t\t\"yang\": \"yang\",\n\t\t\"yin+xml\": \"yin\",\n\t\t\"envoy\": \"evy\",\n\t\t\"fractals\": \"fif\",\n\t\t\"internet-property-stream\": \"acx\",\n\t\t\"olescript\": \"axs\",\n\t\t\"vnd.ms-outlook\": \"msg\",\n\t\t\"vnd.ms-pkicertstore\": \"sst\",\n\t\t\"x-compress\": \"z\",\n\t\t\"x-compressed\": \"tgz\",\n\t\t\"x-gzip\": \"gz\",\n\t\t\"x-perfmon\": [\"pma\", \"pmc\", \"pml\", \"pmr\", \"pmw\"],\n\t\t\"x-pkcs7-mime\": [\"p7c\", \"p7m\"],\n\t\t\"ynd.ms-pkipko\": \"pko\"\n\t},\n\t\"audio\": {\n\t\t\"amr\": \"amr\",\n\t\t\"amr-wb\": \"awb\",\n\t\t\"annodex\": \"axa\",\n\t\t\"basic\": [\"au\", \"snd\"],\n\t\t\"flac\": \"flac\",\n\t\t\"midi\": [\"mid\", \"midi\", \"kar\", \"rmi\"],\n\t\t\"mpeg\": [\"mpga\", \"mpega\", \"mp2\", \"mp3\", \"m4a\", \"mp2a\", \"m2a\", \"m3a\"],\n\t\t\"mpegurl\": \"m3u\",\n\t\t\"ogg\": [\"oga\", \"ogg\", \"spx\"],\n\t\t\"prs.sid\": \"sid\",\n\t\t\"x-aiff\": [\"aif\", \"aiff\", \"aifc\"],\n\t\t\"x-gsm\": \"gsm\",\n\t\t\"x-ms-wma\": \"wma\",\n\t\t\"x-ms-wax\": \"wax\",\n\t\t\"x-pn-realaudio\": \"ram\",\n\t\t\"x-realaudio\": \"ra\",\n\t\t\"x-sd2\": \"sd2\",\n\t\t\"x-wav\": \"wav\",\n\t\t\"adpcm\": \"adp\",\n\t\t\"mp4\": \"mp4a\",\n\t\t\"s3m\": \"s3m\",\n\t\t\"silk\": \"sil\",\n\t\t\"vnd.dece.audio\": [\"uva\", \"uvva\"],\n\t\t\"vnd.digital-winds\": \"eol\",\n\t\t\"vnd.dra\": \"dra\",\n\t\t\"vnd.dts\": \"dts\",\n\t\t\"vnd.dts.hd\": \"dtshd\",\n\t\t\"vnd.lucent.voice\": \"lvp\",\n\t\t\"vnd.ms-playready.media.pya\": \"pya\",\n\t\t\"vnd.nuera.ecelp4800\": \"ecelp4800\",\n\t\t\"vnd.nuera.ecelp7470\": \"ecelp7470\",\n\t\t\"vnd.nuera.ecelp9600\": \"ecelp9600\",\n\t\t\"vnd.rip\": \"rip\",\n\t\t\"webm\": \"weba\",\n\t\t\"x-aac\": \"aac\",\n\t\t\"x-caf\": \"caf\",\n\t\t\"x-matroska\": \"mka\",\n\t\t\"x-pn-realaudio-plugin\": \"rmp\",\n\t\t\"xm\": \"xm\",\n\t\t\"mid\": [\"mid\", \"rmi\"]\n\t},\n\t\"chemical\": {\n\t\t\"x-alchemy\": \"alc\",\n\t\t\"x-cache\": [\"cac\", \"cache\"],\n\t\t\"x-cache-csf\": \"csf\",\n\t\t\"x-cactvs-binary\": [\"cbin\", \"cascii\", \"ctab\"],\n\t\t\"x-cdx\": \"cdx\",\n\t\t\"x-chem3d\": \"c3d\",\n\t\t\"x-cif\": \"cif\",\n\t\t\"x-cmdf\": \"cmdf\",\n\t\t\"x-cml\": \"cml\",\n\t\t\"x-compass\": \"cpa\",\n\t\t\"x-crossfire\": \"bsd\",\n\t\t\"x-csml\": [\"csml\", \"csm\"],\n\t\t\"x-ctx\": \"ctx\",\n\t\t\"x-cxf\": [\"cxf\", \"cef\"],\n\t\t\"x-embl-dl-nucleotide\": [\"emb\", \"embl\"],\n\t\t\"x-gamess-input\": [\"inp\", \"gam\", \"gamin\"],\n\t\t\"x-gaussian-checkpoint\": [\"fch\", \"fchk\"],\n\t\t\"x-gaussian-cube\": \"cub\",\n\t\t\"x-gaussian-input\": [\"gau\", \"gjc\", \"gjf\"],\n\t\t\"x-gaussian-log\": \"gal\",\n\t\t\"x-gcg8-sequence\": \"gcg\",\n\t\t\"x-genbank\": \"gen\",\n\t\t\"x-hin\": \"hin\",\n\t\t\"x-isostar\": [\"istr\", \"ist\"],\n\t\t\"x-jcamp-dx\": [\"jdx\", \"dx\"],\n\t\t\"x-kinemage\": \"kin\",\n\t\t\"x-macmolecule\": \"mcm\",\n\t\t\"x-macromodel-input\": [\"mmd\", \"mmod\"],\n\t\t\"x-mdl-molfile\": \"mol\",\n\t\t\"x-mdl-rdfile\": \"rd\",\n\t\t\"x-mdl-rxnfile\": \"rxn\",\n\t\t\"x-mdl-sdfile\": [\"sd\", \"sdf\"],\n\t\t\"x-mdl-tgf\": \"tgf\",\n\t\t\"x-mmcif\": \"mcif\",\n\t\t\"x-mol2\": \"mol2\",\n\t\t\"x-molconn-Z\": \"b\",\n\t\t\"x-mopac-graph\": \"gpt\",\n\t\t\"x-mopac-input\": [\"mop\", \"mopcrt\", \"mpc\", \"zmt\"],\n\t\t\"x-mopac-out\": \"moo\",\n\t\t\"x-ncbi-asn1\": \"asn\",\n\t\t\"x-ncbi-asn1-ascii\": [\"prt\", \"ent\"],\n\t\t\"x-ncbi-asn1-binary\": [\"val\", \"aso\"],\n\t\t\"x-pdb\": [\"pdb\", \"ent\"],\n\t\t\"x-rosdal\": \"ros\",\n\t\t\"x-swissprot\": \"sw\",\n\t\t\"x-vamas-iso14976\": \"vms\",\n\t\t\"x-vmd\": \"vmd\",\n\t\t\"x-xtel\": \"xtel\",\n\t\t\"x-xyz\": \"xyz\"\n\t},\n\t\"image\": {\n\t\t\"gif\": \"gif\",\n\t\t\"ief\": \"ief\",\n\t\t\"jpeg\": [\"jpeg\", \"jpg\", \"jpe\"],\n\t\t\"pcx\": \"pcx\",\n\t\t\"png\": \"png\",\n\t\t\"svg+xml\": [\"svg\", \"svgz\"],\n\t\t\"tiff\": [\"tiff\", \"tif\"],\n\t\t\"vnd.djvu\": [\"djvu\", \"djv\"],\n\t\t\"vnd.wap.wbmp\": \"wbmp\",\n\t\t\"x-canon-cr2\": \"cr2\",\n\t\t\"x-canon-crw\": \"crw\",\n\t\t\"x-cmu-raster\": \"ras\",\n\t\t\"x-coreldraw\": \"cdr\",\n\t\t\"x-coreldrawpattern\": \"pat\",\n\t\t\"x-coreldrawtemplate\": \"cdt\",\n\t\t\"x-corelphotopaint\": \"cpt\",\n\t\t\"x-epson-erf\": \"erf\",\n\t\t\"x-icon\": \"ico\",\n\t\t\"x-jg\": \"art\",\n\t\t\"x-jng\": \"jng\",\n\t\t\"x-nikon-nef\": \"nef\",\n\t\t\"x-olympus-orf\": \"orf\",\n\t\t\"x-photoshop\": \"psd\",\n\t\t\"x-portable-anymap\": \"pnm\",\n\t\t\"x-portable-bitmap\": \"pbm\",\n\t\t\"x-portable-graymap\": \"pgm\",\n\t\t\"x-portable-pixmap\": \"ppm\",\n\t\t\"x-rgb\": \"rgb\",\n\t\t\"x-xbitmap\": \"xbm\",\n\t\t\"x-xpixmap\": \"xpm\",\n\t\t\"x-xwindowdump\": \"xwd\",\n\t\t\"bmp\": \"bmp\",\n\t\t\"cgm\": \"cgm\",\n\t\t\"g3fax\": \"g3\",\n\t\t\"ktx\": \"ktx\",\n\t\t\"prs.btif\": \"btif\",\n\t\t\"sgi\": \"sgi\",\n\t\t\"vnd.dece.graphic\": [\"uvi\", \"uvvi\", \"uvg\", \"uvvg\"],\n\t\t\"vnd.dwg\": \"dwg\",\n\t\t\"vnd.dxf\": \"dxf\",\n\t\t\"vnd.fastbidsheet\": \"fbs\",\n\t\t\"vnd.fpx\": \"fpx\",\n\t\t\"vnd.fst\": \"fst\",\n\t\t\"vnd.fujixerox.edmics-mmr\": \"mmr\",\n\t\t\"vnd.fujixerox.edmics-rlc\": \"rlc\",\n\t\t\"vnd.ms-modi\": \"mdi\",\n\t\t\"vnd.ms-photo\": \"wdp\",\n\t\t\"vnd.net-fpx\": \"npx\",\n\t\t\"vnd.xiff\": \"xif\",\n\t\t\"webp\": \"webp\",\n\t\t\"x-3ds\": \"3ds\",\n\t\t\"x-cmx\": \"cmx\",\n\t\t\"x-freehand\": [\"fh\", \"fhc\", \"fh4\", \"fh5\", \"fh7\"],\n\t\t\"x-pict\": [\"pic\", \"pct\"],\n\t\t\"x-tga\": \"tga\",\n\t\t\"cis-cod\": \"cod\",\n\t\t\"pipeg\": \"jfif\"\n\t},\n\t\"message\": {\n\t\t\"rfc822\": [\"eml\", \"mime\", \"mht\", \"mhtml\", \"nws\"]\n\t},\n\t\"model\": {\n\t\t\"iges\": [\"igs\", \"iges\"],\n\t\t\"mesh\": [\"msh\", \"mesh\", \"silo\"],\n\t\t\"vrml\": [\"wrl\", \"vrml\"],\n\t\t\"x3d+vrml\": [\"x3dv\", \"x3dvz\"],\n\t\t\"x3d+xml\": [\"x3d\", \"x3dz\"],\n\t\t\"x3d+binary\": [\"x3db\", \"x3dbz\"],\n\t\t\"vnd.collada+xml\": \"dae\",\n\t\t\"vnd.dwf\": \"dwf\",\n\t\t\"vnd.gdl\": \"gdl\",\n\t\t\"vnd.gtw\": \"gtw\",\n\t\t\"vnd.mts\": \"mts\",\n\t\t\"vnd.vtu\": \"vtu\"\n\t},\n\t\"text\": {\n\t\t\"cache-manifest\": [\"manifest\", \"appcache\"],\n\t\t\"calendar\": [\"ics\", \"icz\", \"ifb\"],\n\t\t\"css\": \"css\",\n\t\t\"csv\": \"csv\",\n\t\t\"h323\": \"323\",\n\t\t\"html\": [\"html\", \"htm\", \"shtml\", \"stm\"],\n\t\t\"iuls\": \"uls\",\n\t\t\"mathml\": \"mml\",\n\t\t\"plain\": [\"txt\", \"text\", \"brf\", \"conf\", \"def\", \"list\", \"log\", \"in\", \"bas\"],\n\t\t\"richtext\": \"rtx\",\n\t\t\"scriptlet\": [\"sct\", \"wsc\"],\n\t\t\"texmacs\": [\"tm\", \"ts\"],\n\t\t\"tab-separated-values\": \"tsv\",\n\t\t\"vnd.sun.j2me.app-descriptor\": \"jad\",\n\t\t\"vnd.wap.wml\": \"wml\",\n\t\t\"vnd.wap.wmlscript\": \"wmls\",\n\t\t\"x-bibtex\": \"bib\",\n\t\t\"x-boo\": \"boo\",\n\t\t\"x-c++hdr\": [\"h++\", \"hpp\", \"hxx\", \"hh\"],\n\t\t\"x-c++src\": [\"c++\", \"cpp\", \"cxx\", \"cc\"],\n\t\t\"x-component\": \"htc\",\n\t\t\"x-dsrc\": \"d\",\n\t\t\"x-diff\": [\"diff\", \"patch\"],\n\t\t\"x-haskell\": \"hs\",\n\t\t\"x-java\": \"java\",\n\t\t\"x-literate-haskell\": \"lhs\",\n\t\t\"x-moc\": \"moc\",\n\t\t\"x-pascal\": [\"p\", \"pas\"],\n\t\t\"x-pcs-gcd\": \"gcd\",\n\t\t\"x-perl\": [\"pl\", \"pm\"],\n\t\t\"x-python\": \"py\",\n\t\t\"x-scala\": \"scala\",\n\t\t\"x-setext\": \"etx\",\n\t\t\"x-tcl\": [\"tcl\", \"tk\"],\n\t\t\"x-tex\": [\"tex\", \"ltx\", \"sty\", \"cls\"],\n\t\t\"x-vcalendar\": \"vcs\",\n\t\t\"x-vcard\": \"vcf\",\n\t\t\"n3\": \"n3\",\n\t\t\"prs.lines.tag\": \"dsc\",\n\t\t\"sgml\": [\"sgml\", \"sgm\"],\n\t\t\"troff\": [\"t\", \"tr\", \"roff\", \"man\", \"me\", \"ms\"],\n\t\t\"turtle\": \"ttl\",\n\t\t\"uri-list\": [\"uri\", \"uris\", \"urls\"],\n\t\t\"vcard\": \"vcard\",\n\t\t\"vnd.curl\": \"curl\",\n\t\t\"vnd.curl.dcurl\": \"dcurl\",\n\t\t\"vnd.curl.scurl\": \"scurl\",\n\t\t\"vnd.curl.mcurl\": \"mcurl\",\n\t\t\"vnd.dvb.subtitle\": \"sub\",\n\t\t\"vnd.fly\": \"fly\",\n\t\t\"vnd.fmi.flexstor\": \"flx\",\n\t\t\"vnd.graphviz\": \"gv\",\n\t\t\"vnd.in3d.3dml\": \"3dml\",\n\t\t\"vnd.in3d.spot\": \"spot\",\n\t\t\"x-asm\": [\"s\", \"asm\"],\n\t\t\"x-c\": [\"c\", \"cc\", \"cxx\", \"cpp\", \"h\", \"hh\", \"dic\"],\n\t\t\"x-fortran\": [\"f\", \"for\", \"f77\", \"f90\"],\n\t\t\"x-opml\": \"opml\",\n\t\t\"x-nfo\": \"nfo\",\n\t\t\"x-sfv\": \"sfv\",\n\t\t\"x-uuencode\": \"uu\",\n\t\t\"webviewhtml\": \"htt\"\n\t},\n\t\"video\": {\n\t\t\"avif\": \".avif\",\n\t\t\"3gpp\": \"3gp\",\n\t\t\"annodex\": \"axv\",\n\t\t\"dl\": \"dl\",\n\t\t\"dv\": [\"dif\", \"dv\"],\n\t\t\"fli\": \"fli\",\n\t\t\"gl\": \"gl\",\n\t\t\"mpeg\": [\"mpeg\", \"mpg\", \"mpe\", \"m1v\", \"m2v\", \"mp2\", \"mpa\", \"mpv2\"],\n\t\t\"mp4\": [\"mp4\", \"mp4v\", \"mpg4\"],\n\t\t\"quicktime\": [\"qt\", \"mov\"],\n\t\t\"ogg\": \"ogv\",\n\t\t\"vnd.mpegurl\": [\"mxu\", \"m4u\"],\n\t\t\"x-flv\": \"flv\",\n\t\t\"x-la-asf\": [\"lsf\", \"lsx\"],\n\t\t\"x-mng\": \"mng\",\n\t\t\"x-ms-asf\": [\"asf\", \"asx\", \"asr\"],\n\t\t\"x-ms-wm\": \"wm\",\n\t\t\"x-ms-wmv\": \"wmv\",\n\t\t\"x-ms-wmx\": \"wmx\",\n\t\t\"x-ms-wvx\": \"wvx\",\n\t\t\"x-msvideo\": \"avi\",\n\t\t\"x-sgi-movie\": \"movie\",\n\t\t\"x-matroska\": [\"mpv\", \"mkv\", \"mk3d\", \"mks\"],\n\t\t\"3gpp2\": \"3g2\",\n\t\t\"h261\": \"h261\",\n\t\t\"h263\": \"h263\",\n\t\t\"h264\": \"h264\",\n\t\t\"jpeg\": \"jpgv\",\n\t\t\"jpm\": [\"jpm\", \"jpgm\"],\n\t\t\"mj2\": [\"mj2\", \"mjp2\"],\n\t\t\"vnd.dece.hd\": [\"uvh\", \"uvvh\"],\n\t\t\"vnd.dece.mobile\": [\"uvm\", \"uvvm\"],\n\t\t\"vnd.dece.pd\": [\"uvp\", \"uvvp\"],\n\t\t\"vnd.dece.sd\": [\"uvs\", \"uvvs\"],\n\t\t\"vnd.dece.video\": [\"uvv\", \"uvvv\"],\n\t\t\"vnd.dvb.file\": \"dvb\",\n\t\t\"vnd.fvt\": \"fvt\",\n\t\t\"vnd.ms-playready.media.pyv\": \"pyv\",\n\t\t\"vnd.uvvu.mp4\": [\"uvu\", \"uvvu\"],\n\t\t\"vnd.vivo\": \"viv\",\n\t\t\"webm\": \"webm\",\n\t\t\"x-f4v\": \"f4v\",\n\t\t\"x-m4v\": \"m4v\",\n\t\t\"x-ms-vob\": \"vob\",\n\t\t\"x-smv\": \"smv\"\t\t\n\t},\n\t\"x-conference\": {\n\t\t\"x-cooltalk\": \"ice\"\n\t},\n\t\"x-world\": {\n\t\t\"x-vrml\": [\"vrm\", \"vrml\", \"wrl\", \"flr\", \"wrz\", \"xaf\", \"xof\"]\n\t}\n};\n\nconst mimeTypes = (() => {\n\tconst mimeTypes = {};\n\tfor (let type in table) {\n\t\t// eslint-disable-next-line no-prototype-builtins\n\t\tif (table.hasOwnProperty(type)) {\n\t\t\tfor (let subtype in table[type]) {\n\t\t\t\t// eslint-disable-next-line no-prototype-builtins\n\t\t\t\tif (table[type].hasOwnProperty(subtype)) {\n\t\t\t\t\tconst value = table[type][subtype];\n\t\t\t\t\tif (typeof value == \"string\") {\n\t\t\t\t\t\tmimeTypes[value] = type + \"/\" + subtype;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfor (let indexMimeType = 0; indexMimeType < value.length; indexMimeType++) {\n\t\t\t\t\t\t\tmimeTypes[value[indexMimeType]] = type + \"/\" + subtype;\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}\n\t}\n\treturn mimeTypes;\n})();\n\nexport default getMimeType;\n\nfunction getMimeType(filename) {\n\tconst defaultValue = \"application/octet-stream\";\n\treturn filename && mimeTypes[filename.split(\".\").pop().toLowerCase()] || defaultValue;\n}","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nconst table = [];\nfor (let i = 0; i < 256; i++) {\n\tlet t = i;\n\tfor (let j = 0; j < 8; j++) {\n\t\tif (t & 1) {\n\t\t\tt = (t >>> 1) ^ 0xEDB88320;\n\t\t} else {\n\t\t\tt = t >>> 1;\n\t\t}\n\t}\n\ttable[i] = t;\n}\n\nclass Crc32 {\n\n\tconstructor(crc) {\n\t\tthis.crc = crc || -1;\n\t}\n\n\tappend(data) {\n\t\tlet crc = this.crc | 0;\n\t\tfor (let offset = 0, length = data.length | 0; offset < length; offset++) {\n\t\t\tcrc = (crc >>> 8) ^ table[(crc ^ data[offset]) & 0xFF];\n\t\t}\n\t\tthis.crc = crc;\n\t}\n\n\tget() {\n\t\treturn ~this.crc;\n\t}\n}\n\nexport default Crc32;","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/* global TextEncoder */\n\nexport default encodeText;\n\nfunction encodeText(value) {\n\tif (typeof TextEncoder == \"undefined\") {\n\t\tvalue = unescape(encodeURIComponent(value));\n\t\tconst result = new Uint8Array(value.length);\n\t\tfor (let i = 0; i < result.length; i++) {\n\t\t\tresult[i] = value.charCodeAt(i);\n\t\t}\n\t\treturn result;\n\t} else {\n\t\treturn new TextEncoder().encode(value);\n\t}\n}","// Derived from https://github.com/xqdoo00o/jszip/blob/master/lib/sjcl.js\n\n/** @fileOverview Javascript cryptography implementation.\n *\n * Crush to remove comments, shorten variable names and\n * generally reduce transmission size.\n *\n * @author Emily Stark\n * @author Mike Hamburg\n * @author Dan Boneh\n */\n\n/*jslint indent: 2, bitwise: false, nomen: false, plusplus: false, white: false, regexp: false */\n\n/** @fileOverview Arrays of bits, encoded as arrays of Numbers.\n *\n * @author Emily Stark\n * @author Mike Hamburg\n * @author Dan Boneh\n */\n\n/**\n * Arrays of bits, encoded as arrays of Numbers.\n * @namespace\n * @description\n *

    \n * These objects are the currency accepted by SJCL's crypto functions.\n *

    \n *\n *

    \n * Most of our crypto primitives operate on arrays of 4-byte words internally,\n * but many of them can take arguments that are not a multiple of 4 bytes.\n * This library encodes arrays of bits (whose size need not be a multiple of 8\n * bits) as arrays of 32-bit words. The bits are packed, big-endian, into an\n * array of words, 32 bits at a time. Since the words are double-precision\n * floating point numbers, they fit some extra data. We use this (in a private,\n * possibly-changing manner) to encode the number of bits actually present\n * in the last word of the array.\n *

    \n *\n *

    \n * Because bitwise ops clear this out-of-band data, these arrays can be passed\n * to ciphers like AES which want arrays of words.\n *

    \n */\nconst bitArray = {\n\t/**\n\t * Concatenate two bit arrays.\n\t * @param {bitArray} a1 The first array.\n\t * @param {bitArray} a2 The second array.\n\t * @return {bitArray} The concatenation of a1 and a2.\n\t */\n\tconcat(a1, a2) {\n\t\tif (a1.length === 0 || a2.length === 0) {\n\t\t\treturn a1.concat(a2);\n\t\t}\n\n\t\tconst last = a1[a1.length - 1], shift = bitArray.getPartial(last);\n\t\tif (shift === 32) {\n\t\t\treturn a1.concat(a2);\n\t\t} else {\n\t\t\treturn bitArray._shiftRight(a2, shift, last | 0, a1.slice(0, a1.length - 1));\n\t\t}\n\t},\n\n\t/**\n\t * Find the length of an array of bits.\n\t * @param {bitArray} a The array.\n\t * @return {Number} The length of a, in bits.\n\t */\n\tbitLength(a) {\n\t\tconst l = a.length;\n\t\tif (l === 0) {\n\t\t\treturn 0;\n\t\t}\n\t\tconst x = a[l - 1];\n\t\treturn (l - 1) * 32 + bitArray.getPartial(x);\n\t},\n\n\t/**\n\t * Truncate an array.\n\t * @param {bitArray} a The array.\n\t * @param {Number} len The length to truncate to, in bits.\n\t * @return {bitArray} A new array, truncated to len bits.\n\t */\n\tclamp(a, len) {\n\t\tif (a.length * 32 < len) {\n\t\t\treturn a;\n\t\t}\n\t\ta = a.slice(0, Math.ceil(len / 32));\n\t\tconst l = a.length;\n\t\tlen = len & 31;\n\t\tif (l > 0 && len) {\n\t\t\ta[l - 1] = bitArray.partial(len, a[l - 1] & 0x80000000 >> (len - 1), 1);\n\t\t}\n\t\treturn a;\n\t},\n\n\t/**\n\t * Make a partial word for a bit array.\n\t * @param {Number} len The number of bits in the word.\n\t * @param {Number} x The bits.\n\t * @param {Number} [_end=0] Pass 1 if x has already been shifted to the high side.\n\t * @return {Number} The partial word.\n\t */\n\tpartial(len, x, _end) {\n\t\tif (len === 32) {\n\t\t\treturn x;\n\t\t}\n\t\treturn (_end ? x | 0 : x << (32 - len)) + len * 0x10000000000;\n\t},\n\n\t/**\n\t * Get the number of bits used by a partial word.\n\t * @param {Number} x The partial word.\n\t * @return {Number} The number of bits used by the partial word.\n\t */\n\tgetPartial(x) {\n\t\treturn Math.round(x / 0x10000000000) || 32;\n\t},\n\n\t/** Shift an array right.\n\t * @param {bitArray} a The array to shift.\n\t * @param {Number} shift The number of bits to shift.\n\t * @param {Number} [carry=0] A byte to carry in\n\t * @param {bitArray} [out=[]] An array to prepend to the output.\n\t * @private\n\t */\n\t_shiftRight(a, shift, carry, out) {\n\t\tif (out === undefined) {\n\t\t\tout = [];\n\t\t}\n\n\t\tfor (; shift >= 32; shift -= 32) {\n\t\t\tout.push(carry);\n\t\t\tcarry = 0;\n\t\t}\n\t\tif (shift === 0) {\n\t\t\treturn out.concat(a);\n\t\t}\n\n\t\tfor (let i = 0; i < a.length; i++) {\n\t\t\tout.push(carry | a[i] >>> shift);\n\t\t\tcarry = a[i] << (32 - shift);\n\t\t}\n\t\tconst last2 = a.length ? a[a.length - 1] : 0;\n\t\tconst shift2 = bitArray.getPartial(last2);\n\t\tout.push(bitArray.partial(shift + shift2 & 31, (shift + shift2 > 32) ? carry : out.pop(), 1));\n\t\treturn out;\n\t}\n};\n\n/** @fileOverview Bit array codec implementations.\n *\n * @author Emily Stark\n * @author Mike Hamburg\n * @author Dan Boneh\n */\n\n/**\n * Arrays of bytes\n * @namespace\n */\nconst codec = {\n\tbytes: {\n\t\t/** Convert from a bitArray to an array of bytes. */\n\t\tfromBits(arr) {\n\t\t\tconst bl = bitArray.bitLength(arr);\n\t\t\tconst byteLength = bl / 8;\n\t\t\tconst out = new Uint8Array(byteLength);\n\t\t\tlet tmp;\n\t\t\tfor (let i = 0; i < byteLength; i++) {\n\t\t\t\tif ((i & 3) === 0) {\n\t\t\t\t\ttmp = arr[i / 4];\n\t\t\t\t}\n\t\t\t\tout[i] = tmp >>> 24;\n\t\t\t\ttmp <<= 8;\n\t\t\t}\n\t\t\treturn out;\n\t\t},\n\t\t/** Convert from an array of bytes to a bitArray. */\n\t\ttoBits(bytes) {\n\t\t\tconst out = [];\n\t\t\tlet i;\n\t\t\tlet tmp = 0;\n\t\t\tfor (i = 0; i < bytes.length; i++) {\n\t\t\t\ttmp = tmp << 8 | bytes[i];\n\t\t\t\tif ((i & 3) === 3) {\n\t\t\t\t\tout.push(tmp);\n\t\t\t\t\ttmp = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (i & 3) {\n\t\t\t\tout.push(bitArray.partial(8 * (i & 3), tmp));\n\t\t\t}\n\t\t\treturn out;\n\t\t}\n\t}\n};\n\nconst hash = {};\n\n/**\n * Context for a SHA-1 operation in progress.\n * @constructor\n */\nhash.sha1 = function (hash) {\n\tif (hash) {\n\t\tthis._h = hash._h.slice(0);\n\t\tthis._buffer = hash._buffer.slice(0);\n\t\tthis._length = hash._length;\n\t} else {\n\t\tthis.reset();\n\t}\n};\n\nhash.sha1.prototype = {\n\t/**\n\t * The hash's block size, in bits.\n\t * @constant\n\t */\n\tblockSize: 512,\n\n\t/**\n\t * Reset the hash state.\n\t * @return this\n\t */\n\treset: function () {\n\t\tconst sha1 = this;\n\t\tsha1._h = this._init.slice(0);\n\t\tsha1._buffer = [];\n\t\tsha1._length = 0;\n\t\treturn sha1;\n\t},\n\n\t/**\n\t * Input several words to the hash.\n\t * @param {bitArray|String} data the data to hash.\n\t * @return this\n\t */\n\tupdate: function (data) {\n\t\tconst sha1 = this;\n\t\tif (typeof data === \"string\") {\n\t\t\tdata = codec.utf8String.toBits(data);\n\t\t}\n\t\tconst b = sha1._buffer = bitArray.concat(sha1._buffer, data);\n\t\tconst ol = sha1._length;\n\t\tconst nl = sha1._length = ol + bitArray.bitLength(data);\n\t\tif (nl > 9007199254740991) {\n\t\t\tthrow new Error(\"Cannot hash more than 2^53 - 1 bits\");\n\t\t}\n\t\tconst c = new Uint32Array(b);\n\t\tlet j = 0;\n\t\tfor (let i = sha1.blockSize + ol - ((sha1.blockSize + ol) & (sha1.blockSize - 1)); i <= nl;\n\t\t\ti += sha1.blockSize) {\n\t\t\tsha1._block(c.subarray(16 * j, 16 * (j + 1)));\n\t\t\tj += 1;\n\t\t}\n\t\tb.splice(0, 16 * j);\n\t\treturn sha1;\n\t},\n\n\t/**\n\t * Complete hashing and output the hash value.\n\t * @return {bitArray} The hash value, an array of 5 big-endian words. TODO\n\t */\n\tfinalize: function () {\n\t\tconst sha1 = this;\n\t\tlet b = sha1._buffer;\n\t\tconst h = sha1._h;\n\n\t\t// Round out and push the buffer\n\t\tb = bitArray.concat(b, [bitArray.partial(1, 1)]);\n\t\t// Round out the buffer to a multiple of 16 words, less the 2 length words.\n\t\tfor (let i = b.length + 2; i & 15; i++) {\n\t\t\tb.push(0);\n\t\t}\n\n\t\t// append the length\n\t\tb.push(Math.floor(sha1._length / 0x100000000));\n\t\tb.push(sha1._length | 0);\n\n\t\twhile (b.length) {\n\t\t\tsha1._block(b.splice(0, 16));\n\t\t}\n\n\t\tsha1.reset();\n\t\treturn h;\n\t},\n\n\t/**\n\t * The SHA-1 initialization vector.\n\t * @private\n\t */\n\t_init: [0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0],\n\n\t/**\n\t * The SHA-1 hash key.\n\t * @private\n\t */\n\t_key: [0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xCA62C1D6],\n\n\t/**\n\t * The SHA-1 logical functions f(0), f(1), ..., f(79).\n\t * @private\n\t */\n\t_f: function (t, b, c, d) {\n\t\tif (t <= 19) {\n\t\t\treturn (b & c) | (~b & d);\n\t\t} else if (t <= 39) {\n\t\t\treturn b ^ c ^ d;\n\t\t} else if (t <= 59) {\n\t\t\treturn (b & c) | (b & d) | (c & d);\n\t\t} else if (t <= 79) {\n\t\t\treturn b ^ c ^ d;\n\t\t}\n\t},\n\n\t/**\n\t * Circular left-shift operator.\n\t * @private\n\t */\n\t_S: function (n, x) {\n\t\treturn (x << n) | (x >>> 32 - n);\n\t},\n\n\t/**\n\t * Perform one cycle of SHA-1.\n\t * @param {Uint32Array|bitArray} words one block of words.\n\t * @private\n\t */\n\t_block: function (words) {\n\t\tconst sha1 = this;\n\t\tconst h = sha1._h;\n\t\t// When words is passed to _block, it has 16 elements. SHA1 _block\n\t\t// function extends words with new elements (at the end there are 80 elements). \n\t\t// The problem is that if we use Uint32Array instead of Array, \n\t\t// the length of Uint32Array cannot be changed. Thus, we replace words with a \n\t\t// normal Array here.\n\t\tconst w = Array(80); // do not use Uint32Array here as the instantiation is slower\n\t\tfor (let j = 0; j < 16; j++) {\n\t\t\tw[j] = words[j];\n\t\t}\n\n\t\tlet a = h[0];\n\t\tlet b = h[1];\n\t\tlet c = h[2];\n\t\tlet d = h[3];\n\t\tlet e = h[4];\n\n\t\tfor (let t = 0; t <= 79; t++) {\n\t\t\tif (t >= 16) {\n\t\t\t\tw[t] = sha1._S(1, w[t - 3] ^ w[t - 8] ^ w[t - 14] ^ w[t - 16]);\n\t\t\t}\n\t\t\tconst tmp = (sha1._S(5, a) + sha1._f(t, b, c, d) + e + w[t] +\n\t\t\t\tsha1._key[Math.floor(t / 20)]) | 0;\n\t\t\te = d;\n\t\t\td = c;\n\t\t\tc = sha1._S(30, b);\n\t\t\tb = a;\n\t\t\ta = tmp;\n\t\t}\n\n\t\th[0] = (h[0] + a) | 0;\n\t\th[1] = (h[1] + b) | 0;\n\t\th[2] = (h[2] + c) | 0;\n\t\th[3] = (h[3] + d) | 0;\n\t\th[4] = (h[4] + e) | 0;\n\t}\n};\n\n/** @fileOverview Low-level AES implementation.\n *\n * This file contains a low-level implementation of AES, optimized for\n * size and for efficiency on several browsers. It is based on\n * OpenSSL's aes_core.c, a public-domain implementation by Vincent\n * Rijmen, Antoon Bosselaers and Paulo Barreto.\n *\n * An older version of this implementation is available in the public\n * domain, but this one is (c) Emily Stark, Mike Hamburg, Dan Boneh,\n * Stanford University 2008-2010 and BSD-licensed for liability\n * reasons.\n *\n * @author Emily Stark\n * @author Mike Hamburg\n * @author Dan Boneh\n */\n\nconst cipher = {};\n\n/**\n * Schedule out an AES key for both encryption and decryption. This\n * is a low-level class. Use a cipher mode to do bulk encryption.\n *\n * @constructor\n * @param {Array} key The key as an array of 4, 6 or 8 words.\n */\ncipher.aes = class {\n\tconstructor(key) {\n\t\t/**\n\t\t * The expanded S-box and inverse S-box tables. These will be computed\n\t\t * on the client so that we don't have to send them down the wire.\n\t\t *\n\t\t * There are two tables, _tables[0] is for encryption and\n\t\t * _tables[1] is for decryption.\n\t\t *\n\t\t * The first 4 sub-tables are the expanded S-box with MixColumns. The\n\t\t * last (_tables[01][4]) is the S-box itself.\n\t\t *\n\t\t * @private\n\t\t */\n\t\tconst aes = this;\n\t\taes._tables = [[[], [], [], [], []], [[], [], [], [], []]];\n\n\t\tif (!aes._tables[0][0][0]) {\n\t\t\taes._precompute();\n\t\t}\n\n\t\tconst sbox = aes._tables[0][4];\n\t\tconst decTable = aes._tables[1];\n\t\tconst keyLen = key.length;\n\n\t\tlet i, encKey, decKey, rcon = 1;\n\n\t\tif (keyLen !== 4 && keyLen !== 6 && keyLen !== 8) {\n\t\t\tthrow new Error(\"invalid aes key size\");\n\t\t}\n\n\t\taes._key = [encKey = key.slice(0), decKey = []];\n\n\t\t// schedule encryption keys\n\t\tfor (i = keyLen; i < 4 * keyLen + 28; i++) {\n\t\t\tlet tmp = encKey[i - 1];\n\n\t\t\t// apply sbox\n\t\t\tif (i % keyLen === 0 || (keyLen === 8 && i % keyLen === 4)) {\n\t\t\t\ttmp = sbox[tmp >>> 24] << 24 ^ sbox[tmp >> 16 & 255] << 16 ^ sbox[tmp >> 8 & 255] << 8 ^ sbox[tmp & 255];\n\n\t\t\t\t// shift rows and add rcon\n\t\t\t\tif (i % keyLen === 0) {\n\t\t\t\t\ttmp = tmp << 8 ^ tmp >>> 24 ^ rcon << 24;\n\t\t\t\t\trcon = rcon << 1 ^ (rcon >> 7) * 283;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tencKey[i] = encKey[i - keyLen] ^ tmp;\n\t\t}\n\n\t\t// schedule decryption keys\n\t\tfor (let j = 0; i; j++, i--) {\n\t\t\tconst tmp = encKey[j & 3 ? i : i - 4];\n\t\t\tif (i <= 4 || j < 4) {\n\t\t\t\tdecKey[j] = tmp;\n\t\t\t} else {\n\t\t\t\tdecKey[j] = decTable[0][sbox[tmp >>> 24]] ^\n\t\t\t\t\tdecTable[1][sbox[tmp >> 16 & 255]] ^\n\t\t\t\t\tdecTable[2][sbox[tmp >> 8 & 255]] ^\n\t\t\t\t\tdecTable[3][sbox[tmp & 255]];\n\t\t\t}\n\t\t}\n\t}\n\t// public\n\t/* Something like this might appear here eventually\n\tname: \"AES\",\n\tblockSize: 4,\n\tkeySizes: [4,6,8],\n\t*/\n\n\t/**\n\t * Encrypt an array of 4 big-endian words.\n\t * @param {Array} data The plaintext.\n\t * @return {Array} The ciphertext.\n\t */\n\tencrypt(data) {\n\t\treturn this._crypt(data, 0);\n\t}\n\n\t/**\n\t * Decrypt an array of 4 big-endian words.\n\t * @param {Array} data The ciphertext.\n\t * @return {Array} The plaintext.\n\t */\n\tdecrypt(data) {\n\t\treturn this._crypt(data, 1);\n\t}\n\n\t/**\n\t * Expand the S-box tables.\n\t *\n\t * @private\n\t */\n\t_precompute() {\n\t\tconst encTable = this._tables[0];\n\t\tconst decTable = this._tables[1];\n\t\tconst sbox = encTable[4];\n\t\tconst sboxInv = decTable[4];\n\t\tconst d = [];\n\t\tconst th = [];\n\t\tlet xInv, x2, x4, x8;\n\n\t\t// Compute double and third tables\n\t\tfor (let i = 0; i < 256; i++) {\n\t\t\tth[(d[i] = i << 1 ^ (i >> 7) * 283) ^ i] = i;\n\t\t}\n\n\t\tfor (let x = xInv = 0; !sbox[x]; x ^= x2 || 1, xInv = th[xInv] || 1) {\n\t\t\t// Compute sbox\n\t\t\tlet s = xInv ^ xInv << 1 ^ xInv << 2 ^ xInv << 3 ^ xInv << 4;\n\t\t\ts = s >> 8 ^ s & 255 ^ 99;\n\t\t\tsbox[x] = s;\n\t\t\tsboxInv[s] = x;\n\n\t\t\t// Compute MixColumns\n\t\t\tx8 = d[x4 = d[x2 = d[x]]];\n\t\t\tlet tDec = x8 * 0x1010101 ^ x4 * 0x10001 ^ x2 * 0x101 ^ x * 0x1010100;\n\t\t\tlet tEnc = d[s] * 0x101 ^ s * 0x1010100;\n\n\t\t\tfor (let i = 0; i < 4; i++) {\n\t\t\t\tencTable[i][x] = tEnc = tEnc << 24 ^ tEnc >>> 8;\n\t\t\t\tdecTable[i][s] = tDec = tDec << 24 ^ tDec >>> 8;\n\t\t\t}\n\t\t}\n\n\t\t// Compactify. Considerable speedup on Firefox.\n\t\tfor (let i = 0; i < 5; i++) {\n\t\t\tencTable[i] = encTable[i].slice(0);\n\t\t\tdecTable[i] = decTable[i].slice(0);\n\t\t}\n\t}\n\n\t/**\n\t * Encryption and decryption core.\n\t * @param {Array} input Four words to be encrypted or decrypted.\n\t * @param dir The direction, 0 for encrypt and 1 for decrypt.\n\t * @return {Array} The four encrypted or decrypted words.\n\t * @private\n\t */\n\t_crypt(input, dir) {\n\t\tif (input.length !== 4) {\n\t\t\tthrow new Error(\"invalid aes block size\");\n\t\t}\n\n\t\tconst key = this._key[dir];\n\n\t\tconst nInnerRounds = key.length / 4 - 2;\n\t\tconst out = [0, 0, 0, 0];\n\t\tconst table = this._tables[dir];\n\n\t\t// load up the tables\n\t\tconst t0 = table[0];\n\t\tconst t1 = table[1];\n\t\tconst t2 = table[2];\n\t\tconst t3 = table[3];\n\t\tconst sbox = table[4];\n\n\t\t// state variables a,b,c,d are loaded with pre-whitened data\n\t\tlet a = input[0] ^ key[0];\n\t\tlet b = input[dir ? 3 : 1] ^ key[1];\n\t\tlet c = input[2] ^ key[2];\n\t\tlet d = input[dir ? 1 : 3] ^ key[3];\n\t\tlet kIndex = 4;\n\t\tlet a2, b2, c2;\n\n\t\t// Inner rounds. Cribbed from OpenSSL.\n\t\tfor (let i = 0; i < nInnerRounds; i++) {\n\t\t\ta2 = t0[a >>> 24] ^ t1[b >> 16 & 255] ^ t2[c >> 8 & 255] ^ t3[d & 255] ^ key[kIndex];\n\t\t\tb2 = t0[b >>> 24] ^ t1[c >> 16 & 255] ^ t2[d >> 8 & 255] ^ t3[a & 255] ^ key[kIndex + 1];\n\t\t\tc2 = t0[c >>> 24] ^ t1[d >> 16 & 255] ^ t2[a >> 8 & 255] ^ t3[b & 255] ^ key[kIndex + 2];\n\t\t\td = t0[d >>> 24] ^ t1[a >> 16 & 255] ^ t2[b >> 8 & 255] ^ t3[c & 255] ^ key[kIndex + 3];\n\t\t\tkIndex += 4;\n\t\t\ta = a2; b = b2; c = c2;\n\t\t}\n\n\t\t// Last round.\n\t\tfor (let i = 0; i < 4; i++) {\n\t\t\tout[dir ? 3 & -i : i] =\n\t\t\t\tsbox[a >>> 24] << 24 ^\n\t\t\t\tsbox[b >> 16 & 255] << 16 ^\n\t\t\t\tsbox[c >> 8 & 255] << 8 ^\n\t\t\t\tsbox[d & 255] ^\n\t\t\t\tkey[kIndex++];\n\t\t\ta2 = a; a = b; b = c; c = d; d = a2;\n\t\t}\n\n\t\treturn out;\n\t}\n};\n\n/** @fileOverview CTR mode implementation.\n *\n * Special thanks to Roy Nicholson for pointing out a bug in our\n * implementation.\n *\n * @author Emily Stark\n * @author Mike Hamburg\n * @author Dan Boneh\n */\n\n/** Brian Gladman's CTR Mode.\n* @constructor\n* @param {Object} _prf The aes instance to generate key.\n* @param {bitArray} _iv The iv for ctr mode, it must be 128 bits.\n*/\n\nconst mode = {};\n\n/**\n * Brian Gladman's CTR Mode.\n * @namespace\n */\nmode.ctrGladman = class {\n\tconstructor(prf, iv) {\n\t\tthis._prf = prf;\n\t\tthis._initIv = iv;\n\t\tthis._iv = iv;\n\t}\n\n\treset() {\n\t\tthis._iv = this._initIv;\n\t}\n\n\t/** Input some data to calculate.\n\t * @param {bitArray} data the data to process, it must be intergral multiple of 128 bits unless it's the last.\n\t */\n\tupdate(data) {\n\t\treturn this.calculate(this._prf, data, this._iv);\n\t}\n\n\tincWord(word) {\n\t\tif (((word >> 24) & 0xff) === 0xff) { //overflow\n\t\t\tlet b1 = (word >> 16) & 0xff;\n\t\t\tlet b2 = (word >> 8) & 0xff;\n\t\t\tlet b3 = word & 0xff;\n\n\t\t\tif (b1 === 0xff) { // overflow b1 \n\t\t\t\tb1 = 0;\n\t\t\t\tif (b2 === 0xff) {\n\t\t\t\t\tb2 = 0;\n\t\t\t\t\tif (b3 === 0xff) {\n\t\t\t\t\t\tb3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t++b3;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t++b2;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t++b1;\n\t\t\t}\n\n\t\t\tword = 0;\n\t\t\tword += (b1 << 16);\n\t\t\tword += (b2 << 8);\n\t\t\tword += b3;\n\t\t} else {\n\t\t\tword += (0x01 << 24);\n\t\t}\n\t\treturn word;\n\t}\n\n\tincCounter(counter) {\n\t\tif ((counter[0] = this.incWord(counter[0])) === 0) {\n\t\t\t// encr_data in fileenc.c from Dr Brian Gladman's counts only with DWORD j < 8\n\t\t\tcounter[1] = this.incWord(counter[1]);\n\t\t}\n\t}\n\n\tcalculate(prf, data, iv) {\n\t\tlet l;\n\t\tif (!(l = data.length)) {\n\t\t\treturn [];\n\t\t}\n\t\tconst bl = bitArray.bitLength(data);\n\t\tfor (let i = 0; i < l; i += 4) {\n\t\t\tthis.incCounter(iv);\n\t\t\tconst e = prf.encrypt(iv);\n\t\t\tdata[i] ^= e[0];\n\t\t\tdata[i + 1] ^= e[1];\n\t\t\tdata[i + 2] ^= e[2];\n\t\t\tdata[i + 3] ^= e[3];\n\t\t}\n\t\treturn bitArray.clamp(data, bl);\n\t}\n};\n\n\nconst misc = {};\n\n/** @fileOverview HMAC implementation.\n *\n * @author Emily Stark\n * @author Mike Hamburg\n * @author Dan Boneh\n */\n\n/** HMAC with the specified hash function.\n * @constructor\n * @param {bitArray} key the key for HMAC.\n * @param {Object} [Hash=hash.sha1] The hash function to use.\n */\nmisc.hmacSha1 = class {\n\n\tconstructor(key) {\n\t\tconst hmac = this;\n\t\tconst Hash = hmac._hash = hash.sha1;\n\t\tconst exKey = [[], []];\n\t\tconst bs = Hash.prototype.blockSize / 32;\n\t\thmac._baseHash = [new Hash(), new Hash()];\n\n\t\tif (key.length > bs) {\n\t\t\tkey = Hash.hash(key);\n\t\t}\n\n\t\tfor (let i = 0; i < bs; i++) {\n\t\t\texKey[0][i] = key[i] ^ 0x36363636;\n\t\t\texKey[1][i] = key[i] ^ 0x5C5C5C5C;\n\t\t}\n\n\t\thmac._baseHash[0].update(exKey[0]);\n\t\thmac._baseHash[1].update(exKey[1]);\n\t\thmac._resultHash = new Hash(hmac._baseHash[0]);\n\t}\n\treset() {\n\t\tconst hmac = this;\n\t\thmac._resultHash = new hmac._hash(hmac._baseHash[0]);\n\t\thmac._updated = false;\n\t}\n\n\tupdate(data) {\n\t\tconst hmac = this;\n\t\thmac._updated = true;\n\t\thmac._resultHash.update(data);\n\t}\n\n\tdigest() {\n\t\tconst hmac = this;\n\t\tconst w = hmac._resultHash.finalize();\n\t\tconst result = new (hmac._hash)(hmac._baseHash[1]).update(w).finalize();\n\n\t\thmac.reset();\n\n\t\treturn result;\n\t}\n};\n\nexport {\n\tcipher,\n\tcodec,\n\tmisc,\n\tmode\n};","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/* global crypto */\n\nimport encodeText from \"./../util/encode-text.js\";\nimport { cipher, codec, misc, mode } from \"./sjcl.js\";\n\nconst ERR_INVALID_PASSWORD = \"Invalid pasword\";\nconst BLOCK_LENGTH = 16;\nconst RAW_FORMAT = \"raw\";\nconst PBKDF2_ALGORITHM = { name: \"PBKDF2\" };\nconst HASH_ALGORITHM = { name: \"HMAC\" };\nconst HASH_FUNCTION = \"SHA-1\";\nconst BASE_KEY_ALGORITHM = Object.assign({ hash: HASH_ALGORITHM }, PBKDF2_ALGORITHM);\nconst DERIVED_BITS_ALGORITHM = Object.assign({ iterations: 1000, hash: { name: HASH_FUNCTION } }, PBKDF2_ALGORITHM);\nconst DERIVED_BITS_USAGE = [\"deriveBits\"];\nconst SALT_LENGTH = [8, 12, 16];\nconst KEY_LENGTH = [16, 24, 32];\nconst SIGNATURE_LENGTH = 10;\nconst COUNTER_DEFAULT_VALUE = [0, 0, 0, 0];\nconst codecBytes = codec.bytes;\nconst Aes = cipher.aes;\nconst CtrGladman = mode.ctrGladman;\nconst HmacSha1 = misc.hmacSha1;\nclass AESDecrypt {\n\n\tconstructor(password, signed, strength) {\n\t\tObject.assign(this, {\n\t\t\tpassword,\n\t\t\tsigned,\n\t\t\tstrength: strength - 1,\n\t\t\tpendingInput: new Uint8Array(0)\n\t\t});\n\t}\n\n\tasync append(input) {\n\t\tconst aesCrypto = this;\n\t\tif (aesCrypto.password) {\n\t\t\tconst preamble = subarray(input, 0, SALT_LENGTH[aesCrypto.strength] + 2);\n\t\t\tawait createDecryptionKeys(aesCrypto, preamble, aesCrypto.password);\n\t\t\taesCrypto.password = null;\n\t\t\taesCrypto.aesCtrGladman = new CtrGladman(new Aes(aesCrypto.keys.key), Array.from(COUNTER_DEFAULT_VALUE));\n\t\t\taesCrypto.hmac = new HmacSha1(aesCrypto.keys.authentication);\n\t\t\tinput = subarray(input, SALT_LENGTH[aesCrypto.strength] + 2);\n\t\t}\n\t\tconst output = new Uint8Array(input.length - SIGNATURE_LENGTH - ((input.length - SIGNATURE_LENGTH) % BLOCK_LENGTH));\n\t\treturn append(aesCrypto, input, output, 0, SIGNATURE_LENGTH, true);\n\t}\n\n\tflush() {\n\t\tconst aesCrypto = this;\n\t\tconst pendingInput = aesCrypto.pendingInput;\n\t\tconst chunkToDecrypt = subarray(pendingInput, 0, pendingInput.length - SIGNATURE_LENGTH);\n\t\tconst originalSignature = subarray(pendingInput, pendingInput.length - SIGNATURE_LENGTH);\n\t\tlet decryptedChunkArray = new Uint8Array(0);\n\t\tif (chunkToDecrypt.length) {\n\t\t\tconst encryptedChunk = codecBytes.toBits(chunkToDecrypt);\n\t\t\taesCrypto.hmac.update(encryptedChunk);\n\t\t\tconst decryptedChunk = aesCrypto.aesCtrGladman.update(encryptedChunk);\n\t\t\tdecryptedChunkArray = codecBytes.fromBits(decryptedChunk);\n\t\t}\n\t\tlet valid = true;\n\t\tif (aesCrypto.signed) {\n\t\t\tconst signature = subarray(codecBytes.fromBits(aesCrypto.hmac.digest()), 0, SIGNATURE_LENGTH);\n\t\t\tfor (let indexSignature = 0; indexSignature < SIGNATURE_LENGTH; indexSignature++) {\n\t\t\t\tif (signature[indexSignature] != originalSignature[indexSignature]) {\n\t\t\t\t\tvalid = false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\tvalid,\n\t\t\tdata: decryptedChunkArray\n\t\t};\n\t}\n}\n\nclass AESEncrypt {\n\n\tconstructor(password, strength) {\n\t\tObject.assign(this, {\n\t\t\tpassword,\n\t\t\tstrength: strength - 1,\n\t\t\tpendingInput: new Uint8Array(0)\n\t\t});\n\t}\n\n\tasync append(input) {\n\t\tconst aesCrypto = this;\n\t\tlet preamble = new Uint8Array(0);\n\t\tif (aesCrypto.password) {\n\t\t\tpreamble = await createEncryptionKeys(aesCrypto, aesCrypto.password);\n\t\t\taesCrypto.password = null;\n\t\t\taesCrypto.aesCtrGladman = new CtrGladman(new Aes(aesCrypto.keys.key), Array.from(COUNTER_DEFAULT_VALUE));\n\t\t\taesCrypto.hmac = new HmacSha1(aesCrypto.keys.authentication);\n\t\t}\n\t\tconst output = new Uint8Array(preamble.length + input.length - (input.length % BLOCK_LENGTH));\n\t\toutput.set(preamble, 0);\n\t\treturn append(aesCrypto, input, output, preamble.length, 0);\n\t}\n\n\tflush() {\n\t\tconst aesCrypto = this;\n\t\tlet encryptedChunkArray = new Uint8Array(0);\n\t\tif (aesCrypto.pendingInput.length) {\n\t\t\tconst encryptedChunk = aesCrypto.aesCtrGladman.update(codecBytes.toBits(aesCrypto.pendingInput));\n\t\t\taesCrypto.hmac.update(encryptedChunk);\n\t\t\tencryptedChunkArray = codecBytes.fromBits(encryptedChunk);\n\t\t}\n\t\tconst signature = subarray(codecBytes.fromBits(aesCrypto.hmac.digest()), 0, SIGNATURE_LENGTH);\n\t\treturn {\n\t\t\tdata: concat(encryptedChunkArray, signature),\n\t\t\tsignature\n\t\t};\n\t}\n}\n\nexport {\n\tAESDecrypt,\n\tAESEncrypt,\n\tERR_INVALID_PASSWORD\n};\n\nfunction append(aesCrypto, input, output, paddingStart, paddingEnd, verifySignature) {\n\tconst inputLength = input.length - paddingEnd;\n\tif (aesCrypto.pendingInput.length) {\n\t\tinput = concat(aesCrypto.pendingInput, input);\n\t\toutput = expand(output, inputLength - (inputLength % BLOCK_LENGTH));\n\t}\n\tlet offset;\n\tfor (offset = 0; offset <= inputLength - BLOCK_LENGTH; offset += BLOCK_LENGTH) {\n\t\tconst inputChunk = codecBytes.toBits(subarray(input, offset, offset + BLOCK_LENGTH));\n\t\tif (verifySignature) {\n\t\t\taesCrypto.hmac.update(inputChunk);\n\t\t}\n\t\tconst outputChunk = aesCrypto.aesCtrGladman.update(inputChunk);\n\t\tif (!verifySignature) {\n\t\t\taesCrypto.hmac.update(outputChunk);\n\t\t}\n\t\toutput.set(codecBytes.fromBits(outputChunk), offset + paddingStart);\n\t}\n\taesCrypto.pendingInput = subarray(input, offset);\n\treturn output;\n}\n\nasync function createDecryptionKeys(decrypt, preambleArray, password) {\n\tawait createKeys(decrypt, password, subarray(preambleArray, 0, SALT_LENGTH[decrypt.strength]));\n\tconst passwordVerification = subarray(preambleArray, SALT_LENGTH[decrypt.strength]);\n\tconst passwordVerificationKey = decrypt.keys.passwordVerification;\n\tif (passwordVerificationKey[0] != passwordVerification[0] || passwordVerificationKey[1] != passwordVerification[1]) {\n\t\tthrow new Error(ERR_INVALID_PASSWORD);\n\t}\n}\n\nasync function createEncryptionKeys(encrypt, password) {\n\tconst salt = crypto.getRandomValues(new Uint8Array(SALT_LENGTH[encrypt.strength]));\n\tawait createKeys(encrypt, password, salt);\n\treturn concat(salt, encrypt.keys.passwordVerification);\n}\n\nasync function createKeys(target, password, salt) {\n\tconst encodedPassword = encodeText(password);\n\tconst basekey = await crypto.subtle.importKey(RAW_FORMAT, encodedPassword, BASE_KEY_ALGORITHM, false, DERIVED_BITS_USAGE);\n\tconst derivedBits = await crypto.subtle.deriveBits(Object.assign({ salt }, DERIVED_BITS_ALGORITHM), basekey, 8 * ((KEY_LENGTH[target.strength] * 2) + 2));\n\tconst compositeKey = new Uint8Array(derivedBits);\n\ttarget.keys = {\n\t\tkey: codecBytes.toBits(subarray(compositeKey, 0, KEY_LENGTH[target.strength])),\n\t\tauthentication: codecBytes.toBits(subarray(compositeKey, KEY_LENGTH[target.strength], KEY_LENGTH[target.strength] * 2)),\n\t\tpasswordVerification: subarray(compositeKey, KEY_LENGTH[target.strength] * 2)\n\t};\n}\n\nfunction concat(leftArray, rightArray) {\n\tlet array = leftArray;\n\tif (leftArray.length + rightArray.length) {\n\t\tarray = new Uint8Array(leftArray.length + rightArray.length);\n\t\tarray.set(leftArray, 0);\n\t\tarray.set(rightArray, leftArray.length);\n\t}\n\treturn array;\n}\n\nfunction expand(inputArray, length) {\n\tif (length && length > inputArray.length) {\n\t\tconst array = inputArray;\n\t\tinputArray = new Uint8Array(length);\n\t\tinputArray.set(array, 0);\n\t}\n\treturn inputArray;\n}\n\nfunction subarray(array, begin, end) {\n\treturn array.subarray(begin, end);\n}","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/* global crypto */\n\nimport Crc32 from \"./crc32.js\";\nimport { ERR_INVALID_PASSWORD } from \"./aes-crypto.js\";\n\nconst HEADER_LENGTH = 12;\n\nclass ZipCryptoDecrypt {\n\n\tconstructor(password, passwordVerification) {\n\t\tconst zipCrypto = this;\n\t\tObject.assign(zipCrypto, {\n\t\t\tpassword,\n\t\t\tpasswordVerification\n\t\t});\n\t\tcreateKeys(zipCrypto, password);\n\t}\n\n\tappend(input) {\n\t\tconst zipCrypto = this;\n\t\tif (zipCrypto.password) {\n\t\t\tconst decryptedHeader = decrypt(zipCrypto, input.subarray(0, HEADER_LENGTH));\n\t\t\tzipCrypto.password = null;\n\t\t\tif (decryptedHeader[HEADER_LENGTH - 1] != zipCrypto.passwordVerification) {\n\t\t\t\tthrow new Error(ERR_INVALID_PASSWORD);\n\t\t\t}\n\t\t\tinput = input.subarray(HEADER_LENGTH);\n\t\t}\n\t\treturn decrypt(zipCrypto, input);\n\t}\n\n\tflush() {\n\t\treturn {\n\t\t\tvalid: true,\n\t\t\tdata: new Uint8Array(0)\n\t\t};\n\t}\n}\n\nclass ZipCryptoEncrypt {\n\n\tconstructor(password, passwordVerification) {\n\t\tconst zipCrypto = this;\n\t\tObject.assign(zipCrypto, {\n\t\t\tpassword,\n\t\t\tpasswordVerification\n\t\t});\n\t\tcreateKeys(zipCrypto, password);\n\t}\n\n\tappend(input) {\n\t\tconst zipCrypto = this;\n\t\tlet output;\n\t\tlet offset;\n\t\tif (zipCrypto.password) {\n\t\t\tzipCrypto.password = null;\n\t\t\tconst header = crypto.getRandomValues(new Uint8Array(HEADER_LENGTH));\n\t\t\theader[HEADER_LENGTH - 1] = zipCrypto.passwordVerification;\n\t\t\toutput = new Uint8Array(input.length + header.length);\n\t\t\toutput.set(encrypt(zipCrypto, header), 0);\n\t\t\toffset = HEADER_LENGTH;\n\t\t} else {\n\t\t\toutput = new Uint8Array(input.length);\n\t\t\toffset = 0;\n\t\t}\n\t\toutput.set(encrypt(zipCrypto, input), offset);\n\t\treturn output;\n\t}\n\n\tflush() {\n\t\treturn {\n\t\t\tdata: new Uint8Array(0)\n\t\t};\n\t}\n}\n\nexport {\n\tZipCryptoDecrypt,\n\tZipCryptoEncrypt,\n\tERR_INVALID_PASSWORD\n};\n\nfunction decrypt(target, input) {\n\tconst output = new Uint8Array(input.length);\n\tfor (let index = 0; index < input.length; index++) {\n\t\toutput[index] = getByte(target) ^ input[index];\n\t\tupdateKeys(target, output[index]);\n\t}\n\treturn output;\n}\n\nfunction encrypt(target, input) {\n\tconst output = new Uint8Array(input.length);\n\tfor (let index = 0; index < input.length; index++) {\n\t\toutput[index] = getByte(target) ^ input[index];\n\t\tupdateKeys(target, input[index]);\n\t}\n\treturn output;\n}\n\nfunction createKeys(target, password) {\n\ttarget.keys = [0x12345678, 0x23456789, 0x34567890];\n\ttarget.crcKey0 = new Crc32(target.keys[0]);\n\ttarget.crcKey2 = new Crc32(target.keys[2]);\n\tfor (let index = 0; index < password.length; index++) {\n\t\tupdateKeys(target, password.charCodeAt(index));\n\t}\n}\n\nfunction updateKeys(target, byte) {\n\ttarget.crcKey0.append([byte]);\n\ttarget.keys[0] = ~target.crcKey0.get();\n\ttarget.keys[1] = getInt32(target.keys[1] + getInt8(target.keys[0]));\n\ttarget.keys[1] = getInt32(Math.imul(target.keys[1], 134775813) + 1);\n\ttarget.crcKey2.append([target.keys[1] >>> 24]);\n\ttarget.keys[2] = ~target.crcKey2.get();\n}\n\nfunction getByte(target) {\n\tconst temp = target.keys[2] | 2;\n\treturn getInt8(Math.imul(temp, (temp ^ 1)) >>> 8);\n}\n\nfunction getInt8(number) {\n\treturn number & 0xFF;\n}\n\nfunction getInt32(number) {\n\treturn number & 0xFFFFFFFF;\n}","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nimport Crc32 from \"./crc32.js\";\nimport { AESEncrypt, AESDecrypt, ERR_INVALID_PASSWORD } from \"./aes-crypto.js\";\nimport { ZipCryptoDecrypt, ZipCryptoEncrypt } from \"./zip-crypto.js\";\n\nconst CODEC_DEFLATE = \"deflate\";\nconst CODEC_INFLATE = \"inflate\";\nconst ERR_INVALID_SIGNATURE = \"Invalid signature\";\n\nclass Inflate {\n\n\tconstructor(codecConstructor, {\n\t\tsignature,\n\t\tpassword,\n\t\tsigned,\n\t\tcompressed,\n\t\tzipCrypto,\n\t\tpasswordVerification,\n\t\tencryptionStrength\n\t}, { chunkSize }) {\n\t\tconst encrypted = Boolean(password);\n\t\tObject.assign(this, {\n\t\t\tsignature,\n\t\t\tencrypted,\n\t\t\tsigned,\n\t\t\tcompressed,\n\t\t\tinflate: compressed && new codecConstructor({ chunkSize }),\n\t\t\tcrc32: signed && new Crc32(),\n\t\t\tzipCrypto,\n\t\t\tdecrypt: encrypted && zipCrypto ?\n\t\t\t\tnew ZipCryptoDecrypt(password, passwordVerification) :\n\t\t\t\tnew AESDecrypt(password, signed, encryptionStrength)\n\t\t});\n\t}\n\n\tasync append(data) {\n\t\tconst codec = this;\n\t\tif (codec.encrypted && data.length) {\n\t\t\tdata = await codec.decrypt.append(data);\n\t\t}\n\t\tif (codec.compressed && data.length) {\n\t\t\tdata = await codec.inflate.append(data);\n\t\t}\n\t\tif ((!codec.encrypted || codec.zipCrypto) && codec.signed && data.length) {\n\t\t\tcodec.crc32.append(data);\n\t\t}\n\t\treturn data;\n\t}\n\n\tasync flush() {\n\t\tconst codec = this;\n\t\tlet signature;\n\t\tlet data = new Uint8Array(0);\n\t\tif (codec.encrypted) {\n\t\t\tconst result = codec.decrypt.flush();\n\t\t\tif (!result.valid) {\n\t\t\t\tthrow new Error(ERR_INVALID_SIGNATURE);\n\t\t\t}\n\t\t\tdata = result.data;\n\t\t}\n\t\tif ((!codec.encrypted || codec.zipCrypto) && codec.signed) {\n\t\t\tconst dataViewSignature = new DataView(new Uint8Array(4).buffer);\n\t\t\tsignature = codec.crc32.get();\n\t\t\tdataViewSignature.setUint32(0, signature);\n\t\t\tif (codec.signature != dataViewSignature.getUint32(0, false)) {\n\t\t\t\tthrow new Error(ERR_INVALID_SIGNATURE);\n\t\t\t}\n\t\t}\n\t\tif (codec.compressed) {\n\t\t\tdata = (await codec.inflate.append(data)) || new Uint8Array(0);\n\t\t\tawait codec.inflate.flush();\n\t\t}\n\t\treturn { data, signature };\n\t}\n}\n\nclass Deflate {\n\n\tconstructor(codecConstructor, {\n\t\tencrypted,\n\t\tsigned,\n\t\tcompressed,\n\t\tlevel,\n\t\tzipCrypto,\n\t\tpassword,\n\t\tpasswordVerification,\n\t\tencryptionStrength\n\t}, { chunkSize }) {\n\t\tObject.assign(this, {\n\t\t\tencrypted,\n\t\t\tsigned,\n\t\t\tcompressed,\n\t\t\tdeflate: compressed && new codecConstructor({ level: level || 5, chunkSize }),\n\t\t\tcrc32: signed && new Crc32(),\n\t\t\tzipCrypto,\n\t\t\tencrypt: encrypted && zipCrypto ?\n\t\t\t\tnew ZipCryptoEncrypt(password, passwordVerification) :\n\t\t\t\tnew AESEncrypt(password, encryptionStrength)\n\t\t});\n\t}\n\n\tasync append(inputData) {\n\t\tconst codec = this;\n\t\tlet data = inputData;\n\t\tif (codec.compressed && inputData.length) {\n\t\t\tdata = await codec.deflate.append(inputData);\n\t\t}\n\t\tif (codec.encrypted && data.length) {\n\t\t\tdata = await codec.encrypt.append(data);\n\t\t}\n\t\tif ((!codec.encrypted || codec.zipCrypto) && codec.signed && inputData.length) {\n\t\t\tcodec.crc32.append(inputData);\n\t\t}\n\t\treturn data;\n\t}\n\n\tasync flush() {\n\t\tconst codec = this;\n\t\tlet signature;\n\t\tlet data = new Uint8Array(0);\n\t\tif (codec.compressed) {\n\t\t\tdata = (await codec.deflate.flush()) || new Uint8Array(0);\n\t\t}\n\t\tif (codec.encrypted) {\n\t\t\tdata = await codec.encrypt.append(data);\n\t\t\tconst result = codec.encrypt.flush();\n\t\t\tsignature = result.signature;\n\t\t\tconst newData = new Uint8Array(data.length + result.data.length);\n\t\t\tnewData.set(data, 0);\n\t\t\tnewData.set(result.data, data.length);\n\t\t\tdata = newData;\n\t\t}\n\t\tif ((!codec.encrypted || codec.zipCrypto) && codec.signed) {\n\t\t\tsignature = codec.crc32.get();\n\t\t}\n\t\treturn { data, signature };\n\t}\n}\n\nexport {\n\tInflate,\n\tDeflate,\n\tcreateCodec,\n\tCODEC_DEFLATE,\n\tCODEC_INFLATE,\n\tERR_INVALID_SIGNATURE,\n\tERR_INVALID_PASSWORD\n};\n\nfunction createCodec(codecConstructor, options, config) {\n\tif (options.codecType.startsWith(CODEC_DEFLATE)) {\n\t\treturn new Deflate(codecConstructor, options, config);\n\t} else if (options.codecType.startsWith(CODEC_INFLATE)) {\n\t\treturn new Inflate(codecConstructor, options, config);\n\t}\n}","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/* global Worker, URL */\n\nimport { createCodec } from \"./codec.js\";\n\nconst MESSAGE_INIT = \"init\";\nconst MESSAGE_APPEND = \"append\";\nconst MESSAGE_FLUSH = \"flush\";\nconst MESSAGE_EVENT_TYPE = \"message\";\n\nlet classicWorkersSupported = true;\n\nexport default (workerData, codecConstructor, options, config, onTaskFinished, webWorker, scripts) => {\n\tObject.assign(workerData, {\n\t\tbusy: true,\n\t\tcodecConstructor,\n\t\toptions: Object.assign({}, options),\n\t\tscripts,\n\t\tterminate() {\n\t\t\tif (workerData.worker && !workerData.busy) {\n\t\t\t\tworkerData.worker.terminate();\n\t\t\t\tworkerData.interface = null;\n\t\t\t}\n\t\t},\n\t\tonTaskFinished() {\n\t\t\tworkerData.busy = false;\n\t\t\tonTaskFinished(workerData);\n\t\t}\n\t});\n\treturn webWorker ? createWebWorkerInterface(workerData, config) : createWorkerInterface(workerData, config);\n};\n\nfunction createWorkerInterface(workerData, config) {\n\tconst interfaceCodec = createCodec(workerData.codecConstructor, workerData.options, config);\n\treturn {\n\t\tasync append(data) {\n\t\t\ttry {\n\t\t\t\treturn await interfaceCodec.append(data);\n\t\t\t} catch (error) {\n\t\t\t\tworkerData.onTaskFinished();\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t},\n\t\tasync flush() {\n\t\t\ttry {\n\t\t\t\treturn await interfaceCodec.flush();\n\t\t\t} finally {\n\t\t\t\tworkerData.onTaskFinished();\n\t\t\t}\n\t\t},\n\t\tabort() {\n\t\t\tworkerData.onTaskFinished();\n\t\t}\n\t};\n}\n\nfunction createWebWorkerInterface(workerData, config) {\n\tlet messageTask;\n\tconst workerOptions = { type: \"module\" };\n\tif (!workerData.interface) {\n\t\tif (!classicWorkersSupported) {\n\t\t\tworkerData.worker = getWorker(workerOptions, config.baseURL);\n\t\t} else {\n\t\t\ttry {\n\t\t\t\tworkerData.worker = getWorker({}, config.baseURL);\n\t\t\t} catch (error) {\n\t\t\t\tclassicWorkersSupported = false;\n\t\t\t\tworkerData.worker = getWorker(workerOptions, config.baseURL);\n\t\t\t}\n\t\t}\n\t\tworkerData.worker.addEventListener(MESSAGE_EVENT_TYPE, onMessage, false);\n\t\tworkerData.interface = {\n\t\t\tappend(data) {\n\t\t\t\treturn initAndSendMessage({ type: MESSAGE_APPEND, data });\n\t\t\t},\n\t\t\tflush() {\n\t\t\t\treturn initAndSendMessage({ type: MESSAGE_FLUSH });\n\t\t\t},\n\t\t\tabort() {\n\t\t\t\tworkerData.onTaskFinished();\n\t\t\t}\n\t\t};\n\t}\n\treturn workerData.interface;\n\n\tfunction getWorker(options, baseURL) {\n\t\tlet url, scriptUrl;\n\t\turl = workerData.scripts[0];\n\t\tif (typeof url == \"function\") {\n\t\t\turl = url();\n\t\t}\n\t\ttry {\n\t\t\tscriptUrl = new URL(url, baseURL);\n\t\t} catch (error) {\n\t\t\tscriptUrl = url;\n\t\t}\n\t\treturn new Worker(scriptUrl, options);\n\t}\n\n\tasync function initAndSendMessage(message) {\n\t\tif (!messageTask) {\n\t\t\tconst options = workerData.options;\n\t\t\tconst scripts = workerData.scripts.slice(1);\n\t\t\tawait sendMessage({ scripts, type: MESSAGE_INIT, options, config: { chunkSize: config.chunkSize } });\n\t\t}\n\t\treturn sendMessage(message);\n\t}\n\n\tfunction sendMessage(message) {\n\t\tconst worker = workerData.worker;\n\t\tconst result = new Promise((resolve, reject) => messageTask = { resolve, reject });\n\t\ttry {\n\t\t\tif (message.data) {\n\t\t\t\ttry {\n\t\t\t\t\tmessage.data = message.data.buffer;\n\t\t\t\t\tworker.postMessage(message, [message.data]);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tworker.postMessage(message);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tworker.postMessage(message);\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tmessageTask.reject(error);\n\t\t\tmessageTask = null;\n\t\t\tworkerData.onTaskFinished();\n\t\t}\n\t\treturn result;\n\t}\n\n\tfunction onMessage(event) {\n\t\tconst message = event.data;\n\t\tif (messageTask) {\n\t\t\tconst reponseError = message.error;\n\t\t\tconst type = message.type;\n\t\t\tif (reponseError) {\n\t\t\t\tconst error = new Error(reponseError.message);\n\t\t\t\terror.stack = reponseError.stack;\n\t\t\t\tmessageTask.reject(error);\n\t\t\t\tmessageTask = null;\n\t\t\t\tworkerData.onTaskFinished();\n\t\t\t} else if (type == MESSAGE_INIT || type == MESSAGE_FLUSH || type == MESSAGE_APPEND) {\n\t\t\t\tconst data = message.data;\n\t\t\t\tif (type == MESSAGE_FLUSH) {\n\t\t\t\t\tmessageTask.resolve({ data: new Uint8Array(data), signature: message.signature });\n\t\t\t\t\tmessageTask = null;\n\t\t\t\t\tworkerData.onTaskFinished();\n\t\t\t\t} else {\n\t\t\t\t\tmessageTask.resolve(data && new Uint8Array(data));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/* global setTimeout, clearTimeout */\n\nimport { CODEC_INFLATE, CODEC_DEFLATE, ERR_INVALID_SIGNATURE, ERR_INVALID_PASSWORD } from \"./codec.js\";\nimport getWorker from \"./codec-pool-worker.js\";\n\nlet pool = [];\nlet pendingRequests = [];\n\nexport {\n\tcreateCodec,\n\tterminateWorkers,\n\tCODEC_DEFLATE,\n\tCODEC_INFLATE,\n\tERR_INVALID_SIGNATURE,\n\tERR_INVALID_PASSWORD\n};\n\nfunction createCodec(codecConstructor, options, config) {\n\tconst streamCopy = !options.compressed && !options.signed && !options.encrypted;\n\tconst webWorker = !streamCopy && (options.useWebWorkers || (options.useWebWorkers === undefined && config.useWebWorkers));\n\tconst scripts = webWorker && config.workerScripts ? config.workerScripts[options.codecType] : [];\n\tif (pool.length < config.maxWorkers) {\n\t\tconst workerData = {};\n\t\tpool.push(workerData);\n\t\treturn getWorker(workerData, codecConstructor, options, config, onTaskFinished, webWorker, scripts);\n\t} else {\n\t\tconst workerData = pool.find(workerData => !workerData.busy);\n\t\tif (workerData) {\n\t\t\tclearTerminateTimeout(workerData);\n\t\t\treturn getWorker(workerData, codecConstructor, options, config, onTaskFinished, webWorker, scripts);\n\t\t} else {\n\t\t\treturn new Promise(resolve => pendingRequests.push({ resolve, codecConstructor, options, webWorker, scripts }));\n\t\t}\n\t}\n\n\tfunction onTaskFinished(workerData) {\n\t\tif (pendingRequests.length) {\n\t\t\tconst [{ resolve, codecConstructor, options, webWorker, scripts }] = pendingRequests.splice(0, 1);\n\t\t\tresolve(getWorker(workerData, codecConstructor, options, config, onTaskFinished, webWorker, scripts));\n\t\t} else if (workerData.worker) {\n\t\t\tclearTerminateTimeout(workerData);\n\t\t\tif (Number.isFinite(config.terminateWorkerTimeout) && config.terminateWorkerTimeout >= 0) {\n\t\t\t\tworkerData.terminateTimeout = setTimeout(() => {\n\t\t\t\t\tpool = pool.filter(data => data != workerData);\n\t\t\t\t\tworkerData.terminate();\n\t\t\t\t}, config.terminateWorkerTimeout);\n\t\t\t}\n\t\t} else {\n\t\t\tpool = pool.filter(data => data != workerData);\n\t\t}\n\t}\n}\n\nfunction clearTerminateTimeout(workerData) {\n\tif (workerData.terminateTimeout) {\n\t\tclearTimeout(workerData.terminateTimeout);\n\t\tworkerData.terminateTimeout = null;\n\t}\n}\n\nfunction terminateWorkers() {\n\tpool.forEach(workerData => {\n\t\tclearTerminateTimeout(workerData);\n\t\tworkerData.terminate();\n\t});\n}","var t=t=>{if(\"function\"==typeof URL.createObjectURL){const e=()=>URL.createObjectURL(new Blob(['const{Array:t,Object:e,Math:n,Error:r,Uint8Array:i,Uint16Array:s,Uint32Array:o,Int32Array:f,DataView:c,TextEncoder:l,crypto:u,postMessage:a}=globalThis,w=[];for(let t=0;256>t;t++){let e=t;for(let t=0;8>t;t++)1&e?e=e>>>1^3988292384:e>>>=1;w[t]=e}class h{constructor(t){this.t=t||-1}append(t){let e=0|this.t;for(let n=0,r=0|t.length;r>n;n++)e=e>>>8^w[255&(e^t[n])];this.t=e}get(){return~this.t}}const d={concat(t,e){if(0===t.length||0===e.length)return t.concat(e);const n=t[t.length-1],r=d.i(n);return 32===r?t.concat(e):d.o(e,r,0|n,t.slice(0,t.length-1))},l(t){const e=t.length;if(0===e)return 0;const n=t[e-1];return 32*(e-1)+d.i(n)},u(t,e){if(32*t.length0&&e&&(t[r-1]=d.h(e,t[r-1]&2147483648>>e-1,1)),t},h:(t,e,n)=>32===t?e:(n?0|e:e<<32-t)+1099511627776*t,i:t=>n.round(t/1099511627776)||32,o(t,e,n,r){for(void 0===r&&(r=[]);e>=32;e-=32)r.push(n),n=0;if(0===e)return r.concat(t);for(let i=0;i>>e),n=t[i]<<32-e;const i=t.length?t[t.length-1]:0,s=d.i(i);return r.push(d.h(e+s&31,e+s>32?n:r.pop(),1)),r}},p={p:{k(t){const e=d.l(t)/8,n=new i(e);let r;for(let i=0;e>i;i++)0==(3&i)&&(r=t[i/4]),n[i]=r>>>24,r<<=8;return n},g(t){const e=[];let n,r=0;for(n=0;n9007199254740991)throw new r(\"Cannot hash more than 2^53 - 1 bits\");const f=new o(n);let c=0;for(let t=e.blockSize+i-(e.blockSize+i&e.blockSize-1);s>=t;t+=e.blockSize)e.A(f.subarray(16*c,16*(c+1))),c+=1;return n.splice(0,16*c),e},V:function(){const t=this;let e=t.S;const r=t.m;e=d.concat(e,[d.h(1,1)]);for(let t=e.length+2;15&t;t++)e.push(0);for(e.push(n.floor(t._/4294967296)),e.push(0|t._);e.length;)t.A(e.splice(0,16));return t.reset(),r},I:[1732584193,4023233417,2562383102,271733878,3285377520],B:[1518500249,1859775393,2400959708,3395469782],D:(t,e,n,r)=>t>19?t>39?t>59?t>79?void 0:e^n^r:e&n|e&r|n&r:e^n^r:e&n|~e&r,U:(t,e)=>e<>>32-t,A:function(e){const r=this,i=r.m,s=t(80);for(let t=0;16>t;t++)s[t]=e[t];let o=i[0],f=i[1],c=i[2],l=i[3],u=i[4];for(let t=0;79>=t;t++){16>t||(s[t]=r.U(1,s[t-3]^s[t-8]^s[t-14]^s[t-16]));const e=r.U(5,o)+r.D(t,f,c,l)+u+s[t]+r.B[n.floor(t/20)]|0;u=l,l=c,c=r.U(30,f),f=o,o=e}i[0]=i[0]+o|0,i[1]=i[1]+f|0,i[2]=i[2]+c|0,i[3]=i[3]+l|0,i[4]=i[4]+u|0}};const y={name:\"PBKDF2\"},k=e.assign({hash:{name:\"HMAC\"}},y),g=e.assign({iterations:1e3,hash:{name:\"SHA-1\"}},y),v=[\"deriveBits\"],m=[8,12,16],z=[16,24,32],S=[0,0,0,0],_=p.p,I=class{constructor(t){const e=this;e.M=[[[],[],[],[],[]],[[],[],[],[],[]]],e.M[0][0][0]||e.P();const n=e.M[0][4],i=e.M[1],s=t.length;let o,f,c,l=1;if(4!==s&&6!==s&&8!==s)throw new r(\"invalid aes key size\");for(e.B=[f=t.slice(0),c=[]],o=s;4*s+28>o;o++){let t=f[o-1];(o%s==0||8===s&&o%s==4)&&(t=n[t>>>24]<<24^n[t>>16&255]<<16^n[t>>8&255]<<8^n[255&t],o%s==0&&(t=t<<8^t>>>24^l<<24,l=l<<1^283*(l>>7))),f[o]=f[o-s]^t}for(let t=0;o;t++,o--){const e=f[3&t?o:o-4];c[t]=4>=o||4>t?e:i[0][n[e>>>24]]^i[1][n[e>>16&255]]^i[2][n[e>>8&255]]^i[3][n[255&e]]}}encrypt(t){return this.H(t,0)}decrypt(t){return this.H(t,1)}P(){const t=this.M[0],e=this.M[1],n=t[4],r=e[4],i=[],s=[];let o,f,c,l;for(let t=0;256>t;t++)s[(i[t]=t<<1^283*(t>>7))^t]=t;for(let u=o=0;!n[u];u^=f||1,o=s[o]||1){let s=o^o<<1^o<<2^o<<3^o<<4;s=s>>8^255&s^99,n[u]=s,r[s]=u,l=i[c=i[f=i[u]]];let a=16843009*l^65537*c^257*f^16843008*u,w=257*i[s]^16843008*s;for(let n=0;4>n;n++)t[n][u]=w=w<<24^w>>>8,e[n][s]=a=a<<24^a>>>8}for(let n=0;5>n;n++)t[n]=t[n].slice(0),e[n]=e[n].slice(0)}H(t,e){if(4!==t.length)throw new r(\"invalid aes block size\");const n=this.B[e],i=n.length/4-2,s=[0,0,0,0],o=this.M[e],f=o[0],c=o[1],l=o[2],u=o[3],a=o[4];let w,h,d,p=t[0]^n[0],b=t[e?3:1]^n[1],y=t[2]^n[2],k=t[e?1:3]^n[3],g=4;for(let t=0;i>t;t++)w=f[p>>>24]^c[b>>16&255]^l[y>>8&255]^u[255&k]^n[g],h=f[b>>>24]^c[y>>16&255]^l[k>>8&255]^u[255&p]^n[g+1],d=f[y>>>24]^c[k>>16&255]^l[p>>8&255]^u[255&b]^n[g+2],k=f[k>>>24]^c[p>>16&255]^l[b>>8&255]^u[255&y]^n[g+3],g+=4,p=w,b=h,y=d;for(let t=0;4>t;t++)s[e?3&-t:t]=a[p>>>24]<<24^a[b>>16&255]<<16^a[y>>8&255]<<8^a[255&k]^n[g++],w=p,p=b,b=y,y=k,k=w;return s}},C=class{constructor(t,e){this.L=t,this.R=e,this.T=e}reset(){this.T=this.R}update(t){return this.j(this.L,t,this.T)}F(t){if(255==(t>>24&255)){let e=t>>16&255,n=t>>8&255,r=255&t;255===e?(e=0,255===n?(n=0,255===r?r=0:++r):++n):++e,t=0,t+=e<<16,t+=n<<8,t+=r}else t+=1<<24;return t}K(t){0===(t[0]=this.F(t[0]))&&(t[1]=this.F(t[1]))}j(t,e,n){let r;if(!(r=e.length))return[];const i=d.l(e);for(let i=0;r>i;i+=4){this.K(n);const r=t.encrypt(n);e[i]^=r[0],e[i+1]^=r[1],e[i+2]^=r[2],e[i+3]^=r[3]}return d.u(e,i)}},A=class{constructor(t){const e=this,n=e.O=b.v,r=[[],[]],i=n.prototype.blockSize/32;e.W=[new n,new n],t.length>i&&(t=n.hash(t));for(let e=0;i>e;e++)r[0][e]=909522486^t[e],r[1][e]=1549556828^t[e];e.W[0].update(r[0]),e.W[1].update(r[1]),e.q=new n(e.W[0])}reset(){const t=this;t.q=new t.O(t.W[0]),t.G=!1}update(t){this.G=!0,this.q.update(t)}digest(){const t=this,e=t.q.V(),n=new t.O(t.W[1]).update(e).V();return t.reset(),n}};class V{constructor(t,n,r){e.assign(this,{password:t,signed:n,J:r-1,N:new i(0)})}async append(e){const n=this;if(n.password){const i=M(e,0,m[n.J]+2);await(async(t,e,n)=>{await D(t,n,M(e,0,m[t.J]));const i=M(e,m[t.J]),s=t.keys.passwordVerification;if(s[0]!=i[0]||s[1]!=i[1])throw new r(\"Invalid pasword\")})(n,i,n.password),n.password=null,n.X=new C(new I(n.keys.key),t.from(S)),n.Y=new A(n.keys.Z),e=M(e,m[n.J]+2)}return B(n,e,new i(e.length-10-(e.length-10)%16),0,10,!0)}flush(){const t=this,e=t.N,n=M(e,0,e.length-10),r=M(e,e.length-10);let s=new i(0);if(n.length){const e=_.g(n);t.Y.update(e);const r=t.X.update(e);s=_.k(r)}let o=!0;if(t.signed){const e=M(_.k(t.Y.digest()),0,10);for(let t=0;10>t;t++)e[t]!=r[t]&&(o=!1)}return{valid:o,data:s}}}class E{constructor(t,n){e.assign(this,{password:t,J:n-1,N:new i(0)})}async append(e){const n=this;let r=new i(0);n.password&&(r=await(async(t,e)=>{const n=u.getRandomValues(new i(m[t.J]));return await D(t,e,n),U(n,t.keys.passwordVerification)})(n,n.password),n.password=null,n.X=new C(new I(n.keys.key),t.from(S)),n.Y=new A(n.keys.Z));const s=new i(r.length+e.length-e.length%16);return s.set(r,0),B(n,e,s,r.length,0)}flush(){const t=this;let e=new i(0);if(t.N.length){const n=t.X.update(_.g(t.N));t.Y.update(n),e=_.k(n)}const n=M(_.k(t.Y.digest()),0,10);return{data:U(e,n),signature:n}}}function B(t,e,n,r,s,o){const f=e.length-s;let c;for(t.N.length&&(e=U(t.N,e),n=((t,e)=>{if(e&&e>t.length){const n=t;(t=new i(e)).set(n,0)}return t})(n,f-f%16)),c=0;f-16>=c;c+=16){const i=_.g(M(e,c,c+16));o&&t.Y.update(i);const s=t.X.update(i);o||t.Y.update(s),n.set(_.k(s),c+r)}return t.N=M(e,c),n}async function D(t,n,r){const s=(t=>{if(void 0===l){const e=new i((t=unescape(encodeURIComponent(t))).length);for(let n=0;n>>24]),t.keys[2]=~t.tt.get()}function x(t){const e=2|t.keys[2];return F(n.imul(e,1^e)>>>8)}function F(t){return 255&t}function K(t){return 4294967295&t}class O{constructor(t,{signature:n,password:r,signed:i,compressed:s,zipCrypto:o,passwordVerification:f,encryptionStrength:c},{et:l}){const u=!!r;e.assign(this,{signature:n,encrypted:u,signed:i,compressed:s,nt:s&&new t({et:l}),rt:i&&new h,zipCrypto:o,decrypt:u&&o?new P(r,f):new V(r,i,c)})}async append(t){const e=this;return e.encrypted&&t.length&&(t=await e.decrypt.append(t)),e.compressed&&t.length&&(t=await e.nt.append(t)),(!e.encrypted||e.zipCrypto)&&e.signed&&t.length&&e.rt.append(t),t}async flush(){const t=this;let e,n=new i(0);if(t.encrypted){const e=t.decrypt.flush();if(!e.valid)throw new r(\"Invalid signature\");n=e.data}if((!t.encrypted||t.zipCrypto)&&t.signed){const n=new c(new i(4).buffer);if(e=t.rt.get(),n.setUint32(0,e),t.signature!=n.getUint32(0,!1))throw new r(\"Invalid signature\")}return t.compressed&&(n=await t.nt.append(n)||new i(0),await t.nt.flush()),{data:n,signature:e}}}class W{constructor(t,{encrypted:n,signed:r,compressed:i,level:s,zipCrypto:o,password:f,passwordVerification:c,encryptionStrength:l},{et:u}){e.assign(this,{encrypted:n,signed:r,compressed:i,it:i&&new t({level:s||5,et:u}),rt:r&&new h,zipCrypto:o,encrypt:n&&o?new H(f,c):new E(f,l)})}async append(t){const e=this;let n=t;return e.compressed&&t.length&&(n=await e.it.append(t)),e.encrypted&&n.length&&(n=await e.encrypt.append(n)),(!e.encrypted||e.zipCrypto)&&e.signed&&t.length&&e.rt.append(t),n}async flush(){const t=this;let e,n=new i(0);if(t.compressed&&(n=await t.it.flush()||new i(0)),t.encrypted){n=await t.encrypt.append(n);const r=t.encrypt.flush();e=r.signature;const s=new i(n.length+r.data.length);s.set(n,0),s.set(r.data,n.length),n=s}return t.encrypted&&!t.zipCrypto||!t.signed||(e=t.rt.get()),{data:n,signature:e}}}const q={init(t){t.scripts&&t.scripts.length&&importScripts.apply(void 0,t.scripts);const e=t.options;let n;self.initCodec&&self.initCodec(),e.codecType.startsWith(\"deflate\")?n=self.Deflate:e.codecType.startsWith(\"inflate\")&&(n=self.Inflate),G=((t,e,n)=>e.codecType.startsWith(\"deflate\")?new W(t,e,n):e.codecType.startsWith(\"inflate\")?new O(t,e,n):void 0)(n,e,t.config)},append:async t=>({data:await G.append(t.data)}),flush:()=>G.flush()};let G;function J(e){return N(e.map((([e,n])=>new t(e).fill(n,0,e))))}function N(e){return e.reduce(((e,n)=>e.concat(t.isArray(n)?N(n):n)),[])}addEventListener(\"message\",(async t=>{const e=t.data,n=e.type,r=q[n];if(r)try{e.data&&(e.data=new i(e.data));const t=await r(e)||{};if(t.type=n,t.data)try{t.data=t.data.buffer,a(t,[t.data])}catch(e){a(t)}else a(t)}catch(t){a({type:n,error:{message:t.message,stack:t.stack}})}}));const Q=[0,1,2,3].concat(...J([[2,4],[2,5],[4,6],[4,7],[8,8],[8,9],[16,10],[16,11],[32,12],[32,13],[64,14],[64,15],[2,0],[1,16],[1,17],[2,18],[2,19],[4,20],[4,21],[8,22],[8,23],[16,24],[16,25],[32,26],[32,27],[64,28],[64,29]]));function X(){const t=this;function e(t,e){let n=0;do{n|=1&t,t>>>=1,n<<=1}while(--e>0);return n>>>1}t.st=r=>{const i=t.ot,s=t.ct.ft,o=t.ct.lt;let f,c,l,u=-1;for(r.ut=0,r.at=573,f=0;o>f;f++)0!==i[2*f]?(r.wt[++r.ut]=u=f,r.ht[f]=0):i[2*f+1]=0;for(;2>r.ut;)l=r.wt[++r.ut]=2>u?++u:0,i[2*l]=1,r.ht[l]=0,r.dt--,s&&(r.bt-=s[2*l+1]);for(t.yt=u,f=n.floor(r.ut/2);f>=1;f--)r.kt(i,f);l=o;do{f=r.wt[1],r.wt[1]=r.wt[r.ut--],r.kt(i,1),c=r.wt[1],r.wt[--r.at]=f,r.wt[--r.at]=c,i[2*l]=i[2*f]+i[2*c],r.ht[l]=n.max(r.ht[f],r.ht[c])+1,i[2*f+1]=i[2*c+1]=l,r.wt[1]=l++,r.kt(i,1)}while(r.ut>=2);r.wt[--r.at]=r.wt[1],(e=>{const n=t.ot,r=t.ct.ft,i=t.ct.gt,s=t.ct.vt,o=t.ct.zt;let f,c,l,u,a,w,h=0;for(u=0;15>=u;u++)e.St[u]=0;for(n[2*e.wt[e.at]+1]=0,f=e.at+1;573>f;f++)c=e.wt[f],u=n[2*n[2*c+1]+1]+1,u>o&&(u=o,h++),n[2*c+1]=u,c>t.yt||(e.St[u]++,a=0,s>c||(a=i[c-s]),w=n[2*c],e.dt+=w*(u+a),r&&(e.bt+=w*(r[2*c+1]+a)));if(0!==h){do{for(u=o-1;0===e.St[u];)u--;e.St[u]--,e.St[u+1]+=2,e.St[o]--,h-=2}while(h>0);for(u=o;0!==u;u--)for(c=e.St[u];0!==c;)l=e.wt[--f],l>t.yt||(n[2*l+1]!=u&&(e.dt+=(u-n[2*l+1])*n[2*l],n[2*l+1]=u),c--)}})(r),((t,n,r)=>{const i=[];let s,o,f,c=0;for(s=1;15>=s;s++)i[s]=c=c+r[s-1]<<1;for(o=0;n>=o;o++)f=t[2*o+1],0!==f&&(t[2*o]=e(i[f]++,f))})(i,t.yt,r.St)}}function Y(t,e,n,r,i){const s=this;s.ft=t,s.gt=e,s.vt=n,s.lt=r,s.zt=i}X._t=[0,1,2,3,4,5,6,7].concat(...J([[2,8],[2,9],[2,10],[2,11],[4,12],[4,13],[4,14],[4,15],[8,16],[8,17],[8,18],[8,19],[16,20],[16,21],[16,22],[16,23],[32,24],[32,25],[32,26],[31,27],[1,28]])),X.It=[0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224,0],X.Ct=[0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576],X.At=t=>256>t?Q[t]:Q[256+(t>>>7)],X.Vt=[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],X.Et=[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],X.Bt=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],X.Dt=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];const Z=J([[144,8],[112,9],[24,7],[8,8]]);Y.Ut=N([12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254,1,129,65,193,33,161,97,225,17,145,81,209,49,177,113,241,9,137,73,201,41,169,105,233,25,153,89,217,57,185,121,249,5,133,69,197,37,165,101,229,21,149,85,213,53,181,117,245,13,141,77,205,45,173,109,237,29,157,93,221,61,189,125,253,19,275,147,403,83,339,211,467,51,307,179,435,115,371,243,499,11,267,139,395,75,331,203,459,43,299,171,427,107,363,235,491,27,283,155,411,91,347,219,475,59,315,187,443,123,379,251,507,7,263,135,391,71,327,199,455,39,295,167,423,103,359,231,487,23,279,151,407,87,343,215,471,55,311,183,439,119,375,247,503,15,271,143,399,79,335,207,463,47,303,175,431,111,367,239,495,31,287,159,415,95,351,223,479,63,319,191,447,127,383,255,511,0,64,32,96,16,80,48,112,8,72,40,104,24,88,56,120,4,68,36,100,20,84,52,116,3,131,67,195,35,163,99,227].map(((t,e)=>[t,Z[e]])));const $=J([[30,5]]);function tt(t,e,n,r,i){const s=this;s.Mt=t,s.Pt=e,s.Ht=n,s.Lt=r,s.Rt=i}Y.Tt=N([0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23].map(((t,e)=>[t,$[e]]))),Y.jt=new Y(Y.Ut,X.Vt,257,286,15),Y.xt=new Y(Y.Tt,X.Et,0,30,15),Y.Ft=new Y(null,X.Bt,0,19,7);const et=[new tt(0,0,0,0,0),new tt(4,4,8,4,1),new tt(4,5,16,8,1),new tt(4,6,32,32,1),new tt(4,4,16,16,2),new tt(8,16,32,32,2),new tt(8,16,128,128,2),new tt(8,32,128,256,2),new tt(32,128,258,1024,2),new tt(32,258,258,4096,2)],nt=[\"need dictionary\",\"stream end\",\"\",\"\",\"stream error\",\"data error\",\"\",\"buffer error\",\"\",\"\"];function rt(t,e,n,r){const i=t[2*e],s=t[2*n];return s>i||i==s&&r[e]<=r[n]}function it(){const t=this;let e,r,o,f,c,l,u,a,w,h,d,p,b,y,k,g,v,m,z,S,_,I,C,A,V,E,B,D,U,M,P,H,L;const R=new X,T=new X,j=new X;let x,F,K,O,W,q;function G(){let e;for(e=0;286>e;e++)P[2*e]=0;for(e=0;30>e;e++)H[2*e]=0;for(e=0;19>e;e++)L[2*e]=0;P[512]=1,t.dt=t.bt=0,F=K=0}function J(t,e){let n,r=-1,i=t[1],s=0,o=7,f=4;0===i&&(o=138,f=3),t[2*(e+1)+1]=65535;for(let c=0;e>=c;c++)n=i,i=t[2*(c+1)+1],++ss?L[2*n]+=s:0!==n?(n!=r&&L[2*n]++,L[32]++):s>10?L[36]++:L[34]++,s=0,r=n,0===i?(o=138,f=3):n==i?(o=6,f=3):(o=7,f=4))}function N(e){t.Kt[t.pending++]=e}function Q(t){N(255&t),N(t>>>8&255)}function Z(t,e){let n;const r=e;q>16-r?(n=t,W|=n<>>16-q,q+=r-16):(W|=t<=n;n++)if(r=s,s=t[2*(n+1)+1],++o>=f||r!=s){if(c>o)do{$(r,L)}while(0!=--o);else 0!==r?(r!=i&&($(r,L),o--),$(16,L),Z(o-3,2)):o>10?($(18,L),Z(o-11,7)):($(17,L),Z(o-3,3));o=0,i=r,0===s?(f=138,c=3):r==s?(f=6,c=3):(f=7,c=4)}}function it(){16==q?(Q(W),W=0,q=0):8>q||(N(255&W),W>>>=8,q-=8)}function st(e,r){let i,s,o;if(t.Ot[F]=e,t.Wt[F]=255&r,F++,0===e?P[2*r]++:(K++,e--,P[2*(X._t[r]+256+1)]++,H[2*X.At(e)]++),0==(8191&F)&&B>2){for(i=8*F,s=_-v,o=0;30>o;o++)i+=H[2*o]*(5+X.Et[o]);if(i>>>=3,Kf);$(256,e),O=e[513]}function ft(){q>8?Q(W):q>0&&N(255&W),W=0,q=0}function ct(e,n,r){Z(0+(r?1:0),3),((e,n)=>{ft(),O=8,Q(n),Q(~n),t.Kt.set(a.subarray(e,e+n),t.pending),t.pending+=n})(e,n)}function lt(n){((e,n,r)=>{let i,s,o=0;B>0?(R.st(t),T.st(t),o=(()=>{let e;for(J(P,R.yt),J(H,T.yt),j.st(t),e=18;e>=3&&0===L[2*X.Dt[e]+1];e--);return t.dt+=14+3*(e+1),e})(),i=t.dt+3+7>>>3,s=t.bt+3+7>>>3,s>i||(i=s)):i=s=n+5,n+4>i||-1==e?s==i?(Z(2+(r?1:0),3),ot(Y.Ut,Y.Tt)):(Z(4+(r?1:0),3),((t,e,n)=>{let r;for(Z(t-257,5),Z(e-1,5),Z(n-4,4),r=0;n>r;r++)Z(L[2*X.Dt[r]+1],3);tt(P,t-1),tt(H,e-1)})(R.yt+1,T.yt+1,o+1),ot(P,H)):ct(e,n,r),G(),r&&ft()})(0>v?-1:v,_-v,n),v=_,e.qt()}function ut(){let t,n,r,i;do{if(i=w-C-_,0===i&&0===_&&0===C)i=c;else if(-1==i)i--;else if(_>=c+c-262){a.set(a.subarray(c,c+c),0),I-=c,_-=c,v-=c,t=b,r=t;do{n=65535&d[--r],d[r]=c>n?0:n-c}while(0!=--t);t=c,r=t;do{n=65535&h[--r],h[r]=c>n?0:n-c}while(0!=--t);i+=c}if(0===e.Gt)return;t=e.Jt(a,_+C,i),C+=t,3>C||(p=255&a[_],p=(p<C&&0!==e.Gt)}function at(t){let e,n,r=V,i=_,s=A;const o=_>c-262?_-(c-262):0;let f=M;const l=u,w=_+258;let d=a[i+s-1],p=a[i+s];U>A||(r>>=2),f>C&&(f=C);do{if(e=t,a[e+s]==p&&a[e+s-1]==d&&a[e]==a[i]&&a[++e]==a[i+1]){i+=2,e++;do{}while(a[++i]==a[++e]&&a[++i]==a[++e]&&a[++i]==a[++e]&&a[++i]==a[++e]&&a[++i]==a[++e]&&a[++i]==a[++e]&&a[++i]==a[++e]&&a[++i]==a[++e]&&w>i);if(n=258-(w-i),i=w-258,n>s){if(I=t,s=n,n>=f)break;d=a[i+s-1],p=a[i+s]}}}while((t=65535&h[t&l])>o&&0!=--r);return s>C?C:s}t.ht=[],t.St=[],t.wt=[],P=[],H=[],L=[],t.kt=(e,n)=>{const r=t.wt,i=r[n];let s=n<<1;for(;s<=t.ut&&(s(F||(F=8),K||(K=8),J||(J=0),e.Qt=null,-1==z&&(z=6),1>K||K>9||8!=F||9>I||I>15||0>z||z>9||0>J||J>2?-2:(e.Xt=t,l=I,c=1<(e.Yt=e.Zt=0,e.Qt=null,t.pending=0,t.$t=0,r=113,f=0,R.ot=P,R.ct=Y.jt,T.ot=H,T.ct=Y.xt,j.ot=L,j.ct=Y.Ft,W=0,q=0,O=8,G(),(()=>{w=2*c,d[b-1]=0;for(let t=0;b-1>t;t++)d[t]=0;E=et[B].Pt,U=et[B].Mt,M=et[B].Ht,V=et[B].Lt,_=0,v=0,C=0,m=A=2,S=0,p=0})(),0))(e))),t.te=()=>42!=r&&113!=r&&666!=r?-2:(t.Wt=null,t.Ot=null,t.Kt=null,d=null,h=null,a=null,t.Xt=null,113==r?-3:0),t.ee=(t,e,n)=>{let r=0;return-1==e&&(e=6),0>e||e>9||0>n||n>2?-2:(et[B].Rt!=et[e].Rt&&0!==t.Yt&&(r=t.it(1)),B!=e&&(B=e,E=et[B].Pt,U=et[B].Mt,M=et[B].Ht,V=et[B].Lt),D=n,r)},t.ne=(t,e,n)=>{let i,s=n,o=0;if(!e||42!=r)return-2;if(3>s)return 0;for(s>c-262&&(s=c-262,o=n-s),a.set(e.subarray(o,o+s),0),_=s,v=s,p=255&a[0],p=(p<=i;i++)p=(p<{let s,w,y,V,U;if(i>4||0>i)return-2;if(!n.re||!n.ie&&0!==n.Gt||666==r&&4!=i)return n.Qt=nt[4],-2;if(0===n.se)return n.Qt=nt[7],-5;var M;if(e=n,V=f,f=i,42==r&&(w=8+(l-8<<4)<<8,y=(B-1&255)>>1,y>3&&(y=3),w|=y<<6,0!==_&&(w|=32),w+=31-w%31,r=113,N((M=w)>>8&255),N(255&M)),0!==t.pending){if(e.qt(),0===e.se)return f=-1,0}else if(0===e.Gt&&V>=i&&4!=i)return e.Qt=nt[7],-5;if(666==r&&0!==e.Gt)return n.Qt=nt[7],-5;if(0!==e.Gt||0!==C||0!=i&&666!=r){switch(U=-1,et[B].Rt){case 0:U=(t=>{let n,r=65535;for(r>o-5&&(r=o-5);;){if(1>=C){if(ut(),0===C&&0==t)return 0;if(0===C)break}if(_+=C,C=0,n=v+r,(0===_||_>=n)&&(C=_-n,_=n,lt(!1),0===e.se))return 0;if(_-v>=c-262&&(lt(!1),0===e.se))return 0}return lt(4==t),0===e.se?4==t?2:0:4==t?3:1})(i);break;case 1:U=(t=>{let n,r=0;for(;;){if(262>C){if(ut(),262>C&&0==t)return 0;if(0===C)break}if(3>C||(p=(p<c-262||2!=D&&(m=at(r)),3>m)n=st(0,255&a[_]),C--,_++;else if(n=st(_-I,m-3),C-=m,m>E||3>C)_+=m,m=0,p=255&a[_],p=(p<{let n,r,i=0;for(;;){if(262>C){if(ut(),262>C&&0==t)return 0;if(0===C)break}if(3>C||(p=(p<A&&c-262>=(_-i&65535)&&(2!=D&&(m=at(i)),5>=m&&(1==D||3==m&&_-I>4096)&&(m=2)),3>A||m>A)if(0!==S){if(n=st(0,255&a[_-1]),n&<(!1),_++,C--,0===e.se)return 0}else S=1,_++,C--;else{r=_+C-3,n=st(_-1-z,A-3),C-=A-1,A-=2;do{++_>r||(p=(p<1+O+10-q&&(Z(2,3),$(256,Y.Ut),it()),O=7;else if(ct(0,0,!1),3==i)for(s=0;b>s;s++)d[s]=0;if(e.qt(),0===e.se)return f=-1,0}}return 4!=i?0:1}}function st(){const t=this;t.oe=0,t.fe=0,t.Gt=0,t.Yt=0,t.se=0,t.Zt=0}function ot(t){const e=new st,s=(o=t&&t.et?t.et:65536)+5*(n.floor(o/16383)+1);var o;const f=new i(s);let c=t?t.level:-1;void 0===c&&(c=-1),e.Nt(c),e.re=f,this.append=(t,n)=>{let o,c,l=0,u=0,a=0;const w=[];if(t.length){e.oe=0,e.ie=t,e.Gt=t.length;do{if(e.fe=0,e.se=s,o=e.it(0),0!=o)throw new r(\"deflating: \"+e.Qt);e.fe&&(e.fe==s?w.push(new i(f)):w.push(f.slice(0,e.fe))),a+=e.fe,n&&e.oe>0&&e.oe!=l&&(n(e.oe),l=e.oe)}while(e.Gt>0||0===e.se);return w.length>1?(c=new i(a),w.forEach((t=>{c.set(t,u),u+=t.length}))):c=w[0]||new i(0),c}},this.flush=()=>{let t,n,o=0,c=0;const l=[];do{if(e.fe=0,e.se=s,t=e.it(4),1!=t&&0!=t)throw new r(\"deflating: \"+e.Qt);s-e.se>0&&l.push(f.slice(0,e.fe)),c+=e.fe}while(e.Gt>0||0===e.se);return e.te(),n=new i(c),l.forEach((t=>{n.set(t,o),o+=t.length})),n}}st.prototype={Nt:function(t,e){const n=this;return n.Xt=new it,e||(e=15),n.Xt.Nt(n,t,e)},it:function(t){const e=this;return e.Xt?e.Xt.it(e,t):-2},te:function(){const t=this;if(!t.Xt)return-2;const e=t.Xt.te();return t.Xt=null,e},ee:function(t,e){const n=this;return n.Xt?n.Xt.ee(n,t,e):-2},ne:function(t,e){const n=this;return n.Xt?n.Xt.ne(n,t,e):-2},Jt:function(t,e,n){const r=this;let i=r.Gt;return i>n&&(i=n),0===i?0:(r.Gt-=i,t.set(r.ie.subarray(r.oe,r.oe+i),e),r.oe+=i,r.Yt+=i,i)},qt:function(){const t=this;let e=t.Xt.pending;e>t.se&&(e=t.se),0!==e&&(t.re.set(t.Xt.Kt.subarray(t.Xt.$t,t.Xt.$t+e),t.fe),t.fe+=e,t.Xt.$t+=e,t.Zt+=e,t.se-=e,t.Xt.pending-=e,0===t.Xt.pending&&(t.Xt.$t=0))}};const ft=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],ct=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],lt=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],ut=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],at=[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,112,112],wt=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],ht=[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];function dt(){let t,e,n,r,i,s;function o(t,e,o,f,c,l,u,a,w,h,d){let p,b,y,k,g,v,m,z,S,_,I,C,A,V,E;_=0,g=o;do{n[t[e+_]]++,_++,g--}while(0!==g);if(n[0]==o)return u[0]=-1,a[0]=0,0;for(z=a[0],v=1;15>=v&&0===n[v];v++);for(m=v,v>z&&(z=v),g=15;0!==g&&0===n[g];g--);for(y=g,z>g&&(z=g),a[0]=z,V=1<v;v++,V<<=1)if(0>(V-=n[v]))return-3;if(0>(V-=n[g]))return-3;for(n[g]+=V,s[1]=v=0,_=1,A=2;0!=--g;)s[A]=v+=n[_],A++,_++;g=0,_=0;do{0!==(v=t[e+_])&&(d[s[v]++]=g),_++}while(++g=m;m++)for(p=n[m];0!=p--;){for(;m>C+z;){if(k++,C+=z,E=y-C,E=E>z?z:E,(b=1<<(v=m-C))>p+1&&(b-=p+1,A=m,E>v))for(;++vn[++A];)b-=n[A];if(E=1<1440)return-3;i[k]=I=h[0],h[0]+=E,0!==k?(s[k]=g,r[0]=v,r[1]=z,v=g>>>C-z,r[2]=I-i[k-1]-v,w.set(r,3*(i[k-1]+v))):u[0]=I}for(r[1]=m-C,o>_?d[_]d[_]?0:96,r[2]=d[_++]):(r[0]=l[d[_]-f]+16+64,r[2]=c[d[_++]-f]):r[0]=192,b=1<>>C;E>v;v+=b)w.set(r,3*(I+v));for(v=1<>>=1)g^=v;for(g^=v,S=(1<c;c++)e[c]=0;for(c=0;16>c;c++)n[c]=0;for(c=0;3>c;c++)r[c]=0;i.set(n.subarray(0,15),0),s.set(n.subarray(0,16),0)}this.ce=(n,r,i,s,f)=>{let l;return c(19),t[0]=0,l=o(n,0,19,19,null,null,i,r,s,t,e),-3==l?f.Qt=\"oversubscribed dynamic bit lengths tree\":-5!=l&&0!==r[0]||(f.Qt=\"incomplete dynamic bit lengths tree\",l=-3),l},this.le=(n,r,i,s,f,l,u,a,w)=>{let h;return c(288),t[0]=0,h=o(i,0,n,257,ut,at,l,s,a,t,e),0!=h||0===s[0]?(-3==h?w.Qt=\"oversubscribed literal/length tree\":-4!=h&&(w.Qt=\"incomplete literal/length tree\",h=-3),h):(c(288),h=o(i,n,r,0,wt,ht,u,f,a,t,e),0!=h||0===f[0]&&n>257?(-3==h?w.Qt=\"oversubscribed distance tree\":-5==h?(w.Qt=\"incomplete distance tree\",h=-3):-4!=h&&(w.Qt=\"empty distance tree with lengths\",h=-3),h):0)}}function pt(){const t=this;let e,n,r,i,s=0,o=0,f=0,c=0,l=0,u=0,a=0,w=0,h=0,d=0;function p(t,e,n,r,i,s,o,f){let c,l,u,a,w,h,d,p,b,y,k,g,v,m,z,S;d=f.oe,p=f.Gt,w=o.ue,h=o.ae,b=o.write,y=bh;)p--,w|=(255&f.we(d++))<>=l[S+1],h-=l[S+1],0!=(16&a)){for(a&=15,v=l[S+2]+(w&ft[a]),w>>=a,h-=a;15>h;)p--,w|=(255&f.we(d++))<>=l[S+1],h-=l[S+1],0!=(16&a)){for(a&=15;a>h;)p--,w|=(255&f.we(d++))<>=a,h-=a,y-=v,m>b){z=b-m;do{z+=o.end}while(0>z);if(a=o.end-z,v>a){if(v-=a,b-z>0&&a>b-z)do{o.he[b++]=o.he[z++]}while(0!=--a);else o.he.set(o.he.subarray(z,z+a),b),b+=a,z+=a,a=0;z=0}}else z=b-m,b-z>0&&2>b-z?(o.he[b++]=o.he[z++],o.he[b++]=o.he[z++],v-=2):(o.he.set(o.he.subarray(z,z+2),b),b+=2,z+=2,v-=2);if(b-z>0&&v>b-z)do{o.he[b++]=o.he[z++]}while(0!=--v);else o.he.set(o.he.subarray(z,z+v),b),b+=v,z+=v,v=0;break}if(0!=(64&a))return f.Qt=\"invalid distance code\",v=f.Gt-p,v=v>h>>3?h>>3:v,p+=v,d-=v,h-=v<<3,o.ue=w,o.ae=h,f.Gt=p,f.Yt+=d-f.oe,f.oe=d,o.write=b,-3;c+=l[S+2],c+=w&ft[a],S=3*(u+c),a=l[S]}break}if(0!=(64&a))return 0!=(32&a)?(v=f.Gt-p,v=v>h>>3?h>>3:v,p+=v,d-=v,h-=v<<3,o.ue=w,o.ae=h,f.Gt=p,f.Yt+=d-f.oe,f.oe=d,o.write=b,1):(f.Qt=\"invalid literal/length code\",v=f.Gt-p,v=v>h>>3?h>>3:v,p+=v,d-=v,h-=v<<3,o.ue=w,o.ae=h,f.Gt=p,f.Yt+=d-f.oe,f.oe=d,o.write=b,-3);if(c+=l[S+2],c+=w&ft[a],S=3*(u+c),0===(a=l[S])){w>>=l[S+1],h-=l[S+1],o.he[b++]=l[S+2],y--;break}}else w>>=l[S+1],h-=l[S+1],o.he[b++]=l[S+2],y--}while(y>=258&&p>=10);return v=f.Gt-p,v=v>h>>3?h>>3:v,p+=v,d-=v,h-=v<<3,o.ue=w,o.ae=h,f.Gt=p,f.Yt+=d-f.oe,f.oe=d,o.write=b,0}t.init=(t,s,o,f,c,l)=>{e=0,a=t,w=s,r=o,h=f,i=c,d=l,n=null},t.de=(t,b,y)=>{let k,g,v,m,z,S,_,I=0,C=0,A=0;for(A=b.oe,m=b.Gt,I=t.ue,C=t.ae,z=t.write,S=z=258&&m>=10&&(t.ue=I,t.ae=C,b.Gt=m,b.Yt+=A-b.oe,b.oe=A,t.write=z,y=p(a,w,r,h,i,d,t,b),A=b.oe,m=b.Gt,I=t.ue,C=t.ae,z=t.write,S=zC;){if(0===m)return t.ue=I,t.ae=C,b.Gt=m,b.Yt+=A-b.oe,b.oe=A,t.write=z,t.pe(b,y);y=0,m--,I|=(255&b.we(A++))<>>=n[g+1],C-=n[g+1],v=n[g],0===v){c=n[g+2],e=6;break}if(0!=(16&v)){l=15&v,s=n[g+2],e=2;break}if(0==(64&v)){f=v,o=g/3+n[g+2];break}if(0!=(32&v)){e=7;break}return e=9,b.Qt=\"invalid literal/length code\",y=-3,t.ue=I,t.ae=C,b.Gt=m,b.Yt+=A-b.oe,b.oe=A,t.write=z,t.pe(b,y);case 2:for(k=l;k>C;){if(0===m)return t.ue=I,t.ae=C,b.Gt=m,b.Yt+=A-b.oe,b.oe=A,t.write=z,t.pe(b,y);y=0,m--,I|=(255&b.we(A++))<>=k,C-=k,f=w,n=i,o=d,e=3;case 3:for(k=f;k>C;){if(0===m)return t.ue=I,t.ae=C,b.Gt=m,b.Yt+=A-b.oe,b.oe=A,t.write=z,t.pe(b,y);y=0,m--,I|=(255&b.we(A++))<>=n[g+1],C-=n[g+1],v=n[g],0!=(16&v)){l=15&v,u=n[g+2],e=4;break}if(0==(64&v)){f=v,o=g/3+n[g+2];break}return e=9,b.Qt=\"invalid distance code\",y=-3,t.ue=I,t.ae=C,b.Gt=m,b.Yt+=A-b.oe,b.oe=A,t.write=z,t.pe(b,y);case 4:for(k=l;k>C;){if(0===m)return t.ue=I,t.ae=C,b.Gt=m,b.Yt+=A-b.oe,b.oe=A,t.write=z,t.pe(b,y);y=0,m--,I|=(255&b.we(A++))<>=k,C-=k,e=5;case 5:for(_=z-u;0>_;)_+=t.end;for(;0!==s;){if(0===S&&(z==t.end&&0!==t.read&&(z=0,S=z7&&(C-=8,m++,A--),t.write=z,y=t.pe(b,y),z=t.write,S=z{}}dt.ye=(t,e,n,r)=>(t[0]=9,e[0]=5,n[0]=ct,r[0]=lt,0);const bt=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function yt(t,e){const n=this;let r,s=0,o=0,c=0,l=0;const u=[0],a=[0],w=new pt;let h=0,d=new f(4320);const p=new dt;n.ae=0,n.ue=0,n.he=new i(e),n.end=e,n.read=0,n.write=0,n.reset=(t,e)=>{e&&(e[0]=0),6==s&&w.be(t),s=0,n.ae=0,n.ue=0,n.read=n.write=0},n.reset(t,null),n.pe=(t,e)=>{let r,i,s;return i=t.fe,s=n.read,r=(s>n.write?n.end:n.write)-s,r>t.se&&(r=t.se),0!==r&&-5==e&&(e=0),t.se-=r,t.Zt+=r,t.re.set(n.he.subarray(s,s+r),i),i+=r,s+=r,s==n.end&&(s=0,n.write==n.end&&(n.write=0),r=n.write-s,r>t.se&&(r=t.se),0!==r&&-5==e&&(e=0),t.se-=r,t.Zt+=r,t.re.set(n.he.subarray(s,s+r),i),i+=r,s+=r),t.fe=i,n.read=s,e},n.de=(t,e)=>{let i,f,b,y,k,g,v,m;for(y=t.oe,k=t.Gt,f=n.ue,b=n.ae,g=n.write,v=gb;){if(0===k)return n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e);e=0,k--,f|=(255&t.we(y++))<>>1){case 0:f>>>=3,b-=3,i=7&b,f>>>=i,b-=i,s=1;break;case 1:z=[],S=[],_=[[]],I=[[]],dt.ye(z,S,_,I),w.init(z[0],S[0],_[0],0,I[0],0),f>>>=3,b-=3,s=6;break;case 2:f>>>=3,b-=3,s=3;break;case 3:return f>>>=3,b-=3,s=9,t.Qt=\"invalid block type\",e=-3,n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e)}break;case 1:for(;32>b;){if(0===k)return n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e);e=0,k--,f|=(255&t.we(y++))<>>16&65535)!=(65535&f))return s=9,t.Qt=\"invalid stored block lengths\",e=-3,n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e);o=65535&f,f=b=0,s=0!==o?2:0!==h?7:0;break;case 2:if(0===k)return n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e);if(0===v&&(g==n.end&&0!==n.read&&(g=0,v=gk&&(i=k),i>v&&(i=v),n.he.set(t.Jt(y,i),g),y+=i,k-=i,g+=i,v-=i,0!=(o-=i))break;s=0!==h?7:0;break;case 3:for(;14>b;){if(0===k)return n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e);e=0,k--,f|=(255&t.we(y++))<29||(i>>5&31)>29)return s=9,t.Qt=\"too many length or distance symbols\",e=-3,n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e);if(i=258+(31&i)+(i>>5&31),!r||r.lengthm;m++)r[m]=0;f>>>=14,b-=14,l=0,s=4;case 4:for(;4+(c>>>10)>l;){for(;3>b;){if(0===k)return n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e);e=0,k--,f|=(255&t.we(y++))<>>=3,b-=3}for(;19>l;)r[bt[l++]]=0;if(u[0]=7,i=p.ce(r,u,a,d,t),0!=i)return-3==(e=i)&&(r=null,s=9),n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e);l=0,s=5;case 5:for(;i=c,258+(31&i)+(i>>5&31)>l;){let o,w;for(i=u[0];i>b;){if(0===k)return n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e);e=0,k--,f|=(255&t.we(y++))<w)f>>>=i,b-=i,r[l++]=w;else{for(m=18==w?7:w-14,o=18==w?11:3;i+m>b;){if(0===k)return n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e);e=0,k--,f|=(255&t.we(y++))<>>=i,b-=i,o+=f&ft[m],f>>>=m,b-=m,m=l,i=c,m+o>258+(31&i)+(i>>5&31)||16==w&&1>m)return r=null,s=9,t.Qt=\"invalid bit length repeat\",e=-3,n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e);w=16==w?r[m-1]:0;do{r[m++]=w}while(0!=--o);l=m}}if(a[0]=-1,C=[],A=[],V=[],E=[],C[0]=9,A[0]=6,i=c,i=p.le(257+(31&i),1+(i>>5&31),r,C,A,V,E,d,t),0!=i)return-3==i&&(r=null,s=9),e=i,n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e);w.init(C[0],A[0],d,V[0],d,E[0]),s=6;case 6:if(n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,1!=(e=w.de(n,t,e)))return n.pe(t,e);if(e=0,w.be(t),y=t.oe,k=t.Gt,f=n.ue,b=n.ae,g=n.write,v=g{n.reset(t,null),n.he=null,d=null},n.ke=(t,e,r)=>{n.he.set(t.subarray(e,e+r),0),n.read=n.write=r},n.ge=()=>1==s?1:0}const kt=[0,0,255,255];function gt(){const t=this;function e(t){return t&&t.ve?(t.Yt=t.Zt=0,t.Qt=null,t.ve.mode=7,t.ve.me.reset(t,null),0):-2}t.mode=0,t.method=0,t.ze=[0],t.Se=0,t.marker=0,t._e=0,t.Ie=e=>(t.me&&t.me.be(e),t.me=null,0),t.Ce=(n,r)=>(n.Qt=null,t.me=null,8>r||r>15?(t.Ie(n),-2):(t._e=r,n.ve.me=new yt(n,1<{let n,r;if(!t||!t.ve||!t.ie)return-2;const i=t.ve;for(e=4==e?-5:0,n=-5;;)switch(i.mode){case 0:if(0===t.Gt)return n;if(n=e,t.Gt--,t.Yt++,8!=(15&(i.method=t.we(t.oe++)))){i.mode=13,t.Qt=\"unknown compression method\",i.marker=5;break}if(8+(i.method>>4)>i._e){i.mode=13,t.Qt=\"invalid win size\",i.marker=5;break}i.mode=1;case 1:if(0===t.Gt)return n;if(n=e,t.Gt--,t.Yt++,r=255&t.we(t.oe++),((i.method<<8)+r)%31!=0){i.mode=13,t.Qt=\"incorrect header check\",i.marker=5;break}if(0==(32&r)){i.mode=7;break}i.mode=2;case 2:if(0===t.Gt)return n;n=e,t.Gt--,t.Yt++,i.Se=(255&t.we(t.oe++))<<24&4278190080,i.mode=3;case 3:if(0===t.Gt)return n;n=e,t.Gt--,t.Yt++,i.Se+=(255&t.we(t.oe++))<<16&16711680,i.mode=4;case 4:if(0===t.Gt)return n;n=e,t.Gt--,t.Yt++,i.Se+=(255&t.we(t.oe++))<<8&65280,i.mode=5;case 5:return 0===t.Gt?n:(n=e,t.Gt--,t.Yt++,i.Se+=255&t.we(t.oe++),i.mode=6,2);case 6:return i.mode=13,t.Qt=\"need dictionary\",i.marker=0,-2;case 7:if(n=i.me.de(t,n),-3==n){i.mode=13,i.marker=0;break}if(0==n&&(n=e),1!=n)return n;n=e,i.me.reset(t,i.ze),i.mode=12;case 12:return 1;case 13:return-3;default:return-2}},t.Ae=(t,e,n)=>{let r=0,i=n;if(!t||!t.ve||6!=t.ve.mode)return-2;const s=t.ve;return i<1<{let n,r,i,s,o;if(!t||!t.ve)return-2;const f=t.ve;if(13!=f.mode&&(f.mode=13,f.marker=0),0===(n=t.Gt))return-5;for(r=t.oe,i=f.marker;0!==n&&4>i;)t.we(r)==kt[i]?i++:i=0!==t.we(r)?0:4-i,r++,n--;return t.Yt+=r-t.oe,t.oe=r,t.Gt=n,f.marker=i,4!=i?-3:(s=t.Yt,o=t.Zt,e(t),t.Yt=s,t.Zt=o,f.mode=7,0)},t.Ee=t=>t&&t.ve&&t.ve.me?t.ve.me.ge():-2}function vt(){}function mt(t){const e=new vt,s=t&&t.et?n.floor(2*t.et):131072,o=new i(s);let f=!1;e.Ce(),e.re=o,this.append=(t,n)=>{const c=[];let l,u,a=0,w=0,h=0;if(0!==t.length){e.oe=0,e.ie=t,e.Gt=t.length;do{if(e.fe=0,e.se=s,0!==e.Gt||f||(e.oe=0,f=!0),l=e.nt(0),f&&-5===l){if(0!==e.Gt)throw new r(\"inflating: bad input\")}else if(0!==l&&1!==l)throw new r(\"inflating: \"+e.Qt);if((f||1===l)&&e.Gt===t.length)throw new r(\"inflating: bad input\");e.fe&&(e.fe===s?c.push(new i(o)):c.push(o.slice(0,e.fe))),h+=e.fe,n&&e.oe>0&&e.oe!=a&&(n(e.oe),a=e.oe)}while(e.Gt>0||0===e.se);return c.length>1?(u=new i(h),c.forEach((t=>{u.set(t,w),w+=t.length}))):u=c[0]||new i(0),u}},this.flush=()=>{e.Ie()}}vt.prototype={Ce:function(t){const e=this;return e.ve=new gt,t||(t=15),e.ve.Ce(e,t)},nt:function(t){const e=this;return e.ve?e.ve.nt(e,t):-2},Ie:function(){const t=this;if(!t.ve)return-2;const e=t.ve.Ie(t);return t.ve=null,e},Ve:function(){const t=this;return t.ve?t.ve.Ve(t):-2},Ae:function(t,e){const n=this;return n.ve?n.ve.Ae(n,t,e):-2},we:function(t){return this.ie[t]},Jt:function(t,e){return this.ie.subarray(t,t+e)}},self.initCodec=()=>{self.Deflate=ot,self.Inflate=mt};\\n'],{type:\"text/javascript\"}));t({workerScripts:{inflate:[e],deflate:[e]}})}};export{t as default};\n","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/* global Blob, FileReader, atob, btoa, XMLHttpRequest, document, fetch */\n\nconst ERR_HTTP_STATUS = \"HTTP error \";\nconst ERR_HTTP_RANGE = \"HTTP Range not supported\";\n\nconst CONTENT_TYPE_TEXT_PLAIN = \"text/plain\";\nconst HTTP_HEADER_CONTENT_LENGTH = \"Content-Length\";\nconst HTTP_HEADER_CONTENT_RANGE = \"Content-Range\";\nconst HTTP_HEADER_ACCEPT_RANGES = \"Accept-Ranges\";\nconst HTTP_HEADER_RANGE = \"Range\";\nconst HTTP_METHOD_HEAD = \"HEAD\";\nconst HTTP_METHOD_GET = \"GET\";\nconst HTTP_RANGE_UNIT = \"bytes\";\n\nclass Stream {\n\n\tconstructor() {\n\t\tthis.size = 0;\n\t}\n\n\tinit() {\n\t\tthis.initialized = true;\n\t}\n}\n\nclass Reader extends Stream {\n}\n\nclass Writer extends Stream {\n\n\twriteUint8Array(array) {\n\t\tthis.size += array.length;\n\t}\n}\n\nclass TextReader extends Reader {\n\n\tconstructor(text) {\n\t\tsuper();\n\t\tthis.blobReader = new BlobReader(new Blob([text], { type: CONTENT_TYPE_TEXT_PLAIN }));\n\t}\n\n\tasync init() {\n\t\tsuper.init();\n\t\tthis.blobReader.init();\n\t\tthis.size = this.blobReader.size;\n\t}\n\n\tasync readUint8Array(offset, length) {\n\t\treturn this.blobReader.readUint8Array(offset, length);\n\t}\n}\n\nclass TextWriter extends Writer {\n\n\tconstructor(encoding) {\n\t\tsuper();\n\t\tthis.encoding = encoding;\n\t\tthis.blob = new Blob([], { type: CONTENT_TYPE_TEXT_PLAIN });\n\t}\n\n\tasync writeUint8Array(array) {\n\t\tsuper.writeUint8Array(array);\n\t\tthis.blob = new Blob([this.blob, array.buffer], { type: CONTENT_TYPE_TEXT_PLAIN });\n\t}\n\n\tgetData() {\n\t\tif (this.blob.text) {\n\t\t\treturn this.blob.text();\n\t\t} else {\n\t\t\tconst reader = new FileReader();\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\treader.onload = event => resolve(event.target.result);\n\t\t\t\treader.onerror = () => reject(reader.error);\n\t\t\t\treader.readAsText(this.blob, this.encoding);\n\t\t\t});\n\t\t}\n\t}\n}\n\nclass Data64URIReader extends Reader {\n\n\tconstructor(dataURI) {\n\t\tsuper();\n\t\tthis.dataURI = dataURI;\n\t\tlet dataEnd = dataURI.length;\n\t\twhile (dataURI.charAt(dataEnd - 1) == \"=\") {\n\t\t\tdataEnd--;\n\t\t}\n\t\tthis.dataStart = dataURI.indexOf(\",\") + 1;\n\t\tthis.size = Math.floor((dataEnd - this.dataStart) * 0.75);\n\t}\n\n\tasync readUint8Array(offset, length) {\n\t\tconst dataArray = new Uint8Array(length);\n\t\tconst start = Math.floor(offset / 3) * 4;\n\t\tconst bytes = atob(this.dataURI.substring(start + this.dataStart, Math.ceil((offset + length) / 3) * 4 + this.dataStart));\n\t\tconst delta = offset - Math.floor(start / 4) * 3;\n\t\tfor (let indexByte = delta; indexByte < delta + length; indexByte++) {\n\t\t\tdataArray[indexByte - delta] = bytes.charCodeAt(indexByte);\n\t\t}\n\t\treturn dataArray;\n\t}\n}\n\nclass Data64URIWriter extends Writer {\n\n\tconstructor(contentType) {\n\t\tsuper();\n\t\tthis.data = \"data:\" + (contentType || \"\") + \";base64,\";\n\t\tthis.pending = [];\n\t}\n\n\tasync writeUint8Array(array) {\n\t\tsuper.writeUint8Array(array);\n\t\tlet indexArray = 0;\n\t\tlet dataString = this.pending;\n\t\tconst delta = this.pending.length;\n\t\tthis.pending = \"\";\n\t\tfor (indexArray = 0; indexArray < (Math.floor((delta + array.length) / 3) * 3) - delta; indexArray++) {\n\t\t\tdataString += String.fromCharCode(array[indexArray]);\n\t\t}\n\t\tfor (; indexArray < array.length; indexArray++) {\n\t\t\tthis.pending += String.fromCharCode(array[indexArray]);\n\t\t}\n\t\tif (dataString.length > 2) {\n\t\t\tthis.data += btoa(dataString);\n\t\t} else {\n\t\t\tthis.pending = dataString;\n\t\t}\n\t}\n\n\tgetData() {\n\t\treturn this.data + btoa(this.pending);\n\t}\n}\n\nclass BlobReader extends Reader {\n\n\tconstructor(blob) {\n\t\tsuper();\n\t\tthis.blob = blob;\n\t\tthis.size = blob.size;\n\t}\n\n\tasync readUint8Array(offset, length) {\n\t\tif (this.blob.arrayBuffer) {\n\t\t\treturn new Uint8Array(await this.blob.slice(offset, offset + length).arrayBuffer());\n\t\t} else {\n\t\t\tconst reader = new FileReader();\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\treader.onload = event => resolve(new Uint8Array(event.target.result));\n\t\t\t\treader.onerror = () => reject(reader.error);\n\t\t\t\treader.readAsArrayBuffer(this.blob.slice(offset, offset + length));\n\t\t\t});\n\t\t}\n\t}\n}\n\nclass BlobWriter extends Writer {\n\n\tconstructor(contentType) {\n\t\tsuper();\n\t\tthis.contentType = contentType;\n\t\tthis.arrayBuffers = [];\n\t}\n\n\tasync writeUint8Array(array) {\n\t\tsuper.writeUint8Array(array);\n\t\tthis.arrayBuffers.push(array.buffer);\n\t}\n\n\tgetData() {\n\t\tif (!this.blob) {\n\t\t\tthis.blob = new Blob(this.arrayBuffers, { type: this.contentType });\n\t\t}\n\t\treturn this.blob;\n\t}\n}\n\nclass WritableStreamWriter extends Writer {\n\tconstructor(writableStream) {\n\t\tsuper();\n\t\tthis.writableStream = writableStream;\n\t\tthis.writer = writableStream.getWriter();\n\t}\n\n\tasync writeUint8Array(array) {\n\t\tawait this.writer.ready;\n\t\treturn this.writer.write(array);\n\t}\n\n\tasync getData() {\n\t\tawait this.writer.ready;\n\t\tawait this.writer.close();\n\t\treturn this.writableStream;\n\t}\n}\n\nclass FetchReader extends Reader {\n\n\tconstructor(url, options) {\n\t\tsuper();\n\t\tthis.url = url;\n\t\tthis.preventHeadRequest = options.preventHeadRequest;\n\t\tthis.useRangeHeader = options.useRangeHeader;\n\t\tthis.forceRangeRequests = options.forceRangeRequests;\n\t\tthis.options = Object.assign({}, options);\n\t\tdelete this.options.preventHeadRequest;\n\t\tdelete this.options.useRangeHeader;\n\t\tdelete this.options.forceRangeRequests;\n\t\tdelete this.options.useXHR;\n\t}\n\n\tasync init() {\n\t\tsuper.init();\n\t\tawait initHttpReader(this, sendFetchRequest, getFetchRequestData);\n\t}\n\n\tasync readUint8Array(index, length) {\n\t\treturn readUint8ArrayHttpReader(this, index, length, sendFetchRequest, getFetchRequestData);\n\t}\n}\n\nclass XHRReader extends Reader {\n\n\tconstructor(url, options) {\n\t\tsuper();\n\t\tthis.url = url;\n\t\tthis.preventHeadRequest = options.preventHeadRequest;\n\t\tthis.useRangeHeader = options.useRangeHeader;\n\t\tthis.forceRangeRequests = options.forceRangeRequests;\n\t\tthis.options = options;\n\t}\n\n\tasync init() {\n\t\tsuper.init();\n\t\tawait initHttpReader(this, sendXMLHttpRequest, getXMLHttpRequestData);\n\t}\n\n\tasync readUint8Array(index, length) {\n\t\treturn readUint8ArrayHttpReader(this, index, length, sendXMLHttpRequest, getXMLHttpRequestData);\n\t}\n}\n\nasync function initHttpReader(httpReader, sendRequest, getRequestData) {\n\tif (isHttpFamily(httpReader.url) && (httpReader.useRangeHeader || httpReader.forceRangeRequests)) {\n\t\tconst response = await sendRequest(HTTP_METHOD_GET, httpReader, getRangeHeaders(httpReader));\n\t\tif (!httpReader.forceRangeRequests && response.headers.get(HTTP_HEADER_ACCEPT_RANGES) != HTTP_RANGE_UNIT) {\n\t\t\tthrow new Error(ERR_HTTP_RANGE);\n\t\t} else {\n\t\t\tlet contentSize;\n\t\t\tconst contentRangeHeader = response.headers.get(HTTP_HEADER_CONTENT_RANGE);\n\t\t\tif (contentRangeHeader) {\n\t\t\t\tconst splitHeader = contentRangeHeader.trim().split(/\\s*\\/\\s*/);\n\t\t\t\tif (splitHeader.length) {\n\t\t\t\t\tconst headerValue = splitHeader[1];\n\t\t\t\t\tif (headerValue && headerValue != \"*\") {\n\t\t\t\t\t\tcontentSize = Number(headerValue);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (contentSize === undefined) {\n\t\t\t\tawait getContentLength(httpReader, sendRequest, getRequestData);\n\t\t\t} else {\n\t\t\t\thttpReader.size = contentSize;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tawait getContentLength(httpReader, sendRequest, getRequestData);\n\t}\n}\n\nasync function readUint8ArrayHttpReader(httpReader, index, length, sendRequest, getRequestData) {\n\tif (httpReader.useRangeHeader || httpReader.forceRangeRequests) {\n\t\tconst response = await sendRequest(HTTP_METHOD_GET, httpReader, getRangeHeaders(httpReader, index, length));\n\t\tif (response.status != 206) {\n\t\t\tthrow new Error(ERR_HTTP_RANGE);\n\t\t}\n\t\treturn new Uint8Array(await response.arrayBuffer());\n\t} else {\n\t\tif (!httpReader.data) {\n\t\t\tawait getRequestData(httpReader, httpReader.options);\n\t\t}\n\t\treturn new Uint8Array(httpReader.data.subarray(index, index + length));\n\t}\n}\n\nfunction getRangeHeaders(httpReader, index = 0, length = 1) {\n\treturn Object.assign({}, getHeaders(httpReader), { [HTTP_HEADER_RANGE]: HTTP_RANGE_UNIT + \"=\" + index + \"-\" + (index + length - 1) });\n}\n\nfunction getHeaders(httpReader) {\n\tlet headers = httpReader.options.headers;\n\tif (headers) {\n\t\tif (Symbol.iterator in headers) {\n\t\t\treturn Object.fromEntries(headers);\n\t\t} else {\n\t\t\treturn headers;\n\t\t}\n\t}\n}\n\nasync function getFetchRequestData(httpReader) {\n\tawait getRequestData(httpReader, sendFetchRequest);\n}\n\nasync function getXMLHttpRequestData(httpReader) {\n\tawait getRequestData(httpReader, sendXMLHttpRequest);\n}\n\nasync function getRequestData(httpReader, sendRequest) {\n\tconst response = await sendRequest(HTTP_METHOD_GET, httpReader, getHeaders(httpReader));\n\thttpReader.data = new Uint8Array(await response.arrayBuffer());\n\tif (!httpReader.size) {\n\t\thttpReader.size = httpReader.data.length;\n\t}\n}\n\nasync function getContentLength(httpReader, sendRequest, getRequestData) {\n\tif (httpReader.preventHeadRequest) {\n\t\tawait getRequestData(httpReader, httpReader.options);\n\t} else {\n\t\tconst response = await sendRequest(HTTP_METHOD_HEAD, httpReader, getHeaders(httpReader));\n\t\tconst contentLength = response.headers.get(HTTP_HEADER_CONTENT_LENGTH);\n\t\tif (contentLength) {\n\t\t\thttpReader.size = Number(contentLength);\n\t\t} else {\n\t\t\tawait getRequestData(httpReader, httpReader.options);\n\t\t}\n\t}\n}\n\nasync function sendFetchRequest(method, { options, url }, headers) {\n\tconst response = await fetch(url, Object.assign({}, options, { method, headers }));\n\tif (response.status < 400) {\n\t\treturn response;\n\t} else {\n\t\tthrow new Error(ERR_HTTP_STATUS + (response.statusText || response.status));\n\t}\n}\n\nfunction sendXMLHttpRequest(method, { url }, headers) {\n\treturn new Promise((resolve, reject) => {\n\t\tconst request = new XMLHttpRequest();\n\t\trequest.addEventListener(\"load\", () => {\n\t\t\tif (request.status < 400) {\n\t\t\t\tconst headers = [];\n\t\t\t\trequest.getAllResponseHeaders().trim().split(/[\\r\\n]+/).forEach(header => {\n\t\t\t\t\tconst splitHeader = header.trim().split(/\\s*:\\s*/);\n\t\t\t\t\tsplitHeader[0] = splitHeader[0].trim().replace(/^[a-z]|-[a-z]/g, value => value.toUpperCase());\n\t\t\t\t\theaders.push(splitHeader);\n\t\t\t\t});\n\t\t\t\tresolve({\n\t\t\t\t\tstatus: request.status,\n\t\t\t\t\tarrayBuffer: () => request.response,\n\t\t\t\t\theaders: new Map(headers)\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treject(new Error(ERR_HTTP_STATUS + (request.statusText || request.status)));\n\t\t\t}\n\t\t}, false);\n\t\trequest.addEventListener(\"error\", event => reject(event.detail.error), false);\n\t\trequest.open(method, url);\n\t\tif (headers) {\n\t\t\tfor (const entry of Object.entries(headers)) {\n\t\t\t\trequest.setRequestHeader(entry[0], entry[1]);\n\t\t\t}\n\t\t}\n\t\trequest.responseType = \"arraybuffer\";\n\t\trequest.send();\n\t});\n}\n\nclass HttpReader extends Reader {\n\n\tconstructor(url, options = {}) {\n\t\tsuper();\n\t\tthis.url = url;\n\t\tif (options.useXHR) {\n\t\t\tthis.reader = new XHRReader(url, options);\n\t\t} else {\n\t\t\tthis.reader = new FetchReader(url, options);\n\t\t}\n\t}\n\n\tset size(value) {\n\t\t// ignored\n\t}\n\n\tget size() {\n\t\treturn this.reader.size;\n\t}\n\n\tasync init() {\n\t\tsuper.init();\n\t\tawait this.reader.init();\n\t}\n\n\tasync readUint8Array(index, length) {\n\t\treturn this.reader.readUint8Array(index, length);\n\t}\n}\n\nclass HttpRangeReader extends HttpReader {\n\n\tconstructor(url, options = {}) {\n\t\toptions.useRangeHeader = true;\n\t\tsuper(url, options);\n\t}\n}\n\n\nclass Uint8ArrayReader extends Reader {\n\n\tconstructor(array) {\n\t\tsuper();\n\t\tthis.array = array;\n\t\tthis.size = array.length;\n\t}\n\n\tasync readUint8Array(index, length) {\n\t\treturn this.array.slice(index, index + length);\n\t}\n}\n\nclass Uint8ArrayWriter extends Writer {\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.array = new Uint8Array(0);\n\t}\n\n\tasync writeUint8Array(array) {\n\t\tsuper.writeUint8Array(array);\n\t\tconst previousArray = this.array;\n\t\tthis.array = new Uint8Array(previousArray.length + array.length);\n\t\tthis.array.set(previousArray);\n\t\tthis.array.set(array, previousArray.length);\n\t}\n\n\tgetData() {\n\t\treturn this.array;\n\t}\n}\n\nfunction isHttpFamily(url) {\n\tif (typeof document != \"undefined\") {\n\t\tconst anchor = document.createElement(\"a\");\n\t\tanchor.href = url;\n\t\treturn anchor.protocol == \"http:\" || anchor.protocol == \"https:\";\n\t} else {\n\t\treturn /^https?:\\/\\//i.test(url);\n\t}\n}\n\nexport {\n\tReader,\n\tWriter,\n\tTextReader,\n\tTextWriter,\n\tData64URIReader,\n\tData64URIWriter,\n\tBlobReader,\n\tBlobWriter,\n\tUint8ArrayReader,\n\tUint8ArrayWriter,\n\tHttpReader,\n\tHttpRangeReader,\n\tWritableStreamWriter,\n\tERR_HTTP_RANGE\n};\n","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nconst MAX_32_BITS = 0xffffffff;\nconst MAX_16_BITS = 0xffff;\nconst COMPRESSION_METHOD_DEFLATE = 0x08;\nconst COMPRESSION_METHOD_STORE = 0x00;\nconst COMPRESSION_METHOD_AES = 0x63;\n\nconst LOCAL_FILE_HEADER_SIGNATURE = 0x04034b50;\nconst DATA_DESCRIPTOR_RECORD_SIGNATURE = 0x08074b50;\nconst CENTRAL_FILE_HEADER_SIGNATURE = 0x02014b50;\nconst END_OF_CENTRAL_DIR_SIGNATURE = 0x06054b50;\nconst ZIP64_END_OF_CENTRAL_DIR_SIGNATURE = 0x06064b50;\nconst ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIGNATURE = 0x07064b50;\nconst END_OF_CENTRAL_DIR_LENGTH = 22;\nconst ZIP64_END_OF_CENTRAL_DIR_LOCATOR_LENGTH = 20;\nconst ZIP64_END_OF_CENTRAL_DIR_LENGTH = 56;\nconst ZIP64_END_OF_CENTRAL_DIR_TOTAL_LENGTH = END_OF_CENTRAL_DIR_LENGTH + ZIP64_END_OF_CENTRAL_DIR_LOCATOR_LENGTH + ZIP64_END_OF_CENTRAL_DIR_LENGTH;\n\nconst ZIP64_TOTAL_NUMBER_OF_DISKS = 1;\n\nconst EXTRAFIELD_TYPE_ZIP64 = 0x0001;\nconst EXTRAFIELD_TYPE_AES = 0x9901;\nconst EXTRAFIELD_TYPE_NTFS = 0x000a;\nconst EXTRAFIELD_TYPE_NTFS_TAG1 = 0x0001;\nconst EXTRAFIELD_TYPE_EXTENDED_TIMESTAMP = 0x5455;\nconst EXTRAFIELD_TYPE_UNICODE_PATH = 0x7075;\nconst EXTRAFIELD_TYPE_UNICODE_COMMENT = 0x6375;\n\nconst BITFLAG_ENCRYPTED = 0x01;\nconst BITFLAG_LEVEL = 0x06;\nconst BITFLAG_DATA_DESCRIPTOR = 0x0008;\nconst BITFLAG_LANG_ENCODING_FLAG = 0x0800;\nconst FILE_ATTR_MSDOS_DIR_MASK = 0x10;\n\nconst VERSION_DEFLATE = 0x14;\nconst VERSION_ZIP64 = 0x2D;\nconst VERSION_AES = 0x33;\n\nconst DIRECTORY_SIGNATURE = \"/\";\n\nconst MAX_DATE = new Date(2107, 11, 31);\nconst MIN_DATE = new Date(1980, 0, 1);\n\nexport {\n\tMAX_32_BITS,\n\tMAX_16_BITS,\n\tCOMPRESSION_METHOD_DEFLATE,\n\tCOMPRESSION_METHOD_STORE,\n\tCOMPRESSION_METHOD_AES,\n\tLOCAL_FILE_HEADER_SIGNATURE,\n\tDATA_DESCRIPTOR_RECORD_SIGNATURE,\n\tCENTRAL_FILE_HEADER_SIGNATURE,\n\tEND_OF_CENTRAL_DIR_SIGNATURE,\n\tZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIGNATURE,\n\tZIP64_END_OF_CENTRAL_DIR_SIGNATURE,\n\tEXTRAFIELD_TYPE_ZIP64,\n\tEXTRAFIELD_TYPE_AES,\n\tEXTRAFIELD_TYPE_NTFS,\n\tEXTRAFIELD_TYPE_NTFS_TAG1,\n\tEXTRAFIELD_TYPE_EXTENDED_TIMESTAMP,\n\tEXTRAFIELD_TYPE_UNICODE_PATH,\n\tEXTRAFIELD_TYPE_UNICODE_COMMENT,\n\tEND_OF_CENTRAL_DIR_LENGTH,\n\tZIP64_END_OF_CENTRAL_DIR_LOCATOR_LENGTH,\n\tZIP64_END_OF_CENTRAL_DIR_LENGTH,\n\tZIP64_END_OF_CENTRAL_DIR_TOTAL_LENGTH,\n\tZIP64_TOTAL_NUMBER_OF_DISKS,\n\tBITFLAG_ENCRYPTED,\n\tBITFLAG_LEVEL,\n\tBITFLAG_DATA_DESCRIPTOR,\n\tBITFLAG_LANG_ENCODING_FLAG,\n\tFILE_ATTR_MSDOS_DIR_MASK,\n\tVERSION_DEFLATE,\n\tVERSION_ZIP64,\n\tVERSION_AES,\n\tDIRECTORY_SIGNATURE,\n\tMIN_DATE,\n\tMAX_DATE\n};","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nconst CP437 = \"\\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \".split(\"\");\n\nexport default stringValue => {\n\tlet result = \"\";\n\tfor (let indexCharacter = 0; indexCharacter < stringValue.length; indexCharacter++) {\n\t\tresult += CP437[stringValue[indexCharacter]];\n\t}\n\treturn result;\n};","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/* global TextDecoder, FileReader, Blob */\n\nimport decodeCP437 from \"./cp437-decode.js\";\n\nexport default decodeText;\n\nasync function decodeText(value, encoding) {\n\tif (encoding && encoding.trim().toLowerCase() == \"cp437\") {\n\t\treturn decodeCP437(value);\n\t} else if (typeof TextDecoder == \"undefined\") {\n\t\tconst fileReader = new FileReader();\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tfileReader.onload = event => resolve(event.target.result);\n\t\t\tfileReader.onerror = () => reject(fileReader.error);\n\t\t\tfileReader.readAsText(new Blob([value]));\n\t\t});\n\t} else {\n\t\treturn new TextDecoder(encoding).decode(value);\n\t}\n}","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nconst MINIMUM_CHUNK_SIZE = 64;\nconst ERR_ABORT = \"Abort error\";\n\nexport {\n\tERR_ABORT,\n\tprocessData\n};\n\nasync function processData(codec, reader, writer, offset, inputLength, config, options) {\n\tconst chunkSize = Math.max(config.chunkSize, MINIMUM_CHUNK_SIZE);\n\treturn processChunk();\n\n\tasync function processChunk(chunkOffset = 0, outputLength = 0) {\n\t\tconst signal = options.signal;\n\t\tif (chunkOffset < inputLength) {\n\t\t\ttestAborted(signal, codec);\n\t\t\tconst inputData = await reader.readUint8Array(chunkOffset + offset, Math.min(chunkSize, inputLength - chunkOffset));\n\t\t\tconst chunkLength = inputData.length;\n\t\t\ttestAborted(signal, codec);\n\t\t\tconst data = await codec.append(inputData);\n\t\t\ttestAborted(signal, codec);\n\t\t\toutputLength += await writeData(writer, data);\n\t\t\tif (options.onprogress) {\n\t\t\t\ttry {\n\t\t\t\t\toptions.onprogress(chunkOffset + chunkLength, inputLength);\n\t\t\t\t} catch (error) {\n\t\t\t\t\t// ignored\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn processChunk(chunkOffset + chunkSize, outputLength);\n\t\t} else {\n\t\t\tconst result = await codec.flush();\n\t\t\toutputLength += await writeData(writer, result.data);\n\t\t\treturn { signature: result.signature, length: outputLength };\n\t\t}\n\t}\n}\n\nfunction testAborted(signal, codec) {\n\tif (signal && signal.aborted) {\n\t\tcodec.abort();\n\t\tthrow new Error(ERR_ABORT);\n\t}\n}\n\nasync function writeData(writer, data) {\n\tif (data.length) {\n\t\tawait writer.writeUint8Array(data);\n\t}\n\treturn data.length;\n}","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nconst PROPERTY_NAMES = [\n\t\"filename\", \"rawFilename\", \"directory\", \"encrypted\", \"compressedSize\", \"uncompressedSize\",\n\t\"lastModDate\", \"rawLastModDate\", \"comment\", \"rawComment\", \"signature\", \"extraField\",\n\t\"rawExtraField\", \"bitFlag\", \"extraFieldZip64\", \"extraFieldUnicodePath\", \"extraFieldUnicodeComment\",\n\t\"extraFieldAES\", \"filenameUTF8\", \"commentUTF8\", \"offset\", \"zip64\", \"compressionMethod\",\n\t\"extraFieldNTFS\", \"lastAccessDate\", \"creationDate\", \"extraFieldExtendedTimestamp\",\n\t\"version\", \"versionMadeBy\", \"msDosCompatible\", \"internalFileAttribute\", \"externalFileAttribute\"];\n\nexport default class Entry {\n\n\tconstructor(data) {\n\t\tPROPERTY_NAMES.forEach(name => this[name] = data[name]);\n\t}\n\n}","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/* global BigInt */\n\nimport {\n\tMAX_32_BITS,\n\tMAX_16_BITS,\n\tCOMPRESSION_METHOD_DEFLATE,\n\tCOMPRESSION_METHOD_STORE,\n\tCOMPRESSION_METHOD_AES,\n\tLOCAL_FILE_HEADER_SIGNATURE,\n\tCENTRAL_FILE_HEADER_SIGNATURE,\n\tEND_OF_CENTRAL_DIR_SIGNATURE,\n\tZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIGNATURE,\n\tZIP64_END_OF_CENTRAL_DIR_SIGNATURE,\n\tEXTRAFIELD_TYPE_ZIP64,\n\tEXTRAFIELD_TYPE_UNICODE_PATH,\n\tEXTRAFIELD_TYPE_UNICODE_COMMENT,\n\tEXTRAFIELD_TYPE_AES,\n\tEXTRAFIELD_TYPE_NTFS,\n\tEXTRAFIELD_TYPE_NTFS_TAG1,\n\tEXTRAFIELD_TYPE_EXTENDED_TIMESTAMP,\n\tEND_OF_CENTRAL_DIR_LENGTH,\n\tZIP64_END_OF_CENTRAL_DIR_LOCATOR_LENGTH,\n\tZIP64_END_OF_CENTRAL_DIR_LENGTH,\n\tBITFLAG_ENCRYPTED,\n\tBITFLAG_LEVEL,\n\tBITFLAG_DATA_DESCRIPTOR,\n\tBITFLAG_LANG_ENCODING_FLAG,\n\tFILE_ATTR_MSDOS_DIR_MASK,\n\tDIRECTORY_SIGNATURE\n} from \"./constants.js\";\nimport { getConfiguration } from \"./configuration.js\";\nimport { createCodec, CODEC_INFLATE, ERR_INVALID_SIGNATURE, ERR_INVALID_PASSWORD } from \"./codecs/codec-pool.js\";\nimport decodeText from \"./util/decode-text.js\";\nimport Crc32 from \"./codecs/crc32.js\";\nimport { processData } from \"./engine.js\";\nimport Entry from \"./zip-entry.js\";\n\nconst ERR_BAD_FORMAT = \"File format is not recognized\";\nconst ERR_EOCDR_NOT_FOUND = \"End of central directory not found\";\nconst ERR_EOCDR_ZIP64_NOT_FOUND = \"End of Zip64 central directory not found\";\nconst ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND = \"End of Zip64 central directory locator not found\";\nconst ERR_CENTRAL_DIRECTORY_NOT_FOUND = \"Central directory header not found\";\nconst ERR_LOCAL_FILE_HEADER_NOT_FOUND = \"Local file header not found\";\nconst ERR_EXTRAFIELD_ZIP64_NOT_FOUND = \"Zip64 extra field not found\";\nconst ERR_ENCRYPTED = \"File contains encrypted entry\";\nconst ERR_UNSUPPORTED_ENCRYPTION = \"Encryption method not supported\";\nconst ERR_UNSUPPORTED_COMPRESSION = \"Compression method not supported\";\nconst CHARSET_UTF8 = \"utf-8\";\nconst CHARSET_CP437 = \"cp437\";\nconst ZIP64_PROPERTIES = [\"uncompressedSize\", \"compressedSize\", \"offset\"];\n\nclass ZipReader {\n\n\tconstructor(reader, options = {}) {\n\t\tObject.assign(this, {\n\t\t\treader,\n\t\t\toptions,\n\t\t\tconfig: getConfiguration()\n\t\t});\n\t}\n\n\tasync getEntries(options = {}) {\n\t\tconst zipReader = this;\n\t\tconst reader = zipReader.reader;\n\t\tif (!reader.initialized) {\n\t\t\tawait reader.init();\n\t\t}\n\t\tif (reader.size < END_OF_CENTRAL_DIR_LENGTH) {\n\t\t\tthrow new Error(ERR_BAD_FORMAT);\n\t\t}\n\t\tconst endOfDirectoryInfo = await seekSignature(reader, END_OF_CENTRAL_DIR_SIGNATURE, reader.size, END_OF_CENTRAL_DIR_LENGTH, MAX_16_BITS * 16);\n\t\tif (!endOfDirectoryInfo) {\n\t\t\tthrow new Error(ERR_EOCDR_NOT_FOUND);\n\t\t}\n\t\tconst endOfDirectoryView = getDataView(endOfDirectoryInfo);\n\t\tlet directoryDataLength = getUint32(endOfDirectoryView, 12);\n\t\tlet directoryDataOffset = getUint32(endOfDirectoryView, 16);\n\t\tlet filesLength = getUint16(endOfDirectoryView, 8);\n\t\tlet prependedDataLength = 0;\n\t\tif (directoryDataOffset == MAX_32_BITS || directoryDataLength == MAX_32_BITS || filesLength == MAX_16_BITS) {\n\t\t\tconst endOfDirectoryLocatorArray = await readUint8Array(reader, endOfDirectoryInfo.offset - ZIP64_END_OF_CENTRAL_DIR_LOCATOR_LENGTH, ZIP64_END_OF_CENTRAL_DIR_LOCATOR_LENGTH);\n\t\t\tconst endOfDirectoryLocatorView = getDataView(endOfDirectoryLocatorArray);\n\t\t\tif (getUint32(endOfDirectoryLocatorView, 0) != ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIGNATURE) {\n\t\t\t\tthrow new Error(ERR_EOCDR_ZIP64_NOT_FOUND);\n\t\t\t}\n\t\t\tdirectoryDataOffset = getBigUint64(endOfDirectoryLocatorView, 8);\n\t\t\tlet endOfDirectoryArray = await readUint8Array(reader, directoryDataOffset, ZIP64_END_OF_CENTRAL_DIR_LENGTH);\n\t\t\tlet endOfDirectoryView = getDataView(endOfDirectoryArray);\n\t\t\tconst expectedDirectoryDataOffset = endOfDirectoryInfo.offset - ZIP64_END_OF_CENTRAL_DIR_LOCATOR_LENGTH - ZIP64_END_OF_CENTRAL_DIR_LENGTH;\n\t\t\tif (getUint32(endOfDirectoryView, 0) != ZIP64_END_OF_CENTRAL_DIR_SIGNATURE && directoryDataOffset != expectedDirectoryDataOffset) {\n\t\t\t\tconst originalDirectoryDataOffset = directoryDataOffset;\n\t\t\t\tdirectoryDataOffset = expectedDirectoryDataOffset;\n\t\t\t\tprependedDataLength = directoryDataOffset - originalDirectoryDataOffset;\n\t\t\t\tendOfDirectoryArray = await readUint8Array(reader, directoryDataOffset, ZIP64_END_OF_CENTRAL_DIR_LENGTH);\n\t\t\t\tendOfDirectoryView = getDataView(endOfDirectoryArray);\n\t\t\t}\n\t\t\tif (getUint32(endOfDirectoryView, 0) != ZIP64_END_OF_CENTRAL_DIR_SIGNATURE) {\n\t\t\t\tthrow new Error(ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND);\n\t\t\t}\n\t\t\tfilesLength = getBigUint64(endOfDirectoryView, 32);\n\t\t\tdirectoryDataLength = getBigUint64(endOfDirectoryView, 40);\n\t\t\tdirectoryDataOffset -= directoryDataLength;\n\t\t}\n\t\tif (directoryDataOffset < 0 || directoryDataOffset >= reader.size) {\n\t\t\tthrow new Error(ERR_BAD_FORMAT);\n\t\t}\n\t\tlet offset = 0;\n\t\tlet directoryArray = await readUint8Array(reader, directoryDataOffset, directoryDataLength);\n\t\tlet directoryView = getDataView(directoryArray);\n\t\tif (directoryDataLength) {\n\t\t\tconst expectedDirectoryDataOffset = endOfDirectoryInfo.offset - directoryDataLength;\n\t\t\tif (getUint32(directoryView, offset) != CENTRAL_FILE_HEADER_SIGNATURE && directoryDataOffset != expectedDirectoryDataOffset) {\n\t\t\t\tconst originalDirectoryDataOffset = directoryDataOffset;\n\t\t\t\tdirectoryDataOffset = expectedDirectoryDataOffset;\n\t\t\t\tprependedDataLength = directoryDataOffset - originalDirectoryDataOffset;\n\t\t\t\tdirectoryArray = await readUint8Array(reader, directoryDataOffset, directoryDataLength);\n\t\t\t\tdirectoryView = getDataView(directoryArray);\n\t\t\t}\n\t\t}\n\t\tif (directoryDataOffset < 0 || directoryDataOffset >= reader.size) {\n\t\t\tthrow new Error(ERR_BAD_FORMAT);\n\t\t}\n\t\tconst entries = [];\n\t\tfor (let indexFile = 0; indexFile < filesLength; indexFile++) {\n\t\t\tconst fileEntry = new ZipEntry(reader, zipReader.config, zipReader.options);\n\t\t\tif (getUint32(directoryView, offset) != CENTRAL_FILE_HEADER_SIGNATURE) {\n\t\t\t\tthrow new Error(ERR_CENTRAL_DIRECTORY_NOT_FOUND);\n\t\t\t}\n\t\t\treadCommonHeader(fileEntry, directoryView, offset + 6);\n\t\t\tconst languageEncodingFlag = Boolean(fileEntry.bitFlag.languageEncodingFlag);\n\t\t\tconst filenameOffset = offset + 46;\n\t\t\tconst extraFieldOffset = filenameOffset + fileEntry.filenameLength;\n\t\t\tconst commentOffset = extraFieldOffset + fileEntry.extraFieldLength;\n\t\t\tconst versionMadeBy = getUint16(directoryView, offset + 4);\n\t\t\tconst msDosCompatible = (versionMadeBy & 0) == 0;\n\t\t\tObject.assign(fileEntry, {\n\t\t\t\tversionMadeBy,\n\t\t\t\tmsDosCompatible,\n\t\t\t\tcompressedSize: 0,\n\t\t\t\tuncompressedSize: 0,\n\t\t\t\tcommentLength: getUint16(directoryView, offset + 32),\n\t\t\t\tdirectory: msDosCompatible && ((getUint8(directoryView, offset + 38) & FILE_ATTR_MSDOS_DIR_MASK) == FILE_ATTR_MSDOS_DIR_MASK),\n\t\t\t\toffset: getUint32(directoryView, offset + 42) + prependedDataLength,\n\t\t\t\tinternalFileAttribute: getUint32(directoryView, offset + 34),\n\t\t\t\texternalFileAttribute: getUint32(directoryView, offset + 38),\n\t\t\t\trawFilename: directoryArray.subarray(filenameOffset, extraFieldOffset),\n\t\t\t\tfilenameUTF8: languageEncodingFlag,\n\t\t\t\tcommentUTF8: languageEncodingFlag,\n\t\t\t\trawExtraField: directoryArray.subarray(extraFieldOffset, commentOffset)\n\t\t\t});\n\t\t\tconst endOffset = commentOffset + fileEntry.commentLength;\n\t\t\tfileEntry.rawComment = directoryArray.subarray(commentOffset, endOffset);\n\t\t\tconst filenameEncoding = getOptionValue(zipReader, options, \"filenameEncoding\");\n\t\t\tconst commentEncoding = getOptionValue(zipReader, options, \"commentEncoding\");\n\t\t\tconst [filename, comment] = await Promise.all([\n\t\t\t\tdecodeText(fileEntry.rawFilename, fileEntry.filenameUTF8 ? CHARSET_UTF8 : filenameEncoding || CHARSET_CP437),\n\t\t\t\tdecodeText(fileEntry.rawComment, fileEntry.commentUTF8 ? CHARSET_UTF8 : commentEncoding || CHARSET_CP437)\n\t\t\t]);\n\t\t\tfileEntry.filename = filename;\n\t\t\tfileEntry.comment = comment;\n\t\t\tif (!fileEntry.directory && fileEntry.filename.endsWith(DIRECTORY_SIGNATURE)) {\n\t\t\t\tfileEntry.directory = true;\n\t\t\t}\n\t\t\tawait readCommonFooter(fileEntry, fileEntry, directoryView, offset + 6);\n\t\t\tconst entry = new Entry(fileEntry);\n\t\t\tentry.getData = (writer, options) => fileEntry.getData(writer, entry, options);\n\t\t\tentries.push(entry);\n\t\t\toffset = endOffset;\n\t\t\tif (options.onprogress) {\n\t\t\t\ttry {\n\t\t\t\t\toptions.onprogress(indexFile + 1, filesLength, new Entry(fileEntry));\n\t\t\t\t} catch (error) {\n\t\t\t\t\t// ignored\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn entries;\n\t}\n\n\tasync close() {\n\t}\n}\n\nexport {\n\tZipReader,\n\tERR_BAD_FORMAT,\n\tERR_EOCDR_NOT_FOUND,\n\tERR_EOCDR_ZIP64_NOT_FOUND,\n\tERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND,\n\tERR_CENTRAL_DIRECTORY_NOT_FOUND,\n\tERR_LOCAL_FILE_HEADER_NOT_FOUND,\n\tERR_EXTRAFIELD_ZIP64_NOT_FOUND,\n\tERR_ENCRYPTED,\n\tERR_UNSUPPORTED_ENCRYPTION,\n\tERR_UNSUPPORTED_COMPRESSION,\n\tERR_INVALID_SIGNATURE,\n\tERR_INVALID_PASSWORD\n};\n\nclass ZipEntry {\n\n\tconstructor(reader, config, options) {\n\t\tObject.assign(this, {\n\t\t\treader,\n\t\t\tconfig,\n\t\t\toptions\n\t\t});\n\t}\n\n\tasync getData(writer, fileEntry, options = {}) {\n\t\tconst zipEntry = this;\n\t\tconst {\n\t\t\treader,\n\t\t\toffset,\n\t\t\textraFieldAES,\n\t\t\tcompressionMethod,\n\t\t\tconfig,\n\t\t\tbitFlag,\n\t\t\tsignature,\n\t\t\trawLastModDate,\n\t\t\tcompressedSize\n\t\t} = zipEntry;\n\t\tconst localDirectory = zipEntry.localDirectory = {};\n\t\tif (!reader.initialized) {\n\t\t\tawait reader.init();\n\t\t}\n\t\tlet dataArray = await readUint8Array(reader, offset, 30);\n\t\tconst dataView = getDataView(dataArray);\n\t\tlet password = getOptionValue(zipEntry, options, \"password\");\n\t\tpassword = password && password.length && password;\n\t\tif (extraFieldAES) {\n\t\t\tif (extraFieldAES.originalCompressionMethod != COMPRESSION_METHOD_AES) {\n\t\t\t\tthrow new Error(ERR_UNSUPPORTED_COMPRESSION);\n\t\t\t}\n\t\t}\n\t\tif (compressionMethod != COMPRESSION_METHOD_STORE && compressionMethod != COMPRESSION_METHOD_DEFLATE) {\n\t\t\tthrow new Error(ERR_UNSUPPORTED_COMPRESSION);\n\t\t}\n\t\tif (getUint32(dataView, 0) != LOCAL_FILE_HEADER_SIGNATURE) {\n\t\t\tthrow new Error(ERR_LOCAL_FILE_HEADER_NOT_FOUND);\n\t\t}\n\t\treadCommonHeader(localDirectory, dataView, 4);\n\t\tdataArray = await readUint8Array(reader, offset, 30 + localDirectory.filenameLength + localDirectory.extraFieldLength);\n\t\tlocalDirectory.rawExtraField = dataArray.subarray(30 + localDirectory.filenameLength);\n\t\tawait readCommonFooter(zipEntry, localDirectory, dataView, 4);\n\t\tfileEntry.lastAccessDate = localDirectory.lastAccessDate;\n\t\tfileEntry.creationDate = localDirectory.creationDate;\n\t\tconst encrypted = zipEntry.encrypted && localDirectory.encrypted;\n\t\tconst zipCrypto = encrypted && !extraFieldAES;\n\t\tif (encrypted) {\n\t\t\tif (!zipCrypto && extraFieldAES.strength === undefined) {\n\t\t\t\tthrow new Error(ERR_UNSUPPORTED_ENCRYPTION);\n\t\t\t} else if (!password) {\n\t\t\t\tthrow new Error(ERR_ENCRYPTED);\n\t\t\t}\n\t\t}\n\t\tconst codec = await createCodec(config.Inflate, {\n\t\t\tcodecType: CODEC_INFLATE,\n\t\t\tpassword,\n\t\t\tzipCrypto,\n\t\t\tencryptionStrength: extraFieldAES && extraFieldAES.strength,\n\t\t\tsigned: getOptionValue(zipEntry, options, \"checkSignature\"),\n\t\t\tpasswordVerification: zipCrypto && (bitFlag.dataDescriptor ? ((rawLastModDate >>> 8) & 0xFF) : ((signature >>> 24) & 0xFF)),\n\t\t\tsignature,\n\t\t\tcompressed: compressionMethod != 0,\n\t\t\tencrypted,\n\t\t\tuseWebWorkers: getOptionValue(zipEntry, options, \"useWebWorkers\")\n\t\t}, config);\n\t\tif (!writer.initialized) {\n\t\t\tawait writer.init();\n\t\t}\n\t\tconst signal = getOptionValue(zipEntry, options, \"signal\");\n\t\tconst dataOffset = offset + 30 + localDirectory.filenameLength + localDirectory.extraFieldLength;\n\t\tawait processData(codec, reader, writer, dataOffset, compressedSize, config, { onprogress: options.onprogress, signal });\n\t\treturn writer.getData();\n\t}\n}\n\nfunction readCommonHeader(directory, dataView, offset) {\n\tconst rawBitFlag = directory.rawBitFlag = getUint16(dataView, offset + 2);\n\tconst encrypted = (rawBitFlag & BITFLAG_ENCRYPTED) == BITFLAG_ENCRYPTED;\n\tconst rawLastModDate = getUint32(dataView, offset + 6);\n\tObject.assign(directory, {\n\t\tencrypted,\n\t\tversion: getUint16(dataView, offset),\n\t\tbitFlag: {\n\t\t\tlevel: (rawBitFlag & BITFLAG_LEVEL) >> 1,\n\t\t\tdataDescriptor: (rawBitFlag & BITFLAG_DATA_DESCRIPTOR) == BITFLAG_DATA_DESCRIPTOR,\n\t\t\tlanguageEncodingFlag: (rawBitFlag & BITFLAG_LANG_ENCODING_FLAG) == BITFLAG_LANG_ENCODING_FLAG\n\t\t},\n\t\trawLastModDate,\n\t\tlastModDate: getDate(rawLastModDate),\n\t\tfilenameLength: getUint16(dataView, offset + 22),\n\t\textraFieldLength: getUint16(dataView, offset + 24)\n\t});\n}\n\nasync function readCommonFooter(fileEntry, directory, dataView, offset) {\n\tconst rawExtraField = directory.rawExtraField;\n\tconst extraField = directory.extraField = new Map();\n\tconst rawExtraFieldView = getDataView(new Uint8Array(rawExtraField));\n\tlet offsetExtraField = 0;\n\ttry {\n\t\twhile (offsetExtraField < rawExtraField.length) {\n\t\t\tconst type = getUint16(rawExtraFieldView, offsetExtraField);\n\t\t\tconst size = getUint16(rawExtraFieldView, offsetExtraField + 2);\n\t\t\textraField.set(type, {\n\t\t\t\ttype,\n\t\t\t\tdata: rawExtraField.slice(offsetExtraField + 4, offsetExtraField + 4 + size)\n\t\t\t});\n\t\t\toffsetExtraField += 4 + size;\n\t\t}\n\t} catch (error) {\n\t\t// ignored\n\t}\n\tconst compressionMethod = getUint16(dataView, offset + 4);\n\tdirectory.signature = getUint32(dataView, offset + 10);\n\tdirectory.uncompressedSize = getUint32(dataView, offset + 18);\n\tdirectory.compressedSize = getUint32(dataView, offset + 14);\n\tconst extraFieldZip64 = extraField.get(EXTRAFIELD_TYPE_ZIP64);\n\tif (extraFieldZip64) {\n\t\treadExtraFieldZip64(extraFieldZip64, directory);\n\t\tdirectory.extraFieldZip64 = extraFieldZip64;\n\t}\n\tconst extraFieldUnicodePath = extraField.get(EXTRAFIELD_TYPE_UNICODE_PATH);\n\tif (extraFieldUnicodePath) {\n\t\tawait readExtraFieldUnicode(extraFieldUnicodePath, \"filename\", \"rawFilename\", directory, fileEntry);\n\t\tdirectory.extraFieldUnicodePath = extraFieldUnicodePath;\n\t}\n\tconst extraFieldUnicodeComment = extraField.get(EXTRAFIELD_TYPE_UNICODE_COMMENT);\n\tif (extraFieldUnicodeComment) {\n\t\tawait readExtraFieldUnicode(extraFieldUnicodeComment, \"comment\", \"rawComment\", directory, fileEntry);\n\t\tdirectory.extraFieldUnicodeComment = extraFieldUnicodeComment;\n\t}\n\tconst extraFieldAES = extraField.get(EXTRAFIELD_TYPE_AES);\n\tif (extraFieldAES) {\n\t\treadExtraFieldAES(extraFieldAES, directory, compressionMethod);\n\t\tdirectory.extraFieldAES = extraFieldAES;\n\t} else {\n\t\tdirectory.compressionMethod = compressionMethod;\n\t}\n\tconst extraFieldNTFS = extraField.get(EXTRAFIELD_TYPE_NTFS);\n\tif (extraFieldNTFS) {\n\t\treadExtraFieldNTFS(extraFieldNTFS, directory);\n\t\tdirectory.extraFieldNTFS = extraFieldNTFS;\n\t}\n\tconst extraFieldExtendedTimestamp = extraField.get(EXTRAFIELD_TYPE_EXTENDED_TIMESTAMP);\n\tif (extraFieldExtendedTimestamp) {\n\t\treadExtraFieldExtendedTimestamp(extraFieldExtendedTimestamp, directory);\n\t\tdirectory.extraFieldExtendedTimestamp = extraFieldExtendedTimestamp;\n\t}\n}\n\nfunction readExtraFieldZip64(extraFieldZip64, directory) {\n\tdirectory.zip64 = true;\n\tconst extraFieldView = getDataView(extraFieldZip64.data);\n\textraFieldZip64.values = [];\n\tfor (let indexValue = 0; indexValue < Math.floor(extraFieldZip64.data.length / 8); indexValue++) {\n\t\textraFieldZip64.values.push(getBigUint64(extraFieldView, 0 + indexValue * 8));\n\t}\n\tconst missingProperties = ZIP64_PROPERTIES.filter(propertyName => directory[propertyName] == MAX_32_BITS);\n\tfor (let indexMissingProperty = 0; indexMissingProperty < missingProperties.length; indexMissingProperty++) {\n\t\textraFieldZip64[missingProperties[indexMissingProperty]] = extraFieldZip64.values[indexMissingProperty];\n\t}\n\tZIP64_PROPERTIES.forEach(propertyName => {\n\t\tif (directory[propertyName] == MAX_32_BITS) {\n\t\t\tif (extraFieldZip64[propertyName] !== undefined) {\n\t\t\t\tdirectory[propertyName] = extraFieldZip64[propertyName];\n\t\t\t} else {\n\t\t\t\tthrow new Error(ERR_EXTRAFIELD_ZIP64_NOT_FOUND);\n\t\t\t}\n\t\t}\n\t});\n}\n\nasync function readExtraFieldUnicode(extraFieldUnicode, propertyName, rawPropertyName, directory, fileEntry) {\n\tconst extraFieldView = getDataView(extraFieldUnicode.data);\n\textraFieldUnicode.version = getUint8(extraFieldView, 0);\n\textraFieldUnicode.signature = getUint32(extraFieldView, 1);\n\tconst crc32 = new Crc32();\n\tcrc32.append(fileEntry[rawPropertyName]);\n\tconst dataViewSignature = getDataView(new Uint8Array(4));\n\tdataViewSignature.setUint32(0, crc32.get(), true);\n\textraFieldUnicode[propertyName] = await decodeText(extraFieldUnicode.data.subarray(5));\n\textraFieldUnicode.valid = !fileEntry.bitFlag.languageEncodingFlag && extraFieldUnicode.signature == getUint32(dataViewSignature, 0);\n\tif (extraFieldUnicode.valid) {\n\t\tdirectory[propertyName] = extraFieldUnicode[propertyName];\n\t\tdirectory[propertyName + \"UTF8\"] = true;\n\t}\n}\n\nfunction readExtraFieldAES(extraFieldAES, directory, compressionMethod) {\n\tconst extraFieldView = getDataView(extraFieldAES.data);\n\textraFieldAES.vendorVersion = getUint8(extraFieldView, 0);\n\textraFieldAES.vendorId = getUint8(extraFieldView, 2);\n\tconst strength = getUint8(extraFieldView, 4);\n\textraFieldAES.strength = strength;\n\textraFieldAES.originalCompressionMethod = compressionMethod;\n\tdirectory.compressionMethod = extraFieldAES.compressionMethod = getUint16(extraFieldView, 5);\n}\n\nfunction readExtraFieldNTFS(extraFieldNTFS, directory) {\n\tconst extraFieldView = getDataView(extraFieldNTFS.data);\n\tlet offsetExtraField = 4;\n\tlet tag1Data;\n\ttry {\n\t\twhile (offsetExtraField < extraFieldNTFS.data.length && !tag1Data) {\n\t\t\tconst tagValue = getUint16(extraFieldView, offsetExtraField);\n\t\t\tconst attributeSize = getUint16(extraFieldView, offsetExtraField + 2);\n\t\t\tif (tagValue == EXTRAFIELD_TYPE_NTFS_TAG1) {\n\t\t\t\ttag1Data = extraFieldNTFS.data.slice(offsetExtraField + 4, offsetExtraField + 4 + attributeSize);\n\t\t\t}\n\t\t\toffsetExtraField += 4 + attributeSize;\n\t\t}\n\t} catch (error) {\n\t\t// ignored\n\t}\n\ttry {\n\t\tif (tag1Data && tag1Data.length == 24) {\n\t\t\tconst tag1View = getDataView(tag1Data);\n\t\t\tconst rawLastModDate = tag1View.getBigUint64(0, true);\n\t\t\tconst rawLastAccessDate = tag1View.getBigUint64(8, true);\n\t\t\tconst rawCreationDate = tag1View.getBigUint64(16, true);\n\t\t\tObject.assign(extraFieldNTFS, {\n\t\t\t\trawLastModDate,\n\t\t\t\trawLastAccessDate,\n\t\t\t\trawCreationDate\n\t\t\t});\n\t\t\tconst lastModDate = getDateNTFS(rawLastModDate);\n\t\t\tconst lastAccessDate = getDateNTFS(rawLastAccessDate);\n\t\t\tconst creationDate = getDateNTFS(rawCreationDate);\n\t\t\tconst extraFieldData = { lastModDate, lastAccessDate, creationDate };\n\t\t\tObject.assign(extraFieldNTFS, extraFieldData);\n\t\t\tObject.assign(directory, extraFieldData);\n\t\t}\n\t} catch (error) {\n\t\t// ignored\n\t}\n}\n\nfunction readExtraFieldExtendedTimestamp(extraFieldExtendedTimestamp, directory) {\n\tconst extraFieldView = getDataView(extraFieldExtendedTimestamp.data);\n\tconst flags = getUint8(extraFieldView, 0);\n\tconst timeProperties = [];\n\tconst timeRawProperties = [];\n\tif ((flags & 0x1) == 0x1) {\n\t\ttimeProperties.push(\"lastModDate\");\n\t\ttimeRawProperties.push(\"rawLastModDate\");\n\t}\n\tif ((flags & 0x2) == 0x2) {\n\t\ttimeProperties.push(\"lastAccessDate\");\n\t\ttimeRawProperties.push(\"rawLastAccessDate\");\n\t}\n\tif ((flags & 0x4) == 0x4) {\n\t\ttimeProperties.push(\"creationDate\");\n\t\ttimeRawProperties.push(\"rawCreationDate\");\n\t}\n\tlet offset = 1;\n\ttimeProperties.forEach((propertyName, indexProperty) => {\n\t\tif (extraFieldExtendedTimestamp.data.length >= offset + 4) {\n\t\t\tconst time = getUint32(extraFieldView, offset);\n\t\t\tdirectory[propertyName] = extraFieldExtendedTimestamp[propertyName] = new Date(time * 1000);\n\t\t\tconst rawPropertyName = timeRawProperties[indexProperty];\n\t\t\textraFieldExtendedTimestamp[rawPropertyName] = time;\n\t\t}\n\t\toffset += 4;\n\t});\n}\n\nasync function seekSignature(reader, signature, startOffset, minimumBytes, maximumLength) {\n\tconst signatureArray = new Uint8Array(4);\n\tconst signatureView = getDataView(signatureArray);\n\tsetUint32(signatureView, 0, signature);\n\tconst maximumBytes = minimumBytes + maximumLength;\n\treturn (await seek(minimumBytes)) || await seek(Math.min(maximumBytes, startOffset));\n\n\tasync function seek(length) {\n\t\tconst offset = startOffset - length;\n\t\tconst bytes = await readUint8Array(reader, offset, length);\n\t\tfor (let indexByte = bytes.length - minimumBytes; indexByte >= 0; indexByte--) {\n\t\t\tif (bytes[indexByte] == signatureArray[0] && bytes[indexByte + 1] == signatureArray[1] &&\n\t\t\t\tbytes[indexByte + 2] == signatureArray[2] && bytes[indexByte + 3] == signatureArray[3]) {\n\t\t\t\treturn {\n\t\t\t\t\toffset: offset + indexByte,\n\t\t\t\t\tbuffer: bytes.slice(indexByte, indexByte + minimumBytes).buffer\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction getOptionValue(zipReader, options, name) {\n\treturn options[name] === undefined ? zipReader.options[name] : options[name];\n}\n\nfunction getDate(timeRaw) {\n\tconst date = (timeRaw & 0xffff0000) >> 16, time = timeRaw & 0x0000ffff;\n\ttry {\n\t\treturn new Date(1980 + ((date & 0xFE00) >> 9), ((date & 0x01E0) >> 5) - 1, date & 0x001F, (time & 0xF800) >> 11, (time & 0x07E0) >> 5, (time & 0x001F) * 2, 0);\n\t} catch (error) {\n\t\t// ignored\n\t}\n}\n\nfunction getDateNTFS(timeRaw) {\n\treturn new Date((Number((timeRaw / BigInt(10000)) - BigInt(11644473600000))));\n}\n\nfunction getUint8(view, offset) {\n\treturn view.getUint8(offset);\n}\n\nfunction getUint16(view, offset) {\n\treturn view.getUint16(offset, true);\n}\n\nfunction getUint32(view, offset) {\n\treturn view.getUint32(offset, true);\n}\n\nfunction getBigUint64(view, offset) {\n\treturn Number(view.getBigUint64(offset, true));\n}\n\nfunction setUint32(view, offset, value) {\n\tview.setUint32(offset, value, true);\n}\n\nfunction getDataView(array) {\n\treturn new DataView(array.buffer);\n}\n\nfunction readUint8Array(reader, offset, size) {\n\treturn reader.readUint8Array(offset, size);\n}","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/* global BigInt, FileReader */\n\nimport {\n\tMAX_32_BITS,\n\tMAX_16_BITS,\n\tCOMPRESSION_METHOD_DEFLATE,\n\tCOMPRESSION_METHOD_STORE,\n\tCOMPRESSION_METHOD_AES,\n\tLOCAL_FILE_HEADER_SIGNATURE,\n\tDATA_DESCRIPTOR_RECORD_SIGNATURE,\n\tCENTRAL_FILE_HEADER_SIGNATURE,\n\tEND_OF_CENTRAL_DIR_SIGNATURE,\n\tZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIGNATURE,\n\tZIP64_END_OF_CENTRAL_DIR_SIGNATURE,\n\tZIP64_TOTAL_NUMBER_OF_DISKS,\n\tEXTRAFIELD_TYPE_AES,\n\tEXTRAFIELD_TYPE_ZIP64,\n\tEXTRAFIELD_TYPE_EXTENDED_TIMESTAMP,\n\tEXTRAFIELD_TYPE_NTFS,\n\tEXTRAFIELD_TYPE_NTFS_TAG1,\n\tEND_OF_CENTRAL_DIR_LENGTH,\n\tZIP64_END_OF_CENTRAL_DIR_TOTAL_LENGTH,\n\tBITFLAG_ENCRYPTED,\n\tBITFLAG_DATA_DESCRIPTOR,\n\tBITFLAG_LANG_ENCODING_FLAG,\n\tFILE_ATTR_MSDOS_DIR_MASK,\n\tVERSION_DEFLATE,\n\tVERSION_ZIP64,\n\tVERSION_AES,\n\tDIRECTORY_SIGNATURE,\n\tMIN_DATE,\n\tMAX_DATE\n} from \"./constants.js\";\nimport { getConfiguration } from \"./configuration.js\";\nimport { CODEC_DEFLATE, createCodec } from \"./codecs/codec-pool.js\";\nimport encodeText from \"./util/encode-text.js\";\nimport { BlobWriter } from \"./io.js\";\nimport { processData } from \"./engine.js\";\nimport Entry from \"./zip-entry.js\";\n\nconst ERR_DUPLICATED_NAME = \"File already exists\";\nconst ERR_INVALID_COMMENT = \"Zip file comment exceeds 64KB\";\nconst ERR_INVALID_ENTRY_COMMENT = \"File entry comment exceeds 64KB\";\nconst ERR_INVALID_ENTRY_NAME = \"File entry name exceeds 64KB\";\nconst ERR_INVALID_VERSION = \"Version exceeds 65535\";\nconst ERR_INVALID_ENCRYPTION_STRENGTH = \"The strength must equal 1, 2, or 3\";\nconst ERR_INVALID_EXTRAFIELD_TYPE = \"Extra field type exceeds 65535\";\nconst ERR_INVALID_EXTRAFIELD_DATA = \"Extra field data exceeds 64KB\";\nconst ERR_UNSUPPORTED_FORMAT = \"Zip64 is not supported\";\n\nconst EXTRAFIELD_DATA_AES = new Uint8Array([0x07, 0x00, 0x02, 0x00, 0x41, 0x45, 0x03, 0x00, 0x00]);\nconst EXTRAFIELD_LENGTH_ZIP64 = 24;\n\nlet workers = 0;\n\nclass ZipWriter {\n\n\tconstructor(writer, options = {}) {\n\t\tObject.assign(this, {\n\t\t\twriter,\n\t\t\toptions,\n\t\t\tconfig: getConfiguration(),\n\t\t\tfiles: new Map(),\n\t\t\toffset: writer.size,\n\t\t\tpendingCompressedSize: 0,\n\t\t\tpendingEntries: []\n\t\t});\n\t}\n\n\tasync add(name = \"\", reader, options = {}) {\n\t\tconst zipWriter = this;\n\t\tif (workers < zipWriter.config.maxWorkers) {\n\t\t\tworkers++;\n\t\t\ttry {\n\t\t\t\treturn await addFile(zipWriter, name, reader, options);\n\t\t\t} finally {\n\t\t\t\tworkers--;\n\t\t\t\tconst pendingEntry = zipWriter.pendingEntries.shift();\n\t\t\t\tif (pendingEntry) {\n\t\t\t\t\tzipWriter.add(pendingEntry.name, pendingEntry.reader, pendingEntry.options)\n\t\t\t\t\t\t.then(pendingEntry.resolve)\n\t\t\t\t\t\t.catch(pendingEntry.reject);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\treturn new Promise((resolve, reject) => zipWriter.pendingEntries.push({ name, reader, options, resolve, reject }));\n\t\t}\n\t}\n\n\tasync close(comment = new Uint8Array(0), options = {}) {\n\t\tawait closeFile(this, comment, options);\n\t\treturn this.writer.getData();\n\t}\n}\n\nexport {\n\tZipWriter,\n\tERR_DUPLICATED_NAME,\n\tERR_INVALID_COMMENT,\n\tERR_INVALID_ENTRY_NAME,\n\tERR_INVALID_ENTRY_COMMENT,\n\tERR_INVALID_VERSION,\n\tERR_INVALID_EXTRAFIELD_TYPE,\n\tERR_INVALID_EXTRAFIELD_DATA,\n\tERR_INVALID_ENCRYPTION_STRENGTH,\n\tERR_UNSUPPORTED_FORMAT\n};\n\nasync function addFile(zipWriter, name, reader, options) {\n\tname = name.trim();\n\tif (options.directory && (!name.endsWith(DIRECTORY_SIGNATURE))) {\n\t\tname += DIRECTORY_SIGNATURE;\n\t} else {\n\t\toptions.directory = name.endsWith(DIRECTORY_SIGNATURE);\n\t}\n\tif (zipWriter.files.has(name)) {\n\t\tthrow new Error(ERR_DUPLICATED_NAME);\n\t}\n\tconst rawFilename = encodeText(name);\n\tif (rawFilename.length > MAX_16_BITS) {\n\t\tthrow new Error(ERR_INVALID_ENTRY_NAME);\n\t}\n\tconst comment = options.comment || \"\";\n\tconst rawComment = encodeText(comment);\n\tif (rawComment.length > MAX_16_BITS) {\n\t\tthrow new Error(ERR_INVALID_ENTRY_COMMENT);\n\t}\n\tconst version = zipWriter.options.version || options.version || 0;\n\tif (version > MAX_16_BITS) {\n\t\tthrow new Error(ERR_INVALID_VERSION);\n\t}\n\tconst versionMadeBy = zipWriter.options.versionMadeBy || options.versionMadeBy || 20;\n\tif (versionMadeBy > MAX_16_BITS) {\n\t\tthrow new Error(ERR_INVALID_VERSION);\n\t}\n\tconst lastModDate = getOptionValue(zipWriter, options, \"lastModDate\") || new Date();\n\tconst lastAccessDate = getOptionValue(zipWriter, options, \"lastAccessDate\");\n\tconst creationDate = getOptionValue(zipWriter, options, \"creationDate\");\n\tconst password = getOptionValue(zipWriter, options, \"password\");\n\tconst encryptionStrength = getOptionValue(zipWriter, options, \"encryptionStrength\") || 3;\n\tconst zipCrypto = getOptionValue(zipWriter, options, \"zipCrypto\");\n\tif (password !== undefined && encryptionStrength !== undefined && (encryptionStrength < 1 || encryptionStrength > 3)) {\n\t\tthrow new Error(ERR_INVALID_ENCRYPTION_STRENGTH);\n\t}\n\tlet rawExtraField = new Uint8Array(0);\n\tconst extraField = options.extraField;\n\tif (extraField) {\n\t\tlet extraFieldSize = 0;\n\t\tlet offset = 0;\n\t\textraField.forEach(data => extraFieldSize += 4 + data.length);\n\t\trawExtraField = new Uint8Array(extraFieldSize);\n\t\textraField.forEach((data, type) => {\n\t\t\tif (type > MAX_16_BITS) {\n\t\t\t\tthrow new Error(ERR_INVALID_EXTRAFIELD_TYPE);\n\t\t\t}\n\t\t\tif (data.length > MAX_16_BITS) {\n\t\t\t\tthrow new Error(ERR_INVALID_EXTRAFIELD_DATA);\n\t\t\t}\n\t\t\tarraySet(rawExtraField, new Uint16Array([type]), offset);\n\t\t\tarraySet(rawExtraField, new Uint16Array([data.length]), offset + 2);\n\t\t\tarraySet(rawExtraField, data, offset + 4);\n\t\t\toffset += 4 + data.length;\n\t\t});\n\t}\n\tlet extendedTimestamp = getOptionValue(zipWriter, options, \"extendedTimestamp\");\n\tif (extendedTimestamp === undefined) {\n\t\textendedTimestamp = true;\n\t}\n\tlet maximumCompressedSize = 0;\n\tlet keepOrder = getOptionValue(zipWriter, options, \"keepOrder\");\n\tif (keepOrder === undefined) {\n\t\tkeepOrder = true;\n\t}\n\tlet uncompressedSize = 0;\n\tlet msDosCompatible = getOptionValue(zipWriter, options, \"msDosCompatible\");\n\tif (msDosCompatible === undefined) {\n\t\tmsDosCompatible = true;\n\t}\n\tconst internalFileAttribute = getOptionValue(zipWriter, options, \"internalFileAttribute\") || 0;\n\tconst externalFileAttribute = getOptionValue(zipWriter, options, \"externalFileAttribute\") || 0;\n\tif (reader) {\n\t\tif (!reader.initialized) {\n\t\t\tawait reader.init();\n\t\t}\n\t\tuncompressedSize = reader.size;\n\t\tmaximumCompressedSize = getMaximumCompressedSize(uncompressedSize);\n\t}\n\tlet zip64 = options.zip64 || zipWriter.options.zip64 || false;\n\tif (zipWriter.offset + zipWriter.pendingCompressedSize >= MAX_32_BITS ||\n\t\tuncompressedSize >= MAX_32_BITS ||\n\t\tmaximumCompressedSize >= MAX_32_BITS) {\n\t\tif (options.zip64 === false || zipWriter.options.zip64 === false || !keepOrder) {\n\t\t\tthrow new Error(ERR_UNSUPPORTED_FORMAT);\n\t\t} else {\n\t\t\tzip64 = true;\n\t\t}\n\t}\n\tzipWriter.pendingCompressedSize += maximumCompressedSize;\n\tawait Promise.resolve();\n\tconst level = getOptionValue(zipWriter, options, \"level\");\n\tconst useWebWorkers = getOptionValue(zipWriter, options, \"useWebWorkers\");\n\tconst bufferedWrite = getOptionValue(zipWriter, options, \"bufferedWrite\");\n\tlet dataDescriptor = getOptionValue(zipWriter, options, \"dataDescriptor\");\n\tlet dataDescriptorSignature = getOptionValue(zipWriter, options, \"dataDescriptorSignature\");\n\tconst signal = getOptionValue(zipWriter, options, \"signal\");\n\tif (dataDescriptor === undefined) {\n\t\tdataDescriptor = true;\n\t}\n\tif (dataDescriptor && dataDescriptorSignature === undefined) {\n\t\tdataDescriptorSignature = true;\n\t}\n\tconst fileEntry = await getFileEntry(zipWriter, name, reader, Object.assign({}, options, {\n\t\trawFilename,\n\t\trawComment,\n\t\tversion,\n\t\tversionMadeBy,\n\t\tlastModDate,\n\t\tlastAccessDate,\n\t\tcreationDate,\n\t\trawExtraField,\n\t\tzip64,\n\t\tpassword,\n\t\tlevel,\n\t\tuseWebWorkers,\n\t\tencryptionStrength,\n\t\textendedTimestamp,\n\t\tzipCrypto,\n\t\tbufferedWrite,\n\t\tkeepOrder,\n\t\tdataDescriptor,\n\t\tdataDescriptorSignature,\n\t\tsignal,\n\t\tmsDosCompatible,\n\t\tinternalFileAttribute,\n\t\texternalFileAttribute\n\t}));\n\tif (maximumCompressedSize) {\n\t\tzipWriter.pendingCompressedSize -= maximumCompressedSize;\n\t}\n\tObject.assign(fileEntry, { name, comment, extraField });\n\treturn new Entry(fileEntry);\n}\n\nasync function getFileEntry(zipWriter, name, reader, options) {\n\tconst files = zipWriter.files;\n\tconst writer = zipWriter.writer;\n\tconst previousFileEntry = Array.from(files.values()).pop();\n\tlet fileEntry = {};\n\tlet bufferedWrite;\n\tlet resolveLockUnbufferedWrite;\n\tlet resolveLockCurrentFileEntry;\n\tfiles.set(name, fileEntry);\n\ttry {\n\t\tlet lockPreviousFileEntry;\n\t\tlet fileWriter;\n\t\tlet lockCurrentFileEntry;\n\t\tif (options.keepOrder) {\n\t\t\tlockPreviousFileEntry = previousFileEntry && previousFileEntry.lock;\n\t\t}\n\t\tfileEntry.lock = lockCurrentFileEntry = new Promise(resolve => resolveLockCurrentFileEntry = resolve);\n\t\tif (options.bufferedWrite || zipWriter.lockWrite || !options.dataDescriptor) {\n\t\t\tfileWriter = new BlobWriter();\n\t\t\tfileWriter.init();\n\t\t\tbufferedWrite = true;\n\t\t} else {\n\t\t\tzipWriter.lockWrite = new Promise(resolve => resolveLockUnbufferedWrite = resolve);\n\t\t\tif (!writer.initialized) {\n\t\t\t\tawait writer.init();\n\t\t\t}\n\t\t\tfileWriter = writer;\n\t\t}\n\t\tfileEntry = await createFileEntry(reader, fileWriter, zipWriter.config, options);\n\t\tfileEntry.lock = lockCurrentFileEntry;\n\t\tfiles.set(name, fileEntry);\n\t\tfileEntry.filename = name;\n\t\tif (bufferedWrite) {\n\t\t\tlet indexWrittenData = 0;\n\t\t\tconst blob = fileWriter.getData();\n\t\t\tawait Promise.all([zipWriter.lockWrite, lockPreviousFileEntry]);\n\t\t\tlet pendingFileEntry;\n\t\t\tdo {\n\t\t\t\tpendingFileEntry = Array.from(files.values()).find(fileEntry => fileEntry.writingBufferedData);\n\t\t\t\tif (pendingFileEntry) {\n\t\t\t\t\tawait pendingFileEntry.lock;\n\t\t\t\t}\n\t\t\t} while (pendingFileEntry && pendingFileEntry.lock);\n\t\t\tfileEntry.writingBufferedData = true;\n\t\t\tif (!options.dataDescriptor) {\n\t\t\t\tconst headerLength = 26;\n\t\t\t\tconst arrayBuffer = await sliceAsArrayBuffer(blob, 0, headerLength);\n\t\t\t\tconst arrayBufferView = new DataView(arrayBuffer);\n\t\t\t\tif (!fileEntry.encrypted || options.zipCrypto) {\n\t\t\t\t\tsetUint32(arrayBufferView, 14, fileEntry.signature);\n\t\t\t\t}\n\t\t\t\tif (fileEntry.zip64) {\n\t\t\t\t\tsetUint32(arrayBufferView, 18, MAX_32_BITS);\n\t\t\t\t\tsetUint32(arrayBufferView, 22, MAX_32_BITS);\n\t\t\t\t} else {\n\t\t\t\t\tsetUint32(arrayBufferView, 18, fileEntry.compressedSize);\n\t\t\t\t\tsetUint32(arrayBufferView, 22, fileEntry.uncompressedSize);\n\t\t\t\t}\n\t\t\t\tawait writer.writeUint8Array(new Uint8Array(arrayBuffer));\n\t\t\t\tindexWrittenData = headerLength;\n\t\t\t}\n\t\t\tawait writeBlob(writer, blob, indexWrittenData);\n\t\t\tdelete fileEntry.writingBufferedData;\n\t\t}\n\t\tfileEntry.offset = zipWriter.offset;\n\t\tif (fileEntry.zip64) {\n\t\t\tconst rawExtraFieldZip64View = getDataView(fileEntry.rawExtraFieldZip64);\n\t\t\tsetBigUint64(rawExtraFieldZip64View, 20, BigInt(fileEntry.offset));\n\t\t} else if (fileEntry.offset >= MAX_32_BITS) {\n\t\t\tthrow new Error(ERR_UNSUPPORTED_FORMAT);\n\t\t}\n\t\tzipWriter.offset += fileEntry.length;\n\t\treturn fileEntry;\n\t} catch (error) {\n\t\tif ((bufferedWrite && fileEntry.writingBufferedData) || (!bufferedWrite && fileEntry.dataWritten)) {\n\t\t\terror.corruptedEntry = zipWriter.hasCorruptedEntries = true;\n\t\t\tif (fileEntry.uncompressedSize) {\n\t\t\t\tzipWriter.offset += fileEntry.uncompressedSize;\n\t\t\t}\n\t\t}\n\t\tfiles.delete(name);\n\t\tthrow error;\n\t} finally {\n\t\tresolveLockCurrentFileEntry();\n\t\tif (resolveLockUnbufferedWrite) {\n\t\t\tresolveLockUnbufferedWrite();\n\t\t}\n\t}\n}\n\nasync function createFileEntry(reader, writer, config, options) {\n\tconst {\n\t\trawFilename,\n\t\tlastAccessDate,\n\t\tcreationDate,\n\t\tpassword,\n\t\tlevel,\n\t\tzip64,\n\t\tzipCrypto,\n\t\tdataDescriptor,\n\t\tdataDescriptorSignature,\n\t\tdirectory,\n\t\tversion,\n\t\tversionMadeBy,\n\t\trawComment,\n\t\trawExtraField,\n\t\tuseWebWorkers,\n\t\tonprogress,\n\t\tsignal,\n\t\tencryptionStrength,\n\t\textendedTimestamp,\n\t\tmsDosCompatible,\n\t\tinternalFileAttribute,\n\t\texternalFileAttribute\n\t} = options;\n\tconst encrypted = Boolean(password && password.length);\n\tconst compressed = level !== 0 && !directory;\n\tlet rawExtraFieldAES;\n\tif (encrypted && !zipCrypto) {\n\t\trawExtraFieldAES = new Uint8Array(EXTRAFIELD_DATA_AES.length + 2);\n\t\tconst extraFieldAESView = getDataView(rawExtraFieldAES);\n\t\tsetUint16(extraFieldAESView, 0, EXTRAFIELD_TYPE_AES);\n\t\tarraySet(rawExtraFieldAES, EXTRAFIELD_DATA_AES, 2);\n\t\tsetUint8(extraFieldAESView, 8, encryptionStrength);\n\t} else {\n\t\trawExtraFieldAES = new Uint8Array(0);\n\t}\n\tlet rawExtraFieldNTFS;\n\tlet rawExtraFieldExtendedTimestamp;\n\tif (extendedTimestamp) {\n\t\trawExtraFieldExtendedTimestamp = new Uint8Array(9 + (lastAccessDate ? 4 : 0) + (creationDate ? 4 : 0));\n\t\tconst extraFieldExtendedTimestampView = getDataView(rawExtraFieldExtendedTimestamp);\n\t\tsetUint16(extraFieldExtendedTimestampView, 0, EXTRAFIELD_TYPE_EXTENDED_TIMESTAMP);\n\t\tsetUint16(extraFieldExtendedTimestampView, 2, rawExtraFieldExtendedTimestamp.length - 4);\n\t\tconst extraFieldExtendedTimestampFlag = 0x1 + (lastAccessDate ? 0x2 : 0) + (creationDate ? 0x4 : 0);\n\t\tsetUint8(extraFieldExtendedTimestampView, 4, extraFieldExtendedTimestampFlag);\n\t\tsetUint32(extraFieldExtendedTimestampView, 5, Math.floor(options.lastModDate.getTime() / 1000));\n\t\tif (lastAccessDate) {\n\t\t\tsetUint32(extraFieldExtendedTimestampView, 9, Math.floor(lastAccessDate.getTime() / 1000));\n\t\t}\n\t\tif (creationDate) {\n\t\t\tsetUint32(extraFieldExtendedTimestampView, 13, Math.floor(creationDate.getTime() / 1000));\n\t\t}\n\t\ttry {\n\t\t\trawExtraFieldNTFS = new Uint8Array(36);\n\t\t\tconst extraFieldNTFSView = getDataView(rawExtraFieldNTFS);\n\t\t\tconst lastModTimeNTFS = getTimeNTFS(options.lastModDate);\n\t\t\tsetUint16(extraFieldNTFSView, 0, EXTRAFIELD_TYPE_NTFS);\n\t\t\tsetUint16(extraFieldNTFSView, 2, 32);\n\t\t\tsetUint16(extraFieldNTFSView, 8, EXTRAFIELD_TYPE_NTFS_TAG1);\n\t\t\tsetUint16(extraFieldNTFSView, 10, 24);\n\t\t\tsetBigUint64(extraFieldNTFSView, 12, lastModTimeNTFS);\n\t\t\tsetBigUint64(extraFieldNTFSView, 20, getTimeNTFS(lastAccessDate) || lastModTimeNTFS);\n\t\t\tsetBigUint64(extraFieldNTFSView, 28, getTimeNTFS(creationDate) || lastModTimeNTFS);\n\t\t} catch (error) {\n\t\t\trawExtraFieldNTFS = new Uint8Array(0);\n\t\t}\n\t} else {\n\t\trawExtraFieldNTFS = rawExtraFieldExtendedTimestamp = new Uint8Array(0);\n\t}\n\tconst fileEntry = {\n\t\tversion: version || VERSION_DEFLATE,\n\t\tversionMadeBy,\n\t\tzip64,\n\t\tdirectory: Boolean(directory),\n\t\tfilenameUTF8: true,\n\t\trawFilename,\n\t\tcommentUTF8: true,\n\t\trawComment,\n\t\trawExtraFieldZip64: zip64 ? new Uint8Array(EXTRAFIELD_LENGTH_ZIP64 + 4) : new Uint8Array(0),\n\t\trawExtraFieldExtendedTimestamp,\n\t\trawExtraFieldNTFS,\n\t\trawExtraFieldAES,\n\t\trawExtraField,\n\t\textendedTimestamp,\n\t\tmsDosCompatible,\n\t\tinternalFileAttribute,\n\t\texternalFileAttribute\n\t};\n\tlet uncompressedSize = fileEntry.uncompressedSize = 0;\n\tlet bitFlag = BITFLAG_LANG_ENCODING_FLAG;\n\tif (dataDescriptor) {\n\t\tbitFlag = bitFlag | BITFLAG_DATA_DESCRIPTOR;\n\t}\n\tlet compressionMethod = COMPRESSION_METHOD_STORE;\n\tif (compressed) {\n\t\tcompressionMethod = COMPRESSION_METHOD_DEFLATE;\n\t}\n\tif (zip64) {\n\t\tfileEntry.version = fileEntry.version > VERSION_ZIP64 ? fileEntry.version : VERSION_ZIP64;\n\t}\n\tif (encrypted) {\n\t\tbitFlag = bitFlag | BITFLAG_ENCRYPTED;\n\t\tif (!zipCrypto) {\n\t\t\tfileEntry.version = fileEntry.version > VERSION_AES ? fileEntry.version : VERSION_AES;\n\t\t\tcompressionMethod = COMPRESSION_METHOD_AES;\n\t\t\tif (compressed) {\n\t\t\t\tfileEntry.rawExtraFieldAES[9] = COMPRESSION_METHOD_DEFLATE;\n\t\t\t}\n\t\t}\n\t}\n\tfileEntry.compressionMethod = compressionMethod;\n\tconst headerArray = fileEntry.headerArray = new Uint8Array(26);\n\tconst headerView = getDataView(headerArray);\n\tsetUint16(headerView, 0, fileEntry.version);\n\tsetUint16(headerView, 2, bitFlag);\n\tsetUint16(headerView, 4, compressionMethod);\n\tconst dateArray = new Uint32Array(1);\n\tconst dateView = getDataView(dateArray);\n\tlet lastModDate;\n\tif (options.lastModDate < MIN_DATE) {\n\t\tlastModDate = MIN_DATE;\n\t} else if (options.lastModDate > MAX_DATE) {\n\t\tlastModDate = MAX_DATE;\n\t} else {\n\t\tlastModDate = options.lastModDate;\n\t}\n\tsetUint16(dateView, 0, (((lastModDate.getHours() << 6) | lastModDate.getMinutes()) << 5) | lastModDate.getSeconds() / 2);\n\tsetUint16(dateView, 2, ((((lastModDate.getFullYear() - 1980) << 4) | (lastModDate.getMonth() + 1)) << 5) | lastModDate.getDate());\n\tconst rawLastModDate = dateArray[0];\n\tsetUint32(headerView, 6, rawLastModDate);\n\tsetUint16(headerView, 22, rawFilename.length);\n\tconst extraFieldLength = rawExtraFieldAES.length + rawExtraFieldExtendedTimestamp.length + rawExtraFieldNTFS.length + fileEntry.rawExtraField.length;\n\tsetUint16(headerView, 24, extraFieldLength);\n\tconst localHeaderArray = new Uint8Array(30 + rawFilename.length + extraFieldLength);\n\tconst localHeaderView = getDataView(localHeaderArray);\n\tsetUint32(localHeaderView, 0, LOCAL_FILE_HEADER_SIGNATURE);\n\tarraySet(localHeaderArray, headerArray, 4);\n\tarraySet(localHeaderArray, rawFilename, 30);\n\tarraySet(localHeaderArray, rawExtraFieldAES, 30 + rawFilename.length);\n\tarraySet(localHeaderArray, rawExtraFieldExtendedTimestamp, 30 + rawFilename.length + rawExtraFieldAES.length);\n\tarraySet(localHeaderArray, rawExtraFieldNTFS, 30 + rawFilename.length + rawExtraFieldAES.length + rawExtraFieldExtendedTimestamp.length);\n\tarraySet(localHeaderArray, fileEntry.rawExtraField, 30 + rawFilename.length + rawExtraFieldAES.length + rawExtraFieldExtendedTimestamp.length + rawExtraFieldNTFS.length);\n\tlet result;\n\tlet compressedSize = 0;\n\tif (reader) {\n\t\tuncompressedSize = fileEntry.uncompressedSize = reader.size;\n\t\tconst codec = await createCodec(config.Deflate, {\n\t\t\tcodecType: CODEC_DEFLATE,\n\t\t\tlevel,\n\t\t\tpassword,\n\t\t\tencryptionStrength,\n\t\t\tzipCrypto: encrypted && zipCrypto,\n\t\t\tpasswordVerification: encrypted && zipCrypto && (rawLastModDate >> 8) & 0xFF,\n\t\t\tsigned: true,\n\t\t\tcompressed,\n\t\t\tencrypted,\n\t\t\tuseWebWorkers\n\t\t}, config);\n\t\tawait writer.writeUint8Array(localHeaderArray);\n\t\tfileEntry.dataWritten = true;\n\t\tresult = await processData(codec, reader, writer, 0, uncompressedSize, config, { onprogress, signal });\n\t\tcompressedSize = result.length;\n\t} else {\n\t\tawait writer.writeUint8Array(localHeaderArray);\n\t\tfileEntry.dataWritten = true;\n\t}\n\tlet dataDescriptorArray = new Uint8Array(0);\n\tlet dataDescriptorView, dataDescriptorOffset = 0;\n\tif (dataDescriptor) {\n\t\tdataDescriptorArray = new Uint8Array(zip64 ? (dataDescriptorSignature ? 24 : 20) : (dataDescriptorSignature ? 16 : 12));\n\t\tdataDescriptorView = getDataView(dataDescriptorArray);\n\t\tif (dataDescriptorSignature) {\n\t\t\tdataDescriptorOffset = 4;\n\t\t\tsetUint32(dataDescriptorView, 0, DATA_DESCRIPTOR_RECORD_SIGNATURE);\n\t\t}\n\t}\n\tif (reader) {\n\t\tconst signature = result.signature;\n\t\tif ((!encrypted || zipCrypto) && signature !== undefined) {\n\t\t\tsetUint32(headerView, 10, signature);\n\t\t\tfileEntry.signature = signature;\n\t\t\tif (dataDescriptor) {\n\t\t\t\tsetUint32(dataDescriptorView, dataDescriptorOffset, signature);\n\t\t\t}\n\t\t}\n\t\tif (zip64) {\n\t\t\tconst rawExtraFieldZip64View = getDataView(fileEntry.rawExtraFieldZip64);\n\t\t\tsetUint16(rawExtraFieldZip64View, 0, EXTRAFIELD_TYPE_ZIP64);\n\t\t\tsetUint16(rawExtraFieldZip64View, 2, EXTRAFIELD_LENGTH_ZIP64);\n\t\t\tsetUint32(headerView, 14, MAX_32_BITS);\n\t\t\tsetBigUint64(rawExtraFieldZip64View, 12, BigInt(compressedSize));\n\t\t\tsetUint32(headerView, 18, MAX_32_BITS);\n\t\t\tsetBigUint64(rawExtraFieldZip64View, 4, BigInt(uncompressedSize));\n\t\t\tif (dataDescriptor) {\n\t\t\t\tsetBigUint64(dataDescriptorView, dataDescriptorOffset + 4, BigInt(compressedSize));\n\t\t\t\tsetBigUint64(dataDescriptorView, dataDescriptorOffset + 12, BigInt(uncompressedSize));\n\t\t\t}\n\t\t} else {\n\t\t\tsetUint32(headerView, 14, compressedSize);\n\t\t\tsetUint32(headerView, 18, uncompressedSize);\n\t\t\tif (dataDescriptor) {\n\t\t\t\tsetUint32(dataDescriptorView, dataDescriptorOffset + 4, compressedSize);\n\t\t\t\tsetUint32(dataDescriptorView, dataDescriptorOffset + 8, uncompressedSize);\n\t\t\t}\n\t\t}\n\t}\n\tif (dataDescriptor) {\n\t\tawait writer.writeUint8Array(dataDescriptorArray);\n\t}\n\tconst length = localHeaderArray.length + compressedSize + dataDescriptorArray.length;\n\tObject.assign(fileEntry, { compressedSize, lastModDate, rawLastModDate, creationDate, lastAccessDate, encrypted, length });\n\treturn fileEntry;\n}\n\nasync function closeFile(zipWriter, comment, options) {\n\tconst writer = zipWriter.writer;\n\tconst files = zipWriter.files;\n\tlet offset = 0;\n\tlet directoryDataLength = 0;\n\tlet directoryOffset = zipWriter.offset;\n\tlet filesLength = files.size;\n\tfor (const [, fileEntry] of files) {\n\t\tdirectoryDataLength += 46 +\n\t\t\tfileEntry.rawFilename.length +\n\t\t\tfileEntry.rawComment.length +\n\t\t\tfileEntry.rawExtraFieldZip64.length +\n\t\t\tfileEntry.rawExtraFieldAES.length +\n\t\t\tfileEntry.rawExtraFieldExtendedTimestamp.length +\n\t\t\tfileEntry.rawExtraFieldNTFS.length +\n\t\t\tfileEntry.rawExtraField.length;\n\t}\n\tlet zip64 = options.zip64 || zipWriter.options.zip64 || false;\n\tif (directoryOffset >= MAX_32_BITS || directoryDataLength >= MAX_32_BITS || filesLength >= MAX_16_BITS) {\n\t\tif (options.zip64 === false || zipWriter.options.zip64 === false) {\n\t\t\tthrow new Error(ERR_UNSUPPORTED_FORMAT);\n\t\t} else {\n\t\t\tzip64 = true;\n\t\t}\n\t}\n\tconst directoryArray = new Uint8Array(directoryDataLength + (zip64 ? ZIP64_END_OF_CENTRAL_DIR_TOTAL_LENGTH : END_OF_CENTRAL_DIR_LENGTH));\n\tconst directoryView = getDataView(directoryArray);\n\tif (comment && comment.length) {\n\t\tif (comment.length <= MAX_16_BITS) {\n\t\t\tsetUint16(directoryView, offset + 20, comment.length);\n\t\t} else {\n\t\t\tthrow new Error(ERR_INVALID_COMMENT);\n\t\t}\n\t}\n\tfor (const [indexFileEntry, fileEntry] of Array.from(files.values()).entries()) {\n\t\tconst {\n\t\t\trawFilename,\n\t\t\trawExtraFieldZip64,\n\t\t\trawExtraFieldAES,\n\t\t\trawExtraField,\n\t\t\trawComment,\n\t\t\tversionMadeBy,\n\t\t\theaderArray,\n\t\t\tdirectory,\n\t\t\tzip64,\n\t\t\tmsDosCompatible,\n\t\t\tinternalFileAttribute,\n\t\t\texternalFileAttribute\n\t\t} = fileEntry;\n\t\tlet rawExtraFieldExtendedTimestamp;\n\t\tlet rawExtraFieldNTFS;\n\t\tif (fileEntry.extendedTimestamp) {\n\t\t\trawExtraFieldNTFS = fileEntry.rawExtraFieldNTFS;\n\t\t\trawExtraFieldExtendedTimestamp = new Uint8Array(9);\n\t\t\tconst extraFieldExtendedTimestampView = getDataView(rawExtraFieldExtendedTimestamp);\n\t\t\tsetUint16(extraFieldExtendedTimestampView, 0, EXTRAFIELD_TYPE_EXTENDED_TIMESTAMP);\n\t\t\tsetUint16(extraFieldExtendedTimestampView, 2, rawExtraFieldExtendedTimestamp.length - 4);\n\t\t\tsetUint8(extraFieldExtendedTimestampView, 4, 0x1);\n\t\t\tsetUint32(extraFieldExtendedTimestampView, 5, Math.floor(fileEntry.lastModDate.getTime() / 1000));\n\t\t} else {\n\t\t\trawExtraFieldNTFS = rawExtraFieldExtendedTimestamp = new Uint8Array(0);\n\t\t}\n\t\tconst extraFieldLength = rawExtraFieldZip64.length + rawExtraFieldAES.length + rawExtraFieldExtendedTimestamp.length + rawExtraFieldNTFS.length + rawExtraField.length;\n\t\tsetUint32(directoryView, offset, CENTRAL_FILE_HEADER_SIGNATURE);\n\t\tsetUint16(directoryView, offset + 4, versionMadeBy);\n\t\tarraySet(directoryArray, headerArray, offset + 6);\n\t\tsetUint16(directoryView, offset + 30, extraFieldLength);\n\t\tsetUint16(directoryView, offset + 32, rawComment.length);\n\t\tsetUint32(directoryView, offset + 34, internalFileAttribute);\n\t\tif (externalFileAttribute) {\n\t\t\tsetUint32(directoryView, offset + 38, externalFileAttribute);\n\t\t} else if (directory && msDosCompatible) {\n\t\t\tsetUint8(directoryView, offset + 38, FILE_ATTR_MSDOS_DIR_MASK);\n\t\t}\n\t\tif (zip64) {\n\t\t\tsetUint32(directoryView, offset + 42, MAX_32_BITS);\n\t\t} else {\n\t\t\tsetUint32(directoryView, offset + 42, fileEntry.offset);\n\t\t}\n\t\tarraySet(directoryArray, rawFilename, offset + 46);\n\t\tarraySet(directoryArray, rawExtraFieldZip64, offset + 46 + rawFilename.length);\n\t\tarraySet(directoryArray, rawExtraFieldAES, offset + 46 + rawFilename.length + rawExtraFieldZip64.length);\n\t\tarraySet(directoryArray, rawExtraFieldExtendedTimestamp, offset + 46 + rawFilename.length + rawExtraFieldZip64.length + rawExtraFieldAES.length);\n\t\tarraySet(directoryArray, rawExtraFieldNTFS, offset + 46 + rawFilename.length + rawExtraFieldZip64.length + rawExtraFieldAES.length + rawExtraFieldExtendedTimestamp.length);\n\t\tarraySet(directoryArray, rawExtraField, offset + 46 + rawFilename.length + rawExtraFieldZip64.length + rawExtraFieldAES.length + rawExtraFieldExtendedTimestamp.length + rawExtraFieldNTFS.length);\n\t\tarraySet(directoryArray, rawComment, offset + 46 + rawFilename.length + extraFieldLength);\n\t\toffset += 46 + rawFilename.length + extraFieldLength + rawComment.length;\n\t\tif (options.onprogress) {\n\t\t\ttry {\n\t\t\t\toptions.onprogress(indexFileEntry + 1, files.size, new Entry(fileEntry));\n\t\t\t} catch (error) {\n\t\t\t\t// ignored\n\t\t\t}\n\t\t}\n\t}\n\tif (zip64) {\n\t\tsetUint32(directoryView, offset, ZIP64_END_OF_CENTRAL_DIR_SIGNATURE);\n\t\tsetBigUint64(directoryView, offset + 4, BigInt(44));\n\t\tsetUint16(directoryView, offset + 12, 45);\n\t\tsetUint16(directoryView, offset + 14, 45);\n\t\tsetBigUint64(directoryView, offset + 24, BigInt(filesLength));\n\t\tsetBigUint64(directoryView, offset + 32, BigInt(filesLength));\n\t\tsetBigUint64(directoryView, offset + 40, BigInt(directoryDataLength));\n\t\tsetBigUint64(directoryView, offset + 48, BigInt(directoryOffset));\n\t\tsetUint32(directoryView, offset + 56, ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIGNATURE);\n\t\tsetBigUint64(directoryView, offset + 64, BigInt(directoryOffset) + BigInt(directoryDataLength));\n\t\tsetUint32(directoryView, offset + 72, ZIP64_TOTAL_NUMBER_OF_DISKS);\n\t\tfilesLength = MAX_16_BITS;\n\t\tdirectoryOffset = MAX_32_BITS;\n\t\tdirectoryDataLength = MAX_32_BITS;\n\t\toffset += 76;\n\t}\n\tsetUint32(directoryView, offset, END_OF_CENTRAL_DIR_SIGNATURE);\n\tsetUint16(directoryView, offset + 8, filesLength);\n\tsetUint16(directoryView, offset + 10, filesLength);\n\tsetUint32(directoryView, offset + 12, directoryDataLength);\n\tsetUint32(directoryView, offset + 16, directoryOffset);\n\tawait writer.writeUint8Array(directoryArray);\n\tif (comment && comment.length) {\n\t\tawait writer.writeUint8Array(comment);\n\t}\n}\n\nfunction sliceAsArrayBuffer(blob, start, end) {\n\tif (blob.arrayBuffer) {\n\t\tif (start || end) {\n\t\t\treturn blob.slice(start, end).arrayBuffer();\n\t\t} else {\n\t\t\treturn blob.arrayBuffer();\n\t\t}\n\t} else {\n\t\tconst fileReader = new FileReader();\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tfileReader.onload = event => resolve(event.target.result);\n\t\t\tfileReader.onerror = () => reject(fileReader.error);\n\t\t\tfileReader.readAsArrayBuffer(start || end ? blob.slice(start, end) : blob);\n\t\t});\n\t}\n}\n\nasync function writeBlob(writer, blob, start = 0) {\n\tconst blockSize = 512 * 1024 * 1024;\n\tawait writeSlice();\n\n\tasync function writeSlice() {\n\t\tif (start < blob.size) {\n\t\t\tconst arrayBuffer = await sliceAsArrayBuffer(blob, start, start + blockSize);\n\t\t\tawait writer.writeUint8Array(new Uint8Array(arrayBuffer));\n\t\t\tstart += blockSize;\n\t\t\tawait writeSlice();\n\t\t}\n\t}\n}\n\nfunction getTimeNTFS(date) {\n\tif (date) {\n\t\treturn ((BigInt(date.getTime()) + BigInt(11644473600000)) * BigInt(10000));\n\t}\n}\n\nfunction getOptionValue(zipWriter, options, name) {\n\treturn options[name] === undefined ? zipWriter.options[name] : options[name];\n}\n\nfunction getMaximumCompressedSize(uncompressedSize) {\n\treturn uncompressedSize + (5 * (Math.floor(uncompressedSize / 16383) + 1));\n}\n\nfunction setUint8(view, offset, value) {\n\tview.setUint8(offset, value);\n}\n\nfunction setUint16(view, offset, value) {\n\tview.setUint16(offset, value, true);\n}\n\nfunction setUint32(view, offset, value) {\n\tview.setUint32(offset, value, true);\n}\n\nfunction setBigUint64(view, offset, value) {\n\tview.setBigUint64(offset, value, true);\n}\n\nfunction arraySet(array, typedArray, offset) {\n\tarray.set(typedArray, offset);\n}\n\nfunction getDataView(array) {\n\treturn new DataView(array.buffer);\n}","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nimport { configure } from \"./core/configuration.js\";\nimport configureWebWorker from \"./z-worker-inline.js\";\nimport getMimeType from \"./core/util/default-mime-type.js\";\nimport initShimAsyncCodec from \"./core/util/stream-codec-shim.js\";\nimport { terminateWorkers } from \"./core/codecs/codec-pool.js\";\n\nlet baseURL;\ntry {\n\tbaseURL = import.meta.url;\n} catch (error) {\n\t// ignored\n}\nconfigure({ baseURL });\nconfigureWebWorker(configure);\n\nexport * from \"./core/io.js\";\nexport * from \"./core/zip-reader.js\";\nexport * from \"./core/zip-writer.js\";\nexport * from \"./core/zip-fs-core.js\";\nexport {\n\tconfigure,\n\tgetMimeType,\n\tinitShimAsyncCodec,\n\tterminateWorkers\n};","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nimport Deflate from \"./lib/core/codecs/deflate.js\";\nimport Inflate from \"./lib/core/codecs/inflate.js\";\nimport { configure } from \"./lib/core/configuration.js\";\nimport getMimeType from \"./lib/core/util/mime-type.js\";\nimport { terminateWorkers } from \"./lib/core/codecs/codec-pool.js\";\n\nconfigure({ Deflate, Inflate });\n\nexport {\n\tfs,\n\tconfigure,\n\tinitShimAsyncCodec,\n\tZipReader,\n\tZipWriter,\n\tReader,\n\tWriter,\n\tTextReader,\n\tTextWriter,\n\tData64URIReader,\n\tData64URIWriter,\n\tBlobReader,\n\tBlobWriter,\n\tWritableStreamWriter,\n\tHttpReader,\n\tHttpRangeReader,\n\tUint8ArrayWriter,\n\tUint8ArrayReader,\n\tERR_HTTP_RANGE,\n\tERR_BAD_FORMAT,\n\tERR_EOCDR_NOT_FOUND,\n\tERR_EOCDR_ZIP64_NOT_FOUND,\n\tERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND,\n\tERR_CENTRAL_DIRECTORY_NOT_FOUND,\n\tERR_LOCAL_FILE_HEADER_NOT_FOUND,\n\tERR_EXTRAFIELD_ZIP64_NOT_FOUND,\n\tERR_ENCRYPTED,\n\tERR_UNSUPPORTED_ENCRYPTION,\n\tERR_UNSUPPORTED_COMPRESSION,\n\tERR_INVALID_SIGNATURE,\n\tERR_INVALID_PASSWORD,\n\tERR_DUPLICATED_NAME,\n\tERR_INVALID_COMMENT,\n\tERR_INVALID_ENTRY_NAME,\n\tERR_INVALID_ENTRY_COMMENT,\n\tERR_INVALID_VERSION,\n\tERR_INVALID_EXTRAFIELD_TYPE,\n\tERR_INVALID_EXTRAFIELD_DATA,\n\tERR_INVALID_ENCRYPTION_STRENGTH,\n\tERR_UNSUPPORTED_FORMAT,\n\tERR_ABORT\n} from \"./lib/zip-fs.js\";\nexport { getMimeType, terminateWorkers };","'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","'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","// 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\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\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\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\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 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","'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","// 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","'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","import type { DataModel } from '@mcschema/core'\nimport { Path } from '@mcschema/core'\nimport * as zip from '@zip.js/zip.js'\nimport yaml from 'js-yaml'\nimport { route } from 'preact-router'\nimport rfdc from 'rfdc'\nimport config from './Config.js'\n\nexport function isPromise(obj: any): obj is Promise {\n\treturn typeof (obj as any)?.then === 'function' \n}\n\nexport function isObject(obj: any): obj is Record {\n\treturn typeof obj === 'object' && obj !== null\n}\n\nfunction decToHex(n: number) {\n\treturn n.toString(16).padStart(2, '0')\n}\n\nexport function hexId(length = 12) {\n\tvar arr = new Uint8Array(length / 2)\n\twindow.crypto.getRandomValues(arr)\n\treturn Array.from(arr, decToHex).join('')\n}\n\nexport function randomSeed() {\n\treturn BigInt(Math.floor(Math.random() * Number.MAX_SAFE_INTEGER))\n}\n\nexport function generateUUID() {\n\treturn 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\n\t\tconst r = Math.random()*16|0\n\t\tconst v = c == 'x' ? r : (r&0x3|0x8)\n\t\treturn v.toString(16)\n\t})\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 (isObject(dimensions)) {\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(['placement', 'salt']), Math.abs(seed), true)\n\tmodel.set(new Path(['generator', 'seed']), seed, true)\n\tmodel.set(new Path(['generator', 'biome_source', 'seed']), seed)\n}\n\nexport function htmlEncode(str: string) {\n\treturn str.replace(/&/g, '&').replace(//g, '>')\n\t\t.replace(/\"/g, '"').replace(/'/g, ''').replace(/\\//g, '/')\n}\n\nexport function hashString(s: string) {\n\tlet h = 0\n\tfor(let i = 0; i < s.length; i++)\n\t\th = Math.imul(31, h) + s.charCodeAt(i) | 0\n\treturn h\n}\n\nexport function cleanUrl(url: string) {\n\treturn `/${url}/`.replaceAll('//', '/')\n}\n\nexport function getPath(url: string) {\n\tconst searchIndex = url.indexOf('?')\n\tif (searchIndex >= 0) {\n\t\turl = url.slice(0, searchIndex)\n\t}\n\treturn cleanUrl(url)\n}\n\nexport function getGenerator(url: string) {\n\tconst trimmedUrl = getPath(url).replace(/^\\//, '').replace(/\\/$/, '')\n\treturn config.generators.find(g => g.url === trimmedUrl)\n}\n\nexport function changeUrl({ path, search, hash, replace }: { path?: string, search?: string, hash?: string, replace?: boolean }) {\n\tconst url = (path !== undefined ? cleanUrl(path) : location.pathname)\n\t\t+ (search !== undefined ? (search.startsWith('?') || search.length === 0 ? search : '?' + search) : location.search)\n\t\t+ (hash !== undefined ? (hash.startsWith('#') ? hash : '#' + hash) : location.hash)\n\troute(url, replace)\n}\n\nexport function parseFrontMatter(source: string): Record {\n\tconst data = yaml.load(source.substring(3, source.indexOf('---', 3)))\n\tif (!isObject(data)) return {}\n\treturn data\n}\n\nexport function versionContent(content: string, version: string) {\n\tlet cursor = 0\n\twhile (true) {\n\t\tconst start = content.indexOf('{#', cursor)\n\t\tif (start < 0) {\n\t\t\tbreak\n\t\t}\n\t\tconst end = findMatchingClose(content, start + 2)\n\t\tconst vStart = content.indexOf('#[', start + 1)\n\t\tlet sub = ''\n\t\tif (vStart >= 0 && vStart < end) {\n\t\t\tconst vEnd = content.indexOf(']', vStart + 2)\n\t\t\tconst v = content.substring(vStart + 2, vEnd)\n\t\t\tif (v === version) {\n\t\t\t\tsub = content.substring(vEnd + 1, end).trim()\n\t\t\t}\n\t\t} else {\n\t\t\tconst key = content.substring(start + 2, end)\n\t\t\tconst versionConfig = config.versions.find(v => v.id === version)\n\t\t\tsub = ({\n\t\t\t\tversion: versionConfig?.id,\n\t\t\t\tpack_format: versionConfig?.pack_format.toString(),\n\t\t\t} as Record)[key] ?? ''\n\t\t}\n\t\tcontent = content.substring(0, start) + sub + content.substring(end + 2)\n\t\tcursor = start\n\t\t\n\t}\n\treturn content\n}\n\nfunction findMatchingClose(source: string, index: number) {\n\tlet depth = 0\n\tlet iteration = 0\n\twhile (iteration++ < 1000) {\n\t\tconst close = source.indexOf('#}', index)\n\t\tconst open = source.indexOf('{#', index)\n\t\tif (close < 0) {\n\t\t\tconsole.warn('Missing closing bracket')\n\t\t\treturn source.length\n\t\t}\n\t\tif (open < 0) {\n\t\t\tif (depth === 0) {\n\t\t\t\treturn close\n\t\t\t} else {\n\t\t\t\tdepth -= 1\n\t\t\t\tindex = close + 2\n\t\t\t}\n\t\t} else if (open < close) {\n\t\t\tdepth += 1\n\t\t\tindex = open + 2\n\t\t} else if (depth === 0) {\n\t\t\treturn close\n\t\t} else {\n\t\t\tdepth -= 1\n\t\t\tindex = close + 2\n\t\t}\n\t}\n\tconsole.warn('Exceeded max iterations while finding closing bracket')\n\treturn source.length\n}\n\nexport type Color = [number, number, number]\n\nexport function stringToColor(str: string): Color {\n\tconst h = Math.abs(hashString(str))\n\treturn [h % 256, (h >> 8) % 256, (h >> 16) % 256]\n}\n\nexport function rgbToHex(color: Color): string {\n\tif (!Array.isArray(color) || color.length !== 3) return '#000000'\n\tconst [r, g, b] = color\n\treturn '#' + decToHex(r) + decToHex(g) + decToHex(b)\n}\n\nexport function hexToRgb(hex: string | undefined): Color {\n\tif (typeof hex !== 'string') return [0, 0, 0]\n\tconst num = parseInt(hex.startsWith('#') ? hex.slice(1) : hex, 16)\n\tconst r = (num >> 16) & 255\n\tconst g = (num >> 8) & 255\n\tconst b = num & 255\n\treturn [r, g, b]\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\tpublic readonly forward: Map\n\tpublic 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\tpublic computeIfAbsent(key: A, value: () => B) {\n\t\tconst b = this.forward.get(key)\n\t\tif (b === undefined) {\n\t\t\tconst newValue = value()\n\t\t\tthis.set(key, newValue)\n\t\t\treturn newValue\n\t\t}\n\t\treturn b\n\t}\n}\n\nexport async function readZip(file: File | ArrayBuffer, predicate: (name: string) => boolean = () => true): Promise<[string, string][]> {\n\tconst buffer = file instanceof File ? await file.arrayBuffer() : file\n\tconst reader = new zip.ZipReader(new zip.BlobReader(new Blob([buffer])))\n\tconst entries = await reader.getEntries()\n\treturn await Promise.all(entries\n\t\t.filter(e => !e.directory && predicate(e.filename))\n\t\t.map(async e => {\n\t\t\tconst writer = new zip.TextWriter('utf-8')\n\t\t\treturn [e.filename, await e.getData?.(writer)] as [string, string]\n\t\t})\n\t)\n}\n\nexport async function writeZip(entries: [string, string][]): Promise {\n\tconst writer = new zip.ZipWriter(new zip.Data64URIWriter('application/zip'))\n\tawait Promise.all(entries.map(async ([name, data]) => {\n\t\tawait writer.add(name, new zip.TextReader(data))\n\t}))\n\treturn await writer.close()\n}\n\nexport function computeIfAbsent(map: Map, key: K, getter: (key: K) => V): V {\n\tconst existing = map.get(key)\n\tif (existing) {\n\t\treturn existing\n\t}\n\tconst value = getter(key)\n\tmap.set(key, value)\n\treturn value\n}\n\nexport async function computeIfAbsentAsync(map: Map, key: K, getter: (key: K) => Promise): Promise {\n\tconst existing = map.get(key)\n\tif (existing) {\n\t\treturn existing\n\t}\n\tconst value = await getter(key)\n\tmap.set(key, value)\n\treturn value\n}\n","import { useEffect, useRef } from 'preact/hooks'\nimport { hexId } from '../Utils.js'\nimport { Octicon } from './index.js'\n\ntype BtnInputProps = {\n\ticon?: keyof typeof Octicon,\n\tlabel?: string,\n\tlarge?: boolean,\n\tlarger?: boolean,\n\tdoSelect?: number,\n\tvalue?: string,\n\tplaceholder?: string,\n\tdataList?: string[],\n\tonChange?: (value: string) => unknown,\n}\nexport function BtnInput({ icon, label, large, larger, doSelect, value, placeholder, dataList, 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\tconst dataListId = dataList && hexId()\n\n\treturn
    e.stopPropagation()}>\n\t\t{icon && Octicon[icon]}\n\t\t{label && {label}}\n\t\t\n\t\t{dataList && \n\t\t\t{dataList.map(e => }\n\t
    \n}\n","import { Octicon } from './index.js'\n\ninterface Props {\n\tlink?: string,\n\ticon?: keyof typeof Octicon,\n\tlabel?: string,\n\ttooltip?: string,\n\ttooltipLoc?: 'se' | 'sw' | 'nw',\n\tswapped?: boolean,\n}\nexport function BtnLink({ link, icon, label, tooltip, tooltipLoc, swapped }: Props) {\n\treturn \n\t\t{swapped ? <>\n\t\t\t{label && {label}}\n\t\t\t{icon && Octicon[icon]}\n\t\t : <>\n\t\t\t{icon && Octicon[icon]}\n\t\t\t{label && {label}}\n\t\t}\n\t\n}\n","import { useRef, useState } from 'preact/hooks'\n\ninterface ActiveTimeoutOptions {\n\tcooldown?: number,\n\tinvert?: boolean,\n\tinitial?: boolean,\n}\nexport function useActiveTimeout({ cooldown, invert, initial }: ActiveTimeoutOptions = {}): [boolean | undefined, () => unknown] {\n\tconst [active, setActive] = useState(initial)\n\tconst timeout = useRef(undefined)\n\n\tconst trigger = () => {\n\t\tsetActive(invert ? false : true)\n\t\tif (timeout.current !== undefined) clearTimeout(timeout.current)\n\t\ttimeout.current = setTimeout(() => {\n\t\t\tsetActive(invert ? true : false)\n\t\t}, cooldown ?? 2000) as any\n\t}\n\n\treturn [active, trigger]\n}\n","import type { Inputs } from 'preact/hooks'\nimport { useEffect } from 'preact/hooks'\nimport type { AsyncCancel, AsyncState } from './index.js'\nimport { useAsyncFn } from './index.js'\n\nexport function useAsync(\n\tfn: () => Promise,\n\tinputs: Inputs = [],\n\tinitialState: AsyncState = { loading: true },\n): AsyncState & { refresh: () => Promise } {\n\tconst [state, callback] = useAsyncFn Promise>(fn, inputs, initialState)\n\n\tuseEffect(() => {\n\t\tcallback()\n\t}, [callback])\n\n\treturn {\n\t\t...state,\n\t\trefresh: callback,\n\t}\n}\n","import type { Inputs } from 'preact/hooks'\nimport { useCallback, useEffect, useRef, useState } from 'preact/hooks'\n\n\nexport type AsyncState = {\n\tloading: boolean,\n\terror?: undefined,\n\tvalue?: undefined,\n} | {\n\tloading: true,\n\terror?: Error | undefined,\n\tvalue?: T,\n} | {\n\tloading: false,\n\terror: Error,\n\tvalue?: undefined,\n} | {\n\tloading: false,\n\terror?: undefined,\n\tvalue: T,\n}\n\nexport const AsyncCancel = Symbol('async-cancel')\n\nexport function useAsyncFn Promise>(\n\tfn: T,\n\tinputs: Inputs = [],\n\tinitialState: AsyncState = { loading: false },\n): [AsyncState, (...args: Parameters) => Promise] {\n\tconst [state, setState] = useState>(initialState)\n\tconst isMounted = useRef(false)\n\tconst lastCallId = useRef(0)\n\n\tuseEffect(() => {\n\t\tisMounted.current = true\n\t\treturn () => isMounted.current = false\n\t}, [])\n\n\tconst callback = useCallback((...args: Parameters): Promise => {\n\t\tconst callId = ++lastCallId.current\n\t\tif (!state.loading) {\n\t\t\tsetState(prev => ({ ...prev, loading: true }))\n\t\t}\n\n\t\treturn fn(...args).then(\n\t\t\tvalue => {\n\t\t\t\tif (isMounted.current && callId === lastCallId.current && value !== AsyncCancel) {\n\t\t\t\t\tsetState({ value, loading: false })\n\t\t\t\t}\n\t\t\t\treturn value\n\t\t\t},\n\t\t\terror => {\n\t\t\t\tif (isMounted.current && callId === lastCallId.current) {\n\t\t\t\t\tsetState({ error, loading: false })\n\t\t\t\t}\n\t\t\t\treturn undefined\n\t\t\t})\n\t}, inputs)\n\n\treturn [state, callback]\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\tif (!canvas.current) return\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\tif (!canvas.current) return\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\tif (dragRequest.current) {\n\t\t\t\t\t\tcancelAnimationFrame(dragRequest.current)\n\t\t\t\t\t}\n\t\t\t\t\tdragRequest.current = requestAnimationFrame(async () => {\n\t\t\t\t\t\tif (!canvas.current) return\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\tif (!canvas.current) return\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\ttry {\n\t\t\tawait draw(img)\n\t\t} catch (e) {\n\t\t\tthrow e\n\t\t}\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 const LOSE_FOCUS = 'misode-lose-focus'\n\nexport function useFocus(): [boolean, (active?: 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\tdocument.body.addEventListener(LOSE_FOCUS, 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\tdocument.body.removeEventListener(LOSE_FOCUS, hider)\n\t\t}\n\t}, [active])\n\n\treturn [active, (active = true) => setActive(active)]\n}\n","import { useCallback, useEffect, useState } from 'preact/hooks'\nimport { changeUrl } from '../Utils.js'\n\nexport function useHash(): [string, (hash: string) => unknown] {\n\tconst [hash, setHash] = useState(window.location.hash)\n\n\tconst onChange = useCallback(() => {\n\t\tsetHash(window.location.hash)\n\t}, [])\n\n\tuseEffect(() => {\n\t\twindow.addEventListener('hashchange', onChange)\n\t\twindow.addEventListener('replacestate', onChange)\n\t\treturn () => {\n\t\t\twindow.removeEventListener('hashchange', onChange)\n\t\t\twindow.removeEventListener('replacestate', onChange)\n\t\t}\n\t}, [])\n\n\tconst changeHash = useCallback((newHash: string) => {\n\t\tif (newHash !== hash) {\n\t\t\tchangeUrl({ hash: newHash })\n\t\t}\n\t}, [hash])\n\n\treturn [hash, changeHash]\n}\n","import { useCallback, useState } from 'preact/hooks'\n\ntype Result = [T, (value: T | null | undefined) => void]\n\nexport function useLocalStorage(key: string, defaultValue: string): Result\nexport function useLocalStorage(key: string, defaultValue: T, parse: (s: string) => T, stringify: (e: T) => string): Result\nexport function useLocalStorage(key: string, defaultValue: T, parse?: (s: string) => T, stringify?: (e: T) => string): Result {\n\tconst getter = useCallback(() => {\n\t\tconst raw = localStorage.getItem(key)\n\t\tif (raw === null) {\n\t\t\treturn defaultValue\n\t\t} else if (parse === undefined) {\n\t\t\treturn raw as unknown as T\n\t\t} else {\n\t\t\treturn parse(raw)\n\t\t}\n\t}, [])\n\n\tconst [state, setState] = useState(getter())\n\n\tconst setter = useCallback((value: T | null | undefined) => {\n\t\tif (value == null) {\n\t\t\tlocalStorage.removeItem(key)\n\t\t\tsetState(defaultValue)\n\t\t} else if (stringify !== undefined) {\n\t\t\tlocalStorage.setItem(key, stringify(value))\n\t\t\tsetState(value)\n\t\t} else {\n\t\t\tlocalStorage.setItem(key, value as unknown as string)\n\t\t\tsetState(value)\n\t\t}\n\t}, [])\n\n\treturn [state, setter]\n}\n","import { useEffect, useState } from 'preact/hooks'\n\nexport function useMediaQuery(query: string): boolean {\n\tconst [prefers, setPrefers] = useState(matchMedia(query).matches)\n\n\tconst onChange = (e: MediaQueryListEvent) => {\n\t\tsetPrefers(e.matches)\n\t}\n\n\tuseEffect(() => {\n\t\tconst mediaQuery = matchMedia(query)\n\t\tmediaQuery.addEventListener('change', onChange)\n\t\treturn () => {\n\t\t\tmediaQuery.removeEventListener('change', onChange)\n\t\t}\n\t}, [query])\n\n\treturn prefers\n}\n","import type { DataModel } from '@mcschema/core'\nimport type { Inputs } from 'preact/hooks'\nimport { useEffect } from 'preact/hooks'\n\nexport function useModel(model: DataModel | undefined | null, invalidated: (model: DataModel) => unknown, inputs?: Inputs) {\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, ...inputs ?? []])\n}\n","import { useCallback, useEffect, useState } from 'preact/hooks'\nimport { changeUrl } from '../Utils.js'\n\nconst getValue = (search: string, param: string) => new URLSearchParams(search).get(param) ?? undefined\n\nexport function useSearchParam(param: string): [string | undefined, (value: string | undefined, replace?: boolean) => unknown] {\n\tconst location = window.location\n\tconst [value, setValue] = useState(getValue(location.search, param))\n\n\tuseEffect(() => {\n\t\tconst onChange = () => {\n\t\t\tsetValue(getValue(location.search, param))\n\t\t}\n\n\t\twindow.addEventListener('popstate', onChange)\n\t\twindow.addEventListener('pushstate', onChange)\n\t\twindow.addEventListener('replacestate', onChange)\n\n\t\treturn () => {\n\t\t\twindow.removeEventListener('popstate', onChange)\n\t\t\twindow.removeEventListener('pushstate', onChange)\n\t\t\twindow.removeEventListener('replacestate', onChange)\n\t\t}\n\t}, [])\n\n\tconst changeValue = useCallback((newValue: string | undefined, replace?: boolean) => {\n\t\tif (newValue !== value) {\n\t\t\tsetValue(newValue)\n\t\t\tconst params = new URLSearchParams(location.search)\n\t\t\tif (newValue === undefined || newValue.length === 0) {\n\t\t\t\tparams.delete(param)\n\t\t\t} else {\n\t\t\t\tparams.set(param, newValue)\n\t\t\t}\n\t\t\tchangeUrl({ search: params.toString().replaceAll('%7C', '|'), replace })\n\t\t}\n\t}, [value])\n\n\treturn [value, changeValue]\n};\n","import { useMemo } from 'preact/hooks'\nimport { useSearchParam } from './index.js'\n\nconst TAG_KEY = 'tags'\nconst TAG_SEP = '|'\n\nexport function useTags(): [string[], (tag: string, force?: boolean) => void] {\n\tconst [tags, setTags] = useSearchParam(TAG_KEY)\n\tconst activeTags = useMemo(() => tags?.split(TAG_SEP) ?? [], [tags])\n\n\tconst toggleTag = (tag: string, force?: boolean) => {\n\t\tif (force === false || (activeTags.includes(tag) && force !== true)) {\n\t\t\tsetTags(activeTags.filter(t => t !== tag).join(TAG_SEP), true)\n\t\t} else {\n\t\t\tsetTags([...activeTags, tag].sort().join(TAG_SEP), true)\n\t\t}\n\t}\n\n\treturn [activeTags, toggleTag]\n}\n","import type { ComponentChildren } from 'preact'\nimport { useFocus } from '../hooks/index.js'\nimport type { Octicon } from './index.js'\nimport { Btn } from './index.js'\n\ninterface BtnMenuProps extends JSX.HTMLAttributes {\n\ticon?: keyof typeof Octicon,\n\tlabel?: string,\n\trelative?: boolean,\n\ttooltip?: string,\n\ttooltipLoc?: 'se' | 'sw' | 'nw',\n\tchildren: ComponentChildren,\n}\nexport function BtnMenu(props: BtnMenuProps) {\n\tconst { icon, label, relative, tooltip, tooltipLoc, children } = props\n\tconst [active, setActive] = useFocus()\n\n\treturn
    \n\t\t setActive()} />\n\t\t{active &&
    \n\t\t\t{children}\n\t\t
    }\n\t
    \n}\n","import type { ComponentChildren } from 'preact'\n\ninterface Props {\n\ttitle?: ComponentChildren,\n\tlink?: string,\n\toverlay?: ComponentChildren,\n\tchildren?: ComponentChildren,\n}\nexport function Card({ title, overlay, link, children }: Props) {\n\tconst content = <>\n\t\t{overlay && {overlay}}\n\t\t
    \n\t\t\t{title &&

    {title}

    }\n\t\t\t{children}\n\t\t
    \n\t\n\n\treturn link === undefined\n\t\t?\t
    {content}
    \n\t\t: {content}\n}\n","const scriptRel = 'modulepreload';const seen = {};const base = '/';export const __vitePreload = function preload(baseModule, deps) {\n // @ts-ignore\n if (!__VITE_IS_MODERN__ || !deps || deps.length === 0) {\n return baseModule();\n }\n return Promise.all(deps.map((dep) => {\n // @ts-ignore\n dep = `${base}${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(new Error(`Unable to preload CSS for ${dep}`)));\n });\n }\n })).then(() => baseModule());\n}","import { useEffect, useMemo, useState } from 'preact/hooks'\nimport { Octicon } from './index.js'\n\ntype ErrorPanelProps = {\n\terror: string | Error,\n\tonDismiss?: () => unknown,\n}\nexport function ErrorPanel({ error, onDismiss }: ErrorPanelProps) {\n\tconst [stackVisible, setStackVisible] = useState(false)\n\tconst [stack, setStack] = useState(undefined)\n\n\tuseEffect(() => {\n\t\tif (error instanceof Error) {\n\t\t\tconst stack = error.stack!.split('\\n').map(line => {\n\t\t\t\treturn line.replace(/^(\\s+)at (?:async )?(https?:.*)/, '$1at ($2)')\n\t\t\t})\n\t\t\tsetStack(stack.join('\\n'))\n\t\t\timport('sourcemapped-stacktrace').then(({ mapStackTrace }) => {\n\t\t\t\tmapStackTrace(stack.join('\\n'), (mapped) => {\n\t\t\t\t\tconst mappedStack = mapped.map(line => {\n\t\t\t\t\t\treturn line.replace(/..\\/..\\/src\\//, 'src/')\n\t\t\t\t\t}).join('\\n')\n\t\t\t\t\tsetStack(mappedStack)\n\t\t\t\t})\n\t\t\t})\n\t\t}\n\t}, [error])\n\n\tconst url = useMemo(() => {\n\t\tlet url ='https://github.com/misode/misode.github.io/issues/new'\n\t\tif (error instanceof Error) {\n\t\t\turl += `?title=${encodeURIComponent(`${error.name}: ${error.message}`)}`\n\t\t\tif (stack) {\n\t\t\t\turl += `&body=${encodeURIComponent(`\\`\\`\\`\\n${error.name}: ${error.message}\\n${stack}\\n\\`\\`\\`\\n`)}`\n\t\t\t}\n\t\t} else {\n\t\t\turl += `?title=${encodeURIComponent(error.toString())}`\n\t\t}\n\t\treturn url\n\t}, [error, stack])\n\n\treturn
    \n\t\t{onDismiss &&
    {Octicon.x}
    }\n\t\t

    \n\t\t\t{error instanceof Error ? error.message : error}\n\t\t\t{stack && setStackVisible(!stackVisible)}>\n\t\t\t\t{Octicon.info}\n\t\t\t}\n\t\t

    \n\t\t{stack && stackVisible &&
    {stack}
    }\n\t\t

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

    \n\t
    \n}\n","const ARTICLE_PREFIX = 'https://www.minecraft.net/article/'\n\nconst ARTICLE_OVERRIDES = new Map(Object.entries({\n\t'1.16-pre2': 'minecraft-1-16-pre-release-1',\n\t'1.16-pre4': 'minecraft-1-16-pre-release-3',\n\t'1.16-pre5': 'minecraft-1-16-pre-release-3',\n\t'1.16-pre7': 'minecraft-1-16-pre-release-6',\n\t'1.16-pre8': 'minecraft-1-16-pre-release-6',\n\t'1.16-rc1': 'minecraft-1-16-release-candidate',\n\t1.16: 'nether-update-java',\n\t'1.16.2-pre3': 'minecraft-1-16-2-pre-release-2',\n\t'1.16.2-rc1': 'minecraft-1-16-2-pre-release-2',\n\t'1.16.2-rc2': 'minecraft-1-16-2-pre-release-2',\n\t'1.17-pre3': 'minecraft-1-17-pre-release-2',\n\t'1.17-pre4': 'minecraft-1-17-pre-release-2',\n\t'1.17-pre5': 'minecraft-1-17-pre-release-2',\n\t'1.17.1-pre3': 'minecraft-1-17-1-pre-release-2',\n\t1.17: 'caves---cliffs--part-i-out-today-java',\n\t'1.18-pre3': 'minecraft-1-18-pre-release-2',\n\t'1.18-pre4': 'minecraft-1-18-pre-release-2',\n\t'1.18-pre5': 'minecraft-1-18-pre-release-2',\n\t'1.18-pre7': 'minecraft-1-18-pre-release-6',\n\t'1.18-pre8': 'minecraft-1-18-pre-release-6',\n\t1.18: 'caves---cliffs--part-ii-out-today-java',\n\t'1.18.2-pre3': 'minecraft-1-18-2-pre-release-2',\n\t'1.18.2-pre5': 'minecraft-1-18-2-pre-release-4',\n\t'1.19-pre3': 'minecraft-1-19-pre-release-2',\n\t'1.19-pre5': 'minecraft-1-19-pre-release-4',\n\t1.19: 'the-wild-update-out-today-java',\n\t'1.19.1-pre4': 'minecraft-1-19-1-pre-release-3',\n}))\n\nexport function getArticleLink(version: string): string | undefined {\n\tconst override = ARTICLE_OVERRIDES.get(version)\n\tif (override) {\n\t\treturn ARTICLE_PREFIX + override\n\t}\n\tlet match\n\tif ((match = version.match(/^(\\d\\dw\\d\\d)[a-z]$/)) && match[1]) {\n\t\treturn ARTICLE_PREFIX + 'minecraft-snapshot-' + match[1] + 'a'\n\t}\n\tif ((match = version.match(/^(\\d+\\.\\d+(?:\\.\\d+)?)-pre([0-9]+)$/)) && match[1] && match[2]) {\n\t\treturn ARTICLE_PREFIX + 'minecraft-' + match[1].replaceAll('.', '-') + '-pre-release-' + match[2]\n\t}\n\tif ((match = version.match(/^(\\d+\\.\\d+(?:\\.\\d+)?)-rc[0-9]+$/)) && match[1]) {\n\t\treturn ARTICLE_PREFIX + 'minecraft-' + match[1].replaceAll('.', '-') + '-release-candidate-1' \n\t}\n\tif (version.match(/^\\d+\\.\\d+\\.\\d+$/)) {\n\t\treturn ARTICLE_PREFIX + 'minecraft-java-edition-' + version.replaceAll('.', '-')\n\t}\n\treturn undefined\n}\n","import type { CollectionRegistry } from '@mcschema/core'\nimport config from '../Config.js'\nimport { message } from '../Utils.js'\nimport type { BlockStateRegistry, VersionId } from './Schemas.js'\n\nconst CACHE_NAME = 'misode-v2'\nconst CACHE_LATEST_VERSION = 'cached_latest_version'\nconst CACHE_PATCH = 'misode_cache_patch'\n\ntype Version = {\n\tid: string,\n\tref?: string,\n\tdynamic?: boolean,\n}\n\ndeclare var __LATEST_VERSION__: string\nconst latestVersion = __LATEST_VERSION__ ?? ''\nconst mcmetaUrl = 'https://raw.githubusercontent.com/misode/mcmeta'\nconst mcmetaTarballUrl = 'https://github.com/misode/mcmeta/tarball'\nconst changesUrl = 'https://raw.githubusercontent.com/misode/technical-changes'\n\ntype McmetaTypes = 'summary' | 'data' | 'data-json' | 'assets' | 'assets-json' | 'registries' | 'atlas'\n\ninterface RefInfo {\n\tdynamic?: boolean\n\tref?: string\n}\n\nfunction mcmeta(version: RefInfo, type: McmetaTypes, tarball?: boolean) {\n\treturn `${tarball ? mcmetaTarballUrl : mcmetaUrl}/${version.dynamic ? type : `${version.ref}-${type}`}`\n}\n\nasync function validateCache(version: RefInfo) {\n\tawait applyPatches()\n\tif (version.dynamic) {\n\t\tif (localStorage.getItem(CACHE_LATEST_VERSION) !== latestVersion) {\n\t\t\tawait deleteMatching(url => url.startsWith(`${mcmetaUrl}/summary/`) || url.startsWith(`${mcmetaUrl}/data/`) || url.startsWith(`${mcmetaUrl}/assets/`) || url.startsWith(`${mcmetaUrl}/registries/`) || url.startsWith(`${mcmetaUrl}/atlas/`) || url.startsWith(`${mcmetaTarballUrl}/assets-json/`))\n\t\t\tlocalStorage.setItem(CACHE_LATEST_VERSION, latestVersion)\n\t\t}\n\t\tversion.ref = latestVersion\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\n\tawait validateCache(version)\n\n\tawait Promise.all([\n\t\tfetchRegistries(version, collectionTarget),\n\t\tfetchBlockStateMap(version, blockStateTarget),\n\t])\n}\n\nasync function fetchRegistries(version: Version, target: CollectionRegistry) {\n\tconsole.debug(`[fetchRegistries] ${version.id}`)\n\ttry {\n\t\tconst data = await cachedFetch(`${mcmeta(version, 'summary')}/registries/data.min.json`)\n\t\tfor (const id in data) {\n\t\t\ttarget.register(id, data[id].map((e: string) => 'minecraft:' + e))\n\t\t}\n\t} catch (e) {\n\t\tconsole.warn('Error occurred while fetching registries:', message(e))\n\t}\n}\n\nasync function fetchBlockStateMap(version: Version, target: BlockStateRegistry) {\n\tconsole.debug(`[fetchBlockStateMap] ${version.id}`)\n\ttry {\n\t\tconst data = await cachedFetch(`${mcmeta(version, 'summary')}/blocks/data.min.json`)\n\t\tfor (const id in data) {\n\t\t\ttarget['minecraft:' + id] = {\n\t\t\t\tproperties: data[id][0],\n\t\t\t\tdefault: data[id][1],\n\t\t\t}\n\t\t}\n\t} catch (e) {\n\t\tconsole.warn('Error occurred while fetching block state map:', message(e))\n\t}\n}\n\nexport async function fetchPreset(versionId: VersionId, registry: string, id: string) {\n\tconsole.debug(`[fetchPreset] ${versionId} ${registry} ${id}`)\n\tconst version = config.versions.find(v => v.id === versionId)!\n\ttry {\n\t\tlet url\n\t\tif (id.startsWith('immersive_weathering:')) {\n\t\t\turl = `https://raw.githubusercontent.com/AstralOrdana/Immersive-Weathering/main/src/main/resources/data/immersive_weathering/block_growths/${id.slice(21)}.json`\n\t\t} else {\n\t\t\tconst type = ['blockstates', 'models', 'font'].includes(registry) ? 'assets' : 'data'\n\t\t\turl = `${mcmeta(version, type)}/${type}/minecraft/${registry}/${id}.json`\n\t\t}\n\t\tconst res = await fetch(url)\n\t\treturn await res.json()\n\t} catch (e) {\n\t\tthrow new Error(`Error occurred while fetching ${registry} preset ${id}: ${message(e)}`)\n\t}\n}\n\nexport async function fetchAllPresets(versionId: VersionId, registry: string) {\n\tconsole.debug(`[fetchAllPresets] ${versionId} ${registry}`)\n\tconst version = config.versions.find(v => v.id === versionId)!\n\tawait validateCache(version)\n\ttry {\n\t\tconst type = ['block_definition', 'model', 'font'].includes(registry) ? 'assets' : 'data'\n\t\treturn new Map(Object.entries(await cachedFetch(`${mcmeta(version, 'summary')}/${type}/${registry}/data.min.json`)))\n\t} catch (e) {\n\t\tthrow new Error(`Error occurred while fetching all ${registry} presets: ${message(e)}`)\n\t}\n}\n\nexport type SoundEvents = {\n\t[key: string]: {\n\t\tsounds: (string | { name: string })[],\n\t},\n}\nexport async function fetchSounds(versionId: VersionId): Promise {\n\tconst version = config.versions.find(v => v.id === versionId)!\n\tawait validateCache(version)\n\ttry {\n\t\tconst url = `${mcmeta(version, 'summary')}/sounds/data.min.json`\n\t\treturn await cachedFetch(url)\n\t} catch (e) {\n\t\tthrow new Error(`Error occurred while fetching sounds for ${version}: ${message(e)}`)\n\t}\n}\n\nexport function getSoundUrl(versionId: VersionId, path: string) {\n\tconst version = config.versions.find(v => v.id === versionId)!\n\treturn `${mcmeta(version, 'assets')}/assets/minecraft/sounds/${path}.ogg`\n}\n\nexport type VersionMeta = {\n\tid: string,\n\tname: string,\n\trelease_target: string,\n\ttype: 'snapshot' | 'release',\n\tstable: boolean,\n\tdata_version: number,\n\tprotocol_version: number,\n\tdata_pack_version: number,\n\tresource_pack_version: number,\n\tbuild_time: string,\n\trelease_time: string,\n\tsha1: string,\n}\nexport async function fetchVersions(): Promise {\n\tawait validateCache({ dynamic: true })\n\ttry {\n\t\treturn cachedFetch(`${mcmeta({ dynamic: true }, 'summary')}/versions/data.min.json`, { refresh: true })\n\t} catch (e) {\n\t\tthrow new Error(`Error occured while fetching versions: ${message(e)}`)\n\t}\n}\n\nexport function getAssetUrl(versionId: VersionId, type: string, path: string): string {\n\tconst version = config.versions.find(v => v.id === versionId)!\n\treturn `${mcmeta(version, 'assets')}/assets/minecraft/${type}/${path}.png`\n}\n\nexport async function fetchResources(versionId: VersionId) {\n\tconst version = config.versions.find(v => v.id === versionId)!\n\tawait validateCache(version)\n\ttry {\n\t\tconst [models, uvMapping, atlas] = await Promise.all([\n\t\t\tfetchAllPresets(versionId, 'model'),\n\t\t\tcachedFetch(`${mcmeta(version, 'atlas')}/all/data.min.json`),\n\t\t\tloadImage(`${mcmeta(version, 'atlas')}/all/atlas.png`),\n\t\t])\n\t\treturn { models, uvMapping, atlas }\n\t} catch (e) {\n\t\tthrow new Error(`Error occured while fetching resources: ${message(e)}`)\n\t}\n}\n\nasync function loadImage(src: string) {\n\treturn new Promise(res => {\n\t\tconst image = new Image()\n\t\timage.onload = () => res(image)\n\t\timage.crossOrigin = 'Anonymous'\n\t\timage.src = src\n\t})\n}\n\n/*\nasync function loadImage(src: string) {\n\tconst buffer = await cachedFetch(src, { decode: r => r.arrayBuffer() })\n\tconst blob = new Blob([buffer], { type: 'image/png' })\n\tconst img = new Image()\n\timg.src = URL.createObjectURL(blob)\n\treturn new Promise((res) => {\n\t\timg.onload = () => {\n\t\t\tconst canvas = document.createElement('canvas')\n\t\t\tconst ctx = canvas.getContext('2d')!\n\t\t\tctx.drawImage(img, 0, 0)\n\t\t\tconst imgData = ctx.getImageData(0, 0, img.width, img.height)\n\t\t\tres(imgData)\n\t\t}\n\t})\n}\n*/\n\nexport interface Change {\n\tgroup: string,\n\tversion: string,\n\torder: number,\n\ttags: string[],\n\tcontent: string,\n}\n\nexport async function fetchChangelogs(): Promise {\n\ttry {\n\t\tconst [changes, versions] = await Promise.all([\n\t\t\tcachedFetch[]>(`${changesUrl}/generated/changes.json`, { refresh: true }),\n\t\t\tfetchVersions(),\n\t\t])\n\t\tconst versionMap = new Map(versions.map((v, i) => [v.id, versions.length - i]))\n\t\treturn changes.map(c => ({ ...c, order: versionMap.get(c.version) ?? 0 }))\n\t} catch (e) {\n\t\tthrow new Error(`Error occured while fetching technical changes: ${message(e)}`)\n\t}\n}\n\ninterface FetchOptions {\n\tdecode?: (r: Response) => Promise\n\trefresh?: boolean\n}\n\nconst REFRESHED = new Set()\n\nasync function cachedFetch(url: string, { decode = (r => r.json()), refresh }: FetchOptions = {}): Promise {\n\ttry {\n\t\tconst cache = await caches.open(CACHE_NAME)\n\t\tconsole.debug(`[cachedFetch] Opened cache ${CACHE_NAME} ${url}`)\n\t\tconst cacheResponse = await cache.match(url)\n\n\t\tif (refresh) {\n\t\t\tif (REFRESHED.has(url)) {\n\t\t\t\trefresh = false\n\t\t\t} else {\n\t\t\t\tREFRESHED.add(url)\n\t\t\t}\n\t\t}\n\n\t\tif (refresh) {\n\t\t\ttry {\n\t\t\t\treturn await fetchAndCache(cache, url, decode)\n\t\t\t} catch (e) {\n\t\t\t\tif (cacheResponse && cacheResponse.ok) {\n\t\t\t\t\tconsole.debug(`[cachedFetch] Cannot refresh, using cache ${url}`)\n\t\t\t\t\treturn await decode(cacheResponse)\n\t\t\t\t}\n\t\t\t\tthrow new Error('Failed to fetch')\n\t\t\t}\n\t\t} else {\n\t\t\tif (cacheResponse && cacheResponse.ok) {\n\t\t\t\tconsole.debug(`[cachedFetch] Retrieving cached data ${url}`)\n\t\t\t\treturn await decode(cacheResponse)\n\t\t\t}\n\t\t\treturn await fetchAndCache(cache, url, decode)\n\t\t}\n\t} catch (e: any) {\n\t\tconsole.warn(`[cachedFetch] Failed to open cache ${CACHE_NAME}: ${e.message}`)\n\n\t\tconsole.debug(`[cachedFetch] Fetching data ${url}`)\n\t\tconst fetchResponse = await fetch(url)\n\t\tconst fetchData = await decode(fetchResponse)\n\t\treturn fetchData\n\t}\n}\n\nasync function fetchAndCache(cache: Cache, url: string, decode: (r: Response) => Promise) {\n\tconsole.debug(`[cachedFetch] Fetching data ${url}`)\n\tconst fetchResponse = await fetch(url)\n\tconst fetchClone = fetchResponse.clone()\n\tconst fetchData = await decode(fetchResponse)\n\tawait cache.put(url, fetchClone)\n\treturn fetchData\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 PATCHES: (() => Promise)[] = [\n\tasync () => {\n\t\t['1.15', '1.16', '1.17'].forEach(v => localStorage.removeItem(`cache_${v}`));\n\t\t['mcdata_master', 'vanilla_datapack_summary'].forEach(v => localStorage.removeItem(`cached_${v}`))\n\t\tcaches.delete('misode-v1')\n\t},\n\tasync () => {\n\t\tawait deleteMatching(url => url.startsWith(`${mcmetaUrl}/1.18.2-summary/`))\n\t},\n]\n\nasync function applyPatches() {\n\tconst start = parseInt(localStorage.getItem(CACHE_PATCH) ?? '0')\n\tfor (let i = start + 1; i <= PATCHES.length; i +=1) {\n\t\tconst patch = PATCHES[i - 1]\n\t\tif (patch) {\n\t\t\tawait patch()\n\t\t}\n\t\tlocalStorage.setItem(CACHE_PATCH, i.toFixed())\n\t}\n}\n","import type { CollectionRegistry, ResourceType, SchemaRegistry } from '@mcschema/core'\nimport { BooleanNode, Case, ChoiceNode, ListNode, MapNode, NumberNode, ObjectNode, Opt, Reference as RawReference, StringNode as RawStringNode, Switch } from '@mcschema/core'\n\nconst ID = 'immersive_weathering'\n\nexport function initImmersiveWeathering(schemas: SchemaRegistry, collections: CollectionRegistry) {\n\tconst Reference = RawReference.bind(undefined, schemas)\n\tconst StringNode = RawStringNode.bind(undefined, collections)\n\n\tconst Tag = (id: Exclude) => ChoiceNode([\n\t\t{\n\t\t\ttype: 'string',\n\t\t\tnode: StringNode({ validator: 'resource', params: { pool: id, allowTag: true } }),\n\t\t\tchange: (v: unknown) => {\n\t\t\t\tif (Array.isArray(v) && typeof v[0] === 'string' && !v[0].startsWith('#')) {\n\t\t\t\t\treturn v[0]\n\t\t\t\t}\n\t\t\t\treturn undefined\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'list',\n\t\t\tnode: ListNode(\n\t\t\t\tStringNode({ validator: 'resource', params: { pool: id } })\n\t\t\t),\n\t\t\tchange: (v: unknown) => {\n\t\t\t\tif (typeof v === 'string' && !v.startsWith('#')) {\n\t\t\t\t\treturn [v]\n\t\t\t\t}\n\t\t\t\treturn []\n\t\t\t},\n\t\t},\n\t], { choiceContext: 'tag' })\n\n\tschemas.register(`${ID}:block_growth`, ObjectNode({\n\t\tarea_condition: Reference(`${ID}:area_condition`),\n\t\tposition_predicates: Opt(ListNode(\n\t\t\tReference(`${ID}:position_test`)\n\t\t)),\n\t\tgrowth_chance: NumberNode({ min: 0, max: 1 }),\n\t\tgrowth_for_face: ListNode(\n\t\t\tObjectNode({\n\t\t\t\tdirection: Opt(StringNode({ enum: 'direction' })),\n\t\t\t\tweight: Opt(NumberNode({ integer: true })),\n\t\t\t\tgrowth: ListNode(\n\t\t\t\t\tObjectNode({\n\t\t\t\t\t\tdata: Reference(`${ID}:block_pair`),\n\t\t\t\t\t\tweight: NumberNode({ integer: true }),\n\t\t\t\t\t})\n\t\t\t\t),\n\t\t\t}, { category: 'pool' })\n\t\t),\n\t\towners: ListNode(\n\t\t\tStringNode({ validator: 'resource', params: { pool: 'block' } })\n\t\t),\n\t\treplacing_target: Reference(`${ID}:rule_test`),\n\t\ttarget_self: Opt(BooleanNode()),\n\t\tdestroy_target: Opt(BooleanNode()),\n\t}, { context: `${ID}.block_growth` }))\n\n\tschemas.register(`${ID}:area_condition`, ObjectNode({\n\t\ttype: StringNode({ enum: ['generate_if_not_too_many', 'neighbor_based_generation'] }),\n\t\t[Switch]: [{ push: 'type' }],\n\t\t[Case]: {\n\t\t\tgenerate_if_not_too_many: {\n\t\t\t\tradiusX: NumberNode({ integer: true }),\n\t\t\t\tradiusY: NumberNode({ integer: true }),\n\t\t\t\tradiusZ: NumberNode({ integer: true }),\n\t\t\t\trequiredAmount: NumberNode({ integer: true }),\n\t\t\t\tyOffset: Opt(NumberNode({ integer: true })),\n\t\t\t\tmust_have: Opt(Reference(`${ID}:rule_test`)),\n\t\t\t\tmust_not_have: Opt(Reference(`${ID}:rule_test`)),\n\t\t\t\tincludes: Opt(Tag('block')),\n\t\t\t},\n\t\t\tneighbor_based_generation: {\n\t\t\t\tmust_have: Reference(`${ID}:rule_test`),\n\t\t\t\tmust_not_have: Opt(Reference(`${ID}:rule_test`)),\n\t\t\t\trequired_amount: Opt(NumberNode({ integer: true })),\n\t\t\t\tdirections: ListNode(\n\t\t\t\t\tStringNode({ enum: 'direction' })\n\t\t\t\t),\n\t\t\t},\n\t\t},\n\t}, { context: `${ID}.area_condition` }))\n\n\tschemas.register(`${ID}:block_pair`, ObjectNode({\n\t\tblock: Reference(`${ID}:block_state`),\n\t\tabove_block: Opt(Reference(`${ID}:block_state`)),\n\t}, { context: `${ID}.block_pair` }))\n\n\tschemas.register(`${ID}:block_state`, ObjectNode({\n\t\tName: StringNode({ validator: 'resource', params: { pool: 'block' } }),\n\t\tProperties: Opt(MapNode(\n\t\t\tStringNode(),\n\t\t\tStringNode(),\n\t\t)),\n\t}, { context: 'block_state' }))\n\n\tschemas.register(`${ID}:position_test`, ObjectNode({\n\t\tpredicate_type: StringNode({ enum: ['biome_match', 'day_test', 'nand', 'precipitation_test', 'temperature_range'] }),\n\t\t[Switch]: [{ push: 'predicate_type' }],\n\t\t[Case]: {\n\t\t\tbiome_match: {\n\t\t\t\tbiomes: Tag('$worldgen/biome'),\n\t\t\t},\n\t\t\tday_test: {\n\t\t\t\tday: BooleanNode(),\n\t\t\t},\n\t\t\tnand: {\n\t\t\t\tpredicates: ListNode(\n\t\t\t\t\tReference(`${ID}:position_test`)\n\t\t\t\t),\n\t\t\t},\n\t\t\tprecipitation_test: {\n\t\t\t\tprecipitation: StringNode({ enum: ['none', 'rain', 'snow']}),\n\t\t\t},\n\t\t\ttemperature_range: {\n\t\t\t\tmin: NumberNode(),\n\t\t\t\tmax: NumberNode(),\n\t\t\t\tuse_local_pos: Opt(BooleanNode()),\n\t\t\t},\n\t\t},\n\t}, { context: `${ID}.position_test`, category: 'predicate' }))\n\n\tcollections.register(`${ID}:rule_test`, [\n\t\t...collections.get('rule_test'),\n\t\t'immersive_weathering:block_set_match',\n\t\t'immersive_weathering:fluid_match',\n\t\t'immersive_weathering:tree_log',\n\t])\n\n\tschemas.register(`${ID}:rule_test`, ObjectNode({\n\t\tpredicate_type: StringNode({ validator: 'resource', params: { pool: `${ID}:rule_test` as any } }),\n\t\t[Switch]: [{ push: 'predicate_type' }],\n\t\t[Case]: {\n\t\t\t'minecraft:block_match': {\n\t\t\t\tblock: StringNode({ validator: 'resource', params: { pool: 'block' } }),\n\t\t\t},\n\t\t\t'minecraft:blockstate_match': {\n\t\t\t\tblock_state: Reference('block_state'),\n\t\t\t},\n\t\t\t'minecraft:random_block_match': {\n\t\t\t\tblock: StringNode({ validator: 'resource', params: { pool: 'block' } }),\n\t\t\t\tprobability: NumberNode({ min: 0, max: 1 }),\n\t\t\t},\n\t\t\t'minecraft:random_blockstate_match': {\n\t\t\t\tblock_state: Reference('block_state'),\n\t\t\t\tprobability: NumberNode({ min: 0, max: 1 }),\n\t\t\t},\n\t\t\t'minecraft:tag_match': {\n\t\t\t\ttag: StringNode({ validator: 'resource', params: { pool: '$tag/block' }}),\n\t\t\t},\n\t\t\t'immersive_weathering:block_set_match': {\n\t\t\t\tblocks: Tag('block'),\n\t\t\t\tprobability: Opt(NumberNode({ min: 0, max: 1 })),\n\t\t\t},\n\t\t\t'immersive_weathering:fluid_match': {\n\t\t\t\tfluid: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\n\t\t\t},\n\t\t},\n\t}, { context: 'rule_test', disableSwitchContext: true }))\n\n\tcollections.register('block_growth', [\n\t\t'immersive_weathering:brain_coral',\n\t\t'immersive_weathering:bubble_coral',\n\t\t'immersive_weathering:cracked_mud_rivers',\n\t\t'immersive_weathering:crimson_nylium',\n\t\t'immersive_weathering:cryosol',\n\t\t'immersive_weathering:farmland_rare_weeds',\n\t\t'immersive_weathering:farmland_weeds',\n\t\t'immersive_weathering:fire_coral',\n\t\t'immersive_weathering:fire_soot',\n\t\t'immersive_weathering:fluvisol',\n\t\t'immersive_weathering:grass_base',\n\t\t'immersive_weathering:grass_block_badlands',\n\t\t'immersive_weathering:grass_block_bamboo_jungle',\n\t\t'immersive_weathering:grass_block_birch_forest',\n\t\t'immersive_weathering:grass_block_dark_forest',\n\t\t'immersive_weathering:grass_block_flower_forest',\n\t\t'immersive_weathering:grass_block_forest',\n\t\t'immersive_weathering:grass_block_jungle',\n\t\t'immersive_weathering:grass_block_lush_caves',\n\t\t'immersive_weathering:grass_block_old_growth_spruce',\n\t\t'immersive_weathering:grass_block_plains',\n\t\t'immersive_weathering:grass_block_sunflower_plains',\n\t\t'immersive_weathering:grass_block_swamp',\n\t\t'immersive_weathering:grass_block_taiga',\n\t\t'immersive_weathering:grass_block_wooded_badlands',\n\t\t'immersive_weathering:hanging_roots',\n\t\t'immersive_weathering:horn_coral',\n\t\t'immersive_weathering:humus',\n\t\t'immersive_weathering:icicle_growth',\n\t\t'immersive_weathering:large_fern',\n\t\t'immersive_weathering:magma',\n\t\t'immersive_weathering:mycelium',\n\t\t'immersive_weathering:podzol',\n\t\t'immersive_weathering:red_sand_weathering',\n\t\t'immersive_weathering:rooted_dirt',\n\t\t'immersive_weathering:rooted_grass',\n\t\t'immersive_weathering:sand_weathering',\n\t\t'immersive_weathering:sapling',\n\t\t'immersive_weathering:sapling_nether',\n\t\t'immersive_weathering:silt',\n\t\t'immersive_weathering:tall_grass',\n\t\t'immersive_weathering:tall_seagrass',\n\t\t'immersive_weathering:tube_coral',\n\t\t'immersive_weathering:vertisol',\n\t\t'immersive_weathering:warped_nylium',\n\t])\n}\n","import type { CollectionRegistry, SchemaRegistry } from '@mcschema/core'\nimport { initImmersiveWeathering } from './ImmersiveWeathering.js'\n\nexport * from './ImmersiveWeathering.js'\n\nexport function initPartners(schemas: SchemaRegistry, collections: CollectionRegistry) {\n\tinitImmersiveWeathering(schemas, collections)\n}\n","import type { CollectionRegistry, INode, SchemaRegistry } from '@mcschema/core'\nimport { ChoiceNode, DataModel, Reference, StringNode } from '@mcschema/core'\nimport config from '../Config.js'\nimport { initPartners } from '../partners/index.js'\nimport { message } from '../Utils.js'\nimport { fetchData } from './DataFetcher.js'\n\nexport const VersionIds = ['1.15', '1.16', '1.17', '1.18', '1.18.2', '1.19'] as const\nexport type VersionId = typeof VersionIds[number]\n\nexport const DEFAULT_VERSION: VersionId = '1.19'\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]: () => Promise<{\n\t\tgetCollections: () => CollectionRegistry,\n\t\tgetSchemas: (collections: CollectionRegistry) => SchemaRegistry,\n\t}>\n} = {\n\t1.15: () => import('@mcschema/java-1.15'),\n\t1.16: () => import('@mcschema/java-1.16'),\n\t1.17: () => import('@mcschema/java-1.17'),\n\t1.18: () => import('@mcschema/java-1.18'),\n\t'1.18.2': () => import('@mcschema/java-1.18.2'),\n\t1.19: () => import('@mcschema/java-1.19'),\n}\n\nexport let CachedDecorator: INode\nexport let CachedFeature: INode\nexport let CachedCollections: CollectionRegistry\nexport let CachedSchemas: SchemaRegistry\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 mcschema = await versionGetter[id]()\n\t\t\t\tconst collections = mcschema.getCollections()\n\t\t\t\tconst blockStates: BlockStateRegistry = {}\n\t\t\t\tawait fetchData(id, collections, blockStates)\n\t\t\t\tconst schemas = mcschema.getSchemas(collections)\n\t\t\t\tinitPartners(schemas, 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\tCachedCollections = versionData.collections\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 async function getSchemas(version: VersionId): Promise {\n\tconst versionData = await getVersion(version)\n\tCachedSchemas = versionData.schemas\n\treturn versionData.schemas\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","// Copyright (c) 2013 Pieroxy \n// This work is free. You can redistribute it and/or modify it\n// under the terms of the WTFPL, Version 2\n// For more information see LICENSE.txt or http://www.wtfpl.net/\n//\n// For more information, the home page:\n// http://pieroxy.net/blog/pages/lz-string/testing.html\n//\n// LZ-based compression algorithm, version 1.4.4\nvar LZString = (function() {\n\n// private property\nvar f = String.fromCharCode;\nvar keyStrBase64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nvar keyStrUriSafe = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$\";\nvar baseReverseDic = {};\n\nfunction getBaseValue(alphabet, character) {\n if (!baseReverseDic[alphabet]) {\n baseReverseDic[alphabet] = {};\n for (var i=0 ; i>> 8;\n buf[i*2+1] = current_value % 256;\n }\n return buf;\n },\n\n //decompress from uint8array (UCS-2 big endian format)\n decompressFromUint8Array:function (compressed) {\n if (compressed===null || compressed===undefined){\n return LZString.decompress(compressed);\n } else {\n var buf=new Array(compressed.length/2); // 2 bytes per character\n for (var i=0, TotalLen=buf.length; i> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++;\n context_w = String(context_c);\n }\n }\n\n // Output the code for w.\n if (context_w !== \"\") {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {\n if (context_w.charCodeAt(0)<256) {\n for (i=0 ; i> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n }\n\n // Mark the end of the stream\n value = 2;\n for (i=0 ; i> 1;\n }\n\n // Flush the last char\n while (true) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data.push(getCharFromInt(context_data_val));\n break;\n }\n else context_data_position++;\n }\n return context_data.join('');\n },\n\n decompress: function (compressed) {\n if (compressed == null) return \"\";\n if (compressed == \"\") return null;\n return LZString._decompress(compressed.length, 32768, function(index) { return compressed.charCodeAt(index); });\n },\n\n _decompress: function (length, resetValue, getNextValue) {\n var dictionary = [],\n next,\n enlargeIn = 4,\n dictSize = 4,\n numBits = 3,\n entry = \"\",\n result = [],\n i,\n w,\n bits, resb, maxpower, power,\n c,\n data = {val:getNextValue(0), position:resetValue, index:1};\n\n for (i = 0; i < 3; i += 1) {\n dictionary[i] = i;\n }\n\n bits = 0;\n maxpower = Math.pow(2,2);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (next = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 2:\n return \"\";\n }\n dictionary[3] = c;\n w = c;\n result.push(c);\n while (true) {\n if (data.index > length) {\n return \"\";\n }\n\n bits = 0;\n maxpower = Math.pow(2,numBits);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (c = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 2:\n return result.join('');\n }\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n if (dictionary[c]) {\n entry = dictionary[c];\n } else {\n if (c === dictSize) {\n entry = w + w.charAt(0);\n } else {\n return null;\n }\n }\n result.push(entry);\n\n // Add w+entry[0] to the dictionary.\n dictionary[dictSize++] = w + entry.charAt(0);\n enlargeIn--;\n\n w = entry;\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n }\n }\n};\n return LZString;\n})();\n\nif (typeof define === 'function' && define.amd) {\n define(function () { return LZString; });\n} else if( typeof module !== 'undefined' && module != null ) {\n module.exports = LZString\n}\n","import lz from 'lz-string'\nimport type { VersionId } from './Schemas.js'\n\nconst API_PREFIX = 'https://z15g7can.directus.app/items'\n\nconst ShareCache = new Map()\n\nexport async function shareSnippet(type: string, version: VersionId, jsonData: any, show_preview: boolean) {\n\ttry {\n\t\tconst raw = JSON.stringify(jsonData)\n\t\tconst data = lz.compressToBase64(raw)\n\t\tconsole.debug('Compression rate', raw.length / raw.length)\n\t\tconst body = JSON.stringify({ data, type, version, show_preview })\n\t\tlet id = ShareCache.get(body)\n\t\tif (!id) {\n\t\t\tconst snippet = await fetchApi('/snippets', body)\n\t\t\tShareCache.set(body, snippet.id)\n\t\t\tid = snippet.id as string\n\t\t}\n\t\treturn { id, length: raw.length, compressed: data.length, rate: raw.length / data.length }\n\t} catch (e) {\n\t\tif (e instanceof Error) {\n\t\t\te.message = `Error creating share link: ${e.message}`\n\t\t}\n\t\tthrow e\n\t}\n}\n\nexport async function getSnippet(id: string) {\n\ttry {\n\t\tconst snippet = await fetchApi(`/snippets/${id}`)\n\t\treturn {\n\t\t\t...snippet,\n\t\t\tdata: JSON.parse(lz.decompressFromBase64(snippet.data) ?? '{}'),\n\t\t}\n\t} catch (e) {\n\t\tif (e instanceof Error) {\n\t\t\te.message = `Error loading shared content: ${e.message}`\n\t\t}\n\t\tthrow e\n\t}\n}\n\nasync function fetchApi(url: string, body?: string) {\n\tconst res = await fetch(API_PREFIX + url, body ? {\n\t\tmethod: 'post',\n\t\theaders: { 'Content-Type': 'application/json' },\n\t\tbody,\n\t} : undefined)\n\tconst data = await res.json()\n\tif (data.data) {\n\t\treturn data.data\n\t}\n\tthrow new Error(data.errors?.[0]?.message ?? 'Unknown error')\n}\n","import yaml from 'js-yaml'\nimport { Store } from '../Store.js'\n\nconst INDENTS: Record = {\n\t'2_spaces': 2,\n\t'4_spaces': 4,\n\ttabs: '\\t',\n\tminified: undefined,\n}\n\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nlet commentJson: typeof import('comment-json') | null = null\n\nconst FORMATS: Record Promise,\n\tstringify: (v: unknown, indentation: string | number | undefined) => string,\n}> = {\n\tjson: {\n\t\tparse: async (v) => {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(v)\n\t\t\t} catch (e) {\n\t\t\t\tcommentJson = await import('comment-json')\n\t\t\t\treturn commentJson.parse(v)\n\t\t\t}\n\t\t},\n\t\tstringify: (v, i) => (commentJson ?? JSON).stringify(v, null, i) + '\\n',\n\t},\n\tyaml: {\n\t\tparse: async (v) => yaml.load(v),\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\nexport function stringifySource(data: unknown, format?: string, indent?: string) {\n\treturn FORMATS[format ?? Store.getFormat()].stringify(data, INDENTS[indent ?? Store.getIndent()])\n}\n\nexport async function parseSource(data: string, format: string) {\n\treturn await FORMATS[format].parse(data)\n}\n\nexport function getSourceIndent(indent: string) {\n\treturn INDENTS[indent]\n}\n\nexport function getSourceIndents() {\n\treturn Object.keys(INDENTS)\n}\n\nexport function getSourceFormats() {\n\treturn Object.keys(FORMATS)\n}\n","import type { Project } from './contexts/index.js'\nimport { DRAFT_PROJECT } from './contexts/index.js'\nimport type { VersionId } from './services/index.js'\nimport { VersionIds } from './services/index.js'\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_HIGHLIGHTING = 'output_highlighting'\n\texport const ID_SOUNDS_VERSION = 'minecraft_sounds_version'\n\texport const ID_PROJECTS = 'misode_projects'\n\texport const ID_BACKUPS = 'misode_generator_backups'\n\texport const ID_PROJECT_PANEL_OPEN = 'misode_project_panel_open'\n\texport const ID_OPEN_PROJECT = 'misode_open_project'\n\texport const ID_TREE_VIEW_MODE = 'misode_tree_view_mode'\n\texport const ID_GENERATOR_HISTORY = 'misode_generator_history'\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 getVersionOrDefault(): 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.19'\n\t}\n\n\texport function getVersion(): VersionId | null {\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 null\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 getHighlighting() {\n\t\treturn localStorage.getItem(ID_HIGHLIGHTING) !== 'false'\n\t}\n\n\texport function getSoundsVersion() {\n\t\treturn localStorage.getItem(ID_SOUNDS_VERSION) ?? 'latest'\n\t}\n\n\texport function getProjects(): Project[] {\n\t\tconst projects = localStorage.getItem(ID_PROJECTS)\n\t\tif (projects) {\n\t\t\treturn JSON.parse(projects) as Project[]\n\t\t}\n\t\treturn [DRAFT_PROJECT]\n\t}\n\n\texport function getBackup(id: string): object | undefined {\n\t\tconst backups = JSON.parse(localStorage.getItem(ID_BACKUPS) ?? '{}')\n\t\treturn backups[id]\n\t}\n\n\texport function getProjectPanelOpen(): boolean | undefined {\n\t\tconst open = localStorage.getItem(ID_PROJECT_PANEL_OPEN)\n\t\tif (open === null) return undefined\n\t\treturn JSON.parse(open)\n\t}\n\n\texport function getOpenProject() {\n\t\treturn localStorage.getItem(ID_OPEN_PROJECT) ?? DRAFT_PROJECT.name\n\t}\n\n\texport function getTreeViewMode() {\n\t\treturn localStorage.getItem(ID_TREE_VIEW_MODE) ?? 'resources'\n\t}\n\n\texport function getGeneratorHistory(): string[] {\n\t\treturn JSON.parse(localStorage.getItem(ID_GENERATOR_HISTORY) ?? '[]')\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 setHighlighting(highlighting: boolean | undefined) {\n\t\tif (highlighting !== undefined) localStorage.setItem(ID_HIGHLIGHTING, highlighting.toString())\n\t}\n\n\texport function setSoundsVersion(version: string | undefined) {\n\t\tif (version) localStorage.setItem(ID_SOUNDS_VERSION, version)\n\t}\n\n\texport function setProjects(projects: Project[] | undefined) {\n\t\tif (projects) localStorage.setItem(ID_PROJECTS, JSON.stringify(projects))\n\t}\n\n\texport function setBackup(id: string, data: object | undefined) {\n\t\tconst backups = JSON.parse(localStorage.getItem(ID_BACKUPS) ?? '{}')\n\t\tif (data === undefined) {\n\t\t\tdelete backups[id]\n\t\t} else {\n\t\t\tbackups[id] = data\n\t\t}\n\t\tlocalStorage.setItem(ID_BACKUPS, JSON.stringify(backups))\n\t}\n\n\texport function setProjectPanelOpen(open: boolean | undefined) {\n\t\tif (open === undefined) {\n\t\t\tlocalStorage.removeItem(ID_PROJECT_PANEL_OPEN)\n\t\t} else {\n\t\t\tlocalStorage.setItem(ID_PROJECT_PANEL_OPEN, JSON.stringify(open))\n\t\t}\n\t}\n\n\texport function setOpenProject(projectName: string | undefined) {\n\t\tif (projectName === undefined) {\n\t\t\tlocalStorage.removeItem(ID_OPEN_PROJECT)\n\t\t} else {\n\t\t\tlocalStorage.setItem(ID_OPEN_PROJECT, projectName)\n\t\t}\n\t}\n\n\texport function setTreeViewMode(mode: string | undefined) {\n\t\tif (mode) localStorage.setItem(ID_TREE_VIEW_MODE, mode)\n\t}\n\n\texport function visitGenerator(id: string) {\n\t\tconst history = getGeneratorHistory()\n\t\thistory.push(id)\n\t\tlocalStorage.setItem(ID_GENERATOR_HISTORY, JSON.stringify(history.slice(-50)))\n\t}\n}\n","// import { createRequire } from 'module'\nimport type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { useCallback, useContext, useEffect, useState } from 'preact/hooks'\nimport { Analytics } from '../Analytics.js'\nimport config from '../Config.js'\nimport { Store } from '../Store.js'\n// const require = createRequire(import.meta.url)\n// const English = require('../../locales/en.json')\nimport English from '../../locales/en.json'\n\ninterface Locale {\n\tlang: string,\n\tlocale: (key: string, ...params: string[]) => string,\n\tchangeLocale: (lang: string) => unknown,\n}\nconst Locale = createContext({\n\tlang: 'none',\n\tlocale: key => key,\n\tchangeLocale: () => {},\n})\n\nexport const Locales: {\n\t[key: string]: {\n\t\t[key: string]: string,\n\t},\n} = {\n\tfallback: English,\n}\n\nexport function localize(lang: string, key: string, ...params: string[]) {\n\tconst value: string | undefined = Locales[lang]?.[key]\n\t?? Locales.en?.[key] ?? Locales.fallback[key] ?? key\n\treturn resolveLocaleParams(value, params)\n}\n\nfunction resolveLocaleParams(value: string, params?: string[]): string {\n\treturn value.replace(/%\\d+%/g, match => {\n\t\tconst index = parseInt(match.slice(1, -1))\n\t\treturn params?.[index] !== undefined ? params[index] : match\n\t})\n}\n\nasync function loadLocale(language: string) {\n\tif (Locales[language]) return\n\tconst langConfig = config.languages.find(lang => lang.code === language)\n\tif (!langConfig) return\n\tconst data = await import(`../../locales/${language}.json`)\n\tconst schema = langConfig.schemas !== false\n\t\t&& await import(`../../../node_modules/@mcschema/locales/src/${language}.json`)\n\tlet partners = { default: {} }\n\tif (language === 'en') {\n\t\tpartners = await import('../partners/locales/en.json')\n\t}\n\tLocales[language] = { ...data.default, ...schema.default, ...partners.default }\n}\n\nexport function useLocale() {\n\treturn useContext(Locale)\n}\n\nexport function LocaleProvider({ children }: { children: ComponentChildren }) {\n\tconst [lang, setLanguage] = useState('none')\n\n\tconst locale = useCallback((key: string, ...params: string[]) => {\n\t\treturn localize(lang, key, ...params)\n\t}, [lang])\n\n\tconst changeLocale = useCallback(async (newLang: string) => {\n\t\tawait loadLocale(newLang)\n\t\tAnalytics.changeLocale(lang, newLang)\n\t\tStore.setLanguage(newLang)\n\t\tsetLanguage(newLang)\n\t}, [lang])\n\n\tuseEffect(() => {\n\t\t(async () => {\n\t\t\tconst target = Store.getLanguage()\n\t\t\tAnalytics.setLocale(target)\n\t\t\tawait Promise.all([\n\t\t\t\tloadLocale('en'),\n\t\t\t\t...(target !== 'en' ? [loadLocale(target)] : []),\n\t\t\t])\n\t\t\tsetLanguage(target)\n\t\t})()\n\t}, [])\n\n\tconst value: Locale = {\n\t\tlang,\n\t\tlocale,\n\t\tchangeLocale,\n\t}\n\n\treturn \n\t\t{children}\n\t\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { route } from 'preact-router'\nimport { useCallback, useContext, useMemo, useState } from 'preact/hooks'\nimport config from '../Config.js'\nimport type { VersionId } from '../services/index.js'\nimport { Store } from '../Store.js'\nimport { cleanUrl } from '../Utils.js'\n\nexport type Project = {\n\tname: string,\n\tnamespace?: string,\n\tversion?: VersionId,\n\tfiles: ProjectFile[],\n}\nexport const DRAFT_PROJECT: Project = {\n\tname: 'Drafts',\n\tnamespace: 'draft',\n\tfiles: [],\n}\n\nexport type ProjectFile = {\n\ttype: string,\n\tid: string,\n\tdata: any,\n}\n\nexport const FilePatterns = [\n\t'worldgen/[a-z_]+',\n\t'tags/worldgen/[a-z_]+',\n\t'tags/[a-z_]+',\n\t'[a-z_]+',\n].map(e => RegExp(`^data/([a-z0-9._-]+)/(${e})/([a-z0-9/._-]+)$`))\n\ninterface ProjectContext {\n\tprojects: Project[],\n\tproject: Project,\n\tfile?: ProjectFile,\n\tcreateProject: (name: string, namespace?: string, version?: VersionId) => unknown,\n\tdeleteProject: (name: string) => unknown,\n\tchangeProject: (name: string) => unknown,\n\tupdateProject: (project: Partial) => unknown,\n\tupdateFile: (type: string, id: string | undefined, file: Partial) => boolean,\n\topenFile: (type: string, id: string) => unknown,\n\tcloseFile: () => unknown,\n}\nconst Project = createContext({\n\tprojects: [DRAFT_PROJECT],\n\tproject: DRAFT_PROJECT,\n\tcreateProject: () => {},\n\tdeleteProject: () => {},\n\tchangeProject: () => {},\n\tupdateProject: () => {},\n\tupdateFile: () => false,\n\topenFile: () => {},\n\tcloseFile: () => {},\n})\n\nexport function useProject() {\n\treturn useContext(Project)\n}\n\nexport function ProjectProvider({ children }: { children: ComponentChildren }) {\n\tconst [projects, setProjects] = useState(Store.getProjects())\n\n\tconst [projectName, setProjectName] = useState(Store.getOpenProject())\n\tconst project = useMemo(() => {\n\t\treturn projects.find(p => p.name === projectName) ?? DRAFT_PROJECT\n\t}, [projects, projectName])\n\n\tconst [fileId, setFileId] = useState<[string, string] | undefined>(undefined)\n\tconst file = useMemo(() => {\n\t\tif (!fileId) return undefined\n\t\treturn project.files.find(f => f.type === fileId[0] && f.id === fileId[1])\n\t}, [project, fileId])\n\n\tconst changeProjects = useCallback((projects: Project[]) => {\n\t\tStore.setProjects(projects)\n\t\tsetProjects(projects)\n\t}, [])\n\n\tconst createProject = useCallback((name: string, namespace?: string, version?: VersionId) => {\n\t\tchangeProjects([...projects, { name, namespace, version, files: [] }])\n\t}, [projects])\n\n\tconst deleteProject = useCallback((name: string) => {\n\t\tif (name === DRAFT_PROJECT.name) return\n\t\tchangeProjects(projects.filter(p => p.name !== name))\n\t}, [projects])\n\n\tconst changeProject = useCallback((name: string) => {\n\t\tStore.setOpenProject(name)\n\t\tsetProjectName(name)\n\t}, [])\n\n\tconst updateProject = useCallback((edits: Partial) => {\n\t\tchangeProjects(projects.map(p => p.name === projectName ?\t{ ...p, ...edits } : p))\n\t}, [projects, projectName])\n\n\tconst updateFile = useCallback((type: string, id: string | undefined, edits: Partial) => {\n\t\tif (!edits.id) { // remove\n\t\t\tupdateProject({ files: project.files.filter(f => f.type !== type || f.id !== id) })\n\t\t} else {\n\t\t\tconst newId = type === 'pack_mcmeta' ? 'pack' : edits.id.includes(':') ? edits.id : `${project.namespace ?? 'minecraft'}:${edits.id}`\n\t\t\tconst exists = project.files.some(f => f.type === type && f.id === newId)\n\t\t\tif (!id) { // create\n\t\t\t\tif (exists) return false\n\t\t\t\tupdateProject({ files: [...project.files, { type, id: newId, data: edits.data ?? {} } ]})\n\t\t\t\tsetFileId([type, newId])\n\t\t\t} else { // rename or update data\n\t\t\t\tif (file?.id === id && id !== newId && exists) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tupdateProject({ files: project.files.map(f => f.type === type && f.id === id ? { ...f, ...edits, id: newId } : f)})\n\t\t\t\tif (file?.id === id) setFileId([type, newId])\n\t\t\t}\n\t\t}\n\t\treturn true\n\t}, [updateProject, project, file])\n\n\tconst openFile = useCallback((type: string, id: string) => {\n\t\tconst gen = config.generators.find(g => g.id === type || g.path === type)\n\t\tif (!gen) {\n\t\t\tthrow new Error(`Cannot find generator of type ${type}`)\n\t\t}\n\t\tsetFileId([gen.id, id])\n\t\troute(cleanUrl(gen.url))\n\t}, [])\n\n\tconst closeFile = useCallback(() => {\n\t\tsetFileId(undefined)\n\t}, [])\n\n\tconst value: ProjectContext = {\n\t\tprojects,\n\t\tproject,\n\t\tfile,\n\t\tcreateProject,\n\t\tchangeProject,\n\t\tdeleteProject,\n\t\tupdateProject,\n\t\tupdateFile,\n\t\topenFile,\n\t\tcloseFile,\n\t}\n\n\treturn \n\t\t{children}\n\t\n}\n\nexport function getFilePath(file: { id: string, type: string }) {\n\tconst [namespace, id] = file.id.includes(':') ? file.id.split(':') : ['minecraft', file.id]\n\tif (file.type === 'pack_mcmeta') {\n\t\tif (file.id === 'pack') return 'pack.mcmeta'\n\t\treturn undefined\n\t}\n\tconst gen = config.generators.find(g => g.id === file.type)\n\tif (!gen) {\n\t\treturn undefined\n\t}\n\treturn `data/${namespace}/${gen.path ?? gen.id}/${id}.json`\n}\n\nexport function disectFilePath(path: string) {\n\tif (path === 'pack.mcmeta') {\n\t\treturn { type: 'pack_mcmeta', id: 'pack' }\n\t}\n\tfor (const p of FilePatterns) {\n\t\tconst match = path.match(p)\n\t\tif (!match) continue\n\t\tconst gen = config.generators.find(g => (g.path ?? g.id) === match[2])\n\t\tif (!gen) continue\n\t\tconst namespace = match[1]\n\t\tconst name = match[3].replace(/\\.[a-z]+$/, '')\n\t\treturn {\n\t\t\ttype: gen.id,\n\t\t\tid: `${namespace}:${name}`,\n\t\t}\n\t}\n\treturn undefined\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { useCallback, useContext } from 'preact/hooks'\nimport { useLocalStorage } from '../hooks/index.js'\nimport type { Color } from '../Utils.js'\n\ninterface Store {\n\tbiomeColors: Record\n\tsetBiomeColor: (biome: string, color: Color) => void\n}\n\nconst Store = createContext({\n\tbiomeColors: {},\n\tsetBiomeColor: () => {},\n})\n\nexport function useStore() {\n\treturn useContext(Store)\n}\n\nexport function StoreProvider({ children }: { children: ComponentChildren }) {\n\tconst [biomeColors, setBiomeColors] = useLocalStorage>('misode_biome_colors', {}, JSON.parse, JSON.stringify)\n\n\tconst setBiomeColor = useCallback((biome: string, color: Color) => {\n\t\tsetBiomeColors({...biomeColors, [biome]: color })\n\t}, [biomeColors])\n\n\tconst value: Store = {\n\t\tbiomeColors,\n\t\tsetBiomeColor,\n\t}\n\n\treturn \n\t\t{children}\n\t\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { useCallback, useContext, useEffect, useState } from 'preact/hooks'\nimport { Analytics } from '../Analytics.js'\nimport { useMediaQuery } from '../hooks/index.js'\nimport { Store } from '../Store.js'\n\ninterface Theme {\n\ttheme: string,\n\tactualTheme: 'light' | 'dark',\n\tchangeTheme: (theme: string) => unknown,\n}\nconst Theme = createContext({\n\ttheme: 'dark',\n\tactualTheme: 'dark',\n\tchangeTheme: () => {},\n})\n\nexport function useTheme() {\n\treturn useContext(Theme)\n}\n\nexport function ThemeProvider({ children }: { children: ComponentChildren }) {\n\tconst [theme, setTheme] = useState(Store.getTheme())\n\tconst prefersLight = useMediaQuery('(prefers-color-scheme: light)')\n\tconst prefersDark = useMediaQuery('(prefers-color-scheme: dark)')\n\n\tuseEffect(() => {\n\t\tdocument.documentElement.setAttribute('data-theme', theme)\n\t}, [theme])\n\n\tconst changeTheme = useCallback((newTheme: string) => {\n\t\tAnalytics.changeTheme(theme, newTheme)\n\t\tStore.setTheme(newTheme)\n\t\tsetTheme(newTheme)\n\t}, [theme])\n\n\tuseEffect(() => {\n\t\tAnalytics.setPrefersColorScheme(prefersLight ? 'light' : prefersDark ? 'dark' : 'none')\n\t}, [prefersLight, prefersDark])\n\n\tuseEffect(() => {\n\t\tAnalytics.setTheme(theme)\n\t}, [])\n\n\tconst value: Theme = {\n\t\ttheme,\n\t\tactualTheme: theme === 'light' || (theme !== 'dark' && prefersLight) ? 'light' : 'dark',\n\t\tchangeTheme,\n\t}\n\n\treturn \n\t\t{children}\n\t\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { useCallback, useContext, useEffect, useState } from 'preact/hooks'\nimport config from '../Config.js'\nimport type { VersionId } from '../services/index.js'\nimport { useLocale } from './index.js'\n\nconst VERSIONS_IN_TITLE = 3\n\ninterface Title {\n\ttitle: string,\n\tchangeTitle: (title: string, versions?: VersionId[], suffix?: string) => unknown,\n}\nconst Title = createContext({\n\ttitle: '',\n\tchangeTitle: () => {},\n})\n\nexport function useTitle(title?: string, versions?: VersionId[], suffix?: string) {\n\tconst context = useContext(Title)\n\tuseEffect(() => {\n\t\tif (title) {\n\t\t\tcontext.changeTitle(title, versions, suffix)\n\t\t}\n\t}, [title, versions, suffix])\n\treturn context\n}\n\nexport function TitleProvider({ children }: { children: ComponentChildren }) {\n\tconst { locale } = useLocale()\n\tconst [title, setTitle] = useState<string>(locale('title.home'))\n\n\tconst changeTitle = useCallback((title: string, versionIds?: VersionId[], suffix?: string) => {\n\t\tlet versions = config.versions\n\t\tif (versionIds !== undefined) {\n\t\t\tversions = config.versions.filter(v => versionIds?.includes(v.id as VersionId))\n\t\t}\n\t\tlet titleSuffix = ''\n\t\tif (suffix) {\n\t\t\ttitleSuffix = ` - ${suffix}`\n\t\t}\n\t\tif (!(versionIds?.length === 0)) {\n\t\t\tconst titleVersions = versions.map(v => v.id).slice(-VERSIONS_IN_TITLE)\n\t\t\ttitleSuffix = ` - Minecraft ${titleVersions.join(', ')}`\n\t\t}\n\t\tdocument.title = title + titleSuffix\n\t\tsetTitle(title)\n\t}, [])\n\n\tconst value = {\n\t\ttitle,\n\t\tchangeTitle,\n\t}\n\n\treturn <Title.Provider value={value}>\n\t\t{children}\n\t</Title.Provider>\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { useCallback, useContext, useEffect, useState } from 'preact/hooks'\nimport { Analytics } from '../Analytics.js'\nimport { useSearchParam } from '../hooks/index.js'\nimport type { VersionId } from '../services/index.js'\nimport { VersionIds } from '../services/index.js'\nimport { Store } from '../Store.js'\n\nconst VERSION_PARAM = 'version'\n\ninterface Version {\n\tversion: VersionId,\n\tchangeVersion: (version: VersionId, store?: boolean, updateSearch?: boolean) => unknown,\n\tchangeTargetVersion: (version: VersionId, replace?: boolean) => unknown,\n}\nconst Version = createContext<Version>({\n\tversion: '1.18.2',\n\tchangeVersion: () => {},\n\tchangeTargetVersion: () => {},\n})\n\nexport function useVersion() {\n\treturn useContext(Version)\n}\n\nexport function VersionProvider({ children }: { children: ComponentChildren }) {\n\tconst [version, setVersion] = useState<VersionId>(Store.getVersionOrDefault())\n\n\tconst [targetVersion, changeTargetVersion] = useSearchParam(VERSION_PARAM)\n\n\tuseEffect(() => {\n\t\tif (VersionIds.includes(targetVersion as VersionId) && version !== targetVersion) {\n\t\t\tAnalytics.setVersion(targetVersion as VersionId)\n\t\t\tsetVersion(targetVersion as VersionId)\n\t\t}\n\t}, [version, targetVersion])\n\n\tconst changeVersion = useCallback((newVersion: VersionId, store = true, updateSearch = false) => {\n\t\tif (updateSearch || targetVersion) {\n\t\t\tchangeTargetVersion(newVersion, true)\n\t\t}\n\t\tif (store) {\n\t\t\tAnalytics.changeVersion(version, newVersion)\n\t\t\tStore.setVersion(newVersion)\n\t\t}\n\t\tsetVersion(newVersion)\n\t}, [version, targetVersion])\n\n\tuseEffect(() => {\n\t\tAnalytics.setVersion(version)\n\t\tAnalytics.setSelectedVersion(Store.getVersion() ?? 'default')\n\t}, [])\n\n\tconst value: Version = {\n\t\tversion,\n\t\tchangeVersion,\n\t\tchangeTargetVersion,\n\t}\n\n\treturn <Version.Provider value={value}>\n\t\t{children}\n\t</Version.Provider>\n}\n","import { useCallback, useRef } from 'preact/hooks'\nimport { useLocale } from '../contexts/index.js'\nimport { Btn } from './index.js'\n\ninterface Props {\n\tvalue: File | undefined,\n\tonChange: (file: File) => unknown,\n\tlabel?: string,\n\taccept?: string,\n}\nexport function FileUpload({ value, onChange, label, accept }: Props) {\n\tconst { locale } = useLocale()\n\tconst fileUpload = useRef<HTMLInputElement>(null)\n\t\n\tconst onUpload = () => {\n\t\tif (fileUpload.current === null) return\n\t\tfor (let i = 0; i < (fileUpload.current.files?.length ?? 0); i++) {\n\t\t\tconst file = fileUpload.current.files![i]\n\t\t\tonChange(file)\n\t\t} \n\t}\n\n\tconst onDrop = useCallback((e: DragEvent) => {\n\t\te.preventDefault()\n\t\tif(!e.dataTransfer) return\n\n\t\tfor (let i = 0; i < e.dataTransfer.files.length; i++) {\n\t\t\tconst file = e.dataTransfer.files[i]\n\t\t\tonChange(file)\n\t\t}\n\t}, [onChange])\n\n\treturn <label class=\"file-upload\" onDrop={onDrop} onDragOver={e => e.preventDefault()}>\n\t\t<input ref={fileUpload} type=\"file\" onChange={onUpload} accept={accept} />\n\t\t<Btn label={label ?? locale('choose_file')} />\n\t\t<span>\n\t\t\t{value ? value.name : locale('no_file_chosen')}\n\t\t</span>\n\t</label>\n}\n","import { useLocale } from '../contexts/index.js'\nimport { Octicon } from './index.js'\n\ninterface Props {\n\tdonate?: boolean,\n}\nexport function Footer({ donate }: Props) {\n\tconst { locale } = useLocale()\n\n\treturn <footer>\n\t\t<p>\n\t\t\t<span>{locale('developed_by')} <a href=\"https://github.com/misode\" target=\"_blank\" rel=\"noreferrer\">Misode</a></span>\n\t\t</p>\n\t\t{donate !== false && <p class=\"donate\">\n\t\t\t{Octicon.heart}\n\t\t\t<a href=\"https://ko-fi.com/misode\" target=\"_blank\" rel=\"noreferrer\">{locale('donate')}</a>\n\t\t</p>}\n\t\t<p>\n\t\t\t{Octicon.mark_github}\n\t\t\t<span>{locale('source_code_on')} <a href=\"https://github.com/misode/misode.github.io\" target=\"_blank\" rel=\"noreferrer\">{locale('github')}</a></span>\n\t\t</p>\n\t</footer>\n}\n","import { hexId } from '../../Utils.js'\n\ninterface Props {\n\tlabel: string,\n\tvalue: boolean,\n\tonChange: (value: boolean) => unknown,\n}\nexport function Checkbox({ label, value, onChange }: Props) {\n\tconst id = hexId()\n\treturn <label class=\"checkbox\">\n\t\t<input id={id} type=\"checkbox\" checked={value} onClick={() => onChange(!value)} />\n\t\t{label}\n\t</label>\n}\n","import type { JSX } from 'preact'\nimport { useEffect, useRef } from 'preact/hooks'\n\ntype InputProps = JSX.HTMLAttributes<HTMLInputElement>\n\ntype BaseInputProps<T> = Omit<InputProps, 'onChange' | 'type'> & {\n\tonChange?: (value: T) => unknown,\n\tonEnter?: (value: T) => unknown,\n\tonCancel?: () => unknown,\n}\nfunction BaseInput<T>(name: string, type: string, fn: (value: string) => T) {\n\tconst component = (props: BaseInputProps<T>) => {\n\t\tconst onChange = props.onChange && ((evt: Event) => {\n\t\t\tconst value = (evt.target as HTMLInputElement).value\n\t\t\tprops.onChange?.(fn(value))\n\t\t})\n\t\tconst onKeyDown = props.onEnter && ((evt: KeyboardEvent) => {\n\t\t\tif (evt.key === 'Enter') {\n\t\t\t\tconst value = (evt.target as HTMLInputElement).value\n\t\t\t\tprops.onEnter?.(fn(value))\n\t\t\t} else if (evt.key === 'Escape') {\n\t\t\t\tprops.onCancel?.()\n\t\t\t}\n\t\t})\n\t\tconst ref = useRef<HTMLInputElement>(null)\n\t\tuseEffect(() => {\n\t\t\tif (props.autofocus) {\n\t\t\t\tref.current?.select()\n\t\t\t}\n\t\t}, [props.autofocus])\n\t\treturn <input ref={ref} {...props} {...{ type, onChange, onKeyDown }} />\n\t}\n\tcomponent.displayName = name\n\treturn component\n}\n\nexport const TextInput = BaseInput('TextInput', 'text', v => v)\n\nexport const NumberInput = BaseInput('NumberInput', 'number', v => Number(v))\n\nexport const RangeInput = BaseInput('RangeInput', 'range', v => Number(v))\n","import { useMemo, useState } from 'preact/hooks'\nimport { Btn, BtnInput } from '../index.js'\n\ninterface Props {\n\tvalues?: string[],\n\tonSelect?: (value: string) => unknown,\n\tsearchPlaceholder?: string,\n\tnoResults?: string,\n}\nexport function SearchList({ values, onSelect, searchPlaceholder, noResults }: Props) {\n\tconst [search, setSearch] = useState('')\n\tconst results = useMemo(() => {\n\t\tconst terms = search.trim().split(' ')\n\t\treturn values?.filter(v => terms.every(t => v.includes(t))) ?? []\n\t}, [values, search])\n\n\treturn <>\n\t\t<BtnInput icon=\"search\" large value={search} onChange={setSearch} doSelect={1} placeholder={searchPlaceholder ?? 'Search'} />\n\t\t<div class=\"result-list\">\n\t\t\t{results.map(v => <Btn key={v} label={v} onClick={() => onSelect?.(v)} />)}\n\t\t\t{results.length === 0 && <Btn label={noResults ?? 'No results'}/>}\n\t\t</div>\n\t</>\n}\n","import type { JSX } from 'preact'\nimport { useCallback, useEffect } from 'preact/hooks'\nimport { LOSE_FOCUS } from '../hooks/index.js'\n\nconst MODALS_KEY = 'data-modals'\n\ninterface Props extends JSX.HTMLAttributes<HTMLDivElement> {\n\tonDismiss: () => void,\n}\nexport function Modal(props: Props) {\n\tuseEffect(() => {\n\t\taddCurrentModals(1)\n\t\twindow.addEventListener('click', props.onDismiss)\n\t\treturn () => {\n\t\t\taddCurrentModals(-1)\n\t\t\twindow.removeEventListener('click', props.onDismiss)\n\t\t}\n\t})\n\n\tconst onClick = useCallback((e: MouseEvent) => {\n\t\te.stopPropagation()\n\t\te.target?.dispatchEvent(new Event(LOSE_FOCUS, { bubbles: true }))\n\t}, [])\n\n\treturn <div {...props} class={`modal ${props.class ?? ''}`} onClick={onClick}>\n\t\t{props.children}\n\t</div>\n}\n\nfunction addCurrentModals(diff: number) {\n\tconst currentModals = parseInt(document.body.getAttribute(MODALS_KEY) ?? '0')\n\tconst newModals = currentModals + diff\n\tif (newModals <= 0) {\n\t\tdocument.body.removeAttribute(MODALS_KEY)\n\t} else {\n\t\tdocument.body.setAttribute(MODALS_KEY, newModals.toFixed())\n\t}\n}\n","import { DataModel } from '@mcschema/core'\nimport { useState } from 'preact/hooks'\nimport { Analytics } from '../../Analytics.js'\nimport { useLocale, useProject } from '../../contexts/index.js'\nimport { Btn } from '../Btn.js'\nimport { TextInput } from '../forms/index.js'\nimport { Modal } from '../Modal.js'\n\ninterface Props {\n\tmodel: DataModel,\n\tid: string,\n\tmethod: string,\n\tonClose: () => void,\n}\nexport function FileCreation({ model, id, method, onClose }: Props) {\n\tconst { locale } = useLocale()\n\tconst { projects, project, updateFile } = useProject()\n\tconst [fileId, setFileId] = useState(id === 'pack_mcmeta' ? 'pack' : '')\n\n\tconst doSave = () => {\n\t\tAnalytics.saveProjectFile(id, projects.length, project.files.length, method as any)\n\t\tupdateFile(id, undefined, { type: id, id: fileId, data: DataModel.unwrapLists(model.data) })\n\t\tonClose()\n\t}\n\n\treturn <Modal class=\"file-modal\" onDismiss={onClose}>\n\t\t<p>{locale('project.save_current_file')}</p>\n\t\t<TextInput autofocus={id !== 'pack_mcmeta'} class=\"btn btn-input\" value={fileId} onChange={setFileId} onEnter={doSave} onCancel={onClose} placeholder={locale('resource_location')} spellcheck={false} readOnly={id === 'pack_mcmeta'} />\n\t\t<Btn icon=\"file\" label={locale('project.save')} onClick={doSave} />\n\t</Modal>\n}\n","import { useState } from 'preact/hooks'\nimport { Analytics } from '../../Analytics.js'\nimport { useLocale, useProject } from '../../contexts/index.js'\nimport { Btn } from '../Btn.js'\nimport { TextInput } from '../forms/index.js'\nimport { Modal } from '../Modal.js'\n\ninterface Props {\n\tid: string,\n\tname: string,\n\tonClose: () => void,\n}\nexport function FileRenaming({ id, name, onClose }: Props) {\n\tconst { locale } = useLocale()\n\tconst { projects, project, updateFile } = useProject()\n\tconst [fileId, setFileId] = useState(name)\n\n\tconst doSave = () => {\n\t\tAnalytics.renameProjectFile(id, projects.length, project.files.length, 'menu')\n\t\tupdateFile(id, name, { type: id, id: fileId })\n\t\tonClose()\n\t}\n\n\treturn <Modal class=\"file-modal\" onDismiss={onClose}>\n\t\t<p>{locale('project.rename_file')}</p>\n\t\t<TextInput autofocus class=\"btn btn-input\" value={fileId} onChange={setFileId} onEnter={doSave} placeholder={locale('resource_location')} spellcheck={false} />\n\t\t<Btn icon=\"pencil\" label={locale('project.rename')} onClick={doSave} />\n\t</Modal>\n}\n","import { useMemo } from 'preact/hooks'\nimport type { ConfigGenerator } from '../../Config.js'\nimport config from '../../Config.js'\nimport { useLocale } from '../../contexts/Locale.jsx'\nimport type { VersionId } from '../../services/Schemas.js'\nimport { checkVersion } from '../../services/Schemas.js'\nimport { cleanUrl } from '../../Utils.js'\nimport { Badge, Card, Icons, ToolCard } from '../index.js'\n\ninterface Props {\n\tid: string,\n\tminimal?: boolean,\n}\nexport function GeneratorCard({ id, minimal }: Props) {\n\tconst { locale } = useLocale()\n\n\tconst gen = useMemo<ConfigGenerator>(() => {\n\t\tconst gen = config.generators.find(g => g.id === id)\n\t\tif (gen === undefined) {\n\t\t\treturn { id, schema: id, url: id }\n\t\t}\n\t\treturn gen\n\t}, [id])\n\n\tconst title = locale(gen.partner ? `partner.${gen.partner}.${gen.id}` : gen.id)\n\n\tconst icon = Object.keys(Icons).includes(id) ? id as keyof typeof Icons : undefined\n\n\tif (minimal) {\n\t\treturn <ToolCard title={title} link={cleanUrl(gen.url)} titleIcon={icon} />\n\t}\n\n\tconst versions = useMemo(() => {\n\t\tif (!gen) return []\n\t\treturn config.versions\n\t\t\t.filter(v => checkVersion(v.id, gen.minVersion, gen.maxVersion))\n\t\t\t.map(v => v.id as VersionId)\n\t}, [gen])\n\n\tconst tags = useMemo(() => {\n\t\tif (gen.tags?.includes('assets')) return ['resource-pack']\n\t\treturn []\n\t}, [gen])\n\n\treturn <Card title={<>{title}{icon && Icons[icon]}</>} overlay={gen.partner ? locale(`partner.${gen.partner}`) : versions.join(' • ')} link={cleanUrl(gen.url)}>\n\t\t{!gen.noPath && <p class=\"card-subtitle\">/{gen.path ?? gen.id}</p>}\n\t\t{tags.length > 0 && <div class=\"badges-list\">\n\t\t\t{tags.sort().map(tag => <Badge label={tag} />)}\n\t\t</div>}\n\t</Card>\n}\n","import { useMemo, useState } from 'preact/hooks'\nimport type { ConfigGenerator } from '../../Config.js'\nimport config from '../../Config.js'\nimport { useLocale, useVersion } from '../../contexts/index.js'\nimport { checkVersion } from '../../services/Schemas.js'\nimport { GeneratorCard, TextInput, VersionSwitcher } from '../index.js'\n\ninterface Props {\n\tpath?: string,\n\tpredicate?: (gen: ConfigGenerator) => boolean | undefined,\n}\nexport function GeneratorList({ predicate }: Props) {\n\tconst { locale } = useLocale()\n\tconst { version, changeVersion } = useVersion()\n\n\tconst [search, setSearch] = useState('')\n\n\tconst [versionFilter, setVersionFiler] = useState(true)\n\n\tconst versionedGenerators = useMemo(() => {\n\t\treturn config.generators.filter(gen => {\n\t\t\tif (predicate === undefined || !predicate(gen)) return false\n\t\t\tif (versionFilter === false) return true\n\t\t\treturn checkVersion(version, gen.minVersion, gen.maxVersion)\n\t\t})\n\t}, [version, versionFilter])\n\n\tconst filteredGenerators = useMemo(() => {\n\t\tconst query = search.split(' ').map(q => q.trim().toLowerCase()).filter(q => q.length > 0)\n\t\treturn versionedGenerators.filter(gen => {\n\t\t\tconst content = `${gen.id} ${gen.tags?.join(' ') ?? ''} ${gen.path ?? ''} ${gen.partner ?? ''} ${locale(gen.id).toLowerCase()}`\n\t\t\treturn query.every(q => {\n\t\t\t\tif (q.startsWith('!')) {\n\t\t\t\t\treturn q.length === 1 || !content.includes(q.slice(1))\n\t\t\t\t}\n\t\t\t\treturn content.includes(q)\n\t\t\t})\n\t\t})\n\t}, [versionedGenerators, search, locale])\n\n\treturn <div class=\"generator-list\">\n\t\t<div class=\"navigation\">\n\t\t\t<TextInput class=\"btn btn-input query-search\" placeholder={locale('generators.search')} value={search} onChange={setSearch} />\n\t\t\t<VersionSwitcher value={versionFilter ? version : undefined} onChange={v => {changeVersion(v); setVersionFiler(true)}} hasAny onAny={() => setVersionFiler(false)} />\n\t\t</div>\n\t\t{filteredGenerators.length === 0 ? <>\n\t\t\t<span class=\"note\">{locale('generators.no_results')}</span>\n\t\t</> : <div class=\"card-column\">\n\t\t\t{filteredGenerators.map(gen =>\n\t\t\t\t<GeneratorCard id={gen.id} />\n\t\t\t)}\n\t\t</div>}\n\t</div>\n}\n","export var Direction;\n(function (Direction) {\n Direction[\"UP\"] = \"up\";\n Direction[\"DOWN\"] = \"down\";\n Direction[\"NORTH\"] = \"north\";\n Direction[\"EAST\"] = \"east\";\n Direction[\"SOUTH\"] = \"south\";\n Direction[\"WEST\"] = \"west\";\n})(Direction || (Direction = {}));\nconst directionNormals = {\n [Direction.UP]: [0, 1, 0],\n [Direction.DOWN]: [0, -1, 0],\n [Direction.NORTH]: [0, 0, -1],\n [Direction.EAST]: [1, 0, 0],\n [Direction.SOUTH]: [0, 0, 1],\n [Direction.WEST]: [-1, 0, 0],\n};\n(function (Direction) {\n Direction.ALL = [Direction.UP, Direction.DOWN, Direction.NORTH, Direction.EAST, Direction.SOUTH, Direction.WEST];\n function normal(dir) {\n return directionNormals[dir];\n }\n Direction.normal = normal;\n})(Direction || (Direction = {}));\n//# sourceMappingURL=Direction.js.map","import { Direction } from './Direction.js';\nexport var BlockPos;\n(function (BlockPos) {\n function create(x, y, z) {\n return [x, y, z];\n }\n BlockPos.create = create;\n BlockPos.ZERO = BlockPos.create(0, 0, 0);\n function offset(pos, dx, dy, dz) {\n return [pos[0] + dx, pos[1] + dy, pos[2] + dz];\n }\n BlockPos.offset = offset;\n function towards(pos, dir) {\n return BlockPos.offset(pos, ...Direction.normal(dir));\n }\n BlockPos.towards = towards;\n function equals(a, b) {\n if (a === b)\n return true;\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2];\n }\n BlockPos.equals = equals;\n function magnitude(pos) {\n return pos[0] * pos[0] + pos[1] * pos[1] + pos[2] * pos[2];\n }\n BlockPos.magnitude = magnitude;\n})(BlockPos || (BlockPos = {}));\n//# sourceMappingURL=BlockPos.js.map","\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<<MAX_BITS)-1,\n // \"inconsistent bit counts\");\n //Tracev((stderr,\"\\ngen_codes: max_code %d \", max_code));\n\n for (n = 0; n <= max_code; n++) {\n let len = tree[n * 2 + 1]/*.Len*/;\n if (len === 0) { continue; }\n /* Now reverse the bits */\n tree[n * 2]/*.Code*/ = bi_reverse(next_code[len]++, len);\n\n //Tracecv(tree != static_ltree, (stderr,\"\\nn %3d %c l %2d c %4x (%x) \",\n // n, (isgraph(n) ? n : ' '), len, tree[n].Code, next_code[len]-1));\n }\n};\n\n\n/* ===========================================================================\n * Initialize the various 'constant' tables.\n */\nconst tr_static_init = () => {\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","export function getTag(tags, name, type) {\n if (!tags[name]) {\n throw new Error(`Missing ${name} tag`);\n }\n if (tags[name].type !== type) {\n throw new Error(`Expected ${name} to be of type ${type}, but found ${tags[name].type}`);\n }\n return tags[name].value;\n}\nexport function getListTag(tags, name, type, length) {\n const value = getTag(tags, name, 'list');\n if (value.type !== type) {\n throw new Error(`Expected ${name} to be a list of ${type}s, but found ${value.type}s`);\n }\n if (length && value.value.length !== length) {\n throw new Error(`Expected ${name} to be a list of length ${length}, but found length ${value.value.length}`);\n }\n return value.value;\n}\nexport function getOptional(readResult, fallback) {\n try {\n return readResult();\n }\n catch (e) {\n return fallback;\n }\n}\n//# sourceMappingURL=TagUtils.js.map","export var Json;\n(function (Json) {\n function readNumber(obj) {\n return typeof obj === 'number' ? obj : undefined;\n }\n Json.readNumber = readNumber;\n function readInt(obj) {\n return typeof obj === 'number' ? Math.floor(obj) : undefined;\n }\n Json.readInt = readInt;\n function readString(obj) {\n return typeof obj === 'string' ? obj : undefined;\n }\n Json.readString = readString;\n function readBoolean(obj) {\n return typeof obj === 'boolean' ? obj : undefined;\n }\n Json.readBoolean = readBoolean;\n function readObject(obj) {\n return typeof obj === 'object' && obj !== null\n ? obj\n : undefined;\n }\n Json.readObject = readObject;\n function readArray(obj, parser) {\n if (!Array.isArray(obj))\n return undefined;\n return obj.map(el => parser(el));\n }\n Json.readArray = readArray;\n function readMap(obj, parser) {\n const root = readObject(obj) ?? {};\n return Object.fromEntries(Object.entries(root).map(([k, v]) => [k, parser(v)]));\n }\n Json.readMap = readMap;\n function compose(obj, parser, mapper) {\n const result = parser(obj);\n return result ? mapper(result) : undefined;\n }\n Json.compose = compose;\n function readEnum(obj, values) {\n if (typeof obj !== 'string')\n return values[0];\n if (values.includes(obj))\n return obj;\n return values[0];\n }\n Json.readEnum = readEnum;\n})(Json || (Json = {}));\n//# sourceMappingURL=Json.js.map","export function lazy(getter) {\n let value = null;\n return () => {\n if (value == null) {\n value = getter();\n }\n return value;\n };\n}\nexport function computeIfAbsent(map, key, getter) {\n const existing = map.get(key);\n if (existing) {\n return existing;\n }\n const value = getter(key);\n map.set(key, value);\n return value;\n}\n//# sourceMappingURL=Util.js.map","export class Identifier {\n namespace;\n path;\n static DEFAULT_NAMESPACE = 'minecraft';\n static SEPARATOR = ':';\n constructor(namespace, path) {\n this.namespace = namespace;\n this.path = path;\n if (!namespace.match(/^[a-z0-9._-]*$/)) {\n throw new Error(`Non [a-z0-9._-] character in namespace of ${namespace}${Identifier.SEPARATOR}${path}`);\n }\n if (!path.match(/^[a-z0-9/._-]*$/)) {\n throw new Error(`Non [a-z0-9/._-] character in path of ${namespace}${Identifier.SEPARATOR}${path}`);\n }\n }\n equals(other) {\n if (this === other) {\n return true;\n }\n return this.namespace === other.namespace && this.path === other.path;\n }\n toString() {\n return this.namespace + Identifier.SEPARATOR + this.path;\n }\n withPrefix(prefix) {\n return new Identifier(this.namespace, prefix + this.path);\n }\n static create(path) {\n return new Identifier(this.DEFAULT_NAMESPACE, path);\n }\n static parse(id) {\n const sep = id.indexOf(this.SEPARATOR);\n if (sep >= 0) {\n const namespace = sep >= 1 ? id.substring(0, sep) : this.DEFAULT_NAMESPACE;\n const path = id.substring(sep + 1);\n return new Identifier(namespace, path);\n }\n return new Identifier(this.DEFAULT_NAMESPACE, id);\n }\n}\n//# sourceMappingURL=Identifier.js.map","import { getOptional, getTag } from '../nbt/index.js';\nimport { Json } from '../util/index.js';\nimport { Identifier } from './Identifier.js';\nexport class BlockState {\n properties;\n static AIR = new BlockState(Identifier.create('air'));\n static STONE = new BlockState(Identifier.create('stone'));\n static WATER = new BlockState(Identifier.create('water'), { level: '0' });\n static LAVA = new BlockState(Identifier.create('lava'), { level: '0' });\n name;\n constructor(name, properties = {}) {\n this.properties = properties;\n this.name = typeof name === 'string' ? Identifier.parse(name) : name;\n }\n getName() {\n return this.name;\n }\n getProperties() {\n return this.properties;\n }\n getProperty(key) {\n return this.properties[key];\n }\n isFluid() {\n return this.is(BlockState.WATER) || this.is(BlockState.LAVA);\n }\n equals(other) {\n if (!this.name.equals(other.name)) {\n return false;\n }\n return Object.keys(this.properties).every(p => {\n return other.properties[p] === this.properties[p];\n });\n }\n is(other) {\n return this.name.equals(other.name);\n }\n toString() {\n if (Object.keys(this.properties).length === 0) {\n return this.name.toString();\n }\n return `${this.name.toString()}[${Object.entries(this.properties).map(([k, v]) => k + '=' + v).join(',')}]`;\n }\n static fromNbt(nbt) {\n const name = Identifier.parse(getTag(nbt.value, 'Name', 'string'));\n const propsTag = getOptional(() => getTag(nbt.value, 'Properties', 'compound'), {});\n const properties = Object.keys(propsTag)\n .reduce((acc, k) => ({ ...acc, [k]: getTag(propsTag, k, 'string') }), {});\n return new BlockState(name, properties);\n }\n static fromJson(obj) {\n const root = Json.readObject(obj) ?? {};\n const name = Identifier.parse(Json.readString(root.Name) ?? BlockState.STONE.name.toString());\n const properties = Json.readMap(root.Properties, p => Json.readString(p) ?? '');\n return new BlockState(name, properties);\n }\n}\n//# sourceMappingURL=BlockState.js.map","export class PalettedContainer {\n size;\n defaultValue;\n storage;\n palette;\n constructor(size, defaultValue) {\n this.size = size;\n this.defaultValue = defaultValue;\n this.storage = Array(size).fill(0);\n this.palette = [defaultValue];\n }\n index(x, y, z) {\n return (x << 8) + (y << 4) + z;\n }\n get(x, y, z) {\n const id = this.storage[this.index(x, y, z)];\n return this.palette[id];\n }\n set(x, y, z, value) {\n let id = this.palette.findIndex(b => b.equals(value));\n if (id === -1) {\n id = this.palette.length;\n this.palette.push(value);\n }\n this.storage[this.index(x, y, z)] = id;\n }\n}\n//# sourceMappingURL=PalettedContainer.js.map","import { BlockState } from './BlockState.js';\nimport { PalettedContainer } from './PalettedContainer.js';\nexport class ChunkSection {\n minY;\n static WIDTH = 16;\n static SIZE = ChunkSection.WIDTH * ChunkSection.WIDTH * ChunkSection.WIDTH;\n states;\n constructor(minY) {\n this.minY = minY;\n this.states = new PalettedContainer(ChunkSection.SIZE, BlockState.AIR);\n }\n get minBlockY() {\n return this.minY << 4;\n }\n getBlockState(x, y, z) {\n return this.states.get(x, y, z);\n }\n setBlockState(x, y, z, state) {\n this.states.set(x, y, z, state);\n }\n}\n//# sourceMappingURL=ChunkSection.js.map","import { BlockState } from './BlockState.js';\nimport { ChunkSection } from './ChunkSection.js';\nexport class Chunk {\n minY;\n height;\n pos;\n sections;\n constructor(minY, height, pos) {\n this.minY = minY;\n this.height = height;\n this.pos = pos;\n this.sections = Array(this.sectionsCount).fill(null);\n }\n get maxY() {\n return this.minY + this.height;\n }\n get minSection() {\n return this.minY >> 4;\n }\n get maxSection() {\n return ((this.maxY - 1) >> 4) + 1;\n }\n get sectionsCount() {\n return this.maxSection - this.minSection;\n }\n getSectionIndex(y) {\n return (y >> 4) - this.minSection;\n }\n getBlockState(pos) {\n const [x, y, z] = pos;\n const section = this.sections[this.getSectionIndex(y)];\n return section?.getBlockState(x & 0xF, y & 0xF, z & 0xF) ?? BlockState.AIR;\n }\n setBlockState(pos, state) {\n const [x, y, z] = pos;\n const sectionIndex = this.getSectionIndex(y);\n let section = this.sections[sectionIndex];\n if (section === null) {\n if (state.equals(BlockState.AIR))\n return;\n section = this.getOrCreateSection(sectionIndex);\n }\n section.setBlockState(x & 0xF, y & 0xF, z & 0xF, state);\n }\n getOrCreateSection(index) {\n if (this.sections[index] == null) {\n this.sections[index] = new ChunkSection(this.minSection + index);\n }\n return this.sections[index];\n }\n}\n//# sourceMappingURL=Chunk.js.map","export var ChunkPos;\n(function (ChunkPos) {\n function create(x, z) {\n return [x, z];\n }\n ChunkPos.create = create;\n function fromBlockPos(blockPos) {\n return [blockPos[0] >> 4, blockPos[2] >> 4];\n }\n ChunkPos.fromBlockPos = fromBlockPos;\n function fromLong(long) {\n return [Number(long) & 0xFFFFFFFF, Number(long >> BigInt(32))];\n }\n ChunkPos.fromLong = fromLong;\n function toLong(chunkPos) {\n return asLong(chunkPos[0], chunkPos[1]);\n }\n ChunkPos.toLong = toLong;\n function asLong(x, z) {\n return BigInt(x & 0xFFFFFFFF) | BigInt(z & 0xFFFFFFFF) << BigInt(32);\n }\n ChunkPos.asLong = asLong;\n function minBlockX(chunkPos) {\n return chunkPos[0] << 4;\n }\n ChunkPos.minBlockX = minBlockX;\n function minBlockZ(chunkPos) {\n return chunkPos[1] << 4;\n }\n ChunkPos.minBlockZ = minBlockZ;\n function maxBlockX(chunkPos) {\n return (chunkPos[0] << 4) + 15;\n }\n ChunkPos.maxBlockX = maxBlockX;\n function maxBlockZ(chunkPos) {\n return (chunkPos[1] << 4) + 15;\n }\n ChunkPos.maxBlockZ = maxBlockZ;\n})(ChunkPos || (ChunkPos = {}));\n//# sourceMappingURL=ChunkPos.js.map","import { Identifier } from './Identifier.js';\nexport var Holder;\n(function (Holder) {\n function parser(registry, directParser) {\n return (obj) => {\n if (typeof obj === 'string') {\n return reference(registry, Identifier.parse(obj));\n }\n else {\n return direct(directParser(obj));\n }\n };\n }\n Holder.parser = parser;\n function direct(value, id) {\n return {\n value: () => value,\n key: () => id,\n };\n }\n Holder.direct = direct;\n function reference(registry, id) {\n return {\n value: () => registry.getOrThrow(id),\n key: () => id,\n };\n }\n Holder.reference = reference;\n})(Holder || (Holder = {}));\n//# sourceMappingURL=Holder.js.map","import { Holder } from './Holder.js';\nimport { Identifier } from './Identifier.js';\nexport class Registry {\n key;\n parser;\n static REGISTRY = new Registry(Identifier.create('root'));\n storage = new Map();\n builtin = new Map();\n constructor(key, parser) {\n this.key = key;\n this.parser = parser;\n }\n register(id, value, builtin) {\n this.storage.set(id.toString(), value);\n if (builtin) {\n this.builtin.set(id.toString(), value);\n }\n return Holder.reference(this, id);\n }\n delete(id) {\n const deleted = this.storage.delete(id.toString());\n this.builtin.delete(id.toString());\n return deleted;\n }\n keys() {\n return [...this.storage.keys()].map(e => Identifier.parse(e));\n }\n has(id) {\n return this.storage.has(id.toString());\n }\n get(id) {\n return this.storage.get(id.toString());\n }\n getOrThrow(id) {\n const value = this.storage.get(id.toString());\n if (value === undefined) {\n throw new Error(`Missing key in ${this.key.toString()}: ${id.toString()}`);\n }\n return value;\n }\n parse(obj) {\n if (!this.parser) {\n throw new Error(`No parser exists for ${this.key.toString()}`);\n }\n return this.parser(obj);\n }\n clear() {\n this.storage.clear();\n for (const [key, value] of this.builtin.entries()) {\n this.storage.set(key, value);\n }\n return this;\n }\n assign(other) {\n if (!this.key.equals(other.key)) {\n throw new Error(`Cannot assign registry of type ${other.key.toString()} to registry of type ${this.key.toString()}`);\n }\n for (const key of other.keys()) {\n this.storage.set(key.toString(), other.getOrThrow(key));\n }\n return this;\n }\n cloneEmpty() {\n return new Registry(this.key, this.parser);\n }\n forEach(fn) {\n for (const [key, value] of this.storage.entries()) {\n fn(Identifier.parse(key), value, this);\n }\n }\n map(fn) {\n return [...this.storage.entries()].map(([key, value]) => {\n return fn(Identifier.parse(key), value, this);\n });\n }\n}\n//# sourceMappingURL=Registry.js.map","import { getListTag, getOptional, getTag } from '../nbt/index.js';\nimport { BlockState } from './BlockState.js';\nexport class Structure {\n size;\n palette;\n blocks;\n blocksMap = [];\n constructor(size, palette = [], blocks = []) {\n this.size = size;\n this.palette = palette;\n this.blocks = blocks;\n blocks.forEach(block => {\n if (!this.isInside(block.pos)) {\n throw new Error(`Found block at ${block.pos} which is outside the structure bounds ${this.size}`);\n }\n this.blocksMap[block.pos[0] * size[1] * size[2] + block.pos[1] * size[2] + block.pos[2]] = block;\n });\n }\n getSize() {\n return this.size;\n }\n addBlock(pos, name, properties, nbt) {\n if (!this.isInside(pos)) {\n throw new Error(`Cannot add block at ${pos} outside the structure bounds ${this.size}`);\n }\n const blockState = new BlockState(name, properties);\n let state = this.palette.findIndex(b => b.equals(blockState));\n if (state === -1) {\n state = this.palette.length;\n this.palette.push(blockState);\n }\n this.blocks.push({ pos, state, nbt });\n this.blocksMap[pos[0] * this.size[1] * this.size[2] + pos[1] * this.size[2] + pos[2]] = { pos, state, nbt };\n return this;\n }\n getBlocks() {\n return this.blocks.map(b => ({\n pos: b.pos,\n state: this.palette[b.state],\n nbt: b.nbt,\n }));\n }\n getBlock(pos) {\n if (!this.isInside(pos))\n return null;\n const block = this.blocksMap[pos[0] * this.size[1] * this.size[2] + pos[1] * this.size[2] + pos[2]];\n if (!block)\n return null;\n const placedBlock = {\n pos: block.pos,\n state: this.palette[block.state],\n nbt: block.nbt,\n };\n return placedBlock;\n }\n isInside(pos) {\n return pos[0] >= 0 && pos[0] < this.size[0]\n && pos[1] >= 0 && pos[1] < this.size[1]\n && pos[2] >= 0 && pos[2] < this.size[2];\n }\n static fromNbt(nbt) {\n const size = getListTag(nbt.value, 'size', 'int', 3);\n const palette = getListTag(nbt.value, 'palette', 'compound')\n .map(tags => BlockState.fromNbt({ name: '', value: tags }));\n const blocks = getListTag(nbt.value, 'blocks', 'compound')\n .map(tags => {\n const pos = getListTag(tags, 'pos', 'int', 3);\n const state = getTag(tags, 'state', 'int');\n const nbt = getOptional(() => getTag(tags, 'nbt', 'compound'), undefined);\n return { pos, state, nbt };\n });\n return new Structure(size, palette, blocks);\n }\n}\n//# sourceMappingURL=Structure.js.map","export function square(x) {\n return x * x;\n}\nexport function clamp(x, min, max) {\n return Math.max(min, Math.min(max, x));\n}\nexport function lerp(a, b, c) {\n return b + a * (c - b);\n}\nexport function lerp2(a, b, c, d, e, f) {\n return lerp(b, lerp(a, c, d), lerp(a, e, f));\n}\nexport function lerp3(a, b, c, d, e, f, g, h, i, j, k) {\n return lerp(c, lerp2(a, b, d, e, f, g), lerp2(a, b, h, i, j, k));\n}\nexport function lazyLerp(a, b, c) {\n if (a === 0)\n return b();\n if (a === 1)\n return c();\n return b() + a * (c() - b());\n}\nexport function lazyLerp2(a, b, c, d, e, f) {\n return lazyLerp(b, () => lazyLerp(a, c, d), () => lazyLerp(a, e, f));\n}\nexport function lazyLerp3(a, b, c, d, e, f, g, h, i, j, k) {\n return lazyLerp(c, () => lazyLerp2(a, b, d, e, f, g), () => lazyLerp2(a, b, h, i, j, k));\n}\nexport function clampedLerp(a, b, c) {\n if (c < 0) {\n return a;\n }\n else if (c > 1) {\n return b;\n }\n else {\n return lerp(c, a, b);\n }\n}\nexport function inverseLerp(a, b, c) {\n return (a - b) / (c - b);\n}\nexport function smoothstep(x) {\n return x * x * x * (x * (x * 6 - 15) + 10);\n}\nexport function map(a, b, c, d, e) {\n return lerp(inverseLerp(a, b, c), d, e);\n}\nexport function clampedMap(a, b, c, d, e) {\n return clampedLerp(d, e, inverseLerp(a, b, c));\n}\nexport function binarySearch(n, n2, predicate) {\n let n3 = n2 - n;\n while (n3 > 0) {\n const n4 = Math.floor(n3 / 2);\n const n5 = n + n4;\n if (predicate(n5)) {\n n3 = n4;\n continue;\n }\n n = n5 + 1;\n n3 -= n4 + 1;\n }\n return n;\n}\nexport function getSeed(x, y, z) {\n let seed = BigInt(x * 3129871) ^ BigInt(z) * BigInt(116129781) ^ BigInt(y);\n seed = seed * seed * BigInt(42317861) + seed * BigInt(11);\n return seed >> BigInt(16);\n}\nexport function longfromBytes(a, b, c, d, e, f, g, h) {\n return BigInt(a) << BigInt(56)\n | BigInt(b) << BigInt(48)\n | BigInt(c) << BigInt(40)\n | BigInt(d) << BigInt(32)\n | BigInt(e) << BigInt(24)\n | BigInt(f) << BigInt(16)\n | BigInt(g) << BigInt(8)\n | BigInt(h);\n}\nexport function isPowerOfTwo(x) {\n return (x & (x - 1)) === 0;\n}\nexport function upperPowerOfTwo(x) {\n x -= 1;\n x |= x >> 1;\n x |= x >> 2;\n x |= x >> 4;\n x |= x >> 8;\n x |= x >> 18;\n x |= x >> 32;\n return x + 1;\n}\n//# sourceMappingURL=Util.js.map","import { Json } from '../util/index.js';\nimport { binarySearch, lerp } from './Util.js';\nexport var MinMaxNumberFunction;\n(function (MinMaxNumberFunction) {\n function is(obj) {\n return typeof obj === 'object' && obj !== null && 'minValue' in obj && 'maxValue' in obj;\n }\n MinMaxNumberFunction.is = is;\n})(MinMaxNumberFunction || (MinMaxNumberFunction = {}));\nexport var CubicSpline;\n(function (CubicSpline) {\n function fromJson(obj, extractor) {\n if (typeof obj === 'number') {\n return new Constant(obj);\n }\n const root = Json.readObject(obj) ?? {};\n const spline = new MultiPoint(extractor(root.coordinate));\n const points = Json.readArray(root.points, e => Json.readObject(e) ?? {}) ?? [];\n if (points.length === 0) {\n return new Constant(0);\n }\n for (const point of points) {\n const location = Json.readNumber(point.location) ?? 0;\n const value = fromJson(point.value, extractor);\n const derivative = Json.readNumber(point.derivative) ?? 0;\n spline.addPoint(location, value, derivative);\n }\n return spline;\n }\n CubicSpline.fromJson = fromJson;\n class Constant {\n value;\n constructor(value) {\n this.value = value;\n }\n compute() {\n return this.value;\n }\n min() {\n return this.value;\n }\n max() {\n return this.value;\n }\n mapAll() {\n return this;\n }\n calculateMinMax() { }\n }\n CubicSpline.Constant = Constant;\n class MultiPoint {\n coordinate;\n locations;\n values;\n derivatives;\n calculatedMin = Number.NEGATIVE_INFINITY;\n calculatedMax = Number.POSITIVE_INFINITY;\n constructor(coordinate, locations = [], values = [], derivatives = []) {\n this.coordinate = coordinate;\n this.locations = locations;\n this.values = values;\n this.derivatives = derivatives;\n }\n compute(c) {\n const coordinate = this.coordinate.compute(c);\n const i = binarySearch(0, this.locations.length, n => coordinate < this.locations[n]) - 1;\n const n = this.locations.length - 1;\n if (i < 0) {\n return this.values[0].compute(c) + this.derivatives[0] * (coordinate - this.locations[0]); //TODO: us linear extend for this \n }\n if (i === n) {\n return this.values[n].compute(c) + this.derivatives[n] * (coordinate - this.locations[n]); //TODO: us linear extend for this \n }\n const loc0 = this.locations[i];\n const loc1 = this.locations[i + 1];\n const der0 = this.derivatives[i];\n const der1 = this.derivatives[i + 1];\n const f = (coordinate - loc0) / (loc1 - loc0);\n const val0 = this.values[i].compute(c);\n const val1 = this.values[i + 1].compute(c);\n const f8 = der0 * (loc1 - loc0) - (val1 - val0);\n const f9 = -der1 * (loc1 - loc0) + (val1 - val0);\n const f10 = lerp(f, val0, val1) + f * (1.0 - f) * lerp(f, f8, f9);\n return f10;\n }\n min() {\n return this.calculatedMin;\n }\n max() {\n return this.calculatedMax;\n }\n mapAll(visitor) {\n return new MultiPoint(visitor(this.coordinate), this.locations, this.values.map(v => v.mapAll(visitor)), this.derivatives);\n }\n addPoint(location, value, derivative = 0) {\n this.locations.push(location);\n this.values.push(typeof value === 'number'\n ? new CubicSpline.Constant(value)\n : value);\n this.derivatives.push(derivative);\n return this;\n }\n calculateMinMax() {\n if (!MinMaxNumberFunction.is(this.coordinate)) {\n return;\n }\n const lastIdx = this.locations.length - 1;\n var splineMin = Number.POSITIVE_INFINITY;\n var splineMax = Number.NEGATIVE_INFINITY;\n const coordinateMin = this.coordinate.minValue();\n const coordinateMax = this.coordinate.maxValue();\n for (const innerSpline of this.values) {\n innerSpline.calculateMinMax();\n }\n if (coordinateMin < this.locations[0]) {\n const minExtend = MultiPoint.linearExtend(coordinateMin, this.locations, (this.values[0]).min(), this.derivatives, 0);\n const maxExtend = MultiPoint.linearExtend(coordinateMin, this.locations, (this.values[0]).max(), this.derivatives, 0);\n splineMin = Math.min(splineMin, Math.min(minExtend, maxExtend));\n splineMax = Math.max(splineMax, Math.max(minExtend, maxExtend));\n }\n if (coordinateMax > this.locations[lastIdx]) {\n const minExtend = MultiPoint.linearExtend(coordinateMax, this.locations, (this.values[lastIdx]).min(), this.derivatives, lastIdx);\n const maxExtend = MultiPoint.linearExtend(coordinateMax, this.locations, (this.values[lastIdx]).max(), this.derivatives, lastIdx);\n splineMin = Math.min(splineMin, Math.min(minExtend, maxExtend));\n splineMax = Math.max(splineMax, Math.max(minExtend, maxExtend));\n }\n for (const innerSpline of this.values) {\n splineMin = Math.min(splineMin, innerSpline.min());\n splineMax = Math.max(splineMax, innerSpline.max());\n }\n for (var i = 0; i < lastIdx; ++i) {\n const locationLeft = this.locations[i];\n const locationRight = this.locations[i + 1];\n const locationDelta = locationRight - locationLeft;\n const splineLeft = this.values[i];\n const splineRight = this.values[i + 1];\n const minLeft = splineLeft.min();\n const maxLeft = splineLeft.max();\n const minRight = splineRight.min();\n const maxRight = splineRight.max();\n const derivativeLeft = this.derivatives[i];\n const derivativeRight = this.derivatives[i + 1];\n if (derivativeLeft !== 0.0 || derivativeRight !== 0.0) {\n const maxValueDeltaLeft = derivativeLeft * locationDelta;\n const maxValueDeltaRight = derivativeRight * locationDelta;\n const minValue = Math.min(minLeft, minRight);\n const maxValue = Math.max(maxLeft, maxRight);\n const minDeltaLeft = maxValueDeltaLeft - maxRight + minLeft;\n const maxDeltaLeft = maxValueDeltaLeft - minRight + maxLeft;\n const minDeltaRight = -maxValueDeltaRight + minRight - maxLeft;\n const maxDeltaRight = -maxValueDeltaRight + maxRight - minLeft;\n const minDelta = Math.min(minDeltaLeft, minDeltaRight);\n const maxDelta = Math.max(maxDeltaLeft, maxDeltaRight);\n splineMin = Math.min(splineMin, minValue + 0.25 * minDelta);\n splineMax = Math.max(splineMax, maxValue + 0.25 * maxDelta);\n }\n }\n this.calculatedMin = splineMin;\n this.calculatedMax = splineMax;\n }\n static linearExtend(location, locations, value, derivatives, useIndex) {\n const derivative = derivatives[useIndex];\n return derivative == 0.0 ? value : value + derivative * (location - locations[useIndex]);\n }\n }\n CubicSpline.MultiPoint = MultiPoint;\n})(CubicSpline || (CubicSpline = {}));\n//# sourceMappingURL=CubicSpline.js.map","(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 <https://feross.org>\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 md5 from 'md5';\nimport { getSeed, longfromBytes } from '../Util.js';\nexport class LegacyRandom {\n static MODULUS_BITS = 48;\n static MODULUS_MASK = BigInt('281474976710655');\n static MULTIPLIER = BigInt('25214903917');\n static INCREMENT = BigInt('11');\n static FLOAT_MULTIPLIER = 1 / Math.pow(2, 24);\n static DOUBLE_MULTIPLIER = 1 / Math.pow(2, 30);\n seed = BigInt(0);\n constructor(seed) {\n this.setSeed(seed);\n }\n fork() {\n return new LegacyRandom(this.nextLong());\n }\n forkPositional() {\n return new LegacyPositionalRandom(this.nextLong());\n }\n setSeed(seed) {\n this.seed = seed ^ LegacyRandom.MULTIPLIER & LegacyRandom.MODULUS_MASK;\n }\n advance() {\n this.seed = this.seed * LegacyRandom.MULTIPLIER + LegacyRandom.INCREMENT & LegacyRandom.MODULUS_MASK;\n }\n consume(count) {\n for (let i = 0; i < count; i += 1) {\n this.advance();\n }\n }\n next(bits) {\n this.advance();\n const out = Number(this.seed >> BigInt(LegacyRandom.MODULUS_BITS - bits));\n return out > 2147483647 ? out - 4294967296 : out;\n }\n nextInt(max) {\n if (max === undefined) {\n return this.next(32);\n }\n if ((max & max - 1) == 0) { // If max is a power of two\n return Number(BigInt(max) * BigInt(this.next(31)) >> BigInt(31));\n }\n let a, b;\n while ((a = this.next(31)) - (b = a % max) + (max - 1) < 0) { }\n return b;\n }\n nextLong() {\n return (BigInt(this.next(32)) << BigInt(32)) + BigInt(this.next(32));\n }\n nextFloat() {\n return this.next(24) * LegacyRandom.FLOAT_MULTIPLIER;\n }\n nextDouble() {\n const a = this.next(30);\n this.advance();\n return a * LegacyRandom.DOUBLE_MULTIPLIER;\n }\n}\nexport class LegacyPositionalRandom {\n seed;\n constructor(seed) {\n this.seed = seed;\n }\n at(x, y, z) {\n const seed = getSeed(x, y, z);\n return new LegacyRandom(seed ^ this.seed);\n }\n fromHashOf(name) {\n const hash = md5(name, { asBytes: true });\n const seed = longfromBytes(hash[0], hash[1], hash[2], hash[3], hash[4], hash[5], hash[6], hash[7]);\n return new LegacyRandom(seed ^ this.seed);\n }\n seedKey() {\n return [this.seed, BigInt(0)];\n }\n}\n//# sourceMappingURL=LegacyRandom.js.map","import md5 from 'md5';\nimport { getSeed, longfromBytes } from '../Util.js';\nexport class XoroshiroRandom {\n static SILVER_RATIO_64 = BigInt('7640891576956012809');\n static GOLDEN_RATIO_64 = BigInt('-7046029254386353131');\n static FLOAT_MULTIPLIER = 1 / Math.pow(2, 24);\n static DOUBLE_MULTIPLIER = 1.1102230246251565E-16;\n static BIGINT_1 = BigInt(1);\n static BIGINT_17 = BigInt(17);\n static BIGINT_21 = BigInt(21);\n static BIGINT_27 = BigInt(27);\n static BIGINT_28 = BigInt(28);\n static BIGINT_30 = BigInt(30);\n static BIGINT_31 = BigInt(31);\n static BIGINT_32 = BigInt(32);\n static BIGINT_49 = BigInt(49);\n static BIGINT_64 = BigInt(64);\n static STAFFORD_1 = BigInt('-4658895280553007687');\n static STAFFORD_2 = BigInt('-7723592293110705685');\n static MAX_ULONG = BigInt('0xFFFFFFFFFFFFFFFF');\n static POW2_60 = BigInt('0x10000000000000000');\n static POW2_63 = BigInt('0x8000000000000000');\n static MAX_UINT = BigInt(0xFFFFFFFF);\n seed = [BigInt(0), BigInt(0)];\n constructor(seed) {\n this.seed = seed;\n }\n static create(seed) {\n return new XoroshiroRandom(XoroshiroRandom.upgradeSeedTo128bit(seed));\n }\n static mixStafford13(value) {\n value = ((value ^ value >> XoroshiroRandom.BIGINT_30) * XoroshiroRandom.STAFFORD_1) & XoroshiroRandom.MAX_ULONG;\n value = ((value ^ value >> XoroshiroRandom.BIGINT_27) * XoroshiroRandom.STAFFORD_2) & XoroshiroRandom.MAX_ULONG;\n return (value ^ value >> XoroshiroRandom.BIGINT_31) & XoroshiroRandom.MAX_ULONG;\n }\n static upgradeSeedTo128bit(seed) {\n if (seed < 0) {\n seed += XoroshiroRandom.POW2_60;\n }\n const seedLo = seed ^ XoroshiroRandom.SILVER_RATIO_64;\n const seedHi = (seedLo + XoroshiroRandom.GOLDEN_RATIO_64) & XoroshiroRandom.MAX_ULONG;\n return [XoroshiroRandom.mixStafford13(seedLo), XoroshiroRandom.mixStafford13(seedHi)];\n }\n static rotateLeft(value, shift) {\n return (value << shift) & (XoroshiroRandom.MAX_ULONG) | (value >> (XoroshiroRandom.BIGINT_64 - shift));\n }\n setSeed(seed) {\n this.seed = XoroshiroRandom.upgradeSeedTo128bit(seed);\n }\n fork() {\n return new XoroshiroRandom([this.next(), this.next()]);\n }\n forkPositional() {\n return new XoroshiroPositionalRandom(this.next(), this.next());\n }\n next() {\n const seedLo = this.seed[0];\n let seedHi = this.seed[1];\n const value = (XoroshiroRandom.rotateLeft((seedLo + seedHi) & XoroshiroRandom.MAX_ULONG, XoroshiroRandom.BIGINT_17) + seedLo) & XoroshiroRandom.MAX_ULONG;\n seedHi ^= seedLo;\n this.seed = [\n XoroshiroRandom.rotateLeft(seedLo, XoroshiroRandom.BIGINT_49) ^ seedHi ^ ((seedHi << XoroshiroRandom.BIGINT_21) & XoroshiroRandom.MAX_ULONG),\n XoroshiroRandom.rotateLeft(seedHi, XoroshiroRandom.BIGINT_28),\n ];\n return value;\n }\n nextLong() {\n let value = this.next();\n if (value > XoroshiroRandom.POW2_63)\n value -= XoroshiroRandom.POW2_60;\n return value;\n }\n consume(count) {\n let seedLo = this.seed[0];\n let seedHi = this.seed[1];\n for (let i = 0; i < count; i += 1) {\n seedHi ^= seedLo;\n seedLo = XoroshiroRandom.rotateLeft(seedLo, XoroshiroRandom.BIGINT_49) ^ seedHi ^ seedHi << XoroshiroRandom.BIGINT_21;\n seedHi = XoroshiroRandom.rotateLeft(seedHi, XoroshiroRandom.BIGINT_28);\n }\n this.seed = [seedLo, seedHi];\n }\n nextBits(bits) {\n return this.next() >> (BigInt(64 - bits));\n }\n nextInt(max) {\n let value = this.next() & XoroshiroRandom.MAX_UINT;\n if (!max) {\n let result = Number(value);\n if (result >= 0x80000000) {\n result -= 0x100000000;\n }\n return result;\n }\n else {\n const maxBigint = BigInt(max);\n let product = value * maxBigint;\n let productLo = product & XoroshiroRandom.MAX_UINT;\n if (productLo < maxBigint) {\n const newMax = ((~maxBigint & XoroshiroRandom.MAX_UINT) + XoroshiroRandom.BIGINT_1) % maxBigint;\n while (productLo < newMax) {\n value = this.next() & XoroshiroRandom.MAX_UINT;\n product = value * maxBigint;\n productLo = product & XoroshiroRandom.MAX_UINT;\n }\n }\n const productHi = product >> XoroshiroRandom.BIGINT_32;\n return Number(productHi);\n }\n }\n nextFloat() {\n return Number(this.nextBits(24)) * XoroshiroRandom.FLOAT_MULTIPLIER;\n }\n nextDouble() {\n return Number(this.nextBits(53)) * XoroshiroRandom.DOUBLE_MULTIPLIER;\n }\n parityConfigString() {\n return 'seedLo: ' + this.seed[0] + ', seedHi: ' + this.seed[1];\n }\n}\nexport class XoroshiroPositionalRandom {\n seedLo;\n seedHi;\n constructor(seedLo, seedHi) {\n this.seedLo = seedLo;\n this.seedHi = seedHi;\n }\n at(x, y, z) {\n const positionSeed = getSeed(x, y, z);\n const seedLo = positionSeed ^ this.seedLo;\n return new XoroshiroRandom([seedLo, this.seedHi]);\n }\n fromHashOf(name) {\n const hash = md5(name, { asBytes: true });\n const lo = longfromBytes(hash[0], hash[1], hash[2], hash[3], hash[4], hash[5], hash[6], hash[7]);\n const hi = longfromBytes(hash[8], hash[9], hash[10], hash[11], hash[12], hash[13], hash[14], hash[15]);\n return new XoroshiroRandom([lo ^ this.seedLo, hi ^ this.seedHi]);\n }\n seedKey() {\n return [this.seedLo, this.seedHi];\n }\n}\n//# sourceMappingURL=XoroshiroRandom.js.map","export class SimplexNoise {\n static GRADIENT = [[1, 1, 0], [-1, 1, 0], [1, -1, 0], [-1, -1, 0], [1, 0, 1], [-1, 0, 1], [1, 0, -1], [-1, 0, -1], [0, 1, 1], [0, -1, 1], [0, 1, -1], [0, -1, -1], [1, 1, 0], [0, -1, 1], [-1, 1, 0], [0, -1, -1]];\n static F2 = 0.5 * (Math.sqrt(3.0) - 1.0);\n static G2 = (3.0 - Math.sqrt(3.0)) / 6.0;\n p;\n xo;\n yo;\n zo;\n constructor(random) {\n this.xo = random.nextDouble() * 256;\n this.yo = random.nextDouble() * 256;\n this.zo = random.nextDouble() * 256;\n this.p = Array(256);\n for (let i = 0; i < 256; i += 1) {\n this.p[i] = i;\n }\n for (let i = 0; i < 256; i += 1) {\n const j = random.nextInt(256 - i);\n const b = this.p[i];\n this.p[i] = this.p[i + j];\n this.p[i + j] = b;\n }\n }\n sample2D(d, d2) {\n let d3;\n let n3;\n let d4;\n const d6 = (d + d2) * SimplexNoise.F2;\n const n4 = Math.floor(d + d6);\n const d7 = n4 - (d3 = (n4 + (n3 = Math.floor(d2 + d6))) * SimplexNoise.G2);\n const d8 = d - d7;\n let a;\n let b;\n if (d8 > (d4 = d2 - (n3 - d3))) {\n a = 1;\n b = 0;\n }\n else {\n a = 0;\n b = 1;\n }\n const d9 = d8 - a + SimplexNoise.G2;\n const d10 = d4 - b + SimplexNoise.G2;\n const d11 = d8 - 1.0 + 2.0 * SimplexNoise.G2;\n const d12 = d4 - 1.0 + 2.0 * SimplexNoise.G2;\n const n5 = n4 & 0xFF;\n const n6 = n3 & 0xFF;\n const n7 = this.P(n5 + this.P(n6)) % 12;\n const n8 = this.P(n5 + a + this.P(n6 + b)) % 12;\n const n9 = this.P(n5 + 1 + this.P(n6 + 1)) % 12;\n const d13 = this.getCornerNoise3D(n7, d8, d4, 0.0, 0.5);\n const d14 = this.getCornerNoise3D(n8, d9, d10, 0.0, 0.5);\n const d15 = this.getCornerNoise3D(n9, d11, d12, 0.0, 0.5);\n return 70.0 * (d13 + d14 + d15);\n }\n sample(x, y, z) {\n const d5 = (x + y + z) * 0.3333333333333333;\n const x2 = Math.floor(x + d5);\n const y2 = Math.floor(y + d5);\n const z2 = Math.floor(z + d5);\n const d7 = (x2 + y2 + z2) * 0.16666666666666666;\n const x3 = x - (x2 - d7);\n const y3 = y - (y2 - d7);\n const z3 = z - (z2 - d7);\n let a;\n let b;\n let c;\n let d;\n let e;\n let f;\n if (x3 >= y3) {\n if (y3 >= z3) {\n a = 1;\n b = 0;\n c = 0;\n d = 1;\n e = 1;\n f = 0;\n }\n else if (x3 >= z3) {\n a = 1;\n b = 0;\n c = 0;\n d = 1;\n e = 0;\n f = 1;\n }\n else {\n a = 0;\n b = 0;\n c = 1;\n d = 1;\n e = 0;\n f = 1;\n }\n }\n else if (y3 < z3) {\n a = 0;\n b = 0;\n c = 1;\n d = 0;\n e = 1;\n f = 1;\n }\n else if (x3 < z3) {\n a = 0;\n b = 1;\n c = 0;\n d = 0;\n e = 1;\n f = 1;\n }\n else {\n a = 0;\n b = 1;\n c = 0;\n d = 1;\n e = 1;\n f = 0;\n }\n const x4 = x3 - a + 0.16666666666666666;\n const y4 = y3 - b + 0.16666666666666666;\n const z4 = z3 - c + 0.16666666666666666;\n const x5 = x3 - d + 0.3333333333333333;\n const y5 = y3 - e + 0.3333333333333333;\n const z5 = z3 - f + 0.3333333333333333;\n const x6 = x3 - 0.5;\n const y6 = y3 - 0.5;\n const z6 = z3 - 0.5;\n const x7 = x2 & 0xFF;\n const y7 = y2 & 0xFF;\n const z7 = z2 & 0xFF;\n const g = this.P(x7 + this.P(y7 + this.P(z7))) % 12;\n const h = this.P(x7 + a + this.P(y7 + b + this.P(z7 + c))) % 12;\n const i = this.P(x7 + d + this.P(y7 + e + this.P(z7 + f))) % 12;\n const j = this.P(x7 + 1 + this.P(y7 + 1 + this.P(z7 + 1))) % 12;\n const k = this.getCornerNoise3D(g, x3, y3, z3, 0.6);\n const l = this.getCornerNoise3D(h, x4, y4, z4, 0.6);\n const m = this.getCornerNoise3D(i, x5, y5, z5, 0.6);\n const n = this.getCornerNoise3D(j, x6, y6, z6, 0.6);\n return 32.0 * (k + l + m + n);\n }\n P(i) {\n return this.p[i & 0xFF];\n }\n getCornerNoise3D(i, a, b, c, d) {\n let f;\n let e = d - a * a - b * b - c * c;\n if (e < 0.0) {\n f = 0.0;\n }\n else {\n e *= e;\n f = e * e * SimplexNoise.gradDot(i, a, b, c);\n }\n return f;\n }\n static gradDot(a, b, c, d) {\n const grad = SimplexNoise.GRADIENT[a & 15];\n return grad[0] * b + grad[1] * c + grad[2] * d;\n }\n}\n//# sourceMappingURL=SimplexNoise.js.map","import { lerp3, smoothstep } from '../Util.js';\nimport { SimplexNoise } from './SimplexNoise.js';\nexport class ImprovedNoise {\n p;\n xo;\n yo;\n zo;\n constructor(random) {\n this.xo = random.nextDouble() * 256;\n this.yo = random.nextDouble() * 256;\n this.zo = random.nextDouble() * 256;\n this.p = Array(256);\n for (let i = 0; i < 256; i += 1) {\n this.p[i] = i > 127 ? i - 256 : i;\n }\n for (let i = 0; i < 256; i += 1) {\n const j = random.nextInt(256 - i);\n const b = this.p[i];\n this.p[i] = this.p[i + j];\n this.p[i + j] = b;\n }\n }\n sample(x, y, z, yScale = 0, yLimit = 0) {\n const x2 = x + this.xo;\n const y2 = y + this.yo;\n const z2 = z + this.zo;\n const x3 = Math.floor(x2);\n const y3 = Math.floor(y2);\n const z3 = Math.floor(z2);\n const x4 = x2 - x3;\n const y4 = y2 - y3;\n const z4 = z2 - z3;\n let y6 = 0;\n if (yScale !== 0) {\n const t = yLimit >= 0 && yLimit < y4 ? yLimit : y4;\n y6 = Math.floor(t / yScale + 1e-7) * yScale;\n }\n return this.sampleAndLerp(x3, y3, z3, x4, y4 - y6, z4, y4);\n }\n sampleAndLerp(a, b, c, d, e, f, g) {\n const h = this.P(a);\n const i = this.P(a + 1);\n const j = this.P(h + b);\n const k = this.P(h + b + 1);\n const l = this.P(i + b);\n const m = this.P(i + b + 1);\n const n = SimplexNoise.gradDot(this.P(j + c), d, e, f);\n const o = SimplexNoise.gradDot(this.P(l + c), d - 1.0, e, f);\n const p = SimplexNoise.gradDot(this.P(k + c), d, e - 1.0, f);\n const q = SimplexNoise.gradDot(this.P(m + c), d - 1.0, e - 1.0, f);\n const r = SimplexNoise.gradDot(this.P(j + c + 1), d, e, f - 1.0);\n const s = SimplexNoise.gradDot(this.P(l + c + 1), d - 1.0, e, f - 1.0);\n const t = SimplexNoise.gradDot(this.P(k + c + 1), d, e - 1.0, f - 1.0);\n const u = SimplexNoise.gradDot(this.P(m + c + 1), d - 1.0, e - 1.0, f - 1.0);\n const v = smoothstep(d);\n const w = smoothstep(g);\n const x = smoothstep(f);\n return lerp3(v, w, x, n, o, p, q, r, s, t, u);\n }\n P(i) {\n return this.p[i & 0xFF] & 0xFF;\n }\n}\n//# sourceMappingURL=ImprovedNoise.js.map","import { XoroshiroRandom } from '../random/index.js';\nimport { ImprovedNoise } from './ImprovedNoise.js';\nexport class PerlinNoise {\n noiseLevels;\n amplitudes;\n lowestFreqInputFactor;\n lowestFreqValueFactor;\n maxValue;\n constructor(random, firstOctave, amplitudes) {\n if (random instanceof XoroshiroRandom) {\n const forkedRandom = random.forkPositional();\n this.noiseLevels = Array(amplitudes.length);\n for (let i = 0; i < amplitudes.length; i++) {\n if (amplitudes[i] !== 0.0) {\n const octave = firstOctave + i;\n this.noiseLevels[i] = new ImprovedNoise(forkedRandom.fromHashOf('octave_' + octave));\n }\n }\n }\n else {\n if (1 - firstOctave < amplitudes.length) {\n throw new Error('Positive octaves are not allowed when using LegacyRandom');\n }\n this.noiseLevels = Array(amplitudes.length);\n for (let i = -firstOctave; i >= 0; i -= 1) {\n if (i < amplitudes.length && amplitudes[i] !== 0) {\n this.noiseLevels[i] = new ImprovedNoise(random);\n }\n else {\n random.consume(262);\n }\n }\n }\n this.amplitudes = amplitudes;\n this.lowestFreqInputFactor = Math.pow(2, firstOctave);\n this.lowestFreqValueFactor = Math.pow(2, (amplitudes.length - 1)) / (Math.pow(2, amplitudes.length) - 1);\n this.maxValue = this.edgeValue(2);\n }\n sample(x, y, z, yScale = 0, yLimit = 0, fixY = false) {\n let value = 0;\n let inputF = this.lowestFreqInputFactor;\n let valueF = this.lowestFreqValueFactor;\n for (let i = 0; i < this.noiseLevels.length; i += 1) {\n const noise = this.noiseLevels[i];\n if (noise) {\n value += this.amplitudes[i] * valueF * noise.sample(PerlinNoise.wrap(x * inputF), fixY ? -noise.yo : PerlinNoise.wrap(y * inputF), PerlinNoise.wrap(z * inputF), yScale * inputF, yLimit * inputF);\n }\n inputF *= 2;\n valueF /= 2;\n }\n return value;\n }\n getOctaveNoise(i) {\n return this.noiseLevels[this.noiseLevels.length - 1 - i];\n }\n edgeValue(x) {\n let value = 0;\n let valueF = this.lowestFreqValueFactor;\n for (let i = 0; i < this.noiseLevels.length; i += 1) {\n if (this.noiseLevels[i]) {\n value += this.amplitudes[i] * x * valueF;\n }\n valueF /= 2;\n }\n return value;\n }\n static wrap(value) {\n return value - Math.floor(value / 3.3554432E7 + 0.5) * 3.3554432E7;\n }\n}\n//# sourceMappingURL=PerlinNoise.js.map","import { clampedLerp } from '../Util.js';\nimport { PerlinNoise } from './PerlinNoise.js';\nexport class BlendedNoise {\n xzScale;\n yScale;\n xzFactor;\n yFactor;\n smearScaleMultiplier;\n minLimitNoise;\n maxLimitNoise;\n mainNoise;\n xzMultiplier;\n yMultiplier;\n maxValue;\n constructor(random, xzScale, yScale, xzFactor, yFactor, smearScaleMultiplier) {\n this.xzScale = xzScale;\n this.yScale = yScale;\n this.xzFactor = xzFactor;\n this.yFactor = yFactor;\n this.smearScaleMultiplier = smearScaleMultiplier;\n this.minLimitNoise = new PerlinNoise(random, -15, [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]);\n this.maxLimitNoise = new PerlinNoise(random, -15, [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]);\n this.mainNoise = new PerlinNoise(random, -7, [1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0]);\n this.xzMultiplier = 684.412 * xzScale;\n this.yMultiplier = 684.412 * yScale;\n this.maxValue = this.minLimitNoise.edgeValue(this.yScale + 2); //TODO\n }\n sample(x, y, z) {\n const scaledX = x * this.xzMultiplier;\n const scaledY = y * this.yMultiplier;\n const scaledZ = z * this.xzMultiplier;\n const factoredX = scaledX / this.xzFactor;\n const factoredY = scaledY / this.yFactor;\n const factoredZ = scaledZ / this.xzFactor;\n const smear = this.yMultiplier * this.smearScaleMultiplier;\n const factoredSmear = smear / this.yFactor;\n let noise;\n let value = 0;\n let factor = 1;\n for (let i = 0; i < 8; i += 1) {\n noise = this.mainNoise.getOctaveNoise(i);\n if (noise) {\n const xx = PerlinNoise.wrap(factoredX * factor);\n const yy = PerlinNoise.wrap(factoredY * factor);\n const zz = PerlinNoise.wrap(factoredZ * factor);\n value += noise.sample(xx, yy, zz, factoredSmear * factor, factoredY * factor) / factor;\n }\n factor /= 2;\n }\n value = (value / 10 + 1) / 2;\n factor = 1;\n let min = 0;\n let max = 0;\n for (let i = 0; i < 16; i += 1) {\n const xx = PerlinNoise.wrap(scaledX * factor);\n const yy = PerlinNoise.wrap(scaledY * factor);\n const zz = PerlinNoise.wrap(scaledZ * factor);\n const smearsmear = smear * factor;\n if (value < 1 && (noise = this.minLimitNoise.getOctaveNoise(i))) {\n min += noise.sample(xx, yy, zz, smearsmear, scaledY * factor) / factor;\n }\n if (value > 0 && (noise = this.maxLimitNoise.getOctaveNoise(i))) {\n max += noise.sample(xx, yy, zz, smearsmear, scaledY * factor) / factor;\n }\n factor /= 2;\n }\n return clampedLerp(min / 512, max / 512, value) / 128;\n }\n}\n//# sourceMappingURL=BlendedNoise.js.map","import { Json } from '../../util/index.js';\nimport { PerlinNoise } from './PerlinNoise.js';\nexport class NormalNoise {\n static INPUT_FACTOR = 1.0181268882175227;\n valueFactor;\n first;\n second;\n maxValue;\n constructor(random, { firstOctave, amplitudes }) {\n this.first = new PerlinNoise(random, firstOctave, amplitudes);\n this.second = new PerlinNoise(random, firstOctave, amplitudes);\n let min = +Infinity;\n let max = -Infinity;\n for (let i = 0; i < amplitudes.length; i += 1) {\n if (amplitudes[i] !== 0) {\n min = Math.min(min, i);\n max = Math.max(max, i);\n }\n }\n const expectedDeviation = 0.1 * (1 + 1 / (max - min + 1));\n this.valueFactor = (1 / 6) / expectedDeviation;\n this.maxValue = (this.first.maxValue + this.second.maxValue) * this.valueFactor;\n }\n sample(x, y, z) {\n const x2 = x * NormalNoise.INPUT_FACTOR;\n const y2 = y * NormalNoise.INPUT_FACTOR;\n const z2 = z * NormalNoise.INPUT_FACTOR;\n return (this.first.sample(x, y, z) + this.second.sample(x2, y2, z2)) * this.valueFactor;\n }\n}\nexport var NoiseParameters;\n(function (NoiseParameters) {\n function create(firstOctave, amplitudes) {\n return { firstOctave, amplitudes };\n }\n NoiseParameters.create = create;\n function fromJson(obj) {\n const root = Json.readObject(obj) ?? {};\n return {\n firstOctave: Json.readInt(root.firstOctave) ?? 0,\n amplitudes: Json.readArray(root.amplitudes, e => Json.readNumber(e) ?? 0) ?? [],\n };\n }\n NoiseParameters.fromJson = fromJson;\n})(NoiseParameters || (NoiseParameters = {}));\n//# sourceMappingURL=NormalNoise.js.map","import { SimplexNoise } from './SimplexNoise.js';\nexport class PerlinSimplexNoise {\n noiseLevels;\n highestFreqInputFactor;\n highestFreqValueFactor;\n constructor(random, octaves) {\n const lastOctave = octaves[octaves.length - 1];\n const negFirstOctave = -octaves[0];\n const range = negFirstOctave + lastOctave + 1;\n const octavesSet = new Set(octaves);\n const noise = new SimplexNoise(random);\n this.noiseLevels = Array(range);\n if (lastOctave >= 0 && lastOctave < range && octavesSet.has(0)) {\n this.noiseLevels[lastOctave] = noise;\n }\n for (let i = lastOctave + 1; i < range; i += 1) {\n if (i >= 0 && octavesSet.has(lastOctave - i)) {\n this.noiseLevels[i] = new SimplexNoise(random);\n }\n else {\n random.consume(262);\n }\n }\n if (lastOctave > 0) {\n throw new Error('Positive octaves are not allowed');\n }\n this.highestFreqInputFactor = Math.pow(2, lastOctave);\n this.highestFreqValueFactor = 1 / (Math.pow(2, range) - 1);\n }\n sample(x, y, useOffsets) {\n let value = 0;\n let inputF = this.highestFreqInputFactor;\n let valueF = this.highestFreqValueFactor;\n for (let i = 0; i < this.noiseLevels.length; i += 1) {\n const noise = this.noiseLevels[i];\n if (noise) {\n value += valueF * noise.sample2D(x * inputF + (useOffsets ? noise.xo : 0), y * inputF + (useOffsets ? noise.yo : 0));\n }\n inputF /= 2;\n valueF *= 2;\n }\n return value;\n }\n}\n//# sourceMappingURL=PerlinSimplexNoise.js.map","import { Holder } from '../core/index.js';\nimport { NormalNoise } from '../math/index.js';\nimport { Json } from '../util/index.js';\nimport { DensityFunction } from './DensityFunction.js';\nimport { WorldgenRegistries } from './WorldgenRegistries.js';\nexport var NoiseRouter;\n(function (NoiseRouter) {\n const fieldParser = (obj) => new DensityFunction.HolderHolder(Holder.parser(WorldgenRegistries.DENSITY_FUNCTION, DensityFunction.fromJson)(obj));\n function fromJson(obj) {\n const root = Json.readObject(obj) ?? {};\n return {\n barrier: fieldParser(root.barrier),\n fluidLevelFloodedness: fieldParser(root.fluid_level_floodedness),\n fluidLevelSpread: fieldParser(root.fluid_level_spread),\n lava: fieldParser(root.lava),\n temperature: fieldParser(root.temperature),\n vegetation: fieldParser(root.vegetation),\n continents: fieldParser(root.continents),\n erosion: fieldParser(root.erosion),\n depth: fieldParser(root.depth),\n ridges: fieldParser(root.ridges),\n initialDensityWithoutJaggedness: fieldParser(root.initial_density_without_jaggedness),\n finalDensity: fieldParser(root.final_density),\n veinToggle: fieldParser(root.vein_toggle),\n veinRidged: fieldParser(root.vein_ridged),\n veinGap: fieldParser(root.vein_gap),\n };\n }\n NoiseRouter.fromJson = fromJson;\n function create(router) {\n return {\n barrier: DensityFunction.Constant.ZERO,\n fluidLevelFloodedness: DensityFunction.Constant.ZERO,\n fluidLevelSpread: DensityFunction.Constant.ZERO,\n lava: DensityFunction.Constant.ZERO,\n temperature: DensityFunction.Constant.ZERO,\n vegetation: DensityFunction.Constant.ZERO,\n continents: DensityFunction.Constant.ZERO,\n erosion: DensityFunction.Constant.ZERO,\n depth: DensityFunction.Constant.ZERO,\n ridges: DensityFunction.Constant.ZERO,\n initialDensityWithoutJaggedness: DensityFunction.Constant.ZERO,\n finalDensity: DensityFunction.Constant.ZERO,\n veinToggle: DensityFunction.Constant.ZERO,\n veinRidged: DensityFunction.Constant.ZERO,\n veinGap: DensityFunction.Constant.ZERO,\n ...router,\n };\n }\n NoiseRouter.create = create;\n function mapAll(router, visitor) {\n return {\n barrier: router.barrier.mapAll(visitor),\n fluidLevelFloodedness: router.fluidLevelFloodedness.mapAll(visitor),\n fluidLevelSpread: router.fluidLevelSpread.mapAll(visitor),\n lava: router.lava.mapAll(visitor),\n temperature: router.temperature.mapAll(visitor),\n vegetation: router.vegetation.mapAll(visitor),\n continents: router.continents.mapAll(visitor),\n erosion: router.erosion.mapAll(visitor),\n depth: router.depth.mapAll(visitor),\n ridges: router.ridges.mapAll(visitor),\n initialDensityWithoutJaggedness: router.initialDensityWithoutJaggedness.mapAll(visitor),\n finalDensity: router.finalDensity.mapAll(visitor),\n veinToggle: router.veinToggle.mapAll(visitor),\n veinRidged: router.veinRidged.mapAll(visitor),\n veinGap: router.veinGap.mapAll(visitor),\n };\n }\n NoiseRouter.mapAll = mapAll;\n const noiseCache = new Map();\n function instantiate(random, noise) {\n const key = noise.key()?.toString();\n if (!key) {\n throw new Error('Cannot instantiate noise from direct holder');\n }\n const randomKey = random.seedKey();\n const cached = noiseCache.get(key);\n if (cached && cached[0] === randomKey[0] && cached[1] === randomKey[1]) {\n return cached[2];\n }\n const result = new NormalNoise(random.fromHashOf(key), noise.value());\n noiseCache.set(key, [randomKey[0], randomKey[1], result]);\n return result;\n }\n NoiseRouter.instantiate = instantiate;\n})(NoiseRouter || (NoiseRouter = {}));\n//# sourceMappingURL=NoiseRouter.js.map","import { clampedLerp } from '../math/index.js';\nimport { Json } from '../util/index.js';\nexport var NoiseSettings;\n(function (NoiseSettings) {\n function fromJson(obj) {\n const root = Json.readObject(obj) ?? {};\n return {\n minY: Json.readInt(root.min_y) ?? 0,\n height: Json.readInt(root.height) ?? 256,\n xzSize: Json.readInt(root.size_horizontal) ?? 1,\n ySize: Json.readInt(root.size_vertical) ?? 1,\n };\n }\n NoiseSettings.fromJson = fromJson;\n function create(settings) {\n return {\n minY: 0,\n height: 256,\n xzSize: 1,\n ySize: 1,\n ...settings,\n };\n }\n NoiseSettings.create = create;\n function cellHeight(settings) {\n return settings.ySize << 2;\n }\n NoiseSettings.cellHeight = cellHeight;\n function cellWidth(settings) {\n return settings.xzSize << 2;\n }\n NoiseSettings.cellWidth = cellWidth;\n function cellCountY(settings) {\n return settings.height / cellHeight(settings);\n }\n NoiseSettings.cellCountY = cellCountY;\n function minCellY(settings) {\n return Math.floor(settings.minY / cellHeight(settings));\n }\n NoiseSettings.minCellY = minCellY;\n})(NoiseSettings || (NoiseSettings = {}));\nexport var NoiseSlideSettings;\n(function (NoiseSlideSettings) {\n function fromJson(obj) {\n const root = Json.readObject(obj) ?? {};\n return {\n target: Json.readNumber(root.target) ?? 0,\n size: Json.readInt(root.size) ?? 0,\n offset: Json.readInt(root.offset) ?? 0,\n };\n }\n NoiseSlideSettings.fromJson = fromJson;\n function apply(slide, density, y) {\n if (slide.size <= 0)\n return density;\n const t = (y - slide.offset) / slide.size;\n return clampedLerp(slide.target, density, t);\n }\n NoiseSlideSettings.apply = apply;\n})(NoiseSlideSettings || (NoiseSlideSettings = {}));\n//# sourceMappingURL=NoiseSettings.js.map","import { Json } from '../util/index.js';\nexport var VerticalAnchor;\n(function (VerticalAnchor) {\n function fromJson(obj) {\n const root = Json.readObject(obj) ?? {};\n if (root.absolute !== undefined) {\n return absolute(Json.readNumber(root.absolute) ?? 0);\n }\n else if (root.above_bottom !== undefined) {\n return aboveBottom(Json.readNumber(root.above_bottom) ?? 0);\n }\n else if (root.below_top !== undefined) {\n return belowTop(Json.readNumber(root.below_top) ?? 0);\n }\n return () => 0;\n }\n VerticalAnchor.fromJson = fromJson;\n function absolute(value) {\n return () => value;\n }\n function aboveBottom(value) {\n return context => context.minY + value;\n }\n function belowTop(value) {\n return context => context.maxY - value;\n }\n})(VerticalAnchor || (VerticalAnchor = {}));\nexport var WorldgenContext;\n(function (WorldgenContext) {\n function create(minY, height) {\n return {\n minY,\n height,\n maxY: minY + height - 1,\n };\n }\n WorldgenContext.create = create;\n})(WorldgenContext || (WorldgenContext = {}));\n//# sourceMappingURL=VerticalAnchor.js.map","import { BlockPos, BlockState, ChunkPos } from '../core/index.js';\nimport { lerp2, map, XoroshiroRandom } from '../math/index.js';\nimport { computeIfAbsent, Json, lazy } from '../util/index.js';\nimport { NoiseRouter } from './NoiseRouter.js';\nimport { VerticalAnchor } from './VerticalAnchor.js';\nimport { WorldgenRegistries } from './WorldgenRegistries.js';\nexport class SurfaceSystem {\n rule;\n defaultBlock;\n surfaceNoise;\n surfaceSecondaryNoise;\n random;\n positionalRandoms;\n constructor(rule, defaultBlock, seed) {\n this.rule = rule;\n this.defaultBlock = defaultBlock;\n this.random = XoroshiroRandom.create(seed).forkPositional();\n this.surfaceNoise = NoiseRouter.instantiate(this.random, WorldgenRegistries.SURFACE_NOISE);\n this.surfaceSecondaryNoise = NoiseRouter.instantiate(this.random, WorldgenRegistries.SURFACE_SECONDARY_NOISE);\n this.positionalRandoms = new Map();\n }\n buildSurface(chunk, noiseChunk, worldgenContext, getBiome) {\n const minX = ChunkPos.minBlockX(chunk.pos);\n const minZ = ChunkPos.minBlockZ(chunk.pos);\n const surfaceContext = new SurfaceContext(this, chunk, noiseChunk, worldgenContext, getBiome);\n const ruleWithContext = this.rule(surfaceContext);\n for (let x = 0; x < 16; x += 1) {\n const worldX = minX + x;\n for (let z = 0; z < 1; z += 1) {\n const worldZ = minZ + z;\n surfaceContext.updateXZ(worldX, worldZ);\n let stoneDepthAbove = 0;\n let waterHeight = Number.MIN_SAFE_INTEGER;\n let stoneDepthOffset = Number.MAX_SAFE_INTEGER;\n for (let y = chunk.maxY; y >= chunk.minY; y -= 1) {\n const worldPos = BlockPos.create(worldX, y, worldZ);\n const oldState = chunk.getBlockState(worldPos);\n if (oldState.equals(BlockState.AIR)) {\n stoneDepthAbove = 0;\n waterHeight = Number.MIN_SAFE_INTEGER;\n continue;\n }\n if (oldState.isFluid()) {\n if (waterHeight === Number.MIN_SAFE_INTEGER) {\n waterHeight = y + 1;\n }\n continue;\n }\n if (stoneDepthOffset >= y) {\n stoneDepthOffset = Number.MIN_SAFE_INTEGER;\n for (let i = y - 1; i >= chunk.minY; i -= 1) {\n const state = chunk.getBlockState(BlockPos.create(worldX, i, worldZ));\n if (state.equals(BlockState.AIR) || state.isFluid()) {\n stoneDepthOffset = i + 1;\n break;\n }\n }\n }\n stoneDepthAbove += 1;\n const stoneDepthBelow = y - stoneDepthOffset + 1;\n if (!oldState.equals(this.defaultBlock)) {\n continue;\n }\n surfaceContext.updateY(stoneDepthAbove, stoneDepthBelow, waterHeight, y);\n const newState = ruleWithContext(worldX, y, worldZ);\n if (newState) {\n chunk.setBlockState(worldPos, newState);\n }\n }\n }\n }\n }\n getSurfaceDepth(x, z) {\n const noise = this.surfaceNoise.sample(x, 0, z);\n const offset = this.random.at(x, 0, z).nextDouble() * 0.25;\n return noise * 2.75 + 3 + offset;\n }\n getSurfaceSecondary(x, z) {\n return this.surfaceSecondaryNoise.sample(x, 0, z);\n }\n getRandom(name) {\n return computeIfAbsent(this.positionalRandoms, name, () => {\n return this.random.fromHashOf(name);\n });\n }\n}\nexport class SurfaceContext {\n system;\n chunk;\n noiseChunk;\n context;\n getBiome;\n blockX = 0;\n blockY = 0;\n blockZ = 0;\n stoneDepthAbove = 0;\n stoneDepthBelow = 0;\n surfaceDepth = 0;\n waterHeight = 0;\n biome = () => '';\n surfaceSecondary = () => 0;\n minSurfaceLevel = () => 0;\n constructor(system, chunk, noiseChunk, context, getBiome) {\n this.system = system;\n this.chunk = chunk;\n this.noiseChunk = noiseChunk;\n this.context = context;\n this.getBiome = getBiome;\n }\n updateXZ(x, z) {\n this.blockX = x;\n this.blockZ = z;\n this.surfaceDepth = this.system.getSurfaceDepth(x, z);\n this.surfaceSecondary = lazy(() => this.system.getSurfaceSecondary(x, z));\n this.minSurfaceLevel = lazy(() => this.calculateMinSurfaceLevel(x, z));\n }\n updateY(stoneDepthAbove, stoneDepthBelow, waterHeight, y) {\n this.blockY = y;\n this.stoneDepthAbove = stoneDepthAbove;\n this.stoneDepthBelow = stoneDepthBelow;\n this.waterHeight = waterHeight;\n this.biome = lazy(() => this.getBiome(BlockPos.create(this.blockX, this.blockY, this.blockZ)));\n }\n calculateMinSurfaceLevel(x, z) {\n const cellX = x >> 4;\n const cellZ = z >> 4;\n const level00 = this.noiseChunk.getPreliminarySurfaceLevel(cellX << 4, cellZ << 4);\n const level10 = this.noiseChunk.getPreliminarySurfaceLevel((cellX + 1) << 4, cellZ << 4);\n const level01 = this.noiseChunk.getPreliminarySurfaceLevel(cellX << 4, (cellZ + 1) << 4);\n const level11 = this.noiseChunk.getPreliminarySurfaceLevel((cellX + 1) << 4, (cellZ + 1) << 4);\n const level = Math.floor(lerp2((x & 0xF) / 16, (z & 0xF) / 16, level00, level10, level01, level11));\n return level + this.surfaceDepth - 8;\n }\n}\nexport var SurfaceRule;\n(function (SurfaceRule) {\n SurfaceRule.NOOP = () => () => undefined;\n function fromJson(obj) {\n const root = Json.readObject(obj) ?? {};\n const type = Json.readString(root.type)?.replace(/^minecraft:/, '');\n switch (type) {\n case 'block': return block(BlockState.fromJson(root.result_state));\n case 'sequence': return sequence(Json.readArray(root.sequence, SurfaceRule.fromJson) ?? []);\n case 'condition': return condition(SurfaceCondition.fromJson(root.if_true), SurfaceRule.fromJson(root.then_run));\n }\n return SurfaceRule.NOOP;\n }\n SurfaceRule.fromJson = fromJson;\n function block(state) {\n return () => () => state;\n }\n SurfaceRule.block = block;\n function sequence(rules) {\n return context => {\n const rulesWithContext = rules.map(rule => rule(context));\n return (x, y, z) => {\n for (const rule of rulesWithContext) {\n const result = rule(x, y, z);\n if (result)\n return result;\n }\n return undefined;\n };\n };\n }\n SurfaceRule.sequence = sequence;\n function condition(ifTrue, thenRun) {\n return context => (x, y, z) => {\n if (ifTrue(context)) {\n return thenRun(context)(x, y, z);\n }\n return undefined;\n };\n }\n SurfaceRule.condition = condition;\n})(SurfaceRule || (SurfaceRule = {}));\nexport var SurfaceCondition;\n(function (SurfaceCondition) {\n SurfaceCondition.FALSE = () => false;\n SurfaceCondition.TRUE = () => true;\n function fromJson(obj) {\n const root = Json.readObject(obj) ?? {};\n const type = Json.readString(root.type)?.replace(/^minecraft:/, '');\n switch (type) {\n case 'above_preliminary_surface': return abovePreliminarySurface();\n case 'biome': return biome(Json.readArray(root.biome_is, e => Json.readString(e) ?? '') ?? []);\n case 'not': return not(SurfaceCondition.fromJson(root.invert));\n case 'stone_depth': return stoneDepth(Json.readInt(root.offset) ?? 0, Json.readBoolean(root.add_surface_depth) ?? false, Json.readInt(root.secondary_depth_range) ?? 0, Json.readString(root.surface_type) === 'ceiling');\n case 'vertical_gradient': return verticalGradient(Json.readString(root.random_name) ?? '', VerticalAnchor.fromJson(root.true_at_and_below), VerticalAnchor.fromJson(root.false_at_and_above));\n case 'water': return water(Json.readInt(root.offset) ?? 0, Json.readInt(root.surface_depth_multiplier) ?? 0, Json.readBoolean(root.add_surface_depth) ?? false);\n case 'y_above': return yAbove(VerticalAnchor.fromJson(root.anchor), Json.readInt(root.surface_depth_multiplier) ?? 0, Json.readBoolean(root.add_surface_depth) ?? false);\n }\n return SurfaceCondition.FALSE;\n }\n SurfaceCondition.fromJson = fromJson;\n function abovePreliminarySurface() {\n return context => context.blockY >= context.minSurfaceLevel();\n }\n SurfaceCondition.abovePreliminarySurface = abovePreliminarySurface;\n function biome(biomes) {\n const biomeSet = new Set(biomes);\n return context => biomeSet.has(context.biome());\n }\n SurfaceCondition.biome = biome;\n function not(invert) {\n return context => !invert(context);\n }\n SurfaceCondition.not = not;\n function stoneDepth(offset, addSurfaceDepth, secondaryDepthRange, ceiling) {\n return context => {\n const depth = ceiling ? context.stoneDepthBelow : context.stoneDepthAbove;\n const surfaceDepth = addSurfaceDepth ? context.surfaceDepth : 0;\n const secondaryDepth = secondaryDepthRange === 0 ? 0 : map(context.surfaceSecondary(), -1, 1, 0, secondaryDepthRange);\n return depth <= 1 + offset + surfaceDepth + secondaryDepth;\n };\n }\n SurfaceCondition.stoneDepth = stoneDepth;\n function verticalGradient(randomName, trueAtAndBelow, falseAtAndAbove) {\n return context => {\n const trueAtAndBelowY = trueAtAndBelow(context.context);\n const falseAtAndAboveY = falseAtAndAbove(context.context);\n if (context.blockY <= trueAtAndBelowY) {\n return true;\n }\n if (context.blockY >= falseAtAndAboveY) {\n return false;\n }\n const random = context.system.getRandom(randomName);\n const chance = map(context.blockY, trueAtAndBelowY, falseAtAndAboveY, 1, 0);\n return random.nextFloat() < chance;\n };\n }\n SurfaceCondition.verticalGradient = verticalGradient;\n function water(offset, surfaceDepthMultiplier, addStoneDepth) {\n return context => {\n if (context.waterHeight === Number.MIN_SAFE_INTEGER) {\n return true;\n }\n const stoneDepth = addStoneDepth ? context.stoneDepthAbove : 0;\n return context.blockY + stoneDepth >= context.waterHeight + offset + context.surfaceDepth * surfaceDepthMultiplier;\n };\n }\n SurfaceCondition.water = water;\n function yAbove(anchor, surfaceDepthMultiplier, addStoneDepth) {\n return context => {\n const stoneDepth = addStoneDepth ? context.stoneDepthAbove : 0;\n return context.blockY + stoneDepth >= anchor(context.context) + context.surfaceDepth * surfaceDepthMultiplier;\n };\n }\n SurfaceCondition.yAbove = yAbove;\n})(SurfaceCondition || (SurfaceCondition = {}));\n//# sourceMappingURL=SurfaceSystem.js.map","import { BlockState } from '../core/index.js';\nimport { Json } from '../util/index.js';\nimport { NoiseRouter } from './NoiseRouter.js';\nimport { NoiseSettings } from './NoiseSettings.js';\nimport { SurfaceRule } from './SurfaceSystem.js';\nexport var NoiseGeneratorSettings;\n(function (NoiseGeneratorSettings) {\n function fromJson(obj) {\n const root = Json.readObject(obj) ?? {};\n return {\n surfaceRule: SurfaceRule.fromJson(root.surface_rule),\n noise: NoiseSettings.fromJson(root.noise),\n defaultBlock: BlockState.fromJson(root.default_block),\n defaultFluid: BlockState.fromJson(root.default_fluid),\n noiseRouter: NoiseRouter.fromJson(root.noise_router),\n seaLevel: Json.readInt(root.sea_level) ?? 0,\n disableMobGeneration: Json.readBoolean(root.disable_mob_generation) ?? false,\n aquifersEnabled: Json.readBoolean(root.aquifers_enabled) ?? false,\n oreVeinsEnabled: Json.readBoolean(root.ore_veins_enabled) ?? false,\n legacyRandomSource: Json.readBoolean(root.legacy_random_source) ?? false,\n };\n }\n NoiseGeneratorSettings.fromJson = fromJson;\n function create(settings) {\n return {\n surfaceRule: SurfaceRule.NOOP,\n noise: NoiseSettings.create({}),\n defaultBlock: BlockState.STONE,\n defaultFluid: BlockState.WATER,\n noiseRouter: NoiseRouter.create({}),\n seaLevel: 0,\n disableMobGeneration: false,\n aquifersEnabled: false,\n oreVeinsEnabled: false,\n legacyRandomSource: false,\n ...settings,\n };\n }\n NoiseGeneratorSettings.create = create;\n})(NoiseGeneratorSettings || (NoiseGeneratorSettings = {}));\n//# sourceMappingURL=NoiseGeneratorSettings.js.map","import { Identifier, Registry } from '../core/index.js';\nimport { NoiseParameters } from '../math/index.js';\nimport { DensityFunction } from './DensityFunction.js';\nimport { NoiseGeneratorSettings } from './NoiseGeneratorSettings.js';\nexport var WorldgenRegistries;\n(function (WorldgenRegistries) {\n WorldgenRegistries.NOISE = register('worldgen/noise', NoiseParameters.fromJson);\n WorldgenRegistries.DENSITY_FUNCTION = register('worldgen/density_function', obj => DensityFunction.fromJson(obj));\n WorldgenRegistries.NOISE_SETTINGS = register('worldgen/noise_settings', NoiseGeneratorSettings.fromJson);\n function register(name, parser) {\n const registry = new Registry(Identifier.create(name), parser);\n Registry.REGISTRY.register(registry.key, registry);\n return registry;\n }\n WorldgenRegistries.SURFACE_NOISE = createNoise('surface', -6, [1, 1, 1]);\n WorldgenRegistries.SURFACE_SECONDARY_NOISE = createNoise('surface_secondary', -6, [1, 1, 0, 1]);\n function createNoise(name, firstOctave, amplitudes) {\n return WorldgenRegistries.NOISE.register(Identifier.create(name), NoiseParameters.create(firstOctave, amplitudes), true);\n }\n})(WorldgenRegistries || (WorldgenRegistries = {}));\n//# sourceMappingURL=WorldgenRegistries.js.map","import { Holder, Identifier } from '../core/index.js';\nimport { clamp, clampedMap, CubicSpline, lazyLerp3, LegacyRandom, NoiseParameters, SimplexNoise } from '../math/index.js';\nimport { computeIfAbsent, Json } from '../util/index.js';\nimport { WorldgenRegistries } from './WorldgenRegistries.js';\nexport class DensityFunction {\n minValue() {\n return -this.maxValue();\n }\n mapAll(visitor) {\n return visitor.map(this);\n }\n}\n(function (DensityFunction) {\n function context(x, y, z) {\n return {\n x,\n y,\n z,\n };\n }\n DensityFunction.context = context;\n class Transformer extends DensityFunction {\n input;\n constructor(input) {\n super();\n this.input = input;\n }\n compute(context) {\n return this.transform(context, this.input.compute(context));\n }\n }\n const NoiseParser = Holder.parser(WorldgenRegistries.NOISE, NoiseParameters.fromJson);\n function fromJson(obj, inputParser = fromJson) {\n if (typeof obj === 'string') {\n return new HolderHolder(Holder.reference(WorldgenRegistries.DENSITY_FUNCTION, Identifier.parse(obj)));\n }\n if (typeof obj === 'number') {\n return new Constant(obj);\n }\n const root = Json.readObject(obj) ?? {};\n const type = Json.readString(root.type)?.replace(/^minecraft:/, '');\n switch (type) {\n case 'blend_alpha': return new ConstantMinMax(1, 0, 1);\n case 'blend_offset': return new ConstantMinMax(0, -Infinity, Infinity);\n case 'beardifier': return new ConstantMinMax(0, -Infinity, Infinity);\n case 'old_blended_noise': return new OldBlendedNoise(Json.readNumber(root.xz_scale) ?? 1, Json.readNumber(root.y_scale) ?? 1, Json.readNumber(root.xz_factor) ?? 80, Json.readNumber(root.y_factor) ?? 160, Json.readNumber(root.smear_scale_multiplier) ?? 8);\n case 'flat_cache': return new FlatCache(inputParser(root.argument));\n case 'interpolated': return new Interpolated(inputParser(root.argument));\n case 'cache_2d': return new Cache2D(inputParser(root.argument));\n case 'cache_once': return new CacheOnce(inputParser(root.argument));\n case 'cache_all_in_cell': return new CacheAllInCell(inputParser(root.argument));\n case 'noise': return new Noise(Json.readNumber(root.xz_scale) ?? 1, Json.readNumber(root.y_scale) ?? 1, NoiseParser(root.noise));\n case 'end_islands': return new EndIslands();\n case 'weird_scaled_sampler': return new WeirdScaledSampler(inputParser(root.input), Json.readEnum(root.rarity_value_mapper, RarityValueMapper), NoiseParser(root.noise));\n case 'shifted_noise': return new ShiftedNoise(inputParser(root.shift_x), inputParser(root.shift_y), inputParser(root.shift_z), Json.readNumber(root.xz_scale) ?? 1, Json.readNumber(root.y_scale) ?? 1, NoiseParser(root.noise));\n case 'range_choice': return new RangeChoice(inputParser(root.input), Json.readNumber(root.min_inclusive) ?? 0, Json.readNumber(root.max_exclusive) ?? 1, inputParser(root.when_in_range), inputParser(root.when_out_of_range));\n case 'shift_a': return new ShiftA(NoiseParser(root.argument));\n case 'shift_b': return new ShiftB(NoiseParser(root.argument));\n case 'shift': return new Shift(NoiseParser(root.argument));\n case 'blend_density': return new BlendDensity(inputParser(root.argument));\n case 'clamp': return new Clamp(inputParser(root.input), Json.readNumber(root.min) ?? 0, Json.readNumber(root.max) ?? 1);\n case 'abs':\n case 'square':\n case 'cube':\n case 'half_negative':\n case 'quarter_negative':\n case 'squeeze':\n return new Mapped(type, inputParser(root.argument));\n case 'add':\n case 'mul':\n case 'min':\n case 'max': return new Ap2(Json.readEnum(type, Ap2Type), inputParser(root.argument1), inputParser(root.argument2));\n case 'spline': return new Spline(CubicSpline.fromJson(root.spline, inputParser));\n case 'constant': return new Constant(Json.readNumber(root.argument) ?? 0);\n case 'y_clamped_gradient': return new YClampedGradient(Json.readInt(root.from_y) ?? -4064, Json.readInt(root.to_y) ?? 4062, Json.readNumber(root.from_value) ?? -4064, Json.readNumber(root.to_value) ?? 4062);\n }\n return Constant.ZERO;\n }\n DensityFunction.fromJson = fromJson;\n class Constant extends DensityFunction {\n value;\n static ZERO = new Constant(0);\n static ONE = new Constant(1);\n constructor(value) {\n super();\n this.value = value;\n }\n compute() {\n return this.value;\n }\n minValue() {\n return this.value;\n }\n maxValue() {\n return this.value;\n }\n }\n DensityFunction.Constant = Constant;\n class HolderHolder extends DensityFunction {\n holder;\n constructor(holder) {\n super();\n this.holder = holder;\n }\n compute(context) {\n return this.holder.value().compute(context);\n }\n minValue() {\n return this.holder.value().minValue();\n }\n maxValue() {\n return this.holder.value().maxValue();\n }\n }\n DensityFunction.HolderHolder = HolderHolder;\n class ConstantMinMax extends DensityFunction.Constant {\n min;\n max;\n constructor(value, min, max) {\n super(value);\n this.min = min;\n this.max = max;\n }\n minValue() {\n return this.min;\n }\n maxValue() {\n return this.max;\n }\n }\n DensityFunction.ConstantMinMax = ConstantMinMax;\n class OldBlendedNoise extends DensityFunction {\n xzScale;\n yScale;\n xzFactor;\n yFactor;\n smearScaleMultiplier;\n blendedNoise;\n constructor(xzScale, yScale, xzFactor, yFactor, smearScaleMultiplier, blendedNoise) {\n super();\n this.xzScale = xzScale;\n this.yScale = yScale;\n this.xzFactor = xzFactor;\n this.yFactor = yFactor;\n this.smearScaleMultiplier = smearScaleMultiplier;\n this.blendedNoise = blendedNoise;\n }\n compute(context) {\n return this.blendedNoise?.sample(context.x, context.y, context.z) ?? 0;\n }\n maxValue() {\n return this.blendedNoise?.maxValue ?? 0;\n }\n }\n DensityFunction.OldBlendedNoise = OldBlendedNoise;\n class Wrapper extends DensityFunction {\n wrapped;\n constructor(wrapped) {\n super();\n this.wrapped = wrapped;\n }\n minValue() {\n return this.wrapped.minValue();\n }\n maxValue() {\n return this.wrapped.maxValue();\n }\n }\n class FlatCache extends Wrapper {\n lastQuartX;\n lastQuartZ;\n lastValue = 0;\n constructor(wrapped) {\n super(wrapped);\n }\n compute(context) {\n const quartX = context.x >> 2;\n const quartZ = context.z >> 2;\n if (this.lastQuartX !== quartX || this.lastQuartZ !== quartZ) {\n this.lastValue = this.wrapped.compute(DensityFunction.context(quartX << 2, 0, quartZ << 2));\n this.lastQuartX = quartX;\n this.lastQuartZ = quartZ;\n }\n return this.lastValue;\n }\n mapAll(visitor) {\n return visitor.map(new FlatCache(this.wrapped.mapAll(visitor)));\n }\n }\n DensityFunction.FlatCache = FlatCache;\n class CacheAllInCell extends Wrapper {\n constructor(wrapped) {\n super(wrapped);\n }\n compute(context) {\n return this.wrapped.compute(context);\n }\n mapAll(visitor) {\n return visitor.map(new CacheAllInCell(this.wrapped.mapAll(visitor)));\n }\n }\n DensityFunction.CacheAllInCell = CacheAllInCell;\n class Cache2D extends Wrapper {\n lastBlockX;\n lastBlockZ;\n lastValue = 0;\n constructor(wrapped) {\n super(wrapped);\n }\n compute(context) {\n const blockX = context.x;\n const blockZ = context.z;\n if (this.lastBlockX !== blockX || this.lastBlockZ !== blockZ) {\n this.lastValue = this.wrapped.compute(context);\n this.lastBlockX = blockX;\n this.lastBlockZ = blockZ;\n }\n return this.lastValue;\n }\n mapAll(visitor) {\n return visitor.map(new Cache2D(this.wrapped.mapAll(visitor)));\n }\n }\n DensityFunction.Cache2D = Cache2D;\n class CacheOnce extends Wrapper {\n lastBlockX;\n lastBlockY;\n lastBlockZ;\n lastValue = 0;\n constructor(wrapped) {\n super(wrapped);\n }\n compute(context) {\n const blockX = context.x;\n const blockY = context.y;\n const blockZ = context.z;\n if (this.lastBlockX !== blockX || this.lastBlockY !== blockY || this.lastBlockZ !== blockZ) {\n this.lastValue = this.wrapped.compute(context);\n this.lastBlockX = blockX;\n this.lastBlockY = blockY;\n this.lastBlockZ = blockZ;\n }\n return this.lastValue;\n }\n mapAll(visitor) {\n return visitor.map(new CacheOnce(this.wrapped.mapAll(visitor)));\n }\n }\n DensityFunction.CacheOnce = CacheOnce;\n class Interpolated extends Wrapper {\n cellWidth;\n cellHeight;\n values;\n constructor(wrapped, cellWidth = 4, cellHeight = 4) {\n super(wrapped);\n this.cellWidth = cellWidth;\n this.cellHeight = cellHeight;\n this.values = new Map();\n }\n compute({ x: blockX, y: blockY, z: blockZ }) {\n const w = this.cellWidth;\n const h = this.cellHeight;\n const x = ((blockX % w + w) % w) / w;\n const y = ((blockY % h + h) % h) / h;\n const z = ((blockZ % w + w) % w) / w;\n const firstX = Math.floor(blockX / w) * w;\n const firstY = Math.floor(blockY / h) * h;\n const firstZ = Math.floor(blockZ / w) * w;\n const noise000 = () => this.computeCorner(firstX, firstY, firstZ);\n const noise001 = () => this.computeCorner(firstX, firstY, firstZ + w);\n const noise010 = () => this.computeCorner(firstX, firstY + h, firstZ);\n const noise011 = () => this.computeCorner(firstX, firstY + h, firstZ + w);\n const noise100 = () => this.computeCorner(firstX + w, firstY, firstZ);\n const noise101 = () => this.computeCorner(firstX + w, firstY, firstZ + w);\n const noise110 = () => this.computeCorner(firstX + w, firstY + h, firstZ);\n const noise111 = () => this.computeCorner(firstX + w, firstY + h, firstZ + w);\n return lazyLerp3(x, y, z, noise000, noise100, noise010, noise110, noise001, noise101, noise011, noise111);\n }\n computeCorner(x, y, z) {\n return computeIfAbsent(this.values, `${x} ${y} ${z}`, () => {\n return this.wrapped.compute(DensityFunction.context(x, y, z));\n });\n }\n mapAll(visitor) {\n return visitor.map(new Interpolated(this.wrapped.mapAll(visitor)));\n }\n withCellSize(cellWidth, cellHeight) {\n return new Interpolated(this.wrapped, cellWidth, cellHeight);\n }\n }\n DensityFunction.Interpolated = Interpolated;\n class Noise extends DensityFunction {\n xzScale;\n yScale;\n noiseData;\n noise;\n constructor(xzScale, yScale, noiseData, noise) {\n super();\n this.xzScale = xzScale;\n this.yScale = yScale;\n this.noiseData = noiseData;\n this.noise = noise;\n }\n compute(context) {\n return this.noise?.sample(context.x * this.xzScale, context.y * this.yScale, context.z * this.xzScale) ?? 0;\n }\n maxValue() {\n return this.noise?.maxValue ?? 2;\n }\n }\n DensityFunction.Noise = Noise;\n class EndIslands extends DensityFunction {\n islandNoise;\n constructor(seed) {\n super();\n const random = new LegacyRandom(seed ?? BigInt(0));\n random.consume(17292);\n this.islandNoise = new SimplexNoise(random);\n }\n getHeightValue(x, z) {\n const x0 = Math.floor(x / 2);\n const z0 = Math.floor(z / 2);\n const x1 = x % 2;\n const z1 = z % 2;\n let f = clamp(100 - Math.sqrt(x * x + z * z), -100, 80);\n for (let i = -12; i <= 12; i += 1) {\n for (let j = -12; j <= 12; j += 1) {\n const x2 = x0 + i;\n const z2 = z0 + j;\n if (x2 * x2 + z2 * z2 <= 4096 || this.islandNoise.sample2D(x2, z2) >= -0.9) {\n continue;\n }\n const f1 = (Math.abs(x2) * 3439 + Math.abs(z2) * 147) % 13 + 9;\n const x3 = x1 + i * 2;\n const z3 = z1 + j * 2;\n const f2 = 100 - Math.sqrt(x3 * x3 + z3 * z3) * f1;\n const f3 = clamp(f2, -100, 80);\n f = Math.max(f, f3);\n }\n }\n return f;\n }\n compute({ x, y, z }) {\n return (this.getHeightValue(Math.floor(x / 8), Math.floor(z / 8)) - 8) / 128;\n }\n minValue() {\n return -0.84375;\n }\n maxValue() {\n return 0.5625;\n }\n }\n DensityFunction.EndIslands = EndIslands;\n const RarityValueMapper = ['type_1', 'type_2'];\n class WeirdScaledSampler extends Transformer {\n rarityValueMapper;\n noiseData;\n noise;\n static ValueMapper = {\n type_1: WeirdScaledSampler.rarityValueMapper1,\n type_2: WeirdScaledSampler.rarityValueMapper2,\n };\n mapper;\n constructor(input, rarityValueMapper, noiseData, noise) {\n super(input);\n this.rarityValueMapper = rarityValueMapper;\n this.noiseData = noiseData;\n this.noise = noise;\n this.mapper = WeirdScaledSampler.ValueMapper[this.rarityValueMapper];\n }\n transform(context, density) {\n if (!this.noise) {\n return 0;\n }\n const rarity = this.mapper(density);\n return rarity * Math.abs(this.noise.sample(context.x / rarity, context.y / rarity, context.z / rarity));\n }\n mapAll(visitor) {\n return visitor.map(new WeirdScaledSampler(this.input.mapAll(visitor), this.rarityValueMapper, this.noiseData, this.noise));\n }\n minValue() {\n return 0;\n }\n maxValue() {\n return this.rarityValueMapper === 'type_1' ? 2 : 3;\n }\n static rarityValueMapper1(value) {\n if (value < -0.5) {\n return 0.75;\n }\n else if (value < 0) {\n return 1;\n }\n else if (value < 0.5) {\n return 1.5;\n }\n else {\n return 2;\n }\n }\n static rarityValueMapper2(value) {\n if (value < -0.75) {\n return 0.5;\n }\n else if (value < -0.5) {\n return 0.75;\n }\n else if (value < 0.5) {\n return 1;\n }\n else if (value < 0.75) {\n return 2;\n }\n else {\n return 3;\n }\n }\n }\n DensityFunction.WeirdScaledSampler = WeirdScaledSampler;\n class ShiftedNoise extends Noise {\n shiftX;\n shiftY;\n shiftZ;\n constructor(shiftX, shiftY, shiftZ, xzScale, yScale, noiseData, noise) {\n super(xzScale, yScale, noiseData, noise);\n this.shiftX = shiftX;\n this.shiftY = shiftY;\n this.shiftZ = shiftZ;\n }\n compute(context) {\n const xx = context.x * this.xzScale + this.shiftX.compute(context);\n const yy = context.y * this.yScale + this.shiftY.compute(context);\n const zz = context.z * this.xzScale + this.shiftZ.compute(context);\n return this.noise?.sample(xx, yy, zz) ?? 0;\n }\n mapAll(visitor) {\n return visitor.map(new ShiftedNoise(this.shiftX.mapAll(visitor), this.shiftY.mapAll(visitor), this.shiftZ.mapAll(visitor), this.xzScale, this.yScale, this.noiseData, this.noise));\n }\n }\n DensityFunction.ShiftedNoise = ShiftedNoise;\n class RangeChoice extends DensityFunction {\n input;\n minInclusive;\n maxExclusive;\n whenInRange;\n whenOutOfRange;\n constructor(input, minInclusive, maxExclusive, whenInRange, whenOutOfRange) {\n super();\n this.input = input;\n this.minInclusive = minInclusive;\n this.maxExclusive = maxExclusive;\n this.whenInRange = whenInRange;\n this.whenOutOfRange = whenOutOfRange;\n }\n compute(context) {\n const x = this.input.compute(context);\n return (this.minInclusive <= x && x < this.maxExclusive)\n ? this.whenInRange.compute(context)\n : this.whenOutOfRange.compute(context);\n }\n mapAll(visitor) {\n return visitor.map(new RangeChoice(this.input.mapAll(visitor), this.minInclusive, this.maxExclusive, this.whenInRange.mapAll(visitor), this.whenOutOfRange.mapAll(visitor)));\n }\n minValue() {\n return Math.min(this.whenInRange.minValue(), this.whenOutOfRange.minValue());\n }\n maxValue() {\n return Math.max(this.whenInRange.maxValue(), this.whenOutOfRange.maxValue());\n }\n }\n DensityFunction.RangeChoice = RangeChoice;\n class ShiftNoise extends DensityFunction {\n noiseData;\n offsetNoise;\n constructor(noiseData, offsetNoise) {\n super();\n this.noiseData = noiseData;\n this.offsetNoise = offsetNoise;\n }\n compute(context) {\n return this.offsetNoise?.sample(context.x * 0.25, context.y * 0.25, context.z * 0.25) ?? 0;\n }\n maxValue() {\n return (this.offsetNoise?.maxValue ?? 2) * 4;\n }\n }\n DensityFunction.ShiftNoise = ShiftNoise;\n class ShiftA extends ShiftNoise {\n constructor(noiseData, offsetNoise) {\n super(noiseData, offsetNoise);\n }\n compute(context) {\n return super.compute(DensityFunction.context(context.x, 0, context.z));\n }\n withNewNoise(newNoise) {\n return new ShiftA(this.noiseData, newNoise);\n }\n }\n DensityFunction.ShiftA = ShiftA;\n class ShiftB extends ShiftNoise {\n constructor(noiseData, offsetNoise) {\n super(noiseData, offsetNoise);\n }\n compute(context) {\n return super.compute(DensityFunction.context(context.z, context.x, 0));\n }\n withNewNoise(newNoise) {\n return new ShiftB(this.noiseData, newNoise);\n }\n }\n DensityFunction.ShiftB = ShiftB;\n class Shift extends ShiftNoise {\n constructor(noiseData, offsetNoise) {\n super(noiseData, offsetNoise);\n }\n withNewNoise(newNoise) {\n return new Shift(this.noiseData, newNoise);\n }\n }\n DensityFunction.Shift = Shift;\n class BlendDensity extends Transformer {\n constructor(input) {\n super(input);\n }\n transform(context, density) {\n return density; // blender not supported\n }\n mapAll(visitor) {\n return visitor.map(new BlendDensity(this.input.mapAll(visitor)));\n }\n minValue() {\n return -Infinity;\n }\n maxValue() {\n return Infinity;\n }\n }\n DensityFunction.BlendDensity = BlendDensity;\n class Clamp extends Transformer {\n min;\n max;\n constructor(input, min, max) {\n super(input);\n this.min = min;\n this.max = max;\n }\n transform(context, density) {\n return clamp(density, this.min, this.max);\n }\n mapAll(visitor) {\n return visitor.map(new Clamp(this.input.mapAll(visitor), this.min, this.max));\n }\n minValue() {\n return this.min;\n }\n maxValue() {\n return this.max;\n }\n }\n DensityFunction.Clamp = Clamp;\n const MappedType = ['abs', 'square', 'cube', 'half_negative', 'quarter_negative', 'squeeze'];\n class Mapped extends Transformer {\n type;\n min;\n max;\n static MappedTypes = {\n abs: d => Math.abs(d),\n square: d => d * d,\n cube: d => d * d * d,\n half_negative: d => d > 0 ? d : d * 0.5,\n quarter_negative: d => d > 0 ? d : d * 0.25,\n squeeze: d => {\n const c = clamp(d, -1, 1);\n return c / 2 - c * c * c / 24;\n },\n };\n transformer;\n constructor(type, input, min, max) {\n super(input);\n this.type = type;\n this.min = min;\n this.max = max;\n this.transformer = Mapped.MappedTypes[this.type];\n }\n transform(context, density) {\n return this.transformer(density);\n }\n mapAll(visitor) {\n return visitor.map(new Mapped(this.type, this.input.mapAll(visitor)));\n }\n minValue() {\n return this.min ?? -Infinity;\n }\n maxValue() {\n return this.max ?? Infinity;\n }\n withMinMax() {\n const minInput = this.input.minValue();\n let min = this.transformer(minInput);\n let max = this.transformer(this.input.maxValue());\n if (this.type === 'abs' || this.type === 'square') {\n max = Math.max(min, max);\n min = Math.max(0, minInput);\n }\n return new Mapped(this.type, this.input, min, max);\n }\n }\n DensityFunction.Mapped = Mapped;\n const Ap2Type = ['add', 'mul', 'min', 'max'];\n class Ap2 extends DensityFunction {\n type;\n argument1;\n argument2;\n min;\n max;\n constructor(type, argument1, argument2, min, max) {\n super();\n this.type = type;\n this.argument1 = argument1;\n this.argument2 = argument2;\n this.min = min;\n this.max = max;\n }\n compute(context) {\n const a = this.argument1.compute(context);\n switch (this.type) {\n case 'add': return a + this.argument2.compute(context);\n case 'mul': return a === 0 ? 0 : a * this.argument2.compute(context);\n case 'min': return a < this.argument2.minValue() ? a : Math.min(a, this.argument2.compute(context));\n case 'max': return a > this.argument2.maxValue() ? a : Math.max(a, this.argument2.compute(context));\n }\n }\n mapAll(visitor) {\n return visitor.map(new Ap2(this.type, this.argument1.mapAll(visitor), this.argument2.mapAll(visitor)));\n }\n minValue() {\n return this.min ?? -Infinity;\n }\n maxValue() {\n return this.max ?? Infinity;\n }\n withMinMax() {\n const min1 = this.argument1.minValue();\n const min2 = this.argument2.minValue();\n const max1 = this.argument1.maxValue();\n const max2 = this.argument2.maxValue();\n if ((this.type === 'min' || this.type === 'max') && (min1 >= max2 || min2 >= max1)) {\n console.warn(`Creating a ${this.type} function between two non-overlapping inputs`);\n }\n let min, max;\n switch (this.type) {\n case 'add':\n min = min1 + min2;\n max = max1 + max2;\n break;\n case 'mul':\n min = min1 > 0 && min2 > 0 ? (min1 * min2) || 0\n : max1 < 0 && max2 < 0 ? (max1 * max2) || 0\n : Math.min((min1 * max2) || 0, (min2 * max1) || 0);\n max = min1 > 0 && min2 > 0 ? (max1 * max2) || 0\n : max1 < 0 && max2 < 0 ? (min1 * min2) || 0\n : Math.max((min1 * min2) || 0, (max1 * max2) || 0);\n break;\n case 'min':\n min = Math.min(min1, min2);\n max = Math.min(max1, max2);\n break;\n case 'max':\n min = Math.max(min1, min2);\n max = Math.max(max1, max2);\n break;\n }\n return new Ap2(this.type, this.argument1, this.argument2, min, max);\n }\n }\n DensityFunction.Ap2 = Ap2;\n class Spline extends DensityFunction {\n spline;\n constructor(spline) {\n super();\n this.spline = spline;\n }\n compute(context) {\n return this.spline.compute(context);\n }\n mapAll(visitor) {\n const newCubicSpline = this.spline.mapAll((fn) => {\n if (fn instanceof DensityFunction) {\n return fn.mapAll(visitor);\n }\n return fn;\n });\n newCubicSpline.calculateMinMax();\n return visitor.map(new Spline(newCubicSpline));\n }\n minValue() {\n return this.spline.min();\n }\n maxValue() {\n return this.spline.max();\n }\n }\n DensityFunction.Spline = Spline;\n class YClampedGradient extends DensityFunction {\n fromY;\n toY;\n fromValue;\n toValue;\n constructor(fromY, toY, fromValue, toValue) {\n super();\n this.fromY = fromY;\n this.toY = toY;\n this.fromValue = fromValue;\n this.toValue = toValue;\n }\n compute(context) {\n return clampedMap(context.y, this.fromY, this.toY, this.fromValue, this.toValue);\n }\n minValue() {\n return Math.min(this.fromValue, this.toValue);\n }\n maxValue() {\n return Math.max(this.fromValue, this.toValue);\n }\n }\n DensityFunction.YClampedGradient = YClampedGradient;\n})(DensityFunction || (DensityFunction = {}));\n//# sourceMappingURL=DensityFunction.js.map","import { BlockPos, BlockState, ChunkPos } from '../core/index.js';\nimport { clamp, clampedMap, map } from '../math/index.js';\nimport { lazy } from '../util/index.js';\nimport { DensityFunction } from './DensityFunction.js';\nexport class FluidStatus {\n level;\n type;\n constructor(level, type) {\n this.level = level;\n this.type = type;\n }\n at(level) {\n return level < this.level ? this.type : BlockState.AIR;\n }\n}\nexport var Aquifer;\n(function (Aquifer) {\n function createDisabled(fluidPicker) {\n return {\n compute({ x, y, z }, density) {\n if (density > 0) {\n return undefined;\n }\n return fluidPicker(x, y, z).at(y);\n },\n };\n }\n Aquifer.createDisabled = createDisabled;\n})(Aquifer || (Aquifer = {}));\nexport class NoiseAquifer {\n noiseChunk;\n router;\n random;\n globalFluidPicker;\n static X_SPACING = 16;\n static Y_SPACING = 12;\n static Z_SPACING = 16;\n static SURFACE_SAMPLING = [[-2, -1], [-1, -1], [0, -1], [1, -1], [-3, 0], [-2, 0], [-1, 0], [0, 0], [1, 0], [-2, 1], [-1, 1], [0, 1], [1, 1]];\n minGridX;\n minGridY;\n minGridZ;\n gridSizeX;\n gridSizeZ;\n gridSize;\n aquiferCache;\n aquiferLocationCache;\n constructor(noiseChunk, chunkPos, router, random, minY, height, globalFluidPicker) {\n this.noiseChunk = noiseChunk;\n this.router = router;\n this.random = random;\n this.globalFluidPicker = globalFluidPicker;\n this.minGridX = this.gridX(ChunkPos.minBlockX(chunkPos)) - 1;\n this.gridSizeX = this.gridX(ChunkPos.maxBlockX(chunkPos)) + 1 - this.minGridX + 1;\n this.minGridY = this.gridY(minY) - 1;\n this.minGridZ = this.gridZ(ChunkPos.minBlockZ(chunkPos)) - 1;\n this.gridSizeZ = this.gridZ(ChunkPos.maxBlockZ(chunkPos)) + 1 - this.minGridZ + 1;\n const gridSizeY = this.gridY(minY + height) + 1 - this.minGridY + 1;\n this.gridSize = this.gridSizeX * gridSizeY * this.gridSizeZ;\n this.aquiferCache = Array(this.gridSize).fill(undefined);\n this.aquiferLocationCache = Array(this.gridSize).fill(BlockPos.ZERO);\n }\n compute({ x, y, z }, density) {\n if (density <= 0) {\n if (this.globalFluidPicker(x, y, z).at(y).is(BlockState.LAVA)) {\n return BlockState.LAVA;\n }\n else {\n const gridX = this.gridX(x - 5);\n const gridY = this.gridY(y + 1);\n const gridZ = this.gridZ(z - 5);\n let mag1 = Number.MAX_SAFE_INTEGER;\n let mag2 = Number.MAX_SAFE_INTEGER;\n let mag3 = Number.MAX_SAFE_INTEGER;\n let loc1 = BlockPos.ZERO;\n let loc2 = BlockPos.ZERO;\n let loc3 = BlockPos.ZERO;\n for (let xOffset = 0; xOffset <= 1; xOffset += 1) {\n for (let yOffset = -1; yOffset <= 1; yOffset += 1) {\n for (let zOffset = 0; zOffset <= 1; zOffset += 1) {\n const location = this.getLocation(gridX + xOffset, gridY + yOffset, gridZ + zOffset);\n const magnitude = BlockPos.magnitude(location);\n if (mag1 >= magnitude) {\n loc3 = loc2;\n loc2 = loc1;\n loc1 = location;\n mag3 = mag2;\n mag2 = mag1;\n mag1 = magnitude;\n }\n else if (mag2 >= magnitude) {\n loc3 = loc2;\n loc2 = location;\n mag3 = mag2;\n mag2 = magnitude;\n }\n else if (mag3 >= magnitude) {\n loc3 = location;\n mag3 = magnitude;\n }\n }\n }\n }\n const status1 = this.getStatus(loc1);\n const status2 = this.getStatus(loc2);\n const status3 = this.getStatus(loc3);\n const similarity12 = NoiseAquifer.similarity(mag1, mag2);\n const similarity13 = NoiseAquifer.similarity(mag1, mag3);\n const similarity23 = NoiseAquifer.similarity(mag2, mag3);\n let pressure;\n if (status1.at(y).is(BlockState.WATER) && this.globalFluidPicker(x, y - 1, z).at(y - 1).is(BlockState.LAVA)) {\n pressure = 1;\n }\n else if (similarity12 > -1) {\n const barrier = lazy(() => this.router.barrier.compute(DensityFunction.context(x, y * 0.5, z)));\n const pressure12 = this.calculatePressure(y, status1, status2, barrier);\n const pressure13 = this.calculatePressure(y, status1, status3, barrier);\n const pressure23 = this.calculatePressure(y, status2, status3, barrier);\n const n = Math.max(pressure12, pressure13 * Math.max(0, similarity13), pressure23 * Math.max(similarity23));\n pressure = Math.max(0, 2 * Math.max(0, similarity12) * n);\n }\n else {\n pressure = 0;\n }\n if (density + pressure <= 0) {\n return status1.at(y);\n }\n }\n }\n return undefined;\n }\n static similarity(a, b) {\n return 1 - Math.abs(b - a) / 25;\n }\n calculatePressure(y, status1, status2, barrier) {\n const fluid1 = status1.at(y);\n const fluid2 = status2.at(y);\n if ((fluid1.is(BlockState.LAVA) && fluid2.is(BlockState.WATER)) || (fluid1.is(BlockState.WATER) && fluid2.is(BlockState.LAVA))) {\n return 1;\n }\n const levelDiff = Math.abs(status1.level - status2.level);\n if (levelDiff === 0) {\n return 0;\n }\n const levelAvg = (status1.level + status2.level) / 2;\n const levelAvgDiff = y + 0.5 - levelAvg;\n const p = levelDiff / 2 - Math.abs(levelAvgDiff);\n const pressure = levelAvgDiff > 0\n ? p > 0 ? p / 1.5 : p / 2.5\n : p > -3 ? (p + 3) / 3 : (p + 3) / 10;\n if (pressure < -2 || pressure > 2) {\n return pressure;\n }\n return pressure + barrier();\n }\n getStatus(location) {\n const [x, y, z] = location;\n const index = this.getIndex(this.gridX(x), this.gridY(y), this.gridZ(z));\n const cachedStatus = this.aquiferCache[index];\n if (cachedStatus !== undefined) {\n return cachedStatus;\n }\n const status = this.computeStatus(x, y, z);\n this.aquiferCache[index] = status;\n return status;\n }\n computeStatus(x, y, z) {\n const globalStatus = this.globalFluidPicker(x, y, z);\n let minPreliminarySurface = Number.MAX_SAFE_INTEGER;\n let isAquifer = false;\n for (const [xOffset, zOffset] of NoiseAquifer.SURFACE_SAMPLING) {\n const blockX = x + (zOffset << 4);\n const blockZ = z + (zOffset << 4);\n const preliminarySurface = this.noiseChunk.getPreliminarySurfaceLevel(blockX, blockZ);\n minPreliminarySurface = Math.min(minPreliminarySurface, preliminarySurface);\n const noOffset = xOffset === 0 && zOffset === 0;\n if (noOffset && y - 12 > preliminarySurface + 8) {\n return globalStatus;\n }\n if ((noOffset || y + 12 > preliminarySurface + 8)) {\n const newStatus = this.globalFluidPicker(blockX, preliminarySurface + 8, blockZ);\n if (!newStatus.at(preliminarySurface + 8).is(BlockState.AIR)) {\n if (noOffset) {\n return newStatus;\n }\n else {\n isAquifer = true;\n }\n }\n }\n }\n const allowedFloodedness = isAquifer ? clampedMap(minPreliminarySurface + 8 - y, 0, 64, 1, 0) : 0;\n const floodedness = clamp(this.router.fluidLevelFloodedness.compute(DensityFunction.context(x, y * 0.67, z)), -1, 1);\n if (floodedness > map(allowedFloodedness, 1, 0, -0.3, 0.8)) {\n return globalStatus;\n }\n if (floodedness <= map(allowedFloodedness, 1, 0, -0.8, 0.4)) {\n return new FluidStatus(Number.MIN_SAFE_INTEGER, globalStatus.type);\n }\n const gridY = Math.floor(y / 40);\n const spread = this.router.fluidLevelSpread.compute(DensityFunction.context(Math.floor(x / 16), gridY, Math.floor(z / 16)));\n const level = gridY * 40 + 20 + Math.floor(spread / 3) * 3;\n const statusLevel = Math.min(minPreliminarySurface, level);\n const fluid = this.getFluidType(x, y, z, globalStatus.type, level);\n return new FluidStatus(statusLevel, fluid);\n }\n getFluidType(x, y, z, global, level) {\n if (level <= -10) {\n const lava = this.router.lava.compute(DensityFunction.context(Math.floor(x / 64), Math.floor(y / 40), Math.floor(z / 64)));\n if (Math.abs(lava) > 0.3) {\n return BlockState.LAVA;\n }\n }\n return global;\n }\n getLocation(x, y, z) {\n const index = this.getIndex(x, y, z);\n const cachedLocation = this.aquiferLocationCache[index];\n if (BlockPos.equals(cachedLocation, BlockPos.ZERO)) {\n return cachedLocation;\n }\n const random = this.random.at(x, y, z);\n const location = BlockPos.create(x * NoiseAquifer.X_SPACING + random.nextInt(10), y * NoiseAquifer.Y_SPACING + random.nextInt(9), z * NoiseAquifer.Z_SPACING + random.nextInt(10));\n this.aquiferLocationCache[index] = location;\n return location;\n }\n getIndex(x, y, z) {\n const gridX = x - this.minGridX;\n const gridY = y - this.minGridY;\n const gridZ = z - this.minGridZ;\n const index = (gridY * this.gridSizeZ + gridZ) * this.gridSizeX + gridX;\n if (index < 0 || index >= this.gridSize) {\n throw new Error(`Invalid aquifer index at ${x} ${y} ${z}: 0 <= ${index} < ${this.gridSize}`);\n }\n return index;\n }\n gridX(x) {\n return Math.floor(x / NoiseAquifer.X_SPACING);\n }\n gridY(y) {\n return Math.floor(y / NoiseAquifer.Y_SPACING);\n }\n gridZ(z) {\n return Math.floor(z / NoiseAquifer.Z_SPACING);\n }\n}\n//# sourceMappingURL=Aquifer.js.map","import { Identifier } from '../../core/index.js';\nimport { Json } from '../../util/index.js';\nexport class CheckerboardBiomeSource {\n shift;\n biomes;\n n;\n constructor(shift, biomes) {\n this.shift = shift;\n this.biomes = biomes;\n if (biomes.length === 0) {\n throw new Error('Cannot create checkerboard biome source without biomes');\n }\n this.n = biomes.length;\n }\n getBiome(x, y, z) {\n const i = (((x >> this.shift) + (z >> this.shift)) % this.n + this.n) % this.n;\n return Identifier.parse(this.biomes[i].toString());\n }\n static fromJson(obj) {\n const root = Json.readObject(obj) ?? {};\n const scale = Json.readInt(root.scale) ?? 2;\n let biomes;\n if (typeof root.biomes === 'string') {\n biomes = [Identifier.parse(root.biomes)];\n }\n else {\n biomes = Json.readArray(root.biomes, (b) => Identifier.parse(Json.readString(b) ?? '')) ?? [];\n }\n return new CheckerboardBiomeSource(scale + 2, biomes);\n }\n}\n//# sourceMappingURL=CheckerboardBiomeSource.js.map","import { Identifier } from '../../core/index.js';\nimport { Json } from '../../util/index.js';\nexport class FixedBiomeSource {\n biome;\n constructor(biome) {\n this.biome = biome;\n }\n getBiome() {\n return this.biome;\n }\n static fromJson(obj) {\n const root = Json.readObject(obj) ?? {};\n const biome = Identifier.parse(Json.readString(root.biome) ?? 'plains');\n return new FixedBiomeSource(biome);\n }\n}\n//# sourceMappingURL=FixedBiomeSource.js.map","import { square } from '../../math/index.js';\nimport { Json } from '../../util/index.js';\nimport { DensityFunction } from '../DensityFunction.js';\nexport var Climate;\n(function (Climate) {\n const PARAMETER_SPACE = 7;\n function target(temperature, humidity, continentalness, erosion, depth, weirdness) {\n return new TargetPoint(temperature, humidity, continentalness, erosion, depth, weirdness);\n }\n Climate.target = target;\n function parameters(temperature, humidity, continentalness, erosion, depth, weirdness, offset) {\n return new ParamPoint(param(temperature), param(humidity), param(continentalness), param(erosion), param(depth), param(weirdness), offset);\n }\n Climate.parameters = parameters;\n function param(value, max) {\n if (typeof value === 'number') {\n return new Param(value, max ?? value);\n }\n return value;\n }\n Climate.param = param;\n class Param {\n min;\n max;\n constructor(min, max) {\n this.min = min;\n this.max = max;\n }\n distance(param) {\n const diffMax = (typeof param === 'number' ? param : param.min) - this.max;\n const diffMin = this.min - (typeof param === 'number' ? param : param.max);\n if (diffMax > 0) {\n return diffMax;\n }\n return Math.max(diffMin, 0);\n }\n union(param) {\n return new Param(Math.min(this.min, param.min), Math.max(this.max, param.max));\n }\n static fromJson(obj) {\n if (typeof obj === 'number')\n return new Param(obj, obj);\n const [min, max] = Json.readArray(obj, e => Json.readNumber(e)) ?? [];\n return new Param(min ?? 0, max ?? 0);\n }\n }\n Climate.Param = Param;\n class ParamPoint {\n temperature;\n humidity;\n continentalness;\n erosion;\n depth;\n weirdness;\n offset;\n constructor(temperature, humidity, continentalness, erosion, depth, weirdness, offset) {\n this.temperature = temperature;\n this.humidity = humidity;\n this.continentalness = continentalness;\n this.erosion = erosion;\n this.depth = depth;\n this.weirdness = weirdness;\n this.offset = offset;\n }\n fittness(point) {\n return square(this.temperature.distance(point.temperature))\n + square(this.humidity.distance(point.humidity))\n + square(this.continentalness.distance(point.continentalness))\n + square(this.erosion.distance(point.erosion))\n + square(this.depth.distance(point.depth))\n + square(this.weirdness.distance(point.weirdness))\n + square(this.offset - point.offset);\n }\n space() {\n return [this.temperature, this.humidity, this.continentalness, this.erosion, this.depth, this.weirdness, new Param(this.offset, this.offset)];\n }\n static fromJson(obj) {\n const root = Json.readObject(obj) ?? {};\n return new ParamPoint(Param.fromJson(root.temperature), Param.fromJson(root.humidity), Param.fromJson(root.continentalness), Param.fromJson(root.erosion), Param.fromJson(root.depth), Param.fromJson(root.weirdness), Json.readInt(root.offset) ?? 0);\n }\n }\n Climate.ParamPoint = ParamPoint;\n class TargetPoint {\n temperature;\n humidity;\n continentalness;\n erosion;\n depth;\n weirdness;\n constructor(temperature, humidity, continentalness, erosion, depth, weirdness) {\n this.temperature = temperature;\n this.humidity = humidity;\n this.continentalness = continentalness;\n this.erosion = erosion;\n this.depth = depth;\n this.weirdness = weirdness;\n }\n get offset() {\n return 0;\n }\n toArray() {\n return [this.temperature, this.humidity, this.continentalness, this.erosion, this.depth, this.weirdness, this.offset];\n }\n }\n Climate.TargetPoint = TargetPoint;\n class Parameters {\n things;\n index;\n constructor(things) {\n this.things = things;\n this.index = new RTree(things);\n }\n find(target) {\n return this.index.search(target, (node, values) => node.distance(values));\n }\n }\n Climate.Parameters = Parameters;\n class Sampler {\n temperature;\n humidity;\n continentalness;\n erosion;\n depth;\n weirdness;\n constructor(temperature, humidity, continentalness, erosion, depth, weirdness) {\n this.temperature = temperature;\n this.humidity = humidity;\n this.continentalness = continentalness;\n this.erosion = erosion;\n this.depth = depth;\n this.weirdness = weirdness;\n }\n static fromRouter(router) {\n return new Climate.Sampler(router.temperature, router.vegetation, router.continents, router.erosion, router.depth, router.ridges);\n }\n sample(x, y, z) {\n const context = DensityFunction.context(x << 2, y << 2, z << 2);\n return Climate.target(this.temperature.compute(context), this.humidity.compute(context), this.continentalness.compute(context), this.erosion.compute(context), this.depth.compute(context), this.weirdness.compute(context));\n }\n }\n Climate.Sampler = Sampler;\n class RTree {\n static CHILDREN_PER_NODE = 10;\n root;\n constructor(points) {\n if (points.length === 0) {\n throw new Error('At least one point is required to build search tree');\n }\n this.root = RTree.build(points.map(([point, thing]) => new RLeaf(point, thing)));\n }\n static build(nodes) {\n if (nodes.length === 1) {\n return nodes[0];\n }\n if (nodes.length <= RTree.CHILDREN_PER_NODE) {\n const sortedNodes = nodes\n .map(node => {\n let key = 0.0;\n for (let i = 0; i < PARAMETER_SPACE; i += 1) {\n const param = node.space[i];\n key += Math.abs((param.min + param.max) / 2.0);\n }\n return { key, node };\n })\n .sort((a, b) => a.key - b.key)\n .map(({ node }) => node);\n return new RSubTree(sortedNodes);\n }\n let f = Infinity;\n let n3 = -1;\n let result = [];\n for (let n2 = 0; n2 < PARAMETER_SPACE; ++n2) {\n nodes = RTree.sort(nodes, n2, false);\n result = RTree.bucketize(nodes);\n let f2 = 0.0;\n for (const subTree2 of result) {\n f2 += RTree.area(subTree2.space);\n }\n if (!(f > f2))\n continue;\n f = f2;\n n3 = n2;\n }\n nodes = RTree.sort(nodes, n3, false);\n result = RTree.bucketize(nodes);\n result = RTree.sort(result, n3, true);\n return new RSubTree(result.map(subTree => RTree.build(subTree.children)));\n }\n static sort(nodes, i, abs) {\n return nodes\n .map(node => {\n const param = node.space[i];\n const f = (param.min + param.max) / 2;\n const key = abs ? Math.abs(f) : f;\n return { key, node };\n })\n .sort((a, b) => a.key - b.key)\n .map(({ node }) => node);\n }\n static bucketize(nodes) {\n const arrayList = [];\n let arrayList2 = [];\n const n = Math.pow(10.0, Math.floor(Math.log(nodes.length - 0.01) / Math.log(10.0)));\n for (const node of nodes) {\n arrayList2.push(node);\n if (arrayList2.length < n)\n continue;\n arrayList.push(new RSubTree(arrayList2));\n arrayList2 = [];\n }\n if (arrayList2.length !== 0) {\n arrayList.push(new RSubTree(arrayList2));\n }\n return arrayList;\n }\n static area(params) {\n let f = 0.0;\n for (const param of params) {\n f += Math.abs(param.max - param.min);\n }\n return f;\n }\n search(target, distance) {\n const leaf = this.root.search(target.toArray(), distance);\n return leaf.thing();\n }\n }\n Climate.RTree = RTree;\n class RNode {\n space;\n constructor(space) {\n this.space = space;\n }\n distance(values) {\n let result = 0;\n for (let i = 0; i < PARAMETER_SPACE; i += 1) {\n result += square(this.space[i].distance(values[i]));\n }\n return result;\n }\n }\n Climate.RNode = RNode;\n class RSubTree extends RNode {\n children;\n constructor(children) {\n super(RSubTree.buildSpace(children));\n this.children = children;\n }\n static buildSpace(nodes) {\n let space = [...Array(PARAMETER_SPACE)].map(() => new Param(Infinity, -Infinity));\n for (const node of nodes) {\n space = [...Array(PARAMETER_SPACE)].map((_, i) => space[i].union(node.space[i]));\n }\n return space;\n }\n search(values, distance) {\n let dist = Infinity;\n let leaf = null;\n for (const node of this.children) {\n const d1 = distance(node, values);\n if (dist <= d1)\n continue;\n const leaf2 = node.search(values, distance);\n const d2 = node == leaf2 ? d1 : distance(leaf2, values);\n if (dist <= d2)\n continue;\n dist = d2;\n leaf = leaf2;\n }\n return leaf;\n }\n }\n Climate.RSubTree = RSubTree;\n class RLeaf extends RNode {\n thing;\n constructor(point, thing) {\n super(point.space());\n this.thing = thing;\n }\n search() {\n return this;\n }\n }\n Climate.RLeaf = RLeaf;\n})(Climate || (Climate = {}));\n//# sourceMappingURL=Climate.js.map","import { Identifier } from '../../core/index.js';\nimport { Json } from '../../util/index.js';\nimport { Climate } from './Climate.js';\nexport class MultiNoiseBiomeSource {\n parameters;\n constructor(entries) {\n this.parameters = new Climate.Parameters(entries);\n }\n getBiome(x, y, z, climateSampler) {\n const target = climateSampler.sample(x, y, z);\n return this.parameters.find(target);\n }\n static fromJson(obj) {\n const root = Json.readObject(obj) ?? {};\n const biomes = Json.readArray(root.biomes, b => (b => ({\n biome: Identifier.parse(Json.readString(b.biome) ?? 'plains'),\n parameters: Climate.ParamPoint.fromJson(b.parameters),\n }))(Json.readObject(b) ?? {})) ?? [];\n const entries = biomes.map(b => [b.parameters, () => b.biome]);\n return new MultiNoiseBiomeSource(entries);\n }\n}\n//# sourceMappingURL=MultiNoiseBiomeSource.js.map","import { Identifier } from '../../core/index.js';\nimport { DensityFunction } from '../DensityFunction.js';\nexport class TheEndBiomeSource {\n static END = Identifier.create('the_end');\n static HIGHLANDS = Identifier.create('end_highlands');\n static MIDLANDS = Identifier.create('end_midlands');\n static ISLANDS = Identifier.create('small_end_islands');\n static BARRENS = Identifier.create('end_barrens');\n getBiome(x, y, z, climateSampler) {\n const blockX = x << 2;\n const blockY = y << 2;\n const blockZ = z << 2;\n const sectionX = blockX >> 4;\n const sectionZ = blockZ >> 4;\n if (sectionX * sectionX + sectionZ * sectionZ <= 4096) {\n return TheEndBiomeSource.END;\n }\n const context = DensityFunction.context((sectionX * 2 + 1) * 8, blockY, (sectionZ * 2 + 1) * 8);\n const erosion = climateSampler.erosion.compute(context);\n if (erosion > 0.25) {\n return TheEndBiomeSource.HIGHLANDS;\n }\n else if (erosion >= -0.0625) {\n return TheEndBiomeSource.MIDLANDS;\n }\n else if (erosion >= -0.21875) {\n return TheEndBiomeSource.BARRENS;\n }\n else {\n return TheEndBiomeSource.ISLANDS;\n }\n }\n static fromJson(obj) {\n return new TheEndBiomeSource();\n }\n}\n//# sourceMappingURL=TheEndBiomeSource.js.map","import { Identifier } from '../../core/index.js';\nimport { Json } from '../../util/index.js';\nimport { CheckerboardBiomeSource } from './CheckerboardBiomeSource.js';\nimport { FixedBiomeSource } from './FixedBiomeSource.js';\nimport { MultiNoiseBiomeSource } from './MultiNoiseBiomeSource.js';\nimport { TheEndBiomeSource } from './TheEndBiomeSource.js';\nexport var BiomeSource;\n(function (BiomeSource) {\n function fromJson(obj) {\n const root = Json.readObject(obj) ?? {};\n const type = Json.readString(root.type)?.replace(/^minecraft:/, '');\n switch (type) {\n case 'fixed': return FixedBiomeSource.fromJson(obj);\n case 'checkerboard': return CheckerboardBiomeSource.fromJson(obj);\n case 'multi_noise': return MultiNoiseBiomeSource.fromJson(obj);\n case 'the_end': return TheEndBiomeSource.fromJson(obj);\n default: return { getBiome: () => Identifier.create('plains') };\n }\n }\n BiomeSource.fromJson = fromJson;\n})(BiomeSource || (BiomeSource = {}));\n//# sourceMappingURL=BiomeSource.js.map","import { BlockPos, ChunkPos } from '../core/index.js';\nimport { computeIfAbsent } from '../util/index.js';\nimport { Aquifer, NoiseAquifer } from './Aquifer.js';\nimport { DensityFunction } from './DensityFunction.js';\nimport { NoiseSettings } from './NoiseSettings.js';\nexport class NoiseChunk {\n cellCountXZ;\n cellCountY;\n cellNoiseMinY;\n minX;\n minZ;\n settings;\n cellWidth;\n cellHeight;\n firstCellX;\n firstCellZ;\n firstNoiseX;\n firstNoiseZ;\n noiseSizeXZ;\n preliminarySurfaceLevel = new Map();\n aquifer;\n materialRule;\n initialDensity;\n constructor(cellCountXZ, cellCountY, cellNoiseMinY, randomState, minX, minZ, settings, aquifersEnabled, fluidPicker) {\n this.cellCountXZ = cellCountXZ;\n this.cellCountY = cellCountY;\n this.cellNoiseMinY = cellNoiseMinY;\n this.minX = minX;\n this.minZ = minZ;\n this.settings = settings;\n this.cellWidth = NoiseSettings.cellWidth(settings);\n this.cellHeight = NoiseSettings.cellHeight(settings);\n this.firstCellX = Math.floor(minX / this.cellWidth);\n this.firstCellZ = Math.floor(minZ / this.cellWidth);\n this.firstNoiseX = minX >> 2;\n this.firstNoiseZ = minZ >> 2;\n this.noiseSizeXZ = (cellCountXZ * this.cellWidth) >> 2;\n if (!aquifersEnabled || true) { // WIP: Noise aquifers don't work yet\n this.aquifer = Aquifer.createDisabled(fluidPicker);\n }\n else {\n const chunkPos = ChunkPos.fromBlockPos(BlockPos.create(minX, 0, minZ));\n const minY = cellNoiseMinY * NoiseSettings.cellHeight(settings);\n const height = cellCountY * NoiseSettings.cellHeight(settings);\n this.aquifer = new NoiseAquifer(this, chunkPos, randomState.router, randomState.aquiferRandom, minY, height, fluidPicker);\n }\n const finalDensity = randomState.router.finalDensity;\n this.materialRule = MaterialRule.fromList([\n (context) => this.aquifer.compute(context, finalDensity.compute(context)),\n ]);\n this.initialDensity = randomState.router.initialDensityWithoutJaggedness;\n }\n getFinalState(x, y, z) {\n return this.materialRule({ x, y, z });\n }\n getPreliminarySurfaceLevel(quartX, quartZ) {\n return computeIfAbsent(this.preliminarySurfaceLevel, ChunkPos.asLong(quartX, quartZ), () => {\n const x = quartX << 2;\n const z = quartZ << 2;\n for (let y = this.settings.minY + this.settings.height; y >= this.settings.minY; y -= this.cellHeight) {\n const density = this.initialDensity.compute(DensityFunction.context(x, y, z));\n if (density > 0.390625) {\n return y;\n }\n }\n return Number.MAX_SAFE_INTEGER;\n });\n }\n}\nexport var MaterialRule;\n(function (MaterialRule) {\n function fromList(rules) {\n return (context) => {\n for (const rule of rules) {\n const state = rule(context);\n if (state)\n return state;\n }\n return undefined;\n };\n }\n MaterialRule.fromList = fromList;\n})(MaterialRule || (MaterialRule = {}));\n//# sourceMappingURL=NoiseChunk.js.map","import { BlockState, ChunkPos } from '../core/index.js';\nimport { computeIfAbsent } from '../util/index.js';\nimport { FluidStatus } from './Aquifer.js';\nimport { NoiseChunk } from './NoiseChunk.js';\nimport { NoiseSettings } from './NoiseSettings.js';\nimport { WorldgenContext } from './VerticalAnchor.js';\nexport class NoiseChunkGenerator {\n biomeSource;\n settings;\n noiseChunkCache;\n globalFluidPicker;\n constructor(biomeSource, settings) {\n this.biomeSource = biomeSource;\n this.settings = settings;\n this.noiseChunkCache = new Map();\n const lavaFluid = new FluidStatus(-54, BlockState.LAVA);\n const defaultFluid = new FluidStatus(settings.seaLevel, settings.defaultFluid);\n this.globalFluidPicker = (x, y, z) => {\n if (y < Math.min(-54, settings.seaLevel)) {\n return lavaFluid;\n }\n return defaultFluid;\n };\n }\n fill(randomState, chunk, onlyFirstZ = false) {\n const minY = Math.max(chunk.minY, this.settings.noise.minY);\n const maxY = Math.min(chunk.maxY, this.settings.noise.minY + this.settings.noise.height);\n const cellWidth = NoiseSettings.cellWidth(this.settings.noise);\n const cellHeight = NoiseSettings.cellHeight(this.settings.noise);\n const cellCountXZ = Math.floor(16 / cellWidth);\n const minCellY = Math.floor(minY / cellHeight);\n const cellCountY = Math.floor((maxY - minY) / cellHeight);\n const minX = ChunkPos.minBlockX(chunk.pos);\n const minZ = ChunkPos.minBlockZ(chunk.pos);\n const noiseChunk = this.getOrCreateNoiseChunk(randomState, chunk);\n for (let cellX = 0; cellX < cellCountXZ; cellX += 1) {\n for (let cellZ = 0; cellZ < (onlyFirstZ ? 1 : cellCountXZ); cellZ += 1) {\n let section = chunk.getOrCreateSection(chunk.sectionsCount - 1);\n for (let cellY = cellCountY - 1; cellY >= 0; cellY -= 1) {\n for (let offY = cellHeight - 1; offY >= 0; offY -= 1) {\n const blockY = (minCellY + cellY) * cellHeight + offY;\n const sectionY = blockY & 0xF;\n const sectionIndex = chunk.getSectionIndex(blockY);\n if (chunk.getSectionIndex(section.minBlockY) !== sectionIndex) {\n section = chunk.getOrCreateSection(sectionIndex);\n }\n for (let offX = 0; offX < cellWidth; offX += 1) {\n const blockX = minX + cellX * cellWidth + offX;\n const sectionX = blockX & 0xF;\n for (let offZ = 0; offZ < (onlyFirstZ ? 1 : cellWidth); offZ += 1) {\n const blockZ = minZ + cellZ * cellWidth + offZ;\n const sectionZ = blockZ & 0xF;\n const state = noiseChunk.getFinalState(blockX, blockY, blockZ) ?? this.settings.defaultBlock;\n section.setBlockState(sectionX, sectionY, sectionZ, state);\n }\n }\n }\n }\n }\n }\n }\n buildSurface(randomState, chunk, /** @deprecated */ biome = 'minecraft:plains') {\n const noiseChunk = this.getOrCreateNoiseChunk(randomState, chunk);\n const context = WorldgenContext.create(this.settings.noise.minY, this.settings.noise.height);\n randomState.surfaceSystem.buildSurface(chunk, noiseChunk, context, () => biome);\n }\n computeBiome(randomState, quartX, quartY, quartZ) {\n return this.biomeSource.getBiome(quartX, quartY, quartZ, randomState.sampler);\n }\n getOrCreateNoiseChunk(randomState, chunk) {\n return computeIfAbsent(this.noiseChunkCache, ChunkPos.toLong(chunk.pos), () => {\n const minY = Math.max(chunk.minY, this.settings.noise.minY);\n const maxY = Math.min(chunk.maxY, this.settings.noise.minY + this.settings.noise.height);\n const cellWidth = NoiseSettings.cellWidth(this.settings.noise);\n const cellHeight = NoiseSettings.cellHeight(this.settings.noise);\n const cellCountXZ = Math.floor(16 / cellWidth);\n const minCellY = Math.floor(minY / cellHeight);\n const cellCountY = Math.floor((maxY - minY) / cellHeight);\n const minX = ChunkPos.minBlockX(chunk.pos);\n const minZ = ChunkPos.minBlockZ(chunk.pos);\n return new NoiseChunk(cellCountXZ, cellCountY, minCellY, randomState, minX, minZ, this.settings.noise, this.settings.aquifersEnabled, this.globalFluidPicker);\n });\n }\n}\n//# sourceMappingURL=NoiseChunkGenerator.js.map","import { clamp } from '../math/index.js';\nconst toRGB = (c) => {\n const r = (c >> 16) & 255;\n const g = (c >> 8) & 255;\n const b = c & 255;\n return [r / 256, g / 256, b / 256];\n};\nconst grass = [124 / 256, 189 / 256, 107 / 256];\nconst spruce = toRGB(6396257);\nconst birch = toRGB(8431445);\nconst foliage = toRGB(4764952);\nconst water = toRGB(4159204);\nconst attached_stem = toRGB(8431445);\nconst lily_pad = toRGB(2129968);\nconst redstone = (power) => {\n const a = power / 15;\n const r = a * 0.6 + (a > 0 ? 0.4 : 0.3);\n const g = clamp(a * a * 0.7 - 0.5, 0, 1);\n const b = clamp(a * a * 0.6 - 0.7, 0, 1);\n return [r, g, b];\n};\nconst stem = (age) => {\n return [age / 8, 1 - age / 32, age * 64];\n};\nexport const BlockColors = {\n large_fern: () => grass,\n tall_grass: () => grass,\n grass_block: () => grass,\n fern: () => grass,\n grass: () => grass,\n potted_fern: () => grass,\n spruce_leaves: () => spruce,\n birch_leaves: () => birch,\n oak_leaves: () => foliage,\n jungle_leaves: () => foliage,\n acacia_leaves: () => foliage,\n dark_oak_leaves: () => foliage,\n vine: () => foliage,\n water: () => water,\n bubble_column: () => water,\n cauldron: () => water,\n redstone_wire: (props) => redstone(parseInt(props['power'] ?? '0')),\n sugar_cane: () => grass,\n attached_melon_stem: () => attached_stem,\n attached_pumpkin_stem: () => attached_stem,\n melon_stem: (props) => stem(parseInt(props['age'] ?? '0')),\n pumpkin_stem: (props) => stem(parseInt(props['age'] ?? '0')),\n lily_pad: () => lily_pad,\n};\n//# sourceMappingURL=BlockColors.js.map","/**\n * Common utilities\n * @module glMatrix\n */\n// Configuration Constants\nexport var EPSILON = 0.000001;\nexport var ARRAY_TYPE = typeof Float32Array !== 'undefined' ? Float32Array : Array;\nexport var RANDOM = Math.random;\n/**\n * Sets the type of array used when creating new vectors and matrices\n *\n * @param {Float32ArrayConstructor | ArrayConstructor} type Array type, such as Float32Array or Array\n */\n\nexport function setMatrixArrayType(type) {\n ARRAY_TYPE = type;\n}\nvar degree = Math.PI / 180;\n/**\n * Convert Degree To Radian\n *\n * @param {Number} a Angle in Degrees\n */\n\nexport function toRadian(a) {\n return a * degree;\n}\n/**\n * Tests whether or not the arguments have approximately the same value, within an absolute\n * or relative tolerance of glMatrix.EPSILON (an absolute tolerance is used for values less\n * than or equal to 1.0, and a relative tolerance is used for larger values)\n *\n * @param {Number} a The first number to test.\n * @param {Number} b The second number to test.\n * @returns {Boolean} True if the numbers are approximately equal, false otherwise.\n */\n\nexport function equals(a, b) {\n return Math.abs(a - b) <= EPSILON * Math.max(1.0, Math.abs(a), Math.abs(b));\n}\nif (!Math.hypot) Math.hypot = function () {\n var y = 0,\n i = arguments.length;\n\n while (i--) {\n y += arguments[i] * arguments[i];\n }\n\n return Math.sqrt(y);\n};","import * as glMatrix from \"./common.js\";\n/**\n * 4x4 Matrix<br>Format: column-major, when typed out it looks like row-major<br>The matrices are being post multiplied.\n * @module mat4\n */\n\n/**\n * Creates a new identity mat4\n *\n * @returns {mat4} a new 4x4 matrix\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(16);\n\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n }\n\n out[0] = 1;\n out[5] = 1;\n out[10] = 1;\n out[15] = 1;\n return out;\n}\n/**\n * Creates a new mat4 initialized with values from an existing matrix\n *\n * @param {ReadonlyMat4} a matrix to clone\n * @returns {mat4} a new 4x4 matrix\n */\n\nexport function clone(a) {\n var out = new glMatrix.ARRAY_TYPE(16);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n}\n/**\n * Copy the values from one mat4 to another\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the source matrix\n * @returns {mat4} out\n */\n\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n}\n/**\n * Create a new mat4 with the given values\n *\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\n * @param {Number} m03 Component in column 0, row 3 position (index 3)\n * @param {Number} m10 Component in column 1, row 0 position (index 4)\n * @param {Number} m11 Component in column 1, row 1 position (index 5)\n * @param {Number} m12 Component in column 1, row 2 position (index 6)\n * @param {Number} m13 Component in column 1, row 3 position (index 7)\n * @param {Number} m20 Component in column 2, row 0 position (index 8)\n * @param {Number} m21 Component in column 2, row 1 position (index 9)\n * @param {Number} m22 Component in column 2, row 2 position (index 10)\n * @param {Number} m23 Component in column 2, row 3 position (index 11)\n * @param {Number} m30 Component in column 3, row 0 position (index 12)\n * @param {Number} m31 Component in column 3, row 1 position (index 13)\n * @param {Number} m32 Component in column 3, row 2 position (index 14)\n * @param {Number} m33 Component in column 3, row 3 position (index 15)\n * @returns {mat4} A new mat4\n */\n\nexport function fromValues(m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33) {\n var out = new glMatrix.ARRAY_TYPE(16);\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m03;\n out[4] = m10;\n out[5] = m11;\n out[6] = m12;\n out[7] = m13;\n out[8] = m20;\n out[9] = m21;\n out[10] = m22;\n out[11] = m23;\n out[12] = m30;\n out[13] = m31;\n out[14] = m32;\n out[15] = m33;\n return out;\n}\n/**\n * Set the components of a mat4 to the given values\n *\n * @param {mat4} out the receiving matrix\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\n * @param {Number} m03 Component in column 0, row 3 position (index 3)\n * @param {Number} m10 Component in column 1, row 0 position (index 4)\n * @param {Number} m11 Component in column 1, row 1 position (index 5)\n * @param {Number} m12 Component in column 1, row 2 position (index 6)\n * @param {Number} m13 Component in column 1, row 3 position (index 7)\n * @param {Number} m20 Component in column 2, row 0 position (index 8)\n * @param {Number} m21 Component in column 2, row 1 position (index 9)\n * @param {Number} m22 Component in column 2, row 2 position (index 10)\n * @param {Number} m23 Component in column 2, row 3 position (index 11)\n * @param {Number} m30 Component in column 3, row 0 position (index 12)\n * @param {Number} m31 Component in column 3, row 1 position (index 13)\n * @param {Number} m32 Component in column 3, row 2 position (index 14)\n * @param {Number} m33 Component in column 3, row 3 position (index 15)\n * @returns {mat4} out\n */\n\nexport function set(out, m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33) {\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m03;\n out[4] = m10;\n out[5] = m11;\n out[6] = m12;\n out[7] = m13;\n out[8] = m20;\n out[9] = m21;\n out[10] = m22;\n out[11] = m23;\n out[12] = m30;\n out[13] = m31;\n out[14] = m32;\n out[15] = m33;\n return out;\n}\n/**\n * Set a mat4 to the identity matrix\n *\n * @param {mat4} out the receiving matrix\n * @returns {mat4} out\n */\n\nexport function identity(out) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Transpose the values of a mat4\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the source matrix\n * @returns {mat4} out\n */\n\nexport function transpose(out, a) {\n // If we are transposing ourselves we can skip a few steps but have to cache some values\n if (out === a) {\n var a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a12 = a[6],\n a13 = a[7];\n var a23 = a[11];\n out[1] = a[4];\n out[2] = a[8];\n out[3] = a[12];\n out[4] = a01;\n out[6] = a[9];\n out[7] = a[13];\n out[8] = a02;\n out[9] = a12;\n out[11] = a[14];\n out[12] = a03;\n out[13] = a13;\n out[14] = a23;\n } else {\n out[0] = a[0];\n out[1] = a[4];\n out[2] = a[8];\n out[3] = a[12];\n out[4] = a[1];\n out[5] = a[5];\n out[6] = a[9];\n out[7] = a[13];\n out[8] = a[2];\n out[9] = a[6];\n out[10] = a[10];\n out[11] = a[14];\n out[12] = a[3];\n out[13] = a[7];\n out[14] = a[11];\n out[15] = a[15];\n }\n\n return out;\n}\n/**\n * Inverts a mat4\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the source matrix\n * @returns {mat4} out\n */\n\nexport function invert(out, a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15];\n var b00 = a00 * a11 - a01 * a10;\n var b01 = a00 * a12 - a02 * a10;\n var b02 = a00 * a13 - a03 * a10;\n var b03 = a01 * a12 - a02 * a11;\n var b04 = a01 * a13 - a03 * a11;\n var b05 = a02 * a13 - a03 * a12;\n var b06 = a20 * a31 - a21 * a30;\n var b07 = a20 * a32 - a22 * a30;\n var b08 = a20 * a33 - a23 * a30;\n var b09 = a21 * a32 - a22 * a31;\n var b10 = a21 * a33 - a23 * a31;\n var b11 = a22 * a33 - a23 * a32; // Calculate the determinant\n\n var det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n\n if (!det) {\n return null;\n }\n\n det = 1.0 / det;\n out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;\n out[1] = (a02 * b10 - a01 * b11 - a03 * b09) * det;\n out[2] = (a31 * b05 - a32 * b04 + a33 * b03) * det;\n out[3] = (a22 * b04 - a21 * b05 - a23 * b03) * det;\n out[4] = (a12 * b08 - a10 * b11 - a13 * b07) * det;\n out[5] = (a00 * b11 - a02 * b08 + a03 * b07) * det;\n out[6] = (a32 * b02 - a30 * b05 - a33 * b01) * det;\n out[7] = (a20 * b05 - a22 * b02 + a23 * b01) * det;\n out[8] = (a10 * b10 - a11 * b08 + a13 * b06) * det;\n out[9] = (a01 * b08 - a00 * b10 - a03 * b06) * det;\n out[10] = (a30 * b04 - a31 * b02 + a33 * b00) * det;\n out[11] = (a21 * b02 - a20 * b04 - a23 * b00) * det;\n out[12] = (a11 * b07 - a10 * b09 - a12 * b06) * det;\n out[13] = (a00 * b09 - a01 * b07 + a02 * b06) * det;\n out[14] = (a31 * b01 - a30 * b03 - a32 * b00) * det;\n out[15] = (a20 * b03 - a21 * b01 + a22 * b00) * det;\n return out;\n}\n/**\n * Calculates the adjugate of a mat4\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the source matrix\n * @returns {mat4} out\n */\n\nexport function adjoint(out, a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15];\n out[0] = a11 * (a22 * a33 - a23 * a32) - a21 * (a12 * a33 - a13 * a32) + a31 * (a12 * a23 - a13 * a22);\n out[1] = -(a01 * (a22 * a33 - a23 * a32) - a21 * (a02 * a33 - a03 * a32) + a31 * (a02 * a23 - a03 * a22));\n out[2] = a01 * (a12 * a33 - a13 * a32) - a11 * (a02 * a33 - a03 * a32) + a31 * (a02 * a13 - a03 * a12);\n out[3] = -(a01 * (a12 * a23 - a13 * a22) - a11 * (a02 * a23 - a03 * a22) + a21 * (a02 * a13 - a03 * a12));\n out[4] = -(a10 * (a22 * a33 - a23 * a32) - a20 * (a12 * a33 - a13 * a32) + a30 * (a12 * a23 - a13 * a22));\n out[5] = a00 * (a22 * a33 - a23 * a32) - a20 * (a02 * a33 - a03 * a32) + a30 * (a02 * a23 - a03 * a22);\n out[6] = -(a00 * (a12 * a33 - a13 * a32) - a10 * (a02 * a33 - a03 * a32) + a30 * (a02 * a13 - a03 * a12));\n out[7] = a00 * (a12 * a23 - a13 * a22) - a10 * (a02 * a23 - a03 * a22) + a20 * (a02 * a13 - a03 * a12);\n out[8] = a10 * (a21 * a33 - a23 * a31) - a20 * (a11 * a33 - a13 * a31) + a30 * (a11 * a23 - a13 * a21);\n out[9] = -(a00 * (a21 * a33 - a23 * a31) - a20 * (a01 * a33 - a03 * a31) + a30 * (a01 * a23 - a03 * a21));\n out[10] = a00 * (a11 * a33 - a13 * a31) - a10 * (a01 * a33 - a03 * a31) + a30 * (a01 * a13 - a03 * a11);\n out[11] = -(a00 * (a11 * a23 - a13 * a21) - a10 * (a01 * a23 - a03 * a21) + a20 * (a01 * a13 - a03 * a11));\n out[12] = -(a10 * (a21 * a32 - a22 * a31) - a20 * (a11 * a32 - a12 * a31) + a30 * (a11 * a22 - a12 * a21));\n out[13] = a00 * (a21 * a32 - a22 * a31) - a20 * (a01 * a32 - a02 * a31) + a30 * (a01 * a22 - a02 * a21);\n out[14] = -(a00 * (a11 * a32 - a12 * a31) - a10 * (a01 * a32 - a02 * a31) + a30 * (a01 * a12 - a02 * a11));\n out[15] = a00 * (a11 * a22 - a12 * a21) - a10 * (a01 * a22 - a02 * a21) + a20 * (a01 * a12 - a02 * a11);\n return out;\n}\n/**\n * Calculates the determinant of a mat4\n *\n * @param {ReadonlyMat4} a the source matrix\n * @returns {Number} determinant of a\n */\n\nexport function determinant(a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15];\n var b00 = a00 * a11 - a01 * a10;\n var b01 = a00 * a12 - a02 * a10;\n var b02 = a00 * a13 - a03 * a10;\n var b03 = a01 * a12 - a02 * a11;\n var b04 = a01 * a13 - a03 * a11;\n var b05 = a02 * a13 - a03 * a12;\n var b06 = a20 * a31 - a21 * a30;\n var b07 = a20 * a32 - a22 * a30;\n var b08 = a20 * a33 - a23 * a30;\n var b09 = a21 * a32 - a22 * a31;\n var b10 = a21 * a33 - a23 * a31;\n var b11 = a22 * a33 - a23 * a32; // Calculate the determinant\n\n return b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n}\n/**\n * Multiplies two mat4s\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the first operand\n * @param {ReadonlyMat4} b the second operand\n * @returns {mat4} out\n */\n\nexport function multiply(out, a, b) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15]; // Cache only the current line of the second matrix\n\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3];\n out[0] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[1] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[2] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[3] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[4];\n b1 = b[5];\n b2 = b[6];\n b3 = b[7];\n out[4] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[5] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[6] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[7] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[8];\n b1 = b[9];\n b2 = b[10];\n b3 = b[11];\n out[8] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[9] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[10] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[11] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[12];\n b1 = b[13];\n b2 = b[14];\n b3 = b[15];\n out[12] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[13] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[14] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[15] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n return out;\n}\n/**\n * Translate a mat4 by the given vector\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to translate\n * @param {ReadonlyVec3} v vector to translate by\n * @returns {mat4} out\n */\n\nexport function translate(out, a, v) {\n var x = v[0],\n y = v[1],\n z = v[2];\n var a00, a01, a02, a03;\n var a10, a11, a12, a13;\n var a20, a21, a22, a23;\n\n if (a === out) {\n out[12] = a[0] * x + a[4] * y + a[8] * z + a[12];\n out[13] = a[1] * x + a[5] * y + a[9] * z + a[13];\n out[14] = a[2] * x + a[6] * y + a[10] * z + a[14];\n out[15] = a[3] * x + a[7] * y + a[11] * z + a[15];\n } else {\n a00 = a[0];\n a01 = a[1];\n a02 = a[2];\n a03 = a[3];\n a10 = a[4];\n a11 = a[5];\n a12 = a[6];\n a13 = a[7];\n a20 = a[8];\n a21 = a[9];\n a22 = a[10];\n a23 = a[11];\n out[0] = a00;\n out[1] = a01;\n out[2] = a02;\n out[3] = a03;\n out[4] = a10;\n out[5] = a11;\n out[6] = a12;\n out[7] = a13;\n out[8] = a20;\n out[9] = a21;\n out[10] = a22;\n out[11] = a23;\n out[12] = a00 * x + a10 * y + a20 * z + a[12];\n out[13] = a01 * x + a11 * y + a21 * z + a[13];\n out[14] = a02 * x + a12 * y + a22 * z + a[14];\n out[15] = a03 * x + a13 * y + a23 * z + a[15];\n }\n\n return out;\n}\n/**\n * Scales the mat4 by the dimensions in the given vec3 not using vectorization\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to scale\n * @param {ReadonlyVec3} v the vec3 to scale the matrix by\n * @returns {mat4} out\n **/\n\nexport function scale(out, a, v) {\n var x = v[0],\n y = v[1],\n z = v[2];\n out[0] = a[0] * x;\n out[1] = a[1] * x;\n out[2] = a[2] * x;\n out[3] = a[3] * x;\n out[4] = a[4] * y;\n out[5] = a[5] * y;\n out[6] = a[6] * y;\n out[7] = a[7] * y;\n out[8] = a[8] * z;\n out[9] = a[9] * z;\n out[10] = a[10] * z;\n out[11] = a[11] * z;\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n}\n/**\n * Rotates a mat4 by the given angle around the given axis\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @param {ReadonlyVec3} axis the axis to rotate around\n * @returns {mat4} out\n */\n\nexport function rotate(out, a, rad, axis) {\n var x = axis[0],\n y = axis[1],\n z = axis[2];\n var len = Math.hypot(x, y, z);\n var s, c, t;\n var a00, a01, a02, a03;\n var a10, a11, a12, a13;\n var a20, a21, a22, a23;\n var b00, b01, b02;\n var b10, b11, b12;\n var b20, b21, b22;\n\n if (len < glMatrix.EPSILON) {\n return null;\n }\n\n len = 1 / len;\n x *= len;\n y *= len;\n z *= len;\n s = Math.sin(rad);\n c = Math.cos(rad);\n t = 1 - c;\n a00 = a[0];\n a01 = a[1];\n a02 = a[2];\n a03 = a[3];\n a10 = a[4];\n a11 = a[5];\n a12 = a[6];\n a13 = a[7];\n a20 = a[8];\n a21 = a[9];\n a22 = a[10];\n a23 = a[11]; // Construct the elements of the rotation matrix\n\n b00 = x * x * t + c;\n b01 = y * x * t + z * s;\n b02 = z * x * t - y * s;\n b10 = x * y * t - z * s;\n b11 = y * y * t + c;\n b12 = z * y * t + x * s;\n b20 = x * z * t + y * s;\n b21 = y * z * t - x * s;\n b22 = z * z * t + c; // Perform rotation-specific matrix multiplication\n\n out[0] = a00 * b00 + a10 * b01 + a20 * b02;\n out[1] = a01 * b00 + a11 * b01 + a21 * b02;\n out[2] = a02 * b00 + a12 * b01 + a22 * b02;\n out[3] = a03 * b00 + a13 * b01 + a23 * b02;\n out[4] = a00 * b10 + a10 * b11 + a20 * b12;\n out[5] = a01 * b10 + a11 * b11 + a21 * b12;\n out[6] = a02 * b10 + a12 * b11 + a22 * b12;\n out[7] = a03 * b10 + a13 * b11 + a23 * b12;\n out[8] = a00 * b20 + a10 * b21 + a20 * b22;\n out[9] = a01 * b20 + a11 * b21 + a21 * b22;\n out[10] = a02 * b20 + a12 * b21 + a22 * b22;\n out[11] = a03 * b20 + a13 * b21 + a23 * b22;\n\n if (a !== out) {\n // If the source and destination differ, copy the unchanged last row\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n }\n\n return out;\n}\n/**\n * Rotates a matrix by the given angle around the X axis\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nexport function rotateX(out, a, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad);\n var a10 = a[4];\n var a11 = a[5];\n var a12 = a[6];\n var a13 = a[7];\n var a20 = a[8];\n var a21 = a[9];\n var a22 = a[10];\n var a23 = a[11];\n\n if (a !== out) {\n // If the source and destination differ, copy the unchanged rows\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n } // Perform axis-specific matrix multiplication\n\n\n out[4] = a10 * c + a20 * s;\n out[5] = a11 * c + a21 * s;\n out[6] = a12 * c + a22 * s;\n out[7] = a13 * c + a23 * s;\n out[8] = a20 * c - a10 * s;\n out[9] = a21 * c - a11 * s;\n out[10] = a22 * c - a12 * s;\n out[11] = a23 * c - a13 * s;\n return out;\n}\n/**\n * Rotates a matrix by the given angle around the Y axis\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nexport function rotateY(out, a, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad);\n var a00 = a[0];\n var a01 = a[1];\n var a02 = a[2];\n var a03 = a[3];\n var a20 = a[8];\n var a21 = a[9];\n var a22 = a[10];\n var a23 = a[11];\n\n if (a !== out) {\n // If the source and destination differ, copy the unchanged rows\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n } // Perform axis-specific matrix multiplication\n\n\n out[0] = a00 * c - a20 * s;\n out[1] = a01 * c - a21 * s;\n out[2] = a02 * c - a22 * s;\n out[3] = a03 * c - a23 * s;\n out[8] = a00 * s + a20 * c;\n out[9] = a01 * s + a21 * c;\n out[10] = a02 * s + a22 * c;\n out[11] = a03 * s + a23 * c;\n return out;\n}\n/**\n * Rotates a matrix by the given angle around the Z axis\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nexport function rotateZ(out, a, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad);\n var a00 = a[0];\n var a01 = a[1];\n var a02 = a[2];\n var a03 = a[3];\n var a10 = a[4];\n var a11 = a[5];\n var a12 = a[6];\n var a13 = a[7];\n\n if (a !== out) {\n // If the source and destination differ, copy the unchanged last row\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n } // Perform axis-specific matrix multiplication\n\n\n out[0] = a00 * c + a10 * s;\n out[1] = a01 * c + a11 * s;\n out[2] = a02 * c + a12 * s;\n out[3] = a03 * c + a13 * s;\n out[4] = a10 * c - a00 * s;\n out[5] = a11 * c - a01 * s;\n out[6] = a12 * c - a02 * s;\n out[7] = a13 * c - a03 * s;\n return out;\n}\n/**\n * Creates a matrix from a vector translation\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.translate(dest, dest, vec);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {ReadonlyVec3} v Translation vector\n * @returns {mat4} out\n */\n\nexport function fromTranslation(out, v) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = v[0];\n out[13] = v[1];\n out[14] = v[2];\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from a vector scaling\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.scale(dest, dest, vec);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {ReadonlyVec3} v Scaling vector\n * @returns {mat4} out\n */\n\nexport function fromScaling(out, v) {\n out[0] = v[0];\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = v[1];\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = v[2];\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from a given angle around a given axis\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.rotate(dest, dest, rad, axis);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @param {ReadonlyVec3} axis the axis to rotate around\n * @returns {mat4} out\n */\n\nexport function fromRotation(out, rad, axis) {\n var x = axis[0],\n y = axis[1],\n z = axis[2];\n var len = Math.hypot(x, y, z);\n var s, c, t;\n\n if (len < glMatrix.EPSILON) {\n return null;\n }\n\n len = 1 / len;\n x *= len;\n y *= len;\n z *= len;\n s = Math.sin(rad);\n c = Math.cos(rad);\n t = 1 - c; // Perform rotation-specific matrix multiplication\n\n out[0] = x * x * t + c;\n out[1] = y * x * t + z * s;\n out[2] = z * x * t - y * s;\n out[3] = 0;\n out[4] = x * y * t - z * s;\n out[5] = y * y * t + c;\n out[6] = z * y * t + x * s;\n out[7] = 0;\n out[8] = x * z * t + y * s;\n out[9] = y * z * t - x * s;\n out[10] = z * z * t + c;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from the given angle around the X axis\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.rotateX(dest, dest, rad);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nexport function fromXRotation(out, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad); // Perform axis-specific matrix multiplication\n\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = c;\n out[6] = s;\n out[7] = 0;\n out[8] = 0;\n out[9] = -s;\n out[10] = c;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from the given angle around the Y axis\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.rotateY(dest, dest, rad);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nexport function fromYRotation(out, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad); // Perform axis-specific matrix multiplication\n\n out[0] = c;\n out[1] = 0;\n out[2] = -s;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = s;\n out[9] = 0;\n out[10] = c;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from the given angle around the Z axis\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.rotateZ(dest, dest, rad);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nexport function fromZRotation(out, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad); // Perform axis-specific matrix multiplication\n\n out[0] = c;\n out[1] = s;\n out[2] = 0;\n out[3] = 0;\n out[4] = -s;\n out[5] = c;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from a quaternion rotation and vector translation\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.translate(dest, vec);\n * let quatMat = mat4.create();\n * quat4.toMat4(quat, quatMat);\n * mat4.multiply(dest, quatMat);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {quat4} q Rotation quaternion\n * @param {ReadonlyVec3} v Translation vector\n * @returns {mat4} out\n */\n\nexport function fromRotationTranslation(out, q, v) {\n // Quaternion math\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var xy = x * y2;\n var xz = x * z2;\n var yy = y * y2;\n var yz = y * z2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n out[0] = 1 - (yy + zz);\n out[1] = xy + wz;\n out[2] = xz - wy;\n out[3] = 0;\n out[4] = xy - wz;\n out[5] = 1 - (xx + zz);\n out[6] = yz + wx;\n out[7] = 0;\n out[8] = xz + wy;\n out[9] = yz - wx;\n out[10] = 1 - (xx + yy);\n out[11] = 0;\n out[12] = v[0];\n out[13] = v[1];\n out[14] = v[2];\n out[15] = 1;\n return out;\n}\n/**\n * Creates a new mat4 from a dual quat.\n *\n * @param {mat4} out Matrix\n * @param {ReadonlyQuat2} a Dual Quaternion\n * @returns {mat4} mat4 receiving operation result\n */\n\nexport function fromQuat2(out, a) {\n var translation = new glMatrix.ARRAY_TYPE(3);\n var bx = -a[0],\n by = -a[1],\n bz = -a[2],\n bw = a[3],\n ax = a[4],\n ay = a[5],\n az = a[6],\n aw = a[7];\n var magnitude = bx * bx + by * by + bz * bz + bw * bw; //Only scale if it makes sense\n\n if (magnitude > 0) {\n translation[0] = (ax * bw + aw * bx + ay * bz - az * by) * 2 / magnitude;\n translation[1] = (ay * bw + aw * by + az * bx - ax * bz) * 2 / magnitude;\n translation[2] = (az * bw + aw * bz + ax * by - ay * bx) * 2 / magnitude;\n } else {\n translation[0] = (ax * bw + aw * bx + ay * bz - az * by) * 2;\n translation[1] = (ay * bw + aw * by + az * bx - ax * bz) * 2;\n translation[2] = (az * bw + aw * bz + ax * by - ay * bx) * 2;\n }\n\n fromRotationTranslation(out, a, translation);\n return out;\n}\n/**\n * Returns the translation vector component of a transformation\n * matrix. If a matrix is built with fromRotationTranslation,\n * the returned vector will be the same as the translation vector\n * originally supplied.\n * @param {vec3} out Vector to receive translation component\n * @param {ReadonlyMat4} mat Matrix to be decomposed (input)\n * @return {vec3} out\n */\n\nexport function getTranslation(out, mat) {\n out[0] = mat[12];\n out[1] = mat[13];\n out[2] = mat[14];\n return out;\n}\n/**\n * Returns the scaling factor component of a transformation\n * matrix. If a matrix is built with fromRotationTranslationScale\n * with a normalized Quaternion paramter, the returned vector will be\n * the same as the scaling vector\n * originally supplied.\n * @param {vec3} out Vector to receive scaling factor component\n * @param {ReadonlyMat4} mat Matrix to be decomposed (input)\n * @return {vec3} out\n */\n\nexport function getScaling(out, mat) {\n var m11 = mat[0];\n var m12 = mat[1];\n var m13 = mat[2];\n var m21 = mat[4];\n var m22 = mat[5];\n var m23 = mat[6];\n var m31 = mat[8];\n var m32 = mat[9];\n var m33 = mat[10];\n out[0] = Math.hypot(m11, m12, m13);\n out[1] = Math.hypot(m21, m22, m23);\n out[2] = Math.hypot(m31, m32, m33);\n return out;\n}\n/**\n * Returns a quaternion representing the rotational component\n * of a transformation matrix. If a matrix is built with\n * fromRotationTranslation, the returned quaternion will be the\n * same as the quaternion originally supplied.\n * @param {quat} out Quaternion to receive the rotation component\n * @param {ReadonlyMat4} mat Matrix to be decomposed (input)\n * @return {quat} out\n */\n\nexport function getRotation(out, mat) {\n var scaling = new glMatrix.ARRAY_TYPE(3);\n getScaling(scaling, mat);\n var is1 = 1 / scaling[0];\n var is2 = 1 / scaling[1];\n var is3 = 1 / scaling[2];\n var sm11 = mat[0] * is1;\n var sm12 = mat[1] * is2;\n var sm13 = mat[2] * is3;\n var sm21 = mat[4] * is1;\n var sm22 = mat[5] * is2;\n var sm23 = mat[6] * is3;\n var sm31 = mat[8] * is1;\n var sm32 = mat[9] * is2;\n var sm33 = mat[10] * is3;\n var trace = sm11 + sm22 + sm33;\n var S = 0;\n\n if (trace > 0) {\n S = Math.sqrt(trace + 1.0) * 2;\n out[3] = 0.25 * S;\n out[0] = (sm23 - sm32) / S;\n out[1] = (sm31 - sm13) / S;\n out[2] = (sm12 - sm21) / S;\n } else if (sm11 > sm22 && sm11 > sm33) {\n S = Math.sqrt(1.0 + sm11 - sm22 - sm33) * 2;\n out[3] = (sm23 - sm32) / S;\n out[0] = 0.25 * S;\n out[1] = (sm12 + sm21) / S;\n out[2] = (sm31 + sm13) / S;\n } else if (sm22 > sm33) {\n S = Math.sqrt(1.0 + sm22 - sm11 - sm33) * 2;\n out[3] = (sm31 - sm13) / S;\n out[0] = (sm12 + sm21) / S;\n out[1] = 0.25 * S;\n out[2] = (sm23 + sm32) / S;\n } else {\n S = Math.sqrt(1.0 + sm33 - sm11 - sm22) * 2;\n out[3] = (sm12 - sm21) / S;\n out[0] = (sm31 + sm13) / S;\n out[1] = (sm23 + sm32) / S;\n out[2] = 0.25 * S;\n }\n\n return out;\n}\n/**\n * Creates a matrix from a quaternion rotation, vector translation and vector scale\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.translate(dest, vec);\n * let quatMat = mat4.create();\n * quat4.toMat4(quat, quatMat);\n * mat4.multiply(dest, quatMat);\n * mat4.scale(dest, scale)\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {quat4} q Rotation quaternion\n * @param {ReadonlyVec3} v Translation vector\n * @param {ReadonlyVec3} s Scaling vector\n * @returns {mat4} out\n */\n\nexport function fromRotationTranslationScale(out, q, v, s) {\n // Quaternion math\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var xy = x * y2;\n var xz = x * z2;\n var yy = y * y2;\n var yz = y * z2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n var sx = s[0];\n var sy = s[1];\n var sz = s[2];\n out[0] = (1 - (yy + zz)) * sx;\n out[1] = (xy + wz) * sx;\n out[2] = (xz - wy) * sx;\n out[3] = 0;\n out[4] = (xy - wz) * sy;\n out[5] = (1 - (xx + zz)) * sy;\n out[6] = (yz + wx) * sy;\n out[7] = 0;\n out[8] = (xz + wy) * sz;\n out[9] = (yz - wx) * sz;\n out[10] = (1 - (xx + yy)) * sz;\n out[11] = 0;\n out[12] = v[0];\n out[13] = v[1];\n out[14] = v[2];\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from a quaternion rotation, vector translation and vector scale, rotating and scaling around the given origin\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.translate(dest, vec);\n * mat4.translate(dest, origin);\n * let quatMat = mat4.create();\n * quat4.toMat4(quat, quatMat);\n * mat4.multiply(dest, quatMat);\n * mat4.scale(dest, scale)\n * mat4.translate(dest, negativeOrigin);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {quat4} q Rotation quaternion\n * @param {ReadonlyVec3} v Translation vector\n * @param {ReadonlyVec3} s Scaling vector\n * @param {ReadonlyVec3} o The origin vector around which to scale and rotate\n * @returns {mat4} out\n */\n\nexport function fromRotationTranslationScaleOrigin(out, q, v, s, o) {\n // Quaternion math\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var xy = x * y2;\n var xz = x * z2;\n var yy = y * y2;\n var yz = y * z2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n var sx = s[0];\n var sy = s[1];\n var sz = s[2];\n var ox = o[0];\n var oy = o[1];\n var oz = o[2];\n var out0 = (1 - (yy + zz)) * sx;\n var out1 = (xy + wz) * sx;\n var out2 = (xz - wy) * sx;\n var out4 = (xy - wz) * sy;\n var out5 = (1 - (xx + zz)) * sy;\n var out6 = (yz + wx) * sy;\n var out8 = (xz + wy) * sz;\n var out9 = (yz - wx) * sz;\n var out10 = (1 - (xx + yy)) * sz;\n out[0] = out0;\n out[1] = out1;\n out[2] = out2;\n out[3] = 0;\n out[4] = out4;\n out[5] = out5;\n out[6] = out6;\n out[7] = 0;\n out[8] = out8;\n out[9] = out9;\n out[10] = out10;\n out[11] = 0;\n out[12] = v[0] + ox - (out0 * ox + out4 * oy + out8 * oz);\n out[13] = v[1] + oy - (out1 * ox + out5 * oy + out9 * oz);\n out[14] = v[2] + oz - (out2 * ox + out6 * oy + out10 * oz);\n out[15] = 1;\n return out;\n}\n/**\n * Calculates a 4x4 matrix from the given quaternion\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {ReadonlyQuat} q Quaternion to create matrix from\n *\n * @returns {mat4} out\n */\n\nexport function fromQuat(out, q) {\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var yx = y * x2;\n var yy = y * y2;\n var zx = z * x2;\n var zy = z * y2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n out[0] = 1 - yy - zz;\n out[1] = yx + wz;\n out[2] = zx - wy;\n out[3] = 0;\n out[4] = yx - wz;\n out[5] = 1 - xx - zz;\n out[6] = zy + wx;\n out[7] = 0;\n out[8] = zx + wy;\n out[9] = zy - wx;\n out[10] = 1 - xx - yy;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Generates a frustum matrix with the given bounds\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {Number} left Left bound of the frustum\n * @param {Number} right Right bound of the frustum\n * @param {Number} bottom Bottom bound of the frustum\n * @param {Number} top Top bound of the frustum\n * @param {Number} near Near bound of the frustum\n * @param {Number} far Far bound of the frustum\n * @returns {mat4} out\n */\n\nexport function frustum(out, left, right, bottom, top, near, far) {\n var rl = 1 / (right - left);\n var tb = 1 / (top - bottom);\n var nf = 1 / (near - far);\n out[0] = near * 2 * rl;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = near * 2 * tb;\n out[6] = 0;\n out[7] = 0;\n out[8] = (right + left) * rl;\n out[9] = (top + bottom) * tb;\n out[10] = (far + near) * nf;\n out[11] = -1;\n out[12] = 0;\n out[13] = 0;\n out[14] = far * near * 2 * nf;\n out[15] = 0;\n return out;\n}\n/**\n * Generates a perspective projection matrix with the given bounds.\n * The near/far clip planes correspond to a normalized device coordinate Z range of [-1, 1],\n * which matches WebGL/OpenGL's clip volume.\n * Passing null/undefined/no value for far will generate infinite projection matrix.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} fovy Vertical field of view in radians\n * @param {number} aspect Aspect ratio. typically viewport width/height\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum, can be null or Infinity\n * @returns {mat4} out\n */\n\nexport function perspectiveNO(out, fovy, aspect, near, far) {\n var f = 1.0 / Math.tan(fovy / 2),\n nf;\n out[0] = f / aspect;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = f;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[11] = -1;\n out[12] = 0;\n out[13] = 0;\n out[15] = 0;\n\n if (far != null && far !== Infinity) {\n nf = 1 / (near - far);\n out[10] = (far + near) * nf;\n out[14] = 2 * far * near * nf;\n } else {\n out[10] = -1;\n out[14] = -2 * near;\n }\n\n return out;\n}\n/**\n * Alias for {@link mat4.perspectiveNO}\n * @function\n */\n\nexport var perspective = perspectiveNO;\n/**\n * Generates a perspective projection matrix suitable for WebGPU with the given bounds.\n * The near/far clip planes correspond to a normalized device coordinate Z range of [0, 1],\n * which matches WebGPU/Vulkan/DirectX/Metal's clip volume.\n * Passing null/undefined/no value for far will generate infinite projection matrix.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} fovy Vertical field of view in radians\n * @param {number} aspect Aspect ratio. typically viewport width/height\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum, can be null or Infinity\n * @returns {mat4} out\n */\n\nexport function perspectiveZO(out, fovy, aspect, near, far) {\n var f = 1.0 / Math.tan(fovy / 2),\n nf;\n out[0] = f / aspect;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = f;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[11] = -1;\n out[12] = 0;\n out[13] = 0;\n out[15] = 0;\n\n if (far != null && far !== Infinity) {\n nf = 1 / (near - far);\n out[10] = far * nf;\n out[14] = far * near * nf;\n } else {\n out[10] = -1;\n out[14] = -near;\n }\n\n return out;\n}\n/**\n * Generates a perspective projection matrix with the given field of view.\n * This is primarily useful for generating projection matrices to be used\n * with the still experiemental WebVR API.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {Object} fov Object containing the following values: upDegrees, downDegrees, leftDegrees, rightDegrees\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum\n * @returns {mat4} out\n */\n\nexport function perspectiveFromFieldOfView(out, fov, near, far) {\n var upTan = Math.tan(fov.upDegrees * Math.PI / 180.0);\n var downTan = Math.tan(fov.downDegrees * Math.PI / 180.0);\n var leftTan = Math.tan(fov.leftDegrees * Math.PI / 180.0);\n var rightTan = Math.tan(fov.rightDegrees * Math.PI / 180.0);\n var xScale = 2.0 / (leftTan + rightTan);\n var yScale = 2.0 / (upTan + downTan);\n out[0] = xScale;\n out[1] = 0.0;\n out[2] = 0.0;\n out[3] = 0.0;\n out[4] = 0.0;\n out[5] = yScale;\n out[6] = 0.0;\n out[7] = 0.0;\n out[8] = -((leftTan - rightTan) * xScale * 0.5);\n out[9] = (upTan - downTan) * yScale * 0.5;\n out[10] = far / (near - far);\n out[11] = -1.0;\n out[12] = 0.0;\n out[13] = 0.0;\n out[14] = far * near / (near - far);\n out[15] = 0.0;\n return out;\n}\n/**\n * Generates a orthogonal projection matrix with the given bounds.\n * The near/far clip planes correspond to a normalized device coordinate Z range of [-1, 1],\n * which matches WebGL/OpenGL's clip volume.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} left Left bound of the frustum\n * @param {number} right Right bound of the frustum\n * @param {number} bottom Bottom bound of the frustum\n * @param {number} top Top bound of the frustum\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum\n * @returns {mat4} out\n */\n\nexport function orthoNO(out, left, right, bottom, top, near, far) {\n var lr = 1 / (left - right);\n var bt = 1 / (bottom - top);\n var nf = 1 / (near - far);\n out[0] = -2 * lr;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = -2 * bt;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 2 * nf;\n out[11] = 0;\n out[12] = (left + right) * lr;\n out[13] = (top + bottom) * bt;\n out[14] = (far + near) * nf;\n out[15] = 1;\n return out;\n}\n/**\n * Alias for {@link mat4.orthoNO}\n * @function\n */\n\nexport var ortho = orthoNO;\n/**\n * Generates a orthogonal projection matrix with the given bounds.\n * The near/far clip planes correspond to a normalized device coordinate Z range of [0, 1],\n * which matches WebGPU/Vulkan/DirectX/Metal's clip volume.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} left Left bound of the frustum\n * @param {number} right Right bound of the frustum\n * @param {number} bottom Bottom bound of the frustum\n * @param {number} top Top bound of the frustum\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum\n * @returns {mat4} out\n */\n\nexport function orthoZO(out, left, right, bottom, top, near, far) {\n var lr = 1 / (left - right);\n var bt = 1 / (bottom - top);\n var nf = 1 / (near - far);\n out[0] = -2 * lr;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = -2 * bt;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = nf;\n out[11] = 0;\n out[12] = (left + right) * lr;\n out[13] = (top + bottom) * bt;\n out[14] = near * nf;\n out[15] = 1;\n return out;\n}\n/**\n * Generates a look-at matrix with the given eye position, focal point, and up axis.\n * If you want a matrix that actually makes an object look at another object, you should use targetTo instead.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {ReadonlyVec3} eye Position of the viewer\n * @param {ReadonlyVec3} center Point the viewer is looking at\n * @param {ReadonlyVec3} up vec3 pointing up\n * @returns {mat4} out\n */\n\nexport function lookAt(out, eye, center, up) {\n var x0, x1, x2, y0, y1, y2, z0, z1, z2, len;\n var eyex = eye[0];\n var eyey = eye[1];\n var eyez = eye[2];\n var upx = up[0];\n var upy = up[1];\n var upz = up[2];\n var centerx = center[0];\n var centery = center[1];\n var centerz = center[2];\n\n if (Math.abs(eyex - centerx) < glMatrix.EPSILON && Math.abs(eyey - centery) < glMatrix.EPSILON && Math.abs(eyez - centerz) < glMatrix.EPSILON) {\n return identity(out);\n }\n\n z0 = eyex - centerx;\n z1 = eyey - centery;\n z2 = eyez - centerz;\n len = 1 / Math.hypot(z0, z1, z2);\n z0 *= len;\n z1 *= len;\n z2 *= len;\n x0 = upy * z2 - upz * z1;\n x1 = upz * z0 - upx * z2;\n x2 = upx * z1 - upy * z0;\n len = Math.hypot(x0, x1, x2);\n\n if (!len) {\n x0 = 0;\n x1 = 0;\n x2 = 0;\n } else {\n len = 1 / len;\n x0 *= len;\n x1 *= len;\n x2 *= len;\n }\n\n y0 = z1 * x2 - z2 * x1;\n y1 = z2 * x0 - z0 * x2;\n y2 = z0 * x1 - z1 * x0;\n len = Math.hypot(y0, y1, y2);\n\n if (!len) {\n y0 = 0;\n y1 = 0;\n y2 = 0;\n } else {\n len = 1 / len;\n y0 *= len;\n y1 *= len;\n y2 *= len;\n }\n\n out[0] = x0;\n out[1] = y0;\n out[2] = z0;\n out[3] = 0;\n out[4] = x1;\n out[5] = y1;\n out[6] = z1;\n out[7] = 0;\n out[8] = x2;\n out[9] = y2;\n out[10] = z2;\n out[11] = 0;\n out[12] = -(x0 * eyex + x1 * eyey + x2 * eyez);\n out[13] = -(y0 * eyex + y1 * eyey + y2 * eyez);\n out[14] = -(z0 * eyex + z1 * eyey + z2 * eyez);\n out[15] = 1;\n return out;\n}\n/**\n * Generates a matrix that makes something look at something else.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {ReadonlyVec3} eye Position of the viewer\n * @param {ReadonlyVec3} center Point the viewer is looking at\n * @param {ReadonlyVec3} up vec3 pointing up\n * @returns {mat4} out\n */\n\nexport function targetTo(out, eye, target, up) {\n var eyex = eye[0],\n eyey = eye[1],\n eyez = eye[2],\n upx = up[0],\n upy = up[1],\n upz = up[2];\n var z0 = eyex - target[0],\n z1 = eyey - target[1],\n z2 = eyez - target[2];\n var len = z0 * z0 + z1 * z1 + z2 * z2;\n\n if (len > 0) {\n len = 1 / Math.sqrt(len);\n z0 *= len;\n z1 *= len;\n z2 *= len;\n }\n\n var x0 = upy * z2 - upz * z1,\n x1 = upz * z0 - upx * z2,\n x2 = upx * z1 - upy * z0;\n len = x0 * x0 + x1 * x1 + x2 * x2;\n\n if (len > 0) {\n len = 1 / Math.sqrt(len);\n x0 *= len;\n x1 *= len;\n x2 *= len;\n }\n\n out[0] = x0;\n out[1] = x1;\n out[2] = x2;\n out[3] = 0;\n out[4] = z1 * x2 - z2 * x1;\n out[5] = z2 * x0 - z0 * x2;\n out[6] = z0 * x1 - z1 * x0;\n out[7] = 0;\n out[8] = z0;\n out[9] = z1;\n out[10] = z2;\n out[11] = 0;\n out[12] = eyex;\n out[13] = eyey;\n out[14] = eyez;\n out[15] = 1;\n return out;\n}\n/**\n * Returns a string representation of a mat4\n *\n * @param {ReadonlyMat4} a matrix to represent as a string\n * @returns {String} string representation of the matrix\n */\n\nexport function str(a) {\n return \"mat4(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \", \" + a[3] + \", \" + a[4] + \", \" + a[5] + \", \" + a[6] + \", \" + a[7] + \", \" + a[8] + \", \" + a[9] + \", \" + a[10] + \", \" + a[11] + \", \" + a[12] + \", \" + a[13] + \", \" + a[14] + \", \" + a[15] + \")\";\n}\n/**\n * Returns Frobenius norm of a mat4\n *\n * @param {ReadonlyMat4} a the matrix to calculate Frobenius norm of\n * @returns {Number} Frobenius norm\n */\n\nexport function frob(a) {\n return Math.hypot(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15]);\n}\n/**\n * Adds two mat4's\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the first operand\n * @param {ReadonlyMat4} b the second operand\n * @returns {mat4} out\n */\n\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n out[3] = a[3] + b[3];\n out[4] = a[4] + b[4];\n out[5] = a[5] + b[5];\n out[6] = a[6] + b[6];\n out[7] = a[7] + b[7];\n out[8] = a[8] + b[8];\n out[9] = a[9] + b[9];\n out[10] = a[10] + b[10];\n out[11] = a[11] + b[11];\n out[12] = a[12] + b[12];\n out[13] = a[13] + b[13];\n out[14] = a[14] + b[14];\n out[15] = a[15] + b[15];\n return out;\n}\n/**\n * Subtracts matrix b from matrix a\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the first operand\n * @param {ReadonlyMat4} b the second operand\n * @returns {mat4} out\n */\n\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n out[3] = a[3] - b[3];\n out[4] = a[4] - b[4];\n out[5] = a[5] - b[5];\n out[6] = a[6] - b[6];\n out[7] = a[7] - b[7];\n out[8] = a[8] - b[8];\n out[9] = a[9] - b[9];\n out[10] = a[10] - b[10];\n out[11] = a[11] - b[11];\n out[12] = a[12] - b[12];\n out[13] = a[13] - b[13];\n out[14] = a[14] - b[14];\n out[15] = a[15] - b[15];\n return out;\n}\n/**\n * Multiply each element of the matrix by a scalar.\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to scale\n * @param {Number} b amount to scale the matrix's elements by\n * @returns {mat4} out\n */\n\nexport function multiplyScalar(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n out[3] = a[3] * b;\n out[4] = a[4] * b;\n out[5] = a[5] * b;\n out[6] = a[6] * b;\n out[7] = a[7] * b;\n out[8] = a[8] * b;\n out[9] = a[9] * b;\n out[10] = a[10] * b;\n out[11] = a[11] * b;\n out[12] = a[12] * b;\n out[13] = a[13] * b;\n out[14] = a[14] * b;\n out[15] = a[15] * b;\n return out;\n}\n/**\n * Adds two mat4's after multiplying each element of the second operand by a scalar value.\n *\n * @param {mat4} out the receiving vector\n * @param {ReadonlyMat4} a the first operand\n * @param {ReadonlyMat4} b the second operand\n * @param {Number} scale the amount to scale b's elements by before adding\n * @returns {mat4} out\n */\n\nexport function multiplyScalarAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n out[3] = a[3] + b[3] * scale;\n out[4] = a[4] + b[4] * scale;\n out[5] = a[5] + b[5] * scale;\n out[6] = a[6] + b[6] * scale;\n out[7] = a[7] + b[7] * scale;\n out[8] = a[8] + b[8] * scale;\n out[9] = a[9] + b[9] * scale;\n out[10] = a[10] + b[10] * scale;\n out[11] = a[11] + b[11] * scale;\n out[12] = a[12] + b[12] * scale;\n out[13] = a[13] + b[13] * scale;\n out[14] = a[14] + b[14] * scale;\n out[15] = a[15] + b[15] * scale;\n return out;\n}\n/**\n * Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===)\n *\n * @param {ReadonlyMat4} a The first matrix.\n * @param {ReadonlyMat4} b The second matrix.\n * @returns {Boolean} True if the matrices are equal, false otherwise.\n */\n\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3] && a[4] === b[4] && a[5] === b[5] && a[6] === b[6] && a[7] === b[7] && a[8] === b[8] && a[9] === b[9] && a[10] === b[10] && a[11] === b[11] && a[12] === b[12] && a[13] === b[13] && a[14] === b[14] && a[15] === b[15];\n}\n/**\n * Returns whether or not the matrices have approximately the same elements in the same position.\n *\n * @param {ReadonlyMat4} a The first matrix.\n * @param {ReadonlyMat4} b The second matrix.\n * @returns {Boolean} True if the matrices are equal, false otherwise.\n */\n\nexport function equals(a, b) {\n var a0 = a[0],\n a1 = a[1],\n a2 = a[2],\n a3 = a[3];\n var a4 = a[4],\n a5 = a[5],\n a6 = a[6],\n a7 = a[7];\n var a8 = a[8],\n a9 = a[9],\n a10 = a[10],\n a11 = a[11];\n var a12 = a[12],\n a13 = a[13],\n a14 = a[14],\n a15 = a[15];\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3];\n var b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7];\n var b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11];\n var b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)) && Math.abs(a3 - b3) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a3), Math.abs(b3)) && Math.abs(a4 - b4) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a4), Math.abs(b4)) && Math.abs(a5 - b5) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a5), Math.abs(b5)) && Math.abs(a6 - b6) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a6), Math.abs(b6)) && Math.abs(a7 - b7) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a7), Math.abs(b7)) && Math.abs(a8 - b8) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a8), Math.abs(b8)) && Math.abs(a9 - b9) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a9), Math.abs(b9)) && Math.abs(a10 - b10) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a10), Math.abs(b10)) && Math.abs(a11 - b11) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a11), Math.abs(b11)) && Math.abs(a12 - b12) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a12), Math.abs(b12)) && Math.abs(a13 - b13) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a13), Math.abs(b13)) && Math.abs(a14 - b14) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a14), Math.abs(b14)) && Math.abs(a15 - b15) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a15), Math.abs(b15));\n}\n/**\n * Alias for {@link mat4.multiply}\n * @function\n */\n\nexport var mul = multiply;\n/**\n * Alias for {@link mat4.subtract}\n * @function\n */\n\nexport var sub = subtract;","import * as glMatrix from \"./common.js\";\n/**\n * 3 Dimensional Vector\n * @module vec3\n */\n\n/**\n * Creates a new, empty vec3\n *\n * @returns {vec3} a new 3D vector\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(3);\n\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n }\n\n return out;\n}\n/**\n * Creates a new vec3 initialized with values from an existing vector\n *\n * @param {ReadonlyVec3} a vector to clone\n * @returns {vec3} a new 3D vector\n */\n\nexport function clone(a) {\n var out = new glMatrix.ARRAY_TYPE(3);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n return out;\n}\n/**\n * Calculates the length of a vec3\n *\n * @param {ReadonlyVec3} a vector to calculate length of\n * @returns {Number} length of a\n */\n\nexport function length(a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n return Math.hypot(x, y, z);\n}\n/**\n * Creates a new vec3 initialized with the given values\n *\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @returns {vec3} a new 3D vector\n */\n\nexport function fromValues(x, y, z) {\n var out = new glMatrix.ARRAY_TYPE(3);\n out[0] = x;\n out[1] = y;\n out[2] = z;\n return out;\n}\n/**\n * Copy the values from one vec3 to another\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the source vector\n * @returns {vec3} out\n */\n\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n return out;\n}\n/**\n * Set the components of a vec3 to the given values\n *\n * @param {vec3} out the receiving vector\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @returns {vec3} out\n */\n\nexport function set(out, x, y, z) {\n out[0] = x;\n out[1] = y;\n out[2] = z;\n return out;\n}\n/**\n * Adds two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n return out;\n}\n/**\n * Subtracts vector b from vector a\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n return out;\n}\n/**\n * Multiplies two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function multiply(out, a, b) {\n out[0] = a[0] * b[0];\n out[1] = a[1] * b[1];\n out[2] = a[2] * b[2];\n return out;\n}\n/**\n * Divides two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function divide(out, a, b) {\n out[0] = a[0] / b[0];\n out[1] = a[1] / b[1];\n out[2] = a[2] / b[2];\n return out;\n}\n/**\n * Math.ceil the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to ceil\n * @returns {vec3} out\n */\n\nexport function ceil(out, a) {\n out[0] = Math.ceil(a[0]);\n out[1] = Math.ceil(a[1]);\n out[2] = Math.ceil(a[2]);\n return out;\n}\n/**\n * Math.floor the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to floor\n * @returns {vec3} out\n */\n\nexport function floor(out, a) {\n out[0] = Math.floor(a[0]);\n out[1] = Math.floor(a[1]);\n out[2] = Math.floor(a[2]);\n return out;\n}\n/**\n * Returns the minimum of two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function min(out, a, b) {\n out[0] = Math.min(a[0], b[0]);\n out[1] = Math.min(a[1], b[1]);\n out[2] = Math.min(a[2], b[2]);\n return out;\n}\n/**\n * Returns the maximum of two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function max(out, a, b) {\n out[0] = Math.max(a[0], b[0]);\n out[1] = Math.max(a[1], b[1]);\n out[2] = Math.max(a[2], b[2]);\n return out;\n}\n/**\n * Math.round the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to round\n * @returns {vec3} out\n */\n\nexport function round(out, a) {\n out[0] = Math.round(a[0]);\n out[1] = Math.round(a[1]);\n out[2] = Math.round(a[2]);\n return out;\n}\n/**\n * Scales a vec3 by a scalar number\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the vector to scale\n * @param {Number} b amount to scale the vector by\n * @returns {vec3} out\n */\n\nexport function scale(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n return out;\n}\n/**\n * Adds two vec3's after scaling the second operand by a scalar value\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @param {Number} scale the amount to scale b by before adding\n * @returns {vec3} out\n */\n\nexport function scaleAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n return out;\n}\n/**\n * Calculates the euclidian distance between two vec3's\n *\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {Number} distance between a and b\n */\n\nexport function distance(a, b) {\n var x = b[0] - a[0];\n var y = b[1] - a[1];\n var z = b[2] - a[2];\n return Math.hypot(x, y, z);\n}\n/**\n * Calculates the squared euclidian distance between two vec3's\n *\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {Number} squared distance between a and b\n */\n\nexport function squaredDistance(a, b) {\n var x = b[0] - a[0];\n var y = b[1] - a[1];\n var z = b[2] - a[2];\n return x * x + y * y + z * z;\n}\n/**\n * Calculates the squared length of a vec3\n *\n * @param {ReadonlyVec3} a vector to calculate squared length of\n * @returns {Number} squared length of a\n */\n\nexport function squaredLength(a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n return x * x + y * y + z * z;\n}\n/**\n * Negates the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to negate\n * @returns {vec3} out\n */\n\nexport function negate(out, a) {\n out[0] = -a[0];\n out[1] = -a[1];\n out[2] = -a[2];\n return out;\n}\n/**\n * Returns the inverse of the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to invert\n * @returns {vec3} out\n */\n\nexport function inverse(out, a) {\n out[0] = 1.0 / a[0];\n out[1] = 1.0 / a[1];\n out[2] = 1.0 / a[2];\n return out;\n}\n/**\n * Normalize a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to normalize\n * @returns {vec3} out\n */\n\nexport function normalize(out, a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n var len = x * x + y * y + z * z;\n\n if (len > 0) {\n //TODO: evaluate use of glm_invsqrt here?\n len = 1 / Math.sqrt(len);\n }\n\n out[0] = a[0] * len;\n out[1] = a[1] * len;\n out[2] = a[2] * len;\n return out;\n}\n/**\n * Calculates the dot product of two vec3's\n *\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {Number} dot product of a and b\n */\n\nexport function dot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n}\n/**\n * Computes the cross product of two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function cross(out, a, b) {\n var ax = a[0],\n ay = a[1],\n az = a[2];\n var bx = b[0],\n by = b[1],\n bz = b[2];\n out[0] = ay * bz - az * by;\n out[1] = az * bx - ax * bz;\n out[2] = ax * by - ay * bx;\n return out;\n}\n/**\n * Performs a linear interpolation between two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {vec3} out\n */\n\nexport function lerp(out, a, b, t) {\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n out[0] = ax + t * (b[0] - ax);\n out[1] = ay + t * (b[1] - ay);\n out[2] = az + t * (b[2] - az);\n return out;\n}\n/**\n * Performs a hermite interpolation with two control points\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @param {ReadonlyVec3} c the third operand\n * @param {ReadonlyVec3} d the fourth operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {vec3} out\n */\n\nexport function hermite(out, a, b, c, d, t) {\n var factorTimes2 = t * t;\n var factor1 = factorTimes2 * (2 * t - 3) + 1;\n var factor2 = factorTimes2 * (t - 2) + t;\n var factor3 = factorTimes2 * (t - 1);\n var factor4 = factorTimes2 * (3 - 2 * t);\n out[0] = a[0] * factor1 + b[0] * factor2 + c[0] * factor3 + d[0] * factor4;\n out[1] = a[1] * factor1 + b[1] * factor2 + c[1] * factor3 + d[1] * factor4;\n out[2] = a[2] * factor1 + b[2] * factor2 + c[2] * factor3 + d[2] * factor4;\n return out;\n}\n/**\n * Performs a bezier interpolation with two control points\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @param {ReadonlyVec3} c the third operand\n * @param {ReadonlyVec3} d the fourth operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {vec3} out\n */\n\nexport function bezier(out, a, b, c, d, t) {\n var inverseFactor = 1 - t;\n var inverseFactorTimesTwo = inverseFactor * inverseFactor;\n var factorTimes2 = t * t;\n var factor1 = inverseFactorTimesTwo * inverseFactor;\n var factor2 = 3 * t * inverseFactorTimesTwo;\n var factor3 = 3 * factorTimes2 * inverseFactor;\n var factor4 = factorTimes2 * t;\n out[0] = a[0] * factor1 + b[0] * factor2 + c[0] * factor3 + d[0] * factor4;\n out[1] = a[1] * factor1 + b[1] * factor2 + c[1] * factor3 + d[1] * factor4;\n out[2] = a[2] * factor1 + b[2] * factor2 + c[2] * factor3 + d[2] * factor4;\n return out;\n}\n/**\n * Generates a random vector with the given scale\n *\n * @param {vec3} out the receiving vector\n * @param {Number} [scale] Length of the resulting vector. If ommitted, a unit vector will be returned\n * @returns {vec3} out\n */\n\nexport function random(out, scale) {\n scale = scale || 1.0;\n var r = glMatrix.RANDOM() * 2.0 * Math.PI;\n var z = glMatrix.RANDOM() * 2.0 - 1.0;\n var zScale = Math.sqrt(1.0 - z * z) * scale;\n out[0] = Math.cos(r) * zScale;\n out[1] = Math.sin(r) * zScale;\n out[2] = z * scale;\n return out;\n}\n/**\n * Transforms the vec3 with a mat4.\n * 4th vector component is implicitly '1'\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the vector to transform\n * @param {ReadonlyMat4} m matrix to transform with\n * @returns {vec3} out\n */\n\nexport function transformMat4(out, a, m) {\n var x = a[0],\n y = a[1],\n z = a[2];\n var w = m[3] * x + m[7] * y + m[11] * z + m[15];\n w = w || 1.0;\n out[0] = (m[0] * x + m[4] * y + m[8] * z + m[12]) / w;\n out[1] = (m[1] * x + m[5] * y + m[9] * z + m[13]) / w;\n out[2] = (m[2] * x + m[6] * y + m[10] * z + m[14]) / w;\n return out;\n}\n/**\n * Transforms the vec3 with a mat3.\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the vector to transform\n * @param {ReadonlyMat3} m the 3x3 matrix to transform with\n * @returns {vec3} out\n */\n\nexport function transformMat3(out, a, m) {\n var x = a[0],\n y = a[1],\n z = a[2];\n out[0] = x * m[0] + y * m[3] + z * m[6];\n out[1] = x * m[1] + y * m[4] + z * m[7];\n out[2] = x * m[2] + y * m[5] + z * m[8];\n return out;\n}\n/**\n * Transforms the vec3 with a quat\n * Can also be used for dual quaternions. (Multiply it with the real part)\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the vector to transform\n * @param {ReadonlyQuat} q quaternion to transform with\n * @returns {vec3} out\n */\n\nexport function transformQuat(out, a, q) {\n // benchmarks: https://jsperf.com/quaternion-transform-vec3-implementations-fixed\n var qx = q[0],\n qy = q[1],\n qz = q[2],\n qw = q[3];\n var x = a[0],\n y = a[1],\n z = a[2]; // var qvec = [qx, qy, qz];\n // var uv = vec3.cross([], qvec, a);\n\n var uvx = qy * z - qz * y,\n uvy = qz * x - qx * z,\n uvz = qx * y - qy * x; // var uuv = vec3.cross([], qvec, uv);\n\n var uuvx = qy * uvz - qz * uvy,\n uuvy = qz * uvx - qx * uvz,\n uuvz = qx * uvy - qy * uvx; // vec3.scale(uv, uv, 2 * w);\n\n var w2 = qw * 2;\n uvx *= w2;\n uvy *= w2;\n uvz *= w2; // vec3.scale(uuv, uuv, 2);\n\n uuvx *= 2;\n uuvy *= 2;\n uuvz *= 2; // return vec3.add(out, a, vec3.add(out, uv, uuv));\n\n out[0] = x + uvx + uuvx;\n out[1] = y + uvy + uuvy;\n out[2] = z + uvz + uuvz;\n return out;\n}\n/**\n * Rotate a 3D vector around the x-axis\n * @param {vec3} out The receiving vec3\n * @param {ReadonlyVec3} a The vec3 point to rotate\n * @param {ReadonlyVec3} b The origin of the rotation\n * @param {Number} rad The angle of rotation in radians\n * @returns {vec3} out\n */\n\nexport function rotateX(out, a, b, rad) {\n var p = [],\n r = []; //Translate point to the origin\n\n p[0] = a[0] - b[0];\n p[1] = a[1] - b[1];\n p[2] = a[2] - b[2]; //perform rotation\n\n r[0] = p[0];\n r[1] = p[1] * Math.cos(rad) - p[2] * Math.sin(rad);\n r[2] = p[1] * Math.sin(rad) + p[2] * Math.cos(rad); //translate to correct position\n\n out[0] = r[0] + b[0];\n out[1] = r[1] + b[1];\n out[2] = r[2] + b[2];\n return out;\n}\n/**\n * Rotate a 3D vector around the y-axis\n * @param {vec3} out The receiving vec3\n * @param {ReadonlyVec3} a The vec3 point to rotate\n * @param {ReadonlyVec3} b The origin of the rotation\n * @param {Number} rad The angle of rotation in radians\n * @returns {vec3} out\n */\n\nexport function rotateY(out, a, b, rad) {\n var p = [],\n r = []; //Translate point to the origin\n\n p[0] = a[0] - b[0];\n p[1] = a[1] - b[1];\n p[2] = a[2] - b[2]; //perform rotation\n\n r[0] = p[2] * Math.sin(rad) + p[0] * Math.cos(rad);\n r[1] = p[1];\n r[2] = p[2] * Math.cos(rad) - p[0] * Math.sin(rad); //translate to correct position\n\n out[0] = r[0] + b[0];\n out[1] = r[1] + b[1];\n out[2] = r[2] + b[2];\n return out;\n}\n/**\n * Rotate a 3D vector around the z-axis\n * @param {vec3} out The receiving vec3\n * @param {ReadonlyVec3} a The vec3 point to rotate\n * @param {ReadonlyVec3} b The origin of the rotation\n * @param {Number} rad The angle of rotation in radians\n * @returns {vec3} out\n */\n\nexport function rotateZ(out, a, b, rad) {\n var p = [],\n r = []; //Translate point to the origin\n\n p[0] = a[0] - b[0];\n p[1] = a[1] - b[1];\n p[2] = a[2] - b[2]; //perform rotation\n\n r[0] = p[0] * Math.cos(rad) - p[1] * Math.sin(rad);\n r[1] = p[0] * Math.sin(rad) + p[1] * Math.cos(rad);\n r[2] = p[2]; //translate to correct position\n\n out[0] = r[0] + b[0];\n out[1] = r[1] + b[1];\n out[2] = r[2] + b[2];\n return out;\n}\n/**\n * Get the angle between two 3D vectors\n * @param {ReadonlyVec3} a The first operand\n * @param {ReadonlyVec3} b The second operand\n * @returns {Number} The angle in radians\n */\n\nexport function angle(a, b) {\n var ax = a[0],\n ay = a[1],\n az = a[2],\n bx = b[0],\n by = b[1],\n bz = b[2],\n mag1 = Math.sqrt(ax * ax + ay * ay + az * az),\n mag2 = Math.sqrt(bx * bx + by * by + bz * bz),\n mag = mag1 * mag2,\n cosine = mag && dot(a, b) / mag;\n return Math.acos(Math.min(Math.max(cosine, -1), 1));\n}\n/**\n * Set the components of a vec3 to zero\n *\n * @param {vec3} out the receiving vector\n * @returns {vec3} out\n */\n\nexport function zero(out) {\n out[0] = 0.0;\n out[1] = 0.0;\n out[2] = 0.0;\n return out;\n}\n/**\n * Returns a string representation of a vector\n *\n * @param {ReadonlyVec3} a vector to represent as a string\n * @returns {String} string representation of the vector\n */\n\nexport function str(a) {\n return \"vec3(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \")\";\n}\n/**\n * Returns whether or not the vectors have exactly the same elements in the same position (when compared with ===)\n *\n * @param {ReadonlyVec3} a The first vector.\n * @param {ReadonlyVec3} b The second vector.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\n\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2];\n}\n/**\n * Returns whether or not the vectors have approximately the same elements in the same position.\n *\n * @param {ReadonlyVec3} a The first vector.\n * @param {ReadonlyVec3} b The second vector.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\n\nexport function equals(a, b) {\n var a0 = a[0],\n a1 = a[1],\n a2 = a[2];\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2];\n return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2));\n}\n/**\n * Alias for {@link vec3.subtract}\n * @function\n */\n\nexport var sub = subtract;\n/**\n * Alias for {@link vec3.multiply}\n * @function\n */\n\nexport var mul = multiply;\n/**\n * Alias for {@link vec3.divide}\n * @function\n */\n\nexport var div = divide;\n/**\n * Alias for {@link vec3.distance}\n * @function\n */\n\nexport var dist = distance;\n/**\n * Alias for {@link vec3.squaredDistance}\n * @function\n */\n\nexport var sqrDist = squaredDistance;\n/**\n * Alias for {@link vec3.length}\n * @function\n */\n\nexport var len = length;\n/**\n * Alias for {@link vec3.squaredLength}\n * @function\n */\n\nexport var sqrLen = squaredLength;\n/**\n * Perform some operation over an array of vec3s.\n *\n * @param {Array} a the array of vectors to iterate over\n * @param {Number} stride Number of elements between the start of each vec3. If 0 assumes tightly packed\n * @param {Number} offset Number of elements to skip at the beginning of the array\n * @param {Number} count Number of vec3s to iterate over. If 0 iterates over entire array\n * @param {Function} fn Function to call for each vector in the array\n * @param {Object} [arg] additional argument to pass to fn\n * @returns {Array} a\n * @function\n */\n\nexport var forEach = function () {\n var vec = create();\n return function (a, stride, offset, count, fn, arg) {\n var i, l;\n\n if (!stride) {\n stride = 3;\n }\n\n if (!offset) {\n offset = 0;\n }\n\n if (count) {\n l = Math.min(count * stride + offset, a.length);\n } else {\n l = a.length;\n }\n\n for (i = offset; i < l; i += stride) {\n vec[0] = a[i];\n vec[1] = a[i + 1];\n vec[2] = a[i + 2];\n fn(vec, vec, arg);\n a[i] = vec[0];\n a[i + 1] = vec[1];\n a[i + 2] = vec[2];\n }\n\n return a;\n };\n}();","export var Cull;\n(function (Cull) {\n function rotate(cull, x, y) {\n let { up, down, north, east, south, west } = cull;\n switch (y) {\n case 90:\n [north, east, south, west] = [east, south, west, north];\n break;\n case 180:\n [north, east, south, west] = [south, west, north, east];\n break;\n case 270:\n [north, east, south, west] = [west, north, east, south];\n }\n switch (x) {\n case 90:\n [up, north, down, south] = [north, down, south, up];\n break;\n case 180:\n [up, north, down, south] = [down, south, up, north];\n break;\n case 270:\n [up, north, down, south] = [south, up, north, down];\n }\n return { up, down, north, east, south, west };\n }\n Cull.rotate = rotate;\n function none() {\n return Object.create(null);\n }\n Cull.none = none;\n})(Cull || (Cull = {}));\n//# sourceMappingURL=Cull.js.map","import { vec3 } from 'gl-matrix';\nexport function mergeFloat32Arrays(...arrays) {\n let totalLength = 0;\n for (const a of arrays) {\n totalLength += a.length;\n }\n const result = new Float32Array(totalLength);\n let offset = 0;\n for (const a of arrays) {\n result.set(a, offset),\n offset += a.length;\n }\n return result;\n}\nexport function transformVectors(array, transformation) {\n const a = vec3.create();\n for (let i = 0; i < array.length; i += 3) {\n a[0] = array[i];\n a[1] = array[i + 1];\n a[2] = array[i + 2];\n vec3.transformMat4(a, a, transformation);\n array[i] = a[0];\n array[i + 1] = a[1];\n array[i + 2] = a[2];\n }\n}\n//# sourceMappingURL=Util.js.map","import { glMatrix, mat4, vec3 } from 'gl-matrix';\nimport { Identifier } from '../core/index.js';\nimport { mergeFloat32Arrays, transformVectors } from './Util.js';\nconst faceRotations = {\n 0: [0, 3, 2, 3, 2, 1, 0, 1],\n 90: [2, 3, 2, 1, 0, 1, 0, 3],\n 180: [2, 1, 0, 1, 0, 3, 2, 3],\n 270: [0, 1, 0, 3, 2, 3, 2, 1],\n};\nconst rotationAxis = {\n x: [1, 0, 0],\n y: [0, 1, 0],\n z: [0, 0, 1],\n};\nconst SQRT2 = 1.41421356237;\nconst rescaleAxis = {\n x: [1, SQRT2, SQRT2],\n y: [SQRT2, 1, SQRT2],\n z: [SQRT2, SQRT2, 1],\n};\nexport class BlockModel {\n id;\n parent;\n textures;\n elements;\n display;\n flattened;\n constructor(id, parent, textures, elements, display) {\n this.id = id;\n this.parent = parent;\n this.textures = textures;\n this.elements = elements;\n this.display = display;\n this.flattened = false;\n }\n getBuffers(uvProvider, offset, cull, tint) {\n const position = [];\n const texCoord = [];\n const tintColor = [];\n const index = [];\n for (const element of this.elements ?? []) {\n const buffers = this.getElementBuffers(element, offset, uvProvider, cull, tint);\n position.push(buffers.position);\n texCoord.push(...buffers.texCoord);\n tintColor.push(...buffers.tintColor);\n index.push(...buffers.index);\n offset += buffers.texCoord.length / 2;\n }\n return {\n position: mergeFloat32Arrays(...position),\n texCoord,\n tintColor,\n index,\n };\n }\n getElementBuffers(e, i, uvProvider, cull, tint) {\n const x0 = e.from[0];\n const y0 = e.from[1];\n const z0 = e.from[2];\n const x1 = e.to[0];\n const y1 = e.to[1];\n const z1 = e.to[2];\n const positions = [];\n const texCoords = [];\n const tintColors = [];\n const indices = [];\n const addFace = (face, uv, pos) => {\n const [u0, v0, u1, v1] = uvProvider.getTextureUV(this.getTexture(face.texture));\n const du = (u1 - u0) / 16;\n const dv = (v1 - v0) / 16;\n // Hack to remove stiching lines\n const duu = du / 16;\n const dvv = dv / 16;\n uv[0] = (face.uv?.[0] ?? uv[0]) * du + duu;\n uv[1] = (face.uv?.[1] ?? uv[1]) * dv + dvv;\n uv[2] = (face.uv?.[2] ?? uv[2]) * du - duu;\n uv[3] = (face.uv?.[3] ?? uv[3]) * dv - dvv;\n const r = faceRotations[face.rotation ?? 0];\n texCoords.push(u0 + uv[r[0]], v0 + uv[r[1]], u0 + uv[r[2]], v0 + uv[r[3]], u0 + uv[r[4]], v0 + uv[r[5]], u0 + uv[r[6]], v0 + uv[r[7]]);\n const t = (face.tintindex ?? -1) >= 0 ? (tint ?? [1, 1, 1]) : [1, 1, 1];\n tintColors.push(...t, ...t, ...t, ...t);\n positions.push(...pos);\n indices.push(i, i + 1, i + 2, i, i + 2, i + 3);\n i += 4;\n };\n if (e.faces?.up?.texture && (!e.faces.up.cullface || !cull[e.faces.up.cullface])) {\n addFace(e.faces.up, [x0, 16 - z1, x1, 16 - z0], [x0, y1, z1, x1, y1, z1, x1, y1, z0, x0, y1, z0]);\n }\n if (e.faces?.down?.texture && (!e.faces.down.cullface || !cull[e.faces.down.cullface])) {\n addFace(e.faces.down, [16 - z1, 16 - x1, 16 - z0, 16 - x0], [x0, y0, z0, x1, y0, z0, x1, y0, z1, x0, y0, z1]);\n }\n if (e.faces?.south?.texture && (!e.faces.south.cullface || !cull[e.faces.south.cullface])) {\n addFace(e.faces.south, [x0, 16 - y1, x1, 16 - y0], [x0, y0, z1, x1, y0, z1, x1, y1, z1, x0, y1, z1]);\n }\n if (e.faces?.north?.texture && (!e.faces.north.cullface || !cull[e.faces.north.cullface])) {\n addFace(e.faces.north, [16 - x1, 16 - y1, 16 - x0, 16 - y0], [x1, y0, z0, x0, y0, z0, x0, y1, z0, x1, y1, z0]);\n }\n if (e.faces?.east?.texture && (!e.faces.east.cullface || !cull[e.faces.east.cullface])) {\n addFace(e.faces.east, [16 - z1, 16 - y1, 16 - z0, 16 - y0], [x1, y0, z1, x1, y0, z0, x1, y1, z0, x1, y1, z1]);\n }\n if (e.faces?.west?.texture && (!e.faces.west.cullface || !cull[e.faces.west.cullface])) {\n addFace(e.faces.west, [z0, 16 - y1, z1, 16 - y0], [x0, y0, z0, x0, y0, z1, x0, y1, z1, x0, y1, z0]);\n }\n const t = mat4.create();\n mat4.identity(t);\n if (e.rotation) {\n const origin = vec3.fromValues(...e.rotation.origin);\n mat4.translate(t, t, origin);\n mat4.rotate(t, t, glMatrix.toRadian(e.rotation.angle), rotationAxis[e.rotation.axis]);\n if (e.rotation.rescale) {\n mat4.scale(t, t, rescaleAxis[e.rotation.axis]);\n }\n vec3.negate(origin, origin);\n mat4.translate(t, t, origin);\n }\n const posArray = new Float32Array(positions);\n transformVectors(posArray, t);\n return {\n position: posArray,\n texCoord: texCoords,\n tintColor: tintColors,\n index: indices,\n };\n }\n getTexture(textureRef) {\n while (textureRef.startsWith('#')) {\n textureRef = this.textures?.[textureRef.slice(1)] ?? '';\n }\n return Identifier.parse(textureRef);\n }\n flatten(accessor) {\n if (!this.flattened && this.parent) {\n const parent = accessor.getBlockModel(this.parent);\n if (!parent) {\n console.warn(`parent ${this.parent} does not exist!`);\n this.flattened = true;\n return;\n }\n parent.flatten(accessor);\n if (!this.elements) {\n this.elements = parent.elements;\n }\n if (!this.textures) {\n this.textures = {};\n }\n Object.keys(parent.textures ?? {}).forEach(t => {\n if (!this.textures[t]) {\n this.textures[t] = parent.textures[t];\n }\n });\n if (!this.display) {\n this.display = {};\n }\n Object.keys(parent.display ?? {}).forEach(k => {\n const l = k;\n if (!this.display[l]) {\n this.display[l] = parent.display[l];\n }\n else {\n Object.keys(parent.display[l] ?? {}).forEach(m => {\n const n = m;\n if (!this.display[l][n]) {\n this.display[l][n] = parent.display[l][n];\n }\n });\n }\n });\n this.flattened = true;\n }\n }\n static fromJson(id, data) {\n const parent = data.parent === undefined ? undefined : Identifier.parse(data.parent);\n return new BlockModel(Identifier.parse(id), parent, data.textures, data.elements, data.display);\n }\n}\n//# sourceMappingURL=BlockModel.js.map","export class ShaderProgram {\n gl;\n program;\n constructor(gl, vsSource, fsSource) {\n this.gl = gl;\n this.program = this.initShaderProgram(vsSource, fsSource);\n }\n getProgram() {\n return this.program;\n }\n initShaderProgram(vsSource, fsSource) {\n const vertexShader = this.loadShader(this.gl.VERTEX_SHADER, vsSource);\n const fragmentShader = this.loadShader(this.gl.FRAGMENT_SHADER, fsSource);\n const shaderProgram = this.gl.createProgram();\n this.gl.attachShader(shaderProgram, vertexShader);\n this.gl.attachShader(shaderProgram, fragmentShader);\n this.gl.linkProgram(shaderProgram);\n if (!this.gl.getProgramParameter(shaderProgram, this.gl.LINK_STATUS)) {\n throw new Error(`Unable to link shader program: ${this.gl.getProgramInfoLog(shaderProgram)}`);\n }\n return shaderProgram;\n }\n loadShader(type, source) {\n const shader = this.gl.createShader(type);\n this.gl.shaderSource(shader, source);\n this.gl.compileShader(shader);\n if (!this.gl.getShaderParameter(shader, this.gl.COMPILE_STATUS)) {\n const error = new Error(`Compiling ${type === this.gl.VERTEX_SHADER ? 'vertex' : 'fragment'} shader: ${this.gl.getShaderInfoLog(shader)}`);\n this.gl.deleteShader(shader);\n throw error;\n }\n return shader;\n }\n}\n//# sourceMappingURL=ShaderProgram.js.map","import { mat4 } from 'gl-matrix';\nimport { ShaderProgram } from './ShaderProgram.js';\nconst vsSource = `\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`;\nconst fsSource = `\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\t\tvec4 texColor = texture2D(sampler, vTexCoord);\n\t\tif(texColor.a < 0.01) discard;\n\t\tgl_FragColor = vec4(texColor.xyz * vTintColor * vLighting, texColor.a);\n }\n`;\nexport class Renderer {\n gl;\n shaderProgram;\n projMatrix;\n activeShader;\n constructor(gl) {\n this.gl = gl;\n this.shaderProgram = new ShaderProgram(gl, vsSource, fsSource).getProgram();\n this.activeShader = this.shaderProgram;\n this.projMatrix = this.getPerspective();\n this.initialize();\n }\n setViewport(x, y, width, height) {\n this.gl.viewport(x, y, width, height);\n this.projMatrix = this.getPerspective();\n }\n getPerspective() {\n const fieldOfView = 70 * Math.PI / 180;\n const aspect = this.gl.canvas.clientWidth / this.gl.canvas.clientHeight;\n const projMatrix = mat4.create();\n mat4.perspective(projMatrix, fieldOfView, aspect, 0.1, 500.0);\n return projMatrix;\n }\n initialize() {\n this.gl.enable(this.gl.DEPTH_TEST);\n this.gl.depthFunc(this.gl.LEQUAL);\n this.gl.enable(this.gl.BLEND);\n this.gl.blendFunc(this.gl.SRC_ALPHA, this.gl.ONE_MINUS_SRC_ALPHA);\n this.gl.enable(this.gl.CULL_FACE);\n this.gl.cullFace(this.gl.BACK);\n }\n setShader(shader) {\n this.gl.useProgram(shader);\n this.activeShader = shader;\n }\n setVertexAttr(name, size, buffer) {\n const location = this.gl.getAttribLocation(this.activeShader, name);\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, buffer);\n this.gl.vertexAttribPointer(location, size, this.gl.FLOAT, false, 0, 0);\n this.gl.enableVertexAttribArray(location);\n }\n setUniform(name, value) {\n const location = this.gl.getUniformLocation(this.activeShader, name);\n this.gl.uniformMatrix4fv(location, false, value);\n }\n setTexture(texture) {\n this.gl.activeTexture(this.gl.TEXTURE0);\n this.gl.bindTexture(this.gl.TEXTURE_2D, texture);\n }\n createBuffer(type, array) {\n const buffer = this.gl.createBuffer();\n if (buffer === null) {\n throw new Error('Renderer Error: Cannot create new buffer');\n }\n this.gl.bindBuffer(type, buffer);\n this.gl.bufferData(type, array, this.gl.DYNAMIC_DRAW);\n return buffer;\n }\n updateBuffer(buffer, type, array) {\n this.gl.bindBuffer(type, buffer);\n this.gl.bufferData(type, array, this.gl.STATIC_DRAW);\n }\n createAtlasTexture(image) {\n const texture = this.gl.createTexture();\n this.gl.bindTexture(this.gl.TEXTURE_2D, texture);\n this.gl.texImage2D(this.gl.TEXTURE_2D, 0, this.gl.RGBA, this.gl.RGBA, this.gl.UNSIGNED_BYTE, image);\n this.gl.generateMipmap(this.gl.TEXTURE_2D);\n this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_MAG_FILTER, this.gl.NEAREST);\n return texture;\n }\n prepareDraw(viewMatrix) {\n this.setUniform('mView', viewMatrix);\n this.setUniform('mProj', this.projMatrix);\n }\n drawBuffers(buffers) {\n this.setVertexAttr('vertPos', 3, buffers.position);\n this.setVertexAttr('texCoord', 2, buffers.texCoord);\n this.setVertexAttr('tintColor', 3, buffers.tintColor);\n this.setVertexAttr('normal', 3, buffers.normal);\n this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER, buffers.index);\n this.gl.drawElements(this.gl.TRIANGLES, buffers.length, this.gl.UNSIGNED_SHORT, 0);\n }\n}\n//# sourceMappingURL=Renderer.js.map","import { mat4, vec3 } from 'gl-matrix';\nimport { Identifier } from '../core/index.js';\nimport { BlockColors } from './BlockColors.js';\nimport { Cull } from './Cull.js';\nimport { Renderer } from './Renderer.js';\nimport { transformVectors } from './Util.js';\nexport class ItemRenderer extends Renderer {\n item;\n resources;\n buffers;\n tint;\n atlasTexture;\n constructor(gl, item, resources, options) {\n super(gl);\n this.item = item;\n this.resources = resources;\n this.buffers = this.getItemBuffers();\n this.tint = options?.tint;\n this.atlasTexture = this.createAtlasTexture(this.resources.getTextureAtlas());\n }\n setItem(item) {\n this.item = item;\n this.buffers = this.getItemBuffers();\n }\n getItemBuffers() {\n const model = this.resources.getBlockModel(this.item.withPrefix('item/'));\n if (!model) {\n throw new Error(`Item model for ${this.item.toString()} does not exist`);\n }\n let tint = this.tint;\n if (!tint && this.item.namespace === Identifier.DEFAULT_NAMESPACE) {\n tint = BlockColors[this.item.path]?.({});\n }\n const buffers = model.getBuffers(this.resources, 0, Cull.none(), tint);\n const t = mat4.create();\n mat4.identity(t);\n mat4.scale(t, t, [0.0625, 0.0625, 0.0625]);\n transformVectors(buffers.position, t);\n const normals = [];\n for (let i = 0; i < buffers.position.length; i += 12) {\n const a = vec3.fromValues(buffers.position[i], buffers.position[i + 1], buffers.position[i + 2]);\n const b = vec3.fromValues(buffers.position[i + 3], buffers.position[i + 4], buffers.position[i + 5]);\n const c = vec3.fromValues(buffers.position[i + 6], buffers.position[i + 7], buffers.position[i + 8]);\n vec3.subtract(b, b, a);\n vec3.subtract(c, c, a);\n vec3.cross(b, b, c);\n vec3.normalize(b, b);\n normals.push(...b, ...b, ...b, ...b);\n }\n return {\n position: this.createBuffer(this.gl.ARRAY_BUFFER, buffers.position),\n texCoord: this.createBuffer(this.gl.ARRAY_BUFFER, new Float32Array(buffers.texCoord)),\n tintColor: this.createBuffer(this.gl.ARRAY_BUFFER, new Float32Array(buffers.tintColor)),\n normal: this.createBuffer(this.gl.ARRAY_BUFFER, new Float32Array(normals)),\n index: this.createBuffer(this.gl.ELEMENT_ARRAY_BUFFER, new Uint16Array(buffers.index)),\n length: buffers.index.length,\n };\n }\n getPerspective() {\n const projMatrix = mat4.create();\n mat4.ortho(projMatrix, -1, 1, -1, 1, 0.1, 500.0);\n return projMatrix;\n }\n drawItem() {\n // TODO: use item model display\n const view = mat4.create();\n mat4.translate(view, view, [0, 0, -10]);\n mat4.rotate(view, view, Math.PI / 6, [1, 0, 0]);\n mat4.rotate(view, view, 3 * Math.PI / 4, [0, 1, 0]);\n mat4.translate(view, view, [-1 / 2, -1 / 2, -1 / 2]);\n this.setShader(this.shaderProgram);\n this.setTexture(this.atlasTexture);\n this.prepareDraw(view);\n this.drawBuffers(this.buffers);\n }\n}\n//# sourceMappingURL=ItemRenderer.js.map","import { isPowerOfTwo, upperPowerOfTwo } from '../math/index.js';\nexport class TextureAtlas {\n img;\n idMap;\n part;\n constructor(img, idMap) {\n this.img = img;\n this.idMap = idMap;\n if (!isPowerOfTwo(img.width) || !isPowerOfTwo(img.height)) {\n throw new Error(`Expected texture atlas dimensions to be powers of two, got ${img.width}x${img.height}.`);\n }\n this.part = 16 / img.width;\n }\n getTextureAtlas() {\n return this.img;\n }\n getTextureUV(id) {\n return this.idMap[id.toString()] ?? [0, 0, this.part, this.part];\n }\n static async fromBlobs(textures) {\n const initialWidth = Math.sqrt(Object.keys(textures).length + 1);\n const width = upperPowerOfTwo(initialWidth);\n const pixelWidth = width * 16;\n const part = 1 / width;\n const canvas = document.createElement('canvas');\n canvas.width = pixelWidth;\n canvas.height = pixelWidth;\n const ctx = canvas.getContext('2d');\n this.drawInvalidTexture(ctx);\n const idMap = {};\n let index = 1;\n await Promise.all(Object.keys(textures).map(async (id) => {\n const u = (index % width);\n const v = Math.floor(index / width);\n index += 1;\n idMap[id] = [part * u, part * v, part * u + part, part * v + part];\n const img = await createImageBitmap(textures[id]);\n ctx.drawImage(img, 0, 0, 16, 16, 16 * u, 16 * v, 16, 16);\n }));\n return new TextureAtlas(ctx.getImageData(0, 0, pixelWidth, pixelWidth), idMap);\n }\n static empty() {\n const canvas = document.createElement('canvas');\n canvas.width = 16;\n canvas.height = 16;\n const ctx = canvas.getContext('2d');\n TextureAtlas.drawInvalidTexture(ctx);\n return new TextureAtlas(ctx.getImageData(0, 0, 16, 16), {});\n }\n static drawInvalidTexture(ctx) {\n ctx.fillStyle = 'black';\n ctx.fillRect(0, 0, 16, 16);\n ctx.fillStyle = 'magenta';\n ctx.fillRect(0, 0, 8, 8);\n ctx.fillRect(8, 8, 8, 8);\n }\n}\n//# sourceMappingURL=TextureAtlas.js.map","import { Registry } from '../core/index.js';\nimport { BlendedNoise, computeIfAbsent, DensityFunction, Identifier, LegacyRandom, NoiseParameters, NoiseSettings, NormalNoise, XoroshiroRandom } from '../index.js';\nimport { Climate } from './biome/index.js';\nimport { NoiseRouter } from './NoiseRouter.js';\nimport { SurfaceSystem } from './SurfaceSystem.js';\nexport class RandomState {\n seed;\n noiseCache;\n randomCache;\n random;\n aquiferRandom;\n oreRandom;\n surfaceSystem;\n router;\n sampler;\n constructor(settings, seed) {\n this.seed = seed;\n this.noiseCache = new Map();\n this.randomCache = new Map();\n this.random = (settings.legacyRandomSource ? new LegacyRandom(seed) : XoroshiroRandom.create(seed)).forkPositional();\n this.aquiferRandom = this.random.fromHashOf(Identifier.create('aquifer').toString()).forkPositional();\n this.oreRandom = this.random.fromHashOf(Identifier.create('ore').toString()).forkPositional();\n this.surfaceSystem = new SurfaceSystem(settings.surfaceRule, settings.defaultBlock, seed);\n this.router = NoiseRouter.mapAll(settings.noiseRouter, this.createVisitor(settings.noise, settings.legacyRandomSource));\n this.sampler = Climate.Sampler.fromRouter(this.router);\n }\n createVisitor(noiseSettings, legacyRandom) {\n const mapped = new Map();\n const getNoise = (noise) => {\n const key = noise.key();\n if (key === undefined) {\n throw new Error('Cannot create noise without key');\n }\n if (legacyRandom) {\n if (key.equals(Identifier.create('temperature'))) {\n return new NormalNoise(new LegacyRandom(this.seed + BigInt(0)), NoiseParameters.create(-7, [1, 1]));\n }\n if (key.equals(Identifier.create('vegetation'))) {\n return new NormalNoise(new LegacyRandom(this.seed + BigInt(1)), NoiseParameters.create(-7, [1, 1]));\n }\n if (key.equals(Identifier.create('offset'))) {\n return new NormalNoise(this.random.fromHashOf('offset'), NoiseParameters.create(0, [0]));\n }\n }\n return this.getOrCreateNoise(key);\n };\n const visitor = {\n map: (fn) => {\n if (fn instanceof DensityFunction.HolderHolder) {\n const key = fn.holder.key();\n if (key !== undefined && mapped.has(key.toString())) {\n return mapped.get(key.toString());\n }\n else {\n const value = fn.holder.value().mapAll(visitor);\n if (key !== undefined) {\n mapped.set(key.toString(), value);\n }\n return value;\n }\n }\n if (fn instanceof DensityFunction.Interpolated) {\n return fn.withCellSize(NoiseSettings.cellWidth(noiseSettings), NoiseSettings.cellHeight(noiseSettings));\n }\n if (fn instanceof DensityFunction.ShiftedNoise) {\n return new DensityFunction.ShiftedNoise(fn.shiftX, fn.shiftY, fn.shiftZ, fn.xzScale, fn.yScale, fn.noiseData, getNoise(fn.noiseData));\n }\n if (fn instanceof DensityFunction.Noise) {\n return new DensityFunction.Noise(fn.xzScale, fn.yScale, fn.noiseData, getNoise(fn.noiseData));\n }\n if (fn instanceof DensityFunction.ShiftNoise) {\n return fn.withNewNoise(getNoise(fn.noiseData));\n }\n if (fn instanceof DensityFunction.WeirdScaledSampler) {\n return new DensityFunction.WeirdScaledSampler(fn.input, fn.rarityValueMapper, fn.noiseData, getNoise(fn.noiseData));\n }\n if (fn instanceof DensityFunction.OldBlendedNoise) {\n return new DensityFunction.OldBlendedNoise(fn.xzScale, fn.yScale, fn.xzFactor, fn.yFactor, fn.smearScaleMultiplier, new BlendedNoise(this.random.fromHashOf(Identifier.create('terrain').toString()), fn.xzScale, fn.yScale, fn.xzFactor, fn.yFactor, fn.smearScaleMultiplier));\n }\n if (fn instanceof DensityFunction.EndIslands) {\n return new DensityFunction.EndIslands(this.seed);\n }\n if (fn instanceof DensityFunction.Mapped) {\n return fn.withMinMax();\n }\n if (fn instanceof DensityFunction.Ap2) {\n return fn.withMinMax();\n }\n return fn;\n },\n };\n return visitor;\n }\n getOrCreateNoise(id) {\n const noises = Registry.REGISTRY.getOrThrow(Identifier.create('worldgen/noise'));\n return computeIfAbsent(this.noiseCache, id.toString(), key => new NormalNoise(this.random.fromHashOf(key), noises.getOrThrow(id)));\n }\n getOrCreateRandom(id) {\n return computeIfAbsent(this.randomCache, id.toString(), key => this.random.fromHashOf(key).forkPositional());\n }\n}\n//# sourceMappingURL=RandomState.js.map","import * as deepslate19 from 'deepslate/worldgen'\nimport type { VersionId } from '../services/index.js'\nimport { checkVersion, fetchAllPresets, fetchPreset } from '../services/index.js'\nimport { BiMap, clamp, computeIfAbsentAsync, deepClone, deepEqual, isObject, square } from '../Utils.js'\n\nexport type ProjectData = Record<string, Record<string, unknown>>\n\nconst DYNAMIC_REGISTRIES = new Set([\n\t'minecraft:worldgen/noise',\n\t'minecraft:worldgen/density_function',\n\t'minecraft:worldgen/noise_settings',\n])\n\nexport class Deepslate {\n\tprivate d = deepslate19\n\tprivate loadedVersion: VersionId | undefined\n\tprivate loadingVersion: VersionId | undefined\n\tprivate loadingPromise: Promise<void> | undefined\n\tprivate readonly deepslateCache = new Map<VersionId, typeof deepslate19>()\n\tprivate readonly Z = 0\n\tprivate readonly DEBUG = false\n\n\tprivate cacheState: unknown\n\tprivate settingsCache: NoiseSettings | undefined\n\tprivate generatorCache: ChunkGenerator | undefined\n\tprivate biomeSourceCache: BiomeSource | undefined\n\tprivate randomStateCache: deepslate19.RandomState | undefined\n\tprivate chunksCache: Chunk[] = []\n\tprivate biomeCache: Map<string, string> = new Map()\n\tprivate readonly presetCache: Map<string, unknown> = new Map()\n\n\tpublic async loadVersion(version: VersionId, project?: ProjectData) {\n\t\tif (this.loadedVersion === version) {\n\t\t\tthis.applyProjectData(version, project)\n\t\t\treturn\n\t\t}\n\t\tif (this.loadingVersion !== version || !this.loadingPromise) {\n\t\t\tthis.loadingVersion = version\n\t\t\tthis.loadingPromise = this.doLoadVersion(version, project)\n\t\t}\n\t\treturn this.loadingPromise\n\t}\n\n\tprivate async doLoadVersion(version: VersionId, project?: ProjectData) {\n\t\tconst cachedDeepslate = this.deepslateCache.get(version)\n\t\tif (cachedDeepslate) {\n\t\t\tthis.d = cachedDeepslate\n\t\t} else {\n\t\t\tif (checkVersion(version, '1.19')) {\n\t\t\t\tthis.d = deepslate19\n\t\t\t} else if (checkVersion(version, '1.18.2')) {\n\t\t\t\tthis.d = await import('deepslate-1.18.2') as any\n\t\t\t} else {\n\t\t\t\tthis.d = await import('deepslate-1.18') as any\n\t\t\t}\n\t\t\tif (checkVersion(version, '1.19')) {\n\t\t\t\tawait Promise.all(this.d.Registry.REGISTRY.map(async (id, registry) => {\n\t\t\t\t\tif (DYNAMIC_REGISTRIES.has(id.toString())) {\n\t\t\t\t\t\tconst entries = await fetchAllPresets(version, id.path)\n\t\t\t\t\t\tfor (const [key, value] of entries.entries()) {\n\t\t\t\t\t\t\tregistry.register(this.d.Identifier.parse(key), registry.parse(value), true)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}))\n\t\t\t} else if (checkVersion(version, '1.18.2')) {\n\t\t\t\tawait Promise.all([...DYNAMIC_REGISTRIES].map(async (id) => {\n\t\t\t\t\tconst entries = await fetchAllPresets(version, id.replace(/^minecraft:/, ''))\n\t\t\t\t\tfor (const [key, value] of entries.entries()) {\n\t\t\t\t\t\tif (id === 'minecraft:worldgen/noise') {\n\t\t\t\t\t\t\tthis.d.WorldgenRegistries.NOISE.register(this.d.Identifier.parse(key), this.d.NoiseParameters.fromJson(value), true)\n\t\t\t\t\t\t} else if (id === 'minecraft:worldgen/density_function') {\n\t\t\t\t\t\t\tthis.d.WorldgenRegistries.DENSITY_FUNCTION.register(this.d.Identifier.parse(key), this.d.DensityFunction.fromJson(value), true)\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\tthis.deepslateCache.set(version, this.d)\n\t\t}\n\t\tthis.applyProjectData(version, project)\n\t\tthis.loadedVersion = version\n\t\tthis.loadingVersion = undefined\n\t}\n\n\tprivate applyProjectData(version: VersionId, project?: ProjectData) {\n\t\tif (checkVersion(version, '1.19')) {\n\t\t\tthis.d.Registry.REGISTRY.forEach((id, registry) => {\n\t\t\t\tif (DYNAMIC_REGISTRIES.has(id.toString())) {\n\t\t\t\t\tregistry.clear()\n\t\t\t\t\tfor (const [key, value] of Object.entries(project?.[id.path] ?? {})) {\n\t\t\t\t\t\tregistry.register(this.d.Identifier.parse(key), registry.parse(value))\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n\n\tpublic async loadChunkGenerator(settings: unknown, biomeState: unknown, seed: bigint) {\n\t\tconst newCacheState = [settings, `${seed}`, biomeState]\n\t\tif (!deepEqual(this.cacheState, newCacheState)) {\n\t\t\tconst noiseSettings = this.createNoiseSettings(settings)\n\t\t\tconst biomeSource = await this.createBiomeSource(noiseSettings, biomeState, seed)\n\t\t\tconst chunkGenerator = this.isVersion('1.19')\n\t\t\t\t?\tnew this.d.NoiseChunkGenerator(biomeSource, noiseSettings)\n\t\t\t\t: new (this.d.NoiseChunkGenerator as any)(seed, biomeSource, noiseSettings)\n\t\t\tthis.settingsCache = noiseSettings.noise\n\t\t\tthis.generatorCache = chunkGenerator\n\t\t\tif (this.isVersion('1.19')) {\n\t\t\t\tthis.randomStateCache = new this.d.RandomState(noiseSettings, seed)\n\t\t\t} else {\n\t\t\t\tthis.randomStateCache = undefined\n\t\t\t}\n\t\t\tthis.biomeSourceCache = {\n\t\t\t\tgetBiome: (x, y, z) => biomeSource.getBiome(x, y, z, undefined!),\n\t\t\t}\n\t\t\tthis.chunksCache = []\n\t\t\tthis.biomeCache = new Map()\n\t\t\tthis.cacheState = deepClone(newCacheState)\n\t\t}\n\t}\n\n\tprivate async createBiomeSource(noiseSettings: deepslate19.NoiseGeneratorSettings, biomeState: unknown, seed: bigint): Promise<deepslate19.BiomeSource> {\n\t\tif (this.loadedVersion && isObject(biomeState) && typeof biomeState.preset === 'string') {\n\t\t\tconst version = this.loadedVersion\n\t\t\tconst preset = biomeState.preset.replace(/^minecraft:/, '')\n\t\t\tconst biomes = await computeIfAbsentAsync(this.presetCache, `${version}-${preset}`, async () => {\n\t\t\t\tconst dimension = await fetchPreset(version, 'dimension', preset === 'overworld' ? 'overworld' : 'the_nether')\n\t\t\t\treturn dimension.generator.biome_source.biomes\n\t\t\t})\n\t\t\tbiomeState = { type: biomeState.type, biomes }\n\t\t}\n\t\tif (this.isVersion('1.19')) {\n\t\t\treturn this.d.BiomeSource.fromJson(biomeState)\n\t\t} else {\n\t\t\tconst root = isObject(biomeState) ? biomeState : {}\n\t\t\tconst type = typeof root.type === 'string' ? root.type.replace(/^minecraft:/, '') : undefined\n\t\t\tswitch (type) {\n\t\t\t\tcase 'fixed':\n\t\t\t\t\treturn new (this.d as any).FixedBiome(this.isVersion('1.18.2') ? this.d.Identifier.parse(root.biome as string) : root.biome as any)\n\t\t\t\tcase 'checkerboard':\n\t\t\t\t\tconst shift = (root.scale ?? 2) + 2\n\t\t\t\t\tconst numBiomes = root.biomes?.length ?? 0\n\t\t\t\t\treturn { getBiome: (x: number, _y: number, z: number) => {\n\t\t\t\t\t\tconst i = (((x >> shift) + (z >> shift)) % numBiomes + numBiomes) % numBiomes\n\t\t\t\t\t\tconst biome = root.biomes?.[i]\n\t\t\t\t\t\treturn this.isVersion('1.18.2') ? this.d.Identifier.parse(biome) : biome\n\t\t\t\t\t} }\n\t\t\t\tcase 'multi_noise':\n\t\t\t\t\tif (this.isVersion('1.18')) {\n\t\t\t\t\t\tconst parameters = new this.d.Climate.Parameters(root.biomes.map((b: any) => {\n\t\t\t\t\t\t\tconst biome = this.isVersion('1.18.2') ? this.d.Identifier.parse(b.biome) : b.biome\n\t\t\t\t\t\t\treturn [this.d.Climate.ParamPoint.fromJson(b.parameters), () => biome]\n\t\t\t\t\t\t}))\n\t\t\t\t\t\tconst multiNoise = new (this.d as any).MultiNoise(parameters)\n\t\t\t\t\t\tlet sampler: any\n\t\t\t\t\t\tif (this.isVersion('1.18.2')) {\n\t\t\t\t\t\t\tconst router = this.d.NoiseRouter.create({\n\t\t\t\t\t\t\t\ttemperature: new this.d.DensityFunction.Noise(0.25, 0, (this.d as any).Noises.TEMPERATURE),\n\t\t\t\t\t\t\t\tvegetation: new this.d.DensityFunction.Noise(0.25, 0, (this.d as any).Noises.VEGETATION),\n\t\t\t\t\t\t\t\tcontinents: new this.d.DensityFunction.Noise(0.25, 0, (this.d as any).Noises.CONTINENTALNESS),\n\t\t\t\t\t\t\t\terosion: new this.d.DensityFunction.Noise(0.25, 0, (this.d as any).Noises.EROSION),\n\t\t\t\t\t\t\t\tridges: new this.d.DensityFunction.Noise(0.25, 0, (this.d as any).Noises.RIDGE),\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\tsampler = this.d.Climate.Sampler.fromRouter((this.d.NoiseRouter as any).withSettings(router, noiseSettings, seed))\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst noiseSampler = new (this.d as any).NoiseSampler(this.d.NoiseSettings.fromJson(null), true, seed, true)\n\t\t\t\t\t\t\tsampler = (x: number, y: number, z: number) => noiseSampler.sample(x, y, z)\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn { getBiome: (x: number, y: number, z: number) => {\n\t\t\t\t\t\t\treturn multiNoise.getBiome(x, y, z, sampler)\n\t\t\t\t\t\t} }\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst noise = ['altitude', 'temperature', 'humidity', 'weirdness']\n\t\t\t\t\t\t\t.map((id, i) => {\n\t\t\t\t\t\t\t\tconst config = root[`${id}_noise`]\n\t\t\t\t\t\t\t\tconfig.firstOctave = clamp(config.firstOctave ?? -7, -100, -1)\n\t\t\t\t\t\t\t\treturn new this.d.NormalNoise(new this.d.LegacyRandom(seed + BigInt(i)), config)\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\tif (!Array.isArray(root.biomes) || root.biomes.length === 0) {\n\t\t\t\t\t\t\treturn { getBiome: () => this.d.Identifier.create('unknown') }\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn { getBiome: (x: number, _y: number, z: number) => {\n\t\t\t\t\t\t\tconst n = noise.map(n => n.sample(x, z, 0))\n\t\t\t\t\t\t\tlet minDist = Infinity\n\t\t\t\t\t\t\tlet minBiome = 'unknown'\n\t\t\t\t\t\t\tfor (const { biome, parameters: p } of root.biomes) {\n\t\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\t\tif (dist < minDist) {\n\t\t\t\t\t\t\t\t\tminDist = dist\n\t\t\t\t\t\t\t\t\tminBiome = biome\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn minBiome as unknown as deepslate19.Identifier\n\t\t\t\t\t\t} }\n\t\t\t\t\t}\n\t\t\t\tdefault: throw new Error(`Unsupported biome source ${type}`)\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate createNoiseSettings(settings: unknown): deepslate19.NoiseGeneratorSettings {\n\t\tif (typeof settings === 'string') {\n\t\t\tif (this.isVersion('1.19')) {\n\t\t\t\treturn this.d.WorldgenRegistries.NOISE_SETTINGS.getOrThrow(this.d.Identifier.parse(settings))\n\t\t\t} else {\n\t\t\t\treturn this.d.NoiseGeneratorSettings.fromJson(undefined)\n\t\t\t}\n\t\t} else {\n\t\t\treturn this.d.NoiseGeneratorSettings.fromJson(settings)\n\t\t}\n\t}\n\n\tpublic generateChunks(minX: number, width: number, biome = 'unknown') {\n\t\tminX = Math.floor(minX)\n\t\tif (!this.settingsCache) {\n\t\t\tthrow new Error('Tried to generate chunks before settings are loaded')\n\t\t}\n\t\tconst minY = this.settingsCache.minY\n\t\tconst height = this.settingsCache.height\n\n\t\treturn [...Array(Math.ceil(width / 16) + 1)].map((_, i) => {\n\t\t\tconst x: number = (minX >> 4) + i\n\t\t\tconst cached = this.chunksCache.find(c => c.pos[0] === x)\n\t\t\tif (cached) {\n\t\t\t\treturn cached\n\t\t\t}\n\t\t\tconst chunk = new this.d.Chunk(minY, height, this.d.ChunkPos.create(x, this.Z >> 4))\n\t\t\tif (!this.generatorCache) {\n\t\t\t\tthrow new Error('Tried to generate chunks before generator is loaded')\n\t\t\t}\n\t\t\tif (checkVersion(this.loadedVersion!, '1.19')) {\n\t\t\t\tif (!this.randomStateCache) {\n\t\t\t\t\tthrow new Error('Tried to generate chunks before random state is loaded')\n\t\t\t\t}\n\t\t\t\tthis.generatorCache.fill(this.randomStateCache, chunk, true)\n\t\t\t\tthis.generatorCache.buildSurface(this.randomStateCache, chunk, biome)\n\t\t\t} else {\n\t\t\t\t(this.generatorCache as any).fill(chunk, true);\n\t\t\t\t(this.generatorCache as any).buildSurface(chunk, biome)\n\t\t\t}\n\t\t\tthis.chunksCache.push(chunk)\n\t\t\treturn chunk\n\t\t})\n\t}\n\n\tpublic fillBiomes(minX: number, maxX: number, minZ: number, maxZ: number, step = 1, y = 64) {\n\t\tif (!this.generatorCache || !this.settingsCache) {\n\t\t\tthrow new Error('Tried to fill biomes before generator is loaded')\n\t\t}\n\t\tconst quartY = (y - this.settingsCache.minY) >> 2\n\t\tconst minQuartX = minX >> 2\n\t\tconst maxQuartX = maxX >> 2\n\t\tconst minQuartZ = minZ >> 2\n\t\tconst maxQuartZ = maxZ >> 2\n\t\tconst countX = Math.floor((maxQuartX - minQuartX) / step)\n\t\tconst countZ = Math.floor((maxQuartZ - minQuartZ) / step)\n\n\t\tconst biomeIds = new BiMap<string, number>()\n\t\tconst data = new Int8Array(countX * countZ)\n\t\tlet biomeId = 0\n\t\tlet i = 0\n\n\t\tfor (let x = minQuartX; x < maxQuartX; x += step) {\n\t\t\tfor (let z = minQuartZ; z < maxQuartZ; z += step) {\n\t\t\t\tconst posKey = `${x}:${quartY}:${z}`\n\t\t\t\tlet biome = this.biomeCache.get(posKey)\n\t\t\t\tif (!biome) {\n\t\t\t\t\tif (this.DEBUG) {\n\t\t\t\t\t\tbiome = this.computeDebugBiome(x, z)\n\t\t\t\t\t} else if (this.isVersion('1.19')) {\n\t\t\t\t\t\tif (!this.randomStateCache) {\n\t\t\t\t\t\t\tthrow new Error('Tried to compute biomes before random state is loaded')\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbiome = this.generatorCache.computeBiome(this.randomStateCache, x, quartY, z).toString()\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif(!this.biomeSourceCache) {\n\t\t\t\t\t\t\tthrow new Error('Tried to compute biomes before biome source is loaded')\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbiome = this.biomeSourceCache.getBiome(x, quartY, z).toString()\n\t\t\t\t\t}\n\t\t\t\t\tthis.biomeCache.set(posKey, biome)\n\t\t\t\t}\n\t\t\t\tdata[i++] = biomeIds.computeIfAbsent(biome, () => biomeId++)\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tpalette: biomeIds.backward,\n\t\t\tdata,\n\t\t\twidth: countX,\n\t\t\theight: countZ,\n\t\t}\n\t}\n\n\tprivate computeDebugBiome(x: number, z: number) {\n\t\tif (x > 0) {\n\t\t\treturn z > 0 ? 'minecraft:plains' : 'minecraft:forest'\n\t\t} else {\n\t\t\treturn z > 0 ? 'minecraft:badlands' : 'minecraft:desert'\n\t\t}\n\t}\n\n\tpublic loadDensityFunction(state: unknown, seed: bigint) {\n\t\tif (this.isVersion('1.19')) {\n\t\t\tconst settings = this.d.NoiseGeneratorSettings.create({\n\t\t\t\tnoise: {\n\t\t\t\t\tminY: -64,\n\t\t\t\t\theight: 384,\n\t\t\t\t\txzSize: 1,\n\t\t\t\t\tySize: 2,\n\t\t\t\t},\n\t\t\t\tnoiseRouter: this.d.NoiseRouter.create({\n\t\t\t\t\tfinalDensity: this.d.DensityFunction.fromJson(state),\n\t\t\t\t}),\n\t\t\t})\n\t\t\tthis.settingsCache = settings.noise\n\t\t\tconst randomState = new this.d.RandomState(settings, seed)\n\t\t\treturn randomState.router.finalDensity\n\t\t} else {\n\t\t\tconst random = this.d.XoroshiroRandom.create(seed).forkPositional()\n\t\t\tconst settings = this.d.NoiseSettings.fromJson({\n\t\t\t\tmin_y: -64,\n\t\t\t\theight: 384,\n\t\t\t\tsize_horizontal: 1,\n\t\t\t\tsize_vertical: 2,\n\t\t\t\tsampling: { xz_scale: 1, y_scale: 1, xz_factor: 80, y_factor: 160 },\n\t\t\t\tbottom_slide: { target: 0.1171875, size: 3, offset: 0 },\n\t\t\t\ttop_slide: { target: -0.078125, size: 2, offset: 8 },\n\t\t\t\tterrain_shaper: { offset: 0.044, factor: 4, jaggedness: 0 },\n\t\t\t})\n\t\t\tthis.settingsCache = settings\n\t\t\tconst originalFn = this.d.DensityFunction.fromJson(state)\n\t\t\treturn originalFn.mapAll(new (this.d.NoiseRouter as any).Visitor(random, settings))\n\t\t}\n\t}\n\n\tpublic getNoiseSettings(): NoiseSettings {\n\t\tif (!this.settingsCache) {\n\t\t\tthrow new Error('Tried to access noise settings when they are not loaded')\n\t\t}\n\t\treturn this.settingsCache\n\t}\n\n\tpublic getBlockState(x: number, y: number) {\n\t\tx = Math.floor(x)\n\t\ty = Math.floor(y)\n\t\tconst chunk = this.chunksCache.find(c => this.d.ChunkPos.minBlockX(c.pos) <= x && this.d.ChunkPos.maxBlockX(c.pos) >= x)\n\t\treturn chunk?.getBlockState(this.d.BlockPos.create(x, y, this.Z))\n\t}\n\n\tprivate isVersion(min?: VersionId, max?: VersionId) {\n\t\tif (!this.loadedVersion) {\n\t\t\tthrow new Error('No deepslate version loaded')\n\t\t}\n\t\treturn checkVersion(this.loadedVersion, min, max)\n\t}\n}\n\nexport const DEEPSLATE = new Deepslate()\n\ninterface NoiseSettings {\n\tminY: number\n\theight: number\n}\n\ninterface ChunkGenerator {\n\tfill(randomState: deepslate19.RandomState, chunk: Chunk, onlyFirstZ?: boolean): void\n\tbuildSurface(randomState: deepslate19.RandomState, chunk: Chunk, biome: string): void\n\tcomputeBiome(randomState: deepslate19.RandomState, quartX: number, quartY: number, quartZ: number): deepslate19.Identifier\n}\n\ninterface Chunk {\n\treadonly pos: deepslate19.ChunkPos\n\tgetBlockState(pos: deepslate19.BlockPos): deepslate19.BlockState\n}\n\ninterface BiomeSource {\n\tgetBiome(x: number, y: number, z: number): deepslate19.Identifier\n}\n","import { LegacyRandom, PerlinNoise } from 'deepslate/worldgen'\nimport { clampedLerp, lerp2 } from '../../Utils.js'\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 { BlockState, clampedMap, DensityFunction } from 'deepslate/worldgen'\nimport type { Project } from '../contexts/Project.jsx'\nimport type { VersionId } from '../services/index.js'\nimport { checkVersion } from '../services/index.js'\nimport { DEEPSLATE } from './Deepslate.js'\nimport { NoiseChunkGenerator as OldNoiseChunkGenerator } from './noise/NoiseChunkGenerator.js'\n\nexport type NoiseSettingsOptions = {\n\tbiome?: string,\n\tbiomeScale?: number,\n\tbiomeDepth?: number,\n\toffset: number,\n\twidth: number,\n\tseed: bigint,\n\tversion: VersionId,\n\tproject: Project,\n}\n\nconst colors: Record<string, [number, number, number]> = {\n\t'minecraft:air': [150, 160, 170],\n\t'minecraft:water': [20, 80, 170],\n\t'minecraft:lava': [200, 100, 0],\n\t'minecraft:stone': [55, 55, 55],\n\t'minecraft:deepslate': [34, 34, 36],\n\t'minecraft:bedrock': [10, 10, 10],\n\t'minecraft:grass_block': [47, 120, 23],\n\t'minecraft:dirt': [64, 40, 8],\n\t'minecraft:gravel': [70, 70, 70],\n\t'minecraft:sand': [196, 180, 77],\n\t'minecraft:sandstone': [148, 135, 52],\n\t'minecraft:netherrack': [100, 40, 40],\n\t'minecraft:crimson_nylium': [144, 22, 22],\n\t'minecraft:warped_nylium': [28, 115, 113],\n\t'minecraft:basalt': [73, 74, 85],\n\t'minecraft:end_stone': [200, 200, 140],\n}\n\nexport async function noiseSettings(state: any, img: ImageData, options: NoiseSettingsOptions) {\n\tif (checkVersion(options.version, '1.18')) {\n\t\tawait DEEPSLATE.loadVersion(options.version, getProjectData(options.project))\n\t\tconst biomeSource = { type: 'fixed', biome: options.biome }\n\t\tawait DEEPSLATE.loadChunkGenerator(DataModel.unwrapLists(state), biomeSource, options.seed)\n\t\tDEEPSLATE.generateChunks(-options.offset, options.width)\n\t\tconst noise = DEEPSLATE.getNoiseSettings()\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 < noise.height; y += 1) {\n\t\t\t\tconst i = x * 4 + (noise.height-y-1) * 4 * img.width\n\t\t\t\tconst state = DEEPSLATE.getBlockState(x - options.offset, y + noise.minY) ?? BlockState.AIR\n\t\t\t\tconst color = colors[state.getName().toString()] ?? [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\nexport function getNoiseBlock(x: number, y: number) {\n\treturn DEEPSLATE.getBlockState(x, y)\n}\n\nexport async function densityFunction(state: any, img: ImageData, options: NoiseSettingsOptions) {\n\tawait DEEPSLATE.loadVersion(options.version, getProjectData(options.project))\n\tconst fn = DEEPSLATE.loadDensityFunction(DataModel.unwrapLists(state), options.seed)\n\tconst noise = DEEPSLATE.getNoiseSettings()\n\n\tconst arr = Array(options.width * noise.height)\n\tlet min = Infinity\n\tlet max = -Infinity\n\tfor (let x = 0; x < options.width; x += 1) {\n\t\tfor (let y = 0; y < noise.height; y += 1) {\n\t\t\tconst i = x + (noise.height-y-1) * options.width\n\t\t\tconst density = fn.compute(DensityFunction.context(x - options.offset, y, 0))\n\t\t\tmin = Math.min(min, density)\n\t\t\tmax = Math.max(max, density)\n\t\t\tarr[i] = density\n\t\t}\n\t}\n\n\tconst data = img.data\n\tfor (let i = 0; i < options.width * noise.height; i += 1) {\n\t\tconst color = Math.floor(clampedMap(arr[i], min, max, 0, 256))\n\t\tdata[4 * i] = color\n\t\tdata[4 * i + 1] = color\n\t\tdata[4 * i + 2] = color\n\t\tdata[4 * i + 3] = 255\n\t}\n}\n\nexport function getProjectData(project: Project) {\n\treturn Object.fromEntries(['worldgen/noise_settings', 'worldgen/noise', 'worldgen/density_function'].map(type => {\n\t\tconst resources = Object.fromEntries(\n\t\t\tproject.files.filter(file => file.type === type)\n\t\t\t\t.map<[string, unknown]>(file => [file.id, file.data])\n\t\t)\n\t\treturn [type, resources]\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","import { DataModel } from '@mcschema/core'\nimport type { Project } from '../contexts/Project.jsx'\nimport type { VersionId } from '../services/index.js'\nimport { stringToColor } from '../Utils.js'\nimport { DEEPSLATE } from './Deepslate.js'\nimport { getProjectData } from './NoiseSettings.js'\n\ntype Triple = [number, number, number]\ntype BiomeColors = Record<string, Triple>\ntype BiomeSourceOptions = {\n\tbiomeColors: BiomeColors,\n\toffset: [number, number],\n\tscale: number,\n\tres: number,\n\tseed: bigint,\n\tversion: VersionId,\n\tsettings: unknown,\n\tproject: Project,\n\ty: number,\n}\n\nexport async function biomeMap(state: any, img: ImageData, options: BiomeSourceOptions) {\n\tawait DEEPSLATE.loadVersion(options.version, getProjectData(options.project))\n\tawait DEEPSLATE.loadChunkGenerator(DataModel.unwrapLists(options.settings), DataModel.unwrapLists(state), options.seed)\n\n\tconst quartStep = Math.max(1, Math.round(options.scale))\n\tconst quartWidth = 200 * quartStep\n\n\tconst centerX = Math.round(-options.offset[0] * options.scale)\n\tconst centerZ = Math.round(-options.offset[1] * options.scale)\n\n\tconst minX = Math.floor(centerX - quartWidth / 2)\n\tconst minZ = Math.floor(centerZ - quartWidth / 2)\n\tconst maxX = minX + quartWidth\n\tconst maxZ = minZ + quartWidth\n\n\tconst { palette, data, width, height } = DEEPSLATE.fillBiomes(minX * 4, maxX * 4, minZ * 4, maxZ * 4, quartStep * options.res, options.y)\n\n\tlet x = 0\n\tlet z = 0\n\tfor (let i = 0; i < data.length; i += 1) {\n\t\tconst biome = palette.get(data[i])\n\t\tconst color = getBiomeColor(biome ?? '', options.biomeColors)\n\t\tconst j = z * width + x\n\t\timg.data[j * 4] = color[0]\n\t\timg.data[j * 4 + 1] = color[1]\n\t\timg.data[j * 4 + 2] = color[2]\n\t\timg.data[j * 4 + 3] = 255\n\n\t\tz += 1\n\t\tif (z >= height) {\n\t\t\tz = 0\n\t\t\tx += 1\n\t\t}\n\t}\n}\n\nexport async function getBiome(state: any, x: number, z: number, options: BiomeSourceOptions): Promise<{[k: string]: number | string} | undefined> {\n\tawait DEEPSLATE.loadVersion(options.version, getProjectData(options.project))\n\tawait DEEPSLATE.loadChunkGenerator(DataModel.unwrapLists(options.settings), DataModel.unwrapLists( state), options.seed)\n\n\tconst quartStep = Math.max(1, Math.round(options.scale))\n\n\tconst centerX = Math.round(-options.offset[0] * options.scale)\n\tconst centerZ = Math.round(-options.offset[1] * options.scale)\n\n\tconst xx = Math.floor(centerX + ((x - 100) * quartStep))\n\tconst zz = Math.floor(centerZ + ((z - 100) * quartStep))\n\n\tconsole.log('get biome', options.y)\n\n\tconst { palette, data } = DEEPSLATE.fillBiomes(xx * 4, xx * 4 + 4, zz * 4, zz * 4 + 4, 1, options.y)\n\tconst biome = palette.get(data[0])!\n\n\treturn {\n\t\tbiome,\n\t}\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\nexport const VanillaColors: Record<string, Triple> = {\n\t'minecraft:badlands': [217,69,21],\n\t'minecraft:badlands_plateau': [202,140,101],\n\t'minecraft:bamboo_jungle': [118,142,20],\n\t'minecraft:bamboo_jungle_hills': [59,71,10],\n\t'minecraft:basalt_deltas': [64,54,54],\n\t'minecraft:beach': [250,222,85],\n\t'minecraft:birch_forest': [48,116,68],\n\t'minecraft:birch_forest_hills': [31,95,50],\n\t'minecraft:cold_ocean': [32,32,112],\n\t'minecraft:crimson_forest': [221,8,8],\n\t'minecraft:dark_forest': [64,81,26],\n\t'minecraft:dark_forest_hills': [104,121,66],\n\t'minecraft:deep_cold_ocean': [32,32,56],\n\t'minecraft:deep_frozen_ocean': [64,64,144],\n\t'minecraft:deep_lukewarm_ocean': [0,0,64],\n\t'minecraft:deep_ocean': [0,0,48],\n\t'minecraft:deep_warm_ocean': [0,0,80],\n\t'minecraft:desert': [250,148,24],\n\t'minecraft:desert_hills': [210,95,18],\n\t'minecraft:desert_lakes': [255,188,64],\n\t'minecraft:end_barrens': [39,30,61],\n\t'minecraft:end_highlands': [232,244,178],\n\t'minecraft:end_midlands': [194,187,136],\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': [16,12,28],\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': [59,39,84],\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\t'minecraft:deep_dark': [10, 14, 19],\n\t'minecraft:mangrove_swamp': [36,196,142],\n}\n","import { DataModel } from '@mcschema/core'\nimport type { Random } from 'deepslate/worldgen'\nimport { LegacyRandom, PerlinNoise } from 'deepslate/worldgen'\nimport type { VersionId } from '../services/index.js'\nimport { checkVersion } from '../services/index.js'\nimport { clamp, isObject, stringToColor } from '../Utils.js'\n\ntype BlockPos = [number, number, number]\ntype Placement = [BlockPos, number]\n\ntype PlacementContext = {\n\tplacements: Placement[],\n\tfeatures: string[],\n\trandom: Random,\n\tbiomeInfoNoise: PerlinNoise,\n\tseaLevel: number,\n\tversion: VersionId,\n\tnextFloat(): number,\n\tnextInt(max: number): number,\n\tnextGaussian(): number,\n\tsampleInt(provider: any): number,\n}\n\nconst terrain = [50, 50, 51, 51, 52, 52, 53, 54, 56, 57, 57, 58, 58, 59, 60, 60, 60, 59, 59, 59, 60, 61, 61, 62, 63, 63, 64, 64, 64, 65, 65, 66, 66, 65, 65, 66, 66, 67, 67, 67, 68, 69, 71, 73, 74, 76, 79, 80, 81, 81, 82, 83, 83, 82, 82, 81, 81, 80, 80, 80, 81, 81, 82, 82] \n\nconst featureColors = [\n\t[255, 77, 54], // red\n\t[59, 118, 255], // blue\n\t[91, 207, 25], // green\n\t[217, 32, 245], // magenta\n\t[255, 209, 41], // yellow\n\t[52, 204, 209], // cyan\n]\n\nexport type DecoratorOptions = {\n\tsize: [number, number, number],\n\tseed: bigint,\n\tversion: VersionId,\n}\nexport function decorator(state: any, img: ImageData, options: DecoratorOptions) {\n\tconst random = new LegacyRandom(options.seed)\n\tconst ctx: PlacementContext = {\n\t\tplacements: [],\n\t\tfeatures: [],\n\t\trandom,\n\t\tbiomeInfoNoise: new PerlinNoise(random.fork(), 0, [1]),\n\t\tseaLevel: 63,\n\t\tversion: options.version,\n\t\tnextFloat: () => random.nextFloat(),\n\t\tnextInt: (max: number) => random.nextInt(max),\n\t\tnextGaussian: () => Math.sqrt(-2 * Math.log(1 - random.nextFloat())) * Math.cos(2 * Math.PI * random.nextFloat()),\n\t\tsampleInt(value) { return sampleInt(value, this) },\n\t}\n\n\tfor (let x = 0; x < options.size[0] / 16; x += 1) {\n\t\tfor (let z = 0; z < options.size[2] / 16; z += 1) {\n\t\t\tif (checkVersion(options.version, undefined, '1.17')) {\n\t\t\t\tgetPlacements([x * 16, 0, z * 16], DataModel.unwrapLists(state), ctx)\n\t\t\t} else {\n\t\t\t\tmodifyPlacement([x * 16, 0, z * 16], DataModel.unwrapLists(state.placement), ctx)\n\t\t\t}\n\t\t}\n\t}\n\n\tconst data = img.data\n\timg.data.fill(255)\n\n\tfor (const [pos, feature] of ctx.placements) {\n\t\tif (pos[0] < 0 || pos[1] < 0 || pos[2] < 0 || pos[0] >= options.size[0] || pos[1] >= options.size[1] || pos[2] >= options.size[2]) continue\n\t\tconst i = (pos[2] * (img.width * 4)) + (pos[0] * 4)\n\t\tconst color = feature < featureColors.length ? featureColors[feature] : stringToColor(ctx.features[feature])\n\t\tdata[i] = clamp(50, 205, color[0])\n\t\tdata[i + 1] = clamp(50, 205, color[1])\n\t\tdata[i + 2] = clamp(50, 205, color[2])\n\t\tdata[i + 3] = 255\n\t}\n\n\tfor (let x = 0; x < options.size[0]; x += 1) {\n\t\tfor (let y = 0; y < options.size[2]; y += 1) {\n\t\t\tif ((Math.floor(x / 16) + Math.floor(y / 16)) % 2 === 0) continue\n\t\t\tconst i = (y * (img.width * 4)) + (x * 4)\n\t\t\tfor (let j = 0; j < 3; j += 1) {\n\t\t\t\tdata[i + j] = 0.85 * data[i + j] \n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction normalize(id: string) {\n\treturn id.startsWith('minecraft:') ? id.slice(10) : id\n}\n\nfunction decorateY(pos: BlockPos, y: number): BlockPos[] {\n\treturn [[ pos[0], y, pos[2] ]]\n}\n\nfunction sampleInt(value: any, ctx: PlacementContext): number {\n\tif (typeof value === 'number') {\n\t\treturn value\n\t} else if (value.base) {\n\t\treturn value.base ?? 1 + ctx.nextInt(1 + (value.spread ?? 0))\n\t} else {\n\t\tswitch (normalize(value.type)) {\n\t\t\tcase 'constant': return value.value\n\t\t\tcase 'uniform': return value.value.min_inclusive + ctx.nextInt(value.value.max_inclusive - value.value.min_inclusive + 1)\n\t\t\tcase 'biased_to_bottom': return value.value.min_inclusive + ctx.nextInt(ctx.nextInt(value.value.max_inclusive - value.value.min_inclusive + 1) + 1)\n\t\t\tcase 'clamped': return clamp(ctx.sampleInt(value.value.source), value.value.min_inclusive, value.value.max_inclusive)\n\t\t\tcase 'clamped_normal':\n\t\t\t\tconst normal = value.value.mean + ctx.nextGaussian() * value.value.deviation\n\t\t\t\treturn Math.floor(clamp(value.value.min_inclusive, value.value.max_inclusive, normal))\n\t\t\tcase 'weighted_list':\n\t\t\t\tconst totalWeight = (value.distribution as any[]).reduce<number>((sum, e) => sum + e.weight, 0)\n\t\t\t\tlet i = ctx.nextInt(totalWeight)\n\t\t\t\tfor (const e of value.distribution) {\n\t\t\t\t\ti -= e.weight\n\t\t\t\t\tif (i < 0) return ctx.sampleInt(e.data)\n\t\t\t\t}\n\t\t\t\treturn 0\n\t\t}\n\t\treturn 1\n\t}\n}\n\nfunction resolveAnchor(anchor: any, _ctx: PlacementContext): number {\n\tif (!isObject(anchor)) throw new Error('Invalid vertical anchor')\n\tif (anchor.absolute) return anchor.absolute\n\tif (anchor.above_bottom) return anchor.above_bottom\n\tif (anchor.below_top) return 256 - anchor.below_top\n\tthrow new Error('Invalid vertical anchor')\n}\n\nfunction sampleHeight(height: any, ctx: PlacementContext): number {\n\tif (!isObject(height)) throw new Error('Invalid height provider')\n\tif (typeof height.type !== 'string') {\n\t\treturn resolveAnchor(height, ctx)\n\t}\n\tswitch (normalize(height.type)) {\n\t\tcase 'constant': return resolveAnchor(height.value, ctx)\n\t\tcase 'uniform': {\n\t\t\tconst min = resolveAnchor(height.min_inclusive, ctx)\n\t\t\tconst max = resolveAnchor(height.max_inclusive, ctx)\n\t\t\treturn min + ctx.nextInt(max - min + 1)\n\t\t}\n\t\tcase 'biased_to_bottom': {\n\t\t\tconst min = resolveAnchor(height.min_inclusive, ctx)\n\t\t\tconst max = resolveAnchor(height.max_inclusive, ctx)\n\t\t\tconst n = ctx.nextInt(max - min - (height.inner ?? 1) + 1)\n\t\t\treturn min + ctx.nextInt(n + (height.inner ?? 1))\n\t\t}\n\t\tcase 'very_biased_to_bottom': {\n\t\t\tconst min = resolveAnchor(height.min_inclusive, ctx)\n\t\t\tconst max = resolveAnchor(height.max_inclusive, ctx)\n\t\t\tconst inner = height.inner ?? 1\n\t\t\tconst n1 = min + inner + ctx.nextInt(max - min - inner + 1)\n\t\t\tconst n2 = min + ctx.nextInt(n1 - min)\n\t\t\treturn min + ctx.nextInt(n2 - min + inner)\n\t\t}\n\t\tcase 'trapezoid': {\n\t\t\tconst min = resolveAnchor(height.min_inclusive, ctx)\n\t\t\tconst max = resolveAnchor(height.max_inclusive, ctx)\n\t\t\tconst plateau = height.plateau ?? 0\n\t\t\tif (plateau >= max - min) {\n\t\t\t\treturn min + ctx.nextInt(max - min + 1)\n\t\t\t}\n\t\t\tconst n1 = (max - min - plateau) / 2\n\t\t\tconst n2 = (max - min) - n1\n\t\t\treturn min + ctx.nextInt(n2 + 1) + ctx.nextInt(n1 + 1)\n\t\t}\n\t\tdefault: throw new Error(`Invalid height provider ${height.type}`)\n\t}\n}\n\n// 1.17 and before\nfunction useFeature(s: string, ctx: PlacementContext) {\n\tconst i = ctx.features.indexOf(s)\n\tif (i != -1) return i\n\tctx.features.push(s)\n\treturn ctx.features.length - 1\n}\n\nfunction getPlacements(pos: BlockPos, feature: any, ctx: PlacementContext): void {\n\tif (typeof feature === 'string') {\n\t\tctx.placements.push([pos, useFeature(feature, ctx)])\n\t\treturn\n\t}\n\tconst type = normalize(feature?.type ?? 'no_op')\n\tconst featureFn = Features[type]\n\tif (featureFn) {\n\t\tfeatureFn(feature.config, pos, ctx)\n\t} else {\n\t\tctx.placements.push([pos, useFeature(JSON.stringify(feature), ctx)])\n\t}\n}\n\nfunction getPositions(pos: BlockPos, decorator: any, ctx: PlacementContext): BlockPos[] {\n\tconst type = normalize(decorator?.type ?? 'nope')\n\tconst decoratorFn = Decorators[type]\n\tif (!decoratorFn) {\n\t\treturn [pos]\n\t}\n\treturn decoratorFn(decorator?.config, pos, ctx)\n}\n\nconst Features: {\n\t[key: string]: (config: any, pos: BlockPos, ctx: PlacementContext) => void,\n} = {\n\tdecorated: (config, pos, ctx) => {\n\t\tconst positions = getPositions(pos, config?.decorator, ctx)\n\t\tpositions.forEach(p => getPlacements(p, config?.feature, ctx))\n\t},\n\trandom_boolean_selector: (config, pos, ctx) => {\n\t\tconst feature = ctx.nextFloat() < 0.5 ? config?.feature_true : config?.feature_false\n\t\tgetPlacements(pos, feature, ctx)\n\t},\n\trandom_selector: (config, pos, ctx) => {\n\t\tfor (const f of config?.features ?? []) {\n\t\t\tif (ctx.nextFloat() < (f?.chance ?? 0)) {\n\t\t\t\tgetPlacements(pos, f.feature, ctx)\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t\tgetPlacements(pos, config?.default, ctx)\n\t},\n\tsimple_random_selector: (config, pos, ctx) => {\n\t\tconst feature = config?.features?.[ctx.nextInt(config?.features?.length ?? 0)]\n\t\tgetPlacements(pos, feature, ctx)\n\t},\n}\n\nconst Decorators: {\n\t[key: string]: (config: any, pos: BlockPos, ctx: PlacementContext) => BlockPos[],\n} = {\n\tchance: (config, pos, ctx) => {\n\t\treturn ctx.nextFloat() < 1 / (config?.chance ?? 1) ? [pos] : []\n\t},\n\tcount: (config, pos, ctx) => {\n\t\treturn new Array(ctx.sampleInt(config?.count ?? 1)).fill(pos)\n\t},\n\tcount_extra: (config, pos, ctx) => {\n\t\tlet count = config?.count ?? 1\n\t\tif (ctx.nextFloat() < config.extra_chance ?? 0){\n\t\t\tcount += config.extra_count ?? 0\n\t\t}\n\t\treturn new Array(count).fill(pos)\n\t},\n\tcount_multilayer: (config, pos, ctx) => {\n\t\treturn new Array(ctx.sampleInt(config?.count ?? 1)).fill(pos)\n\t\t\t.map(p => [\n\t\t\t\tp[0] + ctx.nextInt(16),\n\t\t\t\tp[1], \n\t\t\t\tp[2] + ctx.nextInt(16),\n\t\t\t])\n\t},\n\tcount_noise: (config, pos, ctx) => {\n\t\tconst noise = ctx.biomeInfoNoise.sample(pos[0] / 200, 0, pos[2] / 200)\n\t\tconst count = noise < config.noise_level ? config.below_noise : config.above_noise\n\t\treturn new Array(count).fill(pos)\n\t},\n\tcount_noise_biased: (config, pos, ctx) => {\n\t\tconst factor = Math.max(1, config.noise_factor)\n\t\tconst noise = ctx.biomeInfoNoise.sample(pos[0] / factor, 0, pos[2] / factor)\n\t\tconst count = Math.max(0, Math.ceil((noise + (config.noise_offset ?? 0)) * config.noise_to_count_ratio))\n\t\treturn new Array(count).fill(pos)\n\t},\n\tdark_oak_tree: (_config, pos, ctx) => {\n\t\treturn [...new Array(16)].map((_, i) => {\n\t\t\tconst x = Math.floor(i / 4) * 4 + 1 + ctx.nextInt(3) + pos[0]\n\t\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, x)])\n\t\t\tconst z = Math.floor(i % 4) * 4 + 1 + ctx.nextInt(3) + pos[2]\n\t\t\treturn [x, y, z]\n\t\t})\n\t},\n\tdecorated: (config, pos, ctx) => {\n\t\treturn getPositions(pos, config?.outer, ctx).flatMap(p => {\n\t\t\treturn getPositions(p, config?.inner, ctx)\n\t\t})\n\t},\n\tdepth_average: (config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(config?.spread ?? 0) + ctx.nextInt(config?.spread ?? 0) - (config.spread ?? 0) + (config?.baseline ?? 0)\n\t\treturn decorateY(pos, y)\n\t},\n\temerald_ore: (_config, pos, ctx) => {\n\t\tconst count = 3 + ctx.nextInt(6)\n\t\treturn [...new Array(count)].map(() => [\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\t4 + ctx.nextInt(28),\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t])\n\t},\n\tfire: (config, pos, ctx) => {\n\t\tconst count = 1 + ctx.nextInt(ctx.nextInt(ctx.sampleInt(config?.count)))\n\t\treturn [...new Array(count)].map(() => [\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\tctx.nextInt(128),\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t])\n\t},\n\tglowstone: (config, pos, ctx) => {\n\t\tconst count = ctx.nextInt(1 + ctx.nextInt(ctx.sampleInt(config?.count)))\n\t\treturn [...new Array(count)].map(() => [\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\tctx.nextInt(128),\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t])\n\t},\n\theightmap: (_config, pos, ctx) => {\n\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, pos[0])])\n\t\treturn decorateY(pos, y)\n\t},\n\theightmap_spread_double: (_config, pos, ctx) => {\n\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, pos[0])])\n\t\treturn decorateY(pos, ctx.nextInt(y * 2))\n\t},\n\theightmap_world_surface: (_config, pos, ctx) => {\n\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, pos[0])])\n\t\treturn decorateY(pos, y)\n\t},\n\ticeberg: (_config, pos, ctx) => {\n\t\treturn [[\n\t\t\tpos[0] + 4 + ctx.nextInt(8),\n\t\t\tpos[1],\n\t\t\tpos[2] + 4 + ctx.nextInt(8),\n\t\t]]\n\t},\n\tlava_lake: (config, pos, ctx) => {\n\t\tif (ctx.nextInt((config.chance ?? 1) / 10) === 0) {\n\t\t\tconst y = ctx.nextInt(ctx.nextInt(256 - 8) + 8)\n\t\t\tif (y < ctx.seaLevel || ctx.nextInt((config?.chance ?? 1) / 8) == 0) {\n\t\t\t\tconst x = ctx.nextInt(16) + pos[0]\n\t\t\t\tconst z = ctx.nextInt(16) + pos[2]\n\t\t\t\treturn [[x, y, z]]\n\t\t\t}\n\t\t}\n\t\treturn []\n\t},\n\tnope: (_config, pos) => {\n\t\treturn [pos]\n\t},\n\trange: (config, pos, ctx) => {\n\t\tconst y = ctx.nextInt((config?.maximum ?? 1) - (config?.top_offset ?? 0)) + (config?.bottom_offset ?? 0)\n\t\treturn decorateY(pos, y)\n\t},\n\trange_biased: (config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(ctx.nextInt((config?.maximum ?? 1) - (config?.top_offset ?? 0)) + (config?.bottom_offset ?? 0))\n\t\treturn decorateY(pos, y)\n\t},\n\trange_very_biased: (config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(ctx.nextInt(ctx.nextInt((config?.maximum ?? 1) - (config?.top_offset ?? 0)) + (config?.bottom_offset ?? 0)) + (config?.bottom_offset ?? 0))\n\t\treturn decorateY(pos, y)\n\t},\n\tspread_32_above: (_config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(pos[1] + 32)\n\t\treturn decorateY(pos, y)\n\t},\n\ttop_solid_heightmap: (_config, pos) => {\n\t\tconst y = terrain[clamp(0, 63, pos[0])]\n\t\treturn decorateY(pos, y)\n\t},\n\tmagma: (_config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(pos[1] + 32)\n\t\treturn decorateY(pos, y)\n\t},\n\tsquare: (_config, pos, ctx) => {\n\t\treturn [[\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\tpos[1],\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t]]\n\t},\n\tsurface_relative_threshold: (config, pos) => {\n\t\tconst height = terrain[clamp(0, 63, pos[0])]\n\t\tconst min = height + (config?.min_inclusive ?? -Infinity)\n\t\tconst max = height + (config?.max_inclusive ?? Infinity)\n\t\treturn (pos[1] < min || pos[1] > max) ? [pos] : []\n\t},\n\twater_lake: (config, pos, ctx) => {\n\t\tif (ctx.nextInt(config.chance ?? 1) === 0) {\n\t\t\treturn [[\n\t\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\t\tctx.nextInt(256),\n\t\t\t\tpos[2] + ctx.nextInt(16),\n\t\t\t]]\n\t\t}\n\t\treturn []\n\t},\n}\n\n// 1.18 and after\nfunction modifyPlacement(pos: BlockPos, placement: any[], ctx: PlacementContext) {\n\tlet positions = [pos]\n\tfor (const modifier of placement) {\n\t\tconst modifierFn = PlacementModifiers[normalize(modifier?.type ?? 'nope')]\n\t\tif (!modifierFn) continue\n\t\tpositions = positions.flatMap(pos =>\n\t\t\tPlacementModifiers[normalize(modifier.type)](modifier, pos, ctx)\n\t\t)\n\t}\n\tfor (const pos of positions) {\n\t\tctx.placements.push([pos, 0])\n\t}\n}\n\nconst PlacementModifiers: {\n\t[key: string]: (config: any, pos: BlockPos, ctx: PlacementContext) => BlockPos[],\n} = {\n\tcount: ({ count }, pos, ctx) => {\n\t\treturn new Array(ctx.sampleInt(count ?? 1)).fill(pos)\n\t},\n\tcount_on_every_layer: ({ count }, pos, ctx) => {\n\t\treturn new Array(ctx.sampleInt(count ?? 1)).fill(pos)\n\t\t\t.map(p => [\n\t\t\t\tp[0] + ctx.nextInt(16),\n\t\t\t\tp[1], \n\t\t\t\tp[2] + ctx.nextInt(16),\n\t\t\t])\n\t},\n\tenvironment_scan: ({}, pos) => {\n\t\treturn [pos]\n\t},\n\theight_range: ({ height }, pos, ctx) => {\n\t\treturn decorateY(pos, sampleHeight(height, ctx))\n\t},\n\theightmap: ({}, pos, ctx) => {\n\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, pos[0])])\n\t\treturn decorateY(pos, y)\n\t},\n\tin_square: ({}, pos, ctx) => {\n\t\treturn [[\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\tpos[1],\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t]]\n\t},\n\tnoise_based_count: ({ noise_to_count_ratio, noise_factor, noise_offset }, pos, ctx) => {\n\t\tconst factor = Math.max(1, noise_factor)\n\t\tconst noise = ctx.biomeInfoNoise.sample(pos[0] / factor, 0, pos[2] / factor)\n\t\tconst count = Math.max(0, Math.ceil((noise + (noise_offset ?? 0)) * noise_to_count_ratio))\n\t\treturn new Array(count).fill(pos)\n\t},\n\tnoise_threshold_count: ({ noise_level, below_noise, above_noise }, pos, ctx) => {\n\t\tconst noise = ctx.biomeInfoNoise.sample(pos[0] / 200, 0, pos[2] / 200)\n\t\tconst count = noise < noise_level ? below_noise : above_noise\n\t\treturn new Array(count).fill(pos)\n\t},\n\trandom_offset: ({ xz_spread, y_spread }, pos, ctx) => {\n\t\treturn [[\n\t\t\tpos[0] + ctx.sampleInt(xz_spread),\n\t\t\tpos[1] + ctx.sampleInt(y_spread),\n\t\t\tpos[2] + ctx.sampleInt(xz_spread),\n\t\t]]\n\t},\n\trarity_filter: ({ chance }, pos, ctx) => {\n\t\treturn ctx.nextFloat() < 1 / (chance ?? 1) ? [pos] : []\n\t},\n}\n","import { DataModel } from '@mcschema/core'\nimport { NoiseParameters, NormalNoise, XoroshiroRandom } from 'deepslate/worldgen'\nimport type { VersionId } from '../services/index.js'\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 = XoroshiroRandom.create(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 { DataModel, Path } from '@mcschema/core'\nimport { useEffect, useRef, useState } from 'preact/hooks'\nimport { useLocale, useProject, useStore } from '../../contexts/index.js'\nimport { useCanvas } from '../../hooks/index.js'\nimport { biomeMap, getBiome } from '../../previews/index.js'\nimport { randomSeed } from '../../Utils.js'\nimport { Btn, BtnMenu, NumberInput } from '../index.js'\nimport type { PreviewProps } from './index.js'\n\nexport const BiomeSourcePreview = ({ model, data, shown, version }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst { project } = useProject()\n\tconst [seed, setSeed] = useState(randomSeed())\n\tconst [scale, setScale] = useState(2)\n\tconst [yOffset, setYOffset] = useState(64)\n\tconst [focused, setFocused] = useState<{[k: string]: number | string} | undefined>(undefined)\n\tconst { biomeColors } = useStore()\n\tconst offset = useRef<[number, number]>([0, 0])\n\tconst res = useRef(1)\n\tconst refineTimeout = useRef<number>()\n\n\tconst settings = DataModel.unwrapLists(model.get(new Path(['generator', 'settings'])))\n\tconst state = JSON.stringify([data, settings])\n\tconst type: string = data.type?.replace(/^minecraft:/, '')\n\tconst hasRandomness = type === 'multi_noise' || type === 'the_end'\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 = { settings, biomeColors, offset: offset.current, scale, seed, res: res.current, version, project, y: yOffset }\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 = hasRandomness ? 4 : 1\n\t\t\tredraw()\n\t\t},\n\t\tasync onHover(x, y) {\n\t\t\tconst options = { settings, biomeColors, offset: offset.current, scale, seed: seed, res: 1, version, project, y: yOffset }\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}, [version, state, scale, seed, yOffset, biomeColors, project])\n\n\tuseEffect(() => {\n\t\tif (shown) {\n\t\t\tres.current = hasRandomness ? 4 : 1\n\t\t\tredraw()\n\t\t}\n\t}, [version, state, scale, seed, yOffset, shown, biomeColors, project])\n\n\tconsole.log(yOffset)\n\n\tconst changeScale = (newScale: number) => {\n\t\tnewScale = Math.max(1, Math.round(newScale))\n\t\toffset.current[0] = offset.current[0] * scale / newScale\n\t\toffset.current[1] = offset.current[1] * scale / newScale\n\t\tsetScale(newScale)\n\t}\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t{focused && <Btn label={focused.biome as string} class=\"no-pointer\" />}\n\t\t\t<Btn icon=\"dash\" tooltip={locale('zoom_out')}\n\t\t\t\tonClick={() => changeScale(scale * 2)} />\n\t\t\t<Btn icon=\"plus\" tooltip={locale(Math.round(scale) <= 1 ? 'zoom_in_limit' : 'zoom_in')}\n\t\t\t\tdisabled={Math.round(scale) <= 1}\n\t\t\t\tonClick={() => changeScale(scale / 2)} />\n\t\t\t{hasRandomness && <>\n\t\t\t\t<BtnMenu icon=\"stack\">\n\t\t\t\t\t<div class=\"btn btn-input\" onClick={e => e.stopPropagation()}>\n\t\t\t\t\t\t<span>{locale('y')}</span>\n\t\t\t\t\t\t<NumberInput value={yOffset} onChange={setYOffset} />\n\t\t\t\t\t</div>\n\t\t\t\t</BtnMenu>\n\t\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\t\tonClick={() => setSeed(randomSeed())} />\n\t\t\t</>}\n\t\t</div>\n\t\t{focused?.temperature !== undefined && <div class=\"controls secondary-controls\">\n\t\t\t<Btn class=\"no-pointer\" label={Object.entries(focused)\n\t\t\t\t.filter(([k]) => k !== 'biome')\n\t\t\t\t.map(([k, v]) => `${k[0].toUpperCase()}: ${(v as number).toFixed(2)}`).join(' ')}/>\n\t\t</div>}\n\t\t<canvas ref={canvas} width=\"200\" height=\"200\"></canvas>\n\t</>\n}\n","import { useEffect, useState } from 'preact/hooks'\nimport { useLocale } from '../../contexts/index.js'\nimport { useCanvas } from '../../hooks/index.js'\nimport { decorator } from '../../previews/index.js'\nimport { randomSeed } from '../../Utils.js'\nimport { Btn } from '../index.js'\nimport type { PreviewProps } from './index.js'\n\nexport const DecoratorPreview = ({ data, version, shown }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [scale, setScale] = useState(4)\n\tconst [seed, setSeed] = useState(randomSeed())\n\n\tconst state = JSON.stringify(data)\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}, [version, state, seed])\n\n\tuseEffect(() => {\n\t\tif (shown) {\n\t\t\tredraw()\n\t\t}\n\t}, [version, state, scale, seed, shown])\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t<Btn icon=\"dash\" tooltip={locale('zoom_out')}\n\t\t\t\tonClick={() => setScale(Math.min(16, scale + 1))} />\n\t\t\t<Btn icon=\"plus\" tooltip={locale('zoom_in')}\n\t\t\t\tonClick={() => setScale(Math.max(1, scale - 1))} />\n\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\tonClick={() => setSeed(randomSeed())} />\n\t\t</div>\n\t\t<canvas ref={canvas} width=\"64\" height=\"64\"></canvas>\n\t</>\n}\n","import { useEffect, useRef, useState } from 'preact/hooks'\nimport { useLocale, useProject } from '../../contexts/index.js'\nimport { useCanvas } from '../../hooks/index.js'\nimport { densityFunction } from '../../previews/index.js'\nimport { randomSeed } from '../../Utils.js'\nimport { Btn, BtnMenu } from '../index.js'\nimport type { PreviewProps } from './index.js'\n\nexport const DensityFunctionPreview = ({ data, shown, version }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst { project } = useProject()\n\tconst [seed, setSeed] = useState(randomSeed())\n\tconst [autoScroll, setAutoScroll] = useState(false)\n\tconst [focused, setFocused] = useState<string | undefined>(undefined)\n\tconst offset = useRef(0)\n\tconst scrollInterval = useRef<number | undefined>(undefined)\n\tconst state = JSON.stringify([data])\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 = { offset: offset.current, width: img.width, seed, version, project }\n\t\t\tawait densityFunction(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(x, y) {\n\t\t\tconst worldX = Math.floor(x * size - offset.current)\n\t\t\tconst worldY = size - Math.max(1, Math.ceil(y * size)) + (data?.noise?.min_y ?? 0)\n\t\t\tsetFocused(`X=${worldX} Y=${worldY}`)\n\t\t},\n\t\tonLeave() {\n\t\t\tsetFocused(undefined)\n\t\t},\n\t}, [version, state, seed, project])\n\n\tuseEffect(() => {\n\t\tif (scrollInterval.current) {\n\t\t\tclearInterval(scrollInterval.current)\n\t\t}\n\t\tif (shown) {\n\t\t\tredraw()\n\t\t\tif (autoScroll) {\n\t\t\t\tscrollInterval.current = setInterval(() => {\n\t\t\t\t\toffset.current -= 8\n\t\t\t\t\tredraw()\n\t\t\t\t}, 100) as any\n\t\t\t}\n\t\t}\n\t}, [version, state, seed, project, shown, autoScroll])\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t{focused && <Btn label={focused} class=\"no-pointer\" />}\n\t\t\t<BtnMenu icon=\"gear\" tooltip={locale('terrain_settings')}>\n\t\t\t\t<Btn icon={autoScroll ? 'square_fill' : 'square'} label={locale('preview.auto_scroll')} onClick={() => setAutoScroll(!autoScroll)} />\n\t\t\t</BtnMenu>\n\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\tonClick={() => setSeed(randomSeed())} />\n\t\t</div>\n\t\t<canvas ref={canvas} width={size} height={size}></canvas>\n\t</>\n}\n","import { useEffect, useRef, useState } from 'preact/hooks'\nimport { useLocale } from '../../contexts/index.js'\nimport { useCanvas } from '../../hooks/index.js'\nimport { normalNoise } from '../../previews/index.js'\nimport { randomSeed } from '../../Utils.js'\nimport { Btn } from '../index.js'\nimport type { PreviewProps } from './index.js'\n\nexport const NoisePreview = ({ data, shown, version }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [seed, setSeed] = useState(randomSeed())\n\tconst [scale, setScale] = useState(2)\n\tconst offset = useRef<[number, number]>([0, 0])\n\tconst state = JSON.stringify([data])\n\n\tconst { canvas, redraw } = useCanvas({\n\t\tsize() {\n\t\t\treturn [256, 256]\n\t\t},\n\t\tasync draw(img) {\n\t\t\tconst options = { offset: offset.current, scale, seed, version }\n\t\t\tnormalNoise(data, img, options)\n\t\t},\n\t\tasync onDrag(dx, dy) {\n\t\t\toffset.current[0] = offset.current[0] + dx * 256\n\t\t\toffset.current[1] = offset.current[1] + dy * 256\n\t\t\tredraw()\n\t\t},\n\t}, [version, state, scale, seed])\n\n\tuseEffect(() => {\n\t\tif (shown) {\n\t\t\tredraw()\n\t\t}\n\t}, [version, state, scale, seed, shown])\n\n\tconst changeScale = (newScale: number) => {\n\t\toffset.current[0] = offset.current[0] * scale / newScale\n\t\toffset.current[1] = offset.current[1] * scale / newScale\n\t\tsetScale(newScale)\n\t}\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t<Btn icon=\"dash\" tooltip={locale('zoom_out')}\n\t\t\t\tonClick={() => changeScale(scale * 1.5)} />\n\t\t\t<Btn icon=\"plus\" tooltip={locale('zoom_in')}\n\t\t\t\tonClick={() => changeScale(scale / 1.5)} />\n\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\tonClick={() => setSeed(randomSeed())} />\n\t\t</div>\n\t\t<canvas ref={canvas} width=\"256\" height=\"256\"></canvas>\n\t</>\n}\n","import { useEffect, useMemo, useRef, useState } from 'preact/hooks'\nimport { useLocale, useProject } from '../../contexts/index.js'\nimport { useCanvas } from '../../hooks/index.js'\nimport { getNoiseBlock, noiseSettings } from '../../previews/index.js'\nimport { CachedCollections, checkVersion } from '../../services/index.js'\nimport { randomSeed } from '../../Utils.js'\nimport { Btn, BtnInput, BtnMenu } from '../index.js'\nimport type { PreviewProps } from './index.js'\n\nexport const NoiseSettingsPreview = ({ data, shown, version }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst { project } = useProject()\n\tconst [seed, setSeed] = useState(randomSeed())\n\tconst [biome, setBiome] = useState('minecraft:plains')\n\tconst [biomeScale, setBiomeScale] = useState(0.2)\n\tconst [biomeDepth, setBiomeDepth] = useState(0.1)\n\tconst [autoScroll, setAutoScroll] = useState(false)\n\tconst [focused, setFocused] = useState<string | undefined>(undefined)\n\tconst offset = useRef(0)\n\tconst scrollInterval = useRef<number | undefined>(undefined)\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 = { biome, biomeDepth, biomeScale, offset: offset.current, width: img.width, seed, version, project }\n\t\t\tawait noiseSettings(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(x, y) {\n\t\t\tconst worldX = Math.floor(x * size - offset.current)\n\t\t\tconst worldY = size - Math.max(1, Math.ceil(y * size)) + (data?.noise?.min_y ?? 0)\n\t\t\tconst block = getNoiseBlock(worldX, worldY)\n\t\t\tsetFocused(block ? `Y=${worldY} (${block.getName().path})` : `Y=${worldY}`)\n\t\t},\n\t\tonLeave() {\n\t\t\tsetFocused(undefined)\n\t\t},\n\t}, [state, seed, project])\n\n\tuseEffect(() => {\n\t\tif (scrollInterval.current) {\n\t\t\tclearInterval(scrollInterval.current)\n\t\t}\n\t\tif (shown) {\n\t\t\t(async () => {\n\t\t\t\ttry {\n\t\t\t\t\tawait redraw()\n\t\t\t\t\tif (autoScroll) {\n\t\t\t\t\t\tscrollInterval.current = setInterval(() => {\n\t\t\t\t\t\t\toffset.current -= 8\n\t\t\t\t\t\t\tredraw()\n\t\t\t\t\t\t}, 100) as any\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\tthrow e\n\t\t\t\t}\n\t\t\t})()\n\t\t}\n\t}, [version, state, seed, project, shown, biome, biomeScale, biomeDepth, autoScroll])\n\n\tconst allBiomes = useMemo(() => CachedCollections?.get('worldgen/biome') ?? [], [version])\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t{focused && <Btn label={focused} class=\"no-pointer\" />}\n\t\t\t<BtnMenu icon=\"gear\" tooltip={locale('terrain_settings')}>\n\t\t\t\t{checkVersion(version, undefined, '1.17') ? <>\n\t\t\t\t\t<BtnInput label={locale('preview.scale')} value={`${biomeScale}`} onChange={v => setBiomeScale(Number(v))} />\n\t\t\t\t\t<BtnInput label={locale('preview.depth')} value={`${biomeDepth}`} onChange={v => setBiomeDepth(Number(v))} />\n\t\t\t\t</> :\n\t\t\t\t\t<BtnInput label={locale('preview.biome')} value={biome} onChange={setBiome} dataList={allBiomes} larger />\n\t\t\t\t}\n\t\t\t\t<Btn icon={autoScroll ? 'square_fill' : 'square'} label={locale('preview.auto_scroll')} onClick={() => setAutoScroll(!autoScroll)} />\n\t\t\t</BtnMenu>\n\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\tonClick={() => setSeed(randomSeed())} />\n\t\t</div>\n\t\t<canvas ref={canvas} width={size} height={size}></canvas>\n\t</>\n}\n","import type { DataModel } from '@mcschema/core'\nimport { Path } from '@mcschema/core'\nimport { useState } from 'preact/hooks'\nimport { useModel } from '../../hooks/index.js'\nimport type { VersionId } from '../../services/index.js'\nimport { checkVersion } from '../../services/index.js'\nimport { BiomeSourcePreview, DecoratorPreview, DensityFunctionPreview, NoisePreview, NoiseSettingsPreview } from '../previews/index.js'\n\nexport const HasPreview = ['dimension', 'worldgen/density_function', 'worldgen/noise', 'worldgen/noise_settings', 'worldgen/configured_feature', 'worldgen/placed_feature']\n\ntype PreviewPanelProps = {\n\tmodel: DataModel | undefined,\n\tversion: VersionId,\n\tid: string,\n\tshown: boolean,\n\tonError: (message: string) => unknown,\n}\nexport function PreviewPanel({ model, version, id, shown }: PreviewPanelProps) {\n\tconst [, setCount] = useState(0)\n\n\tuseModel(model, () => {\n\t\tsetCount(count => count + 1)\n\t})\n\n\tif (!model) return <></>\n\n\tif (id === 'dimension' && model.get(new Path(['generator', 'type']))?.endsWith('noise')) {\n\t\tconst data = model.get(new Path(['generator', 'biome_source']))\n\t\tif (data) return <BiomeSourcePreview {...{ model, version, shown, data }} />\n\t}\n\n\tif (id === 'worldgen/density_function') {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return <DensityFunctionPreview {...{ model, version, shown, data }} />\n\t}\n\n\tif (id === 'worldgen/noise') {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return <NoisePreview {...{ model, version, shown, data }} />\n\t}\n\n\tif (id === 'worldgen/noise_settings') {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return <NoiseSettingsPreview {...{ model, version, shown, data }} />\n\t}\n\n\tif ((id === 'worldgen/placed_feature' || (id === 'worldgen/configured_feature' && checkVersion(version, '1.16', '1.17')))) {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return <DecoratorPreview {...{ model, version, shown, data }} />\n\t}\n\n\treturn <></>\n}\n","import { useEffect, useMemo, useRef, useState } from 'preact/hooks'\nimport config from '../../Config.js'\nimport type { Project } from '../../contexts/index.js'\nimport { disectFilePath, useLocale, useProject } from '../../contexts/index.js'\nimport type { VersionId } from '../../services/index.js'\nimport { DEFAULT_VERSION, parseSource } from '../../services/index.js'\nimport { message, readZip } from '../../Utils.js'\nimport { Btn, BtnMenu, FileUpload, Octicon, TextInput } from '../index.js'\nimport { Modal } from '../Modal.js'\n\ninterface Props {\n\tonClose: () => unknown,\n}\nexport function ProjectCreation({ onClose }: Props) {\n\tconst { locale } = useLocale()\n\tconst { projects, createProject, changeProject, updateProject } = useProject()\n\n\tconst [name, setName] = useState('')\n\tconst [namespace, setNamespace] = useState('')\n\tconst [version, setVersion] = useState(DEFAULT_VERSION)\n\tconst [file, setFile] = useState<File | undefined>(undefined)\n\tconst [creating, setCreating] = useState(false)\n\n\tconst onUpload = (file: File) => {\n\t\tif (file.type.match(/^application\\/(x-)?zip(-compressed)?$/)) {\n\t\t\tif (name.length === 0) {\n\t\t\t\tsetName(file.name\n\t\t\t\t\t.replace(/\\.zip$/, '')\n\t\t\t\t\t.replaceAll(/[ _-]+/g, ' '))\n\t\t\t}\n\t\t\tsetFile(file)\n\t\t}\n\t}\n\n\tconst projectUpdater = useRef(updateProject)\n\tuseEffect(() => {\n\t\tprojectUpdater.current = updateProject\n\t}, [updateProject])\n\n\tconst onCreate = () => {\n\t\tsetCreating(true)\n\t\tcreateProject(name, namespace || undefined, version)\n\t\tchangeProject(name)\n\t\tif (file) {\n\t\t\treadZip(file).then(async (entries) => {\n\t\t\t\tconst project: Partial<Project> = { files: [] }\n\t\t\t\tawait Promise.all(entries.map(async (entry) => {\n\t\t\t\t\tconst file = disectFilePath(entry[0])\n\t\t\t\t\tif (file) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst data = await parseSource(entry[1], 'json')\n\t\t\t\t\t\t\tproject.files!.push({ ...file, data })\n\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\tconsole.error(`Failed parsing ${file.type} ${file.id}: ${message(e)}`)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}))\n\t\t\t\tprojectUpdater.current(project)\n\t\t\t\tonClose()\n\t\t\t}).catch(() => {\n\t\t\t\tonClose()\n\t\t\t})\n\t\t} else {\n\t\t\tonClose()\n\t\t}\n\t}\n\n\tconst invalidName = useMemo(() => {\n\t\treturn projects.map(p => p.name.trim().toLowerCase()).includes(name.trim().toLowerCase())\n\t}, [projects, name])\n\n\tconst invalidNamespace = useMemo(() => {\n\t\treturn !(namespace.length === 0 || namespace.match(/^(?:[a-z0-9._-]+:)?[a-z0-9/._-]+$/))\n\t}, [namespace])\n\n\tconst versions = config.versions.map(v => v.id as VersionId).reverse()\n\n\treturn <Modal class=\"project-creation\" onDismiss={onClose}>\n\t\t<p>{locale('project.create')}</p>\n\t\t<div class=\"input-group\">\n\t\t\t<TextInput autofocus class={`btn btn-input${!creating && (invalidName || name.length === 0) ? ' invalid': ''}`} placeholder={locale('project.name')} value={name} onChange={setName} />\n\t\t\t{!creating && invalidName && <div class=\"status-icon danger tooltipped tip-e\" aria-label={locale('project.name.already_exists')}>{Octicon.issue_opened}</div>}\n\t\t</div>\n\t\t<div class=\"input-group\">\n\t\t\t<TextInput class={`btn btn-input${!creating && invalidNamespace ? ' invalid' : ''}`} placeholder={locale('project.namespace')} value={namespace} onChange={setNamespace} />\n\t\t\t{!creating && invalidNamespace && <div class=\"status-icon danger tooltipped tip-e\" aria-label={locale('project.namespace.invalid')}>{Octicon.issue_opened}</div>}\n\t\t</div>\n\t\t<BtnMenu icon=\"tag\" label={version} tooltip={locale('switch_version')} data-cy=\"version-switcher\">\n\t\t\t{versions.map(v =>\n\t\t\t\t<Btn label={v} active={v === version} onClick={() => setVersion(v)} />\n\t\t\t)}\n\t\t</BtnMenu>\n\t\t<FileUpload value={file} onChange={onUpload} label={locale('choose_zip_file')} accept=\".zip\"/>\n\t\t<Btn icon=\"rocket\" label=\"Create!\" disabled={creating || invalidName || name.length === 0 || invalidNamespace} onClick={onCreate} />\n\t</Modal>\n}\n","import { Analytics } from '../../Analytics.js'\nimport { useLocale, useProject } from '../../contexts/index.js'\nimport { Btn } from '../Btn.js'\nimport { Modal } from '../Modal.js'\n\ninterface Props {\n\tonClose: () => void,\n}\nexport function ProjectDeletion({ onClose }: Props) {\n\tconst { locale } = useLocale()\n\tconst { projects, project, deleteProject } = useProject()\n\n\tconst doSave = () => {\n\t\tAnalytics.deleteProject(projects.length, project.files.length, 'menu')\n\t\tdeleteProject(project.name)\n\t\tonClose()\n\t}\n\n\treturn <Modal class=\"file-modal\" onDismiss={onClose}>\n\t\t<p>{locale('project.delete_confirm.1', project.name)}</p>\n\t\t<p><b>{locale('project.delete_confirm.2')}</b></p>\n\t\t<div class=\"button-group\">\n\t\t\t<Btn icon=\"trashcan\" label={locale('project.delete')} onClick={doSave} class=\"danger\" />\n\t\t\t<Btn label={locale('project.cancel')} onClick={onClose} />\n\t\t</div>\n\t</Modal>\n}\n","import { useMemo, useState } from 'preact/hooks'\nimport { useFocus } from '../hooks/index.js'\nimport { Octicon } from './index.js'\n\nconst SEPARATOR = '/'\n\nexport interface EntryAction {\n\ticon: keyof typeof Octicon,\n\tlabel: string,\n\tonAction: (entry: string) => unknown,\n}\n\nexport interface EntryError {\n\tpath: string,\n\tmessage: string,\n}\n\ninterface Props {\n\tentries: string[],\n\tonSelect: (entry: string) => unknown,\n\tselected?: string,\n\tactions?: EntryAction[],\n\terrors?: EntryError[],\n\tindent?: number,\n}\nexport function TreeView({ entries, onSelect, selected, actions, errors, indent }: Props) {\n\tconst roots = useMemo(() => {\n\t\tconst groups: Record<string, string[]> = {}\n\t\tfor (const entry of entries) {\n\t\t\tconst i = entry.indexOf(SEPARATOR)\n\t\t\tif (i >= 0) {\n\t\t\t\tconst root = entry.slice(0, i)\n\t\t\t\t;(groups[root] ??= []).push(entry.slice(i + 1))\n\t\t\t}\n\t\t}\n\t\treturn Object.entries(groups).map(([r, entries]) => {\n\t\t\tconst rootActions = actions?.map(a => ({ ...a, onAction: (e: string) => a.onAction(r + SEPARATOR + e) }))\n\t\t\tconst rootErrors = errors?.flatMap(e => e.path.startsWith(r + SEPARATOR) ? [{ ...e, path: e.path.slice(r.length + SEPARATOR.length) }] : [])\n\t\t\treturn [r, entries, rootActions, rootErrors] as [string, string[], EntryAction[], EntryError[]]\n\t\t}).sort()\n\t}, [entries, actions, errors])\n\n\tconst leaves = useMemo(() => {\n\t\treturn entries.filter(e => !e.includes(SEPARATOR))\n\t}, [entries])\n\n\tconst [hidden, setHidden] = useState(new Set<string>())\n\tconst toggle = (root: string) => {\n\t\tif (hidden.has(root)) {\n\t\t\thidden.delete(root)\n\t\t} else {\n\t\t\thidden.add(root)\n\t\t}\n\t\tsetHidden(new Set(hidden))\n\t}\n\n\treturn <div class=\"tree-view\" style={`--indent: ${indent ?? 0};`}>\n\t\t{roots.map(([r, entries, actions, errors]) => <div>\n\t\t\t<TreeViewEntry icon={hidden.has(r) ? 'chevron_right' : 'chevron_down'} key={r} label={r} onClick={() => toggle(r)} error={(errors?.length ?? 0) > 0} />\n\t\t\t{!hidden.has(r) &&\n\t\t\t\t<TreeView entries={entries} onSelect={e => onSelect(`${r}${SEPARATOR}${e}`)}\n\t\t\t\t\tselected={selected?.startsWith(r + SEPARATOR) ? selected.substring(r.length + 1) : undefined}\n\t\t\t\t\tactions={actions} errors={errors} indent={(indent ?? 0) + 1} />}\n\t\t</div>)}\n\t\t{leaves.map(e => <TreeViewEntry icon=\"file\" key={e} label={e} active={e === selected} onClick={() => onSelect(e)} actions={actions?.map(a => ({ ...a, onAction: () => a.onAction(e) }))} error={errors?.find(er => er.path === e)?.message} />)}\n\t</div>\n}\n\ninterface TreeViewEntryProps {\n\ticon: keyof typeof Octicon,\n\tlabel: string,\n\tactive?: boolean,\n\tonClick?: () => unknown,\n\tactions?: EntryAction[],\n\terror?: string | boolean,\n}\nfunction TreeViewEntry({ icon, label, active, onClick, actions, error }: TreeViewEntryProps) {\n\tconst [focused, setFocus] = useFocus()\n\tconst onContextMenu = (evt: MouseEvent) => {\n\t\tevt.preventDefault()\n\t\tif (actions?.length) {\n\t\t\tsetFocus()\n\t\t}\n\t}\n\n\treturn <div class={`entry${error ? ' has-error' : ''}${active ? ' active' : ''}${focused ? ' focused' : ''}`} onClick={onClick} onContextMenu={onContextMenu} >\n\t\t{Octicon[icon]}\n\t\t<span>{label.replaceAll('\\u2215', '/')}</span>\n\t\t{typeof error === 'string' && <div class=\"status-icon danger tooltipped tip-se\" aria-label={error}>\n\t\t\t{Octicon.issue_opened}\t\n\t\t</div>}\n\t\t{focused && <div class=\"entry-menu\">\n\t\t\t{actions?.map(a => <div class=\"action\" onClick={e => { a.onAction(''); e.stopPropagation(); setFocus(false) }}>{Octicon[a.icon]}{a.label}</div>)}\n\t\t</div>}\n\t</div>\n}\n","import type { DataModel } from '@mcschema/core'\nimport { useCallback, useMemo, useRef, useState } from 'preact/hooks'\nimport { Analytics } from '../../Analytics.js'\nimport config from '../../Config.js'\nimport { disectFilePath, DRAFT_PROJECT, getFilePath, useLocale, useProject, useVersion } from '../../contexts/index.js'\nimport type { VersionId } from '../../services/index.js'\nimport { stringifySource } from '../../services/index.js'\nimport { Store } from '../../Store.js'\nimport { writeZip } from '../../Utils.js'\nimport { Btn } from '../Btn.js'\nimport { BtnMenu } from '../BtnMenu.js'\nimport type { EntryAction } from '../TreeView.js'\nimport { TreeView } from '../TreeView.js'\n\ninterface Props {\n\tmodel: DataModel | undefined,\n\tversion: VersionId,\n\tid: string,\n\tonError: (message: string) => unknown,\n\tonRename: (file: { type: string, id: string }) => unknown,\n\tonCreate: () => unknown,\n\tonDeleteProject: () => unknown,\n}\nexport function ProjectPanel({ onRename, onCreate, onDeleteProject }: Props) {\n\tconst { locale } = useLocale()\n\tconst { version } = useVersion()\n\tconst { projects, project, changeProject, file, openFile, updateFile } = useProject()\n\n\tconst [treeViewMode, setTreeViewMode] = useState(Store.getTreeViewMode())\n\n\tconst changeTreeViewMode = useCallback((mode: string) => {\n\t\tStore.setTreeViewMode(mode)\n\t\tAnalytics.setTreeViewMode(mode)\n\t\tsetTreeViewMode(mode)\n\t}, [])\n\n\tconst disectEntry = useCallback((entry: string) => {\n\t\tif (treeViewMode === 'resources' && entry !== 'pack.mcmeta') {\n\t\t\tconst [type, id] = entry.split('/')\n\t\t\treturn {\n\t\t\t\ttype: type.replaceAll('\\u2215', '/'),\n\t\t\t\tid: id.replaceAll('\\u2215', '/'),\n\t\t\t}\n\t\t}\n\t\treturn disectFilePath(entry)\n\t}, [treeViewMode])\n\n\tconst entries = useMemo(() => project.files.flatMap(f => {\n\t\tconst path = getFilePath(f)\n\t\tif (!path) return []\n\t\tif (f.type === 'pack_mcmeta') return 'pack.mcmeta'\n\t\tif (treeViewMode === 'resources') {\n\t\t\treturn [`${f.type.replaceAll('/', '\\u2215')}/${f.id.replaceAll('/', '\\u2215')}`]\n\t\t}\n\t\treturn [path]\n\t}), [treeViewMode, ...project.files])\n\n\tconst selected = useMemo(() => file && getFilePath(file), [file])\n\n\tconst selectFile = useCallback((entry: string) => {\n\t\tconst file = disectEntry(entry)\n\t\tif (file) {\n\t\t\topenFile(file.type, file.id)\n\t\t}\n\t}, [disectEntry])\n\n\tconst download = useRef<HTMLAnchorElement>(null)\n\n\tconst onDownload = async () => {\n\t\tif (!download.current) return\n\t\tlet hasPack = false\n\t\tconst entries = project.files.flatMap(file => {\n\t\t\tconst path = getFilePath(file)\n\t\t\tif (path === undefined) return []\n\t\t\tif (path === 'pack.mcmeta') hasPack = true\n\t\t\treturn [[path, stringifySource(file.data)]] as [string, string][]\n\t\t})\n\t\tif (!hasPack) {\n\t\t\tconst pack_format = config.versions.find(v => v.id === version)!.pack_format\n\t\t\tentries.push(['pack.mcmeta', stringifySource({ pack: { pack_format, description: '' } })])\n\t\t}\n\t\tconst url = await writeZip(entries)\n\t\tdownload.current.setAttribute('href', url)\n\t\tdownload.current.setAttribute('download', `${project.name.replaceAll(' ', '_')}.zip`)\n\t\tdownload.current.click()\n\t}\n\n\tconst actions = useMemo<EntryAction[]>(() => [\n\t\t{\n\t\t\ticon: 'pencil',\n\t\t\tlabel: locale('project.rename_file'),\n\t\t\tonAction: (e) => {\n\t\t\t\tconst file = disectEntry(e)\n\t\t\t\tif (file) {\n\t\t\t\t\tonRename(file)\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ticon: 'trashcan',\n\t\t\tlabel: locale('project.delete_file'),\n\t\t\tonAction: (e) => {\n\t\t\t\tconst file = disectEntry(e)\n\t\t\t\tif (file) {\n\t\t\t\t\tAnalytics.deleteProjectFile(file.type, projects.length, project.files.length, 'menu')\n\t\t\t\t\tupdateFile(file.type, file.id, {})\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t], [disectEntry, updateFile, onRename])\n\n\treturn <>\n\t\t<div class=\"project-controls\">\n\t\t\t<BtnMenu icon=\"chevron_down\" label={project.name} tooltip={locale('switch_project')} tooltipLoc=\"se\">\n\t\t\t\t{projects.map(p => <Btn label={p.name} active={p.name === project.name} onClick={() => changeProject(p.name)} />)}\n\t\t\t</BtnMenu>\n\t\t\t<BtnMenu icon=\"kebab_horizontal\" >\n\t\t\t\t<Btn icon=\"file_zip\" label={locale('project.download')} onClick={onDownload} />\n\t\t\t\t<Btn icon=\"plus_circle\" label={locale('project.new')} onClick={onCreate} />\n\t\t\t\t<Btn icon={treeViewMode === 'resources' ? 'three_bars' : 'rows'} label={locale(treeViewMode === 'resources' ? 'project.show_file_paths' : 'project.show_resources')} onClick={() => changeTreeViewMode(treeViewMode === 'resources' ? 'files' : 'resources')} />\n\t\t\t\t{project.name !== DRAFT_PROJECT.name && <Btn icon=\"trashcan\" label={locale('project.delete')} onClick={onDeleteProject} />}\n\t\t\t</BtnMenu>\n\t\t</div>\n\t\t<div class=\"file-view\">\n\t\t\t{entries.length === 0\n\t\t\t\t? <span>{locale('project.no_files')}</span>\n\t\t\t\t: <TreeView entries={entries} selected={selected} onSelect={selectFile} actions={actions} />}\n\t\t</div>\n\t\t<a ref={download} style=\"display: none;\"></a>\n\t</>\n}\n","import type { DataModel, Hook } from '@mcschema/core'\nimport { ModelPath, relativePath } from '@mcschema/core'\nimport type { BlockStateRegistry } from '../services/index.js'\n\nexport function getOutput(model: DataModel, blockStates: BlockStateRegistry): any {\n\treturn model.schema.hook(transformOutput, new ModelPath(model), model.data, { blockStates })\n}\n\nexport type OutputProps = {\n\tblockStates: BlockStateRegistry,\n}\nexport const transformOutput: Hook<[any, OutputProps], any> = {\n\tbase({}, _, value) {\n\t\treturn value\n\t},\n\n\tchoice({ switchNode }, path, value, props) {\n\t\treturn switchNode.hook(this, path, value, props)\n\t},\n\n\tlist({ children }, path, value, props) {\n\t\tif (!Array.isArray(value)) return value\n\t\tconst res = value.map((obj, index) =>\n\t\t\tchildren.hook(this, path.push(index), obj.node, props)\n\t\t)\n\t\tfor (const a of Object.getOwnPropertySymbols(value)) {\n\t\t\tres[a as any] = value[a as any]\n\t\t}\n\t\treturn res\n\t},\n\n\tmap({ children, config }, path, value, props) {\n\t\tif (value === undefined) return undefined\n\t\tconst blockState = config.validation?.validator === 'block_state_map'? props.blockStates?.[relativePath(path, config.validation.params.id).get()] : null\n\t\tconst res: any = {}\n\t\tObject.keys(value).forEach(f => {\n\t\t\tif (blockState) {\n\t\t\t\tif (!Object.keys(blockState.properties ?? {}).includes(f)) return\n\t\t\t}\n\t\t\tres[f] = children.hook(this, path.push(f), value[f], props)\n\t\t})\n\t\tfor (const a of Object.getOwnPropertySymbols(value)) {\n\t\t\tres[a as any] = value[a]\n\t\t}\n\t\treturn res\n\t},\n\n\tobject({ getActiveFields }, path, value, props) {\n\t\tif (value === undefined || value === null || typeof value !== 'object') {\n\t\t\treturn value\n\t\t}\n\t\tconst res: any = {}\n\t\tconst activeFields = getActiveFields(path)\n\t\tObject.keys(activeFields)\n\t\t\t.filter(k => activeFields[k].enabled(path))\n\t\t\t.forEach(f => {\n\t\t\t\tconst out = activeFields[f].hook(this, path.push(f), value[f], props)\n\t\t\t\tif (out !== undefined && out !== null) {\n\t\t\t\t\tres[f] = out\n\t\t\t\t}\n\t\t\t})\n\t\tfor (const a of Object.getOwnPropertySymbols(value)) {\n\t\t\tres[a as any] = value[a]\n\t\t}\n\t\treturn res\n\t},\n}\n","import { DataModel } from '@mcschema/core'\nimport { useCallback, useEffect, useRef, useState } from 'preact/hooks'\nimport { useLocale } from '../../contexts/index.js'\nimport { useModel } from '../../hooks/index.js'\nimport { getOutput } from '../../schema/transformOutput.js'\nimport type { BlockStateRegistry } from '../../services/index.js'\nimport { getSourceFormats, getSourceIndent, getSourceIndents, parseSource, stringifySource } from '../../services/index.js'\nimport { Store } from '../../Store.js'\nimport { message } from '../../Utils.js'\nimport { Btn, BtnMenu } from '../index.js'\n\ninterface Editor {\n\tgetValue(): string\n\tsetValue(value: string): void\n\tconfigure(indent: string, format: string): void\n\tselect(): void\n}\n\ntype SourcePanelProps = {\n\tname: string,\n\tmodel: DataModel | undefined,\n\tblockStates: BlockStateRegistry | undefined,\n\tdoCopy?: number,\n\tdoDownload?: number,\n\tdoImport?: number,\n\tcopySuccess: () => unknown,\n\tonError: (message: string | Error) => unknown,\n}\nexport function SourcePanel({ name, model, blockStates, doCopy, doDownload, doImport, copySuccess, onError }: SourcePanelProps) {\n\tconst { locale } = useLocale()\n\tconst [indent, setIndent] = useState(Store.getIndent())\n\tconst [format, setFormat] = useState(Store.getFormat())\n\tconst [highlighting, setHighlighting] = useState(Store.getHighlighting())\n\tconst [braceLoaded, setBraceLoaded] = useState(false)\n\tconst download = useRef<HTMLAnchorElement>(null)\n\tconst retransform = useRef<Function>(() => {})\n\tconst onImport = useRef<() => Promise<void>>(async () => {})\n\n\tconst textarea = useRef<HTMLTextAreaElement>(null)\n\tconst editor = useRef<Editor>()\n\n\tconst getSerializedOutput = useCallback((model: DataModel, blockStates: BlockStateRegistry) => {\n\t\tconst data = getOutput(model, blockStates)\n\t\treturn stringifySource(data, format, indent)\n\t}, [indent, format])\n\n\tuseEffect(() => {\n\t\tretransform.current = () => {\n\t\t\tif (!editor.current) return\n\t\t\tif (!model || !blockStates) return\n\t\t\ttry {\n\t\t\t\tconst output = getSerializedOutput(model, blockStates)\n\t\t\t\teditor.current.setValue(output)\n\t\t\t} catch (e) {\n\t\t\t\tif (e instanceof Error) {\n\t\t\t\t\te.message = `Error getting JSON output: ${e.message}`\n\t\t\t\t\tonError(e)\n\t\t\t\t} else {\n\t\t\t\t\tonError(`Error getting JSON output: ${message(e)}`)\n\t\t\t\t}\n\t\t\t\tconsole.error(e)\n\t\t\t\teditor.current.setValue('')\n\t\t\t}\n\t\t}\n\n\t\tonImport.current = async () => {\n\t\t\tif (!editor.current) return\n\t\t\tconst value = editor.current.getValue()\n\t\t\tif (value.length === 0) return\n\t\t\ttry {\n\t\t\t\tconst data = await parseSource(value, format)\n\t\t\t\tmodel?.reset(DataModel.wrapLists(data), false)\n\t\t\t} catch (e) {\n\t\t\t\tif (e instanceof Error) {\n\t\t\t\t\te.message = `Error importing: ${e.message}`\n\t\t\t\t\tonError(e)\n\t\t\t\t} else {\n\t\t\t\t\tonError(`Error importing: ${message(e)}`)\n\t\t\t\t}\n\t\t\t\tconsole.error(e)\n\t\t\t}\n\t\t}\n\t}, [model, blockStates, indent, format, highlighting])\n\n\tuseEffect(() => {\n\t\tif (highlighting) {\n\t\t\tsetBraceLoaded(false)\n\t\t\teditor.current = {\n\t\t\t\tgetValue() { return ''},\n\t\t\t\tsetValue() {},\n\t\t\t\tconfigure() {},\n\t\t\t\tselect() {},\n\t\t\t}\n\t\t\timport('brace').then(async (brace) => {\n\t\t\t\tawait Promise.all([\n\t\t\t\t\timport('brace/mode/json'),\n\t\t\t\t\timport('brace/mode/yaml'),\n\t\t\t\t])\n\t\t\t\tconst braceEditor = brace.edit('editor')\n\t\t\t\tbraceEditor.setOptions({\n\t\t\t\t\tfontSize: 14,\n\t\t\t\t\tshowFoldWidgets: false,\n\t\t\t\t\thighlightSelectedWord: false,\n\t\t\t\t})\n\t\t\t\tbraceEditor.$blockScrolling = Infinity\n\t\t\t\tbraceEditor.on('blur', () => onImport.current())\n\t\t\t\tbraceEditor.getSession().setMode('ace/mode/json')\n\n\t\t\t\teditor.current = {\n\t\t\t\t\tgetValue() {\n\t\t\t\t\t\treturn braceEditor.getSession().getValue()\n\t\t\t\t\t},\n\t\t\t\t\tsetValue(value) {\n\t\t\t\t\t\tbraceEditor.getSession().setValue(value)\n\t\t\t\t\t},\n\t\t\t\t\tconfigure(indent, format) {\n\t\t\t\t\t\tbraceEditor.setOption('useSoftTabs', indent !== 'tabs')\n\t\t\t\t\t\tbraceEditor.setOption('tabSize', indent === 'tabs' ? 4 : getSourceIndent(indent))\n\t\t\t\t\t\tbraceEditor.getSession().setMode(`ace/mode/${format}`)\n\t\t\t\t\t},\n\t\t\t\t\tselect() {\n\t\t\t\t\t\tbraceEditor.selectAll()\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t\tsetBraceLoaded(true)\n\t\t\t})\n\t\t} else {\n\t\t\teditor.current = {\n\t\t\t\tgetValue() {\n\t\t\t\t\tif (!textarea.current) return ''\n\t\t\t\t\treturn textarea.current.value\n\t\t\t\t},\n\t\t\t\tsetValue(value: string) {\n\t\t\t\t\tif (!textarea.current) return\n\t\t\t\t\ttextarea.current.value = value\n\t\t\t\t},\n\t\t\t\tconfigure() {},\n\t\t\t\tselect() {},\n\t\t\t}\n\t\t}\n\t}, [highlighting])\n\n\tuseModel(model, () => {\n\t\tif (!retransform.current) return\n\t\tretransform.current()\n\t})\n\tuseEffect(() => {\n\t\tif (!retransform.current) return\n\t\tif (model) retransform.current()\n\t}, [model])\n\n\tuseEffect(() => {\n\t\tif (!editor.current || !retransform.current) return\n\t\tif (!highlighting || braceLoaded) {\n\t\t\teditor.current.configure(indent, format)\n\t\t\tretransform.current()\n\t\t}\n\t}, [indent, format, highlighting, braceLoaded])\n\n\tuseEffect(() => {\n\t\tif (doCopy && model && blockStates) {\n\t\t\tnavigator.clipboard.writeText(getSerializedOutput(model, blockStates)).then(() => {\n\t\t\t\tcopySuccess()\n\t\t\t})\n\t\t}\n\t}, [doCopy])\n\n\tuseEffect(() => {\n\t\tif (doDownload && model && blockStates && download.current) {\n\t\t\tconst content = encodeURIComponent(getSerializedOutput(model, blockStates))\n\t\t\tdownload.current.setAttribute('href', `data:text/json;charset=utf-8,${content}`)\n\t\t\tconst fileName = name === 'pack_mcmeta' ? 'pack.mcmeta' : `${name}.${format}`\n\t\t\tdownload.current.setAttribute('download', fileName)\n\t\t\tdownload.current.click()\n\t\t}\n\t}, [doDownload])\n\n\tuseEffect(() => {\n\t\tif (doImport && editor.current) {\n\t\t\teditor.current.setValue('')\n\t\t\teditor.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\tconst changeHighlighting = (value: boolean) => {\n\t\tStore.setHighlighting(value)\n\t\tsetHighlighting(value)\n\t}\n\n\treturn <> \n\t\t<div class=\"controls source-controls\">\n\t\t\t<BtnMenu icon=\"gear\" tooltip={locale('output_settings')} data-cy=\"source-controls\">\n\t\t\t\t{getSourceIndents().map(key =>\n\t\t\t\t\t<Btn label={locale(`indentation.${key}`)} active={indent === key}\n\t\t\t\t\t\tonClick={() => changeIndent(key)}/>\n\t\t\t\t)}\n\t\t\t\t<hr />\n\t\t\t\t{getSourceFormats().map(key =>\n\t\t\t\t\t<Btn label={locale(`format.${key}`)} active={format === key}\n\t\t\t\t\t\tonClick={() => changeFormat(key)} />)}\n\t\t\t\t<hr />\n\t\t\t\t<Btn icon={highlighting ? 'square_fill' : 'square'} label={locale('highlighting')}\n\t\t\t\t\tonClick={() => changeHighlighting(!highlighting)} />\n\t\t\t</BtnMenu>\n\t\t</div>\n\t\t{highlighting\n\t\t\t? <pre id=\"editor\" class=\"source\"></pre>\n\t\t\t: <textarea ref={textarea} class=\"source\" spellcheck={false} autocorrect=\"off\" onBlur={onImport.current}></textarea>}\n\t\t<a ref={download} style=\"display: none;\"></a>\n\t</>\n}\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 d,Fragment as v,render as p,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){var e=C({},t);return delete e.ref,n(e,t.ref||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:d(d(n).map(t))},k={map:N,forEach:N,count:function(n){return n?d(n).length:0},only:function(n){var t=d(n);if(1!==t.length)throw\"Children.only\";return t[0]},toArray:d},A=h.__e;h.__e=function(n,t,e,r){if(n.then)for(var u,o=t;o=o.__;)if((u=o.__c)&&u.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),u.__c(n,t);A(n,t,e,r)};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 F(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 M(){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 T=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]<e[0])break;n.u=e=e[2]}};function D(n){return this.getChildContext=function(){return n.context},n.children}function I(n){var t=this,e=n.i;t.componentWillUnmount=function(){p(null,t.l),t.l=null,t.i=null},t.i&&t.i!==e&&t.componentWillUnmount(),n.__v?(t.l||(t.i=e,t.l={nodeType:1,parentNode:e,childNodes:[],appendChild:function(n){this.childNodes.push(n),t.i.appendChild(n)},insertBefore:function(n,e){this.childNodes.push(n),t.i.appendChild(n)},removeChild:function(n){this.childNodes.splice(this.childNodes.indexOf(n)>>>1,1),t.i.removeChild(n)}}),p(s(D,{context:t.context},n.__v),t.l)):t.l&&t.componentWillUnmount()}function W(n,t){var e=s(I,{__v:n,i:t});return e.containerInfo=t,e}(M.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),T(t,n,r)):u()};e?e(o):o()}},M.prototype.render=function(n){this.u=null,this.o=new Map;var t=d(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},M.prototype.componentDidUpdate=M.prototype.componentDidMount=function(){var n=this;this.o.forEach(function(t,e){T(n,e,t)})};var P=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103,V=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|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]/,j=\"undefined\"!=typeof document,z=function(n){return(\"undefined\"!=typeof Symbol&&\"symbol\"==typeof Symbol()?/fil|che|rad/i:/fil|che|ra/i).test(n)};function B(n,t,e){return null==t.__k&&(t.textContent=\"\"),p(n,t),\"function\"==typeof e&&e(),n?n.__c:null}function $(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 q(){return this.defaultPrevented}h.event=function(n){return H&&(n=H(n)),n.persist=Z,n.isPropagationStopped=Y,n.isDefaultPrevented=q,n.nativeEvent=n};var G,J={configurable:!0,get:function(){return this.class}},K=h.vnode;h.vnode=function(n){var t=n.type,e=n.props,r=e;if(\"string\"==typeof t){var u=-1===t.indexOf(\"-\");for(var o in r={},e){var i=e[o];j&&\"children\"===o&&\"noscript\"===t||\"value\"===o&&\"defaultValue\"in e&&null==i||(\"defaultValue\"===o&&\"value\"in e&&null==e.value?o=\"value\":\"download\"===o&&!0===i?i=\"\":/ondoubleclick/i.test(o)?o=\"ondblclick\":/^onchange(textarea|input)/i.test(o+t)&&!z(e.type)?o=\"oninput\":/^onfocus$/i.test(o)?o=\"onfocusin\":/^onblur$/i.test(o)?o=\"onfocusout\":/^on(Ani|Tra|Tou|BeforeInp|Compo)/.test(o)?o=o.toLowerCase():u&&V.test(o)?o=o.replace(/[A-Z0-9]/,\"-$&\").toLowerCase():null===i&&(i=void 0),/^oninput/i.test(o)&&(o=o.toLowerCase(),r[o]&&(o=\"oninputCapture\")),r[o]=i)}\"select\"==t&&r.multiple&&Array.isArray(r.value)&&(r.value=d(e.children).forEach(function(n){n.props.selected=-1!=r.value.indexOf(n.props.value)})),\"select\"==t&&null!=r.defaultValue&&(r.value=d(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,e.class!=e.className&&(J.enumerable=\"className\"in e,null!=e.className&&(r.class=e.className),Object.defineProperty(r,\"className\",J))}n.$$typeof=P,K&&K(n)};var Q=h.__r;h.__r=function(n){Q&&Q(n),G=n.__c};var X={ReactCurrentDispatcher:{current:{readContext:function(n){return G.__n[n.__c].props.value}}}},nn=\"17.0.2\";function tn(n){return s.bind(null,n)}function en(n){return!!n&&n.$$typeof===P}function rn(n){return en(n)?y.apply(null,arguments):n}function un(n){return!!n.__k&&(p(null,n),!0)}function on(n){return n&&(n.base||1===n.nodeType&&n)||null}var ln=function(n,t){return n(t)},fn=function(n,t){return n(t)},cn=v;export default{useState:n,useReducer:t,useEffect:e,useLayoutEffect:r,useRef:u,useImperativeHandle:o,useMemo:i,useCallback:l,useContext:f,useDebugValue:c,version:\"17.0.2\",Children:k,render:B,hydrate:$,unmountComponentAtNode:un,createPortal:W,createElement:s,createContext:_,createFactory:tn,cloneElement:rn,createRef:b,Fragment:v,isValidElement:en,findDOMNode:on,Component:a,PureComponent:E,memo:g,forwardRef:x,flushSync:fn,unstable_batchedUpdates:ln,StrictMode:v,Suspense:L,SuspenseList:M,lazy:F,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:X};export{nn as version,k as Children,B as render,$ as hydrate,un as unmountComponentAtNode,W as createPortal,tn as createFactory,rn as cloneElement,en as isValidElement,on as findDOMNode,E as PureComponent,g as memo,x as forwardRef,fn as flushSync,ln as unstable_batchedUpdates,cn as StrictMode,L as Suspense,M as SuspenseList,F as lazy,X as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED};\n//# sourceMappingURL=compat.module.js.map\n","import type { BlockModelProvider, TextureAtlasProvider, UV } from 'deepslate/render'\nimport { BlockModel, Identifier, ItemRenderer, TextureAtlas, upperPowerOfTwo } from 'deepslate/render'\nimport { message } from '../Utils.js'\nimport { fetchResources } from './DataFetcher.js'\nimport type { VersionId } from './Schemas.js'\n\nconst Resources: Record<string, ResourceManager | Promise<ResourceManager>> = {}\n\nexport async function getResources(version: VersionId) {\n\tif (!Resources[version]) {\n\t\tResources[version] = (async () => {\n\t\t\ttry {\n\t\t\t\tconst { models, uvMapping, atlas} = await fetchResources(version)\n\t\t\t\tResources[version] = new ResourceManager(models, uvMapping, atlas)\n\t\t\t\treturn Resources[version]\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error('Error: ', e)\n\t\t\t\tthrow new Error(`Cannot get resources for version ${version}: ${message(e)}`)\n\t\t\t}\n\t\t})()\n\t\treturn Resources[version]\n\t}\n\treturn Resources[version]\n}\n\nconst RENDER_SIZE = 128\nconst ItemRenderCache = new Map<string, Promise<string>>()\n\nexport async function renderItem(version: VersionId, item: string) {\n\tconst cache_key = `${version} ${item}`\n\tconst cached = ItemRenderCache.get(cache_key)\n\tif (cached !== undefined) {\n\t\treturn cached\n\t}\n\n\tconst promise = (async () => {\n\t\tconst canvas = document.createElement('canvas')\n\t\tcanvas.width = RENDER_SIZE\n\t\tcanvas.height = RENDER_SIZE\n\t\tconst resources = await getResources(version)\n\t\tconst gl = canvas.getContext('webgl2', { preserveDrawingBuffer: true })\n\t\tif (!gl) {\n\t\t\tthrow new Error('Cannot get WebGL2 context')\n\t\t}\n\t\tconst renderer = new ItemRenderer(gl, Identifier.parse(item), resources)\n\t\trenderer.drawItem()\n\t\treturn canvas.toDataURL()\n\t})()\n\tItemRenderCache.set(cache_key, promise)\n\treturn promise\n}\n\nexport class ResourceManager implements BlockModelProvider, TextureAtlasProvider {\n\tprivate blockModels: { [id: string]: BlockModel }\n\tprivate textureAtlas: TextureAtlas\n\n\tconstructor(models: Map<string, unknown>, uvMapping: any, textureAtlas: HTMLImageElement) {\n\t\tthis.blockModels = {}\n\t\tthis.textureAtlas = TextureAtlas.empty()\n\t\tthis.loadBlockModels(models)\n\t\tthis.loadBlockAtlas(textureAtlas, uvMapping)\n\t}\n\n\tpublic getBlockModel(id: Identifier) {\n\t\treturn this.blockModels[id.toString()]\n\t}\n\n\tpublic getTextureUV(id: Identifier) {\n\t\treturn this.textureAtlas.getTextureUV(id)\n\t}\n\n\tpublic getTextureAtlas() {\n\t\treturn this.textureAtlas.getTextureAtlas()\n\t}\n\n\tprivate loadBlockModels(models: Map<string, unknown>) {\n\t\t[...models.entries()].forEach(([id, model]) => {\n\t\t\tthis.blockModels[Identifier.create(id).toString()] = BlockModel.fromJson(id, model)\n\t\t})\n\t\tObject.values(this.blockModels).forEach(m => m.flatten(this))\n\t}\n\n\tprivate loadBlockAtlas(image: HTMLImageElement, textures: any) {\n\t\tconst atlasCanvas = document.createElement('canvas')\n\t\tconst w = upperPowerOfTwo(image.width)\n\t\tconst h = upperPowerOfTwo(image.height)\n\t\tatlasCanvas.width = w\n\t\tatlasCanvas.height = h\n\t\tconst ctx = atlasCanvas.getContext('2d')!\n\t\tctx.drawImage(image, 0, 0)\n\t\tconst imageData = ctx.getImageData(0, 0, w, h)\n\n\t\tconst idMap: Record<string, UV> = {}\n\t\tObject.keys(textures).forEach(id => {\n\t\t\tconst [u, v, du, dv] = textures[id]\n\t\t\tconst dv2 = (du !== dv && id.startsWith('block/')) ? du : dv\n\t\t\tidMap[Identifier.create(id).toString()] = [u / w, v / h, (u + du) / w, (v + dv2) / h]\n\t\t})\n\t\tthis.textureAtlas = new TextureAtlas(imageData, idMap)\n\t}\n}\n","export const Octicon = {\n\talert: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8.22 1.754a.25.25 0 00-.44 0L1.698 13.132a.25.25 0 00.22.368h12.164a.25.25 0 00.22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0114.082 15H1.918a1.75 1.75 0 01-1.543-2.575L6.457 1.047zM9 11a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.25a.75.75 0 00-1.5 0v2.5a.75.75 0 001.5 0v-2.5z\"></path></svg>,\n\tarchive: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1.75 2.5a.25.25 0 00-.25.25v1.5c0 .138.112.25.25.25h12.5a.25.25 0 00.25-.25v-1.5a.25.25 0 00-.25-.25H1.75zM0 2.75C0 1.784.784 1 1.75 1h12.5c.966 0 1.75.784 1.75 1.75v1.5A1.75 1.75 0 0114.25 6H1.75A1.75 1.75 0 010 4.25v-1.5zM1.75 7a.75.75 0 01.75.75v5.5c0 .138.112.25.25.25h10.5a.25.25 0 00.25-.25v-5.5a.75.75 0 111.5 0v5.5A1.75 1.75 0 0113.25 15H2.75A1.75 1.75 0 011 13.25v-5.5A.75.75 0 011.75 7zm4.5 1a.75.75 0 000 1.5h3.5a.75.75 0 100-1.5h-3.5z\"></path></svg>,\n\tarrow_left: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M7.78 12.53a.75.75 0 01-1.06 0L2.47 8.28a.75.75 0 010-1.06l4.25-4.25a.75.75 0 011.06 1.06L4.81 7h7.44a.75.75 0 010 1.5H4.81l2.97 2.97a.75.75 0 010 1.06z\"></path></svg>,\n\tarrow_right: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8.22 2.97a.75.75 0 011.06 0l4.25 4.25a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06-1.06l2.97-2.97H3.75a.75.75 0 010-1.5h7.44L8.22 4.03a.75.75 0 010-1.06z\"></path></svg>,\n\tcheck: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z\"></path></svg>,\n\tchevron_down: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M12.78 6.22a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06 0L3.22 7.28a.75.75 0 011.06-1.06L8 9.94l3.72-3.72a.75.75 0 011.06 0z\"></path></svg>,\n\tchevron_left: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M9.78 12.78a.75.75 0 01-1.06 0L4.47 8.53a.75.75 0 010-1.06l4.25-4.25a.75.75 0 011.06 1.06L6.06 8l3.72 3.72a.75.75 0 010 1.06z\"></path></svg>,\n\tchevron_right: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M6.22 3.22a.75.75 0 011.06 0l4.25 4.25a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06-1.06L9.94 8 6.22 4.28a.75.75 0 010-1.06z\"></path></svg>,\n\tchevron_up: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M3.22 9.78a.75.75 0 010-1.06l4.25-4.25a.75.75 0 011.06 0l4.25 4.25a.75.75 0 01-1.06 1.06L8 6.06 4.28 9.78a.75.75 0 01-1.06 0z\"></path></svg>,\n\tclippy: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M5.75 1a.75.75 0 00-.75.75v3c0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75v-3a.75.75 0 00-.75-.75h-4.5zm.75 3V2.5h3V4h-3zm-2.874-.467a.75.75 0 00-.752-1.298A1.75 1.75 0 002 3.75v9.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 13.25v-9.5a1.75 1.75 0 00-.874-1.515.75.75 0 10-.752 1.298.25.25 0 01.126.217v9.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-9.5a.25.25 0 01.126-.217z\"></path></svg>,\n\tcode: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M4.72 3.22a.75.75 0 011.06 1.06L2.06 8l3.72 3.72a.75.75 0 11-1.06 1.06L.47 8.53a.75.75 0 010-1.06l4.25-4.25zm6.56 0a.75.75 0 10-1.06 1.06L13.94 8l-3.72 3.72a.75.75 0 101.06 1.06l4.25-4.25a.75.75 0 000-1.06l-4.25-4.25z\"></path></svg>,\n\tcodescan_checkmark: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path d=\"M10.28 6.28a.75.75 0 10-1.06-1.06L6.25 8.19l-.97-.97a.75.75 0 00-1.06 1.06l1.5 1.5a.75.75 0 001.06 0l3.5-3.5z\"></path><path fill-rule=\"evenodd\" d=\"M7.5 15a7.469 7.469 0 004.746-1.693l2.474 2.473a.75.75 0 101.06-1.06l-2.473-2.474A7.5 7.5 0 107.5 15zm0-13.5a6 6 0 104.094 10.386.75.75 0 01.293-.292A6 6 0 007.5 1.5z\"></path></svg>,\n\tdash: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M2 8a.75.75 0 01.75-.75h10.5a.75.75 0 010 1.5H2.75A.75.75 0 012 8z\"></path></svg>,\n\tdevice_desktop: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1.75 2.5h12.5a.25.25 0 01.25.25v7.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25v-7.5a.25.25 0 01.25-.25zM14.25 1H1.75A1.75 1.75 0 000 2.75v7.5C0 11.216.784 12 1.75 12h3.727c-.1 1.041-.52 1.872-1.292 2.757A.75.75 0 004.75 16h6.5a.75.75 0 00.565-1.243c-.772-.885-1.193-1.716-1.292-2.757h3.727A1.75 1.75 0 0016 10.25v-7.5A1.75 1.75 0 0014.25 1zM9.018 12H6.982a5.72 5.72 0 01-.765 2.5h3.566a5.72 5.72 0 01-.765-2.5z\"></path></svg>,\n\tdot_fill: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8 4a4 4 0 100 8 4 4 0 000-8z\"></path></svg>,\n\tdownload: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M7.47 10.78a.75.75 0 001.06 0l3.75-3.75a.75.75 0 00-1.06-1.06L8.75 8.44V1.75a.75.75 0 00-1.5 0v6.69L4.78 5.97a.75.75 0 00-1.06 1.06l3.75 3.75zM3.75 13a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5z\"></path></svg>,\n\tduplicate: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path d=\"M10.5 3a.75.75 0 01.75.75v1h1a.75.75 0 010 1.5h-1v1a.75.75 0 01-1.5 0v-1h-1a.75.75 0 010-1.5h1v-1A.75.75 0 0110.5 3z\"></path><path fill-rule=\"evenodd\" d=\"M6.75 0A1.75 1.75 0 005 1.75v7.5c0 .966.784 1.75 1.75 1.75h7.5A1.75 1.75 0 0016 9.25v-7.5A1.75 1.75 0 0014.25 0h-7.5zM6.5 1.75a.25.25 0 01.25-.25h7.5a.25.25 0 01.25.25v7.5a.25.25 0 01-.25.25h-7.5a.25.25 0 01-.25-.25v-7.5z\"></path><path d=\"M1.75 5A1.75 1.75 0 000 6.75v7.5C0 15.216.784 16 1.75 16h7.5A1.75 1.75 0 0011 14.25v-1.5a.75.75 0 00-1.5 0v1.5a.25.25 0 01-.25.25h-7.5a.25.25 0 01-.25-.25v-7.5a.25.25 0 01.25-.25h1.5a.75.75 0 000-1.5h-1.5z\"></path></svg>,\n\teye: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1.679 7.932c.412-.621 1.242-1.75 2.366-2.717C5.175 4.242 6.527 3.5 8 3.5c1.473 0 2.824.742 3.955 1.715 1.124.967 1.954 2.096 2.366 2.717a.119.119 0 010 .136c-.412.621-1.242 1.75-2.366 2.717C10.825 11.758 9.473 12.5 8 12.5c-1.473 0-2.824-.742-3.955-1.715C2.92 9.818 2.09 8.69 1.679 8.068a.119.119 0 010-.136zM8 2c-1.981 0-3.67.992-4.933 2.078C1.797 5.169.88 6.423.43 7.1a1.619 1.619 0 000 1.798c.45.678 1.367 1.932 2.637 3.024C4.329 13.008 6.019 14 8 14c1.981 0 3.67-.992 4.933-2.078 1.27-1.091 2.187-2.345 2.637-3.023a1.619 1.619 0 000-1.798c-.45-.678-1.367-1.932-2.637-3.023C11.671 2.992 9.981 2 8 2zm0 8a2 2 0 100-4 2 2 0 000 4z\"></path></svg>,\n\teye_closed: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M.143 2.31a.75.75 0 011.047-.167l14.5 10.5a.75.75 0 11-.88 1.214l-2.248-1.628C11.346 13.19 9.792 14 8 14c-1.981 0-3.67-.992-4.933-2.078C1.797 10.832.88 9.577.43 8.9a1.618 1.618 0 010-1.797c.353-.533.995-1.42 1.868-2.305L.31 3.357A.75.75 0 01.143 2.31zm3.386 3.378a14.21 14.21 0 00-1.85 2.244.12.12 0 00-.022.068c0 .021.006.045.022.068.412.621 1.242 1.75 2.366 2.717C5.175 11.758 6.527 12.5 8 12.5c1.195 0 2.31-.488 3.29-1.191L9.063 9.695A2 2 0 016.058 7.52l-2.53-1.832zM8 3.5c-.516 0-1.017.09-1.499.251a.75.75 0 11-.473-1.423A6.23 6.23 0 018 2c1.981 0 3.67.992 4.933 2.078 1.27 1.091 2.187 2.345 2.637 3.023a1.619 1.619 0 010 1.798c-.11.166-.248.365-.41.587a.75.75 0 11-1.21-.887c.148-.201.272-.382.371-.53a.119.119 0 000-.137c-.412-.621-1.242-1.75-2.366-2.717C10.825 4.242 9.473 3.5 8 3.5z\"></path></svg>,\n\tfile: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M3.75 1.5a.25.25 0 00-.25.25v11.5c0 .138.112.25.25.25h8.5a.25.25 0 00.25-.25V6H9.75A1.75 1.75 0 018 4.25V1.5H3.75zm5.75.56v2.19c0 .138.112.25.25.25h2.19L9.5 2.06zM2 1.75C2 .784 2.784 0 3.75 0h5.086c.464 0 .909.184 1.237.513l3.414 3.414c.329.328.513.773.513 1.237v8.086A1.75 1.75 0 0112.25 15h-8.5A1.75 1.75 0 012 13.25V1.75z\"></path></svg>,\n\tfile_directory: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1.75 1A1.75 1.75 0 000 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0016 13.25v-8.5A1.75 1.75 0 0014.25 3h-6.5a.25.25 0 01-.2-.1l-.9-1.2c-.33-.44-.85-.7-1.4-.7h-3.5z\"></path></svg>,\n\tfile_zip: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M3.5 1.75a.25.25 0 01.25-.25h3a.75.75 0 000 1.5h.5a.75.75 0 000-1.5h2.086a.25.25 0 01.177.073l2.914 2.914a.25.25 0 01.073.177v8.586a.25.25 0 01-.25.25h-.5a.75.75 0 000 1.5h.5A1.75 1.75 0 0014 13.25V4.664c0-.464-.184-.909-.513-1.237L10.573.513A1.75 1.75 0 009.336 0H3.75A1.75 1.75 0 002 1.75v11.5c0 .649.353 1.214.874 1.515a.75.75 0 10.752-1.298.25.25 0 01-.126-.217V1.75zM8.75 3a.75.75 0 000 1.5h.5a.75.75 0 000-1.5h-.5zM6 5.25a.75.75 0 01.75-.75h.5a.75.75 0 010 1.5h-.5A.75.75 0 016 5.25zm2 1.5A.75.75 0 018.75 6h.5a.75.75 0 010 1.5h-.5A.75.75 0 018 6.75zm-1.25.75a.75.75 0 000 1.5h.5a.75.75 0 000-1.5h-.5zM8 9.75A.75.75 0 018.75 9h.5a.75.75 0 010 1.5h-.5A.75.75 0 018 9.75zm-.75.75a1.75 1.75 0 00-1.75 1.75v3c0 .414.336.75.75.75h2.5a.75.75 0 00.75-.75v-3a1.75 1.75 0 00-1.75-1.75h-.5zM7 12.25a.25.25 0 01.25-.25h.5a.25.25 0 01.25.25v2.25H7v-2.25z\"></path></svg>,\n\tgear: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M7.429 1.525a6.593 6.593 0 011.142 0c.036.003.108.036.137.146l.289 1.105c.147.56.55.967.997 1.189.174.086.341.183.501.29.417.278.97.423 1.53.27l1.102-.303c.11-.03.175.016.195.046.219.31.41.641.573.989.014.031.022.11-.059.19l-.815.806c-.411.406-.562.957-.53 1.456a4.588 4.588 0 010 .582c-.032.499.119 1.05.53 1.456l.815.806c.08.08.073.159.059.19a6.494 6.494 0 01-.573.99c-.02.029-.086.074-.195.045l-1.103-.303c-.559-.153-1.112-.008-1.529.27-.16.107-.327.204-.5.29-.449.222-.851.628-.998 1.189l-.289 1.105c-.029.11-.101.143-.137.146a6.613 6.613 0 01-1.142 0c-.036-.003-.108-.037-.137-.146l-.289-1.105c-.147-.56-.55-.967-.997-1.189a4.502 4.502 0 01-.501-.29c-.417-.278-.97-.423-1.53-.27l-1.102.303c-.11.03-.175-.016-.195-.046a6.492 6.492 0 01-.573-.989c-.014-.031-.022-.11.059-.19l.815-.806c.411-.406.562-.957.53-1.456a4.587 4.587 0 010-.582c.032-.499-.119-1.05-.53-1.456l-.815-.806c-.08-.08-.073-.159-.059-.19a6.44 6.44 0 01.573-.99c.02-.029.086-.075.195-.045l1.103.303c.559.153 1.112.008 1.529-.27.16-.107.327-.204.5-.29.449-.222.851-.628.998-1.189l.289-1.105c.029-.11.101-.143.137-.146zM8 0c-.236 0-.47.01-.701.03-.743.065-1.29.615-1.458 1.261l-.29 1.106c-.017.066-.078.158-.211.224a5.994 5.994 0 00-.668.386c-.123.082-.233.09-.3.071L3.27 2.776c-.644-.177-1.392.02-1.82.63a7.977 7.977 0 00-.704 1.217c-.315.675-.111 1.422.363 1.891l.815.806c.05.048.098.147.088.294a6.084 6.084 0 000 .772c.01.147-.038.246-.088.294l-.815.806c-.474.469-.678 1.216-.363 1.891.2.428.436.835.704 1.218.428.609 1.176.806 1.82.63l1.103-.303c.066-.019.176-.011.299.071.213.143.436.272.668.386.133.066.194.158.212.224l.289 1.106c.169.646.715 1.196 1.458 1.26a8.094 8.094 0 001.402 0c.743-.064 1.29-.614 1.458-1.26l.29-1.106c.017-.066.078-.158.211-.224a5.98 5.98 0 00.668-.386c.123-.082.233-.09.3-.071l1.102.302c.644.177 1.392-.02 1.82-.63.268-.382.505-.789.704-1.217.315-.675.111-1.422-.364-1.891l-.814-.806c-.05-.048-.098-.147-.088-.294a6.1 6.1 0 000-.772c-.01-.147.039-.246.088-.294l.814-.806c.475-.469.679-1.216.364-1.891a7.992 7.992 0 00-.704-1.218c-.428-.609-1.176-.806-1.82-.63l-1.103.303c-.066.019-.176.011-.299-.071a5.991 5.991 0 00-.668-.386c-.133-.066-.194-.158-.212-.224L10.16 1.29C9.99.645 9.444.095 8.701.031A8.094 8.094 0 008 0zm1.5 8a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zM11 8a3 3 0 11-6 0 3 3 0 016 0z\"></path></svg>,\n\tgit_commit: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M10.5 7.75a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0zm1.43.75a4.002 4.002 0 01-7.86 0H.75a.75.75 0 110-1.5h3.32a4.001 4.001 0 017.86 0h3.32a.75.75 0 110 1.5h-3.32z\"></path></svg>,\n\tglobe: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1.543 7.25h2.733c.144-2.074.866-3.756 1.58-4.948.12-.197.237-.381.353-.552a6.506 6.506 0 00-4.666 5.5zm2.733 1.5H1.543a6.506 6.506 0 004.666 5.5 11.13 11.13 0 01-.352-.552c-.715-1.192-1.437-2.874-1.581-4.948zm1.504 0h4.44a9.637 9.637 0 01-1.363 4.177c-.306.51-.612.919-.857 1.215a9.978 9.978 0 01-.857-1.215A9.637 9.637 0 015.78 8.75zm4.44-1.5H5.78a9.637 9.637 0 011.363-4.177c.306-.51.612-.919.857-1.215.245.296.55.705.857 1.215A9.638 9.638 0 0110.22 7.25zm1.504 1.5c-.144 2.074-.866 3.756-1.58 4.948-.12.197-.237.381-.353.552a6.506 6.506 0 004.666-5.5h-2.733zm2.733-1.5h-2.733c-.144-2.074-.866-3.756-1.58-4.948a11.738 11.738 0 00-.353-.552 6.506 6.506 0 014.666 5.5zM8 0a8 8 0 100 16A8 8 0 008 0z\"></path></svg>,\n\theart: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M4.25 2.5c-1.336 0-2.75 1.164-2.75 3 0 2.15 1.58 4.144 3.365 5.682A20.565 20.565 0 008 13.393a20.561 20.561 0 003.135-2.211C12.92 9.644 14.5 7.65 14.5 5.5c0-1.836-1.414-3-2.75-3-1.373 0-2.609.986-3.029 2.456a.75.75 0 01-1.442 0C6.859 3.486 5.623 2.5 4.25 2.5zM8 14.25l-.345.666-.002-.001-.006-.003-.018-.01a7.643 7.643 0 01-.31-.17 22.075 22.075 0 01-3.434-2.414C2.045 10.731 0 8.35 0 5.5 0 2.836 2.086 1 4.25 1 5.797 1 7.153 1.802 8 3.02 8.847 1.802 10.203 1 11.75 1 13.914 1 16 2.836 16 5.5c0 2.85-2.045 5.231-3.885 6.818a22.08 22.08 0 01-3.744 2.584l-.018.01-.006.003h-.002L8 14.25zm0 0l.345.666a.752.752 0 01-.69 0L8 14.25z\"></path></svg>,\n\thistory: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1.643 3.143L.427 1.927A.25.25 0 000 2.104V5.75c0 .138.112.25.25.25h3.646a.25.25 0 00.177-.427L2.715 4.215a6.5 6.5 0 11-1.18 4.458.75.75 0 10-1.493.154 8.001 8.001 0 101.6-5.684zM7.75 4a.75.75 0 01.75.75v2.992l2.028.812a.75.75 0 01-.557 1.392l-2.5-1A.75.75 0 017 8.25v-3.5A.75.75 0 017.75 4z\"></path></svg>,\n\tinfo: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8 1.5a6.5 6.5 0 100 13 6.5 6.5 0 000-13zM0 8a8 8 0 1116 0A8 8 0 010 8zm6.5-.25A.75.75 0 017.25 7h1a.75.75 0 01.75.75v2.75h.25a.75.75 0 010 1.5h-2a.75.75 0 010-1.5h.25v-2h-.25a.75.75 0 01-.75-.75zM8 6a1 1 0 100-2 1 1 0 000 2z\"></path></svg>,\n\tissue_opened: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8 1.5a6.5 6.5 0 100 13 6.5 6.5 0 000-13zM0 8a8 8 0 1116 0A8 8 0 010 8zm9 3a1 1 0 11-2 0 1 1 0 012 0zm-.25-6.25a.75.75 0 00-1.5 0v3.5a.75.75 0 001.5 0v-3.5z\"></path></svg>,\n\tkebab_horizontal: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path d=\"M8 9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zM1.5 9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zm13 0a1.5 1.5 0 100-3 1.5 1.5 0 000 3z\"></path></svg>,\n\tlink: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg>,\n\tlink_external: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M10.604 1h4.146a.25.25 0 01.25.25v4.146a.25.25 0 01-.427.177L13.03 4.03 9.28 7.78a.75.75 0 01-1.06-1.06l3.75-3.75-1.543-1.543A.25.25 0 0110.604 1zM3.75 2A1.75 1.75 0 002 3.75v8.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 12.25v-3.5a.75.75 0 00-1.5 0v3.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-8.5a.25.25 0 01.25-.25h3.5a.75.75 0 000-1.5h-3.5z\"></path></svg>,\n\tmark_github: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z\"></path></svg>,\n\tmoon: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M9.598 1.591a.75.75 0 01.785-.175 7 7 0 11-8.967 8.967.75.75 0 01.961-.96 5.5 5.5 0 007.046-7.046.75.75 0 01.175-.786zm1.616 1.945a7 7 0 01-7.678 7.678 5.5 5.5 0 107.678-7.678z\"></path></svg>,\n\tpackage: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8.878.392a1.75 1.75 0 00-1.756 0l-5.25 3.045A1.75 1.75 0 001 4.951v6.098c0 .624.332 1.2.872 1.514l5.25 3.045a1.75 1.75 0 001.756 0l5.25-3.045c.54-.313.872-.89.872-1.514V4.951c0-.624-.332-1.2-.872-1.514L8.878.392zM7.875 1.69a.25.25 0 01.25 0l4.63 2.685L8 7.133 3.245 4.375l4.63-2.685zM2.5 5.677v5.372c0 .09.047.171.125.216l4.625 2.683V8.432L2.5 5.677zm6.25 8.271l4.625-2.683a.25.25 0 00.125-.216V5.677L8.75 8.432v5.516z\"></path></svg>,\n\tpencil: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M11.013 1.427a1.75 1.75 0 012.474 0l1.086 1.086a1.75 1.75 0 010 2.474l-8.61 8.61c-.21.21-.47.364-.756.445l-3.251.93a.75.75 0 01-.927-.928l.929-3.25a1.75 1.75 0 01.445-.758l8.61-8.61zm1.414 1.06a.25.25 0 00-.354 0L10.811 3.75l1.439 1.44 1.263-1.263a.25.25 0 000-.354l-1.086-1.086zM11.189 6.25L9.75 4.81l-6.286 6.287a.25.25 0 00-.064.108l-.558 1.953 1.953-.558a.249.249 0 00.108-.064l6.286-6.286z\"></path></svg>,\n\tplay: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0zM8 0a8 8 0 100 16A8 8 0 008 0zM6.379 5.227A.25.25 0 006 5.442v5.117a.25.25 0 00.379.214l4.264-2.559a.25.25 0 000-.428L6.379 5.227z\"></path></svg>,\n\tplus: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8 2a.75.75 0 01.75.75v4.5h4.5a.75.75 0 010 1.5h-4.5v4.5a.75.75 0 01-1.5 0v-4.5h-4.5a.75.75 0 010-1.5h4.5v-4.5A.75.75 0 018 2z\"></path></svg>,\n\tplus_circle: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0zM8 0a8 8 0 100 16A8 8 0 008 0zm.75 4.75a.75.75 0 00-1.5 0v2.5h-2.5a.75.75 0 000 1.5h2.5v2.5a.75.75 0 001.5 0v-2.5h2.5a.75.75 0 000-1.5h-2.5v-2.5z\"></path></svg>,\n\trepo: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z\"></path></svg>,\n\trocket: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M14.064 0a8.75 8.75 0 00-6.187 2.563l-.459.458c-.314.314-.616.641-.904.979H3.31a1.75 1.75 0 00-1.49.833L.11 7.607a.75.75 0 00.418 1.11l3.102.954c.037.051.079.1.124.145l2.429 2.428c.046.046.094.088.145.125l.954 3.102a.75.75 0 001.11.418l2.774-1.707a1.75 1.75 0 00.833-1.49V9.485c.338-.288.665-.59.979-.904l.458-.459A8.75 8.75 0 0016 1.936V1.75A1.75 1.75 0 0014.25 0h-.186zM10.5 10.625c-.088.06-.177.118-.266.175l-2.35 1.521.548 1.783 1.949-1.2a.25.25 0 00.119-.213v-2.066zM3.678 8.116L5.2 5.766c.058-.09.117-.178.176-.266H3.309a.25.25 0 00-.213.119l-1.2 1.95 1.782.547zm5.26-4.493A7.25 7.25 0 0114.063 1.5h.186a.25.25 0 01.25.25v.186a7.25 7.25 0 01-2.123 5.127l-.459.458a15.21 15.21 0 01-2.499 2.02l-2.317 1.5-2.143-2.143 1.5-2.317a15.25 15.25 0 012.02-2.5l.458-.458h.002zM12 5a1 1 0 11-2 0 1 1 0 012 0zm-8.44 9.56a1.5 1.5 0 10-2.12-2.12c-.734.73-1.047 2.332-1.15 3.003a.23.23 0 00.265.265c.671-.103 2.273-.416 3.005-1.148z\"></path></svg>,\n\trows: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M16 2.75A1.75 1.75 0 0014.25 1H1.75A1.75 1.75 0 000 2.75v2.5A1.75 1.75 0 001.75 7h12.5A1.75 1.75 0 0016 5.25v-2.5zm-1.75-.25a.25.25 0 01.25.25v2.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25v-2.5a.25.25 0 01.25-.25h12.5zM16 10.75A1.75 1.75 0 0014.25 9H1.75A1.75 1.75 0 000 10.75v2.5A1.75 1.75 0 001.75 15h12.5A1.75 1.75 0 0016 13.25v-2.5zm-1.75-.25a.25.25 0 01.25.25v2.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25v-2.5a.25.25 0 01.25-.25h12.5z\"></path></svg>,\n\tsearch: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z\"></path></svg>,\n\tsort_asc: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M0 4.25a.75.75 0 01.75-.75h2.5a.75.75 0 010 1.5H.75A.75.75 0 010 4.25zm0 4a.75.75 0 01.75-.75h4.5a.75.75 0 010 1.5H.75A.75.75 0 010 8.25zm0 4a.75.75 0 01.75-.75h7.5a.75.75 0 010 1.5H.75a.75.75 0 01-.75-.75zm12.927-9.677a.25.25 0 00-.354 0l-3 3A.25.25 0 009.75 6H12v6.75a.75.75 0 001.5 0V6h2.25a.25.25 0 00.177-.427l-3-3z\"></path></svg>,\n\tsort_desc: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M0 4.25a.75.75 0 01.75-.75h7.5a.75.75 0 010 1.5H.75A.75.75 0 010 4.25zm0 4a.75.75 0 01.75-.75h4.5a.75.75 0 010 1.5H.75A.75.75 0 010 8.25zm0 4a.75.75 0 01.75-.75h2.5a.75.75 0 010 1.5H.75a.75.75 0 01-.75-.75z\"></path><path d=\"M13.5 10h2.25a.25.25 0 01.177.427l-3 3a.25.25 0 01-.354 0l-3-3A.25.25 0 019.75 10H12V3.75a.75.75 0 011.5 0V10z\"></path></svg>,\n\tsquare: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M4 5.75C4 4.784 4.784 4 5.75 4h4.5c.966 0 1.75.784 1.75 1.75v4.5A1.75 1.75 0 0110.25 12h-4.5A1.75 1.75 0 014 10.25v-4.5zm1.75-.25a.25.25 0 00-.25.25v4.5c0 .138.112.25.25.25h4.5a.25.25 0 00.25-.25v-4.5a.25.25 0 00-.25-.25h-4.5z\"></path></svg>,\n\tsquare_fill: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M5.75 4A1.75 1.75 0 004 5.75v4.5c0 .966.784 1.75 1.75 1.75h4.5A1.75 1.75 0 0012 10.25v-4.5A1.75 1.75 0 0010.25 4h-4.5z\"></path></svg>,\n\tstack: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M7.122.392a1.75 1.75 0 011.756 0l5.003 2.902c.83.481.83 1.68 0 2.162L8.878 8.358a1.75 1.75 0 01-1.756 0L2.119 5.456a1.25 1.25 0 010-2.162L7.122.392zM8.125 1.69a.25.25 0 00-.25 0l-4.63 2.685 4.63 2.685a.25.25 0 00.25 0l4.63-2.685-4.63-2.685zM1.601 7.789a.75.75 0 011.025-.273l5.249 3.044a.25.25 0 00.25 0l5.249-3.044a.75.75 0 01.752 1.298l-5.248 3.044a1.75 1.75 0 01-1.756 0L1.874 8.814A.75.75 0 011.6 7.789zm0 3.5a.75.75 0 011.025-.273l5.249 3.044a.25.25 0 00.25 0l5.249-3.044a.75.75 0 01.752 1.298l-5.248 3.044a1.75 1.75 0 01-1.756 0l-5.248-3.044a.75.75 0 01-.273-1.025z\"></path></svg>,\n\tsun: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8 10.5a2.5 2.5 0 100-5 2.5 2.5 0 000 5zM8 12a4 4 0 100-8 4 4 0 000 8zM8 0a.75.75 0 01.75.75v1.5a.75.75 0 01-1.5 0V.75A.75.75 0 018 0zm0 13a.75.75 0 01.75.75v1.5a.75.75 0 01-1.5 0v-1.5A.75.75 0 018 13zM2.343 2.343a.75.75 0 011.061 0l1.06 1.061a.75.75 0 01-1.06 1.06l-1.06-1.06a.75.75 0 010-1.06zm9.193 9.193a.75.75 0 011.06 0l1.061 1.06a.75.75 0 01-1.06 1.061l-1.061-1.06a.75.75 0 010-1.061zM16 8a.75.75 0 01-.75.75h-1.5a.75.75 0 010-1.5h1.5A.75.75 0 0116 8zM3 8a.75.75 0 01-.75.75H.75a.75.75 0 010-1.5h1.5A.75.75 0 013 8zm10.657-5.657a.75.75 0 010 1.061l-1.061 1.06a.75.75 0 11-1.06-1.06l1.06-1.06a.75.75 0 011.06 0zm-9.193 9.193a.75.75 0 010 1.06l-1.06 1.061a.75.75 0 11-1.061-1.06l1.06-1.061a.75.75 0 011.061 0z\"></path></svg>,\n\tsync: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8 2.5a5.487 5.487 0 00-4.131 1.869l1.204 1.204A.25.25 0 014.896 6H1.25A.25.25 0 011 5.75V2.104a.25.25 0 01.427-.177l1.38 1.38A7.001 7.001 0 0114.95 7.16a.75.75 0 11-1.49.178A5.501 5.501 0 008 2.5zM1.705 8.005a.75.75 0 01.834.656 5.501 5.501 0 009.592 2.97l-1.204-1.204a.25.25 0 01.177-.427h3.646a.25.25 0 01.25.25v3.646a.25.25 0 01-.427.177l-1.38-1.38A7.001 7.001 0 011.05 8.84a.75.75 0 01.656-.834z\"></path></svg>,\n\ttag: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M2.5 7.775V2.75a.25.25 0 01.25-.25h5.025a.25.25 0 01.177.073l6.25 6.25a.25.25 0 010 .354l-5.025 5.025a.25.25 0 01-.354 0l-6.25-6.25a.25.25 0 01-.073-.177zm-1.5 0V2.75C1 1.784 1.784 1 2.75 1h5.025c.464 0 .91.184 1.238.513l6.25 6.25a1.75 1.75 0 010 2.474l-5.026 5.026a1.75 1.75 0 01-2.474 0l-6.25-6.25A1.75 1.75 0 011 7.775zM6 5a1 1 0 100 2 1 1 0 000-2z\"></path></svg>,\n\tterminal: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M0 2.75C0 1.784.784 1 1.75 1h12.5c.966 0 1.75.784 1.75 1.75v10.5A1.75 1.75 0 0114.25 15H1.75A1.75 1.75 0 010 13.25V2.75zm1.75-.25a.25.25 0 00-.25.25v10.5c0 .138.112.25.25.25h12.5a.25.25 0 00.25-.25V2.75a.25.25 0 00-.25-.25H1.75zM7.25 8a.75.75 0 01-.22.53l-2.25 2.25a.75.75 0 11-1.06-1.06L5.44 8 3.72 6.28a.75.75 0 111.06-1.06l2.25 2.25c.141.14.22.331.22.53zm1.5 1.5a.75.75 0 000 1.5h3a.75.75 0 000-1.5h-3z\"></path></svg>,\n\tthree_bars: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1 2.75A.75.75 0 011.75 2h12.5a.75.75 0 110 1.5H1.75A.75.75 0 011 2.75zm0 5A.75.75 0 011.75 7h12.5a.75.75 0 110 1.5H1.75A.75.75 0 011 7.75zM1.75 12a.75.75 0 100 1.5h12.5a.75.75 0 100-1.5H1.75z\"></path></svg>,\n\ttrashcan: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M6.5 1.75a.25.25 0 01.25-.25h2.5a.25.25 0 01.25.25V3h-3V1.75zm4.5 0V3h2.25a.75.75 0 010 1.5H2.75a.75.75 0 010-1.5H5V1.75C5 .784 5.784 0 6.75 0h2.5C10.216 0 11 .784 11 1.75zM4.496 6.675a.75.75 0 10-1.492.15l.66 6.6A1.75 1.75 0 005.405 15h5.19c.9 0 1.652-.681 1.741-1.576l.66-6.6a.75.75 0 00-1.492-.149l-.66 6.6a.25.25 0 01-.249.225h-5.19a.25.25 0 01-.249-.225l-.66-6.6z\"></path></svg>,\n\tunfold: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path d=\"M8.177.677l2.896 2.896a.25.25 0 01-.177.427H8.75v1.25a.75.75 0 01-1.5 0V4H5.104a.25.25 0 01-.177-.427L7.823.677a.25.25 0 01.354 0zM7.25 10.75a.75.75 0 011.5 0V12h2.146a.25.25 0 01.177.427l-2.896 2.896a.25.25 0 01-.354 0l-2.896-2.896A.25.25 0 015.104 12H7.25v-1.25zm-5-2a.75.75 0 000-1.5h-.5a.75.75 0 000 1.5h.5zM6 8a.75.75 0 01-.75.75h-.5a.75.75 0 010-1.5h.5A.75.75 0 016 8zm2.25.75a.75.75 0 000-1.5h-.5a.75.75 0 000 1.5h.5zM12 8a.75.75 0 01-.75.75h-.5a.75.75 0 010-1.5h.5A.75.75 0 0112 8zm2.25.75a.75.75 0 000-1.5h-.5a.75.75 0 000 1.5h.5z\"></path></svg>,\n\tupload: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8.53 1.22a.75.75 0 00-1.06 0L3.72 4.97a.75.75 0 001.06 1.06l2.47-2.47v6.69a.75.75 0 001.5 0V3.56l2.47 2.47a.75.75 0 101.06-1.06L8.53 1.22zM3.75 13a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5z\"></path></svg>,\n\tx: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z\"></path></svg>,\n\tx_circle: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M3.404 12.596a6.5 6.5 0 119.192-9.192 6.5 6.5 0 01-9.192 9.192zM2.344 2.343a8 8 0 1011.313 11.314A8 8 0 002.343 2.343zM6.03 4.97a.75.75 0 00-1.06 1.06L6.94 8 4.97 9.97a.75.75 0 101.06 1.06L8 9.06l1.97 1.97a.75.75 0 101.06-1.06L9.06 8l1.97-1.97a.75.75 0 10-1.06-1.06L8 6.94 6.03 4.97z\"></path></svg>,\n}\n","import { useState } from 'preact/hooks'\nimport { useVersion } from '../contexts/Version.jsx'\nimport { useAsync } from '../hooks/useAsync.js'\nimport { getAssetUrl } from '../services/DataFetcher.js'\nimport { renderItem } from '../services/Resources.js'\nimport { getCollections } from '../services/Schemas.js'\nimport { Octicon } from './Octicon.jsx'\n\ninterface Props {\n\titem: string,\n}\nexport function ItemDisplay({ item }: Props) {\n\tconst { version } = useVersion()\n\tconst [errored, setErrored] = useState(false)\n\n\tif (errored || (item.includes(':') && !item.startsWith('minecraft:'))) {\n\t\treturn <div class=\"item-display\">\n\t\t\t{Octicon.package}\n\t\t</div>\n\t}\n\n\tconst { value: collections } = useAsync(() => getCollections(version), [])\n\n\tif (collections === undefined) {\n\t\treturn <div class=\"item-display\"></div>\n\t}\n\n\tconst texturePath = `item/${item.replace(/^minecraft:/, '')}`\n\tif (collections.get('texture').includes('minecraft:' + texturePath)) {\n\t\treturn <div class=\"item-display\">\n\t\t\t<img src={getAssetUrl(version, 'textures', texturePath)} alt=\"\" onError={() => setErrored(true)} />\n\t\t</div>\n\t}\n\n\tconst modelPath = `block/${item.replace(/^minecraft:/, '')}`\n\tif (collections.get('model').includes('minecraft:' + modelPath)) {\n\t\treturn <div class=\"item-display\">\n\t\t\t<RenderedItem item={item} />\n\t\t</div>\n\t}\n\n\treturn <div class=\"item-display\">\n\t\t{Octicon.package}\n\t</div>\n}\n\nfunction RenderedItem({ item }: Props) {\n\tconst { version } = useVersion()\n\tconst { value: src } = useAsync(() => renderItem(version, item), [version, item])\n\n\tif (src) {\n\t\treturn <img src={src} alt={item} />\n\t}\n\n\treturn <div class=\"item-display\">\n\t\t{Octicon.package}\n\t</div>\n}\n","import type { INode, Path } from '@mcschema/core'\nimport { DataModel } from '@mcschema/core'\n\nexport class ModelWrapper extends DataModel {\n\tconstructor(\n\t\tschema: INode<any>,\n\t\tprivate readonly mapper: (path: Path) => Path,\n\t\tprivate readonly getter: (path: Path) => any,\n\t\tprivate readonly setter: (path: Path, value: any, silent?: boolean) => any,\n\t) {\n\t\tsuper(schema)\n\t}\n\n\tmap(path: Path) {\n\t\treturn this.mapper(path)\n\t}\n\n\tget(path: Path) {\n\t\treturn this.getter(path)\n\t}\n\n\tset(path: Path, value: any, silent?: boolean) {\n\t\treturn this.setter(path, value, silent)\n\t}\n}\n","import type { BooleanHookParams, EnumOption, Hook, INode, NodeChildren, NumberHookParams, StringHookParams, ValidationOption } from '@mcschema/core'\nimport { DataModel, ListNode, MapNode, ModelPath, ObjectNode, Path, relativePath, StringNode } from '@mcschema/core'\nimport type { ComponentChildren, JSX } from 'preact'\nimport { memo } from 'preact/compat'\nimport { useState } from 'preact/hooks'\nimport { Btn, Octicon } from '../components/index.js'\nimport { ItemDisplay } from '../components/ItemDisplay.jsx'\nimport config from '../Config.js'\nimport { localize, useStore } from '../contexts/index.js'\nimport { useFocus } from '../hooks/index.js'\nimport { VanillaColors } from '../previews/index.js'\nimport type { BlockStateRegistry, VersionId } from '../services/index.js'\nimport { CachedDecorator, CachedFeature } from '../services/index.js'\nimport { deepClone, deepEqual, generateUUID, hexId, hexToRgb, isObject, newSeed, rgbToHex, stringToColor } from '../Utils.js'\nimport { ModelWrapper } from './ModelWrapper.js'\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', 'structure_placement.type', 'density_function.type', 'root_placer.type', 'entity.type_specific.cat.variant', 'entity.type_specific.frog.variant']\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', 'density_function.type', 'root_placer.type', 'entity.type_specific.type', 'glyph_provider.type', 'immersive_weathering.area_condition.type', 'immersive_weathering.block_growth.growth_for_face.entry.direction', 'immersive_weathering.position_test.predicate_type']\nconst nbtFields = ['function.set_nbt.tag', 'advancement.display.icon.nbt', 'text_component_object.nbt', 'entity.nbt', 'block.nbt', 'item.nbt']\nconst fixedLists = ['generator_biome.parameters.temperature', 'generator_biome.parameters.humidity', 'generator_biome.parameters.continentalness', 'generator_biome.parameters.erosion', 'generator_biome.parameters.depth', 'generator_biome.parameters.weirdness', 'feature.end_spike.crystal_beam_target', 'feature.end_gateway.exit', 'decorator.block_filter.offset', 'block_predicate.matching_blocks.offset', 'block_predicate.matching_fluids.offset', 'model_element.from', 'model_element.to', 'model_element.rotation.origin', 'model_element.faces.uv', 'item_transform.rotation', 'item_transform.translation', 'item_transform.scale', 'generator_structure.random_spread.locate_offset']\nconst collapsedFields = ['noise_settings.surface_rule', 'noise_settings.noise.terrain_shaper']\nconst collapsableFields = ['density_function.argument', 'density_function.argument1', 'density_function.argument2', 'density_function.input', 'density_function.when_in_range', 'density_function.when_out_of_range']\n\nconst findGenerator = (id: string) => {\n\treturn config.generators.find(g => g.id === id.replace(/^\\$/, ''))\n}\n\n/**\n * Secondary model used to remember the keys of a map\n */\nconst keysModel = new DataModel(MapNode(\n\tStringNode(),\n\tStringNode()\n), { historyMax: 0 })\n\ntype JSXTriple = [JSX.Element | null, JSX.Element | null, JSX.Element | null]\ntype RenderHook = Hook<[any, string, VersionId, BlockStateRegistry, Record<string, any>], JSXTriple>\n\ntype NodeProps<T> = T & {\n\tnode: INode<any>,\n\tpath: ModelPath,\n\tvalue: any,\n\tlang: string,\n\tversion: VersionId,\n\tstates: BlockStateRegistry,\n\tctx: Record<string, any>,\n}\n\nexport function FullNode({ model, lang, version, blockStates }: { model: DataModel, lang: string, version: VersionId, blockStates: BlockStateRegistry }) {\n\tconst path = new ModelPath(model)\n\tconst [prefix, suffix, body] = model.schema.hook(renderHtml, path, deepClone(model.data), lang, version, blockStates, {})\n\treturn suffix?.props?.children.some((c: any) => c) ? <div class={`node ${model.schema.type(path)}-node`} data-category={model.schema.category(path)}>\n\t\t<div class=\"node-header\">{prefix}{suffix}</div>\n\t\t<div class=\"node-body\">{body}</div>\n\t</div> : body\n}\n\nconst renderHtml: RenderHook = {\n\tbase() {\n\t\treturn [null, null, null]\n\t},\n\n\tboolean(params, path, value, lang, version, states, ctx) {\n\t\treturn [null, <BooleanSuffix {...{...params, path, value, lang, version, states, ctx}} />, null]\n\t},\n\n\tchoice({ choices, config, switchNode }, path, value, lang, version, states, ctx) {\n\t\tconst choice = switchNode.activeCase(path, true) as typeof choices[number]\n\t\tconst contextPath = (config?.context) ? new ModelPath(path.getModel(), new Path(path.getArray(), [config.context])) : path\n\t\tconst [prefix, suffix, body] = choice.node.hook(this, contextPath, value, lang, version, states, ctx)\n\t\tif (choices.length === 1) {\n\t\t\treturn [prefix, suffix, body]\n\t\t}\n\t\tconst choiceContextPath = config?.choiceContext ? new Path([], [config.choiceContext]) : config?.context ? new Path([], [config.context]) : path\n\t\tconst set = (type: string) => {\n\t\t\tconst c = choices.find(c => c.type === type) ?? choice\n\t\t\tconst def = c.node.default()\n\t\t\tconst newValue = c.change\n\t\t\t\t? c.change(DataModel.unwrapLists(value))\n\t\t\t\t: config.choiceContext === 'feature' && def?.type === 'minecraft:decorated' ? def.config.feature : def\n\t\t\tpath.model.set(path, DataModel.wrapLists(newValue))\n\t\t}\n\t\tconst inject = <select value={choice.type} onChange={(e) => set((e.target as HTMLSelectElement).value)}>\n\t\t\t{choices.map(c => <option value={c.type}>\n\t\t\t\t{pathLocale(lang, choiceContextPath.contextPush(c.type))}\n\t\t\t</option>)}\n\t\t</select>\n\t\treturn [prefix, <>{inject}{suffix}</>, body]\n\t},\n\n\tlist({ children, config }, path, value, lang, version, states, ctx) {\n\t\tconst { expand, collapse, isToggled } = useToggles()\n\t\tconst [maxShown, setMaxShown] = useState(50)\n\n\t\tconst context = path.getContext().join('.')\n\t\tif (fixedLists.includes(context)) {\n\t\t\tconst prefix = <>\n\t\t\t\t{[...Array(config.maxLength!)].map((_, i) =>\n\t\t\t\t\t<ErrorPopup lang={lang} path={path.modelPush(i)} />)}\n\t\t\t\t<div class=\"fixed-list\"></div>\n\t\t\t</>\n\t\t\tconst suffix = <>{[...Array(config.maxLength)].map((_, i) => {\n\t\t\t\tconst child = children.hook(this, path.modelPush(i), value?.[i]?.node, lang, version, states, ctx)\n\t\t\t\treturn child[1]\n\t\t\t})}</>\n\t\t\treturn [prefix, suffix, null]\n\t\t}\n\n\t\tconst onAdd = () => {\n\t\t\tif (!Array.isArray(value)) value = []\n\t\t\tconst node = DataModel.wrapLists(children.default())\n\t\t\tpath.model.set(path, [{ node, id: hexId() }, ...value])\n\t\t}\n\t\tconst onAddBottom = () => {\n\t\t\tif (!Array.isArray(value)) value = []\n\t\t\tconst node = DataModel.wrapLists(children.default())\n\t\t\tpath.model.set(path, [...value, { node, id: hexId() }])\n\t\t}\n\t\tconst suffix = <button class=\"add tooltipped tip-se\" aria-label={localize(lang, 'add_top')} onClick={onAdd}>{Octicon.plus_circle}</button>\n\t\tconst body = <>\n\t\t\t{(value && Array.isArray(value)) && value.map(({ node: cValue, id: cId }, index) => {\n\t\t\t\tif (index === maxShown) {\n\t\t\t\t\treturn <div class=\"node node-header\">\n\t\t\t\t\t\t<label>{localize(lang, 'entries_hidden', `${value.length - maxShown}`)}</label>\n\t\t\t\t\t\t<button onClick={() => setMaxShown(Math.min(maxShown + 50, value.length))}>{localize(lang, 'entries_hidden.more', '50')}</button>\n\t\t\t\t\t\t<button onClick={() => setMaxShown(value.length)}>{localize(lang, 'entries_hidden.all')}</button>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\tif (index > maxShown) {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\n\t\t\t\tconst cPath = path.push(index).contextPush('entry')\n\t\t\t\tconst canToggle = children.type(cPath) === 'object'\n\t\t\t\tconst toggle = isToggled(cId)\n\n\t\t\t\tlet label: undefined | string | JSX.Element\n\t\t\t\tif (['loot_pool.entries.entry', 'loot_entry.alternatives.children.entry', 'loot_entry.group.children.entry', 'loot_entry.sequence.children.entry', 'function.set_contents.entries.entry'].includes(cPath.getContext().join('.'))) {\n\t\t\t\t\tif (isObject(cValue) && typeof cValue.type === 'string' && cValue.type.replace(/^minecraft:/, '') === 'item' && typeof cValue.name === 'string') {\n\t\t\t\t\t\tlabel = <ItemDisplay item={cValue.name} />\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (canToggle && (toggle === false || (toggle === undefined && value.length > 20))) {\n\t\t\t\t\treturn <div class=\"node node-header\" data-category={children.category(cPath)}>\n\t\t\t\t\t\t<ErrorPopup lang={lang} path={cPath} nested />\n\t\t\t\t\t\t<button class=\"toggle tooltipped tip-se\" aria-label={`${localize(lang, 'expand')}\\n${localize(lang, 'expand_all', 'Ctrl')}`} onClick={expand(cId)}>{Octicon.chevron_right}</button>\n\t\t\t\t\t\t<label>{label ?? pathLocale(lang, cPath, `${index}`)}</label>\n\t\t\t\t\t\t<Collapsed key={cId} path={cPath} value={cValue} schema={children} />\n\t\t\t\t\t</div>\n\t\t\t\t}\n\n\t\t\t\tconst onRemove = () => cPath.set(undefined)\n\t\t\t\tconst onMoveUp = () => {\n\t\t\t\t\tconst v = [...path.get()];\n\t\t\t\t\t[v[index - 1], v[index]] = [v[index], v[index - 1]]\n\t\t\t\t\tpath.model.set(path, v)\n\t\t\t\t}\n\t\t\t\tconst onMoveDown = () => {\n\t\t\t\t\tconst v = [...path.get()];\n\t\t\t\t\t[v[index + 1], v[index]] = [v[index], v[index + 1]]\n\t\t\t\t\tpath.model.set(path, v)\n\t\t\t\t}\n\t\t\t\tconst actions: MenuAction[] = [\n\t\t\t\t\t{\n\t\t\t\t\t\ticon: 'duplicate',\n\t\t\t\t\t\tlabel: 'duplicate',\n\t\t\t\t\t\tonSelect: () => {\n\t\t\t\t\t\t\tconst v = [...path.get()]\n\t\t\t\t\t\t\tv.splice(index, 0, { id: hexId(), node: deepClone(cValue) })\n\t\t\t\t\t\t\tpath.model.set(path, v)\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t]\n\t\t\t\treturn <MemoedTreeNode key={cId} label={label} path={cPath} schema={children} value={cValue} {...{lang, version, states, actions}} ctx={{...ctx, index: (index === 0 ? 1 : 0) + (index === value.length - 1 ? 2 : 0)}}>\n\t\t\t\t\t{canToggle && <button class=\"toggle tooltipped tip-se\" aria-label={`${localize(lang, 'collapse')}\\n${localize(lang, 'collapse_all', 'Ctrl')}`} onClick={collapse(cId)}>{Octicon.chevron_down}</button>}\n\t\t\t\t\t<button class=\"remove tooltipped tip-se\" aria-label={localize(lang, 'remove')} onClick={onRemove}>{Octicon.trashcan}</button>\n\t\t\t\t\t{value.length > 1 && <div class=\"node-move\">\n\t\t\t\t\t\t<button class=\"move tooltipped tip-se\" aria-label={localize(lang, 'move_up')} onClick={onMoveUp} disabled={index === 0}>{Octicon.chevron_up}</button>\n\t\t\t\t\t\t<button class=\"move tooltipped tip-se\" aria-label={localize(lang, 'move_down')} onClick={onMoveDown} disabled={index === value.length - 1}>{Octicon.chevron_down}</button>\n\t\t\t\t\t</div>}\n\t\t\t\t</MemoedTreeNode>\n\t\t\t})}\n\t\t\t{(value && value.length > 0 && value.length <= maxShown) && <div class=\"node node-header\">\n\t\t\t\t<button class=\"add tooltipped tip-se\" aria-label={localize(lang, 'add_bottom')} onClick={onAddBottom}>{Octicon.plus_circle}</button>\n\t\t\t</div>}\n\t\t</>\n\t\treturn [null, suffix, body]\n\t},\n\n\tmap({ children, keys, config }, path, value, lang, version, states, ctx) {\n\t\tconst { expand, collapse, isToggled } = useToggles()\n\n\t\tconst keyPath = new ModelPath(keysModel, new Path([hashString(path.toString())]))\n\t\tconst onAdd = () => {\n\t\t\tconst key = keyPath.get()\n\t\t\tpath.model.set(path.push(key), DataModel.wrapLists(children.default()))\n\t\t}\n\t\tconst blockState = config.validation?.validator === 'block_state_map' ? states?.[relativePath(path, config.validation.params.id).get()] : null\n\t\tconst keysSchema = blockState?.properties\n\t\t\t? StringNode(null!, { enum: Object.keys(blockState.properties ?? {}) })\n\t\t\t: keys\n\t\tif (blockState && path.last() === 'Properties') {\n\t\t\tif (typeof value !== 'object') value = {}\n\t\t\tconst properties = Object.entries(blockState.properties ?? {})\n\t\t\t\t.map(([key, values]) => [key, StringNode(null!, { enum: values })])\n\t\t\tObject.entries(blockState.properties ?? {}).forEach(([key, values]) => {\n\t\t\t\tif (typeof value[key] !== 'string') {\n\t\t\t\t\tpath.model.errors.add(path.push(key), 'error.expected_string')\n\t\t\t\t} else if (!values.includes(value[key])) {\n\t\t\t\t\tpath.model.errors.add(path.push(key), 'error.invalid_enum_option', value[key])\n\t\t\t\t}\n\t\t\t})\n\t\t\treturn ObjectNode(Object.fromEntries(properties)).hook(this, path, value, lang, version, states, ctx)\n\t\t}\n\t\tconst suffix = <>\n\t\t\t{keysSchema.hook(this, keyPath, keyPath.get() ?? '', lang, version, states, ctx)[1]}\n\t\t\t<button class=\"add tooltipped tip-se\" aria-label={localize(lang, 'add')} onClick={onAdd}>{Octicon.plus_circle}</button>\n\t\t</>\n\t\tconst body = <>\n\t\t\t{typeof value === 'object' && Object.entries(value).map(([key, cValue]) => {\n\n\t\t\t\tconst cPath = path.modelPush(key)\n\t\t\t\tconst canToggle = children.type(cPath) === 'object'\n\t\t\t\tconst toggle = isToggled(key)\n\t\t\t\tif (canToggle && (toggle === false || (toggle === undefined && value.length > 20))) {\n\t\t\t\t\treturn <div class=\"node node-header\" data-category={children.category(cPath)}>\n\t\t\t\t\t\t<ErrorPopup lang={lang} path={cPath} nested />\n\t\t\t\t\t\t<button class=\"toggle tooltipped tip-se\" aria-label={`${localize(lang, 'expand')}\\n${localize(lang, 'expand_all', 'Ctrl')}`} onClick={expand(key)}>{Octicon.chevron_right}</button>\n\t\t\t\t\t\t<label>{key}</label>\n\t\t\t\t\t\t<Collapsed key={key} path={cPath} value={cValue} schema={children} />\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\tconst cSchema = blockState\n\t\t\t\t\t? StringNode(null!, { enum: blockState.properties?.[key] ?? [] })\n\t\t\t\t\t: children\n\t\t\t\tif (blockState?.properties?.[key] && typeof cValue === 'string'\n\t\t\t\t\t&& !blockState.properties?.[key].includes(cValue)) {\n\t\t\t\t\tpath.model.errors.add(cPath, 'error.invalid_enum_option', cValue)\n\t\t\t\t}\n\t\t\t\tconst onRemove = () => cPath.set(undefined)\n\t\t\t\treturn <MemoedTreeNode key={key} schema={cSchema} path={cPath} value={cValue} {...{lang, version, states, ctx}} label={key}>\n\t\t\t\t\t{canToggle && <button class=\"toggle tooltipped tip-se\" aria-label={`${localize(lang, 'collapse')}\\n${localize(lang, 'collapse_all', 'Ctrl')}`} onClick={collapse(key)}>{Octicon.chevron_down}</button>}\n\t\t\t\t\t<button class=\"remove tooltipped tip-se\" aria-label={localize(lang, 'remove')} onClick={onRemove}>{Octicon.trashcan}</button>\n\t\t\t\t</MemoedTreeNode>\n\t\t\t})}\n\t\t</>\n\t\treturn [null, suffix, body]\n\t},\n\n\tnumber(params, path, value, lang, version, states, ctx) {\n\t\treturn [null, <NumberSuffix {...{...params, path, value, lang, version, states, ctx}} />, null]\n\t},\n\n\tobject({ node, config, getActiveFields, getChildModelPath }, path, value, lang, version, states, ctx) {\n\t\tconst { expand, collapse, isToggled } = useToggles()\n\n\t\tif (path.getArray().length == 0 && isDecorated(config.context, value)) {\n\t\t\tconst { wrapper, fields } = createDecoratorsWrapper(getActiveFields(path), path, value)\n\t\t\tvalue = wrapper.data\n\t\t\tgetActiveFields = () => fields\n\t\t\tgetChildModelPath = (path, key) => new ModelPath(wrapper, new Path(path.getArray(), ['feature'])).push(key)\n\t\t}\n\n\t\tlet prefix: JSX.Element | null = null\n\t\tlet suffix: JSX.Element | null = null\n\t\tif (node.optional()) {\n\t\t\tif (value === undefined) {\n\t\t\t\tconst onExpand = () => path.set(DataModel.wrapLists(node.default()))\n\t\t\t\tsuffix = <button class=\"collapse closed tooltipped tip-se\" aria-label={localize(lang, 'expand')} onClick={onExpand}>{Octicon.plus_circle}</button>\n\t\t\t} else {\n\t\t\t\tconst onCollapse = () => path.set(undefined)\n\t\t\t\tsuffix = <button class=\"collapse open tooltipped tip-se\" aria-label={localize(lang, 'remove')} onClick={onCollapse}>{Octicon.trashcan}</button>\n\t\t\t}\n\t\t}\n\t\tconst context = path.getContext().join('.')\n\t\tif (collapsableFields.includes(context) || collapsedFields.includes(context)) {\n\t\t\tconst toggled = isToggled('')\n\t\t\tconst expanded = collapsedFields.includes(context) ? toggled : !toggled\n\t\t\tprefix = <>\n\t\t\t\t<button class=\"toggle tooltipped tip-se\" aria-label={localize(lang, expanded ? 'collapse' : 'expand')} onClick={toggled ? collapse('') : expand('')}>{expanded ? Octicon.chevron_down : Octicon.chevron_right}</button>\n\t\t\t</>\n\t\t\tif (!expanded) {\n\t\t\t\treturn [prefix, suffix, null]\n\t\t\t}\n\t\t}\n\n\t\tconst newCtx = (typeof value === 'object' && value !== null && node.default()?.pools)\n\t\t\t? { ...ctx, loot: value?.type } : ctx\n\t\tconst body = <>\n\t\t\t{(typeof value === 'object' && value !== null && !(node.optional() && value === undefined)) &&\n\t\t\t\tObject.entries(getActiveFields(path))\n\t\t\t\t\t.filter(([_, child]) => child.enabled(path))\n\t\t\t\t\t.map(([key, child]) => {\n\t\t\t\t\t\tconst cPath = getChildModelPath(path, key)\n\t\t\t\t\t\tconst context = cPath.getContext().join('.')\n\t\t\t\t\t\tif (hiddenFields.includes(context)) return null\n\t\t\t\t\t\tconst [cPrefix, cSuffix, cBody] = child.hook(this, cPath, value[key], lang, version, states, newCtx)\n\t\t\t\t\t\tconst isFlattened = child.type(cPath) === 'object' && flattenedFields.includes(context)\n\t\t\t\t\t\tconst isInlined = inlineFields.includes(context)\n\t\t\t\t\t\tif (isFlattened || isInlined) {\n\t\t\t\t\t\t\tprefix = <>{prefix}<ErrorPopup lang={lang} path={cPath} /><HelpPopup lang={lang} path={cPath} />{cPrefix}</>\n\t\t\t\t\t\t\tsuffix = <>{suffix}{cSuffix}</>\n\t\t\t\t\t\t\treturn isFlattened ? cBody : null\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn <MemoedTreeNode key={key} schema={child} path={cPath} value={value[key]} {...{lang, version, states, ctx: newCtx}} />\n\t\t\t\t\t})\n\t\t\t}\n\t\t</>\n\t\treturn [prefix, suffix, body]\n\t},\n\n\tstring(params, path, value, lang, version, states, ctx) {\n\t\treturn [null, <StringSuffix {...{...params, path, value, lang, version, states, ctx}} />, null]\n\t},\n}\n\nfunction Collapsed({ path, value }: { path: ModelPath, value: any, schema: INode<any> }) {\n\tconst context = path.getContext().join('.')\n\tswitch (context) {\n\t\tcase 'loot_table.pools.entry':\n\t\t\treturn <label>{value?.entries?.length ?? 0} entries</label>\n\t\tcase 'function.set_contents.entries.entry':\n\t\tcase 'loot_pool.entries.entry':\n\t\t\treturn <label>{value?.name?.replace(/^minecraft:/, '') ?? value?.type?.replace(/^minecraft:/, '')}</label>\n\t}\n\tfor (const child of Object.values(value ?? {})) {\n\t\tif (typeof child === 'string') {\n\t\t\treturn <label>{child.replace(/^minecraft:/, '')}</label>\n\t\t}\n\t}\n\treturn null\n}\n\nfunction useToggles() {\n\tconst [toggleState, setToggleState] = useState(new Map<string, boolean>())\n\tconst [toggleAll, setToggleAll] = useState<boolean | undefined>(undefined)\n\n\tconst expand = (key: string) => (evt: MouseEvent) => {\n\t\tif (evt.ctrlKey) {\n\t\t\tsetToggleState(new Map())\n\t\t\tsetToggleAll(true)\n\t\t} else {\n\t\t\tsetToggleState(state => new Map(state.set(key, true)))\n\t\t}\n\t}\n\tconst collapse = (key: string) => (evt: MouseEvent) => {\n\t\tif (evt.ctrlKey) {\n\t\t\tsetToggleState(new Map())\n\t\t\tsetToggleAll(false)\n\t\t} else {\n\t\t\tsetToggleState(state => new Map(state.set(key, false)))\n\t\t}\n\t}\n\t\n\tconst isToggled = (key: string) => {\n\t\tif (!(toggleState instanceof Map)) return false\n\t\treturn toggleState.get(key) ?? toggleAll\n\t}\n\n\treturn { expand, collapse, isToggled }\n}\n\nfunction BooleanSuffix({ path, node, value, lang }: NodeProps<BooleanHookParams>) {\n\tconst set = (target: boolean) => {\n\t\tpath.model.set(path, node.optional() && value === target ? undefined : target)\n\t}\n\treturn <>\n\t\t<button class={value === false ? 'selected' : ''} onClick={() => set(false)}>{localize(lang, 'false')}</button>\n\t\t<button class={value === true ? 'selected' : ''} onClick={() => set(true)}>{localize(lang, 'true')}</button>\n\t</>\n}\n\nfunction NumberSuffix({ path, config, integer, value, lang }: NodeProps<NumberHookParams>) {\n\tconst onChange = (evt: Event) => {\n\t\tconst value = (evt.target as HTMLInputElement).value\n\t\tconst parsed = integer ? parseInt(value) : parseFloat(value)\n\t\tpath.model.set(path, parsed)\n\t}\n\tconst onColor = (evt: Event) => {\n\t\tconst value = (evt.target as HTMLInputElement).value\n\t\tconst parsed = parseInt(value.slice(1), 16)\n\t\tpath.model.set(path, parsed)\n\t}\n\treturn <>\n\t\t<input type=\"text\" value={value ?? ''} onBlur={onChange} onKeyDown={evt => {if (evt.key === 'Enter') onChange(evt)}} />\n\t\t{config?.color && <input type=\"color\" value={'#' + (value?.toString(16).padStart(6, '0') ?? '000000')} onChange={onColor} />}\n\t\t{['dimension.generator.seed', 'dimension.generator.biome_source.seed', 'world_settings.seed', 'structure_placement.salt'].includes(path.getContext().join('.')) && <button onClick={() => newSeed(path.model)} class=\"tooltipped tip-se\" aria-label={localize(lang, 'generate_new_seed')}>{Octicon.sync}</button>}\n\t</>\n}\n\nfunction StringSuffix({ path, getValues, config, node, value, lang, version, states }: NodeProps<StringHookParams>) {\n\tconst onChange = (evt: Event) => {\n\t\tevt.stopPropagation()\n\t\tconst newValue = (evt.target as HTMLSelectElement).value\n\t\tif (newValue === value) return\n\t\tpath.model.set(path, newValue.length === 0 ? undefined : newValue)\n\t}\n\tconst values = getValues()\n\tconst context = path.getContext().join('.')\n\tconst id = !isEnum(config) && config?.validator === 'resource' && typeof config.params.pool === 'string' ? config.params.pool : undefined\n\n\tif (nbtFields.includes(context)) {\n\t\treturn <textarea value={value ?? ''} onBlur={onChange}></textarea>\n\t} else if ((isEnum(config) && !config.additional) || selectRegistries.includes(context)) {\n\t\tlet context = new Path([])\n\t\tif (isEnum(config) && typeof config.enum === 'string') {\n\t\t\tcontext = context.contextPush(config.enum)\n\t\t} else if (id) {\n\t\t\tcontext = context.contextPush(id)\n\t\t} else if (isEnum(config)) {\n\t\t\tcontext = path\n\t\t}\n\t\treturn <select value={value ?? ''} onChange={onChange}>\n\t\t\t{node.optional() && <option value=\"\">{localize(lang, 'unset')}</option>}\n\t\t\t{values.map(v => <option value={v}>\n\t\t\t\t{pathLocale(lang, context.contextPush(v.replace(/^minecraft:/, '')))}\n\t\t\t</option>)}\n\t\t</select>\n\t} else if (!isEnum(config) && config?.validator === 'block_state_key') {\n\t\tconst blockState = states?.[relativePath(path, config.params.id).get()]\n\t\tconst values = Object.keys(blockState?.properties ?? {})\n\t\treturn <select value={value ?? ''} onChange={onChange}>\n\t\t\t{values.map(v => <option>{v}</option>)}\n\t\t</select>\n\t} else {\n\t\tconst { biomeColors, setBiomeColor } = useStore()\n\t\tconst fullId = typeof value === 'string' ? value.includes(':') ? value : 'minecraft:' + value : 'unknown'\n\t\tconst datalistId = hexId()\n\t\tconst gen = id ? findGenerator(id) : undefined\n\t\treturn <>\n\t\t\t<input value={value ?? ''} onBlur={onChange} onKeyDown={evt => {if (evt.key === 'Enter') onChange(evt)}}\n\t\t\t\tlist={values.length > 0 ? datalistId : ''} />\n\t\t\t{values.length > 0 && <datalist id={datalistId}>\n\t\t\t\t{values.map(v => <option value={v} />)}\n\t\t\t</datalist>}\n\t\t\t{['generator_biome.biome'].includes(context) && <input type=\"color\" value={rgbToHex(biomeColors[fullId] ?? VanillaColors[fullId] ?? stringToColor(fullId))} onChange={v => setBiomeColor(fullId, hexToRgb(v.currentTarget.value))}></input>}\n\t\t\t{['attribute_modifier.id', 'text_component_object.hoverEvent.show_entity.contents.id'].includes(context) && <button onClick={() => path.set(generateUUID())} class=\"tooltipped tip-se\" aria-label={localize(lang, 'generate_new_uuid')}>{Octicon.sync}</button>}\n\t\t\t{gen && values.includes(value) && value.startsWith('minecraft:') &&\n\t\t\t\t<a href={`/${gen.url}/?version=${version}&preset=${value.replace(/^minecraft:/, '')}`} class=\"tooltipped tip-se\" aria-label={localize(lang, 'follow_reference')}>{Octicon.link_external}</a>}\n\t\t</>\n\t}\n}\n\ntype MenuAction = {\n\tlabel: string,\n\tdescription?: string,\n\ticon: keyof typeof Octicon,\n\tonSelect: () => unknown,\n}\n\ntype TreeNodeProps = {\n\tschema: INode<any>,\n\tpath: ModelPath,\n\tvalue: any,\n\tlang: string,\n\tversion: VersionId,\n\tstates: BlockStateRegistry,\n\tctx: Record<string, any>,\n\tcompare?: any,\n\tlabel?: string | ComponentChildren,\n\tactions?: MenuAction[],\n\tchildren?: ComponentChildren,\n}\nfunction TreeNode({ label, schema, path, value, lang, version, states, ctx, actions, children }: TreeNodeProps) {\n\tconst type = schema.type(path)\n\tconst category = schema.category(path)\n\tconst context = path.getContext().join('.')\n\n\tconst [active, setActive] = useFocus()\n\tconst onContextMenu = (evt: MouseEvent) => {\n\t\tevt.preventDefault()\n\t\tsetActive()\n\t}\n\n\tconst newCtx: Record<string, any> = { ...ctx, depth: (ctx.depth ?? 0) + 1 }\n\tdelete newCtx.index\n\tconst [prefix, suffix, body] = schema.hook(renderHtml, path, value, lang, version, states, newCtx)\n\treturn <div class={`node ${type}-node`} data-category={category}>\n\t\t<div class=\"node-header\" onContextMenu={onContextMenu}>\n\t\t\t<ErrorPopup lang={lang} path={path} />\n\t\t\t<HelpPopup lang={lang} path={path} />\n\t\t\t{children}\n\t\t\t{prefix}\n\t\t\t<label>\n\t\t\t\t{label ?? pathLocale(lang, path, `${path.last()}`)}\n\t\t\t\t{active && <div class=\"node-menu\">\n\t\t\t\t\t{actions?.map(a => <div key={a.label} class=\"menu-item\">\n\t\t\t\t\t\t<Btn icon={a.icon} tooltip={localize(lang, a.label)} tooltipLoc=\"se\" onClick={() => a.onSelect()}/>\n\t\t\t\t\t\t<span>{a.description ?? localize(lang, a.label)}</span>\n\t\t\t\t\t</div>)}\n\t\t\t\t\t<div class=\"menu-item\">\n\t\t\t\t\t\t<Btn icon=\"clippy\" tooltip={localize(lang, 'copy_context')} tooltipLoc=\"se\" onClick={() => navigator.clipboard.writeText(context)} />\n\t\t\t\t\t\t<span>{context}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>}\n\t\t\t</label>\n\t\t\t{suffix}\n\t\t</div>\n\t\t{body && <div class=\"node-body\">{body}</div>}\n\t</div>\n}\n\nconst MemoedTreeNode = memo(TreeNode, (prev, next) => {\n\treturn prev.schema === next.schema\n\t\t&& prev.lang === next.lang\n\t\t&& prev.path.equals(next.path)\n\t\t&& deepEqual(prev.ctx, next.ctx)\n\t\t&& deepEqual(prev.value, next.value)\n})\n\nfunction isEnum(value?: ValidationOption | EnumOption): value is EnumOption {\n\treturn !!(value as any)?.enum\n}\n\nfunction hashString(str: string) {\n\tvar hash = 0, i, chr\n\tfor (i = 0; i < str.length; i++) {\n\t\tchr = str.charCodeAt(i)\n\t\thash = ((hash << 5) - hash) + chr\n\t\thash |= 0\n\t}\n\treturn hash\n}\n\nfunction pathLocale(lang: string, path: Path, ...params: string[]) {\n\tconst ctx = path.getContext()\n\tfor (let i = 0; i < ctx.length; i += 1) {\n\t\tconst key = ctx.slice(i).join('.')\n\t\tconst result = localize(lang, key, ...params)\n\t\tif (key !== result) {\n\t\t\treturn result\n\t\t}\n\t}\n\treturn ctx[ctx.length - 1]\n}\n\nfunction ErrorPopup({ lang, path, nested }: { lang: string, path: ModelPath, nested?: boolean }) {\n\tif (path.model instanceof ModelWrapper) {\n\t\tpath = path.model.map(path).withModel(path.model)\n\t}\n\tconst e = nested\n\t\t?\tpath.model.errors.getAll().filter(e => e.path.startsWith(path))\n\t\t: path.model.errors.get(path, true)\n\tif (e.length === 0) return null\n\tconst message = localize(lang, e[0].error, ...(e[0].params ?? []))\n\treturn popupIcon('node-error', 'issue_opened', message)\n}\n\nfunction HelpPopup({ lang, path }: { lang: string, path: Path }) {\n\tconst key = path.contextPush('help').getContext().join('.')\n\tconst message = localize(lang, key)\n\tif (message === key) return null\n\treturn popupIcon('node-help', 'info', message)\n}\n\nconst popupIcon = (type: string, icon: keyof typeof Octicon, popup: string) => {\n\tconst [active, setActive] = useFocus()\n\n\treturn <div class={`node-icon ${type}${active ? ' show' : ''}`} onClick={() => setActive()}>\n\t\t{Octicon[icon]}\n\t\t<span class=\"icon-popup\">{popup}</span>\n\t</div>\n}\n\nfunction isDecorated(context: string | undefined, value: any) {\n\treturn context === 'feature'\n\t\t&& value?.type?.replace(/^minecraft:/, '') === 'decorated'\n\t\t&& isObject(value?.config)\n}\n\nfunction createDecoratorsWrapper(originalFields: NodeChildren, path: ModelPath, value: any) {\n\tconst decorators: any[] = []\n\tconst feature = iterateNestedDecorators(value, decorators)\n\tconst fields = {\n\t\ttype: originalFields.type,\n\t\tconfig: ObjectNode({\n\t\t\tdecorators: ListNode(CachedDecorator),\n\t\t\tfeature: CachedFeature,\n\t\t}, { context: 'feature.decorated' }),\n\t}\n\tconst schema = ObjectNode(fields, { context: 'feature' })\n\tconst featurePath = new Path(['config', 'feature'])\n\tconst decoratorsPath = new Path(['config', 'decorators'])\n\tconst model = path.getModel()\n\tconst wrapper: ModelWrapper = new ModelWrapper(schema, path => {\n\t\tif (path.startsWith(featurePath)) {\n\t\t\treturn new Path([...[...Array(decorators.length - 1)].flatMap(() => ['config', 'feature']), ...path.modelArr])\n\t\t} else if (path.startsWith(decoratorsPath)) {\n\t\t\tif (path.modelArr.length === 2) {\n\t\t\t\treturn new Path([])\n\t\t\t}\n\t\t\tconst index = path.modelArr[2]\n\t\t\tif (typeof index === 'number') {\n\t\t\t\treturn new Path([...[...Array(index)].flatMap(() => ['config', 'feature']), 'config', 'decorator', ...path.modelArr.slice(3)])\n\t\t\t}\n\t\t}\n\t\treturn path\n\t}, path => {\n\t\tif (path.equals(decoratorsPath)) {\n\t\t\tconst newDecorators: any[] = []\n\t\t\titerateNestedDecorators(model.data, newDecorators)\n\t\t\treturn newDecorators\n\t\t}\n\t\treturn model.get(wrapper.map(path))\n\t}, (path, value, silent) => {\n\t\tif (path.startsWith(featurePath)) {\n\t\t\tconst newDecorators: any[] = []\n\t\t\titerateNestedDecorators(model.data, newDecorators)\n\t\t\tconst newPath =new Path([...[...Array(newDecorators.length - 1)].flatMap(() => ['config', 'feature']), ...path.modelArr])\n\t\t\treturn model.set(newPath, value, silent)\n\t\t} else if (path.startsWith(decoratorsPath)) {\n\t\t\tconst index = path.modelArr[2]\n\t\t\tif (path.modelArr.length === 2) {\n\t\t\t\tconst feature = wrapper.get(featurePath)\n\t\t\t\treturn model.set(new Path(), produceNestedDecorators(feature, value), silent)\n\t\t\t} else if (typeof index === 'number') {\n\t\t\t\tif (path.modelArr.length === 3 && value === undefined) {\n\t\t\t\t\tconst feature = wrapper.get(featurePath)\n\t\t\t\t\tconst newDecorators: any[] = []\n\t\t\t\t\titerateNestedDecorators(model.data, newDecorators)\n\t\t\t\t\tnewDecorators.splice(index, 1)\n\t\t\t\t\tconst newValue = produceNestedDecorators(feature, newDecorators)\n\t\t\t\t\treturn model.set(new Path(), newValue, silent)\n\t\t\t\t} else {\n\t\t\t\t\tconst newPath = new Path([...[...Array(index)].flatMap(() => ['config', 'feature']), 'config', 'decorator', ...path.modelArr.slice(3)])\n\t\t\t\t\treturn model.set(newPath, value, silent)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tmodel.set(path, value, silent)\n\t})\n\twrapper.data = {\n\t\ttype: model.data.type,\n\t\tconfig: {\n\t\t\tdecorators,\n\t\t\tfeature,\n\t\t},\n\t}\n\twrapper.errors = model.errors\n\treturn { fields, wrapper }\n}\n\nfunction iterateNestedDecorators(value: any, decorators: any[]): any {\n\tif (value?.type?.replace(/^minecraft:/, '') !== 'decorated') {\n\t\treturn value\n\t}\n\tif (!isObject(value?.config)) {\n\t\treturn value\n\t}\n\tdecorators.push({ id: decorators.length, node: value.config.decorator })\n\treturn iterateNestedDecorators(value.config.feature ?? '', decorators)\n}\n\nfunction produceNestedDecorators(feature: any, decorators: any[]): any {\n\tif (decorators.length === 0) return feature\n\treturn {\n\t\ttype: 'minecraft:decorated',\n\t\tconfig: {\n\t\t\tdecorator: decorators.shift().node,\n\t\t\tfeature: produceNestedDecorators(feature, decorators),\n\t\t},\n\t}\n}\n","import type { DataModel } from '@mcschema/core'\nimport { useErrorBoundary, useState } from 'preact/hooks'\nimport { useLocale } from '../../contexts/index.js'\nimport { useModel } from '../../hooks/index.js'\nimport { FullNode } from '../../schema/renderHtml.js'\nimport type { BlockStateRegistry, VersionId } from '../../services/index.js'\n\ntype TreePanelProps = {\n\tversion: VersionId,\n\tmodel: DataModel | undefined,\n\tblockStates: BlockStateRegistry | undefined,\n\tonError: (message: string) => unknown,\n}\nexport function Tree({ version, model, blockStates, onError }: TreePanelProps) {\n\tconst { lang } = useLocale()\n\tif (!model || !blockStates || lang === 'none') return <></>\n\n\tconst [error] = useErrorBoundary(e => {\n\t\tonError(`Error rendering the tree: ${e.message}`)\n\t\tconsole.error(e)\n\t})\n\tif (error) return <></>\n\n\tconst [, setState] = useState(0)\n\tuseModel(model, () => {\n\t\tsetState(state => state + 1)\n\t})\n\n\treturn <div class=\"tree\" data-cy=\"tree\">\n\t\t<FullNode {...{model, lang, version, blockStates}}/>\n\t</div>\n}\n","var e=Object.defineProperty,t=Object.defineProperties,s=Object.getOwnPropertyDescriptors,r=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable,i=(t,s,r)=>s in t?e(t,s,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[s]=r,c=(e,t)=>{for(var s in t||(t={}))n.call(t,s)&&i(e,s,t[s]);if(r)for(var s of r(t))o.call(t,s)&&i(e,s,t[s]);return e};import a,{useState as l,useEffect as u,useRef as m}from\"react\";const g=\"Please consider reporting this error at https://github.com/laymonage/giscus/issues/new.\";function d(e){return`[giscus] An error occurred. Error message: \"${e}\".`}function p(e){const t=document.querySelector(`meta[property='og:${e}'],meta[name='${e}']`);return t?t.content:\"\"}function f(){const e=document.getElementById(\"giscus-css\")||document.createElement(\"style\");e.id=\"giscus-css\",e.textContent=\"\\n .giscus, .giscus-frame {\\n width: 100%;\\n }\\n .giscus-frame {\\n border: none;\\n color-scheme: normal;\\n }\\n \",document.head.prepend(e)}function h(e){const[r,n]=l(\"\"),o=function({repo:e,repoId:t,category:s=\"\",categoryId:r=\"\",mapping:n,term:o=\"\",theme:i=\"light\",reactionsEnabled:c=\"1\",emitMetadata:a=\"0\",inputPosition:l=\"bottom\",lang:u=\"en\",session:m,origin:g}){const d=new URL(location.href);d.searchParams.delete(\"giscus\");const f=d.toString(),h={origin:g=g||f,session:m,theme:i,reactionsEnabled:c,emitMetadata:a,inputPosition:l,repo:e,repoId:t,category:s,categoryId:r,description:p(\"description\")};switch(n){case\"url\":h.term=f;break;case\"title\":h.term=document.title;break;case\"og:title\":h.term=p(\"title\");break;case\"specific\":h.term=o;break;case\"number\":h.number=o;break;case\"pathname\":default:h.term=location.pathname.length<2?\"index\":location.pathname.substring(1).replace(/\\.\\w+$/,\"\")}return`https://giscus.app/${u}/widget?${new URLSearchParams(h)}`}((i=c({},e),t(i,s({session:r}))));var i;const h=m(null);return u((()=>{const e=location.href,t=new URL(e),s=localStorage.getItem(\"giscus-session\"),r=t.searchParams.get(\"giscus\")||\"\";if(r)return localStorage.setItem(\"giscus-session\",JSON.stringify(r)),n(r),t.searchParams.delete(\"giscus\"),void history.replaceState(void 0,document.title,t.toString());if(s)try{n(JSON.parse(s||\"\")||\"\")}catch(o){n(\"\"),localStorage.removeItem(\"giscus-session\"),console.warn(`${d(null==o?void 0:o.message)} Session has been cleared.`)}}),[]),u(f,[]),u((()=>{const e=function(e,t=null){return function(s){if(\"https://giscus.app\"!==s.origin)return;const{data:r}=s;if(\"object\"!=typeof r||!r.giscus)return;if(t&&r.giscus.resizeHeight&&(t.style.height=`${r.giscus.resizeHeight}px`),!r.giscus.error)return;const n=r.giscus.error;if(n.includes(\"Bad credentials\")||n.includes(\"Invalid state value\")){if(null!==localStorage.getItem(\"giscus-session\"))return localStorage.removeItem(\"giscus-session\"),e(),void console.warn(`${d(n)} Session has been cleared.`);console.error(`${d(n)} No session is stored initially. ${g}`)}n.includes(\"Discussion not found\")?console.warn(`[giscus] ${n}. A new discussion will be created if a comment/reaction is submitted.`):console.error(`${d(n)} ${g}`)}}((()=>n(\"\")),h.current);return window.addEventListener(\"message\",e),()=>window.removeEventListener(\"message\",e)}),[]),a.createElement(\"div\",{className:\"giscus\"},a.createElement(\"iframe\",{className:\"giscus-frame\",title:\"Comments\",scrolling:\"no\",src:o,ref:h}))}function b(e){const[t,s]=l(!1);return u((()=>s(!0)),[]),t?a.createElement(h,c({},e)):null}export{b as Giscus};\n","import { Giscus as GiscusReact } from '@giscus/react'\nimport { useTheme } from '../contexts/index.js'\n\ninterface Props {\n\tterm?: string,\n}\nexport function Giscus({ term }: Props) {\n\tconst { actualTheme } = useTheme()\n\tconst themeSuffix = actualTheme === 'light' ? '-burn' : ''\n\tconst themeUrl = (import.meta as any).env.DEV\n\t\t? `http://localhost:3000/src/styles/giscus${themeSuffix}.css`\n\t\t: `${location.protocol}//${location.host}/assets/giscus${themeSuffix}.css`\n\n\treturn <div class=\"giscus-container\">\n\t\t<GiscusReact\n\t\t\trepo=\"misode/misode.github.io\"\n\t\t\trepoId=\"MDEwOlJlcG9zaXRvcnkxOTIyNTQyMzA=\"\n\t\t\tcategory=\"Site\"\n\t\t\tcategoryId=\"DIC_kwDOC3WRFs4COB8r\"\n\t\t\tmapping={term ? 'specific' : 'pathname'}\n\t\t\tterm={term}\n\t\t\treactionsEnabled=\"1\"\n\t\t\temitMetadata=\"0\"\n\t\t\tinputPosition=\"top\"\n\t\t\ttheme={themeUrl}\n\t\t\tlang=\"en\" />\n\t</div>\n}\n","export interface Guide {\n\tid: string,\n\ttitle: string,\n\tversions?: string[],\n\ttags?: string[],\n}\n\ndeclare var __GUIDES__: Guide[]\n\nexport function getGuides() {\n\treturn __GUIDES__\n}\n\nexport function getGuide(id: string): Guide {\n\tconst guide = getGuides().find(g => g.id === id)\n\tif (guide === undefined) {\n\t\treturn { id, title: 'Unknown Guide' }\n\t}\n\treturn guide\n}\n","import { useMemo } from 'preact/hooks'\nimport { getGuide } from '../services/Guides.js'\nimport { Card } from './Card.jsx'\nimport { Badge } from './index.js'\n\ninterface Props {\n\tid: string,\n\tminimal?: boolean,\n\tactiveTags?: string[],\n\ttoggleTag?: (tag: string) => unknown,\n}\nexport function GuideCard({ id, minimal, activeTags, toggleTag }: Props) {\n\tconst { title, versions, tags } = useMemo(() => getGuide(id), [id])\n\n\tconst onToggleTag = (tag: string) => (e: MouseEvent) => {\n\t\tif (toggleTag) toggleTag(tag)\n\t\te.preventDefault()\n\t\te.stopImmediatePropagation()\n\t}\n\n\treturn <Card title={title} overlay={!minimal && versions?.join(' • ')} link={`/guides/${id}/`}>\n\t\t<div class=\"badges-list\">\n\t\t\t{tags?.sort().map(tag => <Badge label={tag} onClick={onToggleTag(tag)} active={activeTags?.includes(tag)} />)}\n\t\t</div>\n\t</Card>\n}\n","import { getCurrentUrl, Link, route } from 'preact-router'\nimport config from '../Config.js'\nimport { useLocale, useProject, useTheme, useTitle, useVersion } from '../contexts/index.js'\nimport { checkVersion } from '../services/index.js'\nimport { cleanUrl, getGenerator } from '../Utils.js'\nimport { Btn, BtnMenu, Icons, Octicon } from './index.js'\n\nconst Themes: Record<string, keyof typeof Octicon> = {\n\tsystem: 'device_desktop',\n\tdark: 'moon',\n\tlight: 'sun',\n}\n\nexport function Header() {\n\tconst { lang, locale, changeLocale: changeLanguage } = useLocale()\n\tconst { theme, changeTheme } = useTheme()\n\tconst { version } = useVersion()\n\tconst { projects, project, changeProject } = useProject()\n\tconst { title } = useTitle()\n\tconst url = getCurrentUrl()\n\tconst gen = getGenerator(url)\n\n\treturn <header>\n\t\t<div class=\"title\">\n\t\t\t<Link class=\"home-link\" href=\"/\" aria-label={locale('home')} data-cy=\"home-link\">{Icons.home}</Link>\n\t\t\t<h1>{title}</h1>\n\t\t\t{gen && <BtnMenu icon=\"chevron_down\" tooltip={locale('switch_generator')} data-cy=\"generator-switcher\">\n\t\t\t\t{config.generators\n\t\t\t\t\t.filter(g => g.tags?.[0] === gen?.tags?.[0] && checkVersion(version, g.minVersion))\n\t\t\t\t\t.map(g =>\n\t\t\t\t\t\t<Btn label={locale(g.partner ? `partner.${g.partner}.${g.id}` : g.id)} active={g.id === gen.id} onClick={() => route(cleanUrl(g.url))} />\n\t\t\t\t\t)}\n\t\t\t</BtnMenu>}\n\t\t\t{!gen && url.match(/\\/?project\\/?$/) && <BtnMenu icon=\"chevron_down\" tooltip={locale('switch_project')}>\n\t\t\t\t{projects.map(p =>\n\t\t\t\t\t<Btn label={p.name} active={p.name === project.name} onClick={() => changeProject(p.name)} />\n\t\t\t\t)}\n\t\t\t</BtnMenu>}\n\t\t</div>\n\t\t<nav>\n\t\t\t<ul>\n\t\t\t\t<li data-cy=\"language-switcher\">\n\t\t\t\t\t<BtnMenu icon=\"globe\" tooltip={locale('language')}>\n\t\t\t\t\t\t{config.languages.map(({ code, name }) =>\n\t\t\t\t\t\t\t<Btn label={name} active={code === lang}\n\t\t\t\t\t\t\t\tonClick={() => changeLanguage(code)} />\n\t\t\t\t\t\t)}\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t</li>\n\t\t\t\t<li data-cy=\"theme-switcher\">\n\t\t\t\t\t<BtnMenu icon={Themes[theme]} tooltip={locale('theme')}>\n\t\t\t\t\t\t{Object.entries(Themes).map(([th, icon]) =>\n\t\t\t\t\t\t\t<Btn icon={icon} label={locale(`theme.${th}`)} active={th === theme}\n\t\t\t\t\t\t\t\tonClick={() => changeTheme(th)} />\n\t\t\t\t\t\t)}\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t</li>\n\t\t\t\t<li class=\"dimmed\">\n\t\t\t\t\t<a href=\"https://github.com/misode/misode.github.io\" target=\"_blank\" rel=\"noreferrer\" class=\"tooltipped tip-sw\" aria-label={locale('github')}>\n\t\t\t\t\t\t{Octicon.mark_github}\n\t\t\t\t\t</a>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</nav>\n\t</header>\n}\n","const TAG = <svg width=\"29\" height=\"29\" viewBox=\"0 0 29 29\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M17.8284 0.686291C17.298 0.686291 16.7893 0.897005 16.4142 1.27208L1.44365 16.2426C0.662602 17.0237 0.662602 18.29 1.44365 19.0711L9.92893 27.5563C10.71 28.3374 11.9763 28.3374 12.7574 27.5563L27.7279 12.5858C28.103 12.2107 28.3137 11.702 28.3137 11.1716V2.68629C28.3137 1.58172 27.4183 0.686291 26.3137 0.686291H17.8284ZM23.5 8C24.8807 8 26 6.88071 26 5.5C26 4.11929 24.8807 3 23.5 3C22.1193 3 21 4.11929 21 5.5C21 6.88071 22.1193 8 23.5 8Z\"/></svg>\nconst STRUCTURE = <svg width=\"28\" height=\"22\" viewBox=\"0 0 28 22\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M26.8426 9.83057L23.3294 9.83057V20.8306C23.3294 21.3829 22.8817 21.8306 22.3294 21.8306H5.3294C4.77712 21.8306 4.3294 21.3829 4.3294 20.8306V9.83057L1.00171 9.83057C-0.017101 9.83057 -0.383456 8.48519 0.494688 7.96864L13.8067 0.138065C14.1279 -0.0509101 14.5276 -0.045538 14.8437 0.152002L27.3726 7.98258C28.2246 8.51506 27.8473 9.83057 26.8426 9.83057ZM15.3294 11.8306C14.7771 11.8306 14.3294 12.2783 14.3294 12.8306V16.8306C14.3294 17.3829 14.7771 17.8306 15.3294 17.8306H18.3294C18.8817 17.8306 19.3294 17.3829 19.3294 16.8306V12.8306C19.3294 12.2783 18.8817 11.8306 18.3294 11.8306H15.3294Z\"/></svg>\n\nexport const Icons = {\n\thome: <svg width=\"32\" height=\"28\" viewBox=\"0 0 32 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"26\" height=\"6\" rx=\"3\" fill=\"#7CB45C\"/><rect x=\"8\" width=\"18\" height=\"6\" rx=\"3\" fill=\"#4BA041\"/><rect y=\"11\" width=\"32\" height=\"6\" rx=\"3\" fill=\"#AAA8A8\"/><rect x=\"11\" y=\"11\" width=\"21\" height=\"6\" rx=\"3\" fill=\"#91908F\"/><rect x=\"11\" y=\"22\" width=\"21\" height=\"6\" rx=\"3\" fill=\"#70B5C3\"/><rect x=\"17\" y=\"22\" width=\"15\" height=\"6\" rx=\"3\" fill=\"#4D989B\"/></svg>,\n\treport: <svg width=\"30\" height=\"36\" viewBox=\"0 0 30 36\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 16C0 13.7909 1.79086 12 4 12V12C6.20914 12 8 13.7909 8 16V32C8 34.2091 6.20914 36 4 36V36C1.79086 36 0 34.2091 0 32V16Z\" fill=\"#6ACC5D\"/><path d=\"M11 4C11 1.79086 12.7909 0 15 0V0C17.2091 0 19 1.79086 19 4V32C19 34.2091 17.2091 36 15 36V36C12.7909 36 11 34.2091 11 32V4Z\" fill=\"#FF4C4C\"/><path d=\"M22 10C22 7.79086 23.7909 6 26 6V6C28.2091 6 30 7.79086 30 10V32C30 34.2091 28.2091 36 26 36V36C23.7909 36 22 34.2091 22 32V10Z\" fill=\"#E5B442\"/><path d=\"M0 23C0 20.7909 1.79086 19 4 19V19C6.20914 19 8 20.7909 8 23V32C8 34.2091 6.20914 36 4 36V36C1.79086 36 0 34.2091 0 32V23Z\" fill=\"#2BAD1D\"/><path d=\"M11 15C11 12.7909 12.7909 11 15 11V11C17.2091 11 19 12.7909 19 15V32C19 34.2091 17.2091 36 15 36V36C12.7909 36 11 34.2091 11 32V15Z\" fill=\"#C10B0B\"/><path d=\"M22 19C22 16.7909 23.7909 15 26 15V15C28.2091 15 30 16.7909 30 19V32C30 34.2091 28.2091 36 26 36V36C23.7909 36 22 34.2091 22 32V19Z\" fill=\"#CC8E00\"/></svg>,\n\tsounds: <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"10\" cy=\"10\" r=\"10\" fill=\"#451475\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M3.5 10C3.5 8.27609 4.18482 6.62279 5.40381 5.40381C6.62279 4.18482 8.27609 3.5 10 3.5C11.7239 3.5 13.3772 4.18482 14.5962 5.40381C15.8152 6.62279 16.5 8.27609 16.5 10C16.5 11.7239 15.8152 13.3772 14.5962 14.5962C13.3772 15.8152 11.7239 16.5 10 16.5C8.27609 16.5 6.62279 15.8152 5.40381 14.5962C4.18482 13.3772 3.5 11.7239 3.5 10V10ZM10 2C7.87827 2 5.84344 2.84285 4.34315 4.34315C2.84285 5.84344 2 7.87827 2 10C2 12.1217 2.84285 14.1566 4.34315 15.6569C5.84344 17.1571 7.87827 18 10 18C12.1217 18 14.1566 17.1571 15.6569 15.6569C17.1571 14.1566 18 12.1217 18 10C18 7.87827 17.1571 5.84344 15.6569 4.34315C14.1566 2.84285 12.1217 2 10 2V2ZM8.379 7.227C8.34101 7.20412 8.29762 7.19175 8.25327 7.19117C8.20892 7.19059 8.16522 7.20181 8.12664 7.2237C8.08807 7.24558 8.05601 7.27733 8.03375 7.3157C8.0115 7.35406 7.99985 7.39765 8 7.442V12.559C8.00003 12.6033 8.0118 12.6467 8.03413 12.685C8.05646 12.7232 8.08854 12.7548 8.12708 12.7765C8.16563 12.7983 8.20926 12.8095 8.25352 12.8088C8.29778 12.8082 8.34108 12.7958 8.379 12.773L12.643 10.214C12.6798 10.1917 12.7103 10.1604 12.7315 10.1229C12.7526 10.0854 12.7638 10.043 12.7638 10C12.7638 9.95695 12.7526 9.91463 12.7315 9.87714C12.7103 9.83965 12.6798 9.80825 12.643 9.786L8.379 7.227Z\" fill=\"#C5A5E6\"/></svg>,\n\tadvancement: <svg width=\"27\" height=\"27\" viewBox=\"0 0 27 27\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M5.76943 2.86824L2.18356 0.819176C1.29934 0.313911 0.313911 1.29934 0.819176 2.18356L2.86824 5.76943C2.95458 5.92052 3 6.09154 3 6.26556V20.7344C3 20.9085 2.95459 21.0795 2.86824 21.2306L0.819176 24.8164C0.313911 25.7007 1.29934 26.6861 2.18356 26.1808L5.76943 24.1318C5.92052 24.0454 6.09154 24 6.26556 24H20.7344C20.9085 24 21.0795 24.0454 21.2306 24.1318L24.8164 26.1808C25.7007 26.6861 26.6861 25.7007 26.1808 24.8164L24.1318 21.2306C24.0454 21.0795 24 20.9085 24 20.7344V6.26556C24 6.09154 24.0454 5.92052 24.1318 5.76943L26.1808 2.18356C26.6861 1.29934 25.7007 0.313911 24.8164 0.819176L21.2306 2.86824C21.0795 2.95458 20.9085 3 20.7344 3H6.26556C6.09154 3 5.92052 2.95459 5.76943 2.86824Z\"/></svg>,\n\tblock_definition: <svg width=\"28\" height=\"30\" viewBox=\"0 0 28 30\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.75 0.272806C13.5437 -0.0909347 14.4563 -0.0909357 15.25 0.272805L26.25 5.31447C27.3163 5.80322 28 6.86864 28 8.04167V21.3583C28 22.5313 27.3163 23.5967 26.25 24.0855L15.25 29.1272C14.4563 29.4909 13.5437 29.4909 12.75 29.1272L1.75004 24.0855C0.683681 23.5967 0 22.5313 0 21.3583V8.04167C0 6.86864 0.683678 5.80322 1.75004 5.31447L12.75 0.272806ZM14 4.10003L6.92266 7.34381L14 10.2391L21.0773 7.34381L14 4.10003ZM24 10.4699V20.7166L16 24.3833V13.7427L24 10.4699ZM12 13.7427L4 10.4699V20.7166L12 24.3833V13.7427Z\"/></svg>,\n\tchat_type: <svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 0C1.79086 0 0 1.79086 0 4V21C0 23.2091 1.79086 25 4 25H8V30.7732C8 31.636 9.01946 32.0938 9.66436 31.5206L17 25H28C30.2091 25 32 23.2091 32 21V4C32 1.79086 30.2091 0 28 0H4Z\"/></svg>,\t\n\tdimension: <svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M19.7659 0.445701C18.5582 0.154357 17.2971 0 16 0C12.7056 0 9.64369 0.995672 7.09887 2.70251C7.94418 3.62868 8.45554 4.49063 8.75229 5.30669C9.09264 6.24263 9.125 7.05145 9.125 7.6875C9.125 7.78933 9.12466 7.88242 9.12434 7.96797V7.96834V7.96869V7.96901V7.96902C9.12247 8.47232 9.12158 8.71409 9.19707 8.93677C9.24638 9.08226 9.36226 9.31309 9.94721 9.60557C10.5615 9.91273 10.7586 9.8353 10.7733 9.82952L10.7739 9.82929C10.8476 9.80165 10.9347 9.73088 11.2191 9.3753L11.256 9.32901C11.4803 9.04661 11.8843 8.53789 12.5239 8.29804C13.2651 8.02009 14.0719 8.16789 14.9472 8.60557C16.4469 9.35541 17.3707 9.72195 17.9896 9.84301C18.2833 9.90046 18.4612 9.89221 18.5724 9.86953C18.6731 9.84897 18.7646 9.80771 18.8753 9.71913C19.2786 9.39647 19.6673 8.76901 19.9604 7.83984C20.2468 6.93156 20.4085 5.83955 20.4378 4.72369C20.4672 3.60868 20.3634 2.50945 20.1445 1.59133C20.0358 1.13577 19.9057 0.75371 19.7659 0.445701ZM5.50368 3.92379C2.13164 6.85717 4.76837e-07 11.1797 4.76837e-07 16C4.76837e-07 16.1436 0.00189157 16.2867 0.00565022 16.4294C1.54401 16.9679 2.98111 16.6462 4.47925 16.2249C4.59499 16.1923 4.71296 16.1585 4.83279 16.1242L4.83282 16.1242C5.68141 15.881 6.62293 15.6113 7.5179 15.5713C8.62706 15.5218 9.72807 15.8138 10.7071 16.7929C11.7646 17.8503 12.0777 19.3283 11.8236 20.6012C11.5699 21.8719 10.7059 23.1043 9.24253 23.4702C8.94395 23.5448 8.87224 23.6435 8.85319 23.6716C8.82014 23.7204 8.77492 23.8288 8.77233 24.0677C8.7697 24.3108 8.81045 24.5892 8.869 24.9304L8.88606 25.0286L8.88606 25.0286C8.93527 25.3102 9 25.6807 9 26C9 27.4332 8.58821 28.8019 8.09018 29.9113C10.4231 31.2406 13.1229 32 16 32C19.5354 32 22.8029 30.8534 25.4511 28.9117C25.3471 28.7646 25.2399 28.6153 25.1301 28.465C24.5506 27.672 23.9089 26.8682 23.2732 26.2107C22.6167 25.5315 22.05 25.0971 21.6286 24.9285C20.8738 24.6266 20.1566 24.1617 19.9616 23.3144C19.8718 22.9244 19.9228 22.5591 20.0033 22.2613C20.0827 21.9675 20.2083 21.6782 20.3292 21.4199C20.3937 21.2823 20.4611 21.1436 20.5296 21.0026L20.5296 21.0024C20.9898 20.055 21.5 19.0047 21.5 17.5C21.5 16.2061 22.0035 15.2171 22.8218 14.4932C23.5953 13.8089 24.6068 13.3989 25.5877 13.1047C26.3248 12.8835 27.1287 12.7056 27.8822 12.5388L27.8824 12.5388L27.8824 12.5388L27.8824 12.5388C28.1297 12.484 28.3716 12.4305 28.6038 12.377C29.5877 12.1506 30.4202 11.9219 31.0528 11.6056C31.1525 11.5557 31.2566 11.5241 31.3612 11.5094C29.9973 6.83578 26.5583 3.04703 22.1087 1.2075C22.3608 2.30151 22.4695 3.54643 22.4372 4.7763C22.404 6.03545 22.2219 7.31843 21.8678 8.4414C21.5202 9.54349 20.9714 10.6035 20.1247 11.2809C19.7989 11.5415 19.4221 11.7373 18.9722 11.8291C18.5328 11.9188 18.0778 11.8982 17.6057 11.8058C16.6928 11.6273 15.5531 11.1446 14.0528 10.3944C13.4385 10.0873 13.2414 10.1647 13.2267 10.1705L13.2261 10.1707C13.1524 10.1983 13.0653 10.2691 12.7809 10.6247L12.744 10.671C12.5197 10.9534 12.1157 11.4621 11.4761 11.702C10.7349 11.9799 9.92815 11.8321 9.05279 11.3944C8.13774 10.9369 7.56612 10.3552 7.30294 9.57885C7.10968 9.00876 7.1174 8.37679 7.1232 7.90214V7.90213C7.12412 7.82627 7.125 7.75443 7.125 7.6875C7.125 7.13604 7.09486 6.60111 6.87271 5.99018C6.66804 5.42734 6.27867 4.74354 5.50368 3.92379ZM31.8004 13.4655C30.9636 13.8583 29.9823 14.1121 29.0524 14.3261C28.782 14.3883 28.5159 14.4472 28.2543 14.5052C27.5209 14.6676 26.8227 14.8222 26.1623 15.0203C25.2682 15.2886 24.5922 15.5973 24.147 15.9912C23.7465 16.3454 23.5 16.7939 23.5 17.5C23.5 19.496 22.7817 20.9579 22.3162 21.9053L22.3159 21.9058C22.2518 22.0363 22.1925 22.157 22.1405 22.268C22.0298 22.5045 21.9661 22.6645 21.934 22.7831C21.9282 22.8046 21.9241 22.8225 21.9212 22.837C21.9775 22.8824 22.105 22.965 22.3714 23.0715C23.2 23.403 24.0083 24.0935 24.7112 24.8206C25.4349 25.5693 26.1369 26.4531 26.7449 27.285C26.8288 27.3998 26.9111 27.5139 26.9917 27.6269C30.0758 24.7103 32 20.5798 32 16C32 15.1375 31.9318 14.291 31.8004 13.4655ZM6.39285 28.7958C6.7349 27.9612 7 26.9846 7 26C7 25.8639 6.96675 25.6702 6.9058 25.3152L6.8978 25.2686C6.84067 24.9356 6.76762 24.4924 6.77245 24.0461C6.77733 23.5956 6.86084 23.0468 7.19719 22.5502C7.54754 22.0328 8.08591 21.6977 8.75748 21.5299C9.2941 21.3957 9.72071 20.9187 9.86229 20.2096C10.0034 19.5028 9.81659 18.7308 9.2929 18.2071C8.77193 17.6861 8.24794 17.5407 7.6071 17.5693C6.96482 17.598 6.27253 17.7947 5.38824 18.0461L5.38718 18.0464L5.3833 18.0475C5.26594 18.0808 5.1452 18.1152 5.02075 18.1502C3.64971 18.5358 2.00798 18.9412 0.20345 18.5584C0.873856 22.73 3.15691 26.3624 6.39285 28.7958ZM21.8827 22.799C21.882 22.7982 21.8816 22.7979 21.8815 22.7979C21.881 22.798 21.883 22.8012 21.8886 22.8073C21.886 22.8031 21.884 22.8004 21.8827 22.799Z\"/></svg>,\n\tdimension_type: <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.2929 22.7071C11.6834 23.0976 12.3166 23.0976 12.7071 22.7071L19.0711 16.3431C19.4616 15.9526 19.4616 15.3195 19.0711 14.9289C18.6805 14.5384 18.0474 14.5384 17.6569 14.9289L13 19.5858V14.1521C14.074 14.1106 15.2545 13.9152 16.5 13.5C17.4051 13.1983 18.0371 12.8511 18.602 12.5408C19.9096 11.8225 20.8576 11.3017 24 12V20C24 22.2091 22.2091 24 20 24H4C1.79086 24 0 22.2091 0 20V9.5C3 7.5 6 10.5 7.5 12.5C7.95659 13.1088 9.22475 13.7863 11 14.0485V19.5858L6.34315 14.9289C5.95262 14.5384 5.31946 14.5384 4.92893 14.9289C4.53841 15.3195 4.53841 15.9526 4.92893 16.3431L11.2929 22.7071ZM11 14.0485V3.41421L6.34315 8.07107C5.95262 8.46159 5.31946 8.46159 4.92893 8.07107C4.53841 7.68054 4.53841 7.04738 4.92893 6.65686L11.2929 0.292893C11.6834 -0.097631 12.3166 -0.097631 12.7071 0.292893L19.0711 6.65686C19.4616 7.04738 19.4616 7.68054 19.0711 8.07107C18.6805 8.46159 18.0474 8.46159 17.6569 8.07107L13 3.41421V14.1521C12.2816 14.1799 11.6108 14.1388 11 14.0485Z\"/></svg>,\n\tfont: <svg width=\"26\" height=\"20\" viewBox=\"0 0 26 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M3 16V3H9V16H3ZM0 1C0 0.447715 0.447715 0 1 0H11C11.5523 0 12 0.447715 12 1V18C12 18.5523 11.5523 19 11 19H1C0.447715 19 0 18.5523 0 18V1ZM17.3224 18.8366C17.8622 19.0687 18.4801 19.1847 19.1761 19.1847C19.6828 19.1847 20.1373 19.1207 20.5398 18.9929C20.947 18.8651 21.2997 18.6733 21.598 18.4176C21.901 18.1619 22.1496 17.8494 22.3438 17.4801H22.429V19H25.696V11.5852C25.696 11.0076 25.5753 10.4938 25.3338 10.044C25.0971 9.59422 24.7609 9.21544 24.3253 8.90767C23.8897 8.59517 23.3783 8.35843 22.7912 8.19744C22.2041 8.03172 21.5625 7.94886 20.8665 7.94886C19.8911 7.94886 19.0554 8.10038 18.3594 8.40341C17.6681 8.7017 17.1236 9.11364 16.7259 9.6392C16.3329 10.16 16.089 10.7519 15.9943 11.4148L19.1974 11.5284C19.2732 11.178 19.4508 10.9034 19.7301 10.7045C20.0095 10.5057 20.3788 10.4062 20.8381 10.4062C21.2642 10.4062 21.6027 10.5057 21.8537 10.7045C22.1046 10.9034 22.2301 11.1851 22.2301 11.5497V11.5852C22.2301 11.8078 22.1425 11.9806 21.9673 12.1037C21.7969 12.2221 21.5223 12.3144 21.1435 12.3807C20.7647 12.4422 20.2652 12.5014 19.6449 12.5582C19.0909 12.6056 18.5701 12.6979 18.0824 12.8352C17.5947 12.9678 17.1638 13.1643 16.7898 13.4247C16.4157 13.6851 16.1222 14.0237 15.9091 14.4403C15.696 14.857 15.5895 15.3684 15.5895 15.9744C15.5895 16.6941 15.7434 17.2931 16.0511 17.7713C16.3636 18.2448 16.7874 18.5999 17.3224 18.8366ZM21.2571 16.6847C20.9588 16.8362 20.6226 16.9119 20.2486 16.9119C19.8509 16.9119 19.5218 16.8172 19.2614 16.6278C19.0057 16.4384 18.8778 16.1638 18.8778 15.804C18.8778 15.5672 18.937 15.3636 19.0554 15.1932C19.1785 15.018 19.3537 14.8759 19.581 14.767C19.813 14.6581 20.0923 14.5777 20.419 14.5256C20.58 14.5019 20.7481 14.4759 20.9233 14.4474C21.0985 14.419 21.2689 14.3859 21.4347 14.348C21.6004 14.3101 21.7519 14.2699 21.8892 14.2273C22.0312 14.1847 22.152 14.1373 22.2514 14.0852V15.1222C22.2514 15.4773 22.1615 15.7898 21.9815 16.0597C21.8016 16.3248 21.5601 16.5331 21.2571 16.6847Z\"/></svg>,\n\titem_modifier: <svg width=\"26\" height=\"26\" viewBox=\"0 0 26 26\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><line x1=\"8.05026\" y1=\"17.9498\" x2=\"17.9498\" y2=\"8.05026\" stroke=\"currentColor\" stroke-width=\"4\" stroke-linecap=\"round\"/><path d=\"M10.1749 4.51138C10.1749 4.51138 16.4785 3.75061 19.364 6.63604C22.2494 9.52148 21.4886 15.8251 21.4886 15.8251\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"4\" stroke-linecap=\"round\"/></svg>,\n\tloot_table: <svg width=\"36\" height=\"36\" viewBox=\"0 0 36 36\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M0.159296 8.96068C-0.224317 6.7851 1.22836 4.71047 3.40393 4.32686L27.0393 0.159301C29.2149 -0.224312 31.2895 1.22836 31.6731 3.40394L35.8407 27.0393C36.2243 29.2149 34.7716 31.2895 32.5961 31.6731L8.96068 35.8407C6.7851 36.2243 4.71047 34.7716 4.32685 32.5961L0.159296 8.96068ZM11.5999 10.4974C11.9356 12.401 10.6645 14.2163 8.76089 14.552C6.85726 14.8876 5.04196 13.6165 4.7063 11.7129C4.37063 9.80928 5.64172 7.99398 7.54535 7.65832C9.44898 7.32266 11.2643 8.59375 11.5999 10.4974ZM25.5026 11.6C27.4063 11.2643 28.6773 9.44899 28.3417 7.54536C28.006 5.64173 26.1907 4.37064 24.2871 4.7063C22.3835 5.04196 21.1124 6.85727 21.448 8.7609C21.7837 10.6645 23.599 11.9356 25.5026 11.6ZM14.552 27.2391C14.8876 29.1427 13.6165 30.958 11.7129 31.2937C9.80928 31.6294 7.99398 30.3583 7.65831 28.4546C7.32265 26.551 8.59374 24.7357 10.4974 24.4001C12.401 24.0644 14.2163 25.3355 14.552 27.2391ZM28.4546 28.3417C30.3583 28.006 31.6294 26.1907 31.2937 24.2871C30.958 22.3835 29.1427 21.1124 27.2391 21.448C25.3355 21.7837 24.0644 23.599 24.4 25.5026C24.7357 27.4063 26.551 28.6773 28.4546 28.3417Z\"/></svg>,\n\tmodel: <svg width=\"28\" height=\"23\" viewBox=\"0 0 28 23\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.75 0.27279C13.5437 -0.09095 14.4563 -0.0909509 15.25 0.27279L26.25 5.31446C27.3163 5.8032 28 6.86863 28 8.04165V15.3333C28 16.5444 27.2718 17.6367 26.1538 18.1025L15.1538 22.6859C14.4154 22.9936 13.5846 22.9936 12.8462 22.6859L1.84615 18.1025C0.728214 17.6367 0 16.5444 0 15.3333V8.04165C0 6.86863 0.683678 5.8032 1.75004 5.31446L12.75 0.27279ZM14 4.10002L6.92266 7.3438L14 10.2391L21.0773 7.3438L14 4.10002ZM24 10.4699V14.6666L16 18V13.7427L24 10.4699ZM12 13.7427L4 10.4699V14.6666L12 18V13.7427Z\"/></svg>,\n\tpack_mcmeta: <svg width=\"28\" height=\"31\" viewBox=\"0 0 28 31\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15.25 0.872837C14.4563 0.509096 13.5437 0.509097 12.75 0.872837L1.75004 5.9145C0.683678 6.40325 0 7.46867 0 8.6417V23.3333C0 24.5444 0.728212 25.6368 1.84615 26.1026L12.8462 30.6859C13.5846 30.9936 14.4154 30.9936 15.1538 30.6859L26.1538 26.1026C27.2718 25.6368 28 24.5444 28 23.3333V8.6417C28 7.46867 27.3163 6.40325 26.25 5.9145L15.25 0.872837ZM11.8374 5.69126L14 4.70006L21.0773 7.94384L18.8225 8.86629L11.8374 5.69126ZM9.4308 6.79428L6.92266 7.94384L14 10.8391L16.2787 9.90694L9.4308 6.79428ZM24 22.6667V11.07L16 14.3427V26L24 22.6667ZM4 11.07L12 14.3427V26L4 22.6667V11.07Z\"/></svg>,\n\tpredicate: <svg width=\"24\" height=\"22\" viewBox=\"0 0 24 22\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M22 0H2C1.17595 0 0.705573 0.940764 1.2 1.6L8.8 11.7333C8.92982 11.9064 9 12.117 9 12.3333V20.382C9 21.1253 9.78231 21.6088 10.4472 21.2764L14.4472 19.2764C14.786 19.107 15 18.7607 15 18.382V12.3333C15 12.117 15.0702 11.9064 15.2 11.7333L22.8 1.6C23.2944 0.940764 22.824 0 22 0Z\"/></svg>,\n\trecipe: <svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M20 2H12V10L20 10V2ZM10 2V10H2V4C2 2.89543 2.89543 2 4 2H10ZM2 20L2 12H10V20H2ZM2 22L2 28C2 29.1046 2.89543 30 4 30H10V22H2ZM12 22V30H20V22L12 22ZM22 22V30H28C29.1046 30 30 29.1046 30 28V22H22ZM30 20V12H22V20H30ZM20 20L12 20V12L20 12V20ZM30 4V10H22V2H28C29.1046 2 30 2.89543 30 4ZM4 0C1.79086 0 0 1.79086 0 4V28C0 30.2091 1.79086 32 4 32H28C30.2091 32 32 30.2091 32 28V4C32 1.79086 30.2091 0 28 0H4Z\"/></svg>,\n\t'tag/block': TAG,\n\t'tag/entity_type': TAG,\n\t'tag/fluid': TAG,\n\t'tag/game_event': TAG,\n\t'tag/item': TAG,\n\t'tag/worldgen/biome': TAG,\n\ttext_component: <svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M0 4C0 1.79086 1.79086 0 4 0H28C30.2091 0 32 1.79086 32 4V21C32 23.2091 30.2091 25 28 25H17L9.66436 31.5206C9.01946 32.0938 8 31.636 8 30.7732V25H4C1.79086 25 0 23.2091 0 21V4ZM2.46875 20H6.24716L7.20402 16.946H12.2272L13.1861 20H16.9645L12.0568 5.45455H7.37642L2.46875 20ZM11.3888 14.2756L9.76989 9.11932H9.65625L8.04072 14.2756H11.3888ZM19.7521 19.8366C20.2919 20.0687 20.9098 20.1847 21.6058 20.1847C22.1125 20.1847 22.567 20.1207 22.9695 19.9929C23.3767 19.8651 23.7294 19.6733 24.0277 19.4176C24.3307 19.1619 24.5793 18.8494 24.7734 18.4801H24.8587V20H28.1257V12.5852C28.1257 12.0076 28.005 11.4938 27.7635 11.044C27.5268 10.5942 27.1906 10.2154 26.755 9.90767C26.3194 9.59517 25.808 9.35843 25.2209 9.19744C24.6338 9.03172 23.9922 8.94886 23.2962 8.94886C22.3208 8.94886 21.4851 9.10038 20.7891 9.40341C20.0978 9.7017 19.5533 10.1136 19.1555 10.6392C18.7625 11.16 18.5187 11.7519 18.424 12.4148L21.6271 12.5284C21.7029 12.178 21.8804 11.9034 22.1598 11.7045C22.4392 11.5057 22.8085 11.4062 23.2678 11.4062C23.6939 11.4062 24.0324 11.5057 24.2834 11.7045C24.5343 11.9034 24.6598 12.1851 24.6598 12.5497V12.5852C24.6598 12.8078 24.5722 12.9806 24.397 13.1037C24.2266 13.2221 23.9519 13.3144 23.5732 13.3807C23.1944 13.4422 22.6948 13.5014 22.0746 13.5582C21.5206 13.6056 20.9998 13.6979 20.5121 13.8352C20.0244 13.9678 19.5935 14.1643 19.2195 14.4247C18.8454 14.6851 18.5518 15.0237 18.3388 15.4403C18.1257 15.857 18.0192 16.3684 18.0192 16.9744C18.0192 17.6941 18.1731 18.2931 18.4808 18.7713C18.7933 19.2448 19.2171 19.5999 19.7521 19.8366ZM23.6868 17.6847C23.3885 17.8362 23.0523 17.9119 22.6783 17.9119C22.2805 17.9119 21.9515 17.8172 21.6911 17.6278C21.4354 17.4384 21.3075 17.1638 21.3075 16.804C21.3075 16.5672 21.3667 16.3636 21.4851 16.1932C21.6082 16.018 21.7834 15.8759 22.0107 15.767C22.2427 15.6581 22.522 15.5777 22.8487 15.5256C23.0097 15.5019 23.1778 15.4759 23.353 15.4474C23.5282 15.419 23.6986 15.3859 23.8643 15.348C24.0301 15.3101 24.1816 15.2699 24.3189 15.2273C24.4609 15.1847 24.5817 15.1373 24.6811 15.0852V16.1222C24.6811 16.4773 24.5911 16.7898 24.4112 17.0597C24.2313 17.3248 23.9898 17.5331 23.6868 17.6847Z\"/></svg>,\n\tworld: <svg width=\"28\" height=\"29\" viewBox=\"0 0 28 29\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M6 2C6 0.895431 6.89543 0 8 0H10C11.1046 0 12 0.895431 12 2V4C12 5.10457 11.1046 6 10 6V10.5688C10.2875 10.9298 10.5816 11.3478 10.8939 11.7915L10.8939 11.7916C11.5 12.6529 12.1742 13.6111 13 14.4368C13.8636 15.3004 15.3471 15.813 17 15.9652V12C15.8954 12 15 11.1046 15 10V8C15 6.89543 15.8954 6 17 6H19C20.1046 6 21 6.89543 21 8V10C21 11.1046 20.1046 12 19 12V15.8819C20.1705 15.6766 21.362 15.2558 22 14.9368C23 14.4368 26 14 28 14.4368V20C28 22.2091 26.2091 24 24 24H8C5.79086 24 4 22.2091 4 20V9C5.38919 8.65271 6.77837 8.54664 8 9.01691V6C6.89543 6 6 5.10457 6 4V2ZM22 26.2968H6C3.79086 26.2968 2 24.5059 2 22.2968V13C1.34604 13.0169 0.673018 13.1285 0 13.2968V24.2968C0 26.5059 1.79086 28.2968 4 28.2968H20C21.6222 28.2968 23.0189 27.3311 23.6465 25.9433C23.1444 26.1704 22.5869 26.2968 22 26.2968Z\"/></svg>,\n\tworldgen: <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 0C2.89543 0 2 0.89543 2 2V4C2 5.10457 2.89543 6 4 6V9.01691C2.77837 8.54664 1.38919 8.65271 0 9V20C0 22.2091 1.79086 24 4 24H20C22.2091 24 24 22.2091 24 20V14.4368C22 14 19 14.4368 18 14.9368C17.362 15.2558 16.1705 15.6766 15 15.8819V12C16.1046 12 17 11.1046 17 10V8C17 6.89543 16.1046 6 15 6H13C11.8954 6 11 6.89543 11 8V10C11 11.1046 11.8954 12 13 12V15.9652C11.3471 15.813 9.86362 15.3004 9 14.4368C8.17424 13.6111 7.50001 12.6529 6.8939 11.7916L6.89388 11.7916L6.89388 11.7916L6.89385 11.7915C6.58163 11.3478 6.28748 10.9298 6 10.5688V6C7.10457 6 8 5.10457 8 4V2C8 0.895431 7.10457 0 6 0H4Z\"/></svg>,\n\t'worldgen/biome': <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M7 1C7 0.447715 7.44772 0 8 0C8.55229 0 9 0.447715 9 1V3C9 3.55228 8.55229 4 8 4C7.44772 4 7 3.55228 7 3V1ZM20.5 21H22.5C23.2136 21 23.6975 20.2741 23.4231 19.6154L19.9231 11.2154C19.5812 10.3949 18.4188 10.3949 18.0769 11.2154L14.5769 19.6154C14.3025 20.2741 14.7864 21 15.5 21H17.5V24H20.5V21ZM16 8C16 7.44772 15.5523 7 15 7H13C12.4477 7 12 7.44772 12 8C12 8.55228 12.4477 9 13 9H15C15.5523 9 16 8.55229 16 8ZM14.4142 13C14.8047 13.3905 14.8047 14.0237 14.4142 14.4142C14.0237 14.8047 13.3905 14.8047 13 14.4142L11.5858 13C11.1953 12.6095 11.1953 11.9763 11.5858 11.5858C11.9763 11.1953 12.6095 11.1953 13 11.5858L14.4142 13ZM4 8C4 7.44772 3.55228 7 3 7H1C0.447715 7 0 7.44772 0 8C0 8.55228 0.447715 9 1 9H3C3.55228 9 4 8.55229 4 8ZM4.41422 3C4.80474 3.39053 4.80474 4.02369 4.41422 4.41421C4.02369 4.80474 3.39053 4.80474 3 4.41421L1.58579 3C1.19526 2.60948 1.19526 1.97631 1.58579 1.58579C1.97631 1.19526 2.60948 1.19526 3 1.58579L4.41422 3ZM8 16C8.55229 16 9 15.5523 9 15V13C9 12.4477 8.55229 12 8 12C7.44772 12 7 12.4477 7 13L7 15C7 15.5523 7.44772 16 8 16ZM3 14.4142C2.60947 14.8047 1.97631 14.8047 1.58579 14.4142C1.19526 14.0237 1.19526 13.3905 1.58579 13L3 11.5858C3.39052 11.1953 4.02369 11.1953 4.41421 11.5858C4.80474 11.9763 4.80474 12.6095 4.41421 13L3 14.4142ZM14.4142 1.58579C14.0237 1.19526 13.3905 1.19526 13 1.58579L11.5858 3C11.1953 3.39053 11.1953 4.02369 11.5858 4.41422C11.9763 4.80474 12.6095 4.80474 13 4.41422L14.4142 3C14.8047 2.60948 14.8047 1.97631 14.4142 1.58579ZM7 5C5.89543 5 5 5.89543 5 7V9C5 10.1046 5.89543 11 7 11H9C10.1046 11 11 10.1046 11 9V7C11 5.89543 10.1046 5 9 5H7Z\"/></svg>,\n\t'worldgen/configured_carver': <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M20 24H4C1.79086 24 0 22.2091 2.47955e-06 20L3.09944e-06 19C1.5 20.5 4.5 22 7 21.5C9.5 21 10 19.7806 10 17.5C10 15 9.17881 12.9285 11.5 12C14 11 16 17 18.5 17.5C20.5 17.9 23 15.3333 24 14.5V20C24 22.2091 22.2091 24 20 24Z\"/><path d=\"M24 4V8C22.1667 9.66667 20.1125 11.8062 18.5 11C16.5 10 14 9 11.5 8.5C10.5194 8.30388 8.5 9 7.5 11C6.5 13 7.5 14.5 6.5 15.5C5.5 16.5 4.5 17 3.5 16C2.05778 14.5578 2 13 0 12.5L2.10762e-06 4C2.65539e-06 1.79086 1.79086 0 4 0H20C22.2091 0 24 1.79086 24 4Z\"/></svg>,\n\t'worldgen/configured_feature': <svg width=\"11\" height=\"18\" viewBox=\"0 0 11 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M0 2C0 0.89543 0.895431 0 2 0H7C8.10457 0 9 0.895431 9 2V4C10.1046 4 11 4.89543 11 6V8C11 9.10457 10.1046 10 9 10H7C6.63571 10 6.29417 9.90261 6 9.73244L6 18H3V15H1C0.447715 15 0 14.5523 0 14V12C0 11.4477 0.447715 11 1 11H3L3 9H2C0.89543 9 0 8.10457 0 7V2Z\"/></svg>,\n\t'worldgen/configured_structure_feature': STRUCTURE,\n\t'worldgen/configured_surface_builder': <svg width=\"24\" height=\"20\" viewBox=\"0 0 24 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M1.21953 2.06398C0.59354 2.14445 0 1.68765 0 1.0565C0 0.611334 0.302132 0.217946 0.74016 0.138531C2.48644 -0.178075 4.18528 -0.0156892 5.5 1.29904C5.94949 1.74852 6.39898 2.38729 6.89388 3.09058L6.89388 3.09059C7.5 3.95195 8.17424 4.91009 9 5.73586C9.9499 6.68575 11.6497 7.21092 13.5 7.29903C15 7.37046 17.078 6.69683 18 6.23586C18.8772 5.79726 21.2934 5.40727 23.2235 5.61295C23.6802 5.66162 24 6.06324 24 6.52248C24 7.14603 23.4206 7.61579 22.7982 7.57749C20.9522 7.46389 18.8138 7.82895 18 8.23586C17.078 8.69683 15 9.37046 13.5 9.29904C11.6497 9.21092 9.9499 8.68575 9 7.73586C8.17424 6.91009 7.5 5.95195 6.89388 5.09059L6.89388 5.09059L6.89387 5.09058C6.39898 4.38729 5.94949 3.74852 5.5 3.29904C4.30594 2.10498 2.79505 1.86144 1.21953 2.06398ZM4 19.299H20C22.2091 19.299 24 17.5082 24 15.299V9.73586C22 9.29903 19 9.73586 18 10.2359C17.078 10.6968 15 11.3705 13.5 11.299C11.6497 11.2109 9.9499 10.6858 9 9.73586C8.17423 8.91009 7.5 7.95194 6.89388 7.09058C6.39898 6.38729 5.94949 5.74852 5.5 5.29903C4 3.79903 2 3.79904 0 4.29903V15.299C0 17.5082 1.79086 19.299 4 19.299Z\"/></svg>,\n\t'worldgen/density_function': <svg width=\"24\" height=\"19\" viewBox=\"0 0 24 19\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M3.99999 19C3.44771 19 2.99999 18.5523 2.99999 18V16H0.999994C0.447709 16 -6.40123e-06 15.5523 -6.40123e-06 15C-6.40123e-06 14.4477 0.447709 14 0.999994 14H2.99999V6.50898C2.73742 6.59875 2.44791 6.71456 2.12858 6.86194C1.3764 7.2091 0.485216 6.88077 0.138056 6.12859C-0.209103 5.37641 0.11923 4.48522 0.871408 4.13806C1.62438 3.79054 2.33177 3.5433 2.99999 3.39632V1C2.99999 0.447716 3.44771 0 3.99999 0C4.55228 0 4.99999 0.447716 4.99999 1V3.2668C5.19676 3.28855 5.38996 3.32136 5.57983 3.36522C6.95063 3.68192 7.87758 4.51535 8.55369 5.26846C8.81818 5.56308 9.07365 5.88025 9.29728 6.15788L9.29731 6.15792C9.35241 6.22632 9.40557 6.29232 9.45646 6.35499C9.73181 6.69411 9.96489 6.96732 10.2004 7.19234C10.6367 7.60933 11.0034 7.79103 11.5 7.79103C13.4431 7.79103 14.7031 7.02516 16.2234 6.10111L16.4096 5.988C18.0133 5.01523 19.9627 3.89955 22.8254 4.53572C23.6341 4.71543 24.144 5.51669 23.9643 6.32539C23.7846 7.13409 22.9833 7.64399 22.1746 7.46428C20.5373 7.10044 19.4867 7.63028 17.9654 8.55302C17.8762 8.60715 17.7854 8.66264 17.6929 8.71915C16.2113 9.62479 14.3033 10.791 11.5 10.791C9.99661 10.791 8.92576 10.1238 8.12775 9.36127C7.74604 8.99651 7.41271 8.59727 7.12751 8.24603C7.06056 8.16357 6.99674 8.0844 6.93508 8.00791L6.9348 8.00757C6.71743 7.73792 6.52696 7.50165 6.3213 7.27257C5.84352 6.74037 5.44831 6.44194 4.99999 6.31296V14H23C23.5523 14 24 14.4477 24 15C24 15.5523 23.5523 16 23 16H4.99999V18C4.99999 18.5523 4.55228 19 3.99999 19Z\"/></svg>,\n\t'worldgen/flat_level_generator_preset': <svg width=\"24\" height=\"22\" viewBox=\"0 0 24 22\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5 0C3.89543 0 3 0.895431 3 2V4C3 5.10457 3.89543 6 5 6V10H1C0.447715 10 0 10.4477 0 11C0 11.5523 0.447716 12 1 12H23C23.5523 12 24 11.5523 24 11C24 10.4477 23.5523 10 23 10H7V6C8.10457 6 9 5.10457 9 4V2C9 0.895431 8.10457 0 7 0H5ZM0 15C0 14.4477 0.447715 14 1 14H23C23.5523 14 24 14.4477 24 15V21C24 21.5523 23.5523 22 23 22H1C0.447716 22 0 21.5523 0 21V15Z\"/></svg>,\n\t'worldgen/noise': <svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M28 0H5C7 5 3 8 0 8V25.5C2.5 31 6.64628 28.2245 11 23C13.5 20 18 19 17.5 32H28C30.2091 32 32 30.2091 32 28V21.5C27.754 23.044 24.104 20.4161 21.05 18.2174C20.148 17.568 19.298 16.956 18.5 16.5C15 14.5 17.953 6.1094 23.5 5C25.2216 4.65569 25.5205 4.78558 27.6624 5.71624C28.6308 6.13704 29.9761 6.72157 32 7.5V4C32 1.79086 30.2091 0 28 0ZM8.5 11.5C7.5 11 6.5 10.5 5 12C2.87868 14.1213 3.5 19.5 6.5 19C9.5 18.5 10 16 10 14.5C10 13.3 9.13246 11.8162 8.5 11.5Z\"/></svg>,\n\t'worldgen/noise_settings': <svg width=\"24\" height=\"19\" viewBox=\"0 0 24 19\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M20 18.299H4C1.79086 18.299 0 16.5082 0 14.299V3.29904C1.5 1 3.5 -1.5 6 2C7 3.4 7.5 7.23586 9 8.73586C9.9499 9.68576 11.3494 10.3408 13 9.5C14.5 8.73586 15 7 16.5 6.5C18.091 5.96967 22 8.29904 24 8.73586V14.299C24 16.5082 22.2091 18.299 20 18.299Z\"/></svg>,\n\t'worldgen/placed_feature': <svg width=\"15\" height=\"20\" viewBox=\"0 0 15 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11 0C9.89543 0 9 0.89543 9 2V4C9 5.10457 9.89543 6 11 6V9H10C8.89543 9 8 9.89543 8 11V13C8 14.1046 8.89543 15 10 15V19.5H12V15C13.1046 15 14 14.1046 14 13V11C14 10.2597 13.5978 9.61337 13 9.26756V6C14.1046 6 15 5.10457 15 4V2C15 0.895431 14.1046 0 13 0H11ZM2 5C0.895431 5 0 5.89543 0 7V9C0 10.1046 0.89543 11 2 11L2 15.5H4V11C5.10457 11 6 10.1046 6 9V7C6 5.89543 5.10457 5 4 5H2Z\"/></svg>,\n\t'worldgen/processor_list': <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M6.21973 0H4C1.79086 0 0 1.79086 0 4V5.82578L4.72912 3.27934L6.21973 0ZM0 8.0973V11H16.9613L17.9149 6.09189L11.6129 0H8.41664L6.48011 4.26037C6.34438 4.55898 6.11451 4.80487 5.82571 4.96037L5.43726 5.16954L7.99614 6.63176C8.47566 6.90577 8.64226 7.51662 8.36825 7.99614C8.09424 8.47566 7.48338 8.64225 7.00387 8.36824L3.50386 6.36824C3.45778 6.34191 3.41458 6.31246 3.37439 6.28032L0 8.0973ZM14.4905 0L17.5131 2.92179L19.4556 1.66116C19.9189 1.36051 20.5382 1.49235 20.8388 1.95563C21.1395 2.41891 21.0077 3.03819 20.5444 3.33884L18.9888 4.34834L19.5 4.84246C19.8649 5.19527 20.0267 5.70872 19.9299 6.20702L18.9987 11H24V4C24 1.79086 22.2091 0 20 0H14.4905ZM3.94591 14H0V20C0 22.2091 1.79086 24 4 24H11V19.1801L6.54232 18.1514L4.89443 21.4472C4.64744 21.9412 4.04677 22.1414 3.55279 21.8944C3.05881 21.6474 2.85859 21.0468 3.10558 20.5528L4.92033 16.9233L3.94591 14ZM11 17.1276V14H6.0541L6.77134 16.1517L11 17.1276ZM21.6247 17.7809C22.056 17.4359 22.1259 16.8066 21.7809 16.3753C21.4359 15.944 20.8066 15.8741 20.3753 16.2191L18.0071 18.1137C17.7506 18.3189 17.5686 18.6026 17.4889 18.9212L16.2192 24H14V14H24V20C24 22.2091 22.2091 24 20 24H18.2808L19.3883 19.57L21.6247 17.7809Z\"/></svg>,\n\t'worldgen/structure': STRUCTURE,\n\t'worldgen/structure_set': <svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11 4L9.5376 4C9.05336 4 8.85189 3.38045 9.24351 3.09563L13.2059 0.21388C13.3812 0.0863707 13.6188 0.0863706 13.7941 0.21388L17.7565 3.09563C18.1481 3.38045 17.9467 4 17.4624 4L16 4V7C16 7.55228 15.5523 8 15 8H12C11.4477 8 11 7.55228 11 7V4ZM8.46241 7H0.537581C0.0533412 7 -0.148129 6.38045 0.243493 6.09563L4.2059 3.21388C4.38123 3.08637 4.61875 3.08637 4.79407 3.21388L8.75649 6.09563C9.14812 6.38045 8.94665 7 8.46241 7ZM6.99999 10V7H1.99999V10C1.99999 10.5523 2.4477 11 2.99999 11H5.99999C6.55227 11 6.99999 10.5523 6.99999 10ZM9.99999 17V14H8.5376C8.05336 14 7.85189 13.3804 8.24351 13.0956L12.2059 10.2139C12.3812 10.0864 12.6188 10.0864 12.7941 10.2139L16.7565 13.0956C17.1481 13.3804 16.9467 14 16.4624 14H15V17C15 17.5523 14.5523 18 14 18H11C10.4477 18 9.99999 17.5523 9.99999 17Z\"/></svg>,\n\t'worldgen/template_pool': <svg width=\"20\" height=\"21\" viewBox=\"0 0 20 21\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M10.2361 5C10.7111 4.46924 11 3.76835 11 3C11 1.34315 9.65685 0 8 0C6.34315 0 5 1.34315 5 3C5 3.76835 5.28885 4.46924 5.76389 5H3C1.34315 5 0 6.34315 0 8V10.1707C0.312779 10.0602 0.649365 10 1 10C2.65685 10 4 11.3431 4 13C4 14.6569 2.65685 16 1 16C0.649365 16 0.312779 15.9398 0 15.8293V18C0 19.6569 1.34315 21 3 21H5.17071C5.06015 20.6872 5 20.3506 5 20C5 18.3431 6.34315 17 8 17C9.65685 17 11 18.3431 11 20C11 20.3506 10.9398 20.6872 10.8293 21H13C14.6569 21 16 19.6569 16 18V15.8293C16.3128 15.9398 16.6494 16 17 16C18.6569 16 20 14.6569 20 13C20 11.3431 18.6569 10 17 10C16.6494 10 16.3128 10.0602 16 10.1707V8C16 6.34315 14.6569 5 13 5H10.2361Z\"/></svg>,\n\t'worldgen/world_preset': <svg width=\"28\" height=\"23\" viewBox=\"0 0 28 23\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15 2C15 0.89543 15.8954 0 17 0H19C20.1046 0 21 0.895431 21 2V4C21 5.10457 20.1046 6 19 6V9.88192C20.1705 9.67661 21.362 9.2558 22 8.93682C23 8.43682 26 8 28 8.43682V14C28 16.2091 26.2091 18 24 18H8C5.79086 18 4 16.2091 4 14V3C6 2.50001 8 2.5 9.5 4C9.94949 4.44949 10.399 5.08825 10.8939 5.79154L10.8939 5.79155C11.5 6.65291 12.1742 7.61106 13 8.43682C13.8636 9.30044 15.3471 9.81299 17 9.96519V6C15.8954 6 15 5.10457 15 4V2ZM22 20.2968H6C3.79086 20.2968 2 18.5059 2 16.2968V7C1.34604 7.01691 0.673018 7.12855 0 7.2968V18.2968C0 20.5059 1.79086 22.2968 4 22.2968H20C21.6222 22.2968 23.0189 21.3311 23.6465 19.9433C23.1444 20.1704 22.5869 20.2968 22 20.2968Z\"/></svg>,\n}\n","import type { Howl, HowlOptions } from 'howler'\nimport { useEffect, useRef, useState } from 'preact/hooks'\nimport { useLocale, useVersion } from '../../contexts/index.js'\nimport type { SoundEvents } from '../../services/index.js'\nimport { getSoundUrl } from '../../services/index.js'\nimport { Btn, NumberInput, RangeInput, TextInput } from '../index.js'\n\nexport interface SoundConfig {\n\tid: string,\n\tsound: string,\n\tdelay: number,\n\tpitch: number,\n\tvolume: number,\n}\ntype SoundConfigProps = SoundConfig & {\n\thowler: (options: HowlOptions) => Howl,\n\tsounds: SoundEvents,\n\tonEdit: (changes: Partial<SoundConfig>) => unknown,\n\tonDelete: () => unknown,\n\tdelayedPlay?: number,\n}\nexport function SoundConfig({ howler, sounds, sound, delay, pitch, volume, onEdit, onDelete, delayedPlay }: SoundConfigProps) {\n\tconst { locale } = useLocale()\n\tconst { version } = useVersion()\n\tconst [loading, setLoading] = useState(true)\n\tconst [playing, setPlaying] = useState(false)\n\tconst [invalid, setInvalid] = useState(false)\n\tconst howls = useRef<Howl[]>([])\n\tconst command = `playsound minecraft:${sound} master @s ~ ~ ~ ${volume} ${pitch}`\n\n\tuseEffect(() => {\n\t\tconst soundEvent = sounds[sound]\n\t\tsetInvalid((soundEvent?.sounds?.length ?? 0) === 0)\n\t\thowls.current.forEach(h => h.stop())\n\t\thowls.current = (soundEvent?.sounds ?? []).map(entry => {\n\t\t\tconst soundPath = typeof entry === 'string' ? entry : entry.name\n\t\t\tconst url = getSoundUrl(version, soundPath)\n\t\t\tconst howl = howler({\n\t\t\t\tsrc: [url],\n\t\t\t\tformat: ['ogg'],\n\t\t\t\tvolume,\n\t\t\t\trate: pitch,\n\t\t\t})\n\t\t\thowl.on('end', () => {\n\t\t\t\tsetPlaying(false)\n\t\t\t})\n\t\t\tconst completed = () => {\n\t\t\t\tif (loading && howls.current.every(h => h.state() === 'loaded')) {\n\t\t\t\t\tsetLoading(false)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (howl.state() === 'loaded') {\n\t\t\t\tsetTimeout(() => completed())\n\t\t\t} else {\n\t\t\t\thowl.on('load', () => {\n\t\t\t\t\tcompleted()\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn howl\n\t\t})\n\t\tsetLoading(true)\n\t}, [sound, sounds])\n\n\tuseEffect(() => {\n\t\thowls.current.forEach(h => h.rate(pitch))\n\t}, [pitch])\n\n\tuseEffect(() => {\n\t\thowls.current.forEach(h => h.volume(volume))\n\t}, [volume])\n\n\tconst play = () => {\n\t\tif (loading || invalid) return\n\t\tstop()\n\t\tconst howl = Math.floor(Math.random() * howls.current.length)\n\t\thowls.current[howl].play()\n\t\tsetPlaying(true)\n\t}\n\tconst stop = () => {\n\t\thowls.current.forEach(h => h.stop())\n\t}\n\tuseEffect(() => {\n\t\tif (delayedPlay) setTimeout(() => play(), delay * 50)\n\t}, [delayedPlay])\n\n\tuseEffect(() => {\n\t\treturn () => stop()\n\t}, [])\n\n\tconst [copyActive, setCopyActive] = useState(false)\n\tconst copyTimeout = useRef<number | undefined>(undefined)\n\tconst copy = () => {\n\t\tnavigator.clipboard.writeText(command)\n\t\tsetCopyActive(true)\n\t\tif (copyTimeout.current !== undefined) clearTimeout(copyTimeout.current)\n\t\tcopyTimeout.current = setTimeout(() => {\n\t\t\tsetCopyActive(false)\n\t\t}, 2000) as any\n\t}\n\n\treturn <div class={`sound-config${loading ? ' loading' : playing ? ' playing' : ''}${invalid ? ' invalid' : ''}`}>\n\t\t<Btn class=\"play\" icon={invalid ? 'alert' : loading ? 'sync' : 'play'} label={locale('sounds.play')} onClick={play} tooltip={invalid ? locale('sounds.unknown_sound') : loading ? locale('sounds.loading_sound') : locale('sounds.play_sound')} tooltipLoc=\"se\" />\n\t\t<TextInput class=\"btn btn-input sound\" list=\"sound-list\" spellcheck={false}\n\t\t\tvalue={sound} onChange={sound => onEdit({ sound })} />\n\t\t<label class=\"delay-label\">{locale('sounds.delay')}: </label>\n\t\t<NumberInput class=\"btn btn-input delay\" min={0}\n\t\t\tvalue={delay} onChange={delay => onEdit({ delay })} />\n\t\t<label class=\"pitch-label\">{locale('sounds.pitch')}: </label>\n\t\t<RangeInput class=\"pitch tooltipped tip-s\" min={0.5} max={2} step={0.01}\n\t\t\taria-label={pitch.toFixed(2)} style={`--x: ${(pitch - 0.5) * (100 / 1.5)}%`}\n\t\t\tvalue={pitch} onChange={pitch => onEdit({ pitch })} />\n\t\t<label class=\"volume-label\">{locale('sounds.volume')}: </label>\n\t\t<RangeInput class=\"volume tooltipped tip-s\" min={0} max={1} step={0.01}\n\t\t\taria-label={volume.toFixed(2)} style={`--x: ${volume * 100}%`}\n\t\t\tvalue={volume} onChange={volume => onEdit({ volume })} />\n\t\t<Btn class={`copy${copyActive ? ' active' : ''}`} icon={copyActive ? 'check' : 'terminal'} label={locale('copy')} tooltip={copyActive ? locale('copied') : locale('sounds.copy_command')}\n\t\t\tonClick={copy} />\n\t\t<Btn class=\"remove\" icon=\"trashcan\" tooltip={locale('sounds.remove_sound')}\n\t\t\tonClick={() => {onDelete(); stop()}} />\n\t</div>\n}\n","import { Icons } from './Icons.js'\nimport { Octicon } from './Octicon.jsx'\n\ninterface Props {\n\ttitle: string,\n\ttitleIcon?: keyof typeof Octicon | keyof typeof Icons,\n\tlink: string,\n\ticon?: keyof typeof Icons,\n\tdesc?: string,\n}\nexport function ToolCard({ title, desc, link, icon, titleIcon }: Props) {\n\tif (icon || desc) {\n\t\treturn <a class=\"tool-card\" href={link}>\n\t\t\t{icon && Icons[icon]}\n\t\t\t<div>\n\t\t\t\t<ToolHead title={title} titleIcon={titleIcon} />\n\t\t\t\t<p>{desc}</p>\n\t\t\t</div>\n\t\t</a>\n\t}\n\n\treturn <a class=\"tool-card\" href={link}>\n\t\t<ToolHead title={title} titleIcon={titleIcon} />\n\t</a>\n}\n\nfunction ToolHead({ title, titleIcon }: Pick<Props, 'title' | 'titleIcon'>) {\n\treturn <h3>\n\t\t{title}\n\t\t{titleIcon && (titleIcon in Octicon ? (Octicon as any)[titleIcon] : (Icons as any)[titleIcon])}\n\t</h3>\n}\n","import type { ComponentChildren } from 'preact'\nimport type { Icons } from './Icons.jsx'\nimport type { Octicon } from './Octicon.jsx'\nimport { ToolCard } from './ToolCard.jsx'\n\ninterface Props {\n\ttitle: string,\n\ttitleIcon?: keyof typeof Octicon | keyof typeof Icons,\n\tlink?: string,\n\tchildren?: ComponentChildren,\n}\nexport function ToolGroup({ title, titleIcon, link, children }: Props) {\n\treturn <div class=\"tool-group\">\n\t\t{link === undefined\n\t\t\t? <div class=\"tool-card\"><h3>{title}</h3></div>\n\t\t\t: <ToolCard {...{ title, titleIcon, link}} />\n\t\t}\n\t\t{children && <div class=\"tool-body\">\n\t\t\t{children}\n\t\t</div>}\n\t</div>\n}\n","import { hashString } from '../Utils.js'\nimport { Octicon } from './index.js'\n\ninterface Props {\n\tlabel: string,\n\tactive?: boolean,\n\tonClick?: (e: MouseEvent) => unknown,\n}\nexport function Badge({ label, active, onClick }: Props) {\n\tconst color = label === 'breaking' ? 5 : hashString(label) % 360\n\treturn <div class={`badge${active ? ' active' : ''}${onClick ? ' clickable' : ''}`} style={`--tint: ${color}`} onClick={onClick}>\n\t\t{label === 'breaking' && Octicon.alert}\n\t\t{label}\n\t</div>\n}\n","/**\n * marked - a markdown parser\n * Copyright (c) 2011-2022, Christopher Jeffrey. (MIT Licensed)\n * https://github.com/markedjs/marked\n */\n\n/**\n * DO NOT EDIT THIS FILE\n * The code in this file is generated from files in ./src/\n */\n\nfunction getDefaults() {\n return {\n baseUrl: null,\n breaks: false,\n extensions: null,\n gfm: true,\n headerIds: true,\n headerPrefix: '',\n highlight: null,\n langPrefix: 'language-',\n mangle: true,\n pedantic: false,\n renderer: null,\n sanitize: false,\n sanitizer: null,\n silent: false,\n smartLists: false,\n smartypants: false,\n tokenizer: null,\n walkTokens: null,\n xhtml: false\n };\n}\n\nlet defaults = getDefaults();\n\nfunction changeDefaults(newDefaults) {\n defaults = newDefaults;\n}\n\n/**\n * Helpers\n */\nconst escapeTest = /[&<>\"']/;\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(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(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(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(sanitize, base, href) {\n if (sanitize) {\n let prot;\n try {\n prot = decodeURIComponent(unescape(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(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 = { exec: function noopTest() {} };\n\nfunction merge(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(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(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(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(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(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\nfunction outputLink(cap, link, raw, lexer) {\n const href = link.href;\n const title = link.title ? escape(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(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 */\nclass Tokenizer {\n constructor(options) {\n this.options = options || defaults;\n }\n\n space(src) {\n const cap = this.rules.block.newline.exec(src);\n if (cap && cap[0].length > 0) {\n return {\n type: 'space',\n raw: cap[0]\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, nextLine, rawLine, itemContents, endEarly;\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 // Check if current bullet point can start a new List Item\n while (src) {\n endEarly = false;\n if (!(cap = itemRegex.exec(src))) {\n break;\n }\n\n if (this.rules.block.hr.test(src)) { // End list if bullet was actually HR (possibly move into itemRegex?)\n break;\n }\n\n raw = cap[0];\n src = src.substring(raw.length);\n\n line = cap[2].split('\\n', 1)[0];\n nextLine = src.split('\\n', 1)[0];\n\n if (this.options.pedantic) {\n indent = 2;\n itemContents = line.trimLeft();\n } else {\n indent = cap[2].search(/[^ ]/); // Find first non-space char\n indent = indent > 4 ? 1 : indent; // Treat indented code blocks (> 4 spaces) as having only 1 indent\n itemContents = line.slice(indent);\n indent += cap[1].length;\n }\n\n blankLine = false;\n\n if (!line && /^ *$/.test(nextLine)) { // Items begin with at most one blank line\n raw += nextLine + '\\n';\n src = src.substring(nextLine.length + 1);\n endEarly = true;\n }\n\n if (!endEarly) {\n const nextBulletRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:[*+-]|\\\\d{1,9}[.)])`);\n\n // Check if following lines should be included in List Item\n while (src) {\n rawLine = src.split('\\n', 1)[0];\n line = rawLine;\n\n // Re-align to follow commonmark nesting rules\n if (this.options.pedantic) {\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 break;\n }\n\n if (line.search(/[^ ]/) >= indent || !line.trim()) { // Dedent if possible\n itemContents += '\\n' + line.slice(indent);\n } else if (!blankLine) { // Until blank line, item doesn't need indentation\n itemContents += '\\n' + line;\n } else { // Otherwise, improper indentation ends this item\n break;\n }\n\n if (!blankLine && !line.trim()) { // Check if current line is blank\n blankLine = true;\n }\n\n raw += rawLine + '\\n';\n src = src.substring(rawLine.length + 1);\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 }\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 const spacers = list.items[i].tokens.filter(t => t.type === 'space');\n const hasMultipleLineBreaks = spacers.every(t => {\n const chars = t.raw.split('');\n let lineBreaks = 0;\n for (const char of chars) {\n if (char === '\\n') {\n lineBreaks += 1;\n }\n if (lineBreaks > 1) {\n return true;\n }\n }\n\n return false;\n });\n\n if (!list.loose && spacers.length && hasMultipleLineBreaks) {\n // Having a single line break doesn't mean a list is loose. A single line break is terminating the last list item\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(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[ \\t]*$/, '').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(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 && /^<a /i.test(cap[0])) {\n this.lexer.state.inLink = true;\n } else if (this.lexer.state.inLink && /^<\\/a>/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(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 // commonmark requires matching angle brackets\n if (!(/>$/.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(href)) {\n if (this.options.pedantic && !(/>$/.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(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(this.options.mangle ? mangle(cap[1]) : cap[1]);\n href = 'mailto:' + text;\n } else {\n text = escape(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(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(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(cap[0])) : cap[0];\n } else {\n text = escape(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\n/**\n * Block-Level Grammar\n */\nconst block = {\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]*?(?:</\\\\1>[^\\\\n]*\\\\n+|$)' // (1)\n + '|comment[^\\\\n]*(\\\\n+|$)' // (2)\n + '|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)' // (3)\n + '|<![A-Z][\\\\s\\\\S]*?(?:>\\\\n*|$)' // (4)\n + '|<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?(?:\\\\]\\\\]>\\\\n*|$)' // (5)\n + '|</?(tag)(?: +|\\\\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 + '|</(?!script|pre|style|textarea)[a-z][\\\\w-]*\\\\s*>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) closing tag\n + ')',\n def: /^ {0,3}\\[(label)\\]: *(?:\\n *)?<?([^\\s>]+)>?(?:(?: +(?:\\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|table| +\\n)[^\\n]+)*)/,\n text: /^[^\\n]+/\n};\n\nblock._label = /(?!\\s*\\])(?:\\\\.|[^\\[\\]\\\\])+/;\nblock._title = /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/;\nblock.def = edit(block.def)\n .replace('label', block._label)\n .replace('title', block._title)\n .getRegex();\n\nblock.bullet = /(?:[*+-]|\\d{1,9}[.)])/;\nblock.listItemStart = edit(/^( *)(bull) */)\n .replace('bull', block.bullet)\n .getRegex();\n\nblock.list = edit(block.list)\n .replace(/bull/g, block.bullet)\n .replace('hr', '\\\\n+(?=\\\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$))')\n .replace('def', '\\\\n+(?=' + block.def.source + ')')\n .getRegex();\n\nblock._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._comment = /<!--(?!-?>)[\\s\\S]*?(?:-->|$)/;\nblock.html = edit(block.html, 'i')\n .replace('comment', block._comment)\n .replace('tag', block._tag)\n .replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/)\n .getRegex();\n\nblock.paragraph = edit(block._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('|table', '')\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n\nblock.blockquote = edit(block.blockquote)\n .replace('paragraph', block.paragraph)\n .getRegex();\n\n/**\n * Normal Block Grammar\n */\n\nblock.normal = merge({}, block);\n\n/**\n * GFM Block Grammar\n */\n\nblock.gfm = merge({}, block.normal, {\n table: '^ *([^\\\\n ].*\\\\|.*)\\\\n' // Header\n + ' {0,3}(?:\\\\| *)?(:?-+:? *(?:\\\\| *:?-+:? *)*)(?:\\\\| *)?' // Align\n + '(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)' // Cells\n});\n\nblock.gfm.table = edit(block.gfm.table)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('blockquote', ' {0,3}>')\n .replace('code', ' {4}[^\\\\n]')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block._tag) // tables can be interrupted by type (6) html blocks\n .getRegex();\n\nblock.gfm.paragraph = edit(block._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('table', block.gfm.table) // interrupt paragraphs with table\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n/**\n * Pedantic grammar (original John Gruber's loose markdown specification)\n */\n\nblock.pedantic = merge({}, block.normal, {\n html: edit(\n '^ *(?:comment *(?:\\\\n|\\\\s*$)'\n + '|<(tag)[\\\\s\\\\S]+?</\\\\1> *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n + '|<tag(?:\"[^\"]*\"|\\'[^\\']*\\'|\\\\s[^\\'\"/>\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))')\n .replace('comment', block._comment)\n .replace(/tag/g, '(?!(?:'\n + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub'\n + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)'\n + '\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b')\n .getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *<?([^\\s>]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n fences: noopTest, // fences not supported\n paragraph: edit(block.normal._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' *#{1,6} *[^\\n]')\n .replace('lheading', block.lheading)\n .replace('blockquote', ' {0,3}>')\n .replace('|fences', '')\n .replace('|list', '')\n .replace('|html', '')\n .getRegex()\n});\n\n/**\n * Inline-Level Grammar\n */\nconst inline = {\n escape: /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,\n autolink: /^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/,\n url: noopTest,\n tag: '^comment'\n + '|^</[a-zA-Z][\\\\w:-]*\\\\s*>' // self-closing tag\n + '|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>' // open tag\n + '|^<\\\\?[\\\\s\\\\S]*?\\\\?>' // processing instruction, e.g. <?php ?>\n + '|^<![a-zA-Z]+\\\\s[\\\\s\\\\S]*?>' // declaration, e.g. <!DOCTYPE html>\n + '|^<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>', // CDATA section\n link: /^!?\\[(label)\\]\\(\\s*(href)(?:\\s+(title))?\\s*\\)/,\n reflink: /^!?\\[(label)\\]\\[(ref)\\]/,\n nolink: /^!?\\[(ref)\\](?:\\[\\])?/,\n reflinkSearch: 'reflink|nolink(?!\\\\()',\n emStrong: {\n lDelim: /^(?:\\*+(?:([punct_])|[^\\s*]))|^_+(?:([punct*])|([^\\s_]))/,\n // (1) and (2) can only be a Right Delimiter. (3) and (4) can only be Left. (5) and (6) can be either Left or Right.\n // () Skip orphan delim inside strong (1) #*** (2) a***#, a*** (3) #***a, ***a (4) ***# (5) #***# (6) a***a\n rDelimAst: /^[^_*]*?\\_\\_[^_*]*?\\*[^_*]*?(?=\\_\\_)|[punct_](\\*+)(?=[\\s]|$)|[^punct*_\\s](\\*+)(?=[punct_\\s]|$)|[punct_\\s](\\*+)(?=[^punct*_\\s])|[\\s](\\*+)(?=[punct_])|[punct_](\\*+)(?=[punct_])|[^punct*_\\s](\\*+)(?=[^punct*_\\s])/,\n rDelimUnd: /^[^_*]*?\\*\\*[^_*]*?\\_[^_*]*?(?=\\*\\*)|[punct*](\\_+)(?=[\\s]|$)|[^punct*_\\s](\\_+)(?=[punct*\\s]|$)|[punct*\\s](\\_+)(?=[^punct*_\\s])|[\\s](\\_+)(?=[punct*])|[punct*](\\_+)(?=[punct*])/ // ^- Not allowed for _\n },\n code: /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,\n br: /^( {2,}|\\\\)\\n(?!\\s*$)/,\n del: noopTest,\n text: /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*_]|\\b_|$)|[^ ](?= {2,}\\n)))/,\n punctuation: /^([\\spunctuation])/\n};\n\n// list of punctuation marks from CommonMark spec\n// without * and _ to handle the different emphasis markers * and _\ninline._punctuation = '!\"#$%&\\'()+\\\\-.,/:;<=>?@\\\\[\\\\]`^{|}~';\ninline.punctuation = edit(inline.punctuation).replace(/punctuation/g, inline._punctuation).getRegex();\n\n// sequences em should skip over [title](link), `code`, <html>\ninline.blockSkip = /\\[[^\\]]*?\\]\\([^\\)]*?\\)|`[^`]*?`|<[^>]*?>/g;\ninline.escapedEmSt = /\\\\\\*|\\\\_/g;\n\ninline._comment = edit(block._comment).replace('(?:-->|$)', '-->').getRegex();\n\ninline.emStrong.lDelim = edit(inline.emStrong.lDelim)\n .replace(/punct/g, inline._punctuation)\n .getRegex();\n\ninline.emStrong.rDelimAst = edit(inline.emStrong.rDelimAst, 'g')\n .replace(/punct/g, inline._punctuation)\n .getRegex();\n\ninline.emStrong.rDelimUnd = edit(inline.emStrong.rDelimUnd, 'g')\n .replace(/punct/g, inline._punctuation)\n .getRegex();\n\ninline._escapes = /\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/g;\n\ninline._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;\ninline._email = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/;\ninline.autolink = edit(inline.autolink)\n .replace('scheme', inline._scheme)\n .replace('email', inline._email)\n .getRegex();\n\ninline._attribute = /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/;\n\ninline.tag = edit(inline.tag)\n .replace('comment', inline._comment)\n .replace('attribute', inline._attribute)\n .getRegex();\n\ninline._label = /(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\ninline._href = /<(?:\\\\.|[^\\n<>\\\\])+>|[^\\s\\x00-\\x1f]*/;\ninline._title = /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/;\n\ninline.link = edit(inline.link)\n .replace('label', inline._label)\n .replace('href', inline._href)\n .replace('title', inline._title)\n .getRegex();\n\ninline.reflink = edit(inline.reflink)\n .replace('label', inline._label)\n .replace('ref', block._label)\n .getRegex();\n\ninline.nolink = edit(inline.nolink)\n .replace('ref', block._label)\n .getRegex();\n\ninline.reflinkSearch = edit(inline.reflinkSearch, 'g')\n .replace('reflink', inline.reflink)\n .replace('nolink', inline.nolink)\n .getRegex();\n\n/**\n * Normal Inline Grammar\n */\n\ninline.normal = merge({}, inline);\n\n/**\n * Pedantic Inline Grammar\n */\n\ninline.pedantic = merge({}, inline.normal, {\n strong: {\n start: /^__|\\*\\*/,\n middle: /^__(?=\\S)([\\s\\S]*?\\S)__(?!_)|^\\*\\*(?=\\S)([\\s\\S]*?\\S)\\*\\*(?!\\*)/,\n endAst: /\\*\\*(?!\\*)/g,\n endUnd: /__(?!_)/g\n },\n em: {\n start: /^_|\\*/,\n middle: /^()\\*(?=\\S)([\\s\\S]*?\\S)\\*(?!\\*)|^_(?=\\S)([\\s\\S]*?\\S)_(?!_)/,\n endAst: /\\*(?!\\*)/g,\n endUnd: /_(?!_)/g\n },\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/)\n .replace('label', inline._label)\n .getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/)\n .replace('label', inline._label)\n .getRegex()\n});\n\n/**\n * GFM Inline Grammar\n */\n\ninline.gfm = merge({}, inline.normal, {\n escape: edit(inline.escape).replace('])', '~|])').getRegex(),\n _extended_email: /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,\n url: /^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/,\n _backpedal: /(?:[^?!.,:;*_~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,\n del: /^(~~?)(?=[^\\s~])([\\s\\S]*?[^\\s~])\\1(?=[^~]|$)/,\n text: /^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*~_]|\\b_|https?:\\/\\/|ftp:\\/\\/|www\\.|$)|[^ ](?= {2,}\\n)|[^a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-](?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)))/\n});\n\ninline.gfm.url = edit(inline.gfm.url, 'i')\n .replace('email', inline.gfm._extended_email)\n .getRegex();\n/**\n * GFM + Line Breaks Inline Grammar\n */\n\ninline.breaks = merge({}, inline.gfm, {\n br: edit(inline.br).replace('{2,}', '*').getRegex(),\n text: edit(inline.gfm.text)\n .replace('\\\\b_', '\\\\b_| {2,}\\\\n')\n .replace(/\\{2,\\}/g, '*')\n .getRegex()\n});\n\n/**\n * smartypants text replacement\n */\nfunction smartypants(text) {\n return text\n // em-dashes\n .replace(/---/g, '\\u2014')\n // en-dashes\n .replace(/--/g, '\\u2013')\n // opening singles\n .replace(/(^|[-\\u2014/(\\[{\"\\s])'/g, '$1\\u2018')\n // closing singles & apostrophes\n .replace(/'/g, '\\u2019')\n // opening doubles\n .replace(/(^|[-\\u2014/(\\[{\\u2018\\s])\"/g, '$1\\u201c')\n // closing doubles\n .replace(/\"/g, '\\u201d')\n // ellipses\n .replace(/\\.{3}/g, '\\u2026');\n}\n\n/**\n * mangle email addresses\n */\nfunction mangle(text) {\n let out = '',\n i,\n ch;\n\n const l = text.length;\n for (i = 0; i < l; i++) {\n ch = text.charCodeAt(i);\n if (Math.random() > 0.5) {\n ch = 'x' + ch.toString(16);\n }\n out += '&#' + ch + ';';\n }\n\n return out;\n}\n\n/**\n * Block Lexer\n */\nclass Lexer {\n constructor(options) {\n this.tokens = [];\n this.tokens.links = Object.create(null);\n this.options = options || defaults;\n this.options.tokenizer = this.options.tokenizer || new Tokenizer();\n this.tokenizer = this.options.tokenizer;\n this.tokenizer.options = this.options;\n this.tokenizer.lexer = this;\n this.inlineQueue = [];\n this.state = {\n inLink: false,\n inRawBlock: false,\n top: true\n };\n\n const rules = {\n block: block.normal,\n inline: inline.normal\n };\n\n if (this.options.pedantic) {\n rules.block = block.pedantic;\n rules.inline = inline.pedantic;\n } else if (this.options.gfm) {\n rules.block = block.gfm;\n if (this.options.breaks) {\n rules.inline = inline.breaks;\n } else {\n rules.inline = inline.gfm;\n }\n }\n this.tokenizer.rules = rules;\n }\n\n /**\n * Expose Rules\n */\n static get rules() {\n return {\n block,\n inline\n };\n }\n\n /**\n * Static Lex Method\n */\n static lex(src, options) {\n const lexer = new Lexer(options);\n return lexer.lex(src);\n }\n\n /**\n * Static Lex Inline Method\n */\n static lexInline(src, options) {\n const lexer = new Lexer(options);\n return lexer.inlineTokens(src);\n }\n\n /**\n * Preprocessing\n */\n lex(src) {\n src = src\n .replace(/\\r\\n|\\r/g, '\\n')\n .replace(/\\t/g, ' ');\n\n this.blockTokens(src, this.tokens);\n\n let next;\n while (next = this.inlineQueue.shift()) {\n this.inlineTokens(next.src, next.tokens);\n }\n\n return this.tokens;\n }\n\n /**\n * Lexing\n */\n blockTokens(src, tokens = []) {\n if (this.options.pedantic) {\n src = src.replace(/^ +$/gm, '');\n }\n let token, lastToken, cutSrc, lastParagraphClipped;\n\n while (src) {\n if (this.options.extensions\n && this.options.extensions.block\n && this.options.extensions.block.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n\n // newline\n if (token = this.tokenizer.space(src)) {\n src = src.substring(token.raw.length);\n if (token.raw.length === 1 && tokens.length > 0) {\n // if there's a single \\n as a spacer, it's terminating the last line,\n // so move it there so that we don't get unecessary paragraph tags\n tokens[tokens.length - 1].raw += '\\n';\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // code\n if (token = this.tokenizer.code(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n // An indented code block cannot interrupt a paragraph.\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // fences\n if (token = this.tokenizer.fences(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // heading\n if (token = this.tokenizer.heading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // hr\n if (token = this.tokenizer.hr(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // blockquote\n if (token = this.tokenizer.blockquote(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // list\n if (token = this.tokenizer.list(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // html\n if (token = this.tokenizer.html(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // def\n if (token = this.tokenizer.def(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.raw;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else if (!this.tokens.links[token.tag]) {\n this.tokens.links[token.tag] = {\n href: token.href,\n title: token.title\n };\n }\n continue;\n }\n\n // table (gfm)\n if (token = this.tokenizer.table(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // lheading\n if (token = this.tokenizer.lheading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // top-level paragraph\n // prevent paragraph consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startBlock) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startBlock.forEach(function(getStartIndex) {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) { startIndex = Math.min(startIndex, tempStart); }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) {\n lastToken = tokens[tokens.length - 1];\n if (lastParagraphClipped && lastToken.type === 'paragraph') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n lastParagraphClipped = (cutSrc.length !== src.length);\n src = src.substring(token.raw.length);\n continue;\n }\n\n // text\n if (token = this.tokenizer.text(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n\n this.state.top = true;\n return tokens;\n }\n\n inline(src, tokens) {\n this.inlineQueue.push({ src, tokens });\n }\n\n /**\n * Lexing/Compiling\n */\n inlineTokens(src, tokens = []) {\n let token, lastToken, cutSrc;\n\n // String with links masked to avoid interference with em and strong\n let maskedSrc = src;\n let match;\n let keepPrevChar, prevChar;\n\n // Mask out reflinks\n if (this.tokens.links) {\n const links = Object.keys(this.tokens.links);\n if (links.length > 0) {\n while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) {\n if (links.includes(match[0].slice(match[0].lastIndexOf('[') + 1, -1))) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);\n }\n }\n }\n }\n // Mask out other blocks\n while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);\n }\n\n // Mask out escaped em & strong delimiters\n while ((match = this.tokenizer.rules.inline.escapedEmSt.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '++' + maskedSrc.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);\n }\n\n while (src) {\n if (!keepPrevChar) {\n prevChar = '';\n }\n keepPrevChar = false;\n\n // extensions\n if (this.options.extensions\n && this.options.extensions.inline\n && this.options.extensions.inline.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n\n // escape\n if (token = this.tokenizer.escape(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // tag\n if (token = this.tokenizer.tag(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // link\n if (token = this.tokenizer.link(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // reflink, nolink\n if (token = this.tokenizer.reflink(src, this.tokens.links)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // em & strong\n if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // code\n if (token = this.tokenizer.codespan(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // br\n if (token = this.tokenizer.br(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // del (gfm)\n if (token = this.tokenizer.del(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // autolink\n if (token = this.tokenizer.autolink(src, mangle)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // url (gfm)\n if (!this.state.inLink && (token = this.tokenizer.url(src, mangle))) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // text\n // prevent inlineText consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startInline) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startInline.forEach(function(getStartIndex) {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) { startIndex = Math.min(startIndex, tempStart); }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (token = this.tokenizer.inlineText(cutSrc, smartypants)) {\n src = src.substring(token.raw.length);\n if (token.raw.slice(-1) !== '_') { // Track prevChar before string of ____ started\n prevChar = token.raw.slice(-1);\n }\n keepPrevChar = true;\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n\n return tokens;\n }\n}\n\n/**\n * Renderer\n */\nclass Renderer {\n constructor(options) {\n this.options = options || defaults;\n }\n\n code(code, infostring, escaped) {\n const lang = (infostring || '').match(/\\S*/)[0];\n if (this.options.highlight) {\n const out = this.options.highlight(code, lang);\n if (out != null && out !== code) {\n escaped = true;\n code = out;\n }\n }\n\n code = code.replace(/\\n$/, '') + '\\n';\n\n if (!lang) {\n return '<pre><code>'\n + (escaped ? code : escape(code, true))\n + '</code></pre>\\n';\n }\n\n return '<pre><code class=\"'\n + this.options.langPrefix\n + escape(lang, true)\n + '\">'\n + (escaped ? code : escape(code, true))\n + '</code></pre>\\n';\n }\n\n blockquote(quote) {\n return '<blockquote>\\n' + quote + '</blockquote>\\n';\n }\n\n html(html) {\n return html;\n }\n\n heading(text, level, raw, slugger) {\n if (this.options.headerIds) {\n return '<h'\n + level\n + ' id=\"'\n + this.options.headerPrefix\n + slugger.slug(raw)\n + '\">'\n + text\n + '</h'\n + level\n + '>\\n';\n }\n // ignore IDs\n return '<h' + level + '>' + text + '</h' + level + '>\\n';\n }\n\n hr() {\n return this.options.xhtml ? '<hr/>\\n' : '<hr>\\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 + '</' + type + '>\\n';\n }\n\n listitem(text) {\n return '<li>' + text + '</li>\\n';\n }\n\n checkbox(checked) {\n return '<input '\n + (checked ? 'checked=\"\" ' : '')\n + 'disabled=\"\" type=\"checkbox\"'\n + (this.options.xhtml ? ' /' : '')\n + '> ';\n }\n\n paragraph(text) {\n return '<p>' + text + '</p>\\n';\n }\n\n table(header, body) {\n if (body) body = '<tbody>' + body + '</tbody>';\n\n return '<table>\\n'\n + '<thead>\\n'\n + header\n + '</thead>\\n'\n + body\n + '</table>\\n';\n }\n\n tablerow(content) {\n return '<tr>\\n' + content + '</tr>\\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 + '</' + type + '>\\n';\n }\n\n // span level renderer\n strong(text) {\n return '<strong>' + text + '</strong>';\n }\n\n em(text) {\n return '<em>' + text + '</em>';\n }\n\n codespan(text) {\n return '<code>' + text + '</code>';\n }\n\n br() {\n return this.options.xhtml ? '<br/>' : '<br>';\n }\n\n del(text) {\n return '<del>' + text + '</del>';\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 = '<a href=\"' + escape(href) + '\"';\n if (title) {\n out += ' title=\"' + title + '\"';\n }\n out += '>' + text + '</a>';\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 = '<img src=\"' + href + '\" alt=\"' + text + '\"';\n if (title) {\n out += ' title=\"' + title + '\"';\n }\n out += this.options.xhtml ? '/>' : '>';\n return out;\n }\n\n text(text) {\n return text;\n }\n}\n\n/**\n * TextRenderer\n * returns only the textual part of the token\n */\nclass TextRenderer {\n // no need for block level renderers\n strong(text) {\n return text;\n }\n\n em(text) {\n return text;\n }\n\n codespan(text) {\n return text;\n }\n\n del(text) {\n return text;\n }\n\n html(text) {\n return text;\n }\n\n text(text) {\n return text;\n }\n\n link(href, title, text) {\n return '' + text;\n }\n\n image(href, title, text) {\n return '' + text;\n }\n\n br() {\n return '';\n }\n}\n\n/**\n * Slugger generates header id\n */\nclass Slugger {\n constructor() {\n this.seen = {};\n }\n\n serialize(value) {\n return value\n .toLowerCase()\n .trim()\n // remove html tags\n .replace(/<[!\\/a-z].*?>/ig, '')\n // remove unwanted chars\n .replace(/[\\u2000-\\u206F\\u2E00-\\u2E7F\\\\'!\"#$%&()*+,./:;<=>?@[\\]^`{|}~]/g, '')\n .replace(/\\s/g, '-');\n }\n\n /**\n * Finds the next safe (unique) slug to use\n */\n getNextSafeSlug(originalSlug, isDryRun) {\n let slug = originalSlug;\n let occurenceAccumulator = 0;\n if (this.seen.hasOwnProperty(slug)) {\n occurenceAccumulator = this.seen[originalSlug];\n do {\n occurenceAccumulator++;\n slug = originalSlug + '-' + occurenceAccumulator;\n } while (this.seen.hasOwnProperty(slug));\n }\n if (!isDryRun) {\n this.seen[originalSlug] = occurenceAccumulator;\n this.seen[slug] = 0;\n }\n return slug;\n }\n\n /**\n * Convert string to unique id\n * @param {object} options\n * @param {boolean} options.dryrun Generates the next unique slug without updating the internal accumulator.\n */\n slug(value, options = {}) {\n const slug = this.serialize(value);\n return this.getNextSafeSlug(slug, options.dryrun);\n }\n}\n\n/**\n * Parsing & Compiling\n */\nclass Parser {\n constructor(options) {\n this.options = options || defaults;\n this.options.renderer = this.options.renderer || new Renderer();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n this.textRenderer = new TextRenderer();\n this.slugger = new Slugger();\n }\n\n /**\n * Static Parse Method\n */\n static parse(tokens, options) {\n const parser = new Parser(options);\n return parser.parse(tokens);\n }\n\n /**\n * Static Parse Inline Method\n */\n static parseInline(tokens, options) {\n const parser = new Parser(options);\n return parser.parseInline(tokens);\n }\n\n /**\n * Parse Loop\n */\n parse(tokens, top = true) {\n let out = '',\n i,\n j,\n k,\n l2,\n l3,\n row,\n cell,\n header,\n body,\n token,\n ordered,\n start,\n loose,\n itemBody,\n item,\n checked,\n task,\n checkbox,\n ret;\n\n const l = tokens.length;\n for (i = 0; i < l; i++) {\n token = tokens[i];\n\n // Run any renderer extensions\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n ret = this.options.extensions.renderers[token.type].call({ parser: this }, token);\n if (ret !== false || !['space', 'hr', 'heading', 'code', 'table', 'blockquote', 'list', 'html', 'paragraph', 'text'].includes(token.type)) {\n out += ret || '';\n continue;\n }\n }\n\n switch (token.type) {\n case 'space': {\n continue;\n }\n case 'hr': {\n out += this.renderer.hr();\n continue;\n }\n case 'heading': {\n out += this.renderer.heading(\n this.parseInline(token.tokens),\n token.depth,\n unescape(this.parseInline(token.tokens, this.textRenderer)),\n this.slugger);\n continue;\n }\n case 'code': {\n out += this.renderer.code(token.text,\n token.lang,\n token.escaped);\n continue;\n }\n case 'table': {\n header = '';\n\n // header\n cell = '';\n l2 = token.header.length;\n for (j = 0; j < l2; j++) {\n cell += this.renderer.tablecell(\n this.parseInline(token.header[j].tokens),\n { header: true, align: token.align[j] }\n );\n }\n header += this.renderer.tablerow(cell);\n\n body = '';\n l2 = token.rows.length;\n for (j = 0; j < l2; j++) {\n row = token.rows[j];\n\n cell = '';\n l3 = row.length;\n for (k = 0; k < l3; k++) {\n cell += this.renderer.tablecell(\n this.parseInline(row[k].tokens),\n { header: false, align: token.align[k] }\n );\n }\n\n body += this.renderer.tablerow(cell);\n }\n out += this.renderer.table(header, body);\n continue;\n }\n case 'blockquote': {\n body = this.parse(token.tokens);\n out += this.renderer.blockquote(body);\n continue;\n }\n case 'list': {\n ordered = token.ordered;\n start = token.start;\n loose = token.loose;\n l2 = token.items.length;\n\n body = '';\n for (j = 0; j < l2; j++) {\n item = token.items[j];\n checked = item.checked;\n task = item.task;\n\n itemBody = '';\n if (item.task) {\n checkbox = this.renderer.checkbox(checked);\n if (loose) {\n if (item.tokens.length > 0 && item.tokens[0].type === 'paragraph') {\n item.tokens[0].text = checkbox + ' ' + item.tokens[0].text;\n if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === 'text') {\n item.tokens[0].tokens[0].text = checkbox + ' ' + item.tokens[0].tokens[0].text;\n }\n } else {\n item.tokens.unshift({\n type: 'text',\n text: checkbox\n });\n }\n } else {\n itemBody += checkbox;\n }\n }\n\n itemBody += this.parse(item.tokens, loose);\n body += this.renderer.listitem(itemBody, task, checked);\n }\n\n out += this.renderer.list(body, ordered, start);\n continue;\n }\n case 'html': {\n // TODO parse inline content if parameter markdown=1\n out += this.renderer.html(token.text);\n continue;\n }\n case 'paragraph': {\n out += this.renderer.paragraph(this.parseInline(token.tokens));\n continue;\n }\n case 'text': {\n body = token.tokens ? this.parseInline(token.tokens) : token.text;\n while (i + 1 < l && tokens[i + 1].type === 'text') {\n token = tokens[++i];\n body += '\\n' + (token.tokens ? this.parseInline(token.tokens) : token.text);\n }\n out += top ? this.renderer.paragraph(body) : body;\n continue;\n }\n\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n\n return out;\n }\n\n /**\n * Parse Inline Tokens\n */\n parseInline(tokens, renderer) {\n renderer = renderer || this.renderer;\n let out = '',\n i,\n token,\n ret;\n\n const l = tokens.length;\n for (i = 0; i < l; i++) {\n token = tokens[i];\n\n // Run any renderer extensions\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n ret = this.options.extensions.renderers[token.type].call({ parser: this }, token);\n if (ret !== false || !['escape', 'html', 'link', 'image', 'strong', 'em', 'codespan', 'br', 'del', 'text'].includes(token.type)) {\n out += ret || '';\n continue;\n }\n }\n\n switch (token.type) {\n case 'escape': {\n out += renderer.text(token.text);\n break;\n }\n case 'html': {\n out += renderer.html(token.text);\n break;\n }\n case 'link': {\n out += renderer.link(token.href, token.title, this.parseInline(token.tokens, renderer));\n break;\n }\n case 'image': {\n out += renderer.image(token.href, token.title, token.text);\n break;\n }\n case 'strong': {\n out += renderer.strong(this.parseInline(token.tokens, renderer));\n break;\n }\n case 'em': {\n out += renderer.em(this.parseInline(token.tokens, renderer));\n break;\n }\n case 'codespan': {\n out += renderer.codespan(token.text);\n break;\n }\n case 'br': {\n out += renderer.br();\n break;\n }\n case 'del': {\n out += renderer.del(this.parseInline(token.tokens, renderer));\n break;\n }\n case 'text': {\n out += renderer.text(token.text);\n break;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out;\n }\n}\n\n/**\n * Marked\n */\nfunction marked(src, opt, callback) {\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n throw new Error('marked(): input parameter is undefined or null');\n }\n if (typeof src !== 'string') {\n throw new Error('marked(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected');\n }\n\n if (typeof opt === 'function') {\n callback = opt;\n opt = null;\n }\n\n opt = merge({}, marked.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n\n if (callback) {\n const highlight = opt.highlight;\n let tokens;\n\n try {\n tokens = Lexer.lex(src, opt);\n } catch (e) {\n return callback(e);\n }\n\n const done = function(err) {\n let out;\n\n if (!err) {\n try {\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n out = Parser.parse(tokens, opt);\n } catch (e) {\n err = e;\n }\n }\n\n opt.highlight = highlight;\n\n return err\n ? callback(err)\n : callback(null, out);\n };\n\n if (!highlight || highlight.length < 3) {\n return done();\n }\n\n delete opt.highlight;\n\n if (!tokens.length) return done();\n\n let pending = 0;\n marked.walkTokens(tokens, function(token) {\n if (token.type === 'code') {\n pending++;\n setTimeout(() => {\n highlight(token.text, token.lang, function(err, code) {\n if (err) {\n return done(err);\n }\n if (code != null && code !== token.text) {\n token.text = code;\n token.escaped = true;\n }\n\n pending--;\n if (pending === 0) {\n done();\n }\n });\n }, 0);\n }\n });\n\n if (pending === 0) {\n done();\n }\n\n return;\n }\n\n try {\n const tokens = Lexer.lex(src, opt);\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n return Parser.parse(tokens, opt);\n } catch (e) {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n if (opt.silent) {\n return '<p>An error occurred:</p><pre>'\n + escape(e.message + '', true)\n + '</pre>';\n }\n throw e;\n }\n}\n\n/**\n * Options\n */\n\nmarked.options =\nmarked.setOptions = function(opt) {\n merge(marked.defaults, opt);\n changeDefaults(marked.defaults);\n return marked;\n};\n\nmarked.getDefaults = getDefaults;\n\nmarked.defaults = defaults;\n\n/**\n * Use Extension\n */\n\nmarked.use = function(...args) {\n const opts = merge({}, ...args);\n const extensions = marked.defaults.extensions || { renderers: {}, childTokens: {} };\n let hasExtensions;\n\n args.forEach((pack) => {\n // ==-- Parse \"addon\" extensions --== //\n if (pack.extensions) {\n hasExtensions = true;\n pack.extensions.forEach((ext) => {\n if (!ext.name) {\n throw new Error('extension name required');\n }\n if (ext.renderer) { // Renderer extensions\n const prevRenderer = extensions.renderers ? extensions.renderers[ext.name] : null;\n if (prevRenderer) {\n // Replace extension with func to run new extension but fall back if false\n extensions.renderers[ext.name] = function(...args) {\n let ret = ext.renderer.apply(this, args);\n if (ret === false) {\n ret = prevRenderer.apply(this, args);\n }\n return ret;\n };\n } else {\n extensions.renderers[ext.name] = ext.renderer;\n }\n }\n if (ext.tokenizer) { // Tokenizer Extensions\n if (!ext.level || (ext.level !== 'block' && ext.level !== 'inline')) {\n throw new Error(\"extension level must be 'block' or 'inline'\");\n }\n if (extensions[ext.level]) {\n extensions[ext.level].unshift(ext.tokenizer);\n } else {\n extensions[ext.level] = [ext.tokenizer];\n }\n if (ext.start) { // Function to check for start of token\n if (ext.level === 'block') {\n if (extensions.startBlock) {\n extensions.startBlock.push(ext.start);\n } else {\n extensions.startBlock = [ext.start];\n }\n } else if (ext.level === 'inline') {\n if (extensions.startInline) {\n extensions.startInline.push(ext.start);\n } else {\n extensions.startInline = [ext.start];\n }\n }\n }\n }\n if (ext.childTokens) { // Child tokens to be visited by walkTokens\n extensions.childTokens[ext.name] = ext.childTokens;\n }\n });\n }\n\n // ==-- Parse \"overwrite\" extensions --== //\n if (pack.renderer) {\n const renderer = marked.defaults.renderer || new Renderer();\n for (const prop in pack.renderer) {\n const prevRenderer = renderer[prop];\n // Replace renderer with func to run extension, but fall back if false\n renderer[prop] = (...args) => {\n let ret = pack.renderer[prop].apply(renderer, args);\n if (ret === false) {\n ret = prevRenderer.apply(renderer, args);\n }\n return ret;\n };\n }\n opts.renderer = renderer;\n }\n if (pack.tokenizer) {\n const tokenizer = marked.defaults.tokenizer || new Tokenizer();\n for (const prop in pack.tokenizer) {\n const prevTokenizer = tokenizer[prop];\n // Replace tokenizer with func to run extension, but fall back if false\n tokenizer[prop] = (...args) => {\n let ret = pack.tokenizer[prop].apply(tokenizer, args);\n if (ret === false) {\n ret = prevTokenizer.apply(tokenizer, args);\n }\n return ret;\n };\n }\n opts.tokenizer = tokenizer;\n }\n\n // ==-- Parse WalkTokens extensions --== //\n if (pack.walkTokens) {\n const walkTokens = marked.defaults.walkTokens;\n opts.walkTokens = function(token) {\n pack.walkTokens.call(this, token);\n if (walkTokens) {\n walkTokens.call(this, token);\n }\n };\n }\n\n if (hasExtensions) {\n opts.extensions = extensions;\n }\n\n marked.setOptions(opts);\n });\n};\n\n/**\n * Run callback for every token\n */\n\nmarked.walkTokens = function(tokens, callback) {\n for (const token of tokens) {\n callback.call(marked, token);\n switch (token.type) {\n case 'table': {\n for (const cell of token.header) {\n marked.walkTokens(cell.tokens, callback);\n }\n for (const row of token.rows) {\n for (const cell of row) {\n marked.walkTokens(cell.tokens, callback);\n }\n }\n break;\n }\n case 'list': {\n marked.walkTokens(token.items, callback);\n break;\n }\n default: {\n if (marked.defaults.extensions && marked.defaults.extensions.childTokens && marked.defaults.extensions.childTokens[token.type]) { // Walk any extensions\n marked.defaults.extensions.childTokens[token.type].forEach(function(childTokens) {\n marked.walkTokens(token[childTokens], callback);\n });\n } else if (token.tokens) {\n marked.walkTokens(token.tokens, callback);\n }\n }\n }\n }\n};\n\n/**\n * Parse Inline\n */\nmarked.parseInline = function(src, opt) {\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n throw new Error('marked.parseInline(): input parameter is undefined or null');\n }\n if (typeof src !== 'string') {\n throw new Error('marked.parseInline(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected');\n }\n\n opt = merge({}, marked.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n\n try {\n const tokens = Lexer.lexInline(src, opt);\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n return Parser.parseInline(tokens, opt);\n } catch (e) {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n if (opt.silent) {\n return '<p>An error occurred:</p><pre>'\n + escape(e.message + '', true)\n + '</pre>';\n }\n throw e;\n }\n};\n\n/**\n * Expose\n */\nmarked.Parser = Parser;\nmarked.parser = Parser.parse;\nmarked.Renderer = Renderer;\nmarked.TextRenderer = TextRenderer;\nmarked.Lexer = Lexer;\nmarked.lexer = Lexer.lex;\nmarked.Tokenizer = Tokenizer;\nmarked.Slugger = Slugger;\nmarked.parse = marked;\n\nconst options = marked.options;\nconst setOptions = marked.setOptions;\nconst use = marked.use;\nconst walkTokens = marked.walkTokens;\nconst parseInline = marked.parseInline;\nconst parse = marked;\nconst parser = Parser.parse;\nconst lexer = Lexer.lex;\n\nexport { Lexer, Parser, Renderer, Slugger, TextRenderer, Tokenizer, defaults, getDefaults, lexer, marked, options, parse, parseInline, parser, setOptions, use, walkTokens };\n","import { marked } from 'marked'\nimport type { Change } from '../../services/index.js'\nimport { Card } from '../Card.jsx'\nimport { Badge } from './index.js'\n\ntype Props = {\n\tchange: Change,\n\tminimal?: boolean,\n\tactiveTags?: string[],\n\ttoggleTag?: (tag: string) => unknown,\n}\nexport function ChangelogEntry({ change, minimal, activeTags, toggleTag }: Props) {\n\treturn <Card overlay={!minimal && <>\n\t\t<a class=\"changelog-version\" href={`/versions/?id=${change.version}`}>{change.version}</a>\n\t\t<a class=\"changelog-version\" href={`/versions/?id=${change.group}`}>{change.group}</a>\n\t</>}>\n\t\t<div class=\"badges-list\">\n\t\t\t{change.tags.map(tag => <Badge label={tag} onClick={toggleTag ? () => toggleTag(tag) : undefined} active={activeTags?.includes(tag)} />)}\n\t\t</div>\n\t\t<div class=\"changelog-content\" dangerouslySetInnerHTML={{ __html: marked(change.content) }} />\n\t</Card>\n}\n","import type { ComponentChildren } from 'preact'\nimport { useMemo, useState } from 'preact/hooks'\nimport { useLocale } from '../../contexts/index.js'\nimport { useSearchParam, useTags } from '../../hooks/index.js'\nimport type { Change } from '../../services/index.js'\nimport { Badge } from '../Badge.jsx'\nimport { Btn, TextInput } from '../index.js'\nimport { ChangelogEntry } from './ChangelogEntry.js'\n\nconst SEARCH_KEY = 'search'\n\ninterface Props {\n\tchanges: Change[] | undefined,\n\tdefaultOrder: 'asc' | 'desc',\n\tlimit?: number,\n\tnavigation?: ComponentChildren,\n}\nexport function ChangelogList({ changes, defaultOrder, limit, navigation }: Props) {\n\tconst { locale } = useLocale()\n\n\tconst [search, setSearch] = useSearchParam(SEARCH_KEY)\n\tconst [tags, toggleTag] = useTags()\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 changes\n\t\treturn changes?.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.group} ${change.version} ${change.tags.join(' ')} ${change.content.toLowerCase()}`\n\t\t\treturn query.every(q => {\n\t\t\t\tif (q.startsWith('!')) {\n\t\t\t\t\treturn q.length === 1 || !content.includes(q.slice(1))\n\t\t\t\t}\n\t\t\t\treturn content.includes(q)\n\t\t\t})\n\t\t})\n\t}, [changes, search, tags])\n\n\tconst [sort, setSort] = useState(defaultOrder === 'desc')\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\tconst [limitActive, setLimitActive] = useState(true)\n\n\tconst limitedChangelogs = useMemo(() => {\n\t\tif (!limitActive || (limit ?? -1) < 0) return sortedChangelogs \n\t\treturn sortedChangelogs?.slice(0, limit)\n\t}, [sortedChangelogs, limitActive, limit, sort /* why is this necessary??? */])\n\n\tconst hiddenChanges = (sortedChangelogs?.length ?? 0) - (limitedChangelogs?.length ?? 0)\n\n\treturn <>\n\t\t<div class=\"navigation\">\n\t\t\t{navigation}\n\t\t\t<TextInput class=\"btn btn-input query-search\" list=\"sound-list\" placeholder={locale('changelog.search')}\n\t\t\t\tvalue={search} onChange={v => setSearch(v, true)} />\n\t\t\t<Btn icon={sort ? 'sort_desc' : 'sort_asc'} label={sort ? 'Newest first' : 'Oldest first'} onClick={() => setSort(!sort)} />\n\t\t</div>\n\t\t{tags.length > 0 && <div class=\"badges-list\">\n\t\t\t{tags.map(tag => <Badge label={tag} onClick={() => toggleTag(tag)} />)}\n\t\t</div>}\n\t\t<div class=\"card-column\">\n\t\t\t{limitedChangelogs === undefined ? <>\n\t\t\t\t<span class=\"note\">{locale('loading')}</span>\n\t\t\t</> : limitedChangelogs.length === 0 ? <>\n\t\t\t\t<span class=\"note\">{locale('changelog.no_results')}</span>\n\t\t\t</> :\t<>\n\t\t\t\t{limitedChangelogs.map(change =>\n\t\t\t\t\t<ChangelogEntry change={change} activeTags={tags} toggleTag={toggleTag} />)}\n\t\t\t</>}\n\t\t\t{hiddenChanges > 0 && (\n\t\t\t\t<Btn label={locale('changelog.show_more', `${hiddenChanges}`)} onClick={() => setLimitActive(false)}/>\n\t\t\t)}\n\t\t</div>\n\t</>\n}\n","import { useMemo, useState } from 'preact/hooks'\nimport { useLocale } from '../../contexts/index.js'\nimport { useAsync } from '../../hooks/useAsync.js'\nimport type { VersionMeta } from '../../services/index.js'\nimport { fetchChangelogs, getArticleLink } from '../../services/index.js'\nimport { Giscus } from '../Giscus.js'\nimport { Octicon } from '../Octicon.js'\nimport { ChangelogList } from './ChangelogList.js'\nimport { VersionMetaData } from './index.js'\n\ntype Tab = 'changelog' | 'discussion' \n\ninterface Props {\n\tid: string,\n\tversion?: VersionMeta,\n}\nexport function VersionDetail({ id, version }: Props) {\n\tconst { locale } = useLocale()\n\n\tconst [tab, setTab] = useState<Tab>('changelog')\n\n\tconst { value: changes } = useAsync(fetchChangelogs, [])\n\n\tconst filteredChangelogs = useMemo(() =>\n\t\tchanges?.filter(c => c.version === id || c.group === id),\n\t[id, changes])\n\n\tconst articleLink = version && getArticleLink(version.id)\n\n\treturn <>\n\t\t<div class=\"version-detail\">\n\t\t\t<h2>{version?.name ?? id}</h2>\n\t\t\t<div class=\"version-info\">\n\t\t\t\t{version ? <>\n\t\t\t\t\t<VersionMetaData label={locale('versions.released')} value={releaseDate(version)} />\n\t\t\t\t\t<VersionMetaData label={locale('versions.release_target')} value={version.release_target} link={version.id !== version.release_target ? `/versions/?id=${version.release_target}` : undefined} />\n\t\t\t\t\t<VersionMetaData label={locale('versions.data_version')} value={version.data_version} />\n\t\t\t\t\t<VersionMetaData label={locale('versions.protocol_version')} value={version.protocol_version} />\n\t\t\t\t\t<VersionMetaData label={locale('versions.data_pack_format')} value={version.data_pack_version} />\n\t\t\t\t\t<VersionMetaData label={locale('versions.resource_pack_format')} value={version.resource_pack_version} />\n\t\t\t\t</> : filteredChangelogs?.length ?? 0 > 1 ? <p>\n\t\t\t\t\tThis version is not released yet.\n\t\t\t\t</p> : <p>\n\t\t\t\t\tThis version does not exist. Only versions since 1.14 are tracked, or it may be too recent.\n\t\t\t\t</p>}\n\t\t\t</div>\n\t\t\t<div class=\"version-tabs\">\n\t\t\t\t<span class={tab === 'changelog' ? 'selected' : ''} onClick={() => setTab('changelog')}>{locale('versions.technical_changes')}</span>\n\t\t\t\t<span class={tab === 'discussion' ? 'selected' : ''} onClick={() => setTab('discussion')}>{locale('versions.discussion')}</span>\n\t\t\t\t{articleLink && <a href={articleLink} target=\"_blank\">\n\t\t\t\t\t{locale('versions.article')}\n\t\t\t\t\t{Octicon.link_external}\n\t\t\t\t</a>}\n\t\t\t</div>\n\t\t\t<div class=\"version-tab\">\n\t\t\t\t{tab === 'changelog' && <ChangelogList changes={filteredChangelogs} defaultOrder=\"asc\" />}\n\t\t\t\t{tab === 'discussion' && <Giscus term={`version/${id}/`} />}\n\t\t\t</div>\n\t\t</div>\n\t</>\n}\n\nexport function releaseDate(version: VersionMeta) {\n\treturn new Date(version.release_time).toLocaleDateString(undefined, { day: 'numeric', month: 'short', year: 'numeric' })\n}\n","import { useLocale } from '../../contexts/index.js'\nimport type { VersionMeta } from '../../services/index.js'\nimport { releaseDate, VersionMetaData } from './index.js'\n\ninterface Props {\n\tversion: VersionMeta,\n\tlink?: string,\n}\nexport function VersionEntry({ version, link }: Props) {\n\tconst { locale } = useLocale()\n\n\treturn <a class=\"version-entry\" href={link}>\n\t\t<span class=\"version-id\">{version.id}</span>\n\t\t<VersionMetaData label={locale('versions.released')} value={releaseDate(version)} compact />\n\t\t<VersionMetaData label={locale('versions.data_version')} value={version.data_version} optional />\n\t\t<VersionMetaData label={locale('versions.pack_format')} value={version.data_pack_version} optional />\n\t</a>\n}\n","import type { ComponentChildren } from 'preact'\nimport { useMemo } from 'preact/hooks'\nimport { useLocale } from '../../contexts/index.js'\nimport { useLocalStorage, useSearchParam } from '../../hooks/index.js'\nimport type { VersionMeta } from '../../services/index.js'\nimport { Checkbox, TextInput } from '../index.js'\nimport { VersionEntry } from './VersionEntry.js'\n\nconst INCLUDE_SNAPSHOTS = 'misode_include_snapshots'\nconst SEARCH_KEY = 'search'\n\ninterface Props {\n\tversions?: VersionMeta[],\n\tlink?: (id: string) => string,\n\tnavigation?: ComponentChildren,\n}\nexport function VersionList({ versions, link, navigation }: Props) {\n\tconst { locale } = useLocale()\n\t\n\tconst [snapshots, setSnapshots] = useLocalStorage(INCLUDE_SNAPSHOTS, true, v => v === 'true', b => `${b}`)\n\tconst [search, setSearch] = useSearchParam(SEARCH_KEY)\n\n\tconst filteredVersions = useMemo(() => versions?.filter(v => {\n\t\tif (v.type === 'snapshot' && !snapshots) return false\n\t\treturn v.id.includes(search ?? '')\n\t}), [versions, snapshots, search])\n\n\treturn <>\n\t\t<div class=\"navigation\">\n\t\t\t{navigation}\n\t\t\t<TextInput class=\"btn btn-input query-search\" placeholder={locale('versions.search')}\n\t\t\t\tvalue={search} onChange={setSearch} />\n\t\t\t<Checkbox label=\"Include snapshots\" value={snapshots} onChange={setSnapshots} />\n\t\t</div>\n\t\t<div class=\"version-list\">\n\t\t\t{filteredVersions === undefined\n\t\t\t\t? <span class=\"note\">{locale('loading')}</span>\n\t\t\t\t: filteredVersions.length === 0\n\t\t\t\t\t? <span class=\"note\">{locale('versions.no_results')}</span>\n\t\t\t\t\t:\tfilteredVersions.map(v => <VersionEntry version={v} link={link?.(v.id)} />)}\n\t\t</div>\n\t</>\n}\n","import { Octicon } from '../index.js'\n\ninterface Props {\n\tlabel: string,\n\tvalue: string | number,\n\tlink?: string,\n\tcompact?: boolean,\n\toptional?: boolean,\n}\nexport function VersionMetaData({ label, value, link, compact, optional }: Props) {\n\treturn <div class={`version-metadata${optional ? ' version-metadata-hide' : ''}`}>\n\t\t<span class={compact ? 'version-metadata-hide' : undefined}>{label}: </span>\n\t\t<span class=\"version-metadata-value\">{value}</span>\n\t\t{link && <a href={link} class=\"version-metadata-link\">{Octicon.link_external}</a>}\n\t</div>\n}\n","import { useMemo } from 'preact/hooks'\nimport config from '../Config.js'\nimport { useLocale } from '../contexts/index.js'\nimport type { VersionId } from '../services/index.js'\nimport { Store } from '../Store.js'\nimport { Btn } from './Btn.js'\nimport { BtnMenu } from './BtnMenu.js'\n\ninterface Props {\n\tvalue?: VersionId,\n\tallowed?: VersionId[],\n\thasAny?: boolean,\n\tonChange: (version: VersionId) => void,\n\tonAny?: () => void,\n}\nexport function VersionSwitcher({ value, allowed, hasAny, onChange, onAny }: Props) {\n\tconst { locale } = useLocale()\n\n\tconst versions = useMemo(() => {\n\t\tif (allowed) return allowed\n\t\treturn config.versions\n\t\t\t.map(v => v.id as VersionId)\n\t\t\t.reverse()\n\t}, [allowed])\n\n\treturn <BtnMenu class={`version-switcher${Store.getVersion() === null ? ' attention' : ''}`} icon=\"tag\" label={value ?? locale('any_version')} tooltip={locale('switch_version')}>\n\t\t{hasAny && <Btn label={locale('any_version')} onClick={onAny} active={!value} />}\n\t\t{versions.map((v: string) => \n\t\t\t<Btn label={v} active={v === value} onClick={() => onChange(v as VersionId)} />)}\n\t</BtnMenu>\n}\n","import { BtnLink, ChangelogList, ErrorPanel, Footer } from '../components/index.js'\nimport { useLocale, useTitle } from '../contexts/index.js'\nimport { useAsync } from '../hooks/index.js'\nimport { fetchChangelogs } from '../services/index.js'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Changelog({}: Props) {\n\tconst { locale } = useLocale()\n\tuseTitle(locale('title.changelog'))\n\n\tconst { value: changes, error } = useAsync(fetchChangelogs, [])\n\n\treturn <main>\n\t\t{error && <ErrorPanel error={error} />}\n\t\t<div class=\"container changelog\">\n\t\t\t<ChangelogList changes={changes} defaultOrder=\"desc\" limit={100} navigation={(\n\t\t\t\t<BtnLink link=\"/versions/\" icon=\"three_bars\" label={locale('versions.all')} />\n\t\t\t)} />\n\t\t</div>\n\t\t<Footer />\n\t</main>\n}\n","import { DataModel, Path } from '@mcschema/core'\nimport { getCurrentUrl, route } from 'preact-router'\nimport { useCallback, useEffect, useErrorBoundary, useMemo, useRef, useState } from 'preact/hooks'\nimport { Analytics } from '../Analytics.js'\nimport { Ad, Btn, BtnMenu, ErrorPanel, FileCreation, FileRenaming, Footer, HasPreview, Octicon, PreviewPanel, ProjectCreation, ProjectDeletion, ProjectPanel, SearchList, SourcePanel, TextInput, Tree, VersionSwitcher } from '../components/index.js'\nimport config from '../Config.js'\nimport { DRAFT_PROJECT, useLocale, useProject, useTitle, useVersion } from '../contexts/index.js'\nimport { AsyncCancel, useActiveTimeout, useAsync, useModel, useSearchParam } from '../hooks/index.js'\nimport { getOutput } from '../schema/transformOutput.js'\nimport type { VersionId } from '../services/index.js'\nimport { checkVersion, fetchPreset, getBlockStates, getCollections, getModel, getSnippet, shareSnippet } from '../services/index.js'\nimport { Store } from '../Store.js'\nimport { cleanUrl, deepEqual, getGenerator } from '../Utils.js'\n\nexport const SHARE_KEY = 'share'\n\ninterface Props {\n\tdefault?: true,\n}\nexport function Generator({}: Props) {\n\tconst { locale } = useLocale()\n\tconst { version, changeVersion, changeTargetVersion } = useVersion()\n\tconst { projects, project, file, updateProject, updateFile } = useProject()\n\tconst [error, setError] = useState<Error | string | null>(null)\n\tconst [errorBoundary, errorRetry] = useErrorBoundary()\n\tif (errorBoundary) {\n\t\terrorBoundary.message = `Something went wrong rendering the generator: ${errorBoundary.message}`\n\t\treturn <main><ErrorPanel error={errorBoundary} onDismiss={errorRetry} /></main>\n\t}\n\n\tconst gen = getGenerator(getCurrentUrl())\n\tif (!gen) {\n\t\treturn <main><ErrorPanel error={`Cannot find generator \"${getCurrentUrl()}\"`} /></main>\n\t}\n\n\tconst allowedVersions = useMemo(() => {\n\t\treturn config.versions\n\t\t\t.filter(v => checkVersion(v.id, gen.minVersion, gen.maxVersion))\n\t\t\t.map(v => v.id as VersionId)\n\t\t\t.reverse()\n\t}, [gen.minVersion, gen.maxVersion])\n\n\tuseTitle(locale('title.generator', locale(gen.partner ? `partner.${gen.partner}.${gen.id}` : gen.id)), allowedVersions)\n\n\tif (!checkVersion(version, gen.minVersion)) {\n\t\tsetError(`The minimum version for this generator is ${gen.minVersion}`)\n\t}\n\tif (!checkVersion(version, undefined, gen.maxVersion)) {\n\t\tsetError(`This generator is not available in versions above ${gen.maxVersion}`)\n\t}\n\n\tuseEffect(() => Store.visitGenerator(gen.id), [gen.id])\n\n\tconst [currentPreset, setCurrentPreset] = useSearchParam('preset')\n\tconst [sharedSnippetId, setSharedSnippetId] = useSearchParam(SHARE_KEY)\n\tconst ignoreChange = useRef(false)\n\tconst backup = useMemo(() => Store.getBackup(gen.id), [gen.id])\n\n\tconst loadBackup = () => {\n\t\tif (backup !== undefined) {\n\t\t\tmodel?.reset(DataModel.wrapLists(backup), false)\n\t\t}\n\t}\n\n\tconst { value } = useAsync(async () => {\n\t\tlet data: unknown = undefined\n\t\tif (currentPreset && sharedSnippetId) {\n\t\t\tsetSharedSnippetId(undefined)\n\t\t\treturn AsyncCancel\n\t\t}\n\t\tif (currentPreset) {\n\t\t\tdata = await loadPreset(currentPreset)\n\t\t} else if (sharedSnippetId) {\n\t\t\tconst snippet = await getSnippet(sharedSnippetId)\n\t\t\tlet cancel = false\n\t\t\tif (snippet.version && snippet.version !== version) {\n\t\t\t\tchangeVersion(snippet.version, false)\n\t\t\t\tcancel = true\n\t\t\t}\n\t\t\tif (snippet.type && snippet.type !== gen.id) {\n\t\t\t\tconst snippetGen = config.generators.find(g => g.id === snippet.type)\n\t\t\t\tif (snippetGen) {\n\t\t\t\t\troute(`${cleanUrl(snippetGen.url)}?${SHARE_KEY}=${snippet.id}`)\n\t\t\t\t\tcancel = true\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (cancel) {\n\t\t\t\treturn AsyncCancel\n\t\t\t}\n\t\t\tif (snippet.show_preview && !previewShown) {\n\t\t\t\tsetPreviewShown(true)\n\t\t\t\tsetSourceShown(false)\n\t\t\t}\n\t\t\tAnalytics.openSnippet(gen.id, sharedSnippetId, version)\n\t\t\tdata = snippet.data\n\t\t} else if (file) {\n\t\t\tif (project.version && project.version !== version) {\n\t\t\t\tchangeVersion(project.version, false)\n\t\t\t\treturn AsyncCancel\n\t\t\t}\n\t\t\tdata = file.data\n\t\t}\n\t\tconst [model, blockStates] = await Promise.all([\n\t\t\tgetModel(version, gen.id),\n\t\t\tgetBlockStates(version),\n\t\t])\n\t\tif (data) {\n\t\t\tignoreChange.current = true\n\t\t\tmodel.reset(DataModel.wrapLists(data), false)\n\t\t}\n\t\tAnalytics.setGenerator(gen.id)\n\t\treturn { model, blockStates }\n\t}, [gen.id, version, sharedSnippetId, currentPreset, project.name, file?.id])\n\n\tconst model = value?.model\n\tconst blockStates = value?.blockStates\n\n\tuseModel(model, model => {\n\t\tif (!ignoreChange.current) {\n\t\t\tsetCurrentPreset(undefined, true)\n\t\t\tsetSharedSnippetId(undefined, true)\n\t\t}\n\t\tif (file && model && blockStates) {\n\t\t\tconst data = getOutput(model, blockStates)\n\t\t\tupdateFile(gen.id, file.id, { id: file.id, data })\n\t\t}\n\t\tignoreChange.current = false\n\t\tStore.setBackup(gen.id, DataModel.unwrapLists(model.data))\n\t\tsetError(null)\n\t}, [gen.id, setCurrentPreset, setSharedSnippetId, blockStates, file?.id])\n\n\tconst reset = () => {\n\t\tAnalytics.resetGenerator(gen.id, model?.historyIndex ?? 1, 'menu')\n\t\tmodel?.reset(DataModel.wrapLists(model.schema.default()), true)\n\t}\n\tconst undo = (e: MouseEvent) => {\n\t\te.stopPropagation()\n\t\tAnalytics.undoGenerator(gen.id, model?.historyIndex ?? 1, 'menu')\n\t\tmodel?.undo()\n\t}\n\tconst redo = (e: MouseEvent) => {\n\t\te.stopPropagation()\n\t\tAnalytics.redoGenerator(gen.id, model?.historyIndex ?? 1, '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.undoGenerator(gen.id, model?.historyIndex ?? 1, 'hotkey')\n\t\t\tmodel?.undo()\n\t\t} else if (e.ctrlKey && e.key === 'y') {\n\t\t\tAnalytics.redoGenerator(gen.id, model?.historyIndex ?? 1, 'hotkey')\n\t\t\tmodel?.redo()\n\t\t}\n\t}\n\tconst onKeyDown = (e: KeyboardEvent) => {\n\t\tif (e.ctrlKey && e.key === 's') {\n\t\t\tsetFileSaving('hotkey')\n\t\t\te.preventDefault()\n\t\t\te.stopPropagation()\n\t\t}\n\t}\n\tuseEffect(() => {\n\t\tdocument.addEventListener('keyup', onKeyUp)\n\t\tdocument.addEventListener('keydown', onKeyDown)\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('keyup', onKeyUp)\n\t\t\tdocument.removeEventListener('keydown', onKeyDown)\n\t\t}\n\t}, [model, blockStates, file])\n\n\tconst [presets, setPresets] = useState<string[]>([])\n\tuseEffect(() => {\n\t\tgetCollections(version).then(collections => {\n\t\t\tsetPresets(collections.get(gen.id).map(p => p.startsWith('minecraft:') ? p.slice(10) : p))\n\t\t})\n\t\t\t.catch(e => { console.error(e); setError(e) })\n\t}, [version, gen.id])\n\n\tconst selectPreset = (id: string) => {\n\t\tAnalytics.loadPreset(gen.id, id)\n\t\tsetSharedSnippetId(undefined, true)\n\t\tchangeTargetVersion(version, true)\n\t\tsetCurrentPreset(id)\n\t}\n\n\tconst loadPreset = async (id: string) => {\n\t\ttry {\n\t\t\tconst preset = await fetchPreset(version, gen.path ?? gen.id, id)\n\t\t\tconst seed = model?.get(new Path(['generator', 'seed']))\n\t\t\tif (preset?.generator?.seed !== undefined && seed !== undefined) {\n\t\t\t\tpreset.generator.seed = seed\n\t\t\t\tif (preset.generator.biome_source?.seed !== undefined) {\n\t\t\t\t\tpreset.generator.biome_source.seed = seed\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn preset\n\t\t} catch (e) {\n\t\t\tsetError(`Cannot load preset ${id} in ${version}`)\n\t\t\tsetCurrentPreset(undefined, true)\n\t\t}\n\t}\n\n\tconst selectVersion = (version: VersionId) => {\n\t\tsetSharedSnippetId(undefined, true)\n\t\tchangeVersion(version)\n\t\tif (project.name !== DRAFT_PROJECT.name && project.version !== version) {\n\t\t\tupdateProject({ version })\n\t\t}\n\t}\n\n\tconst [shareUrl, setShareUrl] = useState<string | undefined>(undefined)\n\tconst [shareShown, setShareShown] = useState(false)\n\tconst [shareCopyActive, shareCopySuccess] = useActiveTimeout({ cooldown: 3000 })\n\tconst share = () => {\n\t\tif (shareShown) {\n\t\t\tsetShareShown(false)\n\t\t\treturn\n\t\t}\n\t\tif (currentPreset) {\n\t\t\tsetShareUrl(`${location.origin}/${gen.url}/?version=${version}&preset=${currentPreset}`)\n\t\t\tsetShareShown(true)\n\t\t\tcopySharedId()\n\t\t} else if (model && blockStates) {\n\t\t\tconst output = getOutput(model, blockStates)\n\t\t\tif (deepEqual(output, model.schema.default())) {\n\t\t\t\tsetShareUrl(`${location.origin}/${gen.url}/?version=${version}`)\n\t\t\t\tsetShareShown(true)\n\t\t\t} else {\n\t\t\t\tshareSnippet(gen.id, version, output, previewShown)\n\t\t\t\t\t.then(({ id, length, compressed, rate }) => {\n\t\t\t\t\t\tAnalytics.createSnippet(gen.id, id, version, length, compressed, rate)\n\t\t\t\t\t\tconst url = `${location.origin}/${gen.url}/?${SHARE_KEY}=${id}`\n\t\t\t\t\t\tsetShareUrl(url)\n\t\t\t\t\t\tsetShareShown(true)\n\t\t\t\t\t})\n\t\t\t\t\t.catch(e => {\n\t\t\t\t\t\tif (e instanceof Error) {\n\t\t\t\t\t\t\tsetError(e)\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t}\n\t\t}\n\t}\n\tconst copySharedId = () => {\n\t\tnavigator.clipboard.writeText(shareUrl ?? '')\n\t\tshareCopySuccess()\n\t}\n\tuseEffect(() => {\n\t\tif (!shareCopyActive) {\n\t\t\tsetShareUrl(undefined)\n\t\t\tsetShareShown(false)\n\t\t}\n\t}, [shareCopyActive])\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.copyOutput(gen.id, 'menu')\n\t\tsetCopy(doCopy + 1)\n\t}\n\tconst downloadSource = () => {\n\t\tAnalytics.downloadOutput(gen.id, 'menu')\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\tif (sourceShown) {\n\t\t\tAnalytics.hideOutput(gen.id, 'menu')\n\t\t} else {\n\t\t\tAnalytics.showOutput(gen.id, 'menu')\n\t\t}\n\t\tsetSourceShown(!sourceShown)\n\t\tsetCopy(0)\n\t\tsetDownload(0)\n\t\tsetImport(0)\n\t}\n\n\tconst [copyActive, copySuccess] = useActiveTimeout()\n\n\tconst [previewShown, setPreviewShown] = useState(false)\n\tconst hasPreview = HasPreview.includes(gen.id) && !(gen.id === 'worldgen/configured_feature' && checkVersion(version, '1.18'))\n\tif (previewShown && !hasPreview) setPreviewShown(false)\n\tlet actionsShown = 2\n\tif (hasPreview) actionsShown += 1\n\tif (sourceShown) actionsShown += 2\n\n\tconst togglePreview = () => {\n\t\tif (sourceShown) {\n\t\t\tAnalytics.hidePreview(gen.id, 'menu')\n\t\t} else {\n\t\t\tAnalytics.showPreview(gen.id, 'menu')\n\t\t}\n\t\tsetPreviewShown(!previewShown)\n\t\tif (!previewShown && sourceShown) {\n\t\t\tsetSourceShown(false)\n\t\t}\n\t}\n\n\tconst [projectShown, setProjectShown] = useState(Store.getProjectPanelOpen() ?? window.innerWidth > 600)\n\tconst toggleProjectShown = useCallback(() => {\n\t\tif (projectShown) {\n\t\t\tAnalytics.hideProject(gen.id, projects.length, project.files.length, 'menu')\n\t\t} else {\n\t\t\tAnalytics.showProject(gen.id, projects.length, project.files.length, 'menu')\n\t\t}\n\t\tStore.setProjectPanelOpen(!projectShown)\n\t\tsetProjectShown(!projectShown)\n\t}, [projectShown])\n\n\tconst [projectCreating, setProjectCreating] = useState(false)\n\tconst [projectDeleting, setprojectDeleting] = useState(false)\n\tconst [fileSaving, setFileSaving] = useState<string | undefined>(undefined)\n\tconst [fileRenaming, setFileRenaming] = useState<{ type: string, id: string } | undefined>(undefined)\n\n\treturn <>\n\t\t<main class={`generator${previewShown ? ' has-preview' : ''}${projectShown ? ' has-project' : ''}`}>\n\t\t\t{!gen.partner && <Ad id=\"data-pack-generator\" type=\"text\" />}\n\t\t\t<div class=\"controls generator-controls\">\n\t\t\t\t<Btn icon=\"upload\" label={locale('import')} onClick={importSource} />\n\t\t\t\t<BtnMenu icon=\"archive\" label={locale('presets')} relative={false}>\n\t\t\t\t\t<SearchList searchPlaceholder={locale('search')} noResults={locale('no_presets')} values={presets} onSelect={selectPreset}/>\n\t\t\t\t</BtnMenu>\n\t\t\t\t<VersionSwitcher value={version} onChange={selectVersion} allowed={allowedVersions} />\n\t\t\t\t<BtnMenu icon=\"kebab_horizontal\" tooltip={locale('more')}>\n\t\t\t\t\t<Btn icon=\"history\" label={locale('reset_default')} onClick={reset} />\n\t\t\t\t\t{backup !== undefined && <Btn icon=\"history\" label={locale('restore_backup')} onClick={loadBackup} />}\n\t\t\t\t\t<Btn icon=\"arrow_left\" label={locale('undo')} onClick={undo} />\n\t\t\t\t\t<Btn icon=\"arrow_right\" label={locale('redo')} onClick={redo} />\n\t\t\t\t\t<Btn icon=\"file\" label={locale('project.save')} onClick={() => setFileSaving('menu')} />\n\t\t\t\t</BtnMenu>\n\t\t\t</div>\n\t\t\t{error && <ErrorPanel error={error} onDismiss={() => setError(null)} />}\n\t\t\t<Tree {...{model, version, blockStates}} onError={setError} />\n\t\t\t<Footer donate={!gen.partner} />\n\t\t</main>\n\t\t<div class=\"popup-actions right-actions\" style={`--offset: -${8 + actionsShown * 50}px;`}>\n\t\t\t<div class={`popup-action action-preview${hasPreview ? ' shown' : ''} tooltipped tip-nw`} aria-label={locale(previewShown ? 'hide_preview' : 'show_preview')} onClick={togglePreview}>\n\t\t\t\t{previewShown ? Octicon.x_circle : Octicon.play}\n\t\t\t</div>\n\t\t\t<div class={'popup-action action-share shown tooltipped tip-nw'} aria-label={locale('share')} onClick={share}>\n\t\t\t\t{Octicon.link}\n\t\t\t</div>\n\t\t\t<div class={`popup-action action-download${sourceShown ? ' shown' : ''} tooltipped tip-nw`} aria-label={locale('download')} onClick={downloadSource}>\n\t\t\t\t{Octicon.download}\n\t\t\t</div>\n\t\t\t<div class={`popup-action action-copy${sourceShown ? ' shown' : ''}${copyActive ? ' active' : ''} tooltipped tip-nw`} aria-label={locale(copyActive ? 'copied' : 'copy')} onClick={copySource}>\n\t\t\t\t{copyActive ? Octicon.check : Octicon.clippy}\n\t\t\t</div>\n\t\t\t<div class={'popup-action action-code shown tooltipped tip-nw'} aria-label={locale(sourceShown ? 'hide_output' : 'show_output')} onClick={toggleSource}>\n\t\t\t\t{sourceShown ? Octicon.chevron_right : Octicon.code}\n\t\t\t</div>\n\t\t</div>\n\t\t<div class={`popup-preview${previewShown ? ' shown' : ''}`}>\n\t\t\t<PreviewPanel {...{model, version, id: gen.id}} shown={previewShown} onError={setError} />\n\t\t</div>\n\t\t<div class={`popup-source${sourceShown ? ' shown' : ''}`}>\n\t\t\t<SourcePanel {...{model, blockStates, doCopy, doDownload, doImport}} name={gen.schema ?? 'data'} copySuccess={copySuccess} onError={setError} />\n\t\t</div>\n\t\t<div class={`popup-share${shareShown ? ' shown' : ''}`}>\n\t\t\t<TextInput value={shareUrl} readonly />\n\t\t\t<Btn icon={shareCopyActive ? 'check' : 'clippy'} onClick={copySharedId} tooltip={locale(shareCopyActive ? 'copied' : 'copy_share')} tooltipLoc=\"nw\" active={shareCopyActive} />\n\t\t</div>\n\t\t<div class=\"popup-actions left-actions\" style=\"--offset: 50px;\">\n\t\t\t<div class={'popup-action action-project shown tooltipped tip-ne'} aria-label={locale(projectShown ? 'hide_project' : 'show_project')} onClick={toggleProjectShown}>\n\t\t\t\t{projectShown ? Octicon.chevron_left : Octicon.repo}\n\t\t\t</div>\n\t\t</div>\n\t\t<div class={`popup-project${projectShown ? ' shown' : ''}`}>\n\t\t\t<ProjectPanel {...{model, version, id: gen.id}} onError={setError} onDeleteProject={() => setprojectDeleting(true)} onRename={setFileRenaming} onCreate={() => setProjectCreating(true)} />\n\t\t</div>\n\t\t{projectCreating && <ProjectCreation onClose={() => setProjectCreating(false)} />}\n\t\t{projectDeleting && <ProjectDeletion onClose={() => setprojectDeleting(false)} />}\n\t\t{model && fileSaving && <FileCreation id={gen.id} model={model} method={fileSaving} onClose={() => setFileSaving(undefined)} />}\n\t\t{fileRenaming && <FileRenaming id={fileRenaming.type } name={fileRenaming.id} onClose={() => setFileRenaming(undefined)} />}\n\t</>\n}\n","import { Footer, GeneratorList } from '../components/index.js'\nimport { useLocale, useTitle } from '../contexts/index.js'\n\ninterface Props {\n\tpath?: string\n}\nexport function Generators({}: Props) {\n\tconst { locale } = useLocale()\n\tuseTitle(locale('title.generators'))\n\n\treturn <main>\n\t\t<div class=\"container\">\n\t\t\t<GeneratorList predicate={gen => !gen.partner} />\n\t\t</div>\n\t\t<Footer />\n\t</main>\n}\n","var deepFreezeEs6 = {exports: {}};\n\nfunction deepFreeze(obj) {\n if (obj instanceof Map) {\n obj.clear = obj.delete = obj.set = function () {\n throw new Error('map is read-only');\n };\n } else if (obj instanceof Set) {\n obj.add = obj.clear = obj.delete = function () {\n throw new Error('set is read-only');\n };\n }\n\n // Freeze self\n Object.freeze(obj);\n\n Object.getOwnPropertyNames(obj).forEach(function (name) {\n var prop = obj[name];\n\n // Freeze prop if it is an object\n if (typeof prop == 'object' && !Object.isFrozen(prop)) {\n deepFreeze(prop);\n }\n });\n\n return obj;\n}\n\ndeepFreezeEs6.exports = deepFreeze;\ndeepFreezeEs6.exports.default = deepFreeze;\n\nvar deepFreeze$1 = deepFreezeEs6.exports;\n\n/** @typedef {import('highlight.js').CallbackResponse} CallbackResponse */\n/** @typedef {import('highlight.js').CompiledMode} CompiledMode */\n/** @implements CallbackResponse */\n\nclass Response {\n /**\n * @param {CompiledMode} mode\n */\n constructor(mode) {\n // eslint-disable-next-line no-undefined\n if (mode.data === undefined) mode.data = {};\n\n this.data = mode.data;\n this.isMatchIgnored = false;\n }\n\n ignoreMatch() {\n this.isMatchIgnored = true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {string}\n */\nfunction escapeHTML(value) {\n return value\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n}\n\n/**\n * performs a shallow merge of multiple objects into one\n *\n * @template T\n * @param {T} original\n * @param {Record<string,any>[]} objects\n * @returns {T} a single new object\n */\nfunction inherit$1(original, ...objects) {\n /** @type Record<string,any> */\n const result = Object.create(null);\n\n for (const key in original) {\n result[key] = original[key];\n }\n objects.forEach(function(obj) {\n for (const key in obj) {\n result[key] = obj[key];\n }\n });\n return /** @type {T} */ (result);\n}\n\n/**\n * @typedef {object} Renderer\n * @property {(text: string) => void} addText\n * @property {(node: Node) => void} openNode\n * @property {(node: Node) => void} closeNode\n * @property {() => string} value\n */\n\n/** @typedef {{kind?: string, sublanguage?: boolean}} Node */\n/** @typedef {{walk: (r: Renderer) => void}} Tree */\n/** */\n\nconst SPAN_CLOSE = '</span>';\n\n/**\n * Determines if a node needs to be wrapped in <span>\n *\n * @param {Node} node */\nconst emitsWrappingTags = (node) => {\n return !!node.kind;\n};\n\n/**\n *\n * @param {string} name\n * @param {{prefix:string}} options\n */\nconst expandScopeName = (name, { prefix }) => {\n if (name.includes(\".\")) {\n const pieces = name.split(\".\");\n return [\n `${prefix}${pieces.shift()}`,\n ...(pieces.map((x, i) => `${x}${\"_\".repeat(i + 1)}`))\n ].join(\" \");\n }\n return `${prefix}${name}`;\n};\n\n/** @type {Renderer} */\nclass HTMLRenderer {\n /**\n * Creates a new HTMLRenderer\n *\n * @param {Tree} parseTree - the parse tree (must support `walk` API)\n * @param {{classPrefix: string}} options\n */\n constructor(parseTree, options) {\n this.buffer = \"\";\n this.classPrefix = options.classPrefix;\n parseTree.walk(this);\n }\n\n /**\n * Adds texts to the output stream\n *\n * @param {string} text */\n addText(text) {\n this.buffer += escapeHTML(text);\n }\n\n /**\n * Adds a node open to the output stream (if needed)\n *\n * @param {Node} node */\n openNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n let scope = node.kind;\n if (node.sublanguage) {\n scope = `language-${scope}`;\n } else {\n scope = expandScopeName(scope, { prefix: this.classPrefix });\n }\n this.span(scope);\n }\n\n /**\n * Adds a node close to the output stream (if needed)\n *\n * @param {Node} node */\n closeNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n this.buffer += SPAN_CLOSE;\n }\n\n /**\n * returns the accumulated buffer\n */\n value() {\n return this.buffer;\n }\n\n // helpers\n\n /**\n * Builds a span element\n *\n * @param {string} className */\n span(className) {\n this.buffer += `<span class=\"${className}\">`;\n }\n}\n\n/** @typedef {{kind?: string, sublanguage?: boolean, children: Node[]} | string} Node */\n/** @typedef {{kind?: string, sublanguage?: boolean, children: Node[]} } DataNode */\n/** @typedef {import('highlight.js').Emitter} Emitter */\n/** */\n\nclass TokenTree {\n constructor() {\n /** @type DataNode */\n this.rootNode = { children: [] };\n this.stack = [this.rootNode];\n }\n\n get top() {\n return this.stack[this.stack.length - 1];\n }\n\n get root() { return this.rootNode; }\n\n /** @param {Node} node */\n add(node) {\n this.top.children.push(node);\n }\n\n /** @param {string} kind */\n openNode(kind) {\n /** @type Node */\n const node = { kind, children: [] };\n this.add(node);\n this.stack.push(node);\n }\n\n closeNode() {\n if (this.stack.length > 1) {\n return this.stack.pop();\n }\n // eslint-disable-next-line no-undefined\n return undefined;\n }\n\n closeAllNodes() {\n while (this.closeNode());\n }\n\n toJSON() {\n return JSON.stringify(this.rootNode, null, 4);\n }\n\n /**\n * @typedef { import(\"./html_renderer\").Renderer } Renderer\n * @param {Renderer} builder\n */\n walk(builder) {\n // this does not\n return this.constructor._walk(builder, this.rootNode);\n // this works\n // return TokenTree._walk(builder, this.rootNode);\n }\n\n /**\n * @param {Renderer} builder\n * @param {Node} node\n */\n static _walk(builder, node) {\n if (typeof node === \"string\") {\n builder.addText(node);\n } else if (node.children) {\n builder.openNode(node);\n node.children.forEach((child) => this._walk(builder, child));\n builder.closeNode(node);\n }\n return builder;\n }\n\n /**\n * @param {Node} node\n */\n static _collapse(node) {\n if (typeof node === \"string\") return;\n if (!node.children) return;\n\n if (node.children.every(el => typeof el === \"string\")) {\n // node.text = node.children.join(\"\");\n // delete node.children;\n node.children = [node.children.join(\"\")];\n } else {\n node.children.forEach((child) => {\n TokenTree._collapse(child);\n });\n }\n }\n}\n\n/**\n Currently this is all private API, but this is the minimal API necessary\n that an Emitter must implement to fully support the parser.\n\n Minimal interface:\n\n - addKeyword(text, kind)\n - addText(text)\n - addSublanguage(emitter, subLanguageName)\n - finalize()\n - openNode(kind)\n - closeNode()\n - closeAllNodes()\n - toHTML()\n\n*/\n\n/**\n * @implements {Emitter}\n */\nclass TokenTreeEmitter extends TokenTree {\n /**\n * @param {*} options\n */\n constructor(options) {\n super();\n this.options = options;\n }\n\n /**\n * @param {string} text\n * @param {string} kind\n */\n addKeyword(text, kind) {\n if (text === \"\") { return; }\n\n this.openNode(kind);\n this.addText(text);\n this.closeNode();\n }\n\n /**\n * @param {string} text\n */\n addText(text) {\n if (text === \"\") { return; }\n\n this.add(text);\n }\n\n /**\n * @param {Emitter & {root: DataNode}} emitter\n * @param {string} name\n */\n addSublanguage(emitter, name) {\n /** @type DataNode */\n const node = emitter.root;\n node.kind = name;\n node.sublanguage = true;\n this.add(node);\n }\n\n toHTML() {\n const renderer = new HTMLRenderer(this, this.options);\n return renderer.value();\n }\n\n finalize() {\n return true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n return concat('(?=', re, ')');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction anyNumberOfTimes(re) {\n return concat('(?:', re, ')*');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction optional(re) {\n return concat('(?:', re, ')?');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/**\n * @param { Array<string | RegExp | Object> } args\n * @returns {object}\n */\nfunction stripOptionsFromArgs(args) {\n const opts = args[args.length - 1];\n\n if (typeof opts === 'object' && opts.constructor === Object) {\n args.splice(args.length - 1, 1);\n return opts;\n } else {\n return {};\n }\n}\n\n/** @typedef { {capture?: boolean} } RegexEitherOptions */\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] | [...(RegExp | string)[], RegexEitherOptions]} args\n * @returns {string}\n */\nfunction either(...args) {\n /** @type { object & {capture?: boolean} } */\n const opts = stripOptionsFromArgs(args);\n const joined = '('\n + (opts.capture ? \"\" : \"?:\")\n + args.map((x) => source(x)).join(\"|\") + \")\";\n return joined;\n}\n\n/**\n * @param {RegExp | string} re\n * @returns {number}\n */\nfunction countMatchGroups(re) {\n return (new RegExp(re.toString() + '|')).exec('').length - 1;\n}\n\n/**\n * Does lexeme start with a regular expression match at the beginning\n * @param {RegExp} re\n * @param {string} lexeme\n */\nfunction startsWith(re, lexeme) {\n const match = re && re.exec(lexeme);\n return match && match.index === 0;\n}\n\n// BACKREF_RE matches an open parenthesis or backreference. To avoid\n// an incorrect parse, it additionally matches the following:\n// - [...] elements, where the meaning of parentheses and escapes change\n// - other escape sequences, so we do not misparse escape sequences as\n// interesting elements\n// - non-matching or lookahead parentheses, which do not capture. These\n// follow the '(' with a '?'.\nconst BACKREF_RE = /\\[(?:[^\\\\\\]]|\\\\.)*\\]|\\(\\??|\\\\([1-9][0-9]*)|\\\\./;\n\n// **INTERNAL** Not intended for outside usage\n// join logically computes regexps.join(separator), but fixes the\n// backreferences so they continue to match.\n// it also places each individual regular expression into it's own\n// match group, keeping track of the sequencing of those match groups\n// is currently an exercise for the caller. :-)\n/**\n * @param {(string | RegExp)[]} regexps\n * @param {{joinWith: string}} opts\n * @returns {string}\n */\nfunction _rewriteBackreferences(regexps, { joinWith }) {\n let numCaptures = 0;\n\n return regexps.map((regex) => {\n numCaptures += 1;\n const offset = numCaptures;\n let re = source(regex);\n let out = '';\n\n while (re.length > 0) {\n const match = BACKREF_RE.exec(re);\n if (!match) {\n out += re;\n break;\n }\n out += re.substring(0, match.index);\n re = re.substring(match.index + match[0].length);\n if (match[0][0] === '\\\\' && match[1]) {\n // Adjust the backreference.\n out += '\\\\' + String(Number(match[1]) + offset);\n } else {\n out += match[0];\n if (match[0] === '(') {\n numCaptures++;\n }\n }\n }\n return out;\n }).map(re => `(${re})`).join(joinWith);\n}\n\n/** @typedef {import('highlight.js').Mode} Mode */\n/** @typedef {import('highlight.js').ModeCallback} ModeCallback */\n\n// Common regexps\nconst MATCH_NOTHING_RE = /\\b\\B/;\nconst IDENT_RE = '[a-zA-Z]\\\\w*';\nconst UNDERSCORE_IDENT_RE = '[a-zA-Z_]\\\\w*';\nconst NUMBER_RE = '\\\\b\\\\d+(\\\\.\\\\d+)?';\nconst C_NUMBER_RE = '(-?)(\\\\b0[xX][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)'; // 0x..., 0..., decimal, float\nconst BINARY_NUMBER_RE = '\\\\b(0b[01]+)'; // 0b...\nconst RE_STARTERS_RE = '!|!=|!==|%|%=|&|&&|&=|\\\\*|\\\\*=|\\\\+|\\\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\\\?|\\\\[|\\\\{|\\\\(|\\\\^|\\\\^=|\\\\||\\\\|=|\\\\|\\\\||~';\n\n/**\n* @param { Partial<Mode> & {binary?: string | RegExp} } opts\n*/\nconst SHEBANG = (opts = {}) => {\n const beginShebang = /^#![ ]*\\//;\n if (opts.binary) {\n opts.begin = concat(\n beginShebang,\n /.*\\b/,\n opts.binary,\n /\\b.*/);\n }\n return inherit$1({\n scope: 'meta',\n begin: beginShebang,\n end: /$/,\n relevance: 0,\n /** @type {ModeCallback} */\n \"on:begin\": (m, resp) => {\n if (m.index !== 0) resp.ignoreMatch();\n }\n }, opts);\n};\n\n// Common modes\nconst BACKSLASH_ESCAPE = {\n begin: '\\\\\\\\[\\\\s\\\\S]', relevance: 0\n};\nconst APOS_STRING_MODE = {\n scope: 'string',\n begin: '\\'',\n end: '\\'',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst QUOTE_STRING_MODE = {\n scope: 'string',\n begin: '\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst PHRASAL_WORDS_MODE = {\n begin: /\\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\\b/\n};\n/**\n * Creates a comment mode\n *\n * @param {string | RegExp} begin\n * @param {string | RegExp} end\n * @param {Mode | {}} [modeOptions]\n * @returns {Partial<Mode>}\n */\nconst COMMENT = function(begin, end, modeOptions = {}) {\n const mode = inherit$1(\n {\n scope: 'comment',\n begin,\n end,\n contains: []\n },\n modeOptions\n );\n mode.contains.push({\n scope: 'doctag',\n // hack to avoid the space from being included. the space is necessary to\n // match here to prevent the plain text rule below from gobbling up doctags\n begin: '[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)',\n end: /(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,\n excludeBegin: true,\n relevance: 0\n });\n const ENGLISH_WORD = either(\n // list of common 1 and 2 letter words in English\n \"I\",\n \"a\",\n \"is\",\n \"so\",\n \"us\",\n \"to\",\n \"at\",\n \"if\",\n \"in\",\n \"it\",\n \"on\",\n // note: this is not an exhaustive list of contractions, just popular ones\n /[A-Za-z]+['](d|ve|re|ll|t|s|n)/, // contractions - can't we'd they're let's, etc\n /[A-Za-z]+[-][a-z]+/, // `no-way`, etc.\n /[A-Za-z][a-z]{2,}/ // allow capitalized words at beginning of sentences\n );\n // looking like plain text, more likely to be a comment\n mode.contains.push(\n {\n // TODO: how to include \", (, ) without breaking grammars that use these for\n // comment delimiters?\n // begin: /[ ]+([()\"]?([A-Za-z'-]{3,}|is|a|I|so|us|[tT][oO]|at|if|in|it|on)[.]?[()\":]?([.][ ]|[ ]|\\))){3}/\n // ---\n\n // this tries to find sequences of 3 english words in a row (without any\n // \"programming\" type syntax) this gives us a strong signal that we've\n // TRULY found a comment - vs perhaps scanning with the wrong language.\n // It's possible to find something that LOOKS like the start of the\n // comment - but then if there is no readable text - good chance it is a\n // false match and not a comment.\n //\n // for a visual example please see:\n // https://github.com/highlightjs/highlight.js/issues/2827\n\n begin: concat(\n /[ ]+/, // necessary to prevent us gobbling up doctags like /* @author Bob Mcgill */\n '(',\n ENGLISH_WORD,\n /[.]?[:]?([.][ ]|[ ])/,\n '){3}') // look for 3 words in a row\n }\n );\n return mode;\n};\nconst C_LINE_COMMENT_MODE = COMMENT('//', '$');\nconst C_BLOCK_COMMENT_MODE = COMMENT('/\\\\*', '\\\\*/');\nconst HASH_COMMENT_MODE = COMMENT('#', '$');\nconst NUMBER_MODE = {\n scope: 'number',\n begin: NUMBER_RE,\n relevance: 0\n};\nconst C_NUMBER_MODE = {\n scope: 'number',\n begin: C_NUMBER_RE,\n relevance: 0\n};\nconst BINARY_NUMBER_MODE = {\n scope: 'number',\n begin: BINARY_NUMBER_RE,\n relevance: 0\n};\nconst REGEXP_MODE = {\n // this outer rule makes sure we actually have a WHOLE regex and not simply\n // an expression such as:\n //\n // 3 / something\n //\n // (which will then blow up when regex's `illegal` sees the newline)\n begin: /(?=\\/[^/\\n]*\\/)/,\n contains: [{\n scope: 'regexp',\n begin: /\\//,\n end: /\\/[gimuy]*/,\n illegal: /\\n/,\n contains: [\n BACKSLASH_ESCAPE,\n {\n begin: /\\[/,\n end: /\\]/,\n relevance: 0,\n contains: [BACKSLASH_ESCAPE]\n }\n ]\n }]\n};\nconst TITLE_MODE = {\n scope: 'title',\n begin: IDENT_RE,\n relevance: 0\n};\nconst UNDERSCORE_TITLE_MODE = {\n scope: 'title',\n begin: UNDERSCORE_IDENT_RE,\n relevance: 0\n};\nconst METHOD_GUARD = {\n // excludes method names from keyword processing\n begin: '\\\\.\\\\s*' + UNDERSCORE_IDENT_RE,\n relevance: 0\n};\n\n/**\n * Adds end same as begin mechanics to a mode\n *\n * Your mode must include at least a single () match group as that first match\n * group is what is used for comparison\n * @param {Partial<Mode>} mode\n */\nconst END_SAME_AS_BEGIN = function(mode) {\n return Object.assign(mode,\n {\n /** @type {ModeCallback} */\n 'on:begin': (m, resp) => { resp.data._beginMatch = m[1]; },\n /** @type {ModeCallback} */\n 'on:end': (m, resp) => { if (resp.data._beginMatch !== m[1]) resp.ignoreMatch(); }\n });\n};\n\nvar MODES = /*#__PURE__*/Object.freeze({\n __proto__: null,\n MATCH_NOTHING_RE: MATCH_NOTHING_RE,\n IDENT_RE: IDENT_RE,\n UNDERSCORE_IDENT_RE: UNDERSCORE_IDENT_RE,\n NUMBER_RE: NUMBER_RE,\n C_NUMBER_RE: C_NUMBER_RE,\n BINARY_NUMBER_RE: BINARY_NUMBER_RE,\n RE_STARTERS_RE: RE_STARTERS_RE,\n SHEBANG: SHEBANG,\n BACKSLASH_ESCAPE: BACKSLASH_ESCAPE,\n APOS_STRING_MODE: APOS_STRING_MODE,\n QUOTE_STRING_MODE: QUOTE_STRING_MODE,\n PHRASAL_WORDS_MODE: PHRASAL_WORDS_MODE,\n COMMENT: COMMENT,\n C_LINE_COMMENT_MODE: C_LINE_COMMENT_MODE,\n C_BLOCK_COMMENT_MODE: C_BLOCK_COMMENT_MODE,\n HASH_COMMENT_MODE: HASH_COMMENT_MODE,\n NUMBER_MODE: NUMBER_MODE,\n C_NUMBER_MODE: C_NUMBER_MODE,\n BINARY_NUMBER_MODE: BINARY_NUMBER_MODE,\n REGEXP_MODE: REGEXP_MODE,\n TITLE_MODE: TITLE_MODE,\n UNDERSCORE_TITLE_MODE: UNDERSCORE_TITLE_MODE,\n METHOD_GUARD: METHOD_GUARD,\n END_SAME_AS_BEGIN: END_SAME_AS_BEGIN\n});\n\n/**\n@typedef {import('highlight.js').CallbackResponse} CallbackResponse\n@typedef {import('highlight.js').CompilerExt} CompilerExt\n*/\n\n// Grammar extensions / plugins\n// See: https://github.com/highlightjs/highlight.js/issues/2833\n\n// Grammar extensions allow \"syntactic sugar\" to be added to the grammar modes\n// without requiring any underlying changes to the compiler internals.\n\n// `compileMatch` being the perfect small example of now allowing a grammar\n// author to write `match` when they desire to match a single expression rather\n// than being forced to use `begin`. The extension then just moves `match` into\n// `begin` when it runs. Ie, no features have been added, but we've just made\n// the experience of writing (and reading grammars) a little bit nicer.\n\n// ------\n\n// TODO: We need negative look-behind support to do this properly\n/**\n * Skip a match if it has a preceding dot\n *\n * This is used for `beginKeywords` to prevent matching expressions such as\n * `bob.keyword.do()`. The mode compiler automatically wires this up as a\n * special _internal_ 'on:begin' callback for modes with `beginKeywords`\n * @param {RegExpMatchArray} match\n * @param {CallbackResponse} response\n */\nfunction skipIfHasPrecedingDot(match, response) {\n const before = match.input[match.index - 1];\n if (before === \".\") {\n response.ignoreMatch();\n }\n}\n\n/**\n *\n * @type {CompilerExt}\n */\nfunction scopeClassName(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.className !== undefined) {\n mode.scope = mode.className;\n delete mode.className;\n }\n}\n\n/**\n * `beginKeywords` syntactic sugar\n * @type {CompilerExt}\n */\nfunction beginKeywords(mode, parent) {\n if (!parent) return;\n if (!mode.beginKeywords) return;\n\n // for languages with keywords that include non-word characters checking for\n // a word boundary is not sufficient, so instead we check for a word boundary\n // or whitespace - this does no harm in any case since our keyword engine\n // doesn't allow spaces in keywords anyways and we still check for the boundary\n // first\n mode.begin = '\\\\b(' + mode.beginKeywords.split(' ').join('|') + ')(?!\\\\.)(?=\\\\b|\\\\s)';\n mode.__beforeBegin = skipIfHasPrecedingDot;\n mode.keywords = mode.keywords || mode.beginKeywords;\n delete mode.beginKeywords;\n\n // prevents double relevance, the keywords themselves provide\n // relevance, the mode doesn't need to double it\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 0;\n}\n\n/**\n * Allow `illegal` to contain an array of illegal values\n * @type {CompilerExt}\n */\nfunction compileIllegal(mode, _parent) {\n if (!Array.isArray(mode.illegal)) return;\n\n mode.illegal = either(...mode.illegal);\n}\n\n/**\n * `match` to match a single expression for readability\n * @type {CompilerExt}\n */\nfunction compileMatch(mode, _parent) {\n if (!mode.match) return;\n if (mode.begin || mode.end) throw new Error(\"begin & end are not supported with match\");\n\n mode.begin = mode.match;\n delete mode.match;\n}\n\n/**\n * provides the default 1 relevance to all modes\n * @type {CompilerExt}\n */\nfunction compileRelevance(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 1;\n}\n\n// allow beforeMatch to act as a \"qualifier\" for the match\n// the full match begin must be [beforeMatch][begin]\nconst beforeMatchExt = (mode, parent) => {\n if (!mode.beforeMatch) return;\n // starts conflicts with endsParent which we need to make sure the child\n // rule is not matched multiple times\n if (mode.starts) throw new Error(\"beforeMatch cannot be used with starts\");\n\n const originalMode = Object.assign({}, mode);\n Object.keys(mode).forEach((key) => { delete mode[key]; });\n\n mode.keywords = originalMode.keywords;\n mode.begin = concat(originalMode.beforeMatch, lookahead(originalMode.begin));\n mode.starts = {\n relevance: 0,\n contains: [\n Object.assign(originalMode, { endsParent: true })\n ]\n };\n mode.relevance = 0;\n\n delete originalMode.beforeMatch;\n};\n\n// keywords that should have no default relevance value\nconst COMMON_KEYWORDS = [\n 'of',\n 'and',\n 'for',\n 'in',\n 'not',\n 'or',\n 'if',\n 'then',\n 'parent', // common variable name\n 'list', // common variable name\n 'value' // common variable name\n];\n\nconst DEFAULT_KEYWORD_SCOPE = \"keyword\";\n\n/**\n * Given raw keywords from a language definition, compile them.\n *\n * @param {string | Record<string,string|string[]> | Array<string>} rawKeywords\n * @param {boolean} caseInsensitive\n */\nfunction compileKeywords(rawKeywords, caseInsensitive, scopeName = DEFAULT_KEYWORD_SCOPE) {\n /** @type KeywordDict */\n const compiledKeywords = Object.create(null);\n\n // input can be a string of keywords, an array of keywords, or a object with\n // named keys representing scopeName (which can then point to a string or array)\n if (typeof rawKeywords === 'string') {\n compileList(scopeName, rawKeywords.split(\" \"));\n } else if (Array.isArray(rawKeywords)) {\n compileList(scopeName, rawKeywords);\n } else {\n Object.keys(rawKeywords).forEach(function(scopeName) {\n // collapse all our objects back into the parent object\n Object.assign(\n compiledKeywords,\n compileKeywords(rawKeywords[scopeName], caseInsensitive, scopeName)\n );\n });\n }\n return compiledKeywords;\n\n // ---\n\n /**\n * Compiles an individual list of keywords\n *\n * Ex: \"for if when while|5\"\n *\n * @param {string} scopeName\n * @param {Array<string>} keywordList\n */\n function compileList(scopeName, keywordList) {\n if (caseInsensitive) {\n keywordList = keywordList.map(x => x.toLowerCase());\n }\n keywordList.forEach(function(keyword) {\n const pair = keyword.split('|');\n compiledKeywords[pair[0]] = [scopeName, scoreForKeyword(pair[0], pair[1])];\n });\n }\n}\n\n/**\n * Returns the proper score for a given keyword\n *\n * Also takes into account comment keywords, which will be scored 0 UNLESS\n * another score has been manually assigned.\n * @param {string} keyword\n * @param {string} [providedScore]\n */\nfunction scoreForKeyword(keyword, providedScore) {\n // manual scores always win over common keywords\n // so you can force a score of 1 if you really insist\n if (providedScore) {\n return Number(providedScore);\n }\n\n return commonKeyword(keyword) ? 0 : 1;\n}\n\n/**\n * Determines if a given keyword is common or not\n *\n * @param {string} keyword */\nfunction commonKeyword(keyword) {\n return COMMON_KEYWORDS.includes(keyword.toLowerCase());\n}\n\n/*\n\nFor the reasoning behind this please see:\nhttps://github.com/highlightjs/highlight.js/issues/2880#issuecomment-747275419\n\n*/\n\n/**\n * @type {Record<string, boolean>}\n */\nconst seenDeprecations = {};\n\n/**\n * @param {string} message\n */\nconst error = (message) => {\n console.error(message);\n};\n\n/**\n * @param {string} message\n * @param {any} args\n */\nconst warn = (message, ...args) => {\n console.log(`WARN: ${message}`, ...args);\n};\n\n/**\n * @param {string} version\n * @param {string} message\n */\nconst deprecated = (version, message) => {\n if (seenDeprecations[`${version}/${message}`]) return;\n\n console.log(`Deprecated as of ${version}. ${message}`);\n seenDeprecations[`${version}/${message}`] = true;\n};\n\n/* eslint-disable no-throw-literal */\n\n/**\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n*/\n\nconst MultiClassError = new Error();\n\n/**\n * Renumbers labeled scope names to account for additional inner match\n * groups that otherwise would break everything.\n *\n * Lets say we 3 match scopes:\n *\n * { 1 => ..., 2 => ..., 3 => ... }\n *\n * So what we need is a clean match like this:\n *\n * (a)(b)(c) => [ \"a\", \"b\", \"c\" ]\n *\n * But this falls apart with inner match groups:\n *\n * (a)(((b)))(c) => [\"a\", \"b\", \"b\", \"b\", \"c\" ]\n *\n * Our scopes are now \"out of alignment\" and we're repeating `b` 3 times.\n * What needs to happen is the numbers are remapped:\n *\n * { 1 => ..., 2 => ..., 5 => ... }\n *\n * We also need to know that the ONLY groups that should be output\n * are 1, 2, and 5. This function handles this behavior.\n *\n * @param {CompiledMode} mode\n * @param {Array<RegExp | string>} regexes\n * @param {{key: \"beginScope\"|\"endScope\"}} opts\n */\nfunction remapScopeNames(mode, regexes, { key }) {\n let offset = 0;\n const scopeNames = mode[key];\n /** @type Record<number,boolean> */\n const emit = {};\n /** @type Record<number,string> */\n const positions = {};\n\n for (let i = 1; i <= regexes.length; i++) {\n positions[i + offset] = scopeNames[i];\n emit[i + offset] = true;\n offset += countMatchGroups(regexes[i - 1]);\n }\n // we use _emit to keep track of which match groups are \"top-level\" to avoid double\n // output from inside match groups\n mode[key] = positions;\n mode[key]._emit = emit;\n mode[key]._multi = true;\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction beginMultiClass(mode) {\n if (!Array.isArray(mode.begin)) return;\n\n if (mode.skip || mode.excludeBegin || mode.returnBegin) {\n error(\"skip, excludeBegin, returnBegin not compatible with beginScope: {}\");\n throw MultiClassError;\n }\n\n if (typeof mode.beginScope !== \"object\" || mode.beginScope === null) {\n error(\"beginScope must be object\");\n throw MultiClassError;\n }\n\n remapScopeNames(mode, mode.begin, { key: \"beginScope\" });\n mode.begin = _rewriteBackreferences(mode.begin, { joinWith: \"\" });\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction endMultiClass(mode) {\n if (!Array.isArray(mode.end)) return;\n\n if (mode.skip || mode.excludeEnd || mode.returnEnd) {\n error(\"skip, excludeEnd, returnEnd not compatible with endScope: {}\");\n throw MultiClassError;\n }\n\n if (typeof mode.endScope !== \"object\" || mode.endScope === null) {\n error(\"endScope must be object\");\n throw MultiClassError;\n }\n\n remapScopeNames(mode, mode.end, { key: \"endScope\" });\n mode.end = _rewriteBackreferences(mode.end, { joinWith: \"\" });\n}\n\n/**\n * this exists only to allow `scope: {}` to be used beside `match:`\n * Otherwise `beginScope` would necessary and that would look weird\n\n {\n match: [ /def/, /\\w+/ ]\n scope: { 1: \"keyword\" , 2: \"title\" }\n }\n\n * @param {CompiledMode} mode\n */\nfunction scopeSugar(mode) {\n if (mode.scope && typeof mode.scope === \"object\" && mode.scope !== null) {\n mode.beginScope = mode.scope;\n delete mode.scope;\n }\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction MultiClass(mode) {\n scopeSugar(mode);\n\n if (typeof mode.beginScope === \"string\") {\n mode.beginScope = { _wrap: mode.beginScope };\n }\n if (typeof mode.endScope === \"string\") {\n mode.endScope = { _wrap: mode.endScope };\n }\n\n beginMultiClass(mode);\n endMultiClass(mode);\n}\n\n/**\n@typedef {import('highlight.js').Mode} Mode\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n@typedef {import('highlight.js').Language} Language\n@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin\n@typedef {import('highlight.js').CompiledLanguage} CompiledLanguage\n*/\n\n// compilation\n\n/**\n * Compiles a language definition result\n *\n * Given the raw result of a language definition (Language), compiles this so\n * that it is ready for highlighting code.\n * @param {Language} language\n * @returns {CompiledLanguage}\n */\nfunction compileLanguage(language) {\n /**\n * Builds a regex with the case sensitivity of the current language\n *\n * @param {RegExp | string} value\n * @param {boolean} [global]\n */\n function langRe(value, global) {\n return new RegExp(\n source(value),\n 'm'\n + (language.case_insensitive ? 'i' : '')\n + (language.unicodeRegex ? 'u' : '')\n + (global ? 'g' : '')\n );\n }\n\n /**\n Stores multiple regular expressions and allows you to quickly search for\n them all in a string simultaneously - returning the first match. It does\n this by creating a huge (a|b|c) regex - each individual item wrapped with ()\n and joined by `|` - using match groups to track position. When a match is\n found checking which position in the array has content allows us to figure\n out which of the original regexes / match groups triggered the match.\n\n The match object itself (the result of `Regex.exec`) is returned but also\n enhanced by merging in any meta-data that was registered with the regex.\n This is how we keep track of which mode matched, and what type of rule\n (`illegal`, `begin`, end, etc).\n */\n class MultiRegex {\n constructor() {\n this.matchIndexes = {};\n // @ts-ignore\n this.regexes = [];\n this.matchAt = 1;\n this.position = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n opts.position = this.position++;\n // @ts-ignore\n this.matchIndexes[this.matchAt] = opts;\n this.regexes.push([opts, re]);\n this.matchAt += countMatchGroups(re) + 1;\n }\n\n compile() {\n if (this.regexes.length === 0) {\n // avoids the need to check length every time exec is called\n // @ts-ignore\n this.exec = () => null;\n }\n const terminators = this.regexes.map(el => el[1]);\n this.matcherRe = langRe(_rewriteBackreferences(terminators, { joinWith: '|' }), true);\n this.lastIndex = 0;\n }\n\n /** @param {string} s */\n exec(s) {\n this.matcherRe.lastIndex = this.lastIndex;\n const match = this.matcherRe.exec(s);\n if (!match) { return null; }\n\n // eslint-disable-next-line no-undefined\n const i = match.findIndex((el, i) => i > 0 && el !== undefined);\n // @ts-ignore\n const matchData = this.matchIndexes[i];\n // trim off any earlier non-relevant match groups (ie, the other regex\n // match groups that make up the multi-matcher)\n match.splice(0, i);\n\n return Object.assign(match, matchData);\n }\n }\n\n /*\n Created to solve the key deficiently with MultiRegex - there is no way to\n test for multiple matches at a single location. Why would we need to do\n that? In the future a more dynamic engine will allow certain matches to be\n ignored. An example: if we matched say the 3rd regex in a large group but\n decided to ignore it - we'd need to started testing again at the 4th\n regex... but MultiRegex itself gives us no real way to do that.\n\n So what this class creates MultiRegexs on the fly for whatever search\n position they are needed.\n\n NOTE: These additional MultiRegex objects are created dynamically. For most\n grammars most of the time we will never actually need anything more than the\n first MultiRegex - so this shouldn't have too much overhead.\n\n Say this is our search group, and we match regex3, but wish to ignore it.\n\n regex1 | regex2 | regex3 | regex4 | regex5 ' ie, startAt = 0\n\n What we need is a new MultiRegex that only includes the remaining\n possibilities:\n\n regex4 | regex5 ' ie, startAt = 3\n\n This class wraps all that complexity up in a simple API... `startAt` decides\n where in the array of expressions to start doing the matching. It\n auto-increments, so if a match is found at position 2, then startAt will be\n set to 3. If the end is reached startAt will return to 0.\n\n MOST of the time the parser will be setting startAt manually to 0.\n */\n class ResumableMultiRegex {\n constructor() {\n // @ts-ignore\n this.rules = [];\n // @ts-ignore\n this.multiRegexes = [];\n this.count = 0;\n\n this.lastIndex = 0;\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n getMatcher(index) {\n if (this.multiRegexes[index]) return this.multiRegexes[index];\n\n const matcher = new MultiRegex();\n this.rules.slice(index).forEach(([re, opts]) => matcher.addRule(re, opts));\n matcher.compile();\n this.multiRegexes[index] = matcher;\n return matcher;\n }\n\n resumingScanAtSamePosition() {\n return this.regexIndex !== 0;\n }\n\n considerAll() {\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n this.rules.push([re, opts]);\n if (opts.type === \"begin\") this.count++;\n }\n\n /** @param {string} s */\n exec(s) {\n const m = this.getMatcher(this.regexIndex);\n m.lastIndex = this.lastIndex;\n let result = m.exec(s);\n\n // The following is because we have no easy way to say \"resume scanning at the\n // existing position but also skip the current rule ONLY\". What happens is\n // all prior rules are also skipped which can result in matching the wrong\n // thing. Example of matching \"booger\":\n\n // our matcher is [string, \"booger\", number]\n //\n // ....booger....\n\n // if \"booger\" is ignored then we'd really need a regex to scan from the\n // SAME position for only: [string, number] but ignoring \"booger\" (if it\n // was the first match), a simple resume would scan ahead who knows how\n // far looking only for \"number\", ignoring potential string matches (or\n // future \"booger\" matches that might be valid.)\n\n // So what we do: We execute two matchers, one resuming at the same\n // position, but the second full matcher starting at the position after:\n\n // /--- resume first regex match here (for [number])\n // |/---- full match here for [string, \"booger\", number]\n // vv\n // ....booger....\n\n // Which ever results in a match first is then used. So this 3-4 step\n // process essentially allows us to say \"match at this position, excluding\n // a prior rule that was ignored\".\n //\n // 1. Match \"booger\" first, ignore. Also proves that [string] does non match.\n // 2. Resume matching for [number]\n // 3. Match at index + 1 for [string, \"booger\", number]\n // 4. If #2 and #3 result in matches, which came first?\n if (this.resumingScanAtSamePosition()) {\n if (result && result.index === this.lastIndex) ; else { // use the second matcher result\n const m2 = this.getMatcher(0);\n m2.lastIndex = this.lastIndex + 1;\n result = m2.exec(s);\n }\n }\n\n if (result) {\n this.regexIndex += result.position + 1;\n if (this.regexIndex === this.count) {\n // wrap-around to considering all matches again\n this.considerAll();\n }\n }\n\n return result;\n }\n }\n\n /**\n * Given a mode, builds a huge ResumableMultiRegex that can be used to walk\n * the content and find matches.\n *\n * @param {CompiledMode} mode\n * @returns {ResumableMultiRegex}\n */\n function buildModeRegex(mode) {\n const mm = new ResumableMultiRegex();\n\n mode.contains.forEach(term => mm.addRule(term.begin, { rule: term, type: \"begin\" }));\n\n if (mode.terminatorEnd) {\n mm.addRule(mode.terminatorEnd, { type: \"end\" });\n }\n if (mode.illegal) {\n mm.addRule(mode.illegal, { type: \"illegal\" });\n }\n\n return mm;\n }\n\n /** skip vs abort vs ignore\n *\n * @skip - The mode is still entered and exited normally (and contains rules apply),\n * but all content is held and added to the parent buffer rather than being\n * output when the mode ends. Mostly used with `sublanguage` to build up\n * a single large buffer than can be parsed by sublanguage.\n *\n * - The mode begin ands ends normally.\n * - Content matched is added to the parent mode buffer.\n * - The parser cursor is moved forward normally.\n *\n * @abort - A hack placeholder until we have ignore. Aborts the mode (as if it\n * never matched) but DOES NOT continue to match subsequent `contains`\n * modes. Abort is bad/suboptimal because it can result in modes\n * farther down not getting applied because an earlier rule eats the\n * content but then aborts.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is added to the mode buffer.\n * - The parser cursor is moved forward accordingly.\n *\n * @ignore - Ignores the mode (as if it never matched) and continues to match any\n * subsequent `contains` modes. Ignore isn't technically possible with\n * the current parser implementation.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is ignored.\n * - The parser cursor is not moved forward.\n */\n\n /**\n * Compiles an individual mode\n *\n * This can raise an error if the mode contains certain detectable known logic\n * issues.\n * @param {Mode} mode\n * @param {CompiledMode | null} [parent]\n * @returns {CompiledMode | never}\n */\n function compileMode(mode, parent) {\n const cmode = /** @type CompiledMode */ (mode);\n if (mode.isCompiled) return cmode;\n\n [\n scopeClassName,\n // do this early so compiler extensions generally don't have to worry about\n // the distinction between match/begin\n compileMatch,\n MultiClass,\n beforeMatchExt\n ].forEach(ext => ext(mode, parent));\n\n language.compilerExtensions.forEach(ext => ext(mode, parent));\n\n // __beforeBegin is considered private API, internal use only\n mode.__beforeBegin = null;\n\n [\n beginKeywords,\n // do this later so compiler extensions that come earlier have access to the\n // raw array if they wanted to perhaps manipulate it, etc.\n compileIllegal,\n // default to 1 relevance if not specified\n compileRelevance\n ].forEach(ext => ext(mode, parent));\n\n mode.isCompiled = true;\n\n let keywordPattern = null;\n if (typeof mode.keywords === \"object\" && mode.keywords.$pattern) {\n // we need a copy because keywords might be compiled multiple times\n // so we can't go deleting $pattern from the original on the first\n // pass\n mode.keywords = Object.assign({}, mode.keywords);\n keywordPattern = mode.keywords.$pattern;\n delete mode.keywords.$pattern;\n }\n keywordPattern = keywordPattern || /\\w+/;\n\n if (mode.keywords) {\n mode.keywords = compileKeywords(mode.keywords, language.case_insensitive);\n }\n\n cmode.keywordPatternRe = langRe(keywordPattern, true);\n\n if (parent) {\n if (!mode.begin) mode.begin = /\\B|\\b/;\n cmode.beginRe = langRe(cmode.begin);\n if (!mode.end && !mode.endsWithParent) mode.end = /\\B|\\b/;\n if (mode.end) cmode.endRe = langRe(cmode.end);\n cmode.terminatorEnd = source(cmode.end) || '';\n if (mode.endsWithParent && parent.terminatorEnd) {\n cmode.terminatorEnd += (mode.end ? '|' : '') + parent.terminatorEnd;\n }\n }\n if (mode.illegal) cmode.illegalRe = langRe(/** @type {RegExp | string} */ (mode.illegal));\n if (!mode.contains) mode.contains = [];\n\n mode.contains = [].concat(...mode.contains.map(function(c) {\n return expandOrCloneMode(c === 'self' ? mode : c);\n }));\n mode.contains.forEach(function(c) { compileMode(/** @type Mode */ (c), cmode); });\n\n if (mode.starts) {\n compileMode(mode.starts, parent);\n }\n\n cmode.matcher = buildModeRegex(cmode);\n return cmode;\n }\n\n if (!language.compilerExtensions) language.compilerExtensions = [];\n\n // self is not valid at the top-level\n if (language.contains && language.contains.includes('self')) {\n throw new Error(\"ERR: contains `self` is not supported at the top-level of a language. See documentation.\");\n }\n\n // we need a null object, which inherit will guarantee\n language.classNameAliases = inherit$1(language.classNameAliases || {});\n\n return compileMode(/** @type Mode */ (language));\n}\n\n/**\n * Determines if a mode has a dependency on it's parent or not\n *\n * If a mode does have a parent dependency then often we need to clone it if\n * it's used in multiple places so that each copy points to the correct parent,\n * where-as modes without a parent can often safely be re-used at the bottom of\n * a mode chain.\n *\n * @param {Mode | null} mode\n * @returns {boolean} - is there a dependency on the parent?\n * */\nfunction dependencyOnParent(mode) {\n if (!mode) return false;\n\n return mode.endsWithParent || dependencyOnParent(mode.starts);\n}\n\n/**\n * Expands a mode or clones it if necessary\n *\n * This is necessary for modes with parental dependenceis (see notes on\n * `dependencyOnParent`) and for nodes that have `variants` - which must then be\n * exploded into their own individual modes at compile time.\n *\n * @param {Mode} mode\n * @returns {Mode | Mode[]}\n * */\nfunction expandOrCloneMode(mode) {\n if (mode.variants && !mode.cachedVariants) {\n mode.cachedVariants = mode.variants.map(function(variant) {\n return inherit$1(mode, { variants: null }, variant);\n });\n }\n\n // EXPAND\n // if we have variants then essentially \"replace\" the mode with the variants\n // this happens in compileMode, where this function is called from\n if (mode.cachedVariants) {\n return mode.cachedVariants;\n }\n\n // CLONE\n // if we have dependencies on parents then we need a unique\n // instance of ourselves, so we can be reused with many\n // different parents without issue\n if (dependencyOnParent(mode)) {\n return inherit$1(mode, { starts: mode.starts ? inherit$1(mode.starts) : null });\n }\n\n if (Object.isFrozen(mode)) {\n return inherit$1(mode);\n }\n\n // no special dependency issues, just return ourselves\n return mode;\n}\n\nvar version = \"11.5.1\";\n\nclass HTMLInjectionError extends Error {\n constructor(reason, html) {\n super(reason);\n this.name = \"HTMLInjectionError\";\n this.html = html;\n }\n}\n\n/*\nSyntax highlighting with language autodetection.\nhttps://highlightjs.org/\n*/\n\n/**\n@typedef {import('highlight.js').Mode} Mode\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n@typedef {import('highlight.js').CompiledScope} CompiledScope\n@typedef {import('highlight.js').Language} Language\n@typedef {import('highlight.js').HLJSApi} HLJSApi\n@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin\n@typedef {import('highlight.js').PluginEvent} PluginEvent\n@typedef {import('highlight.js').HLJSOptions} HLJSOptions\n@typedef {import('highlight.js').LanguageFn} LanguageFn\n@typedef {import('highlight.js').HighlightedHTMLElement} HighlightedHTMLElement\n@typedef {import('highlight.js').BeforeHighlightContext} BeforeHighlightContext\n@typedef {import('highlight.js/private').MatchType} MatchType\n@typedef {import('highlight.js/private').KeywordData} KeywordData\n@typedef {import('highlight.js/private').EnhancedMatch} EnhancedMatch\n@typedef {import('highlight.js/private').AnnotatedError} AnnotatedError\n@typedef {import('highlight.js').AutoHighlightResult} AutoHighlightResult\n@typedef {import('highlight.js').HighlightOptions} HighlightOptions\n@typedef {import('highlight.js').HighlightResult} HighlightResult\n*/\n\n\nconst escape = escapeHTML;\nconst inherit = inherit$1;\nconst NO_MATCH = Symbol(\"nomatch\");\nconst MAX_KEYWORD_HITS = 7;\n\n/**\n * @param {any} hljs - object that is extended (legacy)\n * @returns {HLJSApi}\n */\nconst HLJS = function(hljs) {\n // Global internal variables used within the highlight.js library.\n /** @type {Record<string, Language>} */\n const languages = Object.create(null);\n /** @type {Record<string, string>} */\n const aliases = Object.create(null);\n /** @type {HLJSPlugin[]} */\n const plugins = [];\n\n // safe/production mode - swallows more errors, tries to keep running\n // even if a single syntax or parse hits a fatal error\n let SAFE_MODE = true;\n const LANGUAGE_NOT_FOUND = \"Could not find the language '{}', did you forget to load/include a language module?\";\n /** @type {Language} */\n const PLAINTEXT_LANGUAGE = { disableAutodetect: true, name: 'Plain text', contains: [] };\n\n // Global options used when within external APIs. This is modified when\n // calling the `hljs.configure` function.\n /** @type HLJSOptions */\n let options = {\n ignoreUnescapedHTML: false,\n throwUnescapedHTML: false,\n noHighlightRe: /^(no-?highlight)$/i,\n languageDetectRe: /\\blang(?:uage)?-([\\w-]+)\\b/i,\n classPrefix: 'hljs-',\n cssSelector: 'pre code',\n languages: null,\n // beta configuration options, subject to change, welcome to discuss\n // https://github.com/highlightjs/highlight.js/issues/1086\n __emitter: TokenTreeEmitter\n };\n\n /* Utility functions */\n\n /**\n * Tests a language name to see if highlighting should be skipped\n * @param {string} languageName\n */\n function shouldNotHighlight(languageName) {\n return options.noHighlightRe.test(languageName);\n }\n\n /**\n * @param {HighlightedHTMLElement} block - the HTML element to determine language for\n */\n function blockLanguage(block) {\n let classes = block.className + ' ';\n\n classes += block.parentNode ? block.parentNode.className : '';\n\n // language-* takes precedence over non-prefixed class names.\n const match = options.languageDetectRe.exec(classes);\n if (match) {\n const language = getLanguage(match[1]);\n if (!language) {\n warn(LANGUAGE_NOT_FOUND.replace(\"{}\", match[1]));\n warn(\"Falling back to no-highlight mode for this block.\", block);\n }\n return language ? match[1] : 'no-highlight';\n }\n\n return classes\n .split(/\\s+/)\n .find((_class) => shouldNotHighlight(_class) || getLanguage(_class));\n }\n\n /**\n * Core highlighting function.\n *\n * OLD API\n * highlight(lang, code, ignoreIllegals, continuation)\n *\n * NEW API\n * highlight(code, {lang, ignoreIllegals})\n *\n * @param {string} codeOrLanguageName - the language to use for highlighting\n * @param {string | HighlightOptions} optionsOrCode - the code to highlight\n * @param {boolean} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n *\n * @returns {HighlightResult} Result - an object that represents the result\n * @property {string} language - the language name\n * @property {number} relevance - the relevance score\n * @property {string} value - the highlighted HTML code\n * @property {string} code - the original raw code\n * @property {CompiledMode} top - top of the current mode stack\n * @property {boolean} illegal - indicates whether any illegal matches were found\n */\n function highlight(codeOrLanguageName, optionsOrCode, ignoreIllegals) {\n let code = \"\";\n let languageName = \"\";\n if (typeof optionsOrCode === \"object\") {\n code = codeOrLanguageName;\n ignoreIllegals = optionsOrCode.ignoreIllegals;\n languageName = optionsOrCode.language;\n } else {\n // old API\n deprecated(\"10.7.0\", \"highlight(lang, code, ...args) has been deprecated.\");\n deprecated(\"10.7.0\", \"Please use highlight(code, options) instead.\\nhttps://github.com/highlightjs/highlight.js/issues/2277\");\n languageName = codeOrLanguageName;\n code = optionsOrCode;\n }\n\n // https://github.com/highlightjs/highlight.js/issues/3149\n // eslint-disable-next-line no-undefined\n if (ignoreIllegals === undefined) { ignoreIllegals = true; }\n\n /** @type {BeforeHighlightContext} */\n const context = {\n code,\n language: languageName\n };\n // the plugin can change the desired language or the code to be highlighted\n // just be changing the object it was passed\n fire(\"before:highlight\", context);\n\n // a before plugin can usurp the result completely by providing it's own\n // in which case we don't even need to call highlight\n const result = context.result\n ? context.result\n : _highlight(context.language, context.code, ignoreIllegals);\n\n result.code = context.code;\n // the plugin can change anything in result to suite it\n fire(\"after:highlight\", result);\n\n return result;\n }\n\n /**\n * private highlight that's used internally and does not fire callbacks\n *\n * @param {string} languageName - the language to use for highlighting\n * @param {string} codeToHighlight - the code to highlight\n * @param {boolean?} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n * @param {CompiledMode?} [continuation] - current continuation mode, if any\n * @returns {HighlightResult} - result of the highlight operation\n */\n function _highlight(languageName, codeToHighlight, ignoreIllegals, continuation) {\n const keywordHits = Object.create(null);\n\n /**\n * Return keyword data if a match is a keyword\n * @param {CompiledMode} mode - current mode\n * @param {string} matchText - the textual match\n * @returns {KeywordData | false}\n */\n function keywordData(mode, matchText) {\n return mode.keywords[matchText];\n }\n\n function processKeywords() {\n if (!top.keywords) {\n emitter.addText(modeBuffer);\n return;\n }\n\n let lastIndex = 0;\n top.keywordPatternRe.lastIndex = 0;\n let match = top.keywordPatternRe.exec(modeBuffer);\n let buf = \"\";\n\n while (match) {\n buf += modeBuffer.substring(lastIndex, match.index);\n const word = language.case_insensitive ? match[0].toLowerCase() : match[0];\n const data = keywordData(top, word);\n if (data) {\n const [kind, keywordRelevance] = data;\n emitter.addText(buf);\n buf = \"\";\n\n keywordHits[word] = (keywordHits[word] || 0) + 1;\n if (keywordHits[word] <= MAX_KEYWORD_HITS) relevance += keywordRelevance;\n if (kind.startsWith(\"_\")) {\n // _ implied for relevance only, do not highlight\n // by applying a class name\n buf += match[0];\n } else {\n const cssClass = language.classNameAliases[kind] || kind;\n emitter.addKeyword(match[0], cssClass);\n }\n } else {\n buf += match[0];\n }\n lastIndex = top.keywordPatternRe.lastIndex;\n match = top.keywordPatternRe.exec(modeBuffer);\n }\n buf += modeBuffer.substr(lastIndex);\n emitter.addText(buf);\n }\n\n function processSubLanguage() {\n if (modeBuffer === \"\") return;\n /** @type HighlightResult */\n let result = null;\n\n if (typeof top.subLanguage === 'string') {\n if (!languages[top.subLanguage]) {\n emitter.addText(modeBuffer);\n return;\n }\n result = _highlight(top.subLanguage, modeBuffer, true, continuations[top.subLanguage]);\n continuations[top.subLanguage] = /** @type {CompiledMode} */ (result._top);\n } else {\n result = highlightAuto(modeBuffer, top.subLanguage.length ? top.subLanguage : null);\n }\n\n // Counting embedded language score towards the host language may be disabled\n // with zeroing the containing mode relevance. Use case in point is Markdown that\n // allows XML everywhere and makes every XML snippet to have a much larger Markdown\n // score.\n if (top.relevance > 0) {\n relevance += result.relevance;\n }\n emitter.addSublanguage(result._emitter, result.language);\n }\n\n function processBuffer() {\n if (top.subLanguage != null) {\n processSubLanguage();\n } else {\n processKeywords();\n }\n modeBuffer = '';\n }\n\n /**\n * @param {CompiledScope} scope\n * @param {RegExpMatchArray} match\n */\n function emitMultiClass(scope, match) {\n let i = 1;\n const max = match.length - 1;\n while (i <= max) {\n if (!scope._emit[i]) { i++; continue; }\n const klass = language.classNameAliases[scope[i]] || scope[i];\n const text = match[i];\n if (klass) {\n emitter.addKeyword(text, klass);\n } else {\n modeBuffer = text;\n processKeywords();\n modeBuffer = \"\";\n }\n i++;\n }\n }\n\n /**\n * @param {CompiledMode} mode - new mode to start\n * @param {RegExpMatchArray} match\n */\n function startNewMode(mode, match) {\n if (mode.scope && typeof mode.scope === \"string\") {\n emitter.openNode(language.classNameAliases[mode.scope] || mode.scope);\n }\n if (mode.beginScope) {\n // beginScope just wraps the begin match itself in a scope\n if (mode.beginScope._wrap) {\n emitter.addKeyword(modeBuffer, language.classNameAliases[mode.beginScope._wrap] || mode.beginScope._wrap);\n modeBuffer = \"\";\n } else if (mode.beginScope._multi) {\n // at this point modeBuffer should just be the match\n emitMultiClass(mode.beginScope, match);\n modeBuffer = \"\";\n }\n }\n\n top = Object.create(mode, { parent: { value: top } });\n return top;\n }\n\n /**\n * @param {CompiledMode } mode - the mode to potentially end\n * @param {RegExpMatchArray} match - the latest match\n * @param {string} matchPlusRemainder - match plus remainder of content\n * @returns {CompiledMode | void} - the next mode, or if void continue on in current mode\n */\n function endOfMode(mode, match, matchPlusRemainder) {\n let matched = startsWith(mode.endRe, matchPlusRemainder);\n\n if (matched) {\n if (mode[\"on:end\"]) {\n const resp = new Response(mode);\n mode[\"on:end\"](match, resp);\n if (resp.isMatchIgnored) matched = false;\n }\n\n if (matched) {\n while (mode.endsParent && mode.parent) {\n mode = mode.parent;\n }\n return mode;\n }\n }\n // even if on:end fires an `ignore` it's still possible\n // that we might trigger the end node because of a parent mode\n if (mode.endsWithParent) {\n return endOfMode(mode.parent, match, matchPlusRemainder);\n }\n }\n\n /**\n * Handle matching but then ignoring a sequence of text\n *\n * @param {string} lexeme - string containing full match text\n */\n function doIgnore(lexeme) {\n if (top.matcher.regexIndex === 0) {\n // no more regexes to potentially match here, so we move the cursor forward one\n // space\n modeBuffer += lexeme[0];\n return 1;\n } else {\n // no need to move the cursor, we still have additional regexes to try and\n // match at this very spot\n resumeScanAtSamePosition = true;\n return 0;\n }\n }\n\n /**\n * Handle the start of a new potential mode match\n *\n * @param {EnhancedMatch} match - the current match\n * @returns {number} how far to advance the parse cursor\n */\n function doBeginMatch(match) {\n const lexeme = match[0];\n const newMode = match.rule;\n\n const resp = new Response(newMode);\n // first internal before callbacks, then the public ones\n const beforeCallbacks = [newMode.__beforeBegin, newMode[\"on:begin\"]];\n for (const cb of beforeCallbacks) {\n if (!cb) continue;\n cb(match, resp);\n if (resp.isMatchIgnored) return doIgnore(lexeme);\n }\n\n if (newMode.skip) {\n modeBuffer += lexeme;\n } else {\n if (newMode.excludeBegin) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (!newMode.returnBegin && !newMode.excludeBegin) {\n modeBuffer = lexeme;\n }\n }\n startNewMode(newMode, match);\n return newMode.returnBegin ? 0 : lexeme.length;\n }\n\n /**\n * Handle the potential end of mode\n *\n * @param {RegExpMatchArray} match - the current match\n */\n function doEndMatch(match) {\n const lexeme = match[0];\n const matchPlusRemainder = codeToHighlight.substr(match.index);\n\n const endMode = endOfMode(top, match, matchPlusRemainder);\n if (!endMode) { return NO_MATCH; }\n\n const origin = top;\n if (top.endScope && top.endScope._wrap) {\n processBuffer();\n emitter.addKeyword(lexeme, top.endScope._wrap);\n } else if (top.endScope && top.endScope._multi) {\n processBuffer();\n emitMultiClass(top.endScope, match);\n } else if (origin.skip) {\n modeBuffer += lexeme;\n } else {\n if (!(origin.returnEnd || origin.excludeEnd)) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (origin.excludeEnd) {\n modeBuffer = lexeme;\n }\n }\n do {\n if (top.scope) {\n emitter.closeNode();\n }\n if (!top.skip && !top.subLanguage) {\n relevance += top.relevance;\n }\n top = top.parent;\n } while (top !== endMode.parent);\n if (endMode.starts) {\n startNewMode(endMode.starts, match);\n }\n return origin.returnEnd ? 0 : lexeme.length;\n }\n\n function processContinuations() {\n const list = [];\n for (let current = top; current !== language; current = current.parent) {\n if (current.scope) {\n list.unshift(current.scope);\n }\n }\n list.forEach(item => emitter.openNode(item));\n }\n\n /** @type {{type?: MatchType, index?: number, rule?: Mode}}} */\n let lastMatch = {};\n\n /**\n * Process an individual match\n *\n * @param {string} textBeforeMatch - text preceding the match (since the last match)\n * @param {EnhancedMatch} [match] - the match itself\n */\n function processLexeme(textBeforeMatch, match) {\n const lexeme = match && match[0];\n\n // add non-matched text to the current mode buffer\n modeBuffer += textBeforeMatch;\n\n if (lexeme == null) {\n processBuffer();\n return 0;\n }\n\n // we've found a 0 width match and we're stuck, so we need to advance\n // this happens when we have badly behaved rules that have optional matchers to the degree that\n // sometimes they can end up matching nothing at all\n // Ref: https://github.com/highlightjs/highlight.js/issues/2140\n if (lastMatch.type === \"begin\" && match.type === \"end\" && lastMatch.index === match.index && lexeme === \"\") {\n // spit the \"skipped\" character that our regex choked on back into the output sequence\n modeBuffer += codeToHighlight.slice(match.index, match.index + 1);\n if (!SAFE_MODE) {\n /** @type {AnnotatedError} */\n const err = new Error(`0 width match regex (${languageName})`);\n err.languageName = languageName;\n err.badRule = lastMatch.rule;\n throw err;\n }\n return 1;\n }\n lastMatch = match;\n\n if (match.type === \"begin\") {\n return doBeginMatch(match);\n } else if (match.type === \"illegal\" && !ignoreIllegals) {\n // illegal match, we do not continue processing\n /** @type {AnnotatedError} */\n const err = new Error('Illegal lexeme \"' + lexeme + '\" for mode \"' + (top.scope || '<unnamed>') + '\"');\n err.mode = top;\n throw err;\n } else if (match.type === \"end\") {\n const processed = doEndMatch(match);\n if (processed !== NO_MATCH) {\n return processed;\n }\n }\n\n // edge case for when illegal matches $ (end of line) which is technically\n // a 0 width match but not a begin/end match so it's not caught by the\n // first handler (when ignoreIllegals is true)\n if (match.type === \"illegal\" && lexeme === \"\") {\n // advance so we aren't stuck in an infinite loop\n return 1;\n }\n\n // infinite loops are BAD, this is a last ditch catch all. if we have a\n // decent number of iterations yet our index (cursor position in our\n // parsing) still 3x behind our index then something is very wrong\n // so we bail\n if (iterations > 100000 && iterations > match.index * 3) {\n const err = new Error('potential infinite loop, way more iterations than matches');\n throw err;\n }\n\n /*\n Why might be find ourselves here? An potential end match that was\n triggered but could not be completed. IE, `doEndMatch` returned NO_MATCH.\n (this could be because a callback requests the match be ignored, etc)\n\n This causes no real harm other than stopping a few times too many.\n */\n\n modeBuffer += lexeme;\n return lexeme.length;\n }\n\n const language = getLanguage(languageName);\n if (!language) {\n error(LANGUAGE_NOT_FOUND.replace(\"{}\", languageName));\n throw new Error('Unknown language: \"' + languageName + '\"');\n }\n\n const md = compileLanguage(language);\n let result = '';\n /** @type {CompiledMode} */\n let top = continuation || md;\n /** @type Record<string,CompiledMode> */\n const continuations = {}; // keep continuations for sub-languages\n const emitter = new options.__emitter(options);\n processContinuations();\n let modeBuffer = '';\n let relevance = 0;\n let index = 0;\n let iterations = 0;\n let resumeScanAtSamePosition = false;\n\n try {\n top.matcher.considerAll();\n\n for (;;) {\n iterations++;\n if (resumeScanAtSamePosition) {\n // only regexes not matched previously will now be\n // considered for a potential match\n resumeScanAtSamePosition = false;\n } else {\n top.matcher.considerAll();\n }\n top.matcher.lastIndex = index;\n\n const match = top.matcher.exec(codeToHighlight);\n // console.log(\"match\", match[0], match.rule && match.rule.begin)\n\n if (!match) break;\n\n const beforeMatch = codeToHighlight.substring(index, match.index);\n const processedCount = processLexeme(beforeMatch, match);\n index = match.index + processedCount;\n }\n processLexeme(codeToHighlight.substr(index));\n emitter.closeAllNodes();\n emitter.finalize();\n result = emitter.toHTML();\n\n return {\n language: languageName,\n value: result,\n relevance: relevance,\n illegal: false,\n _emitter: emitter,\n _top: top\n };\n } catch (err) {\n if (err.message && err.message.includes('Illegal')) {\n return {\n language: languageName,\n value: escape(codeToHighlight),\n illegal: true,\n relevance: 0,\n _illegalBy: {\n message: err.message,\n index: index,\n context: codeToHighlight.slice(index - 100, index + 100),\n mode: err.mode,\n resultSoFar: result\n },\n _emitter: emitter\n };\n } else if (SAFE_MODE) {\n return {\n language: languageName,\n value: escape(codeToHighlight),\n illegal: false,\n relevance: 0,\n errorRaised: err,\n _emitter: emitter,\n _top: top\n };\n } else {\n throw err;\n }\n }\n }\n\n /**\n * returns a valid highlight result, without actually doing any actual work,\n * auto highlight starts with this and it's possible for small snippets that\n * auto-detection may not find a better match\n * @param {string} code\n * @returns {HighlightResult}\n */\n function justTextHighlightResult(code) {\n const result = {\n value: escape(code),\n illegal: false,\n relevance: 0,\n _top: PLAINTEXT_LANGUAGE,\n _emitter: new options.__emitter(options)\n };\n result._emitter.addText(code);\n return result;\n }\n\n /**\n Highlighting with language detection. Accepts a string with the code to\n highlight. Returns an object with the following properties:\n\n - language (detected language)\n - relevance (int)\n - value (an HTML string with highlighting markup)\n - secondBest (object with the same structure for second-best heuristically\n detected language, may be absent)\n\n @param {string} code\n @param {Array<string>} [languageSubset]\n @returns {AutoHighlightResult}\n */\n function highlightAuto(code, languageSubset) {\n languageSubset = languageSubset || options.languages || Object.keys(languages);\n const plaintext = justTextHighlightResult(code);\n\n const results = languageSubset.filter(getLanguage).filter(autoDetection).map(name =>\n _highlight(name, code, false)\n );\n results.unshift(plaintext); // plaintext is always an option\n\n const sorted = results.sort((a, b) => {\n // sort base on relevance\n if (a.relevance !== b.relevance) return b.relevance - a.relevance;\n\n // always award the tie to the base language\n // ie if C++ and Arduino are tied, it's more likely to be C++\n if (a.language && b.language) {\n if (getLanguage(a.language).supersetOf === b.language) {\n return 1;\n } else if (getLanguage(b.language).supersetOf === a.language) {\n return -1;\n }\n }\n\n // otherwise say they are equal, which has the effect of sorting on\n // relevance while preserving the original ordering - which is how ties\n // have historically been settled, ie the language that comes first always\n // wins in the case of a tie\n return 0;\n });\n\n const [best, secondBest] = sorted;\n\n /** @type {AutoHighlightResult} */\n const result = best;\n result.secondBest = secondBest;\n\n return result;\n }\n\n /**\n * Builds new class name for block given the language name\n *\n * @param {HTMLElement} element\n * @param {string} [currentLang]\n * @param {string} [resultLang]\n */\n function updateClassName(element, currentLang, resultLang) {\n const language = (currentLang && aliases[currentLang]) || resultLang;\n\n element.classList.add(\"hljs\");\n element.classList.add(`language-${language}`);\n }\n\n /**\n * Applies highlighting to a DOM node containing code.\n *\n * @param {HighlightedHTMLElement} element - the HTML element to highlight\n */\n function highlightElement(element) {\n /** @type HTMLElement */\n let node = null;\n const language = blockLanguage(element);\n\n if (shouldNotHighlight(language)) return;\n\n fire(\"before:highlightElement\",\n { el: element, language: language });\n\n // we should be all text, no child nodes (unescaped HTML) - this is possibly\n // an HTML injection attack - it's likely too late if this is already in\n // production (the code has likely already done its damage by the time\n // we're seeing it)... but we yell loudly about this so that hopefully it's\n // more likely to be caught in development before making it to production\n if (element.children.length > 0) {\n if (!options.ignoreUnescapedHTML) {\n console.warn(\"One of your code blocks includes unescaped HTML. This is a potentially serious security risk.\");\n console.warn(\"https://github.com/highlightjs/highlight.js/wiki/security\");\n console.warn(\"The element with unescaped HTML:\");\n console.warn(element);\n }\n if (options.throwUnescapedHTML) {\n const err = new HTMLInjectionError(\n \"One of your code blocks includes unescaped HTML.\",\n element.innerHTML\n );\n throw err;\n }\n }\n\n node = element;\n const text = node.textContent;\n const result = language ? highlight(text, { language, ignoreIllegals: true }) : highlightAuto(text);\n\n element.innerHTML = result.value;\n updateClassName(element, language, result.language);\n element.result = {\n language: result.language,\n // TODO: remove with version 11.0\n re: result.relevance,\n relevance: result.relevance\n };\n if (result.secondBest) {\n element.secondBest = {\n language: result.secondBest.language,\n relevance: result.secondBest.relevance\n };\n }\n\n fire(\"after:highlightElement\", { el: element, result, text });\n }\n\n /**\n * Updates highlight.js global options with the passed options\n *\n * @param {Partial<HLJSOptions>} userOptions\n */\n function configure(userOptions) {\n options = inherit(options, userOptions);\n }\n\n // TODO: remove v12, deprecated\n const initHighlighting = () => {\n highlightAll();\n deprecated(\"10.6.0\", \"initHighlighting() deprecated. Use highlightAll() now.\");\n };\n\n // TODO: remove v12, deprecated\n function initHighlightingOnLoad() {\n highlightAll();\n deprecated(\"10.6.0\", \"initHighlightingOnLoad() deprecated. Use highlightAll() now.\");\n }\n\n let wantsHighlight = false;\n\n /**\n * auto-highlights all pre>code elements on the page\n */\n function highlightAll() {\n // if we are called too early in the loading process\n if (document.readyState === \"loading\") {\n wantsHighlight = true;\n return;\n }\n\n const blocks = document.querySelectorAll(options.cssSelector);\n blocks.forEach(highlightElement);\n }\n\n function boot() {\n // if a highlight was requested before DOM was loaded, do now\n if (wantsHighlight) highlightAll();\n }\n\n // make sure we are in the browser environment\n if (typeof window !== 'undefined' && window.addEventListener) {\n window.addEventListener('DOMContentLoaded', boot, false);\n }\n\n /**\n * Register a language grammar module\n *\n * @param {string} languageName\n * @param {LanguageFn} languageDefinition\n */\n function registerLanguage(languageName, languageDefinition) {\n let lang = null;\n try {\n lang = languageDefinition(hljs);\n } catch (error$1) {\n error(\"Language definition for '{}' could not be registered.\".replace(\"{}\", languageName));\n // hard or soft error\n if (!SAFE_MODE) { throw error$1; } else { error(error$1); }\n // languages that have serious errors are replaced with essentially a\n // \"plaintext\" stand-in so that the code blocks will still get normal\n // css classes applied to them - and one bad language won't break the\n // entire highlighter\n lang = PLAINTEXT_LANGUAGE;\n }\n // give it a temporary name if it doesn't have one in the meta-data\n if (!lang.name) lang.name = languageName;\n languages[languageName] = lang;\n lang.rawDefinition = languageDefinition.bind(null, hljs);\n\n if (lang.aliases) {\n registerAliases(lang.aliases, { languageName });\n }\n }\n\n /**\n * Remove a language grammar module\n *\n * @param {string} languageName\n */\n function unregisterLanguage(languageName) {\n delete languages[languageName];\n for (const alias of Object.keys(aliases)) {\n if (aliases[alias] === languageName) {\n delete aliases[alias];\n }\n }\n }\n\n /**\n * @returns {string[]} List of language internal names\n */\n function listLanguages() {\n return Object.keys(languages);\n }\n\n /**\n * @param {string} name - name of the language to retrieve\n * @returns {Language | undefined}\n */\n function getLanguage(name) {\n name = (name || '').toLowerCase();\n return languages[name] || languages[aliases[name]];\n }\n\n /**\n *\n * @param {string|string[]} aliasList - single alias or list of aliases\n * @param {{languageName: string}} opts\n */\n function registerAliases(aliasList, { languageName }) {\n if (typeof aliasList === 'string') {\n aliasList = [aliasList];\n }\n aliasList.forEach(alias => { aliases[alias.toLowerCase()] = languageName; });\n }\n\n /**\n * Determines if a given language has auto-detection enabled\n * @param {string} name - name of the language\n */\n function autoDetection(name) {\n const lang = getLanguage(name);\n return lang && !lang.disableAutodetect;\n }\n\n /**\n * Upgrades the old highlightBlock plugins to the new\n * highlightElement API\n * @param {HLJSPlugin} plugin\n */\n function upgradePluginAPI(plugin) {\n // TODO: remove with v12\n if (plugin[\"before:highlightBlock\"] && !plugin[\"before:highlightElement\"]) {\n plugin[\"before:highlightElement\"] = (data) => {\n plugin[\"before:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n if (plugin[\"after:highlightBlock\"] && !plugin[\"after:highlightElement\"]) {\n plugin[\"after:highlightElement\"] = (data) => {\n plugin[\"after:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n }\n\n /**\n * @param {HLJSPlugin} plugin\n */\n function addPlugin(plugin) {\n upgradePluginAPI(plugin);\n plugins.push(plugin);\n }\n\n /**\n *\n * @param {PluginEvent} event\n * @param {any} args\n */\n function fire(event, args) {\n const cb = event;\n plugins.forEach(function(plugin) {\n if (plugin[cb]) {\n plugin[cb](args);\n }\n });\n }\n\n /**\n * DEPRECATED\n * @param {HighlightedHTMLElement} el\n */\n function deprecateHighlightBlock(el) {\n deprecated(\"10.7.0\", \"highlightBlock will be removed entirely in v12.0\");\n deprecated(\"10.7.0\", \"Please use highlightElement now.\");\n\n return highlightElement(el);\n }\n\n /* Interface definition */\n Object.assign(hljs, {\n highlight,\n highlightAuto,\n highlightAll,\n highlightElement,\n // TODO: Remove with v12 API\n highlightBlock: deprecateHighlightBlock,\n configure,\n initHighlighting,\n initHighlightingOnLoad,\n registerLanguage,\n unregisterLanguage,\n listLanguages,\n getLanguage,\n registerAliases,\n autoDetection,\n inherit,\n addPlugin\n });\n\n hljs.debugMode = function() { SAFE_MODE = false; };\n hljs.safeMode = function() { SAFE_MODE = true; };\n hljs.versionString = version;\n\n hljs.regex = {\n concat: concat,\n lookahead: lookahead,\n either: either,\n optional: optional,\n anyNumberOfTimes: anyNumberOfTimes\n };\n\n for (const key in MODES) {\n // @ts-ignore\n if (typeof MODES[key] === \"object\") {\n // @ts-ignore\n deepFreeze$1(MODES[key]);\n }\n }\n\n // merge all the modes/regexes into our main object\n Object.assign(hljs, MODES);\n\n return hljs;\n};\n\n// export an \"instance\" of the highlighter\nvar highlight = HLJS({});\n\nmodule.exports = highlight;\nhighlight.HighlightJS = highlight;\nhighlight.default = highlight;\n","/*\nLanguage: JSON\nDescription: JSON (JavaScript Object Notation) is a lightweight data-interchange format.\nAuthor: Ivan Sagalaev <maniac@softwaremaniacs.org>\nWebsite: http://www.json.org\nCategory: common, protocols, web\n*/\n\nfunction json(hljs) {\n const ATTRIBUTE = {\n className: 'attr',\n begin: /\"(\\\\.|[^\\\\\"\\r\\n])*\"(?=\\s*:)/,\n relevance: 1.01\n };\n const PUNCTUATION = {\n match: /[{}[\\],:]/,\n className: \"punctuation\",\n relevance: 0\n };\n // normally we would rely on `keywords` for this but using a mode here allows us\n // to use the very tight `illegal: \\S` rule later to flag any other character\n // as illegal indicating that despite looking like JSON we do not truly have\n // JSON and thus improve false-positively greatly since JSON will try and claim\n // all sorts of JSON looking stuff\n const LITERALS = { beginKeywords: [\n \"true\",\n \"false\",\n \"null\"\n ].join(\" \") };\n\n return {\n name: 'JSON',\n contains: [\n ATTRIBUTE,\n PUNCTUATION,\n hljs.QUOTE_STRING_MODE,\n LITERALS,\n hljs.C_NUMBER_MODE,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ],\n illegal: '\\\\S'\n };\n}\n\nexport { json as default };\n","import hljs from 'highlight.js/lib/core'\nimport json from 'highlight.js/lib/languages/json'\nimport { marked } from 'marked'\nimport { route } from 'preact-router'\nimport { useCallback, useEffect, useMemo, useState } from 'preact/hooks'\nimport { Ad, Badge, Btn, Footer, Giscus, Icons, Octicon, VersionSwitcher } from '../components/index.js'\nimport config from '../Config.js'\nimport { useLocale, useTitle, useVersion } from '../contexts/index.js'\nimport { useActiveTimeout, useAsync, useHash } from '../hooks/index.js'\nimport type { VersionId } from '../services/index.js'\nimport { parseFrontMatter, versionContent } from '../Utils.js'\n\nconst HASH = '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M6.368 1.01a.75.75 0 01.623.859L6.57 4.5h3.98l.46-2.868a.75.75 0 011.48.237L12.07 4.5h2.18a.75.75 0 010 1.5h-2.42l-.64 4h2.56a.75.75 0 010 1.5h-2.8l-.46 2.869a.75.75 0 01-1.48-.237l.42-2.632H5.45l-.46 2.869a.75.75 0 01-1.48-.237l.42-2.632H1.75a.75.75 0 010-1.5h2.42l.64-4H2.25a.75.75 0 010-1.5h2.8l.46-2.868a.75.75 0 01.858-.622zM9.67 10l.64-4H6.33l-.64 4h3.98z\"></path></svg>'\n\nhljs.registerLanguage('json', json)\n\nmarked.use({\n\thighlight: (code, lang) => {\n\t\tif (lang === '') return undefined\n\t\treturn hljs.highlight(code, { language: lang }).value\n\t},\n})\n\ninterface Props {\n\tpath?: string\n\tid?: string\n}\nexport function Guide({ id }: Props) {\n\tconst { locale } = useLocale()\n\tconst { version, changeVersion } = useVersion()\n\tconst { changeTitle } = useTitle()\n\n\tconst { value: content, refresh } = useAsync(async () => {\n\t\tconst res = await fetch(`../../guides/${id}.md`)\n\t\treturn await res.text()\n\t}, [id])\n\n\tif ((import.meta as any).hot) {\n\t\t(import.meta as any).hot.on('guide-update', (updateId: string) => {\n\t\t\tif (id === updateId) refresh()\n\t\t})\n\t}\n\n\tconst frontMatter = useMemo(() => {\n\t\tif (!content) return undefined\n\t\tconst data = parseFrontMatter(content)\n\t\tchangeTitle(data?.title, data?.versions)\n\t\treturn data\n\t}, [content])\n\n\tconst allowedVersions = useMemo(() => {\n\t\tconst orderedVersions = config.versions.map(v => v.id)\n\t\treturn (frontMatter?.versions as VersionId[])\n\t\t\t?.sort((a, b) => orderedVersions.indexOf(b) - orderedVersions.indexOf(a))\n\t}, [frontMatter?.versions])\n\n\tconst guideVersion = useMemo(() => {\n\t\tif (!allowedVersions) return version\n\t\tif (allowedVersions.includes(version)) return version\n\t\treturn allowedVersions[0]\n\t}, [version, frontMatter?.versions])\n\n\tconst html = useMemo(() => {\n\t\tif (!content) return undefined\n\t\tconst headings: marked.Tokens.Heading[] = []\n\t\tlet insertedToc = false\n\t\tmarked.use({\n\t\t\textensions: [\n\t\t\t\t{\n\t\t\t\t\tname: 'styledCode',\n\t\t\t\t\tlevel: 'inline',\n\t\t\t\t\tstart(src) {\n\t\t\t\t\t\treturn src.match(/\\b[fsnj]`/)?.index ?? -1\n\t\t\t\t\t},\n\t\t\t\t\ttokenizer(src) {\n\t\t\t\t\t\tconst match = src.match(/^([fsnj])`([^`]+)`/)\n\t\t\t\t\t\tif (match) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\ttype: 'styledCode',\n\t\t\t\t\t\t\t\traw: match[0],\n\t\t\t\t\t\t\t\tprefix: match[1],\n\t\t\t\t\t\t\t\ttext: match[2],\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn undefined\n\t\t\t\t\t},\n\t\t\t\t\trenderer(token) {\n\t\t\t\t\t\tlet content = token.text\n\t\t\t\t\t\tlet c = {\n\t\t\t\t\t\t\tf: 'hljs-attr',\n\t\t\t\t\t\t\ts: 'hljs-string',\n\t\t\t\t\t\t\tn: 'hljs-number',\n\t\t\t\t\t\t}[token.prefix as string]\n\t\t\t\t\t\tif (token.prefix === 'j') {\n\t\t\t\t\t\t\tcontent = hljs.highlight('json', token.text).value\n\t\t\t\t\t\t\tc = 'language-json'\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn `<code${c ? ` class=\"${c}\"` : ''}>${content}</code>`\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\twalkTokens(token) {\n\t\t\t\tif (token.type === 'heading') {\n\t\t\t\t\theadings.push(token)\n\t\t\t\t}\n\t\t\t},\n\t\t\trenderer: {\n\t\t\t\tlink(href, title, text) {\n\t\t\t\t\tif (href === null) return text\n\t\t\t\t\tconst title2 = title ? ` title=\"${title}\"` : '' \n\t\t\t\t\tconst target = href?.match(/^https?:\\/\\//) ? ' target=\"_blank\"' : ''\n\t\t\t\t\treturn `<a href=\"${href}\"${title2}${target}>${text}</a>`\n\t\t\t\t},\n\t\t\t\theading(text, level, raw, slugger) {\n\t\t\t\t\tlet toc = ''\n\t\t\t\t\tif (!insertedToc) {\n\t\t\t\t\t\ttoc = `<ol class=\"guide-toc\">${headings.filter(t => t.depth === 2).map(t => {\n\t\t\t\t\t\t\tconst id = slugger.slug(t.raw.match(/^#+ (.*)/)?.[1] ?? '', { dryrun: true })\n\t\t\t\t\t\t\tconst text = t.text.replaceAll('`', '')\n\t\t\t\t\t\t\treturn `<li><a href=\"#${id}\">${text}</a></li>`\n\t\t\t\t\t\t}).join('')}</ol>`\n\t\t\t\t\t\tinsertedToc = true\n\t\t\t\t\t}\n\t\t\t\t\tconst id = slugger.slug(raw)\n\t\t\t\t\tconst link = `<span id=\"guide-${id}\" href=\"?version=${version}#${id}\">${HASH}</span>`\n\t\t\t\t\treturn `${toc}<h${level}>${link}${text}</h${level}>`\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tconst guide = content.substring(content.indexOf('---', 3) + 3)\n\t\tconst versionedContent = versionContent(guide, guideVersion)\n\t\treturn marked(versionedContent, { version: '1.19' } as any)\n\t}, [guideVersion, content])\n\n\tconst [hash, setHash] = useHash()\n\n\tconst scrollToHeading = useCallback(() => {\n\t\tif (!html) return\n\t\tconst heading = document.querySelector(`[id=guide-${hash.slice(1)}]`)\n\t\tif (heading) {\n\t\t\tconst top = heading.getBoundingClientRect().top + window.scrollY\n\t\t\twindow.scrollTo({ top: top - 68, behavior: 'smooth' })\n\t\t}\n\t}, [html, hash])\n\n\tuseEffect(() => {\n\t\tscrollToHeading()\n\t}, [html === undefined, hash])\n\n\tconst clickGuideContent = useCallback((e: MouseEvent) => {\n\t\tif (!(e.target instanceof HTMLSpanElement)) return\n\t\tconst targetHash = '#' + e.target.id.replace(/^guide-/, '')\n\t\tchangeVersion(version, false, true)\n\t\tsetHash(targetHash)\n\t\tif (targetHash === hash) {\n\t\t\tscrollToHeading()\n\t\t}\n\t}, [scrollToHeading, hash, version])\n\n\tconst [shareActive, shareSuccess] = useActiveTimeout()\n\n\tconst onShare = useCallback(() => {\n\t\tconst url = `${location.origin}/guides/${id}/?version=${version}`\n\t\tnavigator.clipboard.writeText(url)\n\t\tshareSuccess()\n\t}, [id, version])\n\n\tconst onClickTag = useCallback((tag: string) => {\n\t\troute(`/guides/?tags=${tag}`)\n\t}, [])\n\n\tconst [largeWidth] = useState(window.innerWidth > 600)\n\n\treturn <main>\n\t\t<div class=\"container guide\">\n\t\t\t<div class=\"navigation\">\n\t\t\t\t<a class=\"btn btn-link\" href=\"/guides/\">\n\t\t\t\t\t{Octicon.arrow_left}\n\t\t\t\t\t<span>{locale('guides.all')}</span>\n\t\t\t\t</a>\n\t\t\t\t<a class=\"btn btn-link\" href=\"/worldgen/\">\n\t\t\t\t\t{Icons.worldgen}\n\t\t\t\t\t<span>{locale('worldgen')}</span>\n\t\t\t\t</a>\n\t\t\t\t<div class=\"navigation-divider\" />\n\t\t\t\t<Btn icon={shareActive ? 'check' : 'link'} label={locale('share')} onClick={onShare} active={shareActive} tooltip={locale(shareActive ? 'copied' : 'copy_share')} class=\"guide-share\" />\n\t\t\t\t{allowedVersions && <VersionSwitcher value={guideVersion} allowed={allowedVersions} onChange={changeVersion} />}\n\t\t\t</div>\n\t\t\t{(frontMatter?.tags && frontMatter.tags.length > 0) && <div class=\"badges-list\">\n\t\t\t\t{frontMatter.tags.map((tag: string) =>\n\t\t\t\t\t<Badge label={tag} active onClick={() => onClickTag(tag)} />\n\t\t\t\t)}\n\t\t\t</div>}\n\t\t\t{html && <>\n\t\t\t\t<Ad id=\"guide\" type={largeWidth ? 'image' : 'text'} />\n\t\t\t\t<div class=\"guide-content\" dangerouslySetInnerHTML={{ __html: html }} onClick={clickGuideContent}></div>\n\t\t\t\t<Giscus />\n\t\t\t</>}\n\t\t</div>\n\t\t<Footer />\n\t</main>\n}\n","import { useMemo, useState } from 'preact/hooks'\nimport { Badge, Footer, GuideCard, TextInput, VersionSwitcher } from '../components/index.js'\nimport { useLocale, useTitle, useVersion } from '../contexts/index.js'\nimport { useTags } from '../hooks/index.js'\nimport { getGuides } from '../services/Guides.js'\n\ninterface Props {\n\tpath?: string\n}\nexport function Guides({}: Props) {\n\tconst { locale } = useLocale()\n\tconst { version, changeVersion } = useVersion()\n\tuseTitle(locale('title.guides'))\n\n\tconst [search, setSearch] = useState('')\n\tconst [activeTags, toggleTag] = useTags()\n\n\tconst [versionFilter, setVersionFiler] = useState(false)\n\n\tconst versionedGuides = useMemo(() => {\n\t\tif (versionFilter === false) return getGuides()\n\t\treturn getGuides().filter(guide => {\n\t\t\treturn guide.versions?.includes(version)\n\t\t})\n\t}, [version, versionFilter])\n\n\tconst filteredGuides = useMemo(() => {\n\t\tconst query = search.split(' ').map(q => q.trim().toLowerCase()).filter(q => q.length > 0)\n\t\treturn versionedGuides.filter(guide => {\n\t\t\tif (!activeTags.every(tag => guide.tags?.includes(tag))) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tconst content = guide.tags?.join(' ') + ' ' + guide.title.toLowerCase()\n\t\t\treturn query.every(q => {\n\t\t\t\tif (q.startsWith('!')) {\n\t\t\t\t\treturn q.length === 1 || !content.includes(q.slice(1))\n\t\t\t\t}\n\t\t\t\treturn content.includes(q)\n\t\t\t})\n\t\t})\n\t}, [versionedGuides, search, activeTags])\n\n\treturn <main>\n\t\t<div class=\"container guides\">\n\t\t\t<div class=\"navigation\">\n\t\t\t\t<TextInput class=\"btn btn-input query-search\" placeholder={locale('guides.search')} value={search} onChange={setSearch} />\n\t\t\t\t<VersionSwitcher value={versionFilter ? version : undefined} onChange={v => {changeVersion(v); setVersionFiler(true)}} hasAny onAny={() => setVersionFiler(false)} />\n\t\t\t</div>\n\t\t\t{activeTags.length > 0 && <div class=\"badges-list\">\n\t\t\t\t{activeTags.map(tag => <Badge label={tag} onClick={() => toggleTag(tag)} />)}\n\t\t\t</div>}\n\t\t\t<div class=\"card-column\">\n\t\t\t\t{versionedGuides.length === 0 ? <>\n\t\t\t\t\t<span class=\"note\">{locale('guides.no_results.version')}</span>\n\t\t\t\t</> : filteredGuides.length === 0 ? <>\n\t\t\t\t\t<span class=\"note\">{locale('guides.no_results.query')}</span>\n\t\t\t\t</> : filteredGuides.map(g =>\n\t\t\t\t\t<GuideCard id={g.id} activeTags={activeTags} toggleTag={toggleTag} />\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</div>\n\t\t<Footer />\n\t</main>\n}\n","import { useMemo } from 'preact/hooks'\nimport { ChangelogEntry, Footer, GeneratorCard, Giscus, GuideCard, ToolCard, ToolGroup } from '../components/index.js'\nimport { useLocale, useTitle } from '../contexts/index.js'\nimport { useAsync } from '../hooks/useAsync.js'\nimport { useMediaQuery } from '../hooks/useMediaQuery.js'\nimport { fetchChangelogs, fetchVersions } from '../services/DataFetcher.js'\nimport { Store } from '../Store.js'\n\nconst MIN_FAVORITES = 2\nconst MAX_FAVORITES = 5\n\ninterface Props {\n\tpath?: string,\n}\nexport function Home({}: Props) {\n\tconst { locale } = useLocale()\n\tuseTitle(locale('title.home'))\n\n\tconst smallScreen = useMediaQuery('(max-width: 580px)')\n\n\treturn <main>\n\t\t<div class=\"container\">\n\t\t\t<div class=\"card-group\">\n\t\t\t\t<div class=\"card-column\">\n\t\t\t\t\t<PopularGenerators />\n\t\t\t\t\t{smallScreen && <FavoriteGenerators />}\n\t\t\t\t\t<Changelog />\n\t\t\t\t\t{smallScreen && <Guides />}\n\t\t\t\t\t<Versions />\n\t\t\t\t\t{smallScreen && <Tools />}\n\t\t\t\t</div>\n\t\t\t\t{!smallScreen && <div class=\"card-column\">\n\t\t\t\t\t<FavoriteGenerators />\n\t\t\t\t\t<Guides />\n\t\t\t\t\t<Tools />\n\t\t\t\t</div>}\n\t\t\t</div>\n\t\t\t<Giscus />\n\t\t\t<Footer />\n\t\t</div>\n\t</main>\n}\n\nfunction PopularGenerators() {\n\tconst { locale } = useLocale()\n\treturn <ToolGroup title={locale('generators.popular')} link=\"/generators/\">\n\t\t<GeneratorCard minimal id=\"loot_table\" />\n\t\t<GeneratorCard minimal id=\"advancement\" />\n\t\t<GeneratorCard minimal id=\"predicate\" />\n\t\t<ToolCard title={locale('worldgen')} link=\"/worldgen/\" titleIcon=\"worldgen\" />\n\t\t<ToolCard title={locale('generators.all')} link=\"/generators/\" titleIcon=\"arrow_right\" />\n\t</ToolGroup>\n}\n\nfunction FavoriteGenerators() {\n\tconst { locale } = useLocale()\n\n\tconst favorites = useMemo(() => {\n\t\tconst history: string[] = []\n\t\tfor (const id of Store.getGeneratorHistory().reverse()) {\n\t\t\tif (!history.includes(id)) {\n\t\t\t\thistory.push(id)\n\t\t\t}\n\t\t}\n\t\treturn history.slice(0, MAX_FAVORITES)\n\t}, [])\n\n\tif (favorites.length < MIN_FAVORITES) return <></>\n\n\treturn <ToolGroup title={locale('generators.recent')}>\n\t\t{favorites.map(f => <GeneratorCard minimal id={f} />)}\n\t</ToolGroup>\n}\n\nfunction Guides() {\n\tconst { locale } = useLocale()\n\n\treturn <ToolGroup title={locale('guides')} link=\"/guides/\" titleIcon=\"arrow_right\">\n\t\t<GuideCard minimal id=\"adding-custom-structures\" />\n\t\t<GuideCard minimal id=\"noise-router\" />\n\t</ToolGroup>\n}\n\nfunction Tools() {\n\tconst { locale } = useLocale()\n\n\treturn <ToolGroup title={locale('tools')}>\n\t\t<ToolCard title=\"Report Inspector\" icon=\"report\"\n\t\t\tlink=\"https://misode.github.io/report/\"\n\t\t\tdesc=\"Analyse your performance reports\" />\n\t\t<ToolCard title=\"Minecraft Sounds\" icon=\"sounds\"\n\t\t\tlink=\"/sounds/\"\n\t\t\tdesc=\"Browse through and mix all the vanilla sounds\" />\n\t\t<ToolCard title=\"Data Pack Upgrader\"\n\t\t\tlink=\"https://misode.github.io/upgrader/\"\n\t\t\tdesc=\"Convert your data packs from 1.16 to 1.19\" />\n\t</ToolGroup>\n}\n\nfunction Versions() {\n\tconst { locale } = useLocale()\n\n\tconst { value: versions } = useAsync(fetchVersions, [])\n\tconst release = useMemo(() => versions?.find(v => v.type === 'release'), [versions])\n\n\treturn <ToolGroup title={locale('versions.minecraft_versions')} link=\"/versions/\" titleIcon=\"arrow_right\">\n\t\t{(versions?.[0] && release) && <>\n\t\t\t{versions[0].id !== release.id && (\n\t\t\t\t<ToolCard title={versions[0].name} link={`/versions/?id=${versions[0].id}`} desc={locale('versions.latest_snapshot')} />\n\t\t\t)}\n\t\t\t<ToolCard title={release.name} link={`/versions/?id=${release.id}`} desc={locale('versions.latest_release')} />\n\t\t</>}\n\t</ToolGroup>\n}\n\nfunction Changelog() {\n\tconst { locale } = useLocale()\n\n\tconst hugeScreen = useMediaQuery('(min-width: 960px)')\n\n\tconst { value: changes } = useAsync(fetchChangelogs, [])\n\tconst latestChanges = useMemo(() => changes?.sort((a, b) => b.order - a.order).slice(0, 2), [changes])\n\n\treturn <ToolGroup title={locale('changelog')} link=\"/changelog/\" titleIcon=\"git_commit\">\n\t\t{latestChanges?.map(change => <ChangelogEntry minimal={!hugeScreen} change={change} />)}\n\t</ToolGroup>\n}\n","import { Footer, GeneratorList } from '../components/index.js'\nimport { useLocale, useTitle } from '../contexts/index.js'\n\ninterface Props {\n\tpath?: string\n}\nexport function Partners({}: Props) {\n\tconst { locale } = useLocale()\n\tuseTitle(locale('title.partners'))\n\n\treturn <main>\n\t\t<div class=\"container\">\n\t\t\t<GeneratorList predicate={gen => gen.partner !== undefined} />\n\t\t</div>\n\t\t<Footer donate={false} />\n\t</main>\n}\n","import type { Howl, HowlOptions } from 'howler'\nimport { useEffect, useMemo, useRef, useState } from 'preact/hooks'\nimport { Btn, ErrorPanel, Footer, SoundConfig, TextInput, VersionSwitcher } from '../components/index.js'\nimport { useLocale, useTitle, useVersion } from '../contexts/index.js'\nimport { useAsync } from '../hooks/index.js'\nimport { fetchSounds } from '../services/index.js'\nimport { hexId } from '../Utils.js'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Sounds({}: Props) {\n\tconst { locale } = useLocale()\n\tconst { version, changeVersion } = useVersion()\n\tuseTitle(locale('title.sounds'))\n\n\tconst [howler, setHowler] = useState<undefined | ((options: HowlOptions) => Howl)>(undefined)\n\tuseEffect(() => {\n\t\t(async () => {\n\t\t\tconst howler = await import('howler')\n\t\t\tsetHowler(() => (options: HowlOptions) => new howler.Howl(options))\n\t\t})()\n\t}, [])\n\n\tconst { value: sounds, error } = useAsync(async () => {\n\t\treturn await fetchSounds(version)\n\t}, [version])\n\tconst soundKeys = useMemo(() => Object.keys(sounds ?? {}), [sounds])\n\n\tconst [search, setSearch] = useState('')\n\tconst [configs, setConfigs] = useState<SoundConfig[]>([])\n\tconst addConfig = () => {\n\t\tsetConfigs([{ id: hexId(), sound: search, delay: 0, pitch: 1, volume: 1 }, ...configs])\n\t}\n\tconst editConfig = (id: string) => (changes: Partial<SoundConfig>) => {\n\t\tsetConfigs(configs.map(c => c.id === id ? { ...c, ...changes } : c))\n\t}\n\tconst deleteConfig = (id: string) => () => {\n\t\tsetConfigs(configs.filter(c => c.id !== id))\n\t}\n\n\tconst [delayedPlay, setDelayedPlay] = useState(0)\n\tconst playAll = () => {\n\t\tsetDelayedPlay(delayedPlay + 1)\n\t}\n\n\tconst download = useRef<HTMLAnchorElement>(null)\n\tconst downloadFunction = () => {\n\t\tif (!download.current) return\n\t\tconst hasDelay = configs.some(c => c.delay > 0)\n\t\tconst content = configs\n\t\t\t.sort((a, b) => a.delay - b.delay)\n\t\t\t.map(c => `${hasDelay ? `execute if score @s delay matches ${c.delay} run ` : ''}playsound minecraft:${c.sound} master @s ~ ~ ~ ${c.volume} ${c.pitch}`)\n\t\t\t.join('\\n')\n\t\tdownload.current.setAttribute('href', 'data:text/plain;charset=utf-8,' + content + '%0A')\n\t\tdownload.current.setAttribute('download', 'sounds.mcfunction')\n\t\tdownload.current.click()\n\t}\n\n\treturn <main>\n\t\t{error && <ErrorPanel error={error} />}\n\t\t{soundKeys.length > 0 && <>\n\t\t\t<div class=\"sounds-controls\">\n\t\t\t\t<div class=\"sound-search-group\">\n\t\t\t\t\t<TextInput class=\"btn btn-input sound-search\" list=\"sound-list\" placeholder={locale('sounds.search')}\n\t\t\t\t\t\tvalue={search} onChange={setSearch} onEnter={addConfig} />\n\t\t\t\t\t<Btn icon=\"plus\" tooltip={locale('sounds.add_sound')} class=\"add-sound\" onClick={addConfig} />\n\t\t\t\t</div>\n\t\t\t\t{configs.length > 1 && <Btn icon=\"play\" label={ locale('sounds.play_all')} class=\"play-all-sounds\" onClick={playAll} />}\n\t\t\t\t<div class=\"spacer\"></div>\n\t\t\t\t<Btn icon=\"download\" label={locale('download')} tooltip={locale('sounds.download_function')} tooltipLoc=\"se\" class=\"download-sounds\" onClick={downloadFunction} />\n\t\t\t\t<VersionSwitcher value={version} onChange={changeVersion} />\n\t\t\t</div>\n\t\t\t<div class=\"sounds\">\n\t\t\t\t{sounds && howler && configs.map(c =>\n\t\t\t\t\t<SoundConfig key={c.id} {...c} {...{ howler, sounds, delayedPlay }} onEdit={editConfig(c.id)} onDelete={deleteConfig(c.id)} />\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t<a ref={download} style=\"display: none;\"></a>\n\t\t\t<datalist id=\"sound-list\">\n\t\t\t\t{soundKeys.map(s => <option key={s} value={s} />)}\n\t\t\t</datalist>\n\t\t</>}\n\t\t<Footer donate={false} />\n\t</main>\n}\n","import { BtnLink, ErrorPanel, Footer, VersionDetail, VersionList } from '../components/index.js'\nimport { useLocale, useTitle } from '../contexts/index.js'\nimport { useAsync, useSearchParam } from '../hooks/index.js'\nimport type { VersionMeta } from '../services/index.js'\nimport { fetchVersions } from '../services/index.js'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Versions({}: Props) {\n\tconst { locale } = useLocale()\n\n\tconst { value: versions, error } = useAsync(fetchVersions, [])\n\n\tconst [selectedId] = useSearchParam('id')\n\tconst selected = (versions ?? []).find(v => v.id === selectedId)\n\n\tuseTitle(\n\t\tselected ? `Minecraft ${selected.name}` : 'Versions Explorer',\n\t\tselected ? [] : undefined,\n\t\tselected ? 'Changes and metadata' : undefined)\n\n\tconst nextVersion = selected && getOffsetVersion(versions ?? [], selected, -1)\n\tconst previousVersion = selected && getOffsetVersion(versions ?? [], selected, 1)\n\n\treturn <main>\n\t\t{error && <ErrorPanel error={error} />}\n\t\t<div class=\"container\">\n\t\t\t{selectedId ? <>\n\t\t\t\t<div class=\"navigation\">\n\t\t\t\t\t<BtnLink link=\"/versions/\" icon=\"three_bars\" label={locale('versions.all')} />\n\t\t\t\t\t<BtnLink link={previousVersion ? `/versions/?id=${previousVersion.id}` : undefined}\n\t\t\t\t\t\ticon=\"arrow_left\" label={locale('versions.previous')} />\n\t\t\t\t\t<BtnLink link={nextVersion ? `/versions/?id=${nextVersion.id}` : undefined} \n\t\t\t\t\t\ticon=\"arrow_right\" label={locale('versions.next')} swapped />\n\t\t\t\t</div>\n\t\t\t\t<VersionDetail id={selectedId} version={selected} />\n\t\t\t</> : <>\n\t\t\t\t<VersionList versions={versions} link={id => `/versions/?id=${id}`} navigation={(\n\t\t\t\t\t<BtnLink link=\"/changelog\" icon=\"git_commit\" label={locale('versions.technical_changes')} />\n\t\t\t\t)} />\n\t\t\t</>}\n\t\t</div>\n\t\t<Footer donate={false} />\n\t</main>\n}\n\nfunction getOffsetVersion(versions: VersionMeta[], current: VersionMeta, offset: number) {\n\tconst currentIndex = versions.findIndex(v => v.id === current.id)\n\tconst offsetIndex = currentIndex + offset\n\tif (offsetIndex < 0 || offsetIndex >= versions.length) {\n\t\treturn undefined\n\t}\n\treturn versions[offsetIndex]\n}\n","import { Footer, GeneratorCard, GeneratorList, GuideCard, ToolGroup } from '../components/index.js'\nimport { useLocale, useTitle } from '../contexts/index.js'\n\ninterface Props {\n\tpath?: string\n}\nexport function Worldgen({}: Props) {\n\tconst { locale } = useLocale()\n\tuseTitle(locale('title.worldgen'))\n\n\treturn <main>\n\t\t<div class=\"container worldgen\">\n\t\t\t<div class=\"card-group\">\n\t\t\t\t<ToolGroup title={locale('generators.popular')}>\n\t\t\t\t\t<GeneratorCard minimal id=\"dimension\" />\n\t\t\t\t\t<GeneratorCard minimal id=\"worldgen/biome\" />\n\t\t\t\t\t<GeneratorCard minimal id=\"worldgen/noise_settings\" />\n\t\t\t\t\t<GeneratorCard minimal id=\"worldgen/configured_feature\" />\n\t\t\t\t\t<GeneratorCard minimal id=\"worldgen/placed_feature\" />\n\t\t\t\t</ToolGroup>\n\t\t\t\t<ToolGroup title={locale('guides')} link=\"/guides/?tags=worldgen\" titleIcon=\"arrow_right\">\n\t\t\t\t\t<GuideCard id=\"adding-custom-structures\" />\n\t\t\t\t\t<GuideCard id=\"placed-features\" />\n\t\t\t\t</ToolGroup>\n\t\t\t</div>\n\t\t\t<GeneratorList predicate={gen => gen.tags?.includes('worldgen')} />\n\t\t</div>\n\t\t<Footer />\n\t</main>\n}\n","import type { RouterOnChangeArgs } from 'preact-router'\nimport { Router } from 'preact-router'\nimport '../styles/global.css'\nimport '../styles/nodes.css'\nimport { Analytics } from './Analytics.js'\nimport { Header } from './components/index.js'\nimport { Changelog, Generator, Generators, Guide, Guides, Home, Partners, Sounds, Versions, Worldgen } from './pages/index.js'\nimport { cleanUrl } from './Utils.js'\n\nexport function App() {\n\tconst changeRoute = (e: RouterOnChangeArgs) => {\n\t\twindow.dispatchEvent(new CustomEvent('replacestate'))\n\t\t// Needs a timeout to ensure the title is set correctly\n\t\tsetTimeout(() => Analytics.pageview(cleanUrl(e.url)))\n\t}\n\n\treturn <>\n\t\t<Header />\n\t\t<Router onChange={changeRoute}>\n\t\t\t<Home path=\"/\" />\n\t\t\t<Generators path=\"/generators\" />\n\t\t\t<Worldgen path=\"/worldgen\" />\n\t\t\t<Partners path=\"/partners\" />\n\t\t\t<Sounds path=\"/sounds\" />\n\t\t\t<Changelog path=\"/changelog\" />\n\t\t\t<Versions path=\"/versions\" />\n\t\t\t<Guides path=\"/guides\" />\n\t\t\t<Guide path=\"/guides/:id\" />\n\t\t\t<Generator default />\n\t\t</Router>\n\t</>\n}\n","import { render } from 'preact'\nimport '../styles/global.css'\nimport '../styles/nodes.css'\nimport { App } from './App.js'\nimport { LocaleProvider, ProjectProvider, StoreProvider, ThemeProvider, TitleProvider, VersionProvider } from './contexts/index.js'\n\nfunction Main() {\n\treturn (\n\t\t<StoreProvider>\n\t\t\t<LocaleProvider>\n\t\t\t\t<ThemeProvider>\n\t\t\t\t\t<VersionProvider>\n\t\t\t\t\t\t<TitleProvider>\n\t\t\t\t\t\t\t<ProjectProvider>\n\t\t\t\t\t\t\t\t<App />\n\t\t\t\t\t\t\t</ProjectProvider>\n\t\t\t\t\t\t</TitleProvider>\n\t\t\t\t\t</VersionProvider>\n\t\t\t\t</ThemeProvider>\n\t\t\t</LocaleProvider>\n\t\t</StoreProvider>\n\t)\n}\n\nrender(<Main />, document.body)\n"],"file":"assets/index.41a3dfd7.js"} \ No newline at end of file diff --git a/assets/index.e81c6084.js b/assets/index.6c5eeb89.js similarity index 99% rename from assets/index.e81c6084.js rename to assets/index.6c5eeb89.js index 5a8f1032..9322e6c4 100644 --- a/assets/index.e81c6084.js +++ b/assets/index.6c5eeb89.js @@ -1,2 +1,2 @@ -var ce=Object.defineProperty,de=Object.defineProperties;var pe=Object.getOwnPropertyDescriptors;var ee=Object.getOwnPropertySymbols;var le=Object.prototype.hasOwnProperty,se=Object.prototype.propertyIsEnumerable;var te=(n,e,t)=>e in n?ce(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,g=(n,e)=>{for(var t in e||(e={}))le.call(e,t)&&te(n,t,e[t]);if(ee)for(var t of ee(e))se.call(e,t)&&te(n,t,e[t]);return n},Z=(n,e)=>de(n,pe(e));import{v as h,u as R}from"./index.41a3dfd7.js";function me(n,e){return e.forEach(function(t){t&&typeof t!="string"&&!Array.isArray(t)&&Object.keys(t).forEach(function(o){if(o!=="default"&&!(o in n)){var s=Object.getOwnPropertyDescriptor(t,o);Object.defineProperty(n,o,s.get?s:{enumerable:!0,get:function(){return t[o]}})}})}),Object.freeze(Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}))}var w={},q={};Object.defineProperty(q,"__esModule",{value:!0});q.initCollections=void 0;function ue(n){n.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:killed_by_crossbow","minecraft:levitation","minecraft:location","minecraft:nether_travel","minecraft:placed_block","minecraft:player_hurt_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","minecraft:shot_crossbow","minecraft:safely_harvest_honey","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:summoned_entity","minecraft:tame_animal","minecraft:tick","minecraft:used_ender_eye","minecraft:used_totem","minecraft:villager_trade","minecraft:voluntary_exile"]),n.register("loot_pool_entry_type",["minecraft:empty","minecraft:item","minecraft:tag","minecraft:loot_table","minecraft:alternatives","minecraft:sequence","minecraft:group","minecraft:dynamic"]),n.register("loot_condition_type",["minecraft:alternative","minecraft:inverted","minecraft:reference","minecraft:entity_properties","minecraft:block_state_property","minecraft:match_tool","minecraft:damage_source_properties","minecraft:location_check","minecraft:weather_check","minecraft:time_check","minecraft:entity_scores","minecraft:random_chance","minecraft:random_chance_with_looting","minecraft:table_bonus","minecraft:killed_by_player","minecraft:survives_explosion"]),n.register("loot_function_type",["minecraft:set_count","minecraft:set_damage","minecraft:set_name","minecraft:set_lore","minecraft:set_nbt","minecraft:set_attributes","minecraft:set_contents","minecraft:enchant_randomly","minecraft:enchant_with_levels","minecraft:looting_enchant","minecraft:limit_count","minecraft:furnace_smelt","minecraft:explosion_decay","minecraft:fill_player_head","minecraft:copy_name","minecraft:copy_nbt","minecraft:copy_state","minecraft:apply_bonus","minecraft:exploration_map","minecraft:set_stew_effect"]),n.register("attribute",["generic.maxHealth","generic.followRange","generic.knockbackResistance","generic.movementSpeed","generic.attackDamage","generic.armor","generic.armorToughness","generic.attackSpeed","generic.luck","horse.jumpStrength","generic.attackKnockback","generic.flyingSpeed","zombie.spawnReinforcements"]),n.register("structure_feature",["pillager_outpost","mineshaft","mansion","jungle_pyramid","desert_pyramid","igloo","shipwreck","swamp_hut","stronghold","monument","ocean_ruin","fortress","endcity","buried_treasure","village"]),n.register("dimension",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),n.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"]),n.register("slot",["mainhand","offhand","head","chest","legs","feet"]),n.register("gamemode",["survival","creative","adventure","spectator"]),n.register("entity_source",["this","direct_killer","killer","killer_player"]),n.register("copy_source",["block_entity","this","killer","killer_player"]),n.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),n.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"]),n.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"]),n.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"]),n.register("direction",["down","up","north","east","south","west"]),n.register("axis",["x","y","z"]),n.register("display_position",["firstperson_righthand","firstperson_lefthand","thirdperson_righthand","thirdperson_lefthand","gui","head","ground","fixed"]),n.register("gui_light",["front","side"]),n.register("item_model_predicates",["angle","blocking","broken","cast","charged","cooldown","custom_model_data","damage","damaged","firework","lefthanded","pull","pulling","throwing","time"]),n.register("cat_texture",["textures/entity/cat/tabby.png","textures/entity/cat/black.png","textures/entity/cat/red.png","textures/entity/cat/siamese.png","textures/entity/cat/british_shorthair.png","textures/entity/cat/calico.png","textures/entity/cat/persian.png","textures/entity/cat/ragdoll.png","textures/entity/cat/white.png","textures/entity/cat/jellie.png","textures/entity/cat/all_black.png"])}q.initCollections=ue;var A={},F={},L={};(function(n){Object.defineProperty(n,"__esModule",{value:!0}),n.initCommonSchemas=n.Range=n.ConditionCases=void 0;const e=h;function t(o,s){const c=e.StringNode.bind(void 0,s),a=e.Reference.bind(void 0,o);o.register("block_state",(0,e.Mod)((0,e.ObjectNode)({Name:c({validator:"resource",params:{pool:"block"}}),Properties:(0,e.Opt)((0,e.MapNode)(c(),c(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),o.register("fluid_state",(0,e.Mod)((0,e.ObjectNode)({Name:c({validator:"resource",params:{pool:"fluid"}}),Properties:(0,e.Opt)((0,e.MapNode)(c(),c()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),o.register("block_pos",(0,e.Mod)((0,e.ListNode)((0,e.NumberNode)({integer:!0})),{default:()=>[0,0,0]})),n.Range=d=>(0,e.ChoiceNode)([...d!=null&&d.forceRange?[]:[{type:"number",node:(0,e.NumberNode)(d),change:_=>{var u,v,C;return _===void 0?0:(C=(v=(u=_.min)!==null&&u!==void 0?u:_.max)!==null&&v!==void 0?v:_.n)!==null&&C!==void 0?C:0}}],{type:"object",priority:-1,node:(0,e.ObjectNode)({min:d!=null&&d.bounds?(0,e.NumberNode)(d):(0,e.Opt)((0,e.NumberNode)(d)),max:d!=null&&d.bounds?(0,e.NumberNode)(d):(0,e.Opt)((0,e.NumberNode)(d))},{context:"range"}),change:_=>({min:typeof _=="number"?_:_===void 0?1:_.n,max:typeof _=="number"?_:_===void 0?1:_.n})},...d!=null&&d.allowBinomial?[{type:"binomial",node:(0,e.ObjectNode)({type:c({enum:["minecraft:binomial"]}),n:(0,e.NumberNode)({integer:!0,min:0}),p:(0,e.NumberNode)({min:0,max:1})},{context:"range"}),match:_=>_!==void 0&&_.type==="minecraft:binomial",change:_=>{var u,v;return{type:"minecraft:binomial",n:typeof _=="number"?_:_===void 0?1:(v=(u=_.min)!==null&&u!==void 0?u:_.max)!==null&&v!==void 0?v:1,p:.5}}}]:[]],{choiceContext:"range"}),n.ConditionCases={"minecraft:alternative":{terms:(0,e.ListNode)(a("condition"))},"minecraft:block_state_property":{block:c({validator:"resource",params:{pool:"block"}}),properties:(0,e.MapNode)(c(),c(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:a("damage_source_predicate")},"minecraft:entity_properties":{entity:c({enum:"entity_source"}),predicate:a("entity_predicate")},"minecraft:entity_scores":{entity:c({enum:"entity_source"}),scores:(0,e.MapNode)(c({validator:"objective"}),(0,n.Range)({forceRange:!0,bounds:!0}))},"minecraft:inverted":{term:a("condition")},"minecraft:killed_by_player":{inverse:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:location_check":{offsetX:(0,e.Opt)((0,e.NumberNode)({integer:!0})),offsetY:(0,e.Opt)((0,e.NumberNode)({integer:!0})),offsetZ:(0,e.Opt)((0,e.NumberNode)({integer:!0})),predicate:a("location_predicate")},"minecraft:match_tool":{predicate:a("item_predicate")},"minecraft:random_chance":{chance:(0,e.NumberNode)({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:(0,e.NumberNode)({min:0,max:1}),looting_multiplier:(0,e.NumberNode)()},"minecraft:reference":{name:c({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:c({validator:"resource",params:{pool:"enchantment"}}),chances:(0,e.ListNode)((0,e.NumberNode)({min:0,max:1}))},"minecraft:time_check":{value:(0,n.Range)(),period:(0,e.Opt)((0,e.NumberNode)())},"minecraft:weather_check":{raining:(0,e.Opt)((0,e.BooleanNode)()),thundering:(0,e.Opt)((0,e.BooleanNode)())}}}n.initCommonSchemas=t})(L);var J={};(function(n){Object.defineProperty(n,"__esModule",{value:!0}),n.initPredicatesSchemas=n.LocationFields=void 0;const e=h,t=L;function o(s,c){const a=e.Reference.bind(void 0,s),d=e.StringNode.bind(void 0,c),_=(0,e.ChoiceNode)([{type:"string",node:d(),change:u=>typeof u=="boolean"||typeof u=="number"?u.toString():""},{type:"number",node:(0,e.NumberNode)(),change:u=>typeof u=="string"?parseInt(u):0},{type:"object",node:(0,e.ObjectNode)({min:(0,e.Opt)((0,e.NumberNode)({integer:!0})),max:(0,e.Opt)((0,e.NumberNode)({integer:!0}))}),change:u=>typeof u=="number"?{min:u,max:u}:{}},{type:"boolean",node:(0,e.BooleanNode)(),change:u=>u==="true"||u===1}]);s.register("item_predicate",(0,e.ObjectNode)({item:(0,e.Opt)(d({validator:"resource",params:{pool:"item"}})),tag:(0,e.Opt)(d({validator:"resource",params:{pool:"$tag/item"}})),count:(0,e.Opt)((0,t.Range)()),durability:(0,e.Opt)((0,t.Range)()),potion:(0,e.Opt)(d({validator:"resource",params:{pool:"potion"}})),nbt:(0,e.Opt)(d({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:(0,e.Opt)((0,e.ListNode)(a("enchantment_predicate")))},{context:"item"})),s.register("enchantment_predicate",(0,e.ObjectNode)({enchantment:(0,e.Opt)(d({validator:"resource",params:{pool:"enchantment"}})),levels:(0,e.Opt)((0,t.Range)())},{context:"enchantment"})),s.register("block_predicate",(0,e.ObjectNode)({block:(0,e.Opt)(d({validator:"resource",params:{pool:"block"}})),tag:(0,e.Opt)(d({validator:"resource",params:{pool:"$tag/block"}})),nbt:(0,e.Opt)(d({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:(0,e.Opt)((0,e.MapNode)(d(),_,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),s.register("fluid_predicate",(0,e.ObjectNode)({fluid:(0,e.Opt)(d({validator:"resource",params:{pool:"fluid"}})),tag:(0,e.Opt)(d({validator:"resource",params:{pool:"$tag/fluid"}})),state:(0,e.Opt)((0,e.MapNode)(d(),_))},{context:"fluid"})),n.LocationFields={position:(0,e.Opt)((0,e.ObjectNode)({x:(0,e.Opt)((0,t.Range)()),y:(0,e.Opt)((0,t.Range)()),z:(0,e.Opt)((0,t.Range)())})),biome:(0,e.Opt)(d({enum:"biome"})),feature:(0,e.Opt)(d({enum:"structure_feature"})),dimension:(0,e.Opt)(d({enum:"dimension"})),light:(0,e.Opt)((0,e.ObjectNode)({light:(0,e.Opt)((0,t.Range)({integer:!0,min:0,max:15}))})),block:(0,e.Opt)(a("block_predicate")),fluid:(0,e.Opt)(a("fluid_predicate"))},s.register("location_predicate",(0,e.ObjectNode)(n.LocationFields,{context:"location"})),s.register("statistic_predicate",(0,e.ObjectNode)({type:d({validator:"resource",params:{pool:"stat_type"}}),stat:d(),value:(0,t.Range)(),[e.Switch]:[{push:"type"}],[e.Case]:{"minecraft:mined":{stat:d({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:d({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:d({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:d({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:d({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:d({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:d({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:d({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:d({validator:"resource",params:{pool:"custom_stat"}})}}})),s.register("player_predicate",(0,e.ObjectNode)({gamemode:(0,e.Opt)(d({enum:"gamemode"})),level:(0,e.Opt)((0,t.Range)()),advancements:(0,e.Opt)((0,e.MapNode)(d({validator:"resource",params:{pool:"$advancement"}}),(0,e.ChoiceNode)([{type:"boolean",node:(0,e.BooleanNode)(),change:u=>!0},{type:"object",node:(0,e.MapNode)(d(),(0,e.BooleanNode)())}]))),recipes:(0,e.Opt)((0,e.MapNode)(d({validator:"resource",params:{pool:"$recipe"}}),(0,e.BooleanNode)())),stats:(0,e.Opt)((0,e.ListNode)(a("statistic_predicate")))},{context:"player"})),s.register("status_effect_predicate",(0,e.ObjectNode)({amplifier:(0,e.Opt)((0,t.Range)()),duration:(0,e.Opt)((0,t.Range)()),ambient:(0,e.Opt)((0,e.BooleanNode)()),visible:(0,e.Opt)((0,e.BooleanNode)())},{context:"status_effect"})),s.register("distance_predicate",(0,e.ObjectNode)({x:(0,e.Opt)((0,t.Range)()),y:(0,e.Opt)((0,t.Range)()),z:(0,e.Opt)((0,t.Range)()),absolute:(0,e.Opt)((0,t.Range)()),horizontal:(0,e.Opt)((0,t.Range)())},{context:"distance"})),s.register("entity_predicate",(0,e.ObjectNode)({type:(0,e.Opt)(d({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:(0,e.Opt)(d({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:(0,e.Opt)(d({validator:"team"})),location:(0,e.Opt)(a("location_predicate")),distance:(0,e.Opt)(a("distance_predicate")),flags:(0,e.Opt)((0,e.ObjectNode)({is_on_fire:(0,e.Opt)((0,e.BooleanNode)()),is_sneaking:(0,e.Opt)((0,e.BooleanNode)()),is_sprinting:(0,e.Opt)((0,e.BooleanNode)()),is_swimming:(0,e.Opt)((0,e.BooleanNode)()),is_baby:(0,e.Opt)((0,e.BooleanNode)())})),equipment:(0,e.Opt)((0,e.MapNode)(d({enum:"slot"}),a("item_predicate"))),player:(0,e.Opt)(a("player_predicate")),catType:(0,e.Opt)(d({enum:"cat_texture"})),effects:(0,e.Opt)((0,e.MapNode)(d({validator:"resource",params:{pool:"mob_effect"}}),a("status_effect_predicate")))},{context:"entity"})),s.register("damage_source_predicate",(0,e.ObjectNode)({is_explosion:(0,e.Opt)((0,e.BooleanNode)()),is_fire:(0,e.Opt)((0,e.BooleanNode)()),is_magic:(0,e.Opt)((0,e.BooleanNode)()),is_projectile:(0,e.Opt)((0,e.BooleanNode)()),is_lightning:(0,e.Opt)((0,e.BooleanNode)()),bypasses_armor:(0,e.Opt)((0,e.BooleanNode)()),bypasses_invulnerability:(0,e.Opt)((0,e.BooleanNode)()),bypasses_magic:(0,e.Opt)((0,e.BooleanNode)()),source_entity:(0,e.Opt)(a("entity_predicate")),direct_entity:(0,e.Opt)(a("entity_predicate"))},{context:"damage_source"})),s.register("damage_predicate",(0,e.ObjectNode)({dealt:(0,e.Opt)((0,t.Range)()),taken:(0,e.Opt)((0,t.Range)()),blocked:(0,e.Opt)((0,e.BooleanNode)()),source_entity:(0,e.Opt)(a("entity_predicate")),type:(0,e.Opt)(a("damage_source_predicate"))},{context:"damage"}))}n.initPredicatesSchemas=o})(J);Object.defineProperty(F,"__esModule",{value:!0});F.initAdvancementSchemas=void 0;const i=h,k=L,T=J;function _e(n,e){const t=i.Reference.bind(void 0,n),o=i.StringNode.bind(void 0,e);n.register("advancement",(0,i.Mod)((0,i.ObjectNode)({display:(0,i.Opt)((0,i.Mod)((0,i.ObjectNode)({icon:(0,i.ObjectNode)({item:o({validator:"resource",params:{pool:"item"}}),nbt:(0,i.Opt)(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:t("text_component"),description:t("text_component"),background:(0,i.Opt)(o()),frame:(0,i.Opt)(o({enum:["task","challenge","goal"]})),show_toast:(0,i.Opt)((0,i.BooleanNode)()),announce_to_chat:(0,i.Opt)((0,i.BooleanNode)()),hidden:(0,i.Opt)((0,i.BooleanNode)())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:(0,i.Opt)(o({validator:"resource",params:{pool:"$advancement"}})),criteria:(0,i.MapNode)(o(),t("advancement_criteria")),requirements:(0,i.Opt)((0,i.ListNode)((0,i.ListNode)(o()))),rewards:(0,i.Opt)((0,i.ObjectNode)({function:(0,i.Opt)(o({validator:"resource",params:{pool:"$function"}})),loot:(0,i.Opt)((0,i.ListNode)(o({validator:"resource",params:{pool:"$loot_table"}}))),recipes:(0,i.Opt)((0,i.ListNode)(o({validator:"resource",params:{pool:"$recipe"}}))),experience:(0,i.Opt)((0,i.NumberNode)({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),n.register("advancement_criteria",(0,i.ObjectNode)({trigger:o({validator:"resource",params:{pool:e.get("advancement_trigger")}}),conditions:(0,i.Opt)((0,i.ObjectNode)({[i.Switch]:["pop",{push:"trigger"}],[i.Case]:{"minecraft:bee_nest_destroyed":{block:(0,i.Opt)(o({validator:"resource",params:{pool:"block"}})),num_bees_inside:(0,i.Opt)((0,i.NumberNode)({integer:!0})),item:(0,i.Opt)(t("item_predicate"))},"minecraft:bred_animals":{parent:(0,i.Opt)(t("entity_predicate")),partner:(0,i.Opt)(t("entity_predicate")),child:(0,i.Opt)(t("entity_predicate"))},"minecraft:brewed_potion":{potion:(0,i.Opt)(o({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:(0,i.Opt)(o({enum:"dimension"})),to:(0,i.Opt)(o({enum:"dimension"}))},"minecraft:channeled_lightning":{victims:(0,i.Opt)((0,i.ListNode)((0,i.Opt)(t("entity_predicate"))))},"minecraft:construct_beacon":{level:(0,i.Opt)((0,k.Range)())},"minecraft:consume_item":{item:(0,i.Opt)(t("item_predicate"))},"minecraft:cured_zombie_villager":{villager:(0,i.Opt)(t("entity_predicate")),zombie:(0,i.Opt)(t("entity_predicate"))},"minecraft:effects_changed":{effects:(0,i.Opt)((0,i.MapNode)(o({validator:"resource",params:{pool:"mob_effect"}}),t("status_effect_predicate")))},"minecraft:enter_block":{block:(0,i.Opt)(o({validator:"resource",params:{pool:"block"}})),state:(0,i.Opt)((0,i.MapNode)(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:(0,i.Opt)((0,k.Range)()),item:(0,i.Opt)(t("item_predicate"))},"minecraft:entity_hurt_player":{damage:(0,i.Opt)(t("damage_predicate"))},"minecraft:entity_killed_player":{entity:(0,i.Opt)(t("entity_predicate")),killing_blow:(0,i.Opt)(t("damage_source_predicate"))},"minecraft:filled_bucket":{item:(0,i.Opt)(t("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:(0,i.Opt)(t("entity_predicate")),item:(0,i.Opt)(t("item_predicate"))},"minecraft:hero_of_the_village":T.LocationFields,"minecraft:inventory_changed":{slots:(0,i.Opt)((0,i.ObjectNode)({empty:(0,i.Opt)((0,k.Range)()),occupied:(0,i.Opt)((0,k.Range)()),full:(0,i.Opt)((0,k.Range)())})),items:(0,i.Opt)((0,i.ListNode)(t("item_predicate")))},"minecraft:item_durability_changed":{delta:(0,i.Opt)((0,k.Range)()),durability:(0,i.Opt)((0,k.Range)()),item:(0,i.Opt)(t("item_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:(0,i.Opt)((0,k.Range)()),victims:(0,i.Opt)((0,i.ListNode)((0,i.Opt)(t("entity_predicate"))))},"minecraft:levitation":{distance:(0,i.Opt)(t("distance_predicate")),duration:(0,i.Opt)((0,k.Range)())},"minecraft:location":T.LocationFields,"minecraft:nether_travel":{distance:(0,i.Opt)(t("distance_predicate")),entered:(0,i.Opt)(t("location_predicate")),exited:(0,i.Opt)(t("location_predicate"))},"minecraft:placed_block":{block:(0,i.Opt)(o({validator:"resource",params:{pool:"block"}})),state:(0,i.Opt)((0,i.MapNode)(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:(0,i.Opt)(t("item_predicate")),location:(0,i.Opt)(t("location_predicate"))},"minecraft:player_hurt_entity":{damage:(0,i.Opt)(t("damage_predicate")),entity:(0,i.Opt)(t("entity_predicate"))},"minecraft:player_killed_entity":{entity:(0,i.Opt)(t("entity_predicate")),killing_blow:(0,i.Opt)(t("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:o({validator:"resource",params:{pool:"$recipe"}})},"minecraft:safely_harvest_honey":{block:(0,i.Opt)((0,i.ObjectNode)({block:(0,i.Opt)(o({validator:"resource",params:{pool:"block"}})),tag:(0,i.Opt)(o({validator:"resource",params:{pool:"$tag/block"}}))})),item:(0,i.Opt)(t("item_predicate"))},"minecraft:slept_in_bed":T.LocationFields,"minecraft:slide_down_block":{block:(0,i.Opt)(o({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:(0,i.Opt)(t("item_predicate"))},"minecraft:summoned_entity":{entity:(0,i.Opt)(t("entity_predicate"))},"minecraft:tame_animal":{entity:(0,i.Opt)(t("entity_predicate"))},"minecraft:used_ender_eye":{distance:(0,i.Opt)((0,k.Range)())},"minecraft:used_totem":{item:(0,i.Opt)(t("item_predicate"))},"minecraft:villager_trade":{villager:(0,i.Opt)(t("entity_predicate")),item:(0,i.Opt)(t("item_predicate"))},"minecraft:voluntary_exile":T.LocationFields}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))}F.initAdvancementSchemas=_e;var z={},E={};Object.defineProperty(E,"__esModule",{value:!0});E.initModelSchemas=void 0;const m=h;function fe(n,e){m.Reference.bind(void 0,n);const t=m.StringNode.bind(void 0,e),o=(c,a,d)=>(0,m.ListNode)((0,m.NumberNode)({min:a,max:d}),{minLength:c,maxLength:c}),s=(0,m.ChoiceNode)([{type:"alias",match:c=>typeof c=="string"&&c.startsWith("#"),node:t(),change:c=>typeof c=="string"?`#${c}`:"#0"},{type:"reference",match:c=>typeof c=="string",node:t({validator:"resource",params:{pool:"$texture"}}),change:c=>typeof c=="string"?c.replace(/^#/,""):""}],{choiceContext:"texture"});n.register("model",(0,m.Mod)((0,m.ObjectNode)({parent:(0,m.Opt)(t({validator:"resource",params:{pool:"$model"}})),ambientocclusion:(0,m.Opt)((0,m.BooleanNode)()),gui_light:(0,m.Opt)(t({enum:"gui_light"})),textures:(0,m.Opt)((0,m.MapNode)(t(),s)),elements:(0,m.Opt)((0,m.ListNode)((0,m.ObjectNode)({from:o(3,-16,32),to:o(3,-16,32),rotation:(0,m.Opt)((0,m.ObjectNode)({origin:o(3),axis:t({enum:"axis"}),angle:(0,m.NumberEnum)({values:[-45,-22.5,0,22.5,45]}),rescale:(0,m.Opt)((0,m.BooleanNode)())})),shade:(0,m.Opt)((0,m.BooleanNode)()),faces:(0,m.MapNode)(t({enum:"direction"}),(0,m.ObjectNode)({texture:s,uv:(0,m.Opt)(o(4)),cullface:(0,m.Opt)(t({enum:"direction"})),rotation:(0,m.Opt)((0,m.NumberNode)({integer:!0})),tintindex:(0,m.Opt)((0,m.NumberNode)({integer:!0}))}))},{context:"model_element"}))),display:(0,m.Opt)((0,m.MapNode)(t({enum:"display_position"}),(0,m.ObjectNode)({rotation:o(3),translation:o(3,-80,80),scale:o(3,-4,4)},{context:"item_transform"}))),overrides:(0,m.Opt)((0,m.ListNode)((0,m.ObjectNode)({predicate:(0,m.MapNode)(t({enum:"item_model_predicates"}),(0,m.NumberNode)()),model:t({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))}E.initModelSchemas=fe;var D={};Object.defineProperty(D,"__esModule",{value:!0});D.initBlockDefinitionSchemas=void 0;const f=h;function ge(n,e){const t=f.Reference.bind(void 0,n),o=f.StringNode.bind(void 0,e);n.register("block_definition",(0,f.Mod)((0,f.ChoiceNode)([{type:"variants",match:c=>c.variants!==void 0,node:(0,f.ObjectNode)({variants:(0,f.MapNode)(o(),t("model_variant"))}),change:c=>({variants:{"":{}}})},{type:"multipart",match:c=>c.multipart!==void 0,node:(0,f.ObjectNode)({multipart:(0,f.ListNode)((0,f.ObjectNode)({when:(0,f.Opt)(t("multipart_condition")),apply:t("model_variant")}))}),change:c=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const s={model:o({validator:"resource",params:{pool:"$model"}}),x:(0,f.Opt)((0,f.NumberEnum)({integer:!0,values:[0,90,180,270]})),y:(0,f.Opt)((0,f.NumberEnum)({integer:!0,values:[0,90,180,270]})),uvlock:(0,f.Opt)((0,f.BooleanNode)())};n.register("model_variant",(0,f.ChoiceNode)([{type:"object",node:(0,f.ObjectNode)(s),change:c=>Array.isArray(c)&&c.length>0?c[0]:{}},{type:"list",node:(0,f.ListNode)((0,f.ObjectNode)(Z(g({},s),{weight:(0,f.Opt)((0,f.NumberNode)({integer:!0,min:1}))}),{context:"model_variant"})),change:c=>[g({weight:1},c)]}],{context:"model_variant"})),n.register("multipart_condition",(0,f.ChoiceNode)([{type:"object",priority:-1,match:()=>!0,node:(0,f.MapNode)(o(),o()),change:c=>typeof c=="object"&&Array.isArray(c==null?void 0:c.OR)&&c.OR.length>0?c.OR[0]:{}},{type:"or",match:c=>typeof c=="object"&&(c==null?void 0:c.OR)!==void 0,node:(0,f.ObjectNode)({OR:(0,f.ListNode)(t("multipart_condition"))}),change:c=>({OR:[c!=null?c:{}]})}],{context:"multipart_condition"}))}D.initBlockDefinitionSchemas=ge;Object.defineProperty(z,"__esModule",{value:!0});z.initAssetsSchemas=void 0;const be=E,ye=D;function Oe(n,e){(0,ye.initBlockDefinitionSchemas)(n,e),(0,be.initModelSchemas)(n,e)}z.initAssetsSchemas=Oe;var I={};Object.defineProperty(I,"__esModule",{value:!0});I.initConditionSchemas=void 0;const S=h,he=L;function Ne(n,e){const t=S.Reference.bind(void 0,n),o=S.StringNode.bind(void 0,e);n.register("predicate",(0,S.ObjectOrList)(t("condition"),{choiceContext:"condition"})),n.register("condition",(0,S.Mod)((0,S.ObjectNode)({condition:o({validator:"resource",params:{pool:"loot_condition_type"}}),[S.Switch]:[{push:"condition"}],[S.Case]:he.ConditionCases},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))}I.initConditionSchemas=Ne;var H={},O={};Object.defineProperty(O,"__esModule",{value:!0});O.LootFunctions=O.LootConditions=O.LootCopySources=O.LootEntitySources=O.LootTableTypes=void 0;O.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]}]]);O.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]);O.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]);O.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",[]]]);O.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(H,"__esModule",{value:!0});H.initLootTableSchemas=void 0;const r=h,P=O,N=L;function ve(n,e){const t=r.Reference.bind(void 0,n),o=r.StringNode.bind(void 0,e),s={conditions:(0,r.Opt)((0,r.ListNode)(t("loot_condition")))},c=g({functions:(0,r.Opt)((0,r.ListNode)(t("loot_function")))},s);function a(b,x,y){const W=[],ae=$=>e.get(x).filter(X=>{var B;return((B=b.get(X))!==null&&B!==void 0?B:[]).every(Y=>$.includes(Y))});for(const[$,{allows:X,requires:B}]of P.LootTableTypes){const Q=[...X,...B];W.push({match:Y=>Y.getModel().get(new r.Path(["type"]))===$,node:y(ae(Q))})}return W.push({match:$=>!0,node:y(x)}),(0,r.SwitchNode)(W)}const d=a(P.LootConditions,"loot_condition_type",b=>o({validator:"resource",params:{pool:b instanceof Array?b:"loot_condition_type"}})),_=a(P.LootFunctions,"loot_function_type",b=>o({validator:"resource",params:{pool:b instanceof Array?b:"loot_function_type"}})),u=a(P.LootEntitySources,"entity_source",b=>o({enum:b})),v=a(P.LootCopySources,"copy_source",b=>o({enum:b}));n.register("loot_table",(0,r.Mod)((0,r.ObjectNode)({type:(0,r.Opt)(o({validator:"resource",params:{pool:e.get("loot_context_type")}})),pools:(0,r.Opt)((0,r.ListNode)((0,r.Mod)((0,r.ObjectNode)(g({rolls:(0,N.Range)({allowBinomial:!0,integer:!0}),bonus_rolls:(0,r.Opt)((0,N.Range)({integer:!0})),entries:(0,r.ListNode)(t("loot_entry"))},c),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:(0,r.Opt)((0,r.ListNode)(t("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const C={enabled:b=>{var x;return((x=b.pop().get())===null||x===void 0?void 0:x.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(b.push("type").get())}};n.register("loot_entry",(0,r.Mod)((0,r.ObjectNode)({type:o({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:(0,r.Opt)((0,r.Mod)((0,r.NumberNode)({integer:!0,min:1}),C)),quality:(0,r.Opt)((0,r.Mod)((0,r.NumberNode)({integer:!0}),C)),[r.Switch]:[{push:"type"}],[r.Case]:{"minecraft:alternatives":g({children:(0,r.ListNode)(t("loot_entry"))},c),"minecraft:dynamic":g({name:o()},c),"minecraft:group":g({children:(0,r.ListNode)(t("loot_entry"))},c),"minecraft:item":g({name:o({validator:"resource",params:{pool:"item"}})},c),"minecraft:loot_table":g({name:o({validator:"resource",params:{pool:"$loot_table"}})},c),"minecraft:sequence":g({children:(0,r.ListNode)(t("loot_entry"))},c),"minecraft:tag":g({name:o({validator:"resource",params:{pool:"$tag/item"}}),expand:(0,r.Opt)((0,r.BooleanNode)())},c)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),n.register("loot_function",(0,r.Mod)((0,r.ObjectNode)({function:_,[r.Switch]:[{push:"function"}],[r.Case]:(()=>{const b={"minecraft:apply_bonus":{enchantment:o({validator:"resource",params:{pool:"enchantment"}}),formula:o({validator:"resource",params:{pool:e.get("loot_table_apply_bonus_formula")}}),parameters:(0,r.Mod)((0,r.ObjectNode)({bonusMultiplier:(0,r.Mod)((0,r.NumberNode)({integer:!0}),{enabled:y=>y.pop().push("formula").get()==="minecraft:uniform_bonus_count"}),extra:(0,r.Mod)((0,r.NumberNode)({integer:!0}),{enabled:y=>y.pop().push("formula").get()==="minecraft:binomial_with_bonus_count"}),probability:(0,r.Mod)((0,r.NumberNode)(),{enabled:y=>y.pop().push("formula").get()==="minecraft:binomial_with_bonus_count"})}),{enabled:y=>y.push("formula").get()!=="minecraft:ore_drops"})},"minecraft:copy_name":{source:v},"minecraft:copy_nbt":{source:v,ops:(0,r.ListNode)((0,r.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:(0,r.ListNode)(o({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:(0,r.Opt)((0,r.ListNode)(o({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:(0,N.Range)({allowBinomial:!0}),treasure:(0,r.Opt)((0,r.BooleanNode)())},"minecraft:exploration_map":{destination:(0,r.Opt)(o({enum:"structure_feature"})),decoration:(0,r.Opt)(o({enum:"map_decoration"})),zoom:(0,r.Opt)((0,r.NumberNode)({integer:!0})),search_radius:(0,r.Opt)((0,r.NumberNode)({integer:!0})),skip_existing_chunks:(0,r.Opt)((0,r.BooleanNode)())},"minecraft:fill_player_head":{entity:u},"minecraft:limit_count":{limit:(0,N.Range)({bounds:!0})},"minecraft:looting_enchant":{count:(0,N.Range)({bounds:!0}),limit:(0,r.Opt)((0,r.NumberNode)({integer:!0}))},"minecraft:set_attributes":{modifiers:(0,r.ListNode)(t("attribute_modifier"))},"minecraft:set_contents":{entries:(0,r.ListNode)(t("loot_entry"))},"minecraft:set_count":{count:(0,N.Range)({allowBinomial:!0})},"minecraft:set_damage":{damage:(0,N.Range)({forceRange:!0})},"minecraft:set_loot_table":{name:o({validator:"resource",params:{pool:"$loot_table"}}),seed:(0,r.Opt)((0,r.NumberNode)({integer:!0}))},"minecraft:set_lore":{entity:(0,r.Opt)(u),lore:(0,r.ListNode)(t("text_component")),replace:(0,r.Opt)((0,r.BooleanNode)())},"minecraft:set_name":{entity:(0,r.Opt)(u),name:(0,r.Opt)(t("text_component"))},"minecraft:set_nbt":{tag:o({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:(0,r.Opt)((0,r.ListNode)((0,r.ObjectNode)({type:o({validator:"resource",params:{pool:"mob_effect"}}),duration:(0,N.Range)()})))}},x={};return e.get("loot_function_type").forEach(y=>{x[y]=g(g({},b[y]),s)}),x})()},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),n.register("loot_condition",(0,r.Mod)((0,r.ObjectNode)({condition:d,[r.Switch]:[{push:"condition"}],[r.Case]:Z(g({},N.ConditionCases),{"minecraft:entity_properties":{entity:u,predicate:t("entity_predicate")},"minecraft:entity_scores":{entity:u,scores:(0,r.MapNode)(o({validator:"objective"}),(0,N.Range)({bounds:!0}))}})},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),n.register("attribute_modifier",(0,r.Mod)((0,r.ObjectNode)({attribute:o({validator:"resource",params:{pool:"attribute"}}),name:o(),amount:(0,N.Range)({bounds:!0}),operation:o({enum:["addition","multiply_base","multiply_total"]}),id:(0,r.Opt)(o({validator:"uuid"})),slot:(0,r.StringOrList)(o({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))}H.initLootTableSchemas=ve;var V={};Object.defineProperty(V,"__esModule",{value:!0});V.initPackMcmetaSchemas=void 0;const M=h;function ke(n,e){n.register("pack_mcmeta",(0,M.Mod)((0,M.ObjectNode)({pack:(0,M.Mod)((0,M.ObjectNode)({pack_format:(0,M.Mod)((0,M.NumberNode)({integer:!0,min:5,max:5}),{default:()=>5}),description:(0,M.Reference)(n,"text_component")}),{default:()=>({pack_format:5,description:""})})}),{default:()=>({pack:{pack_format:5,description:""}})}))}V.initPackMcmetaSchemas=ke;var G={};Object.defineProperty(G,"__esModule",{value:!0});G.initRecipeSchemas=void 0;const l=h;function xe(n,e){const t=l.Reference.bind(void 0,n),o=l.StringNode.bind(void 0,e);n.register("recipe",(0,l.Mod)((0,l.ObjectNode)({type:o({validator:"resource",params:{pool:"recipe_serializer"}}),[l.Switch]:[{push:"type"}],[l.Case]:{"minecraft:crafting_shaped":{group:(0,l.Opt)(o({enum:"recipe_group",additional:!0})),pattern:(0,l.ListNode)(o()),key:(0,l.MapNode)(o(),t("recipe_ingredient")),result:t("recipe_result")},"minecraft:crafting_shapeless":{group:(0,l.Opt)(o()),ingredients:(0,l.ListNode)(t("recipe_ingredient")),result:t("recipe_result")},"minecraft:smelting":{group:(0,l.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:(0,l.Opt)((0,l.NumberNode)()),cookingtime:(0,l.Opt)((0,l.Mod)((0,l.NumberNode)({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:(0,l.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:(0,l.Opt)((0,l.NumberNode)()),cookingtime:(0,l.Opt)((0,l.Mod)((0,l.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:(0,l.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:(0,l.Opt)((0,l.NumberNode)()),cookingtime:(0,l.Opt)((0,l.Mod)((0,l.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:(0,l.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:(0,l.Opt)((0,l.NumberNode)()),cookingtime:(0,l.Opt)((0,l.Mod)((0,l.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:(0,l.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),count:(0,l.NumberNode)({integer:!0})},"minecraft:smithing":{group:(0,l.Opt)(o()),base:t("recipe_ingredient_object"),addition:t("recipe_ingredient_object"),result:t("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),n.register("recipe_ingredient",(0,l.Mod)((0,l.ChoiceNode)([{type:"object",node:t("recipe_ingredient_object"),change:s=>s[0]},{type:"list",node:(0,l.ListNode)(t("recipe_ingredient_object")),change:s=>[s]}]),{default:()=>({item:"minecraft:stone"})})),n.register("recipe_ingredient_object",(0,l.Mod)((0,l.ObjectNode)({item:(0,l.Opt)(o({validator:"resource",params:{pool:"item"}})),tag:(0,l.Opt)(o({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),n.register("recipe_result",(0,l.Mod)((0,l.ObjectNode)({item:o({validator:"resource",params:{pool:"item"}}),count:(0,l.Opt)((0,l.Mod)((0,l.NumberNode)({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))}G.initRecipeSchemas=xe;var K={};Object.defineProperty(K,"__esModule",{value:!0});K.initTagsSchemas=void 0;const j=h;function je(n,e){const t=j.StringNode.bind(void 0,e),o=s=>(0,j.Mod)((0,j.ObjectNode)({replace:(0,j.Opt)((0,j.BooleanNode)()),values:(0,j.ListNode)((0,j.ChoiceNode)([{type:"string",node:t({validator:"resource",params:{pool:s,allowTag:!0}}),change:c=>c.id},{type:"object",node:(0,j.ObjectNode)({id:t({validator:"resource",params:{pool:s,allowTag:!0,allowUnknown:!0}}),required:(0,j.BooleanNode)()}),change:c=>({id:c})}]))},{context:"tag"}),{default:()=>({values:[]})});n.register("block_tag",o("block")),n.register("entity_type_tag",o("entity_type")),n.register("fluid_tag",o("fluid")),n.register("function_tag",o("$function")),n.register("item_tag",o("item"))}K.initTagsSchemas=je;var U={};Object.defineProperty(U,"__esModule",{value:!0});U.initTextComponentSchemas=void 0;const p=h;function we(n,e){const t=p.Reference.bind(void 0,n),o=p.StringNode.bind(void 0,e),s=a=>{var d;return a instanceof Array?s(a[0]):(d=a==null?void 0:a.text)!==null&&d!==void 0?d:typeof a=="object"?"":a==null?void 0:a.toString()};n.register("text_component",(0,p.Mod)((0,p.ChoiceNode)([{type:"object",node:t("text_component_object"),change:a=>a instanceof Array?typeof a[0]=="object"?a[0]:{text:s(a[0])}:typeof a=="object"?a:{text:s(a)}},{type:"list",node:t("text_component_list"),change:a=>[a]},{type:"string",priority:1,node:o(),change:s},{type:"number",node:(0,p.NumberNode)(),change:a=>{const d=parseFloat(s(a));return isFinite(d)?d:a?1:0}},{type:"boolean",node:(0,p.BooleanNode)(),change:a=>{const d=s(a);return d==="true"||d==="false"?d==="true":!!d}}],{context:"text_component"}),{default:()=>({text:""})}));const c={color:(0,p.Opt)(o()),bold:(0,p.Opt)((0,p.BooleanNode)()),italic:(0,p.Opt)((0,p.BooleanNode)()),underlined:(0,p.Opt)((0,p.BooleanNode)()),strikethrough:(0,p.Opt)((0,p.BooleanNode)()),obfuscated:(0,p.Opt)((0,p.BooleanNode)()),insertion:(0,p.Opt)(o()),clickEvent:(0,p.Opt)((0,p.ObjectNode)({action:o({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[p.Switch]:[{push:"action"}],[p.Case]:{change_page:{value:o()},copy_to_clipboard:{value:o()},open_file:{value:o()},open_url:{value:o()},run_command:{value:o({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:o({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:(0,p.Opt)((0,p.ObjectNode)({action:o({enum:["show_text","show_item","show_entity"]}),[p.Switch]:[{push:"action"}],[p.Case]:{show_text:{value:(0,p.Opt)(t("text_component"))},show_item:{value:(0,p.Opt)(o({validator:"nbt",params:{module:"util::InventoryItem"}}))},show_entity:{value:(0,p.Opt)((0,p.ObjectNode)({name:(0,p.Opt)(o()),type:(0,p.Opt)(o()),id:(0,p.Opt)(o())}))}}})),extra:(0,p.Opt)(t("text_component_list"))};n.register("text_component_object",(0,p.Mod)((0,p.ChoiceNode)([{type:"text",match:a=>typeof a=="object",change:a=>({text:""}),priority:-1,node:(0,p.ObjectNode)(g({text:o()},c))},{type:"translation",match:a=>(a==null?void 0:a.translate)!==void 0,change:a=>({translate:""}),node:(0,p.ObjectNode)(g({translate:o(),with:(0,p.Opt)(t("text_component_list"))},c))},{type:"score",match:a=>(a==null?void 0:a.score)!==void 0,change:a=>({score:{}}),node:(0,p.ObjectNode)(g({score:(0,p.ObjectNode)({name:o({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:o({validator:"objective"}),value:(0,p.Opt)(o())})},c))},{type:"selector",match:a=>(a==null?void 0:a.selector)!==void 0,change:a=>({selector:""}),node:(0,p.ObjectNode)(g({selector:o({validator:"entity",params:{amount:"multiple",type:"entities"}})},c))},{type:"keybind",match:a=>(a==null?void 0:a.keybind)!==void 0,change:a=>({keybind:""}),node:(0,p.ObjectNode)(g({keybind:o({enum:"keybind",additional:!0})},c))},{type:"nbt",match:a=>(a==null?void 0:a.nbt)!==void 0,change:a=>({nbt:""}),node:(0,p.ObjectNode)(g({nbt:o({validator:"nbt_path"}),block:(0,p.Opt)(o({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:(0,p.Opt)(o({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:(0,p.Opt)(o({validator:"resource",params:{pool:"$storage"}})),interpret:(0,p.Opt)((0,p.BooleanNode)())},c))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),n.register("text_component_list",(0,p.Mod)((0,p.ListNode)(t("text_component")),{default:()=>[{text:""}]}))}U.initTextComponentSchemas=we;Object.defineProperty(A,"__esModule",{value:!0});A.initSchemas=void 0;const Se=F,Me=z,Ce=L,Re=I,Le=H,Be=V,Pe=J,$e=G,Te=K,qe=U;function Ae(n,e){(0,Ce.initCommonSchemas)(n,e),(0,Pe.initPredicatesSchemas)(n,e),(0,Se.initAdvancementSchemas)(n,e),(0,Me.initAssetsSchemas)(n,e),(0,Re.initConditionSchemas)(n,e),(0,Le.initLootTableSchemas)(n,e),(0,Be.initPackMcmetaSchemas)(n,e),(0,$e.initRecipeSchemas)(n,e),(0,Te.initTagsSchemas)(n,e),(0,qe.initTextComponentSchemas)(n,e)}A.initSchemas=Ae;var Fe=R&&R.__createBinding||(Object.create?function(n,e,t,o){o===void 0&&(o=t);var s=Object.getOwnPropertyDescriptor(e,t);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(n,o,s)}:function(n,e,t,o){o===void 0&&(o=t),n[o]=e[t]}),ze=R&&R.__setModuleDefault||(Object.create?function(n,e){Object.defineProperty(n,"default",{enumerable:!0,value:e})}:function(n,e){n.default=e}),Ee=R&&R.__importStar||function(n){if(n&&n.__esModule)return n;var e={};if(n!=null)for(var t in n)t!=="default"&&Object.prototype.hasOwnProperty.call(n,t)&&Fe(e,n,t);return ze(e,n),e};Object.defineProperty(w,"__esModule",{value:!0});var oe=w.getSchemas=re=w.getCollections=ie=w.lootContext=void 0;const ne=h,De=q,Ie=A;var ie=w.lootContext=Ee(O);function He(){const n=new ne.CollectionRegistry;return(0,De.initCollections)(n),n}var re=w.getCollections=He;function Ve(n){const e=new ne.SchemaRegistry;return(0,Ie.initSchemas)(e,n),e}oe=w.getSchemas=Ve;var Ue=me({__proto__:null,get getSchemas(){return oe},get getCollections(){return re},get lootContext(){return ie},default:w},[w]);export{Ue as i}; -//# sourceMappingURL=index.e81c6084.js.map +var ce=Object.defineProperty,de=Object.defineProperties;var pe=Object.getOwnPropertyDescriptors;var ee=Object.getOwnPropertySymbols;var le=Object.prototype.hasOwnProperty,se=Object.prototype.propertyIsEnumerable;var te=(n,e,t)=>e in n?ce(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,g=(n,e)=>{for(var t in e||(e={}))le.call(e,t)&&te(n,t,e[t]);if(ee)for(var t of ee(e))se.call(e,t)&&te(n,t,e[t]);return n},Z=(n,e)=>de(n,pe(e));import{v as h,u as R}from"./index.d528c217.js";function me(n,e){return e.forEach(function(t){t&&typeof t!="string"&&!Array.isArray(t)&&Object.keys(t).forEach(function(o){if(o!=="default"&&!(o in n)){var s=Object.getOwnPropertyDescriptor(t,o);Object.defineProperty(n,o,s.get?s:{enumerable:!0,get:function(){return t[o]}})}})}),Object.freeze(Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}))}var w={},q={};Object.defineProperty(q,"__esModule",{value:!0});q.initCollections=void 0;function ue(n){n.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:killed_by_crossbow","minecraft:levitation","minecraft:location","minecraft:nether_travel","minecraft:placed_block","minecraft:player_hurt_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","minecraft:shot_crossbow","minecraft:safely_harvest_honey","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:summoned_entity","minecraft:tame_animal","minecraft:tick","minecraft:used_ender_eye","minecraft:used_totem","minecraft:villager_trade","minecraft:voluntary_exile"]),n.register("loot_pool_entry_type",["minecraft:empty","minecraft:item","minecraft:tag","minecraft:loot_table","minecraft:alternatives","minecraft:sequence","minecraft:group","minecraft:dynamic"]),n.register("loot_condition_type",["minecraft:alternative","minecraft:inverted","minecraft:reference","minecraft:entity_properties","minecraft:block_state_property","minecraft:match_tool","minecraft:damage_source_properties","minecraft:location_check","minecraft:weather_check","minecraft:time_check","minecraft:entity_scores","minecraft:random_chance","minecraft:random_chance_with_looting","minecraft:table_bonus","minecraft:killed_by_player","minecraft:survives_explosion"]),n.register("loot_function_type",["minecraft:set_count","minecraft:set_damage","minecraft:set_name","minecraft:set_lore","minecraft:set_nbt","minecraft:set_attributes","minecraft:set_contents","minecraft:enchant_randomly","minecraft:enchant_with_levels","minecraft:looting_enchant","minecraft:limit_count","minecraft:furnace_smelt","minecraft:explosion_decay","minecraft:fill_player_head","minecraft:copy_name","minecraft:copy_nbt","minecraft:copy_state","minecraft:apply_bonus","minecraft:exploration_map","minecraft:set_stew_effect"]),n.register("attribute",["generic.maxHealth","generic.followRange","generic.knockbackResistance","generic.movementSpeed","generic.attackDamage","generic.armor","generic.armorToughness","generic.attackSpeed","generic.luck","horse.jumpStrength","generic.attackKnockback","generic.flyingSpeed","zombie.spawnReinforcements"]),n.register("structure_feature",["pillager_outpost","mineshaft","mansion","jungle_pyramid","desert_pyramid","igloo","shipwreck","swamp_hut","stronghold","monument","ocean_ruin","fortress","endcity","buried_treasure","village"]),n.register("dimension",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),n.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"]),n.register("slot",["mainhand","offhand","head","chest","legs","feet"]),n.register("gamemode",["survival","creative","adventure","spectator"]),n.register("entity_source",["this","direct_killer","killer","killer_player"]),n.register("copy_source",["block_entity","this","killer","killer_player"]),n.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),n.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"]),n.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"]),n.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"]),n.register("direction",["down","up","north","east","south","west"]),n.register("axis",["x","y","z"]),n.register("display_position",["firstperson_righthand","firstperson_lefthand","thirdperson_righthand","thirdperson_lefthand","gui","head","ground","fixed"]),n.register("gui_light",["front","side"]),n.register("item_model_predicates",["angle","blocking","broken","cast","charged","cooldown","custom_model_data","damage","damaged","firework","lefthanded","pull","pulling","throwing","time"]),n.register("cat_texture",["textures/entity/cat/tabby.png","textures/entity/cat/black.png","textures/entity/cat/red.png","textures/entity/cat/siamese.png","textures/entity/cat/british_shorthair.png","textures/entity/cat/calico.png","textures/entity/cat/persian.png","textures/entity/cat/ragdoll.png","textures/entity/cat/white.png","textures/entity/cat/jellie.png","textures/entity/cat/all_black.png"])}q.initCollections=ue;var A={},F={},L={};(function(n){Object.defineProperty(n,"__esModule",{value:!0}),n.initCommonSchemas=n.Range=n.ConditionCases=void 0;const e=h;function t(o,s){const c=e.StringNode.bind(void 0,s),a=e.Reference.bind(void 0,o);o.register("block_state",(0,e.Mod)((0,e.ObjectNode)({Name:c({validator:"resource",params:{pool:"block"}}),Properties:(0,e.Opt)((0,e.MapNode)(c(),c(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),o.register("fluid_state",(0,e.Mod)((0,e.ObjectNode)({Name:c({validator:"resource",params:{pool:"fluid"}}),Properties:(0,e.Opt)((0,e.MapNode)(c(),c()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),o.register("block_pos",(0,e.Mod)((0,e.ListNode)((0,e.NumberNode)({integer:!0})),{default:()=>[0,0,0]})),n.Range=d=>(0,e.ChoiceNode)([...d!=null&&d.forceRange?[]:[{type:"number",node:(0,e.NumberNode)(d),change:_=>{var u,v,C;return _===void 0?0:(C=(v=(u=_.min)!==null&&u!==void 0?u:_.max)!==null&&v!==void 0?v:_.n)!==null&&C!==void 0?C:0}}],{type:"object",priority:-1,node:(0,e.ObjectNode)({min:d!=null&&d.bounds?(0,e.NumberNode)(d):(0,e.Opt)((0,e.NumberNode)(d)),max:d!=null&&d.bounds?(0,e.NumberNode)(d):(0,e.Opt)((0,e.NumberNode)(d))},{context:"range"}),change:_=>({min:typeof _=="number"?_:_===void 0?1:_.n,max:typeof _=="number"?_:_===void 0?1:_.n})},...d!=null&&d.allowBinomial?[{type:"binomial",node:(0,e.ObjectNode)({type:c({enum:["minecraft:binomial"]}),n:(0,e.NumberNode)({integer:!0,min:0}),p:(0,e.NumberNode)({min:0,max:1})},{context:"range"}),match:_=>_!==void 0&&_.type==="minecraft:binomial",change:_=>{var u,v;return{type:"minecraft:binomial",n:typeof _=="number"?_:_===void 0?1:(v=(u=_.min)!==null&&u!==void 0?u:_.max)!==null&&v!==void 0?v:1,p:.5}}}]:[]],{choiceContext:"range"}),n.ConditionCases={"minecraft:alternative":{terms:(0,e.ListNode)(a("condition"))},"minecraft:block_state_property":{block:c({validator:"resource",params:{pool:"block"}}),properties:(0,e.MapNode)(c(),c(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:a("damage_source_predicate")},"minecraft:entity_properties":{entity:c({enum:"entity_source"}),predicate:a("entity_predicate")},"minecraft:entity_scores":{entity:c({enum:"entity_source"}),scores:(0,e.MapNode)(c({validator:"objective"}),(0,n.Range)({forceRange:!0,bounds:!0}))},"minecraft:inverted":{term:a("condition")},"minecraft:killed_by_player":{inverse:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:location_check":{offsetX:(0,e.Opt)((0,e.NumberNode)({integer:!0})),offsetY:(0,e.Opt)((0,e.NumberNode)({integer:!0})),offsetZ:(0,e.Opt)((0,e.NumberNode)({integer:!0})),predicate:a("location_predicate")},"minecraft:match_tool":{predicate:a("item_predicate")},"minecraft:random_chance":{chance:(0,e.NumberNode)({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:(0,e.NumberNode)({min:0,max:1}),looting_multiplier:(0,e.NumberNode)()},"minecraft:reference":{name:c({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:c({validator:"resource",params:{pool:"enchantment"}}),chances:(0,e.ListNode)((0,e.NumberNode)({min:0,max:1}))},"minecraft:time_check":{value:(0,n.Range)(),period:(0,e.Opt)((0,e.NumberNode)())},"minecraft:weather_check":{raining:(0,e.Opt)((0,e.BooleanNode)()),thundering:(0,e.Opt)((0,e.BooleanNode)())}}}n.initCommonSchemas=t})(L);var J={};(function(n){Object.defineProperty(n,"__esModule",{value:!0}),n.initPredicatesSchemas=n.LocationFields=void 0;const e=h,t=L;function o(s,c){const a=e.Reference.bind(void 0,s),d=e.StringNode.bind(void 0,c),_=(0,e.ChoiceNode)([{type:"string",node:d(),change:u=>typeof u=="boolean"||typeof u=="number"?u.toString():""},{type:"number",node:(0,e.NumberNode)(),change:u=>typeof u=="string"?parseInt(u):0},{type:"object",node:(0,e.ObjectNode)({min:(0,e.Opt)((0,e.NumberNode)({integer:!0})),max:(0,e.Opt)((0,e.NumberNode)({integer:!0}))}),change:u=>typeof u=="number"?{min:u,max:u}:{}},{type:"boolean",node:(0,e.BooleanNode)(),change:u=>u==="true"||u===1}]);s.register("item_predicate",(0,e.ObjectNode)({item:(0,e.Opt)(d({validator:"resource",params:{pool:"item"}})),tag:(0,e.Opt)(d({validator:"resource",params:{pool:"$tag/item"}})),count:(0,e.Opt)((0,t.Range)()),durability:(0,e.Opt)((0,t.Range)()),potion:(0,e.Opt)(d({validator:"resource",params:{pool:"potion"}})),nbt:(0,e.Opt)(d({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:(0,e.Opt)((0,e.ListNode)(a("enchantment_predicate")))},{context:"item"})),s.register("enchantment_predicate",(0,e.ObjectNode)({enchantment:(0,e.Opt)(d({validator:"resource",params:{pool:"enchantment"}})),levels:(0,e.Opt)((0,t.Range)())},{context:"enchantment"})),s.register("block_predicate",(0,e.ObjectNode)({block:(0,e.Opt)(d({validator:"resource",params:{pool:"block"}})),tag:(0,e.Opt)(d({validator:"resource",params:{pool:"$tag/block"}})),nbt:(0,e.Opt)(d({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:(0,e.Opt)((0,e.MapNode)(d(),_,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),s.register("fluid_predicate",(0,e.ObjectNode)({fluid:(0,e.Opt)(d({validator:"resource",params:{pool:"fluid"}})),tag:(0,e.Opt)(d({validator:"resource",params:{pool:"$tag/fluid"}})),state:(0,e.Opt)((0,e.MapNode)(d(),_))},{context:"fluid"})),n.LocationFields={position:(0,e.Opt)((0,e.ObjectNode)({x:(0,e.Opt)((0,t.Range)()),y:(0,e.Opt)((0,t.Range)()),z:(0,e.Opt)((0,t.Range)())})),biome:(0,e.Opt)(d({enum:"biome"})),feature:(0,e.Opt)(d({enum:"structure_feature"})),dimension:(0,e.Opt)(d({enum:"dimension"})),light:(0,e.Opt)((0,e.ObjectNode)({light:(0,e.Opt)((0,t.Range)({integer:!0,min:0,max:15}))})),block:(0,e.Opt)(a("block_predicate")),fluid:(0,e.Opt)(a("fluid_predicate"))},s.register("location_predicate",(0,e.ObjectNode)(n.LocationFields,{context:"location"})),s.register("statistic_predicate",(0,e.ObjectNode)({type:d({validator:"resource",params:{pool:"stat_type"}}),stat:d(),value:(0,t.Range)(),[e.Switch]:[{push:"type"}],[e.Case]:{"minecraft:mined":{stat:d({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:d({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:d({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:d({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:d({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:d({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:d({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:d({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:d({validator:"resource",params:{pool:"custom_stat"}})}}})),s.register("player_predicate",(0,e.ObjectNode)({gamemode:(0,e.Opt)(d({enum:"gamemode"})),level:(0,e.Opt)((0,t.Range)()),advancements:(0,e.Opt)((0,e.MapNode)(d({validator:"resource",params:{pool:"$advancement"}}),(0,e.ChoiceNode)([{type:"boolean",node:(0,e.BooleanNode)(),change:u=>!0},{type:"object",node:(0,e.MapNode)(d(),(0,e.BooleanNode)())}]))),recipes:(0,e.Opt)((0,e.MapNode)(d({validator:"resource",params:{pool:"$recipe"}}),(0,e.BooleanNode)())),stats:(0,e.Opt)((0,e.ListNode)(a("statistic_predicate")))},{context:"player"})),s.register("status_effect_predicate",(0,e.ObjectNode)({amplifier:(0,e.Opt)((0,t.Range)()),duration:(0,e.Opt)((0,t.Range)()),ambient:(0,e.Opt)((0,e.BooleanNode)()),visible:(0,e.Opt)((0,e.BooleanNode)())},{context:"status_effect"})),s.register("distance_predicate",(0,e.ObjectNode)({x:(0,e.Opt)((0,t.Range)()),y:(0,e.Opt)((0,t.Range)()),z:(0,e.Opt)((0,t.Range)()),absolute:(0,e.Opt)((0,t.Range)()),horizontal:(0,e.Opt)((0,t.Range)())},{context:"distance"})),s.register("entity_predicate",(0,e.ObjectNode)({type:(0,e.Opt)(d({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:(0,e.Opt)(d({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:(0,e.Opt)(d({validator:"team"})),location:(0,e.Opt)(a("location_predicate")),distance:(0,e.Opt)(a("distance_predicate")),flags:(0,e.Opt)((0,e.ObjectNode)({is_on_fire:(0,e.Opt)((0,e.BooleanNode)()),is_sneaking:(0,e.Opt)((0,e.BooleanNode)()),is_sprinting:(0,e.Opt)((0,e.BooleanNode)()),is_swimming:(0,e.Opt)((0,e.BooleanNode)()),is_baby:(0,e.Opt)((0,e.BooleanNode)())})),equipment:(0,e.Opt)((0,e.MapNode)(d({enum:"slot"}),a("item_predicate"))),player:(0,e.Opt)(a("player_predicate")),catType:(0,e.Opt)(d({enum:"cat_texture"})),effects:(0,e.Opt)((0,e.MapNode)(d({validator:"resource",params:{pool:"mob_effect"}}),a("status_effect_predicate")))},{context:"entity"})),s.register("damage_source_predicate",(0,e.ObjectNode)({is_explosion:(0,e.Opt)((0,e.BooleanNode)()),is_fire:(0,e.Opt)((0,e.BooleanNode)()),is_magic:(0,e.Opt)((0,e.BooleanNode)()),is_projectile:(0,e.Opt)((0,e.BooleanNode)()),is_lightning:(0,e.Opt)((0,e.BooleanNode)()),bypasses_armor:(0,e.Opt)((0,e.BooleanNode)()),bypasses_invulnerability:(0,e.Opt)((0,e.BooleanNode)()),bypasses_magic:(0,e.Opt)((0,e.BooleanNode)()),source_entity:(0,e.Opt)(a("entity_predicate")),direct_entity:(0,e.Opt)(a("entity_predicate"))},{context:"damage_source"})),s.register("damage_predicate",(0,e.ObjectNode)({dealt:(0,e.Opt)((0,t.Range)()),taken:(0,e.Opt)((0,t.Range)()),blocked:(0,e.Opt)((0,e.BooleanNode)()),source_entity:(0,e.Opt)(a("entity_predicate")),type:(0,e.Opt)(a("damage_source_predicate"))},{context:"damage"}))}n.initPredicatesSchemas=o})(J);Object.defineProperty(F,"__esModule",{value:!0});F.initAdvancementSchemas=void 0;const i=h,k=L,T=J;function _e(n,e){const t=i.Reference.bind(void 0,n),o=i.StringNode.bind(void 0,e);n.register("advancement",(0,i.Mod)((0,i.ObjectNode)({display:(0,i.Opt)((0,i.Mod)((0,i.ObjectNode)({icon:(0,i.ObjectNode)({item:o({validator:"resource",params:{pool:"item"}}),nbt:(0,i.Opt)(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:t("text_component"),description:t("text_component"),background:(0,i.Opt)(o()),frame:(0,i.Opt)(o({enum:["task","challenge","goal"]})),show_toast:(0,i.Opt)((0,i.BooleanNode)()),announce_to_chat:(0,i.Opt)((0,i.BooleanNode)()),hidden:(0,i.Opt)((0,i.BooleanNode)())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:(0,i.Opt)(o({validator:"resource",params:{pool:"$advancement"}})),criteria:(0,i.MapNode)(o(),t("advancement_criteria")),requirements:(0,i.Opt)((0,i.ListNode)((0,i.ListNode)(o()))),rewards:(0,i.Opt)((0,i.ObjectNode)({function:(0,i.Opt)(o({validator:"resource",params:{pool:"$function"}})),loot:(0,i.Opt)((0,i.ListNode)(o({validator:"resource",params:{pool:"$loot_table"}}))),recipes:(0,i.Opt)((0,i.ListNode)(o({validator:"resource",params:{pool:"$recipe"}}))),experience:(0,i.Opt)((0,i.NumberNode)({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),n.register("advancement_criteria",(0,i.ObjectNode)({trigger:o({validator:"resource",params:{pool:e.get("advancement_trigger")}}),conditions:(0,i.Opt)((0,i.ObjectNode)({[i.Switch]:["pop",{push:"trigger"}],[i.Case]:{"minecraft:bee_nest_destroyed":{block:(0,i.Opt)(o({validator:"resource",params:{pool:"block"}})),num_bees_inside:(0,i.Opt)((0,i.NumberNode)({integer:!0})),item:(0,i.Opt)(t("item_predicate"))},"minecraft:bred_animals":{parent:(0,i.Opt)(t("entity_predicate")),partner:(0,i.Opt)(t("entity_predicate")),child:(0,i.Opt)(t("entity_predicate"))},"minecraft:brewed_potion":{potion:(0,i.Opt)(o({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:(0,i.Opt)(o({enum:"dimension"})),to:(0,i.Opt)(o({enum:"dimension"}))},"minecraft:channeled_lightning":{victims:(0,i.Opt)((0,i.ListNode)((0,i.Opt)(t("entity_predicate"))))},"minecraft:construct_beacon":{level:(0,i.Opt)((0,k.Range)())},"minecraft:consume_item":{item:(0,i.Opt)(t("item_predicate"))},"minecraft:cured_zombie_villager":{villager:(0,i.Opt)(t("entity_predicate")),zombie:(0,i.Opt)(t("entity_predicate"))},"minecraft:effects_changed":{effects:(0,i.Opt)((0,i.MapNode)(o({validator:"resource",params:{pool:"mob_effect"}}),t("status_effect_predicate")))},"minecraft:enter_block":{block:(0,i.Opt)(o({validator:"resource",params:{pool:"block"}})),state:(0,i.Opt)((0,i.MapNode)(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:(0,i.Opt)((0,k.Range)()),item:(0,i.Opt)(t("item_predicate"))},"minecraft:entity_hurt_player":{damage:(0,i.Opt)(t("damage_predicate"))},"minecraft:entity_killed_player":{entity:(0,i.Opt)(t("entity_predicate")),killing_blow:(0,i.Opt)(t("damage_source_predicate"))},"minecraft:filled_bucket":{item:(0,i.Opt)(t("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:(0,i.Opt)(t("entity_predicate")),item:(0,i.Opt)(t("item_predicate"))},"minecraft:hero_of_the_village":T.LocationFields,"minecraft:inventory_changed":{slots:(0,i.Opt)((0,i.ObjectNode)({empty:(0,i.Opt)((0,k.Range)()),occupied:(0,i.Opt)((0,k.Range)()),full:(0,i.Opt)((0,k.Range)())})),items:(0,i.Opt)((0,i.ListNode)(t("item_predicate")))},"minecraft:item_durability_changed":{delta:(0,i.Opt)((0,k.Range)()),durability:(0,i.Opt)((0,k.Range)()),item:(0,i.Opt)(t("item_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:(0,i.Opt)((0,k.Range)()),victims:(0,i.Opt)((0,i.ListNode)((0,i.Opt)(t("entity_predicate"))))},"minecraft:levitation":{distance:(0,i.Opt)(t("distance_predicate")),duration:(0,i.Opt)((0,k.Range)())},"minecraft:location":T.LocationFields,"minecraft:nether_travel":{distance:(0,i.Opt)(t("distance_predicate")),entered:(0,i.Opt)(t("location_predicate")),exited:(0,i.Opt)(t("location_predicate"))},"minecraft:placed_block":{block:(0,i.Opt)(o({validator:"resource",params:{pool:"block"}})),state:(0,i.Opt)((0,i.MapNode)(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:(0,i.Opt)(t("item_predicate")),location:(0,i.Opt)(t("location_predicate"))},"minecraft:player_hurt_entity":{damage:(0,i.Opt)(t("damage_predicate")),entity:(0,i.Opt)(t("entity_predicate"))},"minecraft:player_killed_entity":{entity:(0,i.Opt)(t("entity_predicate")),killing_blow:(0,i.Opt)(t("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:o({validator:"resource",params:{pool:"$recipe"}})},"minecraft:safely_harvest_honey":{block:(0,i.Opt)((0,i.ObjectNode)({block:(0,i.Opt)(o({validator:"resource",params:{pool:"block"}})),tag:(0,i.Opt)(o({validator:"resource",params:{pool:"$tag/block"}}))})),item:(0,i.Opt)(t("item_predicate"))},"minecraft:slept_in_bed":T.LocationFields,"minecraft:slide_down_block":{block:(0,i.Opt)(o({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:(0,i.Opt)(t("item_predicate"))},"minecraft:summoned_entity":{entity:(0,i.Opt)(t("entity_predicate"))},"minecraft:tame_animal":{entity:(0,i.Opt)(t("entity_predicate"))},"minecraft:used_ender_eye":{distance:(0,i.Opt)((0,k.Range)())},"minecraft:used_totem":{item:(0,i.Opt)(t("item_predicate"))},"minecraft:villager_trade":{villager:(0,i.Opt)(t("entity_predicate")),item:(0,i.Opt)(t("item_predicate"))},"minecraft:voluntary_exile":T.LocationFields}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))}F.initAdvancementSchemas=_e;var z={},E={};Object.defineProperty(E,"__esModule",{value:!0});E.initModelSchemas=void 0;const m=h;function fe(n,e){m.Reference.bind(void 0,n);const t=m.StringNode.bind(void 0,e),o=(c,a,d)=>(0,m.ListNode)((0,m.NumberNode)({min:a,max:d}),{minLength:c,maxLength:c}),s=(0,m.ChoiceNode)([{type:"alias",match:c=>typeof c=="string"&&c.startsWith("#"),node:t(),change:c=>typeof c=="string"?`#${c}`:"#0"},{type:"reference",match:c=>typeof c=="string",node:t({validator:"resource",params:{pool:"$texture"}}),change:c=>typeof c=="string"?c.replace(/^#/,""):""}],{choiceContext:"texture"});n.register("model",(0,m.Mod)((0,m.ObjectNode)({parent:(0,m.Opt)(t({validator:"resource",params:{pool:"$model"}})),ambientocclusion:(0,m.Opt)((0,m.BooleanNode)()),gui_light:(0,m.Opt)(t({enum:"gui_light"})),textures:(0,m.Opt)((0,m.MapNode)(t(),s)),elements:(0,m.Opt)((0,m.ListNode)((0,m.ObjectNode)({from:o(3,-16,32),to:o(3,-16,32),rotation:(0,m.Opt)((0,m.ObjectNode)({origin:o(3),axis:t({enum:"axis"}),angle:(0,m.NumberEnum)({values:[-45,-22.5,0,22.5,45]}),rescale:(0,m.Opt)((0,m.BooleanNode)())})),shade:(0,m.Opt)((0,m.BooleanNode)()),faces:(0,m.MapNode)(t({enum:"direction"}),(0,m.ObjectNode)({texture:s,uv:(0,m.Opt)(o(4)),cullface:(0,m.Opt)(t({enum:"direction"})),rotation:(0,m.Opt)((0,m.NumberNode)({integer:!0})),tintindex:(0,m.Opt)((0,m.NumberNode)({integer:!0}))}))},{context:"model_element"}))),display:(0,m.Opt)((0,m.MapNode)(t({enum:"display_position"}),(0,m.ObjectNode)({rotation:o(3),translation:o(3,-80,80),scale:o(3,-4,4)},{context:"item_transform"}))),overrides:(0,m.Opt)((0,m.ListNode)((0,m.ObjectNode)({predicate:(0,m.MapNode)(t({enum:"item_model_predicates"}),(0,m.NumberNode)()),model:t({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))}E.initModelSchemas=fe;var D={};Object.defineProperty(D,"__esModule",{value:!0});D.initBlockDefinitionSchemas=void 0;const f=h;function ge(n,e){const t=f.Reference.bind(void 0,n),o=f.StringNode.bind(void 0,e);n.register("block_definition",(0,f.Mod)((0,f.ChoiceNode)([{type:"variants",match:c=>c.variants!==void 0,node:(0,f.ObjectNode)({variants:(0,f.MapNode)(o(),t("model_variant"))}),change:c=>({variants:{"":{}}})},{type:"multipart",match:c=>c.multipart!==void 0,node:(0,f.ObjectNode)({multipart:(0,f.ListNode)((0,f.ObjectNode)({when:(0,f.Opt)(t("multipart_condition")),apply:t("model_variant")}))}),change:c=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const s={model:o({validator:"resource",params:{pool:"$model"}}),x:(0,f.Opt)((0,f.NumberEnum)({integer:!0,values:[0,90,180,270]})),y:(0,f.Opt)((0,f.NumberEnum)({integer:!0,values:[0,90,180,270]})),uvlock:(0,f.Opt)((0,f.BooleanNode)())};n.register("model_variant",(0,f.ChoiceNode)([{type:"object",node:(0,f.ObjectNode)(s),change:c=>Array.isArray(c)&&c.length>0?c[0]:{}},{type:"list",node:(0,f.ListNode)((0,f.ObjectNode)(Z(g({},s),{weight:(0,f.Opt)((0,f.NumberNode)({integer:!0,min:1}))}),{context:"model_variant"})),change:c=>[g({weight:1},c)]}],{context:"model_variant"})),n.register("multipart_condition",(0,f.ChoiceNode)([{type:"object",priority:-1,match:()=>!0,node:(0,f.MapNode)(o(),o()),change:c=>typeof c=="object"&&Array.isArray(c==null?void 0:c.OR)&&c.OR.length>0?c.OR[0]:{}},{type:"or",match:c=>typeof c=="object"&&(c==null?void 0:c.OR)!==void 0,node:(0,f.ObjectNode)({OR:(0,f.ListNode)(t("multipart_condition"))}),change:c=>({OR:[c!=null?c:{}]})}],{context:"multipart_condition"}))}D.initBlockDefinitionSchemas=ge;Object.defineProperty(z,"__esModule",{value:!0});z.initAssetsSchemas=void 0;const be=E,ye=D;function Oe(n,e){(0,ye.initBlockDefinitionSchemas)(n,e),(0,be.initModelSchemas)(n,e)}z.initAssetsSchemas=Oe;var I={};Object.defineProperty(I,"__esModule",{value:!0});I.initConditionSchemas=void 0;const S=h,he=L;function Ne(n,e){const t=S.Reference.bind(void 0,n),o=S.StringNode.bind(void 0,e);n.register("predicate",(0,S.ObjectOrList)(t("condition"),{choiceContext:"condition"})),n.register("condition",(0,S.Mod)((0,S.ObjectNode)({condition:o({validator:"resource",params:{pool:"loot_condition_type"}}),[S.Switch]:[{push:"condition"}],[S.Case]:he.ConditionCases},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))}I.initConditionSchemas=Ne;var H={},O={};Object.defineProperty(O,"__esModule",{value:!0});O.LootFunctions=O.LootConditions=O.LootCopySources=O.LootEntitySources=O.LootTableTypes=void 0;O.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]}]]);O.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]);O.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]);O.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",[]]]);O.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(H,"__esModule",{value:!0});H.initLootTableSchemas=void 0;const r=h,P=O,N=L;function ve(n,e){const t=r.Reference.bind(void 0,n),o=r.StringNode.bind(void 0,e),s={conditions:(0,r.Opt)((0,r.ListNode)(t("loot_condition")))},c=g({functions:(0,r.Opt)((0,r.ListNode)(t("loot_function")))},s);function a(b,x,y){const W=[],ae=$=>e.get(x).filter(X=>{var B;return((B=b.get(X))!==null&&B!==void 0?B:[]).every(Y=>$.includes(Y))});for(const[$,{allows:X,requires:B}]of P.LootTableTypes){const Q=[...X,...B];W.push({match:Y=>Y.getModel().get(new r.Path(["type"]))===$,node:y(ae(Q))})}return W.push({match:$=>!0,node:y(x)}),(0,r.SwitchNode)(W)}const d=a(P.LootConditions,"loot_condition_type",b=>o({validator:"resource",params:{pool:b instanceof Array?b:"loot_condition_type"}})),_=a(P.LootFunctions,"loot_function_type",b=>o({validator:"resource",params:{pool:b instanceof Array?b:"loot_function_type"}})),u=a(P.LootEntitySources,"entity_source",b=>o({enum:b})),v=a(P.LootCopySources,"copy_source",b=>o({enum:b}));n.register("loot_table",(0,r.Mod)((0,r.ObjectNode)({type:(0,r.Opt)(o({validator:"resource",params:{pool:e.get("loot_context_type")}})),pools:(0,r.Opt)((0,r.ListNode)((0,r.Mod)((0,r.ObjectNode)(g({rolls:(0,N.Range)({allowBinomial:!0,integer:!0}),bonus_rolls:(0,r.Opt)((0,N.Range)({integer:!0})),entries:(0,r.ListNode)(t("loot_entry"))},c),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:(0,r.Opt)((0,r.ListNode)(t("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const C={enabled:b=>{var x;return((x=b.pop().get())===null||x===void 0?void 0:x.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(b.push("type").get())}};n.register("loot_entry",(0,r.Mod)((0,r.ObjectNode)({type:o({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:(0,r.Opt)((0,r.Mod)((0,r.NumberNode)({integer:!0,min:1}),C)),quality:(0,r.Opt)((0,r.Mod)((0,r.NumberNode)({integer:!0}),C)),[r.Switch]:[{push:"type"}],[r.Case]:{"minecraft:alternatives":g({children:(0,r.ListNode)(t("loot_entry"))},c),"minecraft:dynamic":g({name:o()},c),"minecraft:group":g({children:(0,r.ListNode)(t("loot_entry"))},c),"minecraft:item":g({name:o({validator:"resource",params:{pool:"item"}})},c),"minecraft:loot_table":g({name:o({validator:"resource",params:{pool:"$loot_table"}})},c),"minecraft:sequence":g({children:(0,r.ListNode)(t("loot_entry"))},c),"minecraft:tag":g({name:o({validator:"resource",params:{pool:"$tag/item"}}),expand:(0,r.Opt)((0,r.BooleanNode)())},c)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),n.register("loot_function",(0,r.Mod)((0,r.ObjectNode)({function:_,[r.Switch]:[{push:"function"}],[r.Case]:(()=>{const b={"minecraft:apply_bonus":{enchantment:o({validator:"resource",params:{pool:"enchantment"}}),formula:o({validator:"resource",params:{pool:e.get("loot_table_apply_bonus_formula")}}),parameters:(0,r.Mod)((0,r.ObjectNode)({bonusMultiplier:(0,r.Mod)((0,r.NumberNode)({integer:!0}),{enabled:y=>y.pop().push("formula").get()==="minecraft:uniform_bonus_count"}),extra:(0,r.Mod)((0,r.NumberNode)({integer:!0}),{enabled:y=>y.pop().push("formula").get()==="minecraft:binomial_with_bonus_count"}),probability:(0,r.Mod)((0,r.NumberNode)(),{enabled:y=>y.pop().push("formula").get()==="minecraft:binomial_with_bonus_count"})}),{enabled:y=>y.push("formula").get()!=="minecraft:ore_drops"})},"minecraft:copy_name":{source:v},"minecraft:copy_nbt":{source:v,ops:(0,r.ListNode)((0,r.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:(0,r.ListNode)(o({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:(0,r.Opt)((0,r.ListNode)(o({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:(0,N.Range)({allowBinomial:!0}),treasure:(0,r.Opt)((0,r.BooleanNode)())},"minecraft:exploration_map":{destination:(0,r.Opt)(o({enum:"structure_feature"})),decoration:(0,r.Opt)(o({enum:"map_decoration"})),zoom:(0,r.Opt)((0,r.NumberNode)({integer:!0})),search_radius:(0,r.Opt)((0,r.NumberNode)({integer:!0})),skip_existing_chunks:(0,r.Opt)((0,r.BooleanNode)())},"minecraft:fill_player_head":{entity:u},"minecraft:limit_count":{limit:(0,N.Range)({bounds:!0})},"minecraft:looting_enchant":{count:(0,N.Range)({bounds:!0}),limit:(0,r.Opt)((0,r.NumberNode)({integer:!0}))},"minecraft:set_attributes":{modifiers:(0,r.ListNode)(t("attribute_modifier"))},"minecraft:set_contents":{entries:(0,r.ListNode)(t("loot_entry"))},"minecraft:set_count":{count:(0,N.Range)({allowBinomial:!0})},"minecraft:set_damage":{damage:(0,N.Range)({forceRange:!0})},"minecraft:set_loot_table":{name:o({validator:"resource",params:{pool:"$loot_table"}}),seed:(0,r.Opt)((0,r.NumberNode)({integer:!0}))},"minecraft:set_lore":{entity:(0,r.Opt)(u),lore:(0,r.ListNode)(t("text_component")),replace:(0,r.Opt)((0,r.BooleanNode)())},"minecraft:set_name":{entity:(0,r.Opt)(u),name:(0,r.Opt)(t("text_component"))},"minecraft:set_nbt":{tag:o({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:(0,r.Opt)((0,r.ListNode)((0,r.ObjectNode)({type:o({validator:"resource",params:{pool:"mob_effect"}}),duration:(0,N.Range)()})))}},x={};return e.get("loot_function_type").forEach(y=>{x[y]=g(g({},b[y]),s)}),x})()},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),n.register("loot_condition",(0,r.Mod)((0,r.ObjectNode)({condition:d,[r.Switch]:[{push:"condition"}],[r.Case]:Z(g({},N.ConditionCases),{"minecraft:entity_properties":{entity:u,predicate:t("entity_predicate")},"minecraft:entity_scores":{entity:u,scores:(0,r.MapNode)(o({validator:"objective"}),(0,N.Range)({bounds:!0}))}})},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),n.register("attribute_modifier",(0,r.Mod)((0,r.ObjectNode)({attribute:o({validator:"resource",params:{pool:"attribute"}}),name:o(),amount:(0,N.Range)({bounds:!0}),operation:o({enum:["addition","multiply_base","multiply_total"]}),id:(0,r.Opt)(o({validator:"uuid"})),slot:(0,r.StringOrList)(o({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))}H.initLootTableSchemas=ve;var V={};Object.defineProperty(V,"__esModule",{value:!0});V.initPackMcmetaSchemas=void 0;const M=h;function ke(n,e){n.register("pack_mcmeta",(0,M.Mod)((0,M.ObjectNode)({pack:(0,M.Mod)((0,M.ObjectNode)({pack_format:(0,M.Mod)((0,M.NumberNode)({integer:!0,min:5,max:5}),{default:()=>5}),description:(0,M.Reference)(n,"text_component")}),{default:()=>({pack_format:5,description:""})})}),{default:()=>({pack:{pack_format:5,description:""}})}))}V.initPackMcmetaSchemas=ke;var G={};Object.defineProperty(G,"__esModule",{value:!0});G.initRecipeSchemas=void 0;const l=h;function xe(n,e){const t=l.Reference.bind(void 0,n),o=l.StringNode.bind(void 0,e);n.register("recipe",(0,l.Mod)((0,l.ObjectNode)({type:o({validator:"resource",params:{pool:"recipe_serializer"}}),[l.Switch]:[{push:"type"}],[l.Case]:{"minecraft:crafting_shaped":{group:(0,l.Opt)(o({enum:"recipe_group",additional:!0})),pattern:(0,l.ListNode)(o()),key:(0,l.MapNode)(o(),t("recipe_ingredient")),result:t("recipe_result")},"minecraft:crafting_shapeless":{group:(0,l.Opt)(o()),ingredients:(0,l.ListNode)(t("recipe_ingredient")),result:t("recipe_result")},"minecraft:smelting":{group:(0,l.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:(0,l.Opt)((0,l.NumberNode)()),cookingtime:(0,l.Opt)((0,l.Mod)((0,l.NumberNode)({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:(0,l.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:(0,l.Opt)((0,l.NumberNode)()),cookingtime:(0,l.Opt)((0,l.Mod)((0,l.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:(0,l.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:(0,l.Opt)((0,l.NumberNode)()),cookingtime:(0,l.Opt)((0,l.Mod)((0,l.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:(0,l.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:(0,l.Opt)((0,l.NumberNode)()),cookingtime:(0,l.Opt)((0,l.Mod)((0,l.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:(0,l.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),count:(0,l.NumberNode)({integer:!0})},"minecraft:smithing":{group:(0,l.Opt)(o()),base:t("recipe_ingredient_object"),addition:t("recipe_ingredient_object"),result:t("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),n.register("recipe_ingredient",(0,l.Mod)((0,l.ChoiceNode)([{type:"object",node:t("recipe_ingredient_object"),change:s=>s[0]},{type:"list",node:(0,l.ListNode)(t("recipe_ingredient_object")),change:s=>[s]}]),{default:()=>({item:"minecraft:stone"})})),n.register("recipe_ingredient_object",(0,l.Mod)((0,l.ObjectNode)({item:(0,l.Opt)(o({validator:"resource",params:{pool:"item"}})),tag:(0,l.Opt)(o({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),n.register("recipe_result",(0,l.Mod)((0,l.ObjectNode)({item:o({validator:"resource",params:{pool:"item"}}),count:(0,l.Opt)((0,l.Mod)((0,l.NumberNode)({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))}G.initRecipeSchemas=xe;var K={};Object.defineProperty(K,"__esModule",{value:!0});K.initTagsSchemas=void 0;const j=h;function je(n,e){const t=j.StringNode.bind(void 0,e),o=s=>(0,j.Mod)((0,j.ObjectNode)({replace:(0,j.Opt)((0,j.BooleanNode)()),values:(0,j.ListNode)((0,j.ChoiceNode)([{type:"string",node:t({validator:"resource",params:{pool:s,allowTag:!0}}),change:c=>c.id},{type:"object",node:(0,j.ObjectNode)({id:t({validator:"resource",params:{pool:s,allowTag:!0,allowUnknown:!0}}),required:(0,j.BooleanNode)()}),change:c=>({id:c})}]))},{context:"tag"}),{default:()=>({values:[]})});n.register("block_tag",o("block")),n.register("entity_type_tag",o("entity_type")),n.register("fluid_tag",o("fluid")),n.register("function_tag",o("$function")),n.register("item_tag",o("item"))}K.initTagsSchemas=je;var U={};Object.defineProperty(U,"__esModule",{value:!0});U.initTextComponentSchemas=void 0;const p=h;function we(n,e){const t=p.Reference.bind(void 0,n),o=p.StringNode.bind(void 0,e),s=a=>{var d;return a instanceof Array?s(a[0]):(d=a==null?void 0:a.text)!==null&&d!==void 0?d:typeof a=="object"?"":a==null?void 0:a.toString()};n.register("text_component",(0,p.Mod)((0,p.ChoiceNode)([{type:"object",node:t("text_component_object"),change:a=>a instanceof Array?typeof a[0]=="object"?a[0]:{text:s(a[0])}:typeof a=="object"?a:{text:s(a)}},{type:"list",node:t("text_component_list"),change:a=>[a]},{type:"string",priority:1,node:o(),change:s},{type:"number",node:(0,p.NumberNode)(),change:a=>{const d=parseFloat(s(a));return isFinite(d)?d:a?1:0}},{type:"boolean",node:(0,p.BooleanNode)(),change:a=>{const d=s(a);return d==="true"||d==="false"?d==="true":!!d}}],{context:"text_component"}),{default:()=>({text:""})}));const c={color:(0,p.Opt)(o()),bold:(0,p.Opt)((0,p.BooleanNode)()),italic:(0,p.Opt)((0,p.BooleanNode)()),underlined:(0,p.Opt)((0,p.BooleanNode)()),strikethrough:(0,p.Opt)((0,p.BooleanNode)()),obfuscated:(0,p.Opt)((0,p.BooleanNode)()),insertion:(0,p.Opt)(o()),clickEvent:(0,p.Opt)((0,p.ObjectNode)({action:o({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[p.Switch]:[{push:"action"}],[p.Case]:{change_page:{value:o()},copy_to_clipboard:{value:o()},open_file:{value:o()},open_url:{value:o()},run_command:{value:o({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:o({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:(0,p.Opt)((0,p.ObjectNode)({action:o({enum:["show_text","show_item","show_entity"]}),[p.Switch]:[{push:"action"}],[p.Case]:{show_text:{value:(0,p.Opt)(t("text_component"))},show_item:{value:(0,p.Opt)(o({validator:"nbt",params:{module:"util::InventoryItem"}}))},show_entity:{value:(0,p.Opt)((0,p.ObjectNode)({name:(0,p.Opt)(o()),type:(0,p.Opt)(o()),id:(0,p.Opt)(o())}))}}})),extra:(0,p.Opt)(t("text_component_list"))};n.register("text_component_object",(0,p.Mod)((0,p.ChoiceNode)([{type:"text",match:a=>typeof a=="object",change:a=>({text:""}),priority:-1,node:(0,p.ObjectNode)(g({text:o()},c))},{type:"translation",match:a=>(a==null?void 0:a.translate)!==void 0,change:a=>({translate:""}),node:(0,p.ObjectNode)(g({translate:o(),with:(0,p.Opt)(t("text_component_list"))},c))},{type:"score",match:a=>(a==null?void 0:a.score)!==void 0,change:a=>({score:{}}),node:(0,p.ObjectNode)(g({score:(0,p.ObjectNode)({name:o({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:o({validator:"objective"}),value:(0,p.Opt)(o())})},c))},{type:"selector",match:a=>(a==null?void 0:a.selector)!==void 0,change:a=>({selector:""}),node:(0,p.ObjectNode)(g({selector:o({validator:"entity",params:{amount:"multiple",type:"entities"}})},c))},{type:"keybind",match:a=>(a==null?void 0:a.keybind)!==void 0,change:a=>({keybind:""}),node:(0,p.ObjectNode)(g({keybind:o({enum:"keybind",additional:!0})},c))},{type:"nbt",match:a=>(a==null?void 0:a.nbt)!==void 0,change:a=>({nbt:""}),node:(0,p.ObjectNode)(g({nbt:o({validator:"nbt_path"}),block:(0,p.Opt)(o({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:(0,p.Opt)(o({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:(0,p.Opt)(o({validator:"resource",params:{pool:"$storage"}})),interpret:(0,p.Opt)((0,p.BooleanNode)())},c))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),n.register("text_component_list",(0,p.Mod)((0,p.ListNode)(t("text_component")),{default:()=>[{text:""}]}))}U.initTextComponentSchemas=we;Object.defineProperty(A,"__esModule",{value:!0});A.initSchemas=void 0;const Se=F,Me=z,Ce=L,Re=I,Le=H,Be=V,Pe=J,$e=G,Te=K,qe=U;function Ae(n,e){(0,Ce.initCommonSchemas)(n,e),(0,Pe.initPredicatesSchemas)(n,e),(0,Se.initAdvancementSchemas)(n,e),(0,Me.initAssetsSchemas)(n,e),(0,Re.initConditionSchemas)(n,e),(0,Le.initLootTableSchemas)(n,e),(0,Be.initPackMcmetaSchemas)(n,e),(0,$e.initRecipeSchemas)(n,e),(0,Te.initTagsSchemas)(n,e),(0,qe.initTextComponentSchemas)(n,e)}A.initSchemas=Ae;var Fe=R&&R.__createBinding||(Object.create?function(n,e,t,o){o===void 0&&(o=t);var s=Object.getOwnPropertyDescriptor(e,t);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(n,o,s)}:function(n,e,t,o){o===void 0&&(o=t),n[o]=e[t]}),ze=R&&R.__setModuleDefault||(Object.create?function(n,e){Object.defineProperty(n,"default",{enumerable:!0,value:e})}:function(n,e){n.default=e}),Ee=R&&R.__importStar||function(n){if(n&&n.__esModule)return n;var e={};if(n!=null)for(var t in n)t!=="default"&&Object.prototype.hasOwnProperty.call(n,t)&&Fe(e,n,t);return ze(e,n),e};Object.defineProperty(w,"__esModule",{value:!0});var oe=w.getSchemas=re=w.getCollections=ie=w.lootContext=void 0;const ne=h,De=q,Ie=A;var ie=w.lootContext=Ee(O);function He(){const n=new ne.CollectionRegistry;return(0,De.initCollections)(n),n}var re=w.getCollections=He;function Ve(n){const e=new ne.SchemaRegistry;return(0,Ie.initSchemas)(e,n),e}oe=w.getSchemas=Ve;var Ue=me({__proto__:null,get getSchemas(){return oe},get getCollections(){return re},get lootContext(){return ie},default:w},[w]);export{Ue as i}; +//# sourceMappingURL=index.6c5eeb89.js.map diff --git a/assets/index.e81c6084.js.map b/assets/index.6c5eeb89.js.map similarity index 99% rename from assets/index.e81c6084.js.map rename to assets/index.6c5eeb89.js.map index 492942d6..aadb4241 100644 --- a/assets/index.e81c6084.js.map +++ b/assets/index.6c5eeb89.js.map @@ -1 +1 @@ -{"version":3,"file":"index.e81c6084.js","sources":["../../node_modules/@mcschema/java-1.15/lib/Collections.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.15/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.15/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.15/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.15/lib/LootContext.js","../../node_modules/@mcschema/java-1.15/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.15/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.15/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.15/lib/schemas/index.js","../../node_modules/@mcschema/java-1.15/lib/index.js"],"sourcesContent":["\"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 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 collections.register('cat_texture', [\r\n 'textures/entity/cat/tabby.png',\r\n 'textures/entity/cat/black.png',\r\n 'textures/entity/cat/red.png',\r\n 'textures/entity/cat/siamese.png',\r\n 'textures/entity/cat/british_shorthair.png',\r\n 'textures/entity/cat/calico.png',\r\n 'textures/entity/cat/persian.png',\r\n 'textures/entity/cat/ragdoll.png',\r\n 'textures/entity/cat/white.png',\r\n 'textures/entity/cat/jellie.png',\r\n 'textures/entity/cat/all_black.png'\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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true })), {\r\n default: () => [0, 0, 0]\r\n }));\r\n exports.Range = (config) => (0, core_1.ChoiceNode)([\r\n ...((config === null || config === void 0 ? void 0 : config.forceRange) ? [] : [{\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n min: (config === null || config === void 0 ? void 0 : config.bounds) ? (0, core_1.NumberNode)(config) : (0, core_1.Opt)((0, core_1.NumberNode)(config)),\r\n max: (config === null || config === void 0 ? void 0 : config.bounds) ? (0, core_1.NumberNode)(config) : (0, core_1.Opt)((0, 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: (0, core_1.ObjectNode)({\r\n type: StringNode({ enum: ['minecraft:binomial'] }),\r\n n: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n p: (0, 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: (0, 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: (0, 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: (0, core_1.MapNode)(StringNode({ validator: 'objective' }), (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetY: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetZ: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n looting_multiplier: (0, 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: (0, core_1.ListNode)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: (0, exports.Range)(),\r\n period: (0, core_1.Opt)((0, core_1.NumberNode)())\r\n },\r\n 'minecraft:weather_check': {\r\n raining: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n thundering: (0, core_1.Opt)((0, 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 = (0, 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: (0, core_1.NumberNode)(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max: (0, core_1.Opt)((0, 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: (0, core_1.BooleanNode)(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', (0, core_1.ObjectNode)({\r\n item: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: (0, core_1.Opt)((0, Common_1.Range)()),\r\n durability: (0, core_1.Opt)((0, Common_1.Range)()),\r\n potion: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: (0, core_1.Opt)((0, core_1.ListNode)(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', (0, core_1.ObjectNode)({\r\n enchantment: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: (0, core_1.Opt)((0, Common_1.Range)())\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', (0, core_1.ObjectNode)({\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n fluid: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n exports.LocationFields = {\r\n position: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n x: (0, core_1.Opt)((0, Common_1.Range)()),\r\n y: (0, core_1.Opt)((0, Common_1.Range)()),\r\n z: (0, core_1.Opt)((0, Common_1.Range)())\r\n })),\r\n biome: (0, core_1.Opt)(StringNode({ enum: 'biome' })),\r\n feature: (0, core_1.Opt)(StringNode({ enum: 'structure_feature' })),\r\n dimension: (0, core_1.Opt)(StringNode({ enum: 'dimension' })),\r\n light: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n light: (0, core_1.Opt)((0, Common_1.Range)({ integer: true, min: 0, max: 15 }))\r\n })),\r\n block: (0, core_1.Opt)(Reference('block_predicate')),\r\n fluid: (0, core_1.Opt)(Reference('fluid_predicate'))\r\n };\r\n schemas.register('location_predicate', (0, core_1.ObjectNode)(exports.LocationFields, { context: 'location' }));\r\n schemas.register('statistic_predicate', (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: (0, 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', (0, core_1.ObjectNode)({\r\n gamemode: (0, core_1.Opt)(StringNode({ enum: 'gamemode' })),\r\n level: (0, core_1.Opt)((0, Common_1.Range)()),\r\n advancements: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), (0, core_1.ChoiceNode)([\r\n { type: 'boolean', node: (0, core_1.BooleanNode)(), change: _ => true },\r\n {\r\n type: 'object', node: (0, core_1.MapNode)(StringNode(), (0, core_1.BooleanNode)())\r\n }\r\n ]))),\r\n recipes: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), (0, core_1.BooleanNode)())),\r\n stats: (0, core_1.Opt)((0, core_1.ListNode)(Reference('statistic_predicate')))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', (0, core_1.ObjectNode)({\r\n amplifier: (0, core_1.Opt)((0, Common_1.Range)()),\r\n duration: (0, core_1.Opt)((0, Common_1.Range)()),\r\n ambient: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n visible: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', (0, core_1.ObjectNode)({\r\n x: (0, core_1.Opt)((0, Common_1.Range)()),\r\n y: (0, core_1.Opt)((0, Common_1.Range)()),\r\n z: (0, core_1.Opt)((0, Common_1.Range)()),\r\n absolute: (0, core_1.Opt)((0, Common_1.Range)()),\r\n horizontal: (0, core_1.Opt)((0, Common_1.Range)())\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', (0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: (0, core_1.Opt)(StringNode({ validator: 'team' })),\r\n location: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n flags: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n is_on_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sneaking: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sprinting: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_swimming: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_baby: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n equipment: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n player: (0, core_1.Opt)(Reference('player_predicate')),\r\n catType: (0, core_1.Opt)(StringNode({ enum: 'cat_texture' })),\r\n effects: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n is_explosion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_projectile: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_lightning: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_armor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_invulnerability: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n direct_entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', (0, core_1.ObjectNode)({\r\n dealt: (0, core_1.Opt)((0, Common_1.Range)()),\r\n taken: (0, core_1.Opt)((0, Common_1.Range)()),\r\n blocked: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n type: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n display: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n icon: (0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: (0, 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: (0, core_1.Opt)(StringNode()),\r\n frame: (0, core_1.Opt)(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n announce_to_chat: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n hidden: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: (0, core_1.MapNode)(StringNode(), Reference('advancement_criteria')),\r\n requirements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ListNode)(StringNode() // TODO: add validation\r\n ))),\r\n rewards: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n function: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: (0, core_1.Opt)(Reference('entity_predicate')),\r\n partner: (0, core_1.Opt)(Reference('entity_predicate')),\r\n child: (0, core_1.Opt)(Reference('entity_predicate'))\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: (0, core_1.Opt)(StringNode({ enum: 'dimension' })),\r\n to: (0, core_1.Opt)(StringNode({ enum: 'dimension' }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.Opt)(Reference('entity_predicate'))))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: (0, core_1.Opt)((0, Common_1.Range)())\r\n },\r\n 'minecraft:consume_item': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: (0, core_1.Opt)(Reference('entity_predicate')),\r\n zombie: (0, core_1.Opt)(Reference('entity_predicate'))\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n },\r\n 'minecraft:enter_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, Common_1.Range)()),\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: (0, core_1.Opt)(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n killing_blow: (0, core_1.Opt)(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n item: (0, 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: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n empty: (0, core_1.Opt)((0, Common_1.Range)()),\r\n occupied: (0, core_1.Opt)((0, Common_1.Range)()),\r\n full: (0, core_1.Opt)((0, Common_1.Range)())\r\n })),\r\n items: (0, core_1.Opt)((0, core_1.ListNode)(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: (0, core_1.Opt)((0, Common_1.Range)()),\r\n durability: (0, core_1.Opt)((0, Common_1.Range)()),\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: (0, core_1.Opt)((0, Common_1.Range)()),\r\n victims: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.Opt)(Reference('entity_predicate'))))\r\n },\r\n 'minecraft:levitation': {\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n duration: (0, core_1.Opt)((0, Common_1.Range)())\r\n },\r\n 'minecraft:location': Predicates_1.LocationFields,\r\n 'minecraft:nether_travel': {\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n entered: (0, core_1.Opt)(Reference('location_predicate')),\r\n exited: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: (0, core_1.Opt)(Reference('damage_predicate')),\r\n entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n killing_blow: (0, 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: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/block' } }))\r\n })),\r\n item: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: (0, core_1.Opt)((0, Common_1.Range)())\r\n },\r\n 'minecraft:used_totem': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: (0, core_1.Opt)(Reference('entity_predicate')),\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': Predicates_1.LocationFields\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => (0, core_1.ListNode)((0, core_1.NumberNode)({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n parent: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n gui_light: (0, core_1.Opt)(StringNode({ enum: 'gui_light' })),\r\n textures: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), Texture)),\r\n elements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: (0, core_1.NumberEnum)({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n shade: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n faces: (0, core_1.MapNode)(StringNode({ enum: 'direction' }), (0, core_1.ObjectNode)({\r\n texture: Texture,\r\n uv: (0, core_1.Opt)(Vec(4)),\r\n cullface: (0, core_1.Opt)(StringNode({ enum: 'direction' })),\r\n rotation: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tintindex: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'display_position' }), (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n predicate: (0, core_1.MapNode)(StringNode({ enum: 'item_model_predicates' }), (0, 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', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n variants: (0, 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: (0, core_1.ObjectNode)({\r\n multipart: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n when: (0, 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: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n y: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n };\r\n schemas.register('model_variant', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n ...VariantChildren,\r\n weight: (0, core_1.Opt)((0, 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', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n OR: (0, 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 (0, BlockDefinition_1.initBlockDefinitionSchemas)(schemas, collections);\r\n (0, Model_1.initModelSchemas)(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', (0, core_1.ObjectOrList)(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', (0, core_1.Mod)((0, 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: (0, core_1.Opt)((0, core_1.ListNode)(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: (0, core_1.Opt)((0, 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 (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n rolls: (0, Common_1.Range)({ allowBinomial: true, integer: true }),\r\n bonus_rolls: (0, core_1.Opt)((0, Common_1.Range)({ integer: true })),\r\n entries: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 1 }), weightMod)),\r\n quality: (0, core_1.Opt)((0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, 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: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n bonusMultiplier: (0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: (0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: (0, core_1.Mod)((0, 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: (0, core_1.ListNode)((0, 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: (0, core_1.ListNode)(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: (0, Common_1.Range)({ allowBinomial: true }),\r\n treasure: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: (0, core_1.Opt)(StringNode({ enum: 'structure_feature' })),\r\n decoration: (0, core_1.Opt)(StringNode({ enum: 'map_decoration' })),\r\n zoom: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n search_radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n skip_existing_chunks: (0, core_1.Opt)((0, 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: (0, Common_1.Range)({ bounds: true })\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: (0, Common_1.Range)({ bounds: true }),\r\n limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: (0, core_1.ListNode)(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_contents': {\r\n entries: (0, core_1.ListNode)(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: (0, Common_1.Range)({ allowBinomial: true })\r\n },\r\n 'minecraft:set_damage': {\r\n damage: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: (0, core_1.Opt)(entitySourceSwtichNode),\r\n lore: (0, core_1.ListNode)(Reference('text_component')),\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_name': {\r\n entity: (0, core_1.Opt)(entitySourceSwtichNode),\r\n name: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.MapNode)(StringNode({ validator: 'objective' }), (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: (0, Common_1.Range)({ bounds: true }),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n id: (0, core_1.Opt)(StringNode({ validator: 'uuid' })),\r\n slot: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack_format: (0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 5, max: 5 }), { default: () => 5 }),\r\n description: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.Opt)(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: (0, core_1.ListNode)(StringNode()),\r\n key: (0, 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: (0, core_1.Opt)(StringNode()),\r\n ingredients: (0, core_1.ListNode)(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: (0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.Mod)((0, 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) => (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n values: (0, core_1.ListNode)((0, 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: (0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: (0, 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', (0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, core_1.Opt)(StringNode()),\r\n bold: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n italic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n underlined: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n strikethrough: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n obfuscated: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n insertion: (0, core_1.Opt)(StringNode()),\r\n clickEvent: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } }))\r\n },\r\n 'show_entity': {\r\n value: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n name: (0, core_1.Opt)(StringNode()),\r\n type: (0, core_1.Opt)(StringNode()),\r\n id: (0, core_1.Opt)(StringNode())\r\n }))\r\n }\r\n }\r\n })),\r\n extra: (0, core_1.Opt)(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n translate: StringNode(),\r\n with: (0, 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: (0, core_1.ObjectNode)({\r\n score: (0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: (0, core_1.Opt)(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: (0, core_1.Opt)(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ListNode)(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` and `Predicates.ts` are files that have exports. They should be initialized first. \r\n (0, Common_1.initCommonSchemas)(schemas, collections);\r\n (0, Predicates_1.initPredicatesSchemas)(schemas, collections);\r\n (0, Advancement_1.initAdvancementSchemas)(schemas, collections);\r\n (0, assets_1.initAssetsSchemas)(schemas, collections);\r\n (0, Condition_1.initConditionSchemas)(schemas, collections);\r\n (0, LootTable_1.initLootTableSchemas)(schemas, collections);\r\n (0, PackMcmeta_1.initPackMcmetaSchemas)(schemas, collections);\r\n (0, Recipe_1.initRecipeSchemas)(schemas, collections);\r\n (0, Tags_1.initTagsSchemas)(schemas, collections);\r\n (0, 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 var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\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.prototype.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 = exports.lootContext = 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 (0, 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 (0, schemas_1.initSchemas)(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n"],"names":["require$$0","require$$1","core_1","Common_1","Predicates_1","require$$2","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","this"],"mappings":"61BACA,OAAO,eAAe,EAAS,aAAc,CAAE,MAAO,EAAI,CAAE,EACrC,EAAA,gBAAG,OAC1B,YAAyB,EAAa,CAClC,EAAY,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,2BACR,CAAK,EACD,EAAY,SAAS,uBAAwB,CACzC,kBACA,iBACA,gBACA,uBACA,yBACA,qBACA,kBACA,mBACR,CAAK,EACD,EAAY,SAAS,sBAAuB,CACxC,wBACA,qBACA,sBACA,8BACA,iCACA,uBACA,qCACA,2BACA,0BACA,uBACA,0BACA,0BACA,uCACA,wBACA,6BACA,8BACR,CAAK,EACD,EAAY,SAAS,qBAAsB,CACvC,sBACA,uBACA,qBACA,qBACA,oBACA,2BACA,yBACA,6BACA,gCACA,4BACA,wBACA,0BACA,4BACA,6BACA,sBACA,qBACA,uBACA,wBACA,4BACA,2BACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,oBACA,sBACA,8BACA,wBACA,uBACA,gBACA,yBACA,sBACA,eACA,qBACA,0BACA,sBACA,4BACR,CAAK,EACD,EAAY,SAAS,oBAAqB,CACtC,mBACA,YACA,UACA,iBACA,iBACA,QACA,YACA,YACA,aACA,WACA,aACA,WACA,UACA,kBACA,SACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,sBACA,uBACA,mBACR,CAAK,EACD,EAAY,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,SACR,CAAK,EACD,EAAY,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,MACR,CAAK,EACD,EAAY,SAAS,WAAY,CAC7B,WACA,WACA,YACA,WACR,CAAK,EACD,EAAY,SAAS,gBAAiB,CAClC,OACA,gBACA,SACA,eACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,eACA,OACA,SACA,eACR,CAAK,EACD,EAAY,SAAS,iCAAkC,CACnD,gCACA,sCACA,qBACR,CAAK,EACD,EAAY,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,cACR,CAAK,EACD,EAAY,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,iBACR,CAAK,EACD,EAAY,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,iBACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,OACA,KACA,QACA,OACA,QACA,MACR,CAAK,EACD,EAAY,SAAS,OAAQ,CACzB,IACA,IACA,GACR,CAAK,EACD,EAAY,SAAS,mBAAoB,CACrC,wBACA,uBACA,wBACA,uBACA,MACA,OACA,SACA,OACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,QACA,MACR,CAAK,EACD,EAAY,SAAS,wBAAyB,CAC1C,QACA,WACA,SACA,OACA,UACA,WACA,oBACA,SACA,UACA,WACA,aACA,OACA,UACA,WACA,MACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,gCACA,gCACA,8BACA,kCACA,4CACA,iCACA,kCACA,kCACA,gCACA,iCACA,mCACR,CAAK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"} \ No newline at end of file +{"version":3,"file":"index.6c5eeb89.js","sources":["../../node_modules/@mcschema/java-1.15/lib/Collections.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.15/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.15/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.15/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.15/lib/LootContext.js","../../node_modules/@mcschema/java-1.15/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.15/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.15/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.15/lib/schemas/index.js","../../node_modules/@mcschema/java-1.15/lib/index.js"],"sourcesContent":["\"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 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 collections.register('cat_texture', [\r\n 'textures/entity/cat/tabby.png',\r\n 'textures/entity/cat/black.png',\r\n 'textures/entity/cat/red.png',\r\n 'textures/entity/cat/siamese.png',\r\n 'textures/entity/cat/british_shorthair.png',\r\n 'textures/entity/cat/calico.png',\r\n 'textures/entity/cat/persian.png',\r\n 'textures/entity/cat/ragdoll.png',\r\n 'textures/entity/cat/white.png',\r\n 'textures/entity/cat/jellie.png',\r\n 'textures/entity/cat/all_black.png'\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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true })), {\r\n default: () => [0, 0, 0]\r\n }));\r\n exports.Range = (config) => (0, core_1.ChoiceNode)([\r\n ...((config === null || config === void 0 ? void 0 : config.forceRange) ? [] : [{\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n min: (config === null || config === void 0 ? void 0 : config.bounds) ? (0, core_1.NumberNode)(config) : (0, core_1.Opt)((0, core_1.NumberNode)(config)),\r\n max: (config === null || config === void 0 ? void 0 : config.bounds) ? (0, core_1.NumberNode)(config) : (0, core_1.Opt)((0, 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: (0, core_1.ObjectNode)({\r\n type: StringNode({ enum: ['minecraft:binomial'] }),\r\n n: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n p: (0, 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: (0, 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: (0, 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: (0, core_1.MapNode)(StringNode({ validator: 'objective' }), (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetY: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetZ: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n looting_multiplier: (0, 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: (0, core_1.ListNode)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: (0, exports.Range)(),\r\n period: (0, core_1.Opt)((0, core_1.NumberNode)())\r\n },\r\n 'minecraft:weather_check': {\r\n raining: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n thundering: (0, core_1.Opt)((0, 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 = (0, 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: (0, core_1.NumberNode)(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max: (0, core_1.Opt)((0, 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: (0, core_1.BooleanNode)(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', (0, core_1.ObjectNode)({\r\n item: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: (0, core_1.Opt)((0, Common_1.Range)()),\r\n durability: (0, core_1.Opt)((0, Common_1.Range)()),\r\n potion: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: (0, core_1.Opt)((0, core_1.ListNode)(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', (0, core_1.ObjectNode)({\r\n enchantment: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: (0, core_1.Opt)((0, Common_1.Range)())\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', (0, core_1.ObjectNode)({\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n fluid: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n exports.LocationFields = {\r\n position: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n x: (0, core_1.Opt)((0, Common_1.Range)()),\r\n y: (0, core_1.Opt)((0, Common_1.Range)()),\r\n z: (0, core_1.Opt)((0, Common_1.Range)())\r\n })),\r\n biome: (0, core_1.Opt)(StringNode({ enum: 'biome' })),\r\n feature: (0, core_1.Opt)(StringNode({ enum: 'structure_feature' })),\r\n dimension: (0, core_1.Opt)(StringNode({ enum: 'dimension' })),\r\n light: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n light: (0, core_1.Opt)((0, Common_1.Range)({ integer: true, min: 0, max: 15 }))\r\n })),\r\n block: (0, core_1.Opt)(Reference('block_predicate')),\r\n fluid: (0, core_1.Opt)(Reference('fluid_predicate'))\r\n };\r\n schemas.register('location_predicate', (0, core_1.ObjectNode)(exports.LocationFields, { context: 'location' }));\r\n schemas.register('statistic_predicate', (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: (0, 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', (0, core_1.ObjectNode)({\r\n gamemode: (0, core_1.Opt)(StringNode({ enum: 'gamemode' })),\r\n level: (0, core_1.Opt)((0, Common_1.Range)()),\r\n advancements: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), (0, core_1.ChoiceNode)([\r\n { type: 'boolean', node: (0, core_1.BooleanNode)(), change: _ => true },\r\n {\r\n type: 'object', node: (0, core_1.MapNode)(StringNode(), (0, core_1.BooleanNode)())\r\n }\r\n ]))),\r\n recipes: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), (0, core_1.BooleanNode)())),\r\n stats: (0, core_1.Opt)((0, core_1.ListNode)(Reference('statistic_predicate')))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', (0, core_1.ObjectNode)({\r\n amplifier: (0, core_1.Opt)((0, Common_1.Range)()),\r\n duration: (0, core_1.Opt)((0, Common_1.Range)()),\r\n ambient: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n visible: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', (0, core_1.ObjectNode)({\r\n x: (0, core_1.Opt)((0, Common_1.Range)()),\r\n y: (0, core_1.Opt)((0, Common_1.Range)()),\r\n z: (0, core_1.Opt)((0, Common_1.Range)()),\r\n absolute: (0, core_1.Opt)((0, Common_1.Range)()),\r\n horizontal: (0, core_1.Opt)((0, Common_1.Range)())\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', (0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: (0, core_1.Opt)(StringNode({ validator: 'team' })),\r\n location: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n flags: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n is_on_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sneaking: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sprinting: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_swimming: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_baby: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n equipment: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n player: (0, core_1.Opt)(Reference('player_predicate')),\r\n catType: (0, core_1.Opt)(StringNode({ enum: 'cat_texture' })),\r\n effects: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n is_explosion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_projectile: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_lightning: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_armor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_invulnerability: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n direct_entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', (0, core_1.ObjectNode)({\r\n dealt: (0, core_1.Opt)((0, Common_1.Range)()),\r\n taken: (0, core_1.Opt)((0, Common_1.Range)()),\r\n blocked: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n type: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n display: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n icon: (0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: (0, 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: (0, core_1.Opt)(StringNode()),\r\n frame: (0, core_1.Opt)(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n announce_to_chat: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n hidden: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: (0, core_1.MapNode)(StringNode(), Reference('advancement_criteria')),\r\n requirements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ListNode)(StringNode() // TODO: add validation\r\n ))),\r\n rewards: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n function: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: (0, core_1.Opt)(Reference('entity_predicate')),\r\n partner: (0, core_1.Opt)(Reference('entity_predicate')),\r\n child: (0, core_1.Opt)(Reference('entity_predicate'))\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: (0, core_1.Opt)(StringNode({ enum: 'dimension' })),\r\n to: (0, core_1.Opt)(StringNode({ enum: 'dimension' }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.Opt)(Reference('entity_predicate'))))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: (0, core_1.Opt)((0, Common_1.Range)())\r\n },\r\n 'minecraft:consume_item': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: (0, core_1.Opt)(Reference('entity_predicate')),\r\n zombie: (0, core_1.Opt)(Reference('entity_predicate'))\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n },\r\n 'minecraft:enter_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, Common_1.Range)()),\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: (0, core_1.Opt)(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n killing_blow: (0, core_1.Opt)(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n item: (0, 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: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n empty: (0, core_1.Opt)((0, Common_1.Range)()),\r\n occupied: (0, core_1.Opt)((0, Common_1.Range)()),\r\n full: (0, core_1.Opt)((0, Common_1.Range)())\r\n })),\r\n items: (0, core_1.Opt)((0, core_1.ListNode)(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: (0, core_1.Opt)((0, Common_1.Range)()),\r\n durability: (0, core_1.Opt)((0, Common_1.Range)()),\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: (0, core_1.Opt)((0, Common_1.Range)()),\r\n victims: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.Opt)(Reference('entity_predicate'))))\r\n },\r\n 'minecraft:levitation': {\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n duration: (0, core_1.Opt)((0, Common_1.Range)())\r\n },\r\n 'minecraft:location': Predicates_1.LocationFields,\r\n 'minecraft:nether_travel': {\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n entered: (0, core_1.Opt)(Reference('location_predicate')),\r\n exited: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: (0, core_1.Opt)(Reference('damage_predicate')),\r\n entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n killing_blow: (0, 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: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/block' } }))\r\n })),\r\n item: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: (0, core_1.Opt)((0, Common_1.Range)())\r\n },\r\n 'minecraft:used_totem': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: (0, core_1.Opt)(Reference('entity_predicate')),\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': Predicates_1.LocationFields\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => (0, core_1.ListNode)((0, core_1.NumberNode)({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n parent: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n gui_light: (0, core_1.Opt)(StringNode({ enum: 'gui_light' })),\r\n textures: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), Texture)),\r\n elements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: (0, core_1.NumberEnum)({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n shade: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n faces: (0, core_1.MapNode)(StringNode({ enum: 'direction' }), (0, core_1.ObjectNode)({\r\n texture: Texture,\r\n uv: (0, core_1.Opt)(Vec(4)),\r\n cullface: (0, core_1.Opt)(StringNode({ enum: 'direction' })),\r\n rotation: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tintindex: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'display_position' }), (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n predicate: (0, core_1.MapNode)(StringNode({ enum: 'item_model_predicates' }), (0, 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', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n variants: (0, 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: (0, core_1.ObjectNode)({\r\n multipart: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n when: (0, 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: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n y: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n };\r\n schemas.register('model_variant', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n ...VariantChildren,\r\n weight: (0, core_1.Opt)((0, 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', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n OR: (0, 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 (0, BlockDefinition_1.initBlockDefinitionSchemas)(schemas, collections);\r\n (0, Model_1.initModelSchemas)(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', (0, core_1.ObjectOrList)(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', (0, core_1.Mod)((0, 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: (0, core_1.Opt)((0, core_1.ListNode)(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: (0, core_1.Opt)((0, 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 (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n rolls: (0, Common_1.Range)({ allowBinomial: true, integer: true }),\r\n bonus_rolls: (0, core_1.Opt)((0, Common_1.Range)({ integer: true })),\r\n entries: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 1 }), weightMod)),\r\n quality: (0, core_1.Opt)((0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, 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: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n bonusMultiplier: (0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: (0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: (0, core_1.Mod)((0, 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: (0, core_1.ListNode)((0, 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: (0, core_1.ListNode)(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: (0, Common_1.Range)({ allowBinomial: true }),\r\n treasure: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: (0, core_1.Opt)(StringNode({ enum: 'structure_feature' })),\r\n decoration: (0, core_1.Opt)(StringNode({ enum: 'map_decoration' })),\r\n zoom: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n search_radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n skip_existing_chunks: (0, core_1.Opt)((0, 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: (0, Common_1.Range)({ bounds: true })\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: (0, Common_1.Range)({ bounds: true }),\r\n limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: (0, core_1.ListNode)(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_contents': {\r\n entries: (0, core_1.ListNode)(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: (0, Common_1.Range)({ allowBinomial: true })\r\n },\r\n 'minecraft:set_damage': {\r\n damage: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: (0, core_1.Opt)(entitySourceSwtichNode),\r\n lore: (0, core_1.ListNode)(Reference('text_component')),\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_name': {\r\n entity: (0, core_1.Opt)(entitySourceSwtichNode),\r\n name: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.MapNode)(StringNode({ validator: 'objective' }), (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: (0, Common_1.Range)({ bounds: true }),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n id: (0, core_1.Opt)(StringNode({ validator: 'uuid' })),\r\n slot: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack_format: (0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 5, max: 5 }), { default: () => 5 }),\r\n description: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.Opt)(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: (0, core_1.ListNode)(StringNode()),\r\n key: (0, 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: (0, core_1.Opt)(StringNode()),\r\n ingredients: (0, core_1.ListNode)(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: (0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.Mod)((0, 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) => (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n values: (0, core_1.ListNode)((0, 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: (0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: (0, 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', (0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, core_1.Opt)(StringNode()),\r\n bold: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n italic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n underlined: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n strikethrough: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n obfuscated: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n insertion: (0, core_1.Opt)(StringNode()),\r\n clickEvent: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } }))\r\n },\r\n 'show_entity': {\r\n value: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n name: (0, core_1.Opt)(StringNode()),\r\n type: (0, core_1.Opt)(StringNode()),\r\n id: (0, core_1.Opt)(StringNode())\r\n }))\r\n }\r\n }\r\n })),\r\n extra: (0, core_1.Opt)(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n translate: StringNode(),\r\n with: (0, 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: (0, core_1.ObjectNode)({\r\n score: (0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: (0, core_1.Opt)(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: (0, core_1.Opt)(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ListNode)(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` and `Predicates.ts` are files that have exports. They should be initialized first. \r\n (0, Common_1.initCommonSchemas)(schemas, collections);\r\n (0, Predicates_1.initPredicatesSchemas)(schemas, collections);\r\n (0, Advancement_1.initAdvancementSchemas)(schemas, collections);\r\n (0, assets_1.initAssetsSchemas)(schemas, collections);\r\n (0, Condition_1.initConditionSchemas)(schemas, collections);\r\n (0, LootTable_1.initLootTableSchemas)(schemas, collections);\r\n (0, PackMcmeta_1.initPackMcmetaSchemas)(schemas, collections);\r\n (0, Recipe_1.initRecipeSchemas)(schemas, collections);\r\n (0, Tags_1.initTagsSchemas)(schemas, collections);\r\n (0, 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 var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\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.prototype.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 = exports.lootContext = 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 (0, 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 (0, schemas_1.initSchemas)(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n"],"names":["require$$0","require$$1","core_1","Common_1","Predicates_1","require$$2","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","this"],"mappings":"61BACA,OAAO,eAAe,EAAS,aAAc,CAAE,MAAO,EAAI,CAAE,EACrC,EAAA,gBAAG,OAC1B,YAAyB,EAAa,CAClC,EAAY,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,2BACR,CAAK,EACD,EAAY,SAAS,uBAAwB,CACzC,kBACA,iBACA,gBACA,uBACA,yBACA,qBACA,kBACA,mBACR,CAAK,EACD,EAAY,SAAS,sBAAuB,CACxC,wBACA,qBACA,sBACA,8BACA,iCACA,uBACA,qCACA,2BACA,0BACA,uBACA,0BACA,0BACA,uCACA,wBACA,6BACA,8BACR,CAAK,EACD,EAAY,SAAS,qBAAsB,CACvC,sBACA,uBACA,qBACA,qBACA,oBACA,2BACA,yBACA,6BACA,gCACA,4BACA,wBACA,0BACA,4BACA,6BACA,sBACA,qBACA,uBACA,wBACA,4BACA,2BACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,oBACA,sBACA,8BACA,wBACA,uBACA,gBACA,yBACA,sBACA,eACA,qBACA,0BACA,sBACA,4BACR,CAAK,EACD,EAAY,SAAS,oBAAqB,CACtC,mBACA,YACA,UACA,iBACA,iBACA,QACA,YACA,YACA,aACA,WACA,aACA,WACA,UACA,kBACA,SACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,sBACA,uBACA,mBACR,CAAK,EACD,EAAY,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,SACR,CAAK,EACD,EAAY,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,MACR,CAAK,EACD,EAAY,SAAS,WAAY,CAC7B,WACA,WACA,YACA,WACR,CAAK,EACD,EAAY,SAAS,gBAAiB,CAClC,OACA,gBACA,SACA,eACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,eACA,OACA,SACA,eACR,CAAK,EACD,EAAY,SAAS,iCAAkC,CACnD,gCACA,sCACA,qBACR,CAAK,EACD,EAAY,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,cACR,CAAK,EACD,EAAY,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,iBACR,CAAK,EACD,EAAY,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,iBACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,OACA,KACA,QACA,OACA,QACA,MACR,CAAK,EACD,EAAY,SAAS,OAAQ,CACzB,IACA,IACA,GACR,CAAK,EACD,EAAY,SAAS,mBAAoB,CACrC,wBACA,uBACA,wBACA,uBACA,MACA,OACA,SACA,OACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,QACA,MACR,CAAK,EACD,EAAY,SAAS,wBAAyB,CAC1C,QACA,WACA,SACA,OACA,UACA,WACA,oBACA,SACA,UACA,WACA,aACA,OACA,UACA,WACA,MACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,gCACA,gCACA,8BACA,kCACA,4CACA,iCACA,kCACA,kCACA,gCACA,iCACA,mCACR,CAAK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"} \ No newline at end of file diff --git a/assets/index.dd43bf43.js b/assets/index.80f19794.js similarity index 99% rename from assets/index.dd43bf43.js rename to assets/index.80f19794.js index 28c2b9d7..16852c41 100644 --- a/assets/index.dd43bf43.js +++ b/assets/index.80f19794.js @@ -1,2 +1,2 @@ -var Ze=Object.defineProperty,Je=Object.defineProperties;var Qe=Object.getOwnPropertyDescriptors;var Ae=Object.getOwnPropertySymbols;var et=Object.prototype.hasOwnProperty,tt=Object.prototype.propertyIsEnumerable;var Ee=(r,e,t)=>e in r?Ze(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,g=(r,e)=>{for(var t in e||(e={}))et.call(e,t)&&Ee(r,t,e[t]);if(Ae)for(var t of Ae(e))tt.call(e,t)&&Ee(r,t,e[t]);return r},W=(r,e)=>Je(r,Qe(e));import{v as k,u as ne}from"./index.41a3dfd7.js";function rt(r,e){return e.forEach(function(t){t&&typeof t!="string"&&!Array.isArray(t)&&Object.keys(t).forEach(function(o){if(o!=="default"&&!(o in r)){var d=Object.getOwnPropertyDescriptor(t,o);Object.defineProperty(r,o,d.get?d:{enumerable:!0,get:function(){return t[o]}})}})}),Object.freeze(Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}))}var X={},se={};Object.defineProperty(se,"__esModule",{value:!0});se.initCollections=void 0;function ot(r){r.register("advancement_trigger",["minecraft:allay_drop_item_on_block","minecraft:avoid_vibration","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:kill_mob_near_sculk_catalyst","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:thrown_item_picked_up_by_player","minecraft:used_ender_eye","minecraft:used_totem","minecraft:using_item","minecraft:villager_trade","minecraft:voluntary_exile"]),r.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"]),r.register("slot",["mainhand","offhand","head","chest","legs","feet"]),r.register("gamemode",["survival","creative","adventure","spectator"]),r.register("entity_source",["this","killer","direct_killer","killer_player"]),r.register("copy_source",["block_entity","this","killer","killer_player"]),r.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),r.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"]),r.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"]),r.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"]),r.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mountain","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end","underground"]),r.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),r.register("generation_step",["air","liquid"]),r.register("decoration_step",["raw_generation","lakes","local_modifications","underground_structures","surface_structures","strongholds","underground_ores","underground_decoration","fluid_springs","vegetal_decoration","top_layer_modification"]),r.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"]),r.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"]),r.register("dye_color",["white","orange","magenta","light_blue","yellow","lime","pink","gray","light_gray","cyan","purple","blue","brown","green","red","black"]),r.register("cave_surface",["floor","ceiling"]),r.register("direction",["down","up","north","east","south","west"]),r.register("axis",["x","y","z"]),r.register("display_position",["firstperson_righthand","firstperson_lefthand","thirdperson_righthand","thirdperson_lefthand","gui","head","ground","fixed"]),r.register("gui_light",["front","side"]),r.register("item_model_predicates",["angle","blocking","broken","cast","charged","cooldown","custom_model_data","damage","damaged","firework","lefthanded","pull","pulling","throwing","time"]),r.register("glyph_provider_type",["bitmap","ttf","space","legacy_unicode"]),r.register("mob_category",["monster","creature","ambient","axolotls","underground_water_creature","water_creature","water_ambient","misc"])}se.initCollections=ot;var le={},me={};Object.defineProperty(me,"__esModule",{value:!0});me.initAdvancementSchemas=void 0;const s=k;function it(r,e){const t=s.Reference.bind(void 0,r),o=s.StringNode.bind(void 0,e),d=(0,s.ChoiceNode)([{type:"object",node:(0,s.Opt)(t("entity_predicate")),change:n=>{var c,l;return(l=(c=n[0])===null||c===void 0?void 0:c.predicate)!==null&&l!==void 0?l:{}}},{type:"list",node:(0,s.ListNode)(t("condition")),change:n=>[{condition:"minecraft:entity_properties",predicate:n}]}],{context:"conditions"});r.register("advancement",(0,s.Mod)((0,s.ObjectNode)({display:(0,s.Opt)((0,s.Mod)((0,s.ObjectNode)({icon:(0,s.ObjectNode)({item:o({validator:"resource",params:{pool:"item"}}),nbt:(0,s.Opt)(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:t("text_component"),description:t("text_component"),background:(0,s.Opt)(o()),frame:(0,s.Opt)(o({enum:["task","challenge","goal"]})),show_toast:(0,s.Opt)((0,s.BooleanNode)()),announce_to_chat:(0,s.Opt)((0,s.BooleanNode)()),hidden:(0,s.Opt)((0,s.BooleanNode)())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:(0,s.Opt)(o({validator:"resource",params:{pool:"$advancement"}})),criteria:(0,s.MapNode)(o(),t("advancement_criteria")),requirements:(0,s.Opt)((0,s.ListNode)((0,s.ListNode)(o()))),rewards:(0,s.Opt)((0,s.ObjectNode)({function:(0,s.Opt)(o({validator:"resource",params:{pool:"$function"}})),loot:(0,s.Opt)((0,s.ListNode)(o({validator:"resource",params:{pool:"$loot_table"}}))),recipes:(0,s.Opt)((0,s.ListNode)(o({validator:"resource",params:{pool:"$recipe"}}))),experience:(0,s.Opt)((0,s.NumberNode)({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),r.register("advancement_criteria",(0,s.ObjectNode)({trigger:o({validator:"resource",params:{pool:e.get("advancement_trigger")}}),conditions:(0,s.Opt)((0,s.ObjectNode)({player:(0,s.Mod)(d,{enabled:n=>n.pop().push("trigger").get()!=="minecraft:impossible"}),[s.Switch]:["pop",{push:"trigger"}],[s.Case]:{"minecraft:allay_drop_item_on_block":{item:(0,s.Opt)(t("item_predicate")),location:(0,s.Opt)(t("location_predicate"))},"minecraft:bee_nest_destroyed":{block:(0,s.Opt)(o({validator:"resource",params:{pool:"block"}})),num_bees_inside:(0,s.Opt)((0,s.NumberNode)({integer:!0})),item:(0,s.Opt)(t("item_predicate"))},"minecraft:bred_animals":{parent:d,partner:d,child:d},"minecraft:brewed_potion":{potion:(0,s.Opt)(o({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:(0,s.Opt)(o({validator:"resource",params:{pool:"$dimension"}})),to:(0,s.Opt)(o({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:(0,s.Opt)((0,s.ListNode)(d))},"minecraft:construct_beacon":{level:t("int_bounds")},"minecraft:consume_item":{item:(0,s.Opt)(t("item_predicate"))},"minecraft:cured_zombie_villager":{villager:d,zombie:d},"minecraft:effects_changed":{effects:(0,s.Opt)((0,s.MapNode)(o({validator:"resource",params:{pool:"mob_effect"}}),t("status_effect_predicate"))),source:(0,s.Opt)(d)},"minecraft:enter_block":{block:(0,s.Opt)(o({validator:"resource",params:{pool:"block"}})),state:(0,s.Opt)((0,s.MapNode)(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:t("int_bounds"),item:(0,s.Opt)(t("item_predicate"))},"minecraft:entity_hurt_player":{damage:(0,s.Opt)(t("damage_predicate"))},"minecraft:entity_killed_player":{entity:d,killing_blow:(0,s.Opt)(t("damage_source_predicate"))},"minecraft:fall_from_height":{start_position:(0,s.Opt)(t("location_predicate")),distance:(0,s.Opt)(t("distance_predicate"))},"minecraft:filled_bucket":{item:(0,s.Opt)(t("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:d,item:(0,s.Opt)(t("item_predicate"))},"minecraft:inventory_changed":{slots:(0,s.Opt)((0,s.ObjectNode)({empty:t("int_bounds"),occupied:t("int_bounds"),full:t("int_bounds")})),items:(0,s.Opt)((0,s.ListNode)(t("item_predicate")))},"minecraft:item_durability_changed":{delta:t("int_bounds"),durability:t("int_bounds"),item:(0,s.Opt)(t("item_predicate"))},"minecraft:item_used_on_block":{item:(0,s.Opt)(t("item_predicate")),location:(0,s.Opt)(t("location_predicate"))},"minecraft:kill_mob_near_sculk_catalyst":{entity:d,killing_blow:(0,s.Opt)(t("damage_source_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:t("int_bounds"),victims:(0,s.Opt)((0,s.ListNode)(d))},"minecraft:levitation":{distance:(0,s.Opt)(t("distance_predicate")),duration:t("int_bounds")},"minecraft:lightning_strike":{lightning:d,bystander:d},"minecraft:nether_travel":{start_position:(0,s.Opt)(t("location_predicate")),distance:(0,s.Opt)(t("distance_predicate"))},"minecraft:placed_block":{block:(0,s.Opt)(o({validator:"resource",params:{pool:"block"}})),state:(0,s.Opt)((0,s.MapNode)(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:(0,s.Opt)(t("item_predicate")),location:(0,s.Opt)(t("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:o({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:(0,s.Opt)(t("damage_predicate")),entity:d},"minecraft:player_interacted_with_entity":{item:(0,s.Opt)(t("item_predicate")),entity:d},"minecraft:player_killed_entity":{entity:d,killing_blow:(0,s.Opt)(t("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:o({validator:"resource",params:{pool:"$recipe"}})},"minecraft:ride_entity_in_lava":{start_position:(0,s.Opt)(t("location_predicate")),distance:(0,s.Opt)(t("distance_predicate"))},"minecraft:slide_down_block":{block:(0,s.Opt)(o({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:(0,s.Opt)(t("item_predicate"))},"minecraft:summoned_entity":{entity:d},"minecraft:tame_animal":{entity:d},"minecraft:target_hit":{projectile:d,shooter:d,signal_strength:t("int_bounds")},"minecraft:thrown_item_picked_up_by_entity":{entity:d,item:(0,s.Opt)(t("item_predicate"))},"minecraft:thrown_item_picked_up_by_player":{entity:d,item:(0,s.Opt)(t("item_predicate"))},"minecraft:used_ender_eye":{distance:(0,s.Opt)(t("float_bounds"))},"minecraft:used_totem":{item:(0,s.Opt)(t("item_predicate"))},"minecraft:using_item":{item:(0,s.Opt)(t("item_predicate"))},"minecraft:villager_trade":{villager:d,item:(0,s.Opt)(t("item_predicate"))}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))}me.initAdvancementSchemas=it;var _e={},ue={};Object.defineProperty(ue,"__esModule",{value:!0});ue.initModelSchemas=void 0;const N=k;function nt(r,e){N.Reference.bind(void 0,r);const t=N.StringNode.bind(void 0,e),o=(n,c,l)=>(0,N.ListNode)((0,N.NumberNode)({min:c,max:l}),{minLength:n,maxLength:n}),d=(0,N.ChoiceNode)([{type:"alias",match:n=>typeof n=="string"&&n.startsWith("#"),node:t(),change:n=>typeof n=="string"?`#${n}`:"#0"},{type:"reference",match:n=>typeof n=="string",node:t({validator:"resource",params:{pool:"$texture"}}),change:n=>typeof n=="string"?n.replace(/^#/,""):""}],{choiceContext:"texture"});r.register("model",(0,N.Mod)((0,N.ObjectNode)({parent:(0,N.Opt)(t({validator:"resource",params:{pool:"$model"}})),ambientocclusion:(0,N.Opt)((0,N.BooleanNode)()),gui_light:(0,N.Opt)(t({enum:"gui_light"})),textures:(0,N.Opt)((0,N.MapNode)(t(),d)),elements:(0,N.Opt)((0,N.ListNode)((0,N.ObjectNode)({from:o(3,-16,32),to:o(3,-16,32),rotation:(0,N.Opt)((0,N.ObjectNode)({origin:o(3),axis:t({enum:"axis"}),angle:(0,N.NumberEnum)({values:[-45,-22.5,0,22.5,45]}),rescale:(0,N.Opt)((0,N.BooleanNode)())})),shade:(0,N.Opt)((0,N.BooleanNode)()),faces:(0,N.MapNode)(t({enum:"direction"}),(0,N.ObjectNode)({texture:d,uv:(0,N.Opt)(o(4)),cullface:(0,N.Opt)(t({enum:"direction"})),rotation:(0,N.Opt)((0,N.NumberNode)({integer:!0})),tintindex:(0,N.Opt)((0,N.NumberNode)({integer:!0}))}))},{context:"model_element"}))),display:(0,N.Opt)((0,N.MapNode)(t({enum:"display_position"}),(0,N.ObjectNode)({rotation:o(3),translation:o(3,-80,80),scale:o(3,-4,4)},{context:"item_transform"}))),overrides:(0,N.Opt)((0,N.ListNode)((0,N.ObjectNode)({predicate:(0,N.MapNode)(t({enum:"item_model_predicates"}),(0,N.NumberNode)()),model:t({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))}ue.initModelSchemas=nt;var pe={};Object.defineProperty(pe,"__esModule",{value:!0});pe.initBlockDefinitionSchemas=void 0;const S=k;function at(r,e){const t=S.Reference.bind(void 0,r),o=S.StringNode.bind(void 0,e);r.register("block_definition",(0,S.Mod)((0,S.ChoiceNode)([{type:"variants",match:n=>n.variants!==void 0,node:(0,S.ObjectNode)({variants:(0,S.MapNode)(o(),t("model_variant"))}),change:n=>({variants:{"":{}}})},{type:"multipart",match:n=>n.multipart!==void 0,node:(0,S.ObjectNode)({multipart:(0,S.ListNode)((0,S.ObjectNode)({when:(0,S.Opt)(t("multipart_condition")),apply:t("model_variant")}))}),change:n=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const d={model:o({validator:"resource",params:{pool:"$model"}}),x:(0,S.Opt)((0,S.NumberEnum)({integer:!0,values:[0,90,180,270]})),y:(0,S.Opt)((0,S.NumberEnum)({integer:!0,values:[0,90,180,270]})),uvlock:(0,S.Opt)((0,S.BooleanNode)())};r.register("model_variant",(0,S.ChoiceNode)([{type:"object",node:(0,S.ObjectNode)(d),change:n=>Array.isArray(n)&&n.length>0?n[0]:{}},{type:"list",node:(0,S.ListNode)((0,S.ObjectNode)(W(g({},d),{weight:(0,S.Opt)((0,S.NumberNode)({integer:!0,min:1}))}),{context:"model_variant"})),change:n=>[g({weight:1},n)]}],{context:"model_variant"})),r.register("multipart_condition",(0,S.ChoiceNode)([{type:"object",priority:-1,match:()=>!0,node:(0,S.MapNode)(o(),o()),change:n=>typeof n=="object"&&Array.isArray(n==null?void 0:n.OR)&&n.OR.length>0?n.OR[0]:{}},{type:"or",match:n=>typeof n=="object"&&(n==null?void 0:n.OR)!==void 0,node:(0,S.ObjectNode)({OR:(0,S.ListNode)(t("multipart_condition"))}),change:n=>({OR:[n!=null?n:{}]})}],{context:"multipart_condition"}))}pe.initBlockDefinitionSchemas=at;var fe={};Object.defineProperty(fe,"__esModule",{value:!0});fe.initFontSchemas=void 0;const M=k;function ct(r,e){const t=M.Reference.bind(void 0,r),o=M.StringNode.bind(void 0,e);r.register("font",(0,M.ObjectNode)({providers:(0,M.ListNode)(t("glyph_provider"))},{context:"font"})),r.register("glyph_provider",(0,M.Mod)((0,M.ObjectNode)({type:o({enum:"glyph_provider_type"}),[M.Switch]:[{push:"type"}],[M.Case]:{bitmap:{file:o({validator:"resource",params:{pool:"$texture",suffix:".png"}}),height:(0,M.Opt)((0,M.NumberNode)({integer:!0})),ascent:(0,M.NumberNode)({integer:!0}),chars:(0,M.ListNode)(o(),{minLength:1})},ttf:{file:o({validator:"resource",params:{pool:"$texture",suffix:".png"}}),size:(0,M.Opt)((0,M.NumberNode)()),oversample:(0,M.Opt)((0,M.NumberNode)()),shift:(0,M.Opt)((0,M.ListNode)((0,M.NumberNode)(),{minLength:2,maxLength:2})),skip:(0,M.Opt)((0,M.StringOrList)(o()))},space:{advances:(0,M.MapNode)(o(),(0,M.NumberNode)())},legacy_unicode:{sizes:o(),template:o()}}},{context:"glyph_provider"}),{default:()=>({type:"bitmap"})}))}fe.initFontSchemas=ct;Object.defineProperty(_e,"__esModule",{value:!0});_e.initAssetsSchemas=void 0;const dt=ue,st=pe,lt=fe;function mt(r,e){(0,st.initBlockDefinitionSchemas)(r,e),(0,lt.initFontSchemas)(r,e),(0,dt.initModelSchemas)(r,e)}_e.initAssetsSchemas=mt;var ge={};Object.defineProperty(ge,"__esModule",{value:!0});ge.initChatTypeSchemas=void 0;const Y=k;function _t(r,e){const t=Y.Reference.bind(void 0,r),o=Y.StringNode.bind(void 0,e);r.register("chat_type",(0,Y.Mod)((0,Y.ObjectNode)({chat:t("text_decoration"),narration:t("text_decoration")},{context:"chat_type"}),{default:()=>({chat:{translation_key:"chat.type.text",parameters:["sender","content"]},narration:{translation_key:"chat.type.text.narrate",parameters:["sender","content"]}})})),r.register("text_decoration",(0,Y.Mod)((0,Y.ObjectNode)({translation_key:o(),parameters:(0,Y.ListNode)(o({enum:["sender","target","content"]})),style:(0,Y.Opt)(t("text_style"))},{context:"text_decoration"}),{default:()=>({translation_key:"chat.type.text",parameters:["sender","content"],style:{}})}))}ge.initChatTypeSchemas=_t;var R={};(function(r){Object.defineProperty(r,"__esModule",{value:!0}),r.initCommonSchemas=r.Tag=r.InclusiveRange=r.IntProvider=r.FloatProvider=r.NoiseSettingsPresets=r.DefaultNoiseSettings=r.FunctionCases=r.ConditionCases=void 0;const e=k;r.DefaultNoiseSettings={sea_level:63,ore_veins_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,legacy_random_source:!1,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,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}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}};function t(o,d){const n=e.StringNode.bind(void 0,d),c=e.Reference.bind(void 0,o);o.register("block_state",(0,e.Mod)((0,e.ObjectNode)({Name:n({validator:"resource",params:{pool:"block"}}),Properties:(0,e.Opt)((0,e.MapNode)(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),o.register("fluid_state",(0,e.Mod)((0,e.ObjectNode)({Name:n({validator:"resource",params:{pool:"fluid"}}),Properties:(0,e.Opt)((0,e.MapNode)(n(),n()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),o.register("block_pos",(0,e.Mod)((0,e.ListNode)((0,e.NumberNode)({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const l=_=>(0,e.Opt)((0,e.ChoiceNode)([{type:"number",node:(0,e.NumberNode)({integer:_}),change:b=>{var j,y;return b===void 0?0:(y=(j=b.min)!==null&&j!==void 0?j:b.max)!==null&&y!==void 0?y:0}},{type:"object",node:(0,e.ObjectNode)({min:(0,e.Opt)((0,e.NumberNode)({integer:_})),max:(0,e.Opt)((0,e.NumberNode)({integer:_}))},{context:"range"}),change:b=>({min:b!=null?b:0,max:b!=null?b:0})}]));o.register("int_bounds",l(!0)),o.register("float_bounds",l()),o.register("int_range",(0,e.ChoiceNode)([{type:"object",node:(0,e.ObjectNode)({min:(0,e.Opt)(c("number_provider")),max:(0,e.Opt)(c("number_provider"))})},{type:"number",node:(0,e.NumberNode)({integer:!0})}],{context:"range"}));const v=(_,b,j,y,F,z,U)=>{let ce={};F&&Object.keys(U[F]).forEach(A=>{ce[A]=(0,e.Mod)(U[F][A],{enabled:E=>E.push("type").get()===void 0})});const ee=(0,e.ObjectNode)(g({type:(0,e.Mod)((0,e.Opt)(n({validator:"resource",params:{pool:_}})),{hidden:()=>!0}),[e.Switch]:[{push:"type"}],[e.Case]:U},ce),{context:z,disableSwitchContext:!0}),te=[{type:b,node:U[y][j]}];return F&&te.push({type:"object",priority:-1,node:ee}),Object.keys(U).forEach(A=>{te.push({type:A,match:E=>{var re;if("minecraft:"+((re=E==null?void 0:E.type)===null||re===void 0?void 0:re.replace(/^minecraft:/,""))===A)return!0;const V=E?Object.keys(E):[];return typeof E=="object"&&((V==null?void 0:V.length)===0||(V==null?void 0:V.length)===1&&(V==null?void 0:V[0])==="type")},node:ee,change:E=>({type:A})})}),(0,e.ChoiceNode)(te,{context:z,choiceContext:`${z}.type`})};o.register("number_provider",v("loot_number_provider_type","number","value","minecraft:constant","minecraft:uniform","number_provider",{"minecraft:constant":{value:(0,e.NumberNode)()},"minecraft:uniform":{min:c("number_provider"),max:c("number_provider")},"minecraft:binomial":{n:c("number_provider"),p:c("number_provider")},"minecraft:score":{target:c("scoreboard_name_provider"),score:n({validator:"objective"}),scale:(0,e.Opt)((0,e.NumberNode)())}})),o.register("scoreboard_name_provider",v("loot_score_provider_type","string","target","minecraft:context",null,"score_provider",{"minecraft:fixed":{name:n({validator:"entity",params:{amount:"multiple",type:"entities",isScoreHolder:!0}})},"minecraft:context":{target:(0,e.Mod)(n({enum:"entity_source"}),{default:()=>"this"})}})),o.register("nbt_provider",v("loot_nbt_provider_type","string","target","minecraft:context",null,"nbt_provider",{"minecraft:storage":{source:n({validator:"resource",params:{pool:"$storage"}})},"minecraft:context":{target:(0,e.Mod)(n({enum:"copy_source"}),{default:()=>"this"})}})),r.FloatProvider=_=>v("float_provider_type","number","value","minecraft:constant",null,"float_provider",{"minecraft:constant":{value:(0,e.NumberNode)(_)},"minecraft:uniform":{value:(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(_),max_exclusive:(0,e.NumberNode)(_)})},"minecraft:clamped_normal":{value:(0,e.ObjectNode)({min:(0,e.NumberNode)(),max:(0,e.NumberNode)(),mean:(0,e.NumberNode)(),deviation:(0,e.NumberNode)()})},"minecraft:trapezoid":{value:(0,e.ObjectNode)({min:(0,e.NumberNode)(),max:(0,e.NumberNode)(),plateau:(0,e.NumberNode)()})}}),o.register("float_provider",(0,r.FloatProvider)()),r.IntProvider=_=>v("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:(0,e.NumberNode)(g({integer:!0},_))},"minecraft:uniform":{value:(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(g({integer:!0},_)),max_inclusive:(0,e.NumberNode)(g({integer:!0},_))})},"minecraft:biased_to_bottom":{value:(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(g({integer:!0},_)),max_inclusive:(0,e.NumberNode)(g({integer:!0},_))})},"minecraft:clamped":{value:(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(g({integer:!0},_)),max_inclusive:(0,e.NumberNode)(g({integer:!0},_)),source:c("int_provider")})},"minecraft:clamped_normal":{value:(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(g({integer:!0},_)),max_inclusive:(0,e.NumberNode)(g({integer:!0},_)),mean:(0,e.NumberNode)(),deviation:(0,e.NumberNode)()})},"minecraft:weighted_list":{distribution:(0,e.ListNode)((0,e.ObjectNode)({weight:(0,e.NumberNode)({integer:!0}),data:c("int_provider")}))}}),o.register("int_provider",(0,r.IntProvider)()),o.register("vertical_anchor",(0,e.ChoiceNode)(["absolute","above_bottom","below_top"].map(_=>({type:_,match:b=>(b==null?void 0:b[_])!==void 0,change:b=>{var j,y,F;return{[_]:(F=(y=(j=b.absolute)!==null&&j!==void 0?j:b.above_bottom)!==null&&y!==void 0?y:b.below_top)!==null&&F!==void 0?F:0}},node:(0,e.ObjectNode)({[_]:(0,e.NumberNode)({integer:!0,min:-2048,max:2047})})})),{context:"vertical_anchor"})),o.register("height_provider",v("height_provider_type","number","value","minecraft:constant",null,"height_provider",{"minecraft:constant":{value:c("vertical_anchor")},"minecraft:uniform":{min_inclusive:c("vertical_anchor"),max_inclusive:c("vertical_anchor")},"minecraft:biased_to_bottom":{min_inclusive:c("vertical_anchor"),max_inclusive:c("vertical_anchor"),inner:(0,e.Opt)((0,e.NumberNode)({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:c("vertical_anchor"),max_inclusive:c("vertical_anchor"),inner:(0,e.Opt)((0,e.NumberNode)({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:c("vertical_anchor"),max_inclusive:c("vertical_anchor"),plateau:(0,e.Opt)((0,e.NumberNode)({integer:!0}))},"minecraft:weighted_list":{distribution:(0,e.ListNode)((0,e.ObjectNode)({weight:(0,e.NumberNode)({integer:!0}),data:c("int_provider")}))}})),r.InclusiveRange=_=>(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(_),max_inclusive:(0,e.NumberNode)(_)},{context:"range"}),o.register("noise_parameters",(0,e.Mod)((0,e.ObjectNode)({firstOctave:(0,e.NumberNode)({integer:!0}),amplitudes:(0,e.ListNode)((0,e.NumberNode)())},{context:"noise_parameters"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})})),r.Tag=_=>(0,e.ChoiceNode)([{type:"string",node:n({validator:"resource",params:{pool:_.resource,allowTag:!0}}),change:b=>{if(Array.isArray(b)&&typeof b[0]=="string"&&!b[0].startsWith("#"))return b[0]}},{type:"list",node:(0,e.ListNode)(_.inlineSchema?(0,e.ChoiceNode)([{type:"string",node:n({validator:"resource",params:{pool:_.resource}})},{type:"object",node:c(_.inlineSchema)}],{choiceContext:"tag.list"}):n({validator:"resource",params:{pool:_.resource}})),change:b=>typeof b=="string"&&!b.startsWith("#")?[b]:[]}],{choiceContext:"tag"}),r.ConditionCases=(_=n({enum:"entity_source"}))=>({"minecraft:alternative":{terms:(0,e.ListNode)(c("condition"))},"minecraft:block_state_property":{block:n({validator:"resource",params:{pool:"block"}}),properties:(0,e.MapNode)(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:c("damage_source_predicate")},"minecraft:entity_properties":{entity:_,predicate:c("entity_predicate")},"minecraft:entity_scores":{entity:_,scores:(0,e.MapNode)(n({validator:"objective"}),c("int_range"))},"minecraft:inverted":{term:c("condition")},"minecraft:killed_by_player":{inverse:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:location_check":{offsetX:(0,e.Opt)((0,e.NumberNode)({integer:!0})),offsetY:(0,e.Opt)((0,e.NumberNode)({integer:!0})),offsetZ:(0,e.Opt)((0,e.NumberNode)({integer:!0})),predicate:c("location_predicate")},"minecraft:match_tool":{predicate:c("item_predicate")},"minecraft:random_chance":{chance:(0,e.NumberNode)({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:(0,e.NumberNode)({min:0,max:1}),looting_multiplier:(0,e.NumberNode)()},"minecraft:reference":{name:n({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:n({validator:"resource",params:{pool:"enchantment"}}),chances:(0,e.ListNode)((0,e.NumberNode)({min:0,max:1}))},"minecraft:time_check":{value:c("int_range"),period:(0,e.Opt)((0,e.NumberNode)({integer:!0}))},"minecraft:value_check":{value:c("number_provider"),range:c("int_range")},"minecraft:weather_check":{raining:(0,e.Opt)((0,e.BooleanNode)()),thundering:(0,e.Opt)((0,e.BooleanNode)())}}),r.FunctionCases=(_,b=n({enum:"copy_source"}),j=n({enum:"entity_source"}))=>{const y={"minecraft:apply_bonus":{enchantment:n({validator:"resource",params:{pool:"enchantment"}}),formula:n({validator:"resource",params:{pool:d.get("loot_table_apply_bonus_formula")}}),parameters:(0,e.Mod)((0,e.ObjectNode)({bonusMultiplier:(0,e.Mod)((0,e.NumberNode)(),{enabled:z=>z.pop().push("formula").get()==="minecraft:uniform_bonus_count"}),extra:(0,e.Mod)((0,e.NumberNode)(),{enabled:z=>z.pop().push("formula").get()==="minecraft:binomial_with_bonus_count"}),probability:(0,e.Mod)((0,e.NumberNode)(),{enabled:z=>z.pop().push("formula").get()==="minecraft:binomial_with_bonus_count"})}),{enabled:z=>z.push("formula").get()!=="minecraft:ore_drops"})},"minecraft:copy_name":{source:b},"minecraft:copy_nbt":{source:c("nbt_provider"),ops:(0,e.ListNode)((0,e.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:(0,e.ListNode)(n({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:(0,e.Opt)((0,e.ListNode)(n({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:c("number_provider"),treasure:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:exploration_map":{destination:(0,e.Opt)((0,r.Tag)({resource:"$worldgen/structure"})),decoration:(0,e.Opt)(n({enum:"map_decoration"})),zoom:(0,e.Opt)((0,e.NumberNode)({integer:!0})),search_radius:(0,e.Opt)((0,e.NumberNode)({integer:!0})),skip_existing_chunks:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:fill_player_head":{entity:j},"minecraft:limit_count":{limit:c("int_range")},"minecraft:looting_enchant":{count:c("number_provider"),limit:(0,e.Opt)((0,e.NumberNode)({integer:!0}))},"minecraft:set_attributes":{modifiers:(0,e.ListNode)(c("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:(0,e.ListNode)((0,e.ObjectNode)({pattern:n({enum:"banner_pattern"}),color:n({enum:"dye_color"})})),append:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:set_contents":{type:n({validator:"resource",params:{pool:"block_entity_type"}}),entries:(0,e.ListNode)(c("loot_entry"))},"minecraft:set_count":{count:c("number_provider"),add:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:set_damage":{damage:c("number_provider"),add:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:set_enchantments":{enchantments:(0,e.MapNode)(n({validator:"resource",params:{pool:"enchantment"}}),c("number_provider")),add:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:set_instrument":{options:n({validator:"resource",params:{pool:"instrument",requireTag:!0}})},"minecraft:set_loot_table":{type:n({validator:"resource",params:{pool:"block_entity_type"}}),name:n({validator:"resource",params:{pool:"$loot_table"}}),seed:(0,e.Opt)((0,e.NumberNode)({integer:!0}))},"minecraft:set_lore":{entity:(0,e.Opt)(j),lore:(0,e.ListNode)(c("text_component")),replace:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:set_name":{entity:(0,e.Opt)(j),name:(0,e.Opt)(c("text_component"))},"minecraft:set_nbt":{tag:n({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_potion":{id:n({validator:"resource",params:{pool:"potion"}})},"minecraft:set_stew_effect":{effects:(0,e.Opt)((0,e.ListNode)((0,e.ObjectNode)({type:n({validator:"resource",params:{pool:"mob_effect"}}),duration:c("number_provider")})))}},F={};return d.get("loot_function_type").forEach(z=>{F[z]=g(g({},y[z]),_)}),F},r.NoiseSettingsPresets=_=>(0,e.ObjectOrPreset)(n({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),_,{"minecraft:overworld":r.DefaultNoiseSettings,"minecraft:nether":{sea_level:32,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,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,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}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:end":{sea_level:0,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,default_block:{Name:"minecraft:end_stone"},default_fluid:{Name:"minecraft:air"},noise:{min_y:0,height:128,size_horizontal:2,size_vertical:1,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}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:amplified":{sea_level:63,ore_veins_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,legacy_random_source:!1,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,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}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:caves":{sea_level:32,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,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,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}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:floating_islands":{sea_level:0,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,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,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}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}}})}r.initCommonSchemas=t})(R);var be={};Object.defineProperty(be,"__esModule",{value:!0});be.initConditionSchemas=void 0;const oe=k,ut=R;function pt(r,e){const t=oe.Reference.bind(void 0,r),o=oe.StringNode.bind(void 0,e);r.register("predicate",(0,oe.ObjectOrList)(t("condition"),{choiceContext:"condition"})),r.register("condition",(0,oe.Mod)((0,oe.ObjectNode)({condition:o({validator:"resource",params:{pool:"loot_condition_type"}}),[oe.Switch]:[{push:"condition"}],[oe.Case]:(0,ut.ConditionCases)()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))}be.initConditionSchemas=pt;var Ne={};Object.defineProperty(Ne,"__esModule",{value:!0});Ne.initDimensionSchemas=void 0;const O=k,Te=R;function ft(r,e){const t=O.Reference.bind(void 0,r),o=O.StringNode.bind(void 0,e);r.register("dimension",(0,O.Mod)((0,O.ObjectNode)({type:o({validator:"resource",params:{pool:"$dimension_type"}}),generator:(0,O.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[O.Switch]:[{push:"type"}],[O.Case]:{"minecraft:noise":{settings:(0,Te.NoiseSettingsPresets)(t("noise_settings")),biome_source:(0,O.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/biome_source"}}),[O.Switch]:[{push:"type"}],[O.Case]:{"minecraft:fixed":{biome:o({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{preset:(0,O.Opt)(o({validator:"resource",params:{pool:["minecraft:overworld","minecraft:nether"]}})),biomes:(0,O.Mod)((0,O.ListNode)(t("generator_biome")),{enabled:n=>n.push("preset").get()===void 0,default:()=>[{biome:"minecraft:plains"}]})},"minecraft:checkerboard":{scale:(0,O.Opt)((0,O.NumberNode)({integer:!0,min:0,max:62})),biomes:(0,Te.Tag)({resource:"$worldgen/biome"})}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:t("flat_generator_settings")}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>({type:"minecraft:overworld",generator:{type:"minecraft:noise",biome_source:{type:"minecraft:fixed",biome:"minecraft:plains"},settings:"minecraft:overworld"}})})),r.register("flat_generator_settings",(0,O.ObjectNode)({biome:(0,O.Opt)(o({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:(0,O.Opt)((0,O.BooleanNode)()),features:(0,O.Opt)((0,O.BooleanNode)()),layers:(0,O.ListNode)(t("generator_layer")),structure_overrides:(0,Te.Tag)({resource:"$worldgen/structure_set",inlineSchema:"structure_set"})}));const d=(0,O.ChoiceNode)([{type:"number",node:(0,O.NumberNode)({min:-2,max:2}),change:n=>{var c;return(c=n[0])!==null&&c!==void 0?c:0}},{type:"list",node:(0,O.ListNode)((0,O.NumberNode)({min:-2,max:2}),{minLength:2,maxLength:2}),change:n=>[n!=null?n:0,n!=null?n:0]}]);r.register("parameter_point",(0,O.ObjectNode)({temperature:d,humidity:d,continentalness:d,erosion:d,weirdness:d,depth:d,offset:(0,O.NumberNode)({min:0,max:1})})),r.register("generator_biome",(0,O.Mod)((0,O.ObjectNode)({biome:o({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:t("parameter_point")},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{temperature:0,humidity:0,continentalness:0,erosion:0,weirdness:0,depth:0,offset:0}})}))}Ne.initDimensionSchemas=ft;var ye={};Object.defineProperty(ye,"__esModule",{value:!0});ye.initDimensionTypeSchemas=void 0;const L=k,gt=R;function bt(r,e){const t=L.StringNode.bind(void 0,e);r.register("dimension_type",(0,L.Mod)((0,L.ObjectNode)({ultrawarm:(0,L.BooleanNode)(),natural:(0,L.BooleanNode)(),piglin_safe:(0,L.BooleanNode)(),respawn_anchor_works:(0,L.BooleanNode)(),bed_works:(0,L.BooleanNode)(),has_raids:(0,L.BooleanNode)(),has_skylight:(0,L.BooleanNode)(),has_ceiling:(0,L.BooleanNode)(),coordinate_scale:(0,L.NumberNode)({min:1e-5,max:3e7}),ambient_light:(0,L.NumberNode)(),fixed_time:(0,L.Opt)((0,L.NumberNode)({integer:!0})),logical_height:(0,L.NumberNode)({integer:!0,min:0,max:4064}),effects:(0,L.Opt)(t({validator:"resource",params:{pool:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]}})),infiniburn:t({validator:"resource",params:{pool:"block",requireTag:!0}}),min_y:(0,L.NumberNode)({integer:!0,min:-2032,max:2031}),height:(0,L.NumberNode)({integer:!0,min:16,max:4064}),monster_spawn_light_level:(0,gt.IntProvider)({min:0,max:15}),monster_spawn_block_light_limit:(0,L.NumberNode)({integer:!0,min:0,max:15})},{context:"dimension_type"}),o=>({default:()=>({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:384,effects:"minecraft:overworld",infiniburn:"#minecraft:infiniburn_overworld",min_y:-64,height:384,monster_spawn_block_light_limit:0,monster_spawn_light_level:{type:"minecraft:uniform",value:{min_inclusive:0,max_inclusive:7}}}),validate:(d,n,c,l)=>(n=o.validate(d,n,c,l),(n==null?void 0:n.min_y)+(n==null?void 0:n.height)>2032&&c.add(d.push("height"),"error.min_y_plus_height",2032),(n==null?void 0:n.logical_height)>(n==null?void 0:n.height)&&c.add(d.push("logical_height"),"error.logical_height"),(n==null?void 0:n.height)%16!==0&&c.add(d.push("height"),"error.height_multiple",16),(n==null?void 0:n.min_y)%16!==0&&c.add(d.push("min_y"),"error.min_y_multiple",16),n)})))}ye.initDimensionTypeSchemas=bt;var he={};Object.defineProperty(he,"__esModule",{value:!0});he.initItemModifierSchemas=void 0;const G=k,Nt=R;function yt(r,e){const t=G.Reference.bind(void 0,r),o=G.StringNode.bind(void 0,e);r.register("item_modifier",(0,G.ObjectOrList)(t("function"),{choiceContext:"function"}));const d={conditions:(0,G.Opt)((0,G.ListNode)(t("condition")))};r.register("function",(0,G.Mod)((0,G.ObjectNode)({function:o({validator:"resource",params:{pool:"loot_function_type"}}),[G.Switch]:[{push:"function"}],[G.Case]:(0,Nt.FunctionCases)(d)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))}he.initItemModifierSchemas=yt;var ve={},I={};Object.defineProperty(I,"__esModule",{value:!0});I.LootFunctions=I.LootConditions=I.LootCopySources=I.LootEntitySources=I.LootTableTypes=void 0;I.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]}]]);I.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]);I.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]);I.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",[]]]);I.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(ve,"__esModule",{value:!0});ve.initLootTableSchemas=void 0;const p=k,ae=I,We=R;function ht(r,e){const t=p.Reference.bind(void 0,r),o=p.StringNode.bind(void 0,e),d={conditions:(0,p.Opt)((0,p.ListNode)(t("loot_condition")))},n=g({functions:(0,p.Opt)((0,p.ListNode)(t("loot_function")))},d);function c(y,F,z){const U=[],ce=ee=>e.get(F).filter(te=>{var A;return((A=y.get(te))!==null&&A!==void 0?A:[]).every(re=>ee.includes(re))});for(const[ee,{allows:te,requires:A}]of ae.LootTableTypes){const E=[...te,...A];U.push({match:re=>re.getModel().get(new p.Path(["type"]))===ee,node:z(ce(E))})}return U.push({match:ee=>!0,node:z(F)}),(0,p.SwitchNode)(U)}const l=c(ae.LootConditions,"loot_condition_type",y=>o({validator:"resource",params:{pool:y instanceof Array?y:"loot_condition_type"}})),v=c(ae.LootFunctions,"loot_function_type",y=>o({validator:"resource",params:{pool:y instanceof Array?y:"loot_function_type"}})),_=c(ae.LootEntitySources,"entity_source",y=>o({enum:y})),b=c(ae.LootCopySources,"copy_source",y=>o({enum:y}));r.register("loot_table",(0,p.Mod)((0,p.ObjectNode)({type:(0,p.Opt)(o({validator:"resource",params:{pool:e.get("loot_context_type")}})),pools:(0,p.Opt)((0,p.ListNode)((0,p.Mod)((0,p.ObjectNode)(g({rolls:t("number_provider"),bonus_rolls:(0,p.Opt)(t("number_provider")),entries:(0,p.ListNode)(t("loot_entry"))},n),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:(0,p.Opt)((0,p.ListNode)(t("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const j={enabled:y=>{var F;return((F=y.pop().get())===null||F===void 0?void 0:F.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(y.push("type").get())}};r.register("loot_entry",(0,p.Mod)((0,p.ObjectNode)({type:o({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:(0,p.Opt)((0,p.Mod)((0,p.NumberNode)({integer:!0,min:1}),j)),quality:(0,p.Opt)((0,p.Mod)((0,p.NumberNode)({integer:!0}),j)),[p.Switch]:[{push:"type"}],[p.Case]:{"minecraft:alternatives":g({children:(0,p.ListNode)(t("loot_entry"))},n),"minecraft:dynamic":g({name:o()},n),"minecraft:group":g({children:(0,p.ListNode)(t("loot_entry"))},n),"minecraft:item":g({name:o({validator:"resource",params:{pool:"item"}})},n),"minecraft:loot_table":g({name:o({validator:"resource",params:{pool:"$loot_table"}})},n),"minecraft:sequence":g({children:(0,p.ListNode)(t("loot_entry"))},n),"minecraft:tag":g({name:o({validator:"resource",params:{pool:"$tag/item"}}),expand:(0,p.Opt)((0,p.BooleanNode)())},n)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),r.register("loot_function",(0,p.Mod)((0,p.ObjectNode)({function:v,[p.Switch]:[{push:"function"}],[p.Case]:(0,We.FunctionCases)(d,b,_)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),r.register("loot_condition",(0,p.Mod)((0,p.ObjectNode)({condition:l,[p.Switch]:[{push:"condition"}],[p.Case]:(0,We.ConditionCases)(_)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),r.register("attribute_modifier",(0,p.Mod)((0,p.ObjectNode)({attribute:o({validator:"resource",params:{pool:"attribute"}}),name:o(),amount:t("number_provider"),operation:o({enum:["addition","multiply_base","multiply_total"]}),id:(0,p.Opt)(o({validator:"uuid"})),slot:(0,p.StringOrList)(o({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))}ve.initLootTableSchemas=ht;var Oe={};Object.defineProperty(Oe,"__esModule",{value:!0});Oe.initPackMcmetaSchemas=void 0;const T=k,Z=10;function vt(r,e){const t=T.Reference.bind(void 0,r),o=T.StringNode.bind(void 0,e);r.register("pack_mcmeta",(0,T.Mod)((0,T.ObjectNode)({pack:(0,T.Mod)((0,T.ObjectNode)({pack_format:(0,T.Mod)((0,T.NumberNode)({integer:!0,min:Z,max:Z}),{default:()=>Z,canUpdate:(d,n)=>n!==Z,update:()=>[{name:"pack_format",params:[Z],newValue:Z}]}),description:t("text_component")}),{default:()=>({pack_format:Z,description:""})}),filter:(0,T.Opt)((0,T.ObjectNode)({block:(0,T.ListNode)((0,T.ObjectNode)({namespace:(0,T.Opt)(o({validator:"regex_pattern"})),path:(0,T.Opt)(o({validator:"regex_pattern"}))}))}))}),{default:()=>({pack:{pack_format:Z,description:""}})}))}Oe.initPackMcmetaSchemas=vt;var ke={};Object.defineProperty(ke,"__esModule",{value:!0});ke.initPredicatesSchemas=void 0;const a=k;function Ot(r,e){const t=a.Reference.bind(void 0,r),o=a.StringNode.bind(void 0,e),d=(0,a.ChoiceNode)([{type:"string",node:o(),change:n=>typeof n=="boolean"||typeof n=="number"?n.toString():""},{type:"number",node:(0,a.NumberNode)(),change:n=>typeof n=="string"?parseInt(n):0},{type:"object",node:(0,a.ObjectNode)({min:(0,a.Opt)((0,a.NumberNode)({integer:!0})),max:(0,a.Opt)((0,a.NumberNode)({integer:!0}))}),change:n=>typeof n=="number"?{min:n,max:n}:{}},{type:"boolean",node:(0,a.BooleanNode)(),change:n=>n==="true"||n===1}]);r.register("item_predicate",(0,a.ObjectNode)({items:(0,a.Opt)((0,a.ListNode)(o({validator:"resource",params:{pool:"item"}}))),tag:(0,a.Opt)(o({validator:"resource",params:{pool:"$tag/item"}})),count:t("int_bounds"),durability:t("int_bounds"),potion:(0,a.Opt)(o({validator:"resource",params:{pool:"potion"}})),nbt:(0,a.Opt)(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:(0,a.Opt)((0,a.ListNode)(t("enchantment_predicate")))},{context:"item"})),r.register("enchantment_predicate",(0,a.ObjectNode)({enchantment:(0,a.Opt)(o({validator:"resource",params:{pool:"enchantment"}})),levels:t("int_bounds")},{context:"enchantment"})),r.register("block_predicate",(0,a.ObjectNode)({blocks:(0,a.Opt)((0,a.ListNode)(o({validator:"resource",params:{pool:"block"}}))),tag:(0,a.Opt)(o({validator:"resource",params:{pool:"$tag/block"}})),nbt:(0,a.Opt)(o({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:(0,a.Opt)((0,a.MapNode)(o(),d,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),r.register("fluid_predicate",(0,a.ObjectNode)({fluid:(0,a.Opt)(o({validator:"resource",params:{pool:"fluid"}})),tag:(0,a.Opt)(o({validator:"resource",params:{pool:"$tag/fluid"}})),state:(0,a.Opt)((0,a.MapNode)(o(),d))},{context:"fluid"})),r.register("location_predicate",(0,a.ObjectNode)({position:(0,a.Opt)((0,a.ObjectNode)({x:t("float_bounds"),y:t("float_bounds"),z:t("float_bounds")})),biome:(0,a.Opt)(o({validator:"resource",params:{pool:"$worldgen/biome"}})),structure:(0,a.Opt)(o({validator:"resource",params:{pool:"$worldgen/structure"}})),dimension:(0,a.Opt)(o({validator:"resource",params:{pool:"$dimension"}})),light:(0,a.Opt)((0,a.ObjectNode)({light:t("int_bounds")})),smokey:(0,a.Opt)((0,a.BooleanNode)()),block:(0,a.Opt)(t("block_predicate")),fluid:(0,a.Opt)(t("fluid_predicate"))},{context:"location"})),r.register("statistic_predicate",(0,a.ObjectNode)({type:o({validator:"resource",params:{pool:"stat_type"}}),stat:o(),value:t("int_bounds"),[a.Switch]:[{push:"type"}],[a.Case]:{"minecraft:mined":{stat:o({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:o({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:o({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:o({validator:"resource",params:{pool:"custom_stat"}})}}})),r.register("status_effect_predicate",(0,a.ObjectNode)({amplifier:t("int_bounds"),duration:t("int_bounds"),ambient:(0,a.Opt)((0,a.BooleanNode)()),visible:(0,a.Opt)((0,a.BooleanNode)())},{context:"status_effect"})),r.register("distance_predicate",(0,a.ObjectNode)({x:t("float_bounds"),y:t("float_bounds"),z:t("float_bounds"),absolute:t("float_bounds"),horizontal:t("float_bounds")},{context:"distance"})),r.register("entity_predicate",(0,a.ObjectNode)({type:(0,a.Opt)(o({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),type_specific:(0,a.Opt)((0,a.ObjectNode)({type:o({enum:["any","cat","fishing_hook","frog","lightning","player","slime"]}),[a.Switch]:[{push:"type"}],[a.Case]:{cat:{variant:(0,a.Opt)(o({validator:"resource",params:{pool:"cat_variant"}}))},fishing_hook:{in_open_water:(0,a.Opt)((0,a.BooleanNode)())},frog:{variant:(0,a.Opt)(o({validator:"resource",params:{pool:"frog_variant"}}))},lightning:{blocks_set_on_fire:(0,a.Opt)(t("int_bounds")),entity_struck:(0,a.Opt)(t("entity_predicate"))},player:{gamemode:(0,a.Opt)(o({enum:"gamemode"})),level:t("int_bounds"),advancements:(0,a.Opt)((0,a.MapNode)(o({validator:"resource",params:{pool:"$advancement"}}),(0,a.ChoiceNode)([{type:"boolean",node:(0,a.BooleanNode)(),change:()=>!0},{type:"object",node:(0,a.MapNode)(o(),(0,a.BooleanNode)())}]))),recipes:(0,a.Opt)((0,a.MapNode)(o({validator:"resource",params:{pool:"$recipe"}}),(0,a.BooleanNode)())),stats:(0,a.Opt)((0,a.ListNode)(t("statistic_predicate"))),looking_at:(0,a.Opt)(t("entity_predicate"))},slime:{size:t("int_bounds")}}})),nbt:(0,a.Opt)(o({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:(0,a.Opt)(o({validator:"team"})),location:(0,a.Opt)(t("location_predicate")),stepping_on:(0,a.Opt)(t("location_predicate")),distance:(0,a.Opt)(t("distance_predicate")),flags:(0,a.Opt)((0,a.ObjectNode)({is_on_fire:(0,a.Opt)((0,a.BooleanNode)()),is_sneaking:(0,a.Opt)((0,a.BooleanNode)()),is_sprinting:(0,a.Opt)((0,a.BooleanNode)()),is_swimming:(0,a.Opt)((0,a.BooleanNode)()),is_baby:(0,a.Opt)((0,a.BooleanNode)())})),equipment:(0,a.Opt)((0,a.MapNode)(o({enum:"slot"}),t("item_predicate"))),vehicle:(0,a.Opt)(t("entity_predicate")),passenger:(0,a.Opt)(t("entity_predicate")),targeted_entity:(0,a.Opt)(t("entity_predicate")),effects:(0,a.Opt)((0,a.MapNode)(o({validator:"resource",params:{pool:"mob_effect"}}),t("status_effect_predicate")))},{context:"entity"})),r.register("damage_source_predicate",(0,a.ObjectNode)({is_explosion:(0,a.Opt)((0,a.BooleanNode)()),is_fire:(0,a.Opt)((0,a.BooleanNode)()),is_magic:(0,a.Opt)((0,a.BooleanNode)()),is_projectile:(0,a.Opt)((0,a.BooleanNode)()),is_lightning:(0,a.Opt)((0,a.BooleanNode)()),bypasses_armor:(0,a.Opt)((0,a.BooleanNode)()),bypasses_invulnerability:(0,a.Opt)((0,a.BooleanNode)()),bypasses_magic:(0,a.Opt)((0,a.BooleanNode)()),source_entity:(0,a.Opt)(t("entity_predicate")),direct_entity:(0,a.Opt)(t("entity_predicate"))},{context:"damage_source"})),r.register("damage_predicate",(0,a.ObjectNode)({dealt:t("float_bounds"),taken:t("float_bounds"),blocked:(0,a.Opt)((0,a.BooleanNode)()),source_entity:(0,a.Opt)(t("entity_predicate")),type:(0,a.Opt)(t("damage_source_predicate"))},{context:"damage"}))}ke.initPredicatesSchemas=Ot;var xe={};Object.defineProperty(xe,"__esModule",{value:!0});xe.initRecipeSchemas=void 0;const u=k;function kt(r,e){const t=u.Reference.bind(void 0,r),o=u.StringNode.bind(void 0,e);r.register("recipe",(0,u.Mod)((0,u.ObjectNode)({type:o({validator:"resource",params:{pool:"recipe_serializer"}}),[u.Switch]:[{push:"type"}],[u.Case]:{"minecraft:crafting_shaped":{group:(0,u.Opt)(o({enum:"recipe_group",additional:!0})),pattern:(0,u.ListNode)(o()),key:(0,u.MapNode)(o(),t("recipe_ingredient")),result:t("recipe_result")},"minecraft:crafting_shapeless":{group:(0,u.Opt)(o()),ingredients:(0,u.ListNode)(t("recipe_ingredient")),result:t("recipe_result")},"minecraft:smelting":{group:(0,u.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:(0,u.Opt)((0,u.NumberNode)()),cookingtime:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:(0,u.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:(0,u.Opt)((0,u.NumberNode)()),cookingtime:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:(0,u.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:(0,u.Opt)((0,u.NumberNode)()),cookingtime:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:(0,u.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:(0,u.Opt)((0,u.NumberNode)()),cookingtime:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:(0,u.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),count:(0,u.NumberNode)({integer:!0})},"minecraft:smithing":{group:(0,u.Opt)(o()),base:t("recipe_ingredient_object"),addition:t("recipe_ingredient_object"),result:t("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),r.register("recipe_ingredient",(0,u.Mod)((0,u.ChoiceNode)([{type:"object",node:t("recipe_ingredient_object"),change:d=>d[0]},{type:"list",node:(0,u.ListNode)(t("recipe_ingredient_object")),change:d=>[d]}]),{default:()=>({item:"minecraft:stone"})})),r.register("recipe_ingredient_object",(0,u.Mod)((0,u.ObjectNode)({item:(0,u.Opt)(o({validator:"resource",params:{pool:"item"}})),tag:(0,u.Opt)(o({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),r.register("recipe_result",(0,u.Mod)((0,u.ObjectNode)({item:o({validator:"resource",params:{pool:"item"}}),count:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))}xe.initRecipeSchemas=kt;var we={};Object.defineProperty(we,"__esModule",{value:!0});we.initTagsSchemas=void 0;const H=k;function xt(r,e){const t=H.StringNode.bind(void 0,e),o=d=>(0,H.Mod)((0,H.ObjectNode)({replace:(0,H.Opt)((0,H.BooleanNode)()),values:(0,H.ListNode)((0,H.ChoiceNode)([{type:"string",node:t({validator:"resource",params:{pool:d,allowTag:!0}}),change:n=>n.id},{type:"object",node:(0,H.ObjectNode)({id:t({validator:"resource",params:{pool:d,allowTag:!0,allowUnknown:!0}}),required:(0,H.BooleanNode)()}),change:n=>({id:n})}]))},{context:"tag"}),{default:()=>({values:[]})});r.register("block_tag",o("block")),r.register("entity_type_tag",o("entity_type")),r.register("fluid_tag",o("fluid")),r.register("function_tag",o("$function")),r.register("game_event_tag",o("game_event")),r.register("item_tag",o("item")),r.register("advancement_tag",o("$advancement")),r.register("dimension_tag",o("$dimension")),r.register("dimension_type_tag",o("$dimension_type")),r.register("function_tag",o("$function")),r.register("item_modifier_tag",o("$item_modifier")),r.register("loot_table_tag",o("$loot_table")),r.register("predicate_tag",o("$predicate")),r.register("recipe_tag",o("$recipe")),r.register("structure_tag",o("$structure")),r.register("biome_tag",o("$worldgen/biome")),r.register("configured_carver_tag",o("$worldgen/configured_carver")),r.register("configured_feature_tag",o("$worldgen/configured_feature")),r.register("structure_tag",o("$worldgen/structure")),r.register("configured_surface_builder_tag",o("$worldgen/configured_surface_builder")),r.register("density_function_tag",o("$worldgen/density_function")),r.register("flat_level_generator_preset_tag",o("$worldgen/flat_level_generator_preset")),r.register("noise_tag",o("$worldgen/noise")),r.register("noise_settings_tag",o("$worldgen/noise_settings")),r.register("placed_feature_tag",o("$worldgen/placed_feature")),r.register("processor_list_tag",o("$worldgen/processor_list")),r.register("structure_set_tag",o("$worldgen/structure_set")),r.register("template_pool_tag",o("$worldgen/template_pool")),r.register("world_preset_tag",o("$worldgen/world_preset"))}we.initTagsSchemas=xt;var Se={};Object.defineProperty(Se,"__esModule",{value:!0});Se.initTextComponentSchemas=void 0;const m=k;function wt(r,e){const t=m.Reference.bind(void 0,r),o=m.StringNode.bind(void 0,e),d=l=>{var v;return l instanceof Array?d(l[0]):(v=l==null?void 0:l.text)!==null&&v!==void 0?v:typeof l=="object"?"":l==null?void 0:l.toString()};r.register("text_component",(0,m.Mod)((0,m.ChoiceNode)([{type:"object",node:t("text_component_object"),change:l=>l instanceof Array?typeof l[0]=="object"?l[0]:{text:d(l[0])}:typeof l=="object"?l:{text:d(l)}},{type:"list",node:t("text_component_list"),change:l=>[l]},{type:"string",priority:1,node:o(),change:d},{type:"number",node:(0,m.NumberNode)(),change:l=>{const v=parseFloat(d(l));return isFinite(v)?v:l?1:0}},{type:"boolean",node:(0,m.BooleanNode)(),change:l=>{const v=d(l);return v==="true"||v==="false"?v==="true":!!v}}],{context:"text_component"}),{default:()=>({text:""})}));const n={color:(0,m.Opt)(o()),font:(0,m.Opt)(o()),bold:(0,m.Opt)((0,m.BooleanNode)()),italic:(0,m.Opt)((0,m.BooleanNode)()),underlined:(0,m.Opt)((0,m.BooleanNode)()),strikethrough:(0,m.Opt)((0,m.BooleanNode)()),obfuscated:(0,m.Opt)((0,m.BooleanNode)()),insertion:(0,m.Opt)(o())};r.register("text_style",(0,m.ObjectNode)(g({},n),{context:"text_component_object"}));const c=W(g({},n),{clickEvent:(0,m.Opt)((0,m.ObjectNode)({action:o({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[m.Switch]:[{push:"action"}],[m.Case]:{change_page:{value:o()},copy_to_clipboard:{value:o()},open_file:{value:o()},open_url:{value:o()},run_command:{value:o({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:o({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:(0,m.Opt)((0,m.ObjectNode)({action:o({enum:["show_text","show_item","show_entity"]}),[m.Switch]:[{push:"action"}],[m.Case]:{show_text:{value:(0,m.Opt)(t("text_component")),contents:(0,m.Opt)(t("text_component"))},show_item:{value:(0,m.Opt)(o({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:(0,m.Opt)((0,m.ObjectNode)({id:o({validator:"resource",params:{pool:"item"}}),count:(0,m.Opt)((0,m.NumberNode)({integer:!0})),tag:(0,m.Opt)(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:(0,m.Opt)((0,m.ObjectNode)({name:(0,m.Opt)(o()),type:(0,m.Opt)(o()),id:(0,m.Opt)(o())})),contents:(0,m.Opt)((0,m.Mod)((0,m.ObjectNode)({name:(0,m.Opt)(t("text_component")),type:o({validator:"resource",params:{pool:"entity_type"}}),id:o({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:(0,m.Opt)(t("text_component_list"))});r.register("text_component_object",(0,m.Mod)((0,m.ChoiceNode)([{type:"text",match:l=>typeof l=="object",change:l=>({text:""}),priority:-1,node:(0,m.ObjectNode)(g({text:o()},c))},{type:"translation",match:l=>(l==null?void 0:l.translate)!==void 0,change:l=>({translate:""}),node:(0,m.ObjectNode)(g({translate:o(),with:(0,m.Opt)(t("text_component_list"))},c))},{type:"score",match:l=>(l==null?void 0:l.score)!==void 0,change:l=>({score:{}}),node:(0,m.ObjectNode)(g({score:(0,m.ObjectNode)({name:o({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:o({validator:"objective"}),value:(0,m.Opt)(o())})},c))},{type:"selector",match:l=>(l==null?void 0:l.selector)!==void 0,change:l=>({selector:""}),node:(0,m.ObjectNode)(g({selector:o({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:(0,m.Opt)(t("text_component"))},c))},{type:"keybind",match:l=>(l==null?void 0:l.keybind)!==void 0,change:l=>({keybind:""}),node:(0,m.ObjectNode)(g({keybind:o({enum:"keybind",additional:!0})},c))},{type:"nbt",match:l=>(l==null?void 0:l.nbt)!==void 0,change:l=>({nbt:""}),node:(0,m.ObjectNode)(g({nbt:o({validator:"nbt_path"}),block:(0,m.Opt)(o({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:(0,m.Opt)(o({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:(0,m.Opt)(o({validator:"resource",params:{pool:"$storage"}})),interpret:(0,m.Opt)((0,m.BooleanNode)()),separator:(0,m.Opt)(t("text_component"))},c))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),r.register("text_component_list",(0,m.Mod)((0,m.ListNode)(t("text_component")),{default:()=>[{text:""}]}))}Se.initTextComponentSchemas=wt;var je={},qe={};(function(r){Object.defineProperty(r,"__esModule",{value:!0}),r.initBiomeSchemas=r.MobCategorySpawnSettings=void 0;const e=k,t=R;function o(d,n){const c=e.StringNode.bind(void 0,n);r.MobCategorySpawnSettings=(0,e.Mod)((0,e.ListNode)((0,e.ObjectNode)({type:c({validator:"resource",params:{pool:"entity_type"}}),weight:(0,e.NumberNode)({integer:!0}),minCount:(0,e.NumberNode)({integer:!0}),maxCount:(0,e.NumberNode)({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]}),d.register("biome",(0,e.Mod)((0,e.ObjectNode)({temperature:(0,e.NumberNode)(),downfall:(0,e.NumberNode)(),precipitation:c({enum:["none","rain","snow"]}),temperature_modifier:(0,e.Opt)(c({enum:["none","frozen"]})),creature_spawn_probability:(0,e.Opt)((0,e.NumberNode)({min:0,max:1})),effects:(0,e.ObjectNode)({sky_color:(0,e.NumberNode)({color:!0}),fog_color:(0,e.NumberNode)({color:!0}),water_color:(0,e.NumberNode)({color:!0}),water_fog_color:(0,e.NumberNode)({color:!0}),grass_color:(0,e.Opt)((0,e.NumberNode)({color:!0})),foliage_color:(0,e.Opt)((0,e.NumberNode)({color:!0})),grass_color_modifier:(0,e.Opt)(c({enum:["none","dark_forest","swamp"]})),ambient_sound:(0,e.Opt)(c()),mood_sound:(0,e.Opt)((0,e.ObjectNode)({sound:c(),tick_delay:(0,e.NumberNode)({integer:!0}),block_search_extent:(0,e.NumberNode)({integer:!0}),offset:(0,e.NumberNode)()})),additions_sound:(0,e.Opt)((0,e.ObjectNode)({sound:c(),tick_chance:(0,e.NumberNode)({min:0,max:1})})),music:(0,e.Opt)((0,e.ObjectNode)({sound:c(),min_delay:(0,e.NumberNode)({integer:!0,min:0}),max_delay:(0,e.NumberNode)({integer:!0,min:0}),replace_current_music:(0,e.BooleanNode)()})),particle:(0,e.Opt)((0,e.ObjectNode)({options:(0,e.ObjectNode)({type:c()}),probability:(0,e.NumberNode)({min:0,max:1})}))}),spawners:(0,e.MapNode)(c({enum:"mob_category"}),r.MobCategorySpawnSettings),spawn_costs:(0,e.MapNode)(c({validator:"resource",params:{pool:"entity_type"}}),(0,e.Mod)((0,e.ObjectNode)({energy_budget:(0,e.NumberNode)(),charge:(0,e.NumberNode)()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:(0,e.MapNode)(c({enum:["air","liquid"]}),(0,e.Mod)((0,t.Tag)({resource:"$worldgen/configured_carver",inlineSchema:"configured_carver"}),{default:()=>["minecraft:cave"]})),features:(0,e.ListNode)((0,e.Mod)((0,t.Tag)({resource:"$worldgen/placed_feature",inlineSchema:"placed_feature"}),{category:()=>"predicate"}),{maxLength:11})},{context:"biome"}),{default:()=>({temperature:.8,downfall:.4,precipitation:"rain",category:"plains",effects:{sky_color:7907327,fog_color:12638463,water_color:4159204,water_fog_color:329011}})}))}r.initBiomeSchemas=o})(qe);var Me={};Object.defineProperty(Me,"__esModule",{value:!0});Me.initCarverSchemas=void 0;const $=k,K=R;function St(r,e){const t=$.Reference.bind(void 0,r),o=$.StringNode.bind(void 0,e),d={vertical_rotation:(0,K.FloatProvider)(),shape:(0,$.ObjectNode)({distance_factor:(0,K.FloatProvider)(),thickness:(0,K.FloatProvider)(),width_smoothness:(0,$.NumberNode)({integer:!0,min:0}),horizontal_radius_factor:(0,K.FloatProvider)(),vertical_radius_default_factor:(0,$.NumberNode)(),vertical_radius_center_factor:(0,$.NumberNode)()})},n={horizontal_radius_multiplier:(0,K.FloatProvider)(),vertical_radius_multiplier:(0,K.FloatProvider)(),floor_level:(0,K.FloatProvider)({min:-1,max:1})};r.register("configured_carver",(0,$.Mod)((0,$.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/carver"}}),config:(0,$.ObjectNode)({probability:(0,$.NumberNode)({min:0,max:1}),y:t("height_provider"),yScale:(0,K.FloatProvider)(),lava_level:t("vertical_anchor"),replaceable:(0,K.Tag)({resource:"block"}),debug_settings:(0,$.Opt)((0,$.ObjectNode)({debug_mode:(0,$.Opt)((0,$.BooleanNode)()),air_state:(0,$.Opt)(t("block_state")),water_state:(0,$.Opt)(t("block_state")),lava_state:(0,$.Opt)(t("block_state")),barrier_state:(0,$.Opt)(t("block_state"))})),[$.Switch]:["pop",{push:"type"}],[$.Case]:{"minecraft:canyon":d,"minecraft:cave":n,"minecraft:nether_cave":n}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))}Me.initCarverSchemas=St;var Ce={};Object.defineProperty(Ce,"__esModule",{value:!0});Ce.initDecoratorSchemas=void 0;const B=k,de=R;function jt(r,e){const t=B.Reference.bind(void 0,r),o=B.StringNode.bind(void 0,e);r.register("decorator",(0,B.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/placement_modifier_type"}}),[B.Switch]:[{push:"type"}],[B.Case]:{"minecraft:block_predicate_filter":{predicate:t("block_predicate_worldgen")},"minecraft:carving_mask":{step:o({enum:"generation_step"})},"minecraft:rarity_filter":{chance:(0,B.NumberNode)({integer:!0,min:0})},"minecraft:count":{count:(0,de.IntProvider)({min:0,max:256})},"minecraft:count_on_every_layer":{count:(0,de.IntProvider)({min:0,max:256})},"minecraft:noise_threshold_count":{noise_level:(0,B.NumberNode)(),below_noise:(0,B.NumberNode)({integer:!0}),above_noise:(0,B.NumberNode)({integer:!0})},"minecraft:noise_based_count":{noise_to_count_ratio:(0,B.NumberNode)({integer:!0}),noise_factor:(0,B.NumberNode)(),noise_offset:(0,B.Opt)((0,B.NumberNode)())},"minecraft:environment_scan":{direction_of_search:o({enum:["up","down"]}),max_steps:(0,B.NumberNode)({integer:!0,min:1,max:32}),target_condition:t("block_predicate_worldgen"),allowed_search_condition:(0,B.Opt)(t("block_predicate_worldgen"))},"minecraft:heightmap":{heightmap:o({enum:"heightmap_type"})},"minecraft:height_range":{height:t("height_provider")},"minecraft:random_offset":{xz_spread:(0,de.IntProvider)({min:-16,max:16}),y_spread:(0,de.IntProvider)({min:-16,max:16})},"minecraft:surface_relative_threshold_filter":{heightmap:o({enum:"heightmap_type"}),min_inclusive:(0,B.Opt)((0,B.NumberNode)({integer:!0})),max_inclusive:(0,B.Opt)((0,B.NumberNode)({integer:!0}))},"minecraft:surface_water_depth_filter":{max_water_depth:(0,B.NumberNode)({integer:!0})}}},{context:"decorator",category:"predicate"}))}Ce.initDecoratorSchemas=jt;var Ie={};(function(r){Object.defineProperty(r,"__esModule",{value:!0}),r.initDensityFunctionSchemas=r.DensityFunction=void 0;const e=k;function t(o,d){const n=e.StringNode.bind(void 0,d),c=e.Reference.bind(void 0,o);r.DensityFunction=(0,e.Mod)((0,e.ChoiceNode)([{type:"number",node:(0,e.NumberNode)(),change:()=>0},{type:"string",priority:1,node:n({validator:"resource",params:{pool:"$worldgen/density_function"}}),change:()=>{}},{type:"object",node:c("density_function"),change:()=>({})}],{choiceContext:"density_function"}),{default:()=>0});const l=(0,e.ChoiceNode)([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/noise"}}),change:()=>{}},{type:"object",node:c("noise_parameters")}],{choiceContext:"noise_parameters"}),v=(0,e.NumberNode)({min:-1e6,max:1e6}),_=(0,e.NumberNode)({integer:!0,min:-2032*2,max:2031*2});o.register("density_function",(0,e.Mod)((0,e.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/density_function_type"}}),[e.Switch]:[{push:"type"}],[e.Case]:{"minecraft:abs":{argument:r.DensityFunction},"minecraft:add":{argument1:r.DensityFunction,argument2:r.DensityFunction},"minecraft:blend_density":{argument:r.DensityFunction},"minecraft:cache_2d":{argument:r.DensityFunction},"minecraft:cache_all_in_cell":{argument:r.DensityFunction},"minecraft:cache_once":{argument:r.DensityFunction},"minecraft:clamp":{input:r.DensityFunction,min:v,max:v},"minecraft:constant":{argument:(0,e.NumberNode)()},"minecraft:cube":{argument:r.DensityFunction},"minecraft:flat_cache":{argument:r.DensityFunction},"minecraft:half_negative":{argument:r.DensityFunction},"minecraft:interpolated":{argument:r.DensityFunction},"minecraft:max":{argument1:r.DensityFunction,argument2:r.DensityFunction},"minecraft:min":{argument1:r.DensityFunction,argument2:r.DensityFunction},"minecraft:mul":{argument1:r.DensityFunction,argument2:r.DensityFunction},"minecraft:noise":{noise:l,xz_scale:(0,e.NumberNode)(),y_scale:(0,e.NumberNode)()},"minecraft:old_blended_noise":{xz_scale:(0,e.NumberNode)(),y_scale:(0,e.NumberNode)(),xz_factor:(0,e.NumberNode)(),y_factor:(0,e.NumberNode)(),smear_scale_multiplier:(0,e.NumberNode)({min:1,max:8})},"minecraft:quarter_negative":{argument:r.DensityFunction},"minecraft:range_choice":{input:r.DensityFunction,min_inclusive:v,max_exclusive:v,when_in_range:r.DensityFunction,when_out_of_range:r.DensityFunction},"minecraft:shift":{argument:r.DensityFunction},"minecraft:shift_a":{argument:r.DensityFunction},"minecraft:shift_b":{argument:r.DensityFunction},"minecraft:shifted_noise":{noise:l,xz_scale:(0,e.NumberNode)(),y_scale:(0,e.NumberNode)(),shift_x:r.DensityFunction,shift_y:r.DensityFunction,shift_z:r.DensityFunction},"minecraft:slide":{argument:r.DensityFunction},"minecraft:spline":{spline:c("cubic_spline")},"minecraft:square":{argument:r.DensityFunction},"minecraft:squeeze":{argument:r.DensityFunction},"minecraft:weird_scaled_sampler":{rarity_value_mapper:n({enum:["type_1","type_2"]}),noise:l,input:r.DensityFunction},"minecraft:y_clamped_gradient":{from_y:_,to_y:_,from_value:v,to_value:v}}},{context:"density_function",disableSwitchContext:!0}),{default:()=>({type:"minecraft:noise",noise:"minecraft:cave_entrance",xz_scale:.75,y_scale:.5})})),o.register("cubic_spline",(0,e.Mod)((0,e.ChoiceNode)([{type:"number",node:(0,e.NumberNode)()},{type:"object",node:(0,e.ObjectNode)({coordinate:r.DensityFunction,points:(0,e.ListNode)((0,e.ObjectNode)({location:(0,e.NumberNode)(),derivative:(0,e.NumberNode)(),value:c("cubic_spline")}))},{category:"function"})}],{context:"terrain_spline",choiceContext:"terrain_spline"}),{default:()=>0}))}r.initDensityFunctionSchemas=t})(Ie);var Pe={},Q={};Object.defineProperty(Q,"__esModule",{value:!0});Q.initProcessorListSchemas=Q.Processors=void 0;const h=k,Mt=R;function Ct(r,e){const t=h.Reference.bind(void 0,r),o=h.StringNode.bind(void 0,e);Q.Processors=(0,h.ChoiceNode)([{type:"string",node:o({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:n=>{}},{type:"object",node:t("processor_list"),change:n=>({processors:[{processor_type:"minecraft:nop"}]})}]),r.register("processor_list",(0,h.Mod)((0,h.ObjectNode)({processors:(0,h.ListNode)(t("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"}}]}]})})),r.register("processor",(0,h.Mod)((0,h.ObjectNode)({processor_type:o({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[h.Switch]:[{push:"processor_type"}],[h.Case]:{"minecraft:block_age":{mossiness:(0,h.NumberNode)()},"minecraft:block_ignore":{blocks:(0,h.ListNode)(t("block_state"))},"minecraft:block_rot":{integrity:(0,h.NumberNode)({min:0,max:1}),rottable_blocks:(0,h.Opt)((0,Mt.Tag)({resource:"block"}))},"minecraft:gravity":{heightmap:o({enum:"heightmap_type"}),offset:(0,h.NumberNode)({integer:!0})},"minecraft:protected_blocks":{value:o({validator:"resource",params:{pool:"block",requireTag:!0}})},"minecraft:rule":{rules:(0,h.ListNode)(t("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"}}]})})),r.register("processor_rule",(0,h.Mod)((0,h.ObjectNode)({position_predicate:(0,h.Opt)(t("pos_rule_test")),location_predicate:t("rule_test"),input_predicate:t("rule_test"),output_state:t("block_state"),output_nbt:(0,h.Opt)(o({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 d={min_dist:(0,h.Opt)((0,h.NumberNode)({min:0,max:255,integer:!0})),max_dist:(0,h.Opt)((0,h.NumberNode)({min:0,max:255,integer:!0})),min_chance:(0,h.Opt)((0,h.NumberNode)({min:0,max:1})),max_chance:(0,h.Opt)((0,h.NumberNode)({min:0,max:1}))};r.register("pos_rule_test",(0,h.ObjectNode)({predicate_type:o({validator:"resource",params:{pool:"pos_rule_test"}}),[h.Switch]:[{push:"predicate_type"}],[h.Case]:{"minecraft:axis_aligned_linear_pos":g({axis:o({enum:["x","y","z"]})},d),"minecraft:linear_pos":d}},{context:"pos_rule_test",disableSwitchContext:!0})),r.register("rule_test",(0,h.ObjectNode)({predicate_type:o({validator:"resource",params:{pool:"rule_test"}}),[h.Switch]:[{push:"predicate_type"}],[h.Case]:{"minecraft:block_match":{block:o({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:t("block_state")},"minecraft:random_block_match":{block:o({validator:"resource",params:{pool:"block"}}),probability:(0,h.NumberNode)({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:t("block_state"),probability:(0,h.NumberNode)({min:0,max:1})},"minecraft:tag_match":{tag:o({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))}Q.initProcessorListSchemas=Ct;Object.defineProperty(Pe,"__esModule",{value:!0});Pe.initFeatureSchemas=void 0;const i=k,f=R,Ue=Q;function Pt(r,e){const t=i.Reference.bind(void 0,r),o=i.StringNode.bind(void 0,e),d=(0,i.ChoiceNode)([{type:"string",node:o({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:t("configured_feature")}],{choiceContext:"feature"}),n=(0,i.ChoiceNode)([{type:"string",node:o({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},{type:"object",node:t("placed_feature")}],{choiceContext:"placed_feature"}),c={tries:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:1})),xz_spread:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0})),y_spread:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0})),feature:n},l={cap_provider:t("block_state_provider"),stem_provider:t("block_state_provider"),foliage_radius:(0,i.Opt)((0,i.NumberNode)({integer:!0}))},v=(0,i.ObjectNode)({target:t("rule_test"),state:t("block_state")}),_={size:(0,i.NumberNode)({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:(0,i.NumberNode)({min:0,max:1}),targets:(0,i.ListNode)(v)},b={surface:o({enum:"cave_surface"}),depth:(0,f.IntProvider)({min:1,max:128}),vertical_range:(0,i.NumberNode)({integer:!0,min:1,max:256}),extra_bottom_block_chance:(0,i.NumberNode)({min:0,max:1}),extra_edge_column_chance:(0,i.NumberNode)({min:0,max:1}),vegetation_chance:(0,i.NumberNode)({min:0,max:1}),xz_radius:(0,f.IntProvider)(),replaceable:o({validator:"resource",params:{pool:"block",requireTag:!0}}),ground_state:t("block_state_provider"),vegetation_feature:n};r.register("configured_feature",(0,i.Mod)((0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/feature"}}),config:(0,i.ObjectNode)({[i.Switch]:["pop",{push:"type"}],[i.Case]:{"minecraft:bamboo":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:basalt_columns":{reach:(0,f.IntProvider)({min:0,max:3}),height:(0,f.IntProvider)({min:1,max:10})},"minecraft:block_column":{direction:o({enum:["up","down","north","east","south","west"]}),allowed_placement:t("block_predicate_worldgen"),prioritize_tip:(0,i.BooleanNode)(),layers:(0,i.ListNode)((0,i.ObjectNode)({height:(0,f.IntProvider)({min:0}),provider:t("block_state_provider")}))},"minecraft:block_pile":{state_provider:t("block_state_provider")},"minecraft:delta_feature":{contents:t("block_state"),rim:t("block_state"),size:(0,f.IntProvider)({min:0,max:16}),rim_size:(0,f.IntProvider)({min:0,max:16})},"minecraft:disk":{state_provider:t("rule_based_block_state_provider"),target:t("block_predicate_worldgen"),radius:(0,f.IntProvider)({min:0,max:8}),half_height:(0,i.NumberNode)({integer:!0,min:0,max:4})},"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:(0,i.NumberNode)({integer:!0,min:1,max:512}),height:(0,f.IntProvider)({min:0,max:128}),radius:(0,f.IntProvider)({min:0,max:128}),max_stalagmite_stalactite_height_diff:(0,i.NumberNode)({integer:!0,min:0,max:64}),height_deviation:(0,i.NumberNode)({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:(0,f.IntProvider)({min:0,max:128}),density:(0,f.FloatProvider)({min:0,max:2}),wetness:(0,f.FloatProvider)({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:(0,i.NumberNode)({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:(0,i.NumberNode)({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:(0,i.NumberNode)({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:(0,i.BooleanNode)(),exit:(0,i.Opt)(t("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:(0,i.Opt)((0,i.BooleanNode)()),crystal_beam_target:(0,i.Opt)(t("block_pos")),spikes:(0,i.ListNode)((0,i.ObjectNode)({centerX:(0,i.Opt)((0,i.NumberNode)({integer:!0})),centerZ:(0,i.Opt)((0,i.NumberNode)({integer:!0})),radius:(0,i.Opt)((0,i.NumberNode)({integer:!0})),height:(0,i.Opt)((0,i.NumberNode)({integer:!0})),guarded:(0,i.Opt)((0,i.BooleanNode)())}))},"minecraft:fill_layer":{state:t("block_state"),height:(0,i.NumberNode)({integer:!0,min:0,max:255})},"minecraft:flower":c,"minecraft:forest_rock":{state:t("block_state")},"minecraft:fossil":{max_empty_corners_allowed:(0,i.NumberNode)({integer:!0,min:0,max:7}),fossil_structures:(0,i.ListNode)(o({validator:"resource",params:{pool:"$structure"}})),overlay_structures:(0,i.ListNode)(o({validator:"resource",params:{pool:"$structure"}})),fossil_processors:Ue.Processors,overlay_processors:Ue.Processors},"minecraft:geode":{blocks:(0,i.ObjectNode)({filling_provider:t("block_state_provider"),inner_layer_provider:t("block_state_provider"),alternate_inner_layer_provider:t("block_state_provider"),middle_layer_provider:t("block_state_provider"),outer_layer_provider:t("block_state_provider"),inner_placements:(0,i.ListNode)(t("block_state")),cannot_replace:o({validator:"resource",params:{pool:"block",requireTag:!0}}),invalid_blocks:o({validator:"resource",params:{pool:"block",requireTag:!0}})}),layers:(0,i.ObjectNode)({filling:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50})),inner_layer:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50})),middle_layer:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50})),outer_layer:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50}))}),crack:(0,i.ObjectNode)({generate_crack_chance:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),base_crack_size:(0,i.Opt)((0,i.NumberNode)({min:0,max:5})),crack_point_offset:(0,i.Opt)((0,i.NumberNode)({min:0,max:10}))}),noise_multiplier:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),use_potential_placements_chance:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),use_alternate_layer0_chance:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),placements_require_layer0_alternate:(0,i.Opt)((0,i.BooleanNode)()),outer_wall_distance:(0,i.Opt)((0,f.IntProvider)({min:1,max:20})),distribution_points:(0,i.Opt)((0,f.IntProvider)({min:1,max:20})),point_offset:(0,i.Opt)((0,f.IntProvider)({min:0,max:10})),min_gen_offset:(0,i.Opt)((0,i.NumberNode)({integer:!0})),max_gen_offset:(0,i.Opt)((0,i.NumberNode)({integer:!0})),invalid_blocks_threshold:(0,i.NumberNode)({integer:!0})},"minecraft:multiface_growth":{block:(0,i.Opt)(o({validator:"resource",params:{pool:["minecraft:glow_lichen","minecraft:sculk_vein"]}})),search_range:(0,i.Opt)((0,i.NumberNode)({min:1,max:64,integer:!0})),chance_of_spreading:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),can_place_on_floor:(0,i.Opt)((0,i.BooleanNode)()),can_place_on_ceiling:(0,i.Opt)((0,i.BooleanNode)()),can_place_on_wall:(0,i.Opt)((0,i.BooleanNode)()),can_be_placed_on:(0,f.Tag)({resource:"block"})},"minecraft:huge_brown_mushroom":l,"minecraft:huge_fungus":{hat_state:t("block_state"),decor_state:t("block_state"),stem_state:t("block_state"),valid_base_block:t("block_state"),planted:(0,i.Opt)((0,i.BooleanNode)())},"minecraft:huge_red_mushroom":l,"minecraft:iceberg":{state:t("block_state")},"minecraft:lake":{fluid:t("block_state_provider"),barrier:t("block_state_provider")},"minecraft:large_dripstone":{floor_to_ceiling_search_range:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:1,max:512})),column_radius:(0,f.IntProvider)({min:0,max:60}),height_scale:(0,f.FloatProvider)({min:0,max:20}),max_column_radius_to_cave_height_ratio:(0,i.NumberNode)({min:0,max:1}),stalactite_bluntness:(0,f.FloatProvider)({min:.1,max:10}),stalagmite_bluntness:(0,f.FloatProvider)({min:.1,max:10}),wind_speed:(0,f.FloatProvider)({min:0,max:2}),min_radius_for_wind:(0,i.NumberNode)({integer:!0,min:0,max:100}),min_bluntness_for_wind:(0,i.NumberNode)({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:t("block_state_provider"),spread_width:(0,i.NumberNode)({integer:!0,min:1}),spread_height:(0,i.NumberNode)({integer:!0,min:1})},"minecraft:netherrack_replace_blobs":{state:t("block_state"),target:t("block_state"),radius:(0,f.IntProvider)({min:0,max:12})},"minecraft:no_bonemeal_flower":c,"minecraft:ore":_,"minecraft:pointed_dripstone":{chance_of_taller_dripstone:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),chance_of_directional_spread:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),chance_of_spread_radius2:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),chance_of_spread_radius3:(0,i.Opt)((0,i.NumberNode)({min:0,max:1}))},"minecraft:random_patch":c,"minecraft:random_boolean_selector":{feature_false:n,feature_true:n},"minecraft:random_selector":{features:(0,i.ListNode)((0,i.ObjectNode)({chance:(0,i.NumberNode)({min:0,max:1}),feature:n})),default:n},"minecraft:replace_single_block":{targets:(0,i.ListNode)(v)},"minecraft:root_system":{required_vertical_space_for_tree:(0,i.NumberNode)({integer:!0,min:1,max:64}),root_radius:(0,i.NumberNode)({integer:!0,min:1,max:64}),root_placement_attempts:(0,i.NumberNode)({integer:!0,min:1,max:256}),root_column_max_height:(0,i.NumberNode)({integer:!0,min:1,max:4096}),hanging_root_radius:(0,i.NumberNode)({integer:!0,min:1,max:64}),hanging_roots_vertical_span:(0,i.NumberNode)({integer:!0,min:0,max:16}),hanging_root_placement_attempts:(0,i.NumberNode)({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:(0,i.NumberNode)({integer:!0,min:1,max:64}),root_replaceable:o({validator:"resource",params:{pool:"block",requireTag:!0}}),root_state_provider:t("block_state_provider"),hanging_root_state_provider:t("block_state_provider"),allowed_tree_position:t("block_predicate_worldgen"),feature:n},"minecraft:scattered_ore":_,"minecraft:sculk_patch":{charge_count:(0,i.NumberNode)({integer:!0,min:1,max:32}),amount_per_charge:(0,i.NumberNode)({integer:!0,min:1,max:500}),spread_attempts:(0,i.NumberNode)({integer:!0,min:1,max:64}),growth_rounds:(0,i.NumberNode)({integer:!0,min:0,max:8}),spread_rounds:(0,i.NumberNode)({integer:!0,min:0,max:8}),extra_rare_growths:(0,f.IntProvider)(),catalyst_chance:(0,i.NumberNode)({min:0,max:1})},"minecraft:sea_pickle":{count:(0,f.IntProvider)({min:0,max:256})},"minecraft:seagrass":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:simple_block":{to_place:t("block_state_provider")},"minecraft:simple_random_selector":{features:(0,f.Tag)({resource:"$worldgen/placed_feature",inlineSchema:"placed_feature"})},"minecraft:spring_feature":{state:t("fluid_state"),rock_count:(0,i.NumberNode)({integer:!0}),hole_count:(0,i.NumberNode)({integer:!0}),requires_block_below:(0,i.BooleanNode)(),valid_blocks:(0,f.Tag)({resource:"block"})},"minecraft:tree":{ignore_vines:(0,i.Opt)((0,i.BooleanNode)()),force_dirt:(0,i.Opt)((0,i.BooleanNode)()),minimum_size:t("feature_size"),dirt_provider:t("block_state_provider"),trunk_provider:t("block_state_provider"),foliage_provider:t("block_state_provider"),root_placer:(0,i.Opt)((0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/root_placer_type"}}),root_provider:t("block_state_provider"),trunk_offset_y:(0,f.IntProvider)(),above_root_placement:(0,i.Opt)((0,i.ObjectNode)({above_root_provider:t("block_state_provider"),above_root_placement_chance:(0,i.NumberNode)({min:0,max:1})})),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:mangrove_root_placer":{mangrove_root_placement:(0,i.ObjectNode)({max_root_width:(0,i.NumberNode)({integer:!0,min:1,max:12}),max_root_length:(0,i.NumberNode)({integer:!0,min:1,max:64}),random_skew_chance:(0,i.NumberNode)({min:0,max:1}),can_grow_through:(0,f.Tag)({resource:"block"}),muddy_roots_in:(0,f.Tag)({resource:"block"}),muddy_roots_provider:t("block_state_provider")})}}},{context:"root_placer"})),trunk_placer:(0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:(0,i.NumberNode)({integer:!0,min:0,max:32}),height_rand_a:(0,i.NumberNode)({integer:!0,min:0,max:24}),height_rand_b:(0,i.NumberNode)({integer:!0,min:0,max:24}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:bending_trunk_placer":{bend_length:(0,f.IntProvider)({min:1,max:64}),min_height_for_leaves:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:1}))},"minecraft:upwards_branching_trunk_placer":{extra_branch_steps:(0,f.IntProvider)({min:1}),extra_branch_length:(0,f.IntProvider)({min:0}),place_branch_per_log_probability:(0,i.NumberNode)({min:0,max:1}),can_grow_through:(0,f.Tag)({resource:"block"})}}},{context:"trunk_placer"}),foliage_placer:(0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:(0,f.IntProvider)({min:0,max:16}),offset:(0,f.IntProvider)({min:0,max:16}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:blob_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:(0,f.IntProvider)({min:0,max:24})},"minecraft:pine_foliage_placer":{height:(0,f.IntProvider)({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:(0,f.IntProvider)({min:1,max:512}),leaf_placement_attempts:(0,i.NumberNode)({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:(0,f.IntProvider)({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:(0,i.ListNode)((0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:alter_ground":{provider:t("block_state_provider")},"minecraft:attached_to_leaves":{probability:(0,i.NumberNode)({min:0,max:1}),exclusion_radius_xz:(0,i.NumberNode)({integer:!0,min:0,max:16}),exclusion_radius_y:(0,i.NumberNode)({integer:!0,min:0,max:16}),required_empty_blocks:(0,i.NumberNode)({integer:!0,min:1,max:16}),block_provider:t("block_state_provider"),directions:(0,i.ListNode)(o({enum:"direction"}))},"minecraft:beehive":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:cocoa":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:leave_vine":{probability:(0,i.NumberNode)({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:twisting_vines":{spread_width:(0,i.NumberNode)({integer:!0,min:1}),spread_height:(0,i.NumberNode)({integer:!0,min:1}),max_height:(0,i.NumberNode)({integer:!0,min:1})},"minecraft:underwater_magma":{floor_search_range:(0,i.NumberNode)({integer:!0,min:0,max:512}),placement_radius_around_floor:(0,i.NumberNode)({integer:!0,min:0,max:64}),placement_probability_per_valid_position:(0,i.NumberNode)({min:0,max:1})},"minecraft:vegetation_patch":b,"minecraft:waterlogged_vegetation_patch":b}},{context:"feature"})},{context:"feature"}),{default:()=>({type:"minecraft:tree",config:{minimum_size:{type:"minecraft:two_layers_feature_size"},trunk_placer:{type:"minecraft:straight_trunk_placer",base_height:5,height_rand_a:2,height_rand_b:0},foliage_placer:{type:"minecraft:blob_foliage_placer",radius:2,offset:0,height:3}}})})),r.register("placed_feature",(0,i.Mod)((0,i.ObjectNode)({feature:d,placement:(0,i.ListNode)(t("decorator"))},{context:"placed_feature"}),{default:()=>({feature:"minecraft:oak",placement:[{type:"minecraft:count",count:4},{type:"minecraft:in_square"},{type:"minecraft:heightmap",heightmap:"OCEAN_FLOOR"}]})})),r.register("feature_size",(0,i.Mod)((0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:(0,i.Opt)((0,i.NumberNode)({min:0,max:80})),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:two_layers_feature_size":{limit:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:81})),lower_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:80})),upper_limit:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:80})),lower_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16})),middle_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})}));const j={seed:(0,i.NumberNode)({integer:!0}),noise:t("noise_parameters"),scale:(0,i.Mod)((0,i.NumberNode)({min:Number.MIN_VALUE}),{default:()=>1})};r.register("block_state_provider",(0,i.Mod)((0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:dual_noise_provider":W(g({},j),{variety:(0,f.InclusiveRange)({integer:!0,min:1,max:64}),slow_noise:t("noise_parameters"),slow_scale:(0,i.Mod)((0,i.NumberNode)({min:Number.MIN_VALUE}),{default:()=>1}),states:(0,i.ListNode)(t("block_state"))}),"minecraft:noise_threshold_provider":W(g({},j),{threshold:(0,i.NumberNode)({min:-1,max:1}),high_chance:(0,i.NumberNode)({min:0,max:1}),default_state:t("block_state"),low_states:(0,i.ListNode)(t("block_state")),high_states:(0,i.ListNode)(t("block_state"))}),"minecraft:noise_provider":W(g({},j),{states:(0,i.ListNode)(t("block_state"))}),"minecraft:randomized_int_state_provider":{property:o(),values:(0,f.IntProvider)(),source:t("block_state_provider")},"minecraft:rotated_block_provider":{state:t("block_state")},"minecraft:simple_state_provider":{state:t("block_state")},"minecraft:weighted_state_provider":{entries:(0,i.ListNode)((0,i.Mod)((0,i.ObjectNode)({weight:(0,i.NumberNode)({integer:!0,min:1}),data:t("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})})),r.register("rule_based_block_state_provider",(0,i.Mod)((0,i.ObjectNode)({fallback:t("block_state_provider"),rules:(0,i.ListNode)((0,i.ObjectNode)({if_true:t("block_predicate_worldgen"),then:t("block_state_provider")}))},{context:"block_state_provider"}),{default:()=>({fallback:{type:"minecraft:simple_state_provider"}})}));const y={offset:(0,i.Opt)((0,i.ListNode)((0,i.NumberNode)({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3}))};r.register("block_predicate_worldgen",(0,i.Mod)((0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"block_predicate_type"}}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:all_of":{predicates:(0,i.ListNode)(t("block_predicate_worldgen"))},"minecraft:any_of":{predicates:(0,i.ListNode)(t("block_predicate_worldgen"))},"minecraft:has_sturdy_face":W(g({},y),{direction:o({enum:"direction"})}),"minecraft:inside_world_bounds":g({},y),"minecraft:matching_block_tag":W(g({},y),{tag:o({validator:"resource",params:{pool:"$tag/block"}})}),"minecraft:matching_blocks":W(g({},y),{blocks:(0,f.Tag)({resource:"block"})}),"minecraft:matching_fluids":W(g({},y),{fluids:(0,f.Tag)({resource:"fluid"})}),"minecraft:not":{predicate:t("block_predicate_worldgen")},"minecraft:would_survive":W(g({},y),{state:t("block_state")})}},{context:"block_predicate"}),{default:()=>({type:"minecraft:true"})}))}Pe.initFeatureSchemas=Pt;var Le={};Object.defineProperty(Le,"__esModule",{value:!0});Le.initNoiseSettingsSchemas=void 0;const C=k,Lt=R,D=Ie;function $t(r,e){const t=C.Reference.bind(void 0,r),o=C.StringNode.bind(void 0,e);r.register("noise_settings",(0,C.Mod)((0,C.ObjectNode)({sea_level:(0,C.NumberNode)({integer:!0}),disable_mob_generation:(0,C.BooleanNode)(),aquifers_enabled:(0,C.BooleanNode)(),ore_veins_enabled:(0,C.BooleanNode)(),legacy_random_source:(0,C.BooleanNode)(),default_block:t("block_state"),default_fluid:t("block_state"),noise:(0,C.ObjectNode)({min_y:(0,C.NumberNode)({integer:!0,min:-2048,max:2047}),height:(0,C.NumberNode)({integer:!0,min:0,max:4096}),size_horizontal:(0,C.NumberNode)({integer:!0}),size_vertical:(0,C.NumberNode)({integer:!0})}),noise_router:(0,C.ObjectNode)({barrier:D.DensityFunction,fluid_level_floodedness:D.DensityFunction,fluid_level_spread:D.DensityFunction,lava:D.DensityFunction,temperature:D.DensityFunction,vegetation:D.DensityFunction,continents:D.DensityFunction,erosion:D.DensityFunction,depth:D.DensityFunction,ridges:D.DensityFunction,initial_density_without_jaggedness:D.DensityFunction,final_density:D.DensityFunction,vein_toggle:D.DensityFunction,vein_ridged:D.DensityFunction,vein_gap:D.DensityFunction}),spawn_target:(0,C.ListNode)(t("parameter_point")),surface_rule:t("material_rule")},{context:"noise_settings"}),d=>({default:()=>Lt.DefaultNoiseSettings,validate:(n,c,l,v)=>{var _,b,j,y;return c=d.validate(n,c,l,v),((_=c==null?void 0:c.noise)===null||_===void 0?void 0:_.min_y)+((b=c==null?void 0:c.noise)===null||b===void 0?void 0:b.height)>2047&&l.add(n.push("noise").push("height"),"error.min_y_plus_height",2047),((j=c==null?void 0:c.noise)===null||j===void 0?void 0:j.height)%16!==0&&l.add(n.push("noise").push("height"),"error.height_multiple",16),((y=c==null?void 0:c.noise)===null||y===void 0?void 0:y.min_y)%16!==0&&l.add(n.push("noise").push("min_y"),"error.min_y_multiple",16),c}}))),r.register("noise_slider",(0,C.ObjectNode)({target:(0,C.NumberNode)(),size:(0,C.NumberNode)({integer:!0,min:0}),offset:(0,C.NumberNode)({integer:!0})})),r.register("generator_layer",(0,C.Mod)((0,C.ObjectNode)({block:o({validator:"resource",params:{pool:"block"}}),height:(0,C.NumberNode)({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})}))}Le.initNoiseSettingsSchemas=$t;var $e={};Object.defineProperty($e,"__esModule",{value:!0});$e.initStructureSchemas=void 0;const x=k,Bt=R,Ft=qe;function zt(r,e){const t=x.StringNode.bind(void 0,e),o=x.Reference.bind(void 0,r);r.register("structure",(0,x.Mod)((0,x.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/structure_type"}}),biomes:(0,Bt.Tag)({resource:"$worldgen/biome"}),step:t({enum:"decoration_step"}),spawn_overrides:(0,x.MapNode)(t({enum:"mob_category"}),(0,x.ObjectNode)({bounding_box:t({enum:["piece","full"]}),spawns:Ft.MobCategorySpawnSettings})),terrain_adaptation:(0,x.Opt)(t({enum:["none","beard_thin","beard_box","bury"]})),[x.Switch]:[{push:"type"}],[x.Case]:{"minecraft:jigsaw":{start_pool:t({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:(0,x.NumberNode)({integer:!0}),start_height:o("height_provider"),start_jigsaw_name:(0,x.Opt)(t()),project_start_to_heightmap:(0,x.Opt)(t({enum:"heightmap_type"})),max_distance_from_center:(0,x.Mod)((0,x.NumberNode)({integer:!0,min:1,max:128}),{default:()=>80}),use_expansion_hack:(0,x.BooleanNode)()},"minecraft:mineshaft":{mineshaft_type:t({enum:["normal","mesa"]})},"minecraft:nether_fossil":{height:o("height_provider")},"minecraft:ocean_ruin":{biome_temp:t({enum:["cold","warm"]}),large_probability:(0,x.NumberNode)({min:0,max:1}),cluster_probability:(0,x.NumberNode)({min:0,max:1})},"minecraft:ruined_portal":{setups:(0,x.ListNode)((0,x.ObjectNode)({placement:t({enum:["on_land_surface","partly_buried","on_ocean_floor","in_mountain","underground","in_nether"]}),air_pocket_probability:(0,x.NumberNode)({min:0,max:1}),mossiness:(0,x.NumberNode)({min:0,max:1}),overgrown:(0,x.BooleanNode)(),vines:(0,x.BooleanNode)(),can_be_cold:(0,x.BooleanNode)(),replace_with_blackstone:(0,x.BooleanNode)(),weight:(0,x.NumberNode)({min:0})}))},"minecraft:shipwreck":{is_beached:(0,x.Opt)((0,x.BooleanNode)())}}},{context:"structure_feature"}),{default:()=>({type:"minecraft:jigsaw",step:"surface_structures",size:6,max_distance_from_center:80})}))}$e.initStructureSchemas=zt;var Be={};Object.defineProperty(Be,"__esModule",{value:!0});Be.initStructureSetSchemas=void 0;const w=k,Ve=R;function Dt(r,e){const t=w.StringNode.bind(void 0,e),o=w.Reference.bind(void 0,r),d=(0,w.ChoiceNode)([{type:"string",node:t({validator:"resource",params:{pool:"$worldgen/structure_set"}})},{type:"object",node:o("structure_set")}],{choiceContext:"structure_set"});r.register("structure_set",(0,w.ObjectNode)({structures:(0,w.ListNode)((0,w.ObjectNode)({structure:(0,Ve.Tag)({resource:"$worldgen/structure"}),weight:(0,w.NumberNode)({integer:!0,min:1})})),placement:o("structure_placement")},{context:"structure_set"})),r.register("structure_placement",(0,w.Mod)((0,w.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/structure_placement"}}),salt:(0,w.NumberNode)({integer:!0,min:0}),frequency_reduction_method:(0,w.Opt)(t({enum:["default","legacy_type_1","legacy_type_2","legacy_type_3"]})),frequency:(0,w.Opt)((0,w.NumberNode)({min:0,max:1})),exclusion_zone:(0,w.Opt)((0,w.ObjectNode)({other_set:d,chunk_count:(0,w.NumberNode)({integer:!0,min:1,max:16})})),locate_offset:(0,w.Opt)((0,w.ListNode)((0,w.NumberNode)({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3})),[w.Switch]:[{push:"type"}],[w.Case]:{"minecraft:concentric_rings":{distance:(0,w.NumberNode)({integer:!0,min:0,max:1023}),spread:(0,w.NumberNode)({integer:!0,min:0,max:1023}),count:(0,w.NumberNode)({integer:!0,min:1,max:4095}),preferred_biomes:(0,Ve.Tag)({resource:"$worldgen/biome"})},"minecraft:random_spread":{spread_type:(0,w.Opt)(t({enum:["linear","triangular"]})),spacing:(0,w.NumberNode)({integer:!0,min:0,max:4096}),separation:(0,w.Mod)((0,w.NumberNode)({integer:!0,min:0,max:4096}),n=>({validate:(c,l,v,_)=>(c.pop().push("spacing").get()<=l&&v.add(c,"error.separation_smaller_spacing"),n.validate(c,l,v,_))}))}}},{context:"structure_placement"}),{default:()=>({type:"minecraft:random_spread",spacing:10,separation:5,salt:Math.floor(Math.random()*2147483647)})}))}Be.initStructureSetSchemas=Dt;var Fe={};Object.defineProperty(Fe,"__esModule",{value:!0});Fe.initSurfaceRuleSchemas=void 0;const P=k;function Rt(r,e){const t=P.StringNode.bind(void 0,e),o=P.Reference.bind(void 0,r);r.register("material_rule",(0,P.Mod)((0,P.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/material_rule"}}),[P.Switch]:[{push:"type"}],[P.Case]:{"minecraft:block":{result_state:o("block_state")},"minecraft:condition":{if_true:o("material_condition"),then_run:o("material_rule")},"minecraft:sequence":{sequence:(0,P.ListNode)(o("material_rule"))}}},{context:"material_rule",category:"pool"}),{default:()=>({type:"minecraft:block",result_state:{Name:"minecraft:stone"}})})),r.register("material_condition",(0,P.Mod)((0,P.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/material_condition"}}),[P.Switch]:[{push:"type"}],[P.Case]:{"minecraft:biome":{biome_is:(0,P.ListNode)(t({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:noise_threshold":{noise:t({validator:"resource",params:{pool:"$worldgen/noise"}}),min_threshold:(0,P.NumberNode)(),max_threshold:(0,P.NumberNode)()},"minecraft:not":{invert:o("material_condition")},"minecraft:stone_depth":{offset:(0,P.NumberNode)({integer:!0}),surface_type:t({enum:"cave_surface"}),add_surface_depth:(0,P.BooleanNode)(),secondary_depth_range:(0,P.NumberNode)({integer:!0})},"minecraft:vertical_gradient":{random_name:t(),true_at_and_below:o("vertical_anchor"),false_at_and_above:o("vertical_anchor")},"minecraft:water":{offset:(0,P.NumberNode)({integer:!0}),surface_depth_multiplier:(0,P.NumberNode)({integer:!0,min:-20,max:20}),add_stone_depth:(0,P.BooleanNode)()},"minecraft:y_above":{anchor:o("vertical_anchor"),surface_depth_multiplier:(0,P.NumberNode)({integer:!0,min:-20,max:20}),add_stone_depth:(0,P.BooleanNode)()}}},{context:"material_condition"}),{default:()=>({type:"minecraft:biome",is_biome:"minecraft:plains"})}))}Fe.initSurfaceRuleSchemas=Rt;var ze={};Object.defineProperty(ze,"__esModule",{value:!0});ze.initTemplatePoolSchemas=void 0;const q=k,Ge=Q;function Tt(r,e){const t=q.Reference.bind(void 0,r),o=q.StringNode.bind(void 0,e);r.register("template_pool",(0,q.Mod)((0,q.ObjectNode)({name:o(),fallback:o(),elements:(0,q.ListNode)(t("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"}}]})})),r.register("template_weighted_element",(0,q.Mod)((0,q.ObjectNode)({weight:(0,q.NumberNode)({integer:!0,min:1}),element:t("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),r.register("template_element",(0,q.Mod)((0,q.ObjectNode)({element_type:o({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:o({enum:["rigid","terrain_matching"]}),[q.Switch]:[{push:"element_type"}],[q.Case]:{"minecraft:feature_pool_element":{feature:o({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},"minecraft:legacy_single_pool_element":{location:o({validator:"resource",params:{pool:"$structure"}}),processors:Ge.Processors},"minecraft:list_pool_element":{elements:(0,q.ListNode)(t("template_element"))},"minecraft:single_pool_element":{location:o({validator:"resource",params:{pool:"$structure"}}),processors:Ge.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))}ze.initTemplatePoolSchemas=Tt;var De={};Object.defineProperty(De,"__esModule",{value:!0});De.initWorldPresetSchemas=void 0;const ie=k;function qt(r,e){const t=ie.StringNode.bind(void 0,e),o=ie.Reference.bind(void 0,r);r.register("world_preset",(0,ie.Mod)((0,ie.ObjectNode)({dimensions:(0,ie.MapNode)(t({validator:"resource",params:{pool:"$dimension",isDefinition:!0}}),o("dimension"))},{context:"world_preset"}),{default:()=>({dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",biome_source:{type:"minecraft:multi_noise",preset:"minecraft:overworld"},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",biome_source:{type:"minecraft:multi_noise",preset:"minecraft:nether"},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",biome_source:{type:"minecraft:the_end"},settings:"minecraft:end"}}}})})),r.register("flat_level_generator_preset",(0,ie.Mod)((0,ie.ObjectNode)({display:t({validator:"resource",params:{pool:"item"}}),settings:o("flat_generator_settings")}),{default:()=>({display:"minecraft:grass_block",settings:{lakes:!1,features:!1,biome:"minecraft:plains",structure_overrides:[],layers:[{height:3,block:"minecraft:dirt"},{height:1,block:"minecraft:grass_block"}]}})}))}De.initWorldPresetSchemas=qt;Object.defineProperty(je,"__esModule",{value:!0});je.initWorldgenSchemas=void 0;const It=qe,At=Me,Et=Ce,Wt=Ie,Ut=Pe,Vt=Le,Gt=Q,Ht=$e,Kt=Be,Xt=Fe,Yt=ze,Zt=De;function Jt(r,e){(0,Gt.initProcessorListSchemas)(r,e),(0,Wt.initDensityFunctionSchemas)(r,e),(0,It.initBiomeSchemas)(r,e),(0,At.initCarverSchemas)(r,e),(0,Et.initDecoratorSchemas)(r,e),(0,Ut.initFeatureSchemas)(r,e),(0,Vt.initNoiseSettingsSchemas)(r,e),(0,Ht.initStructureSchemas)(r,e),(0,Kt.initStructureSetSchemas)(r,e),(0,Xt.initSurfaceRuleSchemas)(r,e),(0,Yt.initTemplatePoolSchemas)(r,e),(0,Zt.initWorldPresetSchemas)(r,e)}je.initWorldgenSchemas=Jt;var Re={};Object.defineProperty(Re,"__esModule",{value:!0});Re.initWorldSettingsSchemas=void 0;const J=k;function Qt(r,e){const t=J.Reference.bind(void 0,r),o=J.StringNode.bind(void 0,e);r.register("world_settings",(0,J.Mod)((0,J.ObjectNode)({generate_features:(0,J.BooleanNode)(),bonus_chest:(0,J.BooleanNode)(),seed:(0,J.NumberNode)({integer:!0}),dimensions:(0,J.MapNode)(o({validator:"resource",params:{pool:"$dimension"}}),t("dimension"))},{context:"world_settings"}),{default:()=>{const d=Math.floor(Math.random()*4294967296)-2147483648;return{generate_features:!0,bonus_chest:!1,seed:d,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:overworld"},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:nether"},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:the_end",seed:d},settings:"minecraft:end"}}}}}}))}Re.initWorldSettingsSchemas=Qt;Object.defineProperty(le,"__esModule",{value:!0});le.initSchemas=void 0;const er=me,tr=_e,rr=ge,or=R,ir=be,nr=Ne,ar=ye,cr=he,dr=ve,sr=Oe,lr=ke,mr=xe,_r=we,ur=Se,pr=je,fr=Re;function gr(r,e){(0,or.initCommonSchemas)(r,e),(0,rr.initChatTypeSchemas)(r,e),(0,er.initAdvancementSchemas)(r,e),(0,tr.initAssetsSchemas)(r,e),(0,ir.initConditionSchemas)(r,e),(0,ar.initDimensionTypeSchemas)(r,e),(0,nr.initDimensionSchemas)(r,e),(0,cr.initItemModifierSchemas)(r,e),(0,dr.initLootTableSchemas)(r,e),(0,sr.initPackMcmetaSchemas)(r,e),(0,lr.initPredicatesSchemas)(r,e),(0,mr.initRecipeSchemas)(r,e),(0,_r.initTagsSchemas)(r,e),(0,ur.initTextComponentSchemas)(r,e),(0,pr.initWorldgenSchemas)(r,e),(0,fr.initWorldSettingsSchemas)(r,e)}le.initSchemas=gr;var br=ne&&ne.__createBinding||(Object.create?function(r,e,t,o){o===void 0&&(o=t);var d=Object.getOwnPropertyDescriptor(e,t);(!d||("get"in d?!e.__esModule:d.writable||d.configurable))&&(d={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(r,o,d)}:function(r,e,t,o){o===void 0&&(o=t),r[o]=e[t]}),Nr=ne&&ne.__setModuleDefault||(Object.create?function(r,e){Object.defineProperty(r,"default",{enumerable:!0,value:e})}:function(r,e){r.default=e}),yr=ne&&ne.__importStar||function(r){if(r&&r.__esModule)return r;var e={};if(r!=null)for(var t in r)t!=="default"&&Object.prototype.hasOwnProperty.call(r,t)&&br(e,r,t);return Nr(e,r),e};Object.defineProperty(X,"__esModule",{value:!0});var He=X.getSchemas=Ye=X.getCollections=Xe=X.lootContext=void 0;const Ke=k,hr=se,vr=le;var Xe=X.lootContext=yr(I);function Or(){const r=new Ke.CollectionRegistry;return(0,hr.initCollections)(r),r}var Ye=X.getCollections=Or;function kr(r){const e=new Ke.SchemaRegistry;return(0,vr.initSchemas)(e,r),e}He=X.getSchemas=kr;var jr=rt({__proto__:null,get getSchemas(){return He},get getCollections(){return Ye},get lootContext(){return Xe},default:X},[X]);export{jr as i}; -//# sourceMappingURL=index.dd43bf43.js.map +var Ze=Object.defineProperty,Je=Object.defineProperties;var Qe=Object.getOwnPropertyDescriptors;var Ae=Object.getOwnPropertySymbols;var et=Object.prototype.hasOwnProperty,tt=Object.prototype.propertyIsEnumerable;var Ee=(r,e,t)=>e in r?Ze(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,g=(r,e)=>{for(var t in e||(e={}))et.call(e,t)&&Ee(r,t,e[t]);if(Ae)for(var t of Ae(e))tt.call(e,t)&&Ee(r,t,e[t]);return r},W=(r,e)=>Je(r,Qe(e));import{v as k,u as ne}from"./index.d528c217.js";function rt(r,e){return e.forEach(function(t){t&&typeof t!="string"&&!Array.isArray(t)&&Object.keys(t).forEach(function(o){if(o!=="default"&&!(o in r)){var d=Object.getOwnPropertyDescriptor(t,o);Object.defineProperty(r,o,d.get?d:{enumerable:!0,get:function(){return t[o]}})}})}),Object.freeze(Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}))}var X={},se={};Object.defineProperty(se,"__esModule",{value:!0});se.initCollections=void 0;function ot(r){r.register("advancement_trigger",["minecraft:allay_drop_item_on_block","minecraft:avoid_vibration","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:kill_mob_near_sculk_catalyst","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:thrown_item_picked_up_by_player","minecraft:used_ender_eye","minecraft:used_totem","minecraft:using_item","minecraft:villager_trade","minecraft:voluntary_exile"]),r.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"]),r.register("slot",["mainhand","offhand","head","chest","legs","feet"]),r.register("gamemode",["survival","creative","adventure","spectator"]),r.register("entity_source",["this","killer","direct_killer","killer_player"]),r.register("copy_source",["block_entity","this","killer","killer_player"]),r.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),r.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"]),r.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"]),r.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"]),r.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mountain","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end","underground"]),r.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),r.register("generation_step",["air","liquid"]),r.register("decoration_step",["raw_generation","lakes","local_modifications","underground_structures","surface_structures","strongholds","underground_ores","underground_decoration","fluid_springs","vegetal_decoration","top_layer_modification"]),r.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"]),r.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"]),r.register("dye_color",["white","orange","magenta","light_blue","yellow","lime","pink","gray","light_gray","cyan","purple","blue","brown","green","red","black"]),r.register("cave_surface",["floor","ceiling"]),r.register("direction",["down","up","north","east","south","west"]),r.register("axis",["x","y","z"]),r.register("display_position",["firstperson_righthand","firstperson_lefthand","thirdperson_righthand","thirdperson_lefthand","gui","head","ground","fixed"]),r.register("gui_light",["front","side"]),r.register("item_model_predicates",["angle","blocking","broken","cast","charged","cooldown","custom_model_data","damage","damaged","firework","lefthanded","pull","pulling","throwing","time"]),r.register("glyph_provider_type",["bitmap","ttf","space","legacy_unicode"]),r.register("mob_category",["monster","creature","ambient","axolotls","underground_water_creature","water_creature","water_ambient","misc"])}se.initCollections=ot;var le={},me={};Object.defineProperty(me,"__esModule",{value:!0});me.initAdvancementSchemas=void 0;const s=k;function it(r,e){const t=s.Reference.bind(void 0,r),o=s.StringNode.bind(void 0,e),d=(0,s.ChoiceNode)([{type:"object",node:(0,s.Opt)(t("entity_predicate")),change:n=>{var c,l;return(l=(c=n[0])===null||c===void 0?void 0:c.predicate)!==null&&l!==void 0?l:{}}},{type:"list",node:(0,s.ListNode)(t("condition")),change:n=>[{condition:"minecraft:entity_properties",predicate:n}]}],{context:"conditions"});r.register("advancement",(0,s.Mod)((0,s.ObjectNode)({display:(0,s.Opt)((0,s.Mod)((0,s.ObjectNode)({icon:(0,s.ObjectNode)({item:o({validator:"resource",params:{pool:"item"}}),nbt:(0,s.Opt)(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:t("text_component"),description:t("text_component"),background:(0,s.Opt)(o()),frame:(0,s.Opt)(o({enum:["task","challenge","goal"]})),show_toast:(0,s.Opt)((0,s.BooleanNode)()),announce_to_chat:(0,s.Opt)((0,s.BooleanNode)()),hidden:(0,s.Opt)((0,s.BooleanNode)())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:(0,s.Opt)(o({validator:"resource",params:{pool:"$advancement"}})),criteria:(0,s.MapNode)(o(),t("advancement_criteria")),requirements:(0,s.Opt)((0,s.ListNode)((0,s.ListNode)(o()))),rewards:(0,s.Opt)((0,s.ObjectNode)({function:(0,s.Opt)(o({validator:"resource",params:{pool:"$function"}})),loot:(0,s.Opt)((0,s.ListNode)(o({validator:"resource",params:{pool:"$loot_table"}}))),recipes:(0,s.Opt)((0,s.ListNode)(o({validator:"resource",params:{pool:"$recipe"}}))),experience:(0,s.Opt)((0,s.NumberNode)({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),r.register("advancement_criteria",(0,s.ObjectNode)({trigger:o({validator:"resource",params:{pool:e.get("advancement_trigger")}}),conditions:(0,s.Opt)((0,s.ObjectNode)({player:(0,s.Mod)(d,{enabled:n=>n.pop().push("trigger").get()!=="minecraft:impossible"}),[s.Switch]:["pop",{push:"trigger"}],[s.Case]:{"minecraft:allay_drop_item_on_block":{item:(0,s.Opt)(t("item_predicate")),location:(0,s.Opt)(t("location_predicate"))},"minecraft:bee_nest_destroyed":{block:(0,s.Opt)(o({validator:"resource",params:{pool:"block"}})),num_bees_inside:(0,s.Opt)((0,s.NumberNode)({integer:!0})),item:(0,s.Opt)(t("item_predicate"))},"minecraft:bred_animals":{parent:d,partner:d,child:d},"minecraft:brewed_potion":{potion:(0,s.Opt)(o({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:(0,s.Opt)(o({validator:"resource",params:{pool:"$dimension"}})),to:(0,s.Opt)(o({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:(0,s.Opt)((0,s.ListNode)(d))},"minecraft:construct_beacon":{level:t("int_bounds")},"minecraft:consume_item":{item:(0,s.Opt)(t("item_predicate"))},"minecraft:cured_zombie_villager":{villager:d,zombie:d},"minecraft:effects_changed":{effects:(0,s.Opt)((0,s.MapNode)(o({validator:"resource",params:{pool:"mob_effect"}}),t("status_effect_predicate"))),source:(0,s.Opt)(d)},"minecraft:enter_block":{block:(0,s.Opt)(o({validator:"resource",params:{pool:"block"}})),state:(0,s.Opt)((0,s.MapNode)(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:t("int_bounds"),item:(0,s.Opt)(t("item_predicate"))},"minecraft:entity_hurt_player":{damage:(0,s.Opt)(t("damage_predicate"))},"minecraft:entity_killed_player":{entity:d,killing_blow:(0,s.Opt)(t("damage_source_predicate"))},"minecraft:fall_from_height":{start_position:(0,s.Opt)(t("location_predicate")),distance:(0,s.Opt)(t("distance_predicate"))},"minecraft:filled_bucket":{item:(0,s.Opt)(t("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:d,item:(0,s.Opt)(t("item_predicate"))},"minecraft:inventory_changed":{slots:(0,s.Opt)((0,s.ObjectNode)({empty:t("int_bounds"),occupied:t("int_bounds"),full:t("int_bounds")})),items:(0,s.Opt)((0,s.ListNode)(t("item_predicate")))},"minecraft:item_durability_changed":{delta:t("int_bounds"),durability:t("int_bounds"),item:(0,s.Opt)(t("item_predicate"))},"minecraft:item_used_on_block":{item:(0,s.Opt)(t("item_predicate")),location:(0,s.Opt)(t("location_predicate"))},"minecraft:kill_mob_near_sculk_catalyst":{entity:d,killing_blow:(0,s.Opt)(t("damage_source_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:t("int_bounds"),victims:(0,s.Opt)((0,s.ListNode)(d))},"minecraft:levitation":{distance:(0,s.Opt)(t("distance_predicate")),duration:t("int_bounds")},"minecraft:lightning_strike":{lightning:d,bystander:d},"minecraft:nether_travel":{start_position:(0,s.Opt)(t("location_predicate")),distance:(0,s.Opt)(t("distance_predicate"))},"minecraft:placed_block":{block:(0,s.Opt)(o({validator:"resource",params:{pool:"block"}})),state:(0,s.Opt)((0,s.MapNode)(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:(0,s.Opt)(t("item_predicate")),location:(0,s.Opt)(t("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:o({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:(0,s.Opt)(t("damage_predicate")),entity:d},"minecraft:player_interacted_with_entity":{item:(0,s.Opt)(t("item_predicate")),entity:d},"minecraft:player_killed_entity":{entity:d,killing_blow:(0,s.Opt)(t("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:o({validator:"resource",params:{pool:"$recipe"}})},"minecraft:ride_entity_in_lava":{start_position:(0,s.Opt)(t("location_predicate")),distance:(0,s.Opt)(t("distance_predicate"))},"minecraft:slide_down_block":{block:(0,s.Opt)(o({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:(0,s.Opt)(t("item_predicate"))},"minecraft:summoned_entity":{entity:d},"minecraft:tame_animal":{entity:d},"minecraft:target_hit":{projectile:d,shooter:d,signal_strength:t("int_bounds")},"minecraft:thrown_item_picked_up_by_entity":{entity:d,item:(0,s.Opt)(t("item_predicate"))},"minecraft:thrown_item_picked_up_by_player":{entity:d,item:(0,s.Opt)(t("item_predicate"))},"minecraft:used_ender_eye":{distance:(0,s.Opt)(t("float_bounds"))},"minecraft:used_totem":{item:(0,s.Opt)(t("item_predicate"))},"minecraft:using_item":{item:(0,s.Opt)(t("item_predicate"))},"minecraft:villager_trade":{villager:d,item:(0,s.Opt)(t("item_predicate"))}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))}me.initAdvancementSchemas=it;var _e={},ue={};Object.defineProperty(ue,"__esModule",{value:!0});ue.initModelSchemas=void 0;const N=k;function nt(r,e){N.Reference.bind(void 0,r);const t=N.StringNode.bind(void 0,e),o=(n,c,l)=>(0,N.ListNode)((0,N.NumberNode)({min:c,max:l}),{minLength:n,maxLength:n}),d=(0,N.ChoiceNode)([{type:"alias",match:n=>typeof n=="string"&&n.startsWith("#"),node:t(),change:n=>typeof n=="string"?`#${n}`:"#0"},{type:"reference",match:n=>typeof n=="string",node:t({validator:"resource",params:{pool:"$texture"}}),change:n=>typeof n=="string"?n.replace(/^#/,""):""}],{choiceContext:"texture"});r.register("model",(0,N.Mod)((0,N.ObjectNode)({parent:(0,N.Opt)(t({validator:"resource",params:{pool:"$model"}})),ambientocclusion:(0,N.Opt)((0,N.BooleanNode)()),gui_light:(0,N.Opt)(t({enum:"gui_light"})),textures:(0,N.Opt)((0,N.MapNode)(t(),d)),elements:(0,N.Opt)((0,N.ListNode)((0,N.ObjectNode)({from:o(3,-16,32),to:o(3,-16,32),rotation:(0,N.Opt)((0,N.ObjectNode)({origin:o(3),axis:t({enum:"axis"}),angle:(0,N.NumberEnum)({values:[-45,-22.5,0,22.5,45]}),rescale:(0,N.Opt)((0,N.BooleanNode)())})),shade:(0,N.Opt)((0,N.BooleanNode)()),faces:(0,N.MapNode)(t({enum:"direction"}),(0,N.ObjectNode)({texture:d,uv:(0,N.Opt)(o(4)),cullface:(0,N.Opt)(t({enum:"direction"})),rotation:(0,N.Opt)((0,N.NumberNode)({integer:!0})),tintindex:(0,N.Opt)((0,N.NumberNode)({integer:!0}))}))},{context:"model_element"}))),display:(0,N.Opt)((0,N.MapNode)(t({enum:"display_position"}),(0,N.ObjectNode)({rotation:o(3),translation:o(3,-80,80),scale:o(3,-4,4)},{context:"item_transform"}))),overrides:(0,N.Opt)((0,N.ListNode)((0,N.ObjectNode)({predicate:(0,N.MapNode)(t({enum:"item_model_predicates"}),(0,N.NumberNode)()),model:t({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))}ue.initModelSchemas=nt;var pe={};Object.defineProperty(pe,"__esModule",{value:!0});pe.initBlockDefinitionSchemas=void 0;const S=k;function at(r,e){const t=S.Reference.bind(void 0,r),o=S.StringNode.bind(void 0,e);r.register("block_definition",(0,S.Mod)((0,S.ChoiceNode)([{type:"variants",match:n=>n.variants!==void 0,node:(0,S.ObjectNode)({variants:(0,S.MapNode)(o(),t("model_variant"))}),change:n=>({variants:{"":{}}})},{type:"multipart",match:n=>n.multipart!==void 0,node:(0,S.ObjectNode)({multipart:(0,S.ListNode)((0,S.ObjectNode)({when:(0,S.Opt)(t("multipart_condition")),apply:t("model_variant")}))}),change:n=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const d={model:o({validator:"resource",params:{pool:"$model"}}),x:(0,S.Opt)((0,S.NumberEnum)({integer:!0,values:[0,90,180,270]})),y:(0,S.Opt)((0,S.NumberEnum)({integer:!0,values:[0,90,180,270]})),uvlock:(0,S.Opt)((0,S.BooleanNode)())};r.register("model_variant",(0,S.ChoiceNode)([{type:"object",node:(0,S.ObjectNode)(d),change:n=>Array.isArray(n)&&n.length>0?n[0]:{}},{type:"list",node:(0,S.ListNode)((0,S.ObjectNode)(W(g({},d),{weight:(0,S.Opt)((0,S.NumberNode)({integer:!0,min:1}))}),{context:"model_variant"})),change:n=>[g({weight:1},n)]}],{context:"model_variant"})),r.register("multipart_condition",(0,S.ChoiceNode)([{type:"object",priority:-1,match:()=>!0,node:(0,S.MapNode)(o(),o()),change:n=>typeof n=="object"&&Array.isArray(n==null?void 0:n.OR)&&n.OR.length>0?n.OR[0]:{}},{type:"or",match:n=>typeof n=="object"&&(n==null?void 0:n.OR)!==void 0,node:(0,S.ObjectNode)({OR:(0,S.ListNode)(t("multipart_condition"))}),change:n=>({OR:[n!=null?n:{}]})}],{context:"multipart_condition"}))}pe.initBlockDefinitionSchemas=at;var fe={};Object.defineProperty(fe,"__esModule",{value:!0});fe.initFontSchemas=void 0;const M=k;function ct(r,e){const t=M.Reference.bind(void 0,r),o=M.StringNode.bind(void 0,e);r.register("font",(0,M.ObjectNode)({providers:(0,M.ListNode)(t("glyph_provider"))},{context:"font"})),r.register("glyph_provider",(0,M.Mod)((0,M.ObjectNode)({type:o({enum:"glyph_provider_type"}),[M.Switch]:[{push:"type"}],[M.Case]:{bitmap:{file:o({validator:"resource",params:{pool:"$texture",suffix:".png"}}),height:(0,M.Opt)((0,M.NumberNode)({integer:!0})),ascent:(0,M.NumberNode)({integer:!0}),chars:(0,M.ListNode)(o(),{minLength:1})},ttf:{file:o({validator:"resource",params:{pool:"$texture",suffix:".png"}}),size:(0,M.Opt)((0,M.NumberNode)()),oversample:(0,M.Opt)((0,M.NumberNode)()),shift:(0,M.Opt)((0,M.ListNode)((0,M.NumberNode)(),{minLength:2,maxLength:2})),skip:(0,M.Opt)((0,M.StringOrList)(o()))},space:{advances:(0,M.MapNode)(o(),(0,M.NumberNode)())},legacy_unicode:{sizes:o(),template:o()}}},{context:"glyph_provider"}),{default:()=>({type:"bitmap"})}))}fe.initFontSchemas=ct;Object.defineProperty(_e,"__esModule",{value:!0});_e.initAssetsSchemas=void 0;const dt=ue,st=pe,lt=fe;function mt(r,e){(0,st.initBlockDefinitionSchemas)(r,e),(0,lt.initFontSchemas)(r,e),(0,dt.initModelSchemas)(r,e)}_e.initAssetsSchemas=mt;var ge={};Object.defineProperty(ge,"__esModule",{value:!0});ge.initChatTypeSchemas=void 0;const Y=k;function _t(r,e){const t=Y.Reference.bind(void 0,r),o=Y.StringNode.bind(void 0,e);r.register("chat_type",(0,Y.Mod)((0,Y.ObjectNode)({chat:t("text_decoration"),narration:t("text_decoration")},{context:"chat_type"}),{default:()=>({chat:{translation_key:"chat.type.text",parameters:["sender","content"]},narration:{translation_key:"chat.type.text.narrate",parameters:["sender","content"]}})})),r.register("text_decoration",(0,Y.Mod)((0,Y.ObjectNode)({translation_key:o(),parameters:(0,Y.ListNode)(o({enum:["sender","target","content"]})),style:(0,Y.Opt)(t("text_style"))},{context:"text_decoration"}),{default:()=>({translation_key:"chat.type.text",parameters:["sender","content"],style:{}})}))}ge.initChatTypeSchemas=_t;var R={};(function(r){Object.defineProperty(r,"__esModule",{value:!0}),r.initCommonSchemas=r.Tag=r.InclusiveRange=r.IntProvider=r.FloatProvider=r.NoiseSettingsPresets=r.DefaultNoiseSettings=r.FunctionCases=r.ConditionCases=void 0;const e=k;r.DefaultNoiseSettings={sea_level:63,ore_veins_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,legacy_random_source:!1,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,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}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}};function t(o,d){const n=e.StringNode.bind(void 0,d),c=e.Reference.bind(void 0,o);o.register("block_state",(0,e.Mod)((0,e.ObjectNode)({Name:n({validator:"resource",params:{pool:"block"}}),Properties:(0,e.Opt)((0,e.MapNode)(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),o.register("fluid_state",(0,e.Mod)((0,e.ObjectNode)({Name:n({validator:"resource",params:{pool:"fluid"}}),Properties:(0,e.Opt)((0,e.MapNode)(n(),n()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),o.register("block_pos",(0,e.Mod)((0,e.ListNode)((0,e.NumberNode)({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const l=_=>(0,e.Opt)((0,e.ChoiceNode)([{type:"number",node:(0,e.NumberNode)({integer:_}),change:b=>{var j,y;return b===void 0?0:(y=(j=b.min)!==null&&j!==void 0?j:b.max)!==null&&y!==void 0?y:0}},{type:"object",node:(0,e.ObjectNode)({min:(0,e.Opt)((0,e.NumberNode)({integer:_})),max:(0,e.Opt)((0,e.NumberNode)({integer:_}))},{context:"range"}),change:b=>({min:b!=null?b:0,max:b!=null?b:0})}]));o.register("int_bounds",l(!0)),o.register("float_bounds",l()),o.register("int_range",(0,e.ChoiceNode)([{type:"object",node:(0,e.ObjectNode)({min:(0,e.Opt)(c("number_provider")),max:(0,e.Opt)(c("number_provider"))})},{type:"number",node:(0,e.NumberNode)({integer:!0})}],{context:"range"}));const v=(_,b,j,y,F,z,U)=>{let ce={};F&&Object.keys(U[F]).forEach(A=>{ce[A]=(0,e.Mod)(U[F][A],{enabled:E=>E.push("type").get()===void 0})});const ee=(0,e.ObjectNode)(g({type:(0,e.Mod)((0,e.Opt)(n({validator:"resource",params:{pool:_}})),{hidden:()=>!0}),[e.Switch]:[{push:"type"}],[e.Case]:U},ce),{context:z,disableSwitchContext:!0}),te=[{type:b,node:U[y][j]}];return F&&te.push({type:"object",priority:-1,node:ee}),Object.keys(U).forEach(A=>{te.push({type:A,match:E=>{var re;if("minecraft:"+((re=E==null?void 0:E.type)===null||re===void 0?void 0:re.replace(/^minecraft:/,""))===A)return!0;const V=E?Object.keys(E):[];return typeof E=="object"&&((V==null?void 0:V.length)===0||(V==null?void 0:V.length)===1&&(V==null?void 0:V[0])==="type")},node:ee,change:E=>({type:A})})}),(0,e.ChoiceNode)(te,{context:z,choiceContext:`${z}.type`})};o.register("number_provider",v("loot_number_provider_type","number","value","minecraft:constant","minecraft:uniform","number_provider",{"minecraft:constant":{value:(0,e.NumberNode)()},"minecraft:uniform":{min:c("number_provider"),max:c("number_provider")},"minecraft:binomial":{n:c("number_provider"),p:c("number_provider")},"minecraft:score":{target:c("scoreboard_name_provider"),score:n({validator:"objective"}),scale:(0,e.Opt)((0,e.NumberNode)())}})),o.register("scoreboard_name_provider",v("loot_score_provider_type","string","target","minecraft:context",null,"score_provider",{"minecraft:fixed":{name:n({validator:"entity",params:{amount:"multiple",type:"entities",isScoreHolder:!0}})},"minecraft:context":{target:(0,e.Mod)(n({enum:"entity_source"}),{default:()=>"this"})}})),o.register("nbt_provider",v("loot_nbt_provider_type","string","target","minecraft:context",null,"nbt_provider",{"minecraft:storage":{source:n({validator:"resource",params:{pool:"$storage"}})},"minecraft:context":{target:(0,e.Mod)(n({enum:"copy_source"}),{default:()=>"this"})}})),r.FloatProvider=_=>v("float_provider_type","number","value","minecraft:constant",null,"float_provider",{"minecraft:constant":{value:(0,e.NumberNode)(_)},"minecraft:uniform":{value:(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(_),max_exclusive:(0,e.NumberNode)(_)})},"minecraft:clamped_normal":{value:(0,e.ObjectNode)({min:(0,e.NumberNode)(),max:(0,e.NumberNode)(),mean:(0,e.NumberNode)(),deviation:(0,e.NumberNode)()})},"minecraft:trapezoid":{value:(0,e.ObjectNode)({min:(0,e.NumberNode)(),max:(0,e.NumberNode)(),plateau:(0,e.NumberNode)()})}}),o.register("float_provider",(0,r.FloatProvider)()),r.IntProvider=_=>v("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:(0,e.NumberNode)(g({integer:!0},_))},"minecraft:uniform":{value:(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(g({integer:!0},_)),max_inclusive:(0,e.NumberNode)(g({integer:!0},_))})},"minecraft:biased_to_bottom":{value:(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(g({integer:!0},_)),max_inclusive:(0,e.NumberNode)(g({integer:!0},_))})},"minecraft:clamped":{value:(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(g({integer:!0},_)),max_inclusive:(0,e.NumberNode)(g({integer:!0},_)),source:c("int_provider")})},"minecraft:clamped_normal":{value:(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(g({integer:!0},_)),max_inclusive:(0,e.NumberNode)(g({integer:!0},_)),mean:(0,e.NumberNode)(),deviation:(0,e.NumberNode)()})},"minecraft:weighted_list":{distribution:(0,e.ListNode)((0,e.ObjectNode)({weight:(0,e.NumberNode)({integer:!0}),data:c("int_provider")}))}}),o.register("int_provider",(0,r.IntProvider)()),o.register("vertical_anchor",(0,e.ChoiceNode)(["absolute","above_bottom","below_top"].map(_=>({type:_,match:b=>(b==null?void 0:b[_])!==void 0,change:b=>{var j,y,F;return{[_]:(F=(y=(j=b.absolute)!==null&&j!==void 0?j:b.above_bottom)!==null&&y!==void 0?y:b.below_top)!==null&&F!==void 0?F:0}},node:(0,e.ObjectNode)({[_]:(0,e.NumberNode)({integer:!0,min:-2048,max:2047})})})),{context:"vertical_anchor"})),o.register("height_provider",v("height_provider_type","number","value","minecraft:constant",null,"height_provider",{"minecraft:constant":{value:c("vertical_anchor")},"minecraft:uniform":{min_inclusive:c("vertical_anchor"),max_inclusive:c("vertical_anchor")},"minecraft:biased_to_bottom":{min_inclusive:c("vertical_anchor"),max_inclusive:c("vertical_anchor"),inner:(0,e.Opt)((0,e.NumberNode)({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:c("vertical_anchor"),max_inclusive:c("vertical_anchor"),inner:(0,e.Opt)((0,e.NumberNode)({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:c("vertical_anchor"),max_inclusive:c("vertical_anchor"),plateau:(0,e.Opt)((0,e.NumberNode)({integer:!0}))},"minecraft:weighted_list":{distribution:(0,e.ListNode)((0,e.ObjectNode)({weight:(0,e.NumberNode)({integer:!0}),data:c("int_provider")}))}})),r.InclusiveRange=_=>(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(_),max_inclusive:(0,e.NumberNode)(_)},{context:"range"}),o.register("noise_parameters",(0,e.Mod)((0,e.ObjectNode)({firstOctave:(0,e.NumberNode)({integer:!0}),amplitudes:(0,e.ListNode)((0,e.NumberNode)())},{context:"noise_parameters"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})})),r.Tag=_=>(0,e.ChoiceNode)([{type:"string",node:n({validator:"resource",params:{pool:_.resource,allowTag:!0}}),change:b=>{if(Array.isArray(b)&&typeof b[0]=="string"&&!b[0].startsWith("#"))return b[0]}},{type:"list",node:(0,e.ListNode)(_.inlineSchema?(0,e.ChoiceNode)([{type:"string",node:n({validator:"resource",params:{pool:_.resource}})},{type:"object",node:c(_.inlineSchema)}],{choiceContext:"tag.list"}):n({validator:"resource",params:{pool:_.resource}})),change:b=>typeof b=="string"&&!b.startsWith("#")?[b]:[]}],{choiceContext:"tag"}),r.ConditionCases=(_=n({enum:"entity_source"}))=>({"minecraft:alternative":{terms:(0,e.ListNode)(c("condition"))},"minecraft:block_state_property":{block:n({validator:"resource",params:{pool:"block"}}),properties:(0,e.MapNode)(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:c("damage_source_predicate")},"minecraft:entity_properties":{entity:_,predicate:c("entity_predicate")},"minecraft:entity_scores":{entity:_,scores:(0,e.MapNode)(n({validator:"objective"}),c("int_range"))},"minecraft:inverted":{term:c("condition")},"minecraft:killed_by_player":{inverse:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:location_check":{offsetX:(0,e.Opt)((0,e.NumberNode)({integer:!0})),offsetY:(0,e.Opt)((0,e.NumberNode)({integer:!0})),offsetZ:(0,e.Opt)((0,e.NumberNode)({integer:!0})),predicate:c("location_predicate")},"minecraft:match_tool":{predicate:c("item_predicate")},"minecraft:random_chance":{chance:(0,e.NumberNode)({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:(0,e.NumberNode)({min:0,max:1}),looting_multiplier:(0,e.NumberNode)()},"minecraft:reference":{name:n({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:n({validator:"resource",params:{pool:"enchantment"}}),chances:(0,e.ListNode)((0,e.NumberNode)({min:0,max:1}))},"minecraft:time_check":{value:c("int_range"),period:(0,e.Opt)((0,e.NumberNode)({integer:!0}))},"minecraft:value_check":{value:c("number_provider"),range:c("int_range")},"minecraft:weather_check":{raining:(0,e.Opt)((0,e.BooleanNode)()),thundering:(0,e.Opt)((0,e.BooleanNode)())}}),r.FunctionCases=(_,b=n({enum:"copy_source"}),j=n({enum:"entity_source"}))=>{const y={"minecraft:apply_bonus":{enchantment:n({validator:"resource",params:{pool:"enchantment"}}),formula:n({validator:"resource",params:{pool:d.get("loot_table_apply_bonus_formula")}}),parameters:(0,e.Mod)((0,e.ObjectNode)({bonusMultiplier:(0,e.Mod)((0,e.NumberNode)(),{enabled:z=>z.pop().push("formula").get()==="minecraft:uniform_bonus_count"}),extra:(0,e.Mod)((0,e.NumberNode)(),{enabled:z=>z.pop().push("formula").get()==="minecraft:binomial_with_bonus_count"}),probability:(0,e.Mod)((0,e.NumberNode)(),{enabled:z=>z.pop().push("formula").get()==="minecraft:binomial_with_bonus_count"})}),{enabled:z=>z.push("formula").get()!=="minecraft:ore_drops"})},"minecraft:copy_name":{source:b},"minecraft:copy_nbt":{source:c("nbt_provider"),ops:(0,e.ListNode)((0,e.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:(0,e.ListNode)(n({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:(0,e.Opt)((0,e.ListNode)(n({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:c("number_provider"),treasure:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:exploration_map":{destination:(0,e.Opt)((0,r.Tag)({resource:"$worldgen/structure"})),decoration:(0,e.Opt)(n({enum:"map_decoration"})),zoom:(0,e.Opt)((0,e.NumberNode)({integer:!0})),search_radius:(0,e.Opt)((0,e.NumberNode)({integer:!0})),skip_existing_chunks:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:fill_player_head":{entity:j},"minecraft:limit_count":{limit:c("int_range")},"minecraft:looting_enchant":{count:c("number_provider"),limit:(0,e.Opt)((0,e.NumberNode)({integer:!0}))},"minecraft:set_attributes":{modifiers:(0,e.ListNode)(c("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:(0,e.ListNode)((0,e.ObjectNode)({pattern:n({enum:"banner_pattern"}),color:n({enum:"dye_color"})})),append:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:set_contents":{type:n({validator:"resource",params:{pool:"block_entity_type"}}),entries:(0,e.ListNode)(c("loot_entry"))},"minecraft:set_count":{count:c("number_provider"),add:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:set_damage":{damage:c("number_provider"),add:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:set_enchantments":{enchantments:(0,e.MapNode)(n({validator:"resource",params:{pool:"enchantment"}}),c("number_provider")),add:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:set_instrument":{options:n({validator:"resource",params:{pool:"instrument",requireTag:!0}})},"minecraft:set_loot_table":{type:n({validator:"resource",params:{pool:"block_entity_type"}}),name:n({validator:"resource",params:{pool:"$loot_table"}}),seed:(0,e.Opt)((0,e.NumberNode)({integer:!0}))},"minecraft:set_lore":{entity:(0,e.Opt)(j),lore:(0,e.ListNode)(c("text_component")),replace:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:set_name":{entity:(0,e.Opt)(j),name:(0,e.Opt)(c("text_component"))},"minecraft:set_nbt":{tag:n({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_potion":{id:n({validator:"resource",params:{pool:"potion"}})},"minecraft:set_stew_effect":{effects:(0,e.Opt)((0,e.ListNode)((0,e.ObjectNode)({type:n({validator:"resource",params:{pool:"mob_effect"}}),duration:c("number_provider")})))}},F={};return d.get("loot_function_type").forEach(z=>{F[z]=g(g({},y[z]),_)}),F},r.NoiseSettingsPresets=_=>(0,e.ObjectOrPreset)(n({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),_,{"minecraft:overworld":r.DefaultNoiseSettings,"minecraft:nether":{sea_level:32,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,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,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}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:end":{sea_level:0,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,default_block:{Name:"minecraft:end_stone"},default_fluid:{Name:"minecraft:air"},noise:{min_y:0,height:128,size_horizontal:2,size_vertical:1,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}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:amplified":{sea_level:63,ore_veins_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,legacy_random_source:!1,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,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}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:caves":{sea_level:32,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,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,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}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:floating_islands":{sea_level:0,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,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,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}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}}})}r.initCommonSchemas=t})(R);var be={};Object.defineProperty(be,"__esModule",{value:!0});be.initConditionSchemas=void 0;const oe=k,ut=R;function pt(r,e){const t=oe.Reference.bind(void 0,r),o=oe.StringNode.bind(void 0,e);r.register("predicate",(0,oe.ObjectOrList)(t("condition"),{choiceContext:"condition"})),r.register("condition",(0,oe.Mod)((0,oe.ObjectNode)({condition:o({validator:"resource",params:{pool:"loot_condition_type"}}),[oe.Switch]:[{push:"condition"}],[oe.Case]:(0,ut.ConditionCases)()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))}be.initConditionSchemas=pt;var Ne={};Object.defineProperty(Ne,"__esModule",{value:!0});Ne.initDimensionSchemas=void 0;const O=k,Te=R;function ft(r,e){const t=O.Reference.bind(void 0,r),o=O.StringNode.bind(void 0,e);r.register("dimension",(0,O.Mod)((0,O.ObjectNode)({type:o({validator:"resource",params:{pool:"$dimension_type"}}),generator:(0,O.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[O.Switch]:[{push:"type"}],[O.Case]:{"minecraft:noise":{settings:(0,Te.NoiseSettingsPresets)(t("noise_settings")),biome_source:(0,O.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/biome_source"}}),[O.Switch]:[{push:"type"}],[O.Case]:{"minecraft:fixed":{biome:o({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{preset:(0,O.Opt)(o({validator:"resource",params:{pool:["minecraft:overworld","minecraft:nether"]}})),biomes:(0,O.Mod)((0,O.ListNode)(t("generator_biome")),{enabled:n=>n.push("preset").get()===void 0,default:()=>[{biome:"minecraft:plains"}]})},"minecraft:checkerboard":{scale:(0,O.Opt)((0,O.NumberNode)({integer:!0,min:0,max:62})),biomes:(0,Te.Tag)({resource:"$worldgen/biome"})}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:t("flat_generator_settings")}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>({type:"minecraft:overworld",generator:{type:"minecraft:noise",biome_source:{type:"minecraft:fixed",biome:"minecraft:plains"},settings:"minecraft:overworld"}})})),r.register("flat_generator_settings",(0,O.ObjectNode)({biome:(0,O.Opt)(o({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:(0,O.Opt)((0,O.BooleanNode)()),features:(0,O.Opt)((0,O.BooleanNode)()),layers:(0,O.ListNode)(t("generator_layer")),structure_overrides:(0,Te.Tag)({resource:"$worldgen/structure_set",inlineSchema:"structure_set"})}));const d=(0,O.ChoiceNode)([{type:"number",node:(0,O.NumberNode)({min:-2,max:2}),change:n=>{var c;return(c=n[0])!==null&&c!==void 0?c:0}},{type:"list",node:(0,O.ListNode)((0,O.NumberNode)({min:-2,max:2}),{minLength:2,maxLength:2}),change:n=>[n!=null?n:0,n!=null?n:0]}]);r.register("parameter_point",(0,O.ObjectNode)({temperature:d,humidity:d,continentalness:d,erosion:d,weirdness:d,depth:d,offset:(0,O.NumberNode)({min:0,max:1})})),r.register("generator_biome",(0,O.Mod)((0,O.ObjectNode)({biome:o({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:t("parameter_point")},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{temperature:0,humidity:0,continentalness:0,erosion:0,weirdness:0,depth:0,offset:0}})}))}Ne.initDimensionSchemas=ft;var ye={};Object.defineProperty(ye,"__esModule",{value:!0});ye.initDimensionTypeSchemas=void 0;const L=k,gt=R;function bt(r,e){const t=L.StringNode.bind(void 0,e);r.register("dimension_type",(0,L.Mod)((0,L.ObjectNode)({ultrawarm:(0,L.BooleanNode)(),natural:(0,L.BooleanNode)(),piglin_safe:(0,L.BooleanNode)(),respawn_anchor_works:(0,L.BooleanNode)(),bed_works:(0,L.BooleanNode)(),has_raids:(0,L.BooleanNode)(),has_skylight:(0,L.BooleanNode)(),has_ceiling:(0,L.BooleanNode)(),coordinate_scale:(0,L.NumberNode)({min:1e-5,max:3e7}),ambient_light:(0,L.NumberNode)(),fixed_time:(0,L.Opt)((0,L.NumberNode)({integer:!0})),logical_height:(0,L.NumberNode)({integer:!0,min:0,max:4064}),effects:(0,L.Opt)(t({validator:"resource",params:{pool:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]}})),infiniburn:t({validator:"resource",params:{pool:"block",requireTag:!0}}),min_y:(0,L.NumberNode)({integer:!0,min:-2032,max:2031}),height:(0,L.NumberNode)({integer:!0,min:16,max:4064}),monster_spawn_light_level:(0,gt.IntProvider)({min:0,max:15}),monster_spawn_block_light_limit:(0,L.NumberNode)({integer:!0,min:0,max:15})},{context:"dimension_type"}),o=>({default:()=>({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:384,effects:"minecraft:overworld",infiniburn:"#minecraft:infiniburn_overworld",min_y:-64,height:384,monster_spawn_block_light_limit:0,monster_spawn_light_level:{type:"minecraft:uniform",value:{min_inclusive:0,max_inclusive:7}}}),validate:(d,n,c,l)=>(n=o.validate(d,n,c,l),(n==null?void 0:n.min_y)+(n==null?void 0:n.height)>2032&&c.add(d.push("height"),"error.min_y_plus_height",2032),(n==null?void 0:n.logical_height)>(n==null?void 0:n.height)&&c.add(d.push("logical_height"),"error.logical_height"),(n==null?void 0:n.height)%16!==0&&c.add(d.push("height"),"error.height_multiple",16),(n==null?void 0:n.min_y)%16!==0&&c.add(d.push("min_y"),"error.min_y_multiple",16),n)})))}ye.initDimensionTypeSchemas=bt;var he={};Object.defineProperty(he,"__esModule",{value:!0});he.initItemModifierSchemas=void 0;const G=k,Nt=R;function yt(r,e){const t=G.Reference.bind(void 0,r),o=G.StringNode.bind(void 0,e);r.register("item_modifier",(0,G.ObjectOrList)(t("function"),{choiceContext:"function"}));const d={conditions:(0,G.Opt)((0,G.ListNode)(t("condition")))};r.register("function",(0,G.Mod)((0,G.ObjectNode)({function:o({validator:"resource",params:{pool:"loot_function_type"}}),[G.Switch]:[{push:"function"}],[G.Case]:(0,Nt.FunctionCases)(d)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))}he.initItemModifierSchemas=yt;var ve={},I={};Object.defineProperty(I,"__esModule",{value:!0});I.LootFunctions=I.LootConditions=I.LootCopySources=I.LootEntitySources=I.LootTableTypes=void 0;I.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]}]]);I.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]);I.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]);I.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",[]]]);I.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(ve,"__esModule",{value:!0});ve.initLootTableSchemas=void 0;const p=k,ae=I,We=R;function ht(r,e){const t=p.Reference.bind(void 0,r),o=p.StringNode.bind(void 0,e),d={conditions:(0,p.Opt)((0,p.ListNode)(t("loot_condition")))},n=g({functions:(0,p.Opt)((0,p.ListNode)(t("loot_function")))},d);function c(y,F,z){const U=[],ce=ee=>e.get(F).filter(te=>{var A;return((A=y.get(te))!==null&&A!==void 0?A:[]).every(re=>ee.includes(re))});for(const[ee,{allows:te,requires:A}]of ae.LootTableTypes){const E=[...te,...A];U.push({match:re=>re.getModel().get(new p.Path(["type"]))===ee,node:z(ce(E))})}return U.push({match:ee=>!0,node:z(F)}),(0,p.SwitchNode)(U)}const l=c(ae.LootConditions,"loot_condition_type",y=>o({validator:"resource",params:{pool:y instanceof Array?y:"loot_condition_type"}})),v=c(ae.LootFunctions,"loot_function_type",y=>o({validator:"resource",params:{pool:y instanceof Array?y:"loot_function_type"}})),_=c(ae.LootEntitySources,"entity_source",y=>o({enum:y})),b=c(ae.LootCopySources,"copy_source",y=>o({enum:y}));r.register("loot_table",(0,p.Mod)((0,p.ObjectNode)({type:(0,p.Opt)(o({validator:"resource",params:{pool:e.get("loot_context_type")}})),pools:(0,p.Opt)((0,p.ListNode)((0,p.Mod)((0,p.ObjectNode)(g({rolls:t("number_provider"),bonus_rolls:(0,p.Opt)(t("number_provider")),entries:(0,p.ListNode)(t("loot_entry"))},n),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:(0,p.Opt)((0,p.ListNode)(t("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const j={enabled:y=>{var F;return((F=y.pop().get())===null||F===void 0?void 0:F.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(y.push("type").get())}};r.register("loot_entry",(0,p.Mod)((0,p.ObjectNode)({type:o({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:(0,p.Opt)((0,p.Mod)((0,p.NumberNode)({integer:!0,min:1}),j)),quality:(0,p.Opt)((0,p.Mod)((0,p.NumberNode)({integer:!0}),j)),[p.Switch]:[{push:"type"}],[p.Case]:{"minecraft:alternatives":g({children:(0,p.ListNode)(t("loot_entry"))},n),"minecraft:dynamic":g({name:o()},n),"minecraft:group":g({children:(0,p.ListNode)(t("loot_entry"))},n),"minecraft:item":g({name:o({validator:"resource",params:{pool:"item"}})},n),"minecraft:loot_table":g({name:o({validator:"resource",params:{pool:"$loot_table"}})},n),"minecraft:sequence":g({children:(0,p.ListNode)(t("loot_entry"))},n),"minecraft:tag":g({name:o({validator:"resource",params:{pool:"$tag/item"}}),expand:(0,p.Opt)((0,p.BooleanNode)())},n)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),r.register("loot_function",(0,p.Mod)((0,p.ObjectNode)({function:v,[p.Switch]:[{push:"function"}],[p.Case]:(0,We.FunctionCases)(d,b,_)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),r.register("loot_condition",(0,p.Mod)((0,p.ObjectNode)({condition:l,[p.Switch]:[{push:"condition"}],[p.Case]:(0,We.ConditionCases)(_)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),r.register("attribute_modifier",(0,p.Mod)((0,p.ObjectNode)({attribute:o({validator:"resource",params:{pool:"attribute"}}),name:o(),amount:t("number_provider"),operation:o({enum:["addition","multiply_base","multiply_total"]}),id:(0,p.Opt)(o({validator:"uuid"})),slot:(0,p.StringOrList)(o({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))}ve.initLootTableSchemas=ht;var Oe={};Object.defineProperty(Oe,"__esModule",{value:!0});Oe.initPackMcmetaSchemas=void 0;const T=k,Z=10;function vt(r,e){const t=T.Reference.bind(void 0,r),o=T.StringNode.bind(void 0,e);r.register("pack_mcmeta",(0,T.Mod)((0,T.ObjectNode)({pack:(0,T.Mod)((0,T.ObjectNode)({pack_format:(0,T.Mod)((0,T.NumberNode)({integer:!0,min:Z,max:Z}),{default:()=>Z,canUpdate:(d,n)=>n!==Z,update:()=>[{name:"pack_format",params:[Z],newValue:Z}]}),description:t("text_component")}),{default:()=>({pack_format:Z,description:""})}),filter:(0,T.Opt)((0,T.ObjectNode)({block:(0,T.ListNode)((0,T.ObjectNode)({namespace:(0,T.Opt)(o({validator:"regex_pattern"})),path:(0,T.Opt)(o({validator:"regex_pattern"}))}))}))}),{default:()=>({pack:{pack_format:Z,description:""}})}))}Oe.initPackMcmetaSchemas=vt;var ke={};Object.defineProperty(ke,"__esModule",{value:!0});ke.initPredicatesSchemas=void 0;const a=k;function Ot(r,e){const t=a.Reference.bind(void 0,r),o=a.StringNode.bind(void 0,e),d=(0,a.ChoiceNode)([{type:"string",node:o(),change:n=>typeof n=="boolean"||typeof n=="number"?n.toString():""},{type:"number",node:(0,a.NumberNode)(),change:n=>typeof n=="string"?parseInt(n):0},{type:"object",node:(0,a.ObjectNode)({min:(0,a.Opt)((0,a.NumberNode)({integer:!0})),max:(0,a.Opt)((0,a.NumberNode)({integer:!0}))}),change:n=>typeof n=="number"?{min:n,max:n}:{}},{type:"boolean",node:(0,a.BooleanNode)(),change:n=>n==="true"||n===1}]);r.register("item_predicate",(0,a.ObjectNode)({items:(0,a.Opt)((0,a.ListNode)(o({validator:"resource",params:{pool:"item"}}))),tag:(0,a.Opt)(o({validator:"resource",params:{pool:"$tag/item"}})),count:t("int_bounds"),durability:t("int_bounds"),potion:(0,a.Opt)(o({validator:"resource",params:{pool:"potion"}})),nbt:(0,a.Opt)(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:(0,a.Opt)((0,a.ListNode)(t("enchantment_predicate")))},{context:"item"})),r.register("enchantment_predicate",(0,a.ObjectNode)({enchantment:(0,a.Opt)(o({validator:"resource",params:{pool:"enchantment"}})),levels:t("int_bounds")},{context:"enchantment"})),r.register("block_predicate",(0,a.ObjectNode)({blocks:(0,a.Opt)((0,a.ListNode)(o({validator:"resource",params:{pool:"block"}}))),tag:(0,a.Opt)(o({validator:"resource",params:{pool:"$tag/block"}})),nbt:(0,a.Opt)(o({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:(0,a.Opt)((0,a.MapNode)(o(),d,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),r.register("fluid_predicate",(0,a.ObjectNode)({fluid:(0,a.Opt)(o({validator:"resource",params:{pool:"fluid"}})),tag:(0,a.Opt)(o({validator:"resource",params:{pool:"$tag/fluid"}})),state:(0,a.Opt)((0,a.MapNode)(o(),d))},{context:"fluid"})),r.register("location_predicate",(0,a.ObjectNode)({position:(0,a.Opt)((0,a.ObjectNode)({x:t("float_bounds"),y:t("float_bounds"),z:t("float_bounds")})),biome:(0,a.Opt)(o({validator:"resource",params:{pool:"$worldgen/biome"}})),structure:(0,a.Opt)(o({validator:"resource",params:{pool:"$worldgen/structure"}})),dimension:(0,a.Opt)(o({validator:"resource",params:{pool:"$dimension"}})),light:(0,a.Opt)((0,a.ObjectNode)({light:t("int_bounds")})),smokey:(0,a.Opt)((0,a.BooleanNode)()),block:(0,a.Opt)(t("block_predicate")),fluid:(0,a.Opt)(t("fluid_predicate"))},{context:"location"})),r.register("statistic_predicate",(0,a.ObjectNode)({type:o({validator:"resource",params:{pool:"stat_type"}}),stat:o(),value:t("int_bounds"),[a.Switch]:[{push:"type"}],[a.Case]:{"minecraft:mined":{stat:o({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:o({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:o({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:o({validator:"resource",params:{pool:"custom_stat"}})}}})),r.register("status_effect_predicate",(0,a.ObjectNode)({amplifier:t("int_bounds"),duration:t("int_bounds"),ambient:(0,a.Opt)((0,a.BooleanNode)()),visible:(0,a.Opt)((0,a.BooleanNode)())},{context:"status_effect"})),r.register("distance_predicate",(0,a.ObjectNode)({x:t("float_bounds"),y:t("float_bounds"),z:t("float_bounds"),absolute:t("float_bounds"),horizontal:t("float_bounds")},{context:"distance"})),r.register("entity_predicate",(0,a.ObjectNode)({type:(0,a.Opt)(o({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),type_specific:(0,a.Opt)((0,a.ObjectNode)({type:o({enum:["any","cat","fishing_hook","frog","lightning","player","slime"]}),[a.Switch]:[{push:"type"}],[a.Case]:{cat:{variant:(0,a.Opt)(o({validator:"resource",params:{pool:"cat_variant"}}))},fishing_hook:{in_open_water:(0,a.Opt)((0,a.BooleanNode)())},frog:{variant:(0,a.Opt)(o({validator:"resource",params:{pool:"frog_variant"}}))},lightning:{blocks_set_on_fire:(0,a.Opt)(t("int_bounds")),entity_struck:(0,a.Opt)(t("entity_predicate"))},player:{gamemode:(0,a.Opt)(o({enum:"gamemode"})),level:t("int_bounds"),advancements:(0,a.Opt)((0,a.MapNode)(o({validator:"resource",params:{pool:"$advancement"}}),(0,a.ChoiceNode)([{type:"boolean",node:(0,a.BooleanNode)(),change:()=>!0},{type:"object",node:(0,a.MapNode)(o(),(0,a.BooleanNode)())}]))),recipes:(0,a.Opt)((0,a.MapNode)(o({validator:"resource",params:{pool:"$recipe"}}),(0,a.BooleanNode)())),stats:(0,a.Opt)((0,a.ListNode)(t("statistic_predicate"))),looking_at:(0,a.Opt)(t("entity_predicate"))},slime:{size:t("int_bounds")}}})),nbt:(0,a.Opt)(o({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:(0,a.Opt)(o({validator:"team"})),location:(0,a.Opt)(t("location_predicate")),stepping_on:(0,a.Opt)(t("location_predicate")),distance:(0,a.Opt)(t("distance_predicate")),flags:(0,a.Opt)((0,a.ObjectNode)({is_on_fire:(0,a.Opt)((0,a.BooleanNode)()),is_sneaking:(0,a.Opt)((0,a.BooleanNode)()),is_sprinting:(0,a.Opt)((0,a.BooleanNode)()),is_swimming:(0,a.Opt)((0,a.BooleanNode)()),is_baby:(0,a.Opt)((0,a.BooleanNode)())})),equipment:(0,a.Opt)((0,a.MapNode)(o({enum:"slot"}),t("item_predicate"))),vehicle:(0,a.Opt)(t("entity_predicate")),passenger:(0,a.Opt)(t("entity_predicate")),targeted_entity:(0,a.Opt)(t("entity_predicate")),effects:(0,a.Opt)((0,a.MapNode)(o({validator:"resource",params:{pool:"mob_effect"}}),t("status_effect_predicate")))},{context:"entity"})),r.register("damage_source_predicate",(0,a.ObjectNode)({is_explosion:(0,a.Opt)((0,a.BooleanNode)()),is_fire:(0,a.Opt)((0,a.BooleanNode)()),is_magic:(0,a.Opt)((0,a.BooleanNode)()),is_projectile:(0,a.Opt)((0,a.BooleanNode)()),is_lightning:(0,a.Opt)((0,a.BooleanNode)()),bypasses_armor:(0,a.Opt)((0,a.BooleanNode)()),bypasses_invulnerability:(0,a.Opt)((0,a.BooleanNode)()),bypasses_magic:(0,a.Opt)((0,a.BooleanNode)()),source_entity:(0,a.Opt)(t("entity_predicate")),direct_entity:(0,a.Opt)(t("entity_predicate"))},{context:"damage_source"})),r.register("damage_predicate",(0,a.ObjectNode)({dealt:t("float_bounds"),taken:t("float_bounds"),blocked:(0,a.Opt)((0,a.BooleanNode)()),source_entity:(0,a.Opt)(t("entity_predicate")),type:(0,a.Opt)(t("damage_source_predicate"))},{context:"damage"}))}ke.initPredicatesSchemas=Ot;var xe={};Object.defineProperty(xe,"__esModule",{value:!0});xe.initRecipeSchemas=void 0;const u=k;function kt(r,e){const t=u.Reference.bind(void 0,r),o=u.StringNode.bind(void 0,e);r.register("recipe",(0,u.Mod)((0,u.ObjectNode)({type:o({validator:"resource",params:{pool:"recipe_serializer"}}),[u.Switch]:[{push:"type"}],[u.Case]:{"minecraft:crafting_shaped":{group:(0,u.Opt)(o({enum:"recipe_group",additional:!0})),pattern:(0,u.ListNode)(o()),key:(0,u.MapNode)(o(),t("recipe_ingredient")),result:t("recipe_result")},"minecraft:crafting_shapeless":{group:(0,u.Opt)(o()),ingredients:(0,u.ListNode)(t("recipe_ingredient")),result:t("recipe_result")},"minecraft:smelting":{group:(0,u.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:(0,u.Opt)((0,u.NumberNode)()),cookingtime:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:(0,u.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:(0,u.Opt)((0,u.NumberNode)()),cookingtime:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:(0,u.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:(0,u.Opt)((0,u.NumberNode)()),cookingtime:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:(0,u.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:(0,u.Opt)((0,u.NumberNode)()),cookingtime:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:(0,u.Opt)(o()),ingredient:t("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),count:(0,u.NumberNode)({integer:!0})},"minecraft:smithing":{group:(0,u.Opt)(o()),base:t("recipe_ingredient_object"),addition:t("recipe_ingredient_object"),result:t("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),r.register("recipe_ingredient",(0,u.Mod)((0,u.ChoiceNode)([{type:"object",node:t("recipe_ingredient_object"),change:d=>d[0]},{type:"list",node:(0,u.ListNode)(t("recipe_ingredient_object")),change:d=>[d]}]),{default:()=>({item:"minecraft:stone"})})),r.register("recipe_ingredient_object",(0,u.Mod)((0,u.ObjectNode)({item:(0,u.Opt)(o({validator:"resource",params:{pool:"item"}})),tag:(0,u.Opt)(o({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),r.register("recipe_result",(0,u.Mod)((0,u.ObjectNode)({item:o({validator:"resource",params:{pool:"item"}}),count:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))}xe.initRecipeSchemas=kt;var we={};Object.defineProperty(we,"__esModule",{value:!0});we.initTagsSchemas=void 0;const H=k;function xt(r,e){const t=H.StringNode.bind(void 0,e),o=d=>(0,H.Mod)((0,H.ObjectNode)({replace:(0,H.Opt)((0,H.BooleanNode)()),values:(0,H.ListNode)((0,H.ChoiceNode)([{type:"string",node:t({validator:"resource",params:{pool:d,allowTag:!0}}),change:n=>n.id},{type:"object",node:(0,H.ObjectNode)({id:t({validator:"resource",params:{pool:d,allowTag:!0,allowUnknown:!0}}),required:(0,H.BooleanNode)()}),change:n=>({id:n})}]))},{context:"tag"}),{default:()=>({values:[]})});r.register("block_tag",o("block")),r.register("entity_type_tag",o("entity_type")),r.register("fluid_tag",o("fluid")),r.register("function_tag",o("$function")),r.register("game_event_tag",o("game_event")),r.register("item_tag",o("item")),r.register("advancement_tag",o("$advancement")),r.register("dimension_tag",o("$dimension")),r.register("dimension_type_tag",o("$dimension_type")),r.register("function_tag",o("$function")),r.register("item_modifier_tag",o("$item_modifier")),r.register("loot_table_tag",o("$loot_table")),r.register("predicate_tag",o("$predicate")),r.register("recipe_tag",o("$recipe")),r.register("structure_tag",o("$structure")),r.register("biome_tag",o("$worldgen/biome")),r.register("configured_carver_tag",o("$worldgen/configured_carver")),r.register("configured_feature_tag",o("$worldgen/configured_feature")),r.register("structure_tag",o("$worldgen/structure")),r.register("configured_surface_builder_tag",o("$worldgen/configured_surface_builder")),r.register("density_function_tag",o("$worldgen/density_function")),r.register("flat_level_generator_preset_tag",o("$worldgen/flat_level_generator_preset")),r.register("noise_tag",o("$worldgen/noise")),r.register("noise_settings_tag",o("$worldgen/noise_settings")),r.register("placed_feature_tag",o("$worldgen/placed_feature")),r.register("processor_list_tag",o("$worldgen/processor_list")),r.register("structure_set_tag",o("$worldgen/structure_set")),r.register("template_pool_tag",o("$worldgen/template_pool")),r.register("world_preset_tag",o("$worldgen/world_preset"))}we.initTagsSchemas=xt;var Se={};Object.defineProperty(Se,"__esModule",{value:!0});Se.initTextComponentSchemas=void 0;const m=k;function wt(r,e){const t=m.Reference.bind(void 0,r),o=m.StringNode.bind(void 0,e),d=l=>{var v;return l instanceof Array?d(l[0]):(v=l==null?void 0:l.text)!==null&&v!==void 0?v:typeof l=="object"?"":l==null?void 0:l.toString()};r.register("text_component",(0,m.Mod)((0,m.ChoiceNode)([{type:"object",node:t("text_component_object"),change:l=>l instanceof Array?typeof l[0]=="object"?l[0]:{text:d(l[0])}:typeof l=="object"?l:{text:d(l)}},{type:"list",node:t("text_component_list"),change:l=>[l]},{type:"string",priority:1,node:o(),change:d},{type:"number",node:(0,m.NumberNode)(),change:l=>{const v=parseFloat(d(l));return isFinite(v)?v:l?1:0}},{type:"boolean",node:(0,m.BooleanNode)(),change:l=>{const v=d(l);return v==="true"||v==="false"?v==="true":!!v}}],{context:"text_component"}),{default:()=>({text:""})}));const n={color:(0,m.Opt)(o()),font:(0,m.Opt)(o()),bold:(0,m.Opt)((0,m.BooleanNode)()),italic:(0,m.Opt)((0,m.BooleanNode)()),underlined:(0,m.Opt)((0,m.BooleanNode)()),strikethrough:(0,m.Opt)((0,m.BooleanNode)()),obfuscated:(0,m.Opt)((0,m.BooleanNode)()),insertion:(0,m.Opt)(o())};r.register("text_style",(0,m.ObjectNode)(g({},n),{context:"text_component_object"}));const c=W(g({},n),{clickEvent:(0,m.Opt)((0,m.ObjectNode)({action:o({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[m.Switch]:[{push:"action"}],[m.Case]:{change_page:{value:o()},copy_to_clipboard:{value:o()},open_file:{value:o()},open_url:{value:o()},run_command:{value:o({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:o({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:(0,m.Opt)((0,m.ObjectNode)({action:o({enum:["show_text","show_item","show_entity"]}),[m.Switch]:[{push:"action"}],[m.Case]:{show_text:{value:(0,m.Opt)(t("text_component")),contents:(0,m.Opt)(t("text_component"))},show_item:{value:(0,m.Opt)(o({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:(0,m.Opt)((0,m.ObjectNode)({id:o({validator:"resource",params:{pool:"item"}}),count:(0,m.Opt)((0,m.NumberNode)({integer:!0})),tag:(0,m.Opt)(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:(0,m.Opt)((0,m.ObjectNode)({name:(0,m.Opt)(o()),type:(0,m.Opt)(o()),id:(0,m.Opt)(o())})),contents:(0,m.Opt)((0,m.Mod)((0,m.ObjectNode)({name:(0,m.Opt)(t("text_component")),type:o({validator:"resource",params:{pool:"entity_type"}}),id:o({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:(0,m.Opt)(t("text_component_list"))});r.register("text_component_object",(0,m.Mod)((0,m.ChoiceNode)([{type:"text",match:l=>typeof l=="object",change:l=>({text:""}),priority:-1,node:(0,m.ObjectNode)(g({text:o()},c))},{type:"translation",match:l=>(l==null?void 0:l.translate)!==void 0,change:l=>({translate:""}),node:(0,m.ObjectNode)(g({translate:o(),with:(0,m.Opt)(t("text_component_list"))},c))},{type:"score",match:l=>(l==null?void 0:l.score)!==void 0,change:l=>({score:{}}),node:(0,m.ObjectNode)(g({score:(0,m.ObjectNode)({name:o({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:o({validator:"objective"}),value:(0,m.Opt)(o())})},c))},{type:"selector",match:l=>(l==null?void 0:l.selector)!==void 0,change:l=>({selector:""}),node:(0,m.ObjectNode)(g({selector:o({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:(0,m.Opt)(t("text_component"))},c))},{type:"keybind",match:l=>(l==null?void 0:l.keybind)!==void 0,change:l=>({keybind:""}),node:(0,m.ObjectNode)(g({keybind:o({enum:"keybind",additional:!0})},c))},{type:"nbt",match:l=>(l==null?void 0:l.nbt)!==void 0,change:l=>({nbt:""}),node:(0,m.ObjectNode)(g({nbt:o({validator:"nbt_path"}),block:(0,m.Opt)(o({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:(0,m.Opt)(o({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:(0,m.Opt)(o({validator:"resource",params:{pool:"$storage"}})),interpret:(0,m.Opt)((0,m.BooleanNode)()),separator:(0,m.Opt)(t("text_component"))},c))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),r.register("text_component_list",(0,m.Mod)((0,m.ListNode)(t("text_component")),{default:()=>[{text:""}]}))}Se.initTextComponentSchemas=wt;var je={},qe={};(function(r){Object.defineProperty(r,"__esModule",{value:!0}),r.initBiomeSchemas=r.MobCategorySpawnSettings=void 0;const e=k,t=R;function o(d,n){const c=e.StringNode.bind(void 0,n);r.MobCategorySpawnSettings=(0,e.Mod)((0,e.ListNode)((0,e.ObjectNode)({type:c({validator:"resource",params:{pool:"entity_type"}}),weight:(0,e.NumberNode)({integer:!0}),minCount:(0,e.NumberNode)({integer:!0}),maxCount:(0,e.NumberNode)({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]}),d.register("biome",(0,e.Mod)((0,e.ObjectNode)({temperature:(0,e.NumberNode)(),downfall:(0,e.NumberNode)(),precipitation:c({enum:["none","rain","snow"]}),temperature_modifier:(0,e.Opt)(c({enum:["none","frozen"]})),creature_spawn_probability:(0,e.Opt)((0,e.NumberNode)({min:0,max:1})),effects:(0,e.ObjectNode)({sky_color:(0,e.NumberNode)({color:!0}),fog_color:(0,e.NumberNode)({color:!0}),water_color:(0,e.NumberNode)({color:!0}),water_fog_color:(0,e.NumberNode)({color:!0}),grass_color:(0,e.Opt)((0,e.NumberNode)({color:!0})),foliage_color:(0,e.Opt)((0,e.NumberNode)({color:!0})),grass_color_modifier:(0,e.Opt)(c({enum:["none","dark_forest","swamp"]})),ambient_sound:(0,e.Opt)(c()),mood_sound:(0,e.Opt)((0,e.ObjectNode)({sound:c(),tick_delay:(0,e.NumberNode)({integer:!0}),block_search_extent:(0,e.NumberNode)({integer:!0}),offset:(0,e.NumberNode)()})),additions_sound:(0,e.Opt)((0,e.ObjectNode)({sound:c(),tick_chance:(0,e.NumberNode)({min:0,max:1})})),music:(0,e.Opt)((0,e.ObjectNode)({sound:c(),min_delay:(0,e.NumberNode)({integer:!0,min:0}),max_delay:(0,e.NumberNode)({integer:!0,min:0}),replace_current_music:(0,e.BooleanNode)()})),particle:(0,e.Opt)((0,e.ObjectNode)({options:(0,e.ObjectNode)({type:c()}),probability:(0,e.NumberNode)({min:0,max:1})}))}),spawners:(0,e.MapNode)(c({enum:"mob_category"}),r.MobCategorySpawnSettings),spawn_costs:(0,e.MapNode)(c({validator:"resource",params:{pool:"entity_type"}}),(0,e.Mod)((0,e.ObjectNode)({energy_budget:(0,e.NumberNode)(),charge:(0,e.NumberNode)()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:(0,e.MapNode)(c({enum:["air","liquid"]}),(0,e.Mod)((0,t.Tag)({resource:"$worldgen/configured_carver",inlineSchema:"configured_carver"}),{default:()=>["minecraft:cave"]})),features:(0,e.ListNode)((0,e.Mod)((0,t.Tag)({resource:"$worldgen/placed_feature",inlineSchema:"placed_feature"}),{category:()=>"predicate"}),{maxLength:11})},{context:"biome"}),{default:()=>({temperature:.8,downfall:.4,precipitation:"rain",category:"plains",effects:{sky_color:7907327,fog_color:12638463,water_color:4159204,water_fog_color:329011}})}))}r.initBiomeSchemas=o})(qe);var Me={};Object.defineProperty(Me,"__esModule",{value:!0});Me.initCarverSchemas=void 0;const $=k,K=R;function St(r,e){const t=$.Reference.bind(void 0,r),o=$.StringNode.bind(void 0,e),d={vertical_rotation:(0,K.FloatProvider)(),shape:(0,$.ObjectNode)({distance_factor:(0,K.FloatProvider)(),thickness:(0,K.FloatProvider)(),width_smoothness:(0,$.NumberNode)({integer:!0,min:0}),horizontal_radius_factor:(0,K.FloatProvider)(),vertical_radius_default_factor:(0,$.NumberNode)(),vertical_radius_center_factor:(0,$.NumberNode)()})},n={horizontal_radius_multiplier:(0,K.FloatProvider)(),vertical_radius_multiplier:(0,K.FloatProvider)(),floor_level:(0,K.FloatProvider)({min:-1,max:1})};r.register("configured_carver",(0,$.Mod)((0,$.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/carver"}}),config:(0,$.ObjectNode)({probability:(0,$.NumberNode)({min:0,max:1}),y:t("height_provider"),yScale:(0,K.FloatProvider)(),lava_level:t("vertical_anchor"),replaceable:(0,K.Tag)({resource:"block"}),debug_settings:(0,$.Opt)((0,$.ObjectNode)({debug_mode:(0,$.Opt)((0,$.BooleanNode)()),air_state:(0,$.Opt)(t("block_state")),water_state:(0,$.Opt)(t("block_state")),lava_state:(0,$.Opt)(t("block_state")),barrier_state:(0,$.Opt)(t("block_state"))})),[$.Switch]:["pop",{push:"type"}],[$.Case]:{"minecraft:canyon":d,"minecraft:cave":n,"minecraft:nether_cave":n}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))}Me.initCarverSchemas=St;var Ce={};Object.defineProperty(Ce,"__esModule",{value:!0});Ce.initDecoratorSchemas=void 0;const B=k,de=R;function jt(r,e){const t=B.Reference.bind(void 0,r),o=B.StringNode.bind(void 0,e);r.register("decorator",(0,B.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/placement_modifier_type"}}),[B.Switch]:[{push:"type"}],[B.Case]:{"minecraft:block_predicate_filter":{predicate:t("block_predicate_worldgen")},"minecraft:carving_mask":{step:o({enum:"generation_step"})},"minecraft:rarity_filter":{chance:(0,B.NumberNode)({integer:!0,min:0})},"minecraft:count":{count:(0,de.IntProvider)({min:0,max:256})},"minecraft:count_on_every_layer":{count:(0,de.IntProvider)({min:0,max:256})},"minecraft:noise_threshold_count":{noise_level:(0,B.NumberNode)(),below_noise:(0,B.NumberNode)({integer:!0}),above_noise:(0,B.NumberNode)({integer:!0})},"minecraft:noise_based_count":{noise_to_count_ratio:(0,B.NumberNode)({integer:!0}),noise_factor:(0,B.NumberNode)(),noise_offset:(0,B.Opt)((0,B.NumberNode)())},"minecraft:environment_scan":{direction_of_search:o({enum:["up","down"]}),max_steps:(0,B.NumberNode)({integer:!0,min:1,max:32}),target_condition:t("block_predicate_worldgen"),allowed_search_condition:(0,B.Opt)(t("block_predicate_worldgen"))},"minecraft:heightmap":{heightmap:o({enum:"heightmap_type"})},"minecraft:height_range":{height:t("height_provider")},"minecraft:random_offset":{xz_spread:(0,de.IntProvider)({min:-16,max:16}),y_spread:(0,de.IntProvider)({min:-16,max:16})},"minecraft:surface_relative_threshold_filter":{heightmap:o({enum:"heightmap_type"}),min_inclusive:(0,B.Opt)((0,B.NumberNode)({integer:!0})),max_inclusive:(0,B.Opt)((0,B.NumberNode)({integer:!0}))},"minecraft:surface_water_depth_filter":{max_water_depth:(0,B.NumberNode)({integer:!0})}}},{context:"decorator",category:"predicate"}))}Ce.initDecoratorSchemas=jt;var Ie={};(function(r){Object.defineProperty(r,"__esModule",{value:!0}),r.initDensityFunctionSchemas=r.DensityFunction=void 0;const e=k;function t(o,d){const n=e.StringNode.bind(void 0,d),c=e.Reference.bind(void 0,o);r.DensityFunction=(0,e.Mod)((0,e.ChoiceNode)([{type:"number",node:(0,e.NumberNode)(),change:()=>0},{type:"string",priority:1,node:n({validator:"resource",params:{pool:"$worldgen/density_function"}}),change:()=>{}},{type:"object",node:c("density_function"),change:()=>({})}],{choiceContext:"density_function"}),{default:()=>0});const l=(0,e.ChoiceNode)([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/noise"}}),change:()=>{}},{type:"object",node:c("noise_parameters")}],{choiceContext:"noise_parameters"}),v=(0,e.NumberNode)({min:-1e6,max:1e6}),_=(0,e.NumberNode)({integer:!0,min:-2032*2,max:2031*2});o.register("density_function",(0,e.Mod)((0,e.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/density_function_type"}}),[e.Switch]:[{push:"type"}],[e.Case]:{"minecraft:abs":{argument:r.DensityFunction},"minecraft:add":{argument1:r.DensityFunction,argument2:r.DensityFunction},"minecraft:blend_density":{argument:r.DensityFunction},"minecraft:cache_2d":{argument:r.DensityFunction},"minecraft:cache_all_in_cell":{argument:r.DensityFunction},"minecraft:cache_once":{argument:r.DensityFunction},"minecraft:clamp":{input:r.DensityFunction,min:v,max:v},"minecraft:constant":{argument:(0,e.NumberNode)()},"minecraft:cube":{argument:r.DensityFunction},"minecraft:flat_cache":{argument:r.DensityFunction},"minecraft:half_negative":{argument:r.DensityFunction},"minecraft:interpolated":{argument:r.DensityFunction},"minecraft:max":{argument1:r.DensityFunction,argument2:r.DensityFunction},"minecraft:min":{argument1:r.DensityFunction,argument2:r.DensityFunction},"minecraft:mul":{argument1:r.DensityFunction,argument2:r.DensityFunction},"minecraft:noise":{noise:l,xz_scale:(0,e.NumberNode)(),y_scale:(0,e.NumberNode)()},"minecraft:old_blended_noise":{xz_scale:(0,e.NumberNode)(),y_scale:(0,e.NumberNode)(),xz_factor:(0,e.NumberNode)(),y_factor:(0,e.NumberNode)(),smear_scale_multiplier:(0,e.NumberNode)({min:1,max:8})},"minecraft:quarter_negative":{argument:r.DensityFunction},"minecraft:range_choice":{input:r.DensityFunction,min_inclusive:v,max_exclusive:v,when_in_range:r.DensityFunction,when_out_of_range:r.DensityFunction},"minecraft:shift":{argument:r.DensityFunction},"minecraft:shift_a":{argument:r.DensityFunction},"minecraft:shift_b":{argument:r.DensityFunction},"minecraft:shifted_noise":{noise:l,xz_scale:(0,e.NumberNode)(),y_scale:(0,e.NumberNode)(),shift_x:r.DensityFunction,shift_y:r.DensityFunction,shift_z:r.DensityFunction},"minecraft:slide":{argument:r.DensityFunction},"minecraft:spline":{spline:c("cubic_spline")},"minecraft:square":{argument:r.DensityFunction},"minecraft:squeeze":{argument:r.DensityFunction},"minecraft:weird_scaled_sampler":{rarity_value_mapper:n({enum:["type_1","type_2"]}),noise:l,input:r.DensityFunction},"minecraft:y_clamped_gradient":{from_y:_,to_y:_,from_value:v,to_value:v}}},{context:"density_function",disableSwitchContext:!0}),{default:()=>({type:"minecraft:noise",noise:"minecraft:cave_entrance",xz_scale:.75,y_scale:.5})})),o.register("cubic_spline",(0,e.Mod)((0,e.ChoiceNode)([{type:"number",node:(0,e.NumberNode)()},{type:"object",node:(0,e.ObjectNode)({coordinate:r.DensityFunction,points:(0,e.ListNode)((0,e.ObjectNode)({location:(0,e.NumberNode)(),derivative:(0,e.NumberNode)(),value:c("cubic_spline")}))},{category:"function"})}],{context:"terrain_spline",choiceContext:"terrain_spline"}),{default:()=>0}))}r.initDensityFunctionSchemas=t})(Ie);var Pe={},Q={};Object.defineProperty(Q,"__esModule",{value:!0});Q.initProcessorListSchemas=Q.Processors=void 0;const h=k,Mt=R;function Ct(r,e){const t=h.Reference.bind(void 0,r),o=h.StringNode.bind(void 0,e);Q.Processors=(0,h.ChoiceNode)([{type:"string",node:o({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:n=>{}},{type:"object",node:t("processor_list"),change:n=>({processors:[{processor_type:"minecraft:nop"}]})}]),r.register("processor_list",(0,h.Mod)((0,h.ObjectNode)({processors:(0,h.ListNode)(t("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"}}]}]})})),r.register("processor",(0,h.Mod)((0,h.ObjectNode)({processor_type:o({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[h.Switch]:[{push:"processor_type"}],[h.Case]:{"minecraft:block_age":{mossiness:(0,h.NumberNode)()},"minecraft:block_ignore":{blocks:(0,h.ListNode)(t("block_state"))},"minecraft:block_rot":{integrity:(0,h.NumberNode)({min:0,max:1}),rottable_blocks:(0,h.Opt)((0,Mt.Tag)({resource:"block"}))},"minecraft:gravity":{heightmap:o({enum:"heightmap_type"}),offset:(0,h.NumberNode)({integer:!0})},"minecraft:protected_blocks":{value:o({validator:"resource",params:{pool:"block",requireTag:!0}})},"minecraft:rule":{rules:(0,h.ListNode)(t("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"}}]})})),r.register("processor_rule",(0,h.Mod)((0,h.ObjectNode)({position_predicate:(0,h.Opt)(t("pos_rule_test")),location_predicate:t("rule_test"),input_predicate:t("rule_test"),output_state:t("block_state"),output_nbt:(0,h.Opt)(o({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 d={min_dist:(0,h.Opt)((0,h.NumberNode)({min:0,max:255,integer:!0})),max_dist:(0,h.Opt)((0,h.NumberNode)({min:0,max:255,integer:!0})),min_chance:(0,h.Opt)((0,h.NumberNode)({min:0,max:1})),max_chance:(0,h.Opt)((0,h.NumberNode)({min:0,max:1}))};r.register("pos_rule_test",(0,h.ObjectNode)({predicate_type:o({validator:"resource",params:{pool:"pos_rule_test"}}),[h.Switch]:[{push:"predicate_type"}],[h.Case]:{"minecraft:axis_aligned_linear_pos":g({axis:o({enum:["x","y","z"]})},d),"minecraft:linear_pos":d}},{context:"pos_rule_test",disableSwitchContext:!0})),r.register("rule_test",(0,h.ObjectNode)({predicate_type:o({validator:"resource",params:{pool:"rule_test"}}),[h.Switch]:[{push:"predicate_type"}],[h.Case]:{"minecraft:block_match":{block:o({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:t("block_state")},"minecraft:random_block_match":{block:o({validator:"resource",params:{pool:"block"}}),probability:(0,h.NumberNode)({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:t("block_state"),probability:(0,h.NumberNode)({min:0,max:1})},"minecraft:tag_match":{tag:o({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))}Q.initProcessorListSchemas=Ct;Object.defineProperty(Pe,"__esModule",{value:!0});Pe.initFeatureSchemas=void 0;const i=k,f=R,Ue=Q;function Pt(r,e){const t=i.Reference.bind(void 0,r),o=i.StringNode.bind(void 0,e),d=(0,i.ChoiceNode)([{type:"string",node:o({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:t("configured_feature")}],{choiceContext:"feature"}),n=(0,i.ChoiceNode)([{type:"string",node:o({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},{type:"object",node:t("placed_feature")}],{choiceContext:"placed_feature"}),c={tries:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:1})),xz_spread:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0})),y_spread:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0})),feature:n},l={cap_provider:t("block_state_provider"),stem_provider:t("block_state_provider"),foliage_radius:(0,i.Opt)((0,i.NumberNode)({integer:!0}))},v=(0,i.ObjectNode)({target:t("rule_test"),state:t("block_state")}),_={size:(0,i.NumberNode)({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:(0,i.NumberNode)({min:0,max:1}),targets:(0,i.ListNode)(v)},b={surface:o({enum:"cave_surface"}),depth:(0,f.IntProvider)({min:1,max:128}),vertical_range:(0,i.NumberNode)({integer:!0,min:1,max:256}),extra_bottom_block_chance:(0,i.NumberNode)({min:0,max:1}),extra_edge_column_chance:(0,i.NumberNode)({min:0,max:1}),vegetation_chance:(0,i.NumberNode)({min:0,max:1}),xz_radius:(0,f.IntProvider)(),replaceable:o({validator:"resource",params:{pool:"block",requireTag:!0}}),ground_state:t("block_state_provider"),vegetation_feature:n};r.register("configured_feature",(0,i.Mod)((0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/feature"}}),config:(0,i.ObjectNode)({[i.Switch]:["pop",{push:"type"}],[i.Case]:{"minecraft:bamboo":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:basalt_columns":{reach:(0,f.IntProvider)({min:0,max:3}),height:(0,f.IntProvider)({min:1,max:10})},"minecraft:block_column":{direction:o({enum:["up","down","north","east","south","west"]}),allowed_placement:t("block_predicate_worldgen"),prioritize_tip:(0,i.BooleanNode)(),layers:(0,i.ListNode)((0,i.ObjectNode)({height:(0,f.IntProvider)({min:0}),provider:t("block_state_provider")}))},"minecraft:block_pile":{state_provider:t("block_state_provider")},"minecraft:delta_feature":{contents:t("block_state"),rim:t("block_state"),size:(0,f.IntProvider)({min:0,max:16}),rim_size:(0,f.IntProvider)({min:0,max:16})},"minecraft:disk":{state_provider:t("rule_based_block_state_provider"),target:t("block_predicate_worldgen"),radius:(0,f.IntProvider)({min:0,max:8}),half_height:(0,i.NumberNode)({integer:!0,min:0,max:4})},"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:(0,i.NumberNode)({integer:!0,min:1,max:512}),height:(0,f.IntProvider)({min:0,max:128}),radius:(0,f.IntProvider)({min:0,max:128}),max_stalagmite_stalactite_height_diff:(0,i.NumberNode)({integer:!0,min:0,max:64}),height_deviation:(0,i.NumberNode)({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:(0,f.IntProvider)({min:0,max:128}),density:(0,f.FloatProvider)({min:0,max:2}),wetness:(0,f.FloatProvider)({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:(0,i.NumberNode)({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:(0,i.NumberNode)({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:(0,i.NumberNode)({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:(0,i.BooleanNode)(),exit:(0,i.Opt)(t("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:(0,i.Opt)((0,i.BooleanNode)()),crystal_beam_target:(0,i.Opt)(t("block_pos")),spikes:(0,i.ListNode)((0,i.ObjectNode)({centerX:(0,i.Opt)((0,i.NumberNode)({integer:!0})),centerZ:(0,i.Opt)((0,i.NumberNode)({integer:!0})),radius:(0,i.Opt)((0,i.NumberNode)({integer:!0})),height:(0,i.Opt)((0,i.NumberNode)({integer:!0})),guarded:(0,i.Opt)((0,i.BooleanNode)())}))},"minecraft:fill_layer":{state:t("block_state"),height:(0,i.NumberNode)({integer:!0,min:0,max:255})},"minecraft:flower":c,"minecraft:forest_rock":{state:t("block_state")},"minecraft:fossil":{max_empty_corners_allowed:(0,i.NumberNode)({integer:!0,min:0,max:7}),fossil_structures:(0,i.ListNode)(o({validator:"resource",params:{pool:"$structure"}})),overlay_structures:(0,i.ListNode)(o({validator:"resource",params:{pool:"$structure"}})),fossil_processors:Ue.Processors,overlay_processors:Ue.Processors},"minecraft:geode":{blocks:(0,i.ObjectNode)({filling_provider:t("block_state_provider"),inner_layer_provider:t("block_state_provider"),alternate_inner_layer_provider:t("block_state_provider"),middle_layer_provider:t("block_state_provider"),outer_layer_provider:t("block_state_provider"),inner_placements:(0,i.ListNode)(t("block_state")),cannot_replace:o({validator:"resource",params:{pool:"block",requireTag:!0}}),invalid_blocks:o({validator:"resource",params:{pool:"block",requireTag:!0}})}),layers:(0,i.ObjectNode)({filling:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50})),inner_layer:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50})),middle_layer:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50})),outer_layer:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50}))}),crack:(0,i.ObjectNode)({generate_crack_chance:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),base_crack_size:(0,i.Opt)((0,i.NumberNode)({min:0,max:5})),crack_point_offset:(0,i.Opt)((0,i.NumberNode)({min:0,max:10}))}),noise_multiplier:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),use_potential_placements_chance:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),use_alternate_layer0_chance:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),placements_require_layer0_alternate:(0,i.Opt)((0,i.BooleanNode)()),outer_wall_distance:(0,i.Opt)((0,f.IntProvider)({min:1,max:20})),distribution_points:(0,i.Opt)((0,f.IntProvider)({min:1,max:20})),point_offset:(0,i.Opt)((0,f.IntProvider)({min:0,max:10})),min_gen_offset:(0,i.Opt)((0,i.NumberNode)({integer:!0})),max_gen_offset:(0,i.Opt)((0,i.NumberNode)({integer:!0})),invalid_blocks_threshold:(0,i.NumberNode)({integer:!0})},"minecraft:multiface_growth":{block:(0,i.Opt)(o({validator:"resource",params:{pool:["minecraft:glow_lichen","minecraft:sculk_vein"]}})),search_range:(0,i.Opt)((0,i.NumberNode)({min:1,max:64,integer:!0})),chance_of_spreading:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),can_place_on_floor:(0,i.Opt)((0,i.BooleanNode)()),can_place_on_ceiling:(0,i.Opt)((0,i.BooleanNode)()),can_place_on_wall:(0,i.Opt)((0,i.BooleanNode)()),can_be_placed_on:(0,f.Tag)({resource:"block"})},"minecraft:huge_brown_mushroom":l,"minecraft:huge_fungus":{hat_state:t("block_state"),decor_state:t("block_state"),stem_state:t("block_state"),valid_base_block:t("block_state"),planted:(0,i.Opt)((0,i.BooleanNode)())},"minecraft:huge_red_mushroom":l,"minecraft:iceberg":{state:t("block_state")},"minecraft:lake":{fluid:t("block_state_provider"),barrier:t("block_state_provider")},"minecraft:large_dripstone":{floor_to_ceiling_search_range:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:1,max:512})),column_radius:(0,f.IntProvider)({min:0,max:60}),height_scale:(0,f.FloatProvider)({min:0,max:20}),max_column_radius_to_cave_height_ratio:(0,i.NumberNode)({min:0,max:1}),stalactite_bluntness:(0,f.FloatProvider)({min:.1,max:10}),stalagmite_bluntness:(0,f.FloatProvider)({min:.1,max:10}),wind_speed:(0,f.FloatProvider)({min:0,max:2}),min_radius_for_wind:(0,i.NumberNode)({integer:!0,min:0,max:100}),min_bluntness_for_wind:(0,i.NumberNode)({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:t("block_state_provider"),spread_width:(0,i.NumberNode)({integer:!0,min:1}),spread_height:(0,i.NumberNode)({integer:!0,min:1})},"minecraft:netherrack_replace_blobs":{state:t("block_state"),target:t("block_state"),radius:(0,f.IntProvider)({min:0,max:12})},"minecraft:no_bonemeal_flower":c,"minecraft:ore":_,"minecraft:pointed_dripstone":{chance_of_taller_dripstone:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),chance_of_directional_spread:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),chance_of_spread_radius2:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),chance_of_spread_radius3:(0,i.Opt)((0,i.NumberNode)({min:0,max:1}))},"minecraft:random_patch":c,"minecraft:random_boolean_selector":{feature_false:n,feature_true:n},"minecraft:random_selector":{features:(0,i.ListNode)((0,i.ObjectNode)({chance:(0,i.NumberNode)({min:0,max:1}),feature:n})),default:n},"minecraft:replace_single_block":{targets:(0,i.ListNode)(v)},"minecraft:root_system":{required_vertical_space_for_tree:(0,i.NumberNode)({integer:!0,min:1,max:64}),root_radius:(0,i.NumberNode)({integer:!0,min:1,max:64}),root_placement_attempts:(0,i.NumberNode)({integer:!0,min:1,max:256}),root_column_max_height:(0,i.NumberNode)({integer:!0,min:1,max:4096}),hanging_root_radius:(0,i.NumberNode)({integer:!0,min:1,max:64}),hanging_roots_vertical_span:(0,i.NumberNode)({integer:!0,min:0,max:16}),hanging_root_placement_attempts:(0,i.NumberNode)({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:(0,i.NumberNode)({integer:!0,min:1,max:64}),root_replaceable:o({validator:"resource",params:{pool:"block",requireTag:!0}}),root_state_provider:t("block_state_provider"),hanging_root_state_provider:t("block_state_provider"),allowed_tree_position:t("block_predicate_worldgen"),feature:n},"minecraft:scattered_ore":_,"minecraft:sculk_patch":{charge_count:(0,i.NumberNode)({integer:!0,min:1,max:32}),amount_per_charge:(0,i.NumberNode)({integer:!0,min:1,max:500}),spread_attempts:(0,i.NumberNode)({integer:!0,min:1,max:64}),growth_rounds:(0,i.NumberNode)({integer:!0,min:0,max:8}),spread_rounds:(0,i.NumberNode)({integer:!0,min:0,max:8}),extra_rare_growths:(0,f.IntProvider)(),catalyst_chance:(0,i.NumberNode)({min:0,max:1})},"minecraft:sea_pickle":{count:(0,f.IntProvider)({min:0,max:256})},"minecraft:seagrass":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:simple_block":{to_place:t("block_state_provider")},"minecraft:simple_random_selector":{features:(0,f.Tag)({resource:"$worldgen/placed_feature",inlineSchema:"placed_feature"})},"minecraft:spring_feature":{state:t("fluid_state"),rock_count:(0,i.NumberNode)({integer:!0}),hole_count:(0,i.NumberNode)({integer:!0}),requires_block_below:(0,i.BooleanNode)(),valid_blocks:(0,f.Tag)({resource:"block"})},"minecraft:tree":{ignore_vines:(0,i.Opt)((0,i.BooleanNode)()),force_dirt:(0,i.Opt)((0,i.BooleanNode)()),minimum_size:t("feature_size"),dirt_provider:t("block_state_provider"),trunk_provider:t("block_state_provider"),foliage_provider:t("block_state_provider"),root_placer:(0,i.Opt)((0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/root_placer_type"}}),root_provider:t("block_state_provider"),trunk_offset_y:(0,f.IntProvider)(),above_root_placement:(0,i.Opt)((0,i.ObjectNode)({above_root_provider:t("block_state_provider"),above_root_placement_chance:(0,i.NumberNode)({min:0,max:1})})),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:mangrove_root_placer":{mangrove_root_placement:(0,i.ObjectNode)({max_root_width:(0,i.NumberNode)({integer:!0,min:1,max:12}),max_root_length:(0,i.NumberNode)({integer:!0,min:1,max:64}),random_skew_chance:(0,i.NumberNode)({min:0,max:1}),can_grow_through:(0,f.Tag)({resource:"block"}),muddy_roots_in:(0,f.Tag)({resource:"block"}),muddy_roots_provider:t("block_state_provider")})}}},{context:"root_placer"})),trunk_placer:(0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:(0,i.NumberNode)({integer:!0,min:0,max:32}),height_rand_a:(0,i.NumberNode)({integer:!0,min:0,max:24}),height_rand_b:(0,i.NumberNode)({integer:!0,min:0,max:24}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:bending_trunk_placer":{bend_length:(0,f.IntProvider)({min:1,max:64}),min_height_for_leaves:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:1}))},"minecraft:upwards_branching_trunk_placer":{extra_branch_steps:(0,f.IntProvider)({min:1}),extra_branch_length:(0,f.IntProvider)({min:0}),place_branch_per_log_probability:(0,i.NumberNode)({min:0,max:1}),can_grow_through:(0,f.Tag)({resource:"block"})}}},{context:"trunk_placer"}),foliage_placer:(0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:(0,f.IntProvider)({min:0,max:16}),offset:(0,f.IntProvider)({min:0,max:16}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:blob_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:(0,f.IntProvider)({min:0,max:24})},"minecraft:pine_foliage_placer":{height:(0,f.IntProvider)({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:(0,f.IntProvider)({min:1,max:512}),leaf_placement_attempts:(0,i.NumberNode)({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:(0,f.IntProvider)({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:(0,i.ListNode)((0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:alter_ground":{provider:t("block_state_provider")},"minecraft:attached_to_leaves":{probability:(0,i.NumberNode)({min:0,max:1}),exclusion_radius_xz:(0,i.NumberNode)({integer:!0,min:0,max:16}),exclusion_radius_y:(0,i.NumberNode)({integer:!0,min:0,max:16}),required_empty_blocks:(0,i.NumberNode)({integer:!0,min:1,max:16}),block_provider:t("block_state_provider"),directions:(0,i.ListNode)(o({enum:"direction"}))},"minecraft:beehive":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:cocoa":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:leave_vine":{probability:(0,i.NumberNode)({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:twisting_vines":{spread_width:(0,i.NumberNode)({integer:!0,min:1}),spread_height:(0,i.NumberNode)({integer:!0,min:1}),max_height:(0,i.NumberNode)({integer:!0,min:1})},"minecraft:underwater_magma":{floor_search_range:(0,i.NumberNode)({integer:!0,min:0,max:512}),placement_radius_around_floor:(0,i.NumberNode)({integer:!0,min:0,max:64}),placement_probability_per_valid_position:(0,i.NumberNode)({min:0,max:1})},"minecraft:vegetation_patch":b,"minecraft:waterlogged_vegetation_patch":b}},{context:"feature"})},{context:"feature"}),{default:()=>({type:"minecraft:tree",config:{minimum_size:{type:"minecraft:two_layers_feature_size"},trunk_placer:{type:"minecraft:straight_trunk_placer",base_height:5,height_rand_a:2,height_rand_b:0},foliage_placer:{type:"minecraft:blob_foliage_placer",radius:2,offset:0,height:3}}})})),r.register("placed_feature",(0,i.Mod)((0,i.ObjectNode)({feature:d,placement:(0,i.ListNode)(t("decorator"))},{context:"placed_feature"}),{default:()=>({feature:"minecraft:oak",placement:[{type:"minecraft:count",count:4},{type:"minecraft:in_square"},{type:"minecraft:heightmap",heightmap:"OCEAN_FLOOR"}]})})),r.register("feature_size",(0,i.Mod)((0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:(0,i.Opt)((0,i.NumberNode)({min:0,max:80})),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:two_layers_feature_size":{limit:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:81})),lower_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:80})),upper_limit:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:80})),lower_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16})),middle_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})}));const j={seed:(0,i.NumberNode)({integer:!0}),noise:t("noise_parameters"),scale:(0,i.Mod)((0,i.NumberNode)({min:Number.MIN_VALUE}),{default:()=>1})};r.register("block_state_provider",(0,i.Mod)((0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:dual_noise_provider":W(g({},j),{variety:(0,f.InclusiveRange)({integer:!0,min:1,max:64}),slow_noise:t("noise_parameters"),slow_scale:(0,i.Mod)((0,i.NumberNode)({min:Number.MIN_VALUE}),{default:()=>1}),states:(0,i.ListNode)(t("block_state"))}),"minecraft:noise_threshold_provider":W(g({},j),{threshold:(0,i.NumberNode)({min:-1,max:1}),high_chance:(0,i.NumberNode)({min:0,max:1}),default_state:t("block_state"),low_states:(0,i.ListNode)(t("block_state")),high_states:(0,i.ListNode)(t("block_state"))}),"minecraft:noise_provider":W(g({},j),{states:(0,i.ListNode)(t("block_state"))}),"minecraft:randomized_int_state_provider":{property:o(),values:(0,f.IntProvider)(),source:t("block_state_provider")},"minecraft:rotated_block_provider":{state:t("block_state")},"minecraft:simple_state_provider":{state:t("block_state")},"minecraft:weighted_state_provider":{entries:(0,i.ListNode)((0,i.Mod)((0,i.ObjectNode)({weight:(0,i.NumberNode)({integer:!0,min:1}),data:t("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})})),r.register("rule_based_block_state_provider",(0,i.Mod)((0,i.ObjectNode)({fallback:t("block_state_provider"),rules:(0,i.ListNode)((0,i.ObjectNode)({if_true:t("block_predicate_worldgen"),then:t("block_state_provider")}))},{context:"block_state_provider"}),{default:()=>({fallback:{type:"minecraft:simple_state_provider"}})}));const y={offset:(0,i.Opt)((0,i.ListNode)((0,i.NumberNode)({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3}))};r.register("block_predicate_worldgen",(0,i.Mod)((0,i.ObjectNode)({type:o({validator:"resource",params:{pool:"block_predicate_type"}}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:all_of":{predicates:(0,i.ListNode)(t("block_predicate_worldgen"))},"minecraft:any_of":{predicates:(0,i.ListNode)(t("block_predicate_worldgen"))},"minecraft:has_sturdy_face":W(g({},y),{direction:o({enum:"direction"})}),"minecraft:inside_world_bounds":g({},y),"minecraft:matching_block_tag":W(g({},y),{tag:o({validator:"resource",params:{pool:"$tag/block"}})}),"minecraft:matching_blocks":W(g({},y),{blocks:(0,f.Tag)({resource:"block"})}),"minecraft:matching_fluids":W(g({},y),{fluids:(0,f.Tag)({resource:"fluid"})}),"minecraft:not":{predicate:t("block_predicate_worldgen")},"minecraft:would_survive":W(g({},y),{state:t("block_state")})}},{context:"block_predicate"}),{default:()=>({type:"minecraft:true"})}))}Pe.initFeatureSchemas=Pt;var Le={};Object.defineProperty(Le,"__esModule",{value:!0});Le.initNoiseSettingsSchemas=void 0;const C=k,Lt=R,D=Ie;function $t(r,e){const t=C.Reference.bind(void 0,r),o=C.StringNode.bind(void 0,e);r.register("noise_settings",(0,C.Mod)((0,C.ObjectNode)({sea_level:(0,C.NumberNode)({integer:!0}),disable_mob_generation:(0,C.BooleanNode)(),aquifers_enabled:(0,C.BooleanNode)(),ore_veins_enabled:(0,C.BooleanNode)(),legacy_random_source:(0,C.BooleanNode)(),default_block:t("block_state"),default_fluid:t("block_state"),noise:(0,C.ObjectNode)({min_y:(0,C.NumberNode)({integer:!0,min:-2048,max:2047}),height:(0,C.NumberNode)({integer:!0,min:0,max:4096}),size_horizontal:(0,C.NumberNode)({integer:!0}),size_vertical:(0,C.NumberNode)({integer:!0})}),noise_router:(0,C.ObjectNode)({barrier:D.DensityFunction,fluid_level_floodedness:D.DensityFunction,fluid_level_spread:D.DensityFunction,lava:D.DensityFunction,temperature:D.DensityFunction,vegetation:D.DensityFunction,continents:D.DensityFunction,erosion:D.DensityFunction,depth:D.DensityFunction,ridges:D.DensityFunction,initial_density_without_jaggedness:D.DensityFunction,final_density:D.DensityFunction,vein_toggle:D.DensityFunction,vein_ridged:D.DensityFunction,vein_gap:D.DensityFunction}),spawn_target:(0,C.ListNode)(t("parameter_point")),surface_rule:t("material_rule")},{context:"noise_settings"}),d=>({default:()=>Lt.DefaultNoiseSettings,validate:(n,c,l,v)=>{var _,b,j,y;return c=d.validate(n,c,l,v),((_=c==null?void 0:c.noise)===null||_===void 0?void 0:_.min_y)+((b=c==null?void 0:c.noise)===null||b===void 0?void 0:b.height)>2047&&l.add(n.push("noise").push("height"),"error.min_y_plus_height",2047),((j=c==null?void 0:c.noise)===null||j===void 0?void 0:j.height)%16!==0&&l.add(n.push("noise").push("height"),"error.height_multiple",16),((y=c==null?void 0:c.noise)===null||y===void 0?void 0:y.min_y)%16!==0&&l.add(n.push("noise").push("min_y"),"error.min_y_multiple",16),c}}))),r.register("noise_slider",(0,C.ObjectNode)({target:(0,C.NumberNode)(),size:(0,C.NumberNode)({integer:!0,min:0}),offset:(0,C.NumberNode)({integer:!0})})),r.register("generator_layer",(0,C.Mod)((0,C.ObjectNode)({block:o({validator:"resource",params:{pool:"block"}}),height:(0,C.NumberNode)({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})}))}Le.initNoiseSettingsSchemas=$t;var $e={};Object.defineProperty($e,"__esModule",{value:!0});$e.initStructureSchemas=void 0;const x=k,Bt=R,Ft=qe;function zt(r,e){const t=x.StringNode.bind(void 0,e),o=x.Reference.bind(void 0,r);r.register("structure",(0,x.Mod)((0,x.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/structure_type"}}),biomes:(0,Bt.Tag)({resource:"$worldgen/biome"}),step:t({enum:"decoration_step"}),spawn_overrides:(0,x.MapNode)(t({enum:"mob_category"}),(0,x.ObjectNode)({bounding_box:t({enum:["piece","full"]}),spawns:Ft.MobCategorySpawnSettings})),terrain_adaptation:(0,x.Opt)(t({enum:["none","beard_thin","beard_box","bury"]})),[x.Switch]:[{push:"type"}],[x.Case]:{"minecraft:jigsaw":{start_pool:t({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:(0,x.NumberNode)({integer:!0}),start_height:o("height_provider"),start_jigsaw_name:(0,x.Opt)(t()),project_start_to_heightmap:(0,x.Opt)(t({enum:"heightmap_type"})),max_distance_from_center:(0,x.Mod)((0,x.NumberNode)({integer:!0,min:1,max:128}),{default:()=>80}),use_expansion_hack:(0,x.BooleanNode)()},"minecraft:mineshaft":{mineshaft_type:t({enum:["normal","mesa"]})},"minecraft:nether_fossil":{height:o("height_provider")},"minecraft:ocean_ruin":{biome_temp:t({enum:["cold","warm"]}),large_probability:(0,x.NumberNode)({min:0,max:1}),cluster_probability:(0,x.NumberNode)({min:0,max:1})},"minecraft:ruined_portal":{setups:(0,x.ListNode)((0,x.ObjectNode)({placement:t({enum:["on_land_surface","partly_buried","on_ocean_floor","in_mountain","underground","in_nether"]}),air_pocket_probability:(0,x.NumberNode)({min:0,max:1}),mossiness:(0,x.NumberNode)({min:0,max:1}),overgrown:(0,x.BooleanNode)(),vines:(0,x.BooleanNode)(),can_be_cold:(0,x.BooleanNode)(),replace_with_blackstone:(0,x.BooleanNode)(),weight:(0,x.NumberNode)({min:0})}))},"minecraft:shipwreck":{is_beached:(0,x.Opt)((0,x.BooleanNode)())}}},{context:"structure_feature"}),{default:()=>({type:"minecraft:jigsaw",step:"surface_structures",size:6,max_distance_from_center:80})}))}$e.initStructureSchemas=zt;var Be={};Object.defineProperty(Be,"__esModule",{value:!0});Be.initStructureSetSchemas=void 0;const w=k,Ve=R;function Dt(r,e){const t=w.StringNode.bind(void 0,e),o=w.Reference.bind(void 0,r),d=(0,w.ChoiceNode)([{type:"string",node:t({validator:"resource",params:{pool:"$worldgen/structure_set"}})},{type:"object",node:o("structure_set")}],{choiceContext:"structure_set"});r.register("structure_set",(0,w.ObjectNode)({structures:(0,w.ListNode)((0,w.ObjectNode)({structure:(0,Ve.Tag)({resource:"$worldgen/structure"}),weight:(0,w.NumberNode)({integer:!0,min:1})})),placement:o("structure_placement")},{context:"structure_set"})),r.register("structure_placement",(0,w.Mod)((0,w.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/structure_placement"}}),salt:(0,w.NumberNode)({integer:!0,min:0}),frequency_reduction_method:(0,w.Opt)(t({enum:["default","legacy_type_1","legacy_type_2","legacy_type_3"]})),frequency:(0,w.Opt)((0,w.NumberNode)({min:0,max:1})),exclusion_zone:(0,w.Opt)((0,w.ObjectNode)({other_set:d,chunk_count:(0,w.NumberNode)({integer:!0,min:1,max:16})})),locate_offset:(0,w.Opt)((0,w.ListNode)((0,w.NumberNode)({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3})),[w.Switch]:[{push:"type"}],[w.Case]:{"minecraft:concentric_rings":{distance:(0,w.NumberNode)({integer:!0,min:0,max:1023}),spread:(0,w.NumberNode)({integer:!0,min:0,max:1023}),count:(0,w.NumberNode)({integer:!0,min:1,max:4095}),preferred_biomes:(0,Ve.Tag)({resource:"$worldgen/biome"})},"minecraft:random_spread":{spread_type:(0,w.Opt)(t({enum:["linear","triangular"]})),spacing:(0,w.NumberNode)({integer:!0,min:0,max:4096}),separation:(0,w.Mod)((0,w.NumberNode)({integer:!0,min:0,max:4096}),n=>({validate:(c,l,v,_)=>(c.pop().push("spacing").get()<=l&&v.add(c,"error.separation_smaller_spacing"),n.validate(c,l,v,_))}))}}},{context:"structure_placement"}),{default:()=>({type:"minecraft:random_spread",spacing:10,separation:5,salt:Math.floor(Math.random()*2147483647)})}))}Be.initStructureSetSchemas=Dt;var Fe={};Object.defineProperty(Fe,"__esModule",{value:!0});Fe.initSurfaceRuleSchemas=void 0;const P=k;function Rt(r,e){const t=P.StringNode.bind(void 0,e),o=P.Reference.bind(void 0,r);r.register("material_rule",(0,P.Mod)((0,P.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/material_rule"}}),[P.Switch]:[{push:"type"}],[P.Case]:{"minecraft:block":{result_state:o("block_state")},"minecraft:condition":{if_true:o("material_condition"),then_run:o("material_rule")},"minecraft:sequence":{sequence:(0,P.ListNode)(o("material_rule"))}}},{context:"material_rule",category:"pool"}),{default:()=>({type:"minecraft:block",result_state:{Name:"minecraft:stone"}})})),r.register("material_condition",(0,P.Mod)((0,P.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/material_condition"}}),[P.Switch]:[{push:"type"}],[P.Case]:{"minecraft:biome":{biome_is:(0,P.ListNode)(t({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:noise_threshold":{noise:t({validator:"resource",params:{pool:"$worldgen/noise"}}),min_threshold:(0,P.NumberNode)(),max_threshold:(0,P.NumberNode)()},"minecraft:not":{invert:o("material_condition")},"minecraft:stone_depth":{offset:(0,P.NumberNode)({integer:!0}),surface_type:t({enum:"cave_surface"}),add_surface_depth:(0,P.BooleanNode)(),secondary_depth_range:(0,P.NumberNode)({integer:!0})},"minecraft:vertical_gradient":{random_name:t(),true_at_and_below:o("vertical_anchor"),false_at_and_above:o("vertical_anchor")},"minecraft:water":{offset:(0,P.NumberNode)({integer:!0}),surface_depth_multiplier:(0,P.NumberNode)({integer:!0,min:-20,max:20}),add_stone_depth:(0,P.BooleanNode)()},"minecraft:y_above":{anchor:o("vertical_anchor"),surface_depth_multiplier:(0,P.NumberNode)({integer:!0,min:-20,max:20}),add_stone_depth:(0,P.BooleanNode)()}}},{context:"material_condition"}),{default:()=>({type:"minecraft:biome",is_biome:"minecraft:plains"})}))}Fe.initSurfaceRuleSchemas=Rt;var ze={};Object.defineProperty(ze,"__esModule",{value:!0});ze.initTemplatePoolSchemas=void 0;const q=k,Ge=Q;function Tt(r,e){const t=q.Reference.bind(void 0,r),o=q.StringNode.bind(void 0,e);r.register("template_pool",(0,q.Mod)((0,q.ObjectNode)({name:o(),fallback:o(),elements:(0,q.ListNode)(t("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"}}]})})),r.register("template_weighted_element",(0,q.Mod)((0,q.ObjectNode)({weight:(0,q.NumberNode)({integer:!0,min:1}),element:t("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),r.register("template_element",(0,q.Mod)((0,q.ObjectNode)({element_type:o({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:o({enum:["rigid","terrain_matching"]}),[q.Switch]:[{push:"element_type"}],[q.Case]:{"minecraft:feature_pool_element":{feature:o({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},"minecraft:legacy_single_pool_element":{location:o({validator:"resource",params:{pool:"$structure"}}),processors:Ge.Processors},"minecraft:list_pool_element":{elements:(0,q.ListNode)(t("template_element"))},"minecraft:single_pool_element":{location:o({validator:"resource",params:{pool:"$structure"}}),processors:Ge.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))}ze.initTemplatePoolSchemas=Tt;var De={};Object.defineProperty(De,"__esModule",{value:!0});De.initWorldPresetSchemas=void 0;const ie=k;function qt(r,e){const t=ie.StringNode.bind(void 0,e),o=ie.Reference.bind(void 0,r);r.register("world_preset",(0,ie.Mod)((0,ie.ObjectNode)({dimensions:(0,ie.MapNode)(t({validator:"resource",params:{pool:"$dimension",isDefinition:!0}}),o("dimension"))},{context:"world_preset"}),{default:()=>({dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",biome_source:{type:"minecraft:multi_noise",preset:"minecraft:overworld"},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",biome_source:{type:"minecraft:multi_noise",preset:"minecraft:nether"},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",biome_source:{type:"minecraft:the_end"},settings:"minecraft:end"}}}})})),r.register("flat_level_generator_preset",(0,ie.Mod)((0,ie.ObjectNode)({display:t({validator:"resource",params:{pool:"item"}}),settings:o("flat_generator_settings")}),{default:()=>({display:"minecraft:grass_block",settings:{lakes:!1,features:!1,biome:"minecraft:plains",structure_overrides:[],layers:[{height:3,block:"minecraft:dirt"},{height:1,block:"minecraft:grass_block"}]}})}))}De.initWorldPresetSchemas=qt;Object.defineProperty(je,"__esModule",{value:!0});je.initWorldgenSchemas=void 0;const It=qe,At=Me,Et=Ce,Wt=Ie,Ut=Pe,Vt=Le,Gt=Q,Ht=$e,Kt=Be,Xt=Fe,Yt=ze,Zt=De;function Jt(r,e){(0,Gt.initProcessorListSchemas)(r,e),(0,Wt.initDensityFunctionSchemas)(r,e),(0,It.initBiomeSchemas)(r,e),(0,At.initCarverSchemas)(r,e),(0,Et.initDecoratorSchemas)(r,e),(0,Ut.initFeatureSchemas)(r,e),(0,Vt.initNoiseSettingsSchemas)(r,e),(0,Ht.initStructureSchemas)(r,e),(0,Kt.initStructureSetSchemas)(r,e),(0,Xt.initSurfaceRuleSchemas)(r,e),(0,Yt.initTemplatePoolSchemas)(r,e),(0,Zt.initWorldPresetSchemas)(r,e)}je.initWorldgenSchemas=Jt;var Re={};Object.defineProperty(Re,"__esModule",{value:!0});Re.initWorldSettingsSchemas=void 0;const J=k;function Qt(r,e){const t=J.Reference.bind(void 0,r),o=J.StringNode.bind(void 0,e);r.register("world_settings",(0,J.Mod)((0,J.ObjectNode)({generate_features:(0,J.BooleanNode)(),bonus_chest:(0,J.BooleanNode)(),seed:(0,J.NumberNode)({integer:!0}),dimensions:(0,J.MapNode)(o({validator:"resource",params:{pool:"$dimension"}}),t("dimension"))},{context:"world_settings"}),{default:()=>{const d=Math.floor(Math.random()*4294967296)-2147483648;return{generate_features:!0,bonus_chest:!1,seed:d,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:overworld"},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:nether"},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:the_end",seed:d},settings:"minecraft:end"}}}}}}))}Re.initWorldSettingsSchemas=Qt;Object.defineProperty(le,"__esModule",{value:!0});le.initSchemas=void 0;const er=me,tr=_e,rr=ge,or=R,ir=be,nr=Ne,ar=ye,cr=he,dr=ve,sr=Oe,lr=ke,mr=xe,_r=we,ur=Se,pr=je,fr=Re;function gr(r,e){(0,or.initCommonSchemas)(r,e),(0,rr.initChatTypeSchemas)(r,e),(0,er.initAdvancementSchemas)(r,e),(0,tr.initAssetsSchemas)(r,e),(0,ir.initConditionSchemas)(r,e),(0,ar.initDimensionTypeSchemas)(r,e),(0,nr.initDimensionSchemas)(r,e),(0,cr.initItemModifierSchemas)(r,e),(0,dr.initLootTableSchemas)(r,e),(0,sr.initPackMcmetaSchemas)(r,e),(0,lr.initPredicatesSchemas)(r,e),(0,mr.initRecipeSchemas)(r,e),(0,_r.initTagsSchemas)(r,e),(0,ur.initTextComponentSchemas)(r,e),(0,pr.initWorldgenSchemas)(r,e),(0,fr.initWorldSettingsSchemas)(r,e)}le.initSchemas=gr;var br=ne&&ne.__createBinding||(Object.create?function(r,e,t,o){o===void 0&&(o=t);var d=Object.getOwnPropertyDescriptor(e,t);(!d||("get"in d?!e.__esModule:d.writable||d.configurable))&&(d={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(r,o,d)}:function(r,e,t,o){o===void 0&&(o=t),r[o]=e[t]}),Nr=ne&&ne.__setModuleDefault||(Object.create?function(r,e){Object.defineProperty(r,"default",{enumerable:!0,value:e})}:function(r,e){r.default=e}),yr=ne&&ne.__importStar||function(r){if(r&&r.__esModule)return r;var e={};if(r!=null)for(var t in r)t!=="default"&&Object.prototype.hasOwnProperty.call(r,t)&&br(e,r,t);return Nr(e,r),e};Object.defineProperty(X,"__esModule",{value:!0});var He=X.getSchemas=Ye=X.getCollections=Xe=X.lootContext=void 0;const Ke=k,hr=se,vr=le;var Xe=X.lootContext=yr(I);function Or(){const r=new Ke.CollectionRegistry;return(0,hr.initCollections)(r),r}var Ye=X.getCollections=Or;function kr(r){const e=new Ke.SchemaRegistry;return(0,vr.initSchemas)(e,r),e}He=X.getSchemas=kr;var jr=rt({__proto__:null,get getSchemas(){return He},get getCollections(){return Ye},get lootContext(){return Xe},default:X},[X]);export{jr as i}; +//# sourceMappingURL=index.80f19794.js.map diff --git a/assets/index.dd43bf43.js.map b/assets/index.80f19794.js.map similarity index 99% rename from assets/index.dd43bf43.js.map rename to assets/index.80f19794.js.map index 0cb021c7..f4f4f5e7 100644 --- a/assets/index.dd43bf43.js.map +++ b/assets/index.80f19794.js.map @@ -1 +1 @@ -{"version":3,"file":"index.dd43bf43.js","sources":["../../node_modules/@mcschema/java-1.19/lib/Collections.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.19/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.19/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.19/lib/schemas/assets/Font.js","../../node_modules/@mcschema/java-1.19/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.19/lib/schemas/ChatType.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Dimension.js","../../node_modules/@mcschema/java-1.19/lib/schemas/DimensionType.js","../../node_modules/@mcschema/java-1.19/lib/schemas/ItemModifier.js","../../node_modules/@mcschema/java-1.19/lib/LootContext.js","../../node_modules/@mcschema/java-1.19/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.19/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.19/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/Biome.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/Carver.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/Decorator.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/DensityFunction.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/ProcessorList.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/Feature.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/NoiseSettings.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/Structure.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/StructureSet.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/SurfaceRule.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/TemplatePool.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/WorldPreset.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/index.js","../../node_modules/@mcschema/java-1.19/lib/schemas/WorldSettings.js","../../node_modules/@mcschema/java-1.19/lib/schemas/index.js","../../node_modules/@mcschema/java-1.19/lib/index.js"],"sourcesContent":["\"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:allay_drop_item_on_block',\r\n 'minecraft:avoid_vibration',\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:kill_mob_near_sculk_catalyst',\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:thrown_item_picked_up_by_player',\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('decoration_step', [\r\n 'raw_generation',\r\n 'lakes',\r\n 'local_modifications',\r\n 'underground_structures',\r\n 'surface_structures',\r\n 'strongholds',\r\n 'underground_ores',\r\n 'underground_decoration',\r\n 'fluid_springs',\r\n 'vegetal_decoration',\r\n 'top_layer_modification'\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 collections.register('glyph_provider_type', [\r\n 'bitmap',\r\n 'ttf',\r\n 'space',\r\n 'legacy_unicode',\r\n ]);\r\n collections.register('mob_category', [\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 ]);\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 = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n display: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n icon: (0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: (0, 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: (0, core_1.Opt)(StringNode()),\r\n frame: (0, core_1.Opt)(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n announce_to_chat: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n hidden: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: (0, core_1.MapNode)(StringNode(), Reference('advancement_criteria')),\r\n requirements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ListNode)(StringNode() // TODO: add validation\r\n ))),\r\n rewards: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n function: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n player: (0, 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:allay_drop_item_on_block': {\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:bee_nest_destroyed': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n item: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: (0, core_1.Opt)((0, 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: (0, 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: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate'))),\r\n source: (0, core_1.Opt)(EntityPredicate)\r\n },\r\n 'minecraft:enter_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: (0, core_1.Opt)(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: (0, core_1.Opt)(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:fall_from_height': {\r\n start_position: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:kill_mob_near_sculk_catalyst': {\r\n entity: EntityPredicate,\r\n killing_blow: (0, core_1.Opt)(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: Reference('int_bounds'),\r\n victims: (0, core_1.Opt)((0, core_1.ListNode)(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: (0, 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:nether_travel': {\r\n start_position: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n },\r\n 'minecraft:placed_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, 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: (0, core_1.Opt)(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: (0, 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: (0, 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: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: (0, 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: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:thrown_item_picked_up_by_player': {\r\n entity: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: (0, core_1.Opt)(Reference('float_bounds'))\r\n },\r\n 'minecraft:used_totem': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:using_item': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_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) => (0, core_1.ListNode)((0, core_1.NumberNode)({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n parent: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n gui_light: (0, core_1.Opt)(StringNode({ enum: 'gui_light' })),\r\n textures: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), Texture)),\r\n elements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: (0, core_1.NumberEnum)({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n shade: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n faces: (0, core_1.MapNode)(StringNode({ enum: 'direction' }), (0, core_1.ObjectNode)({\r\n texture: Texture,\r\n uv: (0, core_1.Opt)(Vec(4)),\r\n cullface: (0, core_1.Opt)(StringNode({ enum: 'direction' })),\r\n rotation: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tintindex: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'display_position' }), (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n predicate: (0, core_1.MapNode)(StringNode({ enum: 'item_model_predicates' }), (0, 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', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n variants: (0, 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: (0, core_1.ObjectNode)({\r\n multipart: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n when: (0, 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: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n y: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n };\r\n schemas.register('model_variant', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n ...VariantChildren,\r\n weight: (0, core_1.Opt)((0, 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', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n OR: (0, 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.initFontSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initFontSchemas(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('font', (0, core_1.ObjectNode)({\r\n providers: (0, core_1.ListNode)(Reference('glyph_provider'))\r\n }, { context: 'font' }));\r\n schemas.register('glyph_provider', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ enum: 'glyph_provider_type' }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'bitmap': {\r\n file: StringNode({ validator: 'resource', params: { pool: '$texture', suffix: '.png' } }),\r\n height: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n ascent: (0, core_1.NumberNode)({ integer: true }),\r\n chars: (0, core_1.ListNode)(StringNode(), { minLength: 1 })\r\n },\r\n 'ttf': {\r\n file: StringNode({ validator: 'resource', params: { pool: '$texture', suffix: '.png' } }),\r\n size: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n oversample: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n shift: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.NumberNode)(), { minLength: 2, maxLength: 2 })),\r\n skip: (0, core_1.Opt)((0, core_1.StringOrList)(StringNode()))\r\n },\r\n 'space': {\r\n advances: (0, core_1.MapNode)(StringNode(), (0, core_1.NumberNode)())\r\n },\r\n 'legacy_unicode': {\r\n sizes: StringNode(),\r\n template: StringNode()\r\n }\r\n }\r\n }, { context: 'glyph_provider' }), {\r\n default: () => ({\r\n type: 'bitmap',\r\n }),\r\n }));\r\n}\r\nexports.initFontSchemas = initFontSchemas;\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\nconst Font_1 = require(\"./Font\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n (0, BlockDefinition_1.initBlockDefinitionSchemas)(schemas, collections);\r\n (0, Font_1.initFontSchemas)(schemas, collections);\r\n (0, Model_1.initModelSchemas)(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initChatTypeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initChatTypeSchemas(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('chat_type', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n chat: Reference('text_decoration'),\r\n narration: Reference('text_decoration'),\r\n }, { context: 'chat_type' }), {\r\n default: () => ({\r\n chat: {\r\n translation_key: 'chat.type.text',\r\n parameters: ['sender', 'content'],\r\n },\r\n narration: {\r\n translation_key: 'chat.type.text.narrate',\r\n parameters: ['sender', 'content'],\r\n }\r\n })\r\n }));\r\n schemas.register('text_decoration', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n translation_key: StringNode(),\r\n parameters: (0, core_1.ListNode)(StringNode({ enum: ['sender', 'target', 'content'] })),\r\n style: (0, core_1.Opt)(Reference('text_style'))\r\n }, { context: 'text_decoration' }), {\r\n default: () => ({\r\n translation_key: 'chat.type.text',\r\n parameters: ['sender', 'content'],\r\n style: {},\r\n })\r\n }));\r\n}\r\nexports.initChatTypeSchemas = initChatTypeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.Tag = exports.InclusiveRange = exports.IntProvider = exports.FloatProvider = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.FunctionCases = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultNoiseSettings = {\r\n sea_level: 63,\r\n ore_veins_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n legacy_random_source: 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: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\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 noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => (0, core_1.Opt)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer })),\r\n max: (0, core_1.Opt)((0, 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', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)(Reference('number_provider')),\r\n max: (0, core_1.Opt)(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: (0, 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] = (0, 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 = (0, core_1.ObjectNode)({\r\n type: (0, core_1.Mod)((0, 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 (0, 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: (0, 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: (0, core_1.Opt)((0, 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: (0, 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: (0, 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: (0, core_1.NumberNode)(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)(config),\r\n max_exclusive: (0, core_1.NumberNode)(config)\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n mean: (0, core_1.NumberNode)(),\r\n deviation: (0, core_1.NumberNode)()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n plateau: (0, core_1.NumberNode)()\r\n })\r\n }\r\n });\r\n schemas.register('float_provider', (0, 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: (0, core_1.NumberNode)({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n mean: (0, core_1.NumberNode)(),\r\n deviation: (0, core_1.NumberNode)()\r\n })\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n });\r\n schemas.register('int_provider', (0, exports.IntProvider)());\r\n schemas.register('vertical_anchor', (0, 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: (0, core_1.ObjectNode)({\r\n [t]: (0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n }));\r\n exports.InclusiveRange = (config) => (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)(config),\r\n max_inclusive: (0, core_1.NumberNode)(config)\r\n }, { context: 'range' });\r\n schemas.register('noise_parameters', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n firstOctave: (0, core_1.NumberNode)({ integer: true }),\r\n amplitudes: (0, core_1.ListNode)((0, core_1.NumberNode)())\r\n }, { context: 'noise_parameters' }), {\r\n default: () => ({\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n })\r\n }));\r\n exports.Tag = (config) => (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: config.resource, allowTag: true } }),\r\n change: (v) => {\r\n if (Array.isArray(v) && typeof v[0] === 'string' && !v[0].startsWith('#')) {\r\n return v[0];\r\n }\r\n return undefined;\r\n }\r\n },\r\n {\r\n type: 'list',\r\n node: (0, core_1.ListNode)(config.inlineSchema\r\n ? (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: config.resource } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference(config.inlineSchema)\r\n }\r\n ], { choiceContext: 'tag.list' })\r\n : StringNode({ validator: 'resource', params: { pool: config.resource } })),\r\n change: (v) => {\r\n if (typeof v === 'string' && !v.startsWith('#')) {\r\n return [v];\r\n }\r\n return [];\r\n }\r\n },\r\n ], { choiceContext: 'tag' });\r\n exports.ConditionCases = (entitySourceNode = StringNode({ enum: 'entity_source' })) => ({\r\n 'minecraft:alternative': {\r\n terms: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetY: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetZ: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n looting_multiplier: (0, 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: (0, core_1.ListNode)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n thundering: (0, core_1.Opt)((0, 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: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n bonusMultiplier: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: (0, core_1.Mod)((0, 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: (0, core_1.ListNode)((0, 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: (0, core_1.ListNode)(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: (0, core_1.Opt)((0, exports.Tag)({ resource: '$worldgen/structure' })),\r\n decoration: (0, core_1.Opt)(StringNode({ enum: 'map_decoration' })),\r\n zoom: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n search_radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n skip_existing_chunks: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: (0, core_1.ListNode)(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_contents': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n entries: (0, core_1.ListNode)(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_instrument': {\r\n options: StringNode({ validator: 'resource', params: { pool: 'instrument', requireTag: true } })\r\n },\r\n 'minecraft:set_loot_table': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n lore: (0, core_1.ListNode)(Reference('text_component')),\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_name': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n name: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, 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.NoiseSettingsPresets = (node) => (0, core_1.ObjectOrPreset)(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n sea_level: 32,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: true,\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 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 noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n },\r\n 'minecraft:end': {\r\n sea_level: 0,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: true,\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 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 noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n sea_level: 63,\r\n ore_veins_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n legacy_random_source: 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: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\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 noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n },\r\n 'minecraft:caves': {\r\n sea_level: 32,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: 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: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\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 noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n sea_level: 0,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: 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: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\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 noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\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', (0, core_1.ObjectOrList)(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', (0, core_1.Mod)((0, 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]: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: '$dimension_type' } }),\r\n generator: (0, 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 settings: (0, Common_1.NoiseSettingsPresets)(Reference('noise_settings')),\r\n biome_source: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: ['minecraft:overworld', 'minecraft:nether'] } })),\r\n biomes: (0, core_1.Mod)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 62 })),\r\n biomes: (0, Common_1.Tag)({ resource: '$worldgen/biome' })\r\n },\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: Reference('flat_generator_settings')\r\n }\r\n }\r\n }, { disableSwitchContext: true })\r\n }, { category: 'pool', context: 'dimension' }), {\r\n default: () => {\r\n return {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n biome_source: {\r\n type: 'minecraft:fixed',\r\n biome: 'minecraft:plains'\r\n },\r\n settings: 'minecraft:overworld'\r\n }\r\n };\r\n }\r\n }));\r\n schemas.register('flat_generator_settings', (0, core_1.ObjectNode)({\r\n biome: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n features: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n layers: (0, core_1.ListNode)(Reference('generator_layer')),\r\n structure_overrides: (0, Common_1.Tag)({ resource: '$worldgen/structure_set', inlineSchema: 'structure_set' })\r\n }));\r\n const ClimateParameter = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ListNode)((0, 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('parameter_point', (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }));\r\n schemas.register('generator_biome', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: Reference('parameter_point'),\r\n }, { context: 'generator_biome' }), {\r\n default: () => ({\r\n biome: 'minecraft:plains',\r\n parameters: {\r\n temperature: 0,\r\n humidity: 0,\r\n continentalness: 0,\r\n erosion: 0,\r\n weirdness: 0,\r\n depth: 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n ultrawarm: (0, core_1.BooleanNode)(),\r\n natural: (0, core_1.BooleanNode)(),\r\n piglin_safe: (0, core_1.BooleanNode)(),\r\n respawn_anchor_works: (0, core_1.BooleanNode)(),\r\n bed_works: (0, core_1.BooleanNode)(),\r\n has_raids: (0, core_1.BooleanNode)(),\r\n has_skylight: (0, core_1.BooleanNode)(),\r\n has_ceiling: (0, core_1.BooleanNode)(),\r\n coordinate_scale: (0, core_1.NumberNode)({ min: 0.00001, max: 30000000 }),\r\n ambient_light: (0, core_1.NumberNode)(),\r\n fixed_time: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n logical_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4064 }),\r\n effects: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: ['minecraft:overworld', 'minecraft:the_nether', 'minecraft:the_end'] } })),\r\n infiniburn: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n min_y: (0, core_1.NumberNode)({ integer: true, min: -2032, max: 2031 }),\r\n height: (0, core_1.NumberNode)({ integer: true, min: 16, max: 4064 }),\r\n monster_spawn_light_level: (0, Common_1.IntProvider)({ min: 0, max: 15 }),\r\n monster_spawn_block_light_limit: (0, core_1.NumberNode)({ integer: true, min: 0, max: 15 }),\r\n }, { context: 'dimension_type' }), node => ({\r\n default: () => ({\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: 384,\r\n effects: 'minecraft:overworld',\r\n infiniburn: '#minecraft:infiniburn_overworld',\r\n min_y: -64,\r\n height: 384,\r\n monster_spawn_block_light_limit: 0,\r\n monster_spawn_light_level: {\r\n type: 'minecraft:uniform',\r\n value: {\r\n min_inclusive: 0,\r\n max_inclusive: 7,\r\n },\r\n },\r\n }),\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) > 2032) {\r\n errors.add(path.push('height'), 'error.min_y_plus_height', 2032);\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', (0, core_1.ObjectOrList)(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: (0, core_1.Opt)((0, core_1.ListNode)(Reference('condition')))\r\n };\r\n schemas.register('function', (0, core_1.Mod)((0, 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]: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: (0, core_1.Opt)((0, 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 (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: (0, core_1.Opt)(Reference('number_provider')),\r\n entries: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 1 }), weightMod)),\r\n quality: (0, core_1.Opt)((0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: (0, 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', (0, core_1.Mod)((0, 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 id: (0, core_1.Opt)(StringNode({ validator: 'uuid' })),\r\n slot: (0, 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 = 10;\r\nfunction initPackMcmetaSchemas(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('pack_mcmeta', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack_format: (0, core_1.Mod)((0, 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: Reference('text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n })\r\n }),\r\n filter: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n block: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n namespace: (0, core_1.Opt)(StringNode({ validator: 'regex_pattern' })),\r\n path: (0, core_1.Opt)(StringNode({ validator: 'regex_pattern' })),\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 = (0, 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: (0, core_1.NumberNode)(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max: (0, core_1.Opt)((0, 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: (0, core_1.BooleanNode)(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', (0, core_1.ObjectNode)({\r\n items: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'item' } }))),\r\n tag: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: (0, core_1.Opt)((0, core_1.ListNode)(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', (0, core_1.ObjectNode)({\r\n enchantment: (0, 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', (0, core_1.ObjectNode)({\r\n blocks: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n fluid: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', (0, core_1.ObjectNode)({\r\n position: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n structure: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/structure' } })),\r\n dimension: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n block: (0, core_1.Opt)(Reference('block_predicate')),\r\n fluid: (0, core_1.Opt)(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', (0, 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('status_effect_predicate', (0, core_1.ObjectNode)({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n visible: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', (0, 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', (0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n type_specific: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n type: StringNode({ enum: ['any', 'cat', 'fishing_hook', 'frog', 'lightning', 'player', 'slime'] }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'cat': {\r\n variant: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'cat_variant' } }))\r\n },\r\n 'fishing_hook': {\r\n in_open_water: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'frog': {\r\n variant: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'frog_variant' } }))\r\n },\r\n 'lightning': {\r\n blocks_set_on_fire: (0, core_1.Opt)(Reference('int_bounds')),\r\n entity_struck: (0, core_1.Opt)(Reference('entity_predicate'))\r\n },\r\n 'player': {\r\n gamemode: (0, core_1.Opt)(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), (0, core_1.ChoiceNode)([\r\n {\r\n type: 'boolean',\r\n node: (0, core_1.BooleanNode)(),\r\n change: () => true\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.MapNode)(StringNode(), (0, core_1.BooleanNode)())\r\n }\r\n ]))),\r\n recipes: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), (0, core_1.BooleanNode)())),\r\n stats: (0, core_1.Opt)((0, core_1.ListNode)(Reference('statistic_predicate'))),\r\n looking_at: (0, core_1.Opt)(Reference('entity_predicate'))\r\n },\r\n 'slime': {\r\n size: Reference('int_bounds')\r\n },\r\n }\r\n })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: (0, core_1.Opt)(StringNode({ validator: 'team' })),\r\n location: (0, core_1.Opt)(Reference('location_predicate')),\r\n stepping_on: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n flags: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n is_on_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sneaking: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sprinting: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_swimming: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_baby: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n equipment: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n vehicle: (0, core_1.Opt)(Reference('entity_predicate')),\r\n passenger: (0, core_1.Opt)(Reference('entity_predicate')),\r\n targeted_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n effects: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n is_explosion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_projectile: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_lightning: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_armor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_invulnerability: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n direct_entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', (0, core_1.ObjectNode)({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n type: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.Opt)(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: (0, core_1.ListNode)(StringNode()),\r\n key: (0, 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: (0, core_1.Opt)(StringNode()),\r\n ingredients: (0, core_1.ListNode)(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: (0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.Mod)((0, 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) => (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n values: (0, core_1.ListNode)((0, 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: (0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: (0, 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 schemas.register('advancement_tag', TagBase('$advancement'));\r\n schemas.register('dimension_tag', TagBase('$dimension'));\r\n schemas.register('dimension_type_tag', TagBase('$dimension_type'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('item_modifier_tag', TagBase('$item_modifier'));\r\n schemas.register('loot_table_tag', TagBase('$loot_table'));\r\n schemas.register('predicate_tag', TagBase('$predicate'));\r\n schemas.register('recipe_tag', TagBase('$recipe'));\r\n schemas.register('structure_tag', TagBase('$structure'));\r\n schemas.register('biome_tag', TagBase('$worldgen/biome'));\r\n schemas.register('configured_carver_tag', TagBase('$worldgen/configured_carver'));\r\n schemas.register('configured_feature_tag', TagBase('$worldgen/configured_feature'));\r\n schemas.register('structure_tag', TagBase('$worldgen/structure'));\r\n schemas.register('configured_surface_builder_tag', TagBase('$worldgen/configured_surface_builder'));\r\n schemas.register('density_function_tag', TagBase('$worldgen/density_function'));\r\n schemas.register('flat_level_generator_preset_tag', TagBase('$worldgen/flat_level_generator_preset'));\r\n schemas.register('noise_tag', TagBase('$worldgen/noise'));\r\n schemas.register('noise_settings_tag', TagBase('$worldgen/noise_settings'));\r\n schemas.register('placed_feature_tag', TagBase('$worldgen/placed_feature'));\r\n schemas.register('processor_list_tag', TagBase('$worldgen/processor_list'));\r\n schemas.register('structure_set_tag', TagBase('$worldgen/structure_set'));\r\n schemas.register('template_pool_tag', TagBase('$worldgen/template_pool'));\r\n schemas.register('world_preset_tag', TagBase('$worldgen/world_preset'));\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', (0, core_1.Mod)((0, 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: (0, 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: (0, 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 StyleFields = {\r\n color: (0, core_1.Opt)(StringNode()) /* TODO */,\r\n font: (0, core_1.Opt)(StringNode()),\r\n bold: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n italic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n underlined: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n strikethrough: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n obfuscated: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n insertion: (0, core_1.Opt)(StringNode()),\r\n };\r\n schemas.register('text_style', (0, core_1.ObjectNode)({\r\n ...StyleFields\r\n }, { context: 'text_component_object' }));\r\n const CommonFields = {\r\n ...StyleFields,\r\n clickEvent: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('text_component')),\r\n contents: (0, core_1.Opt)(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tag: (0, 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: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n name: (0, core_1.Opt)(StringNode()),\r\n type: (0, core_1.Opt)(StringNode()),\r\n id: (0, core_1.Opt)(StringNode())\r\n })),\r\n contents: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, 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: (0, core_1.Opt)(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n translate: StringNode(),\r\n with: (0, 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: (0, core_1.ObjectNode)({\r\n score: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n separator: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: (0, core_1.Opt)(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: (0, core_1.Opt)(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n separator: (0, 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', (0, core_1.Mod)((0, 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 = exports.MobCategorySpawnSettings = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initBiomeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n exports.MobCategorySpawnSettings = (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n minCount: (0, core_1.NumberNode)({ integer: true }),\r\n maxCount: (0, 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 schemas.register('biome', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n temperature: (0, core_1.NumberNode)(),\r\n downfall: (0, core_1.NumberNode)(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'frozen'] })),\r\n creature_spawn_probability: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n effects: (0, core_1.ObjectNode)({\r\n sky_color: (0, core_1.NumberNode)({ color: true }),\r\n fog_color: (0, core_1.NumberNode)({ color: true }),\r\n water_color: (0, core_1.NumberNode)({ color: true }),\r\n water_fog_color: (0, core_1.NumberNode)({ color: true }),\r\n grass_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n foliage_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n grass_color_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: (0, core_1.Opt)(StringNode()),\r\n mood_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_delay: (0, core_1.NumberNode)({ integer: true }),\r\n block_search_extent: (0, core_1.NumberNode)({ integer: true }),\r\n offset: (0, core_1.NumberNode)()\r\n })),\r\n additions_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n })),\r\n music: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n min_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n max_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n replace_current_music: (0, core_1.BooleanNode)()\r\n })),\r\n particle: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n options: (0, core_1.ObjectNode)({\r\n type: StringNode()\r\n }),\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }))\r\n }),\r\n spawners: (0, core_1.MapNode)(StringNode({ enum: 'mob_category' }), exports.MobCategorySpawnSettings),\r\n spawn_costs: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n energy_budget: (0, core_1.NumberNode)(),\r\n charge: (0, 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: (0, core_1.MapNode)(StringNode({ enum: ['air', 'liquid'] }), (0, core_1.Mod)((0, Common_1.Tag)({ resource: '$worldgen/configured_carver', inlineSchema: 'configured_carver' }), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: (0, core_1.ListNode)((0, core_1.Mod)((0, Common_1.Tag)({ resource: '$worldgen/placed_feature', inlineSchema: 'placed_feature' }), { category: () => 'predicate' }), { maxLength: 11 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const CanyonConfig = {\r\n vertical_rotation: (0, Common_1.FloatProvider)(),\r\n shape: (0, core_1.ObjectNode)({\r\n distance_factor: (0, Common_1.FloatProvider)(),\r\n thickness: (0, Common_1.FloatProvider)(),\r\n width_smoothness: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n horizontal_radius_factor: (0, Common_1.FloatProvider)(),\r\n vertical_radius_default_factor: (0, core_1.NumberNode)(),\r\n vertical_radius_center_factor: (0, core_1.NumberNode)()\r\n })\r\n };\r\n const CaveConfig = {\r\n horizontal_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n vertical_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n floor_level: (0, Common_1.FloatProvider)({ min: -1, max: 1 }),\r\n };\r\n schemas.register('configured_carver', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: (0, core_1.ObjectNode)({\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n y: Reference('height_provider'),\r\n yScale: (0, Common_1.FloatProvider)(),\r\n lava_level: Reference('vertical_anchor'),\r\n replaceable: (0, Common_1.Tag)({ resource: 'block' }),\r\n debug_settings: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n debug_mode: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n air_state: (0, core_1.Opt)(Reference('block_state')),\r\n water_state: (0, core_1.Opt)(Reference('block_state')),\r\n lava_state: (0, core_1.Opt)(Reference('block_state')),\r\n barrier_state: (0, core_1.Opt)(Reference('block_state'))\r\n })),\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:canyon': CanyonConfig,\r\n 'minecraft:cave': CaveConfig,\r\n 'minecraft:nether_cave': CaveConfig\r\n },\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('decorator', (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/placement_modifier_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_predicate_filter': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' })\r\n },\r\n 'minecraft:rarity_filter': {\r\n chance: (0, core_1.NumberNode)({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:count_on_every_layer': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:noise_threshold_count': {\r\n noise_level: (0, core_1.NumberNode)(),\r\n below_noise: (0, core_1.NumberNode)({ integer: true }),\r\n above_noise: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:noise_based_count': {\r\n noise_to_count_ratio: (0, core_1.NumberNode)({ integer: true }),\r\n noise_factor: (0, core_1.NumberNode)(),\r\n noise_offset: (0, core_1.Opt)((0, core_1.NumberNode)())\r\n },\r\n 'minecraft:environment_scan': {\r\n direction_of_search: StringNode({ enum: ['up', 'down'] }),\r\n max_steps: (0, core_1.NumberNode)({ integer: true, min: 1, max: 32 }),\r\n target_condition: Reference('block_predicate_worldgen'),\r\n allowed_search_condition: (0, core_1.Opt)(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:heightmap': {\r\n heightmap: StringNode({ enum: 'heightmap_type' })\r\n },\r\n 'minecraft:height_range': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:random_offset': {\r\n xz_spread: (0, Common_1.IntProvider)({ min: -16, max: 16 }),\r\n y_spread: (0, Common_1.IntProvider)({ min: -16, max: 16 }),\r\n },\r\n 'minecraft:surface_relative_threshold_filter': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n min_inclusive: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max_inclusive: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:surface_water_depth_filter': {\r\n max_water_depth: (0, core_1.NumberNode)({ integer: true })\r\n }\r\n }\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDensityFunctionSchemas = exports.DensityFunction = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initDensityFunctionSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n exports.DensityFunction = (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, core_1.NumberNode)(),\r\n change: () => 0\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/density_function' } }),\r\n change: () => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('density_function'),\r\n change: () => ({})\r\n }\r\n ], { choiceContext: 'density_function' }), {\r\n default: () => 0\r\n });\r\n const NoiseParameters = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/noise' } }),\r\n change: () => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('noise_parameters')\r\n }\r\n ], { choiceContext: 'noise_parameters' });\r\n const NoiseRange = (0, core_1.NumberNode)({ min: -1000000, max: 1000000 });\r\n const YRange = (0, core_1.NumberNode)({ integer: true, min: -2032 * 2, max: 2031 * 2 });\r\n schemas.register('density_function', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/density_function_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:abs': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:add': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:blend_density': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:cache_2d': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:cache_all_in_cell': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:cache_once': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:clamp': {\r\n input: exports.DensityFunction,\r\n min: NoiseRange,\r\n max: NoiseRange,\r\n },\r\n 'minecraft:constant': {\r\n argument: (0, core_1.NumberNode)(),\r\n },\r\n 'minecraft:cube': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:flat_cache': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:half_negative': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:interpolated': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:max': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:min': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:mul': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:noise': {\r\n noise: NoiseParameters,\r\n xz_scale: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n },\r\n 'minecraft:old_blended_noise': {\r\n xz_scale: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n xz_factor: (0, core_1.NumberNode)(),\r\n y_factor: (0, core_1.NumberNode)(),\r\n smear_scale_multiplier: (0, core_1.NumberNode)({ min: 1, max: 8 }),\r\n },\r\n 'minecraft:quarter_negative': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:range_choice': {\r\n input: exports.DensityFunction,\r\n min_inclusive: NoiseRange,\r\n max_exclusive: NoiseRange,\r\n when_in_range: exports.DensityFunction,\r\n when_out_of_range: exports.DensityFunction,\r\n },\r\n 'minecraft:shift': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:shift_a': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:shift_b': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:shifted_noise': {\r\n noise: NoiseParameters,\r\n xz_scale: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n shift_x: exports.DensityFunction,\r\n shift_y: exports.DensityFunction,\r\n shift_z: exports.DensityFunction,\r\n },\r\n 'minecraft:slide': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:spline': {\r\n spline: Reference('cubic_spline'),\r\n },\r\n 'minecraft:square': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:squeeze': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:weird_scaled_sampler': {\r\n rarity_value_mapper: StringNode({ enum: ['type_1', 'type_2'] }),\r\n noise: NoiseParameters,\r\n input: exports.DensityFunction,\r\n },\r\n 'minecraft:y_clamped_gradient': {\r\n from_y: YRange,\r\n to_y: YRange,\r\n from_value: NoiseRange,\r\n to_value: NoiseRange,\r\n },\r\n }\r\n }, { context: 'density_function', disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:noise',\r\n noise: 'minecraft:cave_entrance',\r\n xz_scale: 0.75,\r\n y_scale: 0.5\r\n })\r\n }));\r\n schemas.register('cubic_spline', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, core_1.NumberNode)()\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n coordinate: exports.DensityFunction,\r\n points: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n location: (0, core_1.NumberNode)(),\r\n derivative: (0, core_1.NumberNode)(),\r\n value: Reference('cubic_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.initDensityFunctionSchemas = initDensityFunctionSchemas;\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\nconst Common_1 = require(\"../Common\");\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 = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n processors: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.NumberNode)()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n rottable_blocks: (0, core_1.Opt)((0, Common_1.Tag)({ resource: 'block' }))\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:protected_blocks': {\r\n value: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } })\r\n },\r\n 'minecraft:rule': {\r\n rules: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n position_predicate: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n max_dist: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n min_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n max_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n };\r\n schemas.register('pos_rule_test', (0, 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', (0, 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: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:tag_match': {\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }\r\n }\r\n }, { context: 'rule_test', disableSwitchContext: true }));\r\n}\r\nexports.initProcessorListSchemas = initProcessorListSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const ConfiguredFeature = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n const PlacedFeature = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('placed_feature')\r\n }\r\n ], { choiceContext: 'placed_feature' });\r\n const RandomPatchConfig = {\r\n tries: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 })),\r\n xz_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n y_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n feature: PlacedFeature,\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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n };\r\n const TargetBlockState = (0, core_1.ObjectNode)({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n });\r\n const OreConfig = {\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n targets: (0, core_1.ListNode)(TargetBlockState)\r\n };\r\n const VegetationPatchConfig = {\r\n surface: StringNode({ enum: 'cave_surface' }),\r\n depth: (0, Common_1.IntProvider)({ min: 1, max: 128 }),\r\n vertical_range: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n extra_edge_column_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n vegetation_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n xz_radius: (0, Common_1.IntProvider)(),\r\n replaceable: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n ground_state: Reference('block_state_provider'),\r\n vegetation_feature: PlacedFeature\r\n };\r\n schemas.register('configured_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: (0, core_1.ObjectNode)({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: (0, Common_1.IntProvider)({ min: 0, max: 3 }),\r\n height: (0, 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: (0, core_1.BooleanNode)(),\r\n layers: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n height: (0, Common_1.IntProvider)({ min: 0 }),\r\n provider: Reference('block_state_provider')\r\n }))\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n rim_size: (0, Common_1.IntProvider)({ min: 0, max: 16 })\r\n },\r\n 'minecraft:disk': {\r\n state_provider: Reference('rule_based_block_state_provider'),\r\n target: Reference('block_predicate_worldgen'),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 8 }),\r\n half_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4 }),\r\n },\r\n 'minecraft:dripstone_cluster': {\r\n floor_to_ceiling_search_range: (0, core_1.NumberNode)({ integer: true, min: 1, max: 512 }),\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n max_stalagmite_stalactite_height_diff: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n height_deviation: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n density: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n wetness: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: (0, core_1.BooleanNode)(),\r\n exit: (0, core_1.Opt)(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n crystal_beam_target: (0, core_1.Opt)(Reference('block_pos')),\r\n spikes: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n centerX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n centerZ: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n height: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n guarded: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: (0, 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: (0, 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: (0, core_1.ListNode)(Reference('block_state')),\r\n cannot_replace: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n invalid_blocks: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } })\r\n }),\r\n layers: (0, core_1.ObjectNode)({\r\n filling: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n inner_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n middle_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n outer_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n }),\r\n crack: (0, core_1.ObjectNode)({\r\n generate_crack_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n base_crack_size: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 5 })),\r\n crack_point_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 10 })),\r\n }),\r\n noise_multiplier: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_potential_placements_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n outer_wall_distance: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n distribution_points: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n point_offset: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 0, max: 10 })),\r\n min_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n invalid_blocks_threshold: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:multiface_growth': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: ['minecraft:glow_lichen', 'minecraft:sculk_vein'] } })),\r\n search_range: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n can_place_on_floor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_ceiling: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_wall: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_be_placed_on: (0, Common_1.Tag)({ resource: 'block' })\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n fluid: Reference('block_state_provider'),\r\n barrier: Reference('block_state_provider')\r\n },\r\n 'minecraft:large_dripstone': {\r\n floor_to_ceiling_search_range: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1, max: 512 })),\r\n column_radius: (0, Common_1.IntProvider)({ min: 0, max: 60 }),\r\n height_scale: (0, Common_1.FloatProvider)({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n stalactite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n wind_speed: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n min_radius_for_wind: (0, core_1.NumberNode)({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: (0, core_1.NumberNode)({ min: 0, max: 5 })\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider'),\r\n spread_width: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n spread_height: (0, core_1.NumberNode)({ integer: true, min: 1 })\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_directional_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_spread_radius2: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_spread_radius3: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n },\r\n 'minecraft:random_patch': RandomPatchConfig,\r\n 'minecraft:random_boolean_selector': {\r\n feature_false: PlacedFeature,\r\n feature_true: PlacedFeature\r\n },\r\n 'minecraft:random_selector': {\r\n features: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n feature: PlacedFeature\r\n })),\r\n default: PlacedFeature\r\n },\r\n 'minecraft:replace_single_block': {\r\n targets: (0, core_1.ListNode)(TargetBlockState)\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 }),\r\n allowed_vertical_water_for_tree: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_replaceable: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n root_state_provider: Reference('block_state_provider'),\r\n hanging_root_state_provider: Reference('block_state_provider'),\r\n allowed_tree_position: Reference('block_predicate_worldgen'),\r\n feature: PlacedFeature\r\n },\r\n 'minecraft:scattered_ore': OreConfig,\r\n 'minecraft:sculk_patch': {\r\n charge_count: (0, core_1.NumberNode)({ integer: true, min: 1, max: 32 }),\r\n amount_per_charge: (0, core_1.NumberNode)({ integer: true, min: 1, max: 500 }),\r\n spread_attempts: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n growth_rounds: (0, core_1.NumberNode)({ integer: true, min: 0, max: 8 }),\r\n spread_rounds: (0, core_1.NumberNode)({ integer: true, min: 0, max: 8 }),\r\n extra_rare_growths: (0, Common_1.IntProvider)(),\r\n catalyst_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n },\r\n 'minecraft:sea_pickle': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:seagrass': {\r\n probability: (0, 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: (0, Common_1.Tag)({ resource: '$worldgen/placed_feature', inlineSchema: 'placed_feature' }),\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: (0, core_1.NumberNode)({ integer: true }),\r\n hole_count: (0, core_1.NumberNode)({ integer: true }),\r\n requires_block_below: (0, core_1.BooleanNode)(),\r\n valid_blocks: (0, Common_1.Tag)({ resource: 'block' })\r\n },\r\n 'minecraft:tree': {\r\n ignore_vines: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n force_dirt: (0, core_1.Opt)((0, 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 root_placer: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/root_placer_type' } }),\r\n root_provider: Reference('block_state_provider'),\r\n trunk_offset_y: (0, Common_1.IntProvider)(),\r\n above_root_placement: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n above_root_provider: Reference('block_state_provider'),\r\n above_root_placement_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mangrove_root_placer': {\r\n mangrove_root_placement: (0, core_1.ObjectNode)({\r\n max_root_width: (0, core_1.NumberNode)({ integer: true, min: 1, max: 12 }),\r\n max_root_length: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n random_skew_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n can_grow_through: (0, Common_1.Tag)({ resource: 'block' }),\r\n muddy_roots_in: (0, Common_1.Tag)({ resource: 'block' }),\r\n muddy_roots_provider: Reference('block_state_provider'),\r\n })\r\n }\r\n }\r\n }, { context: 'root_placer' })),\r\n trunk_placer: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: (0, core_1.NumberNode)({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: (0, 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: (0, Common_1.IntProvider)({ min: 1, max: 64 }),\r\n min_height_for_leaves: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:upwards_branching_trunk_placer': {\r\n extra_branch_steps: (0, Common_1.IntProvider)({ min: 1 }),\r\n extra_branch_length: (0, Common_1.IntProvider)({ min: 0 }),\r\n place_branch_per_log_probability: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n can_grow_through: (0, Common_1.Tag)({ resource: 'block' })\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n offset: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: (0, Common_1.IntProvider)({ min: 1, max: 512 }),\r\n leaf_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: (0, core_1.ListNode)((0, 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:attached_to_leaves': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n exclusion_radius_xz: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }),\r\n exclusion_radius_y: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }),\r\n required_empty_blocks: (0, core_1.NumberNode)({ integer: true, min: 1, max: 16 }),\r\n block_provider: Reference('block_state_provider'),\r\n directions: (0, core_1.ListNode)(StringNode({ enum: 'direction' }))\r\n },\r\n 'minecraft:beehive': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:leave_vine': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n },\r\n 'minecraft:twisting_vines': {\r\n spread_width: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n spread_height: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n max_height: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n },\r\n 'minecraft:underwater_magma': {\r\n floor_search_range: (0, core_1.NumberNode)({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:vegetation_patch': VegetationPatchConfig,\r\n 'minecraft:waterlogged_vegetation_patch': VegetationPatchConfig\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:tree',\r\n config: {\r\n minimum_size: {\r\n type: 'minecraft:two_layers_feature_size'\r\n },\r\n trunk_placer: {\r\n type: 'minecraft:straight_trunk_placer',\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n type: 'minecraft:blob_foliage_placer',\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('placed_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n feature: ConfiguredFeature,\r\n placement: (0, core_1.ListNode)(Reference('decorator'))\r\n }, { context: 'placed_feature' }), {\r\n default: () => ({\r\n feature: 'minecraft:oak',\r\n placement: [\r\n {\r\n type: 'minecraft:count',\r\n count: 4\r\n },\r\n {\r\n type: 'minecraft:in_square'\r\n },\r\n {\r\n type: 'minecraft:heightmap',\r\n heightmap: 'OCEAN_FLOOR'\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('feature_size', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 81 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n upper_limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n middle_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n noise: Reference('noise_parameters'),\r\n scale: (0, core_1.Mod)((0, core_1.NumberNode)({ min: Number.MIN_VALUE }), { default: () => 1 })\r\n };\r\n schemas.register('block_state_provider', (0, core_1.Mod)((0, 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: (0, Common_1.InclusiveRange)({ integer: true, min: 1, max: 64 }),\r\n slow_noise: Reference('noise_parameters'),\r\n slow_scale: (0, core_1.Mod)((0, core_1.NumberNode)({ min: Number.MIN_VALUE }), { default: () => 1 }),\r\n states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:noise_threshold_provider': {\r\n ...NoiseProvider,\r\n threshold: (0, core_1.NumberNode)({ min: -1, max: 1 }),\r\n high_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n default_state: Reference('block_state'),\r\n low_states: (0, core_1.ListNode)(Reference('block_state')),\r\n high_states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:noise_provider': {\r\n ...NoiseProvider,\r\n states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:randomized_int_state_provider': {\r\n property: StringNode(),\r\n values: (0, 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: (0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, 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('rule_based_block_state_provider', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n fallback: Reference('block_state_provider'),\r\n rules: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n if_true: Reference('block_predicate_worldgen'),\r\n then: Reference('block_state_provider')\r\n }))\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n fallback: {\r\n type: 'minecraft:simple_state_provider'\r\n }\r\n })\r\n }));\r\n const Offset = {\r\n offset: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 }))\r\n };\r\n schemas.register('block_predicate_worldgen', (0, core_1.Mod)((0, 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: (0, core_1.ListNode)(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:any_of': {\r\n predicates: (0, core_1.ListNode)(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:has_sturdy_face': {\r\n ...Offset,\r\n direction: StringNode({ enum: 'direction' })\r\n },\r\n 'minecraft:inside_world_bounds': {\r\n ...Offset,\r\n },\r\n 'minecraft:matching_block_tag': {\r\n ...Offset,\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n },\r\n 'minecraft:matching_blocks': {\r\n ...Offset,\r\n blocks: (0, Common_1.Tag)({ resource: 'block' })\r\n },\r\n 'minecraft:matching_fluids': {\r\n ...Offset,\r\n fluids: (0, Common_1.Tag)({ resource: 'fluid' })\r\n },\r\n 'minecraft:not': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:would_survive': {\r\n ...Offset,\r\n state: Reference('block_state')\r\n }\r\n }\r\n }, { context: 'block_predicate' }), {\r\n default: () => ({\r\n type: 'minecraft:true'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nconst DensityFunction_1 = require(\"./DensityFunction\");\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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n sea_level: (0, core_1.NumberNode)({ integer: true }),\r\n disable_mob_generation: (0, core_1.BooleanNode)(),\r\n aquifers_enabled: (0, core_1.BooleanNode)(),\r\n ore_veins_enabled: (0, core_1.BooleanNode)(),\r\n legacy_random_source: (0, core_1.BooleanNode)(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: (0, core_1.ObjectNode)({\r\n min_y: (0, core_1.NumberNode)({ integer: true, min: -2048, max: 2047 }),\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n size_horizontal: (0, core_1.NumberNode)({ integer: true }),\r\n size_vertical: (0, core_1.NumberNode)({ integer: true }),\r\n }),\r\n noise_router: (0, core_1.ObjectNode)({\r\n barrier: DensityFunction_1.DensityFunction,\r\n fluid_level_floodedness: DensityFunction_1.DensityFunction,\r\n fluid_level_spread: DensityFunction_1.DensityFunction,\r\n lava: DensityFunction_1.DensityFunction,\r\n temperature: DensityFunction_1.DensityFunction,\r\n vegetation: DensityFunction_1.DensityFunction,\r\n continents: DensityFunction_1.DensityFunction,\r\n erosion: DensityFunction_1.DensityFunction,\r\n depth: DensityFunction_1.DensityFunction,\r\n ridges: DensityFunction_1.DensityFunction,\r\n initial_density_without_jaggedness: DensityFunction_1.DensityFunction,\r\n final_density: DensityFunction_1.DensityFunction,\r\n vein_toggle: DensityFunction_1.DensityFunction,\r\n vein_ridged: DensityFunction_1.DensityFunction,\r\n vein_gap: DensityFunction_1.DensityFunction,\r\n }),\r\n spawn_target: (0, core_1.ListNode)(Reference('parameter_point')),\r\n surface_rule: Reference('material_rule'),\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', (0, core_1.ObjectNode)({\r\n target: (0, core_1.NumberNode)(),\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n offset: (0, core_1.NumberNode)({ integer: true })\r\n }));\r\n schemas.register('generator_layer', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: (0, 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.initStructureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nconst Biome_1 = require(\"./Biome\");\r\nfunction initStructureSchemas(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('structure', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_type' } }),\r\n biomes: (0, Common_1.Tag)({ resource: '$worldgen/biome' }),\r\n step: StringNode({ enum: 'decoration_step' }),\r\n spawn_overrides: (0, core_1.MapNode)(StringNode({ enum: 'mob_category' }), (0, core_1.ObjectNode)({\r\n bounding_box: StringNode({ enum: ['piece', 'full'] }),\r\n spawns: Biome_1.MobCategorySpawnSettings,\r\n })),\r\n terrain_adaptation: (0, core_1.Opt)(StringNode({ enum: ['none', 'beard_thin', 'beard_box', 'bury'] })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:jigsaw': {\r\n start_pool: StringNode({ validator: 'resource', params: { pool: '$worldgen/template_pool' } }),\r\n size: (0, core_1.NumberNode)({ integer: true }),\r\n start_height: Reference('height_provider'),\r\n start_jigsaw_name: (0, core_1.Opt)(StringNode()),\r\n project_start_to_heightmap: (0, core_1.Opt)(StringNode({ enum: 'heightmap_type' })),\r\n max_distance_from_center: (0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 1, max: 128 }), { default: () => 80 }),\r\n use_expansion_hack: (0, core_1.BooleanNode)(),\r\n },\r\n 'minecraft:mineshaft': {\r\n mineshaft_type: StringNode({ enum: ['normal', 'mesa'] }),\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: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n cluster_probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:ruined_portal': {\r\n setups: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n placement: StringNode({ enum: ['on_land_surface', 'partly_buried', 'on_ocean_floor', 'in_mountain', 'underground', 'in_nether'] }),\r\n air_pocket_probability: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n mossiness: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n overgrown: (0, core_1.BooleanNode)(),\r\n vines: (0, core_1.BooleanNode)(),\r\n can_be_cold: (0, core_1.BooleanNode)(),\r\n replace_with_blackstone: (0, core_1.BooleanNode)(),\r\n weight: (0, core_1.NumberNode)({ min: 0 })\r\n }))\r\n },\r\n 'minecraft:shipwreck': {\r\n is_beached: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }\r\n }\r\n }, { context: 'structure_feature' }), {\r\n default: () => ({\r\n type: 'minecraft:jigsaw',\r\n step: 'surface_structures',\r\n size: 6,\r\n max_distance_from_center: 80,\r\n })\r\n }));\r\n}\r\nexports.initStructureSchemas = initStructureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureSetSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initStructureSetSchemas(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 StructureSet = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/structure_set' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('structure_set')\r\n }\r\n ], { choiceContext: 'structure_set' });\r\n schemas.register('structure_set', (0, core_1.ObjectNode)({\r\n structures: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n structure: (0, Common_1.Tag)({ resource: '$worldgen/structure' }),\r\n weight: (0, core_1.NumberNode)({ integer: true, min: 1 })\r\n })),\r\n placement: Reference('structure_placement')\r\n }, { context: 'structure_set' }));\r\n schemas.register('structure_placement', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_placement' } }),\r\n salt: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n frequency_reduction_method: (0, core_1.Opt)(StringNode({ enum: ['default', 'legacy_type_1', 'legacy_type_2', 'legacy_type_3'] })),\r\n frequency: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n exclusion_zone: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n other_set: StructureSet,\r\n chunk_count: (0, core_1.NumberNode)({ integer: true, min: 1, max: 16 })\r\n })),\r\n locate_offset: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:concentric_rings': {\r\n distance: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n spread: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n count: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4095 }),\r\n preferred_biomes: (0, Common_1.Tag)({ resource: '$worldgen/biome' })\r\n },\r\n 'minecraft:random_spread': {\r\n spread_type: (0, core_1.Opt)(StringNode({ enum: ['linear', 'triangular'] })),\r\n spacing: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n separation: (0, core_1.Mod)((0, 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 }\r\n }\r\n }, { context: 'structure_placement' }), {\r\n default: () => ({\r\n type: 'minecraft:random_spread',\r\n spacing: 10,\r\n separation: 5,\r\n salt: Math.floor(Math.random() * 2147483647)\r\n })\r\n }));\r\n}\r\nexports.initStructureSetSchemas = initStructureSetSchemas;\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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.NumberNode)(),\r\n max_threshold: (0, core_1.NumberNode)()\r\n },\r\n 'minecraft:not': {\r\n invert: Reference('material_condition')\r\n },\r\n 'minecraft:stone_depth': {\r\n offset: (0, core_1.NumberNode)({ integer: true }),\r\n surface_type: StringNode({ enum: 'cave_surface' }),\r\n add_surface_depth: (0, core_1.BooleanNode)(),\r\n secondary_depth_range: (0, core_1.NumberNode)({ integer: true }),\r\n },\r\n 'minecraft:vertical_gradient': {\r\n random_name: StringNode(),\r\n true_at_and_below: Reference('vertical_anchor'),\r\n false_at_and_above: Reference('vertical_anchor'),\r\n },\r\n 'minecraft:water': {\r\n offset: (0, core_1.NumberNode)({ integer: true }),\r\n surface_depth_multiplier: (0, core_1.NumberNode)({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: (0, core_1.BooleanNode)()\r\n },\r\n 'minecraft:y_above': {\r\n anchor: Reference('vertical_anchor'),\r\n surface_depth_multiplier: (0, core_1.NumberNode)({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n element_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_pool_element' } }),\r\n projection: StringNode({ enum: ['rigid', 'terrain_matching'] }),\r\n [core_1.Switch]: [{ push: 'element_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:feature_pool_element': {\r\n feature: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n 'minecraft:legacy_single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n },\r\n 'minecraft:list_pool_element': {\r\n elements: (0, 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.initWorldPresetSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initWorldPresetSchemas(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('world_preset', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n dimensions: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$dimension', isDefinition: true } }), Reference('dimension'))\r\n }, { context: 'world_preset' }), {\r\n default: () => ({\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: 'minecraft:overworld',\r\n },\r\n settings: 'minecraft:overworld',\r\n },\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: 'minecraft:nether',\r\n },\r\n settings: 'minecraft:nether',\r\n },\r\n },\r\n 'minecraft:the_end': {\r\n type: 'minecraft:the_end',\r\n generator: {\r\n type: 'minecraft:noise',\r\n biome_source: {\r\n type: 'minecraft:the_end',\r\n },\r\n settings: 'minecraft:end',\r\n },\r\n },\r\n }\r\n })\r\n }));\r\n schemas.register('flat_level_generator_preset', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n display: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n settings: Reference('flat_generator_settings'),\r\n }), {\r\n default: () => ({\r\n display: 'minecraft:grass_block',\r\n settings: {\r\n lakes: false,\r\n features: false,\r\n biome: 'minecraft:plains',\r\n structure_overrides: [],\r\n layers: [\r\n {\r\n height: 3,\r\n block: 'minecraft:dirt'\r\n },\r\n {\r\n height: 1,\r\n block: 'minecraft:grass_block'\r\n }\r\n ]\r\n }\r\n })\r\n }));\r\n}\r\nexports.initWorldPresetSchemas = initWorldPresetSchemas;\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 DensityFunction_1 = require(\"./DensityFunction\");\r\nconst Feature_1 = require(\"./Feature\");\r\nconst NoiseSettings_1 = require(\"./NoiseSettings\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nconst Structure_1 = require(\"./Structure\");\r\nconst StructureSet_1 = require(\"./StructureSet\");\r\nconst SurfaceRule_1 = require(\"./SurfaceRule\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nconst WorldPreset_1 = require(\"./WorldPreset\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n // `ProcessorList.ts`, `DensityFunction.ts`, and `Biome.ts` have exports. They should be initialized first. \r\n (0, ProcessorList_1.initProcessorListSchemas)(schemas, collections);\r\n (0, DensityFunction_1.initDensityFunctionSchemas)(schemas, collections);\r\n (0, Biome_1.initBiomeSchemas)(schemas, collections);\r\n (0, Carver_1.initCarverSchemas)(schemas, collections);\r\n (0, Decorator_1.initDecoratorSchemas)(schemas, collections);\r\n (0, Feature_1.initFeatureSchemas)(schemas, collections);\r\n (0, NoiseSettings_1.initNoiseSettingsSchemas)(schemas, collections);\r\n (0, Structure_1.initStructureSchemas)(schemas, collections);\r\n (0, StructureSet_1.initStructureSetSchemas)(schemas, collections);\r\n (0, SurfaceRule_1.initSurfaceRuleSchemas)(schemas, collections);\r\n (0, TemplatePool_1.initTemplatePoolSchemas)(schemas, collections);\r\n (0, WorldPreset_1.initWorldPresetSchemas)(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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n generate_features: (0, core_1.BooleanNode)(),\r\n bonus_chest: (0, core_1.BooleanNode)(),\r\n seed: (0, core_1.NumberNode)({ integer: true }),\r\n dimensions: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:overworld\"\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:nether\"\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst ChatType_1 = require(\"./ChatType\");\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 (0, Common_1.initCommonSchemas)(schemas, collections);\r\n (0, ChatType_1.initChatTypeSchemas)(schemas, collections);\r\n (0, Advancement_1.initAdvancementSchemas)(schemas, collections);\r\n (0, assets_1.initAssetsSchemas)(schemas, collections);\r\n (0, Condition_1.initConditionSchemas)(schemas, collections);\r\n (0, DimensionType_1.initDimensionTypeSchemas)(schemas, collections);\r\n (0, Dimension_1.initDimensionSchemas)(schemas, collections);\r\n (0, ItemModifier_1.initItemModifierSchemas)(schemas, collections);\r\n (0, LootTable_1.initLootTableSchemas)(schemas, collections);\r\n (0, PackMcmeta_1.initPackMcmetaSchemas)(schemas, collections);\r\n (0, Predicates_1.initPredicatesSchemas)(schemas, collections);\r\n (0, Recipe_1.initRecipeSchemas)(schemas, collections);\r\n (0, Tags_1.initTagsSchemas)(schemas, collections);\r\n (0, TextComponent_1.initTextComponentSchemas)(schemas, collections);\r\n (0, worldgen_1.initWorldgenSchemas)(schemas, collections);\r\n (0, 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 var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\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.prototype.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 = exports.lootContext = 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 (0, 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 (0, schemas_1.initSchemas)(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n"],"names":["core_1","require$$0","require$$1","require$$2","Common_1","ProcessorList_1","DensityFunction_1","Biome_1","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","this"],"mappings":"+1BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAI,CAAE,EACrC,GAAA,gBAAG,OAC1B,YAAyB,EAAa,CAClC,EAAY,SAAS,sBAAuB,CACxC,qCACA,4BACA,+BACA,yBACA,0BACA,8BACA,gCACA,6BACA,yBACA,kCACA,4BACA,2BACA,wBACA,+BACA,iCACA,6BACA,0BACA,+BACA,gCACA,uBACA,8BACA,oCACA,+BACA,yCACA,+BACA,uBACA,6BACA,qBACA,0BACA,yBACA,4CACA,+BACA,0CACA,iCACA,4BACA,gCACA,0BACA,yBACA,6BACA,2BACA,4BACA,wBACA,uBACA,iBACA,4CACA,4CACA,2BACA,uBACA,uBACA,2BACA,2BACR,CAAK,EACD,EAAY,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,SACR,CAAK,EACD,EAAY,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,MACR,CAAK,EACD,EAAY,SAAS,WAAY,CAC7B,WACA,WACA,YACA,WACR,CAAK,EACD,EAAY,SAAS,gBAAiB,CAClC,OACA,SACA,gBACA,eACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,eACA,OACA,SACA,eACR,CAAK,EACD,EAAY,SAAS,iCAAkC,CACnD,gCACA,sCACA,qBACR,CAAK,EACD,EAAY,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,cACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,SACR,CAAK,EACD,EAAY,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,iBACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,WACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,QACA,UACA,aACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,kBACR,CAAK,EACD,EAAY,SAAS,kBAAmB,CACpC,MACA,QACR,CAAK,EACD,EAAY,SAAS,kBAAmB,CACpC,iBACA,QACA,sBACA,yBACA,qBACA,cACA,mBACA,yBACA,gBACA,qBACA,wBACR,CAAK,EACD,EAAY,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,iBACR,CAAK,EACD,EAAY,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,QACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,QACA,SACA,UACA,aACA,SACA,OACA,OACA,OACA,aACA,OACA,SACA,OACA,QACA,QACA,MACA,OACR,CAAK,EACD,EAAY,SAAS,eAAgB,CACjC,QACA,SACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,OACA,KACA,QACA,OACA,QACA,MACR,CAAK,EACD,EAAY,SAAS,OAAQ,CACzB,IACA,IACA,GACR,CAAK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"} \ No newline at end of file +{"version":3,"file":"index.80f19794.js","sources":["../../node_modules/@mcschema/java-1.19/lib/Collections.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.19/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.19/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.19/lib/schemas/assets/Font.js","../../node_modules/@mcschema/java-1.19/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.19/lib/schemas/ChatType.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Dimension.js","../../node_modules/@mcschema/java-1.19/lib/schemas/DimensionType.js","../../node_modules/@mcschema/java-1.19/lib/schemas/ItemModifier.js","../../node_modules/@mcschema/java-1.19/lib/LootContext.js","../../node_modules/@mcschema/java-1.19/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.19/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.19/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.19/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/Biome.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/Carver.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/Decorator.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/DensityFunction.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/ProcessorList.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/Feature.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/NoiseSettings.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/Structure.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/StructureSet.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/SurfaceRule.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/TemplatePool.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/WorldPreset.js","../../node_modules/@mcschema/java-1.19/lib/schemas/worldgen/index.js","../../node_modules/@mcschema/java-1.19/lib/schemas/WorldSettings.js","../../node_modules/@mcschema/java-1.19/lib/schemas/index.js","../../node_modules/@mcschema/java-1.19/lib/index.js"],"sourcesContent":["\"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:allay_drop_item_on_block',\r\n 'minecraft:avoid_vibration',\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:kill_mob_near_sculk_catalyst',\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:thrown_item_picked_up_by_player',\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('decoration_step', [\r\n 'raw_generation',\r\n 'lakes',\r\n 'local_modifications',\r\n 'underground_structures',\r\n 'surface_structures',\r\n 'strongholds',\r\n 'underground_ores',\r\n 'underground_decoration',\r\n 'fluid_springs',\r\n 'vegetal_decoration',\r\n 'top_layer_modification'\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 collections.register('glyph_provider_type', [\r\n 'bitmap',\r\n 'ttf',\r\n 'space',\r\n 'legacy_unicode',\r\n ]);\r\n collections.register('mob_category', [\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 ]);\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 = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n display: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n icon: (0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: (0, 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: (0, core_1.Opt)(StringNode()),\r\n frame: (0, core_1.Opt)(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n announce_to_chat: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n hidden: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: (0, core_1.MapNode)(StringNode(), Reference('advancement_criteria')),\r\n requirements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ListNode)(StringNode() // TODO: add validation\r\n ))),\r\n rewards: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n function: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n player: (0, 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:allay_drop_item_on_block': {\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:bee_nest_destroyed': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n item: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: (0, core_1.Opt)((0, 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: (0, 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: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate'))),\r\n source: (0, core_1.Opt)(EntityPredicate)\r\n },\r\n 'minecraft:enter_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: (0, core_1.Opt)(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: (0, core_1.Opt)(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:fall_from_height': {\r\n start_position: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:kill_mob_near_sculk_catalyst': {\r\n entity: EntityPredicate,\r\n killing_blow: (0, core_1.Opt)(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: Reference('int_bounds'),\r\n victims: (0, core_1.Opt)((0, core_1.ListNode)(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: (0, 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:nether_travel': {\r\n start_position: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n },\r\n 'minecraft:placed_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, 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: (0, core_1.Opt)(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: (0, 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: (0, 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: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: (0, 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: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:thrown_item_picked_up_by_player': {\r\n entity: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: (0, core_1.Opt)(Reference('float_bounds'))\r\n },\r\n 'minecraft:used_totem': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:using_item': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_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) => (0, core_1.ListNode)((0, core_1.NumberNode)({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n parent: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n gui_light: (0, core_1.Opt)(StringNode({ enum: 'gui_light' })),\r\n textures: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), Texture)),\r\n elements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: (0, core_1.NumberEnum)({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n shade: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n faces: (0, core_1.MapNode)(StringNode({ enum: 'direction' }), (0, core_1.ObjectNode)({\r\n texture: Texture,\r\n uv: (0, core_1.Opt)(Vec(4)),\r\n cullface: (0, core_1.Opt)(StringNode({ enum: 'direction' })),\r\n rotation: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tintindex: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'display_position' }), (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n predicate: (0, core_1.MapNode)(StringNode({ enum: 'item_model_predicates' }), (0, 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', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n variants: (0, 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: (0, core_1.ObjectNode)({\r\n multipart: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n when: (0, 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: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n y: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n };\r\n schemas.register('model_variant', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n ...VariantChildren,\r\n weight: (0, core_1.Opt)((0, 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', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n OR: (0, 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.initFontSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initFontSchemas(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('font', (0, core_1.ObjectNode)({\r\n providers: (0, core_1.ListNode)(Reference('glyph_provider'))\r\n }, { context: 'font' }));\r\n schemas.register('glyph_provider', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ enum: 'glyph_provider_type' }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'bitmap': {\r\n file: StringNode({ validator: 'resource', params: { pool: '$texture', suffix: '.png' } }),\r\n height: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n ascent: (0, core_1.NumberNode)({ integer: true }),\r\n chars: (0, core_1.ListNode)(StringNode(), { minLength: 1 })\r\n },\r\n 'ttf': {\r\n file: StringNode({ validator: 'resource', params: { pool: '$texture', suffix: '.png' } }),\r\n size: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n oversample: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n shift: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.NumberNode)(), { minLength: 2, maxLength: 2 })),\r\n skip: (0, core_1.Opt)((0, core_1.StringOrList)(StringNode()))\r\n },\r\n 'space': {\r\n advances: (0, core_1.MapNode)(StringNode(), (0, core_1.NumberNode)())\r\n },\r\n 'legacy_unicode': {\r\n sizes: StringNode(),\r\n template: StringNode()\r\n }\r\n }\r\n }, { context: 'glyph_provider' }), {\r\n default: () => ({\r\n type: 'bitmap',\r\n }),\r\n }));\r\n}\r\nexports.initFontSchemas = initFontSchemas;\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\nconst Font_1 = require(\"./Font\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n (0, BlockDefinition_1.initBlockDefinitionSchemas)(schemas, collections);\r\n (0, Font_1.initFontSchemas)(schemas, collections);\r\n (0, Model_1.initModelSchemas)(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initChatTypeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initChatTypeSchemas(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('chat_type', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n chat: Reference('text_decoration'),\r\n narration: Reference('text_decoration'),\r\n }, { context: 'chat_type' }), {\r\n default: () => ({\r\n chat: {\r\n translation_key: 'chat.type.text',\r\n parameters: ['sender', 'content'],\r\n },\r\n narration: {\r\n translation_key: 'chat.type.text.narrate',\r\n parameters: ['sender', 'content'],\r\n }\r\n })\r\n }));\r\n schemas.register('text_decoration', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n translation_key: StringNode(),\r\n parameters: (0, core_1.ListNode)(StringNode({ enum: ['sender', 'target', 'content'] })),\r\n style: (0, core_1.Opt)(Reference('text_style'))\r\n }, { context: 'text_decoration' }), {\r\n default: () => ({\r\n translation_key: 'chat.type.text',\r\n parameters: ['sender', 'content'],\r\n style: {},\r\n })\r\n }));\r\n}\r\nexports.initChatTypeSchemas = initChatTypeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.Tag = exports.InclusiveRange = exports.IntProvider = exports.FloatProvider = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.FunctionCases = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultNoiseSettings = {\r\n sea_level: 63,\r\n ore_veins_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n legacy_random_source: 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: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\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 noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => (0, core_1.Opt)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer })),\r\n max: (0, core_1.Opt)((0, 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', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)(Reference('number_provider')),\r\n max: (0, core_1.Opt)(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: (0, 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] = (0, 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 = (0, core_1.ObjectNode)({\r\n type: (0, core_1.Mod)((0, 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 (0, 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: (0, 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: (0, core_1.Opt)((0, 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: (0, 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: (0, 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: (0, core_1.NumberNode)(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)(config),\r\n max_exclusive: (0, core_1.NumberNode)(config)\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n mean: (0, core_1.NumberNode)(),\r\n deviation: (0, core_1.NumberNode)()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n plateau: (0, core_1.NumberNode)()\r\n })\r\n }\r\n });\r\n schemas.register('float_provider', (0, 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: (0, core_1.NumberNode)({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n mean: (0, core_1.NumberNode)(),\r\n deviation: (0, core_1.NumberNode)()\r\n })\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n });\r\n schemas.register('int_provider', (0, exports.IntProvider)());\r\n schemas.register('vertical_anchor', (0, 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: (0, core_1.ObjectNode)({\r\n [t]: (0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n }));\r\n exports.InclusiveRange = (config) => (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)(config),\r\n max_inclusive: (0, core_1.NumberNode)(config)\r\n }, { context: 'range' });\r\n schemas.register('noise_parameters', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n firstOctave: (0, core_1.NumberNode)({ integer: true }),\r\n amplitudes: (0, core_1.ListNode)((0, core_1.NumberNode)())\r\n }, { context: 'noise_parameters' }), {\r\n default: () => ({\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n })\r\n }));\r\n exports.Tag = (config) => (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: config.resource, allowTag: true } }),\r\n change: (v) => {\r\n if (Array.isArray(v) && typeof v[0] === 'string' && !v[0].startsWith('#')) {\r\n return v[0];\r\n }\r\n return undefined;\r\n }\r\n },\r\n {\r\n type: 'list',\r\n node: (0, core_1.ListNode)(config.inlineSchema\r\n ? (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: config.resource } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference(config.inlineSchema)\r\n }\r\n ], { choiceContext: 'tag.list' })\r\n : StringNode({ validator: 'resource', params: { pool: config.resource } })),\r\n change: (v) => {\r\n if (typeof v === 'string' && !v.startsWith('#')) {\r\n return [v];\r\n }\r\n return [];\r\n }\r\n },\r\n ], { choiceContext: 'tag' });\r\n exports.ConditionCases = (entitySourceNode = StringNode({ enum: 'entity_source' })) => ({\r\n 'minecraft:alternative': {\r\n terms: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetY: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetZ: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n looting_multiplier: (0, 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: (0, core_1.ListNode)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n thundering: (0, core_1.Opt)((0, 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: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n bonusMultiplier: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: (0, core_1.Mod)((0, 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: (0, core_1.ListNode)((0, 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: (0, core_1.ListNode)(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: (0, core_1.Opt)((0, exports.Tag)({ resource: '$worldgen/structure' })),\r\n decoration: (0, core_1.Opt)(StringNode({ enum: 'map_decoration' })),\r\n zoom: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n search_radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n skip_existing_chunks: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: (0, core_1.ListNode)(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_contents': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n entries: (0, core_1.ListNode)(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_instrument': {\r\n options: StringNode({ validator: 'resource', params: { pool: 'instrument', requireTag: true } })\r\n },\r\n 'minecraft:set_loot_table': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n lore: (0, core_1.ListNode)(Reference('text_component')),\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_name': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n name: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, 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.NoiseSettingsPresets = (node) => (0, core_1.ObjectOrPreset)(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n sea_level: 32,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: true,\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 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 noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n },\r\n 'minecraft:end': {\r\n sea_level: 0,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: true,\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 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 noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n sea_level: 63,\r\n ore_veins_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n legacy_random_source: 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: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\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 noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n },\r\n 'minecraft:caves': {\r\n sea_level: 32,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: 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: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\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 noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n sea_level: 0,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: 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: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\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 noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\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', (0, core_1.ObjectOrList)(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', (0, core_1.Mod)((0, 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]: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: '$dimension_type' } }),\r\n generator: (0, 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 settings: (0, Common_1.NoiseSettingsPresets)(Reference('noise_settings')),\r\n biome_source: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: ['minecraft:overworld', 'minecraft:nether'] } })),\r\n biomes: (0, core_1.Mod)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 62 })),\r\n biomes: (0, Common_1.Tag)({ resource: '$worldgen/biome' })\r\n },\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: Reference('flat_generator_settings')\r\n }\r\n }\r\n }, { disableSwitchContext: true })\r\n }, { category: 'pool', context: 'dimension' }), {\r\n default: () => {\r\n return {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n biome_source: {\r\n type: 'minecraft:fixed',\r\n biome: 'minecraft:plains'\r\n },\r\n settings: 'minecraft:overworld'\r\n }\r\n };\r\n }\r\n }));\r\n schemas.register('flat_generator_settings', (0, core_1.ObjectNode)({\r\n biome: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n features: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n layers: (0, core_1.ListNode)(Reference('generator_layer')),\r\n structure_overrides: (0, Common_1.Tag)({ resource: '$worldgen/structure_set', inlineSchema: 'structure_set' })\r\n }));\r\n const ClimateParameter = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ListNode)((0, 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('parameter_point', (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }));\r\n schemas.register('generator_biome', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: Reference('parameter_point'),\r\n }, { context: 'generator_biome' }), {\r\n default: () => ({\r\n biome: 'minecraft:plains',\r\n parameters: {\r\n temperature: 0,\r\n humidity: 0,\r\n continentalness: 0,\r\n erosion: 0,\r\n weirdness: 0,\r\n depth: 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n ultrawarm: (0, core_1.BooleanNode)(),\r\n natural: (0, core_1.BooleanNode)(),\r\n piglin_safe: (0, core_1.BooleanNode)(),\r\n respawn_anchor_works: (0, core_1.BooleanNode)(),\r\n bed_works: (0, core_1.BooleanNode)(),\r\n has_raids: (0, core_1.BooleanNode)(),\r\n has_skylight: (0, core_1.BooleanNode)(),\r\n has_ceiling: (0, core_1.BooleanNode)(),\r\n coordinate_scale: (0, core_1.NumberNode)({ min: 0.00001, max: 30000000 }),\r\n ambient_light: (0, core_1.NumberNode)(),\r\n fixed_time: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n logical_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4064 }),\r\n effects: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: ['minecraft:overworld', 'minecraft:the_nether', 'minecraft:the_end'] } })),\r\n infiniburn: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n min_y: (0, core_1.NumberNode)({ integer: true, min: -2032, max: 2031 }),\r\n height: (0, core_1.NumberNode)({ integer: true, min: 16, max: 4064 }),\r\n monster_spawn_light_level: (0, Common_1.IntProvider)({ min: 0, max: 15 }),\r\n monster_spawn_block_light_limit: (0, core_1.NumberNode)({ integer: true, min: 0, max: 15 }),\r\n }, { context: 'dimension_type' }), node => ({\r\n default: () => ({\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: 384,\r\n effects: 'minecraft:overworld',\r\n infiniburn: '#minecraft:infiniburn_overworld',\r\n min_y: -64,\r\n height: 384,\r\n monster_spawn_block_light_limit: 0,\r\n monster_spawn_light_level: {\r\n type: 'minecraft:uniform',\r\n value: {\r\n min_inclusive: 0,\r\n max_inclusive: 7,\r\n },\r\n },\r\n }),\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) > 2032) {\r\n errors.add(path.push('height'), 'error.min_y_plus_height', 2032);\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', (0, core_1.ObjectOrList)(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: (0, core_1.Opt)((0, core_1.ListNode)(Reference('condition')))\r\n };\r\n schemas.register('function', (0, core_1.Mod)((0, 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]: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: (0, core_1.Opt)((0, 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 (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: (0, core_1.Opt)(Reference('number_provider')),\r\n entries: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 1 }), weightMod)),\r\n quality: (0, core_1.Opt)((0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: (0, 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', (0, core_1.Mod)((0, 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 id: (0, core_1.Opt)(StringNode({ validator: 'uuid' })),\r\n slot: (0, 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 = 10;\r\nfunction initPackMcmetaSchemas(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('pack_mcmeta', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack_format: (0, core_1.Mod)((0, 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: Reference('text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n })\r\n }),\r\n filter: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n block: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n namespace: (0, core_1.Opt)(StringNode({ validator: 'regex_pattern' })),\r\n path: (0, core_1.Opt)(StringNode({ validator: 'regex_pattern' })),\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 = (0, 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: (0, core_1.NumberNode)(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max: (0, core_1.Opt)((0, 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: (0, core_1.BooleanNode)(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', (0, core_1.ObjectNode)({\r\n items: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'item' } }))),\r\n tag: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: (0, core_1.Opt)((0, core_1.ListNode)(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', (0, core_1.ObjectNode)({\r\n enchantment: (0, 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', (0, core_1.ObjectNode)({\r\n blocks: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n fluid: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', (0, core_1.ObjectNode)({\r\n position: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n structure: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/structure' } })),\r\n dimension: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n block: (0, core_1.Opt)(Reference('block_predicate')),\r\n fluid: (0, core_1.Opt)(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', (0, 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('status_effect_predicate', (0, core_1.ObjectNode)({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n visible: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', (0, 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', (0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n type_specific: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n type: StringNode({ enum: ['any', 'cat', 'fishing_hook', 'frog', 'lightning', 'player', 'slime'] }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'cat': {\r\n variant: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'cat_variant' } }))\r\n },\r\n 'fishing_hook': {\r\n in_open_water: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'frog': {\r\n variant: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'frog_variant' } }))\r\n },\r\n 'lightning': {\r\n blocks_set_on_fire: (0, core_1.Opt)(Reference('int_bounds')),\r\n entity_struck: (0, core_1.Opt)(Reference('entity_predicate'))\r\n },\r\n 'player': {\r\n gamemode: (0, core_1.Opt)(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), (0, core_1.ChoiceNode)([\r\n {\r\n type: 'boolean',\r\n node: (0, core_1.BooleanNode)(),\r\n change: () => true\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.MapNode)(StringNode(), (0, core_1.BooleanNode)())\r\n }\r\n ]))),\r\n recipes: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), (0, core_1.BooleanNode)())),\r\n stats: (0, core_1.Opt)((0, core_1.ListNode)(Reference('statistic_predicate'))),\r\n looking_at: (0, core_1.Opt)(Reference('entity_predicate'))\r\n },\r\n 'slime': {\r\n size: Reference('int_bounds')\r\n },\r\n }\r\n })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: (0, core_1.Opt)(StringNode({ validator: 'team' })),\r\n location: (0, core_1.Opt)(Reference('location_predicate')),\r\n stepping_on: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n flags: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n is_on_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sneaking: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sprinting: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_swimming: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_baby: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n equipment: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n vehicle: (0, core_1.Opt)(Reference('entity_predicate')),\r\n passenger: (0, core_1.Opt)(Reference('entity_predicate')),\r\n targeted_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n effects: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n is_explosion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_projectile: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_lightning: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_armor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_invulnerability: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n direct_entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', (0, core_1.ObjectNode)({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n type: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.Opt)(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: (0, core_1.ListNode)(StringNode()),\r\n key: (0, 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: (0, core_1.Opt)(StringNode()),\r\n ingredients: (0, core_1.ListNode)(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: (0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.Mod)((0, 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) => (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n values: (0, core_1.ListNode)((0, 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: (0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: (0, 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 schemas.register('advancement_tag', TagBase('$advancement'));\r\n schemas.register('dimension_tag', TagBase('$dimension'));\r\n schemas.register('dimension_type_tag', TagBase('$dimension_type'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('item_modifier_tag', TagBase('$item_modifier'));\r\n schemas.register('loot_table_tag', TagBase('$loot_table'));\r\n schemas.register('predicate_tag', TagBase('$predicate'));\r\n schemas.register('recipe_tag', TagBase('$recipe'));\r\n schemas.register('structure_tag', TagBase('$structure'));\r\n schemas.register('biome_tag', TagBase('$worldgen/biome'));\r\n schemas.register('configured_carver_tag', TagBase('$worldgen/configured_carver'));\r\n schemas.register('configured_feature_tag', TagBase('$worldgen/configured_feature'));\r\n schemas.register('structure_tag', TagBase('$worldgen/structure'));\r\n schemas.register('configured_surface_builder_tag', TagBase('$worldgen/configured_surface_builder'));\r\n schemas.register('density_function_tag', TagBase('$worldgen/density_function'));\r\n schemas.register('flat_level_generator_preset_tag', TagBase('$worldgen/flat_level_generator_preset'));\r\n schemas.register('noise_tag', TagBase('$worldgen/noise'));\r\n schemas.register('noise_settings_tag', TagBase('$worldgen/noise_settings'));\r\n schemas.register('placed_feature_tag', TagBase('$worldgen/placed_feature'));\r\n schemas.register('processor_list_tag', TagBase('$worldgen/processor_list'));\r\n schemas.register('structure_set_tag', TagBase('$worldgen/structure_set'));\r\n schemas.register('template_pool_tag', TagBase('$worldgen/template_pool'));\r\n schemas.register('world_preset_tag', TagBase('$worldgen/world_preset'));\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', (0, core_1.Mod)((0, 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: (0, 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: (0, 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 StyleFields = {\r\n color: (0, core_1.Opt)(StringNode()) /* TODO */,\r\n font: (0, core_1.Opt)(StringNode()),\r\n bold: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n italic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n underlined: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n strikethrough: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n obfuscated: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n insertion: (0, core_1.Opt)(StringNode()),\r\n };\r\n schemas.register('text_style', (0, core_1.ObjectNode)({\r\n ...StyleFields\r\n }, { context: 'text_component_object' }));\r\n const CommonFields = {\r\n ...StyleFields,\r\n clickEvent: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('text_component')),\r\n contents: (0, core_1.Opt)(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tag: (0, 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: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n name: (0, core_1.Opt)(StringNode()),\r\n type: (0, core_1.Opt)(StringNode()),\r\n id: (0, core_1.Opt)(StringNode())\r\n })),\r\n contents: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, 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: (0, core_1.Opt)(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n translate: StringNode(),\r\n with: (0, 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: (0, core_1.ObjectNode)({\r\n score: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n separator: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: (0, core_1.Opt)(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: (0, core_1.Opt)(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n separator: (0, 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', (0, core_1.Mod)((0, 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 = exports.MobCategorySpawnSettings = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initBiomeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n exports.MobCategorySpawnSettings = (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n minCount: (0, core_1.NumberNode)({ integer: true }),\r\n maxCount: (0, 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 schemas.register('biome', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n temperature: (0, core_1.NumberNode)(),\r\n downfall: (0, core_1.NumberNode)(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'frozen'] })),\r\n creature_spawn_probability: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n effects: (0, core_1.ObjectNode)({\r\n sky_color: (0, core_1.NumberNode)({ color: true }),\r\n fog_color: (0, core_1.NumberNode)({ color: true }),\r\n water_color: (0, core_1.NumberNode)({ color: true }),\r\n water_fog_color: (0, core_1.NumberNode)({ color: true }),\r\n grass_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n foliage_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n grass_color_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: (0, core_1.Opt)(StringNode()),\r\n mood_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_delay: (0, core_1.NumberNode)({ integer: true }),\r\n block_search_extent: (0, core_1.NumberNode)({ integer: true }),\r\n offset: (0, core_1.NumberNode)()\r\n })),\r\n additions_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n })),\r\n music: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n min_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n max_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n replace_current_music: (0, core_1.BooleanNode)()\r\n })),\r\n particle: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n options: (0, core_1.ObjectNode)({\r\n type: StringNode()\r\n }),\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }))\r\n }),\r\n spawners: (0, core_1.MapNode)(StringNode({ enum: 'mob_category' }), exports.MobCategorySpawnSettings),\r\n spawn_costs: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n energy_budget: (0, core_1.NumberNode)(),\r\n charge: (0, 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: (0, core_1.MapNode)(StringNode({ enum: ['air', 'liquid'] }), (0, core_1.Mod)((0, Common_1.Tag)({ resource: '$worldgen/configured_carver', inlineSchema: 'configured_carver' }), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: (0, core_1.ListNode)((0, core_1.Mod)((0, Common_1.Tag)({ resource: '$worldgen/placed_feature', inlineSchema: 'placed_feature' }), { category: () => 'predicate' }), { maxLength: 11 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const CanyonConfig = {\r\n vertical_rotation: (0, Common_1.FloatProvider)(),\r\n shape: (0, core_1.ObjectNode)({\r\n distance_factor: (0, Common_1.FloatProvider)(),\r\n thickness: (0, Common_1.FloatProvider)(),\r\n width_smoothness: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n horizontal_radius_factor: (0, Common_1.FloatProvider)(),\r\n vertical_radius_default_factor: (0, core_1.NumberNode)(),\r\n vertical_radius_center_factor: (0, core_1.NumberNode)()\r\n })\r\n };\r\n const CaveConfig = {\r\n horizontal_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n vertical_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n floor_level: (0, Common_1.FloatProvider)({ min: -1, max: 1 }),\r\n };\r\n schemas.register('configured_carver', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: (0, core_1.ObjectNode)({\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n y: Reference('height_provider'),\r\n yScale: (0, Common_1.FloatProvider)(),\r\n lava_level: Reference('vertical_anchor'),\r\n replaceable: (0, Common_1.Tag)({ resource: 'block' }),\r\n debug_settings: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n debug_mode: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n air_state: (0, core_1.Opt)(Reference('block_state')),\r\n water_state: (0, core_1.Opt)(Reference('block_state')),\r\n lava_state: (0, core_1.Opt)(Reference('block_state')),\r\n barrier_state: (0, core_1.Opt)(Reference('block_state'))\r\n })),\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:canyon': CanyonConfig,\r\n 'minecraft:cave': CaveConfig,\r\n 'minecraft:nether_cave': CaveConfig\r\n },\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('decorator', (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/placement_modifier_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_predicate_filter': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' })\r\n },\r\n 'minecraft:rarity_filter': {\r\n chance: (0, core_1.NumberNode)({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:count_on_every_layer': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:noise_threshold_count': {\r\n noise_level: (0, core_1.NumberNode)(),\r\n below_noise: (0, core_1.NumberNode)({ integer: true }),\r\n above_noise: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:noise_based_count': {\r\n noise_to_count_ratio: (0, core_1.NumberNode)({ integer: true }),\r\n noise_factor: (0, core_1.NumberNode)(),\r\n noise_offset: (0, core_1.Opt)((0, core_1.NumberNode)())\r\n },\r\n 'minecraft:environment_scan': {\r\n direction_of_search: StringNode({ enum: ['up', 'down'] }),\r\n max_steps: (0, core_1.NumberNode)({ integer: true, min: 1, max: 32 }),\r\n target_condition: Reference('block_predicate_worldgen'),\r\n allowed_search_condition: (0, core_1.Opt)(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:heightmap': {\r\n heightmap: StringNode({ enum: 'heightmap_type' })\r\n },\r\n 'minecraft:height_range': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:random_offset': {\r\n xz_spread: (0, Common_1.IntProvider)({ min: -16, max: 16 }),\r\n y_spread: (0, Common_1.IntProvider)({ min: -16, max: 16 }),\r\n },\r\n 'minecraft:surface_relative_threshold_filter': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n min_inclusive: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max_inclusive: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:surface_water_depth_filter': {\r\n max_water_depth: (0, core_1.NumberNode)({ integer: true })\r\n }\r\n }\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDensityFunctionSchemas = exports.DensityFunction = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initDensityFunctionSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n exports.DensityFunction = (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, core_1.NumberNode)(),\r\n change: () => 0\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/density_function' } }),\r\n change: () => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('density_function'),\r\n change: () => ({})\r\n }\r\n ], { choiceContext: 'density_function' }), {\r\n default: () => 0\r\n });\r\n const NoiseParameters = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/noise' } }),\r\n change: () => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('noise_parameters')\r\n }\r\n ], { choiceContext: 'noise_parameters' });\r\n const NoiseRange = (0, core_1.NumberNode)({ min: -1000000, max: 1000000 });\r\n const YRange = (0, core_1.NumberNode)({ integer: true, min: -2032 * 2, max: 2031 * 2 });\r\n schemas.register('density_function', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/density_function_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:abs': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:add': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:blend_density': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:cache_2d': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:cache_all_in_cell': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:cache_once': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:clamp': {\r\n input: exports.DensityFunction,\r\n min: NoiseRange,\r\n max: NoiseRange,\r\n },\r\n 'minecraft:constant': {\r\n argument: (0, core_1.NumberNode)(),\r\n },\r\n 'minecraft:cube': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:flat_cache': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:half_negative': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:interpolated': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:max': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:min': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:mul': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:noise': {\r\n noise: NoiseParameters,\r\n xz_scale: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n },\r\n 'minecraft:old_blended_noise': {\r\n xz_scale: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n xz_factor: (0, core_1.NumberNode)(),\r\n y_factor: (0, core_1.NumberNode)(),\r\n smear_scale_multiplier: (0, core_1.NumberNode)({ min: 1, max: 8 }),\r\n },\r\n 'minecraft:quarter_negative': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:range_choice': {\r\n input: exports.DensityFunction,\r\n min_inclusive: NoiseRange,\r\n max_exclusive: NoiseRange,\r\n when_in_range: exports.DensityFunction,\r\n when_out_of_range: exports.DensityFunction,\r\n },\r\n 'minecraft:shift': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:shift_a': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:shift_b': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:shifted_noise': {\r\n noise: NoiseParameters,\r\n xz_scale: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n shift_x: exports.DensityFunction,\r\n shift_y: exports.DensityFunction,\r\n shift_z: exports.DensityFunction,\r\n },\r\n 'minecraft:slide': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:spline': {\r\n spline: Reference('cubic_spline'),\r\n },\r\n 'minecraft:square': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:squeeze': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:weird_scaled_sampler': {\r\n rarity_value_mapper: StringNode({ enum: ['type_1', 'type_2'] }),\r\n noise: NoiseParameters,\r\n input: exports.DensityFunction,\r\n },\r\n 'minecraft:y_clamped_gradient': {\r\n from_y: YRange,\r\n to_y: YRange,\r\n from_value: NoiseRange,\r\n to_value: NoiseRange,\r\n },\r\n }\r\n }, { context: 'density_function', disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:noise',\r\n noise: 'minecraft:cave_entrance',\r\n xz_scale: 0.75,\r\n y_scale: 0.5\r\n })\r\n }));\r\n schemas.register('cubic_spline', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, core_1.NumberNode)()\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n coordinate: exports.DensityFunction,\r\n points: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n location: (0, core_1.NumberNode)(),\r\n derivative: (0, core_1.NumberNode)(),\r\n value: Reference('cubic_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.initDensityFunctionSchemas = initDensityFunctionSchemas;\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\nconst Common_1 = require(\"../Common\");\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 = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n processors: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.NumberNode)()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n rottable_blocks: (0, core_1.Opt)((0, Common_1.Tag)({ resource: 'block' }))\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:protected_blocks': {\r\n value: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } })\r\n },\r\n 'minecraft:rule': {\r\n rules: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n position_predicate: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n max_dist: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n min_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n max_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n };\r\n schemas.register('pos_rule_test', (0, 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', (0, 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: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:tag_match': {\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }\r\n }\r\n }, { context: 'rule_test', disableSwitchContext: true }));\r\n}\r\nexports.initProcessorListSchemas = initProcessorListSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const ConfiguredFeature = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n const PlacedFeature = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('placed_feature')\r\n }\r\n ], { choiceContext: 'placed_feature' });\r\n const RandomPatchConfig = {\r\n tries: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 })),\r\n xz_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n y_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n feature: PlacedFeature,\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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n };\r\n const TargetBlockState = (0, core_1.ObjectNode)({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n });\r\n const OreConfig = {\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n targets: (0, core_1.ListNode)(TargetBlockState)\r\n };\r\n const VegetationPatchConfig = {\r\n surface: StringNode({ enum: 'cave_surface' }),\r\n depth: (0, Common_1.IntProvider)({ min: 1, max: 128 }),\r\n vertical_range: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n extra_edge_column_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n vegetation_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n xz_radius: (0, Common_1.IntProvider)(),\r\n replaceable: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n ground_state: Reference('block_state_provider'),\r\n vegetation_feature: PlacedFeature\r\n };\r\n schemas.register('configured_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: (0, core_1.ObjectNode)({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: (0, Common_1.IntProvider)({ min: 0, max: 3 }),\r\n height: (0, 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: (0, core_1.BooleanNode)(),\r\n layers: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n height: (0, Common_1.IntProvider)({ min: 0 }),\r\n provider: Reference('block_state_provider')\r\n }))\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n rim_size: (0, Common_1.IntProvider)({ min: 0, max: 16 })\r\n },\r\n 'minecraft:disk': {\r\n state_provider: Reference('rule_based_block_state_provider'),\r\n target: Reference('block_predicate_worldgen'),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 8 }),\r\n half_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4 }),\r\n },\r\n 'minecraft:dripstone_cluster': {\r\n floor_to_ceiling_search_range: (0, core_1.NumberNode)({ integer: true, min: 1, max: 512 }),\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n max_stalagmite_stalactite_height_diff: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n height_deviation: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n density: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n wetness: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: (0, core_1.BooleanNode)(),\r\n exit: (0, core_1.Opt)(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n crystal_beam_target: (0, core_1.Opt)(Reference('block_pos')),\r\n spikes: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n centerX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n centerZ: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n height: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n guarded: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: (0, 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: (0, 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: (0, core_1.ListNode)(Reference('block_state')),\r\n cannot_replace: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n invalid_blocks: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } })\r\n }),\r\n layers: (0, core_1.ObjectNode)({\r\n filling: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n inner_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n middle_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n outer_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n }),\r\n crack: (0, core_1.ObjectNode)({\r\n generate_crack_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n base_crack_size: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 5 })),\r\n crack_point_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 10 })),\r\n }),\r\n noise_multiplier: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_potential_placements_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n outer_wall_distance: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n distribution_points: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n point_offset: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 0, max: 10 })),\r\n min_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n invalid_blocks_threshold: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:multiface_growth': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: ['minecraft:glow_lichen', 'minecraft:sculk_vein'] } })),\r\n search_range: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n can_place_on_floor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_ceiling: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_wall: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_be_placed_on: (0, Common_1.Tag)({ resource: 'block' })\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n fluid: Reference('block_state_provider'),\r\n barrier: Reference('block_state_provider')\r\n },\r\n 'minecraft:large_dripstone': {\r\n floor_to_ceiling_search_range: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1, max: 512 })),\r\n column_radius: (0, Common_1.IntProvider)({ min: 0, max: 60 }),\r\n height_scale: (0, Common_1.FloatProvider)({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n stalactite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n wind_speed: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n min_radius_for_wind: (0, core_1.NumberNode)({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: (0, core_1.NumberNode)({ min: 0, max: 5 })\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider'),\r\n spread_width: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n spread_height: (0, core_1.NumberNode)({ integer: true, min: 1 })\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_directional_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_spread_radius2: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_spread_radius3: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n },\r\n 'minecraft:random_patch': RandomPatchConfig,\r\n 'minecraft:random_boolean_selector': {\r\n feature_false: PlacedFeature,\r\n feature_true: PlacedFeature\r\n },\r\n 'minecraft:random_selector': {\r\n features: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n feature: PlacedFeature\r\n })),\r\n default: PlacedFeature\r\n },\r\n 'minecraft:replace_single_block': {\r\n targets: (0, core_1.ListNode)(TargetBlockState)\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 }),\r\n allowed_vertical_water_for_tree: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_replaceable: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n root_state_provider: Reference('block_state_provider'),\r\n hanging_root_state_provider: Reference('block_state_provider'),\r\n allowed_tree_position: Reference('block_predicate_worldgen'),\r\n feature: PlacedFeature\r\n },\r\n 'minecraft:scattered_ore': OreConfig,\r\n 'minecraft:sculk_patch': {\r\n charge_count: (0, core_1.NumberNode)({ integer: true, min: 1, max: 32 }),\r\n amount_per_charge: (0, core_1.NumberNode)({ integer: true, min: 1, max: 500 }),\r\n spread_attempts: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n growth_rounds: (0, core_1.NumberNode)({ integer: true, min: 0, max: 8 }),\r\n spread_rounds: (0, core_1.NumberNode)({ integer: true, min: 0, max: 8 }),\r\n extra_rare_growths: (0, Common_1.IntProvider)(),\r\n catalyst_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n },\r\n 'minecraft:sea_pickle': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:seagrass': {\r\n probability: (0, 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: (0, Common_1.Tag)({ resource: '$worldgen/placed_feature', inlineSchema: 'placed_feature' }),\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: (0, core_1.NumberNode)({ integer: true }),\r\n hole_count: (0, core_1.NumberNode)({ integer: true }),\r\n requires_block_below: (0, core_1.BooleanNode)(),\r\n valid_blocks: (0, Common_1.Tag)({ resource: 'block' })\r\n },\r\n 'minecraft:tree': {\r\n ignore_vines: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n force_dirt: (0, core_1.Opt)((0, 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 root_placer: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/root_placer_type' } }),\r\n root_provider: Reference('block_state_provider'),\r\n trunk_offset_y: (0, Common_1.IntProvider)(),\r\n above_root_placement: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n above_root_provider: Reference('block_state_provider'),\r\n above_root_placement_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mangrove_root_placer': {\r\n mangrove_root_placement: (0, core_1.ObjectNode)({\r\n max_root_width: (0, core_1.NumberNode)({ integer: true, min: 1, max: 12 }),\r\n max_root_length: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n random_skew_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n can_grow_through: (0, Common_1.Tag)({ resource: 'block' }),\r\n muddy_roots_in: (0, Common_1.Tag)({ resource: 'block' }),\r\n muddy_roots_provider: Reference('block_state_provider'),\r\n })\r\n }\r\n }\r\n }, { context: 'root_placer' })),\r\n trunk_placer: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: (0, core_1.NumberNode)({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: (0, 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: (0, Common_1.IntProvider)({ min: 1, max: 64 }),\r\n min_height_for_leaves: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:upwards_branching_trunk_placer': {\r\n extra_branch_steps: (0, Common_1.IntProvider)({ min: 1 }),\r\n extra_branch_length: (0, Common_1.IntProvider)({ min: 0 }),\r\n place_branch_per_log_probability: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n can_grow_through: (0, Common_1.Tag)({ resource: 'block' })\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n offset: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: (0, Common_1.IntProvider)({ min: 1, max: 512 }),\r\n leaf_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: (0, core_1.ListNode)((0, 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:attached_to_leaves': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n exclusion_radius_xz: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }),\r\n exclusion_radius_y: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }),\r\n required_empty_blocks: (0, core_1.NumberNode)({ integer: true, min: 1, max: 16 }),\r\n block_provider: Reference('block_state_provider'),\r\n directions: (0, core_1.ListNode)(StringNode({ enum: 'direction' }))\r\n },\r\n 'minecraft:beehive': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:leave_vine': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n },\r\n 'minecraft:twisting_vines': {\r\n spread_width: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n spread_height: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n max_height: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n },\r\n 'minecraft:underwater_magma': {\r\n floor_search_range: (0, core_1.NumberNode)({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:vegetation_patch': VegetationPatchConfig,\r\n 'minecraft:waterlogged_vegetation_patch': VegetationPatchConfig\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:tree',\r\n config: {\r\n minimum_size: {\r\n type: 'minecraft:two_layers_feature_size'\r\n },\r\n trunk_placer: {\r\n type: 'minecraft:straight_trunk_placer',\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n type: 'minecraft:blob_foliage_placer',\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('placed_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n feature: ConfiguredFeature,\r\n placement: (0, core_1.ListNode)(Reference('decorator'))\r\n }, { context: 'placed_feature' }), {\r\n default: () => ({\r\n feature: 'minecraft:oak',\r\n placement: [\r\n {\r\n type: 'minecraft:count',\r\n count: 4\r\n },\r\n {\r\n type: 'minecraft:in_square'\r\n },\r\n {\r\n type: 'minecraft:heightmap',\r\n heightmap: 'OCEAN_FLOOR'\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('feature_size', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 81 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n upper_limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n middle_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n noise: Reference('noise_parameters'),\r\n scale: (0, core_1.Mod)((0, core_1.NumberNode)({ min: Number.MIN_VALUE }), { default: () => 1 })\r\n };\r\n schemas.register('block_state_provider', (0, core_1.Mod)((0, 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: (0, Common_1.InclusiveRange)({ integer: true, min: 1, max: 64 }),\r\n slow_noise: Reference('noise_parameters'),\r\n slow_scale: (0, core_1.Mod)((0, core_1.NumberNode)({ min: Number.MIN_VALUE }), { default: () => 1 }),\r\n states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:noise_threshold_provider': {\r\n ...NoiseProvider,\r\n threshold: (0, core_1.NumberNode)({ min: -1, max: 1 }),\r\n high_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n default_state: Reference('block_state'),\r\n low_states: (0, core_1.ListNode)(Reference('block_state')),\r\n high_states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:noise_provider': {\r\n ...NoiseProvider,\r\n states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:randomized_int_state_provider': {\r\n property: StringNode(),\r\n values: (0, 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: (0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, 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('rule_based_block_state_provider', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n fallback: Reference('block_state_provider'),\r\n rules: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n if_true: Reference('block_predicate_worldgen'),\r\n then: Reference('block_state_provider')\r\n }))\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n fallback: {\r\n type: 'minecraft:simple_state_provider'\r\n }\r\n })\r\n }));\r\n const Offset = {\r\n offset: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 }))\r\n };\r\n schemas.register('block_predicate_worldgen', (0, core_1.Mod)((0, 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: (0, core_1.ListNode)(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:any_of': {\r\n predicates: (0, core_1.ListNode)(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:has_sturdy_face': {\r\n ...Offset,\r\n direction: StringNode({ enum: 'direction' })\r\n },\r\n 'minecraft:inside_world_bounds': {\r\n ...Offset,\r\n },\r\n 'minecraft:matching_block_tag': {\r\n ...Offset,\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n },\r\n 'minecraft:matching_blocks': {\r\n ...Offset,\r\n blocks: (0, Common_1.Tag)({ resource: 'block' })\r\n },\r\n 'minecraft:matching_fluids': {\r\n ...Offset,\r\n fluids: (0, Common_1.Tag)({ resource: 'fluid' })\r\n },\r\n 'minecraft:not': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:would_survive': {\r\n ...Offset,\r\n state: Reference('block_state')\r\n }\r\n }\r\n }, { context: 'block_predicate' }), {\r\n default: () => ({\r\n type: 'minecraft:true'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nconst DensityFunction_1 = require(\"./DensityFunction\");\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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n sea_level: (0, core_1.NumberNode)({ integer: true }),\r\n disable_mob_generation: (0, core_1.BooleanNode)(),\r\n aquifers_enabled: (0, core_1.BooleanNode)(),\r\n ore_veins_enabled: (0, core_1.BooleanNode)(),\r\n legacy_random_source: (0, core_1.BooleanNode)(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: (0, core_1.ObjectNode)({\r\n min_y: (0, core_1.NumberNode)({ integer: true, min: -2048, max: 2047 }),\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n size_horizontal: (0, core_1.NumberNode)({ integer: true }),\r\n size_vertical: (0, core_1.NumberNode)({ integer: true }),\r\n }),\r\n noise_router: (0, core_1.ObjectNode)({\r\n barrier: DensityFunction_1.DensityFunction,\r\n fluid_level_floodedness: DensityFunction_1.DensityFunction,\r\n fluid_level_spread: DensityFunction_1.DensityFunction,\r\n lava: DensityFunction_1.DensityFunction,\r\n temperature: DensityFunction_1.DensityFunction,\r\n vegetation: DensityFunction_1.DensityFunction,\r\n continents: DensityFunction_1.DensityFunction,\r\n erosion: DensityFunction_1.DensityFunction,\r\n depth: DensityFunction_1.DensityFunction,\r\n ridges: DensityFunction_1.DensityFunction,\r\n initial_density_without_jaggedness: DensityFunction_1.DensityFunction,\r\n final_density: DensityFunction_1.DensityFunction,\r\n vein_toggle: DensityFunction_1.DensityFunction,\r\n vein_ridged: DensityFunction_1.DensityFunction,\r\n vein_gap: DensityFunction_1.DensityFunction,\r\n }),\r\n spawn_target: (0, core_1.ListNode)(Reference('parameter_point')),\r\n surface_rule: Reference('material_rule'),\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', (0, core_1.ObjectNode)({\r\n target: (0, core_1.NumberNode)(),\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n offset: (0, core_1.NumberNode)({ integer: true })\r\n }));\r\n schemas.register('generator_layer', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: (0, 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.initStructureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nconst Biome_1 = require(\"./Biome\");\r\nfunction initStructureSchemas(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('structure', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_type' } }),\r\n biomes: (0, Common_1.Tag)({ resource: '$worldgen/biome' }),\r\n step: StringNode({ enum: 'decoration_step' }),\r\n spawn_overrides: (0, core_1.MapNode)(StringNode({ enum: 'mob_category' }), (0, core_1.ObjectNode)({\r\n bounding_box: StringNode({ enum: ['piece', 'full'] }),\r\n spawns: Biome_1.MobCategorySpawnSettings,\r\n })),\r\n terrain_adaptation: (0, core_1.Opt)(StringNode({ enum: ['none', 'beard_thin', 'beard_box', 'bury'] })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:jigsaw': {\r\n start_pool: StringNode({ validator: 'resource', params: { pool: '$worldgen/template_pool' } }),\r\n size: (0, core_1.NumberNode)({ integer: true }),\r\n start_height: Reference('height_provider'),\r\n start_jigsaw_name: (0, core_1.Opt)(StringNode()),\r\n project_start_to_heightmap: (0, core_1.Opt)(StringNode({ enum: 'heightmap_type' })),\r\n max_distance_from_center: (0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 1, max: 128 }), { default: () => 80 }),\r\n use_expansion_hack: (0, core_1.BooleanNode)(),\r\n },\r\n 'minecraft:mineshaft': {\r\n mineshaft_type: StringNode({ enum: ['normal', 'mesa'] }),\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: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n cluster_probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:ruined_portal': {\r\n setups: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n placement: StringNode({ enum: ['on_land_surface', 'partly_buried', 'on_ocean_floor', 'in_mountain', 'underground', 'in_nether'] }),\r\n air_pocket_probability: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n mossiness: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n overgrown: (0, core_1.BooleanNode)(),\r\n vines: (0, core_1.BooleanNode)(),\r\n can_be_cold: (0, core_1.BooleanNode)(),\r\n replace_with_blackstone: (0, core_1.BooleanNode)(),\r\n weight: (0, core_1.NumberNode)({ min: 0 })\r\n }))\r\n },\r\n 'minecraft:shipwreck': {\r\n is_beached: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }\r\n }\r\n }, { context: 'structure_feature' }), {\r\n default: () => ({\r\n type: 'minecraft:jigsaw',\r\n step: 'surface_structures',\r\n size: 6,\r\n max_distance_from_center: 80,\r\n })\r\n }));\r\n}\r\nexports.initStructureSchemas = initStructureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureSetSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initStructureSetSchemas(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 StructureSet = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/structure_set' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('structure_set')\r\n }\r\n ], { choiceContext: 'structure_set' });\r\n schemas.register('structure_set', (0, core_1.ObjectNode)({\r\n structures: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n structure: (0, Common_1.Tag)({ resource: '$worldgen/structure' }),\r\n weight: (0, core_1.NumberNode)({ integer: true, min: 1 })\r\n })),\r\n placement: Reference('structure_placement')\r\n }, { context: 'structure_set' }));\r\n schemas.register('structure_placement', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_placement' } }),\r\n salt: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n frequency_reduction_method: (0, core_1.Opt)(StringNode({ enum: ['default', 'legacy_type_1', 'legacy_type_2', 'legacy_type_3'] })),\r\n frequency: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n exclusion_zone: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n other_set: StructureSet,\r\n chunk_count: (0, core_1.NumberNode)({ integer: true, min: 1, max: 16 })\r\n })),\r\n locate_offset: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:concentric_rings': {\r\n distance: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n spread: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n count: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4095 }),\r\n preferred_biomes: (0, Common_1.Tag)({ resource: '$worldgen/biome' })\r\n },\r\n 'minecraft:random_spread': {\r\n spread_type: (0, core_1.Opt)(StringNode({ enum: ['linear', 'triangular'] })),\r\n spacing: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n separation: (0, core_1.Mod)((0, 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 }\r\n }\r\n }, { context: 'structure_placement' }), {\r\n default: () => ({\r\n type: 'minecraft:random_spread',\r\n spacing: 10,\r\n separation: 5,\r\n salt: Math.floor(Math.random() * 2147483647)\r\n })\r\n }));\r\n}\r\nexports.initStructureSetSchemas = initStructureSetSchemas;\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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.NumberNode)(),\r\n max_threshold: (0, core_1.NumberNode)()\r\n },\r\n 'minecraft:not': {\r\n invert: Reference('material_condition')\r\n },\r\n 'minecraft:stone_depth': {\r\n offset: (0, core_1.NumberNode)({ integer: true }),\r\n surface_type: StringNode({ enum: 'cave_surface' }),\r\n add_surface_depth: (0, core_1.BooleanNode)(),\r\n secondary_depth_range: (0, core_1.NumberNode)({ integer: true }),\r\n },\r\n 'minecraft:vertical_gradient': {\r\n random_name: StringNode(),\r\n true_at_and_below: Reference('vertical_anchor'),\r\n false_at_and_above: Reference('vertical_anchor'),\r\n },\r\n 'minecraft:water': {\r\n offset: (0, core_1.NumberNode)({ integer: true }),\r\n surface_depth_multiplier: (0, core_1.NumberNode)({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: (0, core_1.BooleanNode)()\r\n },\r\n 'minecraft:y_above': {\r\n anchor: Reference('vertical_anchor'),\r\n surface_depth_multiplier: (0, core_1.NumberNode)({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n element_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_pool_element' } }),\r\n projection: StringNode({ enum: ['rigid', 'terrain_matching'] }),\r\n [core_1.Switch]: [{ push: 'element_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:feature_pool_element': {\r\n feature: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n 'minecraft:legacy_single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n },\r\n 'minecraft:list_pool_element': {\r\n elements: (0, 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.initWorldPresetSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initWorldPresetSchemas(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('world_preset', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n dimensions: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$dimension', isDefinition: true } }), Reference('dimension'))\r\n }, { context: 'world_preset' }), {\r\n default: () => ({\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: 'minecraft:overworld',\r\n },\r\n settings: 'minecraft:overworld',\r\n },\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: 'minecraft:nether',\r\n },\r\n settings: 'minecraft:nether',\r\n },\r\n },\r\n 'minecraft:the_end': {\r\n type: 'minecraft:the_end',\r\n generator: {\r\n type: 'minecraft:noise',\r\n biome_source: {\r\n type: 'minecraft:the_end',\r\n },\r\n settings: 'minecraft:end',\r\n },\r\n },\r\n }\r\n })\r\n }));\r\n schemas.register('flat_level_generator_preset', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n display: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n settings: Reference('flat_generator_settings'),\r\n }), {\r\n default: () => ({\r\n display: 'minecraft:grass_block',\r\n settings: {\r\n lakes: false,\r\n features: false,\r\n biome: 'minecraft:plains',\r\n structure_overrides: [],\r\n layers: [\r\n {\r\n height: 3,\r\n block: 'minecraft:dirt'\r\n },\r\n {\r\n height: 1,\r\n block: 'minecraft:grass_block'\r\n }\r\n ]\r\n }\r\n })\r\n }));\r\n}\r\nexports.initWorldPresetSchemas = initWorldPresetSchemas;\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 DensityFunction_1 = require(\"./DensityFunction\");\r\nconst Feature_1 = require(\"./Feature\");\r\nconst NoiseSettings_1 = require(\"./NoiseSettings\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nconst Structure_1 = require(\"./Structure\");\r\nconst StructureSet_1 = require(\"./StructureSet\");\r\nconst SurfaceRule_1 = require(\"./SurfaceRule\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nconst WorldPreset_1 = require(\"./WorldPreset\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n // `ProcessorList.ts`, `DensityFunction.ts`, and `Biome.ts` have exports. They should be initialized first. \r\n (0, ProcessorList_1.initProcessorListSchemas)(schemas, collections);\r\n (0, DensityFunction_1.initDensityFunctionSchemas)(schemas, collections);\r\n (0, Biome_1.initBiomeSchemas)(schemas, collections);\r\n (0, Carver_1.initCarverSchemas)(schemas, collections);\r\n (0, Decorator_1.initDecoratorSchemas)(schemas, collections);\r\n (0, Feature_1.initFeatureSchemas)(schemas, collections);\r\n (0, NoiseSettings_1.initNoiseSettingsSchemas)(schemas, collections);\r\n (0, Structure_1.initStructureSchemas)(schemas, collections);\r\n (0, StructureSet_1.initStructureSetSchemas)(schemas, collections);\r\n (0, SurfaceRule_1.initSurfaceRuleSchemas)(schemas, collections);\r\n (0, TemplatePool_1.initTemplatePoolSchemas)(schemas, collections);\r\n (0, WorldPreset_1.initWorldPresetSchemas)(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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n generate_features: (0, core_1.BooleanNode)(),\r\n bonus_chest: (0, core_1.BooleanNode)(),\r\n seed: (0, core_1.NumberNode)({ integer: true }),\r\n dimensions: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:overworld\"\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:nether\"\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst ChatType_1 = require(\"./ChatType\");\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 (0, Common_1.initCommonSchemas)(schemas, collections);\r\n (0, ChatType_1.initChatTypeSchemas)(schemas, collections);\r\n (0, Advancement_1.initAdvancementSchemas)(schemas, collections);\r\n (0, assets_1.initAssetsSchemas)(schemas, collections);\r\n (0, Condition_1.initConditionSchemas)(schemas, collections);\r\n (0, DimensionType_1.initDimensionTypeSchemas)(schemas, collections);\r\n (0, Dimension_1.initDimensionSchemas)(schemas, collections);\r\n (0, ItemModifier_1.initItemModifierSchemas)(schemas, collections);\r\n (0, LootTable_1.initLootTableSchemas)(schemas, collections);\r\n (0, PackMcmeta_1.initPackMcmetaSchemas)(schemas, collections);\r\n (0, Predicates_1.initPredicatesSchemas)(schemas, collections);\r\n (0, Recipe_1.initRecipeSchemas)(schemas, collections);\r\n (0, Tags_1.initTagsSchemas)(schemas, collections);\r\n (0, TextComponent_1.initTextComponentSchemas)(schemas, collections);\r\n (0, worldgen_1.initWorldgenSchemas)(schemas, collections);\r\n (0, 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 var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\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.prototype.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 = exports.lootContext = 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 (0, 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 (0, schemas_1.initSchemas)(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n"],"names":["core_1","require$$0","require$$1","require$$2","Common_1","ProcessorList_1","DensityFunction_1","Biome_1","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","this"],"mappings":"+1BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAI,CAAE,EACrC,GAAA,gBAAG,OAC1B,YAAyB,EAAa,CAClC,EAAY,SAAS,sBAAuB,CACxC,qCACA,4BACA,+BACA,yBACA,0BACA,8BACA,gCACA,6BACA,yBACA,kCACA,4BACA,2BACA,wBACA,+BACA,iCACA,6BACA,0BACA,+BACA,gCACA,uBACA,8BACA,oCACA,+BACA,yCACA,+BACA,uBACA,6BACA,qBACA,0BACA,yBACA,4CACA,+BACA,0CACA,iCACA,4BACA,gCACA,0BACA,yBACA,6BACA,2BACA,4BACA,wBACA,uBACA,iBACA,4CACA,4CACA,2BACA,uBACA,uBACA,2BACA,2BACR,CAAK,EACD,EAAY,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,SACR,CAAK,EACD,EAAY,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,MACR,CAAK,EACD,EAAY,SAAS,WAAY,CAC7B,WACA,WACA,YACA,WACR,CAAK,EACD,EAAY,SAAS,gBAAiB,CAClC,OACA,SACA,gBACA,eACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,eACA,OACA,SACA,eACR,CAAK,EACD,EAAY,SAAS,iCAAkC,CACnD,gCACA,sCACA,qBACR,CAAK,EACD,EAAY,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,cACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,SACR,CAAK,EACD,EAAY,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,iBACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,WACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,QACA,UACA,aACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,kBACR,CAAK,EACD,EAAY,SAAS,kBAAmB,CACpC,MACA,QACR,CAAK,EACD,EAAY,SAAS,kBAAmB,CACpC,iBACA,QACA,sBACA,yBACA,qBACA,cACA,mBACA,yBACA,gBACA,qBACA,wBACR,CAAK,EACD,EAAY,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,iBACR,CAAK,EACD,EAAY,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,QACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,QACA,SACA,UACA,aACA,SACA,OACA,OACA,OACA,aACA,OACA,SACA,OACA,QACA,QACA,MACA,OACR,CAAK,EACD,EAAY,SAAS,eAAgB,CACjC,QACA,SACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,OACA,KACA,QACA,OACA,QACA,MACR,CAAK,EACD,EAAY,SAAS,OAAQ,CACzB,IACA,IACA,GACR,CAAK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"} \ No newline at end of file diff --git a/assets/index.7025560c.js b/assets/index.883f1c74.js similarity index 99% rename from assets/index.7025560c.js rename to assets/index.883f1c74.js index 6bdad8d4..43780053 100644 --- a/assets/index.7025560c.js +++ b/assets/index.883f1c74.js @@ -1,2 +1,2 @@ -var Ge=Object.defineProperty,He=Object.defineProperties;var Ke=Object.getOwnPropertyDescriptors;var Re=Object.getOwnPropertySymbols;var Xe=Object.prototype.hasOwnProperty,Ye=Object.prototype.propertyIsEnumerable;var Te=(r,e,t)=>e in r?Ge(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,g=(r,e)=>{for(var t in e||(e={}))Xe.call(e,t)&&Te(r,t,e[t]);if(Re)for(var t of Re(e))Ye.call(e,t)&&Te(r,t,e[t]);return r},E=(r,e)=>He(r,Ke(e));import{v as k,u as ie}from"./index.41a3dfd7.js";function Ze(r,e){return e.forEach(function(t){t&&typeof t!="string"&&!Array.isArray(t)&&Object.keys(t).forEach(function(i){if(i!=="default"&&!(i in r)){var d=Object.getOwnPropertyDescriptor(t,i);Object.defineProperty(r,i,d.get?d:{enumerable:!0,get:function(){return t[i]}})}})}),Object.freeze(Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}))}var H={},ce={};Object.defineProperty(ce,"__esModule",{value:!0});ce.initCollections=void 0;function Je(r){r.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"]),r.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"]),r.register("slot",["mainhand","offhand","head","chest","legs","feet"]),r.register("gamemode",["survival","creative","adventure","spectator"]),r.register("entity_source",["this","killer","direct_killer","killer_player"]),r.register("copy_source",["block_entity","this","killer","killer_player"]),r.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),r.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"]),r.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"]),r.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"]),r.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mountain","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end","underground"]),r.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),r.register("generation_step",["air","liquid"]),r.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"]),r.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"]),r.register("dye_color",["white","orange","magenta","light_blue","yellow","lime","pink","gray","light_gray","cyan","purple","blue","brown","green","red","black"]),r.register("cave_surface",["floor","ceiling"]),r.register("direction",["down","up","north","east","south","west"]),r.register("axis",["x","y","z"]),r.register("display_position",["firstperson_righthand","firstperson_lefthand","thirdperson_righthand","thirdperson_lefthand","gui","head","ground","fixed"]),r.register("gui_light",["front","side"]),r.register("item_model_predicates",["angle","blocking","broken","cast","charged","cooldown","custom_model_data","damage","damaged","firework","lefthanded","pull","pulling","throwing","time"]),r.register("glyph_provider_type",["bitmap","ttf","legacy_unicode"]),r.register("mob_category",["monster","creature","ambient","axolotls","underground_water_creature","water_creature","water_ambient","misc"]),r.register("cat_texture",["textures/entity/cat/tabby.png","textures/entity/cat/black.png","textures/entity/cat/red.png","textures/entity/cat/siamese.png","textures/entity/cat/british_shorthair.png","textures/entity/cat/calico.png","textures/entity/cat/persian.png","textures/entity/cat/ragdoll.png","textures/entity/cat/white.png","textures/entity/cat/jellie.png","textures/entity/cat/all_black.png"])}ce.initCollections=Je;var de={},se={};Object.defineProperty(se,"__esModule",{value:!0});se.initAdvancementSchemas=void 0;const s=k;function Qe(r,e){const t=s.Reference.bind(void 0,r),i=s.StringNode.bind(void 0,e),d=(0,s.ChoiceNode)([{type:"object",node:(0,s.Opt)(t("entity_predicate")),change:n=>{var a,p;return(p=(a=n[0])===null||a===void 0?void 0:a.predicate)!==null&&p!==void 0?p:{}}},{type:"list",node:(0,s.ListNode)(t("condition")),change:n=>[{condition:"minecraft:entity_properties",predicate:n}]}],{context:"conditions"});r.register("advancement",(0,s.Mod)((0,s.ObjectNode)({display:(0,s.Opt)((0,s.Mod)((0,s.ObjectNode)({icon:(0,s.ObjectNode)({item:i({validator:"resource",params:{pool:"item"}}),nbt:(0,s.Opt)(i({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:t("text_component"),description:t("text_component"),background:(0,s.Opt)(i()),frame:(0,s.Opt)(i({enum:["task","challenge","goal"]})),show_toast:(0,s.Opt)((0,s.BooleanNode)()),announce_to_chat:(0,s.Opt)((0,s.BooleanNode)()),hidden:(0,s.Opt)((0,s.BooleanNode)())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:(0,s.Opt)(i({validator:"resource",params:{pool:"$advancement"}})),criteria:(0,s.MapNode)(i(),t("advancement_criteria")),requirements:(0,s.Opt)((0,s.ListNode)((0,s.ListNode)(i()))),rewards:(0,s.Opt)((0,s.ObjectNode)({function:(0,s.Opt)(i({validator:"resource",params:{pool:"$function"}})),loot:(0,s.Opt)((0,s.ListNode)(i({validator:"resource",params:{pool:"$loot_table"}}))),recipes:(0,s.Opt)((0,s.ListNode)(i({validator:"resource",params:{pool:"$recipe"}}))),experience:(0,s.Opt)((0,s.NumberNode)({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),r.register("advancement_criteria",(0,s.ObjectNode)({trigger:i({validator:"resource",params:{pool:e.get("advancement_trigger")}}),conditions:(0,s.Opt)((0,s.ObjectNode)({player:(0,s.Mod)(d,{enabled:n=>n.pop().push("trigger").get()!=="minecraft:impossible"}),[s.Switch]:["pop",{push:"trigger"}],[s.Case]:{"minecraft:bee_nest_destroyed":{block:(0,s.Opt)(i({validator:"resource",params:{pool:"block"}})),num_bees_inside:(0,s.Opt)((0,s.NumberNode)({integer:!0})),item:(0,s.Opt)(t("item_predicate"))},"minecraft:bred_animals":{parent:d,partner:d,child:d},"minecraft:brewed_potion":{potion:(0,s.Opt)(i({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:(0,s.Opt)(i({validator:"resource",params:{pool:"$dimension"}})),to:(0,s.Opt)(i({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:(0,s.Opt)((0,s.ListNode)(d))},"minecraft:construct_beacon":{level:t("int_bounds")},"minecraft:consume_item":{item:(0,s.Opt)(t("item_predicate"))},"minecraft:cured_zombie_villager":{villager:d,zombie:d},"minecraft:effects_changed":{effects:(0,s.Opt)((0,s.MapNode)(i({validator:"resource",params:{pool:"mob_effect"}}),t("status_effect_predicate"))),source:(0,s.Opt)(d)},"minecraft:enter_block":{block:(0,s.Opt)(i({validator:"resource",params:{pool:"block"}})),state:(0,s.Opt)((0,s.MapNode)(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:t("int_bounds"),item:(0,s.Opt)(t("item_predicate"))},"minecraft:entity_hurt_player":{damage:(0,s.Opt)(t("damage_predicate"))},"minecraft:entity_killed_player":{entity:d,killing_blow:(0,s.Opt)(t("damage_source_predicate"))},"minecraft:fall_from_height":{start_position:(0,s.Opt)(t("location_predicate")),distance:(0,s.Opt)(t("distance_predicate"))},"minecraft:filled_bucket":{item:(0,s.Opt)(t("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:d,item:(0,s.Opt)(t("item_predicate"))},"minecraft:hero_of_the_village":{location:(0,s.Opt)(t("location_predicate"))},"minecraft:inventory_changed":{slots:(0,s.Opt)((0,s.ObjectNode)({empty:t("int_bounds"),occupied:t("int_bounds"),full:t("int_bounds")})),items:(0,s.Opt)((0,s.ListNode)(t("item_predicate")))},"minecraft:item_durability_changed":{delta:t("int_bounds"),durability:t("int_bounds"),item:(0,s.Opt)(t("item_predicate"))},"minecraft:item_used_on_block":{item:(0,s.Opt)(t("item_predicate")),location:(0,s.Opt)(t("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:t("int_bounds"),victims:(0,s.Opt)((0,s.ListNode)(d))},"minecraft:levitation":{distance:(0,s.Opt)(t("distance_predicate")),duration:t("int_bounds")},"minecraft:lightning_strike":{lightning:d,bystander:d},"minecraft:location":{location:(0,s.Opt)(t("location_predicate"))},"minecraft:nether_travel":{start_position:(0,s.Opt)(t("location_predicate")),distance:(0,s.Opt)(t("distance_predicate"))},"minecraft:placed_block":{block:(0,s.Opt)(i({validator:"resource",params:{pool:"block"}})),state:(0,s.Opt)((0,s.MapNode)(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:(0,s.Opt)(t("item_predicate")),location:(0,s.Opt)(t("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:i({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:(0,s.Opt)(t("damage_predicate")),entity:d},"minecraft:player_interacted_with_entity":{item:(0,s.Opt)(t("item_predicate")),entity:d},"minecraft:player_killed_entity":{entity:d,killing_blow:(0,s.Opt)(t("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:i({validator:"resource",params:{pool:"$recipe"}})},"minecraft:ride_entity_in_lava":{start_position:(0,s.Opt)(t("location_predicate")),distance:(0,s.Opt)(t("distance_predicate"))},"minecraft:slept_in_bed":{location:(0,s.Opt)(t("location_predicate"))},"minecraft:slide_down_block":{block:(0,s.Opt)(i({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:(0,s.Opt)(t("item_predicate"))},"minecraft:summoned_entity":{entity:d},"minecraft:tame_animal":{entity:d},"minecraft:target_hit":{projectile:d,shooter:d,signal_strength:t("int_bounds")},"minecraft:thrown_item_picked_up_by_entity":{entity:d,item:(0,s.Opt)(t("item_predicate"))},"minecraft:used_ender_eye":{distance:(0,s.Opt)(t("float_bounds"))},"minecraft:used_totem":{item:(0,s.Opt)(t("item_predicate"))},"minecraft:using_item":{item:(0,s.Opt)(t("item_predicate"))},"minecraft:villager_trade":{villager:d,item:(0,s.Opt)(t("item_predicate"))},"minecraft:voluntary_exile":{location:(0,s.Opt)(t("location_predicate"))}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))}se.initAdvancementSchemas=Qe;var le={},me={};Object.defineProperty(me,"__esModule",{value:!0});me.initModelSchemas=void 0;const b=k;function et(r,e){b.Reference.bind(void 0,r);const t=b.StringNode.bind(void 0,e),i=(n,a,p)=>(0,b.ListNode)((0,b.NumberNode)({min:a,max:p}),{minLength:n,maxLength:n}),d=(0,b.ChoiceNode)([{type:"alias",match:n=>typeof n=="string"&&n.startsWith("#"),node:t(),change:n=>typeof n=="string"?`#${n}`:"#0"},{type:"reference",match:n=>typeof n=="string",node:t({validator:"resource",params:{pool:"$texture"}}),change:n=>typeof n=="string"?n.replace(/^#/,""):""}],{choiceContext:"texture"});r.register("model",(0,b.Mod)((0,b.ObjectNode)({parent:(0,b.Opt)(t({validator:"resource",params:{pool:"$model"}})),ambientocclusion:(0,b.Opt)((0,b.BooleanNode)()),gui_light:(0,b.Opt)(t({enum:"gui_light"})),textures:(0,b.Opt)((0,b.MapNode)(t(),d)),elements:(0,b.Opt)((0,b.ListNode)((0,b.ObjectNode)({from:i(3,-16,32),to:i(3,-16,32),rotation:(0,b.Opt)((0,b.ObjectNode)({origin:i(3),axis:t({enum:"axis"}),angle:(0,b.NumberEnum)({values:[-45,-22.5,0,22.5,45]}),rescale:(0,b.Opt)((0,b.BooleanNode)())})),shade:(0,b.Opt)((0,b.BooleanNode)()),faces:(0,b.MapNode)(t({enum:"direction"}),(0,b.ObjectNode)({texture:d,uv:(0,b.Opt)(i(4)),cullface:(0,b.Opt)(t({enum:"direction"})),rotation:(0,b.Opt)((0,b.NumberNode)({integer:!0})),tintindex:(0,b.Opt)((0,b.NumberNode)({integer:!0}))}))},{context:"model_element"}))),display:(0,b.Opt)((0,b.MapNode)(t({enum:"display_position"}),(0,b.ObjectNode)({rotation:i(3),translation:i(3,-80,80),scale:i(3,-4,4)},{context:"item_transform"}))),overrides:(0,b.Opt)((0,b.ListNode)((0,b.ObjectNode)({predicate:(0,b.MapNode)(t({enum:"item_model_predicates"}),(0,b.NumberNode)()),model:t({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))}me.initModelSchemas=et;var _e={};Object.defineProperty(_e,"__esModule",{value:!0});_e.initBlockDefinitionSchemas=void 0;const w=k;function tt(r,e){const t=w.Reference.bind(void 0,r),i=w.StringNode.bind(void 0,e);r.register("block_definition",(0,w.Mod)((0,w.ChoiceNode)([{type:"variants",match:n=>n.variants!==void 0,node:(0,w.ObjectNode)({variants:(0,w.MapNode)(i(),t("model_variant"))}),change:n=>({variants:{"":{}}})},{type:"multipart",match:n=>n.multipart!==void 0,node:(0,w.ObjectNode)({multipart:(0,w.ListNode)((0,w.ObjectNode)({when:(0,w.Opt)(t("multipart_condition")),apply:t("model_variant")}))}),change:n=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const d={model:i({validator:"resource",params:{pool:"$model"}}),x:(0,w.Opt)((0,w.NumberEnum)({integer:!0,values:[0,90,180,270]})),y:(0,w.Opt)((0,w.NumberEnum)({integer:!0,values:[0,90,180,270]})),uvlock:(0,w.Opt)((0,w.BooleanNode)())};r.register("model_variant",(0,w.ChoiceNode)([{type:"object",node:(0,w.ObjectNode)(d),change:n=>Array.isArray(n)&&n.length>0?n[0]:{}},{type:"list",node:(0,w.ListNode)((0,w.ObjectNode)(E(g({},d),{weight:(0,w.Opt)((0,w.NumberNode)({integer:!0,min:1}))}),{context:"model_variant"})),change:n=>[g({weight:1},n)]}],{context:"model_variant"})),r.register("multipart_condition",(0,w.ChoiceNode)([{type:"object",priority:-1,match:()=>!0,node:(0,w.MapNode)(i(),i()),change:n=>typeof n=="object"&&Array.isArray(n==null?void 0:n.OR)&&n.OR.length>0?n.OR[0]:{}},{type:"or",match:n=>typeof n=="object"&&(n==null?void 0:n.OR)!==void 0,node:(0,w.ObjectNode)({OR:(0,w.ListNode)(t("multipart_condition"))}),change:n=>({OR:[n!=null?n:{}]})}],{context:"multipart_condition"}))}_e.initBlockDefinitionSchemas=tt;var ue={};Object.defineProperty(ue,"__esModule",{value:!0});ue.initFontSchemas=void 0;const M=k;function rt(r,e){const t=M.Reference.bind(void 0,r),i=M.StringNode.bind(void 0,e);r.register("font",(0,M.ObjectNode)({providers:(0,M.ListNode)(t("glyph_provider"))},{context:"font"})),r.register("glyph_provider",(0,M.Mod)((0,M.ObjectNode)({type:i({enum:"glyph_provider_type"}),[M.Switch]:[{push:"type"}],[M.Case]:{bitmap:{file:i({validator:"resource",params:{pool:"$texture",suffix:".png"}}),height:(0,M.Opt)((0,M.NumberNode)({integer:!0})),ascent:(0,M.NumberNode)({integer:!0}),chars:(0,M.ListNode)(i(),{minLength:1})},ttf:{file:i({validator:"resource",params:{pool:"$texture",suffix:".png"}}),size:(0,M.Opt)((0,M.NumberNode)()),oversample:(0,M.Opt)((0,M.NumberNode)()),shift:(0,M.Opt)((0,M.ListNode)((0,M.NumberNode)(),{minLength:2,maxLength:2})),skip:(0,M.Opt)((0,M.StringOrList)(i()))},legacy_unicode:{sizes:i(),template:i()}}},{context:"glyph_provider"}),{default:()=>({type:"bitmap"})}))}ue.initFontSchemas=rt;Object.defineProperty(le,"__esModule",{value:!0});le.initAssetsSchemas=void 0;const it=me,ot=_e,nt=ue;function at(r,e){(0,ot.initBlockDefinitionSchemas)(r,e),(0,nt.initFontSchemas)(r,e),(0,it.initModelSchemas)(r,e)}le.initAssetsSchemas=at;var R={};(function(r){Object.defineProperty(r,"__esModule",{value:!0}),r.initCommonSchemas=r.Tag=r.InclusiveRange=r.IntProvider=r.FloatProvider=r.NoiseSettingsPresets=r.DefaultNoiseSettings=r.DimensionTypePresets=r.DefaultDimensionType=r.FunctionCases=r.ConditionCases=void 0;const e=k;r.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},r.DefaultNoiseSettings={sea_level:63,ore_veins_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,legacy_random_source:!1,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,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}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}};function t(i,d){const n=e.StringNode.bind(void 0,d),a=e.Reference.bind(void 0,i);i.register("block_state",(0,e.Mod)((0,e.ObjectNode)({Name:n({validator:"resource",params:{pool:"block"}}),Properties:(0,e.Opt)((0,e.MapNode)(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),i.register("fluid_state",(0,e.Mod)((0,e.ObjectNode)({Name:n({validator:"resource",params:{pool:"fluid"}}),Properties:(0,e.Opt)((0,e.MapNode)(n(),n()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),i.register("block_pos",(0,e.Mod)((0,e.ListNode)((0,e.NumberNode)({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const p=m=>(0,e.Opt)((0,e.ChoiceNode)([{type:"number",node:(0,e.NumberNode)({integer:m}),change:f=>{var j,v;return f===void 0?0:(v=(j=f.min)!==null&&j!==void 0?j:f.max)!==null&&v!==void 0?v:0}},{type:"object",node:(0,e.ObjectNode)({min:(0,e.Opt)((0,e.NumberNode)({integer:m})),max:(0,e.Opt)((0,e.NumberNode)({integer:m}))},{context:"range"}),change:f=>({min:f!=null?f:0,max:f!=null?f:0})}]));i.register("int_bounds",p(!0)),i.register("float_bounds",p()),i.register("int_range",(0,e.ChoiceNode)([{type:"object",node:(0,e.ObjectNode)({min:(0,e.Opt)(a("number_provider")),max:(0,e.Opt)(a("number_provider"))})},{type:"number",node:(0,e.NumberNode)({integer:!0})}],{context:"range"}));const x=(m,f,j,v,S,D,W)=>{let ne={};S&&Object.keys(W[S]).forEach(I=>{ne[I]=(0,e.Mod)(W[S][I],{enabled:A=>A.push("type").get()===void 0})});const J=(0,e.ObjectNode)(g({type:(0,e.Mod)((0,e.Opt)(n({validator:"resource",params:{pool:m}})),{hidden:()=>!0}),[e.Switch]:[{push:"type"}],[e.Case]:W},ne),{context:D,disableSwitchContext:!0}),Q=[{type:f,node:W[v][j]}];return S&&Q.push({type:"object",priority:-1,node:J}),Object.keys(W).forEach(I=>{Q.push({type:I,match:A=>{var ee;if("minecraft:"+((ee=A==null?void 0:A.type)===null||ee===void 0?void 0:ee.replace(/^minecraft:/,""))===I)return!0;const U=A?Object.keys(A):[];return typeof A=="object"&&((U==null?void 0:U.length)===0||(U==null?void 0:U.length)===1&&(U==null?void 0:U[0])==="type")},node:J,change:A=>({type:I})})}),(0,e.ChoiceNode)(Q,{context:D,choiceContext:`${D}.type`})};i.register("number_provider",x("loot_number_provider_type","number","value","minecraft:constant","minecraft:uniform","number_provider",{"minecraft:constant":{value:(0,e.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:n({validator:"objective"}),scale:(0,e.Opt)((0,e.NumberNode)())}})),i.register("scoreboard_name_provider",x("loot_score_provider_type","string","target","minecraft:context",null,"score_provider",{"minecraft:fixed":{name:n({validator:"entity",params:{amount:"multiple",type:"entities",isScoreHolder:!0}})},"minecraft:context":{target:(0,e.Mod)(n({enum:"entity_source"}),{default:()=>"this"})}})),i.register("nbt_provider",x("loot_nbt_provider_type","string","target","minecraft:context",null,"nbt_provider",{"minecraft:storage":{source:n({validator:"resource",params:{pool:"$storage"}})},"minecraft:context":{target:(0,e.Mod)(n({enum:"copy_source"}),{default:()=>"this"})}})),r.FloatProvider=m=>x("float_provider_type","number","value","minecraft:constant",null,"float_provider",{"minecraft:constant":{value:(0,e.NumberNode)(m)},"minecraft:uniform":{value:(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(m),max_exclusive:(0,e.NumberNode)(m)})},"minecraft:clamped_normal":{value:(0,e.ObjectNode)({min:(0,e.NumberNode)(),max:(0,e.NumberNode)(),mean:(0,e.NumberNode)(),deviation:(0,e.NumberNode)()})},"minecraft:trapezoid":{value:(0,e.ObjectNode)({min:(0,e.NumberNode)(),max:(0,e.NumberNode)(),plateau:(0,e.NumberNode)()})}}),i.register("float_provider",(0,r.FloatProvider)()),r.IntProvider=m=>x("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:(0,e.NumberNode)(g({integer:!0},m))},"minecraft:uniform":{value:(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(g({integer:!0},m)),max_inclusive:(0,e.NumberNode)(g({integer:!0},m))})},"minecraft:biased_to_bottom":{value:(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(g({integer:!0},m)),max_inclusive:(0,e.NumberNode)(g({integer:!0},m))})},"minecraft:clamped":{value:(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(g({integer:!0},m)),max_inclusive:(0,e.NumberNode)(g({integer:!0},m)),source:a("int_provider")})},"minecraft:clamped_normal":{value:(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(g({integer:!0},m)),max_inclusive:(0,e.NumberNode)(g({integer:!0},m)),mean:(0,e.NumberNode)(),deviation:(0,e.NumberNode)()})},"minecraft:weighted_list":{distribution:(0,e.ListNode)((0,e.ObjectNode)({weight:(0,e.NumberNode)({integer:!0}),data:a("int_provider")}))}}),i.register("int_provider",(0,r.IntProvider)()),i.register("vertical_anchor",(0,e.ChoiceNode)(["absolute","above_bottom","below_top"].map(m=>({type:m,match:f=>(f==null?void 0:f[m])!==void 0,change:f=>{var j,v,S;return{[m]:(S=(v=(j=f.absolute)!==null&&j!==void 0?j:f.above_bottom)!==null&&v!==void 0?v:f.below_top)!==null&&S!==void 0?S:0}},node:(0,e.ObjectNode)({[m]:(0,e.NumberNode)({integer:!0,min:-2048,max:2047})})})),{context:"vertical_anchor"})),i.register("height_provider",x("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:(0,e.Opt)((0,e.NumberNode)({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:a("vertical_anchor"),max_inclusive:a("vertical_anchor"),inner:(0,e.Opt)((0,e.NumberNode)({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:a("vertical_anchor"),max_inclusive:a("vertical_anchor"),plateau:(0,e.Opt)((0,e.NumberNode)({integer:!0}))},"minecraft:weighted_list":{distribution:(0,e.ListNode)((0,e.ObjectNode)({weight:(0,e.NumberNode)({integer:!0}),data:a("int_provider")}))}})),r.InclusiveRange=m=>(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(m),max_inclusive:(0,e.NumberNode)(m)},{context:"range"}),i.register("noise_parameters",(0,e.Mod)((0,e.ObjectNode)({firstOctave:(0,e.NumberNode)({integer:!0}),amplitudes:(0,e.ListNode)((0,e.NumberNode)())},{context:"noise_parameters"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})})),r.Tag=m=>(0,e.ChoiceNode)([{type:"string",node:n({validator:"resource",params:{pool:m.resource,allowTag:!0}}),change:f=>{if(Array.isArray(f)&&typeof f[0]=="string"&&!f[0].startsWith("#"))return f[0]}},{type:"list",node:(0,e.ListNode)(m.inlineSchema?(0,e.ChoiceNode)([{type:"string",node:n({validator:"resource",params:{pool:m.resource}})},{type:"object",node:a(m.inlineSchema)}],{choiceContext:"tag.list"}):n({validator:"resource",params:{pool:m.resource}})),change:f=>typeof f=="string"&&!f.startsWith("#")?[f]:[]}],{choiceContext:"tag"}),r.ConditionCases=(m=n({enum:"entity_source"}))=>({"minecraft:alternative":{terms:(0,e.ListNode)(a("condition"))},"minecraft:block_state_property":{block:n({validator:"resource",params:{pool:"block"}}),properties:(0,e.MapNode)(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:a("damage_source_predicate")},"minecraft:entity_properties":{entity:m,predicate:a("entity_predicate")},"minecraft:entity_scores":{entity:m,scores:(0,e.MapNode)(n({validator:"objective"}),a("int_range"))},"minecraft:inverted":{term:a("condition")},"minecraft:killed_by_player":{inverse:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:location_check":{offsetX:(0,e.Opt)((0,e.NumberNode)({integer:!0})),offsetY:(0,e.Opt)((0,e.NumberNode)({integer:!0})),offsetZ:(0,e.Opt)((0,e.NumberNode)({integer:!0})),predicate:a("location_predicate")},"minecraft:match_tool":{predicate:a("item_predicate")},"minecraft:random_chance":{chance:(0,e.NumberNode)({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:(0,e.NumberNode)({min:0,max:1}),looting_multiplier:(0,e.NumberNode)()},"minecraft:reference":{name:n({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:n({validator:"resource",params:{pool:"enchantment"}}),chances:(0,e.ListNode)((0,e.NumberNode)({min:0,max:1}))},"minecraft:time_check":{value:a("int_range"),period:(0,e.Opt)((0,e.NumberNode)({integer:!0}))},"minecraft:value_check":{value:a("number_provider"),range:a("int_range")},"minecraft:weather_check":{raining:(0,e.Opt)((0,e.BooleanNode)()),thundering:(0,e.Opt)((0,e.BooleanNode)())}}),r.FunctionCases=(m,f=n({enum:"copy_source"}),j=n({enum:"entity_source"}))=>{const v={"minecraft:apply_bonus":{enchantment:n({validator:"resource",params:{pool:"enchantment"}}),formula:n({validator:"resource",params:{pool:d.get("loot_table_apply_bonus_formula")}}),parameters:(0,e.Mod)((0,e.ObjectNode)({bonusMultiplier:(0,e.Mod)((0,e.NumberNode)(),{enabled:D=>D.pop().push("formula").get()==="minecraft:uniform_bonus_count"}),extra:(0,e.Mod)((0,e.NumberNode)(),{enabled:D=>D.pop().push("formula").get()==="minecraft:binomial_with_bonus_count"}),probability:(0,e.Mod)((0,e.NumberNode)(),{enabled:D=>D.pop().push("formula").get()==="minecraft:binomial_with_bonus_count"})}),{enabled:D=>D.push("formula").get()!=="minecraft:ore_drops"})},"minecraft:copy_name":{source:f},"minecraft:copy_nbt":{source:a("nbt_provider"),ops:(0,e.ListNode)((0,e.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:(0,e.ListNode)(n({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:(0,e.Opt)((0,e.ListNode)(n({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:a("number_provider"),treasure:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:exploration_map":{destination:(0,e.Opt)((0,r.Tag)({resource:"$worldgen/configured_structure_feature"})),decoration:(0,e.Opt)(n({enum:"map_decoration"})),zoom:(0,e.Opt)((0,e.NumberNode)({integer:!0})),search_radius:(0,e.Opt)((0,e.NumberNode)({integer:!0})),skip_existing_chunks:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:fill_player_head":{entity:j},"minecraft:limit_count":{limit:a("int_range")},"minecraft:looting_enchant":{count:a("number_provider"),limit:(0,e.Opt)((0,e.NumberNode)({integer:!0}))},"minecraft:set_attributes":{modifiers:(0,e.ListNode)(a("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:(0,e.ListNode)((0,e.ObjectNode)({pattern:n({enum:"banner_pattern"}),color:n({enum:"dye_color"})})),append:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:set_contents":{type:n({validator:"resource",params:{pool:"block_entity_type"}}),entries:(0,e.ListNode)(a("loot_entry"))},"minecraft:set_count":{count:a("number_provider"),add:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:set_damage":{damage:a("number_provider"),add:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:set_enchantments":{enchantments:(0,e.MapNode)(n({validator:"resource",params:{pool:"enchantment"}}),a("number_provider")),add:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:set_loot_table":{type:n({validator:"resource",params:{pool:"block_entity_type"}}),name:n({validator:"resource",params:{pool:"$loot_table"}}),seed:(0,e.Opt)((0,e.NumberNode)({integer:!0}))},"minecraft:set_lore":{entity:(0,e.Opt)(j),lore:(0,e.ListNode)(a("text_component")),replace:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:set_name":{entity:(0,e.Opt)(j),name:(0,e.Opt)(a("text_component"))},"minecraft:set_nbt":{tag:n({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_potion":{id:n({validator:"resource",params:{pool:"potion"}})},"minecraft:set_stew_effect":{effects:(0,e.Opt)((0,e.ListNode)((0,e.ObjectNode)({type:n({validator:"resource",params:{pool:"mob_effect"}}),duration:a("number_provider")})))}},S={};return d.get("loot_function_type").forEach(D=>{S[D]=g(g({},v[D]),m)}),S},r.DimensionTypePresets=m=>(0,e.ObjectOrPreset)(n({validator:"resource",params:{pool:"$dimension_type"}}),m,{"minecraft:overworld":r.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}}),r.NoiseSettingsPresets=m=>(0,e.ObjectOrPreset)(n({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),m,{"minecraft:overworld":r.DefaultNoiseSettings,"minecraft:nether":{sea_level:32,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,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,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}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:end":{sea_level:0,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,default_block:{Name:"minecraft:end_stone"},default_fluid:{Name:"minecraft:air"},noise:{min_y:0,height:128,size_horizontal:2,size_vertical:1,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}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:amplified":{sea_level:63,ore_veins_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,legacy_random_source:!1,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,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}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:caves":{sea_level:32,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,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,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}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:floating_islands":{sea_level:0,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,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,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}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}}})}r.initCommonSchemas=t})(R);var pe={};Object.defineProperty(pe,"__esModule",{value:!0});pe.initConditionSchemas=void 0;const te=k,ct=R;function dt(r,e){const t=te.Reference.bind(void 0,r),i=te.StringNode.bind(void 0,e);r.register("predicate",(0,te.ObjectOrList)(t("condition"),{choiceContext:"condition"})),r.register("condition",(0,te.Mod)((0,te.ObjectNode)({condition:i({validator:"resource",params:{pool:"loot_condition_type"}}),[te.Switch]:[{push:"condition"}],[te.Case]:(0,ct.ConditionCases)()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))}pe.initConditionSchemas=dt;var fe={};Object.defineProperty(fe,"__esModule",{value:!0});fe.initDimensionSchemas=void 0;const O=k,Be=R;function st(r,e){const t=O.Reference.bind(void 0,r),i=O.StringNode.bind(void 0,e),d=(0,O.ChoiceNode)([{type:"string",priority:1,node:i({validator:"resource",params:{pool:"$worldgen/structure_set"}}),change:()=>{}},{type:"object",node:t("structure_set"),change:()=>({})}],{choiceContext:"structure_set"});r.register("dimension",(0,O.Mod)((0,O.ObjectNode)({type:(0,Be.DimensionTypePresets)(t("dimension_type")),generator:(0,O.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[O.Switch]:[{push:"type"}],[O.Case]:{"minecraft:noise":{seed:(0,O.NumberNode)({integer:!0}),settings:(0,Be.NoiseSettingsPresets)(t("noise_settings")),biome_source:(0,O.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/biome_source"}}),[O.Switch]:[{push:"type"}],[O.Case]:{"minecraft:fixed":{biome:i({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{preset:(0,O.Opt)(i({validator:"resource",params:{pool:["minecraft:overworld","minecraft:nether"]}})),biomes:(0,O.Mod)((0,O.ListNode)(t("generator_biome")),{enabled:a=>a.push("preset").get()===void 0,default:()=>[{biome:"minecraft:plains"}]})},"minecraft:checkerboard":{scale:(0,O.Opt)((0,O.NumberNode)({integer:!0,min:0,max:62})),biomes:(0,Be.Tag)({resource:"$worldgen/biome"})},"minecraft:the_end":{seed:(0,O.NumberNode)({integer:!0})}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:(0,O.ObjectNode)({biome:(0,O.Opt)(i({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:(0,O.Opt)((0,O.BooleanNode)()),features:(0,O.Opt)((0,O.BooleanNode)()),layers:(0,O.ListNode)(t("generator_layer")),structure_overrides:(0,O.ListNode)(d)})}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>{const a=Math.floor(Math.random()*4294967296)-2147483648;return{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:a,biome_source:{type:"minecraft:fixed",seed:a,biome:"minecraft:plains"},settings:"minecraft:overworld"}}}}));const n=(0,O.ChoiceNode)([{type:"number",node:(0,O.NumberNode)({min:-2,max:2}),change:a=>{var p;return(p=a[0])!==null&&p!==void 0?p:0}},{type:"list",node:(0,O.ListNode)((0,O.NumberNode)({min:-2,max:2}),{minLength:2,maxLength:2}),change:a=>[a!=null?a:0,a!=null?a:0]}]);r.register("generator_biome",(0,O.Mod)((0,O.ObjectNode)({biome:i({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:(0,O.ObjectNode)({temperature:n,humidity:n,continentalness:n,erosion:n,weirdness:n,depth:n,offset:(0,O.NumberNode)({min:0,max:1})})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})}))}fe.initDimensionSchemas=st;var ge={};Object.defineProperty(ge,"__esModule",{value:!0});ge.initDimensionTypeSchemas=void 0;const F=k,lt=R;function mt(r,e){const t=F.StringNode.bind(void 0,e);r.register("dimension_type",(0,F.Mod)((0,F.ObjectNode)({ultrawarm:(0,F.BooleanNode)(),natural:(0,F.BooleanNode)(),piglin_safe:(0,F.BooleanNode)(),respawn_anchor_works:(0,F.BooleanNode)(),bed_works:(0,F.BooleanNode)(),has_raids:(0,F.BooleanNode)(),has_skylight:(0,F.BooleanNode)(),has_ceiling:(0,F.BooleanNode)(),coordinate_scale:(0,F.NumberNode)({min:1e-5,max:3e7}),ambient_light:(0,F.NumberNode)(),fixed_time:(0,F.Opt)((0,F.NumberNode)({integer:!0})),logical_height:(0,F.NumberNode)({integer:!0,min:0,max:4064}),effects:(0,F.Opt)(t({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:t({validator:"resource",params:{pool:"block",requireTag:!0}}),min_y:(0,F.NumberNode)({integer:!0,min:-2032,max:2031}),height:(0,F.NumberNode)({integer:!0,min:16,max:4064})},{context:"dimension_type"}),i=>({default:()=>lt.DefaultDimensionType,validate:(d,n,a,p)=>(n=i.validate(d,n,a,p),(n==null?void 0:n.min_y)+(n==null?void 0:n.height)>2032&&a.add(d.push("height"),"error.min_y_plus_height",2032),(n==null?void 0:n.logical_height)>(n==null?void 0:n.height)&&a.add(d.push("logical_height"),"error.logical_height"),(n==null?void 0:n.height)%16!==0&&a.add(d.push("height"),"error.height_multiple",16),(n==null?void 0:n.min_y)%16!==0&&a.add(d.push("min_y"),"error.min_y_multiple",16),n)})))}ge.initDimensionTypeSchemas=mt;var be={};Object.defineProperty(be,"__esModule",{value:!0});be.initItemModifierSchemas=void 0;const V=k,_t=R;function ut(r,e){const t=V.Reference.bind(void 0,r),i=V.StringNode.bind(void 0,e);r.register("item_modifier",(0,V.ObjectOrList)(t("function"),{choiceContext:"function"}));const d={conditions:(0,V.Opt)((0,V.ListNode)(t("condition")))};r.register("function",(0,V.Mod)((0,V.ObjectNode)({function:i({validator:"resource",params:{pool:"loot_function_type"}}),[V.Switch]:[{push:"function"}],[V.Case]:(0,_t.FunctionCases)(d)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))}be.initItemModifierSchemas=ut;var Ne={},q={};Object.defineProperty(q,"__esModule",{value:!0});q.LootFunctions=q.LootConditions=q.LootCopySources=q.LootEntitySources=q.LootTableTypes=void 0;q.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]}]]);q.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]);q.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]);q.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",[]]]);q.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(Ne,"__esModule",{value:!0});Ne.initLootTableSchemas=void 0;const u=k,oe=q,qe=R;function pt(r,e){const t=u.Reference.bind(void 0,r),i=u.StringNode.bind(void 0,e),d={conditions:(0,u.Opt)((0,u.ListNode)(t("loot_condition")))},n=g({functions:(0,u.Opt)((0,u.ListNode)(t("loot_function")))},d);function a(v,S,D){const W=[],ne=J=>e.get(S).filter(Q=>{var I;return((I=v.get(Q))!==null&&I!==void 0?I:[]).every(ee=>J.includes(ee))});for(const[J,{allows:Q,requires:I}]of oe.LootTableTypes){const A=[...Q,...I];W.push({match:ee=>ee.getModel().get(new u.Path(["type"]))===J,node:D(ne(A))})}return W.push({match:J=>!0,node:D(S)}),(0,u.SwitchNode)(W)}const p=a(oe.LootConditions,"loot_condition_type",v=>i({validator:"resource",params:{pool:v instanceof Array?v:"loot_condition_type"}})),x=a(oe.LootFunctions,"loot_function_type",v=>i({validator:"resource",params:{pool:v instanceof Array?v:"loot_function_type"}})),m=a(oe.LootEntitySources,"entity_source",v=>i({enum:v})),f=a(oe.LootCopySources,"copy_source",v=>i({enum:v}));r.register("loot_table",(0,u.Mod)((0,u.ObjectNode)({type:(0,u.Opt)(i({validator:"resource",params:{pool:e.get("loot_context_type")}})),pools:(0,u.Opt)((0,u.ListNode)((0,u.Mod)((0,u.ObjectNode)(g({rolls:t("number_provider"),bonus_rolls:(0,u.Opt)(t("number_provider")),entries:(0,u.ListNode)(t("loot_entry"))},n),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:(0,u.Opt)((0,u.ListNode)(t("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const j={enabled:v=>{var S;return((S=v.pop().get())===null||S===void 0?void 0:S.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(v.push("type").get())}};r.register("loot_entry",(0,u.Mod)((0,u.ObjectNode)({type:i({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0,min:1}),j)),quality:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),j)),[u.Switch]:[{push:"type"}],[u.Case]:{"minecraft:alternatives":g({children:(0,u.ListNode)(t("loot_entry"))},n),"minecraft:dynamic":g({name:i()},n),"minecraft:group":g({children:(0,u.ListNode)(t("loot_entry"))},n),"minecraft:item":g({name:i({validator:"resource",params:{pool:"item"}})},n),"minecraft:loot_table":g({name:i({validator:"resource",params:{pool:"$loot_table"}})},n),"minecraft:sequence":g({children:(0,u.ListNode)(t("loot_entry"))},n),"minecraft:tag":g({name:i({validator:"resource",params:{pool:"$tag/item"}}),expand:(0,u.Opt)((0,u.BooleanNode)())},n)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),r.register("loot_function",(0,u.Mod)((0,u.ObjectNode)({function:x,[u.Switch]:[{push:"function"}],[u.Case]:(0,qe.FunctionCases)(d,f,m)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),r.register("loot_condition",(0,u.Mod)((0,u.ObjectNode)({condition:p,[u.Switch]:[{push:"condition"}],[u.Case]:(0,qe.ConditionCases)(m)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),r.register("attribute_modifier",(0,u.Mod)((0,u.ObjectNode)({attribute:i({validator:"resource",params:{pool:"attribute"}}),name:i(),amount:t("number_provider"),operation:i({enum:["addition","multiply_base","multiply_total"]}),id:(0,u.Opt)(i({validator:"uuid"})),slot:(0,u.StringOrList)(i({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))}Ne.initLootTableSchemas=pt;var he={};Object.defineProperty(he,"__esModule",{value:!0});he.initPackMcmetaSchemas=void 0;const re=k,K=9;function ft(r,e){r.register("pack_mcmeta",(0,re.Mod)((0,re.ObjectNode)({pack:(0,re.Mod)((0,re.ObjectNode)({pack_format:(0,re.Mod)((0,re.NumberNode)({integer:!0,min:K,max:K}),{default:()=>K,canUpdate:(t,i)=>i!==K,update:()=>[{name:"pack_format",params:[K],newValue:K}]}),description:(0,re.Reference)(r,"text_component")}),{default:()=>({pack_format:K,description:""})})}),{default:()=>({pack:{pack_format:K,description:""}})}))}he.initPackMcmetaSchemas=ft;var ye={};Object.defineProperty(ye,"__esModule",{value:!0});ye.initPredicatesSchemas=void 0;const c=k;function gt(r,e){const t=c.Reference.bind(void 0,r),i=c.StringNode.bind(void 0,e),d=(0,c.ChoiceNode)([{type:"string",node:i(),change:n=>typeof n=="boolean"||typeof n=="number"?n.toString():""},{type:"number",node:(0,c.NumberNode)(),change:n=>typeof n=="string"?parseInt(n):0},{type:"object",node:(0,c.ObjectNode)({min:(0,c.Opt)((0,c.NumberNode)({integer:!0})),max:(0,c.Opt)((0,c.NumberNode)({integer:!0}))}),change:n=>typeof n=="number"?{min:n,max:n}:{}},{type:"boolean",node:(0,c.BooleanNode)(),change:n=>n==="true"||n===1}]);r.register("item_predicate",(0,c.ObjectNode)({items:(0,c.Opt)((0,c.ListNode)(i({validator:"resource",params:{pool:"item"}}))),tag:(0,c.Opt)(i({validator:"resource",params:{pool:"$tag/item"}})),count:t("int_bounds"),durability:t("int_bounds"),potion:(0,c.Opt)(i({validator:"resource",params:{pool:"potion"}})),nbt:(0,c.Opt)(i({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:(0,c.Opt)((0,c.ListNode)(t("enchantment_predicate")))},{context:"item"})),r.register("enchantment_predicate",(0,c.ObjectNode)({enchantment:(0,c.Opt)(i({validator:"resource",params:{pool:"enchantment"}})),levels:t("int_bounds")},{context:"enchantment"})),r.register("block_predicate",(0,c.ObjectNode)({blocks:(0,c.Opt)((0,c.ListNode)(i({validator:"resource",params:{pool:"block"}}))),tag:(0,c.Opt)(i({validator:"resource",params:{pool:"$tag/block"}})),nbt:(0,c.Opt)(i({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:(0,c.Opt)((0,c.MapNode)(i(),d,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),r.register("fluid_predicate",(0,c.ObjectNode)({fluid:(0,c.Opt)(i({validator:"resource",params:{pool:"fluid"}})),tag:(0,c.Opt)(i({validator:"resource",params:{pool:"$tag/fluid"}})),state:(0,c.Opt)((0,c.MapNode)(i(),d))},{context:"fluid"})),r.register("location_predicate",(0,c.ObjectNode)({position:(0,c.Opt)((0,c.ObjectNode)({x:t("float_bounds"),y:t("float_bounds"),z:t("float_bounds")})),biome:(0,c.Opt)(i({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:(0,c.Opt)(i({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),dimension:(0,c.Opt)(i({validator:"resource",params:{pool:"$dimension"}})),light:(0,c.Opt)((0,c.ObjectNode)({light:t("int_bounds")})),smokey:(0,c.Opt)((0,c.BooleanNode)()),block:(0,c.Opt)(t("block_predicate")),fluid:(0,c.Opt)(t("fluid_predicate"))},{context:"location"})),r.register("statistic_predicate",(0,c.ObjectNode)({type:i({validator:"resource",params:{pool:"stat_type"}}),stat:i(),value:t("int_bounds"),[c.Switch]:[{push:"type"}],[c.Case]:{"minecraft:mined":{stat:i({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:i({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:i({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:i({validator:"resource",params:{pool:"custom_stat"}})}}})),r.register("player_predicate",(0,c.ObjectNode)({gamemode:(0,c.Opt)(i({enum:"gamemode"})),level:t("int_bounds"),advancements:(0,c.Opt)((0,c.MapNode)(i({validator:"resource",params:{pool:"$advancement"}}),(0,c.ChoiceNode)([{type:"boolean",node:(0,c.BooleanNode)(),change:n=>!0},{type:"object",node:(0,c.MapNode)(i(),(0,c.BooleanNode)())}]))),recipes:(0,c.Opt)((0,c.MapNode)(i({validator:"resource",params:{pool:"$recipe"}}),(0,c.BooleanNode)())),stats:(0,c.Opt)((0,c.ListNode)(t("statistic_predicate"))),looking_at:(0,c.Opt)(t("entity_predicate"))},{context:"player"})),r.register("status_effect_predicate",(0,c.ObjectNode)({amplifier:t("int_bounds"),duration:t("int_bounds"),ambient:(0,c.Opt)((0,c.BooleanNode)()),visible:(0,c.Opt)((0,c.BooleanNode)())},{context:"status_effect"})),r.register("distance_predicate",(0,c.ObjectNode)({x:t("float_bounds"),y:t("float_bounds"),z:t("float_bounds"),absolute:t("float_bounds"),horizontal:t("float_bounds")},{context:"distance"})),r.register("entity_predicate",(0,c.ObjectNode)({type:(0,c.Opt)(i({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:(0,c.Opt)(i({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:(0,c.Opt)(i({validator:"team"})),location:(0,c.Opt)(t("location_predicate")),stepping_on:(0,c.Opt)(t("location_predicate")),distance:(0,c.Opt)(t("distance_predicate")),flags:(0,c.Opt)((0,c.ObjectNode)({is_on_fire:(0,c.Opt)((0,c.BooleanNode)()),is_sneaking:(0,c.Opt)((0,c.BooleanNode)()),is_sprinting:(0,c.Opt)((0,c.BooleanNode)()),is_swimming:(0,c.Opt)((0,c.BooleanNode)()),is_baby:(0,c.Opt)((0,c.BooleanNode)())})),equipment:(0,c.Opt)((0,c.MapNode)(i({enum:"slot"}),t("item_predicate"))),player:(0,c.Opt)(t("player_predicate")),vehicle:(0,c.Opt)(t("entity_predicate")),passenger:(0,c.Opt)(t("entity_predicate")),targeted_entity:(0,c.Opt)(t("entity_predicate")),lightning_bolt:(0,c.Opt)((0,c.ObjectNode)({blocks_set_on_fire:(0,c.Opt)(t("int_bounds")),entity_struck:(0,c.Opt)(t("entity_predicate"))})),fishing_hook:(0,c.Opt)((0,c.ObjectNode)({in_open_water:(0,c.Opt)((0,c.BooleanNode)())})),catType:(0,c.Opt)(i({enum:"cat_texture"})),effects:(0,c.Opt)((0,c.MapNode)(i({validator:"resource",params:{pool:"mob_effect"}}),t("status_effect_predicate")))},{context:"entity"})),r.register("damage_source_predicate",(0,c.ObjectNode)({is_explosion:(0,c.Opt)((0,c.BooleanNode)()),is_fire:(0,c.Opt)((0,c.BooleanNode)()),is_magic:(0,c.Opt)((0,c.BooleanNode)()),is_projectile:(0,c.Opt)((0,c.BooleanNode)()),is_lightning:(0,c.Opt)((0,c.BooleanNode)()),bypasses_armor:(0,c.Opt)((0,c.BooleanNode)()),bypasses_invulnerability:(0,c.Opt)((0,c.BooleanNode)()),bypasses_magic:(0,c.Opt)((0,c.BooleanNode)()),source_entity:(0,c.Opt)(t("entity_predicate")),direct_entity:(0,c.Opt)(t("entity_predicate"))},{context:"damage_source"})),r.register("damage_predicate",(0,c.ObjectNode)({dealt:t("float_bounds"),taken:t("float_bounds"),blocked:(0,c.Opt)((0,c.BooleanNode)()),source_entity:(0,c.Opt)(t("entity_predicate")),type:(0,c.Opt)(t("damage_source_predicate"))},{context:"damage"}))}ye.initPredicatesSchemas=gt;var ve={};Object.defineProperty(ve,"__esModule",{value:!0});ve.initRecipeSchemas=void 0;const _=k;function bt(r,e){const t=_.Reference.bind(void 0,r),i=_.StringNode.bind(void 0,e);r.register("recipe",(0,_.Mod)((0,_.ObjectNode)({type:i({validator:"resource",params:{pool:"recipe_serializer"}}),[_.Switch]:[{push:"type"}],[_.Case]:{"minecraft:crafting_shaped":{group:(0,_.Opt)(i({enum:"recipe_group",additional:!0})),pattern:(0,_.ListNode)(i()),key:(0,_.MapNode)(i(),t("recipe_ingredient")),result:t("recipe_result")},"minecraft:crafting_shapeless":{group:(0,_.Opt)(i()),ingredients:(0,_.ListNode)(t("recipe_ingredient")),result:t("recipe_result")},"minecraft:smelting":{group:(0,_.Opt)(i()),ingredient:t("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),experience:(0,_.Opt)((0,_.NumberNode)()),cookingtime:(0,_.Opt)((0,_.Mod)((0,_.NumberNode)({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:(0,_.Opt)(i()),ingredient:t("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),experience:(0,_.Opt)((0,_.NumberNode)()),cookingtime:(0,_.Opt)((0,_.Mod)((0,_.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:(0,_.Opt)(i()),ingredient:t("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),experience:(0,_.Opt)((0,_.NumberNode)()),cookingtime:(0,_.Opt)((0,_.Mod)((0,_.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:(0,_.Opt)(i()),ingredient:t("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),experience:(0,_.Opt)((0,_.NumberNode)()),cookingtime:(0,_.Opt)((0,_.Mod)((0,_.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:(0,_.Opt)(i()),ingredient:t("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),count:(0,_.NumberNode)({integer:!0})},"minecraft:smithing":{group:(0,_.Opt)(i()),base:t("recipe_ingredient_object"),addition:t("recipe_ingredient_object"),result:t("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),r.register("recipe_ingredient",(0,_.Mod)((0,_.ChoiceNode)([{type:"object",node:t("recipe_ingredient_object"),change:d=>d[0]},{type:"list",node:(0,_.ListNode)(t("recipe_ingredient_object")),change:d=>[d]}]),{default:()=>({item:"minecraft:stone"})})),r.register("recipe_ingredient_object",(0,_.Mod)((0,_.ObjectNode)({item:(0,_.Opt)(i({validator:"resource",params:{pool:"item"}})),tag:(0,_.Opt)(i({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),r.register("recipe_result",(0,_.Mod)((0,_.ObjectNode)({item:i({validator:"resource",params:{pool:"item"}}),count:(0,_.Opt)((0,_.Mod)((0,_.NumberNode)({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))}ve.initRecipeSchemas=bt;var Oe={};Object.defineProperty(Oe,"__esModule",{value:!0});Oe.initTagsSchemas=void 0;const G=k;function Nt(r,e){const t=G.StringNode.bind(void 0,e),i=d=>(0,G.Mod)((0,G.ObjectNode)({replace:(0,G.Opt)((0,G.BooleanNode)()),values:(0,G.ListNode)((0,G.ChoiceNode)([{type:"string",node:t({validator:"resource",params:{pool:d,allowTag:!0}}),change:n=>n.id},{type:"object",node:(0,G.ObjectNode)({id:t({validator:"resource",params:{pool:d,allowTag:!0,allowUnknown:!0}}),required:(0,G.BooleanNode)()}),change:n=>({id:n})}]))},{context:"tag"}),{default:()=>({values:[]})});r.register("block_tag",i("block")),r.register("entity_type_tag",i("entity_type")),r.register("fluid_tag",i("fluid")),r.register("function_tag",i("$function")),r.register("game_event_tag",i("game_event")),r.register("item_tag",i("item")),r.register("advancement_tag",i("$advancement")),r.register("dimension_tag",i("$dimension")),r.register("dimension_type_tag",i("$dimension_type")),r.register("function_tag",i("$function")),r.register("item_modifier_tag",i("$item_modifier")),r.register("loot_table_tag",i("$loot_table")),r.register("predicate_tag",i("$predicate")),r.register("recipe_tag",i("$recipe")),r.register("structure_tag",i("$structure")),r.register("biome_tag",i("$worldgen/biome")),r.register("configured_carver_tag",i("$worldgen/configured_carver")),r.register("configured_decorator_tag",i("$worldgen/configured_decorator")),r.register("configured_feature_tag",i("$worldgen/configured_feature")),r.register("configured_structure_feature_tag",i("$worldgen/configured_structure_feature")),r.register("configured_surface_builder_tag",i("$worldgen/configured_surface_builder")),r.register("density_function_tag",i("$worldgen/density_function")),r.register("noise_tag",i("$worldgen/noise")),r.register("noise_settings_tag",i("$worldgen/noise_settings")),r.register("placed_feature_tag",i("$worldgen/placed_feature")),r.register("processor_list_tag",i("$worldgen/processor_list")),r.register("structure_set_tag",i("$worldgen/structure_set")),r.register("template_pool_tag",i("$worldgen/template_pool"))}Oe.initTagsSchemas=Nt;var ke={};Object.defineProperty(ke,"__esModule",{value:!0});ke.initTextComponentSchemas=void 0;const l=k;function ht(r,e){const t=l.Reference.bind(void 0,r),i=l.StringNode.bind(void 0,e),d=a=>{var p;return a instanceof Array?d(a[0]):(p=a==null?void 0:a.text)!==null&&p!==void 0?p:typeof a=="object"?"":a==null?void 0:a.toString()};r.register("text_component",(0,l.Mod)((0,l.ChoiceNode)([{type:"object",node:t("text_component_object"),change:a=>a instanceof Array?typeof a[0]=="object"?a[0]:{text:d(a[0])}:typeof a=="object"?a:{text:d(a)}},{type:"list",node:t("text_component_list"),change:a=>[a]},{type:"string",priority:1,node:i(),change:d},{type:"number",node:(0,l.NumberNode)(),change:a=>{const p=parseFloat(d(a));return isFinite(p)?p:a?1:0}},{type:"boolean",node:(0,l.BooleanNode)(),change:a=>{const p=d(a);return p==="true"||p==="false"?p==="true":!!p}}],{context:"text_component"}),{default:()=>({text:""})}));const n={color:(0,l.Opt)(i()),font:(0,l.Opt)(i()),bold:(0,l.Opt)((0,l.BooleanNode)()),italic:(0,l.Opt)((0,l.BooleanNode)()),underlined:(0,l.Opt)((0,l.BooleanNode)()),strikethrough:(0,l.Opt)((0,l.BooleanNode)()),obfuscated:(0,l.Opt)((0,l.BooleanNode)()),insertion:(0,l.Opt)(i()),clickEvent:(0,l.Opt)((0,l.ObjectNode)({action:i({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[l.Switch]:[{push:"action"}],[l.Case]:{change_page:{value:i()},copy_to_clipboard:{value:i()},open_file:{value:i()},open_url:{value:i()},run_command:{value:i({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:i({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:(0,l.Opt)((0,l.ObjectNode)({action:i({enum:["show_text","show_item","show_entity"]}),[l.Switch]:[{push:"action"}],[l.Case]:{show_text:{value:(0,l.Opt)(t("text_component")),contents:(0,l.Opt)(t("text_component"))},show_item:{value:(0,l.Opt)(i({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:(0,l.Opt)((0,l.ObjectNode)({id:i({validator:"resource",params:{pool:"item"}}),count:(0,l.Opt)((0,l.NumberNode)({integer:!0})),tag:(0,l.Opt)(i({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:(0,l.Opt)((0,l.ObjectNode)({name:(0,l.Opt)(i()),type:(0,l.Opt)(i()),id:(0,l.Opt)(i())})),contents:(0,l.Opt)((0,l.Mod)((0,l.ObjectNode)({name:(0,l.Opt)(t("text_component")),type:i({validator:"resource",params:{pool:"entity_type"}}),id:i({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:(0,l.Opt)(t("text_component_list"))};r.register("text_component_object",(0,l.Mod)((0,l.ChoiceNode)([{type:"text",match:a=>typeof a=="object",change:a=>({text:""}),priority:-1,node:(0,l.ObjectNode)(g({text:i()},n))},{type:"translation",match:a=>(a==null?void 0:a.translate)!==void 0,change:a=>({translate:""}),node:(0,l.ObjectNode)(g({translate:i(),with:(0,l.Opt)(t("text_component_list"))},n))},{type:"score",match:a=>(a==null?void 0:a.score)!==void 0,change:a=>({score:{}}),node:(0,l.ObjectNode)(g({score:(0,l.ObjectNode)({name:i({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:i({validator:"objective"}),value:(0,l.Opt)(i())})},n))},{type:"selector",match:a=>(a==null?void 0:a.selector)!==void 0,change:a=>({selector:""}),node:(0,l.ObjectNode)(g({selector:i({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:(0,l.Opt)(t("text_component"))},n))},{type:"keybind",match:a=>(a==null?void 0:a.keybind)!==void 0,change:a=>({keybind:""}),node:(0,l.ObjectNode)(g({keybind:i({enum:"keybind",additional:!0})},n))},{type:"nbt",match:a=>(a==null?void 0:a.nbt)!==void 0,change:a=>({nbt:""}),node:(0,l.ObjectNode)(g({nbt:i({validator:"nbt_path"}),block:(0,l.Opt)(i({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:(0,l.Opt)(i({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:(0,l.Opt)(i({validator:"resource",params:{pool:"$storage"}})),interpret:(0,l.Opt)((0,l.BooleanNode)()),separator:(0,l.Opt)(t("text_component"))},n))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),r.register("text_component_list",(0,l.Mod)((0,l.ListNode)(t("text_component")),{default:()=>[{text:""}]}))}ke.initTextComponentSchemas=ht;var xe={},De={};(function(r){Object.defineProperty(r,"__esModule",{value:!0}),r.initBiomeSchemas=r.MobCategorySpawnSettings=void 0;const e=k,t=R;function i(d,n){const a=e.StringNode.bind(void 0,n);r.MobCategorySpawnSettings=(0,e.Mod)((0,e.ListNode)((0,e.ObjectNode)({type:a({validator:"resource",params:{pool:"entity_type"}}),weight:(0,e.NumberNode)({integer:!0}),minCount:(0,e.NumberNode)({integer:!0}),maxCount:(0,e.NumberNode)({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]}),d.register("biome",(0,e.Mod)((0,e.ObjectNode)({temperature:(0,e.NumberNode)(),downfall:(0,e.NumberNode)(),precipitation:a({enum:["none","rain","snow"]}),temperature_modifier:(0,e.Opt)(a({enum:["none","frozen"]})),category:a({enum:"biome_category"}),creature_spawn_probability:(0,e.Opt)((0,e.NumberNode)({min:0,max:1})),effects:(0,e.ObjectNode)({sky_color:(0,e.NumberNode)({color:!0}),fog_color:(0,e.NumberNode)({color:!0}),water_color:(0,e.NumberNode)({color:!0}),water_fog_color:(0,e.NumberNode)({color:!0}),grass_color:(0,e.Opt)((0,e.NumberNode)({color:!0})),foliage_color:(0,e.Opt)((0,e.NumberNode)({color:!0})),grass_color_modifier:(0,e.Opt)(a({enum:["none","dark_forest","swamp"]})),ambient_sound:(0,e.Opt)(a()),mood_sound:(0,e.Opt)((0,e.ObjectNode)({sound:a(),tick_delay:(0,e.NumberNode)({integer:!0}),block_search_extent:(0,e.NumberNode)({integer:!0}),offset:(0,e.NumberNode)()})),additions_sound:(0,e.Opt)((0,e.ObjectNode)({sound:a(),tick_chance:(0,e.NumberNode)({min:0,max:1})})),music:(0,e.Opt)((0,e.ObjectNode)({sound:a(),min_delay:(0,e.NumberNode)({integer:!0,min:0}),max_delay:(0,e.NumberNode)({integer:!0,min:0}),replace_current_music:(0,e.BooleanNode)()})),particle:(0,e.Opt)((0,e.ObjectNode)({options:(0,e.ObjectNode)({type:a()}),probability:(0,e.NumberNode)({min:0,max:1})}))}),spawners:(0,e.MapNode)(a({enum:"mob_category"}),r.MobCategorySpawnSettings),spawn_costs:(0,e.MapNode)(a({validator:"resource",params:{pool:"entity_type"}}),(0,e.Mod)((0,e.ObjectNode)({energy_budget:(0,e.NumberNode)(),charge:(0,e.NumberNode)()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:(0,e.MapNode)(a({enum:["air","liquid"]}),(0,e.Mod)((0,t.Tag)({resource:"$worldgen/configured_carver",inlineSchema:"configured_carver"}),{default:()=>["minecraft:cave"]})),features:(0,e.ListNode)((0,e.Mod)((0,t.Tag)({resource:"$worldgen/placed_feature",inlineSchema:"placed_feature"}),{category:()=>"predicate"}),{maxLength:11})},{context:"biome"}),{default:()=>({temperature:.8,downfall:.4,precipitation:"rain",category:"plains",effects:{sky_color:7907327,fog_color:12638463,water_color:4159204,water_fog_color:329011}})}))}r.initBiomeSchemas=i})(De);var we={};Object.defineProperty(we,"__esModule",{value:!0});we.initCarverSchemas=void 0;const L=k,X=R;function yt(r,e){const t=L.Reference.bind(void 0,r),i=L.StringNode.bind(void 0,e),d={vertical_rotation:(0,X.FloatProvider)(),shape:(0,L.ObjectNode)({distance_factor:(0,X.FloatProvider)(),thickness:(0,X.FloatProvider)(),width_smoothness:(0,L.NumberNode)({integer:!0,min:0}),horizontal_radius_factor:(0,X.FloatProvider)(),vertical_radius_default_factor:(0,L.NumberNode)(),vertical_radius_center_factor:(0,L.NumberNode)()})},n={horizontal_radius_multiplier:(0,X.FloatProvider)(),vertical_radius_multiplier:(0,X.FloatProvider)(),floor_level:(0,X.FloatProvider)({min:-1,max:1})};r.register("configured_carver",(0,L.Mod)((0,L.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/carver"}}),config:(0,L.ObjectNode)({probability:(0,L.NumberNode)({min:0,max:1}),y:t("height_provider"),yScale:(0,X.FloatProvider)(),lava_level:t("vertical_anchor"),debug_settings:(0,L.Opt)((0,L.ObjectNode)({debug_mode:(0,L.Opt)((0,L.BooleanNode)()),air_state:(0,L.Opt)(t("block_state")),water_state:(0,L.Opt)(t("block_state")),lava_state:(0,L.Opt)(t("block_state")),barrier_state:(0,L.Opt)(t("block_state"))})),[L.Switch]:["pop",{push:"type"}],[L.Case]:{"minecraft:canyon":d,"minecraft:cave":n,"minecraft:nether_cave":n}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))}we.initCarverSchemas=yt;var Se={};Object.defineProperty(Se,"__esModule",{value:!0});Se.initDecoratorSchemas=void 0;const $=k,ae=R;function vt(r,e){const t=$.Reference.bind(void 0,r),i=$.StringNode.bind(void 0,e);r.register("decorator",(0,$.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/placement_modifier_type"}}),[$.Switch]:[{push:"type"}],[$.Case]:{"minecraft:block_predicate_filter":{predicate:t("block_predicate_worldgen")},"minecraft:carving_mask":{step:i({enum:"generation_step"})},"minecraft:rarity_filter":{chance:(0,$.NumberNode)({integer:!0,min:0})},"minecraft:count":{count:(0,ae.IntProvider)({min:0,max:256})},"minecraft:count_on_every_layer":{count:(0,ae.IntProvider)({min:0,max:256})},"minecraft:noise_threshold_count":{noise_level:(0,$.NumberNode)(),below_noise:(0,$.NumberNode)({integer:!0}),above_noise:(0,$.NumberNode)({integer:!0})},"minecraft:noise_based_count":{noise_to_count_ratio:(0,$.NumberNode)({integer:!0}),noise_factor:(0,$.NumberNode)(),noise_offset:(0,$.Opt)((0,$.NumberNode)())},"minecraft:environment_scan":{direction_of_search:i({enum:["up","down"]}),max_steps:(0,$.NumberNode)({integer:!0,min:1,max:32}),target_condition:t("block_predicate_worldgen"),allowed_search_condition:(0,$.Opt)(t("block_predicate_worldgen"))},"minecraft:heightmap":{heightmap:i({enum:"heightmap_type"})},"minecraft:height_range":{height:t("height_provider")},"minecraft:random_offset":{xz_spread:(0,ae.IntProvider)({min:-16,max:16}),y_spread:(0,ae.IntProvider)({min:-16,max:16})},"minecraft:surface_relative_threshold_filter":{heightmap:i({enum:"heightmap_type"}),min_inclusive:(0,$.Opt)((0,$.NumberNode)({integer:!0})),max_inclusive:(0,$.Opt)((0,$.NumberNode)({integer:!0}))},"minecraft:surface_water_depth_filter":{max_water_depth:(0,$.NumberNode)({integer:!0})}}},{context:"decorator",category:"predicate"}))}Se.initDecoratorSchemas=vt;var ze={};(function(r){Object.defineProperty(r,"__esModule",{value:!0}),r.initDensityFunctionSchemas=r.DensityFunction=void 0;const e=k;function t(i,d){const n=e.StringNode.bind(void 0,d),a=e.Reference.bind(void 0,i);r.DensityFunction=(0,e.Mod)((0,e.ChoiceNode)([{type:"number",node:(0,e.NumberNode)(),change:()=>0},{type:"string",priority:1,node:n({validator:"resource",params:{pool:"$worldgen/density_function"}}),change:()=>{}},{type:"object",node:a("density_function"),change:()=>({})}],{choiceContext:"density_function"}),{default:()=>0});const p=(0,e.ChoiceNode)([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/noise"}}),change:()=>{}},{type:"object",node:a("noise_parameters")}],{choiceContext:"noise_parameters"}),x=(0,e.NumberNode)({min:-1e6,max:1e6}),m=(0,e.NumberNode)({integer:!0,min:-2032*2,max:2031*2});i.register("density_function",(0,e.Mod)((0,e.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/density_function_type"}}),[e.Switch]:[{push:"type"}],[e.Case]:{"minecraft:abs":{argument:r.DensityFunction},"minecraft:add":{argument1:r.DensityFunction,argument2:r.DensityFunction},"minecraft:blend_density":{argument:r.DensityFunction},"minecraft:cache_2d":{argument:r.DensityFunction},"minecraft:cache_all_in_cell":{argument:r.DensityFunction},"minecraft:cache_once":{argument:r.DensityFunction},"minecraft:clamp":{input:r.DensityFunction,min:x,max:x},"minecraft:constant":{argument:(0,e.NumberNode)()},"minecraft:cube":{argument:r.DensityFunction},"minecraft:flat_cache":{argument:r.DensityFunction},"minecraft:half_negative":{argument:r.DensityFunction},"minecraft:interpolated":{argument:r.DensityFunction},"minecraft:max":{argument1:r.DensityFunction,argument2:r.DensityFunction},"minecraft:min":{argument1:r.DensityFunction,argument2:r.DensityFunction},"minecraft:mul":{argument1:r.DensityFunction,argument2:r.DensityFunction},"minecraft:noise":{noise:p,xz_scale:(0,e.NumberNode)(),y_scale:(0,e.NumberNode)()},"minecraft:quarter_negative":{argument:r.DensityFunction},"minecraft:range_choice":{input:r.DensityFunction,min_inclusive:x,max_exclusive:x,when_in_range:r.DensityFunction,when_out_of_range:r.DensityFunction},"minecraft:shift":{argument:r.DensityFunction},"minecraft:shift_a":{argument:r.DensityFunction},"minecraft:shift_b":{argument:r.DensityFunction},"minecraft:shifted_noise":{noise:p,xz_scale:(0,e.NumberNode)(),y_scale:(0,e.NumberNode)(),shift_x:r.DensityFunction,shift_y:r.DensityFunction,shift_z:r.DensityFunction},"minecraft:slide":{argument:r.DensityFunction},"minecraft:spline":{spline:a("cubic_spline"),min_value:x,max_value:x},"minecraft:square":{argument:r.DensityFunction},"minecraft:squeeze":{argument:r.DensityFunction},"minecraft:terrain_shaper_spline":{spline:n({enum:["offset","factor","jaggedness"]}),min_value:x,max_value:x,continentalness:r.DensityFunction,erosion:r.DensityFunction,weirdness:r.DensityFunction},"minecraft:weird_scaled_sampler":{rarity_value_mapper:n({enum:["type_1","type_2"]}),noise:p,input:r.DensityFunction},"minecraft:y_clamped_gradient":{from_y:m,to_y:m,from_value:x,to_value:x}}},{context:"density_function",disableSwitchContext:!0}),{default:()=>({type:"minecraft:noise",noise:"minecraft:cave_entrance",xz_scale:.75,y_scale:.5})})),i.register("cubic_spline",(0,e.Mod)((0,e.ChoiceNode)([{type:"number",node:(0,e.NumberNode)()},{type:"object",node:(0,e.ObjectNode)({coordinate:r.DensityFunction,points:(0,e.ListNode)((0,e.ObjectNode)({location:(0,e.NumberNode)(),derivative:(0,e.NumberNode)(),value:a("cubic_spline")}))},{category:"function"})}],{context:"terrain_spline",choiceContext:"terrain_spline"}),{default:()=>0}))}r.initDensityFunctionSchemas=t})(ze);var je={},Z={};Object.defineProperty(Z,"__esModule",{value:!0});Z.initProcessorListSchemas=Z.Processors=void 0;const y=k;function Ot(r,e){const t=y.Reference.bind(void 0,r),i=y.StringNode.bind(void 0,e);Z.Processors=(0,y.ChoiceNode)([{type:"string",node:i({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:n=>{}},{type:"object",node:t("processor_list"),change:n=>({processors:[{processor_type:"minecraft:nop"}]})}]),r.register("processor_list",(0,y.Mod)((0,y.ObjectNode)({processors:(0,y.ListNode)(t("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"}}]}]})})),r.register("processor",(0,y.Mod)((0,y.ObjectNode)({processor_type:i({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[y.Switch]:[{push:"processor_type"}],[y.Case]:{"minecraft:block_age":{mossiness:(0,y.NumberNode)()},"minecraft:block_ignore":{blocks:(0,y.ListNode)(t("block_state"))},"minecraft:block_rot":{integrity:(0,y.NumberNode)({min:0,max:1})},"minecraft:gravity":{heightmap:i({enum:"heightmap_type"}),offset:(0,y.NumberNode)({integer:!0})},"minecraft:protected_blocks":{value:i({validator:"resource",params:{pool:"block",requireTag:!0}})},"minecraft:rule":{rules:(0,y.ListNode)(t("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"}}]})})),r.register("processor_rule",(0,y.Mod)((0,y.ObjectNode)({position_predicate:(0,y.Opt)(t("pos_rule_test")),location_predicate:t("rule_test"),input_predicate:t("rule_test"),output_state:t("block_state"),output_nbt:(0,y.Opt)(i({validator:"nbt",params:{registry:{category:"minecraft:block"}}}))},{category:"predicate",context:"processor_rule"}),{default:()=>({location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}})}));const d={min_dist:(0,y.Opt)((0,y.NumberNode)({min:0,max:255,integer:!0})),max_dist:(0,y.Opt)((0,y.NumberNode)({min:0,max:255,integer:!0})),min_chance:(0,y.Opt)((0,y.NumberNode)({min:0,max:1})),max_chance:(0,y.Opt)((0,y.NumberNode)({min:0,max:1}))};r.register("pos_rule_test",(0,y.ObjectNode)({predicate_type:i({validator:"resource",params:{pool:"pos_rule_test"}}),[y.Switch]:[{push:"predicate_type"}],[y.Case]:{"minecraft:axis_aligned_linear_pos":g({axis:i({enum:["x","y","z"]})},d),"minecraft:linear_pos":d}},{context:"pos_rule_test",disableSwitchContext:!0})),r.register("rule_test",(0,y.ObjectNode)({predicate_type:i({validator:"resource",params:{pool:"rule_test"}}),[y.Switch]:[{push:"predicate_type"}],[y.Case]:{"minecraft:block_match":{block:i({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:t("block_state")},"minecraft:random_block_match":{block:i({validator:"resource",params:{pool:"block"}}),probability:(0,y.NumberNode)({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:t("block_state"),probability:(0,y.NumberNode)({min:0,max:1})},"minecraft:tag_match":{tag:i({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))}Z.initProcessorListSchemas=Ot;Object.defineProperty(je,"__esModule",{value:!0});je.initFeatureSchemas=void 0;const o=k,h=R,Ie=Z;function kt(r,e){const t=o.Reference.bind(void 0,r),i=o.StringNode.bind(void 0,e),d=(0,o.ChoiceNode)([{type:"string",node:i({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:t("configured_feature")}],{choiceContext:"feature"}),n=(0,o.ChoiceNode)([{type:"string",node:i({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},{type:"object",node:t("placed_feature")}],{choiceContext:"placed_feature"}),a={tries:(0,o.Opt)((0,o.NumberNode)({integer:!0,min:1})),xz_spread:(0,o.Opt)((0,o.NumberNode)({integer:!0,min:0})),y_spread:(0,o.Opt)((0,o.NumberNode)({integer:!0,min:0})),feature:n},p={state:t("block_state"),radius:(0,h.IntProvider)({min:0,max:8}),half_height:(0,o.NumberNode)({integer:!0,min:0,max:4}),targets:(0,o.ListNode)(t("block_state"))},x={cap_provider:t("block_state_provider"),stem_provider:t("block_state_provider"),foliage_radius:(0,o.Opt)((0,o.NumberNode)({integer:!0}))},m=(0,o.ObjectNode)({target:t("rule_test"),state:t("block_state")}),f={size:(0,o.NumberNode)({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:(0,o.NumberNode)({min:0,max:1}),targets:(0,o.ListNode)(m)},j={surface:i({enum:"cave_surface"}),depth:(0,h.IntProvider)({min:1,max:128}),vertical_range:(0,o.NumberNode)({integer:!0,min:1,max:256}),extra_bottom_block_chance:(0,o.NumberNode)({min:0,max:1}),extra_edge_column_chance:(0,o.NumberNode)({min:0,max:1}),vegetation_chance:(0,o.NumberNode)({min:0,max:1}),xz_radius:(0,h.IntProvider)(),replaceable:i({validator:"resource",params:{pool:"block",requireTag:!0}}),ground_state:t("block_state_provider"),vegetation_feature:n};r.register("configured_feature",(0,o.Mod)((0,o.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/feature"}}),config:(0,o.ObjectNode)({[o.Switch]:["pop",{push:"type"}],[o.Case]:{"minecraft:bamboo":{probability:(0,o.NumberNode)({min:0,max:1})},"minecraft:basalt_columns":{reach:(0,h.IntProvider)({min:0,max:3}),height:(0,h.IntProvider)({min:1,max:10})},"minecraft:block_column":{direction:i({enum:["up","down","north","east","south","west"]}),allowed_placement:t("block_predicate_worldgen"),prioritize_tip:(0,o.BooleanNode)(),layers:(0,o.ListNode)((0,o.ObjectNode)({height:(0,h.IntProvider)({min:0}),provider:t("block_state_provider")}))},"minecraft:block_pile":{state_provider:t("block_state_provider")},"minecraft:delta_feature":{contents:t("block_state"),rim:t("block_state"),size:(0,h.IntProvider)({min:0,max:16}),rim_size:(0,h.IntProvider)({min:0,max:16})},"minecraft:disk":p,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:(0,o.NumberNode)({integer:!0,min:1,max:512}),height:(0,h.IntProvider)({min:0,max:128}),radius:(0,h.IntProvider)({min:0,max:128}),max_stalagmite_stalactite_height_diff:(0,o.NumberNode)({integer:!0,min:0,max:64}),height_deviation:(0,o.NumberNode)({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:(0,h.IntProvider)({min:0,max:128}),density:(0,h.FloatProvider)({min:0,max:2}),wetness:(0,h.FloatProvider)({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:(0,o.NumberNode)({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:(0,o.NumberNode)({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:(0,o.NumberNode)({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:(0,o.BooleanNode)(),exit:(0,o.Opt)(t("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:(0,o.Opt)((0,o.BooleanNode)()),crystal_beam_target:(0,o.Opt)(t("block_pos")),spikes:(0,o.ListNode)((0,o.ObjectNode)({centerX:(0,o.Opt)((0,o.NumberNode)({integer:!0})),centerZ:(0,o.Opt)((0,o.NumberNode)({integer:!0})),radius:(0,o.Opt)((0,o.NumberNode)({integer:!0})),height:(0,o.Opt)((0,o.NumberNode)({integer:!0})),guarded:(0,o.Opt)((0,o.BooleanNode)())}))},"minecraft:fill_layer":{state:t("block_state"),height:(0,o.NumberNode)({integer:!0,min:0,max:255})},"minecraft:flower":a,"minecraft:forest_rock":{state:t("block_state")},"minecraft:fossil":{max_empty_corners_allowed:(0,o.NumberNode)({integer:!0,min:0,max:7}),fossil_structures:(0,o.ListNode)(i({validator:"resource",params:{pool:"$structure"}})),overlay_structures:(0,o.ListNode)(i({validator:"resource",params:{pool:"$structure"}})),fossil_processors:Ie.Processors,overlay_processors:Ie.Processors},"minecraft:geode":{blocks:(0,o.ObjectNode)({filling_provider:t("block_state_provider"),inner_layer_provider:t("block_state_provider"),alternate_inner_layer_provider:t("block_state_provider"),middle_layer_provider:t("block_state_provider"),outer_layer_provider:t("block_state_provider"),inner_placements:(0,o.ListNode)(t("block_state")),cannot_replace:i({validator:"resource",params:{pool:"block",requireTag:!0}}),invalid_blocks:i({validator:"resource",params:{pool:"block",requireTag:!0}})}),layers:(0,o.ObjectNode)({filling:(0,o.Opt)((0,o.NumberNode)({min:.01,max:50})),inner_layer:(0,o.Opt)((0,o.NumberNode)({min:.01,max:50})),middle_layer:(0,o.Opt)((0,o.NumberNode)({min:.01,max:50})),outer_layer:(0,o.Opt)((0,o.NumberNode)({min:.01,max:50}))}),crack:(0,o.ObjectNode)({generate_crack_chance:(0,o.Opt)((0,o.NumberNode)({min:0,max:1})),base_crack_size:(0,o.Opt)((0,o.NumberNode)({min:0,max:5})),crack_point_offset:(0,o.Opt)((0,o.NumberNode)({min:0,max:10}))}),noise_multiplier:(0,o.Opt)((0,o.NumberNode)({min:0,max:1})),use_potential_placements_chance:(0,o.Opt)((0,o.NumberNode)({min:0,max:1})),use_alternate_layer0_chance:(0,o.Opt)((0,o.NumberNode)({min:0,max:1})),placements_require_layer0_alternate:(0,o.Opt)((0,o.BooleanNode)()),outer_wall_distance:(0,o.Opt)((0,h.IntProvider)({min:1,max:20})),distribution_points:(0,o.Opt)((0,h.IntProvider)({min:1,max:20})),point_offset:(0,o.Opt)((0,h.IntProvider)({min:0,max:10})),min_gen_offset:(0,o.Opt)((0,o.NumberNode)({integer:!0})),max_gen_offset:(0,o.Opt)((0,o.NumberNode)({integer:!0})),invalid_blocks_threshold:(0,o.NumberNode)({integer:!0})},"minecraft:glow_lichen":{search_range:(0,o.Opt)((0,o.NumberNode)({min:1,max:64,integer:!0})),chance_of_spreading:(0,o.Opt)((0,o.NumberNode)({min:0,max:1})),can_place_on_floor:(0,o.Opt)((0,o.BooleanNode)()),can_place_on_ceiling:(0,o.Opt)((0,o.BooleanNode)()),can_place_on_wall:(0,o.Opt)((0,o.BooleanNode)()),can_be_placed_on:(0,h.Tag)({resource:"block"})},"minecraft:huge_brown_mushroom":x,"minecraft:huge_fungus":{hat_state:t("block_state"),decor_state:t("block_state"),stem_state:t("block_state"),valid_base_block:t("block_state"),planted:(0,o.Opt)((0,o.BooleanNode)())},"minecraft:huge_red_mushroom":x,"minecraft:ice_patch":p,"minecraft:iceberg":{state:t("block_state")},"minecraft:lake":{fluid:t("block_state_provider"),barrier:t("block_state_provider")},"minecraft:large_dripstone":{floor_to_ceiling_search_range:(0,o.Opt)((0,o.NumberNode)({integer:!0,min:1,max:512})),column_radius:(0,h.IntProvider)({min:0,max:60}),height_scale:(0,h.FloatProvider)({min:0,max:20}),max_column_radius_to_cave_height_ratio:(0,o.NumberNode)({min:0,max:1}),stalactite_bluntness:(0,h.FloatProvider)({min:.1,max:10}),stalagmite_bluntness:(0,h.FloatProvider)({min:.1,max:10}),wind_speed:(0,h.FloatProvider)({min:0,max:2}),min_radius_for_wind:(0,o.NumberNode)({integer:!0,min:0,max:100}),min_bluntness_for_wind:(0,o.NumberNode)({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:t("block_state_provider"),spread_width:(0,o.NumberNode)({integer:!0,min:1}),spread_height:(0,o.NumberNode)({integer:!0,min:1})},"minecraft:netherrack_replace_blobs":{state:t("block_state"),target:t("block_state"),radius:(0,h.IntProvider)({min:0,max:12})},"minecraft:no_bonemeal_flower":a,"minecraft:ore":f,"minecraft:pointed_dripstone":{chance_of_taller_dripstone:(0,o.Opt)((0,o.NumberNode)({min:0,max:1})),chance_of_directional_spread:(0,o.Opt)((0,o.NumberNode)({min:0,max:1})),chance_of_spread_radius2:(0,o.Opt)((0,o.NumberNode)({min:0,max:1})),chance_of_spread_radius3:(0,o.Opt)((0,o.NumberNode)({min:0,max:1}))},"minecraft:random_patch":a,"minecraft:random_boolean_selector":{feature_false:n,feature_true:n},"minecraft:random_selector":{features:(0,o.ListNode)((0,o.ObjectNode)({chance:(0,o.NumberNode)({min:0,max:1}),feature:n})),default:n},"minecraft:replace_single_block":{targets:(0,o.ListNode)(m)},"minecraft:root_system":{required_vertical_space_for_tree:(0,o.NumberNode)({integer:!0,min:1,max:64}),root_radius:(0,o.NumberNode)({integer:!0,min:1,max:64}),root_placement_attempts:(0,o.NumberNode)({integer:!0,min:1,max:256}),root_column_max_height:(0,o.NumberNode)({integer:!0,min:1,max:4096}),hanging_root_radius:(0,o.NumberNode)({integer:!0,min:1,max:64}),hanging_roots_vertical_span:(0,o.NumberNode)({integer:!0,min:0,max:16}),hanging_root_placement_attempts:(0,o.NumberNode)({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:(0,o.NumberNode)({integer:!0,min:1,max:64}),root_replaceable:i({validator:"resource",params:{pool:"block",requireTag:!0}}),root_state_provider:t("block_state_provider"),hanging_root_state_provider:t("block_state_provider"),allowed_tree_position:t("block_predicate_worldgen"),feature:n},"minecraft:scattered_ore":f,"minecraft:sea_pickle":{count:(0,h.IntProvider)({min:0,max:256})},"minecraft:seagrass":{probability:(0,o.NumberNode)({min:0,max:1})},"minecraft:simple_block":{to_place:t("block_state_provider")},"minecraft:simple_random_selector":{features:(0,h.Tag)({resource:"$worldgen/placed_feature",inlineSchema:"placed_feature"})},"minecraft:spring_feature":{state:t("fluid_state"),rock_count:(0,o.NumberNode)({integer:!0}),hole_count:(0,o.NumberNode)({integer:!0}),requires_block_below:(0,o.BooleanNode)(),valid_blocks:(0,h.Tag)({resource:"block"})},"minecraft:tree":{ignore_vines:(0,o.Opt)((0,o.BooleanNode)()),force_dirt:(0,o.Opt)((0,o.BooleanNode)()),minimum_size:t("feature_size"),dirt_provider:t("block_state_provider"),trunk_provider:t("block_state_provider"),foliage_provider:t("block_state_provider"),trunk_placer:(0,o.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:(0,o.NumberNode)({integer:!0,min:0,max:32}),height_rand_a:(0,o.NumberNode)({integer:!0,min:0,max:24}),height_rand_b:(0,o.NumberNode)({integer:!0,min:0,max:24}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:bending_trunk_placer":{bend_length:(0,h.IntProvider)({min:1,max:64}),min_height_for_leaves:(0,o.Opt)((0,o.NumberNode)({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:(0,o.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:(0,h.IntProvider)({min:0,max:16}),offset:(0,h.IntProvider)({min:0,max:16}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:blob_foliage_placer":{height:(0,o.NumberNode)({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:(0,o.NumberNode)({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:(0,o.NumberNode)({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:(0,o.NumberNode)({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:(0,h.IntProvider)({min:0,max:24})},"minecraft:pine_foliage_placer":{height:(0,h.IntProvider)({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:(0,h.IntProvider)({min:1,max:512}),leaf_placement_attempts:(0,o.NumberNode)({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:(0,h.IntProvider)({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:(0,o.ListNode)((0,o.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:alter_ground":{provider:t("block_state_provider")},"minecraft:beehive":{probability:(0,o.NumberNode)({min:0,max:1})},"minecraft:cocoa":{probability:(0,o.NumberNode)({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:twisting_vines":{spread_width:(0,o.NumberNode)({integer:!0,min:1}),spread_height:(0,o.NumberNode)({integer:!0,min:1}),max_height:(0,o.NumberNode)({integer:!0,min:1})},"minecraft:underwater_magma":{floor_search_range:(0,o.NumberNode)({integer:!0,min:0,max:512}),placement_radius_around_floor:(0,o.NumberNode)({integer:!0,min:0,max:64}),placement_probability_per_valid_position:(0,o.NumberNode)({min:0,max:1})},"minecraft:vegetation_patch":j,"minecraft:waterlogged_vegetation_patch":j}},{context:"feature"})},{context:"feature"}),{default:()=>({type:"minecraft:tree",config:{minimum_size:{type:"minecraft:two_layers_feature_size"},trunk_placer:{type:"minecraft:straight_trunk_placer",base_height:5,height_rand_a:2,height_rand_b:0},foliage_placer:{type:"minecraft:blob_foliage_placer",radius:2,offset:0,height:3}}})})),r.register("placed_feature",(0,o.Mod)((0,o.ObjectNode)({feature:d,placement:(0,o.ListNode)(t("decorator"))},{context:"placed_feature"}),{default:()=>({feature:"minecraft:oak",placement:[{type:"minecraft:count",count:4},{type:"minecraft:in_square"},{type:"minecraft:heightmap",heightmap:"OCEAN_FLOOR"}]})})),r.register("feature_size",(0,o.Mod)((0,o.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:(0,o.Opt)((0,o.NumberNode)({min:0,max:80})),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:two_layers_feature_size":{limit:(0,o.Opt)((0,o.NumberNode)({integer:!0,min:0,max:81})),lower_size:(0,o.Opt)((0,o.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,o.Opt)((0,o.NumberNode)({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:(0,o.Opt)((0,o.NumberNode)({integer:!0,min:0,max:80})),upper_limit:(0,o.Opt)((0,o.NumberNode)({integer:!0,min:0,max:80})),lower_size:(0,o.Opt)((0,o.NumberNode)({integer:!0,min:0,max:16})),middle_size:(0,o.Opt)((0,o.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,o.Opt)((0,o.NumberNode)({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})}));const v={seed:(0,o.NumberNode)({integer:!0}),noise:t("noise_parameters"),scale:(0,o.Mod)((0,o.NumberNode)({min:Number.MIN_VALUE}),{default:()=>1})};r.register("block_state_provider",(0,o.Mod)((0,o.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:dual_noise_provider":E(g({},v),{variety:(0,h.InclusiveRange)({integer:!0,min:1,max:64}),slow_noise:t("noise_parameters"),slow_scale:(0,o.Mod)((0,o.NumberNode)({min:Number.MIN_VALUE}),{default:()=>1}),states:(0,o.ListNode)(t("block_state"))}),"minecraft:noise_threshold_provider":E(g({},v),{threshold:(0,o.NumberNode)({min:-1,max:1}),high_chance:(0,o.NumberNode)({min:0,max:1}),default_state:t("block_state"),low_states:(0,o.ListNode)(t("block_state")),high_states:(0,o.ListNode)(t("block_state"))}),"minecraft:noise_provider":E(g({},v),{states:(0,o.ListNode)(t("block_state"))}),"minecraft:randomized_int_state_provider":{property:i(),values:(0,h.IntProvider)(),source:t("block_state_provider")},"minecraft:rotated_block_provider":{state:t("block_state")},"minecraft:simple_state_provider":{state:t("block_state")},"minecraft:weighted_state_provider":{entries:(0,o.ListNode)((0,o.Mod)((0,o.ObjectNode)({weight:(0,o.NumberNode)({integer:!0,min:1}),data:t("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})}));const S={offset:(0,o.Opt)((0,o.ListNode)((0,o.NumberNode)({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3}))};r.register("block_predicate_worldgen",(0,o.Mod)((0,o.ObjectNode)({type:i({validator:"resource",params:{pool:"block_predicate_type"}}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:all_of":{predicates:(0,o.ListNode)(t("block_predicate_worldgen"))},"minecraft:any_of":{predicates:(0,o.ListNode)(t("block_predicate_worldgen"))},"minecraft:has_sturdy_face":E(g({},S),{direction:i({enum:"direction"})}),"minecraft:inside_world_bounds":g({},S),"minecraft:matching_block_tag":E(g({},S),{tag:i({validator:"resource",params:{pool:"$tag/block"}})}),"minecraft:matching_blocks":E(g({},S),{blocks:(0,h.Tag)({resource:"block"})}),"minecraft:matching_fluids":E(g({},S),{fluids:(0,h.Tag)({resource:"fluid"})}),"minecraft:not":{predicate:t("block_predicate_worldgen")},"minecraft:would_survive":E(g({},S),{state:t("block_state")})}},{context:"block_predicate"}),{default:()=>({type:"minecraft:true"})}))}je.initFeatureSchemas=kt;var Ce={};Object.defineProperty(Ce,"__esModule",{value:!0});Ce.initNoiseSettingsSchemas=void 0;const N=k,xt=R,z=ze;function wt(r,e){const t=N.Reference.bind(void 0,r),i=N.StringNode.bind(void 0,e);r.register("noise_settings",(0,N.Mod)((0,N.ObjectNode)({sea_level:(0,N.NumberNode)({integer:!0}),disable_mob_generation:(0,N.BooleanNode)(),aquifers_enabled:(0,N.BooleanNode)(),ore_veins_enabled:(0,N.BooleanNode)(),legacy_random_source:(0,N.BooleanNode)(),default_block:t("block_state"),default_fluid:t("block_state"),noise:(0,N.ObjectNode)({min_y:(0,N.NumberNode)({integer:!0,min:-2048,max:2047}),height:(0,N.NumberNode)({integer:!0,min:0,max:4096}),size_horizontal:(0,N.NumberNode)({integer:!0}),size_vertical:(0,N.NumberNode)({integer:!0}),sampling:(0,N.ObjectNode)({xz_scale:(0,N.NumberNode)(),y_scale:(0,N.NumberNode)(),xz_factor:(0,N.NumberNode)(),y_factor:(0,N.NumberNode)()}),bottom_slide:t("noise_slider"),top_slide:t("noise_slider"),terrain_shaper:t("terrain_shaper")}),noise_router:(0,N.ObjectNode)({barrier:z.DensityFunction,fluid_level_floodedness:z.DensityFunction,fluid_level_spread:z.DensityFunction,lava:z.DensityFunction,temperature:z.DensityFunction,vegetation:z.DensityFunction,continents:z.DensityFunction,erosion:z.DensityFunction,depth:z.DensityFunction,ridges:z.DensityFunction,initial_density_without_jaggedness:z.DensityFunction,final_density:z.DensityFunction,vein_toggle:z.DensityFunction,vein_ridged:z.DensityFunction,vein_gap:z.DensityFunction}),surface_rule:t("material_rule")},{context:"noise_settings"}),d=>({default:()=>xt.DefaultNoiseSettings,validate:(n,a,p,x)=>{var m,f,j,v;return a=d.validate(n,a,p,x),((m=a==null?void 0:a.noise)===null||m===void 0?void 0:m.min_y)+((f=a==null?void 0:a.noise)===null||f===void 0?void 0:f.height)>2047&&p.add(n.push("noise").push("height"),"error.min_y_plus_height",2047),((j=a==null?void 0:a.noise)===null||j===void 0?void 0:j.height)%16!==0&&p.add(n.push("noise").push("height"),"error.height_multiple",16),((v=a==null?void 0:a.noise)===null||v===void 0?void 0:v.min_y)%16!==0&&p.add(n.push("noise").push("min_y"),"error.min_y_multiple",16),a}}))),r.register("noise_slider",(0,N.ObjectNode)({target:(0,N.NumberNode)(),size:(0,N.NumberNode)({integer:!0,min:0}),offset:(0,N.NumberNode)({integer:!0})})),r.register("generator_layer",(0,N.Mod)((0,N.ObjectNode)({block:i({validator:"resource",params:{pool:"block"}}),height:(0,N.NumberNode)({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})})),r.register("terrain_shaper",(0,N.Mod)((0,N.ObjectNode)({offset:t("terrain_spline"),factor:t("terrain_spline"),jaggedness:t("terrain_spline")},{context:"terrain_shaper"}),{default:()=>({offset:0,factor:0,jaggedness:0})})),r.register("terrain_spline",(0,N.Mod)((0,N.ChoiceNode)([{type:"number",node:(0,N.NumberNode)()},{type:"object",node:(0,N.ObjectNode)({coordinate:(0,N.Mod)(i({enum:["continents","erosion","weirdness","ridges"]}),{default:()=>"continents"}),points:(0,N.ListNode)((0,N.ObjectNode)({location:(0,N.NumberNode)(),derivative:(0,N.NumberNode)(),value:t("terrain_spline")}))},{category:"function"})}],{context:"terrain_spline",choiceContext:"terrain_spline"}),{default:()=>0}))}Ce.initNoiseSettingsSchemas=wt;var Me={};Object.defineProperty(Me,"__esModule",{value:!0});Me.initStructureFeatureSchemas=void 0;const B=k,St=R,jt=De;function Ct(r,e){const t=B.StringNode.bind(void 0,e),i=B.Reference.bind(void 0,r),d={start_pool:t({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:(0,B.NumberNode)({integer:!0})};r.register("configured_structure_feature",(0,B.Mod)((0,B.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/structure_feature"}}),biomes:(0,St.Tag)({resource:"$worldgen/biome"}),adapt_noise:(0,B.Opt)((0,B.BooleanNode)()),spawn_overrides:(0,B.MapNode)(t({enum:"mob_category"}),(0,B.ObjectNode)({bounding_box:t({enum:["piece","full"]}),spawns:jt.MobCategorySpawnSettings})),config:(0,B.ObjectNode)({[B.Switch]:["pop",{push:"type"}],[B.Case]:{"minecraft:bastion_remnant":d,"minecraft:buried_treasure":{probability:(0,B.NumberNode)({min:0,max:1})},"minecraft:mineshaft":{type:t({enum:["normal","mesa"]}),probability:(0,B.NumberNode)({min:0,max:1})},"minecraft:nether_fossil":{height:i("height_provider")},"minecraft:ocean_ruin":{biome_temp:t({enum:["cold","warm"]}),large_probability:(0,B.NumberNode)({min:0,max:1}),cluster_probability:(0,B.NumberNode)({min:0,max:1})},"minecraft:pillager_outpost":d,"minecraft:ruined_portal":{portal_type:t({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:(0,B.Opt)((0,B.BooleanNode)())},"minecraft:village":d}},{context:"structure_feature",disableSwitchContext:!0})},{context:"structure_feature"}),{default:()=>({type:"minecraft:bastion_remnant",config:{start_pool:"minecraft:bastion/starts",size:6}})}))}Me.initStructureFeatureSchemas=Ct;var Pe={};Object.defineProperty(Pe,"__esModule",{value:!0});Pe.initStructureSetSchemas=void 0;const P=k,Mt=R;function Pt(r,e){const t=P.StringNode.bind(void 0,e),i=P.Reference.bind(void 0,r);r.register("structure_set",(0,P.ObjectNode)({structures:(0,P.ListNode)((0,P.ObjectNode)({structure:(0,Mt.Tag)({resource:"$worldgen/configured_structure_feature"}),weight:(0,P.NumberNode)({integer:!0,min:1})})),placement:i("structure_placement")},{context:"structure_set"})),r.register("structure_placement",(0,P.Mod)((0,P.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/structure_placement"}}),[P.Switch]:[{push:"type"}],[P.Case]:{"minecraft:concentric_rings":{distance:(0,P.NumberNode)({integer:!0,min:0,max:1023}),spread:(0,P.NumberNode)({integer:!0,min:0,max:1023}),count:(0,P.NumberNode)({integer:!0,min:1,max:4095})},"minecraft:random_spread":{spread_type:(0,P.Opt)(t({enum:["linear","triangular"]})),spacing:(0,P.NumberNode)({integer:!0,min:0,max:4096}),separation:(0,P.Mod)((0,P.NumberNode)({integer:!0,min:0,max:4096}),d=>({validate:(n,a,p,x)=>(n.pop().push("spacing").get()<=a&&p.add(n,"error.separation_smaller_spacing"),d.validate(n,a,p,x))})),salt:(0,P.NumberNode)({integer:!0,min:0}),locate_offset:(0,P.Opt)((0,P.ListNode)((0,P.NumberNode)({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3}))}}},{context:"structure_placement"}),{default:()=>({type:"minecraft:random_spread",spacing:10,separation:5,salt:Math.floor(Math.random()*2147483647)})}))}Pe.initStructureSetSchemas=Pt;var Le={};Object.defineProperty(Le,"__esModule",{value:!0});Le.initSurfaceRuleSchemas=void 0;const C=k;function Lt(r,e){const t=C.StringNode.bind(void 0,e),i=C.Reference.bind(void 0,r);r.register("material_rule",(0,C.Mod)((0,C.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/material_rule"}}),[C.Switch]:[{push:"type"}],[C.Case]:{"minecraft:block":{result_state:i("block_state")},"minecraft:condition":{if_true:i("material_condition"),then_run:i("material_rule")},"minecraft:sequence":{sequence:(0,C.ListNode)(i("material_rule"))}}},{context:"material_rule",category:"pool"}),{default:()=>({type:"minecraft:block",result_state:{Name:"minecraft:stone"}})})),r.register("material_condition",(0,C.Mod)((0,C.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/material_condition"}}),[C.Switch]:[{push:"type"}],[C.Case]:{"minecraft:biome":{biome_is:(0,C.ListNode)(t({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:noise_threshold":{noise:t({validator:"resource",params:{pool:"$worldgen/noise"}}),min_threshold:(0,C.NumberNode)(),max_threshold:(0,C.NumberNode)()},"minecraft:not":{invert:i("material_condition")},"minecraft:stone_depth":{offset:(0,C.NumberNode)({integer:!0}),surface_type:t({enum:"cave_surface"}),add_surface_depth:(0,C.BooleanNode)(),secondary_depth_range:(0,C.NumberNode)({integer:!0})},"minecraft:vertical_gradient":{random_name:t(),true_at_and_below:i("vertical_anchor"),false_at_and_above:i("vertical_anchor")},"minecraft:water":{offset:(0,C.NumberNode)({integer:!0}),surface_depth_multiplier:(0,C.NumberNode)({integer:!0,min:-20,max:20}),add_stone_depth:(0,C.BooleanNode)()},"minecraft:y_above":{anchor:i("vertical_anchor"),surface_depth_multiplier:(0,C.NumberNode)({integer:!0,min:-20,max:20}),add_stone_depth:(0,C.BooleanNode)()}}},{context:"material_condition"}),{default:()=>({type:"minecraft:biome",is_biome:"minecraft:plains"})}))}Le.initSurfaceRuleSchemas=Lt;var $e={};Object.defineProperty($e,"__esModule",{value:!0});$e.initTemplatePoolSchemas=void 0;const T=k,Ae=Z;function $t(r,e){const t=T.Reference.bind(void 0,r),i=T.StringNode.bind(void 0,e);r.register("template_pool",(0,T.Mod)((0,T.ObjectNode)({name:i(),fallback:i(),elements:(0,T.ListNode)(t("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"}}]})})),r.register("template_weighted_element",(0,T.Mod)((0,T.ObjectNode)({weight:(0,T.NumberNode)({integer:!0,min:1}),element:t("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),r.register("template_element",(0,T.Mod)((0,T.ObjectNode)({element_type:i({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:i({enum:["rigid","terrain_matching"]}),[T.Switch]:[{push:"element_type"}],[T.Case]:{"minecraft:feature_pool_element":{feature:i({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},"minecraft:legacy_single_pool_element":{location:i({validator:"resource",params:{pool:"$structure"}}),processors:Ae.Processors},"minecraft:list_pool_element":{elements:(0,T.ListNode)(t("template_element"))},"minecraft:single_pool_element":{location:i({validator:"resource",params:{pool:"$structure"}}),processors:Ae.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))}$e.initTemplatePoolSchemas=$t;Object.defineProperty(xe,"__esModule",{value:!0});xe.initWorldgenSchemas=void 0;const Ft=De,Bt=we,Dt=Se,zt=ze,Rt=je,Tt=Ce,qt=Z,It=Me,At=Pe,Et=Le,Wt=$e;function Ut(r,e){(0,qt.initProcessorListSchemas)(r,e),(0,zt.initDensityFunctionSchemas)(r,e),(0,Ft.initBiomeSchemas)(r,e),(0,Bt.initCarverSchemas)(r,e),(0,Dt.initDecoratorSchemas)(r,e),(0,Rt.initFeatureSchemas)(r,e),(0,Tt.initNoiseSettingsSchemas)(r,e),(0,It.initStructureFeatureSchemas)(r,e),(0,At.initStructureSetSchemas)(r,e),(0,Et.initSurfaceRuleSchemas)(r,e),(0,Wt.initTemplatePoolSchemas)(r,e)}xe.initWorldgenSchemas=Ut;var Fe={};Object.defineProperty(Fe,"__esModule",{value:!0});Fe.initWorldSettingsSchemas=void 0;const Y=k;function Vt(r,e){const t=Y.Reference.bind(void 0,r),i=Y.StringNode.bind(void 0,e);r.register("world_settings",(0,Y.Mod)((0,Y.ObjectNode)({generate_features:(0,Y.BooleanNode)(),bonus_chest:(0,Y.BooleanNode)(),seed:(0,Y.NumberNode)({integer:!0}),dimensions:(0,Y.MapNode)(i({validator:"resource",params:{pool:"$dimension"}}),t("dimension"))},{context:"world_settings"}),{default:()=>{const d=Math.floor(Math.random()*4294967296)-2147483648;return{generate_features:!0,bonus_chest:!1,seed:d,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:overworld"},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:nether"},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:the_end",seed:d},settings:"minecraft:end"}}}}}}))}Fe.initWorldSettingsSchemas=Vt;Object.defineProperty(de,"__esModule",{value:!0});de.initSchemas=void 0;const Gt=se,Ht=le,Kt=R,Xt=pe,Yt=fe,Zt=ge,Jt=be,Qt=Ne,er=he,tr=ye,rr=ve,ir=Oe,or=ke,nr=xe,ar=Fe;function cr(r,e){(0,Kt.initCommonSchemas)(r,e),(0,Gt.initAdvancementSchemas)(r,e),(0,Ht.initAssetsSchemas)(r,e),(0,Xt.initConditionSchemas)(r,e),(0,Zt.initDimensionTypeSchemas)(r,e),(0,Yt.initDimensionSchemas)(r,e),(0,Jt.initItemModifierSchemas)(r,e),(0,Qt.initLootTableSchemas)(r,e),(0,er.initPackMcmetaSchemas)(r,e),(0,tr.initPredicatesSchemas)(r,e),(0,rr.initRecipeSchemas)(r,e),(0,ir.initTagsSchemas)(r,e),(0,or.initTextComponentSchemas)(r,e),(0,nr.initWorldgenSchemas)(r,e),(0,ar.initWorldSettingsSchemas)(r,e)}de.initSchemas=cr;var dr=ie&&ie.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t);var d=Object.getOwnPropertyDescriptor(e,t);(!d||("get"in d?!e.__esModule:d.writable||d.configurable))&&(d={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(r,i,d)}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),sr=ie&&ie.__setModuleDefault||(Object.create?function(r,e){Object.defineProperty(r,"default",{enumerable:!0,value:e})}:function(r,e){r.default=e}),lr=ie&&ie.__importStar||function(r){if(r&&r.__esModule)return r;var e={};if(r!=null)for(var t in r)t!=="default"&&Object.prototype.hasOwnProperty.call(r,t)&&dr(e,r,t);return sr(e,r),e};Object.defineProperty(H,"__esModule",{value:!0});var Ee=H.getSchemas=Ve=H.getCollections=Ue=H.lootContext=void 0;const We=k,mr=ce,_r=de;var Ue=H.lootContext=lr(q);function ur(){const r=new We.CollectionRegistry;return(0,mr.initCollections)(r),r}var Ve=H.getCollections=ur;function pr(r){const e=new We.SchemaRegistry;return(0,_r.initSchemas)(e,r),e}Ee=H.getSchemas=pr;var Nr=Ze({__proto__:null,get getSchemas(){return Ee},get getCollections(){return Ve},get lootContext(){return Ue},default:H},[H]);export{Nr as i}; -//# sourceMappingURL=index.7025560c.js.map +var Ge=Object.defineProperty,He=Object.defineProperties;var Ke=Object.getOwnPropertyDescriptors;var Re=Object.getOwnPropertySymbols;var Xe=Object.prototype.hasOwnProperty,Ye=Object.prototype.propertyIsEnumerable;var Te=(r,e,t)=>e in r?Ge(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,g=(r,e)=>{for(var t in e||(e={}))Xe.call(e,t)&&Te(r,t,e[t]);if(Re)for(var t of Re(e))Ye.call(e,t)&&Te(r,t,e[t]);return r},E=(r,e)=>He(r,Ke(e));import{v as k,u as ie}from"./index.d528c217.js";function Ze(r,e){return e.forEach(function(t){t&&typeof t!="string"&&!Array.isArray(t)&&Object.keys(t).forEach(function(i){if(i!=="default"&&!(i in r)){var d=Object.getOwnPropertyDescriptor(t,i);Object.defineProperty(r,i,d.get?d:{enumerable:!0,get:function(){return t[i]}})}})}),Object.freeze(Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}))}var H={},ce={};Object.defineProperty(ce,"__esModule",{value:!0});ce.initCollections=void 0;function Je(r){r.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"]),r.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"]),r.register("slot",["mainhand","offhand","head","chest","legs","feet"]),r.register("gamemode",["survival","creative","adventure","spectator"]),r.register("entity_source",["this","killer","direct_killer","killer_player"]),r.register("copy_source",["block_entity","this","killer","killer_player"]),r.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),r.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"]),r.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"]),r.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"]),r.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mountain","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end","underground"]),r.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),r.register("generation_step",["air","liquid"]),r.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"]),r.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"]),r.register("dye_color",["white","orange","magenta","light_blue","yellow","lime","pink","gray","light_gray","cyan","purple","blue","brown","green","red","black"]),r.register("cave_surface",["floor","ceiling"]),r.register("direction",["down","up","north","east","south","west"]),r.register("axis",["x","y","z"]),r.register("display_position",["firstperson_righthand","firstperson_lefthand","thirdperson_righthand","thirdperson_lefthand","gui","head","ground","fixed"]),r.register("gui_light",["front","side"]),r.register("item_model_predicates",["angle","blocking","broken","cast","charged","cooldown","custom_model_data","damage","damaged","firework","lefthanded","pull","pulling","throwing","time"]),r.register("glyph_provider_type",["bitmap","ttf","legacy_unicode"]),r.register("mob_category",["monster","creature","ambient","axolotls","underground_water_creature","water_creature","water_ambient","misc"]),r.register("cat_texture",["textures/entity/cat/tabby.png","textures/entity/cat/black.png","textures/entity/cat/red.png","textures/entity/cat/siamese.png","textures/entity/cat/british_shorthair.png","textures/entity/cat/calico.png","textures/entity/cat/persian.png","textures/entity/cat/ragdoll.png","textures/entity/cat/white.png","textures/entity/cat/jellie.png","textures/entity/cat/all_black.png"])}ce.initCollections=Je;var de={},se={};Object.defineProperty(se,"__esModule",{value:!0});se.initAdvancementSchemas=void 0;const s=k;function Qe(r,e){const t=s.Reference.bind(void 0,r),i=s.StringNode.bind(void 0,e),d=(0,s.ChoiceNode)([{type:"object",node:(0,s.Opt)(t("entity_predicate")),change:n=>{var a,p;return(p=(a=n[0])===null||a===void 0?void 0:a.predicate)!==null&&p!==void 0?p:{}}},{type:"list",node:(0,s.ListNode)(t("condition")),change:n=>[{condition:"minecraft:entity_properties",predicate:n}]}],{context:"conditions"});r.register("advancement",(0,s.Mod)((0,s.ObjectNode)({display:(0,s.Opt)((0,s.Mod)((0,s.ObjectNode)({icon:(0,s.ObjectNode)({item:i({validator:"resource",params:{pool:"item"}}),nbt:(0,s.Opt)(i({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:t("text_component"),description:t("text_component"),background:(0,s.Opt)(i()),frame:(0,s.Opt)(i({enum:["task","challenge","goal"]})),show_toast:(0,s.Opt)((0,s.BooleanNode)()),announce_to_chat:(0,s.Opt)((0,s.BooleanNode)()),hidden:(0,s.Opt)((0,s.BooleanNode)())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:(0,s.Opt)(i({validator:"resource",params:{pool:"$advancement"}})),criteria:(0,s.MapNode)(i(),t("advancement_criteria")),requirements:(0,s.Opt)((0,s.ListNode)((0,s.ListNode)(i()))),rewards:(0,s.Opt)((0,s.ObjectNode)({function:(0,s.Opt)(i({validator:"resource",params:{pool:"$function"}})),loot:(0,s.Opt)((0,s.ListNode)(i({validator:"resource",params:{pool:"$loot_table"}}))),recipes:(0,s.Opt)((0,s.ListNode)(i({validator:"resource",params:{pool:"$recipe"}}))),experience:(0,s.Opt)((0,s.NumberNode)({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),r.register("advancement_criteria",(0,s.ObjectNode)({trigger:i({validator:"resource",params:{pool:e.get("advancement_trigger")}}),conditions:(0,s.Opt)((0,s.ObjectNode)({player:(0,s.Mod)(d,{enabled:n=>n.pop().push("trigger").get()!=="minecraft:impossible"}),[s.Switch]:["pop",{push:"trigger"}],[s.Case]:{"minecraft:bee_nest_destroyed":{block:(0,s.Opt)(i({validator:"resource",params:{pool:"block"}})),num_bees_inside:(0,s.Opt)((0,s.NumberNode)({integer:!0})),item:(0,s.Opt)(t("item_predicate"))},"minecraft:bred_animals":{parent:d,partner:d,child:d},"minecraft:brewed_potion":{potion:(0,s.Opt)(i({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:(0,s.Opt)(i({validator:"resource",params:{pool:"$dimension"}})),to:(0,s.Opt)(i({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:(0,s.Opt)((0,s.ListNode)(d))},"minecraft:construct_beacon":{level:t("int_bounds")},"minecraft:consume_item":{item:(0,s.Opt)(t("item_predicate"))},"minecraft:cured_zombie_villager":{villager:d,zombie:d},"minecraft:effects_changed":{effects:(0,s.Opt)((0,s.MapNode)(i({validator:"resource",params:{pool:"mob_effect"}}),t("status_effect_predicate"))),source:(0,s.Opt)(d)},"minecraft:enter_block":{block:(0,s.Opt)(i({validator:"resource",params:{pool:"block"}})),state:(0,s.Opt)((0,s.MapNode)(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:t("int_bounds"),item:(0,s.Opt)(t("item_predicate"))},"minecraft:entity_hurt_player":{damage:(0,s.Opt)(t("damage_predicate"))},"minecraft:entity_killed_player":{entity:d,killing_blow:(0,s.Opt)(t("damage_source_predicate"))},"minecraft:fall_from_height":{start_position:(0,s.Opt)(t("location_predicate")),distance:(0,s.Opt)(t("distance_predicate"))},"minecraft:filled_bucket":{item:(0,s.Opt)(t("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:d,item:(0,s.Opt)(t("item_predicate"))},"minecraft:hero_of_the_village":{location:(0,s.Opt)(t("location_predicate"))},"minecraft:inventory_changed":{slots:(0,s.Opt)((0,s.ObjectNode)({empty:t("int_bounds"),occupied:t("int_bounds"),full:t("int_bounds")})),items:(0,s.Opt)((0,s.ListNode)(t("item_predicate")))},"minecraft:item_durability_changed":{delta:t("int_bounds"),durability:t("int_bounds"),item:(0,s.Opt)(t("item_predicate"))},"minecraft:item_used_on_block":{item:(0,s.Opt)(t("item_predicate")),location:(0,s.Opt)(t("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:t("int_bounds"),victims:(0,s.Opt)((0,s.ListNode)(d))},"minecraft:levitation":{distance:(0,s.Opt)(t("distance_predicate")),duration:t("int_bounds")},"minecraft:lightning_strike":{lightning:d,bystander:d},"minecraft:location":{location:(0,s.Opt)(t("location_predicate"))},"minecraft:nether_travel":{start_position:(0,s.Opt)(t("location_predicate")),distance:(0,s.Opt)(t("distance_predicate"))},"minecraft:placed_block":{block:(0,s.Opt)(i({validator:"resource",params:{pool:"block"}})),state:(0,s.Opt)((0,s.MapNode)(i(),i(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:(0,s.Opt)(t("item_predicate")),location:(0,s.Opt)(t("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:i({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:(0,s.Opt)(t("damage_predicate")),entity:d},"minecraft:player_interacted_with_entity":{item:(0,s.Opt)(t("item_predicate")),entity:d},"minecraft:player_killed_entity":{entity:d,killing_blow:(0,s.Opt)(t("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:i({validator:"resource",params:{pool:"$recipe"}})},"minecraft:ride_entity_in_lava":{start_position:(0,s.Opt)(t("location_predicate")),distance:(0,s.Opt)(t("distance_predicate"))},"minecraft:slept_in_bed":{location:(0,s.Opt)(t("location_predicate"))},"minecraft:slide_down_block":{block:(0,s.Opt)(i({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:(0,s.Opt)(t("item_predicate"))},"minecraft:summoned_entity":{entity:d},"minecraft:tame_animal":{entity:d},"minecraft:target_hit":{projectile:d,shooter:d,signal_strength:t("int_bounds")},"minecraft:thrown_item_picked_up_by_entity":{entity:d,item:(0,s.Opt)(t("item_predicate"))},"minecraft:used_ender_eye":{distance:(0,s.Opt)(t("float_bounds"))},"minecraft:used_totem":{item:(0,s.Opt)(t("item_predicate"))},"minecraft:using_item":{item:(0,s.Opt)(t("item_predicate"))},"minecraft:villager_trade":{villager:d,item:(0,s.Opt)(t("item_predicate"))},"minecraft:voluntary_exile":{location:(0,s.Opt)(t("location_predicate"))}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))}se.initAdvancementSchemas=Qe;var le={},me={};Object.defineProperty(me,"__esModule",{value:!0});me.initModelSchemas=void 0;const b=k;function et(r,e){b.Reference.bind(void 0,r);const t=b.StringNode.bind(void 0,e),i=(n,a,p)=>(0,b.ListNode)((0,b.NumberNode)({min:a,max:p}),{minLength:n,maxLength:n}),d=(0,b.ChoiceNode)([{type:"alias",match:n=>typeof n=="string"&&n.startsWith("#"),node:t(),change:n=>typeof n=="string"?`#${n}`:"#0"},{type:"reference",match:n=>typeof n=="string",node:t({validator:"resource",params:{pool:"$texture"}}),change:n=>typeof n=="string"?n.replace(/^#/,""):""}],{choiceContext:"texture"});r.register("model",(0,b.Mod)((0,b.ObjectNode)({parent:(0,b.Opt)(t({validator:"resource",params:{pool:"$model"}})),ambientocclusion:(0,b.Opt)((0,b.BooleanNode)()),gui_light:(0,b.Opt)(t({enum:"gui_light"})),textures:(0,b.Opt)((0,b.MapNode)(t(),d)),elements:(0,b.Opt)((0,b.ListNode)((0,b.ObjectNode)({from:i(3,-16,32),to:i(3,-16,32),rotation:(0,b.Opt)((0,b.ObjectNode)({origin:i(3),axis:t({enum:"axis"}),angle:(0,b.NumberEnum)({values:[-45,-22.5,0,22.5,45]}),rescale:(0,b.Opt)((0,b.BooleanNode)())})),shade:(0,b.Opt)((0,b.BooleanNode)()),faces:(0,b.MapNode)(t({enum:"direction"}),(0,b.ObjectNode)({texture:d,uv:(0,b.Opt)(i(4)),cullface:(0,b.Opt)(t({enum:"direction"})),rotation:(0,b.Opt)((0,b.NumberNode)({integer:!0})),tintindex:(0,b.Opt)((0,b.NumberNode)({integer:!0}))}))},{context:"model_element"}))),display:(0,b.Opt)((0,b.MapNode)(t({enum:"display_position"}),(0,b.ObjectNode)({rotation:i(3),translation:i(3,-80,80),scale:i(3,-4,4)},{context:"item_transform"}))),overrides:(0,b.Opt)((0,b.ListNode)((0,b.ObjectNode)({predicate:(0,b.MapNode)(t({enum:"item_model_predicates"}),(0,b.NumberNode)()),model:t({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))}me.initModelSchemas=et;var _e={};Object.defineProperty(_e,"__esModule",{value:!0});_e.initBlockDefinitionSchemas=void 0;const w=k;function tt(r,e){const t=w.Reference.bind(void 0,r),i=w.StringNode.bind(void 0,e);r.register("block_definition",(0,w.Mod)((0,w.ChoiceNode)([{type:"variants",match:n=>n.variants!==void 0,node:(0,w.ObjectNode)({variants:(0,w.MapNode)(i(),t("model_variant"))}),change:n=>({variants:{"":{}}})},{type:"multipart",match:n=>n.multipart!==void 0,node:(0,w.ObjectNode)({multipart:(0,w.ListNode)((0,w.ObjectNode)({when:(0,w.Opt)(t("multipart_condition")),apply:t("model_variant")}))}),change:n=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const d={model:i({validator:"resource",params:{pool:"$model"}}),x:(0,w.Opt)((0,w.NumberEnum)({integer:!0,values:[0,90,180,270]})),y:(0,w.Opt)((0,w.NumberEnum)({integer:!0,values:[0,90,180,270]})),uvlock:(0,w.Opt)((0,w.BooleanNode)())};r.register("model_variant",(0,w.ChoiceNode)([{type:"object",node:(0,w.ObjectNode)(d),change:n=>Array.isArray(n)&&n.length>0?n[0]:{}},{type:"list",node:(0,w.ListNode)((0,w.ObjectNode)(E(g({},d),{weight:(0,w.Opt)((0,w.NumberNode)({integer:!0,min:1}))}),{context:"model_variant"})),change:n=>[g({weight:1},n)]}],{context:"model_variant"})),r.register("multipart_condition",(0,w.ChoiceNode)([{type:"object",priority:-1,match:()=>!0,node:(0,w.MapNode)(i(),i()),change:n=>typeof n=="object"&&Array.isArray(n==null?void 0:n.OR)&&n.OR.length>0?n.OR[0]:{}},{type:"or",match:n=>typeof n=="object"&&(n==null?void 0:n.OR)!==void 0,node:(0,w.ObjectNode)({OR:(0,w.ListNode)(t("multipart_condition"))}),change:n=>({OR:[n!=null?n:{}]})}],{context:"multipart_condition"}))}_e.initBlockDefinitionSchemas=tt;var ue={};Object.defineProperty(ue,"__esModule",{value:!0});ue.initFontSchemas=void 0;const M=k;function rt(r,e){const t=M.Reference.bind(void 0,r),i=M.StringNode.bind(void 0,e);r.register("font",(0,M.ObjectNode)({providers:(0,M.ListNode)(t("glyph_provider"))},{context:"font"})),r.register("glyph_provider",(0,M.Mod)((0,M.ObjectNode)({type:i({enum:"glyph_provider_type"}),[M.Switch]:[{push:"type"}],[M.Case]:{bitmap:{file:i({validator:"resource",params:{pool:"$texture",suffix:".png"}}),height:(0,M.Opt)((0,M.NumberNode)({integer:!0})),ascent:(0,M.NumberNode)({integer:!0}),chars:(0,M.ListNode)(i(),{minLength:1})},ttf:{file:i({validator:"resource",params:{pool:"$texture",suffix:".png"}}),size:(0,M.Opt)((0,M.NumberNode)()),oversample:(0,M.Opt)((0,M.NumberNode)()),shift:(0,M.Opt)((0,M.ListNode)((0,M.NumberNode)(),{minLength:2,maxLength:2})),skip:(0,M.Opt)((0,M.StringOrList)(i()))},legacy_unicode:{sizes:i(),template:i()}}},{context:"glyph_provider"}),{default:()=>({type:"bitmap"})}))}ue.initFontSchemas=rt;Object.defineProperty(le,"__esModule",{value:!0});le.initAssetsSchemas=void 0;const it=me,ot=_e,nt=ue;function at(r,e){(0,ot.initBlockDefinitionSchemas)(r,e),(0,nt.initFontSchemas)(r,e),(0,it.initModelSchemas)(r,e)}le.initAssetsSchemas=at;var R={};(function(r){Object.defineProperty(r,"__esModule",{value:!0}),r.initCommonSchemas=r.Tag=r.InclusiveRange=r.IntProvider=r.FloatProvider=r.NoiseSettingsPresets=r.DefaultNoiseSettings=r.DimensionTypePresets=r.DefaultDimensionType=r.FunctionCases=r.ConditionCases=void 0;const e=k;r.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},r.DefaultNoiseSettings={sea_level:63,ore_veins_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,legacy_random_source:!1,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,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}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}};function t(i,d){const n=e.StringNode.bind(void 0,d),a=e.Reference.bind(void 0,i);i.register("block_state",(0,e.Mod)((0,e.ObjectNode)({Name:n({validator:"resource",params:{pool:"block"}}),Properties:(0,e.Opt)((0,e.MapNode)(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),i.register("fluid_state",(0,e.Mod)((0,e.ObjectNode)({Name:n({validator:"resource",params:{pool:"fluid"}}),Properties:(0,e.Opt)((0,e.MapNode)(n(),n()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),i.register("block_pos",(0,e.Mod)((0,e.ListNode)((0,e.NumberNode)({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const p=m=>(0,e.Opt)((0,e.ChoiceNode)([{type:"number",node:(0,e.NumberNode)({integer:m}),change:f=>{var j,v;return f===void 0?0:(v=(j=f.min)!==null&&j!==void 0?j:f.max)!==null&&v!==void 0?v:0}},{type:"object",node:(0,e.ObjectNode)({min:(0,e.Opt)((0,e.NumberNode)({integer:m})),max:(0,e.Opt)((0,e.NumberNode)({integer:m}))},{context:"range"}),change:f=>({min:f!=null?f:0,max:f!=null?f:0})}]));i.register("int_bounds",p(!0)),i.register("float_bounds",p()),i.register("int_range",(0,e.ChoiceNode)([{type:"object",node:(0,e.ObjectNode)({min:(0,e.Opt)(a("number_provider")),max:(0,e.Opt)(a("number_provider"))})},{type:"number",node:(0,e.NumberNode)({integer:!0})}],{context:"range"}));const x=(m,f,j,v,S,D,W)=>{let ne={};S&&Object.keys(W[S]).forEach(I=>{ne[I]=(0,e.Mod)(W[S][I],{enabled:A=>A.push("type").get()===void 0})});const J=(0,e.ObjectNode)(g({type:(0,e.Mod)((0,e.Opt)(n({validator:"resource",params:{pool:m}})),{hidden:()=>!0}),[e.Switch]:[{push:"type"}],[e.Case]:W},ne),{context:D,disableSwitchContext:!0}),Q=[{type:f,node:W[v][j]}];return S&&Q.push({type:"object",priority:-1,node:J}),Object.keys(W).forEach(I=>{Q.push({type:I,match:A=>{var ee;if("minecraft:"+((ee=A==null?void 0:A.type)===null||ee===void 0?void 0:ee.replace(/^minecraft:/,""))===I)return!0;const U=A?Object.keys(A):[];return typeof A=="object"&&((U==null?void 0:U.length)===0||(U==null?void 0:U.length)===1&&(U==null?void 0:U[0])==="type")},node:J,change:A=>({type:I})})}),(0,e.ChoiceNode)(Q,{context:D,choiceContext:`${D}.type`})};i.register("number_provider",x("loot_number_provider_type","number","value","minecraft:constant","minecraft:uniform","number_provider",{"minecraft:constant":{value:(0,e.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:n({validator:"objective"}),scale:(0,e.Opt)((0,e.NumberNode)())}})),i.register("scoreboard_name_provider",x("loot_score_provider_type","string","target","minecraft:context",null,"score_provider",{"minecraft:fixed":{name:n({validator:"entity",params:{amount:"multiple",type:"entities",isScoreHolder:!0}})},"minecraft:context":{target:(0,e.Mod)(n({enum:"entity_source"}),{default:()=>"this"})}})),i.register("nbt_provider",x("loot_nbt_provider_type","string","target","minecraft:context",null,"nbt_provider",{"minecraft:storage":{source:n({validator:"resource",params:{pool:"$storage"}})},"minecraft:context":{target:(0,e.Mod)(n({enum:"copy_source"}),{default:()=>"this"})}})),r.FloatProvider=m=>x("float_provider_type","number","value","minecraft:constant",null,"float_provider",{"minecraft:constant":{value:(0,e.NumberNode)(m)},"minecraft:uniform":{value:(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(m),max_exclusive:(0,e.NumberNode)(m)})},"minecraft:clamped_normal":{value:(0,e.ObjectNode)({min:(0,e.NumberNode)(),max:(0,e.NumberNode)(),mean:(0,e.NumberNode)(),deviation:(0,e.NumberNode)()})},"minecraft:trapezoid":{value:(0,e.ObjectNode)({min:(0,e.NumberNode)(),max:(0,e.NumberNode)(),plateau:(0,e.NumberNode)()})}}),i.register("float_provider",(0,r.FloatProvider)()),r.IntProvider=m=>x("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:(0,e.NumberNode)(g({integer:!0},m))},"minecraft:uniform":{value:(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(g({integer:!0},m)),max_inclusive:(0,e.NumberNode)(g({integer:!0},m))})},"minecraft:biased_to_bottom":{value:(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(g({integer:!0},m)),max_inclusive:(0,e.NumberNode)(g({integer:!0},m))})},"minecraft:clamped":{value:(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(g({integer:!0},m)),max_inclusive:(0,e.NumberNode)(g({integer:!0},m)),source:a("int_provider")})},"minecraft:clamped_normal":{value:(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(g({integer:!0},m)),max_inclusive:(0,e.NumberNode)(g({integer:!0},m)),mean:(0,e.NumberNode)(),deviation:(0,e.NumberNode)()})},"minecraft:weighted_list":{distribution:(0,e.ListNode)((0,e.ObjectNode)({weight:(0,e.NumberNode)({integer:!0}),data:a("int_provider")}))}}),i.register("int_provider",(0,r.IntProvider)()),i.register("vertical_anchor",(0,e.ChoiceNode)(["absolute","above_bottom","below_top"].map(m=>({type:m,match:f=>(f==null?void 0:f[m])!==void 0,change:f=>{var j,v,S;return{[m]:(S=(v=(j=f.absolute)!==null&&j!==void 0?j:f.above_bottom)!==null&&v!==void 0?v:f.below_top)!==null&&S!==void 0?S:0}},node:(0,e.ObjectNode)({[m]:(0,e.NumberNode)({integer:!0,min:-2048,max:2047})})})),{context:"vertical_anchor"})),i.register("height_provider",x("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:(0,e.Opt)((0,e.NumberNode)({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:a("vertical_anchor"),max_inclusive:a("vertical_anchor"),inner:(0,e.Opt)((0,e.NumberNode)({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:a("vertical_anchor"),max_inclusive:a("vertical_anchor"),plateau:(0,e.Opt)((0,e.NumberNode)({integer:!0}))},"minecraft:weighted_list":{distribution:(0,e.ListNode)((0,e.ObjectNode)({weight:(0,e.NumberNode)({integer:!0}),data:a("int_provider")}))}})),r.InclusiveRange=m=>(0,e.ObjectNode)({min_inclusive:(0,e.NumberNode)(m),max_inclusive:(0,e.NumberNode)(m)},{context:"range"}),i.register("noise_parameters",(0,e.Mod)((0,e.ObjectNode)({firstOctave:(0,e.NumberNode)({integer:!0}),amplitudes:(0,e.ListNode)((0,e.NumberNode)())},{context:"noise_parameters"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})})),r.Tag=m=>(0,e.ChoiceNode)([{type:"string",node:n({validator:"resource",params:{pool:m.resource,allowTag:!0}}),change:f=>{if(Array.isArray(f)&&typeof f[0]=="string"&&!f[0].startsWith("#"))return f[0]}},{type:"list",node:(0,e.ListNode)(m.inlineSchema?(0,e.ChoiceNode)([{type:"string",node:n({validator:"resource",params:{pool:m.resource}})},{type:"object",node:a(m.inlineSchema)}],{choiceContext:"tag.list"}):n({validator:"resource",params:{pool:m.resource}})),change:f=>typeof f=="string"&&!f.startsWith("#")?[f]:[]}],{choiceContext:"tag"}),r.ConditionCases=(m=n({enum:"entity_source"}))=>({"minecraft:alternative":{terms:(0,e.ListNode)(a("condition"))},"minecraft:block_state_property":{block:n({validator:"resource",params:{pool:"block"}}),properties:(0,e.MapNode)(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:a("damage_source_predicate")},"minecraft:entity_properties":{entity:m,predicate:a("entity_predicate")},"minecraft:entity_scores":{entity:m,scores:(0,e.MapNode)(n({validator:"objective"}),a("int_range"))},"minecraft:inverted":{term:a("condition")},"minecraft:killed_by_player":{inverse:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:location_check":{offsetX:(0,e.Opt)((0,e.NumberNode)({integer:!0})),offsetY:(0,e.Opt)((0,e.NumberNode)({integer:!0})),offsetZ:(0,e.Opt)((0,e.NumberNode)({integer:!0})),predicate:a("location_predicate")},"minecraft:match_tool":{predicate:a("item_predicate")},"minecraft:random_chance":{chance:(0,e.NumberNode)({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:(0,e.NumberNode)({min:0,max:1}),looting_multiplier:(0,e.NumberNode)()},"minecraft:reference":{name:n({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:n({validator:"resource",params:{pool:"enchantment"}}),chances:(0,e.ListNode)((0,e.NumberNode)({min:0,max:1}))},"minecraft:time_check":{value:a("int_range"),period:(0,e.Opt)((0,e.NumberNode)({integer:!0}))},"minecraft:value_check":{value:a("number_provider"),range:a("int_range")},"minecraft:weather_check":{raining:(0,e.Opt)((0,e.BooleanNode)()),thundering:(0,e.Opt)((0,e.BooleanNode)())}}),r.FunctionCases=(m,f=n({enum:"copy_source"}),j=n({enum:"entity_source"}))=>{const v={"minecraft:apply_bonus":{enchantment:n({validator:"resource",params:{pool:"enchantment"}}),formula:n({validator:"resource",params:{pool:d.get("loot_table_apply_bonus_formula")}}),parameters:(0,e.Mod)((0,e.ObjectNode)({bonusMultiplier:(0,e.Mod)((0,e.NumberNode)(),{enabled:D=>D.pop().push("formula").get()==="minecraft:uniform_bonus_count"}),extra:(0,e.Mod)((0,e.NumberNode)(),{enabled:D=>D.pop().push("formula").get()==="minecraft:binomial_with_bonus_count"}),probability:(0,e.Mod)((0,e.NumberNode)(),{enabled:D=>D.pop().push("formula").get()==="minecraft:binomial_with_bonus_count"})}),{enabled:D=>D.push("formula").get()!=="minecraft:ore_drops"})},"minecraft:copy_name":{source:f},"minecraft:copy_nbt":{source:a("nbt_provider"),ops:(0,e.ListNode)((0,e.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:(0,e.ListNode)(n({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:(0,e.Opt)((0,e.ListNode)(n({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:a("number_provider"),treasure:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:exploration_map":{destination:(0,e.Opt)((0,r.Tag)({resource:"$worldgen/configured_structure_feature"})),decoration:(0,e.Opt)(n({enum:"map_decoration"})),zoom:(0,e.Opt)((0,e.NumberNode)({integer:!0})),search_radius:(0,e.Opt)((0,e.NumberNode)({integer:!0})),skip_existing_chunks:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:fill_player_head":{entity:j},"minecraft:limit_count":{limit:a("int_range")},"minecraft:looting_enchant":{count:a("number_provider"),limit:(0,e.Opt)((0,e.NumberNode)({integer:!0}))},"minecraft:set_attributes":{modifiers:(0,e.ListNode)(a("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:(0,e.ListNode)((0,e.ObjectNode)({pattern:n({enum:"banner_pattern"}),color:n({enum:"dye_color"})})),append:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:set_contents":{type:n({validator:"resource",params:{pool:"block_entity_type"}}),entries:(0,e.ListNode)(a("loot_entry"))},"minecraft:set_count":{count:a("number_provider"),add:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:set_damage":{damage:a("number_provider"),add:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:set_enchantments":{enchantments:(0,e.MapNode)(n({validator:"resource",params:{pool:"enchantment"}}),a("number_provider")),add:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:set_loot_table":{type:n({validator:"resource",params:{pool:"block_entity_type"}}),name:n({validator:"resource",params:{pool:"$loot_table"}}),seed:(0,e.Opt)((0,e.NumberNode)({integer:!0}))},"minecraft:set_lore":{entity:(0,e.Opt)(j),lore:(0,e.ListNode)(a("text_component")),replace:(0,e.Opt)((0,e.BooleanNode)())},"minecraft:set_name":{entity:(0,e.Opt)(j),name:(0,e.Opt)(a("text_component"))},"minecraft:set_nbt":{tag:n({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_potion":{id:n({validator:"resource",params:{pool:"potion"}})},"minecraft:set_stew_effect":{effects:(0,e.Opt)((0,e.ListNode)((0,e.ObjectNode)({type:n({validator:"resource",params:{pool:"mob_effect"}}),duration:a("number_provider")})))}},S={};return d.get("loot_function_type").forEach(D=>{S[D]=g(g({},v[D]),m)}),S},r.DimensionTypePresets=m=>(0,e.ObjectOrPreset)(n({validator:"resource",params:{pool:"$dimension_type"}}),m,{"minecraft:overworld":r.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}}),r.NoiseSettingsPresets=m=>(0,e.ObjectOrPreset)(n({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),m,{"minecraft:overworld":r.DefaultNoiseSettings,"minecraft:nether":{sea_level:32,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,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,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}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:end":{sea_level:0,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,default_block:{Name:"minecraft:end_stone"},default_fluid:{Name:"minecraft:air"},noise:{min_y:0,height:128,size_horizontal:2,size_vertical:1,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}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:amplified":{sea_level:63,ore_veins_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,legacy_random_source:!1,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,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}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:caves":{sea_level:32,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,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,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}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}},"minecraft:floating_islands":{sea_level:0,ore_veins_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,legacy_random_source:!0,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,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}},noise_router:{barrier:0,fluid_level_floodedness:0,fluid_level_spread:0,lava:0,temperature:0,vegetation:0,continents:0,erosion:0,depth:0,ridges:0,initial_density_without_jaggedness:0,final_density:{type:"minecraft:interpolated",argument:"minecraft:overworld/base_3d_noise"},vein_toggle:0,vein_ridged:0,vein_gap:0},surface_rule:{type:"minecraft:sequence",sequence:[]}}})}r.initCommonSchemas=t})(R);var pe={};Object.defineProperty(pe,"__esModule",{value:!0});pe.initConditionSchemas=void 0;const te=k,ct=R;function dt(r,e){const t=te.Reference.bind(void 0,r),i=te.StringNode.bind(void 0,e);r.register("predicate",(0,te.ObjectOrList)(t("condition"),{choiceContext:"condition"})),r.register("condition",(0,te.Mod)((0,te.ObjectNode)({condition:i({validator:"resource",params:{pool:"loot_condition_type"}}),[te.Switch]:[{push:"condition"}],[te.Case]:(0,ct.ConditionCases)()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))}pe.initConditionSchemas=dt;var fe={};Object.defineProperty(fe,"__esModule",{value:!0});fe.initDimensionSchemas=void 0;const O=k,Be=R;function st(r,e){const t=O.Reference.bind(void 0,r),i=O.StringNode.bind(void 0,e),d=(0,O.ChoiceNode)([{type:"string",priority:1,node:i({validator:"resource",params:{pool:"$worldgen/structure_set"}}),change:()=>{}},{type:"object",node:t("structure_set"),change:()=>({})}],{choiceContext:"structure_set"});r.register("dimension",(0,O.Mod)((0,O.ObjectNode)({type:(0,Be.DimensionTypePresets)(t("dimension_type")),generator:(0,O.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[O.Switch]:[{push:"type"}],[O.Case]:{"minecraft:noise":{seed:(0,O.NumberNode)({integer:!0}),settings:(0,Be.NoiseSettingsPresets)(t("noise_settings")),biome_source:(0,O.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/biome_source"}}),[O.Switch]:[{push:"type"}],[O.Case]:{"minecraft:fixed":{biome:i({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{preset:(0,O.Opt)(i({validator:"resource",params:{pool:["minecraft:overworld","minecraft:nether"]}})),biomes:(0,O.Mod)((0,O.ListNode)(t("generator_biome")),{enabled:a=>a.push("preset").get()===void 0,default:()=>[{biome:"minecraft:plains"}]})},"minecraft:checkerboard":{scale:(0,O.Opt)((0,O.NumberNode)({integer:!0,min:0,max:62})),biomes:(0,Be.Tag)({resource:"$worldgen/biome"})},"minecraft:the_end":{seed:(0,O.NumberNode)({integer:!0})}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:(0,O.ObjectNode)({biome:(0,O.Opt)(i({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:(0,O.Opt)((0,O.BooleanNode)()),features:(0,O.Opt)((0,O.BooleanNode)()),layers:(0,O.ListNode)(t("generator_layer")),structure_overrides:(0,O.ListNode)(d)})}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>{const a=Math.floor(Math.random()*4294967296)-2147483648;return{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:a,biome_source:{type:"minecraft:fixed",seed:a,biome:"minecraft:plains"},settings:"minecraft:overworld"}}}}));const n=(0,O.ChoiceNode)([{type:"number",node:(0,O.NumberNode)({min:-2,max:2}),change:a=>{var p;return(p=a[0])!==null&&p!==void 0?p:0}},{type:"list",node:(0,O.ListNode)((0,O.NumberNode)({min:-2,max:2}),{minLength:2,maxLength:2}),change:a=>[a!=null?a:0,a!=null?a:0]}]);r.register("generator_biome",(0,O.Mod)((0,O.ObjectNode)({biome:i({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:(0,O.ObjectNode)({temperature:n,humidity:n,continentalness:n,erosion:n,weirdness:n,depth:n,offset:(0,O.NumberNode)({min:0,max:1})})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})}))}fe.initDimensionSchemas=st;var ge={};Object.defineProperty(ge,"__esModule",{value:!0});ge.initDimensionTypeSchemas=void 0;const F=k,lt=R;function mt(r,e){const t=F.StringNode.bind(void 0,e);r.register("dimension_type",(0,F.Mod)((0,F.ObjectNode)({ultrawarm:(0,F.BooleanNode)(),natural:(0,F.BooleanNode)(),piglin_safe:(0,F.BooleanNode)(),respawn_anchor_works:(0,F.BooleanNode)(),bed_works:(0,F.BooleanNode)(),has_raids:(0,F.BooleanNode)(),has_skylight:(0,F.BooleanNode)(),has_ceiling:(0,F.BooleanNode)(),coordinate_scale:(0,F.NumberNode)({min:1e-5,max:3e7}),ambient_light:(0,F.NumberNode)(),fixed_time:(0,F.Opt)((0,F.NumberNode)({integer:!0})),logical_height:(0,F.NumberNode)({integer:!0,min:0,max:4064}),effects:(0,F.Opt)(t({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:t({validator:"resource",params:{pool:"block",requireTag:!0}}),min_y:(0,F.NumberNode)({integer:!0,min:-2032,max:2031}),height:(0,F.NumberNode)({integer:!0,min:16,max:4064})},{context:"dimension_type"}),i=>({default:()=>lt.DefaultDimensionType,validate:(d,n,a,p)=>(n=i.validate(d,n,a,p),(n==null?void 0:n.min_y)+(n==null?void 0:n.height)>2032&&a.add(d.push("height"),"error.min_y_plus_height",2032),(n==null?void 0:n.logical_height)>(n==null?void 0:n.height)&&a.add(d.push("logical_height"),"error.logical_height"),(n==null?void 0:n.height)%16!==0&&a.add(d.push("height"),"error.height_multiple",16),(n==null?void 0:n.min_y)%16!==0&&a.add(d.push("min_y"),"error.min_y_multiple",16),n)})))}ge.initDimensionTypeSchemas=mt;var be={};Object.defineProperty(be,"__esModule",{value:!0});be.initItemModifierSchemas=void 0;const V=k,_t=R;function ut(r,e){const t=V.Reference.bind(void 0,r),i=V.StringNode.bind(void 0,e);r.register("item_modifier",(0,V.ObjectOrList)(t("function"),{choiceContext:"function"}));const d={conditions:(0,V.Opt)((0,V.ListNode)(t("condition")))};r.register("function",(0,V.Mod)((0,V.ObjectNode)({function:i({validator:"resource",params:{pool:"loot_function_type"}}),[V.Switch]:[{push:"function"}],[V.Case]:(0,_t.FunctionCases)(d)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))}be.initItemModifierSchemas=ut;var Ne={},q={};Object.defineProperty(q,"__esModule",{value:!0});q.LootFunctions=q.LootConditions=q.LootCopySources=q.LootEntitySources=q.LootTableTypes=void 0;q.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]}]]);q.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]);q.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]);q.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",[]]]);q.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(Ne,"__esModule",{value:!0});Ne.initLootTableSchemas=void 0;const u=k,oe=q,qe=R;function pt(r,e){const t=u.Reference.bind(void 0,r),i=u.StringNode.bind(void 0,e),d={conditions:(0,u.Opt)((0,u.ListNode)(t("loot_condition")))},n=g({functions:(0,u.Opt)((0,u.ListNode)(t("loot_function")))},d);function a(v,S,D){const W=[],ne=J=>e.get(S).filter(Q=>{var I;return((I=v.get(Q))!==null&&I!==void 0?I:[]).every(ee=>J.includes(ee))});for(const[J,{allows:Q,requires:I}]of oe.LootTableTypes){const A=[...Q,...I];W.push({match:ee=>ee.getModel().get(new u.Path(["type"]))===J,node:D(ne(A))})}return W.push({match:J=>!0,node:D(S)}),(0,u.SwitchNode)(W)}const p=a(oe.LootConditions,"loot_condition_type",v=>i({validator:"resource",params:{pool:v instanceof Array?v:"loot_condition_type"}})),x=a(oe.LootFunctions,"loot_function_type",v=>i({validator:"resource",params:{pool:v instanceof Array?v:"loot_function_type"}})),m=a(oe.LootEntitySources,"entity_source",v=>i({enum:v})),f=a(oe.LootCopySources,"copy_source",v=>i({enum:v}));r.register("loot_table",(0,u.Mod)((0,u.ObjectNode)({type:(0,u.Opt)(i({validator:"resource",params:{pool:e.get("loot_context_type")}})),pools:(0,u.Opt)((0,u.ListNode)((0,u.Mod)((0,u.ObjectNode)(g({rolls:t("number_provider"),bonus_rolls:(0,u.Opt)(t("number_provider")),entries:(0,u.ListNode)(t("loot_entry"))},n),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:(0,u.Opt)((0,u.ListNode)(t("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const j={enabled:v=>{var S;return((S=v.pop().get())===null||S===void 0?void 0:S.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(v.push("type").get())}};r.register("loot_entry",(0,u.Mod)((0,u.ObjectNode)({type:i({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0,min:1}),j)),quality:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),j)),[u.Switch]:[{push:"type"}],[u.Case]:{"minecraft:alternatives":g({children:(0,u.ListNode)(t("loot_entry"))},n),"minecraft:dynamic":g({name:i()},n),"minecraft:group":g({children:(0,u.ListNode)(t("loot_entry"))},n),"minecraft:item":g({name:i({validator:"resource",params:{pool:"item"}})},n),"minecraft:loot_table":g({name:i({validator:"resource",params:{pool:"$loot_table"}})},n),"minecraft:sequence":g({children:(0,u.ListNode)(t("loot_entry"))},n),"minecraft:tag":g({name:i({validator:"resource",params:{pool:"$tag/item"}}),expand:(0,u.Opt)((0,u.BooleanNode)())},n)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),r.register("loot_function",(0,u.Mod)((0,u.ObjectNode)({function:x,[u.Switch]:[{push:"function"}],[u.Case]:(0,qe.FunctionCases)(d,f,m)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),r.register("loot_condition",(0,u.Mod)((0,u.ObjectNode)({condition:p,[u.Switch]:[{push:"condition"}],[u.Case]:(0,qe.ConditionCases)(m)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),r.register("attribute_modifier",(0,u.Mod)((0,u.ObjectNode)({attribute:i({validator:"resource",params:{pool:"attribute"}}),name:i(),amount:t("number_provider"),operation:i({enum:["addition","multiply_base","multiply_total"]}),id:(0,u.Opt)(i({validator:"uuid"})),slot:(0,u.StringOrList)(i({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))}Ne.initLootTableSchemas=pt;var he={};Object.defineProperty(he,"__esModule",{value:!0});he.initPackMcmetaSchemas=void 0;const re=k,K=9;function ft(r,e){r.register("pack_mcmeta",(0,re.Mod)((0,re.ObjectNode)({pack:(0,re.Mod)((0,re.ObjectNode)({pack_format:(0,re.Mod)((0,re.NumberNode)({integer:!0,min:K,max:K}),{default:()=>K,canUpdate:(t,i)=>i!==K,update:()=>[{name:"pack_format",params:[K],newValue:K}]}),description:(0,re.Reference)(r,"text_component")}),{default:()=>({pack_format:K,description:""})})}),{default:()=>({pack:{pack_format:K,description:""}})}))}he.initPackMcmetaSchemas=ft;var ye={};Object.defineProperty(ye,"__esModule",{value:!0});ye.initPredicatesSchemas=void 0;const c=k;function gt(r,e){const t=c.Reference.bind(void 0,r),i=c.StringNode.bind(void 0,e),d=(0,c.ChoiceNode)([{type:"string",node:i(),change:n=>typeof n=="boolean"||typeof n=="number"?n.toString():""},{type:"number",node:(0,c.NumberNode)(),change:n=>typeof n=="string"?parseInt(n):0},{type:"object",node:(0,c.ObjectNode)({min:(0,c.Opt)((0,c.NumberNode)({integer:!0})),max:(0,c.Opt)((0,c.NumberNode)({integer:!0}))}),change:n=>typeof n=="number"?{min:n,max:n}:{}},{type:"boolean",node:(0,c.BooleanNode)(),change:n=>n==="true"||n===1}]);r.register("item_predicate",(0,c.ObjectNode)({items:(0,c.Opt)((0,c.ListNode)(i({validator:"resource",params:{pool:"item"}}))),tag:(0,c.Opt)(i({validator:"resource",params:{pool:"$tag/item"}})),count:t("int_bounds"),durability:t("int_bounds"),potion:(0,c.Opt)(i({validator:"resource",params:{pool:"potion"}})),nbt:(0,c.Opt)(i({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:(0,c.Opt)((0,c.ListNode)(t("enchantment_predicate")))},{context:"item"})),r.register("enchantment_predicate",(0,c.ObjectNode)({enchantment:(0,c.Opt)(i({validator:"resource",params:{pool:"enchantment"}})),levels:t("int_bounds")},{context:"enchantment"})),r.register("block_predicate",(0,c.ObjectNode)({blocks:(0,c.Opt)((0,c.ListNode)(i({validator:"resource",params:{pool:"block"}}))),tag:(0,c.Opt)(i({validator:"resource",params:{pool:"$tag/block"}})),nbt:(0,c.Opt)(i({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:(0,c.Opt)((0,c.MapNode)(i(),d,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),r.register("fluid_predicate",(0,c.ObjectNode)({fluid:(0,c.Opt)(i({validator:"resource",params:{pool:"fluid"}})),tag:(0,c.Opt)(i({validator:"resource",params:{pool:"$tag/fluid"}})),state:(0,c.Opt)((0,c.MapNode)(i(),d))},{context:"fluid"})),r.register("location_predicate",(0,c.ObjectNode)({position:(0,c.Opt)((0,c.ObjectNode)({x:t("float_bounds"),y:t("float_bounds"),z:t("float_bounds")})),biome:(0,c.Opt)(i({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:(0,c.Opt)(i({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),dimension:(0,c.Opt)(i({validator:"resource",params:{pool:"$dimension"}})),light:(0,c.Opt)((0,c.ObjectNode)({light:t("int_bounds")})),smokey:(0,c.Opt)((0,c.BooleanNode)()),block:(0,c.Opt)(t("block_predicate")),fluid:(0,c.Opt)(t("fluid_predicate"))},{context:"location"})),r.register("statistic_predicate",(0,c.ObjectNode)({type:i({validator:"resource",params:{pool:"stat_type"}}),stat:i(),value:t("int_bounds"),[c.Switch]:[{push:"type"}],[c.Case]:{"minecraft:mined":{stat:i({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:i({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:i({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:i({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:i({validator:"resource",params:{pool:"custom_stat"}})}}})),r.register("player_predicate",(0,c.ObjectNode)({gamemode:(0,c.Opt)(i({enum:"gamemode"})),level:t("int_bounds"),advancements:(0,c.Opt)((0,c.MapNode)(i({validator:"resource",params:{pool:"$advancement"}}),(0,c.ChoiceNode)([{type:"boolean",node:(0,c.BooleanNode)(),change:n=>!0},{type:"object",node:(0,c.MapNode)(i(),(0,c.BooleanNode)())}]))),recipes:(0,c.Opt)((0,c.MapNode)(i({validator:"resource",params:{pool:"$recipe"}}),(0,c.BooleanNode)())),stats:(0,c.Opt)((0,c.ListNode)(t("statistic_predicate"))),looking_at:(0,c.Opt)(t("entity_predicate"))},{context:"player"})),r.register("status_effect_predicate",(0,c.ObjectNode)({amplifier:t("int_bounds"),duration:t("int_bounds"),ambient:(0,c.Opt)((0,c.BooleanNode)()),visible:(0,c.Opt)((0,c.BooleanNode)())},{context:"status_effect"})),r.register("distance_predicate",(0,c.ObjectNode)({x:t("float_bounds"),y:t("float_bounds"),z:t("float_bounds"),absolute:t("float_bounds"),horizontal:t("float_bounds")},{context:"distance"})),r.register("entity_predicate",(0,c.ObjectNode)({type:(0,c.Opt)(i({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:(0,c.Opt)(i({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:(0,c.Opt)(i({validator:"team"})),location:(0,c.Opt)(t("location_predicate")),stepping_on:(0,c.Opt)(t("location_predicate")),distance:(0,c.Opt)(t("distance_predicate")),flags:(0,c.Opt)((0,c.ObjectNode)({is_on_fire:(0,c.Opt)((0,c.BooleanNode)()),is_sneaking:(0,c.Opt)((0,c.BooleanNode)()),is_sprinting:(0,c.Opt)((0,c.BooleanNode)()),is_swimming:(0,c.Opt)((0,c.BooleanNode)()),is_baby:(0,c.Opt)((0,c.BooleanNode)())})),equipment:(0,c.Opt)((0,c.MapNode)(i({enum:"slot"}),t("item_predicate"))),player:(0,c.Opt)(t("player_predicate")),vehicle:(0,c.Opt)(t("entity_predicate")),passenger:(0,c.Opt)(t("entity_predicate")),targeted_entity:(0,c.Opt)(t("entity_predicate")),lightning_bolt:(0,c.Opt)((0,c.ObjectNode)({blocks_set_on_fire:(0,c.Opt)(t("int_bounds")),entity_struck:(0,c.Opt)(t("entity_predicate"))})),fishing_hook:(0,c.Opt)((0,c.ObjectNode)({in_open_water:(0,c.Opt)((0,c.BooleanNode)())})),catType:(0,c.Opt)(i({enum:"cat_texture"})),effects:(0,c.Opt)((0,c.MapNode)(i({validator:"resource",params:{pool:"mob_effect"}}),t("status_effect_predicate")))},{context:"entity"})),r.register("damage_source_predicate",(0,c.ObjectNode)({is_explosion:(0,c.Opt)((0,c.BooleanNode)()),is_fire:(0,c.Opt)((0,c.BooleanNode)()),is_magic:(0,c.Opt)((0,c.BooleanNode)()),is_projectile:(0,c.Opt)((0,c.BooleanNode)()),is_lightning:(0,c.Opt)((0,c.BooleanNode)()),bypasses_armor:(0,c.Opt)((0,c.BooleanNode)()),bypasses_invulnerability:(0,c.Opt)((0,c.BooleanNode)()),bypasses_magic:(0,c.Opt)((0,c.BooleanNode)()),source_entity:(0,c.Opt)(t("entity_predicate")),direct_entity:(0,c.Opt)(t("entity_predicate"))},{context:"damage_source"})),r.register("damage_predicate",(0,c.ObjectNode)({dealt:t("float_bounds"),taken:t("float_bounds"),blocked:(0,c.Opt)((0,c.BooleanNode)()),source_entity:(0,c.Opt)(t("entity_predicate")),type:(0,c.Opt)(t("damage_source_predicate"))},{context:"damage"}))}ye.initPredicatesSchemas=gt;var ve={};Object.defineProperty(ve,"__esModule",{value:!0});ve.initRecipeSchemas=void 0;const _=k;function bt(r,e){const t=_.Reference.bind(void 0,r),i=_.StringNode.bind(void 0,e);r.register("recipe",(0,_.Mod)((0,_.ObjectNode)({type:i({validator:"resource",params:{pool:"recipe_serializer"}}),[_.Switch]:[{push:"type"}],[_.Case]:{"minecraft:crafting_shaped":{group:(0,_.Opt)(i({enum:"recipe_group",additional:!0})),pattern:(0,_.ListNode)(i()),key:(0,_.MapNode)(i(),t("recipe_ingredient")),result:t("recipe_result")},"minecraft:crafting_shapeless":{group:(0,_.Opt)(i()),ingredients:(0,_.ListNode)(t("recipe_ingredient")),result:t("recipe_result")},"minecraft:smelting":{group:(0,_.Opt)(i()),ingredient:t("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),experience:(0,_.Opt)((0,_.NumberNode)()),cookingtime:(0,_.Opt)((0,_.Mod)((0,_.NumberNode)({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:(0,_.Opt)(i()),ingredient:t("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),experience:(0,_.Opt)((0,_.NumberNode)()),cookingtime:(0,_.Opt)((0,_.Mod)((0,_.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:(0,_.Opt)(i()),ingredient:t("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),experience:(0,_.Opt)((0,_.NumberNode)()),cookingtime:(0,_.Opt)((0,_.Mod)((0,_.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:(0,_.Opt)(i()),ingredient:t("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),experience:(0,_.Opt)((0,_.NumberNode)()),cookingtime:(0,_.Opt)((0,_.Mod)((0,_.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:(0,_.Opt)(i()),ingredient:t("recipe_ingredient"),result:i({validator:"resource",params:{pool:"item"}}),count:(0,_.NumberNode)({integer:!0})},"minecraft:smithing":{group:(0,_.Opt)(i()),base:t("recipe_ingredient_object"),addition:t("recipe_ingredient_object"),result:t("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),r.register("recipe_ingredient",(0,_.Mod)((0,_.ChoiceNode)([{type:"object",node:t("recipe_ingredient_object"),change:d=>d[0]},{type:"list",node:(0,_.ListNode)(t("recipe_ingredient_object")),change:d=>[d]}]),{default:()=>({item:"minecraft:stone"})})),r.register("recipe_ingredient_object",(0,_.Mod)((0,_.ObjectNode)({item:(0,_.Opt)(i({validator:"resource",params:{pool:"item"}})),tag:(0,_.Opt)(i({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),r.register("recipe_result",(0,_.Mod)((0,_.ObjectNode)({item:i({validator:"resource",params:{pool:"item"}}),count:(0,_.Opt)((0,_.Mod)((0,_.NumberNode)({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))}ve.initRecipeSchemas=bt;var Oe={};Object.defineProperty(Oe,"__esModule",{value:!0});Oe.initTagsSchemas=void 0;const G=k;function Nt(r,e){const t=G.StringNode.bind(void 0,e),i=d=>(0,G.Mod)((0,G.ObjectNode)({replace:(0,G.Opt)((0,G.BooleanNode)()),values:(0,G.ListNode)((0,G.ChoiceNode)([{type:"string",node:t({validator:"resource",params:{pool:d,allowTag:!0}}),change:n=>n.id},{type:"object",node:(0,G.ObjectNode)({id:t({validator:"resource",params:{pool:d,allowTag:!0,allowUnknown:!0}}),required:(0,G.BooleanNode)()}),change:n=>({id:n})}]))},{context:"tag"}),{default:()=>({values:[]})});r.register("block_tag",i("block")),r.register("entity_type_tag",i("entity_type")),r.register("fluid_tag",i("fluid")),r.register("function_tag",i("$function")),r.register("game_event_tag",i("game_event")),r.register("item_tag",i("item")),r.register("advancement_tag",i("$advancement")),r.register("dimension_tag",i("$dimension")),r.register("dimension_type_tag",i("$dimension_type")),r.register("function_tag",i("$function")),r.register("item_modifier_tag",i("$item_modifier")),r.register("loot_table_tag",i("$loot_table")),r.register("predicate_tag",i("$predicate")),r.register("recipe_tag",i("$recipe")),r.register("structure_tag",i("$structure")),r.register("biome_tag",i("$worldgen/biome")),r.register("configured_carver_tag",i("$worldgen/configured_carver")),r.register("configured_decorator_tag",i("$worldgen/configured_decorator")),r.register("configured_feature_tag",i("$worldgen/configured_feature")),r.register("configured_structure_feature_tag",i("$worldgen/configured_structure_feature")),r.register("configured_surface_builder_tag",i("$worldgen/configured_surface_builder")),r.register("density_function_tag",i("$worldgen/density_function")),r.register("noise_tag",i("$worldgen/noise")),r.register("noise_settings_tag",i("$worldgen/noise_settings")),r.register("placed_feature_tag",i("$worldgen/placed_feature")),r.register("processor_list_tag",i("$worldgen/processor_list")),r.register("structure_set_tag",i("$worldgen/structure_set")),r.register("template_pool_tag",i("$worldgen/template_pool"))}Oe.initTagsSchemas=Nt;var ke={};Object.defineProperty(ke,"__esModule",{value:!0});ke.initTextComponentSchemas=void 0;const l=k;function ht(r,e){const t=l.Reference.bind(void 0,r),i=l.StringNode.bind(void 0,e),d=a=>{var p;return a instanceof Array?d(a[0]):(p=a==null?void 0:a.text)!==null&&p!==void 0?p:typeof a=="object"?"":a==null?void 0:a.toString()};r.register("text_component",(0,l.Mod)((0,l.ChoiceNode)([{type:"object",node:t("text_component_object"),change:a=>a instanceof Array?typeof a[0]=="object"?a[0]:{text:d(a[0])}:typeof a=="object"?a:{text:d(a)}},{type:"list",node:t("text_component_list"),change:a=>[a]},{type:"string",priority:1,node:i(),change:d},{type:"number",node:(0,l.NumberNode)(),change:a=>{const p=parseFloat(d(a));return isFinite(p)?p:a?1:0}},{type:"boolean",node:(0,l.BooleanNode)(),change:a=>{const p=d(a);return p==="true"||p==="false"?p==="true":!!p}}],{context:"text_component"}),{default:()=>({text:""})}));const n={color:(0,l.Opt)(i()),font:(0,l.Opt)(i()),bold:(0,l.Opt)((0,l.BooleanNode)()),italic:(0,l.Opt)((0,l.BooleanNode)()),underlined:(0,l.Opt)((0,l.BooleanNode)()),strikethrough:(0,l.Opt)((0,l.BooleanNode)()),obfuscated:(0,l.Opt)((0,l.BooleanNode)()),insertion:(0,l.Opt)(i()),clickEvent:(0,l.Opt)((0,l.ObjectNode)({action:i({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[l.Switch]:[{push:"action"}],[l.Case]:{change_page:{value:i()},copy_to_clipboard:{value:i()},open_file:{value:i()},open_url:{value:i()},run_command:{value:i({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:i({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:(0,l.Opt)((0,l.ObjectNode)({action:i({enum:["show_text","show_item","show_entity"]}),[l.Switch]:[{push:"action"}],[l.Case]:{show_text:{value:(0,l.Opt)(t("text_component")),contents:(0,l.Opt)(t("text_component"))},show_item:{value:(0,l.Opt)(i({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:(0,l.Opt)((0,l.ObjectNode)({id:i({validator:"resource",params:{pool:"item"}}),count:(0,l.Opt)((0,l.NumberNode)({integer:!0})),tag:(0,l.Opt)(i({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:(0,l.Opt)((0,l.ObjectNode)({name:(0,l.Opt)(i()),type:(0,l.Opt)(i()),id:(0,l.Opt)(i())})),contents:(0,l.Opt)((0,l.Mod)((0,l.ObjectNode)({name:(0,l.Opt)(t("text_component")),type:i({validator:"resource",params:{pool:"entity_type"}}),id:i({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:(0,l.Opt)(t("text_component_list"))};r.register("text_component_object",(0,l.Mod)((0,l.ChoiceNode)([{type:"text",match:a=>typeof a=="object",change:a=>({text:""}),priority:-1,node:(0,l.ObjectNode)(g({text:i()},n))},{type:"translation",match:a=>(a==null?void 0:a.translate)!==void 0,change:a=>({translate:""}),node:(0,l.ObjectNode)(g({translate:i(),with:(0,l.Opt)(t("text_component_list"))},n))},{type:"score",match:a=>(a==null?void 0:a.score)!==void 0,change:a=>({score:{}}),node:(0,l.ObjectNode)(g({score:(0,l.ObjectNode)({name:i({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:i({validator:"objective"}),value:(0,l.Opt)(i())})},n))},{type:"selector",match:a=>(a==null?void 0:a.selector)!==void 0,change:a=>({selector:""}),node:(0,l.ObjectNode)(g({selector:i({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:(0,l.Opt)(t("text_component"))},n))},{type:"keybind",match:a=>(a==null?void 0:a.keybind)!==void 0,change:a=>({keybind:""}),node:(0,l.ObjectNode)(g({keybind:i({enum:"keybind",additional:!0})},n))},{type:"nbt",match:a=>(a==null?void 0:a.nbt)!==void 0,change:a=>({nbt:""}),node:(0,l.ObjectNode)(g({nbt:i({validator:"nbt_path"}),block:(0,l.Opt)(i({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:(0,l.Opt)(i({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:(0,l.Opt)(i({validator:"resource",params:{pool:"$storage"}})),interpret:(0,l.Opt)((0,l.BooleanNode)()),separator:(0,l.Opt)(t("text_component"))},n))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),r.register("text_component_list",(0,l.Mod)((0,l.ListNode)(t("text_component")),{default:()=>[{text:""}]}))}ke.initTextComponentSchemas=ht;var xe={},De={};(function(r){Object.defineProperty(r,"__esModule",{value:!0}),r.initBiomeSchemas=r.MobCategorySpawnSettings=void 0;const e=k,t=R;function i(d,n){const a=e.StringNode.bind(void 0,n);r.MobCategorySpawnSettings=(0,e.Mod)((0,e.ListNode)((0,e.ObjectNode)({type:a({validator:"resource",params:{pool:"entity_type"}}),weight:(0,e.NumberNode)({integer:!0}),minCount:(0,e.NumberNode)({integer:!0}),maxCount:(0,e.NumberNode)({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]}),d.register("biome",(0,e.Mod)((0,e.ObjectNode)({temperature:(0,e.NumberNode)(),downfall:(0,e.NumberNode)(),precipitation:a({enum:["none","rain","snow"]}),temperature_modifier:(0,e.Opt)(a({enum:["none","frozen"]})),category:a({enum:"biome_category"}),creature_spawn_probability:(0,e.Opt)((0,e.NumberNode)({min:0,max:1})),effects:(0,e.ObjectNode)({sky_color:(0,e.NumberNode)({color:!0}),fog_color:(0,e.NumberNode)({color:!0}),water_color:(0,e.NumberNode)({color:!0}),water_fog_color:(0,e.NumberNode)({color:!0}),grass_color:(0,e.Opt)((0,e.NumberNode)({color:!0})),foliage_color:(0,e.Opt)((0,e.NumberNode)({color:!0})),grass_color_modifier:(0,e.Opt)(a({enum:["none","dark_forest","swamp"]})),ambient_sound:(0,e.Opt)(a()),mood_sound:(0,e.Opt)((0,e.ObjectNode)({sound:a(),tick_delay:(0,e.NumberNode)({integer:!0}),block_search_extent:(0,e.NumberNode)({integer:!0}),offset:(0,e.NumberNode)()})),additions_sound:(0,e.Opt)((0,e.ObjectNode)({sound:a(),tick_chance:(0,e.NumberNode)({min:0,max:1})})),music:(0,e.Opt)((0,e.ObjectNode)({sound:a(),min_delay:(0,e.NumberNode)({integer:!0,min:0}),max_delay:(0,e.NumberNode)({integer:!0,min:0}),replace_current_music:(0,e.BooleanNode)()})),particle:(0,e.Opt)((0,e.ObjectNode)({options:(0,e.ObjectNode)({type:a()}),probability:(0,e.NumberNode)({min:0,max:1})}))}),spawners:(0,e.MapNode)(a({enum:"mob_category"}),r.MobCategorySpawnSettings),spawn_costs:(0,e.MapNode)(a({validator:"resource",params:{pool:"entity_type"}}),(0,e.Mod)((0,e.ObjectNode)({energy_budget:(0,e.NumberNode)(),charge:(0,e.NumberNode)()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:(0,e.MapNode)(a({enum:["air","liquid"]}),(0,e.Mod)((0,t.Tag)({resource:"$worldgen/configured_carver",inlineSchema:"configured_carver"}),{default:()=>["minecraft:cave"]})),features:(0,e.ListNode)((0,e.Mod)((0,t.Tag)({resource:"$worldgen/placed_feature",inlineSchema:"placed_feature"}),{category:()=>"predicate"}),{maxLength:11})},{context:"biome"}),{default:()=>({temperature:.8,downfall:.4,precipitation:"rain",category:"plains",effects:{sky_color:7907327,fog_color:12638463,water_color:4159204,water_fog_color:329011}})}))}r.initBiomeSchemas=i})(De);var we={};Object.defineProperty(we,"__esModule",{value:!0});we.initCarverSchemas=void 0;const L=k,X=R;function yt(r,e){const t=L.Reference.bind(void 0,r),i=L.StringNode.bind(void 0,e),d={vertical_rotation:(0,X.FloatProvider)(),shape:(0,L.ObjectNode)({distance_factor:(0,X.FloatProvider)(),thickness:(0,X.FloatProvider)(),width_smoothness:(0,L.NumberNode)({integer:!0,min:0}),horizontal_radius_factor:(0,X.FloatProvider)(),vertical_radius_default_factor:(0,L.NumberNode)(),vertical_radius_center_factor:(0,L.NumberNode)()})},n={horizontal_radius_multiplier:(0,X.FloatProvider)(),vertical_radius_multiplier:(0,X.FloatProvider)(),floor_level:(0,X.FloatProvider)({min:-1,max:1})};r.register("configured_carver",(0,L.Mod)((0,L.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/carver"}}),config:(0,L.ObjectNode)({probability:(0,L.NumberNode)({min:0,max:1}),y:t("height_provider"),yScale:(0,X.FloatProvider)(),lava_level:t("vertical_anchor"),debug_settings:(0,L.Opt)((0,L.ObjectNode)({debug_mode:(0,L.Opt)((0,L.BooleanNode)()),air_state:(0,L.Opt)(t("block_state")),water_state:(0,L.Opt)(t("block_state")),lava_state:(0,L.Opt)(t("block_state")),barrier_state:(0,L.Opt)(t("block_state"))})),[L.Switch]:["pop",{push:"type"}],[L.Case]:{"minecraft:canyon":d,"minecraft:cave":n,"minecraft:nether_cave":n}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))}we.initCarverSchemas=yt;var Se={};Object.defineProperty(Se,"__esModule",{value:!0});Se.initDecoratorSchemas=void 0;const $=k,ae=R;function vt(r,e){const t=$.Reference.bind(void 0,r),i=$.StringNode.bind(void 0,e);r.register("decorator",(0,$.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/placement_modifier_type"}}),[$.Switch]:[{push:"type"}],[$.Case]:{"minecraft:block_predicate_filter":{predicate:t("block_predicate_worldgen")},"minecraft:carving_mask":{step:i({enum:"generation_step"})},"minecraft:rarity_filter":{chance:(0,$.NumberNode)({integer:!0,min:0})},"minecraft:count":{count:(0,ae.IntProvider)({min:0,max:256})},"minecraft:count_on_every_layer":{count:(0,ae.IntProvider)({min:0,max:256})},"minecraft:noise_threshold_count":{noise_level:(0,$.NumberNode)(),below_noise:(0,$.NumberNode)({integer:!0}),above_noise:(0,$.NumberNode)({integer:!0})},"minecraft:noise_based_count":{noise_to_count_ratio:(0,$.NumberNode)({integer:!0}),noise_factor:(0,$.NumberNode)(),noise_offset:(0,$.Opt)((0,$.NumberNode)())},"minecraft:environment_scan":{direction_of_search:i({enum:["up","down"]}),max_steps:(0,$.NumberNode)({integer:!0,min:1,max:32}),target_condition:t("block_predicate_worldgen"),allowed_search_condition:(0,$.Opt)(t("block_predicate_worldgen"))},"minecraft:heightmap":{heightmap:i({enum:"heightmap_type"})},"minecraft:height_range":{height:t("height_provider")},"minecraft:random_offset":{xz_spread:(0,ae.IntProvider)({min:-16,max:16}),y_spread:(0,ae.IntProvider)({min:-16,max:16})},"minecraft:surface_relative_threshold_filter":{heightmap:i({enum:"heightmap_type"}),min_inclusive:(0,$.Opt)((0,$.NumberNode)({integer:!0})),max_inclusive:(0,$.Opt)((0,$.NumberNode)({integer:!0}))},"minecraft:surface_water_depth_filter":{max_water_depth:(0,$.NumberNode)({integer:!0})}}},{context:"decorator",category:"predicate"}))}Se.initDecoratorSchemas=vt;var ze={};(function(r){Object.defineProperty(r,"__esModule",{value:!0}),r.initDensityFunctionSchemas=r.DensityFunction=void 0;const e=k;function t(i,d){const n=e.StringNode.bind(void 0,d),a=e.Reference.bind(void 0,i);r.DensityFunction=(0,e.Mod)((0,e.ChoiceNode)([{type:"number",node:(0,e.NumberNode)(),change:()=>0},{type:"string",priority:1,node:n({validator:"resource",params:{pool:"$worldgen/density_function"}}),change:()=>{}},{type:"object",node:a("density_function"),change:()=>({})}],{choiceContext:"density_function"}),{default:()=>0});const p=(0,e.ChoiceNode)([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/noise"}}),change:()=>{}},{type:"object",node:a("noise_parameters")}],{choiceContext:"noise_parameters"}),x=(0,e.NumberNode)({min:-1e6,max:1e6}),m=(0,e.NumberNode)({integer:!0,min:-2032*2,max:2031*2});i.register("density_function",(0,e.Mod)((0,e.ObjectNode)({type:n({validator:"resource",params:{pool:"worldgen/density_function_type"}}),[e.Switch]:[{push:"type"}],[e.Case]:{"minecraft:abs":{argument:r.DensityFunction},"minecraft:add":{argument1:r.DensityFunction,argument2:r.DensityFunction},"minecraft:blend_density":{argument:r.DensityFunction},"minecraft:cache_2d":{argument:r.DensityFunction},"minecraft:cache_all_in_cell":{argument:r.DensityFunction},"minecraft:cache_once":{argument:r.DensityFunction},"minecraft:clamp":{input:r.DensityFunction,min:x,max:x},"minecraft:constant":{argument:(0,e.NumberNode)()},"minecraft:cube":{argument:r.DensityFunction},"minecraft:flat_cache":{argument:r.DensityFunction},"minecraft:half_negative":{argument:r.DensityFunction},"minecraft:interpolated":{argument:r.DensityFunction},"minecraft:max":{argument1:r.DensityFunction,argument2:r.DensityFunction},"minecraft:min":{argument1:r.DensityFunction,argument2:r.DensityFunction},"minecraft:mul":{argument1:r.DensityFunction,argument2:r.DensityFunction},"minecraft:noise":{noise:p,xz_scale:(0,e.NumberNode)(),y_scale:(0,e.NumberNode)()},"minecraft:quarter_negative":{argument:r.DensityFunction},"minecraft:range_choice":{input:r.DensityFunction,min_inclusive:x,max_exclusive:x,when_in_range:r.DensityFunction,when_out_of_range:r.DensityFunction},"minecraft:shift":{argument:r.DensityFunction},"minecraft:shift_a":{argument:r.DensityFunction},"minecraft:shift_b":{argument:r.DensityFunction},"minecraft:shifted_noise":{noise:p,xz_scale:(0,e.NumberNode)(),y_scale:(0,e.NumberNode)(),shift_x:r.DensityFunction,shift_y:r.DensityFunction,shift_z:r.DensityFunction},"minecraft:slide":{argument:r.DensityFunction},"minecraft:spline":{spline:a("cubic_spline"),min_value:x,max_value:x},"minecraft:square":{argument:r.DensityFunction},"minecraft:squeeze":{argument:r.DensityFunction},"minecraft:terrain_shaper_spline":{spline:n({enum:["offset","factor","jaggedness"]}),min_value:x,max_value:x,continentalness:r.DensityFunction,erosion:r.DensityFunction,weirdness:r.DensityFunction},"minecraft:weird_scaled_sampler":{rarity_value_mapper:n({enum:["type_1","type_2"]}),noise:p,input:r.DensityFunction},"minecraft:y_clamped_gradient":{from_y:m,to_y:m,from_value:x,to_value:x}}},{context:"density_function",disableSwitchContext:!0}),{default:()=>({type:"minecraft:noise",noise:"minecraft:cave_entrance",xz_scale:.75,y_scale:.5})})),i.register("cubic_spline",(0,e.Mod)((0,e.ChoiceNode)([{type:"number",node:(0,e.NumberNode)()},{type:"object",node:(0,e.ObjectNode)({coordinate:r.DensityFunction,points:(0,e.ListNode)((0,e.ObjectNode)({location:(0,e.NumberNode)(),derivative:(0,e.NumberNode)(),value:a("cubic_spline")}))},{category:"function"})}],{context:"terrain_spline",choiceContext:"terrain_spline"}),{default:()=>0}))}r.initDensityFunctionSchemas=t})(ze);var je={},Z={};Object.defineProperty(Z,"__esModule",{value:!0});Z.initProcessorListSchemas=Z.Processors=void 0;const y=k;function Ot(r,e){const t=y.Reference.bind(void 0,r),i=y.StringNode.bind(void 0,e);Z.Processors=(0,y.ChoiceNode)([{type:"string",node:i({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:n=>{}},{type:"object",node:t("processor_list"),change:n=>({processors:[{processor_type:"minecraft:nop"}]})}]),r.register("processor_list",(0,y.Mod)((0,y.ObjectNode)({processors:(0,y.ListNode)(t("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"}}]}]})})),r.register("processor",(0,y.Mod)((0,y.ObjectNode)({processor_type:i({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[y.Switch]:[{push:"processor_type"}],[y.Case]:{"minecraft:block_age":{mossiness:(0,y.NumberNode)()},"minecraft:block_ignore":{blocks:(0,y.ListNode)(t("block_state"))},"minecraft:block_rot":{integrity:(0,y.NumberNode)({min:0,max:1})},"minecraft:gravity":{heightmap:i({enum:"heightmap_type"}),offset:(0,y.NumberNode)({integer:!0})},"minecraft:protected_blocks":{value:i({validator:"resource",params:{pool:"block",requireTag:!0}})},"minecraft:rule":{rules:(0,y.ListNode)(t("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"}}]})})),r.register("processor_rule",(0,y.Mod)((0,y.ObjectNode)({position_predicate:(0,y.Opt)(t("pos_rule_test")),location_predicate:t("rule_test"),input_predicate:t("rule_test"),output_state:t("block_state"),output_nbt:(0,y.Opt)(i({validator:"nbt",params:{registry:{category:"minecraft:block"}}}))},{category:"predicate",context:"processor_rule"}),{default:()=>({location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}})}));const d={min_dist:(0,y.Opt)((0,y.NumberNode)({min:0,max:255,integer:!0})),max_dist:(0,y.Opt)((0,y.NumberNode)({min:0,max:255,integer:!0})),min_chance:(0,y.Opt)((0,y.NumberNode)({min:0,max:1})),max_chance:(0,y.Opt)((0,y.NumberNode)({min:0,max:1}))};r.register("pos_rule_test",(0,y.ObjectNode)({predicate_type:i({validator:"resource",params:{pool:"pos_rule_test"}}),[y.Switch]:[{push:"predicate_type"}],[y.Case]:{"minecraft:axis_aligned_linear_pos":g({axis:i({enum:["x","y","z"]})},d),"minecraft:linear_pos":d}},{context:"pos_rule_test",disableSwitchContext:!0})),r.register("rule_test",(0,y.ObjectNode)({predicate_type:i({validator:"resource",params:{pool:"rule_test"}}),[y.Switch]:[{push:"predicate_type"}],[y.Case]:{"minecraft:block_match":{block:i({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:t("block_state")},"minecraft:random_block_match":{block:i({validator:"resource",params:{pool:"block"}}),probability:(0,y.NumberNode)({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:t("block_state"),probability:(0,y.NumberNode)({min:0,max:1})},"minecraft:tag_match":{tag:i({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))}Z.initProcessorListSchemas=Ot;Object.defineProperty(je,"__esModule",{value:!0});je.initFeatureSchemas=void 0;const o=k,h=R,Ie=Z;function kt(r,e){const t=o.Reference.bind(void 0,r),i=o.StringNode.bind(void 0,e),d=(0,o.ChoiceNode)([{type:"string",node:i({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:t("configured_feature")}],{choiceContext:"feature"}),n=(0,o.ChoiceNode)([{type:"string",node:i({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},{type:"object",node:t("placed_feature")}],{choiceContext:"placed_feature"}),a={tries:(0,o.Opt)((0,o.NumberNode)({integer:!0,min:1})),xz_spread:(0,o.Opt)((0,o.NumberNode)({integer:!0,min:0})),y_spread:(0,o.Opt)((0,o.NumberNode)({integer:!0,min:0})),feature:n},p={state:t("block_state"),radius:(0,h.IntProvider)({min:0,max:8}),half_height:(0,o.NumberNode)({integer:!0,min:0,max:4}),targets:(0,o.ListNode)(t("block_state"))},x={cap_provider:t("block_state_provider"),stem_provider:t("block_state_provider"),foliage_radius:(0,o.Opt)((0,o.NumberNode)({integer:!0}))},m=(0,o.ObjectNode)({target:t("rule_test"),state:t("block_state")}),f={size:(0,o.NumberNode)({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:(0,o.NumberNode)({min:0,max:1}),targets:(0,o.ListNode)(m)},j={surface:i({enum:"cave_surface"}),depth:(0,h.IntProvider)({min:1,max:128}),vertical_range:(0,o.NumberNode)({integer:!0,min:1,max:256}),extra_bottom_block_chance:(0,o.NumberNode)({min:0,max:1}),extra_edge_column_chance:(0,o.NumberNode)({min:0,max:1}),vegetation_chance:(0,o.NumberNode)({min:0,max:1}),xz_radius:(0,h.IntProvider)(),replaceable:i({validator:"resource",params:{pool:"block",requireTag:!0}}),ground_state:t("block_state_provider"),vegetation_feature:n};r.register("configured_feature",(0,o.Mod)((0,o.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/feature"}}),config:(0,o.ObjectNode)({[o.Switch]:["pop",{push:"type"}],[o.Case]:{"minecraft:bamboo":{probability:(0,o.NumberNode)({min:0,max:1})},"minecraft:basalt_columns":{reach:(0,h.IntProvider)({min:0,max:3}),height:(0,h.IntProvider)({min:1,max:10})},"minecraft:block_column":{direction:i({enum:["up","down","north","east","south","west"]}),allowed_placement:t("block_predicate_worldgen"),prioritize_tip:(0,o.BooleanNode)(),layers:(0,o.ListNode)((0,o.ObjectNode)({height:(0,h.IntProvider)({min:0}),provider:t("block_state_provider")}))},"minecraft:block_pile":{state_provider:t("block_state_provider")},"minecraft:delta_feature":{contents:t("block_state"),rim:t("block_state"),size:(0,h.IntProvider)({min:0,max:16}),rim_size:(0,h.IntProvider)({min:0,max:16})},"minecraft:disk":p,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:(0,o.NumberNode)({integer:!0,min:1,max:512}),height:(0,h.IntProvider)({min:0,max:128}),radius:(0,h.IntProvider)({min:0,max:128}),max_stalagmite_stalactite_height_diff:(0,o.NumberNode)({integer:!0,min:0,max:64}),height_deviation:(0,o.NumberNode)({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:(0,h.IntProvider)({min:0,max:128}),density:(0,h.FloatProvider)({min:0,max:2}),wetness:(0,h.FloatProvider)({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:(0,o.NumberNode)({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:(0,o.NumberNode)({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:(0,o.NumberNode)({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:(0,o.BooleanNode)(),exit:(0,o.Opt)(t("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:(0,o.Opt)((0,o.BooleanNode)()),crystal_beam_target:(0,o.Opt)(t("block_pos")),spikes:(0,o.ListNode)((0,o.ObjectNode)({centerX:(0,o.Opt)((0,o.NumberNode)({integer:!0})),centerZ:(0,o.Opt)((0,o.NumberNode)({integer:!0})),radius:(0,o.Opt)((0,o.NumberNode)({integer:!0})),height:(0,o.Opt)((0,o.NumberNode)({integer:!0})),guarded:(0,o.Opt)((0,o.BooleanNode)())}))},"minecraft:fill_layer":{state:t("block_state"),height:(0,o.NumberNode)({integer:!0,min:0,max:255})},"minecraft:flower":a,"minecraft:forest_rock":{state:t("block_state")},"minecraft:fossil":{max_empty_corners_allowed:(0,o.NumberNode)({integer:!0,min:0,max:7}),fossil_structures:(0,o.ListNode)(i({validator:"resource",params:{pool:"$structure"}})),overlay_structures:(0,o.ListNode)(i({validator:"resource",params:{pool:"$structure"}})),fossil_processors:Ie.Processors,overlay_processors:Ie.Processors},"minecraft:geode":{blocks:(0,o.ObjectNode)({filling_provider:t("block_state_provider"),inner_layer_provider:t("block_state_provider"),alternate_inner_layer_provider:t("block_state_provider"),middle_layer_provider:t("block_state_provider"),outer_layer_provider:t("block_state_provider"),inner_placements:(0,o.ListNode)(t("block_state")),cannot_replace:i({validator:"resource",params:{pool:"block",requireTag:!0}}),invalid_blocks:i({validator:"resource",params:{pool:"block",requireTag:!0}})}),layers:(0,o.ObjectNode)({filling:(0,o.Opt)((0,o.NumberNode)({min:.01,max:50})),inner_layer:(0,o.Opt)((0,o.NumberNode)({min:.01,max:50})),middle_layer:(0,o.Opt)((0,o.NumberNode)({min:.01,max:50})),outer_layer:(0,o.Opt)((0,o.NumberNode)({min:.01,max:50}))}),crack:(0,o.ObjectNode)({generate_crack_chance:(0,o.Opt)((0,o.NumberNode)({min:0,max:1})),base_crack_size:(0,o.Opt)((0,o.NumberNode)({min:0,max:5})),crack_point_offset:(0,o.Opt)((0,o.NumberNode)({min:0,max:10}))}),noise_multiplier:(0,o.Opt)((0,o.NumberNode)({min:0,max:1})),use_potential_placements_chance:(0,o.Opt)((0,o.NumberNode)({min:0,max:1})),use_alternate_layer0_chance:(0,o.Opt)((0,o.NumberNode)({min:0,max:1})),placements_require_layer0_alternate:(0,o.Opt)((0,o.BooleanNode)()),outer_wall_distance:(0,o.Opt)((0,h.IntProvider)({min:1,max:20})),distribution_points:(0,o.Opt)((0,h.IntProvider)({min:1,max:20})),point_offset:(0,o.Opt)((0,h.IntProvider)({min:0,max:10})),min_gen_offset:(0,o.Opt)((0,o.NumberNode)({integer:!0})),max_gen_offset:(0,o.Opt)((0,o.NumberNode)({integer:!0})),invalid_blocks_threshold:(0,o.NumberNode)({integer:!0})},"minecraft:glow_lichen":{search_range:(0,o.Opt)((0,o.NumberNode)({min:1,max:64,integer:!0})),chance_of_spreading:(0,o.Opt)((0,o.NumberNode)({min:0,max:1})),can_place_on_floor:(0,o.Opt)((0,o.BooleanNode)()),can_place_on_ceiling:(0,o.Opt)((0,o.BooleanNode)()),can_place_on_wall:(0,o.Opt)((0,o.BooleanNode)()),can_be_placed_on:(0,h.Tag)({resource:"block"})},"minecraft:huge_brown_mushroom":x,"minecraft:huge_fungus":{hat_state:t("block_state"),decor_state:t("block_state"),stem_state:t("block_state"),valid_base_block:t("block_state"),planted:(0,o.Opt)((0,o.BooleanNode)())},"minecraft:huge_red_mushroom":x,"minecraft:ice_patch":p,"minecraft:iceberg":{state:t("block_state")},"minecraft:lake":{fluid:t("block_state_provider"),barrier:t("block_state_provider")},"minecraft:large_dripstone":{floor_to_ceiling_search_range:(0,o.Opt)((0,o.NumberNode)({integer:!0,min:1,max:512})),column_radius:(0,h.IntProvider)({min:0,max:60}),height_scale:(0,h.FloatProvider)({min:0,max:20}),max_column_radius_to_cave_height_ratio:(0,o.NumberNode)({min:0,max:1}),stalactite_bluntness:(0,h.FloatProvider)({min:.1,max:10}),stalagmite_bluntness:(0,h.FloatProvider)({min:.1,max:10}),wind_speed:(0,h.FloatProvider)({min:0,max:2}),min_radius_for_wind:(0,o.NumberNode)({integer:!0,min:0,max:100}),min_bluntness_for_wind:(0,o.NumberNode)({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:t("block_state_provider"),spread_width:(0,o.NumberNode)({integer:!0,min:1}),spread_height:(0,o.NumberNode)({integer:!0,min:1})},"minecraft:netherrack_replace_blobs":{state:t("block_state"),target:t("block_state"),radius:(0,h.IntProvider)({min:0,max:12})},"minecraft:no_bonemeal_flower":a,"minecraft:ore":f,"minecraft:pointed_dripstone":{chance_of_taller_dripstone:(0,o.Opt)((0,o.NumberNode)({min:0,max:1})),chance_of_directional_spread:(0,o.Opt)((0,o.NumberNode)({min:0,max:1})),chance_of_spread_radius2:(0,o.Opt)((0,o.NumberNode)({min:0,max:1})),chance_of_spread_radius3:(0,o.Opt)((0,o.NumberNode)({min:0,max:1}))},"minecraft:random_patch":a,"minecraft:random_boolean_selector":{feature_false:n,feature_true:n},"minecraft:random_selector":{features:(0,o.ListNode)((0,o.ObjectNode)({chance:(0,o.NumberNode)({min:0,max:1}),feature:n})),default:n},"minecraft:replace_single_block":{targets:(0,o.ListNode)(m)},"minecraft:root_system":{required_vertical_space_for_tree:(0,o.NumberNode)({integer:!0,min:1,max:64}),root_radius:(0,o.NumberNode)({integer:!0,min:1,max:64}),root_placement_attempts:(0,o.NumberNode)({integer:!0,min:1,max:256}),root_column_max_height:(0,o.NumberNode)({integer:!0,min:1,max:4096}),hanging_root_radius:(0,o.NumberNode)({integer:!0,min:1,max:64}),hanging_roots_vertical_span:(0,o.NumberNode)({integer:!0,min:0,max:16}),hanging_root_placement_attempts:(0,o.NumberNode)({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:(0,o.NumberNode)({integer:!0,min:1,max:64}),root_replaceable:i({validator:"resource",params:{pool:"block",requireTag:!0}}),root_state_provider:t("block_state_provider"),hanging_root_state_provider:t("block_state_provider"),allowed_tree_position:t("block_predicate_worldgen"),feature:n},"minecraft:scattered_ore":f,"minecraft:sea_pickle":{count:(0,h.IntProvider)({min:0,max:256})},"minecraft:seagrass":{probability:(0,o.NumberNode)({min:0,max:1})},"minecraft:simple_block":{to_place:t("block_state_provider")},"minecraft:simple_random_selector":{features:(0,h.Tag)({resource:"$worldgen/placed_feature",inlineSchema:"placed_feature"})},"minecraft:spring_feature":{state:t("fluid_state"),rock_count:(0,o.NumberNode)({integer:!0}),hole_count:(0,o.NumberNode)({integer:!0}),requires_block_below:(0,o.BooleanNode)(),valid_blocks:(0,h.Tag)({resource:"block"})},"minecraft:tree":{ignore_vines:(0,o.Opt)((0,o.BooleanNode)()),force_dirt:(0,o.Opt)((0,o.BooleanNode)()),minimum_size:t("feature_size"),dirt_provider:t("block_state_provider"),trunk_provider:t("block_state_provider"),foliage_provider:t("block_state_provider"),trunk_placer:(0,o.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:(0,o.NumberNode)({integer:!0,min:0,max:32}),height_rand_a:(0,o.NumberNode)({integer:!0,min:0,max:24}),height_rand_b:(0,o.NumberNode)({integer:!0,min:0,max:24}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:bending_trunk_placer":{bend_length:(0,h.IntProvider)({min:1,max:64}),min_height_for_leaves:(0,o.Opt)((0,o.NumberNode)({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:(0,o.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:(0,h.IntProvider)({min:0,max:16}),offset:(0,h.IntProvider)({min:0,max:16}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:blob_foliage_placer":{height:(0,o.NumberNode)({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:(0,o.NumberNode)({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:(0,o.NumberNode)({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:(0,o.NumberNode)({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:(0,h.IntProvider)({min:0,max:24})},"minecraft:pine_foliage_placer":{height:(0,h.IntProvider)({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:(0,h.IntProvider)({min:1,max:512}),leaf_placement_attempts:(0,o.NumberNode)({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:(0,h.IntProvider)({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:(0,o.ListNode)((0,o.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:alter_ground":{provider:t("block_state_provider")},"minecraft:beehive":{probability:(0,o.NumberNode)({min:0,max:1})},"minecraft:cocoa":{probability:(0,o.NumberNode)({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:twisting_vines":{spread_width:(0,o.NumberNode)({integer:!0,min:1}),spread_height:(0,o.NumberNode)({integer:!0,min:1}),max_height:(0,o.NumberNode)({integer:!0,min:1})},"minecraft:underwater_magma":{floor_search_range:(0,o.NumberNode)({integer:!0,min:0,max:512}),placement_radius_around_floor:(0,o.NumberNode)({integer:!0,min:0,max:64}),placement_probability_per_valid_position:(0,o.NumberNode)({min:0,max:1})},"minecraft:vegetation_patch":j,"minecraft:waterlogged_vegetation_patch":j}},{context:"feature"})},{context:"feature"}),{default:()=>({type:"minecraft:tree",config:{minimum_size:{type:"minecraft:two_layers_feature_size"},trunk_placer:{type:"minecraft:straight_trunk_placer",base_height:5,height_rand_a:2,height_rand_b:0},foliage_placer:{type:"minecraft:blob_foliage_placer",radius:2,offset:0,height:3}}})})),r.register("placed_feature",(0,o.Mod)((0,o.ObjectNode)({feature:d,placement:(0,o.ListNode)(t("decorator"))},{context:"placed_feature"}),{default:()=>({feature:"minecraft:oak",placement:[{type:"minecraft:count",count:4},{type:"minecraft:in_square"},{type:"minecraft:heightmap",heightmap:"OCEAN_FLOOR"}]})})),r.register("feature_size",(0,o.Mod)((0,o.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:(0,o.Opt)((0,o.NumberNode)({min:0,max:80})),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:two_layers_feature_size":{limit:(0,o.Opt)((0,o.NumberNode)({integer:!0,min:0,max:81})),lower_size:(0,o.Opt)((0,o.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,o.Opt)((0,o.NumberNode)({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:(0,o.Opt)((0,o.NumberNode)({integer:!0,min:0,max:80})),upper_limit:(0,o.Opt)((0,o.NumberNode)({integer:!0,min:0,max:80})),lower_size:(0,o.Opt)((0,o.NumberNode)({integer:!0,min:0,max:16})),middle_size:(0,o.Opt)((0,o.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,o.Opt)((0,o.NumberNode)({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})}));const v={seed:(0,o.NumberNode)({integer:!0}),noise:t("noise_parameters"),scale:(0,o.Mod)((0,o.NumberNode)({min:Number.MIN_VALUE}),{default:()=>1})};r.register("block_state_provider",(0,o.Mod)((0,o.ObjectNode)({type:i({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:dual_noise_provider":E(g({},v),{variety:(0,h.InclusiveRange)({integer:!0,min:1,max:64}),slow_noise:t("noise_parameters"),slow_scale:(0,o.Mod)((0,o.NumberNode)({min:Number.MIN_VALUE}),{default:()=>1}),states:(0,o.ListNode)(t("block_state"))}),"minecraft:noise_threshold_provider":E(g({},v),{threshold:(0,o.NumberNode)({min:-1,max:1}),high_chance:(0,o.NumberNode)({min:0,max:1}),default_state:t("block_state"),low_states:(0,o.ListNode)(t("block_state")),high_states:(0,o.ListNode)(t("block_state"))}),"minecraft:noise_provider":E(g({},v),{states:(0,o.ListNode)(t("block_state"))}),"minecraft:randomized_int_state_provider":{property:i(),values:(0,h.IntProvider)(),source:t("block_state_provider")},"minecraft:rotated_block_provider":{state:t("block_state")},"minecraft:simple_state_provider":{state:t("block_state")},"minecraft:weighted_state_provider":{entries:(0,o.ListNode)((0,o.Mod)((0,o.ObjectNode)({weight:(0,o.NumberNode)({integer:!0,min:1}),data:t("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})}));const S={offset:(0,o.Opt)((0,o.ListNode)((0,o.NumberNode)({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3}))};r.register("block_predicate_worldgen",(0,o.Mod)((0,o.ObjectNode)({type:i({validator:"resource",params:{pool:"block_predicate_type"}}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:all_of":{predicates:(0,o.ListNode)(t("block_predicate_worldgen"))},"minecraft:any_of":{predicates:(0,o.ListNode)(t("block_predicate_worldgen"))},"minecraft:has_sturdy_face":E(g({},S),{direction:i({enum:"direction"})}),"minecraft:inside_world_bounds":g({},S),"minecraft:matching_block_tag":E(g({},S),{tag:i({validator:"resource",params:{pool:"$tag/block"}})}),"minecraft:matching_blocks":E(g({},S),{blocks:(0,h.Tag)({resource:"block"})}),"minecraft:matching_fluids":E(g({},S),{fluids:(0,h.Tag)({resource:"fluid"})}),"minecraft:not":{predicate:t("block_predicate_worldgen")},"minecraft:would_survive":E(g({},S),{state:t("block_state")})}},{context:"block_predicate"}),{default:()=>({type:"minecraft:true"})}))}je.initFeatureSchemas=kt;var Ce={};Object.defineProperty(Ce,"__esModule",{value:!0});Ce.initNoiseSettingsSchemas=void 0;const N=k,xt=R,z=ze;function wt(r,e){const t=N.Reference.bind(void 0,r),i=N.StringNode.bind(void 0,e);r.register("noise_settings",(0,N.Mod)((0,N.ObjectNode)({sea_level:(0,N.NumberNode)({integer:!0}),disable_mob_generation:(0,N.BooleanNode)(),aquifers_enabled:(0,N.BooleanNode)(),ore_veins_enabled:(0,N.BooleanNode)(),legacy_random_source:(0,N.BooleanNode)(),default_block:t("block_state"),default_fluid:t("block_state"),noise:(0,N.ObjectNode)({min_y:(0,N.NumberNode)({integer:!0,min:-2048,max:2047}),height:(0,N.NumberNode)({integer:!0,min:0,max:4096}),size_horizontal:(0,N.NumberNode)({integer:!0}),size_vertical:(0,N.NumberNode)({integer:!0}),sampling:(0,N.ObjectNode)({xz_scale:(0,N.NumberNode)(),y_scale:(0,N.NumberNode)(),xz_factor:(0,N.NumberNode)(),y_factor:(0,N.NumberNode)()}),bottom_slide:t("noise_slider"),top_slide:t("noise_slider"),terrain_shaper:t("terrain_shaper")}),noise_router:(0,N.ObjectNode)({barrier:z.DensityFunction,fluid_level_floodedness:z.DensityFunction,fluid_level_spread:z.DensityFunction,lava:z.DensityFunction,temperature:z.DensityFunction,vegetation:z.DensityFunction,continents:z.DensityFunction,erosion:z.DensityFunction,depth:z.DensityFunction,ridges:z.DensityFunction,initial_density_without_jaggedness:z.DensityFunction,final_density:z.DensityFunction,vein_toggle:z.DensityFunction,vein_ridged:z.DensityFunction,vein_gap:z.DensityFunction}),surface_rule:t("material_rule")},{context:"noise_settings"}),d=>({default:()=>xt.DefaultNoiseSettings,validate:(n,a,p,x)=>{var m,f,j,v;return a=d.validate(n,a,p,x),((m=a==null?void 0:a.noise)===null||m===void 0?void 0:m.min_y)+((f=a==null?void 0:a.noise)===null||f===void 0?void 0:f.height)>2047&&p.add(n.push("noise").push("height"),"error.min_y_plus_height",2047),((j=a==null?void 0:a.noise)===null||j===void 0?void 0:j.height)%16!==0&&p.add(n.push("noise").push("height"),"error.height_multiple",16),((v=a==null?void 0:a.noise)===null||v===void 0?void 0:v.min_y)%16!==0&&p.add(n.push("noise").push("min_y"),"error.min_y_multiple",16),a}}))),r.register("noise_slider",(0,N.ObjectNode)({target:(0,N.NumberNode)(),size:(0,N.NumberNode)({integer:!0,min:0}),offset:(0,N.NumberNode)({integer:!0})})),r.register("generator_layer",(0,N.Mod)((0,N.ObjectNode)({block:i({validator:"resource",params:{pool:"block"}}),height:(0,N.NumberNode)({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})})),r.register("terrain_shaper",(0,N.Mod)((0,N.ObjectNode)({offset:t("terrain_spline"),factor:t("terrain_spline"),jaggedness:t("terrain_spline")},{context:"terrain_shaper"}),{default:()=>({offset:0,factor:0,jaggedness:0})})),r.register("terrain_spline",(0,N.Mod)((0,N.ChoiceNode)([{type:"number",node:(0,N.NumberNode)()},{type:"object",node:(0,N.ObjectNode)({coordinate:(0,N.Mod)(i({enum:["continents","erosion","weirdness","ridges"]}),{default:()=>"continents"}),points:(0,N.ListNode)((0,N.ObjectNode)({location:(0,N.NumberNode)(),derivative:(0,N.NumberNode)(),value:t("terrain_spline")}))},{category:"function"})}],{context:"terrain_spline",choiceContext:"terrain_spline"}),{default:()=>0}))}Ce.initNoiseSettingsSchemas=wt;var Me={};Object.defineProperty(Me,"__esModule",{value:!0});Me.initStructureFeatureSchemas=void 0;const B=k,St=R,jt=De;function Ct(r,e){const t=B.StringNode.bind(void 0,e),i=B.Reference.bind(void 0,r),d={start_pool:t({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:(0,B.NumberNode)({integer:!0})};r.register("configured_structure_feature",(0,B.Mod)((0,B.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/structure_feature"}}),biomes:(0,St.Tag)({resource:"$worldgen/biome"}),adapt_noise:(0,B.Opt)((0,B.BooleanNode)()),spawn_overrides:(0,B.MapNode)(t({enum:"mob_category"}),(0,B.ObjectNode)({bounding_box:t({enum:["piece","full"]}),spawns:jt.MobCategorySpawnSettings})),config:(0,B.ObjectNode)({[B.Switch]:["pop",{push:"type"}],[B.Case]:{"minecraft:bastion_remnant":d,"minecraft:buried_treasure":{probability:(0,B.NumberNode)({min:0,max:1})},"minecraft:mineshaft":{type:t({enum:["normal","mesa"]}),probability:(0,B.NumberNode)({min:0,max:1})},"minecraft:nether_fossil":{height:i("height_provider")},"minecraft:ocean_ruin":{biome_temp:t({enum:["cold","warm"]}),large_probability:(0,B.NumberNode)({min:0,max:1}),cluster_probability:(0,B.NumberNode)({min:0,max:1})},"minecraft:pillager_outpost":d,"minecraft:ruined_portal":{portal_type:t({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:(0,B.Opt)((0,B.BooleanNode)())},"minecraft:village":d}},{context:"structure_feature",disableSwitchContext:!0})},{context:"structure_feature"}),{default:()=>({type:"minecraft:bastion_remnant",config:{start_pool:"minecraft:bastion/starts",size:6}})}))}Me.initStructureFeatureSchemas=Ct;var Pe={};Object.defineProperty(Pe,"__esModule",{value:!0});Pe.initStructureSetSchemas=void 0;const P=k,Mt=R;function Pt(r,e){const t=P.StringNode.bind(void 0,e),i=P.Reference.bind(void 0,r);r.register("structure_set",(0,P.ObjectNode)({structures:(0,P.ListNode)((0,P.ObjectNode)({structure:(0,Mt.Tag)({resource:"$worldgen/configured_structure_feature"}),weight:(0,P.NumberNode)({integer:!0,min:1})})),placement:i("structure_placement")},{context:"structure_set"})),r.register("structure_placement",(0,P.Mod)((0,P.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/structure_placement"}}),[P.Switch]:[{push:"type"}],[P.Case]:{"minecraft:concentric_rings":{distance:(0,P.NumberNode)({integer:!0,min:0,max:1023}),spread:(0,P.NumberNode)({integer:!0,min:0,max:1023}),count:(0,P.NumberNode)({integer:!0,min:1,max:4095})},"minecraft:random_spread":{spread_type:(0,P.Opt)(t({enum:["linear","triangular"]})),spacing:(0,P.NumberNode)({integer:!0,min:0,max:4096}),separation:(0,P.Mod)((0,P.NumberNode)({integer:!0,min:0,max:4096}),d=>({validate:(n,a,p,x)=>(n.pop().push("spacing").get()<=a&&p.add(n,"error.separation_smaller_spacing"),d.validate(n,a,p,x))})),salt:(0,P.NumberNode)({integer:!0,min:0}),locate_offset:(0,P.Opt)((0,P.ListNode)((0,P.NumberNode)({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3}))}}},{context:"structure_placement"}),{default:()=>({type:"minecraft:random_spread",spacing:10,separation:5,salt:Math.floor(Math.random()*2147483647)})}))}Pe.initStructureSetSchemas=Pt;var Le={};Object.defineProperty(Le,"__esModule",{value:!0});Le.initSurfaceRuleSchemas=void 0;const C=k;function Lt(r,e){const t=C.StringNode.bind(void 0,e),i=C.Reference.bind(void 0,r);r.register("material_rule",(0,C.Mod)((0,C.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/material_rule"}}),[C.Switch]:[{push:"type"}],[C.Case]:{"minecraft:block":{result_state:i("block_state")},"minecraft:condition":{if_true:i("material_condition"),then_run:i("material_rule")},"minecraft:sequence":{sequence:(0,C.ListNode)(i("material_rule"))}}},{context:"material_rule",category:"pool"}),{default:()=>({type:"minecraft:block",result_state:{Name:"minecraft:stone"}})})),r.register("material_condition",(0,C.Mod)((0,C.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/material_condition"}}),[C.Switch]:[{push:"type"}],[C.Case]:{"minecraft:biome":{biome_is:(0,C.ListNode)(t({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:noise_threshold":{noise:t({validator:"resource",params:{pool:"$worldgen/noise"}}),min_threshold:(0,C.NumberNode)(),max_threshold:(0,C.NumberNode)()},"minecraft:not":{invert:i("material_condition")},"minecraft:stone_depth":{offset:(0,C.NumberNode)({integer:!0}),surface_type:t({enum:"cave_surface"}),add_surface_depth:(0,C.BooleanNode)(),secondary_depth_range:(0,C.NumberNode)({integer:!0})},"minecraft:vertical_gradient":{random_name:t(),true_at_and_below:i("vertical_anchor"),false_at_and_above:i("vertical_anchor")},"minecraft:water":{offset:(0,C.NumberNode)({integer:!0}),surface_depth_multiplier:(0,C.NumberNode)({integer:!0,min:-20,max:20}),add_stone_depth:(0,C.BooleanNode)()},"minecraft:y_above":{anchor:i("vertical_anchor"),surface_depth_multiplier:(0,C.NumberNode)({integer:!0,min:-20,max:20}),add_stone_depth:(0,C.BooleanNode)()}}},{context:"material_condition"}),{default:()=>({type:"minecraft:biome",is_biome:"minecraft:plains"})}))}Le.initSurfaceRuleSchemas=Lt;var $e={};Object.defineProperty($e,"__esModule",{value:!0});$e.initTemplatePoolSchemas=void 0;const T=k,Ae=Z;function $t(r,e){const t=T.Reference.bind(void 0,r),i=T.StringNode.bind(void 0,e);r.register("template_pool",(0,T.Mod)((0,T.ObjectNode)({name:i(),fallback:i(),elements:(0,T.ListNode)(t("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"}}]})})),r.register("template_weighted_element",(0,T.Mod)((0,T.ObjectNode)({weight:(0,T.NumberNode)({integer:!0,min:1}),element:t("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),r.register("template_element",(0,T.Mod)((0,T.ObjectNode)({element_type:i({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:i({enum:["rigid","terrain_matching"]}),[T.Switch]:[{push:"element_type"}],[T.Case]:{"minecraft:feature_pool_element":{feature:i({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},"minecraft:legacy_single_pool_element":{location:i({validator:"resource",params:{pool:"$structure"}}),processors:Ae.Processors},"minecraft:list_pool_element":{elements:(0,T.ListNode)(t("template_element"))},"minecraft:single_pool_element":{location:i({validator:"resource",params:{pool:"$structure"}}),processors:Ae.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))}$e.initTemplatePoolSchemas=$t;Object.defineProperty(xe,"__esModule",{value:!0});xe.initWorldgenSchemas=void 0;const Ft=De,Bt=we,Dt=Se,zt=ze,Rt=je,Tt=Ce,qt=Z,It=Me,At=Pe,Et=Le,Wt=$e;function Ut(r,e){(0,qt.initProcessorListSchemas)(r,e),(0,zt.initDensityFunctionSchemas)(r,e),(0,Ft.initBiomeSchemas)(r,e),(0,Bt.initCarverSchemas)(r,e),(0,Dt.initDecoratorSchemas)(r,e),(0,Rt.initFeatureSchemas)(r,e),(0,Tt.initNoiseSettingsSchemas)(r,e),(0,It.initStructureFeatureSchemas)(r,e),(0,At.initStructureSetSchemas)(r,e),(0,Et.initSurfaceRuleSchemas)(r,e),(0,Wt.initTemplatePoolSchemas)(r,e)}xe.initWorldgenSchemas=Ut;var Fe={};Object.defineProperty(Fe,"__esModule",{value:!0});Fe.initWorldSettingsSchemas=void 0;const Y=k;function Vt(r,e){const t=Y.Reference.bind(void 0,r),i=Y.StringNode.bind(void 0,e);r.register("world_settings",(0,Y.Mod)((0,Y.ObjectNode)({generate_features:(0,Y.BooleanNode)(),bonus_chest:(0,Y.BooleanNode)(),seed:(0,Y.NumberNode)({integer:!0}),dimensions:(0,Y.MapNode)(i({validator:"resource",params:{pool:"$dimension"}}),t("dimension"))},{context:"world_settings"}),{default:()=>{const d=Math.floor(Math.random()*4294967296)-2147483648;return{generate_features:!0,bonus_chest:!1,seed:d,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:overworld"},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:nether"},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:the_end",seed:d},settings:"minecraft:end"}}}}}}))}Fe.initWorldSettingsSchemas=Vt;Object.defineProperty(de,"__esModule",{value:!0});de.initSchemas=void 0;const Gt=se,Ht=le,Kt=R,Xt=pe,Yt=fe,Zt=ge,Jt=be,Qt=Ne,er=he,tr=ye,rr=ve,ir=Oe,or=ke,nr=xe,ar=Fe;function cr(r,e){(0,Kt.initCommonSchemas)(r,e),(0,Gt.initAdvancementSchemas)(r,e),(0,Ht.initAssetsSchemas)(r,e),(0,Xt.initConditionSchemas)(r,e),(0,Zt.initDimensionTypeSchemas)(r,e),(0,Yt.initDimensionSchemas)(r,e),(0,Jt.initItemModifierSchemas)(r,e),(0,Qt.initLootTableSchemas)(r,e),(0,er.initPackMcmetaSchemas)(r,e),(0,tr.initPredicatesSchemas)(r,e),(0,rr.initRecipeSchemas)(r,e),(0,ir.initTagsSchemas)(r,e),(0,or.initTextComponentSchemas)(r,e),(0,nr.initWorldgenSchemas)(r,e),(0,ar.initWorldSettingsSchemas)(r,e)}de.initSchemas=cr;var dr=ie&&ie.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t);var d=Object.getOwnPropertyDescriptor(e,t);(!d||("get"in d?!e.__esModule:d.writable||d.configurable))&&(d={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(r,i,d)}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),sr=ie&&ie.__setModuleDefault||(Object.create?function(r,e){Object.defineProperty(r,"default",{enumerable:!0,value:e})}:function(r,e){r.default=e}),lr=ie&&ie.__importStar||function(r){if(r&&r.__esModule)return r;var e={};if(r!=null)for(var t in r)t!=="default"&&Object.prototype.hasOwnProperty.call(r,t)&&dr(e,r,t);return sr(e,r),e};Object.defineProperty(H,"__esModule",{value:!0});var Ee=H.getSchemas=Ve=H.getCollections=Ue=H.lootContext=void 0;const We=k,mr=ce,_r=de;var Ue=H.lootContext=lr(q);function ur(){const r=new We.CollectionRegistry;return(0,mr.initCollections)(r),r}var Ve=H.getCollections=ur;function pr(r){const e=new We.SchemaRegistry;return(0,_r.initSchemas)(e,r),e}Ee=H.getSchemas=pr;var Nr=Ze({__proto__:null,get getSchemas(){return Ee},get getCollections(){return Ve},get lootContext(){return Ue},default:H},[H]);export{Nr as i}; +//# sourceMappingURL=index.883f1c74.js.map diff --git a/assets/index.7025560c.js.map b/assets/index.883f1c74.js.map similarity index 99% rename from assets/index.7025560c.js.map rename to assets/index.883f1c74.js.map index a4d96b47..ddc7136f 100644 --- a/assets/index.7025560c.js.map +++ b/assets/index.883f1c74.js.map @@ -1 +1 @@ -{"version":3,"file":"index.7025560c.js","sources":["../../node_modules/@mcschema/java-1.18.2/lib/Collections.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/assets/Font.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Dimension.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/DimensionType.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/ItemModifier.js","../../node_modules/@mcschema/java-1.18.2/lib/LootContext.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/Biome.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/Carver.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/Decorator.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/DensityFunction.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/ProcessorList.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/Feature.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/NoiseSettings.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/StructureFeature.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/StructureSet.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/SurfaceRule.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/TemplatePool.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/index.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/WorldSettings.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/index.js","../../node_modules/@mcschema/java-1.18.2/lib/index.js"],"sourcesContent":["\"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 collections.register('glyph_provider_type', [\r\n 'bitmap',\r\n 'ttf',\r\n 'legacy_unicode',\r\n ]);\r\n collections.register('mob_category', [\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 ]);\r\n collections.register('cat_texture', [\r\n 'textures/entity/cat/tabby.png',\r\n 'textures/entity/cat/black.png',\r\n 'textures/entity/cat/red.png',\r\n 'textures/entity/cat/siamese.png',\r\n 'textures/entity/cat/british_shorthair.png',\r\n 'textures/entity/cat/calico.png',\r\n 'textures/entity/cat/persian.png',\r\n 'textures/entity/cat/ragdoll.png',\r\n 'textures/entity/cat/white.png',\r\n 'textures/entity/cat/jellie.png',\r\n 'textures/entity/cat/all_black.png'\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 = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n display: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n icon: (0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: (0, 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: (0, core_1.Opt)(StringNode()),\r\n frame: (0, core_1.Opt)(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n announce_to_chat: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n hidden: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: (0, core_1.MapNode)(StringNode(), Reference('advancement_criteria')),\r\n requirements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ListNode)(StringNode() // TODO: add validation\r\n ))),\r\n rewards: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n function: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n player: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n item: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: (0, core_1.Opt)((0, 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: (0, 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: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate'))),\r\n source: (0, core_1.Opt)(EntityPredicate)\r\n },\r\n 'minecraft:enter_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: (0, core_1.Opt)(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: (0, core_1.Opt)(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:fall_from_height': {\r\n start_position: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: (0, 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: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n start_position: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n },\r\n 'minecraft:placed_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, 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: (0, core_1.Opt)(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: (0, 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: (0, 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: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate'))\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: (0, 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: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: (0, core_1.Opt)(Reference('float_bounds'))\r\n },\r\n 'minecraft:used_totem': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:using_item': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: (0, 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) => (0, core_1.ListNode)((0, core_1.NumberNode)({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n parent: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n gui_light: (0, core_1.Opt)(StringNode({ enum: 'gui_light' })),\r\n textures: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), Texture)),\r\n elements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: (0, core_1.NumberEnum)({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n shade: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n faces: (0, core_1.MapNode)(StringNode({ enum: 'direction' }), (0, core_1.ObjectNode)({\r\n texture: Texture,\r\n uv: (0, core_1.Opt)(Vec(4)),\r\n cullface: (0, core_1.Opt)(StringNode({ enum: 'direction' })),\r\n rotation: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tintindex: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'display_position' }), (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n predicate: (0, core_1.MapNode)(StringNode({ enum: 'item_model_predicates' }), (0, 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', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n variants: (0, 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: (0, core_1.ObjectNode)({\r\n multipart: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n when: (0, 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: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n y: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n };\r\n schemas.register('model_variant', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n ...VariantChildren,\r\n weight: (0, core_1.Opt)((0, 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', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n OR: (0, 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.initFontSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initFontSchemas(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('font', (0, core_1.ObjectNode)({\r\n providers: (0, core_1.ListNode)(Reference('glyph_provider'))\r\n }, { context: 'font' }));\r\n schemas.register('glyph_provider', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ enum: 'glyph_provider_type' }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'bitmap': {\r\n file: StringNode({ validator: 'resource', params: { pool: '$texture', suffix: '.png' } }),\r\n height: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n ascent: (0, core_1.NumberNode)({ integer: true }),\r\n chars: (0, core_1.ListNode)(StringNode(), { minLength: 1 })\r\n },\r\n 'ttf': {\r\n file: StringNode({ validator: 'resource', params: { pool: '$texture', suffix: '.png' } }),\r\n size: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n oversample: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n shift: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.NumberNode)(), { minLength: 2, maxLength: 2 })),\r\n skip: (0, core_1.Opt)((0, core_1.StringOrList)(StringNode()))\r\n },\r\n 'legacy_unicode': {\r\n sizes: StringNode(),\r\n template: StringNode()\r\n }\r\n }\r\n }, { context: 'glyph_provider' }), {\r\n default: () => ({\r\n type: 'bitmap',\r\n }),\r\n }));\r\n}\r\nexports.initFontSchemas = initFontSchemas;\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\nconst Font_1 = require(\"./Font\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n (0, BlockDefinition_1.initBlockDefinitionSchemas)(schemas, collections);\r\n (0, Font_1.initFontSchemas)(schemas, collections);\r\n (0, Model_1.initModelSchemas)(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.Tag = exports.InclusiveRange = exports.IntProvider = exports.FloatProvider = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.FunctionCases = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: '#minecraft:infiniburn_overworld',\r\n min_y: 0,\r\n height: 256,\r\n};\r\nexports.DefaultNoiseSettings = {\r\n sea_level: 63,\r\n ore_veins_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n legacy_random_source: 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: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\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 noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => (0, core_1.Opt)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer })),\r\n max: (0, core_1.Opt)((0, 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', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)(Reference('number_provider')),\r\n max: (0, core_1.Opt)(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: (0, 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] = (0, 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 = (0, core_1.ObjectNode)({\r\n type: (0, core_1.Mod)((0, 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 (0, 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: (0, 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: (0, core_1.Opt)((0, 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: (0, 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: (0, 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: (0, core_1.NumberNode)(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)(config),\r\n max_exclusive: (0, core_1.NumberNode)(config)\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n mean: (0, core_1.NumberNode)(),\r\n deviation: (0, core_1.NumberNode)()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n plateau: (0, core_1.NumberNode)()\r\n })\r\n }\r\n });\r\n schemas.register('float_provider', (0, 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: (0, core_1.NumberNode)({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n mean: (0, core_1.NumberNode)(),\r\n deviation: (0, core_1.NumberNode)()\r\n })\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n });\r\n schemas.register('int_provider', (0, exports.IntProvider)());\r\n schemas.register('vertical_anchor', (0, 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: (0, core_1.ObjectNode)({\r\n [t]: (0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n }));\r\n exports.InclusiveRange = (config) => (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)(config),\r\n max_inclusive: (0, core_1.NumberNode)(config)\r\n }, { context: 'range' });\r\n schemas.register('noise_parameters', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n firstOctave: (0, core_1.NumberNode)({ integer: true }),\r\n amplitudes: (0, core_1.ListNode)((0, core_1.NumberNode)())\r\n }, { context: 'noise_parameters' }), {\r\n default: () => ({\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n })\r\n }));\r\n exports.Tag = (config) => (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: config.resource, allowTag: true } }),\r\n change: (v) => {\r\n if (Array.isArray(v) && typeof v[0] === 'string' && !v[0].startsWith('#')) {\r\n return v[0];\r\n }\r\n return undefined;\r\n }\r\n },\r\n {\r\n type: 'list',\r\n node: (0, core_1.ListNode)(config.inlineSchema\r\n ? (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: config.resource } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference(config.inlineSchema)\r\n }\r\n ], { choiceContext: 'tag.list' })\r\n : StringNode({ validator: 'resource', params: { pool: config.resource } })),\r\n change: (v) => {\r\n if (typeof v === 'string' && !v.startsWith('#')) {\r\n return [v];\r\n }\r\n return [];\r\n }\r\n },\r\n ], { choiceContext: 'tag' });\r\n exports.ConditionCases = (entitySourceNode = StringNode({ enum: 'entity_source' })) => ({\r\n 'minecraft:alternative': {\r\n terms: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetY: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetZ: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n looting_multiplier: (0, 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: (0, core_1.ListNode)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n thundering: (0, core_1.Opt)((0, 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: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n bonusMultiplier: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: (0, core_1.Mod)((0, 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: (0, core_1.ListNode)((0, 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: (0, core_1.ListNode)(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: (0, core_1.Opt)((0, exports.Tag)({ resource: '$worldgen/configured_structure_feature' })),\r\n decoration: (0, core_1.Opt)(StringNode({ enum: 'map_decoration' })),\r\n zoom: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n search_radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n skip_existing_chunks: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: (0, core_1.ListNode)(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_contents': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n entries: (0, core_1.ListNode)(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_loot_table': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n lore: (0, core_1.ListNode)(Reference('text_component')),\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_name': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n name: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, 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) => (0, 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) => (0, core_1.ObjectOrPreset)(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n sea_level: 32,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: true,\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 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 noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n },\r\n 'minecraft:end': {\r\n sea_level: 0,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: true,\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 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 noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n sea_level: 63,\r\n ore_veins_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n legacy_random_source: 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: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\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 noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n },\r\n 'minecraft:caves': {\r\n sea_level: 32,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: 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: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\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 noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n sea_level: 0,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: 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: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\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 noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\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', (0, core_1.ObjectOrList)(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', (0, core_1.Mod)((0, 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]: (0, 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 StructureSet = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/structure_set' } }),\r\n change: () => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('structure_set'),\r\n change: () => ({})\r\n }\r\n ], { choiceContext: 'structure_set' });\r\n schemas.register('dimension', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, Common_1.DimensionTypePresets)(Reference('dimension_type')),\r\n generator: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n settings: (0, Common_1.NoiseSettingsPresets)(Reference('noise_settings')),\r\n biome_source: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: ['minecraft:overworld', 'minecraft:nether'] } })),\r\n biomes: (0, core_1.Mod)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 62 })),\r\n biomes: (0, Common_1.Tag)({ resource: '$worldgen/biome' })\r\n },\r\n 'minecraft:the_end': {\r\n seed: (0, core_1.NumberNode)({ integer: true })\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: (0, core_1.ObjectNode)({\r\n biome: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n features: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n layers: (0, core_1.ListNode)(Reference('generator_layer')),\r\n structure_overrides: (0, core_1.ListNode)(StructureSet)\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 = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ListNode)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n ultrawarm: (0, core_1.BooleanNode)(),\r\n natural: (0, core_1.BooleanNode)(),\r\n piglin_safe: (0, core_1.BooleanNode)(),\r\n respawn_anchor_works: (0, core_1.BooleanNode)(),\r\n bed_works: (0, core_1.BooleanNode)(),\r\n has_raids: (0, core_1.BooleanNode)(),\r\n has_skylight: (0, core_1.BooleanNode)(),\r\n has_ceiling: (0, core_1.BooleanNode)(),\r\n coordinate_scale: (0, core_1.NumberNode)({ min: 0.00001, max: 30000000 }),\r\n ambient_light: (0, core_1.NumberNode)(),\r\n fixed_time: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n logical_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4064 }),\r\n effects: (0, core_1.Opt)(StringNode({ enum: ['minecraft:overworld', 'minecraft:the_nether', 'minecraft:the_end'] })),\r\n infiniburn: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n min_y: (0, core_1.NumberNode)({ integer: true, min: -2032, max: 2031 }),\r\n height: (0, core_1.NumberNode)({ integer: true, min: 16, max: 4064 })\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) > 2032) {\r\n errors.add(path.push('height'), 'error.min_y_plus_height', 2032);\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', (0, core_1.ObjectOrList)(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: (0, core_1.Opt)((0, core_1.ListNode)(Reference('condition')))\r\n };\r\n schemas.register('function', (0, core_1.Mod)((0, 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]: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: (0, core_1.Opt)((0, 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 (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: (0, core_1.Opt)(Reference('number_provider')),\r\n entries: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 1 }), weightMod)),\r\n quality: (0, core_1.Opt)((0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: (0, 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', (0, core_1.Mod)((0, 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 id: (0, core_1.Opt)(StringNode({ validator: 'uuid' })),\r\n slot: (0, 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 = 9;\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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack_format: (0, core_1.Mod)((0, 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: (0, 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 = (0, 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: (0, core_1.NumberNode)(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max: (0, core_1.Opt)((0, 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: (0, core_1.BooleanNode)(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', (0, core_1.ObjectNode)({\r\n items: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'item' } }))),\r\n tag: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: (0, core_1.Opt)((0, core_1.ListNode)(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', (0, core_1.ObjectNode)({\r\n enchantment: (0, 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', (0, core_1.ObjectNode)({\r\n blocks: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n fluid: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', (0, core_1.ObjectNode)({\r\n position: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_structure_feature' } })),\r\n dimension: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n block: (0, core_1.Opt)(Reference('block_predicate')),\r\n fluid: (0, core_1.Opt)(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', (0, 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', (0, core_1.ObjectNode)({\r\n gamemode: (0, core_1.Opt)(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), (0, core_1.ChoiceNode)([\r\n { type: 'boolean', node: (0, core_1.BooleanNode)(), change: _ => true },\r\n {\r\n type: 'object', node: (0, core_1.MapNode)(StringNode(), (0, core_1.BooleanNode)())\r\n }\r\n ]))),\r\n recipes: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), (0, core_1.BooleanNode)())),\r\n stats: (0, core_1.Opt)((0, core_1.ListNode)(Reference('statistic_predicate'))),\r\n looking_at: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', (0, core_1.ObjectNode)({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n visible: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', (0, 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', (0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: (0, core_1.Opt)(StringNode({ validator: 'team' })),\r\n location: (0, core_1.Opt)(Reference('location_predicate')),\r\n stepping_on: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n flags: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n is_on_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sneaking: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sprinting: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_swimming: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_baby: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n equipment: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n player: (0, core_1.Opt)(Reference('player_predicate')),\r\n vehicle: (0, core_1.Opt)(Reference('entity_predicate')),\r\n passenger: (0, core_1.Opt)(Reference('entity_predicate')),\r\n targeted_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n lightning_bolt: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n blocks_set_on_fire: (0, core_1.Opt)(Reference('int_bounds')),\r\n entity_struck: (0, core_1.Opt)(Reference('entity_predicate'))\r\n })),\r\n fishing_hook: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n in_open_water: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n catType: (0, core_1.Opt)(StringNode({ enum: 'cat_texture' })),\r\n effects: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n is_explosion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_projectile: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_lightning: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_armor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_invulnerability: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n direct_entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', (0, core_1.ObjectNode)({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n type: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.Opt)(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: (0, core_1.ListNode)(StringNode()),\r\n key: (0, 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: (0, core_1.Opt)(StringNode()),\r\n ingredients: (0, core_1.ListNode)(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: (0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.Mod)((0, 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) => (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n values: (0, core_1.ListNode)((0, 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: (0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: (0, 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 schemas.register('advancement_tag', TagBase('$advancement'));\r\n schemas.register('dimension_tag', TagBase('$dimension'));\r\n schemas.register('dimension_type_tag', TagBase('$dimension_type'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('item_modifier_tag', TagBase('$item_modifier'));\r\n schemas.register('loot_table_tag', TagBase('$loot_table'));\r\n schemas.register('predicate_tag', TagBase('$predicate'));\r\n schemas.register('recipe_tag', TagBase('$recipe'));\r\n schemas.register('structure_tag', TagBase('$structure'));\r\n schemas.register('biome_tag', TagBase('$worldgen/biome'));\r\n schemas.register('configured_carver_tag', TagBase('$worldgen/configured_carver'));\r\n schemas.register('configured_decorator_tag', TagBase('$worldgen/configured_decorator'));\r\n schemas.register('configured_feature_tag', TagBase('$worldgen/configured_feature'));\r\n schemas.register('configured_structure_feature_tag', TagBase('$worldgen/configured_structure_feature'));\r\n schemas.register('configured_surface_builder_tag', TagBase('$worldgen/configured_surface_builder'));\r\n schemas.register('density_function_tag', TagBase('$worldgen/density_function'));\r\n schemas.register('noise_tag', TagBase('$worldgen/noise'));\r\n schemas.register('noise_settings_tag', TagBase('$worldgen/noise_settings'));\r\n schemas.register('placed_feature_tag', TagBase('$worldgen/placed_feature'));\r\n schemas.register('processor_list_tag', TagBase('$worldgen/processor_list'));\r\n schemas.register('structure_set_tag', TagBase('$worldgen/structure_set'));\r\n schemas.register('template_pool_tag', TagBase('$worldgen/template_pool'));\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', (0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, core_1.Opt)(StringNode()) /* TODO */,\r\n font: (0, core_1.Opt)(StringNode()),\r\n bold: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n italic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n underlined: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n strikethrough: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n obfuscated: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n insertion: (0, core_1.Opt)(StringNode()),\r\n clickEvent: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('text_component')),\r\n contents: (0, core_1.Opt)(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tag: (0, 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: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n name: (0, core_1.Opt)(StringNode()),\r\n type: (0, core_1.Opt)(StringNode()),\r\n id: (0, core_1.Opt)(StringNode())\r\n })),\r\n contents: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, 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: (0, core_1.Opt)(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n translate: StringNode(),\r\n with: (0, 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: (0, core_1.ObjectNode)({\r\n score: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n separator: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: (0, core_1.Opt)(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: (0, core_1.Opt)(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n separator: (0, 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', (0, core_1.Mod)((0, 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 = exports.MobCategorySpawnSettings = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initBiomeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n exports.MobCategorySpawnSettings = (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n minCount: (0, core_1.NumberNode)({ integer: true }),\r\n maxCount: (0, 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 schemas.register('biome', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n temperature: (0, core_1.NumberNode)(),\r\n downfall: (0, core_1.NumberNode)(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n creature_spawn_probability: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n effects: (0, core_1.ObjectNode)({\r\n sky_color: (0, core_1.NumberNode)({ color: true }),\r\n fog_color: (0, core_1.NumberNode)({ color: true }),\r\n water_color: (0, core_1.NumberNode)({ color: true }),\r\n water_fog_color: (0, core_1.NumberNode)({ color: true }),\r\n grass_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n foliage_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n grass_color_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: (0, core_1.Opt)(StringNode()),\r\n mood_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_delay: (0, core_1.NumberNode)({ integer: true }),\r\n block_search_extent: (0, core_1.NumberNode)({ integer: true }),\r\n offset: (0, core_1.NumberNode)()\r\n })),\r\n additions_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n })),\r\n music: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n min_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n max_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n replace_current_music: (0, core_1.BooleanNode)()\r\n })),\r\n particle: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n options: (0, core_1.ObjectNode)({\r\n type: StringNode()\r\n }),\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }))\r\n }),\r\n spawners: (0, core_1.MapNode)(StringNode({ enum: 'mob_category' }), exports.MobCategorySpawnSettings),\r\n spawn_costs: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n energy_budget: (0, core_1.NumberNode)(),\r\n charge: (0, 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: (0, core_1.MapNode)(StringNode({ enum: ['air', 'liquid'] }), (0, core_1.Mod)((0, Common_1.Tag)({ resource: '$worldgen/configured_carver', inlineSchema: 'configured_carver' }), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: (0, core_1.ListNode)((0, core_1.Mod)((0, Common_1.Tag)({ resource: '$worldgen/placed_feature', inlineSchema: 'placed_feature' }), { category: () => 'predicate' }), { maxLength: 11 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const CanyonConfig = {\r\n vertical_rotation: (0, Common_1.FloatProvider)(),\r\n shape: (0, core_1.ObjectNode)({\r\n distance_factor: (0, Common_1.FloatProvider)(),\r\n thickness: (0, Common_1.FloatProvider)(),\r\n width_smoothness: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n horizontal_radius_factor: (0, Common_1.FloatProvider)(),\r\n vertical_radius_default_factor: (0, core_1.NumberNode)(),\r\n vertical_radius_center_factor: (0, core_1.NumberNode)()\r\n })\r\n };\r\n const CaveConfig = {\r\n horizontal_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n vertical_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n floor_level: (0, Common_1.FloatProvider)({ min: -1, max: 1 }),\r\n };\r\n schemas.register('configured_carver', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: (0, core_1.ObjectNode)({\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n y: Reference('height_provider'),\r\n yScale: (0, Common_1.FloatProvider)(),\r\n lava_level: Reference('vertical_anchor'),\r\n debug_settings: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n debug_mode: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n air_state: (0, core_1.Opt)(Reference('block_state')),\r\n water_state: (0, core_1.Opt)(Reference('block_state')),\r\n lava_state: (0, core_1.Opt)(Reference('block_state')),\r\n barrier_state: (0, core_1.Opt)(Reference('block_state'))\r\n })),\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:canyon': CanyonConfig,\r\n 'minecraft:cave': CaveConfig,\r\n 'minecraft:nether_cave': CaveConfig\r\n },\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('decorator', (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/placement_modifier_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_predicate_filter': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' })\r\n },\r\n 'minecraft:rarity_filter': {\r\n chance: (0, core_1.NumberNode)({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:count_on_every_layer': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:noise_threshold_count': {\r\n noise_level: (0, core_1.NumberNode)(),\r\n below_noise: (0, core_1.NumberNode)({ integer: true }),\r\n above_noise: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:noise_based_count': {\r\n noise_to_count_ratio: (0, core_1.NumberNode)({ integer: true }),\r\n noise_factor: (0, core_1.NumberNode)(),\r\n noise_offset: (0, core_1.Opt)((0, core_1.NumberNode)())\r\n },\r\n 'minecraft:environment_scan': {\r\n direction_of_search: StringNode({ enum: ['up', 'down'] }),\r\n max_steps: (0, core_1.NumberNode)({ integer: true, min: 1, max: 32 }),\r\n target_condition: Reference('block_predicate_worldgen'),\r\n allowed_search_condition: (0, core_1.Opt)(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:heightmap': {\r\n heightmap: StringNode({ enum: 'heightmap_type' })\r\n },\r\n 'minecraft:height_range': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:random_offset': {\r\n xz_spread: (0, Common_1.IntProvider)({ min: -16, max: 16 }),\r\n y_spread: (0, Common_1.IntProvider)({ min: -16, max: 16 }),\r\n },\r\n 'minecraft:surface_relative_threshold_filter': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n min_inclusive: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max_inclusive: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:surface_water_depth_filter': {\r\n max_water_depth: (0, core_1.NumberNode)({ integer: true })\r\n }\r\n }\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDensityFunctionSchemas = exports.DensityFunction = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initDensityFunctionSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n exports.DensityFunction = (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, core_1.NumberNode)(),\r\n change: () => 0\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/density_function' } }),\r\n change: () => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('density_function'),\r\n change: () => ({})\r\n }\r\n ], { choiceContext: 'density_function' }), {\r\n default: () => 0\r\n });\r\n const NoiseParameters = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/noise' } }),\r\n change: () => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('noise_parameters')\r\n }\r\n ], { choiceContext: 'noise_parameters' });\r\n const NoiseRange = (0, core_1.NumberNode)({ min: -1000000, max: 1000000 });\r\n const YRange = (0, core_1.NumberNode)({ integer: true, min: -2032 * 2, max: 2031 * 2 });\r\n schemas.register('density_function', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/density_function_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:abs': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:add': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:blend_density': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:cache_2d': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:cache_all_in_cell': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:cache_once': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:clamp': {\r\n input: exports.DensityFunction,\r\n min: NoiseRange,\r\n max: NoiseRange,\r\n },\r\n 'minecraft:constant': {\r\n argument: (0, core_1.NumberNode)(),\r\n },\r\n 'minecraft:cube': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:flat_cache': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:half_negative': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:interpolated': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:max': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:min': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:mul': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:noise': {\r\n noise: NoiseParameters,\r\n xz_scale: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n },\r\n 'minecraft:quarter_negative': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:range_choice': {\r\n input: exports.DensityFunction,\r\n min_inclusive: NoiseRange,\r\n max_exclusive: NoiseRange,\r\n when_in_range: exports.DensityFunction,\r\n when_out_of_range: exports.DensityFunction,\r\n },\r\n 'minecraft:shift': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:shift_a': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:shift_b': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:shifted_noise': {\r\n noise: NoiseParameters,\r\n xz_scale: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n shift_x: exports.DensityFunction,\r\n shift_y: exports.DensityFunction,\r\n shift_z: exports.DensityFunction,\r\n },\r\n 'minecraft:slide': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:spline': {\r\n spline: Reference('cubic_spline'),\r\n min_value: NoiseRange,\r\n max_value: NoiseRange,\r\n },\r\n 'minecraft:square': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:squeeze': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:terrain_shaper_spline': {\r\n spline: StringNode({ enum: ['offset', 'factor', 'jaggedness'] }),\r\n min_value: NoiseRange,\r\n max_value: NoiseRange,\r\n continentalness: exports.DensityFunction,\r\n erosion: exports.DensityFunction,\r\n weirdness: exports.DensityFunction,\r\n },\r\n 'minecraft:weird_scaled_sampler': {\r\n rarity_value_mapper: StringNode({ enum: ['type_1', 'type_2'] }),\r\n noise: NoiseParameters,\r\n input: exports.DensityFunction,\r\n },\r\n 'minecraft:y_clamped_gradient': {\r\n from_y: YRange,\r\n to_y: YRange,\r\n from_value: NoiseRange,\r\n to_value: NoiseRange,\r\n },\r\n }\r\n }, { context: 'density_function', disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:noise',\r\n noise: 'minecraft:cave_entrance',\r\n xz_scale: 0.75,\r\n y_scale: 0.5\r\n })\r\n }));\r\n schemas.register('cubic_spline', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, core_1.NumberNode)()\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n coordinate: exports.DensityFunction,\r\n points: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n location: (0, core_1.NumberNode)(),\r\n derivative: (0, core_1.NumberNode)(),\r\n value: Reference('cubic_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.initDensityFunctionSchemas = initDensityFunctionSchemas;\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 = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n processors: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.NumberNode)()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:protected_blocks': {\r\n value: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } })\r\n },\r\n 'minecraft:rule': {\r\n rules: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n position_predicate: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n max_dist: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n min_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n max_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n };\r\n schemas.register('pos_rule_test', (0, 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', (0, 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: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:tag_match': {\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }\r\n }\r\n }, { context: 'rule_test', disableSwitchContext: true }));\r\n}\r\nexports.initProcessorListSchemas = initProcessorListSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const ConfiguredFeature = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n const PlacedFeature = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('placed_feature')\r\n }\r\n ], { choiceContext: 'placed_feature' });\r\n const RandomPatchConfig = {\r\n tries: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 })),\r\n xz_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n y_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n feature: PlacedFeature,\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 8 }),\r\n half_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4 }),\r\n targets: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n };\r\n const TargetBlockState = (0, core_1.ObjectNode)({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n });\r\n const OreConfig = {\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n targets: (0, core_1.ListNode)(TargetBlockState)\r\n };\r\n const VegetationPatchConfig = {\r\n surface: StringNode({ enum: 'cave_surface' }),\r\n depth: (0, Common_1.IntProvider)({ min: 1, max: 128 }),\r\n vertical_range: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n extra_edge_column_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n vegetation_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n xz_radius: (0, Common_1.IntProvider)(),\r\n replaceable: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n ground_state: Reference('block_state_provider'),\r\n vegetation_feature: PlacedFeature\r\n };\r\n schemas.register('configured_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: (0, core_1.ObjectNode)({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: (0, Common_1.IntProvider)({ min: 0, max: 3 }),\r\n height: (0, 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: (0, core_1.BooleanNode)(),\r\n layers: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n height: (0, Common_1.IntProvider)({ min: 0 }),\r\n provider: Reference('block_state_provider')\r\n }))\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n rim_size: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 1, max: 512 }),\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n max_stalagmite_stalactite_height_diff: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n height_deviation: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n density: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n wetness: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: (0, core_1.BooleanNode)(),\r\n exit: (0, core_1.Opt)(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n crystal_beam_target: (0, core_1.Opt)(Reference('block_pos')),\r\n spikes: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n centerX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n centerZ: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n height: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n guarded: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: (0, 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: (0, 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: (0, core_1.ListNode)(Reference('block_state')),\r\n cannot_replace: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n invalid_blocks: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } })\r\n }),\r\n layers: (0, core_1.ObjectNode)({\r\n filling: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n inner_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n middle_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n outer_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n }),\r\n crack: (0, core_1.ObjectNode)({\r\n generate_crack_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n base_crack_size: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 5 })),\r\n crack_point_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 10 })),\r\n }),\r\n noise_multiplier: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_potential_placements_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n outer_wall_distance: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n distribution_points: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n point_offset: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 0, max: 10 })),\r\n min_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n invalid_blocks_threshold: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:glow_lichen': {\r\n search_range: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n can_place_on_floor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_ceiling: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_wall: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_be_placed_on: (0, Common_1.Tag)({ resource: 'block' })\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:ice_patch': DiskConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n fluid: Reference('block_state_provider'),\r\n barrier: Reference('block_state_provider')\r\n },\r\n 'minecraft:large_dripstone': {\r\n floor_to_ceiling_search_range: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1, max: 512 })),\r\n column_radius: (0, Common_1.IntProvider)({ min: 0, max: 60 }),\r\n height_scale: (0, Common_1.FloatProvider)({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n stalactite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n wind_speed: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n min_radius_for_wind: (0, core_1.NumberNode)({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: (0, core_1.NumberNode)({ min: 0, max: 5 })\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider'),\r\n spread_width: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n spread_height: (0, core_1.NumberNode)({ integer: true, min: 1 })\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_directional_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_spread_radius2: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_spread_radius3: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n },\r\n 'minecraft:random_patch': RandomPatchConfig,\r\n 'minecraft:random_boolean_selector': {\r\n feature_false: PlacedFeature,\r\n feature_true: PlacedFeature\r\n },\r\n 'minecraft:random_selector': {\r\n features: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n feature: PlacedFeature\r\n })),\r\n default: PlacedFeature\r\n },\r\n 'minecraft:replace_single_block': {\r\n targets: (0, core_1.ListNode)(TargetBlockState)\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 }),\r\n allowed_vertical_water_for_tree: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_replaceable: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n root_state_provider: Reference('block_state_provider'),\r\n hanging_root_state_provider: Reference('block_state_provider'),\r\n allowed_tree_position: Reference('block_predicate_worldgen'),\r\n feature: PlacedFeature\r\n },\r\n 'minecraft:scattered_ore': OreConfig,\r\n 'minecraft:sea_pickle': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:seagrass': {\r\n probability: (0, 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: (0, Common_1.Tag)({ resource: '$worldgen/placed_feature', inlineSchema: 'placed_feature' }),\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: (0, core_1.NumberNode)({ integer: true }),\r\n hole_count: (0, core_1.NumberNode)({ integer: true }),\r\n requires_block_below: (0, core_1.BooleanNode)(),\r\n valid_blocks: (0, Common_1.Tag)({ resource: 'block' })\r\n },\r\n 'minecraft:tree': {\r\n ignore_vines: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n force_dirt: (0, core_1.Opt)((0, 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: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: (0, core_1.NumberNode)({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: (0, 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: (0, Common_1.IntProvider)({ min: 1, max: 64 }),\r\n min_height_for_leaves: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 }))\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n offset: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: (0, Common_1.IntProvider)({ min: 1, max: 512 }),\r\n leaf_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: (0, core_1.ListNode)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n },\r\n 'minecraft:twisting_vines': {\r\n spread_width: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n spread_height: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n max_height: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n },\r\n 'minecraft:underwater_magma': {\r\n floor_search_range: (0, core_1.NumberNode)({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:vegetation_patch': VegetationPatchConfig,\r\n 'minecraft:waterlogged_vegetation_patch': VegetationPatchConfig\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:tree',\r\n config: {\r\n minimum_size: {\r\n type: 'minecraft:two_layers_feature_size'\r\n },\r\n trunk_placer: {\r\n type: 'minecraft:straight_trunk_placer',\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n type: 'minecraft:blob_foliage_placer',\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('placed_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n feature: ConfiguredFeature,\r\n placement: (0, core_1.ListNode)(Reference('decorator'))\r\n }, { context: 'placed_feature' }), {\r\n default: () => ({\r\n feature: 'minecraft:oak',\r\n placement: [\r\n {\r\n type: 'minecraft:count',\r\n count: 4\r\n },\r\n {\r\n type: 'minecraft:in_square'\r\n },\r\n {\r\n type: 'minecraft:heightmap',\r\n heightmap: 'OCEAN_FLOOR'\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('feature_size', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 81 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n upper_limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n middle_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n noise: Reference('noise_parameters'),\r\n scale: (0, core_1.Mod)((0, core_1.NumberNode)({ min: Number.MIN_VALUE }), { default: () => 1 })\r\n };\r\n schemas.register('block_state_provider', (0, core_1.Mod)((0, 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: (0, Common_1.InclusiveRange)({ integer: true, min: 1, max: 64 }),\r\n slow_noise: Reference('noise_parameters'),\r\n slow_scale: (0, core_1.Mod)((0, core_1.NumberNode)({ min: Number.MIN_VALUE }), { default: () => 1 }),\r\n states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:noise_threshold_provider': {\r\n ...NoiseProvider,\r\n threshold: (0, core_1.NumberNode)({ min: -1, max: 1 }),\r\n high_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n default_state: Reference('block_state'),\r\n low_states: (0, core_1.ListNode)(Reference('block_state')),\r\n high_states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:noise_provider': {\r\n ...NoiseProvider,\r\n states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:randomized_int_state_provider': {\r\n property: StringNode(),\r\n values: (0, 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: (0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n data: Reference('block_state')\r\n }), {\r\n default: () => ({\r\n data: {}\r\n })\r\n }))\r\n }\r\n }\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_state_provider'\r\n })\r\n }));\r\n const Offset = {\r\n offset: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 }))\r\n };\r\n schemas.register('block_predicate_worldgen', (0, core_1.Mod)((0, 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: (0, core_1.ListNode)(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:any_of': {\r\n predicates: (0, core_1.ListNode)(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:has_sturdy_face': {\r\n ...Offset,\r\n direction: StringNode({ enum: 'direction' })\r\n },\r\n 'minecraft:inside_world_bounds': {\r\n ...Offset,\r\n },\r\n 'minecraft:matching_block_tag': {\r\n ...Offset,\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n },\r\n 'minecraft:matching_blocks': {\r\n ...Offset,\r\n blocks: (0, Common_1.Tag)({ resource: 'block' })\r\n },\r\n 'minecraft:matching_fluids': {\r\n ...Offset,\r\n fluids: (0, Common_1.Tag)({ resource: 'fluid' })\r\n },\r\n 'minecraft:not': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:would_survive': {\r\n ...Offset,\r\n state: Reference('block_state')\r\n }\r\n }\r\n }, { context: 'block_predicate' }), {\r\n default: () => ({\r\n type: 'minecraft:true'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nconst DensityFunction_1 = require(\"./DensityFunction\");\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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n sea_level: (0, core_1.NumberNode)({ integer: true }),\r\n disable_mob_generation: (0, core_1.BooleanNode)(),\r\n aquifers_enabled: (0, core_1.BooleanNode)(),\r\n ore_veins_enabled: (0, core_1.BooleanNode)(),\r\n legacy_random_source: (0, core_1.BooleanNode)(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: (0, core_1.ObjectNode)({\r\n min_y: (0, core_1.NumberNode)({ integer: true, min: -2048, max: 2047 }),\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n size_horizontal: (0, core_1.NumberNode)({ integer: true }),\r\n size_vertical: (0, core_1.NumberNode)({ integer: true }),\r\n sampling: (0, core_1.ObjectNode)({\r\n xz_scale: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n xz_factor: (0, core_1.NumberNode)(),\r\n y_factor: (0, 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 noise_router: (0, core_1.ObjectNode)({\r\n barrier: DensityFunction_1.DensityFunction,\r\n fluid_level_floodedness: DensityFunction_1.DensityFunction,\r\n fluid_level_spread: DensityFunction_1.DensityFunction,\r\n lava: DensityFunction_1.DensityFunction,\r\n temperature: DensityFunction_1.DensityFunction,\r\n vegetation: DensityFunction_1.DensityFunction,\r\n continents: DensityFunction_1.DensityFunction,\r\n erosion: DensityFunction_1.DensityFunction,\r\n depth: DensityFunction_1.DensityFunction,\r\n ridges: DensityFunction_1.DensityFunction,\r\n initial_density_without_jaggedness: DensityFunction_1.DensityFunction,\r\n final_density: DensityFunction_1.DensityFunction,\r\n vein_toggle: DensityFunction_1.DensityFunction,\r\n vein_ridged: DensityFunction_1.DensityFunction,\r\n vein_gap: DensityFunction_1.DensityFunction,\r\n }),\r\n surface_rule: Reference('material_rule'),\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', (0, core_1.ObjectNode)({\r\n target: (0, core_1.NumberNode)(),\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n offset: (0, core_1.NumberNode)({ integer: true })\r\n }));\r\n schemas.register('generator_layer', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: (0, 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', (0, core_1.Mod)((0, 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', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, core_1.NumberNode)()\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n coordinate: (0, core_1.Mod)(StringNode({ enum: ['continents', 'erosion', 'weirdness', 'ridges'] }), { default: () => 'continents' }),\r\n points: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n location: (0, core_1.NumberNode)(),\r\n derivative: (0, 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\nconst Common_1 = require(\"../Common\");\r\nconst Biome_1 = require(\"./Biome\");\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: (0, core_1.NumberNode)({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n biomes: (0, Common_1.Tag)({ resource: '$worldgen/biome' }),\r\n adapt_noise: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n spawn_overrides: (0, core_1.MapNode)(StringNode({ enum: 'mob_category' }), (0, core_1.ObjectNode)({\r\n bounding_box: StringNode({ enum: ['piece', 'full'] }),\r\n spawns: Biome_1.MobCategorySpawnSettings,\r\n })),\r\n config: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n cluster_probability: (0, 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: (0, core_1.Opt)((0, 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.initStructureSetSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initStructureSetSchemas(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('structure_set', (0, core_1.ObjectNode)({\r\n structures: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n structure: (0, Common_1.Tag)({ resource: '$worldgen/configured_structure_feature' }),\r\n weight: (0, core_1.NumberNode)({ integer: true, min: 1 })\r\n })),\r\n placement: Reference('structure_placement')\r\n }, { context: 'structure_set' }));\r\n schemas.register('structure_placement', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_placement' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:concentric_rings': {\r\n distance: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n spread: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n count: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4095 })\r\n },\r\n 'minecraft:random_spread': {\r\n spread_type: (0, core_1.Opt)(StringNode({ enum: ['linear', 'triangular'] })),\r\n spacing: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n separation: (0, core_1.Mod)((0, 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: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n locate_offset: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 }))\r\n }\r\n }\r\n }, { context: 'structure_placement' }), {\r\n default: () => ({\r\n type: 'minecraft:random_spread',\r\n spacing: 10,\r\n separation: 5,\r\n salt: Math.floor(Math.random() * 2147483647)\r\n })\r\n }));\r\n}\r\nexports.initStructureSetSchemas = initStructureSetSchemas;\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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.NumberNode)(),\r\n max_threshold: (0, core_1.NumberNode)()\r\n },\r\n 'minecraft:not': {\r\n invert: Reference('material_condition')\r\n },\r\n 'minecraft:stone_depth': {\r\n offset: (0, core_1.NumberNode)({ integer: true }),\r\n surface_type: StringNode({ enum: 'cave_surface' }),\r\n add_surface_depth: (0, core_1.BooleanNode)(),\r\n secondary_depth_range: (0, core_1.NumberNode)({ integer: true }),\r\n },\r\n 'minecraft:vertical_gradient': {\r\n random_name: StringNode(),\r\n true_at_and_below: Reference('vertical_anchor'),\r\n false_at_and_above: Reference('vertical_anchor'),\r\n },\r\n 'minecraft:water': {\r\n offset: (0, core_1.NumberNode)({ integer: true }),\r\n surface_depth_multiplier: (0, core_1.NumberNode)({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: (0, core_1.BooleanNode)()\r\n },\r\n 'minecraft:y_above': {\r\n anchor: Reference('vertical_anchor'),\r\n surface_depth_multiplier: (0, core_1.NumberNode)({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n element_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_pool_element' } }),\r\n projection: StringNode({ enum: ['rigid', 'terrain_matching'] }),\r\n [core_1.Switch]: [{ push: 'element_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:feature_pool_element': {\r\n feature: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n 'minecraft:legacy_single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n },\r\n 'minecraft:list_pool_element': {\r\n elements: (0, 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 DensityFunction_1 = require(\"./DensityFunction\");\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 StructureSet_1 = require(\"./StructureSet\");\r\nconst SurfaceRule_1 = require(\"./SurfaceRule\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n // `ProcessorList.ts`, `DensityFunction.ts`, and `Biome.ts` have exports. They should be initialized first. \r\n (0, ProcessorList_1.initProcessorListSchemas)(schemas, collections);\r\n (0, DensityFunction_1.initDensityFunctionSchemas)(schemas, collections);\r\n (0, Biome_1.initBiomeSchemas)(schemas, collections);\r\n (0, Carver_1.initCarverSchemas)(schemas, collections);\r\n (0, Decorator_1.initDecoratorSchemas)(schemas, collections);\r\n (0, Feature_1.initFeatureSchemas)(schemas, collections);\r\n (0, NoiseSettings_1.initNoiseSettingsSchemas)(schemas, collections);\r\n (0, StructureFeature_1.initStructureFeatureSchemas)(schemas, collections);\r\n (0, StructureSet_1.initStructureSetSchemas)(schemas, collections);\r\n (0, SurfaceRule_1.initSurfaceRuleSchemas)(schemas, collections);\r\n (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n generate_features: (0, core_1.BooleanNode)(),\r\n bonus_chest: (0, core_1.BooleanNode)(),\r\n seed: (0, core_1.NumberNode)({ integer: true }),\r\n dimensions: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:overworld\"\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:nether\"\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst ItemModifier_1 = require(\"./ItemModifier\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n (0, Common_1.initCommonSchemas)(schemas, collections);\r\n (0, Advancement_1.initAdvancementSchemas)(schemas, collections);\r\n (0, assets_1.initAssetsSchemas)(schemas, collections);\r\n (0, Condition_1.initConditionSchemas)(schemas, collections);\r\n (0, DimensionType_1.initDimensionTypeSchemas)(schemas, collections);\r\n (0, Dimension_1.initDimensionSchemas)(schemas, collections);\r\n (0, ItemModifier_1.initItemModifierSchemas)(schemas, collections);\r\n (0, LootTable_1.initLootTableSchemas)(schemas, collections);\r\n (0, PackMcmeta_1.initPackMcmetaSchemas)(schemas, collections);\r\n (0, Predicates_1.initPredicatesSchemas)(schemas, collections);\r\n (0, Recipe_1.initRecipeSchemas)(schemas, collections);\r\n (0, Tags_1.initTagsSchemas)(schemas, collections);\r\n (0, TextComponent_1.initTextComponentSchemas)(schemas, collections);\r\n (0, worldgen_1.initWorldgenSchemas)(schemas, collections);\r\n (0, 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 var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\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.prototype.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 = exports.lootContext = 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 (0, 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 (0, schemas_1.initSchemas)(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n"],"names":["core_1","require$$0","require$$1","require$$2","Common_1","ProcessorList_1","DensityFunction_1","Biome_1","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","this"],"mappings":"+1BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAI,CAAE,EACrC,GAAA,gBAAG,OAC1B,YAAyB,EAAa,CAClC,EAAY,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,2BACR,CAAK,EACD,EAAY,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,SACR,CAAK,EACD,EAAY,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,MACR,CAAK,EACD,EAAY,SAAS,WAAY,CAC7B,WACA,WACA,YACA,WACR,CAAK,EACD,EAAY,SAAS,gBAAiB,CAClC,OACA,SACA,gBACA,eACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,eACA,OACA,SACA,eACR,CAAK,EACD,EAAY,SAAS,iCAAkC,CACnD,gCACA,sCACA,qBACR,CAAK,EACD,EAAY,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,cACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,SACR,CAAK,EACD,EAAY,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,iBACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,WACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,QACA,UACA,aACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,kBACR,CAAK,EACD,EAAY,SAAS,kBAAmB,CACpC,MACA,QACR,CAAK,EACD,EAAY,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,iBACR,CAAK,EACD,EAAY,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,QACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,QACA,SACA,UACA,aACA,SACA,OACA,OACA,OACA,aACA,OACA,SACA,OACA,QACA,QACA,MACA,OACR,CAAK,EACD,EAAY,SAAS,eAAgB,CACjC,QACA,SACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,OACA,KACA,QACA,OACA,QACA,MACR,CAAK,EACD,EAAY,SAAS,OAAQ,CACzB,IACA,IACA,GACR,CAAK,EACD,EAAY,SAAS,mBAAoB,CACrC,wBACA,uBACA,wBACA,uBACA,MACA,OACA,SACA,OACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,QACA,MACR,CAAK,EA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"} \ No newline at end of file +{"version":3,"file":"index.883f1c74.js","sources":["../../node_modules/@mcschema/java-1.18.2/lib/Collections.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/assets/Font.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Dimension.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/DimensionType.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/ItemModifier.js","../../node_modules/@mcschema/java-1.18.2/lib/LootContext.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/Biome.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/Carver.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/Decorator.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/DensityFunction.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/ProcessorList.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/Feature.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/NoiseSettings.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/StructureFeature.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/StructureSet.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/SurfaceRule.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/TemplatePool.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/index.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/WorldSettings.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/index.js","../../node_modules/@mcschema/java-1.18.2/lib/index.js"],"sourcesContent":["\"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 collections.register('glyph_provider_type', [\r\n 'bitmap',\r\n 'ttf',\r\n 'legacy_unicode',\r\n ]);\r\n collections.register('mob_category', [\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 ]);\r\n collections.register('cat_texture', [\r\n 'textures/entity/cat/tabby.png',\r\n 'textures/entity/cat/black.png',\r\n 'textures/entity/cat/red.png',\r\n 'textures/entity/cat/siamese.png',\r\n 'textures/entity/cat/british_shorthair.png',\r\n 'textures/entity/cat/calico.png',\r\n 'textures/entity/cat/persian.png',\r\n 'textures/entity/cat/ragdoll.png',\r\n 'textures/entity/cat/white.png',\r\n 'textures/entity/cat/jellie.png',\r\n 'textures/entity/cat/all_black.png'\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 = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n display: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n icon: (0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: (0, 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: (0, core_1.Opt)(StringNode()),\r\n frame: (0, core_1.Opt)(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n announce_to_chat: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n hidden: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: (0, core_1.MapNode)(StringNode(), Reference('advancement_criteria')),\r\n requirements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ListNode)(StringNode() // TODO: add validation\r\n ))),\r\n rewards: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n function: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n player: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n item: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: (0, core_1.Opt)((0, 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: (0, 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: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate'))),\r\n source: (0, core_1.Opt)(EntityPredicate)\r\n },\r\n 'minecraft:enter_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: (0, core_1.Opt)(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: (0, core_1.Opt)(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:fall_from_height': {\r\n start_position: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: (0, 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: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n start_position: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n },\r\n 'minecraft:placed_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, 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: (0, core_1.Opt)(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: (0, 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: (0, 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: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate'))\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: (0, 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: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: (0, core_1.Opt)(Reference('float_bounds'))\r\n },\r\n 'minecraft:used_totem': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:using_item': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: (0, 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) => (0, core_1.ListNode)((0, core_1.NumberNode)({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n parent: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n gui_light: (0, core_1.Opt)(StringNode({ enum: 'gui_light' })),\r\n textures: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), Texture)),\r\n elements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: (0, core_1.NumberEnum)({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n shade: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n faces: (0, core_1.MapNode)(StringNode({ enum: 'direction' }), (0, core_1.ObjectNode)({\r\n texture: Texture,\r\n uv: (0, core_1.Opt)(Vec(4)),\r\n cullface: (0, core_1.Opt)(StringNode({ enum: 'direction' })),\r\n rotation: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tintindex: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'display_position' }), (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n predicate: (0, core_1.MapNode)(StringNode({ enum: 'item_model_predicates' }), (0, 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', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n variants: (0, 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: (0, core_1.ObjectNode)({\r\n multipart: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n when: (0, 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: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n y: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n };\r\n schemas.register('model_variant', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n ...VariantChildren,\r\n weight: (0, core_1.Opt)((0, 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', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n OR: (0, 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.initFontSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initFontSchemas(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('font', (0, core_1.ObjectNode)({\r\n providers: (0, core_1.ListNode)(Reference('glyph_provider'))\r\n }, { context: 'font' }));\r\n schemas.register('glyph_provider', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ enum: 'glyph_provider_type' }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'bitmap': {\r\n file: StringNode({ validator: 'resource', params: { pool: '$texture', suffix: '.png' } }),\r\n height: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n ascent: (0, core_1.NumberNode)({ integer: true }),\r\n chars: (0, core_1.ListNode)(StringNode(), { minLength: 1 })\r\n },\r\n 'ttf': {\r\n file: StringNode({ validator: 'resource', params: { pool: '$texture', suffix: '.png' } }),\r\n size: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n oversample: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n shift: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.NumberNode)(), { minLength: 2, maxLength: 2 })),\r\n skip: (0, core_1.Opt)((0, core_1.StringOrList)(StringNode()))\r\n },\r\n 'legacy_unicode': {\r\n sizes: StringNode(),\r\n template: StringNode()\r\n }\r\n }\r\n }, { context: 'glyph_provider' }), {\r\n default: () => ({\r\n type: 'bitmap',\r\n }),\r\n }));\r\n}\r\nexports.initFontSchemas = initFontSchemas;\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\nconst Font_1 = require(\"./Font\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n (0, BlockDefinition_1.initBlockDefinitionSchemas)(schemas, collections);\r\n (0, Font_1.initFontSchemas)(schemas, collections);\r\n (0, Model_1.initModelSchemas)(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.Tag = exports.InclusiveRange = exports.IntProvider = exports.FloatProvider = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.FunctionCases = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: '#minecraft:infiniburn_overworld',\r\n min_y: 0,\r\n height: 256,\r\n};\r\nexports.DefaultNoiseSettings = {\r\n sea_level: 63,\r\n ore_veins_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n legacy_random_source: 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: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\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 noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => (0, core_1.Opt)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer })),\r\n max: (0, core_1.Opt)((0, 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', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)(Reference('number_provider')),\r\n max: (0, core_1.Opt)(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: (0, 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] = (0, 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 = (0, core_1.ObjectNode)({\r\n type: (0, core_1.Mod)((0, 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 (0, 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: (0, 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: (0, core_1.Opt)((0, 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: (0, 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: (0, 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: (0, core_1.NumberNode)(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)(config),\r\n max_exclusive: (0, core_1.NumberNode)(config)\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n mean: (0, core_1.NumberNode)(),\r\n deviation: (0, core_1.NumberNode)()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n plateau: (0, core_1.NumberNode)()\r\n })\r\n }\r\n });\r\n schemas.register('float_provider', (0, 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: (0, core_1.NumberNode)({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n mean: (0, core_1.NumberNode)(),\r\n deviation: (0, core_1.NumberNode)()\r\n })\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n });\r\n schemas.register('int_provider', (0, exports.IntProvider)());\r\n schemas.register('vertical_anchor', (0, 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: (0, core_1.ObjectNode)({\r\n [t]: (0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n }));\r\n exports.InclusiveRange = (config) => (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)(config),\r\n max_inclusive: (0, core_1.NumberNode)(config)\r\n }, { context: 'range' });\r\n schemas.register('noise_parameters', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n firstOctave: (0, core_1.NumberNode)({ integer: true }),\r\n amplitudes: (0, core_1.ListNode)((0, core_1.NumberNode)())\r\n }, { context: 'noise_parameters' }), {\r\n default: () => ({\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n })\r\n }));\r\n exports.Tag = (config) => (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: config.resource, allowTag: true } }),\r\n change: (v) => {\r\n if (Array.isArray(v) && typeof v[0] === 'string' && !v[0].startsWith('#')) {\r\n return v[0];\r\n }\r\n return undefined;\r\n }\r\n },\r\n {\r\n type: 'list',\r\n node: (0, core_1.ListNode)(config.inlineSchema\r\n ? (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: config.resource } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference(config.inlineSchema)\r\n }\r\n ], { choiceContext: 'tag.list' })\r\n : StringNode({ validator: 'resource', params: { pool: config.resource } })),\r\n change: (v) => {\r\n if (typeof v === 'string' && !v.startsWith('#')) {\r\n return [v];\r\n }\r\n return [];\r\n }\r\n },\r\n ], { choiceContext: 'tag' });\r\n exports.ConditionCases = (entitySourceNode = StringNode({ enum: 'entity_source' })) => ({\r\n 'minecraft:alternative': {\r\n terms: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetY: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetZ: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n looting_multiplier: (0, 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: (0, core_1.ListNode)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n thundering: (0, core_1.Opt)((0, 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: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n bonusMultiplier: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: (0, core_1.Mod)((0, 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: (0, core_1.ListNode)((0, 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: (0, core_1.ListNode)(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: (0, core_1.Opt)((0, exports.Tag)({ resource: '$worldgen/configured_structure_feature' })),\r\n decoration: (0, core_1.Opt)(StringNode({ enum: 'map_decoration' })),\r\n zoom: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n search_radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n skip_existing_chunks: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: (0, core_1.ListNode)(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_contents': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n entries: (0, core_1.ListNode)(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_loot_table': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n lore: (0, core_1.ListNode)(Reference('text_component')),\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_name': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n name: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, 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) => (0, 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) => (0, core_1.ObjectOrPreset)(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n sea_level: 32,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: true,\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 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 noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n },\r\n 'minecraft:end': {\r\n sea_level: 0,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: true,\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 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 noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n sea_level: 63,\r\n ore_veins_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n legacy_random_source: 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: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\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 noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n },\r\n 'minecraft:caves': {\r\n sea_level: 32,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: 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: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\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 noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n sea_level: 0,\r\n ore_veins_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n legacy_random_source: 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: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\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 noise_router: {\r\n barrier: 0,\r\n fluid_level_floodedness: 0,\r\n fluid_level_spread: 0,\r\n lava: 0,\r\n temperature: 0,\r\n vegetation: 0,\r\n continents: 0,\r\n erosion: 0,\r\n depth: 0,\r\n ridges: 0,\r\n initial_density_without_jaggedness: 0,\r\n final_density: {\r\n type: 'minecraft:interpolated',\r\n argument: 'minecraft:overworld/base_3d_noise'\r\n },\r\n vein_toggle: 0,\r\n vein_ridged: 0,\r\n vein_gap: 0,\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\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', (0, core_1.ObjectOrList)(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', (0, core_1.Mod)((0, 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]: (0, 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 StructureSet = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/structure_set' } }),\r\n change: () => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('structure_set'),\r\n change: () => ({})\r\n }\r\n ], { choiceContext: 'structure_set' });\r\n schemas.register('dimension', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, Common_1.DimensionTypePresets)(Reference('dimension_type')),\r\n generator: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n settings: (0, Common_1.NoiseSettingsPresets)(Reference('noise_settings')),\r\n biome_source: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: ['minecraft:overworld', 'minecraft:nether'] } })),\r\n biomes: (0, core_1.Mod)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 62 })),\r\n biomes: (0, Common_1.Tag)({ resource: '$worldgen/biome' })\r\n },\r\n 'minecraft:the_end': {\r\n seed: (0, core_1.NumberNode)({ integer: true })\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: (0, core_1.ObjectNode)({\r\n biome: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n features: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n layers: (0, core_1.ListNode)(Reference('generator_layer')),\r\n structure_overrides: (0, core_1.ListNode)(StructureSet)\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 = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ListNode)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n ultrawarm: (0, core_1.BooleanNode)(),\r\n natural: (0, core_1.BooleanNode)(),\r\n piglin_safe: (0, core_1.BooleanNode)(),\r\n respawn_anchor_works: (0, core_1.BooleanNode)(),\r\n bed_works: (0, core_1.BooleanNode)(),\r\n has_raids: (0, core_1.BooleanNode)(),\r\n has_skylight: (0, core_1.BooleanNode)(),\r\n has_ceiling: (0, core_1.BooleanNode)(),\r\n coordinate_scale: (0, core_1.NumberNode)({ min: 0.00001, max: 30000000 }),\r\n ambient_light: (0, core_1.NumberNode)(),\r\n fixed_time: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n logical_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4064 }),\r\n effects: (0, core_1.Opt)(StringNode({ enum: ['minecraft:overworld', 'minecraft:the_nether', 'minecraft:the_end'] })),\r\n infiniburn: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n min_y: (0, core_1.NumberNode)({ integer: true, min: -2032, max: 2031 }),\r\n height: (0, core_1.NumberNode)({ integer: true, min: 16, max: 4064 })\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) > 2032) {\r\n errors.add(path.push('height'), 'error.min_y_plus_height', 2032);\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', (0, core_1.ObjectOrList)(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: (0, core_1.Opt)((0, core_1.ListNode)(Reference('condition')))\r\n };\r\n schemas.register('function', (0, core_1.Mod)((0, 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]: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: (0, core_1.Opt)((0, 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 (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: (0, core_1.Opt)(Reference('number_provider')),\r\n entries: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 1 }), weightMod)),\r\n quality: (0, core_1.Opt)((0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: (0, 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', (0, core_1.Mod)((0, 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 id: (0, core_1.Opt)(StringNode({ validator: 'uuid' })),\r\n slot: (0, 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 = 9;\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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack_format: (0, core_1.Mod)((0, 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: (0, 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 = (0, 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: (0, core_1.NumberNode)(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max: (0, core_1.Opt)((0, 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: (0, core_1.BooleanNode)(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', (0, core_1.ObjectNode)({\r\n items: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'item' } }))),\r\n tag: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: (0, core_1.Opt)((0, core_1.ListNode)(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', (0, core_1.ObjectNode)({\r\n enchantment: (0, 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', (0, core_1.ObjectNode)({\r\n blocks: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n fluid: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', (0, core_1.ObjectNode)({\r\n position: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_structure_feature' } })),\r\n dimension: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n block: (0, core_1.Opt)(Reference('block_predicate')),\r\n fluid: (0, core_1.Opt)(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', (0, 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', (0, core_1.ObjectNode)({\r\n gamemode: (0, core_1.Opt)(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), (0, core_1.ChoiceNode)([\r\n { type: 'boolean', node: (0, core_1.BooleanNode)(), change: _ => true },\r\n {\r\n type: 'object', node: (0, core_1.MapNode)(StringNode(), (0, core_1.BooleanNode)())\r\n }\r\n ]))),\r\n recipes: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), (0, core_1.BooleanNode)())),\r\n stats: (0, core_1.Opt)((0, core_1.ListNode)(Reference('statistic_predicate'))),\r\n looking_at: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', (0, core_1.ObjectNode)({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n visible: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', (0, 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', (0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: (0, core_1.Opt)(StringNode({ validator: 'team' })),\r\n location: (0, core_1.Opt)(Reference('location_predicate')),\r\n stepping_on: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n flags: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n is_on_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sneaking: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sprinting: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_swimming: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_baby: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n equipment: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n player: (0, core_1.Opt)(Reference('player_predicate')),\r\n vehicle: (0, core_1.Opt)(Reference('entity_predicate')),\r\n passenger: (0, core_1.Opt)(Reference('entity_predicate')),\r\n targeted_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n lightning_bolt: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n blocks_set_on_fire: (0, core_1.Opt)(Reference('int_bounds')),\r\n entity_struck: (0, core_1.Opt)(Reference('entity_predicate'))\r\n })),\r\n fishing_hook: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n in_open_water: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n catType: (0, core_1.Opt)(StringNode({ enum: 'cat_texture' })),\r\n effects: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n is_explosion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_projectile: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_lightning: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_armor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_invulnerability: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n direct_entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', (0, core_1.ObjectNode)({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n type: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.Opt)(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: (0, core_1.ListNode)(StringNode()),\r\n key: (0, 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: (0, core_1.Opt)(StringNode()),\r\n ingredients: (0, core_1.ListNode)(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: (0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.Mod)((0, 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) => (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n values: (0, core_1.ListNode)((0, 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: (0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: (0, 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 schemas.register('advancement_tag', TagBase('$advancement'));\r\n schemas.register('dimension_tag', TagBase('$dimension'));\r\n schemas.register('dimension_type_tag', TagBase('$dimension_type'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('item_modifier_tag', TagBase('$item_modifier'));\r\n schemas.register('loot_table_tag', TagBase('$loot_table'));\r\n schemas.register('predicate_tag', TagBase('$predicate'));\r\n schemas.register('recipe_tag', TagBase('$recipe'));\r\n schemas.register('structure_tag', TagBase('$structure'));\r\n schemas.register('biome_tag', TagBase('$worldgen/biome'));\r\n schemas.register('configured_carver_tag', TagBase('$worldgen/configured_carver'));\r\n schemas.register('configured_decorator_tag', TagBase('$worldgen/configured_decorator'));\r\n schemas.register('configured_feature_tag', TagBase('$worldgen/configured_feature'));\r\n schemas.register('configured_structure_feature_tag', TagBase('$worldgen/configured_structure_feature'));\r\n schemas.register('configured_surface_builder_tag', TagBase('$worldgen/configured_surface_builder'));\r\n schemas.register('density_function_tag', TagBase('$worldgen/density_function'));\r\n schemas.register('noise_tag', TagBase('$worldgen/noise'));\r\n schemas.register('noise_settings_tag', TagBase('$worldgen/noise_settings'));\r\n schemas.register('placed_feature_tag', TagBase('$worldgen/placed_feature'));\r\n schemas.register('processor_list_tag', TagBase('$worldgen/processor_list'));\r\n schemas.register('structure_set_tag', TagBase('$worldgen/structure_set'));\r\n schemas.register('template_pool_tag', TagBase('$worldgen/template_pool'));\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', (0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, core_1.Opt)(StringNode()) /* TODO */,\r\n font: (0, core_1.Opt)(StringNode()),\r\n bold: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n italic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n underlined: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n strikethrough: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n obfuscated: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n insertion: (0, core_1.Opt)(StringNode()),\r\n clickEvent: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('text_component')),\r\n contents: (0, core_1.Opt)(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tag: (0, 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: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n name: (0, core_1.Opt)(StringNode()),\r\n type: (0, core_1.Opt)(StringNode()),\r\n id: (0, core_1.Opt)(StringNode())\r\n })),\r\n contents: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, 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: (0, core_1.Opt)(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n translate: StringNode(),\r\n with: (0, 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: (0, core_1.ObjectNode)({\r\n score: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n separator: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: (0, core_1.Opt)(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: (0, core_1.Opt)(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n separator: (0, 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', (0, core_1.Mod)((0, 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 = exports.MobCategorySpawnSettings = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initBiomeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n exports.MobCategorySpawnSettings = (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n minCount: (0, core_1.NumberNode)({ integer: true }),\r\n maxCount: (0, 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 schemas.register('biome', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n temperature: (0, core_1.NumberNode)(),\r\n downfall: (0, core_1.NumberNode)(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n creature_spawn_probability: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n effects: (0, core_1.ObjectNode)({\r\n sky_color: (0, core_1.NumberNode)({ color: true }),\r\n fog_color: (0, core_1.NumberNode)({ color: true }),\r\n water_color: (0, core_1.NumberNode)({ color: true }),\r\n water_fog_color: (0, core_1.NumberNode)({ color: true }),\r\n grass_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n foliage_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n grass_color_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: (0, core_1.Opt)(StringNode()),\r\n mood_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_delay: (0, core_1.NumberNode)({ integer: true }),\r\n block_search_extent: (0, core_1.NumberNode)({ integer: true }),\r\n offset: (0, core_1.NumberNode)()\r\n })),\r\n additions_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n })),\r\n music: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n min_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n max_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n replace_current_music: (0, core_1.BooleanNode)()\r\n })),\r\n particle: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n options: (0, core_1.ObjectNode)({\r\n type: StringNode()\r\n }),\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }))\r\n }),\r\n spawners: (0, core_1.MapNode)(StringNode({ enum: 'mob_category' }), exports.MobCategorySpawnSettings),\r\n spawn_costs: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n energy_budget: (0, core_1.NumberNode)(),\r\n charge: (0, 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: (0, core_1.MapNode)(StringNode({ enum: ['air', 'liquid'] }), (0, core_1.Mod)((0, Common_1.Tag)({ resource: '$worldgen/configured_carver', inlineSchema: 'configured_carver' }), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: (0, core_1.ListNode)((0, core_1.Mod)((0, Common_1.Tag)({ resource: '$worldgen/placed_feature', inlineSchema: 'placed_feature' }), { category: () => 'predicate' }), { maxLength: 11 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const CanyonConfig = {\r\n vertical_rotation: (0, Common_1.FloatProvider)(),\r\n shape: (0, core_1.ObjectNode)({\r\n distance_factor: (0, Common_1.FloatProvider)(),\r\n thickness: (0, Common_1.FloatProvider)(),\r\n width_smoothness: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n horizontal_radius_factor: (0, Common_1.FloatProvider)(),\r\n vertical_radius_default_factor: (0, core_1.NumberNode)(),\r\n vertical_radius_center_factor: (0, core_1.NumberNode)()\r\n })\r\n };\r\n const CaveConfig = {\r\n horizontal_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n vertical_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n floor_level: (0, Common_1.FloatProvider)({ min: -1, max: 1 }),\r\n };\r\n schemas.register('configured_carver', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: (0, core_1.ObjectNode)({\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n y: Reference('height_provider'),\r\n yScale: (0, Common_1.FloatProvider)(),\r\n lava_level: Reference('vertical_anchor'),\r\n debug_settings: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n debug_mode: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n air_state: (0, core_1.Opt)(Reference('block_state')),\r\n water_state: (0, core_1.Opt)(Reference('block_state')),\r\n lava_state: (0, core_1.Opt)(Reference('block_state')),\r\n barrier_state: (0, core_1.Opt)(Reference('block_state'))\r\n })),\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:canyon': CanyonConfig,\r\n 'minecraft:cave': CaveConfig,\r\n 'minecraft:nether_cave': CaveConfig\r\n },\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('decorator', (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/placement_modifier_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_predicate_filter': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' })\r\n },\r\n 'minecraft:rarity_filter': {\r\n chance: (0, core_1.NumberNode)({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:count_on_every_layer': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:noise_threshold_count': {\r\n noise_level: (0, core_1.NumberNode)(),\r\n below_noise: (0, core_1.NumberNode)({ integer: true }),\r\n above_noise: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:noise_based_count': {\r\n noise_to_count_ratio: (0, core_1.NumberNode)({ integer: true }),\r\n noise_factor: (0, core_1.NumberNode)(),\r\n noise_offset: (0, core_1.Opt)((0, core_1.NumberNode)())\r\n },\r\n 'minecraft:environment_scan': {\r\n direction_of_search: StringNode({ enum: ['up', 'down'] }),\r\n max_steps: (0, core_1.NumberNode)({ integer: true, min: 1, max: 32 }),\r\n target_condition: Reference('block_predicate_worldgen'),\r\n allowed_search_condition: (0, core_1.Opt)(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:heightmap': {\r\n heightmap: StringNode({ enum: 'heightmap_type' })\r\n },\r\n 'minecraft:height_range': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:random_offset': {\r\n xz_spread: (0, Common_1.IntProvider)({ min: -16, max: 16 }),\r\n y_spread: (0, Common_1.IntProvider)({ min: -16, max: 16 }),\r\n },\r\n 'minecraft:surface_relative_threshold_filter': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n min_inclusive: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max_inclusive: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:surface_water_depth_filter': {\r\n max_water_depth: (0, core_1.NumberNode)({ integer: true })\r\n }\r\n }\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDensityFunctionSchemas = exports.DensityFunction = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initDensityFunctionSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n exports.DensityFunction = (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, core_1.NumberNode)(),\r\n change: () => 0\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/density_function' } }),\r\n change: () => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('density_function'),\r\n change: () => ({})\r\n }\r\n ], { choiceContext: 'density_function' }), {\r\n default: () => 0\r\n });\r\n const NoiseParameters = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/noise' } }),\r\n change: () => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('noise_parameters')\r\n }\r\n ], { choiceContext: 'noise_parameters' });\r\n const NoiseRange = (0, core_1.NumberNode)({ min: -1000000, max: 1000000 });\r\n const YRange = (0, core_1.NumberNode)({ integer: true, min: -2032 * 2, max: 2031 * 2 });\r\n schemas.register('density_function', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/density_function_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:abs': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:add': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:blend_density': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:cache_2d': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:cache_all_in_cell': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:cache_once': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:clamp': {\r\n input: exports.DensityFunction,\r\n min: NoiseRange,\r\n max: NoiseRange,\r\n },\r\n 'minecraft:constant': {\r\n argument: (0, core_1.NumberNode)(),\r\n },\r\n 'minecraft:cube': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:flat_cache': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:half_negative': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:interpolated': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:max': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:min': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:mul': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:noise': {\r\n noise: NoiseParameters,\r\n xz_scale: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n },\r\n 'minecraft:quarter_negative': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:range_choice': {\r\n input: exports.DensityFunction,\r\n min_inclusive: NoiseRange,\r\n max_exclusive: NoiseRange,\r\n when_in_range: exports.DensityFunction,\r\n when_out_of_range: exports.DensityFunction,\r\n },\r\n 'minecraft:shift': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:shift_a': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:shift_b': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:shifted_noise': {\r\n noise: NoiseParameters,\r\n xz_scale: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n shift_x: exports.DensityFunction,\r\n shift_y: exports.DensityFunction,\r\n shift_z: exports.DensityFunction,\r\n },\r\n 'minecraft:slide': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:spline': {\r\n spline: Reference('cubic_spline'),\r\n min_value: NoiseRange,\r\n max_value: NoiseRange,\r\n },\r\n 'minecraft:square': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:squeeze': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:terrain_shaper_spline': {\r\n spline: StringNode({ enum: ['offset', 'factor', 'jaggedness'] }),\r\n min_value: NoiseRange,\r\n max_value: NoiseRange,\r\n continentalness: exports.DensityFunction,\r\n erosion: exports.DensityFunction,\r\n weirdness: exports.DensityFunction,\r\n },\r\n 'minecraft:weird_scaled_sampler': {\r\n rarity_value_mapper: StringNode({ enum: ['type_1', 'type_2'] }),\r\n noise: NoiseParameters,\r\n input: exports.DensityFunction,\r\n },\r\n 'minecraft:y_clamped_gradient': {\r\n from_y: YRange,\r\n to_y: YRange,\r\n from_value: NoiseRange,\r\n to_value: NoiseRange,\r\n },\r\n }\r\n }, { context: 'density_function', disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:noise',\r\n noise: 'minecraft:cave_entrance',\r\n xz_scale: 0.75,\r\n y_scale: 0.5\r\n })\r\n }));\r\n schemas.register('cubic_spline', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, core_1.NumberNode)()\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n coordinate: exports.DensityFunction,\r\n points: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n location: (0, core_1.NumberNode)(),\r\n derivative: (0, core_1.NumberNode)(),\r\n value: Reference('cubic_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.initDensityFunctionSchemas = initDensityFunctionSchemas;\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 = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n processors: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.NumberNode)()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:protected_blocks': {\r\n value: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } })\r\n },\r\n 'minecraft:rule': {\r\n rules: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n position_predicate: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n max_dist: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n min_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n max_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n };\r\n schemas.register('pos_rule_test', (0, 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', (0, 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: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:tag_match': {\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }\r\n }\r\n }, { context: 'rule_test', disableSwitchContext: true }));\r\n}\r\nexports.initProcessorListSchemas = initProcessorListSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const ConfiguredFeature = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n const PlacedFeature = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('placed_feature')\r\n }\r\n ], { choiceContext: 'placed_feature' });\r\n const RandomPatchConfig = {\r\n tries: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 })),\r\n xz_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n y_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n feature: PlacedFeature,\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 8 }),\r\n half_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4 }),\r\n targets: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n };\r\n const TargetBlockState = (0, core_1.ObjectNode)({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n });\r\n const OreConfig = {\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n targets: (0, core_1.ListNode)(TargetBlockState)\r\n };\r\n const VegetationPatchConfig = {\r\n surface: StringNode({ enum: 'cave_surface' }),\r\n depth: (0, Common_1.IntProvider)({ min: 1, max: 128 }),\r\n vertical_range: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n extra_edge_column_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n vegetation_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n xz_radius: (0, Common_1.IntProvider)(),\r\n replaceable: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n ground_state: Reference('block_state_provider'),\r\n vegetation_feature: PlacedFeature\r\n };\r\n schemas.register('configured_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: (0, core_1.ObjectNode)({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: (0, Common_1.IntProvider)({ min: 0, max: 3 }),\r\n height: (0, 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: (0, core_1.BooleanNode)(),\r\n layers: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n height: (0, Common_1.IntProvider)({ min: 0 }),\r\n provider: Reference('block_state_provider')\r\n }))\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n rim_size: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 1, max: 512 }),\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n max_stalagmite_stalactite_height_diff: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n height_deviation: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n density: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n wetness: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: (0, core_1.BooleanNode)(),\r\n exit: (0, core_1.Opt)(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n crystal_beam_target: (0, core_1.Opt)(Reference('block_pos')),\r\n spikes: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n centerX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n centerZ: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n height: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n guarded: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: (0, 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: (0, 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: (0, core_1.ListNode)(Reference('block_state')),\r\n cannot_replace: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n invalid_blocks: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } })\r\n }),\r\n layers: (0, core_1.ObjectNode)({\r\n filling: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n inner_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n middle_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n outer_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n }),\r\n crack: (0, core_1.ObjectNode)({\r\n generate_crack_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n base_crack_size: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 5 })),\r\n crack_point_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 10 })),\r\n }),\r\n noise_multiplier: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_potential_placements_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n outer_wall_distance: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n distribution_points: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n point_offset: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 0, max: 10 })),\r\n min_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n invalid_blocks_threshold: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:glow_lichen': {\r\n search_range: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n can_place_on_floor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_ceiling: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_wall: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_be_placed_on: (0, Common_1.Tag)({ resource: 'block' })\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:ice_patch': DiskConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n fluid: Reference('block_state_provider'),\r\n barrier: Reference('block_state_provider')\r\n },\r\n 'minecraft:large_dripstone': {\r\n floor_to_ceiling_search_range: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1, max: 512 })),\r\n column_radius: (0, Common_1.IntProvider)({ min: 0, max: 60 }),\r\n height_scale: (0, Common_1.FloatProvider)({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n stalactite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n wind_speed: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n min_radius_for_wind: (0, core_1.NumberNode)({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: (0, core_1.NumberNode)({ min: 0, max: 5 })\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider'),\r\n spread_width: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n spread_height: (0, core_1.NumberNode)({ integer: true, min: 1 })\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_directional_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_spread_radius2: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_spread_radius3: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n },\r\n 'minecraft:random_patch': RandomPatchConfig,\r\n 'minecraft:random_boolean_selector': {\r\n feature_false: PlacedFeature,\r\n feature_true: PlacedFeature\r\n },\r\n 'minecraft:random_selector': {\r\n features: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n feature: PlacedFeature\r\n })),\r\n default: PlacedFeature\r\n },\r\n 'minecraft:replace_single_block': {\r\n targets: (0, core_1.ListNode)(TargetBlockState)\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 }),\r\n allowed_vertical_water_for_tree: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_replaceable: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n root_state_provider: Reference('block_state_provider'),\r\n hanging_root_state_provider: Reference('block_state_provider'),\r\n allowed_tree_position: Reference('block_predicate_worldgen'),\r\n feature: PlacedFeature\r\n },\r\n 'minecraft:scattered_ore': OreConfig,\r\n 'minecraft:sea_pickle': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:seagrass': {\r\n probability: (0, 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: (0, Common_1.Tag)({ resource: '$worldgen/placed_feature', inlineSchema: 'placed_feature' }),\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: (0, core_1.NumberNode)({ integer: true }),\r\n hole_count: (0, core_1.NumberNode)({ integer: true }),\r\n requires_block_below: (0, core_1.BooleanNode)(),\r\n valid_blocks: (0, Common_1.Tag)({ resource: 'block' })\r\n },\r\n 'minecraft:tree': {\r\n ignore_vines: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n force_dirt: (0, core_1.Opt)((0, 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: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: (0, core_1.NumberNode)({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: (0, 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: (0, Common_1.IntProvider)({ min: 1, max: 64 }),\r\n min_height_for_leaves: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 }))\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n offset: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: (0, Common_1.IntProvider)({ min: 1, max: 512 }),\r\n leaf_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: (0, core_1.ListNode)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n },\r\n 'minecraft:twisting_vines': {\r\n spread_width: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n spread_height: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n max_height: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n },\r\n 'minecraft:underwater_magma': {\r\n floor_search_range: (0, core_1.NumberNode)({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:vegetation_patch': VegetationPatchConfig,\r\n 'minecraft:waterlogged_vegetation_patch': VegetationPatchConfig\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:tree',\r\n config: {\r\n minimum_size: {\r\n type: 'minecraft:two_layers_feature_size'\r\n },\r\n trunk_placer: {\r\n type: 'minecraft:straight_trunk_placer',\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n type: 'minecraft:blob_foliage_placer',\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('placed_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n feature: ConfiguredFeature,\r\n placement: (0, core_1.ListNode)(Reference('decorator'))\r\n }, { context: 'placed_feature' }), {\r\n default: () => ({\r\n feature: 'minecraft:oak',\r\n placement: [\r\n {\r\n type: 'minecraft:count',\r\n count: 4\r\n },\r\n {\r\n type: 'minecraft:in_square'\r\n },\r\n {\r\n type: 'minecraft:heightmap',\r\n heightmap: 'OCEAN_FLOOR'\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('feature_size', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 81 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n upper_limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n middle_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n noise: Reference('noise_parameters'),\r\n scale: (0, core_1.Mod)((0, core_1.NumberNode)({ min: Number.MIN_VALUE }), { default: () => 1 })\r\n };\r\n schemas.register('block_state_provider', (0, core_1.Mod)((0, 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: (0, Common_1.InclusiveRange)({ integer: true, min: 1, max: 64 }),\r\n slow_noise: Reference('noise_parameters'),\r\n slow_scale: (0, core_1.Mod)((0, core_1.NumberNode)({ min: Number.MIN_VALUE }), { default: () => 1 }),\r\n states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:noise_threshold_provider': {\r\n ...NoiseProvider,\r\n threshold: (0, core_1.NumberNode)({ min: -1, max: 1 }),\r\n high_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n default_state: Reference('block_state'),\r\n low_states: (0, core_1.ListNode)(Reference('block_state')),\r\n high_states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:noise_provider': {\r\n ...NoiseProvider,\r\n states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:randomized_int_state_provider': {\r\n property: StringNode(),\r\n values: (0, 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: (0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n data: Reference('block_state')\r\n }), {\r\n default: () => ({\r\n data: {}\r\n })\r\n }))\r\n }\r\n }\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_state_provider'\r\n })\r\n }));\r\n const Offset = {\r\n offset: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 }))\r\n };\r\n schemas.register('block_predicate_worldgen', (0, core_1.Mod)((0, 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: (0, core_1.ListNode)(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:any_of': {\r\n predicates: (0, core_1.ListNode)(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:has_sturdy_face': {\r\n ...Offset,\r\n direction: StringNode({ enum: 'direction' })\r\n },\r\n 'minecraft:inside_world_bounds': {\r\n ...Offset,\r\n },\r\n 'minecraft:matching_block_tag': {\r\n ...Offset,\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n },\r\n 'minecraft:matching_blocks': {\r\n ...Offset,\r\n blocks: (0, Common_1.Tag)({ resource: 'block' })\r\n },\r\n 'minecraft:matching_fluids': {\r\n ...Offset,\r\n fluids: (0, Common_1.Tag)({ resource: 'fluid' })\r\n },\r\n 'minecraft:not': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:would_survive': {\r\n ...Offset,\r\n state: Reference('block_state')\r\n }\r\n }\r\n }, { context: 'block_predicate' }), {\r\n default: () => ({\r\n type: 'minecraft:true'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nconst DensityFunction_1 = require(\"./DensityFunction\");\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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n sea_level: (0, core_1.NumberNode)({ integer: true }),\r\n disable_mob_generation: (0, core_1.BooleanNode)(),\r\n aquifers_enabled: (0, core_1.BooleanNode)(),\r\n ore_veins_enabled: (0, core_1.BooleanNode)(),\r\n legacy_random_source: (0, core_1.BooleanNode)(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: (0, core_1.ObjectNode)({\r\n min_y: (0, core_1.NumberNode)({ integer: true, min: -2048, max: 2047 }),\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n size_horizontal: (0, core_1.NumberNode)({ integer: true }),\r\n size_vertical: (0, core_1.NumberNode)({ integer: true }),\r\n sampling: (0, core_1.ObjectNode)({\r\n xz_scale: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n xz_factor: (0, core_1.NumberNode)(),\r\n y_factor: (0, 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 noise_router: (0, core_1.ObjectNode)({\r\n barrier: DensityFunction_1.DensityFunction,\r\n fluid_level_floodedness: DensityFunction_1.DensityFunction,\r\n fluid_level_spread: DensityFunction_1.DensityFunction,\r\n lava: DensityFunction_1.DensityFunction,\r\n temperature: DensityFunction_1.DensityFunction,\r\n vegetation: DensityFunction_1.DensityFunction,\r\n continents: DensityFunction_1.DensityFunction,\r\n erosion: DensityFunction_1.DensityFunction,\r\n depth: DensityFunction_1.DensityFunction,\r\n ridges: DensityFunction_1.DensityFunction,\r\n initial_density_without_jaggedness: DensityFunction_1.DensityFunction,\r\n final_density: DensityFunction_1.DensityFunction,\r\n vein_toggle: DensityFunction_1.DensityFunction,\r\n vein_ridged: DensityFunction_1.DensityFunction,\r\n vein_gap: DensityFunction_1.DensityFunction,\r\n }),\r\n surface_rule: Reference('material_rule'),\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', (0, core_1.ObjectNode)({\r\n target: (0, core_1.NumberNode)(),\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n offset: (0, core_1.NumberNode)({ integer: true })\r\n }));\r\n schemas.register('generator_layer', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: (0, 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', (0, core_1.Mod)((0, 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', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, core_1.NumberNode)()\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n coordinate: (0, core_1.Mod)(StringNode({ enum: ['continents', 'erosion', 'weirdness', 'ridges'] }), { default: () => 'continents' }),\r\n points: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n location: (0, core_1.NumberNode)(),\r\n derivative: (0, 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\nconst Common_1 = require(\"../Common\");\r\nconst Biome_1 = require(\"./Biome\");\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: (0, core_1.NumberNode)({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n biomes: (0, Common_1.Tag)({ resource: '$worldgen/biome' }),\r\n adapt_noise: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n spawn_overrides: (0, core_1.MapNode)(StringNode({ enum: 'mob_category' }), (0, core_1.ObjectNode)({\r\n bounding_box: StringNode({ enum: ['piece', 'full'] }),\r\n spawns: Biome_1.MobCategorySpawnSettings,\r\n })),\r\n config: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n cluster_probability: (0, 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: (0, core_1.Opt)((0, 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.initStructureSetSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initStructureSetSchemas(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('structure_set', (0, core_1.ObjectNode)({\r\n structures: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n structure: (0, Common_1.Tag)({ resource: '$worldgen/configured_structure_feature' }),\r\n weight: (0, core_1.NumberNode)({ integer: true, min: 1 })\r\n })),\r\n placement: Reference('structure_placement')\r\n }, { context: 'structure_set' }));\r\n schemas.register('structure_placement', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_placement' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:concentric_rings': {\r\n distance: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n spread: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n count: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4095 })\r\n },\r\n 'minecraft:random_spread': {\r\n spread_type: (0, core_1.Opt)(StringNode({ enum: ['linear', 'triangular'] })),\r\n spacing: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n separation: (0, core_1.Mod)((0, 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: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n locate_offset: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 }))\r\n }\r\n }\r\n }, { context: 'structure_placement' }), {\r\n default: () => ({\r\n type: 'minecraft:random_spread',\r\n spacing: 10,\r\n separation: 5,\r\n salt: Math.floor(Math.random() * 2147483647)\r\n })\r\n }));\r\n}\r\nexports.initStructureSetSchemas = initStructureSetSchemas;\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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.NumberNode)(),\r\n max_threshold: (0, core_1.NumberNode)()\r\n },\r\n 'minecraft:not': {\r\n invert: Reference('material_condition')\r\n },\r\n 'minecraft:stone_depth': {\r\n offset: (0, core_1.NumberNode)({ integer: true }),\r\n surface_type: StringNode({ enum: 'cave_surface' }),\r\n add_surface_depth: (0, core_1.BooleanNode)(),\r\n secondary_depth_range: (0, core_1.NumberNode)({ integer: true }),\r\n },\r\n 'minecraft:vertical_gradient': {\r\n random_name: StringNode(),\r\n true_at_and_below: Reference('vertical_anchor'),\r\n false_at_and_above: Reference('vertical_anchor'),\r\n },\r\n 'minecraft:water': {\r\n offset: (0, core_1.NumberNode)({ integer: true }),\r\n surface_depth_multiplier: (0, core_1.NumberNode)({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: (0, core_1.BooleanNode)()\r\n },\r\n 'minecraft:y_above': {\r\n anchor: Reference('vertical_anchor'),\r\n surface_depth_multiplier: (0, core_1.NumberNode)({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n element_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_pool_element' } }),\r\n projection: StringNode({ enum: ['rigid', 'terrain_matching'] }),\r\n [core_1.Switch]: [{ push: 'element_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:feature_pool_element': {\r\n feature: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n 'minecraft:legacy_single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n },\r\n 'minecraft:list_pool_element': {\r\n elements: (0, 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 DensityFunction_1 = require(\"./DensityFunction\");\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 StructureSet_1 = require(\"./StructureSet\");\r\nconst SurfaceRule_1 = require(\"./SurfaceRule\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n // `ProcessorList.ts`, `DensityFunction.ts`, and `Biome.ts` have exports. They should be initialized first. \r\n (0, ProcessorList_1.initProcessorListSchemas)(schemas, collections);\r\n (0, DensityFunction_1.initDensityFunctionSchemas)(schemas, collections);\r\n (0, Biome_1.initBiomeSchemas)(schemas, collections);\r\n (0, Carver_1.initCarverSchemas)(schemas, collections);\r\n (0, Decorator_1.initDecoratorSchemas)(schemas, collections);\r\n (0, Feature_1.initFeatureSchemas)(schemas, collections);\r\n (0, NoiseSettings_1.initNoiseSettingsSchemas)(schemas, collections);\r\n (0, StructureFeature_1.initStructureFeatureSchemas)(schemas, collections);\r\n (0, StructureSet_1.initStructureSetSchemas)(schemas, collections);\r\n (0, SurfaceRule_1.initSurfaceRuleSchemas)(schemas, collections);\r\n (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n generate_features: (0, core_1.BooleanNode)(),\r\n bonus_chest: (0, core_1.BooleanNode)(),\r\n seed: (0, core_1.NumberNode)({ integer: true }),\r\n dimensions: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:overworld\"\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:nether\"\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst ItemModifier_1 = require(\"./ItemModifier\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n (0, Common_1.initCommonSchemas)(schemas, collections);\r\n (0, Advancement_1.initAdvancementSchemas)(schemas, collections);\r\n (0, assets_1.initAssetsSchemas)(schemas, collections);\r\n (0, Condition_1.initConditionSchemas)(schemas, collections);\r\n (0, DimensionType_1.initDimensionTypeSchemas)(schemas, collections);\r\n (0, Dimension_1.initDimensionSchemas)(schemas, collections);\r\n (0, ItemModifier_1.initItemModifierSchemas)(schemas, collections);\r\n (0, LootTable_1.initLootTableSchemas)(schemas, collections);\r\n (0, PackMcmeta_1.initPackMcmetaSchemas)(schemas, collections);\r\n (0, Predicates_1.initPredicatesSchemas)(schemas, collections);\r\n (0, Recipe_1.initRecipeSchemas)(schemas, collections);\r\n (0, Tags_1.initTagsSchemas)(schemas, collections);\r\n (0, TextComponent_1.initTextComponentSchemas)(schemas, collections);\r\n (0, worldgen_1.initWorldgenSchemas)(schemas, collections);\r\n (0, 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 var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\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.prototype.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 = exports.lootContext = 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 (0, 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 (0, schemas_1.initSchemas)(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n"],"names":["core_1","require$$0","require$$1","require$$2","Common_1","ProcessorList_1","DensityFunction_1","Biome_1","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","this"],"mappings":"+1BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAI,CAAE,EACrC,GAAA,gBAAG,OAC1B,YAAyB,EAAa,CAClC,EAAY,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,2BACR,CAAK,EACD,EAAY,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,SACR,CAAK,EACD,EAAY,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,MACR,CAAK,EACD,EAAY,SAAS,WAAY,CAC7B,WACA,WACA,YACA,WACR,CAAK,EACD,EAAY,SAAS,gBAAiB,CAClC,OACA,SACA,gBACA,eACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,eACA,OACA,SACA,eACR,CAAK,EACD,EAAY,SAAS,iCAAkC,CACnD,gCACA,sCACA,qBACR,CAAK,EACD,EAAY,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,cACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,SACR,CAAK,EACD,EAAY,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,iBACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,WACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,QACA,UACA,aACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,kBACR,CAAK,EACD,EAAY,SAAS,kBAAmB,CACpC,MACA,QACR,CAAK,EACD,EAAY,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,iBACR,CAAK,EACD,EAAY,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,QACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,QACA,SACA,UACA,aACA,SACA,OACA,OACA,OACA,aACA,OACA,SACA,OACA,QACA,QACA,MACA,OACR,CAAK,EACD,EAAY,SAAS,eAAgB,CACjC,QACA,SACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,OACA,KACA,QACA,OACA,QACA,MACR,CAAK,EACD,EAAY,SAAS,OAAQ,CACzB,IACA,IACA,GACR,CAAK,EACD,EAAY,SAAS,mBAAoB,CACrC,wBACA,uBACA,wBACA,uBACA,MACA,OACA,SACA,OACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,QACA,MACR,CAAK,EA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"} \ No newline at end of file diff --git a/assets/index.64d29f63.js b/assets/index.abe095be.js similarity index 99% rename from assets/index.64d29f63.js rename to assets/index.abe095be.js index 8faace39..c7a83605 100644 --- a/assets/index.64d29f63.js +++ b/assets/index.abe095be.js @@ -1,2 +1,2 @@ -var Ue=Object.defineProperty,Ve=Object.defineProperties;var Ge=Object.getOwnPropertyDescriptors;var ze=Object.getOwnPropertySymbols;var He=Object.prototype.hasOwnProperty,Ke=Object.prototype.propertyIsEnumerable;var Re=(o,t,e)=>t in o?Ue(o,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):o[t]=e,g=(o,t)=>{for(var e in t||(t={}))He.call(t,e)&&Re(o,e,t[e]);if(ze)for(var e of ze(t))Ke.call(t,e)&&Re(o,e,t[e]);return o},A=(o,t)=>Ve(o,Ge(t));import{v as w,u as oe}from"./index.41a3dfd7.js";function Xe(o,t){return t.forEach(function(e){e&&typeof e!="string"&&!Array.isArray(e)&&Object.keys(e).forEach(function(r){if(r!=="default"&&!(r in o)){var d=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(o,r,d.get?d:{enumerable:!0,get:function(){return e[r]}})}})}),Object.freeze(Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}))}var H={},ae={};Object.defineProperty(ae,"__esModule",{value:!0});ae.initCollections=void 0;function Ze(o){o.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"]),o.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"]),o.register("slot",["mainhand","offhand","head","chest","legs","feet"]),o.register("gamemode",["survival","creative","adventure","spectator"]),o.register("entity_source",["this","killer","direct_killer","killer_player"]),o.register("copy_source",["block_entity","this","killer","killer_player"]),o.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),o.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"]),o.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"]),o.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"]),o.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mountain","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end","underground"]),o.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),o.register("generation_step",["air","liquid"]),o.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"]),o.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"]),o.register("dye_color",["white","orange","magenta","light_blue","yellow","lime","pink","gray","light_gray","cyan","purple","blue","brown","green","red","black"]),o.register("cave_surface",["floor","ceiling"]),o.register("direction",["down","up","north","east","south","west"]),o.register("axis",["x","y","z"]),o.register("display_position",["firstperson_righthand","firstperson_lefthand","thirdperson_righthand","thirdperson_lefthand","gui","head","ground","fixed"]),o.register("gui_light",["front","side"]),o.register("item_model_predicates",["angle","blocking","broken","cast","charged","cooldown","custom_model_data","damage","damaged","firework","lefthanded","pull","pulling","throwing","time"]),o.register("glyph_provider_type",["bitmap","ttf","legacy_unicode"]),o.register("cat_texture",["textures/entity/cat/tabby.png","textures/entity/cat/black.png","textures/entity/cat/red.png","textures/entity/cat/siamese.png","textures/entity/cat/british_shorthair.png","textures/entity/cat/calico.png","textures/entity/cat/persian.png","textures/entity/cat/ragdoll.png","textures/entity/cat/white.png","textures/entity/cat/jellie.png","textures/entity/cat/all_black.png"])}ae.initCollections=Ze;var ce={},de={};Object.defineProperty(de,"__esModule",{value:!0});de.initAdvancementSchemas=void 0;const s=w;function Ye(o,t){const e=s.Reference.bind(void 0,o),r=s.StringNode.bind(void 0,t),d=(0,s.ChoiceNode)([{type:"object",node:(0,s.Opt)(e("entity_predicate")),change:n=>{var a,l;return(l=(a=n[0])===null||a===void 0?void 0:a.predicate)!==null&&l!==void 0?l:{}}},{type:"list",node:(0,s.ListNode)(e("condition")),change:n=>[{condition:"minecraft:entity_properties",predicate:n}]}],{context:"conditions"});o.register("advancement",(0,s.Mod)((0,s.ObjectNode)({display:(0,s.Opt)((0,s.Mod)((0,s.ObjectNode)({icon:(0,s.ObjectNode)({item:r({validator:"resource",params:{pool:"item"}}),nbt:(0,s.Opt)(r({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:e("text_component"),description:e("text_component"),background:(0,s.Opt)(r()),frame:(0,s.Opt)(r({enum:["task","challenge","goal"]})),show_toast:(0,s.Opt)((0,s.BooleanNode)()),announce_to_chat:(0,s.Opt)((0,s.BooleanNode)()),hidden:(0,s.Opt)((0,s.BooleanNode)())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:(0,s.Opt)(r({validator:"resource",params:{pool:"$advancement"}})),criteria:(0,s.MapNode)(r(),e("advancement_criteria")),requirements:(0,s.Opt)((0,s.ListNode)((0,s.ListNode)(r()))),rewards:(0,s.Opt)((0,s.ObjectNode)({function:(0,s.Opt)(r({validator:"resource",params:{pool:"$function"}})),loot:(0,s.Opt)((0,s.ListNode)(r({validator:"resource",params:{pool:"$loot_table"}}))),recipes:(0,s.Opt)((0,s.ListNode)(r({validator:"resource",params:{pool:"$recipe"}}))),experience:(0,s.Opt)((0,s.NumberNode)({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),o.register("advancement_criteria",(0,s.ObjectNode)({trigger:r({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:(0,s.Opt)((0,s.ObjectNode)({player:(0,s.Mod)(d,{enabled:n=>n.pop().push("trigger").get()!=="minecraft:impossible"}),[s.Switch]:["pop",{push:"trigger"}],[s.Case]:{"minecraft:bee_nest_destroyed":{block:(0,s.Opt)(r({validator:"resource",params:{pool:"block"}})),num_bees_inside:(0,s.Opt)((0,s.NumberNode)({integer:!0})),item:(0,s.Opt)(e("item_predicate"))},"minecraft:bred_animals":{parent:d,partner:d,child:d},"minecraft:brewed_potion":{potion:(0,s.Opt)(r({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:(0,s.Opt)(r({validator:"resource",params:{pool:"$dimension"}})),to:(0,s.Opt)(r({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:(0,s.Opt)((0,s.ListNode)(d))},"minecraft:construct_beacon":{level:e("int_bounds")},"minecraft:consume_item":{item:(0,s.Opt)(e("item_predicate"))},"minecraft:cured_zombie_villager":{villager:d,zombie:d},"minecraft:effects_changed":{effects:(0,s.Opt)((0,s.MapNode)(r({validator:"resource",params:{pool:"mob_effect"}}),e("status_effect_predicate"))),source:(0,s.Opt)(d)},"minecraft:enter_block":{block:(0,s.Opt)(r({validator:"resource",params:{pool:"block"}})),state:(0,s.Opt)((0,s.MapNode)(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:e("int_bounds"),item:(0,s.Opt)(e("item_predicate"))},"minecraft:entity_hurt_player":{damage:(0,s.Opt)(e("damage_predicate"))},"minecraft:entity_killed_player":{entity:d,killing_blow:(0,s.Opt)(e("damage_source_predicate"))},"minecraft:fall_from_height":{start_position:(0,s.Opt)(e("location_predicate")),distance:(0,s.Opt)(e("distance_predicate"))},"minecraft:filled_bucket":{item:(0,s.Opt)(e("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:d,item:(0,s.Opt)(e("item_predicate"))},"minecraft:hero_of_the_village":{location:(0,s.Opt)(e("location_predicate"))},"minecraft:inventory_changed":{slots:(0,s.Opt)((0,s.ObjectNode)({empty:e("int_bounds"),occupied:e("int_bounds"),full:e("int_bounds")})),items:(0,s.Opt)((0,s.ListNode)(e("item_predicate")))},"minecraft:item_durability_changed":{delta:e("int_bounds"),durability:e("int_bounds"),item:(0,s.Opt)(e("item_predicate"))},"minecraft:item_used_on_block":{item:(0,s.Opt)(e("item_predicate")),location:(0,s.Opt)(e("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:e("int_bounds"),victims:(0,s.Opt)((0,s.ListNode)(d))},"minecraft:levitation":{distance:(0,s.Opt)(e("distance_predicate")),duration:e("int_bounds")},"minecraft:lightning_strike":{lightning:d,bystander:d},"minecraft:location":{location:(0,s.Opt)(e("location_predicate"))},"minecraft:nether_travel":{start_position:(0,s.Opt)(e("location_predicate")),distance:(0,s.Opt)(e("distance_predicate"))},"minecraft:placed_block":{block:(0,s.Opt)(r({validator:"resource",params:{pool:"block"}})),state:(0,s.Opt)((0,s.MapNode)(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:(0,s.Opt)(e("item_predicate")),location:(0,s.Opt)(e("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:r({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:(0,s.Opt)(e("damage_predicate")),entity:d},"minecraft:player_interacted_with_entity":{item:(0,s.Opt)(e("item_predicate")),entity:d},"minecraft:player_killed_entity":{entity:d,killing_blow:(0,s.Opt)(e("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:r({validator:"resource",params:{pool:"$recipe"}})},"minecraft:ride_entity_in_lava":{start_position:(0,s.Opt)(e("location_predicate")),distance:(0,s.Opt)(e("distance_predicate"))},"minecraft:slept_in_bed":{location:(0,s.Opt)(e("location_predicate"))},"minecraft:slide_down_block":{block:(0,s.Opt)(r({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:(0,s.Opt)(e("item_predicate"))},"minecraft:summoned_entity":{entity:d},"minecraft:tame_animal":{entity:d},"minecraft:target_hit":{projectile:d,shooter:d,signal_strength:e("int_bounds")},"minecraft:thrown_item_picked_up_by_entity":{entity:d,item:(0,s.Opt)(e("item_predicate"))},"minecraft:used_ender_eye":{distance:(0,s.Opt)(e("float_bounds"))},"minecraft:used_totem":{item:(0,s.Opt)(e("item_predicate"))},"minecraft:using_item":{item:(0,s.Opt)(e("item_predicate"))},"minecraft:villager_trade":{villager:d,item:(0,s.Opt)(e("item_predicate"))},"minecraft:voluntary_exile":{location:(0,s.Opt)(e("location_predicate"))}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))}de.initAdvancementSchemas=Ye;var se={},le={};Object.defineProperty(le,"__esModule",{value:!0});le.initModelSchemas=void 0;const N=w;function Je(o,t){N.Reference.bind(void 0,o);const e=N.StringNode.bind(void 0,t),r=(n,a,l)=>(0,N.ListNode)((0,N.NumberNode)({min:a,max:l}),{minLength:n,maxLength:n}),d=(0,N.ChoiceNode)([{type:"alias",match:n=>typeof n=="string"&&n.startsWith("#"),node:e(),change:n=>typeof n=="string"?`#${n}`:"#0"},{type:"reference",match:n=>typeof n=="string",node:e({validator:"resource",params:{pool:"$texture"}}),change:n=>typeof n=="string"?n.replace(/^#/,""):""}],{choiceContext:"texture"});o.register("model",(0,N.Mod)((0,N.ObjectNode)({parent:(0,N.Opt)(e({validator:"resource",params:{pool:"$model"}})),ambientocclusion:(0,N.Opt)((0,N.BooleanNode)()),gui_light:(0,N.Opt)(e({enum:"gui_light"})),textures:(0,N.Opt)((0,N.MapNode)(e(),d)),elements:(0,N.Opt)((0,N.ListNode)((0,N.ObjectNode)({from:r(3,-16,32),to:r(3,-16,32),rotation:(0,N.Opt)((0,N.ObjectNode)({origin:r(3),axis:e({enum:"axis"}),angle:(0,N.NumberEnum)({values:[-45,-22.5,0,22.5,45]}),rescale:(0,N.Opt)((0,N.BooleanNode)())})),shade:(0,N.Opt)((0,N.BooleanNode)()),faces:(0,N.MapNode)(e({enum:"direction"}),(0,N.ObjectNode)({texture:d,uv:(0,N.Opt)(r(4)),cullface:(0,N.Opt)(e({enum:"direction"})),rotation:(0,N.Opt)((0,N.NumberNode)({integer:!0})),tintindex:(0,N.Opt)((0,N.NumberNode)({integer:!0}))}))},{context:"model_element"}))),display:(0,N.Opt)((0,N.MapNode)(e({enum:"display_position"}),(0,N.ObjectNode)({rotation:r(3),translation:r(3,-80,80),scale:r(3,-4,4)},{context:"item_transform"}))),overrides:(0,N.Opt)((0,N.ListNode)((0,N.ObjectNode)({predicate:(0,N.MapNode)(e({enum:"item_model_predicates"}),(0,N.NumberNode)()),model:e({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))}le.initModelSchemas=Je;var me={};Object.defineProperty(me,"__esModule",{value:!0});me.initBlockDefinitionSchemas=void 0;const k=w;function Qe(o,t){const e=k.Reference.bind(void 0,o),r=k.StringNode.bind(void 0,t);o.register("block_definition",(0,k.Mod)((0,k.ChoiceNode)([{type:"variants",match:n=>n.variants!==void 0,node:(0,k.ObjectNode)({variants:(0,k.MapNode)(r(),e("model_variant"))}),change:n=>({variants:{"":{}}})},{type:"multipart",match:n=>n.multipart!==void 0,node:(0,k.ObjectNode)({multipart:(0,k.ListNode)((0,k.ObjectNode)({when:(0,k.Opt)(e("multipart_condition")),apply:e("model_variant")}))}),change:n=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const d={model:r({validator:"resource",params:{pool:"$model"}}),x:(0,k.Opt)((0,k.NumberEnum)({integer:!0,values:[0,90,180,270]})),y:(0,k.Opt)((0,k.NumberEnum)({integer:!0,values:[0,90,180,270]})),uvlock:(0,k.Opt)((0,k.BooleanNode)())};o.register("model_variant",(0,k.ChoiceNode)([{type:"object",node:(0,k.ObjectNode)(d),change:n=>Array.isArray(n)&&n.length>0?n[0]:{}},{type:"list",node:(0,k.ListNode)((0,k.ObjectNode)(A(g({},d),{weight:(0,k.Opt)((0,k.NumberNode)({integer:!0,min:1}))}),{context:"model_variant"})),change:n=>[g({weight:1},n)]}],{context:"model_variant"})),o.register("multipart_condition",(0,k.ChoiceNode)([{type:"object",priority:-1,match:()=>!0,node:(0,k.MapNode)(r(),r()),change:n=>typeof n=="object"&&Array.isArray(n==null?void 0:n.OR)&&n.OR.length>0?n.OR[0]:{}},{type:"or",match:n=>typeof n=="object"&&(n==null?void 0:n.OR)!==void 0,node:(0,k.ObjectNode)({OR:(0,k.ListNode)(e("multipart_condition"))}),change:n=>({OR:[n!=null?n:{}]})}],{context:"multipart_condition"}))}me.initBlockDefinitionSchemas=Qe;var _e={};Object.defineProperty(_e,"__esModule",{value:!0});_e.initFontSchemas=void 0;const M=w;function et(o,t){const e=M.Reference.bind(void 0,o),r=M.StringNode.bind(void 0,t);o.register("font",(0,M.ObjectNode)({providers:(0,M.ListNode)(e("glyph_provider"))},{context:"font"})),o.register("glyph_provider",(0,M.Mod)((0,M.ObjectNode)({type:r({enum:"glyph_provider_type"}),[M.Switch]:[{push:"type"}],[M.Case]:{bitmap:{file:r({validator:"resource",params:{pool:"$texture",suffix:".png"}}),height:(0,M.Opt)((0,M.NumberNode)({integer:!0})),ascent:(0,M.NumberNode)({integer:!0}),chars:(0,M.ListNode)(r(),{minLength:1})},ttf:{file:r({validator:"resource",params:{pool:"$texture",suffix:".png"}}),size:(0,M.Opt)((0,M.NumberNode)()),oversample:(0,M.Opt)((0,M.NumberNode)()),shift:(0,M.Opt)((0,M.ListNode)((0,M.NumberNode)(),{minLength:2,maxLength:2})),skip:(0,M.Opt)((0,M.StringOrList)(r()))},legacy_unicode:{sizes:r(),template:r()}}},{context:"glyph_provider"}),{default:()=>({type:"bitmap"})}))}_e.initFontSchemas=et;Object.defineProperty(se,"__esModule",{value:!0});se.initAssetsSchemas=void 0;const tt=le,rt=me,ot=_e;function it(o,t){(0,rt.initBlockDefinitionSchemas)(o,t),(0,ot.initFontSchemas)(o,t),(0,tt.initModelSchemas)(o,t)}se.initAssetsSchemas=it;var D={};(function(o){Object.defineProperty(o,"__esModule",{value:!0}),o.initCommonSchemas=o.InclusiveRange=o.IntProvider=o.FloatProvider=o.NoiseSettingsPresets=o.DefaultNoiseSettings=o.DimensionTypePresets=o.DefaultDimensionType=o.FunctionCases=o.ConditionCases=void 0;const t=w;o.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 e={"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}};o.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:e}};function r(d,n){const a=t.StringNode.bind(void 0,n),l=t.Reference.bind(void 0,d);d.register("block_state",(0,t.Mod)((0,t.ObjectNode)({Name:a({validator:"resource",params:{pool:"block"}}),Properties:(0,t.Opt)((0,t.MapNode)(a(),a(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),d.register("fluid_state",(0,t.Mod)((0,t.ObjectNode)({Name:a({validator:"resource",params:{pool:"fluid"}}),Properties:(0,t.Opt)((0,t.MapNode)(a(),a()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),d.register("block_pos",(0,t.Mod)((0,t.ListNode)((0,t.NumberNode)({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const I=b=>(0,t.Opt)((0,t.ChoiceNode)([{type:"number",node:(0,t.NumberNode)({integer:b}),change:O=>{var h,S;return O===void 0?0:(S=(h=O.min)!==null&&h!==void 0?h:O.max)!==null&&S!==void 0?S:0}},{type:"object",node:(0,t.ObjectNode)({min:(0,t.Opt)((0,t.NumberNode)({integer:b})),max:(0,t.Opt)((0,t.NumberNode)({integer:b}))},{context:"range"}),change:O=>({min:O!=null?O:0,max:O!=null?O:0})}]));d.register("int_bounds",I(!0)),d.register("float_bounds",I()),d.register("int_range",(0,t.ChoiceNode)([{type:"object",node:(0,t.ObjectNode)({min:(0,t.Opt)(l("number_provider")),max:(0,t.Opt)(l("number_provider"))})},{type:"number",node:(0,t.NumberNode)({integer:!0})}],{context:"range"}));const $=(b,O,h,S,z,B,J)=>{let Q={};z&&Object.keys(J[z]).forEach(W=>{Q[W]=(0,t.Mod)(J[z][W],{enabled:T=>T.push("type").get()===void 0})});const re=(0,t.ObjectNode)(g({type:(0,t.Mod)((0,t.Opt)(a({validator:"resource",params:{pool:b}})),{hidden:()=>!0}),[t.Switch]:[{push:"type"}],[t.Case]:J},Q),{context:B,disableSwitchContext:!0}),E=[{type:O,node:J[S][h]}];return z&&E.push({type:"object",priority:-1,node:re}),Object.keys(J).forEach(W=>{E.push({type:W,match:T=>{var $e;if("minecraft:"+(($e=T==null?void 0:T.type)===null||$e===void 0?void 0:$e.replace(/^minecraft:/,""))===W)return!0;const U=T?Object.keys(T):[];return typeof T=="object"&&((U==null?void 0:U.length)===0||(U==null?void 0:U.length)===1&&(U==null?void 0:U[0])==="type")},node:re,change:T=>({type:W})})}),(0,t.ChoiceNode)(E,{context:B,choiceContext:`${B}.type`})};d.register("number_provider",$("loot_number_provider_type","number","value","minecraft:constant","minecraft:uniform","number_provider",{"minecraft:constant":{value:(0,t.NumberNode)()},"minecraft:uniform":{min:l("number_provider"),max:l("number_provider")},"minecraft:binomial":{n:l("number_provider"),p:l("number_provider")},"minecraft:score":{target:l("scoreboard_name_provider"),score:a({validator:"objective"}),scale:(0,t.Opt)((0,t.NumberNode)())}})),d.register("scoreboard_name_provider",$("loot_score_provider_type","string","target","minecraft:context",null,"score_provider",{"minecraft:fixed":{name:a({validator:"entity",params:{amount:"multiple",type:"entities",isScoreHolder:!0}})},"minecraft:context":{target:(0,t.Mod)(a({enum:"entity_source"}),{default:()=>"this"})}})),d.register("nbt_provider",$("loot_nbt_provider_type","string","target","minecraft:context",null,"nbt_provider",{"minecraft:storage":{source:a({validator:"resource",params:{pool:"$storage"}})},"minecraft:context":{target:(0,t.Mod)(a({enum:"copy_source"}),{default:()=>"this"})}})),o.FloatProvider=b=>$("float_provider_type","number","value","minecraft:constant",null,"float_provider",{"minecraft:constant":{value:(0,t.NumberNode)(b)},"minecraft:uniform":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(b),max_exclusive:(0,t.NumberNode)(b)})},"minecraft:clamped_normal":{value:(0,t.ObjectNode)({min:(0,t.NumberNode)(),max:(0,t.NumberNode)(),mean:(0,t.NumberNode)(),deviation:(0,t.NumberNode)()})},"minecraft:trapezoid":{value:(0,t.ObjectNode)({min:(0,t.NumberNode)(),max:(0,t.NumberNode)(),plateau:(0,t.NumberNode)()})}}),d.register("float_provider",(0,o.FloatProvider)()),o.IntProvider=b=>$("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:(0,t.NumberNode)(g({integer:!0},b))},"minecraft:uniform":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(g({integer:!0},b)),max_inclusive:(0,t.NumberNode)(g({integer:!0},b))})},"minecraft:biased_to_bottom":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(g({integer:!0},b)),max_inclusive:(0,t.NumberNode)(g({integer:!0},b))})},"minecraft:clamped":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(g({integer:!0},b)),max_inclusive:(0,t.NumberNode)(g({integer:!0},b)),source:l("int_provider")})},"minecraft:clamped_normal":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(g({integer:!0},b)),max_inclusive:(0,t.NumberNode)(g({integer:!0},b)),mean:(0,t.NumberNode)(),deviation:(0,t.NumberNode)()})},"minecraft:weighted_list":{distribution:(0,t.ListNode)((0,t.ObjectNode)({weight:(0,t.NumberNode)({integer:!0}),data:l("int_provider")}))}}),d.register("int_provider",(0,o.IntProvider)()),d.register("vertical_anchor",(0,t.ChoiceNode)(["absolute","above_bottom","below_top"].map(b=>({type:b,match:O=>(O==null?void 0:O[b])!==void 0,change:O=>{var h,S,z;return{[b]:(z=(S=(h=O.absolute)!==null&&h!==void 0?h:O.above_bottom)!==null&&S!==void 0?S:O.below_top)!==null&&z!==void 0?z:0}},node:(0,t.ObjectNode)({[b]:(0,t.NumberNode)({integer:!0,min:-2048,max:2047})})})),{context:"vertical_anchor"})),d.register("height_provider",$("height_provider_type","number","value","minecraft:constant",null,"height_provider",{"minecraft:constant":{value:l("vertical_anchor")},"minecraft:uniform":{min_inclusive:l("vertical_anchor"),max_inclusive:l("vertical_anchor")},"minecraft:biased_to_bottom":{min_inclusive:l("vertical_anchor"),max_inclusive:l("vertical_anchor"),inner:(0,t.Opt)((0,t.NumberNode)({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:l("vertical_anchor"),max_inclusive:l("vertical_anchor"),inner:(0,t.Opt)((0,t.NumberNode)({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:l("vertical_anchor"),max_inclusive:l("vertical_anchor"),plateau:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:weighted_list":{distribution:(0,t.ListNode)((0,t.ObjectNode)({weight:(0,t.NumberNode)({integer:!0}),data:l("height_provider")}))}})),o.InclusiveRange=b=>(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(b),max_inclusive:(0,t.NumberNode)(b)},{context:"range"}),d.register("noise_parameters",(0,t.Mod)((0,t.ObjectNode)({firstOctave:(0,t.NumberNode)({integer:!0}),amplitudes:(0,t.ListNode)((0,t.NumberNode)())},{context:"noise_parameters"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})})),o.ConditionCases=(b=a({enum:"entity_source"}))=>({"minecraft:alternative":{terms:(0,t.ListNode)(l("condition"))},"minecraft:block_state_property":{block:a({validator:"resource",params:{pool:"block"}}),properties:(0,t.MapNode)(a(),a(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:l("damage_source_predicate")},"minecraft:entity_properties":{entity:b,predicate:l("entity_predicate")},"minecraft:entity_scores":{entity:b,scores:(0,t.MapNode)(a({validator:"objective"}),l("int_range"))},"minecraft:inverted":{term:l("condition")},"minecraft:killed_by_player":{inverse:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:location_check":{offsetX:(0,t.Opt)((0,t.NumberNode)({integer:!0})),offsetY:(0,t.Opt)((0,t.NumberNode)({integer:!0})),offsetZ:(0,t.Opt)((0,t.NumberNode)({integer:!0})),predicate:l("location_predicate")},"minecraft:match_tool":{predicate:l("item_predicate")},"minecraft:random_chance":{chance:(0,t.NumberNode)({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:(0,t.NumberNode)({min:0,max:1}),looting_multiplier:(0,t.NumberNode)()},"minecraft:reference":{name:a({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:a({validator:"resource",params:{pool:"enchantment"}}),chances:(0,t.ListNode)((0,t.NumberNode)({min:0,max:1}))},"minecraft:time_check":{value:l("int_range"),period:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:value_check":{value:l("number_provider"),range:l("int_range")},"minecraft:weather_check":{raining:(0,t.Opt)((0,t.BooleanNode)()),thundering:(0,t.Opt)((0,t.BooleanNode)())}}),o.FunctionCases=(b,O=a({enum:"copy_source"}),h=a({enum:"entity_source"}))=>{const S={"minecraft:apply_bonus":{enchantment:a({validator:"resource",params:{pool:"enchantment"}}),formula:a({validator:"resource",params:{pool:n.get("loot_table_apply_bonus_formula")}}),parameters:(0,t.Mod)((0,t.ObjectNode)({bonusMultiplier:(0,t.Mod)((0,t.NumberNode)(),{enabled:B=>B.pop().push("formula").get()==="minecraft:uniform_bonus_count"}),extra:(0,t.Mod)((0,t.NumberNode)(),{enabled:B=>B.pop().push("formula").get()==="minecraft:binomial_with_bonus_count"}),probability:(0,t.Mod)((0,t.NumberNode)(),{enabled:B=>B.pop().push("formula").get()==="minecraft:binomial_with_bonus_count"})}),{enabled:B=>B.push("formula").get()!=="minecraft:ore_drops"})},"minecraft:copy_name":{source:O},"minecraft:copy_nbt":{source:l("nbt_provider"),ops:(0,t.ListNode)((0,t.ObjectNode)({source:a({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:a({validator:"nbt_path",params:{category:"minecraft:item"}}),op:a({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:a({validator:"resource",params:{pool:"block"}}),properties:(0,t.ListNode)(a({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:(0,t.Opt)((0,t.ListNode)(a({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:l("number_provider"),treasure:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:exploration_map":{destination:(0,t.Opt)(a({enum:"map_feature"})),decoration:(0,t.Opt)(a({enum:"map_decoration"})),zoom:(0,t.Opt)((0,t.NumberNode)({integer:!0})),search_radius:(0,t.Opt)((0,t.NumberNode)({integer:!0})),skip_existing_chunks:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:fill_player_head":{entity:h},"minecraft:limit_count":{limit:l("int_range")},"minecraft:looting_enchant":{count:l("number_provider"),limit:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:set_attributes":{modifiers:(0,t.ListNode)(l("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:(0,t.ListNode)((0,t.ObjectNode)({pattern:a({enum:"banner_pattern"}),color:a({enum:"dye_color"})})),append:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_contents":{type:a({validator:"resource",params:{pool:"block_entity_type"}}),entries:(0,t.ListNode)(l("loot_entry"))},"minecraft:set_count":{count:l("number_provider"),add:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_damage":{damage:l("number_provider"),add:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_enchantments":{enchantments:(0,t.MapNode)(a({validator:"resource",params:{pool:"enchantment"}}),l("number_provider")),add:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_loot_table":{type:a({validator:"resource",params:{pool:"block_entity_type"}}),name:a({validator:"resource",params:{pool:"$loot_table"}}),seed:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:set_lore":{entity:(0,t.Opt)(h),lore:(0,t.ListNode)(l("text_component")),replace:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_name":{entity:(0,t.Opt)(h),name:(0,t.Opt)(l("text_component"))},"minecraft:set_nbt":{tag:a({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_potion":{id:a({validator:"resource",params:{pool:"potion"}})},"minecraft:set_stew_effect":{effects:(0,t.Opt)((0,t.ListNode)((0,t.ObjectNode)({type:a({validator:"resource",params:{pool:"mob_effect"}}),duration:l("number_provider")})))}},z={};return n.get("loot_function_type").forEach(B=>{z[B]=g(g({},S[B]),b)}),z},o.DimensionTypePresets=b=>(0,t.ObjectOrPreset)(a({validator:"resource",params:{pool:"$dimension_type"}}),b,{"minecraft:overworld":o.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}}),o.NoiseSettingsPresets=b=>(0,t.ObjectOrPreset)(a({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),b,{"minecraft:overworld":o.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:e}},"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:e}},"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:e}},"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:e}},"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:e}}})}o.initCommonSchemas=r})(D);var pe={};Object.defineProperty(pe,"__esModule",{value:!0});pe.initConditionSchemas=void 0;const ee=w,nt=D;function at(o,t){const e=ee.Reference.bind(void 0,o),r=ee.StringNode.bind(void 0,t);o.register("predicate",(0,ee.ObjectOrList)(e("condition"),{choiceContext:"condition"})),o.register("condition",(0,ee.Mod)((0,ee.ObjectNode)({condition:r({validator:"resource",params:{pool:"loot_condition_type"}}),[ee.Switch]:[{push:"condition"}],[ee.Case]:(0,nt.ConditionCases)()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))}pe.initConditionSchemas=at;var ue={};Object.defineProperty(ue,"__esModule",{value:!0});ue.initDimensionSchemas=void 0;const v=w,Te=D;function ct(o,t){const e=v.Reference.bind(void 0,o),r=v.StringNode.bind(void 0,t);o.register("dimension",(0,v.Mod)((0,v.ObjectNode)({type:(0,Te.DimensionTypePresets)(e("dimension_type")),generator:(0,v.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[v.Switch]:[{push:"type"}],[v.Case]:{"minecraft:noise":{seed:(0,v.NumberNode)({integer:!0}),settings:(0,Te.NoiseSettingsPresets)(e("noise_settings")),biome_source:(0,v.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/biome_source"}}),[v.Switch]:[{push:"type"}],[v.Case]:{"minecraft:fixed":{biome:r({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{preset:(0,v.Opt)(r({validator:"resource",params:{pool:["minecraft:overworld","minecraft:nether"]}})),biomes:(0,v.Mod)((0,v.ListNode)(e("generator_biome")),{enabled:n=>n.push("preset").get()===void 0,default:()=>[{biome:"minecraft:plains"}]})},"minecraft:checkerboard":{scale:(0,v.Opt)((0,v.NumberNode)({integer:!0,min:0,max:62})),biomes:(0,v.ListNode)(r({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:(0,v.NumberNode)({integer:!0})}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:(0,v.ObjectNode)({biome:(0,v.Opt)(r({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:(0,v.Opt)((0,v.BooleanNode)()),features:(0,v.Opt)((0,v.BooleanNode)()),layers:(0,v.ListNode)(e("generator_layer")),structures:e("generator_structures")})}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>{const n=Math.floor(Math.random()*4294967296)-2147483648;return{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:n,biome_source:{type:"minecraft:fixed",seed:n,biome:"minecraft:plains"},settings:"minecraft:overworld"}}}}));const d=(0,v.ChoiceNode)([{type:"number",node:(0,v.NumberNode)({min:-2,max:2}),change:n=>{var a;return(a=n[0])!==null&&a!==void 0?a:0}},{type:"list",node:(0,v.ListNode)((0,v.NumberNode)({min:-2,max:2}),{minLength:2,maxLength:2}),change:n=>[n!=null?n:0,n!=null?n:0]}]);o.register("generator_biome",(0,v.Mod)((0,v.ObjectNode)({biome:r({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:(0,v.ObjectNode)({temperature:d,humidity:d,continentalness:d,erosion:d,weirdness:d,depth:d,offset:(0,v.NumberNode)({min:0,max:1})})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})}))}ue.initDimensionSchemas=ct;var fe={};Object.defineProperty(fe,"__esModule",{value:!0});fe.initDimensionTypeSchemas=void 0;const L=w,dt=D;function st(o,t){const e=L.StringNode.bind(void 0,t);o.register("dimension_type",(0,L.Mod)((0,L.ObjectNode)({ultrawarm:(0,L.BooleanNode)(),natural:(0,L.BooleanNode)(),piglin_safe:(0,L.BooleanNode)(),respawn_anchor_works:(0,L.BooleanNode)(),bed_works:(0,L.BooleanNode)(),has_raids:(0,L.BooleanNode)(),has_skylight:(0,L.BooleanNode)(),has_ceiling:(0,L.BooleanNode)(),coordinate_scale:(0,L.NumberNode)({min:1e-5,max:3e7}),ambient_light:(0,L.NumberNode)(),fixed_time:(0,L.Opt)((0,L.NumberNode)({integer:!0})),logical_height:(0,L.NumberNode)({integer:!0,min:0,max:4096}),effects:(0,L.Opt)(e({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:e({validator:"resource",params:{pool:"$tag/block"}}),min_y:(0,L.NumberNode)({integer:!0,min:-2048,max:2047}),height:(0,L.NumberNode)({integer:!0,min:0,max:4096})},{context:"dimension_type"}),r=>({default:()=>dt.DefaultDimensionType,validate:(d,n,a,l)=>(n=r.validate(d,n,a,l),(n==null?void 0:n.min_y)+(n==null?void 0:n.height)>2047&&a.add(d.push("height"),"error.min_y_plus_height",2047),(n==null?void 0:n.logical_height)>(n==null?void 0:n.height)&&a.add(d.push("logical_height"),"error.logical_height"),(n==null?void 0:n.height)%16!==0&&a.add(d.push("height"),"error.height_multiple",16),(n==null?void 0:n.min_y)%16!==0&&a.add(d.push("min_y"),"error.min_y_multiple",16),n)})))}fe.initDimensionTypeSchemas=st;var be={};Object.defineProperty(be,"__esModule",{value:!0});be.initItemModifierSchemas=void 0;const V=w,lt=D;function mt(o,t){const e=V.Reference.bind(void 0,o),r=V.StringNode.bind(void 0,t);o.register("item_modifier",(0,V.ObjectOrList)(e("function"),{choiceContext:"function"}));const d={conditions:(0,V.Opt)((0,V.ListNode)(e("condition")))};o.register("function",(0,V.Mod)((0,V.ObjectNode)({function:r({validator:"resource",params:{pool:"loot_function_type"}}),[V.Switch]:[{push:"function"}],[V.Case]:(0,lt.FunctionCases)(d)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))}be.initItemModifierSchemas=mt;var ge={},F={};Object.defineProperty(F,"__esModule",{value:!0});F.LootFunctions=F.LootConditions=F.LootCopySources=F.LootEntitySources=F.LootTableTypes=void 0;F.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]}]]);F.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]);F.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]);F.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",[]]]);F.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(ge,"__esModule",{value:!0});ge.initLootTableSchemas=void 0;const f=w,ie=F,qe=D;function _t(o,t){const e=f.Reference.bind(void 0,o),r=f.StringNode.bind(void 0,t),d={conditions:(0,f.Opt)((0,f.ListNode)(e("loot_condition")))},n=g({functions:(0,f.Opt)((0,f.ListNode)(e("loot_function")))},d);function a(h,S,z){const B=[],J=Q=>t.get(S).filter(re=>{var E;return((E=h.get(re))!==null&&E!==void 0?E:[]).every(T=>Q.includes(T))});for(const[Q,{allows:re,requires:E}]of ie.LootTableTypes){const W=[...re,...E];B.push({match:T=>T.getModel().get(new f.Path(["type"]))===Q,node:z(J(W))})}return B.push({match:Q=>!0,node:z(S)}),(0,f.SwitchNode)(B)}const l=a(ie.LootConditions,"loot_condition_type",h=>r({validator:"resource",params:{pool:h instanceof Array?h:"loot_condition_type"}})),I=a(ie.LootFunctions,"loot_function_type",h=>r({validator:"resource",params:{pool:h instanceof Array?h:"loot_function_type"}})),$=a(ie.LootEntitySources,"entity_source",h=>r({enum:h})),b=a(ie.LootCopySources,"copy_source",h=>r({enum:h}));o.register("loot_table",(0,f.Mod)((0,f.ObjectNode)({type:(0,f.Opt)(r({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:(0,f.Opt)((0,f.ListNode)((0,f.Mod)((0,f.ObjectNode)(g({rolls:e("number_provider"),bonus_rolls:(0,f.Opt)(e("number_provider")),entries:(0,f.ListNode)(e("loot_entry"))},n),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:(0,f.Opt)((0,f.ListNode)(e("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const O={enabled:h=>{var S;return((S=h.pop().get())===null||S===void 0?void 0:S.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(h.push("type").get())}};o.register("loot_entry",(0,f.Mod)((0,f.ObjectNode)({type:r({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:(0,f.Opt)((0,f.Mod)((0,f.NumberNode)({integer:!0,min:1}),O)),quality:(0,f.Opt)((0,f.Mod)((0,f.NumberNode)({integer:!0}),O)),[f.Switch]:[{push:"type"}],[f.Case]:{"minecraft:alternatives":g({children:(0,f.ListNode)(e("loot_entry"))},n),"minecraft:dynamic":g({name:r()},n),"minecraft:group":g({children:(0,f.ListNode)(e("loot_entry"))},n),"minecraft:item":g({name:r({validator:"resource",params:{pool:"item"}})},n),"minecraft:loot_table":g({name:r({validator:"resource",params:{pool:"$loot_table"}})},n),"minecraft:sequence":g({children:(0,f.ListNode)(e("loot_entry"))},n),"minecraft:tag":g({name:r({validator:"resource",params:{pool:"$tag/item"}}),expand:(0,f.Opt)((0,f.BooleanNode)())},n)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),o.register("loot_function",(0,f.Mod)((0,f.ObjectNode)({function:I,[f.Switch]:[{push:"function"}],[f.Case]:(0,qe.FunctionCases)(d,b,$)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),o.register("loot_condition",(0,f.Mod)((0,f.ObjectNode)({condition:l,[f.Switch]:[{push:"condition"}],[f.Case]:(0,qe.ConditionCases)($)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),o.register("attribute_modifier",(0,f.Mod)((0,f.ObjectNode)({attribute:r({validator:"resource",params:{pool:"attribute"}}),name:r(),amount:e("number_provider"),operation:r({enum:["addition","multiply_base","multiply_total"]}),id:(0,f.Opt)(r({validator:"uuid"})),slot:(0,f.StringOrList)(r({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))}ge.initLootTableSchemas=_t;var Ne={};Object.defineProperty(Ne,"__esModule",{value:!0});Ne.initPackMcmetaSchemas=void 0;const te=w,K=8;function pt(o,t){o.register("pack_mcmeta",(0,te.Mod)((0,te.ObjectNode)({pack:(0,te.Mod)((0,te.ObjectNode)({pack_format:(0,te.Mod)((0,te.NumberNode)({integer:!0,min:K,max:K}),{default:()=>K,canUpdate:(e,r)=>r!==K,update:()=>[{name:"pack_format",params:[K],newValue:K}]}),description:(0,te.Reference)(o,"text_component")}),{default:()=>({pack_format:K,description:""})})}),{default:()=>({pack:{pack_format:K,description:""}})}))}Ne.initPackMcmetaSchemas=pt;var he={};Object.defineProperty(he,"__esModule",{value:!0});he.initPredicatesSchemas=void 0;const c=w;function ut(o,t){const e=c.Reference.bind(void 0,o),r=c.StringNode.bind(void 0,t),d=(0,c.ChoiceNode)([{type:"string",node:r(),change:n=>typeof n=="boolean"||typeof n=="number"?n.toString():""},{type:"number",node:(0,c.NumberNode)(),change:n=>typeof n=="string"?parseInt(n):0},{type:"object",node:(0,c.ObjectNode)({min:(0,c.Opt)((0,c.NumberNode)({integer:!0})),max:(0,c.Opt)((0,c.NumberNode)({integer:!0}))}),change:n=>typeof n=="number"?{min:n,max:n}:{}},{type:"boolean",node:(0,c.BooleanNode)(),change:n=>n==="true"||n===1}]);o.register("item_predicate",(0,c.ObjectNode)({items:(0,c.Opt)((0,c.ListNode)(r({validator:"resource",params:{pool:"item"}}))),tag:(0,c.Opt)(r({validator:"resource",params:{pool:"$tag/item"}})),count:e("int_bounds"),durability:e("int_bounds"),potion:(0,c.Opt)(r({validator:"resource",params:{pool:"potion"}})),nbt:(0,c.Opt)(r({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:(0,c.Opt)((0,c.ListNode)(e("enchantment_predicate")))},{context:"item"})),o.register("enchantment_predicate",(0,c.ObjectNode)({enchantment:(0,c.Opt)(r({validator:"resource",params:{pool:"enchantment"}})),levels:e("int_bounds")},{context:"enchantment"})),o.register("block_predicate",(0,c.ObjectNode)({blocks:(0,c.Opt)((0,c.ListNode)(r({validator:"resource",params:{pool:"block"}}))),tag:(0,c.Opt)(r({validator:"resource",params:{pool:"$tag/block"}})),nbt:(0,c.Opt)(r({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:(0,c.Opt)((0,c.MapNode)(r(),d,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),o.register("fluid_predicate",(0,c.ObjectNode)({fluid:(0,c.Opt)(r({validator:"resource",params:{pool:"fluid"}})),tag:(0,c.Opt)(r({validator:"resource",params:{pool:"$tag/fluid"}})),state:(0,c.Opt)((0,c.MapNode)(r(),d))},{context:"fluid"})),o.register("location_predicate",(0,c.ObjectNode)({position:(0,c.Opt)((0,c.ObjectNode)({x:e("float_bounds"),y:e("float_bounds"),z:e("float_bounds")})),biome:(0,c.Opt)(r({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:(0,c.Opt)(r({enum:t.get("worldgen/structure_feature").map(n=>n.slice(10))})),dimension:(0,c.Opt)(r({validator:"resource",params:{pool:"$dimension"}})),light:(0,c.Opt)((0,c.ObjectNode)({light:e("int_bounds")})),smokey:(0,c.Opt)((0,c.BooleanNode)()),block:(0,c.Opt)(e("block_predicate")),fluid:(0,c.Opt)(e("fluid_predicate"))},{context:"location"})),o.register("statistic_predicate",(0,c.ObjectNode)({type:r({validator:"resource",params:{pool:"stat_type"}}),stat:r(),value:e("int_bounds"),[c.Switch]:[{push:"type"}],[c.Case]:{"minecraft:mined":{stat:r({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:r({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:r({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:r({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:r({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:r({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:r({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:r({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:r({validator:"resource",params:{pool:"custom_stat"}})}}})),o.register("player_predicate",(0,c.ObjectNode)({gamemode:(0,c.Opt)(r({enum:"gamemode"})),level:e("int_bounds"),advancements:(0,c.Opt)((0,c.MapNode)(r({validator:"resource",params:{pool:"$advancement"}}),(0,c.ChoiceNode)([{type:"boolean",node:(0,c.BooleanNode)(),change:n=>!0},{type:"object",node:(0,c.MapNode)(r(),(0,c.BooleanNode)())}]))),recipes:(0,c.Opt)((0,c.MapNode)(r({validator:"resource",params:{pool:"$recipe"}}),(0,c.BooleanNode)())),stats:(0,c.Opt)((0,c.ListNode)(e("statistic_predicate"))),looking_at:(0,c.Opt)(e("entity_predicate"))},{context:"player"})),o.register("status_effect_predicate",(0,c.ObjectNode)({amplifier:e("int_bounds"),duration:e("int_bounds"),ambient:(0,c.Opt)((0,c.BooleanNode)()),visible:(0,c.Opt)((0,c.BooleanNode)())},{context:"status_effect"})),o.register("distance_predicate",(0,c.ObjectNode)({x:e("float_bounds"),y:e("float_bounds"),z:e("float_bounds"),absolute:e("float_bounds"),horizontal:e("float_bounds")},{context:"distance"})),o.register("entity_predicate",(0,c.ObjectNode)({type:(0,c.Opt)(r({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:(0,c.Opt)(r({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:(0,c.Opt)(r({validator:"team"})),location:(0,c.Opt)(e("location_predicate")),stepping_on:(0,c.Opt)(e("location_predicate")),distance:(0,c.Opt)(e("distance_predicate")),flags:(0,c.Opt)((0,c.ObjectNode)({is_on_fire:(0,c.Opt)((0,c.BooleanNode)()),is_sneaking:(0,c.Opt)((0,c.BooleanNode)()),is_sprinting:(0,c.Opt)((0,c.BooleanNode)()),is_swimming:(0,c.Opt)((0,c.BooleanNode)()),is_baby:(0,c.Opt)((0,c.BooleanNode)())})),equipment:(0,c.Opt)((0,c.MapNode)(r({enum:"slot"}),e("item_predicate"))),vehicle:(0,c.Opt)(e("entity_predicate")),passenger:(0,c.Opt)(e("entity_predicate")),targeted_entity:(0,c.Opt)(e("entity_predicate")),player:(0,c.Opt)(e("player_predicate")),lightning_bolt:(0,c.Opt)((0,c.ObjectNode)({blocks_set_on_fire:(0,c.Opt)(e("int_bounds")),entity_struck:(0,c.Opt)(e("entity_predicate"))})),fishing_hook:(0,c.Opt)((0,c.ObjectNode)({in_open_water:(0,c.Opt)((0,c.BooleanNode)())})),catType:(0,c.Opt)(r({enum:"cat_texture"})),effects:(0,c.Opt)((0,c.MapNode)(r({validator:"resource",params:{pool:"mob_effect"}}),e("status_effect_predicate")))},{context:"entity"})),o.register("damage_source_predicate",(0,c.ObjectNode)({is_explosion:(0,c.Opt)((0,c.BooleanNode)()),is_fire:(0,c.Opt)((0,c.BooleanNode)()),is_magic:(0,c.Opt)((0,c.BooleanNode)()),is_projectile:(0,c.Opt)((0,c.BooleanNode)()),is_lightning:(0,c.Opt)((0,c.BooleanNode)()),bypasses_armor:(0,c.Opt)((0,c.BooleanNode)()),bypasses_invulnerability:(0,c.Opt)((0,c.BooleanNode)()),bypasses_magic:(0,c.Opt)((0,c.BooleanNode)()),source_entity:(0,c.Opt)(e("entity_predicate")),direct_entity:(0,c.Opt)(e("entity_predicate"))},{context:"damage_source"})),o.register("damage_predicate",(0,c.ObjectNode)({dealt:e("float_bounds"),taken:e("float_bounds"),blocked:(0,c.Opt)((0,c.BooleanNode)()),source_entity:(0,c.Opt)(e("entity_predicate")),type:(0,c.Opt)(e("damage_source_predicate"))},{context:"damage"}))}he.initPredicatesSchemas=ut;var ye={};Object.defineProperty(ye,"__esModule",{value:!0});ye.initRecipeSchemas=void 0;const u=w;function ft(o,t){const e=u.Reference.bind(void 0,o),r=u.StringNode.bind(void 0,t);o.register("recipe",(0,u.Mod)((0,u.ObjectNode)({type:r({validator:"resource",params:{pool:"recipe_serializer"}}),[u.Switch]:[{push:"type"}],[u.Case]:{"minecraft:crafting_shaped":{group:(0,u.Opt)(r({enum:"recipe_group",additional:!0})),pattern:(0,u.ListNode)(r()),key:(0,u.MapNode)(r(),e("recipe_ingredient")),result:e("recipe_result")},"minecraft:crafting_shapeless":{group:(0,u.Opt)(r()),ingredients:(0,u.ListNode)(e("recipe_ingredient")),result:e("recipe_result")},"minecraft:smelting":{group:(0,u.Opt)(r()),ingredient:e("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:(0,u.Opt)((0,u.NumberNode)()),cookingtime:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:(0,u.Opt)(r()),ingredient:e("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:(0,u.Opt)((0,u.NumberNode)()),cookingtime:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:(0,u.Opt)(r()),ingredient:e("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:(0,u.Opt)((0,u.NumberNode)()),cookingtime:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:(0,u.Opt)(r()),ingredient:e("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:(0,u.Opt)((0,u.NumberNode)()),cookingtime:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:(0,u.Opt)(r()),ingredient:e("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),count:(0,u.NumberNode)({integer:!0})},"minecraft:smithing":{group:(0,u.Opt)(r()),base:e("recipe_ingredient_object"),addition:e("recipe_ingredient_object"),result:e("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),o.register("recipe_ingredient",(0,u.Mod)((0,u.ChoiceNode)([{type:"object",node:e("recipe_ingredient_object"),change:d=>d[0]},{type:"list",node:(0,u.ListNode)(e("recipe_ingredient_object")),change:d=>[d]}]),{default:()=>({item:"minecraft:stone"})})),o.register("recipe_ingredient_object",(0,u.Mod)((0,u.ObjectNode)({item:(0,u.Opt)(r({validator:"resource",params:{pool:"item"}})),tag:(0,u.Opt)(r({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),o.register("recipe_result",(0,u.Mod)((0,u.ObjectNode)({item:r({validator:"resource",params:{pool:"item"}}),count:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))}ye.initRecipeSchemas=ft;var ve={};Object.defineProperty(ve,"__esModule",{value:!0});ve.initTagsSchemas=void 0;const G=w;function bt(o,t){const e=G.StringNode.bind(void 0,t),r=d=>(0,G.Mod)((0,G.ObjectNode)({replace:(0,G.Opt)((0,G.BooleanNode)()),values:(0,G.ListNode)((0,G.ChoiceNode)([{type:"string",node:e({validator:"resource",params:{pool:d,allowTag:!0}}),change:n=>n.id},{type:"object",node:(0,G.ObjectNode)({id:e({validator:"resource",params:{pool:d,allowTag:!0,allowUnknown:!0}}),required:(0,G.BooleanNode)()}),change:n=>({id:n})}]))},{context:"tag"}),{default:()=>({values:[]})});o.register("block_tag",r("block")),o.register("entity_type_tag",r("entity_type")),o.register("fluid_tag",r("fluid")),o.register("function_tag",r("$function")),o.register("game_event_tag",r("game_event")),o.register("item_tag",r("item"))}ve.initTagsSchemas=bt;var Oe={};Object.defineProperty(Oe,"__esModule",{value:!0});Oe.initTextComponentSchemas=void 0;const m=w;function gt(o,t){const e=m.Reference.bind(void 0,o),r=m.StringNode.bind(void 0,t),d=a=>{var l;return a instanceof Array?d(a[0]):(l=a==null?void 0:a.text)!==null&&l!==void 0?l:typeof a=="object"?"":a==null?void 0:a.toString()};o.register("text_component",(0,m.Mod)((0,m.ChoiceNode)([{type:"object",node:e("text_component_object"),change:a=>a instanceof Array?typeof a[0]=="object"?a[0]:{text:d(a[0])}:typeof a=="object"?a:{text:d(a)}},{type:"list",node:e("text_component_list"),change:a=>[a]},{type:"string",priority:1,node:r(),change:d},{type:"number",node:(0,m.NumberNode)(),change:a=>{const l=parseFloat(d(a));return isFinite(l)?l:a?1:0}},{type:"boolean",node:(0,m.BooleanNode)(),change:a=>{const l=d(a);return l==="true"||l==="false"?l==="true":!!l}}],{context:"text_component"}),{default:()=>({text:""})}));const n={color:(0,m.Opt)(r()),font:(0,m.Opt)(r()),bold:(0,m.Opt)((0,m.BooleanNode)()),italic:(0,m.Opt)((0,m.BooleanNode)()),underlined:(0,m.Opt)((0,m.BooleanNode)()),strikethrough:(0,m.Opt)((0,m.BooleanNode)()),obfuscated:(0,m.Opt)((0,m.BooleanNode)()),insertion:(0,m.Opt)(r()),clickEvent:(0,m.Opt)((0,m.ObjectNode)({action:r({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[m.Switch]:[{push:"action"}],[m.Case]:{change_page:{value:r()},copy_to_clipboard:{value:r()},open_file:{value:r()},open_url:{value:r()},run_command:{value:r({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:r({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:(0,m.Opt)((0,m.ObjectNode)({action:r({enum:["show_text","show_item","show_entity"]}),[m.Switch]:[{push:"action"}],[m.Case]:{show_text:{value:(0,m.Opt)(e("text_component")),contents:(0,m.Opt)(e("text_component"))},show_item:{value:(0,m.Opt)(r({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:(0,m.Opt)((0,m.ObjectNode)({id:r({validator:"resource",params:{pool:"item"}}),count:(0,m.Opt)((0,m.NumberNode)({integer:!0})),tag:(0,m.Opt)(r({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:(0,m.Opt)((0,m.ObjectNode)({name:(0,m.Opt)(r()),type:(0,m.Opt)(r()),id:(0,m.Opt)(r())})),contents:(0,m.Opt)((0,m.Mod)((0,m.ObjectNode)({name:(0,m.Opt)(e("text_component")),type:r({validator:"resource",params:{pool:"entity_type"}}),id:r({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:(0,m.Opt)(e("text_component_list"))};o.register("text_component_object",(0,m.Mod)((0,m.ChoiceNode)([{type:"text",match:a=>typeof a=="object",change:a=>({text:""}),priority:-1,node:(0,m.ObjectNode)(g({text:r()},n))},{type:"translation",match:a=>(a==null?void 0:a.translate)!==void 0,change:a=>({translate:""}),node:(0,m.ObjectNode)(g({translate:r(),with:(0,m.Opt)(e("text_component_list"))},n))},{type:"score",match:a=>(a==null?void 0:a.score)!==void 0,change:a=>({score:{}}),node:(0,m.ObjectNode)(g({score:(0,m.ObjectNode)({name:r({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:r({validator:"objective"}),value:(0,m.Opt)(r())})},n))},{type:"selector",match:a=>(a==null?void 0:a.selector)!==void 0,change:a=>({selector:""}),node:(0,m.ObjectNode)(g({selector:r({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:(0,m.Opt)(e("text_component"))},n))},{type:"keybind",match:a=>(a==null?void 0:a.keybind)!==void 0,change:a=>({keybind:""}),node:(0,m.ObjectNode)(g({keybind:r({enum:"keybind",additional:!0})},n))},{type:"nbt",match:a=>(a==null?void 0:a.nbt)!==void 0,change:a=>({nbt:""}),node:(0,m.ObjectNode)(g({nbt:r({validator:"nbt_path"}),block:(0,m.Opt)(r({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:(0,m.Opt)(r({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:(0,m.Opt)(r({validator:"resource",params:{pool:"$storage"}})),interpret:(0,m.Opt)((0,m.BooleanNode)()),separator:(0,m.Opt)(e("text_component"))},n))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),o.register("text_component_list",(0,m.Mod)((0,m.ListNode)(e("text_component")),{default:()=>[{text:""}]}))}Oe.initTextComponentSchemas=gt;var xe={},ke={};Object.defineProperty(ke,"__esModule",{value:!0});ke.initBiomeSchemas=void 0;const p=w;function Nt(o,t){const e=p.StringNode.bind(void 0,t);o.register("biome",(0,p.Mod)((0,p.ObjectNode)({temperature:(0,p.NumberNode)(),downfall:(0,p.NumberNode)(),precipitation:e({enum:["none","rain","snow"]}),temperature_modifier:(0,p.Opt)(e({enum:["none","frozen"]})),category:e({enum:"biome_category"}),creature_spawn_probability:(0,p.Opt)((0,p.NumberNode)({min:0,max:1})),effects:(0,p.ObjectNode)({sky_color:(0,p.NumberNode)({color:!0}),fog_color:(0,p.NumberNode)({color:!0}),water_color:(0,p.NumberNode)({color:!0}),water_fog_color:(0,p.NumberNode)({color:!0}),grass_color:(0,p.Opt)((0,p.NumberNode)({color:!0})),foliage_color:(0,p.Opt)((0,p.NumberNode)({color:!0})),grass_color_modifier:(0,p.Opt)(e({enum:["none","dark_forest","swamp"]})),ambient_sound:(0,p.Opt)(e()),mood_sound:(0,p.Opt)((0,p.ObjectNode)({sound:e(),tick_delay:(0,p.NumberNode)({integer:!0}),block_search_extent:(0,p.NumberNode)({integer:!0}),offset:(0,p.NumberNode)()})),additions_sound:(0,p.Opt)((0,p.ObjectNode)({sound:e(),tick_chance:(0,p.NumberNode)({min:0,max:1})})),music:(0,p.Opt)((0,p.ObjectNode)({sound:e(),min_delay:(0,p.NumberNode)({integer:!0,min:0}),max_delay:(0,p.NumberNode)({integer:!0,min:0}),replace_current_music:(0,p.BooleanNode)()})),particle:(0,p.Opt)((0,p.ObjectNode)({options:(0,p.ObjectNode)({type:e()}),probability:(0,p.NumberNode)({min:0,max:1})}))}),spawners:(0,p.MapNode)(e({enum:["monster","creature","ambient","axolotls","underground_water_creature","water_creature","water_ambient","misc"]}),(0,p.Mod)((0,p.ListNode)((0,p.ObjectNode)({type:e({validator:"resource",params:{pool:"entity_type"}}),weight:(0,p.NumberNode)({integer:!0}),minCount:(0,p.NumberNode)({integer:!0}),maxCount:(0,p.NumberNode)({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:(0,p.MapNode)(e({validator:"resource",params:{pool:"entity_type"}}),(0,p.Mod)((0,p.ObjectNode)({energy_budget:(0,p.NumberNode)(),charge:(0,p.NumberNode)()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:(0,p.MapNode)(e({enum:["air","liquid"]}),(0,p.Mod)((0,p.ListNode)(e({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:(0,p.ListNode)((0,p.Mod)((0,p.ListNode)(e({validator:"resource",params:{pool:"$worldgen/placed_feature"}})),{category:()=>"predicate"}),{maxLength:11})},{context:"biome"}),{default:()=>({temperature:.8,downfall:.4,precipitation:"rain",category:"plains",effects:{sky_color:7907327,fog_color:12638463,water_color:4159204,water_fog_color:329011}})}))}ke.initBiomeSchemas=Nt;var we={};Object.defineProperty(we,"__esModule",{value:!0});we.initCarverSchemas=void 0;const C=w,X=D;function ht(o,t){const e=C.Reference.bind(void 0,o),r=C.StringNode.bind(void 0,t),d={vertical_rotation:(0,X.FloatProvider)(),shape:(0,C.ObjectNode)({distance_factor:(0,X.FloatProvider)(),thickness:(0,X.FloatProvider)(),width_smoothness:(0,C.NumberNode)({integer:!0,min:0}),horizontal_radius_factor:(0,X.FloatProvider)(),vertical_radius_default_factor:(0,C.NumberNode)(),vertical_radius_center_factor:(0,C.NumberNode)()})},n={horizontal_radius_multiplier:(0,X.FloatProvider)(),vertical_radius_multiplier:(0,X.FloatProvider)(),floor_level:(0,X.FloatProvider)({min:-1,max:1})};o.register("configured_carver",(0,C.Mod)((0,C.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/carver"}}),config:(0,C.ObjectNode)({probability:(0,C.NumberNode)({min:0,max:1}),y:e("height_provider"),yScale:(0,X.FloatProvider)(),lava_level:e("vertical_anchor"),debug_settings:(0,C.Opt)((0,C.ObjectNode)({debug_mode:(0,C.Opt)((0,C.BooleanNode)()),air_state:(0,C.Opt)(e("block_state")),water_state:(0,C.Opt)(e("block_state")),lava_state:(0,C.Opt)(e("block_state")),barrier_state:(0,C.Opt)(e("block_state"))})),[C.Switch]:["pop",{push:"type"}],[C.Case]:{"minecraft:canyon":d,"minecraft:cave":n,"minecraft:nether_cave":n}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))}we.initCarverSchemas=ht;var Se={};Object.defineProperty(Se,"__esModule",{value:!0});Se.initDecoratorSchemas=void 0;const P=w,ne=D;function yt(o,t){const e=P.Reference.bind(void 0,o),r=P.StringNode.bind(void 0,t);o.register("decorator",(0,P.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/placement_modifier_type"}}),[P.Switch]:[{push:"type"}],[P.Case]:{"minecraft:block_predicate_filter":{predicate:e("block_predicate_worldgen")},"minecraft:carving_mask":{step:r({enum:"generation_step"})},"minecraft:rarity_filter":{chance:(0,P.NumberNode)({integer:!0,min:0})},"minecraft:count":{count:(0,ne.IntProvider)({min:0,max:256})},"minecraft:count_on_every_layer":{count:(0,ne.IntProvider)({min:0,max:256})},"minecraft:noise_threshold_count":{noise_level:(0,P.NumberNode)(),below_noise:(0,P.NumberNode)({integer:!0}),above_noise:(0,P.NumberNode)({integer:!0})},"minecraft:noise_based_count":{noise_to_count_ratio:(0,P.NumberNode)({integer:!0}),noise_factor:(0,P.NumberNode)(),noise_offset:(0,P.Opt)((0,P.NumberNode)())},"minecraft:environment_scan":{direction_of_search:r({enum:["up","down"]}),max_steps:(0,P.NumberNode)({integer:!0,min:1,max:32}),target_condition:e("block_predicate_worldgen"),allowed_search_condition:(0,P.Opt)(e("block_predicate_worldgen"))},"minecraft:heightmap":{heightmap:r({enum:"heightmap_type"})},"minecraft:height_range":{height:e("height_provider")},"minecraft:random_offset":{xz_spread:(0,ne.IntProvider)({min:-16,max:16}),y_spread:(0,ne.IntProvider)({min:-16,max:16})},"minecraft:surface_relative_threshold_filter":{heightmap:r({enum:"heightmap_type"}),min_inclusive:(0,P.Opt)((0,P.NumberNode)({integer:!0})),max_inclusive:(0,P.Opt)((0,P.NumberNode)({integer:!0}))},"minecraft:surface_water_depth_filter":{max_water_depth:(0,P.NumberNode)({integer:!0})}}},{context:"decorator",category:"predicate"}))}Se.initDecoratorSchemas=yt;var je={},Y={};Object.defineProperty(Y,"__esModule",{value:!0});Y.initProcessorListSchemas=Y.Processors=void 0;const y=w;function vt(o,t){const e=y.Reference.bind(void 0,o),r=y.StringNode.bind(void 0,t);Y.Processors=(0,y.ChoiceNode)([{type:"string",node:r({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:n=>{}},{type:"object",node:e("processor_list"),change:n=>({processors:[{processor_type:"minecraft:nop"}]})}]),o.register("processor_list",(0,y.Mod)((0,y.ObjectNode)({processors:(0,y.ListNode)(e("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"}}]}]})})),o.register("processor",(0,y.Mod)((0,y.ObjectNode)({processor_type:r({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[y.Switch]:[{push:"processor_type"}],[y.Case]:{"minecraft:block_age":{mossiness:(0,y.NumberNode)()},"minecraft:block_ignore":{blocks:(0,y.ListNode)(e("block_state"))},"minecraft:block_rot":{integrity:(0,y.NumberNode)({min:0,max:1})},"minecraft:gravity":{heightmap:r({enum:"heightmap_type"}),offset:(0,y.NumberNode)({integer:!0})},"minecraft:protected_blocks":{value:r({validator:"resource",params:{pool:"$tag/block"}})},"minecraft:rule":{rules:(0,y.ListNode)(e("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"}}]})})),o.register("processor_rule",(0,y.Mod)((0,y.ObjectNode)({position_predicate:(0,y.Opt)(e("pos_rule_test")),location_predicate:e("rule_test"),input_predicate:e("rule_test"),output_state:e("block_state"),output_nbt:(0,y.Opt)(r({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 d={min_dist:(0,y.Opt)((0,y.NumberNode)({min:0,max:255,integer:!0})),max_dist:(0,y.Opt)((0,y.NumberNode)({min:0,max:255,integer:!0})),min_chance:(0,y.Opt)((0,y.NumberNode)({min:0,max:1})),max_chance:(0,y.Opt)((0,y.NumberNode)({min:0,max:1}))};o.register("pos_rule_test",(0,y.ObjectNode)({predicate_type:r({validator:"resource",params:{pool:"pos_rule_test"}}),[y.Switch]:[{push:"predicate_type"}],[y.Case]:{"minecraft:axis_aligned_linear_pos":g({axis:r({enum:["x","y","z"]})},d),"minecraft:linear_pos":d}},{context:"pos_rule_test",disableSwitchContext:!0})),o.register("rule_test",(0,y.ObjectNode)({predicate_type:r({validator:"resource",params:{pool:"rule_test"}}),[y.Switch]:[{push:"predicate_type"}],[y.Case]:{"minecraft:block_match":{block:r({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:e("block_state")},"minecraft:random_block_match":{block:r({validator:"resource",params:{pool:"block"}}),probability:(0,y.NumberNode)({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:e("block_state"),probability:(0,y.NumberNode)({min:0,max:1})},"minecraft:tag_match":{tag:r({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))}Y.initProcessorListSchemas=vt;Object.defineProperty(je,"__esModule",{value:!0});je.initFeatureSchemas=void 0;const i=w,x=D,Fe=Y;function Ot(o,t){const e=i.Reference.bind(void 0,o),r=i.StringNode.bind(void 0,t),d=(0,i.ChoiceNode)([{type:"string",node:r({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:e("configured_feature")}],{choiceContext:"feature"}),n=(0,i.ChoiceNode)([{type:"string",node:r({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},{type:"object",node:e("placed_feature")}],{choiceContext:"placed_feature"}),a={tries:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:1})),xz_spread:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0})),y_spread:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0})),feature:n},l={state:e("block_state"),radius:(0,x.IntProvider)({min:0,max:8}),half_height:(0,i.NumberNode)({integer:!0,min:0,max:4}),targets:(0,i.ListNode)(e("block_state"))},I={cap_provider:e("block_state_provider"),stem_provider:e("block_state_provider"),foliage_radius:(0,i.Opt)((0,i.NumberNode)({integer:!0}))},$=(0,i.ObjectNode)({target:e("rule_test"),state:e("block_state")}),b={size:(0,i.NumberNode)({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:(0,i.NumberNode)({min:0,max:1}),targets:(0,i.ListNode)($)},O={surface:r({enum:"cave_surface"}),depth:(0,x.IntProvider)({min:1,max:128}),vertical_range:(0,i.NumberNode)({integer:!0,min:1,max:256}),extra_bottom_block_chance:(0,i.NumberNode)({min:0,max:1}),extra_edge_column_chance:(0,i.NumberNode)({min:0,max:1}),vegetation_chance:(0,i.NumberNode)({min:0,max:1}),xz_radius:(0,x.IntProvider)(),replaceable:r({validator:"resource",params:{pool:"$tag/block"}}),ground_state:e("block_state_provider"),vegetation_feature:n};o.register("configured_feature",(0,i.Mod)((0,i.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/feature"}}),config:(0,i.ObjectNode)({[i.Switch]:["pop",{push:"type"}],[i.Case]:{"minecraft:bamboo":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:basalt_columns":{reach:(0,x.IntProvider)({min:0,max:3}),height:(0,x.IntProvider)({min:1,max:10})},"minecraft:block_column":{direction:r({enum:["up","down","north","east","south","west"]}),allowed_placement:e("block_predicate_worldgen"),prioritize_tip:(0,i.BooleanNode)(),layers:(0,i.ListNode)((0,i.ObjectNode)({height:(0,x.IntProvider)({min:0}),provider:e("block_state_provider")}))},"minecraft:block_pile":{state_provider:e("block_state_provider")},"minecraft:delta_feature":{contents:e("block_state"),rim:e("block_state"),size:(0,x.IntProvider)({min:0,max:16}),rim_size:(0,x.IntProvider)({min:0,max:16})},"minecraft:disk":l,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:(0,i.NumberNode)({integer:!0,min:1,max:512}),height:(0,x.IntProvider)({min:0,max:128}),radius:(0,x.IntProvider)({min:0,max:128}),max_stalagmite_stalactite_height_diff:(0,i.NumberNode)({integer:!0,min:0,max:64}),height_deviation:(0,i.NumberNode)({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:(0,x.IntProvider)({min:0,max:128}),density:(0,x.FloatProvider)({min:0,max:2}),wetness:(0,x.FloatProvider)({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:(0,i.NumberNode)({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:(0,i.NumberNode)({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:(0,i.NumberNode)({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:(0,i.BooleanNode)(),exit:(0,i.Opt)(e("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:(0,i.Opt)((0,i.BooleanNode)()),crystal_beam_target:(0,i.Opt)(e("block_pos")),spikes:(0,i.ListNode)((0,i.ObjectNode)({centerX:(0,i.Opt)((0,i.NumberNode)({integer:!0})),centerZ:(0,i.Opt)((0,i.NumberNode)({integer:!0})),radius:(0,i.Opt)((0,i.NumberNode)({integer:!0})),height:(0,i.Opt)((0,i.NumberNode)({integer:!0})),guarded:(0,i.Opt)((0,i.BooleanNode)())}))},"minecraft:fill_layer":{state:e("block_state"),height:(0,i.NumberNode)({integer:!0,min:0,max:255})},"minecraft:flower":a,"minecraft:forest_rock":{state:e("block_state")},"minecraft:fossil":{max_empty_corners_allowed:(0,i.NumberNode)({integer:!0,min:0,max:7}),fossil_structures:(0,i.ListNode)(r({validator:"resource",params:{pool:"$structure"}})),overlay_structures:(0,i.ListNode)(r({validator:"resource",params:{pool:"$structure"}})),fossil_processors:Fe.Processors,overlay_processors:Fe.Processors},"minecraft:geode":{blocks:(0,i.ObjectNode)({filling_provider:e("block_state_provider"),inner_layer_provider:e("block_state_provider"),alternate_inner_layer_provider:e("block_state_provider"),middle_layer_provider:e("block_state_provider"),outer_layer_provider:e("block_state_provider"),inner_placements:(0,i.ListNode)(e("block_state")),cannot_replace:r({validator:"resource",params:{pool:"$tag/block"}}),invalid_blocks:r({validator:"resource",params:{pool:"$tag/block"}})}),layers:(0,i.ObjectNode)({filling:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50})),inner_layer:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50})),middle_layer:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50})),outer_layer:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50}))}),crack:(0,i.ObjectNode)({generate_crack_chance:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),base_crack_size:(0,i.Opt)((0,i.NumberNode)({min:0,max:5})),crack_point_offset:(0,i.Opt)((0,i.NumberNode)({min:0,max:10}))}),noise_multiplier:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),use_potential_placements_chance:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),use_alternate_layer0_chance:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),placements_require_layer0_alternate:(0,i.Opt)((0,i.BooleanNode)()),outer_wall_distance:(0,i.Opt)((0,x.IntProvider)({min:1,max:20})),distribution_points:(0,i.Opt)((0,x.IntProvider)({min:1,max:20})),point_offset:(0,i.Opt)((0,x.IntProvider)({min:0,max:10})),min_gen_offset:(0,i.Opt)((0,i.NumberNode)({integer:!0})),max_gen_offset:(0,i.Opt)((0,i.NumberNode)({integer:!0})),invalid_blocks_threshold:(0,i.NumberNode)({integer:!0})},"minecraft:glow_lichen":{search_range:(0,i.Opt)((0,i.NumberNode)({min:1,max:64,integer:!0})),chance_of_spreading:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),can_place_on_floor:(0,i.Opt)((0,i.BooleanNode)()),can_place_on_ceiling:(0,i.Opt)((0,i.BooleanNode)()),can_place_on_wall:(0,i.Opt)((0,i.BooleanNode)()),can_be_placed_on:(0,i.ListNode)(r({validator:"resource",params:{pool:"block"}}))},"minecraft:huge_brown_mushroom":I,"minecraft:huge_fungus":{hat_state:e("block_state"),decor_state:e("block_state"),stem_state:e("block_state"),valid_base_block:e("block_state"),planted:(0,i.Opt)((0,i.BooleanNode)())},"minecraft:huge_red_mushroom":I,"minecraft:ice_patch":l,"minecraft:iceberg":{state:e("block_state")},"minecraft:lake":{fluid:e("block_state_provider"),barrier:e("block_state_provider")},"minecraft:large_dripstone":{floor_to_ceiling_search_range:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:1,max:512})),column_radius:(0,x.IntProvider)({min:0,max:60}),height_scale:(0,x.FloatProvider)({min:0,max:20}),max_column_radius_to_cave_height_ratio:(0,i.NumberNode)({min:0,max:1}),stalactite_bluntness:(0,x.FloatProvider)({min:.1,max:10}),stalagmite_bluntness:(0,x.FloatProvider)({min:.1,max:10}),wind_speed:(0,x.FloatProvider)({min:0,max:2}),min_radius_for_wind:(0,i.NumberNode)({integer:!0,min:0,max:100}),min_bluntness_for_wind:(0,i.NumberNode)({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:e("block_state_provider"),spread_width:(0,i.NumberNode)({integer:!0,min:1}),spread_height:(0,i.NumberNode)({integer:!0,min:1})},"minecraft:netherrack_replace_blobs":{state:e("block_state"),target:e("block_state"),radius:(0,x.IntProvider)({min:0,max:12})},"minecraft:no_bonemeal_flower":a,"minecraft:ore":b,"minecraft:pointed_dripstone":{chance_of_taller_dripstone:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),chance_of_directional_spread:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),chance_of_spread_radius2:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),chance_of_spread_radius3:(0,i.Opt)((0,i.NumberNode)({min:0,max:1}))},"minecraft:random_patch":a,"minecraft:random_boolean_selector":{feature_false:n,feature_true:n},"minecraft:random_selector":{features:(0,i.ListNode)((0,i.ObjectNode)({chance:(0,i.NumberNode)({min:0,max:1}),feature:n})),default:n},"minecraft:replace_single_block":{targets:(0,i.ListNode)($)},"minecraft:root_system":{required_vertical_space_for_tree:(0,i.NumberNode)({integer:!0,min:1,max:64}),root_radius:(0,i.NumberNode)({integer:!0,min:1,max:64}),root_placement_attempts:(0,i.NumberNode)({integer:!0,min:1,max:256}),root_column_max_height:(0,i.NumberNode)({integer:!0,min:1,max:4096}),hanging_root_radius:(0,i.NumberNode)({integer:!0,min:1,max:64}),hanging_roots_vertical_span:(0,i.NumberNode)({integer:!0,min:0,max:16}),hanging_root_placement_attempts:(0,i.NumberNode)({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:(0,i.NumberNode)({integer:!0,min:1,max:64}),root_replaceable:r({validator:"resource",params:{pool:"$tag/block"}}),root_state_provider:e("block_state_provider"),hanging_root_state_provider:e("block_state_provider"),allowed_tree_position:e("block_predicate_worldgen"),feature:n},"minecraft:scattered_ore":b,"minecraft:sea_pickle":{count:(0,x.IntProvider)({min:0,max:256})},"minecraft:seagrass":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:simple_block":{to_place:e("block_state_provider")},"minecraft:simple_random_selector":{features:(0,i.ListNode)(n)},"minecraft:spring_feature":{state:e("fluid_state"),rock_count:(0,i.NumberNode)({integer:!0}),hole_count:(0,i.NumberNode)({integer:!0}),requires_block_below:(0,i.BooleanNode)(),valid_blocks:(0,i.ListNode)(r({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{ignore_vines:(0,i.Opt)((0,i.BooleanNode)()),force_dirt:(0,i.Opt)((0,i.BooleanNode)()),minimum_size:e("feature_size"),dirt_provider:e("block_state_provider"),trunk_provider:e("block_state_provider"),foliage_provider:e("block_state_provider"),trunk_placer:(0,i.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:(0,i.NumberNode)({integer:!0,min:0,max:32}),height_rand_a:(0,i.NumberNode)({integer:!0,min:0,max:24}),height_rand_b:(0,i.NumberNode)({integer:!0,min:0,max:24}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:bending_trunk_placer":{bend_length:(0,x.IntProvider)({min:1,max:64}),min_height_for_leaves:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:(0,i.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:(0,x.IntProvider)({min:0,max:16}),offset:(0,x.IntProvider)({min:0,max:16}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:blob_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:(0,x.IntProvider)({min:0,max:24})},"minecraft:pine_foliage_placer":{height:(0,x.IntProvider)({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:(0,x.IntProvider)({min:1,max:512}),leaf_placement_attempts:(0,i.NumberNode)({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:(0,x.IntProvider)({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:(0,i.ListNode)((0,i.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:alter_ground":{provider:e("block_state_provider")},"minecraft:beehive":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:cocoa":{probability:(0,i.NumberNode)({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:twisting_vines":{spread_width:(0,i.NumberNode)({integer:!0,min:1}),spread_height:(0,i.NumberNode)({integer:!0,min:1}),max_height:(0,i.NumberNode)({integer:!0,min:1})},"minecraft:underwater_magma":{floor_search_range:(0,i.NumberNode)({integer:!0,min:0,max:512}),placement_radius_around_floor:(0,i.NumberNode)({integer:!0,min:0,max:64}),placement_probability_per_valid_position:(0,i.NumberNode)({min:0,max:1})},"minecraft:vegetation_patch":O,"minecraft:waterlogged_vegetation_patch":O}},{context:"feature"})},{context:"feature"}),{default:()=>({type:"minecraft:tree",config:{minimum_size:{type:"minecraft:two_layers_feature_size"},trunk_placer:{type:"minecraft:straight_trunk_placer",base_height:5,height_rand_a:2,height_rand_b:0},foliage_placer:{type:"minecraft:blob_foliage_placer",radius:2,offset:0,height:3}}})})),o.register("placed_feature",(0,i.Mod)((0,i.ObjectNode)({feature:d,placement:(0,i.ListNode)(e("decorator"))},{context:"placed_feature"}),{default:()=>({feature:"minecraft:oak",placement:[{type:"minecraft:count",count:4},{type:"minecraft:in_square"},{type:"minecraft:heightmap",heightmap:"OCEAN_FLOOR"}]})})),o.register("feature_size",(0,i.Mod)((0,i.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:(0,i.Opt)((0,i.NumberNode)({min:0,max:80})),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:two_layers_feature_size":{limit:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:81})),lower_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:80})),upper_limit:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:80})),lower_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16})),middle_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})}));const h={seed:(0,i.NumberNode)({integer:!0}),noise:e("noise_parameters"),scale:(0,i.Mod)((0,i.NumberNode)({min:Number.MIN_VALUE}),{default:()=>1})};o.register("block_state_provider",(0,i.Mod)((0,i.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:dual_noise_provider":A(g({},h),{variety:(0,x.InclusiveRange)({integer:!0,min:1,max:64}),slow_noise:e("noise_parameters"),slow_scale:(0,i.Mod)((0,i.NumberNode)({min:Number.MIN_VALUE}),{default:()=>1}),states:(0,i.ListNode)(e("block_state"))}),"minecraft:noise_threshold_provider":A(g({},h),{threshold:(0,i.NumberNode)({min:-1,max:1}),high_chance:(0,i.NumberNode)({min:0,max:1}),default_state:e("block_state"),low_states:(0,i.ListNode)(e("block_state")),high_states:(0,i.ListNode)(e("block_state"))}),"minecraft:noise_provider":A(g({},h),{states:(0,i.ListNode)(e("block_state"))}),"minecraft:randomized_int_state_provider":{property:r(),values:(0,x.IntProvider)(),source:e("block_state_provider")},"minecraft:rotated_block_provider":{state:e("block_state")},"minecraft:simple_state_provider":{state:e("block_state")},"minecraft:weighted_state_provider":{entries:(0,i.ListNode)((0,i.Mod)((0,i.ObjectNode)({weight:(0,i.NumberNode)({integer:!0,min:1}),data:e("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})}));const S={offset:(0,i.Opt)((0,i.ListNode)((0,i.NumberNode)({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3}))};o.register("block_predicate_worldgen",(0,i.Mod)((0,i.ObjectNode)({type:r({validator:"resource",params:{pool:"block_predicate_type"}}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:all_of":{predicates:(0,i.ListNode)(e("block_predicate_worldgen"))},"minecraft:any_of":{predicates:(0,i.ListNode)(e("block_predicate_worldgen"))},"minecraft:has_sturdy_face":A(g({},S),{direction:r({enum:"direction"})}),"minecraft:inside_world_bounds":g({},S),"minecraft:matching_block_tag":A(g({},S),{tag:r({validator:"resource",params:{pool:"$tag/block"}})}),"minecraft:matching_blocks":A(g({},S),{blocks:(0,i.ListNode)(r({validator:"resource",params:{pool:"block"}}))}),"minecraft:matching_fluids":A(g({},S),{fluids:(0,i.ListNode)(r({validator:"resource",params:{pool:"fluid"}}))}),"minecraft:not":{predicate:e("block_predicate_worldgen")},"minecraft:would_survive":A(g({},S),{state:e("block_state")})}},{context:"block_predicate"}),{default:()=>({type:"minecraft:true"})}))}je.initFeatureSchemas=Ot;var Me={};Object.defineProperty(Me,"__esModule",{value:!0});Me.initNoiseSettingsSchemas=void 0;const _=w,xt=D;function kt(o,t){const e=_.Reference.bind(void 0,o),r=_.StringNode.bind(void 0,t);o.register("noise_settings",(0,_.Mod)((0,_.ObjectNode)({sea_level:(0,_.NumberNode)({integer:!0}),disable_mob_generation:(0,_.BooleanNode)(),noise_caves_enabled:(0,_.BooleanNode)(),noodle_caves_enabled:(0,_.BooleanNode)(),aquifers_enabled:(0,_.BooleanNode)(),ore_veins_enabled:(0,_.BooleanNode)(),legacy_random_source:(0,_.BooleanNode)(),default_block:e("block_state"),default_fluid:e("block_state"),noise:(0,_.ObjectNode)({min_y:(0,_.NumberNode)({integer:!0,min:-2048,max:2047}),height:(0,_.NumberNode)({integer:!0,min:0,max:4096}),size_horizontal:(0,_.NumberNode)({integer:!0}),size_vertical:(0,_.NumberNode)({integer:!0}),island_noise_override:(0,_.Opt)((0,_.BooleanNode)()),amplified:(0,_.Opt)((0,_.BooleanNode)()),large_biomes:(0,_.Opt)((0,_.BooleanNode)()),sampling:(0,_.ObjectNode)({xz_scale:(0,_.NumberNode)(),y_scale:(0,_.NumberNode)(),xz_factor:(0,_.NumberNode)(),y_factor:(0,_.NumberNode)()}),bottom_slide:e("noise_slider"),top_slide:e("noise_slider"),terrain_shaper:e("terrain_shaper")}),surface_rule:e("material_rule"),structures:e("generator_structures")},{context:"noise_settings"}),d=>({default:()=>xt.DefaultNoiseSettings,validate:(n,a,l,I)=>{var $,b,O,h;return a=d.validate(n,a,l,I),(($=a==null?void 0:a.noise)===null||$===void 0?void 0:$.min_y)+((b=a==null?void 0:a.noise)===null||b===void 0?void 0:b.height)>2047&&l.add(n.push("noise").push("height"),"error.min_y_plus_height",2047),((O=a==null?void 0:a.noise)===null||O===void 0?void 0:O.height)%16!==0&&l.add(n.push("noise").push("height"),"error.height_multiple",16),((h=a==null?void 0:a.noise)===null||h===void 0?void 0:h.min_y)%16!==0&&l.add(n.push("noise").push("min_y"),"error.min_y_multiple",16),a}}))),o.register("noise_slider",(0,_.ObjectNode)({target:(0,_.NumberNode)(),size:(0,_.NumberNode)({integer:!0,min:0}),offset:(0,_.NumberNode)({integer:!0})})),o.register("generator_structures",(0,_.ObjectNode)({stronghold:(0,_.Opt)((0,_.ObjectNode)({distance:(0,_.NumberNode)({integer:!0,min:0,max:1023}),spread:(0,_.NumberNode)({integer:!0,min:0,max:1023}),count:(0,_.NumberNode)({integer:!0,min:1,max:4095})})),structures:(0,_.MapNode)(r({validator:"resource",params:{pool:"worldgen/structure_feature"}}),(0,_.Mod)((0,_.ObjectNode)({spacing:(0,_.NumberNode)({integer:!0,min:0,max:4096}),separation:(0,_.Mod)((0,_.NumberNode)({integer:!0,min:0,max:4096}),d=>({validate:(n,a,l,I)=>(n.pop().push("spacing").get()<=a&&l.add(n,"error.separation_smaller_spacing"),d.validate(n,a,l,I))})),salt:(0,_.NumberNode)({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),o.register("generator_layer",(0,_.Mod)((0,_.ObjectNode)({block:r({validator:"resource",params:{pool:"block"}}),height:(0,_.NumberNode)({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})})),o.register("terrain_shaper",(0,_.Mod)((0,_.ObjectNode)({offset:e("terrain_spline"),factor:e("terrain_spline"),jaggedness:e("terrain_spline")},{context:"terrain_shaper"}),{default:()=>({offset:0,factor:0,jaggedness:0})})),o.register("terrain_spline",(0,_.Mod)((0,_.ChoiceNode)([{type:"number",node:(0,_.NumberNode)()},{type:"object",node:(0,_.ObjectNode)({coordinate:(0,_.Mod)(r({enum:["continents","erosion","weirdness","ridges"]}),{default:()=>"continents"}),points:(0,_.ListNode)((0,_.ObjectNode)({location:(0,_.NumberNode)(),derivative:(0,_.NumberNode)(),value:e("terrain_spline")}))},{category:"function"})}],{context:"terrain_spline",choiceContext:"terrain_spline"}),{default:()=>0}))}Me.initNoiseSettingsSchemas=kt;var Ce={};Object.defineProperty(Ce,"__esModule",{value:!0});Ce.initStructureFeatureSchemas=void 0;const R=w;function wt(o,t){const e=R.StringNode.bind(void 0,t),r=R.Reference.bind(void 0,o),d={start_pool:e({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:(0,R.NumberNode)({integer:!0})};o.register("configured_structure_feature",(0,R.Mod)((0,R.ObjectNode)({type:e({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:(0,R.ObjectNode)({[R.Switch]:["pop",{push:"type"}],[R.Case]:{"minecraft:bastion_remnant":d,"minecraft:buried_treasure":{probability:(0,R.NumberNode)({min:0,max:1})},"minecraft:mineshaft":{type:e({enum:["normal","mesa"]}),probability:(0,R.NumberNode)({min:0,max:1})},"minecraft:nether_fossil":{height:r("height_provider")},"minecraft:ocean_ruin":{biome_temp:e({enum:["cold","warm"]}),large_probability:(0,R.NumberNode)({min:0,max:1}),cluster_probability:(0,R.NumberNode)({min:0,max:1})},"minecraft:pillager_outpost":d,"minecraft:ruined_portal":{portal_type:e({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:(0,R.Opt)((0,R.BooleanNode)())},"minecraft:village":d}},{context:"structure_feature",disableSwitchContext:!0})},{context:"structure_feature"}),{default:()=>({type:"minecraft:bastion_remnant",config:{start_pool:"minecraft:bastion/starts",size:6}})}))}Ce.initStructureFeatureSchemas=wt;var Pe={};Object.defineProperty(Pe,"__esModule",{value:!0});Pe.initSurfaceRuleSchemas=void 0;const j=w;function St(o,t){const e=j.StringNode.bind(void 0,t),r=j.Reference.bind(void 0,o);o.register("material_rule",(0,j.Mod)((0,j.ObjectNode)({type:e({validator:"resource",params:{pool:"worldgen/material_rule"}}),[j.Switch]:[{push:"type"}],[j.Case]:{"minecraft:block":{result_state:r("block_state")},"minecraft:condition":{if_true:r("material_condition"),then_run:r("material_rule")},"minecraft:sequence":{sequence:(0,j.ListNode)(r("material_rule"))}}},{context:"material_rule",category:"pool"}),{default:()=>({type:"minecraft:block",result_state:{Name:"minecraft:stone"}})})),o.register("material_condition",(0,j.Mod)((0,j.ObjectNode)({type:e({validator:"resource",params:{pool:"worldgen/material_condition"}}),[j.Switch]:[{push:"type"}],[j.Case]:{"minecraft:biome":{biome_is:(0,j.ListNode)(e({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:noise_threshold":{noise:e({validator:"resource",params:{pool:"$worldgen/noise"}}),min_threshold:(0,j.NumberNode)(),max_threshold:(0,j.NumberNode)()},"minecraft:not":{invert:r("material_condition")},"minecraft:stone_depth":{offset:(0,j.NumberNode)({integer:!0}),surface_type:e({enum:"cave_surface"}),add_surface_depth:(0,j.BooleanNode)(),add_surface_secondary_depth:(0,j.BooleanNode)()},"minecraft:vertical_gradient":{random_name:e(),true_at_and_below:r("vertical_anchor"),false_at_and_above:r("vertical_anchor")},"minecraft:water":{offset:(0,j.NumberNode)({integer:!0}),surface_depth_multiplier:(0,j.NumberNode)({integer:!0,min:-20,max:20}),add_stone_depth:(0,j.BooleanNode)()},"minecraft:y_above":{anchor:r("vertical_anchor"),surface_depth_multiplier:(0,j.NumberNode)({integer:!0,min:-20,max:20}),add_stone_depth:(0,j.BooleanNode)()}}},{context:"material_condition"}),{default:()=>({type:"minecraft:biome",is_biome:"minecraft:plains"})}))}Pe.initSurfaceRuleSchemas=St;var Le={};Object.defineProperty(Le,"__esModule",{value:!0});Le.initTemplatePoolSchemas=void 0;const q=w,Ie=Y;function jt(o,t){const e=q.Reference.bind(void 0,o),r=q.StringNode.bind(void 0,t);o.register("template_pool",(0,q.Mod)((0,q.ObjectNode)({name:r(),fallback:r(),elements:(0,q.ListNode)(e("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"}}]})})),o.register("template_weighted_element",(0,q.Mod)((0,q.ObjectNode)({weight:(0,q.NumberNode)({integer:!0,min:1}),element:e("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),o.register("template_element",(0,q.Mod)((0,q.ObjectNode)({element_type:r({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:r({enum:["rigid","terrain_matching"]}),[q.Switch]:[{push:"element_type"}],[q.Case]:{"minecraft:feature_pool_element":{feature:r({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},"minecraft:legacy_single_pool_element":{location:r({validator:"resource",params:{pool:"$structure"}}),processors:Ie.Processors},"minecraft:list_pool_element":{elements:(0,q.ListNode)(e("template_element"))},"minecraft:single_pool_element":{location:r({validator:"resource",params:{pool:"$structure"}}),processors:Ie.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))}Le.initTemplatePoolSchemas=jt;Object.defineProperty(xe,"__esModule",{value:!0});xe.initWorldgenSchemas=void 0;const Mt=ke,Ct=we,Pt=Se,Lt=je,Bt=Me,$t=Y,zt=Ce,Rt=Pe,Tt=Le;function qt(o,t){(0,$t.initProcessorListSchemas)(o,t),(0,Mt.initBiomeSchemas)(o,t),(0,Ct.initCarverSchemas)(o,t),(0,Pt.initDecoratorSchemas)(o,t),(0,Lt.initFeatureSchemas)(o,t),(0,Bt.initNoiseSettingsSchemas)(o,t),(0,zt.initStructureFeatureSchemas)(o,t),(0,Rt.initSurfaceRuleSchemas)(o,t),(0,Tt.initTemplatePoolSchemas)(o,t)}xe.initWorldgenSchemas=qt;var Be={};Object.defineProperty(Be,"__esModule",{value:!0});Be.initWorldSettingsSchemas=void 0;const Z=w;function Ft(o,t){const e=Z.Reference.bind(void 0,o),r=Z.StringNode.bind(void 0,t);o.register("world_settings",(0,Z.Mod)((0,Z.ObjectNode)({generate_features:(0,Z.BooleanNode)(),bonus_chest:(0,Z.BooleanNode)(),seed:(0,Z.NumberNode)({integer:!0}),dimensions:(0,Z.MapNode)(r({validator:"resource",params:{pool:"$dimension"}}),e("dimension"))},{context:"world_settings"}),{default:()=>{const d=Math.floor(Math.random()*4294967296)-2147483648;return{generate_features:!0,bonus_chest:!1,seed:d,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:overworld"},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:nether"},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:the_end",seed:d},settings:"minecraft:end"}}}}}}))}Be.initWorldSettingsSchemas=Ft;Object.defineProperty(ce,"__esModule",{value:!0});ce.initSchemas=void 0;const It=de,Dt=se,At=D,Et=pe,Wt=ue,Ut=fe,Vt=be,Gt=ge,Ht=Ne,Kt=he,Xt=ye,Zt=ve,Yt=Oe,Jt=xe,Qt=Be;function er(o,t){(0,At.initCommonSchemas)(o,t),(0,It.initAdvancementSchemas)(o,t),(0,Dt.initAssetsSchemas)(o,t),(0,Et.initConditionSchemas)(o,t),(0,Ut.initDimensionTypeSchemas)(o,t),(0,Wt.initDimensionSchemas)(o,t),(0,Vt.initItemModifierSchemas)(o,t),(0,Gt.initLootTableSchemas)(o,t),(0,Ht.initPackMcmetaSchemas)(o,t),(0,Kt.initPredicatesSchemas)(o,t),(0,Xt.initRecipeSchemas)(o,t),(0,Zt.initTagsSchemas)(o,t),(0,Yt.initTextComponentSchemas)(o,t),(0,Jt.initWorldgenSchemas)(o,t),(0,Qt.initWorldSettingsSchemas)(o,t)}ce.initSchemas=er;var tr=oe&&oe.__createBinding||(Object.create?function(o,t,e,r){r===void 0&&(r=e);var d=Object.getOwnPropertyDescriptor(t,e);(!d||("get"in d?!t.__esModule:d.writable||d.configurable))&&(d={enumerable:!0,get:function(){return t[e]}}),Object.defineProperty(o,r,d)}:function(o,t,e,r){r===void 0&&(r=e),o[r]=t[e]}),rr=oe&&oe.__setModuleDefault||(Object.create?function(o,t){Object.defineProperty(o,"default",{enumerable:!0,value:t})}:function(o,t){o.default=t}),or=oe&&oe.__importStar||function(o){if(o&&o.__esModule)return o;var t={};if(o!=null)for(var e in o)e!=="default"&&Object.prototype.hasOwnProperty.call(o,e)&&tr(t,o,e);return rr(t,o),t};Object.defineProperty(H,"__esModule",{value:!0});var De=H.getSchemas=We=H.getCollections=Ee=H.lootContext=void 0;const Ae=w,ir=ae,nr=ce;var Ee=H.lootContext=or(F);function ar(){const o=new Ae.CollectionRegistry;return(0,ir.initCollections)(o),o}var We=H.getCollections=ar;function cr(o){const t=new Ae.SchemaRegistry;return(0,nr.initSchemas)(t,o),t}De=H.getSchemas=cr;var mr=Xe({__proto__:null,get getSchemas(){return De},get getCollections(){return We},get lootContext(){return Ee},default:H},[H]);export{mr as i}; -//# sourceMappingURL=index.64d29f63.js.map +var Ue=Object.defineProperty,Ve=Object.defineProperties;var Ge=Object.getOwnPropertyDescriptors;var ze=Object.getOwnPropertySymbols;var He=Object.prototype.hasOwnProperty,Ke=Object.prototype.propertyIsEnumerable;var Re=(o,t,e)=>t in o?Ue(o,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):o[t]=e,g=(o,t)=>{for(var e in t||(t={}))He.call(t,e)&&Re(o,e,t[e]);if(ze)for(var e of ze(t))Ke.call(t,e)&&Re(o,e,t[e]);return o},A=(o,t)=>Ve(o,Ge(t));import{v as w,u as oe}from"./index.d528c217.js";function Xe(o,t){return t.forEach(function(e){e&&typeof e!="string"&&!Array.isArray(e)&&Object.keys(e).forEach(function(r){if(r!=="default"&&!(r in o)){var d=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(o,r,d.get?d:{enumerable:!0,get:function(){return e[r]}})}})}),Object.freeze(Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}))}var H={},ae={};Object.defineProperty(ae,"__esModule",{value:!0});ae.initCollections=void 0;function Ze(o){o.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"]),o.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"]),o.register("slot",["mainhand","offhand","head","chest","legs","feet"]),o.register("gamemode",["survival","creative","adventure","spectator"]),o.register("entity_source",["this","killer","direct_killer","killer_player"]),o.register("copy_source",["block_entity","this","killer","killer_player"]),o.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),o.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"]),o.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"]),o.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"]),o.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mountain","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end","underground"]),o.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),o.register("generation_step",["air","liquid"]),o.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"]),o.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"]),o.register("dye_color",["white","orange","magenta","light_blue","yellow","lime","pink","gray","light_gray","cyan","purple","blue","brown","green","red","black"]),o.register("cave_surface",["floor","ceiling"]),o.register("direction",["down","up","north","east","south","west"]),o.register("axis",["x","y","z"]),o.register("display_position",["firstperson_righthand","firstperson_lefthand","thirdperson_righthand","thirdperson_lefthand","gui","head","ground","fixed"]),o.register("gui_light",["front","side"]),o.register("item_model_predicates",["angle","blocking","broken","cast","charged","cooldown","custom_model_data","damage","damaged","firework","lefthanded","pull","pulling","throwing","time"]),o.register("glyph_provider_type",["bitmap","ttf","legacy_unicode"]),o.register("cat_texture",["textures/entity/cat/tabby.png","textures/entity/cat/black.png","textures/entity/cat/red.png","textures/entity/cat/siamese.png","textures/entity/cat/british_shorthair.png","textures/entity/cat/calico.png","textures/entity/cat/persian.png","textures/entity/cat/ragdoll.png","textures/entity/cat/white.png","textures/entity/cat/jellie.png","textures/entity/cat/all_black.png"])}ae.initCollections=Ze;var ce={},de={};Object.defineProperty(de,"__esModule",{value:!0});de.initAdvancementSchemas=void 0;const s=w;function Ye(o,t){const e=s.Reference.bind(void 0,o),r=s.StringNode.bind(void 0,t),d=(0,s.ChoiceNode)([{type:"object",node:(0,s.Opt)(e("entity_predicate")),change:n=>{var a,l;return(l=(a=n[0])===null||a===void 0?void 0:a.predicate)!==null&&l!==void 0?l:{}}},{type:"list",node:(0,s.ListNode)(e("condition")),change:n=>[{condition:"minecraft:entity_properties",predicate:n}]}],{context:"conditions"});o.register("advancement",(0,s.Mod)((0,s.ObjectNode)({display:(0,s.Opt)((0,s.Mod)((0,s.ObjectNode)({icon:(0,s.ObjectNode)({item:r({validator:"resource",params:{pool:"item"}}),nbt:(0,s.Opt)(r({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:e("text_component"),description:e("text_component"),background:(0,s.Opt)(r()),frame:(0,s.Opt)(r({enum:["task","challenge","goal"]})),show_toast:(0,s.Opt)((0,s.BooleanNode)()),announce_to_chat:(0,s.Opt)((0,s.BooleanNode)()),hidden:(0,s.Opt)((0,s.BooleanNode)())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:(0,s.Opt)(r({validator:"resource",params:{pool:"$advancement"}})),criteria:(0,s.MapNode)(r(),e("advancement_criteria")),requirements:(0,s.Opt)((0,s.ListNode)((0,s.ListNode)(r()))),rewards:(0,s.Opt)((0,s.ObjectNode)({function:(0,s.Opt)(r({validator:"resource",params:{pool:"$function"}})),loot:(0,s.Opt)((0,s.ListNode)(r({validator:"resource",params:{pool:"$loot_table"}}))),recipes:(0,s.Opt)((0,s.ListNode)(r({validator:"resource",params:{pool:"$recipe"}}))),experience:(0,s.Opt)((0,s.NumberNode)({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),o.register("advancement_criteria",(0,s.ObjectNode)({trigger:r({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:(0,s.Opt)((0,s.ObjectNode)({player:(0,s.Mod)(d,{enabled:n=>n.pop().push("trigger").get()!=="minecraft:impossible"}),[s.Switch]:["pop",{push:"trigger"}],[s.Case]:{"minecraft:bee_nest_destroyed":{block:(0,s.Opt)(r({validator:"resource",params:{pool:"block"}})),num_bees_inside:(0,s.Opt)((0,s.NumberNode)({integer:!0})),item:(0,s.Opt)(e("item_predicate"))},"minecraft:bred_animals":{parent:d,partner:d,child:d},"minecraft:brewed_potion":{potion:(0,s.Opt)(r({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:(0,s.Opt)(r({validator:"resource",params:{pool:"$dimension"}})),to:(0,s.Opt)(r({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:(0,s.Opt)((0,s.ListNode)(d))},"minecraft:construct_beacon":{level:e("int_bounds")},"minecraft:consume_item":{item:(0,s.Opt)(e("item_predicate"))},"minecraft:cured_zombie_villager":{villager:d,zombie:d},"minecraft:effects_changed":{effects:(0,s.Opt)((0,s.MapNode)(r({validator:"resource",params:{pool:"mob_effect"}}),e("status_effect_predicate"))),source:(0,s.Opt)(d)},"minecraft:enter_block":{block:(0,s.Opt)(r({validator:"resource",params:{pool:"block"}})),state:(0,s.Opt)((0,s.MapNode)(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:e("int_bounds"),item:(0,s.Opt)(e("item_predicate"))},"minecraft:entity_hurt_player":{damage:(0,s.Opt)(e("damage_predicate"))},"minecraft:entity_killed_player":{entity:d,killing_blow:(0,s.Opt)(e("damage_source_predicate"))},"minecraft:fall_from_height":{start_position:(0,s.Opt)(e("location_predicate")),distance:(0,s.Opt)(e("distance_predicate"))},"minecraft:filled_bucket":{item:(0,s.Opt)(e("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:d,item:(0,s.Opt)(e("item_predicate"))},"minecraft:hero_of_the_village":{location:(0,s.Opt)(e("location_predicate"))},"minecraft:inventory_changed":{slots:(0,s.Opt)((0,s.ObjectNode)({empty:e("int_bounds"),occupied:e("int_bounds"),full:e("int_bounds")})),items:(0,s.Opt)((0,s.ListNode)(e("item_predicate")))},"minecraft:item_durability_changed":{delta:e("int_bounds"),durability:e("int_bounds"),item:(0,s.Opt)(e("item_predicate"))},"minecraft:item_used_on_block":{item:(0,s.Opt)(e("item_predicate")),location:(0,s.Opt)(e("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:e("int_bounds"),victims:(0,s.Opt)((0,s.ListNode)(d))},"minecraft:levitation":{distance:(0,s.Opt)(e("distance_predicate")),duration:e("int_bounds")},"minecraft:lightning_strike":{lightning:d,bystander:d},"minecraft:location":{location:(0,s.Opt)(e("location_predicate"))},"minecraft:nether_travel":{start_position:(0,s.Opt)(e("location_predicate")),distance:(0,s.Opt)(e("distance_predicate"))},"minecraft:placed_block":{block:(0,s.Opt)(r({validator:"resource",params:{pool:"block"}})),state:(0,s.Opt)((0,s.MapNode)(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:(0,s.Opt)(e("item_predicate")),location:(0,s.Opt)(e("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:r({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:(0,s.Opt)(e("damage_predicate")),entity:d},"minecraft:player_interacted_with_entity":{item:(0,s.Opt)(e("item_predicate")),entity:d},"minecraft:player_killed_entity":{entity:d,killing_blow:(0,s.Opt)(e("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:r({validator:"resource",params:{pool:"$recipe"}})},"minecraft:ride_entity_in_lava":{start_position:(0,s.Opt)(e("location_predicate")),distance:(0,s.Opt)(e("distance_predicate"))},"minecraft:slept_in_bed":{location:(0,s.Opt)(e("location_predicate"))},"minecraft:slide_down_block":{block:(0,s.Opt)(r({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:(0,s.Opt)(e("item_predicate"))},"minecraft:summoned_entity":{entity:d},"minecraft:tame_animal":{entity:d},"minecraft:target_hit":{projectile:d,shooter:d,signal_strength:e("int_bounds")},"minecraft:thrown_item_picked_up_by_entity":{entity:d,item:(0,s.Opt)(e("item_predicate"))},"minecraft:used_ender_eye":{distance:(0,s.Opt)(e("float_bounds"))},"minecraft:used_totem":{item:(0,s.Opt)(e("item_predicate"))},"minecraft:using_item":{item:(0,s.Opt)(e("item_predicate"))},"minecraft:villager_trade":{villager:d,item:(0,s.Opt)(e("item_predicate"))},"minecraft:voluntary_exile":{location:(0,s.Opt)(e("location_predicate"))}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))}de.initAdvancementSchemas=Ye;var se={},le={};Object.defineProperty(le,"__esModule",{value:!0});le.initModelSchemas=void 0;const N=w;function Je(o,t){N.Reference.bind(void 0,o);const e=N.StringNode.bind(void 0,t),r=(n,a,l)=>(0,N.ListNode)((0,N.NumberNode)({min:a,max:l}),{minLength:n,maxLength:n}),d=(0,N.ChoiceNode)([{type:"alias",match:n=>typeof n=="string"&&n.startsWith("#"),node:e(),change:n=>typeof n=="string"?`#${n}`:"#0"},{type:"reference",match:n=>typeof n=="string",node:e({validator:"resource",params:{pool:"$texture"}}),change:n=>typeof n=="string"?n.replace(/^#/,""):""}],{choiceContext:"texture"});o.register("model",(0,N.Mod)((0,N.ObjectNode)({parent:(0,N.Opt)(e({validator:"resource",params:{pool:"$model"}})),ambientocclusion:(0,N.Opt)((0,N.BooleanNode)()),gui_light:(0,N.Opt)(e({enum:"gui_light"})),textures:(0,N.Opt)((0,N.MapNode)(e(),d)),elements:(0,N.Opt)((0,N.ListNode)((0,N.ObjectNode)({from:r(3,-16,32),to:r(3,-16,32),rotation:(0,N.Opt)((0,N.ObjectNode)({origin:r(3),axis:e({enum:"axis"}),angle:(0,N.NumberEnum)({values:[-45,-22.5,0,22.5,45]}),rescale:(0,N.Opt)((0,N.BooleanNode)())})),shade:(0,N.Opt)((0,N.BooleanNode)()),faces:(0,N.MapNode)(e({enum:"direction"}),(0,N.ObjectNode)({texture:d,uv:(0,N.Opt)(r(4)),cullface:(0,N.Opt)(e({enum:"direction"})),rotation:(0,N.Opt)((0,N.NumberNode)({integer:!0})),tintindex:(0,N.Opt)((0,N.NumberNode)({integer:!0}))}))},{context:"model_element"}))),display:(0,N.Opt)((0,N.MapNode)(e({enum:"display_position"}),(0,N.ObjectNode)({rotation:r(3),translation:r(3,-80,80),scale:r(3,-4,4)},{context:"item_transform"}))),overrides:(0,N.Opt)((0,N.ListNode)((0,N.ObjectNode)({predicate:(0,N.MapNode)(e({enum:"item_model_predicates"}),(0,N.NumberNode)()),model:e({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))}le.initModelSchemas=Je;var me={};Object.defineProperty(me,"__esModule",{value:!0});me.initBlockDefinitionSchemas=void 0;const k=w;function Qe(o,t){const e=k.Reference.bind(void 0,o),r=k.StringNode.bind(void 0,t);o.register("block_definition",(0,k.Mod)((0,k.ChoiceNode)([{type:"variants",match:n=>n.variants!==void 0,node:(0,k.ObjectNode)({variants:(0,k.MapNode)(r(),e("model_variant"))}),change:n=>({variants:{"":{}}})},{type:"multipart",match:n=>n.multipart!==void 0,node:(0,k.ObjectNode)({multipart:(0,k.ListNode)((0,k.ObjectNode)({when:(0,k.Opt)(e("multipart_condition")),apply:e("model_variant")}))}),change:n=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const d={model:r({validator:"resource",params:{pool:"$model"}}),x:(0,k.Opt)((0,k.NumberEnum)({integer:!0,values:[0,90,180,270]})),y:(0,k.Opt)((0,k.NumberEnum)({integer:!0,values:[0,90,180,270]})),uvlock:(0,k.Opt)((0,k.BooleanNode)())};o.register("model_variant",(0,k.ChoiceNode)([{type:"object",node:(0,k.ObjectNode)(d),change:n=>Array.isArray(n)&&n.length>0?n[0]:{}},{type:"list",node:(0,k.ListNode)((0,k.ObjectNode)(A(g({},d),{weight:(0,k.Opt)((0,k.NumberNode)({integer:!0,min:1}))}),{context:"model_variant"})),change:n=>[g({weight:1},n)]}],{context:"model_variant"})),o.register("multipart_condition",(0,k.ChoiceNode)([{type:"object",priority:-1,match:()=>!0,node:(0,k.MapNode)(r(),r()),change:n=>typeof n=="object"&&Array.isArray(n==null?void 0:n.OR)&&n.OR.length>0?n.OR[0]:{}},{type:"or",match:n=>typeof n=="object"&&(n==null?void 0:n.OR)!==void 0,node:(0,k.ObjectNode)({OR:(0,k.ListNode)(e("multipart_condition"))}),change:n=>({OR:[n!=null?n:{}]})}],{context:"multipart_condition"}))}me.initBlockDefinitionSchemas=Qe;var _e={};Object.defineProperty(_e,"__esModule",{value:!0});_e.initFontSchemas=void 0;const M=w;function et(o,t){const e=M.Reference.bind(void 0,o),r=M.StringNode.bind(void 0,t);o.register("font",(0,M.ObjectNode)({providers:(0,M.ListNode)(e("glyph_provider"))},{context:"font"})),o.register("glyph_provider",(0,M.Mod)((0,M.ObjectNode)({type:r({enum:"glyph_provider_type"}),[M.Switch]:[{push:"type"}],[M.Case]:{bitmap:{file:r({validator:"resource",params:{pool:"$texture",suffix:".png"}}),height:(0,M.Opt)((0,M.NumberNode)({integer:!0})),ascent:(0,M.NumberNode)({integer:!0}),chars:(0,M.ListNode)(r(),{minLength:1})},ttf:{file:r({validator:"resource",params:{pool:"$texture",suffix:".png"}}),size:(0,M.Opt)((0,M.NumberNode)()),oversample:(0,M.Opt)((0,M.NumberNode)()),shift:(0,M.Opt)((0,M.ListNode)((0,M.NumberNode)(),{minLength:2,maxLength:2})),skip:(0,M.Opt)((0,M.StringOrList)(r()))},legacy_unicode:{sizes:r(),template:r()}}},{context:"glyph_provider"}),{default:()=>({type:"bitmap"})}))}_e.initFontSchemas=et;Object.defineProperty(se,"__esModule",{value:!0});se.initAssetsSchemas=void 0;const tt=le,rt=me,ot=_e;function it(o,t){(0,rt.initBlockDefinitionSchemas)(o,t),(0,ot.initFontSchemas)(o,t),(0,tt.initModelSchemas)(o,t)}se.initAssetsSchemas=it;var D={};(function(o){Object.defineProperty(o,"__esModule",{value:!0}),o.initCommonSchemas=o.InclusiveRange=o.IntProvider=o.FloatProvider=o.NoiseSettingsPresets=o.DefaultNoiseSettings=o.DimensionTypePresets=o.DefaultDimensionType=o.FunctionCases=o.ConditionCases=void 0;const t=w;o.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 e={"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}};o.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:e}};function r(d,n){const a=t.StringNode.bind(void 0,n),l=t.Reference.bind(void 0,d);d.register("block_state",(0,t.Mod)((0,t.ObjectNode)({Name:a({validator:"resource",params:{pool:"block"}}),Properties:(0,t.Opt)((0,t.MapNode)(a(),a(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),d.register("fluid_state",(0,t.Mod)((0,t.ObjectNode)({Name:a({validator:"resource",params:{pool:"fluid"}}),Properties:(0,t.Opt)((0,t.MapNode)(a(),a()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),d.register("block_pos",(0,t.Mod)((0,t.ListNode)((0,t.NumberNode)({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const I=b=>(0,t.Opt)((0,t.ChoiceNode)([{type:"number",node:(0,t.NumberNode)({integer:b}),change:O=>{var h,S;return O===void 0?0:(S=(h=O.min)!==null&&h!==void 0?h:O.max)!==null&&S!==void 0?S:0}},{type:"object",node:(0,t.ObjectNode)({min:(0,t.Opt)((0,t.NumberNode)({integer:b})),max:(0,t.Opt)((0,t.NumberNode)({integer:b}))},{context:"range"}),change:O=>({min:O!=null?O:0,max:O!=null?O:0})}]));d.register("int_bounds",I(!0)),d.register("float_bounds",I()),d.register("int_range",(0,t.ChoiceNode)([{type:"object",node:(0,t.ObjectNode)({min:(0,t.Opt)(l("number_provider")),max:(0,t.Opt)(l("number_provider"))})},{type:"number",node:(0,t.NumberNode)({integer:!0})}],{context:"range"}));const $=(b,O,h,S,z,B,J)=>{let Q={};z&&Object.keys(J[z]).forEach(W=>{Q[W]=(0,t.Mod)(J[z][W],{enabled:T=>T.push("type").get()===void 0})});const re=(0,t.ObjectNode)(g({type:(0,t.Mod)((0,t.Opt)(a({validator:"resource",params:{pool:b}})),{hidden:()=>!0}),[t.Switch]:[{push:"type"}],[t.Case]:J},Q),{context:B,disableSwitchContext:!0}),E=[{type:O,node:J[S][h]}];return z&&E.push({type:"object",priority:-1,node:re}),Object.keys(J).forEach(W=>{E.push({type:W,match:T=>{var $e;if("minecraft:"+(($e=T==null?void 0:T.type)===null||$e===void 0?void 0:$e.replace(/^minecraft:/,""))===W)return!0;const U=T?Object.keys(T):[];return typeof T=="object"&&((U==null?void 0:U.length)===0||(U==null?void 0:U.length)===1&&(U==null?void 0:U[0])==="type")},node:re,change:T=>({type:W})})}),(0,t.ChoiceNode)(E,{context:B,choiceContext:`${B}.type`})};d.register("number_provider",$("loot_number_provider_type","number","value","minecraft:constant","minecraft:uniform","number_provider",{"minecraft:constant":{value:(0,t.NumberNode)()},"minecraft:uniform":{min:l("number_provider"),max:l("number_provider")},"minecraft:binomial":{n:l("number_provider"),p:l("number_provider")},"minecraft:score":{target:l("scoreboard_name_provider"),score:a({validator:"objective"}),scale:(0,t.Opt)((0,t.NumberNode)())}})),d.register("scoreboard_name_provider",$("loot_score_provider_type","string","target","minecraft:context",null,"score_provider",{"minecraft:fixed":{name:a({validator:"entity",params:{amount:"multiple",type:"entities",isScoreHolder:!0}})},"minecraft:context":{target:(0,t.Mod)(a({enum:"entity_source"}),{default:()=>"this"})}})),d.register("nbt_provider",$("loot_nbt_provider_type","string","target","minecraft:context",null,"nbt_provider",{"minecraft:storage":{source:a({validator:"resource",params:{pool:"$storage"}})},"minecraft:context":{target:(0,t.Mod)(a({enum:"copy_source"}),{default:()=>"this"})}})),o.FloatProvider=b=>$("float_provider_type","number","value","minecraft:constant",null,"float_provider",{"minecraft:constant":{value:(0,t.NumberNode)(b)},"minecraft:uniform":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(b),max_exclusive:(0,t.NumberNode)(b)})},"minecraft:clamped_normal":{value:(0,t.ObjectNode)({min:(0,t.NumberNode)(),max:(0,t.NumberNode)(),mean:(0,t.NumberNode)(),deviation:(0,t.NumberNode)()})},"minecraft:trapezoid":{value:(0,t.ObjectNode)({min:(0,t.NumberNode)(),max:(0,t.NumberNode)(),plateau:(0,t.NumberNode)()})}}),d.register("float_provider",(0,o.FloatProvider)()),o.IntProvider=b=>$("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:(0,t.NumberNode)(g({integer:!0},b))},"minecraft:uniform":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(g({integer:!0},b)),max_inclusive:(0,t.NumberNode)(g({integer:!0},b))})},"minecraft:biased_to_bottom":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(g({integer:!0},b)),max_inclusive:(0,t.NumberNode)(g({integer:!0},b))})},"minecraft:clamped":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(g({integer:!0},b)),max_inclusive:(0,t.NumberNode)(g({integer:!0},b)),source:l("int_provider")})},"minecraft:clamped_normal":{value:(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(g({integer:!0},b)),max_inclusive:(0,t.NumberNode)(g({integer:!0},b)),mean:(0,t.NumberNode)(),deviation:(0,t.NumberNode)()})},"minecraft:weighted_list":{distribution:(0,t.ListNode)((0,t.ObjectNode)({weight:(0,t.NumberNode)({integer:!0}),data:l("int_provider")}))}}),d.register("int_provider",(0,o.IntProvider)()),d.register("vertical_anchor",(0,t.ChoiceNode)(["absolute","above_bottom","below_top"].map(b=>({type:b,match:O=>(O==null?void 0:O[b])!==void 0,change:O=>{var h,S,z;return{[b]:(z=(S=(h=O.absolute)!==null&&h!==void 0?h:O.above_bottom)!==null&&S!==void 0?S:O.below_top)!==null&&z!==void 0?z:0}},node:(0,t.ObjectNode)({[b]:(0,t.NumberNode)({integer:!0,min:-2048,max:2047})})})),{context:"vertical_anchor"})),d.register("height_provider",$("height_provider_type","number","value","minecraft:constant",null,"height_provider",{"minecraft:constant":{value:l("vertical_anchor")},"minecraft:uniform":{min_inclusive:l("vertical_anchor"),max_inclusive:l("vertical_anchor")},"minecraft:biased_to_bottom":{min_inclusive:l("vertical_anchor"),max_inclusive:l("vertical_anchor"),inner:(0,t.Opt)((0,t.NumberNode)({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:l("vertical_anchor"),max_inclusive:l("vertical_anchor"),inner:(0,t.Opt)((0,t.NumberNode)({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:l("vertical_anchor"),max_inclusive:l("vertical_anchor"),plateau:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:weighted_list":{distribution:(0,t.ListNode)((0,t.ObjectNode)({weight:(0,t.NumberNode)({integer:!0}),data:l("height_provider")}))}})),o.InclusiveRange=b=>(0,t.ObjectNode)({min_inclusive:(0,t.NumberNode)(b),max_inclusive:(0,t.NumberNode)(b)},{context:"range"}),d.register("noise_parameters",(0,t.Mod)((0,t.ObjectNode)({firstOctave:(0,t.NumberNode)({integer:!0}),amplitudes:(0,t.ListNode)((0,t.NumberNode)())},{context:"noise_parameters"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})})),o.ConditionCases=(b=a({enum:"entity_source"}))=>({"minecraft:alternative":{terms:(0,t.ListNode)(l("condition"))},"minecraft:block_state_property":{block:a({validator:"resource",params:{pool:"block"}}),properties:(0,t.MapNode)(a(),a(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:l("damage_source_predicate")},"minecraft:entity_properties":{entity:b,predicate:l("entity_predicate")},"minecraft:entity_scores":{entity:b,scores:(0,t.MapNode)(a({validator:"objective"}),l("int_range"))},"minecraft:inverted":{term:l("condition")},"minecraft:killed_by_player":{inverse:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:location_check":{offsetX:(0,t.Opt)((0,t.NumberNode)({integer:!0})),offsetY:(0,t.Opt)((0,t.NumberNode)({integer:!0})),offsetZ:(0,t.Opt)((0,t.NumberNode)({integer:!0})),predicate:l("location_predicate")},"minecraft:match_tool":{predicate:l("item_predicate")},"minecraft:random_chance":{chance:(0,t.NumberNode)({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:(0,t.NumberNode)({min:0,max:1}),looting_multiplier:(0,t.NumberNode)()},"minecraft:reference":{name:a({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:a({validator:"resource",params:{pool:"enchantment"}}),chances:(0,t.ListNode)((0,t.NumberNode)({min:0,max:1}))},"minecraft:time_check":{value:l("int_range"),period:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:value_check":{value:l("number_provider"),range:l("int_range")},"minecraft:weather_check":{raining:(0,t.Opt)((0,t.BooleanNode)()),thundering:(0,t.Opt)((0,t.BooleanNode)())}}),o.FunctionCases=(b,O=a({enum:"copy_source"}),h=a({enum:"entity_source"}))=>{const S={"minecraft:apply_bonus":{enchantment:a({validator:"resource",params:{pool:"enchantment"}}),formula:a({validator:"resource",params:{pool:n.get("loot_table_apply_bonus_formula")}}),parameters:(0,t.Mod)((0,t.ObjectNode)({bonusMultiplier:(0,t.Mod)((0,t.NumberNode)(),{enabled:B=>B.pop().push("formula").get()==="minecraft:uniform_bonus_count"}),extra:(0,t.Mod)((0,t.NumberNode)(),{enabled:B=>B.pop().push("formula").get()==="minecraft:binomial_with_bonus_count"}),probability:(0,t.Mod)((0,t.NumberNode)(),{enabled:B=>B.pop().push("formula").get()==="minecraft:binomial_with_bonus_count"})}),{enabled:B=>B.push("formula").get()!=="minecraft:ore_drops"})},"minecraft:copy_name":{source:O},"minecraft:copy_nbt":{source:l("nbt_provider"),ops:(0,t.ListNode)((0,t.ObjectNode)({source:a({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:a({validator:"nbt_path",params:{category:"minecraft:item"}}),op:a({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:a({validator:"resource",params:{pool:"block"}}),properties:(0,t.ListNode)(a({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:(0,t.Opt)((0,t.ListNode)(a({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:l("number_provider"),treasure:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:exploration_map":{destination:(0,t.Opt)(a({enum:"map_feature"})),decoration:(0,t.Opt)(a({enum:"map_decoration"})),zoom:(0,t.Opt)((0,t.NumberNode)({integer:!0})),search_radius:(0,t.Opt)((0,t.NumberNode)({integer:!0})),skip_existing_chunks:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:fill_player_head":{entity:h},"minecraft:limit_count":{limit:l("int_range")},"minecraft:looting_enchant":{count:l("number_provider"),limit:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:set_attributes":{modifiers:(0,t.ListNode)(l("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:(0,t.ListNode)((0,t.ObjectNode)({pattern:a({enum:"banner_pattern"}),color:a({enum:"dye_color"})})),append:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_contents":{type:a({validator:"resource",params:{pool:"block_entity_type"}}),entries:(0,t.ListNode)(l("loot_entry"))},"minecraft:set_count":{count:l("number_provider"),add:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_damage":{damage:l("number_provider"),add:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_enchantments":{enchantments:(0,t.MapNode)(a({validator:"resource",params:{pool:"enchantment"}}),l("number_provider")),add:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_loot_table":{type:a({validator:"resource",params:{pool:"block_entity_type"}}),name:a({validator:"resource",params:{pool:"$loot_table"}}),seed:(0,t.Opt)((0,t.NumberNode)({integer:!0}))},"minecraft:set_lore":{entity:(0,t.Opt)(h),lore:(0,t.ListNode)(l("text_component")),replace:(0,t.Opt)((0,t.BooleanNode)())},"minecraft:set_name":{entity:(0,t.Opt)(h),name:(0,t.Opt)(l("text_component"))},"minecraft:set_nbt":{tag:a({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_potion":{id:a({validator:"resource",params:{pool:"potion"}})},"minecraft:set_stew_effect":{effects:(0,t.Opt)((0,t.ListNode)((0,t.ObjectNode)({type:a({validator:"resource",params:{pool:"mob_effect"}}),duration:l("number_provider")})))}},z={};return n.get("loot_function_type").forEach(B=>{z[B]=g(g({},S[B]),b)}),z},o.DimensionTypePresets=b=>(0,t.ObjectOrPreset)(a({validator:"resource",params:{pool:"$dimension_type"}}),b,{"minecraft:overworld":o.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}}),o.NoiseSettingsPresets=b=>(0,t.ObjectOrPreset)(a({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),b,{"minecraft:overworld":o.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:e}},"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:e}},"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:e}},"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:e}},"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:e}}})}o.initCommonSchemas=r})(D);var pe={};Object.defineProperty(pe,"__esModule",{value:!0});pe.initConditionSchemas=void 0;const ee=w,nt=D;function at(o,t){const e=ee.Reference.bind(void 0,o),r=ee.StringNode.bind(void 0,t);o.register("predicate",(0,ee.ObjectOrList)(e("condition"),{choiceContext:"condition"})),o.register("condition",(0,ee.Mod)((0,ee.ObjectNode)({condition:r({validator:"resource",params:{pool:"loot_condition_type"}}),[ee.Switch]:[{push:"condition"}],[ee.Case]:(0,nt.ConditionCases)()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))}pe.initConditionSchemas=at;var ue={};Object.defineProperty(ue,"__esModule",{value:!0});ue.initDimensionSchemas=void 0;const v=w,Te=D;function ct(o,t){const e=v.Reference.bind(void 0,o),r=v.StringNode.bind(void 0,t);o.register("dimension",(0,v.Mod)((0,v.ObjectNode)({type:(0,Te.DimensionTypePresets)(e("dimension_type")),generator:(0,v.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[v.Switch]:[{push:"type"}],[v.Case]:{"minecraft:noise":{seed:(0,v.NumberNode)({integer:!0}),settings:(0,Te.NoiseSettingsPresets)(e("noise_settings")),biome_source:(0,v.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/biome_source"}}),[v.Switch]:[{push:"type"}],[v.Case]:{"minecraft:fixed":{biome:r({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{preset:(0,v.Opt)(r({validator:"resource",params:{pool:["minecraft:overworld","minecraft:nether"]}})),biomes:(0,v.Mod)((0,v.ListNode)(e("generator_biome")),{enabled:n=>n.push("preset").get()===void 0,default:()=>[{biome:"minecraft:plains"}]})},"minecraft:checkerboard":{scale:(0,v.Opt)((0,v.NumberNode)({integer:!0,min:0,max:62})),biomes:(0,v.ListNode)(r({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:(0,v.NumberNode)({integer:!0})}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:(0,v.ObjectNode)({biome:(0,v.Opt)(r({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:(0,v.Opt)((0,v.BooleanNode)()),features:(0,v.Opt)((0,v.BooleanNode)()),layers:(0,v.ListNode)(e("generator_layer")),structures:e("generator_structures")})}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>{const n=Math.floor(Math.random()*4294967296)-2147483648;return{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:n,biome_source:{type:"minecraft:fixed",seed:n,biome:"minecraft:plains"},settings:"minecraft:overworld"}}}}));const d=(0,v.ChoiceNode)([{type:"number",node:(0,v.NumberNode)({min:-2,max:2}),change:n=>{var a;return(a=n[0])!==null&&a!==void 0?a:0}},{type:"list",node:(0,v.ListNode)((0,v.NumberNode)({min:-2,max:2}),{minLength:2,maxLength:2}),change:n=>[n!=null?n:0,n!=null?n:0]}]);o.register("generator_biome",(0,v.Mod)((0,v.ObjectNode)({biome:r({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:(0,v.ObjectNode)({temperature:d,humidity:d,continentalness:d,erosion:d,weirdness:d,depth:d,offset:(0,v.NumberNode)({min:0,max:1})})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})}))}ue.initDimensionSchemas=ct;var fe={};Object.defineProperty(fe,"__esModule",{value:!0});fe.initDimensionTypeSchemas=void 0;const L=w,dt=D;function st(o,t){const e=L.StringNode.bind(void 0,t);o.register("dimension_type",(0,L.Mod)((0,L.ObjectNode)({ultrawarm:(0,L.BooleanNode)(),natural:(0,L.BooleanNode)(),piglin_safe:(0,L.BooleanNode)(),respawn_anchor_works:(0,L.BooleanNode)(),bed_works:(0,L.BooleanNode)(),has_raids:(0,L.BooleanNode)(),has_skylight:(0,L.BooleanNode)(),has_ceiling:(0,L.BooleanNode)(),coordinate_scale:(0,L.NumberNode)({min:1e-5,max:3e7}),ambient_light:(0,L.NumberNode)(),fixed_time:(0,L.Opt)((0,L.NumberNode)({integer:!0})),logical_height:(0,L.NumberNode)({integer:!0,min:0,max:4096}),effects:(0,L.Opt)(e({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:e({validator:"resource",params:{pool:"$tag/block"}}),min_y:(0,L.NumberNode)({integer:!0,min:-2048,max:2047}),height:(0,L.NumberNode)({integer:!0,min:0,max:4096})},{context:"dimension_type"}),r=>({default:()=>dt.DefaultDimensionType,validate:(d,n,a,l)=>(n=r.validate(d,n,a,l),(n==null?void 0:n.min_y)+(n==null?void 0:n.height)>2047&&a.add(d.push("height"),"error.min_y_plus_height",2047),(n==null?void 0:n.logical_height)>(n==null?void 0:n.height)&&a.add(d.push("logical_height"),"error.logical_height"),(n==null?void 0:n.height)%16!==0&&a.add(d.push("height"),"error.height_multiple",16),(n==null?void 0:n.min_y)%16!==0&&a.add(d.push("min_y"),"error.min_y_multiple",16),n)})))}fe.initDimensionTypeSchemas=st;var be={};Object.defineProperty(be,"__esModule",{value:!0});be.initItemModifierSchemas=void 0;const V=w,lt=D;function mt(o,t){const e=V.Reference.bind(void 0,o),r=V.StringNode.bind(void 0,t);o.register("item_modifier",(0,V.ObjectOrList)(e("function"),{choiceContext:"function"}));const d={conditions:(0,V.Opt)((0,V.ListNode)(e("condition")))};o.register("function",(0,V.Mod)((0,V.ObjectNode)({function:r({validator:"resource",params:{pool:"loot_function_type"}}),[V.Switch]:[{push:"function"}],[V.Case]:(0,lt.FunctionCases)(d)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))}be.initItemModifierSchemas=mt;var ge={},F={};Object.defineProperty(F,"__esModule",{value:!0});F.LootFunctions=F.LootConditions=F.LootCopySources=F.LootEntitySources=F.LootTableTypes=void 0;F.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]}]]);F.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]);F.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]);F.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",[]]]);F.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(ge,"__esModule",{value:!0});ge.initLootTableSchemas=void 0;const f=w,ie=F,qe=D;function _t(o,t){const e=f.Reference.bind(void 0,o),r=f.StringNode.bind(void 0,t),d={conditions:(0,f.Opt)((0,f.ListNode)(e("loot_condition")))},n=g({functions:(0,f.Opt)((0,f.ListNode)(e("loot_function")))},d);function a(h,S,z){const B=[],J=Q=>t.get(S).filter(re=>{var E;return((E=h.get(re))!==null&&E!==void 0?E:[]).every(T=>Q.includes(T))});for(const[Q,{allows:re,requires:E}]of ie.LootTableTypes){const W=[...re,...E];B.push({match:T=>T.getModel().get(new f.Path(["type"]))===Q,node:z(J(W))})}return B.push({match:Q=>!0,node:z(S)}),(0,f.SwitchNode)(B)}const l=a(ie.LootConditions,"loot_condition_type",h=>r({validator:"resource",params:{pool:h instanceof Array?h:"loot_condition_type"}})),I=a(ie.LootFunctions,"loot_function_type",h=>r({validator:"resource",params:{pool:h instanceof Array?h:"loot_function_type"}})),$=a(ie.LootEntitySources,"entity_source",h=>r({enum:h})),b=a(ie.LootCopySources,"copy_source",h=>r({enum:h}));o.register("loot_table",(0,f.Mod)((0,f.ObjectNode)({type:(0,f.Opt)(r({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:(0,f.Opt)((0,f.ListNode)((0,f.Mod)((0,f.ObjectNode)(g({rolls:e("number_provider"),bonus_rolls:(0,f.Opt)(e("number_provider")),entries:(0,f.ListNode)(e("loot_entry"))},n),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:(0,f.Opt)((0,f.ListNode)(e("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const O={enabled:h=>{var S;return((S=h.pop().get())===null||S===void 0?void 0:S.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(h.push("type").get())}};o.register("loot_entry",(0,f.Mod)((0,f.ObjectNode)({type:r({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:(0,f.Opt)((0,f.Mod)((0,f.NumberNode)({integer:!0,min:1}),O)),quality:(0,f.Opt)((0,f.Mod)((0,f.NumberNode)({integer:!0}),O)),[f.Switch]:[{push:"type"}],[f.Case]:{"minecraft:alternatives":g({children:(0,f.ListNode)(e("loot_entry"))},n),"minecraft:dynamic":g({name:r()},n),"minecraft:group":g({children:(0,f.ListNode)(e("loot_entry"))},n),"minecraft:item":g({name:r({validator:"resource",params:{pool:"item"}})},n),"minecraft:loot_table":g({name:r({validator:"resource",params:{pool:"$loot_table"}})},n),"minecraft:sequence":g({children:(0,f.ListNode)(e("loot_entry"))},n),"minecraft:tag":g({name:r({validator:"resource",params:{pool:"$tag/item"}}),expand:(0,f.Opt)((0,f.BooleanNode)())},n)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),o.register("loot_function",(0,f.Mod)((0,f.ObjectNode)({function:I,[f.Switch]:[{push:"function"}],[f.Case]:(0,qe.FunctionCases)(d,b,$)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),o.register("loot_condition",(0,f.Mod)((0,f.ObjectNode)({condition:l,[f.Switch]:[{push:"condition"}],[f.Case]:(0,qe.ConditionCases)($)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),o.register("attribute_modifier",(0,f.Mod)((0,f.ObjectNode)({attribute:r({validator:"resource",params:{pool:"attribute"}}),name:r(),amount:e("number_provider"),operation:r({enum:["addition","multiply_base","multiply_total"]}),id:(0,f.Opt)(r({validator:"uuid"})),slot:(0,f.StringOrList)(r({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))}ge.initLootTableSchemas=_t;var Ne={};Object.defineProperty(Ne,"__esModule",{value:!0});Ne.initPackMcmetaSchemas=void 0;const te=w,K=8;function pt(o,t){o.register("pack_mcmeta",(0,te.Mod)((0,te.ObjectNode)({pack:(0,te.Mod)((0,te.ObjectNode)({pack_format:(0,te.Mod)((0,te.NumberNode)({integer:!0,min:K,max:K}),{default:()=>K,canUpdate:(e,r)=>r!==K,update:()=>[{name:"pack_format",params:[K],newValue:K}]}),description:(0,te.Reference)(o,"text_component")}),{default:()=>({pack_format:K,description:""})})}),{default:()=>({pack:{pack_format:K,description:""}})}))}Ne.initPackMcmetaSchemas=pt;var he={};Object.defineProperty(he,"__esModule",{value:!0});he.initPredicatesSchemas=void 0;const c=w;function ut(o,t){const e=c.Reference.bind(void 0,o),r=c.StringNode.bind(void 0,t),d=(0,c.ChoiceNode)([{type:"string",node:r(),change:n=>typeof n=="boolean"||typeof n=="number"?n.toString():""},{type:"number",node:(0,c.NumberNode)(),change:n=>typeof n=="string"?parseInt(n):0},{type:"object",node:(0,c.ObjectNode)({min:(0,c.Opt)((0,c.NumberNode)({integer:!0})),max:(0,c.Opt)((0,c.NumberNode)({integer:!0}))}),change:n=>typeof n=="number"?{min:n,max:n}:{}},{type:"boolean",node:(0,c.BooleanNode)(),change:n=>n==="true"||n===1}]);o.register("item_predicate",(0,c.ObjectNode)({items:(0,c.Opt)((0,c.ListNode)(r({validator:"resource",params:{pool:"item"}}))),tag:(0,c.Opt)(r({validator:"resource",params:{pool:"$tag/item"}})),count:e("int_bounds"),durability:e("int_bounds"),potion:(0,c.Opt)(r({validator:"resource",params:{pool:"potion"}})),nbt:(0,c.Opt)(r({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:(0,c.Opt)((0,c.ListNode)(e("enchantment_predicate")))},{context:"item"})),o.register("enchantment_predicate",(0,c.ObjectNode)({enchantment:(0,c.Opt)(r({validator:"resource",params:{pool:"enchantment"}})),levels:e("int_bounds")},{context:"enchantment"})),o.register("block_predicate",(0,c.ObjectNode)({blocks:(0,c.Opt)((0,c.ListNode)(r({validator:"resource",params:{pool:"block"}}))),tag:(0,c.Opt)(r({validator:"resource",params:{pool:"$tag/block"}})),nbt:(0,c.Opt)(r({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:(0,c.Opt)((0,c.MapNode)(r(),d,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),o.register("fluid_predicate",(0,c.ObjectNode)({fluid:(0,c.Opt)(r({validator:"resource",params:{pool:"fluid"}})),tag:(0,c.Opt)(r({validator:"resource",params:{pool:"$tag/fluid"}})),state:(0,c.Opt)((0,c.MapNode)(r(),d))},{context:"fluid"})),o.register("location_predicate",(0,c.ObjectNode)({position:(0,c.Opt)((0,c.ObjectNode)({x:e("float_bounds"),y:e("float_bounds"),z:e("float_bounds")})),biome:(0,c.Opt)(r({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:(0,c.Opt)(r({enum:t.get("worldgen/structure_feature").map(n=>n.slice(10))})),dimension:(0,c.Opt)(r({validator:"resource",params:{pool:"$dimension"}})),light:(0,c.Opt)((0,c.ObjectNode)({light:e("int_bounds")})),smokey:(0,c.Opt)((0,c.BooleanNode)()),block:(0,c.Opt)(e("block_predicate")),fluid:(0,c.Opt)(e("fluid_predicate"))},{context:"location"})),o.register("statistic_predicate",(0,c.ObjectNode)({type:r({validator:"resource",params:{pool:"stat_type"}}),stat:r(),value:e("int_bounds"),[c.Switch]:[{push:"type"}],[c.Case]:{"minecraft:mined":{stat:r({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:r({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:r({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:r({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:r({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:r({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:r({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:r({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:r({validator:"resource",params:{pool:"custom_stat"}})}}})),o.register("player_predicate",(0,c.ObjectNode)({gamemode:(0,c.Opt)(r({enum:"gamemode"})),level:e("int_bounds"),advancements:(0,c.Opt)((0,c.MapNode)(r({validator:"resource",params:{pool:"$advancement"}}),(0,c.ChoiceNode)([{type:"boolean",node:(0,c.BooleanNode)(),change:n=>!0},{type:"object",node:(0,c.MapNode)(r(),(0,c.BooleanNode)())}]))),recipes:(0,c.Opt)((0,c.MapNode)(r({validator:"resource",params:{pool:"$recipe"}}),(0,c.BooleanNode)())),stats:(0,c.Opt)((0,c.ListNode)(e("statistic_predicate"))),looking_at:(0,c.Opt)(e("entity_predicate"))},{context:"player"})),o.register("status_effect_predicate",(0,c.ObjectNode)({amplifier:e("int_bounds"),duration:e("int_bounds"),ambient:(0,c.Opt)((0,c.BooleanNode)()),visible:(0,c.Opt)((0,c.BooleanNode)())},{context:"status_effect"})),o.register("distance_predicate",(0,c.ObjectNode)({x:e("float_bounds"),y:e("float_bounds"),z:e("float_bounds"),absolute:e("float_bounds"),horizontal:e("float_bounds")},{context:"distance"})),o.register("entity_predicate",(0,c.ObjectNode)({type:(0,c.Opt)(r({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:(0,c.Opt)(r({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:(0,c.Opt)(r({validator:"team"})),location:(0,c.Opt)(e("location_predicate")),stepping_on:(0,c.Opt)(e("location_predicate")),distance:(0,c.Opt)(e("distance_predicate")),flags:(0,c.Opt)((0,c.ObjectNode)({is_on_fire:(0,c.Opt)((0,c.BooleanNode)()),is_sneaking:(0,c.Opt)((0,c.BooleanNode)()),is_sprinting:(0,c.Opt)((0,c.BooleanNode)()),is_swimming:(0,c.Opt)((0,c.BooleanNode)()),is_baby:(0,c.Opt)((0,c.BooleanNode)())})),equipment:(0,c.Opt)((0,c.MapNode)(r({enum:"slot"}),e("item_predicate"))),vehicle:(0,c.Opt)(e("entity_predicate")),passenger:(0,c.Opt)(e("entity_predicate")),targeted_entity:(0,c.Opt)(e("entity_predicate")),player:(0,c.Opt)(e("player_predicate")),lightning_bolt:(0,c.Opt)((0,c.ObjectNode)({blocks_set_on_fire:(0,c.Opt)(e("int_bounds")),entity_struck:(0,c.Opt)(e("entity_predicate"))})),fishing_hook:(0,c.Opt)((0,c.ObjectNode)({in_open_water:(0,c.Opt)((0,c.BooleanNode)())})),catType:(0,c.Opt)(r({enum:"cat_texture"})),effects:(0,c.Opt)((0,c.MapNode)(r({validator:"resource",params:{pool:"mob_effect"}}),e("status_effect_predicate")))},{context:"entity"})),o.register("damage_source_predicate",(0,c.ObjectNode)({is_explosion:(0,c.Opt)((0,c.BooleanNode)()),is_fire:(0,c.Opt)((0,c.BooleanNode)()),is_magic:(0,c.Opt)((0,c.BooleanNode)()),is_projectile:(0,c.Opt)((0,c.BooleanNode)()),is_lightning:(0,c.Opt)((0,c.BooleanNode)()),bypasses_armor:(0,c.Opt)((0,c.BooleanNode)()),bypasses_invulnerability:(0,c.Opt)((0,c.BooleanNode)()),bypasses_magic:(0,c.Opt)((0,c.BooleanNode)()),source_entity:(0,c.Opt)(e("entity_predicate")),direct_entity:(0,c.Opt)(e("entity_predicate"))},{context:"damage_source"})),o.register("damage_predicate",(0,c.ObjectNode)({dealt:e("float_bounds"),taken:e("float_bounds"),blocked:(0,c.Opt)((0,c.BooleanNode)()),source_entity:(0,c.Opt)(e("entity_predicate")),type:(0,c.Opt)(e("damage_source_predicate"))},{context:"damage"}))}he.initPredicatesSchemas=ut;var ye={};Object.defineProperty(ye,"__esModule",{value:!0});ye.initRecipeSchemas=void 0;const u=w;function ft(o,t){const e=u.Reference.bind(void 0,o),r=u.StringNode.bind(void 0,t);o.register("recipe",(0,u.Mod)((0,u.ObjectNode)({type:r({validator:"resource",params:{pool:"recipe_serializer"}}),[u.Switch]:[{push:"type"}],[u.Case]:{"minecraft:crafting_shaped":{group:(0,u.Opt)(r({enum:"recipe_group",additional:!0})),pattern:(0,u.ListNode)(r()),key:(0,u.MapNode)(r(),e("recipe_ingredient")),result:e("recipe_result")},"minecraft:crafting_shapeless":{group:(0,u.Opt)(r()),ingredients:(0,u.ListNode)(e("recipe_ingredient")),result:e("recipe_result")},"minecraft:smelting":{group:(0,u.Opt)(r()),ingredient:e("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:(0,u.Opt)((0,u.NumberNode)()),cookingtime:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:(0,u.Opt)(r()),ingredient:e("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:(0,u.Opt)((0,u.NumberNode)()),cookingtime:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:(0,u.Opt)(r()),ingredient:e("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:(0,u.Opt)((0,u.NumberNode)()),cookingtime:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:(0,u.Opt)(r()),ingredient:e("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:(0,u.Opt)((0,u.NumberNode)()),cookingtime:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:(0,u.Opt)(r()),ingredient:e("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),count:(0,u.NumberNode)({integer:!0})},"minecraft:smithing":{group:(0,u.Opt)(r()),base:e("recipe_ingredient_object"),addition:e("recipe_ingredient_object"),result:e("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),o.register("recipe_ingredient",(0,u.Mod)((0,u.ChoiceNode)([{type:"object",node:e("recipe_ingredient_object"),change:d=>d[0]},{type:"list",node:(0,u.ListNode)(e("recipe_ingredient_object")),change:d=>[d]}]),{default:()=>({item:"minecraft:stone"})})),o.register("recipe_ingredient_object",(0,u.Mod)((0,u.ObjectNode)({item:(0,u.Opt)(r({validator:"resource",params:{pool:"item"}})),tag:(0,u.Opt)(r({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),o.register("recipe_result",(0,u.Mod)((0,u.ObjectNode)({item:r({validator:"resource",params:{pool:"item"}}),count:(0,u.Opt)((0,u.Mod)((0,u.NumberNode)({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))}ye.initRecipeSchemas=ft;var ve={};Object.defineProperty(ve,"__esModule",{value:!0});ve.initTagsSchemas=void 0;const G=w;function bt(o,t){const e=G.StringNode.bind(void 0,t),r=d=>(0,G.Mod)((0,G.ObjectNode)({replace:(0,G.Opt)((0,G.BooleanNode)()),values:(0,G.ListNode)((0,G.ChoiceNode)([{type:"string",node:e({validator:"resource",params:{pool:d,allowTag:!0}}),change:n=>n.id},{type:"object",node:(0,G.ObjectNode)({id:e({validator:"resource",params:{pool:d,allowTag:!0,allowUnknown:!0}}),required:(0,G.BooleanNode)()}),change:n=>({id:n})}]))},{context:"tag"}),{default:()=>({values:[]})});o.register("block_tag",r("block")),o.register("entity_type_tag",r("entity_type")),o.register("fluid_tag",r("fluid")),o.register("function_tag",r("$function")),o.register("game_event_tag",r("game_event")),o.register("item_tag",r("item"))}ve.initTagsSchemas=bt;var Oe={};Object.defineProperty(Oe,"__esModule",{value:!0});Oe.initTextComponentSchemas=void 0;const m=w;function gt(o,t){const e=m.Reference.bind(void 0,o),r=m.StringNode.bind(void 0,t),d=a=>{var l;return a instanceof Array?d(a[0]):(l=a==null?void 0:a.text)!==null&&l!==void 0?l:typeof a=="object"?"":a==null?void 0:a.toString()};o.register("text_component",(0,m.Mod)((0,m.ChoiceNode)([{type:"object",node:e("text_component_object"),change:a=>a instanceof Array?typeof a[0]=="object"?a[0]:{text:d(a[0])}:typeof a=="object"?a:{text:d(a)}},{type:"list",node:e("text_component_list"),change:a=>[a]},{type:"string",priority:1,node:r(),change:d},{type:"number",node:(0,m.NumberNode)(),change:a=>{const l=parseFloat(d(a));return isFinite(l)?l:a?1:0}},{type:"boolean",node:(0,m.BooleanNode)(),change:a=>{const l=d(a);return l==="true"||l==="false"?l==="true":!!l}}],{context:"text_component"}),{default:()=>({text:""})}));const n={color:(0,m.Opt)(r()),font:(0,m.Opt)(r()),bold:(0,m.Opt)((0,m.BooleanNode)()),italic:(0,m.Opt)((0,m.BooleanNode)()),underlined:(0,m.Opt)((0,m.BooleanNode)()),strikethrough:(0,m.Opt)((0,m.BooleanNode)()),obfuscated:(0,m.Opt)((0,m.BooleanNode)()),insertion:(0,m.Opt)(r()),clickEvent:(0,m.Opt)((0,m.ObjectNode)({action:r({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[m.Switch]:[{push:"action"}],[m.Case]:{change_page:{value:r()},copy_to_clipboard:{value:r()},open_file:{value:r()},open_url:{value:r()},run_command:{value:r({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:r({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:(0,m.Opt)((0,m.ObjectNode)({action:r({enum:["show_text","show_item","show_entity"]}),[m.Switch]:[{push:"action"}],[m.Case]:{show_text:{value:(0,m.Opt)(e("text_component")),contents:(0,m.Opt)(e("text_component"))},show_item:{value:(0,m.Opt)(r({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:(0,m.Opt)((0,m.ObjectNode)({id:r({validator:"resource",params:{pool:"item"}}),count:(0,m.Opt)((0,m.NumberNode)({integer:!0})),tag:(0,m.Opt)(r({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:(0,m.Opt)((0,m.ObjectNode)({name:(0,m.Opt)(r()),type:(0,m.Opt)(r()),id:(0,m.Opt)(r())})),contents:(0,m.Opt)((0,m.Mod)((0,m.ObjectNode)({name:(0,m.Opt)(e("text_component")),type:r({validator:"resource",params:{pool:"entity_type"}}),id:r({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:(0,m.Opt)(e("text_component_list"))};o.register("text_component_object",(0,m.Mod)((0,m.ChoiceNode)([{type:"text",match:a=>typeof a=="object",change:a=>({text:""}),priority:-1,node:(0,m.ObjectNode)(g({text:r()},n))},{type:"translation",match:a=>(a==null?void 0:a.translate)!==void 0,change:a=>({translate:""}),node:(0,m.ObjectNode)(g({translate:r(),with:(0,m.Opt)(e("text_component_list"))},n))},{type:"score",match:a=>(a==null?void 0:a.score)!==void 0,change:a=>({score:{}}),node:(0,m.ObjectNode)(g({score:(0,m.ObjectNode)({name:r({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:r({validator:"objective"}),value:(0,m.Opt)(r())})},n))},{type:"selector",match:a=>(a==null?void 0:a.selector)!==void 0,change:a=>({selector:""}),node:(0,m.ObjectNode)(g({selector:r({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:(0,m.Opt)(e("text_component"))},n))},{type:"keybind",match:a=>(a==null?void 0:a.keybind)!==void 0,change:a=>({keybind:""}),node:(0,m.ObjectNode)(g({keybind:r({enum:"keybind",additional:!0})},n))},{type:"nbt",match:a=>(a==null?void 0:a.nbt)!==void 0,change:a=>({nbt:""}),node:(0,m.ObjectNode)(g({nbt:r({validator:"nbt_path"}),block:(0,m.Opt)(r({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:(0,m.Opt)(r({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:(0,m.Opt)(r({validator:"resource",params:{pool:"$storage"}})),interpret:(0,m.Opt)((0,m.BooleanNode)()),separator:(0,m.Opt)(e("text_component"))},n))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),o.register("text_component_list",(0,m.Mod)((0,m.ListNode)(e("text_component")),{default:()=>[{text:""}]}))}Oe.initTextComponentSchemas=gt;var xe={},ke={};Object.defineProperty(ke,"__esModule",{value:!0});ke.initBiomeSchemas=void 0;const p=w;function Nt(o,t){const e=p.StringNode.bind(void 0,t);o.register("biome",(0,p.Mod)((0,p.ObjectNode)({temperature:(0,p.NumberNode)(),downfall:(0,p.NumberNode)(),precipitation:e({enum:["none","rain","snow"]}),temperature_modifier:(0,p.Opt)(e({enum:["none","frozen"]})),category:e({enum:"biome_category"}),creature_spawn_probability:(0,p.Opt)((0,p.NumberNode)({min:0,max:1})),effects:(0,p.ObjectNode)({sky_color:(0,p.NumberNode)({color:!0}),fog_color:(0,p.NumberNode)({color:!0}),water_color:(0,p.NumberNode)({color:!0}),water_fog_color:(0,p.NumberNode)({color:!0}),grass_color:(0,p.Opt)((0,p.NumberNode)({color:!0})),foliage_color:(0,p.Opt)((0,p.NumberNode)({color:!0})),grass_color_modifier:(0,p.Opt)(e({enum:["none","dark_forest","swamp"]})),ambient_sound:(0,p.Opt)(e()),mood_sound:(0,p.Opt)((0,p.ObjectNode)({sound:e(),tick_delay:(0,p.NumberNode)({integer:!0}),block_search_extent:(0,p.NumberNode)({integer:!0}),offset:(0,p.NumberNode)()})),additions_sound:(0,p.Opt)((0,p.ObjectNode)({sound:e(),tick_chance:(0,p.NumberNode)({min:0,max:1})})),music:(0,p.Opt)((0,p.ObjectNode)({sound:e(),min_delay:(0,p.NumberNode)({integer:!0,min:0}),max_delay:(0,p.NumberNode)({integer:!0,min:0}),replace_current_music:(0,p.BooleanNode)()})),particle:(0,p.Opt)((0,p.ObjectNode)({options:(0,p.ObjectNode)({type:e()}),probability:(0,p.NumberNode)({min:0,max:1})}))}),spawners:(0,p.MapNode)(e({enum:["monster","creature","ambient","axolotls","underground_water_creature","water_creature","water_ambient","misc"]}),(0,p.Mod)((0,p.ListNode)((0,p.ObjectNode)({type:e({validator:"resource",params:{pool:"entity_type"}}),weight:(0,p.NumberNode)({integer:!0}),minCount:(0,p.NumberNode)({integer:!0}),maxCount:(0,p.NumberNode)({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:(0,p.MapNode)(e({validator:"resource",params:{pool:"entity_type"}}),(0,p.Mod)((0,p.ObjectNode)({energy_budget:(0,p.NumberNode)(),charge:(0,p.NumberNode)()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:(0,p.MapNode)(e({enum:["air","liquid"]}),(0,p.Mod)((0,p.ListNode)(e({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:(0,p.ListNode)((0,p.Mod)((0,p.ListNode)(e({validator:"resource",params:{pool:"$worldgen/placed_feature"}})),{category:()=>"predicate"}),{maxLength:11})},{context:"biome"}),{default:()=>({temperature:.8,downfall:.4,precipitation:"rain",category:"plains",effects:{sky_color:7907327,fog_color:12638463,water_color:4159204,water_fog_color:329011}})}))}ke.initBiomeSchemas=Nt;var we={};Object.defineProperty(we,"__esModule",{value:!0});we.initCarverSchemas=void 0;const C=w,X=D;function ht(o,t){const e=C.Reference.bind(void 0,o),r=C.StringNode.bind(void 0,t),d={vertical_rotation:(0,X.FloatProvider)(),shape:(0,C.ObjectNode)({distance_factor:(0,X.FloatProvider)(),thickness:(0,X.FloatProvider)(),width_smoothness:(0,C.NumberNode)({integer:!0,min:0}),horizontal_radius_factor:(0,X.FloatProvider)(),vertical_radius_default_factor:(0,C.NumberNode)(),vertical_radius_center_factor:(0,C.NumberNode)()})},n={horizontal_radius_multiplier:(0,X.FloatProvider)(),vertical_radius_multiplier:(0,X.FloatProvider)(),floor_level:(0,X.FloatProvider)({min:-1,max:1})};o.register("configured_carver",(0,C.Mod)((0,C.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/carver"}}),config:(0,C.ObjectNode)({probability:(0,C.NumberNode)({min:0,max:1}),y:e("height_provider"),yScale:(0,X.FloatProvider)(),lava_level:e("vertical_anchor"),debug_settings:(0,C.Opt)((0,C.ObjectNode)({debug_mode:(0,C.Opt)((0,C.BooleanNode)()),air_state:(0,C.Opt)(e("block_state")),water_state:(0,C.Opt)(e("block_state")),lava_state:(0,C.Opt)(e("block_state")),barrier_state:(0,C.Opt)(e("block_state"))})),[C.Switch]:["pop",{push:"type"}],[C.Case]:{"minecraft:canyon":d,"minecraft:cave":n,"minecraft:nether_cave":n}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))}we.initCarverSchemas=ht;var Se={};Object.defineProperty(Se,"__esModule",{value:!0});Se.initDecoratorSchemas=void 0;const P=w,ne=D;function yt(o,t){const e=P.Reference.bind(void 0,o),r=P.StringNode.bind(void 0,t);o.register("decorator",(0,P.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/placement_modifier_type"}}),[P.Switch]:[{push:"type"}],[P.Case]:{"minecraft:block_predicate_filter":{predicate:e("block_predicate_worldgen")},"minecraft:carving_mask":{step:r({enum:"generation_step"})},"minecraft:rarity_filter":{chance:(0,P.NumberNode)({integer:!0,min:0})},"minecraft:count":{count:(0,ne.IntProvider)({min:0,max:256})},"minecraft:count_on_every_layer":{count:(0,ne.IntProvider)({min:0,max:256})},"minecraft:noise_threshold_count":{noise_level:(0,P.NumberNode)(),below_noise:(0,P.NumberNode)({integer:!0}),above_noise:(0,P.NumberNode)({integer:!0})},"minecraft:noise_based_count":{noise_to_count_ratio:(0,P.NumberNode)({integer:!0}),noise_factor:(0,P.NumberNode)(),noise_offset:(0,P.Opt)((0,P.NumberNode)())},"minecraft:environment_scan":{direction_of_search:r({enum:["up","down"]}),max_steps:(0,P.NumberNode)({integer:!0,min:1,max:32}),target_condition:e("block_predicate_worldgen"),allowed_search_condition:(0,P.Opt)(e("block_predicate_worldgen"))},"minecraft:heightmap":{heightmap:r({enum:"heightmap_type"})},"minecraft:height_range":{height:e("height_provider")},"minecraft:random_offset":{xz_spread:(0,ne.IntProvider)({min:-16,max:16}),y_spread:(0,ne.IntProvider)({min:-16,max:16})},"minecraft:surface_relative_threshold_filter":{heightmap:r({enum:"heightmap_type"}),min_inclusive:(0,P.Opt)((0,P.NumberNode)({integer:!0})),max_inclusive:(0,P.Opt)((0,P.NumberNode)({integer:!0}))},"minecraft:surface_water_depth_filter":{max_water_depth:(0,P.NumberNode)({integer:!0})}}},{context:"decorator",category:"predicate"}))}Se.initDecoratorSchemas=yt;var je={},Y={};Object.defineProperty(Y,"__esModule",{value:!0});Y.initProcessorListSchemas=Y.Processors=void 0;const y=w;function vt(o,t){const e=y.Reference.bind(void 0,o),r=y.StringNode.bind(void 0,t);Y.Processors=(0,y.ChoiceNode)([{type:"string",node:r({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:n=>{}},{type:"object",node:e("processor_list"),change:n=>({processors:[{processor_type:"minecraft:nop"}]})}]),o.register("processor_list",(0,y.Mod)((0,y.ObjectNode)({processors:(0,y.ListNode)(e("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"}}]}]})})),o.register("processor",(0,y.Mod)((0,y.ObjectNode)({processor_type:r({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[y.Switch]:[{push:"processor_type"}],[y.Case]:{"minecraft:block_age":{mossiness:(0,y.NumberNode)()},"minecraft:block_ignore":{blocks:(0,y.ListNode)(e("block_state"))},"minecraft:block_rot":{integrity:(0,y.NumberNode)({min:0,max:1})},"minecraft:gravity":{heightmap:r({enum:"heightmap_type"}),offset:(0,y.NumberNode)({integer:!0})},"minecraft:protected_blocks":{value:r({validator:"resource",params:{pool:"$tag/block"}})},"minecraft:rule":{rules:(0,y.ListNode)(e("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"}}]})})),o.register("processor_rule",(0,y.Mod)((0,y.ObjectNode)({position_predicate:(0,y.Opt)(e("pos_rule_test")),location_predicate:e("rule_test"),input_predicate:e("rule_test"),output_state:e("block_state"),output_nbt:(0,y.Opt)(r({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 d={min_dist:(0,y.Opt)((0,y.NumberNode)({min:0,max:255,integer:!0})),max_dist:(0,y.Opt)((0,y.NumberNode)({min:0,max:255,integer:!0})),min_chance:(0,y.Opt)((0,y.NumberNode)({min:0,max:1})),max_chance:(0,y.Opt)((0,y.NumberNode)({min:0,max:1}))};o.register("pos_rule_test",(0,y.ObjectNode)({predicate_type:r({validator:"resource",params:{pool:"pos_rule_test"}}),[y.Switch]:[{push:"predicate_type"}],[y.Case]:{"minecraft:axis_aligned_linear_pos":g({axis:r({enum:["x","y","z"]})},d),"minecraft:linear_pos":d}},{context:"pos_rule_test",disableSwitchContext:!0})),o.register("rule_test",(0,y.ObjectNode)({predicate_type:r({validator:"resource",params:{pool:"rule_test"}}),[y.Switch]:[{push:"predicate_type"}],[y.Case]:{"minecraft:block_match":{block:r({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:e("block_state")},"minecraft:random_block_match":{block:r({validator:"resource",params:{pool:"block"}}),probability:(0,y.NumberNode)({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:e("block_state"),probability:(0,y.NumberNode)({min:0,max:1})},"minecraft:tag_match":{tag:r({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))}Y.initProcessorListSchemas=vt;Object.defineProperty(je,"__esModule",{value:!0});je.initFeatureSchemas=void 0;const i=w,x=D,Fe=Y;function Ot(o,t){const e=i.Reference.bind(void 0,o),r=i.StringNode.bind(void 0,t),d=(0,i.ChoiceNode)([{type:"string",node:r({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:e("configured_feature")}],{choiceContext:"feature"}),n=(0,i.ChoiceNode)([{type:"string",node:r({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},{type:"object",node:e("placed_feature")}],{choiceContext:"placed_feature"}),a={tries:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:1})),xz_spread:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0})),y_spread:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0})),feature:n},l={state:e("block_state"),radius:(0,x.IntProvider)({min:0,max:8}),half_height:(0,i.NumberNode)({integer:!0,min:0,max:4}),targets:(0,i.ListNode)(e("block_state"))},I={cap_provider:e("block_state_provider"),stem_provider:e("block_state_provider"),foliage_radius:(0,i.Opt)((0,i.NumberNode)({integer:!0}))},$=(0,i.ObjectNode)({target:e("rule_test"),state:e("block_state")}),b={size:(0,i.NumberNode)({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:(0,i.NumberNode)({min:0,max:1}),targets:(0,i.ListNode)($)},O={surface:r({enum:"cave_surface"}),depth:(0,x.IntProvider)({min:1,max:128}),vertical_range:(0,i.NumberNode)({integer:!0,min:1,max:256}),extra_bottom_block_chance:(0,i.NumberNode)({min:0,max:1}),extra_edge_column_chance:(0,i.NumberNode)({min:0,max:1}),vegetation_chance:(0,i.NumberNode)({min:0,max:1}),xz_radius:(0,x.IntProvider)(),replaceable:r({validator:"resource",params:{pool:"$tag/block"}}),ground_state:e("block_state_provider"),vegetation_feature:n};o.register("configured_feature",(0,i.Mod)((0,i.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/feature"}}),config:(0,i.ObjectNode)({[i.Switch]:["pop",{push:"type"}],[i.Case]:{"minecraft:bamboo":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:basalt_columns":{reach:(0,x.IntProvider)({min:0,max:3}),height:(0,x.IntProvider)({min:1,max:10})},"minecraft:block_column":{direction:r({enum:["up","down","north","east","south","west"]}),allowed_placement:e("block_predicate_worldgen"),prioritize_tip:(0,i.BooleanNode)(),layers:(0,i.ListNode)((0,i.ObjectNode)({height:(0,x.IntProvider)({min:0}),provider:e("block_state_provider")}))},"minecraft:block_pile":{state_provider:e("block_state_provider")},"minecraft:delta_feature":{contents:e("block_state"),rim:e("block_state"),size:(0,x.IntProvider)({min:0,max:16}),rim_size:(0,x.IntProvider)({min:0,max:16})},"minecraft:disk":l,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:(0,i.NumberNode)({integer:!0,min:1,max:512}),height:(0,x.IntProvider)({min:0,max:128}),radius:(0,x.IntProvider)({min:0,max:128}),max_stalagmite_stalactite_height_diff:(0,i.NumberNode)({integer:!0,min:0,max:64}),height_deviation:(0,i.NumberNode)({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:(0,x.IntProvider)({min:0,max:128}),density:(0,x.FloatProvider)({min:0,max:2}),wetness:(0,x.FloatProvider)({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:(0,i.NumberNode)({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:(0,i.NumberNode)({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:(0,i.NumberNode)({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:(0,i.BooleanNode)(),exit:(0,i.Opt)(e("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:(0,i.Opt)((0,i.BooleanNode)()),crystal_beam_target:(0,i.Opt)(e("block_pos")),spikes:(0,i.ListNode)((0,i.ObjectNode)({centerX:(0,i.Opt)((0,i.NumberNode)({integer:!0})),centerZ:(0,i.Opt)((0,i.NumberNode)({integer:!0})),radius:(0,i.Opt)((0,i.NumberNode)({integer:!0})),height:(0,i.Opt)((0,i.NumberNode)({integer:!0})),guarded:(0,i.Opt)((0,i.BooleanNode)())}))},"minecraft:fill_layer":{state:e("block_state"),height:(0,i.NumberNode)({integer:!0,min:0,max:255})},"minecraft:flower":a,"minecraft:forest_rock":{state:e("block_state")},"minecraft:fossil":{max_empty_corners_allowed:(0,i.NumberNode)({integer:!0,min:0,max:7}),fossil_structures:(0,i.ListNode)(r({validator:"resource",params:{pool:"$structure"}})),overlay_structures:(0,i.ListNode)(r({validator:"resource",params:{pool:"$structure"}})),fossil_processors:Fe.Processors,overlay_processors:Fe.Processors},"minecraft:geode":{blocks:(0,i.ObjectNode)({filling_provider:e("block_state_provider"),inner_layer_provider:e("block_state_provider"),alternate_inner_layer_provider:e("block_state_provider"),middle_layer_provider:e("block_state_provider"),outer_layer_provider:e("block_state_provider"),inner_placements:(0,i.ListNode)(e("block_state")),cannot_replace:r({validator:"resource",params:{pool:"$tag/block"}}),invalid_blocks:r({validator:"resource",params:{pool:"$tag/block"}})}),layers:(0,i.ObjectNode)({filling:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50})),inner_layer:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50})),middle_layer:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50})),outer_layer:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50}))}),crack:(0,i.ObjectNode)({generate_crack_chance:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),base_crack_size:(0,i.Opt)((0,i.NumberNode)({min:0,max:5})),crack_point_offset:(0,i.Opt)((0,i.NumberNode)({min:0,max:10}))}),noise_multiplier:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),use_potential_placements_chance:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),use_alternate_layer0_chance:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),placements_require_layer0_alternate:(0,i.Opt)((0,i.BooleanNode)()),outer_wall_distance:(0,i.Opt)((0,x.IntProvider)({min:1,max:20})),distribution_points:(0,i.Opt)((0,x.IntProvider)({min:1,max:20})),point_offset:(0,i.Opt)((0,x.IntProvider)({min:0,max:10})),min_gen_offset:(0,i.Opt)((0,i.NumberNode)({integer:!0})),max_gen_offset:(0,i.Opt)((0,i.NumberNode)({integer:!0})),invalid_blocks_threshold:(0,i.NumberNode)({integer:!0})},"minecraft:glow_lichen":{search_range:(0,i.Opt)((0,i.NumberNode)({min:1,max:64,integer:!0})),chance_of_spreading:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),can_place_on_floor:(0,i.Opt)((0,i.BooleanNode)()),can_place_on_ceiling:(0,i.Opt)((0,i.BooleanNode)()),can_place_on_wall:(0,i.Opt)((0,i.BooleanNode)()),can_be_placed_on:(0,i.ListNode)(r({validator:"resource",params:{pool:"block"}}))},"minecraft:huge_brown_mushroom":I,"minecraft:huge_fungus":{hat_state:e("block_state"),decor_state:e("block_state"),stem_state:e("block_state"),valid_base_block:e("block_state"),planted:(0,i.Opt)((0,i.BooleanNode)())},"minecraft:huge_red_mushroom":I,"minecraft:ice_patch":l,"minecraft:iceberg":{state:e("block_state")},"minecraft:lake":{fluid:e("block_state_provider"),barrier:e("block_state_provider")},"minecraft:large_dripstone":{floor_to_ceiling_search_range:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:1,max:512})),column_radius:(0,x.IntProvider)({min:0,max:60}),height_scale:(0,x.FloatProvider)({min:0,max:20}),max_column_radius_to_cave_height_ratio:(0,i.NumberNode)({min:0,max:1}),stalactite_bluntness:(0,x.FloatProvider)({min:.1,max:10}),stalagmite_bluntness:(0,x.FloatProvider)({min:.1,max:10}),wind_speed:(0,x.FloatProvider)({min:0,max:2}),min_radius_for_wind:(0,i.NumberNode)({integer:!0,min:0,max:100}),min_bluntness_for_wind:(0,i.NumberNode)({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:e("block_state_provider"),spread_width:(0,i.NumberNode)({integer:!0,min:1}),spread_height:(0,i.NumberNode)({integer:!0,min:1})},"minecraft:netherrack_replace_blobs":{state:e("block_state"),target:e("block_state"),radius:(0,x.IntProvider)({min:0,max:12})},"minecraft:no_bonemeal_flower":a,"minecraft:ore":b,"minecraft:pointed_dripstone":{chance_of_taller_dripstone:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),chance_of_directional_spread:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),chance_of_spread_radius2:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),chance_of_spread_radius3:(0,i.Opt)((0,i.NumberNode)({min:0,max:1}))},"minecraft:random_patch":a,"minecraft:random_boolean_selector":{feature_false:n,feature_true:n},"minecraft:random_selector":{features:(0,i.ListNode)((0,i.ObjectNode)({chance:(0,i.NumberNode)({min:0,max:1}),feature:n})),default:n},"minecraft:replace_single_block":{targets:(0,i.ListNode)($)},"minecraft:root_system":{required_vertical_space_for_tree:(0,i.NumberNode)({integer:!0,min:1,max:64}),root_radius:(0,i.NumberNode)({integer:!0,min:1,max:64}),root_placement_attempts:(0,i.NumberNode)({integer:!0,min:1,max:256}),root_column_max_height:(0,i.NumberNode)({integer:!0,min:1,max:4096}),hanging_root_radius:(0,i.NumberNode)({integer:!0,min:1,max:64}),hanging_roots_vertical_span:(0,i.NumberNode)({integer:!0,min:0,max:16}),hanging_root_placement_attempts:(0,i.NumberNode)({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:(0,i.NumberNode)({integer:!0,min:1,max:64}),root_replaceable:r({validator:"resource",params:{pool:"$tag/block"}}),root_state_provider:e("block_state_provider"),hanging_root_state_provider:e("block_state_provider"),allowed_tree_position:e("block_predicate_worldgen"),feature:n},"minecraft:scattered_ore":b,"minecraft:sea_pickle":{count:(0,x.IntProvider)({min:0,max:256})},"minecraft:seagrass":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:simple_block":{to_place:e("block_state_provider")},"minecraft:simple_random_selector":{features:(0,i.ListNode)(n)},"minecraft:spring_feature":{state:e("fluid_state"),rock_count:(0,i.NumberNode)({integer:!0}),hole_count:(0,i.NumberNode)({integer:!0}),requires_block_below:(0,i.BooleanNode)(),valid_blocks:(0,i.ListNode)(r({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{ignore_vines:(0,i.Opt)((0,i.BooleanNode)()),force_dirt:(0,i.Opt)((0,i.BooleanNode)()),minimum_size:e("feature_size"),dirt_provider:e("block_state_provider"),trunk_provider:e("block_state_provider"),foliage_provider:e("block_state_provider"),trunk_placer:(0,i.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:(0,i.NumberNode)({integer:!0,min:0,max:32}),height_rand_a:(0,i.NumberNode)({integer:!0,min:0,max:24}),height_rand_b:(0,i.NumberNode)({integer:!0,min:0,max:24}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:bending_trunk_placer":{bend_length:(0,x.IntProvider)({min:1,max:64}),min_height_for_leaves:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:(0,i.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:(0,x.IntProvider)({min:0,max:16}),offset:(0,x.IntProvider)({min:0,max:16}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:blob_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:(0,x.IntProvider)({min:0,max:24})},"minecraft:pine_foliage_placer":{height:(0,x.IntProvider)({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:(0,x.IntProvider)({min:1,max:512}),leaf_placement_attempts:(0,i.NumberNode)({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:(0,x.IntProvider)({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:(0,i.ListNode)((0,i.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:alter_ground":{provider:e("block_state_provider")},"minecraft:beehive":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:cocoa":{probability:(0,i.NumberNode)({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:twisting_vines":{spread_width:(0,i.NumberNode)({integer:!0,min:1}),spread_height:(0,i.NumberNode)({integer:!0,min:1}),max_height:(0,i.NumberNode)({integer:!0,min:1})},"minecraft:underwater_magma":{floor_search_range:(0,i.NumberNode)({integer:!0,min:0,max:512}),placement_radius_around_floor:(0,i.NumberNode)({integer:!0,min:0,max:64}),placement_probability_per_valid_position:(0,i.NumberNode)({min:0,max:1})},"minecraft:vegetation_patch":O,"minecraft:waterlogged_vegetation_patch":O}},{context:"feature"})},{context:"feature"}),{default:()=>({type:"minecraft:tree",config:{minimum_size:{type:"minecraft:two_layers_feature_size"},trunk_placer:{type:"minecraft:straight_trunk_placer",base_height:5,height_rand_a:2,height_rand_b:0},foliage_placer:{type:"minecraft:blob_foliage_placer",radius:2,offset:0,height:3}}})})),o.register("placed_feature",(0,i.Mod)((0,i.ObjectNode)({feature:d,placement:(0,i.ListNode)(e("decorator"))},{context:"placed_feature"}),{default:()=>({feature:"minecraft:oak",placement:[{type:"minecraft:count",count:4},{type:"minecraft:in_square"},{type:"minecraft:heightmap",heightmap:"OCEAN_FLOOR"}]})})),o.register("feature_size",(0,i.Mod)((0,i.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:(0,i.Opt)((0,i.NumberNode)({min:0,max:80})),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:two_layers_feature_size":{limit:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:81})),lower_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:80})),upper_limit:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:80})),lower_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16})),middle_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})}));const h={seed:(0,i.NumberNode)({integer:!0}),noise:e("noise_parameters"),scale:(0,i.Mod)((0,i.NumberNode)({min:Number.MIN_VALUE}),{default:()=>1})};o.register("block_state_provider",(0,i.Mod)((0,i.ObjectNode)({type:r({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:dual_noise_provider":A(g({},h),{variety:(0,x.InclusiveRange)({integer:!0,min:1,max:64}),slow_noise:e("noise_parameters"),slow_scale:(0,i.Mod)((0,i.NumberNode)({min:Number.MIN_VALUE}),{default:()=>1}),states:(0,i.ListNode)(e("block_state"))}),"minecraft:noise_threshold_provider":A(g({},h),{threshold:(0,i.NumberNode)({min:-1,max:1}),high_chance:(0,i.NumberNode)({min:0,max:1}),default_state:e("block_state"),low_states:(0,i.ListNode)(e("block_state")),high_states:(0,i.ListNode)(e("block_state"))}),"minecraft:noise_provider":A(g({},h),{states:(0,i.ListNode)(e("block_state"))}),"minecraft:randomized_int_state_provider":{property:r(),values:(0,x.IntProvider)(),source:e("block_state_provider")},"minecraft:rotated_block_provider":{state:e("block_state")},"minecraft:simple_state_provider":{state:e("block_state")},"minecraft:weighted_state_provider":{entries:(0,i.ListNode)((0,i.Mod)((0,i.ObjectNode)({weight:(0,i.NumberNode)({integer:!0,min:1}),data:e("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})}));const S={offset:(0,i.Opt)((0,i.ListNode)((0,i.NumberNode)({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3}))};o.register("block_predicate_worldgen",(0,i.Mod)((0,i.ObjectNode)({type:r({validator:"resource",params:{pool:"block_predicate_type"}}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:all_of":{predicates:(0,i.ListNode)(e("block_predicate_worldgen"))},"minecraft:any_of":{predicates:(0,i.ListNode)(e("block_predicate_worldgen"))},"minecraft:has_sturdy_face":A(g({},S),{direction:r({enum:"direction"})}),"minecraft:inside_world_bounds":g({},S),"minecraft:matching_block_tag":A(g({},S),{tag:r({validator:"resource",params:{pool:"$tag/block"}})}),"minecraft:matching_blocks":A(g({},S),{blocks:(0,i.ListNode)(r({validator:"resource",params:{pool:"block"}}))}),"minecraft:matching_fluids":A(g({},S),{fluids:(0,i.ListNode)(r({validator:"resource",params:{pool:"fluid"}}))}),"minecraft:not":{predicate:e("block_predicate_worldgen")},"minecraft:would_survive":A(g({},S),{state:e("block_state")})}},{context:"block_predicate"}),{default:()=>({type:"minecraft:true"})}))}je.initFeatureSchemas=Ot;var Me={};Object.defineProperty(Me,"__esModule",{value:!0});Me.initNoiseSettingsSchemas=void 0;const _=w,xt=D;function kt(o,t){const e=_.Reference.bind(void 0,o),r=_.StringNode.bind(void 0,t);o.register("noise_settings",(0,_.Mod)((0,_.ObjectNode)({sea_level:(0,_.NumberNode)({integer:!0}),disable_mob_generation:(0,_.BooleanNode)(),noise_caves_enabled:(0,_.BooleanNode)(),noodle_caves_enabled:(0,_.BooleanNode)(),aquifers_enabled:(0,_.BooleanNode)(),ore_veins_enabled:(0,_.BooleanNode)(),legacy_random_source:(0,_.BooleanNode)(),default_block:e("block_state"),default_fluid:e("block_state"),noise:(0,_.ObjectNode)({min_y:(0,_.NumberNode)({integer:!0,min:-2048,max:2047}),height:(0,_.NumberNode)({integer:!0,min:0,max:4096}),size_horizontal:(0,_.NumberNode)({integer:!0}),size_vertical:(0,_.NumberNode)({integer:!0}),island_noise_override:(0,_.Opt)((0,_.BooleanNode)()),amplified:(0,_.Opt)((0,_.BooleanNode)()),large_biomes:(0,_.Opt)((0,_.BooleanNode)()),sampling:(0,_.ObjectNode)({xz_scale:(0,_.NumberNode)(),y_scale:(0,_.NumberNode)(),xz_factor:(0,_.NumberNode)(),y_factor:(0,_.NumberNode)()}),bottom_slide:e("noise_slider"),top_slide:e("noise_slider"),terrain_shaper:e("terrain_shaper")}),surface_rule:e("material_rule"),structures:e("generator_structures")},{context:"noise_settings"}),d=>({default:()=>xt.DefaultNoiseSettings,validate:(n,a,l,I)=>{var $,b,O,h;return a=d.validate(n,a,l,I),(($=a==null?void 0:a.noise)===null||$===void 0?void 0:$.min_y)+((b=a==null?void 0:a.noise)===null||b===void 0?void 0:b.height)>2047&&l.add(n.push("noise").push("height"),"error.min_y_plus_height",2047),((O=a==null?void 0:a.noise)===null||O===void 0?void 0:O.height)%16!==0&&l.add(n.push("noise").push("height"),"error.height_multiple",16),((h=a==null?void 0:a.noise)===null||h===void 0?void 0:h.min_y)%16!==0&&l.add(n.push("noise").push("min_y"),"error.min_y_multiple",16),a}}))),o.register("noise_slider",(0,_.ObjectNode)({target:(0,_.NumberNode)(),size:(0,_.NumberNode)({integer:!0,min:0}),offset:(0,_.NumberNode)({integer:!0})})),o.register("generator_structures",(0,_.ObjectNode)({stronghold:(0,_.Opt)((0,_.ObjectNode)({distance:(0,_.NumberNode)({integer:!0,min:0,max:1023}),spread:(0,_.NumberNode)({integer:!0,min:0,max:1023}),count:(0,_.NumberNode)({integer:!0,min:1,max:4095})})),structures:(0,_.MapNode)(r({validator:"resource",params:{pool:"worldgen/structure_feature"}}),(0,_.Mod)((0,_.ObjectNode)({spacing:(0,_.NumberNode)({integer:!0,min:0,max:4096}),separation:(0,_.Mod)((0,_.NumberNode)({integer:!0,min:0,max:4096}),d=>({validate:(n,a,l,I)=>(n.pop().push("spacing").get()<=a&&l.add(n,"error.separation_smaller_spacing"),d.validate(n,a,l,I))})),salt:(0,_.NumberNode)({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),o.register("generator_layer",(0,_.Mod)((0,_.ObjectNode)({block:r({validator:"resource",params:{pool:"block"}}),height:(0,_.NumberNode)({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})})),o.register("terrain_shaper",(0,_.Mod)((0,_.ObjectNode)({offset:e("terrain_spline"),factor:e("terrain_spline"),jaggedness:e("terrain_spline")},{context:"terrain_shaper"}),{default:()=>({offset:0,factor:0,jaggedness:0})})),o.register("terrain_spline",(0,_.Mod)((0,_.ChoiceNode)([{type:"number",node:(0,_.NumberNode)()},{type:"object",node:(0,_.ObjectNode)({coordinate:(0,_.Mod)(r({enum:["continents","erosion","weirdness","ridges"]}),{default:()=>"continents"}),points:(0,_.ListNode)((0,_.ObjectNode)({location:(0,_.NumberNode)(),derivative:(0,_.NumberNode)(),value:e("terrain_spline")}))},{category:"function"})}],{context:"terrain_spline",choiceContext:"terrain_spline"}),{default:()=>0}))}Me.initNoiseSettingsSchemas=kt;var Ce={};Object.defineProperty(Ce,"__esModule",{value:!0});Ce.initStructureFeatureSchemas=void 0;const R=w;function wt(o,t){const e=R.StringNode.bind(void 0,t),r=R.Reference.bind(void 0,o),d={start_pool:e({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:(0,R.NumberNode)({integer:!0})};o.register("configured_structure_feature",(0,R.Mod)((0,R.ObjectNode)({type:e({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:(0,R.ObjectNode)({[R.Switch]:["pop",{push:"type"}],[R.Case]:{"minecraft:bastion_remnant":d,"minecraft:buried_treasure":{probability:(0,R.NumberNode)({min:0,max:1})},"minecraft:mineshaft":{type:e({enum:["normal","mesa"]}),probability:(0,R.NumberNode)({min:0,max:1})},"minecraft:nether_fossil":{height:r("height_provider")},"minecraft:ocean_ruin":{biome_temp:e({enum:["cold","warm"]}),large_probability:(0,R.NumberNode)({min:0,max:1}),cluster_probability:(0,R.NumberNode)({min:0,max:1})},"minecraft:pillager_outpost":d,"minecraft:ruined_portal":{portal_type:e({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:(0,R.Opt)((0,R.BooleanNode)())},"minecraft:village":d}},{context:"structure_feature",disableSwitchContext:!0})},{context:"structure_feature"}),{default:()=>({type:"minecraft:bastion_remnant",config:{start_pool:"minecraft:bastion/starts",size:6}})}))}Ce.initStructureFeatureSchemas=wt;var Pe={};Object.defineProperty(Pe,"__esModule",{value:!0});Pe.initSurfaceRuleSchemas=void 0;const j=w;function St(o,t){const e=j.StringNode.bind(void 0,t),r=j.Reference.bind(void 0,o);o.register("material_rule",(0,j.Mod)((0,j.ObjectNode)({type:e({validator:"resource",params:{pool:"worldgen/material_rule"}}),[j.Switch]:[{push:"type"}],[j.Case]:{"minecraft:block":{result_state:r("block_state")},"minecraft:condition":{if_true:r("material_condition"),then_run:r("material_rule")},"minecraft:sequence":{sequence:(0,j.ListNode)(r("material_rule"))}}},{context:"material_rule",category:"pool"}),{default:()=>({type:"minecraft:block",result_state:{Name:"minecraft:stone"}})})),o.register("material_condition",(0,j.Mod)((0,j.ObjectNode)({type:e({validator:"resource",params:{pool:"worldgen/material_condition"}}),[j.Switch]:[{push:"type"}],[j.Case]:{"minecraft:biome":{biome_is:(0,j.ListNode)(e({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:noise_threshold":{noise:e({validator:"resource",params:{pool:"$worldgen/noise"}}),min_threshold:(0,j.NumberNode)(),max_threshold:(0,j.NumberNode)()},"minecraft:not":{invert:r("material_condition")},"minecraft:stone_depth":{offset:(0,j.NumberNode)({integer:!0}),surface_type:e({enum:"cave_surface"}),add_surface_depth:(0,j.BooleanNode)(),add_surface_secondary_depth:(0,j.BooleanNode)()},"minecraft:vertical_gradient":{random_name:e(),true_at_and_below:r("vertical_anchor"),false_at_and_above:r("vertical_anchor")},"minecraft:water":{offset:(0,j.NumberNode)({integer:!0}),surface_depth_multiplier:(0,j.NumberNode)({integer:!0,min:-20,max:20}),add_stone_depth:(0,j.BooleanNode)()},"minecraft:y_above":{anchor:r("vertical_anchor"),surface_depth_multiplier:(0,j.NumberNode)({integer:!0,min:-20,max:20}),add_stone_depth:(0,j.BooleanNode)()}}},{context:"material_condition"}),{default:()=>({type:"minecraft:biome",is_biome:"minecraft:plains"})}))}Pe.initSurfaceRuleSchemas=St;var Le={};Object.defineProperty(Le,"__esModule",{value:!0});Le.initTemplatePoolSchemas=void 0;const q=w,Ie=Y;function jt(o,t){const e=q.Reference.bind(void 0,o),r=q.StringNode.bind(void 0,t);o.register("template_pool",(0,q.Mod)((0,q.ObjectNode)({name:r(),fallback:r(),elements:(0,q.ListNode)(e("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"}}]})})),o.register("template_weighted_element",(0,q.Mod)((0,q.ObjectNode)({weight:(0,q.NumberNode)({integer:!0,min:1}),element:e("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),o.register("template_element",(0,q.Mod)((0,q.ObjectNode)({element_type:r({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:r({enum:["rigid","terrain_matching"]}),[q.Switch]:[{push:"element_type"}],[q.Case]:{"minecraft:feature_pool_element":{feature:r({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},"minecraft:legacy_single_pool_element":{location:r({validator:"resource",params:{pool:"$structure"}}),processors:Ie.Processors},"minecraft:list_pool_element":{elements:(0,q.ListNode)(e("template_element"))},"minecraft:single_pool_element":{location:r({validator:"resource",params:{pool:"$structure"}}),processors:Ie.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))}Le.initTemplatePoolSchemas=jt;Object.defineProperty(xe,"__esModule",{value:!0});xe.initWorldgenSchemas=void 0;const Mt=ke,Ct=we,Pt=Se,Lt=je,Bt=Me,$t=Y,zt=Ce,Rt=Pe,Tt=Le;function qt(o,t){(0,$t.initProcessorListSchemas)(o,t),(0,Mt.initBiomeSchemas)(o,t),(0,Ct.initCarverSchemas)(o,t),(0,Pt.initDecoratorSchemas)(o,t),(0,Lt.initFeatureSchemas)(o,t),(0,Bt.initNoiseSettingsSchemas)(o,t),(0,zt.initStructureFeatureSchemas)(o,t),(0,Rt.initSurfaceRuleSchemas)(o,t),(0,Tt.initTemplatePoolSchemas)(o,t)}xe.initWorldgenSchemas=qt;var Be={};Object.defineProperty(Be,"__esModule",{value:!0});Be.initWorldSettingsSchemas=void 0;const Z=w;function Ft(o,t){const e=Z.Reference.bind(void 0,o),r=Z.StringNode.bind(void 0,t);o.register("world_settings",(0,Z.Mod)((0,Z.ObjectNode)({generate_features:(0,Z.BooleanNode)(),bonus_chest:(0,Z.BooleanNode)(),seed:(0,Z.NumberNode)({integer:!0}),dimensions:(0,Z.MapNode)(r({validator:"resource",params:{pool:"$dimension"}}),e("dimension"))},{context:"world_settings"}),{default:()=>{const d=Math.floor(Math.random()*4294967296)-2147483648;return{generate_features:!0,bonus_chest:!1,seed:d,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:overworld"},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:nether"},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:the_end",seed:d},settings:"minecraft:end"}}}}}}))}Be.initWorldSettingsSchemas=Ft;Object.defineProperty(ce,"__esModule",{value:!0});ce.initSchemas=void 0;const It=de,Dt=se,At=D,Et=pe,Wt=ue,Ut=fe,Vt=be,Gt=ge,Ht=Ne,Kt=he,Xt=ye,Zt=ve,Yt=Oe,Jt=xe,Qt=Be;function er(o,t){(0,At.initCommonSchemas)(o,t),(0,It.initAdvancementSchemas)(o,t),(0,Dt.initAssetsSchemas)(o,t),(0,Et.initConditionSchemas)(o,t),(0,Ut.initDimensionTypeSchemas)(o,t),(0,Wt.initDimensionSchemas)(o,t),(0,Vt.initItemModifierSchemas)(o,t),(0,Gt.initLootTableSchemas)(o,t),(0,Ht.initPackMcmetaSchemas)(o,t),(0,Kt.initPredicatesSchemas)(o,t),(0,Xt.initRecipeSchemas)(o,t),(0,Zt.initTagsSchemas)(o,t),(0,Yt.initTextComponentSchemas)(o,t),(0,Jt.initWorldgenSchemas)(o,t),(0,Qt.initWorldSettingsSchemas)(o,t)}ce.initSchemas=er;var tr=oe&&oe.__createBinding||(Object.create?function(o,t,e,r){r===void 0&&(r=e);var d=Object.getOwnPropertyDescriptor(t,e);(!d||("get"in d?!t.__esModule:d.writable||d.configurable))&&(d={enumerable:!0,get:function(){return t[e]}}),Object.defineProperty(o,r,d)}:function(o,t,e,r){r===void 0&&(r=e),o[r]=t[e]}),rr=oe&&oe.__setModuleDefault||(Object.create?function(o,t){Object.defineProperty(o,"default",{enumerable:!0,value:t})}:function(o,t){o.default=t}),or=oe&&oe.__importStar||function(o){if(o&&o.__esModule)return o;var t={};if(o!=null)for(var e in o)e!=="default"&&Object.prototype.hasOwnProperty.call(o,e)&&tr(t,o,e);return rr(t,o),t};Object.defineProperty(H,"__esModule",{value:!0});var De=H.getSchemas=We=H.getCollections=Ee=H.lootContext=void 0;const Ae=w,ir=ae,nr=ce;var Ee=H.lootContext=or(F);function ar(){const o=new Ae.CollectionRegistry;return(0,ir.initCollections)(o),o}var We=H.getCollections=ar;function cr(o){const t=new Ae.SchemaRegistry;return(0,nr.initSchemas)(t,o),t}De=H.getSchemas=cr;var mr=Xe({__proto__:null,get getSchemas(){return De},get getCollections(){return We},get lootContext(){return Ee},default:H},[H]);export{mr as i}; +//# sourceMappingURL=index.abe095be.js.map diff --git a/assets/index.64d29f63.js.map b/assets/index.abe095be.js.map similarity index 99% rename from assets/index.64d29f63.js.map rename to assets/index.abe095be.js.map index c418f953..ff926007 100644 --- a/assets/index.64d29f63.js.map +++ b/assets/index.abe095be.js.map @@ -1 +1 @@ -{"version":3,"file":"index.64d29f63.js","sources":["../../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/Font.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"],"sourcesContent":["\"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 collections.register('glyph_provider_type', [\r\n 'bitmap',\r\n 'ttf',\r\n 'legacy_unicode',\r\n ]);\r\n collections.register('cat_texture', [\r\n 'textures/entity/cat/tabby.png',\r\n 'textures/entity/cat/black.png',\r\n 'textures/entity/cat/red.png',\r\n 'textures/entity/cat/siamese.png',\r\n 'textures/entity/cat/british_shorthair.png',\r\n 'textures/entity/cat/calico.png',\r\n 'textures/entity/cat/persian.png',\r\n 'textures/entity/cat/ragdoll.png',\r\n 'textures/entity/cat/white.png',\r\n 'textures/entity/cat/jellie.png',\r\n 'textures/entity/cat/all_black.png'\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 = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n display: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n icon: (0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: (0, 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: (0, core_1.Opt)(StringNode()),\r\n frame: (0, core_1.Opt)(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n announce_to_chat: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n hidden: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: (0, core_1.MapNode)(StringNode(), Reference('advancement_criteria')),\r\n requirements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ListNode)(StringNode() // TODO: add validation\r\n ))),\r\n rewards: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n function: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n player: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n item: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: (0, core_1.Opt)((0, 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: (0, 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: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate'))),\r\n source: (0, core_1.Opt)(EntityPredicate)\r\n },\r\n 'minecraft:enter_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: (0, core_1.Opt)(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: (0, core_1.Opt)(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:fall_from_height': {\r\n start_position: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: (0, 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: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n start_position: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n },\r\n 'minecraft:placed_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, 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: (0, core_1.Opt)(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: (0, 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: (0, 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: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate'))\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: (0, 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: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: (0, core_1.Opt)(Reference('float_bounds'))\r\n },\r\n 'minecraft:used_totem': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:using_item': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: (0, 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) => (0, core_1.ListNode)((0, core_1.NumberNode)({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n parent: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n gui_light: (0, core_1.Opt)(StringNode({ enum: 'gui_light' })),\r\n textures: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), Texture)),\r\n elements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: (0, core_1.NumberEnum)({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n shade: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n faces: (0, core_1.MapNode)(StringNode({ enum: 'direction' }), (0, core_1.ObjectNode)({\r\n texture: Texture,\r\n uv: (0, core_1.Opt)(Vec(4)),\r\n cullface: (0, core_1.Opt)(StringNode({ enum: 'direction' })),\r\n rotation: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tintindex: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'display_position' }), (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n predicate: (0, core_1.MapNode)(StringNode({ enum: 'item_model_predicates' }), (0, 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', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n variants: (0, 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: (0, core_1.ObjectNode)({\r\n multipart: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n when: (0, 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: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n y: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n };\r\n schemas.register('model_variant', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n ...VariantChildren,\r\n weight: (0, core_1.Opt)((0, 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', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n OR: (0, 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.initFontSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initFontSchemas(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('font', (0, core_1.ObjectNode)({\r\n providers: (0, core_1.ListNode)(Reference('glyph_provider'))\r\n }, { context: 'font' }));\r\n schemas.register('glyph_provider', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ enum: 'glyph_provider_type' }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'bitmap': {\r\n file: StringNode({ validator: 'resource', params: { pool: '$texture', suffix: '.png' } }),\r\n height: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n ascent: (0, core_1.NumberNode)({ integer: true }),\r\n chars: (0, core_1.ListNode)(StringNode(), { minLength: 1 })\r\n },\r\n 'ttf': {\r\n file: StringNode({ validator: 'resource', params: { pool: '$texture', suffix: '.png' } }),\r\n size: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n oversample: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n shift: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.NumberNode)(), { minLength: 2, maxLength: 2 })),\r\n skip: (0, core_1.Opt)((0, core_1.StringOrList)(StringNode()))\r\n },\r\n 'legacy_unicode': {\r\n sizes: StringNode(),\r\n template: StringNode()\r\n }\r\n }\r\n }, { context: 'glyph_provider' }), {\r\n default: () => ({\r\n type: 'bitmap',\r\n }),\r\n }));\r\n}\r\nexports.initFontSchemas = initFontSchemas;\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\nconst Font_1 = require(\"./Font\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n (0, BlockDefinition_1.initBlockDefinitionSchemas)(schemas, collections);\r\n (0, Font_1.initFontSchemas)(schemas, collections);\r\n (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => (0, core_1.Opt)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer })),\r\n max: (0, core_1.Opt)((0, 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', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)(Reference('number_provider')),\r\n max: (0, core_1.Opt)(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: (0, 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] = (0, 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 = (0, core_1.ObjectNode)({\r\n type: (0, core_1.Mod)((0, 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 (0, 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: (0, 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: (0, core_1.Opt)((0, 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: (0, 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: (0, 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: (0, core_1.NumberNode)(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)(config),\r\n max_exclusive: (0, core_1.NumberNode)(config)\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n mean: (0, core_1.NumberNode)(),\r\n deviation: (0, core_1.NumberNode)()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n plateau: (0, core_1.NumberNode)()\r\n })\r\n }\r\n });\r\n schemas.register('float_provider', (0, 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: (0, core_1.NumberNode)({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n mean: (0, core_1.NumberNode)(),\r\n deviation: (0, core_1.NumberNode)()\r\n })\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n });\r\n schemas.register('int_provider', (0, exports.IntProvider)());\r\n schemas.register('vertical_anchor', (0, 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: (0, core_1.ObjectNode)({\r\n [t]: (0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n data: Reference('height_provider'),\r\n }))\r\n }\r\n }));\r\n exports.InclusiveRange = (config) => (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)(config),\r\n max_inclusive: (0, core_1.NumberNode)(config)\r\n }, { context: 'range' });\r\n schemas.register('noise_parameters', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n firstOctave: (0, core_1.NumberNode)({ integer: true }),\r\n amplitudes: (0, core_1.ListNode)((0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetY: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetZ: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n looting_multiplier: (0, 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: (0, core_1.ListNode)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n thundering: (0, core_1.Opt)((0, 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: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n bonusMultiplier: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: (0, core_1.Mod)((0, 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: (0, core_1.ListNode)((0, 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: (0, core_1.ListNode)(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: (0, core_1.Opt)(StringNode({ enum: 'map_feature' })),\r\n decoration: (0, core_1.Opt)(StringNode({ enum: 'map_decoration' })),\r\n zoom: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n search_radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n skip_existing_chunks: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: (0, core_1.ListNode)(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_contents': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n entries: (0, core_1.ListNode)(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_loot_table': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n lore: (0, core_1.ListNode)(Reference('text_component')),\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_name': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n name: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, 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) => (0, 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) => (0, 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', (0, core_1.ObjectOrList)(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', (0, core_1.Mod)((0, 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]: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, Common_1.DimensionTypePresets)(Reference('dimension_type')),\r\n generator: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n settings: (0, Common_1.NoiseSettingsPresets)(Reference('noise_settings')),\r\n biome_source: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: ['minecraft:overworld', 'minecraft:nether'] } })),\r\n biomes: (0, core_1.Mod)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 62 })),\r\n biomes: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:the_end': {\r\n seed: (0, core_1.NumberNode)({ integer: true })\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: (0, core_1.ObjectNode)({\r\n biome: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n features: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n layers: (0, 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 = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ListNode)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n ultrawarm: (0, core_1.BooleanNode)(),\r\n natural: (0, core_1.BooleanNode)(),\r\n piglin_safe: (0, core_1.BooleanNode)(),\r\n respawn_anchor_works: (0, core_1.BooleanNode)(),\r\n bed_works: (0, core_1.BooleanNode)(),\r\n has_raids: (0, core_1.BooleanNode)(),\r\n has_skylight: (0, core_1.BooleanNode)(),\r\n has_ceiling: (0, core_1.BooleanNode)(),\r\n coordinate_scale: (0, core_1.NumberNode)({ min: 0.00001, max: 30000000 }),\r\n ambient_light: (0, core_1.NumberNode)(),\r\n fixed_time: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n logical_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n effects: (0, 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: (0, core_1.NumberNode)({ integer: true, min: -2048, max: 2047 }),\r\n height: (0, 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', (0, core_1.ObjectOrList)(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: (0, core_1.Opt)((0, core_1.ListNode)(Reference('condition')))\r\n };\r\n schemas.register('function', (0, core_1.Mod)((0, 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]: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: (0, core_1.Opt)((0, 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 (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: (0, core_1.Opt)(Reference('number_provider')),\r\n entries: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 1 }), weightMod)),\r\n quality: (0, core_1.Opt)((0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: (0, 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', (0, core_1.Mod)((0, 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 id: (0, core_1.Opt)(StringNode({ validator: 'uuid' })),\r\n slot: (0, core_1.StringOrList)(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst CURRENT_PACK_FORMAT = 8;\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack_format: (0, core_1.Mod)((0, 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: (0, 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 = (0, 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: (0, core_1.NumberNode)(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max: (0, core_1.Opt)((0, 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: (0, core_1.BooleanNode)(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', (0, core_1.ObjectNode)({\r\n items: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'item' } }))),\r\n tag: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: (0, core_1.Opt)((0, core_1.ListNode)(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', (0, core_1.ObjectNode)({\r\n enchantment: (0, 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', (0, core_1.ObjectNode)({\r\n blocks: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n fluid: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', (0, core_1.ObjectNode)({\r\n position: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: (0, core_1.Opt)(StringNode({ enum: collections.get('worldgen/structure_feature').map(v => v.slice(10)) })),\r\n dimension: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n block: (0, core_1.Opt)(Reference('block_predicate')),\r\n fluid: (0, core_1.Opt)(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', (0, 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', (0, core_1.ObjectNode)({\r\n gamemode: (0, core_1.Opt)(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), (0, core_1.ChoiceNode)([\r\n { type: 'boolean', node: (0, core_1.BooleanNode)(), change: _ => true },\r\n {\r\n type: 'object', node: (0, core_1.MapNode)(StringNode(), (0, core_1.BooleanNode)())\r\n }\r\n ]))),\r\n recipes: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), (0, core_1.BooleanNode)())),\r\n stats: (0, core_1.Opt)((0, core_1.ListNode)(Reference('statistic_predicate'))),\r\n looking_at: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', (0, core_1.ObjectNode)({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n visible: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', (0, 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', (0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: (0, core_1.Opt)(StringNode({ validator: 'team' })),\r\n location: (0, core_1.Opt)(Reference('location_predicate')),\r\n stepping_on: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n flags: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n is_on_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sneaking: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sprinting: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_swimming: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_baby: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n equipment: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n vehicle: (0, core_1.Opt)(Reference('entity_predicate')),\r\n passenger: (0, core_1.Opt)(Reference('entity_predicate')),\r\n targeted_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n player: (0, core_1.Opt)(Reference('player_predicate')),\r\n lightning_bolt: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n blocks_set_on_fire: (0, core_1.Opt)(Reference('int_bounds')),\r\n entity_struck: (0, core_1.Opt)(Reference('entity_predicate'))\r\n })),\r\n fishing_hook: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n in_open_water: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n catType: (0, core_1.Opt)(StringNode({ enum: 'cat_texture' })),\r\n effects: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n is_explosion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_projectile: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_lightning: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_armor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_invulnerability: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n direct_entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', (0, core_1.ObjectNode)({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n type: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.Opt)(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: (0, core_1.ListNode)(StringNode()),\r\n key: (0, 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: (0, core_1.Opt)(StringNode()),\r\n ingredients: (0, core_1.ListNode)(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: (0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.Mod)((0, 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) => (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n values: (0, core_1.ListNode)((0, 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: (0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: (0, 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', (0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, core_1.Opt)(StringNode()) /* TODO */,\r\n font: (0, core_1.Opt)(StringNode()),\r\n bold: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n italic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n underlined: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n strikethrough: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n obfuscated: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n insertion: (0, core_1.Opt)(StringNode()),\r\n clickEvent: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('text_component')),\r\n contents: (0, core_1.Opt)(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tag: (0, 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: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n name: (0, core_1.Opt)(StringNode()),\r\n type: (0, core_1.Opt)(StringNode()),\r\n id: (0, core_1.Opt)(StringNode())\r\n })),\r\n contents: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, 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: (0, core_1.Opt)(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n translate: StringNode(),\r\n with: (0, 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: (0, core_1.ObjectNode)({\r\n score: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n separator: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: (0, core_1.Opt)(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: (0, core_1.Opt)(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n separator: (0, 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', (0, core_1.Mod)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n temperature: (0, core_1.NumberNode)(),\r\n downfall: (0, core_1.NumberNode)(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n creature_spawn_probability: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n effects: (0, core_1.ObjectNode)({\r\n sky_color: (0, core_1.NumberNode)({ color: true }),\r\n fog_color: (0, core_1.NumberNode)({ color: true }),\r\n water_color: (0, core_1.NumberNode)({ color: true }),\r\n water_fog_color: (0, core_1.NumberNode)({ color: true }),\r\n grass_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n foliage_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n grass_color_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: (0, core_1.Opt)(StringNode()),\r\n mood_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_delay: (0, core_1.NumberNode)({ integer: true }),\r\n block_search_extent: (0, core_1.NumberNode)({ integer: true }),\r\n offset: (0, core_1.NumberNode)()\r\n })),\r\n additions_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n })),\r\n music: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n min_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n max_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n replace_current_music: (0, core_1.BooleanNode)()\r\n })),\r\n particle: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n options: (0, core_1.ObjectNode)({\r\n type: StringNode()\r\n }),\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }))\r\n }),\r\n spawners: (0, 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 ] }), (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n minCount: (0, core_1.NumberNode)({ integer: true }),\r\n maxCount: (0, 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: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n energy_budget: (0, core_1.NumberNode)(),\r\n charge: (0, 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: (0, core_1.MapNode)(StringNode({ enum: ['air', 'liquid'] }), (0, core_1.Mod)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_carver' } })), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: (0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })), { category: () => 'predicate' }), { maxLength: 11 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const CanyonConfig = {\r\n vertical_rotation: (0, Common_1.FloatProvider)(),\r\n shape: (0, core_1.ObjectNode)({\r\n distance_factor: (0, Common_1.FloatProvider)(),\r\n thickness: (0, Common_1.FloatProvider)(),\r\n width_smoothness: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n horizontal_radius_factor: (0, Common_1.FloatProvider)(),\r\n vertical_radius_default_factor: (0, core_1.NumberNode)(),\r\n vertical_radius_center_factor: (0, core_1.NumberNode)()\r\n })\r\n };\r\n const CaveConfig = {\r\n horizontal_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n vertical_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n floor_level: (0, Common_1.FloatProvider)({ min: -1, max: 1 }),\r\n };\r\n schemas.register('configured_carver', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: (0, core_1.ObjectNode)({\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n y: Reference('height_provider'),\r\n yScale: (0, Common_1.FloatProvider)(),\r\n lava_level: Reference('vertical_anchor'),\r\n debug_settings: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n debug_mode: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n air_state: (0, core_1.Opt)(Reference('block_state')),\r\n water_state: (0, core_1.Opt)(Reference('block_state')),\r\n lava_state: (0, core_1.Opt)(Reference('block_state')),\r\n barrier_state: (0, core_1.Opt)(Reference('block_state'))\r\n })),\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:canyon': CanyonConfig,\r\n 'minecraft:cave': CaveConfig,\r\n 'minecraft:nether_cave': CaveConfig\r\n },\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('decorator', (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/placement_modifier_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_predicate_filter': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' })\r\n },\r\n 'minecraft:rarity_filter': {\r\n chance: (0, core_1.NumberNode)({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:count_on_every_layer': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:noise_threshold_count': {\r\n noise_level: (0, core_1.NumberNode)(),\r\n below_noise: (0, core_1.NumberNode)({ integer: true }),\r\n above_noise: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:noise_based_count': {\r\n noise_to_count_ratio: (0, core_1.NumberNode)({ integer: true }),\r\n noise_factor: (0, core_1.NumberNode)(),\r\n noise_offset: (0, core_1.Opt)((0, core_1.NumberNode)())\r\n },\r\n 'minecraft:environment_scan': {\r\n direction_of_search: StringNode({ enum: ['up', 'down'] }),\r\n max_steps: (0, core_1.NumberNode)({ integer: true, min: 1, max: 32 }),\r\n target_condition: Reference('block_predicate_worldgen'),\r\n allowed_search_condition: (0, core_1.Opt)(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:heightmap': {\r\n heightmap: StringNode({ enum: 'heightmap_type' })\r\n },\r\n 'minecraft:height_range': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:random_offset': {\r\n xz_spread: (0, Common_1.IntProvider)({ min: -16, max: 16 }),\r\n y_spread: (0, Common_1.IntProvider)({ min: -16, max: 16 }),\r\n },\r\n 'minecraft:surface_relative_threshold_filter': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n min_inclusive: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max_inclusive: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:surface_water_depth_filter': {\r\n max_water_depth: (0, core_1.NumberNode)({ integer: true })\r\n }\r\n }\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initProcessorListSchemas = exports.Processors = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initProcessorListSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n exports.Processors = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n processors: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.NumberNode)()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n position_predicate: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n max_dist: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n min_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n max_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n };\r\n schemas.register('pos_rule_test', (0, 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', (0, 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: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:tag_match': {\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }\r\n }\r\n }, { context: 'rule_test', disableSwitchContext: true }));\r\n}\r\nexports.initProcessorListSchemas = initProcessorListSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const ConfiguredFeature = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n const PlacedFeature = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('placed_feature')\r\n }\r\n ], { choiceContext: 'placed_feature' });\r\n const RandomPatchConfig = {\r\n tries: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 })),\r\n xz_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n y_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n feature: PlacedFeature,\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 8 }),\r\n half_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4 }),\r\n targets: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n };\r\n const TargetBlockState = (0, core_1.ObjectNode)({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n });\r\n const OreConfig = {\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n targets: (0, core_1.ListNode)(TargetBlockState)\r\n };\r\n const VegetationPatchConfig = {\r\n surface: StringNode({ enum: 'cave_surface' }),\r\n depth: (0, Common_1.IntProvider)({ min: 1, max: 128 }),\r\n vertical_range: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n extra_edge_column_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n vegetation_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n xz_radius: (0, Common_1.IntProvider)(),\r\n replaceable: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n ground_state: Reference('block_state_provider'),\r\n vegetation_feature: PlacedFeature\r\n };\r\n schemas.register('configured_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: (0, core_1.ObjectNode)({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: (0, Common_1.IntProvider)({ min: 0, max: 3 }),\r\n height: (0, 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: (0, core_1.BooleanNode)(),\r\n layers: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n height: (0, Common_1.IntProvider)({ min: 0 }),\r\n provider: Reference('block_state_provider')\r\n }))\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n rim_size: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 1, max: 512 }),\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n max_stalagmite_stalactite_height_diff: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n height_deviation: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n density: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n wetness: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: (0, core_1.BooleanNode)(),\r\n exit: (0, core_1.Opt)(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n crystal_beam_target: (0, core_1.Opt)(Reference('block_pos')),\r\n spikes: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n centerX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n centerZ: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n height: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n guarded: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: (0, 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: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n filling: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n inner_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n middle_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n outer_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n }),\r\n crack: (0, core_1.ObjectNode)({\r\n generate_crack_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n base_crack_size: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 5 })),\r\n crack_point_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 10 })),\r\n }),\r\n noise_multiplier: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_potential_placements_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n outer_wall_distance: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n distribution_points: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n point_offset: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 0, max: 10 })),\r\n min_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n invalid_blocks_threshold: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:glow_lichen': {\r\n search_range: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n can_place_on_floor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_ceiling: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_wall: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_be_placed_on: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:ice_patch': DiskConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n fluid: Reference('block_state_provider'),\r\n barrier: Reference('block_state_provider')\r\n },\r\n 'minecraft:large_dripstone': {\r\n floor_to_ceiling_search_range: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1, max: 512 })),\r\n column_radius: (0, Common_1.IntProvider)({ min: 0, max: 60 }),\r\n height_scale: (0, Common_1.FloatProvider)({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n stalactite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n wind_speed: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n min_radius_for_wind: (0, core_1.NumberNode)({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: (0, core_1.NumberNode)({ min: 0, max: 5 })\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider'),\r\n spread_width: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n spread_height: (0, core_1.NumberNode)({ integer: true, min: 1 })\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_directional_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_spread_radius2: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_spread_radius3: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n },\r\n 'minecraft:random_patch': RandomPatchConfig,\r\n 'minecraft:random_boolean_selector': {\r\n feature_false: PlacedFeature,\r\n feature_true: PlacedFeature\r\n },\r\n 'minecraft:random_selector': {\r\n features: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n feature: PlacedFeature\r\n })),\r\n default: PlacedFeature\r\n },\r\n 'minecraft:replace_single_block': {\r\n targets: (0, core_1.ListNode)(TargetBlockState)\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 }),\r\n allowed_vertical_water_for_tree: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_replaceable: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n root_state_provider: Reference('block_state_provider'),\r\n hanging_root_state_provider: Reference('block_state_provider'),\r\n allowed_tree_position: Reference('block_predicate_worldgen'),\r\n feature: PlacedFeature\r\n },\r\n 'minecraft:scattered_ore': OreConfig,\r\n 'minecraft:sea_pickle': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:seagrass': {\r\n probability: (0, 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: (0, core_1.ListNode)(PlacedFeature)\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: (0, core_1.NumberNode)({ integer: true }),\r\n hole_count: (0, core_1.NumberNode)({ integer: true }),\r\n requires_block_below: (0, core_1.BooleanNode)(),\r\n valid_blocks: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:tree': {\r\n ignore_vines: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n force_dirt: (0, core_1.Opt)((0, 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: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: (0, core_1.NumberNode)({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: (0, 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: (0, Common_1.IntProvider)({ min: 1, max: 64 }),\r\n min_height_for_leaves: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 }))\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n offset: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: (0, Common_1.IntProvider)({ min: 1, max: 512 }),\r\n leaf_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: (0, core_1.ListNode)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n },\r\n 'minecraft:twisting_vines': {\r\n spread_width: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n spread_height: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n max_height: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n },\r\n 'minecraft:underwater_magma': {\r\n floor_search_range: (0, core_1.NumberNode)({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:vegetation_patch': VegetationPatchConfig,\r\n 'minecraft:waterlogged_vegetation_patch': VegetationPatchConfig\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:tree',\r\n config: {\r\n minimum_size: {\r\n type: 'minecraft:two_layers_feature_size'\r\n },\r\n trunk_placer: {\r\n type: 'minecraft:straight_trunk_placer',\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n type: 'minecraft:blob_foliage_placer',\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('placed_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n feature: ConfiguredFeature,\r\n placement: (0, core_1.ListNode)(Reference('decorator'))\r\n }, { context: 'placed_feature' }), {\r\n default: () => ({\r\n feature: 'minecraft:oak',\r\n placement: [\r\n {\r\n type: 'minecraft:count',\r\n count: 4\r\n },\r\n {\r\n type: 'minecraft:in_square'\r\n },\r\n {\r\n type: 'minecraft:heightmap',\r\n heightmap: 'OCEAN_FLOOR'\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('feature_size', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 81 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n upper_limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n middle_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n noise: Reference('noise_parameters'),\r\n scale: (0, core_1.Mod)((0, core_1.NumberNode)({ min: Number.MIN_VALUE }), { default: () => 1 })\r\n };\r\n schemas.register('block_state_provider', (0, core_1.Mod)((0, 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: (0, Common_1.InclusiveRange)({ integer: true, min: 1, max: 64 }),\r\n slow_noise: Reference('noise_parameters'),\r\n slow_scale: (0, core_1.Mod)((0, core_1.NumberNode)({ min: Number.MIN_VALUE }), { default: () => 1 }),\r\n states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:noise_threshold_provider': {\r\n ...NoiseProvider,\r\n threshold: (0, core_1.NumberNode)({ min: -1, max: 1 }),\r\n high_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n default_state: Reference('block_state'),\r\n low_states: (0, core_1.ListNode)(Reference('block_state')),\r\n high_states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:noise_provider': {\r\n ...NoiseProvider,\r\n states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:randomized_int_state_provider': {\r\n property: StringNode(),\r\n values: (0, 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: (0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n data: Reference('block_state')\r\n }), {\r\n default: () => ({\r\n data: {}\r\n })\r\n }))\r\n }\r\n }\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_state_provider'\r\n })\r\n }));\r\n const Offset = {\r\n offset: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 }))\r\n };\r\n schemas.register('block_predicate_worldgen', (0, core_1.Mod)((0, 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: (0, core_1.ListNode)(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:any_of': {\r\n predicates: (0, core_1.ListNode)(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:has_sturdy_face': {\r\n ...Offset,\r\n direction: StringNode({ enum: 'direction' })\r\n },\r\n 'minecraft:inside_world_bounds': {\r\n ...Offset,\r\n },\r\n 'minecraft:matching_block_tag': {\r\n ...Offset,\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n },\r\n 'minecraft:matching_blocks': {\r\n ...Offset,\r\n blocks: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:matching_fluids': {\r\n ...Offset,\r\n fluids: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'fluid' } }))\r\n },\r\n 'minecraft:not': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:would_survive': {\r\n ...Offset,\r\n state: Reference('block_state')\r\n }\r\n }\r\n }, { context: 'block_predicate' }), {\r\n default: () => ({\r\n type: 'minecraft:true'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initNoiseSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('noise_settings', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n sea_level: (0, core_1.NumberNode)({ integer: true }),\r\n disable_mob_generation: (0, core_1.BooleanNode)(),\r\n noise_caves_enabled: (0, core_1.BooleanNode)(),\r\n noodle_caves_enabled: (0, core_1.BooleanNode)(),\r\n aquifers_enabled: (0, core_1.BooleanNode)(),\r\n ore_veins_enabled: (0, core_1.BooleanNode)(),\r\n legacy_random_source: (0, core_1.BooleanNode)(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: (0, core_1.ObjectNode)({\r\n min_y: (0, core_1.NumberNode)({ integer: true, min: -2048, max: 2047 }),\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n size_horizontal: (0, core_1.NumberNode)({ integer: true }),\r\n size_vertical: (0, core_1.NumberNode)({ integer: true }),\r\n island_noise_override: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n amplified: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n large_biomes: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n sampling: (0, core_1.ObjectNode)({\r\n xz_scale: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n xz_factor: (0, core_1.NumberNode)(),\r\n y_factor: (0, 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', (0, core_1.ObjectNode)({\r\n target: (0, core_1.NumberNode)(),\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n offset: (0, core_1.NumberNode)({ integer: true })\r\n }));\r\n schemas.register('generator_structures', (0, core_1.ObjectNode)({\r\n stronghold: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n distance: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n spread: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n count: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4095 })\r\n })),\r\n structures: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }), (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n spacing: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n separation: (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: (0, 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', (0, core_1.Mod)((0, 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', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, core_1.NumberNode)()\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n coordinate: (0, core_1.Mod)(StringNode({ enum: ['continents', 'erosion', 'weirdness', 'ridges'] }), { default: () => 'continents' }),\r\n points: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n location: (0, core_1.NumberNode)(),\r\n derivative: (0, 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: (0, core_1.NumberNode)({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n config: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n cluster_probability: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.NumberNode)(),\r\n max_threshold: (0, core_1.NumberNode)()\r\n },\r\n 'minecraft:not': {\r\n invert: Reference('material_condition')\r\n },\r\n 'minecraft:stone_depth': {\r\n offset: (0, core_1.NumberNode)({ integer: true }),\r\n surface_type: StringNode({ enum: 'cave_surface' }),\r\n add_surface_depth: (0, core_1.BooleanNode)(),\r\n add_surface_secondary_depth: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n surface_depth_multiplier: (0, core_1.NumberNode)({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: (0, core_1.BooleanNode)()\r\n },\r\n 'minecraft:y_above': {\r\n anchor: Reference('vertical_anchor'),\r\n surface_depth_multiplier: (0, core_1.NumberNode)({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n element_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_pool_element' } }),\r\n projection: StringNode({ enum: ['rigid', 'terrain_matching'] }),\r\n [core_1.Switch]: [{ push: 'element_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:feature_pool_element': {\r\n feature: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n 'minecraft:legacy_single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n },\r\n 'minecraft:list_pool_element': {\r\n elements: (0, 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 (0, ProcessorList_1.initProcessorListSchemas)(schemas, collections);\r\n (0, Biome_1.initBiomeSchemas)(schemas, collections);\r\n (0, Carver_1.initCarverSchemas)(schemas, collections);\r\n (0, Decorator_1.initDecoratorSchemas)(schemas, collections);\r\n (0, Feature_1.initFeatureSchemas)(schemas, collections);\r\n (0, NoiseSettings_1.initNoiseSettingsSchemas)(schemas, collections);\r\n (0, StructureFeature_1.initStructureFeatureSchemas)(schemas, collections);\r\n (0, SurfaceRule_1.initSurfaceRuleSchemas)(schemas, collections);\r\n (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n generate_features: (0, core_1.BooleanNode)(),\r\n bonus_chest: (0, core_1.BooleanNode)(),\r\n seed: (0, core_1.NumberNode)({ integer: true }),\r\n dimensions: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:overworld\"\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:nether\"\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst ItemModifier_1 = require(\"./ItemModifier\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n (0, Common_1.initCommonSchemas)(schemas, collections);\r\n (0, Advancement_1.initAdvancementSchemas)(schemas, collections);\r\n (0, assets_1.initAssetsSchemas)(schemas, collections);\r\n (0, Condition_1.initConditionSchemas)(schemas, collections);\r\n (0, DimensionType_1.initDimensionTypeSchemas)(schemas, collections);\r\n (0, Dimension_1.initDimensionSchemas)(schemas, collections);\r\n (0, ItemModifier_1.initItemModifierSchemas)(schemas, collections);\r\n (0, LootTable_1.initLootTableSchemas)(schemas, collections);\r\n (0, PackMcmeta_1.initPackMcmetaSchemas)(schemas, collections);\r\n (0, Predicates_1.initPredicatesSchemas)(schemas, collections);\r\n (0, Recipe_1.initRecipeSchemas)(schemas, collections);\r\n (0, Tags_1.initTagsSchemas)(schemas, collections);\r\n (0, TextComponent_1.initTextComponentSchemas)(schemas, collections);\r\n (0, worldgen_1.initWorldgenSchemas)(schemas, collections);\r\n (0, 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 var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\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.prototype.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 = exports.lootContext = 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 (0, 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 (0, schemas_1.initSchemas)(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n"],"names":["core_1","require$$0","require$$1","require$$2","Common_1","ProcessorList_1","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","this"],"mappings":"+1BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAI,CAAE,EACrC,GAAA,gBAAG,OAC1B,YAAyB,EAAa,CAClC,EAAY,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,2BACR,CAAK,EACD,EAAY,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,SACR,CAAK,EACD,EAAY,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,MACR,CAAK,EACD,EAAY,SAAS,WAAY,CAC7B,WACA,WACA,YACA,WACR,CAAK,EACD,EAAY,SAAS,gBAAiB,CAClC,OACA,SACA,gBACA,eACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,eACA,OACA,SACA,eACR,CAAK,EACD,EAAY,SAAS,iCAAkC,CACnD,gCACA,sCACA,qBACR,CAAK,EACD,EAAY,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,cACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,SACR,CAAK,EACD,EAAY,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,iBACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,WACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,QACA,UACA,aACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,kBACR,CAAK,EACD,EAAY,SAAS,kBAAmB,CACpC,MACA,QACR,CAAK,EACD,EAAY,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,iBACR,CAAK,EACD,EAAY,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,QACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,QACA,SACA,UACA,aACA,SACA,OACA,OACA,OACA,aACA,OACA,SACA,OACA,QACA,QACA,MACA,OACR,CAAK,EACD,EAAY,SAAS,eAAgB,CACjC,QACA,SACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,OACA,KACA,QACA,OACA,QACA,MACR,CAAK,EACD,EAAY,SAAS,OAAQ,CACzB,IACA,IACA,GACR,CAAK,EACD,EAAY,SAAS,mBAAoB,CACrC,wBACA,uBACA,wBACA,uBACA,MACA,OACA,SACA,OACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,QACA,MACR,CAAK,EA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"} \ No newline at end of file +{"version":3,"file":"index.abe095be.js","sources":["../../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/Font.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"],"sourcesContent":["\"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 collections.register('glyph_provider_type', [\r\n 'bitmap',\r\n 'ttf',\r\n 'legacy_unicode',\r\n ]);\r\n collections.register('cat_texture', [\r\n 'textures/entity/cat/tabby.png',\r\n 'textures/entity/cat/black.png',\r\n 'textures/entity/cat/red.png',\r\n 'textures/entity/cat/siamese.png',\r\n 'textures/entity/cat/british_shorthair.png',\r\n 'textures/entity/cat/calico.png',\r\n 'textures/entity/cat/persian.png',\r\n 'textures/entity/cat/ragdoll.png',\r\n 'textures/entity/cat/white.png',\r\n 'textures/entity/cat/jellie.png',\r\n 'textures/entity/cat/all_black.png'\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 = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n display: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n icon: (0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: (0, 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: (0, core_1.Opt)(StringNode()),\r\n frame: (0, core_1.Opt)(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n announce_to_chat: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n hidden: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: (0, core_1.MapNode)(StringNode(), Reference('advancement_criteria')),\r\n requirements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ListNode)(StringNode() // TODO: add validation\r\n ))),\r\n rewards: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n function: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n player: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n item: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: (0, core_1.Opt)((0, 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: (0, 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: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate'))),\r\n source: (0, core_1.Opt)(EntityPredicate)\r\n },\r\n 'minecraft:enter_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: (0, core_1.Opt)(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: (0, core_1.Opt)(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:fall_from_height': {\r\n start_position: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: (0, 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: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n start_position: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n },\r\n 'minecraft:placed_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, 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: (0, core_1.Opt)(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: (0, 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: (0, 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: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate'))\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: (0, 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: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: (0, core_1.Opt)(Reference('float_bounds'))\r\n },\r\n 'minecraft:used_totem': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:using_item': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: (0, 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) => (0, core_1.ListNode)((0, core_1.NumberNode)({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n parent: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n gui_light: (0, core_1.Opt)(StringNode({ enum: 'gui_light' })),\r\n textures: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), Texture)),\r\n elements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: (0, core_1.NumberEnum)({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n shade: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n faces: (0, core_1.MapNode)(StringNode({ enum: 'direction' }), (0, core_1.ObjectNode)({\r\n texture: Texture,\r\n uv: (0, core_1.Opt)(Vec(4)),\r\n cullface: (0, core_1.Opt)(StringNode({ enum: 'direction' })),\r\n rotation: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tintindex: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'display_position' }), (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n predicate: (0, core_1.MapNode)(StringNode({ enum: 'item_model_predicates' }), (0, 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', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n variants: (0, 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: (0, core_1.ObjectNode)({\r\n multipart: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n when: (0, 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: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n y: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n };\r\n schemas.register('model_variant', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n ...VariantChildren,\r\n weight: (0, core_1.Opt)((0, 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', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n OR: (0, 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.initFontSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initFontSchemas(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('font', (0, core_1.ObjectNode)({\r\n providers: (0, core_1.ListNode)(Reference('glyph_provider'))\r\n }, { context: 'font' }));\r\n schemas.register('glyph_provider', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ enum: 'glyph_provider_type' }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'bitmap': {\r\n file: StringNode({ validator: 'resource', params: { pool: '$texture', suffix: '.png' } }),\r\n height: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n ascent: (0, core_1.NumberNode)({ integer: true }),\r\n chars: (0, core_1.ListNode)(StringNode(), { minLength: 1 })\r\n },\r\n 'ttf': {\r\n file: StringNode({ validator: 'resource', params: { pool: '$texture', suffix: '.png' } }),\r\n size: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n oversample: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n shift: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.NumberNode)(), { minLength: 2, maxLength: 2 })),\r\n skip: (0, core_1.Opt)((0, core_1.StringOrList)(StringNode()))\r\n },\r\n 'legacy_unicode': {\r\n sizes: StringNode(),\r\n template: StringNode()\r\n }\r\n }\r\n }, { context: 'glyph_provider' }), {\r\n default: () => ({\r\n type: 'bitmap',\r\n }),\r\n }));\r\n}\r\nexports.initFontSchemas = initFontSchemas;\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\nconst Font_1 = require(\"./Font\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n (0, BlockDefinition_1.initBlockDefinitionSchemas)(schemas, collections);\r\n (0, Font_1.initFontSchemas)(schemas, collections);\r\n (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => (0, core_1.Opt)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer })),\r\n max: (0, core_1.Opt)((0, 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', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)(Reference('number_provider')),\r\n max: (0, core_1.Opt)(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: (0, 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] = (0, 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 = (0, core_1.ObjectNode)({\r\n type: (0, core_1.Mod)((0, 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 (0, 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: (0, 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: (0, core_1.Opt)((0, 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: (0, 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: (0, 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: (0, core_1.NumberNode)(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)(config),\r\n max_exclusive: (0, core_1.NumberNode)(config)\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n mean: (0, core_1.NumberNode)(),\r\n deviation: (0, core_1.NumberNode)()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n plateau: (0, core_1.NumberNode)()\r\n })\r\n }\r\n });\r\n schemas.register('float_provider', (0, 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: (0, core_1.NumberNode)({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n mean: (0, core_1.NumberNode)(),\r\n deviation: (0, core_1.NumberNode)()\r\n })\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n });\r\n schemas.register('int_provider', (0, exports.IntProvider)());\r\n schemas.register('vertical_anchor', (0, 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: (0, core_1.ObjectNode)({\r\n [t]: (0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n data: Reference('height_provider'),\r\n }))\r\n }\r\n }));\r\n exports.InclusiveRange = (config) => (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)(config),\r\n max_inclusive: (0, core_1.NumberNode)(config)\r\n }, { context: 'range' });\r\n schemas.register('noise_parameters', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n firstOctave: (0, core_1.NumberNode)({ integer: true }),\r\n amplitudes: (0, core_1.ListNode)((0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetY: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetZ: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n looting_multiplier: (0, 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: (0, core_1.ListNode)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n thundering: (0, core_1.Opt)((0, 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: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n bonusMultiplier: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: (0, core_1.Mod)((0, 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: (0, core_1.ListNode)((0, 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: (0, core_1.ListNode)(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: (0, core_1.Opt)(StringNode({ enum: 'map_feature' })),\r\n decoration: (0, core_1.Opt)(StringNode({ enum: 'map_decoration' })),\r\n zoom: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n search_radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n skip_existing_chunks: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: (0, core_1.ListNode)(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_contents': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n entries: (0, core_1.ListNode)(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_loot_table': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n lore: (0, core_1.ListNode)(Reference('text_component')),\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_name': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n name: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, 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) => (0, 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) => (0, 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', (0, core_1.ObjectOrList)(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', (0, core_1.Mod)((0, 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]: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, Common_1.DimensionTypePresets)(Reference('dimension_type')),\r\n generator: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n settings: (0, Common_1.NoiseSettingsPresets)(Reference('noise_settings')),\r\n biome_source: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: ['minecraft:overworld', 'minecraft:nether'] } })),\r\n biomes: (0, core_1.Mod)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 62 })),\r\n biomes: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:the_end': {\r\n seed: (0, core_1.NumberNode)({ integer: true })\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: (0, core_1.ObjectNode)({\r\n biome: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n features: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n layers: (0, 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 = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ListNode)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n ultrawarm: (0, core_1.BooleanNode)(),\r\n natural: (0, core_1.BooleanNode)(),\r\n piglin_safe: (0, core_1.BooleanNode)(),\r\n respawn_anchor_works: (0, core_1.BooleanNode)(),\r\n bed_works: (0, core_1.BooleanNode)(),\r\n has_raids: (0, core_1.BooleanNode)(),\r\n has_skylight: (0, core_1.BooleanNode)(),\r\n has_ceiling: (0, core_1.BooleanNode)(),\r\n coordinate_scale: (0, core_1.NumberNode)({ min: 0.00001, max: 30000000 }),\r\n ambient_light: (0, core_1.NumberNode)(),\r\n fixed_time: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n logical_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n effects: (0, 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: (0, core_1.NumberNode)({ integer: true, min: -2048, max: 2047 }),\r\n height: (0, 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', (0, core_1.ObjectOrList)(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: (0, core_1.Opt)((0, core_1.ListNode)(Reference('condition')))\r\n };\r\n schemas.register('function', (0, core_1.Mod)((0, 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]: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: (0, core_1.Opt)((0, 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 (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: (0, core_1.Opt)(Reference('number_provider')),\r\n entries: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 1 }), weightMod)),\r\n quality: (0, core_1.Opt)((0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: (0, 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', (0, core_1.Mod)((0, 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 id: (0, core_1.Opt)(StringNode({ validator: 'uuid' })),\r\n slot: (0, core_1.StringOrList)(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst CURRENT_PACK_FORMAT = 8;\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack_format: (0, core_1.Mod)((0, 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: (0, 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 = (0, 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: (0, core_1.NumberNode)(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max: (0, core_1.Opt)((0, 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: (0, core_1.BooleanNode)(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', (0, core_1.ObjectNode)({\r\n items: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'item' } }))),\r\n tag: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: (0, core_1.Opt)((0, core_1.ListNode)(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', (0, core_1.ObjectNode)({\r\n enchantment: (0, 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', (0, core_1.ObjectNode)({\r\n blocks: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n fluid: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', (0, core_1.ObjectNode)({\r\n position: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: (0, core_1.Opt)(StringNode({ enum: collections.get('worldgen/structure_feature').map(v => v.slice(10)) })),\r\n dimension: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n block: (0, core_1.Opt)(Reference('block_predicate')),\r\n fluid: (0, core_1.Opt)(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', (0, 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', (0, core_1.ObjectNode)({\r\n gamemode: (0, core_1.Opt)(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), (0, core_1.ChoiceNode)([\r\n { type: 'boolean', node: (0, core_1.BooleanNode)(), change: _ => true },\r\n {\r\n type: 'object', node: (0, core_1.MapNode)(StringNode(), (0, core_1.BooleanNode)())\r\n }\r\n ]))),\r\n recipes: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), (0, core_1.BooleanNode)())),\r\n stats: (0, core_1.Opt)((0, core_1.ListNode)(Reference('statistic_predicate'))),\r\n looking_at: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', (0, core_1.ObjectNode)({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n visible: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', (0, 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', (0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: (0, core_1.Opt)(StringNode({ validator: 'team' })),\r\n location: (0, core_1.Opt)(Reference('location_predicate')),\r\n stepping_on: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n flags: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n is_on_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sneaking: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sprinting: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_swimming: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_baby: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n equipment: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n vehicle: (0, core_1.Opt)(Reference('entity_predicate')),\r\n passenger: (0, core_1.Opt)(Reference('entity_predicate')),\r\n targeted_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n player: (0, core_1.Opt)(Reference('player_predicate')),\r\n lightning_bolt: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n blocks_set_on_fire: (0, core_1.Opt)(Reference('int_bounds')),\r\n entity_struck: (0, core_1.Opt)(Reference('entity_predicate'))\r\n })),\r\n fishing_hook: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n in_open_water: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n catType: (0, core_1.Opt)(StringNode({ enum: 'cat_texture' })),\r\n effects: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n is_explosion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_projectile: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_lightning: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_armor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_invulnerability: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n direct_entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', (0, core_1.ObjectNode)({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n type: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.Opt)(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: (0, core_1.ListNode)(StringNode()),\r\n key: (0, 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: (0, core_1.Opt)(StringNode()),\r\n ingredients: (0, core_1.ListNode)(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: (0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.Mod)((0, 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) => (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n values: (0, core_1.ListNode)((0, 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: (0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: (0, 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', (0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, core_1.Opt)(StringNode()) /* TODO */,\r\n font: (0, core_1.Opt)(StringNode()),\r\n bold: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n italic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n underlined: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n strikethrough: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n obfuscated: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n insertion: (0, core_1.Opt)(StringNode()),\r\n clickEvent: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('text_component')),\r\n contents: (0, core_1.Opt)(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tag: (0, 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: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n name: (0, core_1.Opt)(StringNode()),\r\n type: (0, core_1.Opt)(StringNode()),\r\n id: (0, core_1.Opt)(StringNode())\r\n })),\r\n contents: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, 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: (0, core_1.Opt)(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n translate: StringNode(),\r\n with: (0, 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: (0, core_1.ObjectNode)({\r\n score: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n separator: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: (0, core_1.Opt)(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: (0, core_1.Opt)(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n separator: (0, 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', (0, core_1.Mod)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n temperature: (0, core_1.NumberNode)(),\r\n downfall: (0, core_1.NumberNode)(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n creature_spawn_probability: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n effects: (0, core_1.ObjectNode)({\r\n sky_color: (0, core_1.NumberNode)({ color: true }),\r\n fog_color: (0, core_1.NumberNode)({ color: true }),\r\n water_color: (0, core_1.NumberNode)({ color: true }),\r\n water_fog_color: (0, core_1.NumberNode)({ color: true }),\r\n grass_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n foliage_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n grass_color_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: (0, core_1.Opt)(StringNode()),\r\n mood_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_delay: (0, core_1.NumberNode)({ integer: true }),\r\n block_search_extent: (0, core_1.NumberNode)({ integer: true }),\r\n offset: (0, core_1.NumberNode)()\r\n })),\r\n additions_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n })),\r\n music: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n min_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n max_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n replace_current_music: (0, core_1.BooleanNode)()\r\n })),\r\n particle: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n options: (0, core_1.ObjectNode)({\r\n type: StringNode()\r\n }),\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }))\r\n }),\r\n spawners: (0, 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 ] }), (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n minCount: (0, core_1.NumberNode)({ integer: true }),\r\n maxCount: (0, 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: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n energy_budget: (0, core_1.NumberNode)(),\r\n charge: (0, 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: (0, core_1.MapNode)(StringNode({ enum: ['air', 'liquid'] }), (0, core_1.Mod)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_carver' } })), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: (0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })), { category: () => 'predicate' }), { maxLength: 11 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const CanyonConfig = {\r\n vertical_rotation: (0, Common_1.FloatProvider)(),\r\n shape: (0, core_1.ObjectNode)({\r\n distance_factor: (0, Common_1.FloatProvider)(),\r\n thickness: (0, Common_1.FloatProvider)(),\r\n width_smoothness: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n horizontal_radius_factor: (0, Common_1.FloatProvider)(),\r\n vertical_radius_default_factor: (0, core_1.NumberNode)(),\r\n vertical_radius_center_factor: (0, core_1.NumberNode)()\r\n })\r\n };\r\n const CaveConfig = {\r\n horizontal_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n vertical_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n floor_level: (0, Common_1.FloatProvider)({ min: -1, max: 1 }),\r\n };\r\n schemas.register('configured_carver', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: (0, core_1.ObjectNode)({\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n y: Reference('height_provider'),\r\n yScale: (0, Common_1.FloatProvider)(),\r\n lava_level: Reference('vertical_anchor'),\r\n debug_settings: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n debug_mode: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n air_state: (0, core_1.Opt)(Reference('block_state')),\r\n water_state: (0, core_1.Opt)(Reference('block_state')),\r\n lava_state: (0, core_1.Opt)(Reference('block_state')),\r\n barrier_state: (0, core_1.Opt)(Reference('block_state'))\r\n })),\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:canyon': CanyonConfig,\r\n 'minecraft:cave': CaveConfig,\r\n 'minecraft:nether_cave': CaveConfig\r\n },\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('decorator', (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/placement_modifier_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_predicate_filter': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' })\r\n },\r\n 'minecraft:rarity_filter': {\r\n chance: (0, core_1.NumberNode)({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:count_on_every_layer': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:noise_threshold_count': {\r\n noise_level: (0, core_1.NumberNode)(),\r\n below_noise: (0, core_1.NumberNode)({ integer: true }),\r\n above_noise: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:noise_based_count': {\r\n noise_to_count_ratio: (0, core_1.NumberNode)({ integer: true }),\r\n noise_factor: (0, core_1.NumberNode)(),\r\n noise_offset: (0, core_1.Opt)((0, core_1.NumberNode)())\r\n },\r\n 'minecraft:environment_scan': {\r\n direction_of_search: StringNode({ enum: ['up', 'down'] }),\r\n max_steps: (0, core_1.NumberNode)({ integer: true, min: 1, max: 32 }),\r\n target_condition: Reference('block_predicate_worldgen'),\r\n allowed_search_condition: (0, core_1.Opt)(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:heightmap': {\r\n heightmap: StringNode({ enum: 'heightmap_type' })\r\n },\r\n 'minecraft:height_range': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:random_offset': {\r\n xz_spread: (0, Common_1.IntProvider)({ min: -16, max: 16 }),\r\n y_spread: (0, Common_1.IntProvider)({ min: -16, max: 16 }),\r\n },\r\n 'minecraft:surface_relative_threshold_filter': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n min_inclusive: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max_inclusive: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:surface_water_depth_filter': {\r\n max_water_depth: (0, core_1.NumberNode)({ integer: true })\r\n }\r\n }\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initProcessorListSchemas = exports.Processors = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initProcessorListSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n exports.Processors = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n processors: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.NumberNode)()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n position_predicate: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n max_dist: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n min_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n max_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n };\r\n schemas.register('pos_rule_test', (0, 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', (0, 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: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:tag_match': {\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }\r\n }\r\n }, { context: 'rule_test', disableSwitchContext: true }));\r\n}\r\nexports.initProcessorListSchemas = initProcessorListSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const ConfiguredFeature = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n const PlacedFeature = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('placed_feature')\r\n }\r\n ], { choiceContext: 'placed_feature' });\r\n const RandomPatchConfig = {\r\n tries: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 })),\r\n xz_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n y_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n feature: PlacedFeature,\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 8 }),\r\n half_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4 }),\r\n targets: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n };\r\n const TargetBlockState = (0, core_1.ObjectNode)({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n });\r\n const OreConfig = {\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n targets: (0, core_1.ListNode)(TargetBlockState)\r\n };\r\n const VegetationPatchConfig = {\r\n surface: StringNode({ enum: 'cave_surface' }),\r\n depth: (0, Common_1.IntProvider)({ min: 1, max: 128 }),\r\n vertical_range: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n extra_edge_column_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n vegetation_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n xz_radius: (0, Common_1.IntProvider)(),\r\n replaceable: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n ground_state: Reference('block_state_provider'),\r\n vegetation_feature: PlacedFeature\r\n };\r\n schemas.register('configured_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: (0, core_1.ObjectNode)({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: (0, Common_1.IntProvider)({ min: 0, max: 3 }),\r\n height: (0, 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: (0, core_1.BooleanNode)(),\r\n layers: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n height: (0, Common_1.IntProvider)({ min: 0 }),\r\n provider: Reference('block_state_provider')\r\n }))\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n rim_size: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 1, max: 512 }),\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n max_stalagmite_stalactite_height_diff: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n height_deviation: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n density: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n wetness: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: (0, core_1.BooleanNode)(),\r\n exit: (0, core_1.Opt)(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n crystal_beam_target: (0, core_1.Opt)(Reference('block_pos')),\r\n spikes: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n centerX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n centerZ: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n height: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n guarded: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: (0, 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: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n filling: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n inner_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n middle_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n outer_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n }),\r\n crack: (0, core_1.ObjectNode)({\r\n generate_crack_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n base_crack_size: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 5 })),\r\n crack_point_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 10 })),\r\n }),\r\n noise_multiplier: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_potential_placements_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n outer_wall_distance: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n distribution_points: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n point_offset: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 0, max: 10 })),\r\n min_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n invalid_blocks_threshold: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:glow_lichen': {\r\n search_range: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n can_place_on_floor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_ceiling: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_wall: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_be_placed_on: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:ice_patch': DiskConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n fluid: Reference('block_state_provider'),\r\n barrier: Reference('block_state_provider')\r\n },\r\n 'minecraft:large_dripstone': {\r\n floor_to_ceiling_search_range: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1, max: 512 })),\r\n column_radius: (0, Common_1.IntProvider)({ min: 0, max: 60 }),\r\n height_scale: (0, Common_1.FloatProvider)({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n stalactite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n wind_speed: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n min_radius_for_wind: (0, core_1.NumberNode)({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: (0, core_1.NumberNode)({ min: 0, max: 5 })\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider'),\r\n spread_width: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n spread_height: (0, core_1.NumberNode)({ integer: true, min: 1 })\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_directional_spread: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_spread_radius2: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n chance_of_spread_radius3: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n },\r\n 'minecraft:random_patch': RandomPatchConfig,\r\n 'minecraft:random_boolean_selector': {\r\n feature_false: PlacedFeature,\r\n feature_true: PlacedFeature\r\n },\r\n 'minecraft:random_selector': {\r\n features: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n feature: PlacedFeature\r\n })),\r\n default: PlacedFeature\r\n },\r\n 'minecraft:replace_single_block': {\r\n targets: (0, core_1.ListNode)(TargetBlockState)\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 }),\r\n allowed_vertical_water_for_tree: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_replaceable: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n root_state_provider: Reference('block_state_provider'),\r\n hanging_root_state_provider: Reference('block_state_provider'),\r\n allowed_tree_position: Reference('block_predicate_worldgen'),\r\n feature: PlacedFeature\r\n },\r\n 'minecraft:scattered_ore': OreConfig,\r\n 'minecraft:sea_pickle': {\r\n count: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:seagrass': {\r\n probability: (0, 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: (0, core_1.ListNode)(PlacedFeature)\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: (0, core_1.NumberNode)({ integer: true }),\r\n hole_count: (0, core_1.NumberNode)({ integer: true }),\r\n requires_block_below: (0, core_1.BooleanNode)(),\r\n valid_blocks: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:tree': {\r\n ignore_vines: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n force_dirt: (0, core_1.Opt)((0, 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: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: (0, core_1.NumberNode)({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: (0, 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: (0, Common_1.IntProvider)({ min: 1, max: 64 }),\r\n min_height_for_leaves: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 }))\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n offset: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: (0, Common_1.IntProvider)({ min: 1, max: 512 }),\r\n leaf_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: (0, core_1.ListNode)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n },\r\n 'minecraft:twisting_vines': {\r\n spread_width: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n spread_height: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n max_height: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n },\r\n 'minecraft:underwater_magma': {\r\n floor_search_range: (0, core_1.NumberNode)({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:vegetation_patch': VegetationPatchConfig,\r\n 'minecraft:waterlogged_vegetation_patch': VegetationPatchConfig\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:tree',\r\n config: {\r\n minimum_size: {\r\n type: 'minecraft:two_layers_feature_size'\r\n },\r\n trunk_placer: {\r\n type: 'minecraft:straight_trunk_placer',\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n type: 'minecraft:blob_foliage_placer',\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('placed_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n feature: ConfiguredFeature,\r\n placement: (0, core_1.ListNode)(Reference('decorator'))\r\n }, { context: 'placed_feature' }), {\r\n default: () => ({\r\n feature: 'minecraft:oak',\r\n placement: [\r\n {\r\n type: 'minecraft:count',\r\n count: 4\r\n },\r\n {\r\n type: 'minecraft:in_square'\r\n },\r\n {\r\n type: 'minecraft:heightmap',\r\n heightmap: 'OCEAN_FLOOR'\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('feature_size', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 81 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n upper_limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n middle_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n noise: Reference('noise_parameters'),\r\n scale: (0, core_1.Mod)((0, core_1.NumberNode)({ min: Number.MIN_VALUE }), { default: () => 1 })\r\n };\r\n schemas.register('block_state_provider', (0, core_1.Mod)((0, 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: (0, Common_1.InclusiveRange)({ integer: true, min: 1, max: 64 }),\r\n slow_noise: Reference('noise_parameters'),\r\n slow_scale: (0, core_1.Mod)((0, core_1.NumberNode)({ min: Number.MIN_VALUE }), { default: () => 1 }),\r\n states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:noise_threshold_provider': {\r\n ...NoiseProvider,\r\n threshold: (0, core_1.NumberNode)({ min: -1, max: 1 }),\r\n high_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n default_state: Reference('block_state'),\r\n low_states: (0, core_1.ListNode)(Reference('block_state')),\r\n high_states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:noise_provider': {\r\n ...NoiseProvider,\r\n states: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:randomized_int_state_provider': {\r\n property: StringNode(),\r\n values: (0, 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: (0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true, min: 1 }),\r\n data: Reference('block_state')\r\n }), {\r\n default: () => ({\r\n data: {}\r\n })\r\n }))\r\n }\r\n }\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_state_provider'\r\n })\r\n }));\r\n const Offset = {\r\n offset: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 }))\r\n };\r\n schemas.register('block_predicate_worldgen', (0, core_1.Mod)((0, 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: (0, core_1.ListNode)(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:any_of': {\r\n predicates: (0, core_1.ListNode)(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:has_sturdy_face': {\r\n ...Offset,\r\n direction: StringNode({ enum: 'direction' })\r\n },\r\n 'minecraft:inside_world_bounds': {\r\n ...Offset,\r\n },\r\n 'minecraft:matching_block_tag': {\r\n ...Offset,\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n },\r\n 'minecraft:matching_blocks': {\r\n ...Offset,\r\n blocks: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:matching_fluids': {\r\n ...Offset,\r\n fluids: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'fluid' } }))\r\n },\r\n 'minecraft:not': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:would_survive': {\r\n ...Offset,\r\n state: Reference('block_state')\r\n }\r\n }\r\n }, { context: 'block_predicate' }), {\r\n default: () => ({\r\n type: 'minecraft:true'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initNoiseSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('noise_settings', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n sea_level: (0, core_1.NumberNode)({ integer: true }),\r\n disable_mob_generation: (0, core_1.BooleanNode)(),\r\n noise_caves_enabled: (0, core_1.BooleanNode)(),\r\n noodle_caves_enabled: (0, core_1.BooleanNode)(),\r\n aquifers_enabled: (0, core_1.BooleanNode)(),\r\n ore_veins_enabled: (0, core_1.BooleanNode)(),\r\n legacy_random_source: (0, core_1.BooleanNode)(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: (0, core_1.ObjectNode)({\r\n min_y: (0, core_1.NumberNode)({ integer: true, min: -2048, max: 2047 }),\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n size_horizontal: (0, core_1.NumberNode)({ integer: true }),\r\n size_vertical: (0, core_1.NumberNode)({ integer: true }),\r\n island_noise_override: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n amplified: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n large_biomes: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n sampling: (0, core_1.ObjectNode)({\r\n xz_scale: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n xz_factor: (0, core_1.NumberNode)(),\r\n y_factor: (0, 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', (0, core_1.ObjectNode)({\r\n target: (0, core_1.NumberNode)(),\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n offset: (0, core_1.NumberNode)({ integer: true })\r\n }));\r\n schemas.register('generator_structures', (0, core_1.ObjectNode)({\r\n stronghold: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n distance: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n spread: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n count: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4095 })\r\n })),\r\n structures: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }), (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n spacing: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n separation: (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: (0, 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', (0, core_1.Mod)((0, 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', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, core_1.NumberNode)()\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n coordinate: (0, core_1.Mod)(StringNode({ enum: ['continents', 'erosion', 'weirdness', 'ridges'] }), { default: () => 'continents' }),\r\n points: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n location: (0, core_1.NumberNode)(),\r\n derivative: (0, 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: (0, core_1.NumberNode)({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n config: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n cluster_probability: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.NumberNode)(),\r\n max_threshold: (0, core_1.NumberNode)()\r\n },\r\n 'minecraft:not': {\r\n invert: Reference('material_condition')\r\n },\r\n 'minecraft:stone_depth': {\r\n offset: (0, core_1.NumberNode)({ integer: true }),\r\n surface_type: StringNode({ enum: 'cave_surface' }),\r\n add_surface_depth: (0, core_1.BooleanNode)(),\r\n add_surface_secondary_depth: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n surface_depth_multiplier: (0, core_1.NumberNode)({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: (0, core_1.BooleanNode)()\r\n },\r\n 'minecraft:y_above': {\r\n anchor: Reference('vertical_anchor'),\r\n surface_depth_multiplier: (0, core_1.NumberNode)({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n element_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_pool_element' } }),\r\n projection: StringNode({ enum: ['rigid', 'terrain_matching'] }),\r\n [core_1.Switch]: [{ push: 'element_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:feature_pool_element': {\r\n feature: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n 'minecraft:legacy_single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n },\r\n 'minecraft:list_pool_element': {\r\n elements: (0, 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 (0, ProcessorList_1.initProcessorListSchemas)(schemas, collections);\r\n (0, Biome_1.initBiomeSchemas)(schemas, collections);\r\n (0, Carver_1.initCarverSchemas)(schemas, collections);\r\n (0, Decorator_1.initDecoratorSchemas)(schemas, collections);\r\n (0, Feature_1.initFeatureSchemas)(schemas, collections);\r\n (0, NoiseSettings_1.initNoiseSettingsSchemas)(schemas, collections);\r\n (0, StructureFeature_1.initStructureFeatureSchemas)(schemas, collections);\r\n (0, SurfaceRule_1.initSurfaceRuleSchemas)(schemas, collections);\r\n (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n generate_features: (0, core_1.BooleanNode)(),\r\n bonus_chest: (0, core_1.BooleanNode)(),\r\n seed: (0, core_1.NumberNode)({ integer: true }),\r\n dimensions: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:overworld\"\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:nether\"\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst ItemModifier_1 = require(\"./ItemModifier\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n (0, Common_1.initCommonSchemas)(schemas, collections);\r\n (0, Advancement_1.initAdvancementSchemas)(schemas, collections);\r\n (0, assets_1.initAssetsSchemas)(schemas, collections);\r\n (0, Condition_1.initConditionSchemas)(schemas, collections);\r\n (0, DimensionType_1.initDimensionTypeSchemas)(schemas, collections);\r\n (0, Dimension_1.initDimensionSchemas)(schemas, collections);\r\n (0, ItemModifier_1.initItemModifierSchemas)(schemas, collections);\r\n (0, LootTable_1.initLootTableSchemas)(schemas, collections);\r\n (0, PackMcmeta_1.initPackMcmetaSchemas)(schemas, collections);\r\n (0, Predicates_1.initPredicatesSchemas)(schemas, collections);\r\n (0, Recipe_1.initRecipeSchemas)(schemas, collections);\r\n (0, Tags_1.initTagsSchemas)(schemas, collections);\r\n (0, TextComponent_1.initTextComponentSchemas)(schemas, collections);\r\n (0, worldgen_1.initWorldgenSchemas)(schemas, collections);\r\n (0, 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 var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\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.prototype.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 = exports.lootContext = 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 (0, 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 (0, schemas_1.initSchemas)(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n"],"names":["core_1","require$$0","require$$1","require$$2","Common_1","ProcessorList_1","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","this"],"mappings":"+1BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAI,CAAE,EACrC,GAAA,gBAAG,OAC1B,YAAyB,EAAa,CAClC,EAAY,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,2BACR,CAAK,EACD,EAAY,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,SACR,CAAK,EACD,EAAY,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,MACR,CAAK,EACD,EAAY,SAAS,WAAY,CAC7B,WACA,WACA,YACA,WACR,CAAK,EACD,EAAY,SAAS,gBAAiB,CAClC,OACA,SACA,gBACA,eACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,eACA,OACA,SACA,eACR,CAAK,EACD,EAAY,SAAS,iCAAkC,CACnD,gCACA,sCACA,qBACR,CAAK,EACD,EAAY,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,cACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,SACR,CAAK,EACD,EAAY,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,iBACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,WACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,QACA,UACA,aACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,kBACR,CAAK,EACD,EAAY,SAAS,kBAAmB,CACpC,MACA,QACR,CAAK,EACD,EAAY,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,iBACR,CAAK,EACD,EAAY,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,QACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,QACA,SACA,UACA,aACA,SACA,OACA,OACA,OACA,aACA,OACA,SACA,OACA,QACA,QACA,MACA,OACR,CAAK,EACD,EAAY,SAAS,eAAgB,CACjC,QACA,SACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,OACA,KACA,QACA,OACA,QACA,MACR,CAAK,EACD,EAAY,SAAS,OAAQ,CACzB,IACA,IACA,GACR,CAAK,EACD,EAAY,SAAS,mBAAoB,CACrC,wBACA,uBACA,wBACA,uBACA,MACA,OACA,SACA,OACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,QACA,MACR,CAAK,EA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"} \ No newline at end of file diff --git a/assets/index.c53548d8.css b/assets/index.c53548d8.css deleted file mode 100644 index 67770551..00000000 --- a/assets/index.c53548d8.css +++ /dev/null @@ -1 +0,0 @@ -:root{--background-1: #1b1b1b;--background-2: #252525;--background-3: #222222;--background-4: #3d3d3d;--background-5: #383838;--background-6: #575757;--text-1: #ffffff;--text-2: #dcdcdc;--text-3: #c3c3c3;--accent-primary: #50baf9;--accent-success: #3eb84f;--accent-warning: #b8893e;--accent-danger: #cf4945;--accent-donate: #db61a2;--accent-site-1: #307328;--accent-site-2: #296422;--accent-sounds-1: #451475;--accent-sounds-2: #39155e;--accent-sounds-3: #6a08a3;--accent-sounds-4: #d1a5e6;--nav: #91908f;--nav-hover: #b4b3b0;--nav-faded: #4d4c4c;--nav-faded-hover: #6e6e6e;--selection: #445a9599;--errors-background: #62190f;--errors-background-hover: #57140b;--errors-text: #ffffffcc;--invalid-text: #fd7951;--text-saturation: 60%;--text-lightness: 45%;--editor-variable: #9CDCFE;--editor-string: #CE9178;--editor-constant: #569CD6;--editor-number: #B5CEA8}:root[data-theme=light]{--background-1: #fafafa;--background-2: #e2e2e2;--background-3: #d4d3d3;--background-4: #b8b8b8;--background-5: #bdbdbd;--background-6: #cecece;--text-1: #000000;--text-2: #2f2f2f;--text-3: #494949;--accent-primary: #088cdb;--accent-success: #1a7f37;--accent-warning: #a36f1c;--accent-danger: #bd2f2a;--accent-donate: #bf3989;--accent-site-1: #2da44e;--accent-site-2: #2c974b;--accent-sounds-1: #b481e7;--accent-sounds-2: #c18df5;--accent-sounds-3: #af72d3;--accent-sounds-4: #efd3fd;--nav: #343a40;--nav-hover: #565d64;--nav-faded: #9fa2a7;--nav-faded-hover: #bcbfc3;--selection: #6786dd99;--errors-background: #f66653;--errors-text: #000000cc;--invalid-text: #a32600;--text-saturation: 100%;--text-lightness: 30%;--editor-variable: #0451A5;--editor-string: #A31515;--editor-constant: #0000FF;--editor-number: #098658}@media (prefers-color-scheme: light){:root[data-theme=system]{--background-1: #fafafa;--background-2: #e2e2e2;--background-3: #d4d3d3;--background-4: #b8b8b8;--background-5: #bdbdbd;--background-6: #cecece;--text-1: #000000;--text-2: #2f2f2f;--text-3: #494949;--accent-primary: #088cdb;--accent-success: #1a7f37;--accent-warning: #a36f1c;--accent-danger: #bd2f2a;--accent-donate: #bf3989;--accent-site-1: #2da44e;--accent-site-2: #2c974b;--accent-sounds-1: #b481e7;--accent-sounds-2: #c18df5;--accent-sounds-3: #af72d3;--accent-sounds-4: #efd3fd;--nav: #343a40;--nav-hover: #565d64;--nav-faded: #9fa2a7;--nav-faded-hover: #bcbfc3;--selection: #6786dd99;--errors-background: #f66653;--errors-text: #000000cc;--invalid-text: #a32600;--text-saturation: 100%;--text-lightness: 35%;--editor-variable: #0451A5;--editor-string: #A31515;--editor-constant: #0000FF;--editor-number: #098658}}*{box-sizing:border-box;margin:0;padding:0}::selection{background-color:var(--selection)}a svg{pointer-events:none}body{font-size:18px;font-family:Arial,Helvetica,sans-serif;min-height:100vh;overflow-x:hidden;background-color:var(--background-1)}header{display:flex;justify-content:space-between;align-items:center;padding:10px;width:100%;height:56px;z-index:5;position:fixed;box-shadow:0 0 9px -3px #000;background-color:var(--background-2)}.title{display:flex;align-items:center}.title h1{font-size:27px;color:var(--nav)}.home-link{margin:0 8px 0 0}.home-link svg{display:block;width:32px;height:32px;padding:2px}.home-link svg rect:nth-child(2n){transition:transform .2s}.home-link:hover rect:nth-child(2){transform:translate(-8px)}.home-link:hover rect:nth-child(4){transform:translate(-11px)}.home-link:hover rect:nth-child(6){transform:translate(-6px)}nav ul{display:flex;align-items:center}nav li{display:flex;align-items:center;cursor:pointer;margin:0 16px;fill:var(--nav);user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.home-link:hover svg{fill:var(--nav-hover)}nav li .btn-menu{height:100%}nav li.dimmed svg{fill:var(--nav-faded)}nav li.dimmed:hover svg{fill:var(--nav-faded-hover)}nav li>*,nav li svg,nav li .btn svg{width:24px;height:24px;fill:inherit}.title .btn-menu{margin:0 8px}.title .btn-menu>.btn svg{width:24px;height:24px}header .btn-menu>.btn{background:none!important;padding:0;box-shadow:none;fill:var(--nav)}header .btn-menu>.btn:hover{fill:var(--nav-hover)}footer{display:flex;align-items:flex-end;flex-wrap:wrap;padding:50px 30px;color:var(--text-3)}footer>*{margin-bottom:10px}footer>*:not(:last-child){margin-right:30px}footer p{display:flex;align-items:center}footer a{color:var(--text-3)}footer a:hover{color:var(--text-1)}footer svg{fill:var(--text-3);margin-right:8px}footer .donate svg{fill:var(--accent-donate)}main{padding-top:68px;color:var(--text-1);fill:var(--text-1);transition:padding .3s}.controls{display:flex;justify-content:flex-end;position:fixed;top:12px;right:16px;left:16px;pointer-events:none}.controls>*{pointer-events:all}main>.controls{margin-right:16px;margin-left:16px;row-gap:8px}.generator-controls{display:flex;margin-left:auto;position:sticky;top:68px;z-index:1}.sounds-controls>*:not(:last-child),.preview-controls>*:not(:last-child),.generator-controls>*:not(:last-child),.project-controls>*:not(:last-child){margin-right:8px}.secondary-controls{margin-top:40px}.sounds-controls{display:flex;margin:0 16px;position:sticky;top:68px;z-index:1}.project-controls{margin:8px;display:flex;z-index:2}.project-controls>:first-child{max-width:138px;max-width:calc(max(200px,20vw) - 62px);text-overflow:ellipsis;margin-right:auto}.status-icon.active{fill:var(--accent-success)}.status-icon.danger{fill:var(--accent-danger)}.project-creation .btn-menu .btn-group,.project-controls .btn-menu:first-child .btn-group{left:0;right:unset}.source-controls{justify-content:flex-end;z-index:10}.tree{margin-top:-40px;overflow-x:auto;padding:8px 16px 50vh}.error+.tree{margin-top:0}.popup-source{position:fixed;display:flex;flex-direction:column;width:40vw;left:100%;bottom:0;z-index:3;transition:transform .3s;border-radius:6px 0 0}.popup-source.shown{transform:translate(-100%)}.source{width:100%;height:40vh;max-height:50vh;padding:12px;border:none;font-family:Consolas,monospace;font-size:14px;white-space:pre;overflow-wrap:normal;overflow-x:auto;tab-size:4;-moz-tab-size:4;-o-tab-size:4;-webkit-tab-size:4;outline:none;resize:none;position:static;background-color:var(--background-2);border-top-left-radius:6px;color:var(--text-1);box-shadow:0 0 7px -3px #000}.popup-source .btn-menu>.btn-group{right:100%;top:50%;margin-top:0;margin-right:8px;transform:translateY(-50%)}.popup-preview{position:fixed;display:flex;flex-direction:column;height:calc(100% - 56px);width:40vw;left:100%;bottom:0;z-index:3;background-color:var(--background-2);box-shadow:0 0 7px -3px #000;transition:transform .3s}main.has-preview{padding-right:40vw}.popup-preview.shown{transform:translate(-100%)}.popup-preview canvas{width:100%;background-color:var(--nav-faded);display:block;cursor:crosshair;image-rendering:-moz-crisp-edges;image-rendering:-webkit-crisp-edges;image-rendering:crisp-edges;image-rendering:pixelated;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.popup-share{position:fixed;display:flex;width:40vw;min-height:108px;left:100%;bottom:0;z-index:3;padding:12px;background-color:var(--background-3);box-shadow:0 0 7px -3px #000;color:var(--text-2);transition:transform .3s;border-radius:6px 0 0}.popup-share.shown{transform:translate(-100%)}.popup-share>input{height:32px;background-color:var(--background-1);color:var(--text-2);border:none;border-radius:6px;padding:7px 11px;margin-right:8px;width:100%}.popup-share>.btn.active{fill:var(--accent-success)}.popup-project{position:fixed;display:flex;flex-direction:column;height:calc(100% - 56px);width:200px;width:max(200px,20vw);right:100%;bottom:0;z-index:3;background-color:var(--background-2);box-shadow:0 0 7px -3px #000;fill:var(--text-2);transition:transform .3s,width .3s}.popup-project.shown{transform:translate(100%)}main.has-project{padding-left:200px;padding-left:max(200px,20vw)}.btn{display:flex;align-items:center;border:none;height:32px;border-radius:6px;padding:7px 11px;cursor:pointer;outline:none;font-size:1rem;white-space:nowrap;background-color:var(--background-4);box-shadow:0 1px 7px -2px #000;color:var(--text-2);fill:var(--text-2);user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.btn.active{color:var(--accent-primary);fill:var(--accent-primary)}.btn.disabled{cursor:default;background-color:var(--background-2)}.btn.invalid{outline:var(--accent-danger) solid 1px;outline-offset:-1px}.btn:not(.btn-input):not(.disabled):hover{background-color:var(--background-5)}.btn.no-pointer{pointer-events:none}.btn svg{flex-shrink:0;width:16px;height:16px;fill:currentColor}.btn svg:not(:last-child){margin-right:5px}.btn svg:not(:first-child){margin-left:5px}.btn span{overflow:hidden;text-overflow:ellipsis}.btn-link{text-decoration:none;display:inline-flex}.btn-link:not([href]){cursor:default;background-color:var(--background-2)!important}.btn-menu:not(.no-relative){position:relative}.btn-menu .btn-group{display:flex;flex-direction:column;position:absolute;top:100%;right:0;margin-top:8px;z-index:10}.btn-group{border-radius:6px;box-shadow:0 0 7px -2px #000}.btn-group .btn{box-shadow:none}.btn-group .btn:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-menu .result-list .btn:first-child,.btn-group .btn:not(:first-child){border-top-right-radius:0;border-top-left-radius:0}.btn-group>hr{border:4px solid var(--background-4);border-left:transparent;border-right:transparent;background-color:var(--background-6);margin:0;padding:2px 0}.btn-row{display:flex;box-shadow:0 1px 7px -2px #000;border-radius:6px}.btn-row>*,.btn-row>.btn-menu>*{box-shadow:none}.btn-row>*:not(:first-child),.btn-row>.btn-menu:not(:first-child)>*{border-top-left-radius:0;border-bottom-left-radius:0}.btn-row>*:not(:last-child),.btn-row>.btn-menu:not(:last-child)>*{border-top-right-radius:0;border-bottom-right-radius:0}.btn-input{cursor:initial;padding-right:7px}.btn-input input{background:var(--background-1);color:var(--text-1);font-size:17px;border:none;padding:0 3px;margin-left:5px;width:100px}.btn-input.larger-input input{width:200px}.btn-input.large-input{padding:5px 5px 5px 11px}.btn-input.large-input input{width:100%;height:100%}.btn.danger{background-color:var(--errors-background)}.btn.danger:not(.btn-input):not(.disabled):hover{background-color:var(--errors-background-hover)}.btn-menu .result-list{display:block;width:380px;height:unset;overflow-y:auto;overflow-x:hidden;max-height:240px;border-bottom-left-radius:6px;border-bottom-right-radius:6px}.version-switcher>.btn{background-color:var(--accent-site-1);font-weight:700}.version-switcher>.btn:after{font-weight:400}.version-switcher>.btn:not(.btn-input):not(.disabled):hover{background-color:var(--accent-site-2)}.version-switcher.attention>.btn{outline:2px solid transparent;outline-offset:-2px;animation:outline-grow 2s ease-out 1s 4 forwards}@keyframes outline-grow{0%{outline-offset:-2px;outline-width:2px;outline-color:var(--accent-site-1)}50%,to{outline-offset:10px;outline-width:0px;outline-color:transparent}}.button-group{display:flex;justify-content:flex-start}.button-group>*:not(:last-child){margin-right:8px}.popup-actions{display:flex;position:fixed;bottom:8px;z-index:4;background-color:var(--background-4);box-shadow:0 0 7px -3px #000;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;transform:translate(var(--offset));transition:padding .1s,transform .3s}.popup-action{padding:12px;fill:var(--text-3);cursor:pointer}.popup-actions.right-actions{left:100%;padding-right:16px;border-top-left-radius:24px;border-bottom-left-radius:24px}.popup-actions.right-actions .popup-action{padding-left:16px;border-top-left-radius:50%;border-bottom-left-radius:50%}.popup-actions.left-actions{right:100%;padding-left:16px;border-top-right-radius:24px;border-bottom-right-radius:24px}.popup-actions.left-actions .popup-action{padding-right:16px;border-top-right-radius:50%;border-bottom-right-radius:50%}.popup-action.shown~.popup-action{border-top-left-radius:0;border-bottom-left-radius:0;padding-left:12px}.popup-action:not(.shown){pointer-events:none;order:1;visibility:hidden}.popup-action>svg{display:block;width:24px;height:24px}.popup-action:hover{background-color:var(--background-5)}.popup-action.action-preview{fill:var(--accent-primary)}.popup-action.action-copy.active{fill:var(--accent-success)}.tooltipped{position:relative}.tooltipped:after{content:attr(aria-label);position:absolute;z-index:100;padding:3px 7px;display:none;white-space:pre;pointer-events:none;background-color:var(--background-6);color:var(--text-1);border-radius:6px;font-size:14px;line-height:1.5;text-align:left;opacity:0}.tooltipped.tip-nw:after,.tooltipped.tip-ne:after{bottom:100%;margin-bottom:6px}.tooltipped.tip-se:after,.tooltipped.tip-s:after,.tooltipped.tip-sw:after{top:100%;margin-top:6px}.tooltipped.tip-ne:after,.tooltipped.tip-se:after{left:50%;margin-left:-16px}.tooltipped.tip-nw:after,.tooltipped.tip-sw:after{right:50%;margin-right:-16px}.tooltipped.tip-ne:before,.tooltipped.tip-n:before,.tooltipped.tip-nw:before{bottom:auto;top:-7px;border-top-color:var(--background-6)}.tooltipped.tip-se:before,.tooltipped.tip-s:before,.tooltipped.tip-sw:before{top:auto;bottom:-7px;border-bottom-color:var(--background-6)}.tooltipped.tip-s:after,.tooltipped.tip-n:after,.tooltipped.tip-s:before,.tooltipped.tip-n:before{left:var(--x, 50%);transform:translate(-50%,8px)}.tooltipped:before{content:"";position:absolute;z-index:101;display:none;right:50%;width:0;height:0;margin-right:-8px;pointer-events:none;border:8px solid transparent;opacity:0}.tooltipped.tip-shown:before,.tooltipped.tip-shown:after,.tooltipped:not([disabled]):hover:before,.tooltipped:not([disabled]):hover:after{display:inline-block;animation:tooltip-appear .1s ease-in .4s forwards}.tooltipped.tip-shown:after,.tooltipped:not([disabled]):hover:after{box-shadow:0 1px 3px #0007}@keyframes tooltip-appear{0%{opacity:0}to{opacity:1}}.error{padding:5px 14px;margin:12px 16px;color:var(--text-1);background-color:var(--errors-background);border-radius:3px}.error>*{margin:10px 0}.error h3 span{margin-left:8px;cursor:pointer}.error .error-dismiss{float:right;cursor:pointer;margin-left:10px}.error-dismiss svg{display:block;width:24px;height:24px}.error a{color:var(--text-1)}.modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background-color:var(--background-2);color:var(--text-2);box-shadow:0 0 18px -2px #000;border-radius:6px;padding:24px;z-index:101;pointer-events:all}[data-modals] .tree{pointer-events:none}.file-modal{display:flex;flex-direction:column}.file-modal>*:not(:last-child){margin-bottom:8px}.file-modal input{background-color:var(--background-1);box-shadow:none}.container{padding:16px;max-width:960px;margin:0 auto}.worldgen{display:grid;gap:16px}.tool-card{display:flex;padding:10px;color:var(--text-2);background-color:var(--background-2);border-radius:6px;text-decoration:none}a.tool-card:hover,a.tool-head:hover{background-color:var(--background-3)}.tool-group{display:flex;flex-direction:column;color:var(--text-2);background-color:var(--background-2);box-shadow:1px 1px 7px -3px #000;border-radius:6px}.tool-card svg{width:32px;height:32px;flex-shrink:0;margin-right:8px}.tool-card h3{display:flex;font-weight:unset;align-items:center}.tool-card h3 svg{color:var(--text-2);fill:currentColor;width:20px;height:20px;margin-left:8px;transition:margin .2s}.tool-card:hover h3>svg{margin-left:14px}.tool-head p{color:var(--text-3)}.tool-body{display:flex;flex-direction:column;border-top:2px solid var(--background-1);padding:4px 8px}.tool-body>.tool-card{box-shadow:none;margin-bottom:0}hr{margin:12px 0;border:none}.note{color:var(--text-3)}.settings{padding:20px}.settings p{color:var(--nav);padding:8px;border-bottom:2px solid var(--background-4)}.field-list{width:100%;border-collapse:collapse;list-style-type:none}.field-list li{display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px solid var(--background-4)}.field-prop{display:inline-flex;align-items:center;max-width:100%;margin:4px}.field-prop>label,.field-prop>input{height:34px;color:var(--text-1);margin-right:-1px;border:1px solid;border-color:var(--nav-faded-hover)}.field-prop label{padding:0 9px;line-height:1.94rem;background-color:var(--node-background-label);white-space:nowrap;border-top-left-radius:3px;border-bottom-left-radius:3px}.field-prop input{width:100%;line-height:1.6rem;background-color:var(--node-background-input);color:var(--text-1);padding-left:9px;font-size:18px;border-top-right-radius:3px;border-bottom-right-radius:3px}.field-prop svg{padding:4px;margin:0 4px;height:28px;width:28px;fill:var(--nav);cursor:pointer}.field-prop .hidden svg{fill:#be4b2e}.field-prop .dimmed svg{fill:var(--nav-faded)}.very-large{font-size:80px;font-weight:100}.item-display{width:32px;height:32px;display:flex;align-items:center;justify-content:center}.item-display>img{width:26px;position:relative;image-rendering:pixelated}.item-display>svg{width:26px;height:20px;position:relative;fill:var(--node-text-dimmed)}.item-display>canvas{width:32px;height:32px}.file-view{background-color:var(--background-2);color:var(--text-2);overflow:hidden;overflow-y:auto;padding-bottom:64px;flex-grow:1}.file-view>span{padding:4px 8px}.project-creation{display:flex;flex-direction:column;align-items:flex-start;background-color:var(--background-2);padding:16px;border-radius:6px;color:var(--text-2)}.project-creation>*:not(:last-child){margin-bottom:8px}.project-creation label{margin-right:8px}.project-creation input{background-color:var(--background-1);box-shadow:none}.input-group{display:flex;align-items:center}.input-group .status-icon{margin-left:8px}.input-group .status-icon svg{display:block}.file-upload{display:flex;align-items:center;padding:16px;border-radius:6px;background-color:var(--background-1)}.file-upload input[type=file]{display:none}.file-upload .btn{margin-right:8px}.tree-view .entry{position:relative;display:flex;align-items:center;cursor:pointer;padding:4px 2px;padding-left:calc(var(--indent, 0) * 15px + 8px);user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;background-color:var(--background-2);color:var(--text-2)}.tree-view .entry:hover{background-color:var(--background-3)}.tree-view .entry.has-error{color:var(--accent-danger);fill:var(--accent-danger)}.tree-view .entry.focused{background-color:var(--background-3);outline:1px solid var(--accent-primary);outline-offset:-1px;z-index:1}.tree-view .entry.active{background-color:var(--background-4)}.tree-view .entry svg{margin-right:4px;flex-shrink:0}.tree-view .entry .status-icon{margin-left:4px;display:flex}.tree-view .entry-menu{position:absolute;top:100%;left:0;background-color:var(--background-4);z-index:4;margin-top:5px;margin-left:24px;border-radius:6px;box-shadow:0 0 7px -2px #000}.tree-view .entry-menu:after{content:"";position:absolute;bottom:100%;left:0;margin-left:6px;border-width:5px;border-style:solid;border-color:transparent transparent var(--background-4) transparent}.tree-view .entry-menu .action{padding:4px 8px}.tree-view .entry-menu .action:first-child{border-top-left-radius:6px;border-top-right-radius:6px}.tree-view .entry-menu .action:last-child{border-bottom-left-radius:6px;border-bottom-right-radius:6px}.tree-view .entry-menu .action:hover{background-color:var(--background-5)}[data-ea-publisher]{margin:0 16px 8px;min-height:69.38px}.ea-content{margin:0!important;background:var(--background-2)!important}.ea-content span{color:var(--text-2)!important}.ea-content strong{color:var(--accent-primary)!important}.ea-callout{margin:.25rem 0!important;padding:0!important}.ea-callout a{color:var(--text-3)!important}.sounds{padding:16px}.sound-search-group{flex-basis:350px;height:32px;display:flex;border-radius:6px;box-shadow:0 1px 7px -2px #000}.sound-search{flex-basis:100%;padding:8px;color:var(--text-1);background-color:var(--background-2);border:none;border-radius:6px 0 0 6px;font-size:16px;margin-right:0!important;box-shadow:none}.btn.add-sound{border-top-left-radius:0;border-bottom-left-radius:0;background-color:var(--accent-sounds-1);box-shadow:none}.btn.add-sound:hover{background-color:var(--accent-sounds-2)}.spacer{margin-right:auto!important}.sound-config{display:grid;grid-template-columns:min-content 2fr min-content min-content min-content 1fr min-content 1fr min-content min-content;align-items:center;gap:12px 8px;padding:10px;background-color:var(--background-2);border-radius:5px}.sound-config:not(:last-child){margin-bottom:8px}.sound-config .btn{box-shadow:none}.sound-config .sound{width:100%}.sound-config label{color:var(--text-2);white-space:nowrap}.sound-config .delay{width:50px;padding:4px}.sound-config input[type=range]{-webkit-appearance:none;width:100%;background:transparent}.sound-config input[type=range]::-webkit-slider-thumb{-webkit-appearance:none}.sound-config input[type=range]:focus{outline:none}.sound-config input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;border:none;height:16px;width:16px;border-radius:50%;background:var(--text-3);cursor:pointer;margin-top:-5px}.sound-config input[type=range]::-moz-range-thumb{border:none;height:16px;width:16px;border-radius:50%;background:var(--text-3);cursor:pointer}.sound-config input[type=range]::-webkit-slider-runnable-track{width:100%;height:8px;cursor:pointer;background:var(--background-4);border-radius:2px;border:none}.sound-config input[type=range]:focus::-webkit-slider-runnable-track{background:var(--background-5)}.sound-config input[type=range]::-moz-range-track{width:100%;height:8px;cursor:pointer;background:var(--background-4);border-radius:2px;border:none}.sound-config input[type=range]:focus::-moz-range-track{background:var(--background-5)}.sound-config .copy[data-command]{position:relative}.sound-config .copy[data-command]:after{content:attr(data-command);position:absolute;top:100%;right:0;margin-top:6px;padding:8px 12px;background-color:var(--background-3);border-radius:5px;box-shadow:0 2px 4px var(--background-1);cursor:initial}.sound-config.invalid .play,.sound-config.loading .play{cursor:initial}.sound-config.playing{background-color:var(--background-3)}.sound-config.playing .play{background-image:linear-gradient(110deg,var(--accent-sounds-3),var(--accent-sounds-3) 45%,var(--accent-sounds-4) 47%,var(--accent-sounds-4) 53%,var(--accent-sounds-3) 55%);background-size:300%;background-position:right;animation:playing 1s infinite}@keyframes playing{0%{background-position:left}to{background-position:right}}.sound-config.loading:not(.invalid) .play svg{animation:spinning 2s infinite linear}.sound-config.invalid .sound{color:var(--invalid-text)}.changelog{display:flex;flex-direction:column;padding:16px}.changelog>.badges-list{margin-top:12px}.badge{--color: hsl(var(--tint, 0), var(--text-saturation), var(--text-lightness));display:flex;align-items:center;margin-right:8px;border:1.5px solid var(--color);height:24px;border-radius:12px;padding:0 8px;color:var(--color);fill:var(--color);white-space:nowrap;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.badge svg{margin-right:4px;width:20px;height:20px}.badge.clickable{cursor:pointer}.badge.active{background-color:var(--color);color:var(--background-2);fill:var(--background-2)}.badges-list{display:flex;flex-wrap:wrap;gap:8px 0}.changelog-version{margin-left:auto;font-size:15px;color:var(--text-3);text-decoration:none}.changelog-version:not(:last-child){position:relative;margin-right:19px}.changelog-version:not(:last-child):after{content:"\2022";position:absolute;text-decoration:none;right:-12px;top:0;pointer-events:none}.changelog-version:hover{text-decoration:underline}.changelog-content{word-wrap:break-word}.changelog-content ul{padding-left:24px}.changelog-content code{background-color:var(--background-5);padding:1px 4px;border-radius:4px;color:var(--text-1)}.query-search{flex-basis:100%;background-color:var(--background-2)}.checkbox{display:flex;align-items:center;padding:7px 11px;border-radius:6px;height:32px;font-size:1rem;white-space:nowrap;color:var(--text-2);background-color:var(--background-2);box-shadow:0 1px 7px -2px #000;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.checkbox input{margin-right:8px}.version-list{margin-top:16px;display:flex;flex-direction:column}.version-entry{display:grid;grid-template-columns:.8fr 1.2fr 1fr .8fr;gap:8px;background:var(--background-2);border-radius:4px;margin-bottom:8px;padding:8px;text-decoration:none}.version-entry:hover{background:var(--background-3)}.version-entry>.version-metadata{font-size:1rem;align-self:center}.version-entry>.version-id{color:var(--text-1);font-size:1.1rem}.navigation{display:flex}.navigation>*:not(:last-child){margin-right:8px}.navigation-divider{flex-basis:100%}.navigation+.card-column{margin-top:8px}.version-detail{color:var(--text-3)}.version-detail h2{font-size:24px;font-weight:unset}.version-detail h2,.version-detail h3,.version-detail h4{color:var(--text-2);margin-top:24px;margin-bottom:8px}.version-info{background:var(--background-2);border-radius:6px;padding:7px 11px;box-shadow:0 1px 5px -2px #000}.version-metadata{color:var(--text-3);font-size:1.2rem}.version-metadata-value{color:var(--text-1)}.version-metadata-link{fill:var(--text-2);vertical-align:middle;margin-left:8px}.version-metadata-link:hover{fill:var(--accent-primary)}.version-tabs{display:flex;margin:20px 0 10px;box-shadow:inset 0 -1px 0 var(--background-4)}.version-tabs>*{border-bottom:2px solid transparent;padding:8px 16px;cursor:pointer;color:var(--text-3);fill:var(--text-3);text-decoration:none;display:inline-flex;align-items:center}.version-tabs>*>svg{margin-left:8px}.version-tabs>.selected{border-color:var(--text-3);color:var(--text-1)}.ace_editor,.ace_gutter,.ace_gutter .ace_layer,.ace_content{color:var(--text-2)!important;background-color:var(--background-2)!important;border:none}.ace_cursor{color:var(--text-1)!important}.ace_gutter-active-line{background-color:var(--background-3)!important}.ace_tag,.ace_variable{color:var(--editor-variable)!important}.ace_string{color:var(--editor-string)!important}.ace_constant{color:var(--editor-constant)!important}.ace_numeric{color:var(--editor-number)!important}.ace_markup,.ace_keyword{color:unset!important}.ace_marker-layer .ace_selection{background-color:var(--selection)!important}.giscus-container{margin-top:16px;min-height:325.667px}.card-group{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:flex-start}.card-column{display:flex;flex-direction:column}.card-column>*:not(:last-child){margin-bottom:8px}.card{display:block;text-decoration:none;color:var(--text-2);background-color:var(--background-2);padding:12px;border-radius:6px}.card:hover{background-color:var(--background-3)}.card-content{display:flex;flex-direction:column}.card-content>*:not(:last-child){margin-bottom:12px}.card-title{display:flex;align-items:center}.card-title svg{width:20px;height:20px;color:var(--text-2);fill:currentColor;margin-left:8px;transition:margin .2s}.card:hover .card-title svg{margin-left:14px}.card-overlay{color:var(--text-3);float:right}.card-subtitle{overflow:hidden;text-overflow:ellipsis}.guides>.badges-list{margin-top:8px}.guide{padding-left:32px;padding-right:32px}.guide>.badges-list{margin-top:12px}.guide-share.active{fill:var(--accent-success);color:var(--text-2)}.guide .ad{margin:12px 0 8px}.guide .ad[data-ea-type=image]{float:right;margin-left:12px}.guide-toc{display:inline-block;border:2px solid var(--background-6);border-radius:6px;padding:8px 16px;line-height:1.2;font-size:90%}.guide-content{color:var(--text-2);margin-top:12px;line-height:1.5;word-wrap:break-word}.guide-content p{margin-top:0;margin-bottom:10px}.guide-content h1,.guide-content h2,.guide-content h3,.guide-content h4,.guide-content h5,.guide-content h6{margin:1.2em 0 .4em;position:relative;font-weight:400}.guide-content h1>[id],.guide-content h2>[id],.guide-content h3>[id],.guide-content h4>[id],.guide-content h5>[id],.guide-content h6>[id]{fill:var(--text-3);opacity:0;transition:opacity .2s;float:left;padding-right:4px;margin-left:-20px;cursor:pointer}.guide-content h1>[id] *,.guide-content h2>[id] *,.guide-content h3>[id] *,.guide-content h4>[id] *,.guide-content h5>[id] *,.guide-content h6>[id] *{pointer-events:none}.guide-content h1:hover>[id],.guide-content h2:hover>[id],.guide-content h3:hover>[id],.guide-content h4:hover>[id],.guide-content h5:hover>[id],.guide-content h6:hover>[id]{opacity:1}.guide-content h2{font-size:24px}.guide-content blockquote{border-left:4px solid var(--background-6);color:var(--text-3);padding-left:.7em;margin:.7em 0}.guide-content blockquote>p{padding:.3em 0}.guide-content a{text-decoration:underline;color:var(--accent-primary)}.guide-content ul,.guide-content ol{padding-left:1.6em;margin:.2em 0 .5em}.guide-content li+li{margin-top:.25em}.guide-content img{border-radius:.2em;max-width:100%}.guide-content table{border-spacing:0}.guide-content th{border-bottom:2px solid var(--background-6);padding:4px 8px}.guide-content td{border-bottom:1px solid var(--background-6);padding:4px 8px}.guide-content tbody tr:last-child td{border-bottom:none}.guide-content code{display:inline-block;padding:.1em .4em;margin:0;background-color:var(--background-2);border-radius:6px;overflow-wrap:break-word;word-break:break-all;font-size:85%}.guide-content h1 code,.guide-content h2 code,.guide-content h3 code,.guide-content h4 code,.guide-content h5 code,.guide-content h6 code{font-size:100%}.guide-content pre>code{display:block;padding:.8em;margin-top:4px;margin-bottom:20px;overflow-x:auto}.guide-content .hljs-attr{color:var(--editor-variable)}.guide-content .hljs-string{color:var(--editor-string)}.guide-content .hljs-number{color:var(--editor-number)}.guide-content .hljs-keyword{color:var(--editor-constant)}@media screen and (max-width: 720px){.sound-search-group{margin-bottom:8px;flex-basis:100%;margin-right:0!important}.sounds-controls{flex-wrap:wrap}.sounds .btn{padding:8px 10px}.sounds .btn svg{margin-right:0!important}.sounds .btn span{display:none}.sound-config{grid-template-columns:min-content min-content 1fr min-content 1fr min-content;grid-template-areas:"play sound sound sound sound copy" "pitch-label pitch-label pitch volume-label volume remove"}.sound-config .play{grid-area:play}.sound-config .sound{grid-area:sound}.sound-config .delay-label,.sound-config .delay{display:none}.sound-config .pitch-label{grid-area:pitch-label}.sound-config .pitch{grid-area:pitch}.sound-config .volume-label{grid-area:volume-label}.sound-config .volume{grid-area:volume}.sound-config .copy{grid-area:copy}.sound-config .remove{grid-area:remove}.version-entry{grid-template-columns:1fr 1fr}}@keyframes spinning{0%{transform:rotate(0)}to{transform:rotate(-360deg)}}@keyframes fadein{0%{opacity:0}to{opacity:1}}@media screen and (max-width: 1300px){main.has-preview .tree{margin-top:4px}}@media screen and (max-width: 800px){main .tree{margin-top:4px!important}}@media screen and (max-width: 580px){.card-group{grid-template-columns:1fr}.title h1{font-size:18px}body nav li{margin:0 8px}main.has-preview{padding-right:0}main.has-project{padding-left:0}main .controls{top:64px}.tree{padding-left:8px;padding-right:8px}.popup-source{width:100vw}.source{border-radius:0}.popup-preview{width:100vw;height:unset;bottom:0;background-color:transparent;box-shadow:none}.popup-preview canvas{margin-top:8px}.btn.btn.large-input,.btn-menu .result-list{width:calc(100vw - 32px)}.version-metadata-hide,.card-overlay{display:none}}:root{--node-border: #3f3f3f;--node-background-label: #1b1b1b;--node-background-input: #272727;--node-background-hover: #1f1f1f;--node-text: #dadada;--node-text-dimmed: #b4b4b4;--node-selected: #ad9715;--node-selected-hover: #a38c0a;--node-selected-border: #8d7a0d;--node-add: #487c13;--node-add-hover: #3e7409;--node-add-border: #3b6e0c;--node-remove: #9b341b;--node-remove-hover: #922d13;--node-remove-border: #7e1d05;--node-indent-border: #454749;--category-predicate: #306163;--category-predicate-border: #224849;--category-predicate-background: #1d3333;--category-function: #838383;--category-function-border: #6b6b6b;--category-function-background: #414141;--category-pool: #386330;--category-pool-border: #2e4922;--category-pool-background: #21331d}:root[data-theme=light]{--node-border: #bcbfc3;--node-background-label: #e4e4e4;--node-background-input: #ffffff;--node-background-hover: #e7e7e7;--node-text: #000000;--node-text-dimmed: #2c2c2c;--node-selected: #f0e65e;--node-selected-hover: #faf06c;--node-selected-border: #b9a327;--node-add: #9bd464;--node-add-hover: #a5dd70;--node-add-border: #498d09;--node-remove: #e76f51;--node-remove-hover: #f57656;--node-remove-border: #be4b2e;--node-indent-border: #b9b9b9;--category-predicate: #65b5b8;--category-predicate-border: #187e81;--category-predicate-background: #95c5c7;--category-function: #979fa7;--category-function-border: #788086;--category-function-background: #dce0e4;--category-pool: #76b865;--category-pool-border: #398118;--category-pool-background: #b1d6a6}@media (prefers-color-scheme: light){:root[data-theme=system]{--node-border: #bcbfc3;--node-background-label: #e4e4e4;--node-background-input: #ffffff;--node-background-hover: #e7e7e7;--node-text: #000000;--node-text-dimmed: #2c2c2c;--node-selected: #f0e65e;--node-selected-hover: #faf06c;--node-selected-border: #b9a327;--node-add: #9bd464;--node-add-hover: #a5dd70;--node-add-border: #498d09;--node-remove: #e76f51;--node-remove-hover: #f57656;--node-remove-border: #be4b2e;--node-indent-border: #b9b9b9;--category-predicate: #65b5b8;--category-predicate-border: #187e81;--category-predicate-background: #95c5c7;--category-function: #979fa7;--category-function-border: #788086;--category-function-background: #dce0e4;--category-pool: #76b865;--category-pool-border: #398118;--category-pool-background: #b1d6a6}}.node-header{display:inline-flex;position:relative;align-items:center;width:100%}.node-header>*{height:34px;border:1px solid;color:var(--node-text);border-color:var(--node-border)}.node-header>label{align-self:flex-start;padding:0 9px;line-height:1.94rem;white-space:nowrap;user-select:none;background-color:var(--node-background-label)}.node-header>input{font-size:18px;padding-left:9px;background-color:var(--node-background-input)}.node-header>input[type=color]{padding:0 2px}.node-header>textarea{min-width:236.33px;min-height:34px;font-size:18px;padding-left:9px;padding-top:5px;background-color:var(--node-background-input)}.node-header>select,.node-header>datalist{font-size:18px;padding-left:6px;background-color:var(--node-background-input)}.node-header button{font-size:18px;padding:0 9px;line-height:1.94rem;white-space:nowrap;user-select:none;cursor:pointer;background-color:var(--node-background-input)}.node-header button:not([disabled]):hover{background-color:var(--node-background-hover)}.node-header a{display:flex;align-items:center;font-size:18px;padding:0 9px;white-space:nowrap;user-select:none;cursor:pointer;fill:var(--node-text);background-color:var(--node-background-input)}.object-node>.node-header>.collapse{cursor:pointer}.node-error~select:last-child,.node-error~input:last-child,.node-error~input[list]:nth-last-child(2),.node-error+.fixed-list~input{border-color:var(--node-remove)!important}.node-header>.node-icon{order:1}.node-header>*:first-child,.node-header>.node-icon:first-child+*{border-top-left-radius:3px;border-bottom-left-radius:3px}.node-header>*:last-child,.node-header>input[list]:nth-last-child(2){border-top-right-radius:3px;border-bottom-right-radius:3px}.node-header>*{margin-right:-1px}.object-node:not(.no-body)>.node-header>*:first-child,.map-node>.node-header>*:first-child,.list-node>.node-header>*:first-child{border-top-left-radius:8px;border-bottom-left-radius:0}button.selected{background-color:var(--node-selected);border-color:var(--node-selected-border)}button:not([disabled]).selected:hover{background-color:var(--node-selected-hover)}.collapse svg{fill:var(--node-text)}.collapse.closed,button.add{background-color:var(--node-add);border-color:var(--node-add-border)}.collapse:not([disabled]).closed:hover,button:not([disabled]).add:hover{background-color:var(--node-add-hover)}.collapse.open,button.remove{background-color:var(--node-remove);border-color:var(--node-remove-border)}.collapse:not([disabled]).open:hover,button:not([disabled]).remove:hover{background-color:var(--node-remove-hover)}.node-header>button svg{display:inline-block;position:relative;top:2px;fill:var(--node-text)}.node-header>button.collapse:last-child,.node-header>button.add:last-child{border-top-right-radius:6px;border-bottom-right-radius:6px}.node-move{display:flex;flex-direction:column;width:34px}button.move{height:50%;border:none;display:flex}button.move+button.move{border-top:1px solid var(--node-border)}button.move:disabled{cursor:unset;fill:var(--node-border)}.node-icon{border:none;position:relative;display:inline-block}.node-icon .icon-popup{visibility:hidden;width:240px;background-color:var(--background-6);color:var(--text-1);text-align:center;border-radius:6px;padding:8px 4px;position:absolute;z-index:2;top:125%;left:50%;margin-left:-120px}.node-icon .icon-popup:after{content:"";position:absolute;bottom:100%;left:50%;margin-left:-3px;border-width:5px;border-style:solid;border-color:transparent transparent var(--background-6) transparent}.node-icon svg:hover+.icon-popup,.node-icon.show .icon-popup{visibility:visible}.node-icon svg{height:34px;width:34px;min-width:34px;margin-left:6px;cursor:pointer}.node-icon.node-help svg{fill:var(--node-border)}.node-icon.node-error svg{fill:var(--node-remove)}.node-menu{position:absolute;left:0;top:100%;width:min-content;margin-top:4px;margin-left:4px;z-index:1;color:var(--text-1);font-size:16px;border-radius:6px;background-color:var(--background-6);box-shadow:0 1px 5px -2px #000}.node-menu:after{content:"";position:absolute;bottom:100%;left:0;margin-left:6px;border-width:5px;border-style:solid;border-color:transparent transparent var(--background-6) transparent}.menu-item{padding:4px;display:flex;align-items:center;white-space:normal}.menu-item>*{margin-right:4px}.menu-item .btn{padding:8px;box-shadow:unset}.menu-item span{color:var(--text-2)}.node{margin-bottom:4px}.node-body>.node:first-child{margin-top:4px}.node:last-child{margin-bottom:0}.node-body{border-left:3px solid var(--node-indent-border)}.node-body{display:flex;flex-direction:column;padding-left:18px}.list-node>.node-body>.object-node>.node-body,.map-node>.node-body>.object-node>.node-body{padding-left:0}.list-node>.node-body>.object-node>.node-body>.node>.node-body,.map-node>.node-body>.object-node>.node-body>.node>.node-body{border-left:none}.list-node>.node-body>.object-node>.node-body>.node>.node-header>.node-icon:first-child+*,.list-node>.node-body>.object-node>.node-body>.node>.node-header>*:first-child,.map-node>.node-body>.object-node>.node-body>.node>.node-header>.node-icon:first-child+*,.map-node>.node-body>.object-node>.node-body>.node>.node-header>*:first-child{border-top-left-radius:0;border-bottom-left-radius:0;border-left:none}.node-body>.object-node[data-category],.node-body>.list-node[data-category],.node-body>.map-node[data-category]{width:100%;min-width:max-content;padding:5px 5px 5px 0;border:2px solid var(--node-border);border-radius:3px}.node-body>.object-node[data-category]>.node-header>.node-icon:first-child+*,.node-body>.object-node[data-category]>.node-header>*:first-child{border-top-left-radius:0;border-bottom-left-radius:0;border-left:none}.node-body>.object-node[data-category]>.node-body,.node-body>.list-node[data-category]>.node-body,.node-body>.map-node[data-category]>.node-body{border:none}.range-node select{width:25px}.fixed-list{display:none}.number-node input,.range-node input,.fixed-list~input{width:100px}[data-category=predicate]>.node-header>label,[data-category=predicate].node-header>label,[data-category=predicate]>.node-body>.node>.node-header>label{background-color:var(--category-predicate)}[data-category=predicate]>.node-body,[data-category=predicate]>.node-header>label,[data-category=predicate].node-header>label,[data-category=predicate]>.node-header>*:not(.selected),[data-category=predicate]>.node-body>.node>.node-header>*:not(.selected){border-color:var(--category-predicate-border)}.node-body>.node.object-node[data-category=predicate],.node-body>.node.list-node[data-category=predicate],.node-body>.node.map-node[data-category=predicate]{background-color:var(--category-predicate-background);border-color:var(--category-predicate-border)}[data-category=function]>.node-header>label,[data-category=function].node-header>label,[data-category=function]>.node-body>.node>.node-header>label{background-color:var(--category-function)}[data-category=function]>.node-body,[data-category=function]>.node-header>label,[data-category=function].node-header>label,[data-category=function]>.node-header>*:not(.selected),[data-category=function]>.node-body>.node>.node-header>*:not(.selected){border-color:var(--category-function-border)}.node-body>.node.object-node[data-category=function],.node-body>.node.list-node[data-category=function],.node-body>.node.map-node[data-category=function]{background-color:var(--category-function-background);border-color:var(--category-function-border)}[data-category=pool]>.node-header>label,[data-category=pool].node-header>label,[data-category=pool]>.node-body>.node>.node-header>label{background-color:var(--category-pool)}[data-category=pool]>.node-body,[data-category=pool]>.node-header>label,[data-category=pool].node-header>label,[data-category=pool]>.node-header>*:not(.selected),[data-category=pool]>.node-body>.node>.node-header>*:not(.selected){border-color:var(--category-pool-border)}.node-body>.node.object-node[data-category=pool],.node-body>.node.list-node[data-category=pool],.node-body>.node.map-node[data-category=pool]{background-color:var(--category-pool-background);border-color:var(--category-pool-border)} diff --git a/assets/index.d528c217.js b/assets/index.d528c217.js new file mode 100644 index 00000000..b9d3469a --- /dev/null +++ b/assets/index.d528c217.js @@ -0,0 +1,139 @@ +var Xg=Object.defineProperty,Kg=Object.defineProperties;var Jg=Object.getOwnPropertyDescriptors;var xa=Object.getOwnPropertySymbols;var a0=Object.prototype.hasOwnProperty,s0=Object.prototype.propertyIsEnumerable;var xl=(e,t,n)=>t in e?Xg(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,oe=(e,t)=>{for(var n in t||(t={}))a0.call(t,n)&&xl(e,n,t[n]);if(xa)for(var n of xa(t))s0.call(t,n)&&xl(e,n,t[n]);return e},be=(e,t)=>Kg(e,Jg(t));var yl=e=>typeof e=="symbol"?e:e+"",l0=(e,t)=>{var n={};for(var r in e)a0.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&xa)for(var r of xa(e))t.indexOf(r)<0&&s0.call(e,r)&&(n[r]=e[r]);return n};var I=(e,t,n)=>(xl(e,typeof t!="symbol"?t+"":t,n),n);const xk={},Qg=function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const o of i)if(o.type==="childList")for(const a of o.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&r(a)}).observe(document,{childList:!0,subtree:!0});function n(i){const o={};return i.integrity&&(o.integrity=i.integrity),i.referrerpolicy&&(o.referrerPolicy=i.referrerpolicy),i.crossorigin==="use-credentials"?o.credentials="include":i.crossorigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(i){if(i.ep)return;i.ep=!0;const o=n(i);fetch(i.href,o)}};Qg();var ia,de,$f,Bf,So,zf,c0,jf,_s={},Vf=[],em=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function Xn(e,t){for(var n in t)e[n]=t[n];return e}function Uf(e){var t=e.parentNode;t&&t.removeChild(e)}function Gt(e,t,n){var r,i,o,a={};for(o in t)o=="key"?r=t[o]:o=="ref"?i=t[o]:a[o]=t[o];if(arguments.length>2&&(a.children=arguments.length>3?ia.call(arguments,2):n),typeof e=="function"&&e.defaultProps!=null)for(o in e.defaultProps)a[o]===void 0&&(a[o]=e.defaultProps[o]);return Io(e,a,r,i,null)}function Io(e,t,n,r,i){var o={type:e,props:t,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:i==null?++$f:i};return i==null&&de.vnode!=null&&de.vnode(o),o}function Hf(){return{current:null}}function tr(e){return e.children}function Jt(e,t){this.props=e,this.context=t}function ji(e,t){if(t==null)return e.__?ji(e.__,e.__.__k.indexOf(e)+1):null;for(var n;t<e.__k.length;t++)if((n=e.__k[t])!=null&&n.__e!=null)return n.__e;return typeof e.type=="function"?ji(e):null}function Zf(e){var t,n;if((e=e.__)!=null&&e.__c!=null){for(e.__e=e.__c.base=null,t=0;t<e.__k.length;t++)if((n=e.__k[t])!=null&&n.__e!=null){e.__e=e.__c.base=n.__e;break}return Zf(e)}}function wc(e){(!e.__d&&(e.__d=!0)&&So.push(e)&&!ws.__r++||c0!==de.debounceRendering)&&((c0=de.debounceRendering)||zf)(ws)}function ws(){for(var e;ws.__r=So.length;)e=So.sort(function(t,n){return t.__v.__b-n.__v.__b}),So=[],e.some(function(t){var n,r,i,o,a,s;t.__d&&(a=(o=(n=t).__v).__e,(s=n.__P)&&(r=[],(i=Xn({},o)).__v=o.__v+1,dd(s,o,i,n.__n,s.ownerSVGElement!==void 0,o.__h!=null?[a]:null,r,a==null?ji(o):a,o.__h),qf(r,o),o.__e!=a&&Zf(o)))})}function Gf(e,t,n,r,i,o,a,s,l,d){var c,u,f,h,w,_,g,m=r&&r.__k||Vf,v=m.length;for(n.__k=[],c=0;c<t.length;c++)if((h=n.__k[c]=(h=t[c])==null||typeof h=="boolean"?null:typeof h=="string"||typeof h=="number"||typeof h=="bigint"?Io(null,h,null,null,h):Array.isArray(h)?Io(tr,{children:h},null,null,null):h.__b>0?Io(h.type,h.props,h.key,null,h.__v):h)!=null){if(h.__=n,h.__b=n.__b+1,(f=m[c])===null||f&&h.key==f.key&&h.type===f.type)m[c]=void 0;else for(u=0;u<v;u++){if((f=m[u])&&h.key==f.key&&h.type===f.type){m[u]=void 0;break}f=null}dd(e,h,f=f||_s,i,o,a,s,l,d),w=h.__e,(u=h.ref)&&f.ref!=u&&(g||(g=[]),f.ref&&g.push(f.ref,null,h),g.push(u,h.__c||w,h)),w!=null?(_==null&&(_=w),typeof h.type=="function"&&h.__k===f.__k?h.__d=l=Yf(h,l,e):l=Wf(e,h,f,m,w,l),typeof n.type=="function"&&(n.__d=l)):l&&f.__e==l&&l.parentNode!=e&&(l=ji(f))}for(n.__e=_,c=v;c--;)m[c]!=null&&(typeof n.type=="function"&&m[c].__e!=null&&m[c].__e==n.__d&&(n.__d=ji(r,c+1)),Kf(m[c],m[c]));if(g)for(c=0;c<g.length;c++)Xf(g[c],g[++c],g[++c])}function Yf(e,t,n){for(var r,i=e.__k,o=0;i&&o<i.length;o++)(r=i[o])&&(r.__=e,t=typeof r.type=="function"?Yf(r,t,n):Wf(n,r,r,i,r.__e,t));return t}function Qt(e,t){return t=t||[],e==null||typeof e=="boolean"||(Array.isArray(e)?e.some(function(n){Qt(n,t)}):t.push(e)),t}function Wf(e,t,n,r,i,o){var a,s,l;if(t.__d!==void 0)a=t.__d,t.__d=void 0;else if(n==null||i!=o||i.parentNode==null)e:if(o==null||o.parentNode!==e)e.appendChild(i),a=null;else{for(s=o,l=0;(s=s.nextSibling)&&l<r.length;l+=2)if(s==i)break e;e.insertBefore(i,o),a=o}return a!==void 0?a:i.nextSibling}function tm(e,t,n,r,i){var o;for(o in n)o==="children"||o==="key"||o in t||vs(e,o,null,n[o],r);for(o in t)i&&typeof t[o]!="function"||o==="children"||o==="key"||o==="value"||o==="checked"||n[o]===t[o]||vs(e,o,t[o],n[o],r)}function d0(e,t,n){t[0]==="-"?e.setProperty(t,n):e[t]=n==null?"":typeof n!="number"||em.test(t)?n:n+"px"}function vs(e,t,n,r,i){var o;e:if(t==="style")if(typeof n=="string")e.style.cssText=n;else{if(typeof r=="string"&&(e.style.cssText=r=""),r)for(t in r)n&&t in n||d0(e.style,t,"");if(n)for(t in n)r&&n[t]===r[t]||d0(e.style,t,n[t])}else if(t[0]==="o"&&t[1]==="n")o=t!==(t=t.replace(/Capture$/,"")),t=t.toLowerCase()in e?t.toLowerCase().slice(2):t.slice(2),e.l||(e.l={}),e.l[t+o]=n,n?r||e.addEventListener(t,o?f0:u0,o):e.removeEventListener(t,o?f0:u0,o);else if(t!=="dangerouslySetInnerHTML"){if(i)t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(t!=="href"&&t!=="list"&&t!=="form"&&t!=="tabIndex"&&t!=="download"&&t in e)try{e[t]=n==null?"":n;break e}catch{}typeof n=="function"||(n!=null&&(n!==!1||t[0]==="a"&&t[1]==="r")?e.setAttribute(t,n):e.removeAttribute(t))}}function u0(e){this.l[e.type+!1](de.event?de.event(e):e)}function f0(e){this.l[e.type+!0](de.event?de.event(e):e)}function dd(e,t,n,r,i,o,a,s,l){var d,c,u,f,h,w,_,g,m,v,x,b,y,k=t.type;if(t.constructor!==void 0)return null;n.__h!=null&&(l=n.__h,s=t.__e=n.__e,t.__h=null,o=[s]),(d=de.__b)&&d(t);try{e:if(typeof k=="function"){if(g=t.props,m=(d=k.contextType)&&r[d.__c],v=d?m?m.props.value:d.__:r,n.__c?_=(c=t.__c=n.__c).__=c.__E:("prototype"in k&&k.prototype.render?t.__c=c=new k(g,v):(t.__c=c=new Jt(g,v),c.constructor=k,c.render=rm),m&&m.sub(c),c.props=g,c.state||(c.state={}),c.context=v,c.__n=r,u=c.__d=!0,c.__h=[]),c.__s==null&&(c.__s=c.state),k.getDerivedStateFromProps!=null&&(c.__s==c.state&&(c.__s=Xn({},c.__s)),Xn(c.__s,k.getDerivedStateFromProps(g,c.__s))),f=c.props,h=c.state,u)k.getDerivedStateFromProps==null&&c.componentWillMount!=null&&c.componentWillMount(),c.componentDidMount!=null&&c.__h.push(c.componentDidMount);else{if(k.getDerivedStateFromProps==null&&g!==f&&c.componentWillReceiveProps!=null&&c.componentWillReceiveProps(g,v),!c.__e&&c.shouldComponentUpdate!=null&&c.shouldComponentUpdate(g,c.__s,v)===!1||t.__v===n.__v){c.props=g,c.state=c.__s,t.__v!==n.__v&&(c.__d=!1),c.__v=t,t.__e=n.__e,t.__k=n.__k,t.__k.forEach(function(C){C&&(C.__=t)}),c.__h.length&&a.push(c);break e}c.componentWillUpdate!=null&&c.componentWillUpdate(g,c.__s,v),c.componentDidUpdate!=null&&c.__h.push(function(){c.componentDidUpdate(f,h,w)})}if(c.context=v,c.props=g,c.__v=t,c.__P=e,x=de.__r,b=0,"prototype"in k&&k.prototype.render)c.state=c.__s,c.__d=!1,x&&x(t),d=c.render(c.props,c.state,c.context);else do c.__d=!1,x&&x(t),d=c.render(c.props,c.state,c.context),c.state=c.__s;while(c.__d&&++b<25);c.state=c.__s,c.getChildContext!=null&&(r=Xn(Xn({},r),c.getChildContext())),u||c.getSnapshotBeforeUpdate==null||(w=c.getSnapshotBeforeUpdate(f,h)),y=d!=null&&d.type===tr&&d.key==null?d.props.children:d,Gf(e,Array.isArray(y)?y:[y],t,n,r,i,o,a,s,l),c.base=t.__e,t.__h=null,c.__h.length&&a.push(c),_&&(c.__E=c.__=null),c.__e=!1}else o==null&&t.__v===n.__v?(t.__k=n.__k,t.__e=n.__e):t.__e=nm(n.__e,t,n,r,i,o,a,l);(d=de.diffed)&&d(t)}catch(C){t.__v=null,(l||o!=null)&&(t.__e=s,t.__h=!!l,o[o.indexOf(s)]=null),de.__e(C,t,n)}}function qf(e,t){de.__c&&de.__c(t,e),e.some(function(n){try{e=n.__h,n.__h=[],e.some(function(r){r.call(n)})}catch(r){de.__e(r,n.__v)}})}function nm(e,t,n,r,i,o,a,s){var l,d,c,u=n.props,f=t.props,h=t.type,w=0;if(h==="svg"&&(i=!0),o!=null){for(;w<o.length;w++)if((l=o[w])&&"setAttribute"in l==!!h&&(h?l.localName===h:l.nodeType===3)){e=l,o[w]=null;break}}if(e==null){if(h===null)return document.createTextNode(f);e=i?document.createElementNS("http://www.w3.org/2000/svg",h):document.createElement(h,f.is&&f),o=null,s=!1}if(h===null)u===f||s&&e.data===f||(e.data=f);else{if(o=o&&ia.call(e.childNodes),d=(u=n.props||_s).dangerouslySetInnerHTML,c=f.dangerouslySetInnerHTML,!s){if(o!=null)for(u={},w=0;w<e.attributes.length;w++)u[e.attributes[w].name]=e.attributes[w].value;(c||d)&&(c&&(d&&c.__html==d.__html||c.__html===e.innerHTML)||(e.innerHTML=c&&c.__html||""))}if(tm(e,f,u,i,s),c)t.__k=[];else if(w=t.props.children,Gf(e,Array.isArray(w)?w:[w],t,n,r,i&&h!=="foreignObject",o,a,o?o[0]:n.__k&&ji(n,0),s),o!=null)for(w=o.length;w--;)o[w]!=null&&Uf(o[w]);s||("value"in f&&(w=f.value)!==void 0&&(w!==e.value||h==="progress"&&!w||h==="option"&&w!==u.value)&&vs(e,"value",w,u.value,!1),"checked"in f&&(w=f.checked)!==void 0&&w!==e.checked&&vs(e,"checked",w,u.checked,!1))}return e}function Xf(e,t,n){try{typeof e=="function"?e(t):e.current=t}catch(r){de.__e(r,n)}}function Kf(e,t,n){var r,i;if(de.unmount&&de.unmount(e),(r=e.ref)&&(r.current&&r.current!==e.__e||Xf(r,null,t)),(r=e.__c)!=null){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(o){de.__e(o,t)}r.base=r.__P=null}if(r=e.__k)for(i=0;i<r.length;i++)r[i]&&Kf(r[i],t,typeof e.type!="function");n||e.__e==null||Uf(e.__e),e.__e=e.__d=void 0}function rm(e,t,n){return this.constructor(e,n)}function Gr(e,t,n){var r,i,o;de.__&&de.__(e,t),i=(r=typeof n=="function")?null:n&&n.__k||t.__k,o=[],dd(t,e=(!r&&n||t).__k=Gt(tr,null,[e]),i||_s,_s,t.ownerSVGElement!==void 0,!r&&n?[n]:i?null:t.firstChild?ia.call(t.childNodes):null,o,!r&&n?n:i?i.__e:t.firstChild,r),qf(o,e)}function ud(e,t){Gr(e,t,ud)}function fd(e,t,n){var r,i,o,a=Xn({},e.props);for(o in t)o=="key"?r=t[o]:o=="ref"?i=t[o]:a[o]=t[o];return arguments.length>2&&(a.children=arguments.length>3?ia.call(arguments,2):n),Io(e.type,a,r||e.key,i||e.ref,null)}function Ir(e,t){var n={__c:t="__cC"+jf++,__:e,Consumer:function(r,i){return r.children(i)},Provider:function(r){var i,o;return this.getChildContext||(i=[],(o={})[t]=this,this.getChildContext=function(){return o},this.shouldComponentUpdate=function(a){this.props.value!==a.value&&i.some(wc)},this.sub=function(a){i.push(a);var s=a.componentWillUnmount;a.componentWillUnmount=function(){i.splice(i.indexOf(a),1),s&&s.call(a)}}),r.children}};return n.Provider.__=n.Consumer.contextType=n}ia=Vf.slice,de={__e:function(e,t,n,r){for(var i,o,a;t=t.__;)if((i=t.__c)&&!i.__)try{if((o=i.constructor)&&o.getDerivedStateFromError!=null&&(i.setState(o.getDerivedStateFromError(e)),a=i.__d),i.componentDidCatch!=null&&(i.componentDidCatch(e,r||{}),a=i.__d),a)return i.__E=i}catch(s){e=s}throw e}},$f=0,Bf=function(e){return e!=null&&e.constructor===void 0},Jt.prototype.setState=function(e,t){var n;n=this.__s!=null&&this.__s!==this.state?this.__s:this.__s=Xn({},this.state),typeof e=="function"&&(e=e(Xn({},n),this.props)),e&&Xn(n,e),e!=null&&this.__v&&(t&&this.__h.push(t),wc(this))},Jt.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),wc(this))},Jt.prototype.render=tr,So=[],zf=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,ws.__r=0,jf=0;var im=Object.freeze(Object.defineProperty({__proto__:null,render:Gr,hydrate:ud,createElement:Gt,h:Gt,Fragment:tr,createRef:Hf,get isValidElement(){return Bf},Component:Jt,cloneElement:fd,createContext:Ir,toChildArray:Qt,get options(){return de}},Symbol.toStringTag,{value:"Module"}));var om={};function Jf(e,t){for(var n in t)e[n]=t[n];return e}function Qf(e,t,n){var r=/(?:\?([^#]*))?(#.*)?$/,i=e.match(r),o={},a;if(i&&i[1])for(var s=i[1].split("&"),l=0;l<s.length;l++){var d=s[l].split("=");o[decodeURIComponent(d[0])]=decodeURIComponent(d.slice(1).join("="))}e=vc(e.replace(r,"")),t=vc(t||"");for(var c=Math.max(e.length,t.length),u=0;u<c;u++)if(t[u]&&t[u].charAt(0)===":"){var f=t[u].replace(/(^:|[+*?]+$)/g,""),h=(t[u].match(/[+*?]+$/)||om)[0]||"",w=~h.indexOf("+"),_=~h.indexOf("*"),g=e[u]||"";if(!g&&!_&&(h.indexOf("?")<0||w)){a=!1;break}if(o[f]=decodeURIComponent(g),w||_){o[f]=e.slice(u).map(decodeURIComponent).join("/");break}}else if(t[u]!==e[u]){a=!1;break}return n.default!==!0&&a===!1?!1:o}function am(e,t){return e.rank<t.rank?1:e.rank>t.rank?-1:e.index-t.index}function sm(e,t){return e.index=t,e.rank=dm(e),e.props}function vc(e){return e.replace(/(^\/+|\/+$)/g,"").split("/")}function lm(e){return e.charAt(0)==":"?1+"*+?".indexOf(e.charAt(e.length-1))||4:5}function cm(e){return vc(e).map(lm).join("")}function dm(e){return e.props.default?0:cm(e.props.path)}var Vt=null,jr=[],bc=[],um={};function fm(e,t){t===void 0&&(t="push"),Vt&&Vt[t]?Vt[t](e):typeof history!="undefined"&&history[t+"State"]&&history[t+"State"](null,null,e)}function Vi(){var e;return Vt&&Vt.location?e=Vt.location:Vt&&Vt.getCurrentLocation?e=Vt.getCurrentLocation():e=typeof location!="undefined"?location:um,""+(e.pathname||"")+(e.search||"")}function ti(e,t){return t===void 0&&(t=!1),typeof e!="string"&&e.url&&(t=e.replace,e=e.url),hm(e)&&fm(e,t?"replace":"push"),eh(e)}function hm(e){for(var t=jr.length;t--;)if(jr[t].canRoute(e))return!0;return!1}function eh(e){for(var t=!1,n=0;n<jr.length;n++)jr[n].routeTo(e)===!0&&(t=!0);for(var r=bc.length;r--;)bc[r](e);return t}function th(e){if(!(!e||!e.getAttribute)){var t=e.getAttribute("href"),n=e.getAttribute("target");if(!(!t||!t.match(/^\//g)||n&&!n.match(/^_?self$/i)))return ti(t)}}function pm(e){if(!(e.ctrlKey||e.metaKey||e.altKey||e.shiftKey||e.button!==0))return th(e.currentTarget||e.target||this),nh(e)}function nh(e){return e&&(e.stopImmediatePropagation&&e.stopImmediatePropagation(),e.stopPropagation&&e.stopPropagation(),e.preventDefault()),!1}function gm(e){if(!(e.ctrlKey||e.metaKey||e.altKey||e.shiftKey||e.button!==0)){var t=e.target;do if(String(t.nodeName).toUpperCase()==="A"&&t.getAttribute("href")){if(t.hasAttribute("native"))return;if(th(t))return nh(e)}while(t=t.parentNode)}}var h0=!1;function mm(){h0||(typeof addEventListener=="function"&&(Vt||addEventListener("popstate",function(){eh(Vi())}),addEventListener("click",gm)),h0=!0)}var nr=function(e){function t(n){e.call(this,n),n.history&&(Vt=n.history),this.state={url:n.url||Vi()},mm()}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.shouldComponentUpdate=function(r){return r.static!==!0?!0:r.url!==this.props.url||r.onChange!==this.props.onChange},t.prototype.canRoute=function(r){var i=Qt(this.props.children);return this.getMatchingChildren(i,r,!1).length>0},t.prototype.routeTo=function(r){this.setState({url:r});var i=this.canRoute(r);return this.updating||this.forceUpdate(),i},t.prototype.componentWillMount=function(){jr.push(this),this.updating=!0},t.prototype.componentDidMount=function(){var r=this;Vt&&(this.unlisten=Vt.listen(function(i){r.routeTo(""+(i.pathname||"")+(i.search||""))})),this.updating=!1},t.prototype.componentWillUnmount=function(){typeof this.unlisten=="function"&&this.unlisten(),jr.splice(jr.indexOf(this),1)},t.prototype.componentWillUpdate=function(){this.updating=!0},t.prototype.componentDidUpdate=function(){this.updating=!1},t.prototype.getMatchingChildren=function(r,i,o){return r.filter(sm).sort(am).map(function(a){var s=Qf(i,a.props.path,a.props);if(s){if(o!==!1){var l={url:i,matches:s};return Jf(l,s),delete l.ref,delete l.key,fd(a,l)}return a}}).filter(Boolean)},t.prototype.render=function(r,i){var o=r.children,a=r.onChange,s=i.url,l=this.getMatchingChildren(Qt(o),s,!0),d=l[0]||null,c=this.previousUrl;return s!==c&&(this.previousUrl=s,typeof a=="function"&&a({router:this,url:s,previous:c,active:l,current:d})),d},t}(Jt),rh=function(e){return Gt("a",Jf({onClick:pm},e))},_m=function(e){return Gt(e.component,e)};nr.subscribers=bc;nr.getCurrentUrl=Vi;nr.route=ti;nr.Router=nr;nr.Route=_m;nr.Link=rh;nr.exec=Qf;var Oe;(e=>{const t="Site",n="Generator";function l(B,J,ue){ga("send","event",B,J,ue)}function d(B,J){ga("set",`dimension${B}`,J)}function c(B){ga("set","page",B),ga("send","pageview")}e.pageview=c;function u(B,J){l(n,B,J)}e.generatorEvent=u;function f(B){return B==="menu"?"Menu":"Hotkey"}function h(B){d(4,B),gtag("set",{locale:B})}e.setLocale=h;function w(B,J){h(J),l(t,"set-language",J),gtag("event","change_locale",{prev_locale:B})}e.changeLocale=w;function _(B){d(1,B),gtag("set",{theme:B})}e.setTheme=_;function g(B,J){_(J),l(t,"set-theme",J),gtag("event","change_theme",{prev_theme:B})}e.changeTheme=g;function m(B){d(3,B),gtag("set",{version:B})}e.setVersion=m;function v(B){gtag("set",{selected_version:B})}e.setSelectedVersion=v;function x(B,J){m(J),l(n,"set-version",J),gtag("event","change_version",{prev_version:B})}e.changeVersion=x;function b(B){d(6,B),gtag("event","use_generator",{file_type:B})}e.setGenerator=b;function y(B){d(7,B),gtag("set",{prefers_color_scheme:B})}e.setPrefersColorScheme=y;function k(B){gtag("set",{tree_view_mode:B})}e.setTreeViewMode=k;function C(B,J,ue){l(n,"reset"),gtag("event","reset_generator",{file_type:B,history:J,method:ue})}e.resetGenerator=C;function E(B,J,ue){l(n,"undo",f(ue)),gtag("event","undo_generator",{file_type:B,history:J,method:ue})}e.undoGenerator=E;function M(B,J,ue){l(n,"undo",f(ue)),gtag("event","redo_generator",{file_type:B,history:J,method:ue})}e.redoGenerator=M;function S(B,J){l(n,"load-preset",J),gtag("event","load_generator_preset",{file_type:B,file_name:J})}e.loadPreset=S;function T(B,J){gtag("event","open_generator_preset",{file_type:B,file_name:J})}e.openPreset=T;function L(B,J,ue,pe,Re,Se){gtag("event","create_generator_snippet",{file_type:B,snippet_id:J,version:ue,data_size:pe,compressed_size:Re,compression_rate:Se})}e.createSnippet=L;function F(B,J,ue){gtag("event","open_generator_snippet",{file_type:B,snippet_id:J,version:ue})}e.openSnippet=F;function X(B,J){l(n,"copy"),gtag("event","copy_generator_output",{file_type:B,method:J})}e.copyOutput=X;function V(B,J){l(n,"download"),gtag("event","download_generator_output",{file_type:B,method:J})}e.downloadOutput=V;function O(B,J){l(n,"toggle-output","visible"),gtag("event","show_generator_output",{file_type:B,method:J})}e.showOutput=O;function j(B,J){l(n,"toggle-output","hidden"),gtag("event","hide_generator_output",{file_type:B,method:J})}e.hideOutput=j;function H(B,J){l(n,"toggle-preview","visible"),gtag("event","show_generator_preview",{file_type:B,method:J})}e.showPreview=H;function Q(B,J){l(n,"toggle-preview","hidden"),gtag("event","hide_generator_preview",{file_type:B,method:J})}e.hidePreview=Q;function D(B,J,ue,pe){l(n,"show-project",f(pe)),gtag("event","show_project",{file_type:B,projects_count:J,project_size:ue,method:pe})}e.showProject=D;function A(B,J,ue,pe){l(n,"hide-project",f(pe)),gtag("event","hide_project",{file_type:B,projects_count:J,project_size:ue,method:pe})}e.hideProject=A;function N(B,J,ue,pe){l(n,"save-project-file",f(pe)),gtag("event","save_project_file",{file_type:B,projects_count:J,project_size:ue,method:pe})}e.saveProjectFile=N;function $(B,J,ue,pe){l(n,"delete-project-file",f(pe)),gtag("event","delete_project_file",{file_type:B,projects_count:J,project_size:ue,method:pe})}e.deleteProjectFile=$;function K(B,J,ue,pe){l(n,"rename-project-file",f(pe)),gtag("event","rename_project_file",{file_type:B,projects_count:J,project_size:ue,method:pe})}e.renameProjectFile=K;function ie(B,J,ue){l(n,"delete-project",f(ue)),gtag("event","delete_project",{projects_count:B,project_size:J,method:ue})}e.deleteProject=ie})(Oe||(Oe={}));var ni,st,kl,p0,Ui=0,ih=[],g0=de.__b,m0=de.__r,_0=de.diffed,w0=de.__c,v0=de.unmount;function Ji(e,t){de.__h&&de.__h(st,e,Ui||t),Ui=0;var n=st.__H||(st.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function Y(e){return Ui=1,oh(lh,e)}function oh(e,t,n){var r=Ji(ni++,2);return r.t=e,r.__c||(r.__=[n?n(t):lh(void 0,t),function(i){var o=r.t(r.__[0],i);r.__[0]!==o&&(r.__=[o,r.__[1]],r.__c.setState({}))}],r.__c=st),r.__}function me(e,t){var n=Ji(ni++,3);!de.__s&&hd(n.__H,t)&&(n.__=e,n.__H=t,st.__H.__h.push(n))}function ah(e,t){var n=Ji(ni++,4);!de.__s&&hd(n.__H,t)&&(n.__=e,n.__H=t,st.__h.push(n))}function Ie(e){return Ui=5,Ce(function(){return{current:e}},[])}function wm(e,t,n){Ui=6,ah(function(){return typeof e=="function"?(e(t()),function(){return e(null)}):e?(e.current=t(),function(){return e.current=null}):void 0},n==null?n:n.concat(e))}function Ce(e,t){var n=Ji(ni++,7);return hd(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}function je(e,t){return Ui=8,Ce(function(){return e},t)}function ri(e){var t=st.context[e.__c],n=Ji(ni++,9);return n.c=e,t?(n.__==null&&(n.__=!0,t.sub(st)),t.props.value):e.__}function vm(e,t){de.useDebugValue&&de.useDebugValue(t?t(e):e)}function sh(e){var t=Ji(ni++,10),n=Y();return t.__=e,st.componentDidCatch||(st.componentDidCatch=function(r){t.__&&t.__(r),n[1](r)}),[n[0],function(){n[1](void 0)}]}function bm(){for(var e;e=ih.shift();)if(e.__P)try{e.__H.__h.forEach(Za),e.__H.__h.forEach(xc),e.__H.__h=[]}catch(t){e.__H.__h=[],de.__e(t,e.__v)}}de.__b=function(e){st=null,g0&&g0(e)},de.__r=function(e){m0&&m0(e),ni=0;var t=(st=e.__c).__H;t&&(kl===st?(t.__h=[],st.__h=[],t.__.forEach(function(n){n.__H&&(n.__H=void 0)})):(t.__h.forEach(Za),t.__h.forEach(xc),t.__h=[])),kl=st},de.diffed=function(e){_0&&_0(e);var t=e.__c;t&&t.__H&&t.__H.__h.length&&(ih.push(t)!==1&&p0===de.requestAnimationFrame||((p0=de.requestAnimationFrame)||function(n){var r,i=function(){clearTimeout(o),b0&&cancelAnimationFrame(r),setTimeout(n)},o=setTimeout(i,100);b0&&(r=requestAnimationFrame(i))})(bm)),st=null,kl=null},de.__c=function(e,t){t.some(function(n){try{n.__h.forEach(Za),n.__h=n.__h.filter(function(r){return!r.__||xc(r)})}catch(r){t.some(function(i){i.__h&&(i.__h=[])}),t=[],de.__e(r,n.__v)}}),w0&&w0(e,t)},de.unmount=function(e){v0&&v0(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.forEach(function(r){try{Za(r)}catch(i){t=i}}),t&&de.__e(t,n.__v))};var b0=typeof requestAnimationFrame=="function";function Za(e){var t=st,n=e.__c;typeof n=="function"&&(e.__c=void 0,n()),st=t}function xc(e){var t=st;e.__c=e.__(),st=t}function hd(e,t){return!e||e.length!==t.length||t.some(function(n,r){return n!==e[r]})}function lh(e,t){return typeof t=="function"?t(e):t}var ya=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function xm(e){if(e.__esModule)return e;var t=Object.defineProperty({},"__esModule",{value:!0});return Object.keys(e).forEach(function(n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}),t}function ch(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var ym=xm(im),dh,uh,fh,yc=ym,km=0;function x0(e,t,n,r,i){var o,a,s={};for(a in t)a=="ref"?o=t[a]:s[a]=t[a];var l={type:e,props:s,key:n,ref:o,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:--km,__source:i,__self:r};if(typeof e=="function"&&(o=e.defaultProps))for(a in o)s[a]===void 0&&(s[a]=o[a]);return yc.options.vnode&&yc.options.vnode(l),l}fh=yc.Fragment,uh=x0,dh=x0;const p=uh,R=dh,ce=fh;function hh({type:e,id:t}){return me(()=>{var n;(n=document.getElementById("ad-placeholder"))==null||n.remove(),"ethicalads"in window&ðicalads.load()},[]),p("div",{"data-ea-publisher":"misode-github-io","data-ea-type":e,class:"ad dark flat",id:t})}function ae({icon:e,label:t,active:n,class:r,tooltip:i,tooltipLoc:o,onClick:a,disabled:s}){return R("div",{class:`btn${n?" active":""}${r?` ${r}`:""}${i?` tooltipped tip-${o!=null?o:"sw"}`:""}${s?" disabled":""}${n?" tip-shown":""}`,onClick:s?void 0:a,"aria-label":i,children:[e&&fe[e],t&&p("span",{children:t})]})}var P={},Fn={},Tn={};Object.defineProperty(Tn,"__esModule",{value:!0});Tn.ModelPath=Tn.Path=Tn.relativePath=void 0;function Cm(e,t){return t.reduce((n,r)=>r==="pop"?n.pop():n.push(r.push),e)}Tn.relativePath=Cm;class Hn{constructor(t,n){this.modelArr=t!=null?t:[],this.contextArr=n!=null?n:[]}last(){return this.modelArr[this.modelArr.length-1]}slice(t,n){return new Hn(this.modelArr.slice(t,n),this.contextArr)}shift(){return new Hn(this.modelArr.slice(1),this.contextArr)}pop(){return new Hn(this.modelArr.slice(0,-1),this.contextArr)}push(t){return this.modelPush(t).contextPush(t)}modelPush(t){return new Hn([...this.modelArr,t],[...this.contextArr])}contextPush(t){if(typeof t=="number")return this.copy();const n=t.startsWith("minecraft:")?t.slice(10):t;return new Hn([...this.modelArr],[...this.contextArr,n])}copy(){return new Hn([...this.modelArr],[...this.contextArr])}getArray(){return this.modelArr}withModel(t){return new Zn(t,this)}getContext(){return this.contextArr}equals(t){return t.modelArr.length===this.modelArr.length&&t.modelArr.every((n,r)=>n===this.modelArr[r])}startsWith(t){return this.modelArr.length<t.modelArr.length?!1:t.modelArr.every((n,r)=>n===this.modelArr[r])}endsWith(t){const n=this.modelArr.length-t.modelArr.length;return n<0?!1:t.modelArr.every((r,i)=>r===this.modelArr[n+i])}toString(){return this.modelArr.map(t=>typeof t=="string"?`.${t}`:`[${t}]`).join("").replace(/^\./,"")}forEach(t,n){return this.modelArr.forEach(t,n)}}Tn.Path=Hn;class Zn extends Hn{constructor(t,n){super(n==null?void 0:n.modelArr,n==null?void 0:n.contextArr),this.model=t}getModel(){return this.model}get(){var t;return(t=this.model)===null||t===void 0?void 0:t.get(this)}set(t){var n;(n=this.model)===null||n===void 0||n.set(this,t)}slice(t,n){return new Zn(this.model,super.slice(t,n))}shift(){return new Zn(this.model,super.shift())}pop(){return new Zn(this.model,super.pop())}push(t){return this.modelPush(t).contextPush(t)}modelPush(t){return new Zn(this.model,super.modelPush(t))}contextPush(t){return new Zn(this.model,super.contextPush(t))}copy(){return new Zn(this.model,super.copy())}}Tn.ModelPath=Zn;var Qi={};Object.defineProperty(Qi,"__esModule",{value:!0});Qi.Errors=void 0;class Em{constructor(){this.errors=[]}add(t,n,...r){return this.errors.push({path:t,error:n,params:r}),!1}get(t,n=!1){return n?this.errors.filter(r=>r.path.equals(t)):this.errors.filter(r=>r.path.startsWith(t))}getAll(){return this.errors}clear(){this.errors=[]}count(){return this.errors.length}*[Symbol.iterator](){for(const t of this.errors)yield t}}Qi.Errors=Em;var Ln={};Object.defineProperty(Ln,"__esModule",{value:!0});Ln.hexId=Ln.quoteString=Ln.escapeString=void 0;function ph(e){return e.replace(/(\\|")/g,"\\$1")}Ln.escapeString=ph;function Am(e){return`"${ph(e)}"`}Ln.quoteString=Am;const Sm=e=>("0"+e.toString(16)).substr(-2);function Im(e=12){var t=new Uint8Array(e/2);return window.crypto.getRandomValues(t),Array.from(t,Sm).join("")}Ln.hexId=Im;Object.defineProperty(Fn,"__esModule",{value:!0});Fn.DataModel=void 0;const Mm=Tn,y0=Qi,Cl=Ln;class pd{constructor(t,n){var r,i,o,a;this.historyMax=(r=n==null?void 0:n.historyMax)!==null&&r!==void 0?r:50,this.verbose=(i=n==null?void 0:n.verbose)!==null&&i!==void 0?i:!1,this.wrapLists=(o=n==null?void 0:n.wrapLists)!==null&&o!==void 0?o:!1,this.schema=t;const s=(a=n==null?void 0:n.initialData)!==null&&a!==void 0?a:t.default();this.data=this.wrapLists?pd.wrapLists(s):s,this.listeners=[],this.errors=new y0.Errors,this.history=[JSON.stringify(this.data)],this.historyIndex=0}addListener(t){this.listeners.push(t)}removeListener(t){const n=this.listeners.indexOf(t);n>-1&&this.listeners.splice(n,1)}invalidate(){const t=JSON.stringify(this.data);this.history[this.historyIndex]!==t&&(this.historyIndex+=1,this.history.splice(this.historyIndex,this.historyMax,t),this.history.length>this.historyMax&&(this.history.splice(0,1),this.historyIndex-=1)),this.silentInvalidate()}silentInvalidate(){this.listeners.forEach(t=>{t.invalidated&&t.invalidated(this),t.errors&&t.errors(this.errors)})}reset(t,n){this.data=t,this.validate(n),this.invalidate()}get(t){let n=this.data;return t.forEach(r=>{if(n===void 0)return n;this.wrapLists&&typeof r=="number"?n=n[r].node:n=n[r]}),n}set(t,n,r){if(t.getArray().length===0){this.reset(n,!0);return}let i=this.data;t.pop().forEach(o=>{(i[o]===void 0||typeof i[o]=="string"||typeof i[o]=="number")&&(this.wrapLists&&typeof o=="number"?i[o]={node:{},id:(0,Cl.hexId)()}:i[o]={}),this.wrapLists&&typeof o=="number"?i=i[o].node:i=i[o]}),i!==null&&(n===void 0||typeof n=="number"&&isNaN(n)?typeof t.last()=="number"?i.splice(t.last(),1):delete i[t.last()]:this.wrapLists&&typeof t.last()=="number"?i[t.last()]={node:n,id:(0,Cl.hexId)()}:i[t.last()]=n,!r&&(this.verbose&&console.log("Set",t.toString(),JSON.stringify(n)),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<this.history.length-1&&(this.historyIndex+=1,this.data=JSON.parse(this.history[this.historyIndex]),this.validate(!1),this.silentInvalidate())}validate(t){var n;const r=new Mm.Path().withModel(this);this.errors.clear(),this.data=(n=this.schema.validate(r,this.data,this.errors,{loose:t,wrapLists:this.wrapLists}))!==null&&n!==void 0?n:{}}error(t,n,...r){const i=new y0.Errors;i.add(t,n,r),this.listeners.forEach(o=>{o.errors&&o.errors(i)})}static wrapLists(t){if(Array.isArray(t)){const n=t.map(r=>({node:this.wrapLists(r),id:(0,Cl.hexId)()}));for(const r of Object.getOwnPropertySymbols(t))n[r]=t[r];return n}else if(typeof t=="object"&&t!==null){const n={};Object.entries(t).map(([r,i])=>{n[r]=this.wrapLists(i)});for(const r of Object.getOwnPropertySymbols(t))n[r]=t[r];return n}else return t}static unwrapLists(t){if(Array.isArray(t)){const n=t.map(r=>this.unwrapLists(r.node));for(const r of Object.getOwnPropertySymbols(t))n[r]=t[r];return n}else if(typeof t=="object"&&t!==null){const n={};Object.entries(t).map(([r,i])=>{n[r]=this.unwrapLists(i)});for(const r of Object.getOwnPropertySymbols(t))n[r]=t[r];return n}else return t}}Fn.DataModel=pd;var or={};(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.Keep=e.Opt=e.Has=e.Mod=e.Base=void 0,e.Base={type:()=>"base",category:()=>{},default:()=>{},enabled:()=>!0,keep:()=>!1,optional:()=>!1,navigate(){return this},pathPush:o=>o,suggest:()=>[],validate:(o,a)=>a,validationOption:()=>{},hook(o,a,...s){return o.base({node:this},a,...s)},canUpdate:()=>!1,update:()=>[]};const t=(o,a)=>oe(oe({},o),typeof a=="function"?a(o):a);e.Mod=t;const n=(o,a)=>(0,e.Mod)(a,{enabled:s=>s.push(o).get()!==void 0});e.Has=n;function r(o){return be(oe({},o),{optional:()=>!0})}e.Opt=r;function i(o){return be(oe({},o),{keep:()=>!0})}e.Keep=i})(or);var qs={};Object.defineProperty(qs,"__esModule",{value:!0});qs.BooleanNode=void 0;const Tm=Fn,Lm=or,Om=()=>be(oe({},Lm.Base),{type:()=>"boolean",default:()=>!1,suggest:()=>["false","true"],validate(e,t,n,r){return r.loose&&typeof t!="boolean"&&(t=r.wrapLists?Tm.DataModel.wrapLists(this.default()):this.default()),(typeof t!="boolean"||t===void 0)&&n.add(e,"error.expected_boolean"),t},hook(e,t,...n){var r;return((r=e.boolean)!==null&&r!==void 0?r:e.base).call(e,{node:this},t,...n)}});qs.BooleanNode=Om;var gh={},oa={};Object.defineProperty(oa,"__esModule",{value:!0});oa.ListNode=void 0;const Nm=Fn,Rm=or,Dm=(e,t)=>{var n,r;const i=(n=t==null?void 0:t.minLength)!==null&&n!==void 0?n:0,o=(r=t==null?void 0:t.maxLength)!==null&&r!==void 0?r:1/0,a=(t==null?void 0:t.minLength)&&(t==null?void 0:t.maxLength);return be(oe({},Rm.Base),{type:()=>"list",default:()=>t!=null&&t.minLength?[...Array(i)].map(s=>e.default()):[],navigate(s,l){const d=l+1;return s.getArray().length<=d?this:e.navigate(s,d)},pathPush(s,l){return s.push(parseInt(l.toString())).contextPush("entry")},validate(s,l,d,c){if(c.loose&&!Array.isArray(l)&&(l=c.wrapLists?Nm.DataModel.wrapLists(this.default()):this.default()),Array.isArray(l))a&&(l.length<i||l.length>o)?i===o?d.add(s,"error.invalid_list_range.exact",l.length,i):d.add(s,"error.invalid_list_range.between",l.length,i,o):l.length<i?d.add(s,"error.invalid_list_range.smaller",l.length,i):l.length>o&&d.add(s,"error.invalid_list_range.larger",l.length,o);else return d.add(s,"error.expected_list"),l;const u=l.map((f,h)=>{const w=e.validate(s.push(h),c.wrapLists?f.node:f,d,c);return c.wrapLists?{node:w,id:f.id}:w});for(const f of Object.getOwnPropertySymbols(l))u[f]=l[f];return u},hook(s,l,...d){var c;return((c=s.list)!==null&&c!==void 0?c:s.base).call(s,{node:this,children:e,config:t!=null?t:{}},l,...d)}})};oa.ListNode=Dm;var aa={};Object.defineProperty(aa,"__esModule",{value:!0});aa.SwitchNode=void 0;const Fm=or,Pm=e=>be(oe({},Fm.Base),{type(t){return this.activeCase(t,!0).node.type(t)},category(t){return this.activeCase(t,!0).node.category(t)},default:()=>e[0].node.default(),navigate(t,n){var r;const i=n+1;return(r=this.activeCase(t.slice(0,i)))===null||r===void 0?void 0:r.node.navigate(t,n)},pathPush(t,n){var r,i;return(i=(r=this.activeCase(t))===null||r===void 0?void 0:r.node.pathPush(t,n))!==null&&i!==void 0?i:t},suggest(t,n){var r,i;return(i=(r=this.activeCase(t))===null||r===void 0?void 0:r.node.suggest(t,n))!==null&&i!==void 0?i:e.filter(o=>o.match(t)).map(o=>o.node.suggest(t,n)).reduce((o,a)=>o.concat(a))},validate(t,n,r,i){let o=this.activeCase(t);return o===void 0?n:o.node.validate(t,n,r,i)},validationOption(t){var n;return(n=this.activeCase(t))===null||n===void 0?void 0:n.node.validationOption(t)},activeCase(t,n){const r=(o,a)=>{var s,l;return((s=a.priority)!==null&&s!==void 0?s:0)-((l=o.priority)!==null&&l!==void 0?l:0)},i=e.filter(o=>o.match(t)).sort(r);return n&&i.length===0?e.sort(r)[0]:i.length>0?i[0]:void 0},hook(t,n,...r){return this.activeCase(n,!0).node.hook(t,n,...r)}});aa.SwitchNode=Pm;(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ObjectOrPreset=e.StringOrList=e.ObjectOrList=e.ChoiceNode=void 0;const t=oa,n=aa,r=(a,s)=>{const l=(c,u)=>{if(c.match)return c.match(u);switch(c.type){case"list":return Array.isArray(u);case"object":return typeof u=="object"&&!Array.isArray(u);default:return typeof u===c.type}},d=(0,n.SwitchNode)(a.map(c=>({type:c.type,priority:c.priority,match:u=>l(c,u.get()),node:c.node})));return be(oe({},d),{validate(c,u,f,h){let w=d.activeCase(c,!0);return w.node.optional()?u:w.node.validate(c,u,f,h)},hook(c,u,...f){var h;return((h=c.choice)!==null&&h!==void 0?h:c.base).call(c,{node:this,choices:a,config:s!=null?s:{},switchNode:d},u,...f)}})};e.ChoiceNode=r;const i=a=>(s,l)=>(0,e.ChoiceNode)([{type:a,node:s,change:d=>{var c;return(c=d[0])!==null&&c!==void 0?c:s.default()}},{type:"list",node:(0,t.ListNode)(s),change:d=>d?[d]:[]}],l);e.ObjectOrList=i("object"),e.StringOrList=i("string");const o=(a,s,l)=>(0,e.ChoiceNode)([{type:"string",priority:1,node:a,change:d=>Object.keys(l)[0]},{type:"object",node:s,change:d=>{var c;return(c=l[d])!==null&&c!==void 0?c:l[Object.keys(l)[0]]}}]);e.ObjectOrPreset=o})(gh);var Xs={};Object.defineProperty(Xs,"__esModule",{value:!0});Xs.MapNode=void 0;const $m=or,Bm=Fn,zm=(e,t,n)=>be(oe({},$m.Base),{type:()=>"map",default:()=>({}),navigate(r,i){const o=i+1;return r.getArray().length<=o?this:t.navigate(r,o)},pathPush(r,i){return r.modelPush(i)},suggest:r=>e.suggest(r,""),validate(r,i,o,a){if(a.loose&&typeof i!="object"&&(i=a.wrapLists?Bm.DataModel.wrapLists(this.default()):this.default()),i===null||typeof i!="object")return o.add(r,"error.expected_object"),i;const s={};Object.keys(i).forEach(l=>{e.validate(r,l,o,a),s[l]=t.validate(r.push(l),i[l],o,a)});for(const l of Object.getOwnPropertySymbols(i))s[l]=i[l];return s},validationOption(r){var i;return(i=n==null?void 0:n.validation)!==null&&i!==void 0?i:e.validationOption(r.push(""))},hook(r,i,...o){var a;return((a=r.map)!==null&&a!==void 0?a:r.base).call(r,{node:this,keys:e,children:t,config:n!=null?n:{}},i,...o)}});Xs.MapNode=zm;var mh={};(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.NumberEnum=e.NumberNode=void 0;const t=P,n=Fn,r=or,i=a=>{var s,l,d;const c=a!=null&&a.color?!0:(s=a==null?void 0:a.integer)!==null&&s!==void 0?s:!1,u=a!=null&&a.color?0:(l=a==null?void 0:a.min)!==null&&l!==void 0?l:-1/0,f=a!=null&&a.color?16777215:(d=a==null?void 0:a.max)!==null&&d!==void 0?d:1/0,h=(a==null?void 0:a.min)!==void 0&&(a==null?void 0:a.max)!==void 0;return be(oe({},r.Base),{type:()=>"number",default:()=>u>0?u:0,validate(w,_,g,m){return m.loose&&typeof _!="number"&&(_=m.wrapLists?n.DataModel.wrapLists(this.default()):this.default()),typeof _!="number"?g.add(w,"error.expected_number"):c&&!Number.isInteger(_)?g.add(w,"error.expected_integer"):h&&(_<u||_>f)?g.add(w,"error.invalid_number_range.between",_,u,f):_<u?g.add(w,"error.invalid_number_range.smaller",_,u):_>f&&g.add(w,"error.invalid_number_range.larger",_,f),_},hook(w,_,...g){var m;return((m=w.number)!==null&&m!==void 0?m:w.base).call(w,{node:this,integer:c,min:u,max:f,between:h,config:a!=null?a:{}},_,...g)}})};e.NumberNode=i;const o=({integer:a,values:s})=>(0,t.Mod)((0,e.NumberNode)({integer:a}),l=>({validate:(d,c,u,f)=>(c=l.validate(d,c,u,f),s.includes(c)||u.add(d,"error.invalid_number_enum",s.join(", ")),c)}));e.NumberEnum=o})(mh);var _h={};(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ObjectNode=e.Case=e.Switch=void 0;const t=or,n=Tn,r=Qi,i=Ln,o=Fn;e.Switch=Symbol("switch"),e.Case=Symbol("case");const a=(s,l)=>{var w,_;const g=s,{[w=e.Switch]:d,[_=e.Case]:c}=g,u=l0(g,[yl(w),yl(_)]),f=m=>{if(d===void 0)return u;const v=(0,n.relativePath)(m,d).get(),x=c[v];return oe(oe({},u),x)},h=(m,v)=>{var x;const b=d?(0,n.relativePath)(m,d).get():void 0,y=d?(x=c[b])!==null&&x!==void 0?x:{}:{},k=Object.keys(y),C=l!=null&&l.context?new n.ModelPath(m.getModel(),new n.Path(m.getArray(),[l.context])):m;return(!(l!=null&&l.disableSwitchContext)&&b&&k.includes(v)?C.contextPush(b):C).push(v)};return be(oe({},t.Base),{type:()=>"object",category:()=>l==null?void 0:l.category,default:()=>({}),keep(){return this.optional()},navigate(m,v){const x=v+1,b=m.getArray();if(b.length<=x)return this;const k=f(m.slice(0,x))[b[x]];return k==null?void 0:k.navigate(m,x)},pathPush(m,v){return h(m,v.toString())},suggest(m,v){const x=f(m),b=Object.keys(typeof v=="object"?v:{});return Object.keys(x).filter(y=>x[y].enabled(m)).filter(y=>!b.includes(y)).map(i.quoteString)},validate(m,v,x,b){if(b.loose&&typeof v!="object"&&(v=b.wrapLists?o.DataModel.wrapLists(this.default()):this.default()),typeof v!="object"||v===null)return x.add(m,"error.expected_object"),v;let y=u;if(d){const S=(0,n.relativePath)(m,d);let T=S.get();if(m.equals(S.pop())){const L=S.last();T=u[L].validate(m.push(L),v[L],new r.Errors,b)}y=oe(oe({},y),c[T])}const k=Object.keys(y),C=k.filter(S=>!y[S].optional()),E=new Set([...C,...Object.keys(v)]),M={};E.forEach(S=>{if(k.includes(S)){if(!y[S].enabled(m))return;const T=y[S].validate(m.push(S),v[S],x,b);!y[S].keep()&&y[S].optional()&&(T===void 0||Array.isArray(T)&&T.length===0||T.constructor===Object&&Object.keys(T).length===0)?delete M[S]:(M[S]=T,m.getModel().set(m.push(S),T,!0))}else M[S]=v[S]});for(const S of Object.getOwnPropertySymbols(v))M[S]=v[S];return M},hook(m,v,...x){var b;return((b=m.object)!==null&&b!==void 0?b:m.base).call(m,{node:this,fields:u,config:l!=null?l:{},filter:d,cases:c,getActiveFields:f,getChildModelPath:h},v,...x)}})};e.ObjectNode=a})(_h);var Ks={};Object.defineProperty(Ks,"__esModule",{value:!0});Ks.Reference=void 0;const jm=(e,t)=>({type(n){return e.get(t).type.bind(this)(n)},category(n){return e.get(t).category.bind(this)(n)},default(){return e.get(t).default.bind(this)()},transform(n,r){return e.get(t).transform(n,r)},enabled(n){return e.get(t).enabled.bind(this)(n)},keep(){return e.get(t).keep.bind(this)()},optional(){return e.get(t).optional.bind(this)()},navigate(n,r){return e.get(t).navigate.bind(this)(n,r)},pathPush(n,r){return e.get(t).pathPush.bind(this)(n,r)},suggest(n,r){return e.get(t).suggest.bind(this)(n,r)},validate(n,r,i,o){return e.get(t).validate.bind(this)(n,r,i,o)},validationOption(n){return e.get(t).validationOption.bind(this)(n)},hook(n,r,...i){return e.get(t).hook.bind(this)(n,r,...i)},activeCase(n,r){return e.get(t).activeCase.bind(this)(n,r)},canUpdate(n,r){return e.get(t).canUpdate.bind(this)(n,r)},update(n,r){return e.get(t).update.bind(this)(n,r)}});Ks.Reference=jm;var Js={};Object.defineProperty(Js,"__esModule",{value:!0});Js.StringNode=void 0;const Vm=or,Um=Ln,Hm=Fn,k0=e=>!!(e!=null&&e.enum),C0=e=>!!(e!=null&&e.validator),Zm=(e,t)=>{const n=()=>{var r,i,o,a;if(k0(t))return typeof t.enum=="string"?(r=e==null?void 0:e.get(t.enum))!==null&&r!==void 0?r:[]:t.enum;if((t==null?void 0:t.validator)==="resource"){if(typeof t.params.pool=="string"){if(t.params.requireTag)return(i=e==null?void 0:e.get(`tag/${t.params.pool}`).map(d=>`#${d}`))!==null&&i!==void 0?i:[];const s=t.params.pool.replace(/^\$/,""),l=(o=e==null?void 0:e.get(s))!==null&&o!==void 0?o:[];return[...t.params.allowTag?(a=e==null?void 0:e.get(`tag/${s}`).map(d=>`#${d}`))!==null&&a!==void 0?a:[]:[],...t.params.suffix?l.map(d=>d+t.params.suffix):l]}return t.params.pool}return[]};return be(oe({},Vm.Base),{type:()=>"string",default:()=>"",validate(r,i,o,a){if(a.loose&&typeof i!="string"&&(i=(a.wrapLists?Hm.DataModel.wrapLists(this.default()):this.default())||void 0),typeof i!="string")return o.add(r,"error.expected_string"),i;if(C0(t)){if(t.validator==="resource"&&i.length>0&&!i.includes(":")&&(i=i.startsWith("#")?"#minecraft:"+i.slice(1):"minecraft:"+i),t.validator==="resource"&&typeof i=="string"){let l=i;if(i.startsWith("#")){if(typeof t.params.pool=="string"&&t.params.pool.startsWith("$tag/"))return o.add(r,"error.disallowed_tag_prefix"),i;if(!t.params.allowTag&&!t.params.requireTag)return o.add(r,"error.disallowed_tag"),i;l=l.slice(1)}else if(t.params.requireTag)return o.add(r,"error.expected_tag"),i;if(!l.match(/^(?:[_\-a-z0-9.]*:)?[_\-a-z0-9/.]*$/g))return o.add(r,"error.invalid_resource_location"),i;if(t.params.suffix&&!l.endsWith(t.params.suffix))return o.add(r,"error.expected_suffix",t.params.suffix),i}if(t.validator==="resource"&&(typeof t.params.pool=="string"&&t.params.pool.startsWith("$")||(t.params.allowTag||t.params.requireTag)&&i.startsWith("#")||typeof i=="string"&&i.includes(":")&&!i.startsWith("minecraft:")||t.params.isDefinition||t.params.allowUnknown))return i}if(k0(t)&&t.additional)return i;const s=n();return s.length>0&&!s.includes(i)&&o.add(r,"error.invalid_enum_option",i),i},suggest:()=>n().map(Um.quoteString),validationOption(){return C0(t)?t:void 0},hook(r,i,...o){var a;return((a=r.string)!==null&&a!==void 0?a:r.base).call(r,{node:this,getValues:n,config:t},i,...o)}})};Js.StringNode=Zm;var wh={};Object.defineProperty(wh,"__esModule",{value:!0});var Hi={};Object.defineProperty(Hi,"__esModule",{value:!0});Hi.CollectionRegistry=Hi.SchemaRegistry=void 0;class Gm{constructor(){this.registry={}}register(t,n){this.registry[t]=n}get(t){const n=this.registry[t];return n===void 0&&console.error(`Tried to access schema "${t}", but that doesn't exist.`),n}}Hi.SchemaRegistry=Gm;class Ym{constructor(){this.registry={}}register(t,n){this.registry[t]=n}get(t){const n=this.registry[t];return n===void 0&&console.warn(`Tried to access collection "${t}", but that doesn't exist.`),n!=null?n:[]}}Hi.CollectionRegistry=Ym;var vh={};Object.defineProperty(vh,"__esModule",{value:!0});(function(e){var t=ya&&ya.__createBinding||(Object.create?function(r,i,o,a){a===void 0&&(a=o);var s=Object.getOwnPropertyDescriptor(i,o);(!s||("get"in s?!i.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return i[o]}}),Object.defineProperty(r,a,s)}:function(r,i,o,a){a===void 0&&(a=o),r[a]=i[o]}),n=ya&&ya.__exportStar||function(r,i){for(var o in r)o!=="default"&&!Object.prototype.hasOwnProperty.call(i,o)&&t(i,r,o)};Object.defineProperty(e,"__esModule",{value:!0}),n(Fn,e),n(Tn,e),n(Qi,e),n(or,e),n(qs,e),n(gh,e),n(oa,e),n(Xs,e),n(mh,e),n(_h,e),n(Ks,e),n(Js,e),n(aa,e),n(wh,e),n(Hi,e),n(vh,e)})(P);const Fo=15,kc=30,Cc=19,Wm=29,bs=256,gd=bs+1+Wm,E0=2*gd+1,lo=256,qm=7,A0=16,S0=17,I0=18,El=8*2,xs=-1,Xm=1,ka=2,Km=0,bi=0,M0=1,Jm=3,Ot=4,ln=0,bh=1,Ca=2,fn=-2,Qm=-3,li=-5;function Qs(e){return el(e.map(([t,n])=>new Array(t).fill(n,0,t)))}function el(e){return e.reduce((t,n)=>t.concat(Array.isArray(n)?el(n):n),[])}const T0=[0,1,2,3].concat(...Qs([[2,4],[2,5],[4,6],[4,7],[8,8],[8,9],[16,10],[16,11],[32,12],[32,13],[64,14],[64,15],[2,0],[1,16],[1,17],[2,18],[2,19],[4,20],[4,21],[8,22],[8,23],[16,24],[16,25],[32,26],[32,27],[64,28],[64,29]]));function Je(){const e=this;function t(i){const o=e.dyn_tree,a=e.stat_desc.static_tree,s=e.stat_desc.extra_bits,l=e.stat_desc.extra_base,d=e.stat_desc.max_length;let c,u,f,h,w,_,g=0;for(h=0;h<=Fo;h++)i.bl_count[h]=0;for(o[i.heap[i.heap_max]*2+1]=0,c=i.heap_max+1;c<E0;c++)u=i.heap[c],h=o[o[u*2+1]*2+1]+1,h>d&&(h=d,g++),o[u*2+1]=h,!(u>e.max_code)&&(i.bl_count[h]++,w=0,u>=l&&(w=s[u-l]),_=o[u*2],i.opt_len+=_*(h+w),a&&(i.static_len+=_*(a[u*2+1]+w)));if(g!==0){do{for(h=d-1;i.bl_count[h]===0;)h--;i.bl_count[h]--,i.bl_count[h+1]+=2,i.bl_count[d]--,g-=2}while(g>0);for(h=d;h!==0;h--)for(u=i.bl_count[h];u!==0;)f=i.heap[--c],!(f>e.max_code)&&(o[f*2+1]!=h&&(i.opt_len+=(h-o[f*2+1])*o[f*2],o[f*2+1]=h),u--)}}function n(i,o){let a=0;do a|=i&1,i>>>=1,a<<=1;while(--o>0);return a>>>1}function r(i,o,a){const s=[];let l=0,d,c,u;for(d=1;d<=Fo;d++)s[d]=l=l+a[d-1]<<1;for(c=0;c<=o;c++)u=i[c*2+1],u!==0&&(i[c*2]=n(s[u]++,u))}e.build_tree=function(i){const o=e.dyn_tree,a=e.stat_desc.static_tree,s=e.stat_desc.elems;let l,d,c=-1,u;for(i.heap_len=0,i.heap_max=E0,l=0;l<s;l++)o[l*2]!==0?(i.heap[++i.heap_len]=c=l,i.depth[l]=0):o[l*2+1]=0;for(;i.heap_len<2;)u=i.heap[++i.heap_len]=c<2?++c:0,o[u*2]=1,i.depth[u]=0,i.opt_len--,a&&(i.static_len-=a[u*2+1]);for(e.max_code=c,l=Math.floor(i.heap_len/2);l>=1;l--)i.pqdownheap(o,l);u=s;do l=i.heap[1],i.heap[1]=i.heap[i.heap_len--],i.pqdownheap(o,1),d=i.heap[1],i.heap[--i.heap_max]=l,i.heap[--i.heap_max]=d,o[u*2]=o[l*2]+o[d*2],i.depth[u]=Math.max(i.depth[l],i.depth[d])+1,o[l*2+1]=o[d*2+1]=u,i.heap[1]=u++,i.pqdownheap(o,1);while(i.heap_len>=2);i.heap[--i.heap_max]=i.heap[1],t(i),r(o,e.max_code,i.bl_count)}}Je._length_code=[0,1,2,3,4,5,6,7].concat(...Qs([[2,8],[2,9],[2,10],[2,11],[4,12],[4,13],[4,14],[4,15],[8,16],[8,17],[8,18],[8,19],[16,20],[16,21],[16,22],[16,23],[32,24],[32,25],[32,26],[31,27],[1,28]]));Je.base_length=[0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224,0];Je.base_dist=[0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576];Je.d_code=function(e){return e<256?T0[e]:T0[256+(e>>>7)]};Je.extra_lbits=[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];Je.extra_dbits=[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];Je.extra_blbits=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7];Je.bl_order=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function yt(e,t,n,r,i){const o=this;o.static_tree=e,o.extra_bits=t,o.extra_base=n,o.elems=r,o.max_length=i}const e5=[12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254,1,129,65,193,33,161,97,225,17,145,81,209,49,177,113,241,9,137,73,201,41,169,105,233,25,153,89,217,57,185,121,249,5,133,69,197,37,165,101,229,21,149,85,213,53,181,117,245,13,141,77,205,45,173,109,237,29,157,93,221,61,189,125,253,19,275,147,403,83,339,211,467,51,307,179,435,115,371,243,499,11,267,139,395,75,331,203,459,43,299,171,427,107,363,235,491,27,283,155,411,91,347,219,475,59,315,187,443,123,379,251,507,7,263,135,391,71,327,199,455,39,295,167,423,103,359,231,487,23,279,151,407,87,343,215,471,55,311,183,439,119,375,247,503,15,271,143,399,79,335,207,463,47,303,175,431,111,367,239,495,31,287,159,415,95,351,223,479,63,319,191,447,127,383,255,511,0,64,32,96,16,80,48,112,8,72,40,104,24,88,56,120,4,68,36,100,20,84,52,116,3,131,67,195,35,163,99,227],t5=Qs([[144,8],[112,9],[24,7],[8,8]]);yt.static_ltree=el(e5.map((e,t)=>[e,t5[t]]));const n5=[0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23],r5=Qs([[30,5]]);yt.static_dtree=el(n5.map((e,t)=>[e,r5[t]]));yt.static_l_desc=new yt(yt.static_ltree,Je.extra_lbits,bs+1,gd,Fo);yt.static_d_desc=new yt(yt.static_dtree,Je.extra_dbits,0,kc,Fo);yt.static_bl_desc=new yt(null,Je.extra_blbits,0,Cc,qm);const i5=9,o5=8;function yn(e,t,n,r,i){const o=this;o.good_length=e,o.max_lazy=t,o.nice_length=n,o.max_chain=r,o.func=i}const xh=0,Ga=1,Rr=2,sn=[new yn(0,0,0,0,xh),new yn(4,4,8,4,Ga),new yn(4,5,16,8,Ga),new yn(4,6,32,32,Ga),new yn(4,4,16,16,Rr),new yn(8,16,32,32,Rr),new yn(8,16,128,128,Rr),new yn(8,32,128,256,Rr),new yn(32,128,258,1024,Rr),new yn(32,258,258,4096,Rr)],Ea=["need dictionary","stream end","","","stream error","data error","","buffer error","",""],Wt=0,Aa=1,co=2,Sa=3,a5=32,Al=42,Ia=113,uo=666,Sl=8,s5=0,Il=1,l5=2,nt=3,Ya=258,zt=Ya+nt+1;function L0(e,t,n,r){const i=e[t*2],o=e[n*2];return i<o||i==o&&r[t]<=r[n]}function c5(){const e=this;let t,n,r,i,o,a,s,l,d,c,u,f,h,w,_,g,m,v,x,b,y,k,C,E,M,S,T,L,F,X,V,O,j;const H=new Je,Q=new Je,D=new Je;e.depth=[];let A,N,$,K,ie,B;e.bl_count=[],e.heap=[],V=[],O=[],j=[];function J(){d=2*o,u[h-1]=0;for(let z=0;z<h-1;z++)u[z]=0;S=sn[T].max_lazy,F=sn[T].good_length,X=sn[T].nice_length,M=sn[T].max_chain,y=0,m=0,C=0,v=E=nt-1,b=0,f=0}function ue(){let z;for(z=0;z<gd;z++)V[z*2]=0;for(z=0;z<kc;z++)O[z*2]=0;for(z=0;z<Cc;z++)j[z*2]=0;V[lo*2]=1,e.opt_len=e.static_len=0,N=$=0}function pe(){H.dyn_tree=V,H.stat_desc=yt.static_l_desc,Q.dyn_tree=O,Q.stat_desc=yt.static_d_desc,D.dyn_tree=j,D.stat_desc=yt.static_bl_desc,ie=0,B=0,K=8,ue()}e.pqdownheap=function(z,G){const U=e.heap,W=U[G];let te=G<<1;for(;te<=e.heap_len&&(te<e.heap_len&&L0(z,U[te+1],U[te],e.depth)&&te++,!L0(z,W,U[te],e.depth));)U[G]=U[te],G=te,te<<=1;U[G]=W};function Re(z,G){let U=-1,W,te=z[0*2+1],Z=0,se=7,Ke=4;te===0&&(se=138,Ke=3),z[(G+1)*2+1]=65535;for(let qe=0;qe<=G;qe++)W=te,te=z[(qe+1)*2+1],!(++Z<se&&W==te)&&(Z<Ke?j[W*2]+=Z:W!==0?(W!=U&&j[W*2]++,j[A0*2]++):Z<=10?j[S0*2]++:j[I0*2]++,Z=0,U=W,te===0?(se=138,Ke=3):W==te?(se=6,Ke=3):(se=7,Ke=4))}function Se(){let z;for(Re(V,H.max_code),Re(O,Q.max_code),D.build_tree(e),z=Cc-1;z>=3&&j[Je.bl_order[z]*2+1]===0;z--);return e.opt_len+=3*(z+1)+5+5+4,z}function Ue(z){e.pending_buf[e.pending++]=z}function rt(z){Ue(z&255),Ue(z>>>8&255)}function Ae(z){Ue(z>>8&255),Ue(z&255&255)}function Me(z,G){let U;const W=G;B>El-W?(U=z,ie|=U<<B&65535,rt(ie),ie=U>>>El-B,B+=W-El):(ie|=z<<B&65535,B+=W)}function Te(z,G){const U=z*2;Me(G[U]&65535,G[U+1]&65535)}function le(z,G){let U,W=-1,te,Z=z[0*2+1],se=0,Ke=7,qe=4;for(Z===0&&(Ke=138,qe=3),U=0;U<=G;U++)if(te=Z,Z=z[(U+1)*2+1],!(++se<Ke&&te==Z)){if(se<qe)do Te(te,j);while(--se!==0);else te!==0?(te!=W&&(Te(te,j),se--),Te(A0,j),Me(se-3,2)):se<=10?(Te(S0,j),Me(se-3,3)):(Te(I0,j),Me(se-11,7));se=0,W=te,Z===0?(Ke=138,qe=3):te==Z?(Ke=6,qe=3):(Ke=7,qe=4)}}function bn(z,G,U){let W;for(Me(z-257,5),Me(G-1,5),Me(U-4,4),W=0;W<U;W++)Me(j[Je.bl_order[W]*2+1],3);le(V,z-1),le(O,G-1)}function Ze(){B==16?(rt(ie),ie=0,B=0):B>=8&&(Ue(ie&255),ie>>>=8,B-=8)}function $e(){Me(Il<<1,3),Te(lo,yt.static_ltree),Ze(),1+K+10-B<9&&(Me(Il<<1,3),Te(lo,yt.static_ltree),Ze()),K=7}function et(z,G){let U,W,te;if(e.dist_buf[N]=z,e.lc_buf[N]=G&255,N++,z===0?V[G*2]++:($++,z--,V[(Je._length_code[G]+bs+1)*2]++,O[Je.d_code(z)*2]++),(N&8191)===0&&T>2){for(U=N*8,W=y-m,te=0;te<kc;te++)U+=O[te*2]*(5+Je.extra_dbits[te]);if(U>>>=3,$<Math.floor(N/2)&&U<Math.floor(W/2))return!0}return N==A-1}function vt(z,G){let U,W,te=0,Z,se;if(N!==0)do U=e.dist_buf[te],W=e.lc_buf[te],te++,U===0?Te(W,z):(Z=Je._length_code[W],Te(Z+bs+1,z),se=Je.extra_lbits[Z],se!==0&&(W-=Je.base_length[Z],Me(W,se)),U--,Z=Je.d_code(U),Te(Z,G),se=Je.extra_dbits[Z],se!==0&&(U-=Je.base_dist[Z],Me(U,se)));while(te<N);Te(lo,z),K=z[lo*2+1]}function xn(){B>8?rt(ie):B>0&&Ue(ie&255),ie=0,B=0}function Bn(z,G,U){xn(),K=8,U&&(rt(G),rt(~G)),e.pending_buf.set(l.subarray(z,z+G),e.pending),e.pending+=G}function ee(z,G,U){Me((s5<<1)+(U?1:0),3),Bn(z,G,!0)}function ne(z,G,U){let W,te,Z=0;T>0?(H.build_tree(e),Q.build_tree(e),Z=Se(),W=e.opt_len+3+7>>>3,te=e.static_len+3+7>>>3,te<=W&&(W=te)):W=te=G+5,G+4<=W&&z!=-1?ee(z,G,U):te==W?(Me((Il<<1)+(U?1:0),3),vt(yt.static_ltree,yt.static_dtree)):(Me((l5<<1)+(U?1:0),3),bn(H.max_code+1,Q.max_code+1,Z+1),vt(V,O)),ue(),U&&xn()}function _e(z){ne(m>=0?m:-1,y-m,z),m=y,t.flush_pending()}function Le(){let z,G,U,W;do{if(W=d-C-y,W===0&&y===0&&C===0)W=o;else if(W==-1)W--;else if(y>=o+o-zt){l.set(l.subarray(o,o+o),0),k-=o,y-=o,m-=o,z=h,U=z;do G=u[--U]&65535,u[U]=G>=o?G-o:0;while(--z!==0);z=o,U=z;do G=c[--U]&65535,c[U]=G>=o?G-o:0;while(--z!==0);W+=o}if(t.avail_in===0)return;z=t.read_buf(l,y+C,W),C+=z,C>=nt&&(f=l[y]&255,f=(f<<g^l[y+1]&255)&_)}while(C<zt&&t.avail_in!==0)}function at(z){let G=65535,U;for(G>r-5&&(G=r-5);;){if(C<=1){if(Le(),C===0&&z==bi)return Wt;if(C===0)break}if(y+=C,C=0,U=m+G,(y===0||y>=U)&&(C=y-U,y=U,_e(!1),t.avail_out===0)||y-m>=o-zt&&(_e(!1),t.avail_out===0))return Wt}return _e(z==Ot),t.avail_out===0?z==Ot?co:Wt:z==Ot?Sa:Aa}function It(z){let G=M,U=y,W,te,Z=E;const se=y>o-zt?y-(o-zt):0;let Ke=X;const qe=s,dt=y+Ya;let an=l[U+Z-1],ba=l[U+Z];E>=F&&(G>>=2),Ke>C&&(Ke=C);do if(W=z,!(l[W+Z]!=ba||l[W+Z-1]!=an||l[W]!=l[U]||l[++W]!=l[U+1])){U+=2,W++;do;while(l[++U]==l[++W]&&l[++U]==l[++W]&&l[++U]==l[++W]&&l[++U]==l[++W]&&l[++U]==l[++W]&&l[++U]==l[++W]&&l[++U]==l[++W]&&l[++U]==l[++W]&&U<dt);if(te=Ya-(dt-U),U=dt-Ya,te>Z){if(k=z,Z=te,te>=Ke)break;an=l[U+Z-1],ba=l[U+Z]}}while((z=c[z&qe]&65535)>se&&--G!==0);return Z<=C?Z:C}function so(z){let G=0,U;for(;;){if(C<zt){if(Le(),C<zt&&z==bi)return Wt;if(C===0)break}if(C>=nt&&(f=(f<<g^l[y+(nt-1)]&255)&_,G=u[f]&65535,c[y&s]=u[f],u[f]=y),G!==0&&(y-G&65535)<=o-zt&&L!=ka&&(v=It(G)),v>=nt)if(U=et(y-k,v-nt),C-=v,v<=S&&C>=nt){v--;do y++,f=(f<<g^l[y+(nt-1)]&255)&_,G=u[f]&65535,c[y&s]=u[f],u[f]=y;while(--v!==0);y++}else y+=v,v=0,f=l[y]&255,f=(f<<g^l[y+1]&255)&_;else U=et(0,l[y]&255),C--,y++;if(U&&(_e(!1),t.avail_out===0))return Wt}return _e(z==Ot),t.avail_out===0?z==Ot?co:Wt:z==Ot?Sa:Aa}function si(z){let G=0,U,W;for(;;){if(C<zt){if(Le(),C<zt&&z==bi)return Wt;if(C===0)break}if(C>=nt&&(f=(f<<g^l[y+(nt-1)]&255)&_,G=u[f]&65535,c[y&s]=u[f],u[f]=y),E=v,x=k,v=nt-1,G!==0&&E<S&&(y-G&65535)<=o-zt&&(L!=ka&&(v=It(G)),v<=5&&(L==Xm||v==nt&&y-k>4096)&&(v=nt-1)),E>=nt&&v<=E){W=y+C-nt,U=et(y-1-x,E-nt),C-=E-1,E-=2;do++y<=W&&(f=(f<<g^l[y+(nt-1)]&255)&_,G=u[f]&65535,c[y&s]=u[f],u[f]=y);while(--E!==0);if(b=0,v=nt-1,y++,U&&(_e(!1),t.avail_out===0))return Wt}else if(b!==0){if(U=et(0,l[y-1]&255),U&&_e(!1),y++,C--,t.avail_out===0)return Wt}else b=1,y++,C--}return b!==0&&(U=et(0,l[y-1]&255),b=0),_e(z==Ot),t.avail_out===0?z==Ot?co:Wt:z==Ot?Sa:Aa}function va(z){return z.total_in=z.total_out=0,z.msg=null,e.pending=0,e.pending_out=0,n=Ia,i=bi,pe(),J(),ln}e.deflateInit=function(z,G,U,W,te,Z){return W||(W=Sl),te||(te=o5),Z||(Z=Km),z.msg=null,G==xs&&(G=6),te<1||te>i5||W!=Sl||U<9||U>15||G<0||G>9||Z<0||Z>ka?fn:(z.dstate=e,a=U,o=1<<a,s=o-1,w=te+7,h=1<<w,_=h-1,g=Math.floor((w+nt-1)/nt),l=new Uint8Array(o*2),c=[],u=[],A=1<<te+6,e.pending_buf=new Uint8Array(A*4),r=A*4,e.dist_buf=new Uint16Array(A),e.lc_buf=new Uint8Array(A),T=G,L=Z,va(z))},e.deflateEnd=function(){return n!=Al&&n!=Ia&&n!=uo?fn:(e.lc_buf=null,e.dist_buf=null,e.pending_buf=null,u=null,c=null,l=null,e.dstate=null,n==Ia?Qm:ln)},e.deflateParams=function(z,G,U){let W=ln;return G==xs&&(G=6),G<0||G>9||U<0||U>ka?fn:(sn[T].func!=sn[G].func&&z.total_in!==0&&(W=z.deflate(M0)),T!=G&&(T=G,S=sn[T].max_lazy,F=sn[T].good_length,X=sn[T].nice_length,M=sn[T].max_chain),L=U,W)},e.deflateSetDictionary=function(z,G,U){let W=U,te,Z=0;if(!G||n!=Al)return fn;if(W<nt)return ln;for(W>o-zt&&(W=o-zt,Z=U-W),l.set(G.subarray(Z,Z+W),0),y=W,m=W,f=l[0]&255,f=(f<<g^l[1]&255)&_,te=0;te<=W-nt;te++)f=(f<<g^l[te+(nt-1)]&255)&_,c[te&s]=u[f],u[f]=te;return ln},e.deflate=function(z,G){let U,W,te,Z,se;if(G>Ot||G<0)return fn;if(!z.next_out||!z.next_in&&z.avail_in!==0||n==uo&&G!=Ot)return z.msg=Ea[Ca-fn],fn;if(z.avail_out===0)return z.msg=Ea[Ca-li],li;if(t=z,Z=i,i=G,n==Al&&(W=Sl+(a-8<<4)<<8,te=(T-1&255)>>1,te>3&&(te=3),W|=te<<6,y!==0&&(W|=a5),W+=31-W%31,n=Ia,Ae(W)),e.pending!==0){if(t.flush_pending(),t.avail_out===0)return i=-1,ln}else if(t.avail_in===0&&G<=Z&&G!=Ot)return t.msg=Ea[Ca-li],li;if(n==uo&&t.avail_in!==0)return z.msg=Ea[Ca-li],li;if(t.avail_in!==0||C!==0||G!=bi&&n!=uo){switch(se=-1,sn[T].func){case xh:se=at(G);break;case Ga:se=so(G);break;case Rr:se=si(G);break}if((se==co||se==Sa)&&(n=uo),se==Wt||se==co)return t.avail_out===0&&(i=-1),ln;if(se==Aa){if(G==M0)$e();else if(ee(0,0,!1),G==Jm)for(U=0;U<h;U++)u[U]=0;if(t.flush_pending(),t.avail_out===0)return i=-1,ln}}return G!=Ot?ln:bh}}function yh(){const e=this;e.next_in_index=0,e.next_out_index=0,e.avail_in=0,e.total_in=0,e.avail_out=0,e.total_out=0}yh.prototype={deflateInit:function(e,t){const n=this;return n.dstate=new c5,t||(t=Fo),n.dstate.deflateInit(n,e,t)},deflate:function(e){const t=this;return t.dstate?t.dstate.deflate(t,e):fn},deflateEnd:function(){const e=this;if(!e.dstate)return fn;const t=e.dstate.deflateEnd();return e.dstate=null,t},deflateParams:function(e,t){const n=this;return n.dstate?n.dstate.deflateParams(n,e,t):fn},deflateSetDictionary:function(e,t){const n=this;return n.dstate?n.dstate.deflateSetDictionary(n,e,t):fn},read_buf:function(e,t,n){const r=this;let i=r.avail_in;return i>n&&(i=n),i===0?0:(r.avail_in-=i,e.set(r.next_in.subarray(r.next_in_index,r.next_in_index+i),t),r.next_in_index+=i,r.total_in+=i,i)},flush_pending:function(){const e=this;let t=e.dstate.pending;t>e.avail_out&&(t=e.avail_out),t!==0&&(e.next_out.set(e.dstate.pending_buf.subarray(e.dstate.pending_out,e.dstate.pending_out+t),e.next_out_index),e.next_out_index+=t,e.dstate.pending_out+=t,e.total_out+=t,e.avail_out-=t,e.dstate.pending-=t,e.dstate.pending===0&&(e.dstate.pending_out=0))}};function d5(e){const t=this,n=new yh,r=u5(e&&e.chunkSize?e.chunkSize:64*1024),i=bi,o=new Uint8Array(r);let a=e?e.level:xs;typeof a=="undefined"&&(a=xs),n.deflateInit(a),n.next_out=o,t.append=function(s,l){let d,c,u=0,f=0,h=0;const w=[];if(!!s.length){n.next_in_index=0,n.next_in=s,n.avail_in=s.length;do{if(n.next_out_index=0,n.avail_out=r,d=n.deflate(i),d!=ln)throw new Error("deflating: "+n.msg);n.next_out_index&&(n.next_out_index==r?w.push(new Uint8Array(o)):w.push(o.slice(0,n.next_out_index))),h+=n.next_out_index,l&&n.next_in_index>0&&n.next_in_index!=u&&(l(n.next_in_index),u=n.next_in_index)}while(n.avail_in>0||n.avail_out===0);return w.length>1?(c=new Uint8Array(h),w.forEach(function(_){c.set(_,f),f+=_.length})):c=w[0]||new Uint8Array(0),c}},t.flush=function(){let s,l,d=0,c=0;const u=[];do{if(n.next_out_index=0,n.avail_out=r,s=n.deflate(Ot),s!=bh&&s!=ln)throw new Error("deflating: "+n.msg);r-n.avail_out>0&&u.push(o.slice(0,n.next_out_index)),c+=n.next_out_index}while(n.avail_in>0||n.avail_out===0);return n.deflateEnd(),l=new Uint8Array(c),u.forEach(function(f){l.set(f,d),d+=f.length}),l}}function u5(e){return e+5*(Math.floor(e/16383)+1)}const f5=15,Pe=0,Kn=1,h5=2,Rt=-2,Qe=-3,O0=-4,Jn=-5,jt=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],kh=1440,p5=0,g5=4,m5=9,_5=5,w5=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],v5=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],b5=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],x5=[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,112,112],y5=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],k5=[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],ar=15;function Ec(){const e=this;let t,n,r,i,o,a;function s(d,c,u,f,h,w,_,g,m,v,x){let b,y,k,C,E,M,S,T,L,F,X,V,O,j,H;F=0,E=u;do r[d[c+F]]++,F++,E--;while(E!==0);if(r[0]==u)return _[0]=-1,g[0]=0,Pe;for(T=g[0],M=1;M<=ar&&r[M]===0;M++);for(S=M,T<M&&(T=M),E=ar;E!==0&&r[E]===0;E--);for(k=E,T>E&&(T=E),g[0]=T,j=1<<M;M<E;M++,j<<=1)if((j-=r[M])<0)return Qe;if((j-=r[E])<0)return Qe;for(r[E]+=j,a[1]=M=0,F=1,O=2;--E!==0;)a[O]=M+=r[F],O++,F++;E=0,F=0;do(M=d[c+F])!==0&&(x[a[M]++]=E),F++;while(++E<u);for(u=a[k],a[0]=E=0,F=0,C=-1,V=-T,o[0]=0,X=0,H=0;S<=k;S++)for(b=r[S];b--!==0;){for(;S>V+T;){if(C++,V+=T,H=k-V,H=H>T?T:H,(y=1<<(M=S-V))>b+1&&(y-=b+1,O=S,M<H))for(;++M<H&&!((y<<=1)<=r[++O]);)y-=r[O];if(H=1<<M,v[0]+H>kh)return Qe;o[C]=X=v[0],v[0]+=H,C!==0?(a[C]=E,i[0]=M,i[1]=T,M=E>>>V-T,i[2]=X-o[C-1]-M,m.set(i,(o[C-1]+M)*3)):_[0]=X}for(i[1]=S-V,F>=u?i[0]=128+64:x[F]<f?(i[0]=x[F]<256?0:32+64,i[2]=x[F++]):(i[0]=w[x[F]-f]+16+64,i[2]=h[x[F++]-f]),y=1<<S-V,M=E>>>V;M<H;M+=y)m.set(i,(X+M)*3);for(M=1<<S-1;(E&M)!==0;M>>>=1)E^=M;for(E^=M,L=(1<<V)-1;(E&L)!=a[C];)C--,V-=T,L=(1<<V)-1}return j!==0&&k!=1?Jn:Pe}function l(d){let c;for(t||(t=[],n=[],r=new Int32Array(ar+1),i=[],o=new Int32Array(ar),a=new Int32Array(ar+1)),n.length<d&&(n=[]),c=0;c<d;c++)n[c]=0;for(c=0;c<ar+1;c++)r[c]=0;for(c=0;c<3;c++)i[c]=0;o.set(r.subarray(0,ar),0),a.set(r.subarray(0,ar+1),0)}e.inflate_trees_bits=function(d,c,u,f,h){let w;return l(19),t[0]=0,w=s(d,0,19,19,null,null,u,c,f,t,n),w==Qe?h.msg="oversubscribed dynamic bit lengths tree":(w==Jn||c[0]===0)&&(h.msg="incomplete dynamic bit lengths tree",w=Qe),w},e.inflate_trees_dynamic=function(d,c,u,f,h,w,_,g,m){let v;return l(288),t[0]=0,v=s(u,0,d,257,b5,x5,w,f,g,t,n),v!=Pe||f[0]===0?(v==Qe?m.msg="oversubscribed literal/length tree":v!=O0&&(m.msg="incomplete literal/length tree",v=Qe),v):(l(288),v=s(u,d,c,0,y5,k5,_,h,g,t,n),v!=Pe||h[0]===0&&d>257?(v==Qe?m.msg="oversubscribed distance tree":v==Jn?(m.msg="incomplete distance tree",v=Qe):v!=O0&&(m.msg="empty distance tree with lengths",v=Qe),v):Pe)}}Ec.inflate_trees_fixed=function(e,t,n,r){return e[0]=m5,t[0]=_5,n[0]=w5,r[0]=v5,Pe};const Ma=0,N0=1,R0=2,D0=3,F0=4,P0=5,$0=6,Ml=7,B0=8,Ta=9;function C5(){const e=this;let t,n=0,r,i=0,o=0,a=0,s=0,l=0,d=0,c=0,u,f=0,h,w=0;function _(g,m,v,x,b,y,k,C){let E,M,S,T,L,F,X,V,O,j,H,Q,D,A,N,$;X=C.next_in_index,V=C.avail_in,L=k.bitb,F=k.bitk,O=k.write,j=O<k.read?k.read-O-1:k.end-O,H=jt[g],Q=jt[m];do{for(;F<20;)V--,L|=(C.read_byte(X++)&255)<<F,F+=8;if(E=L&H,M=v,S=x,$=(S+E)*3,(T=M[$])===0){L>>=M[$+1],F-=M[$+1],k.win[O++]=M[$+2],j--;continue}do{if(L>>=M[$+1],F-=M[$+1],(T&16)!==0){for(T&=15,D=M[$+2]+(L&jt[T]),L>>=T,F-=T;F<15;)V--,L|=(C.read_byte(X++)&255)<<F,F+=8;E=L&Q,M=b,S=y,$=(S+E)*3,T=M[$];do if(L>>=M[$+1],F-=M[$+1],(T&16)!==0){for(T&=15;F<T;)V--,L|=(C.read_byte(X++)&255)<<F,F+=8;if(A=M[$+2]+(L&jt[T]),L>>=T,F-=T,j-=D,O>=A)N=O-A,O-N>0&&2>O-N?(k.win[O++]=k.win[N++],k.win[O++]=k.win[N++],D-=2):(k.win.set(k.win.subarray(N,N+2),O),O+=2,N+=2,D-=2);else{N=O-A;do N+=k.end;while(N<0);if(T=k.end-N,D>T){if(D-=T,O-N>0&&T>O-N)do k.win[O++]=k.win[N++];while(--T!==0);else k.win.set(k.win.subarray(N,N+T),O),O+=T,N+=T,T=0;N=0}}if(O-N>0&&D>O-N)do k.win[O++]=k.win[N++];while(--D!==0);else k.win.set(k.win.subarray(N,N+D),O),O+=D,N+=D,D=0;break}else if((T&64)===0)E+=M[$+2],E+=L&jt[T],$=(S+E)*3,T=M[$];else return C.msg="invalid distance code",D=C.avail_in-V,D=F>>3<D?F>>3:D,V+=D,X-=D,F-=D<<3,k.bitb=L,k.bitk=F,C.avail_in=V,C.total_in+=X-C.next_in_index,C.next_in_index=X,k.write=O,Qe;while(!0);break}if((T&64)===0){if(E+=M[$+2],E+=L&jt[T],$=(S+E)*3,(T=M[$])===0){L>>=M[$+1],F-=M[$+1],k.win[O++]=M[$+2],j--;break}}else return(T&32)!==0?(D=C.avail_in-V,D=F>>3<D?F>>3:D,V+=D,X-=D,F-=D<<3,k.bitb=L,k.bitk=F,C.avail_in=V,C.total_in+=X-C.next_in_index,C.next_in_index=X,k.write=O,Kn):(C.msg="invalid literal/length code",D=C.avail_in-V,D=F>>3<D?F>>3:D,V+=D,X-=D,F-=D<<3,k.bitb=L,k.bitk=F,C.avail_in=V,C.total_in+=X-C.next_in_index,C.next_in_index=X,k.write=O,Qe)}while(!0)}while(j>=258&&V>=10);return D=C.avail_in-V,D=F>>3<D?F>>3:D,V+=D,X-=D,F-=D<<3,k.bitb=L,k.bitk=F,C.avail_in=V,C.total_in+=X-C.next_in_index,C.next_in_index=X,k.write=O,Pe}e.init=function(g,m,v,x,b,y){t=Ma,d=g,c=m,u=v,f=x,h=b,w=y,r=null},e.proc=function(g,m,v){let x,b,y,k=0,C=0,E=0,M,S,T,L;for(E=m.next_in_index,M=m.avail_in,k=g.bitb,C=g.bitk,S=g.write,T=S<g.read?g.read-S-1:g.end-S;;)switch(t){case Ma:if(T>=258&&M>=10&&(g.bitb=k,g.bitk=C,m.avail_in=M,m.total_in+=E-m.next_in_index,m.next_in_index=E,g.write=S,v=_(d,c,u,f,h,w,g,m),E=m.next_in_index,M=m.avail_in,k=g.bitb,C=g.bitk,S=g.write,T=S<g.read?g.read-S-1:g.end-S,v!=Pe)){t=v==Kn?Ml:Ta;break}o=d,r=u,i=f,t=N0;case N0:for(x=o;C<x;){if(M!==0)v=Pe;else return g.bitb=k,g.bitk=C,m.avail_in=M,m.total_in+=E-m.next_in_index,m.next_in_index=E,g.write=S,g.inflate_flush(m,v);M--,k|=(m.read_byte(E++)&255)<<C,C+=8}if(b=(i+(k&jt[x]))*3,k>>>=r[b+1],C-=r[b+1],y=r[b],y===0){a=r[b+2],t=$0;break}if((y&16)!==0){s=y&15,n=r[b+2],t=R0;break}if((y&64)===0){o=y,i=b/3+r[b+2];break}if((y&32)!==0){t=Ml;break}return t=Ta,m.msg="invalid literal/length code",v=Qe,g.bitb=k,g.bitk=C,m.avail_in=M,m.total_in+=E-m.next_in_index,m.next_in_index=E,g.write=S,g.inflate_flush(m,v);case R0:for(x=s;C<x;){if(M!==0)v=Pe;else return g.bitb=k,g.bitk=C,m.avail_in=M,m.total_in+=E-m.next_in_index,m.next_in_index=E,g.write=S,g.inflate_flush(m,v);M--,k|=(m.read_byte(E++)&255)<<C,C+=8}n+=k&jt[x],k>>=x,C-=x,o=c,r=h,i=w,t=D0;case D0:for(x=o;C<x;){if(M!==0)v=Pe;else return g.bitb=k,g.bitk=C,m.avail_in=M,m.total_in+=E-m.next_in_index,m.next_in_index=E,g.write=S,g.inflate_flush(m,v);M--,k|=(m.read_byte(E++)&255)<<C,C+=8}if(b=(i+(k&jt[x]))*3,k>>=r[b+1],C-=r[b+1],y=r[b],(y&16)!==0){s=y&15,l=r[b+2],t=F0;break}if((y&64)===0){o=y,i=b/3+r[b+2];break}return t=Ta,m.msg="invalid distance code",v=Qe,g.bitb=k,g.bitk=C,m.avail_in=M,m.total_in+=E-m.next_in_index,m.next_in_index=E,g.write=S,g.inflate_flush(m,v);case F0:for(x=s;C<x;){if(M!==0)v=Pe;else return g.bitb=k,g.bitk=C,m.avail_in=M,m.total_in+=E-m.next_in_index,m.next_in_index=E,g.write=S,g.inflate_flush(m,v);M--,k|=(m.read_byte(E++)&255)<<C,C+=8}l+=k&jt[x],k>>=x,C-=x,t=P0;case P0:for(L=S-l;L<0;)L+=g.end;for(;n!==0;){if(T===0&&(S==g.end&&g.read!==0&&(S=0,T=S<g.read?g.read-S-1:g.end-S),T===0&&(g.write=S,v=g.inflate_flush(m,v),S=g.write,T=S<g.read?g.read-S-1:g.end-S,S==g.end&&g.read!==0&&(S=0,T=S<g.read?g.read-S-1:g.end-S),T===0)))return g.bitb=k,g.bitk=C,m.avail_in=M,m.total_in+=E-m.next_in_index,m.next_in_index=E,g.write=S,g.inflate_flush(m,v);g.win[S++]=g.win[L++],T--,L==g.end&&(L=0),n--}t=Ma;break;case $0:if(T===0&&(S==g.end&&g.read!==0&&(S=0,T=S<g.read?g.read-S-1:g.end-S),T===0&&(g.write=S,v=g.inflate_flush(m,v),S=g.write,T=S<g.read?g.read-S-1:g.end-S,S==g.end&&g.read!==0&&(S=0,T=S<g.read?g.read-S-1:g.end-S),T===0)))return g.bitb=k,g.bitk=C,m.avail_in=M,m.total_in+=E-m.next_in_index,m.next_in_index=E,g.write=S,g.inflate_flush(m,v);v=Pe,g.win[S++]=a,T--,t=Ma;break;case Ml:if(C>7&&(C-=8,M++,E--),g.write=S,v=g.inflate_flush(m,v),S=g.write,T=S<g.read?g.read-S-1:g.end-S,g.read!=g.write)return g.bitb=k,g.bitk=C,m.avail_in=M,m.total_in+=E-m.next_in_index,m.next_in_index=E,g.write=S,g.inflate_flush(m,v);t=B0;case B0:return v=Kn,g.bitb=k,g.bitk=C,m.avail_in=M,m.total_in+=E-m.next_in_index,m.next_in_index=E,g.write=S,g.inflate_flush(m,v);case Ta:return v=Qe,g.bitb=k,g.bitk=C,m.avail_in=M,m.total_in+=E-m.next_in_index,m.next_in_index=E,g.write=S,g.inflate_flush(m,v);default:return v=Rt,g.bitb=k,g.bitk=C,m.avail_in=M,m.total_in+=E-m.next_in_index,m.next_in_index=E,g.write=S,g.inflate_flush(m,v)}},e.free=function(){}}const z0=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],ci=0,Tl=1,j0=2,V0=3,U0=4,H0=5,La=6,Oa=7,Z0=8,Tr=9;function E5(e,t){const n=this;let r=ci,i=0,o=0,a=0,s;const l=[0],d=[0],c=new C5;let u=0,f=new Int32Array(kh*3);const h=0,w=new Ec;n.bitk=0,n.bitb=0,n.win=new Uint8Array(t),n.end=t,n.read=0,n.write=0,n.reset=function(_,g){g&&(g[0]=h),r==La&&c.free(_),r=ci,n.bitk=0,n.bitb=0,n.read=n.write=0},n.reset(e,null),n.inflate_flush=function(_,g){let m,v,x;return v=_.next_out_index,x=n.read,m=(x<=n.write?n.write:n.end)-x,m>_.avail_out&&(m=_.avail_out),m!==0&&g==Jn&&(g=Pe),_.avail_out-=m,_.total_out+=m,_.next_out.set(n.win.subarray(x,x+m),v),v+=m,x+=m,x==n.end&&(x=0,n.write==n.end&&(n.write=0),m=n.write-x,m>_.avail_out&&(m=_.avail_out),m!==0&&g==Jn&&(g=Pe),_.avail_out-=m,_.total_out+=m,_.next_out.set(n.win.subarray(x,x+m),v),v+=m,x+=m),_.next_out_index=v,n.read=x,g},n.proc=function(_,g){let m,v,x,b,y,k,C,E;for(b=_.next_in_index,y=_.avail_in,v=n.bitb,x=n.bitk,k=n.write,C=k<n.read?n.read-k-1:n.end-k;;){let M,S,T,L,F,X,V,O;switch(r){case ci:for(;x<3;){if(y!==0)g=Pe;else return n.bitb=v,n.bitk=x,_.avail_in=y,_.total_in+=b-_.next_in_index,_.next_in_index=b,n.write=k,n.inflate_flush(_,g);y--,v|=(_.read_byte(b++)&255)<<x,x+=8}switch(m=v&7,u=m&1,m>>>1){case 0:v>>>=3,x-=3,m=x&7,v>>>=m,x-=m,r=Tl;break;case 1:M=[],S=[],T=[[]],L=[[]],Ec.inflate_trees_fixed(M,S,T,L),c.init(M[0],S[0],T[0],0,L[0],0),v>>>=3,x-=3,r=La;break;case 2:v>>>=3,x-=3,r=V0;break;case 3:return v>>>=3,x-=3,r=Tr,_.msg="invalid block type",g=Qe,n.bitb=v,n.bitk=x,_.avail_in=y,_.total_in+=b-_.next_in_index,_.next_in_index=b,n.write=k,n.inflate_flush(_,g)}break;case Tl:for(;x<32;){if(y!==0)g=Pe;else return n.bitb=v,n.bitk=x,_.avail_in=y,_.total_in+=b-_.next_in_index,_.next_in_index=b,n.write=k,n.inflate_flush(_,g);y--,v|=(_.read_byte(b++)&255)<<x,x+=8}if((~v>>>16&65535)!=(v&65535))return r=Tr,_.msg="invalid stored block lengths",g=Qe,n.bitb=v,n.bitk=x,_.avail_in=y,_.total_in+=b-_.next_in_index,_.next_in_index=b,n.write=k,n.inflate_flush(_,g);i=v&65535,v=x=0,r=i!==0?j0:u!==0?Oa:ci;break;case j0:if(y===0||C===0&&(k==n.end&&n.read!==0&&(k=0,C=k<n.read?n.read-k-1:n.end-k),C===0&&(n.write=k,g=n.inflate_flush(_,g),k=n.write,C=k<n.read?n.read-k-1:n.end-k,k==n.end&&n.read!==0&&(k=0,C=k<n.read?n.read-k-1:n.end-k),C===0)))return n.bitb=v,n.bitk=x,_.avail_in=y,_.total_in+=b-_.next_in_index,_.next_in_index=b,n.write=k,n.inflate_flush(_,g);if(g=Pe,m=i,m>y&&(m=y),m>C&&(m=C),n.win.set(_.read_buf(b,m),k),b+=m,y-=m,k+=m,C-=m,(i-=m)!==0)break;r=u!==0?Oa:ci;break;case V0:for(;x<14;){if(y!==0)g=Pe;else return n.bitb=v,n.bitk=x,_.avail_in=y,_.total_in+=b-_.next_in_index,_.next_in_index=b,n.write=k,n.inflate_flush(_,g);y--,v|=(_.read_byte(b++)&255)<<x,x+=8}if(o=m=v&16383,(m&31)>29||(m>>5&31)>29)return r=Tr,_.msg="too many length or distance symbols",g=Qe,n.bitb=v,n.bitk=x,_.avail_in=y,_.total_in+=b-_.next_in_index,_.next_in_index=b,n.write=k,n.inflate_flush(_,g);if(m=258+(m&31)+(m>>5&31),!s||s.length<m)s=[];else for(E=0;E<m;E++)s[E]=0;v>>>=14,x-=14,a=0,r=U0;case U0:for(;a<4+(o>>>10);){for(;x<3;){if(y!==0)g=Pe;else return n.bitb=v,n.bitk=x,_.avail_in=y,_.total_in+=b-_.next_in_index,_.next_in_index=b,n.write=k,n.inflate_flush(_,g);y--,v|=(_.read_byte(b++)&255)<<x,x+=8}s[z0[a++]]=v&7,v>>>=3,x-=3}for(;a<19;)s[z0[a++]]=0;if(l[0]=7,m=w.inflate_trees_bits(s,l,d,f,_),m!=Pe)return g=m,g==Qe&&(s=null,r=Tr),n.bitb=v,n.bitk=x,_.avail_in=y,_.total_in+=b-_.next_in_index,_.next_in_index=b,n.write=k,n.inflate_flush(_,g);a=0,r=H0;case H0:for(;m=o,!(a>=258+(m&31)+(m>>5&31));){let j,H;for(m=l[0];x<m;){if(y!==0)g=Pe;else return n.bitb=v,n.bitk=x,_.avail_in=y,_.total_in+=b-_.next_in_index,_.next_in_index=b,n.write=k,n.inflate_flush(_,g);y--,v|=(_.read_byte(b++)&255)<<x,x+=8}if(m=f[(d[0]+(v&jt[m]))*3+1],H=f[(d[0]+(v&jt[m]))*3+2],H<16)v>>>=m,x-=m,s[a++]=H;else{for(E=H==18?7:H-14,j=H==18?11:3;x<m+E;){if(y!==0)g=Pe;else return n.bitb=v,n.bitk=x,_.avail_in=y,_.total_in+=b-_.next_in_index,_.next_in_index=b,n.write=k,n.inflate_flush(_,g);y--,v|=(_.read_byte(b++)&255)<<x,x+=8}if(v>>>=m,x-=m,j+=v&jt[E],v>>>=E,x-=E,E=a,m=o,E+j>258+(m&31)+(m>>5&31)||H==16&&E<1)return s=null,r=Tr,_.msg="invalid bit length repeat",g=Qe,n.bitb=v,n.bitk=x,_.avail_in=y,_.total_in+=b-_.next_in_index,_.next_in_index=b,n.write=k,n.inflate_flush(_,g);H=H==16?s[E-1]:0;do s[E++]=H;while(--j!==0);a=E}}if(d[0]=-1,F=[],X=[],V=[],O=[],F[0]=9,X[0]=6,m=o,m=w.inflate_trees_dynamic(257+(m&31),1+(m>>5&31),s,F,X,V,O,f,_),m!=Pe)return m==Qe&&(s=null,r=Tr),g=m,n.bitb=v,n.bitk=x,_.avail_in=y,_.total_in+=b-_.next_in_index,_.next_in_index=b,n.write=k,n.inflate_flush(_,g);c.init(F[0],X[0],f,V[0],f,O[0]),r=La;case La:if(n.bitb=v,n.bitk=x,_.avail_in=y,_.total_in+=b-_.next_in_index,_.next_in_index=b,n.write=k,(g=c.proc(n,_,g))!=Kn)return n.inflate_flush(_,g);if(g=Pe,c.free(_),b=_.next_in_index,y=_.avail_in,v=n.bitb,x=n.bitk,k=n.write,C=k<n.read?n.read-k-1:n.end-k,u===0){r=ci;break}r=Oa;case Oa:if(n.write=k,g=n.inflate_flush(_,g),k=n.write,C=k<n.read?n.read-k-1:n.end-k,n.read!=n.write)return n.bitb=v,n.bitk=x,_.avail_in=y,_.total_in+=b-_.next_in_index,_.next_in_index=b,n.write=k,n.inflate_flush(_,g);r=Z0;case Z0:return g=Kn,n.bitb=v,n.bitk=x,_.avail_in=y,_.total_in+=b-_.next_in_index,_.next_in_index=b,n.write=k,n.inflate_flush(_,g);case Tr:return g=Qe,n.bitb=v,n.bitk=x,_.avail_in=y,_.total_in+=b-_.next_in_index,_.next_in_index=b,n.write=k,n.inflate_flush(_,g);default:return g=Rt,n.bitb=v,n.bitk=x,_.avail_in=y,_.total_in+=b-_.next_in_index,_.next_in_index=b,n.write=k,n.inflate_flush(_,g)}}},n.free=function(_){n.reset(_,null),n.win=null,f=null},n.set_dictionary=function(_,g,m){n.win.set(_.subarray(g,g+m),0),n.read=n.write=m},n.sync_point=function(){return r==Tl?1:0}}const A5=32,S5=8,I5=0,G0=1,Y0=2,W0=3,q0=4,X0=5,Ll=6,fo=7,K0=12,sr=13,M5=[0,0,255,255];function T5(){const e=this;e.mode=0,e.method=0,e.was=[0],e.need=0,e.marker=0,e.wbits=0;function t(n){return!n||!n.istate?Rt:(n.total_in=n.total_out=0,n.msg=null,n.istate.mode=fo,n.istate.blocks.reset(n,null),Pe)}e.inflateEnd=function(n){return e.blocks&&e.blocks.free(n),e.blocks=null,Pe},e.inflateInit=function(n,r){return n.msg=null,e.blocks=null,r<8||r>15?(e.inflateEnd(n),Rt):(e.wbits=r,n.istate.blocks=new E5(n,1<<r),t(n),Pe)},e.inflate=function(n,r){let i,o;if(!n||!n.istate||!n.next_in)return Rt;const a=n.istate;for(r=r==g5?Jn:Pe,i=Jn;;)switch(a.mode){case I5:if(n.avail_in===0)return i;if(i=r,n.avail_in--,n.total_in++,((a.method=n.read_byte(n.next_in_index++))&15)!=S5){a.mode=sr,n.msg="unknown compression method",a.marker=5;break}if((a.method>>4)+8>a.wbits){a.mode=sr,n.msg="invalid win size",a.marker=5;break}a.mode=G0;case G0:if(n.avail_in===0)return i;if(i=r,n.avail_in--,n.total_in++,o=n.read_byte(n.next_in_index++)&255,((a.method<<8)+o)%31!==0){a.mode=sr,n.msg="incorrect header check",a.marker=5;break}if((o&A5)===0){a.mode=fo;break}a.mode=Y0;case Y0:if(n.avail_in===0)return i;i=r,n.avail_in--,n.total_in++,a.need=(n.read_byte(n.next_in_index++)&255)<<24&4278190080,a.mode=W0;case W0:if(n.avail_in===0)return i;i=r,n.avail_in--,n.total_in++,a.need+=(n.read_byte(n.next_in_index++)&255)<<16&16711680,a.mode=q0;case q0:if(n.avail_in===0)return i;i=r,n.avail_in--,n.total_in++,a.need+=(n.read_byte(n.next_in_index++)&255)<<8&65280,a.mode=X0;case X0:return n.avail_in===0?i:(i=r,n.avail_in--,n.total_in++,a.need+=n.read_byte(n.next_in_index++)&255,a.mode=Ll,h5);case Ll:return a.mode=sr,n.msg="need dictionary",a.marker=0,Rt;case fo:if(i=a.blocks.proc(n,i),i==Qe){a.mode=sr,a.marker=0;break}if(i==Pe&&(i=r),i!=Kn)return i;i=r,a.blocks.reset(n,a.was),a.mode=K0;case K0:return Kn;case sr:return Qe;default:return Rt}},e.inflateSetDictionary=function(n,r,i){let o=0,a=i;if(!n||!n.istate||n.istate.mode!=Ll)return Rt;const s=n.istate;return a>=1<<s.wbits&&(a=(1<<s.wbits)-1,o=i-a),s.blocks.set_dictionary(r,o,a),s.mode=fo,Pe},e.inflateSync=function(n){let r,i,o,a,s;if(!n||!n.istate)return Rt;const l=n.istate;if(l.mode!=sr&&(l.mode=sr,l.marker=0),(r=n.avail_in)===0)return Jn;for(i=n.next_in_index,o=l.marker;r!==0&&o<4;)n.read_byte(i)==M5[o]?o++:n.read_byte(i)!==0?o=0:o=4-o,i++,r--;return n.total_in+=i-n.next_in_index,n.next_in_index=i,n.avail_in=r,l.marker=o,o!=4?Qe:(a=n.total_in,s=n.total_out,t(n),n.total_in=a,n.total_out=s,l.mode=fo,Pe)},e.inflateSyncPoint=function(n){return!n||!n.istate||!n.istate.blocks?Rt:n.istate.blocks.sync_point()}}function Ch(){}Ch.prototype={inflateInit:function(e){const t=this;return t.istate=new T5,e||(e=f5),t.istate.inflateInit(t,e)},inflate:function(e){const t=this;return t.istate?t.istate.inflate(t,e):Rt},inflateEnd:function(){const e=this;if(!e.istate)return Rt;const t=e.istate.inflateEnd(e);return e.istate=null,t},inflateSync:function(){const e=this;return e.istate?e.istate.inflateSync(e):Rt},inflateSetDictionary:function(e,t){const n=this;return n.istate?n.istate.inflateSetDictionary(n,e,t):Rt},read_byte:function(e){return this.next_in[e]},read_buf:function(e,t){return this.next_in.subarray(e,e+t)}};function L5(e){const t=this,n=new Ch,r=e&&e.chunkSize?Math.floor(e.chunkSize*2):128*1024,i=p5,o=new Uint8Array(r);let a=!1;n.inflateInit(),n.next_out=o,t.append=function(s,l){const d=[];let c,u,f=0,h=0,w=0;if(s.length!==0){n.next_in_index=0,n.next_in=s,n.avail_in=s.length;do{if(n.next_out_index=0,n.avail_out=r,n.avail_in===0&&!a&&(n.next_in_index=0,a=!0),c=n.inflate(i),a&&c===Jn){if(n.avail_in!==0)throw new Error("inflating: bad input")}else if(c!==Pe&&c!==Kn)throw new Error("inflating: "+n.msg);if((a||c===Kn)&&n.avail_in===s.length)throw new Error("inflating: bad input");n.next_out_index&&(n.next_out_index===r?d.push(new Uint8Array(o)):d.push(o.slice(0,n.next_out_index))),w+=n.next_out_index,l&&n.next_in_index>0&&n.next_in_index!=f&&(l(n.next_in_index),f=n.next_in_index)}while(n.avail_in>0||n.avail_out===0);return d.length>1?(u=new Uint8Array(w),d.forEach(function(_){u.set(_,h),h+=_.length})):u=d[0]||new Uint8Array(0),u}},t.flush=function(){n.inflateEnd()}}const O5={chunkSize:512*1024,maxWorkers:typeof navigator!="undefined"&&navigator.hardwareConcurrency||2,terminateWorkerTimeout:5e3,useWebWorkers:!0,workerScripts:void 0},Nt=Object.assign({},O5);function Eh(){return Nt}function md(e){if(e.baseURL!==void 0&&(Nt.baseURL=e.baseURL),e.chunkSize!==void 0&&(Nt.chunkSize=e.chunkSize),e.maxWorkers!==void 0&&(Nt.maxWorkers=e.maxWorkers),e.terminateWorkerTimeout!==void 0&&(Nt.terminateWorkerTimeout=e.terminateWorkerTimeout),e.useWebWorkers!==void 0&&(Nt.useWebWorkers=e.useWebWorkers),e.Deflate!==void 0&&(Nt.Deflate=e.Deflate),e.Inflate!==void 0&&(Nt.Inflate=e.Inflate),e.workerScripts!==void 0){if(e.workerScripts.deflate){if(!Array.isArray(e.workerScripts.deflate))throw new Error("workerScripts.deflate must be an array");Nt.workerScripts||(Nt.workerScripts={}),Nt.workerScripts.deflate=e.workerScripts.deflate}if(e.workerScripts.inflate){if(!Array.isArray(e.workerScripts.inflate))throw new Error("workerScripts.inflate must be an array");Nt.workerScripts||(Nt.workerScripts={}),Nt.workerScripts.inflate=e.workerScripts.inflate}}}const ho={application:{"andrew-inset":"ez",annodex:"anx","atom+xml":"atom","atomcat+xml":"atomcat","atomserv+xml":"atomsrv",bbolin:"lin",cap:["cap","pcap"],"cu-seeme":"cu","davmount+xml":"davmount",dsptype:"tsp",ecmascript:["es","ecma"],futuresplash:"spl",hta:"hta","java-archive":"jar","java-serialized-object":"ser","java-vm":"class",javascript:"js",m3g:"m3g","mac-binhex40":"hqx",mathematica:["nb","ma","mb"],msaccess:"mdb",msword:["doc","dot"],mxf:"mxf",oda:"oda",ogg:"ogx",pdf:"pdf","pgp-keys":"key","pgp-signature":["asc","sig"],"pics-rules":"prf",postscript:["ps","ai","eps","epsi","epsf","eps2","eps3"],rar:"rar","rdf+xml":"rdf","rss+xml":"rss",rtf:"rtf",smil:["smi","smil"],"xhtml+xml":["xhtml","xht"],xml:["xml","xsl","xsd"],"xspf+xml":"xspf",zip:"zip","vnd.android.package-archive":"apk","vnd.cinderella":"cdy","vnd.google-earth.kml+xml":"kml","vnd.google-earth.kmz":"kmz","vnd.mozilla.xul+xml":"xul","vnd.ms-excel":["xls","xlb","xlt","xlm","xla","xlc","xlw"],"vnd.ms-pki.seccat":"cat","vnd.ms-pki.stl":"stl","vnd.ms-powerpoint":["ppt","pps","pot"],"vnd.oasis.opendocument.chart":"odc","vnd.oasis.opendocument.database":"odb","vnd.oasis.opendocument.formula":"odf","vnd.oasis.opendocument.graphics":"odg","vnd.oasis.opendocument.graphics-template":"otg","vnd.oasis.opendocument.image":"odi","vnd.oasis.opendocument.presentation":"odp","vnd.oasis.opendocument.presentation-template":"otp","vnd.oasis.opendocument.spreadsheet":"ods","vnd.oasis.opendocument.spreadsheet-template":"ots","vnd.oasis.opendocument.text":"odt","vnd.oasis.opendocument.text-master":"odm","vnd.oasis.opendocument.text-template":"ott","vnd.oasis.opendocument.text-web":"oth","vnd.openxmlformats-officedocument.spreadsheetml.sheet":"xlsx","vnd.openxmlformats-officedocument.spreadsheetml.template":"xltx","vnd.openxmlformats-officedocument.presentationml.presentation":"pptx","vnd.openxmlformats-officedocument.presentationml.slideshow":"ppsx","vnd.openxmlformats-officedocument.presentationml.template":"potx","vnd.openxmlformats-officedocument.wordprocessingml.document":"docx","vnd.openxmlformats-officedocument.wordprocessingml.template":"dotx","vnd.smaf":"mmf","vnd.stardivision.calc":"sdc","vnd.stardivision.chart":"sds","vnd.stardivision.draw":"sda","vnd.stardivision.impress":"sdd","vnd.stardivision.math":["sdf","smf"],"vnd.stardivision.writer":["sdw","vor"],"vnd.stardivision.writer-global":"sgl","vnd.sun.xml.calc":"sxc","vnd.sun.xml.calc.template":"stc","vnd.sun.xml.draw":"sxd","vnd.sun.xml.draw.template":"std","vnd.sun.xml.impress":"sxi","vnd.sun.xml.impress.template":"sti","vnd.sun.xml.math":"sxm","vnd.sun.xml.writer":"sxw","vnd.sun.xml.writer.global":"sxg","vnd.sun.xml.writer.template":"stw","vnd.symbian.install":["sis","sisx"],"vnd.visio":["vsd","vst","vss","vsw"],"vnd.wap.wbxml":"wbxml","vnd.wap.wmlc":"wmlc","vnd.wap.wmlscriptc":"wmlsc","vnd.wordperfect":"wpd","vnd.wordperfect5.1":"wp5","x-123":"wk","x-7z-compressed":"7z","x-abiword":"abw","x-apple-diskimage":"dmg","x-bcpio":"bcpio","x-bittorrent":"torrent","x-cbr":["cbr","cba","cbt","cb7"],"x-cbz":"cbz","x-cdf":["cdf","cda"],"x-cdlink":"vcd","x-chess-pgn":"pgn","x-cpio":"cpio","x-csh":"csh","x-debian-package":["deb","udeb"],"x-director":["dcr","dir","dxr","cst","cct","cxt","w3d","fgd","swa"],"x-dms":"dms","x-doom":"wad","x-dvi":"dvi","x-httpd-eruby":"rhtml","x-font":"pcf.Z","x-freemind":"mm","x-gnumeric":"gnumeric","x-go-sgf":"sgf","x-graphing-calculator":"gcf","x-gtar":["gtar","taz"],"x-hdf":"hdf","x-httpd-php":["phtml","pht","php"],"x-httpd-php-source":"phps","x-httpd-php3":"php3","x-httpd-php3-preprocessed":"php3p","x-httpd-php4":"php4","x-httpd-php5":"php5","x-ica":"ica","x-info":"info","x-internet-signup":["ins","isp"],"x-iphone":"iii","x-iso9660-image":"iso","x-java-jnlp-file":"jnlp","x-jmol":"jmz","x-killustrator":"kil","x-koan":["skp","skd","skt","skm"],"x-kpresenter":["kpr","kpt"],"x-kword":["kwd","kwt"],"x-latex":"latex","x-lha":"lha","x-lyx":"lyx","x-lzh":"lzh","x-lzx":"lzx","x-maker":["frm","maker","frame","fm","fb","book","fbdoc"],"x-ms-wmd":"wmd","x-ms-wmz":"wmz","x-msdos-program":["com","exe","bat","dll"],"x-msi":"msi","x-netcdf":["nc","cdf"],"x-ns-proxy-autoconfig":["pac","dat"],"x-nwc":"nwc","x-object":"o","x-oz-application":"oza","x-pkcs7-certreqresp":"p7r","x-python-code":["pyc","pyo"],"x-qgis":["qgs","shp","shx"],"x-quicktimeplayer":"qtl","x-redhat-package-manager":"rpm","x-ruby":"rb","x-sh":"sh","x-shar":"shar","x-shockwave-flash":["swf","swfl"],"x-silverlight":"scr","x-stuffit":"sit","x-sv4cpio":"sv4cpio","x-sv4crc":"sv4crc","x-tar":"tar","x-tcl":"tcl","x-tex-gf":"gf","x-tex-pk":"pk","x-texinfo":["texinfo","texi"],"x-trash":["~","%","bak","old","sik"],"x-troff":["t","tr","roff"],"x-troff-man":"man","x-troff-me":"me","x-troff-ms":"ms","x-ustar":"ustar","x-wais-source":"src","x-wingz":"wz","x-x509-ca-cert":["crt","der","cer"],"x-xcf":"xcf","x-xfig":"fig","x-xpinstall":"xpi",applixware:"aw","atomsvc+xml":"atomsvc","ccxml+xml":"ccxml","cdmi-capability":"cdmia","cdmi-container":"cdmic","cdmi-domain":"cdmid","cdmi-object":"cdmio","cdmi-queue":"cdmiq","docbook+xml":"dbk","dssc+der":"dssc","dssc+xml":"xdssc","emma+xml":"emma","epub+zip":"epub",exi:"exi","font-tdpfr":"pfr","gml+xml":"gml","gpx+xml":"gpx",gxf:"gxf",hyperstudio:"stk","inkml+xml":["ink","inkml"],ipfix:"ipfix",json:"json","jsonml+json":"jsonml","lost+xml":"lostxml","mads+xml":"mads",marc:"mrc","marcxml+xml":"mrcx","mathml+xml":"mathml",mbox:"mbox","mediaservercontrol+xml":"mscml","metalink+xml":"metalink","metalink4+xml":"meta4","mets+xml":"mets","mods+xml":"mods",mp21:["m21","mp21"],mp4:"mp4s","oebps-package+xml":"opf","omdoc+xml":"omdoc",onenote:["onetoc","onetoc2","onetmp","onepkg"],oxps:"oxps","patch-ops-error+xml":"xer","pgp-encrypted":"pgp",pkcs10:"p10","pkcs7-mime":["p7m","p7c"],"pkcs7-signature":"p7s",pkcs8:"p8","pkix-attr-cert":"ac","pkix-crl":"crl","pkix-pkipath":"pkipath",pkixcmp:"pki","pls+xml":"pls","prs.cww":"cww","pskc+xml":"pskcxml","reginfo+xml":"rif","relax-ng-compact-syntax":"rnc","resource-lists+xml":"rl","resource-lists-diff+xml":"rld","rls-services+xml":"rs","rpki-ghostbusters":"gbr","rpki-manifest":"mft","rpki-roa":"roa","rsd+xml":"rsd","sbml+xml":"sbml","scvp-cv-request":"scq","scvp-cv-response":"scs","scvp-vp-request":"spq","scvp-vp-response":"spp",sdp:"sdp","set-payment-initiation":"setpay","set-registration-initiation":"setreg","shf+xml":"shf","sparql-query":"rq","sparql-results+xml":"srx",srgs:"gram","srgs+xml":"grxml","sru+xml":"sru","ssdl+xml":"ssdl","ssml+xml":"ssml","tei+xml":["tei","teicorpus"],"thraud+xml":"tfi","timestamped-data":"tsd","vnd.3gpp.pic-bw-large":"plb","vnd.3gpp.pic-bw-small":"psb","vnd.3gpp.pic-bw-var":"pvb","vnd.3gpp2.tcap":"tcap","vnd.3m.post-it-notes":"pwn","vnd.accpac.simply.aso":"aso","vnd.accpac.simply.imp":"imp","vnd.acucobol":"acu","vnd.acucorp":["atc","acutc"],"vnd.adobe.air-application-installer-package+zip":"air","vnd.adobe.formscentral.fcdt":"fcdt","vnd.adobe.fxp":["fxp","fxpl"],"vnd.adobe.xdp+xml":"xdp","vnd.adobe.xfdf":"xfdf","vnd.ahead.space":"ahead","vnd.airzip.filesecure.azf":"azf","vnd.airzip.filesecure.azs":"azs","vnd.amazon.ebook":"azw","vnd.americandynamics.acc":"acc","vnd.amiga.ami":"ami","vnd.anser-web-certificate-issue-initiation":"cii","vnd.anser-web-funds-transfer-initiation":"fti","vnd.antix.game-component":"atx","vnd.apple.installer+xml":"mpkg","vnd.apple.mpegurl":"m3u8","vnd.aristanetworks.swi":"swi","vnd.astraea-software.iota":"iota","vnd.audiograph":"aep","vnd.blueice.multipass":"mpm","vnd.bmi":"bmi","vnd.businessobjects":"rep","vnd.chemdraw+xml":"cdxml","vnd.chipnuts.karaoke-mmd":"mmd","vnd.claymore":"cla","vnd.cloanto.rp9":"rp9","vnd.clonk.c4group":["c4g","c4d","c4f","c4p","c4u"],"vnd.cluetrust.cartomobile-config":"c11amc","vnd.cluetrust.cartomobile-config-pkg":"c11amz","vnd.commonspace":"csp","vnd.contact.cmsg":"cdbcmsg","vnd.cosmocaller":"cmc","vnd.crick.clicker":"clkx","vnd.crick.clicker.keyboard":"clkk","vnd.crick.clicker.palette":"clkp","vnd.crick.clicker.template":"clkt","vnd.crick.clicker.wordbank":"clkw","vnd.criticaltools.wbs+xml":"wbs","vnd.ctc-posml":"pml","vnd.cups-ppd":"ppd","vnd.curl.car":"car","vnd.curl.pcurl":"pcurl","vnd.dart":"dart","vnd.data-vision.rdz":"rdz","vnd.dece.data":["uvf","uvvf","uvd","uvvd"],"vnd.dece.ttml+xml":["uvt","uvvt"],"vnd.dece.unspecified":["uvx","uvvx"],"vnd.dece.zip":["uvz","uvvz"],"vnd.denovo.fcselayout-link":"fe_launch","vnd.dna":"dna","vnd.dolby.mlp":"mlp","vnd.dpgraph":"dpg","vnd.dreamfactory":"dfac","vnd.ds-keypoint":"kpxx","vnd.dvb.ait":"ait","vnd.dvb.service":"svc","vnd.dynageo":"geo","vnd.ecowin.chart":"mag","vnd.enliven":"nml","vnd.epson.esf":"esf","vnd.epson.msf":"msf","vnd.epson.quickanime":"qam","vnd.epson.salt":"slt","vnd.epson.ssf":"ssf","vnd.eszigno3+xml":["es3","et3"],"vnd.ezpix-album":"ez2","vnd.ezpix-package":"ez3","vnd.fdf":"fdf","vnd.fdsn.mseed":"mseed","vnd.fdsn.seed":["seed","dataless"],"vnd.flographit":"gph","vnd.fluxtime.clip":"ftc","vnd.framemaker":["fm","frame","maker","book"],"vnd.frogans.fnc":"fnc","vnd.frogans.ltf":"ltf","vnd.fsc.weblaunch":"fsc","vnd.fujitsu.oasys":"oas","vnd.fujitsu.oasys2":"oa2","vnd.fujitsu.oasys3":"oa3","vnd.fujitsu.oasysgp":"fg5","vnd.fujitsu.oasysprs":"bh2","vnd.fujixerox.ddd":"ddd","vnd.fujixerox.docuworks":"xdw","vnd.fujixerox.docuworks.binder":"xbd","vnd.fuzzysheet":"fzs","vnd.genomatix.tuxedo":"txd","vnd.geogebra.file":"ggb","vnd.geogebra.tool":"ggt","vnd.geometry-explorer":["gex","gre"],"vnd.geonext":"gxt","vnd.geoplan":"g2w","vnd.geospace":"g3w","vnd.gmx":"gmx","vnd.grafeq":["gqf","gqs"],"vnd.groove-account":"gac","vnd.groove-help":"ghf","vnd.groove-identity-message":"gim","vnd.groove-injector":"grv","vnd.groove-tool-message":"gtm","vnd.groove-tool-template":"tpl","vnd.groove-vcard":"vcg","vnd.hal+xml":"hal","vnd.handheld-entertainment+xml":"zmm","vnd.hbci":"hbci","vnd.hhe.lesson-player":"les","vnd.hp-hpgl":"hpgl","vnd.hp-hpid":"hpid","vnd.hp-hps":"hps","vnd.hp-jlyt":"jlt","vnd.hp-pcl":"pcl","vnd.hp-pclxl":"pclxl","vnd.hydrostatix.sof-data":"sfd-hdstx","vnd.ibm.minipay":"mpy","vnd.ibm.modcap":["afp","listafp","list3820"],"vnd.ibm.rights-management":"irm","vnd.ibm.secure-container":"sc","vnd.iccprofile":["icc","icm"],"vnd.igloader":"igl","vnd.immervision-ivp":"ivp","vnd.immervision-ivu":"ivu","vnd.insors.igm":"igm","vnd.intercon.formnet":["xpw","xpx"],"vnd.intergeo":"i2g","vnd.intu.qbo":"qbo","vnd.intu.qfx":"qfx","vnd.ipunplugged.rcprofile":"rcprofile","vnd.irepository.package+xml":"irp","vnd.is-xpr":"xpr","vnd.isac.fcs":"fcs","vnd.jam":"jam","vnd.jcp.javame.midlet-rms":"rms","vnd.jisp":"jisp","vnd.joost.joda-archive":"joda","vnd.kahootz":["ktz","ktr"],"vnd.kde.karbon":"karbon","vnd.kde.kchart":"chrt","vnd.kde.kformula":"kfo","vnd.kde.kivio":"flw","vnd.kde.kontour":"kon","vnd.kde.kpresenter":["kpr","kpt"],"vnd.kde.kspread":"ksp","vnd.kde.kword":["kwd","kwt"],"vnd.kenameaapp":"htke","vnd.kidspiration":"kia","vnd.kinar":["kne","knp"],"vnd.koan":["skp","skd","skt","skm"],"vnd.kodak-descriptor":"sse","vnd.las.las+xml":"lasxml","vnd.llamagraphics.life-balance.desktop":"lbd","vnd.llamagraphics.life-balance.exchange+xml":"lbe","vnd.lotus-1-2-3":"123","vnd.lotus-approach":"apr","vnd.lotus-freelance":"pre","vnd.lotus-notes":"nsf","vnd.lotus-organizer":"org","vnd.lotus-screencam":"scm","vnd.lotus-wordpro":"lwp","vnd.macports.portpkg":"portpkg","vnd.mcd":"mcd","vnd.medcalcdata":"mc1","vnd.mediastation.cdkey":"cdkey","vnd.mfer":"mwf","vnd.mfmp":"mfm","vnd.micrografx.flo":"flo","vnd.micrografx.igx":"igx","vnd.mif":"mif","vnd.mobius.daf":"daf","vnd.mobius.dis":"dis","vnd.mobius.mbk":"mbk","vnd.mobius.mqy":"mqy","vnd.mobius.msl":"msl","vnd.mobius.plc":"plc","vnd.mobius.txf":"txf","vnd.mophun.application":"mpn","vnd.mophun.certificate":"mpc","vnd.ms-artgalry":"cil","vnd.ms-cab-compressed":"cab","vnd.ms-excel.addin.macroenabled.12":"xlam","vnd.ms-excel.sheet.binary.macroenabled.12":"xlsb","vnd.ms-excel.sheet.macroenabled.12":"xlsm","vnd.ms-excel.template.macroenabled.12":"xltm","vnd.ms-fontobject":"eot","vnd.ms-htmlhelp":"chm","vnd.ms-ims":"ims","vnd.ms-lrm":"lrm","vnd.ms-officetheme":"thmx","vnd.ms-powerpoint.addin.macroenabled.12":"ppam","vnd.ms-powerpoint.presentation.macroenabled.12":"pptm","vnd.ms-powerpoint.slide.macroenabled.12":"sldm","vnd.ms-powerpoint.slideshow.macroenabled.12":"ppsm","vnd.ms-powerpoint.template.macroenabled.12":"potm","vnd.ms-project":["mpp","mpt"],"vnd.ms-word.document.macroenabled.12":"docm","vnd.ms-word.template.macroenabled.12":"dotm","vnd.ms-works":["wps","wks","wcm","wdb"],"vnd.ms-wpl":"wpl","vnd.ms-xpsdocument":"xps","vnd.mseq":"mseq","vnd.musician":"mus","vnd.muvee.style":"msty","vnd.mynfc":"taglet","vnd.neurolanguage.nlu":"nlu","vnd.nitf":["ntf","nitf"],"vnd.noblenet-directory":"nnd","vnd.noblenet-sealer":"nns","vnd.noblenet-web":"nnw","vnd.nokia.n-gage.data":"ngdat","vnd.nokia.n-gage.symbian.install":"n-gage","vnd.nokia.radio-preset":"rpst","vnd.nokia.radio-presets":"rpss","vnd.novadigm.edm":"edm","vnd.novadigm.edx":"edx","vnd.novadigm.ext":"ext","vnd.oasis.opendocument.chart-template":"otc","vnd.oasis.opendocument.formula-template":"odft","vnd.oasis.opendocument.image-template":"oti","vnd.olpc-sugar":"xo","vnd.oma.dd2+xml":"dd2","vnd.openofficeorg.extension":"oxt","vnd.openxmlformats-officedocument.presentationml.slide":"sldx","vnd.osgeo.mapguide.package":"mgp","vnd.osgi.dp":"dp","vnd.osgi.subsystem":"esa","vnd.palm":["pdb","pqa","oprc"],"vnd.pawaafile":"paw","vnd.pg.format":"str","vnd.pg.osasli":"ei6","vnd.picsel":"efif","vnd.pmi.widget":"wg","vnd.pocketlearn":"plf","vnd.powerbuilder6":"pbd","vnd.previewsystems.box":"box","vnd.proteus.magazine":"mgz","vnd.publishare-delta-tree":"qps","vnd.pvi.ptid1":"ptid","vnd.quark.quarkxpress":["qxd","qxt","qwd","qwt","qxl","qxb"],"vnd.realvnc.bed":"bed","vnd.recordare.musicxml":"mxl","vnd.recordare.musicxml+xml":"musicxml","vnd.rig.cryptonote":"cryptonote","vnd.rn-realmedia":"rm","vnd.rn-realmedia-vbr":"rmvb","vnd.route66.link66+xml":"link66","vnd.sailingtracker.track":"st","vnd.seemail":"see","vnd.sema":"sema","vnd.semd":"semd","vnd.semf":"semf","vnd.shana.informed.formdata":"ifm","vnd.shana.informed.formtemplate":"itp","vnd.shana.informed.interchange":"iif","vnd.shana.informed.package":"ipk","vnd.simtech-mindmapper":["twd","twds"],"vnd.smart.teacher":"teacher","vnd.solent.sdkm+xml":["sdkm","sdkd"],"vnd.spotfire.dxp":"dxp","vnd.spotfire.sfs":"sfs","vnd.stepmania.package":"smzip","vnd.stepmania.stepchart":"sm","vnd.sus-calendar":["sus","susp"],"vnd.svd":"svd","vnd.syncml+xml":"xsm","vnd.syncml.dm+wbxml":"bdm","vnd.syncml.dm+xml":"xdm","vnd.tao.intent-module-archive":"tao","vnd.tcpdump.pcap":["pcap","cap","dmp"],"vnd.tmobile-livetv":"tmo","vnd.trid.tpt":"tpt","vnd.triscape.mxs":"mxs","vnd.trueapp":"tra","vnd.ufdl":["ufd","ufdl"],"vnd.uiq.theme":"utz","vnd.umajin":"umj","vnd.unity":"unityweb","vnd.uoml+xml":"uoml","vnd.vcx":"vcx","vnd.visionary":"vis","vnd.vsf":"vsf","vnd.webturbo":"wtb","vnd.wolfram.player":"nbp","vnd.wqd":"wqd","vnd.wt.stf":"stf","vnd.xara":"xar","vnd.xfdl":"xfdl","vnd.yamaha.hv-dic":"hvd","vnd.yamaha.hv-script":"hvs","vnd.yamaha.hv-voice":"hvp","vnd.yamaha.openscoreformat":"osf","vnd.yamaha.openscoreformat.osfpvg+xml":"osfpvg","vnd.yamaha.smaf-audio":"saf","vnd.yamaha.smaf-phrase":"spf","vnd.yellowriver-custom-menu":"cmp","vnd.zul":["zir","zirz"],"vnd.zzazz.deck+xml":"zaz","voicexml+xml":"vxml",widget:"wgt",winhlp:"hlp","wsdl+xml":"wsdl","wspolicy+xml":"wspolicy","x-ace-compressed":"ace","x-authorware-bin":["aab","x32","u32","vox"],"x-authorware-map":"aam","x-authorware-seg":"aas","x-blorb":["blb","blorb"],"x-bzip":"bz","x-bzip2":["bz2","boz"],"x-cfs-compressed":"cfs","x-chat":"chat","x-conference":"nsc","x-dgc-compressed":"dgc","x-dtbncx+xml":"ncx","x-dtbook+xml":"dtb","x-dtbresource+xml":"res","x-eva":"eva","x-font-bdf":"bdf","x-font-ghostscript":"gsf","x-font-linux-psf":"psf","x-font-otf":"otf","x-font-pcf":"pcf","x-font-snf":"snf","x-font-ttf":["ttf","ttc"],"x-font-type1":["pfa","pfb","pfm","afm"],"x-font-woff":"woff","x-freearc":"arc","x-gca-compressed":"gca","x-glulx":"ulx","x-gramps-xml":"gramps","x-install-instructions":"install","x-lzh-compressed":["lzh","lha"],"x-mie":"mie","x-mobipocket-ebook":["prc","mobi"],"x-ms-application":"application","x-ms-shortcut":"lnk","x-ms-xbap":"xbap","x-msbinder":"obd","x-mscardfile":"crd","x-msclip":"clp","x-msdownload":["exe","dll","com","bat","msi"],"x-msmediaview":["mvb","m13","m14"],"x-msmetafile":["wmf","wmz","emf","emz"],"x-msmoney":"mny","x-mspublisher":"pub","x-msschedule":"scd","x-msterminal":"trm","x-mswrite":"wri","x-nzb":"nzb","x-pkcs12":["p12","pfx"],"x-pkcs7-certificates":["p7b","spc"],"x-research-info-systems":"ris","x-silverlight-app":"xap","x-sql":"sql","x-stuffitx":"sitx","x-subrip":"srt","x-t3vm-image":"t3","x-tads":"gam","x-tex":"tex","x-tex-tfm":"tfm","x-tgif":"obj","x-xliff+xml":"xlf","x-xz":"xz","x-zmachine":["z1","z2","z3","z4","z5","z6","z7","z8"],"xaml+xml":"xaml","xcap-diff+xml":"xdf","xenc+xml":"xenc","xml-dtd":"dtd","xop+xml":"xop","xproc+xml":"xpl","xslt+xml":"xslt","xv+xml":["mxml","xhvml","xvml","xvm"],yang:"yang","yin+xml":"yin",envoy:"evy",fractals:"fif","internet-property-stream":"acx",olescript:"axs","vnd.ms-outlook":"msg","vnd.ms-pkicertstore":"sst","x-compress":"z","x-compressed":"tgz","x-gzip":"gz","x-perfmon":["pma","pmc","pml","pmr","pmw"],"x-pkcs7-mime":["p7c","p7m"],"ynd.ms-pkipko":"pko"},audio:{amr:"amr","amr-wb":"awb",annodex:"axa",basic:["au","snd"],flac:"flac",midi:["mid","midi","kar","rmi"],mpeg:["mpga","mpega","mp2","mp3","m4a","mp2a","m2a","m3a"],mpegurl:"m3u",ogg:["oga","ogg","spx"],"prs.sid":"sid","x-aiff":["aif","aiff","aifc"],"x-gsm":"gsm","x-ms-wma":"wma","x-ms-wax":"wax","x-pn-realaudio":"ram","x-realaudio":"ra","x-sd2":"sd2","x-wav":"wav",adpcm:"adp",mp4:"mp4a",s3m:"s3m",silk:"sil","vnd.dece.audio":["uva","uvva"],"vnd.digital-winds":"eol","vnd.dra":"dra","vnd.dts":"dts","vnd.dts.hd":"dtshd","vnd.lucent.voice":"lvp","vnd.ms-playready.media.pya":"pya","vnd.nuera.ecelp4800":"ecelp4800","vnd.nuera.ecelp7470":"ecelp7470","vnd.nuera.ecelp9600":"ecelp9600","vnd.rip":"rip",webm:"weba","x-aac":"aac","x-caf":"caf","x-matroska":"mka","x-pn-realaudio-plugin":"rmp",xm:"xm",mid:["mid","rmi"]},chemical:{"x-alchemy":"alc","x-cache":["cac","cache"],"x-cache-csf":"csf","x-cactvs-binary":["cbin","cascii","ctab"],"x-cdx":"cdx","x-chem3d":"c3d","x-cif":"cif","x-cmdf":"cmdf","x-cml":"cml","x-compass":"cpa","x-crossfire":"bsd","x-csml":["csml","csm"],"x-ctx":"ctx","x-cxf":["cxf","cef"],"x-embl-dl-nucleotide":["emb","embl"],"x-gamess-input":["inp","gam","gamin"],"x-gaussian-checkpoint":["fch","fchk"],"x-gaussian-cube":"cub","x-gaussian-input":["gau","gjc","gjf"],"x-gaussian-log":"gal","x-gcg8-sequence":"gcg","x-genbank":"gen","x-hin":"hin","x-isostar":["istr","ist"],"x-jcamp-dx":["jdx","dx"],"x-kinemage":"kin","x-macmolecule":"mcm","x-macromodel-input":["mmd","mmod"],"x-mdl-molfile":"mol","x-mdl-rdfile":"rd","x-mdl-rxnfile":"rxn","x-mdl-sdfile":["sd","sdf"],"x-mdl-tgf":"tgf","x-mmcif":"mcif","x-mol2":"mol2","x-molconn-Z":"b","x-mopac-graph":"gpt","x-mopac-input":["mop","mopcrt","mpc","zmt"],"x-mopac-out":"moo","x-ncbi-asn1":"asn","x-ncbi-asn1-ascii":["prt","ent"],"x-ncbi-asn1-binary":["val","aso"],"x-pdb":["pdb","ent"],"x-rosdal":"ros","x-swissprot":"sw","x-vamas-iso14976":"vms","x-vmd":"vmd","x-xtel":"xtel","x-xyz":"xyz"},image:{gif:"gif",ief:"ief",jpeg:["jpeg","jpg","jpe"],pcx:"pcx",png:"png","svg+xml":["svg","svgz"],tiff:["tiff","tif"],"vnd.djvu":["djvu","djv"],"vnd.wap.wbmp":"wbmp","x-canon-cr2":"cr2","x-canon-crw":"crw","x-cmu-raster":"ras","x-coreldraw":"cdr","x-coreldrawpattern":"pat","x-coreldrawtemplate":"cdt","x-corelphotopaint":"cpt","x-epson-erf":"erf","x-icon":"ico","x-jg":"art","x-jng":"jng","x-nikon-nef":"nef","x-olympus-orf":"orf","x-photoshop":"psd","x-portable-anymap":"pnm","x-portable-bitmap":"pbm","x-portable-graymap":"pgm","x-portable-pixmap":"ppm","x-rgb":"rgb","x-xbitmap":"xbm","x-xpixmap":"xpm","x-xwindowdump":"xwd",bmp:"bmp",cgm:"cgm",g3fax:"g3",ktx:"ktx","prs.btif":"btif",sgi:"sgi","vnd.dece.graphic":["uvi","uvvi","uvg","uvvg"],"vnd.dwg":"dwg","vnd.dxf":"dxf","vnd.fastbidsheet":"fbs","vnd.fpx":"fpx","vnd.fst":"fst","vnd.fujixerox.edmics-mmr":"mmr","vnd.fujixerox.edmics-rlc":"rlc","vnd.ms-modi":"mdi","vnd.ms-photo":"wdp","vnd.net-fpx":"npx","vnd.xiff":"xif",webp:"webp","x-3ds":"3ds","x-cmx":"cmx","x-freehand":["fh","fhc","fh4","fh5","fh7"],"x-pict":["pic","pct"],"x-tga":"tga","cis-cod":"cod",pipeg:"jfif"},message:{rfc822:["eml","mime","mht","mhtml","nws"]},model:{iges:["igs","iges"],mesh:["msh","mesh","silo"],vrml:["wrl","vrml"],"x3d+vrml":["x3dv","x3dvz"],"x3d+xml":["x3d","x3dz"],"x3d+binary":["x3db","x3dbz"],"vnd.collada+xml":"dae","vnd.dwf":"dwf","vnd.gdl":"gdl","vnd.gtw":"gtw","vnd.mts":"mts","vnd.vtu":"vtu"},text:{"cache-manifest":["manifest","appcache"],calendar:["ics","icz","ifb"],css:"css",csv:"csv",h323:"323",html:["html","htm","shtml","stm"],iuls:"uls",mathml:"mml",plain:["txt","text","brf","conf","def","list","log","in","bas"],richtext:"rtx",scriptlet:["sct","wsc"],texmacs:["tm","ts"],"tab-separated-values":"tsv","vnd.sun.j2me.app-descriptor":"jad","vnd.wap.wml":"wml","vnd.wap.wmlscript":"wmls","x-bibtex":"bib","x-boo":"boo","x-c++hdr":["h++","hpp","hxx","hh"],"x-c++src":["c++","cpp","cxx","cc"],"x-component":"htc","x-dsrc":"d","x-diff":["diff","patch"],"x-haskell":"hs","x-java":"java","x-literate-haskell":"lhs","x-moc":"moc","x-pascal":["p","pas"],"x-pcs-gcd":"gcd","x-perl":["pl","pm"],"x-python":"py","x-scala":"scala","x-setext":"etx","x-tcl":["tcl","tk"],"x-tex":["tex","ltx","sty","cls"],"x-vcalendar":"vcs","x-vcard":"vcf",n3:"n3","prs.lines.tag":"dsc",sgml:["sgml","sgm"],troff:["t","tr","roff","man","me","ms"],turtle:"ttl","uri-list":["uri","uris","urls"],vcard:"vcard","vnd.curl":"curl","vnd.curl.dcurl":"dcurl","vnd.curl.scurl":"scurl","vnd.curl.mcurl":"mcurl","vnd.dvb.subtitle":"sub","vnd.fly":"fly","vnd.fmi.flexstor":"flx","vnd.graphviz":"gv","vnd.in3d.3dml":"3dml","vnd.in3d.spot":"spot","x-asm":["s","asm"],"x-c":["c","cc","cxx","cpp","h","hh","dic"],"x-fortran":["f","for","f77","f90"],"x-opml":"opml","x-nfo":"nfo","x-sfv":"sfv","x-uuencode":"uu",webviewhtml:"htt"},video:{avif:".avif","3gpp":"3gp",annodex:"axv",dl:"dl",dv:["dif","dv"],fli:"fli",gl:"gl",mpeg:["mpeg","mpg","mpe","m1v","m2v","mp2","mpa","mpv2"],mp4:["mp4","mp4v","mpg4"],quicktime:["qt","mov"],ogg:"ogv","vnd.mpegurl":["mxu","m4u"],"x-flv":"flv","x-la-asf":["lsf","lsx"],"x-mng":"mng","x-ms-asf":["asf","asx","asr"],"x-ms-wm":"wm","x-ms-wmv":"wmv","x-ms-wmx":"wmx","x-ms-wvx":"wvx","x-msvideo":"avi","x-sgi-movie":"movie","x-matroska":["mpv","mkv","mk3d","mks"],"3gpp2":"3g2",h261:"h261",h263:"h263",h264:"h264",jpeg:"jpgv",jpm:["jpm","jpgm"],mj2:["mj2","mjp2"],"vnd.dece.hd":["uvh","uvvh"],"vnd.dece.mobile":["uvm","uvvm"],"vnd.dece.pd":["uvp","uvvp"],"vnd.dece.sd":["uvs","uvvs"],"vnd.dece.video":["uvv","uvvv"],"vnd.dvb.file":"dvb","vnd.fvt":"fvt","vnd.ms-playready.media.pyv":"pyv","vnd.uvvu.mp4":["uvu","uvvu"],"vnd.vivo":"viv",webm:"webm","x-f4v":"f4v","x-m4v":"m4v","x-ms-vob":"vob","x-smv":"smv"},"x-conference":{"x-cooltalk":"ice"},"x-world":{"x-vrml":["vrm","vrml","wrl","flr","wrz","xaf","xof"]}};(()=>{const e={};for(let t in ho)if(ho.hasOwnProperty(t)){for(let n in ho[t])if(ho[t].hasOwnProperty(n)){const r=ho[t][n];if(typeof r=="string")e[r]=t+"/"+n;else for(let i=0;i<r.length;i++)e[r[i]]=t+"/"+n}}return e})();const Ah=[];for(let e=0;e<256;e++){let t=e;for(let n=0;n<8;n++)t&1?t=t>>>1^3988292384:t=t>>>1;Ah[e]=t}class Po{constructor(t){this.crc=t||-1}append(t){let n=this.crc|0;for(let r=0,i=t.length|0;r<i;r++)n=n>>>8^Ah[(n^t[r])&255];this.crc=n}get(){return~this.crc}}function Ac(e){if(typeof TextEncoder=="undefined"){e=unescape(encodeURIComponent(e));const t=new Uint8Array(e.length);for(let n=0;n<t.length;n++)t[n]=e.charCodeAt(n);return t}else return new TextEncoder().encode(e)}const Pt={concat(e,t){if(e.length===0||t.length===0)return e.concat(t);const n=e[e.length-1],r=Pt.getPartial(n);return r===32?e.concat(t):Pt._shiftRight(t,r,n|0,e.slice(0,e.length-1))},bitLength(e){const t=e.length;if(t===0)return 0;const n=e[t-1];return(t-1)*32+Pt.getPartial(n)},clamp(e,t){if(e.length*32<t)return e;e=e.slice(0,Math.ceil(t/32));const n=e.length;return t=t&31,n>0&&t&&(e[n-1]=Pt.partial(t,e[n-1]&2147483648>>t-1,1)),e},partial(e,t,n){return e===32?t:(n?t|0:t<<32-e)+e*1099511627776},getPartial(e){return Math.round(e/1099511627776)||32},_shiftRight(e,t,n,r){for(r===void 0&&(r=[]);t>=32;t-=32)r.push(n),n=0;if(t===0)return r.concat(e);for(let a=0;a<e.length;a++)r.push(n|e[a]>>>t),n=e[a]<<32-t;const i=e.length?e[e.length-1]:0,o=Pt.getPartial(i);return r.push(Pt.partial(t+o&31,t+o>32?n:r.pop(),1)),r}},Sh={bytes:{fromBits(e){const n=Pt.bitLength(e)/8,r=new Uint8Array(n);let i;for(let o=0;o<n;o++)(o&3)===0&&(i=e[o/4]),r[o]=i>>>24,i<<=8;return r},toBits(e){const t=[];let n,r=0;for(n=0;n<e.length;n++)r=r<<8|e[n],(n&3)===3&&(t.push(r),r=0);return n&3&&t.push(Pt.partial(8*(n&3),r)),t}}},_d={};_d.sha1=function(e){e?(this._h=e._h.slice(0),this._buffer=e._buffer.slice(0),this._length=e._length):this.reset()};_d.sha1.prototype={blockSize:512,reset:function(){const e=this;return e._h=this._init.slice(0),e._buffer=[],e._length=0,e},update:function(e){const t=this;typeof e=="string"&&(e=Sh.utf8String.toBits(e));const n=t._buffer=Pt.concat(t._buffer,e),r=t._length,i=t._length=r+Pt.bitLength(e);if(i>9007199254740991)throw new Error("Cannot hash more than 2^53 - 1 bits");const o=new Uint32Array(n);let a=0;for(let s=t.blockSize+r-(t.blockSize+r&t.blockSize-1);s<=i;s+=t.blockSize)t._block(o.subarray(16*a,16*(a+1))),a+=1;return n.splice(0,16*a),t},finalize:function(){const e=this;let t=e._buffer;const n=e._h;t=Pt.concat(t,[Pt.partial(1,1)]);for(let r=t.length+2;r&15;r++)t.push(0);for(t.push(Math.floor(e._length/4294967296)),t.push(e._length|0);t.length;)e._block(t.splice(0,16));return e.reset(),n},_init:[1732584193,4023233417,2562383102,271733878,3285377520],_key:[1518500249,1859775393,2400959708,3395469782],_f:function(e,t,n,r){if(e<=19)return t&n|~t&r;if(e<=39)return t^n^r;if(e<=59)return t&n|t&r|n&r;if(e<=79)return t^n^r},_S:function(e,t){return t<<e|t>>>32-e},_block:function(e){const t=this,n=t._h,r=Array(80);for(let d=0;d<16;d++)r[d]=e[d];let i=n[0],o=n[1],a=n[2],s=n[3],l=n[4];for(let d=0;d<=79;d++){d>=16&&(r[d]=t._S(1,r[d-3]^r[d-8]^r[d-14]^r[d-16]));const c=t._S(5,i)+t._f(d,o,a,s)+l+r[d]+t._key[Math.floor(d/20)]|0;l=s,s=a,a=t._S(30,o),o=i,i=c}n[0]=n[0]+i|0,n[1]=n[1]+o|0,n[2]=n[2]+a|0,n[3]=n[3]+s|0,n[4]=n[4]+l|0}};const Ih={};Ih.aes=class{constructor(e){const t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();const n=t._tables[0][4],r=t._tables[1],i=e.length;let o,a,s,l=1;if(i!==4&&i!==6&&i!==8)throw new Error("invalid aes key size");for(t._key=[a=e.slice(0),s=[]],o=i;o<4*i+28;o++){let d=a[o-1];(o%i===0||i===8&&o%i===4)&&(d=n[d>>>24]<<24^n[d>>16&255]<<16^n[d>>8&255]<<8^n[d&255],o%i===0&&(d=d<<8^d>>>24^l<<24,l=l<<1^(l>>7)*283)),a[o]=a[o-i]^d}for(let d=0;o;d++,o--){const c=a[d&3?o:o-4];o<=4||d<4?s[d]=c:s[d]=r[0][n[c>>>24]]^r[1][n[c>>16&255]]^r[2][n[c>>8&255]]^r[3][n[c&255]]}}encrypt(e){return this._crypt(e,0)}decrypt(e){return this._crypt(e,1)}_precompute(){const e=this._tables[0],t=this._tables[1],n=e[4],r=t[4],i=[],o=[];let a,s,l,d;for(let c=0;c<256;c++)o[(i[c]=c<<1^(c>>7)*283)^c]=c;for(let c=a=0;!n[c];c^=s||1,a=o[a]||1){let u=a^a<<1^a<<2^a<<3^a<<4;u=u>>8^u&255^99,n[c]=u,r[u]=c,d=i[l=i[s=i[c]]];let f=d*16843009^l*65537^s*257^c*16843008,h=i[u]*257^u*16843008;for(let w=0;w<4;w++)e[w][c]=h=h<<24^h>>>8,t[w][u]=f=f<<24^f>>>8}for(let c=0;c<5;c++)e[c]=e[c].slice(0),t[c]=t[c].slice(0)}_crypt(e,t){if(e.length!==4)throw new Error("invalid aes block size");const n=this._key[t],r=n.length/4-2,i=[0,0,0,0],o=this._tables[t],a=o[0],s=o[1],l=o[2],d=o[3],c=o[4];let u=e[0]^n[0],f=e[t?3:1]^n[1],h=e[2]^n[2],w=e[t?1:3]^n[3],_=4,g,m,v;for(let x=0;x<r;x++)g=a[u>>>24]^s[f>>16&255]^l[h>>8&255]^d[w&255]^n[_],m=a[f>>>24]^s[h>>16&255]^l[w>>8&255]^d[u&255]^n[_+1],v=a[h>>>24]^s[w>>16&255]^l[u>>8&255]^d[f&255]^n[_+2],w=a[w>>>24]^s[u>>16&255]^l[f>>8&255]^d[h&255]^n[_+3],_+=4,u=g,f=m,h=v;for(let x=0;x<4;x++)i[t?3&-x:x]=c[u>>>24]<<24^c[f>>16&255]<<16^c[h>>8&255]<<8^c[w&255]^n[_++],g=u,u=f,f=h,h=w,w=g;return i}};const Mh={};Mh.ctrGladman=class{constructor(e,t){this._prf=e,this._initIv=t,this._iv=t}reset(){this._iv=this._initIv}update(e){return this.calculate(this._prf,e,this._iv)}incWord(e){if((e>>24&255)===255){let t=e>>16&255,n=e>>8&255,r=e&255;t===255?(t=0,n===255?(n=0,r===255?r=0:++r):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=r}else e+=1<<24;return e}incCounter(e){(e[0]=this.incWord(e[0]))===0&&(e[1]=this.incWord(e[1]))}calculate(e,t,n){let r;if(!(r=t.length))return[];const i=Pt.bitLength(t);for(let o=0;o<r;o+=4){this.incCounter(n);const a=e.encrypt(n);t[o]^=a[0],t[o+1]^=a[1],t[o+2]^=a[2],t[o+3]^=a[3]}return Pt.clamp(t,i)}};const Th={};Th.hmacSha1=class{constructor(e){const t=this,n=t._hash=_d.sha1,r=[[],[]],i=n.prototype.blockSize/32;t._baseHash=[new n,new n],e.length>i&&(e=n.hash(e));for(let o=0;o<i;o++)r[0][o]=e[o]^909522486,r[1][o]=e[o]^1549556828;t._baseHash[0].update(r[0]),t._baseHash[1].update(r[1]),t._resultHash=new n(t._baseHash[0])}reset(){const e=this;e._resultHash=new e._hash(e._baseHash[0]),e._updated=!1}update(e){const t=this;t._updated=!0,t._resultHash.update(e)}digest(){const e=this,t=e._resultHash.finalize(),n=new e._hash(e._baseHash[1]).update(t).finalize();return e.reset(),n}};const Lh="Invalid pasword",ki=16,N5="raw",Oh={name:"PBKDF2"},R5={name:"HMAC"},D5="SHA-1",F5=Object.assign({hash:R5},Oh),P5=Object.assign({iterations:1e3,hash:{name:D5}},Oh),$5=["deriveBits"],$o=[8,12,16],po=[16,24,32],lr=10,Nh=[0,0,0,0],On=Sh.bytes,Rh=Ih.aes,Dh=Mh.ctrGladman,Fh=Th.hmacSha1;class B5{constructor(t,n,r){Object.assign(this,{password:t,signed:n,strength:r-1,pendingInput:new Uint8Array(0)})}async append(t){const n=this;if(n.password){const i=Ut(t,0,$o[n.strength]+2);await j5(n,i,n.password),n.password=null,n.aesCtrGladman=new Dh(new Rh(n.keys.key),Array.from(Nh)),n.hmac=new Fh(n.keys.authentication),t=Ut(t,$o[n.strength]+2)}const r=new Uint8Array(t.length-lr-(t.length-lr)%ki);return Ph(n,t,r,0,lr,!0)}flush(){const t=this,n=t.pendingInput,r=Ut(n,0,n.length-lr),i=Ut(n,n.length-lr);let o=new Uint8Array(0);if(r.length){const s=On.toBits(r);t.hmac.update(s);const l=t.aesCtrGladman.update(s);o=On.fromBits(l)}let a=!0;if(t.signed){const s=Ut(On.fromBits(t.hmac.digest()),0,lr);for(let l=0;l<lr;l++)s[l]!=i[l]&&(a=!1)}return{valid:a,data:o}}}class z5{constructor(t,n){Object.assign(this,{password:t,strength:n-1,pendingInput:new Uint8Array(0)})}async append(t){const n=this;let r=new Uint8Array(0);n.password&&(r=await V5(n,n.password),n.password=null,n.aesCtrGladman=new Dh(new Rh(n.keys.key),Array.from(Nh)),n.hmac=new Fh(n.keys.authentication));const i=new Uint8Array(r.length+t.length-t.length%ki);return i.set(r,0),Ph(n,t,i,r.length,0)}flush(){const t=this;let n=new Uint8Array(0);if(t.pendingInput.length){const i=t.aesCtrGladman.update(On.toBits(t.pendingInput));t.hmac.update(i),n=On.fromBits(i)}const r=Ut(On.fromBits(t.hmac.digest()),0,lr);return{data:wd(n,r),signature:r}}}function Ph(e,t,n,r,i,o){const a=t.length-i;e.pendingInput.length&&(t=wd(e.pendingInput,t),n=U5(n,a-a%ki));let s;for(s=0;s<=a-ki;s+=ki){const l=On.toBits(Ut(t,s,s+ki));o&&e.hmac.update(l);const d=e.aesCtrGladman.update(l);o||e.hmac.update(d),n.set(On.fromBits(d),s+r)}return e.pendingInput=Ut(t,s),n}async function j5(e,t,n){await $h(e,n,Ut(t,0,$o[e.strength]));const r=Ut(t,$o[e.strength]),i=e.keys.passwordVerification;if(i[0]!=r[0]||i[1]!=r[1])throw new Error(Lh)}async function V5(e,t){const n=crypto.getRandomValues(new Uint8Array($o[e.strength]));return await $h(e,t,n),wd(n,e.keys.passwordVerification)}async function $h(e,t,n){const r=Ac(t),i=await crypto.subtle.importKey(N5,r,F5,!1,$5),o=await crypto.subtle.deriveBits(Object.assign({salt:n},P5),i,8*(po[e.strength]*2+2)),a=new Uint8Array(o);e.keys={key:On.toBits(Ut(a,0,po[e.strength])),authentication:On.toBits(Ut(a,po[e.strength],po[e.strength]*2)),passwordVerification:Ut(a,po[e.strength]*2)}}function wd(e,t){let n=e;return e.length+t.length&&(n=new Uint8Array(e.length+t.length),n.set(e,0),n.set(t,e.length)),n}function U5(e,t){if(t&&t>e.length){const n=e;e=new Uint8Array(t),e.set(n,0)}return e}function Ut(e,t,n){return e.subarray(t,n)}const Li=12;class H5{constructor(t,n){const r=this;Object.assign(r,{password:t,passwordVerification:n}),Bh(r,t)}append(t){const n=this;if(n.password){const r=J0(n,t.subarray(0,Li));if(n.password=null,r[Li-1]!=n.passwordVerification)throw new Error(Lh);t=t.subarray(Li)}return J0(n,t)}flush(){return{valid:!0,data:new Uint8Array(0)}}}class Z5{constructor(t,n){const r=this;Object.assign(r,{password:t,passwordVerification:n}),Bh(r,t)}append(t){const n=this;let r,i;if(n.password){n.password=null;const o=crypto.getRandomValues(new Uint8Array(Li));o[Li-1]=n.passwordVerification,r=new Uint8Array(t.length+o.length),r.set(Q0(n,o),0),i=Li}else r=new Uint8Array(t.length),i=0;return r.set(Q0(n,t),i),r}flush(){return{data:new Uint8Array(0)}}}function J0(e,t){const n=new Uint8Array(t.length);for(let r=0;r<t.length;r++)n[r]=zh(e)^t[r],vd(e,n[r]);return n}function Q0(e,t){const n=new Uint8Array(t.length);for(let r=0;r<t.length;r++)n[r]=zh(e)^t[r],vd(e,t[r]);return n}function Bh(e,t){e.keys=[305419896,591751049,878082192],e.crcKey0=new Po(e.keys[0]),e.crcKey2=new Po(e.keys[2]);for(let n=0;n<t.length;n++)vd(e,t.charCodeAt(n))}function vd(e,t){e.crcKey0.append([t]),e.keys[0]=~e.crcKey0.get(),e.keys[1]=e1(e.keys[1]+jh(e.keys[0])),e.keys[1]=e1(Math.imul(e.keys[1],134775813)+1),e.crcKey2.append([e.keys[1]>>>24]),e.keys[2]=~e.crcKey2.get()}function zh(e){const t=e.keys[2]|2;return jh(Math.imul(t,t^1)>>>8)}function jh(e){return e&255}function e1(e){return e&4294967295}const Vh="deflate",Uh="inflate",t1="Invalid signature";class G5{constructor(t,{signature:n,password:r,signed:i,compressed:o,zipCrypto:a,passwordVerification:s,encryptionStrength:l},{chunkSize:d}){const c=Boolean(r);Object.assign(this,{signature:n,encrypted:c,signed:i,compressed:o,inflate:o&&new t({chunkSize:d}),crc32:i&&new Po,zipCrypto:a,decrypt:c&&a?new H5(r,s):new B5(r,i,l)})}async append(t){const n=this;return n.encrypted&&t.length&&(t=await n.decrypt.append(t)),n.compressed&&t.length&&(t=await n.inflate.append(t)),(!n.encrypted||n.zipCrypto)&&n.signed&&t.length&&n.crc32.append(t),t}async flush(){const t=this;let n,r=new Uint8Array(0);if(t.encrypted){const i=t.decrypt.flush();if(!i.valid)throw new Error(t1);r=i.data}if((!t.encrypted||t.zipCrypto)&&t.signed){const i=new DataView(new Uint8Array(4).buffer);if(n=t.crc32.get(),i.setUint32(0,n),t.signature!=i.getUint32(0,!1))throw new Error(t1)}return t.compressed&&(r=await t.inflate.append(r)||new Uint8Array(0),await t.inflate.flush()),{data:r,signature:n}}}class Y5{constructor(t,{encrypted:n,signed:r,compressed:i,level:o,zipCrypto:a,password:s,passwordVerification:l,encryptionStrength:d},{chunkSize:c}){Object.assign(this,{encrypted:n,signed:r,compressed:i,deflate:i&&new t({level:o||5,chunkSize:c}),crc32:r&&new Po,zipCrypto:a,encrypt:n&&a?new Z5(s,l):new z5(s,d)})}async append(t){const n=this;let r=t;return n.compressed&&t.length&&(r=await n.deflate.append(t)),n.encrypted&&r.length&&(r=await n.encrypt.append(r)),(!n.encrypted||n.zipCrypto)&&n.signed&&t.length&&n.crc32.append(t),r}async flush(){const t=this;let n,r=new Uint8Array(0);if(t.compressed&&(r=await t.deflate.flush()||new Uint8Array(0)),t.encrypted){r=await t.encrypt.append(r);const i=t.encrypt.flush();n=i.signature;const o=new Uint8Array(r.length+i.data.length);o.set(r,0),o.set(i.data,r.length),r=o}return(!t.encrypted||t.zipCrypto)&&t.signed&&(n=t.crc32.get()),{data:r,signature:n}}}function W5(e,t,n){if(t.codecType.startsWith(Vh))return new Y5(e,t,n);if(t.codecType.startsWith(Uh))return new G5(e,t,n)}const n1="init",r1="append",Ol="flush",q5="message";let i1=!0;var Nl=(e,t,n,r,i,o,a)=>(Object.assign(e,{busy:!0,codecConstructor:t,options:Object.assign({},n),scripts:a,terminate(){e.worker&&!e.busy&&(e.worker.terminate(),e.interface=null)},onTaskFinished(){e.busy=!1,i(e)}}),o?K5(e,r):X5(e,r));function X5(e,t){const n=W5(e.codecConstructor,e.options,t);return{async append(r){try{return await n.append(r)}catch(i){throw e.onTaskFinished(),i}},async flush(){try{return await n.flush()}finally{e.onTaskFinished()}},abort(){e.onTaskFinished()}}}function K5(e,t){let n;const r={type:"module"};if(!e.interface){if(!i1)e.worker=i(r,t.baseURL);else try{e.worker=i({},t.baseURL)}catch{i1=!1,e.worker=i(r,t.baseURL)}e.worker.addEventListener(q5,s,!1),e.interface={append(l){return o({type:r1,data:l})},flush(){return o({type:Ol})},abort(){e.onTaskFinished()}}}return e.interface;function i(l,d){let c,u;c=e.scripts[0],typeof c=="function"&&(c=c());try{u=new URL(c,d)}catch{u=c}return new Worker(u,l)}async function o(l){if(!n){const d=e.options,c=e.scripts.slice(1);await a({scripts:c,type:n1,options:d,config:{chunkSize:t.chunkSize}})}return a(l)}function a(l){const d=e.worker,c=new Promise((u,f)=>n={resolve:u,reject:f});try{if(l.data)try{l.data=l.data.buffer,d.postMessage(l,[l.data])}catch{d.postMessage(l)}else d.postMessage(l)}catch(u){n.reject(u),n=null,e.onTaskFinished()}return c}function s(l){const d=l.data;if(n){const c=d.error,u=d.type;if(c){const f=new Error(c.message);f.stack=c.stack,n.reject(f),n=null,e.onTaskFinished()}else if(u==n1||u==Ol||u==r1){const f=d.data;u==Ol?(n.resolve({data:new Uint8Array(f),signature:d.signature}),n=null,e.onTaskFinished()):n.resolve(f&&new Uint8Array(f))}}}}let Lr=[],Rl=[];function Hh(e,t,n){const i=!(!t.compressed&&!t.signed&&!t.encrypted)&&(t.useWebWorkers||t.useWebWorkers===void 0&&n.useWebWorkers),o=i&&n.workerScripts?n.workerScripts[t.codecType]:[];if(Lr.length<n.maxWorkers){const s={};return Lr.push(s),Nl(s,e,t,n,a,i,o)}else{const s=Lr.find(l=>!l.busy);return s?(o1(s),Nl(s,e,t,n,a,i,o)):new Promise(l=>Rl.push({resolve:l,codecConstructor:e,options:t,webWorker:i,scripts:o}))}function a(s){if(Rl.length){const[{resolve:l,codecConstructor:d,options:c,webWorker:u,scripts:f}]=Rl.splice(0,1);l(Nl(s,d,c,n,a,u,f))}else s.worker?(o1(s),Number.isFinite(n.terminateWorkerTimeout)&&n.terminateWorkerTimeout>=0&&(s.terminateTimeout=setTimeout(()=>{Lr=Lr.filter(l=>l!=s),s.terminate()},n.terminateWorkerTimeout))):Lr=Lr.filter(l=>l!=s)}}function o1(e){e.terminateTimeout&&(clearTimeout(e.terminateTimeout),e.terminateTimeout=null)}var J5=e=>{if(typeof URL.createObjectURL=="function"){const t=()=>URL.createObjectURL(new Blob([`const{Array:t,Object:e,Math:n,Error:r,Uint8Array:i,Uint16Array:s,Uint32Array:o,Int32Array:f,DataView:c,TextEncoder:l,crypto:u,postMessage:a}=globalThis,w=[];for(let t=0;256>t;t++){let e=t;for(let t=0;8>t;t++)1&e?e=e>>>1^3988292384:e>>>=1;w[t]=e}class h{constructor(t){this.t=t||-1}append(t){let e=0|this.t;for(let n=0,r=0|t.length;r>n;n++)e=e>>>8^w[255&(e^t[n])];this.t=e}get(){return~this.t}}const d={concat(t,e){if(0===t.length||0===e.length)return t.concat(e);const n=t[t.length-1],r=d.i(n);return 32===r?t.concat(e):d.o(e,r,0|n,t.slice(0,t.length-1))},l(t){const e=t.length;if(0===e)return 0;const n=t[e-1];return 32*(e-1)+d.i(n)},u(t,e){if(32*t.length<e)return t;const r=(t=t.slice(0,n.ceil(e/32))).length;return e&=31,r>0&&e&&(t[r-1]=d.h(e,t[r-1]&2147483648>>e-1,1)),t},h:(t,e,n)=>32===t?e:(n?0|e:e<<32-t)+1099511627776*t,i:t=>n.round(t/1099511627776)||32,o(t,e,n,r){for(void 0===r&&(r=[]);e>=32;e-=32)r.push(n),n=0;if(0===e)return r.concat(t);for(let i=0;i<t.length;i++)r.push(n|t[i]>>>e),n=t[i]<<32-e;const i=t.length?t[t.length-1]:0,s=d.i(i);return r.push(d.h(e+s&31,e+s>32?n:r.pop(),1)),r}},p={p:{k(t){const e=d.l(t)/8,n=new i(e);let r;for(let i=0;e>i;i++)0==(3&i)&&(r=t[i/4]),n[i]=r>>>24,r<<=8;return n},g(t){const e=[];let n,r=0;for(n=0;n<t.length;n++)r=r<<8|t[n],3==(3&n)&&(e.push(r),r=0);return 3&n&&e.push(d.h(8*(3&n),r)),e}}},b={v:function(t){t?(this.m=t.m.slice(0),this.S=t.S.slice(0),this._=t._):this.reset()}};b.v.prototype={blockSize:512,reset:function(){const t=this;return t.m=this.I.slice(0),t.S=[],t._=0,t},update:function(t){const e=this;"string"==typeof t&&(t=p.C.g(t));const n=e.S=d.concat(e.S,t),i=e._,s=e._=i+d.l(t);if(s>9007199254740991)throw new r("Cannot hash more than 2^53 - 1 bits");const f=new o(n);let c=0;for(let t=e.blockSize+i-(e.blockSize+i&e.blockSize-1);s>=t;t+=e.blockSize)e.A(f.subarray(16*c,16*(c+1))),c+=1;return n.splice(0,16*c),e},V:function(){const t=this;let e=t.S;const r=t.m;e=d.concat(e,[d.h(1,1)]);for(let t=e.length+2;15&t;t++)e.push(0);for(e.push(n.floor(t._/4294967296)),e.push(0|t._);e.length;)t.A(e.splice(0,16));return t.reset(),r},I:[1732584193,4023233417,2562383102,271733878,3285377520],B:[1518500249,1859775393,2400959708,3395469782],D:(t,e,n,r)=>t>19?t>39?t>59?t>79?void 0:e^n^r:e&n|e&r|n&r:e^n^r:e&n|~e&r,U:(t,e)=>e<<t|e>>>32-t,A:function(e){const r=this,i=r.m,s=t(80);for(let t=0;16>t;t++)s[t]=e[t];let o=i[0],f=i[1],c=i[2],l=i[3],u=i[4];for(let t=0;79>=t;t++){16>t||(s[t]=r.U(1,s[t-3]^s[t-8]^s[t-14]^s[t-16]));const e=r.U(5,o)+r.D(t,f,c,l)+u+s[t]+r.B[n.floor(t/20)]|0;u=l,l=c,c=r.U(30,f),f=o,o=e}i[0]=i[0]+o|0,i[1]=i[1]+f|0,i[2]=i[2]+c|0,i[3]=i[3]+l|0,i[4]=i[4]+u|0}};const y={name:"PBKDF2"},k=e.assign({hash:{name:"HMAC"}},y),g=e.assign({iterations:1e3,hash:{name:"SHA-1"}},y),v=["deriveBits"],m=[8,12,16],z=[16,24,32],S=[0,0,0,0],_=p.p,I=class{constructor(t){const e=this;e.M=[[[],[],[],[],[]],[[],[],[],[],[]]],e.M[0][0][0]||e.P();const n=e.M[0][4],i=e.M[1],s=t.length;let o,f,c,l=1;if(4!==s&&6!==s&&8!==s)throw new r("invalid aes key size");for(e.B=[f=t.slice(0),c=[]],o=s;4*s+28>o;o++){let t=f[o-1];(o%s==0||8===s&&o%s==4)&&(t=n[t>>>24]<<24^n[t>>16&255]<<16^n[t>>8&255]<<8^n[255&t],o%s==0&&(t=t<<8^t>>>24^l<<24,l=l<<1^283*(l>>7))),f[o]=f[o-s]^t}for(let t=0;o;t++,o--){const e=f[3&t?o:o-4];c[t]=4>=o||4>t?e:i[0][n[e>>>24]]^i[1][n[e>>16&255]]^i[2][n[e>>8&255]]^i[3][n[255&e]]}}encrypt(t){return this.H(t,0)}decrypt(t){return this.H(t,1)}P(){const t=this.M[0],e=this.M[1],n=t[4],r=e[4],i=[],s=[];let o,f,c,l;for(let t=0;256>t;t++)s[(i[t]=t<<1^283*(t>>7))^t]=t;for(let u=o=0;!n[u];u^=f||1,o=s[o]||1){let s=o^o<<1^o<<2^o<<3^o<<4;s=s>>8^255&s^99,n[u]=s,r[s]=u,l=i[c=i[f=i[u]]];let a=16843009*l^65537*c^257*f^16843008*u,w=257*i[s]^16843008*s;for(let n=0;4>n;n++)t[n][u]=w=w<<24^w>>>8,e[n][s]=a=a<<24^a>>>8}for(let n=0;5>n;n++)t[n]=t[n].slice(0),e[n]=e[n].slice(0)}H(t,e){if(4!==t.length)throw new r("invalid aes block size");const n=this.B[e],i=n.length/4-2,s=[0,0,0,0],o=this.M[e],f=o[0],c=o[1],l=o[2],u=o[3],a=o[4];let w,h,d,p=t[0]^n[0],b=t[e?3:1]^n[1],y=t[2]^n[2],k=t[e?1:3]^n[3],g=4;for(let t=0;i>t;t++)w=f[p>>>24]^c[b>>16&255]^l[y>>8&255]^u[255&k]^n[g],h=f[b>>>24]^c[y>>16&255]^l[k>>8&255]^u[255&p]^n[g+1],d=f[y>>>24]^c[k>>16&255]^l[p>>8&255]^u[255&b]^n[g+2],k=f[k>>>24]^c[p>>16&255]^l[b>>8&255]^u[255&y]^n[g+3],g+=4,p=w,b=h,y=d;for(let t=0;4>t;t++)s[e?3&-t:t]=a[p>>>24]<<24^a[b>>16&255]<<16^a[y>>8&255]<<8^a[255&k]^n[g++],w=p,p=b,b=y,y=k,k=w;return s}},C=class{constructor(t,e){this.L=t,this.R=e,this.T=e}reset(){this.T=this.R}update(t){return this.j(this.L,t,this.T)}F(t){if(255==(t>>24&255)){let e=t>>16&255,n=t>>8&255,r=255&t;255===e?(e=0,255===n?(n=0,255===r?r=0:++r):++n):++e,t=0,t+=e<<16,t+=n<<8,t+=r}else t+=1<<24;return t}K(t){0===(t[0]=this.F(t[0]))&&(t[1]=this.F(t[1]))}j(t,e,n){let r;if(!(r=e.length))return[];const i=d.l(e);for(let i=0;r>i;i+=4){this.K(n);const r=t.encrypt(n);e[i]^=r[0],e[i+1]^=r[1],e[i+2]^=r[2],e[i+3]^=r[3]}return d.u(e,i)}},A=class{constructor(t){const e=this,n=e.O=b.v,r=[[],[]],i=n.prototype.blockSize/32;e.W=[new n,new n],t.length>i&&(t=n.hash(t));for(let e=0;i>e;e++)r[0][e]=909522486^t[e],r[1][e]=1549556828^t[e];e.W[0].update(r[0]),e.W[1].update(r[1]),e.q=new n(e.W[0])}reset(){const t=this;t.q=new t.O(t.W[0]),t.G=!1}update(t){this.G=!0,this.q.update(t)}digest(){const t=this,e=t.q.V(),n=new t.O(t.W[1]).update(e).V();return t.reset(),n}};class V{constructor(t,n,r){e.assign(this,{password:t,signed:n,J:r-1,N:new i(0)})}async append(e){const n=this;if(n.password){const i=M(e,0,m[n.J]+2);await(async(t,e,n)=>{await D(t,n,M(e,0,m[t.J]));const i=M(e,m[t.J]),s=t.keys.passwordVerification;if(s[0]!=i[0]||s[1]!=i[1])throw new r("Invalid pasword")})(n,i,n.password),n.password=null,n.X=new C(new I(n.keys.key),t.from(S)),n.Y=new A(n.keys.Z),e=M(e,m[n.J]+2)}return B(n,e,new i(e.length-10-(e.length-10)%16),0,10,!0)}flush(){const t=this,e=t.N,n=M(e,0,e.length-10),r=M(e,e.length-10);let s=new i(0);if(n.length){const e=_.g(n);t.Y.update(e);const r=t.X.update(e);s=_.k(r)}let o=!0;if(t.signed){const e=M(_.k(t.Y.digest()),0,10);for(let t=0;10>t;t++)e[t]!=r[t]&&(o=!1)}return{valid:o,data:s}}}class E{constructor(t,n){e.assign(this,{password:t,J:n-1,N:new i(0)})}async append(e){const n=this;let r=new i(0);n.password&&(r=await(async(t,e)=>{const n=u.getRandomValues(new i(m[t.J]));return await D(t,e,n),U(n,t.keys.passwordVerification)})(n,n.password),n.password=null,n.X=new C(new I(n.keys.key),t.from(S)),n.Y=new A(n.keys.Z));const s=new i(r.length+e.length-e.length%16);return s.set(r,0),B(n,e,s,r.length,0)}flush(){const t=this;let e=new i(0);if(t.N.length){const n=t.X.update(_.g(t.N));t.Y.update(n),e=_.k(n)}const n=M(_.k(t.Y.digest()),0,10);return{data:U(e,n),signature:n}}}function B(t,e,n,r,s,o){const f=e.length-s;let c;for(t.N.length&&(e=U(t.N,e),n=((t,e)=>{if(e&&e>t.length){const n=t;(t=new i(e)).set(n,0)}return t})(n,f-f%16)),c=0;f-16>=c;c+=16){const i=_.g(M(e,c,c+16));o&&t.Y.update(i);const s=t.X.update(i);o||t.Y.update(s),n.set(_.k(s),c+r)}return t.N=M(e,c),n}async function D(t,n,r){const s=(t=>{if(void 0===l){const e=new i((t=unescape(encodeURIComponent(t))).length);for(let n=0;n<e.length;n++)e[n]=t.charCodeAt(n);return e}return(new l).encode(t)})(n),o=await u.subtle.importKey("raw",s,k,!1,v),f=await u.subtle.deriveBits(e.assign({salt:r},g),o,8*(2*z[t.J]+2)),c=new i(f);t.keys={key:_.g(M(c,0,z[t.J])),Z:_.g(M(c,z[t.J],2*z[t.J])),passwordVerification:M(c,2*z[t.J])}}function U(t,e){let n=t;return t.length+e.length&&(n=new i(t.length+e.length),n.set(t,0),n.set(e,t.length)),n}function M(t,e,n){return t.subarray(e,n)}class P{constructor(t,n){e.assign(this,{password:t,passwordVerification:n}),T(this,t)}append(t){const e=this;if(e.password){const n=L(e,t.subarray(0,12));if(e.password=null,n[11]!=e.passwordVerification)throw new r("Invalid pasword");t=t.subarray(12)}return L(e,t)}flush(){return{valid:!0,data:new i(0)}}}class H{constructor(t,n){e.assign(this,{password:t,passwordVerification:n}),T(this,t)}append(t){const e=this;let n,r;if(e.password){e.password=null;const s=u.getRandomValues(new i(12));s[11]=e.passwordVerification,n=new i(t.length+s.length),n.set(R(e,s),0),r=12}else n=new i(t.length),r=0;return n.set(R(e,t),r),n}flush(){return{data:new i(0)}}}function L(t,e){const n=new i(e.length);for(let r=0;r<e.length;r++)n[r]=x(t)^e[r],j(t,n[r]);return n}function R(t,e){const n=new i(e.length);for(let r=0;r<e.length;r++)n[r]=x(t)^e[r],j(t,e[r]);return n}function T(t,e){t.keys=[305419896,591751049,878082192],t.$=new h(t.keys[0]),t.tt=new h(t.keys[2]);for(let n=0;n<e.length;n++)j(t,e.charCodeAt(n))}function j(t,e){t.$.append([e]),t.keys[0]=~t.$.get(),t.keys[1]=K(t.keys[1]+F(t.keys[0])),t.keys[1]=K(n.imul(t.keys[1],134775813)+1),t.tt.append([t.keys[1]>>>24]),t.keys[2]=~t.tt.get()}function x(t){const e=2|t.keys[2];return F(n.imul(e,1^e)>>>8)}function F(t){return 255&t}function K(t){return 4294967295&t}class O{constructor(t,{signature:n,password:r,signed:i,compressed:s,zipCrypto:o,passwordVerification:f,encryptionStrength:c},{et:l}){const u=!!r;e.assign(this,{signature:n,encrypted:u,signed:i,compressed:s,nt:s&&new t({et:l}),rt:i&&new h,zipCrypto:o,decrypt:u&&o?new P(r,f):new V(r,i,c)})}async append(t){const e=this;return e.encrypted&&t.length&&(t=await e.decrypt.append(t)),e.compressed&&t.length&&(t=await e.nt.append(t)),(!e.encrypted||e.zipCrypto)&&e.signed&&t.length&&e.rt.append(t),t}async flush(){const t=this;let e,n=new i(0);if(t.encrypted){const e=t.decrypt.flush();if(!e.valid)throw new r("Invalid signature");n=e.data}if((!t.encrypted||t.zipCrypto)&&t.signed){const n=new c(new i(4).buffer);if(e=t.rt.get(),n.setUint32(0,e),t.signature!=n.getUint32(0,!1))throw new r("Invalid signature")}return t.compressed&&(n=await t.nt.append(n)||new i(0),await t.nt.flush()),{data:n,signature:e}}}class W{constructor(t,{encrypted:n,signed:r,compressed:i,level:s,zipCrypto:o,password:f,passwordVerification:c,encryptionStrength:l},{et:u}){e.assign(this,{encrypted:n,signed:r,compressed:i,it:i&&new t({level:s||5,et:u}),rt:r&&new h,zipCrypto:o,encrypt:n&&o?new H(f,c):new E(f,l)})}async append(t){const e=this;let n=t;return e.compressed&&t.length&&(n=await e.it.append(t)),e.encrypted&&n.length&&(n=await e.encrypt.append(n)),(!e.encrypted||e.zipCrypto)&&e.signed&&t.length&&e.rt.append(t),n}async flush(){const t=this;let e,n=new i(0);if(t.compressed&&(n=await t.it.flush()||new i(0)),t.encrypted){n=await t.encrypt.append(n);const r=t.encrypt.flush();e=r.signature;const s=new i(n.length+r.data.length);s.set(n,0),s.set(r.data,n.length),n=s}return t.encrypted&&!t.zipCrypto||!t.signed||(e=t.rt.get()),{data:n,signature:e}}}const q={init(t){t.scripts&&t.scripts.length&&importScripts.apply(void 0,t.scripts);const e=t.options;let n;self.initCodec&&self.initCodec(),e.codecType.startsWith("deflate")?n=self.Deflate:e.codecType.startsWith("inflate")&&(n=self.Inflate),G=((t,e,n)=>e.codecType.startsWith("deflate")?new W(t,e,n):e.codecType.startsWith("inflate")?new O(t,e,n):void 0)(n,e,t.config)},append:async t=>({data:await G.append(t.data)}),flush:()=>G.flush()};let G;function J(e){return N(e.map((([e,n])=>new t(e).fill(n,0,e))))}function N(e){return e.reduce(((e,n)=>e.concat(t.isArray(n)?N(n):n)),[])}addEventListener("message",(async t=>{const e=t.data,n=e.type,r=q[n];if(r)try{e.data&&(e.data=new i(e.data));const t=await r(e)||{};if(t.type=n,t.data)try{t.data=t.data.buffer,a(t,[t.data])}catch(e){a(t)}else a(t)}catch(t){a({type:n,error:{message:t.message,stack:t.stack}})}}));const Q=[0,1,2,3].concat(...J([[2,4],[2,5],[4,6],[4,7],[8,8],[8,9],[16,10],[16,11],[32,12],[32,13],[64,14],[64,15],[2,0],[1,16],[1,17],[2,18],[2,19],[4,20],[4,21],[8,22],[8,23],[16,24],[16,25],[32,26],[32,27],[64,28],[64,29]]));function X(){const t=this;function e(t,e){let n=0;do{n|=1&t,t>>>=1,n<<=1}while(--e>0);return n>>>1}t.st=r=>{const i=t.ot,s=t.ct.ft,o=t.ct.lt;let f,c,l,u=-1;for(r.ut=0,r.at=573,f=0;o>f;f++)0!==i[2*f]?(r.wt[++r.ut]=u=f,r.ht[f]=0):i[2*f+1]=0;for(;2>r.ut;)l=r.wt[++r.ut]=2>u?++u:0,i[2*l]=1,r.ht[l]=0,r.dt--,s&&(r.bt-=s[2*l+1]);for(t.yt=u,f=n.floor(r.ut/2);f>=1;f--)r.kt(i,f);l=o;do{f=r.wt[1],r.wt[1]=r.wt[r.ut--],r.kt(i,1),c=r.wt[1],r.wt[--r.at]=f,r.wt[--r.at]=c,i[2*l]=i[2*f]+i[2*c],r.ht[l]=n.max(r.ht[f],r.ht[c])+1,i[2*f+1]=i[2*c+1]=l,r.wt[1]=l++,r.kt(i,1)}while(r.ut>=2);r.wt[--r.at]=r.wt[1],(e=>{const n=t.ot,r=t.ct.ft,i=t.ct.gt,s=t.ct.vt,o=t.ct.zt;let f,c,l,u,a,w,h=0;for(u=0;15>=u;u++)e.St[u]=0;for(n[2*e.wt[e.at]+1]=0,f=e.at+1;573>f;f++)c=e.wt[f],u=n[2*n[2*c+1]+1]+1,u>o&&(u=o,h++),n[2*c+1]=u,c>t.yt||(e.St[u]++,a=0,s>c||(a=i[c-s]),w=n[2*c],e.dt+=w*(u+a),r&&(e.bt+=w*(r[2*c+1]+a)));if(0!==h){do{for(u=o-1;0===e.St[u];)u--;e.St[u]--,e.St[u+1]+=2,e.St[o]--,h-=2}while(h>0);for(u=o;0!==u;u--)for(c=e.St[u];0!==c;)l=e.wt[--f],l>t.yt||(n[2*l+1]!=u&&(e.dt+=(u-n[2*l+1])*n[2*l],n[2*l+1]=u),c--)}})(r),((t,n,r)=>{const i=[];let s,o,f,c=0;for(s=1;15>=s;s++)i[s]=c=c+r[s-1]<<1;for(o=0;n>=o;o++)f=t[2*o+1],0!==f&&(t[2*o]=e(i[f]++,f))})(i,t.yt,r.St)}}function Y(t,e,n,r,i){const s=this;s.ft=t,s.gt=e,s.vt=n,s.lt=r,s.zt=i}X._t=[0,1,2,3,4,5,6,7].concat(...J([[2,8],[2,9],[2,10],[2,11],[4,12],[4,13],[4,14],[4,15],[8,16],[8,17],[8,18],[8,19],[16,20],[16,21],[16,22],[16,23],[32,24],[32,25],[32,26],[31,27],[1,28]])),X.It=[0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224,0],X.Ct=[0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576],X.At=t=>256>t?Q[t]:Q[256+(t>>>7)],X.Vt=[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],X.Et=[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],X.Bt=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],X.Dt=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];const Z=J([[144,8],[112,9],[24,7],[8,8]]);Y.Ut=N([12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254,1,129,65,193,33,161,97,225,17,145,81,209,49,177,113,241,9,137,73,201,41,169,105,233,25,153,89,217,57,185,121,249,5,133,69,197,37,165,101,229,21,149,85,213,53,181,117,245,13,141,77,205,45,173,109,237,29,157,93,221,61,189,125,253,19,275,147,403,83,339,211,467,51,307,179,435,115,371,243,499,11,267,139,395,75,331,203,459,43,299,171,427,107,363,235,491,27,283,155,411,91,347,219,475,59,315,187,443,123,379,251,507,7,263,135,391,71,327,199,455,39,295,167,423,103,359,231,487,23,279,151,407,87,343,215,471,55,311,183,439,119,375,247,503,15,271,143,399,79,335,207,463,47,303,175,431,111,367,239,495,31,287,159,415,95,351,223,479,63,319,191,447,127,383,255,511,0,64,32,96,16,80,48,112,8,72,40,104,24,88,56,120,4,68,36,100,20,84,52,116,3,131,67,195,35,163,99,227].map(((t,e)=>[t,Z[e]])));const $=J([[30,5]]);function tt(t,e,n,r,i){const s=this;s.Mt=t,s.Pt=e,s.Ht=n,s.Lt=r,s.Rt=i}Y.Tt=N([0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23].map(((t,e)=>[t,$[e]]))),Y.jt=new Y(Y.Ut,X.Vt,257,286,15),Y.xt=new Y(Y.Tt,X.Et,0,30,15),Y.Ft=new Y(null,X.Bt,0,19,7);const et=[new tt(0,0,0,0,0),new tt(4,4,8,4,1),new tt(4,5,16,8,1),new tt(4,6,32,32,1),new tt(4,4,16,16,2),new tt(8,16,32,32,2),new tt(8,16,128,128,2),new tt(8,32,128,256,2),new tt(32,128,258,1024,2),new tt(32,258,258,4096,2)],nt=["need dictionary","stream end","","","stream error","data error","","buffer error","",""];function rt(t,e,n,r){const i=t[2*e],s=t[2*n];return s>i||i==s&&r[e]<=r[n]}function it(){const t=this;let e,r,o,f,c,l,u,a,w,h,d,p,b,y,k,g,v,m,z,S,_,I,C,A,V,E,B,D,U,M,P,H,L;const R=new X,T=new X,j=new X;let x,F,K,O,W,q;function G(){let e;for(e=0;286>e;e++)P[2*e]=0;for(e=0;30>e;e++)H[2*e]=0;for(e=0;19>e;e++)L[2*e]=0;P[512]=1,t.dt=t.bt=0,F=K=0}function J(t,e){let n,r=-1,i=t[1],s=0,o=7,f=4;0===i&&(o=138,f=3),t[2*(e+1)+1]=65535;for(let c=0;e>=c;c++)n=i,i=t[2*(c+1)+1],++s<o&&n==i||(f>s?L[2*n]+=s:0!==n?(n!=r&&L[2*n]++,L[32]++):s>10?L[36]++:L[34]++,s=0,r=n,0===i?(o=138,f=3):n==i?(o=6,f=3):(o=7,f=4))}function N(e){t.Kt[t.pending++]=e}function Q(t){N(255&t),N(t>>>8&255)}function Z(t,e){let n;const r=e;q>16-r?(n=t,W|=n<<q&65535,Q(W),W=n>>>16-q,q+=r-16):(W|=t<<q&65535,q+=r)}function $(t,e){const n=2*t;Z(65535&e[n],65535&e[n+1])}function tt(t,e){let n,r,i=-1,s=t[1],o=0,f=7,c=4;for(0===s&&(f=138,c=3),n=0;e>=n;n++)if(r=s,s=t[2*(n+1)+1],++o>=f||r!=s){if(c>o)do{$(r,L)}while(0!=--o);else 0!==r?(r!=i&&($(r,L),o--),$(16,L),Z(o-3,2)):o>10?($(18,L),Z(o-11,7)):($(17,L),Z(o-3,3));o=0,i=r,0===s?(f=138,c=3):r==s?(f=6,c=3):(f=7,c=4)}}function it(){16==q?(Q(W),W=0,q=0):8>q||(N(255&W),W>>>=8,q-=8)}function st(e,r){let i,s,o;if(t.Ot[F]=e,t.Wt[F]=255&r,F++,0===e?P[2*r]++:(K++,e--,P[2*(X._t[r]+256+1)]++,H[2*X.At(e)]++),0==(8191&F)&&B>2){for(i=8*F,s=_-v,o=0;30>o;o++)i+=H[2*o]*(5+X.Et[o]);if(i>>>=3,K<n.floor(F/2)&&i<n.floor(s/2))return!0}return F==x-1}function ot(e,n){let r,i,s,o,f=0;if(0!==F)do{r=t.Ot[f],i=t.Wt[f],f++,0===r?$(i,e):(s=X._t[i],$(s+256+1,e),o=X.Vt[s],0!==o&&(i-=X.It[s],Z(i,o)),r--,s=X.At(r),$(s,n),o=X.Et[s],0!==o&&(r-=X.Ct[s],Z(r,o)))}while(F>f);$(256,e),O=e[513]}function ft(){q>8?Q(W):q>0&&N(255&W),W=0,q=0}function ct(e,n,r){Z(0+(r?1:0),3),((e,n)=>{ft(),O=8,Q(n),Q(~n),t.Kt.set(a.subarray(e,e+n),t.pending),t.pending+=n})(e,n)}function lt(n){((e,n,r)=>{let i,s,o=0;B>0?(R.st(t),T.st(t),o=(()=>{let e;for(J(P,R.yt),J(H,T.yt),j.st(t),e=18;e>=3&&0===L[2*X.Dt[e]+1];e--);return t.dt+=14+3*(e+1),e})(),i=t.dt+3+7>>>3,s=t.bt+3+7>>>3,s>i||(i=s)):i=s=n+5,n+4>i||-1==e?s==i?(Z(2+(r?1:0),3),ot(Y.Ut,Y.Tt)):(Z(4+(r?1:0),3),((t,e,n)=>{let r;for(Z(t-257,5),Z(e-1,5),Z(n-4,4),r=0;n>r;r++)Z(L[2*X.Dt[r]+1],3);tt(P,t-1),tt(H,e-1)})(R.yt+1,T.yt+1,o+1),ot(P,H)):ct(e,n,r),G(),r&&ft()})(0>v?-1:v,_-v,n),v=_,e.qt()}function ut(){let t,n,r,i;do{if(i=w-C-_,0===i&&0===_&&0===C)i=c;else if(-1==i)i--;else if(_>=c+c-262){a.set(a.subarray(c,c+c),0),I-=c,_-=c,v-=c,t=b,r=t;do{n=65535&d[--r],d[r]=c>n?0:n-c}while(0!=--t);t=c,r=t;do{n=65535&h[--r],h[r]=c>n?0:n-c}while(0!=--t);i+=c}if(0===e.Gt)return;t=e.Jt(a,_+C,i),C+=t,3>C||(p=255&a[_],p=(p<<g^255&a[_+1])&k)}while(262>C&&0!==e.Gt)}function at(t){let e,n,r=V,i=_,s=A;const o=_>c-262?_-(c-262):0;let f=M;const l=u,w=_+258;let d=a[i+s-1],p=a[i+s];U>A||(r>>=2),f>C&&(f=C);do{if(e=t,a[e+s]==p&&a[e+s-1]==d&&a[e]==a[i]&&a[++e]==a[i+1]){i+=2,e++;do{}while(a[++i]==a[++e]&&a[++i]==a[++e]&&a[++i]==a[++e]&&a[++i]==a[++e]&&a[++i]==a[++e]&&a[++i]==a[++e]&&a[++i]==a[++e]&&a[++i]==a[++e]&&w>i);if(n=258-(w-i),i=w-258,n>s){if(I=t,s=n,n>=f)break;d=a[i+s-1],p=a[i+s]}}}while((t=65535&h[t&l])>o&&0!=--r);return s>C?C:s}t.ht=[],t.St=[],t.wt=[],P=[],H=[],L=[],t.kt=(e,n)=>{const r=t.wt,i=r[n];let s=n<<1;for(;s<=t.ut&&(s<t.ut&&rt(e,r[s+1],r[s],t.ht)&&s++,!rt(e,i,r[s],t.ht));)r[n]=r[s],n=s,s<<=1;r[n]=i},t.Nt=(e,z,I,F,K,J)=>(F||(F=8),K||(K=8),J||(J=0),e.Qt=null,-1==z&&(z=6),1>K||K>9||8!=F||9>I||I>15||0>z||z>9||0>J||J>2?-2:(e.Xt=t,l=I,c=1<<l,u=c-1,y=K+7,b=1<<y,k=b-1,g=n.floor((y+3-1)/3),a=new i(2*c),h=[],d=[],x=1<<K+6,t.Kt=new i(4*x),o=4*x,t.Ot=new s(x),t.Wt=new i(x),B=z,D=J,(e=>(e.Yt=e.Zt=0,e.Qt=null,t.pending=0,t.$t=0,r=113,f=0,R.ot=P,R.ct=Y.jt,T.ot=H,T.ct=Y.xt,j.ot=L,j.ct=Y.Ft,W=0,q=0,O=8,G(),(()=>{w=2*c,d[b-1]=0;for(let t=0;b-1>t;t++)d[t]=0;E=et[B].Pt,U=et[B].Mt,M=et[B].Ht,V=et[B].Lt,_=0,v=0,C=0,m=A=2,S=0,p=0})(),0))(e))),t.te=()=>42!=r&&113!=r&&666!=r?-2:(t.Wt=null,t.Ot=null,t.Kt=null,d=null,h=null,a=null,t.Xt=null,113==r?-3:0),t.ee=(t,e,n)=>{let r=0;return-1==e&&(e=6),0>e||e>9||0>n||n>2?-2:(et[B].Rt!=et[e].Rt&&0!==t.Yt&&(r=t.it(1)),B!=e&&(B=e,E=et[B].Pt,U=et[B].Mt,M=et[B].Ht,V=et[B].Lt),D=n,r)},t.ne=(t,e,n)=>{let i,s=n,o=0;if(!e||42!=r)return-2;if(3>s)return 0;for(s>c-262&&(s=c-262,o=n-s),a.set(e.subarray(o,o+s),0),_=s,v=s,p=255&a[0],p=(p<<g^255&a[1])&k,i=0;s-3>=i;i++)p=(p<<g^255&a[i+2])&k,h[i&u]=d[p],d[p]=i;return 0},t.it=(n,i)=>{let s,w,y,V,U;if(i>4||0>i)return-2;if(!n.re||!n.ie&&0!==n.Gt||666==r&&4!=i)return n.Qt=nt[4],-2;if(0===n.se)return n.Qt=nt[7],-5;var M;if(e=n,V=f,f=i,42==r&&(w=8+(l-8<<4)<<8,y=(B-1&255)>>1,y>3&&(y=3),w|=y<<6,0!==_&&(w|=32),w+=31-w%31,r=113,N((M=w)>>8&255),N(255&M)),0!==t.pending){if(e.qt(),0===e.se)return f=-1,0}else if(0===e.Gt&&V>=i&&4!=i)return e.Qt=nt[7],-5;if(666==r&&0!==e.Gt)return n.Qt=nt[7],-5;if(0!==e.Gt||0!==C||0!=i&&666!=r){switch(U=-1,et[B].Rt){case 0:U=(t=>{let n,r=65535;for(r>o-5&&(r=o-5);;){if(1>=C){if(ut(),0===C&&0==t)return 0;if(0===C)break}if(_+=C,C=0,n=v+r,(0===_||_>=n)&&(C=_-n,_=n,lt(!1),0===e.se))return 0;if(_-v>=c-262&&(lt(!1),0===e.se))return 0}return lt(4==t),0===e.se?4==t?2:0:4==t?3:1})(i);break;case 1:U=(t=>{let n,r=0;for(;;){if(262>C){if(ut(),262>C&&0==t)return 0;if(0===C)break}if(3>C||(p=(p<<g^255&a[_+2])&k,r=65535&d[p],h[_&u]=d[p],d[p]=_),0===r||(_-r&65535)>c-262||2!=D&&(m=at(r)),3>m)n=st(0,255&a[_]),C--,_++;else if(n=st(_-I,m-3),C-=m,m>E||3>C)_+=m,m=0,p=255&a[_],p=(p<<g^255&a[_+1])&k;else{m--;do{_++,p=(p<<g^255&a[_+2])&k,r=65535&d[p],h[_&u]=d[p],d[p]=_}while(0!=--m);_++}if(n&&(lt(!1),0===e.se))return 0}return lt(4==t),0===e.se?4==t?2:0:4==t?3:1})(i);break;case 2:U=(t=>{let n,r,i=0;for(;;){if(262>C){if(ut(),262>C&&0==t)return 0;if(0===C)break}if(3>C||(p=(p<<g^255&a[_+2])&k,i=65535&d[p],h[_&u]=d[p],d[p]=_),A=m,z=I,m=2,0!==i&&E>A&&c-262>=(_-i&65535)&&(2!=D&&(m=at(i)),5>=m&&(1==D||3==m&&_-I>4096)&&(m=2)),3>A||m>A)if(0!==S){if(n=st(0,255&a[_-1]),n&<(!1),_++,C--,0===e.se)return 0}else S=1,_++,C--;else{r=_+C-3,n=st(_-1-z,A-3),C-=A-1,A-=2;do{++_>r||(p=(p<<g^255&a[_+2])&k,i=65535&d[p],h[_&u]=d[p],d[p]=_)}while(0!=--A);if(S=0,m=2,_++,n&&(lt(!1),0===e.se))return 0}}return 0!==S&&(n=st(0,255&a[_-1]),S=0),lt(4==t),0===e.se?4==t?2:0:4==t?3:1})(i)}if(2!=U&&3!=U||(r=666),0==U||2==U)return 0===e.se&&(f=-1),0;if(1==U){if(1==i)Z(2,3),$(256,Y.Ut),it(),9>1+O+10-q&&(Z(2,3),$(256,Y.Ut),it()),O=7;else if(ct(0,0,!1),3==i)for(s=0;b>s;s++)d[s]=0;if(e.qt(),0===e.se)return f=-1,0}}return 4!=i?0:1}}function st(){const t=this;t.oe=0,t.fe=0,t.Gt=0,t.Yt=0,t.se=0,t.Zt=0}function ot(t){const e=new st,s=(o=t&&t.et?t.et:65536)+5*(n.floor(o/16383)+1);var o;const f=new i(s);let c=t?t.level:-1;void 0===c&&(c=-1),e.Nt(c),e.re=f,this.append=(t,n)=>{let o,c,l=0,u=0,a=0;const w=[];if(t.length){e.oe=0,e.ie=t,e.Gt=t.length;do{if(e.fe=0,e.se=s,o=e.it(0),0!=o)throw new r("deflating: "+e.Qt);e.fe&&(e.fe==s?w.push(new i(f)):w.push(f.slice(0,e.fe))),a+=e.fe,n&&e.oe>0&&e.oe!=l&&(n(e.oe),l=e.oe)}while(e.Gt>0||0===e.se);return w.length>1?(c=new i(a),w.forEach((t=>{c.set(t,u),u+=t.length}))):c=w[0]||new i(0),c}},this.flush=()=>{let t,n,o=0,c=0;const l=[];do{if(e.fe=0,e.se=s,t=e.it(4),1!=t&&0!=t)throw new r("deflating: "+e.Qt);s-e.se>0&&l.push(f.slice(0,e.fe)),c+=e.fe}while(e.Gt>0||0===e.se);return e.te(),n=new i(c),l.forEach((t=>{n.set(t,o),o+=t.length})),n}}st.prototype={Nt:function(t,e){const n=this;return n.Xt=new it,e||(e=15),n.Xt.Nt(n,t,e)},it:function(t){const e=this;return e.Xt?e.Xt.it(e,t):-2},te:function(){const t=this;if(!t.Xt)return-2;const e=t.Xt.te();return t.Xt=null,e},ee:function(t,e){const n=this;return n.Xt?n.Xt.ee(n,t,e):-2},ne:function(t,e){const n=this;return n.Xt?n.Xt.ne(n,t,e):-2},Jt:function(t,e,n){const r=this;let i=r.Gt;return i>n&&(i=n),0===i?0:(r.Gt-=i,t.set(r.ie.subarray(r.oe,r.oe+i),e),r.oe+=i,r.Yt+=i,i)},qt:function(){const t=this;let e=t.Xt.pending;e>t.se&&(e=t.se),0!==e&&(t.re.set(t.Xt.Kt.subarray(t.Xt.$t,t.Xt.$t+e),t.fe),t.fe+=e,t.Xt.$t+=e,t.Zt+=e,t.se-=e,t.Xt.pending-=e,0===t.Xt.pending&&(t.Xt.$t=0))}};const ft=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],ct=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],lt=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],ut=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],at=[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,112,112],wt=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],ht=[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];function dt(){let t,e,n,r,i,s;function o(t,e,o,f,c,l,u,a,w,h,d){let p,b,y,k,g,v,m,z,S,_,I,C,A,V,E;_=0,g=o;do{n[t[e+_]]++,_++,g--}while(0!==g);if(n[0]==o)return u[0]=-1,a[0]=0,0;for(z=a[0],v=1;15>=v&&0===n[v];v++);for(m=v,v>z&&(z=v),g=15;0!==g&&0===n[g];g--);for(y=g,z>g&&(z=g),a[0]=z,V=1<<v;g>v;v++,V<<=1)if(0>(V-=n[v]))return-3;if(0>(V-=n[g]))return-3;for(n[g]+=V,s[1]=v=0,_=1,A=2;0!=--g;)s[A]=v+=n[_],A++,_++;g=0,_=0;do{0!==(v=t[e+_])&&(d[s[v]++]=g),_++}while(++g<o);for(o=s[y],s[0]=g=0,_=0,k=-1,C=-z,i[0]=0,I=0,E=0;y>=m;m++)for(p=n[m];0!=p--;){for(;m>C+z;){if(k++,C+=z,E=y-C,E=E>z?z:E,(b=1<<(v=m-C))>p+1&&(b-=p+1,A=m,E>v))for(;++v<E&&(b<<=1)>n[++A];)b-=n[A];if(E=1<<v,h[0]+E>1440)return-3;i[k]=I=h[0],h[0]+=E,0!==k?(s[k]=g,r[0]=v,r[1]=z,v=g>>>C-z,r[2]=I-i[k-1]-v,w.set(r,3*(i[k-1]+v))):u[0]=I}for(r[1]=m-C,o>_?d[_]<f?(r[0]=256>d[_]?0:96,r[2]=d[_++]):(r[0]=l[d[_]-f]+16+64,r[2]=c[d[_++]-f]):r[0]=192,b=1<<m-C,v=g>>>C;E>v;v+=b)w.set(r,3*(I+v));for(v=1<<m-1;0!=(g&v);v>>>=1)g^=v;for(g^=v,S=(1<<C)-1;(g&S)!=s[k];)k--,C-=z,S=(1<<C)-1}return 0!==V&&1!=y?-5:0}function c(o){let c;for(t||(t=[],e=[],n=new f(16),r=[],i=new f(15),s=new f(16)),e.length<o&&(e=[]),c=0;o>c;c++)e[c]=0;for(c=0;16>c;c++)n[c]=0;for(c=0;3>c;c++)r[c]=0;i.set(n.subarray(0,15),0),s.set(n.subarray(0,16),0)}this.ce=(n,r,i,s,f)=>{let l;return c(19),t[0]=0,l=o(n,0,19,19,null,null,i,r,s,t,e),-3==l?f.Qt="oversubscribed dynamic bit lengths tree":-5!=l&&0!==r[0]||(f.Qt="incomplete dynamic bit lengths tree",l=-3),l},this.le=(n,r,i,s,f,l,u,a,w)=>{let h;return c(288),t[0]=0,h=o(i,0,n,257,ut,at,l,s,a,t,e),0!=h||0===s[0]?(-3==h?w.Qt="oversubscribed literal/length tree":-4!=h&&(w.Qt="incomplete literal/length tree",h=-3),h):(c(288),h=o(i,n,r,0,wt,ht,u,f,a,t,e),0!=h||0===f[0]&&n>257?(-3==h?w.Qt="oversubscribed distance tree":-5==h?(w.Qt="incomplete distance tree",h=-3):-4!=h&&(w.Qt="empty distance tree with lengths",h=-3),h):0)}}function pt(){const t=this;let e,n,r,i,s=0,o=0,f=0,c=0,l=0,u=0,a=0,w=0,h=0,d=0;function p(t,e,n,r,i,s,o,f){let c,l,u,a,w,h,d,p,b,y,k,g,v,m,z,S;d=f.oe,p=f.Gt,w=o.ue,h=o.ae,b=o.write,y=b<o.read?o.read-b-1:o.end-b,k=ft[t],g=ft[e];do{for(;20>h;)p--,w|=(255&f.we(d++))<<h,h+=8;if(c=w&k,l=n,u=r,S=3*(u+c),0!==(a=l[S]))for(;;){if(w>>=l[S+1],h-=l[S+1],0!=(16&a)){for(a&=15,v=l[S+2]+(w&ft[a]),w>>=a,h-=a;15>h;)p--,w|=(255&f.we(d++))<<h,h+=8;for(c=w&g,l=i,u=s,S=3*(u+c),a=l[S];;){if(w>>=l[S+1],h-=l[S+1],0!=(16&a)){for(a&=15;a>h;)p--,w|=(255&f.we(d++))<<h,h+=8;if(m=l[S+2]+(w&ft[a]),w>>=a,h-=a,y-=v,m>b){z=b-m;do{z+=o.end}while(0>z);if(a=o.end-z,v>a){if(v-=a,b-z>0&&a>b-z)do{o.he[b++]=o.he[z++]}while(0!=--a);else o.he.set(o.he.subarray(z,z+a),b),b+=a,z+=a,a=0;z=0}}else z=b-m,b-z>0&&2>b-z?(o.he[b++]=o.he[z++],o.he[b++]=o.he[z++],v-=2):(o.he.set(o.he.subarray(z,z+2),b),b+=2,z+=2,v-=2);if(b-z>0&&v>b-z)do{o.he[b++]=o.he[z++]}while(0!=--v);else o.he.set(o.he.subarray(z,z+v),b),b+=v,z+=v,v=0;break}if(0!=(64&a))return f.Qt="invalid distance code",v=f.Gt-p,v=v>h>>3?h>>3:v,p+=v,d-=v,h-=v<<3,o.ue=w,o.ae=h,f.Gt=p,f.Yt+=d-f.oe,f.oe=d,o.write=b,-3;c+=l[S+2],c+=w&ft[a],S=3*(u+c),a=l[S]}break}if(0!=(64&a))return 0!=(32&a)?(v=f.Gt-p,v=v>h>>3?h>>3:v,p+=v,d-=v,h-=v<<3,o.ue=w,o.ae=h,f.Gt=p,f.Yt+=d-f.oe,f.oe=d,o.write=b,1):(f.Qt="invalid literal/length code",v=f.Gt-p,v=v>h>>3?h>>3:v,p+=v,d-=v,h-=v<<3,o.ue=w,o.ae=h,f.Gt=p,f.Yt+=d-f.oe,f.oe=d,o.write=b,-3);if(c+=l[S+2],c+=w&ft[a],S=3*(u+c),0===(a=l[S])){w>>=l[S+1],h-=l[S+1],o.he[b++]=l[S+2],y--;break}}else w>>=l[S+1],h-=l[S+1],o.he[b++]=l[S+2],y--}while(y>=258&&p>=10);return v=f.Gt-p,v=v>h>>3?h>>3:v,p+=v,d-=v,h-=v<<3,o.ue=w,o.ae=h,f.Gt=p,f.Yt+=d-f.oe,f.oe=d,o.write=b,0}t.init=(t,s,o,f,c,l)=>{e=0,a=t,w=s,r=o,h=f,i=c,d=l,n=null},t.de=(t,b,y)=>{let k,g,v,m,z,S,_,I=0,C=0,A=0;for(A=b.oe,m=b.Gt,I=t.ue,C=t.ae,z=t.write,S=z<t.read?t.read-z-1:t.end-z;;)switch(e){case 0:if(S>=258&&m>=10&&(t.ue=I,t.ae=C,b.Gt=m,b.Yt+=A-b.oe,b.oe=A,t.write=z,y=p(a,w,r,h,i,d,t,b),A=b.oe,m=b.Gt,I=t.ue,C=t.ae,z=t.write,S=z<t.read?t.read-z-1:t.end-z,0!=y)){e=1==y?7:9;break}f=a,n=r,o=h,e=1;case 1:for(k=f;k>C;){if(0===m)return t.ue=I,t.ae=C,b.Gt=m,b.Yt+=A-b.oe,b.oe=A,t.write=z,t.pe(b,y);y=0,m--,I|=(255&b.we(A++))<<C,C+=8}if(g=3*(o+(I&ft[k])),I>>>=n[g+1],C-=n[g+1],v=n[g],0===v){c=n[g+2],e=6;break}if(0!=(16&v)){l=15&v,s=n[g+2],e=2;break}if(0==(64&v)){f=v,o=g/3+n[g+2];break}if(0!=(32&v)){e=7;break}return e=9,b.Qt="invalid literal/length code",y=-3,t.ue=I,t.ae=C,b.Gt=m,b.Yt+=A-b.oe,b.oe=A,t.write=z,t.pe(b,y);case 2:for(k=l;k>C;){if(0===m)return t.ue=I,t.ae=C,b.Gt=m,b.Yt+=A-b.oe,b.oe=A,t.write=z,t.pe(b,y);y=0,m--,I|=(255&b.we(A++))<<C,C+=8}s+=I&ft[k],I>>=k,C-=k,f=w,n=i,o=d,e=3;case 3:for(k=f;k>C;){if(0===m)return t.ue=I,t.ae=C,b.Gt=m,b.Yt+=A-b.oe,b.oe=A,t.write=z,t.pe(b,y);y=0,m--,I|=(255&b.we(A++))<<C,C+=8}if(g=3*(o+(I&ft[k])),I>>=n[g+1],C-=n[g+1],v=n[g],0!=(16&v)){l=15&v,u=n[g+2],e=4;break}if(0==(64&v)){f=v,o=g/3+n[g+2];break}return e=9,b.Qt="invalid distance code",y=-3,t.ue=I,t.ae=C,b.Gt=m,b.Yt+=A-b.oe,b.oe=A,t.write=z,t.pe(b,y);case 4:for(k=l;k>C;){if(0===m)return t.ue=I,t.ae=C,b.Gt=m,b.Yt+=A-b.oe,b.oe=A,t.write=z,t.pe(b,y);y=0,m--,I|=(255&b.we(A++))<<C,C+=8}u+=I&ft[k],I>>=k,C-=k,e=5;case 5:for(_=z-u;0>_;)_+=t.end;for(;0!==s;){if(0===S&&(z==t.end&&0!==t.read&&(z=0,S=z<t.read?t.read-z-1:t.end-z),0===S&&(t.write=z,y=t.pe(b,y),z=t.write,S=z<t.read?t.read-z-1:t.end-z,z==t.end&&0!==t.read&&(z=0,S=z<t.read?t.read-z-1:t.end-z),0===S)))return t.ue=I,t.ae=C,b.Gt=m,b.Yt+=A-b.oe,b.oe=A,t.write=z,t.pe(b,y);t.he[z++]=t.he[_++],S--,_==t.end&&(_=0),s--}e=0;break;case 6:if(0===S&&(z==t.end&&0!==t.read&&(z=0,S=z<t.read?t.read-z-1:t.end-z),0===S&&(t.write=z,y=t.pe(b,y),z=t.write,S=z<t.read?t.read-z-1:t.end-z,z==t.end&&0!==t.read&&(z=0,S=z<t.read?t.read-z-1:t.end-z),0===S)))return t.ue=I,t.ae=C,b.Gt=m,b.Yt+=A-b.oe,b.oe=A,t.write=z,t.pe(b,y);y=0,t.he[z++]=c,S--,e=0;break;case 7:if(C>7&&(C-=8,m++,A--),t.write=z,y=t.pe(b,y),z=t.write,S=z<t.read?t.read-z-1:t.end-z,t.read!=t.write)return t.ue=I,t.ae=C,b.Gt=m,b.Yt+=A-b.oe,b.oe=A,t.write=z,t.pe(b,y);e=8;case 8:return y=1,t.ue=I,t.ae=C,b.Gt=m,b.Yt+=A-b.oe,b.oe=A,t.write=z,t.pe(b,y);case 9:return y=-3,t.ue=I,t.ae=C,b.Gt=m,b.Yt+=A-b.oe,b.oe=A,t.write=z,t.pe(b,y);default:return y=-2,t.ue=I,t.ae=C,b.Gt=m,b.Yt+=A-b.oe,b.oe=A,t.write=z,t.pe(b,y)}},t.be=()=>{}}dt.ye=(t,e,n,r)=>(t[0]=9,e[0]=5,n[0]=ct,r[0]=lt,0);const bt=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function yt(t,e){const n=this;let r,s=0,o=0,c=0,l=0;const u=[0],a=[0],w=new pt;let h=0,d=new f(4320);const p=new dt;n.ae=0,n.ue=0,n.he=new i(e),n.end=e,n.read=0,n.write=0,n.reset=(t,e)=>{e&&(e[0]=0),6==s&&w.be(t),s=0,n.ae=0,n.ue=0,n.read=n.write=0},n.reset(t,null),n.pe=(t,e)=>{let r,i,s;return i=t.fe,s=n.read,r=(s>n.write?n.end:n.write)-s,r>t.se&&(r=t.se),0!==r&&-5==e&&(e=0),t.se-=r,t.Zt+=r,t.re.set(n.he.subarray(s,s+r),i),i+=r,s+=r,s==n.end&&(s=0,n.write==n.end&&(n.write=0),r=n.write-s,r>t.se&&(r=t.se),0!==r&&-5==e&&(e=0),t.se-=r,t.Zt+=r,t.re.set(n.he.subarray(s,s+r),i),i+=r,s+=r),t.fe=i,n.read=s,e},n.de=(t,e)=>{let i,f,b,y,k,g,v,m;for(y=t.oe,k=t.Gt,f=n.ue,b=n.ae,g=n.write,v=g<n.read?n.read-g-1:n.end-g;;){let z,S,_,I,C,A,V,E;switch(s){case 0:for(;3>b;){if(0===k)return n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e);e=0,k--,f|=(255&t.we(y++))<<b,b+=8}switch(i=7&f,h=1&i,i>>>1){case 0:f>>>=3,b-=3,i=7&b,f>>>=i,b-=i,s=1;break;case 1:z=[],S=[],_=[[]],I=[[]],dt.ye(z,S,_,I),w.init(z[0],S[0],_[0],0,I[0],0),f>>>=3,b-=3,s=6;break;case 2:f>>>=3,b-=3,s=3;break;case 3:return f>>>=3,b-=3,s=9,t.Qt="invalid block type",e=-3,n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e)}break;case 1:for(;32>b;){if(0===k)return n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e);e=0,k--,f|=(255&t.we(y++))<<b,b+=8}if((~f>>>16&65535)!=(65535&f))return s=9,t.Qt="invalid stored block lengths",e=-3,n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e);o=65535&f,f=b=0,s=0!==o?2:0!==h?7:0;break;case 2:if(0===k)return n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e);if(0===v&&(g==n.end&&0!==n.read&&(g=0,v=g<n.read?n.read-g-1:n.end-g),0===v&&(n.write=g,e=n.pe(t,e),g=n.write,v=g<n.read?n.read-g-1:n.end-g,g==n.end&&0!==n.read&&(g=0,v=g<n.read?n.read-g-1:n.end-g),0===v)))return n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e);if(e=0,i=o,i>k&&(i=k),i>v&&(i=v),n.he.set(t.Jt(y,i),g),y+=i,k-=i,g+=i,v-=i,0!=(o-=i))break;s=0!==h?7:0;break;case 3:for(;14>b;){if(0===k)return n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e);e=0,k--,f|=(255&t.we(y++))<<b,b+=8}if(c=i=16383&f,(31&i)>29||(i>>5&31)>29)return s=9,t.Qt="too many length or distance symbols",e=-3,n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e);if(i=258+(31&i)+(i>>5&31),!r||r.length<i)r=[];else for(m=0;i>m;m++)r[m]=0;f>>>=14,b-=14,l=0,s=4;case 4:for(;4+(c>>>10)>l;){for(;3>b;){if(0===k)return n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e);e=0,k--,f|=(255&t.we(y++))<<b,b+=8}r[bt[l++]]=7&f,f>>>=3,b-=3}for(;19>l;)r[bt[l++]]=0;if(u[0]=7,i=p.ce(r,u,a,d,t),0!=i)return-3==(e=i)&&(r=null,s=9),n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e);l=0,s=5;case 5:for(;i=c,258+(31&i)+(i>>5&31)>l;){let o,w;for(i=u[0];i>b;){if(0===k)return n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e);e=0,k--,f|=(255&t.we(y++))<<b,b+=8}if(i=d[3*(a[0]+(f&ft[i]))+1],w=d[3*(a[0]+(f&ft[i]))+2],16>w)f>>>=i,b-=i,r[l++]=w;else{for(m=18==w?7:w-14,o=18==w?11:3;i+m>b;){if(0===k)return n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e);e=0,k--,f|=(255&t.we(y++))<<b,b+=8}if(f>>>=i,b-=i,o+=f&ft[m],f>>>=m,b-=m,m=l,i=c,m+o>258+(31&i)+(i>>5&31)||16==w&&1>m)return r=null,s=9,t.Qt="invalid bit length repeat",e=-3,n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e);w=16==w?r[m-1]:0;do{r[m++]=w}while(0!=--o);l=m}}if(a[0]=-1,C=[],A=[],V=[],E=[],C[0]=9,A[0]=6,i=c,i=p.le(257+(31&i),1+(i>>5&31),r,C,A,V,E,d,t),0!=i)return-3==i&&(r=null,s=9),e=i,n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e);w.init(C[0],A[0],d,V[0],d,E[0]),s=6;case 6:if(n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,1!=(e=w.de(n,t,e)))return n.pe(t,e);if(e=0,w.be(t),y=t.oe,k=t.Gt,f=n.ue,b=n.ae,g=n.write,v=g<n.read?n.read-g-1:n.end-g,0===h){s=0;break}s=7;case 7:if(n.write=g,e=n.pe(t,e),g=n.write,v=g<n.read?n.read-g-1:n.end-g,n.read!=n.write)return n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e);s=8;case 8:return e=1,n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e);case 9:return e=-3,n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e);default:return e=-2,n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e)}}},n.be=t=>{n.reset(t,null),n.he=null,d=null},n.ke=(t,e,r)=>{n.he.set(t.subarray(e,e+r),0),n.read=n.write=r},n.ge=()=>1==s?1:0}const kt=[0,0,255,255];function gt(){const t=this;function e(t){return t&&t.ve?(t.Yt=t.Zt=0,t.Qt=null,t.ve.mode=7,t.ve.me.reset(t,null),0):-2}t.mode=0,t.method=0,t.ze=[0],t.Se=0,t.marker=0,t._e=0,t.Ie=e=>(t.me&&t.me.be(e),t.me=null,0),t.Ce=(n,r)=>(n.Qt=null,t.me=null,8>r||r>15?(t.Ie(n),-2):(t._e=r,n.ve.me=new yt(n,1<<r),e(n),0)),t.nt=(t,e)=>{let n,r;if(!t||!t.ve||!t.ie)return-2;const i=t.ve;for(e=4==e?-5:0,n=-5;;)switch(i.mode){case 0:if(0===t.Gt)return n;if(n=e,t.Gt--,t.Yt++,8!=(15&(i.method=t.we(t.oe++)))){i.mode=13,t.Qt="unknown compression method",i.marker=5;break}if(8+(i.method>>4)>i._e){i.mode=13,t.Qt="invalid win size",i.marker=5;break}i.mode=1;case 1:if(0===t.Gt)return n;if(n=e,t.Gt--,t.Yt++,r=255&t.we(t.oe++),((i.method<<8)+r)%31!=0){i.mode=13,t.Qt="incorrect header check",i.marker=5;break}if(0==(32&r)){i.mode=7;break}i.mode=2;case 2:if(0===t.Gt)return n;n=e,t.Gt--,t.Yt++,i.Se=(255&t.we(t.oe++))<<24&4278190080,i.mode=3;case 3:if(0===t.Gt)return n;n=e,t.Gt--,t.Yt++,i.Se+=(255&t.we(t.oe++))<<16&16711680,i.mode=4;case 4:if(0===t.Gt)return n;n=e,t.Gt--,t.Yt++,i.Se+=(255&t.we(t.oe++))<<8&65280,i.mode=5;case 5:return 0===t.Gt?n:(n=e,t.Gt--,t.Yt++,i.Se+=255&t.we(t.oe++),i.mode=6,2);case 6:return i.mode=13,t.Qt="need dictionary",i.marker=0,-2;case 7:if(n=i.me.de(t,n),-3==n){i.mode=13,i.marker=0;break}if(0==n&&(n=e),1!=n)return n;n=e,i.me.reset(t,i.ze),i.mode=12;case 12:return 1;case 13:return-3;default:return-2}},t.Ae=(t,e,n)=>{let r=0,i=n;if(!t||!t.ve||6!=t.ve.mode)return-2;const s=t.ve;return i<1<<s._e||(i=(1<<s._e)-1,r=n-i),s.me.ke(e,r,i),s.mode=7,0},t.Ve=t=>{let n,r,i,s,o;if(!t||!t.ve)return-2;const f=t.ve;if(13!=f.mode&&(f.mode=13,f.marker=0),0===(n=t.Gt))return-5;for(r=t.oe,i=f.marker;0!==n&&4>i;)t.we(r)==kt[i]?i++:i=0!==t.we(r)?0:4-i,r++,n--;return t.Yt+=r-t.oe,t.oe=r,t.Gt=n,f.marker=i,4!=i?-3:(s=t.Yt,o=t.Zt,e(t),t.Yt=s,t.Zt=o,f.mode=7,0)},t.Ee=t=>t&&t.ve&&t.ve.me?t.ve.me.ge():-2}function vt(){}function mt(t){const e=new vt,s=t&&t.et?n.floor(2*t.et):131072,o=new i(s);let f=!1;e.Ce(),e.re=o,this.append=(t,n)=>{const c=[];let l,u,a=0,w=0,h=0;if(0!==t.length){e.oe=0,e.ie=t,e.Gt=t.length;do{if(e.fe=0,e.se=s,0!==e.Gt||f||(e.oe=0,f=!0),l=e.nt(0),f&&-5===l){if(0!==e.Gt)throw new r("inflating: bad input")}else if(0!==l&&1!==l)throw new r("inflating: "+e.Qt);if((f||1===l)&&e.Gt===t.length)throw new r("inflating: bad input");e.fe&&(e.fe===s?c.push(new i(o)):c.push(o.slice(0,e.fe))),h+=e.fe,n&&e.oe>0&&e.oe!=a&&(n(e.oe),a=e.oe)}while(e.Gt>0||0===e.se);return c.length>1?(u=new i(h),c.forEach((t=>{u.set(t,w),w+=t.length}))):u=c[0]||new i(0),u}},this.flush=()=>{e.Ie()}}vt.prototype={Ce:function(t){const e=this;return e.ve=new gt,t||(t=15),e.ve.Ce(e,t)},nt:function(t){const e=this;return e.ve?e.ve.nt(e,t):-2},Ie:function(){const t=this;if(!t.ve)return-2;const e=t.ve.Ie(t);return t.ve=null,e},Ve:function(){const t=this;return t.ve?t.ve.Ve(t):-2},Ae:function(t,e){const n=this;return n.ve?n.ve.Ae(n,t,e):-2},we:function(t){return this.ie[t]},Jt:function(t,e){return this.ie.subarray(t,t+e)}},self.initCodec=()=>{self.Deflate=ot,self.Inflate=mt}; +`],{type:"text/javascript"}));e({workerScripts:{inflate:[t],deflate:[t]}})}};const Sc="text/plain";class Zh{constructor(){this.size=0}init(){this.initialized=!0}}class Gh extends Zh{}class bd extends Zh{writeUint8Array(t){this.size+=t.length}}class Q5 extends Gh{constructor(t){super(),this.blobReader=new Yh(new Blob([t],{type:Sc}))}async init(){super.init(),this.blobReader.init(),this.size=this.blobReader.size}async readUint8Array(t,n){return this.blobReader.readUint8Array(t,n)}}class e_ extends bd{constructor(t){super(),this.encoding=t,this.blob=new Blob([],{type:Sc})}async writeUint8Array(t){super.writeUint8Array(t),this.blob=new Blob([this.blob,t.buffer],{type:Sc})}getData(){if(this.blob.text)return this.blob.text();{const t=new FileReader;return new Promise((n,r)=>{t.onload=i=>n(i.target.result),t.onerror=()=>r(t.error),t.readAsText(this.blob,this.encoding)})}}}class t_ extends bd{constructor(t){super(),this.data="data:"+(t||"")+";base64,",this.pending=[]}async writeUint8Array(t){super.writeUint8Array(t);let n=0,r=this.pending;const i=this.pending.length;for(this.pending="",n=0;n<Math.floor((i+t.length)/3)*3-i;n++)r+=String.fromCharCode(t[n]);for(;n<t.length;n++)this.pending+=String.fromCharCode(t[n]);r.length>2?this.data+=btoa(r):this.pending=r}getData(){return this.data+btoa(this.pending)}}class Yh extends Gh{constructor(t){super(),this.blob=t,this.size=t.size}async readUint8Array(t,n){if(this.blob.arrayBuffer)return new Uint8Array(await this.blob.slice(t,t+n).arrayBuffer());{const r=new FileReader;return new Promise((i,o)=>{r.onload=a=>i(new Uint8Array(a.target.result)),r.onerror=()=>o(r.error),r.readAsArrayBuffer(this.blob.slice(t,t+n))})}}}class n_ extends bd{constructor(t){super(),this.contentType=t,this.arrayBuffers=[]}async writeUint8Array(t){super.writeUint8Array(t),this.arrayBuffers.push(t.buffer)}getData(){return this.blob||(this.blob=new Blob(this.arrayBuffers,{type:this.contentType})),this.blob}}const kt=4294967295,hn=65535,Ic=8,Wh=0,qh=99,Xh=67324752,r_=134695760,Mc=33639248,Kh=101010256,Tc=101075792,Jh=117853008,ys=22,Wa=20,qa=56,i_=ys+Wa+qa,o_=1,Qh=1,ep=39169,tp=10,np=1,xd=21589,a_=28789,s_=25461,Lc=1,l_=6,Oc=8,Nc=2048,Rc=16,c_=20,a1=45,s1=51,Xa="/",l1=new Date(2107,11,31),c1=new Date(1980,0,1),d_="\0\u263A\u263B\u2665\u2666\u2663\u2660\u2022\u25D8\u25CB\u25D9\u2642\u2640\u266A\u266B\u263C\u25BA\u25C4\u2195\u203C\xB6\xA7\u25AC\u21A8\u2191\u2193\u2192\u2190\u221F\u2194\u25B2\u25BC !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u2302\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0 ".split("");var u_=e=>{let t="";for(let n=0;n<e.length;n++)t+=d_[e[n]];return t};async function Dc(e,t){if(t&&t.trim().toLowerCase()=="cp437")return u_(e);if(typeof TextDecoder=="undefined"){const n=new FileReader;return new Promise((r,i)=>{n.onload=o=>r(o.target.result),n.onerror=()=>i(n.error),n.readAsText(new Blob([e]))})}else return new TextDecoder(t).decode(e)}const f_=64,h_="Abort error";async function rp(e,t,n,r,i,o,a){const s=Math.max(o.chunkSize,f_);return l();async function l(d=0,c=0){const u=a.signal;if(d<i){Dl(u,e);const f=await t.readUint8Array(d+r,Math.min(s,i-d)),h=f.length;Dl(u,e);const w=await e.append(f);if(Dl(u,e),c+=await d1(n,w),a.onprogress)try{a.onprogress(d+h,i)}catch{}return l(d+s,c)}else{const f=await e.flush();return c+=await d1(n,f.data),{signature:f.signature,length:c}}}}function Dl(e,t){if(e&&e.aborted)throw t.abort(),new Error(h_)}async function d1(e,t){return t.length&&await e.writeUint8Array(t),t.length}const p_=["filename","rawFilename","directory","encrypted","compressedSize","uncompressedSize","lastModDate","rawLastModDate","comment","rawComment","signature","extraField","rawExtraField","bitFlag","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","filenameUTF8","commentUTF8","offset","zip64","compressionMethod","extraFieldNTFS","lastAccessDate","creationDate","extraFieldExtendedTimestamp","version","versionMadeBy","msDosCompatible","internalFileAttribute","externalFileAttribute"];class ks{constructor(t){p_.forEach(n=>this[n]=t[n])}}const Fl="File format is not recognized",g_="End of central directory not found",m_="End of Zip64 central directory not found",__="End of Zip64 central directory locator not found",w_="Central directory header not found",v_="Local file header not found",b_="Zip64 extra field not found",x_="File contains encrypted entry",y_="Encryption method not supported",u1="Compression method not supported",f1="utf-8",h1="cp437",p1=["uncompressedSize","compressedSize","offset"];class k_{constructor(t,n={}){Object.assign(this,{reader:t,options:n,config:Eh()})}async getEntries(t={}){const n=this,r=n.reader;if(r.initialized||await r.init(),r.size<ys)throw new Error(Fl);const i=await M_(r,Kh,r.size,ys,hn*16);if(!i)throw new Error(g_);const o=At(i);let a=ut(o,12),s=ut(o,16),l=Ht(o,8),d=0;if(s==kt||a==kt||l==hn){const w=await fr(r,i.offset-Wa,Wa),_=At(w);if(ut(_,0)!=Jh)throw new Error(m_);s=Ka(_,8);let g=await fr(r,s,qa),m=At(g);const v=i.offset-Wa-qa;if(ut(m,0)!=Tc&&s!=v){const x=s;s=v,d=s-x,g=await fr(r,s,qa),m=At(g)}if(ut(m,0)!=Tc)throw new Error(__);l=Ka(m,32),a=Ka(m,40),s-=a}if(s<0||s>=r.size)throw new Error(Fl);let c=0,u=await fr(r,s,a),f=At(u);if(a){const w=i.offset-a;if(ut(f,c)!=Mc&&s!=w){const _=s;s=w,d=s-_,u=await fr(r,s,a),f=At(u)}}if(s<0||s>=r.size)throw new Error(Fl);const h=[];for(let w=0;w<l;w++){const _=new C_(r,n.config,n.options);if(ut(f,c)!=Mc)throw new Error(w_);ip(_,f,c+6);const g=Boolean(_.bitFlag.languageEncodingFlag),m=c+46,v=m+_.filenameLength,x=v+_.extraFieldLength,b=Ht(f,c+4),y=(b&0)==0;Object.assign(_,{versionMadeBy:b,msDosCompatible:y,compressedSize:0,uncompressedSize:0,commentLength:Ht(f,c+32),directory:y&&(Oi(f,c+38)&Rc)==Rc,offset:ut(f,c+42)+d,internalFileAttribute:ut(f,c+34),externalFileAttribute:ut(f,c+38),rawFilename:u.subarray(m,v),filenameUTF8:g,commentUTF8:g,rawExtraField:u.subarray(v,x)});const k=x+_.commentLength;_.rawComment=u.subarray(x,k);const C=Ci(n,t,"filenameEncoding"),E=Ci(n,t,"commentEncoding"),[M,S]=await Promise.all([Dc(_.rawFilename,_.filenameUTF8?f1:C||h1),Dc(_.rawComment,_.commentUTF8?f1:E||h1)]);_.filename=M,_.comment=S,!_.directory&&_.filename.endsWith(Xa)&&(_.directory=!0),await op(_,_,f,c+6);const T=new ks(_);if(T.getData=(L,F)=>_.getData(L,T,F),h.push(T),c=k,t.onprogress)try{t.onprogress(w+1,l,new ks(_))}catch{}}return h}async close(){}}class C_{constructor(t,n,r){Object.assign(this,{reader:t,config:n,options:r})}async getData(t,n,r={}){const i=this,{reader:o,offset:a,extraFieldAES:s,compressionMethod:l,config:d,bitFlag:c,signature:u,rawLastModDate:f,compressedSize:h}=i,w=i.localDirectory={};o.initialized||await o.init();let _=await fr(o,a,30);const g=At(_);let m=Ci(i,r,"password");if(m=m&&m.length&&m,s&&s.originalCompressionMethod!=qh)throw new Error(u1);if(l!=Wh&&l!=Ic)throw new Error(u1);if(ut(g,0)!=Xh)throw new Error(v_);ip(w,g,4),_=await fr(o,a,30+w.filenameLength+w.extraFieldLength),w.rawExtraField=_.subarray(30+w.filenameLength),await op(i,w,g,4),n.lastAccessDate=w.lastAccessDate,n.creationDate=w.creationDate;const v=i.encrypted&&w.encrypted,x=v&&!s;if(v){if(!x&&s.strength===void 0)throw new Error(y_);if(!m)throw new Error(x_)}const b=await Hh(d.Inflate,{codecType:Uh,password:m,zipCrypto:x,encryptionStrength:s&&s.strength,signed:Ci(i,r,"checkSignature"),passwordVerification:x&&(c.dataDescriptor?f>>>8&255:u>>>24&255),signature:u,compressed:l!=0,encrypted:v,useWebWorkers:Ci(i,r,"useWebWorkers")},d);t.initialized||await t.init();const y=Ci(i,r,"signal"),k=a+30+w.filenameLength+w.extraFieldLength;return await rp(b,o,t,k,h,d,{onprogress:r.onprogress,signal:y}),t.getData()}}function ip(e,t,n){const r=e.rawBitFlag=Ht(t,n+2),i=(r&Lc)==Lc,o=ut(t,n+6);Object.assign(e,{encrypted:i,version:Ht(t,n),bitFlag:{level:(r&l_)>>1,dataDescriptor:(r&Oc)==Oc,languageEncodingFlag:(r&Nc)==Nc},rawLastModDate:o,lastModDate:T_(o),filenameLength:Ht(t,n+22),extraFieldLength:Ht(t,n+24)})}async function op(e,t,n,r){const i=t.rawExtraField,o=t.extraField=new Map,a=At(new Uint8Array(i));let s=0;try{for(;s<i.length;){const _=Ht(a,s),g=Ht(a,s+2);o.set(_,{type:_,data:i.slice(s+4,s+4+g)}),s+=4+g}}catch{}const l=Ht(n,r+4);t.signature=ut(n,r+10),t.uncompressedSize=ut(n,r+18),t.compressedSize=ut(n,r+14);const d=o.get(Qh);d&&(E_(d,t),t.extraFieldZip64=d);const c=o.get(a_);c&&(await g1(c,"filename","rawFilename",t,e),t.extraFieldUnicodePath=c);const u=o.get(s_);u&&(await g1(u,"comment","rawComment",t,e),t.extraFieldUnicodeComment=u);const f=o.get(ep);f?(A_(f,t,l),t.extraFieldAES=f):t.compressionMethod=l;const h=o.get(tp);h&&(S_(h,t),t.extraFieldNTFS=h);const w=o.get(xd);w&&(I_(w,t),t.extraFieldExtendedTimestamp=w)}function E_(e,t){t.zip64=!0;const n=At(e.data);e.values=[];for(let i=0;i<Math.floor(e.data.length/8);i++)e.values.push(Ka(n,0+i*8));const r=p1.filter(i=>t[i]==kt);for(let i=0;i<r.length;i++)e[r[i]]=e.values[i];p1.forEach(i=>{if(t[i]==kt)if(e[i]!==void 0)t[i]=e[i];else throw new Error(b_)})}async function g1(e,t,n,r,i){const o=At(e.data);e.version=Oi(o,0),e.signature=ut(o,1);const a=new Po;a.append(i[n]);const s=At(new Uint8Array(4));s.setUint32(0,a.get(),!0),e[t]=await Dc(e.data.subarray(5)),e.valid=!i.bitFlag.languageEncodingFlag&&e.signature==ut(s,0),e.valid&&(r[t]=e[t],r[t+"UTF8"]=!0)}function A_(e,t,n){const r=At(e.data);e.vendorVersion=Oi(r,0),e.vendorId=Oi(r,2);const i=Oi(r,4);e.strength=i,e.originalCompressionMethod=n,t.compressionMethod=e.compressionMethod=Ht(r,5)}function S_(e,t){const n=At(e.data);let r=4,i;try{for(;r<e.data.length&&!i;){const o=Ht(n,r),a=Ht(n,r+2);o==np&&(i=e.data.slice(r+4,r+4+a)),r+=4+a}}catch{}try{if(i&&i.length==24){const o=At(i),a=o.getBigUint64(0,!0),s=o.getBigUint64(8,!0),l=o.getBigUint64(16,!0);Object.assign(e,{rawLastModDate:a,rawLastAccessDate:s,rawCreationDate:l});const d=Pl(a),c=Pl(s),u=Pl(l),f={lastModDate:d,lastAccessDate:c,creationDate:u};Object.assign(e,f),Object.assign(t,f)}}catch{}}function I_(e,t){const n=At(e.data),r=Oi(n,0),i=[],o=[];(r&1)==1&&(i.push("lastModDate"),o.push("rawLastModDate")),(r&2)==2&&(i.push("lastAccessDate"),o.push("rawLastAccessDate")),(r&4)==4&&(i.push("creationDate"),o.push("rawCreationDate"));let a=1;i.forEach((s,l)=>{if(e.data.length>=a+4){const d=ut(n,a);t[s]=e[s]=new Date(d*1e3);const c=o[l];e[c]=d}a+=4})}async function M_(e,t,n,r,i){const o=new Uint8Array(4),a=At(o);L_(a,0,t);const s=r+i;return await l(r)||await l(Math.min(s,n));async function l(d){const c=n-d,u=await fr(e,c,d);for(let f=u.length-r;f>=0;f--)if(u[f]==o[0]&&u[f+1]==o[1]&&u[f+2]==o[2]&&u[f+3]==o[3])return{offset:c+f,buffer:u.slice(f,f+r).buffer}}}function Ci(e,t,n){return t[n]===void 0?e.options[n]:t[n]}function T_(e){const t=(e&4294901760)>>16,n=e&65535;try{return new Date(1980+((t&65024)>>9),((t&480)>>5)-1,t&31,(n&63488)>>11,(n&2016)>>5,(n&31)*2,0)}catch{}}function Pl(e){return new Date(Number(e/BigInt(1e4)-BigInt(116444736e5)))}function Oi(e,t){return e.getUint8(t)}function Ht(e,t){return e.getUint16(t,!0)}function ut(e,t){return e.getUint32(t,!0)}function Ka(e,t){return Number(e.getBigUint64(t,!0))}function L_(e,t,n){e.setUint32(t,n,!0)}function At(e){return new DataView(e.buffer)}function fr(e,t,n){return e.readUint8Array(t,n)}const O_="File already exists",N_="Zip file comment exceeds 64KB",R_="File entry comment exceeds 64KB",D_="File entry name exceeds 64KB",m1="Version exceeds 65535",F_="The strength must equal 1, 2, or 3",P_="Extra field type exceeds 65535",$_="Extra field data exceeds 64KB",yd="Zip64 is not supported",_1=new Uint8Array([7,0,2,0,65,69,3,0,0]),w1=24;let $l=0;class B_{constructor(t,n={}){Object.assign(this,{writer:t,options:n,config:Eh(),files:new Map,offset:t.size,pendingCompressedSize:0,pendingEntries:[]})}async add(t="",n,r={}){const i=this;if($l<i.config.maxWorkers){$l++;try{return await z_(i,t,n,r)}finally{$l--;const o=i.pendingEntries.shift();o&&i.add(o.name,o.reader,o.options).then(o.resolve).catch(o.reject)}}else return new Promise((o,a)=>i.pendingEntries.push({name:t,reader:n,options:r,resolve:o,reject:a}))}async close(t=new Uint8Array(0),n={}){return await U_(this,t,n),this.writer.getData()}}async function z_(e,t,n,r){if(t=t.trim(),r.directory&&!t.endsWith(Xa)?t+=Xa:r.directory=t.endsWith(Xa),e.files.has(t))throw new Error(O_);const i=Ac(t);if(i.length>hn)throw new Error(D_);const o=r.comment||"",a=Ac(o);if(a.length>hn)throw new Error(R_);const s=e.options.version||r.version||0;if(s>hn)throw new Error(m1);const l=e.options.versionMadeBy||r.versionMadeBy||20;if(l>hn)throw new Error(m1);const d=bt(e,r,"lastModDate")||new Date,c=bt(e,r,"lastAccessDate"),u=bt(e,r,"creationDate"),f=bt(e,r,"password"),h=bt(e,r,"encryptionStrength")||3,w=bt(e,r,"zipCrypto");if(f!==void 0&&h!==void 0&&(h<1||h>3))throw new Error(F_);let _=new Uint8Array(0);const g=r.extraField;if(g){let O=0,j=0;g.forEach(H=>O+=4+H.length),_=new Uint8Array(O),g.forEach((H,Q)=>{if(Q>hn)throw new Error(P_);if(H.length>hn)throw new Error($_);pt(_,new Uint16Array([Q]),j),pt(_,new Uint16Array([H.length]),j+2),pt(_,H,j+4),j+=4+H.length})}let m=bt(e,r,"extendedTimestamp");m===void 0&&(m=!0);let v=0,x=bt(e,r,"keepOrder");x===void 0&&(x=!0);let b=0,y=bt(e,r,"msDosCompatible");y===void 0&&(y=!0);const k=bt(e,r,"internalFileAttribute")||0,C=bt(e,r,"externalFileAttribute")||0;n&&(n.initialized||await n.init(),b=n.size,v=Z_(b));let E=r.zip64||e.options.zip64||!1;if(e.offset+e.pendingCompressedSize>=kt||b>=kt||v>=kt){if(r.zip64===!1||e.options.zip64===!1||!x)throw new Error(yd);E=!0}e.pendingCompressedSize+=v,await Promise.resolve();const M=bt(e,r,"level"),S=bt(e,r,"useWebWorkers"),T=bt(e,r,"bufferedWrite");let L=bt(e,r,"dataDescriptor"),F=bt(e,r,"dataDescriptorSignature");const X=bt(e,r,"signal");L===void 0&&(L=!0),L&&F===void 0&&(F=!0);const V=await j_(e,t,n,Object.assign({},r,{rawFilename:i,rawComment:a,version:s,versionMadeBy:l,lastModDate:d,lastAccessDate:c,creationDate:u,rawExtraField:_,zip64:E,password:f,level:M,useWebWorkers:S,encryptionStrength:h,extendedTimestamp:m,zipCrypto:w,bufferedWrite:T,keepOrder:x,dataDescriptor:L,dataDescriptorSignature:F,signal:X,msDosCompatible:y,internalFileAttribute:k,externalFileAttribute:C}));return v&&(e.pendingCompressedSize-=v),Object.assign(V,{name:t,comment:o,extraField:g}),new ks(V)}async function j_(e,t,n,r){const i=e.files,o=e.writer,a=Array.from(i.values()).pop();let s={},l,d,c;i.set(t,s);try{let u,f,h;if(r.keepOrder&&(u=a&&a.lock),s.lock=h=new Promise(w=>c=w),r.bufferedWrite||e.lockWrite||!r.dataDescriptor?(f=new n_,f.init(),l=!0):(e.lockWrite=new Promise(w=>d=w),o.initialized||await o.init(),f=o),s=await V_(n,f,e.config,r),s.lock=h,i.set(t,s),s.filename=t,l){let w=0;const _=f.getData();await Promise.all([e.lockWrite,u]);let g;do g=Array.from(i.values()).find(m=>m.writingBufferedData),g&&await g.lock;while(g&&g.lock);if(s.writingBufferedData=!0,!r.dataDescriptor){const v=await ap(_,0,26),x=new DataView(v);(!s.encrypted||r.zipCrypto)&&Ve(x,14,s.signature),s.zip64?(Ve(x,18,kt),Ve(x,22,kt)):(Ve(x,18,s.compressedSize),Ve(x,22,s.uncompressedSize)),await o.writeUint8Array(new Uint8Array(v)),w=26}await H_(o,_,w),delete s.writingBufferedData}if(s.offset=e.offset,s.zip64){const w=un(s.rawExtraFieldZip64);Ft(w,20,BigInt(s.offset))}else if(s.offset>=kt)throw new Error(yd);return e.offset+=s.length,s}catch(u){throw(l&&s.writingBufferedData||!l&&s.dataWritten)&&(u.corruptedEntry=e.hasCorruptedEntries=!0,s.uncompressedSize&&(e.offset+=s.uncompressedSize)),i.delete(t),u}finally{c(),d&&d()}}async function V_(e,t,n,r){const{rawFilename:i,lastAccessDate:o,creationDate:a,password:s,level:l,zip64:d,zipCrypto:c,dataDescriptor:u,dataDescriptorSignature:f,directory:h,version:w,versionMadeBy:_,rawComment:g,rawExtraField:m,useWebWorkers:v,onprogress:x,signal:b,encryptionStrength:y,extendedTimestamp:k,msDosCompatible:C,internalFileAttribute:E,externalFileAttribute:M}=r,S=Boolean(s&&s.length),T=l!==0&&!h;let L;if(S&&!c){L=new Uint8Array(_1.length+2);const Ae=un(L);Xe(Ae,0,ep),pt(L,_1,2),Cs(Ae,8,y)}else L=new Uint8Array(0);let F,X;if(k){X=new Uint8Array(9+(o?4:0)+(a?4:0));const Ae=un(X);Xe(Ae,0,xd),Xe(Ae,2,X.length-4);const Me=1+(o?2:0)+(a?4:0);Cs(Ae,4,Me),Ve(Ae,5,Math.floor(r.lastModDate.getTime()/1e3)),o&&Ve(Ae,9,Math.floor(o.getTime()/1e3)),a&&Ve(Ae,13,Math.floor(a.getTime()/1e3));try{F=new Uint8Array(36);const Te=un(F),le=Bl(r.lastModDate);Xe(Te,0,tp),Xe(Te,2,32),Xe(Te,8,np),Xe(Te,10,24),Ft(Te,12,le),Ft(Te,20,Bl(o)||le),Ft(Te,28,Bl(a)||le)}catch{F=new Uint8Array(0)}}else F=X=new Uint8Array(0);const V={version:w||c_,versionMadeBy:_,zip64:d,directory:Boolean(h),filenameUTF8:!0,rawFilename:i,commentUTF8:!0,rawComment:g,rawExtraFieldZip64:d?new Uint8Array(w1+4):new Uint8Array(0),rawExtraFieldExtendedTimestamp:X,rawExtraFieldNTFS:F,rawExtraFieldAES:L,rawExtraField:m,extendedTimestamp:k,msDosCompatible:C,internalFileAttribute:E,externalFileAttribute:M};let O=V.uncompressedSize=0,j=Nc;u&&(j=j|Oc);let H=Wh;T&&(H=Ic),d&&(V.version=V.version>a1?V.version:a1),S&&(j=j|Lc,c||(V.version=V.version>s1?V.version:s1,H=qh,T&&(V.rawExtraFieldAES[9]=Ic))),V.compressionMethod=H;const Q=V.headerArray=new Uint8Array(26),D=un(Q);Xe(D,0,V.version),Xe(D,2,j),Xe(D,4,H);const A=new Uint32Array(1),N=un(A);let $;r.lastModDate<c1?$=c1:r.lastModDate>l1?$=l1:$=r.lastModDate,Xe(N,0,($.getHours()<<6|$.getMinutes())<<5|$.getSeconds()/2),Xe(N,2,($.getFullYear()-1980<<4|$.getMonth()+1)<<5|$.getDate());const K=A[0];Ve(D,6,K),Xe(D,22,i.length);const ie=L.length+X.length+F.length+V.rawExtraField.length;Xe(D,24,ie);const B=new Uint8Array(30+i.length+ie),J=un(B);Ve(J,0,Xh),pt(B,Q,4),pt(B,i,30),pt(B,L,30+i.length),pt(B,X,30+i.length+L.length),pt(B,F,30+i.length+L.length+X.length),pt(B,V.rawExtraField,30+i.length+L.length+X.length+F.length);let ue,pe=0;if(e){O=V.uncompressedSize=e.size;const Ae=await Hh(n.Deflate,{codecType:Vh,level:l,password:s,encryptionStrength:y,zipCrypto:S&&c,passwordVerification:S&&c&&K>>8&255,signed:!0,compressed:T,encrypted:S,useWebWorkers:v},n);await t.writeUint8Array(B),V.dataWritten=!0,ue=await rp(Ae,e,t,0,O,n,{onprogress:x,signal:b}),pe=ue.length}else await t.writeUint8Array(B),V.dataWritten=!0;let Re=new Uint8Array(0),Se,Ue=0;if(u&&(Re=new Uint8Array(d?f?24:20:f?16:12),Se=un(Re),f&&(Ue=4,Ve(Se,0,r_))),e){const Ae=ue.signature;if((!S||c)&&Ae!==void 0&&(Ve(D,10,Ae),V.signature=Ae,u&&Ve(Se,Ue,Ae)),d){const Me=un(V.rawExtraFieldZip64);Xe(Me,0,Qh),Xe(Me,2,w1),Ve(D,14,kt),Ft(Me,12,BigInt(pe)),Ve(D,18,kt),Ft(Me,4,BigInt(O)),u&&(Ft(Se,Ue+4,BigInt(pe)),Ft(Se,Ue+12,BigInt(O)))}else Ve(D,14,pe),Ve(D,18,O),u&&(Ve(Se,Ue+4,pe),Ve(Se,Ue+8,O))}u&&await t.writeUint8Array(Re);const rt=B.length+pe+Re.length;return Object.assign(V,{compressedSize:pe,lastModDate:$,rawLastModDate:K,creationDate:a,lastAccessDate:o,encrypted:S,length:rt}),V}async function U_(e,t,n){const r=e.writer,i=e.files;let o=0,a=0,s=e.offset,l=i.size;for(const[,f]of i)a+=46+f.rawFilename.length+f.rawComment.length+f.rawExtraFieldZip64.length+f.rawExtraFieldAES.length+f.rawExtraFieldExtendedTimestamp.length+f.rawExtraFieldNTFS.length+f.rawExtraField.length;let d=n.zip64||e.options.zip64||!1;if(s>=kt||a>=kt||l>=hn){if(n.zip64===!1||e.options.zip64===!1)throw new Error(yd);d=!0}const c=new Uint8Array(a+(d?i_:ys)),u=un(c);if(t&&t.length)if(t.length<=hn)Xe(u,o+20,t.length);else throw new Error(N_);for(const[f,h]of Array.from(i.values()).entries()){const{rawFilename:w,rawExtraFieldZip64:_,rawExtraFieldAES:g,rawExtraField:m,rawComment:v,versionMadeBy:x,headerArray:b,directory:y,zip64:k,msDosCompatible:C,internalFileAttribute:E,externalFileAttribute:M}=h;let S,T;if(h.extendedTimestamp){T=h.rawExtraFieldNTFS,S=new Uint8Array(9);const F=un(S);Xe(F,0,xd),Xe(F,2,S.length-4),Cs(F,4,1),Ve(F,5,Math.floor(h.lastModDate.getTime()/1e3))}else T=S=new Uint8Array(0);const L=_.length+g.length+S.length+T.length+m.length;if(Ve(u,o,Mc),Xe(u,o+4,x),pt(c,b,o+6),Xe(u,o+30,L),Xe(u,o+32,v.length),Ve(u,o+34,E),M?Ve(u,o+38,M):y&&C&&Cs(u,o+38,Rc),k?Ve(u,o+42,kt):Ve(u,o+42,h.offset),pt(c,w,o+46),pt(c,_,o+46+w.length),pt(c,g,o+46+w.length+_.length),pt(c,S,o+46+w.length+_.length+g.length),pt(c,T,o+46+w.length+_.length+g.length+S.length),pt(c,m,o+46+w.length+_.length+g.length+S.length+T.length),pt(c,v,o+46+w.length+L),o+=46+w.length+L+v.length,n.onprogress)try{n.onprogress(f+1,i.size,new ks(h))}catch{}}d&&(Ve(u,o,Tc),Ft(u,o+4,BigInt(44)),Xe(u,o+12,45),Xe(u,o+14,45),Ft(u,o+24,BigInt(l)),Ft(u,o+32,BigInt(l)),Ft(u,o+40,BigInt(a)),Ft(u,o+48,BigInt(s)),Ve(u,o+56,Jh),Ft(u,o+64,BigInt(s)+BigInt(a)),Ve(u,o+72,o_),l=hn,s=kt,a=kt,o+=76),Ve(u,o,Kh),Xe(u,o+8,l),Xe(u,o+10,l),Ve(u,o+12,a),Ve(u,o+16,s),await r.writeUint8Array(c),t&&t.length&&await r.writeUint8Array(t)}function ap(e,t,n){if(e.arrayBuffer)return t||n?e.slice(t,n).arrayBuffer():e.arrayBuffer();{const r=new FileReader;return new Promise((i,o)=>{r.onload=a=>i(a.target.result),r.onerror=()=>o(r.error),r.readAsArrayBuffer(t||n?e.slice(t,n):e)})}}async function H_(e,t,n=0){await i();async function i(){if(n<t.size){const o=await ap(t,n,n+536870912);await e.writeUint8Array(new Uint8Array(o)),n+=536870912,await i()}}}function Bl(e){if(e)return(BigInt(e.getTime())+BigInt(116444736e5))*BigInt(1e4)}function bt(e,t,n){return t[n]===void 0?e.options[n]:t[n]}function Z_(e){return e+5*(Math.floor(e/16383)+1)}function Cs(e,t,n){e.setUint8(t,n)}function Xe(e,t,n){e.setUint16(t,n,!0)}function Ve(e,t,n){e.setUint32(t,n,!0)}function Ft(e,t,n){e.setBigUint64(t,n,!0)}function pt(e,t,n){e.set(t,n)}function un(e){return new DataView(e.buffer)}let sp;try{sp=xk.url}catch{}md({baseURL:sp});J5(md);md({Deflate:d5,Inflate:L5});var ot={},sa={},rn={};function lp(e){return typeof e=="undefined"||e===null}function G_(e){return typeof e=="object"&&e!==null}function Y_(e){return Array.isArray(e)?e:lp(e)?[]:[e]}function W_(e,t){var n,r,i,o;if(t)for(o=Object.keys(t),n=0,r=o.length;n<r;n+=1)i=o[n],e[i]=t[i];return e}function q_(e,t){var n="",r;for(r=0;r<t;r+=1)n+=e;return n}function X_(e){return e===0&&Number.NEGATIVE_INFINITY===1/e}rn.isNothing=lp;rn.isObject=G_;rn.toArray=Y_;rn.repeat=q_;rn.isNegativeZero=X_;rn.extend=W_;function Bo(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||""}Bo.prototype=Object.create(Error.prototype);Bo.prototype.constructor=Bo;Bo.prototype.toString=function(t){var n=this.name+": ";return n+=this.reason||"(unknown reason)",!t&&this.mark&&(n+=" "+this.mark.toString()),n};var la=Bo,v1=rn;function kd(e,t,n,r,i){this.name=e,this.buffer=t,this.position=n,this.line=r,this.column=i}kd.prototype.getSnippet=function(t,n){var r,i,o,a,s;if(!this.buffer)return null;for(t=t||4,n=n||75,r="",i=this.position;i>0&&`\0\r +\x85\u2028\u2029`.indexOf(this.buffer.charAt(i-1))===-1;)if(i-=1,this.position-i>n/2-1){r=" ... ",i+=5;break}for(o="",a=this.position;a<this.buffer.length&&`\0\r +\x85\u2028\u2029`.indexOf(this.buffer.charAt(a))===-1;)if(a+=1,a-this.position>n/2-1){o=" ... ",a-=5;break}return s=this.buffer.slice(i,a),v1.repeat(" ",t)+r+s+o+` +`+v1.repeat(" ",t+this.position-i+r.length)+"^"};kd.prototype.toString=function(t){var n,r="";return this.name&&(r+='in "'+this.name+'" '),r+="at line "+(this.line+1)+", column "+(this.column+1),t||(n=this.getSnippet(),n&&(r+=`: +`+n)),r};var K_=kd,b1=la,J_=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],Q_=["scalar","sequence","mapping"];function e8(e){var t={};return e!==null&&Object.keys(e).forEach(function(n){e[n].forEach(function(r){t[String(r)]=n})}),t}function t8(e,t){if(t=t||{},Object.keys(t).forEach(function(n){if(J_.indexOf(n)===-1)throw new b1('Unknown option "'+n+'" 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(n){return n},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.defaultStyle=t.defaultStyle||null,this.styleAliases=e8(t.styleAliases||null),Q_.indexOf(this.kind)===-1)throw new b1('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}var wt=t8,x1=rn,Ja=la,n8=wt;function Fc(e,t,n){var r=[];return e.include.forEach(function(i){n=Fc(i,t,n)}),e[t].forEach(function(i){n.forEach(function(o,a){o.tag===i.tag&&o.kind===i.kind&&r.push(a)}),n.push(i)}),n.filter(function(i,o){return r.indexOf(o)===-1})}function r8(){var e={scalar:{},sequence:{},mapping:{},fallback:{}},t,n;function r(i){e[i.kind][i.tag]=e.fallback[i.tag]=i}for(t=0,n=arguments.length;t<n;t+=1)arguments[t].forEach(r);return e}function Ei(e){this.include=e.include||[],this.implicit=e.implicit||[],this.explicit=e.explicit||[],this.implicit.forEach(function(t){if(t.loadKind&&t.loadKind!=="scalar")throw new Ja("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")}),this.compiledImplicit=Fc(this,"implicit",[]),this.compiledExplicit=Fc(this,"explicit",[]),this.compiledTypeMap=r8(this.compiledImplicit,this.compiledExplicit)}Ei.DEFAULT=null;Ei.create=function(){var t,n;switch(arguments.length){case 1:t=Ei.DEFAULT,n=arguments[0];break;case 2:t=arguments[0],n=arguments[1];break;default:throw new Ja("Wrong number of arguments for Schema.create function")}if(t=x1.toArray(t),n=x1.toArray(n),!t.every(function(r){return r instanceof Ei}))throw new Ja("Specified list of super schemas (or a single Schema object) contains a non-Schema object.");if(!n.every(function(r){return r instanceof n8}))throw new Ja("Specified list of YAML types (or a single Type object) contains a non-Type object.");return new Ei({include:t,explicit:n})};var eo=Ei,i8=wt,o8=new i8("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return e!==null?e:""}}),a8=wt,s8=new a8("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return e!==null?e:[]}}),l8=wt,c8=new l8("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return e!==null?e:{}}}),d8=eo,Cd=new d8({explicit:[o8,s8,c8]}),u8=wt;function f8(e){if(e===null)return!0;var t=e.length;return t===1&&e==="~"||t===4&&(e==="null"||e==="Null"||e==="NULL")}function h8(){return null}function p8(e){return e===null}var g8=new u8("tag:yaml.org,2002:null",{kind:"scalar",resolve:f8,construct:h8,predicate:p8,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"}),m8=wt;function _8(e){if(e===null)return!1;var t=e.length;return t===4&&(e==="true"||e==="True"||e==="TRUE")||t===5&&(e==="false"||e==="False"||e==="FALSE")}function w8(e){return e==="true"||e==="True"||e==="TRUE"}function v8(e){return Object.prototype.toString.call(e)==="[object Boolean]"}var b8=new m8("tag:yaml.org,2002:bool",{kind:"scalar",resolve:_8,construct:w8,predicate:v8,represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"}),x8=rn,y8=wt;function k8(e){return 48<=e&&e<=57||65<=e&&e<=70||97<=e&&e<=102}function C8(e){return 48<=e&&e<=55}function E8(e){return 48<=e&&e<=57}function A8(e){if(e===null)return!1;var t=e.length,n=0,r=!1,i;if(!t)return!1;if(i=e[n],(i==="-"||i==="+")&&(i=e[++n]),i==="0"){if(n+1===t)return!0;if(i=e[++n],i==="b"){for(n++;n<t;n++)if(i=e[n],i!=="_"){if(i!=="0"&&i!=="1")return!1;r=!0}return r&&i!=="_"}if(i==="x"){for(n++;n<t;n++)if(i=e[n],i!=="_"){if(!k8(e.charCodeAt(n)))return!1;r=!0}return r&&i!=="_"}for(;n<t;n++)if(i=e[n],i!=="_"){if(!C8(e.charCodeAt(n)))return!1;r=!0}return r&&i!=="_"}if(i==="_")return!1;for(;n<t;n++)if(i=e[n],i!=="_"){if(i===":")break;if(!E8(e.charCodeAt(n)))return!1;r=!0}return!r||i==="_"?!1:i!==":"?!0:/^(:[0-5]?[0-9])+$/.test(e.slice(n))}function S8(e){var t=e,n=1,r,i,o=[];return t.indexOf("_")!==-1&&(t=t.replace(/_/g,"")),r=t[0],(r==="-"||r==="+")&&(r==="-"&&(n=-1),t=t.slice(1),r=t[0]),t==="0"?0:r==="0"?t[1]==="b"?n*parseInt(t.slice(2),2):t[1]==="x"?n*parseInt(t,16):n*parseInt(t,8):t.indexOf(":")!==-1?(t.split(":").forEach(function(a){o.unshift(parseInt(a,10))}),t=0,i=1,o.forEach(function(a){t+=a*i,i*=60}),n*t):n*parseInt(t,10)}function I8(e){return Object.prototype.toString.call(e)==="[object Number]"&&e%1===0&&!x8.isNegativeZero(e)}var M8=new y8("tag:yaml.org,2002:int",{kind:"scalar",resolve:A8,construct:S8,predicate:I8,represent:{binary:function(e){return 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"]}}),cp=rn,T8=wt,L8=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))$");function O8(e){return!(e===null||!L8.test(e)||e[e.length-1]==="_")}function N8(e){var t,n,r,i;return t=e.replace(/_/g,"").toLowerCase(),n=t[0]==="-"?-1:1,i=[],"+-".indexOf(t[0])>=0&&(t=t.slice(1)),t===".inf"?n===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:t===".nan"?NaN:t.indexOf(":")>=0?(t.split(":").forEach(function(o){i.unshift(parseFloat(o,10))}),t=0,r=1,i.forEach(function(o){t+=o*r,r*=60}),n*t):n*parseFloat(t,10)}var R8=/^[-+]?[0-9]+e/;function D8(e,t){var n;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(cp.isNegativeZero(e))return"-0.0";return n=e.toString(10),R8.test(n)?n.replace("e",".e"):n}function F8(e){return Object.prototype.toString.call(e)==="[object Number]"&&(e%1!==0||cp.isNegativeZero(e))}var P8=new T8("tag:yaml.org,2002:float",{kind:"scalar",resolve:O8,construct:N8,predicate:F8,represent:D8,defaultStyle:"lowercase"}),$8=eo,dp=new $8({include:[Cd],implicit:[g8,b8,M8,P8]}),B8=eo,up=new B8({include:[dp]}),z8=wt,fp=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),hp=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]))?))?$");function j8(e){return e===null?!1:fp.exec(e)!==null||hp.exec(e)!==null}function V8(e){var t,n,r,i,o,a,s,l=0,d=null,c,u,f;if(t=fp.exec(e),t===null&&(t=hp.exec(e)),t===null)throw new Error("Date resolve error");if(n=+t[1],r=+t[2]-1,i=+t[3],!t[4])return new Date(Date.UTC(n,r,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]&&(c=+t[10],u=+(t[11]||0),d=(c*60+u)*6e4,t[9]==="-"&&(d=-d)),f=new Date(Date.UTC(n,r,i,o,a,s,l)),d&&f.setTime(f.getTime()-d),f}function U8(e){return e.toISOString()}var H8=new z8("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:j8,construct:V8,instanceOf:Date,represent:U8}),Z8=wt;function G8(e){return e==="<<"||e===null}var Y8=new Z8("tag:yaml.org,2002:merge",{kind:"scalar",resolve:G8}),$r;try{var W8=ch;$r=W8("buffer").Buffer}catch{}var q8=wt,Ed=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;function X8(e){if(e===null)return!1;var t,n,r=0,i=e.length,o=Ed;for(n=0;n<i;n++)if(t=o.indexOf(e.charAt(n)),!(t>64)){if(t<0)return!1;r+=6}return r%8===0}function K8(e){var t,n,r=e.replace(/[\r\n=]/g,""),i=r.length,o=Ed,a=0,s=[];for(t=0;t<i;t++)t%4===0&&t&&(s.push(a>>16&255),s.push(a>>8&255),s.push(a&255)),a=a<<6|o.indexOf(r.charAt(t));return n=i%4*6,n===0?(s.push(a>>16&255),s.push(a>>8&255),s.push(a&255)):n===18?(s.push(a>>10&255),s.push(a>>2&255)):n===12&&s.push(a>>4&255),$r?$r.from?$r.from(s):new $r(s):s}function J8(e){var t="",n=0,r,i,o=e.length,a=Ed;for(r=0;r<o;r++)r%3===0&&r&&(t+=a[n>>18&63],t+=a[n>>12&63],t+=a[n>>6&63],t+=a[n&63]),n=(n<<8)+e[r];return i=o%3,i===0?(t+=a[n>>18&63],t+=a[n>>12&63],t+=a[n>>6&63],t+=a[n&63]):i===2?(t+=a[n>>10&63],t+=a[n>>4&63],t+=a[n<<2&63],t+=a[64]):i===1&&(t+=a[n>>2&63],t+=a[n<<4&63],t+=a[64],t+=a[64]),t}function Q8(e){return $r&&$r.isBuffer(e)}var e3=new q8("tag:yaml.org,2002:binary",{kind:"scalar",resolve:X8,construct:K8,predicate:Q8,represent:J8}),t3=wt,n3=Object.prototype.hasOwnProperty,r3=Object.prototype.toString;function i3(e){if(e===null)return!0;var t=[],n,r,i,o,a,s=e;for(n=0,r=s.length;n<r;n+=1){if(i=s[n],a=!1,r3.call(i)!=="[object Object]")return!1;for(o in i)if(n3.call(i,o))if(!a)a=!0;else return!1;if(!a)return!1;if(t.indexOf(o)===-1)t.push(o);else return!1}return!0}function o3(e){return e!==null?e:[]}var a3=new t3("tag:yaml.org,2002:omap",{kind:"sequence",resolve:i3,construct:o3}),s3=wt,l3=Object.prototype.toString;function c3(e){if(e===null)return!0;var t,n,r,i,o,a=e;for(o=new Array(a.length),t=0,n=a.length;t<n;t+=1){if(r=a[t],l3.call(r)!=="[object Object]"||(i=Object.keys(r),i.length!==1))return!1;o[t]=[i[0],r[i[0]]]}return!0}function d3(e){if(e===null)return[];var t,n,r,i,o,a=e;for(o=new Array(a.length),t=0,n=a.length;t<n;t+=1)r=a[t],i=Object.keys(r),o[t]=[i[0],r[i[0]]];return o}var u3=new s3("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:c3,construct:d3}),f3=wt,h3=Object.prototype.hasOwnProperty;function p3(e){if(e===null)return!0;var t,n=e;for(t in n)if(h3.call(n,t)&&n[t]!==null)return!1;return!0}function g3(e){return e!==null?e:{}}var m3=new f3("tag:yaml.org,2002:set",{kind:"mapping",resolve:p3,construct:g3}),_3=eo,ca=new _3({include:[up],implicit:[H8,Y8],explicit:[e3,a3,u3,m3]}),w3=wt;function v3(){return!0}function b3(){}function x3(){return""}function y3(e){return typeof e=="undefined"}var k3=new w3("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:v3,construct:b3,predicate:y3,represent:x3}),C3=wt;function E3(e){if(e===null||e.length===0)return!1;var t=e,n=/\/([gim]*)$/.exec(e),r="";return!(t[0]==="/"&&(n&&(r=n[1]),r.length>3||t[t.length-r.length-1]!=="/"))}function A3(e){var t=e,n=/\/([gim]*)$/.exec(e),r="";return t[0]==="/"&&(n&&(r=n[1]),t=t.slice(1,t.length-r.length-1)),new RegExp(t,r)}function S3(e){var t="/"+e.source+"/";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),t}function I3(e){return Object.prototype.toString.call(e)==="[object RegExp]"}var M3=new C3("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:E3,construct:A3,predicate:I3,represent:S3}),Es;try{var T3=ch;Es=T3("esprima")}catch{typeof window!="undefined"&&(Es=window.esprima)}var L3=wt;function O3(e){if(e===null)return!1;try{var t="("+e+")",n=Es.parse(t,{range:!0});return!(n.type!=="Program"||n.body.length!==1||n.body[0].type!=="ExpressionStatement"||n.body[0].expression.type!=="ArrowFunctionExpression"&&n.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function N3(e){var t="("+e+")",n=Es.parse(t,{range:!0}),r=[],i;if(n.type!=="Program"||n.body.length!==1||n.body[0].type!=="ExpressionStatement"||n.body[0].expression.type!=="ArrowFunctionExpression"&&n.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return n.body[0].expression.params.forEach(function(o){r.push(o.name)}),i=n.body[0].expression.body.range,n.body[0].expression.body.type==="BlockStatement"?new Function(r,t.slice(i[0]+1,i[1]-1)):new Function(r,"return "+t.slice(i[0],i[1]))}function R3(e){return e.toString()}function D3(e){return Object.prototype.toString.call(e)==="[object Function]"}var F3=new L3("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:O3,construct:N3,predicate:D3,represent:R3}),y1=eo,tl=y1.DEFAULT=new y1({include:[ca],explicit:[k3,M3,F3]}),qn=rn,pp=la,P3=K_,gp=ca,$3=tl,yr=Object.prototype.hasOwnProperty,As=1,mp=2,_p=3,Ss=4,zl=1,B3=2,k1=3,z3=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,j3=/[\x85\u2028\u2029]/,V3=/[,\[\]\{\}]/,wp=/^(?:!|!!|![a-z\-]+!)$/i,vp=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function C1(e){return Object.prototype.toString.call(e)}function Nn(e){return e===10||e===13}function Vr(e){return e===9||e===32}function $t(e){return e===9||e===32||e===10||e===13}function Ai(e){return e===44||e===91||e===93||e===123||e===125}function U3(e){var t;return 48<=e&&e<=57?e-48:(t=e|32,97<=t&&t<=102?t-97+10:-1)}function H3(e){return e===120?2:e===117?4:e===85?8:0}function Z3(e){return 48<=e&&e<=57?e-48:-1}function E1(e){return e===48?"\0":e===97?"\x07":e===98?"\b":e===116||e===9?" ":e===110?` +`:e===118?"\v":e===102?"\f":e===114?"\r":e===101?"\x1B":e===32?" ":e===34?'"':e===47?"/":e===92?"\\":e===78?"\x85":e===95?"\xA0":e===76?"\u2028":e===80?"\u2029":""}function G3(e){return e<=65535?String.fromCharCode(e):String.fromCharCode((e-65536>>10)+55296,(e-65536&1023)+56320)}var bp=new Array(256),xp=new Array(256);for(var di=0;di<256;di++)bp[di]=E1(di)?1:0,xp[di]=E1(di);function Y3(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||$3,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 yp(e,t){return new pp(t,new P3(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function ge(e,t){throw yp(e,t)}function Is(e,t){e.onWarning&&e.onWarning.call(null,yp(e,t))}var A1={YAML:function(t,n,r){var i,o,a;t.version!==null&&ge(t,"duplication of %YAML directive"),r.length!==1&&ge(t,"YAML directive accepts exactly one argument"),i=/^([0-9]+)\.([0-9]+)$/.exec(r[0]),i===null&&ge(t,"ill-formed argument of the YAML directive"),o=parseInt(i[1],10),a=parseInt(i[2],10),o!==1&&ge(t,"unacceptable YAML version of the document"),t.version=r[0],t.checkLineBreaks=a<2,a!==1&&a!==2&&Is(t,"unsupported YAML version of the document")},TAG:function(t,n,r){var i,o;r.length!==2&&ge(t,"TAG directive accepts exactly two arguments"),i=r[0],o=r[1],wp.test(i)||ge(t,"ill-formed tag handle (first argument) of the TAG directive"),yr.call(t.tagMap,i)&&ge(t,'there is a previously declared suffix for "'+i+'" tag handle'),vp.test(o)||ge(t,"ill-formed tag prefix (second argument) of the TAG directive"),t.tagMap[i]=o}};function wr(e,t,n,r){var i,o,a,s;if(t<n){if(s=e.input.slice(t,n),r)for(i=0,o=s.length;i<o;i+=1)a=s.charCodeAt(i),a===9||32<=a&&a<=1114111||ge(e,"expected valid JSON character");else z3.test(s)&&ge(e,"the stream contains non-printable characters");e.result+=s}}function S1(e,t,n,r){var i,o,a,s;for(qn.isObject(n)||ge(e,"cannot merge mappings; the provided source object is unacceptable"),i=Object.keys(n),a=0,s=i.length;a<s;a+=1)o=i[a],yr.call(t,o)||(t[o]=n[o],r[o]=!0)}function Si(e,t,n,r,i,o,a,s){var l,d;if(Array.isArray(i))for(i=Array.prototype.slice.call(i),l=0,d=i.length;l<d;l+=1)Array.isArray(i[l])&&ge(e,"nested arrays are not supported inside keys"),typeof i=="object"&&C1(i[l])==="[object Object]"&&(i[l]="[object Object]");if(typeof i=="object"&&C1(i)==="[object Object]"&&(i="[object Object]"),i=String(i),t===null&&(t={}),r==="tag:yaml.org,2002:merge")if(Array.isArray(o))for(l=0,d=o.length;l<d;l+=1)S1(e,t,o[l],n);else S1(e,t,o,n);else!e.json&&!yr.call(n,i)&&yr.call(t,i)&&(e.line=a||e.line,e.position=s||e.position,ge(e,"duplicated mapping key")),t[i]=o,delete n[i];return t}function Ad(e){var t;t=e.input.charCodeAt(e.position),t===10?e.position++:t===13?(e.position++,e.input.charCodeAt(e.position)===10&&e.position++):ge(e,"a line break is expected"),e.line+=1,e.lineStart=e.position}function lt(e,t,n){for(var r=0,i=e.input.charCodeAt(e.position);i!==0;){for(;Vr(i);)i=e.input.charCodeAt(++e.position);if(t&&i===35)do i=e.input.charCodeAt(++e.position);while(i!==10&&i!==13&&i!==0);if(Nn(i))for(Ad(e),i=e.input.charCodeAt(e.position),r++,e.lineIndent=0;i===32;)e.lineIndent++,i=e.input.charCodeAt(++e.position);else break}return n!==-1&&r!==0&&e.lineIndent<n&&Is(e,"deficient indentation"),r}function nl(e){var t=e.position,n;return n=e.input.charCodeAt(t),!!((n===45||n===46)&&n===e.input.charCodeAt(t+1)&&n===e.input.charCodeAt(t+2)&&(t+=3,n=e.input.charCodeAt(t),n===0||$t(n)))}function Sd(e,t){t===1?e.result+=" ":t>1&&(e.result+=qn.repeat(` +`,t-1))}function W3(e,t,n){var r,i,o,a,s,l,d,c,u=e.kind,f=e.result,h;if(h=e.input.charCodeAt(e.position),$t(h)||Ai(h)||h===35||h===38||h===42||h===33||h===124||h===62||h===39||h===34||h===37||h===64||h===96||(h===63||h===45)&&(i=e.input.charCodeAt(e.position+1),$t(i)||n&&Ai(i)))return!1;for(e.kind="scalar",e.result="",o=a=e.position,s=!1;h!==0;){if(h===58){if(i=e.input.charCodeAt(e.position+1),$t(i)||n&&Ai(i))break}else if(h===35){if(r=e.input.charCodeAt(e.position-1),$t(r))break}else{if(e.position===e.lineStart&&nl(e)||n&&Ai(h))break;if(Nn(h))if(l=e.line,d=e.lineStart,c=e.lineIndent,lt(e,!1,-1),e.lineIndent>=t){s=!0,h=e.input.charCodeAt(e.position);continue}else{e.position=a,e.line=l,e.lineStart=d,e.lineIndent=c;break}}s&&(wr(e,o,a,!1),Sd(e,e.line-l),o=a=e.position,s=!1),Vr(h)||(a=e.position+1),h=e.input.charCodeAt(++e.position)}return wr(e,o,a,!1),e.result?!0:(e.kind=u,e.result=f,!1)}function q3(e,t){var n,r,i;if(n=e.input.charCodeAt(e.position),n!==39)return!1;for(e.kind="scalar",e.result="",e.position++,r=i=e.position;(n=e.input.charCodeAt(e.position))!==0;)if(n===39)if(wr(e,r,e.position,!0),n=e.input.charCodeAt(++e.position),n===39)r=e.position,e.position++,i=e.position;else return!0;else Nn(n)?(wr(e,r,i,!0),Sd(e,lt(e,!1,t)),r=i=e.position):e.position===e.lineStart&&nl(e)?ge(e,"unexpected end of the document within a single quoted scalar"):(e.position++,i=e.position);ge(e,"unexpected end of the stream within a single quoted scalar")}function X3(e,t){var n,r,i,o,a,s;if(s=e.input.charCodeAt(e.position),s!==34)return!1;for(e.kind="scalar",e.result="",e.position++,n=r=e.position;(s=e.input.charCodeAt(e.position))!==0;){if(s===34)return wr(e,n,e.position,!0),e.position++,!0;if(s===92){if(wr(e,n,e.position,!0),s=e.input.charCodeAt(++e.position),Nn(s))lt(e,!1,t);else if(s<256&&bp[s])e.result+=xp[s],e.position++;else if((a=H3(s))>0){for(i=a,o=0;i>0;i--)s=e.input.charCodeAt(++e.position),(a=U3(s))>=0?o=(o<<4)+a:ge(e,"expected hexadecimal character");e.result+=G3(o),e.position++}else ge(e,"unknown escape sequence");n=r=e.position}else Nn(s)?(wr(e,n,r,!0),Sd(e,lt(e,!1,t)),n=r=e.position):e.position===e.lineStart&&nl(e)?ge(e,"unexpected end of the document within a double quoted scalar"):(e.position++,r=e.position)}ge(e,"unexpected end of the stream within a double quoted scalar")}function K3(e,t){var n=!0,r,i=e.tag,o,a=e.anchor,s,l,d,c,u,f={},h,w,_,g;if(g=e.input.charCodeAt(e.position),g===91)l=93,u=!1,o=[];else if(g===123)l=125,u=!0,o={};else return!1;for(e.anchor!==null&&(e.anchorMap[e.anchor]=o),g=e.input.charCodeAt(++e.position);g!==0;){if(lt(e,!0,t),g=e.input.charCodeAt(e.position),g===l)return e.position++,e.tag=i,e.anchor=a,e.kind=u?"mapping":"sequence",e.result=o,!0;n||ge(e,"missed comma between flow collection entries"),w=h=_=null,d=c=!1,g===63&&(s=e.input.charCodeAt(e.position+1),$t(s)&&(d=c=!0,e.position++,lt(e,!0,t))),r=e.line,Zi(e,t,As,!1,!0),w=e.tag,h=e.result,lt(e,!0,t),g=e.input.charCodeAt(e.position),(c||e.line===r)&&g===58&&(d=!0,g=e.input.charCodeAt(++e.position),lt(e,!0,t),Zi(e,t,As,!1,!0),_=e.result),u?Si(e,o,f,w,h,_):d?o.push(Si(e,null,f,w,h,_)):o.push(h),lt(e,!0,t),g=e.input.charCodeAt(e.position),g===44?(n=!0,g=e.input.charCodeAt(++e.position)):n=!1}ge(e,"unexpected end of the stream within a flow collection")}function J3(e,t){var n,r,i=zl,o=!1,a=!1,s=t,l=0,d=!1,c,u;if(u=e.input.charCodeAt(e.position),u===124)r=!1;else if(u===62)r=!0;else return!1;for(e.kind="scalar",e.result="";u!==0;)if(u=e.input.charCodeAt(++e.position),u===43||u===45)zl===i?i=u===43?k1:B3:ge(e,"repeat of a chomping mode identifier");else if((c=Z3(u))>=0)c===0?ge(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):a?ge(e,"repeat of an indentation width identifier"):(s=t+c-1,a=!0);else break;if(Vr(u)){do u=e.input.charCodeAt(++e.position);while(Vr(u));if(u===35)do u=e.input.charCodeAt(++e.position);while(!Nn(u)&&u!==0)}for(;u!==0;){for(Ad(e),e.lineIndent=0,u=e.input.charCodeAt(e.position);(!a||e.lineIndent<s)&&u===32;)e.lineIndent++,u=e.input.charCodeAt(++e.position);if(!a&&e.lineIndent>s&&(s=e.lineIndent),Nn(u)){l++;continue}if(e.lineIndent<s){i===k1?e.result+=qn.repeat(` +`,o?1+l:l):i===zl&&o&&(e.result+=` +`);break}for(r?Vr(u)?(d=!0,e.result+=qn.repeat(` +`,o?1+l:l)):d?(d=!1,e.result+=qn.repeat(` +`,l+1)):l===0?o&&(e.result+=" "):e.result+=qn.repeat(` +`,l):e.result+=qn.repeat(` +`,o?1+l:l),o=!0,a=!0,l=0,n=e.position;!Nn(u)&&u!==0;)u=e.input.charCodeAt(++e.position);wr(e,n,e.position,!1)}return!0}function I1(e,t){var n,r=e.tag,i=e.anchor,o=[],a,s=!1,l;for(e.anchor!==null&&(e.anchorMap[e.anchor]=o),l=e.input.charCodeAt(e.position);l!==0&&!(l!==45||(a=e.input.charCodeAt(e.position+1),!$t(a)));){if(s=!0,e.position++,lt(e,!0,-1)&&e.lineIndent<=t){o.push(null),l=e.input.charCodeAt(e.position);continue}if(n=e.line,Zi(e,t,_p,!1,!0),o.push(e.result),lt(e,!0,-1),l=e.input.charCodeAt(e.position),(e.line===n||e.lineIndent>t)&&l!==0)ge(e,"bad indentation of a sequence entry");else if(e.lineIndent<t)break}return s?(e.tag=r,e.anchor=i,e.kind="sequence",e.result=o,!0):!1}function Q3(e,t,n){var r,i,o,a,s=e.tag,l=e.anchor,d={},c={},u=null,f=null,h=null,w=!1,_=!1,g;for(e.anchor!==null&&(e.anchorMap[e.anchor]=d),g=e.input.charCodeAt(e.position);g!==0;){if(r=e.input.charCodeAt(e.position+1),o=e.line,a=e.position,(g===63||g===58)&&$t(r))g===63?(w&&(Si(e,d,c,u,f,null),u=f=h=null),_=!0,w=!0,i=!0):w?(w=!1,i=!0):ge(e,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),e.position+=1,g=r;else if(Zi(e,n,mp,!1,!0))if(e.line===o){for(g=e.input.charCodeAt(e.position);Vr(g);)g=e.input.charCodeAt(++e.position);if(g===58)g=e.input.charCodeAt(++e.position),$t(g)||ge(e,"a whitespace character is expected after the key-value separator within a block mapping"),w&&(Si(e,d,c,u,f,null),u=f=h=null),_=!0,w=!1,i=!1,u=e.tag,f=e.result;else if(_)ge(e,"can not read an implicit mapping pair; a colon is missed");else return e.tag=s,e.anchor=l,!0}else if(_)ge(e,"can not read a block mapping entry; a multiline key may not be an implicit key");else return e.tag=s,e.anchor=l,!0;else break;if((e.line===o||e.lineIndent>t)&&(Zi(e,t,Ss,!0,i)&&(w?f=e.result:h=e.result),w||(Si(e,d,c,u,f,h,o,a),u=f=h=null),lt(e,!0,-1),g=e.input.charCodeAt(e.position)),e.lineIndent>t&&g!==0)ge(e,"bad indentation of a mapping entry");else if(e.lineIndent<t)break}return w&&Si(e,d,c,u,f,null),_&&(e.tag=s,e.anchor=l,e.kind="mapping",e.result=d),_}function ew(e){var t,n=!1,r=!1,i,o,a;if(a=e.input.charCodeAt(e.position),a!==33)return!1;if(e.tag!==null&&ge(e,"duplication of a tag property"),a=e.input.charCodeAt(++e.position),a===60?(n=!0,a=e.input.charCodeAt(++e.position)):a===33?(r=!0,i="!!",a=e.input.charCodeAt(++e.position)):i="!",t=e.position,n){do a=e.input.charCodeAt(++e.position);while(a!==0&&a!==62);e.position<e.length?(o=e.input.slice(t,e.position),a=e.input.charCodeAt(++e.position)):ge(e,"unexpected end of the stream within a verbatim tag")}else{for(;a!==0&&!$t(a);)a===33&&(r?ge(e,"tag suffix cannot contain exclamation marks"):(i=e.input.slice(t-1,e.position+1),wp.test(i)||ge(e,"named tag handle cannot contain such characters"),r=!0,t=e.position+1)),a=e.input.charCodeAt(++e.position);o=e.input.slice(t,e.position),V3.test(o)&&ge(e,"tag suffix cannot contain flow indicator characters")}return o&&!vp.test(o)&&ge(e,"tag name cannot contain such characters: "+o),n?e.tag=o:yr.call(e.tagMap,i)?e.tag=e.tagMap[i]+o:i==="!"?e.tag="!"+o:i==="!!"?e.tag="tag:yaml.org,2002:"+o:ge(e,'undeclared tag handle "'+i+'"'),!0}function tw(e){var t,n;if(n=e.input.charCodeAt(e.position),n!==38)return!1;for(e.anchor!==null&&ge(e,"duplication of an anchor property"),n=e.input.charCodeAt(++e.position),t=e.position;n!==0&&!$t(n)&&!Ai(n);)n=e.input.charCodeAt(++e.position);return e.position===t&&ge(e,"name of an anchor node must contain at least one character"),e.anchor=e.input.slice(t,e.position),!0}function nw(e){var t,n,r;if(r=e.input.charCodeAt(e.position),r!==42)return!1;for(r=e.input.charCodeAt(++e.position),t=e.position;r!==0&&!$t(r)&&!Ai(r);)r=e.input.charCodeAt(++e.position);return e.position===t&&ge(e,"name of an alias node must contain at least one character"),n=e.input.slice(t,e.position),yr.call(e.anchorMap,n)||ge(e,'unidentified alias "'+n+'"'),e.result=e.anchorMap[n],lt(e,!0,-1),!0}function Zi(e,t,n,r,i){var o,a,s,l=1,d=!1,c=!1,u,f,h,w,_;if(e.listener!==null&&e.listener("open",e),e.tag=null,e.anchor=null,e.kind=null,e.result=null,o=a=s=Ss===n||_p===n,r&<(e,!0,-1)&&(d=!0,e.lineIndent>t?l=1:e.lineIndent===t?l=0:e.lineIndent<t&&(l=-1)),l===1)for(;ew(e)||tw(e);)lt(e,!0,-1)?(d=!0,s=o,e.lineIndent>t?l=1:e.lineIndent===t?l=0:e.lineIndent<t&&(l=-1)):s=!1;if(s&&(s=d||i),(l===1||Ss===n)&&(As===n||mp===n?w=t:w=t+1,_=e.position-e.lineStart,l===1?s&&(I1(e,_)||Q3(e,_,w))||K3(e,w)?c=!0:(a&&J3(e,w)||q3(e,w)||X3(e,w)?c=!0:nw(e)?(c=!0,(e.tag!==null||e.anchor!==null)&&ge(e,"alias node should not have any properties")):W3(e,w,As===n)&&(c=!0,e.tag===null&&(e.tag="?")),e.anchor!==null&&(e.anchorMap[e.anchor]=e.result)):l===0&&(c=s&&I1(e,_))),e.tag!==null&&e.tag!=="!")if(e.tag==="?"){for(e.result!==null&&e.kind!=="scalar"&&ge(e,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+e.kind+'"'),u=0,f=e.implicitTypes.length;u<f;u+=1)if(h=e.implicitTypes[u],h.resolve(e.result)){e.result=h.construct(e.result),e.tag=h.tag,e.anchor!==null&&(e.anchorMap[e.anchor]=e.result);break}}else yr.call(e.typeMap[e.kind||"fallback"],e.tag)?(h=e.typeMap[e.kind||"fallback"][e.tag],e.result!==null&&h.kind!==e.kind&&ge(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+h.kind+'", not "'+e.kind+'"'),h.resolve(e.result)?(e.result=h.construct(e.result),e.anchor!==null&&(e.anchorMap[e.anchor]=e.result)):ge(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):ge(e,"unknown tag !<"+e.tag+">");return e.listener!==null&&e.listener("close",e),e.tag!==null||e.anchor!==null||c}function rw(e){var t=e.position,n,r,i,o=!1,a;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap={},e.anchorMap={};(a=e.input.charCodeAt(e.position))!==0&&(lt(e,!0,-1),a=e.input.charCodeAt(e.position),!(e.lineIndent>0||a!==37));){for(o=!0,a=e.input.charCodeAt(++e.position),n=e.position;a!==0&&!$t(a);)a=e.input.charCodeAt(++e.position);for(r=e.input.slice(n,e.position),i=[],r.length<1&&ge(e,"directive name must not be less than one character in length");a!==0;){for(;Vr(a);)a=e.input.charCodeAt(++e.position);if(a===35){do a=e.input.charCodeAt(++e.position);while(a!==0&&!Nn(a));break}if(Nn(a))break;for(n=e.position;a!==0&&!$t(a);)a=e.input.charCodeAt(++e.position);i.push(e.input.slice(n,e.position))}a!==0&&Ad(e),yr.call(A1,r)?A1[r](e,r,i):Is(e,'unknown document directive "'+r+'"')}if(lt(e,!0,-1),e.lineIndent===0&&e.input.charCodeAt(e.position)===45&&e.input.charCodeAt(e.position+1)===45&&e.input.charCodeAt(e.position+2)===45?(e.position+=3,lt(e,!0,-1)):o&&ge(e,"directives end mark is expected"),Zi(e,e.lineIndent-1,Ss,!1,!0),lt(e,!0,-1),e.checkLineBreaks&&j3.test(e.input.slice(t,e.position))&&Is(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&nl(e)){e.input.charCodeAt(e.position)===46&&(e.position+=3,lt(e,!0,-1));return}if(e.position<e.length-1)ge(e,"end of the stream or a document separator is expected");else return}function kp(e,t){e=String(e),t=t||{},e.length!==0&&(e.charCodeAt(e.length-1)!==10&&e.charCodeAt(e.length-1)!==13&&(e+=` +`),e.charCodeAt(0)===65279&&(e=e.slice(1)));var n=new Y3(e,t),r=e.indexOf("\0");for(r!==-1&&(n.position=r,ge(n,"null byte is not allowed in input")),n.input+="\0";n.input.charCodeAt(n.position)===32;)n.lineIndent+=1,n.position+=1;for(;n.position<n.length-1;)rw(n);return n.documents}function Cp(e,t,n){t!==null&&typeof t=="object"&&typeof n=="undefined"&&(n=t,t=null);var r=kp(e,n);if(typeof t!="function")return r;for(var i=0,o=r.length;i<o;i+=1)t(r[i])}function Ep(e,t){var n=kp(e,t);if(n.length!==0){if(n.length===1)return n[0];throw new pp("expected a single document in the stream, but found more")}}function iw(e,t,n){return typeof t=="object"&&t!==null&&typeof n=="undefined"&&(n=t,t=null),Cp(e,t,qn.extend({schema:gp},n))}function ow(e,t){return Ep(e,qn.extend({schema:gp},t))}sa.loadAll=Cp;sa.load=Ep;sa.safeLoadAll=iw;sa.safeLoad=ow;var Id={},da=rn,ua=la,aw=tl,sw=ca,Ap=Object.prototype.toString,Sp=Object.prototype.hasOwnProperty,lw=9,zo=10,cw=13,dw=32,uw=33,fw=34,Ip=35,hw=37,pw=38,gw=39,mw=42,Mp=44,_w=45,Tp=58,ww=61,vw=62,bw=63,xw=64,Lp=91,Op=93,yw=96,Np=123,kw=124,Rp=125,St={};St[0]="\\0";St[7]="\\a";St[8]="\\b";St[9]="\\t";St[10]="\\n";St[11]="\\v";St[12]="\\f";St[13]="\\r";St[27]="\\e";St[34]='\\"';St[92]="\\\\";St[133]="\\N";St[160]="\\_";St[8232]="\\L";St[8233]="\\P";var Cw=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function Ew(e,t){var n,r,i,o,a,s,l;if(t===null)return{};for(n={},r=Object.keys(t),i=0,o=r.length;i<o;i+=1)a=r[i],s=String(t[a]),a.slice(0,2)==="!!"&&(a="tag:yaml.org,2002:"+a.slice(2)),l=e.compiledTypeMap.fallback[a],l&&Sp.call(l.styleAliases,s)&&(s=l.styleAliases[s]),n[a]=s;return n}function M1(e){var t,n,r;if(t=e.toString(16).toUpperCase(),e<=255)n="x",r=2;else if(e<=65535)n="u",r=4;else if(e<=4294967295)n="U",r=8;else throw new ua("code point within a string may not be greater than 0xFFFFFFFF");return"\\"+n+da.repeat("0",r-t.length)+t}function Aw(e){this.schema=e.schema||aw,this.indent=Math.max(1,e.indent||2),this.noArrayIndent=e.noArrayIndent||!1,this.skipInvalid=e.skipInvalid||!1,this.flowLevel=da.isNothing(e.flowLevel)?-1:e.flowLevel,this.styleMap=Ew(this.schema,e.styles||null),this.sortKeys=e.sortKeys||!1,this.lineWidth=e.lineWidth||80,this.noRefs=e.noRefs||!1,this.noCompatMode=e.noCompatMode||!1,this.condenseFlow=e.condenseFlow||!1,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function T1(e,t){for(var n=da.repeat(" ",t),r=0,i=-1,o="",a,s=e.length;r<s;)i=e.indexOf(` +`,r),i===-1?(a=e.slice(r),r=s):(a=e.slice(r,i+1),r=i+1),a.length&&a!==` +`&&(o+=n),o+=a;return o}function Pc(e,t){return` +`+da.repeat(" ",e.indent*t)}function Sw(e,t){var n,r,i;for(n=0,r=e.implicitTypes.length;n<r;n+=1)if(i=e.implicitTypes[n],i.resolve(t))return!0;return!1}function Md(e){return e===dw||e===lw}function Gi(e){return 32<=e&&e<=126||161<=e&&e<=55295&&e!==8232&&e!==8233||57344<=e&&e<=65533&&e!==65279||65536<=e&&e<=1114111}function Iw(e){return Gi(e)&&!Md(e)&&e!==65279&&e!==cw&&e!==zo}function L1(e,t){return Gi(e)&&e!==65279&&e!==Mp&&e!==Lp&&e!==Op&&e!==Np&&e!==Rp&&e!==Tp&&(e!==Ip||t&&Iw(t))}function Mw(e){return Gi(e)&&e!==65279&&!Md(e)&&e!==_w&&e!==bw&&e!==Tp&&e!==Mp&&e!==Lp&&e!==Op&&e!==Np&&e!==Rp&&e!==Ip&&e!==pw&&e!==mw&&e!==uw&&e!==kw&&e!==ww&&e!==vw&&e!==gw&&e!==fw&&e!==hw&&e!==xw&&e!==yw}function Dp(e){var t=/^\n* /;return t.test(e)}var Fp=1,Pp=2,$p=3,Bp=4,Qa=5;function Tw(e,t,n,r,i){var o,a,s,l=!1,d=!1,c=r!==-1,u=-1,f=Mw(e.charCodeAt(0))&&!Md(e.charCodeAt(e.length-1));if(t)for(o=0;o<e.length;o++){if(a=e.charCodeAt(o),!Gi(a))return Qa;s=o>0?e.charCodeAt(o-1):null,f=f&&L1(a,s)}else{for(o=0;o<e.length;o++){if(a=e.charCodeAt(o),a===zo)l=!0,c&&(d=d||o-u-1>r&&e[u+1]!==" ",u=o);else if(!Gi(a))return Qa;s=o>0?e.charCodeAt(o-1):null,f=f&&L1(a,s)}d=d||c&&o-u-1>r&&e[u+1]!==" "}return!l&&!d?f&&!i(e)?Fp:Pp:n>9&&Dp(e)?Qa:d?Bp:$p}function Lw(e,t,n,r){e.dump=function(){if(t.length===0)return"''";if(!e.noCompatMode&&Cw.indexOf(t)!==-1)return"'"+t+"'";var i=e.indent*Math.max(1,n),o=e.lineWidth===-1?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-i),a=r||e.flowLevel>-1&&n>=e.flowLevel;function s(l){return Sw(e,l)}switch(Tw(t,a,e.indent,o,s)){case Fp:return t;case Pp:return"'"+t.replace(/'/g,"''")+"'";case $p:return"|"+O1(t,e.indent)+N1(T1(t,i));case Bp:return">"+O1(t,e.indent)+N1(T1(Ow(t,o),i));case Qa:return'"'+Nw(t)+'"';default:throw new ua("impossible error: invalid scalar style")}}()}function O1(e,t){var n=Dp(e)?String(t):"",r=e[e.length-1]===` +`,i=r&&(e[e.length-2]===` +`||e===` +`),o=i?"+":r?"":"-";return n+o+` +`}function N1(e){return e[e.length-1]===` +`?e.slice(0,-1):e}function Ow(e,t){for(var n=/(\n+)([^\n]*)/g,r=function(){var d=e.indexOf(` +`);return d=d!==-1?d:e.length,n.lastIndex=d,R1(e.slice(0,d),t)}(),i=e[0]===` +`||e[0]===" ",o,a;a=n.exec(e);){var s=a[1],l=a[2];o=l[0]===" ",r+=s+(!i&&!o&&l!==""?` +`:"")+R1(l,t),i=o}return r}function R1(e,t){if(e===""||e[0]===" ")return e;for(var n=/ [^ ]/g,r,i=0,o,a=0,s=0,l="";r=n.exec(e);)s=r.index,s-i>t&&(o=a>i?a:s,l+=` +`+e.slice(i,o),i=o+1),a=s;return l+=` +`,e.length-i>t&&a>i?l+=e.slice(i,a)+` +`+e.slice(a+1):l+=e.slice(i),l.slice(1)}function Nw(e){for(var t="",n,r,i,o=0;o<e.length;o++){if(n=e.charCodeAt(o),n>=55296&&n<=56319&&(r=e.charCodeAt(o+1),r>=56320&&r<=57343)){t+=M1((n-55296)*1024+r-56320+65536),o++;continue}i=St[n],t+=!i&&Gi(n)?e[o]:i||M1(n)}return t}function Rw(e,t,n){var r="",i=e.tag,o,a;for(o=0,a=n.length;o<a;o+=1)Yr(e,t,n[o],!1,!1)&&(o!==0&&(r+=","+(e.condenseFlow?"":" ")),r+=e.dump);e.tag=i,e.dump="["+r+"]"}function Dw(e,t,n,r){var i="",o=e.tag,a,s;for(a=0,s=n.length;a<s;a+=1)Yr(e,t+1,n[a],!0,!0)&&((!r||a!==0)&&(i+=Pc(e,t)),e.dump&&zo===e.dump.charCodeAt(0)?i+="-":i+="- ",i+=e.dump);e.tag=o,e.dump=i||"[]"}function Fw(e,t,n){var r="",i=e.tag,o=Object.keys(n),a,s,l,d,c;for(a=0,s=o.length;a<s;a+=1)c="",a!==0&&(c+=", "),e.condenseFlow&&(c+='"'),l=o[a],d=n[l],Yr(e,t,l,!1,!1)&&(e.dump.length>1024&&(c+="? "),c+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),Yr(e,t,d,!1,!1)&&(c+=e.dump,r+=c));e.tag=i,e.dump="{"+r+"}"}function Pw(e,t,n,r){var i="",o=e.tag,a=Object.keys(n),s,l,d,c,u,f;if(e.sortKeys===!0)a.sort();else if(typeof e.sortKeys=="function")a.sort(e.sortKeys);else if(e.sortKeys)throw new ua("sortKeys must be a boolean or a function");for(s=0,l=a.length;s<l;s+=1)f="",(!r||s!==0)&&(f+=Pc(e,t)),d=a[s],c=n[d],Yr(e,t+1,d,!0,!0,!0)&&(u=e.tag!==null&&e.tag!=="?"||e.dump&&e.dump.length>1024,u&&(e.dump&&zo===e.dump.charCodeAt(0)?f+="?":f+="? "),f+=e.dump,u&&(f+=Pc(e,t)),Yr(e,t+1,c,!0,u)&&(e.dump&&zo===e.dump.charCodeAt(0)?f+=":":f+=": ",f+=e.dump,i+=f));e.tag=o,e.dump=i||"{}"}function D1(e,t,n){var r,i,o,a,s,l;for(i=n?e.explicitTypes:e.implicitTypes,o=0,a=i.length;o<a;o+=1)if(s=i[o],(s.instanceOf||s.predicate)&&(!s.instanceOf||typeof t=="object"&&t instanceof s.instanceOf)&&(!s.predicate||s.predicate(t))){if(e.tag=n?s.tag:"?",s.represent){if(l=e.styleMap[s.tag]||s.defaultStyle,Ap.call(s.represent)==="[object Function]")r=s.represent(t,l);else if(Sp.call(s.represent,l))r=s.represent[l](t,l);else throw new ua("!<"+s.tag+'> tag resolver accepts not "'+l+'" style');e.dump=r}return!0}return!1}function Yr(e,t,n,r,i,o){e.tag=null,e.dump=n,D1(e,n,!1)||D1(e,n,!0);var a=Ap.call(e.dump);r&&(r=e.flowLevel<0||e.flowLevel>t);var s=a==="[object Object]"||a==="[object Array]",l,d;if(s&&(l=e.duplicates.indexOf(n),d=l!==-1),(e.tag!==null&&e.tag!=="?"||d||e.indent!==2&&t>0)&&(i=!1),d&&e.usedDuplicates[l])e.dump="*ref_"+l;else{if(s&&d&&!e.usedDuplicates[l]&&(e.usedDuplicates[l]=!0),a==="[object Object]")r&&Object.keys(e.dump).length!==0?(Pw(e,t,e.dump,i),d&&(e.dump="&ref_"+l+e.dump)):(Fw(e,t,e.dump),d&&(e.dump="&ref_"+l+" "+e.dump));else if(a==="[object Array]"){var c=e.noArrayIndent&&t>0?t-1:t;r&&e.dump.length!==0?(Dw(e,c,e.dump,i),d&&(e.dump="&ref_"+l+e.dump)):(Rw(e,c,e.dump),d&&(e.dump="&ref_"+l+" "+e.dump))}else if(a==="[object String]")e.tag!=="?"&&Lw(e,e.dump,t,o);else{if(e.skipInvalid)return!1;throw new ua("unacceptable kind of an object to dump "+a)}e.tag!==null&&e.tag!=="?"&&(e.dump="!<"+e.tag+"> "+e.dump)}return!0}function $w(e,t){var n=[],r=[],i,o;for($c(e,n,r),i=0,o=r.length;i<o;i+=1)t.duplicates.push(n[r[i]]);t.usedDuplicates=new Array(o)}function $c(e,t,n){var r,i,o;if(e!==null&&typeof e=="object")if(i=t.indexOf(e),i!==-1)n.indexOf(i)===-1&&n.push(i);else if(t.push(e),Array.isArray(e))for(i=0,o=e.length;i<o;i+=1)$c(e[i],t,n);else for(r=Object.keys(e),i=0,o=r.length;i<o;i+=1)$c(e[r[i]],t,n)}function zp(e,t){t=t||{};var n=new Aw(t);return n.noRefs||$w(e,n),Yr(n,0,e,!0,!0)?n.dump+` +`:""}function Bw(e,t){return zp(e,da.extend({schema:sw},t))}Id.dump=zp;Id.safeDump=Bw;var rl=sa,jp=Id;function il(e){return function(){throw new Error("Function "+e+" is deprecated and cannot be used.")}}ot.Type=wt;ot.Schema=eo;ot.FAILSAFE_SCHEMA=Cd;ot.JSON_SCHEMA=dp;ot.CORE_SCHEMA=up;ot.DEFAULT_SAFE_SCHEMA=ca;ot.DEFAULT_FULL_SCHEMA=tl;ot.load=rl.load;ot.loadAll=rl.loadAll;ot.safeLoad=rl.safeLoad;ot.safeLoadAll=rl.safeLoadAll;ot.dump=jp.dump;ot.safeDump=jp.safeDump;ot.YAMLException=la;ot.MINIMAL_SCHEMA=Cd;ot.SAFE_SCHEMA=ca;ot.DEFAULT_SCHEMA=tl;ot.scan=il("scan");ot.parse=il("parse");ot.compose=il("compose");ot.addConstructor=il("addConstructor");var zw=ot,Bc=zw,jw=Vw;function Ni(e){return e instanceof Buffer?Buffer.from(e):new e.constructor(e.buffer.slice(),e.byteOffset,e.length)}function Vw(e){if(e=e||{},e.circles)return Uw(e);return e.proto?r:n;function t(i,o){for(var a=Object.keys(i),s=new Array(a.length),l=0;l<a.length;l++){var d=a[l],c=i[d];typeof c!="object"||c===null?s[d]=c:c instanceof Date?s[d]=new Date(c):ArrayBuffer.isView(c)?s[d]=Ni(c):s[d]=o(c)}return s}function n(i){if(typeof i!="object"||i===null)return i;if(i instanceof Date)return new Date(i);if(Array.isArray(i))return t(i,n);if(i instanceof Map)return new Map(t(Array.from(i),n));if(i instanceof Set)return new Set(t(Array.from(i),n));var o={};for(var a in i)if(Object.hasOwnProperty.call(i,a)!==!1){var s=i[a];typeof s!="object"||s===null?o[a]=s:s instanceof Date?o[a]=new Date(s):s instanceof Map?o[a]=new Map(t(Array.from(s),n)):s instanceof Set?o[a]=new Set(t(Array.from(s),n)):ArrayBuffer.isView(s)?o[a]=Ni(s):o[a]=n(s)}return o}function r(i){if(typeof i!="object"||i===null)return i;if(i instanceof Date)return new Date(i);if(Array.isArray(i))return t(i,r);if(i instanceof Map)return new Map(t(Array.from(i),r));if(i instanceof Set)return new Set(t(Array.from(i),r));var o={};for(var a in i){var s=i[a];typeof s!="object"||s===null?o[a]=s:s instanceof Date?o[a]=new Date(s):s instanceof Map?o[a]=new Map(t(Array.from(s),r)):s instanceof Set?o[a]=new Set(t(Array.from(s),r)):ArrayBuffer.isView(s)?o[a]=Ni(s):o[a]=r(s)}return o}}function Uw(e){var t=[],n=[];return e.proto?o:i;function r(a,s){for(var l=Object.keys(a),d=new Array(l.length),c=0;c<l.length;c++){var u=l[c],f=a[u];if(typeof f!="object"||f===null)d[u]=f;else if(f instanceof Date)d[u]=new Date(f);else if(ArrayBuffer.isView(f))d[u]=Ni(f);else{var h=t.indexOf(f);h!==-1?d[u]=n[h]:d[u]=s(f)}}return d}function i(a){if(typeof a!="object"||a===null)return a;if(a instanceof Date)return new Date(a);if(Array.isArray(a))return r(a,i);if(a instanceof Map)return new Map(r(Array.from(a),i));if(a instanceof Set)return new Set(r(Array.from(a),i));var s={};t.push(a),n.push(s);for(var l in a)if(Object.hasOwnProperty.call(a,l)!==!1){var d=a[l];if(typeof d!="object"||d===null)s[l]=d;else if(d instanceof Date)s[l]=new Date(d);else if(d instanceof Map)s[l]=new Map(r(Array.from(d),i));else if(d instanceof Set)s[l]=new Set(r(Array.from(d),i));else if(ArrayBuffer.isView(d))s[l]=Ni(d);else{var c=t.indexOf(d);c!==-1?s[l]=n[c]:s[l]=i(d)}}return t.pop(),n.pop(),s}function o(a){if(typeof a!="object"||a===null)return a;if(a instanceof Date)return new Date(a);if(Array.isArray(a))return r(a,o);if(a instanceof Map)return new Map(r(Array.from(a),o));if(a instanceof Set)return new Set(r(Array.from(a),o));var s={};t.push(a),n.push(s);for(var l in a){var d=a[l];if(typeof d!="object"||d===null)s[l]=d;else if(d instanceof Date)s[l]=new Date(d);else if(d instanceof Map)s[l]=new Map(r(Array.from(d),o));else if(d instanceof Set)s[l]=new Set(r(Array.from(d),o));else if(ArrayBuffer.isView(d))s[l]=Ni(d);else{var c=t.indexOf(d);c!==-1?s[l]=n[c]:s[l]=o(d)}}return t.pop(),n.pop(),s}}var Fe=JSON.parse('{"languages":[{"code":"de","name":"Deutsch"},{"code":"en","name":"English"},{"code":"es","name":"Espa\xF1ol"},{"code":"fr","name":"Fran\xE7ais"},{"code":"it","name":"Italiano"},{"code":"ja","name":"\u65E5\u672C\u8A9E"},{"code":"ko","name":"\uD55C\uAD6D\uC5B4","schemas":false},{"code":"pl","name":"Polski"},{"code":"pt","name":"Portugu\xEAs"},{"code":"ru","name":"\u0420\u0443\u0441\u0441\u043A\u0438\u0439"},{"code":"sk","name":"Sloven\u010Dina","schemas":false},{"code":"zh-cn","name":"\u7B80\u4F53\u4E2D\u6587"},{"code":"zh-tw","name":"\u6B63\u9AD4\u4E2D\u6587"}],"versions":[{"id":"1.15","ref":"1.15.2","pack_format":5},{"id":"1.16","ref":"1.16.5","pack_format":6},{"id":"1.17","ref":"1.17.1","pack_format":7},{"id":"1.18","ref":"1.18.1","pack_format":8},{"id":"1.18.2","ref":"1.18.2","pack_format":9},{"id":"1.19","dynamic":true,"pack_format":10}],"generators":[{"id":"loot_table","url":"loot-table","path":"loot_tables","schema":"loot_table"},{"id":"predicate","url":"predicate","path":"predicates","schema":"predicate"},{"id":"item_modifier","url":"item-modifier","path":"item_modifiers","schema":"item_modifier","minVersion":"1.17"},{"id":"advancement","url":"advancement","path":"advancements","schema":"advancement"},{"id":"recipe","url":"recipe","path":"recipes","schema":"recipe"},{"id":"text_component","url":"text-component","schema":"text_component","noPath":true},{"id":"chat_type","url":"chat-type","schema":"chat_type","minVersion":"1.19"},{"id":"pack_mcmeta","url":"pack-mcmeta","schema":"pack_mcmeta"},{"id":"dimension","url":"dimension","schema":"dimension","tags":["worldgen"],"minVersion":"1.16"},{"id":"dimension_type","url":"dimension-type","schema":"dimension_type","tags":["worldgen"],"minVersion":"1.16"},{"id":"worldgen/biome","url":"worldgen/biome","tags":["worldgen"],"schema":"biome","minVersion":"1.16"},{"id":"worldgen/configured_carver","url":"worldgen/carver","tags":["worldgen"],"schema":"configured_carver","minVersion":"1.16"},{"id":"worldgen/configured_feature","url":"worldgen/feature","tags":["worldgen"],"schema":"configured_feature","minVersion":"1.16"},{"id":"worldgen/placed_feature","url":"worldgen/placed-feature","tags":["worldgen"],"schema":"placed_feature","minVersion":"1.18"},{"id":"worldgen/density_function","url":"worldgen/density-function","tags":["worldgen"],"schema":"density_function","minVersion":"1.18.2"},{"id":"worldgen/noise","url":"worldgen/noise","tags":["worldgen"],"schema":"noise_parameters","minVersion":"1.18"},{"id":"worldgen/noise_settings","url":"worldgen/noise-settings","tags":["worldgen"],"schema":"noise_settings","minVersion":"1.16"},{"id":"worldgen/configured_structure_feature","url":"worldgen/structure-feature","tags":["worldgen"],"schema":"configured_structure_feature","minVersion":"1.16","maxVersion":"1.18.2"},{"id":"worldgen/structure","url":"worldgen/structure","tags":["worldgen"],"schema":"structure","minVersion":"1.19"},{"id":"worldgen/structure_set","url":"worldgen/structure-set","tags":["worldgen"],"schema":"structure_set","minVersion":"1.18.2"},{"id":"worldgen/configured_surface_builder","url":"worldgen/surface-builder","tags":["worldgen"],"schema":"configured_surface_builder","minVersion":"1.16","maxVersion":"1.17"},{"id":"worldgen/processor_list","url":"worldgen/processor-list","tags":["worldgen"],"schema":"processor_list","minVersion":"1.16"},{"id":"worldgen/template_pool","url":"worldgen/template-pool","tags":["worldgen"],"schema":"template_pool","minVersion":"1.16"},{"id":"worldgen/world_preset","url":"worldgen/world-preset","tags":["worldgen"],"schema":"world_preset","minVersion":"1.19"},{"id":"worldgen/flat_level_generator_preset","url":"worldgen/flat-world-preset","tags":["worldgen"],"schema":"flat_level_generator_preset","minVersion":"1.19"},{"id":"world","url":"world","schema":"world_settings","noPath":true,"tags":["worldgen"],"minVersion":"1.16"},{"id":"tag/block","url":"tags/block","tags":["tags"],"path":"tags/blocks","schema":"block_tag"},{"id":"tag/entity_type","url":"tags/entity-type","tags":["tags"],"path":"tags/entity_types","schema":"entity_type_tag"},{"id":"tag/fluid","url":"tags/fluid","tags":["tags"],"path":"tags/fluids","schema":"fluid_tag"},{"id":"tag/game_event","url":"tags/game-event","tags":["tags"],"path":"tags/game_events","schema":"game_event_tag","minVersion":"1.17"},{"id":"tag/item","url":"tags/item","tags":["tags"],"path":"tags/items","schema":"item_tag"},{"id":"tag/worldgen/biome","url":"tags/biome","tags":["tags","worldgen"],"path":"tags/worldgen/biome","schema":"biome_tag","minVersion":"1.18.2"},{"id":"block_definition","url":"assets/blockstate","path":"blockstates","tags":["assets"],"schema":"block_definition"},{"id":"model","url":"assets/model","path":"models","tags":["assets"],"schema":"model"},{"id":"font","url":"assets/font","path":"font","tags":["assets"],"schema":"font","minVersion":"1.16"},{"id":"block_growth","url":"partners/immersive-weathering/block-growth","path":"block_growths","tags":["partners"],"partner":"immersive_weathering","schema":"immersive_weathering:block_growth","minVersion":"1.18.2"}]}');function gn(e){return typeof e=="object"&&e!==null}function es(e){return e.toString(16).padStart(2,"0")}function Ur(e=12){var t=new Uint8Array(e/2);return window.crypto.getRandomValues(t),Array.from(t,es).join("")}function tn(){return BigInt(Math.floor(Math.random()*Number.MAX_SAFE_INTEGER))}function Hw(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){const t=Math.random()*16|0;return(e=="x"?t:t&3|8).toString(16)})}function Zw(e){const t=Math.floor(Math.random()*4294967296)-2147483648,n=e.get(new P.Path(["dimensions"]));e.set(new P.Path(["seed"]),t,!0),gn(n)&&Object.keys(n).forEach(r=>{e.set(new P.Path(["dimensions",r,"generator","seed"]),t,!0),e.set(new P.Path(["dimensions",r,"generator","biome_source","seed"]),t,!0)}),e.set(new P.Path(["placement","salt"]),Math.abs(t),!0),e.set(new P.Path(["generator","seed"]),t,!0),e.set(new P.Path(["generator","biome_source","seed"]),t)}function Vp(e){let t=0;for(let n=0;n<e.length;n++)t=Math.imul(31,t)+e.charCodeAt(n)|0;return t}function kr(e){return`/${e}/`.replaceAll("//","/")}function Gw(e){const t=e.indexOf("?");return t>=0&&(e=e.slice(0,t)),kr(e)}function Up(e){const t=Gw(e).replace(/^\//,"").replace(/\/$/,"");return Fe.generators.find(n=>n.url===t)}function Hp({path:e,search:t,hash:n,replace:r}){const i=(e!==void 0?kr(e):location.pathname)+(t!==void 0?t.startsWith("?")||t.length===0?t:"?"+t:location.search)+(n!==void 0?n.startsWith("#")?n:"#"+n:location.hash);ti(i,r)}function Yw(e){const t=Bc.load(e.substring(3,e.indexOf("---",3)));return gn(t)?t:{}}function Ww(e,t){var r;let n=0;for(;;){const i=e.indexOf("{#",n);if(i<0)break;const o=qw(e,i+2),a=e.indexOf("#[",i+1);let s="";if(a>=0&&a<o){const l=e.indexOf("]",a+2);e.substring(a+2,l)===t&&(s=e.substring(l+1,o).trim())}else{const l=e.substring(i+2,o),d=Fe.versions.find(c=>c.id===t);s=(r={version:d==null?void 0:d.id,pack_format:d==null?void 0:d.pack_format.toString()}[l])!=null?r:""}e=e.substring(0,i)+s+e.substring(o+2),n=i}return e}function qw(e,t){let n=0,r=0;for(;r++<1e3;){const i=e.indexOf("#}",t),o=e.indexOf("{#",t);if(i<0)return console.warn("Missing closing bracket"),e.length;if(o<0){if(n===0)return i;n-=1,t=i+2}else if(o<i)n+=1,t=o+2;else{if(n===0)return i;n-=1,t=i+2}}return console.warn("Exceeded max iterations while finding closing bracket"),e.length}function Td(e){const t=Math.abs(Vp(e));return[t%256,(t>>8)%256,(t>>16)%256]}function Xw(e){if(!Array.isArray(e)||e.length!==3)return"#000000";const[t,n,r]=e;return"#"+es(t)+es(n)+es(r)}function Kw(e){if(typeof e!="string")return[0,0,0];const t=parseInt(e.startsWith("#")?e.slice(1):e,16),n=t>>16&255,r=t>>8&255,i=t&255;return[n,r,i]}function go(e){return e*e}function _t(e,t,n){return Math.max(e,Math.min(t,n))}function jl(e,t,n){return n<0?e:n>1?t:ts(n,e,t)}function ts(e,t,n){return t+e*(n-t)}function Jw(e,t,n,r,i,o){return ts(t,ts(e,n,r),ts(e,i,o))}function Et(e){return e instanceof Error?e.message:`${e}`}const ol=jw();function Yi(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){if(e.constructor!==t.constructor)return!1;let n,r;if(Array.isArray(e)){if(n=e.length,n!=t.length)return!1;for(r=0;r<n;r++)if(!Yi(e[r],t[r]))return!1;return!0}if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();const i=Object.keys(e);if(n=i.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!Object.prototype.hasOwnProperty.call(t,i[r]))return!1;for(r=n;r--!==0;){const o=i[r];if(!Yi(e[o],t[o]))return!1}return!0}return e!==e&&t!==t}class Qw{constructor(){this.forward=new Map,this.backward=new Map}set(t,n){this.forward.set(t,n),this.backward.set(n,t)}getA(t){return this.backward.get(t)}getB(t){return this.forward.get(t)}getOrPut(t,n){const r=this.forward.get(t);return r===void 0?(this.set(t,n),n):r}computeIfAbsent(t,n){const r=this.forward.get(t);if(r===void 0){const i=n();return this.set(t,i),i}return r}}async function ev(e,t=()=>!0){const n=e instanceof File?await e.arrayBuffer():e,i=await new k_(new Yh(new Blob([n]))).getEntries();return await Promise.all(i.filter(o=>!o.directory&&t(o.filename)).map(async o=>{var s;const a=new e_("utf-8");return[o.filename,await((s=o.getData)==null?void 0:s.call(o,a))]}))}async function tv(e){const t=new B_(new t_("application/zip"));return await Promise.all(e.map(async([n,r])=>{await t.add(n,new Q5(r))})),await t.close()}async function nv(e,t,n){const r=e.get(t);if(r)return r;const i=await n(t);return e.set(t,i),i}function F1(e,t,n){let r=0;for(const o of t)r+=n(o);if(r<=0)return;let i=e.nextInt(r);for(const o of t)if(i-=n(o),i<0)return o}function ns({icon:e,label:t,large:n,larger:r,doSelect:i,value:o,placeholder:a,dataList:s,onChange:l}){const d=l===void 0?()=>{}:f=>{const h=f.target.value;l==null||l(h)},c=Ie(null);me(()=>{i&&c.current&&c.current.select()},[i]);const u=s&&Ur();return R("div",{class:`btn btn-input ${n?"large-input":""} ${r?"larger-input":""}`,onClick:f=>f.stopPropagation(),children:[e&&fe[e],t&&p("span",{children:t}),p("input",{ref:c,type:"text",value:o,onChange:d,placeholder:a,list:u}),s&&p("datalist",{id:u,children:s.map(f=>p("option",{value:f}))})]})}function xo({link:e,icon:t,label:n,tooltip:r,tooltipLoc:i,swapped:o}){return p("a",be(oe({},e?{href:e}:{disabled:!0}),{class:`btn btn-link${r?` tooltipped tip-${i!=null?i:"sw"}`:""}`,"aria-label":r,children:o?R(ce,{children:[n&&p("span",{children:n}),t&&fe[t]]}):R(ce,{children:[t&&fe[t],n&&p("span",{children:n})]})}))}function zc({cooldown:e,invert:t,initial:n}={}){const[r,i]=Y(n),o=Ie(void 0);return[r,()=>{i(!t),o.current!==void 0&&clearTimeout(o.current),o.current=setTimeout(()=>{i(!!t)},e!=null?e:2e3)}]}function on(e,t=[],n={loading:!0}){const[r,i]=rv(e,t,n);return me(()=>{i()},[i]),be(oe({},r),{refresh:i})}const rs=Symbol("async-cancel");function rv(e,t=[],n={loading:!1}){const[r,i]=Y(n),o=Ie(!1),a=Ie(0);me(()=>(o.current=!0,()=>o.current=!1),[]);const s=je((...l)=>{const d=++a.current;return r.loading||i(c=>be(oe({},c),{loading:!0})),e(...l).then(c=>(o.current&&d===a.current&&c!==rs&&i({value:c,loading:!1}),c),c=>{o.current&&d===a.current&&i({error:c,loading:!1})})},t);return[r,s]}function fa({size:e,draw:t,onDrag:n,onHover:r,onLeave:i},o){const a=Ie(null),s=Ie(),l=Ie(),d=Ie([0,0]),c=Ie(!1);me(()=>{if(!a.current)return;const h=m=>{s.current=[m.offsetX,m.offsetY]},w=m=>{if(s.current===void 0){if(!a.current)return;const b=m.offsetX/a.current.clientWidth,y=m.offsetY/a.current.clientHeight;r==null||r(b,y);return}if(!n)return;const v=m.offsetX-s.current[0],x=m.offsetY-s.current[1];v===0&&x===0||(d.current=[d.current[0]+v,d.current[1]+x],c.current||(l.current&&cancelAnimationFrame(l.current),l.current=requestAnimationFrame(async()=>{if(!a.current)return;c.current=!0;const b=d.current[0]/a.current.clientWidth,y=d.current[1]/a.current.clientHeight;d.current=[0,0],await(n==null?void 0:n(b,y)),c.current=!1}))),s.current=[m.offsetX,m.offsetY]},_=()=>{s.current=void 0},g=()=>{i==null||i()};return a.current.addEventListener("mousedown",h),a.current.addEventListener("mousemove",w),a.current.addEventListener("mouseleave",g),document.body.addEventListener("mouseup",_),()=>{var m,v,x;(m=a.current)==null||m.removeEventListener("mousedown",h),(v=a.current)==null||v.removeEventListener("mousemove",w),(x=a.current)==null||x.removeEventListener("mouseleave",g),document.body.removeEventListener("mouseup",_)}},[...o!=null?o:[],a.current]);const u=Ie(),f=Ie(0);return u.current=async()=>{if(!a.current)return;const h=a.current.getContext("2d"),w=e();a.current.width=w[0],a.current.height=w[1];const _=h.getImageData(0,0,w[0],w[1]),g=f.current+=1;try{await t(_)}catch(m){throw m}g===f.current&&h.putImageData(_,0,0)},{canvas:a,redraw:u.current}}const jc="misode-lose-focus";function al(){const[e,t]=Y(!1),n=()=>{t(!1)};return me(()=>(e&&(document.body.addEventListener("click",n),document.body.addEventListener("contextmenu",n),document.body.addEventListener(jc,n)),()=>{document.body.removeEventListener("click",n),document.body.removeEventListener("contextmenu",n),document.body.removeEventListener(jc,n)}),[e]),[e,(r=!0)=>t(r)]}function iv(){const[e,t]=Y(window.location.hash),n=je(()=>{t(window.location.hash)},[]);me(()=>(window.addEventListener("hashchange",n),window.addEventListener("replacestate",n),()=>{window.removeEventListener("hashchange",n),window.removeEventListener("replacestate",n)}),[]);const r=je(i=>{i!==e&&Hp({hash:i})},[e]);return[e,r]}function Zp(e,t,n,r){const i=je(()=>{const l=localStorage.getItem(e);return l===null?t:n===void 0?l:n(l)},[]),[o,a]=Y(i()),s=je(l=>{l==null?(localStorage.removeItem(e),a(t)):r!==void 0?(localStorage.setItem(e,r(l)),a(l)):(localStorage.setItem(e,l),a(l))},[]);return[o,s]}function Ms(e){const[t,n]=Y(matchMedia(e).matches),r=i=>{n(i.matches)};return me(()=>{const i=matchMedia(e);return i.addEventListener("change",r),()=>{i.removeEventListener("change",r)}},[e]),t}function sl(e,t,n){const r={invalidated(){e&&t(e)}};me(()=>(e==null||e.addListener(r),()=>{e==null||e.removeListener(r)}),[e,...n!=null?n:[]])}const P1=(e,t)=>{var n;return(n=new URLSearchParams(e).get(t))!=null?n:void 0};function Wr(e){const t=window.location,[n,r]=Y(P1(t.search,e));me(()=>{const o=()=>{r(P1(t.search,e))};return window.addEventListener("popstate",o),window.addEventListener("pushstate",o),window.addEventListener("replacestate",o),()=>{window.removeEventListener("popstate",o),window.removeEventListener("pushstate",o),window.removeEventListener("replacestate",o)}},[]);const i=je((o,a)=>{if(o!==n){r(o);const s=new URLSearchParams(t.search);o===void 0||o.length===0?s.delete(e):s.set(e,o),Hp({search:s.toString().replaceAll("%7C","|"),replace:a})}},[n]);return[n,i]}const ov="tags",Vl="|";function Gp(){const[e,t]=Wr(ov),n=Ce(()=>{var i;return(i=e==null?void 0:e.split(Vl))!=null?i:[]},[e]);return[n,(i,o)=>{o===!1||n.includes(i)&&o!==!0?t(n.filter(a=>a!==i).join(Vl),!0):t([...n,i].sort().join(Vl),!0)}]}function Lt(e){const{icon:t,label:n,relative:r,tooltip:i,tooltipLoc:o,children:a}=e,[s,l]=al();return R("div",be(oe({},e),{class:`btn-menu${r===!1?" no-relative":""} ${e.class}`,children:[p(ae,{icon:t,label:n,tooltip:i,tooltipLoc:o,onClick:()=>l()}),s&&p("div",{class:"btn-group",children:a})]}))}function Ld({title:e,overlay:t,link:n,children:r}){const i=R(ce,{children:[t&&p("span",{class:"card-overlay",children:t}),R("div",{class:"card-content",children:[e&&p("h3",{class:"card-title",children:e}),r]})]});return n===void 0?p("div",{class:"card",children:i}):p("a",{class:"card",href:n,children:i})}const av="modulepreload",$1={},sv="/",ke=function(t,n){return!n||n.length===0?t():Promise.all(n.map(r=>{if(r=`${sv}${r}`,r in $1)return;$1[r]=!0;const i=r.endsWith(".css"),o=i?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${r}"]${o}`))return;const a=document.createElement("link");if(a.rel=i?"stylesheet":av,i||(a.as="script",a.crossOrigin=""),a.href=r,document.head.appendChild(a),i)return new Promise((s,l)=>{a.addEventListener("load",s),a.addEventListener("error",()=>l(new Error(`Unable to preload CSS for ${r}`)))})})).then(()=>t())};function Ri({error:e,onDismiss:t}){const[n,r]=Y(!1),[i,o]=Y(void 0);me(()=>{if(e instanceof Error){const s=e.stack.split(` +`).map(l=>l.replace(/^(\s+)at (?:async )?(https?:.*)/,"$1at ($2)"));o(s.join(` +`)),ke(()=>import("./sourcemapped-stacktrace.d972a070.js").then(function(l){return l.s}),[]).then(({mapStackTrace:l})=>{l(s.join(` +`),d=>{const c=d.map(u=>u.replace(/..\/..\/src\//,"src/")).join(` +`);o(c)})})}},[e]);const a=Ce(()=>{let s="https://github.com/misode/misode.github.io/issues/new";return e instanceof Error?(s+=`?title=${encodeURIComponent(`${e.name}: ${e.message}`)}`,i&&(s+=`&body=${encodeURIComponent(`\`\`\` +${e.name}: ${e.message} +${i} +\`\`\` +`)}`)):s+=`?title=${encodeURIComponent(e.toString())}`,s},[e,i]);return R("div",{class:"error",children:[t&&p("div",{class:"error-dismiss",onClick:t,children:fe.x}),R("h3",{children:[e instanceof Error?e.message:e,i&&p("span",{onClick:()=>r(!n),children:fe.info})]}),i&&n&&p("pre",{children:i}),R("p",{children:["If you think this is a bug, you can report it ",p("a",{href:a,target:"_blank",children:"on GitHub"})]})]})}const mo="https://www.minecraft.net/article/",lv=new Map(Object.entries({"1.16-pre2":"minecraft-1-16-pre-release-1","1.16-pre4":"minecraft-1-16-pre-release-3","1.16-pre5":"minecraft-1-16-pre-release-3","1.16-pre7":"minecraft-1-16-pre-release-6","1.16-pre8":"minecraft-1-16-pre-release-6","1.16-rc1":"minecraft-1-16-release-candidate",1.16:"nether-update-java","1.16.2-pre3":"minecraft-1-16-2-pre-release-2","1.16.2-rc1":"minecraft-1-16-2-pre-release-2","1.16.2-rc2":"minecraft-1-16-2-pre-release-2","1.17-pre3":"minecraft-1-17-pre-release-2","1.17-pre4":"minecraft-1-17-pre-release-2","1.17-pre5":"minecraft-1-17-pre-release-2","1.17.1-pre3":"minecraft-1-17-1-pre-release-2",1.17:"caves---cliffs--part-i-out-today-java","1.18-pre3":"minecraft-1-18-pre-release-2","1.18-pre4":"minecraft-1-18-pre-release-2","1.18-pre5":"minecraft-1-18-pre-release-2","1.18-pre7":"minecraft-1-18-pre-release-6","1.18-pre8":"minecraft-1-18-pre-release-6",1.18:"caves---cliffs--part-ii-out-today-java","1.18.2-pre3":"minecraft-1-18-2-pre-release-2","1.18.2-pre5":"minecraft-1-18-2-pre-release-4","1.19-pre3":"minecraft-1-19-pre-release-2","1.19-pre5":"minecraft-1-19-pre-release-4",1.19:"the-wild-update-out-today-java","1.19.1-pre4":"minecraft-1-19-1-pre-release-3"}));function cv(e){const t=lv.get(e);if(t)return mo+t;let n;if((n=e.match(/^(\d\dw\d\d)[a-z]$/))&&n[1])return mo+"minecraft-snapshot-"+n[1]+"a";if((n=e.match(/^(\d+\.\d+(?:\.\d+)?)-pre([0-9]+)$/))&&n[1]&&n[2])return mo+"minecraft-"+n[1].replaceAll(".","-")+"-pre-release-"+n[2];if((n=e.match(/^(\d+\.\d+(?:\.\d+)?)-rc[0-9]+$/))&&n[1])return mo+"minecraft-"+n[1].replaceAll(".","-")+"-release-candidate-1";if(e.match(/^\d+\.\d+\.\d+$/))return mo+"minecraft-java-edition-"+e.replaceAll(".","-")}const Di="misode-v2",B1="cached_latest_version",z1="misode_cache_patch",Ul="1.19.2",Pr="https://raw.githubusercontent.com/misode/mcmeta",Yp="https://github.com/misode/mcmeta/tarball",dv="https://raw.githubusercontent.com/misode/technical-changes";function mn(e,t,n){return`${n?Yp:Pr}/${e.dynamic?t:`${e.ref}-${t}`}`}async function to(e){await bv(),e.dynamic&&(localStorage.getItem(B1)!==Ul&&(await qp(t=>t.startsWith(`${Pr}/summary/`)||t.startsWith(`${Pr}/data/`)||t.startsWith(`${Pr}/assets/`)||t.startsWith(`${Pr}/registries/`)||t.startsWith(`${Pr}/atlas/`)||t.startsWith(`${Yp}/assets-json/`)),localStorage.setItem(B1,Ul)),e.ref=Ul)}async function uv(e,t,n){const r=Fe.versions.find(i=>i.id===e);if(!r){console.error(`[fetchData] Unknown version ${r} in ${JSON.stringify(Fe.versions)}`);return}await to(r),await Promise.all([fv(r,t),hv(r,n)])}async function fv(e,t){console.debug(`[fetchRegistries] ${e.id}`);try{const n=await Mr(`${mn(e,"summary")}/registries/data.min.json`);for(const r in n)t.register(r,n[r].map(i=>"minecraft:"+i))}catch(n){console.warn("Error occurred while fetching registries:",Et(n))}}async function hv(e,t){console.debug(`[fetchBlockStateMap] ${e.id}`);try{const n=await Mr(`${mn(e,"summary")}/blocks/data.min.json`);for(const r in n)t["minecraft:"+r]={properties:n[r][0],default:n[r][1]}}catch(n){console.warn("Error occurred while fetching block state map:",Et(n))}}async function Wp(e,t,n){console.debug(`[fetchPreset] ${e} ${t} ${n}`);const r=Fe.versions.find(i=>i.id===e);try{let i;if(n.startsWith("immersive_weathering:"))i=`https://raw.githubusercontent.com/AstralOrdana/Immersive-Weathering/main/src/main/resources/data/immersive_weathering/block_growths/${n.slice(21)}.json`;else{const a=["blockstates","models","font"].includes(t)?"assets":"data";i=`${mn(r,a)}/${a}/minecraft/${t}/${n}.json`}return await(await fetch(i)).json()}catch(i){throw new Error(`Error occurred while fetching ${t} preset ${n}: ${Et(i)}`)}}async function Vc(e,t){console.debug(`[fetchAllPresets] ${e} ${t}`);const n=Fe.versions.find(r=>r.id===e);await to(n);try{const r=["block_definition","model","font"].includes(t)?"assets":"data";return new Map(Object.entries(await Mr(`${mn(n,"summary")}/${r}/${t}/data.min.json`)))}catch(r){throw new Error(`Error occurred while fetching all ${t} presets: ${Et(r)}`)}}async function pv(e){const t=Fe.versions.find(n=>n.id===e);await to(t);try{const n=`${mn(t,"summary")}/sounds/data.min.json`;return await Mr(n)}catch(n){throw new Error(`Error occurred while fetching sounds for ${t}: ${Et(n)}`)}}function gv(e,t){const n=Fe.versions.find(r=>r.id===e);return`${mn(n,"assets")}/assets/minecraft/sounds/${t}.ogg`}async function Od(){await to({dynamic:!0});try{return Mr(`${mn({dynamic:!0},"summary")}/versions/data.min.json`,{refresh:!0})}catch(e){throw new Error(`Error occured while fetching versions: ${Et(e)}`)}}function mv(e,t,n){const r=Fe.versions.find(i=>i.id===e);return`${mn(r,"assets")}/assets/minecraft/${t}/${n}.png`}async function _v(e){const t=Fe.versions.find(n=>n.id===e);await to(t);try{const[n,r,i]=await Promise.all([Vc(e,"model"),Mr(`${mn(t,"atlas")}/all/data.min.json`),wv(`${mn(t,"atlas")}/all/atlas.png`)]);return{models:n,uvMapping:r,atlas:i}}catch(n){throw new Error(`Error occured while fetching resources: ${Et(n)}`)}}async function wv(e){return new Promise(t=>{const n=new Image;n.onload=()=>t(n),n.crossOrigin="Anonymous",n.src=e})}async function vv(e,t="en_us"){const n=Fe.versions.find(r=>r.id===e);await to(n);try{return await Mr(`${mn(n,"assets")}/assets/minecraft/lang/${t}.json`)}catch(r){throw new Error(`Error occured while fetching language: ${Et(r)}`)}}async function Nd(){try{const[e,t]=await Promise.all([Mr(`${dv}/generated/changes.json`,{refresh:!0}),Od()]),n=new Map(t.map((r,i)=>[r.id,t.length-i]));return e.map(r=>{var i;return be(oe({},r),{order:(i=n.get(r.version))!=null?i:0})})}catch(e){throw new Error(`Error occured while fetching technical changes: ${Et(e)}`)}}const j1=new Set;async function Mr(e,{decode:t=r=>r.json(),refresh:n}={}){try{const r=await caches.open(Di);console.debug(`[cachedFetch] Opened cache ${Di} ${e}`);const i=await r.match(e);if(n&&(j1.has(e)?n=!1:j1.add(e)),n)try{return await V1(r,e,t)}catch{if(i&&i.ok)return console.debug(`[cachedFetch] Cannot refresh, using cache ${e}`),await t(i);throw new Error("Failed to fetch")}else return i&&i.ok?(console.debug(`[cachedFetch] Retrieving cached data ${e}`),await t(i)):await V1(r,e,t)}catch(r){console.warn(`[cachedFetch] Failed to open cache ${Di}: ${r.message}`),console.debug(`[cachedFetch] Fetching data ${e}`);const i=await fetch(e);return await t(i)}}async function V1(e,t,n){console.debug(`[cachedFetch] Fetching data ${t}`);const r=await fetch(t),i=r.clone(),o=await n(r);return await e.put(t,i),o}async function qp(e){try{const t=await caches.open(Di);console.debug(`[deleteMatching] Opened cache ${Di}`);const n=[];for(const r of await t.keys())e(r.url)&&n.push(t.delete(r));console.debug(`[deleteMatching] Removing ${n.length} cache objects...`),await Promise.all(n)}catch(t){console.warn(`[deleteMatching] Failed to open cache ${Di}: ${Et(t)}`)}}const U1=[async()=>{["1.15","1.16","1.17"].forEach(e=>localStorage.removeItem(`cache_${e}`)),["mcdata_master","vanilla_datapack_summary"].forEach(e=>localStorage.removeItem(`cached_${e}`)),caches.delete("misode-v1")},async()=>{await qp(e=>e.startsWith(`${Pr}/1.18.2-summary/`))}];async function bv(){var t;const e=parseInt((t=localStorage.getItem(z1))!=null?t:"0");for(let n=e+1;n<=U1.length;n+=1){const r=U1[n-1];r&&await r(),localStorage.setItem(z1,n.toFixed())}}const it="immersive_weathering";function xv(e,t){const n=P.Reference.bind(void 0,e),r=P.StringNode.bind(void 0,t),i=o=>P.ChoiceNode([{type:"string",node:r({validator:"resource",params:{pool:o,allowTag:!0}}),change:a=>{if(Array.isArray(a)&&typeof a[0]=="string"&&!a[0].startsWith("#"))return a[0]}},{type:"list",node:P.ListNode(r({validator:"resource",params:{pool:o}})),change:a=>typeof a=="string"&&!a.startsWith("#")?[a]:[]}],{choiceContext:"tag"});e.register(`${it}:block_growth`,P.ObjectNode({area_condition:n(`${it}:area_condition`),position_predicates:P.Opt(P.ListNode(n(`${it}:position_test`))),growth_chance:P.NumberNode({min:0,max:1}),growth_for_face:P.ListNode(P.ObjectNode({direction:P.Opt(r({enum:"direction"})),weight:P.Opt(P.NumberNode({integer:!0})),growth:P.ListNode(P.ObjectNode({data:n(`${it}:block_pair`),weight:P.NumberNode({integer:!0})}))},{category:"pool"})),owners:P.ListNode(r({validator:"resource",params:{pool:"block"}})),replacing_target:n(`${it}:rule_test`),target_self:P.Opt(P.BooleanNode()),destroy_target:P.Opt(P.BooleanNode())},{context:`${it}.block_growth`})),e.register(`${it}:area_condition`,P.ObjectNode({type:r({enum:["generate_if_not_too_many","neighbor_based_generation"]}),[P.Switch]:[{push:"type"}],[P.Case]:{generate_if_not_too_many:{radiusX:P.NumberNode({integer:!0}),radiusY:P.NumberNode({integer:!0}),radiusZ:P.NumberNode({integer:!0}),requiredAmount:P.NumberNode({integer:!0}),yOffset:P.Opt(P.NumberNode({integer:!0})),must_have:P.Opt(n(`${it}:rule_test`)),must_not_have:P.Opt(n(`${it}:rule_test`)),includes:P.Opt(i("block"))},neighbor_based_generation:{must_have:n(`${it}:rule_test`),must_not_have:P.Opt(n(`${it}:rule_test`)),required_amount:P.Opt(P.NumberNode({integer:!0})),directions:P.ListNode(r({enum:"direction"}))}}},{context:`${it}.area_condition`})),e.register(`${it}:block_pair`,P.ObjectNode({block:n(`${it}:block_state`),above_block:P.Opt(n(`${it}:block_state`))},{context:`${it}.block_pair`})),e.register(`${it}:block_state`,P.ObjectNode({Name:r({validator:"resource",params:{pool:"block"}}),Properties:P.Opt(P.MapNode(r(),r()))},{context:"block_state"})),e.register(`${it}:position_test`,P.ObjectNode({predicate_type:r({enum:["biome_match","day_test","nand","precipitation_test","temperature_range"]}),[P.Switch]:[{push:"predicate_type"}],[P.Case]:{biome_match:{biomes:i("$worldgen/biome")},day_test:{day:P.BooleanNode()},nand:{predicates:P.ListNode(n(`${it}:position_test`))},precipitation_test:{precipitation:r({enum:["none","rain","snow"]})},temperature_range:{min:P.NumberNode(),max:P.NumberNode(),use_local_pos:P.Opt(P.BooleanNode())}}},{context:`${it}.position_test`,category:"predicate"})),t.register(`${it}:rule_test`,[...t.get("rule_test"),"immersive_weathering:block_set_match","immersive_weathering:fluid_match","immersive_weathering:tree_log"]),e.register(`${it}:rule_test`,P.ObjectNode({predicate_type:r({validator:"resource",params:{pool:`${it}:rule_test`}}),[P.Switch]:[{push:"predicate_type"}],[P.Case]:{"minecraft:block_match":{block:r({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:n("block_state")},"minecraft:random_block_match":{block:r({validator:"resource",params:{pool:"block"}}),probability:P.NumberNode({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:n("block_state"),probability:P.NumberNode({min:0,max:1})},"minecraft:tag_match":{tag:r({validator:"resource",params:{pool:"$tag/block"}})},"immersive_weathering:block_set_match":{blocks:i("block"),probability:P.Opt(P.NumberNode({min:0,max:1}))},"immersive_weathering:fluid_match":{fluid:r({validator:"resource",params:{pool:"fluid"}})}}},{context:"rule_test",disableSwitchContext:!0})),t.register("block_growth",["immersive_weathering:brain_coral","immersive_weathering:bubble_coral","immersive_weathering:cracked_mud_rivers","immersive_weathering:crimson_nylium","immersive_weathering:cryosol","immersive_weathering:farmland_rare_weeds","immersive_weathering:farmland_weeds","immersive_weathering:fire_coral","immersive_weathering:fire_soot","immersive_weathering:fluvisol","immersive_weathering:grass_base","immersive_weathering:grass_block_badlands","immersive_weathering:grass_block_bamboo_jungle","immersive_weathering:grass_block_birch_forest","immersive_weathering:grass_block_dark_forest","immersive_weathering:grass_block_flower_forest","immersive_weathering:grass_block_forest","immersive_weathering:grass_block_jungle","immersive_weathering:grass_block_lush_caves","immersive_weathering:grass_block_old_growth_spruce","immersive_weathering:grass_block_plains","immersive_weathering:grass_block_sunflower_plains","immersive_weathering:grass_block_swamp","immersive_weathering:grass_block_taiga","immersive_weathering:grass_block_wooded_badlands","immersive_weathering:hanging_roots","immersive_weathering:horn_coral","immersive_weathering:humus","immersive_weathering:icicle_growth","immersive_weathering:large_fern","immersive_weathering:magma","immersive_weathering:mycelium","immersive_weathering:podzol","immersive_weathering:red_sand_weathering","immersive_weathering:rooted_dirt","immersive_weathering:rooted_grass","immersive_weathering:sand_weathering","immersive_weathering:sapling","immersive_weathering:sapling_nether","immersive_weathering:silt","immersive_weathering:tall_grass","immersive_weathering:tall_seagrass","immersive_weathering:tube_coral","immersive_weathering:vertisol","immersive_weathering:warped_nylium"])}function yv(e,t){xv(e,t)}const Uc=["1.15","1.16","1.17","1.18","1.18.2","1.19"],kv="1.19",ui={},fi={},Cv={1.15:()=>ke(()=>import("./index.6c5eeb89.js").then(function(e){return e.i}),[]),1.16:()=>ke(()=>import("./index.2fb6412f.js").then(function(e){return e.i}),[]),1.17:()=>ke(()=>import("./index.f2087122.js").then(function(e){return e.i}),[]),1.18:()=>ke(()=>import("./index.abe095be.js").then(function(e){return e.i}),[]),"1.18.2":()=>ke(()=>import("./index.883f1c74.js").then(function(e){return e.i}),[]),1.19:()=>ke(()=>import("./index.80f19794.js").then(function(e){return e.i}),[])};let Xp,Kp,is;async function Rd(e){return ui[e]||(ui[e]=(async()=>{try{const t=await Cv[e](),n=t.getCollections(),r={};await uv(e,n,r);const i=t.getSchemas(n);return yv(i,n),ui[e]={collections:n,schemas:i,blockStates:r},ui[e]}catch(t){throw new Error(`Cannot get version "${e}": ${Et(t)}`)}})()),ui[e]}async function Ev(e,t){var n;if(!fi[t]||fi[t].version!==e){const r=await Rd(e);Xp=P.Reference(r.schemas,"configured_decorator"),Kp=P.ChoiceNode([{type:"string",node:P.StringNode(r.collections,{validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:P.Reference(r.schemas,"configured_feature")}],{choiceContext:"feature"});const i=(n=Fe.generators.find(o=>o.id===t))==null?void 0:n.schema;if(!i)throw new Error(`Cannot find model ${t}`);try{const o=r.schemas.get(i),a=new P.DataModel(o,{wrapLists:!0});fi[t]?a.reset(fi[t].model.data,!1):(a.validate(!0),a.history=[JSON.stringify(a.data)]),fi[t]={model:a,version:e}}catch(o){const a=new Error(`Cannot get generator "${t}" for version "${e}": ${Et(o)}`);throw o instanceof Error&&(a.stack=o.stack),a}}return fi[t].model}async function Jp(e){const t=await Rd(e);return is=t.collections,t.collections}async function Av(e){return(await Rd(e)).blockStates}function mt(e,t,n){const r=Fe.versions.findIndex(a=>a.id===e),i=t?Fe.versions.findIndex(a=>a.id===t):0,o=n?Fe.versions.findIndex(a=>a.id===n):Fe.versions.length-1;return i<=r&&r<=o}var Qp={exports:{}};(function(e){var t=function(){var n=String.fromCharCode,r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",o={};function a(l,d){if(!o[l]){o[l]={};for(var c=0;c<l.length;c++)o[l][l.charAt(c)]=c}return o[l][d]}var s={compressToBase64:function(l){if(l==null)return"";var d=s._compress(l,6,function(c){return r.charAt(c)});switch(d.length%4){default:case 0:return d;case 1:return d+"===";case 2:return d+"==";case 3:return d+"="}},decompressFromBase64:function(l){return l==null?"":l==""?null:s._decompress(l.length,32,function(d){return a(r,l.charAt(d))})},compressToUTF16:function(l){return l==null?"":s._compress(l,15,function(d){return n(d+32)})+" "},decompressFromUTF16:function(l){return l==null?"":l==""?null:s._decompress(l.length,16384,function(d){return l.charCodeAt(d)-32})},compressToUint8Array:function(l){for(var d=s.compress(l),c=new Uint8Array(d.length*2),u=0,f=d.length;u<f;u++){var h=d.charCodeAt(u);c[u*2]=h>>>8,c[u*2+1]=h%256}return c},decompressFromUint8Array:function(l){if(l==null)return s.decompress(l);for(var d=new Array(l.length/2),c=0,u=d.length;c<u;c++)d[c]=l[c*2]*256+l[c*2+1];var f=[];return d.forEach(function(h){f.push(n(h))}),s.decompress(f.join(""))},compressToEncodedURIComponent:function(l){return l==null?"":s._compress(l,6,function(d){return i.charAt(d)})},decompressFromEncodedURIComponent:function(l){return l==null?"":l==""?null:(l=l.replace(/ /g,"+"),s._decompress(l.length,32,function(d){return a(i,l.charAt(d))}))},compress:function(l){return s._compress(l,16,function(d){return n(d)})},_compress:function(l,d,c){if(l==null)return"";var u,f,h={},w={},_="",g="",m="",v=2,x=3,b=2,y=[],k=0,C=0,E;for(E=0;E<l.length;E+=1)if(_=l.charAt(E),Object.prototype.hasOwnProperty.call(h,_)||(h[_]=x++,w[_]=!0),g=m+_,Object.prototype.hasOwnProperty.call(h,g))m=g;else{if(Object.prototype.hasOwnProperty.call(w,m)){if(m.charCodeAt(0)<256){for(u=0;u<b;u++)k=k<<1,C==d-1?(C=0,y.push(c(k)),k=0):C++;for(f=m.charCodeAt(0),u=0;u<8;u++)k=k<<1|f&1,C==d-1?(C=0,y.push(c(k)),k=0):C++,f=f>>1}else{for(f=1,u=0;u<b;u++)k=k<<1|f,C==d-1?(C=0,y.push(c(k)),k=0):C++,f=0;for(f=m.charCodeAt(0),u=0;u<16;u++)k=k<<1|f&1,C==d-1?(C=0,y.push(c(k)),k=0):C++,f=f>>1}v--,v==0&&(v=Math.pow(2,b),b++),delete w[m]}else for(f=h[m],u=0;u<b;u++)k=k<<1|f&1,C==d-1?(C=0,y.push(c(k)),k=0):C++,f=f>>1;v--,v==0&&(v=Math.pow(2,b),b++),h[g]=x++,m=String(_)}if(m!==""){if(Object.prototype.hasOwnProperty.call(w,m)){if(m.charCodeAt(0)<256){for(u=0;u<b;u++)k=k<<1,C==d-1?(C=0,y.push(c(k)),k=0):C++;for(f=m.charCodeAt(0),u=0;u<8;u++)k=k<<1|f&1,C==d-1?(C=0,y.push(c(k)),k=0):C++,f=f>>1}else{for(f=1,u=0;u<b;u++)k=k<<1|f,C==d-1?(C=0,y.push(c(k)),k=0):C++,f=0;for(f=m.charCodeAt(0),u=0;u<16;u++)k=k<<1|f&1,C==d-1?(C=0,y.push(c(k)),k=0):C++,f=f>>1}v--,v==0&&(v=Math.pow(2,b),b++),delete w[m]}else for(f=h[m],u=0;u<b;u++)k=k<<1|f&1,C==d-1?(C=0,y.push(c(k)),k=0):C++,f=f>>1;v--,v==0&&(v=Math.pow(2,b),b++)}for(f=2,u=0;u<b;u++)k=k<<1|f&1,C==d-1?(C=0,y.push(c(k)),k=0):C++,f=f>>1;for(;;)if(k=k<<1,C==d-1){y.push(c(k));break}else C++;return y.join("")},decompress:function(l){return l==null?"":l==""?null:s._decompress(l.length,32768,function(d){return l.charCodeAt(d)})},_decompress:function(l,d,c){var u=[],f=4,h=4,w=3,_="",g=[],m,v,x,b,y,k,C,E={val:c(0),position:d,index:1};for(m=0;m<3;m+=1)u[m]=m;for(x=0,y=Math.pow(2,2),k=1;k!=y;)b=E.val&E.position,E.position>>=1,E.position==0&&(E.position=d,E.val=c(E.index++)),x|=(b>0?1:0)*k,k<<=1;switch(x){case 0:for(x=0,y=Math.pow(2,8),k=1;k!=y;)b=E.val&E.position,E.position>>=1,E.position==0&&(E.position=d,E.val=c(E.index++)),x|=(b>0?1:0)*k,k<<=1;C=n(x);break;case 1:for(x=0,y=Math.pow(2,16),k=1;k!=y;)b=E.val&E.position,E.position>>=1,E.position==0&&(E.position=d,E.val=c(E.index++)),x|=(b>0?1:0)*k,k<<=1;C=n(x);break;case 2:return""}for(u[3]=C,v=C,g.push(C);;){if(E.index>l)return"";for(x=0,y=Math.pow(2,w),k=1;k!=y;)b=E.val&E.position,E.position>>=1,E.position==0&&(E.position=d,E.val=c(E.index++)),x|=(b>0?1:0)*k,k<<=1;switch(C=x){case 0:for(x=0,y=Math.pow(2,8),k=1;k!=y;)b=E.val&E.position,E.position>>=1,E.position==0&&(E.position=d,E.val=c(E.index++)),x|=(b>0?1:0)*k,k<<=1;u[h++]=n(x),C=h-1,f--;break;case 1:for(x=0,y=Math.pow(2,16),k=1;k!=y;)b=E.val&E.position,E.position>>=1,E.position==0&&(E.position=d,E.val=c(E.index++)),x|=(b>0?1:0)*k,k<<=1;u[h++]=n(x),C=h-1,f--;break;case 2:return g.join("")}if(f==0&&(f=Math.pow(2,w),w++),u[C])_=u[C];else if(C===h)_=v+v.charAt(0);else return null;g.push(_),u[h++]=v+_.charAt(0),f--,v=_,f==0&&(f=Math.pow(2,w),w++)}}};return s}();e!=null&&(e.exports=t)})(Qp);var e2=Qp.exports;const Sv="https://z15g7can.directus.app/items",H1=new Map;async function Iv(e,t,n,r){try{const i=JSON.stringify(n),o=e2.compressToBase64(i);console.debug("Compression rate",i.length/i.length);const a=JSON.stringify({data:o,type:e,version:t,show_preview:r});let s=H1.get(a);if(!s){const l=await t2("/snippets",a);H1.set(a,l.id),s=l.id}return{id:s,length:i.length,compressed:o.length,rate:i.length/o.length}}catch(i){throw i instanceof Error&&(i.message=`Error creating share link: ${i.message}`),i}}async function Mv(e){var t;try{const n=await t2(`/snippets/${e}`);return be(oe({},n),{data:JSON.parse((t=e2.decompressFromBase64(n.data))!=null?t:"{}")})}catch(n){throw n instanceof Error&&(n.message=`Error loading shared content: ${n.message}`),n}}async function t2(e,t){var i,o,a;const r=await(await fetch(Sv+e,t?{method:"post",headers:{"Content-Type":"application/json"},body:t}:void 0)).json();if(r.data)return r.data;throw new Error((a=(o=(i=r.errors)==null?void 0:i[0])==null?void 0:o.message)!=null?a:"Unknown error")}const Dd={"2_spaces":2,"4_spaces":4,tabs:" ",minified:void 0};let _o=null;const Fd={json:{parse:async e=>{try{return JSON.parse(e)}catch{return _o=await ke(()=>import("./index.2c9aa543.js").then(function(n){return n.i}),[]),_o.parse(e)}},stringify:(e,t)=>(_o!=null?_o:JSON).stringify(e,null,t)+` +`},yaml:{parse:async e=>Bc.load(e),stringify:(e,t)=>Bc.dump(e,{flowLevel:t===void 0?0:-1,indent:typeof t=="string"?4:t})}};function Hc(e,t,n){return Fd[t!=null?t:He.getFormat()].stringify(e,Dd[n!=null?n:He.getIndent()])}async function n2(e,t){return await Fd[t].parse(e)}function Tv(e){return Dd[e]}function Lv(){return Object.keys(Dd)}function Ov(){return Object.keys(Fd)}var He;(e=>{e.ID_LANGUAGE="language",e.ID_THEME="theme",e.ID_VERSION="schema_version",e.ID_INDENT="indentation",e.ID_FORMAT="output_format",e.ID_HIGHLIGHTING="output_highlighting",e.ID_SOUNDS_VERSION="minecraft_sounds_version",e.ID_PROJECTS="misode_projects",e.ID_BACKUPS="misode_generator_backups",e.ID_PROJECT_PANEL_OPEN="misode_project_panel_open",e.ID_OPEN_PROJECT="misode_open_project",e.ID_TREE_VIEW_MODE="misode_tree_view_mode",e.ID_GENERATOR_HISTORY="misode_generator_history";function t(){var L;return(L=localStorage.getItem(e.ID_LANGUAGE))!=null?L:"en"}e.getLanguage=t;function n(){var L;return(L=localStorage.getItem(e.ID_THEME))!=null?L:"dark"}e.getTheme=n;function r(){const L=localStorage.getItem(e.ID_VERSION);return L&&Uc.includes(L)?L:"1.19"}e.getVersionOrDefault=r;function i(){const L=localStorage.getItem(e.ID_VERSION);return L&&Uc.includes(L)?L:null}e.getVersion=i;function o(){var L;return(L=localStorage.getItem(e.ID_INDENT))!=null?L:"2_spaces"}e.getIndent=o;function a(){var L;return(L=localStorage.getItem(e.ID_FORMAT))!=null?L:"json"}e.getFormat=a;function s(){return localStorage.getItem(e.ID_HIGHLIGHTING)!=="false"}e.getHighlighting=s;function l(){var L;return(L=localStorage.getItem(e.ID_SOUNDS_VERSION))!=null?L:"latest"}e.getSoundsVersion=l;function d(){const L=localStorage.getItem(e.ID_PROJECTS);return L?JSON.parse(L):[Cr]}e.getProjects=d;function c(L){var X;return JSON.parse((X=localStorage.getItem(e.ID_BACKUPS))!=null?X:"{}")[L]}e.getBackup=c;function u(){const L=localStorage.getItem(e.ID_PROJECT_PANEL_OPEN);if(L!==null)return JSON.parse(L)}e.getProjectPanelOpen=u;function f(){var L;return(L=localStorage.getItem(e.ID_OPEN_PROJECT))!=null?L:Cr.name}e.getOpenProject=f;function h(){var L;return(L=localStorage.getItem(e.ID_TREE_VIEW_MODE))!=null?L:"resources"}e.getTreeViewMode=h;function w(){var L;return JSON.parse((L=localStorage.getItem(e.ID_GENERATOR_HISTORY))!=null?L:"[]")}e.getGeneratorHistory=w;function _(L){L&&localStorage.setItem(e.ID_LANGUAGE,L)}e.setLanguage=_;function g(L){L&&localStorage.setItem(e.ID_THEME,L)}e.setTheme=g;function m(L){L&&localStorage.setItem(e.ID_VERSION,L)}e.setVersion=m;function v(L){L&&localStorage.setItem(e.ID_INDENT,L)}e.setIndent=v;function x(L){L&&localStorage.setItem(e.ID_FORMAT,L)}e.setFormat=x;function b(L){L!==void 0&&localStorage.setItem(e.ID_HIGHLIGHTING,L.toString())}e.setHighlighting=b;function y(L){L&&localStorage.setItem(e.ID_SOUNDS_VERSION,L)}e.setSoundsVersion=y;function k(L){L&&localStorage.setItem(e.ID_PROJECTS,JSON.stringify(L))}e.setProjects=k;function C(L,F){var V;const X=JSON.parse((V=localStorage.getItem(e.ID_BACKUPS))!=null?V:"{}");F===void 0?delete X[L]:X[L]=F,localStorage.setItem(e.ID_BACKUPS,JSON.stringify(X))}e.setBackup=C;function E(L){L===void 0?localStorage.removeItem(e.ID_PROJECT_PANEL_OPEN):localStorage.setItem(e.ID_PROJECT_PANEL_OPEN,JSON.stringify(L))}e.setProjectPanelOpen=E;function M(L){L===void 0?localStorage.removeItem(e.ID_OPEN_PROJECT):localStorage.setItem(e.ID_OPEN_PROJECT,L)}e.setOpenProject=M;function S(L){L&&localStorage.setItem(e.ID_TREE_VIEW_MODE,L)}e.setTreeViewMode=S;function T(L){const F=w();F.push(L),localStorage.setItem(e.ID_GENERATOR_HISTORY,JSON.stringify(F.slice(-50)))}e.visitGenerator=T})(He||(He={}));var r2=JSON.parse('{"add":"Add","add_bottom":"Add to bottom","add_top":"Add to top","advancement":"Advancement","any_version":"Any","assets":"Assets","back":"Back","block_definition":"Blockstate","changelog":"Technical changelog","changelog.search":"Search changes","changelog.no_results":"No documented changes","changelog.show_more":"Show %0% more changes","choose_file":"Choose file","choose_zip_file":"Choose zip file","chat_type":"Chat Type","collapse":"Collapse","collapse_all":"Hold %0% to collapse all","configure_layers":"Configure layers","copy":"Copy","copy_share":"Copy share link","copied":"Copied!","copy_context":"Copy context","developed_by":"Developed by","dimension_type":"Dimension Type","dimension":"Dimension","disabled":"Disabled","donate":"Donate","download":"Download","duplicate":"Duplicate","enabled":"Enabled","entries_hidden":"%0% entries hidden","entries_hidden.more":"Show %0% more","entries_hidden.all":"Show all","expand":"Expand","expand_all":"Hold %0% to expand all","feature.decorated.decorators":"Decorators","feature.decorated.decorators.entry":"Decorator","follow_reference":"Follow reference","font":"Font","format.json":"JSON","format.yaml":"YAML","fields":"Fields","generate_new_seed":"Generate new seed","generate_new_uuid":"Generate new UUID","generators.all":"All generators","generators.popular":"Popular Generators","generators.recent":"Recently Used Generators","generators.search":"Search generators","generators.no_results":"No generators for this query","github":"GitHub","guides":"Guides","guides.all":"All guides","guides.search":"Search guides","guides.no_results.version":"No guides for this version","guides.no_results.query":"No guides for this query","hide_output":"Hide output","hide_preview":"Hide preview","hide_project":"Hide project","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","highlighting":"Highlighting","loading":"Loading...","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_file_chosen":"No file chosen","no_presets":"No presets","output_settings":"Output settings","predicate":"Predicate","recipe":"Recipe","redo":"Redo","reset":"Reset","reset_default":"Reset to default","restore_backup":"Restore last backup","settings":"Settings","settings.fields.description":"Customize advanced field settings","settings.fields.path":"Context","settings.fields.name":"Name","share":"Share","theme":"Theme","tag/block":"Block Tag","tag/entity_type":"Entity Type Tag","tag/fluid":"Fluid Tag","tag/game_event":"Game Event Tag","tag/item":"Item Tag","tag/worldgen/biome":"Biome Tag","tags":"Tags","theme.dark":"Dark","theme.light":"Light","theme.system":"System","title.changelog":"Technical Changelog","title.generator":"%0% Generator","title.generator_category":"%0% Generators","title.generators":"Data Pack Generators","title.guides":"Data Pack Guides","title.home":"Data Pack Generators","title.partners":"Partners","title.project":"%0% Project","title.new_project":"Create a new project","title.sounds":"Sound Explorer","title.versions":"Versions Explorer","title.worldgen":"Worldgen Generators and Guides","tools":"Tools","pack_mcmeta":"Pack.mcmeta","partner.immersive_weathering":"Immersive Weathering","partner.immersive_weathering.block_growth":"Block Growth","presets":"Presets","preview":"Visualize","preview.auto_scroll":"Auto scroll","preview.biome":"Biome","preview.daytime":"Daytime","preview.luck":"Luck","preview.scale":"Scale","preview.depth":"Depth","preview.factor":"Factor","preview.offset":"Offset","preview.peaks":"Peaks","preview.weather":"Weather","preview.weather.clear":"Clear","preview.weather.rain":"Rain","preview.weather.thunder":"Thunder","preview.width":"Width","project.new":"New project","project.cancel":"Cancel","project.create":"Create a new project","project.delete":"Delete project","project.delete_confirm.1":"You are about to delete %0%","project.delete_confirm.2":"This cannot be undone!","project.delete_file":"Delete file","project.download":"Download data pack","project.go_to":"Go to project","project.new_file":"New file","project.no_files":"No files","project.rename":"Rename","project.rename_file":"Rename file","project.save":"Save","project.save_current_file":"Save file to project","project.search":"Search project","project.search_drafts":"Search drafts","project.show_file_paths":"Show file paths","project.show_resources":"Show resources","project.unsaved_file":"Unsaved file","project.name":"Project name","project.name.already_exists":"There already exists a project with this name","project.namespace":"Default namespace","project.namespace.invalid":"Invalid namespace","remove":"Remove","resource_location":"Resource location","search":"Search","show_output":"Show output","show_preview":"Show preview","show_project":"Show project","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_code_on":"Source code on","source_placeholder":"Paste raw %0% content here","switch_generator":"Switch generator","switch_project":"Switch project","switch_version":"Switch version","terrain_settings":"Terrain settings","text_component":"Text Component","undo":"Undo","versions.article":"Article","versions.search":"Search versions","versions.no_results":"No results","versions.all":"All versions","versions.previous":"Previous","versions.next":"Next","versions.released":"Released","versions.release_target":"Release target","versions.data_version":"Data version","versions.protocol_version":"Protocol version","versions.pack_format":"Pack format","versions.data_pack_format":"Data pack format","versions.resource_pack_format":"Resource pack format","versions.technical_changes":"Technical changes","versions.discussion":"Discussion","versions.minecraft_versions":"Minecraft Versions","versions.latest_snapshot":"Latest snapshot","versions.latest_release":"Latest release","world":"World Settings","worldgen":"Worldgen","worldgen/biome":"Biome","worldgen/configured_carver":"Configured Carver","worldgen/configured_feature":"Configured Feature","worldgen/density_function":"Density Function","worldgen/placed_feature":"Placed Feature","worldgen/noise":"Noise","worldgen/noise_settings":"Noise Settings","worldgen/processor_list":"Processor List","worldgen/configured_structure_feature":"Structure Feature","worldgen/structure":"Structure","worldgen/structure_set":"Structure Set","worldgen/configured_surface_builder":"Surface Builder","worldgen/template_pool":"Template Pool","worldgen/world_preset":"World Preset","worldgen/flat_level_generator_preset":"Flat World Preset","y":"Y","zoom_in":"Zoom in","zoom_in_limit":"Cannot zoom in further\\n1 pixel = 4 blocks","zoom_out":"Zoom out"}'),Nv=Object.freeze(Object.defineProperty({__proto__:null,default:r2},Symbol.toStringTag,{value:"Module"}));function Rv(e){switch(e){case"../../../node_modules/@mcschema/locales/src/cs.json":return ke(()=>import("./cs.967a01eb.js"),[]);case"../../../node_modules/@mcschema/locales/src/de.json":return ke(()=>import("./de.489974c1.js"),[]);case"../../../node_modules/@mcschema/locales/src/en.json":return ke(()=>import("./en.746071a5.js"),[]);case"../../../node_modules/@mcschema/locales/src/es.json":return ke(()=>import("./es.6b3597bc.js"),[]);case"../../../node_modules/@mcschema/locales/src/fr.json":return ke(()=>import("./fr.9ee7053a.js"),[]);case"../../../node_modules/@mcschema/locales/src/it.json":return ke(()=>import("./it.7ff123cd.js"),[]);case"../../../node_modules/@mcschema/locales/src/ja.json":return ke(()=>import("./ja.a4b5e855.js"),[]);case"../../../node_modules/@mcschema/locales/src/ko.json":return ke(()=>import("./ko.430d6f93.js"),[]);case"../../../node_modules/@mcschema/locales/src/pl.json":return ke(()=>import("./pl.ae1f6791.js"),[]);case"../../../node_modules/@mcschema/locales/src/pt.json":return ke(()=>import("./pt.31e14993.js"),[]);case"../../../node_modules/@mcschema/locales/src/ru.json":return ke(()=>import("./ru.1298edc9.js"),[]);case"../../../node_modules/@mcschema/locales/src/sk.json":return ke(()=>import("./sk.d4265232.js"),[]);case"../../../node_modules/@mcschema/locales/src/zh-cn.json":return ke(()=>import("./zh-cn.c7dcc874.js"),[]);case"../../../node_modules/@mcschema/locales/src/zh-tw.json":return ke(()=>import("./zh-tw.fe4ef73c.js"),[]);default:return new Promise(function(t,n){(typeof queueMicrotask=="function"?queueMicrotask:setTimeout)(n.bind(null,new Error("Unknown variable dynamic import: "+e)))})}}function Dv(e){switch(e){case"../../locales/de.json":return ke(()=>import("./de.a269acce.js"),[]);case"../../locales/en.json":return ke(()=>Promise.resolve().then(function(){return Nv}),void 0);case"../../locales/es.json":return ke(()=>import("./es.833a9774.js"),[]);case"../../locales/fr.json":return ke(()=>import("./fr.3cd861bf.js"),[]);case"../../locales/it.json":return ke(()=>import("./it.fd9a8268.js"),[]);case"../../locales/ja.json":return ke(()=>import("./ja.0530e336.js"),[]);case"../../locales/ko.json":return ke(()=>import("./ko.b4055eb4.js"),[]);case"../../locales/pl.json":return ke(()=>import("./pl.8c27ef9b.js"),[]);case"../../locales/pt.json":return ke(()=>import("./pt.1a04bd2d.js"),[]);case"../../locales/ru.json":return ke(()=>import("./ru.c5e64dad.js"),[]);case"../../locales/sk.json":return ke(()=>import("./sk.96bbf351.js"),[]);case"../../locales/zh-cn.json":return ke(()=>import("./zh-cn.de5ac87e.js"),[]);case"../../locales/zh-tw.json":return ke(()=>import("./zh-tw.42e9d37d.js"),[]);default:return new Promise(function(t,n){(typeof queueMicrotask=="function"?queueMicrotask:setTimeout)(n.bind(null,new Error("Unknown variable dynamic import: "+e)))})}}const i2=Ir({lang:"none",locale:e=>e,changeLocale:()=>{}}),Mo={fallback:r2};function De(e,t,...n){var i,o,a,s,l;const r=(l=(s=(a=(i=Mo[e])==null?void 0:i[t])!=null?a:(o=Mo.en)==null?void 0:o[t])!=null?s:Mo.fallback[t])!=null?l:t;return Fv(r,n)}function Fv(e,t){return e.replace(/%\d+%/g,n=>{const r=parseInt(n.slice(1,-1));return(t==null?void 0:t[r])!==void 0?t[r]:n})}async function Hl(e){if(Mo[e])return;const t=Fe.languages.find(o=>o.code===e);if(!t)return;const n=await Dv(`../../locales/${e}.json`),r=t.schemas!==!1&&await Rv(`../../../node_modules/@mcschema/locales/src/${e}.json`);let i={default:{}};e==="en"&&(i=await ke(()=>import("./en.321d8b56.js"),[])),Mo[e]=oe(oe(oe({},n.default),r.default),i.default)}function Ee(){return ri(i2)}function Pv({children:e}){const[t,n]=Y("none"),r=je((a,...s)=>De(t,a,...s),[t]),i=je(async a=>{await Hl(a),Oe.changeLocale(t,a),He.setLanguage(a),n(a)},[t]);me(()=>{(async()=>{const a=He.getLanguage();Oe.setLocale(a),await Promise.all([Hl("en"),...a!=="en"?[Hl(a)]:[]]),n(a)})()},[]);const o={lang:t,locale:r,changeLocale:i};return p(i2.Provider,{value:o,children:e})}const Cr={name:"Drafts",namespace:"draft",files:[]},$v=["worldgen/[a-z_]+","tags/worldgen/[a-z_]+","tags/[a-z_]+","[a-z_]+"].map(e=>RegExp(`^data/([a-z0-9._-]+)/(${e})/([a-z0-9/._-]+)$`)),o2=Ir({projects:[Cr],project:Cr,createProject:()=>{},deleteProject:()=>{},changeProject:()=>{},updateProject:()=>{},updateFile:()=>!1,openFile:()=>{},closeFile:()=>{}});function Pn(){return ri(o2)}function Bv({children:e}){const[t,n]=Y(He.getProjects()),[r,i]=Y(He.getOpenProject()),o=Ce(()=>{var v;return(v=t.find(x=>x.name===r))!=null?v:Cr},[t,r]),[a,s]=Y(void 0),l=Ce(()=>{if(!!a)return o.files.find(v=>v.type===a[0]&&v.id===a[1])},[o,a]),d=je(v=>{He.setProjects(v),n(v)},[]),c=je((v,x,b)=>{d([...t,{name:v,namespace:x,version:b,files:[]}])},[t]),u=je(v=>{v!==Cr.name&&d(t.filter(x=>x.name!==v))},[t]),f=je(v=>{He.setOpenProject(v),i(v)},[]),h=je(v=>{d(t.map(x=>x.name===r?oe(oe({},x),v):x))},[t,r]),w=je((v,x,b)=>{var y,k;if(!b.id)h({files:o.files.filter(C=>C.type!==v||C.id!==x)});else{const C=v==="pack_mcmeta"?"pack":b.id.includes(":")?b.id:`${(y=o.namespace)!=null?y:"minecraft"}:${b.id}`,E=o.files.some(M=>M.type===v&&M.id===C);if(x){if((l==null?void 0:l.id)===x&&x!==C&&E)return!1;h({files:o.files.map(M=>M.type===v&&M.id===x?be(oe(oe({},M),b),{id:C}):M)}),(l==null?void 0:l.id)===x&&s([v,C])}else{if(E)return!1;h({files:[...o.files,{type:v,id:C,data:(k=b.data)!=null?k:{}}]}),s([v,C])}}return!0},[h,o,l]),_=je((v,x)=>{const b=Fe.generators.find(y=>y.id===v||y.path===v);if(!b)throw new Error(`Cannot find generator of type ${v}`);s([b.id,x]),ti(kr(b.url))},[]),g=je(()=>{s(void 0)},[]),m={projects:t,project:o,file:l,createProject:c,changeProject:f,deleteProject:u,updateProject:h,updateFile:w,openFile:_,closeFile:g};return p(o2.Provider,{value:m,children:e})}function Zl(e){var i;const[t,n]=e.id.includes(":")?e.id.split(":"):["minecraft",e.id];if(e.type==="pack_mcmeta")return e.id==="pack"?"pack.mcmeta":void 0;const r=Fe.generators.find(o=>o.id===e.type);if(!!r)return`data/${t}/${(i=r.path)!=null?i:r.id}/${n}.json`}function a2(e){if(e==="pack.mcmeta")return{type:"pack_mcmeta",id:"pack"};for(const t of $v){const n=e.match(t);if(!n)continue;const r=Fe.generators.find(a=>{var s;return((s=a.path)!=null?s:a.id)===n[2]});if(!r)continue;const i=n[1],o=n[3].replace(/\.[a-z]+$/,"");return{type:r.id,id:`${i}:${o}`}}}const s2=Ir({biomeColors:{},setBiomeColor:()=>{}});function l2(){return ri(s2)}function zv({children:e}){const[t,n]=Zp("misode_biome_colors",{},JSON.parse,JSON.stringify),r=je((o,a)=>{n(be(oe({},t),{[o]:a}))},[t]),i={biomeColors:t,setBiomeColor:r};return p(s2.Provider,{value:i,children:e})}const c2=Ir({theme:"dark",actualTheme:"dark",changeTheme:()=>{}});function d2(){return ri(c2)}function jv({children:e}){const[t,n]=Y(He.getTheme()),r=Ms("(prefers-color-scheme: light)"),i=Ms("(prefers-color-scheme: dark)");me(()=>{document.documentElement.setAttribute("data-theme",t)},[t]);const o=je(s=>{Oe.changeTheme(t,s),He.setTheme(s),n(s)},[t]);me(()=>{Oe.setPrefersColorScheme(r?"light":i?"dark":"none")},[r,i]),me(()=>{Oe.setTheme(t)},[]);const a={theme:t,actualTheme:t==="light"||t!=="dark"&&r?"light":"dark",changeTheme:o};return p(c2.Provider,{value:a,children:e})}const Vv=3,u2=Ir({title:"",changeTitle:()=>{}});function wn(e,t,n){const r=ri(u2);return me(()=>{e&&r.changeTitle(e,t,n)},[e,t,n]),r}function Uv({children:e}){const{locale:t}=Ee(),[n,r]=Y(t("title.home")),i=je((a,s,l)=>{let d=Fe.versions;s!==void 0&&(d=Fe.versions.filter(u=>s==null?void 0:s.includes(u.id)));let c="";l&&(c=` - ${l}`),(s==null?void 0:s.length)!==0&&(c=` - Minecraft ${d.map(f=>f.id).slice(-Vv).join(", ")}`),document.title=a+c,r(a)},[]),o={title:n,changeTitle:i};return p(u2.Provider,{value:o,children:e})}const Hv="version",f2=Ir({version:"1.18.2",changeVersion:()=>{},changeTargetVersion:()=>{}});function Yt(){return ri(f2)}function Zv({children:e}){const[t,n]=Y(He.getVersionOrDefault()),[r,i]=Wr(Hv);me(()=>{Uc.includes(r)&&t!==r&&(Oe.setVersion(r),n(r))},[t,r]);const o=je((s,l=!0,d=!1)=>{(d||r)&&i(s,!0),l&&(Oe.changeVersion(t,s),He.setVersion(s)),n(s)},[t,r]);me(()=>{var s;Oe.setVersion(t),Oe.setSelectedVersion((s=He.getVersion())!=null?s:"default")},[]);const a={version:t,changeVersion:o,changeTargetVersion:i};return p(f2.Provider,{value:a,children:e})}function Gv({value:e,onChange:t,label:n,accept:r}){const{locale:i}=Ee(),o=Ie(null),a=()=>{var l,d;if(o.current!==null)for(let c=0;c<((d=(l=o.current.files)==null?void 0:l.length)!=null?d:0);c++){const u=o.current.files[c];t(u)}},s=je(l=>{if(l.preventDefault(),!!l.dataTransfer)for(let d=0;d<l.dataTransfer.files.length;d++){const c=l.dataTransfer.files[d];t(c)}},[t]);return R("label",{class:"file-upload",onDrop:s,onDragOver:l=>l.preventDefault(),children:[p("input",{ref:o,type:"file",onChange:a,accept:r}),p(ae,{label:n!=null?n:i("choose_file")}),p("span",{children:e?e.name:i("no_file_chosen")})]})}function $n({donate:e}){const{locale:t}=Ee();return R("footer",{children:[p("p",{children:R("span",{children:[t("developed_by")," ",p("a",{href:"https://github.com/misode",target:"_blank",rel:"noreferrer",children:"Misode"})]})}),e!==!1&&R("p",{class:"donate",children:[fe.heart,p("a",{href:"https://ko-fi.com/misode",target:"_blank",rel:"noreferrer",children:t("donate")})]}),R("p",{children:[fe.mark_github,R("span",{children:[t("source_code_on")," ",p("a",{href:"https://github.com/misode/misode.github.io",target:"_blank",rel:"noreferrer",children:t("github")})]})]})]})}function Yv({label:e,value:t,onChange:n}){const r=Ur();return R("label",{class:"checkbox",children:[p("input",{id:r,type:"checkbox",checked:t,onClick:()=>n(!t)}),e]})}function Pd(e,t,n){const r=i=>{const o=i.onChange&&(l=>{var c;const d=l.target.value;(c=i.onChange)==null||c.call(i,n(d))}),a=i.onEnter&&(l=>{var d,c;if(l.key==="Enter"){const u=l.target.value;(d=i.onEnter)==null||d.call(i,n(u))}else l.key==="Escape"&&((c=i.onCancel)==null||c.call(i))}),s=Ie(null);return me(()=>{var l;i.autofocus&&((l=s.current)==null||l.select())},[i.autofocus]),p("input",be(oe({ref:s},i),{type:t,onChange:o,onKeyDown:a}))};return r.displayName=e,r}const _n=Pd("TextInput","text",e=>e),Ts=Pd("NumberInput","number",e=>Number(e)),Z1=Pd("RangeInput","range",e=>Number(e));function Wv({values:e,onSelect:t,searchPlaceholder:n,noResults:r}){const[i,o]=Y(""),a=Ce(()=>{var l;const s=i.trim().split(" ");return(l=e==null?void 0:e.filter(d=>s.every(c=>d.includes(c))))!=null?l:[]},[e,i]);return R(ce,{children:[p(ns,{icon:"search",large:!0,value:i,onChange:o,doSelect:1,placeholder:n!=null?n:"Search"}),R("div",{class:"result-list",children:[a.map(s=>p(ae,{label:s,onClick:()=>t==null?void 0:t(s)},s)),a.length===0&&p(ae,{label:r!=null?r:"No results"})]})]})}const Gl="data-modals";function ll(e){var n;me(()=>(G1(1),window.addEventListener("click",e.onDismiss),()=>{G1(-1),window.removeEventListener("click",e.onDismiss)}));const t=je(r=>{var i;r.stopPropagation(),(i=r.target)==null||i.dispatchEvent(new Event(jc,{bubbles:!0}))},[]);return p("div",be(oe({},e),{class:`modal ${(n=e.class)!=null?n:""}`,onClick:t,children:e.children}))}function G1(e){var r;const n=parseInt((r=document.body.getAttribute(Gl))!=null?r:"0")+e;n<=0?document.body.removeAttribute(Gl):document.body.setAttribute(Gl,n.toFixed())}function qv({model:e,id:t,method:n,onClose:r}){const{locale:i}=Ee(),{projects:o,project:a,updateFile:s}=Pn(),[l,d]=Y(t==="pack_mcmeta"?"pack":""),c=()=>{Oe.saveProjectFile(t,o.length,a.files.length,n),s(t,void 0,{type:t,id:l,data:P.DataModel.unwrapLists(e.data)}),r()};return R(ll,{class:"file-modal",onDismiss:r,children:[p("p",{children:i("project.save_current_file")}),p(_n,{autofocus:t!=="pack_mcmeta",class:"btn btn-input",value:l,onChange:d,onEnter:c,onCancel:r,placeholder:i("resource_location"),spellcheck:!1,readOnly:t==="pack_mcmeta"}),p(ae,{icon:"file",label:i("project.save"),onClick:c})]})}function Xv({id:e,name:t,onClose:n}){const{locale:r}=Ee(),{projects:i,project:o,updateFile:a}=Pn(),[s,l]=Y(t),d=()=>{Oe.renameProjectFile(e,i.length,o.files.length,"menu"),a(e,t,{type:e,id:s}),n()};return R(ll,{class:"file-modal",onDismiss:n,children:[p("p",{children:r("project.rename_file")}),p(_n,{autofocus:!0,class:"btn btn-input",value:s,onChange:l,onEnter:d,placeholder:r("resource_location"),spellcheck:!1}),p(ae,{icon:"pencil",label:r("project.rename"),onClick:d})]})}function An({id:e,minimal:t}){var l;const{locale:n}=Ee(),r=Ce(()=>{const d=Fe.generators.find(c=>c.id===e);return d===void 0?{id:e,schema:e,url:e}:d},[e]),i=n(r.partner?`partner.${r.partner}.${r.id}`:r.id),o=Object.keys(Ki).includes(e)?e:void 0;if(t)return p(er,{title:i,link:kr(r.url),titleIcon:o});const a=Ce(()=>r?Fe.versions.filter(d=>mt(d.id,r.minVersion,r.maxVersion)).map(d=>d.id):[],[r]),s=Ce(()=>{var d;return(d=r.tags)!=null&&d.includes("assets")?["resource-pack"]:[]},[r]);return R(Ld,{title:R(ce,{children:[i,o&&Ki[o]]}),overlay:r.partner?n(`partner.${r.partner}`):a.join(" \u2022 "),link:kr(r.url),children:[!r.noPath&&R("p",{class:"card-subtitle",children:["/",(l=r.path)!=null?l:r.id]}),s.length>0&&p("div",{class:"badges-list",children:s.sort().map(d=>p(oo,{label:d}))})]})}function $d({predicate:e}){const{locale:t}=Ee(),{version:n,changeVersion:r}=Yt(),[i,o]=Y(""),[a,s]=Y(!0),l=Ce(()=>Fe.generators.filter(c=>e===void 0||!e(c)?!1:a===!1?!0:mt(n,c.minVersion,c.maxVersion)),[n,a]),d=Ce(()=>{const c=i.split(" ").map(u=>u.trim().toLowerCase()).filter(u=>u.length>0);return l.filter(u=>{var h,w,_,g;const f=`${u.id} ${(w=(h=u.tags)==null?void 0:h.join(" "))!=null?w:""} ${(_=u.path)!=null?_:""} ${(g=u.partner)!=null?g:""} ${t(u.id).toLowerCase()}`;return c.every(m=>m.startsWith("!")?m.length===1||!f.includes(m.slice(1)):f.includes(m))})},[l,i,t]);return R("div",{class:"generator-list",children:[R("div",{class:"navigation",children:[p(_n,{class:"btn btn-input query-search",placeholder:t("generators.search"),value:i,onChange:o}),p(wa,{value:a?n:void 0,onChange:c=>{r(c),s(!0)},hasAny:!0,onAny:()=>s(!1)})]}),d.length===0?p(ce,{children:p("span",{class:"note",children:t("generators.no_results")})}):p("div",{class:"card-column",children:d.map(c=>p(An,{id:c.id}))})]})}var Kt;(function(e){e.UP="up",e.DOWN="down",e.NORTH="north",e.EAST="east",e.SOUTH="south",e.WEST="west"})(Kt||(Kt={}));const Kv={[Kt.UP]:[0,1,0],[Kt.DOWN]:[0,-1,0],[Kt.NORTH]:[0,0,-1],[Kt.EAST]:[1,0,0],[Kt.SOUTH]:[0,0,1],[Kt.WEST]:[-1,0,0]};(function(e){e.ALL=[e.UP,e.DOWN,e.NORTH,e.EAST,e.SOUTH,e.WEST];function t(n){return Kv[n]}e.normal=t})(Kt||(Kt={}));var Dt;(function(e){function t(a,s,l){return[a,s,l]}e.create=t,e.ZERO=e.create(0,0,0);function n(a,s,l,d){return[a[0]+s,a[1]+l,a[2]+d]}e.offset=n;function r(a,s){return e.offset(a,...Kt.normal(s))}e.towards=r;function i(a,s){return a===s?!0:a[0]===s[0]&&a[1]===s[1]&&a[2]===s[2]}e.equals=i;function o(a){return a[0]*a[0]+a[1]*a[1]+a[2]*a[2]}e.magnitude=o})(Dt||(Dt={}));/*! pako 2.0.4 https://github.com/nodeca/pako @license (MIT AND Zlib) */const Jv=4,Y1=0,W1=1,Qv=2;function no(e){let t=e.length;for(;--t>=0;)e[t]=0}const eb=0,h2=1,tb=2,nb=3,rb=258,Bd=29,ha=256,jo=ha+1+Bd,Fi=30,zd=19,p2=2*jo+1,Br=15,Yl=16,ib=7,jd=256,g2=16,m2=17,_2=18,Zc=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]),os=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]),ob=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),w2=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),ab=512,Gn=new Array((jo+2)*2);no(Gn);const To=new Array(Fi*2);no(To);const Vo=new Array(ab);no(Vo);const Uo=new Array(rb-nb+1);no(Uo);const Vd=new Array(Bd);no(Vd);const Ls=new Array(Fi);no(Ls);function Wl(e,t,n,r,i){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=r,this.max_length=i,this.has_stree=e&&e.length}let v2,b2,x2;function ql(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}const y2=e=>e<256?Vo[e]:Vo[256+(e>>>7)],Ho=(e,t)=>{e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255},Bt=(e,t,n)=>{e.bi_valid>Yl-n?(e.bi_buf|=t<<e.bi_valid&65535,Ho(e,e.bi_buf),e.bi_buf=t>>Yl-e.bi_valid,e.bi_valid+=n-Yl):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)},Sn=(e,t,n)=>{Bt(e,n[t*2],n[t*2+1])},k2=(e,t)=>{let n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1},sb=e=>{e.bi_valid===16?(Ho(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)},lb=(e,t)=>{const n=t.dyn_tree,r=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,l=t.stat_desc.max_length;let d,c,u,f,h,w,_=0;for(f=0;f<=Br;f++)e.bl_count[f]=0;for(n[e.heap[e.heap_max]*2+1]=0,d=e.heap_max+1;d<p2;d++)c=e.heap[d],f=n[n[c*2+1]*2+1]+1,f>l&&(f=l,_++),n[c*2+1]=f,!(c>r)&&(e.bl_count[f]++,h=0,c>=s&&(h=a[c-s]),w=n[c*2],e.opt_len+=w*(f+h),o&&(e.static_len+=w*(i[c*2+1]+h)));if(_!==0){do{for(f=l-1;e.bl_count[f]===0;)f--;e.bl_count[f]--,e.bl_count[f+1]+=2,e.bl_count[l]--,_-=2}while(_>0);for(f=l;f!==0;f--)for(c=e.bl_count[f];c!==0;)u=e.heap[--d],!(u>r)&&(n[u*2+1]!==f&&(e.opt_len+=(f-n[u*2+1])*n[u*2],n[u*2+1]=f),c--)}},C2=(e,t,n)=>{const r=new Array(Br+1);let i=0,o,a;for(o=1;o<=Br;o++)r[o]=i=i+n[o-1]<<1;for(a=0;a<=t;a++){let s=e[a*2+1];s!==0&&(e[a*2]=k2(r[s]++,s))}},cb=()=>{let e,t,n,r,i;const o=new Array(Br+1);for(n=0,r=0;r<Bd-1;r++)for(Vd[r]=n,e=0;e<1<<Zc[r];e++)Uo[n++]=r;for(Uo[n-1]=r,i=0,r=0;r<16;r++)for(Ls[r]=i,e=0;e<1<<os[r];e++)Vo[i++]=r;for(i>>=7;r<Fi;r++)for(Ls[r]=i<<7,e=0;e<1<<os[r]-7;e++)Vo[256+i++]=r;for(t=0;t<=Br;t++)o[t]=0;for(e=0;e<=143;)Gn[e*2+1]=8,e++,o[8]++;for(;e<=255;)Gn[e*2+1]=9,e++,o[9]++;for(;e<=279;)Gn[e*2+1]=7,e++,o[7]++;for(;e<=287;)Gn[e*2+1]=8,e++,o[8]++;for(C2(Gn,jo+1,o),e=0;e<Fi;e++)To[e*2+1]=5,To[e*2]=k2(e,5);v2=new Wl(Gn,Zc,ha+1,jo,Br),b2=new Wl(To,os,0,Fi,Br),x2=new Wl(new Array(0),ob,0,zd,ib)},E2=e=>{let t;for(t=0;t<jo;t++)e.dyn_ltree[t*2]=0;for(t=0;t<Fi;t++)e.dyn_dtree[t*2]=0;for(t=0;t<zd;t++)e.bl_tree[t*2]=0;e.dyn_ltree[jd*2]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0},A2=e=>{e.bi_valid>8?Ho(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},db=(e,t,n,r)=>{A2(e),r&&(Ho(e,n),Ho(e,~n)),e.pending_buf.set(e.window.subarray(t,t+n),e.pending),e.pending+=n},q1=(e,t,n,r)=>{const i=t*2,o=n*2;return e[i]<e[o]||e[i]===e[o]&&r[t]<=r[n]},Xl=(e,t,n)=>{const r=e.heap[n];let i=n<<1;for(;i<=e.heap_len&&(i<e.heap_len&&q1(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!q1(t,r,e.heap[i],e.depth));)e.heap[n]=e.heap[i],n=i,i<<=1;e.heap[n]=r},X1=(e,t,n)=>{let r,i,o=0,a,s;if(e.last_lit!==0)do r=e.pending_buf[e.d_buf+o*2]<<8|e.pending_buf[e.d_buf+o*2+1],i=e.pending_buf[e.l_buf+o],o++,r===0?Sn(e,i,t):(a=Uo[i],Sn(e,a+ha+1,t),s=Zc[a],s!==0&&(i-=Vd[a],Bt(e,i,s)),r--,a=y2(r),Sn(e,a,n),s=os[a],s!==0&&(r-=Ls[a],Bt(e,r,s)));while(o<e.last_lit);Sn(e,jd,t)},Gc=(e,t)=>{const n=t.dyn_tree,r=t.stat_desc.static_tree,i=t.stat_desc.has_stree,o=t.stat_desc.elems;let a,s,l=-1,d;for(e.heap_len=0,e.heap_max=p2,a=0;a<o;a++)n[a*2]!==0?(e.heap[++e.heap_len]=l=a,e.depth[a]=0):n[a*2+1]=0;for(;e.heap_len<2;)d=e.heap[++e.heap_len]=l<2?++l:0,n[d*2]=1,e.depth[d]=0,e.opt_len--,i&&(e.static_len-=r[d*2+1]);for(t.max_code=l,a=e.heap_len>>1;a>=1;a--)Xl(e,n,a);d=o;do a=e.heap[1],e.heap[1]=e.heap[e.heap_len--],Xl(e,n,1),s=e.heap[1],e.heap[--e.heap_max]=a,e.heap[--e.heap_max]=s,n[d*2]=n[a*2]+n[s*2],e.depth[d]=(e.depth[a]>=e.depth[s]?e.depth[a]:e.depth[s])+1,n[a*2+1]=n[s*2+1]=d,e.heap[1]=d++,Xl(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],lb(e,t),C2(n,l,e.bl_count)},K1=(e,t,n)=>{let r,i=-1,o,a=t[0*2+1],s=0,l=7,d=4;for(a===0&&(l=138,d=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)o=a,a=t[(r+1)*2+1],!(++s<l&&o===a)&&(s<d?e.bl_tree[o*2]+=s:o!==0?(o!==i&&e.bl_tree[o*2]++,e.bl_tree[g2*2]++):s<=10?e.bl_tree[m2*2]++:e.bl_tree[_2*2]++,s=0,i=o,a===0?(l=138,d=3):o===a?(l=6,d=3):(l=7,d=4))},J1=(e,t,n)=>{let r,i=-1,o,a=t[0*2+1],s=0,l=7,d=4;for(a===0&&(l=138,d=3),r=0;r<=n;r++)if(o=a,a=t[(r+1)*2+1],!(++s<l&&o===a)){if(s<d)do Sn(e,o,e.bl_tree);while(--s!==0);else o!==0?(o!==i&&(Sn(e,o,e.bl_tree),s--),Sn(e,g2,e.bl_tree),Bt(e,s-3,2)):s<=10?(Sn(e,m2,e.bl_tree),Bt(e,s-3,3)):(Sn(e,_2,e.bl_tree),Bt(e,s-11,7));s=0,i=o,a===0?(l=138,d=3):o===a?(l=6,d=3):(l=7,d=4)}},ub=e=>{let t;for(K1(e,e.dyn_ltree,e.l_desc.max_code),K1(e,e.dyn_dtree,e.d_desc.max_code),Gc(e,e.bl_desc),t=zd-1;t>=3&&e.bl_tree[w2[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t},fb=(e,t,n,r)=>{let i;for(Bt(e,t-257,5),Bt(e,n-1,5),Bt(e,r-4,4),i=0;i<r;i++)Bt(e,e.bl_tree[w2[i]*2+1],3);J1(e,e.dyn_ltree,t-1),J1(e,e.dyn_dtree,n-1)},hb=e=>{let t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return Y1;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return W1;for(n=32;n<ha;n++)if(e.dyn_ltree[n*2]!==0)return W1;return Y1};let Q1=!1;const pb=e=>{Q1||(cb(),Q1=!0),e.l_desc=new ql(e.dyn_ltree,v2),e.d_desc=new ql(e.dyn_dtree,b2),e.bl_desc=new ql(e.bl_tree,x2),e.bi_buf=0,e.bi_valid=0,E2(e)},S2=(e,t,n,r)=>{Bt(e,(eb<<1)+(r?1:0),3),db(e,t,n,!0)},gb=e=>{Bt(e,h2<<1,3),Sn(e,jd,Gn),sb(e)},mb=(e,t,n,r)=>{let i,o,a=0;e.level>0?(e.strm.data_type===Qv&&(e.strm.data_type=hb(e)),Gc(e,e.l_desc),Gc(e,e.d_desc),a=ub(e),i=e.opt_len+3+7>>>3,o=e.static_len+3+7>>>3,o<=i&&(i=o)):i=o=n+5,n+4<=i&&t!==-1?S2(e,t,n,r):e.strategy===Jv||o===i?(Bt(e,(h2<<1)+(r?1:0),3),X1(e,Gn,To)):(Bt(e,(tb<<1)+(r?1:0),3),fb(e,e.l_desc.max_code+1,e.d_desc.max_code+1,a+1),X1(e,e.dyn_ltree,e.dyn_dtree)),E2(e),r&&A2(e)},_b=(e,t,n)=>(e.pending_buf[e.d_buf+e.last_lit*2]=t>>>8&255,e.pending_buf[e.d_buf+e.last_lit*2+1]=t&255,e.pending_buf[e.l_buf+e.last_lit]=n&255,e.last_lit++,t===0?e.dyn_ltree[n*2]++:(e.matches++,t--,e.dyn_ltree[(Uo[n]+ha+1)*2]++,e.dyn_dtree[y2(t)*2]++),e.last_lit===e.lit_bufsize-1);var wb=pb,vb=S2,bb=mb,xb=_b,yb=gb,kb={_tr_init:wb,_tr_stored_block:vb,_tr_flush_block:bb,_tr_tally:xb,_tr_align:yb};const Cb=(e,t,n,r)=>{let i=e&65535|0,o=e>>>16&65535|0,a=0;for(;n!==0;){a=n>2e3?2e3:n,n-=a;do i=i+t[r++]|0,o=o+i|0;while(--a);i%=65521,o%=65521}return i|o<<16|0};var Zo=Cb;const Eb=()=>{let e,t=[];for(var n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=e&1?3988292384^e>>>1:e>>>1;t[n]=e}return t},Ab=new Uint32Array(Eb()),Sb=(e,t,n,r)=>{const i=Ab,o=r+n;e^=-1;for(let a=r;a<o;a++)e=e>>>8^i[(e^t[a])&255];return e^-1};var ft=Sb,qr={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"},ii={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:Ib,_tr_stored_block:Mb,_tr_flush_block:Tb,_tr_tally:vr,_tr_align:Lb}=kb,{Z_NO_FLUSH:oi,Z_PARTIAL_FLUSH:Ob,Z_FULL_FLUSH:Nb,Z_FINISH:br,Z_BLOCK:eu,Z_OK:In,Z_STREAM_END:tu,Z_STREAM_ERROR:en,Z_DATA_ERROR:Rb,Z_BUF_ERROR:Kl,Z_DEFAULT_COMPRESSION:Db,Z_FILTERED:Fb,Z_HUFFMAN_ONLY:Na,Z_RLE:Pb,Z_FIXED:$b,Z_DEFAULT_STRATEGY:Bb,Z_UNKNOWN:zb,Z_DEFLATED:cl}=ii,jb=9,Vb=15,Ub=8,Hb=29,Zb=256,Yc=Zb+1+Hb,Gb=30,Yb=19,Wb=2*Yc+1,qb=15,Ne=3,pr=258,pn=pr+Ne+1,Xb=32,dl=42,Wc=69,as=73,ss=91,ls=103,zr=113,yo=666,ct=1,pa=2,Xr=3,ro=4,Kb=3,gr=(e,t)=>(e.msg=qr[t],t),nu=e=>(e<<1)-(e>4?9:0),hr=e=>{let t=e.length;for(;--t>=0;)e[t]=0};let Jb=(e,t,n)=>(t<<e.hash_shift^n)&e.hash_mask,xr=Jb;const cr=e=>{const t=e.state;let n=t.pending;n>e.avail_out&&(n=e.avail_out),n!==0&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+n),e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,t.pending===0&&(t.pending_out=0))},Ct=(e,t)=>{Tb(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,cr(e.strm)},Be=(e,t)=>{e.pending_buf[e.pending++]=t},wo=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255},Qb=(e,t,n,r)=>{let i=e.avail_in;return i>r&&(i=r),i===0?0:(e.avail_in-=i,t.set(e.input.subarray(e.next_in,e.next_in+i),n),e.state.wrap===1?e.adler=Zo(e.adler,t,i,n):e.state.wrap===2&&(e.adler=ft(e.adler,t,i,n)),e.next_in+=i,e.total_in+=i,i)},I2=(e,t)=>{let n=e.max_chain_length,r=e.strstart,i,o,a=e.prev_length,s=e.nice_match;const l=e.strstart>e.w_size-pn?e.strstart-(e.w_size-pn):0,d=e.window,c=e.w_mask,u=e.prev,f=e.strstart+pr;let h=d[r+a-1],w=d[r+a];e.prev_length>=e.good_match&&(n>>=2),s>e.lookahead&&(s=e.lookahead);do if(i=t,!(d[i+a]!==w||d[i+a-1]!==h||d[i]!==d[r]||d[++i]!==d[r+1])){r+=2,i++;do;while(d[++r]===d[++i]&&d[++r]===d[++i]&&d[++r]===d[++i]&&d[++r]===d[++i]&&d[++r]===d[++i]&&d[++r]===d[++i]&&d[++r]===d[++i]&&d[++r]===d[++i]&&r<f);if(o=pr-(f-r),r=f-pr,o>a){if(e.match_start=t,a=o,o>=s)break;h=d[r+a-1],w=d[r+a]}}while((t=u[t&c])>l&&--n!==0);return a<=e.lookahead?a:e.lookahead},Kr=e=>{const t=e.w_size;let n,r,i,o,a;do{if(o=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-pn)){e.window.set(e.window.subarray(t,t+t),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,r=e.hash_size,n=r;do i=e.head[--n],e.head[n]=i>=t?i-t:0;while(--r);r=t,n=r;do i=e.prev[--n],e.prev[n]=i>=t?i-t:0;while(--r);o+=t}if(e.strm.avail_in===0)break;if(r=Qb(e.strm,e.window,e.strstart+e.lookahead,o),e.lookahead+=r,e.lookahead+e.insert>=Ne)for(a=e.strstart-e.insert,e.ins_h=e.window[a],e.ins_h=xr(e,e.ins_h,e.window[a+1]);e.insert&&(e.ins_h=xr(e,e.ins_h,e.window[a+Ne-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<Ne)););}while(e.lookahead<pn&&e.strm.avail_in!==0)},e6=(e,t)=>{let n=65535;for(n>e.pending_buf_size-5&&(n=e.pending_buf_size-5);;){if(e.lookahead<=1){if(Kr(e),e.lookahead===0&&t===oi)return ct;if(e.lookahead===0)break}e.strstart+=e.lookahead,e.lookahead=0;const r=e.block_start+n;if((e.strstart===0||e.strstart>=r)&&(e.lookahead=e.strstart-r,e.strstart=r,Ct(e,!1),e.strm.avail_out===0)||e.strstart-e.block_start>=e.w_size-pn&&(Ct(e,!1),e.strm.avail_out===0))return ct}return e.insert=0,t===br?(Ct(e,!0),e.strm.avail_out===0?Xr:ro):(e.strstart>e.block_start&&(Ct(e,!1),e.strm.avail_out===0),ct)},Jl=(e,t)=>{let n,r;for(;;){if(e.lookahead<pn){if(Kr(e),e.lookahead<pn&&t===oi)return ct;if(e.lookahead===0)break}if(n=0,e.lookahead>=Ne&&(e.ins_h=xr(e,e.ins_h,e.window[e.strstart+Ne-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),n!==0&&e.strstart-n<=e.w_size-pn&&(e.match_length=I2(e,n)),e.match_length>=Ne)if(r=vr(e,e.strstart-e.match_start,e.match_length-Ne),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=Ne){e.match_length--;do e.strstart++,e.ins_h=xr(e,e.ins_h,e.window[e.strstart+Ne-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=xr(e,e.ins_h,e.window[e.strstart+1]);else r=vr(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(Ct(e,!1),e.strm.avail_out===0))return ct}return e.insert=e.strstart<Ne-1?e.strstart:Ne-1,t===br?(Ct(e,!0),e.strm.avail_out===0?Xr:ro):e.last_lit&&(Ct(e,!1),e.strm.avail_out===0)?ct:pa},hi=(e,t)=>{let n,r,i;for(;;){if(e.lookahead<pn){if(Kr(e),e.lookahead<pn&&t===oi)return ct;if(e.lookahead===0)break}if(n=0,e.lookahead>=Ne&&(e.ins_h=xr(e,e.ins_h,e.window[e.strstart+Ne-1]),n=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=Ne-1,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-pn&&(e.match_length=I2(e,n),e.match_length<=5&&(e.strategy===Fb||e.match_length===Ne&&e.strstart-e.match_start>4096)&&(e.match_length=Ne-1)),e.prev_length>=Ne&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-Ne,r=vr(e,e.strstart-1-e.prev_match,e.prev_length-Ne),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=i&&(e.ins_h=xr(e,e.ins_h,e.window[e.strstart+Ne-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!==0);if(e.match_available=0,e.match_length=Ne-1,e.strstart++,r&&(Ct(e,!1),e.strm.avail_out===0))return ct}else if(e.match_available){if(r=vr(e,0,e.window[e.strstart-1]),r&&Ct(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return ct}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=vr(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<Ne-1?e.strstart:Ne-1,t===br?(Ct(e,!0),e.strm.avail_out===0?Xr:ro):e.last_lit&&(Ct(e,!1),e.strm.avail_out===0)?ct:pa},t6=(e,t)=>{let n,r,i,o;const a=e.window;for(;;){if(e.lookahead<=pr){if(Kr(e),e.lookahead<=pr&&t===oi)return ct;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=Ne&&e.strstart>0&&(i=e.strstart-1,r=a[i],r===a[++i]&&r===a[++i]&&r===a[++i])){o=e.strstart+pr;do;while(r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&i<o);e.match_length=pr-(o-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=Ne?(n=vr(e,1,e.match_length-Ne),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=vr(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(Ct(e,!1),e.strm.avail_out===0))return ct}return e.insert=0,t===br?(Ct(e,!0),e.strm.avail_out===0?Xr:ro):e.last_lit&&(Ct(e,!1),e.strm.avail_out===0)?ct:pa},n6=(e,t)=>{let n;for(;;){if(e.lookahead===0&&(Kr(e),e.lookahead===0)){if(t===oi)return ct;break}if(e.match_length=0,n=vr(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(Ct(e,!1),e.strm.avail_out===0))return ct}return e.insert=0,t===br?(Ct(e,!0),e.strm.avail_out===0?Xr:ro):e.last_lit&&(Ct(e,!1),e.strm.avail_out===0)?ct:pa};function kn(e,t,n,r,i){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=r,this.func=i}const ko=[new kn(0,0,0,0,e6),new kn(4,4,8,4,Jl),new kn(4,5,16,8,Jl),new kn(4,6,32,32,Jl),new kn(4,4,16,16,hi),new kn(8,16,32,32,hi),new kn(8,16,128,128,hi),new kn(8,32,128,256,hi),new kn(32,128,258,1024,hi),new kn(32,258,258,4096,hi)],r6=e=>{e.window_size=2*e.w_size,hr(e.head),e.max_lazy_match=ko[e.level].max_lazy,e.good_match=ko[e.level].good_length,e.nice_match=ko[e.level].nice_length,e.max_chain_length=ko[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=Ne-1,e.match_available=0,e.ins_h=0};function i6(){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=cl,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(Wb*2),this.dyn_dtree=new Uint16Array((2*Gb+1)*2),this.bl_tree=new Uint16Array((2*Yb+1)*2),hr(this.dyn_ltree),hr(this.dyn_dtree),hr(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(qb+1),this.heap=new Uint16Array(2*Yc+1),hr(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*Yc+1),hr(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 M2=e=>{if(!e||!e.state)return gr(e,en);e.total_in=e.total_out=0,e.data_type=zb;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?dl:zr,e.adler=t.wrap===2?0:1,t.last_flush=oi,Ib(t),In},T2=e=>{const t=M2(e);return t===In&&r6(e.state),t},o6=(e,t)=>!e||!e.state||e.state.wrap!==2?en:(e.state.gzhead=t,In),L2=(e,t,n,r,i,o)=>{if(!e)return en;let a=1;if(t===Db&&(t=6),r<0?(a=0,r=-r):r>15&&(a=2,r-=16),i<1||i>jb||n!==cl||r<8||r>15||t<0||t>9||o<0||o>$b)return gr(e,en);r===8&&(r=9);const s=new i6;return e.state=s,s.strm=e,s.wrap=a,s.gzhead=null,s.w_bits=r,s.w_size=1<<s.w_bits,s.w_mask=s.w_size-1,s.hash_bits=i+7,s.hash_size=1<<s.hash_bits,s.hash_mask=s.hash_size-1,s.hash_shift=~~((s.hash_bits+Ne-1)/Ne),s.window=new Uint8Array(s.w_size*2),s.head=new Uint16Array(s.hash_size),s.prev=new Uint16Array(s.w_size),s.lit_bufsize=1<<i+6,s.pending_buf_size=s.lit_bufsize*4,s.pending_buf=new Uint8Array(s.pending_buf_size),s.d_buf=1*s.lit_bufsize,s.l_buf=(1+2)*s.lit_bufsize,s.level=t,s.strategy=o,s.method=n,T2(e)},a6=(e,t)=>L2(e,t,cl,Vb,Ub,Bb),s6=(e,t)=>{let n,r;if(!e||!e.state||t>eu||t<0)return e?gr(e,en):en;const i=e.state;if(!e.output||!e.input&&e.avail_in!==0||i.status===yo&&t!==br)return gr(e,e.avail_out===0?Kl:en);i.strm=e;const o=i.last_flush;if(i.last_flush=t,i.status===dl)if(i.wrap===2)e.adler=0,Be(i,31),Be(i,139),Be(i,8),i.gzhead?(Be(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)),Be(i,i.gzhead.time&255),Be(i,i.gzhead.time>>8&255),Be(i,i.gzhead.time>>16&255),Be(i,i.gzhead.time>>24&255),Be(i,i.level===9?2:i.strategy>=Na||i.level<2?4:0),Be(i,i.gzhead.os&255),i.gzhead.extra&&i.gzhead.extra.length&&(Be(i,i.gzhead.extra.length&255),Be(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(e.adler=ft(e.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=Wc):(Be(i,0),Be(i,0),Be(i,0),Be(i,0),Be(i,0),Be(i,i.level===9?2:i.strategy>=Na||i.level<2?4:0),Be(i,Kb),i.status=zr);else{let a=cl+(i.w_bits-8<<4)<<8,s=-1;i.strategy>=Na||i.level<2?s=0:i.level<6?s=1:i.level===6?s=2:s=3,a|=s<<6,i.strstart!==0&&(a|=Xb),a+=31-a%31,i.status=zr,wo(i,a),i.strstart!==0&&(wo(i,e.adler>>>16),wo(i,e.adler&65535)),e.adler=1}if(i.status===Wc)if(i.gzhead.extra){for(n=i.pending;i.gzindex<(i.gzhead.extra.length&65535)&&!(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>n&&(e.adler=ft(e.adler,i.pending_buf,i.pending-n,n)),cr(e),n=i.pending,i.pending===i.pending_buf_size));)Be(i,i.gzhead.extra[i.gzindex]&255),i.gzindex++;i.gzhead.hcrc&&i.pending>n&&(e.adler=ft(e.adler,i.pending_buf,i.pending-n,n)),i.gzindex===i.gzhead.extra.length&&(i.gzindex=0,i.status=as)}else i.status=as;if(i.status===as)if(i.gzhead.name){n=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>n&&(e.adler=ft(e.adler,i.pending_buf,i.pending-n,n)),cr(e),n=i.pending,i.pending===i.pending_buf_size)){r=1;break}i.gzindex<i.gzhead.name.length?r=i.gzhead.name.charCodeAt(i.gzindex++)&255:r=0,Be(i,r)}while(r!==0);i.gzhead.hcrc&&i.pending>n&&(e.adler=ft(e.adler,i.pending_buf,i.pending-n,n)),r===0&&(i.gzindex=0,i.status=ss)}else i.status=ss;if(i.status===ss)if(i.gzhead.comment){n=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>n&&(e.adler=ft(e.adler,i.pending_buf,i.pending-n,n)),cr(e),n=i.pending,i.pending===i.pending_buf_size)){r=1;break}i.gzindex<i.gzhead.comment.length?r=i.gzhead.comment.charCodeAt(i.gzindex++)&255:r=0,Be(i,r)}while(r!==0);i.gzhead.hcrc&&i.pending>n&&(e.adler=ft(e.adler,i.pending_buf,i.pending-n,n)),r===0&&(i.status=ls)}else i.status=ls;if(i.status===ls&&(i.gzhead.hcrc?(i.pending+2>i.pending_buf_size&&cr(e),i.pending+2<=i.pending_buf_size&&(Be(i,e.adler&255),Be(i,e.adler>>8&255),e.adler=0,i.status=zr)):i.status=zr),i.pending!==0){if(cr(e),e.avail_out===0)return i.last_flush=-1,In}else if(e.avail_in===0&&nu(t)<=nu(o)&&t!==br)return gr(e,Kl);if(i.status===yo&&e.avail_in!==0)return gr(e,Kl);if(e.avail_in!==0||i.lookahead!==0||t!==oi&&i.status!==yo){let a=i.strategy===Na?n6(i,t):i.strategy===Pb?t6(i,t):ko[i.level].func(i,t);if((a===Xr||a===ro)&&(i.status=yo),a===ct||a===Xr)return e.avail_out===0&&(i.last_flush=-1),In;if(a===pa&&(t===Ob?Lb(i):t!==eu&&(Mb(i,0,0,!1),t===Nb&&(hr(i.head),i.lookahead===0&&(i.strstart=0,i.block_start=0,i.insert=0))),cr(e),e.avail_out===0))return i.last_flush=-1,In}return t!==br?In:i.wrap<=0?tu:(i.wrap===2?(Be(i,e.adler&255),Be(i,e.adler>>8&255),Be(i,e.adler>>16&255),Be(i,e.adler>>24&255),Be(i,e.total_in&255),Be(i,e.total_in>>8&255),Be(i,e.total_in>>16&255),Be(i,e.total_in>>24&255)):(wo(i,e.adler>>>16),wo(i,e.adler&65535)),cr(e),i.wrap>0&&(i.wrap=-i.wrap),i.pending!==0?In:tu)},l6=e=>{if(!e||!e.state)return en;const t=e.state.status;return t!==dl&&t!==Wc&&t!==as&&t!==ss&&t!==ls&&t!==zr&&t!==yo?gr(e,en):(e.state=null,t===zr?gr(e,Rb):In)},c6=(e,t)=>{let n=t.length;if(!e||!e.state)return en;const r=e.state,i=r.wrap;if(i===2||i===1&&r.status!==dl||r.lookahead)return en;if(i===1&&(e.adler=Zo(e.adler,t,n,0)),r.wrap=0,n>=r.w_size){i===0&&(hr(r.head),r.strstart=0,r.block_start=0,r.insert=0);let l=new Uint8Array(r.w_size);l.set(t.subarray(n-r.w_size,n),0),t=l,n=r.w_size}const o=e.avail_in,a=e.next_in,s=e.input;for(e.avail_in=n,e.next_in=0,e.input=t,Kr(r);r.lookahead>=Ne;){let l=r.strstart,d=r.lookahead-(Ne-1);do r.ins_h=xr(r,r.ins_h,r.window[l+Ne-1]),r.prev[l&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=l,l++;while(--d);r.strstart=l,r.lookahead=Ne-1,Kr(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=Ne-1,r.match_available=0,e.next_in=a,e.input=s,e.avail_in=o,r.wrap=i,In};var d6=a6,u6=L2,f6=T2,h6=M2,p6=o6,g6=s6,m6=l6,_6=c6,w6="pako deflate (from Nodeca project)",Lo={deflateInit:d6,deflateInit2:u6,deflateReset:f6,deflateResetKeep:h6,deflateSetHeader:p6,deflate:g6,deflateEnd:m6,deflateSetDictionary:_6,deflateInfo:w6};const v6=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var b6=function(e){const t=Array.prototype.slice.call(arguments,1);for(;t.length;){const n=t.shift();if(!!n){if(typeof n!="object")throw new TypeError(n+"must be non-object");for(const r in n)v6(n,r)&&(e[r]=n[r])}}return e},x6=e=>{let t=0;for(let r=0,i=e.length;r<i;r++)t+=e[r].length;const n=new Uint8Array(t);for(let r=0,i=0,o=e.length;r<o;r++){let a=e[r];n.set(a,i),i+=a.length}return n},ul={assign:b6,flattenChunks:x6};let O2=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{O2=!1}const Go=new Uint8Array(256);for(let e=0;e<256;e++)Go[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;Go[254]=Go[254]=1;var y6=e=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(e);let t,n,r,i,o,a=e.length,s=0;for(i=0;i<a;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<a&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),s+=n<128?1:n<2048?2:n<65536?3:4;for(t=new Uint8Array(s),o=0,i=0;o<s;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<a&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),n<128?t[o++]=n:n<2048?(t[o++]=192|n>>>6,t[o++]=128|n&63):n<65536?(t[o++]=224|n>>>12,t[o++]=128|n>>>6&63,t[o++]=128|n&63):(t[o++]=240|n>>>18,t[o++]=128|n>>>12&63,t[o++]=128|n>>>6&63,t[o++]=128|n&63);return t};const k6=(e,t)=>{if(t<65534&&e.subarray&&O2)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let n="";for(let r=0;r<t;r++)n+=String.fromCharCode(e[r]);return n};var C6=(e,t)=>{const n=t||e.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(e.subarray(0,t));let r,i;const o=new Array(n*2);for(i=0,r=0;r<n;){let a=e[r++];if(a<128){o[i++]=a;continue}let s=Go[a];if(s>4){o[i++]=65533,r+=s-1;continue}for(a&=s===2?31:s===3?15:7;s>1&&r<n;)a=a<<6|e[r++]&63,s--;if(s>1){o[i++]=65533;continue}a<65536?o[i++]=a:(a-=65536,o[i++]=55296|a>>10&1023,o[i++]=56320|a&1023)}return k6(o,i)},E6=(e,t)=>{t=t||e.length,t>e.length&&(t=e.length);let n=t-1;for(;n>=0&&(e[n]&192)===128;)n--;return n<0||n===0?t:n+Go[e[n]]>t?n:t},Yo={string2buf:y6,buf2string:C6,utf8border:E6};function A6(){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}var N2=A6;const R2=Object.prototype.toString,{Z_NO_FLUSH:S6,Z_SYNC_FLUSH:I6,Z_FULL_FLUSH:M6,Z_FINISH:T6,Z_OK:Os,Z_STREAM_END:L6,Z_DEFAULT_COMPRESSION:O6,Z_DEFAULT_STRATEGY:N6,Z_DEFLATED:R6}=ii;function ma(e){this.options=ul.assign({level:O6,method:R6,chunkSize:16384,windowBits:15,memLevel:8,strategy:N6},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 N2,this.strm.avail_out=0;let n=Lo.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==Os)throw new Error(qr[n]);if(t.header&&Lo.deflateSetHeader(this.strm,t.header),t.dictionary){let r;if(typeof t.dictionary=="string"?r=Yo.string2buf(t.dictionary):R2.call(t.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(t.dictionary):r=t.dictionary,n=Lo.deflateSetDictionary(this.strm,r),n!==Os)throw new Error(qr[n]);this._dict_set=!0}}ma.prototype.push=function(e,t){const n=this.strm,r=this.options.chunkSize;let i,o;if(this.ended)return!1;for(t===~~t?o=t:o=t===!0?T6:S6,typeof e=="string"?n.input=Yo.string2buf(e):R2.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){if(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),(o===I6||o===M6)&&n.avail_out<=6){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(i=Lo.deflate(n,o),i===L6)return n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),i=Lo.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===Os;if(n.avail_out===0){this.onData(n.output);continue}if(o>0&&n.next_out>0){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(n.avail_in===0)break}return!0};ma.prototype.onData=function(e){this.chunks.push(e)};ma.prototype.onEnd=function(e){e===Os&&(this.result=ul.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function Ud(e,t){const n=new ma(t);if(n.push(e,!0),n.err)throw n.msg||qr[n.err];return n.result}function D6(e,t){return t=t||{},t.raw=!0,Ud(e,t)}function F6(e,t){return t=t||{},t.gzip=!0,Ud(e,t)}var P6=ma,$6=Ud,B6=D6,z6=F6,j6=ii,V6={Deflate:P6,deflate:$6,deflateRaw:B6,gzip:z6,constants:j6};const Ra=30,U6=12;var H6=function(t,n){let r,i,o,a,s,l,d,c,u,f,h,w,_,g,m,v,x,b,y,k,C,E,M,S;const T=t.state;r=t.next_in,M=t.input,i=r+(t.avail_in-5),o=t.next_out,S=t.output,a=o-(n-t.avail_out),s=o+(t.avail_out-257),l=T.dmax,d=T.wsize,c=T.whave,u=T.wnext,f=T.window,h=T.hold,w=T.bits,_=T.lencode,g=T.distcode,m=(1<<T.lenbits)-1,v=(1<<T.distbits)-1;e:do{w<15&&(h+=M[r++]<<w,w+=8,h+=M[r++]<<w,w+=8),x=_[h&m];t:for(;;){if(b=x>>>24,h>>>=b,w-=b,b=x>>>16&255,b===0)S[o++]=x&65535;else if(b&16){y=x&65535,b&=15,b&&(w<b&&(h+=M[r++]<<w,w+=8),y+=h&(1<<b)-1,h>>>=b,w-=b),w<15&&(h+=M[r++]<<w,w+=8,h+=M[r++]<<w,w+=8),x=g[h&v];n:for(;;){if(b=x>>>24,h>>>=b,w-=b,b=x>>>16&255,b&16){if(k=x&65535,b&=15,w<b&&(h+=M[r++]<<w,w+=8,w<b&&(h+=M[r++]<<w,w+=8)),k+=h&(1<<b)-1,k>l){t.msg="invalid distance too far back",T.mode=Ra;break e}if(h>>>=b,w-=b,b=o-a,k>b){if(b=k-b,b>c&&T.sane){t.msg="invalid distance too far back",T.mode=Ra;break e}if(C=0,E=f,u===0){if(C+=d-b,b<y){y-=b;do S[o++]=f[C++];while(--b);C=o-k,E=S}}else if(u<b){if(C+=d+u-b,b-=u,b<y){y-=b;do S[o++]=f[C++];while(--b);if(C=0,u<y){b=u,y-=b;do S[o++]=f[C++];while(--b);C=o-k,E=S}}}else if(C+=u-b,b<y){y-=b;do S[o++]=f[C++];while(--b);C=o-k,E=S}for(;y>2;)S[o++]=E[C++],S[o++]=E[C++],S[o++]=E[C++],y-=3;y&&(S[o++]=E[C++],y>1&&(S[o++]=E[C++]))}else{C=o-k;do S[o++]=S[C++],S[o++]=S[C++],S[o++]=S[C++],y-=3;while(y>2);y&&(S[o++]=S[C++],y>1&&(S[o++]=S[C++]))}}else if((b&64)===0){x=g[(x&65535)+(h&(1<<b)-1)];continue n}else{t.msg="invalid distance code",T.mode=Ra;break e}break}}else if((b&64)===0){x=_[(x&65535)+(h&(1<<b)-1)];continue t}else if(b&32){T.mode=U6;break e}else{t.msg="invalid literal/length code",T.mode=Ra;break e}break}}while(r<i&&o<s);y=w>>3,r-=y,w-=y<<3,h&=(1<<w)-1,t.next_in=r,t.next_out=o,t.avail_in=r<i?5+(i-r):5-(r-i),t.avail_out=o<s?257+(s-o):257-(o-s),T.hold=h,T.bits=w};const pi=15,ru=852,iu=592,ou=0,Ql=1,au=2,Z6=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),G6=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),Y6=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),W6=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]),q6=(e,t,n,r,i,o,a,s)=>{const l=s.bits;let d=0,c=0,u=0,f=0,h=0,w=0,_=0,g=0,m=0,v=0,x,b,y,k,C,E=null,M=0,S;const T=new Uint16Array(pi+1),L=new Uint16Array(pi+1);let F=null,X=0,V,O,j;for(d=0;d<=pi;d++)T[d]=0;for(c=0;c<r;c++)T[t[n+c]]++;for(h=l,f=pi;f>=1&&T[f]===0;f--);if(h>f&&(h=f),f===0)return i[o++]=1<<24|64<<16|0,i[o++]=1<<24|64<<16|0,s.bits=1,0;for(u=1;u<f&&T[u]===0;u++);for(h<u&&(h=u),g=1,d=1;d<=pi;d++)if(g<<=1,g-=T[d],g<0)return-1;if(g>0&&(e===ou||f!==1))return-1;for(L[1]=0,d=1;d<pi;d++)L[d+1]=L[d]+T[d];for(c=0;c<r;c++)t[n+c]!==0&&(a[L[t[n+c]]++]=c);if(e===ou?(E=F=a,S=19):e===Ql?(E=Z6,M-=257,F=G6,X-=257,S=256):(E=Y6,F=W6,S=-1),v=0,c=0,d=u,C=o,w=h,_=0,y=-1,m=1<<h,k=m-1,e===Ql&&m>ru||e===au&&m>iu)return 1;for(;;){V=d-_,a[c]<S?(O=0,j=a[c]):a[c]>S?(O=F[X+a[c]],j=E[M+a[c]]):(O=32+64,j=0),x=1<<d-_,b=1<<w,u=b;do b-=x,i[C+(v>>_)+b]=V<<24|O<<16|j|0;while(b!==0);for(x=1<<d-1;v&x;)x>>=1;if(x!==0?(v&=x-1,v+=x):v=0,c++,--T[d]===0){if(d===f)break;d=t[n+a[c]]}if(d>h&&(v&k)!==y){for(_===0&&(_=h),C+=u,w=d-_,g=1<<w;w+_<f&&(g-=T[w+_],!(g<=0));)w++,g<<=1;if(m+=1<<w,e===Ql&&m>ru||e===au&&m>iu)return 1;y=v&k,i[y]=h<<24|w<<16|C-o|0}}return v!==0&&(i[C+v]=d-_<<24|64<<16|0),s.bits=h,0};var Oo=q6;const X6=0,D2=1,F2=2,{Z_FINISH:su,Z_BLOCK:K6,Z_TREES:Da,Z_OK:Jr,Z_STREAM_END:J6,Z_NEED_DICT:Q6,Z_STREAM_ERROR:nn,Z_DATA_ERROR:P2,Z_MEM_ERROR:$2,Z_BUF_ERROR:ex,Z_DEFLATED:lu}=ii,B2=1,cu=2,du=3,uu=4,fu=5,hu=6,pu=7,gu=8,mu=9,_u=10,Ns=11,zn=12,ec=13,wu=14,tc=15,vu=16,bu=17,xu=18,yu=19,Fa=20,Pa=21,ku=22,Cu=23,Eu=24,Au=25,Su=26,nc=27,Iu=28,Mu=29,tt=30,z2=31,tx=32,nx=852,rx=592,ix=15,ox=ix,Tu=e=>(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24);function ax(){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 j2=e=>{if(!e||!e.state)return nn;const t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=B2,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(nx),t.distcode=t.distdyn=new Int32Array(rx),t.sane=1,t.back=-1,Jr},V2=e=>{if(!e||!e.state)return nn;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,j2(e)},U2=(e,t)=>{let n;if(!e||!e.state)return nn;const r=e.state;return t<0?(n=0,t=-t):(n=(t>>4)+1,t<48&&(t&=15)),t&&(t<8||t>15)?nn:(r.window!==null&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,V2(e))},H2=(e,t)=>{if(!e)return nn;const n=new ax;e.state=n,n.window=null;const r=U2(e,t);return r!==Jr&&(e.state=null),r},sx=e=>H2(e,ox);let Lu=!0,rc,ic;const lx=e=>{if(Lu){rc=new Int32Array(512),ic=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(Oo(D2,e.lens,0,288,rc,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Oo(F2,e.lens,0,32,ic,0,e.work,{bits:5}),Lu=!1}e.lencode=rc,e.lenbits=9,e.distcode=ic,e.distbits=5},Z2=(e,t,n,r)=>{let i;const o=e.state;return o.window===null&&(o.wsize=1<<o.wbits,o.wnext=0,o.whave=0,o.window=new Uint8Array(o.wsize)),r>=o.wsize?(o.window.set(t.subarray(n-o.wsize,n),0),o.wnext=0,o.whave=o.wsize):(i=o.wsize-o.wnext,i>r&&(i=r),o.window.set(t.subarray(n-r,n-r+i),o.wnext),r-=i,r?(o.window.set(t.subarray(n-r,n),0),o.wnext=r,o.whave=o.wsize):(o.wnext+=i,o.wnext===o.wsize&&(o.wnext=0),o.whave<o.wsize&&(o.whave+=i))),0},cx=(e,t)=>{let n,r,i,o,a,s,l,d,c,u,f,h,w,_,g=0,m,v,x,b,y,k,C,E;const M=new Uint8Array(4);let S,T;const L=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&&e.avail_in!==0)return nn;n=e.state,n.mode===zn&&(n.mode=ec),a=e.next_out,i=e.output,l=e.avail_out,o=e.next_in,r=e.input,s=e.avail_in,d=n.hold,c=n.bits,u=s,f=l,E=Jr;e:for(;;)switch(n.mode){case B2:if(n.wrap===0){n.mode=ec;break}for(;c<16;){if(s===0)break e;s--,d+=r[o++]<<c,c+=8}if(n.wrap&2&&d===35615){n.check=0,M[0]=d&255,M[1]=d>>>8&255,n.check=ft(n.check,M,2,0),d=0,c=0,n.mode=cu;break}if(n.flags=0,n.head&&(n.head.done=!1),!(n.wrap&1)||(((d&255)<<8)+(d>>8))%31){e.msg="incorrect header check",n.mode=tt;break}if((d&15)!==lu){e.msg="unknown compression method",n.mode=tt;break}if(d>>>=4,c-=4,C=(d&15)+8,n.wbits===0)n.wbits=C;else if(C>n.wbits){e.msg="invalid window size",n.mode=tt;break}n.dmax=1<<n.wbits,e.adler=n.check=1,n.mode=d&512?_u:zn,d=0,c=0;break;case cu:for(;c<16;){if(s===0)break e;s--,d+=r[o++]<<c,c+=8}if(n.flags=d,(n.flags&255)!==lu){e.msg="unknown compression method",n.mode=tt;break}if(n.flags&57344){e.msg="unknown header flags set",n.mode=tt;break}n.head&&(n.head.text=d>>8&1),n.flags&512&&(M[0]=d&255,M[1]=d>>>8&255,n.check=ft(n.check,M,2,0)),d=0,c=0,n.mode=du;case du:for(;c<32;){if(s===0)break e;s--,d+=r[o++]<<c,c+=8}n.head&&(n.head.time=d),n.flags&512&&(M[0]=d&255,M[1]=d>>>8&255,M[2]=d>>>16&255,M[3]=d>>>24&255,n.check=ft(n.check,M,4,0)),d=0,c=0,n.mode=uu;case uu:for(;c<16;){if(s===0)break e;s--,d+=r[o++]<<c,c+=8}n.head&&(n.head.xflags=d&255,n.head.os=d>>8),n.flags&512&&(M[0]=d&255,M[1]=d>>>8&255,n.check=ft(n.check,M,2,0)),d=0,c=0,n.mode=fu;case fu:if(n.flags&1024){for(;c<16;){if(s===0)break e;s--,d+=r[o++]<<c,c+=8}n.length=d,n.head&&(n.head.extra_len=d),n.flags&512&&(M[0]=d&255,M[1]=d>>>8&255,n.check=ft(n.check,M,2,0)),d=0,c=0}else n.head&&(n.head.extra=null);n.mode=hu;case hu:if(n.flags&1024&&(h=n.length,h>s&&(h=s),h&&(n.head&&(C=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Uint8Array(n.head.extra_len)),n.head.extra.set(r.subarray(o,o+h),C)),n.flags&512&&(n.check=ft(n.check,r,h,o)),s-=h,o+=h,n.length-=h),n.length))break e;n.length=0,n.mode=pu;case pu:if(n.flags&2048){if(s===0)break e;h=0;do C=r[o+h++],n.head&&C&&n.length<65536&&(n.head.name+=String.fromCharCode(C));while(C&&h<s);if(n.flags&512&&(n.check=ft(n.check,r,h,o)),s-=h,o+=h,C)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=gu;case gu:if(n.flags&4096){if(s===0)break e;h=0;do C=r[o+h++],n.head&&C&&n.length<65536&&(n.head.comment+=String.fromCharCode(C));while(C&&h<s);if(n.flags&512&&(n.check=ft(n.check,r,h,o)),s-=h,o+=h,C)break e}else n.head&&(n.head.comment=null);n.mode=mu;case mu:if(n.flags&512){for(;c<16;){if(s===0)break e;s--,d+=r[o++]<<c,c+=8}if(d!==(n.check&65535)){e.msg="header crc mismatch",n.mode=tt;break}d=0,c=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=zn;break;case _u:for(;c<32;){if(s===0)break e;s--,d+=r[o++]<<c,c+=8}e.adler=n.check=Tu(d),d=0,c=0,n.mode=Ns;case Ns:if(n.havedict===0)return e.next_out=a,e.avail_out=l,e.next_in=o,e.avail_in=s,n.hold=d,n.bits=c,Q6;e.adler=n.check=1,n.mode=zn;case zn:if(t===K6||t===Da)break e;case ec:if(n.last){d>>>=c&7,c-=c&7,n.mode=nc;break}for(;c<3;){if(s===0)break e;s--,d+=r[o++]<<c,c+=8}switch(n.last=d&1,d>>>=1,c-=1,d&3){case 0:n.mode=wu;break;case 1:if(lx(n),n.mode=Fa,t===Da){d>>>=2,c-=2;break e}break;case 2:n.mode=bu;break;case 3:e.msg="invalid block type",n.mode=tt}d>>>=2,c-=2;break;case wu:for(d>>>=c&7,c-=c&7;c<32;){if(s===0)break e;s--,d+=r[o++]<<c,c+=8}if((d&65535)!==(d>>>16^65535)){e.msg="invalid stored block lengths",n.mode=tt;break}if(n.length=d&65535,d=0,c=0,n.mode=tc,t===Da)break e;case tc:n.mode=vu;case vu:if(h=n.length,h){if(h>s&&(h=s),h>l&&(h=l),h===0)break e;i.set(r.subarray(o,o+h),a),s-=h,o+=h,l-=h,a+=h,n.length-=h;break}n.mode=zn;break;case bu:for(;c<14;){if(s===0)break e;s--,d+=r[o++]<<c,c+=8}if(n.nlen=(d&31)+257,d>>>=5,c-=5,n.ndist=(d&31)+1,d>>>=5,c-=5,n.ncode=(d&15)+4,d>>>=4,c-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=tt;break}n.have=0,n.mode=xu;case xu:for(;n.have<n.ncode;){for(;c<3;){if(s===0)break e;s--,d+=r[o++]<<c,c+=8}n.lens[L[n.have++]]=d&7,d>>>=3,c-=3}for(;n.have<19;)n.lens[L[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,S={bits:n.lenbits},E=Oo(X6,n.lens,0,19,n.lencode,0,n.work,S),n.lenbits=S.bits,E){e.msg="invalid code lengths set",n.mode=tt;break}n.have=0,n.mode=yu;case yu:for(;n.have<n.nlen+n.ndist;){for(;g=n.lencode[d&(1<<n.lenbits)-1],m=g>>>24,v=g>>>16&255,x=g&65535,!(m<=c);){if(s===0)break e;s--,d+=r[o++]<<c,c+=8}if(x<16)d>>>=m,c-=m,n.lens[n.have++]=x;else{if(x===16){for(T=m+2;c<T;){if(s===0)break e;s--,d+=r[o++]<<c,c+=8}if(d>>>=m,c-=m,n.have===0){e.msg="invalid bit length repeat",n.mode=tt;break}C=n.lens[n.have-1],h=3+(d&3),d>>>=2,c-=2}else if(x===17){for(T=m+3;c<T;){if(s===0)break e;s--,d+=r[o++]<<c,c+=8}d>>>=m,c-=m,C=0,h=3+(d&7),d>>>=3,c-=3}else{for(T=m+7;c<T;){if(s===0)break e;s--,d+=r[o++]<<c,c+=8}d>>>=m,c-=m,C=0,h=11+(d&127),d>>>=7,c-=7}if(n.have+h>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=tt;break}for(;h--;)n.lens[n.have++]=C}}if(n.mode===tt)break;if(n.lens[256]===0){e.msg="invalid code -- missing end-of-block",n.mode=tt;break}if(n.lenbits=9,S={bits:n.lenbits},E=Oo(D2,n.lens,0,n.nlen,n.lencode,0,n.work,S),n.lenbits=S.bits,E){e.msg="invalid literal/lengths set",n.mode=tt;break}if(n.distbits=6,n.distcode=n.distdyn,S={bits:n.distbits},E=Oo(F2,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,S),n.distbits=S.bits,E){e.msg="invalid distances set",n.mode=tt;break}if(n.mode=Fa,t===Da)break e;case Fa:n.mode=Pa;case Pa:if(s>=6&&l>=258){e.next_out=a,e.avail_out=l,e.next_in=o,e.avail_in=s,n.hold=d,n.bits=c,H6(e,f),a=e.next_out,i=e.output,l=e.avail_out,o=e.next_in,r=e.input,s=e.avail_in,d=n.hold,c=n.bits,n.mode===zn&&(n.back=-1);break}for(n.back=0;g=n.lencode[d&(1<<n.lenbits)-1],m=g>>>24,v=g>>>16&255,x=g&65535,!(m<=c);){if(s===0)break e;s--,d+=r[o++]<<c,c+=8}if(v&&(v&240)===0){for(b=m,y=v,k=x;g=n.lencode[k+((d&(1<<b+y)-1)>>b)],m=g>>>24,v=g>>>16&255,x=g&65535,!(b+m<=c);){if(s===0)break e;s--,d+=r[o++]<<c,c+=8}d>>>=b,c-=b,n.back+=b}if(d>>>=m,c-=m,n.back+=m,n.length=x,v===0){n.mode=Su;break}if(v&32){n.back=-1,n.mode=zn;break}if(v&64){e.msg="invalid literal/length code",n.mode=tt;break}n.extra=v&15,n.mode=ku;case ku:if(n.extra){for(T=n.extra;c<T;){if(s===0)break e;s--,d+=r[o++]<<c,c+=8}n.length+=d&(1<<n.extra)-1,d>>>=n.extra,c-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=Cu;case Cu:for(;g=n.distcode[d&(1<<n.distbits)-1],m=g>>>24,v=g>>>16&255,x=g&65535,!(m<=c);){if(s===0)break e;s--,d+=r[o++]<<c,c+=8}if((v&240)===0){for(b=m,y=v,k=x;g=n.distcode[k+((d&(1<<b+y)-1)>>b)],m=g>>>24,v=g>>>16&255,x=g&65535,!(b+m<=c);){if(s===0)break e;s--,d+=r[o++]<<c,c+=8}d>>>=b,c-=b,n.back+=b}if(d>>>=m,c-=m,n.back+=m,v&64){e.msg="invalid distance code",n.mode=tt;break}n.offset=x,n.extra=v&15,n.mode=Eu;case Eu:if(n.extra){for(T=n.extra;c<T;){if(s===0)break e;s--,d+=r[o++]<<c,c+=8}n.offset+=d&(1<<n.extra)-1,d>>>=n.extra,c-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=tt;break}n.mode=Au;case Au:if(l===0)break e;if(h=f-l,n.offset>h){if(h=n.offset-h,h>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=tt;break}h>n.wnext?(h-=n.wnext,w=n.wsize-h):w=n.wnext-h,h>n.length&&(h=n.length),_=n.window}else _=i,w=a-n.offset,h=n.length;h>l&&(h=l),l-=h,n.length-=h;do i[a++]=_[w++];while(--h);n.length===0&&(n.mode=Pa);break;case Su:if(l===0)break e;i[a++]=n.length,l--,n.mode=Pa;break;case nc:if(n.wrap){for(;c<32;){if(s===0)break e;s--,d|=r[o++]<<c,c+=8}if(f-=l,e.total_out+=f,n.total+=f,f&&(e.adler=n.check=n.flags?ft(n.check,i,f,a-f):Zo(n.check,i,f,a-f)),f=l,(n.flags?d:Tu(d))!==n.check){e.msg="incorrect data check",n.mode=tt;break}d=0,c=0}n.mode=Iu;case Iu:if(n.wrap&&n.flags){for(;c<32;){if(s===0)break e;s--,d+=r[o++]<<c,c+=8}if(d!==(n.total&4294967295)){e.msg="incorrect length check",n.mode=tt;break}d=0,c=0}n.mode=Mu;case Mu:E=J6;break e;case tt:E=P2;break e;case z2:return $2;case tx:default:return nn}return e.next_out=a,e.avail_out=l,e.next_in=o,e.avail_in=s,n.hold=d,n.bits=c,(n.wsize||f!==e.avail_out&&n.mode<tt&&(n.mode<nc||t!==su))&&Z2(e,e.output,e.next_out,f-e.avail_out),u-=e.avail_in,f-=e.avail_out,e.total_in+=u,e.total_out+=f,n.total+=f,n.wrap&&f&&(e.adler=n.check=n.flags?ft(n.check,i,f,e.next_out-f):Zo(n.check,i,f,e.next_out-f)),e.data_type=n.bits+(n.last?64:0)+(n.mode===zn?128:0)+(n.mode===Fa||n.mode===tc?256:0),(u===0&&f===0||t===su)&&E===Jr&&(E=ex),E},dx=e=>{if(!e||!e.state)return nn;let t=e.state;return t.window&&(t.window=null),e.state=null,Jr},ux=(e,t)=>{if(!e||!e.state)return nn;const n=e.state;return(n.wrap&2)===0?nn:(n.head=t,t.done=!1,Jr)},fx=(e,t)=>{const n=t.length;let r,i,o;return!e||!e.state||(r=e.state,r.wrap!==0&&r.mode!==Ns)?nn:r.mode===Ns&&(i=1,i=Zo(i,t,n,0),i!==r.check)?P2:(o=Z2(e,t,n,n),o?(r.mode=z2,$2):(r.havedict=1,Jr))};var hx=V2,px=U2,gx=j2,mx=sx,_x=H2,wx=cx,vx=dx,bx=ux,xx=fx,yx="pako inflate (from Nodeca project)",Yn={inflateReset:hx,inflateReset2:px,inflateResetKeep:gx,inflateInit:mx,inflateInit2:_x,inflate:wx,inflateEnd:vx,inflateGetHeader:bx,inflateSetDictionary:xx,inflateInfo:yx};function kx(){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}var Cx=kx;const G2=Object.prototype.toString,{Z_NO_FLUSH:Ex,Z_FINISH:Ax,Z_OK:Wo,Z_STREAM_END:oc,Z_NEED_DICT:ac,Z_STREAM_ERROR:Sx,Z_DATA_ERROR:Ou,Z_MEM_ERROR:Ix}=ii;function _a(e){this.options=ul.assign({chunkSize:1024*64,windowBits:15,to:""},e||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,t.windowBits===0&&(t.windowBits=-15)),t.windowBits>=0&&t.windowBits<16&&!(e&&e.windowBits)&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(t.windowBits&15)===0&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new N2,this.strm.avail_out=0;let n=Yn.inflateInit2(this.strm,t.windowBits);if(n!==Wo)throw new Error(qr[n]);if(this.header=new Cx,Yn.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=Yo.string2buf(t.dictionary):G2.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=Yn.inflateSetDictionary(this.strm,t.dictionary),n!==Wo)))throw new Error(qr[n])}_a.prototype.push=function(e,t){const n=this.strm,r=this.options.chunkSize,i=this.options.dictionary;let o,a,s;if(this.ended)return!1;for(t===~~t?a=t:a=t===!0?Ax:Ex,G2.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){for(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),o=Yn.inflate(n,a),o===ac&&i&&(o=Yn.inflateSetDictionary(n,i),o===Wo?o=Yn.inflate(n,a):o===Ou&&(o=ac));n.avail_in>0&&o===oc&&n.state.wrap>0&&e[n.next_in]!==0;)Yn.inflateReset(n),o=Yn.inflate(n,a);switch(o){case Sx:case Ou:case ac:case Ix:return this.onEnd(o),this.ended=!0,!1}if(s=n.avail_out,n.next_out&&(n.avail_out===0||o===oc))if(this.options.to==="string"){let l=Yo.utf8border(n.output,n.next_out),d=n.next_out-l,c=Yo.buf2string(n.output,l);n.next_out=d,n.avail_out=r-d,d&&n.output.set(n.output.subarray(l,l+d),0),this.onData(c)}else this.onData(n.output.length===n.next_out?n.output:n.output.subarray(0,n.next_out));if(!(o===Wo&&s===0)){if(o===oc)return o=Yn.inflateEnd(this.strm),this.onEnd(o),this.ended=!0,!0;if(n.avail_in===0)break}}return!0};_a.prototype.onData=function(e){this.chunks.push(e)};_a.prototype.onEnd=function(e){e===Wo&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=ul.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function Hd(e,t){const n=new _a(t);if(n.push(e),n.err)throw n.msg||qr[n.err];return n.result}function Mx(e,t){return t=t||{},t.raw=!0,Hd(e,t)}var Tx=_a,Lx=Hd,Ox=Mx,Nx=Hd,Rx=ii,Dx={Inflate:Tx,inflate:Lx,inflateRaw:Ox,ungzip:Nx,constants:Rx};const{Deflate:Fx,deflate:Px,deflateRaw:$x,gzip:Bx}=V6,{Inflate:zx,inflate:jx,inflateRaw:Vx,ungzip:Ux}=Dx;var Hx=Fx,Zx=Px,Gx=$x,Yx=Bx,Wx=zx,qx=jx,Xx=Vx,Kx=Ux,Jx=ii,kk={Deflate:Hx,deflate:Zx,deflateRaw:Gx,gzip:Yx,Inflate:Wx,inflate:qx,inflateRaw:Xx,ungzip:Kx,constants:Jx};function Pi(e,t,n){if(!e[t])throw new Error(`Missing ${t} tag`);if(e[t].type!==n)throw new Error(`Expected ${t} to be of type ${n}, but found ${e[t].type}`);return e[t].value}function $a(e,t,n,r){const i=Pi(e,t,"list");if(i.type!==n)throw new Error(`Expected ${t} to be a list of ${n}s, but found ${i.type}s`);if(r&&i.value.length!==r)throw new Error(`Expected ${t} to be a list of length ${r}, but found length ${i.value.length}`);return i.value}function Y2(e,t){try{return e()}catch{return t}}var q;(function(e){function t(c){return typeof c=="number"?c:void 0}e.readNumber=t;function n(c){return typeof c=="number"?Math.floor(c):void 0}e.readInt=n;function r(c){return typeof c=="string"?c:void 0}e.readString=r;function i(c){return typeof c=="boolean"?c:void 0}e.readBoolean=i;function o(c){return typeof c=="object"&&c!==null?c:void 0}e.readObject=o;function a(c,u){if(!!Array.isArray(c))return c.map(f=>u(f))}e.readArray=a;function s(c,u){var h;const f=(h=o(c))!=null?h:{};return Object.fromEntries(Object.entries(f).map(([w,_])=>[w,u(_)]))}e.readMap=s;function l(c,u,f){const h=u(c);return h?f(h):void 0}e.compose=l;function d(c,u){return typeof c!="string"?u[0]:u.includes(c)?c:u[0]}e.readEnum=d})(q||(q={}));function No(e){let t=null;return()=>(t==null&&(t=e()),t)}function Qr(e,t,n){const r=e.get(t);if(r)return r;const i=n(t);return e.set(t,i),i}const Un=class{constructor(t,n){I(this,"namespace");I(this,"path");if(this.namespace=t,this.path=n,!t.match(/^[a-z0-9._-]*$/))throw new Error(`Non [a-z0-9._-] character in namespace of ${t}${Un.SEPARATOR}${n}`);if(!n.match(/^[a-z0-9/._-]*$/))throw new Error(`Non [a-z0-9/._-] character in path of ${t}${Un.SEPARATOR}${n}`)}equals(t){return this===t?!0:this.namespace===t.namespace&&this.path===t.path}toString(){return this.namespace+Un.SEPARATOR+this.path}withPrefix(t){return new Un(this.namespace,t+this.path)}static create(t){return new Un(this.DEFAULT_NAMESPACE,t)}static parse(t){const n=t.indexOf(this.SEPARATOR);if(n>=0){const r=n>=1?t.substring(0,n):this.DEFAULT_NAMESPACE,i=t.substring(n+1);return new Un(r,i)}return new Un(this.DEFAULT_NAMESPACE,t)}};let ve=Un;I(ve,"DEFAULT_NAMESPACE","minecraft"),I(ve,"SEPARATOR",":");const cn=class{constructor(t,n={}){I(this,"properties");I(this,"name");this.properties=n,this.name=typeof t=="string"?ve.parse(t):t}getName(){return this.name}getProperties(){return this.properties}getProperty(t){return this.properties[t]}isFluid(){return this.is(cn.WATER)||this.is(cn.LAVA)}equals(t){return this.name.equals(t.name)?Object.keys(this.properties).every(n=>t.properties[n]===this.properties[n]):!1}is(t){return this.name.equals(t.name)}toString(){return Object.keys(this.properties).length===0?this.name.toString():`${this.name.toString()}[${Object.entries(this.properties).map(([t,n])=>t+"="+n).join(",")}]`}static fromNbt(t){const n=ve.parse(Pi(t.value,"Name","string")),r=Y2(()=>Pi(t.value,"Properties","compound"),{}),i=Object.keys(r).reduce((o,a)=>be(oe({},o),{[a]:Pi(r,a,"string")}),{});return new cn(n,i)}static fromJson(t){var o,a;const n=(o=q.readObject(t))!=null?o:{},r=ve.parse((a=q.readString(n.Name))!=null?a:cn.STONE.name.toString()),i=q.readMap(n.Properties,s=>{var l;return(l=q.readString(s))!=null?l:""});return new cn(r,i)}};let ze=cn;I(ze,"AIR",new cn(ve.create("air"))),I(ze,"STONE",new cn(ve.create("stone"))),I(ze,"WATER",new cn(ve.create("water"),{level:"0"})),I(ze,"LAVA",new cn(ve.create("lava"),{level:"0"}));class W2{constructor(t,n){I(this,"size");I(this,"defaultValue");I(this,"storage");I(this,"palette");this.size=t,this.defaultValue=n,this.storage=Array(t).fill(0),this.palette=[n]}index(t,n,r){return(t<<8)+(n<<4)+r}get(t,n,r){const i=this.storage[this.index(t,n,r)];return this.palette[i]}set(t,n,r,i){let o=this.palette.findIndex(a=>a.equals(i));o===-1&&(o=this.palette.length,this.palette.push(i)),this.storage[this.index(t,n,r)]=o}}const Mi=class{constructor(t){I(this,"minY");I(this,"states");this.minY=t,this.states=new W2(Mi.SIZE,ze.AIR)}get minBlockY(){return this.minY<<4}getBlockState(t,n,r){return this.states.get(t,n,r)}setBlockState(t,n,r,i){this.states.set(t,n,r,i)}};let Ii=Mi;I(Ii,"WIDTH",16),I(Ii,"SIZE",Mi.WIDTH*Mi.WIDTH*Mi.WIDTH);class Qx{constructor(t,n,r){I(this,"minY");I(this,"height");I(this,"pos");I(this,"sections");this.minY=t,this.height=n,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(this.maxY-1>>4)+1}get sectionsCount(){return this.maxSection-this.minSection}getSectionIndex(t){return(t>>4)-this.minSection}getBlockState(t){var a;const[n,r,i]=t,o=this.sections[this.getSectionIndex(r)];return(a=o==null?void 0:o.getBlockState(n&15,r&15,i&15))!=null?a:ze.AIR}setBlockState(t,n){const[r,i,o]=t,a=this.getSectionIndex(i);let s=this.sections[a];if(s===null){if(n.equals(ze.AIR))return;s=this.getOrCreateSection(a)}s.setBlockState(r&15,i&15,o&15,n)}getOrCreateSection(t){return this.sections[t]==null&&(this.sections[t]=new Ii(this.minSection+t)),this.sections[t]}}var Mt;(function(e){function t(c,u){return[c,u]}e.create=t;function n(c){return[c[0]>>4,c[2]>>4]}e.fromBlockPos=n;function r(c){return[Number(c)&4294967295,Number(c>>BigInt(32))]}e.fromLong=r;function i(c){return o(c[0],c[1])}e.toLong=i;function o(c,u){return BigInt(c&4294967295)|BigInt(u&4294967295)<<BigInt(32)}e.asLong=o;function a(c){return c[0]<<4}e.minBlockX=a;function s(c){return c[1]<<4}e.minBlockZ=s;function l(c){return(c[0]<<4)+15}e.maxBlockX=l;function d(c){return(c[1]<<4)+15}e.maxBlockZ=d})(Mt||(Mt={}));var ei;(function(e){function t(i,o){return a=>typeof a=="string"?r(i,ve.parse(a)):n(o(a))}e.parser=t;function n(i,o){return{value:()=>i,key:()=>o}}e.direct=n;function r(i,o){return{value:()=>i.getOrThrow(o),key:()=>o}}e.reference=r})(ei||(ei={}));const Ws=class{constructor(t,n){I(this,"key");I(this,"parser");I(this,"storage",new Map);I(this,"builtin",new Map);this.key=t,this.parser=n}register(t,n,r){return this.storage.set(t.toString(),n),r&&this.builtin.set(t.toString(),n),ei.reference(this,t)}delete(t){const n=this.storage.delete(t.toString());return this.builtin.delete(t.toString()),n}keys(){return[...this.storage.keys()].map(t=>ve.parse(t))}has(t){return this.storage.has(t.toString())}get(t){return this.storage.get(t.toString())}getOrThrow(t){const n=this.storage.get(t.toString());if(n===void 0)throw new Error(`Missing key in ${this.key.toString()}: ${t.toString()}`);return n}parse(t){if(!this.parser)throw new Error(`No parser exists for ${this.key.toString()}`);return this.parser(t)}clear(){this.storage.clear();for(const[t,n]of this.builtin.entries())this.storage.set(t,n);return this}assign(t){if(!this.key.equals(t.key))throw new Error(`Cannot assign registry of type ${t.key.toString()} to registry of type ${this.key.toString()}`);for(const n of t.keys())this.storage.set(n.toString(),t.getOrThrow(n));return this}cloneEmpty(){return new Ws(this.key,this.parser)}forEach(t){for(const[n,r]of this.storage.entries())t(ve.parse(n),r,this)}map(t){return[...this.storage.entries()].map(([n,r])=>t(ve.parse(n),r,this))}};let Hr=Ws;I(Hr,"REGISTRY",new Ws(ve.create("root")));class Zd{constructor(t,n=[],r=[]){I(this,"size");I(this,"palette");I(this,"blocks");I(this,"blocksMap",[]);this.size=t,this.palette=n,this.blocks=r,r.forEach(i=>{if(!this.isInside(i.pos))throw new Error(`Found block at ${i.pos} which is outside the structure bounds ${this.size}`);this.blocksMap[i.pos[0]*t[1]*t[2]+i.pos[1]*t[2]+i.pos[2]]=i})}getSize(){return this.size}addBlock(t,n,r,i){if(!this.isInside(t))throw new Error(`Cannot add block at ${t} outside the structure bounds ${this.size}`);const o=new ze(n,r);let a=this.palette.findIndex(s=>s.equals(o));return a===-1&&(a=this.palette.length,this.palette.push(o)),this.blocks.push({pos:t,state:a,nbt:i}),this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]]={pos:t,state:a,nbt:i},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 n=this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]];return n?{pos:n.pos,state:this.palette[n.state],nbt:n.nbt}:null}isInside(t){return t[0]>=0&&t[0]<this.size[0]&&t[1]>=0&&t[1]<this.size[1]&&t[2]>=0&&t[2]<this.size[2]}static fromNbt(t){const n=$a(t.value,"size","int",3),r=$a(t.value,"palette","compound").map(o=>ze.fromNbt({name:"",value:o})),i=$a(t.value,"blocks","compound").map(o=>{const a=$a(o,"pos","int",3),s=Pi(o,"state","int"),l=Y2(()=>Pi(o,"nbt","compound"),void 0);return{pos:a,state:s,nbt:l}});return new Zd(n,r,i)}}function Vn(e){return e*e}function mr(e,t,n){return Math.max(t,Math.min(n,e))}function Qn(e,t,n){return t+e*(n-t)}function Rs(e,t,n,r,i,o){return Qn(t,Qn(e,n,r),Qn(e,i,o))}function q2(e,t,n,r,i,o,a,s,l,d,c){return Qn(n,Rs(e,t,r,i,o,a),Rs(e,t,s,l,d,c))}function Ro(e,t,n){return e===0?t():e===1?n():t()+e*(n()-t())}function qc(e,t,n,r,i,o){return Ro(t,()=>Ro(e,n,r),()=>Ro(e,i,o))}function X2(e,t,n,r,i,o,a,s,l,d,c){return Ro(n,()=>qc(e,t,r,i,o,a),()=>qc(e,t,s,l,d,c))}function fl(e,t,n){return n<0?e:n>1?t:Qn(n,e,t)}function Gd(e,t,n){return(e-t)/(n-t)}function cs(e){return e*e*e*(e*(e*6-15)+10)}function qo(e,t,n,r,i){return Qn(Gd(e,t,n),r,i)}function hl(e,t,n,r,i){return fl(r,i,Gd(e,t,n))}function K2(e,t,n){let r=t-e;for(;r>0;){const i=Math.floor(r/2),o=e+i;if(n(o)){r=i;continue}e=o+1,r-=i+1}return e}function Yd(e,t,n){let r=BigInt(e*3129871)^BigInt(n)*BigInt(116129781)^BigInt(t);return r=r*r*BigInt(42317861)+r*BigInt(11),r>>BigInt(16)}function Ds(e,t,n,r,i,o,a,s){return BigInt(e)<<BigInt(56)|BigInt(t)<<BigInt(48)|BigInt(n)<<BigInt(40)|BigInt(r)<<BigInt(32)|BigInt(i)<<BigInt(24)|BigInt(o)<<BigInt(16)|BigInt(a)<<BigInt(8)|BigInt(s)}function Xc(e){return(e&e-1)===0}function Fs(e){return e-=1,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>18,e|=e>>32,e+1}var Ps;(function(e){function t(n){return typeof n=="object"&&n!==null&&"minValue"in n&&"maxValue"in n}e.is=t})(Ps||(Ps={}));var $s;(function(e){function t(i,o){var d,c,u,f;if(typeof i=="number")return new n(i);const a=(d=q.readObject(i))!=null?d:{},s=new r(o(a.coordinate)),l=(c=q.readArray(a.points,h=>{var w;return(w=q.readObject(h))!=null?w:{}}))!=null?c:[];if(l.length===0)return new n(0);for(const h of l){const w=(u=q.readNumber(h.location))!=null?u:0,_=t(h.value,o),g=(f=q.readNumber(h.derivative))!=null?f:0;s.addPoint(w,_,g)}return s}e.fromJson=t;class n{constructor(o){I(this,"value");this.value=o}compute(){return this.value}min(){return this.value}max(){return this.value}mapAll(){return this}calculateMinMax(){}}e.Constant=n;class r{constructor(o,a=[],s=[],l=[]){I(this,"coordinate");I(this,"locations");I(this,"values");I(this,"derivatives");I(this,"calculatedMin",Number.NEGATIVE_INFINITY);I(this,"calculatedMax",Number.POSITIVE_INFINITY);this.coordinate=o,this.locations=a,this.values=s,this.derivatives=l}compute(o){const a=this.coordinate.compute(o),s=K2(0,this.locations.length,x=>a<this.locations[x])-1,l=this.locations.length-1;if(s<0)return this.values[0].compute(o)+this.derivatives[0]*(a-this.locations[0]);if(s===l)return this.values[l].compute(o)+this.derivatives[l]*(a-this.locations[l]);const d=this.locations[s],c=this.locations[s+1],u=this.derivatives[s],f=this.derivatives[s+1],h=(a-d)/(c-d),w=this.values[s].compute(o),_=this.values[s+1].compute(o),g=u*(c-d)-(_-w),m=-f*(c-d)+(_-w);return Qn(h,w,_)+h*(1-h)*Qn(h,g,m)}min(){return this.calculatedMin}max(){return this.calculatedMax}mapAll(o){return new r(o(this.coordinate),this.locations,this.values.map(a=>a.mapAll(o)),this.derivatives)}addPoint(o,a,s=0){return this.locations.push(o),this.values.push(typeof a=="number"?new e.Constant(a):a),this.derivatives.push(s),this}calculateMinMax(){if(!Ps.is(this.coordinate))return;const o=this.locations.length-1;var a=Number.POSITIVE_INFINITY,s=Number.NEGATIVE_INFINITY;const l=this.coordinate.minValue(),d=this.coordinate.maxValue();for(const u of this.values)u.calculateMinMax();if(l<this.locations[0]){const u=r.linearExtend(l,this.locations,this.values[0].min(),this.derivatives,0),f=r.linearExtend(l,this.locations,this.values[0].max(),this.derivatives,0);a=Math.min(a,Math.min(u,f)),s=Math.max(s,Math.max(u,f))}if(d>this.locations[o]){const u=r.linearExtend(d,this.locations,this.values[o].min(),this.derivatives,o),f=r.linearExtend(d,this.locations,this.values[o].max(),this.derivatives,o);a=Math.min(a,Math.min(u,f)),s=Math.max(s,Math.max(u,f))}for(const u of this.values)a=Math.min(a,u.min()),s=Math.max(s,u.max());for(var c=0;c<o;++c){const u=this.locations[c],h=this.locations[c+1]-u,w=this.values[c],_=this.values[c+1],g=w.min(),m=w.max(),v=_.min(),x=_.max(),b=this.derivatives[c],y=this.derivatives[c+1];if(b!==0||y!==0){const k=b*h,C=y*h,E=Math.min(g,v),M=Math.max(m,x),S=k-x+g,T=k-v+m,L=-C+v-m,F=-C+x-g,X=Math.min(S,L),V=Math.max(T,F);a=Math.min(a,E+.25*X),s=Math.max(s,M+.25*V)}}this.calculatedMin=a,this.calculatedMax=s}static linearExtend(o,a,s,l,d){const c=l[d];return c==0?s:s+c*(o-a[d])}}e.MultiPoint=r})($s||($s={}));var J2={exports:{}},Q2={exports:{}};(function(){var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t={rotl:function(n,r){return n<<r|n>>>32-r},rotr:function(n,r){return n<<32-r|n>>>r},endian:function(n){if(n.constructor==Number)return t.rotl(n,8)&16711935|t.rotl(n,24)&4278255360;for(var r=0;r<n.length;r++)n[r]=t.endian(n[r]);return n},randomBytes:function(n){for(var r=[];n>0;n--)r.push(Math.floor(Math.random()*256));return r},bytesToWords:function(n){for(var r=[],i=0,o=0;i<n.length;i++,o+=8)r[o>>>5]|=n[i]<<24-o%32;return r},wordsToBytes:function(n){for(var r=[],i=0;i<n.length*32;i+=8)r.push(n[i>>>5]>>>24-i%32&255);return r},bytesToHex:function(n){for(var r=[],i=0;i<n.length;i++)r.push((n[i]>>>4).toString(16)),r.push((n[i]&15).toString(16));return r.join("")},hexToBytes:function(n){for(var r=[],i=0;i<n.length;i+=2)r.push(parseInt(n.substr(i,2),16));return r},bytesToBase64:function(n){for(var r=[],i=0;i<n.length;i+=3)for(var o=n[i]<<16|n[i+1]<<8|n[i+2],a=0;a<4;a++)i*8+a*6<=n.length*8?r.push(e.charAt(o>>>6*(3-a)&63)):r.push("=");return r.join("")},base64ToBytes:function(n){n=n.replace(/[^A-Z0-9+\/]/ig,"");for(var r=[],i=0,o=0;i<n.length;o=++i%4)o!=0&&r.push((e.indexOf(n.charAt(i-1))&Math.pow(2,-2*o+8)-1)<<o*2|e.indexOf(n.charAt(i))>>>6-o*2);return r}};Q2.exports=t})();var Kc={utf8:{stringToBytes:function(e){return Kc.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape(Kc.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var t=[],n=0;n<e.length;n++)t.push(e.charCodeAt(n)&255);return t},bytesToString:function(e){for(var t=[],n=0;n<e.length;n++)t.push(String.fromCharCode(e[n]));return t.join("")}}},Nu=Kc;/*! + * Determine if an object is a Buffer + * + * @author Feross Aboukhadijeh <https://feross.org> + * @license MIT + */var e4=function(e){return e!=null&&(eg(e)||t4(e)||!!e._isBuffer)};function eg(e){return!!e.constructor&&typeof e.constructor.isBuffer=="function"&&e.constructor.isBuffer(e)}function t4(e){return typeof e.readFloatLE=="function"&&typeof e.slice=="function"&&eg(e.slice(0,0))}(function(){var e=Q2.exports,t=Nu.utf8,n=e4,r=Nu.bin,i=function(o,a){o.constructor==String?a&&a.encoding==="binary"?o=r.stringToBytes(o):o=t.stringToBytes(o):n(o)?o=Array.prototype.slice.call(o,0):!Array.isArray(o)&&o.constructor!==Uint8Array&&(o=o.toString());for(var s=e.bytesToWords(o),l=o.length*8,d=1732584193,c=-271733879,u=-1732584194,f=271733878,h=0;h<s.length;h++)s[h]=(s[h]<<8|s[h]>>>24)&16711935|(s[h]<<24|s[h]>>>8)&4278255360;s[l>>>5]|=128<<l%32,s[(l+64>>>9<<4)+14]=l;for(var w=i._ff,_=i._gg,g=i._hh,m=i._ii,h=0;h<s.length;h+=16){var v=d,x=c,b=u,y=f;d=w(d,c,u,f,s[h+0],7,-680876936),f=w(f,d,c,u,s[h+1],12,-389564586),u=w(u,f,d,c,s[h+2],17,606105819),c=w(c,u,f,d,s[h+3],22,-1044525330),d=w(d,c,u,f,s[h+4],7,-176418897),f=w(f,d,c,u,s[h+5],12,1200080426),u=w(u,f,d,c,s[h+6],17,-1473231341),c=w(c,u,f,d,s[h+7],22,-45705983),d=w(d,c,u,f,s[h+8],7,1770035416),f=w(f,d,c,u,s[h+9],12,-1958414417),u=w(u,f,d,c,s[h+10],17,-42063),c=w(c,u,f,d,s[h+11],22,-1990404162),d=w(d,c,u,f,s[h+12],7,1804603682),f=w(f,d,c,u,s[h+13],12,-40341101),u=w(u,f,d,c,s[h+14],17,-1502002290),c=w(c,u,f,d,s[h+15],22,1236535329),d=_(d,c,u,f,s[h+1],5,-165796510),f=_(f,d,c,u,s[h+6],9,-1069501632),u=_(u,f,d,c,s[h+11],14,643717713),c=_(c,u,f,d,s[h+0],20,-373897302),d=_(d,c,u,f,s[h+5],5,-701558691),f=_(f,d,c,u,s[h+10],9,38016083),u=_(u,f,d,c,s[h+15],14,-660478335),c=_(c,u,f,d,s[h+4],20,-405537848),d=_(d,c,u,f,s[h+9],5,568446438),f=_(f,d,c,u,s[h+14],9,-1019803690),u=_(u,f,d,c,s[h+3],14,-187363961),c=_(c,u,f,d,s[h+8],20,1163531501),d=_(d,c,u,f,s[h+13],5,-1444681467),f=_(f,d,c,u,s[h+2],9,-51403784),u=_(u,f,d,c,s[h+7],14,1735328473),c=_(c,u,f,d,s[h+12],20,-1926607734),d=g(d,c,u,f,s[h+5],4,-378558),f=g(f,d,c,u,s[h+8],11,-2022574463),u=g(u,f,d,c,s[h+11],16,1839030562),c=g(c,u,f,d,s[h+14],23,-35309556),d=g(d,c,u,f,s[h+1],4,-1530992060),f=g(f,d,c,u,s[h+4],11,1272893353),u=g(u,f,d,c,s[h+7],16,-155497632),c=g(c,u,f,d,s[h+10],23,-1094730640),d=g(d,c,u,f,s[h+13],4,681279174),f=g(f,d,c,u,s[h+0],11,-358537222),u=g(u,f,d,c,s[h+3],16,-722521979),c=g(c,u,f,d,s[h+6],23,76029189),d=g(d,c,u,f,s[h+9],4,-640364487),f=g(f,d,c,u,s[h+12],11,-421815835),u=g(u,f,d,c,s[h+15],16,530742520),c=g(c,u,f,d,s[h+2],23,-995338651),d=m(d,c,u,f,s[h+0],6,-198630844),f=m(f,d,c,u,s[h+7],10,1126891415),u=m(u,f,d,c,s[h+14],15,-1416354905),c=m(c,u,f,d,s[h+5],21,-57434055),d=m(d,c,u,f,s[h+12],6,1700485571),f=m(f,d,c,u,s[h+3],10,-1894986606),u=m(u,f,d,c,s[h+10],15,-1051523),c=m(c,u,f,d,s[h+1],21,-2054922799),d=m(d,c,u,f,s[h+8],6,1873313359),f=m(f,d,c,u,s[h+15],10,-30611744),u=m(u,f,d,c,s[h+6],15,-1560198380),c=m(c,u,f,d,s[h+13],21,1309151649),d=m(d,c,u,f,s[h+4],6,-145523070),f=m(f,d,c,u,s[h+11],10,-1120210379),u=m(u,f,d,c,s[h+2],15,718787259),c=m(c,u,f,d,s[h+9],21,-343485551),d=d+v>>>0,c=c+x>>>0,u=u+b>>>0,f=f+y>>>0}return e.endian([d,c,u,f])};i._ff=function(o,a,s,l,d,c,u){var f=o+(a&s|~a&l)+(d>>>0)+u;return(f<<c|f>>>32-c)+a},i._gg=function(o,a,s,l,d,c,u){var f=o+(a&l|s&~l)+(d>>>0)+u;return(f<<c|f>>>32-c)+a},i._hh=function(o,a,s,l,d,c,u){var f=o+(a^s^l)+(d>>>0)+u;return(f<<c|f>>>32-c)+a},i._ii=function(o,a,s,l,d,c,u){var f=o+(s^(a|~l))+(d>>>0)+u;return(f<<c|f>>>32-c)+a},i._blocksize=16,i._digestsize=16,J2.exports=function(o,a){if(o==null)throw new Error("Illegal argument "+o);var s=e.wordsToBytes(i(o,a));return a&&a.asBytes?s:a&&a.asString?r.bytesToString(s):e.bytesToHex(s)}})();var tg=J2.exports;const dn=class{constructor(t){I(this,"seed",BigInt(0));this.setSeed(t)}fork(){return new dn(this.nextLong())}forkPositional(){return new ng(this.nextLong())}setSeed(t){this.seed=t^dn.MULTIPLIER&dn.MODULUS_MASK}advance(){this.seed=this.seed*dn.MULTIPLIER+dn.INCREMENT&dn.MODULUS_MASK}consume(t){for(let n=0;n<t;n+=1)this.advance()}next(t){this.advance();const n=Number(this.seed>>BigInt(dn.MODULUS_BITS-t));return n>2147483647?n-4294967296:n}nextInt(t){if(t===void 0)return this.next(32);if((t&t-1)==0)return Number(BigInt(t)*BigInt(this.next(31))>>BigInt(31));let n,r;for(;(n=this.next(31))-(r=n%t)+(t-1)<0;);return r}nextLong(){return(BigInt(this.next(32))<<BigInt(32))+BigInt(this.next(32))}nextFloat(){return this.next(24)*dn.FLOAT_MULTIPLIER}nextDouble(){const t=this.next(30);return this.advance(),t*dn.DOUBLE_MULTIPLIER}};let gt=dn;I(gt,"MODULUS_BITS",48),I(gt,"MODULUS_MASK",BigInt("281474976710655")),I(gt,"MULTIPLIER",BigInt("25214903917")),I(gt,"INCREMENT",BigInt("11")),I(gt,"FLOAT_MULTIPLIER",1/Math.pow(2,24)),I(gt,"DOUBLE_MULTIPLIER",1/Math.pow(2,30));class ng{constructor(t){I(this,"seed");this.seed=t}at(t,n,r){const i=Yd(t,n,r);return new gt(i^this.seed)}fromHashOf(t){const n=tg(t,{asBytes:!0}),r=Ds(n[0],n[1],n[2],n[3],n[4],n[5],n[6],n[7]);return new gt(r^this.seed)}seedKey(){return[this.seed,BigInt(0)]}}const we=class{constructor(t){I(this,"seed",[BigInt(0),BigInt(0)]);this.seed=t}static create(t){return new we(we.upgradeSeedTo128bit(t))}static mixStafford13(t){return t=(t^t>>we.BIGINT_30)*we.STAFFORD_1&we.MAX_ULONG,t=(t^t>>we.BIGINT_27)*we.STAFFORD_2&we.MAX_ULONG,(t^t>>we.BIGINT_31)&we.MAX_ULONG}static upgradeSeedTo128bit(t){t<0&&(t+=we.POW2_60);const n=t^we.SILVER_RATIO_64,r=n+we.GOLDEN_RATIO_64&we.MAX_ULONG;return[we.mixStafford13(n),we.mixStafford13(r)]}static rotateLeft(t,n){return t<<n&we.MAX_ULONG|t>>we.BIGINT_64-n}setSeed(t){this.seed=we.upgradeSeedTo128bit(t)}fork(){return new we([this.next(),this.next()])}forkPositional(){return new rg(this.next(),this.next())}next(){const t=this.seed[0];let n=this.seed[1];const r=we.rotateLeft(t+n&we.MAX_ULONG,we.BIGINT_17)+t&we.MAX_ULONG;return n^=t,this.seed=[we.rotateLeft(t,we.BIGINT_49)^n^n<<we.BIGINT_21&we.MAX_ULONG,we.rotateLeft(n,we.BIGINT_28)],r}nextLong(){let t=this.next();return t>we.POW2_63&&(t-=we.POW2_60),t}consume(t){let n=this.seed[0],r=this.seed[1];for(let i=0;i<t;i+=1)r^=n,n=we.rotateLeft(n,we.BIGINT_49)^r^r<<we.BIGINT_21,r=we.rotateLeft(r,we.BIGINT_28);this.seed=[n,r]}nextBits(t){return this.next()>>BigInt(64-t)}nextInt(t){let n=this.next()&we.MAX_UINT;if(t){const r=BigInt(t);let i=n*r,o=i&we.MAX_UINT;if(o<r){const s=((~r&we.MAX_UINT)+we.BIGINT_1)%r;for(;o<s;)n=this.next()&we.MAX_UINT,i=n*r,o=i&we.MAX_UINT}const a=i>>we.BIGINT_32;return Number(a)}else{let r=Number(n);return r>=2147483648&&(r-=4294967296),r}}nextFloat(){return Number(this.nextBits(24))*we.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*we.DOUBLE_MULTIPLIER}parityConfigString(){return"seedLo: "+this.seed[0]+", seedHi: "+this.seed[1]}};let Ge=we;I(Ge,"SILVER_RATIO_64",BigInt("7640891576956012809")),I(Ge,"GOLDEN_RATIO_64",BigInt("-7046029254386353131")),I(Ge,"FLOAT_MULTIPLIER",1/Math.pow(2,24)),I(Ge,"DOUBLE_MULTIPLIER",11102230246251565e-32),I(Ge,"BIGINT_1",BigInt(1)),I(Ge,"BIGINT_17",BigInt(17)),I(Ge,"BIGINT_21",BigInt(21)),I(Ge,"BIGINT_27",BigInt(27)),I(Ge,"BIGINT_28",BigInt(28)),I(Ge,"BIGINT_30",BigInt(30)),I(Ge,"BIGINT_31",BigInt(31)),I(Ge,"BIGINT_32",BigInt(32)),I(Ge,"BIGINT_49",BigInt(49)),I(Ge,"BIGINT_64",BigInt(64)),I(Ge,"STAFFORD_1",BigInt("-4658895280553007687")),I(Ge,"STAFFORD_2",BigInt("-7723592293110705685")),I(Ge,"MAX_ULONG",BigInt("0xFFFFFFFFFFFFFFFF")),I(Ge,"POW2_60",BigInt("0x10000000000000000")),I(Ge,"POW2_63",BigInt("0x8000000000000000")),I(Ge,"MAX_UINT",BigInt(4294967295));class rg{constructor(t,n){I(this,"seedLo");I(this,"seedHi");this.seedLo=t,this.seedHi=n}at(t,n,r){const o=Yd(t,n,r)^this.seedLo;return new Ge([o,this.seedHi])}fromHashOf(t){const n=tg(t,{asBytes:!0}),r=Ds(n[0],n[1],n[2],n[3],n[4],n[5],n[6],n[7]),i=Ds(n[8],n[9],n[10],n[11],n[12],n[13],n[14],n[15]);return new Ge([r^this.seedLo,i^this.seedHi])}seedKey(){return[this.seedLo,this.seedHi]}}const En=class{constructor(t){I(this,"p");I(this,"xo");I(this,"yo");I(this,"zo");this.xo=t.nextDouble()*256,this.yo=t.nextDouble()*256,this.zo=t.nextDouble()*256,this.p=Array(256);for(let n=0;n<256;n+=1)this.p[n]=n;for(let n=0;n<256;n+=1){const r=t.nextInt(256-n),i=this.p[n];this.p[n]=this.p[n+r],this.p[n+r]=i}}sample2D(t,n){let r,i,o;const a=(t+n)*En.F2,s=Math.floor(t+a),l=s-(r=(s+(i=Math.floor(n+a)))*En.G2),d=t-l;let c,u;d>(o=n-(i-r))?(c=1,u=0):(c=0,u=1);const f=d-c+En.G2,h=o-u+En.G2,w=d-1+2*En.G2,_=o-1+2*En.G2,g=s&255,m=i&255,v=this.P(g+this.P(m))%12,x=this.P(g+c+this.P(m+u))%12,b=this.P(g+1+this.P(m+1))%12,y=this.getCornerNoise3D(v,d,o,0,.5),k=this.getCornerNoise3D(x,f,h,0,.5),C=this.getCornerNoise3D(b,w,_,0,.5);return 70*(y+k+C)}sample(t,n,r){const i=(t+n+r)*.3333333333333333,o=Math.floor(t+i),a=Math.floor(n+i),s=Math.floor(r+i),l=(o+a+s)*.16666666666666666,d=t-(o-l),c=n-(a-l),u=r-(s-l);let f,h,w,_,g,m;d>=c?c>=u?(f=1,h=0,w=0,_=1,g=1,m=0):d>=u?(f=1,h=0,w=0,_=1,g=0,m=1):(f=0,h=0,w=1,_=1,g=0,m=1):c<u?(f=0,h=0,w=1,_=0,g=1,m=1):d<u?(f=0,h=1,w=0,_=0,g=1,m=1):(f=0,h=1,w=0,_=1,g=1,m=0);const v=d-f+.16666666666666666,x=c-h+.16666666666666666,b=u-w+.16666666666666666,y=d-_+.3333333333333333,k=c-g+.3333333333333333,C=u-m+.3333333333333333,E=d-.5,M=c-.5,S=u-.5,T=o&255,L=a&255,F=s&255,X=this.P(T+this.P(L+this.P(F)))%12,V=this.P(T+f+this.P(L+h+this.P(F+w)))%12,O=this.P(T+_+this.P(L+g+this.P(F+m)))%12,j=this.P(T+1+this.P(L+1+this.P(F+1)))%12,H=this.getCornerNoise3D(X,d,c,u,.6),Q=this.getCornerNoise3D(V,v,x,b,.6),D=this.getCornerNoise3D(O,y,k,C,.6),A=this.getCornerNoise3D(j,E,M,S,.6);return 32*(H+Q+D+A)}P(t){return this.p[t&255]}getCornerNoise3D(t,n,r,i,o){let a,s=o-n*n-r*r-i*i;return s<0?a=0:(s*=s,a=s*s*En.gradDot(t,n,r,i)),a}static gradDot(t,n,r,i){const o=En.GRADIENT[t&15];return o[0]*n+o[1]*r+o[2]*i}};let xt=En;I(xt,"GRADIENT",[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1],[1,1,0],[0,-1,1],[-1,1,0],[0,-1,-1]]),I(xt,"F2",.5*(Math.sqrt(3)-1)),I(xt,"G2",(3-Math.sqrt(3))/6);class Jc{constructor(t){I(this,"p");I(this,"xo");I(this,"yo");I(this,"zo");this.xo=t.nextDouble()*256,this.yo=t.nextDouble()*256,this.zo=t.nextDouble()*256,this.p=Array(256);for(let n=0;n<256;n+=1)this.p[n]=n>127?n-256:n;for(let n=0;n<256;n+=1){const r=t.nextInt(256-n),i=this.p[n];this.p[n]=this.p[n+r],this.p[n+r]=i}}sample(t,n,r,i=0,o=0){const a=t+this.xo,s=n+this.yo,l=r+this.zo,d=Math.floor(a),c=Math.floor(s),u=Math.floor(l),f=a-d,h=s-c,w=l-u;let _=0;if(i!==0){const g=o>=0&&o<h?o:h;_=Math.floor(g/i+1e-7)*i}return this.sampleAndLerp(d,c,u,f,h-_,w,h)}sampleAndLerp(t,n,r,i,o,a,s){const l=this.P(t),d=this.P(t+1),c=this.P(l+n),u=this.P(l+n+1),f=this.P(d+n),h=this.P(d+n+1),w=xt.gradDot(this.P(c+r),i,o,a),_=xt.gradDot(this.P(f+r),i-1,o,a),g=xt.gradDot(this.P(u+r),i,o-1,a),m=xt.gradDot(this.P(h+r),i-1,o-1,a),v=xt.gradDot(this.P(c+r+1),i,o,a-1),x=xt.gradDot(this.P(f+r+1),i-1,o,a-1),b=xt.gradDot(this.P(u+r+1),i,o-1,a-1),y=xt.gradDot(this.P(h+r+1),i-1,o-1,a-1),k=cs(i),C=cs(s),E=cs(a);return q2(k,C,E,w,_,g,m,v,x,b,y)}P(t){return this.p[t&255]&255}}class Ye{constructor(t,n,r){I(this,"noiseLevels");I(this,"amplitudes");I(this,"lowestFreqInputFactor");I(this,"lowestFreqValueFactor");I(this,"maxValue");if(t instanceof Ge){const i=t.forkPositional();this.noiseLevels=Array(r.length);for(let o=0;o<r.length;o++)if(r[o]!==0){const a=n+o;this.noiseLevels[o]=new Jc(i.fromHashOf("octave_"+a))}}else{if(1-n<r.length)throw new Error("Positive octaves are not allowed when using LegacyRandom");this.noiseLevels=Array(r.length);for(let i=-n;i>=0;i-=1)i<r.length&&r[i]!==0?this.noiseLevels[i]=new Jc(t):t.consume(262)}this.amplitudes=r,this.lowestFreqInputFactor=Math.pow(2,n),this.lowestFreqValueFactor=Math.pow(2,r.length-1)/(Math.pow(2,r.length)-1),this.maxValue=this.edgeValue(2)}sample(t,n,r,i=0,o=0,a=!1){let s=0,l=this.lowestFreqInputFactor,d=this.lowestFreqValueFactor;for(let c=0;c<this.noiseLevels.length;c+=1){const u=this.noiseLevels[c];u&&(s+=this.amplitudes[c]*d*u.sample(Ye.wrap(t*l),a?-u.yo:Ye.wrap(n*l),Ye.wrap(r*l),i*l,o*l)),l*=2,d/=2}return s}getOctaveNoise(t){return this.noiseLevels[this.noiseLevels.length-1-t]}edgeValue(t){let n=0,r=this.lowestFreqValueFactor;for(let i=0;i<this.noiseLevels.length;i+=1)this.noiseLevels[i]&&(n+=this.amplitudes[i]*t*r),r/=2;return n}static wrap(t){return t-Math.floor(t/33554432+.5)*33554432}}class ig{constructor(t,n,r,i,o,a){I(this,"xzScale");I(this,"yScale");I(this,"xzFactor");I(this,"yFactor");I(this,"smearScaleMultiplier");I(this,"minLimitNoise");I(this,"maxLimitNoise");I(this,"mainNoise");I(this,"xzMultiplier");I(this,"yMultiplier");I(this,"maxValue");this.xzScale=n,this.yScale=r,this.xzFactor=i,this.yFactor=o,this.smearScaleMultiplier=a,this.minLimitNoise=new Ye(t,-15,[1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0]),this.maxLimitNoise=new Ye(t,-15,[1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0]),this.mainNoise=new Ye(t,-7,[1,1,1,1,1,0,0,0]),this.xzMultiplier=684.412*n,this.yMultiplier=684.412*r,this.maxValue=this.minLimitNoise.edgeValue(this.yScale+2)}sample(t,n,r){const i=t*this.xzMultiplier,o=n*this.yMultiplier,a=r*this.xzMultiplier,s=i/this.xzFactor,l=o/this.yFactor,d=a/this.xzFactor,c=this.yMultiplier*this.smearScaleMultiplier,u=c/this.yFactor;let f,h=0,w=1;for(let m=0;m<8;m+=1){if(f=this.mainNoise.getOctaveNoise(m),f){const v=Ye.wrap(s*w),x=Ye.wrap(l*w),b=Ye.wrap(d*w);h+=f.sample(v,x,b,u*w,l*w)/w}w/=2}h=(h/10+1)/2,w=1;let _=0,g=0;for(let m=0;m<16;m+=1){const v=Ye.wrap(i*w),x=Ye.wrap(o*w),b=Ye.wrap(a*w),y=c*w;h<1&&(f=this.minLimitNoise.getOctaveNoise(m))&&(_+=f.sample(v,x,b,y,o*w)/w),h>0&&(f=this.maxLimitNoise.getOctaveNoise(m))&&(g+=f.sample(v,x,b,y,o*w)/w),w/=2}return fl(_/512,g/512,h)/128}}const Do=class{constructor(t,{firstOctave:n,amplitudes:r}){I(this,"valueFactor");I(this,"first");I(this,"second");I(this,"maxValue");this.first=new Ye(t,n,r),this.second=new Ye(t,n,r);let i=1/0,o=-1/0;for(let s=0;s<r.length;s+=1)r[s]!==0&&(i=Math.min(i,s),o=Math.max(o,s));const a=.1*(1+1/(o-i+1));this.valueFactor=1/6/a,this.maxValue=(this.first.maxValue+this.second.maxValue)*this.valueFactor}sample(t,n,r){const i=t*Do.INPUT_FACTOR,o=n*Do.INPUT_FACTOR,a=r*Do.INPUT_FACTOR;return(this.first.sample(t,n,r)+this.second.sample(i,o,a))*this.valueFactor}};let Mn=Do;I(Mn,"INPUT_FACTOR",1.0181268882175227);var Rn;(function(e){function t(r,i){return{firstOctave:r,amplitudes:i}}e.create=t;function n(r){var o,a,s;const i=(o=q.readObject(r))!=null?o:{};return{firstOctave:(a=q.readInt(i.firstOctave))!=null?a:0,amplitudes:(s=q.readArray(i.amplitudes,l=>{var d;return(d=q.readNumber(l))!=null?d:0}))!=null?s:[]}}e.fromJson=n})(Rn||(Rn={}));class n4{constructor(t,n){I(this,"noiseLevels");I(this,"highestFreqInputFactor");I(this,"highestFreqValueFactor");const r=n[n.length-1],o=-n[0]+r+1,a=new Set(n),s=new xt(t);this.noiseLevels=Array(o),r>=0&&r<o&&a.has(0)&&(this.noiseLevels[r]=s);for(let l=r+1;l<o;l+=1)l>=0&&a.has(r-l)?this.noiseLevels[l]=new xt(t):t.consume(262);if(r>0)throw new Error("Positive octaves are not allowed");this.highestFreqInputFactor=Math.pow(2,r),this.highestFreqValueFactor=1/(Math.pow(2,o)-1)}sample(t,n,r){let i=0,o=this.highestFreqInputFactor,a=this.highestFreqValueFactor;for(let s=0;s<this.noiseLevels.length;s+=1){const l=this.noiseLevels[s];l&&(i+=a*l.sample2D(t*o+(r?l.xo:0),n*o+(r?l.yo:0))),o/=2,a*=2}return i}}var Er;(function(e){const t=s=>new ye.HolderHolder(ei.parser(Ar.DENSITY_FUNCTION,ye.fromJson)(s));function n(s){var d;const l=(d=q.readObject(s))!=null?d:{};return{barrier:t(l.barrier),fluidLevelFloodedness:t(l.fluid_level_floodedness),fluidLevelSpread:t(l.fluid_level_spread),lava:t(l.lava),temperature:t(l.temperature),vegetation:t(l.vegetation),continents:t(l.continents),erosion:t(l.erosion),depth:t(l.depth),ridges:t(l.ridges),initialDensityWithoutJaggedness:t(l.initial_density_without_jaggedness),finalDensity:t(l.final_density),veinToggle:t(l.vein_toggle),veinRidged:t(l.vein_ridged),veinGap:t(l.vein_gap)}}e.fromJson=n;function r(s){return oe({barrier:ye.Constant.ZERO,fluidLevelFloodedness:ye.Constant.ZERO,fluidLevelSpread:ye.Constant.ZERO,lava:ye.Constant.ZERO,temperature:ye.Constant.ZERO,vegetation:ye.Constant.ZERO,continents:ye.Constant.ZERO,erosion:ye.Constant.ZERO,depth:ye.Constant.ZERO,ridges:ye.Constant.ZERO,initialDensityWithoutJaggedness:ye.Constant.ZERO,finalDensity:ye.Constant.ZERO,veinToggle:ye.Constant.ZERO,veinRidged:ye.Constant.ZERO,veinGap:ye.Constant.ZERO},s)}e.create=r;function i(s,l){return{barrier:s.barrier.mapAll(l),fluidLevelFloodedness:s.fluidLevelFloodedness.mapAll(l),fluidLevelSpread:s.fluidLevelSpread.mapAll(l),lava:s.lava.mapAll(l),temperature:s.temperature.mapAll(l),vegetation:s.vegetation.mapAll(l),continents:s.continents.mapAll(l),erosion:s.erosion.mapAll(l),depth:s.depth.mapAll(l),ridges:s.ridges.mapAll(l),initialDensityWithoutJaggedness:s.initialDensityWithoutJaggedness.mapAll(l),finalDensity:s.finalDensity.mapAll(l),veinToggle:s.veinToggle.mapAll(l),veinRidged:s.veinRidged.mapAll(l),veinGap:s.veinGap.mapAll(l)}}e.mapAll=i;const o=new Map;function a(s,l){var h;const d=(h=l.key())==null?void 0:h.toString();if(!d)throw new Error("Cannot instantiate noise from direct holder");const c=s.seedKey(),u=o.get(d);if(u&&u[0]===c[0]&&u[1]===c[1])return u[2];const f=new Mn(s.fromHashOf(d),l.value());return o.set(d,[c[0],c[1],f]),f}e.instantiate=a})(Er||(Er={}));var Zt;(function(e){function t(s){var d,c,u,f,h;const l=(d=q.readObject(s))!=null?d:{};return{minY:(c=q.readInt(l.min_y))!=null?c:0,height:(u=q.readInt(l.height))!=null?u:256,xzSize:(f=q.readInt(l.size_horizontal))!=null?f:1,ySize:(h=q.readInt(l.size_vertical))!=null?h:1}}e.fromJson=t;function n(s){return oe({minY:0,height:256,xzSize:1,ySize:1},s)}e.create=n;function r(s){return s.ySize<<2}e.cellHeight=r;function i(s){return s.xzSize<<2}e.cellWidth=i;function o(s){return s.height/r(s)}e.cellCountY=o;function a(s){return Math.floor(s.minY/r(s))}e.minCellY=a})(Zt||(Zt={}));var Qc;(function(e){function t(r){var o,a,s,l;const i=(o=q.readObject(r))!=null?o:{};return{target:(a=q.readNumber(i.target))!=null?a:0,size:(s=q.readInt(i.size))!=null?s:0,offset:(l=q.readInt(i.offset))!=null?l:0}}e.fromJson=t;function n(r,i,o){if(r.size<=0)return i;const a=(o-r.offset)/r.size;return fl(r.target,i,a)}e.apply=n})(Qc||(Qc={}));var $i;(function(e){function t(o){var s,l,d,c;const a=(s=q.readObject(o))!=null?s:{};return a.absolute!==void 0?n((l=q.readNumber(a.absolute))!=null?l:0):a.above_bottom!==void 0?r((d=q.readNumber(a.above_bottom))!=null?d:0):a.below_top!==void 0?i((c=q.readNumber(a.below_top))!=null?c:0):()=>0}e.fromJson=t;function n(o){return()=>o}function r(o){return a=>a.minY+o}function i(o){return a=>a.maxY-o}})($i||($i={}));var Bs;(function(e){function t(n,r){return{minY:n,height:r,maxY:n+r-1}}e.create=t})(Bs||(Bs={}));class og{constructor(t,n,r){I(this,"rule");I(this,"defaultBlock");I(this,"surfaceNoise");I(this,"surfaceSecondaryNoise");I(this,"random");I(this,"positionalRandoms");this.rule=t,this.defaultBlock=n,this.random=Ge.create(r).forkPositional(),this.surfaceNoise=Er.instantiate(this.random,Ar.SURFACE_NOISE),this.surfaceSecondaryNoise=Er.instantiate(this.random,Ar.SURFACE_SECONDARY_NOISE),this.positionalRandoms=new Map}buildSurface(t,n,r,i){const o=Mt.minBlockX(t.pos),a=Mt.minBlockZ(t.pos),s=new ag(this,t,n,r,i),l=this.rule(s);for(let d=0;d<16;d+=1){const c=o+d;for(let u=0;u<1;u+=1){const f=a+u;s.updateXZ(c,f);let h=0,w=Number.MIN_SAFE_INTEGER,_=Number.MAX_SAFE_INTEGER;for(let g=t.maxY;g>=t.minY;g-=1){const m=Dt.create(c,g,f),v=t.getBlockState(m);if(v.equals(ze.AIR)){h=0,w=Number.MIN_SAFE_INTEGER;continue}if(v.isFluid()){w===Number.MIN_SAFE_INTEGER&&(w=g+1);continue}if(_>=g){_=Number.MIN_SAFE_INTEGER;for(let y=g-1;y>=t.minY;y-=1){const k=t.getBlockState(Dt.create(c,y,f));if(k.equals(ze.AIR)||k.isFluid()){_=y+1;break}}}h+=1;const x=g-_+1;if(!v.equals(this.defaultBlock))continue;s.updateY(h,x,w,g);const b=l(c,g,f);b&&t.setBlockState(m,b)}}}}getSurfaceDepth(t,n){const r=this.surfaceNoise.sample(t,0,n),i=this.random.at(t,0,n).nextDouble()*.25;return r*2.75+3+i}getSurfaceSecondary(t,n){return this.surfaceSecondaryNoise.sample(t,0,n)}getRandom(t){return Qr(this.positionalRandoms,t,()=>this.random.fromHashOf(t))}}class ag{constructor(t,n,r,i,o){I(this,"system");I(this,"chunk");I(this,"noiseChunk");I(this,"context");I(this,"getBiome");I(this,"blockX",0);I(this,"blockY",0);I(this,"blockZ",0);I(this,"stoneDepthAbove",0);I(this,"stoneDepthBelow",0);I(this,"surfaceDepth",0);I(this,"waterHeight",0);I(this,"biome",()=>"");I(this,"surfaceSecondary",()=>0);I(this,"minSurfaceLevel",()=>0);this.system=t,this.chunk=n,this.noiseChunk=r,this.context=i,this.getBiome=o}updateXZ(t,n){this.blockX=t,this.blockZ=n,this.surfaceDepth=this.system.getSurfaceDepth(t,n),this.surfaceSecondary=No(()=>this.system.getSurfaceSecondary(t,n)),this.minSurfaceLevel=No(()=>this.calculateMinSurfaceLevel(t,n))}updateY(t,n,r,i){this.blockY=i,this.stoneDepthAbove=t,this.stoneDepthBelow=n,this.waterHeight=r,this.biome=No(()=>this.getBiome(Dt.create(this.blockX,this.blockY,this.blockZ)))}calculateMinSurfaceLevel(t,n){const r=t>>4,i=n>>4,o=this.noiseChunk.getPreliminarySurfaceLevel(r<<4,i<<4),a=this.noiseChunk.getPreliminarySurfaceLevel(r+1<<4,i<<4),s=this.noiseChunk.getPreliminarySurfaceLevel(r<<4,i+1<<4),l=this.noiseChunk.getPreliminarySurfaceLevel(r+1<<4,i+1<<4);return Math.floor(Rs((t&15)/16,(n&15)/16,o,a,s,l))+this.surfaceDepth-8}}var Xo;(function(e){e.NOOP=()=>()=>{};function t(o){var l,d,c;const a=(l=q.readObject(o))!=null?l:{};switch((d=q.readString(a.type))==null?void 0:d.replace(/^minecraft:/,"")){case"block":return n(ze.fromJson(a.result_state));case"sequence":return r((c=q.readArray(a.sequence,e.fromJson))!=null?c:[]);case"condition":return i(zs.fromJson(a.if_true),e.fromJson(a.then_run))}return e.NOOP}e.fromJson=t;function n(o){return()=>()=>o}e.block=n;function r(o){return a=>{const s=o.map(l=>l(a));return(l,d,c)=>{for(const u of s){const f=u(l,d,c);if(f)return f}}}}e.sequence=r;function i(o,a){return s=>(l,d,c)=>{if(o(s))return a(s)(l,d,c)}}e.condition=i})(Xo||(Xo={}));var zs;(function(e){e.FALSE=()=>!1,e.TRUE=()=>!0;function t(d){var f,h,w,_,g,m,v,x,b,y,k,C;const c=(f=q.readObject(d))!=null?f:{};switch((h=q.readString(c.type))==null?void 0:h.replace(/^minecraft:/,"")){case"above_preliminary_surface":return n();case"biome":return r((w=q.readArray(c.biome_is,E=>{var M;return(M=q.readString(E))!=null?M:""}))!=null?w:[]);case"not":return i(e.fromJson(c.invert));case"stone_depth":return o((_=q.readInt(c.offset))!=null?_:0,(g=q.readBoolean(c.add_surface_depth))!=null?g:!1,(m=q.readInt(c.secondary_depth_range))!=null?m:0,q.readString(c.surface_type)==="ceiling");case"vertical_gradient":return a((v=q.readString(c.random_name))!=null?v:"",$i.fromJson(c.true_at_and_below),$i.fromJson(c.false_at_and_above));case"water":return s((x=q.readInt(c.offset))!=null?x:0,(b=q.readInt(c.surface_depth_multiplier))!=null?b:0,(y=q.readBoolean(c.add_surface_depth))!=null?y:!1);case"y_above":return l($i.fromJson(c.anchor),(k=q.readInt(c.surface_depth_multiplier))!=null?k:0,(C=q.readBoolean(c.add_surface_depth))!=null?C:!1)}return e.FALSE}e.fromJson=t;function n(){return d=>d.blockY>=d.minSurfaceLevel()}e.abovePreliminarySurface=n;function r(d){const c=new Set(d);return u=>c.has(u.biome())}e.biome=r;function i(d){return c=>!d(c)}e.not=i;function o(d,c,u,f){return h=>{const w=f?h.stoneDepthBelow:h.stoneDepthAbove,_=c?h.surfaceDepth:0,g=u===0?0:qo(h.surfaceSecondary(),-1,1,0,u);return w<=1+d+_+g}}e.stoneDepth=o;function a(d,c,u){return f=>{const h=c(f.context),w=u(f.context);if(f.blockY<=h)return!0;if(f.blockY>=w)return!1;const _=f.system.getRandom(d),g=qo(f.blockY,h,w,1,0);return _.nextFloat()<g}}e.verticalGradient=a;function s(d,c,u){return f=>{if(f.waterHeight===Number.MIN_SAFE_INTEGER)return!0;const h=u?f.stoneDepthAbove:0;return f.blockY+h>=f.waterHeight+d+f.surfaceDepth*c}}e.water=s;function l(d,c,u){return f=>{const h=u?f.stoneDepthAbove:0;return f.blockY+h>=d(f.context)+f.surfaceDepth*c}}e.yAbove=l})(zs||(zs={}));var js;(function(e){function t(r){var o,a,s,l,d,c;const i=(o=q.readObject(r))!=null?o:{};return{surfaceRule:Xo.fromJson(i.surface_rule),noise:Zt.fromJson(i.noise),defaultBlock:ze.fromJson(i.default_block),defaultFluid:ze.fromJson(i.default_fluid),noiseRouter:Er.fromJson(i.noise_router),seaLevel:(a=q.readInt(i.sea_level))!=null?a:0,disableMobGeneration:(s=q.readBoolean(i.disable_mob_generation))!=null?s:!1,aquifersEnabled:(l=q.readBoolean(i.aquifers_enabled))!=null?l:!1,oreVeinsEnabled:(d=q.readBoolean(i.ore_veins_enabled))!=null?d:!1,legacyRandomSource:(c=q.readBoolean(i.legacy_random_source))!=null?c:!1}}e.fromJson=t;function n(r){return oe({surfaceRule:Xo.NOOP,noise:Zt.create({}),defaultBlock:ze.STONE,defaultFluid:ze.WATER,noiseRouter:Er.create({}),seaLevel:0,disableMobGeneration:!1,aquifersEnabled:!1,oreVeinsEnabled:!1,legacyRandomSource:!1},r)}e.create=n})(js||(js={}));var Ar;(function(e){e.NOISE=t("worldgen/noise",Rn.fromJson),e.DENSITY_FUNCTION=t("worldgen/density_function",r=>ye.fromJson(r)),e.NOISE_SETTINGS=t("worldgen/noise_settings",js.fromJson);function t(r,i){const o=new Hr(ve.create(r),i);return Hr.REGISTRY.register(o.key,o),o}e.SURFACE_NOISE=n("surface",-6,[1,1,1]),e.SURFACE_SECONDARY_NOISE=n("surface_secondary",-6,[1,1,0,1]);function n(r,i,o){return e.NOISE.register(ve.create(r),Rn.create(i,o),!0)}})(Ar||(Ar={}));class ye{minValue(){return-this.maxValue()}mapAll(t){return t.map(this)}}(function(e){function t(Q,D,A){return{x:Q,y:D,z:A}}e.context=t;class n extends e{constructor(A){super();I(this,"input");this.input=A}compute(A){return this.transform(A,this.input.compute(A))}}const r=ei.parser(Ar.NOISE,Rn.fromJson);function i(Q,D=i){var $,K,ie,B,J,ue,pe,Re,Se,Ue,rt,Ae,Me,Te,le,bn,Ze,$e,et,vt;if(typeof Q=="string")return new a(ei.reference(Ar.DENSITY_FUNCTION,ve.parse(Q)));if(typeof Q=="number")return new o(Q);const A=($=q.readObject(Q))!=null?$:{},N=(K=q.readString(A.type))==null?void 0:K.replace(/^minecraft:/,"");switch(N){case"blend_alpha":return new s(1,0,1);case"blend_offset":return new s(0,-1/0,1/0);case"beardifier":return new s(0,-1/0,1/0);case"old_blended_noise":return new l((ie=q.readNumber(A.xz_scale))!=null?ie:1,(B=q.readNumber(A.y_scale))!=null?B:1,(J=q.readNumber(A.xz_factor))!=null?J:80,(ue=q.readNumber(A.y_factor))!=null?ue:160,(pe=q.readNumber(A.smear_scale_multiplier))!=null?pe:8);case"flat_cache":return new c(D(A.argument));case"interpolated":return new w(D(A.argument));case"cache_2d":return new f(D(A.argument));case"cache_once":return new h(D(A.argument));case"cache_all_in_cell":return new u(D(A.argument));case"noise":return new _((Re=q.readNumber(A.xz_scale))!=null?Re:1,(Se=q.readNumber(A.y_scale))!=null?Se:1,r(A.noise));case"end_islands":return new g;case"weird_scaled_sampler":return new v(D(A.input),q.readEnum(A.rarity_value_mapper,m),r(A.noise));case"shifted_noise":return new x(D(A.shift_x),D(A.shift_y),D(A.shift_z),(Ue=q.readNumber(A.xz_scale))!=null?Ue:1,(rt=q.readNumber(A.y_scale))!=null?rt:1,r(A.noise));case"range_choice":return new b(D(A.input),(Ae=q.readNumber(A.min_inclusive))!=null?Ae:0,(Me=q.readNumber(A.max_exclusive))!=null?Me:1,D(A.when_in_range),D(A.when_out_of_range));case"shift_a":return new k(r(A.argument));case"shift_b":return new C(r(A.argument));case"shift":return new E(r(A.argument));case"blend_density":return new M(D(A.argument));case"clamp":return new S(D(A.input),(Te=q.readNumber(A.min))!=null?Te:0,(le=q.readNumber(A.max))!=null?le:1);case"abs":case"square":case"cube":case"half_negative":case"quarter_negative":case"squeeze":return new T(N,D(A.argument));case"add":case"mul":case"min":case"max":return new F(q.readEnum(N,L),D(A.argument1),D(A.argument2));case"spline":return new X($s.fromJson(A.spline,D));case"constant":return new o((bn=q.readNumber(A.argument))!=null?bn:0);case"y_clamped_gradient":return new V((Ze=q.readInt(A.from_y))!=null?Ze:-4064,($e=q.readInt(A.to_y))!=null?$e:4062,(et=q.readNumber(A.from_value))!=null?et:-4064,(vt=q.readNumber(A.to_value))!=null?vt:4062)}return o.ZERO}e.fromJson=i;const O=class extends e{constructor(A){super();I(this,"value");this.value=A}compute(){return this.value}minValue(){return this.value}maxValue(){return this.value}};let o=O;I(o,"ZERO",new O(0)),I(o,"ONE",new O(1)),e.Constant=o;class a extends e{constructor(A){super();I(this,"holder");this.holder=A}compute(A){return this.holder.value().compute(A)}minValue(){return this.holder.value().minValue()}maxValue(){return this.holder.value().maxValue()}}e.HolderHolder=a;class s extends e.Constant{constructor(A,N,$){super(A);I(this,"min");I(this,"max");this.min=N,this.max=$}minValue(){return this.min}maxValue(){return this.max}}e.ConstantMinMax=s;class l extends e{constructor(A,N,$,K,ie,B){super();I(this,"xzScale");I(this,"yScale");I(this,"xzFactor");I(this,"yFactor");I(this,"smearScaleMultiplier");I(this,"blendedNoise");this.xzScale=A,this.yScale=N,this.xzFactor=$,this.yFactor=K,this.smearScaleMultiplier=ie,this.blendedNoise=B}compute(A){var N,$;return($=(N=this.blendedNoise)==null?void 0:N.sample(A.x,A.y,A.z))!=null?$:0}maxValue(){var A,N;return(N=(A=this.blendedNoise)==null?void 0:A.maxValue)!=null?N:0}}e.OldBlendedNoise=l;class d extends e{constructor(A){super();I(this,"wrapped");this.wrapped=A}minValue(){return this.wrapped.minValue()}maxValue(){return this.wrapped.maxValue()}}class c extends d{constructor(A){super(A);I(this,"lastQuartX");I(this,"lastQuartZ");I(this,"lastValue",0)}compute(A){const N=A.x>>2,$=A.z>>2;return(this.lastQuartX!==N||this.lastQuartZ!==$)&&(this.lastValue=this.wrapped.compute(e.context(N<<2,0,$<<2)),this.lastQuartX=N,this.lastQuartZ=$),this.lastValue}mapAll(A){return A.map(new c(this.wrapped.mapAll(A)))}}e.FlatCache=c;class u extends d{constructor(D){super(D)}compute(D){return this.wrapped.compute(D)}mapAll(D){return D.map(new u(this.wrapped.mapAll(D)))}}e.CacheAllInCell=u;class f extends d{constructor(A){super(A);I(this,"lastBlockX");I(this,"lastBlockZ");I(this,"lastValue",0)}compute(A){const N=A.x,$=A.z;return(this.lastBlockX!==N||this.lastBlockZ!==$)&&(this.lastValue=this.wrapped.compute(A),this.lastBlockX=N,this.lastBlockZ=$),this.lastValue}mapAll(A){return A.map(new f(this.wrapped.mapAll(A)))}}e.Cache2D=f;class h extends d{constructor(A){super(A);I(this,"lastBlockX");I(this,"lastBlockY");I(this,"lastBlockZ");I(this,"lastValue",0)}compute(A){const N=A.x,$=A.y,K=A.z;return(this.lastBlockX!==N||this.lastBlockY!==$||this.lastBlockZ!==K)&&(this.lastValue=this.wrapped.compute(A),this.lastBlockX=N,this.lastBlockY=$,this.lastBlockZ=K),this.lastValue}mapAll(A){return A.map(new h(this.wrapped.mapAll(A)))}}e.CacheOnce=h;class w extends d{constructor(A,N=4,$=4){super(A);I(this,"cellWidth");I(this,"cellHeight");I(this,"values");this.cellWidth=N,this.cellHeight=$,this.values=new Map}compute({x:A,y:N,z:$}){const K=this.cellWidth,ie=this.cellHeight,B=(A%K+K)%K/K,J=(N%ie+ie)%ie/ie,ue=($%K+K)%K/K,pe=Math.floor(A/K)*K,Re=Math.floor(N/ie)*ie,Se=Math.floor($/K)*K;return X2(B,J,ue,()=>this.computeCorner(pe,Re,Se),()=>this.computeCorner(pe+K,Re,Se),()=>this.computeCorner(pe,Re+ie,Se),()=>this.computeCorner(pe+K,Re+ie,Se),()=>this.computeCorner(pe,Re,Se+K),()=>this.computeCorner(pe+K,Re,Se+K),()=>this.computeCorner(pe,Re+ie,Se+K),()=>this.computeCorner(pe+K,Re+ie,Se+K))}computeCorner(A,N,$){return Qr(this.values,`${A} ${N} ${$}`,()=>this.wrapped.compute(e.context(A,N,$)))}mapAll(A){return A.map(new w(this.wrapped.mapAll(A)))}withCellSize(A,N){return new w(this.wrapped,A,N)}}e.Interpolated=w;class _ extends e{constructor(A,N,$,K){super();I(this,"xzScale");I(this,"yScale");I(this,"noiseData");I(this,"noise");this.xzScale=A,this.yScale=N,this.noiseData=$,this.noise=K}compute(A){var N,$;return($=(N=this.noise)==null?void 0:N.sample(A.x*this.xzScale,A.y*this.yScale,A.z*this.xzScale))!=null?$:0}maxValue(){var A,N;return(N=(A=this.noise)==null?void 0:A.maxValue)!=null?N:2}}e.Noise=_;class g extends e{constructor(A){super();I(this,"islandNoise");const N=new gt(A!=null?A:BigInt(0));N.consume(17292),this.islandNoise=new xt(N)}getHeightValue(A,N){const $=Math.floor(A/2),K=Math.floor(N/2),ie=A%2,B=N%2;let J=mr(100-Math.sqrt(A*A+N*N),-100,80);for(let ue=-12;ue<=12;ue+=1)for(let pe=-12;pe<=12;pe+=1){const Re=$+ue,Se=K+pe;if(Re*Re+Se*Se<=4096||this.islandNoise.sample2D(Re,Se)>=-.9)continue;const Ue=(Math.abs(Re)*3439+Math.abs(Se)*147)%13+9,rt=ie+ue*2,Ae=B+pe*2,Me=100-Math.sqrt(rt*rt+Ae*Ae)*Ue,Te=mr(Me,-100,80);J=Math.max(J,Te)}return J}compute({x:A,y:N,z:$}){return(this.getHeightValue(Math.floor(A/8),Math.floor($/8))-8)/128}minValue(){return-.84375}maxValue(){return .5625}}e.EndIslands=g;const m=["type_1","type_2"],j=class extends n{constructor(A,N,$,K){super(A);I(this,"rarityValueMapper");I(this,"noiseData");I(this,"noise");I(this,"mapper");this.rarityValueMapper=N,this.noiseData=$,this.noise=K,this.mapper=j.ValueMapper[this.rarityValueMapper]}transform(A,N){if(!this.noise)return 0;const $=this.mapper(N);return $*Math.abs(this.noise.sample(A.x/$,A.y/$,A.z/$))}mapAll(A){return A.map(new j(this.input.mapAll(A),this.rarityValueMapper,this.noiseData,this.noise))}minValue(){return 0}maxValue(){return this.rarityValueMapper==="type_1"?2:3}static rarityValueMapper1(A){return A<-.5?.75:A<0?1:A<.5?1.5:2}static rarityValueMapper2(A){return A<-.75?.5:A<-.5?.75:A<.5?1:A<.75?2:3}};let v=j;I(v,"ValueMapper",{type_1:j.rarityValueMapper1,type_2:j.rarityValueMapper2}),e.WeirdScaledSampler=v;class x extends _{constructor(A,N,$,K,ie,B,J){super(K,ie,B,J);I(this,"shiftX");I(this,"shiftY");I(this,"shiftZ");this.shiftX=A,this.shiftY=N,this.shiftZ=$}compute(A){var ie,B;const N=A.x*this.xzScale+this.shiftX.compute(A),$=A.y*this.yScale+this.shiftY.compute(A),K=A.z*this.xzScale+this.shiftZ.compute(A);return(B=(ie=this.noise)==null?void 0:ie.sample(N,$,K))!=null?B:0}mapAll(A){return A.map(new x(this.shiftX.mapAll(A),this.shiftY.mapAll(A),this.shiftZ.mapAll(A),this.xzScale,this.yScale,this.noiseData,this.noise))}}e.ShiftedNoise=x;class b extends e{constructor(A,N,$,K,ie){super();I(this,"input");I(this,"minInclusive");I(this,"maxExclusive");I(this,"whenInRange");I(this,"whenOutOfRange");this.input=A,this.minInclusive=N,this.maxExclusive=$,this.whenInRange=K,this.whenOutOfRange=ie}compute(A){const N=this.input.compute(A);return this.minInclusive<=N&&N<this.maxExclusive?this.whenInRange.compute(A):this.whenOutOfRange.compute(A)}mapAll(A){return A.map(new b(this.input.mapAll(A),this.minInclusive,this.maxExclusive,this.whenInRange.mapAll(A),this.whenOutOfRange.mapAll(A)))}minValue(){return Math.min(this.whenInRange.minValue(),this.whenOutOfRange.minValue())}maxValue(){return Math.max(this.whenInRange.maxValue(),this.whenOutOfRange.maxValue())}}e.RangeChoice=b;class y extends e{constructor(A,N){super();I(this,"noiseData");I(this,"offsetNoise");this.noiseData=A,this.offsetNoise=N}compute(A){var N,$;return($=(N=this.offsetNoise)==null?void 0:N.sample(A.x*.25,A.y*.25,A.z*.25))!=null?$:0}maxValue(){var A,N;return((N=(A=this.offsetNoise)==null?void 0:A.maxValue)!=null?N:2)*4}}e.ShiftNoise=y;class k extends y{constructor(D,A){super(D,A)}compute(D){return super.compute(e.context(D.x,0,D.z))}withNewNoise(D){return new k(this.noiseData,D)}}e.ShiftA=k;class C extends y{constructor(D,A){super(D,A)}compute(D){return super.compute(e.context(D.z,D.x,0))}withNewNoise(D){return new C(this.noiseData,D)}}e.ShiftB=C;class E extends y{constructor(D,A){super(D,A)}withNewNoise(D){return new E(this.noiseData,D)}}e.Shift=E;class M extends n{constructor(D){super(D)}transform(D,A){return A}mapAll(D){return D.map(new M(this.input.mapAll(D)))}minValue(){return-1/0}maxValue(){return 1/0}}e.BlendDensity=M;class S extends n{constructor(A,N,$){super(A);I(this,"min");I(this,"max");this.min=N,this.max=$}transform(A,N){return mr(N,this.min,this.max)}mapAll(A){return A.map(new S(this.input.mapAll(A),this.min,this.max))}minValue(){return this.min}maxValue(){return this.max}}e.Clamp=S;const H=class extends n{constructor(A,N,$,K){super(N);I(this,"type");I(this,"min");I(this,"max");I(this,"transformer");this.type=A,this.min=$,this.max=K,this.transformer=H.MappedTypes[this.type]}transform(A,N){return this.transformer(N)}mapAll(A){return A.map(new H(this.type,this.input.mapAll(A)))}minValue(){var A;return(A=this.min)!=null?A:-1/0}maxValue(){var A;return(A=this.max)!=null?A:1/0}withMinMax(){const A=this.input.minValue();let N=this.transformer(A),$=this.transformer(this.input.maxValue());return(this.type==="abs"||this.type==="square")&&($=Math.max(N,$),N=Math.max(0,A)),new H(this.type,this.input,N,$)}};let T=H;I(T,"MappedTypes",{abs:A=>Math.abs(A),square:A=>A*A,cube:A=>A*A*A,half_negative:A=>A>0?A:A*.5,quarter_negative:A=>A>0?A:A*.25,squeeze:A=>{const N=mr(A,-1,1);return N/2-N*N*N/24}}),e.Mapped=T;const L=["add","mul","min","max"];class F extends e{constructor(A,N,$,K,ie){super();I(this,"type");I(this,"argument1");I(this,"argument2");I(this,"min");I(this,"max");this.type=A,this.argument1=N,this.argument2=$,this.min=K,this.max=ie}compute(A){const N=this.argument1.compute(A);switch(this.type){case"add":return N+this.argument2.compute(A);case"mul":return N===0?0:N*this.argument2.compute(A);case"min":return N<this.argument2.minValue()?N:Math.min(N,this.argument2.compute(A));case"max":return N>this.argument2.maxValue()?N:Math.max(N,this.argument2.compute(A))}}mapAll(A){return A.map(new F(this.type,this.argument1.mapAll(A),this.argument2.mapAll(A)))}minValue(){var A;return(A=this.min)!=null?A:-1/0}maxValue(){var A;return(A=this.max)!=null?A:1/0}withMinMax(){const A=this.argument1.minValue(),N=this.argument2.minValue(),$=this.argument1.maxValue(),K=this.argument2.maxValue();(this.type==="min"||this.type==="max")&&(A>=K||N>=$)&&console.warn(`Creating a ${this.type} function between two non-overlapping inputs`);let ie,B;switch(this.type){case"add":ie=A+N,B=$+K;break;case"mul":ie=A>0&&N>0?A*N||0:$<0&&K<0?$*K||0:Math.min(A*K||0,N*$||0),B=A>0&&N>0?$*K||0:$<0&&K<0?A*N||0:Math.max(A*N||0,$*K||0);break;case"min":ie=Math.min(A,N),B=Math.min($,K);break;case"max":ie=Math.max(A,N),B=Math.max($,K);break}return new F(this.type,this.argument1,this.argument2,ie,B)}}e.Ap2=F;class X extends e{constructor(A){super();I(this,"spline");this.spline=A}compute(A){return this.spline.compute(A)}mapAll(A){const N=this.spline.mapAll($=>$ instanceof e?$.mapAll(A):$);return N.calculateMinMax(),A.map(new X(N))}minValue(){return this.spline.min()}maxValue(){return this.spline.max()}}e.Spline=X;class V extends e{constructor(A,N,$,K){super();I(this,"fromY");I(this,"toY");I(this,"fromValue");I(this,"toValue");this.fromY=A,this.toY=N,this.fromValue=$,this.toValue=K}compute(A){return hl(A.y,this.fromY,this.toY,this.fromValue,this.toValue)}minValue(){return Math.min(this.fromValue,this.toValue)}maxValue(){return Math.max(this.fromValue,this.toValue)}}e.YClampedGradient=V})(ye||(ye={}));class Ko{constructor(t,n){I(this,"level");I(this,"type");this.level=t,this.type=n}at(t){return t<this.level?this.type:ze.AIR}}var Vs;(function(e){function t(n){return{compute({x:r,y:i,z:o},a){if(!(a>0))return n(r,i,o).at(i)}}}e.createDisabled=t})(Vs||(Vs={}));const Xt=class{constructor(t,n,r,i,o,a,s){I(this,"noiseChunk");I(this,"router");I(this,"random");I(this,"globalFluidPicker");I(this,"minGridX");I(this,"minGridY");I(this,"minGridZ");I(this,"gridSizeX");I(this,"gridSizeZ");I(this,"gridSize");I(this,"aquiferCache");I(this,"aquiferLocationCache");this.noiseChunk=t,this.router=r,this.random=i,this.globalFluidPicker=s,this.minGridX=this.gridX(Mt.minBlockX(n))-1,this.gridSizeX=this.gridX(Mt.maxBlockX(n))+1-this.minGridX+1,this.minGridY=this.gridY(o)-1,this.minGridZ=this.gridZ(Mt.minBlockZ(n))-1,this.gridSizeZ=this.gridZ(Mt.maxBlockZ(n))+1-this.minGridZ+1;const l=this.gridY(o+a)+1-this.minGridY+1;this.gridSize=this.gridSizeX*l*this.gridSizeZ,this.aquiferCache=Array(this.gridSize).fill(void 0),this.aquiferLocationCache=Array(this.gridSize).fill(Dt.ZERO)}compute({x:t,y:n,z:r},i){if(i<=0){if(this.globalFluidPicker(t,n,r).at(n).is(ze.LAVA))return ze.LAVA;{const o=this.gridX(t-5),a=this.gridY(n+1),s=this.gridZ(r-5);let l=Number.MAX_SAFE_INTEGER,d=Number.MAX_SAFE_INTEGER,c=Number.MAX_SAFE_INTEGER,u=Dt.ZERO,f=Dt.ZERO,h=Dt.ZERO;for(let y=0;y<=1;y+=1)for(let k=-1;k<=1;k+=1)for(let C=0;C<=1;C+=1){const E=this.getLocation(o+y,a+k,s+C),M=Dt.magnitude(E);l>=M?(h=f,f=u,u=E,c=d,d=l,l=M):d>=M?(h=f,f=E,c=d,d=M):c>=M&&(h=E,c=M)}const w=this.getStatus(u),_=this.getStatus(f),g=this.getStatus(h),m=Xt.similarity(l,d),v=Xt.similarity(l,c),x=Xt.similarity(d,c);let b;if(w.at(n).is(ze.WATER)&&this.globalFluidPicker(t,n-1,r).at(n-1).is(ze.LAVA))b=1;else if(m>-1){const y=No(()=>this.router.barrier.compute(ye.context(t,n*.5,r))),k=this.calculatePressure(n,w,_,y),C=this.calculatePressure(n,w,g,y),E=this.calculatePressure(n,_,g,y),M=Math.max(k,C*Math.max(0,v),E*Math.max(x));b=Math.max(0,2*Math.max(0,m)*M)}else b=0;if(i+b<=0)return w.at(n)}}}static similarity(t,n){return 1-Math.abs(n-t)/25}calculatePressure(t,n,r,i){const o=n.at(t),a=r.at(t);if(o.is(ze.LAVA)&&a.is(ze.WATER)||o.is(ze.WATER)&&a.is(ze.LAVA))return 1;const s=Math.abs(n.level-r.level);if(s===0)return 0;const l=(n.level+r.level)/2,d=t+.5-l,c=s/2-Math.abs(d),u=d>0?c>0?c/1.5:c/2.5:c>-3?(c+3)/3:(c+3)/10;return u<-2||u>2?u:u+i()}getStatus(t){const[n,r,i]=t,o=this.getIndex(this.gridX(n),this.gridY(r),this.gridZ(i)),a=this.aquiferCache[o];if(a!==void 0)return a;const s=this.computeStatus(n,r,i);return this.aquiferCache[o]=s,s}computeStatus(t,n,r){const i=this.globalFluidPicker(t,n,r);let o=Number.MAX_SAFE_INTEGER,a=!1;for(const[w,_]of Xt.SURFACE_SAMPLING){const g=t+(_<<4),m=r+(_<<4),v=this.noiseChunk.getPreliminarySurfaceLevel(g,m);o=Math.min(o,v);const x=w===0&&_===0;if(x&&n-12>v+8)return i;if(x||n+12>v+8){const b=this.globalFluidPicker(g,v+8,m);if(!b.at(v+8).is(ze.AIR)){if(x)return b;a=!0}}}const s=a?hl(o+8-n,0,64,1,0):0,l=mr(this.router.fluidLevelFloodedness.compute(ye.context(t,n*.67,r)),-1,1);if(l>qo(s,1,0,-.3,.8))return i;if(l<=qo(s,1,0,-.8,.4))return new Ko(Number.MIN_SAFE_INTEGER,i.type);const d=Math.floor(n/40),c=this.router.fluidLevelSpread.compute(ye.context(Math.floor(t/16),d,Math.floor(r/16))),u=d*40+20+Math.floor(c/3)*3,f=Math.min(o,u),h=this.getFluidType(t,n,r,i.type,u);return new Ko(f,h)}getFluidType(t,n,r,i,o){if(o<=-10){const a=this.router.lava.compute(ye.context(Math.floor(t/64),Math.floor(n/40),Math.floor(r/64)));if(Math.abs(a)>.3)return ze.LAVA}return i}getLocation(t,n,r){const i=this.getIndex(t,n,r),o=this.aquiferLocationCache[i];if(Dt.equals(o,Dt.ZERO))return o;const a=this.random.at(t,n,r),s=Dt.create(t*Xt.X_SPACING+a.nextInt(10),n*Xt.Y_SPACING+a.nextInt(9),r*Xt.Z_SPACING+a.nextInt(10));return this.aquiferLocationCache[i]=s,s}getIndex(t,n,r){const i=t-this.minGridX,o=n-this.minGridY,a=r-this.minGridZ,s=(o*this.gridSizeZ+a)*this.gridSizeX+i;if(s<0||s>=this.gridSize)throw new Error(`Invalid aquifer index at ${t} ${n} ${r}: 0 <= ${s} < ${this.gridSize}`);return s}gridX(t){return Math.floor(t/Xt.X_SPACING)}gridY(t){return Math.floor(t/Xt.Y_SPACING)}gridZ(t){return Math.floor(t/Xt.Z_SPACING)}};let Dr=Xt;I(Dr,"X_SPACING",16),I(Dr,"Y_SPACING",12),I(Dr,"Z_SPACING",16),I(Dr,"SURFACE_SAMPLING",[[-2,-1],[-1,-1],[0,-1],[1,-1],[-3,0],[-2,0],[-1,0],[0,0],[1,0],[-2,1],[-1,1],[0,1],[1,1]]);class pl{constructor(t,n){I(this,"shift");I(this,"biomes");I(this,"n");if(this.shift=t,this.biomes=n,n.length===0)throw new Error("Cannot create checkerboard biome source without biomes");this.n=n.length}getBiome(t,n,r){const i=(((t>>this.shift)+(r>>this.shift))%this.n+this.n)%this.n;return ve.parse(this.biomes[i].toString())}static fromJson(t){var o,a,s;const n=(o=q.readObject(t))!=null?o:{},r=(a=q.readInt(n.scale))!=null?a:2;let i;return typeof n.biomes=="string"?i=[ve.parse(n.biomes)]:i=(s=q.readArray(n.biomes,l=>{var d;return ve.parse((d=q.readString(l))!=null?d:"")}))!=null?s:[],new pl(r+2,i)}}class gl{constructor(t){I(this,"biome");this.biome=t}getBiome(){return this.biome}static fromJson(t){var i,o;const n=(i=q.readObject(t))!=null?i:{},r=ve.parse((o=q.readString(n.biome))!=null?o:"plains");return new gl(r)}}var Wi;(function(e){function n(_,g,m,v,x,b){return new s(_,g,m,v,x,b)}e.target=n;function r(_,g,m,v,x,b,y){return new a(i(_),i(g),i(m),i(v),i(x),i(b),y)}e.parameters=r;function i(_,g){return typeof _=="number"?new o(_,g!=null?g:_):_}e.param=i;class o{constructor(g,m){I(this,"min");I(this,"max");this.min=g,this.max=m}distance(g){const m=(typeof g=="number"?g:g.min)-this.max,v=this.min-(typeof g=="number"?g:g.max);return m>0?m:Math.max(v,0)}union(g){return new o(Math.min(this.min,g.min),Math.max(this.max,g.max))}static fromJson(g){var x;if(typeof g=="number")return new o(g,g);const[m,v]=(x=q.readArray(g,b=>q.readNumber(b)))!=null?x:[];return new o(m!=null?m:0,v!=null?v:0)}}e.Param=o;class a{constructor(g,m,v,x,b,y,k){I(this,"temperature");I(this,"humidity");I(this,"continentalness");I(this,"erosion");I(this,"depth");I(this,"weirdness");I(this,"offset");this.temperature=g,this.humidity=m,this.continentalness=v,this.erosion=x,this.depth=b,this.weirdness=y,this.offset=k}fittness(g){return Vn(this.temperature.distance(g.temperature))+Vn(this.humidity.distance(g.humidity))+Vn(this.continentalness.distance(g.continentalness))+Vn(this.erosion.distance(g.erosion))+Vn(this.depth.distance(g.depth))+Vn(this.weirdness.distance(g.weirdness))+Vn(this.offset-g.offset)}space(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,new o(this.offset,this.offset)]}static fromJson(g){var v,x;const m=(v=q.readObject(g))!=null?v:{};return new a(o.fromJson(m.temperature),o.fromJson(m.humidity),o.fromJson(m.continentalness),o.fromJson(m.erosion),o.fromJson(m.depth),o.fromJson(m.weirdness),(x=q.readInt(m.offset))!=null?x:0)}}e.ParamPoint=a;class s{constructor(g,m,v,x,b,y){I(this,"temperature");I(this,"humidity");I(this,"continentalness");I(this,"erosion");I(this,"depth");I(this,"weirdness");this.temperature=g,this.humidity=m,this.continentalness=v,this.erosion=x,this.depth=b,this.weirdness=y}get offset(){return 0}toArray(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,this.offset]}}e.TargetPoint=s;class l{constructor(g){I(this,"things");I(this,"index");this.things=g,this.index=new c(g)}find(g){return this.index.search(g,(m,v)=>m.distance(v))}}e.Parameters=l;class d{constructor(g,m,v,x,b,y){I(this,"temperature");I(this,"humidity");I(this,"continentalness");I(this,"erosion");I(this,"depth");I(this,"weirdness");this.temperature=g,this.humidity=m,this.continentalness=v,this.erosion=x,this.depth=b,this.weirdness=y}static fromRouter(g){return new e.Sampler(g.temperature,g.vegetation,g.continents,g.erosion,g.depth,g.ridges)}sample(g,m,v){const x=ye.context(g<<2,m<<2,v<<2);return e.target(this.temperature.compute(x),this.humidity.compute(x),this.continentalness.compute(x),this.erosion.compute(x),this.depth.compute(x),this.weirdness.compute(x))}}e.Sampler=d;const w=class{constructor(g){I(this,"root");if(g.length===0)throw new Error("At least one point is required to build search tree");this.root=w.build(g.map(([m,v])=>new h(m,v)))}static build(g){if(g.length===1)return g[0];if(g.length<=w.CHILDREN_PER_NODE){const b=g.map(y=>{let k=0;for(let C=0;C<7;C+=1){const E=y.space[C];k+=Math.abs((E.min+E.max)/2)}return{key:k,node:y}}).sort((y,k)=>y.key-k.key).map(({node:y})=>y);return new f(b)}let m=1/0,v=-1,x=[];for(let b=0;b<7;++b){g=w.sort(g,b,!1),x=w.bucketize(g);let y=0;for(const k of x)y+=w.area(k.space);m>y&&(m=y,v=b)}return g=w.sort(g,v,!1),x=w.bucketize(g),x=w.sort(x,v,!0),new f(x.map(b=>w.build(b.children)))}static sort(g,m,v){return g.map(x=>{const b=x.space[m],y=(b.min+b.max)/2;return{key:v?Math.abs(y):y,node:x}}).sort((x,b)=>x.key-b.key).map(({node:x})=>x)}static bucketize(g){const m=[];let v=[];const x=Math.pow(10,Math.floor(Math.log(g.length-.01)/Math.log(10)));for(const b of g)v.push(b),!(v.length<x)&&(m.push(new f(v)),v=[]);return v.length!==0&&m.push(new f(v)),m}static area(g){let m=0;for(const v of g)m+=Math.abs(v.max-v.min);return m}search(g,m){return this.root.search(g.toArray(),m).thing()}};let c=w;I(c,"CHILDREN_PER_NODE",10),e.RTree=c;class u{constructor(g){I(this,"space");this.space=g}distance(g){let m=0;for(let v=0;v<7;v+=1)m+=Vn(this.space[v].distance(g[v]));return m}}e.RNode=u;class f extends u{constructor(m){super(f.buildSpace(m));I(this,"children");this.children=m}static buildSpace(m){let v=[...Array(7)].map(()=>new o(1/0,-1/0));for(const x of m)v=[...Array(7)].map((b,y)=>v[y].union(x.space[y]));return v}search(m,v){let x=1/0,b=null;for(const y of this.children){const k=v(y,m);if(x<=k)continue;const C=y.search(m,v),E=y==C?k:v(C,m);x<=E||(x=E,b=C)}return b}}e.RSubTree=f;class h extends u{constructor(m,v){super(m.space());I(this,"thing");this.thing=v}search(){return this}}e.RLeaf=h})(Wi||(Wi={}));class ml{constructor(t){I(this,"parameters");this.parameters=new Wi.Parameters(t)}getBiome(t,n,r,i){const o=i.sample(t,n,r);return this.parameters.find(o)}static fromJson(t){var o,a;const n=(o=q.readObject(t))!=null?o:{},i=((a=q.readArray(n.biomes,s=>{var l;return(d=>{var c;return{biome:ve.parse((c=q.readString(d.biome))!=null?c:"plains"),parameters:Wi.ParamPoint.fromJson(d.parameters)}})((l=q.readObject(s))!=null?l:{})}))!=null?a:[]).map(s=>[s.parameters,()=>s.biome]);return new ml(i)}}const ur=class{getBiome(t,n,r,i){const o=t<<2,a=n<<2,s=r<<2,l=o>>4,d=s>>4;if(l*l+d*d<=4096)return ur.END;const c=ye.context((l*2+1)*8,a,(d*2+1)*8),u=i.erosion.compute(c);return u>.25?ur.HIGHLANDS:u>=-.0625?ur.MIDLANDS:u>=-.21875?ur.BARRENS:ur.ISLANDS}static fromJson(t){return new ur}};let dr=ur;I(dr,"END",ve.create("the_end")),I(dr,"HIGHLANDS",ve.create("end_highlands")),I(dr,"MIDLANDS",ve.create("end_midlands")),I(dr,"ISLANDS",ve.create("small_end_islands")),I(dr,"BARRENS",ve.create("end_barrens"));var ed;(function(e){function t(n){var o,a;const r=(o=q.readObject(n))!=null?o:{};switch((a=q.readString(r.type))==null?void 0:a.replace(/^minecraft:/,"")){case"fixed":return gl.fromJson(n);case"checkerboard":return pl.fromJson(n);case"multi_noise":return ml.fromJson(n);case"the_end":return dr.fromJson(n);default:return{getBiome:()=>ve.create("plains")}}}e.fromJson=t})(ed||(ed={}));class sg{constructor(t,n,r,i,o,a,s,l,d){I(this,"cellCountXZ");I(this,"cellCountY");I(this,"cellNoiseMinY");I(this,"minX");I(this,"minZ");I(this,"settings");I(this,"cellWidth");I(this,"cellHeight");I(this,"firstCellX");I(this,"firstCellZ");I(this,"firstNoiseX");I(this,"firstNoiseZ");I(this,"noiseSizeXZ");I(this,"preliminarySurfaceLevel",new Map);I(this,"aquifer");I(this,"materialRule");I(this,"initialDensity");this.cellCountXZ=t,this.cellCountY=n,this.cellNoiseMinY=r,this.minX=o,this.minZ=a,this.settings=s,this.cellWidth=Zt.cellWidth(s),this.cellHeight=Zt.cellHeight(s),this.firstCellX=Math.floor(o/this.cellWidth),this.firstCellZ=Math.floor(a/this.cellWidth),this.firstNoiseX=o>>2,this.firstNoiseZ=a>>2,this.noiseSizeXZ=t*this.cellWidth>>2,this.aquifer=Vs.createDisabled(d);const c=i.router.finalDensity;this.materialRule=Us.fromList([u=>this.aquifer.compute(u,c.compute(u))]),this.initialDensity=i.router.initialDensityWithoutJaggedness}getFinalState(t,n,r){return this.materialRule({x:t,y:n,z:r})}getPreliminarySurfaceLevel(t,n){return Qr(this.preliminarySurfaceLevel,Mt.asLong(t,n),()=>{const r=t<<2,i=n<<2;for(let o=this.settings.minY+this.settings.height;o>=this.settings.minY;o-=this.cellHeight)if(this.initialDensity.compute(ye.context(r,o,i))>.390625)return o;return Number.MAX_SAFE_INTEGER})}}var Us;(function(e){function t(n){return r=>{for(const i of n){const o=i(r);if(o)return o}}}e.fromList=t})(Us||(Us={}));class r4{constructor(t,n){I(this,"biomeSource");I(this,"settings");I(this,"noiseChunkCache");I(this,"globalFluidPicker");this.biomeSource=t,this.settings=n,this.noiseChunkCache=new Map;const r=new Ko(-54,ze.LAVA),i=new Ko(n.seaLevel,n.defaultFluid);this.globalFluidPicker=(o,a,s)=>a<Math.min(-54,n.seaLevel)?r:i}fill(t,n,r=!1){var w;const i=Math.max(n.minY,this.settings.noise.minY),o=Math.min(n.maxY,this.settings.noise.minY+this.settings.noise.height),a=Zt.cellWidth(this.settings.noise),s=Zt.cellHeight(this.settings.noise),l=Math.floor(16/a),d=Math.floor(i/s),c=Math.floor((o-i)/s),u=Mt.minBlockX(n.pos),f=Mt.minBlockZ(n.pos),h=this.getOrCreateNoiseChunk(t,n);for(let _=0;_<l;_+=1)for(let g=0;g<(r?1:l);g+=1){let m=n.getOrCreateSection(n.sectionsCount-1);for(let v=c-1;v>=0;v-=1)for(let x=s-1;x>=0;x-=1){const b=(d+v)*s+x,y=b&15,k=n.getSectionIndex(b);n.getSectionIndex(m.minBlockY)!==k&&(m=n.getOrCreateSection(k));for(let C=0;C<a;C+=1){const E=u+_*a+C,M=E&15;for(let S=0;S<(r?1:a);S+=1){const T=f+g*a+S,L=T&15,F=(w=h.getFinalState(E,b,T))!=null?w:this.settings.defaultBlock;m.setBlockState(M,y,L,F)}}}}}buildSurface(t,n,r="minecraft:plains"){const i=this.getOrCreateNoiseChunk(t,n),o=Bs.create(this.settings.noise.minY,this.settings.noise.height);t.surfaceSystem.buildSurface(n,i,o,()=>r)}computeBiome(t,n,r,i){return this.biomeSource.getBiome(n,r,i,t.sampler)}getOrCreateNoiseChunk(t,n){return Qr(this.noiseChunkCache,Mt.toLong(n.pos),()=>{const r=Math.max(n.minY,this.settings.noise.minY),i=Math.min(n.maxY,this.settings.noise.minY+this.settings.noise.height),o=Zt.cellWidth(this.settings.noise),a=Zt.cellHeight(this.settings.noise),s=Math.floor(16/o),l=Math.floor(r/a),d=Math.floor((i-r)/a),c=Mt.minBlockX(n.pos),u=Mt.minBlockZ(n.pos);return new sg(s,d,l,t,c,u,this.settings.noise,this.settings.aquifersEnabled,this.globalFluidPicker)})}}const io=e=>{const t=e>>16&255,n=e>>8&255,r=e&255;return[t/256,n/256,r/256]},Or=[124/256,189/256,107/256],i4=io(6396257),o4=io(8431445),vo=io(4764952),sc=io(4159204),Ru=io(8431445),a4=io(2129968),s4=e=>{const t=e/15,n=t*.6+(t>0?.4:.3),r=mr(t*t*.7-.5,0,1),i=mr(t*t*.6-.7,0,1);return[n,r,i]},Du=e=>[e/8,1-e/32,e*64],lc={large_fern:()=>Or,tall_grass:()=>Or,grass_block:()=>Or,fern:()=>Or,grass:()=>Or,potted_fern:()=>Or,spruce_leaves:()=>i4,birch_leaves:()=>o4,oak_leaves:()=>vo,jungle_leaves:()=>vo,acacia_leaves:()=>vo,dark_oak_leaves:()=>vo,vine:()=>vo,water:()=>sc,bubble_column:()=>sc,cauldron:()=>sc,redstone_wire:e=>{var t;return s4(parseInt((t=e.power)!=null?t:"0"))},sugar_cane:()=>Or,attached_melon_stem:()=>Ru,attached_pumpkin_stem:()=>Ru,melon_stem:e=>{var t;return Du(parseInt((t=e.age)!=null?t:"0"))},pumpkin_stem:e=>{var t;return Du(parseInt((t=e.age)!=null?t:"0"))},lily_pad:()=>a4};var ds=1e-6,Jo=typeof Float32Array!="undefined"?Float32Array:Array,l4=Math.PI/180;function c4(e){return e*l4}Math.hypot||(Math.hypot=function(){for(var e=0,t=arguments.length;t--;)e+=arguments[t]*arguments[t];return Math.sqrt(e)});function Qo(){var e=new Jo(16);return Jo!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0),e[0]=1,e[5]=1,e[10]=1,e[15]=1,e}function Ck(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function Fu(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function xi(e,t,n){var r=n[0],i=n[1],o=n[2],a,s,l,d,c,u,f,h,w,_,g,m;return t===e?(e[12]=t[0]*r+t[4]*i+t[8]*o+t[12],e[13]=t[1]*r+t[5]*i+t[9]*o+t[13],e[14]=t[2]*r+t[6]*i+t[10]*o+t[14],e[15]=t[3]*r+t[7]*i+t[11]*o+t[15]):(a=t[0],s=t[1],l=t[2],d=t[3],c=t[4],u=t[5],f=t[6],h=t[7],w=t[8],_=t[9],g=t[10],m=t[11],e[0]=a,e[1]=s,e[2]=l,e[3]=d,e[4]=c,e[5]=u,e[6]=f,e[7]=h,e[8]=w,e[9]=_,e[10]=g,e[11]=m,e[12]=a*r+c*i+w*o+t[12],e[13]=s*r+u*i+_*o+t[13],e[14]=l*r+f*i+g*o+t[14],e[15]=d*r+h*i+m*o+t[15]),e}function Pu(e,t,n){var r=n[0],i=n[1],o=n[2];return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e[3]=t[3]*r,e[4]=t[4]*i,e[5]=t[5]*i,e[6]=t[6]*i,e[7]=t[7]*i,e[8]=t[8]*o,e[9]=t[9]*o,e[10]=t[10]*o,e[11]=t[11]*o,e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function d4(e,t,n,r){var i=r[0],o=r[1],a=r[2],s=Math.hypot(i,o,a),l,d,c,u,f,h,w,_,g,m,v,x,b,y,k,C,E,M,S,T,L,F,X,V;return s<ds?null:(s=1/s,i*=s,o*=s,a*=s,l=Math.sin(n),d=Math.cos(n),c=1-d,u=t[0],f=t[1],h=t[2],w=t[3],_=t[4],g=t[5],m=t[6],v=t[7],x=t[8],b=t[9],y=t[10],k=t[11],C=i*i*c+d,E=o*i*c+a*l,M=a*i*c-o*l,S=i*o*c-a*l,T=o*o*c+d,L=a*o*c+i*l,F=i*a*c+o*l,X=o*a*c-i*l,V=a*a*c+d,e[0]=u*C+_*E+x*M,e[1]=f*C+g*E+b*M,e[2]=h*C+m*E+y*M,e[3]=w*C+v*E+k*M,e[4]=u*S+_*T+x*L,e[5]=f*S+g*T+b*L,e[6]=h*S+m*T+y*L,e[7]=w*S+v*T+k*L,e[8]=u*F+_*X+x*V,e[9]=f*F+g*X+b*V,e[10]=h*F+m*X+y*V,e[11]=w*F+v*X+k*V,t!==e&&(e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e)}function u4(e,t,n){var r=Math.sin(n),i=Math.cos(n),o=t[4],a=t[5],s=t[6],l=t[7],d=t[8],c=t[9],u=t[10],f=t[11];return t!==e&&(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[4]=o*i+d*r,e[5]=a*i+c*r,e[6]=s*i+u*r,e[7]=l*i+f*r,e[8]=d*i-o*r,e[9]=c*i-a*r,e[10]=u*i-s*r,e[11]=f*i-l*r,e}function f4(e,t,n){var r=Math.sin(n),i=Math.cos(n),o=t[0],a=t[1],s=t[2],l=t[3],d=t[8],c=t[9],u=t[10],f=t[11];return t!==e&&(e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=o*i-d*r,e[1]=a*i-c*r,e[2]=s*i-u*r,e[3]=l*i-f*r,e[8]=o*r+d*i,e[9]=a*r+c*i,e[10]=s*r+u*i,e[11]=l*r+f*i,e}function h4(e,t,n){var r=Math.sin(n),i=Math.cos(n),o=t[0],a=t[1],s=t[2],l=t[3],d=t[4],c=t[5],u=t[6],f=t[7];return t!==e&&(e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=o*i+d*r,e[1]=a*i+c*r,e[2]=s*i+u*r,e[3]=l*i+f*r,e[4]=d*i-o*r,e[5]=c*i-a*r,e[6]=u*i-s*r,e[7]=f*i-l*r,e}function p4(e,t,n,r,i){var o=1/Math.tan(t/2),a;return e[0]=o/n,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=o,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,i!=null&&i!==1/0?(a=1/(r-i),e[10]=(i+r)*a,e[14]=2*i*r*a):(e[10]=-1,e[14]=-2*r),e}var g4=p4;function m4(e,t,n,r,i,o,a){var s=1/(t-n),l=1/(r-i),d=1/(o-a);return e[0]=-2*s,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*l,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*d,e[11]=0,e[12]=(t+n)*s,e[13]=(i+r)*l,e[14]=(a+o)*d,e[15]=1,e}var _4=m4;function lg(){var e=new Jo(3);return Jo!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function Ba(e,t,n){var r=new Jo(3);return r[0]=e,r[1]=t,r[2]=n,r}function $u(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e}function w4(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e}function v4(e,t){var n=t[0],r=t[1],i=t[2],o=n*n+r*r+i*i;return o>0&&(o=1/Math.sqrt(o)),e[0]=t[0]*o,e[1]=t[1]*o,e[2]=t[2]*o,e}function b4(e,t,n){var r=t[0],i=t[1],o=t[2],a=n[0],s=n[1],l=n[2];return e[0]=i*l-o*s,e[1]=o*a-r*l,e[2]=r*s-i*a,e}function x4(e,t,n){var r=t[0],i=t[1],o=t[2],a=n[3]*r+n[7]*i+n[11]*o+n[15];return a=a||1,e[0]=(n[0]*r+n[4]*i+n[8]*o+n[12])/a,e[1]=(n[1]*r+n[5]*i+n[9]*o+n[13])/a,e[2]=(n[2]*r+n[6]*i+n[10]*o+n[14])/a,e}function Ek(e,t){var n=e[0],r=e[1],i=e[2],o=t[0],a=t[1],s=t[2];return Math.abs(n-o)<=ds*Math.max(1,Math.abs(n),Math.abs(o))&&Math.abs(r-a)<=ds*Math.max(1,Math.abs(r),Math.abs(a))&&Math.abs(i-s)<=ds*Math.max(1,Math.abs(i),Math.abs(s))}(function(){var e=lg();return function(t,n,r,i,o,a){var s,l;for(n||(n=3),r||(r=0),i?l=Math.min(i*n+r,t.length):l=t.length,s=r;s<l;s+=n)e[0]=t[s],e[1]=t[s+1],e[2]=t[s+2],o(e,e,a),t[s]=e[0],t[s+1]=e[1],t[s+2]=e[2];return t}})();var td;(function(e){function t(r,i,o){let{up:a,down:s,north:l,east:d,south:c,west:u}=r;switch(o){case 90:[l,d,c,u]=[d,c,u,l];break;case 180:[l,d,c,u]=[c,u,l,d];break;case 270:[l,d,c,u]=[u,l,d,c]}switch(i){case 90:[a,l,s,c]=[l,s,c,a];break;case 180:[a,l,s,c]=[s,c,a,l];break;case 270:[a,l,s,c]=[c,a,l,s]}return{up:a,down:s,north:l,east:d,south:c,west:u}}e.rotate=t;function n(){return Object.create(null)}e.none=n})(td||(td={}));function y4(...e){let t=0;for(const i of e)t+=i.length;const n=new Float32Array(t);let r=0;for(const i of e)n.set(i,r),r+=i.length;return n}function Bu(e,t){const n=lg();for(let r=0;r<e.length;r+=3)n[0]=e[r],n[1]=e[r+1],n[2]=e[r+2],x4(n,n,t),e[r]=n[0],e[r+1]=n[1],e[r+2]=n[2]}const k4={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]},C4={x:[1,0,0],y:[0,1,0],z:[0,0,1]},gi=1.41421356237,E4={x:[1,gi,gi],y:[gi,1,gi],z:[gi,gi,1]},Ti=class{constructor(t,n,r,i,o,a){I(this,"id");I(this,"parent");I(this,"textures");I(this,"elements");I(this,"display");I(this,"guiLight");this.id=t,this.parent=n,this.textures=r,this.elements=i,this.display=o,this.guiLight=a}getDisplayBuffers(t,n,r,i){var d;const o=this.getBuffers(n,r,td.none(),i),a=(d=this.display)==null?void 0:d[t],s=Qo();Fu(s),xi(s,s,[8,8,8]),a!=null&&a.translation&&xi(s,s,a.translation),a!=null&&a.rotation&&(u4(s,s,a.rotation[0]*Math.PI/180),f4(s,s,a.rotation[1]*Math.PI/180),h4(s,s,-a.rotation[2]*Math.PI/180)),a!=null&&a.scale&&Pu(s,s,a.scale),xi(s,s,[-8,-8,-8]),Bu(o.position,s);const l=[];for(let c=0;c<o.position.length;c+=12){const u=Ba(o.position[c],o.position[c+1],o.position[c+2]),f=Ba(o.position[c+3],o.position[c+4],o.position[c+5]),h=Ba(o.position[c+6],o.position[c+7],o.position[c+8]);$u(f,f,u),$u(h,h,u),b4(f,f,h),v4(f,f),l.push(...f,...f,...f,...f)}return be(oe({},o),{normal:l})}getBuffers(t,n,r,i){var d;const o=[],a=[],s=[],l=[];for(const c of(d=this.elements)!=null?d:[]){const u=this.getElementBuffers(c,n,t,r,i);o.push(u.position),a.push(...u.texCoord),s.push(...u.tintColor),l.push(...u.index),n+=u.texCoord.length/2}return{position:y4(...o),texCoord:a,tintColor:s,index:l}}getElementBuffers(t,n,r,i,o){var x,b,y,k,C,E,M,S,T,L,F,X;const a=t.from[0],s=t.from[1],l=t.from[2],d=t.to[0],c=t.to[1],u=t.to[2],f=[],h=[],w=[],_=[],g=(V,O,j)=>{var ue,pe,Re,Se,Ue,rt,Ae,Me,Te,le;const[H,Q,D,A]=r.getTextureUV(this.getTexture(V.texture)),N=(D-H)/16,$=(A-Q)/16,K=N/16,ie=$/16;O[0]=((pe=(ue=V.uv)==null?void 0:ue[0])!=null?pe:O[0])*N+K,O[1]=((Se=(Re=V.uv)==null?void 0:Re[1])!=null?Se:O[1])*$+ie,O[2]=((rt=(Ue=V.uv)==null?void 0:Ue[2])!=null?rt:O[2])*N-K,O[3]=((Me=(Ae=V.uv)==null?void 0:Ae[3])!=null?Me:O[3])*$-ie;const B=k4[(Te=V.rotation)!=null?Te:0];h.push(H+O[B[0]],Q+O[B[1]],H+O[B[2]],Q+O[B[3]],H+O[B[4]],Q+O[B[5]],H+O[B[6]],Q+O[B[7]]);const J=((le=V.tintindex)!=null?le:-1)>=0?o!=null?o:[1,1,1]:[1,1,1];w.push(...J,...J,...J,...J),f.push(...j),_.push(n,n+1,n+2,n,n+2,n+3),n+=4};((b=(x=t.faces)==null?void 0:x.up)==null?void 0:b.texture)&&(!t.faces.up.cullface||!i[t.faces.up.cullface])&&g(t.faces.up,[a,16-u,d,16-l],[a,c,u,d,c,u,d,c,l,a,c,l]),((k=(y=t.faces)==null?void 0:y.down)==null?void 0:k.texture)&&(!t.faces.down.cullface||!i[t.faces.down.cullface])&&g(t.faces.down,[16-u,16-d,16-l,16-a],[a,s,l,d,s,l,d,s,u,a,s,u]),((E=(C=t.faces)==null?void 0:C.south)==null?void 0:E.texture)&&(!t.faces.south.cullface||!i[t.faces.south.cullface])&&g(t.faces.south,[a,16-c,d,16-s],[a,s,u,d,s,u,d,c,u,a,c,u]),((S=(M=t.faces)==null?void 0:M.north)==null?void 0:S.texture)&&(!t.faces.north.cullface||!i[t.faces.north.cullface])&&g(t.faces.north,[16-d,16-c,16-a,16-s],[d,s,l,a,s,l,a,c,l,d,c,l]),((L=(T=t.faces)==null?void 0:T.east)==null?void 0:L.texture)&&(!t.faces.east.cullface||!i[t.faces.east.cullface])&&g(t.faces.east,[16-u,16-c,16-l,16-s],[d,s,u,d,s,l,d,c,l,d,c,u]),((X=(F=t.faces)==null?void 0:F.west)==null?void 0:X.texture)&&(!t.faces.west.cullface||!i[t.faces.west.cullface])&&g(t.faces.west,[l,16-c,u,16-s],[a,s,l,a,s,u,a,c,u,a,c,l]);const m=Qo();if(Fu(m),t.rotation){const V=Ba(...t.rotation.origin);xi(m,m,V),d4(m,m,c4(t.rotation.angle),C4[t.rotation.axis]),t.rotation.rescale&&Pu(m,m,E4[t.rotation.axis]),w4(V,V),xi(m,m,V)}const v=new Float32Array(f);return Bu(v,m),{position:v,texCoord:h,tintColor:w,index:_}}getTexture(t){var n,r;for(;t.startsWith("#");)t=(r=(n=this.textures)==null?void 0:n[t.slice(1)])!=null?r:"";return ve.parse(t)}flatten(t){var r,i;if(!this.parent)return;const n=this.getParent(t);if(!n){console.warn(`parent ${this.parent} does not exist!`),this.parent=void 0;return}n.flatten(t),this.elements||(this.elements=n.elements),this.textures||(this.textures={}),Object.keys((r=n.textures)!=null?r:{}).forEach(o=>{this.textures[o]||(this.textures[o]=n.textures[o])}),this.display||(this.display={}),Object.keys((i=n.display)!=null?i:{}).forEach(o=>{var s;const a=o;this.display[a]?Object.keys((s=n.display[a])!=null?s:{}).forEach(l=>{const d=l;this.display[a][d]||(this.display[a][d]=n.display[a][d])}):this.display[a]=n.display[a]}),this.guiLight||(this.guiLight=n.guiLight),this.parent=void 0}getParent(t){return this.parent?this.parent.equals(Ti.BUILTIN_GENERATED)?new Ti(Ti.BUILTIN_GENERATED,void 0,void 0,[{from:[0,0,0],to:[16,16,0],faces:{south:{texture:"#layer0",tintindex:0}}}]):t.getBlockModel(this.parent):null}static fromJson(t,n){const r=n.parent===void 0?void 0:ve.parse(n.parent);return new Ti(ve.parse(t),r,n.textures,n.elements,n.display)}};let us=Ti;I(us,"BUILTIN_GENERATED",ve.create("builtin/generated"));class A4{constructor(t,n,r){I(this,"gl");I(this,"program");this.gl=t,this.program=this.initShaderProgram(n,r)}getProgram(){return this.program}initShaderProgram(t,n){const r=this.loadShader(this.gl.VERTEX_SHADER,t),i=this.loadShader(this.gl.FRAGMENT_SHADER,n),o=this.gl.createProgram();if(this.gl.attachShader(o,r),this.gl.attachShader(o,i),this.gl.linkProgram(o),!this.gl.getProgramParameter(o,this.gl.LINK_STATUS))throw new Error(`Unable to link shader program: ${this.gl.getProgramInfoLog(o)}`);return o}loadShader(t,n){const r=this.gl.createShader(t);if(this.gl.shaderSource(r,n),this.gl.compileShader(r),!this.gl.getShaderParameter(r,this.gl.COMPILE_STATUS)){const i=new Error(`Compiling ${t===this.gl.VERTEX_SHADER?"vertex":"fragment"} shader: ${this.gl.getShaderInfoLog(r)}`);throw this.gl.deleteShader(r),i}return r}}const S4=` + attribute vec4 vertPos; + attribute vec2 texCoord; + attribute vec3 tintColor; + attribute vec3 normal; + + uniform mat4 mView; + uniform mat4 mProj; + + varying highp vec2 vTexCoord; + varying highp vec3 vTintColor; + varying highp float vLighting; + + void main(void) { + gl_Position = mProj * mView * vertPos; + vTexCoord = texCoord; + vTintColor = tintColor; + vLighting = normal.y * 0.2 + abs(normal.z) * 0.1 + 0.8; + } +`,I4=` + precision highp float; + varying highp vec2 vTexCoord; + varying highp vec3 vTintColor; + varying highp float vLighting; + + uniform sampler2D sampler; + + void main(void) { + vec4 texColor = texture2D(sampler, vTexCoord); + if(texColor.a < 0.01) discard; + gl_FragColor = vec4(texColor.xyz * vTintColor * vLighting, texColor.a); + } +`;class M4{constructor(t){I(this,"gl");I(this,"shaderProgram");I(this,"projMatrix");I(this,"activeShader");this.gl=t,this.shaderProgram=new A4(t,S4,I4).getProgram(),this.activeShader=this.shaderProgram,this.projMatrix=this.getPerspective(),this.initialize()}setViewport(t,n,r,i){this.gl.viewport(t,n,r,i),this.projMatrix=this.getPerspective()}getPerspective(){const t=70*Math.PI/180,n=this.gl.canvas.clientWidth/this.gl.canvas.clientHeight,r=Qo();return g4(r,t,n,.1,500),r}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)}setShader(t){this.gl.useProgram(t),this.activeShader=t}setVertexAttr(t,n,r){const i=this.gl.getAttribLocation(this.activeShader,t);this.gl.bindBuffer(this.gl.ARRAY_BUFFER,r),this.gl.vertexAttribPointer(i,n,this.gl.FLOAT,!1,0,0),this.gl.enableVertexAttribArray(i)}setUniform(t,n){const r=this.gl.getUniformLocation(this.activeShader,t);this.gl.uniformMatrix4fv(r,!1,n)}setTexture(t){this.gl.activeTexture(this.gl.TEXTURE0),this.gl.bindTexture(this.gl.TEXTURE_2D,t)}createBuffer(t,n){const r=this.gl.createBuffer();if(r===null)throw new Error("Renderer Error: Cannot create new buffer");return this.gl.bindBuffer(t,r),this.gl.bufferData(t,n,this.gl.DYNAMIC_DRAW),r}updateBuffer(t,n,r){this.gl.bindBuffer(n,t),this.gl.bufferData(n,r,this.gl.STATIC_DRAW)}createAtlasTexture(t){const n=this.gl.createTexture();return this.gl.bindTexture(this.gl.TEXTURE_2D,n),this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.RGBA,this.gl.RGBA,this.gl.UNSIGNED_BYTE,t),this.gl.generateMipmap(this.gl.TEXTURE_2D),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.NEAREST),n}prepareDraw(t){this.setUniform("mView",t),this.setUniform("mProj",this.projMatrix)}drawBuffers(t){this.setVertexAttr("vertPos",3,t.position),this.setVertexAttr("texCoord",2,t.texCoord),this.setVertexAttr("tintColor",3,t.tintColor),this.setVertexAttr("normal",3,t.normal),this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,t.index),this.gl.drawElements(this.gl.TRIANGLES,t.length,this.gl.UNSIGNED_SHORT,0)}}class T4 extends M4{constructor(n,r,i,o){super(n);I(this,"item");I(this,"resources");I(this,"buffers");I(this,"tint");I(this,"atlasTexture");this.item=r,this.resources=i,this.buffers=this.getItemBuffers(),this.tint=o==null?void 0:o.tint,this.atlasTexture=this.createAtlasTexture(this.resources.getTextureAtlas())}setItem(n){this.item=n,this.buffers=this.getItemBuffers()}getItemBuffers(){var o;const n=this.resources.getBlockModel(this.item.withPrefix("item/"));if(!n)throw new Error(`Item model for ${this.item.toString()} does not exist`);let r=this.tint;!r&&this.item.namespace===ve.DEFAULT_NAMESPACE&&(r=(o=lc[this.item.path])==null?void 0:o.call(lc,{}));const i=n.getDisplayBuffers("gui",this.resources,0,r);return{position:this.createBuffer(this.gl.ARRAY_BUFFER,i.position),texCoord:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(i.texCoord)),tintColor:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(i.tintColor)),normal:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(i.normal)),index:this.createBuffer(this.gl.ELEMENT_ARRAY_BUFFER,new Uint16Array(i.index)),length:i.index.length}}getPerspective(){const n=Qo();return _4(n,0,16,0,16,.1,500),n}drawItem(){const n=Qo();xi(n,n,[0,0,-32]),this.setShader(this.shaderProgram),this.setTexture(this.atlasTexture),this.prepareDraw(n),this.drawBuffers(this.buffers)}}class Bi{constructor(t,n){I(this,"img");I(this,"idMap");I(this,"part");if(this.img=t,this.idMap=n,!Xc(t.width)||!Xc(t.height))throw new Error(`Expected texture atlas dimensions to be powers of two, got ${t.width}x${t.height}.`);this.part=16/t.width}getTextureAtlas(){return this.img}getTextureUV(t){var n;return(n=this.idMap[t.toString()])!=null?n:[0,0,this.part,this.part]}static async fromBlobs(t){const n=Math.sqrt(Object.keys(t).length+1),r=Fs(n),i=r*16,o=1/r,a=document.createElement("canvas");a.width=i,a.height=i;const s=a.getContext("2d");this.drawInvalidTexture(s);const l={};let d=1;return await Promise.all(Object.keys(t).map(async c=>{const u=d%r,f=Math.floor(d/r);d+=1,l[c]=[o*u,o*f,o*u+o,o*f+o];const h=await createImageBitmap(t[c]);s.drawImage(h,0,0,16,16,16*u,16*f,16,16)})),new Bi(s.getImageData(0,0,i,i),l)}static empty(){const t=document.createElement("canvas");t.width=16,t.height=16;const n=t.getContext("2d");return Bi.drawInvalidTexture(n),new Bi(n.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)}}class L4{constructor(t,n){I(this,"seed");I(this,"noiseCache");I(this,"randomCache");I(this,"random");I(this,"aquiferRandom");I(this,"oreRandom");I(this,"surfaceSystem");I(this,"router");I(this,"sampler");this.seed=n,this.noiseCache=new Map,this.randomCache=new Map,this.random=(t.legacyRandomSource?new gt(n):Ge.create(n)).forkPositional(),this.aquiferRandom=this.random.fromHashOf(ve.create("aquifer").toString()).forkPositional(),this.oreRandom=this.random.fromHashOf(ve.create("ore").toString()).forkPositional(),this.surfaceSystem=new og(t.surfaceRule,t.defaultBlock,n),this.router=Er.mapAll(t.noiseRouter,this.createVisitor(t.noise,t.legacyRandomSource)),this.sampler=Wi.Sampler.fromRouter(this.router)}createVisitor(t,n){const r=new Map,i=a=>{const s=a.key();if(s===void 0)throw new Error("Cannot create noise without key");if(n){if(s.equals(ve.create("temperature")))return new Mn(new gt(this.seed+BigInt(0)),Rn.create(-7,[1,1]));if(s.equals(ve.create("vegetation")))return new Mn(new gt(this.seed+BigInt(1)),Rn.create(-7,[1,1]));if(s.equals(ve.create("offset")))return new Mn(this.random.fromHashOf("offset"),Rn.create(0,[0]))}return this.getOrCreateNoise(s)},o={map:a=>{if(a instanceof ye.HolderHolder){const s=a.holder.key();if(s!==void 0&&r.has(s.toString()))return r.get(s.toString());{const l=a.holder.value().mapAll(o);return s!==void 0&&r.set(s.toString(),l),l}}return a instanceof ye.Interpolated?a.withCellSize(Zt.cellWidth(t),Zt.cellHeight(t)):a instanceof ye.ShiftedNoise?new ye.ShiftedNoise(a.shiftX,a.shiftY,a.shiftZ,a.xzScale,a.yScale,a.noiseData,i(a.noiseData)):a instanceof ye.Noise?new ye.Noise(a.xzScale,a.yScale,a.noiseData,i(a.noiseData)):a instanceof ye.ShiftNoise?a.withNewNoise(i(a.noiseData)):a instanceof ye.WeirdScaledSampler?new ye.WeirdScaledSampler(a.input,a.rarityValueMapper,a.noiseData,i(a.noiseData)):a instanceof ye.OldBlendedNoise?new ye.OldBlendedNoise(a.xzScale,a.yScale,a.xzFactor,a.yFactor,a.smearScaleMultiplier,new ig(this.random.fromHashOf(ve.create("terrain").toString()),a.xzScale,a.yScale,a.xzFactor,a.yFactor,a.smearScaleMultiplier)):a instanceof ye.EndIslands?new ye.EndIslands(this.seed):a instanceof ye.Mapped||a instanceof ye.Ap2?a.withMinMax():a}};return o}getOrCreateNoise(t){const n=Hr.REGISTRY.getOrThrow(ve.create("worldgen/noise"));return Qr(this.noiseCache,t.toString(),r=>new Mn(this.random.fromHashOf(r),n.getOrThrow(t)))}getOrCreateRandom(t){return Qr(this.randomCache,t.toString(),n=>this.random.fromHashOf(n).forkPositional())}}var zu=Object.freeze(Object.defineProperty({__proto__:null,get BlockPos(){return Dt},BlockState:ze,Chunk:Qx,get ChunkPos(){return Mt},ChunkSection:Ii,get Direction(){return Kt},get Holder(){return ei},Identifier:ve,PalettedContainer:W2,Registry:Hr,Structure:Zd,get MinMaxNumberFunction(){return Ps},get CubicSpline(){return $s},BlendedNoise:ig,ImprovedNoise:Jc,NormalNoise:Mn,get NoiseParameters(){return Rn},PerlinNoise:Ye,PerlinSimplexNoise:n4,SimplexNoise:xt,LegacyRandom:gt,LegacyPositionalRandom:ng,XoroshiroRandom:Ge,XoroshiroPositionalRandom:rg,square:Vn,clamp:mr,lerp:Qn,lerp2:Rs,lerp3:q2,lazyLerp:Ro,lazyLerp2:qc,lazyLerp3:X2,clampedLerp:fl,inverseLerp:Gd,smoothstep:cs,map:qo,clampedMap:hl,binarySearch:K2,getSeed:Yd,longfromBytes:Ds,isPowerOfTwo:Xc,upperPowerOfTwo:Fs,get Json(){return q},lazy:No,computeIfAbsent:Qr,FluidStatus:Ko,get Aquifer(){return Vs},NoiseAquifer:Dr,get BiomeSource(){return ed},CheckerboardBiomeSource:pl,get Climate(){return Wi},FixedBiomeSource:gl,MultiNoiseBiomeSource:ml,get DensityFunction(){return ye},NoiseChunk:sg,get MaterialRule(){return Us},NoiseChunkGenerator:r4,get NoiseGeneratorSettings(){return js},get NoiseRouter(){return Er},get NoiseSettings(){return Zt},get NoiseSlideSettings(){return Qc},RandomState:L4,SurfaceSystem:og,SurfaceContext:ag,get SurfaceRule(){return Xo},get SurfaceCondition(){return zs},get VerticalAnchor(){return $i},get WorldgenContext(){return Bs},get WorldgenRegistries(){return Ar}},Symbol.toStringTag,{value:"Module"}));const cc=new Set(["minecraft:worldgen/noise","minecraft:worldgen/density_function","minecraft:worldgen/noise_settings"]);class O4{constructor(){this.d=zu,this.deepslateCache=new Map,this.Z=0,this.DEBUG=!1,this.chunksCache=[],this.biomeCache=new Map,this.presetCache=new Map}async loadVersion(t,n){if(this.loadedVersion===t){this.applyProjectData(t,n);return}return(this.loadingVersion!==t||!this.loadingPromise)&&(this.loadingVersion=t,this.loadingPromise=this.doLoadVersion(t,n)),this.loadingPromise}async doLoadVersion(t,n){const r=this.deepslateCache.get(t);r?this.d=r:(mt(t,"1.19")?this.d=zu:mt(t,"1.18.2")?this.d=await ke(()=>import("./deepslate.esm.666d0ed0.js"),[]):this.d=await ke(()=>import("./deepslate.esm.feae856d.js"),[]),mt(t,"1.19")?await Promise.all(this.d.Registry.REGISTRY.map(async(i,o)=>{if(cc.has(i.toString())){const a=await Vc(t,i.path);for(const[s,l]of a.entries())o.register(this.d.Identifier.parse(s),o.parse(l),!0)}})):mt(t,"1.18.2")&&await Promise.all([...cc].map(async i=>{const o=await Vc(t,i.replace(/^minecraft:/,""));for(const[a,s]of o.entries())i==="minecraft:worldgen/noise"?this.d.WorldgenRegistries.NOISE.register(this.d.Identifier.parse(a),this.d.NoiseParameters.fromJson(s),!0):i==="minecraft:worldgen/density_function"&&this.d.WorldgenRegistries.DENSITY_FUNCTION.register(this.d.Identifier.parse(a),this.d.DensityFunction.fromJson(s),!0)})),this.deepslateCache.set(t,this.d)),this.applyProjectData(t,n),this.loadedVersion=t,this.loadingVersion=void 0}applyProjectData(t,n){mt(t,"1.19")&&this.d.Registry.REGISTRY.forEach((r,i)=>{var o;if(cc.has(r.toString())){i.clear();for(const[a,s]of Object.entries((o=n==null?void 0:n[r.path])!=null?o:{}))i.register(this.d.Identifier.parse(a),i.parse(s))}})}async loadChunkGenerator(t,n,r){const i=[t,`${r}`,n];if(!Yi(this.cacheState,i)){const o=this.createNoiseSettings(t),a=await this.createBiomeSource(o,n,r),s=this.isVersion("1.19")?new this.d.NoiseChunkGenerator(a,o):new this.d.NoiseChunkGenerator(r,a,o);this.settingsCache=o.noise,this.generatorCache=s,this.isVersion("1.19")?this.randomStateCache=new this.d.RandomState(o,r):this.randomStateCache=void 0,this.biomeSourceCache={getBiome:(l,d,c)=>a.getBiome(l,d,c,void 0)},this.chunksCache=[],this.biomeCache=new Map,this.cacheState=ol(i)}}async createBiomeSource(t,n,r){var i,o,a;if(this.loadedVersion&&gn(n)&&typeof n.preset=="string"){const s=this.loadedVersion,l=n.preset.replace(/^minecraft:/,""),d=await nv(this.presetCache,`${s}-${l}`,async()=>(await Wp(s,"dimension",l==="overworld"?"overworld":"the_nether")).generator.biome_source.biomes);n={type:n.type,biomes:d}}if(this.isVersion("1.19"))return this.d.BiomeSource.fromJson(n);{const s=gn(n)?n:{},l=typeof s.type=="string"?s.type.replace(/^minecraft:/,""):void 0;switch(l){case"fixed":return new this.d.FixedBiome(this.isVersion("1.18.2")?this.d.Identifier.parse(s.biome):s.biome);case"checkerboard":const d=((i=s.scale)!=null?i:2)+2,c=(a=(o=s.biomes)==null?void 0:o.length)!=null?a:0;return{getBiome:(u,f,h)=>{var g;const w=(((u>>d)+(h>>d))%c+c)%c,_=(g=s.biomes)==null?void 0:g[w];return this.isVersion("1.18.2")?this.d.Identifier.parse(_):_}};case"multi_noise":if(this.isVersion("1.18")){const u=new this.d.Climate.Parameters(s.biomes.map(w=>{const _=this.isVersion("1.18.2")?this.d.Identifier.parse(w.biome):w.biome;return[this.d.Climate.ParamPoint.fromJson(w.parameters),()=>_]})),f=new this.d.MultiNoise(u);let h;if(this.isVersion("1.18.2")){const w=this.d.NoiseRouter.create({temperature:new this.d.DensityFunction.Noise(.25,0,this.d.Noises.TEMPERATURE),vegetation:new this.d.DensityFunction.Noise(.25,0,this.d.Noises.VEGETATION),continents:new this.d.DensityFunction.Noise(.25,0,this.d.Noises.CONTINENTALNESS),erosion:new this.d.DensityFunction.Noise(.25,0,this.d.Noises.EROSION),ridges:new this.d.DensityFunction.Noise(.25,0,this.d.Noises.RIDGE)});h=this.d.Climate.Sampler.fromRouter(this.d.NoiseRouter.withSettings(w,t,r))}else{const w=new this.d.NoiseSampler(this.d.NoiseSettings.fromJson(null),!0,r,!0);h=(_,g,m)=>w.sample(_,g,m)}return{getBiome:(w,_,g)=>f.getBiome(w,_,g,h)}}else{const u=["altitude","temperature","humidity","weirdness"].map((f,h)=>{var _;const w=s[`${f}_noise`];return w.firstOctave=_t((_=w.firstOctave)!=null?_:-7,-100,-1),new this.d.NormalNoise(new this.d.LegacyRandom(r+BigInt(h)),w)});return!Array.isArray(s.biomes)||s.biomes.length===0?{getBiome:()=>this.d.Identifier.create("unknown")}:{getBiome:(f,h,w)=>{const _=u.map(v=>v.sample(f,w,0));let g=1/0,m="unknown";for(const{biome:v,parameters:x}of s.biomes){const b=go(x.altitude-_[0])+go(x.temperature-_[1])+go(x.humidity-_[2])+go(x.weirdness-_[3])+go(x.offset);b<g&&(g=b,m=v)}return m}}}default:throw new Error(`Unsupported biome source ${l}`)}}}createNoiseSettings(t){return typeof t=="string"?this.isVersion("1.19")?this.d.WorldgenRegistries.NOISE_SETTINGS.getOrThrow(this.d.Identifier.parse(t)):this.d.NoiseGeneratorSettings.fromJson(void 0):this.d.NoiseGeneratorSettings.fromJson(t)}generateChunks(t,n,r="unknown"){if(t=Math.floor(t),!this.settingsCache)throw new Error("Tried to generate chunks before settings are loaded");const i=this.settingsCache.minY,o=this.settingsCache.height;return[...Array(Math.ceil(n/16)+1)].map((a,s)=>{const l=(t>>4)+s,d=this.chunksCache.find(u=>u.pos[0]===l);if(d)return d;const c=new this.d.Chunk(i,o,this.d.ChunkPos.create(l,this.Z>>4));if(!this.generatorCache)throw new Error("Tried to generate chunks before generator is loaded");if(mt(this.loadedVersion,"1.19")){if(!this.randomStateCache)throw new Error("Tried to generate chunks before random state is loaded");this.generatorCache.fill(this.randomStateCache,c,!0),this.generatorCache.buildSurface(this.randomStateCache,c,r)}else this.generatorCache.fill(c,!0),this.generatorCache.buildSurface(c,r);return this.chunksCache.push(c),c})}fillBiomes(t,n,r,i,o=1,a=64){if(!this.generatorCache||!this.settingsCache)throw new Error("Tried to fill biomes before generator is loaded");const s=a-this.settingsCache.minY>>2,l=t>>2,d=n>>2,c=r>>2,u=i>>2,f=Math.floor((d-l)/o),h=Math.floor((u-c)/o),w=new Qw,_=new Int8Array(f*h);let g=0,m=0;for(let v=l;v<d;v+=o)for(let x=c;x<u;x+=o){const b=`${v}:${s}:${x}`;let y=this.biomeCache.get(b);if(!y){if(this.DEBUG)y=this.computeDebugBiome(v,x);else if(this.isVersion("1.19")){if(!this.randomStateCache)throw new Error("Tried to compute biomes before random state is loaded");y=this.generatorCache.computeBiome(this.randomStateCache,v,s,x).toString()}else{if(!this.biomeSourceCache)throw new Error("Tried to compute biomes before biome source is loaded");y=this.biomeSourceCache.getBiome(v,s,x).toString()}this.biomeCache.set(b,y)}_[m++]=w.computeIfAbsent(y,()=>g++)}return{palette:w.backward,data:_,width:f,height:h}}computeDebugBiome(t,n){return t>0?n>0?"minecraft:plains":"minecraft:forest":n>0?"minecraft:badlands":"minecraft:desert"}loadDensityFunction(t,n){if(this.isVersion("1.19")){const r=this.d.NoiseGeneratorSettings.create({noise:{minY:-64,height:384,xzSize:1,ySize:2},noiseRouter:this.d.NoiseRouter.create({finalDensity:this.d.DensityFunction.fromJson(t)})});return this.settingsCache=r.noise,new this.d.RandomState(r,n).router.finalDensity}else{const r=this.d.XoroshiroRandom.create(n).forkPositional(),i=this.d.NoiseSettings.fromJson({min_y:-64,height:384,size_horizontal:1,size_vertical:2,sampling:{xz_scale:1,y_scale:1,xz_factor:80,y_factor:160},bottom_slide:{target:.1171875,size:3,offset:0},top_slide:{target:-.078125,size:2,offset:8},terrain_shaper:{offset:.044,factor:4,jaggedness:0}});return this.settingsCache=i,this.d.DensityFunction.fromJson(t).mapAll(new this.d.NoiseRouter.Visitor(r,i))}}getNoiseSettings(){if(!this.settingsCache)throw new Error("Tried to access noise settings when they are not loaded");return this.settingsCache}getBlockState(t,n){t=Math.floor(t),n=Math.floor(n);const r=this.chunksCache.find(i=>this.d.ChunkPos.minBlockX(i.pos)<=t&&this.d.ChunkPos.maxBlockX(i.pos)>=t);return r==null?void 0:r.getBlockState(this.d.BlockPos.create(t,n,this.Z))}isVersion(t,n){if(!this.loadedVersion)throw new Error("No deepslate version loaded");return mt(this.loadedVersion,t,n)}}const Tt=new O4;class N4{constructor(t){this.settings={},this.chunkWidth=4,this.chunkHeight=4,this.chunkCountY=32,this.biomeDepth=.1,this.biomeScale=.2,this.noiseColumnCache=[],this.xOffset=0;const n=new gt(t);this.minLimitPerlinNoise=new Ye(n,-15,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),this.maxLimitPerlinNoise=new Ye(n,-15,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),this.mainPerlinNoise=new Ye(n,-7,[1,1,1,1,1,1,1,1]),this.depthNoise=new Ye(n,-15,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1])}reset(t,n,r,i,o){this.settings=t,this.chunkWidth=t.size_horizontal*4,this.chunkHeight=t.size_vertical*4,this.chunkCountY=Math.floor(t.height/this.chunkHeight),t.amplified&&n>0&&(n=1+n*2,r=1+r*4),this.biomeDepth=.265625*(n*.5-.125),this.biomeScale=96/(r*.9+.1),this.noiseColumnCache=Array(o).fill(null),this.xOffset=i}iterateNoiseColumn(t){const n=Array(this.chunkCountY*this.chunkHeight),r=Math.floor(t/this.chunkWidth),i=Math.floor(t%this.chunkWidth)/this.chunkWidth,o=this.fillNoiseColumn(r),a=this.fillNoiseColumn(r+1);for(let s=this.chunkCountY-1;s>=0;s-=1)for(let l=this.chunkHeight;l>=0;l-=1){const d=l/this.chunkHeight,c=s*this.chunkHeight+l;n[c]=Jw(d,i,o[s],o[s+1],a[s],a[s+1])}return n}fillNoiseColumn(t){const n=this.noiseColumnCache[t-this.xOffset];if(n)return n;const r=Array(this.chunkCountY+1),i=684.412*this.settings.sampling.xz_scale,o=684.412*this.settings.sampling.y_scale,a=i/this.settings.sampling.xz_factor,s=o/this.settings.sampling.y_factor,l=this.settings.random_density_offset?this.getRandomDensity(t):0;for(let d=0;d<=this.chunkCountY;d+=1){let c=this.sampleAndClampNoise(t,d,this.mainPerlinNoise.getOctaveNoise(0).zo,i,o,a,s);const h=((1-d*2/this.chunkCountY+l)*this.settings.density_factor+this.settings.density_offset+this.biomeDepth)*this.biomeScale;c+=h*(h>0?4:1),this.settings.top_slide.size>0&&(c=jl(this.settings.top_slide.target,c,(this.chunkCountY-d-this.settings.top_slide.offset)/this.settings.top_slide.size)),this.settings.bottom_slide.size>0&&(c=jl(this.settings.bottom_slide.target,c,(d-this.settings.bottom_slide.offset)/this.settings.bottom_slide.size)),r[d]=c}return this.noiseColumnCache[t-this.xOffset]=r,r}getRandomDensity(t){const n=this.depthNoise.sample(t*200,10,this.depthNoise.getOctaveNoise(0).zo,1,0,!0),i=(n<0?-n*.3:n)*24.575625-2;return i<0?i*.009486607142857142:Math.min(i,1)*.006640625}sampleAndClampNoise(t,n,r,i,o,a,s){let l=0,d=0,c=0,u=1;for(let f=0;f<16;f+=1){const h=Ye.wrap(t*i*u),w=Ye.wrap(n*o*u),_=Ye.wrap(r*i*u),g=o*u,m=this.minLimitPerlinNoise.getOctaveNoise(f);m&&(l+=m.sample(h,w,_,g,n*g)/u);const v=this.maxLimitPerlinNoise.getOctaveNoise(f);if(v&&(d+=v.sample(h,w,_,g,n*g)/u),f<8){const x=this.mainPerlinNoise.getOctaveNoise(f);x&&(c+=x.sample(Ye.wrap(t*a*u),Ye.wrap(n*s*u),Ye.wrap(r*a*u),s*u,n*s*u)/u)}u/=2}return jl(l/512,d/512,(c/10+1)/2)}}const R4={"minecraft:air":[150,160,170],"minecraft:water":[20,80,170],"minecraft:lava":[200,100,0],"minecraft:stone":[55,55,55],"minecraft:deepslate":[34,34,36],"minecraft:bedrock":[10,10,10],"minecraft:grass_block":[47,120,23],"minecraft:dirt":[64,40,8],"minecraft:gravel":[70,70,70],"minecraft:sand":[196,180,77],"minecraft:sandstone":[148,135,52],"minecraft:netherrack":[100,40,40],"minecraft:crimson_nylium":[144,22,22],"minecraft:warped_nylium":[28,115,113],"minecraft:basalt":[73,74,85],"minecraft:end_stone":[200,200,140]};async function D4(e,t,n){var a,s,l,d;if(mt(n.version,"1.18")){await Tt.loadVersion(n.version,_l(n.project));const c={type:"fixed",biome:n.biome};await Tt.loadChunkGenerator(P.DataModel.unwrapLists(e),c,n.seed),Tt.generateChunks(-n.offset,n.width);const u=Tt.getNoiseSettings(),f=t.data;for(let h=0;h<n.width;h+=1)for(let w=0;w<u.height;w+=1){const _=h*4+(u.height-w-1)*4*t.width,g=(a=Tt.getBlockState(h-n.offset,w+u.minY))!=null?a:ze.AIR,m=(s=R4[g.getName().toString()])!=null?s:[0,0,0];f[_]=m[0],f[_+1]=m[1],f[_+2]=m[2],f[_+3]=255}return}const r=new N4(n.seed);r.reset(e.noise,(l=n.biomeDepth)!=null?l:0,(d=n.biomeScale)!=null?d:0,n.offset,n.width);const i=t.data,o=t.width*4;for(let c=0;c<n.width;c+=1){const u=r.iterateNoiseColumn(c-n.offset).reverse();for(let f=0;f<e.noise.height;f+=1){const h=f*o+c*4,w=$4(u,f);i[h]=w,i[h+1]=w,i[h+2]=w,i[h+3]=255}}}function F4(e,t){return Tt.getBlockState(e,t)}async function P4(e,t,n){await Tt.loadVersion(n.version,_l(n.project));const r=Tt.loadDensityFunction(P.DataModel.unwrapLists(e),n.seed),i=Tt.getNoiseSettings(),o=Array(n.width*i.height);let a=1/0,s=-1/0;for(let d=0;d<n.width;d+=1)for(let c=0;c<i.height;c+=1){const u=d+(i.height-c-1)*n.width,f=r.compute(ye.context(d-n.offset,c,0));a=Math.min(a,f),s=Math.max(s,f),o[u]=f}const l=t.data;for(let d=0;d<n.width*i.height;d+=1){const c=Math.floor(hl(o[d],a,s,0,256));l[4*d]=c,l[4*d+1]=c,l[4*d+2]=c,l[4*d+3]=255}}function _l(e){return Object.fromEntries(["worldgen/noise_settings","worldgen/noise","worldgen/density_function"].map(t=>{const n=Object.fromEntries(e.files.filter(r=>r.type===t).map(r=>[r.id,r.data]));return[t,n]}))}function $4(e,t){return e[t]>0?0:e[t+1]>0?150:255}async function B4(e,t,n){await Tt.loadVersion(n.version,_l(n.project)),await Tt.loadChunkGenerator(P.DataModel.unwrapLists(n.settings),P.DataModel.unwrapLists(e),n.seed);const r=Math.max(1,Math.round(n.scale)),i=200*r,o=Math.round(-n.offset[0]*n.scale),a=Math.round(-n.offset[1]*n.scale),s=Math.floor(o-i/2),l=Math.floor(a-i/2),d=s+i,c=l+i,{palette:u,data:f,width:h,height:w}=Tt.fillBiomes(s*4,d*4,l*4,c*4,r*n.res,n.y);let _=0,g=0;for(let m=0;m<f.length;m+=1){const v=u.get(f[m]),x=j4(v!=null?v:"",n.biomeColors),b=g*h+_;t.data[b*4]=x[0],t.data[b*4+1]=x[1],t.data[b*4+2]=x[2],t.data[b*4+3]=255,g+=1,g>=w&&(g=0,_+=1)}}async function z4(e,t,n,r){await Tt.loadVersion(r.version,_l(r.project)),await Tt.loadChunkGenerator(P.DataModel.unwrapLists(r.settings),P.DataModel.unwrapLists(e),r.seed);const i=Math.max(1,Math.round(r.scale)),o=Math.round(-r.offset[0]*r.scale),a=Math.round(-r.offset[1]*r.scale),s=Math.floor(o+(t-100)*i),l=Math.floor(a+(n-100)*i),{palette:d,data:c}=Tt.fillBiomes(s*4,s*4+4,l*4,l*4+4,1,r.y);return{biome:d.get(c[0])}}function j4(e,t){var r;if(!e)return[128,128,128];const n=(r=t[e])!=null?r:cg[e];return n===void 0?Td(e):n}const cg={"minecraft:badlands":[217,69,21],"minecraft:badlands_plateau":[202,140,101],"minecraft:bamboo_jungle":[118,142,20],"minecraft:bamboo_jungle_hills":[59,71,10],"minecraft:basalt_deltas":[64,54,54],"minecraft:beach":[250,222,85],"minecraft:birch_forest":[48,116,68],"minecraft:birch_forest_hills":[31,95,50],"minecraft:cold_ocean":[32,32,112],"minecraft:crimson_forest":[221,8,8],"minecraft:dark_forest":[64,81,26],"minecraft:dark_forest_hills":[104,121,66],"minecraft:deep_cold_ocean":[32,32,56],"minecraft:deep_frozen_ocean":[64,64,144],"minecraft:deep_lukewarm_ocean":[0,0,64],"minecraft:deep_ocean":[0,0,48],"minecraft:deep_warm_ocean":[0,0,80],"minecraft:desert":[250,148,24],"minecraft:desert_hills":[210,95,18],"minecraft:desert_lakes":[255,188,64],"minecraft:end_barrens":[39,30,61],"minecraft:end_highlands":[232,244,178],"minecraft:end_midlands":[194,187,136],"minecraft:eroded_badlands":[255,109,61],"minecraft:flower_forest":[45,142,73],"minecraft:forest":[5,102,33],"minecraft:frozen_ocean":[112,112,214],"minecraft:frozen_river":[160,160,255],"minecraft:giant_spruce_taiga":[129,142,121],"minecraft:old_growth_spruce_taiga":[129,142,121],"minecraft:giant_spruce_taiga_hills":[109,119,102],"minecraft:giant_tree_taiga":[89,102,81],"minecraft:old_growth_pine_taiga":[89,102,81],"minecraft:giant_tree_taiga_hills":[69,79,62],"minecraft:gravelly_hills":[136,136,136],"minecraft:gravelly_mountains":[136,136,136],"minecraft:windswept_gravelly_hills":[136,136,136],"minecraft:ice_spikes":[180,220,220],"minecraft:jungle":[83,123,9],"minecraft:jungle_edge":[98,139,23],"minecraft:sparse_jungle":[98,139,23],"minecraft:jungle_hills":[44,66,5],"minecraft:lukewarm_ocean":[0,0,144],"minecraft:modified_badlands_plateau":[242,180,141],"minecraft:modified_gravelly_mountains":[120,152,120],"minecraft:modified_jungle":[123,163,49],"minecraft:modified_jungle_edge":[138,179,63],"minecraft:modified_wooded_badlands_plateau":[216,191,141],"minecraft:mountain_edge":[114,120,154],"minecraft:extreme_hills":[96,96,96],"minecraft:mountains":[96,96,96],"minecraft:windswept_hills":[96,96,96],"minecraft:mushroom_field_shore":[160,0,255],"minecraft:mushroom_fields":[255,0,255],"minecraft:nether_wastes":[191,59,59],"minecraft:ocean":[0,0,112],"minecraft:plains":[141,179,96],"minecraft:river":[0,0,255],"minecraft:savanna":[189,178,95],"minecraft:savanna_plateau":[167,157,100],"minecraft:shattered_savanna":[229,218,135],"minecraft:windswept_savanna":[229,218,135],"minecraft:shattered_savanna_plateau":[207,197,140],"minecraft:small_end_islands":[16,12,28],"minecraft:snowy_beach":[250,240,192],"minecraft:snowy_mountains":[160,160,160],"minecraft:snowy_taiga":[49,85,74],"minecraft:snowy_taiga_hills":[36,63,54],"minecraft:snowy_taiga_mountains":[89,125,114],"minecraft:snowy_tundra":[255,255,255],"minecraft:snowy_plains":[255,255,255],"minecraft:soul_sand_valley":[94,56,48],"minecraft:stone_shore":[162,162,132],"minecraft:stony_shore":[162,162,132],"minecraft:sunflower_plains":[181,219,136],"minecraft:swamp":[7,249,178],"minecraft:swamp_hills":[47,255,218],"minecraft:taiga":[11,102,89],"minecraft:taiga_hills":[22,57,51],"minecraft:taiga_mountains":[51,142,129],"minecraft:tall_birch_forest":[88,156,108],"minecraft:old_growth_birch_forest":[88,156,108],"minecraft:tall_birch_hills":[71,135,90],"minecraft:the_end":[59,39,84],"minecraft:the_void":[0,0,0],"minecraft:warm_ocean":[0,0,172],"minecraft:warped_forest":[73,144,123],"minecraft:wooded_badlands_plateau":[176,151,101],"minecraft:wooded_badlands":[176,151,101],"minecraft:wooded_hills":[34,85,28],"minecraft:wooded_mountains":[80,112,80],"minecraft:windswept_forest":[80,112,80],"minecraft:snowy_slopes":[140,195,222],"minecraft:lofty_peaks":[196,168,193],"minecraft:jagged_peaks":[196,168,193],"minecraft:snowcapped_peaks":[200,198,200],"minecraft:frozen_peaks":[200,198,200],"minecraft:stony_peaks":[82,92,103],"minecraft:grove":[150,150,189],"minecraft:meadow":[169,197,80],"minecraft:lush_caves":[112,255,79],"minecraft:dripstone_caves":[140,124,0],"minecraft:deep_dark":[10,14,19],"minecraft:mangrove_swamp":[36,196,142]},Fr=[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],ju=[[255,77,54],[59,118,255],[91,207,25],[217,32,245],[255,209,41],[52,204,209]];function V4(e,t,n){const r=new gt(n.seed),i={placements:[],features:[],random:r,biomeInfoNoise:new Ye(r.fork(),0,[1]),seaLevel:63,version:n.version,nextFloat:()=>r.nextFloat(),nextInt:a=>r.nextInt(a),nextGaussian:()=>Math.sqrt(-2*Math.log(1-r.nextFloat()))*Math.cos(2*Math.PI*r.nextFloat()),sampleInt(a){return U4(a,this)}};for(let a=0;a<n.size[0]/16;a+=1)for(let s=0;s<n.size[2]/16;s+=1)mt(n.version,void 0,"1.17")?yi([a*16,0,s*16],P.DataModel.unwrapLists(e),i):Y4([a*16,0,s*16],P.DataModel.unwrapLists(e.placement),i);const o=t.data;t.data.fill(255);for(const[a,s]of i.placements){if(a[0]<0||a[1]<0||a[2]<0||a[0]>=n.size[0]||a[1]>=n.size[1]||a[2]>=n.size[2])continue;const l=a[2]*(t.width*4)+a[0]*4,d=s<ju.length?ju[s]:Td(i.features[s]);o[l]=_t(50,205,d[0]),o[l+1]=_t(50,205,d[1]),o[l+2]=_t(50,205,d[2]),o[l+3]=255}for(let a=0;a<n.size[0];a+=1)for(let s=0;s<n.size[2];s+=1){if((Math.floor(a/16)+Math.floor(s/16))%2===0)continue;const l=s*(t.width*4)+a*4;for(let d=0;d<3;d+=1)o[l+d]=.85*o[l+d]}}function qi(e){return e.startsWith("minecraft:")?e.slice(10):e}function qt(e,t){return[[e[0],t,e[2]]]}function U4(e,t){var n,r;if(typeof e=="number")return e;if(e.base)return(r=e.base)!=null?r:1+t.nextInt(1+((n=e.spread)!=null?n:0));switch(qi(e.type)){case"constant":return e.value;case"uniform":return e.value.min_inclusive+t.nextInt(e.value.max_inclusive-e.value.min_inclusive+1);case"biased_to_bottom":return e.value.min_inclusive+t.nextInt(t.nextInt(e.value.max_inclusive-e.value.min_inclusive+1)+1);case"clamped":return _t(t.sampleInt(e.value.source),e.value.min_inclusive,e.value.max_inclusive);case"clamped_normal":const i=e.value.mean+t.nextGaussian()*e.value.deviation;return Math.floor(_t(e.value.min_inclusive,e.value.max_inclusive,i));case"weighted_list":const o=e.distribution.reduce((s,l)=>s+l.weight,0);let a=t.nextInt(o);for(const s of e.distribution)if(a-=s.weight,a<0)return t.sampleInt(s.data);return 0}return 1}function Cn(e,t){if(!gn(e))throw new Error("Invalid vertical anchor");if(e.absolute)return e.absolute;if(e.above_bottom)return e.above_bottom;if(e.below_top)return 256-e.below_top;throw new Error("Invalid vertical anchor")}function H4(e,t){var n,r,i,o;if(!gn(e))throw new Error("Invalid height provider");if(typeof e.type!="string")return Cn(e);switch(qi(e.type)){case"constant":return Cn(e.value);case"uniform":{const a=Cn(e.min_inclusive),s=Cn(e.max_inclusive);return a+t.nextInt(s-a+1)}case"biased_to_bottom":{const a=Cn(e.min_inclusive),s=Cn(e.max_inclusive),l=t.nextInt(s-a-((n=e.inner)!=null?n:1)+1);return a+t.nextInt(l+((r=e.inner)!=null?r:1))}case"very_biased_to_bottom":{const a=Cn(e.min_inclusive),s=Cn(e.max_inclusive),l=(i=e.inner)!=null?i:1,d=a+l+t.nextInt(s-a-l+1),c=a+t.nextInt(d-a);return a+t.nextInt(c-a+l)}case"trapezoid":{const a=Cn(e.min_inclusive),s=Cn(e.max_inclusive),l=(o=e.plateau)!=null?o:0;if(l>=s-a)return a+t.nextInt(s-a+1);const d=(s-a-l)/2,c=s-a-d;return a+t.nextInt(c+1)+t.nextInt(d+1)}default:throw new Error(`Invalid height provider ${e.type}`)}}function Vu(e,t){const n=t.features.indexOf(e);return n!=-1?n:(t.features.push(e),t.features.length-1)}function yi(e,t,n){var o;if(typeof t=="string"){n.placements.push([e,Vu(t,n)]);return}const r=qi((o=t==null?void 0:t.type)!=null?o:"no_op"),i=Z4[r];i?i(t.config,e,n):n.placements.push([e,Vu(JSON.stringify(t),n)])}function nd(e,t,n){var o;const r=qi((o=t==null?void 0:t.type)!=null?o:"nope"),i=G4[r];return i?i(t==null?void 0:t.config,e,n):[e]}const Z4={decorated:(e,t,n)=>{nd(t,e==null?void 0:e.decorator,n).forEach(i=>yi(i,e==null?void 0:e.feature,n))},random_boolean_selector:(e,t,n)=>{const r=n.nextFloat()<.5?e==null?void 0:e.feature_true:e==null?void 0:e.feature_false;yi(t,r,n)},random_selector:(e,t,n)=>{var r,i;for(const o of(r=e==null?void 0:e.features)!=null?r:[])if(n.nextFloat()<((i=o==null?void 0:o.chance)!=null?i:0)){yi(t,o.feature,n);return}yi(t,e==null?void 0:e.default,n)},simple_random_selector:(e,t,n)=>{var i,o,a;const r=(a=e==null?void 0:e.features)==null?void 0:a[n.nextInt((o=(i=e==null?void 0:e.features)==null?void 0:i.length)!=null?o:0)];yi(t,r,n)}},G4={chance:(e,t,n)=>{var r;return n.nextFloat()<1/((r=e==null?void 0:e.chance)!=null?r:1)?[t]:[]},count:(e,t,n)=>{var r;return new Array(n.sampleInt((r=e==null?void 0:e.count)!=null?r:1)).fill(t)},count_extra:(e,t,n)=>{var i,o;let r=(i=e==null?void 0:e.count)!=null?i:1;return n.nextFloat()<e.extra_chance&&(r+=(o=e.extra_count)!=null?o:0),new Array(r).fill(t)},count_multilayer:(e,t,n)=>{var r;return new Array(n.sampleInt((r=e==null?void 0:e.count)!=null?r:1)).fill(t).map(i=>[i[0]+n.nextInt(16),i[1],i[2]+n.nextInt(16)])},count_noise:(e,t,n)=>{const i=n.biomeInfoNoise.sample(t[0]/200,0,t[2]/200)<e.noise_level?e.below_noise:e.above_noise;return new Array(i).fill(t)},count_noise_biased:(e,t,n)=>{var a;const r=Math.max(1,e.noise_factor),i=n.biomeInfoNoise.sample(t[0]/r,0,t[2]/r),o=Math.max(0,Math.ceil((i+((a=e.noise_offset)!=null?a:0))*e.noise_to_count_ratio));return new Array(o).fill(t)},dark_oak_tree:(e,t,n)=>[...new Array(16)].map((r,i)=>{const o=Math.floor(i/4)*4+1+n.nextInt(3)+t[0],a=Math.max(n.seaLevel,Fr[_t(0,63,o)]),s=Math.floor(i%4)*4+1+n.nextInt(3)+t[2];return[o,a,s]}),decorated:(e,t,n)=>nd(t,e==null?void 0:e.outer,n).flatMap(r=>nd(r,e==null?void 0:e.inner,n)),depth_average:(e,t,n)=>{var i,o,a,s;const r=n.nextInt((i=e==null?void 0:e.spread)!=null?i:0)+n.nextInt((o=e==null?void 0:e.spread)!=null?o:0)-((a=e.spread)!=null?a:0)+((s=e==null?void 0:e.baseline)!=null?s:0);return qt(t,r)},emerald_ore:(e,t,n)=>{const r=3+n.nextInt(6);return[...new Array(r)].map(()=>[t[0]+n.nextInt(16),4+n.nextInt(28),t[2]+n.nextInt(16)])},fire:(e,t,n)=>{const r=1+n.nextInt(n.nextInt(n.sampleInt(e==null?void 0:e.count)));return[...new Array(r)].map(()=>[t[0]+n.nextInt(16),n.nextInt(128),t[2]+n.nextInt(16)])},glowstone:(e,t,n)=>{const r=n.nextInt(1+n.nextInt(n.sampleInt(e==null?void 0:e.count)));return[...new Array(r)].map(()=>[t[0]+n.nextInt(16),n.nextInt(128),t[2]+n.nextInt(16)])},heightmap:(e,t,n)=>{const r=Math.max(n.seaLevel,Fr[_t(0,63,t[0])]);return qt(t,r)},heightmap_spread_double:(e,t,n)=>{const r=Math.max(n.seaLevel,Fr[_t(0,63,t[0])]);return qt(t,n.nextInt(r*2))},heightmap_world_surface:(e,t,n)=>{const r=Math.max(n.seaLevel,Fr[_t(0,63,t[0])]);return qt(t,r)},iceberg:(e,t,n)=>[[t[0]+4+n.nextInt(8),t[1],t[2]+4+n.nextInt(8)]],lava_lake:(e,t,n)=>{var r,i;if(n.nextInt(((r=e.chance)!=null?r:1)/10)===0){const o=n.nextInt(n.nextInt(248)+8);if(o<n.seaLevel||n.nextInt(((i=e==null?void 0:e.chance)!=null?i:1)/8)==0){const a=n.nextInt(16)+t[0],s=n.nextInt(16)+t[2];return[[a,o,s]]}}return[]},nope:(e,t)=>[t],range:(e,t,n)=>{var i,o,a;const r=n.nextInt(((i=e==null?void 0:e.maximum)!=null?i:1)-((o=e==null?void 0:e.top_offset)!=null?o:0))+((a=e==null?void 0:e.bottom_offset)!=null?a:0);return qt(t,r)},range_biased:(e,t,n)=>{var i,o,a;const r=n.nextInt(n.nextInt(((i=e==null?void 0:e.maximum)!=null?i:1)-((o=e==null?void 0:e.top_offset)!=null?o:0))+((a=e==null?void 0:e.bottom_offset)!=null?a:0));return qt(t,r)},range_very_biased:(e,t,n)=>{var i,o,a,s;const r=n.nextInt(n.nextInt(n.nextInt(((i=e==null?void 0:e.maximum)!=null?i:1)-((o=e==null?void 0:e.top_offset)!=null?o:0))+((a=e==null?void 0:e.bottom_offset)!=null?a:0))+((s=e==null?void 0:e.bottom_offset)!=null?s:0));return qt(t,r)},spread_32_above:(e,t,n)=>{const r=n.nextInt(t[1]+32);return qt(t,r)},top_solid_heightmap:(e,t)=>{const n=Fr[_t(0,63,t[0])];return qt(t,n)},magma:(e,t,n)=>{const r=n.nextInt(t[1]+32);return qt(t,r)},square:(e,t,n)=>[[t[0]+n.nextInt(16),t[1],t[2]+n.nextInt(16)]],surface_relative_threshold:(e,t)=>{var o,a;const n=Fr[_t(0,63,t[0])],r=n+((o=e==null?void 0:e.min_inclusive)!=null?o:-1/0),i=n+((a=e==null?void 0:e.max_inclusive)!=null?a:1/0);return t[1]<r||t[1]>i?[t]:[]},water_lake:(e,t,n)=>{var r;return n.nextInt((r=e.chance)!=null?r:1)===0?[[t[0]+n.nextInt(16),n.nextInt(256),t[2]+n.nextInt(16)]]:[]}};function Y4(e,t,n){var i;let r=[e];for(const o of t)!Uu[qi((i=o==null?void 0:o.type)!=null?i:"nope")]||(r=r.flatMap(s=>Uu[qi(o.type)](o,s,n)));for(const o of r)n.placements.push([o,0])}const Uu={count:({count:e},t,n)=>new Array(n.sampleInt(e!=null?e:1)).fill(t),count_on_every_layer:({count:e},t,n)=>new Array(n.sampleInt(e!=null?e:1)).fill(t).map(r=>[r[0]+n.nextInt(16),r[1],r[2]+n.nextInt(16)]),environment_scan:({},e)=>[e],height_range:({height:e},t,n)=>qt(t,H4(e,n)),heightmap:({},e,t)=>{const n=Math.max(t.seaLevel,Fr[_t(0,63,e[0])]);return qt(e,n)},in_square:({},e,t)=>[[e[0]+t.nextInt(16),e[1],e[2]+t.nextInt(16)]],noise_based_count:({noise_to_count_ratio:e,noise_factor:t,noise_offset:n},r,i)=>{const o=Math.max(1,t),a=i.biomeInfoNoise.sample(r[0]/o,0,r[2]/o),s=Math.max(0,Math.ceil((a+(n!=null?n:0))*e));return new Array(s).fill(r)},noise_threshold_count:({noise_level:e,below_noise:t,above_noise:n},r,i)=>{const a=i.biomeInfoNoise.sample(r[0]/200,0,r[2]/200)<e?t:n;return new Array(a).fill(r)},random_offset:({xz_spread:e,y_spread:t},n,r)=>[[n[0]+r.sampleInt(e),n[1]+r.sampleInt(t),n[2]+r.sampleInt(e)]],rarity_filter:({chance:e},t,n)=>n.nextFloat()<1/(e!=null?e:1)?[t]:[]};function W4(e,t,n){const r=Ge.create(n.seed),i=Rn.fromJson(P.DataModel.unwrapLists(e)),o=new Mn(r,i),a=-n.offset[0]-100,s=-n.offset[1]-100,l=t.data;for(let d=0;d<256;d+=1)for(let c=0;c<256;c+=1){const u=d*4+c*4*256,f=(d+a)*n.scale,h=(c+s)*n.scale,w=(o.sample(f,h,0)+1)*128;l[u]=w,l[u+1]=w,l[u+2]=w,l[u+3]=255}}const q4=({model:e,data:t,shown:n,version:r})=>{var M;const{locale:i}=Ee(),{project:o}=Pn(),[a,s]=Y(tn()),[l,d]=Y(2),[c,u]=Y(64),[f,h]=Y(void 0),{biomeColors:w}=l2(),_=Ie([0,0]),g=Ie(1),m=Ie(),v=P.DataModel.unwrapLists(e.get(new P.Path(["generator","settings"]))),x=JSON.stringify([t,v]),b=(M=t.type)==null?void 0:M.replace(/^minecraft:/,""),y=b==="multi_noise"||b==="the_end",{canvas:k,redraw:C}=fa({size(){return[200/g.current,200/g.current]},async draw(S){const T={settings:v,biomeColors:w,offset:_.current,scale:l,seed:a,res:g.current,version:r,project:o,y:c};await B4(t,S,T),g.current===4&&(clearTimeout(m.current),m.current=setTimeout(()=>{g.current=1,C()},150))},async onDrag(S,T){_.current[0]=_.current[0]+S*200,_.current[1]=_.current[1]+T*200,clearTimeout(m.current),g.current=y?4:1,C()},async onHover(S,T){const L={settings:v,biomeColors:w,offset:_.current,scale:l,seed:a,res:1,version:r,project:o,y:c},F=await z4(t,Math.floor(S*200),Math.floor(T*200),L);h(F)},onLeave(){h(void 0)}},[r,x,l,a,c,w,o]);me(()=>{n&&(g.current=y?4:1,C())},[r,x,l,a,c,n,w,o]);const E=S=>{S=Math.max(1,Math.round(S)),_.current[0]=_.current[0]*l/S,_.current[1]=_.current[1]*l/S,d(S)};return R(ce,{children:[R("div",{class:"controls preview-controls",children:[f&&p(ae,{label:f.biome,class:"no-pointer"}),p(ae,{icon:"dash",tooltip:i("zoom_out"),onClick:()=>E(l*2)}),p(ae,{icon:"plus",tooltip:i(Math.round(l)<=1?"zoom_in_limit":"zoom_in"),disabled:Math.round(l)<=1,onClick:()=>E(l/2)}),y&&R(ce,{children:[p(Lt,{icon:"stack",children:R("div",{class:"btn btn-input",onClick:S=>S.stopPropagation(),children:[p("span",{children:i("y")}),p(Ts,{value:c,onChange:u})]})}),p(ae,{icon:"sync",tooltip:i("generate_new_seed"),onClick:()=>s(tn())})]})]}),(f==null?void 0:f.temperature)!==void 0&&p("div",{class:"controls secondary-controls",children:p(ae,{class:"no-pointer",label:Object.entries(f).filter(([S])=>S!=="biome").map(([S,T])=>`${S[0].toUpperCase()}: ${T.toFixed(2)}`).join(" ")})}),p("canvas",{ref:k,width:"200",height:"200"})]})},X4=({data:e,version:t,shown:n})=>{const{locale:r}=Ee(),[i,o]=Y(4),[a,s]=Y(tn()),l=JSON.stringify(e),{canvas:d,redraw:c}=fa({size(){return[i*16,i*16]},async draw(u){V4(e,u,{seed:a,version:t,size:[i*16,128,i*16]})}},[t,l,a]);return me(()=>{n&&c()},[t,l,i,a,n]),R(ce,{children:[R("div",{class:"controls preview-controls",children:[p(ae,{icon:"dash",tooltip:r("zoom_out"),onClick:()=>o(Math.min(16,i+1))}),p(ae,{icon:"plus",tooltip:r("zoom_in"),onClick:()=>o(Math.max(1,i-1))}),p(ae,{icon:"sync",tooltip:r("generate_new_seed"),onClick:()=>s(tn())})]}),p("canvas",{ref:d,width:"64",height:"64"})]})},K4=({data:e,shown:t,version:n})=>{var m,v;const{locale:r}=Ee(),{project:i}=Pn(),[o,a]=Y(tn()),[s,l]=Y(!1),[d,c]=Y(void 0),u=Ie(0),f=Ie(void 0),h=JSON.stringify([e]),w=(v=(m=e==null?void 0:e.noise)==null?void 0:m.height)!=null?v:256,{canvas:_,redraw:g}=fa({size(){return[w,w]},async draw(x){const b={offset:u.current,width:x.width,seed:o,version:n,project:i};await P4(e,x,b)},async onDrag(x){u.current+=x*w,g()},async onHover(x,b){var C,E;const y=Math.floor(x*w-u.current),k=w-Math.max(1,Math.ceil(b*w))+((E=(C=e==null?void 0:e.noise)==null?void 0:C.min_y)!=null?E:0);c(`X=${y} Y=${k}`)},onLeave(){c(void 0)}},[n,h,o,i]);return me(()=>{f.current&&clearInterval(f.current),t&&(g(),s&&(f.current=setInterval(()=>{u.current-=8,g()},100)))},[n,h,o,i,t,s]),R(ce,{children:[R("div",{class:"controls preview-controls",children:[d&&p(ae,{label:d,class:"no-pointer"}),p(Lt,{icon:"gear",tooltip:r("terrain_settings"),children:p(ae,{icon:s?"square_fill":"square",label:r("preview.auto_scroll"),onClick:()=>l(!s)})}),p(ae,{icon:"sync",tooltip:r("generate_new_seed"),onClick:()=>a(tn())})]}),p("canvas",{ref:_,width:w,height:w})]})},J4=({data:e,shown:t,version:n})=>{const{locale:r}=Ee(),[i,o]=Y(tn()),[a,s]=Y(2),l=Ie([0,0]),d=JSON.stringify([e]),{canvas:c,redraw:u}=fa({size(){return[256,256]},async draw(h){const w={offset:l.current,scale:a,seed:i,version:n};W4(e,h,w)},async onDrag(h,w){l.current[0]=l.current[0]+h*256,l.current[1]=l.current[1]+w*256,u()}},[n,d,a,i]);me(()=>{t&&u()},[n,d,a,i,t]);const f=h=>{l.current[0]=l.current[0]*a/h,l.current[1]=l.current[1]*a/h,s(h)};return R(ce,{children:[R("div",{class:"controls preview-controls",children:[p(ae,{icon:"dash",tooltip:r("zoom_out"),onClick:()=>f(a*1.5)}),p(ae,{icon:"plus",tooltip:r("zoom_in"),onClick:()=>f(a/1.5)}),p(ae,{icon:"sync",tooltip:r("generate_new_seed"),onClick:()=>o(tn())})]}),p("canvas",{ref:c,width:"256",height:"256"})]})},Q4=({data:e,shown:t,version:n})=>{var E,M;const{locale:r}=Ee(),{project:i}=Pn(),[o,a]=Y(tn()),[s,l]=Y("minecraft:plains"),[d,c]=Y(.2),[u,f]=Y(.1),[h,w]=Y(!1),[_,g]=Y(void 0),m=Ie(0),v=Ie(void 0),x=JSON.stringify([e,d,u]),b=(M=(E=e==null?void 0:e.noise)==null?void 0:E.height)!=null?M:256,{canvas:y,redraw:k}=fa({size(){return[b,b]},async draw(S){const T={biome:s,biomeDepth:u,biomeScale:d,offset:m.current,width:S.width,seed:o,version:n,project:i};await D4(e,S,T)},async onDrag(S){m.current+=S*b,k()},async onHover(S,T){var V,O;const L=Math.floor(S*b-m.current),F=b-Math.max(1,Math.ceil(T*b))+((O=(V=e==null?void 0:e.noise)==null?void 0:V.min_y)!=null?O:0),X=F4(L,F);g(X?`Y=${F} (${X.getName().path})`:`Y=${F}`)},onLeave(){g(void 0)}},[x,o,i]);me(()=>{v.current&&clearInterval(v.current),t&&(async()=>{try{await k(),h&&(v.current=setInterval(()=>{m.current-=8,k()},100))}catch(S){throw S}})()},[n,x,o,i,t,s,d,u,h]);const C=Ce(()=>{var S;return(S=is==null?void 0:is.get("worldgen/biome"))!=null?S:[]},[n]);return R(ce,{children:[R("div",{class:"controls preview-controls",children:[_&&p(ae,{label:_,class:"no-pointer"}),R(Lt,{icon:"gear",tooltip:r("terrain_settings"),children:[mt(n,void 0,"1.17")?R(ce,{children:[p(ns,{label:r("preview.scale"),value:`${d}`,onChange:S=>c(Number(S))}),p(ns,{label:r("preview.depth"),value:`${u}`,onChange:S=>f(Number(S))})]}):p(ns,{label:r("preview.biome"),value:s,onChange:l,dataList:C,larger:!0}),p(ae,{icon:h?"square_fill":"square",label:r("preview.auto_scroll"),onClick:()=>w(!h)})]}),p(ae,{icon:"sync",tooltip:r("generate_new_seed"),onClick:()=>a(tn())})]}),p("canvas",{ref:y,width:b,height:b})]})},e7={container:n7,default:r7};function t7(e,t){const n=o7(t),r=[];return dg(e,o=>r.push(o),n),e7[t.stackMixer](r,n)}const Hu=27;function n7(e,t){const n=Zu([...Array(Hu)].map((o,a)=>a),t),r=e.filter(o=>o.id!=="minecraft:air"&&o.count>1);for(e=e.filter(o=>o.id!=="minecraft:air"&&o.count===1);Hu-e.length-r.length>0&&r.length>0;){const[o]=r.splice(t.random.nextInt(r.length),1),a=t.random.nextInt(Math.floor(o.count/2))+1,s=i7(o,a);for(const l of[o,s])l.count>1&&t.random.nextFloat()<.5?r.push(l):e.push(l)}e.push(...r),Zu(e,t);const i=[];for(const o of e){const a=n.pop();if(a===void 0)break;o.id!=="minecraft:air"&&o.count>0&&i.push({slot:a,item:o})}return i}function r7(e){return e.map((t,n)=>({slot:n,item:t}))}function i7(e,t){const n=Math.min(t,e.count),r=ol(e);return r.count=n,e.count=e.count-n,r}function Zu(e,t){let n=e.length;for(;n>0;){const r=t.random.nextInt(n);n-=1,[e[n],e[r]]=[e[r],e[n]]}return e}function dg(e,t,n){var i,o;const r=Wd((i=e.functions)!=null?i:[],t,n);for(const a of(o=e.pools)!=null?o:[])a7(a,r,n)}function o7(e){return be(oe({},e),{random:new gt(e.seed),luck:e.luck,weather:e.weather,dayTime:e.daytime,getItemTag:()=>[],getLootTable:()=>({pools:[]}),getPredicate:()=>[]})}function a7(e,t,n){var r,i,o;if(wl((r=e.conditions)!=null?r:[])(n)){const a=Wd((i=e.functions)!=null?i:[],t,n),s=Dn(e.rolls,n)+Math.floor(zi(e.bonus_rolls,n)*n.luck);for(let l=0;l<s;l+=1){let d=0;const c=[];for(const f of(o=e.entries)!=null?o:[])fs(f,n,h=>{const w=Yu(h,n.luck);w>0&&(c.push(h),d+=w)});if(d===0||c.length===0)continue;if(c.length===1){Gu(c[0],a,n);continue}let u=n.random.nextInt(d);for(const f of c)if(u-=Yu(f,n.luck),u<0){Gu(f,a,n);break}}}}function fs(e,t,n){var i,o,a,s,l;if(!s7(e,t))return!1;switch((i=e.type)==null?void 0:i.replace(/^minecraft:/,"")){case"group":for(const d of(o=e.children)!=null?o:[])fs(d,t,n);return!0;case"alternatives":for(const d of(a=e.children)!=null?a:[])if(fs(d,t,n))return!0;return!1;case"sequence":for(const d of(s=e.children)!=null?s:[])if(!fs(d,t,n))return!1;return!0;case"tag":return e.expand?t.getItemTag((l=e.tag)!=null?l:"").forEach(d=>{n({type:"item",name:d})}):n(e),!0;default:return n(e),!0}}function s7(e,t){var n;return wl((n=e.conditions)!=null?n:[])(t)}function Gu(e,t,n){var o,a,s;const r=Wd((o=e.functions)!=null?o:[],t,n);switch((a=e.type)==null?void 0:a.replace(/^minecraft:/,"")){case"item":r({id:e.name,count:1});break;case"tag":n.getItemTag((s=e.name)!=null?s:"").forEach(l=>{r({id:l,count:1})});break;case"loot_table":dg(n.getLootTable(e.name),r,n);break}}function Yu(e,t){var n,r;return Math.max(Math.floor(((n=e.weight)!=null?n:1)+((r=e.quality)!=null?r:0)*t),0)}function Wd(e,t,n){const r=l7(e);return i=>{r(i,n),t(i)}}function l7(e){return(t,n)=>{var r,i,o,a;for(const s of e)if(wl((r=s.conditions)!=null?r:[])(n)){const l=(i=s.function)==null?void 0:i.replace(/^minecraft:/,"");((a=(o=dc[l])==null?void 0:o.call(dc,s))!=null?a:d=>d)(t,n)}}}const dc={enchant_randomly:({enchantments:e})=>(t,n)=>{const r=t.id==="minecraft:book";(e===void 0||e.length===0)&&(e=[...qd.keys()].filter(s=>{const l=Xi(s);return l.discoverable&&(r||l.canEnchant(t.id))}));const i=e[n.random.nextInt(e.length)],o=Xi(i),a=n.random.nextInt(o.maxLevel-o.minLevel+1)+o.minLevel;fc(t,{id:i,lvl:a})},enchant_with_levels:({levels:e,treasure:t})=>(n,r)=>{const i=h7(r.random,n,Dn(e,r),t);n.id==="minecraft:book"&&(n.id="minecraft:enchanted_book",n.count=1,n.tag={});for(const a of i)fc(n,a)},limit_count:({limit:e})=>(t,n)=>{const{min:r,max:i}=ug(e,n);t.count=_t(t.count,r,i)},set_count:({count:e})=>(t,n)=>{t.count=Dn(e,n)},set_damage:({damage:e,add:t})=>(n,r)=>{var o,a;const i=vl.get(n.id);if(i){const s=t?1-((a=(o=n.tag)==null?void 0:o.Damage)!=null?a:0)/i:0,l=1-_t(zi(e,r)+s,0,1),d=Math.floor(l*i);n.tag=be(oe({},n.tag),{Damage:d})}},set_enchantments:({enchantments:e,add:t})=>(n,r)=>{Object.entries(e).forEach(([i,o])=>{const a=Dn(o,r);fc(n,{id:i,lvl:a},t)})},set_lore:({lore:e,replace:t})=>n=>{var o,a,s,l;const r=e.map(d=>JSON.stringify(d)),i=t?r:[...(s=(a=(o=n.tag)==null?void 0:o.display)==null?void 0:a.Lore)!=null?s:[],...r];n.tag=be(oe({},n.tag),{display:be(oe({},(l=n.tag)==null?void 0:l.display),{Lore:i})})},set_name:({name:e})=>t=>{var r;const n=JSON.stringify(e);t.tag=be(oe({},t.tag),{display:be(oe({},(r=t.tag)==null?void 0:r.display),{Name:n})})}};function wl(e){return t=>{for(const n of e)if(!hs(n,t))return!1;return!0}}function hs(e,t){var r,i,o;const n=(r=e.condition)==null?void 0:r.replace(/^minecraft:/,"");return((o=(i=uc[n])==null?void 0:i.call(uc,e))!=null?o:()=>!0)(t)}const uc={alternative:({terms:e})=>t=>{for(const n of e)if(hs(n,t))return!0;return!1},block_state_property:()=>()=>!1,damage_source_properties:({predicate:e})=>t=>f7(),entity_properties:({predicate:e})=>t=>u7(),entity_scores:()=>()=>!1,inverted:({term:e})=>t=>!hs(e,t),killed_by_player:({inverted:e})=>()=>(e!=null?e:!1)===!1,location_check:({predicate:e})=>t=>d7(),match_tool:({predicate:e})=>t=>c7(),random_chance:({chance:e})=>t=>t.random.nextFloat()<e,random_chance_with_looting:({chance:e,looting_multiplier:t})=>n=>{const i=e+0*t;return n.random.nextFloat()<i},reference:({name:e})=>t=>{var r;const n=(r=t.getPredicate(e))!=null?r:[];return Array.isArray(n)?wl(n)(t):hs(n,t)},survives_explosion:()=>()=>!0,table_bonus:({chances:e})=>t=>{const r=e[_t(0,0,e.length-1)];return t.random.nextFloat()<r},time_check:({value:e,period:t})=>n=>{let r=n.dayTime;t!==void 0&&(r=r%t);const{min:i,max:o}=ug(e,n);return i<=r&&r<=o},value_check:()=>()=>!1,weather_check:({raining:e,thundering:t})=>n=>{const r=n.weather==="rain"||n.weather==="thunder",i=n.weather==="thunder";return!(e!==void 0&&e!==r||t!==void 0&&t!==i)}};function Dn(e,t){var r,i,o;if(typeof e=="number")return e;if(!gn(e))return 0;switch((i=(r=e.type)==null?void 0:r.replace(/^minecraft:/,""))!=null?i:"uniform"){case"constant":return Math.round((o=e.value)!=null?o:0);case"uniform":const a=Dn(e.min,t),s=Dn(e.max,t);return s<a?a:t.random.nextInt(s-a+1)+a;case"binomial":const l=Dn(e.n,t),d=zi(e.p,t);let c=0;for(let u=0;u<l;u+=1)t.random.nextFloat()<d&&(c+=1);return c}return 0}function zi(e,t){var r,i,o;if(typeof e=="number")return e;if(!gn(e))return 0;switch((i=(r=e.type)==null?void 0:r.replace(/^minecraft:/,""))!=null?i:"uniform"){case"constant":return(o=e.value)!=null?o:0;case"uniform":const a=zi(e.min,t),s=zi(e.max,t);return s<a?a:t.random.nextFloat()*(s-a)+a;case"binomial":const l=Dn(e.n,t),d=zi(e.p,t);let c=0;for(let u=0;u<l;u+=1)t.random.nextFloat()<d&&(c+=1);return c}return 0}function ug(e,t){typeof e=="number"&&(e={min:e,max:e});const n=Dn(e.min,t),r=Dn(e.max,t);return{min:n,max:r}}function c7(e,t){return!1}function d7(e,t){return!1}function u7(e,t){return!1}function f7(e,t){return!1}function fc(e,t,n){e.tag||(e.tag={});const r=e.id==="minecraft:book"?"StoredEnchantments":"Enchantments";(!e.tag[r]||!Array.isArray(e.tag[r]))&&(e.tag[r]=[]);const i=e.tag[r];let o=i.findIndex(a=>a.id===t.id);if(o!==-1){const a=i[o];a.lvl=Math.max(n?a.lvl+t.lvl:t.lvl,0)}else i.push(t),o=i.length-1;i[o].lvl===0&&i.splice(o,1)}function h7(e,t,n,r){var d;const i=(d=m7.get(t.id))!=null?d:0;if(i<=0)return[];n+=1+e.nextInt(Math.floor(i/4+1))+e.nextInt(Math.floor(i/4+1));const o=(e.nextFloat()+e.nextFloat()-1)*.15;n=_t(Math.round(n+n*o),1,Number.MAX_SAFE_INTEGER);let a=p7(t,n,r);if(a.length===0)return[];const s=[],l=F1(e,a,Wu);for(l&&s.push(l);e.nextInt(50)<=n;){if(s.length>0){const u=s[s.length-1];a=a.filter(f=>g7(f.id,u.id))}if(a.length===0)break;const c=F1(e,a,Wu);c&&s.push(c),n=Math.floor(n/2)}return s}function Wu(e){var t,n,r;return(r=_7.get((n=(t=Xi(e.id))==null?void 0:t.rarity)!=null?n:"common"))!=null?r:0}function p7(e,t,n){const r=[],i=e.id==="minecraft:book";for(const o of qd.keys()){const a=Xi(o);if((!a.treasure||n)&&a.discoverable&&(a.canEnchant(e.id)||i))for(let s=a.maxLevel;s>a.minLevel-1;s-=1)t>=a.minCost(s)&&t<=a.maxCost(s)&&r.push({id:o,lvl:s})}return r}function g7(e,t){return e!==t&&qu(e,t)&&qu(t,e)}function qu(e,t){const n=Xi(e);return n==null?void 0:n.isCompatible(t)}const vl=new Map(Object.entries({"minecraft:carrot_on_a_stick":25,"minecraft:warped_fungus_on_a_stick":100,"minecraft:flint_and_steel":64,"minecraft:elytra":432,"minecraft:bow":384,"minecraft:fishing_rod":64,"minecraft:shears":238,"minecraft:shield":336,"minecraft:trident":250,"minecraft:crossbow":465,"minecraft:leather_helmet":11*5,"minecraft:leather_chestplate":16*5,"minecraft:leather_leggings":15*5,"minecraft:leather_boots":13*5,"minecraft:chainmail_helmet":11*15,"minecraft:chainmail_chestplate":16*15,"minecraft:chainmail_leggings":15*15,"minecraft:chainmail_boots":13*15,"minecraft:iron_helmet":11*15,"minecraft:iron_chestplate":16*15,"minecraft:iron_leggings":15*15,"minecraft:iron_boots":13*15,"minecraft:diamond_helmet":11*33,"minecraft:diamond_chestplate":16*33,"minecraft:diamond_leggings":15*33,"minecraft:diamond_boots":13*33,"minecraft:golden_helmet":11*7,"minecraft:golden_chestplate":16*7,"minecraft:golden_leggings":15*7,"minecraft:golden_boots":13*7,"minecraft:netherite_helmet":11*37,"minecraft:netherite_chestplate":16*37,"minecraft:netherite_leggings":15*37,"minecraft:netherite_boots":13*37,"minecraft:turtle_helmet":11*25,"minecraft:wooden_sword":59,"minecraft:wooden_shovel":59,"minecraft:wooden_pickaxe":59,"minecraft:wooden_axe":59,"minecraft:wooden_hoe":59,"minecraft:stone_sword":131,"minecraft:stone_shovel":131,"minecraft:stone_pickaxe":131,"minecraft:stone_axe":131,"minecraft:stone_hoe":131,"minecraft:iron_sword":250,"minecraft:iron_shovel":250,"minecraft:iron_pickaxe":250,"minecraft:iron_axe":250,"minecraft:iron_hoe":250,"minecraft:diamond_sword":1561,"minecraft:diamond_shovel":1561,"minecraft:diamond_pickaxe":1561,"minecraft:diamond_axe":1561,"minecraft:diamond_hoe":1561,"minecraft:gold_sword":32,"minecraft:gold_shovel":32,"minecraft:gold_pickaxe":32,"minecraft:gold_axe":32,"minecraft:gold_hoe":32,"minecraft:netherite_sword":2031,"minecraft:netherite_shovel":2031,"minecraft:netherite_pickaxe":2031,"minecraft:netherite_axe":2031,"minecraft:netherite_hoe":2031})),m7=new Map(Object.entries({"minecraft:book":1,"minecraft:fishing_rod":1,"minecraft:trident":1,"minecraft:bow":1,"minecraft:crossbow":1,"minecraft:leather_helmet":15,"minecraft:leather_chestplate":15,"minecraft:leather_leggings":15,"minecraft:leather_boots":15,"minecraft:chainmail_helmet":12,"minecraft:chainmail_chestplate":12,"minecraft:chainmail_leggings":12,"minecraft:chainmail_boots":12,"minecraft:iron_helmet":9,"minecraft:iron_chestplate":9,"minecraft:iron_leggings":9,"minecraft:iron_boots":9,"minecraft:diamond_helmet":10,"minecraft:diamond_chestplate":10,"minecraft:diamond_leggings":10,"minecraft:diamond_boots":10,"minecraft:golden_helmet":25,"minecraft:golden_chestplate":25,"minecraft:golden_leggings":25,"minecraft:golden_boots":25,"minecraft:netherite_helmet":15,"minecraft:netherite_chestplate":15,"minecraft:netherite_leggings":15,"minecraft:netherite_boots":15,"minecraft:turtle_helmet":15,"minecraft:wooden_sword":15,"minecraft:wooden_shovel":15,"minecraft:wooden_pickaxe":15,"minecraft:wooden_axe":15,"minecraft:wooden_hoe":15,"minecraft:stone_sword":5,"minecraft:stone_shovel":5,"minecraft:stone_pickaxe":5,"minecraft:stone_axe":5,"minecraft:stone_hoe":5,"minecraft:iron_sword":14,"minecraft:iron_shovel":14,"minecraft:iron_pickaxe":14,"minecraft:iron_axe":14,"minecraft:iron_hoe":14,"minecraft:diamond_sword":10,"minecraft:diamond_shovel":10,"minecraft:diamond_pickaxe":10,"minecraft:diamond_axe":10,"minecraft:diamond_hoe":10,"minecraft:gold_sword":22,"minecraft:gold_shovel":22,"minecraft:gold_pickaxe":22,"minecraft:gold_axe":22,"minecraft:gold_hoe":22,"minecraft:netherite_sword":15,"minecraft:netherite_shovel":15,"minecraft:netherite_pickaxe":15,"minecraft:netherite_axe":15,"minecraft:netherite_hoe":15}));function Xi(e){var r,i,o,a,s,l,d,c,u,f;const t=qd.get(e),n=(r=t==null?void 0:t.category)!=null?r:"armor";return{id:e,rarity:(i=t==null?void 0:t.rarity)!=null?i:"common",category:n,minLevel:(o=t==null?void 0:t.minLevel)!=null?o:1,maxLevel:(a=t==null?void 0:t.maxLevel)!=null?a:1,minCost:(s=t==null?void 0:t.minCost)!=null?s:h=>1+h*10,maxCost:(l=t==null?void 0:t.maxCost)!=null?l:h=>6+h*10,discoverable:(d=t==null?void 0:t.discoverable)!=null?d:!0,treasure:(c=t==null?void 0:t.treasure)!=null?c:!1,curse:(u=t==null?void 0:t.curse)!=null?u:!1,canEnchant:h=>_g.get(n).includes(h),isCompatible:(f=t==null?void 0:t.isCompatible)!=null?f:()=>!0}}const za=["minecraft:protection","minecraft:fire_protection","minecraft:blast_protection","minecraft:projectile_protection"],hc=["minecraft:sharpness","minecraft:smite","minecraft:bane_of_arthropods"],qd=new Map(Object.entries({"minecraft:protection":{rarity:"common",category:"armor",maxLevel:4,minCost:e=>1+(e-1)*11,maxCost:e=>1+(e-1)*11+11,isCompatible:e=>!za.includes(e)},"minecraft:fire_protection":{rarity:"uncommon",category:"armor",maxLevel:4,minCost:e=>10+(e-1)*8,maxCost:e=>10+(e-1)*8+8,isCompatible:e=>!za.includes(e)},"minecraft:feather_falling":{rarity:"uncommon",category:"armor_feet",maxLevel:4,minCost:e=>5+(e-1)*6,maxCost:e=>5+(e-1)*6+6},"minecraft:blast_protection":{rarity:"rare",category:"armor",maxLevel:4,minCost:e=>5+(e-1)*8,maxCost:e=>5+(e-1)*8+8,isCompatible:e=>!za.includes(e)},"minecraft:projectile_protection":{rarity:"uncommon",category:"armor",maxLevel:4,minCost:e=>3+(e-1)*6,maxCost:e=>3+(e-1)*6+6,isCompatible:e=>!za.includes(e)},"minecraft:respiration":{rarity:"rare",category:"armor_head",maxLevel:3,minCost:e=>10*e,maxCost:e=>10*e+30},"minecraft:aqua_affinity":{rarity:"rare",category:"armor_head",minCost:()=>1,maxCost:()=>40},"minecraft:thorns":{rarity:"very_rare",category:"armor_chest",maxLevel:3,minCost:e=>10+20*(e-1),maxCost:e=>10+20*(e-1)+50},"minecraft:depth_strider":{rarity:"rare",category:"armor_feet",maxLevel:3,minCost:e=>10*e,maxCost:e=>10*e+15,isCompatible:e=>e!=="minecraft:frost_walker"},"minecraft:frost_walker":{rarity:"rare",category:"armor_feet",maxLevel:2,treasure:!0,minCost:e=>10*e,maxCost:e=>10*e+15,isCompatible:e=>e!=="minecraft:depth_strider"},"minecraft:binding_curse":{rarity:"very_rare",category:"wearable",treasure:!0,curse:!0,minCost:()=>25,maxCost:()=>50},"minecraft:soul_speed":{rarity:"very_rare",category:"armor_feet",maxLevel:3,discoverable:!1,treasure:!0,minCost:e=>10*e,maxCost:e=>10*e+15},"minecraft:swift_sneak":{rarity:"very_rare",category:"armor_legs",maxLevel:3,discoverable:!1,treasure:!0,minCost:e=>25*e,maxCost:e=>25*e+50},"minecraft:sharpness":{rarity:"common",category:"weapon",maxLevel:5,minCost:e=>1+(e-1)*11,maxCost:e=>1+(e-1)*11+20,isCompatible:e=>!hc.includes(e)},"minecraft:smite":{rarity:"common",category:"weapon",maxLevel:5,minCost:e=>5+(e-1)*8,maxCost:e=>5+(e-1)*8+20,isCompatible:e=>!hc.includes(e)},"minecraft:bane_of_arthropods":{rarity:"common",category:"weapon",maxLevel:5,minCost:e=>5+(e-1)*8,maxCost:e=>5+(e-1)*8+20,isCompatible:e=>!hc.includes(e)},"minecraft:knockback":{rarity:"uncommon",category:"weapon",maxLevel:2,minCost:e=>5+20*(e-1),maxCost:e=>1+e*10+50},"minecraft:fire_aspect":{rarity:"rare",category:"weapon",maxLevel:2,minCost:e=>5+20*(e-1),maxCost:e=>1+e*10+50},"minecraft:looting":{rarity:"rare",category:"weapon",maxLevel:3,minCost:e=>15+(e-1)*9,maxCost:e=>1+e*10+50,isCompatible:e=>e!=="minecraft:silk_touch"},"minecraft:sweeping":{rarity:"rare",category:"weapon",maxLevel:3,minCost:e=>5+(e-1)*9,maxCost:e=>5+(e-1)*9+15},"minecraft:efficiency":{rarity:"common",category:"digger",maxLevel:5,minCost:e=>1+10*(e-1),maxCost:e=>1+e*10+50,canEnchant:e=>e==="minecraft:shears"||_g.get("digger").includes(e)},"minecraft:silk_touch":{rarity:"very_rare",category:"digger",minCost:()=>15,maxCost:e=>1+e*10+50,isCompatible:e=>e!=="minecraft:fortune"},"minecraft:unbreaking":{rarity:"uncommon",category:"breakable",maxLevel:3,minCost:e=>5+(e-1)*8,maxCost:e=>1+e*10+50},"minecraft:fortune":{rarity:"rare",category:"digger",maxLevel:3,minCost:e=>15+(e-1)*9,maxCost:e=>1+e*10+50,isCompatible:e=>e!=="minecraft:silk_touch"},"minecraft:power":{rarity:"common",category:"bow",maxLevel:5,minCost:e=>1+(e-1)*10,maxCost:e=>1+(e-1)*10+15},"minecraft:punch":{rarity:"rare",category:"bow",maxLevel:2,minCost:e=>12+(e-1)*20,maxCost:e=>12+(e-1)*20+25},"minecraft:flame":{rarity:"rare",category:"bow",minCost:()=>20,maxCost:()=>50},"minecraft:infinity":{rarity:"very_rare",category:"bow",minCost:()=>20,maxCost:()=>50,isCompatible:e=>e!=="minecraft:mending"},"minecraft:luck_of_the_sea":{rarity:"rare",category:"fishing_rod",maxLevel:3,minCost:e=>15+(e-1)*9,maxCost:e=>1+e*10+50,isCompatible:e=>e!=="minecraft:silk_touch"},"minecraft:lure":{rarity:"rare",category:"fishing_rod",maxLevel:3,minCost:e=>15+(e-1)*9,maxCost:e=>1+e*10+50},"minecraft:loyalty":{rarity:"uncommon",category:"trident",maxLevel:3,minCost:e=>5+e*7,maxCost:()=>50},"minecraft:impaling":{rarity:"rare",category:"trident",maxLevel:5,minCost:e=>1+(e-1)*8,maxCost:e=>1+(e-1)*8+20},"minecraft:riptide":{rarity:"rare",category:"trident",maxLevel:3,minCost:e=>5+e*7,maxCost:()=>50,isCompatible:e=>!["minecraft:riptide","minecraft:channeling"].includes(e)},"minecraft:channeling":{rarity:"very_rare",category:"trident",minCost:()=>25,maxCost:()=>50},"minecraft:multishot":{rarity:"rare",category:"crossbow",minCost:()=>20,maxCost:()=>50,isCompatible:e=>e!=="minecraft:piercing"},"minecraft:quick_charge":{rarity:"uncommon",category:"crossbow",maxLevel:3,minCost:e=>12+(e-1)*20,maxCost:()=>50},"minecraft:piercing":{rarity:"common",category:"crossbow",maxLevel:4,minCost:e=>1+(e-1)*10,maxCost:()=>50,isCompatible:e=>e!=="minecraft:multishot"},"minecraft:mending":{rarity:"rare",category:"breakable",treasure:!0,minCost:e=>e*25,maxCost:e=>e*25+50},"minecraft:vanishing_curse":{rarity:"very_rare",category:"vanishable",treasure:!0,curse:!0,minCost:()=>25,maxCost:()=>50}})),_7=new Map(Object.entries({common:10,uncommon:5,rare:2,very_rare:1})),fg=["minecraft:leather_boots","minecraft:chainmail_boots","minecraft:iron_boots","minecraft:diamond_boots","minecraft:golden_boots","minecraft:netherite_boots"],hg=["minecraft:leather_leggings","minecraft:chainmail_leggings","minecraft:iron_leggings","minecraft:diamond_leggings","minecraft:golden_leggings","minecraft:netherite_leggings"],pg=["minecraft:leather_chestplate","minecraft:chainmail_chestplate","minecraft:iron_chestplate","minecraft:diamond_chestplate","minecraft:golden_chestplate","minecraft:netherite_chestplate"],gg=["minecraft:leather_helmet","minecraft:chainmail_helmet","minecraft:iron_helmet","minecraft:diamond_helmet","minecraft:golden_helmet","minecraft:netherite_helmet","minecraft:turtle_helmet"],mg=[...fg,...hg,...pg,...gg],w7=["minecraft:wooden_sword","minecraft:stone_sword","minecraft:iron_sword","minecraft:diamond_sword","minecraft:gold_sword","minecraft:netherite_sword"],v7=["minecraft:wooden_shovel","minecraft:wooden_pickaxe","minecraft:wooden_axe","minecraft:wooden_hoe","minecraft:stone_shovel","minecraft:stone_pickaxe","minecraft:stone_axe","minecraft:stone_hoe","minecraft:iron_shovel","minecraft:iron_pickaxe","minecraft:iron_axe","minecraft:iron_hoe","minecraft:diamond_shovel","minecraft:diamond_pickaxe","minecraft:diamond_axe","minecraft:diamond_hoe","minecraft:gold_shovel","minecraft:gold_pickaxe","minecraft:gold_axe","minecraft:gold_hoe","minecraft:netherite_shovel","minecraft:netherite_pickaxe","minecraft:netherite_axe","minecraft:netherite_hoe"],Xu=[...vl.keys()],b7=[...mg,"minecraft:elytra","minecraft:carved_pumpkin","minecraft:creeper_head","minecraft:dragon_head","minecraft:player_head","minecraft:zombie_head"],_g=new Map(Object.entries({armor:mg,armor_feet:fg,armor_legs:hg,armor_chest:pg,armor_head:gg,weapon:w7,digger:v7,fishing_rod:["minecraft:fishing_rod"],trident:["minecraft:trident"],breakable:Xu,bow:["minecraft:bow"],wearable:b7,crossbow:["minecraft:crossbow"],vanishable:[...Xu,"minecraft:compass"]})),mi={};async function x7(e){return mi[e]||(mi[e]=(async()=>{try{const{models:t,uvMapping:n,atlas:r}=await _v(e);return mi[e]=new k7(t,n,r),mi[e]}catch(t){throw console.error("Error: ",t),new Error(`Cannot get resources for version ${e}: ${Et(t)}`)}})()),mi[e]}const Ku=128,Ju=new Map;async function y7(e,t){const n=`${e} ${t}`,r=Ju.get(n);if(r!==void 0)return r;const i=(async()=>{const o=document.createElement("canvas");o.width=Ku,o.height=Ku;const a=await x7(e),s=o.getContext("webgl2",{preserveDrawingBuffer:!0});if(!s)throw new Error("Cannot get WebGL2 context");return new T4(s,ve.parse(t),a).drawItem(),o.toDataURL()})();return Ju.set(n,i),i}class k7{constructor(t,n,r){this.blockModels={},this.textureAtlas=Bi.empty(),this.loadBlockModels(t),this.loadBlockAtlas(r,n)}getBlockModel(t){return this.blockModels[t.toString()]}getTextureUV(t){return this.textureAtlas.getTextureUV(t)}getTextureAtlas(){return this.textureAtlas.getTextureAtlas()}loadBlockModels(t){[...t.entries()].forEach(([n,r])=>{this.blockModels[ve.create(n).toString()]=us.fromJson(n,r)}),Object.values(this.blockModels).forEach(n=>n.flatten(this))}loadBlockAtlas(t,n){const r=document.createElement("canvas"),i=Fs(t.width),o=Fs(t.height);r.width=i,r.height=o;const a=r.getContext("2d");a.drawImage(t,0,0);const s=a.getImageData(0,0,i,o),l={};Object.keys(n).forEach(d=>{const[c,u,f,h]=n[d],w=f!==h&&d.startsWith("block/")?f:h;l[ve.create(d).toString()]=[c/i,u/o,(c+f)/i,(u+w)/o]}),this.textureAtlas=new Bi(s,l)}}const _i={};async function C7(e){return _i[e]||(_i[e]=(async()=>{try{return _i[e]=await vv(e),_i[e]}catch(t){throw console.error("Error: ",t),new Error(`Cannot get language for version ${e}: ${Et(t)}`)}})()),_i[e]}async function rd(e,t,n){const i=(await C7(e))[t];return i?E7(i,n):null}function E7(e,t){var o;let n="",r=0,i=0;for(;r<e.length;){const a=e[r++];if(a==="%"){if(r>=e.length){n+=a;break}let s=e[r++];if(s==="%")n+="%";else if(s==="s"||s==="d")n+=(o=t==null?void 0:t[i++])!=null?o:"";else if(s>="0"&&s<="9"){if(r>=e.length){n+=a+s;break}let l="";do l+=s,s=e[r++];while(r<e.length&&s>="0"&&s<="9");if(s==="$"){if(r>=e.length){n+=a+l+s;break}const d=e[r++];if(d==="s"||d==="d"){const c=parseInt(l)-1;!t||isNaN(c)||c<0||c>=t.length?n+="":n+=t[c]}else n+=a+l+s}else n+=a+l}else n+=a}else n+=a}return n}function jn({component:e,base:t={color:"white"},shadow:n=!0}){const r=JSON.stringify(e),i=Ce(()=>{const o=[];return ps(e,a=>o.push(a)),o},[r]);return R("div",{class:"text-component",children:[n&&p("div",{style:Hs(t,!0),children:i.map(o=>p(ef,{part:o,shadow:!0}))}),p("div",{class:"text-foreground",style:Hs(t,!1),children:i.map(o=>p(ef,{part:o}))})]})}function ps(e,t){if(typeof e=="string"||typeof e=="number")t({text:e.toString()});else if(Array.isArray(e)){const n=e[0];ps(n,t);for(const r of e.slice(1))ps(r,i=>t(Qu(i,n)))}else if(typeof e=="object"&&e!==null&&("text"in e||"translate"in e?t(e):"score"in e?t(be(oe({},e),{text:"123"})):"selector"in e?t(be(oe({},e),{text:"Steve"})):"keybind"in e?t(be(oe({},e),{text:e.keybind})):"nbt"in e&&t(be(oe({},e),{text:e.nbt})),"extra"in e))for(const n of e.extra)ps(n,r=>t(Qu(r,e)))}function Qu(e,t){return oe({color:t.color,bold:t.bold,italic:t.italic,underlined:t.underlined,strikethrough:t.strikethrough},e)}const wg={black:["#000","#000"],dark_blue:["#00A","#00002A"],dark_green:["#0A0","#002A00"],dark_aqua:["#0AA","#002A2A"],dark_red:["#A00","#2A0000"],dark_purple:["#A0A","#2A002A"],gold:["#FA0","#2A2A00"],gray:["#AAA","#2A2A2A"],dark_gray:["#555","#151515"],blue:["#55F","#15153F"],green:["#5F5","#153F15"],aqua:["#5FF","#153F3F"],red:["#F55","#3F1515"],light_purple:["#F5F","#3F153F"],yellow:["#FF5","#3F3F15"],white:["#FFF","#3F3F3F"]},A7=Object.keys(wg);function ef({part:e,shadow:t}){var n;if(e.translate){const{version:r}=Yt(),{value:i}=on(()=>rd(r,e.translate,e.with),[r,e.translate,...(n=e.with)!=null?n:[]]);return p("span",{style:Hs(e,t),children:i!=null?i:e.translate})}return p("span",{style:Hs(e,t),children:e.text})}function Hs(e,t){return{color:e.color&&(A7.includes(e.color)?wg[e.color][t?1:0]:t?"transparent":e.color),fontWeight:e.bold===!0?"bold":void 0,fontStyle:e.italic===!0?"italic":void 0,textDecoration:e.underlined===!0?e.strikethrough===!0?"underline line-through":"underline":e.strikethrough===!0?"line-through":void 0}}function S7({id:e,tag:t,advanced:n,offset:r=[0,0],swap:i}){var c,u,f,h,w,_;const{version:o}=Yt(),{value:a}=on(()=>{var m;const g=e.split(":").join(".");return(m=rd(o,`item.${g}`))!=null?m:rd(o,`block.${g}`)},[o,e]),s=(c=t==null?void 0:t.display)==null?void 0:c.Name,l=s?JSON.parse(s):a!=null?a:I7(e),d=vl.get(e);return R("div",{class:"item-tooltip",style:r&&{left:i?void 0:`${r[0]}px`,right:i?`${r[0]}px`:void 0,top:`${r[1]}px`},children:[p(jn,{component:l,base:{color:"white"}}),(u=t==null?void 0:t.Enchantments)==null?void 0:u.map(({id:g,lvl:m})=>{const v=Xi(g),x=[{translate:`enchantment.${g.replace(":",".")}`,color:v!=null&&v.curse?"red":"gray"}];return(m!==1||(v==null?void 0:v.maxLevel)!==1)&&x.push(" ",{translate:`enchantment.level.${m}`}),p(jn,{component:x})}),(t==null?void 0:t.display)&&R(ce,{children:[((f=t==null?void 0:t.display)==null?void 0:f.color)&&(n?p(jn,{component:{translate:"item.color",with:[`#${t.display.color.toString(16).padStart(6,"0")}`],color:"gray"}}):p(jn,{component:{translate:"item.dyed",color:"gray"}})),((w=(h=t==null?void 0:t.display)==null?void 0:h.Lore)!=null?w:[]).map(g=>p(jn,{component:JSON.parse(g),base:{color:"dark_purple",italic:!0}}))]}),(t==null?void 0:t.Unbreakable)===!0&&p(jn,{component:{translate:"item.unbreakable",color:"blue"}}),n&&((_=t==null?void 0:t.Damage)!=null?_:0)>0&&d&&p(jn,{component:{translate:"item.durability",with:[`${d-t.Damage}`,`${d}`]}}),n&&R(ce,{children:[p(jn,{component:{text:e,color:"dark_gray"}}),t&&p(jn,{component:{translate:"item.nbt_tags",with:[Object.keys(t).length],color:"dark_gray"}})]})]})}function I7(e){const t=e.replace(/minecraft:/,"").replaceAll("_"," ");return t[0].toUpperCase()+t.slice(1)}const fe={alert:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("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:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("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:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("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:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("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:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("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:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("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_left:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("path",{"fill-rule":"evenodd",d:"M9.78 12.78a.75.75 0 01-1.06 0L4.47 8.53a.75.75 0 010-1.06l4.25-4.25a.75.75 0 011.06 1.06L6.06 8l3.72 3.72a.75.75 0 010 1.06z"})}),chevron_right:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("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:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("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:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("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:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("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"})}),codescan_checkmark:R("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:[p("path",{d:"M10.28 6.28a.75.75 0 10-1.06-1.06L6.25 8.19l-.97-.97a.75.75 0 00-1.06 1.06l1.5 1.5a.75.75 0 001.06 0l3.5-3.5z"}),p("path",{"fill-rule":"evenodd",d:"M7.5 15a7.469 7.469 0 004.746-1.693l2.474 2.473a.75.75 0 101.06-1.06l-2.473-2.474A7.5 7.5 0 107.5 15zm0-13.5a6 6 0 104.094 10.386.75.75 0 01.293-.292A6 6 0 007.5 1.5z"})]}),dash:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("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:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("path",{"fill-rule":"evenodd",d:"M1.75 2.5h12.5a.25.25 0 01.25.25v7.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25v-7.5a.25.25 0 01.25-.25zM14.25 1H1.75A1.75 1.75 0 000 2.75v7.5C0 11.216.784 12 1.75 12h3.727c-.1 1.041-.52 1.872-1.292 2.757A.75.75 0 004.75 16h6.5a.75.75 0 00.565-1.243c-.772-.885-1.193-1.716-1.292-2.757h3.727A1.75 1.75 0 0016 10.25v-7.5A1.75 1.75 0 0014.25 1zM9.018 12H6.982a5.72 5.72 0 01-.765 2.5h3.566a5.72 5.72 0 01-.765-2.5z"})}),dot_fill:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("path",{"fill-rule":"evenodd",d:"M8 4a4 4 0 100 8 4 4 0 000-8z"})}),download:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("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:R("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:[p("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"}),p("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"}),p("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:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("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:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("path",{"fill-rule":"evenodd",d:"M.143 2.31a.75.75 0 011.047-.167l14.5 10.5a.75.75 0 11-.88 1.214l-2.248-1.628C11.346 13.19 9.792 14 8 14c-1.981 0-3.67-.992-4.933-2.078C1.797 10.832.88 9.577.43 8.9a1.618 1.618 0 010-1.797c.353-.533.995-1.42 1.868-2.305L.31 3.357A.75.75 0 01.143 2.31zm3.386 3.378a14.21 14.21 0 00-1.85 2.244.12.12 0 00-.022.068c0 .021.006.045.022.068.412.621 1.242 1.75 2.366 2.717C5.175 11.758 6.527 12.5 8 12.5c1.195 0 2.31-.488 3.29-1.191L9.063 9.695A2 2 0 016.058 7.52l-2.53-1.832zM8 3.5c-.516 0-1.017.09-1.499.251a.75.75 0 11-.473-1.423A6.23 6.23 0 018 2c1.981 0 3.67.992 4.933 2.078 1.27 1.091 2.187 2.345 2.637 3.023a1.619 1.619 0 010 1.798c-.11.166-.248.365-.41.587a.75.75 0 11-1.21-.887c.148-.201.272-.382.371-.53a.119.119 0 000-.137c-.412-.621-1.242-1.75-2.366-2.717C10.825 4.242 9.473 3.5 8 3.5z"})}),file:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("path",{"fill-rule":"evenodd",d:"M3.75 1.5a.25.25 0 00-.25.25v11.5c0 .138.112.25.25.25h8.5a.25.25 0 00.25-.25V6H9.75A1.75 1.75 0 018 4.25V1.5H3.75zm5.75.56v2.19c0 .138.112.25.25.25h2.19L9.5 2.06zM2 1.75C2 .784 2.784 0 3.75 0h5.086c.464 0 .909.184 1.237.513l3.414 3.414c.329.328.513.773.513 1.237v8.086A1.75 1.75 0 0112.25 15h-8.5A1.75 1.75 0 012 13.25V1.75z"})}),file_directory:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("path",{"fill-rule":"evenodd",d:"M1.75 1A1.75 1.75 0 000 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0016 13.25v-8.5A1.75 1.75 0 0014.25 3h-6.5a.25.25 0 01-.2-.1l-.9-1.2c-.33-.44-.85-.7-1.4-.7h-3.5z"})}),file_zip:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("path",{"fill-rule":"evenodd",d:"M3.5 1.75a.25.25 0 01.25-.25h3a.75.75 0 000 1.5h.5a.75.75 0 000-1.5h2.086a.25.25 0 01.177.073l2.914 2.914a.25.25 0 01.073.177v8.586a.25.25 0 01-.25.25h-.5a.75.75 0 000 1.5h.5A1.75 1.75 0 0014 13.25V4.664c0-.464-.184-.909-.513-1.237L10.573.513A1.75 1.75 0 009.336 0H3.75A1.75 1.75 0 002 1.75v11.5c0 .649.353 1.214.874 1.515a.75.75 0 10.752-1.298.25.25 0 01-.126-.217V1.75zM8.75 3a.75.75 0 000 1.5h.5a.75.75 0 000-1.5h-.5zM6 5.25a.75.75 0 01.75-.75h.5a.75.75 0 010 1.5h-.5A.75.75 0 016 5.25zm2 1.5A.75.75 0 018.75 6h.5a.75.75 0 010 1.5h-.5A.75.75 0 018 6.75zm-1.25.75a.75.75 0 000 1.5h.5a.75.75 0 000-1.5h-.5zM8 9.75A.75.75 0 018.75 9h.5a.75.75 0 010 1.5h-.5A.75.75 0 018 9.75zm-.75.75a1.75 1.75 0 00-1.75 1.75v3c0 .414.336.75.75.75h2.5a.75.75 0 00.75-.75v-3a1.75 1.75 0 00-1.75-1.75h-.5zM7 12.25a.25.25 0 01.25-.25h.5a.25.25 0 01.25.25v2.25H7v-2.25z"})}),gear:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("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"})}),git_commit:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("path",{"fill-rule":"evenodd",d:"M10.5 7.75a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0zm1.43.75a4.002 4.002 0 01-7.86 0H.75a.75.75 0 110-1.5h3.32a4.001 4.001 0 017.86 0h3.32a.75.75 0 110 1.5h-3.32z"})}),globe:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("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"})}),heart:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("path",{"fill-rule":"evenodd",d:"M4.25 2.5c-1.336 0-2.75 1.164-2.75 3 0 2.15 1.58 4.144 3.365 5.682A20.565 20.565 0 008 13.393a20.561 20.561 0 003.135-2.211C12.92 9.644 14.5 7.65 14.5 5.5c0-1.836-1.414-3-2.75-3-1.373 0-2.609.986-3.029 2.456a.75.75 0 01-1.442 0C6.859 3.486 5.623 2.5 4.25 2.5zM8 14.25l-.345.666-.002-.001-.006-.003-.018-.01a7.643 7.643 0 01-.31-.17 22.075 22.075 0 01-3.434-2.414C2.045 10.731 0 8.35 0 5.5 0 2.836 2.086 1 4.25 1 5.797 1 7.153 1.802 8 3.02 8.847 1.802 10.203 1 11.75 1 13.914 1 16 2.836 16 5.5c0 2.85-2.045 5.231-3.885 6.818a22.08 22.08 0 01-3.744 2.584l-.018.01-.006.003h-.002L8 14.25zm0 0l.345.666a.752.752 0 01-.69 0L8 14.25z"})}),history:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("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:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("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:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("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:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("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:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("path",{"fill-rule":"evenodd",d:"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"})}),link_external:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("path",{"fill-rule":"evenodd",d:"M10.604 1h4.146a.25.25 0 01.25.25v4.146a.25.25 0 01-.427.177L13.03 4.03 9.28 7.78a.75.75 0 01-1.06-1.06l3.75-3.75-1.543-1.543A.25.25 0 0110.604 1zM3.75 2A1.75 1.75 0 002 3.75v8.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 12.25v-3.5a.75.75 0 00-1.5 0v3.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-8.5a.25.25 0 01.25-.25h3.5a.75.75 0 000-1.5h-3.5z"})}),mark_github:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("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:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("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"})}),package:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("path",{"fill-rule":"evenodd",d:"M8.878.392a1.75 1.75 0 00-1.756 0l-5.25 3.045A1.75 1.75 0 001 4.951v6.098c0 .624.332 1.2.872 1.514l5.25 3.045a1.75 1.75 0 001.756 0l5.25-3.045c.54-.313.872-.89.872-1.514V4.951c0-.624-.332-1.2-.872-1.514L8.878.392zM7.875 1.69a.25.25 0 01.25 0l4.63 2.685L8 7.133 3.245 4.375l4.63-2.685zM2.5 5.677v5.372c0 .09.047.171.125.216l4.625 2.683V8.432L2.5 5.677zm6.25 8.271l4.625-2.683a.25.25 0 00.125-.216V5.677L8.75 8.432v5.516z"})}),pencil:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("path",{"fill-rule":"evenodd",d:"M11.013 1.427a1.75 1.75 0 012.474 0l1.086 1.086a1.75 1.75 0 010 2.474l-8.61 8.61c-.21.21-.47.364-.756.445l-3.251.93a.75.75 0 01-.927-.928l.929-3.25a1.75 1.75 0 01.445-.758l8.61-8.61zm1.414 1.06a.25.25 0 00-.354 0L10.811 3.75l1.439 1.44 1.263-1.263a.25.25 0 000-.354l-1.086-1.086zM11.189 6.25L9.75 4.81l-6.286 6.287a.25.25 0 00-.064.108l-.558 1.953 1.953-.558a.249.249 0 00.108-.064l6.286-6.286z"})}),play:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("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:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("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:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("path",{"fill-rule":"evenodd",d:"M1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0zM8 0a8 8 0 100 16A8 8 0 008 0zm.75 4.75a.75.75 0 00-1.5 0v2.5h-2.5a.75.75 0 000 1.5h2.5v2.5a.75.75 0 001.5 0v-2.5h2.5a.75.75 0 000-1.5h-2.5v-2.5z"})}),repo:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("path",{"fill-rule":"evenodd",d:"M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"})}),rocket:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("path",{"fill-rule":"evenodd",d:"M14.064 0a8.75 8.75 0 00-6.187 2.563l-.459.458c-.314.314-.616.641-.904.979H3.31a1.75 1.75 0 00-1.49.833L.11 7.607a.75.75 0 00.418 1.11l3.102.954c.037.051.079.1.124.145l2.429 2.428c.046.046.094.088.145.125l.954 3.102a.75.75 0 001.11.418l2.774-1.707a1.75 1.75 0 00.833-1.49V9.485c.338-.288.665-.59.979-.904l.458-.459A8.75 8.75 0 0016 1.936V1.75A1.75 1.75 0 0014.25 0h-.186zM10.5 10.625c-.088.06-.177.118-.266.175l-2.35 1.521.548 1.783 1.949-1.2a.25.25 0 00.119-.213v-2.066zM3.678 8.116L5.2 5.766c.058-.09.117-.178.176-.266H3.309a.25.25 0 00-.213.119l-1.2 1.95 1.782.547zm5.26-4.493A7.25 7.25 0 0114.063 1.5h.186a.25.25 0 01.25.25v.186a7.25 7.25 0 01-2.123 5.127l-.459.458a15.21 15.21 0 01-2.499 2.02l-2.317 1.5-2.143-2.143 1.5-2.317a15.25 15.25 0 012.02-2.5l.458-.458h.002zM12 5a1 1 0 11-2 0 1 1 0 012 0zm-8.44 9.56a1.5 1.5 0 10-2.12-2.12c-.734.73-1.047 2.332-1.15 3.003a.23.23 0 00.265.265c.671-.103 2.273-.416 3.005-1.148z"})}),rows:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("path",{"fill-rule":"evenodd",d:"M16 2.75A1.75 1.75 0 0014.25 1H1.75A1.75 1.75 0 000 2.75v2.5A1.75 1.75 0 001.75 7h12.5A1.75 1.75 0 0016 5.25v-2.5zm-1.75-.25a.25.25 0 01.25.25v2.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25v-2.5a.25.25 0 01.25-.25h12.5zM16 10.75A1.75 1.75 0 0014.25 9H1.75A1.75 1.75 0 000 10.75v2.5A1.75 1.75 0 001.75 15h12.5A1.75 1.75 0 0016 13.25v-2.5zm-1.75-.25a.25.25 0 01.25.25v2.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25v-2.5a.25.25 0 01.25-.25h12.5z"})}),search:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("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:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("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:R("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:[p("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"}),p("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"})]}),square:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("path",{"fill-rule":"evenodd",d:"M4 5.75C4 4.784 4.784 4 5.75 4h4.5c.966 0 1.75.784 1.75 1.75v4.5A1.75 1.75 0 0110.25 12h-4.5A1.75 1.75 0 014 10.25v-4.5zm1.75-.25a.25.25 0 00-.25.25v4.5c0 .138.112.25.25.25h4.5a.25.25 0 00.25-.25v-4.5a.25.25 0 00-.25-.25h-4.5z"})}),square_fill:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("path",{"fill-rule":"evenodd",d:"M5.75 4A1.75 1.75 0 004 5.75v4.5c0 .966.784 1.75 1.75 1.75h4.5A1.75 1.75 0 0012 10.25v-4.5A1.75 1.75 0 0010.25 4h-4.5z"})}),stack:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("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:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("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:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("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:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("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:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("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:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("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:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("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:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("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:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("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:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("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:p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:p("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 vg({item:e,slotDecoration:t,advancedTooltip:n}){var d,c;const r=Ie(null),[i,o]=Y([0,0]),[a,s]=Y(!1);me(()=>{var f;const u=h=>{requestAnimationFrame(()=>{const{right:w,width:_}=r.current.getBoundingClientRect(),g=w+200>document.body.clientWidth;s(g),o([(g?_-h.offsetX:h.offsetX)+20,h.offsetY-40])})};return(f=r.current)==null||f.addEventListener("mousemove",u),()=>{var h;return(h=r.current)==null?void 0:h.removeEventListener("mousemove",u)}},[]);const l=vl.get(e.id);return R("div",{class:"item-display",ref:r,children:[p(M7,{item:e}),e.count!==1&&p(ce,{children:R("svg",{class:"item-count",width:"100%",height:"100%",viewBox:"0 0 100 100",preserveAspectRatio:"xMinYMid meet",children:[p("text",{x:"95",y:"93","font-size":"50",textAnchor:"end",fontFamily:"MinecraftSeven",fill:"#373737",children:e.count}),p("text",{x:"90",y:"88","font-size":"50",textAnchor:"end",fontFamily:"MinecraftSeven",fill:"#ffffff",children:e.count})]})}),t&&R(ce,{children:[l&&((c=(d=e.tag)==null?void 0:d.Damage)!=null?c:0)>0&&R("svg",{class:"item-durability",width:"100%",height:"100%",viewBox:"0 0 18 18",children:[p("rect",{x:"3",y:"14",width:"13",height:"2",fill:"#000"}),p("rect",{x:"3",y:"14",width:`${(l-e.tag.Damage)/l*13}`,height:"1",fill:`hsl(${(l-e.tag.Damage)/l*120}deg, 100%, 50%)`})]}),p("div",{class:"item-slot-overlay"})]}),p(S7,be(oe({},e),{advanced:n,offset:i,swap:a}))]})}function M7({item:e}){var l,d,c,u,f,h;const{version:t}=Yt(),[n,r]=Y(!1),i=((c=(d=(l=e.tag)==null?void 0:l.Enchantments)==null?void 0:d.length)!=null?c:0)>0||((h=(f=(u=e.tag)==null?void 0:u.StoredEnchantments)==null?void 0:f.length)!=null?h:0)>0;if(n||e.id.includes(":")&&!e.id.startsWith("minecraft:"))return fe.package;const{value:o}=on(()=>Jp(t),[]);if(o===void 0)return null;const a=`item/${e.id.replace(/^minecraft:/,"")}`;if(o.get("texture").includes("minecraft:"+a)){const w=mv(t,"textures",a);return R(ce,{children:[p("img",{src:w,alt:"",onError:()=>r(!0),draggable:!1}),i&&p("div",{class:"item-glint",style:{"--mask-image":`url("${w}")`}})]})}const s=`item/${e.id.replace(/^minecraft:/,"")}`;return o.get("model").includes("minecraft:"+s)?p(T7,{item:e,isEnchanted:i}):fe.package}function T7({item:e,isEnchanted:t}){const{version:n}=Yt(),{value:r}=on(()=>y7(n,e.id),[n,e]);return r?R(ce,{children:[p("img",{src:r,alt:e.id,class:"model",draggable:!1}),t&&p("div",{class:"item-glint",style:{"--mask-image":`url("${r}")`}})]}):p("div",{class:"item-display",children:fe.package})}const L7=({data:e})=>{const{locale:t}=Ee(),{version:n}=Yt(),[r,i]=Y(tn()),[o,a]=Y(0),[s,l]=Y(0),[d,c]=Y("clear"),[u,f]=Y(!0),[h,w]=Y(!0),_=Ie(null),[g,m]=Y([]),v=P.DataModel.unwrapLists(e),x=JSON.stringify(v);return me(()=>{const b=t7(v,{version:n,seed:r,luck:o,daytime:s,weather:d,stackMixer:u?"container":"default"});m(b)},[n,r,o,s,d,u,x]),R(ce,{children:[R("div",{ref:_,class:"preview-overlay",children:[p("img",{src:"/images/container.png",alt:"Container background",class:"pixelated",draggable:!1}),g.map(({slot:b,item:y})=>p("div",{style:O7(b),children:p(vg,{item:y,slotDecoration:!0,advancedTooltip:h})},b))]}),R("div",{class:"controls preview-controls",children:[R(Lt,{icon:"gear",tooltip:t("settings"),children:[R("div",{class:"btn btn-input",onClick:b=>b.stopPropagation(),children:[p("span",{children:t("preview.luck")}),p(Ts,{value:o,onChange:a})]}),R("div",{class:"btn btn-input",onClick:b=>b.stopPropagation(),children:[p("span",{children:t("preview.daytime")}),p(Ts,{value:s,onChange:l})]}),R("div",{class:"btn btn-input",onClick:b=>b.stopPropagation(),children:[p("span",{children:t("preview.weather")}),p("select",{value:d,onChange:b=>c(b.target.value),children:["clear","rain","thunder"].map(b=>p("option",{value:b,children:t(`preview.weather.${b}`)}))})]}),p(ae,{icon:u?"square_fill":"square",label:"Fill container randomly",onClick:b=>{f(!u),b.stopPropagation()}}),p(ae,{icon:h?"square_fill":"square",label:"Advanced tooltips",onClick:b=>{w(!h),b.stopPropagation()}})]}),p(ae,{icon:"sync",tooltip:t("generate_new_seed"),onClick:()=>i(tn())})]})]})},tf=176,nf=81,ja=18;function O7(e){e=_t(e,0,26);const t=e%9*ja+7,n=Math.floor(e/9)*ja+20;return{left:`${t*100/tf}%`,top:`${n*100/nf}%`,width:`${ja*100/tf}%`,height:`${ja*100/nf}%`}}const N7=["loot_table","dimension","worldgen/density_function","worldgen/noise","worldgen/noise_settings","worldgen/configured_feature","worldgen/placed_feature"];function R7({model:e,version:t,id:n,shown:r}){var o;const[,i]=Y(0);if(sl(e,()=>{i(a=>a+1)}),!e)return p(ce,{});if(n==="loot_table"){const a=e.get(new P.Path([]));if(a)return p(L7,{model:e,version:t,shown:r,data:a})}if(n==="dimension"&&((o=e.get(new P.Path(["generator","type"])))==null?void 0:o.endsWith("noise"))){const a=e.get(new P.Path(["generator","biome_source"]));if(a)return p(q4,{model:e,version:t,shown:r,data:a})}if(n==="worldgen/density_function"){const a=e.get(new P.Path([]));if(a)return p(K4,{model:e,version:t,shown:r,data:a})}if(n==="worldgen/noise"){const a=e.get(new P.Path([]));if(a)return p(J4,{model:e,version:t,shown:r,data:a})}if(n==="worldgen/noise_settings"){const a=e.get(new P.Path([]));if(a)return p(Q4,{model:e,version:t,shown:r,data:a})}if(n==="worldgen/placed_feature"||n==="worldgen/configured_feature"&&mt(t,"1.16","1.17")){const a=e.get(new P.Path([]));if(a)return p(X4,{model:e,version:t,shown:r,data:a})}return p(ce,{})}function D7({onClose:e}){const{locale:t}=Ee(),{projects:n,createProject:r,changeProject:i,updateProject:o}=Pn(),[a,s]=Y(""),[l,d]=Y(""),[c,u]=Y(kv),[f,h]=Y(void 0),[w,_]=Y(!1),g=k=>{k.type.match(/^application\/(x-)?zip(-compressed)?$/)&&(a.length===0&&s(k.name.replace(/\.zip$/,"").replaceAll(/[ _-]+/g," ")),h(k))},m=Ie(o);me(()=>{m.current=o},[o]);const v=()=>{_(!0),r(a,l||void 0,c),i(a),f?ev(f).then(async k=>{const C={files:[]};await Promise.all(k.map(async E=>{const M=a2(E[0]);if(M)try{const S=await n2(E[1],"json");C.files.push(be(oe({},M),{data:S}))}catch(S){console.error(`Failed parsing ${M.type} ${M.id}: ${Et(S)}`)}})),m.current(C),e()}).catch(()=>{e()}):e()},x=Ce(()=>n.map(k=>k.name.trim().toLowerCase()).includes(a.trim().toLowerCase()),[n,a]),b=Ce(()=>!(l.length===0||l.match(/^(?:[a-z0-9._-]+:)?[a-z0-9/._-]+$/)),[l]),y=Fe.versions.map(k=>k.id).reverse();return R(ll,{class:"project-creation",onDismiss:e,children:[p("p",{children:t("project.create")}),R("div",{class:"input-group",children:[p(_n,{autofocus:!0,class:`btn btn-input${!w&&(x||a.length===0)?" invalid":""}`,placeholder:t("project.name"),value:a,onChange:s}),!w&&x&&p("div",{class:"status-icon danger tooltipped tip-e","aria-label":t("project.name.already_exists"),children:fe.issue_opened})]}),R("div",{class:"input-group",children:[p(_n,{class:`btn btn-input${!w&&b?" invalid":""}`,placeholder:t("project.namespace"),value:l,onChange:d}),!w&&b&&p("div",{class:"status-icon danger tooltipped tip-e","aria-label":t("project.namespace.invalid"),children:fe.issue_opened})]}),p(Lt,{icon:"tag",label:c,tooltip:t("switch_version"),"data-cy":"version-switcher",children:y.map(k=>p(ae,{label:k,active:k===c,onClick:()=>u(k)}))}),p(Gv,{value:f,onChange:g,label:t("choose_zip_file"),accept:".zip"}),p(ae,{icon:"rocket",label:"Create!",disabled:w||x||a.length===0||b,onClick:v})]})}function F7({onClose:e}){const{locale:t}=Ee(),{projects:n,project:r,deleteProject:i}=Pn(),o=()=>{Oe.deleteProject(n.length,r.files.length,"menu"),i(r.name),e()};return R(ll,{class:"file-modal",onDismiss:e,children:[p("p",{children:t("project.delete_confirm.1",r.name)}),p("p",{children:p("b",{children:t("project.delete_confirm.2")})}),R("div",{class:"button-group",children:[p(ae,{icon:"trashcan",label:t("project.delete"),onClick:o,class:"danger"}),p(ae,{label:t("project.cancel"),onClick:e})]})]})}const Nr="/";function bg({entries:e,onSelect:t,selected:n,actions:r,errors:i,indent:o}){const a=Ce(()=>{var f;const u={};for(const h of e){const w=h.indexOf(Nr);if(w>=0){const _=h.slice(0,w);((f=u[_])!=null?f:u[_]=[]).push(h.slice(w+1))}}return Object.entries(u).map(([h,w])=>{const _=r==null?void 0:r.map(m=>be(oe({},m),{onAction:v=>m.onAction(h+Nr+v)})),g=i==null?void 0:i.flatMap(m=>m.path.startsWith(h+Nr)?[be(oe({},m),{path:m.path.slice(h.length+Nr.length)})]:[]);return[h,w,_,g]}).sort()},[e,r,i]),s=Ce(()=>e.filter(u=>!u.includes(Nr)),[e]),[l,d]=Y(new Set),c=u=>{l.has(u)?l.delete(u):l.add(u),d(new Set(l))};return R("div",{class:"tree-view",style:`--indent: ${o!=null?o:0};`,children:[a.map(([u,f,h,w])=>{var _;return R("div",{children:[p(rf,{icon:l.has(u)?"chevron_right":"chevron_down",label:u,onClick:()=>c(u),error:((_=w==null?void 0:w.length)!=null?_:0)>0},u),!l.has(u)&&p(bg,{entries:f,onSelect:g=>t(`${u}${Nr}${g}`),selected:n!=null&&n.startsWith(u+Nr)?n.substring(u.length+1):void 0,actions:h,errors:w,indent:(o!=null?o:0)+1})]})}),s.map(u=>{var f;return p(rf,{icon:"file",label:u,active:u===n,onClick:()=>t(u),actions:r==null?void 0:r.map(h=>be(oe({},h),{onAction:()=>h.onAction(u)})),error:(f=i==null?void 0:i.find(h=>h.path===u))==null?void 0:f.message},u)})]})}function rf({icon:e,label:t,active:n,onClick:r,actions:i,error:o}){const[a,s]=al();return R("div",{class:`entry${o?" has-error":""}${n?" active":""}${a?" focused":""}`,onClick:r,onContextMenu:d=>{d.preventDefault(),i!=null&&i.length&&s()},children:[fe[e],p("span",{children:t.replaceAll("\u2215","/")}),typeof o=="string"&&p("div",{class:"status-icon danger tooltipped tip-se","aria-label":o,children:fe.issue_opened}),a&&p("div",{class:"entry-menu",children:i==null?void 0:i.map(d=>R("div",{class:"action",onClick:c=>{d.onAction(""),c.stopPropagation(),s(!1)},children:[fe[d.icon],d.label]}))})]})}function P7({onRename:e,onCreate:t,onDeleteProject:n}){const{locale:r}=Ee(),{version:i}=Yt(),{projects:o,project:a,changeProject:s,file:l,openFile:d,updateFile:c}=Pn(),[u,f]=Y(He.getTreeViewMode()),h=je(y=>{He.setTreeViewMode(y),Oe.setTreeViewMode(y),f(y)},[]),w=je(y=>{if(u==="resources"&&y!=="pack.mcmeta"){const[k,C]=y.split("/");return{type:k.replaceAll("\u2215","/"),id:C.replaceAll("\u2215","/")}}return a2(y)},[u]),_=Ce(()=>a.files.flatMap(y=>{const k=Zl(y);return k?y.type==="pack_mcmeta"?"pack.mcmeta":u==="resources"?[`${y.type.replaceAll("/","\u2215")}/${y.id.replaceAll("/","\u2215")}`]:[k]:[]}),[u,...a.files]),g=Ce(()=>l&&Zl(l),[l]),m=je(y=>{const k=w(y);k&&d(k.type,k.id)},[w]),v=Ie(null),x=async()=>{if(!v.current)return;let y=!1;const k=a.files.flatMap(E=>{const M=Zl(E);return M===void 0?[]:(M==="pack.mcmeta"&&(y=!0),[[M,Hc(E.data)]])});if(!y){const E=Fe.versions.find(M=>M.id===i).pack_format;k.push(["pack.mcmeta",Hc({pack:{pack_format:E,description:""}})])}const C=await tv(k);v.current.setAttribute("href",C),v.current.setAttribute("download",`${a.name.replaceAll(" ","_")}.zip`),v.current.click()},b=Ce(()=>[{icon:"pencil",label:r("project.rename_file"),onAction:y=>{const k=w(y);k&&e(k)}},{icon:"trashcan",label:r("project.delete_file"),onAction:y=>{const k=w(y);k&&(Oe.deleteProjectFile(k.type,o.length,a.files.length,"menu"),c(k.type,k.id,{}))}}],[w,c,e]);return R(ce,{children:[R("div",{class:"project-controls",children:[p(Lt,{icon:"chevron_down",label:a.name,tooltip:r("switch_project"),tooltipLoc:"se",children:o.map(y=>p(ae,{label:y.name,active:y.name===a.name,onClick:()=>s(y.name)}))}),R(Lt,{icon:"kebab_horizontal",children:[p(ae,{icon:"file_zip",label:r("project.download"),onClick:x}),p(ae,{icon:"plus_circle",label:r("project.new"),onClick:t}),p(ae,{icon:u==="resources"?"three_bars":"rows",label:r(u==="resources"?"project.show_file_paths":"project.show_resources"),onClick:()=>h(u==="resources"?"files":"resources")}),a.name!==Cr.name&&p(ae,{icon:"trashcan",label:r("project.delete"),onClick:n})]})]}),p("div",{class:"file-view",children:_.length===0?p("span",{children:r("project.no_files")}):p(bg,{entries:_,selected:g,onSelect:m,actions:b})}),p("a",{ref:v,style:"display: none;"})]})}function id(e,t){return e.schema.hook($7,new P.ModelPath(e),e.data,{blockStates:t})}const $7={base({},e,t){return t},choice({switchNode:e},t,n,r){return e.hook(this,t,n,r)},list({children:e},t,n,r){if(!Array.isArray(n))return n;const i=n.map((o,a)=>e.hook(this,t.push(a),o.node,r));for(const o of Object.getOwnPropertySymbols(n))i[o]=n[o];return i},map({children:e,config:t},n,r,i){var s,l;if(r===void 0)return;const o=((s=t.validation)==null?void 0:s.validator)==="block_state_map"?(l=i.blockStates)==null?void 0:l[P.relativePath(n,t.validation.params.id).get()]:null,a={};Object.keys(r).forEach(d=>{var c;o&&!Object.keys((c=o.properties)!=null?c:{}).includes(d)||(a[d]=e.hook(this,n.push(d),r[d],i))});for(const d of Object.getOwnPropertySymbols(r))a[d]=r[d];return a},object({getActiveFields:e},t,n,r){if(n==null||typeof n!="object")return n;const i={},o=e(t);Object.keys(o).filter(a=>o[a].enabled(t)).forEach(a=>{const s=o[a].hook(this,t.push(a),n[a],r);s!=null&&(i[a]=s)});for(const a of Object.getOwnPropertySymbols(n))i[a]=n[a];return i}};function B7({name:e,model:t,blockStates:n,doCopy:r,doDownload:i,doImport:o,copySuccess:a,onError:s}){const{locale:l}=Ee(),[d,c]=Y(He.getIndent()),[u,f]=Y(He.getFormat()),[h,w]=Y(He.getHighlighting()),[_,g]=Y(!1),m=Ie(null),v=Ie(()=>{}),x=Ie(async()=>{}),b=Ie(null),y=Ie(),k=je((S,T)=>{const L=id(S,T);return Hc(L,u,d)},[d,u]);me(()=>{v.current=()=>{if(!!y.current&&!(!t||!n))try{const S=k(t,n);y.current.setValue(S)}catch(S){S instanceof Error?(S.message=`Error getting JSON output: ${S.message}`,s(S)):s(`Error getting JSON output: ${Et(S)}`),console.error(S),y.current.setValue("")}},x.current=async()=>{if(!y.current)return;const S=y.current.getValue();if(S.length!==0)try{const T=await n2(S,u);t==null||t.reset(P.DataModel.wrapLists(T),!1)}catch(T){T instanceof Error?(T.message=`Error importing: ${T.message}`,s(T)):s(`Error importing: ${Et(T)}`),console.error(T)}}},[t,n,d,u,h]),me(()=>{h?(g(!1),y.current={getValue(){return""},setValue(){},configure(){},select(){}},ke(()=>import("./index.8ac52a74.js").then(function(S){return S.i}),[]).then(async S=>{await Promise.all([ke(()=>import("./json.c327d69b.js").then(function(L){return L.j}),[]),ke(()=>import("./yaml.e8f3b9ab.js"),[])]);const T=S.edit("editor");T.setOptions({fontSize:14,showFoldWidgets:!1,highlightSelectedWord:!1}),T.$blockScrolling=1/0,T.on("blur",()=>x.current()),T.getSession().setMode("ace/mode/json"),y.current={getValue(){return T.getSession().getValue()},setValue(L){T.getSession().setValue(L)},configure(L,F){T.setOption("useSoftTabs",L!=="tabs"),T.setOption("tabSize",L==="tabs"?4:Tv(L)),T.getSession().setMode(`ace/mode/${F}`)},select(){T.selectAll()}},g(!0)})):y.current={getValue(){return b.current?b.current.value:""},setValue(S){!b.current||(b.current.value=S)},configure(){},select(){}}},[h]),sl(t,()=>{!v.current||v.current()}),me(()=>{!v.current||t&&v.current()},[t]),me(()=>{!y.current||!v.current||(!h||_)&&(y.current.configure(d,u),v.current())},[d,u,h,_]),me(()=>{r&&t&&n&&navigator.clipboard.writeText(k(t,n)).then(()=>{a()})},[r]),me(()=>{if(i&&t&&n&&m.current){const S=encodeURIComponent(k(t,n));m.current.setAttribute("href",`data:text/json;charset=utf-8,${S}`);const T=e==="pack_mcmeta"?"pack.mcmeta":`${e}.${u}`;m.current.setAttribute("download",T),m.current.click()}},[i]),me(()=>{o&&y.current&&(y.current.setValue(""),y.current.select())},[o]);const C=S=>{He.setIndent(S),c(S)},E=S=>{He.setFormat(S),f(S)},M=S=>{He.setHighlighting(S),w(S)};return R(ce,{children:[p("div",{class:"controls source-controls",children:R(Lt,{icon:"gear",tooltip:l("output_settings"),"data-cy":"source-controls",children:[Lv().map(S=>p(ae,{label:l(`indentation.${S}`),active:d===S,onClick:()=>C(S)})),p("hr",{}),Ov().map(S=>p(ae,{label:l(`format.${S}`),active:u===S,onClick:()=>E(S)})),p("hr",{}),p(ae,{icon:h?"square_fill":"square",label:l("highlighting"),onClick:()=>M(!h)})]})}),h?p("pre",{id:"editor",class:"source"}):p("textarea",{ref:b,class:"source",spellcheck:!1,autocorrect:"off",onBlur:x.current}),p("a",{ref:m,style:"display: none;"})]})}function xg(e,t){for(var n in t)e[n]=t[n];return e}function od(e,t){for(var n in e)if(n!=="__source"&&!(n in t))return!0;for(var r in t)if(r!=="__source"&&e[r]!==t[r])return!0;return!1}function ad(e){this.props=e}function yg(e,t){function n(i){var o=this.props.ref,a=o==i.ref;return!a&&o&&(o.call?o(null):o.current=null),t?!t(this.props,i)||!a:od(this.props,i)}function r(i){return this.shouldComponentUpdate=n,Gt(e,i)}return r.displayName="Memo("+(e.displayName||e.name)+")",r.prototype.isReactComponent=!0,r.__f=!0,r}(ad.prototype=new Jt).isPureReactComponent=!0,ad.prototype.shouldComponentUpdate=function(e,t){return od(this.props,e)||od(this.state,t)};var of=de.__b;de.__b=function(e){e.type&&e.type.__f&&e.ref&&(e.props.ref=e.ref,e.ref=null),of&&of(e)};var z7=typeof Symbol!="undefined"&&Symbol.for&&Symbol.for("react.forward_ref")||3911;function j7(e){function t(n){var r=xg({},n);return delete r.ref,e(r,n.ref||null)}return t.$$typeof=z7,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName="ForwardRef("+(e.displayName||e.name)+")",t}var af=function(e,t){return e==null?null:Qt(Qt(e).map(t))},V7={map:af,forEach:af,count:function(e){return e?Qt(e).length:0},only:function(e){var t=Qt(e);if(t.length!==1)throw"Children.only";return t[0]},toArray:Qt},U7=de.__e;de.__e=function(e,t,n,r){if(e.then){for(var i,o=t;o=o.__;)if((i=o.__c)&&i.__c)return t.__e==null&&(t.__e=n.__e,t.__k=n.__k),i.__c(e,t)}U7(e,t,n,r)};var sf=de.unmount;function gs(){this.__u=0,this.t=null,this.__b=null}function kg(e){var t=e.__.__c;return t&&t.__e&&t.__e(e)}function H7(e){var t,n,r;function i(o){if(t||(t=e()).then(function(a){n=a.default||a},function(a){r=a}),r)throw r;if(!n)throw t;return Gt(n,o)}return i.displayName="Lazy",i.__f=!0,i}function Co(){this.u=null,this.o=null}de.unmount=function(e){var t=e.__c;t&&t.__R&&t.__R(),t&&e.__h===!0&&(e.type=null),sf&&sf(e)},(gs.prototype=new Jt).__c=function(e,t){var n=t.__c,r=this;r.t==null&&(r.t=[]),r.t.push(n);var i=kg(r.__v),o=!1,a=function(){o||(o=!0,n.__R=null,i?i(s):s())};n.__R=a;var s=function(){if(!--r.__u){if(r.state.__e){var d=r.state.__e;r.__v.__k[0]=function u(f,h,w){return f&&(f.__v=null,f.__k=f.__k&&f.__k.map(function(_){return u(_,h,w)}),f.__c&&f.__c.__P===h&&(f.__e&&w.insertBefore(f.__e,f.__d),f.__c.__e=!0,f.__c.__P=w)),f}(d,d.__c.__P,d.__c.__O)}var c;for(r.setState({__e:r.__b=null});c=r.t.pop();)c.forceUpdate()}},l=t.__h===!0;r.__u++||l||r.setState({__e:r.__b=r.__v.__k[0]}),e.then(a,a)},gs.prototype.componentWillUnmount=function(){this.t=[]},gs.prototype.render=function(e,t){if(this.__b){if(this.__v.__k){var n=document.createElement("div"),r=this.__v.__k[0].__c;this.__v.__k[0]=function o(a,s,l){return a&&(a.__c&&a.__c.__H&&(a.__c.__H.__.forEach(function(d){typeof d.__c=="function"&&d.__c()}),a.__c.__H=null),(a=xg({},a)).__c!=null&&(a.__c.__P===l&&(a.__c.__P=s),a.__c=null),a.__k=a.__k&&a.__k.map(function(d){return o(d,s,l)})),a}(this.__b,n,r.__O=r.__P)}this.__b=null}var i=t.__e&&Gt(tr,null,e.fallback);return i&&(i.__h=null),[Gt(tr,null,t.__e?null:e.children),i]};var lf=function(e,t,n){if(++n[1]===n[0]&&e.o.delete(t),e.props.revealOrder&&(e.props.revealOrder[0]!=="t"||!e.o.size))for(n=e.u;n;){for(;n.length>3;)n.pop()();if(n[1]<n[0])break;e.u=n=n[2]}};function Z7(e){return this.getChildContext=function(){return e.context},e.children}function G7(e){var t=this,n=e.i;t.componentWillUnmount=function(){Gr(null,t.l),t.l=null,t.i=null},t.i&&t.i!==n&&t.componentWillUnmount(),e.__v?(t.l||(t.i=n,t.l={nodeType:1,parentNode:n,childNodes:[],appendChild:function(r){this.childNodes.push(r),t.i.appendChild(r)},insertBefore:function(r,i){this.childNodes.push(r),t.i.appendChild(r)},removeChild:function(r){this.childNodes.splice(this.childNodes.indexOf(r)>>>1,1),t.i.removeChild(r)}}),Gr(Gt(Z7,{context:t.context},e.__v),t.l)):t.l&&t.componentWillUnmount()}function Y7(e,t){var n=Gt(G7,{__v:e,i:t});return n.containerInfo=t,n}(Co.prototype=new Jt).__e=function(e){var t=this,n=kg(t.__v),r=t.o.get(e);return r[0]++,function(i){var o=function(){t.props.revealOrder?(r.push(i),lf(t,e,r)):i()};n?n(o):o()}},Co.prototype.render=function(e){this.u=null,this.o=new Map;var t=Qt(e.children);e.revealOrder&&e.revealOrder[0]==="b"&&t.reverse();for(var n=t.length;n--;)this.o.set(t[n],this.u=[1,0,this.u]);return e.children},Co.prototype.componentDidUpdate=Co.prototype.componentDidMount=function(){var e=this;this.o.forEach(function(t,n){lf(e,n,t)})};var Cg=typeof Symbol!="undefined"&&Symbol.for&&Symbol.for("react.element")||60103,W7=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|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]/,q7=typeof document!="undefined",X7=function(e){return(typeof Symbol!="undefined"&&typeof Symbol()=="symbol"?/fil|che|rad/i:/fil|che|ra/i).test(e)};function K7(e,t,n){return t.__k==null&&(t.textContent=""),Gr(e,t),typeof n=="function"&&n(),e?e.__c:null}function J7(e,t,n){return ud(e,t),typeof n=="function"&&n(),e?e.__c:null}Jt.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(e){Object.defineProperty(Jt.prototype,e,{configurable:!0,get:function(){return this["UNSAFE_"+e]},set:function(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,value:t})}})});var cf=de.event;function Q7(){}function e9(){return this.cancelBubble}function t9(){return this.defaultPrevented}de.event=function(e){return cf&&(e=cf(e)),e.persist=Q7,e.isPropagationStopped=e9,e.isDefaultPrevented=t9,e.nativeEvent=e};var Eg,df={configurable:!0,get:function(){return this.class}},uf=de.vnode;de.vnode=function(e){var t=e.type,n=e.props,r=n;if(typeof t=="string"){var i=t.indexOf("-")===-1;for(var o in r={},n){var a=n[o];q7&&o==="children"&&t==="noscript"||o==="value"&&"defaultValue"in n&&a==null||(o==="defaultValue"&&"value"in n&&n.value==null?o="value":o==="download"&&a===!0?a="":/ondoubleclick/i.test(o)?o="ondblclick":/^onchange(textarea|input)/i.test(o+t)&&!X7(n.type)?o="oninput":/^onfocus$/i.test(o)?o="onfocusin":/^onblur$/i.test(o)?o="onfocusout":/^on(Ani|Tra|Tou|BeforeInp|Compo)/.test(o)?o=o.toLowerCase():i&&W7.test(o)?o=o.replace(/[A-Z0-9]/,"-$&").toLowerCase():a===null&&(a=void 0),/^oninput/i.test(o)&&(o=o.toLowerCase(),r[o]&&(o="oninputCapture")),r[o]=a)}t=="select"&&r.multiple&&Array.isArray(r.value)&&(r.value=Qt(n.children).forEach(function(s){s.props.selected=r.value.indexOf(s.props.value)!=-1})),t=="select"&&r.defaultValue!=null&&(r.value=Qt(n.children).forEach(function(s){s.props.selected=r.multiple?r.defaultValue.indexOf(s.props.value)!=-1:r.defaultValue==s.props.value})),e.props=r,n.class!=n.className&&(df.enumerable="className"in n,n.className!=null&&(r.class=n.className),Object.defineProperty(r,"className",df))}e.$$typeof=Cg,uf&&uf(e)};var ff=de.__r;de.__r=function(e){ff&&ff(e),Eg=e.__c};var n9={ReactCurrentDispatcher:{current:{readContext:function(e){return Eg.__n[e.__c].props.value}}}};function r9(e){return Gt.bind(null,e)}function Ag(e){return!!e&&e.$$typeof===Cg}function i9(e){return Ag(e)?fd.apply(null,arguments):e}function o9(e){return!!e.__k&&(Gr(null,e),!0)}function a9(e){return e&&(e.base||e.nodeType===1&&e)||null}var s9=function(e,t){return e(t)},l9=function(e,t){return e(t)},sd={useState:Y,useReducer:oh,useEffect:me,useLayoutEffect:ah,useRef:Ie,useImperativeHandle:wm,useMemo:Ce,useCallback:je,useContext:ri,useDebugValue:vm,version:"17.0.2",Children:V7,render:K7,hydrate:J7,unmountComponentAtNode:o9,createPortal:Y7,createElement:Gt,createContext:Ir,createFactory:r9,cloneElement:i9,createRef:Hf,Fragment:tr,isValidElement:Ag,findDOMNode:a9,Component:Jt,PureComponent:ad,memo:yg,forwardRef:j7,flushSync:l9,unstable_batchedUpdates:s9,StrictMode:tr,Suspense:gs,SuspenseList:Co,lazy:H7,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:n9};class Sg extends P.DataModel{constructor(t,n,r,i){super(t),this.mapper=n,this.getter=r,this.setter=i}map(t){return this.mapper(t)}get(t){return this.getter(t)}set(t,n,r){return this.setter(t,n,r)}}const c9=["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","structure_placement.type","density_function.type","root_placer.type","entity.type_specific.cat.variant","entity.type_specific.frog.variant"],d9=["number_provider.type","score_provider.type","nbt_provider.type","int_provider.type","float_provider.type","height_provider.type"],u9=["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"],f9=["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","density_function.type","root_placer.type","entity.type_specific.type","glyph_provider.type","immersive_weathering.area_condition.type","immersive_weathering.block_growth.growth_for_face.entry.direction","immersive_weathering.position_test.predicate_type"],h9=["function.set_nbt.tag","advancement.display.icon.nbt","text_component_object.nbt","entity.nbt","block.nbt","item.nbt"],p9=["generator_biome.parameters.temperature","generator_biome.parameters.humidity","generator_biome.parameters.continentalness","generator_biome.parameters.erosion","generator_biome.parameters.depth","generator_biome.parameters.weirdness","feature.end_spike.crystal_beam_target","feature.end_gateway.exit","decorator.block_filter.offset","block_predicate.matching_blocks.offset","block_predicate.matching_fluids.offset","model_element.from","model_element.to","model_element.rotation.origin","model_element.faces.uv","item_transform.rotation","item_transform.translation","item_transform.scale","generator_structure.random_spread.locate_offset"],hf=["noise_settings.surface_rule","noise_settings.noise.terrain_shaper"],g9=["density_function.argument","density_function.argument1","density_function.argument2","density_function.input","density_function.when_in_range","density_function.when_out_of_range"],m9=e=>Fe.generators.find(t=>t.id===e.replace(/^\$/,"")),_9=new P.DataModel(P.MapNode(P.StringNode(),P.StringNode()),{historyMax:0});function w9({model:e,lang:t,version:n,blockStates:r}){var l;const i=new P.ModelPath(e),[o,a,s]=e.schema.hook(Ig,i,ol(e.data),t,n,r,{});return(l=a==null?void 0:a.props)!=null&&l.children.some(d=>d)?R("div",{class:`node ${e.schema.type(i)}-node`,"data-category":e.schema.category(i),children:[R("div",{class:"node-header",children:[o,a]}),p("div",{class:"node-body",children:s})]}):s}const Ig={base(){return[null,null,null]},boolean(e,t,n,r,i,o,a){return[null,p(v9,be(oe({},e),{path:t,value:n,lang:r,version:i,states:o,ctx:a})),null]},choice({choices:e,config:t,switchNode:n},r,i,o,a,s,l){const d=n.activeCase(r,!0),c=t!=null&&t.context?new P.ModelPath(r.getModel(),new P.Path(r.getArray(),[t.context])):r,[u,f,h]=d.node.hook(this,c,i,o,a,s,l);if(e.length===1)return[u,f,h];const w=t!=null&&t.choiceContext?new P.Path([],[t.choiceContext]):t!=null&&t.context?new P.Path([],[t.context]):r,_=m=>{var y;const v=(y=e.find(k=>k.type===m))!=null?y:d,x=v.node.default(),b=v.change?v.change(P.DataModel.unwrapLists(i)):t.choiceContext==="feature"&&(x==null?void 0:x.type)==="minecraft:decorated"?x.config.feature:x;r.model.set(r,P.DataModel.wrapLists(b))},g=p("select",{value:d.type,onChange:m=>_(m.target.value),children:e.map(m=>p("option",{value:m.type,children:Zs(o,w.contextPush(m.type))}))});return[u,R(ce,{children:[g,f]}),h]},list({children:e,config:t},n,r,i,o,a,s){const{expand:l,collapse:d,isToggled:c}=pc(),[u,f]=Y(50),h=n.getContext().join(".");if(p9.includes(h)){const v=R(ce,{children:[[...Array(t.maxLength)].map((b,y)=>p(Eo,{lang:i,path:n.modelPush(y)})),p("div",{class:"fixed-list"})]}),x=p(ce,{children:[...Array(t.maxLength)].map((b,y)=>{var C;return e.hook(this,n.modelPush(y),(C=r==null?void 0:r[y])==null?void 0:C.node,i,o,a,s)[1]})});return[v,x,null]}const w=()=>{Array.isArray(r)||(r=[]);const v=P.DataModel.wrapLists(e.default());n.model.set(n,[{node:v,id:Ur()},...r])},_=()=>{Array.isArray(r)||(r=[]);const v=P.DataModel.wrapLists(e.default());n.model.set(n,[...r,{node:v,id:Ur()}])},g=p("button",{class:"add tooltipped tip-se","aria-label":De(i,"add_top"),onClick:w,children:fe.plus_circle}),m=R(ce,{children:[r&&Array.isArray(r)&&r.map(({node:v,id:x},b)=>{if(b===u)return R("div",{class:"node node-header",children:[p("label",{children:De(i,"entries_hidden",`${r.length-u}`)}),p("button",{onClick:()=>f(Math.min(u+50,r.length)),children:De(i,"entries_hidden.more","50")}),p("button",{onClick:()=>f(r.length),children:De(i,"entries_hidden.all")})]});if(b>u)return null;const y=n.push(b).contextPush("entry"),k=e.type(y)==="object",C=c(x);let E;if(["loot_pool.entries.entry","loot_entry.alternatives.children.entry","loot_entry.group.children.entry","loot_entry.sequence.children.entry","function.set_contents.entries.entry"].includes(y.getContext().join("."))&&gn(v)&&typeof v.type=="string"&&v.type.replace(/^minecraft:/,"")==="item"&&typeof v.name=="string"&&(E=p(vg,{item:{id:v.name,count:1}})),k&&(C===!1||C===void 0&&r.length>20))return R("div",{class:"node node-header","data-category":e.category(y),children:[p(Eo,{lang:i,path:y,nested:!0}),p("button",{class:"toggle tooltipped tip-se","aria-label":`${De(i,"expand")} +${De(i,"expand_all","Ctrl")}`,onClick:l(x),children:fe.chevron_right}),p("label",{children:E!=null?E:Zs(i,y,`${b}`)}),p(pf,{path:y,value:v,schema:e},x)]});const M=()=>y.set(void 0),S=()=>{const F=[...n.get()];[F[b-1],F[b]]=[F[b],F[b-1]],n.model.set(n,F)},T=()=>{const F=[...n.get()];[F[b+1],F[b]]=[F[b],F[b+1]],n.model.set(n,F)};return R(gc,{label:E,path:y,schema:e,value:v,lang:i,version:o,states:a,actions:[{icon:"duplicate",label:"duplicate",onSelect:()=>{const F=[...n.get()];F.splice(b,0,{id:Ur(),node:ol(v)}),n.model.set(n,F)}}],ctx:be(oe({},s),{index:(b===0?1:0)+(b===r.length-1?2:0)}),children:[k&&p("button",{class:"toggle tooltipped tip-se","aria-label":`${De(i,"collapse")} +${De(i,"collapse_all","Ctrl")}`,onClick:d(x),children:fe.chevron_down}),p("button",{class:"remove tooltipped tip-se","aria-label":De(i,"remove"),onClick:M,children:fe.trashcan}),r.length>1&&R("div",{class:"node-move",children:[p("button",{class:"move tooltipped tip-se","aria-label":De(i,"move_up"),onClick:S,disabled:b===0,children:fe.chevron_up}),p("button",{class:"move tooltipped tip-se","aria-label":De(i,"move_down"),onClick:T,disabled:b===r.length-1,children:fe.chevron_down})]})]},x)}),r&&r.length>0&&r.length<=u&&p("div",{class:"node node-header",children:p("button",{class:"add tooltipped tip-se","aria-label":De(i,"add_bottom"),onClick:_,children:fe.plus_circle})})]});return[null,g,m]},map({children:e,keys:t,config:n},r,i,o,a,s,l){var v,x,b,y,k;const{expand:d,collapse:c,isToggled:u}=pc(),f=new P.ModelPath(_9,new P.Path([k9(r.toString())])),h=()=>{const C=f.get();r.model.set(r.push(C),P.DataModel.wrapLists(e.default()))},w=((v=n.validation)==null?void 0:v.validator)==="block_state_map"?s==null?void 0:s[P.relativePath(r,n.validation.params.id).get()]:null,_=w!=null&&w.properties?P.StringNode(null,{enum:Object.keys((x=w.properties)!=null?x:{})}):t;if(w&&r.last()==="Properties"){typeof i!="object"&&(i={});const C=Object.entries((b=w.properties)!=null?b:{}).map(([E,M])=>[E,P.StringNode(null,{enum:M})]);return Object.entries((y=w.properties)!=null?y:{}).forEach(([E,M])=>{typeof i[E]!="string"?r.model.errors.add(r.push(E),"error.expected_string"):M.includes(i[E])||r.model.errors.add(r.push(E),"error.invalid_enum_option",i[E])}),P.ObjectNode(Object.fromEntries(C)).hook(this,r,i,o,a,s,l)}const g=R(ce,{children:[_.hook(this,f,(k=f.get())!=null?k:"",o,a,s,l)[1],p("button",{class:"add tooltipped tip-se","aria-label":De(o,"add"),onClick:h,children:fe.plus_circle})]}),m=p(ce,{children:typeof i=="object"&&Object.entries(i).map(([C,E])=>{var X,V,O,j;const M=r.modelPush(C),S=e.type(M)==="object",T=u(C);if(S&&(T===!1||T===void 0&&i.length>20))return R("div",{class:"node node-header","data-category":e.category(M),children:[p(Eo,{lang:o,path:M,nested:!0}),p("button",{class:"toggle tooltipped tip-se","aria-label":`${De(o,"expand")} +${De(o,"expand_all","Ctrl")}`,onClick:d(C),children:fe.chevron_right}),p("label",{children:C}),p(pf,{path:M,value:E,schema:e},C)]});const L=w?P.StringNode(null,{enum:(V=(X=w.properties)==null?void 0:X[C])!=null?V:[]}):e;((O=w==null?void 0:w.properties)==null?void 0:O[C])&&typeof E=="string"&&!((j=w.properties)!=null&&j[C].includes(E))&&r.model.errors.add(M,"error.invalid_enum_option",E);const F=()=>M.set(void 0);return R(gc,{schema:L,path:M,value:E,lang:o,version:a,states:s,ctx:l,label:C,children:[S&&p("button",{class:"toggle tooltipped tip-se","aria-label":`${De(o,"collapse")} +${De(o,"collapse_all","Ctrl")}`,onClick:c(C),children:fe.chevron_down}),p("button",{class:"remove tooltipped tip-se","aria-label":De(o,"remove"),onClick:F,children:fe.trashcan})]},C)})});return[null,g,m]},number(e,t,n,r,i,o,a){return[null,p(b9,be(oe({},e),{path:t,value:n,lang:r,version:i,states:o,ctx:a})),null]},object({node:e,config:t,getActiveFields:n,getChildModelPath:r},i,o,a,s,l,d){var v;const{expand:c,collapse:u,isToggled:f}=pc();if(i.getArray().length==0&&C9(t.context,o)){const{wrapper:x,fields:b}=E9(n(i),i,o);o=x.data,n=()=>b,r=(y,k)=>new P.ModelPath(x,new P.Path(y.getArray(),["feature"])).push(k)}let h=null,w=null;if(e.optional())if(o===void 0){const x=()=>i.set(P.DataModel.wrapLists(e.default()));w=p("button",{class:"collapse closed tooltipped tip-se","aria-label":De(a,"expand"),onClick:x,children:fe.plus_circle})}else{const x=()=>i.set(void 0);w=p("button",{class:"collapse open tooltipped tip-se","aria-label":De(a,"remove"),onClick:x,children:fe.trashcan})}const _=i.getContext().join(".");if(g9.includes(_)||hf.includes(_)){const x=f(""),b=hf.includes(_)?x:!x;if(h=p(ce,{children:p("button",{class:"toggle tooltipped tip-se","aria-label":De(a,b?"collapse":"expand"),onClick:x?u(""):c(""),children:b?fe.chevron_down:fe.chevron_right})}),!b)return[h,w,null]}const g=typeof o=="object"&&o!==null&&((v=e.default())==null?void 0:v.pools)?be(oe({},d),{loot:o==null?void 0:o.type}):d,m=p(ce,{children:typeof o=="object"&&o!==null&&!(e.optional()&&o===void 0)&&Object.entries(n(i)).filter(([x,b])=>b.enabled(i)).map(([x,b])=>{const y=r(i,x),k=y.getContext().join(".");if(d9.includes(k))return null;const[C,E,M]=b.hook(this,y,o[x],a,s,l,g),S=b.type(y)==="object"&&u9.includes(k),T=f9.includes(k);return S||T?(h=R(ce,{children:[h,p(Eo,{lang:a,path:y}),p(Mg,{lang:a,path:y}),C]}),w=R(ce,{children:[w,E]}),S?M:null):p(gc,{schema:b,path:y,value:o[x],lang:a,version:s,states:l,ctx:g},x)})});return[h,w,m]},string(e,t,n,r,i,o,a){return[null,p(x9,be(oe({},e),{path:t,value:n,lang:r,version:i,states:o,ctx:a})),null]}};function pf({path:e,value:t}){var r,i,o,a,s;switch(e.getContext().join(".")){case"loot_table.pools.entry":return R("label",{children:[(i=(r=t==null?void 0:t.entries)==null?void 0:r.length)!=null?i:0," entries"]});case"function.set_contents.entries.entry":case"loot_pool.entries.entry":return p("label",{children:(s=(o=t==null?void 0:t.name)==null?void 0:o.replace(/^minecraft:/,""))!=null?s:(a=t==null?void 0:t.type)==null?void 0:a.replace(/^minecraft:/,"")})}for(const l of Object.values(t!=null?t:{}))if(typeof l=="string")return p("label",{children:l.replace(/^minecraft:/,"")});return null}function pc(){const[e,t]=Y(new Map),[n,r]=Y(void 0);return{expand:s=>l=>{l.ctrlKey?(t(new Map),r(!0)):t(d=>new Map(d.set(s,!0)))},collapse:s=>l=>{l.ctrlKey?(t(new Map),r(!1)):t(d=>new Map(d.set(s,!1)))},isToggled:s=>{var l;return e instanceof Map?(l=e.get(s))!=null?l:n:!1}}}function v9({path:e,node:t,value:n,lang:r}){const i=o=>{e.model.set(e,t.optional()&&n===o?void 0:o)};return R(ce,{children:[p("button",{class:n===!1?"selected":"",onClick:()=>i(!1),children:De(r,"false")}),p("button",{class:n===!0?"selected":"",onClick:()=>i(!0),children:De(r,"true")})]})}function b9({path:e,config:t,integer:n,value:r,lang:i}){var s;const o=l=>{const d=l.target.value,c=n?parseInt(d):parseFloat(d);e.model.set(e,c)},a=l=>{const d=l.target.value,c=parseInt(d.slice(1),16);e.model.set(e,c)};return R(ce,{children:[p("input",{type:"text",value:r!=null?r:"",onBlur:o,onKeyDown:l=>{l.key==="Enter"&&o(l)}}),(t==null?void 0:t.color)&&p("input",{type:"color",value:"#"+((s=r==null?void 0:r.toString(16).padStart(6,"0"))!=null?s:"000000"),onChange:a}),["dimension.generator.seed","dimension.generator.biome_source.seed","world_settings.seed","structure_placement.salt"].includes(e.getContext().join("."))&&p("button",{onClick:()=>Zw(e.model),class:"tooltipped tip-se","aria-label":De(i,"generate_new_seed"),children:fe.sync})]})}function x9({path:e,getValues:t,config:n,node:r,value:i,lang:o,version:a,states:s}){var f,h,w;const l=_=>{_.stopPropagation();const g=_.target.value;g!==i&&e.model.set(e,g.length===0?void 0:g)},d=t(),c=e.getContext().join("."),u=!bo(n)&&(n==null?void 0:n.validator)==="resource"&&typeof n.params.pool=="string"?n.params.pool:void 0;if(h9.includes(c))return p("textarea",{value:i!=null?i:"",onBlur:l});if(bo(n)&&!n.additional||c9.includes(c)){let _=new P.Path([]);return bo(n)&&typeof n.enum=="string"?_=_.contextPush(n.enum):u?_=_.contextPush(u):bo(n)&&(_=e),R("select",{value:i!=null?i:"",onChange:l,children:[r.optional()&&p("option",{value:"",children:De(o,"unset")}),d.map(g=>p("option",{value:g,children:Zs(o,_.contextPush(g.replace(/^minecraft:/,"")))}))]})}else if(!bo(n)&&(n==null?void 0:n.validator)==="block_state_key"){const _=s==null?void 0:s[P.relativePath(e,n.params.id).get()],g=Object.keys((f=_==null?void 0:_.properties)!=null?f:{});return p("select",{value:i!=null?i:"",onChange:l,children:g.map(m=>p("option",{children:m}))})}else{const{biomeColors:_,setBiomeColor:g}=l2(),m=typeof i=="string"?i.includes(":")?i:"minecraft:"+i:"unknown",v=Ur(),x=u?m9(u):void 0;return R(ce,{children:[p("input",{value:i!=null?i:"",onBlur:l,onKeyDown:b=>{b.key==="Enter"&&l(b)},list:d.length>0?v:""}),d.length>0&&p("datalist",{id:v,children:d.map(b=>p("option",{value:b}))}),["generator_biome.biome"].includes(c)&&p("input",{type:"color",value:Xw((w=(h=_[m])!=null?h:cg[m])!=null?w:Td(m)),onChange:b=>g(m,Kw(b.currentTarget.value))}),["attribute_modifier.id","text_component_object.hoverEvent.show_entity.contents.id"].includes(c)&&p("button",{onClick:()=>e.set(Hw()),class:"tooltipped tip-se","aria-label":De(o,"generate_new_uuid"),children:fe.sync}),x&&d.includes(i)&&i.startsWith("minecraft:")&&p("a",{href:`/${x.url}/?version=${a}&preset=${i.replace(/^minecraft:/,"")}`,class:"tooltipped tip-se","aria-label":De(o,"follow_reference"),children:fe.link_external})]})}}function y9({label:e,schema:t,path:n,value:r,lang:i,version:o,states:a,ctx:s,actions:l,children:d}){var b;const c=t.type(n),u=t.category(n),f=n.getContext().join("."),[h,w]=al(),_=y=>{y.preventDefault(),w()},g=be(oe({},s),{depth:((b=s.depth)!=null?b:0)+1});delete g.index;const[m,v,x]=t.hook(Ig,n,r,i,o,a,g);return R("div",{class:`node ${c}-node`,"data-category":u,children:[R("div",{class:"node-header",onContextMenu:_,children:[p(Eo,{lang:i,path:n}),p(Mg,{lang:i,path:n}),d,m,R("label",{children:[e!=null?e:Zs(i,n,`${n.last()}`),h&&R("div",{class:"node-menu",children:[l==null?void 0:l.map(y=>{var k;return R("div",{class:"menu-item",children:[p(ae,{icon:y.icon,tooltip:De(i,y.label),tooltipLoc:"se",onClick:()=>y.onSelect()}),p("span",{children:(k=y.description)!=null?k:De(i,y.label)})]},y.label)}),R("div",{class:"menu-item",children:[p(ae,{icon:"clippy",tooltip:De(i,"copy_context"),tooltipLoc:"se",onClick:()=>navigator.clipboard.writeText(f)}),p("span",{children:f})]})]})]}),v]}),x&&p("div",{class:"node-body",children:x})]})}const gc=yg(y9,(e,t)=>e.schema===t.schema&&e.lang===t.lang&&e.path.equals(t.path)&&Yi(e.ctx,t.ctx)&&Yi(e.value,t.value));function bo(e){return!!(e!=null&&e.enum)}function k9(e){var t=0,n,r;for(n=0;n<e.length;n++)r=e.charCodeAt(n),t=(t<<5)-t+r,t|=0;return t}function Zs(e,t,...n){const r=t.getContext();for(let i=0;i<r.length;i+=1){const o=r.slice(i).join("."),a=De(e,o,...n);if(o!==a)return a}return r[r.length-1]}function Eo({lang:e,path:t,nested:n}){var o;t.model instanceof Sg&&(t=t.model.map(t).withModel(t.model));const r=n?t.model.errors.getAll().filter(a=>a.path.startsWith(t)):t.model.errors.get(t,!0);if(r.length===0)return null;const i=De(e,r[0].error,...(o=r[0].params)!=null?o:[]);return Tg("node-error","issue_opened",i)}function Mg({lang:e,path:t}){const n=t.contextPush("help").getContext().join("."),r=De(e,n);return r===n?null:Tg("node-help","info",r)}const Tg=(e,t,n)=>{const[r,i]=al();return R("div",{class:`node-icon ${e}${r?" show":""}`,onClick:()=>i(),children:[fe[t],p("span",{class:"icon-popup",children:n})]})};function C9(e,t){var n;return e==="feature"&&((n=t==null?void 0:t.type)==null?void 0:n.replace(/^minecraft:/,""))==="decorated"&&gn(t==null?void 0:t.config)}function E9(e,t,n){const r=[],i=Ao(n,r),o={type:e.type,config:P.ObjectNode({decorators:P.ListNode(Xp),feature:Kp},{context:"feature.decorated"})},a=P.ObjectNode(o,{context:"feature"}),s=new P.Path(["config","feature"]),l=new P.Path(["config","decorators"]),d=t.getModel(),c=new Sg(a,u=>{if(u.startsWith(s))return new P.Path([...[...Array(r.length-1)].flatMap(()=>["config","feature"]),...u.modelArr]);if(u.startsWith(l)){if(u.modelArr.length===2)return new P.Path([]);const f=u.modelArr[2];if(typeof f=="number")return new P.Path([...[...Array(f)].flatMap(()=>["config","feature"]),"config","decorator",...u.modelArr.slice(3)])}return u},u=>{if(u.equals(l)){const f=[];return Ao(d.data,f),f}return d.get(c.map(u))},(u,f,h)=>{if(u.startsWith(s)){const w=[];Ao(d.data,w);const _=new P.Path([...[...Array(w.length-1)].flatMap(()=>["config","feature"]),...u.modelArr]);return d.set(_,f,h)}else if(u.startsWith(l)){const w=u.modelArr[2];if(u.modelArr.length===2){const _=c.get(s);return d.set(new P.Path,ld(_,f),h)}else if(typeof w=="number")if(u.modelArr.length===3&&f===void 0){const _=c.get(s),g=[];Ao(d.data,g),g.splice(w,1);const m=ld(_,g);return d.set(new P.Path,m,h)}else{const _=new P.Path([...[...Array(w)].flatMap(()=>["config","feature"]),"config","decorator",...u.modelArr.slice(3)]);return d.set(_,f,h)}}d.set(u,f,h)});return c.data={type:d.data.type,config:{decorators:r,feature:i}},c.errors=d.errors,{fields:o,wrapper:c}}function Ao(e,t){var n,r;return((n=e==null?void 0:e.type)==null?void 0:n.replace(/^minecraft:/,""))!=="decorated"||!gn(e==null?void 0:e.config)?e:(t.push({id:t.length,node:e.config.decorator}),Ao((r=e.config.feature)!=null?r:"",t))}function ld(e,t){return t.length===0?e:{type:"minecraft:decorated",config:{decorator:t.shift().node,feature:ld(e,t)}}}function A9({version:e,model:t,blockStates:n,onError:r}){const{lang:i}=Ee();if(!t||!n||i==="none")return p(ce,{});const[o]=sh(s=>{r(`Error rendering the tree: ${s.message}`),console.error(s)});if(o)return p(ce,{});const[,a]=Y(0);return sl(t,()=>{a(s=>s+1)}),p("div",{class:"tree","data-cy":"tree",children:p(w9,{model:t,lang:i,version:e,blockStates:n})})}var S9=Object.defineProperty,I9=Object.defineProperties,M9=Object.getOwnPropertyDescriptors,gf=Object.getOwnPropertySymbols,T9=Object.prototype.hasOwnProperty,L9=Object.prototype.propertyIsEnumerable,mf=(e,t,n)=>t in e?S9(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Lg=(e,t)=>{for(var n in t||(t={}))T9.call(t,n)&&mf(e,n,t[n]);if(gf)for(var n of gf(t))L9.call(t,n)&&mf(e,n,t[n]);return e};const _f="Please consider reporting this error at https://github.com/laymonage/giscus/issues/new.";function Va(e){return`[giscus] An error occurred. Error message: "${e}".`}function wf(e){const t=document.querySelector(`meta[property='og:${e}'],meta[name='${e}']`);return t?t.content:""}function O9(){const e=document.getElementById("giscus-css")||document.createElement("style");e.id="giscus-css",e.textContent=` + .giscus, .giscus-frame { + width: 100%; + } + .giscus-frame { + border: none; + color-scheme: normal; + } + `,document.head.prepend(e)}function N9(e){const[t,n]=Y(""),r=function({repo:a,repoId:s,category:l="",categoryId:d="",mapping:c,term:u="",theme:f="light",reactionsEnabled:h="1",emitMetadata:w="0",inputPosition:_="bottom",lang:g="en",session:m,origin:v}){const x=new URL(location.href);x.searchParams.delete("giscus");const b=x.toString(),y={origin:v=v||b,session:m,theme:f,reactionsEnabled:h,emitMetadata:w,inputPosition:_,repo:a,repoId:s,category:l,categoryId:d,description:wf("description")};switch(c){case"url":y.term=b;break;case"title":y.term=document.title;break;case"og:title":y.term=wf("title");break;case"specific":y.term=u;break;case"number":y.number=u;break;case"pathname":default:y.term=location.pathname.length<2?"index":location.pathname.substring(1).replace(/\.\w+$/,"")}return`https://giscus.app/${g}/widget?${new URLSearchParams(y)}`}((i=Lg({},e),I9(i,M9({session:t}))));var i;const o=Ie(null);return me(()=>{const a=location.href,s=new URL(a),l=localStorage.getItem("giscus-session"),d=s.searchParams.get("giscus")||"";if(d)return localStorage.setItem("giscus-session",JSON.stringify(d)),n(d),s.searchParams.delete("giscus"),void history.replaceState(void 0,document.title,s.toString());if(l)try{n(JSON.parse(l||"")||"")}catch(c){n(""),localStorage.removeItem("giscus-session"),console.warn(`${Va(c==null?void 0:c.message)} Session has been cleared.`)}},[]),me(O9,[]),me(()=>{const a=function(s,l=null){return function(d){if(d.origin!=="https://giscus.app")return;const{data:c}=d;if(typeof c!="object"||!c.giscus||(l&&c.giscus.resizeHeight&&(l.style.height=`${c.giscus.resizeHeight}px`),!c.giscus.error))return;const u=c.giscus.error;if(u.includes("Bad credentials")||u.includes("Invalid state value")){if(localStorage.getItem("giscus-session")!==null)return localStorage.removeItem("giscus-session"),s(),void console.warn(`${Va(u)} Session has been cleared.`);console.error(`${Va(u)} No session is stored initially. ${_f}`)}u.includes("Discussion not found")?console.warn(`[giscus] ${u}. A new discussion will be created if a comment/reaction is submitted.`):console.error(`${Va(u)} ${_f}`)}}(()=>n(""),o.current);return window.addEventListener("message",a),()=>window.removeEventListener("message",a)},[]),sd.createElement("div",{className:"giscus"},sd.createElement("iframe",{className:"giscus-frame",title:"Comments",scrolling:"no",src:r,ref:o}))}function R9(e){const[t,n]=Y(!1);return me(()=>n(!0),[]),t?sd.createElement(N9,Lg({},e)):null}function Xd({term:e}){const{actualTheme:t}=d2(),n=t==="light"?"-burn":"",r=`${location.protocol}//${location.host}/assets/giscus${n}.css`;return p("div",{class:"giscus-container",children:p(R9,{repo:"misode/misode.github.io",repoId:"MDEwOlJlcG9zaXRvcnkxOTIyNTQyMzA=",category:"Site",categoryId:"DIC_kwDOC3WRFs4COB8r",mapping:e?"specific":"pathname",term:e,reactionsEnabled:"1",emitMetadata:"0",inputPosition:"top",theme:r,lang:"en"})})}function cd(){return[{id:"adding-custom-structures",title:"Adding custom structures",versions:["1.18.2","1.19"],tags:["worldgen","structures"]},{id:"density-functions",title:"Density function types and their configuration",versions:["1.18.2","1.19"],tags:["worldgen","noise","density"]},{id:"feature-order-cycle",title:"How to fix feature order cycles",versions:["1.18","1.18.2","1.19"],tags:["worldgen","biomes","features"]},{id:"heightmap-types",title:"The different heightmap types explained",versions:["1.16","1.17","1.18","1.18.2","1.19"],tags:["worldgen"]},{id:"noise-router",title:"How terrain is generated using the noise router",versions:["1.18.2","1.19"],tags:["worldgen","noise","density"]},{id:"placed-features",title:"Placed features and their configuration",versions:["1.18","1.18.2","1.19"],tags:["worldgen","features"]}]}function D9(e){const t=cd().find(n=>n.id===e);return t===void 0?{id:e,title:"Unknown Guide"}:t}function ea({id:e,minimal:t,activeTags:n,toggleTag:r}){const{title:i,versions:o,tags:a}=Ce(()=>D9(e),[e]),s=l=>d=>{r&&r(l),d.preventDefault(),d.stopImmediatePropagation()};return p(Ld,{title:i,overlay:!t&&(o==null?void 0:o.join(" \u2022 ")),link:`/guides/${e}/`,children:p("div",{class:"badges-list",children:a==null?void 0:a.sort().map(l=>p(oo,{label:l,onClick:s(l),active:n==null?void 0:n.includes(l)}))})})}const vf={system:"device_desktop",dark:"moon",light:"sun"};function F9(){const{lang:e,locale:t,changeLocale:n}=Ee(),{theme:r,changeTheme:i}=d2(),{version:o}=Yt(),{projects:a,project:s,changeProject:l}=Pn(),{title:d}=wn(),c=Vi(),u=Up(c);return R("header",{children:[R("div",{class:"title",children:[p(rh,{class:"home-link",href:"/","aria-label":t("home"),"data-cy":"home-link",children:Ki.home}),p("h1",{children:d}),u&&p(Lt,{icon:"chevron_down",tooltip:t("switch_generator"),"data-cy":"generator-switcher",children:Fe.generators.filter(f=>{var h,w;return((h=f.tags)==null?void 0:h[0])===((w=u==null?void 0:u.tags)==null?void 0:w[0])&&mt(o,f.minVersion)}).map(f=>p(ae,{label:t(f.partner?`partner.${f.partner}.${f.id}`:f.id),active:f.id===u.id,onClick:()=>ti(kr(f.url))}))}),!u&&c.match(/\/?project\/?$/)&&p(Lt,{icon:"chevron_down",tooltip:t("switch_project"),children:a.map(f=>p(ae,{label:f.name,active:f.name===s.name,onClick:()=>l(f.name)}))})]}),p("nav",{children:R("ul",{children:[p("li",{"data-cy":"language-switcher",children:p(Lt,{icon:"globe",tooltip:t("language"),children:Fe.languages.map(({code:f,name:h})=>p(ae,{label:h,active:f===e,onClick:()=>n(f)}))})}),p("li",{"data-cy":"theme-switcher",children:p(Lt,{icon:vf[r],tooltip:t("theme"),children:Object.entries(vf).map(([f,h])=>p(ae,{icon:h,label:t(`theme.${f}`),active:f===r,onClick:()=>i(f)}))})}),p("li",{class:"dimmed",children:p("a",{href:"https://github.com/misode/misode.github.io",target:"_blank",rel:"noreferrer",class:"tooltipped tip-sw","aria-label":t("github"),children:fe.mark_github})})]})})]})}const wi=p("svg",{width:"29",height:"29",viewBox:"0 0 29 29",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:p("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M17.8284 0.686291C17.298 0.686291 16.7893 0.897005 16.4142 1.27208L1.44365 16.2426C0.662602 17.0237 0.662602 18.29 1.44365 19.0711L9.92893 27.5563C10.71 28.3374 11.9763 28.3374 12.7574 27.5563L27.7279 12.5858C28.103 12.2107 28.3137 11.702 28.3137 11.1716V2.68629C28.3137 1.58172 27.4183 0.686291 26.3137 0.686291H17.8284ZM23.5 8C24.8807 8 26 6.88071 26 5.5C26 4.11929 24.8807 3 23.5 3C22.1193 3 21 4.11929 21 5.5C21 6.88071 22.1193 8 23.5 8Z"})}),bf=p("svg",{width:"28",height:"22",viewBox:"0 0 28 22",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:p("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M26.8426 9.83057L23.3294 9.83057V20.8306C23.3294 21.3829 22.8817 21.8306 22.3294 21.8306H5.3294C4.77712 21.8306 4.3294 21.3829 4.3294 20.8306V9.83057L1.00171 9.83057C-0.017101 9.83057 -0.383456 8.48519 0.494688 7.96864L13.8067 0.138065C14.1279 -0.0509101 14.5276 -0.045538 14.8437 0.152002L27.3726 7.98258C28.2246 8.51506 27.8473 9.83057 26.8426 9.83057ZM15.3294 11.8306C14.7771 11.8306 14.3294 12.2783 14.3294 12.8306V16.8306C14.3294 17.3829 14.7771 17.8306 15.3294 17.8306H18.3294C18.8817 17.8306 19.3294 17.3829 19.3294 16.8306V12.8306C19.3294 12.2783 18.8817 11.8306 18.3294 11.8306H15.3294Z"})}),Ki={home:R("svg",{width:"32",height:"28",viewBox:"0 0 32 28",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[p("rect",{width:"26",height:"6",rx:"3",fill:"#7CB45C"}),p("rect",{x:"8",width:"18",height:"6",rx:"3",fill:"#4BA041"}),p("rect",{y:"11",width:"32",height:"6",rx:"3",fill:"#AAA8A8"}),p("rect",{x:"11",y:"11",width:"21",height:"6",rx:"3",fill:"#91908F"}),p("rect",{x:"11",y:"22",width:"21",height:"6",rx:"3",fill:"#70B5C3"}),p("rect",{x:"17",y:"22",width:"15",height:"6",rx:"3",fill:"#4D989B"})]}),report:R("svg",{width:"30",height:"36",viewBox:"0 0 30 36",xmlns:"http://www.w3.org/2000/svg",children:[p("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"}),p("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"}),p("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"}),p("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"}),p("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"}),p("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:R("svg",{width:"20",height:"20",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg",children:[p("circle",{cx:"10",cy:"10",r:"10",fill:"#451475"}),p("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"})]}),advancement:p("svg",{width:"27",height:"27",viewBox:"0 0 27 27",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:p("path",{d:"M5.76943 2.86824L2.18356 0.819176C1.29934 0.313911 0.313911 1.29934 0.819176 2.18356L2.86824 5.76943C2.95458 5.92052 3 6.09154 3 6.26556V20.7344C3 20.9085 2.95459 21.0795 2.86824 21.2306L0.819176 24.8164C0.313911 25.7007 1.29934 26.6861 2.18356 26.1808L5.76943 24.1318C5.92052 24.0454 6.09154 24 6.26556 24H20.7344C20.9085 24 21.0795 24.0454 21.2306 24.1318L24.8164 26.1808C25.7007 26.6861 26.6861 25.7007 26.1808 24.8164L24.1318 21.2306C24.0454 21.0795 24 20.9085 24 20.7344V6.26556C24 6.09154 24.0454 5.92052 24.1318 5.76943L26.1808 2.18356C26.6861 1.29934 25.7007 0.313911 24.8164 0.819176L21.2306 2.86824C21.0795 2.95458 20.9085 3 20.7344 3H6.26556C6.09154 3 5.92052 2.95459 5.76943 2.86824Z"})}),block_definition:p("svg",{width:"28",height:"30",viewBox:"0 0 28 30",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:p("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M12.75 0.272806C13.5437 -0.0909347 14.4563 -0.0909357 15.25 0.272805L26.25 5.31447C27.3163 5.80322 28 6.86864 28 8.04167V21.3583C28 22.5313 27.3163 23.5967 26.25 24.0855L15.25 29.1272C14.4563 29.4909 13.5437 29.4909 12.75 29.1272L1.75004 24.0855C0.683681 23.5967 0 22.5313 0 21.3583V8.04167C0 6.86864 0.683678 5.80322 1.75004 5.31447L12.75 0.272806ZM14 4.10003L6.92266 7.34381L14 10.2391L21.0773 7.34381L14 4.10003ZM24 10.4699V20.7166L16 24.3833V13.7427L24 10.4699ZM12 13.7427L4 10.4699V20.7166L12 24.3833V13.7427Z"})}),chat_type:p("svg",{width:"32",height:"32",viewBox:"0 0 32 32",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:p("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M4 0C1.79086 0 0 1.79086 0 4V21C0 23.2091 1.79086 25 4 25H8V30.7732C8 31.636 9.01946 32.0938 9.66436 31.5206L17 25H28C30.2091 25 32 23.2091 32 21V4C32 1.79086 30.2091 0 28 0H4Z"})}),dimension:p("svg",{width:"32",height:"32",viewBox:"0 0 32 32",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:p("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M19.7659 0.445701C18.5582 0.154357 17.2971 0 16 0C12.7056 0 9.64369 0.995672 7.09887 2.70251C7.94418 3.62868 8.45554 4.49063 8.75229 5.30669C9.09264 6.24263 9.125 7.05145 9.125 7.6875C9.125 7.78933 9.12466 7.88242 9.12434 7.96797V7.96834V7.96869V7.96901V7.96902C9.12247 8.47232 9.12158 8.71409 9.19707 8.93677C9.24638 9.08226 9.36226 9.31309 9.94721 9.60557C10.5615 9.91273 10.7586 9.8353 10.7733 9.82952L10.7739 9.82929C10.8476 9.80165 10.9347 9.73088 11.2191 9.3753L11.256 9.32901C11.4803 9.04661 11.8843 8.53789 12.5239 8.29804C13.2651 8.02009 14.0719 8.16789 14.9472 8.60557C16.4469 9.35541 17.3707 9.72195 17.9896 9.84301C18.2833 9.90046 18.4612 9.89221 18.5724 9.86953C18.6731 9.84897 18.7646 9.80771 18.8753 9.71913C19.2786 9.39647 19.6673 8.76901 19.9604 7.83984C20.2468 6.93156 20.4085 5.83955 20.4378 4.72369C20.4672 3.60868 20.3634 2.50945 20.1445 1.59133C20.0358 1.13577 19.9057 0.75371 19.7659 0.445701ZM5.50368 3.92379C2.13164 6.85717 4.76837e-07 11.1797 4.76837e-07 16C4.76837e-07 16.1436 0.00189157 16.2867 0.00565022 16.4294C1.54401 16.9679 2.98111 16.6462 4.47925 16.2249C4.59499 16.1923 4.71296 16.1585 4.83279 16.1242L4.83282 16.1242C5.68141 15.881 6.62293 15.6113 7.5179 15.5713C8.62706 15.5218 9.72807 15.8138 10.7071 16.7929C11.7646 17.8503 12.0777 19.3283 11.8236 20.6012C11.5699 21.8719 10.7059 23.1043 9.24253 23.4702C8.94395 23.5448 8.87224 23.6435 8.85319 23.6716C8.82014 23.7204 8.77492 23.8288 8.77233 24.0677C8.7697 24.3108 8.81045 24.5892 8.869 24.9304L8.88606 25.0286L8.88606 25.0286C8.93527 25.3102 9 25.6807 9 26C9 27.4332 8.58821 28.8019 8.09018 29.9113C10.4231 31.2406 13.1229 32 16 32C19.5354 32 22.8029 30.8534 25.4511 28.9117C25.3471 28.7646 25.2399 28.6153 25.1301 28.465C24.5506 27.672 23.9089 26.8682 23.2732 26.2107C22.6167 25.5315 22.05 25.0971 21.6286 24.9285C20.8738 24.6266 20.1566 24.1617 19.9616 23.3144C19.8718 22.9244 19.9228 22.5591 20.0033 22.2613C20.0827 21.9675 20.2083 21.6782 20.3292 21.4199C20.3937 21.2823 20.4611 21.1436 20.5296 21.0026L20.5296 21.0024C20.9898 20.055 21.5 19.0047 21.5 17.5C21.5 16.2061 22.0035 15.2171 22.8218 14.4932C23.5953 13.8089 24.6068 13.3989 25.5877 13.1047C26.3248 12.8835 27.1287 12.7056 27.8822 12.5388L27.8824 12.5388L27.8824 12.5388L27.8824 12.5388C28.1297 12.484 28.3716 12.4305 28.6038 12.377C29.5877 12.1506 30.4202 11.9219 31.0528 11.6056C31.1525 11.5557 31.2566 11.5241 31.3612 11.5094C29.9973 6.83578 26.5583 3.04703 22.1087 1.2075C22.3608 2.30151 22.4695 3.54643 22.4372 4.7763C22.404 6.03545 22.2219 7.31843 21.8678 8.4414C21.5202 9.54349 20.9714 10.6035 20.1247 11.2809C19.7989 11.5415 19.4221 11.7373 18.9722 11.8291C18.5328 11.9188 18.0778 11.8982 17.6057 11.8058C16.6928 11.6273 15.5531 11.1446 14.0528 10.3944C13.4385 10.0873 13.2414 10.1647 13.2267 10.1705L13.2261 10.1707C13.1524 10.1983 13.0653 10.2691 12.7809 10.6247L12.744 10.671C12.5197 10.9534 12.1157 11.4621 11.4761 11.702C10.7349 11.9799 9.92815 11.8321 9.05279 11.3944C8.13774 10.9369 7.56612 10.3552 7.30294 9.57885C7.10968 9.00876 7.1174 8.37679 7.1232 7.90214V7.90213C7.12412 7.82627 7.125 7.75443 7.125 7.6875C7.125 7.13604 7.09486 6.60111 6.87271 5.99018C6.66804 5.42734 6.27867 4.74354 5.50368 3.92379ZM31.8004 13.4655C30.9636 13.8583 29.9823 14.1121 29.0524 14.3261C28.782 14.3883 28.5159 14.4472 28.2543 14.5052C27.5209 14.6676 26.8227 14.8222 26.1623 15.0203C25.2682 15.2886 24.5922 15.5973 24.147 15.9912C23.7465 16.3454 23.5 16.7939 23.5 17.5C23.5 19.496 22.7817 20.9579 22.3162 21.9053L22.3159 21.9058C22.2518 22.0363 22.1925 22.157 22.1405 22.268C22.0298 22.5045 21.9661 22.6645 21.934 22.7831C21.9282 22.8046 21.9241 22.8225 21.9212 22.837C21.9775 22.8824 22.105 22.965 22.3714 23.0715C23.2 23.403 24.0083 24.0935 24.7112 24.8206C25.4349 25.5693 26.1369 26.4531 26.7449 27.285C26.8288 27.3998 26.9111 27.5139 26.9917 27.6269C30.0758 24.7103 32 20.5798 32 16C32 15.1375 31.9318 14.291 31.8004 13.4655ZM6.39285 28.7958C6.7349 27.9612 7 26.9846 7 26C7 25.8639 6.96675 25.6702 6.9058 25.3152L6.8978 25.2686C6.84067 24.9356 6.76762 24.4924 6.77245 24.0461C6.77733 23.5956 6.86084 23.0468 7.19719 22.5502C7.54754 22.0328 8.08591 21.6977 8.75748 21.5299C9.2941 21.3957 9.72071 20.9187 9.86229 20.2096C10.0034 19.5028 9.81659 18.7308 9.2929 18.2071C8.77193 17.6861 8.24794 17.5407 7.6071 17.5693C6.96482 17.598 6.27253 17.7947 5.38824 18.0461L5.38718 18.0464L5.3833 18.0475C5.26594 18.0808 5.1452 18.1152 5.02075 18.1502C3.64971 18.5358 2.00798 18.9412 0.20345 18.5584C0.873856 22.73 3.15691 26.3624 6.39285 28.7958ZM21.8827 22.799C21.882 22.7982 21.8816 22.7979 21.8815 22.7979C21.881 22.798 21.883 22.8012 21.8886 22.8073C21.886 22.8031 21.884 22.8004 21.8827 22.799Z"})}),dimension_type:p("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:p("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M11.2929 22.7071C11.6834 23.0976 12.3166 23.0976 12.7071 22.7071L19.0711 16.3431C19.4616 15.9526 19.4616 15.3195 19.0711 14.9289C18.6805 14.5384 18.0474 14.5384 17.6569 14.9289L13 19.5858V14.1521C14.074 14.1106 15.2545 13.9152 16.5 13.5C17.4051 13.1983 18.0371 12.8511 18.602 12.5408C19.9096 11.8225 20.8576 11.3017 24 12V20C24 22.2091 22.2091 24 20 24H4C1.79086 24 0 22.2091 0 20V9.5C3 7.5 6 10.5 7.5 12.5C7.95659 13.1088 9.22475 13.7863 11 14.0485V19.5858L6.34315 14.9289C5.95262 14.5384 5.31946 14.5384 4.92893 14.9289C4.53841 15.3195 4.53841 15.9526 4.92893 16.3431L11.2929 22.7071ZM11 14.0485V3.41421L6.34315 8.07107C5.95262 8.46159 5.31946 8.46159 4.92893 8.07107C4.53841 7.68054 4.53841 7.04738 4.92893 6.65686L11.2929 0.292893C11.6834 -0.097631 12.3166 -0.097631 12.7071 0.292893L19.0711 6.65686C19.4616 7.04738 19.4616 7.68054 19.0711 8.07107C18.6805 8.46159 18.0474 8.46159 17.6569 8.07107L13 3.41421V14.1521C12.2816 14.1799 11.6108 14.1388 11 14.0485Z"})}),font:p("svg",{width:"26",height:"20",viewBox:"0 0 26 20",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:p("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M3 16V3H9V16H3ZM0 1C0 0.447715 0.447715 0 1 0H11C11.5523 0 12 0.447715 12 1V18C12 18.5523 11.5523 19 11 19H1C0.447715 19 0 18.5523 0 18V1ZM17.3224 18.8366C17.8622 19.0687 18.4801 19.1847 19.1761 19.1847C19.6828 19.1847 20.1373 19.1207 20.5398 18.9929C20.947 18.8651 21.2997 18.6733 21.598 18.4176C21.901 18.1619 22.1496 17.8494 22.3438 17.4801H22.429V19H25.696V11.5852C25.696 11.0076 25.5753 10.4938 25.3338 10.044C25.0971 9.59422 24.7609 9.21544 24.3253 8.90767C23.8897 8.59517 23.3783 8.35843 22.7912 8.19744C22.2041 8.03172 21.5625 7.94886 20.8665 7.94886C19.8911 7.94886 19.0554 8.10038 18.3594 8.40341C17.6681 8.7017 17.1236 9.11364 16.7259 9.6392C16.3329 10.16 16.089 10.7519 15.9943 11.4148L19.1974 11.5284C19.2732 11.178 19.4508 10.9034 19.7301 10.7045C20.0095 10.5057 20.3788 10.4062 20.8381 10.4062C21.2642 10.4062 21.6027 10.5057 21.8537 10.7045C22.1046 10.9034 22.2301 11.1851 22.2301 11.5497V11.5852C22.2301 11.8078 22.1425 11.9806 21.9673 12.1037C21.7969 12.2221 21.5223 12.3144 21.1435 12.3807C20.7647 12.4422 20.2652 12.5014 19.6449 12.5582C19.0909 12.6056 18.5701 12.6979 18.0824 12.8352C17.5947 12.9678 17.1638 13.1643 16.7898 13.4247C16.4157 13.6851 16.1222 14.0237 15.9091 14.4403C15.696 14.857 15.5895 15.3684 15.5895 15.9744C15.5895 16.6941 15.7434 17.2931 16.0511 17.7713C16.3636 18.2448 16.7874 18.5999 17.3224 18.8366ZM21.2571 16.6847C20.9588 16.8362 20.6226 16.9119 20.2486 16.9119C19.8509 16.9119 19.5218 16.8172 19.2614 16.6278C19.0057 16.4384 18.8778 16.1638 18.8778 15.804C18.8778 15.5672 18.937 15.3636 19.0554 15.1932C19.1785 15.018 19.3537 14.8759 19.581 14.767C19.813 14.6581 20.0923 14.5777 20.419 14.5256C20.58 14.5019 20.7481 14.4759 20.9233 14.4474C21.0985 14.419 21.2689 14.3859 21.4347 14.348C21.6004 14.3101 21.7519 14.2699 21.8892 14.2273C22.0312 14.1847 22.152 14.1373 22.2514 14.0852V15.1222C22.2514 15.4773 22.1615 15.7898 21.9815 16.0597C21.8016 16.3248 21.5601 16.5331 21.2571 16.6847Z"})}),item_modifier:R("svg",{width:"26",height:"26",viewBox:"0 0 26 26",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[p("line",{x1:"8.05026",y1:"17.9498",x2:"17.9498",y2:"8.05026",stroke:"currentColor","stroke-width":"4","stroke-linecap":"round"}),p("path",{d:"M10.1749 4.51138C10.1749 4.51138 16.4785 3.75061 19.364 6.63604C22.2494 9.52148 21.4886 15.8251 21.4886 15.8251",fill:"none",stroke:"currentColor","stroke-width":"4","stroke-linecap":"round"})]}),loot_table:p("svg",{width:"36",height:"36",viewBox:"0 0 36 36",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:p("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M0.159296 8.96068C-0.224317 6.7851 1.22836 4.71047 3.40393 4.32686L27.0393 0.159301C29.2149 -0.224312 31.2895 1.22836 31.6731 3.40394L35.8407 27.0393C36.2243 29.2149 34.7716 31.2895 32.5961 31.6731L8.96068 35.8407C6.7851 36.2243 4.71047 34.7716 4.32685 32.5961L0.159296 8.96068ZM11.5999 10.4974C11.9356 12.401 10.6645 14.2163 8.76089 14.552C6.85726 14.8876 5.04196 13.6165 4.7063 11.7129C4.37063 9.80928 5.64172 7.99398 7.54535 7.65832C9.44898 7.32266 11.2643 8.59375 11.5999 10.4974ZM25.5026 11.6C27.4063 11.2643 28.6773 9.44899 28.3417 7.54536C28.006 5.64173 26.1907 4.37064 24.2871 4.7063C22.3835 5.04196 21.1124 6.85727 21.448 8.7609C21.7837 10.6645 23.599 11.9356 25.5026 11.6ZM14.552 27.2391C14.8876 29.1427 13.6165 30.958 11.7129 31.2937C9.80928 31.6294 7.99398 30.3583 7.65831 28.4546C7.32265 26.551 8.59374 24.7357 10.4974 24.4001C12.401 24.0644 14.2163 25.3355 14.552 27.2391ZM28.4546 28.3417C30.3583 28.006 31.6294 26.1907 31.2937 24.2871C30.958 22.3835 29.1427 21.1124 27.2391 21.448C25.3355 21.7837 24.0644 23.599 24.4 25.5026C24.7357 27.4063 26.551 28.6773 28.4546 28.3417Z"})}),model:p("svg",{width:"28",height:"23",viewBox:"0 0 28 23",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:p("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M12.75 0.27279C13.5437 -0.09095 14.4563 -0.0909509 15.25 0.27279L26.25 5.31446C27.3163 5.8032 28 6.86863 28 8.04165V15.3333C28 16.5444 27.2718 17.6367 26.1538 18.1025L15.1538 22.6859C14.4154 22.9936 13.5846 22.9936 12.8462 22.6859L1.84615 18.1025C0.728214 17.6367 0 16.5444 0 15.3333V8.04165C0 6.86863 0.683678 5.8032 1.75004 5.31446L12.75 0.27279ZM14 4.10002L6.92266 7.3438L14 10.2391L21.0773 7.3438L14 4.10002ZM24 10.4699V14.6666L16 18V13.7427L24 10.4699ZM12 13.7427L4 10.4699V14.6666L12 18V13.7427Z"})}),pack_mcmeta:p("svg",{width:"28",height:"31",viewBox:"0 0 28 31",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:p("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M15.25 0.872837C14.4563 0.509096 13.5437 0.509097 12.75 0.872837L1.75004 5.9145C0.683678 6.40325 0 7.46867 0 8.6417V23.3333C0 24.5444 0.728212 25.6368 1.84615 26.1026L12.8462 30.6859C13.5846 30.9936 14.4154 30.9936 15.1538 30.6859L26.1538 26.1026C27.2718 25.6368 28 24.5444 28 23.3333V8.6417C28 7.46867 27.3163 6.40325 26.25 5.9145L15.25 0.872837ZM11.8374 5.69126L14 4.70006L21.0773 7.94384L18.8225 8.86629L11.8374 5.69126ZM9.4308 6.79428L6.92266 7.94384L14 10.8391L16.2787 9.90694L9.4308 6.79428ZM24 22.6667V11.07L16 14.3427V26L24 22.6667ZM4 11.07L12 14.3427V26L4 22.6667V11.07Z"})}),predicate:p("svg",{width:"24",height:"22",viewBox:"0 0 24 22",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:p("path",{d:"M22 0H2C1.17595 0 0.705573 0.940764 1.2 1.6L8.8 11.7333C8.92982 11.9064 9 12.117 9 12.3333V20.382C9 21.1253 9.78231 21.6088 10.4472 21.2764L14.4472 19.2764C14.786 19.107 15 18.7607 15 18.382V12.3333C15 12.117 15.0702 11.9064 15.2 11.7333L22.8 1.6C23.2944 0.940764 22.824 0 22 0Z"})}),recipe:p("svg",{width:"32",height:"32",viewBox:"0 0 32 32",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:p("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M20 2H12V10L20 10V2ZM10 2V10H2V4C2 2.89543 2.89543 2 4 2H10ZM2 20L2 12H10V20H2ZM2 22L2 28C2 29.1046 2.89543 30 4 30H10V22H2ZM12 22V30H20V22L12 22ZM22 22V30H28C29.1046 30 30 29.1046 30 28V22H22ZM30 20V12H22V20H30ZM20 20L12 20V12L20 12V20ZM30 4V10H22V2H28C29.1046 2 30 2.89543 30 4ZM4 0C1.79086 0 0 1.79086 0 4V28C0 30.2091 1.79086 32 4 32H28C30.2091 32 32 30.2091 32 28V4C32 1.79086 30.2091 0 28 0H4Z"})}),"tag/block":wi,"tag/entity_type":wi,"tag/fluid":wi,"tag/game_event":wi,"tag/item":wi,"tag/worldgen/biome":wi,text_component:p("svg",{width:"32",height:"32",viewBox:"0 0 32 32",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:p("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M0 4C0 1.79086 1.79086 0 4 0H28C30.2091 0 32 1.79086 32 4V21C32 23.2091 30.2091 25 28 25H17L9.66436 31.5206C9.01946 32.0938 8 31.636 8 30.7732V25H4C1.79086 25 0 23.2091 0 21V4ZM2.46875 20H6.24716L7.20402 16.946H12.2272L13.1861 20H16.9645L12.0568 5.45455H7.37642L2.46875 20ZM11.3888 14.2756L9.76989 9.11932H9.65625L8.04072 14.2756H11.3888ZM19.7521 19.8366C20.2919 20.0687 20.9098 20.1847 21.6058 20.1847C22.1125 20.1847 22.567 20.1207 22.9695 19.9929C23.3767 19.8651 23.7294 19.6733 24.0277 19.4176C24.3307 19.1619 24.5793 18.8494 24.7734 18.4801H24.8587V20H28.1257V12.5852C28.1257 12.0076 28.005 11.4938 27.7635 11.044C27.5268 10.5942 27.1906 10.2154 26.755 9.90767C26.3194 9.59517 25.808 9.35843 25.2209 9.19744C24.6338 9.03172 23.9922 8.94886 23.2962 8.94886C22.3208 8.94886 21.4851 9.10038 20.7891 9.40341C20.0978 9.7017 19.5533 10.1136 19.1555 10.6392C18.7625 11.16 18.5187 11.7519 18.424 12.4148L21.6271 12.5284C21.7029 12.178 21.8804 11.9034 22.1598 11.7045C22.4392 11.5057 22.8085 11.4062 23.2678 11.4062C23.6939 11.4062 24.0324 11.5057 24.2834 11.7045C24.5343 11.9034 24.6598 12.1851 24.6598 12.5497V12.5852C24.6598 12.8078 24.5722 12.9806 24.397 13.1037C24.2266 13.2221 23.9519 13.3144 23.5732 13.3807C23.1944 13.4422 22.6948 13.5014 22.0746 13.5582C21.5206 13.6056 20.9998 13.6979 20.5121 13.8352C20.0244 13.9678 19.5935 14.1643 19.2195 14.4247C18.8454 14.6851 18.5518 15.0237 18.3388 15.4403C18.1257 15.857 18.0192 16.3684 18.0192 16.9744C18.0192 17.6941 18.1731 18.2931 18.4808 18.7713C18.7933 19.2448 19.2171 19.5999 19.7521 19.8366ZM23.6868 17.6847C23.3885 17.8362 23.0523 17.9119 22.6783 17.9119C22.2805 17.9119 21.9515 17.8172 21.6911 17.6278C21.4354 17.4384 21.3075 17.1638 21.3075 16.804C21.3075 16.5672 21.3667 16.3636 21.4851 16.1932C21.6082 16.018 21.7834 15.8759 22.0107 15.767C22.2427 15.6581 22.522 15.5777 22.8487 15.5256C23.0097 15.5019 23.1778 15.4759 23.353 15.4474C23.5282 15.419 23.6986 15.3859 23.8643 15.348C24.0301 15.3101 24.1816 15.2699 24.3189 15.2273C24.4609 15.1847 24.5817 15.1373 24.6811 15.0852V16.1222C24.6811 16.4773 24.5911 16.7898 24.4112 17.0597C24.2313 17.3248 23.9898 17.5331 23.6868 17.6847Z"})}),world:p("svg",{width:"28",height:"29",viewBox:"0 0 28 29",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:p("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M6 2C6 0.895431 6.89543 0 8 0H10C11.1046 0 12 0.895431 12 2V4C12 5.10457 11.1046 6 10 6V10.5688C10.2875 10.9298 10.5816 11.3478 10.8939 11.7915L10.8939 11.7916C11.5 12.6529 12.1742 13.6111 13 14.4368C13.8636 15.3004 15.3471 15.813 17 15.9652V12C15.8954 12 15 11.1046 15 10V8C15 6.89543 15.8954 6 17 6H19C20.1046 6 21 6.89543 21 8V10C21 11.1046 20.1046 12 19 12V15.8819C20.1705 15.6766 21.362 15.2558 22 14.9368C23 14.4368 26 14 28 14.4368V20C28 22.2091 26.2091 24 24 24H8C5.79086 24 4 22.2091 4 20V9C5.38919 8.65271 6.77837 8.54664 8 9.01691V6C6.89543 6 6 5.10457 6 4V2ZM22 26.2968H6C3.79086 26.2968 2 24.5059 2 22.2968V13C1.34604 13.0169 0.673018 13.1285 0 13.2968V24.2968C0 26.5059 1.79086 28.2968 4 28.2968H20C21.6222 28.2968 23.0189 27.3311 23.6465 25.9433C23.1444 26.1704 22.5869 26.2968 22 26.2968Z"})}),worldgen:p("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:p("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M4 0C2.89543 0 2 0.89543 2 2V4C2 5.10457 2.89543 6 4 6V9.01691C2.77837 8.54664 1.38919 8.65271 0 9V20C0 22.2091 1.79086 24 4 24H20C22.2091 24 24 22.2091 24 20V14.4368C22 14 19 14.4368 18 14.9368C17.362 15.2558 16.1705 15.6766 15 15.8819V12C16.1046 12 17 11.1046 17 10V8C17 6.89543 16.1046 6 15 6H13C11.8954 6 11 6.89543 11 8V10C11 11.1046 11.8954 12 13 12V15.9652C11.3471 15.813 9.86362 15.3004 9 14.4368C8.17424 13.6111 7.50001 12.6529 6.8939 11.7916L6.89388 11.7916L6.89388 11.7916L6.89385 11.7915C6.58163 11.3478 6.28748 10.9298 6 10.5688V6C7.10457 6 8 5.10457 8 4V2C8 0.895431 7.10457 0 6 0H4Z"})}),"worldgen/biome":p("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:p("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M7 1C7 0.447715 7.44772 0 8 0C8.55229 0 9 0.447715 9 1V3C9 3.55228 8.55229 4 8 4C7.44772 4 7 3.55228 7 3V1ZM20.5 21H22.5C23.2136 21 23.6975 20.2741 23.4231 19.6154L19.9231 11.2154C19.5812 10.3949 18.4188 10.3949 18.0769 11.2154L14.5769 19.6154C14.3025 20.2741 14.7864 21 15.5 21H17.5V24H20.5V21ZM16 8C16 7.44772 15.5523 7 15 7H13C12.4477 7 12 7.44772 12 8C12 8.55228 12.4477 9 13 9H15C15.5523 9 16 8.55229 16 8ZM14.4142 13C14.8047 13.3905 14.8047 14.0237 14.4142 14.4142C14.0237 14.8047 13.3905 14.8047 13 14.4142L11.5858 13C11.1953 12.6095 11.1953 11.9763 11.5858 11.5858C11.9763 11.1953 12.6095 11.1953 13 11.5858L14.4142 13ZM4 8C4 7.44772 3.55228 7 3 7H1C0.447715 7 0 7.44772 0 8C0 8.55228 0.447715 9 1 9H3C3.55228 9 4 8.55229 4 8ZM4.41422 3C4.80474 3.39053 4.80474 4.02369 4.41422 4.41421C4.02369 4.80474 3.39053 4.80474 3 4.41421L1.58579 3C1.19526 2.60948 1.19526 1.97631 1.58579 1.58579C1.97631 1.19526 2.60948 1.19526 3 1.58579L4.41422 3ZM8 16C8.55229 16 9 15.5523 9 15V13C9 12.4477 8.55229 12 8 12C7.44772 12 7 12.4477 7 13L7 15C7 15.5523 7.44772 16 8 16ZM3 14.4142C2.60947 14.8047 1.97631 14.8047 1.58579 14.4142C1.19526 14.0237 1.19526 13.3905 1.58579 13L3 11.5858C3.39052 11.1953 4.02369 11.1953 4.41421 11.5858C4.80474 11.9763 4.80474 12.6095 4.41421 13L3 14.4142ZM14.4142 1.58579C14.0237 1.19526 13.3905 1.19526 13 1.58579L11.5858 3C11.1953 3.39053 11.1953 4.02369 11.5858 4.41422C11.9763 4.80474 12.6095 4.80474 13 4.41422L14.4142 3C14.8047 2.60948 14.8047 1.97631 14.4142 1.58579ZM7 5C5.89543 5 5 5.89543 5 7V9C5 10.1046 5.89543 11 7 11H9C10.1046 11 11 10.1046 11 9V7C11 5.89543 10.1046 5 9 5H7Z"})}),"worldgen/configured_carver":R("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[p("path",{d:"M20 24H4C1.79086 24 0 22.2091 2.47955e-06 20L3.09944e-06 19C1.5 20.5 4.5 22 7 21.5C9.5 21 10 19.7806 10 17.5C10 15 9.17881 12.9285 11.5 12C14 11 16 17 18.5 17.5C20.5 17.9 23 15.3333 24 14.5V20C24 22.2091 22.2091 24 20 24Z"}),p("path",{d:"M24 4V8C22.1667 9.66667 20.1125 11.8062 18.5 11C16.5 10 14 9 11.5 8.5C10.5194 8.30388 8.5 9 7.5 11C6.5 13 7.5 14.5 6.5 15.5C5.5 16.5 4.5 17 3.5 16C2.05778 14.5578 2 13 0 12.5L2.10762e-06 4C2.65539e-06 1.79086 1.79086 0 4 0H20C22.2091 0 24 1.79086 24 4Z"})]}),"worldgen/configured_feature":p("svg",{width:"11",height:"18",viewBox:"0 0 11 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:p("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M0 2C0 0.89543 0.895431 0 2 0H7C8.10457 0 9 0.895431 9 2V4C10.1046 4 11 4.89543 11 6V8C11 9.10457 10.1046 10 9 10H7C6.63571 10 6.29417 9.90261 6 9.73244L6 18H3V15H1C0.447715 15 0 14.5523 0 14V12C0 11.4477 0.447715 11 1 11H3L3 9H2C0.89543 9 0 8.10457 0 7V2Z"})}),"worldgen/configured_structure_feature":bf,"worldgen/configured_surface_builder":p("svg",{width:"24",height:"20",viewBox:"0 0 24 20",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:p("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M1.21953 2.06398C0.59354 2.14445 0 1.68765 0 1.0565C0 0.611334 0.302132 0.217946 0.74016 0.138531C2.48644 -0.178075 4.18528 -0.0156892 5.5 1.29904C5.94949 1.74852 6.39898 2.38729 6.89388 3.09058L6.89388 3.09059C7.5 3.95195 8.17424 4.91009 9 5.73586C9.9499 6.68575 11.6497 7.21092 13.5 7.29903C15 7.37046 17.078 6.69683 18 6.23586C18.8772 5.79726 21.2934 5.40727 23.2235 5.61295C23.6802 5.66162 24 6.06324 24 6.52248C24 7.14603 23.4206 7.61579 22.7982 7.57749C20.9522 7.46389 18.8138 7.82895 18 8.23586C17.078 8.69683 15 9.37046 13.5 9.29904C11.6497 9.21092 9.9499 8.68575 9 7.73586C8.17424 6.91009 7.5 5.95195 6.89388 5.09059L6.89388 5.09059L6.89387 5.09058C6.39898 4.38729 5.94949 3.74852 5.5 3.29904C4.30594 2.10498 2.79505 1.86144 1.21953 2.06398ZM4 19.299H20C22.2091 19.299 24 17.5082 24 15.299V9.73586C22 9.29903 19 9.73586 18 10.2359C17.078 10.6968 15 11.3705 13.5 11.299C11.6497 11.2109 9.9499 10.6858 9 9.73586C8.17423 8.91009 7.5 7.95194 6.89388 7.09058C6.39898 6.38729 5.94949 5.74852 5.5 5.29903C4 3.79903 2 3.79904 0 4.29903V15.299C0 17.5082 1.79086 19.299 4 19.299Z"})}),"worldgen/density_function":p("svg",{width:"24",height:"19",viewBox:"0 0 24 19",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:p("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M3.99999 19C3.44771 19 2.99999 18.5523 2.99999 18V16H0.999994C0.447709 16 -6.40123e-06 15.5523 -6.40123e-06 15C-6.40123e-06 14.4477 0.447709 14 0.999994 14H2.99999V6.50898C2.73742 6.59875 2.44791 6.71456 2.12858 6.86194C1.3764 7.2091 0.485216 6.88077 0.138056 6.12859C-0.209103 5.37641 0.11923 4.48522 0.871408 4.13806C1.62438 3.79054 2.33177 3.5433 2.99999 3.39632V1C2.99999 0.447716 3.44771 0 3.99999 0C4.55228 0 4.99999 0.447716 4.99999 1V3.2668C5.19676 3.28855 5.38996 3.32136 5.57983 3.36522C6.95063 3.68192 7.87758 4.51535 8.55369 5.26846C8.81818 5.56308 9.07365 5.88025 9.29728 6.15788L9.29731 6.15792C9.35241 6.22632 9.40557 6.29232 9.45646 6.35499C9.73181 6.69411 9.96489 6.96732 10.2004 7.19234C10.6367 7.60933 11.0034 7.79103 11.5 7.79103C13.4431 7.79103 14.7031 7.02516 16.2234 6.10111L16.4096 5.988C18.0133 5.01523 19.9627 3.89955 22.8254 4.53572C23.6341 4.71543 24.144 5.51669 23.9643 6.32539C23.7846 7.13409 22.9833 7.64399 22.1746 7.46428C20.5373 7.10044 19.4867 7.63028 17.9654 8.55302C17.8762 8.60715 17.7854 8.66264 17.6929 8.71915C16.2113 9.62479 14.3033 10.791 11.5 10.791C9.99661 10.791 8.92576 10.1238 8.12775 9.36127C7.74604 8.99651 7.41271 8.59727 7.12751 8.24603C7.06056 8.16357 6.99674 8.0844 6.93508 8.00791L6.9348 8.00757C6.71743 7.73792 6.52696 7.50165 6.3213 7.27257C5.84352 6.74037 5.44831 6.44194 4.99999 6.31296V14H23C23.5523 14 24 14.4477 24 15C24 15.5523 23.5523 16 23 16H4.99999V18C4.99999 18.5523 4.55228 19 3.99999 19Z"})}),"worldgen/flat_level_generator_preset":p("svg",{width:"24",height:"22",viewBox:"0 0 24 22",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:p("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M5 0C3.89543 0 3 0.895431 3 2V4C3 5.10457 3.89543 6 5 6V10H1C0.447715 10 0 10.4477 0 11C0 11.5523 0.447716 12 1 12H23C23.5523 12 24 11.5523 24 11C24 10.4477 23.5523 10 23 10H7V6C8.10457 6 9 5.10457 9 4V2C9 0.895431 8.10457 0 7 0H5ZM0 15C0 14.4477 0.447715 14 1 14H23C23.5523 14 24 14.4477 24 15V21C24 21.5523 23.5523 22 23 22H1C0.447716 22 0 21.5523 0 21V15Z"})}),"worldgen/noise":p("svg",{width:"32",height:"32",viewBox:"0 0 32 32",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:p("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M28 0H5C7 5 3 8 0 8V25.5C2.5 31 6.64628 28.2245 11 23C13.5 20 18 19 17.5 32H28C30.2091 32 32 30.2091 32 28V21.5C27.754 23.044 24.104 20.4161 21.05 18.2174C20.148 17.568 19.298 16.956 18.5 16.5C15 14.5 17.953 6.1094 23.5 5C25.2216 4.65569 25.5205 4.78558 27.6624 5.71624C28.6308 6.13704 29.9761 6.72157 32 7.5V4C32 1.79086 30.2091 0 28 0ZM8.5 11.5C7.5 11 6.5 10.5 5 12C2.87868 14.1213 3.5 19.5 6.5 19C9.5 18.5 10 16 10 14.5C10 13.3 9.13246 11.8162 8.5 11.5Z"})}),"worldgen/noise_settings":p("svg",{width:"24",height:"19",viewBox:"0 0 24 19",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:p("path",{d:"M20 18.299H4C1.79086 18.299 0 16.5082 0 14.299V3.29904C1.5 1 3.5 -1.5 6 2C7 3.4 7.5 7.23586 9 8.73586C9.9499 9.68576 11.3494 10.3408 13 9.5C14.5 8.73586 15 7 16.5 6.5C18.091 5.96967 22 8.29904 24 8.73586V14.299C24 16.5082 22.2091 18.299 20 18.299Z"})}),"worldgen/placed_feature":p("svg",{width:"15",height:"20",viewBox:"0 0 15 20",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:p("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M11 0C9.89543 0 9 0.89543 9 2V4C9 5.10457 9.89543 6 11 6V9H10C8.89543 9 8 9.89543 8 11V13C8 14.1046 8.89543 15 10 15V19.5H12V15C13.1046 15 14 14.1046 14 13V11C14 10.2597 13.5978 9.61337 13 9.26756V6C14.1046 6 15 5.10457 15 4V2C15 0.895431 14.1046 0 13 0H11ZM2 5C0.895431 5 0 5.89543 0 7V9C0 10.1046 0.89543 11 2 11L2 15.5H4V11C5.10457 11 6 10.1046 6 9V7C6 5.89543 5.10457 5 4 5H2Z"})}),"worldgen/processor_list":p("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:p("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M6.21973 0H4C1.79086 0 0 1.79086 0 4V5.82578L4.72912 3.27934L6.21973 0ZM0 8.0973V11H16.9613L17.9149 6.09189L11.6129 0H8.41664L6.48011 4.26037C6.34438 4.55898 6.11451 4.80487 5.82571 4.96037L5.43726 5.16954L7.99614 6.63176C8.47566 6.90577 8.64226 7.51662 8.36825 7.99614C8.09424 8.47566 7.48338 8.64225 7.00387 8.36824L3.50386 6.36824C3.45778 6.34191 3.41458 6.31246 3.37439 6.28032L0 8.0973ZM14.4905 0L17.5131 2.92179L19.4556 1.66116C19.9189 1.36051 20.5382 1.49235 20.8388 1.95563C21.1395 2.41891 21.0077 3.03819 20.5444 3.33884L18.9888 4.34834L19.5 4.84246C19.8649 5.19527 20.0267 5.70872 19.9299 6.20702L18.9987 11H24V4C24 1.79086 22.2091 0 20 0H14.4905ZM3.94591 14H0V20C0 22.2091 1.79086 24 4 24H11V19.1801L6.54232 18.1514L4.89443 21.4472C4.64744 21.9412 4.04677 22.1414 3.55279 21.8944C3.05881 21.6474 2.85859 21.0468 3.10558 20.5528L4.92033 16.9233L3.94591 14ZM11 17.1276V14H6.0541L6.77134 16.1517L11 17.1276ZM21.6247 17.7809C22.056 17.4359 22.1259 16.8066 21.7809 16.3753C21.4359 15.944 20.8066 15.8741 20.3753 16.2191L18.0071 18.1137C17.7506 18.3189 17.5686 18.6026 17.4889 18.9212L16.2192 24H14V14H24V20C24 22.2091 22.2091 24 20 24H18.2808L19.3883 19.57L21.6247 17.7809Z"})}),"worldgen/structure":bf,"worldgen/structure_set":p("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:p("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M11 4L9.5376 4C9.05336 4 8.85189 3.38045 9.24351 3.09563L13.2059 0.21388C13.3812 0.0863707 13.6188 0.0863706 13.7941 0.21388L17.7565 3.09563C18.1481 3.38045 17.9467 4 17.4624 4L16 4V7C16 7.55228 15.5523 8 15 8H12C11.4477 8 11 7.55228 11 7V4ZM8.46241 7H0.537581C0.0533412 7 -0.148129 6.38045 0.243493 6.09563L4.2059 3.21388C4.38123 3.08637 4.61875 3.08637 4.79407 3.21388L8.75649 6.09563C9.14812 6.38045 8.94665 7 8.46241 7ZM6.99999 10V7H1.99999V10C1.99999 10.5523 2.4477 11 2.99999 11H5.99999C6.55227 11 6.99999 10.5523 6.99999 10ZM9.99999 17V14H8.5376C8.05336 14 7.85189 13.3804 8.24351 13.0956L12.2059 10.2139C12.3812 10.0864 12.6188 10.0864 12.7941 10.2139L16.7565 13.0956C17.1481 13.3804 16.9467 14 16.4624 14H15V17C15 17.5523 14.5523 18 14 18H11C10.4477 18 9.99999 17.5523 9.99999 17Z"})}),"worldgen/template_pool":p("svg",{width:"20",height:"21",viewBox:"0 0 20 21",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:p("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M10.2361 5C10.7111 4.46924 11 3.76835 11 3C11 1.34315 9.65685 0 8 0C6.34315 0 5 1.34315 5 3C5 3.76835 5.28885 4.46924 5.76389 5H3C1.34315 5 0 6.34315 0 8V10.1707C0.312779 10.0602 0.649365 10 1 10C2.65685 10 4 11.3431 4 13C4 14.6569 2.65685 16 1 16C0.649365 16 0.312779 15.9398 0 15.8293V18C0 19.6569 1.34315 21 3 21H5.17071C5.06015 20.6872 5 20.3506 5 20C5 18.3431 6.34315 17 8 17C9.65685 17 11 18.3431 11 20C11 20.3506 10.9398 20.6872 10.8293 21H13C14.6569 21 16 19.6569 16 18V15.8293C16.3128 15.9398 16.6494 16 17 16C18.6569 16 20 14.6569 20 13C20 11.3431 18.6569 10 17 10C16.6494 10 16.3128 10.0602 16 10.1707V8C16 6.34315 14.6569 5 13 5H10.2361Z"})}),"worldgen/world_preset":p("svg",{width:"28",height:"23",viewBox:"0 0 28 23",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:p("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M15 2C15 0.89543 15.8954 0 17 0H19C20.1046 0 21 0.895431 21 2V4C21 5.10457 20.1046 6 19 6V9.88192C20.1705 9.67661 21.362 9.2558 22 8.93682C23 8.43682 26 8 28 8.43682V14C28 16.2091 26.2091 18 24 18H8C5.79086 18 4 16.2091 4 14V3C6 2.50001 8 2.5 9.5 4C9.94949 4.44949 10.399 5.08825 10.8939 5.79154L10.8939 5.79155C11.5 6.65291 12.1742 7.61106 13 8.43682C13.8636 9.30044 15.3471 9.81299 17 9.96519V6C15.8954 6 15 5.10457 15 4V2ZM22 20.2968H6C3.79086 20.2968 2 18.5059 2 16.2968V7C1.34604 7.01691 0.673018 7.12855 0 7.2968V18.2968C0 20.5059 1.79086 22.2968 4 22.2968H20C21.6222 22.2968 23.0189 21.3311 23.6465 19.9433C23.1444 20.1704 22.5869 20.2968 22 20.2968Z"})})};function P9({howler:e,sounds:t,sound:n,delay:r,pitch:i,volume:o,onEdit:a,onDelete:s,delayedPlay:l}){const{locale:d}=Ee(),{version:c}=Yt(),[u,f]=Y(!0),[h,w]=Y(!1),[_,g]=Y(!1),m=Ie([]),v=`playsound minecraft:${n} master @s ~ ~ ~ ${o} ${i}`;me(()=>{var S,T,L;const M=t[n];g(((T=(S=M==null?void 0:M.sounds)==null?void 0:S.length)!=null?T:0)===0),m.current.forEach(F=>F.stop()),m.current=((L=M==null?void 0:M.sounds)!=null?L:[]).map(F=>{const X=typeof F=="string"?F:F.name,V=gv(c,X),O=e({src:[V],format:["ogg"],volume:o,rate:i});O.on("end",()=>{w(!1)});const j=()=>{u&&m.current.every(H=>H.state()==="loaded")&&f(!1)};return O.state()==="loaded"?setTimeout(()=>j()):O.on("load",()=>{j()}),O}),f(!0)},[n,t]),me(()=>{m.current.forEach(M=>M.rate(i))},[i]),me(()=>{m.current.forEach(M=>M.volume(o))},[o]);const x=()=>{if(u||_)return;b();const M=Math.floor(Math.random()*m.current.length);m.current[M].play(),w(!0)},b=()=>{m.current.forEach(M=>M.stop())};me(()=>{l&&setTimeout(()=>x(),r*50)},[l]),me(()=>()=>b(),[]);const[y,k]=Y(!1),C=Ie(void 0),E=()=>{navigator.clipboard.writeText(v),k(!0),C.current!==void 0&&clearTimeout(C.current),C.current=setTimeout(()=>{k(!1)},2e3)};return R("div",{class:`sound-config${u?" loading":h?" playing":""}${_?" invalid":""}`,children:[p(ae,{class:"play",icon:_?"alert":u?"sync":"play",label:d("sounds.play"),onClick:x,tooltip:d(_?"sounds.unknown_sound":u?"sounds.loading_sound":"sounds.play_sound"),tooltipLoc:"se"}),p(_n,{class:"btn btn-input sound",list:"sound-list",spellcheck:!1,value:n,onChange:M=>a({sound:M})}),R("label",{class:"delay-label",children:[d("sounds.delay"),": "]}),p(Ts,{class:"btn btn-input delay",min:0,value:r,onChange:M=>a({delay:M})}),R("label",{class:"pitch-label",children:[d("sounds.pitch"),": "]}),p(Z1,{class:"pitch tooltipped tip-s",min:.5,max:2,step:.01,"aria-label":i.toFixed(2),style:`--x: ${(i-.5)*(100/1.5)}%`,value:i,onChange:M=>a({pitch:M})}),R("label",{class:"volume-label",children:[d("sounds.volume"),": "]}),p(Z1,{class:"volume tooltipped tip-s",min:0,max:1,step:.01,"aria-label":o.toFixed(2),style:`--x: ${o*100}%`,value:o,onChange:M=>a({volume:M})}),p(ae,{class:`copy${y?" active":""}`,icon:y?"check":"terminal",label:d("copy"),tooltip:d(y?"copied":"sounds.copy_command"),onClick:E}),p(ae,{class:"remove",icon:"trashcan",tooltip:d("sounds.remove_sound"),onClick:()=>{s(),b()}})]})}function er({title:e,desc:t,link:n,icon:r,titleIcon:i}){return r||t?R("a",{class:"tool-card",href:n,children:[r&&Ki[r],R("div",{children:[p(xf,{title:e,titleIcon:i}),p("p",{children:t})]})]}):p("a",{class:"tool-card",href:n,children:p(xf,{title:e,titleIcon:i})})}function xf({title:e,titleIcon:t}){return R("h3",{children:[e,t&&(t in fe?fe[t]:Ki[t])]})}function Sr({title:e,titleIcon:t,link:n,children:r}){return R("div",{class:"tool-group",children:[n===void 0?p("div",{class:"tool-card",children:p("h3",{children:e})}):p(er,{title:e,titleIcon:t,link:n}),r&&p("div",{class:"tool-body",children:r})]})}function oo({label:e,active:t,onClick:n}){const r=e==="breaking"?5:Vp(e)%360;return R("div",{class:`badge${t?" active":""}${n?" clickable":""}`,style:`--tint: ${r}`,onClick:n,children:[e==="breaking"&&fe.alert,e]})}function Og(){return{baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}}let ao=Og();function $9(e){ao=e}const B9=/[&<>"']/,z9=/[&<>"']/g,j9=/[<>"']|&(?!#?\w+;)/,V9=/[<>"']|&(?!#?\w+;)/g,U9={"&":"&","<":"<",">":">",'"':""","'":"'"},yf=e=>U9[e];function ht(e,t){if(t){if(B9.test(e))return e.replace(z9,yf)}else if(j9.test(e))return e.replace(V9,yf);return e}const H9=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig;function Ng(e){return e.replace(H9,(t,n)=>(n=n.toLowerCase(),n==="colon"?":":n.charAt(0)==="#"?n.charAt(1)==="x"?String.fromCharCode(parseInt(n.substring(2),16)):String.fromCharCode(+n.substring(1)):""))}const Z9=/(^|[^\[])\^/g;function We(e,t){e=e.source||e,t=t||"";const n={replace:(r,i)=>(i=i.source||i,i=i.replace(Z9,"$1"),e=e.replace(r,i),n),getRegex:()=>new RegExp(e,t)};return n}const G9=/[^\w:]/g,Y9=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function kf(e,t,n){if(e){let r;try{r=decodeURIComponent(Ng(n)).replace(G9,"").toLowerCase()}catch{return null}if(r.indexOf("javascript:")===0||r.indexOf("vbscript:")===0||r.indexOf("data:")===0)return null}t&&!Y9.test(n)&&(n=K9(t,n));try{n=encodeURI(n).replace(/%25/g,"%")}catch{return null}return n}const Ua={},W9=/^[^:]+:\/*[^/]*$/,q9=/^([^:]+:)[\s\S]*$/,X9=/^([^:]+:\/*[^/]*)[\s\S]*$/;function K9(e,t){Ua[" "+e]||(W9.test(e)?Ua[" "+e]=e+"/":Ua[" "+e]=ms(e,"/",!0)),e=Ua[" "+e];const n=e.indexOf(":")===-1;return t.substring(0,2)==="//"?n?t:e.replace(q9,"$1")+t:t.charAt(0)==="/"?n?t:e.replace(X9,"$1")+t:e+t}const Gs={exec:function(){}};function vn(e){let t=1,n,r;for(;t<arguments.length;t++){n=arguments[t];for(r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}function Cf(e,t){const n=e.replace(/\|/g,(o,a,s)=>{let l=!1,d=a;for(;--d>=0&&s[d]==="\\";)l=!l;return l?"|":" |"}),r=n.split(/ \|/);let i=0;if(r[0].trim()||r.shift(),r[r.length-1].trim()||r.pop(),r.length>t)r.splice(t);else for(;r.length<t;)r.push("");for(;i<r.length;i++)r[i]=r[i].trim().replace(/\\\|/g,"|");return r}function ms(e,t,n){const r=e.length;if(r===0)return"";let i=0;for(;i<r;){const o=e.charAt(r-i-1);if(o===t&&!n)i++;else if(o!==t&&n)i++;else break}return e.substr(0,r-i)}function J9(e,t){if(e.indexOf(t[1])===-1)return-1;const n=e.length;let r=0,i=0;for(;i<n;i++)if(e[i]==="\\")i++;else if(e[i]===t[0])r++;else if(e[i]===t[1]&&(r--,r<0))return i;return-1}function Rg(e){e&&e.sanitize&&!e.silent&&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")}function Ef(e,t){if(t<1)return"";let n="";for(;t>1;)t&1&&(n+=e),t>>=1,e+=e;return n+e}function Af(e,t,n,r){const i=t.href,o=t.title?ht(t.title):null,a=e[1].replace(/\\([\[\]])/g,"$1");if(e[0].charAt(0)!=="!"){r.state.inLink=!0;const s={type:"link",raw:n,href:i,title:o,text:a,tokens:r.inlineTokens(a,[])};return r.state.inLink=!1,s}else return{type:"image",raw:n,href:i,title:o,text:ht(a)}}function Q9(e,t){const n=e.match(/^(\s+)(?:```)/);if(n===null)return t;const r=n[1];return t.split(` +`).map(i=>{const o=i.match(/^\s+/);if(o===null)return i;const[a]=o;return a.length>=r.length?i.slice(r.length):i}).join(` +`)}class Kd{constructor(t){this.options=t||ao}space(t){const n=this.rules.block.newline.exec(t);if(n&&n[0].length>0)return{type:"space",raw:n[0]}}code(t){const n=this.rules.block.code.exec(t);if(n){const r=n[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:n[0],codeBlockStyle:"indented",text:this.options.pedantic?r:ms(r,` +`)}}}fences(t){const n=this.rules.block.fences.exec(t);if(n){const r=n[0],i=Q9(r,n[3]||"");return{type:"code",raw:r,lang:n[2]?n[2].trim():n[2],text:i}}}heading(t){const n=this.rules.block.heading.exec(t);if(n){let r=n[2].trim();if(/#$/.test(r)){const o=ms(r,"#");(this.options.pedantic||!o||/ $/.test(o))&&(r=o.trim())}const i={type:"heading",raw:n[0],depth:n[1].length,text:r,tokens:[]};return this.lexer.inline(i.text,i.tokens),i}}hr(t){const n=this.rules.block.hr.exec(t);if(n)return{type:"hr",raw:n[0]}}blockquote(t){const n=this.rules.block.blockquote.exec(t);if(n){const r=n[0].replace(/^ *> ?/gm,"");return{type:"blockquote",raw:n[0],tokens:this.lexer.blockTokens(r,[]),text:r}}}list(t){let n=this.rules.block.list.exec(t);if(n){let r,i,o,a,s,l,d,c,u,f,h,w,_=n[1].trim();const g=_.length>1,m={type:"list",raw:"",ordered:g,start:g?+_.slice(0,-1):"",loose:!1,items:[]};_=g?`\\d{1,9}\\${_.slice(-1)}`:`\\${_}`,this.options.pedantic&&(_=g?_:"[*+-]");const v=new RegExp(`^( {0,3}${_})((?: [^\\n]*)?(?:\\n|$))`);for(;t&&(w=!1,!(!(n=v.exec(t))||this.rules.block.hr.test(t)));){if(r=n[0],t=t.substring(r.length),c=n[2].split(` +`,1)[0],u=t.split(` +`,1)[0],this.options.pedantic?(a=2,h=c.trimLeft()):(a=n[2].search(/[^ ]/),a=a>4?1:a,h=c.slice(a),a+=n[1].length),l=!1,!c&&/^ *$/.test(u)&&(r+=u+` +`,t=t.substring(u.length+1),w=!0),!w){const b=new RegExp(`^ {0,${Math.min(3,a-1)}}(?:[*+-]|\\d{1,9}[.)])`);for(;t&&(f=t.split(` +`,1)[0],c=f,this.options.pedantic&&(c=c.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),!b.test(c));){if(c.search(/[^ ]/)>=a||!c.trim())h+=` +`+c.slice(a);else if(!l)h+=` +`+c;else break;!l&&!c.trim()&&(l=!0),r+=f+` +`,t=t.substring(f.length+1)}}m.loose||(d?m.loose=!0:/\n *\n *$/.test(r)&&(d=!0)),this.options.gfm&&(i=/^\[[ xX]\] /.exec(h),i&&(o=i[0]!=="[ ] ",h=h.replace(/^\[[ xX]\] +/,""))),m.items.push({type:"list_item",raw:r,task:!!i,checked:o,loose:!1,text:h}),m.raw+=r}m.items[m.items.length-1].raw=r.trimRight(),m.items[m.items.length-1].text=h.trimRight(),m.raw=m.raw.trimRight();const x=m.items.length;for(s=0;s<x;s++){this.lexer.state.top=!1,m.items[s].tokens=this.lexer.blockTokens(m.items[s].text,[]);const b=m.items[s].tokens.filter(k=>k.type==="space"),y=b.every(k=>{const C=k.raw.split("");let E=0;for(const M of C)if(M===` +`&&(E+=1),E>1)return!0;return!1});!m.loose&&b.length&&y&&(m.loose=!0,m.items[s].loose=!0)}return m}}html(t){const n=this.rules.block.html.exec(t);if(n){const r={type:"html",raw:n[0],pre:!this.options.sanitizer&&(n[1]==="pre"||n[1]==="script"||n[1]==="style"),text:n[0]};return this.options.sanitize&&(r.type="paragraph",r.text=this.options.sanitizer?this.options.sanitizer(n[0]):ht(n[0]),r.tokens=[],this.lexer.inline(r.text,r.tokens)),r}}def(t){const n=this.rules.block.def.exec(t);if(n){n[3]&&(n[3]=n[3].substring(1,n[3].length-1));const r=n[1].toLowerCase().replace(/\s+/g," ");return{type:"def",tag:r,raw:n[0],href:n[2],title:n[3]}}}table(t){const n=this.rules.block.table.exec(t);if(n){const r={type:"table",header:Cf(n[1]).map(i=>({text:i})),align:n[2].replace(/^ *|\| *$/g,"").split(/ *\| */),rows:n[3]?n[3].replace(/\n[ \t]*$/,"").split(` +`):[]};if(r.header.length===r.align.length){r.raw=n[0];let i=r.align.length,o,a,s,l;for(o=0;o<i;o++)/^ *-+: *$/.test(r.align[o])?r.align[o]="right":/^ *:-+: *$/.test(r.align[o])?r.align[o]="center":/^ *:-+ *$/.test(r.align[o])?r.align[o]="left":r.align[o]=null;for(i=r.rows.length,o=0;o<i;o++)r.rows[o]=Cf(r.rows[o],r.header.length).map(d=>({text:d}));for(i=r.header.length,a=0;a<i;a++)r.header[a].tokens=[],this.lexer.inlineTokens(r.header[a].text,r.header[a].tokens);for(i=r.rows.length,a=0;a<i;a++)for(l=r.rows[a],s=0;s<l.length;s++)l[s].tokens=[],this.lexer.inlineTokens(l[s].text,l[s].tokens);return r}}}lheading(t){const n=this.rules.block.lheading.exec(t);if(n){const r={type:"heading",raw:n[0],depth:n[2].charAt(0)==="="?1:2,text:n[1],tokens:[]};return this.lexer.inline(r.text,r.tokens),r}}paragraph(t){const n=this.rules.block.paragraph.exec(t);if(n){const r={type:"paragraph",raw:n[0],text:n[1].charAt(n[1].length-1)===` +`?n[1].slice(0,-1):n[1],tokens:[]};return this.lexer.inline(r.text,r.tokens),r}}text(t){const n=this.rules.block.text.exec(t);if(n){const r={type:"text",raw:n[0],text:n[0],tokens:[]};return this.lexer.inline(r.text,r.tokens),r}}escape(t){const n=this.rules.inline.escape.exec(t);if(n)return{type:"escape",raw:n[0],text:ht(n[1])}}tag(t){const n=this.rules.inline.tag.exec(t);if(n)return!this.lexer.state.inLink&&/^<a /i.test(n[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&/^<\/a>/i.test(n[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(n[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(n[0])&&(this.lexer.state.inRawBlock=!1),{type:this.options.sanitize?"text":"html",raw:n[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(n[0]):ht(n[0]):n[0]}}link(t){const n=this.rules.inline.link.exec(t);if(n){const r=n[2].trim();if(!this.options.pedantic&&/^</.test(r)){if(!/>$/.test(r))return;const a=ms(r.slice(0,-1),"\\");if((r.length-a.length)%2===0)return}else{const a=J9(n[2],"()");if(a>-1){const l=(n[0].indexOf("!")===0?5:4)+n[1].length+a;n[2]=n[2].substring(0,a),n[0]=n[0].substring(0,l).trim(),n[3]=""}}let i=n[2],o="";if(this.options.pedantic){const a=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(i);a&&(i=a[1],o=a[3])}else o=n[3]?n[3].slice(1,-1):"";return i=i.trim(),/^</.test(i)&&(this.options.pedantic&&!/>$/.test(r)?i=i.slice(1):i=i.slice(1,-1)),Af(n,{href:i&&i.replace(this.rules.inline._escapes,"$1"),title:o&&o.replace(this.rules.inline._escapes,"$1")},n[0],this.lexer)}}reflink(t,n){let r;if((r=this.rules.inline.reflink.exec(t))||(r=this.rules.inline.nolink.exec(t))){let i=(r[2]||r[1]).replace(/\s+/g," ");if(i=n[i.toLowerCase()],!i||!i.href){const o=r[0].charAt(0);return{type:"text",raw:o,text:o}}return Af(r,i,r[0],this.lexer)}}emStrong(t,n,r=""){let i=this.rules.inline.emStrong.lDelim.exec(t);if(!i||i[3]&&r.match(/[\p{L}\p{N}]/u))return;const o=i[1]||i[2]||"";if(!o||o&&(r===""||this.rules.inline.punctuation.exec(r))){const a=i[0].length-1;let s,l,d=a,c=0;const u=i[0][0]==="*"?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(u.lastIndex=0,n=n.slice(-1*t.length+a);(i=u.exec(n))!=null;){if(s=i[1]||i[2]||i[3]||i[4]||i[5]||i[6],!s)continue;if(l=s.length,i[3]||i[4]){d+=l;continue}else if((i[5]||i[6])&&a%3&&!((a+l)%3)){c+=l;continue}if(d-=l,d>0)continue;if(l=Math.min(l,l+d+c),Math.min(a,l)%2){const h=t.slice(1,a+i.index+l);return{type:"em",raw:t.slice(0,a+i.index+l+1),text:h,tokens:this.lexer.inlineTokens(h,[])}}const f=t.slice(2,a+i.index+l-1);return{type:"strong",raw:t.slice(0,a+i.index+l+1),text:f,tokens:this.lexer.inlineTokens(f,[])}}}}codespan(t){const n=this.rules.inline.code.exec(t);if(n){let r=n[2].replace(/\n/g," ");const i=/[^ ]/.test(r),o=/^ /.test(r)&&/ $/.test(r);return i&&o&&(r=r.substring(1,r.length-1)),r=ht(r,!0),{type:"codespan",raw:n[0],text:r}}}br(t){const n=this.rules.inline.br.exec(t);if(n)return{type:"br",raw:n[0]}}del(t){const n=this.rules.inline.del.exec(t);if(n)return{type:"del",raw:n[0],text:n[2],tokens:this.lexer.inlineTokens(n[2],[])}}autolink(t,n){const r=this.rules.inline.autolink.exec(t);if(r){let i,o;return r[2]==="@"?(i=ht(this.options.mangle?n(r[1]):r[1]),o="mailto:"+i):(i=ht(r[1]),o=i),{type:"link",raw:r[0],text:i,href:o,tokens:[{type:"text",raw:i,text:i}]}}}url(t,n){let r;if(r=this.rules.inline.url.exec(t)){let i,o;if(r[2]==="@")i=ht(this.options.mangle?n(r[0]):r[0]),o="mailto:"+i;else{let a;do a=r[0],r[0]=this.rules.inline._backpedal.exec(r[0])[0];while(a!==r[0]);i=ht(r[0]),r[1]==="www."?o="http://"+i:o=i}return{type:"link",raw:r[0],text:i,href:o,tokens:[{type:"text",raw:i,text:i}]}}}inlineText(t,n){const r=this.rules.inline.text.exec(t);if(r){let i;return this.lexer.state.inRawBlock?i=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(r[0]):ht(r[0]):r[0]:i=ht(this.options.smartypants?n(r[0]):r[0]),{type:"text",raw:r[0],text:i}}}}const he={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]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))",def:/^ {0,3}\[(label)\]: *(?:\n *)?<?([^\s>]+)>?(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/,table:Gs,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,text:/^[^\n]+/};he._label=/(?!\s*\])(?:\\.|[^\[\]\\])+/;he._title=/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/;he.def=We(he.def).replace("label",he._label).replace("title",he._title).getRegex();he.bullet=/(?:[*+-]|\d{1,9}[.)])/;he.listItemStart=We(/^( *)(bull) */).replace("bull",he.bullet).getRegex();he.list=We(he.list).replace(/bull/g,he.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+he.def.source+")").getRegex();he._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";he._comment=/<!--(?!-?>)[\s\S]*?(?:-->|$)/;he.html=We(he.html,"i").replace("comment",he._comment).replace("tag",he._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex();he.paragraph=We(he._paragraph).replace("hr",he.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",he._tag).getRegex();he.blockquote=We(he.blockquote).replace("paragraph",he.paragraph).getRegex();he.normal=vn({},he);he.gfm=vn({},he.normal,{table:"^ *([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"});he.gfm.table=We(he.gfm.table).replace("hr",he.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","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",he._tag).getRegex();he.gfm.paragraph=We(he._paragraph).replace("hr",he.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("table",he.gfm.table).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",he._tag).getRegex();he.pedantic=vn({},he.normal,{html:We(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",he._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:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:Gs,paragraph:We(he.normal._paragraph).replace("hr",he.hr).replace("heading",` *#{1,6} *[^ +]`).replace("lheading",he.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});const re={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:Gs,tag:"^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(ref)\]/,nolink:/^!?\[(ref)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",emStrong:{lDelim:/^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,rDelimAst:/^[^_*]*?\_\_[^_*]*?\*[^_*]*?(?=\_\_)|[punct_](\*+)(?=[\s]|$)|[^punct*_\s](\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|[^punct*_\s](\*+)(?=[^punct*_\s])/,rDelimUnd:/^[^_*]*?\*\*[^_*]*?\_[^_*]*?(?=\*\*)|[punct*](\_+)(?=[\s]|$)|[^punct*_\s](\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:Gs,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,punctuation:/^([\spunctuation])/};re._punctuation="!\"#$%&'()+\\-.,/:;<=>?@\\[\\]`^{|}~";re.punctuation=We(re.punctuation).replace(/punctuation/g,re._punctuation).getRegex();re.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g;re.escapedEmSt=/\\\*|\\_/g;re._comment=We(he._comment).replace("(?:-->|$)","-->").getRegex();re.emStrong.lDelim=We(re.emStrong.lDelim).replace(/punct/g,re._punctuation).getRegex();re.emStrong.rDelimAst=We(re.emStrong.rDelimAst,"g").replace(/punct/g,re._punctuation).getRegex();re.emStrong.rDelimUnd=We(re.emStrong.rDelimUnd,"g").replace(/punct/g,re._punctuation).getRegex();re._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g;re._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;re._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])?)+(?![-_])/;re.autolink=We(re.autolink).replace("scheme",re._scheme).replace("email",re._email).getRegex();re._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/;re.tag=We(re.tag).replace("comment",re._comment).replace("attribute",re._attribute).getRegex();re._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/;re._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/;re._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/;re.link=We(re.link).replace("label",re._label).replace("href",re._href).replace("title",re._title).getRegex();re.reflink=We(re.reflink).replace("label",re._label).replace("ref",he._label).getRegex();re.nolink=We(re.nolink).replace("ref",he._label).getRegex();re.reflinkSearch=We(re.reflinkSearch,"g").replace("reflink",re.reflink).replace("nolink",re.nolink).getRegex();re.normal=vn({},re);re.pedantic=vn({},re.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:We(/^!?\[(label)\]\((.*?)\)/).replace("label",re._label).getRegex(),reflink:We(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",re._label).getRegex()});re.gfm=vn({},re.normal,{escape:We(re.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]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/});re.gfm.url=We(re.gfm.url,"i").replace("email",re.gfm._extended_email).getRegex();re.breaks=vn({},re.gfm,{br:We(re.br).replace("{2,}","*").getRegex(),text:We(re.gfm.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()});function ey(e){return e.replace(/---/g,"\u2014").replace(/--/g,"\u2013").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1\u2018").replace(/'/g,"\u2019").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1\u201C").replace(/"/g,"\u201D").replace(/\.{3}/g,"\u2026")}function Sf(e){let t="",n,r;const i=e.length;for(n=0;n<i;n++)r=e.charCodeAt(n),Math.random()>.5&&(r="x"+r.toString(16)),t+="&#"+r+";";return t}class rr{constructor(t){this.tokens=[],this.tokens.links=Object.create(null),this.options=t||ao,this.options.tokenizer=this.options.tokenizer||new Kd,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 n={block:he.normal,inline:re.normal};this.options.pedantic?(n.block=he.pedantic,n.inline=re.pedantic):this.options.gfm&&(n.block=he.gfm,this.options.breaks?n.inline=re.breaks:n.inline=re.gfm),this.tokenizer.rules=n}static get rules(){return{block:he,inline:re}}static lex(t,n){return new rr(n).lex(t)}static lexInline(t,n){return new rr(n).inlineTokens(t)}lex(t){t=t.replace(/\r\n|\r/g,` +`).replace(/\t/g," "),this.blockTokens(t,this.tokens);let n;for(;n=this.inlineQueue.shift();)this.inlineTokens(n.src,n.tokens);return this.tokens}blockTokens(t,n=[]){this.options.pedantic&&(t=t.replace(/^ +$/gm,""));let r,i,o,a;for(;t;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(s=>(r=s.call({lexer:this},t,n))?(t=t.substring(r.raw.length),n.push(r),!0):!1))){if(r=this.tokenizer.space(t)){t=t.substring(r.raw.length),r.raw.length===1&&n.length>0?n[n.length-1].raw+=` +`:n.push(r);continue}if(r=this.tokenizer.code(t)){t=t.substring(r.raw.length),i=n[n.length-1],i&&(i.type==="paragraph"||i.type==="text")?(i.raw+=` +`+r.raw,i.text+=` +`+r.text,this.inlineQueue[this.inlineQueue.length-1].src=i.text):n.push(r);continue}if(r=this.tokenizer.fences(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.heading(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.hr(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.blockquote(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.list(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.html(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.def(t)){t=t.substring(r.raw.length),i=n[n.length-1],i&&(i.type==="paragraph"||i.type==="text")?(i.raw+=` +`+r.raw,i.text+=` +`+r.raw,this.inlineQueue[this.inlineQueue.length-1].src=i.text):this.tokens.links[r.tag]||(this.tokens.links[r.tag]={href:r.href,title:r.title});continue}if(r=this.tokenizer.table(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.lheading(t)){t=t.substring(r.raw.length),n.push(r);continue}if(o=t,this.options.extensions&&this.options.extensions.startBlock){let s=1/0;const l=t.slice(1);let d;this.options.extensions.startBlock.forEach(function(c){d=c.call({lexer:this},l),typeof d=="number"&&d>=0&&(s=Math.min(s,d))}),s<1/0&&s>=0&&(o=t.substring(0,s+1))}if(this.state.top&&(r=this.tokenizer.paragraph(o))){i=n[n.length-1],a&&i.type==="paragraph"?(i.raw+=` +`+r.raw,i.text+=` +`+r.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=i.text):n.push(r),a=o.length!==t.length,t=t.substring(r.raw.length);continue}if(r=this.tokenizer.text(t)){t=t.substring(r.raw.length),i=n[n.length-1],i&&i.type==="text"?(i.raw+=` +`+r.raw,i.text+=` +`+r.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=i.text):n.push(r);continue}if(t){const s="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(s);break}else throw new Error(s)}}return this.state.top=!0,n}inline(t,n){this.inlineQueue.push({src:t,tokens:n})}inlineTokens(t,n=[]){let r,i,o,a=t,s,l,d;if(this.tokens.links){const c=Object.keys(this.tokens.links);if(c.length>0)for(;(s=this.tokenizer.rules.inline.reflinkSearch.exec(a))!=null;)c.includes(s[0].slice(s[0].lastIndexOf("[")+1,-1))&&(a=a.slice(0,s.index)+"["+Ef("a",s[0].length-2)+"]"+a.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(s=this.tokenizer.rules.inline.blockSkip.exec(a))!=null;)a=a.slice(0,s.index)+"["+Ef("a",s[0].length-2)+"]"+a.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;(s=this.tokenizer.rules.inline.escapedEmSt.exec(a))!=null;)a=a.slice(0,s.index)+"++"+a.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);for(;t;)if(l||(d=""),l=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(c=>(r=c.call({lexer:this},t,n))?(t=t.substring(r.raw.length),n.push(r),!0):!1))){if(r=this.tokenizer.escape(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.tag(t)){t=t.substring(r.raw.length),i=n[n.length-1],i&&r.type==="text"&&i.type==="text"?(i.raw+=r.raw,i.text+=r.text):n.push(r);continue}if(r=this.tokenizer.link(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(r.raw.length),i=n[n.length-1],i&&r.type==="text"&&i.type==="text"?(i.raw+=r.raw,i.text+=r.text):n.push(r);continue}if(r=this.tokenizer.emStrong(t,a,d)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.codespan(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.br(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.del(t)){t=t.substring(r.raw.length),n.push(r);continue}if(r=this.tokenizer.autolink(t,Sf)){t=t.substring(r.raw.length),n.push(r);continue}if(!this.state.inLink&&(r=this.tokenizer.url(t,Sf))){t=t.substring(r.raw.length),n.push(r);continue}if(o=t,this.options.extensions&&this.options.extensions.startInline){let c=1/0;const u=t.slice(1);let f;this.options.extensions.startInline.forEach(function(h){f=h.call({lexer:this},u),typeof f=="number"&&f>=0&&(c=Math.min(c,f))}),c<1/0&&c>=0&&(o=t.substring(0,c+1))}if(r=this.tokenizer.inlineText(o,ey)){t=t.substring(r.raw.length),r.raw.slice(-1)!=="_"&&(d=r.raw.slice(-1)),l=!0,i=n[n.length-1],i&&i.type==="text"?(i.raw+=r.raw,i.text+=r.text):n.push(r);continue}if(t){const c="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(c);break}else throw new Error(c)}}return n}}class Jd{constructor(t){this.options=t||ao}code(t,n,r){const i=(n||"").match(/\S*/)[0];if(this.options.highlight){const o=this.options.highlight(t,i);o!=null&&o!==t&&(r=!0,t=o)}return t=t.replace(/\n$/,"")+` +`,i?'<pre><code class="'+this.options.langPrefix+ht(i,!0)+'">'+(r?t:ht(t,!0))+`</code></pre> +`:"<pre><code>"+(r?t:ht(t,!0))+`</code></pre> +`}blockquote(t){return`<blockquote> +`+t+`</blockquote> +`}html(t){return t}heading(t,n,r,i){return this.options.headerIds?"<h"+n+' id="'+this.options.headerPrefix+i.slug(r)+'">'+t+"</h"+n+`> +`:"<h"+n+">"+t+"</h"+n+`> +`}hr(){return this.options.xhtml?`<hr/> +`:`<hr> +`}list(t,n,r){const i=n?"ol":"ul",o=n&&r!==1?' start="'+r+'"':"";return"<"+i+o+`> +`+t+"</"+i+`> +`}listitem(t){return"<li>"+t+`</li> +`}checkbox(t){return"<input "+(t?'checked="" ':"")+'disabled="" type="checkbox"'+(this.options.xhtml?" /":"")+"> "}paragraph(t){return"<p>"+t+`</p> +`}table(t,n){return n&&(n="<tbody>"+n+"</tbody>"),`<table> +<thead> +`+t+`</thead> +`+n+`</table> +`}tablerow(t){return`<tr> +`+t+`</tr> +`}tablecell(t,n){const r=n.header?"th":"td";return(n.align?"<"+r+' align="'+n.align+'">':"<"+r+">")+t+"</"+r+`> +`}strong(t){return"<strong>"+t+"</strong>"}em(t){return"<em>"+t+"</em>"}codespan(t){return"<code>"+t+"</code>"}br(){return this.options.xhtml?"<br/>":"<br>"}del(t){return"<del>"+t+"</del>"}link(t,n,r){if(t=kf(this.options.sanitize,this.options.baseUrl,t),t===null)return r;let i='<a href="'+ht(t)+'"';return n&&(i+=' title="'+n+'"'),i+=">"+r+"</a>",i}image(t,n,r){if(t=kf(this.options.sanitize,this.options.baseUrl,t),t===null)return r;let i='<img src="'+t+'" alt="'+r+'"';return n&&(i+=' title="'+n+'"'),i+=this.options.xhtml?"/>":">",i}text(t){return t}}class Dg{strong(t){return t}em(t){return t}codespan(t){return t}del(t){return t}html(t){return t}text(t){return t}link(t,n,r){return""+r}image(t,n,r){return""+r}br(){return""}}class Fg{constructor(){this.seen={}}serialize(t){return t.toLowerCase().trim().replace(/<[!\/a-z].*?>/ig,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")}getNextSafeSlug(t,n){let r=t,i=0;if(this.seen.hasOwnProperty(r)){i=this.seen[t];do i++,r=t+"-"+i;while(this.seen.hasOwnProperty(r))}return n||(this.seen[t]=i,this.seen[r]=0),r}slug(t,n={}){const r=this.serialize(t);return this.getNextSafeSlug(r,n.dryrun)}}class ir{constructor(t){this.options=t||ao,this.options.renderer=this.options.renderer||new Jd,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new Dg,this.slugger=new Fg}static parse(t,n){return new ir(n).parse(t)}static parseInline(t,n){return new ir(n).parseInline(t)}parse(t,n=!0){let r="",i,o,a,s,l,d,c,u,f,h,w,_,g,m,v,x,b,y,k;const C=t.length;for(i=0;i<C;i++){if(h=t[i],this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[h.type]&&(k=this.options.extensions.renderers[h.type].call({parser:this},h),k!==!1||!["space","hr","heading","code","table","blockquote","list","html","paragraph","text"].includes(h.type))){r+=k||"";continue}switch(h.type){case"space":continue;case"hr":{r+=this.renderer.hr();continue}case"heading":{r+=this.renderer.heading(this.parseInline(h.tokens),h.depth,Ng(this.parseInline(h.tokens,this.textRenderer)),this.slugger);continue}case"code":{r+=this.renderer.code(h.text,h.lang,h.escaped);continue}case"table":{for(u="",c="",s=h.header.length,o=0;o<s;o++)c+=this.renderer.tablecell(this.parseInline(h.header[o].tokens),{header:!0,align:h.align[o]});for(u+=this.renderer.tablerow(c),f="",s=h.rows.length,o=0;o<s;o++){for(d=h.rows[o],c="",l=d.length,a=0;a<l;a++)c+=this.renderer.tablecell(this.parseInline(d[a].tokens),{header:!1,align:h.align[a]});f+=this.renderer.tablerow(c)}r+=this.renderer.table(u,f);continue}case"blockquote":{f=this.parse(h.tokens),r+=this.renderer.blockquote(f);continue}case"list":{for(w=h.ordered,_=h.start,g=h.loose,s=h.items.length,f="",o=0;o<s;o++)v=h.items[o],x=v.checked,b=v.task,m="",v.task&&(y=this.renderer.checkbox(x),g?v.tokens.length>0&&v.tokens[0].type==="paragraph"?(v.tokens[0].text=y+" "+v.tokens[0].text,v.tokens[0].tokens&&v.tokens[0].tokens.length>0&&v.tokens[0].tokens[0].type==="text"&&(v.tokens[0].tokens[0].text=y+" "+v.tokens[0].tokens[0].text)):v.tokens.unshift({type:"text",text:y}):m+=y),m+=this.parse(v.tokens,g),f+=this.renderer.listitem(m,b,x);r+=this.renderer.list(f,w,_);continue}case"html":{r+=this.renderer.html(h.text);continue}case"paragraph":{r+=this.renderer.paragraph(this.parseInline(h.tokens));continue}case"text":{for(f=h.tokens?this.parseInline(h.tokens):h.text;i+1<C&&t[i+1].type==="text";)h=t[++i],f+=` +`+(h.tokens?this.parseInline(h.tokens):h.text);r+=n?this.renderer.paragraph(f):f;continue}default:{const E='Token with "'+h.type+'" type was not found.';if(this.options.silent){console.error(E);return}else throw new Error(E)}}}return r}parseInline(t,n){n=n||this.renderer;let r="",i,o,a;const s=t.length;for(i=0;i<s;i++){if(o=t[i],this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[o.type]&&(a=this.options.extensions.renderers[o.type].call({parser:this},o),a!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(o.type))){r+=a||"";continue}switch(o.type){case"escape":{r+=n.text(o.text);break}case"html":{r+=n.html(o.text);break}case"link":{r+=n.link(o.href,o.title,this.parseInline(o.tokens,n));break}case"image":{r+=n.image(o.href,o.title,o.text);break}case"strong":{r+=n.strong(this.parseInline(o.tokens,n));break}case"em":{r+=n.em(this.parseInline(o.tokens,n));break}case"codespan":{r+=n.codespan(o.text);break}case"br":{r+=n.br();break}case"del":{r+=n.del(this.parseInline(o.tokens,n));break}case"text":{r+=n.text(o.text);break}default:{const l='Token with "'+o.type+'" type was not found.';if(this.options.silent){console.error(l);return}else throw new Error(l)}}}return r}}function xe(e,t,n){if(typeof e=="undefined"||e===null)throw new Error("marked(): input parameter is undefined or null");if(typeof e!="string")throw new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected");if(typeof t=="function"&&(n=t,t=null),t=vn({},xe.defaults,t||{}),Rg(t),n){const r=t.highlight;let i;try{i=rr.lex(e,t)}catch(s){return n(s)}const o=function(s){let l;if(!s)try{t.walkTokens&&xe.walkTokens(i,t.walkTokens),l=ir.parse(i,t)}catch(d){s=d}return t.highlight=r,s?n(s):n(null,l)};if(!r||r.length<3||(delete t.highlight,!i.length))return o();let a=0;xe.walkTokens(i,function(s){s.type==="code"&&(a++,setTimeout(()=>{r(s.text,s.lang,function(l,d){if(l)return o(l);d!=null&&d!==s.text&&(s.text=d,s.escaped=!0),a--,a===0&&o()})},0))}),a===0&&o();return}try{const r=rr.lex(e,t);return t.walkTokens&&xe.walkTokens(r,t.walkTokens),ir.parse(r,t)}catch(r){if(r.message+=` +Please report this to https://github.com/markedjs/marked.`,t.silent)return"<p>An error occurred:</p><pre>"+ht(r.message+"",!0)+"</pre>";throw r}}xe.options=xe.setOptions=function(e){return vn(xe.defaults,e),$9(xe.defaults),xe};xe.getDefaults=Og;xe.defaults=ao;xe.use=function(...e){const t=vn({},...e),n=xe.defaults.extensions||{renderers:{},childTokens:{}};let r;e.forEach(i=>{if(i.extensions&&(r=!0,i.extensions.forEach(o=>{if(!o.name)throw new Error("extension name required");if(o.renderer){const a=n.renderers?n.renderers[o.name]:null;a?n.renderers[o.name]=function(...s){let l=o.renderer.apply(this,s);return l===!1&&(l=a.apply(this,s)),l}:n.renderers[o.name]=o.renderer}if(o.tokenizer){if(!o.level||o.level!=="block"&&o.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");n[o.level]?n[o.level].unshift(o.tokenizer):n[o.level]=[o.tokenizer],o.start&&(o.level==="block"?n.startBlock?n.startBlock.push(o.start):n.startBlock=[o.start]:o.level==="inline"&&(n.startInline?n.startInline.push(o.start):n.startInline=[o.start]))}o.childTokens&&(n.childTokens[o.name]=o.childTokens)})),i.renderer){const o=xe.defaults.renderer||new Jd;for(const a in i.renderer){const s=o[a];o[a]=(...l)=>{let d=i.renderer[a].apply(o,l);return d===!1&&(d=s.apply(o,l)),d}}t.renderer=o}if(i.tokenizer){const o=xe.defaults.tokenizer||new Kd;for(const a in i.tokenizer){const s=o[a];o[a]=(...l)=>{let d=i.tokenizer[a].apply(o,l);return d===!1&&(d=s.apply(o,l)),d}}t.tokenizer=o}if(i.walkTokens){const o=xe.defaults.walkTokens;t.walkTokens=function(a){i.walkTokens.call(this,a),o&&o.call(this,a)}}r&&(t.extensions=n),xe.setOptions(t)})};xe.walkTokens=function(e,t){for(const n of e)switch(t.call(xe,n),n.type){case"table":{for(const r of n.header)xe.walkTokens(r.tokens,t);for(const r of n.rows)for(const i of r)xe.walkTokens(i.tokens,t);break}case"list":{xe.walkTokens(n.items,t);break}default:xe.defaults.extensions&&xe.defaults.extensions.childTokens&&xe.defaults.extensions.childTokens[n.type]?xe.defaults.extensions.childTokens[n.type].forEach(function(r){xe.walkTokens(n[r],t)}):n.tokens&&xe.walkTokens(n.tokens,t)}};xe.parseInline=function(e,t){if(typeof e=="undefined"||e===null)throw new Error("marked.parseInline(): input parameter is undefined or null");if(typeof e!="string")throw new Error("marked.parseInline(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected");t=vn({},xe.defaults,t||{}),Rg(t);try{const n=rr.lexInline(e,t);return t.walkTokens&&xe.walkTokens(n,t.walkTokens),ir.parseInline(n,t)}catch(n){if(n.message+=` +Please report this to https://github.com/markedjs/marked.`,t.silent)return"<p>An error occurred:</p><pre>"+ht(n.message+"",!0)+"</pre>";throw n}};xe.Parser=ir;xe.parser=ir.parse;xe.Renderer=Jd;xe.TextRenderer=Dg;xe.Lexer=rr;xe.lexer=rr.lex;xe.Tokenizer=Kd;xe.Slugger=Fg;xe.parse=xe;ir.parse;rr.lex;function Pg({change:e,minimal:t,activeTags:n,toggleTag:r}){return R(Ld,{overlay:!t&&R(ce,{children:[p("a",{class:"changelog-version",href:`/versions/?id=${e.version}`,children:e.version}),p("a",{class:"changelog-version",href:`/versions/?id=${e.group}`,children:e.group})]}),children:[p("div",{class:"badges-list",children:e.tags.map(i=>p(oo,{label:i,onClick:r?()=>r(i):void 0,active:n==null?void 0:n.includes(i)}))}),p("div",{class:"changelog-content",dangerouslySetInnerHTML:{__html:xe(e.content)}})]})}const ty="search";function $g({changes:e,defaultOrder:t,limit:n,navigation:r}){var m,v;const{locale:i}=Ee(),[o,a]=Wr(ty),[s,l]=Gp(),d=Ce(()=>{const x=(o!=null?o:"").split(" ").map(b=>b.trim().toLowerCase()).filter(b=>b.length>0);return x.length===0&&s.length===0?e:e==null?void 0:e.filter(b=>{if(!s.every(k=>b.tags.includes(k)))return!1;const y=`${b.group} ${b.version} ${b.tags.join(" ")} ${b.content.toLowerCase()}`;return x.every(k=>k.startsWith("!")?k.length===1||!y.includes(k.slice(1)):y.includes(k))})},[e,o,s]),[c,u]=Y(t==="desc"),f=Ce(()=>d==null?void 0:d.sort((x,b)=>c?b.order-x.order:x.order-b.order),[d,c]),[h,w]=Y(!0),_=Ce(()=>!h||(n!=null?n:-1)<0?f:f==null?void 0:f.slice(0,n),[f,h,n,c]),g=((m=f==null?void 0:f.length)!=null?m:0)-((v=_==null?void 0:_.length)!=null?v:0);return R(ce,{children:[R("div",{class:"navigation",children:[r,p(_n,{class:"btn btn-input query-search",list:"sound-list",placeholder:i("changelog.search"),value:o,onChange:x=>a(x,!0)}),p(ae,{icon:c?"sort_desc":"sort_asc",label:c?"Newest first":"Oldest first",onClick:()=>u(!c)})]}),s.length>0&&p("div",{class:"badges-list",children:s.map(x=>p(oo,{label:x,onClick:()=>l(x)}))}),R("div",{class:"card-column",children:[_===void 0?p(ce,{children:p("span",{class:"note",children:i("loading")})}):_.length===0?p(ce,{children:p("span",{class:"note",children:i("changelog.no_results")})}):p(ce,{children:_.map(x=>p(Pg,{change:x,activeTags:s,toggleTag:l}))}),g>0&&p(ae,{label:i("changelog.show_more",`${g}`),onClick:()=>w(!1)})]})]})}function ny({id:e,version:t}){var l,d;const{locale:n}=Ee(),[r,i]=Y("changelog"),{value:o}=on(Nd,[]),a=Ce(()=>o==null?void 0:o.filter(c=>c.version===e||c.group===e),[e,o]),s=t&&cv(t.id);return p(ce,{children:R("div",{class:"version-detail",children:[p("h2",{children:(l=t==null?void 0:t.name)!=null?l:e}),p("div",{class:"version-info",children:t?R(ce,{children:[p(Wn,{label:n("versions.released"),value:Bg(t)}),p(Wn,{label:n("versions.release_target"),value:t.release_target,link:t.id!==t.release_target?`/versions/?id=${t.release_target}`:void 0}),p(Wn,{label:n("versions.data_version"),value:t.data_version}),p(Wn,{label:n("versions.protocol_version"),value:t.protocol_version}),p(Wn,{label:n("versions.data_pack_format"),value:t.data_pack_version}),p(Wn,{label:n("versions.resource_pack_format"),value:t.resource_pack_version})]}):((d=a==null?void 0:a.length)!=null?d:0>1)?p("p",{children:"This version is not released yet."}):p("p",{children:"This version does not exist. Only versions since 1.14 are tracked, or it may be too recent."})}),R("div",{class:"version-tabs",children:[p("span",{class:r==="changelog"?"selected":"",onClick:()=>i("changelog"),children:n("versions.technical_changes")}),p("span",{class:r==="discussion"?"selected":"",onClick:()=>i("discussion"),children:n("versions.discussion")}),s&&R("a",{href:s,target:"_blank",children:[n("versions.article"),fe.link_external]})]}),R("div",{class:"version-tab",children:[r==="changelog"&&p($g,{changes:a,defaultOrder:"asc"}),r==="discussion"&&p(Xd,{term:`version/${e}/`})]})]})})}function Bg(e){return new Date(e.release_time).toLocaleDateString(void 0,{day:"numeric",month:"short",year:"numeric"})}function ry({version:e,link:t}){const{locale:n}=Ee();return R("a",{class:"version-entry",href:t,children:[p("span",{class:"version-id",children:e.id}),p(Wn,{label:n("versions.released"),value:Bg(e),compact:!0}),p(Wn,{label:n("versions.data_version"),value:e.data_version,optional:!0}),p(Wn,{label:n("versions.pack_format"),value:e.data_pack_version,optional:!0})]})}const iy="misode_include_snapshots",oy="search";function ay({versions:e,link:t,navigation:n}){const{locale:r}=Ee(),[i,o]=Zp(iy,!0,d=>d==="true",d=>`${d}`),[a,s]=Wr(oy),l=Ce(()=>e==null?void 0:e.filter(d=>d.type==="snapshot"&&!i?!1:d.id.includes(a!=null?a:"")),[e,i,a]);return R(ce,{children:[R("div",{class:"navigation",children:[n,p(_n,{class:"btn btn-input query-search",placeholder:r("versions.search"),value:a,onChange:s}),p(Yv,{label:"Include snapshots",value:i,onChange:o})]}),p("div",{class:"version-list",children:l===void 0?p("span",{class:"note",children:r("loading")}):l.length===0?p("span",{class:"note",children:r("versions.no_results")}):l.map(d=>p(ry,{version:d,link:t==null?void 0:t(d.id)}))})]})}function Wn({label:e,value:t,link:n,compact:r,optional:i}){return R("div",{class:`version-metadata${i?" version-metadata-hide":""}`,children:[R("span",{class:r?"version-metadata-hide":void 0,children:[e,": "]}),p("span",{class:"version-metadata-value",children:t}),n&&p("a",{href:n,class:"version-metadata-link",children:fe.link_external})]})}function wa({value:e,allowed:t,hasAny:n,onChange:r,onAny:i}){const{locale:o}=Ee(),a=Ce(()=>t||Fe.versions.map(s=>s.id).reverse(),[t]);return R(Lt,{class:`version-switcher${He.getVersion()===null?" attention":""}`,icon:"tag",label:e!=null?e:o("any_version"),tooltip:o("switch_version"),children:[n&&p(ae,{label:o("any_version"),onClick:i,active:!e}),a.map(s=>p(ae,{label:s,active:s===e,onClick:()=>r(s)}))]})}function sy({}){const{locale:e}=Ee();wn(e("title.changelog"));const{value:t,error:n}=on(Nd,[]);return R("main",{children:[n&&p(Ri,{error:n}),p("div",{class:"container changelog",children:p($g,{changes:t,defaultOrder:"desc",limit:100,navigation:p(xo,{link:"/versions/",icon:"three_bars",label:e("versions.all")})})}),p($n,{})]})}const mc="share";function ly({}){var W,te;const{locale:e}=Ee(),{version:t,changeVersion:n,changeTargetVersion:r}=Yt(),{projects:i,project:o,file:a,updateProject:s,updateFile:l}=Pn(),[d,c]=Y(null),[u,f]=sh();if(u)return u.message=`Something went wrong rendering the generator: ${u.message}`,p("main",{children:p(Ri,{error:u,onDismiss:f})});const h=Up(Vi());if(!h)return p("main",{children:p(Ri,{error:`Cannot find generator "${Vi()}"`})});const w=Ce(()=>Fe.versions.filter(Z=>mt(Z.id,h.minVersion,h.maxVersion)).map(Z=>Z.id).reverse(),[h.minVersion,h.maxVersion]);wn(e("title.generator",e(h.partner?`partner.${h.partner}.${h.id}`:h.id)),w),mt(t,h.minVersion)||c(`The minimum version for this generator is ${h.minVersion}`),mt(t,void 0,h.maxVersion)||c(`This generator is not available in versions above ${h.maxVersion}`),me(()=>He.visitGenerator(h.id),[h.id]);const[_,g]=Wr("preset"),[m,v]=Wr(mc),x=Ie(!1),b=Ce(()=>He.getBackup(h.id),[h.id]),y=()=>{b!==void 0&&(C==null||C.reset(P.DataModel.wrapLists(b),!1))},{value:k}=on(async()=>{let Z;if(_&&m)return v(void 0),rs;if(_)Z=await j(_);else if(m){const qe=await Mv(m);let dt=!1;if(qe.version&&qe.version!==t&&(n(qe.version,!1),dt=!0),qe.type&&qe.type!==h.id){const an=Fe.generators.find(ba=>ba.id===qe.type);an&&(ti(`${kr(an.url)}?${mc}=${qe.id}`),dt=!0)}if(dt)return rs;qe.show_preview&&!et&&(vt(!0),ue(!1)),Oe.openSnippet(h.id,m,t),Z=qe.data}else if(a){if(o.version&&o.version!==t)return n(o.version,!1),rs;Z=a.data}const[se,Ke]=await Promise.all([Ev(t,h.id),Av(t)]);return Z&&(x.current=!0,se.reset(P.DataModel.wrapLists(Z),!1)),Oe.setGenerator(h.id),{model:se,blockStates:Ke}},[h.id,t,m,_,o.name,a==null?void 0:a.id]),C=k==null?void 0:k.model,E=k==null?void 0:k.blockStates;sl(C,Z=>{if(x.current||(g(void 0,!0),v(void 0,!0)),a&&Z&&E){const se=id(Z,E);l(h.id,a.id,{id:a.id,data:se})}x.current=!1,He.setBackup(h.id,P.DataModel.unwrapLists(Z.data)),c(null)},[h.id,g,v,E,a==null?void 0:a.id]);const M=()=>{var Z;Oe.resetGenerator(h.id,(Z=C==null?void 0:C.historyIndex)!=null?Z:1,"menu"),C==null||C.reset(P.DataModel.wrapLists(C.schema.default()),!0)},S=Z=>{var se;Z.stopPropagation(),Oe.undoGenerator(h.id,(se=C==null?void 0:C.historyIndex)!=null?se:1,"menu"),C==null||C.undo()},T=Z=>{var se;Z.stopPropagation(),Oe.redoGenerator(h.id,(se=C==null?void 0:C.historyIndex)!=null?se:1,"menu"),C==null||C.redo()},L=Z=>{var se,Ke;Z.ctrlKey&&Z.key==="z"?(Oe.undoGenerator(h.id,(se=C==null?void 0:C.historyIndex)!=null?se:1,"hotkey"),C==null||C.undo()):Z.ctrlKey&&Z.key==="y"&&(Oe.redoGenerator(h.id,(Ke=C==null?void 0:C.historyIndex)!=null?Ke:1,"hotkey"),C==null||C.redo())},F=Z=>{Z.ctrlKey&&Z.key==="s"&&(z("hotkey"),Z.preventDefault(),Z.stopPropagation())};me(()=>(document.addEventListener("keyup",L),document.addEventListener("keydown",F),()=>{document.removeEventListener("keyup",L),document.removeEventListener("keydown",F)}),[C,E,a]);const[X,V]=Y([]);me(()=>{Jp(t).then(Z=>{V(Z.get(h.id).map(se=>se.startsWith("minecraft:")?se.slice(10):se))}).catch(Z=>{console.error(Z),c(Z)})},[t,h.id]);const O=Z=>{Oe.loadPreset(h.id,Z),v(void 0,!0),r(t,!0),g(Z)},j=async Z=>{var se,Ke,qe;try{const dt=await Wp(t,(se=h.path)!=null?se:h.id,Z),an=C==null?void 0:C.get(new P.Path(["generator","seed"]));return((Ke=dt==null?void 0:dt.generator)==null?void 0:Ke.seed)!==void 0&&an!==void 0&&(dt.generator.seed=an,((qe=dt.generator.biome_source)==null?void 0:qe.seed)!==void 0&&(dt.generator.biome_source.seed=an)),dt}catch{c(`Cannot load preset ${Z} in ${t}`),g(void 0,!0)}},H=Z=>{v(void 0,!0),n(Z),o.name!==Cr.name&&o.version!==Z&&s({version:Z})},[Q,D]=Y(void 0),[A,N]=Y(!1),[$,K]=zc({cooldown:3e3}),ie=()=>{if(A){N(!1);return}if(_)D(`${location.origin}/${h.url}/?version=${t}&preset=${_}`),N(!0),B();else if(C&&E){const Z=id(C,E);Yi(Z,C.schema.default())?(D(`${location.origin}/${h.url}/?version=${t}`),N(!0)):Iv(h.id,t,Z,et).then(({id:se,length:Ke,compressed:qe,rate:dt})=>{Oe.createSnippet(h.id,se,t,Ke,qe,dt);const an=`${location.origin}/${h.url}/?${mc}=${se}`;D(an),N(!0)}).catch(se=>{se instanceof Error&&c(se)})}},B=()=>{navigator.clipboard.writeText(Q!=null?Q:""),K()};me(()=>{$||(D(void 0),N(!1))},[$]);const[J,ue]=Y(window.innerWidth>820),[pe,Re]=Y(0),[Se,Ue]=Y(0),[rt,Ae]=Y(0),Me=()=>{Oe.copyOutput(h.id,"menu"),Re(pe+1)},Te=()=>{Oe.downloadOutput(h.id,"menu"),Ue(Se+1)},le=()=>{Oe.generatorEvent("import"),ue(!0),Ae(rt+1)},bn=()=>{J?Oe.hideOutput(h.id,"menu"):Oe.showOutput(h.id,"menu"),ue(!J),Re(0),Ue(0),Ae(0)},[Ze,$e]=zc(),[et,vt]=Y(!1),xn=N7.includes(h.id)&&!(h.id==="worldgen/configured_feature"&&mt(t,"1.18"));et&&!xn&&vt(!1);let Bn=2;xn&&(Bn+=1),J&&(Bn+=2);const ee=()=>{J?Oe.hidePreview(h.id,"menu"):Oe.showPreview(h.id,"menu"),vt(!et),!et&&J&&ue(!1)},[ne,_e]=Y((W=He.getProjectPanelOpen())!=null?W:window.innerWidth>600),Le=je(()=>{ne?Oe.hideProject(h.id,i.length,o.files.length,"menu"):Oe.showProject(h.id,i.length,o.files.length,"menu"),He.setProjectPanelOpen(!ne),_e(!ne)},[ne]),[at,It]=Y(!1),[so,si]=Y(!1),[va,z]=Y(void 0),[G,U]=Y(void 0);return R(ce,{children:[R("main",{class:`generator${et?" has-preview":""}${ne?" has-project":""}`,children:[!h.partner&&p(hh,{id:"data-pack-generator",type:"text"}),R("div",{class:"controls generator-controls",children:[p(ae,{icon:"upload",label:e("import"),onClick:le}),p(Lt,{icon:"archive",label:e("presets"),relative:!1,children:p(Wv,{searchPlaceholder:e("search"),noResults:e("no_presets"),values:X,onSelect:O})}),p(wa,{value:t,onChange:H,allowed:w}),R(Lt,{icon:"kebab_horizontal",tooltip:e("more"),children:[p(ae,{icon:"history",label:e("reset_default"),onClick:M}),b!==void 0&&p(ae,{icon:"history",label:e("restore_backup"),onClick:y}),p(ae,{icon:"arrow_left",label:e("undo"),onClick:S}),p(ae,{icon:"arrow_right",label:e("redo"),onClick:T}),p(ae,{icon:"file",label:e("project.save"),onClick:()=>z("menu")})]})]}),d&&p(Ri,{error:d,onDismiss:()=>c(null)}),p(A9,{model:C,version:t,blockStates:E,onError:c}),p($n,{donate:!h.partner})]}),R("div",{class:"popup-actions right-actions",style:`--offset: -${8+Bn*50}px;`,children:[p("div",{class:`popup-action action-preview${xn?" shown":""} tooltipped tip-nw`,"aria-label":e(et?"hide_preview":"show_preview"),onClick:ee,children:et?fe.x_circle:fe.play}),p("div",{class:"popup-action action-share shown tooltipped tip-nw","aria-label":e("share"),onClick:ie,children:fe.link}),p("div",{class:`popup-action action-download${J?" shown":""} tooltipped tip-nw`,"aria-label":e("download"),onClick:Te,children:fe.download}),p("div",{class:`popup-action action-copy${J?" shown":""}${Ze?" active":""} tooltipped tip-nw`,"aria-label":e(Ze?"copied":"copy"),onClick:Me,children:Ze?fe.check:fe.clippy}),p("div",{class:"popup-action action-code shown tooltipped tip-nw","aria-label":e(J?"hide_output":"show_output"),onClick:bn,children:J?fe.chevron_right:fe.code})]}),p("div",{class:`popup-preview${et?" shown":""}`,children:p(R7,{model:C,version:t,id:h.id,shown:et,onError:c})}),p("div",{class:`popup-source${J?" shown":""}`,children:p(B7,{model:C,blockStates:E,doCopy:pe,doDownload:Se,doImport:rt,name:(te=h.schema)!=null?te:"data",copySuccess:$e,onError:c})}),R("div",{class:`popup-share${A?" shown":""}`,children:[p(_n,{value:Q,readonly:!0}),p(ae,{icon:$?"check":"clippy",onClick:B,tooltip:e($?"copied":"copy_share"),tooltipLoc:"nw",active:$})]}),p("div",{class:"popup-actions left-actions",style:"--offset: 50px;",children:p("div",{class:"popup-action action-project shown tooltipped tip-ne","aria-label":e(ne?"hide_project":"show_project"),onClick:Le,children:ne?fe.chevron_left:fe.repo})}),p("div",{class:`popup-project${ne?" shown":""}`,children:p(P7,{model:C,version:t,id:h.id,onError:c,onDeleteProject:()=>si(!0),onRename:U,onCreate:()=>It(!0)})}),at&&p(D7,{onClose:()=>It(!1)}),so&&p(F7,{onClose:()=>si(!1)}),C&&va&&p(qv,{id:h.id,model:C,method:va,onClose:()=>z(void 0)}),G&&p(Xv,{id:G.type,name:G.id,onClose:()=>U(void 0)})]})}function cy({}){const{locale:e}=Ee();return wn(e("title.generators")),R("main",{children:[p("div",{class:"container",children:p($d,{predicate:t=>!t.partner})}),p($n,{})]})}var Qd={exports:{}};function e0(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach(function(t){var n=e[t];typeof n=="object"&&!Object.isFrozen(n)&&e0(n)}),e}Qd.exports=e0;Qd.exports.default=e0;var dy=Qd.exports;class If{constructor(t){t.data===void 0&&(t.data={}),this.data=t.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function zg(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function _r(e,...t){const n=Object.create(null);for(const r in e)n[r]=e[r];return t.forEach(function(r){for(const i in r)n[i]=r[i]}),n}const uy="</span>",Mf=e=>!!e.kind,fy=(e,{prefix:t})=>{if(e.includes(".")){const n=e.split(".");return[`${t}${n.shift()}`,...n.map((r,i)=>`${r}${"_".repeat(i+1)}`)].join(" ")}return`${t}${e}`};class hy{constructor(t,n){this.buffer="",this.classPrefix=n.classPrefix,t.walk(this)}addText(t){this.buffer+=zg(t)}openNode(t){if(!Mf(t))return;let n=t.kind;t.sublanguage?n=`language-${n}`:n=fy(n,{prefix:this.classPrefix}),this.span(n)}closeNode(t){!Mf(t)||(this.buffer+=uy)}value(){return this.buffer}span(t){this.buffer+=`<span class="${t}">`}}class t0{constructor(){this.rootNode={children:[]},this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(t){this.top.children.push(t)}openNode(t){const n={kind:t,children:[]};this.add(n),this.stack.push(n)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(t){return this.constructor._walk(t,this.rootNode)}static _walk(t,n){return typeof n=="string"?t.addText(n):n.children&&(t.openNode(n),n.children.forEach(r=>this._walk(t,r)),t.closeNode(n)),t}static _collapse(t){typeof t!="string"&&(!t.children||(t.children.every(n=>typeof n=="string")?t.children=[t.children.join("")]:t.children.forEach(n=>{t0._collapse(n)})))}}class py extends t0{constructor(t){super(),this.options=t}addKeyword(t,n){t!==""&&(this.openNode(n),this.addText(t),this.closeNode())}addText(t){t!==""&&this.add(t)}addSublanguage(t,n){const r=t.root;r.kind=n,r.sublanguage=!0,this.add(r)}toHTML(){return new hy(this,this.options).value()}finalize(){return!0}}function ta(e){return e?typeof e=="string"?e:e.source:null}function jg(e){return ai("(?=",e,")")}function gy(e){return ai("(?:",e,")*")}function my(e){return ai("(?:",e,")?")}function ai(...e){return e.map(n=>ta(n)).join("")}function _y(e){const t=e[e.length-1];return typeof t=="object"&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function n0(...e){const t=_y(e);return"("+(t.capture?"":"?:")+e.map(r=>ta(r)).join("|")+")"}function Vg(e){return new RegExp(e.toString()+"|").exec("").length-1}function wy(e,t){const n=e&&e.exec(t);return n&&n.index===0}const vy=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function r0(e,{joinWith:t}){let n=0;return e.map(r=>{n+=1;const i=n;let o=ta(r),a="";for(;o.length>0;){const s=vy.exec(o);if(!s){a+=o;break}a+=o.substring(0,s.index),o=o.substring(s.index+s[0].length),s[0][0]==="\\"&&s[1]?a+="\\"+String(Number(s[1])+i):(a+=s[0],s[0]==="("&&n++)}return a}).map(r=>`(${r})`).join(t)}const by=/\b\B/,Ug="[a-zA-Z]\\w*",i0="[a-zA-Z_]\\w*",Hg="\\b\\d+(\\.\\d+)?",Zg="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",Gg="\\b(0b[01]+)",xy="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",yy=(e={})=>{const t=/^#![ ]*\//;return e.binary&&(e.begin=ai(t,/.*\b/,e.binary,/\b.*/)),_r({scope:"meta",begin:t,end:/$/,relevance:0,"on:begin":(n,r)=>{n.index!==0&&r.ignoreMatch()}},e)},na={begin:"\\\\[\\s\\S]",relevance:0},ky={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[na]},Cy={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[na]},Ey={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},bl=function(e,t,n={}){const r=_r({scope:"comment",begin:e,end:t,contains:[]},n);r.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const i=n0("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return r.contains.push({begin:ai(/[ ]+/,"(",i,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),r},Ay=bl("//","$"),Sy=bl("/\\*","\\*/"),Iy=bl("#","$"),My={scope:"number",begin:Hg,relevance:0},Ty={scope:"number",begin:Zg,relevance:0},Ly={scope:"number",begin:Gg,relevance:0},Oy={begin:/(?=\/[^/\n]*\/)/,contains:[{scope:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[na,{begin:/\[/,end:/\]/,relevance:0,contains:[na]}]}]},Ny={scope:"title",begin:Ug,relevance:0},Ry={scope:"title",begin:i0,relevance:0},Dy={begin:"\\.\\s*"+i0,relevance:0},Fy=function(e){return Object.assign(e,{"on:begin":(t,n)=>{n.data._beginMatch=t[1]},"on:end":(t,n)=>{n.data._beginMatch!==t[1]&&n.ignoreMatch()}})};var Ha=Object.freeze({__proto__:null,MATCH_NOTHING_RE:by,IDENT_RE:Ug,UNDERSCORE_IDENT_RE:i0,NUMBER_RE:Hg,C_NUMBER_RE:Zg,BINARY_NUMBER_RE:Gg,RE_STARTERS_RE:xy,SHEBANG:yy,BACKSLASH_ESCAPE:na,APOS_STRING_MODE:ky,QUOTE_STRING_MODE:Cy,PHRASAL_WORDS_MODE:Ey,COMMENT:bl,C_LINE_COMMENT_MODE:Ay,C_BLOCK_COMMENT_MODE:Sy,HASH_COMMENT_MODE:Iy,NUMBER_MODE:My,C_NUMBER_MODE:Ty,BINARY_NUMBER_MODE:Ly,REGEXP_MODE:Oy,TITLE_MODE:Ny,UNDERSCORE_TITLE_MODE:Ry,METHOD_GUARD:Dy,END_SAME_AS_BEGIN:Fy});function Py(e,t){e.input[e.index-1]==="."&&t.ignoreMatch()}function $y(e,t){e.className!==void 0&&(e.scope=e.className,delete e.className)}function By(e,t){!t||!e.beginKeywords||(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=Py,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,e.relevance===void 0&&(e.relevance=0))}function zy(e,t){!Array.isArray(e.illegal)||(e.illegal=n0(...e.illegal))}function jy(e,t){if(!!e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function Vy(e,t){e.relevance===void 0&&(e.relevance=1)}const Uy=(e,t)=>{if(!e.beforeMatch)return;if(e.starts)throw new Error("beforeMatch cannot be used with starts");const n=Object.assign({},e);Object.keys(e).forEach(r=>{delete e[r]}),e.keywords=n.keywords,e.begin=ai(n.beforeMatch,jg(n.begin)),e.starts={relevance:0,contains:[Object.assign(n,{endsParent:!0})]},e.relevance=0,delete n.beforeMatch},Hy=["of","and","for","in","not","or","if","then","parent","list","value"],Zy="keyword";function Yg(e,t,n=Zy){const r=Object.create(null);return typeof e=="string"?i(n,e.split(" ")):Array.isArray(e)?i(n,e):Object.keys(e).forEach(function(o){Object.assign(r,Yg(e[o],t,o))}),r;function i(o,a){t&&(a=a.map(s=>s.toLowerCase())),a.forEach(function(s){const l=s.split("|");r[l[0]]=[o,Gy(l[0],l[1])]})}}function Gy(e,t){return t?Number(t):Yy(e)?0:1}function Yy(e){return Hy.includes(e.toLowerCase())}const Tf={},Zr=e=>{console.error(e)},Lf=(e,...t)=>{console.log(`WARN: ${e}`,...t)},vi=(e,t)=>{Tf[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),Tf[`${e}/${t}`]=!0)},Ys=new Error;function Wg(e,t,{key:n}){let r=0;const i=e[n],o={},a={};for(let s=1;s<=t.length;s++)a[s+r]=i[s],o[s+r]=!0,r+=Vg(t[s-1]);e[n]=a,e[n]._emit=o,e[n]._multi=!0}function Wy(e){if(!!Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw Zr("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),Ys;if(typeof e.beginScope!="object"||e.beginScope===null)throw Zr("beginScope must be object"),Ys;Wg(e,e.begin,{key:"beginScope"}),e.begin=r0(e.begin,{joinWith:""})}}function qy(e){if(!!Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw Zr("skip, excludeEnd, returnEnd not compatible with endScope: {}"),Ys;if(typeof e.endScope!="object"||e.endScope===null)throw Zr("endScope must be object"),Ys;Wg(e,e.end,{key:"endScope"}),e.end=r0(e.end,{joinWith:""})}}function Xy(e){e.scope&&typeof e.scope=="object"&&e.scope!==null&&(e.beginScope=e.scope,delete e.scope)}function Ky(e){Xy(e),typeof e.beginScope=="string"&&(e.beginScope={_wrap:e.beginScope}),typeof e.endScope=="string"&&(e.endScope={_wrap:e.endScope}),Wy(e),qy(e)}function Jy(e){function t(a,s){return new RegExp(ta(a),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(s?"g":""))}class n{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(s,l){l.position=this.position++,this.matchIndexes[this.matchAt]=l,this.regexes.push([l,s]),this.matchAt+=Vg(s)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const s=this.regexes.map(l=>l[1]);this.matcherRe=t(r0(s,{joinWith:"|"}),!0),this.lastIndex=0}exec(s){this.matcherRe.lastIndex=this.lastIndex;const l=this.matcherRe.exec(s);if(!l)return null;const d=l.findIndex((u,f)=>f>0&&u!==void 0),c=this.matchIndexes[d];return l.splice(0,d),Object.assign(l,c)}}class r{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(s){if(this.multiRegexes[s])return this.multiRegexes[s];const l=new n;return this.rules.slice(s).forEach(([d,c])=>l.addRule(d,c)),l.compile(),this.multiRegexes[s]=l,l}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(s,l){this.rules.push([s,l]),l.type==="begin"&&this.count++}exec(s){const l=this.getMatcher(this.regexIndex);l.lastIndex=this.lastIndex;let d=l.exec(s);if(this.resumingScanAtSamePosition()&&!(d&&d.index===this.lastIndex)){const c=this.getMatcher(0);c.lastIndex=this.lastIndex+1,d=c.exec(s)}return d&&(this.regexIndex+=d.position+1,this.regexIndex===this.count&&this.considerAll()),d}}function i(a){const s=new r;return a.contains.forEach(l=>s.addRule(l.begin,{rule:l,type:"begin"})),a.terminatorEnd&&s.addRule(a.terminatorEnd,{type:"end"}),a.illegal&&s.addRule(a.illegal,{type:"illegal"}),s}function o(a,s){const l=a;if(a.isCompiled)return l;[$y,jy,Ky,Uy].forEach(c=>c(a,s)),e.compilerExtensions.forEach(c=>c(a,s)),a.__beforeBegin=null,[By,zy,Vy].forEach(c=>c(a,s)),a.isCompiled=!0;let d=null;return typeof a.keywords=="object"&&a.keywords.$pattern&&(a.keywords=Object.assign({},a.keywords),d=a.keywords.$pattern,delete a.keywords.$pattern),d=d||/\w+/,a.keywords&&(a.keywords=Yg(a.keywords,e.case_insensitive)),l.keywordPatternRe=t(d,!0),s&&(a.begin||(a.begin=/\B|\b/),l.beginRe=t(l.begin),!a.end&&!a.endsWithParent&&(a.end=/\B|\b/),a.end&&(l.endRe=t(l.end)),l.terminatorEnd=ta(l.end)||"",a.endsWithParent&&s.terminatorEnd&&(l.terminatorEnd+=(a.end?"|":"")+s.terminatorEnd)),a.illegal&&(l.illegalRe=t(a.illegal)),a.contains||(a.contains=[]),a.contains=[].concat(...a.contains.map(function(c){return Qy(c==="self"?a:c)})),a.contains.forEach(function(c){o(c,l)}),a.starts&&o(a.starts,s),l.matcher=i(l),l}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=_r(e.classNameAliases||{}),o(e)}function qg(e){return e?e.endsWithParent||qg(e.starts):!1}function Qy(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map(function(t){return _r(e,{variants:null},t)})),e.cachedVariants?e.cachedVariants:qg(e)?_r(e,{starts:e.starts?_r(e.starts):null}):Object.isFrozen(e)?_r(e):e}var ek="11.5.1";class tk extends Error{constructor(t,n){super(t),this.name="HTMLInjectionError",this.html=n}}const _c=zg,Of=_r,Nf=Symbol("nomatch"),nk=7,rk=function(e){const t=Object.create(null),n=Object.create(null),r=[];let i=!0;const o="Could not find the language '{}', did you forget to load/include a language module?",a={disableAutodetect:!0,name:"Plain text",contains:[]};let s={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:py};function l(O){return s.noHighlightRe.test(O)}function d(O){let j=O.className+" ";j+=O.parentNode?O.parentNode.className:"";const H=s.languageDetectRe.exec(j);if(H){const Q=M(H[1]);return Q||(Lf(o.replace("{}",H[1])),Lf("Falling back to no-highlight mode for this block.",O)),Q?H[1]:"no-highlight"}return j.split(/\s+/).find(Q=>l(Q)||M(Q))}function c(O,j,H){let Q="",D="";typeof j=="object"?(Q=O,H=j.ignoreIllegals,D=j.language):(vi("10.7.0","highlight(lang, code, ...args) has been deprecated."),vi("10.7.0",`Please use highlight(code, options) instead. +https://github.com/highlightjs/highlight.js/issues/2277`),D=O,Q=j),H===void 0&&(H=!0);const A={code:Q,language:D};X("before:highlight",A);const N=A.result?A.result:u(A.language,A.code,H);return N.code=A.code,X("after:highlight",N),N}function u(O,j,H,Q){const D=Object.create(null);function A(ee,ne){return ee.keywords[ne]}function N(){if(!le.keywords){Ze.addText($e);return}let ee=0;le.keywordPatternRe.lastIndex=0;let ne=le.keywordPatternRe.exec($e),_e="";for(;ne;){_e+=$e.substring(ee,ne.index);const Le=Ae.case_insensitive?ne[0].toLowerCase():ne[0],at=A(le,Le);if(at){const[It,so]=at;if(Ze.addText(_e),_e="",D[Le]=(D[Le]||0)+1,D[Le]<=nk&&(et+=so),It.startsWith("_"))_e+=ne[0];else{const si=Ae.classNameAliases[It]||It;Ze.addKeyword(ne[0],si)}}else _e+=ne[0];ee=le.keywordPatternRe.lastIndex,ne=le.keywordPatternRe.exec($e)}_e+=$e.substr(ee),Ze.addText(_e)}function $(){if($e==="")return;let ee=null;if(typeof le.subLanguage=="string"){if(!t[le.subLanguage]){Ze.addText($e);return}ee=u(le.subLanguage,$e,!0,bn[le.subLanguage]),bn[le.subLanguage]=ee._top}else ee=h($e,le.subLanguage.length?le.subLanguage:null);le.relevance>0&&(et+=ee.relevance),Ze.addSublanguage(ee._emitter,ee.language)}function K(){le.subLanguage!=null?$():N(),$e=""}function ie(ee,ne){let _e=1;const Le=ne.length-1;for(;_e<=Le;){if(!ee._emit[_e]){_e++;continue}const at=Ae.classNameAliases[ee[_e]]||ee[_e],It=ne[_e];at?Ze.addKeyword(It,at):($e=It,N(),$e=""),_e++}}function B(ee,ne){return ee.scope&&typeof ee.scope=="string"&&Ze.openNode(Ae.classNameAliases[ee.scope]||ee.scope),ee.beginScope&&(ee.beginScope._wrap?(Ze.addKeyword($e,Ae.classNameAliases[ee.beginScope._wrap]||ee.beginScope._wrap),$e=""):ee.beginScope._multi&&(ie(ee.beginScope,ne),$e="")),le=Object.create(ee,{parent:{value:le}}),le}function J(ee,ne,_e){let Le=wy(ee.endRe,_e);if(Le){if(ee["on:end"]){const at=new If(ee);ee["on:end"](ne,at),at.isMatchIgnored&&(Le=!1)}if(Le){for(;ee.endsParent&&ee.parent;)ee=ee.parent;return ee}}if(ee.endsWithParent)return J(ee.parent,ne,_e)}function ue(ee){return le.matcher.regexIndex===0?($e+=ee[0],1):(Bn=!0,0)}function pe(ee){const ne=ee[0],_e=ee.rule,Le=new If(_e),at=[_e.__beforeBegin,_e["on:begin"]];for(const It of at)if(!!It&&(It(ee,Le),Le.isMatchIgnored))return ue(ne);return _e.skip?$e+=ne:(_e.excludeBegin&&($e+=ne),K(),!_e.returnBegin&&!_e.excludeBegin&&($e=ne)),B(_e,ee),_e.returnBegin?0:ne.length}function Re(ee){const ne=ee[0],_e=j.substr(ee.index),Le=J(le,ee,_e);if(!Le)return Nf;const at=le;le.endScope&&le.endScope._wrap?(K(),Ze.addKeyword(ne,le.endScope._wrap)):le.endScope&&le.endScope._multi?(K(),ie(le.endScope,ee)):at.skip?$e+=ne:(at.returnEnd||at.excludeEnd||($e+=ne),K(),at.excludeEnd&&($e=ne));do le.scope&&Ze.closeNode(),!le.skip&&!le.subLanguage&&(et+=le.relevance),le=le.parent;while(le!==Le.parent);return Le.starts&&B(Le.starts,ee),at.returnEnd?0:ne.length}function Se(){const ee=[];for(let ne=le;ne!==Ae;ne=ne.parent)ne.scope&&ee.unshift(ne.scope);ee.forEach(ne=>Ze.openNode(ne))}let Ue={};function rt(ee,ne){const _e=ne&&ne[0];if($e+=ee,_e==null)return K(),0;if(Ue.type==="begin"&&ne.type==="end"&&Ue.index===ne.index&&_e===""){if($e+=j.slice(ne.index,ne.index+1),!i){const Le=new Error(`0 width match regex (${O})`);throw Le.languageName=O,Le.badRule=Ue.rule,Le}return 1}if(Ue=ne,ne.type==="begin")return pe(ne);if(ne.type==="illegal"&&!H){const Le=new Error('Illegal lexeme "'+_e+'" for mode "'+(le.scope||"<unnamed>")+'"');throw Le.mode=le,Le}else if(ne.type==="end"){const Le=Re(ne);if(Le!==Nf)return Le}if(ne.type==="illegal"&&_e==="")return 1;if(xn>1e5&&xn>ne.index*3)throw new Error("potential infinite loop, way more iterations than matches");return $e+=_e,_e.length}const Ae=M(O);if(!Ae)throw Zr(o.replace("{}",O)),new Error('Unknown language: "'+O+'"');const Me=Jy(Ae);let Te="",le=Q||Me;const bn={},Ze=new s.__emitter(s);Se();let $e="",et=0,vt=0,xn=0,Bn=!1;try{for(le.matcher.considerAll();;){xn++,Bn?Bn=!1:le.matcher.considerAll(),le.matcher.lastIndex=vt;const ee=le.matcher.exec(j);if(!ee)break;const ne=j.substring(vt,ee.index),_e=rt(ne,ee);vt=ee.index+_e}return rt(j.substr(vt)),Ze.closeAllNodes(),Ze.finalize(),Te=Ze.toHTML(),{language:O,value:Te,relevance:et,illegal:!1,_emitter:Ze,_top:le}}catch(ee){if(ee.message&&ee.message.includes("Illegal"))return{language:O,value:_c(j),illegal:!0,relevance:0,_illegalBy:{message:ee.message,index:vt,context:j.slice(vt-100,vt+100),mode:ee.mode,resultSoFar:Te},_emitter:Ze};if(i)return{language:O,value:_c(j),illegal:!1,relevance:0,errorRaised:ee,_emitter:Ze,_top:le};throw ee}}function f(O){const j={value:_c(O),illegal:!1,relevance:0,_top:a,_emitter:new s.__emitter(s)};return j._emitter.addText(O),j}function h(O,j){j=j||s.languages||Object.keys(t);const H=f(O),Q=j.filter(M).filter(T).map(K=>u(K,O,!1));Q.unshift(H);const D=Q.sort((K,ie)=>{if(K.relevance!==ie.relevance)return ie.relevance-K.relevance;if(K.language&&ie.language){if(M(K.language).supersetOf===ie.language)return 1;if(M(ie.language).supersetOf===K.language)return-1}return 0}),[A,N]=D,$=A;return $.secondBest=N,$}function w(O,j,H){const Q=j&&n[j]||H;O.classList.add("hljs"),O.classList.add(`language-${Q}`)}function _(O){let j=null;const H=d(O);if(l(H))return;if(X("before:highlightElement",{el:O,language:H}),O.children.length>0&&(s.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(O)),s.throwUnescapedHTML))throw new tk("One of your code blocks includes unescaped HTML.",O.innerHTML);j=O;const Q=j.textContent,D=H?c(Q,{language:H,ignoreIllegals:!0}):h(Q);O.innerHTML=D.value,w(O,H,D.language),O.result={language:D.language,re:D.relevance,relevance:D.relevance},D.secondBest&&(O.secondBest={language:D.secondBest.language,relevance:D.secondBest.relevance}),X("after:highlightElement",{el:O,result:D,text:Q})}function g(O){s=Of(s,O)}const m=()=>{b(),vi("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function v(){b(),vi("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let x=!1;function b(){if(document.readyState==="loading"){x=!0;return}document.querySelectorAll(s.cssSelector).forEach(_)}function y(){x&&b()}typeof window!="undefined"&&window.addEventListener&&window.addEventListener("DOMContentLoaded",y,!1);function k(O,j){let H=null;try{H=j(e)}catch(Q){if(Zr("Language definition for '{}' could not be registered.".replace("{}",O)),i)Zr(Q);else throw Q;H=a}H.name||(H.name=O),t[O]=H,H.rawDefinition=j.bind(null,e),H.aliases&&S(H.aliases,{languageName:O})}function C(O){delete t[O];for(const j of Object.keys(n))n[j]===O&&delete n[j]}function E(){return Object.keys(t)}function M(O){return O=(O||"").toLowerCase(),t[O]||t[n[O]]}function S(O,{languageName:j}){typeof O=="string"&&(O=[O]),O.forEach(H=>{n[H.toLowerCase()]=j})}function T(O){const j=M(O);return j&&!j.disableAutodetect}function L(O){O["before:highlightBlock"]&&!O["before:highlightElement"]&&(O["before:highlightElement"]=j=>{O["before:highlightBlock"](Object.assign({block:j.el},j))}),O["after:highlightBlock"]&&!O["after:highlightElement"]&&(O["after:highlightElement"]=j=>{O["after:highlightBlock"](Object.assign({block:j.el},j))})}function F(O){L(O),r.push(O)}function X(O,j){const H=O;r.forEach(function(Q){Q[H]&&Q[H](j)})}function V(O){return vi("10.7.0","highlightBlock will be removed entirely in v12.0"),vi("10.7.0","Please use highlightElement now."),_(O)}Object.assign(e,{highlight:c,highlightAuto:h,highlightAll:b,highlightElement:_,highlightBlock:V,configure:g,initHighlighting:m,initHighlightingOnLoad:v,registerLanguage:k,unregisterLanguage:C,listLanguages:E,getLanguage:M,registerAliases:S,autoDetection:T,inherit:Of,addPlugin:F}),e.debugMode=function(){i=!1},e.safeMode=function(){i=!0},e.versionString=ek,e.regex={concat:ai,lookahead:jg,either:n0,optional:my,anyNumberOfTimes:gy};for(const O in Ha)typeof Ha[O]=="object"&&dy(Ha[O]);return Object.assign(e,Ha),e};var ra=rk({}),ik=ra;ra.HighlightJS=ra;ra.default=ra;var o0=ik;function ok(e){const t={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},n={match:/[{}[\],:]/,className:"punctuation",relevance:0},r={beginKeywords:["true","false","null"].join(" ")};return{name:"JSON",contains:[t,n,e.QUOTE_STRING_MODE,r,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}const ak='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M6.368 1.01a.75.75 0 01.623.859L6.57 4.5h3.98l.46-2.868a.75.75 0 011.48.237L12.07 4.5h2.18a.75.75 0 010 1.5h-2.42l-.64 4h2.56a.75.75 0 010 1.5h-2.8l-.46 2.869a.75.75 0 01-1.48-.237l.42-2.632H5.45l-.46 2.869a.75.75 0 01-1.48-.237l.42-2.632H1.75a.75.75 0 010-1.5h2.42l.64-4H2.25a.75.75 0 010-1.5h2.8l.46-2.868a.75.75 0 01.858-.622zM9.67 10l.64-4H6.33l-.64 4h3.98z"></path></svg>';o0.registerLanguage("json",ok);xe.use({highlight:(e,t)=>{if(t!=="")return o0.highlight(e,{language:t}).value}});function sk({id:e}){const{locale:t}=Ee(),{version:n,changeVersion:r}=Yt(),{changeTitle:i}=wn(),{value:o,refresh:a}=on(async()=>await(await fetch(`../../guides/${e}.md`)).text(),[e]),s=Ce(()=>{if(!o)return;const b=Yw(o);return i(b==null?void 0:b.title,b==null?void 0:b.versions),b},[o]),l=Ce(()=>{var y;const b=Fe.versions.map(k=>k.id);return(y=s==null?void 0:s.versions)==null?void 0:y.sort((k,C)=>b.indexOf(C)-b.indexOf(k))},[s==null?void 0:s.versions]),d=Ce(()=>!l||l.includes(n)?n:l[0],[n,s==null?void 0:s.versions]),c=Ce(()=>{if(!o)return;const b=[];let y=!1;xe.use({extensions:[{name:"styledCode",level:"inline",start(E){var M,S;return(S=(M=E.match(/\b[fsnj]`/))==null?void 0:M.index)!=null?S:-1},tokenizer(E){const M=E.match(/^([fsnj])`([^`]+)`/);if(M)return{type:"styledCode",raw:M[0],prefix:M[1],text:M[2]}},renderer(E){let M=E.text,S={f:"hljs-attr",s:"hljs-string",n:"hljs-number"}[E.prefix];return E.prefix==="j"&&(M=o0.highlight("json",E.text).value,S="language-json"),`<code${S?` class="${S}"`:""}>${M}</code>`}}],walkTokens(E){E.type==="heading"&&b.push(E)},renderer:{link(E,M,S){if(E===null)return S;const T=M?` title="${M}"`:"",L=E!=null&&E.match(/^https?:\/\//)?' target="_blank"':"";return`<a href="${E}"${T}${L}>${S}</a>`},heading(E,M,S,T){let L="";y||(L=`<ol class="guide-toc">${b.filter(V=>V.depth===2).map(V=>{var H,Q;const O=T.slug((Q=(H=V.raw.match(/^#+ (.*)/))==null?void 0:H[1])!=null?Q:"",{dryrun:!0}),j=V.text.replaceAll("`","");return`<li><a href="#${O}">${j}</a></li>`}).join("")}</ol>`,y=!0);const F=T.slug(S),X=`<span id="guide-${F}" href="?version=${n}#${F}">${ak}</span>`;return`${L}<h${M}>${X}${E}</h${M}>`}}});const k=o.substring(o.indexOf("---",3)+3),C=Ww(k,d);return xe(C,{version:"1.19"})},[d,o]),[u,f]=iv(),h=je(()=>{if(!c)return;const b=document.querySelector(`[id=guide-${u.slice(1)}]`);if(b){const y=b.getBoundingClientRect().top+window.scrollY;window.scrollTo({top:y-68,behavior:"smooth"})}},[c,u]);me(()=>{h()},[c===void 0,u]);const w=je(b=>{if(!(b.target instanceof HTMLSpanElement))return;const y="#"+b.target.id.replace(/^guide-/,"");r(n,!1,!0),f(y),y===u&&h()},[h,u,n]),[_,g]=zc(),m=je(()=>{const b=`${location.origin}/guides/${e}/?version=${n}`;navigator.clipboard.writeText(b),g()},[e,n]),v=je(b=>{ti(`/guides/?tags=${b}`)},[]),[x]=Y(window.innerWidth>600);return R("main",{children:[R("div",{class:"container guide",children:[R("div",{class:"navigation",children:[R("a",{class:"btn btn-link",href:"/guides/",children:[fe.arrow_left,p("span",{children:t("guides.all")})]}),R("a",{class:"btn btn-link",href:"/worldgen/",children:[Ki.worldgen,p("span",{children:t("worldgen")})]}),p("div",{class:"navigation-divider"}),p(ae,{icon:_?"check":"link",label:t("share"),onClick:m,active:_,tooltip:t(_?"copied":"copy_share"),class:"guide-share"}),l&&p(wa,{value:d,allowed:l,onChange:r})]}),(s==null?void 0:s.tags)&&s.tags.length>0&&p("div",{class:"badges-list",children:s.tags.map(b=>p(oo,{label:b,active:!0,onClick:()=>v(b)}))}),c&&R(ce,{children:[p(hh,{id:"guide",type:x?"image":"text"}),p("div",{class:"guide-content",dangerouslySetInnerHTML:{__html:c},onClick:w}),p(Xd,{})]})]}),p($n,{})]})}function lk({}){const{locale:e}=Ee(),{version:t,changeVersion:n}=Yt();wn(e("title.guides"));const[r,i]=Y(""),[o,a]=Gp(),[s,l]=Y(!1),d=Ce(()=>s===!1?cd():cd().filter(u=>{var f;return(f=u.versions)==null?void 0:f.includes(t)}),[t,s]),c=Ce(()=>{const u=r.split(" ").map(f=>f.trim().toLowerCase()).filter(f=>f.length>0);return d.filter(f=>{var w;if(!o.every(_=>{var g;return(g=f.tags)==null?void 0:g.includes(_)}))return!1;const h=((w=f.tags)==null?void 0:w.join(" "))+" "+f.title.toLowerCase();return u.every(_=>_.startsWith("!")?_.length===1||!h.includes(_.slice(1)):h.includes(_))})},[d,r,o]);return R("main",{children:[R("div",{class:"container guides",children:[R("div",{class:"navigation",children:[p(_n,{class:"btn btn-input query-search",placeholder:e("guides.search"),value:r,onChange:i}),p(wa,{value:s?t:void 0,onChange:u=>{n(u),l(!0)},hasAny:!0,onAny:()=>l(!1)})]}),o.length>0&&p("div",{class:"badges-list",children:o.map(u=>p(oo,{label:u,onClick:()=>a(u)}))}),p("div",{class:"card-column",children:d.length===0?p(ce,{children:p("span",{class:"note",children:e("guides.no_results.version")})}):c.length===0?p(ce,{children:p("span",{class:"note",children:e("guides.no_results.query")})}):c.map(u=>p(ea,{id:u.id,activeTags:o,toggleTag:a}))})]}),p($n,{})]})}const ck=2,dk=5;function uk({}){const{locale:e}=Ee();wn(e("title.home"));const t=Ms("(max-width: 580px)");return p("main",{children:R("div",{class:"container",children:[R("div",{class:"card-group",children:[R("div",{class:"card-column",children:[p(fk,{}),t&&p(Rf,{}),p(pk,{}),t&&p(Df,{}),p(hk,{}),t&&p(Ff,{})]}),!t&&R("div",{class:"card-column",children:[p(Rf,{}),p(Df,{}),p(Ff,{})]})]}),p(Xd,{}),p($n,{})]})})}function fk(){const{locale:e}=Ee();return R(Sr,{title:e("generators.popular"),link:"/generators/",children:[p(An,{minimal:!0,id:"loot_table"}),p(An,{minimal:!0,id:"advancement"}),p(An,{minimal:!0,id:"predicate"}),p(er,{title:e("worldgen"),link:"/worldgen/",titleIcon:"worldgen"}),p(er,{title:e("generators.all"),link:"/generators/",titleIcon:"arrow_right"})]})}function Rf(){const{locale:e}=Ee(),t=Ce(()=>{const n=[];for(const r of He.getGeneratorHistory().reverse())n.includes(r)||n.push(r);return n.slice(0,dk)},[]);return t.length<ck?p(ce,{}):p(Sr,{title:e("generators.recent"),children:t.map(n=>p(An,{minimal:!0,id:n}))})}function Df(){const{locale:e}=Ee();return R(Sr,{title:e("guides"),link:"/guides/",titleIcon:"arrow_right",children:[p(ea,{minimal:!0,id:"adding-custom-structures"}),p(ea,{minimal:!0,id:"noise-router"})]})}function Ff(){const{locale:e}=Ee();return R(Sr,{title:e("tools"),children:[p(er,{title:"Report Inspector",icon:"report",link:"https://misode.github.io/report/",desc:"Analyse your performance reports"}),p(er,{title:"Minecraft Sounds",icon:"sounds",link:"/sounds/",desc:"Browse through and mix all the vanilla sounds"}),p(er,{title:"Data Pack Upgrader",link:"https://misode.github.io/upgrader/",desc:"Convert your data packs from 1.16 to 1.19"})]})}function hk(){const{locale:e}=Ee(),{value:t}=on(Od,[]),n=Ce(()=>t==null?void 0:t.find(r=>r.type==="release"),[t]);return p(Sr,{title:e("versions.minecraft_versions"),link:"/versions/",titleIcon:"arrow_right",children:(t==null?void 0:t[0])&&n&&R(ce,{children:[t[0].id!==n.id&&p(er,{title:t[0].name,link:`/versions/?id=${t[0].id}`,desc:e("versions.latest_snapshot")}),p(er,{title:n.name,link:`/versions/?id=${n.id}`,desc:e("versions.latest_release")})]})})}function pk(){const{locale:e}=Ee(),t=Ms("(min-width: 960px)"),{value:n}=on(Nd,[]),r=Ce(()=>n==null?void 0:n.sort((i,o)=>o.order-i.order).slice(0,2),[n]);return p(Sr,{title:e("changelog"),link:"/changelog/",titleIcon:"git_commit",children:r==null?void 0:r.map(i=>p(Pg,{minimal:!t,change:i}))})}function gk({}){const{locale:e}=Ee();return wn(e("title.partners")),R("main",{children:[p("div",{class:"container",children:p($d,{predicate:t=>t.partner!==void 0})}),p($n,{donate:!1})]})}function mk({}){const{locale:e}=Ee(),{version:t,changeVersion:n}=Yt();wn(e("title.sounds"));const[r,i]=Y(void 0);me(()=>{(async()=>{const b=await ke(()=>import("./howler.ce49acbd.js").then(function(y){return y.h}),[]);i(()=>y=>new b.Howl(y))})()},[]);const{value:o,error:a}=on(async()=>await pv(t),[t]),s=Ce(()=>Object.keys(o!=null?o:{}),[o]),[l,d]=Y(""),[c,u]=Y([]),f=()=>{u([{id:Ur(),sound:l,delay:0,pitch:1,volume:1},...c])},h=b=>y=>{u(c.map(k=>k.id===b?oe(oe({},k),y):k))},w=b=>()=>{u(c.filter(y=>y.id!==b))},[_,g]=Y(0),m=()=>{g(_+1)},v=Ie(null),x=()=>{if(!v.current)return;const b=c.some(k=>k.delay>0),y=c.sort((k,C)=>k.delay-C.delay).map(k=>`${b?`execute if score @s delay matches ${k.delay} run `:""}playsound minecraft:${k.sound} master @s ~ ~ ~ ${k.volume} ${k.pitch}`).join(` +`);v.current.setAttribute("href","data:text/plain;charset=utf-8,"+y+"%0A"),v.current.setAttribute("download","sounds.mcfunction"),v.current.click()};return R("main",{children:[a&&p(Ri,{error:a}),s.length>0&&R(ce,{children:[R("div",{class:"sounds-controls",children:[R("div",{class:"sound-search-group",children:[p(_n,{class:"btn btn-input sound-search",list:"sound-list",placeholder:e("sounds.search"),value:l,onChange:d,onEnter:f}),p(ae,{icon:"plus",tooltip:e("sounds.add_sound"),class:"add-sound",onClick:f})]}),c.length>1&&p(ae,{icon:"play",label:e("sounds.play_all"),class:"play-all-sounds",onClick:m}),p("div",{class:"spacer"}),p(ae,{icon:"download",label:e("download"),tooltip:e("sounds.download_function"),tooltipLoc:"se",class:"download-sounds",onClick:x}),p(wa,{value:t,onChange:n})]}),p("div",{class:"sounds",children:o&&r&&c.map(b=>p(P9,be(oe({},b),{howler:r,sounds:o,delayedPlay:_,onEdit:h(b.id),onDelete:w(b.id)}),b.id))}),p("a",{ref:v,style:"display: none;"}),p("datalist",{id:"sound-list",children:s.map(b=>p("option",{value:b},b))})]}),p($n,{donate:!1})]})}function _k({}){const{locale:e}=Ee(),{value:t,error:n}=on(Od,[]),[r]=Wr("id"),i=(t!=null?t:[]).find(s=>s.id===r);wn(i?`Minecraft ${i.name}`:"Versions Explorer",i?[]:void 0,i?"Changes and metadata":void 0);const o=i&&Pf(t!=null?t:[],i,-1),a=i&&Pf(t!=null?t:[],i,1);return R("main",{children:[n&&p(Ri,{error:n}),p("div",{class:"container",children:r?R(ce,{children:[R("div",{class:"navigation",children:[p(xo,{link:"/versions/",icon:"three_bars",label:e("versions.all")}),p(xo,{link:a?`/versions/?id=${a.id}`:void 0,icon:"arrow_left",label:e("versions.previous")}),p(xo,{link:o?`/versions/?id=${o.id}`:void 0,icon:"arrow_right",label:e("versions.next"),swapped:!0})]}),p(ny,{id:r,version:i})]}):p(ce,{children:p(ay,{versions:t,link:s=>`/versions/?id=${s}`,navigation:p(xo,{link:"/changelog",icon:"git_commit",label:e("versions.technical_changes")})})})}),p($n,{donate:!1})]})}function Pf(e,t,n){const i=e.findIndex(o=>o.id===t.id)+n;if(!(i<0||i>=e.length))return e[i]}function wk({}){const{locale:e}=Ee();return wn(e("title.worldgen")),R("main",{children:[R("div",{class:"container worldgen",children:[R("div",{class:"card-group",children:[R(Sr,{title:e("generators.popular"),children:[p(An,{minimal:!0,id:"dimension"}),p(An,{minimal:!0,id:"worldgen/biome"}),p(An,{minimal:!0,id:"worldgen/noise_settings"}),p(An,{minimal:!0,id:"worldgen/configured_feature"}),p(An,{minimal:!0,id:"worldgen/placed_feature"})]}),R(Sr,{title:e("guides"),link:"/guides/?tags=worldgen",titleIcon:"arrow_right",children:[p(ea,{id:"adding-custom-structures"}),p(ea,{id:"placed-features"})]})]}),p($d,{predicate:t=>{var n;return(n=t.tags)==null?void 0:n.includes("worldgen")}})]}),p($n,{})]})}function vk(){const e=t=>{window.dispatchEvent(new CustomEvent("replacestate")),setTimeout(()=>Oe.pageview(kr(t.url)))};return R(ce,{children:[p(F9,{}),R(nr,{onChange:e,children:[p(uk,{path:"/"}),p(cy,{path:"/generators"}),p(wk,{path:"/worldgen"}),p(gk,{path:"/partners"}),p(mk,{path:"/sounds"}),p(sy,{path:"/changelog"}),p(_k,{path:"/versions"}),p(lk,{path:"/guides"}),p(sk,{path:"/guides/:id"}),p(ly,{default:!0})]})]})}function bk(){return p(zv,{children:p(Pv,{children:p(jv,{children:p(Zv,{children:p(Uv,{children:p(Bv,{children:p(vk,{})})})})})})})}Gr(p(bk,{}),document.body);export{c4 as a,u4 as b,Qo as c,d4 as d,tg as e,Ba as f,g4 as g,Ek as h,Fu as i,Ck as j,lg as k,x4 as l,$u as m,w4 as n,b4 as o,kk as p,v4 as q,f4 as r,Pu as s,xi as t,ya as u,P as v}; +//# sourceMappingURL=index.d528c217.js.map diff --git a/assets/index.d528c217.js.map b/assets/index.d528c217.js.map new file mode 100644 index 00000000..c92152c0 --- /dev/null +++ b/assets/index.d528c217.js.map @@ -0,0 +1 @@ +{"version":3,"mappings":"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EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAChJ,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAC9I,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,GAAI,EAC9I,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAC9I,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAC/I,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,IAAK,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAC/I,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EACjJ,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,GAC/I,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAC7I,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAC/I,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,IAC7I,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,GAChJ,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAC/I,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAC/I,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,IAAK,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAC/I,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAC9I,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAC9I,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAC/I,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAChJ,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EACjJ,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EACjJ,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAChJ,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EACjJ,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,IAAK,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EACjJ,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAC/I,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,GAAI,EAAG,GAAI,EACjJ,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EACjJ,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EACjJ,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EACjJ,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EACjJ,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EACjJ,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAChJ,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,IAAK,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAChJ,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAChJ,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,GAAG,EACxG,GAAW,CAAC,GAAI,EAAG,EAAG,GAAI,EAAG,IAAK,GAAI,EAAG,GAAI,GAAI,EAAG,KAAM,GAAI,EAAG,EAAG,GAAI,EAAG,KAAM,GAAI,EAAG,GAAI,GAAI,EAAG,MAAO,GAAI,EAAG,EAAG,GAAI,EAAG,IAAK,GAAI,EAAG,GAAI,GAAI,EACpJ,KAAM,GAAI,EAAG,EAAG,GAAI,EAAG,KAAM,GAAI,EAAG,IAAK,IAAK,EAAG,MAAO,GAAI,EAAG,EAAG,GAAI,EAAG,IAAK,GAAI,EAAG,GAAI,GAAI,EAAG,KAAM,GAAI,EAAG,EAAG,GAAI,EAAG,KAAM,GAAI,EAAG,GAAI,GAAI,EAC5I,MAAO,GAAI,EAAG,EAAG,GAAI,EAAG,IAAK,GAAI,EAAG,GAAI,GAAI,EAAG,MAAO,GAAI,EAAG,GAAI,GAAI,EAAG,KAAM,GAAI,EAAG,IAAK,IAAK,EAAG,KAAK,EAGlG,GAAS,CACd,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,CAAC,EAGlH,GAAS,CACd,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,GAC7F,EAEM,GAAS,CACd,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,KAAK,EAEvI,GAAS,CACd,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAG3F,GAAO,GAEb,aAAmB,CAClB,KAAM,GAAO,KAEb,GAAI,GACA,EACA,EACA,EACA,EACA,EAEJ,WAAoB,EAEnB,EAAQ,EACR,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACC,CAUD,GAAI,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EAIJ,EAAI,EACJ,EAAI,EACJ,EACC,GAAE,EAAE,EAAS,MACb,IACA,UACQ,IAAM,GAEf,GAAI,EAAE,IAAM,EACX,SAAE,GAAK,GACP,EAAE,GAAK,EACAC,GAKR,IADA,EAAI,EAAE,GACD,EAAI,EAAG,GAAK,IACZ,EAAE,KAAO,EADS,IACtB,CAMD,IAJA,EAAI,EACA,EAAI,GACP,GAAI,GAEA,EAAI,GAAM,IAAM,GAChB,EAAE,KAAO,EADU,IACvB,CAUD,IAPA,EAAI,EACA,EAAI,GACP,GAAI,GAEL,EAAE,GAAK,EAGF,EAAI,GAAK,EAAG,EAAI,EAAG,IAAK,IAAM,EAClC,GAAK,IAAK,EAAE,IAAM,EACjB,MAAOI,IAGT,GAAK,IAAK,EAAE,IAAM,EACjB,MAAOA,IAQR,IANA,EAAE,IAAM,EAGR,EAAE,GAAK,EAAI,EACX,EAAI,EACJ,EAAK,EACE,EAAE,IAAM,GACd,EAAE,GAAO,GAAK,EAAE,GAChB,IACA,IAID,EAAI,EACJ,EAAI,EACJ,EACC,CAAK,EAAI,EAAE,EAAS,MAAQ,GAC3B,GAAE,EAAE,MAAQ,GAEb,UACQ,EAAE,EAAI,GAaf,IAZA,EAAI,EAAE,GAGN,EAAE,GAAK,EAAI,EACX,EAAI,EACJ,EAAI,GACJ,EAAI,CAAC,EACL,EAAE,GAAK,EACP,EAAI,EACJ,EAAI,EAGG,GAAK,EAAG,IAEd,IADA,EAAI,EAAE,GACC,MAAQ,GAAG,CAGjB,KAAO,EAAI,EAAI,GAAG,CAMjB,GALA,IACA,GAAK,EAEL,EAAI,EAAI,EACR,EAAK,EAAI,EAAK,EAAI,EACb,GAAI,GAAM,GAAI,EAAI,IAAM,EAAI,GAGhC,IAAK,EAAI,EACT,EAAK,EACD,EAAI,GACP,KAAO,EAAE,EAAI,GACP,OAAM,IAAM,EAAE,EAAE,KAErB,GAAK,EAAE,GAOV,GAHA,EAAI,GAAK,EAGL,EAAG,GAAK,EAAI,GACf,MAAOA,IAER,EAAE,GAAK,EAAa,EAAG,GACvB,EAAG,IAAM,EAGT,CAAI,GAAM,EACT,GAAE,GAAK,EACP,EAAE,GAAiB,EACnB,EAAE,GAAiB,EACnB,EAAI,IAAO,EAAI,EACf,EAAE,GAAiB,EAAI,EAAE,EAAI,GAAK,EAClC,EAAG,IAAI,EAAI,GAAE,EAAI,GAAK,GAAK,CAAC,GAK5B,EAAE,GAAK,CAER,CAkBD,IAfA,EAAE,GAAkB,EAAI,EACxB,CAAI,EAAK,EACR,EAAE,GAAK,IAAM,GACP,CAAI,CAAE,GAAK,EACjB,GAAE,GAAkB,EAAE,GAAK,IAAM,EAAI,GAAK,GAE1C,EAAE,GAAK,EAAE,MAET,GAAE,GAAkB,EAAE,EAAE,GAAK,GAAK,GAAK,GAEvC,EAAE,GAAK,EAAE,EAAE,KAAO,IAInB,EAAI,GAAM,EAAI,EACT,EAAI,IAAM,EAAG,EAAI,EAAG,GAAK,EAC7B,EAAG,IAAI,EAAI,GAAI,GAAK,CAAC,EAItB,IAAK,EAAI,GAAM,EAAI,EAAK,GAAI,KAAO,EAAG,KAAO,EAC5C,GAAK,EAMN,IAJA,GAAK,EAGL,EAAQ,IAAK,GAAK,EACV,GAAI,IAAS,EAAE,IACtB,IACA,GAAK,EACL,EAAQ,IAAK,GAAK,CAEnB,CAGF,MAAO,KAAM,GAAK,GAAK,EAAIC,GAAcL,EACzC,CAED,WAAsB,EAAO,CAC5B,GAAI,GAYJ,IAXK,GACJ,GAAK,GACL,EAAI,GACJ,EAAI,GAAI,YAAW,GAAO,CAAC,EAC3B,EAAI,GACJ,EAAI,GAAI,YAAW,EAAI,EACvB,EAAI,GAAI,YAAW,GAAO,CAAC,GAExB,EAAE,OAAS,GACd,GAAI,IAEA,EAAI,EAAG,EAAI,EAAO,IACtB,EAAE,GAAK,EAER,IAAK,EAAI,EAAG,EAAI,GAAO,EAAG,IACzB,EAAE,GAAK,EAER,IAAK,EAAI,EAAG,EAAI,EAAG,IAClB,EAAE,GAAK,EAGR,EAAE,IAAI,EAAE,SAAS,EAAG,EAAI,EAAG,CAAC,EAE5B,EAAE,IAAI,EAAE,SAAS,EAAG,GAAO,CAAC,EAAG,CAAC,CAChC,CAED,EAAK,mBAAqB,SAAU,EACnC,EACA,EACA,EACA,EACC,CACD,GAAI,GACJ,SAAa,EAAE,EACf,EAAG,GAAK,EACR,EAAS,EAAW,EAAG,EAAG,GAAI,GAAI,KAAM,KAAM,EAAI,EAAI,EAAI,EAAI,CAAC,EAE/D,CAAI,EAAUI,GACb,EAAE,IAAM,0CACE,IAAUC,IAAe,EAAG,KAAO,IAC7C,GAAE,IAAM,sCACR,EAASD,IAEH,CACT,EAEC,EAAK,sBAAwB,SAAU,EACtC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACC,CACD,GAAI,GAMJ,MAHA,GAAa,GAAG,EAChB,EAAG,GAAK,EACR,EAAS,EAAW,EAAG,EAAG,EAAI,IAAK,GAAQ,GAAQ,EAAI,EAAI,EAAI,EAAI,CAAC,EAChE,GAAUJ,IAAQ,EAAG,KAAO,EAC/B,CAAI,GAAUI,GACb,EAAE,IAAM,qCACE,GAAUuB,IACpB,GAAE,IAAM,iCACR,EAASvB,IAEH,GAIR,GAAa,GAAG,EAChB,EAAS,EAAW,EAAG,EAAI,EAAI,EAAG,GAAQ,GAAQ,EAAI,EAAI,EAAI,EAAI,CAAC,EAE/D,GAAUJ,IAAS,EAAG,KAAO,GAAK,EAAK,IAC1C,CAAI,GAAUI,GACb,EAAE,IAAM,+BACF,CAAI,EAAUC,GACpB,GAAE,IAAM,2BACR,EAASD,IACC,GAAUuB,IACpB,GAAE,IAAM,mCACR,EAASvB,IAEH,GAGDJ,GACT,CAEA,CAEA,GAAQ,oBAAsB,SAAU,EACvC,EACA,EACA,EACC,CACD,SAAG,GAAK,GACR,EAAG,GAAK,GACR,EAAG,GAAK,GACR,EAAG,GAAK,GACDA,EACR,EAOA,KAAM,IAAQ,EACR4B,GAAM,EACNC,GAAS,EACTC,GAAO,EACPC,GAAU,EACVC,GAAO,EAEPC,GAAM,EAEN,GAAO,EAEP,GAAM,EACN,GAAU,EAEhB,aAAoB,CACnB,KAAM,GAAO,KAEb,GAAI,GAGA,EAAM,EAEN,EACA,EAAa,EACb,EAAO,EAEP,EAAM,EAGN,EAAM,EACN,EAAO,EAEP,EAAQ,EACR,EAAQ,EACR,EACA,EAAc,EACd,EACA,EAAc,EAOlB,WAAsB,EAAI,EAAI,EAAI,EAAU,EAAI,EAAU,EAAG,EAAG,CAC/D,GAAI,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EAEA,EAGJ,EAAI,EAAE,cACN,EAAI,EAAE,SACN,EAAI,EAAE,KACN,EAAI,EAAE,KACN,EAAI,EAAE,MACN,EAAI,EAAI,EAAE,KAAO,EAAE,KAAO,EAAI,EAAI,EAAE,IAAM,EAG1C,EAAK,GAAa,GAClB,EAAK,GAAa,GAGlB,EAAG,CAEF,KAAO,EAAK,IACX,IACA,GAAM,GAAE,UAAU,GAAG,EAAI,MAAS,EAClC,GAAK,EAON,GAJA,EAAI,EAAI,EACR,EAAK,EACL,EAAW,EACX,EAAgB,GAAW,GAAK,EAC3B,GAAI,EAAG,MAAmB,EAAG,CACjC,IAAO,EAAG,EAAe,GACzB,GAAM,EAAG,EAAe,GAExB,EAAE,IAAI,KAAmB,EAAG,EAAe,GAC3C,IACA,QACA,CACD,EAAG,CAKF,GAHA,IAAO,EAAG,EAAe,GACzB,GAAM,EAAG,EAAe,GAEnB,GAAI,MAAQ,EAAG,CAQnB,IAPA,GAAK,GACL,EAAI,EAAG,EAAe,GAAiB,GAAI,GAAa,IAExD,IAAM,EACN,GAAK,EAGE,EAAK,IACX,IACA,GAAM,GAAE,UAAU,GAAG,EAAI,MAAS,EAClC,GAAK,EAGN,EAAI,EAAI,EACR,EAAK,EACL,EAAW,EACX,EAAgB,GAAW,GAAK,EAChC,EAAI,EAAG,GAEP,EAKC,IAHA,IAAO,EAAG,EAAe,GACzB,GAAM,EAAG,EAAe,GAEnB,GAAI,MAAQ,EAAG,CAGnB,IADA,GAAK,GACE,EAAK,GACX,IACA,GAAM,GAAE,UAAU,GAAG,EAAI,MAAS,EAClC,GAAK,EAUN,GAPA,EAAI,EAAG,EAAe,GAAM,GAAI,GAAa,IAE7C,IAAO,EACP,GAAM,EAGN,GAAK,EACD,GAAK,EAER,EAAI,EAAI,EACR,CAAI,CAAI,EAAI,GAAK,EAAK,EAAI,EACzB,GAAE,IAAI,KAAO,EAAE,IAAI,KAGnB,EAAE,IAAI,KAAO,EAAE,IAAI,KAGnB,GAAK,GAEL,GAAE,IAAI,IAAI,EAAE,IAAI,SAAS,EAAG,EAAI,CAAC,EAAG,CAAC,EACrC,GAAK,EACL,GAAK,EACL,GAAK,OAEA,CACN,EAAI,EAAI,EACR,EACC,IAAK,EAAE,UACC,EAAI,GAEb,GADA,EAAI,EAAE,IAAM,EACR,EAAI,EAAG,CAEV,GADA,GAAK,EACD,EAAI,EAAI,GAAK,EAAK,EAAI,EACzB,EACC,GAAE,IAAI,KAAO,EAAE,IAAI,WACX,EAAE,IAAM,OAEjB,GAAE,IAAI,IAAI,EAAE,IAAI,SAAS,EAAG,EAAI,CAAC,EAAG,CAAC,EACrC,GAAK,EACL,GAAK,EACL,EAAI,EAEL,EAAI,CACJ,CAED,CAGD,GAAI,EAAI,EAAI,GAAK,EAAK,EAAI,EACzB,EACC,GAAE,IAAI,KAAO,EAAE,IAAI,WACX,EAAE,IAAM,OAEjB,GAAE,IAAI,IAAI,EAAE,IAAI,SAAS,EAAG,EAAI,CAAC,EAAG,CAAC,EACrC,GAAK,EACL,GAAK,EACL,EAAI,EAEL,KACA,SAAW,GAAI,MAAQ,EACvB,GAAK,EAAG,EAAe,GACvB,GAAM,EAAI,GAAa,GACvB,EAAgB,GAAW,GAAK,EAChC,EAAI,EAAG,OAEP,UAAE,IAAM,wBAER,EAAI,EAAE,SAAW,EACjB,EAAK,GAAK,EAAK,EAAI,GAAK,EAAI,EAC5B,GAAK,EACL,GAAK,EACL,GAAK,GAAK,EAEV,EAAE,KAAO,EACT,EAAE,KAAO,EACT,EAAE,SAAW,EACb,EAAE,UAAY,EAAI,EAAE,cACpB,EAAE,cAAgB,EAClB,EAAE,MAAQ,EAEH7B,SAGA,IACT,KACA,CAED,GAAK,GAAI,MAAQ,GAIhB,GAHA,GAAK,EAAG,EAAe,GACvB,GAAM,EAAI,GAAa,GACvB,EAAgB,GAAW,GAAK,EAC3B,GAAI,EAAG,MAAmB,EAAG,CAEjC,IAAO,EAAG,EAAe,GACzB,GAAM,EAAG,EAAe,GAExB,EAAE,IAAI,KAAmB,EAAG,EAAe,GAC3C,IACA,KACA,MACK,OAAK,GAAI,MAAQ,EAEvB,GAAI,EAAE,SAAW,EACjB,EAAK,GAAK,EAAK,EAAI,GAAK,EAAI,EAC5B,GAAK,EACL,GAAK,EACL,GAAK,GAAK,EAEV,EAAE,KAAO,EACT,EAAE,KAAO,EACT,EAAE,SAAW,EACb,EAAE,UAAY,EAAI,EAAE,cACpB,EAAE,cAAgB,EAClB,EAAE,MAAQ,EAEHH,IAEP,GAAE,IAAM,8BAER,EAAI,EAAE,SAAW,EACjB,EAAK,GAAK,EAAK,EAAI,GAAK,EAAI,EAC5B,GAAK,EACL,GAAK,EACL,GAAK,GAAK,EAEV,EAAE,KAAO,EACT,EAAE,KAAO,EACT,EAAE,SAAW,EACb,EAAE,UAAY,EAAI,EAAE,cACpB,EAAE,cAAgB,EAClB,EAAE,MAAQ,EAEHG,GAGR,OAAQ,GACT,OAAQ,GAAK,KAAO,GAAK,IAG1B,SAAI,EAAE,SAAW,EACjB,EAAK,GAAK,EAAK,EAAI,GAAK,EAAI,EAC5B,GAAK,EACL,GAAK,EACL,GAAK,GAAK,EAEV,EAAE,KAAO,EACT,EAAE,KAAO,EACT,EAAE,SAAW,EACb,EAAE,UAAY,EAAI,EAAE,cACpB,EAAE,cAAgB,EAClB,EAAE,MAAQ,EAEHJ,EACP,CAED,EAAK,KAAO,SAAU,EAAI,EAAI,EAAI,EAAU,EAAI,EAAU,CACzD,EAAO,GACP,EAAoB,EACpB,EAAoB,EACpB,EAAQ,EACR,EAAc,EACd,EAAQ,EACR,EAAc,EACd,EAAO,IACT,EAEC,EAAK,KAAO,SAAU,EAAG,EAAG,EAAG,CAC9B,GAAI,GACA,EACA,EACA,EAAI,EACJ,EAAI,EACJ,EAAI,EACJ,EACA,EACA,EACA,EAYJ,IATA,EAAI,EAAE,cACN,EAAI,EAAE,SACN,EAAI,EAAE,KACN,EAAI,EAAE,KACN,EAAI,EAAE,MACN,EAAI,EAAI,EAAE,KAAO,EAAE,KAAO,EAAI,EAAI,EAAE,IAAM,IAKzC,OAAQ,OAEF,IACJ,GAAI,GAAK,KAAO,GAAK,IAEpB,GAAE,KAAO,EACT,EAAE,KAAO,EACT,EAAE,SAAW,EACb,EAAE,UAAY,EAAI,EAAE,cACpB,EAAE,cAAgB,EAClB,EAAE,MAAQ,EACV,EAAI,EAAa,EAAO,EAAO,EAAO,EAAa,EAAO,EAAa,EAAG,CAAC,EAE3E,EAAI,EAAE,cACN,EAAI,EAAE,SACN,EAAI,EAAE,KACN,EAAI,EAAE,KACN,EAAI,EAAE,MACN,EAAI,EAAI,EAAE,KAAO,EAAE,KAAO,EAAI,EAAI,EAAE,IAAM,EAEtC,GAAKA,IAAM,CACd,EAAO,GAAKC,GAAe,GAAO,GAClC,KACA,CAEF,EAAO,EACP,EAAO,EACP,EAAa,EAEb,EAAO2B,OAEHA,IAGJ,IAFA,EAAI,EAEG,EAAK,GAAI,CACf,GAAI,IAAM,EACT,EAAI5B,OAGJ,UAAE,KAAO,EACT,EAAE,KAAO,EACT,EAAE,SAAW,EACb,EAAE,UAAY,EAAI,EAAE,cACpB,EAAE,cAAgB,EAClB,EAAE,MAAQ,EACH,EAAE,cAAc,EAAG,CAAC,EAE5B,IACA,GAAM,GAAE,UAAU,GAAG,EAAI,MAAS,EAClC,GAAK,CACL,CASD,GAPA,EAAU,GAAc,GAAI,GAAa,KAAO,EAEhD,KAAQ,EAAK,EAAS,GACtB,GAAM,EAAK,EAAS,GAEpB,EAAI,EAAK,GAEL,IAAM,EAAG,CACZ,EAAM,EAAK,EAAS,GACpB,EAAOiC,GACP,KACA,CACD,GAAK,GAAI,MAAQ,EAAG,CACnB,EAAM,EAAI,GACV,EAAM,EAAK,EAAS,GACpB,EAAOJ,GACP,KACA,CACD,GAAK,GAAI,MAAQ,EAAG,CACnB,EAAO,EACP,EAAa,EAAS,EAAI,EAAK,EAAS,GACxC,KACA,CACD,GAAK,GAAI,MAAQ,EAAG,CACnB,EAAO,GACP,KACA,CACD,SAAO,GACP,EAAE,IAAM,8BACR,EAAIzB,GAEJ,EAAE,KAAO,EACT,EAAE,KAAO,EACT,EAAE,SAAW,EACb,EAAE,UAAY,EAAI,EAAE,cACpB,EAAE,cAAgB,EAClB,EAAE,MAAQ,EACH,EAAE,cAAc,EAAG,CAAC,MAEvByB,IAGJ,IAFA,EAAI,EAEG,EAAK,GAAI,CACf,GAAI,IAAM,EACT,EAAI7B,OAGJ,UAAE,KAAO,EACT,EAAE,KAAO,EACT,EAAE,SAAW,EACb,EAAE,UAAY,EAAI,EAAE,cACpB,EAAE,cAAgB,EAClB,EAAE,MAAQ,EACH,EAAE,cAAc,EAAG,CAAC,EAE5B,IACA,GAAM,GAAE,UAAU,GAAG,EAAI,MAAS,EAClC,GAAK,CACL,CAED,GAAQ,EAAI,GAAa,GAEzB,IAAM,EACN,GAAK,EAEL,EAAO,EACP,EAAO,EACP,EAAa,EACb,EAAO8B,OAEHA,IAGJ,IAFA,EAAI,EAEG,EAAK,GAAI,CACf,GAAI,IAAM,EACT,EAAI9B,OAGJ,UAAE,KAAO,EACT,EAAE,KAAO,EACT,EAAE,SAAW,EACb,EAAE,UAAY,EAAI,EAAE,cACpB,EAAE,cAAgB,EAClB,EAAE,MAAQ,EACH,EAAE,cAAc,EAAG,CAAC,EAE5B,IACA,GAAM,GAAE,UAAU,GAAG,EAAI,MAAS,EAClC,GAAK,CACL,CAQD,GANA,EAAU,GAAc,GAAI,GAAa,KAAO,EAEhD,IAAM,EAAK,EAAS,GACpB,GAAK,EAAK,EAAS,GAEnB,EAAK,EAAK,GACL,GAAI,MAAQ,EAAG,CACnB,EAAM,EAAI,GACV,EAAO,EAAK,EAAS,GACrB,EAAO+B,GACP,KACA,CACD,GAAK,GAAI,MAAQ,EAAG,CACnB,EAAO,EACP,EAAa,EAAS,EAAI,EAAK,EAAS,GACxC,KACA,CACD,SAAO,GACP,EAAE,IAAM,wBACR,EAAI3B,GAEJ,EAAE,KAAO,EACT,EAAE,KAAO,EACT,EAAE,SAAW,EACb,EAAE,UAAY,EAAI,EAAE,cACpB,EAAE,cAAgB,EAClB,EAAE,MAAQ,EACH,EAAE,cAAc,EAAG,CAAC,MAEvB2B,IAGJ,IAFA,EAAI,EAEG,EAAK,GAAI,CACf,GAAI,IAAM,EACT,EAAI/B,OAGJ,UAAE,KAAO,EACT,EAAE,KAAO,EACT,EAAE,SAAW,EACb,EAAE,UAAY,EAAI,EAAE,cACpB,EAAE,cAAgB,EAClB,EAAE,MAAQ,EACH,EAAE,cAAc,EAAG,CAAC,EAE5B,IACA,GAAM,GAAE,UAAU,GAAG,EAAI,MAAS,EAClC,GAAK,CACL,CAED,GAAS,EAAI,GAAa,GAE1B,IAAM,EACN,GAAK,EAEL,EAAOgC,OAEHA,IAEJ,IADA,EAAI,EAAI,EACD,EAAI,GACV,GAAK,EAAE,IAER,KAAO,IAAQ,GAAG,CAEjB,GAAI,IAAM,GACL,IAAK,EAAE,KAAO,EAAE,OAAS,GAC5B,GAAI,EACJ,EAAI,EAAI,EAAE,KAAO,EAAE,KAAO,EAAI,EAAI,EAAE,IAAM,GAEvC,IAAM,GACT,GAAE,MAAQ,EACV,EAAI,EAAE,cAAc,EAAG,CAAC,EACxB,EAAI,EAAE,MACN,EAAI,EAAI,EAAE,KAAO,EAAE,KAAO,EAAI,EAAI,EAAE,IAAM,EAEtC,GAAK,EAAE,KAAO,EAAE,OAAS,GAC5B,GAAI,EACJ,EAAI,EAAI,EAAE,KAAO,EAAE,KAAO,EAAI,EAAI,EAAE,IAAM,GAGvC,IAAM,IACT,SAAE,KAAO,EACT,EAAE,KAAO,EACT,EAAE,SAAW,EACb,EAAE,UAAY,EAAI,EAAE,cACpB,EAAE,cAAgB,EAClB,EAAE,MAAQ,EACH,EAAE,cAAc,EAAG,CAAC,EAK9B,EAAE,IAAI,KAAO,EAAE,IAAI,KACnB,IAEI,GAAK,EAAE,KACV,GAAI,GACL,GACA,CACD,EAAO,GACP,UACIC,IACJ,GAAI,IAAM,GACL,IAAK,EAAE,KAAO,EAAE,OAAS,GAC5B,GAAI,EACJ,EAAI,EAAI,EAAE,KAAO,EAAE,KAAO,EAAI,EAAI,EAAE,IAAM,GAEvC,IAAM,GACT,GAAE,MAAQ,EACV,EAAI,EAAE,cAAc,EAAG,CAAC,EACxB,EAAI,EAAE,MACN,EAAI,EAAI,EAAE,KAAO,EAAE,KAAO,EAAI,EAAI,EAAE,IAAM,EAEtC,GAAK,EAAE,KAAO,EAAE,OAAS,GAC5B,GAAI,EACJ,EAAI,EAAI,EAAE,KAAO,EAAE,KAAO,EAAI,EAAI,EAAE,IAAM,GAEvC,IAAM,IACT,SAAE,KAAO,EACT,EAAE,KAAO,EACT,EAAE,SAAW,EACb,EAAE,UAAY,EAAI,EAAE,cACpB,EAAE,cAAgB,EAClB,EAAE,MAAQ,EACH,EAAE,cAAc,EAAG,CAAC,EAI9B,EAAIjC,GAEJ,EAAE,IAAI,KAAmB,EACzB,IAEA,EAAO,GACP,UACI,IAYJ,GAXI,EAAI,GACP,IAAK,EACL,IACA,KAGD,EAAE,MAAQ,EACV,EAAI,EAAE,cAAc,EAAG,CAAC,EACxB,EAAI,EAAE,MACN,EAAI,EAAI,EAAE,KAAO,EAAE,KAAO,EAAI,EAAI,EAAE,IAAM,EAEtC,EAAE,MAAQ,EAAE,MACf,SAAE,KAAO,EACT,EAAE,KAAO,EACT,EAAE,SAAW,EACb,EAAE,UAAY,EAAI,EAAE,cACpB,EAAE,cAAgB,EAClB,EAAE,MAAQ,EACH,EAAE,cAAc,EAAG,CAAC,EAE5B,EAAO,OAEH,IACJ,SAAIC,GACJ,EAAE,KAAO,EACT,EAAE,KAAO,EACT,EAAE,SAAW,EACb,EAAE,UAAY,EAAI,EAAE,cACpB,EAAE,cAAgB,EAClB,EAAE,MAAQ,EACH,EAAE,cAAc,EAAG,CAAC,MAEvB,IAEJ,SAAIG,GAEJ,EAAE,KAAO,EACT,EAAE,KAAO,EACT,EAAE,SAAW,EACb,EAAE,UAAY,EAAI,EAAE,cACpB,EAAE,cAAgB,EAClB,EAAE,MAAQ,EACH,EAAE,cAAc,EAAG,CAAC,UAG3B,SAAID,GAEJ,EAAE,KAAO,EACT,EAAE,KAAO,EACT,EAAE,SAAW,EACb,EAAE,UAAY,EAAI,EAAE,cACpB,EAAE,cAAgB,EAClB,EAAE,MAAQ,EACH,EAAE,cAAc,EAAG,CAAC,EAGhC,EAEC,EAAK,KAAO,UAAY,CAEzB,CAEA,CAKA,KAAM,IAAS,CACd,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAE,EAE3D+B,GAAO,EACPC,GAAO,EACPzB,GAAS,EACT0B,GAAQ,EACR,GAAQ,EAER,GAAQ,EAERC,GAAQ,EACR,GAAM,EACN,GAAY,EACZ,GAAY,EAElB,YAAmB,EAAG,EAAG,CACxB,KAAM,GAAO,KAEb,GAAI,GAAOH,GAEP,EAAO,EAEP,EAAQ,EACR,EAAQ,EACR,EACJ,KAAM,GAAK,CAAC,CAAC,EACP,EAAK,CAAC,CAAC,EAEP,EAAQ,GAAI,IAElB,GAAI,GAAO,EAEP,EAAQ,GAAI,YAAW,GAAO,CAAC,EACnC,KAAM,GAAQ,EACR,EAAU,GAAI,IAEpB,EAAK,KAAO,EACZ,EAAK,KAAO,EACZ,EAAK,IAAM,GAAI,YAAW,CAAC,EAC3B,EAAK,IAAM,EACX,EAAK,KAAO,EACZ,EAAK,MAAQ,EAEb,EAAK,MAAQ,SAAU,EAAG,EAAG,CAC5B,CAAI,EACH,GAAE,GAAK,GAGJ,GAAQG,IACX,EAAM,KAAK,CAAC,EAEb,EAAOH,GACP,EAAK,KAAO,EACZ,EAAK,KAAO,EACZ,EAAK,KAAO,EAAK,MAAQ,CAC3B,EAEC,EAAK,MAAM,EAAG,IAAI,EAGlB,EAAK,cAAgB,SAAU,EAAG,EAAG,CACpC,GAAI,GACA,EACA,EAGJ,SAAI,EAAE,eACN,EAAI,EAAK,KAGT,EAAiB,IAAK,EAAK,MAAQ,EAAK,MAAQ,EAAK,KAAO,EACxD,EAAI,EAAE,WACT,GAAI,EAAE,WACH,IAAM,GAAK,GAAK7B,IACnB,GAAIL,IAGL,EAAE,WAAa,EACf,EAAE,WAAa,EAGf,EAAE,SAAS,IAAI,EAAK,IAAI,SAAS,EAAG,EAAI,CAAC,EAAG,CAAC,EAC7C,GAAK,EACL,GAAK,EAGD,GAAK,EAAK,KAEb,GAAI,EACA,EAAK,OAAS,EAAK,KACtB,GAAK,MAAQ,GAGd,EAAI,EAAK,MAAQ,EACb,EAAI,EAAE,WACT,GAAI,EAAE,WACH,IAAM,GAAK,GAAKK,IACnB,GAAIL,IAGL,EAAE,WAAa,EACf,EAAE,WAAa,EAGf,EAAE,SAAS,IAAI,EAAK,IAAI,SAAS,EAAG,EAAI,CAAC,EAAG,CAAC,EAC7C,GAAK,EACL,GAAK,GAIN,EAAE,eAAiB,EACnB,EAAK,KAAO,EAGL,CACT,EAEC,EAAK,KAAO,SAAU,EAAG,EAAG,CAC3B,GAAI,GACA,EACA,EACA,EACA,EACA,EACA,EAEA,EAiBJ,IAbA,EAAI,EAAE,cACN,EAAI,EAAE,SACN,EAAI,EAAK,KACT,EAAI,EAAK,KAGT,EAAI,EAAK,MACT,EAAgB,EAAI,EAAK,KAAO,EAAK,KAAO,EAAI,EAAI,EAAK,IAAM,IAMlD,CACZ,GAAI,GAAI,EAAI,EAAI,EAAI,EAAK,EAAK,EAAK,EACnC,OAAQ,OACFkC,IAEJ,KAAO,EAAK,GAAI,CACf,GAAI,IAAM,EACT,EAAIlC,OAEJ,UAAK,KAAO,EACZ,EAAK,KAAO,EACZ,EAAE,SAAW,EACb,EAAE,UAAY,EAAI,EAAE,cACpB,EAAE,cAAgB,EAClB,EAAK,MAAQ,EACN,EAAK,cAAc,EAAG,CAAC,EAE/B,IACA,GAAM,GAAE,UAAU,GAAG,EAAI,MAAS,EAClC,GAAK,CACL,CAID,OAHA,EAAgB,EAAI,EACpB,EAAO,EAAI,EAEH,IAAM,OACR,GAEJ,KAAQ,EACR,GAAM,EAEN,EAAI,EAAI,EAGR,KAAQ,EACR,GAAM,EAEN,EAAOmC,GACP,UACI,GAEJ,EAAK,GACL,EAAK,GACL,EAAK,CAAC,EAAE,EACR,EAAK,CAAC,EAAE,EAER,GAAQ,oBAAoB,EAAI,EAAI,EAAI,CAAE,EAC1C,EAAM,KAAK,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,CAAC,EAI3C,KAAQ,EACR,GAAM,EAGN,EAAOE,GACP,UACI,GAGJ,KAAQ,EACR,GAAM,EAGN,EAAOD,GACP,UACI,GAGJ,YAAQ,EACR,GAAM,EAEN,EAAO,GACP,EAAE,IAAM,qBACR,EAAIhC,GAEJ,EAAK,KAAO,EACZ,EAAK,KAAO,EACZ,EAAE,SAAW,EACb,EAAE,UAAY,EAAI,EAAE,cACpB,EAAE,cAAgB,EAClB,EAAK,MAAQ,EACN,EAAK,cAAc,EAAG,CAAC,EAEhC,UACI+B,IAEJ,KAAO,EAAK,IAAK,CAChB,GAAI,IAAM,EACT,EAAInC,OAEJ,UAAK,KAAO,EACZ,EAAK,KAAO,EACZ,EAAE,SAAW,EACb,EAAE,UAAY,EAAI,EAAE,cACpB,EAAE,cAAgB,EAClB,EAAK,MAAQ,EACN,EAAK,cAAc,EAAG,CAAC,EAE/B,IACA,GAAM,GAAE,UAAU,GAAG,EAAI,MAAS,EAClC,GAAK,CACL,CAED,GAAO,EAAC,IAAO,GAAM,QAAY,GAAI,OACpC,SAAO,GACP,EAAE,IAAM,+BACR,EAAII,GAEJ,EAAK,KAAO,EACZ,EAAK,KAAO,EACZ,EAAE,SAAW,EACb,EAAE,UAAY,EAAI,EAAE,cACpB,EAAE,cAAgB,EAClB,EAAK,MAAQ,EACN,EAAK,cAAc,EAAG,CAAC,EAE/B,EAAQ,EAAI,MACZ,EAAI,EAAI,EACR,EAAO,IAAS,EAAIM,GAAU,IAAS,EAAI,GAAMwB,GACjD,UACIxB,IAWJ,GAVI,IAAM,GAUN,IAAM,GACL,IAAK,EAAK,KAAO,EAAK,OAAS,GAClC,GAAI,EACJ,EAAgB,EAAI,EAAK,KAAO,EAAK,KAAO,EAAI,EAAI,EAAK,IAAM,GAE5D,IAAM,GACT,GAAK,MAAQ,EACb,EAAI,EAAK,cAAc,EAAG,CAAC,EAC3B,EAAI,EAAK,MACT,EAAgB,EAAI,EAAK,KAAO,EAAK,KAAO,EAAI,EAAI,EAAK,IAAM,EAC3D,GAAK,EAAK,KAAO,EAAK,OAAS,GAClC,GAAI,EACJ,EAAgB,EAAI,EAAK,KAAO,EAAK,KAAO,EAAI,EAAI,EAAK,IAAM,GAE5D,IAAM,IACT,SAAK,KAAO,EACZ,EAAK,KAAO,EACZ,EAAE,SAAW,EACb,EAAE,UAAY,EAAI,EAAE,cACpB,EAAE,cAAgB,EAClB,EAAK,MAAQ,EACN,EAAK,cAAc,EAAG,CAAC,EAgBjC,GAZA,EAAIV,GAEJ,EAAI,EACA,EAAI,GACP,GAAI,GACD,EAAI,GACP,GAAI,GACL,EAAK,IAAI,IAAI,EAAE,SAAS,EAAG,CAAC,EAAG,CAAC,EAChC,GAAK,EACL,GAAK,EACL,GAAK,EACL,GAAK,EACA,IAAQ,KAAO,EACnB,MACD,EAAO,IAAS,EAAI,GAAMkC,GAC1B,UACIE,IAEJ,KAAO,EAAK,IAAK,CAChB,GAAI,IAAM,EACT,EAAIpC,OAEJ,UAAK,KAAO,EACZ,EAAK,KAAO,EACZ,EAAE,SAAW,EACb,EAAE,UAAY,EAAI,EAAE,cACpB,EAAE,cAAgB,EAClB,EAAK,MAAQ,EACN,EAAK,cAAc,EAAG,CAAC,EAG/B,IACA,GAAM,GAAE,UAAU,GAAG,EAAI,MAAS,EAClC,GAAK,CACL,CAGD,GADA,EAAQ,EAAK,EAAI,MACZ,GAAI,IAAQ,IAAQ,IAAK,EAAK,IAAQ,GAC1C,SAAO,GACP,EAAE,IAAM,sCACR,EAAII,GAEJ,EAAK,KAAO,EACZ,EAAK,KAAO,EACZ,EAAE,SAAW,EACb,EAAE,UAAY,EAAI,EAAE,cACpB,EAAE,cAAgB,EAClB,EAAK,MAAQ,EACN,EAAK,cAAc,EAAG,CAAC,EAG/B,GADA,EAAI,IAAO,GAAI,IAAU,IAAK,EAAK,IAC/B,CAAC,GAAS,EAAM,OAAS,EAC5B,EAAQ,OAER,KAAK,EAAI,EAAG,EAAI,EAAG,IAClB,EAAM,GAAK,EAKb,KAAQ,GACR,GAAM,GAGN,EAAQ,EACR,EAAO,OAEH,IACJ,KAAO,EAAQ,EAAK,KAAU,KAAK,CAClC,KAAO,EAAK,GAAI,CACf,GAAI,IAAM,EACT,EAAIJ,OAEJ,UAAK,KAAO,EACZ,EAAK,KAAO,EACZ,EAAE,SAAW,EACb,EAAE,UAAY,EAAI,EAAE,cACpB,EAAE,cAAgB,EAClB,EAAK,MAAQ,EACN,EAAK,cAAc,EAAG,CAAC,EAE/B,IACA,GAAM,GAAE,UAAU,GAAG,EAAI,MAAS,EAClC,GAAK,CACL,CAED,EAAM,GAAO,MAAY,EAAI,EAG7B,KAAQ,EACR,GAAM,CAEN,CAED,KAAO,EAAQ,IACd,EAAM,GAAO,MAAY,EAK1B,GAFA,EAAG,GAAK,EACR,EAAI,EAAQ,mBAAmB,EAAO,EAAI,EAAI,EAAO,CAAC,EAClD,GAAKA,GACR,SAAI,EACA,GAAKI,IACR,GAAQ,KACR,EAAO,IAGR,EAAK,KAAO,EACZ,EAAK,KAAO,EACZ,EAAE,SAAW,EACb,EAAE,UAAY,EAAI,EAAE,cACpB,EAAE,cAAgB,EAClB,EAAK,MAAQ,EACN,EAAK,cAAc,EAAG,CAAC,EAG/B,EAAQ,EACR,EAAO,OAEH,IAEJ,KACC,EAAI,EACA,KAAS,IAAO,GAAI,IAAU,IAAK,EAAK,MAFhC,CAMZ,GAAI,GAAG,EAIP,IAFA,EAAI,EAAG,GAEA,EAAK,GAAI,CACf,GAAI,IAAM,EACT,EAAIJ,OAEJ,UAAK,KAAO,EACZ,EAAK,KAAO,EACZ,EAAE,SAAW,EACb,EAAE,UAAY,EAAI,EAAE,cACpB,EAAE,cAAgB,EAClB,EAAK,MAAQ,EACN,EAAK,cAAc,EAAG,CAAC,EAE/B,IACA,GAAM,GAAE,UAAU,GAAG,EAAI,MAAS,EAClC,GAAK,CACL,CASD,GAHA,EAAI,EAAO,GAAG,GAAM,GAAI,GAAa,KAAO,EAAI,GAChD,EAAI,EAAO,GAAG,GAAM,GAAI,GAAa,KAAO,EAAI,GAE5C,EAAI,GACP,KAAQ,EACR,GAAM,EACN,EAAM,KAAW,MACX,CAIN,IAHA,EAAI,GAAK,GAAK,EAAI,EAAI,GACtB,EAAI,GAAK,GAAK,GAAK,EAEZ,EAAK,EAAI,GAAI,CACnB,GAAI,IAAM,EACT,EAAIA,OAEJ,UAAK,KAAO,EACZ,EAAK,KAAO,EACZ,EAAE,SAAW,EACb,EAAE,UAAY,EAAI,EAAE,cACpB,EAAE,cAAgB,EAClB,EAAK,MAAQ,EACN,EAAK,cAAc,EAAG,CAAC,EAE/B,IACA,GAAM,GAAE,UAAU,GAAG,EAAI,MAAS,EAClC,GAAK,CACL,CAYD,GAVA,KAAQ,EACR,GAAM,EAEN,GAAM,EAAI,GAAa,GAEvB,KAAQ,EACR,GAAM,EAEN,EAAI,EACJ,EAAI,EACA,EAAI,EAAI,IAAO,GAAI,IAAU,IAAK,EAAK,KAAU,GAAK,IAAM,EAAI,EACnE,SAAQ,KACR,EAAO,GACP,EAAE,IAAM,4BACR,EAAII,GAEJ,EAAK,KAAO,EACZ,EAAK,KAAO,EACZ,EAAE,SAAW,EACb,EAAE,UAAY,EAAI,EAAE,cACpB,EAAE,cAAgB,EAClB,EAAK,MAAQ,EACN,EAAK,cAAc,EAAG,CAAC,EAG/B,EAAI,GAAK,GAAK,EAAM,EAAI,GAAK,EAC7B,EACC,GAAM,KAAO,QACL,EAAE,IAAM,GACjB,EAAQ,CACR,CACD,CAcD,GAZA,EAAG,GAAK,GAER,EAAM,GACN,EAAM,GACN,EAAM,GACN,EAAM,GACN,EAAI,GAAK,EACT,EAAI,GAAK,EAET,EAAI,EACJ,EAAI,EAAQ,sBAAsB,IAAO,GAAI,IAAO,EAAM,IAAK,EAAK,IAAO,EAAO,EAAK,EAAK,EAAK,EAAK,EAAO,CAAC,EAE1G,GAAKJ,GACR,MAAI,IAAKI,IACR,GAAQ,KACR,EAAO,IAER,EAAI,EAEJ,EAAK,KAAO,EACZ,EAAK,KAAO,EACZ,EAAE,SAAW,EACb,EAAE,UAAY,EAAI,EAAE,cACpB,EAAE,cAAgB,EAClB,EAAK,MAAQ,EACN,EAAK,cAAc,EAAG,CAAC,EAE/B,EAAM,KAAK,EAAI,GAAI,EAAI,GAAI,EAAO,EAAI,GAAI,EAAO,EAAI,EAAE,EAEvD,EAAOiC,OAEHA,IAQJ,GAPA,EAAK,KAAO,EACZ,EAAK,KAAO,EACZ,EAAE,SAAW,EACb,EAAE,UAAY,EAAI,EAAE,cACpB,EAAE,cAAgB,EAClB,EAAK,MAAQ,EAER,GAAI,EAAM,KAAK,EAAM,EAAG,CAAC,IAAMpC,GACnC,MAAO,GAAK,cAAc,EAAG,CAAC,EAY/B,GAVA,EAAID,GACJ,EAAM,KAAK,CAAC,EAEZ,EAAI,EAAE,cACN,EAAI,EAAE,SACN,EAAI,EAAK,KACT,EAAI,EAAK,KACT,EAAI,EAAK,MACT,EAAgB,EAAI,EAAK,KAAO,EAAK,KAAO,EAAI,EAAI,EAAK,IAAM,EAE3D,IAAS,EAAG,CACf,EAAOkC,GACP,KACA,CACD,EAAO,OAEH,IAKJ,GAJA,EAAK,MAAQ,EACb,EAAI,EAAK,cAAc,EAAG,CAAC,EAC3B,EAAI,EAAK,MACT,EAAgB,EAAI,EAAK,KAAO,EAAK,KAAO,EAAI,EAAI,EAAK,IAAM,EAC3D,EAAK,MAAQ,EAAK,MACrB,SAAK,KAAO,EACZ,EAAK,KAAO,EACZ,EAAE,SAAW,EACb,EAAE,UAAY,EAAI,EAAE,cACpB,EAAE,cAAgB,EAClB,EAAK,MAAQ,EACN,EAAK,cAAc,EAAG,CAAC,EAE/B,EAAO,OAEH,IACJ,SAAIjC,GAEJ,EAAK,KAAO,EACZ,EAAK,KAAO,EACZ,EAAE,SAAW,EACb,EAAE,UAAY,EAAI,EAAE,cACpB,EAAE,cAAgB,EAClB,EAAK,MAAQ,EACN,EAAK,cAAc,EAAG,CAAC,MAC1B,IACJ,SAAIG,GAEJ,EAAK,KAAO,EACZ,EAAK,KAAO,EACZ,EAAE,SAAW,EACb,EAAE,UAAY,EAAI,EAAE,cACpB,EAAE,cAAgB,EAClB,EAAK,MAAQ,EACN,EAAK,cAAc,EAAG,CAAC,UAG9B,SAAID,GAEJ,EAAK,KAAO,EACZ,EAAK,KAAO,EACZ,EAAE,SAAW,EACb,EAAE,UAAY,EAAI,EAAE,cACpB,EAAE,cAAgB,EAClB,EAAK,MAAQ,EACN,EAAK,cAAc,EAAG,CAAC,EAEhC,CACH,EAEC,EAAK,KAAO,SAAU,EAAG,CACxB,EAAK,MAAM,EAAG,IAAI,EAClB,EAAK,IAAM,KACX,EAAQ,IAEV,EAEC,EAAK,eAAiB,SAAU,EAAG,EAAO,EAAG,CAC5C,EAAK,IAAI,IAAI,EAAE,SAAS,EAAO,EAAQ,CAAC,EAAG,CAAC,EAC5C,EAAK,KAAO,EAAK,MAAQ,CAC3B,EAIC,EAAK,WAAa,UAAY,CAC7B,MAAO,IAAQgC,GAAO,EAAI,CAC5B,CAEA,CAKA,KAAMvB,IAAc,GAEdI,GAAa,EAEb,GAAS,EACT,GAAO,EACP,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAS,EACTsB,GAAO,GACPC,GAAM,GAENC,GAAO,CAAC,EAAG,EAAG,IAAM,GAAI,EAE9B,aAAmB,CAClB,KAAM,GAAO,KAEb,EAAK,KAAO,EAGZ,EAAK,OAAS,EAGd,EAAK,IAAM,CAAC,CAAC,EACb,EAAK,KAAO,EAGZ,EAAK,OAAS,EAGd,EAAK,MAAQ,EAIb,WAAsB,EAAG,CACxB,MAAI,CAAC,GAAK,CAAC,EAAE,OACLrC,GAER,GAAE,SAAW,EAAE,UAAY,EAC3B,EAAE,IAAM,KACR,EAAE,OAAO,KAAO,GAChB,EAAE,OAAO,OAAO,MAAM,EAAG,IAAI,EACtBH,GACP,CAED,EAAK,WAAa,SAAU,EAAG,CAC9B,MAAI,GAAK,QACR,EAAK,OAAO,KAAK,CAAC,EACnB,EAAK,OAAS,KAEPA,EACT,EAEC,EAAK,YAAc,SAAU,EAAG,EAAG,CAKlC,MAJA,GAAE,IAAM,KACR,EAAK,OAAS,KAGV,EAAI,GAAK,EAAI,GAChB,GAAK,WAAW,CAAC,EACVG,IAER,GAAK,MAAQ,EAEb,EAAE,OAAO,OAAS,GAAI,IAAU,EAAG,GAAK,CAAC,EAGzC,EAAa,CAAC,EACPH,GACT,EAEC,EAAK,QAAU,SAAU,EAAG,EAAG,CAC9B,GAAI,GACA,EAEJ,GAAI,CAAC,GAAK,CAAC,EAAE,QAAU,CAAC,EAAE,QACzB,MAAOG,IACR,KAAM,GAAS,EAAE,OAIjB,IAHA,EAAI,GAAKJ,GAAWM,GAAcL,GAClC,EAAIK,KAGH,OAAQ,EAAO,UACT,IAEJ,GAAI,EAAE,WAAa,EAClB,MAAO,GAKR,GAJA,EAAI,EAEJ,EAAE,WACF,EAAE,WACI,IAAO,OAAS,EAAE,UAAU,EAAE,eAAe,GAAK,KAAQW,GAAY,CAC3E,EAAO,KAAOuB,GACd,EAAE,IAAM,6BACR,EAAO,OAAS,EAChB,KACA,CACD,GAAK,GAAO,QAAU,GAAK,EAAI,EAAO,MAAO,CAC5C,EAAO,KAAOA,GACd,EAAE,IAAM,mBACR,EAAO,OAAS,EAChB,KACA,CACD,EAAO,KAAO,OAEV,IAEJ,GAAI,EAAE,WAAa,EAClB,MAAO,GAOR,GANA,EAAI,EAEJ,EAAE,WACF,EAAE,WACF,EAAK,EAAE,UAAU,EAAE,eAAe,EAAK,IAEhC,IAAO,QAAU,GAAK,GAAK,KAAQ,EAAG,CAC5C,EAAO,KAAOA,GACd,EAAE,IAAM,yBACR,EAAO,OAAS,EAChB,KACA,CAED,GAAK,GAAI3B,MAAiB,EAAG,CAC5B,EAAO,KAAO,GACd,KACA,CACD,EAAO,KAAO,OAEV,IAEJ,GAAI,EAAE,WAAa,EAClB,MAAO,GACR,EAAI,EAEJ,EAAE,WACF,EAAE,WACF,EAAO,KAAS,GAAE,UAAU,EAAE,eAAe,EAAI,MAAS,GAAM,WAChE,EAAO,KAAO,OAEV,IAEJ,GAAI,EAAE,WAAa,EAClB,MAAO,GACR,EAAI,EAEJ,EAAE,WACF,EAAE,WACF,EAAO,MAAU,GAAE,UAAU,EAAE,eAAe,EAAI,MAAS,GAAM,SACjE,EAAO,KAAO,OAEV,IAEJ,GAAI,EAAE,WAAa,EAClB,MAAO,GACR,EAAI,EAEJ,EAAE,WACF,EAAE,WACF,EAAO,MAAU,GAAE,UAAU,EAAE,eAAe,EAAI,MAAS,EAAK,MAChE,EAAO,KAAO,OAEV,IAEJ,MAAI,GAAE,WAAa,EACX,EACR,GAAI,EAEJ,EAAE,WACF,EAAE,WACF,EAAO,MAAS,EAAE,UAAU,EAAE,eAAe,EAAI,IACjD,EAAO,KAAO,GACPV,QACH,IACJ,SAAO,KAAOqC,GACd,EAAE,IAAM,kBACR,EAAO,OAAS,EACTpC,OACH,IAGJ,GADA,EAAI,EAAO,OAAO,KAAK,EAAG,CAAC,EACvB,GAAKC,GAAc,CACtB,EAAO,KAAOmC,GACd,EAAO,OAAS,EAChB,KACA,CAID,GAHI,GAAKvC,IACR,GAAI,GAED,GAAKC,GACR,MAAO,GAER,EAAI,EACJ,EAAO,OAAO,MAAM,EAAG,EAAO,GAAG,EACjC,EAAO,KAAOqC,OAEVA,IACJ,MAAOrC,QACHsC,IACJ,MAAOnC,YAEP,MAAOD,IAGZ,EAEC,EAAK,qBAAuB,SAAU,EAAG,EAAY,EAAY,CAChE,GAAI,GAAQ,EAAG,EAAS,EACxB,GAAI,CAAC,GAAK,CAAC,EAAE,QAAU,EAAE,OAAO,MAAQ,GACvC,MAAOA,IACR,KAAM,GAAS,EAAE,OACjB,MAAI,IAAW,GAAK,EAAO,OAC1B,GAAU,IAAK,EAAO,OAAS,EAC/B,EAAQ,EAAa,GAEtB,EAAO,OAAO,eAAe,EAAY,EAAO,CAAM,EACtD,EAAO,KAAO,GACPH,EACT,EAEC,EAAK,YAAc,SAAU,EAAG,CAC/B,GAAI,GACA,EACA,EACA,EAAG,EAGP,GAAI,CAAC,GAAK,CAAC,EAAE,OACZ,MAAOG,IACR,KAAM,GAAS,EAAE,OAKjB,GAJI,EAAO,MAAQoC,IAClB,GAAO,KAAOA,GACd,EAAO,OAAS,GAEZ,GAAI,EAAE,YAAc,EACxB,MAAOlC,IAKR,IAJA,EAAI,EAAE,cACN,EAAI,EAAO,OAGJ,IAAM,GAAK,EAAI,GACrB,CAAI,CAAE,UAAU,CAAC,GAAKmC,GAAK,GAC1B,IACM,CAAI,CAAE,UAAU,CAAC,IAAM,EAC7B,EAAI,EAEJ,EAAI,EAAI,EAET,IACA,IAUD,MANA,GAAE,UAAY,EAAI,EAAE,cACpB,EAAE,cAAgB,EAClB,EAAE,SAAW,EACb,EAAO,OAAS,EAGZ,GAAK,EACDpC,GAER,GAAI,EAAE,SACN,EAAI,EAAE,UACN,EAAa,CAAC,EACd,EAAE,SAAW,EACb,EAAE,UAAY,EACd,EAAO,KAAO,GACPJ,GACT,EASC,EAAK,iBAAmB,SAAU,EAAG,CACpC,MAAI,CAAC,GAAK,CAAC,EAAE,QAAU,CAAC,EAAE,OAAO,OACzBG,GACD,EAAE,OAAO,OAAO,WAAU,CACnC,CACA,CAIA,aAAmB,CACnB,CAEAqB,GAAQ,UAAY,CACnB,YAAa,SAAU,EAAM,CAC5B,KAAM,GAAO,KACb,SAAK,OAAS,GAAIiB,IACb,GACJ,GAAO9D,IACD,EAAK,OAAO,YAAY,EAAM,CAAI,CACzC,EAED,QAAS,SAAU,EAAG,CACrB,KAAM,GAAO,KACb,MAAK,GAAK,OAEH,EAAK,OAAO,QAAQ,EAAM,CAAC,EAD1BwB,EAER,EAED,WAAY,UAAY,CACvB,KAAM,GAAO,KACb,GAAI,CAAC,EAAK,OACT,MAAOA,IACR,KAAM,GAAM,EAAK,OAAO,WAAW,CAAI,EACvC,SAAK,OAAS,KACP,CACP,EAED,YAAa,UAAY,CACxB,KAAM,GAAO,KACb,MAAK,GAAK,OAEH,EAAK,OAAO,YAAY,CAAI,EAD3BA,EAER,EACD,qBAAsB,SAAU,EAAY,EAAY,CACvD,KAAM,GAAO,KACb,MAAK,GAAK,OAEH,EAAK,OAAO,qBAAqB,EAAM,EAAY,CAAU,EAD5DA,EAER,EACD,UAAW,SAAU,EAAO,CAE3B,MAAO,CADM,KACD,QAAQ,EACpB,EACD,SAAU,SAAU,EAAO,EAAM,CAEhC,MAAO,CADM,KACD,QAAQ,SAAS,EAAO,EAAQ,CAAI,CAChD,CACF,EAIA,YAAoB,EAAS,CAC5B,KAAM,GAAO,KACP,EAAI,GAAIqB,IACR,EAAU,GAAW,EAAQ,UAAY,KAAK,MAAM,EAAQ,UAAY,CAAC,EAAI,IAAM,KACnF,EAAQ5B,GACR,EAAM,GAAI,YAAW,CAAO,EAClC,GAAI,GAAc,GAElB,EAAE,YAAW,EACb,EAAE,SAAW,EAEb,EAAK,OAAS,SAAU,EAAM,EAAY,CACzC,KAAM,GAAU,GAChB,GAAI,GAAK,EAAO,EAAY,EAAG,EAAc,EAAG,EAAa,EAC7D,GAAI,EAAK,SAAW,EAEpB,GAAE,cAAgB,EAClB,EAAE,QAAU,EACZ,EAAE,SAAW,EAAK,OAClB,EAAG,CAQF,GAPA,EAAE,eAAiB,EACnB,EAAE,UAAY,EACT,EAAE,WAAa,GAAO,CAAC,GAC3B,GAAE,cAAgB,EAClB,EAAc,IAEf,EAAM,EAAE,QAAQ,CAAK,EACjB,GAAgB,IAAQS,IAC3B,GAAI,EAAE,WAAa,EAClB,KAAM,IAAI,OAAM,sBAAsB,UAC7B,IAAQL,IAAQ,IAAQC,GAClC,KAAM,IAAI,OAAM,cAAgB,EAAE,GAAG,EACtC,GAAK,IAAe,IAAQA,KAAkB,EAAE,WAAa,EAAK,OACjE,KAAM,IAAI,OAAM,sBAAsB,EACvC,CAAI,CAAE,gBACL,CAAI,EAAE,iBAAmB,EACxB,EAAQ,KAAK,GAAI,YAAW,CAAG,CAAC,EAEhC,EAAQ,KAAK,EAAI,MAAM,EAAG,EAAE,cAAc,CAAC,GAC7C,GAAc,EAAE,eACZ,GAAc,EAAE,cAAgB,GAAK,EAAE,eAAiB,GAC3D,GAAW,EAAE,aAAa,EAC1B,EAAY,EAAE,cAElB,OAAW,EAAE,SAAW,GAAK,EAAE,YAAc,GAC3C,MAAI,GAAQ,OAAS,EACpB,GAAQ,GAAI,YAAW,CAAU,EACjC,EAAQ,QAAQ,SAAU,EAAO,CAChC,EAAM,IAAI,EAAO,CAAW,EAC5B,GAAe,EAAM,MACzB,CAAI,GAED,EAAQ,EAAQ,IAAM,GAAI,YAAW,CAAC,EAEhC,EACT,EACC,EAAK,MAAQ,UAAY,CACxB,EAAE,WAAU,CACd,CACA,CChlEA,KAAM,IAAwB,CAC7B,UAAW,IAAM,KACjB,WAAa,MAAO,YAAa,aAAe,UAAU,qBAAwB,EAClF,uBAAwB,IACxB,cAAe,GACf,cAAe,MAChB,EAEMyC,GAAS,OAAO,OAAO,CAAE,EAAE,EAAqB,EAOtD,aAA4B,CAC3B,MAAOA,GACR,CAEA,YAAmB,EAAe,CAsBjC,GArBI,EAAc,UAAY,QAC7BA,IAAO,QAAU,EAAc,SAE5B,EAAc,YAAc,QAC/BA,IAAO,UAAY,EAAc,WAE9B,EAAc,aAAe,QAChCA,IAAO,WAAa,EAAc,YAE/B,EAAc,yBAA2B,QAC5CA,IAAO,uBAAyB,EAAc,wBAE3C,EAAc,gBAAkB,QACnCA,IAAO,cAAgB,EAAc,eAElC,EAAc,UAAY,QAC7BA,IAAO,QAAU,EAAc,SAE5B,EAAc,UAAY,QAC7BA,IAAO,QAAU,EAAc,SAE5B,EAAc,gBAAkB,OAAW,CAC9C,GAAI,EAAc,cAAc,QAAS,CACxC,GAAI,CAAC,MAAM,QAAQ,EAAc,cAAc,OAAO,EACrD,KAAM,IAAI,OAAM,wCAAwC,EAEzD,CAAKA,EAAO,eACXA,IAAO,cAAgB,IAExBA,GAAO,cAAc,QAAU,EAAc,cAAc,OAC3D,CACD,GAAI,EAAc,cAAc,QAAS,CACxC,GAAI,CAAC,MAAM,QAAQ,EAAc,cAAc,OAAO,EACrD,KAAM,IAAI,OAAM,wCAAwC,EAEzD,CAAKA,EAAO,eACXA,IAAO,cAAgB,IAExBA,GAAO,cAAc,QAAU,EAAc,cAAc,OAC3D,CACD,CACF,CC/DA,KAAMC,IAAQ,CACb,YAAe,CACd,eAAgB,KAChB,QAAW,MACX,WAAY,OACZ,cAAe,UACf,eAAgB,UAChB,OAAU,MACV,IAAO,CAAC,MAAO,MAAM,EACrB,WAAY,KACZ,eAAgB,WAChB,QAAW,MACX,WAAc,CAAC,KAAM,MAAM,EAC3B,aAAgB,MAChB,IAAO,MACP,eAAgB,MAChB,yBAA0B,MAC1B,UAAW,QACX,WAAc,KACd,IAAO,MACP,eAAgB,MAChB,YAAe,CAAC,KAAM,KAAM,IAAI,EAChC,SAAY,MACZ,OAAU,CAAC,MAAO,KAAK,EACvB,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,WAAY,MACZ,gBAAiB,CAAC,MAAO,KAAK,EAC9B,aAAc,MACd,WAAc,CAAC,KAAM,KAAM,MAAO,OAAQ,OAAQ,OAAQ,MAAM,EAChE,IAAO,MACP,UAAW,MACX,UAAW,MACX,IAAO,MACP,KAAQ,CAAC,MAAO,MAAM,EACtB,YAAa,CAAC,QAAS,KAAK,EAC5B,IAAO,CAAC,MAAO,MAAO,KAAK,EAC3B,WAAY,OACZ,IAAO,MACP,8BAA+B,MAC/B,iBAAkB,MAClB,2BAA4B,MAC5B,uBAAwB,MACxB,sBAAuB,MACvB,eAAgB,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAK,EAChE,oBAAqB,MACrB,iBAAkB,MAClB,oBAAqB,CAAC,MAAO,MAAO,KAAK,EACzC,+BAAgC,MAChC,kCAAmC,MACnC,iCAAkC,MAClC,kCAAmC,MACnC,2CAA4C,MAC5C,+BAAgC,MAChC,sCAAuC,MACvC,+CAAgD,MAChD,qCAAsC,MACtC,8CAA+C,MAC/C,8BAA+B,MAC/B,qCAAsC,MACtC,uCAAwC,MACxC,kCAAmC,MACnC,wDAAyD,OACzD,2DAA4D,OAC5D,gEAAiE,OACjE,6DAA8D,OAC9D,4DAA6D,OAC7D,8DAA+D,OAC/D,8DAA+D,OAC/D,WAAY,MACZ,wBAAyB,MACzB,yBAA0B,MAC1B,wBAAyB,MACzB,2BAA4B,MAC5B,wBAAyB,CAAC,MAAO,KAAK,EACtC,0BAA2B,CAAC,MAAO,KAAK,EACxC,iCAAkC,MAClC,mBAAoB,MACpB,4BAA6B,MAC7B,mBAAoB,MACpB,4BAA6B,MAC7B,sBAAuB,MACvB,+BAAgC,MAChC,mBAAoB,MACpB,qBAAsB,MACtB,4BAA6B,MAC7B,8BAA+B,MAC/B,sBAAuB,CAAC,MAAO,MAAM,EACrC,YAAa,CAAC,MAAO,MAAO,MAAO,KAAK,EACxC,gBAAiB,QACjB,eAAgB,OAChB,qBAAsB,QACtB,kBAAmB,MACnB,qBAAsB,MACtB,QAAS,KACT,kBAAmB,KACnB,YAAa,MACb,oBAAqB,MACrB,UAAW,QACX,eAAgB,UAChB,QAAS,CAAC,MAAO,MAAO,MAAO,KAAK,EACpC,QAAS,MACT,QAAS,CAAC,MAAO,KAAK,EACtB,WAAY,MACZ,cAAe,MACf,SAAU,OACV,QAAS,MACT,mBAAoB,CAAC,MAAO,MAAM,EAClC,aAAc,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAK,EAC5E,QAAS,MACT,SAAU,MACV,QAAS,MACT,gBAAiB,QACjB,SAAU,QACV,aAAc,KACd,aAAc,WACd,WAAY,MACZ,wBAAyB,MACzB,SAAU,CAAC,OAAQ,KAAK,EACxB,QAAS,MACT,cAAe,CAAC,QAAS,MAAO,KAAK,EACrC,qBAAsB,OACtB,eAAgB,OAChB,4BAA6B,QAC7B,eAAgB,OAChB,eAAgB,OAChB,QAAS,MACT,SAAU,OACV,oBAAqB,CAAC,MAAO,KAAK,EAClC,WAAY,MACZ,kBAAmB,MACnB,mBAAoB,OACpB,SAAU,MACV,iBAAkB,MAClB,SAAU,CAAC,MAAO,MAAO,MAAO,KAAK,EACrC,eAAgB,CAAC,MAAO,KAAK,EAC7B,UAAW,CAAC,MAAO,KAAK,EACxB,UAAW,QACX,QAAS,MACT,QAAS,MACT,QAAS,MACT,QAAS,MACT,UAAW,CAAC,MAAO,QAAS,QAAS,KAAM,KAAM,OAAQ,OAAO,EAChE,WAAY,MACZ,WAAY,MACZ,kBAAmB,CAAC,MAAO,MAAO,MAAO,KAAK,EAC9C,QAAS,MACT,WAAY,CAAC,KAAM,KAAK,EACxB,wBAAyB,CAAC,MAAO,KAAK,EACtC,QAAS,MACT,WAAY,IACZ,mBAAoB,MACpB,sBAAuB,MACvB,gBAAiB,CAAC,MAAO,KAAK,EAC9B,SAAU,CAAC,MAAO,MAAO,KAAK,EAC9B,oBAAqB,MACrB,2BAA4B,MAC5B,SAAU,KACV,OAAQ,KACR,SAAU,OACV,oBAAqB,CAAC,MAAO,MAAM,EACnC,gBAAiB,MACjB,YAAa,MACb,YAAa,UACb,WAAY,SACZ,QAAS,MACT,QAAS,MACT,WAAY,KACZ,WAAY,KACZ,YAAa,CAAC,UAAW,MAAM,EAC/B,UAAW,CAAC,IAAK,IAAK,MAAO,MAAO,KAAK,EACzC,UAAW,CAAC,IAAK,KAAM,MAAM,EAC7B,cAAe,MACf,aAAc,KACd,aAAc,KACd,UAAW,QACX,gBAAiB,MACjB,UAAW,KACX,iBAAkB,CAAC,MAAO,MAAO,KAAK,EACtC,QAAS,MACT,SAAU,MACV,cAAe,MACf,WAAc,KACd,cAAe,UACf,YAAa,QACb,kBAAmB,QACnB,iBAAkB,QAClB,cAAe,QACf,cAAe,QACf,aAAc,QACd,cAAe,MACf,WAAY,OACZ,WAAY,QACZ,WAAY,OACZ,WAAY,OACZ,IAAO,MACP,aAAc,MACd,UAAW,MACX,UAAW,MACX,IAAO,MACP,YAAe,MACf,YAAa,CAAC,MAAO,OAAO,EAC5B,MAAS,QACT,KAAQ,OACR,cAAe,SACf,WAAY,UACZ,WAAY,OACZ,KAAQ,MACR,cAAe,OACf,aAAc,SACd,KAAQ,OACR,yBAA0B,QAC1B,eAAgB,WAChB,gBAAiB,QACjB,WAAY,OACZ,WAAY,OACZ,KAAQ,CAAC,MAAO,MAAM,EACtB,IAAO,OACP,oBAAqB,MACrB,YAAa,QACb,QAAW,CAAC,SAAU,UAAW,SAAU,QAAQ,EACnD,KAAQ,OACR,sBAAuB,MACvB,gBAAiB,MACjB,OAAU,MACV,aAAc,CAAC,MAAO,KAAK,EAC3B,kBAAmB,MACnB,MAAS,KACT,iBAAkB,KAClB,WAAY,MACZ,eAAgB,UAChB,QAAW,MACX,UAAW,MACX,UAAW,MACX,WAAY,UACZ,cAAe,MACf,0BAA2B,MAC3B,qBAAsB,KACtB,0BAA2B,MAC3B,mBAAoB,KACpB,oBAAqB,MACrB,gBAAiB,MACjB,WAAY,MACZ,UAAW,MACX,WAAY,OACZ,kBAAmB,MACnB,mBAAoB,MACpB,kBAAmB,MACnB,mBAAoB,MACpB,IAAO,MACP,yBAA0B,SAC1B,8BAA+B,SAC/B,UAAW,MACX,eAAgB,KAChB,qBAAsB,MACtB,KAAQ,OACR,WAAY,QACZ,UAAW,MACX,WAAY,OACZ,WAAY,OACZ,UAAW,CAAC,MAAO,WAAW,EAC9B,aAAc,MACd,mBAAoB,MACpB,wBAAyB,MACzB,wBAAyB,MACzB,sBAAuB,MACvB,iBAAkB,OAClB,uBAAwB,MACxB,wBAAyB,MACzB,wBAAyB,MACzB,eAAgB,MAChB,cAAe,CAAC,MAAO,OAAO,EAC9B,kDAAmD,MACnD,8BAA+B,OAC/B,gBAAiB,CAAC,MAAO,MAAM,EAC/B,oBAAqB,MACrB,iBAAkB,OAClB,kBAAmB,QACnB,4BAA6B,MAC7B,4BAA6B,MAC7B,mBAAoB,MACpB,2BAA4B,MAC5B,gBAAiB,MACjB,6CAA8C,MAC9C,0CAA2C,MAC3C,2BAA4B,MAC5B,0BAA2B,OAC3B,oBAAqB,OACrB,yBAA0B,MAC1B,4BAA6B,OAC7B,iBAAkB,MAClB,wBAAyB,MACzB,UAAW,MACX,sBAAuB,MACvB,mBAAoB,QACpB,2BAA4B,MAC5B,eAAgB,MAChB,kBAAmB,MACnB,oBAAqB,CAAC,MAAO,MAAO,MAAO,MAAO,KAAK,EACvD,mCAAoC,SACpC,uCAAwC,SACxC,kBAAmB,MACnB,mBAAoB,UACpB,kBAAmB,MACnB,oBAAqB,OACrB,6BAA8B,OAC9B,4BAA6B,OAC7B,6BAA8B,OAC9B,6BAA8B,OAC9B,4BAA6B,MAC7B,gBAAiB,MACjB,eAAgB,MAChB,eAAgB,MAChB,iBAAkB,QAClB,WAAY,OACZ,sBAAuB,MACvB,gBAAiB,CAAC,MAAO,OAAQ,MAAO,MAAM,EAC9C,oBAAqB,CAAC,MAAO,MAAM,EACnC,uBAAwB,CAAC,MAAO,MAAM,EACtC,eAAgB,CAAC,MAAO,MAAM,EAC9B,6BAA8B,YAC9B,UAAW,MACX,gBAAiB,MACjB,cAAe,MACf,mBAAoB,OACpB,kBAAmB,OACnB,cAAe,MACf,kBAAmB,MACnB,cAAe,MACf,mBAAoB,MACpB,cAAe,MACf,gBAAiB,MACjB,gBAAiB,MACjB,uBAAwB,MACxB,iBAAkB,MAClB,gBAAiB,MACjB,mBAAoB,CAAC,MAAO,KAAK,EACjC,kBAAmB,MACnB,oBAAqB,MACrB,UAAW,MACX,iBAAkB,QAClB,gBAAiB,CAAC,OAAQ,UAAU,EACpC,iBAAkB,MAClB,oBAAqB,MACrB,iBAAkB,CAAC,KAAM,QAAS,QAAS,MAAM,EACjD,kBAAmB,MACnB,kBAAmB,MACnB,oBAAqB,MACrB,oBAAqB,MACrB,qBAAsB,MACtB,qBAAsB,MACtB,sBAAuB,MACvB,uBAAwB,MACxB,oBAAqB,MACrB,0BAA2B,MAC3B,iCAAkC,MAClC,iBAAkB,MAClB,uBAAwB,MACxB,oBAAqB,MACrB,oBAAqB,MACrB,wBAAyB,CAAC,MAAO,KAAK,EACtC,cAAe,MACf,cAAe,MACf,eAAgB,MAChB,UAAW,MACX,aAAc,CAAC,MAAO,KAAK,EAC3B,qBAAsB,MACtB,kBAAmB,MACnB,8BAA+B,MAC/B,sBAAuB,MACvB,0BAA2B,MAC3B,2BAA4B,MAC5B,mBAAoB,MACpB,cAAe,MACf,iCAAkC,MAClC,WAAY,OACZ,wBAAyB,MACzB,cAAe,OACf,cAAe,OACf,aAAc,MACd,cAAe,MACf,aAAc,MACd,eAAgB,QAChB,2BAA4B,YAC5B,kBAAmB,MACnB,iBAAkB,CAAC,MAAO,UAAW,UAAU,EAC/C,4BAA6B,MAC7B,2BAA4B,KAC5B,iBAAkB,CAAC,MAAO,KAAK,EAC/B,eAAgB,MAChB,sBAAuB,MACvB,sBAAuB,MACvB,iBAAkB,MAClB,uBAAwB,CAAC,MAAO,KAAK,EACrC,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,4BAA6B,YAC7B,8BAA+B,MAC/B,aAAc,MACd,eAAgB,MAChB,UAAW,MACX,4BAA6B,MAC7B,WAAY,OACZ,yBAA0B,OAC1B,cAAe,CAAC,MAAO,KAAK,EAC5B,iBAAkB,SAClB,iBAAkB,OAClB,mBAAoB,MACpB,gBAAiB,MACjB,kBAAmB,MACnB,qBAAsB,CAAC,MAAO,KAAK,EACnC,kBAAmB,MACnB,gBAAiB,CAAC,MAAO,KAAK,EAC9B,iBAAkB,OAClB,mBAAoB,MACpB,YAAa,CAAC,MAAO,KAAK,EAC1B,WAAY,CAAC,MAAO,MAAO,MAAO,KAAK,EACvC,uBAAwB,MACxB,kBAAmB,SACnB,yCAA0C,MAC1C,8CAA+C,MAC/C,kBAAmB,MACnB,qBAAsB,MACtB,sBAAuB,MACvB,kBAAmB,MACnB,sBAAuB,MACvB,sBAAuB,MACvB,oBAAqB,MACrB,uBAAwB,UACxB,UAAW,MACX,kBAAmB,MACnB,yBAA0B,QAC1B,WAAY,MACZ,WAAY,MACZ,qBAAsB,MACtB,qBAAsB,MACtB,UAAW,MACX,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,yBAA0B,MAC1B,yBAA0B,MAC1B,kBAAmB,MACnB,wBAAyB,MACzB,qCAAsC,OACtC,4CAA6C,OAC7C,qCAAsC,OACtC,wCAAyC,OACzC,oBAAqB,MACrB,kBAAmB,MACnB,aAAc,MACd,aAAc,MACd,qBAAsB,OACtB,0CAA2C,OAC3C,iDAAkD,OAClD,0CAA2C,OAC3C,8CAA+C,OAC/C,6CAA8C,OAC9C,iBAAkB,CAAC,MAAO,KAAK,EAC/B,uCAAwC,OACxC,uCAAwC,OACxC,eAAgB,CAAC,MAAO,MAAO,MAAO,KAAK,EAC3C,aAAc,MACd,qBAAsB,MACtB,WAAY,OACZ,eAAgB,MAChB,kBAAmB,OACnB,YAAa,SACb,wBAAyB,MACzB,WAAY,CAAC,MAAO,MAAM,EAC1B,yBAA0B,MAC1B,sBAAuB,MACvB,mBAAoB,MACpB,wBAAyB,QACzB,mCAAoC,SACpC,yBAA0B,OAC1B,0BAA2B,OAC3B,mBAAoB,MACpB,mBAAoB,MACpB,mBAAoB,MACpB,wCAAyC,MACzC,0CAA2C,OAC3C,wCAAyC,MACzC,iBAAkB,KAClB,kBAAmB,MACnB,8BAA+B,MAC/B,yDAA0D,OAC1D,6BAA8B,MAC9B,cAAe,KACf,qBAAsB,MACtB,WAAY,CAAC,MAAO,MAAO,MAAM,EACjC,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,aAAc,OACd,iBAAkB,KAClB,kBAAmB,MACnB,oBAAqB,MACrB,yBAA0B,MAC1B,uBAAwB,MACxB,4BAA6B,MAC7B,gBAAiB,OACjB,wBAAyB,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,KAAK,EAClE,kBAAmB,MACnB,yBAA0B,MAC1B,6BAA8B,WAC9B,qBAAsB,aACtB,mBAAoB,KACpB,uBAAwB,OACxB,yBAA0B,SAC1B,2BAA4B,KAC5B,cAAe,MACf,WAAY,OACZ,WAAY,OACZ,WAAY,OACZ,8BAA+B,MAC/B,kCAAmC,MACnC,iCAAkC,MAClC,6BAA8B,MAC9B,yBAA0B,CAAC,MAAO,MAAM,EACxC,oBAAqB,UACrB,sBAAuB,CAAC,OAAQ,MAAM,EACtC,mBAAoB,MACpB,mBAAoB,MACpB,wBAAyB,QACzB,0BAA2B,KAC3B,mBAAoB,CAAC,MAAO,MAAM,EAClC,UAAW,MACX,iBAAkB,MAClB,sBAAuB,MACvB,oBAAqB,MACrB,gCAAiC,MACjC,mBAAoB,CAAC,OAAQ,MAAO,KAAK,EACzC,qBAAsB,MACtB,eAAgB,MAChB,mBAAoB,MACpB,cAAe,MACf,WAAY,CAAC,MAAO,MAAM,EAC1B,gBAAiB,MACjB,aAAc,MACd,YAAa,WACb,eAAgB,OAChB,UAAW,MACX,gBAAiB,MACjB,UAAW,MACX,eAAgB,MAChB,qBAAsB,MACtB,UAAW,MACX,aAAc,MACd,WAAY,MACZ,WAAY,OACZ,oBAAqB,MACrB,uBAAwB,MACxB,sBAAuB,MACvB,6BAA8B,MAC9B,wCAAyC,SACzC,wBAAyB,MACzB,yBAA0B,MAC1B,8BAA+B,MAC/B,UAAW,CAAC,MAAO,MAAM,EACzB,qBAAsB,MACtB,eAAgB,OAChB,OAAU,MACV,OAAU,MACV,WAAY,OACZ,eAAgB,WAChB,mBAAoB,MACpB,mBAAoB,CAAC,MAAO,MAAO,MAAO,KAAK,EAC/C,mBAAoB,MACpB,mBAAoB,MACpB,UAAW,CAAC,MAAO,OAAO,EAC1B,SAAU,KACV,UAAW,CAAC,MAAO,KAAK,EACxB,mBAAoB,MACpB,SAAU,OACV,eAAgB,MAChB,mBAAoB,MACpB,eAAgB,MAChB,eAAgB,MAChB,oBAAqB,MACrB,QAAS,MACT,aAAc,MACd,qBAAsB,MACtB,mBAAoB,MACpB,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,CAAC,MAAO,KAAK,EAC3B,eAAgB,CAAC,MAAO,MAAO,MAAO,KAAK,EAC3C,cAAe,OACf,YAAa,MACb,mBAAoB,MACpB,UAAW,MACX,eAAgB,SAChB,yBAA0B,UAC1B,mBAAoB,CAAC,MAAO,KAAK,EACjC,QAAS,MACT,qBAAsB,CAAC,MAAO,MAAM,EACpC,mBAAoB,cACpB,gBAAiB,MACjB,YAAa,OACb,aAAc,MACd,eAAgB,MAChB,WAAY,MACZ,eAAgB,CAAC,MAAO,MAAO,MAAO,MAAO,KAAK,EAClD,gBAAiB,CAAC,MAAO,MAAO,KAAK,EACrC,eAAgB,CAAC,MAAO,MAAO,MAAO,KAAK,EAC3C,YAAa,MACb,gBAAiB,MACjB,eAAgB,MAChB,eAAgB,MAChB,YAAa,MACb,QAAS,MACT,WAAY,CAAC,MAAO,KAAK,EACzB,uBAAwB,CAAC,MAAO,KAAK,EACrC,0BAA2B,MAC3B,oBAAqB,MACrB,QAAS,MACT,aAAc,OACd,WAAY,MACZ,eAAgB,KAChB,SAAU,MACV,QAAS,MACT,YAAa,MACb,SAAU,MACV,cAAe,MACf,OAAQ,KACR,aAAc,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAI,EAC7D,WAAY,OACZ,gBAAiB,MACjB,WAAY,OACZ,UAAW,MACX,UAAW,MACX,YAAa,MACb,WAAY,OACZ,SAAU,CAAC,OAAQ,QAAS,OAAQ,KAAK,EACzC,KAAQ,OACR,UAAW,MACX,MAAS,MACT,SAAY,MACZ,2BAA4B,MAC5B,UAAa,MACb,iBAAkB,MAClB,sBAAuB,MACvB,aAAc,IACd,eAAgB,MAChB,SAAU,KACV,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,KAAK,EAC/C,eAAgB,CAAC,MAAO,KAAK,EAC7B,gBAAiB,KACjB,EACD,MAAS,CACR,IAAO,MACP,SAAU,MACV,QAAW,MACX,MAAS,CAAC,KAAM,KAAK,EACrB,KAAQ,OACR,KAAQ,CAAC,MAAO,OAAQ,MAAO,KAAK,EACpC,KAAQ,CAAC,OAAQ,QAAS,MAAO,MAAO,MAAO,OAAQ,MAAO,KAAK,EACnE,QAAW,MACX,IAAO,CAAC,MAAO,MAAO,KAAK,EAC3B,UAAW,MACX,SAAU,CAAC,MAAO,OAAQ,MAAM,EAChC,QAAS,MACT,WAAY,MACZ,WAAY,MACZ,iBAAkB,MAClB,cAAe,KACf,QAAS,MACT,QAAS,MACT,MAAS,MACT,IAAO,OACP,IAAO,MACP,KAAQ,MACR,iBAAkB,CAAC,MAAO,MAAM,EAChC,oBAAqB,MACrB,UAAW,MACX,UAAW,MACX,aAAc,QACd,mBAAoB,MACpB,6BAA8B,MAC9B,sBAAuB,YACvB,sBAAuB,YACvB,sBAAuB,YACvB,UAAW,MACX,KAAQ,OACR,QAAS,MACT,QAAS,MACT,aAAc,MACd,wBAAyB,MACzB,GAAM,KACN,IAAO,CAAC,MAAO,KAAK,CACpB,EACD,SAAY,CACX,YAAa,MACb,UAAW,CAAC,MAAO,OAAO,EAC1B,cAAe,MACf,kBAAmB,CAAC,OAAQ,SAAU,MAAM,EAC5C,QAAS,MACT,WAAY,MACZ,QAAS,MACT,SAAU,OACV,QAAS,MACT,YAAa,MACb,cAAe,MACf,SAAU,CAAC,OAAQ,KAAK,EACxB,QAAS,MACT,QAAS,CAAC,MAAO,KAAK,EACtB,uBAAwB,CAAC,MAAO,MAAM,EACtC,iBAAkB,CAAC,MAAO,MAAO,OAAO,EACxC,wBAAyB,CAAC,MAAO,MAAM,EACvC,kBAAmB,MACnB,mBAAoB,CAAC,MAAO,MAAO,KAAK,EACxC,iBAAkB,MAClB,kBAAmB,MACnB,YAAa,MACb,QAAS,MACT,YAAa,CAAC,OAAQ,KAAK,EAC3B,aAAc,CAAC,MAAO,IAAI,EAC1B,aAAc,MACd,gBAAiB,MACjB,qBAAsB,CAAC,MAAO,MAAM,EACpC,gBAAiB,MACjB,eAAgB,KAChB,gBAAiB,MACjB,eAAgB,CAAC,KAAM,KAAK,EAC5B,YAAa,MACb,UAAW,OACX,SAAU,OACV,cAAe,IACf,gBAAiB,MACjB,gBAAiB,CAAC,MAAO,SAAU,MAAO,KAAK,EAC/C,cAAe,MACf,cAAe,MACf,oBAAqB,CAAC,MAAO,KAAK,EAClC,qBAAsB,CAAC,MAAO,KAAK,EACnC,QAAS,CAAC,MAAO,KAAK,EACtB,WAAY,MACZ,cAAe,KACf,mBAAoB,MACpB,QAAS,MACT,SAAU,OACV,QAAS,KACT,EACD,MAAS,CACR,IAAO,MACP,IAAO,MACP,KAAQ,CAAC,OAAQ,MAAO,KAAK,EAC7B,IAAO,MACP,IAAO,MACP,UAAW,CAAC,MAAO,MAAM,EACzB,KAAQ,CAAC,OAAQ,KAAK,EACtB,WAAY,CAAC,OAAQ,KAAK,EAC1B,eAAgB,OAChB,cAAe,MACf,cAAe,MACf,eAAgB,MAChB,cAAe,MACf,qBAAsB,MACtB,sBAAuB,MACvB,oBAAqB,MACrB,cAAe,MACf,SAAU,MACV,OAAQ,MACR,QAAS,MACT,cAAe,MACf,gBAAiB,MACjB,cAAe,MACf,oBAAqB,MACrB,oBAAqB,MACrB,qBAAsB,MACtB,oBAAqB,MACrB,QAAS,MACT,YAAa,MACb,YAAa,MACb,gBAAiB,MACjB,IAAO,MACP,IAAO,MACP,MAAS,KACT,IAAO,MACP,WAAY,OACZ,IAAO,MACP,mBAAoB,CAAC,MAAO,OAAQ,MAAO,MAAM,EACjD,UAAW,MACX,UAAW,MACX,mBAAoB,MACpB,UAAW,MACX,UAAW,MACX,2BAA4B,MAC5B,2BAA4B,MAC5B,cAAe,MACf,eAAgB,MAChB,cAAe,MACf,WAAY,MACZ,KAAQ,OACR,QAAS,MACT,QAAS,MACT,aAAc,CAAC,KAAM,MAAO,MAAO,MAAO,KAAK,EAC/C,SAAU,CAAC,MAAO,KAAK,EACvB,QAAS,MACT,UAAW,MACX,MAAS,MACT,EACD,QAAW,CACV,OAAU,CAAC,MAAO,OAAQ,MAAO,QAAS,KAAK,CAC/C,EACD,MAAS,CACR,KAAQ,CAAC,MAAO,MAAM,EACtB,KAAQ,CAAC,MAAO,OAAQ,MAAM,EAC9B,KAAQ,CAAC,MAAO,MAAM,EACtB,WAAY,CAAC,OAAQ,OAAO,EAC5B,UAAW,CAAC,MAAO,MAAM,EACzB,aAAc,CAAC,OAAQ,OAAO,EAC9B,kBAAmB,MACnB,UAAW,MACX,UAAW,MACX,UAAW,MACX,UAAW,MACX,UAAW,KACX,EACD,KAAQ,CACP,iBAAkB,CAAC,WAAY,UAAU,EACzC,SAAY,CAAC,MAAO,MAAO,KAAK,EAChC,IAAO,MACP,IAAO,MACP,KAAQ,MACR,KAAQ,CAAC,OAAQ,MAAO,QAAS,KAAK,EACtC,KAAQ,MACR,OAAU,MACV,MAAS,CAAC,MAAO,OAAQ,MAAO,OAAQ,MAAO,OAAQ,MAAO,KAAM,KAAK,EACzE,SAAY,MACZ,UAAa,CAAC,MAAO,KAAK,EAC1B,QAAW,CAAC,KAAM,IAAI,EACtB,uBAAwB,MACxB,8BAA+B,MAC/B,cAAe,MACf,oBAAqB,OACrB,WAAY,MACZ,QAAS,MACT,WAAY,CAAC,MAAO,MAAO,MAAO,IAAI,EACtC,WAAY,CAAC,MAAO,MAAO,MAAO,IAAI,EACtC,cAAe,MACf,SAAU,IACV,SAAU,CAAC,OAAQ,OAAO,EAC1B,YAAa,KACb,SAAU,OACV,qBAAsB,MACtB,QAAS,MACT,WAAY,CAAC,IAAK,KAAK,EACvB,YAAa,MACb,SAAU,CAAC,KAAM,IAAI,EACrB,WAAY,KACZ,UAAW,QACX,WAAY,MACZ,QAAS,CAAC,MAAO,IAAI,EACrB,QAAS,CAAC,MAAO,MAAO,MAAO,KAAK,EACpC,cAAe,MACf,UAAW,MACX,GAAM,KACN,gBAAiB,MACjB,KAAQ,CAAC,OAAQ,KAAK,EACtB,MAAS,CAAC,IAAK,KAAM,OAAQ,MAAO,KAAM,IAAI,EAC9C,OAAU,MACV,WAAY,CAAC,MAAO,OAAQ,MAAM,EAClC,MAAS,QACT,WAAY,OACZ,iBAAkB,QAClB,iBAAkB,QAClB,iBAAkB,QAClB,mBAAoB,MACpB,UAAW,MACX,mBAAoB,MACpB,eAAgB,KAChB,gBAAiB,OACjB,gBAAiB,OACjB,QAAS,CAAC,IAAK,KAAK,EACpB,MAAO,CAAC,IAAK,KAAM,MAAO,MAAO,IAAK,KAAM,KAAK,EACjD,YAAa,CAAC,IAAK,MAAO,MAAO,KAAK,EACtC,SAAU,OACV,QAAS,MACT,QAAS,MACT,aAAc,KACd,YAAe,KACf,EACD,MAAS,CACR,KAAQ,QACR,OAAQ,MACR,QAAW,MACX,GAAM,KACN,GAAM,CAAC,MAAO,IAAI,EAClB,IAAO,MACP,GAAM,KACN,KAAQ,CAAC,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAM,EACjE,IAAO,CAAC,MAAO,OAAQ,MAAM,EAC7B,UAAa,CAAC,KAAM,KAAK,EACzB,IAAO,MACP,cAAe,CAAC,MAAO,KAAK,EAC5B,QAAS,MACT,WAAY,CAAC,MAAO,KAAK,EACzB,QAAS,MACT,WAAY,CAAC,MAAO,MAAO,KAAK,EAChC,UAAW,KACX,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,YAAa,MACb,cAAe,QACf,aAAc,CAAC,MAAO,MAAO,OAAQ,KAAK,EAC1C,QAAS,MACT,KAAQ,OACR,KAAQ,OACR,KAAQ,OACR,KAAQ,OACR,IAAO,CAAC,MAAO,MAAM,EACrB,IAAO,CAAC,MAAO,MAAM,EACrB,cAAe,CAAC,MAAO,MAAM,EAC7B,kBAAmB,CAAC,MAAO,MAAM,EACjC,cAAe,CAAC,MAAO,MAAM,EAC7B,cAAe,CAAC,MAAO,MAAM,EAC7B,iBAAkB,CAAC,MAAO,MAAM,EAChC,eAAgB,MAChB,UAAW,MACX,6BAA8B,MAC9B,eAAgB,CAAC,MAAO,MAAM,EAC9B,WAAY,MACZ,KAAQ,OACR,QAAS,MACT,QAAS,MACT,WAAY,MACZ,QAAS,KACT,EACD,eAAgB,CACf,aAAc,KACd,EACD,UAAW,CACV,SAAU,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,MAAO,KAAK,CAC3D,CACF,EAEkB,CAAC,IAAM,CACxB,KAAM,GAAY,GAClB,OAAS,KAAQA,IAEhB,GAAIA,GAAM,eAAe,CAAI,GAC5B,OAAS,KAAWA,IAAM,GAEzB,GAAIA,GAAM,GAAM,eAAe,CAAO,EAAG,CACxC,KAAM,GAAQA,GAAM,GAAM,GAC1B,GAAI,MAAO,IAAS,SACnB,EAAU,GAAS,EAAO,IAAM,MAEhC,QAAS,GAAgB,EAAG,EAAgB,EAAM,OAAQ,IACzD,EAAU,EAAM,IAAkB,EAAO,IAAM,CAGjD,EAIJ,MAAO,EACR,GAAC,ECv8BD,KAAM,IAAQ,GACd,OAAS,GAAI,EAAG,EAAI,IAAK,IAAK,CAC7B,GAAI,GAAI,EACR,OAAS,GAAI,EAAG,EAAI,EAAG,IACtB,CAAI,CAAI,EACP,EAAK,IAAM,EAAK,WAEhB,EAAI,IAAM,EAGZ,GAAM,GAAK,CACZ,CAEA,MAAM,EAAM,CAEX,YAAY,EAAK,CAChB,KAAK,IAAM,GAAO,EAClB,CAED,OAAO,EAAM,CACZ,GAAI,GAAM,KAAK,IAAM,EACrB,OAAS,GAAS,EAAG,EAAS,EAAK,OAAS,EAAG,EAAS,EAAQ,IAC/D,EAAO,IAAQ,EAAK,GAAO,GAAM,EAAK,IAAW,KAElD,KAAK,IAAM,CACX,CAED,KAAM,CACL,MAAO,CAAC,KAAK,GACb,CACF,CC1BA,YAAoB,EAAO,CAC1B,GAAI,MAAO,cAAe,YAAa,CACtC,EAAQ,SAAS,mBAAmB,CAAK,CAAC,EAC1C,KAAM,GAAS,GAAI,YAAW,EAAM,MAAM,EAC1C,OAAS,GAAI,EAAG,EAAI,EAAO,OAAQ,IAClC,EAAO,GAAK,EAAM,WAAW,CAAC,EAE/B,MAAO,EACT,KACE,OAAO,IAAI,aAAW,EAAG,OAAO,CAAK,CAEvC,CCEA,KAAM,IAAW,CAOhB,OAAO,EAAI,EAAI,CACd,GAAI,EAAG,SAAW,GAAK,EAAG,SAAW,EACpC,MAAO,GAAG,OAAO,CAAE,EAGpB,KAAM,GAAO,EAAG,EAAG,OAAS,GAAI,EAAQ,GAAS,WAAW,CAAI,EAChE,MAAI,KAAU,GACN,EAAG,OAAO,CAAE,EAEZ,GAAS,YAAY,EAAI,EAAO,EAAO,EAAG,EAAG,MAAM,EAAG,EAAG,OAAS,CAAC,CAAC,CAE5E,EAOD,UAAU,EAAG,CACZ,KAAM,GAAI,EAAE,OACZ,GAAI,IAAM,EACT,MAAO,GAER,KAAM,GAAI,EAAE,EAAI,GAChB,MAAQ,GAAI,GAAK,GAAK,GAAS,WAAW,CAAC,CAC3C,EAQD,MAAM,EAAG,EAAK,CACb,GAAI,EAAE,OAAS,GAAK,EACnB,MAAO,GAER,EAAI,EAAE,MAAM,EAAG,KAAK,KAAK,EAAM,EAAE,CAAC,EAClC,KAAM,GAAI,EAAE,OACZ,SAAM,EAAM,GACR,EAAI,GAAK,GACZ,GAAE,EAAI,GAAK,GAAS,QAAQ,EAAK,EAAE,EAAI,GAAK,YAAe,EAAM,EAAI,CAAC,GAEhE,CACP,EASD,QAAQ,EAAK,EAAG,EAAM,CACrB,MAAI,KAAQ,GACJ,EAEA,GAAO,EAAI,EAAI,GAAM,GAAK,GAAQ,EAAM,aAChD,EAOD,WAAW,EAAG,CACb,MAAO,MAAK,MAAM,EAAI,aAAa,GAAK,EACxC,EASD,YAAY,EAAG,EAAO,EAAO,EAAK,CAKjC,IAJI,IAAQ,QACX,GAAM,IAGA,GAAS,GAAI,GAAS,GAC5B,EAAI,KAAK,CAAK,EACd,EAAQ,EAET,GAAI,IAAU,EACb,MAAO,GAAI,OAAO,CAAC,EAGpB,OAAS,GAAI,EAAG,EAAI,EAAE,OAAQ,IAC7B,EAAI,KAAK,EAAQ,EAAE,KAAO,CAAK,EAC/B,EAAQ,EAAE,IAAO,GAAK,EAEvB,KAAM,GAAQ,EAAE,OAAS,EAAE,EAAE,OAAS,GAAK,EACrC,EAAS,GAAS,WAAW,CAAK,EACxC,SAAI,KAAK,GAAS,QAAQ,EAAQ,EAAS,GAAK,EAAQ,EAAS,GAAM,EAAQ,EAAI,IAAK,EAAE,CAAC,CAAC,EACrF,CACP,CACF,EAaM,GAAQ,CACb,MAAO,CAEN,SAAS,EAAK,CAEb,KAAM,GAAa,CADR,EAAS,UAAU,CAAG,EACT,EAClB,EAAM,GAAI,YAAW,CAAU,EACrC,GAAI,GACJ,OAAS,GAAI,EAAG,EAAI,EAAY,IAC/B,CAAK,EAAI,KAAO,GACf,GAAM,EAAI,EAAI,IAEf,EAAI,GAAK,IAAQ,GACjB,IAAQ,EAET,MAAO,EACP,EAED,OAAO,EAAO,CACb,KAAM,GAAM,GACZ,GAAI,GACA,EAAM,EACV,IAAK,EAAI,EAAG,EAAI,EAAM,OAAQ,IAC7B,EAAM,GAAO,EAAI,EAAM,GAClB,GAAI,KAAO,GACf,GAAI,KAAK,CAAG,EACZ,EAAM,GAGR,MAAI,GAAI,GACP,EAAI,KAAK,GAAS,QAAQ,EAAK,GAAI,GAAI,CAAG,CAAC,EAErC,CACP,CACD,CACF,EAEM,GAAO,GAMb,GAAK,KAAO,SAAU,EAAM,CAC3B,CAAI,CACH,MAAK,GAAK,EAAK,GAAG,MAAM,CAAC,EACzB,KAAK,QAAU,EAAK,QAAQ,MAAM,CAAC,EACnC,KAAK,QAAU,EAAK,SAEpB,KAAK,MAAK,CAEZ,EAEA,GAAK,KAAK,UAAY,CAKrB,UAAW,IAMX,MAAO,UAAY,CAClB,KAAM,GAAO,KACb,SAAK,GAAK,KAAK,MAAM,MAAM,CAAC,EAC5B,EAAK,QAAU,GACf,EAAK,QAAU,EACR,CACP,EAOD,OAAQ,SAAU,EAAM,CACvB,KAAM,GAAO,KACb,CAAI,KAAO,IAAS,UACnB,GAAO,GAAM,WAAW,OAAO,CAAI,GAEpC,KAAM,GAAI,EAAK,QAAU,GAAS,OAAO,EAAK,QAAS,CAAI,EACrD,EAAK,EAAK,QACV,EAAK,EAAK,QAAU,EAAK,GAAS,UAAU,CAAI,EACtD,GAAI,EAAK,iBACR,KAAM,IAAI,OAAM,qCAAqC,EAEtD,KAAM,GAAI,GAAI,aAAY,CAAC,EAC3B,GAAI,GAAI,EACR,OAAS,GAAI,EAAK,UAAY,EAAO,GAAK,UAAY,EAAO,EAAK,UAAY,GAAK,GAAK,EACvF,GAAK,EAAK,UACV,EAAK,OAAO,EAAE,SAAS,GAAK,EAAG,GAAM,GAAI,EAAE,CAAC,EAC5C,GAAK,EAEN,SAAE,OAAO,EAAG,GAAK,CAAC,EACX,CACP,EAMD,SAAU,UAAY,CACrB,KAAM,GAAO,KACb,GAAI,GAAI,EAAK,QACb,KAAM,GAAI,EAAK,GAGf,EAAI,GAAS,OAAO,EAAG,CAAC,GAAS,QAAQ,EAAG,CAAC,CAAC,CAAC,EAE/C,OAAS,GAAI,EAAE,OAAS,EAAG,EAAI,GAAI,IAClC,EAAE,KAAK,CAAC,EAOT,IAHA,EAAE,KAAK,KAAK,MAAM,EAAK,QAAU,UAAW,CAAC,EAC7C,EAAE,KAAK,EAAK,QAAU,CAAC,EAEhB,EAAE,QACR,EAAK,OAAO,EAAE,OAAO,EAAG,EAAE,CAAC,EAG5B,SAAK,MAAK,EACH,CACP,EAMD,MAAO,CAAC,WAAY,WAAY,WAAY,UAAY,UAAU,EAMlE,KAAM,CAAC,WAAY,WAAY,WAAY,UAAU,EAMrD,GAAI,SAAU,EAAG,EAAG,EAAG,EAAG,CACzB,GAAI,GAAK,GACR,MAAQ,GAAI,EAAM,CAAC,EAAI,EACjB,GAAI,GAAK,GACf,MAAO,GAAI,EAAI,EACT,GAAI,GAAK,GACf,MAAQ,GAAI,EAAM,EAAI,EAAM,EAAI,EAC1B,GAAI,GAAK,GACf,MAAO,GAAI,EAAI,CAEhB,EAMD,GAAI,SAAU,EAAG,EAAG,CACnB,MAAQ,IAAK,EAAM,IAAM,GAAK,CAC9B,EAOD,OAAQ,SAAU,EAAO,CACxB,KAAM,GAAO,KACP,EAAI,EAAK,GAMT,EAAI,MAAM,EAAE,EAClB,OAAS,GAAI,EAAG,EAAI,GAAI,IACvB,EAAE,GAAK,EAAM,GAGd,GAAI,GAAI,EAAE,GACN,EAAI,EAAE,GACN,EAAI,EAAE,GACN,EAAI,EAAE,GACN,EAAI,EAAE,GAEV,OAAS,GAAI,EAAG,GAAK,GAAI,IAAK,CAC7B,CAAI,EAAK,IACR,GAAE,GAAK,EAAK,GAAG,EAAG,EAAE,EAAI,GAAK,EAAE,EAAI,GAAK,EAAE,EAAI,IAAM,EAAE,EAAI,GAAG,GAE9D,KAAM,GAAO,EAAK,GAAG,EAAG,CAAC,EAAI,EAAK,GAAG,EAAG,EAAG,EAAG,CAAC,EAAI,EAAI,EAAE,GACxD,EAAK,KAAK,KAAK,MAAM,EAAI,EAAE,GAAM,EAClC,EAAI,EACJ,EAAI,EACJ,EAAI,EAAK,GAAG,GAAI,CAAC,EACjB,EAAI,EACJ,EAAI,CACJ,CAED,EAAE,GAAM,EAAE,GAAK,EAAK,EACpB,EAAE,GAAM,EAAE,GAAK,EAAK,EACpB,EAAE,GAAM,EAAE,GAAK,EAAK,EACpB,EAAE,GAAM,EAAE,GAAK,EAAK,EACpB,EAAE,GAAM,EAAE,GAAK,EAAK,CACpB,CACF,EAmBA,KAAM,IAAS,GASf,GAAO,IAAM,KAAM,CAClB,YAAY,EAAK,CAahB,KAAM,GAAM,KACZ,EAAI,QAAU,CAAC,CAAC,CAAE,EAAE,CAAE,EAAE,CAAE,EAAE,CAAE,EAAE,CAAE,GAAG,CAAC,CAAE,EAAE,CAAE,EAAE,CAAE,EAAE,CAAE,EAAE,CAAE,EAAC,EAEpD,EAAI,QAAQ,GAAG,GAAG,IACtB,EAAI,YAAW,EAGhB,KAAM,GAAO,EAAI,QAAQ,GAAG,GACtB,EAAW,EAAI,QAAQ,GACvB,EAAS,EAAI,OAEnB,GAAI,GAAG,EAAQ,EAAQ,EAAO,EAE9B,GAAI,IAAW,GAAK,IAAW,GAAK,IAAW,EAC9C,KAAM,IAAI,OAAM,sBAAsB,EAMvC,IAHA,EAAI,KAAO,CAAC,EAAS,EAAI,MAAM,CAAC,EAAG,EAAS,EAAE,EAGzC,EAAI,EAAQ,EAAI,EAAI,EAAS,GAAI,IAAK,CAC1C,GAAI,GAAM,EAAO,EAAI,GAGrB,CAAI,EAAI,IAAW,GAAM,IAAW,GAAK,EAAI,IAAW,IACvD,GAAM,EAAK,IAAQ,KAAO,GAAK,EAAK,GAAO,GAAK,MAAQ,GAAK,EAAK,GAAO,EAAI,MAAQ,EAAI,EAAK,EAAM,KAGhG,EAAI,IAAW,GAClB,GAAM,GAAO,EAAI,IAAQ,GAAK,GAAQ,GACtC,EAAO,GAAQ,EAAK,IAAQ,GAAK,MAInC,EAAO,GAAK,EAAO,EAAI,GAAU,CACjC,CAGD,OAAS,GAAI,EAAG,EAAG,IAAK,IAAK,CAC5B,KAAM,GAAM,EAAO,EAAI,EAAI,EAAI,EAAI,GACnC,CAAI,EAAK,GAAK,EAAI,EACjB,EAAO,GAAK,EAEZ,EAAO,GAAK,EAAS,GAAG,EAAK,IAAQ,KACpC,EAAS,GAAG,EAAK,GAAO,GAAK,MAC7B,EAAS,GAAG,EAAK,GAAO,EAAI,MAC5B,EAAS,GAAG,EAAK,EAAM,KAEzB,CACD,CAaD,QAAQ,EAAM,CACb,MAAO,MAAK,OAAO,EAAM,CAAC,CAC1B,CAOD,QAAQ,EAAM,CACb,MAAO,MAAK,OAAO,EAAM,CAAC,CAC1B,CAOD,aAAc,CACb,KAAM,GAAW,KAAK,QAAQ,GACxB,EAAW,KAAK,QAAQ,GACxB,EAAO,EAAS,GAChB,EAAU,EAAS,GACnB,EAAI,GACJ,EAAK,GACX,GAAI,GAAM,EAAI,EAAI,EAGlB,OAAS,GAAI,EAAG,EAAI,IAAK,IACxB,EAAI,GAAE,GAAK,GAAK,EAAK,IAAK,GAAK,KAAO,GAAK,EAG5C,OAAS,GAAI,EAAO,EAAG,CAAC,EAAK,GAAI,GAAK,GAAM,EAAG,EAAO,EAAG,IAAS,EAAG,CAEpE,GAAI,GAAI,EAAO,GAAQ,EAAI,GAAQ,EAAI,GAAQ,EAAI,GAAQ,EAC3D,EAAI,GAAK,EAAI,EAAI,IAAM,GACvB,EAAK,GAAK,EACV,EAAQ,GAAK,EAGb,EAAK,EAAE,EAAK,EAAE,EAAK,EAAE,KACrB,GAAI,GAAO,EAAK,SAAY,EAAK,MAAU,EAAK,IAAQ,EAAI,SACxD,EAAO,EAAE,GAAK,IAAQ,EAAI,SAE9B,OAAS,GAAI,EAAG,EAAI,EAAG,IACtB,EAAS,GAAG,GAAK,EAAO,GAAQ,GAAK,IAAS,EAC9C,EAAS,GAAG,GAAK,EAAO,GAAQ,GAAK,IAAS,CAE/C,CAGD,OAAS,GAAI,EAAG,EAAI,EAAG,IACtB,EAAS,GAAK,EAAS,GAAG,MAAM,CAAC,EACjC,EAAS,GAAK,EAAS,GAAG,MAAM,CAAC,CAElC,CASD,OAAO,EAAO,EAAK,CAClB,GAAI,EAAM,SAAW,EACpB,KAAM,IAAI,OAAM,wBAAwB,EAGzC,KAAM,GAAM,KAAK,KAAK,GAEhB,EAAe,EAAI,OAAS,EAAI,EAChC,EAAM,CAAC,EAAG,EAAG,EAAG,CAAC,EACjB,EAAQ,KAAK,QAAQ,GAGrB,EAAK,EAAM,GACX,EAAK,EAAM,GACX,EAAK,EAAM,GACX,EAAK,EAAM,GACX,EAAO,EAAM,GAGnB,GAAI,GAAI,EAAM,GAAK,EAAI,GACnB,EAAI,EAAM,EAAM,EAAI,GAAK,EAAI,GAC7B,EAAI,EAAM,GAAK,EAAI,GACnB,EAAI,EAAM,EAAM,EAAI,GAAK,EAAI,GAC7B,EAAS,EACT,EAAI,EAAI,EAGZ,OAAS,GAAI,EAAG,EAAI,EAAc,IACjC,EAAK,EAAG,IAAM,IAAM,EAAG,GAAK,GAAK,KAAO,EAAG,GAAK,EAAI,KAAO,EAAG,EAAI,KAAO,EAAI,GAC7E,EAAK,EAAG,IAAM,IAAM,EAAG,GAAK,GAAK,KAAO,EAAG,GAAK,EAAI,KAAO,EAAG,EAAI,KAAO,EAAI,EAAS,GACtF,EAAK,EAAG,IAAM,IAAM,EAAG,GAAK,GAAK,KAAO,EAAG,GAAK,EAAI,KAAO,EAAG,EAAI,KAAO,EAAI,EAAS,GACtF,EAAI,EAAG,IAAM,IAAM,EAAG,GAAK,GAAK,KAAO,EAAG,GAAK,EAAI,KAAO,EAAG,EAAI,KAAO,EAAI,EAAS,GACrF,GAAU,EACV,EAAI,EAAI,EAAI,EAAI,EAAI,EAIrB,OAAS,GAAI,EAAG,EAAI,EAAG,IACtB,EAAI,EAAM,EAAI,CAAC,EAAI,GAClB,EAAK,IAAM,KAAO,GAClB,EAAK,GAAK,GAAK,MAAQ,GACvB,EAAK,GAAK,EAAI,MAAQ,EACtB,EAAK,EAAI,KACT,EAAI,KACL,EAAK,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,EAGlC,MAAO,EACP,CACF,EAkBA,KAAM,IAAO,GAMb,GAAK,WAAa,KAAM,CACvB,YAAY,EAAK,EAAI,CACpB,KAAK,KAAO,EACZ,KAAK,QAAU,EACf,KAAK,IAAM,CACX,CAED,OAAQ,CACP,KAAK,IAAM,KAAK,OAChB,CAKD,OAAO,EAAM,CACZ,MAAO,MAAK,UAAU,KAAK,KAAM,EAAM,KAAK,GAAG,CAC/C,CAED,QAAQ,EAAM,CACb,GAAM,IAAQ,GAAM,OAAU,IAAM,CACnC,GAAI,GAAM,GAAQ,GAAM,IACpB,EAAM,GAAQ,EAAK,IACnB,EAAK,EAAO,IAEhB,CAAI,GAAO,IACV,GAAK,EACL,CAAI,GAAO,IACV,GAAK,EACL,CAAI,GAAO,IACV,EAAK,EAEL,EAAE,GAGH,EAAE,GAGH,EAAE,EAGH,EAAO,EACP,GAAS,GAAM,GACf,GAAS,GAAM,EACf,GAAQ,CACX,KACG,IAAS,GAAQ,GAElB,MAAO,EACP,CAED,WAAW,EAAS,CACnB,CAAK,EAAQ,GAAK,KAAK,QAAQ,EAAQ,EAAE,KAAO,GAE/C,GAAQ,GAAK,KAAK,QAAQ,EAAQ,EAAE,EAErC,CAED,UAAU,EAAK,EAAM,EAAI,CACxB,GAAI,GACJ,GAAI,CAAE,GAAI,EAAK,QACd,MAAO,GAER,KAAM,GAAK,GAAS,UAAU,CAAI,EAClC,OAAS,GAAI,EAAG,EAAI,EAAG,GAAK,EAAG,CAC9B,KAAK,WAAW,CAAE,EAClB,KAAM,GAAI,EAAI,QAAQ,CAAE,EACxB,EAAK,IAAM,EAAE,GACb,EAAK,EAAI,IAAM,EAAE,GACjB,EAAK,EAAI,IAAM,EAAE,GACjB,EAAK,EAAI,IAAM,EAAE,EACjB,CACD,MAAO,IAAS,MAAM,EAAM,CAAE,CAC9B,CACF,EAGA,KAAM,IAAO,GAcb,GAAK,SAAW,KAAM,CAErB,YAAY,EAAK,CAChB,KAAM,GAAO,KACP,EAAO,EAAK,MAAQ,GAAK,KACzB,EAAQ,CAAC,GAAI,EAAE,EACf,EAAK,EAAK,UAAU,UAAY,GACtC,EAAK,UAAY,CAAC,GAAI,GAAQ,GAAI,EAAM,EAEpC,EAAI,OAAS,GAChB,GAAM,EAAK,KAAK,CAAG,GAGpB,OAAS,GAAI,EAAG,EAAI,EAAI,IACvB,EAAM,GAAG,GAAK,EAAI,GAAK,UACvB,EAAM,GAAG,GAAK,EAAI,GAAK,WAGxB,EAAK,UAAU,GAAG,OAAO,EAAM,EAAE,EACjC,EAAK,UAAU,GAAG,OAAO,EAAM,EAAE,EACjC,EAAK,YAAc,GAAI,GAAK,EAAK,UAAU,EAAE,CAC7C,CACD,OAAQ,CACP,KAAM,GAAO,KACb,EAAK,YAAc,GAAI,GAAK,MAAM,EAAK,UAAU,EAAE,EACnD,EAAK,SAAW,EAChB,CAED,OAAO,EAAM,CACZ,KAAM,GAAO,KACb,EAAK,SAAW,GAChB,EAAK,YAAY,OAAO,CAAI,CAC5B,CAED,QAAS,CACR,KAAM,GAAO,KACP,EAAI,EAAK,YAAY,SAAQ,EAC7B,EAAS,GAAK,GAAK,MAAO,EAAK,UAAU,EAAE,EAAE,OAAO,CAAC,EAAE,SAAQ,EAErE,SAAK,MAAK,EAEH,CACP,CACF,ECtsBA,KAAM,IAAuB,kBACvB,GAAe,GACf,GAAa,MACb,GAAmB,CAAE,KAAM,UAC3B,GAAiB,CAAE,KAAM,QACzB,GAAgB,QAChB,GAAqB,OAAO,OAAO,CAAE,KAAM,EAAc,EAAI,EAAgB,EAC7E,GAAyB,OAAO,OAAO,CAAE,WAAY,IAAM,KAAM,CAAE,KAAM,GAAiB,EAAE,EAAgB,EAC5G,GAAqB,CAAC,YAAY,EAClC,GAAc,CAAC,EAAG,GAAI,EAAE,EACxB,GAAa,CAAC,GAAI,GAAI,EAAE,EACxB,GAAmB,GACnB,GAAwB,CAAC,EAAG,EAAG,EAAG,CAAC,EACnC,GAAa,GAAM,MACnB,GAAM,GAAO,IACb,GAAa,GAAK,WAClB,GAAW,GAAK,SACtB,MAAM,EAAW,CAEhB,YAAY,EAAU,EAAQ,EAAU,CACvC,OAAO,OAAO,KAAM,CACnB,WACA,SACA,SAAU,EAAW,EACrB,aAAc,GAAI,YAAW,CAAC,CACjC,CAAG,CACD,MAEK,QAAO,EAAO,CACnB,KAAM,GAAY,KAClB,GAAI,EAAU,SAAU,CACvB,KAAM,GAAW,GAAS,EAAO,EAAG,GAAY,EAAU,UAAY,CAAC,EACvE,KAAM,IAAqB,EAAW,EAAU,EAAU,QAAQ,EAClE,EAAU,SAAW,KACrB,EAAU,cAAgB,GAAI,IAAW,GAAI,IAAI,EAAU,KAAK,GAAG,EAAG,MAAM,KAAK,EAAqB,CAAC,EACvG,EAAU,KAAO,GAAI,IAAS,EAAU,KAAK,cAAc,EAC3D,EAAQ,GAAS,EAAO,GAAY,EAAU,UAAY,CAAC,CAC3D,CACD,KAAM,GAAS,GAAI,YAAW,EAAM,OAAS,GAAqB,GAAM,OAAS,IAAoB,EAAa,EAClH,MAAO,IAAO,EAAW,EAAO,EAAQ,EAAG,GAAkB,EAAI,CACjE,CAED,OAAQ,CACP,KAAM,GAAY,KACZ,EAAe,EAAU,aACzB,EAAiB,GAAS,EAAc,EAAG,EAAa,OAAS,EAAgB,EACjF,EAAoB,GAAS,EAAc,EAAa,OAAS,EAAgB,EACvF,GAAI,GAAsB,GAAI,YAAW,CAAC,EAC1C,GAAI,EAAe,OAAQ,CAC1B,KAAM,GAAiB,GAAW,OAAO,CAAc,EACvD,EAAU,KAAK,OAAO,CAAc,EACpC,KAAM,GAAiB,EAAU,cAAc,OAAO,CAAc,EACpE,EAAsB,GAAW,SAAS,CAAc,CACxD,CACD,GAAI,GAAQ,GACZ,GAAI,EAAU,OAAQ,CACrB,KAAM,GAAY,GAAS,GAAW,SAAS,EAAU,KAAK,OAAQ,GAAG,EAAG,EAAgB,EAC5F,OAAS,GAAiB,EAAG,EAAiB,GAAkB,IAC/D,CAAI,CAAU,IAAmB,EAAkB,IAClD,GAAQ,GAGV,CACD,MAAO,CACN,QACA,KAAM,CACT,CACE,CACF,CAEA,MAAM,EAAW,CAEhB,YAAY,EAAU,EAAU,CAC/B,OAAO,OAAO,KAAM,CACnB,WACA,SAAU,EAAW,EACrB,aAAc,GAAI,YAAW,CAAC,CACjC,CAAG,CACD,MAEK,QAAO,EAAO,CACnB,KAAM,GAAY,KAClB,GAAI,GAAW,GAAI,YAAW,CAAC,EAC/B,CAAI,CAAU,UACb,GAAW,KAAM,IAAqB,EAAW,EAAU,QAAQ,EACnE,EAAU,SAAW,KACrB,EAAU,cAAgB,GAAI,IAAW,GAAI,IAAI,EAAU,KAAK,GAAG,EAAG,MAAM,KAAK,EAAqB,CAAC,EACvG,EAAU,KAAO,GAAI,IAAS,EAAU,KAAK,cAAc,GAE5D,KAAM,GAAS,GAAI,YAAW,EAAS,OAAS,EAAM,OAAU,EAAM,OAAS,EAAa,EAC5F,SAAO,IAAI,EAAU,CAAC,EACf,GAAO,EAAW,EAAO,EAAQ,EAAS,OAAQ,CAAC,CAC1D,CAED,OAAQ,CACP,KAAM,GAAY,KAClB,GAAI,GAAsB,GAAI,YAAW,CAAC,EAC1C,GAAI,EAAU,aAAa,OAAQ,CAClC,KAAM,GAAiB,EAAU,cAAc,OAAO,GAAW,OAAO,EAAU,YAAY,CAAC,EAC/F,EAAU,KAAK,OAAO,CAAc,EACpC,EAAsB,GAAW,SAAS,CAAc,CACxD,CACD,KAAM,GAAY,GAAS,GAAW,SAAS,EAAU,KAAK,OAAQ,GAAG,EAAG,EAAgB,EAC5F,MAAO,CACN,KAAMC,GAAO,EAAqB,CAAS,EAC3C,WACH,CACE,CACF,CAQA,YAAgB,EAAW,EAAO,EAAQ,EAAc,EAAY,EAAiB,CACpF,KAAM,GAAc,EAAM,OAAS,EACnC,CAAI,CAAU,aAAa,QAC1B,GAAQA,GAAO,EAAU,aAAc,CAAK,EAC5C,EAAS,GAAO,EAAQ,EAAe,EAAc,EAAa,GAEnE,GAAI,GACJ,IAAK,EAAS,EAAG,GAAU,EAAc,GAAc,GAAU,GAAc,CAC9E,KAAM,GAAa,GAAW,OAAO,GAAS,EAAO,EAAQ,EAAS,EAAY,CAAC,EACnF,CAAI,EACH,EAAU,KAAK,OAAO,CAAU,EAEjC,KAAM,GAAc,EAAU,cAAc,OAAO,CAAU,EAC7D,CAAK,EACJ,EAAU,KAAK,OAAO,CAAW,EAElC,EAAO,IAAI,GAAW,SAAS,CAAW,EAAG,EAAS,CAAY,CAClE,CACD,SAAU,aAAe,GAAS,EAAO,CAAM,EACxC,CACR,CAEA,kBAAoC,EAAS,EAAe,EAAU,CACrE,KAAMC,IAAW,EAAS,EAAU,GAAS,EAAe,EAAG,GAAY,EAAQ,SAAS,CAAC,EAC7F,KAAM,GAAuB,GAAS,EAAe,GAAY,EAAQ,SAAS,EAC5E,EAA0B,EAAQ,KAAK,qBAC7C,GAAI,EAAwB,IAAM,EAAqB,IAAM,EAAwB,IAAM,EAAqB,GAC/G,KAAM,IAAI,OAAM,EAAoB,CAEtC,CAEA,kBAAoC,EAAS,EAAU,CACtD,KAAM,GAAO,OAAO,gBAAgB,GAAI,YAAW,GAAY,EAAQ,SAAS,CAAC,EACjF,YAAMA,IAAW,EAAS,EAAU,CAAI,EACjCD,GAAO,EAAM,EAAQ,KAAK,oBAAoB,CACtD,CAEA,kBAA0B,EAAQ,EAAU,EAAM,CACjD,KAAM,GAAkB,GAAW,CAAQ,EACrC,EAAU,KAAM,QAAO,OAAO,UAAU,GAAY,EAAiB,GAAoB,GAAO,EAAkB,EAClH,EAAc,KAAM,QAAO,OAAO,WAAW,OAAO,OAAO,CAAE,QAAQ,EAAsB,EAAG,EAAS,EAAM,IAAW,EAAO,UAAY,EAAK,EAAE,EAClJ,EAAe,GAAI,YAAW,CAAW,EAC/C,EAAO,KAAO,CACb,IAAK,GAAW,OAAO,GAAS,EAAc,EAAG,GAAW,EAAO,SAAS,CAAC,EAC7E,eAAgB,GAAW,OAAO,GAAS,EAAc,GAAW,EAAO,UAAW,GAAW,EAAO,UAAY,CAAC,CAAC,EACtH,qBAAsB,GAAS,EAAc,GAAW,EAAO,UAAY,CAAC,CAC9E,CACA,CAEA,YAAgB,EAAW,EAAY,CACtC,GAAI,GAAQ,EACZ,MAAI,GAAU,OAAS,EAAW,QACjC,GAAQ,GAAI,YAAW,EAAU,OAAS,EAAW,MAAM,EAC3D,EAAM,IAAI,EAAW,CAAC,EACtB,EAAM,IAAI,EAAY,EAAU,MAAM,GAEhC,CACR,CAEA,YAAgB,EAAY,EAAQ,CACnC,GAAI,GAAU,EAAS,EAAW,OAAQ,CACzC,KAAM,GAAQ,EACd,EAAa,GAAI,YAAW,CAAM,EAClC,EAAW,IAAI,EAAO,CAAC,CACvB,CACD,MAAO,EACR,CAEA,YAAkB,EAAO,EAAO,EAAK,CACpC,MAAO,GAAM,SAAS,EAAO,CAAG,CACjC,CC1LA,KAAM,IAAgB,GAEtB,MAAM,EAAiB,CAEtB,YAAY,EAAU,EAAsB,CAC3C,KAAM,GAAY,KAClB,OAAO,OAAO,EAAW,CACxB,WACA,sBACH,CAAG,EACD,GAAW,EAAW,CAAQ,CAC9B,CAED,OAAO,EAAO,CACb,KAAM,GAAY,KAClB,GAAI,EAAU,SAAU,CACvB,KAAM,GAAkB,GAAQ,EAAW,EAAM,SAAS,EAAG,EAAa,CAAC,EAE3E,GADA,EAAU,SAAW,KACjB,EAAgB,GAAgB,IAAM,EAAU,qBACnD,KAAM,IAAI,OAAM,EAAoB,EAErC,EAAQ,EAAM,SAAS,EAAa,CACpC,CACD,MAAO,IAAQ,EAAW,CAAK,CAC/B,CAED,OAAQ,CACP,MAAO,CACN,MAAO,GACP,KAAM,GAAI,YAAW,CAAC,CACzB,CACE,CACF,CAEA,MAAM,EAAiB,CAEtB,YAAY,EAAU,EAAsB,CAC3C,KAAM,GAAY,KAClB,OAAO,OAAO,EAAW,CACxB,WACA,sBACH,CAAG,EACD,GAAW,EAAW,CAAQ,CAC9B,CAED,OAAO,EAAO,CACb,KAAM,GAAY,KAClB,GAAI,GACA,EACJ,GAAI,EAAU,SAAU,CACvB,EAAU,SAAW,KACrB,KAAM,GAAS,OAAO,gBAAgB,GAAI,YAAW,EAAa,CAAC,EACnE,EAAO,GAAgB,GAAK,EAAU,qBACtC,EAAS,GAAI,YAAW,EAAM,OAAS,EAAO,MAAM,EACpD,EAAO,IAAI,GAAQ,EAAW,CAAM,EAAG,CAAC,EACxC,EAAS,EACZ,KACG,GAAS,GAAI,YAAW,EAAM,MAAM,EACpC,EAAS,EAEV,SAAO,IAAI,GAAQ,EAAW,CAAK,EAAG,CAAM,EACrC,CACP,CAED,OAAQ,CACP,MAAO,CACN,KAAM,GAAI,YAAW,CAAC,CACzB,CACE,CACF,CAQA,YAAiB,EAAQ,EAAO,CAC/B,KAAM,GAAS,GAAI,YAAW,EAAM,MAAM,EAC1C,OAAS,GAAQ,EAAG,EAAQ,EAAM,OAAQ,IACzC,EAAO,GAAS,GAAQ,CAAM,EAAI,EAAM,GACxC,GAAW,EAAQ,EAAO,EAAM,EAEjC,MAAO,EACR,CAEA,YAAiB,EAAQ,EAAO,CAC/B,KAAM,GAAS,GAAI,YAAW,EAAM,MAAM,EAC1C,OAAS,GAAQ,EAAG,EAAQ,EAAM,OAAQ,IACzC,EAAO,GAAS,GAAQ,CAAM,EAAI,EAAM,GACxC,GAAW,EAAQ,EAAM,EAAM,EAEhC,MAAO,EACR,CAEA,YAAoB,EAAQ,EAAU,CACrC,EAAO,KAAO,CAAC,UAAY,UAAY,SAAU,EACjD,EAAO,QAAU,GAAI,IAAM,EAAO,KAAK,EAAE,EACzC,EAAO,QAAU,GAAI,IAAM,EAAO,KAAK,EAAE,EACzC,OAAS,GAAQ,EAAG,EAAQ,EAAS,OAAQ,IAC5C,GAAW,EAAQ,EAAS,WAAW,CAAK,CAAC,CAE/C,CAEA,YAAoB,EAAQ,EAAM,CACjC,EAAO,QAAQ,OAAO,CAAC,CAAI,CAAC,EAC5B,EAAO,KAAK,GAAK,CAAC,EAAO,QAAQ,MACjC,EAAO,KAAK,GAAK,GAAS,EAAO,KAAK,GAAK,GAAQ,EAAO,KAAK,EAAE,CAAC,EAClE,EAAO,KAAK,GAAK,GAAS,KAAK,KAAK,EAAO,KAAK,GAAI,SAAS,EAAI,CAAC,EAClE,EAAO,QAAQ,OAAO,CAAC,EAAO,KAAK,KAAO,EAAE,CAAC,EAC7C,EAAO,KAAK,GAAK,CAAC,EAAO,QAAQ,KAClC,CAEA,YAAiB,EAAQ,CACxB,KAAM,GAAO,EAAO,KAAK,GAAK,EAC9B,MAAO,IAAQ,KAAK,KAAK,EAAO,EAAO,CAAC,IAAO,CAAC,CACjD,CAEA,YAAiB,EAAQ,CACxB,MAAO,GAAS,GACjB,CAEA,YAAkB,EAAQ,CACzB,MAAO,GAAS,UACjB,CC7HA,KAAM,IAAgB,UAChB,GAAgB,UAChB,GAAwB,oBAE9B,MAAMH,EAAQ,CAEb,YAAY,EAAkB,CAC7B,YACA,WACA,SACA,aACA,YACA,uBACA,sBACE,CAAE,aAAa,CACjB,KAAM,GAAY,QAAQ,CAAQ,EAClC,OAAO,OAAO,KAAM,CACnB,YACA,YACA,SACA,aACA,QAAS,GAAc,GAAI,GAAiB,CAAE,WAAS,CAAE,EACzD,MAAO,GAAU,GAAI,IACrB,YACA,QAAS,GAAa,EACrB,GAAI,IAAiB,EAAU,CAAoB,EACnD,GAAI,IAAW,EAAU,EAAQ,CAAkB,CACvD,CAAG,CACD,MAEK,QAAO,EAAM,CAClB,KAAM,GAAQ,KACd,MAAI,GAAM,WAAa,EAAK,QAC3B,GAAO,KAAM,GAAM,QAAQ,OAAO,CAAI,GAEnC,EAAM,YAAc,EAAK,QAC5B,GAAO,KAAM,GAAM,QAAQ,OAAO,CAAI,GAElC,EAAC,EAAM,WAAa,EAAM,YAAc,EAAM,QAAU,EAAK,QACjE,EAAM,MAAM,OAAO,CAAI,EAEjB,CACP,MAEK,QAAQ,CACb,KAAM,GAAQ,KACd,GAAI,GACA,EAAO,GAAI,YAAW,CAAC,EAC3B,GAAI,EAAM,UAAW,CACpB,KAAM,GAAS,EAAM,QAAQ,MAAK,EAClC,GAAI,CAAC,EAAO,MACX,KAAM,IAAI,OAAM,EAAqB,EAEtC,EAAO,EAAO,IACd,CACD,GAAK,EAAC,EAAM,WAAa,EAAM,YAAc,EAAM,OAAQ,CAC1D,KAAM,GAAoB,GAAI,UAAS,GAAI,YAAW,CAAC,EAAE,MAAM,EAG/D,GAFA,EAAY,EAAM,MAAM,MACxB,EAAkB,UAAU,EAAG,CAAS,EACpC,EAAM,WAAa,EAAkB,UAAU,EAAG,EAAK,EAC1D,KAAM,IAAI,OAAM,EAAqB,CAEtC,CACD,MAAI,GAAM,YACT,GAAQ,KAAM,GAAM,QAAQ,OAAO,CAAI,GAAM,GAAI,YAAW,CAAC,EAC7D,KAAM,GAAM,QAAQ,SAEd,CAAE,OAAM,YACf,CACF,CAEA,MAAMhB,EAAQ,CAEb,YAAY,EAAkB,CAC7B,YACA,SACA,aACA,QACA,YACA,WACA,uBACA,sBACE,CAAE,aAAa,CACjB,OAAO,OAAO,KAAM,CACnB,YACA,SACA,aACA,QAAS,GAAc,GAAI,GAAiB,CAAE,MAAO,GAAS,EAAG,YAAW,EAC5E,MAAO,GAAU,GAAI,IACrB,YACA,QAAS,GAAa,EACrB,GAAI,IAAiB,EAAU,CAAoB,EACnD,GAAI,IAAW,EAAU,CAAkB,CAC/C,CAAG,CACD,MAEK,QAAO,EAAW,CACvB,KAAM,GAAQ,KACd,GAAI,GAAO,EACX,MAAI,GAAM,YAAc,EAAU,QACjC,GAAO,KAAM,GAAM,QAAQ,OAAO,CAAS,GAExC,EAAM,WAAa,EAAK,QAC3B,GAAO,KAAM,GAAM,QAAQ,OAAO,CAAI,GAElC,EAAC,EAAM,WAAa,EAAM,YAAc,EAAM,QAAU,EAAU,QACtE,EAAM,MAAM,OAAO,CAAS,EAEtB,CACP,MAEK,QAAQ,CACb,KAAM,GAAQ,KACd,GAAI,GACA,EAAO,GAAI,YAAW,CAAC,EAI3B,GAHI,EAAM,YACT,GAAQ,KAAM,GAAM,QAAQ,MAAK,GAAO,GAAI,YAAW,CAAC,GAErD,EAAM,UAAW,CACpB,EAAO,KAAM,GAAM,QAAQ,OAAO,CAAI,EACtC,KAAM,GAAS,EAAM,QAAQ,MAAK,EAClC,EAAY,EAAO,UACnB,KAAM,GAAU,GAAI,YAAW,EAAK,OAAS,EAAO,KAAK,MAAM,EAC/D,EAAQ,IAAI,EAAM,CAAC,EACnB,EAAQ,IAAI,EAAO,KAAM,EAAK,MAAM,EACpC,EAAO,CACP,CACD,MAAK,EAAC,EAAM,WAAa,EAAM,YAAc,EAAM,QAClD,GAAY,EAAM,MAAM,OAElB,CAAE,OAAM,YACf,CACF,CAYA,YAAqB,EAAkB,EAAS,EAAQ,CACvD,GAAI,EAAQ,UAAU,WAAW,EAAa,EAC7C,MAAO,IAAIA,IAAQ,EAAkB,EAAS,CAAM,EAC9C,GAAI,EAAQ,UAAU,WAAW,EAAa,EACpD,MAAO,IAAIgB,IAAQ,EAAkB,EAAS,CAAM,CAEtD,CCtJA,KAAM,IAAe,OACf,GAAiB,SACjB,GAAgB,QAChB,GAAqB,UAE3B,GAAI,IAA0B,GAE9B,OAAe,CAAC,EAAY,EAAkB,EAAS,EAAQ,EAAgB,EAAW,IACzF,QAAO,OAAO,EAAY,CACzB,KAAM,GACN,mBACA,QAAS,OAAO,OAAO,GAAI,CAAO,EAClC,UACA,WAAY,CACX,CAAI,CAAW,QAAU,CAAC,EAAW,MACpC,GAAW,OAAO,YAClB,EAAW,UAAY,KAExB,EACD,gBAAiB,CAChB,EAAW,KAAO,GAClB,EAAe,CAAU,CACzB,CACH,CAAE,EACM,EAAY,GAAyB,EAAY,CAAM,EAAI,GAAsB,EAAY,CAAM,GAG3G,YAA+B,EAAY,EAAQ,CAClD,KAAM,GAAiBK,GAAY,EAAW,iBAAkB,EAAW,QAAS,CAAM,EAC1F,MAAO,MACA,QAAO,EAAM,CAClB,GAAI,CACH,MAAO,MAAM,GAAe,OAAO,CAAI,CACvC,OAAQ,EAAP,CACD,QAAW,eAAc,EACnB,CACN,CACD,OACK,QAAQ,CACb,GAAI,CACH,MAAO,MAAM,GAAe,OAChC,QAAa,CACT,EAAW,eAAc,CACzB,CACD,EACD,OAAQ,CACP,EAAW,eAAc,CACzB,CACH,CACA,CAEA,YAAkC,EAAY,EAAQ,CACrD,GAAI,GACJ,KAAM,GAAgB,CAAE,KAAM,UAC9B,GAAI,CAAC,EAAW,UAAW,CAC1B,GAAI,CAAC,GACJ,EAAW,OAAS,EAAU,EAAe,EAAO,OAAO,MAE3D,IAAI,CACH,EAAW,OAAS,EAAU,CAAE,EAAE,EAAO,OAAO,CAChD,MAAC,CACD,GAA0B,GAC1B,EAAW,OAAS,EAAU,EAAe,EAAO,OAAO,CAC3D,CAEF,EAAW,OAAO,iBAAiB,GAAoB,EAAW,EAAK,EACvE,EAAW,UAAY,CACtB,OAAO,EAAM,CACZ,MAAO,GAAmB,CAAE,KAAM,GAAgB,MAAM,EACxD,EACD,OAAQ,CACP,MAAO,GAAmB,CAAE,KAAM,EAAe,EACjD,EACD,OAAQ,CACP,EAAW,eAAc,CACzB,CACJ,CACE,CACD,MAAO,GAAW,UAElB,WAAmB,EAAS,EAAS,CACpC,GAAI,GAAK,EACT,EAAM,EAAW,QAAQ,GACrB,MAAO,IAAO,YACjB,GAAM,EAAG,GAEV,GAAI,CACH,EAAY,GAAI,KAAI,EAAK,CAAO,CAChC,MAAC,CACD,EAAY,CACZ,CACD,MAAO,IAAI,QAAO,EAAW,CAAO,CACpC,CAED,iBAAkC,EAAS,CAC1C,GAAI,CAAC,EAAa,CACjB,KAAM,GAAU,EAAW,QACrB,EAAU,EAAW,QAAQ,MAAM,CAAC,EAC1C,KAAM,GAAY,CAAE,UAAS,KAAM,GAAc,UAAS,OAAQ,CAAE,UAAW,EAAO,SAAS,CAAI,EACnG,CACD,MAAO,GAAY,CAAO,CAC1B,CAED,WAAqB,EAAS,CAC7B,KAAM,GAAS,EAAW,OACpB,EAAS,GAAI,SAAQ,CAAC,EAAS,IAAW,EAAc,CAAE,UAAS,QAAM,CAAE,EACjF,GAAI,CACH,GAAI,EAAQ,KACX,GAAI,CACH,EAAQ,KAAO,EAAQ,KAAK,OAC5B,EAAO,YAAY,EAAS,CAAC,EAAQ,IAAI,CAAC,CAC1C,MAAC,CACD,EAAO,YAAY,CAAO,CAC1B,KAED,GAAO,YAAY,CAAO,CAE3B,OAAQ,EAAP,CACD,EAAY,OAAO,CAAK,EACxB,EAAc,KACd,EAAW,eAAc,CACzB,CACD,MAAO,EACP,CAED,WAAmB,EAAO,CACzB,KAAM,GAAU,EAAM,KACtB,GAAI,EAAa,CAChB,KAAM,GAAe,EAAQ,MACvB,EAAO,EAAQ,KACrB,GAAI,EAAc,CACjB,KAAM,GAAQ,GAAI,OAAM,EAAa,OAAO,EAC5C,EAAM,MAAQ,EAAa,MAC3B,EAAY,OAAO,CAAK,EACxB,EAAc,KACd,EAAW,eAAc,CAC7B,SAAc,GAAQ,IAAgB,GAAQ,IAAiB,GAAQ,GAAgB,CACnF,KAAM,GAAO,EAAQ,KACrB,CAAI,EAAQ,GACX,GAAY,QAAQ,CAAE,KAAM,GAAI,YAAW,CAAI,EAAG,UAAW,EAAQ,SAAS,CAAE,EAChF,EAAc,KACd,EAAW,eAAc,GAEzB,EAAY,QAAQ,GAAQ,GAAI,YAAW,CAAI,CAAC,CAEjD,CACD,CACD,CACF,CCnJA,GAAI,IAAO,GACP,GAAkB,GAWtB,YAAqB,EAAkB,EAAS,EAAQ,CAEvD,KAAM,GAAY,CADC,EAAC,EAAQ,YAAc,CAAC,EAAQ,QAAU,CAAC,EAAQ,YACpC,GAAQ,eAAkB,EAAQ,gBAAkB,QAAa,EAAO,eACpG,EAAU,GAAa,EAAO,cAAgB,EAAO,cAAc,EAAQ,WAAa,GAC9F,GAAI,GAAK,OAAS,EAAO,WAAY,CACpC,KAAM,GAAa,GACnB,UAAK,KAAK,CAAU,EACb,GAAU,EAAY,EAAkB,EAAS,EAAQ,EAAgB,EAAW,CAAO,CACpG,KAAQ,CACN,KAAM,GAAa,GAAK,KAAK,GAAc,CAAC,EAAW,IAAI,EAC3D,MAAI,GACH,IAAsB,CAAU,EACzB,GAAU,EAAY,EAAkB,EAAS,EAAQ,EAAgB,EAAW,CAAO,GAE3F,GAAI,SAAQ,GAAW,GAAgB,KAAK,CAAE,UAAS,mBAAkB,UAAS,YAAW,SAAO,CAAE,CAAC,CAE/G,CAED,WAAwB,EAAY,CACnC,GAAI,GAAgB,OAAQ,CAC3B,KAAM,CAAC,CAAE,UAAS,mBAAkB,UAAS,YAAW,YAAa,GAAgB,OAAO,EAAG,CAAC,EAChG,EAAQ,GAAU,EAAY,EAAkB,EAAS,EAAQ,EAAgB,EAAW,CAAO,CAAC,CACvG,KAAS,CAAI,EAAW,OACrB,IAAsB,CAAU,EAC5B,OAAO,SAAS,EAAO,sBAAsB,GAAK,EAAO,wBAA0B,GACtF,GAAW,iBAAmB,WAAW,IAAM,CAC9C,GAAO,GAAK,OAAO,GAAQ,GAAQ,CAAU,EAC7C,EAAW,UAAS,CACzB,EAAO,EAAO,sBAAsB,IAGjC,GAAO,GAAK,OAAO,GAAQ,GAAQ,CAAU,CAE9C,CACF,CAEA,YAA+B,EAAY,CAC1C,CAAI,CAAW,kBACd,cAAa,EAAW,gBAAgB,EACxC,EAAW,iBAAmB,KAEhC,CCtFA,GAAIzO,IAAE,GAAG,CAAC,GAAG,CAAY,KAAO,KAAI,iBAAvB,WAAuC,CAAC,KAAM,GAAE,IAAI,IAAI,gBAAgB,GAAI,MAAK,CAAC;AAAA,CAAotxC,EAAE,CAAC,KAAK,iBAAiB,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ECiC73xC,KAAM,IAA0B,aAShC,MAAM,EAAO,CAEZ,aAAc,CACb,KAAK,KAAO,CACZ,CAED,MAAO,CACN,KAAK,YAAc,EACnB,CACF,CAEA,MAAM,UAAe,GAAO,CAC5B,CAEA,MAAM,UAAe,GAAO,CAE3B,gBAAgB,EAAO,CACtB,KAAK,MAAQ,EAAM,MACnB,CACF,CAEA,MAAM,UAAmB,GAAO,CAE/B,YAAY,EAAM,CACjB,QACA,KAAK,WAAa,GAAI,IAAW,GAAI,MAAK,CAAC,CAAI,EAAG,CAAE,KAAM,EAAuB,CAAE,CAAC,CACpF,MAEK,OAAO,CACZ,MAAM,KAAI,EACV,KAAK,WAAW,OAChB,KAAK,KAAO,KAAK,WAAW,IAC5B,MAEK,gBAAe,EAAQ,EAAQ,CACpC,MAAO,MAAK,WAAW,eAAe,EAAQ,CAAM,CACpD,CACF,CAEA,MAAM,UAAmB,GAAO,CAE/B,YAAY,EAAU,CACrB,QACA,KAAK,SAAW,EAChB,KAAK,KAAO,GAAI,MAAK,CAAE,EAAE,CAAE,KAAM,EAAuB,CAAE,CAC1D,MAEK,iBAAgB,EAAO,CAC5B,MAAM,gBAAgB,CAAK,EAC3B,KAAK,KAAO,GAAI,MAAK,CAAC,KAAK,KAAM,EAAM,MAAM,EAAG,CAAE,KAAM,EAAyB,EACjF,CAED,SAAU,CACT,GAAI,KAAK,KAAK,KACb,MAAO,MAAK,KAAK,OACX,CACN,KAAM,GAAS,GAAI,YACnB,MAAO,IAAI,SAAQ,CAAC,EAAS,IAAW,CACvC,EAAO,OAAS,GAAS,EAAQ,EAAM,OAAO,MAAM,EACpD,EAAO,QAAU,IAAM,EAAO,EAAO,KAAK,EAC1C,EAAO,WAAW,KAAK,KAAM,KAAK,QAAQ,CAC9C,CAAI,CACD,CACD,CACF,CA2BA,MAAM,UAAwB,GAAO,CAEpC,YAAY,EAAa,CACxB,QACA,KAAK,KAAO,QAAW,IAAe,IAAM,WAC5C,KAAK,QAAU,EACf,MAEK,iBAAgB,EAAO,CAC5B,MAAM,gBAAgB,CAAK,EAC3B,GAAI,GAAa,EACb,EAAa,KAAK,QACtB,KAAM,GAAQ,KAAK,QAAQ,OAE3B,IADA,KAAK,QAAU,GACV,EAAa,EAAG,EAAc,KAAK,MAAO,GAAQ,EAAM,QAAU,CAAC,EAAI,EAAK,EAAO,IACvF,GAAc,OAAO,aAAa,EAAM,EAAW,EAEpD,KAAO,EAAa,EAAM,OAAQ,IACjC,KAAK,SAAW,OAAO,aAAa,EAAM,EAAW,EAEtD,CAAI,CAAW,OAAS,EACvB,KAAK,MAAQ,KAAK,CAAU,EAE5B,KAAK,QAAU,CAEhB,CAED,SAAU,CACT,MAAO,MAAK,KAAO,KAAK,KAAK,OAAO,CACpC,CACF,CAEA,MAAM,UAAmB,GAAO,CAE/B,YAAY,EAAM,CACjB,QACA,KAAK,KAAO,EACZ,KAAK,KAAO,EAAK,IACjB,MAEK,gBAAe,EAAQ,EAAQ,CACpC,GAAI,KAAK,KAAK,YACb,MAAO,IAAI,YAAW,KAAM,MAAK,KAAK,MAAM,EAAQ,EAAS,CAAM,EAAE,YAAa,GAC5E,CACN,KAAM,GAAS,GAAI,YACnB,MAAO,IAAI,SAAQ,CAAC,EAAS,IAAW,CACvC,EAAO,OAAS,GAAS,EAAQ,GAAI,YAAW,EAAM,OAAO,MAAM,CAAC,EACpE,EAAO,QAAU,IAAM,EAAO,EAAO,KAAK,EAC1C,EAAO,kBAAkB,KAAK,KAAK,MAAM,EAAQ,EAAS,CAAM,CAAC,CACrE,CAAI,CACD,CACD,CACF,CAEA,MAAM,UAAmB,GAAO,CAE/B,YAAY,EAAa,CACxB,QACA,KAAK,YAAc,EACnB,KAAK,aAAe,EACpB,MAEK,iBAAgB,EAAO,CAC5B,MAAM,gBAAgB,CAAK,EAC3B,KAAK,aAAa,KAAK,EAAM,MAAM,CACnC,CAED,SAAU,CACT,MAAK,MAAK,MACT,MAAK,KAAO,GAAI,MAAK,KAAK,aAAc,CAAE,KAAM,KAAK,WAAW,CAAE,GAE5D,KAAK,IACZ,CACF,CClLA,KAAM,IAAc,WACd,GAAc,MACd,GAA6B,EAC7B,GAA2B,EAC3B,GAAyB,GAEzB,GAA8B,SAC9B,GAAmC,UACnC,GAAgC,SAChC,GAA+B,UAC/B,GAAqC,UACrC,GAA6C,UAC7C,GAA4B,GAC5B,GAA0C,GAC1C,GAAkC,GAClC,GAAwC,GAA4B,GAA0C,GAE9G,GAA8B,EAE9B,GAAwB,EACxB,GAAsB,MACtB,GAAuB,GACvB,GAA4B,EAC5B,GAAqC,MACrC,GAA+B,MAC/B,GAAkC,MAElC,GAAoB,EACpB,GAAgB,EAChB,GAA0B,EAC1B,GAA6B,KAC7B,GAA2B,GAE3B,GAAkB,GAClB,GAAgB,GAChB,GAAc,GAEd,GAAsB,IAEtB,GAAW,GAAI,MAAK,KAAM,GAAI,EAAE,EAChC,GAAW,GAAI,MAAK,KAAM,EAAG,CAAC,ECxC9B,GAAQ,q7BAAsQ,MAAM,EAAE,EAE5R,OAAe,GAAe,CAC7B,GAAI,GAAS,GACb,OAAS,GAAiB,EAAG,EAAiB,EAAY,OAAQ,IACjE,GAAU,GAAM,EAAY,IAE7B,MAAO,EACR,ECFA,kBAA0B,EAAO,EAAU,CAC1C,GAAI,GAAY,EAAS,KAAM,EAAC,YAAW,GAAM,QAChD,MAAO,IAAY,CAAK,EAClB,GAAI,MAAO,cAAe,YAAa,CAC7C,KAAM,GAAa,GAAI,YACvB,MAAO,IAAI,SAAQ,CAAC,EAAS,IAAW,CACvC,EAAW,OAAS,GAAS,EAAQ,EAAM,OAAO,MAAM,EACxD,EAAW,QAAU,IAAM,EAAO,EAAW,KAAK,EAClD,EAAW,WAAW,GAAI,MAAK,CAAC,CAAK,CAAC,CAAC,CAC1C,CAAG,CACH,KACE,OAAO,IAAI,aAAY,CAAQ,EAAE,OAAO,CAAK,CAE/C,CCnBA,KAAM,IAAqB,GACrB,GAAY,cAOlB,kBAA2B,EAAO,EAAQ,EAAQ,EAAQ,EAAa,EAAQ,EAAS,CACvF,KAAM,GAAY,KAAK,IAAI,EAAO,UAAW,EAAkB,EAC/D,MAAO,GAAY,EAEnB,iBAA4B,EAAc,EAAG,EAAe,EAAG,CAC9D,KAAM,GAAS,EAAQ,OACvB,GAAI,EAAc,EAAa,CAC9B,GAAY,EAAQ,CAAK,EACzB,KAAM,GAAY,KAAM,GAAO,eAAe,EAAc,EAAQ,KAAK,IAAI,EAAW,EAAc,CAAW,CAAC,EAC5G,EAAc,EAAU,OAC9B,GAAY,EAAQ,CAAK,EACzB,KAAM,GAAO,KAAM,GAAM,OAAO,CAAS,EAGzC,GAFA,GAAY,EAAQ,CAAK,EACzB,GAAgB,KAAM,IAAU,EAAQ,CAAI,EACxC,EAAQ,WACX,GAAI,CACH,EAAQ,WAAW,EAAc,EAAa,CAAW,CACzD,MAAC,CAED,CAEF,MAAO,GAAa,EAAc,EAAW,CAAY,CAC5D,KAAS,CACN,KAAM,GAAS,KAAM,GAAM,QAC3B,UAAgB,KAAM,IAAU,EAAQ,EAAO,IAAI,EAC5C,CAAE,UAAW,EAAO,UAAW,OAAQ,CAAY,CAC1D,CACD,CACF,CAEA,YAAqB,EAAQ,EAAO,CACnC,GAAI,GAAU,EAAO,QACpB,QAAM,MAAK,EACL,GAAI,OAAM,EAAS,CAE3B,CAEA,kBAAyB,EAAQ,EAAM,CACtC,MAAI,GAAK,QACR,KAAM,GAAO,gBAAgB,CAAI,EAE3B,EAAK,MACb,CClDA,KAAM,IAAiB,CACtB,WAAY,cAAe,YAAa,YAAa,iBAAkB,mBACvE,cAAe,iBAAkB,UAAW,aAAc,YAAa,aACvE,gBAAiB,UAAW,kBAAmB,wBAAyB,2BACxE,gBAAiB,eAAgB,cAAe,SAAU,QAAS,oBACnE,iBAAkB,iBAAkB,eAAgB,8BACpD,UAAW,gBAAiB,kBAAmB,wBAAyB,uBAAuB,EAEjF,MAAM,EAAM,CAE1B,YAAY,EAAM,CACjB,GAAe,QAAQ,GAAQ,KAAK,GAAQ,EAAK,EAAK,CACtD,CAEF,CCuBA,KAAM,IAAiB,gCACjB,GAAsB,qCACtB,GAA4B,2CAC5B,GAAoC,mDACpC,GAAkC,qCAClC,GAAkC,8BAClC,GAAiC,8BACjC,GAAgB,gCAChB,GAA6B,kCAC7B,GAA8B,mCAC9B,GAAe,QACf,GAAgB,QAChB,GAAmB,CAAC,mBAAoB,iBAAkB,QAAQ,EAExE,MAAM,EAAU,CAEf,YAAY,EAAQ,EAAU,GAAI,CACjC,OAAO,OAAO,KAAM,CACnB,SACA,UACA,OAAQ,GAAkB,CAC7B,CAAG,CACD,MAEK,YAAW,EAAU,GAAI,CAC9B,KAAM,GAAY,KACZ,EAAS,EAAU,OAIzB,GAHK,EAAO,aACX,KAAM,GAAO,OAEV,EAAO,KAAO,GACjB,KAAM,IAAI,OAAM,EAAc,EAE/B,KAAM,GAAqB,KAAM,IAAc,EAAQ,GAA8B,EAAO,KAAM,GAA2B,GAAc,EAAE,EAC7I,GAAI,CAAC,EACJ,KAAM,IAAI,OAAM,EAAmB,EAEpC,KAAM,GAAqB0O,GAAY,CAAkB,EACzD,GAAI,GAAsB,GAAU,EAAoB,EAAE,EACtD,EAAsB,GAAU,EAAoB,EAAE,EACtD,EAAc,GAAU,EAAoB,CAAC,EAC7C,EAAsB,EAC1B,GAAI,GAAuB,IAAe,GAAuB,IAAe,GAAe,GAAa,CAC3G,KAAM,GAA6B,KAAM,IAAe,EAAQ,EAAmB,OAAS,GAAyC,EAAuC,EACtK,EAA4BA,GAAY,CAA0B,EACxE,GAAI,GAAU,EAA2B,CAAC,GAAK,GAC9C,KAAM,IAAI,OAAM,EAAyB,EAE1C,EAAsB,GAAa,EAA2B,CAAC,EAC/D,GAAI,GAAsB,KAAM,IAAe,EAAQ,EAAqB,EAA+B,EACvG,EAAqBA,GAAY,CAAmB,EACxD,KAAM,GAA8B,EAAmB,OAAS,GAA0C,GAC1G,GAAI,GAAU,EAAoB,CAAC,GAAK,IAAsC,GAAuB,EAA6B,CACjI,KAAM,GAA8B,EACpC,EAAsB,EACtB,EAAsB,EAAsB,EAC5C,EAAsB,KAAM,IAAe,EAAQ,EAAqB,EAA+B,EACvG,EAAqBA,GAAY,CAAmB,CACpD,CACD,GAAI,GAAU,EAAoB,CAAC,GAAK,GACvC,KAAM,IAAI,OAAM,EAAiC,EAElD,EAAc,GAAa,EAAoB,EAAE,EACjD,EAAsB,GAAa,EAAoB,EAAE,EACzD,GAAuB,CACvB,CACD,GAAI,EAAsB,GAAK,GAAuB,EAAO,KAC5D,KAAM,IAAI,OAAM,EAAc,EAE/B,GAAI,GAAS,EACT,EAAiB,KAAM,IAAe,EAAQ,EAAqB,CAAmB,EACtF,EAAgBA,GAAY,CAAc,EAC9C,GAAI,EAAqB,CACxB,KAAM,GAA8B,EAAmB,OAAS,EAChE,GAAI,GAAU,EAAe,CAAM,GAAK,IAAiC,GAAuB,EAA6B,CAC5H,KAAM,GAA8B,EACpC,EAAsB,EACtB,EAAsB,EAAsB,EAC5C,EAAiB,KAAM,IAAe,EAAQ,EAAqB,CAAmB,EACtF,EAAgBA,GAAY,CAAc,CAC1C,CACD,CACD,GAAI,EAAsB,GAAK,GAAuB,EAAO,KAC5D,KAAM,IAAI,OAAM,EAAc,EAE/B,KAAM,GAAU,GAChB,OAAS,GAAY,EAAG,EAAY,EAAa,IAAa,CAC7D,KAAM,GAAY,GAAI,IAAS,EAAQ,EAAU,OAAQ,EAAU,OAAO,EAC1E,GAAI,GAAU,EAAe,CAAM,GAAK,GACvC,KAAM,IAAI,OAAM,EAA+B,EAEhD,GAAiB,EAAW,EAAe,EAAS,CAAC,EACrD,KAAM,GAAuB,QAAQ,EAAU,QAAQ,oBAAoB,EACrE,EAAiB,EAAS,GAC1B,EAAmB,EAAiB,EAAU,eAC9C,EAAgB,EAAmB,EAAU,iBAC7C,EAAgB,GAAU,EAAe,EAAS,CAAC,EACnD,EAAmB,GAAgB,IAAM,EAC/C,OAAO,OAAO,EAAW,CACxB,gBACA,kBACA,eAAgB,EAChB,iBAAkB,EAClB,cAAe,GAAU,EAAe,EAAS,EAAE,EACnD,UAAW,GAAqB,IAAS,EAAe,EAAS,EAAE,EAAI,KAA6B,GACpG,OAAQ,GAAU,EAAe,EAAS,EAAE,EAAI,EAChD,sBAAuB,GAAU,EAAe,EAAS,EAAE,EAC3D,sBAAuB,GAAU,EAAe,EAAS,EAAE,EAC3D,YAAa,EAAe,SAAS,EAAgB,CAAgB,EACrE,aAAc,EACd,YAAa,EACb,cAAe,EAAe,SAAS,EAAkB,CAAa,CAC1E,CAAI,EACD,KAAM,GAAY,EAAgB,EAAU,cAC5C,EAAU,WAAa,EAAe,SAAS,EAAe,CAAS,EACvE,KAAM,GAAmBC,GAAe,EAAW,EAAS,kBAAkB,EACxE,EAAkBA,GAAe,EAAW,EAAS,iBAAiB,EACtE,CAAC,EAAU,GAAW,KAAM,SAAQ,IAAI,CAC7C,GAAW,EAAU,YAAa,EAAU,aAAe,GAAe,GAAoB,EAAa,EAC3G,GAAW,EAAU,WAAY,EAAU,YAAc,GAAe,GAAmB,EAAa,CAC5G,CAAI,EACD,EAAU,SAAW,EACrB,EAAU,QAAU,EAChB,CAAC,EAAU,WAAa,EAAU,SAAS,SAAS,EAAmB,GAC1E,GAAU,UAAY,IAEvB,KAAM,IAAiB,EAAW,EAAW,EAAe,EAAS,CAAC,EACtE,KAAM,GAAQ,GAAI,IAAM,CAAS,EAIjC,GAHA,EAAM,QAAU,CAAC,EAAQ,IAAY,EAAU,QAAQ,EAAQ,EAAO,CAAO,EAC7E,EAAQ,KAAK,CAAK,EAClB,EAAS,EACL,EAAQ,WACX,GAAI,CACH,EAAQ,WAAW,EAAY,EAAG,EAAa,GAAI,IAAM,CAAS,CAAC,CACnE,MAAC,CAED,CAEF,CACD,MAAO,EACP,MAEK,QAAQ,CACb,CACF,CAkBA,MAAM,EAAS,CAEd,YAAY,EAAQ,EAAQ,EAAS,CACpC,OAAO,OAAO,KAAM,CACnB,SACA,SACA,SACH,CAAG,CACD,MAEK,SAAQ,EAAQ,EAAW,EAAU,GAAI,CAC9C,KAAM,GAAW,KACX,CACL,SACA,SACA,gBACA,oBACA,SACA,UACA,YACA,iBACA,kBACG,EACE,EAAiB,EAAS,eAAiB,GACjD,CAAK,CAAO,aACX,KAAM,GAAO,OAEd,GAAI,GAAY,KAAM,IAAe,EAAQ,EAAQ,EAAE,EACvD,KAAM,GAAWD,GAAY,CAAS,EACtC,GAAI,GAAWC,GAAe,EAAU,EAAS,UAAU,EAE3D,GADA,EAAW,GAAY,EAAS,QAAU,EACtC,GACC,EAAc,2BAA6B,GAC9C,KAAM,IAAI,OAAM,EAA2B,EAG7C,GAAI,GAAqB,IAA4B,GAAqB,GACzE,KAAM,IAAI,OAAM,EAA2B,EAE5C,GAAI,GAAU,EAAU,CAAC,GAAK,GAC7B,KAAM,IAAI,OAAM,EAA+B,EAEhD,GAAiB,EAAgB,EAAU,CAAC,EAC5C,EAAY,KAAM,IAAe,EAAQ,EAAQ,GAAK,EAAe,eAAiB,EAAe,gBAAgB,EACrH,EAAe,cAAgB,EAAU,SAAS,GAAK,EAAe,cAAc,EACpF,KAAM,IAAiB,EAAU,EAAgB,EAAU,CAAC,EAC5D,EAAU,eAAiB,EAAe,eAC1C,EAAU,aAAe,EAAe,aACxC,KAAM,GAAY,EAAS,WAAa,EAAe,UACjD,EAAY,GAAa,CAAC,EAChC,GAAI,EAAW,CACd,GAAI,CAAC,GAAa,EAAc,WAAa,OAC5C,KAAM,IAAI,OAAM,EAA0B,EACpC,GAAI,CAAC,EACX,KAAM,IAAI,OAAM,EAAa,CAE9B,CACD,KAAM,GAAQ,KAAM,IAAY,EAAO,QAAS,CAC/C,UAAW,GACX,WACA,YACA,mBAAoB,GAAiB,EAAc,SACnD,OAAQA,GAAe,EAAU,EAAS,gBAAgB,EAC1D,qBAAsB,GAAc,GAAQ,eAAmB,IAAmB,EAAK,IAAU,IAAc,GAAM,KACrH,YACA,WAAY,GAAqB,EACjC,YACA,cAAeA,GAAe,EAAU,EAAS,eAAe,CAChE,EAAE,CAAM,EACT,CAAK,CAAO,aACX,KAAM,GAAO,OAEd,KAAM,GAASA,GAAe,EAAU,EAAS,QAAQ,EACnD,EAAa,EAAS,GAAK,EAAe,eAAiB,EAAe,iBAChF,YAAM,IAAY,EAAO,EAAQ,EAAQ,EAAY,EAAgB,EAAQ,CAAE,WAAY,EAAQ,WAAY,QAAQ,GAChH,EAAO,SACd,CACF,CAEA,YAA0B,EAAW,EAAU,EAAQ,CACtD,KAAM,GAAa,EAAU,WAAa,GAAU,EAAU,EAAS,CAAC,EAClE,EAAa,GAAa,KAAsB,GAChD,EAAiB,GAAU,EAAU,EAAS,CAAC,EACrD,OAAO,OAAO,EAAW,CACxB,YACA,QAAS,GAAU,EAAU,CAAM,EACnC,QAAS,CACR,MAAQ,GAAa,KAAkB,EACvC,eAAiB,GAAa,KAA4B,GAC1D,qBAAuB,GAAa,KAA+B,EACnE,EACD,iBACA,YAAa,GAAQ,CAAc,EACnC,eAAgB,GAAU,EAAU,EAAS,EAAE,EAC/C,iBAAkB,GAAU,EAAU,EAAS,EAAE,CACnD,CAAE,CACF,CAEA,kBAAgC,EAAW,EAAW,EAAU,EAAQ,CACvE,KAAM,GAAgB,EAAU,cAC1B,EAAa,EAAU,WAAa,GAAI,KACxC,EAAoBD,GAAY,GAAI,YAAW,CAAa,CAAC,EACnE,GAAI,GAAmB,EACvB,GAAI,CACH,KAAO,EAAmB,EAAc,QAAQ,CAC/C,KAAM,GAAO,GAAU,EAAmB,CAAgB,EACpD,EAAO,GAAU,EAAmB,EAAmB,CAAC,EAC9D,EAAW,IAAI,EAAM,CACpB,OACA,KAAM,EAAc,MAAM,EAAmB,EAAG,EAAmB,EAAI,CAAI,CAC/E,CAAI,EACD,GAAoB,EAAI,CACxB,CACD,MAAC,CAED,CACD,KAAM,GAAoB,GAAU,EAAU,EAAS,CAAC,EACxD,EAAU,UAAY,GAAU,EAAU,EAAS,EAAE,EACrD,EAAU,iBAAmB,GAAU,EAAU,EAAS,EAAE,EAC5D,EAAU,eAAiB,GAAU,EAAU,EAAS,EAAE,EAC1D,KAAM,GAAkB,EAAW,IAAI,EAAqB,EAC5D,CAAI,EACH,IAAoB,EAAiB,CAAS,EAC9C,EAAU,gBAAkB,GAE7B,KAAM,GAAwB,EAAW,IAAI,EAA4B,EACzE,CAAI,EACH,MAAM,IAAsB,EAAuB,WAAY,cAAe,EAAW,CAAS,EAClG,EAAU,sBAAwB,GAEnC,KAAM,GAA2B,EAAW,IAAI,EAA+B,EAC/E,CAAI,EACH,MAAM,IAAsB,EAA0B,UAAW,aAAc,EAAW,CAAS,EACnG,EAAU,yBAA2B,GAEtC,KAAM,GAAgB,EAAW,IAAI,EAAmB,EACxD,CAAI,CACH,IAAkB,EAAe,EAAW,CAAiB,EAC7D,EAAU,cAAgB,GAE1B,EAAU,kBAAoB,EAE/B,KAAM,GAAiB,EAAW,IAAI,EAAoB,EAC1D,CAAI,EACH,IAAmB,EAAgB,CAAS,EAC5C,EAAU,eAAiB,GAE5B,KAAM,GAA8B,EAAW,IAAI,EAAkC,EACrF,CAAI,EACH,IAAgC,EAA6B,CAAS,EACtE,EAAU,4BAA8B,EAE1C,CAEA,YAA6B,EAAiB,EAAW,CACxD,EAAU,MAAQ,GAClB,KAAM,GAAiBA,GAAY,EAAgB,IAAI,EACvD,EAAgB,OAAS,GACzB,OAAS,GAAa,EAAG,EAAa,KAAK,MAAM,EAAgB,KAAK,OAAS,CAAC,EAAG,IAClF,EAAgB,OAAO,KAAK,GAAa,EAAgB,EAAI,EAAa,CAAC,CAAC,EAE7E,KAAM,GAAoB,GAAiB,OAAO,GAAgB,EAAU,IAAiB,EAAW,EACxG,OAAS,GAAuB,EAAG,EAAuB,EAAkB,OAAQ,IACnF,EAAgB,EAAkB,IAAyB,EAAgB,OAAO,GAEnF,GAAiB,QAAQ,GAAgB,CACxC,GAAI,EAAU,IAAiB,GAC9B,GAAI,EAAgB,KAAkB,OACrC,EAAU,GAAgB,EAAgB,OAE1C,MAAM,IAAI,OAAM,EAA8B,CAGlD,CAAE,CACF,CAEA,kBAAqC,EAAmB,EAAc,EAAiB,EAAW,EAAW,CAC5G,KAAM,GAAiBA,GAAY,EAAkB,IAAI,EACzD,EAAkB,QAAU,GAAS,EAAgB,CAAC,EACtD,EAAkB,UAAY,GAAU,EAAgB,CAAC,EACzD,KAAM,GAAQ,GAAI,IAClB,EAAM,OAAO,EAAU,EAAgB,EACvC,KAAM,GAAoBA,GAAY,GAAI,YAAW,CAAC,CAAC,EACvD,EAAkB,UAAU,EAAG,EAAM,IAAG,EAAI,EAAI,EAChD,EAAkB,GAAgB,KAAM,IAAW,EAAkB,KAAK,SAAS,CAAC,CAAC,EACrF,EAAkB,MAAQ,CAAC,EAAU,QAAQ,sBAAwB,EAAkB,WAAa,GAAU,EAAmB,CAAC,EAC9H,EAAkB,OACrB,GAAU,GAAgB,EAAkB,GAC5C,EAAU,EAAe,QAAU,GAErC,CAEA,YAA2B,EAAe,EAAW,EAAmB,CACvE,KAAM,GAAiBA,GAAY,EAAc,IAAI,EACrD,EAAc,cAAgB,GAAS,EAAgB,CAAC,EACxD,EAAc,SAAW,GAAS,EAAgB,CAAC,EACnD,KAAM,GAAW,GAAS,EAAgB,CAAC,EAC3C,EAAc,SAAW,EACzB,EAAc,0BAA4B,EAC1C,EAAU,kBAAoB,EAAc,kBAAoB,GAAU,EAAgB,CAAC,CAC5F,CAEA,YAA4B,EAAgB,EAAW,CACtD,KAAM,GAAiBA,GAAY,EAAe,IAAI,EACtD,GAAI,GAAmB,EACnB,EACJ,GAAI,CACH,KAAO,EAAmB,EAAe,KAAK,QAAU,CAAC,GAAU,CAClE,KAAM,GAAW,GAAU,EAAgB,CAAgB,EACrD,EAAgB,GAAU,EAAgB,EAAmB,CAAC,EACpE,CAAI,EAAY,IACf,GAAW,EAAe,KAAK,MAAM,EAAmB,EAAG,EAAmB,EAAI,CAAa,GAEhG,GAAoB,EAAI,CACxB,CACD,MAAC,CAED,CACD,GAAI,CACH,GAAI,GAAY,EAAS,QAAU,GAAI,CACtC,KAAM,GAAWA,GAAY,CAAQ,EAC/B,EAAiB,EAAS,aAAa,EAAG,EAAI,EAC9C,EAAoB,EAAS,aAAa,EAAG,EAAI,EACjD,EAAkB,EAAS,aAAa,GAAI,EAAI,EACtD,OAAO,OAAO,EAAgB,CAC7B,iBACA,oBACA,iBACJ,CAAI,EACD,KAAM,GAAc,GAAY,CAAc,EACxC,EAAiB,GAAY,CAAiB,EAC9C,EAAe,GAAY,CAAe,EAC1C,EAAiB,CAAE,cAAa,iBAAgB,cAAY,EAClE,OAAO,OAAO,EAAgB,CAAc,EAC5C,OAAO,OAAO,EAAW,CAAc,CACvC,CACD,MAAC,CAED,CACF,CAEA,YAAyC,EAA6B,EAAW,CAChF,KAAM,GAAiBA,GAAY,EAA4B,IAAI,EAC7D,EAAQ,GAAS,EAAgB,CAAC,EAClC,EAAiB,GACjB,EAAoB,GAC1B,CAAK,EAAQ,IAAQ,GACpB,GAAe,KAAK,aAAa,EACjC,EAAkB,KAAK,gBAAgB,GAEnC,GAAQ,IAAQ,GACpB,GAAe,KAAK,gBAAgB,EACpC,EAAkB,KAAK,mBAAmB,GAEtC,GAAQ,IAAQ,GACpB,GAAe,KAAK,cAAc,EAClC,EAAkB,KAAK,iBAAiB,GAEzC,GAAI,GAAS,EACb,EAAe,QAAQ,CAAC,EAAc,IAAkB,CACvD,GAAI,EAA4B,KAAK,QAAU,EAAS,EAAG,CAC1D,KAAM,GAAO,GAAU,EAAgB,CAAM,EAC7C,EAAU,GAAgB,EAA4B,GAAgB,GAAI,MAAK,EAAO,GAAI,EAC1F,KAAM,GAAkB,EAAkB,GAC1C,EAA4B,GAAmB,CAC/C,CACD,GAAU,CACZ,CAAE,CACF,CAEA,kBAA6B,EAAQ,EAAW,EAAa,EAAc,EAAe,CACzF,KAAM,GAAiB,GAAI,YAAW,CAAC,EACjC,EAAgBA,GAAY,CAAc,EAChDE,GAAU,EAAe,EAAG,CAAS,EACrC,KAAM,GAAe,EAAe,EACpC,MAAQ,MAAM,GAAK,CAAY,GAAM,KAAM,GAAK,KAAK,IAAI,EAAc,CAAW,CAAC,EAEnF,iBAAoB,EAAQ,CAC3B,KAAM,GAAS,EAAc,EACvB,EAAQ,KAAM,IAAe,EAAQ,EAAQ,CAAM,EACzD,OAAS,GAAY,EAAM,OAAS,EAAc,GAAa,EAAG,IACjE,GAAI,EAAM,IAAc,EAAe,IAAM,EAAM,EAAY,IAAM,EAAe,IACnF,EAAM,EAAY,IAAM,EAAe,IAAM,EAAM,EAAY,IAAM,EAAe,GACpF,MAAO,CACN,OAAQ,EAAS,EACjB,OAAQ,EAAM,MAAM,EAAW,EAAY,CAAY,EAAE,MAC9D,CAGE,CACF,CAEA,YAAwB,EAAW,EAAS,EAAM,CACjD,MAAO,GAAQ,KAAU,OAAY,EAAU,QAAQ,GAAQ,EAAQ,EACxE,CAEA,YAAiB,EAAS,CACzB,KAAM,GAAQ,GAAU,aAAe,GAAI,EAAO,EAAU,MAC5D,GAAI,CACH,MAAO,IAAI,MAAK,KAAS,IAAO,QAAW,GAAM,IAAO,MAAW,GAAK,EAAG,EAAO,GAAS,GAAO,QAAW,GAAK,GAAO,OAAW,EAAI,GAAO,IAAU,EAAG,CAAC,CAC7J,MAAC,CAED,CACF,CAEA,YAAqB,EAAS,CAC7B,MAAO,IAAI,MAAM,OAAQ,EAAU,OAAO,GAAK,EAAK,OAAO,WAAc,CAAC,EAC3E,CAEA,YAAkB,EAAM,EAAQ,CAC/B,MAAO,GAAK,SAAS,CAAM,CAC5B,CAEA,YAAmB,EAAM,EAAQ,CAChC,MAAO,GAAK,UAAU,EAAQ,EAAI,CACnC,CAEA,YAAmB,EAAM,EAAQ,CAChC,MAAO,GAAK,UAAU,EAAQ,EAAI,CACnC,CAEA,YAAsB,EAAM,EAAQ,CACnC,MAAO,QAAO,EAAK,aAAa,EAAQ,EAAI,CAAC,CAC9C,CAEA,YAAmB,EAAM,EAAQ,EAAO,CACvC,EAAK,UAAU,EAAQ,EAAO,EAAI,CACnC,CAEA,YAAqB,EAAO,CAC3B,MAAO,IAAI,UAAS,EAAM,MAAM,CACjC,CAEA,YAAwB,EAAQ,EAAQ,EAAM,CAC7C,MAAO,GAAO,eAAe,EAAQ,CAAI,CAC1C,CC9eA,KAAM,IAAsB,sBACtB,GAAsB,gCACtB,GAA4B,kCAC5B,GAAyB,+BACzB,GAAsB,wBACtB,GAAkC,qCAClC,GAA8B,iCAC9B,GAA8B,gCAC9B,GAAyB,yBAEzB,GAAsB,GAAI,YAAW,CAAC,EAAM,EAAM,EAAM,EAAM,GAAM,GAAM,EAAM,EAAM,CAAI,CAAC,EAC3F,GAA0B,GAEhC,GAAI,IAAU,EAEd,MAAM,EAAU,CAEf,YAAY,EAAQ,EAAU,GAAI,CACjC,OAAO,OAAO,KAAM,CACnB,SACA,UACA,OAAQ,GAAkB,EAC1B,MAAO,GAAI,KACX,OAAQ,EAAO,KACf,sBAAuB,EACvB,eAAgB,CAAE,CACrB,CAAG,CACD,MAEK,KAAI,EAAO,GAAI,EAAQ,EAAU,GAAI,CAC1C,KAAM,GAAY,KAClB,GAAI,GAAU,EAAU,OAAO,WAAY,CAC1C,KACA,GAAI,CACH,MAAO,MAAM,IAAQ,EAAW,EAAM,EAAQ,CAAO,CACzD,QAAa,CACT,KACA,KAAM,GAAe,EAAU,eAAe,MAAK,EACnD,CAAI,EACH,EAAU,IAAI,EAAa,KAAM,EAAa,OAAQ,EAAa,OAAO,EACxE,KAAK,EAAa,OAAO,EACzB,MAAM,EAAa,MAAM,CAE5B,CACJ,KACG,OAAO,IAAI,SAAQ,CAAC,EAAS,IAAW,EAAU,eAAe,KAAK,CAAE,OAAM,SAAQ,UAAS,UAAS,QAAM,CAAE,CAAC,CAElH,MAEK,OAAM,EAAU,GAAI,YAAW,CAAC,EAAG,EAAU,GAAI,CACtD,YAAM,IAAU,KAAM,EAAS,CAAO,EAC/B,KAAK,OAAO,SACnB,CACF,CAeA,kBAAuB,EAAW,EAAM,EAAQ,EAAS,CAOxD,GANA,EAAO,EAAK,OACZ,CAAI,CAAQ,WAAc,CAAC,EAAK,SAAS,EAAmB,EAC3D,GAAQ,GAER,EAAQ,UAAY,EAAK,SAAS,EAAmB,EAElD,EAAU,MAAM,IAAI,CAAI,EAC3B,KAAM,IAAI,OAAM,EAAmB,EAEpC,KAAM,GAAc,GAAW,CAAI,EACnC,GAAI,EAAY,OAAS,GACxB,KAAM,IAAI,OAAM,EAAsB,EAEvC,KAAM,GAAU,EAAQ,SAAW,GAC7B,EAAa,GAAW,CAAO,EACrC,GAAI,EAAW,OAAS,GACvB,KAAM,IAAI,OAAM,EAAyB,EAE1C,KAAM,GAAU,EAAU,QAAQ,SAAW,EAAQ,SAAW,EAChE,GAAI,EAAU,GACb,KAAM,IAAI,OAAM,EAAmB,EAEpC,KAAM,GAAgB,EAAU,QAAQ,eAAiB,EAAQ,eAAiB,GAClF,GAAI,EAAgB,GACnB,KAAM,IAAI,OAAM,EAAmB,EAEpC,KAAM,GAAc,GAAe,EAAW,EAAS,aAAa,GAAK,GAAI,MACvE,EAAiB,GAAe,EAAW,EAAS,gBAAgB,EACpE,EAAe,GAAe,EAAW,EAAS,cAAc,EAChE,EAAW,GAAe,EAAW,EAAS,UAAU,EACxD,EAAqB,GAAe,EAAW,EAAS,oBAAoB,GAAK,EACjF,EAAY,GAAe,EAAW,EAAS,WAAW,EAChE,GAAI,IAAa,QAAa,IAAuB,QAAc,GAAqB,GAAK,EAAqB,GACjH,KAAM,IAAI,OAAM,EAA+B,EAEhD,GAAI,GAAgB,GAAI,YAAW,CAAC,EACpC,KAAM,GAAa,EAAQ,WAC3B,GAAI,EAAY,CACf,GAAI,GAAiB,EACjB,EAAS,EACb,EAAW,QAAQ,GAAQ,GAAkB,EAAI,EAAK,MAAM,EAC5D,EAAgB,GAAI,YAAW,CAAc,EAC7C,EAAW,QAAQ,CAAC,EAAM,IAAS,CAClC,GAAI,EAAO,GACV,KAAM,IAAI,OAAM,EAA2B,EAE5C,GAAI,EAAK,OAAS,GACjB,KAAM,IAAI,OAAM,EAA2B,EAE5C,GAAS,EAAe,GAAI,aAAY,CAAC,CAAI,CAAC,EAAG,CAAM,EACvD,GAAS,EAAe,GAAI,aAAY,CAAC,EAAK,MAAM,CAAC,EAAG,EAAS,CAAC,EAClE,GAAS,EAAe,EAAM,EAAS,CAAC,EACxC,GAAU,EAAI,EAAK,MACtB,CAAG,CACD,CACD,GAAI,GAAoB,GAAe,EAAW,EAAS,mBAAmB,EAC9E,CAAI,GAAsB,QACzB,GAAoB,IAErB,GAAI,GAAwB,EACxB,EAAY,GAAe,EAAW,EAAS,WAAW,EAC9D,CAAI,GAAc,QACjB,GAAY,IAEb,GAAI,GAAmB,EACnB,EAAkB,GAAe,EAAW,EAAS,iBAAiB,EAC1E,CAAI,GAAoB,QACvB,GAAkB,IAEnB,KAAM,GAAwB,GAAe,EAAW,EAAS,uBAAuB,GAAK,EACvF,EAAwB,GAAe,EAAW,EAAS,uBAAuB,GAAK,EAC7F,CAAI,EACE,GAAO,aACX,KAAM,GAAO,OAEd,EAAmB,EAAO,KAC1B,EAAwB,GAAyB,CAAgB,GAElE,GAAI,GAAQ,EAAQ,OAAS,EAAU,QAAQ,OAAS,GACxD,GAAI,EAAU,OAAS,EAAU,uBAAyB,IACzD,GAAoB,IACpB,GAAyB,GAAa,CACtC,GAAI,EAAQ,QAAU,IAAS,EAAU,QAAQ,QAAU,IAAS,CAAC,EACpE,KAAM,IAAI,OAAM,EAAsB,EAEtC,EAAQ,EAET,CACD,EAAU,uBAAyB,EACnC,KAAM,SAAQ,UACd,KAAM,GAAQ,GAAe,EAAW,EAAS,OAAO,EAClD,EAAgB,GAAe,EAAW,EAAS,eAAe,EAClE,EAAgB,GAAe,EAAW,EAAS,eAAe,EACxE,GAAI,GAAiB,GAAe,EAAW,EAAS,gBAAgB,EACpE,EAA0B,GAAe,EAAW,EAAS,yBAAyB,EAC1F,KAAM,GAAS,GAAe,EAAW,EAAS,QAAQ,EAC1D,CAAI,GAAmB,QACtB,GAAiB,IAEd,GAAkB,IAA4B,QACjD,GAA0B,IAE3B,KAAM,GAAY,KAAM,IAAa,EAAW,EAAM,EAAQ,OAAO,OAAO,CAAE,EAAE,EAAS,CACxF,cACA,aACA,UACA,gBACA,cACA,iBACA,eACA,gBACA,QACA,WACA,QACA,gBACA,qBACA,oBACA,YACA,gBACA,YACA,iBACA,0BACA,SACA,kBACA,wBACA,uBACA,EAAC,EACF,MAAI,IACH,GAAU,uBAAyB,GAEpC,OAAO,OAAO,EAAW,CAAE,OAAM,UAAS,YAAU,CAAE,EAC/C,GAAI,IAAM,CAAS,CAC3B,CAEA,kBAA4B,EAAW,EAAM,EAAQ,EAAS,CAC7D,KAAM,GAAQ,EAAU,MAClB,EAAS,EAAU,OACnB,EAAoB,MAAM,KAAK,EAAM,OAAQ,GAAE,MACrD,GAAI,GAAY,GACZ,EACA,EACA,EACJ,EAAM,IAAI,EAAM,CAAS,EACzB,GAAI,CACH,GAAI,GACA,EACA,EAoBJ,GAnBI,EAAQ,WACX,GAAwB,GAAqB,EAAkB,MAEhE,EAAU,KAAO,EAAuB,GAAI,SAAQ,GAAW,EAA8B,CAAO,EACpG,CAAI,CAAQ,eAAiB,EAAU,WAAa,CAAC,EAAQ,eAC5D,GAAa,GAAI,IACjB,EAAW,KAAI,EACf,EAAgB,IAEhB,GAAU,UAAY,GAAI,SAAQ,GAAW,EAA6B,CAAO,EAC5E,EAAO,aACX,KAAM,GAAO,OAEd,EAAa,GAEd,EAAY,KAAM,IAAgB,EAAQ,EAAY,EAAU,OAAQ,CAAO,EAC/E,EAAU,KAAO,EACjB,EAAM,IAAI,EAAM,CAAS,EACzB,EAAU,SAAW,EACjB,EAAe,CAClB,GAAI,GAAmB,EACvB,KAAM,GAAO,EAAW,UACxB,KAAM,SAAQ,IAAI,CAAC,EAAU,UAAW,CAAqB,CAAC,EAC9D,GAAI,GACJ,EACC,GAAmB,MAAM,KAAK,EAAM,OAAM,CAAE,EAAE,KAAK,GAAa,EAAU,mBAAmB,EACzF,GACH,KAAM,GAAiB,WAEhB,GAAoB,EAAiB,MAE9C,GADA,EAAU,oBAAsB,GAC5B,CAAC,EAAQ,eAAgB,CAE5B,KAAM,GAAc,KAAM,IAAmB,EAAM,EAAG,EAAY,EAC5D,EAAkB,GAAI,UAAS,CAAW,EAChD,CAAI,CAAC,EAAU,WAAa,EAAQ,YACnC,GAAU,EAAiB,GAAI,EAAU,SAAS,EAEnD,CAAI,CAAU,MACb,IAAU,EAAiB,GAAI,EAAW,EAC1C,GAAU,EAAiB,GAAI,EAAW,GAE1C,IAAU,EAAiB,GAAI,EAAU,cAAc,EACvD,GAAU,EAAiB,GAAI,EAAU,gBAAgB,GAE1D,KAAM,GAAO,gBAAgB,GAAI,YAAW,CAAW,CAAC,EACxD,EAAmB,EACnB,CACD,KAAM,IAAU,EAAQ,EAAM,CAAgB,EAC9C,MAAO,GAAU,mBACjB,CAED,GADA,EAAU,OAAS,EAAU,OACzB,EAAU,MAAO,CACpB,KAAM,GAAyB,GAAY,EAAU,kBAAkB,EACvE,GAAa,EAAwB,GAAI,OAAO,EAAU,MAAM,CAAC,CACpE,SAAa,EAAU,QAAU,GAC9B,KAAM,IAAI,OAAM,EAAsB,EAEvC,SAAU,QAAU,EAAU,OACvB,CACP,OAAQ,EAAP,CACD,KAAK,IAAiB,EAAU,qBAAyB,CAAC,GAAiB,EAAU,cACpF,GAAM,eAAiB,EAAU,oBAAsB,GACnD,EAAU,kBACb,GAAU,QAAU,EAAU,mBAGhC,EAAM,OAAO,CAAI,EACX,CACR,QAAW,CACT,IACI,GACH,GAED,CACF,CAEA,kBAA+B,EAAQ,EAAQ,EAAQ,EAAS,CAC/D,KAAM,CACL,cACA,iBACA,eACA,WACA,QACA,QACA,YACA,iBACA,0BACA,YACA,UACA,gBACA,aACA,gBACA,gBACA,aACA,SACA,qBACA,oBACA,kBACA,wBACA,yBACG,EACE,EAAY,QAAQ,GAAY,EAAS,MAAM,EAC/C,EAAa,IAAU,GAAK,CAAC,EACnC,GAAI,GACJ,GAAI,GAAa,CAAC,EAAW,CAC5B,EAAmB,GAAI,YAAW,GAAoB,OAAS,CAAC,EAChE,KAAM,IAAoB,GAAY,CAAgB,EACtD,GAAU,GAAmB,EAAG,EAAmB,EACnD,GAAS,EAAkB,GAAqB,CAAC,EACjD,GAAS,GAAmB,EAAG,CAAkB,CACnD,KACE,GAAmB,GAAI,YAAW,CAAC,EAEpC,GAAI,GACA,EACJ,GAAI,EAAmB,CACtB,EAAiC,GAAI,YAAW,EAAK,GAAiB,EAAI,GAAM,GAAe,EAAI,EAAE,EACrG,KAAM,IAAkC,GAAY,CAA8B,EAClF,GAAU,GAAiC,EAAG,EAAkC,EAChF,GAAU,GAAiC,EAAG,EAA+B,OAAS,CAAC,EACvF,KAAM,IAAkC,EAAO,GAAiB,EAAM,GAAM,GAAe,EAAM,GACjG,GAAS,GAAiC,EAAG,EAA+B,EAC5E,GAAU,GAAiC,EAAG,KAAK,MAAM,EAAQ,YAAY,QAAO,EAAK,GAAI,CAAC,EAC1F,GACH,GAAU,GAAiC,EAAG,KAAK,MAAM,EAAe,QAAO,EAAK,GAAI,CAAC,EAEtF,GACH,GAAU,GAAiC,GAAI,KAAK,MAAM,EAAa,QAAO,EAAK,GAAI,CAAC,EAEzF,GAAI,CACH,EAAoB,GAAI,YAAW,EAAE,EACrC,KAAM,IAAqB,GAAY,CAAiB,EAClD,GAAkB,GAAY,EAAQ,WAAW,EACvD,GAAU,GAAoB,EAAG,EAAoB,EACrD,GAAU,GAAoB,EAAG,EAAE,EACnC,GAAU,GAAoB,EAAG,EAAyB,EAC1D,GAAU,GAAoB,GAAI,EAAE,EACpC,GAAa,GAAoB,GAAI,EAAe,EACpD,GAAa,GAAoB,GAAI,GAAY,CAAc,GAAK,EAAe,EACnF,GAAa,GAAoB,GAAI,GAAY,CAAY,GAAK,EAAe,CACjF,MAAC,CACD,EAAoB,GAAI,YAAW,CAAC,CACpC,CACH,KACE,GAAoB,EAAiC,GAAI,YAAW,CAAC,EAEtE,KAAM,GAAY,CACjB,QAAS,GAAW,GACpB,gBACA,QACA,UAAW,QAAQ,CAAS,EAC5B,aAAc,GACd,cACA,YAAa,GACb,aACA,mBAAoB,EAAQ,GAAI,YAAW,GAA0B,CAAC,EAAI,GAAI,YAAW,CAAC,EAC1F,iCACA,oBACA,mBACA,gBACA,oBACA,kBACA,wBACA,uBACF,EACC,GAAI,GAAmB,EAAU,iBAAmB,EAChD,EAAU,GACd,CAAI,EACH,GAAU,EAAU,IAErB,GAAI,GAAoB,GACxB,CAAI,EACH,GAAoB,IAEjB,GACH,GAAU,QAAU,EAAU,QAAU,GAAgB,EAAU,QAAU,IAEzE,GACH,GAAU,EAAU,GACf,GACJ,GAAU,QAAU,EAAU,QAAU,GAAc,EAAU,QAAU,GAC1E,EAAoB,GAChB,GACH,GAAU,iBAAiB,GAAK,MAInC,EAAU,kBAAoB,EAC9B,KAAM,GAAc,EAAU,YAAc,GAAI,YAAW,EAAE,EACvD,EAAa,GAAY,CAAW,EAC1C,GAAU,EAAY,EAAG,EAAU,OAAO,EAC1C,GAAU,EAAY,EAAG,CAAO,EAChC,GAAU,EAAY,EAAG,CAAiB,EAC1C,KAAM,GAAY,GAAI,aAAY,CAAC,EAC7B,EAAW,GAAY,CAAS,EACtC,GAAI,GACJ,CAAI,CAAQ,YAAc,GACzB,EAAc,GACR,CAAI,CAAQ,YAAc,GAChC,EAAc,GAEd,EAAc,EAAQ,YAEvB,GAAU,EAAU,EAAM,GAAY,YAAc,EAAK,EAAY,WAAY,IAAK,EAAK,EAAY,WAAU,EAAK,CAAC,EACvH,GAAU,EAAU,EAAO,GAAY,YAAW,EAAK,MAAS,EAAM,EAAY,SAAQ,EAAK,IAAO,EAAK,EAAY,QAAO,CAAE,EAChI,KAAM,GAAiB,EAAU,GACjC,GAAU,EAAY,EAAG,CAAc,EACvC,GAAU,EAAY,GAAI,EAAY,MAAM,EAC5C,KAAM,IAAmB,EAAiB,OAAS,EAA+B,OAAS,EAAkB,OAAS,EAAU,cAAc,OAC9I,GAAU,EAAY,GAAI,EAAgB,EAC1C,KAAM,GAAmB,GAAI,YAAW,GAAK,EAAY,OAAS,EAAgB,EAC5E,EAAkB,GAAY,CAAgB,EACpD,GAAU,EAAiB,EAAG,EAA2B,EACzD,GAAS,EAAkB,EAAa,CAAC,EACzC,GAAS,EAAkB,EAAa,EAAE,EAC1C,GAAS,EAAkB,EAAkB,GAAK,EAAY,MAAM,EACpE,GAAS,EAAkB,EAAgC,GAAK,EAAY,OAAS,EAAiB,MAAM,EAC5G,GAAS,EAAkB,EAAmB,GAAK,EAAY,OAAS,EAAiB,OAAS,EAA+B,MAAM,EACvI,GAAS,EAAkB,EAAU,cAAe,GAAK,EAAY,OAAS,EAAiB,OAAS,EAA+B,OAAS,EAAkB,MAAM,EACxK,GAAI,IACA,GAAiB,EACrB,GAAI,EAAQ,CACX,EAAmB,EAAU,iBAAmB,EAAO,KACvD,KAAM,IAAQ,KAAM,IAAY,EAAO,QAAS,CAC/C,UAAW,GACX,QACA,WACA,qBACA,UAAW,GAAa,EACxB,qBAAsB,GAAa,GAAc,GAAkB,EAAK,IACxE,OAAQ,GACR,aACA,YACA,eACA,EAAE,CAAM,EACT,KAAM,GAAO,gBAAgB,CAAgB,EAC7C,EAAU,YAAc,GACxB,GAAS,KAAM,IAAY,GAAO,EAAQ,EAAQ,EAAG,EAAkB,EAAQ,CAAE,aAAY,QAAQ,GACrG,GAAiB,GAAO,MAC1B,KACE,MAAM,GAAO,gBAAgB,CAAgB,EAC7C,EAAU,YAAc,GAEzB,GAAI,IAAsB,GAAI,YAAW,CAAC,EACtC,GAAoB,GAAuB,EAS/C,GARI,GACH,IAAsB,GAAI,YAAW,EAAS,EAA0B,GAAK,GAAO,EAA0B,GAAK,EAAG,EACtH,GAAqB,GAAY,EAAmB,EAChD,GACH,IAAuB,EACvB,GAAU,GAAoB,EAAG,EAAgC,IAG/D,EAAQ,CACX,KAAM,IAAY,GAAO,UAQzB,GAPK,EAAC,GAAa,IAAc,KAAc,QAC9C,IAAU,EAAY,GAAI,EAAS,EACnC,EAAU,UAAY,GAClB,GACH,GAAU,GAAoB,GAAsB,EAAS,GAG3D,EAAO,CACV,KAAM,IAAyB,GAAY,EAAU,kBAAkB,EACvE,GAAU,GAAwB,EAAG,EAAqB,EAC1D,GAAU,GAAwB,EAAG,EAAuB,EAC5D,GAAU,EAAY,GAAI,EAAW,EACrC,GAAa,GAAwB,GAAI,OAAO,EAAc,CAAC,EAC/D,GAAU,EAAY,GAAI,EAAW,EACrC,GAAa,GAAwB,EAAG,OAAO,CAAgB,CAAC,EAC5D,GACH,IAAa,GAAoB,GAAuB,EAAG,OAAO,EAAc,CAAC,EACjF,GAAa,GAAoB,GAAuB,GAAI,OAAO,CAAgB,CAAC,EAExF,KACG,IAAU,EAAY,GAAI,EAAc,EACxC,GAAU,EAAY,GAAI,CAAgB,EACtC,GACH,IAAU,GAAoB,GAAuB,EAAG,EAAc,EACtE,GAAU,GAAoB,GAAuB,EAAG,CAAgB,EAG1E,CACD,CAAI,EACH,KAAM,GAAO,gBAAgB,EAAmB,EAEjD,KAAM,IAAS,EAAiB,OAAS,GAAiB,GAAoB,OAC9E,cAAO,OAAO,EAAW,CAAE,kBAAgB,cAAa,iBAAgB,eAAc,iBAAgB,YAAW,SAAQ,GAClH,CACR,CAEA,kBAAyB,EAAW,EAAS,EAAS,CACrD,KAAM,GAAS,EAAU,OACnB,EAAQ,EAAU,MACxB,GAAI,GAAS,EACT,EAAsB,EACtB,EAAkB,EAAU,OAC5B,EAAc,EAAM,KACxB,SAAW,EAAG,IAAc,GAC3B,GAAuB,GACtB,EAAU,YAAY,OACtB,EAAU,WAAW,OACrB,EAAU,mBAAmB,OAC7B,EAAU,iBAAiB,OAC3B,EAAU,+BAA+B,OACzC,EAAU,kBAAkB,OAC5B,EAAU,cAAc,OAE1B,GAAI,GAAQ,EAAQ,OAAS,EAAU,QAAQ,OAAS,GACxD,GAAI,GAAmB,IAAe,GAAuB,IAAe,GAAe,GAAa,CACvG,GAAI,EAAQ,QAAU,IAAS,EAAU,QAAQ,QAAU,GAC1D,KAAM,IAAI,OAAM,EAAsB,EAEtC,EAAQ,EAET,CACD,KAAM,GAAiB,GAAI,YAAW,EAAuB,GAAQ,GAAwC,GAA0B,EACjI,EAAgB,GAAY,CAAc,EAChD,GAAI,GAAW,EAAQ,OACtB,GAAI,EAAQ,QAAU,GACrB,GAAU,EAAe,EAAS,GAAI,EAAQ,MAAM,MAEpD,MAAM,IAAI,OAAM,EAAmB,EAGrC,SAAW,CAAC,EAAgB,IAAc,OAAM,KAAK,EAAM,OAAM,CAAE,EAAE,UAAW,CAC/E,KAAM,CACL,cACA,qBACA,mBACA,gBACA,aACA,gBACA,cACA,YACA,QACA,kBACA,wBACA,yBACG,EACJ,GAAI,GACA,EACJ,GAAI,EAAU,kBAAmB,CAChC,EAAoB,EAAU,kBAC9B,EAAiC,GAAI,YAAW,CAAC,EACjD,KAAM,GAAkC,GAAY,CAA8B,EAClF,GAAU,EAAiC,EAAG,EAAkC,EAChF,GAAU,EAAiC,EAAG,EAA+B,OAAS,CAAC,EACvF,GAAS,EAAiC,EAAG,CAAG,EAChD,GAAU,EAAiC,EAAG,KAAK,MAAM,EAAU,YAAY,QAAO,EAAK,GAAI,CAAC,CACnG,KACG,GAAoB,EAAiC,GAAI,YAAW,CAAC,EAEtE,KAAM,GAAmB,EAAmB,OAAS,EAAiB,OAAS,EAA+B,OAAS,EAAkB,OAAS,EAAc,OAyBhK,GAxBA,GAAU,EAAe,EAAQ,EAA6B,EAC9D,GAAU,EAAe,EAAS,EAAG,CAAa,EAClD,GAAS,EAAgB,EAAa,EAAS,CAAC,EAChD,GAAU,EAAe,EAAS,GAAI,CAAgB,EACtD,GAAU,EAAe,EAAS,GAAI,EAAW,MAAM,EACvD,GAAU,EAAe,EAAS,GAAI,CAAqB,EAC3D,CAAI,CACH,GAAU,EAAe,EAAS,GAAI,CAAqB,EACjD,GAAa,GACvB,GAAS,EAAe,EAAS,GAAI,EAAwB,EAE9D,CAAI,CACH,GAAU,EAAe,EAAS,GAAI,EAAW,EAEjD,GAAU,EAAe,EAAS,GAAI,EAAU,MAAM,EAEvD,GAAS,EAAgB,EAAa,EAAS,EAAE,EACjD,GAAS,EAAgB,EAAoB,EAAS,GAAK,EAAY,MAAM,EAC7E,GAAS,EAAgB,EAAkB,EAAS,GAAK,EAAY,OAAS,EAAmB,MAAM,EACvG,GAAS,EAAgB,EAAgC,EAAS,GAAK,EAAY,OAAS,EAAmB,OAAS,EAAiB,MAAM,EAC/I,GAAS,EAAgB,EAAmB,EAAS,GAAK,EAAY,OAAS,EAAmB,OAAS,EAAiB,OAAS,EAA+B,MAAM,EAC1K,GAAS,EAAgB,EAAe,EAAS,GAAK,EAAY,OAAS,EAAmB,OAAS,EAAiB,OAAS,EAA+B,OAAS,EAAkB,MAAM,EACjM,GAAS,EAAgB,EAAY,EAAS,GAAK,EAAY,OAAS,CAAgB,EACxF,GAAU,GAAK,EAAY,OAAS,EAAmB,EAAW,OAC9D,EAAQ,WACX,GAAI,CACH,EAAQ,WAAW,EAAiB,EAAG,EAAM,KAAM,GAAI,IAAM,CAAS,CAAC,CACvE,MAAC,CAED,CAEF,CACD,CAAI,EACH,IAAU,EAAe,EAAQ,EAAkC,EACnE,GAAa,EAAe,EAAS,EAAG,OAAO,EAAE,CAAC,EAClD,GAAU,EAAe,EAAS,GAAI,EAAE,EACxC,GAAU,EAAe,EAAS,GAAI,EAAE,EACxC,GAAa,EAAe,EAAS,GAAI,OAAO,CAAW,CAAC,EAC5D,GAAa,EAAe,EAAS,GAAI,OAAO,CAAW,CAAC,EAC5D,GAAa,EAAe,EAAS,GAAI,OAAO,CAAmB,CAAC,EACpE,GAAa,EAAe,EAAS,GAAI,OAAO,CAAe,CAAC,EAChE,GAAU,EAAe,EAAS,GAAI,EAA0C,EAChF,GAAa,EAAe,EAAS,GAAI,OAAO,CAAe,EAAI,OAAO,CAAmB,CAAC,EAC9F,GAAU,EAAe,EAAS,GAAI,EAA2B,EACjE,EAAc,GACd,EAAkB,GAClB,EAAsB,GACtB,GAAU,IAEX,GAAU,EAAe,EAAQ,EAA4B,EAC7D,GAAU,EAAe,EAAS,EAAG,CAAW,EAChD,GAAU,EAAe,EAAS,GAAI,CAAW,EACjD,GAAU,EAAe,EAAS,GAAI,CAAmB,EACzD,GAAU,EAAe,EAAS,GAAI,CAAe,EACrD,KAAM,GAAO,gBAAgB,CAAc,EACvC,GAAW,EAAQ,QACtB,KAAM,GAAO,gBAAgB,CAAO,CAEtC,CAEA,YAA4B,EAAM,EAAO,EAAK,CAC7C,GAAI,EAAK,YACR,MAAI,IAAS,EACL,EAAK,MAAM,EAAO,CAAG,EAAE,YAAW,EAElC,EAAK,cAEP,CACN,KAAM,GAAa,GAAI,YACvB,MAAO,IAAI,SAAQ,CAAC,EAAS,IAAW,CACvC,EAAW,OAAS,GAAS,EAAQ,EAAM,OAAO,MAAM,EACxD,EAAW,QAAU,IAAM,EAAO,EAAW,KAAK,EAClD,EAAW,kBAAkB,GAAS,EAAM,EAAK,MAAM,EAAO,CAAG,EAAI,CAAI,CAC5E,CAAG,CACD,CACF,CAEA,kBAAyB,EAAQ,EAAM,EAAQ,EAAG,CAEjD,KAAM,GAAU,EAEhB,kBAA4B,CAC3B,GAAI,EAAQ,EAAK,KAAM,CACtB,KAAM,GAAc,KAAM,IAAmB,EAAM,EAAO,EAAQ,SAAS,EAC3E,KAAM,GAAO,gBAAgB,GAAI,YAAW,CAAW,CAAC,EACxD,GAAS,UACT,KAAM,GAAU,CAChB,CACD,CACF,CAEA,YAAqB,EAAM,CAC1B,GAAI,EACH,MAAS,QAAO,EAAK,QAAS,GAAI,OAAO,WAAc,GAAK,OAAO,GAAK,CAE1E,CAEA,YAAwB,EAAW,EAAS,EAAM,CACjD,MAAO,GAAQ,KAAU,OAAY,EAAU,QAAQ,GAAQ,EAAQ,EACxE,CAEA,YAAkC,EAAkB,CACnD,MAAO,GAAoB,EAAK,MAAK,MAAM,EAAmB,KAAK,EAAI,EACxE,CAEA,YAAkB,EAAM,EAAQ,EAAO,CACtC,EAAK,SAAS,EAAQ,CAAK,CAC5B,CAEA,YAAmB,EAAM,EAAQ,EAAO,CACvC,EAAK,UAAU,EAAQ,EAAO,EAAI,CACnC,CAEA,YAAmB,EAAM,EAAQ,EAAO,CACvC,EAAK,UAAU,EAAQ,EAAO,EAAI,CACnC,CAEA,YAAsB,EAAM,EAAQ,EAAO,CAC1C,EAAK,aAAa,EAAQ,EAAO,EAAI,CACtC,CAEA,YAAkB,EAAO,EAAY,EAAQ,CAC5C,EAAM,IAAI,EAAY,CAAM,CAC7B,CAEA,YAAqB,EAAO,CAC3B,MAAO,IAAI,UAAS,EAAM,MAAM,CACjC,CC5tBA,GAAI,IACJ,GAAI,CACH,GAAU,GAAY,GACvB,MAAE,CAEF,CACA,GAAU,CAAE,UAAO,CAAE,EACrBC,GAAmB,EAAS,ECP5B,GAAU,CAAEzB,WAASgB,WAAS,wBC/B9B,YAAmB,EAAS,CAC1B,MAAQ,OAAO,IAAY,aAAiB,IAAY,IAC1D,CAGA,YAAkB,EAAS,CACzB,MAAQ,OAAO,IAAY,UAAc,IAAY,IACvD,CAGA,YAAiB,EAAU,CACzB,MAAI,OAAM,QAAQ,CAAQ,EAAU,EAC3B,GAAU,CAAQ,EAAU,GAE9B,CAAE,CAAQ,CACnB,CAGA,YAAgB,EAAQ,EAAQ,CAC9B,GAAI,GAAO,EAAQ,EAAK,EAExB,GAAI,EAGF,IAFA,EAAa,OAAO,KAAK,CAAM,EAE1B,EAAQ,EAAG,EAAS,EAAW,OAAQ,EAAQ,EAAQ,GAAS,EACnE,EAAM,EAAW,GACjB,EAAO,GAAO,EAAO,GAIzB,MAAO,EACT,CAGA,YAAgB,EAAQ,EAAO,CAC7B,GAAI,GAAS,GAAI,EAEjB,IAAK,EAAQ,EAAG,EAAQ,EAAO,GAAS,EACtC,GAAU,EAGZ,MAAO,EACT,CAGA,YAAwB,EAAQ,CAC9B,MAAQ,KAAW,GAAO,OAAO,oBAAsB,EAAI,CAC7D,CAGwBU,aAAQ,GACTA,YAASC,GACVD,WAAU,GACXA,UAAW,GACHA,kBAAG,GAChCA,UAAgC,GCtDhC,YAAuB,EAAQ,EAAM,CAEnC,MAAM,KAAK,IAAI,EAEf,KAAK,KAAO,gBACZ,KAAK,OAAS,EACd,KAAK,KAAO,EACZ,KAAK,QAAW,MAAK,QAAU,oBAAuB,MAAK,KAAO,IAAM,KAAK,KAAK,SAAU,EAAG,IAG/F,CAAI,KAAM,kBAER,MAAM,kBAAkB,KAAM,KAAK,WAAW,EAG9C,KAAK,MAAS,GAAI,OAAK,EAAI,OAAS,EAExC,CAIAE,GAAc,UAAY,OAAO,OAAO,MAAM,SAAS,EACvDA,GAAc,UAAU,YAAcA,GAGtCA,GAAc,UAAU,SAAW,SAAkB,EAAS,CAC5D,GAAI,GAAS,KAAK,KAAO,KAEzB,UAAU,KAAK,QAAU,mBAErB,CAAC,GAAW,KAAK,MACnB,IAAU,IAAM,KAAK,KAAK,SAAQ,GAG7B,CACT,EAGA,OAAiBA,GCvCbF,GAASlG,GAGb,YAAc,EAAM,EAAQ,EAAU,EAAM,EAAQ,CAClD,KAAK,KAAW,EAChB,KAAK,OAAW,EAChB,KAAK,SAAW,EAChB,KAAK,KAAW,EAChB,KAAK,OAAW,CAClB,CAGAqG,GAAK,UAAU,WAAa,SAAoB,EAAQ,EAAW,CACjE,GAAI,GAAM,EAAO,EAAM,EAAK,EAE5B,GAAI,CAAC,KAAK,OAAQ,MAAO,MAQzB,IANA,EAAS,GAAU,EACnB,EAAY,GAAa,GAEzB,EAAO,GACP,EAAQ,KAAK,SAEN,EAAQ,GAAK;AAAA,kBAA2B,QAAQ,KAAK,OAAO,OAAO,EAAQ,CAAC,CAAC,IAAM,IAExF,GADA,GAAS,EACL,KAAK,SAAW,EAAS,EAAY,EAAI,EAAI,CAC/C,EAAO,QACP,GAAS,EACT,KACD,CAMH,IAHA,EAAO,GACP,EAAM,KAAK,SAEJ,EAAM,KAAK,OAAO,QAAU;AAAA,kBAA2B,QAAQ,KAAK,OAAO,OAAO,CAAG,CAAC,IAAM,IAEjG,GADA,GAAO,EACH,EAAM,KAAK,SAAY,EAAY,EAAI,EAAI,CAC7C,EAAO,QACP,GAAO,EACP,KACD,CAGH,SAAU,KAAK,OAAO,MAAM,EAAO,CAAG,EAE/BH,GAAO,OAAO,IAAK,CAAM,EAAI,EAAO,EAAU,EAAO;AAAA,EACrDA,GAAO,OAAO,IAAK,EAAS,KAAK,SAAW,EAAQ,EAAK,MAAM,EAAI,GAC5E,EAGAG,GAAK,UAAU,SAAW,SAAkB,EAAS,CACnD,GAAI,GAAS,EAAQ,GAErB,MAAI,MAAK,MACP,IAAS,OAAS,KAAK,KAAO,MAGhC,GAAS,WAAc,MAAK,KAAO,GAAK,YAAe,MAAK,OAAS,GAEhE,GACH,GAAU,KAAK,aAEX,GACF,IAAS;AAAA,EAAQ,IAId,CACT,EAGA,OAAiBA,GCzEbD,GAAgBpG,GAEhB,GAA2B,CAC7B,OACA,UACA,YACA,aACA,YACA,YACA,eACA,cACF,EAEI,GAAkB,CACpB,SACA,WACA,SACF,EAEA,YAA6B,EAAK,CAChC,GAAI,GAAS,GAEb,MAAI,KAAQ,MACV,OAAO,KAAK,CAAG,EAAE,QAAQ,SAAU,EAAO,CACxC,EAAI,GAAO,QAAQ,SAAU,EAAO,CAClC,EAAO,OAAO,CAAK,GAAK,CAChC,CAAO,CACP,CAAK,EAGI,CACT,CAEA,YAAc,EAAK,EAAS,CAoB1B,GAnBA,EAAU,GAAW,GAErB,OAAO,KAAK,CAAO,EAAE,QAAQ,SAAU,EAAM,CAC3C,GAAI,GAAyB,QAAQ,CAAI,IAAM,GAC7C,KAAM,IAAIoG,IAAc,mBAAqB,EAAO,8BAAgC,EAAM,cAAc,CAE9G,CAAG,EAGD,KAAK,IAAe,EACpB,KAAK,KAAe,EAAQ,MAAmB,KAC/C,KAAK,QAAe,EAAQ,SAAmB,UAAY,CAAE,MAAO,IACpE,KAAK,UAAe,EAAQ,WAAmB,SAAU,EAAM,CAAE,MAAO,IACxE,KAAK,WAAe,EAAQ,YAAmB,KAC/C,KAAK,UAAe,EAAQ,WAAmB,KAC/C,KAAK,UAAe,EAAQ,WAAmB,KAC/C,KAAK,aAAe,EAAQ,cAAmB,KAC/C,KAAK,aAAe,GAAoB,EAAQ,cAAmB,IAAI,EAEnE,GAAgB,QAAQ,KAAK,IAAI,IAAM,GACzC,KAAM,IAAIA,IAAc,iBAAmB,KAAK,KAAO,uBAAyB,EAAM,cAAc,CAExG,CAEA,OAAiBE,GCxDbJ,GAAgBlG,GAChBoG,GAAgBnG,GAChBqG,GAAgBnG,GAGpB,YAAqB,EAAQ,EAAM,EAAQ,CACzC,GAAI,GAAU,GAEd,SAAO,QAAQ,QAAQ,SAAU,EAAgB,CAC/C,EAAS,GAAY,EAAgB,EAAM,CAAM,CACrD,CAAG,EAED,EAAO,GAAM,QAAQ,SAAU,EAAa,CAC1C,EAAO,QAAQ,SAAU,EAAc,EAAe,CACpD,CAAI,CAAa,MAAQ,EAAY,KAAO,EAAa,OAAS,EAAY,MAC5E,EAAQ,KAAK,CAAa,CAElC,CAAK,EAED,EAAO,KAAK,CAAW,CAC3B,CAAG,EAEM,EAAO,OAAO,SAAU,EAAM,EAAO,CAC1C,MAAO,GAAQ,QAAQ,CAAK,IAAM,EACtC,CAAG,CACH,CAGA,aAAoC,CAClC,GAAI,GAAS,CACP,OAAQ,CAAE,EACV,SAAU,CAAE,EACZ,QAAS,CAAE,EACX,SAAU,CAAE,CACpB,EAAS,EAAO,EAEd,WAAqB,EAAM,CACzB,EAAO,EAAK,MAAM,EAAK,KAAO,EAAO,SAAY,EAAK,KAAO,CAC9D,CAED,IAAK,EAAQ,EAAG,EAAS,UAAU,OAAQ,EAAQ,EAAQ,GAAS,EAClE,UAAU,GAAO,QAAQ,CAAW,EAEtC,MAAO,EACT,CAGA,YAAgB,EAAY,CAC1B,KAAK,QAAW,EAAW,SAAY,GACvC,KAAK,SAAW,EAAW,UAAY,GACvC,KAAK,SAAW,EAAW,UAAY,GAEvC,KAAK,SAAS,QAAQ,SAAU,EAAM,CACpC,GAAI,EAAK,UAAY,EAAK,WAAa,SACrC,KAAM,IAAIiG,IAAc,iHAAiH,CAE/I,CAAG,EAED,KAAK,iBAAmB,GAAY,KAAM,WAAY,CAAE,GACxD,KAAK,iBAAmB,GAAY,KAAM,WAAY,CAAE,GACxD,KAAK,gBAAmB,GAAW,KAAK,iBAAkB,KAAK,gBAAgB,CACjF,CAGAG,GAAO,QAAU,KAGjBA,GAAO,OAAS,UAAwB,CACtC,GAAI,GAAS,EAEb,OAAQ,UAAU,YACX,GACH,EAAUA,GAAO,QACjB,EAAQ,UAAU,GAClB,UAEG,GACH,EAAU,UAAU,GACpB,EAAQ,UAAU,GAClB,cAGA,KAAM,IAAIH,IAAc,sDAAsD,EAMlF,GAHA,EAAUF,GAAO,QAAQ,CAAO,EAChC,EAAQA,GAAO,QAAQ,CAAK,EAExB,CAAC,EAAQ,MAAM,SAAU,EAAQ,CAAE,MAAO,aAAkBK,GAAO,CAAE,EACvE,KAAM,IAAIH,IAAc,2FAA2F,EAGrH,GAAI,CAAC,EAAM,MAAM,SAAU,EAAM,CAAE,MAAO,aAAgBE,GAAK,CAAE,EAC/D,KAAM,IAAIF,IAAc,oFAAoF,EAG9G,MAAO,IAAIG,IAAO,CAChB,QAAS,EACT,SAAU,CACd,CAAG,CACH,EAGA,OAAiBA,GCzGbD,GAAOtG,GAEX,GAAiB,GAAIsG,IAAK,wBAAyB,CACjD,KAAM,SACN,UAAW,SAAU,EAAM,CAAE,MAAO,KAAS,KAAO,EAAO,EAAK,CAClE,CAAC,ECLGA,GAAOtG,GAEX,GAAiB,GAAIsG,IAAK,wBAAyB,CACjD,KAAM,WACN,UAAW,SAAU,EAAM,CAAE,MAAO,KAAS,KAAO,EAAO,EAAK,CAClE,CAAC,ECLGA,GAAOtG,GAEXwG,GAAiB,GAAIF,IAAK,wBAAyB,CACjD,KAAM,UACN,UAAW,SAAU,EAAM,CAAE,MAAO,KAAS,KAAO,EAAO,EAAK,CAClE,CAAC,ECAGC,GAASvG,GAGb,GAAiB,GAAIuG,IAAO,CAC1B,SAAU,CACRtG,GACAE,GACAM,EACD,CACH,CAAC,ECdG6F,GAAOtG,GAEX,YAAyB,EAAM,CAC7B,GAAI,IAAS,KAAM,MAAO,GAE1B,GAAI,GAAM,EAAK,OAEf,MAAQ,KAAQ,GAAK,IAAS,KACtB,IAAQ,GAAM,KAAS,QAAU,IAAS,QAAU,IAAS,OACvE,CAEA,aAA6B,CAC3B,MAAO,KACT,CAEA,YAAgB,EAAQ,CACtB,MAAO,KAAW,IACpB,CAEA,OAAiB,GAAIsG,IAAK,yBAA0B,CAClD,KAAM,SACN,QAAS,GACT,UAAW,GACX,UAAW,GACX,UAAW,CACT,UAAW,UAAY,CAAE,MAAO,GAAS,EACzC,UAAW,UAAY,CAAE,MAAO,MAAS,EACzC,UAAW,UAAY,CAAE,MAAO,MAAS,EACzC,UAAW,UAAY,CAAE,MAAO,MAAS,CAC1C,EACD,aAAc,WAChB,CAAC,EC/BGA,GAAOtG,GAEX,YAA4B,EAAM,CAChC,GAAI,IAAS,KAAM,MAAO,GAE1B,GAAI,GAAM,EAAK,OAEf,MAAQ,KAAQ,GAAM,KAAS,QAAU,IAAS,QAAU,IAAS,SAC7D,IAAQ,GAAM,KAAS,SAAW,IAAS,SAAW,IAAS,QACzE,CAEA,YAA8B,EAAM,CAClC,MAAO,KAAS,QACT,IAAS,QACT,IAAS,MAClB,CAEA,YAAmB,EAAQ,CACzB,MAAO,QAAO,UAAU,SAAS,KAAK,CAAM,IAAM,kBACpD,CAEA,OAAiB,GAAIsG,IAAK,yBAA0B,CAClD,KAAM,SACN,QAAS,GACT,UAAW,GACX,UAAW,GACX,UAAW,CACT,UAAW,SAAU,EAAQ,CAAE,MAAO,GAAS,OAAS,OAAU,EAClE,UAAW,SAAU,EAAQ,CAAE,MAAO,GAAS,OAAS,OAAU,EAClE,UAAW,SAAU,EAAQ,CAAE,MAAO,GAAS,OAAS,OAAU,CACnE,EACD,aAAc,WAChB,CAAC,EChCGJ,GAASlG,GACTsG,GAASrG,GAEb,YAAmB,EAAG,CACpB,MAAS,KAAe,GAAO,GAAK,IAC3B,IAAe,GAAO,GAAK,IAC3B,IAAe,GAAO,GAAK,GACtC,CAEA,YAAmB,EAAG,CACpB,MAAS,KAAe,GAAO,GAAK,EACtC,CAEA,YAAmB,EAAG,CACpB,MAAS,KAAe,GAAO,GAAK,EACtC,CAEA,YAA4B,EAAM,CAChC,GAAI,IAAS,KAAM,MAAO,GAE1B,GAAI,GAAM,EAAK,OACX,EAAQ,EACR,EAAY,GACZ,EAEJ,GAAI,CAAC,EAAK,MAAO,GASjB,GAPA,EAAK,EAAK,GAGN,KAAO,KAAO,IAAO,MACvB,GAAK,EAAK,EAAE,IAGV,IAAO,IAAK,CAEd,GAAI,EAAQ,IAAM,EAAK,MAAO,GAK9B,GAJA,EAAK,EAAK,EAAE,GAIR,IAAO,IAAK,CAId,IAFA,IAEO,EAAQ,EAAK,IAElB,GADA,EAAK,EAAK,GACN,IAAO,IACX,IAAI,IAAO,KAAO,IAAO,IAAK,MAAO,GACrC,EAAY,GAEd,MAAO,IAAa,IAAO,GAC5B,CAGD,GAAI,IAAO,IAAK,CAId,IAFA,IAEO,EAAQ,EAAK,IAElB,GADA,EAAK,EAAK,GACN,IAAO,IACX,IAAI,CAAC,GAAU,EAAK,WAAW,CAAK,CAAC,EAAG,MAAO,GAC/C,EAAY,GAEd,MAAO,IAAa,IAAO,GAC5B,CAGD,KAAO,EAAQ,EAAK,IAElB,GADA,EAAK,EAAK,GACN,IAAO,IACX,IAAI,CAAC,GAAU,EAAK,WAAW,CAAK,CAAC,EAAG,MAAO,GAC/C,EAAY,GAEd,MAAO,IAAa,IAAO,GAC5B,CAKD,GAAI,IAAO,IAAK,MAAO,GAEvB,KAAO,EAAQ,EAAK,IAElB,GADA,EAAK,EAAK,GACN,IAAO,IACX,IAAI,IAAO,IAAK,MAChB,GAAI,CAAC,GAAU,EAAK,WAAW,CAAK,CAAC,EACnC,MAAO,GAET,EAAY,GAId,MAAI,CAAC,GAAa,IAAO,IAAY,GAGjC,IAAO,IAAY,GAGhB,oBAAoB,KAAK,EAAK,MAAM,CAAK,CAAC,CACnD,CAEA,YAA8B,EAAM,CAClC,GAAI,GAAQ,EAAM,EAAO,EAAG,EAAI,EAAM,EAAS,GAc/C,MAZI,GAAM,QAAQ,GAAG,IAAM,IACzB,GAAQ,EAAM,QAAQ,KAAM,EAAE,GAGhC,EAAK,EAAM,GAEP,KAAO,KAAO,IAAO,MACnB,KAAO,KAAK,GAAO,IACvB,EAAQ,EAAM,MAAM,CAAC,EACrB,EAAK,EAAM,IAGT,IAAU,IAAY,EAEtB,IAAO,IACL,EAAM,KAAO,IAAY,EAAO,SAAS,EAAM,MAAM,CAAC,EAAG,CAAC,EAC1D,EAAM,KAAO,IAAY,EAAO,SAAS,EAAO,EAAE,EAC/C,EAAO,SAAS,EAAO,CAAC,EAG7B,EAAM,QAAQ,GAAG,IAAM,GACzB,GAAM,MAAM,GAAG,EAAE,QAAQ,SAAU,EAAG,CACpC,EAAO,QAAQ,SAAS,EAAG,EAAE,CAAC,CACpC,CAAK,EAED,EAAQ,EACR,EAAO,EAEP,EAAO,QAAQ,SAAU,EAAG,CAC1B,GAAU,EAAI,EACd,GAAQ,EACd,CAAK,EAEM,EAAO,GAIT,EAAO,SAAS,EAAO,EAAE,CAClC,CAEA,YAAmB,EAAQ,CACzB,MAAQ,QAAO,UAAU,SAAS,KAAK,CAAM,IAAO,mBAC5C,EAAS,IAAM,GAAK,CAACiG,GAAO,eAAe,CAAM,CAC3D,CAEA,OAAiB,GAAII,IAAK,wBAAyB,CACjD,KAAM,SACN,QAAS,GACT,UAAW,GACX,UAAW,GACX,UAAW,CACT,OAAa,SAAU,EAAK,CAAE,MAAO,IAAO,EAAI,KAAO,EAAI,SAAS,CAAC,EAAI,MAAQ,EAAI,SAAS,CAAC,EAAE,MAAM,CAAC,CAAI,EAC5G,MAAa,SAAU,EAAK,CAAE,MAAO,IAAO,EAAI,IAAO,EAAI,SAAS,CAAC,EAAI,KAAQ,EAAI,SAAS,CAAC,EAAE,MAAM,CAAC,CAAI,EAC5G,QAAa,SAAU,EAAK,CAAE,MAAO,GAAI,SAAS,EAAE,CAAI,EAExD,YAAa,SAAU,EAAK,CAAE,MAAO,IAAO,EAAI,KAAO,EAAI,SAAS,EAAE,EAAE,YAAW,EAAM,MAAQ,EAAI,SAAS,EAAE,EAAE,cAAc,MAAM,CAAC,CAAI,CAC5I,EACD,aAAc,UACd,aAAc,CACZ,OAAa,CAAE,EAAI,KAAO,EAC1B,MAAa,CAAE,EAAI,KAAO,EAC1B,QAAa,CAAE,GAAI,KAAO,EAC1B,YAAa,CAAE,GAAI,KAAO,CAC3B,CACH,CAAC,EC1KGJ,GAASlG,GACTsG,GAASrG,GAET,GAAqB,GAAI,QAE3B,yLASuB,EAEzB,YAA0B,EAAM,CAG9B,MAFI,MAAS,MAET,CAAC,GAAmB,KAAK,CAAI,GAG7B,EAAK,EAAK,OAAS,KAAO,IAKhC,CAEA,YAA4B,EAAM,CAChC,GAAI,GAAO,EAAM,EAAM,EAUvB,MARA,GAAS,EAAK,QAAQ,KAAM,EAAE,EAAE,cAChC,EAAS,EAAM,KAAO,IAAM,GAAK,EACjC,EAAS,GAEL,KAAK,QAAQ,EAAM,EAAE,GAAK,GAC5B,GAAQ,EAAM,MAAM,CAAC,GAGnB,IAAU,OACJ,IAAS,EAAK,OAAO,kBAAoB,OAAO,kBAE/C,IAAU,OACZ,IAEE,EAAM,QAAQ,GAAG,GAAK,EAC/B,GAAM,MAAM,GAAG,EAAE,QAAQ,SAAU,EAAG,CACpC,EAAO,QAAQ,WAAW,EAAG,EAAE,CAAC,CACtC,CAAK,EAED,EAAQ,EACR,EAAO,EAEP,EAAO,QAAQ,SAAU,EAAG,CAC1B,GAAS,EAAI,EACb,GAAQ,EACd,CAAK,EAEM,EAAO,GAGT,EAAO,WAAW,EAAO,EAAE,CACpC,CAGA,GAAI,IAAyB,gBAE7B,YAA4B,EAAQ,EAAO,CACzC,GAAI,GAEJ,GAAI,MAAM,CAAM,EACd,OAAQ,OACD,YAAa,MAAO,WACpB,YAAa,MAAO,WACpB,YAAa,MAAO,eAElB,OAAO,oBAAsB,EACtC,OAAQ,OACD,YAAa,MAAO,WACpB,YAAa,MAAO,WACpB,YAAa,MAAO,eAElB,OAAO,oBAAsB,EACtC,OAAQ,OACD,YAAa,MAAO,YACpB,YAAa,MAAO,YACpB,YAAa,MAAO,gBAElBiG,GAAO,eAAe,CAAM,EACrC,MAAO,OAGT,SAAM,EAAO,SAAS,EAAE,EAKjB,GAAuB,KAAK,CAAG,EAAI,EAAI,QAAQ,IAAK,IAAI,EAAI,CACrE,CAEA,YAAiB,EAAQ,CACvB,MAAQ,QAAO,UAAU,SAAS,KAAK,CAAM,IAAM,mBAC3C,GAAS,IAAM,GAAKA,GAAO,eAAe,CAAM,EAC1D,CAEA,OAAiB,GAAII,IAAK,0BAA2B,CACnD,KAAM,SACN,QAAS,GACT,UAAW,GACX,UAAW,GACX,UAAW,GACX,aAAc,WAChB,CAAC,ECxGGC,GAASvG,GAGbyG,GAAiB,GAAIF,IAAO,CAC1B,QAAS,CACPtG,EACD,EACD,SAAU,CACRE,GACAM,GACAC,GACAK,EACD,CACH,CAAC,ECdGwF,GAASvG,GAGb0G,GAAiB,GAAIH,IAAO,CAC1B,QAAS,CACPtG,EACD,CACH,CAAC,ECfGqG,GAAOtG,GAEP,GAAmB,GAAI,QACzB,oDAEgB,EAEd,GAAwB,GAAI,QAC9B,kLASwB,EAE1B,YAA8B,EAAM,CAClC,MAAI,KAAS,KAAa,GACtB,GAAiB,KAAK,CAAI,IAAM,MAChC,GAAsB,KAAK,CAAI,IAAM,IAE3C,CAEA,YAAgC,EAAM,CACpC,GAAI,GAAO,EAAM,EAAO,EAAK,EAAM,EAAQ,EAAQ,EAAW,EAC1D,EAAQ,KAAM,EAAS,EAAW,EAKtC,GAHA,EAAQ,GAAiB,KAAK,CAAI,EAC9B,IAAU,MAAM,GAAQ,GAAsB,KAAK,CAAI,GAEvD,IAAU,KAAM,KAAM,IAAI,OAAM,oBAAoB,EAQxD,GAJA,EAAO,CAAE,EAAM,GACf,EAAQ,CAAE,EAAM,GAAM,EACtB,EAAM,CAAE,EAAM,GAEV,CAAC,EAAM,GACT,MAAO,IAAI,MAAK,KAAK,IAAI,EAAM,EAAO,CAAG,CAAC,EAS5C,GAJA,EAAO,CAAE,EAAM,GACf,EAAS,CAAE,EAAM,GACjB,EAAS,CAAE,EAAM,GAEb,EAAM,GAAI,CAEZ,IADA,EAAW,EAAM,GAAG,MAAM,EAAG,CAAC,EACvB,EAAS,OAAS,GACvB,GAAY,IAEd,EAAW,CAAC,CACb,CAID,MAAI,GAAM,IACR,GAAU,CAAE,EAAM,IAClB,EAAY,CAAE,GAAM,KAAO,GAC3B,EAAS,GAAU,GAAK,GAAa,IACjC,EAAM,KAAO,KAAK,GAAQ,CAAC,IAGjC,EAAO,GAAI,MAAK,KAAK,IAAI,EAAM,EAAO,EAAK,EAAM,EAAQ,EAAQ,CAAQ,CAAC,EAEtE,GAAO,EAAK,QAAQ,EAAK,QAAO,EAAK,CAAK,EAEvC,CACT,CAEA,YAAgC,EAAoB,CAClD,MAAO,GAAO,aAChB,CAEA,OAAiB,GAAIsG,IAAK,8BAA+B,CACvD,KAAM,SACN,QAAS,GACT,UAAW,GACX,WAAY,KACZ,UAAW,EACb,CAAC,ECrFGA,GAAOtG,GAEX,YAA0B,EAAM,CAC9B,MAAO,KAAS,MAAQ,IAAS,IACnC,CAEA,OAAiB,GAAIsG,IAAK,0BAA2B,CACnD,KAAM,SACN,QAAS,EACX,CAAC,ECPG,GAEJ,GAAI,CAEF,GAAIK,IAAWC,GACf,GAAaD,GAAS,QAAQ,EAAE,MAClC,MAAE,CAAa,CAEf,GAAIL,IAAatG,GAIb,GAAa;AAAA,IAGjB,YAA2B,EAAM,CAC/B,GAAI,IAAS,KAAM,MAAO,GAE1B,GAAI,GAAM,EAAK,EAAS,EAAG,EAAM,EAAK,OAAQ,EAAM,GAGpD,IAAK,EAAM,EAAG,EAAM,EAAK,IAIvB,GAHA,EAAO,EAAI,QAAQ,EAAK,OAAO,CAAG,CAAC,EAG/B,IAAO,IAGX,IAAI,EAAO,EAAG,MAAO,GAErB,GAAU,EAIZ,MAAQ,GAAS,IAAO,CAC1B,CAEA,YAA6B,EAAM,CACjC,GAAI,GAAK,EACL,EAAQ,EAAK,QAAQ,WAAY,EAAE,EACnC,EAAM,EAAM,OACZ,EAAM,GACN,EAAO,EACP,EAAS,GAIb,IAAK,EAAM,EAAG,EAAM,EAAK,IACvB,CAAK,CAAM,IAAM,GAAM,GACrB,GAAO,KAAM,GAAQ,GAAM,GAAI,EAC/B,EAAO,KAAM,GAAQ,EAAK,GAAI,EAC9B,EAAO,KAAK,EAAO,GAAI,GAGzB,EAAQ,GAAQ,EAAK,EAAI,QAAQ,EAAM,OAAO,CAAG,CAAC,EAmBpD,MAdA,GAAY,EAAM,EAAK,EAEvB,CAAI,GAAa,EACf,GAAO,KAAM,GAAQ,GAAM,GAAI,EAC/B,EAAO,KAAM,GAAQ,EAAK,GAAI,EAC9B,EAAO,KAAK,EAAO,GAAI,GAClB,CAAI,GAAa,GACtB,GAAO,KAAM,GAAQ,GAAM,GAAI,EAC/B,EAAO,KAAM,GAAQ,EAAK,GAAI,GACrB,IAAa,IACtB,EAAO,KAAM,GAAQ,EAAK,GAAI,EAI5B,GAEK,GAAW,KAAO,GAAW,KAAK,CAAM,EAAI,GAAI,IAAW,CAAM,EAGnE,CACT,CAEA,YAA6B,EAAoB,CAC/C,GAAI,GAAS,GAAI,EAAO,EAAG,EAAK,EAC5B,EAAM,EAAO,OACb,EAAM,GAIV,IAAK,EAAM,EAAG,EAAM,EAAK,IACvB,CAAK,CAAM,IAAM,GAAM,GACrB,IAAU,EAAK,GAAQ,GAAM,IAC7B,GAAU,EAAK,GAAQ,GAAM,IAC7B,GAAU,EAAK,GAAQ,EAAK,IAC5B,GAAU,EAAI,EAAO,KAGvB,EAAQ,IAAQ,GAAK,EAAO,GAK9B,SAAO,EAAM,EAEb,CAAI,GAAS,EACX,IAAU,EAAK,GAAQ,GAAM,IAC7B,GAAU,EAAK,GAAQ,GAAM,IAC7B,GAAU,EAAK,GAAQ,EAAK,IAC5B,GAAU,EAAI,EAAO,KAChB,CAAI,GAAS,EAClB,IAAU,EAAK,GAAQ,GAAM,IAC7B,GAAU,EAAK,GAAQ,EAAK,IAC5B,GAAU,EAAK,GAAQ,EAAK,IAC5B,GAAU,EAAI,KACL,IAAS,GAClB,IAAU,EAAK,GAAQ,EAAK,IAC5B,GAAU,EAAK,GAAQ,EAAK,IAC5B,GAAU,EAAI,IACd,GAAU,EAAI,KAGT,CACT,CAEA,YAAkB,EAAQ,CACxB,MAAO,KAAc,GAAW,SAAS,CAAM,CACjD,CAEA,OAAiB,GAAIsG,IAAK,2BAA4B,CACpD,KAAM,SACN,QAAS,GACT,UAAW,GACX,UAAW,GACX,UAAW,EACb,CAAC,ECvIGA,GAAOtG,GAEP6G,GAAkB,OAAO,UAAU,eACnCC,GAAkB,OAAO,UAAU,SAEvC,YAAyB,EAAM,CAC7B,GAAI,IAAS,KAAM,MAAO,GAE1B,GAAI,GAAa,GAAI,EAAO,EAAQ,EAAM,EAAS,EAC/C,EAAS,EAEb,IAAK,EAAQ,EAAG,EAAS,EAAO,OAAQ,EAAQ,EAAQ,GAAS,EAAG,CAIlE,GAHA,EAAO,EAAO,GACd,EAAa,GAETA,GAAU,KAAK,CAAI,IAAM,kBAAmB,MAAO,GAEvD,IAAK,IAAW,GACd,GAAID,GAAgB,KAAK,EAAM,CAAO,EACpC,GAAI,CAAC,EAAY,EAAa,OACzB,OAAO,GAIhB,GAAI,CAAC,EAAY,MAAO,GAExB,GAAI,EAAW,QAAQ,CAAO,IAAM,GAAI,EAAW,KAAK,CAAO,MAC1D,OAAO,EACb,CAED,MAAO,EACT,CAEA,YAA2B,EAAM,CAC/B,MAAO,KAAS,KAAO,EAAO,EAChC,CAEA,OAAiB,GAAIP,IAAK,yBAA0B,CAClD,KAAM,WACN,QAAS,GACT,UAAW,EACb,CAAC,ECzCGA,GAAOtG,GAEP8G,GAAY,OAAO,UAAU,SAEjC,YAA0B,EAAM,CAC9B,GAAI,IAAS,KAAM,MAAO,GAE1B,GAAI,GAAO,EAAQ,EAAM,EAAM,EAC3B,EAAS,EAIb,IAFA,EAAS,GAAI,OAAM,EAAO,MAAM,EAE3B,EAAQ,EAAG,EAAS,EAAO,OAAQ,EAAQ,EAAQ,GAAS,EAAG,CAOlE,GANA,EAAO,EAAO,GAEVA,GAAU,KAAK,CAAI,IAAM,mBAE7B,GAAO,OAAO,KAAK,CAAI,EAEnB,EAAK,SAAW,GAAG,MAAO,GAE9B,EAAO,GAAS,CAAE,EAAK,GAAI,EAAK,EAAK,IACtC,CAED,MAAO,EACT,CAEA,YAA4B,EAAM,CAChC,GAAI,IAAS,KAAM,MAAO,GAE1B,GAAI,GAAO,EAAQ,EAAM,EAAM,EAC3B,EAAS,EAIb,IAFA,EAAS,GAAI,OAAM,EAAO,MAAM,EAE3B,EAAQ,EAAG,EAAS,EAAO,OAAQ,EAAQ,EAAQ,GAAS,EAC/D,EAAO,EAAO,GAEd,EAAO,OAAO,KAAK,CAAI,EAEvB,EAAO,GAAS,CAAE,EAAK,GAAI,EAAK,EAAK,KAGvC,MAAO,EACT,CAEA,OAAiB,GAAIR,IAAK,0BAA2B,CACnD,KAAM,WACN,QAAS,GACT,UAAW,EACb,CAAC,EClDGA,GAAOtG,GAEP6G,GAAkB,OAAO,UAAU,eAEvC,YAAwB,EAAM,CAC5B,GAAI,IAAS,KAAM,MAAO,GAE1B,GAAI,GAAK,EAAS,EAElB,IAAK,IAAO,GACV,GAAIA,GAAgB,KAAK,EAAQ,CAAG,GAC9B,EAAO,KAAS,KAAM,MAAO,GAIrC,MAAO,EACT,CAEA,YAA0B,EAAM,CAC9B,MAAO,KAAS,KAAO,EAAO,EAChC,CAEA,OAAiB,GAAIP,IAAK,wBAAyB,CACjD,KAAM,UACN,QAAS,GACT,UAAW,EACb,CAAC,EClBGC,GAASvG,GAGb,GAAiB,GAAIuG,IAAO,CAC1B,QAAS,CACPtG,EACD,EACD,SAAU,CACRE,GACAM,EACD,EACD,SAAU,CACRC,GACAK,GACAC,GACAC,EACD,CACH,CAAC,ECzBGqF,GAAOtG,GAEX,aAAsC,CACpC,MAAO,EACT,CAEA,aAAwC,CAGxC,CAEA,aAAwC,CACtC,MAAO,EACT,CAEA,YAAqB,EAAQ,CAC3B,MAAO,OAAO,IAAW,WAC3B,CAEA,OAAiB,GAAIsG,IAAK,iCAAkC,CAC1D,KAAM,SACN,QAAS,GACT,UAAW,GACX,UAAW,GACX,UAAW,EACb,CAAC,ECzBGA,GAAOtG,GAEX,YAAiC,EAAM,CAErC,GADI,IAAS,MACT,EAAK,SAAW,EAAG,MAAO,GAE9B,GAAI,GAAS,EACT,EAAS,cAAc,KAAK,CAAI,EAChC,EAAY,GAIhB,MAAI,IAAO,KAAO,KACZ,IAAM,GAAY,EAAK,IAEvB,EAAU,OAAS,GAEnB,EAAO,EAAO,OAAS,EAAU,OAAS,KAAO,KAIzD,CAEA,YAAmC,EAAM,CACvC,GAAI,GAAS,EACT,EAAS,cAAc,KAAK,CAAI,EAChC,EAAY,GAGhB,MAAI,GAAO,KAAO,KACZ,IAAM,GAAY,EAAK,IAC3B,EAAS,EAAO,MAAM,EAAG,EAAO,OAAS,EAAU,OAAS,CAAC,GAGxD,GAAI,QAAO,EAAQ,CAAS,CACrC,CAEA,YAAmC,EAAoB,CACrD,GAAI,GAAS,IAAM,EAAO,OAAS,IAEnC,MAAI,GAAO,QAAQ,IAAU,KACzB,EAAO,WAAW,IAAU,KAC5B,EAAO,YAAY,IAAU,KAE1B,CACT,CAEA,YAAkB,EAAQ,CACxB,MAAO,QAAO,UAAU,SAAS,KAAK,CAAM,IAAM,iBACpD,CAEA,OAAiB,GAAIsG,IAAK,8BAA+B,CACvD,KAAM,SACN,QAAS,GACT,UAAW,GACX,UAAW,GACX,UAAW,EACb,CAAC,ECzDG,GASJ,GAAI,CAEF,GAAI,IAAWM,GACf,GAAU,GAAS,SAAS,CAC9B,MAAE,CAGA,CAAI,KAAO,SAAW,aAAa,IAAU,OAAO,QACtD,CAEA,GAAI,IAAO5G,GAEX,YAAmC,EAAM,CACvC,GAAI,IAAS,KAAM,MAAO,GAE1B,GAAI,CACF,GAAI,GAAS,IAAM,EAAO,IACtB,EAAS,GAAQ,MAAM,EAAQ,CAAE,MAAO,EAAI,CAAE,EAElD,MAAI,IAAI,OAA4B,WAChC,EAAI,KAAK,SAAuB,GAChC,EAAI,KAAK,GAAG,OAAoB,uBAC/B,EAAI,KAAK,GAAG,WAAW,OAAS,2BAC/B,EAAI,KAAK,GAAG,WAAW,OAAS,qBAKvC,MAAC,CACA,MAAO,EACR,CACH,CAEA,YAAqC,EAAM,CAGzC,GAAI,GAAS,IAAM,EAAO,IACtB,EAAS,GAAQ,MAAM,EAAQ,CAAE,MAAO,GAAM,EAC9C,EAAS,CAAE,EACX,EAEJ,GAAI,EAAI,OAA4B,WAChC,EAAI,KAAK,SAAuB,GAChC,EAAI,KAAK,GAAG,OAAoB,uBAC/B,EAAI,KAAK,GAAG,WAAW,OAAS,2BAC/B,EAAI,KAAK,GAAG,WAAW,OAAS,qBACpC,KAAM,IAAI,OAAM,4BAA4B,EAW9C,MARA,GAAI,KAAK,GAAG,WAAW,OAAO,QAAQ,SAAU,EAAO,CACrD,EAAO,KAAK,EAAM,IAAI,CAC1B,CAAG,EAED,EAAO,EAAI,KAAK,GAAG,WAAW,KAAK,MAI/B,EAAI,KAAK,GAAG,WAAW,KAAK,OAAS,iBAEhC,GAAI,UAAS,EAAQ,EAAO,MAAM,EAAK,GAAK,EAAG,EAAK,GAAK,CAAC,CAAC,EAK7D,GAAI,UAAS,EAAQ,UAAY,EAAO,MAAM,EAAK,GAAI,EAAK,EAAE,CAAC,CACxE,CAEA,YAAqC,EAAoB,CACvD,MAAO,GAAO,UAChB,CAEA,YAAoB,EAAQ,CAC1B,MAAO,QAAO,UAAU,SAAS,KAAK,CAAM,IAAM,mBACpD,CAEA,OAAiB,GAAI,IAAK,gCAAiC,CACzD,KAAM,SACN,QAAS,GACT,UAAW,GACX,UAAW,GACX,UAAW,EACb,CAAC,EChFG,GAASA,GAGb,GAAiB,GAAO,QAAU,GAAI,IAAO,CAC3C,QAAS,CACPC,EACD,EACD,SAAU,CACRE,GACAM,GACAC,EACD,CACH,CAAC,ECpBGwF,GAAsBlG,GACtBoG,GAAsBnG,GACtB,GAAsBE,GACtB4G,GAAsBtG,GACtBuG,GAAsBtG,GAGtBmG,GAAkB,OAAO,UAAU,eAGnC,GAAoB,EACpB,GAAoB,EACpB,GAAoB,EACpB,GAAoB,EAGpB,GAAiB,EACjB,GAAiB,EACjB,GAAiB,EAGjB,GAAgC,sIAChC,GAAgC,qBAChC,GAAgC,cAChC,GAAgC,yBAChC,GAAgC,mFAGpC,YAAgB,EAAK,CAAE,MAAO,QAAO,UAAU,SAAS,KAAK,CAAG,CAAI,CAEpE,YAAgB,EAAG,CACjB,MAAQ,KAAM,IAAkB,IAAM,EACxC,CAEA,YAAwB,EAAG,CACzB,MAAQ,KAAM,GAAmB,IAAM,EACzC,CAEA,YAAsB,EAAG,CACvB,MAAQ,KAAM,GACN,IAAM,IACN,IAAM,IACN,IAAM,EAChB,CAEA,YAA2B,EAAG,CAC5B,MAAO,KAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,KACN,IAAM,GACf,CAEA,YAAqB,EAAG,CACtB,GAAI,GAEJ,MAAK,KAAe,GAAO,GAAK,GACvB,EAAI,GAIb,GAAK,EAAI,GAEJ,IAAe,GAAQ,GAAM,IACzB,EAAK,GAAO,GAGd,GACT,CAEA,YAAuB,EAAG,CACxB,MAAI,KAAM,IAAsB,EAC5B,IAAM,IAAsB,EAC5B,IAAM,GAAsB,EACzB,CACT,CAEA,YAAyB,EAAG,CAC1B,MAAK,KAAe,GAAO,GAAK,GACvB,EAAI,GAGN,EACT,CAEA,YAA8B,EAAG,CAE/B,MAAQ,KAAM,GAAe,KACtB,IAAM,GAAe,OACrB,IAAM,GAAe,KACrB,IAAM,KACN,IAAM,EADe,IAErB,IAAM,IAAe;AAAA,EACrB,IAAM,IAAe,KACrB,IAAM,IAAe,KACrB,IAAM,IAAe,KACrB,IAAM,IAAe,OACrB,IAAM,GAAmB,IACzB,IAAM,GAAe,IACrB,IAAM,GAAe,IACrB,IAAM,GAAe,KACrB,IAAM,GAAe,OACrB,IAAM,GAAe,OACrB,IAAM,GAAe,SACrB,IAAM,GAAe,SAAW,EACzC,CAEA,YAA2B,EAAG,CAC5B,MAAI,IAAK,MACA,OAAO,aAAa,CAAC,EAIvB,OAAO,aACV,GAAI,OAAa,IAAM,MACvB,GAAI,MAAY,MAAU,KAChC,CACA,CAEA,GAAI,IAAoB,GAAI,OAAM,GAAG,EACjC,GAAkB,GAAI,OAAM,GAAG,EACnC,OAAS1P,IAAI,EAAGA,GAAI,IAAKA,KACvB,GAAkBA,IAAK,GAAqBA,EAAC,EAAI,EAAI,EACrD,GAAgBA,IAAK,GAAqBA,EAAC,EAI7C,YAAe,EAAO,EAAS,CAC7B,KAAK,MAAQ,EAEb,KAAK,SAAY,EAAQ,UAAgB,KACzC,KAAK,OAAY,EAAQ,QAAgB6P,GACzC,KAAK,UAAY,EAAQ,WAAgB,KACzC,KAAK,OAAY,EAAQ,QAAgB,GACzC,KAAK,KAAY,EAAQ,MAAgB,GACzC,KAAK,SAAY,EAAQ,UAAgB,KAEzC,KAAK,cAAgB,KAAK,OAAO,iBACjC,KAAK,QAAgB,KAAK,OAAO,gBAEjC,KAAK,OAAa,EAAM,OACxB,KAAK,SAAa,EAClB,KAAK,KAAa,EAClB,KAAK,UAAa,EAClB,KAAK,WAAa,EAElB,KAAK,UAAY,EAYnB,CAGA,YAAuB,EAAO,EAAS,CACrC,MAAO,IAAIZ,IACT,EACA,GAAI,IAAK,EAAM,SAAU,EAAM,MAAO,EAAM,SAAU,EAAM,KAAO,EAAM,SAAW,EAAM,SAAW,EACzG,CAEA,YAAoB,EAAO,EAAS,CAClC,KAAM,IAAc,EAAO,CAAO,CACpC,CAEA,YAAsB,EAAO,EAAS,CACpC,CAAI,CAAM,WACR,EAAM,UAAU,KAAK,KAAM,GAAc,EAAO,CAAO,CAAC,CAE5D,CAGA,GAAI,IAAoB,CAEtB,KAAM,SAA6B,EAAO,EAAM,EAAM,CAEpD,GAAI,GAAO,EAAO,EAElB,CAAI,CAAM,UAAY,MACpB,GAAW,EAAO,gCAAgC,EAGhD,EAAK,SAAW,GAClB,GAAW,EAAO,6CAA6C,EAGjE,EAAQ,uBAAuB,KAAK,EAAK,EAAE,EAEvC,IAAU,MACZ,GAAW,EAAO,2CAA2C,EAG/D,EAAQ,SAAS,EAAM,GAAI,EAAE,EAC7B,EAAQ,SAAS,EAAM,GAAI,EAAE,EAEzB,IAAU,GACZ,GAAW,EAAO,2CAA2C,EAG/D,EAAM,QAAU,EAAK,GACrB,EAAM,gBAAmB,EAAQ,EAE7B,IAAU,GAAK,IAAU,GAC3B,GAAa,EAAO,0CAA0C,CAEjE,EAED,IAAK,SAA4B,EAAO,EAAM,EAAM,CAElD,GAAI,GAAQ,EAEZ,CAAI,CAAK,SAAW,GAClB,GAAW,EAAO,6CAA6C,EAGjE,EAAS,EAAK,GACd,EAAS,EAAK,GAET,GAAmB,KAAK,CAAM,GACjC,GAAW,EAAO,6DAA6D,EAG7ES,GAAgB,KAAK,EAAM,OAAQ,CAAM,GAC3C,GAAW,EAAO,8CAAgD,EAAS,cAAc,EAGtF,GAAgB,KAAK,CAAM,GAC9B,GAAW,EAAO,8DAA8D,EAGlF,EAAM,OAAO,GAAU,CACxB,CACH,EAGA,YAAwB,EAAO,EAAO,EAAK,EAAW,CACpD,GAAI,GAAW,EAAS,EAAY,EAEpC,GAAI,EAAQ,EAAK,CAGf,GAFA,EAAU,EAAM,MAAM,MAAM,EAAO,CAAG,EAElC,EACF,IAAK,EAAY,EAAG,EAAU,EAAQ,OAAQ,EAAY,EAAS,GAAa,EAC9E,EAAa,EAAQ,WAAW,CAAS,EACnC,IAAe,GACd,IAAQ,GAAc,GAAc,SACzC,GAAW,EAAO,+BAA+B,MAGhD,CAAI,GAAsB,KAAK,CAAO,GAC3C,GAAW,EAAO,8CAA8C,EAGlE,EAAM,QAAU,CACjB,CACH,CAEA,YAAuB,EAAO,EAAa,EAAQ,EAAiB,CAClE,GAAI,GAAY,EAAK,EAAO,EAQ5B,IANKX,GAAO,SAAS,CAAM,GACzB,GAAW,EAAO,mEAAmE,EAGvF,EAAa,OAAO,KAAK,CAAM,EAE1B,EAAQ,EAAG,EAAW,EAAW,OAAQ,EAAQ,EAAU,GAAS,EACvE,EAAM,EAAW,GAEZW,GAAgB,KAAK,EAAa,CAAG,GACxC,GAAY,GAAO,EAAO,GAC1B,EAAgB,GAAO,GAG7B,CAEA,YAA0B,EAAO,EAAS,EAAiB,EAAQ,EAAS,EAAW,EAAW,EAAU,CAC1G,GAAI,GAAO,EAKX,GAAI,MAAM,QAAQ,CAAO,EAGvB,IAFA,EAAU,MAAM,UAAU,MAAM,KAAK,CAAO,EAEvC,EAAQ,EAAG,EAAW,EAAQ,OAAQ,EAAQ,EAAU,GAAS,EACpE,CAAI,KAAM,QAAQ,EAAQ,EAAM,GAC9B,GAAW,EAAO,6CAA6C,EAG7D,MAAO,IAAY,UAAY,GAAO,EAAQ,EAAM,IAAM,mBAC5D,GAAQ,GAAS,mBAmBvB,GAXI,MAAO,IAAY,UAAY,GAAO,CAAO,IAAM,mBACrD,GAAU,mBAIZ,EAAU,OAAO,CAAO,EAEpB,IAAY,MACd,GAAU,IAGR,IAAW,0BACb,GAAI,MAAM,QAAQ,CAAS,EACzB,IAAK,EAAQ,EAAG,EAAW,EAAU,OAAQ,EAAQ,EAAU,GAAS,EACtE,GAAc,EAAO,EAAS,EAAU,GAAQ,CAAe,MAGjE,IAAc,EAAO,EAAS,EAAW,CAAe,MAG1D,CAAK,EAAM,MACP,CAACA,GAAgB,KAAK,EAAiB,CAAO,GAC9CA,GAAgB,KAAK,EAAS,CAAO,GACvC,GAAM,KAAO,GAAa,EAAM,KAChC,EAAM,SAAW,GAAY,EAAM,SACnC,GAAW,EAAO,wBAAwB,GAE5C,EAAQ,GAAW,EACnB,MAAO,GAAgB,GAGzB,MAAO,EACT,CAEA,YAAuB,EAAO,CAC5B,GAAI,GAEJ,EAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,EAE1C,CAAI,GAAO,GACT,EAAM,WACD,CAAI,GAAO,GAChB,GAAM,WACF,EAAM,MAAM,WAAW,EAAM,QAAQ,IAAM,IAC7C,EAAM,YAGR,GAAW,EAAO,0BAA0B,EAG9C,EAAM,MAAQ,EACd,EAAM,UAAY,EAAM,QAC1B,CAEA,YAA6B,EAAO,EAAe,EAAa,CAI9D,OAHI,GAAa,EACb,EAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,EAEvC,IAAO,GAAG,CACf,KAAO,GAAe,CAAE,GACtB,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,EAG9C,GAAI,GAAiB,IAAO,GAC1B,EACE,GAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,QACrC,IAAO,IAAgB,IAAO,IAAgB,IAAO,GAGhE,GAAI,GAAO,CAAE,EAOX,IANA,GAAc,CAAK,EAEnB,EAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,EAC1C,IACA,EAAM,WAAa,EAEZ,IAAO,IACZ,EAAM,aACN,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,MAG9C,MAEH,CAED,MAAI,KAAgB,IAAM,IAAe,GAAK,EAAM,WAAa,GAC/D,GAAa,EAAO,uBAAuB,EAGtC,CACT,CAEA,YAA+B,EAAO,CACpC,GAAI,GAAY,EAAM,SAClB,EAMJ,MAJA,GAAK,EAAM,MAAM,WAAW,CAAS,EAIhC,QAAO,IAAe,IAAO,KAC9B,IAAO,EAAM,MAAM,WAAW,EAAY,CAAC,GAC3C,IAAO,EAAM,MAAM,WAAW,EAAY,CAAC,GAE7C,IAAa,EAEb,EAAK,EAAM,MAAM,WAAW,CAAS,EAEjC,IAAO,GAAK,GAAa,CAAE,GAMnC,CAEA,YAA0B,EAAO,EAAO,CACtC,CAAI,GAAU,EACZ,EAAM,QAAU,IACP,EAAQ,GACjB,GAAM,QAAUX,GAAO,OAAO;AAAA,EAAM,EAAQ,CAAC,EAEjD,CAGA,YAAyB,EAAO,EAAY,EAAsB,CAChE,GAAI,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EAAQ,EAAM,KACd,EAAU,EAAM,OAChB,EAoBJ,GAlBA,EAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,EAEtC,GAAa,CAAE,GACf,GAAkB,CAAE,GACpB,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,KACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IAIP,KAAO,IAAe,IAAO,KAC/B,GAAY,EAAM,MAAM,WAAW,EAAM,SAAW,CAAC,EAEjD,GAAa,CAAS,GACtB,GAAwB,GAAkB,CAAS,GACrD,MAAO,GASX,IALA,EAAM,KAAO,SACb,EAAM,OAAS,GACf,EAAe,EAAa,EAAM,SAClC,EAAoB,GAEb,IAAO,GAAG,CACf,GAAI,IAAO,IAGT,GAFA,EAAY,EAAM,MAAM,WAAW,EAAM,SAAW,CAAC,EAEjD,GAAa,CAAS,GACtB,GAAwB,GAAkB,CAAS,EACrD,cAGO,IAAO,IAGhB,GAFA,EAAY,EAAM,MAAM,WAAW,EAAM,SAAW,CAAC,EAEjD,GAAa,CAAS,EACxB,UAGG,IAAK,EAAM,WAAa,EAAM,WAAa,GAAsB,CAAK,GAClE,GAAwB,GAAkB,CAAE,EACrD,MAEK,GAAI,GAAO,CAAE,EAMlB,GALA,EAAQ,EAAM,KACd,EAAa,EAAM,UACnB,EAAc,EAAM,WACpB,GAAoB,EAAO,GAAO,EAAE,EAEhC,EAAM,YAAc,EAAY,CAClC,EAAoB,GACpB,EAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,EAC1C,QACR,KAAa,CACL,EAAM,SAAW,EACjB,EAAM,KAAO,EACb,EAAM,UAAY,EAClB,EAAM,WAAa,EACnB,KACD,EAGH,CAAI,EACF,IAAe,EAAO,EAAc,EAAY,EAAK,EACrD,GAAiB,EAAO,EAAM,KAAO,CAAK,EAC1C,EAAe,EAAa,EAAM,SAClC,EAAoB,IAGjB,GAAe,CAAE,GACpB,GAAa,EAAM,SAAW,GAGhC,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,CAC7C,CAID,MAFA,IAAe,EAAO,EAAc,EAAY,EAAK,EAEjD,EAAM,OACD,GAGT,GAAM,KAAO,EACb,EAAM,OAAS,EACR,GACT,CAEA,YAAgC,EAAO,EAAY,CACjD,GAAI,GACA,EAAc,EAIlB,GAFA,EAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,EAEtC,IAAO,GACT,MAAO,GAQT,IALA,EAAM,KAAO,SACb,EAAM,OAAS,GACf,EAAM,WACN,EAAe,EAAa,EAAM,SAE1B,GAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,KAAO,GACvD,GAAI,IAAO,GAIT,GAHA,GAAe,EAAO,EAAc,EAAM,SAAU,EAAI,EACxD,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,EAExC,IAAO,GACT,EAAe,EAAM,SACrB,EAAM,WACN,EAAa,EAAM,aAEnB,OAAO,OAGJ,CAAI,GAAO,CAAE,EAClB,IAAe,EAAO,EAAc,EAAY,EAAI,EACpD,GAAiB,EAAO,GAAoB,EAAO,GAAO,CAAU,CAAC,EACrE,EAAe,EAAa,EAAM,UAE7B,CAAI,CAAM,WAAa,EAAM,WAAa,GAAsB,CAAK,EAC1E,GAAW,EAAO,8DAA8D,EAGhF,GAAM,WACN,EAAa,EAAM,UAIvB,GAAW,EAAO,4DAA4D,CAChF,CAEA,YAAgC,EAAO,EAAY,CACjD,GAAI,GACA,EACA,EACA,EACA,EACA,EAIJ,GAFA,EAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,EAEtC,IAAO,GACT,MAAO,GAQT,IALA,EAAM,KAAO,SACb,EAAM,OAAS,GACf,EAAM,WACN,EAAe,EAAa,EAAM,SAE1B,GAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,KAAO,GAAG,CAC1D,GAAI,IAAO,GACT,UAAe,EAAO,EAAc,EAAM,SAAU,EAAI,EACxD,EAAM,WACC,GAEF,GAAI,IAAO,GAAa,CAI7B,GAHA,GAAe,EAAO,EAAc,EAAM,SAAU,EAAI,EACxD,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,EAExC,GAAO,CAAE,EACX,GAAoB,EAAO,GAAO,CAAU,UAGnC,EAAK,KAAO,GAAkB,GACvC,EAAM,QAAU,GAAgB,GAChC,EAAM,mBAEI,GAAM,GAAc,CAAE,GAAK,EAAG,CAIxC,IAHA,EAAY,EACZ,EAAY,EAEL,EAAY,EAAG,IACpB,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,EAE5C,CAAK,EAAM,GAAY,CAAE,IAAM,EAC7B,EAAa,IAAa,GAAK,EAG/B,GAAW,EAAO,gCAAgC,EAItD,EAAM,QAAU,GAAkB,CAAS,EAE3C,EAAM,UAEd,KACQ,IAAW,EAAO,yBAAyB,EAG7C,EAAe,EAAa,EAAM,QAExC,KAAW,CAAI,GAAO,CAAE,EAClB,IAAe,EAAO,EAAc,EAAY,EAAI,EACpD,GAAiB,EAAO,GAAoB,EAAO,GAAO,CAAU,CAAC,EACrE,EAAe,EAAa,EAAM,UAE7B,CAAI,CAAM,WAAa,EAAM,WAAa,GAAsB,CAAK,EAC1E,GAAW,EAAO,8DAA8D,EAGhF,GAAM,WACN,EAAa,EAAM,SAEtB,CAED,GAAW,EAAO,4DAA4D,CAChF,CAEA,YAA4B,EAAO,EAAY,CAC7C,GAAI,GAAW,GACX,EACA,EAAW,EAAM,IACjB,EACA,EAAW,EAAM,OACjB,EACA,EACA,EACA,EACA,EACA,EAAkB,CAAE,EACpB,EACA,EACA,EACA,EAIJ,GAFA,EAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,EAEtC,IAAO,GACT,EAAa,GACb,EAAY,GACZ,EAAU,WACD,IAAO,IAChB,EAAa,IACb,EAAY,GACZ,EAAU,OAEV,OAAO,GAST,IANI,EAAM,SAAW,MACnB,GAAM,UAAU,EAAM,QAAU,GAGlC,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,EAErC,IAAO,GAAG,CAKf,GAJA,GAAoB,EAAO,GAAM,CAAU,EAE3C,EAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,EAEtC,IAAO,EACT,SAAM,WACN,EAAM,IAAM,EACZ,EAAM,OAAS,EACf,EAAM,KAAO,EAAY,UAAY,WACrC,EAAM,OAAS,EACR,GACF,CAAK,EACV,GAAW,EAAO,8CAA8C,EAGlE,EAAS,EAAU,EAAY,KAC/B,EAAS,EAAiB,GAEtB,IAAO,IACT,GAAY,EAAM,MAAM,WAAW,EAAM,SAAW,CAAC,EAEjD,GAAa,CAAS,GACxB,GAAS,EAAiB,GAC1B,EAAM,WACN,GAAoB,EAAO,GAAM,CAAU,IAI/C,EAAQ,EAAM,KACd,GAAY,EAAO,EAAY,GAAiB,GAAO,EAAI,EAC3D,EAAS,EAAM,IACf,EAAU,EAAM,OAChB,GAAoB,EAAO,GAAM,CAAU,EAE3C,EAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,EAErC,IAAkB,EAAM,OAAS,IAAU,IAAO,IACrD,GAAS,GACT,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,EAC5C,GAAoB,EAAO,GAAM,CAAU,EAC3C,GAAY,EAAO,EAAY,GAAiB,GAAO,EAAI,EAC3D,EAAY,EAAM,QAGpB,CAAI,CACF,GAAiB,EAAO,EAAS,EAAiB,EAAQ,EAAS,CAAS,EACvE,CAAI,CACT,EAAQ,KAAK,GAAiB,EAAO,KAAM,EAAiB,EAAQ,EAAS,CAAS,CAAC,EAEvF,EAAQ,KAAK,CAAO,EAGtB,GAAoB,EAAO,GAAM,CAAU,EAE3C,EAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,EAE1C,CAAI,GAAO,GACT,GAAW,GACX,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,GAE5C,EAAW,EAEd,CAED,GAAW,EAAO,uDAAuD,CAC3E,CAEA,YAAyB,EAAO,EAAY,CAC1C,GAAI,GACA,EACA,EAAiB,GACjB,EAAiB,GACjB,EAAiB,GACjB,EAAiB,EACjB,EAAiB,EACjB,EAAiB,GACjB,EACA,EAIJ,GAFA,EAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,EAEtC,IAAO,IACT,EAAU,WACD,IAAO,GAChB,EAAU,OAEV,OAAO,GAMT,IAHA,EAAM,KAAO,SACb,EAAM,OAAS,GAER,IAAO,GAGZ,GAFA,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,EAExC,IAAO,IAAe,IAAO,GAC/B,CAAI,IAAkB,EACpB,EAAY,IAAO,GAAe,GAAgB,GAElD,GAAW,EAAO,sCAAsC,UAGhD,GAAM,GAAgB,CAAE,IAAM,EACxC,CAAI,GAAQ,EACV,GAAW,EAAO,8EAA8E,EAC3F,CAAK,CAIV,GAAW,EAAO,2CAA2C,EAH7D,GAAa,EAAa,EAAM,EAChC,EAAiB,QAMnB,OAIJ,GAAI,GAAe,CAAE,EAAG,CACtB,EAAK,GAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,QAC1C,GAAe,CAAE,GAExB,GAAI,IAAO,GACT,EAAK,GAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,QAC1C,CAAC,GAAO,CAAE,GAAM,IAAO,EAEjC,CAED,KAAO,IAAO,GAAG,CAMf,IALA,GAAc,CAAK,EACnB,EAAM,WAAa,EAEnB,EAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,EAElC,EAAC,GAAkB,EAAM,WAAa,IACtC,IAAO,IACb,EAAM,aACN,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,EAO9C,GAJI,CAAC,GAAkB,EAAM,WAAa,GACxC,GAAa,EAAM,YAGjB,GAAO,CAAE,EAAG,CACd,IACA,QACD,CAGD,GAAI,EAAM,WAAa,EAAY,CAGjC,CAAI,GAAa,GACf,EAAM,QAAUA,GAAO,OAAO;AAAA,EAAM,EAAiB,EAAI,EAAa,CAAU,EACvE,IAAa,IAClB,GACF,GAAM,QAAU;AAAA,GAKpB,KACD,CAsCD,IAnCA,CAAI,CAGF,CAAI,EAAe,CAAE,EACnB,GAAiB,GAEjB,EAAM,QAAUA,GAAO,OAAO;AAAA,EAAM,EAAiB,EAAI,EAAa,CAAU,GAG3E,CAAI,CACT,GAAiB,GACjB,EAAM,QAAUA,GAAO,OAAO;AAAA,EAAM,EAAa,CAAC,GAG7C,CAAI,GAAe,EACpB,GACF,GAAM,QAAU,KAKlB,EAAM,QAAUA,GAAO,OAAO;AAAA,EAAM,CAAU,EAMhD,EAAM,QAAUA,GAAO,OAAO;AAAA,EAAM,EAAiB,EAAI,EAAa,CAAU,EAGlF,EAAiB,GACjB,EAAiB,GACjB,EAAa,EACb,EAAe,EAAM,SAEd,CAAC,GAAO,CAAE,GAAM,IAAO,GAC5B,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,EAG9C,GAAe,EAAO,EAAc,EAAM,SAAU,EAAK,CAC1D,CAED,MAAO,EACT,CAEA,YAA2B,EAAO,EAAY,CAC5C,GAAI,GACA,EAAY,EAAM,IAClB,EAAY,EAAM,OAClB,EAAY,CAAE,EACd,EACA,EAAY,GACZ,EAQJ,IANI,EAAM,SAAW,MACnB,GAAM,UAAU,EAAM,QAAU,GAGlC,EAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,EAEnC,IAAO,GAER,MAAO,IAIX,GAAY,EAAM,MAAM,WAAW,EAAM,SAAW,CAAC,EAEjD,CAAC,GAAa,CAAS,KARZ,CAef,GAHA,EAAW,GACX,EAAM,WAEF,GAAoB,EAAO,GAAM,EAAE,GACjC,EAAM,YAAc,EAAY,CAClC,EAAQ,KAAK,IAAI,EACjB,EAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,EAC1C,QACD,CAUH,GAPA,EAAQ,EAAM,KACd,GAAY,EAAO,EAAY,GAAkB,GAAO,EAAI,EAC5D,EAAQ,KAAK,EAAM,MAAM,EACzB,GAAoB,EAAO,GAAM,EAAE,EAEnC,EAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,EAErC,GAAM,OAAS,GAAS,EAAM,WAAa,IAAgB,IAAO,EACrE,GAAW,EAAO,qCAAqC,UAC9C,EAAM,WAAa,EAC5B,KAEH,CAED,MAAI,GACF,GAAM,IAAM,EACZ,EAAM,OAAS,EACf,EAAM,KAAO,WACb,EAAM,OAAS,EACR,IAEF,EACT,CAEA,YAA0B,EAAO,EAAY,EAAY,CACvD,GAAI,GACA,EACA,EACA,EACA,EAAgB,EAAM,IACtB,EAAgB,EAAM,OACtB,EAAgB,CAAE,EAClB,EAAkB,CAAE,EACpB,EAAgB,KAChB,EAAgB,KAChB,EAAgB,KAChB,EAAgB,GAChB,EAAgB,GAChB,EAQJ,IANI,EAAM,SAAW,MACnB,GAAM,UAAU,EAAM,QAAU,GAGlC,EAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,EAEnC,IAAO,GAAG,CASf,GARA,EAAY,EAAM,MAAM,WAAW,EAAM,SAAW,CAAC,EACrD,EAAQ,EAAM,KACd,EAAO,EAAM,SAMR,KAAO,IAAe,IAAO,KAAgB,GAAa,CAAS,EAEtE,CAAI,GAAO,GACL,IACF,IAAiB,EAAO,EAAS,EAAiB,EAAQ,EAAS,IAAI,EACvE,EAAS,EAAU,EAAY,MAGjC,EAAW,GACX,EAAgB,GAChB,EAAe,IAEV,CAAI,CAET,GAAgB,GAChB,EAAe,IAGf,GAAW,EAAO,mGAAmG,EAGvH,EAAM,UAAY,EAClB,EAAK,UAKI,GAAY,EAAO,EAAY,GAAkB,GAAO,EAAI,EAErE,GAAI,EAAM,OAAS,EAAO,CAGxB,IAFA,EAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,EAEnC,GAAe,CAAE,GACtB,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,EAG9C,GAAI,IAAO,GACT,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,EAEvC,GAAa,CAAE,GAClB,GAAW,EAAO,yFAAyF,EAGzG,GACF,IAAiB,EAAO,EAAS,EAAiB,EAAQ,EAAS,IAAI,EACvE,EAAS,EAAU,EAAY,MAGjC,EAAW,GACX,EAAgB,GAChB,EAAe,GACf,EAAS,EAAM,IACf,EAAU,EAAM,eAEP,EACT,GAAW,EAAO,0DAA0D,MAG5E,UAAM,IAAM,EACZ,EAAM,OAAS,EACR,EAGV,SAAU,EACT,GAAW,EAAO,gFAAgF,MAGlG,UAAM,IAAM,EACZ,EAAM,OAAS,EACR,OAIT,OAwBF,GAlBI,GAAM,OAAS,GAAS,EAAM,WAAa,IACzC,IAAY,EAAO,EAAY,GAAmB,GAAM,CAAY,GACtE,CAAI,EACF,EAAU,EAAM,OAEhB,EAAY,EAAM,QAIjB,GACH,IAAiB,EAAO,EAAS,EAAiB,EAAQ,EAAS,EAAW,EAAO,CAAI,EACzF,EAAS,EAAU,EAAY,MAGjC,GAAoB,EAAO,GAAM,EAAE,EACnC,EAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,GAGxC,EAAM,WAAa,GAAe,IAAO,EAC3C,GAAW,EAAO,oCAAoC,UAC7C,EAAM,WAAa,EAC5B,KAEH,CAOD,MAAI,IACF,GAAiB,EAAO,EAAS,EAAiB,EAAQ,EAAS,IAAI,EAIrE,GACF,GAAM,IAAM,EACZ,EAAM,OAAS,EACf,EAAM,KAAO,UACb,EAAM,OAAS,GAGV,CACT,CAEA,YAAyB,EAAO,CAC9B,GAAI,GACA,EAAa,GACb,EAAa,GACb,EACA,EACA,EAIJ,GAFA,EAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,EAEtC,IAAO,GAAa,MAAO,GAuB/B,GArBI,EAAM,MAAQ,MAChB,GAAW,EAAO,+BAA+B,EAGnD,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,EAE5C,CAAI,GAAO,GACT,GAAa,GACb,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,GAEvC,CAAI,GAAO,GAChB,GAAU,GACV,EAAY,KACZ,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,GAG5C,EAAY,IAGd,EAAY,EAAM,SAEd,EAAY,CACd,EAAK,GAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,QAC1C,IAAO,GAAK,IAAO,IAE1B,CAAI,CAAM,SAAW,EAAM,OACzB,GAAU,EAAM,MAAM,MAAM,EAAW,EAAM,QAAQ,EACrD,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,GAE5C,GAAW,EAAO,oDAAoD,CAE5E,KAAS,CACL,KAAO,IAAO,GAAK,CAAC,GAAa,CAAE,GAEjC,CAAI,GAAO,IACT,CAAK,EAUH,GAAW,EAAO,6CAA6C,EAT/D,GAAY,EAAM,MAAM,MAAM,EAAY,EAAG,EAAM,SAAW,CAAC,EAE1D,GAAmB,KAAK,CAAS,GACpC,GAAW,EAAO,iDAAiD,EAGrE,EAAU,GACV,EAAY,EAAM,SAAW,IAMjC,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,EAG9C,EAAU,EAAM,MAAM,MAAM,EAAW,EAAM,QAAQ,EAEjD,GAAwB,KAAK,CAAO,GACtC,GAAW,EAAO,qDAAqD,CAE1E,CAED,MAAI,IAAW,CAAC,GAAgB,KAAK,CAAO,GAC1C,GAAW,EAAO,4CAA8C,CAAO,EAGzE,CAAI,CACF,EAAM,IAAM,EAEP,CAAIW,EAAgB,KAAK,EAAM,OAAQ,CAAS,EACrD,EAAM,IAAM,EAAM,OAAO,GAAa,EAEjC,CAAI,GAAc,IACvB,EAAM,IAAM,IAAM,EAEb,CAAI,GAAc,KACvB,EAAM,IAAM,qBAAuB,EAGnC,GAAW,EAAO,0BAA4B,EAAY,GAAG,EAGxD,EACT,CAEA,YAA4B,EAAO,CACjC,GAAI,GACA,EAIJ,GAFA,EAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,EAEtC,IAAO,GAAa,MAAO,GAS/B,IAPI,EAAM,SAAW,MACnB,GAAW,EAAO,mCAAmC,EAGvD,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,EAC5C,EAAY,EAAM,SAEX,IAAO,GAAK,CAAC,GAAa,CAAE,GAAK,CAAC,GAAkB,CAAE,GAC3D,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,EAG9C,MAAI,GAAM,WAAa,GACrB,GAAW,EAAO,4DAA4D,EAGhF,EAAM,OAAS,EAAM,MAAM,MAAM,EAAW,EAAM,QAAQ,EACnD,EACT,CAEA,YAAmB,EAAO,CACxB,GAAI,GAAW,EACX,EAIJ,GAFA,EAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,EAEtC,IAAO,GAAa,MAAO,GAK/B,IAHA,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,EAC5C,EAAY,EAAM,SAEX,IAAO,GAAK,CAAC,GAAa,CAAE,GAAK,CAAC,GAAkB,CAAE,GAC3D,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,EAG9C,MAAI,GAAM,WAAa,GACrB,GAAW,EAAO,2DAA2D,EAG/E,EAAQ,EAAM,MAAM,MAAM,EAAW,EAAM,QAAQ,EAE9CA,GAAgB,KAAK,EAAM,UAAW,CAAK,GAC9C,GAAW,EAAO,uBAAyB,EAAQ,GAAG,EAGxD,EAAM,OAAS,EAAM,UAAU,GAC/B,GAAoB,EAAO,GAAM,EAAE,EAC5B,EACT,CAEA,YAAqB,EAAO,EAAc,EAAa,EAAa,EAAc,CAChF,GAAI,GACA,EACA,EACA,EAAe,EACf,EAAa,GACb,EAAa,GACb,EACA,EACA,EACA,EACA,EA6BJ,GA3BI,EAAM,WAAa,MACrB,EAAM,SAAS,OAAQ,CAAK,EAG9B,EAAM,IAAS,KACf,EAAM,OAAS,KACf,EAAM,KAAS,KACf,EAAM,OAAS,KAEf,EAAmB,EAAoB,EACrC,KAAsB,GACtB,KAAsB,EAEpB,GACE,GAAoB,EAAO,GAAM,EAAE,GACrC,GAAY,GAEZ,CAAI,CAAM,WAAa,EACrB,EAAe,EACV,CAAI,CAAM,aAAe,EAC9B,EAAe,EACN,EAAM,WAAa,GAC5B,GAAe,KAKjB,IAAiB,EACnB,KAAO,GAAgB,CAAK,GAAK,GAAmB,CAAK,GACvD,CAAI,EAAoB,EAAO,GAAM,EAAE,EACrC,GAAY,GACZ,EAAwB,EAExB,CAAI,CAAM,WAAa,EACrB,EAAe,EACV,CAAI,CAAM,aAAe,EAC9B,EAAe,EACN,EAAM,WAAa,GAC5B,GAAe,KAGjB,EAAwB,GAwD9B,GAnDI,GACF,GAAwB,GAAa,GAGnC,KAAiB,GAAK,KAAsB,IAC9C,CAAI,KAAoB,GAAe,KAAqB,EAC1D,EAAa,EAEb,EAAa,EAAe,EAG9B,EAAc,EAAM,SAAW,EAAM,UAErC,CAAI,GAAiB,EACnB,CAAI,EACC,IAAkB,EAAO,CAAW,GACpC,GAAiB,EAAO,EAAa,CAAU,IAChD,GAAmB,EAAO,CAAU,EACtC,EAAa,GAEb,CAAK,GAAqB,GAAgB,EAAO,CAAU,GACvD,GAAuB,EAAO,CAAU,GACxC,GAAuB,EAAO,CAAU,EAC1C,EAAa,GAER,CAAI,EAAU,CAAK,EACxB,GAAa,GAET,GAAM,MAAQ,MAAQ,EAAM,SAAW,OACzC,GAAW,EAAO,2CAA2C,GAGtD,GAAgB,EAAO,EAAY,KAAoB,CAAW,GAC3E,GAAa,GAET,EAAM,MAAQ,MAChB,GAAM,IAAM,MAIZ,EAAM,SAAW,MACnB,GAAM,UAAU,EAAM,QAAU,EAAM,SAGjC,IAAiB,GAG1B,GAAa,GAAyB,GAAkB,EAAO,CAAW,IAI1E,EAAM,MAAQ,MAAQ,EAAM,MAAQ,IACtC,GAAI,EAAM,MAAQ,KAWhB,IAJI,EAAM,SAAW,MAAQ,EAAM,OAAS,UAC1C,GAAW,EAAO,oEAAsE,EAAM,KAAO,GAAG,EAGrG,EAAY,EAAG,EAAe,EAAM,cAAc,OAAQ,EAAY,EAAc,GAAa,EAGpG,GAFA,EAAO,EAAM,cAAc,GAEvB,EAAK,QAAQ,EAAM,MAAM,EAAG,CAC9B,EAAM,OAAS,EAAK,UAAU,EAAM,MAAM,EAC1C,EAAM,IAAM,EAAK,IACb,EAAM,SAAW,MACnB,GAAM,UAAU,EAAM,QAAU,EAAM,QAExC,KACD,MAEE,CAAIA,GAAgB,KAAK,EAAM,QAAQ,EAAM,MAAQ,YAAa,EAAM,GAAG,EAChF,GAAO,EAAM,QAAQ,EAAM,MAAQ,YAAY,EAAM,KAEjD,EAAM,SAAW,MAAQ,EAAK,OAAS,EAAM,MAC/C,GAAW,EAAO,gCAAkC,EAAM,IAAM,wBAA0B,EAAK,KAAO,WAAa,EAAM,KAAO,GAAG,EAGrI,CAAK,CAAK,QAAQ,EAAM,MAAM,EAG5B,GAAM,OAAS,EAAK,UAAU,EAAM,MAAM,EACtC,EAAM,SAAW,MACnB,GAAM,UAAU,EAAM,QAAU,EAAM,SAJxC,GAAW,EAAO,gCAAkC,EAAM,IAAM,gBAAgB,GAQlF,GAAW,EAAO,iBAAmB,EAAM,IAAM,GAAG,EAIxD,MAAI,GAAM,WAAa,MACrB,EAAM,SAAS,QAAS,CAAK,EAExB,EAAM,MAAQ,MAAS,EAAM,SAAW,MAAQ,CACzD,CAEA,YAAsB,EAAO,CAC3B,GAAI,GAAgB,EAAM,SACtB,EACA,EACA,EACA,EAAgB,GAChB,EAOJ,IALA,EAAM,QAAU,KAChB,EAAM,gBAAkB,EAAM,OAC9B,EAAM,OAAS,GACf,EAAM,UAAY,GAEV,GAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,KAAO,GACvD,IAAoB,EAAO,GAAM,EAAE,EAEnC,EAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,EAEtC,IAAM,WAAa,GAAK,IAAO,MALuB,CAa1D,IAJA,EAAgB,GAChB,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,EAC5C,EAAY,EAAM,SAEX,IAAO,GAAK,CAAC,GAAa,CAAE,GACjC,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,EAU9C,IAPA,EAAgB,EAAM,MAAM,MAAM,EAAW,EAAM,QAAQ,EAC3D,EAAgB,GAEZ,EAAc,OAAS,GACzB,GAAW,EAAO,8DAA8D,EAG3E,IAAO,GAAG,CACf,KAAO,GAAe,CAAE,GACtB,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,EAG9C,GAAI,IAAO,GAAa,CACtB,EAAK,GAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,QAC1C,IAAO,GAAK,CAAC,GAAO,CAAE,GAC7B,KACD,CAED,GAAI,GAAO,CAAE,EAAG,MAIhB,IAFA,EAAY,EAAM,SAEX,IAAO,GAAK,CAAC,GAAa,CAAE,GACjC,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,EAG9C,EAAc,KAAK,EAAM,MAAM,MAAM,EAAW,EAAM,QAAQ,CAAC,CAChE,CAED,CAAI,GAAO,GAAG,GAAc,CAAK,EAEjC,CAAIA,EAAgB,KAAK,GAAmB,CAAa,EACvD,GAAkB,GAAe,EAAO,EAAe,CAAa,EAEpE,GAAa,EAAO,+BAAiC,EAAgB,GAAG,CAE3E,CAyBD,GAvBA,GAAoB,EAAO,GAAM,EAAE,EAEnC,CAAI,CAAM,aAAe,GACrB,EAAM,MAAM,WAAW,EAAM,QAAQ,IAAU,IAC/C,EAAM,MAAM,WAAW,EAAM,SAAW,CAAC,IAAM,IAC/C,EAAM,MAAM,WAAW,EAAM,SAAW,CAAC,IAAM,GACjD,GAAM,UAAY,EAClB,GAAoB,EAAO,GAAM,EAAE,GAE1B,GACT,GAAW,EAAO,iCAAiC,EAGrD,GAAY,EAAO,EAAM,WAAa,EAAG,GAAmB,GAAO,EAAI,EACvE,GAAoB,EAAO,GAAM,EAAE,EAE/B,EAAM,iBACN,GAA8B,KAAK,EAAM,MAAM,MAAM,EAAe,EAAM,QAAQ,CAAC,GACrF,GAAa,EAAO,kDAAkD,EAGxE,EAAM,UAAU,KAAK,EAAM,MAAM,EAE7B,EAAM,WAAa,EAAM,WAAa,GAAsB,CAAK,EAAG,CAEtE,CAAI,CAAM,MAAM,WAAW,EAAM,QAAQ,IAAM,IAC7C,GAAM,UAAY,EAClB,GAAoB,EAAO,GAAM,EAAE,GAErC,MACD,CAED,GAAI,EAAM,SAAY,EAAM,OAAS,EACnC,GAAW,EAAO,uDAAuD,MAEzE,OAEJ,CAGA,YAAuB,EAAO,EAAS,CACrC,EAAQ,OAAO,CAAK,EACpB,EAAU,GAAW,GAEjB,EAAM,SAAW,GAGf,GAAM,WAAW,EAAM,OAAS,CAAC,IAAM,IACvC,EAAM,WAAW,EAAM,OAAS,CAAC,IAAM,IACzC,IAAS;AAAA,GAIP,EAAM,WAAW,CAAC,IAAM,OAC1B,GAAQ,EAAM,MAAM,CAAC,IAIzB,GAAI,GAAQ,GAAII,IAAM,EAAO,CAAO,EAEhC,EAAU,EAAM,QAAQ,IAAI,EAUhC,IARI,IAAY,IACd,GAAM,SAAW,EACjB,GAAW,EAAO,mCAAmC,GAIvD,EAAM,OAAS,KAER,EAAM,MAAM,WAAW,EAAM,QAAQ,IAAM,IAChD,EAAM,YAAc,EACpB,EAAM,UAAY,EAGpB,KAAO,EAAM,SAAY,EAAM,OAAS,GACtC,GAAa,CAAK,EAGpB,MAAO,GAAM,SACf,CAGA,YAAiB,EAAO,EAAU,EAAS,CACzC,CAAI,GAAa,MAAQ,MAAO,IAAa,UAAY,MAAO,IAAY,aAC1E,GAAU,EACV,EAAW,MAGb,GAAI,GAAY,GAAc,EAAO,CAAO,EAE5C,GAAI,MAAO,IAAa,WACtB,MAAO,GAGT,OAAS,GAAQ,EAAG,EAAS,EAAU,OAAQ,EAAQ,EAAQ,GAAS,EACtE,EAAS,EAAU,EAAM,CAE7B,CAGA,YAAc,EAAO,EAAS,CAC5B,GAAI,GAAY,GAAc,EAAO,CAAO,EAE5C,GAAI,EAAU,SAAW,EAGlB,IAAI,EAAU,SAAW,EAC9B,MAAO,GAAU,GAEnB,KAAM,IAAIb,IAAc,0DAA0D,EACpF,CAGA,YAAqB,EAAO,EAAU,EAAS,CAC7C,MAAI,OAAO,IAAa,UAAY,IAAa,MAAQ,MAAO,IAAY,aAC1E,GAAU,EACV,EAAW,MAGN,GAAQ,EAAO,EAAUF,GAAO,OAAO,CAAE,OAAQa,EAAmB,EAAI,CAAO,CAAC,CACzF,CAGA,YAAkB,EAAO,EAAS,CAChC,MAAO,IAAK,EAAOb,GAAO,OAAO,CAAE,OAAQa,EAAmB,EAAI,CAAO,CAAC,CAC5E,CAGsBG,WAAO,GACVA,QAAU,GACHA,eAAG,GAC7BA,YAA6B,aCvmDzBhB,GAAsBlG,GACtB,GAAsBC,GACtB,GAAsBE,GACtB,GAAsBM,GAEtB,GAAkB,OAAO,UAAU,SACnC,GAAkB,OAAO,UAAU,eAEnC,GAA4B,EAC5B,GAA4B,GAC5B,GAA4B,GAC5B,GAA4B,GAC5B,GAA4B,GAC5B,GAA4B,GAC5B,GAA4B,GAC5B,GAA4B,GAC5B,GAA4B,GAC5B,GAA4B,GAC5B,GAA4B,GAC5B,GAA4B,GAC5B,GAA4B,GAC5B,GAA4B,GAC5B,GAA4B,GAC5B,GAA4B,GAC5B,GAA4B,GAC5B,GAA4B,GAC5B,GAA4B,GAC5B,GAA4B,GAC5B,GAA4B,GAC5B,GAA4B,IAC5B,GAA4B,IAC5B,GAA4B,IAE5B,GAAmB,GAEvB,GAAiB,GAAU,MAC3B,GAAiB,GAAU,MAC3B,GAAiB,GAAU,MAC3B,GAAiB,GAAU,MAC3B,GAAiB,IAAU,MAC3B,GAAiB,IAAU,MAC3B,GAAiB,IAAU,MAC3B,GAAiB,IAAU,MAC3B,GAAiB,IAAU,MAC3B,GAAiB,IAAU,MAC3B,GAAiB,IAAU,OAC3B,GAAiB,KAAU,MAC3B,GAAiB,KAAU,MAC3B,GAAiB,MAAU,MAC3B,GAAiB,MAAU,MAE3B,GAAI,IAA6B,CAC/B,IAAK,IAAK,MAAO,MAAO,MAAO,KAAM,KAAM,KAC3C,IAAK,IAAK,KAAM,KAAM,KAAM,MAAO,MAAO,KAC5C,EAEA,YAAyB,EAAQ,EAAK,CACpC,GAAI,GAAQ,EAAM,EAAO,EAAQ,EAAK,EAAO,EAE7C,GAAI,IAAQ,KAAM,MAAO,GAKzB,IAHA,EAAS,GACT,EAAO,OAAO,KAAK,CAAG,EAEjB,EAAQ,EAAG,EAAS,EAAK,OAAQ,EAAQ,EAAQ,GAAS,EAC7D,EAAM,EAAK,GACX,EAAQ,OAAO,EAAI,EAAI,EAEnB,EAAI,MAAM,EAAG,CAAC,IAAM,MACtB,GAAM,qBAAuB,EAAI,MAAM,CAAC,GAE1C,EAAO,EAAO,gBAAgB,SAAY,GAEtC,GAAQ,GAAgB,KAAK,EAAK,aAAc,CAAK,GACvD,GAAQ,EAAK,aAAa,IAG5B,EAAO,GAAO,EAGhB,MAAO,EACT,CAEA,YAAmB,EAAW,CAC5B,GAAI,GAAQ,EAAQ,EAIpB,GAFA,EAAS,EAAU,SAAS,EAAE,EAAE,YAAW,EAEvC,GAAa,IACf,EAAS,IACT,EAAS,UACA,GAAa,MACtB,EAAS,IACT,EAAS,UACA,GAAa,WACtB,EAAS,IACT,EAAS,MAET,MAAM,IAAI,IAAc,+DAA+D,EAGzF,MAAO,KAAO,EAASyF,GAAO,OAAO,IAAK,EAAS,EAAO,MAAM,EAAI,CACtE,CAEA,YAAe,EAAS,CACtB,KAAK,OAAgB,EAAQ,QAAa,GAC1C,KAAK,OAAgB,KAAK,IAAI,EAAI,EAAQ,QAAa,GACvD,KAAK,cAAgB,EAAQ,eAAoB,GACjD,KAAK,YAAgB,EAAQ,aAAkB,GAC/C,KAAK,UAAiBA,GAAO,UAAU,EAAQ,SAAY,EAAI,GAAK,EAAQ,UAC5E,KAAK,SAAgB,GAAgB,KAAK,OAAQ,EAAQ,QAAa,IAAI,EAC3E,KAAK,SAAgB,EAAQ,UAAe,GAC5C,KAAK,UAAgB,EAAQ,WAAgB,GAC7C,KAAK,OAAgB,EAAQ,QAAa,GAC1C,KAAK,aAAgB,EAAQ,cAAmB,GAChD,KAAK,aAAgB,EAAQ,cAAmB,GAEhD,KAAK,cAAgB,KAAK,OAAO,iBACjC,KAAK,cAAgB,KAAK,OAAO,iBAEjC,KAAK,IAAM,KACX,KAAK,OAAS,GAEd,KAAK,WAAa,GAClB,KAAK,eAAiB,IACxB,CAGA,YAAsB,EAAQ,EAAQ,CAQpC,OAPI,GAAMA,GAAO,OAAO,IAAK,CAAM,EAC/B,EAAW,EACX,EAAO,GACP,EAAS,GACT,EACA,EAAS,EAAO,OAEb,EAAW,GAChB,EAAO,EAAO,QAAQ;AAAA,EAAM,CAAQ,EACpC,CAAI,GAAS,GACX,GAAO,EAAO,MAAM,CAAQ,EAC5B,EAAW,GAEX,GAAO,EAAO,MAAM,EAAU,EAAO,CAAC,EACtC,EAAW,EAAO,GAGhB,EAAK,QAAU,IAAS;AAAA,GAAM,IAAU,GAE5C,GAAU,EAGZ,MAAO,EACT,CAEA,YAA0B,EAAO,EAAO,CACtC,MAAO;AAAA,EAAOA,GAAO,OAAO,IAAK,EAAM,OAAS,CAAK,CACvD,CAEA,YAA+B,EAAO,EAAK,CACzC,GAAI,GAAO,EAAQ,EAEnB,IAAK,EAAQ,EAAG,EAAS,EAAM,cAAc,OAAQ,EAAQ,EAAQ,GAAS,EAG5E,GAFA,EAAO,EAAM,cAAc,GAEvB,EAAK,QAAQ,CAAG,EAClB,MAAO,GAIX,MAAO,EACT,CAGA,YAAsB,EAAG,CACvB,MAAO,KAAM,IAAc,IAAM,EACnC,CAMA,YAAqB,EAAG,CACtB,MAAS,KAAW,GAAK,GAAK,KACrB,KAAW,GAAK,GAAK,OAAa,IAAM,MAAU,IAAM,MACxD,OAAW,GAAK,GAAK,OAAa,IAAM,OACxC,OAAW,GAAK,GAAK,OAChC,CAQA,YAAkB,EAAG,CACnB,MAAO,IAAY,CAAC,GAAK,CAAC,GAAa,CAAC,GAEnC,IAAM,OAEN,IAAM,IACN,IAAM,EACb,CAGA,YAAqB,EAAG,EAAM,CAG5B,MAAO,IAAY,CAAC,GAAK,IAAM,OAE1B,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IAGN,IAAM,IACJ,KAAM,IAAgB,GAAQ,GAAS,CAAI,EACpD,CAGA,YAA0B,EAAG,CAG3B,MAAO,IAAY,CAAC,GAAK,IAAM,OAC1B,CAAC,GAAa,CAAC,GAGf,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IAEN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IAEN,IAAM,IACN,IAAM,IACN,IAAM,EACb,CAGA,YAA6B,EAAQ,CACnC,GAAI,GAAiB,QACrB,MAAO,GAAe,KAAK,CAAM,CACnC,CAEA,GAAI,IAAgB,EAChB,GAAgB,EAChB,GAAgB,EAChB,GAAgB,EAChB,GAAgB,EASpB,YAA2B,EAAQ,EAAgB,EAAgB,EAAW,EAAmB,CAC/F,GAAI,GACA,EAAM,EACN,EAAe,GACf,EAAkB,GAClB,EAAmB,IAAc,GACjC,EAAoB,GACpB,EAAQ,GAAiB,EAAO,WAAW,CAAC,CAAC,GACtC,CAAC,GAAa,EAAO,WAAW,EAAO,OAAS,CAAC,CAAC,EAE7D,GAAI,EAGF,IAAK,EAAI,EAAG,EAAI,EAAO,OAAQ,IAAK,CAElC,GADA,EAAO,EAAO,WAAW,CAAC,EACtB,CAAC,GAAY,CAAI,EACnB,MAAO,IAET,EAAY,EAAI,EAAI,EAAO,WAAW,EAAI,CAAC,EAAI,KAC/C,EAAQ,GAAS,GAAY,EAAM,CAAS,CAC7C,KACI,CAEL,IAAK,EAAI,EAAG,EAAI,EAAO,OAAQ,IAAK,CAElC,GADA,EAAO,EAAO,WAAW,CAAC,EACtB,IAAS,GACX,EAAe,GAEX,GACF,GAAkB,GAEf,EAAI,EAAoB,EAAI,GAC5B,EAAO,EAAoB,KAAO,IACrC,EAAoB,WAEb,CAAC,GAAY,CAAI,EAC1B,MAAO,IAET,EAAY,EAAI,EAAI,EAAO,WAAW,EAAI,CAAC,EAAI,KAC/C,EAAQ,GAAS,GAAY,EAAM,CAAS,CAC7C,CAED,EAAkB,GAAoB,GACnC,EAAI,EAAoB,EAAI,GAC5B,EAAO,EAAoB,KAAO,GACtC,CAID,MAAI,CAAC,GAAgB,CAAC,EAGb,GAAS,CAAC,EAAkB,CAAM,EACrC,GAAc,GAGhB,EAAiB,GAAK,GAAoB,CAAM,EAC3C,GAIF,EAAkB,GAAe,EAC1C,CAQA,YAAqB,EAAO,EAAQ,EAAO,EAAO,CAChD,EAAM,KAAQ,UAAY,CACxB,GAAI,EAAO,SAAW,EACpB,MAAO,KAET,GAAI,CAAC,EAAM,cACP,GAA2B,QAAQ,CAAM,IAAM,GACjD,MAAO,IAAM,EAAS,IAGxB,GAAI,GAAS,EAAM,OAAS,KAAK,IAAI,EAAG,CAAK,EAQzC,EAAY,EAAM,YAAc,GAChC,GAAK,KAAK,IAAI,KAAK,IAAI,EAAM,UAAW,EAAE,EAAG,EAAM,UAAY,CAAM,EAGrE,EAAiB,GAEf,EAAM,UAAY,IAAM,GAAS,EAAM,UAC7C,WAAuB,EAAQ,CAC7B,MAAO,IAAsB,EAAO,CAAM,CAC3C,CAED,OAAQ,GAAkB,EAAQ,EAAgB,EAAM,OAAQ,EAAW,CAAa,OACjF,IACH,MAAO,OACJ,IACH,MAAO,IAAM,EAAO,QAAQ,KAAM,IAAI,EAAI,QACvC,IACH,MAAO,IAAM,GAAY,EAAQ,EAAM,MAAM,EACzC,GAAkB,GAAa,EAAQ,CAAM,CAAC,MAC/C,IACH,MAAO,IAAM,GAAY,EAAQ,EAAM,MAAM,EACzC,GAAkB,GAAa,GAAW,EAAQ,CAAS,EAAG,CAAM,CAAC,MACtE,IACH,MAAO,IAAM,GAAa,CAAiB,EAAI,YAE/C,KAAM,IAAI,IAAc,wCAAwC,EAErE,GACH,CAGA,YAAqB,EAAQ,EAAgB,CAC3C,GAAI,GAAkB,GAAoB,CAAM,EAAI,OAAO,CAAc,EAAI,GAGzE,EAAgB,EAAO,EAAO,OAAS,KAAO;AAAA,EAC9C,EAAO,GAAS,GAAO,EAAO,OAAS,KAAO;AAAA,GAAQ,IAAW;AAAA,GACjE,EAAQ,EAAO,IAAO,EAAO,GAAK,IAEtC,MAAO,GAAkB,EAAQ;AAAA,CACnC,CAGA,YAA2B,EAAQ,CACjC,MAAO,GAAO,EAAO,OAAS,KAAO;AAAA,EAAO,EAAO,MAAM,EAAG,EAAE,EAAI,CACpE,CAIA,YAAoB,EAAQ,EAAO,CAoBjC,OAfI,GAAS,iBAGT,EAAU,UAAY,CACxB,GAAI,GAAS,EAAO,QAAQ;AAAA,CAAI,EAChC,SAAS,IAAW,GAAK,EAAS,EAAO,OACzC,EAAO,UAAY,EACZ,GAAS,EAAO,MAAM,EAAG,CAAM,EAAG,CAAK,CAC/C,IAEG,EAAmB,EAAO,KAAO;AAAA,GAAQ,EAAO,KAAO,IACvD,EAGA,EACI,EAAQ,EAAO,KAAK,CAAM,GAAI,CACpC,GAAI,GAAS,EAAM,GAAI,EAAO,EAAM,GACpC,EAAgB,EAAK,KAAO,IAC5B,GAAU,EACL,EAAC,GAAoB,CAAC,GAAgB,IAAS,GAC9C;AAAA,EAAO,IACT,GAAS,EAAM,CAAK,EACxB,EAAmB,CACpB,CAED,MAAO,EACT,CAMA,YAAkB,EAAM,EAAO,CAC7B,GAAI,IAAS,IAAM,EAAK,KAAO,IAAK,MAAO,GAa3C,OAVI,GAAU,SACV,EAEA,EAAQ,EAAG,EAAK,EAAO,EAAG,EAAO,EACjC,EAAS,GAML,EAAQ,EAAQ,KAAK,CAAI,GAC/B,EAAO,EAAM,MAET,EAAO,EAAQ,GACjB,GAAO,EAAO,EAAS,EAAO,EAC9B,GAAU;AAAA,EAAO,EAAK,MAAM,EAAO,CAAG,EAEtC,EAAQ,EAAM,GAEhB,EAAO,EAKT,UAAU;AAAA,EAEV,CAAI,CAAK,OAAS,EAAQ,GAAS,EAAO,EACxC,GAAU,EAAK,MAAM,EAAO,CAAI,EAAI;AAAA,EAAO,EAAK,MAAM,EAAO,CAAC,EAE9D,GAAU,EAAK,MAAM,CAAK,EAGrB,EAAO,MAAM,CAAC,CACvB,CAGA,YAAsB,EAAQ,CAK5B,OAJI,GAAS,GACT,EAAM,EACN,EAEK,EAAI,EAAG,EAAI,EAAO,OAAQ,IAAK,CAGtC,GAFA,EAAO,EAAO,WAAW,CAAC,EAEtB,GAAQ,OAAU,GAAQ,OAC5B,GAAW,EAAO,WAAW,EAAI,CAAC,EAC9B,GAAY,OAAU,GAAY,OAA2B,CAE/D,GAAU,GAAW,GAAO,OAAU,KAAQ,EAAW,MAAS,KAAO,EAEzE,IAAK,QACN,CAEH,EAAY,GAAiB,GAC7B,GAAU,CAAC,GAAa,GAAY,CAAI,EACpC,EAAO,GACP,GAAa,GAAU,CAAI,CAChC,CAED,MAAO,EACT,CAEA,YAA2B,EAAO,EAAO,EAAQ,CAC/C,GAAI,GAAU,GACV,EAAU,EAAM,IAChB,EACA,EAEJ,IAAK,EAAQ,EAAG,EAAS,EAAO,OAAQ,EAAQ,EAAQ,GAAS,EAE/D,CAAI,EAAU,EAAO,EAAO,EAAO,GAAQ,GAAO,EAAK,GACjD,KAAU,GAAG,IAAW,IAAO,CAAC,EAAM,aAAqB,GAAN,MACzD,GAAW,EAAM,MAIrB,EAAM,IAAM,EACZ,EAAM,KAAO,IAAM,EAAU,GAC/B,CAEA,YAA4B,EAAO,EAAO,EAAQ,EAAS,CACzD,GAAI,GAAU,GACV,EAAU,EAAM,IAChB,EACA,EAEJ,IAAK,EAAQ,EAAG,EAAS,EAAO,OAAQ,EAAQ,EAAQ,GAAS,EAE/D,CAAI,EAAU,EAAO,EAAQ,EAAG,EAAO,GAAQ,GAAM,EAAI,GACnD,GAAC,GAAW,IAAU,IACxB,IAAW,GAAiB,EAAO,CAAK,GAG1C,CAAI,CAAM,MAAQ,KAAmB,EAAM,KAAK,WAAW,CAAC,EAC1D,GAAW,IAEX,GAAW,KAGb,GAAW,EAAM,MAIrB,EAAM,IAAM,EACZ,EAAM,KAAO,GAAW,IAC1B,CAEA,YAA0B,EAAO,EAAO,EAAQ,CAC9C,GAAI,GAAgB,GAChB,EAAgB,EAAM,IACtB,EAAgB,OAAO,KAAK,CAAM,EAClC,EACA,EACA,EACA,EACA,EAEJ,IAAK,EAAQ,EAAG,EAAS,EAAc,OAAQ,EAAQ,EAAQ,GAAS,EAUtE,CARA,CAAa,GACT,IAAU,GAAG,IAAc,MAE3B,EAAM,cAAc,IAAc,KAEtC,EAAY,EAAc,GAC1B,EAAc,EAAO,GAEjB,CAAC,EAAU,EAAO,EAAO,EAAW,GAAO,EAAK,GAIhD,GAAM,KAAK,OAAS,MAAM,IAAc,MAE5C,GAAc,EAAM,KAAQ,GAAM,aAAe,IAAM,IAAM,IAAO,GAAM,aAAe,GAAK,KAE1F,CAAC,EAAU,EAAO,EAAO,EAAa,GAAO,EAAK,GAItD,IAAc,EAAM,KAGpB,GAAW,IAGb,EAAM,IAAM,EACZ,EAAM,KAAO,IAAM,EAAU,GAC/B,CAEA,YAA2B,EAAO,EAAO,EAAQ,EAAS,CACxD,GAAI,GAAgB,GAChB,EAAgB,EAAM,IACtB,EAAgB,OAAO,KAAK,CAAM,EAClC,EACA,EACA,EACA,EACA,EACA,EAGJ,GAAI,EAAM,WAAa,GAErB,EAAc,KAAI,UACT,MAAO,GAAM,UAAa,WAEnC,EAAc,KAAK,EAAM,QAAQ,UACxB,EAAM,SAEf,KAAM,IAAI,IAAc,0CAA0C,EAGpE,IAAK,EAAQ,EAAG,EAAS,EAAc,OAAQ,EAAQ,EAAQ,GAAS,EAUtE,CATA,CAAa,GAET,EAAC,GAAW,IAAU,IACxB,IAAc,GAAiB,EAAO,CAAK,GAG7C,EAAY,EAAc,GAC1B,EAAc,EAAO,GAEjB,CAAC,EAAU,EAAO,EAAQ,EAAG,EAAW,GAAM,GAAM,EAAI,GAI5D,GAAgB,EAAM,MAAQ,MAAQ,EAAM,MAAQ,KACpC,EAAM,MAAQ,EAAM,KAAK,OAAS,KAE9C,GACF,CAAI,EAAM,MAAQ,KAAmB,EAAM,KAAK,WAAW,CAAC,EAC1D,GAAc,IAEd,GAAc,MAIlB,GAAc,EAAM,KAEhB,GACF,IAAc,GAAiB,EAAO,CAAK,GAGzC,CAAC,EAAU,EAAO,EAAQ,EAAG,EAAa,GAAM,CAAY,GAIhE,CAAI,EAAM,MAAQ,KAAmB,EAAM,KAAK,WAAW,CAAC,EAC1D,GAAc,IAEd,GAAc,KAGhB,GAAc,EAAM,KAGpB,GAAW,IAGb,EAAM,IAAM,EACZ,EAAM,KAAO,GAAW,IAC1B,CAEA,YAAoB,EAAO,EAAQ,EAAU,CAC3C,GAAI,GAAS,EAAU,EAAO,EAAQ,EAAM,EAI5C,IAFA,EAAW,EAAW,EAAM,cAAgB,EAAM,cAE7C,EAAQ,EAAG,EAAS,EAAS,OAAQ,EAAQ,EAAQ,GAAS,EAGjE,GAFA,EAAO,EAAS,GAEX,GAAK,YAAe,EAAK,YACzB,EAAC,EAAK,YAAgB,MAAO,IAAW,UAAc,YAAkB,GAAK,aAC7E,EAAC,EAAK,WAAc,EAAK,UAAU,CAAM,GAAI,CAIhD,GAFA,EAAM,IAAM,EAAW,EAAK,IAAM,IAE9B,EAAK,UAAW,CAGlB,GAFA,EAAQ,EAAM,SAAS,EAAK,MAAQ,EAAK,aAErC,GAAU,KAAK,EAAK,SAAS,IAAM,oBACrC,EAAU,EAAK,UAAU,EAAQ,CAAK,UAC7B,GAAgB,KAAK,EAAK,UAAW,CAAK,EACnD,EAAU,EAAK,UAAU,GAAO,EAAQ,CAAK,MAE7C,MAAM,IAAI,IAAc,KAAO,EAAK,IAAM,+BAAiC,EAAQ,SAAS,EAG9F,EAAM,KAAO,CACd,CAED,MAAO,EACR,CAGH,MAAO,EACT,CAKA,YAAmB,EAAO,EAAO,EAAQ,EAAO,EAAS,EAAO,CAC9D,EAAM,IAAM,KACZ,EAAM,KAAO,EAER,GAAW,EAAO,EAAQ,EAAK,GAClC,GAAW,EAAO,EAAQ,EAAI,EAGhC,GAAI,GAAO,GAAU,KAAK,EAAM,IAAI,EAEpC,CAAI,EACF,GAAS,EAAM,UAAY,GAAK,EAAM,UAAY,GAGpD,GAAI,GAAgB,IAAS,mBAAqB,IAAS,iBACvD,EACA,EAWJ,GATI,GACF,GAAiB,EAAM,WAAW,QAAQ,CAAM,EAChD,EAAY,IAAmB,IAG5B,GAAM,MAAQ,MAAQ,EAAM,MAAQ,KAAQ,GAAc,EAAM,SAAW,GAAK,EAAQ,IAC3F,GAAU,IAGR,GAAa,EAAM,eAAe,GACpC,EAAM,KAAO,QAAU,MAClB,CAIL,GAHI,GAAiB,GAAa,CAAC,EAAM,eAAe,IACtD,GAAM,eAAe,GAAkB,IAErC,IAAS,kBACX,CAAI,EAAU,OAAO,KAAK,EAAM,IAAI,EAAE,SAAW,EAC/C,IAAkB,EAAO,EAAO,EAAM,KAAM,CAAO,EAC/C,GACF,GAAM,KAAO,QAAU,EAAiB,EAAM,OAGhD,IAAiB,EAAO,EAAO,EAAM,IAAI,EACrC,GACF,GAAM,KAAO,QAAU,EAAiB,IAAM,EAAM,eAG/C,IAAS,iBAAkB,CACpC,GAAI,GAAc,EAAM,eAAkB,EAAQ,EAAM,EAAQ,EAAI,EACpE,CAAI,EAAU,EAAM,KAAK,SAAW,EAClC,IAAmB,EAAO,EAAY,EAAM,KAAM,CAAO,EACrD,GACF,GAAM,KAAO,QAAU,EAAiB,EAAM,OAGhD,IAAkB,EAAO,EAAY,EAAM,IAAI,EAC3C,GACF,GAAM,KAAO,QAAU,EAAiB,IAAM,EAAM,MAG9D,SAAe,IAAS,kBAClB,CAAI,CAAM,MAAQ,KAChB,GAAY,EAAO,EAAM,KAAM,EAAO,CAAK,MAExC,CACL,GAAI,EAAM,YAAa,MAAO,GAC9B,KAAM,IAAI,IAAc,0CAA4C,CAAI,CACzE,CAED,CAAI,CAAM,MAAQ,MAAQ,EAAM,MAAQ,KACtC,GAAM,KAAO,KAAO,EAAM,IAAM,KAAO,EAAM,KAEhD,CAED,MAAO,EACT,CAEA,YAAgC,EAAQ,EAAO,CAC7C,GAAI,GAAU,CAAE,EACZ,EAAoB,CAAE,EACtB,EACA,EAIJ,IAFA,GAAY,EAAQ,EAAS,CAAiB,EAEzC,EAAQ,EAAG,EAAS,EAAkB,OAAQ,EAAQ,EAAQ,GAAS,EAC1E,EAAM,WAAW,KAAK,EAAQ,EAAkB,GAAO,EAEzD,EAAM,eAAiB,GAAI,OAAM,CAAM,CACzC,CAEA,YAAqB,EAAQ,EAAS,EAAmB,CACvD,GAAI,GACA,EACA,EAEJ,GAAI,IAAW,MAAQ,MAAO,IAAW,SAEvC,GADA,EAAQ,EAAQ,QAAQ,CAAM,EAC1B,IAAU,GACZ,CAAI,CAAkB,QAAQ,CAAK,IAAM,IACvC,EAAkB,KAAK,CAAK,UAG9B,EAAQ,KAAK,CAAM,EAEf,MAAM,QAAQ,CAAM,EACtB,IAAK,EAAQ,EAAG,EAAS,EAAO,OAAQ,EAAQ,EAAQ,GAAS,EAC/D,GAAY,EAAO,GAAQ,EAAS,CAAiB,MAKvD,KAFA,EAAgB,OAAO,KAAK,CAAM,EAE7B,EAAQ,EAAG,EAAS,EAAc,OAAQ,EAAQ,EAAQ,GAAS,EACtE,GAAY,EAAO,EAAc,IAAS,EAAS,CAAiB,CAK9E,CAEA,YAAc,EAAO,EAAS,CAC5B,EAAU,GAAW,GAErB,GAAI,GAAQ,GAAI,IAAM,CAAO,EAI7B,MAFK,GAAM,QAAQ,GAAuB,EAAO,CAAK,EAElD,GAAU,EAAO,EAAG,EAAO,GAAM,EAAI,EAAU,EAAM,KAAO;AAAA,EAEzD,EACT,CAEA,YAAkB,EAAO,EAAS,CAChC,MAAO,IAAK,EAAOA,GAAO,OAAO,CAAE,OAAQ,EAAmB,EAAI,CAAO,CAAC,CAC5E,CAEmBiB,QAAO,GAC1BA,YAA0B,GC90B1B,GAAI,IAASnH,GACT,GAASC,GAGb,YAAoB,EAAM,CACxB,MAAO,WAAY,CACjB,KAAM,IAAI,OAAM,YAAc,EAAO,oCAAoC,CAC7E,CACA,CAGmBmH,QAAkBjH,GAChBiH,UAAgB3G,GACP2G,mBAAO1G,GACX0G,eAAWrG,GACXqG,eAAWpG,GACHoG,uBAAGnG,GACHmG,uBAAGlG,GACrCkG,QAAqC,GAAO,KAC5CA,WAAqC,GAAO,QAC5CA,YAAqC,GAAO,SAC5CA,eAAqC,GAAO,YAC5CA,QAAqC,GAAO,KAC5CA,YAAqC,GAAO,SAChBA,iBAASjG,GAGRiG,kBAAG1G,GACN0G,eAAMnG,GACHmG,kBAAGlG,GAGhCkG,QAAgCC,GAAW,MAAM,EACjDD,SAAgCC,GAAW,OAAO,EAClDD,WAAgCC,GAAW,SAAS,EACpDD,kBAAgCC,GAAW,gBAAgB,ECnC3D,GAAI,IAAOrH,GAGX,GAAiB,GCLjB,GAAiB,GAEjB,YAAqB,EAAK,CACxB,MAAI,aAAe,QACV,OAAO,KAAK,CAAG,EAGjB,GAAI,GAAI,YAAY,EAAI,OAAO,MAAO,EAAE,EAAI,WAAY,EAAI,MAAM,CAC3E,CAEA,YAAe,EAAM,CAGnB,GAFA,EAAO,GAAQ,CAAE,EAEb,EAAK,QAAS,MAAO,IAAY,CAAI,EACzC,MAAO,GAAK,MAAQ,EAAa,EAEjC,WAAqB,EAAG,EAAI,CAG1B,OAFI,GAAO,OAAO,KAAK,CAAC,EACpB,EAAK,GAAI,OAAM,EAAK,MAAM,EACrB,EAAI,EAAG,EAAI,EAAK,OAAQ,IAAK,CACpC,GAAI,GAAI,EAAK,GACT,EAAM,EAAE,GACZ,CAAI,KAAO,IAAQ,UAAY,IAAQ,KACrC,EAAG,GAAK,EACH,CAAI,WAAe,MACxB,EAAG,GAAK,GAAI,MAAK,CAAG,EACf,CAAI,WAAY,OAAO,CAAG,EAC/B,EAAG,GAAK,GAAW,CAAG,EAEtB,EAAG,GAAK,EAAG,CAAG,CAEjB,CACD,MAAO,EACR,CAED,WAAgB,EAAG,CACjB,GAAI,MAAO,IAAM,UAAY,IAAM,KAAM,MAAO,GAChD,GAAI,YAAa,MAAM,MAAO,IAAI,MAAK,CAAC,EACxC,GAAI,MAAM,QAAQ,CAAC,EAAG,MAAO,GAAW,EAAG,CAAK,EAChD,GAAI,YAAa,KAAK,MAAO,IAAI,KAAI,EAAW,MAAM,KAAK,CAAC,EAAG,CAAK,CAAC,EACrE,GAAI,YAAa,KAAK,MAAO,IAAI,KAAI,EAAW,MAAM,KAAK,CAAC,EAAG,CAAK,CAAC,EACrE,GAAI,GAAK,CAAE,EACX,OAAS,KAAK,GACZ,GAAI,OAAO,eAAe,KAAK,EAAG,CAAC,IAAM,GACzC,IAAI,GAAM,EAAE,GACZ,CAAI,KAAO,IAAQ,UAAY,IAAQ,KACrC,EAAG,GAAK,EACH,CAAI,WAAe,MACxB,EAAG,GAAK,GAAI,MAAK,CAAG,EACf,CAAI,WAAe,KACxB,EAAG,GAAK,GAAI,KAAI,EAAW,MAAM,KAAK,CAAG,EAAG,CAAK,CAAC,EAC7C,CAAI,WAAe,KACxB,EAAG,GAAK,GAAI,KAAI,EAAW,MAAM,KAAK,CAAG,EAAG,CAAK,CAAC,EAC7C,CAAI,WAAY,OAAO,CAAG,EAC/B,EAAG,GAAK,GAAW,CAAG,EAEtB,EAAG,GAAK,EAAM,CAAG,EAGrB,MAAO,EACR,CAED,WAAqB,EAAG,CACtB,GAAI,MAAO,IAAM,UAAY,IAAM,KAAM,MAAO,GAChD,GAAI,YAAa,MAAM,MAAO,IAAI,MAAK,CAAC,EACxC,GAAI,MAAM,QAAQ,CAAC,EAAG,MAAO,GAAW,EAAG,CAAU,EACrD,GAAI,YAAa,KAAK,MAAO,IAAI,KAAI,EAAW,MAAM,KAAK,CAAC,EAAG,CAAU,CAAC,EAC1E,GAAI,YAAa,KAAK,MAAO,IAAI,KAAI,EAAW,MAAM,KAAK,CAAC,EAAG,CAAU,CAAC,EAC1E,GAAI,GAAK,CAAE,EACX,OAAS,KAAK,GAAG,CACf,GAAI,GAAM,EAAE,GACZ,CAAI,KAAO,IAAQ,UAAY,IAAQ,KACrC,EAAG,GAAK,EACH,CAAI,WAAe,MACxB,EAAG,GAAK,GAAI,MAAK,CAAG,EACf,CAAI,WAAe,KACxB,EAAG,GAAK,GAAI,KAAI,EAAW,MAAM,KAAK,CAAG,EAAG,CAAU,CAAC,EAClD,CAAI,WAAe,KACxB,EAAG,GAAK,GAAI,KAAI,EAAW,MAAM,KAAK,CAAG,EAAG,CAAU,CAAC,EAClD,CAAI,WAAY,OAAO,CAAG,EAC/B,EAAG,GAAK,GAAW,CAAG,EAEtB,EAAG,GAAK,EAAW,CAAG,CAEzB,CACD,MAAO,EACR,CACH,CAEA,YAAsB,EAAM,CAC1B,GAAI,GAAO,CAAE,EACT,EAAU,CAAE,EAEhB,MAAO,GAAK,MAAQ,EAAa,EAEjC,WAAqB,EAAG,EAAI,CAG1B,OAFI,GAAO,OAAO,KAAK,CAAC,EACpB,EAAK,GAAI,OAAM,EAAK,MAAM,EACrB,EAAI,EAAG,EAAI,EAAK,OAAQ,IAAK,CACpC,GAAI,GAAI,EAAK,GACT,EAAM,EAAE,GACZ,GAAI,MAAO,IAAQ,UAAY,IAAQ,KACrC,EAAG,GAAK,UACC,YAAe,MACxB,EAAG,GAAK,GAAI,MAAK,CAAG,UACX,YAAY,OAAO,CAAG,EAC/B,EAAG,GAAK,GAAW,CAAG,MACjB,CACL,GAAI,GAAQ,EAAK,QAAQ,CAAG,EAC5B,CAAI,GAAU,GACZ,EAAG,GAAK,EAAQ,GAEhB,EAAG,GAAK,EAAG,CAAG,CAEjB,CACF,CACD,MAAO,EACR,CAED,WAAgB,EAAG,CACjB,GAAI,MAAO,IAAM,UAAY,IAAM,KAAM,MAAO,GAChD,GAAI,YAAa,MAAM,MAAO,IAAI,MAAK,CAAC,EACxC,GAAI,MAAM,QAAQ,CAAC,EAAG,MAAO,GAAW,EAAG,CAAK,EAChD,GAAI,YAAa,KAAK,MAAO,IAAI,KAAI,EAAW,MAAM,KAAK,CAAC,EAAG,CAAK,CAAC,EACrE,GAAI,YAAa,KAAK,MAAO,IAAI,KAAI,EAAW,MAAM,KAAK,CAAC,EAAG,CAAK,CAAC,EACrE,GAAI,GAAK,CAAE,EACX,EAAK,KAAK,CAAC,EACX,EAAQ,KAAK,CAAE,EACf,OAAS,KAAK,GACZ,GAAI,OAAO,eAAe,KAAK,EAAG,CAAC,IAAM,GACzC,IAAI,GAAM,EAAE,GACZ,GAAI,MAAO,IAAQ,UAAY,IAAQ,KACrC,EAAG,GAAK,UACC,YAAe,MACxB,EAAG,GAAK,GAAI,MAAK,CAAG,UACX,YAAe,KACxB,EAAG,GAAK,GAAI,KAAI,EAAW,MAAM,KAAK,CAAG,EAAG,CAAK,CAAC,UACzC,YAAe,KACxB,EAAG,GAAK,GAAI,KAAI,EAAW,MAAM,KAAK,CAAG,EAAG,CAAK,CAAC,UACzC,YAAY,OAAO,CAAG,EAC/B,EAAG,GAAK,GAAW,CAAG,MACjB,CACL,GAAI,GAAI,EAAK,QAAQ,CAAG,EACxB,CAAI,GAAM,GACR,EAAG,GAAK,EAAQ,GAEhB,EAAG,GAAK,EAAM,CAAG,CAEpB,EAEH,SAAK,IAAK,EACV,EAAQ,IAAK,EACN,CACR,CAED,WAAqB,EAAG,CACtB,GAAI,MAAO,IAAM,UAAY,IAAM,KAAM,MAAO,GAChD,GAAI,YAAa,MAAM,MAAO,IAAI,MAAK,CAAC,EACxC,GAAI,MAAM,QAAQ,CAAC,EAAG,MAAO,GAAW,EAAG,CAAU,EACrD,GAAI,YAAa,KAAK,MAAO,IAAI,KAAI,EAAW,MAAM,KAAK,CAAC,EAAG,CAAU,CAAC,EAC1E,GAAI,YAAa,KAAK,MAAO,IAAI,KAAI,EAAW,MAAM,KAAK,CAAC,EAAG,CAAU,CAAC,EAC1E,GAAI,GAAK,CAAE,EACX,EAAK,KAAK,CAAC,EACX,EAAQ,KAAK,CAAE,EACf,OAAS,KAAK,GAAG,CACf,GAAI,GAAM,EAAE,GACZ,GAAI,MAAO,IAAQ,UAAY,IAAQ,KACrC,EAAG,GAAK,UACC,YAAe,MACxB,EAAG,GAAK,GAAI,MAAK,CAAG,UACX,YAAe,KACxB,EAAG,GAAK,GAAI,KAAI,EAAW,MAAM,KAAK,CAAG,EAAG,CAAU,CAAC,UAC9C,YAAe,KACxB,EAAG,GAAK,GAAI,KAAI,EAAW,MAAM,KAAK,CAAG,EAAG,CAAU,CAAC,UAC9C,YAAY,OAAO,CAAG,EAC/B,EAAG,GAAK,GAAW,CAAG,MACjB,CACL,GAAI,GAAI,EAAK,QAAQ,CAAG,EACxB,CAAI,GAAM,GACR,EAAG,GAAK,EAAQ,GAEhB,EAAG,GAAK,EAAW,CAAG,CAEzB,CACF,CACD,SAAK,IAAK,EACV,EAAQ,IAAK,EACN,CACR,CACH,m/JCjLO,YAAkBsH,EAAsC,CACvD,aAAOA,IAAQ,UAAYA,IAAQ,IAC1C,CAED,YAAkBtQ,EAAW,CACrBA,SAAEuQ,SAAS,EAAX,EAAeC,SAAS,EAAG,GAA3B,CACP,CAEM,YAAeC,EAAS,GAAI,CAC9BC,MAAM,GAAIC,YAAWF,EAAS,CAAxB,EACHG,qBAAOC,gBAAgBH,CAA9B,EACOI,MAAMC,KAAKL,EAAKM,EAAhB,EAA0BC,KAAK,EAA/B,CACP,CAE4B,cACrBC,cAAOC,KAAKC,MAAMD,KAAKE,SAAWC,OAAOC,gBAAlC,CAAD,CACb,CAE8B,cAC9B,MAAO,uCAAuCC,QAAQ,QAAS,SAAS/Q,EAAG,CACpEH,QAAI6Q,KAAKE,OAAS,KAAG,EAEpBnP,OADGzB,GAAK,IAAMH,EAAKA,EAAE,EAAI,GACvBiQ,SAAS,EAAX,EAHD,CAKP,CAEM,YAAiBkB,EAAkB,CACzC,KAAMC,GAAOP,KAAKC,MAAMD,KAAKE,SAAY,UAA5B,EAA2C,WAClDM,EAAaF,EAAMG,IAAI,GAAIC,QAAK,CAAC,YAAD,CAAT,CAAV,EACbC,MAAI,GAAID,QAAK,CAAC,MAAD,CAAT,EAAoBH,EAAM,EAApC,EACIvC,GAASwC,CAAD,GACXI,OAAOC,KAAKL,CAAZ,EAAwBM,QAAQxK,CAAM,GAC/BqK,MAAI,GAAID,QAAK,CAAC,aAAcpK,EAAI,YAAa,MAAhC,CAAT,EAAmDiK,EAAM,EAAnE,EACAD,EAAMK,IAAI,GAAID,QAAK,CAAC,aAAcpK,EAAI,YAAa,eAAgB,MAAhD,CAAT,EAAmEiK,EAAM,EAAnF,EAFD,EAKDD,EAAMK,IAAI,GAAID,GAAK,MAAC,YAAa,MAAd,CAAT,EAAiCV,KAAKe,IAAIR,CAAT,EAAgB,EAA3D,EACMI,MAAI,GAAID,QAAK,CAAC,YAAa,MAAd,CAAT,EAAiCH,EAAM,EAAjD,EACMI,MAAI,GAAID,QAAK,CAAC,YAAa,eAAgB,MAA9B,CAAT,EAAiDH,CAA3D,CACA,CAOM,YAAoBhR,EAAW,CACjCuB,MAAI,EACR,OAAQ9B,GAAI,EAAGA,EAAIO,EAAE+P,OAAQtQ,IACxBgR,OAAKgB,KAAK,GAAIlQ,CAAd,EAAmBvB,EAAE0R,WAAWjS,CAAb,EAAkB,EACnC8B,QACP,CAEM,YAAkBoQ,EAAa,CAC7B,UAAGA,KAAOC,WAAW,KAAM,GAA5B,CACP,CAEM,YAAiBD,EAAa,CAC9BE,QAAcF,EAAIG,QAAQ,GAAZ,EAChBD,UAAe,GACZF,KAAII,MAAM,EAAGF,CAAb,GAEAG,GAASL,CAAD,CACf,CAEM,YAAsBA,EAAa,CACnCM,QAAaC,GAAQP,CAAD,EAAMb,QAAQ,MAAO,EAA5B,EAAgCA,QAAQ,MAAO,EAA/C,EACnB,MAAO/C,IAAOoE,WAAWC,KAAKhS,CAAKA,IAAEuR,MAAQM,CAAtC,CACP,CAEyB,aAAEI,OAAMC,SAAQC,OAAMzB,WAAiF,CAC1Ha,QAAOU,KAAStK,OAAYiK,GAASK,CAAD,EAASG,SAASC,UAC7C1K,YAAauK,EAAOI,WAAW,GAAlB,GAA0BJ,EAAOvC,SAAW,EAAIuC,EAAS,IAAMA,EAAUE,SAASF,QACjGvK,YAAawK,EAAKG,WAAW,GAAhB,EAAuBH,EAAO,IAAMA,EAAQC,SAASD,MAC/EI,GAAMhB,EAAKb,CAAN,CACL,CAEM,YAA0B8B,EAAqC,CAC/DC,QAAOC,GAAKzL,KAAKuL,EAAOG,UAAU,EAAGH,EAAOd,QAAQ,MAAO,CAAtB,CAApB,CAAV,EACT,MAACrD,IAASoE,CAAD,EACNA,EADqB,EAE5B,CAEM,YAAwBG,EAAiBpP,EAAiB,CjFhGjE,MiFiGKqP,MAAS,EACb,OAAa,CACNC,QAAQF,EAAQlB,QAAQ,KAAMmB,CAAtB,EACVC,KAAQ,EACX,MAEKC,QAAMC,GAAkBJ,EAASE,EAAQ,CAAlB,EACvBG,EAASL,EAAQlB,QAAQ,KAAMoB,EAAQ,CAA9B,EACXI,MAAM,GACND,MAAU,GAAKA,EAASF,EAAK,CAC1BI,QAAOP,EAAQlB,QAAQ,IAAKuB,EAAS,CAA9B,EAET7R,CADMwR,CAAQD,UAAUM,EAAS,EAAGE,CAA9B,IACA3P,GACT0P,GAAMN,EAAQD,UAAUQ,EAAO,EAAGJ,CAA5B,EAAiCK,OACvC,KACK,CACAC,QAAMT,EAAQD,UAAUG,EAAQ,EAAGC,CAA7B,EACNO,EAAgB3F,GAAO4F,SAASvB,KAAK5Q,CAAKA,IAAEuF,KAAOnD,CAAnC,EACf,MACNA,QAAS8P,iBAAe3M,GACxB6M,YAAaF,iBAAeE,YAAY/D,UAA3B,EAC2B4D,KAHlC,OAG0C,EACjD,CACST,IAAQD,UAAU,EAAGG,CAArB,EAA8BI,EAAMN,EAAQD,UAAUI,EAAM,CAAxB,EACrCD,GAET,CACMF,QACP,CAED,YAA2BJ,EAAgBjQ,EAAe,CACrDkR,MAAQ,EACRC,EAAY,EACTA,SAAc,KAAM,CACpBC,QAAQnB,EAAOd,QAAQ,KAAMnP,CAArB,EACRqR,EAAOpB,EAAOd,QAAQ,KAAMnP,CAArB,EACToR,KAAQ,EACXE,eAAQC,KAAK,yBAAb,EACOtB,EAAO7C,OAEXiE,KAAO,EAAG,CACTH,OAAU,EACNE,SAEE,KACTpR,EAAQoR,EAAQ,CAChB,SACSC,EAAOD,EACR,KACTpR,EAAQqR,EAAO,MACf,IAAUH,IAAU,EACbE,SAEE,KACTpR,EAAQoR,EAAQ,EAEjB,CACDE,eAAQC,KAAK,uDAAb,EACOtB,EAAO7C,MACd,CAIM,YAAuBoE,EAAoB,CAC3C5S,QAAIkP,KAAKe,IAAI4C,GAAWD,CAAD,CAAnB,EACH,OAAC5S,EAAI,IAAMA,IAAK,GAAK,IAAMA,IAAK,IAAM,GAAtC,CACP,CAEM,YAAkB8S,EAAsB,CAC9C,GAAI,CAACjE,MAAMkE,QAAQD,CAAd,GAAwBA,EAAMtE,SAAW,EAAU,gBAClD,MAACnQ,EAAGQ,EAAGD,GAAKkU,EACX,UAAM/D,GAAS1Q,CAAD,EAAM0Q,GAASlQ,CAAD,EAAMkQ,GAASnQ,CAAD,CACjD,CAEM,YAAkBoU,EAAgC,CACxD,GAAI,MAAOA,IAAQ,SAAiB,OAAC,EAAG,EAAG,CAAP,EAC9BC,QAAMC,SAASF,EAAI7B,WAAW,GAAf,EAAsB6B,EAAIxC,MAAM,CAAV,EAAewC,EAAK,EAA3C,EACd3U,EAAK4U,GAAO,GAAM,IAClBpU,EAAKoU,GAAO,EAAK,IACjBrU,EAAIqU,EAAM,IACT,OAAC5U,EAAGQ,EAAGD,CAAP,CACP,CAEM,YAAgBE,EAAW,CAC1BA,SAAIA,CACX,CAEqBA,cAAWF,EAAWJ,EAAW,CACtD,MAAO0Q,MAAKiE,IAAIrU,EAAGoQ,KAAKkE,IAAIxU,EAAGJ,CAAZ,CAAZ,CACP,CAE2BM,cAAWF,EAAWJ,EAAmB,CAChEA,SAAI,EACAM,EACGN,EAAI,EACPI,EAEAyU,GAAK7U,EAAGM,EAAGF,CAAP,CAEZ,CAEoBE,cAAWF,EAAWJ,EAAmB,CACtDI,SAAIE,EAASF,KACpB,CAEM,YAAeE,EAAWF,EAAWJ,EAAWS,EAAWV,EAAWD,EAAmB,CACxF+U,UAAKzU,EAAGyU,GAAKvU,EAAGN,EAAGS,CAAP,EAAWoU,GAAKvU,EAAGP,EAAGD,CAAP,CAAvB,CACX,CAUM,YAAiBC,EAAoB,CAC3C,MAAIA,aAAa+U,OAAc/U,EAAEgV,QACzB,GAAEhV,GACV,CAEM,KAAMiV,IAAYC,GAAlB,EASA,YAAmB3U,EAAQF,EAAQ,CACzC,GAAIE,IAAMF,EAAU,SAEpB,GAAIE,GAAKF,GAAK,MAAOE,IAAK,UAAY,MAAOF,IAAK,SAAU,CACvDE,KAAE4U,cAAgB9U,EAAE8U,YAAoB,SACxClF,MAAQtQ,EACR2Q,SAAMkE,QAAQjU,CAAd,EAAkB,CAErB,GADA0P,EAAS1P,EAAE0P,OACPA,GAAU5P,EAAE4P,OAAe,SAC1BtQ,MAAI,EAAGA,EAAIsQ,EAAQtQ,IACvB,GAAI,CAACyV,GAAU7U,EAAEZ,GAAIU,EAAEV,EAAT,EAAqB,SAE7B,QACP,CACGY,KAAE8U,UAAY9D,OAAO+D,UAAUD,QAAS,MAAO9U,GAAE8U,YAAchV,EAAEgV,QAAzB,EACxC9U,KAAEwP,WAAawB,OAAO+D,UAAUvF,SAAU,MAAOxP,GAAEwP,aAAe1P,EAAE0P,SAA1B,EACxCyB,QAAOD,OAAOC,KAAKjR,CAAZ,EAET0P,GADJA,EAASuB,EAAKvB,OACVA,IAAWsB,OAAOC,KAAKnR,CAAZ,EAAe4P,OAAe,SACxCtQ,MAAIsQ,EAAQtQ,MAAQ,GACxB,GAAI,CAAC4R,OAAO+D,UAAUC,eAAeC,KAAKnV,EAAGmR,EAAK7R,EAA7C,EAAyD,SAC1DA,MAAIsQ,EAAQtQ,MAAQ,GAAI,CAC5B,KAAMgU,GAAMnC,EAAK7R,GACjB,GAAI,CAACyV,GAAU7U,EAAEoT,GAAMtT,EAAEsT,EAAX,EAAyB,QACvC,CACM,QACP,CACMpT,WAAMA,GAAKF,IAAMA,CACxB,CAEM,MAAMoV,EAAY,CAIxBN,aAAc,CACRO,gBAAcC,KACdC,iBAAeD,IACpB,CAEMrE,IAAI/Q,EAAMF,EAAM,CACjBqV,aAAQpE,IAAI/Q,EAAGF,CAApB,EACKuV,cAAStE,IAAIjR,EAAGE,CAArB,CACA,CAEMsV,KAAKlC,EAAQ,CACZ,YAAKiC,SAASxE,IAAIuC,CAAlB,CACP,CAEMmC,KAAKnC,EAAQ,CACZ,YAAK+B,QAAQtE,IAAIuC,CAAjB,CACP,CAEMoC,SAASpC,EAAQqC,EAAiB,CAClC3V,QAAI,KAAKqV,QAAQtE,IAAIuC,CAAjB,EACNtT,WAAM4H,OACJqJ,UAAIqC,EAAKqC,CAAd,EACOA,GAED3V,CACP,CAEM4V,gBAAgBtC,EAAQ7Q,EAAgB,CACxCzC,QAAI,KAAKqV,QAAQtE,IAAIuC,CAAjB,EACNtT,OAAM4H,OAAW,CACdiO,QAAWpT,IACZwO,gBAAIqC,EAAKuC,CAAd,EACOA,CACP,CACM7V,QACP,CAvCuB,CA0CK8V,oBAA0BC,EAAuC,IAAM,GAAmC,CACvI,KAAMC,GAASF,YAAgBG,MAAO,KAAMH,GAAKI,YAAgBJ,IAE3DK,EAAU,KAAMC,CADP,GAAIC,IAAc,GAAIA,IAAe,GAAIC,MAAK,CAACN,CAAD,CAAT,CAAnB,CAAlB,EACcO,aACtB,YAAMC,SAAQC,IAAIN,EACvBO,OAAO/W,GAAK,CAACA,EAAEgX,WAAaZ,EAAUpW,EAAEiX,QAAH,CADd,EAEvBjI,IAAI,KAAMhP,IAAK,CjFlTlB,MiFmTSkX,QAAS,GAAIR,IAAe,OAAnB,EACf,MAAO,CAAC1W,EAAEiX,SAAU,KAAMjX,MAAEmX,UAAFnX,qBAAYkX,GAA/B,CAJgB,EAAZ,CAOb,CAED,kBAA+BV,EAA8C,CACtEU,QAAS,GAAIR,IAAc,GAAIA,IAAoB,iBAAxB,CAAlB,EACf,YAAMG,SAAQC,IAAIN,EAAQxH,IAAI,MAAO,CAACoI,EAAMrE,KAAU,CACrD,KAAMmE,GAAOG,IAAID,EAAM,GAAIV,IAAe3D,CAAnB,CAAjB,CADW,EAAZ,EAGC,KAAMmE,GAAOjD,OACpB,CAYgDjF,oBAAgB2E,EAAQ2D,EAA4C,CAC9GC,QAAWvI,EAAIoC,IAAIuC,CAAR,EACjB,GAAI4D,EACIA,SAEFzU,QAAQ,KAAMwU,GAAO3D,CAAD,EACtBrC,aAAIqC,EAAK7Q,CAAb,EACOA,CACP,CAEoC+N,cAAgB2F,EAAcgB,EAAiC,CAC/FC,MAAc,EAClB,SAAWC,KAASlB,GACnBiB,GAAeD,EAAUE,CAAD,EAErBD,MAAe,EACXxP,OAEJzI,MAAIqR,EAAO8G,QAAQF,CAAf,EACR,SAAWC,KAASlB,GAEfhX,GADJA,GAAKgY,EAAUE,CAAD,EACVlY,EAAI,EACAkY,QAIT,CCtVwB,aAAEjQ,OAAM/E,QAAOkV,QAAOC,SAAQC,WAAUhV,QAAOiV,cAAaC,WAAUC,YAA2B,CACnHC,QAAUD,IAAahQ,OAAY,IAAM,CAAE,EAAG,CAACjI,EAAW,CACzD8C,QAAS9C,EAAEmY,OAA4BrV,MAC7CmV,WAAWnV,EAAH,EAGHsV,EAAMC,GAAyB,IAAnB,EAClBnR,GAAU,IAAM,CACX4Q,GAAYM,EAAIE,SACnBF,EAAIE,QAAQC,QACZ,EACC,CAACT,CAAD,CAJM,EAMHU,QAAaR,GAAY1P,KAExB,gBAAK,MAAQ,iBAAgBsP,EAAQ,cAAgB,MAAMC,EAAS,eAAiB,KAAM,QAAS7X,CAAKA,IAAEyY,gBAA3G,EACLhR,aAAQS,GAAQT,GAChB/E,GAAS8E,UAAO9E,WAAP,EACV8E,WAAO,MAAU,KAAK,OAAO,QAAc,SAAU0Q,EAAS,cAA0B,KAAMM,EAHxF,EAILR,GAAYxQ,cAAU,GAAIgR,EAAd,SACXR,EAAShJ,IAAIhP,GAAKwH,YAAQ,MAAOxH,EAAjC,GALI,GAAP,CAQA,CC5BuB,aAAE0Y,OAAMjR,OAAM/E,QAAOmF,UAASC,aAAY6Q,WAAkB,CAC5E,sBAAOD,EAAO,CAAEE,KAAMF,GAAS,CAAE1Q,SAAU,EAA3C,IAAmD,MAAQ,eAAcH,EAAW,mBAAkBC,UAAc,OAAS,KAAM,aAAYD,EAA/I,SACL8Q,EAAUE,gBACTnW,GAAS8E,UAAO9E,UAAP,GACT+E,GAAQS,GAAQT,EAFP,IAGLoR,MACJpR,aAAQS,GAAQT,GAChB/E,GAAS8E,UAAO9E,WAFZ,MAJP,CASA,CCbgC,aAAEoW,WAAUC,SAAQC,WAAkC,GAA0C,CAC1H,MAACtR,EAAQuR,GAAaC,EAASF,CAAD,EAC9BG,EAAUd,GAA2BpQ,MAArB,EAUf,OAACP,EARQ,IAAM,CACXqR,IAAD,EACLI,EAAQb,UAAYrQ,QAAWmR,aAAaD,EAAQb,OAAT,EACvCA,UAAUe,WAAW,IAAM,CACxBN,KAAD,GACPD,UAAY,GAFa,EAKtB,CACP,CCfM,YACNQ,EACAC,EAAiB,GACjBC,EAA8B,CAAEC,QAAS,EAAX,EACwB,CAChD,MAACC,EAAOC,GAAYC,GAAqDN,EAAIC,EAAQC,CAAvD,EAEpCtS,UAAU,IAAM,CACP,KACN,CAACyS,CAAD,CAFM,EAIF,SACHD,GADG,CAENG,QAASF,GAEV,CCEYG,SAAcC,OAAO,cAAD,EAE1B,YACNT,EACAC,EAAiB,GACjBC,EAA8B,CAAEC,QAAS,EAAX,EAC6D,CAC3F,KAAM,CAACC,EAAOM,GAAYd,EAAwBM,CAAhB,EAC5BS,EAAY5B,GAAgB,EAAV,EAClB6B,EAAa7B,GAAO,CAAD,EAEzBnR,GAAU,IACT+S,GAAU3B,QAAU,GACb,IAAM2B,EAAU3B,QAAU,IAC/B,CAHM,GAKHqB,QAAWQ,GAAY,IAAIC,IAAqE,CAC/FC,QAAS,EAAEH,EAAW5B,QACxB,MAACoB,GAAMD,SACVO,EAASM,CAAS,WAAKA,GAAL,CAAWb,QAAS,EAA9B,IAGFH,EAAG,GAAGc,CAAJ,EAAUG,KAClBzX,CAAS,EACJmX,GAAU3B,SAAW+B,IAAWH,EAAW5B,SAAWxV,IAAUgX,IAC1D,GAAEhX,QAAO2W,QAAS,GAAnB,EAEF3W,GAER0X,CAAS,GACJP,EAAU3B,SAAW+B,IAAWH,EAAW5B,SACrC,GAAEkC,QAAOf,QAAS,GAAnB,CAEFxR,CAXF,GAaLsR,CAnByB,EAqBrB,OAACG,EAAOC,CAAR,CACP,CCvDyB,aAAEc,OAAMC,OAAMC,SAAQC,UAASC,WAMtDtB,EAAiB,CACbuB,QAASzC,GAA0B,IAApB,EAEf0C,EAAY1C,KACZ2C,EAAc3C,KACd4C,EAAc5C,GAAa,CAAC,EAAG,CAAJ,CAAP,EACpB6C,EAAW7C,GAAO,EAAD,EAEvBnR,GAAU,IAAM,CACf,GAAI,CAAC4T,EAAOxC,QAAS,OACf6C,QAAc,CAACnb,EAAkB,CACtC+a,EAAUzC,QAAU,CAACtY,EAAEob,QAASpb,EAAEqb,OAAd,GAEfC,EAAc,CAACtb,EAAkB,CAClC+a,KAAUzC,UAAYrQ,OAAW,CACpC,GAAI,CAAC6S,EAAOxC,QAAS,OACf3X,QAAIX,EAAEob,QAAWN,EAAOxC,QAAQiD,YAChCpb,EAAIH,EAAEqb,QAAWP,EAAOxC,QAAQkD,aACtCZ,WAAUja,EAAGR,GACb,MACA,CACG,IAACwa,EAAQ,OACPc,QAAKzb,EAAEob,QAAUL,EAAUzC,QAAQ,GACnCoD,EAAK1b,EAAEqb,QAAUN,EAAUzC,QAAQ,GACrC,CAAEmD,GAAO,GAAKC,IAAO,GACZpD,WAAU,CAAC2C,EAAY3C,QAAQ,GAAKmD,EAAIR,EAAY3C,QAAQ,GAAKoD,CAAvD,EACjBR,EAAS5C,SACT0C,GAAY1C,SACfqD,qBAAqBX,EAAY1C,OAAb,EAETA,UAAUsD,sBAAsB,SAAY,CACvD,GAAI,CAACd,EAAOxC,QAAS,OACrB4C,EAAS5C,QAAU,GACnB,KAAMmD,GAAKR,EAAY3C,QAAQ,GAAKwC,EAAOxC,QAAQiD,YAC7CG,EAAKT,EAAY3C,QAAQ,GAAKwC,EAAOxC,QAAQkD,aACvClD,UAAU,CAAC,EAAG,CAAJ,EAChBqC,uBAASc,EAAIC,IACnBR,EAAS5C,QAAU,GAPuB,IAW7CyC,EAAUzC,QAAU,CAACtY,EAAEob,QAASpb,EAAEqb,OAAd,GAEfQ,EAAY,IAAM,CACvBd,EAAUzC,QAAUrQ,QAEf6T,EAAe,IAAM,CACnB,cAGDxD,iBAAQyD,iBAAiB,YAAaZ,CAA7C,EACO7C,UAAQyD,iBAAiB,YAAaT,CAA7C,EACOhD,UAAQyD,iBAAiB,aAAcD,CAA9C,EACSE,cAAKD,iBAAiB,UAAWF,CAA1C,EAEO,IAAM,CvFlEf,UuFmEUvD,uBAAS2D,oBAAoB,YAAad,GAC1C7C,uBAAS2D,oBAAoB,YAAaX,GAC1ChD,uBAAS2D,oBAAoB,aAAcH,GACzCE,cAAKC,oBAAoB,UAAWJ,CAA7C,EAJD,EAME,CAAC,GAAGtC,UAAU,GAAIuB,EAAOxC,OAAzB,CArDM,EAuDH4D,QAAS7D,KACT8D,EAAc9D,GAAO,CAAD,EAC1B6D,SAAO5D,QAAU,SAAY,CAC5B,GAAI,CAACwC,EAAOxC,QAAS,OACf8D,QAAMtB,EAAOxC,QAAQ+D,WAAW,IAA1B,EACNnc,EAAIua,IACHnC,UAAQgE,MAAQpc,EAAE,GAClBoY,UAAQiE,OAASrc,EAAE,GACpBsc,QAAMJ,EAAIK,aAAa,EAAG,EAAGvc,EAAE,GAAIA,EAAE,EAA/B,EACNwc,EAAWP,EAAY7D,SAAW,EACpC,IACGoC,QAAK8B,CAAD,QACFxc,GACFA,OACN,CACG0c,IAAaP,EAAY7D,SACxBqE,eAAaH,EAAK,EAAG,CAAzB,CACA,EAGK,CACN1B,SACAoB,OAAQA,EAAO5D,QAEhB,CChGM,KAAMsE,IAAa,oBAE2C,cAC9D,MAAClV,EAAQuR,GAAaC,EAAS,EAAD,EAE9B2D,EAAQ,IAAM,CACnB5D,EAAU,EAAD,GAGV/R,UAAU,IACLQ,IACMsU,eAAKD,iBAAiB,QAASc,CAAxC,EACSb,cAAKD,iBAAiB,cAAec,CAA9C,EACSb,cAAKD,iBAAiBa,GAAYC,CAA3C,GAEM,IAAM,CACHb,cAAKC,oBAAoB,QAASY,CAA3C,EACSb,cAAKC,oBAAoB,cAAeY,CAAjD,EACSb,cAAKC,oBAAoBW,GAAYC,CAA9C,IAEC,CAACnV,CAAD,CAXM,EAaF,CAACA,EAAQ,CAACA,EAAS,KAASuR,EAAUvR,CAAD,CAArC,CACP,CCtB8D,cAC9D,KAAM,CAAC+K,EAAMqK,GAAW5D,EAAS7R,OAAOqL,SAASD,IAAjB,EAE1BwF,EAAWkC,GAAY,IAAM,CAC1B9S,SAAOqL,SAASD,IAAjB,CADoB,EAEzB,CAFyB,GAI5BvL,GAAU,IACF6U,yBAAiB,aAAc9D,CAAtC,EACO8D,wBAAiB,eAAgB9D,CAAxC,EACO,IAAM,CACLgE,2BAAoB,aAAchE,CAAzC,EACOgE,2BAAoB,eAAgBhE,CAA3C,IAEC,CAPM,GASH8E,QAAa5C,GAAY,CAAC6C,EAAoB,CAC/CA,IAAYvK,GACL,IAAEA,KAAMuK,EAAT,CACT,EACC,CAACvK,CAAD,CAJ2B,EAMvB,OAACA,EAAMsK,CAAP,CACP,CCpBkCpJ,cAAaqC,EAAiBiH,EAA0BC,EAAyC,CAC7H5F,QAAS6C,GAAY,IAAM,CAC1BgD,QAAMC,aAAaC,QAAQ1J,CAArB,EACRwJ,WAAQ,KACJnH,EACGiH,IAAUhV,OACbkV,EAEAF,EAAME,CAAD,CAPY,EASvB,CATuB,GAWpB,CAACzD,EAAOM,GAAYd,EAAS5B,EAAD,GAE5BgG,EAASnD,GAAY,CAACrX,EAAgC,CACvDA,GAAS,KACZsa,cAAaG,WAAW5J,CAAxB,EACAqG,EAAShE,CAAD,GACR,CAAUkH,GAAcjV,OACxBmV,cAAaI,QAAQ7J,EAAKuJ,EAAUpa,CAAD,CAAnC,EACAkX,EAASlX,CAAD,GAEK0a,sBAAQ7J,EAAK7Q,CAA1B,EACAkX,EAASlX,CAAD,EATgB,EAWvB,CAXuB,GAanB,OAAC4W,EAAO4D,CAAR,CACP,CChCM,YAAuBG,EAAwB,CACrD,KAAM,CAACC,EAASC,GAAczE,EAAS0E,WAAWH,CAAD,EAAQI,OAAnB,EAEhC5F,EAAW,CAACjY,EAA2B,CAC5C2d,EAAW3d,EAAE6d,OAAH,GAGX3W,UAAU,IAAM,CACT4W,QAAaF,WAAWH,CAAD,EAClB1B,0BAAiB,SAAU9D,CAAtC,EACO,IAAM,CACDgE,sBAAoB,SAAUhE,CAAzC,EADD,EAGE,CAACwF,CAAD,CANM,EAQFC,CACP,CCdwBzM,cAAqC8M,EAA4CxE,EAAiB,CAC1H,KAAMyE,GAAW,CAChBD,aAAc,CACb,CAAI9M,EACH8M,EAAY9M,CAAD,CAEZ,GAGF/J,GAAU,IACT+J,YAAOgN,YAAYD,GACZ,IAAM,CACZ/M,WAAOiN,eAAeF,EAAtB,GAEC,CAAC/M,EAAO,GAAGsI,UAAU,EAArB,CALM,CAMT,CChBD,KAAM4E,IAAW,CAAC3L,EAAgB4L,IAAkB,C7FHpD,M6FGoD,YAAIC,iBAAgB7L,CAApB,EAA4BpB,IAAIgN,CAAhC,WAA0CnW,QAEvF,YAAwBmW,EAAgG,CAC9H,KAAM1L,GAAWrL,OAAOqL,SAClB,CAAC5P,EAAOwb,GAAYpF,EAA6BiF,GAASzL,EAASF,OAAQ4L,CAAlB,CAA7B,EAElClX,GAAU,IAAM,CACT+Q,QAAW,IAAM,CACtBqG,EAASH,GAASzL,EAASF,OAAQ4L,CAAlB,CAAT,GAGFrC,+BAAiB,WAAY9D,CAApC,EACO8D,wBAAiB,YAAa9D,CAArC,EACO8D,wBAAiB,eAAgB9D,CAAxC,EAEO,IAAM,CACLgE,2BAAoB,WAAYhE,CAAvC,EACOgE,2BAAoB,YAAahE,CAAxC,EACOgE,2BAAoB,eAAgBhE,CAA3C,EAZO,EAcN,CAdM,GAgBT,KAAMsG,GAAcpE,GAAY,CAACjE,EAA8BlF,IAAsB,CAChFkF,OAAapT,EAAO,CACvBwb,EAASpI,CAAD,EACFsI,QAAS,GAAIH,iBAAgB3L,EAASF,MAA7B,EACX0D,IAAajO,QAAaiO,EAASjG,SAAW,EACjDuO,EAAOC,OAAOL,CAAd,EAEO9M,MAAI8M,EAAOlI,CAAlB,EAES,IAAE1D,OAAQgM,EAAOzO,WAAW+B,WAAW,MAAO,GAApC,EAA0Cd,UAArD,CACT,GACC,CAAClO,CAAD,CAX4B,EAaxB,OAACA,EAAOyb,CAAR,CACP,CCpCD,KAAMG,IAAU,OACVC,GAAU,IAE8D,cACvE,MAACC,EAAMC,GAAWC,GAAeJ,EAAD,EAChCK,EAAaC,GAAQ,K9FR5B,M8FQkCJ,0BAAMK,MAAMN,MAAZC,OAAwB,CAA/B,GAAmC,CAACA,CAAD,CAAnC,EAUnB,OAACG,EARU,CAACG,EAAaC,IAAoB,CACnD,CAAIA,GAAU,IAAUJ,EAAWK,SAASF,CAApB,GAA4BC,IAAU,GACrDJ,IAAWhI,OAAOnX,CAAKA,MAAMsf,CAA7B,EAAkCzO,KAAKkO,EAAvC,EAAiD,EAAlD,EAEC,GAAC,GAAGI,EAAYG,CAAhB,EAAqBG,KAAO5O,OAAKkO,EAAjC,EAA2C,EAA5C,CACP,CAGK,CACP,CCNM,YAAiBW,EAAqB,CACtC,MAAE7X,OAAM/E,QAAO6c,WAAU1X,UAASC,aAAY0X,YAAaF,EAC3D,CAAC5X,EAAQuR,GAAawG,GAA5B,EAEA,MAAO5G,kBAASyG,IAAO,MAAQ,WAAUC,IAAa,GAAQ,eAAiB,MAAMD,EAAM3X,QAApF,UACNH,EAAC,GAAD,CAAUC,OAAM/E,QAAOmF,UAASC,aAAa,QAAS,IAAMmR,EAAS,EAD/D,EAELvR,GAAUF,SAAK,MAAM,YACpBgY,WAHI,IAAP,CAMA,CCfoB,aAAEE,QAAOC,UAASjH,OAAM8G,YAAmB,CACzDtM,QAAU2F,gBACd8G,GAAWnY,UAAM,MAAM,eAAgBmY,WAA5B,EACZ9G,SAAK,MAAM,eAAX,UACE6G,GAASlY,QAAI,MAAM,aAAckY,UAAxB,GACTF,CAFF,EAFe,GAAhB,EAQO9G,WAASzQ,OACbT,SAAK,MAAM,OAAQ0L,WAAnB,EACA1L,OAAG,MAAM,OAAO,KAAMkR,EAAQxF,WAFjC,CAGA,CCpBD,KAAM,IAAY,gBAAsB,GAAO,CAAE,EAAO,GAAO,IAAiB,GAAgB,SAAiB,EAAY,EAAM,CAE/H,MAAI,CAAwB,GAAQ,EAAK,SAAW,EACzC,EAAU,EAEd,QAAQ,IAAI,EAAK,IAAI,CAAC,EAAQ,CAIjC,GAFA,EAAM,GAAG,KAAO,IAEZ,IAAO,IACP,OAEJ,GAAK,GAAO,GACZ,KAAM,GAAQ,EAAI,SAAS,MAAM,EAC3B,EAAc,EAAQ,qBAAuB,GAEnD,GAAI,SAAS,cAAc,cAAc,MAAQ,GAAa,EAC1D,OAGJ,KAAM,GAAO,SAAS,cAAc,MAAM,EAU1C,GARA,EAAK,IAAM,EAAQ,aAAe,GAC7B,GACD,GAAK,GAAK,SACV,EAAK,YAAc,IAEvB,EAAK,KAAO,EAEZ,SAAS,KAAK,YAAY,CAAI,EAC1B,EACA,MAAO,IAAI,SAAQ,CAAC,EAAK,IAAQ,CAC7B,EAAK,iBAAiB,OAAQ,CAAG,EACjC,EAAK,iBAAiB,QAAS,IAAM,EAAI,GAAI,OAAM,6BAA6B,GAAK,CAAC,CAAC,CACvG,CAAa,CAER,EAAC,EAAE,KAAK,IAAM,EAAY,EAC/B,EC9B2B,aAAEsH,QAAOoF,aAA8B,CAC3D,MAACC,EAAcC,GAAmB5G,EAAS,EAAD,EAC1C,CAAC6G,EAAOC,GAAY9G,EAA6BjR,MAArB,EAElCf,GAAU,IAAM,CACXsT,eAAiBzF,OAAO,CAC3B,KAAMgL,GAAQvF,EAAMuF,MAAOd,MAAM;AAAA,CAAnB,EAAyBjQ,IAAIiR,CAAQ,EAC3CA,EAAKjP,QAAQ,kCAAmC,WAAhD,CADM,EAGL+O,IAAMtP,KAAK;AAAA,CAAX,CAAD,EACD,yFAA2B8J,KAAK,CAAC,CAAE2F,mBAAoB,CAC7DA,EAAcH,EAAMtP,KAAK;AAAA,CAAX,EAAmB0P,CAAW,GACrCC,QAAcD,EAAOnR,IAAIiR,CAAQ,EAC/BA,EAAKjP,QAAQ,gBAAiB,MAA9B,CADY,EAEjBP,KAAK;AAAA,CAFY,EAGpBuP,EAASI,CAAD,EAJI,EADd,CAQA,GACC,CAAC5F,CAAD,CAfM,EAiBH3I,QAAMmN,GAAQ,IAAM,CACrBnN,MAAK,wDACL2I,mBAAiBzF,OACpBlD,IAAQ,UAASwO,mBAAoB,GAAE7F,EAAMpD,SAASoD,EAAMxF,SAAzB,IAC/B+K,GACHlO,IAAQ,SAAQwO,mBAAoB;AAAA,EAAU7F,EAAMpD,SAASoD,EAAMxF;AAAAA,EAAY+K;AAAAA;AAAAA,CAA7C,MAGnClO,GAAQ,UAASwO,mBAAmB7F,EAAMzK,UAAP,IAE7B8B,GACL,CAAC2I,EAAOuF,CAAR,CAXgB,EAaZ,gBAAK,MAAM,QAAX,UACLH,GAAapY,SAAK,MAAM,gBAAgB,QAASoY,EAApC,SAAgD1X,GAAQvH,EAAxD,EACdkY,QACE2B,sBAAiBzF,OAAQyF,EAAMxF,QAAUwF,EACzCuF,GAASvY,UAAM,QAAS,IAAMsY,EAAgB,CAACD,CAAF,EAApC,SACR3X,GAAQoY,KAHX,KAMCP,GAASF,GAAgBrY,SAAMuY,WAAN,EAC1BlH,OAAiD,kEAAG,KAAMhH,EAAK,OAAO,SAArB,qBAAjD,GATM,GAAP,CAWA,CCpDD,KAAM0O,IAAiB,qCAEjBC,GAAoB,GAAI7K,KAAIpE,OAAOiF,QAAQ,CAChD,YAAa,+BACb,YAAa,+BACb,YAAa,+BACb,YAAa,+BACb,YAAa,+BACb,WAAY,mCACZ,KAAM,qBACN,cAAe,iCACf,aAAc,iCACd,aAAc,iCACd,YAAa,+BACb,YAAa,+BACb,YAAa,+BACb,cAAe,iCACf,KAAM,wCACN,YAAa,+BACb,YAAa,+BACb,YAAa,+BACb,YAAa,+BACb,YAAa,+BACb,KAAM,yCACN,cAAe,iCACf,cAAe,iCACf,YAAa,+BACb,YAAa,+BACb,KAAM,iCACS,8CA3BiC,CAAf,CAAR,EA8BnB,YAAwB1S,EAAqC,CAC7D2c,QAAWD,GAAkBpP,IAAItN,CAAtB,EACjB,GAAI2c,EACIF,UAAiBE,EAErBC,MACJ,MAAa5c,EAAQ4c,MAAM,oBAAd,IAAwCA,EAAM,GACnDH,UAAiB,sBAAwBG,EAAM,GAAK,IAEvDA,MAAQ5c,EAAQ4c,MAAM,oCAAd,IAAwDA,EAAM,IAAMA,EAAM,GAC/EH,UAAiB,aAAeG,EAAM,GAAG5O,WAAW,IAAK,GAAzB,EAAgC,gBAAkB4O,EAAM,GAEhG,MAAa5c,EAAQ4c,MAAM,iCAAd,IAAqDA,EAAM,GACvE,MAAOH,IAAiB,aAAeG,EAAM,GAAG5O,WAAW,IAAK,GAAzB,EAAgC,uBAEpEhO,KAAQ4c,MAAM,iBAAd,EACIH,UAAiB,0BAA4Bzc,EAAQgO,WAAW,IAAK,GAAxB,CAGrD,CC9CD,KAAM6O,IAAa,YACbC,GAAuB,wBACvBC,GAAc,qBASdC,GAAgBC,SAChBC,GAAY,kDACZC,GAAmB,2CACnBC,GAAa,6DASnB,YAAgBpd,EAAkBkD,EAAmBma,EAAmB,CAC/D,SAAEA,EAAUF,GAAmBD,MAAald,EAAQsd,QAAUpa,EAAQ,GAAElD,EAAQsU,OAAOpR,KAC/F,CAED,kBAA6BlD,EAAkB,CAC9C,KAAMud,IAAN,EACIvd,EAAQsd,SACPhE,cAAaC,QAAQuD,EAArB,IAA+CE,IAC5CQ,UAAezP,GAAOA,EAAIe,WAAY,GAAEoO,aAAlB,GAA2CnP,EAAIe,WAAY,GAAEoO,UAAlB,GAAwCnP,EAAIe,WAAY,GAAEoO,YAAlB,GAA0CnP,EAAIe,WAAY,GAAEoO,gBAAlB,GAA8CnP,EAAIe,WAAY,GAAEoO,WAAlB,GAAyCnP,EAAIe,WAAY,GAAEqO,iBAAlB,CAA5N,EACPzD,qBAAQoD,GAAsBE,EAA3C,GAEDhd,EAAQsU,IAAM0I,GAEf,CAE+BS,oBAAmBC,EAAsCC,EAAsC,CAC9H,KAAM3d,GAAUmK,GAAO4F,SAASvB,KAAK5Q,CAAKA,IAAEuF,KAAOsa,CAAnC,EACZ,IAACzd,EAAS,CACbqQ,QAAQqG,MAAO,+BAA8B1W,QAAc4d,KAAKxE,UAAUjP,GAAO4F,QAAtB,GAA3D,EACA,MACA,CAEK8N,SAAc7d,CAAD,EAEb+S,cAAQC,IAAI,CACjB8K,GAAgB9d,EAAS0d,CAAV,EACfK,GAAmB/d,EAAS2d,CAAV,CAFD,CAAZ,CAIN,CAED,kBAA+B3d,EAAkBqU,EAA4B,CACpE2J,cAAO,qBAAoBhe,EAAQmD,IAA3C,EACI,IACH,KAAM8L,GAAO,KAAMgP,IAAkB,GAAEC,GAAOle,EAAS,SAAV,4BAAf,EAC9B,SAAWmD,KAAM8L,GACTkP,WAAShb,EAAI8L,EAAK9L,GAAI+H,IAAI,CAAChP,EAAc,aAAeA,CAA3C,CAApB,QAEOA,GACRmU,QAAQC,KAAK,4CAA6CY,GAAQhV,CAAD,CAAjE,CACA,CACD,CAED,kBAAkC8D,EAAkBqU,EAA4B,CACvE2J,cAAO,wBAAuBhe,EAAQmD,IAA9C,EACI,IACH,KAAM8L,GAAO,KAAMgP,IAAkB,GAAEC,GAAOle,EAAS,SAAV,wBAAf,EAC9B,SAAWmD,KAAM8L,GAChBoF,EAAO,aAAelR,GAAM,CAC3Bib,WAAYnP,EAAK9L,GAAI,GACrBkb,QAASpP,EAAK9L,GAAI,UAGZjH,GACRmU,QAAQC,KAAK,iDAAkDY,GAAQhV,CAAD,CAAtE,CACA,CACD,CAEiCuhB,oBAAsBa,EAAkBnb,EAAY,CACrFkN,QAAQ2N,MAAO,iBAAgBP,KAAaa,KAAYnb,GAAxD,EACA,KAAMnD,GAAUmK,GAAO4F,SAASvB,KAAK5Q,CAAKA,IAAEuF,KAAOsa,CAAnC,EACZ,IACC1P,MACA5K,KAAG2L,WAAW,uBAAd,EACI,yIAAsI3L,EAAGgL,MAAM,EAAT,aACvI,CACAjL,QAAO,CAAC,cAAe,SAAU,MAA1B,EAAkCoY,SAASgD,CAA3C,EAAuD,SAAW,OAC/EvQ,EAAO,GAAEmQ,GAAOle,EAASkD,CAAV,KAAmBA,eAAkBob,KAAYnb,QAChE,CAEM,YAAMob,CADD,KAAMC,OAAMzQ,CAAD,GACN5C,aACTjP,GACR,KAAM,IAAI+U,OAAO,iCAAgCqN,YAAmBnb,MAAO+N,GAAQhV,CAAD,GAA5E,CACN,CACD,CAED,kBAAsCuhB,EAAsBa,EAAkB,CACrEN,cAAO,qBAAoBP,KAAaa,GAAhD,EACA,KAAMte,GAAUmK,GAAO4F,SAASvB,KAAK5Q,CAAKA,IAAEuF,KAAOsa,CAAnC,EACVI,SAAc7d,CAAD,EACf,IACGkD,QAAO,CAAC,mBAAoB,QAAS,MAA9B,EAAsCoY,SAASgD,CAA/C,EAA2D,SAAW,OACnF,MAAO,IAAIzM,KAAqBpE,OAAOiF,QAAQ,KAAMuL,IAAa,GAAEC,GAAOle,EAAS,SAAV,KAAwBkD,KAAQob,iBAA1C,CAAhC,CAAzB,QACCpiB,GACF,SAAI+U,OAAO,qCAAoCqN,cAAqBpN,GAAQhV,CAAD,GAA3E,CACN,CACD,CAOD,kBAAkCuhB,EAA4C,CAC7E,KAAMzd,GAAUmK,GAAO4F,SAASvB,KAAK5Q,CAAKA,IAAEuF,KAAOsa,CAAnC,EACVI,SAAc7d,CAAD,EACf,IACG+N,QAAO,GAAEmQ,GAAOle,EAAS,SAAV,yBACd,YAAMie,IAAYlQ,CAAD,QAChB7R,GACF,SAAI+U,OAAO,4CAA2CjR,MAAYkR,GAAQhV,CAAD,GAAzE,CACN,CACD,CAEM,YAAqBuhB,EAAsBhP,EAAc,CAC/D,KAAMzO,GAAUmK,GAAO4F,SAASvB,KAAK5Q,CAAKA,IAAEuF,KAAOsa,CAAnC,EACR,SAAES,GAAOle,EAAS,QAAV,6BAA+CyO,OAC/D,CAgB6D,oBAC7D,KAAMoP,IAAc,CAAEP,QAAS,GAAZ,EACf,IACIW,UAAa,GAAEC,GAAO,CAAEZ,QAAS,IAAQ,SAApB,2BAAyD,CAAEvH,QAAS,GAA9E,QACV7Z,GACF,SAAI+U,OAAO,0CAAyCC,GAAQhV,CAAD,GAA3D,CACN,CACD,CAE2BuhB,cAAsBva,EAAcuL,EAAsB,CACrF,KAAMzO,GAAUmK,GAAO4F,SAASvB,KAAK5Q,CAAKA,IAAEuF,KAAOsa,CAAnC,EACR,SAAES,GAAOle,EAAS,QAAV,sBAAwCkD,KAAQuL,OAChE,CAED,kBAAqCgP,EAAsB,CAC1D,KAAMzd,GAAUmK,GAAO4F,SAASvB,KAAK5Q,CAAKA,IAAEuF,KAAOsa,CAAnC,EACVI,SAAc7d,CAAD,EACf,IACG,MAACye,EAAQC,EAAWC,GAAS,KAAM5L,SAAQC,IAAI,CACpD4L,GAAgBnB,EAAW,OAAZ,EACfQ,GAAa,GAAEC,GAAOle,EAAS,OAAV,qBAAV,EACX6e,GAAW,GAAEX,GAAOle,EAAS,OAAV,iBAAV,CAH2C,CAAZ,EAKlC,OAAEye,SAAQC,YAAWC,eACpBziB,GACF,SAAI+U,OAAO,2CAA0CC,GAAQhV,CAAD,GAA5D,CACN,CACD,CAED,kBAAyB4iB,EAAa,CAC9B,UAAI/L,SAA0BwL,CAAO,GACrCQ,QAAQ,GAAIC,OACZC,SAAS,IAAMV,EAAIQ,CAAD,EACxBA,EAAMG,YAAc,YACpBH,EAAMD,IAAMA,EAJN,CAMP,CAoBmCrB,oBAAsB0B,EAAe,QAAS,CACjF,KAAMnf,GAAUmK,GAAO4F,SAASvB,KAAK5Q,CAAKA,IAAEuF,KAAOsa,CAAnC,EACVI,SAAc7d,CAAD,EACf,IACI,YAAMie,IAAqC,GAAEC,GAAOle,EAAS,QAAV,2BAA6Cmf,QAA/E,QAChBjjB,GACF,SAAI+U,OAAO,0CAAyCC,GAAQhV,CAAD,GAA3D,CACN,CACD,CAU0D,oBACtD,IACG,MAACkjB,EAASrP,GAAY,KAAMgD,SAAQC,IAAI,CAC7CiL,GAAsC,GAAEb,4BAAqC,CAAErH,QAAS,GAA7E,EACXsJ,GAF6C,EAAZ,EAI5BC,EAAa,GAAIzN,KAAI9B,EAAS7E,IAAI,CAACtN,EAAG/B,IAAM,CAAC+B,EAAEuF,GAAI4M,EAAS5D,OAAStQ,CAAzB,CAAvB,CAAR,EACZujB,SAAQlU,IAAI/O,CAAM,GpGvO3B,MoGuO2B,gBAAKA,GAAL,CAAQojB,MAAOD,KAAWhS,IAAInR,EAAE6D,OAAjB,WAA6B,CAA9D,WACC9D,GACF,SAAI+U,OAAO,mDAAkDC,GAAQhV,CAAD,GAApE,CACN,CACD,CAOD,KAAMsjB,OAAgBC,KAEtB,kBAAwC1R,EAAa,CAAE2R,SAAU1jB,CAAKA,IAAEmP,KAAnB,EAA4B4K,WAA6B,GAAgB,CACzH,IACG4J,QAAQ,KAAMC,QAAOxP,KAAKyM,EAAZ,EACZmB,cAAO,8BAA6BnB,MAAc9O,GAA1D,EACM8R,QAAgB,KAAMF,GAAM/C,MAAM7O,CAAZ,EAU5B,GARIgI,GACCyJ,IAAUM,IAAI/R,CAAd,EACO,KAEVyR,GAAUjM,IAAIxF,CAAd,GAIEgI,EACC,IACI,YAAMgK,IAAcJ,EAAO5R,EAAK2R,CAAb,QAEtBG,MAAiBA,EAAcG,GAC1BhC,qBAAO,6CAA4CjQ,GAA3D,EACO,KAAM2R,GAAOG,CAAD,EAEd,SAAI5O,OAAM,iBAAV,CACN,KAEG4O,WAAiBA,EAAcG,GAC1BhC,eAAO,wCAAuCjQ,GAAtD,EACO,KAAM2R,GAAOG,CAAD,GAEb,KAAME,IAAcJ,EAAO5R,EAAK2R,CAAb,QAEnBxjB,GACRmU,QAAQC,KAAM,sCAAqCuM,OAAe3gB,EAAEgV,SAApE,EAEQ8M,cAAO,+BAA8BjQ,GAA7C,EACMkS,QAAgB,KAAMzB,OAAMzQ,CAAD,EAE1BmS,MADW,MAAMR,GAAOO,CAAD,CAE9B,CACD,CAED,kBAAgCN,EAAc5R,EAAa2R,EAAqC,CACvF1B,cAAO,+BAA8BjQ,GAA7C,EACMkS,QAAgB,KAAMzB,OAAMzQ,CAAD,EAC3BoS,EAAaF,EAAcG,QAC3BF,EAAY,KAAMR,GAAOO,CAAD,EACxBN,eAAMU,IAAItS,EAAKoS,CAAf,EACCD,CACP,CAED,kBAA8BnG,EAAmC,CAC5D,IACG4F,QAAQ,KAAMC,QAAOxP,KAAKyM,EAAZ,EACZmB,cAAO,iCAAgCnB,IAA/C,EACMyD,QAA+B,GAEhC,SAAMC,KAAW,MAAMZ,GAAMjS,OAC7BqM,EAAQwG,EAAQxS,GAAT,GACVuS,EAASE,KAAKb,EAAMhF,OAAO4F,CAAb,CAAd,EAGMvC,cAAO,6BAA4BsC,EAASnU,yBAApD,EACM4G,cAAQC,IAAIsN,CAAZ,QACEpkB,GACRmU,QAAQC,KAAM,yCAAwCuM,OAAe3L,GAAQhV,CAAD,GAA5E,CACA,CACD,CAED,KAAMukB,IAAmC,CACxC,SAAY,CACV,QAAQ,OAAQ,MAAjB,EAAyB9S,QAAQ/P,GAAK0b,aAAaG,WAAY,SAAQ7b,GAAjC,CAAtC,EACC,iBAAiB,0BAAlB,EAA8C+P,QAAQ/P,GAAK0b,aAAaG,WAAY,UAAS7b,GAAlC,CAA3D,EACAgiB,OAAOjF,OAAO,WAAd,CACA,EACD,SAAY,CACX,KAAM6C,IAAezP,CAAOA,IAAIe,WAAY,GAAEoO,oBAAlB,CAAR,CACpB,CARuC,EAWzC,mBAA8B,CpGnU9B,MoGoUO5N,QAAQuB,SAASyI,gBAAaC,QAAQwD,EAArB,WAAqC,GAAtC,EACtB,OAASlhB,GAAIyT,EAAQ,EAAGzT,GAAK4kB,GAAQtU,OAAQtQ,GAAI,EAAG,CAC7C6kB,QAAQD,GAAQ5kB,EAAI,GAC1B,CAAI6kB,EACH,KAAMA,GAAN,EAEDpH,aAAaI,QAAQqD,GAAalhB,EAAE8kB,QAApC,EACA,CACD,CCzUD,KAAMC,IAAK,uBAEJ,YAAiCC,EAAyBC,EAAiC,CAC3FC,QAAYC,YAAaC,KAAK9c,OAAW0c,CAA7B,EACZK,EAAaC,aAAcF,KAAK9c,OAAW2c,CAA9B,EAEbM,EAAM,CAACje,EAAgDke,aAAW,CACvE,CACCne,KAAM,SACNoe,KAAMJ,EAAW,CAAEK,UAAW,WAAY7G,OAAQ,CAAE8G,KAAMre,EAAIse,SAAU,EAAtB,EAAlC,EAChBC,OAAQ,CAAC9jB,EAAe,CACnB4O,SAAMkE,QAAQ9S,CAAd,GAAoB,MAAOA,GAAE,IAAO,UAAY,CAACA,EAAE,GAAGkR,WAAW,GAAhB,EAC7ClR,SAAE,EAGV,GAEF,CACCsF,KAAM,OACNoe,KAAMK,WACLT,EAAW,CAAEK,UAAW,WAAY7G,OAAQ,CAAE8G,KAAMre,CAAR,EAAlC,CADG,EAGdue,OAAQ,CAAC9jB,EACJ,MAAOA,IAAM,UAAY,CAACA,EAAEkR,WAAW,GAAb,EACtB,CAAClR,CAAD,EAED,EACP,CArBqE,EAuBrE,CAAEgkB,cAAe,MAvBmD,EAyB/DzD,WAAU,GAAEyC,kBAAmBiB,aAAW,CACjDC,eAAgBf,EAAW,GAAEH,mBAAJ,EACzBmB,oBAAqBC,MAAIL,WACxBZ,EAAW,GAAEH,kBAAJ,CADuB,CAAT,EAGxBqB,cAAeC,aAAW,CAAEnR,IAAK,EAAGD,IAAK,EAAhB,EACzBqR,gBAAiBR,WAChBE,aAAW,CACVO,UAAWJ,MAAId,EAAW,CAAEmB,KAAM,YAAT,CAAX,EACdC,OAAQN,MAAIE,aAAW,CAAEK,QAAS,GAAZ,CAAX,EACXC,OAAQb,WACPE,aAAW,CACV5S,KAAM8R,EAAW,GAAEH,eAAJ,EACf0B,OAAQJ,aAAW,CAAEK,QAAS,GAAZ,EAFT,CADK,GAMd,CAAE7jB,SAAU,OATL,CADc,EAYzB+jB,OAAQd,WACPT,EAAW,CAAEK,UAAW,WAAY7G,OAAQ,CAAE8G,KAAM,OAAR,EAAlC,CADK,EAGhBkB,iBAAkB3B,EAAW,GAAEH,cAAJ,EAC3B+B,YAAaX,MAAIY,eAAD,EAChBC,eAAgBb,MAAIY,eAAD,GACjB,CAAEE,QAAU,GAAElC,iBAxBgC,EAAjD,EA0BQzC,WAAU,GAAEyC,oBAAqBiB,aAAW,CACnD3e,KAAMge,EAAW,CAAEmB,KAAM,CAAC,2BAA4B,2BAA7B,EAAT,GACfU,UAAS,CAAC,CAAEvC,KAAM,OAAT,GACTwC,QAAO,CACPC,yBAA0B,CACzBC,QAAShB,aAAW,CAAEK,QAAS,GAAZ,EACnBY,QAASjB,aAAW,CAAEK,QAAS,GAAZ,EACnBa,QAASlB,aAAW,CAAEK,QAAS,GAAZ,EACnBc,eAAgBnB,aAAW,CAAEK,QAAS,GAAZ,EAC1Be,QAAStB,MAAIE,aAAW,CAAEK,QAAS,GAAZ,CAAX,EACZgB,UAAWvB,MAAIjB,EAAW,GAAEH,cAAJ,CAAV,EACd4C,cAAexB,MAAIjB,EAAW,GAAEH,cAAJ,CAAV,EAClBtF,SAAU0G,MAAIZ,EAAI,OAAD,CAAJ,CATP,EAWPqC,0BAA2B,CAC1BF,UAAWxC,EAAW,GAAEH,cAAJ,EACpB4C,cAAexB,MAAIjB,EAAW,GAAEH,cAAJ,CAAV,EAClB8C,gBAAiB1B,MAAIE,aAAW,CAAEK,QAAS,GAAZ,CAAX,EACpBoB,WAAYhC,WACXT,EAAW,CAAEmB,KAAM,YAAT,CADS,CAJM,CAXpB,GAoBN,CAAES,QAAU,GAAElC,mBAvBkC,EAAnD,EAyBQzC,WAAU,GAAEyC,gBAAiBiB,aAAW,CAC/C+B,MAAO7C,EAAW,GAAEH,gBAAJ,EAChBiD,YAAa7B,MAAIjB,EAAW,GAAEH,gBAAJ,CAAV,GACd,CAAEkC,QAAU,GAAElC,eAH8B,EAA/C,EAKQzC,WAAU,GAAEyC,iBAAkBiB,aAAW,CAChDiC,KAAM5C,EAAW,CAAEK,UAAW,WAAY7G,OAAQ,CAAE8G,KAAM,OAAR,EAAlC,EAChBuC,WAAY/B,EAAIgC,cACf9C,IACAA,EAFsB,EAAR,GAIb,CAAE4B,QAAS,aANkC,EAAhD,EAQQ3E,WAAU,GAAEyC,mBAAoBiB,aAAW,CAClDoC,eAAgB/C,EAAW,CAAEmB,KAAM,CAAC,cAAe,WAAY,OAAQ,qBAAsB,mBAA1D,EAAT,GACzBU,UAAS,CAAC,CAAEvC,KAAM,iBAAT,GACTwC,QAAO,CACPkB,YAAa,CACZC,OAAQ/C,EAAI,iBAAD,CAFL,EAIPgD,SAAU,CACTC,IAAKzB,cAAW,CALV,EAOP0B,KAAM,CACLC,WAAY5C,WACXZ,EAAW,GAAEH,kBAAJ,CADU,CARd,EAYP4D,mBAAoB,CACnBC,cAAevD,EAAW,CAAEmB,KAAM,CAAC,OAAQ,OAAQ,MAAjB,EAAT,CAbnB,EAePqC,kBAAmB,CAClB3T,IAAKmR,aADa,EAElBpR,IAAKoR,aAFa,EAGlByC,cAAe3C,MAAIY,eAAD,CAHA,CAfZ,GAqBN,CAAEE,QAAU,GAAElC,mBAAoBliB,SAAU,WAxBG,EAAlD,EA0BAoiB,EAAY3C,SAAU,GAAEyC,eAAgB,CACvC,GAAGE,EAAYxT,IAAI,WAAhB,EACH,uCACA,mCACA,+BAJuC,CAAxC,EAOQ6Q,WAAU,GAAEyC,eAAgBiB,aAAW,CAC9CoC,eAAgB/C,EAAW,CAAEK,UAAW,WAAY7G,OAAQ,CAAE8G,KAAO,GAAEZ,cAAX,EAAlC,GACzBmC,UAAS,CAAC,CAAEvC,KAAM,iBAAT,GACTwC,QAAO,CACkB,yBACxBY,MAAO1C,EAAW,CAAEK,UAAW,WAAY7G,OAAQ,CAAE8G,KAAM,OAAR,EAAlC,CAFX,EAIuB,8BAC7BoD,YAAa7D,EAAU,aAAD,CALhB,EAOyB,gCAC/B6C,MAAO1C,EAAW,CAAEK,UAAW,WAAY7G,OAAQ,CAAE8G,KAAM,OAAR,EAAlC,EACjBqD,YAAa3C,aAAW,CAAEnR,IAAK,EAAGD,IAAK,EAAhB,CATjB,EAW8B,qCACpC8T,YAAa7D,EAAU,aAAD,EACtB8D,YAAa3C,aAAW,CAAEnR,IAAK,EAAGD,IAAK,EAAhB,CAbjB,EAegB,uBACtBsK,IAAK8F,EAAW,CAAEK,UAAW,WAAY7G,OAAQ,CAAE8G,KAAM,YAAR,EAAlC,CAhBT,EAkBiC,wCACvCsD,OAAQ1D,EAAI,OAAD,EACXyD,YAAa7C,MAAIE,aAAW,CAAEnR,IAAK,EAAGD,IAAK,EAAhB,CAAX,CApBV,EAsB6B,oCACnCiU,MAAO7D,EAAW,CAAEK,UAAW,WAAY7G,OAAQ,CAAE8G,KAAM,OAAR,EAAlC,CADkB,CAtB7B,GA0BN,CAAEsB,QAAS,YAAakC,qBAAsB,EA7BH,EAA9C,EA+BY7G,WAAS,eAAgB,CACpC,mCACA,oCACA,0CACA,sCACA,+BACA,2CACA,sCACA,kCACA,iCACA,gCACA,kCACA,4CACA,iDACA,gDACA,+CACA,iDACA,0CACA,0CACA,8CACA,qDACA,0CACA,oDACA,yCACA,yCACA,mDACA,qCACA,kCACA,6BACA,qCACA,kCACA,6BACA,gCACA,8BACA,2CACA,mCACA,oCACA,uCACA,+BACA,sCACA,4BACA,kCACA,qCACA,kCACA,gCACA,oCA7CoC,CAArC,CA+CA,CC5MM,YAAsB0C,EAAyBC,EAAiC,CACtFmE,GAAwBpE,EAASC,CAAV,CACvB,CCAM,KAAMoE,IAAa,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,SAAU,MAA3C,EAGbC,GAA6B,OAkBpCC,GAA+D,GAM/DC,GAAoC,GAEpCC,GAKF,CACG,SAAM,uEACN,SAAM,uEACN,SAAM,uEACN,SAAM,uEACF,aAAM,uEACV,SAAM,GAAO,mEANhB,EASOC,OACAC,GACAC,GAGX,kBAA0BtiB,EAAqC,CAC1D,MAACiiB,IAASjiB,IACbiiB,IAASjiB,GAAmB,WACvB,IACGuiB,QAAW,KAAMJ,IAAcniB,GAArC,EACM2d,EAAc4E,EAASC,iBACvBC,EAAkC,GAClC1F,SAAU/c,EAAI2d,EAAa8E,CAAlB,EACT/E,QAAU6E,EAASG,WAAW/E,CAApB,EAChBgF,UAAajF,EAASC,CAAV,EACZsE,GAASjiB,GAAM,CAAE2d,cAAaD,UAAS+E,eAChCR,GAASjiB,SACRjH,GACF,SAAI+U,OAAO,uBAAsB9N,OAAQ+N,GAAQhV,CAAD,GAAhD,CACN,OAEKkpB,GAASjiB,EAGjB,CAED,kBAA+BnD,EAAoBmD,EAAgC,CvG5EnF,MuG6EC,GAAI,CAACkiB,GAAOliB,IAAOkiB,GAAOliB,GAAInD,UAAYA,EAAS,CAC5C+lB,QAAc,KAAMC,IAAWhmB,CAAD,EAElB+gB,eAAUgF,EAAYlF,QAAS,sBAAtB,EAC3B2E,GAAgBnE,aAAW,CAC1B,CACCne,KAAM,SACNoe,KAAMJ,aAAW6E,EAAYjF,YAAa,CAAES,UAAW,WAAY7G,OAAQ,CAAE8G,KAAM,8BAAR,EAA3D,GAEjB,CACCte,KAAM,SACNoe,KAAMP,YAAUgF,EAAYlF,QAAS,oBAAtB,EAPU,EASxB,CAAEe,cAAe,UATM,EAWpBqE,QAAa9b,MAAOoE,WAAWC,KAAKhS,GAAKA,EAAE2G,KAAOA,CAArC,kBAA0C+iB,OACzD,IAACD,EACE,SAAIhV,OAAO,qBAAoB9N,GAA/B,EAEH,IACG+iB,QAASH,EAAYlF,QAAQvT,IAAI2Y,CAAxB,EACT9Y,EAAQ,GAAIgZ,aAAUD,EAAQ,CAAEE,UAAW,GAAnC,EACd,CAAIf,EAAOliB,GACVgK,EAAMkZ,MAAMhB,GAAOliB,GAAIgK,MAAM8B,KAAM,EAAnC,EAEA9B,GAAMmZ,SAAS,EAAf,EACAnZ,EAAMpM,QAAU,CAAC6c,KAAKxE,UAAUjM,EAAM8B,IAArB,CAAD,GAEjBoW,GAAOliB,GAAM,CAAEgK,QAAOnN,iBACd9D,GACFqqB,QAAM,GAAItV,OAAO,yBAAwB9N,mBAAoBnD,OAAakR,GAAQhV,CAAD,GAA3E,EACRA,kBAAa+U,QAAOsV,GAAItK,MAAQ/f,EAAE+f,OAChCsK,CACN,CACD,CACD,MAAOlB,IAAOliB,GAAIgK,KAClB,CAED,kBAAqCnN,EAAiD,CAC/E+lB,QAAc,KAAMC,IAAWhmB,CAAD,EACpCylB,UAAoBM,EAAYjF,YACzBiF,EAAYjF,WACnB,CAED,kBAAqC9gB,EAAiD,CAE9E+lB,OADa,KAAMC,IAAWhmB,CAAD,GACjB4lB,WACnB,CAQ4BnI,cAAmB+I,EAAkCC,EAAuB,CACxG,KAAMzmB,GAAUmK,GAAO4F,SAAS2W,UAAU9oB,CAAKA,IAAEuF,KAAOsa,CAAxC,EACVkJ,EAAaH,EAAerc,GAAO4F,SAAS2W,UAAU9oB,CAAKA,IAAEuF,KAAOqjB,CAAxC,EAAwD,EACpFI,EAAaH,EAAetc,GAAO4F,SAAS2W,UAAU9oB,GAAKA,EAAEuF,KAAOsjB,CAAxC,EAAwDtc,GAAO4F,SAAS5D,OAAS,EAC5Gwa,UAAc3mB,GAAWA,GAAW4mB,CAC3C,kCChID,GAAI,GAAY,UAAW,CAG3B,GAAI,GAAI,OAAO,aACX,EAAe,oEACf,EAAgB,oEAChB,EAAiB,GAErB,WAAsB,EAAU,EAAW,CACzC,GAAI,CAAC,EAAe,GAAW,CAC7B,EAAe,GAAY,GAC3B,OAAS,GAAE,EAAI,EAAE,EAAS,OAAS,IACjC,EAAe,GAAU,EAAS,OAAO,CAAC,GAAK,CAElD,CACD,MAAO,GAAe,GAAU,EAClC,CAEA,GAAI,GAAW,CACb,iBAAmB,SAAU,EAAO,CAClC,GAAI,GAAS,KAAM,MAAO,GAC1B,GAAI,GAAM,EAAS,UAAU,EAAO,EAAG,SAAS,EAAE,CAAC,MAAO,GAAa,OAAO,CAAC,CAAE,CAAC,EAClF,OAAQ,EAAI,OAAS,eAEhB,GAAI,MAAO,OACX,GAAI,MAAO,GAAI,UACf,GAAI,MAAO,GAAI,SACf,GAAI,MAAO,GAAI,IAErB,EAED,qBAAuB,SAAU,EAAO,CACtC,MAAI,IAAS,KAAa,GACtB,GAAS,GAAW,KACjB,EAAS,YAAY,EAAM,OAAQ,GAAI,SAAS,EAAO,CAAE,MAAO,GAAa,EAAc,EAAM,OAAO,CAAK,CAAC,CAAE,CAAE,CAC1H,EAED,gBAAkB,SAAU,EAAO,CACjC,MAAI,IAAS,KAAa,GACnB,EAAS,UAAU,EAAO,GAAI,SAAS,EAAE,CAAC,MAAO,GAAE,EAAE,EAAE,CAAE,CAAC,EAAI,GACtE,EAED,oBAAqB,SAAU,EAAY,CACzC,MAAI,IAAc,KAAa,GAC3B,GAAc,GAAW,KACtB,EAAS,YAAY,EAAW,OAAQ,MAAO,SAAS,EAAO,CAAE,MAAO,GAAW,WAAW,CAAK,EAAI,EAAK,EACpH,EAGD,qBAAsB,SAAU,EAAc,CAI5C,OAHI,GAAa,EAAS,SAAS,CAAY,EAC3C,EAAI,GAAI,YAAW,EAAW,OAAO,CAAC,EAEjC,EAAE,EAAG,EAAS,EAAW,OAAQ,EAAE,EAAU,IAAK,CACzD,GAAI,GAAgB,EAAW,WAAW,CAAC,EAC3C,EAAI,EAAE,GAAK,IAAkB,EAC7B,EAAI,EAAE,EAAE,GAAK,EAAgB,GAC9B,CACD,MAAO,EACR,EAGD,yBAAyB,SAAU,EAAY,CAC7C,GAAI,GAAa,KACb,MAAO,GAAS,WAAW,CAAU,EAGrC,OADI,GAAI,GAAI,OAAM,EAAW,OAAO,CAAC,EAC5B,EAAE,EAAG,EAAS,EAAI,OAAQ,EAAE,EAAU,IAC7C,EAAI,GAAG,EAAW,EAAE,GAAG,IAAI,EAAW,EAAE,EAAE,GAG5C,GAAI,GAAS,GACb,SAAI,QAAQ,SAAU,EAAG,CACvB,EAAO,KAAK,EAAE,CAAC,CAAC,CAC1B,CAAS,EACM,EAAS,WAAW,EAAO,KAAK,EAAE,CAAC,CAI/C,EAID,8BAA+B,SAAU,EAAO,CAC9C,MAAI,IAAS,KAAa,GACnB,EAAS,UAAU,EAAO,EAAG,SAAS,EAAE,CAAC,MAAO,GAAc,OAAO,CAAC,CAAE,CAAC,CACjF,EAGD,kCAAkC,SAAU,EAAO,CACjD,MAAI,IAAS,KAAa,GACtB,GAAS,GAAW,KACxB,GAAQ,EAAM,QAAQ,KAAM,GAAG,EACxB,EAAS,YAAY,EAAM,OAAQ,GAAI,SAAS,EAAO,CAAE,MAAO,GAAa,EAAe,EAAM,OAAO,CAAK,CAAC,CAAE,CAAE,EAC3H,EAED,SAAU,SAAU,EAAc,CAChC,MAAO,GAAS,UAAU,EAAc,GAAI,SAAS,EAAE,CAAC,MAAO,GAAE,CAAC,CAAE,CAAC,CACtE,EACD,UAAW,SAAU,EAAc,EAAa,EAAgB,CAC9D,GAAI,GAAgB,KAAM,MAAO,GACjC,GAAI,GAAG,EACH,EAAoB,CAAE,EACtB,EAA4B,CAAE,EAC9B,EAAU,GACV,EAAW,GACX,EAAU,GACV,EAAmB,EACnB,EAAkB,EAClB,EAAiB,EACjB,EAAa,CAAE,EACf,EAAiB,EACjB,EAAsB,EACtB,EAEJ,IAAK,EAAK,EAAG,EAAK,EAAa,OAAQ,GAAM,EAQ3C,GAPA,EAAY,EAAa,OAAO,CAAE,EAC7B,OAAO,UAAU,eAAe,KAAK,EAAmB,CAAS,GACpE,GAAmB,GAAa,IAChC,EAA2B,GAAa,IAG1C,EAAa,EAAY,EACrB,OAAO,UAAU,eAAe,KAAK,EAAmB,CAAU,EACpE,EAAY,MACP,CACL,GAAI,OAAO,UAAU,eAAe,KAAK,EAA2B,CAAS,EAAG,CAC9E,GAAI,EAAU,WAAW,CAAC,EAAE,IAAK,CAC/B,IAAK,EAAE,EAAI,EAAE,EAAkB,IAC7B,EAAoB,GAAoB,EACxC,CAAI,EAAyB,EAAY,EACvC,GAAwB,EACxB,EAAa,KAAK,EAAe,CAAgB,CAAC,EAClD,EAAmB,GAEnB,IAIJ,IADA,EAAQ,EAAU,WAAW,CAAC,EACzB,EAAE,EAAI,EAAE,EAAI,IACf,EAAoB,GAAoB,EAAM,EAAM,EACpD,CAAI,EAAyB,EAAY,EACvC,GAAwB,EACxB,EAAa,KAAK,EAAe,CAAgB,CAAC,EAClD,EAAmB,GAEnB,IAEF,EAAQ,GAAS,CAE/B,KAAiB,CAEL,IADA,EAAQ,EACH,EAAE,EAAI,EAAE,EAAkB,IAC7B,EAAoB,GAAoB,EAAK,EAC7C,CAAI,EAAwB,EAAY,EACtC,GAAwB,EACxB,EAAa,KAAK,EAAe,CAAgB,CAAC,EAClD,EAAmB,GAEnB,IAEF,EAAQ,EAGV,IADA,EAAQ,EAAU,WAAW,CAAC,EACzB,EAAE,EAAI,EAAE,GAAK,IAChB,EAAoB,GAAoB,EAAM,EAAM,EACpD,CAAI,EAAyB,EAAY,EACvC,GAAwB,EACxB,EAAa,KAAK,EAAe,CAAgB,CAAC,EAClD,EAAmB,GAEnB,IAEF,EAAQ,GAAS,CAEpB,CACD,IACI,GAAqB,GACvB,GAAoB,KAAK,IAAI,EAAG,CAAe,EAC/C,KAEF,MAAO,GAA2B,EAC5C,KAEU,KADA,EAAQ,EAAmB,GACtB,EAAE,EAAI,EAAE,EAAkB,IAC7B,EAAoB,GAAoB,EAAM,EAAM,EACpD,CAAI,EAAyB,EAAY,EACvC,GAAwB,EACxB,EAAa,KAAK,EAAe,CAAgB,CAAC,EAClD,EAAmB,GAEnB,IAEF,EAAQ,GAAS,EAKrB,IACI,GAAqB,GACvB,GAAoB,KAAK,IAAI,EAAG,CAAe,EAC/C,KAGF,EAAmB,GAAc,IACjC,EAAY,OAAO,CAAS,CAC7B,CAIH,GAAI,IAAc,GAAI,CACpB,GAAI,OAAO,UAAU,eAAe,KAAK,EAA2B,CAAS,EAAG,CAC9E,GAAI,EAAU,WAAW,CAAC,EAAE,IAAK,CAC/B,IAAK,EAAE,EAAI,EAAE,EAAkB,IAC7B,EAAoB,GAAoB,EACxC,CAAI,EAAyB,EAAY,EACvC,GAAwB,EACxB,EAAa,KAAK,EAAe,CAAgB,CAAC,EAClD,EAAmB,GAEnB,IAIJ,IADA,EAAQ,EAAU,WAAW,CAAC,EACzB,EAAE,EAAI,EAAE,EAAI,IACf,EAAoB,GAAoB,EAAM,EAAM,EACpD,CAAI,EAAyB,EAAY,EACvC,GAAwB,EACxB,EAAa,KAAK,EAAe,CAAgB,CAAC,EAClD,EAAmB,GAEnB,IAEF,EAAQ,GAAS,CAE7B,KAAe,CAEL,IADA,EAAQ,EACH,EAAE,EAAI,EAAE,EAAkB,IAC7B,EAAoB,GAAoB,EAAK,EAC7C,CAAI,EAAyB,EAAY,EACvC,GAAwB,EACxB,EAAa,KAAK,EAAe,CAAgB,CAAC,EAClD,EAAmB,GAEnB,IAEF,EAAQ,EAGV,IADA,EAAQ,EAAU,WAAW,CAAC,EACzB,EAAE,EAAI,EAAE,GAAK,IAChB,EAAoB,GAAoB,EAAM,EAAM,EACpD,CAAI,EAAyB,EAAY,EACvC,GAAwB,EACxB,EAAa,KAAK,EAAe,CAAgB,CAAC,EAClD,EAAmB,GAEnB,IAEF,EAAQ,GAAS,CAEpB,CACD,IACI,GAAqB,GACvB,GAAoB,KAAK,IAAI,EAAG,CAAe,EAC/C,KAEF,MAAO,GAA2B,EAC1C,KAEQ,KADA,EAAQ,EAAmB,GACtB,EAAE,EAAI,EAAE,EAAkB,IAC7B,EAAoB,GAAoB,EAAM,EAAM,EACpD,CAAI,EAAyB,EAAY,EACvC,GAAwB,EACxB,EAAa,KAAK,EAAe,CAAgB,CAAC,EAClD,EAAmB,GAEnB,IAEF,EAAQ,GAAS,EAKrB,IACI,GAAqB,GACvB,GAAoB,KAAK,IAAI,EAAG,CAAe,EAC/C,IAEH,CAID,IADA,EAAQ,EACH,EAAE,EAAI,EAAE,EAAkB,IAC7B,EAAoB,GAAoB,EAAM,EAAM,EACpD,CAAI,EAAyB,EAAY,EACvC,GAAwB,EACxB,EAAa,KAAK,EAAe,CAAgB,CAAC,EAClD,EAAmB,GAEnB,IAEF,EAAQ,GAAS,EAInB,OAEE,GADA,EAAoB,GAAoB,EACpC,GAAyB,EAAY,EAAG,CAC1C,EAAa,KAAK,EAAe,CAAgB,CAAC,EAClD,KACD,KACI,KAEP,MAAO,GAAa,KAAK,EAAE,CAC5B,EAED,WAAY,SAAU,EAAY,CAChC,MAAI,IAAc,KAAa,GAC3B,GAAc,GAAW,KACtB,EAAS,YAAY,EAAW,OAAQ,MAAO,SAAS,EAAO,CAAE,MAAO,GAAW,WAAW,CAAK,CAAI,EAC/G,EAED,YAAa,SAAU,EAAQ,EAAY,EAAc,CACvD,GAAI,GAAa,GAEb,EAAY,EACZ,EAAW,EACX,EAAU,EACV,EAAQ,GACR,EAAS,GACT,EACA,EACA,EAAM,EAAM,EAAU,EACtB,EACA,EAAO,CAAC,IAAI,EAAa,CAAC,EAAG,SAAS,EAAY,MAAM,CAAC,EAE7D,IAAK,EAAI,EAAG,EAAI,EAAG,GAAK,EACtB,EAAW,GAAK,EAMlB,IAHA,EAAO,EACP,EAAW,KAAK,IAAI,EAAE,CAAC,EACvB,EAAM,EACC,GAAO,GACZ,EAAO,EAAK,IAAM,EAAK,SACvB,EAAK,WAAa,EACd,EAAK,UAAY,GACnB,GAAK,SAAW,EAChB,EAAK,IAAM,EAAa,EAAK,OAAO,GAEtC,GAAS,GAAK,EAAI,EAAI,GAAK,EAC3B,IAAU,EAGZ,OAAe,OACR,GAID,IAHA,EAAO,EACP,EAAW,KAAK,IAAI,EAAE,CAAC,EACvB,EAAM,EACC,GAAO,GACZ,EAAO,EAAK,IAAM,EAAK,SACvB,EAAK,WAAa,EACd,EAAK,UAAY,GACnB,GAAK,SAAW,EAChB,EAAK,IAAM,EAAa,EAAK,OAAO,GAEtC,GAAS,GAAK,EAAI,EAAI,GAAK,EAC3B,IAAU,EAEd,EAAI,EAAE,CAAI,EACV,UACG,GAID,IAHA,EAAO,EACP,EAAW,KAAK,IAAI,EAAE,EAAE,EACxB,EAAM,EACC,GAAO,GACZ,EAAO,EAAK,IAAM,EAAK,SACvB,EAAK,WAAa,EACd,EAAK,UAAY,GACnB,GAAK,SAAW,EAChB,EAAK,IAAM,EAAa,EAAK,OAAO,GAEtC,GAAS,GAAK,EAAI,EAAI,GAAK,EAC3B,IAAU,EAEd,EAAI,EAAE,CAAI,EACV,UACG,GACH,MAAO,GAKX,IAHA,EAAW,GAAK,EAChB,EAAI,EACJ,EAAO,KAAK,CAAC,IACA,CACX,GAAI,EAAK,MAAQ,EACf,MAAO,GAMT,IAHA,EAAO,EACP,EAAW,KAAK,IAAI,EAAE,CAAO,EAC7B,EAAM,EACC,GAAO,GACZ,EAAO,EAAK,IAAM,EAAK,SACvB,EAAK,WAAa,EACd,EAAK,UAAY,GACnB,GAAK,SAAW,EAChB,EAAK,IAAM,EAAa,EAAK,OAAO,GAEtC,GAAS,GAAK,EAAI,EAAI,GAAK,EAC3B,IAAU,EAGZ,OAAQ,EAAI,OACL,GAIH,IAHA,EAAO,EACP,EAAW,KAAK,IAAI,EAAE,CAAC,EACvB,EAAM,EACC,GAAO,GACZ,EAAO,EAAK,IAAM,EAAK,SACvB,EAAK,WAAa,EACd,EAAK,UAAY,GACnB,GAAK,SAAW,EAChB,EAAK,IAAM,EAAa,EAAK,OAAO,GAEtC,GAAS,GAAK,EAAI,EAAI,GAAK,EAC3B,IAAU,EAGZ,EAAW,KAAc,EAAE,CAAI,EAC/B,EAAI,EAAS,EACb,IACA,UACG,GAIH,IAHA,EAAO,EACP,EAAW,KAAK,IAAI,EAAE,EAAE,EACxB,EAAM,EACC,GAAO,GACZ,EAAO,EAAK,IAAM,EAAK,SACvB,EAAK,WAAa,EACd,EAAK,UAAY,GACnB,GAAK,SAAW,EAChB,EAAK,IAAM,EAAa,EAAK,OAAO,GAEtC,GAAS,GAAK,EAAI,EAAI,GAAK,EAC3B,IAAU,EAEZ,EAAW,KAAc,EAAE,CAAI,EAC/B,EAAI,EAAS,EACb,IACA,UACG,GACH,MAAO,GAAO,KAAK,EAAE,EAQzB,GALI,GAAa,GACf,GAAY,KAAK,IAAI,EAAG,CAAO,EAC/B,KAGE,EAAW,GACb,EAAQ,EAAW,WAEf,IAAM,EACR,EAAQ,EAAI,EAAE,OAAO,CAAC,MAEtB,OAAO,MAGX,EAAO,KAAK,CAAK,EAGjB,EAAW,KAAc,EAAI,EAAM,OAAO,CAAC,EAC3C,IAEA,EAAI,EAEA,GAAa,GACf,GAAY,KAAK,IAAI,EAAG,CAAO,EAC/B,IAGH,CACF,CACH,EACE,MAAO,EACT,IAIO,CAAqC,EAAU,MACpD,WAAiB,2BChfnB,KAAMC,IAAa,sCAEbC,MAAiBjV,KAEY3O,oBAAclD,EAAoB+mB,EAAeC,EAAuB,CACtG,IACG3N,QAAMuE,KAAKxE,UAAU2N,CAAf,EACN9X,EAAOgY,GAAGC,iBAAiB7N,CAApB,EACbhJ,QAAQ2N,MAAM,mBAAoB3E,EAAIlN,OAASkN,EAAIlN,MAAnD,EACM+L,QAAO0F,KAAKxE,UAAU,CAAEnK,OAAM/L,OAAMlD,UAASgnB,eAAtC,EACT7jB,MAAK2jB,GAAWxZ,IAAI4K,CAAf,EACL,IAAC/U,EAAI,CACFgkB,QAAU,KAAMC,IAAS,YAAalP,CAAd,EACnB1K,OAAI0K,EAAMiP,EAAQhkB,EAA7B,EACAA,EAAKgkB,EAAQhkB,EACb,CACM,OAAEA,KAAIgJ,OAAQkN,EAAIlN,OAAQkb,WAAYpY,EAAK9C,OAAQmb,KAAMjO,EAAIlN,OAAS8C,EAAK9C,cAC1EjQ,GACJA,kBAAa+U,QACdC,WAAW,8BAA6BhV,EAAEgV,WAEvChV,CACN,CACD,CAED,kBAAiCiH,EAAY,CzG5B7C,MyG6BK,IACGgkB,QAAU,KAAMC,IAAU,aAAYjkB,GAAd,EACvB,gBACHgkB,GADG,CAENlY,KAAM2O,KAAKzE,MAAM8N,MAAGM,qBAAqBJ,EAAQlY,IAAhC,WAAyC,IAApD,UAEC/S,GACJA,kBAAa+U,QACdC,WAAW,iCAAgChV,EAAEgV,WAE1ChV,CACN,CACD,CAED,kBAAwB6R,EAAamK,EAAe,CzG3CpD,UyGiDOjJ,QAAO,KAAMsP,CALP,KAAMC,OAAMqI,GAAa9Y,EAAKmK,EAAO,CAChD9Y,OAAQ,OACRooB,QAAS,CAAkB,iCAFqB,EAGhDtP,QACG/T,MAJmB,GAKAgH,OACnB8D,KAAKA,KACDA,SAAKA,KAEb,KAAM,IAAIgC,OAAMhC,WAAKwY,SAALxY,cAAc,KAAdA,cAAkBiC,UAAlBjC,OAA6B,eAAvC,CACN,CCnDD,KAAMyY,IAAuD,CAC5D,WAAY,EACZ,WAAY,EACZC,KAAM,IACNC,SAAUzjB,MAJkD,EAQ7D,GAAI0jB,IAAoD,KAExD,KAAMC,IAGD,CACJ3c,KAAM,CACLgO,MAAO,KAAOvb,IAAM,CACf,IACIggB,YAAKzE,MAAMvb,CAAX,QAEPiqB,UAAc,KAAM,wEACbA,GAAY1O,MAAMvb,CAAlB,CACP,CAPG,EASLwb,UAAW,CAACxb,EAAG/B,IAAOgsB,aAAejK,MAAMxE,UAAUxb,EAAG,KAAM/B,CAAzC,EAA8C;AAAA,CAVhE,EAYJqT,KAAM,CACLiK,MAAO,KAAOvb,IAAMsR,GAAKzL,KAAK7F,CAAV,EACpBwb,UAAW,CAACxb,EAAG/B,IAAMqT,GAAK6Y,KAAKnqB,EAAG,CACjCoqB,UAAWnsB,IAAMsI,OAAY,EAAI,GACjC8jB,OAAQ,MAAOpsB,IAAM,SAAW,EAAIA,EAFhB,CAFhB,CAZF,EAqB2BoT,cAAeiZ,EAAiBD,EAAiB,CACzEH,UAAQI,UAAUC,GAAMC,UAAjB,GAA8BhP,UAAUnK,EAAMyY,GAAQO,UAAUE,GAAME,YAA7E,CACP,CAED,kBAAkCpZ,EAAciZ,EAAgB,CACxD,YAAMJ,IAAQI,GAAQ/O,MAAMlK,CAAtB,CACb,CAEM,YAAyBgZ,EAAgB,CACxCP,UAAQO,EACf,CAEkC,cAC3Bxa,cAAOC,KAAKga,EAAZ,CACP,CAEkC,cAC3Bja,cAAOC,KAAKoa,EAAZ,CACP,CClDgBK,OAAV,CAAUA,GAAV,CACOG,EAAc,uBACdC,EAAW,iBACXC,EAAa,4BACbC,EAAY,wBACZC,EAAY,0BACZC,EAAkB,sCAClBC,EAAoB,6CACpBC,EAAc,8BACdC,EAAa,sCACbC,EAAwB,kDACxBC,EAAkB,sCAClBC,EAAoB,0CACpBC,EAAuB,gDAEN,a3GpB/B,M2GqBS5P,sBAAaC,QAAQ+O,aAArB,WAAqC,IAC5C,CAFea,gBAIW,a3GxB5B,M2GyBS7P,sBAAaC,QAAQgP,UAArB,WAAkC,MACzC,CAFea,aAIiC,aAC1CppB,QAAUsZ,aAAaC,QAAQiP,EAArB,YACZxoB,UAAWklB,GAAW5J,SAAStb,CAApB,EACPA,EAED,MACP,CANeqpB,wBAQ+B,aACxCrpB,QAAUsZ,aAAaC,QAAQiP,EAArB,YACZxoB,UAAWklB,GAAW5J,SAAStb,CAApB,EACPA,EAED,IACP,CANegmB,eAQY,a3G5C7B,M2G6CS1M,sBAAaC,QAAQkP,WAArB,WAAmC,UAC1C,CAFeJ,cAIY,a3GhD7B,M2GiDS/O,sBAAaC,QAAQmP,WAArB,WAAmC,MAC1C,CAFeN,cAIkB,aAC1B9O,oBAAaC,QAAQoP,iBAArB,IAA0C,OACjD,CAFeW,oBAImB,a3GxDpC,M2GyDShQ,sBAAaC,QAAQqP,mBAArB,WAA2C,QAClD,CAFeW,qBAIyB,aAClCC,QAAWlQ,aAAaC,QAAQsP,EAArB,aACjB,MAAIW,GACI5L,KAAKzE,MAAMqQ,CAAX,EAED,CAACC,EAAD,CACP,CANeC,gBAQT,WAAmBvmB,EAAgC,C3GpE3D,M2GsESwmB,OADS/L,KAAKzE,MAAMG,gBAAaC,QAAQuP,YAArB,WAAoC,IAA/C,EACD3lB,EACf,CAHeymB,cAK2C,aACpDxZ,QAAOkJ,aAAaC,QAAQwP,EAArB,uBACb,GAAI3Y,IAAS,KACNwN,YAAKzE,MAAM/I,CAAX,CACP,CAJeyZ,wBAMiB,a3G/ElC,M2GgFSvQ,sBAAaC,QAAQyP,EAArB,0BAAyCS,GAAcnW,IAC9D,CAFewW,mBAIkB,a3GnFnC,M2GoFSxQ,sBAAaC,QAAQ0P,mBAArB,WAA2C,WAClD,CAFec,oBAIgC,a3GvFjD,M2GwFSnM,YAAKzE,MAAMG,gBAAaC,QAAQ2P,sBAArB,WAA8C,IAAzD,CACP,CAFec,wBAIT,WAAqBC,EAA8B,CACrDA,GAAuBvQ,qBAAQ4O,cAAa2B,CAAlC,CACd,CAFeC,gBAIT,WAAkBvqB,EAA2B,CAC/CA,GAAoB+Z,qBAAQ6O,WAAU5oB,CAA/B,CACX,CAFeE,aAIT,WAAoBG,EAAgC,CACtDA,GAAsB0Z,qBAAQ8O,aAAYxoB,CAAjC,CACb,CAFeE,eAIT,WAAmB+nB,EAA4B,CACjDA,GAAqBvO,qBAAQ+O,YAAWR,CAAhC,CACZ,CAFekC,cAIT,WAAmBjC,EAA4B,CACjDA,GAAqBxO,qBAAQgP,YAAWR,CAAhC,CACZ,CAFekC,cAIT,WAAyBC,EAAmC,CAClE,CAAIA,GAAiBlmB,QAAWmV,aAAaI,QAAQiP,kBAAiB0B,EAAape,UAAnD,CAChC,CAFeqe,oBAIT,WAA0BtqB,EAA6B,CACzDA,GAAsB0Z,qBAAQkP,oBAAmB5oB,CAAxC,CACb,CAFeuqB,qBAIT,WAAqBf,EAAiC,CACxDA,GAAUlQ,aAAaI,QAAQmP,cAAajL,KAAKxE,UAAUoQ,CAAf,CAAlC,CACd,CAFegB,gBAIT,WAAmBrnB,EAAY8L,EAA0B,C3G3HjE,M2G4HE,KAAM0a,GAAU/L,KAAKzE,MAAMG,gBAAaC,QAAQuP,YAArB,WAAoC,IAA/C,EACZ7Z,IAAS9K,OACLwlB,SAAQxmB,GAEfwmB,EAAQxmB,GAAM8L,EAEfqK,aAAaI,QAAQoP,aAAYlL,KAAKxE,UAAUuQ,CAAf,CAAjC,CACA,CARec,cAUT,WAA6Bra,EAA2B,CAC1DA,IAASjM,OACZmV,aAAaG,WAAWsP,EAAxB,uBAEAzP,aAAaI,QAAQqP,wBAAuBnL,KAAKxE,UAAUhJ,CAAf,CAA5C,CAED,CANesa,wBAQT,WAAwBC,EAAiC,CAC3DA,IAAgBxmB,OACnBmV,aAAaG,WAAWuP,EAAxB,iBAEatP,qBAAQsP,kBAAiB2B,CAAtC,CAED,CANeC,mBAQT,WAAyBC,EAA0B,CACrDA,GAAmBnR,qBAAQuP,oBAAmB4B,CAAxC,CACV,CAFe/pB,oBAIT,WAAwBqC,EAAY,CACpCpC,QAAUipB,IAChBjpB,EAAQyf,KAAKrd,CAAb,EACauW,qBAAQwP,uBAAsBtL,KAAKxE,UAAUrY,EAAQoN,MAAM,GAAd,CAAf,CAA3C,CACA,CAJe2c,qBApJA3C,quUCWjB,KAAM4C,IAASC,GAAsB,CACpC7L,KAAM,OACN9f,OAAQwQ,CAAOA,IACfnQ,aAAc,IAAM,CAAE,CAHc,CAAT,EAMfurB,GAIT,CACHC,SAAUC,EADP,EAIqBhM,cAActP,KAAgB6K,EAAkB,C5G9BzE,c4G+BO1b,QAA4BisB,eAAQ9L,KAAR8L,cAAgBpb,KAAhBob,OAC/BA,MAAQG,KAARH,cAAapb,KADkBob,OACVA,GAAQC,SAASrb,KADPob,OACepb,EAC1Cwb,UAAoBrsB,EAAO0b,CAAR,CAC1B,CAED,YAA6B1b,EAAe0b,EAA2B,CAC/D1b,SAAMkO,QAAQ,SAAU0P,CAAS,GACvC,KAAM7d,GAAQ8R,SAAS+L,EAAMzO,MAAM,EAAG,EAAf,CAAD,EACtB,MAAOuM,kBAAS3b,MAAWoF,OAAYuW,EAAO3b,GAAS6d,EAFjD,CAIP,CAED,kBAA0BqN,EAAkB,CAC3C,GAAIgB,GAAQhB,GAAW,OACvB,KAAMqB,GAAanhB,GAAOohB,UAAU/c,KAAK2Q,CAAQA,IAAKqM,OAASvB,CAA5C,EACf,IAACqB,EAAY,OACXrc,QAAO,KAAM,IAAQ,iBAAgBgb,UACrC/D,EAASoF,EAAWzK,UAAY,IAClC,KAAM,IAAQ,+CAA8CoJ,UAChE,GAAIwB,GAAW,CAAEpN,QAAS,IACtB4L,IAAa,MAChBwB,GAAW,KAAM,wCAElBR,GAAQhB,GAAY,YAAKhb,EAAKoP,SAAY6H,EAAO7H,SAAYoN,EAASpN,QACtE,CAE2B,cACpBqN,UAAWX,EAAD,CACjB,CAE8B,aAAErP,YAA6C,CACvE,MAACyD,EAAM+K,GAAe9U,EAAS,MAAD,EAE9B/V,EAASgX,GAAY,CAACxG,KAAgB6K,IACpCiR,GAASxM,EAAMtP,EAAK,GAAG6K,CAAf,EACb,CAACyE,CAAD,CAFuB,EAIpBzf,EAAe2W,GAAY,KAAOuV,IAAoB,CACrDC,SAAWD,CAAD,EACNlsB,gBAAayf,EAAMyM,CAA7B,EACAzD,GAAM+B,YAAY0B,CAAlB,EACA1B,EAAY0B,CAAD,GACT,CAACzM,CAAD,CAL6B,EAOhC/b,GAAU,IAAM,CACd,CAAY,UACNiR,QAAS8T,GAAMgB,cACrB5qB,GAAUiB,UAAU6U,CAApB,EACMtB,cAAQC,IAAI,CACjB6Y,GAAW,IAAD,EACV,GAAIxX,IAAW,KAAO,CAACwX,GAAWxX,CAAD,CAAX,EAAuB,EAF5B,CAAZ,EAIN6V,EAAY7V,CAAD,KARJ,EAUN,CAVM,GAYHrV,QAAgB,CACrBmgB,OACA9f,SACAK,gBAGM,SAAC,GAAO,SAAR,CAAiB,QACtBgc,WADF,CAGA,CCjFM,KAAM+N,IAAyB,CACrCnW,KAAM,SACNwY,UAAW,QACXC,MAAO,EAH8B,EAYzBC,GAAe,CAC3B,mBACA,wBACA,eACA,SAJ2B,EAK1B9gB,IAAIhP,CAAK+vB,SAAQ,yBAAwB/vB,qBAA1B,CALW,EAmBtBgwB,GAAUlB,GAA8B,CAC7CxB,SAAU,CAACC,EAAD,EACV0C,QAAS1C,GACT2C,cAAe,IAAM,CAAE,EACvBzpB,cAAe,IAAM,CAAE,EACvB0pB,cAAe,IAAM,CAAE,EACvBC,cAAe,IAAM,CAAE,EACvBC,WAAY,IAAM,GAClBC,SAAU,IAAM,CAAE,EAClBC,UAAW,IAAM,CAAE,CAT0B,CAAjB,EAYA,cACrBf,UAAWQ,EAAD,CACjB,CAE+B,aAAExQ,YAA6C,CAC9E,KAAM,CAAC8N,EAAUgB,GAAepV,EAAoB+S,GAAMuB,aAAlB,EAElC,CAACiB,EAAa+B,GAAkBtX,EAAiB+S,GAAM2B,gBAAf,EACxCqC,EAAUjR,GAAQ,IAAM,C7GlE/B,M6GmEE,MAAOsO,KAAShb,KAAK/S,GAAKA,EAAE6X,OAASqX,CAA9B,WAA8ClB,IACnD,CAACD,EAAUmB,CAAX,CAFoB,EAIjB,CAACgC,EAAQC,GAAaxX,EAAuCjR,MAA/B,EAC9BkO,EAAO6I,GAAQ,IAAM,CAC1B,GAAI,EAACyR,EACER,SAAQJ,MAAMvd,KAAKvS,CAAKA,IAAEiH,OAASypB,EAAO,IAAM1wB,EAAEkH,KAAOwpB,EAAO,EAAhE,GACL,CAACR,EAASQ,CAAV,CAHiB,EAKdE,EAAiBxW,GAAY,CAACmT,EAAwB,CAC3DrB,GAAMqC,YAAYhB,CAAlB,EACAgB,EAAYhB,CAAD,CAFsB,EAG/B,CAH+B,GAK5B4C,EAAgB/V,GAAY,CAAC/C,EAAcwY,EAAoB9rB,IAAwB,CAC7E,GAAC,GAAGwpB,EAAU,CAAElW,OAAMwY,YAAW9rB,UAAS+rB,MAAO,EAAjD,EAAD,GACZ,CAACvC,CAAD,CAF8B,EAI3B7mB,EAAgB0T,GAAY,CAAC/C,EAAiB,CACnD,CAAIA,GAASmW,GAAcnW,MAC3BuZ,EAAerD,EAASvW,OAAOxX,GAAKA,EAAE6X,OAASA,CAAhC,CAAD,GACZ,CAACkW,CAAD,CAH8B,EAK3B6C,EAAgBhW,GAAY,CAAC/C,EAAiB,CACnD6U,GAAMyC,eAAetX,CAArB,EACAoZ,EAAepZ,CAAD,CAFkB,EAG9B,CAH8B,GAK3BgZ,EAAgBjW,GAAY,CAACyW,EAA4B,CAC9DD,EAAerD,EAASte,IAAIzP,CAAKA,IAAE6X,OAASqX,EAAc,SAAKlvB,GAAMqxB,GAAUrxB,CAAhE,CAAD,GACZ,CAAC+tB,EAAUmB,CAAX,CAF8B,EAI3B4B,EAAalW,GAAY,CAACnT,EAAcC,EAAwB2pB,IAAgC,C7GnGvG,Q6GoGM,IAACA,EAAM3pB,GACI,GAAE4oB,MAAOI,EAAQJ,MAAM9Y,OAAOhX,GAAKA,EAAEiH,OAASA,GAAQjH,EAAEkH,KAAOA,CAAtD,EAAV,MACP,CACN,KAAM4pB,GAAQ7pB,IAAS,cAAgB,OAAS4pB,EAAM3pB,GAAGmY,SAAS,GAAlB,EAAyBwR,EAAM3pB,GAAM,GAAEgpB,KAAQL,YAARK,OAAqB,eAAeW,EAAM3pB,KAC3H6pB,EAASb,EAAQJ,MAAMkB,KAAKhxB,GAAKA,EAAEiH,OAASA,GAAQjH,EAAEkH,KAAO4pB,CAApD,EACX,GAAC5pB,EAIE,CACFkP,qBAAMlP,MAAOA,GAAMA,IAAO4pB,GAASC,EAC/B,SAEM,GAAEjB,MAAOI,EAAQJ,MAAM7gB,IAAIjP,GAAKA,EAAEiH,OAASA,GAAQjH,EAAEkH,KAAOA,EAAK,YAAKlH,GAAM6wB,GAAX,CAAkB3pB,GAAI4pB,IAAU9wB,CAAxF,EAAV,EACToW,kBAAMlP,MAAOA,GAAc,GAACD,EAAM6pB,CAAP,CAAD,CAC9B,KAVQ,CACJC,KAAe,SACL,GAAEjB,MAAO,CAAC,GAAGI,EAAQJ,MAAO,CAAE7oB,OAAMC,GAAI4pB,EAAO9d,KAAM6d,KAAM7d,OAAN6d,OAAc,GAA1D,EAAV,EACH,GAAC5pB,EAAM6pB,CAAP,CAAD,EAQV,CACM,QACL,GAACT,EAAeH,EAAS9Z,CAAzB,CAnB2B,EAqBxBma,EAAWnW,GAAY,CAACnT,EAAcC,IAAe,CACpD+pB,QAAM/iB,GAAOoE,WAAWC,KAAKhS,GAAKA,EAAE2G,KAAOD,GAAQ1G,EAAEiS,OAASvL,CAAxD,EACR,IAACgqB,EACE,SAAIjc,OAAO,iCAAgC/N,GAA3C,EAEP0pB,EAAU,CAACM,EAAI/pB,GAAIA,CAAT,CAAD,EACHiL,MAAS8e,EAAInf,GAAL,CAAT,CANsB,EAOzB,CAPyB,GAStB0e,EAAYpW,GAAY,IAAM,CACnCuW,EAAUzoB,MAAD,CADmB,EAE1B,CAF0B,GAIvBnF,EAAwB,CAC7BwqB,WACA2C,UACA9Z,OACA+Z,gBACAC,gBACA1pB,gBACA2pB,gBACAC,aACAC,WACAC,aAGM,SAAC,GAAQ,SAAT,CAAkB,QACvB/Q,WADF,CAGA,CAEM,YAAqBrJ,EAAoC,C7GvJhE,M6GwJC,KAAM,CAACyZ,EAAW3oB,GAAMkP,EAAKlP,GAAGmY,SAAS,GAAjB,EAAwBjJ,EAAKlP,GAAGgY,MAAM,GAAd,EAAqB,CAAC,YAAa9I,EAAKlP,EAAnB,EACjEkP,KAAKnP,OAAS,cACjB,MAAImP,GAAKlP,KAAO,OAAe,cACxBgB,OAEF+oB,QAAM/iB,GAAOoE,WAAWC,KAAKhS,GAAKA,EAAE2G,KAAOkP,EAAKnP,IAA1C,EACR,KAACgqB,EAGL,MAAQ,QAAOpB,KAAaoB,KAAIze,OAAJye,OAAYA,EAAI/pB,MAAMA,QAClD,CAEM,YAAwBsL,EAAc,CACxCA,OAAS,cACL,OAAEvL,KAAM,cAAeC,GAAI,QAEnC,SAAW1H,KAAKuwB,IAAc,CACvBpP,QAAQnO,EAAKmO,MAAMnhB,CAAX,EACV,IAACmhB,EAAO,SACNsQ,QAAM/iB,GAAOoE,WAAWC,KAAKhS,GAAMA,C7G3K3C,kB6G2K6CiS,cAAQjS,EAAE2G,MAAQyZ,EAAM,GAAvD,EACR,IAACsQ,EAAK,SACV,KAAMpB,GAAYlP,EAAM,GAClBtJ,EAAOsJ,EAAM,GAAG1P,QAAQ,YAAa,EAA9B,EACN,OACNhK,KAAMgqB,EAAI/pB,GACVA,GAAK,GAAE2oB,KAAaxY,IAErB,CAED,CC1KD,KAAM6U,IAAQ6C,GAAqB,CAClCmC,YAAa,CADqB,EAElCC,cAAe,IAAM,CAAE,CAFW,CAAR,EAKA,cACnB1B,UAAWvD,EAAD,CACjB,CAE6B,aAAEzM,YAA6C,CACtE,MAACyR,EAAaE,GAAkBC,GAAuC,sBAAuB,CAAI1P,OAAKzE,MAAOyE,KAAKxE,SAApE,EAE/CgU,EAAgB/W,GAAY,CAACkX,EAAe9c,IAAiB,CACnD,WAAI0c,GAAJ,EAAkBI,GAAQ9c,GAA3B,GACZ,CAAC0c,CAAD,CAF8B,EAI3BnuB,EAAe,CACpBmuB,cACAC,iBAGM,SAAC,GAAM,SAAP,CAAgB,QACrB1R,WADF,CAGA,CCvBD,KAAM8R,IAAQxC,GAAqB,CAClCrrB,MAAO,OACP8tB,YAAa,OACb1tB,YAAa,IAAM,CAAE,CAHa,CAAR,EAMA,cACnB2rB,UAAW8B,EAAD,CACjB,CAE6B,aAAE9R,YAA6C,CACtE,MAAC/b,EAAOE,GAAYuV,EAAS+S,GAAMiB,UAAP,EAC5BsE,EAAeC,GAAc,+BAAD,EAC5BC,EAAcD,GAAc,8BAAD,EAEjCvqB,GAAU,IAAM,CACNyqB,yBAAgBC,aAAa,aAAcnuB,CAApD,GACE,CAACA,CAAD,CAFM,EAIHI,QAAcsW,GAAY,CAAC0X,EAAqB,CAC3ChuB,eAAYJ,EAAOouB,CAA7B,EACA5F,GAAMtoB,SAASkuB,CAAf,EACAluB,EAASkuB,CAAD,GACN,CAACpuB,CAAD,CAJ4B,EAM/ByD,GAAU,IAAM,CACf7E,GAAUqC,sBAAsB8sB,EAAe,QAAUE,EAAc,OAAS,MAAhF,GACE,CAACF,EAAcE,CAAf,CAFM,EAITxqB,GAAU,IAAM,CACf7E,GAAUsB,SAASF,CAAnB,CADQ,EAEN,CAFM,GAIHX,QAAe,CACpBW,QACA8tB,YAAa9tB,IAAU,SAAYA,IAAU,QAAU+tB,EAAgB,QAAU,OACjF3tB,eAGM,SAAC,GAAM,SAAP,CAAgB,QACrB2b,WADF,CAGA,CC/CD,KAAMsS,IAAoB,EAMpBC,GAAQjD,GAAqB,CAClCpP,MAAO,GACPsS,YAAa,IAAM,CAAE,CAFa,CAAR,EAKFtS,cAAgB7L,EAAwBoe,EAAiB,CAC3ErL,QAAU4I,GAAWuC,EAAD,EAC1B7qB,UAAU,IAAM,CACf,CAAIwY,EACKsS,cAAYtS,EAAO7L,EAAUoe,CAArC,CAEC,GAACvS,EAAO7L,EAAUoe,CAAlB,CAJM,EAKFrL,CACP,CAE6B,aAAEpH,YAA6C,CACtE,MAAErc,UAAW+uB,GAAnB,EACM,CAACxS,EAAOyS,GAAYjZ,EAAiB/V,EAAO,YAAD,CAAf,EAE5B6uB,EAAc7X,GAAY,CAACuF,EAAe0S,EAA0BH,IAAoB,CAC7F,GAAIpe,GAAW5F,GAAO4F,SAClBue,IAAenqB,QACPgG,MAAO4F,SAASkD,OAAOrV,GAAK0wB,iBAAYhT,SAAS1d,EAAEuF,GAAnD,GAERorB,MAAc,GAClB,CAAIJ,EACHI,GAAe,MAAKJ,KAEHhiB,4BAAW,GAEb,mBAAeqiB,CADRze,CAAS7E,IAAItN,GAAKA,EAAEuF,EAApB,EAAwBgL,MAAM,CAAC6f,EAA/B,EACsBrhB,KAAK,IAAnB,KAE/B8hB,SAAS7S,MAAQA,EAAQ2S,EACzBF,EAASzS,CAAD,CAdsB,EAe5B,CAf4B,GAiBzB5c,EAAQ,CACb4c,QACAsS,eAGM,SAAC,GAAM,SAAP,CAAgB,QACrBxS,WADF,CAGA,CChDD,KAAMgT,IAAgB,UAOhBC,GAAU3D,GAAuB,CACtChrB,QAAS,SACTM,cAAe,IAAM,CAAE,EACvBsuB,oBAAqB,IAAM,CAAE,CAHS,CAAV,EAMA,cACrBlD,UAAWiD,EAAD,CACjB,CAE+B,aAAEjT,YAA6C,CAC9E,KAAM,CAAC1b,EAASE,GAAckV,EAAoB+S,GAAMkB,qBAAlB,EAEhC,CAACwF,EAAeD,GAAuB5T,GAAe0T,EAAD,EAE3DtrB,GAAU,IAAM,CACX8hB,GAAW5J,SAASuT,CAA+B7uB,OAAY6uB,GAClEtwB,IAAU2B,WAAW2uB,CAArB,EACA3uB,EAAW2uB,CAAX,EACA,EACC,CAAC7uB,EAAS6uB,CAAV,CALM,EAOT,KAAMvuB,GAAgB+V,GAAY,CAACyY,EAAuBC,EAAQ,GAAMC,EAAe,KAAU,CAC5FA,IAAgBH,IACnBD,EAAoBE,EAAY,EAAb,EAEhBC,GACOzuB,kBAAcN,EAAS8uB,CAAjC,EACA3G,GAAMjoB,WAAW4uB,CAAjB,GAED5uB,EAAW4uB,CAAD,GACR,CAAC9uB,EAAS6uB,CAAV,CAT8B,EAWjCzrB,GAAU,IAAM,CjHjDjB,MiHkDE7E,GAAU2B,WAAWF,CAArB,EACAzB,GAAU6B,mBAAmB+nB,MAAMnC,eAANmC,OAAsB,SAAnD,CAFQ,EAGN,CAHM,GAKHnpB,QAAiB,CACtBgB,UACAM,gBACAsuB,uBAGM,SAAC,GAAQ,SAAT,CAAkB,QACvBlT,WADF,CAGA,CCrD0B,aAAE1c,QAAOmV,WAAUvV,QAAOqwB,UAAiB,CAC/D,MAAE5vB,UAAW+uB,GAAnB,EACMc,EAAa3a,GAAyB,IAAnB,EAEnB4a,EAAW,IAAM,ClHdxB,QkHeE,GAAID,EAAW1a,UAAY,KAClB3Y,UAAI,EAAGA,EAAKqzB,SAAW1a,QAAQuX,QAAnBmD,cAA0B/iB,SAA1B+iB,OAAoC,GAAIrzB,IAAK,CAC3DwW,QAAO6c,EAAW1a,QAAQuX,MAAOlwB,GACvCsY,EAAS9B,CAAD,CACR,GAGI+c,EAAS/Y,GAAY,CAACna,EAAiB,CAE5C,GADAA,EAAEmzB,eAAF,EACG,EAACnzB,EAAEozB,aAEN,OAASzzB,GAAI,EAAGA,EAAIK,EAAEozB,aAAavD,MAAM5f,OAAQtQ,IAAK,CAC/CwW,QAAOnW,EAAEozB,aAAavD,MAAMlwB,GAClCsY,EAAS9B,CAAD,CACR,GACC,CAAC8B,CAAD,CARuB,EAUnB,kBAAO,MAAM,cAAc,SAAgB,WAAYjY,CAAKA,IAAEmzB,eAA9D,EACN,qBAAO,IAAKH,EAAY,KAAK,OAAO,SAAUC,EAAU,SADlD,EAENzrB,EAAC,GAAD,CAAK,MAAO9E,UAASS,EAAO,aAAD,EAA3B,EACAqE,UACE1E,WAAQA,EAAMsU,KAAOjU,EAAO,gBAAD,EAJvB,GAAP,CAOA,CCjCsB,aAAEkwB,UAAiB,CACnC,MAAElwB,UAAW+uB,GAAnB,EAEO,mBACN,iBACC,6BAAO/uB,EAAO,cAAD,EAAkB,WAAG,KAAK,4BAA4B,OAAO,SAAS,IAAI,aAAxD,kBAA/B,IADD,GAGCkwB,IAAW,IAASxa,OAAG,MAAM,SAC5B3Q,aAAQorB,MACT9rB,OAAG,KAAK,2BAA2B,OAAO,SAAS,IAAI,aAAcrE,WAAO,QAAD,EAFvD,KAIrB0V,OACE3Q,aAAQqrB,YACT1a,oBAAO1V,EAAO,gBAAD,EAAoB,WAAG,KAAK,6CAA6C,OAAO,SAAS,IAAI,aAAcA,WAAO,QAAD,EAA9H,GAFD,GARM,GAAP,CAaA,CCfwB,aAAET,QAAOI,QAAOmV,YAAmB,CACrDhR,QAAKqB,KACJ,kBAAO,MAAM,WACnB,qBAAO,KAAQ,KAAK,WAAW,QAASxF,EAAO,QAAS,IAAMmV,EAAS,CAACnV,CAAF,CAAtE,GACCJ,CAFK,EAAP,CAIA,CCHD,YAAsB0U,EAAcpQ,EAAcsS,EAA0B,CACrEka,QAAY,CAAClU,EAA6B,CACzCrH,QAAWqH,EAAMrH,UAAa,CAACwb,GAAe,CrHZtD,MqHaS3wB,QAAS2wB,EAAItb,OAA4BrV,MACzCmV,+BAAWqB,EAAGxW,CAAD,EAAnB,GAEK4wB,EAAYpU,EAAMqU,SAAY,CAACF,GAAuB,CrHhB9D,QqHiBOA,KAAI9f,MAAQ,QAAS,CAClB7Q,QAAS2wB,EAAItb,OAA4BrV,MACzC6wB,8BAAUra,EAAGxW,CAAD,EAAlB,KACA,CAAU2wB,EAAI9f,MAAQ,UACtB2L,MAAMsU,WAANtU,gBACA,GAEIlH,EAAMC,GAAyB,IAAnB,EAClBnR,UAAU,IAAM,CrHzBlB,MqH0BOoY,EAAMuU,WACTzb,MAAIE,UAAJF,QAAaG,SACb,EACC,CAAC+G,EAAMuU,SAAP,CAJM,EAKFrsB,iBAAO,OAAc8X,GAArB,CAAkCtY,OAAMiR,WAAUyb,aAAzD,GAEDF,SAAUM,YAAc1c,EACjBoc,CACP,CAEM,KAAMO,IAAYC,GAAU,YAAa,OAAQtyB,GAAKA,CAA3B,EAErBuyB,GAAcD,GAAU,cAAe,SAAUtyB,CAAKoP,SAAOpP,CAAD,CAArC,EAEvBwyB,GAAaF,GAAU,aAAc,QAAStyB,CAAKoP,SAAOpP,CAAD,CAAnC,EC/BR,aAAEyyB,SAAQC,WAAUC,oBAAmBC,aAAoB,CAC/E,MAAC9hB,EAAQ+hB,GAAarb,EAAS,EAAD,EAC9Bsb,EAAUxV,GAAQ,IAAM,CtHX/B,MsHYQyV,QAAQjiB,EAAOkB,KAAOuL,QAAM,GAApB,EACPkV,0BAAQpd,OAAOrV,CAAK+yB,IAAMC,MAAM90B,GAAK8B,EAAE0d,SAASxf,CAAX,CAAjB,KAApBu0B,OAAwD,EAA/D,EACE,CAACA,EAAQ3hB,CAAT,CAHoB,EAKhB,uBACNhL,EAAC,GAAD,CAAU,KAAK,SAAS,MAAxB,GAA8B,MAAOgL,EAAQ,SAAU+hB,EAAW,SAAU,EAAG,YAAaF,UAAqB,SAAjH,EACAxb,SAAK,MAAM,cAAX,UACE2b,EAAQxlB,IAAItN,GAAK8F,EAAC,GAAD,CAAa,MAAO9F,EAAG,QAAS,IAAM0yB,iBAAW1yB,EAAH,EAApCA,CAAV,CAAjB,EACA8yB,EAAQvkB,SAAW,GAAKzI,EAAC,GAAD,CAAK,MAAO8sB,UAAa,aAFnD,GAFM,GAAP,CAOA,CCnBD,KAAMK,IAAa,cAKZ,YAAerV,EAAc,CvHTpC,MuHUCpY,GAAU,IACT0tB,IAAiB,CAAD,EACT7Y,wBAAiB,QAASuD,EAAMM,SAAvC,EACO,IAAM,CACZgV,GAAiB,EAAD,EACT3Y,2BAAoB,QAASqD,EAAMM,SAA1C,GALO,EASH7X,QAAUoS,GAAY,CAACna,EAAkB,CvHnBhD,MuHoBEA,EAAEyY,gBAAF,EACAzY,KAAEmY,SAAFnY,QAAU60B,cAAc,GAAIC,OAAMlY,GAAY,CAAEmY,QAAS,EAAjC,GAFE,EAGxB,CAHwB,GAK3B,MAAOvtB,kBAAS8X,IAAO,MAAQ,SAAQA,KAAM3X,QAAN2X,OAAe,KAAM,UAArD,SACLA,EAAME,UADR,CAGA,CAED,YAA0BwV,EAAc,CvH7BxC,MuH+BC,KAAMC,GAAYC,CADIvgB,QAAS4d,YAASvW,KAAKmZ,aAAaR,EAA3B,WAA0C,GAA3C,EACIK,EAC9BC,GAAa,EACPjZ,cAAKoZ,gBAAgBT,EAA9B,EAEApC,SAASvW,KAAK4V,aAAa+C,GAAYM,EAAUxQ,SAAjD,CAED,CCvB4B,aAAExT,QAAOhK,KAAI/D,SAAQmyB,WAAkB,CAC7D,MAAElyB,UAAW+uB,GAAnB,EACM,CAAE5E,WAAU2C,UAASI,cAAeiF,GAA1C,EACM,CAAC7E,EAAQC,GAAaxX,EAASjS,IAAO,cAAgB,OAAS,EAAjC,EAE9BsuB,EAAS,IAAM,CACpBlzB,GAAUiE,gBAAgBW,EAAIqmB,EAASrd,OAAQggB,EAAQJ,MAAM5f,OAAQ/M,CAArE,EACAmtB,EAAWppB,EAAIgB,OAAW,CAAEjB,KAAMC,EAAIA,GAAIwpB,EAAQ1d,KAAMkX,YAAUuL,YAAYvkB,EAAM8B,IAA5B,EAA9C,EACH,KAGR,MAAO8F,GAAC,GAAD,CAAO,MAAM,aAAa,UAAWwc,EAC3C,iBAAIlyB,WAAO,2BAAD,EADJ,EAENqE,EAAC,GAAD,CAAW,UAAWP,IAAO,cAAe,MAAM,gBAAgB,MAAOwpB,EAAQ,SAAUC,EAAW,QAAS6E,EAAQ,SAAUF,EAAS,YAAalyB,EAAO,mBAAD,EAAuB,WAAY,GAAO,SAAU8D,IAAO,cAFlN,EAGNO,EAAC,GAAD,CAAK,KAAK,OAAO,MAAOrE,EAAO,cAAD,EAAkB,QAASoyB,EAHnD,GAAP,CAKA,CClB4B,aAAEtuB,KAAImQ,OAAMie,WAAkB,CACpD,MAAElyB,UAAW+uB,GAAnB,EACM,CAAE5E,WAAU2C,UAASI,cAAeiF,GAA1C,EACM,CAAC7E,EAAQC,GAAaxX,EAAS9B,CAAD,EAE9Bme,EAAS,IAAM,CACpBlzB,GAAUmE,kBAAkBS,EAAIqmB,EAASrd,OAAQggB,EAAQJ,MAAM5f,OAAQ,MAAvE,EACAogB,EAAWppB,EAAImQ,EAAM,CAAEpQ,KAAMC,EAAIA,GAAIwpB,EAA3B,EACH,KAGR,MAAO5X,GAAC,GAAD,CAAO,MAAM,aAAa,UAAWwc,EAC3C,iBAAIlyB,WAAO,qBAAD,EADJ,EAENqE,EAAC,GAAD,CAAW,UAAX,GAAqB,MAAM,gBAAgB,MAAOipB,EAAQ,SAAUC,EAAW,QAAS6E,EAAQ,YAAapyB,EAAO,mBAAD,EAAuB,WAAY,GAFhJ,EAGNqE,EAAC,GAAD,CAAK,KAAK,SAAS,MAAOrE,EAAO,gBAAD,EAAoB,QAASoyB,EAHvD,GAAP,CAKA,CCf6B,aAAEtuB,KAAIwuB,WAAkB,C1HbtD,M0HcO,MAAEtyB,UAAW+uB,GAAnB,EAEMlB,EAAMhS,GAAyB,IAAM,CAC1C,KAAMgS,GAAM/iB,GAAOoE,WAAWC,KAAKhS,CAAKA,IAAE2G,KAAOA,CAArC,EACR+pB,WAAQ/oB,OACJ,CAAEhB,KAAI+iB,OAAQ/iB,EAAI4K,IAAK5K,GAExB+pB,GACL,CAAC/pB,CAAD,CANgB,EAQbyY,EAAQvc,EAAO6tB,EAAI0E,QAAW,WAAU1E,EAAI0E,WAAW1E,EAAI/pB,KAAO+pB,EAAI/pB,EAAxD,EAEdQ,EAAO8J,OAAOC,KAAKmkB,EAAZ,EAAmBvW,SAASnY,CAA5B,EAAkCA,EAA2BgB,OAE1E,GAAIwtB,EACH,MAAOjuB,GAAC,GAAD,CAAU,QAAc,KAAM0K,GAAS8e,EAAInf,GAAL,EAAW,UAAWpK,EAAnE,EAGKoM,QAAWmL,GAAQ,IACnBgS,EACE/iB,GAAO4F,SACZkD,OAAOrV,CAAKk0B,KAAal0B,EAAEuF,GAAI+pB,EAAIvG,WAAYuG,EAAItG,UAA3B,CADnB,EAEL1b,IAAItN,GAAKA,EAAEuF,EAFN,EADU,GAIf,CAAC+pB,CAAD,CALqB,EAOlBpS,EAAOI,GAAQ,IAAM,C1HvC5B,M0HwCMgS,WAAIpS,OAAJoS,QAAU5R,SAAS,UAAkB,CAAC,eAAD,EAClC,EAAP,EACE,CAAC4R,CAAD,CAHiB,EAKpB,MAAOnY,GAAC,GAAD,CAAM,MAAOA,gBAAG6G,EAAOjY,GAAQkuB,GAAMluB,EAAxB,EAAb,EAAgD,QAASupB,EAAI0E,QAAUvyB,EAAQ,WAAU6tB,EAAI0E,SAAhB,EAA6B7hB,EAASpD,KAAK,UAAd,EAAsB,KAAMyB,GAAS8e,EAAInf,GAAL,EAA9I,UACL,CAACmf,EAAI6E,QAAUhd,OAAG,MAAM,gBAAT,cAA2BmY,KAAIze,OAAJye,OAAYA,EAAI/pB,EAA3C,IACf2X,EAAK3O,OAAS,GAAKzI,SAAK,MAAM,cAC7BoX,WAAKS,OAAOrQ,IAAIkQ,GAAO1X,EAAC,GAAD,CAAO,MAAO0X,EAArC,GAHI,GAAP,CAMA,CCvC6B,aAAE9I,aAAoB,CAC7C,MAAEjT,UAAW+uB,GAAnB,EACM,CAAEpuB,UAASM,iBAAkB0xB,GAAnC,EAEM,CAACtjB,EAAQ+hB,GAAarb,EAAS,EAAD,EAE9B,CAAC6c,EAAeC,GAAmB9c,EAAS,EAAD,EAE3C+c,EAAsBjX,GAAQ,IAC5B/Q,GAAOoE,WAAW0E,OAAOia,CAAO,EAClC5a,IAAcnO,QAAa,CAACmO,EAAU4a,CAAD,EAAc,GACnD+E,IAAkB,GAAc,GAC7BH,GAAa9xB,EAASktB,EAAIvG,WAAYuG,EAAItG,UAA9B,CAHb,EAKL,CAAC5mB,EAASiyB,CAAV,CANgC,EAQ7BG,EAAqBlX,GAAQ,IAAM,CACxC,KAAMvB,GAAQjL,EAAOyM,MAAM,GAAb,EAAkBjQ,IAAIpN,CAAKA,IAAE8R,KAAF,EAASyiB,aAApC,EAAmDpf,OAAOnV,CAAKA,IAAEqO,OAAS,CAA1E,EACPgmB,SAAoBlf,OAAOia,CAAO,G3H7B3C,Y2H8BS9d,QAAW,GAAE8d,EAAI/pB,MAAM+pB,QAAIpS,OAAJoS,cAAUvgB,KAAK,OAAfugB,OAAuB,MAAMA,KAAIze,OAAJye,OAAY,MAAMA,KAAI0E,UAAJ1E,OAAe,MAAM7tB,EAAO6tB,EAAI/pB,EAAL,EAASkvB,gBACzG1Y,SAAMiX,MAAM9yB,CAAK,EACnBA,EAAEgR,WAAW,GAAb,EACIhR,EAAEqO,SAAW,GAAK,CAACiD,EAAQkM,SAASxd,EAAEqQ,MAAM,CAAR,CAAjB,EAEpBiB,EAAQkM,SAASxd,CAAjB,CAJD,EAFD,CASL,GAACq0B,EAAqBzjB,EAAQrP,CAA9B,CAX+B,EAa3B,gBAAK,MAAM,iBACjB,mBAAK,MAAM,aAAX,UACCqE,EAAC,GAAD,CAAW,MAAM,6BAA6B,YAAarE,EAAO,mBAAD,EAAuB,MAAOqP,EAAQ,SAAU+hB,EADlH,EAEC/sB,EAAC,GAAD,CAAiB,MAAOuuB,EAAgBjyB,EAAUmE,OAAW,SAAUvG,CAAK,GAAC0C,EAAc1C,CAAD,EAAKs0B,EAAgB,EAAD,CAA9G,EAAuH,OAAvH,GAA8H,MAAO,IAAMA,EAAgB,EAAD,EAF3J,KAICE,EAAmBjmB,SAAW,EAAIzI,MAClC,mBAAM,MAAM,OAAQrE,WAAO,uBAAD,EAA1B,EADkC,EAE7BqE,SAAK,MAAM,cAAX,SACJ0uB,EAAmBlnB,IAAIgiB,GACvBxpB,EAAC,GAAD,CAAe,GAAIwpB,EAAI/pB,GADvB,GARI,GAAP,CAaA,CCrDM,GAAI,IACX,CAAC,SAAU,EAAW,CAClB,EAAU,GAAQ,KAClB,EAAU,KAAU,OACpB,EAAU,MAAW,QACrB,EAAU,KAAU,OACpB,EAAU,MAAW,QACrB,EAAU,KAAU,MACxB,GAAG,IAAc,IAAY,CAAE,EAAC,EAChC,KAAM,IAAmB,EACpB,GAAU,IAAK,CAAC,EAAG,EAAG,CAAC,GACvB,GAAU,MAAO,CAAC,EAAG,GAAI,CAAC,GAC1B,GAAU,OAAQ,CAAC,EAAG,EAAG,EAAE,GAC3B,GAAU,MAAO,CAAC,EAAG,EAAG,CAAC,GACzB,GAAU,OAAQ,CAAC,EAAG,EAAG,CAAC,GAC1B,GAAU,MAAO,CAAC,GAAI,EAAG,CAAC,CAC/B,EACA,CAAC,SAAU,EAAW,CAClB,EAAU,IAAM,CAAC,EAAU,GAAI,EAAU,KAAM,EAAU,MAAO,EAAU,KAAM,EAAU,MAAO,EAAU,IAAI,EAC/G,WAAgB,EAAK,CACjB,MAAO,IAAiB,EAC3B,CACD,EAAU,OAAS,CACvB,GAAG,IAAc,IAAY,GAAG,ECtBzB,GAAI,IACX,CAAC,SAAU,EAAU,CACjB,WAAgB,EAAG,EAAG,EAAG,CACrB,MAAO,CAAC,EAAG,EAAG,CAAC,CAClB,CACD,EAAS,OAAS,EAClB,EAAS,KAAO,EAAS,OAAO,EAAG,EAAG,CAAC,EACvC,WAAgB,EAAK,EAAI,EAAI,EAAI,CAC7B,MAAO,CAAC,EAAI,GAAK,EAAI,EAAI,GAAK,EAAI,EAAI,GAAK,CAAE,CAChD,CACD,EAAS,OAAS,EAClB,WAAiB,EAAK,EAAK,CACvB,MAAO,GAAS,OAAO,EAAK,GAAG,GAAU,OAAO,CAAG,CAAC,CACvD,CACD,EAAS,QAAU,EACnB,WAAgB,EAAG,EAAG,CAClB,MAAI,KAAM,EACC,GACJ,EAAE,KAAO,EAAE,IAAM,EAAE,KAAO,EAAE,IAAM,EAAE,KAAO,EAAE,EACvD,CACD,EAAS,OAAS,EAClB,WAAmB,EAAK,CACpB,MAAO,GAAI,GAAK,EAAI,GAAK,EAAI,GAAK,EAAI,GAAK,EAAI,GAAK,EAAI,EAC3D,CACD,EAAS,UAAY,CACzB,GAAG,IAAa,IAAW,GAAG,ECzB9B,wEA6BA,KAAM,IAA0B,EAI1B,GAAwB,EACxB,GAAwB,EAExB,GAA0B,EAKhC,YAAgB,EAAK,CAAE,GAAI,GAAM,EAAI,OAAQ,KAAO,EAAE,GAAO,GAAK,EAAI,GAAO,CAAM,CAInF,KAAM,IAAe,EACf,GAAe,EACf,GAAe,EAGf,GAAiB,EACjB,GAAiB,IAQjB,GAAkB,GAGlB,GAAkB,IAGlB,GAAkB,GAAa,EAAI,GAGnC,GAAkB,GAGlB,GAAkB,GAGlB,GAAkB,EAAI,GAAY,EAGlC,GAAkB,GAGlB,GAAgB,GAQhB,GAAc,EAGd,GAAc,IAGd,GAAc,GAGd,GAAc,GAGd,GAAc,GAId,GACJ,GAAI,YAAW,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,CAAC,CAAC,EAEtE,GACJ,GAAI,YAAW,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,EAAE,CAAC,EAEhF,GACJ,GAAI,YAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAElD,GACJ,GAAI,YAAW,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EAa3D,GAAgB,IAGhB,GAAgB,GAAI,OAAO,IAAY,GAAK,CAAC,EACnD,GAAO,EAAY,EAOnB,KAAM,IAAgB,GAAI,OAAM,GAAY,CAAC,EAC7C,GAAO,EAAY,EAKnB,KAAM,IAAgB,GAAI,OAAM,EAAa,EAC7C,GAAO,EAAU,EAMjB,KAAM,IAAgB,GAAI,OAAM,GAAc,GAAc,CAAC,EAC7D,GAAO,EAAY,EAGnB,KAAM,IAAgB,GAAI,OAAM,EAAc,EAC9C,GAAO,EAAW,EAGlB,KAAM,IAAgB,GAAI,OAAM,EAAS,EACzC,GAAO,EAAS,EAIhB,YAAwB,EAAa,EAAY,EAAY,EAAO,EAAY,CAE9E,KAAK,YAAe,EACpB,KAAK,WAAe,EACpB,KAAK,WAAe,EACpB,KAAK,MAAe,EACpB,KAAK,WAAe,EAGpB,KAAK,UAAe,GAAe,EAAY,MACjD,CAGA,GAAI,IACA,GACA,GAGJ,YAAkB,EAAU,EAAW,CACrC,KAAK,SAAW,EAChB,KAAK,SAAW,EAChB,KAAK,UAAY,CACnB,CAIA,KAAM,IAAS,CAAC,EAEP,EAAO,IAAM,GAAW,GAAQ,GAAW,IAAO,KAAS,IAQ9D,GAAY,CAAC,EAAG,IAAM,CAG1B,EAAE,YAAY,EAAE,WAAc,EAAK,IACnC,EAAE,YAAY,EAAE,WAAc,IAAM,EAAK,GAC3C,EAOM,GAAY,CAAC,EAAG,EAAO,IAAW,CAEtC,CAAI,CAAE,SAAY,GAAW,EAC3B,GAAE,QAAW,GAAS,EAAE,SAAY,MACpC,GAAU,EAAG,EAAE,MAAM,EACrB,EAAE,OAAS,GAAU,GAAW,EAAE,SAClC,EAAE,UAAY,EAAS,IAEvB,GAAE,QAAW,GAAS,EAAE,SAAY,MACpC,EAAE,UAAY,EAElB,EAGM,GAAY,CAAC,EAAG,EAAG,IAAS,CAEhC,GAAU,EAAG,EAAK,EAAI,GAAa,EAAK,EAAI,EAAI,GAClD,EAQM,GAAa,CAAC,EAAM,IAAQ,CAEhC,GAAI,GAAM,EACV,EACE,IAAO,EAAO,EACd,KAAU,EACV,IAAQ,QACD,EAAE,EAAM,GACjB,MAAO,KAAQ,CACjB,EAMM,GAAW,CAAC,EAAM,CAEtB,CAAI,CAAE,WAAa,GACjB,IAAU,EAAG,EAAE,MAAM,EACrB,EAAE,OAAS,EACX,EAAE,SAAW,GAEJ,EAAE,UAAY,GACvB,GAAE,YAAY,EAAE,WAAa,EAAE,OAAS,IACxC,EAAE,SAAW,EACb,EAAE,UAAY,EAElB,EAaM,GAAa,CAAC,EAAG,IAGvB,CACE,KAAM,GAAkB,EAAK,SACvB,EAAkB,EAAK,SACvB,EAAkB,EAAK,UAAU,YACjC,EAAkB,EAAK,UAAU,UACjC,EAAkB,EAAK,UAAU,WACjC,EAAkB,EAAK,UAAU,WACjC,EAAkB,EAAK,UAAU,WACvC,GAAI,GACA,EAAG,EACH,EACA,EACA,EACA,EAAW,EAEf,IAAK,EAAO,EAAG,GAAQ,GAAY,IACjC,EAAE,SAAS,GAAQ,EAQrB,IAFA,EAAK,EAAE,KAAK,EAAE,UAAY,EAAI,GAAa,EAEtC,EAAI,EAAE,SAAW,EAAG,EAAI,GAAa,IAUxC,CATA,CAAI,EAAE,KAAK,GACX,EAAO,EAAK,EAAK,EAAI,EAAI,GAAa,EAAI,GAAa,EACnD,EAAO,GACT,GAAO,EACP,KAEF,EAAK,EAAI,EAAI,GAAa,EAGtB,IAAI,IAER,GAAE,SAAS,KACX,EAAQ,EACJ,GAAK,GACP,GAAQ,EAAM,EAAI,IAEpB,EAAI,EAAK,EAAI,GACb,EAAE,SAAW,EAAK,GAAO,GACrB,GACF,GAAE,YAAc,EAAK,GAAM,EAAI,EAAI,GAAa,KAGpD,GAAI,IAAa,EAMjB,GAAG,CAED,IADA,EAAO,EAAa,EACb,EAAE,SAAS,KAAU,GAAK,IACjC,EAAE,SAAS,KACX,EAAE,SAAS,EAAO,IAAM,EACxB,EAAE,SAAS,KAIX,GAAY,CAChB,OAAW,EAAW,GAOpB,IAAK,EAAO,EAAY,IAAS,EAAG,IAElC,IADA,EAAI,EAAE,SAAS,GACR,IAAM,GAEX,CADA,CAAI,EAAE,KAAK,EAAE,GACT,IAAI,IACJ,GAAK,EAAI,EAAI,KAAe,GAE9B,GAAE,SAAY,GAAO,EAAK,EAAI,EAAI,IAAc,EAAK,EAAI,GACzD,EAAK,EAAI,EAAI,GAAa,GAE5B,KAGN,EAWM,GAAY,CAAC,EAAM,EAAU,IAInC,CACE,KAAM,GAAY,GAAI,OAAM,GAAa,CAAC,EAC1C,GAAI,GAAO,EACP,EACA,EAKJ,IAAK,EAAO,EAAG,GAAQ,GAAY,IACjC,EAAU,GAAQ,EAAQ,EAAO,EAAS,EAAO,IAAO,EAS1D,IAAK,EAAI,EAAI,GAAK,EAAU,IAAK,CAC/B,GAAI,GAAM,EAAK,EAAI,EAAI,GACvB,CAAI,GAAQ,GAEZ,GAAK,EAAI,GAAc,GAAW,EAAU,KAAQ,CAAG,EAIxD,CACH,EAMM,GAAiB,IAAM,CAE3B,GAAI,GACA,EACA,EACA,EACA,EACJ,KAAM,GAAW,GAAI,OAAM,GAAa,CAAC,EAiBzC,IADA,EAAS,EACJ,EAAO,EAAG,EAAO,GAAiB,EAAG,IAExC,IADA,GAAY,GAAQ,EACf,EAAI,EAAG,EAAK,GAAK,GAAY,GAAQ,IACxC,GAAa,KAAY,EAY7B,IAJA,GAAa,EAAS,GAAK,EAG3B,EAAO,EACF,EAAO,EAAG,EAAO,GAAI,IAExB,IADA,GAAU,GAAQ,EACb,EAAI,EAAG,EAAK,GAAK,GAAY,GAAQ,IACxC,GAAW,KAAU,EAKzB,IADA,IAAS,EACF,EAAO,GAAW,IAEvB,IADA,GAAU,GAAQ,GAAQ,EACrB,EAAI,EAAG,EAAK,GAAM,GAAY,GAAQ,EAAK,IAC9C,GAAW,IAAM,KAAU,EAM/B,IAAK,EAAO,EAAG,GAAQ,GAAY,IACjC,EAAS,GAAQ,EAInB,IADA,EAAI,EACG,GAAK,KACV,GAAa,EAAI,EAAI,GAAa,EAClC,IACA,EAAS,KAEX,KAAO,GAAK,KACV,GAAa,EAAI,EAAI,GAAa,EAClC,IACA,EAAS,KAEX,KAAO,GAAK,KACV,GAAa,EAAI,EAAI,GAAa,EAClC,IACA,EAAS,KAEX,KAAO,GAAK,KACV,GAAa,EAAI,EAAI,GAAa,EAClC,IACA,EAAS,KASX,IAHA,GAAU,GAAc,GAAY,EAAG,CAAQ,EAG1C,EAAI,EAAG,EAAI,GAAW,IACzB,GAAa,EAAI,EAAI,GAAa,EAClC,GAAa,EAAI,GAAc,GAAW,EAAG,CAAC,EAIhD,GAAgB,GAAI,IAAe,GAAc,GAAa,GAAa,EAAG,GAAW,EAAU,EACnG,GAAgB,GAAI,IAAe,GAAc,GAAa,EAAY,GAAW,EAAU,EAC/F,GAAiB,GAAI,IAAe,GAAI,OAAM,CAAC,EAAG,GAAc,EAAW,GAAY,EAAW,CAGpG,EAMM,GAAa,CAAC,EAAM,CAExB,GAAI,GAGJ,IAAK,EAAI,EAAG,EAAI,GAAY,IAAO,EAAE,UAAU,EAAI,GAAc,EACjE,IAAK,EAAI,EAAG,EAAI,GAAY,IAAO,EAAE,UAAU,EAAI,GAAc,EACjE,IAAK,EAAI,EAAG,EAAI,GAAY,IAAO,EAAE,QAAQ,EAAI,GAAc,EAE/D,EAAE,UAAU,GAAY,GAAc,EACtC,EAAE,QAAU,EAAE,WAAa,EAC3B,EAAE,SAAW,EAAE,QAAU,CAC3B,EAMM,GAAY,CAAC,EACnB,CACE,CAAI,CAAE,SAAW,EACf,GAAU,EAAG,EAAE,MAAM,EACZ,EAAE,SAAW,GAEtB,GAAE,YAAY,EAAE,WAAa,EAAE,QAEjC,EAAE,OAAS,EACX,EAAE,SAAW,CACf,EAMM,GAAa,CAAC,EAAG,EAAK,EAAK,IAKjC,CACE,GAAU,CAAC,EAEP,GACF,IAAU,EAAG,CAAG,EAChB,GAAU,EAAG,CAAC,CAAG,GAKnB,EAAE,YAAY,IAAI,EAAE,OAAO,SAAS,EAAK,EAAM,CAAG,EAAG,EAAE,OAAO,EAC9D,EAAE,SAAW,CACf,EAMM,GAAU,CAAC,EAAM,EAAG,EAAG,IAAU,CAErC,KAAM,GAAM,EAAI,EACV,EAAM,EAAI,EAChB,MAAQ,GAAK,GAAgB,EAAK,IAC1B,EAAK,KAAkB,EAAK,IAAiB,EAAM,IAAM,EAAM,EACzE,EAQM,GAAa,CAAC,EAAG,EAAM,IAI7B,CACE,KAAM,GAAI,EAAE,KAAK,GACjB,GAAI,GAAI,GAAK,EACb,KAAO,GAAK,EAAE,UAER,GAAI,EAAE,UACR,GAAQ,EAAM,EAAE,KAAK,EAAI,GAAI,EAAE,KAAK,GAAI,EAAE,KAAK,GAC/C,IAGE,IAAQ,EAAM,EAAG,EAAE,KAAK,GAAI,EAAE,KAAK,IAGvC,EAAE,KAAK,GAAK,EAAE,KAAK,GACnB,EAAI,EAGJ,IAAM,EAER,EAAE,KAAK,GAAK,CACd,EASM,GAAiB,CAAC,EAAG,EAAO,IAIlC,CACE,GAAI,GACA,EACA,EAAK,EACL,EACA,EAEJ,GAAI,EAAE,WAAa,EACjB,EACE,GAAQ,EAAE,YAAY,EAAE,MAAQ,EAAK,IAAM,EAAM,EAAE,YAAY,EAAE,MAAQ,EAAK,EAAI,GAClF,EAAK,EAAE,YAAY,EAAE,MAAQ,GAC7B,IAEA,CAAI,GAAS,EACX,GAAU,EAAG,EAAI,CAAK,EAItB,GAAO,GAAa,GACpB,GAAU,EAAG,EAAO,GAAa,EAAG,CAAK,EACzC,EAAQ,GAAY,GAChB,IAAU,GACZ,IAAM,GAAY,GAClB,GAAU,EAAG,EAAI,CAAK,GAExB,IACA,EAAO,GAAO,CAAI,EAGlB,GAAU,EAAG,EAAM,CAAK,EACxB,EAAQ,GAAY,GAChB,IAAU,GACZ,IAAQ,GAAU,GAClB,GAAU,EAAG,EAAM,CAAK,UAQrB,EAAK,EAAE,UAGlB,GAAU,EAAG,GAAW,CAAK,CAC/B,EAWM,GAAa,CAAC,EAAG,IAGvB,CACE,KAAM,GAAW,EAAK,SAChB,EAAW,EAAK,UAAU,YAC1B,EAAY,EAAK,UAAU,UAC3B,EAAW,EAAK,UAAU,MAChC,GAAI,GAAG,EACH,EAAW,GACX,EASJ,IAHA,EAAE,SAAW,EACb,EAAE,SAAW,GAER,EAAI,EAAG,EAAI,EAAO,IACrB,CAAI,CAAK,EAAI,KAAgB,EAC3B,GAAE,KAAK,EAAE,EAAE,UAAY,EAAW,EAClC,EAAE,MAAM,GAAK,GAGb,EAAK,EAAI,EAAI,GAAa,EAS9B,KAAO,EAAE,SAAW,GAClB,EAAO,EAAE,KAAK,EAAE,EAAE,UAAa,EAAW,EAAI,EAAE,EAAW,EAC3D,EAAK,EAAO,GAAc,EAC1B,EAAE,MAAM,GAAQ,EAChB,EAAE,UAEE,GACF,GAAE,YAAc,EAAM,EAAO,EAAI,IASrC,IALA,EAAK,SAAW,EAKX,EAAK,EAAE,UAAY,EAAc,GAAK,EAAG,IAAO,GAAW,EAAG,EAAM,CAAC,EAK1E,EAAO,EACP,EAGE,GAAI,EAAE,KAAK,GACX,EAAE,KAAK,GAAiB,EAAE,KAAK,EAAE,YACjC,GAAW,EAAG,EAAM,GAGpB,EAAI,EAAE,KAAK,GAEX,EAAE,KAAK,EAAE,EAAE,UAAY,EACvB,EAAE,KAAK,EAAE,EAAE,UAAY,EAGvB,EAAK,EAAO,GAAc,EAAK,EAAI,GAAc,EAAK,EAAI,GAC1D,EAAE,MAAM,GAAS,GAAE,MAAM,IAAM,EAAE,MAAM,GAAK,EAAE,MAAM,GAAK,EAAE,MAAM,IAAM,EACvE,EAAK,EAAI,EAAI,GAAa,EAAK,EAAI,EAAI,GAAa,EAGpD,EAAE,KAAK,GAAiB,IACxB,GAAW,EAAG,EAAM,SAEb,EAAE,UAAY,GAEvB,EAAE,KAAK,EAAE,EAAE,UAAY,EAAE,KAAK,GAK9B,GAAW,EAAG,CAAI,EAGlB,GAAU,EAAM,EAAU,EAAE,QAAQ,CACtC,EAOM,GAAY,CAAC,EAAG,EAAM,IAI5B,CACE,GAAI,GACA,EAAU,GACV,EAEA,EAAU,EAAK,EAAI,EAAI,GAEvB,EAAQ,EACR,EAAY,EACZ,EAAY,EAQhB,IANI,IAAY,GACd,GAAY,IACZ,EAAY,GAEd,EAAM,GAAW,GAAK,EAAI,GAAa,MAElC,EAAI,EAAG,GAAK,EAAU,IAIzB,CAHA,CAAS,EACT,EAAU,EAAM,GAAI,GAAK,EAAI,GAEzB,IAAE,EAAQ,GAAa,IAAW,IAG/B,CAAI,EAAQ,EACjB,EAAE,QAAQ,EAAS,IAAe,EAE7B,CAAI,GAAW,EAEhB,KAAW,GAAW,EAAE,QAAQ,EAAS,KAC7C,EAAE,QAAQ,GAAU,MAEf,CAAI,EAAS,GAClB,EAAE,QAAQ,GAAY,KAGtB,EAAE,QAAQ,GAAc,KAG1B,EAAQ,EACR,EAAU,EAEV,CAAI,GAAY,EACd,GAAY,IACZ,EAAY,GAEP,CAAI,GAAW,EACpB,GAAY,EACZ,EAAY,GAGZ,GAAY,EACZ,EAAY,GAGlB,EAOM,GAAY,CAAC,EAAG,EAAM,IAI5B,CACE,GAAI,GACA,EAAU,GACV,EAEA,EAAU,EAAK,EAAI,EAAI,GAEvB,EAAQ,EACR,EAAY,EACZ,EAAY,EAQhB,IALI,IAAY,GACd,GAAY,IACZ,EAAY,GAGT,EAAI,EAAG,GAAK,EAAU,IAIzB,GAHA,EAAS,EACT,EAAU,EAAM,GAAI,GAAK,EAAI,GAEzB,IAAE,EAAQ,GAAa,IAAW,GAG/B,IAAI,EAAQ,EACjB,EAAK,IAAU,EAAG,EAAQ,EAAE,OAAO,QAAY,EAAE,IAAU,OAEtD,CAAI,IAAW,EAChB,KAAW,GACb,IAAU,EAAG,EAAQ,EAAE,OAAO,EAC9B,KAGF,GAAU,EAAG,GAAS,EAAE,OAAO,EAC/B,GAAU,EAAG,EAAQ,EAAG,CAAC,GAEpB,CAAI,EAAS,GAClB,IAAU,EAAG,GAAW,EAAE,OAAO,EACjC,GAAU,EAAG,EAAQ,EAAG,CAAC,GAGzB,IAAU,EAAG,GAAa,EAAE,OAAO,EACnC,GAAU,EAAG,EAAQ,GAAI,CAAC,GAG5B,EAAQ,EACR,EAAU,EACV,CAAI,GAAY,EACd,GAAY,IACZ,EAAY,GAEP,CAAI,GAAW,EACpB,GAAY,EACZ,EAAY,GAGZ,GAAY,EACZ,EAAY,GAGlB,EAOM,GAAgB,CAAC,EAAM,CAE3B,GAAI,GAgBJ,IAbA,GAAU,EAAG,EAAE,UAAW,EAAE,OAAO,QAAQ,EAC3C,GAAU,EAAG,EAAE,UAAW,EAAE,OAAO,QAAQ,EAG3C,GAAW,EAAG,EAAE,OAAO,EASlB,EAAc,GAAa,EAAG,GAAe,GAC5C,EAAE,QAAQ,GAAS,GAAe,EAAI,KAAe,EADN,IACnD,CAKF,SAAE,SAAW,EAAK,GAAc,GAAK,EAAI,EAAI,EAItC,CACT,EAQM,GAAiB,CAAC,EAAG,EAAQ,EAAQ,IAG3C,CACE,GAAI,GASJ,IAHA,GAAU,EAAG,EAAS,IAAK,CAAC,EAC5B,GAAU,EAAG,EAAS,EAAK,CAAC,EAC5B,GAAU,EAAG,EAAU,EAAI,CAAC,EACvB,EAAO,EAAG,EAAO,EAAS,IAE7B,GAAU,EAAG,EAAE,QAAQ,GAAS,GAAQ,EAAI,GAAY,CAAC,EAI3D,GAAU,EAAG,EAAE,UAAW,EAAS,CAAC,EAGpC,GAAU,EAAG,EAAE,UAAW,EAAS,CAAC,CAEtC,EAgBM,GAAmB,CAAC,EAAM,CAK9B,GAAI,GAAa,WACb,EAGJ,IAAK,EAAI,EAAG,GAAK,GAAI,IAAK,KAAgB,EACxC,GAAK,EAAa,GAAO,EAAE,UAAU,EAAI,KAAgB,EACvD,MAAO,IAKX,GAAI,EAAE,UAAU,EAAI,KAAgB,GAAK,EAAE,UAAU,GAAK,KAAgB,GACtE,EAAE,UAAU,GAAK,KAAgB,EACnC,MAAO,IAET,IAAK,EAAI,GAAI,EAAI,GAAY,IAC3B,GAAI,EAAE,UAAU,EAAI,KAAgB,EAClC,MAAO,IAOX,MAAO,GACT,EAGA,GAAI,IAAmB,GAKvB,KAAM,IAAa,CAAC,EACpB,CAEE,CAAK,GACH,MACA,GAAmB,IAGrB,EAAE,OAAU,GAAI,IAAS,EAAE,UAAW,EAAa,EACnD,EAAE,OAAU,GAAI,IAAS,EAAE,UAAW,EAAa,EACnD,EAAE,QAAU,GAAI,IAAS,EAAE,QAAS,EAAc,EAElD,EAAE,OAAS,EACX,EAAE,SAAW,EAGb,GAAW,CAAC,CACd,EAMM,GAAqB,CAAC,EAAG,EAAK,EAAY,IAKhD,CACE,GAAU,EAAI,KAAgB,GAAM,GAAO,EAAI,GAAI,CAAC,EACpD,GAAW,EAAG,EAAK,EAAY,EAAI,CACrC,EAOM,GAAc,CAAC,EAAM,CACzB,GAAU,EAAG,IAAgB,EAAG,CAAC,EACjC,GAAU,EAAG,GAAW,EAAY,EACpC,GAAS,CAAC,CACZ,EAOM,GAAoB,CAAC,EAAG,EAAK,EAAY,IAK/C,CACE,GAAI,GAAU,EACV,EAAc,EAGlB,CAAI,CAAE,MAAQ,EAGR,GAAE,KAAK,YAAc,IACvB,GAAE,KAAK,UAAY,GAAiB,CAAC,GAIvC,GAAW,EAAG,EAAE,MAAM,EAItB,GAAW,EAAG,EAAE,MAAM,EAUtB,EAAc,GAAc,CAAC,EAG7B,EAAY,EAAE,QAAU,EAAI,IAAO,EACnC,EAAe,EAAE,WAAa,EAAI,IAAO,EAMrC,GAAe,GAAY,GAAW,IAI1C,EAAW,EAAc,EAAa,EAGxC,CAAK,CAAa,GAAK,GAAc,IAAQ,GAS3C,GAAmB,EAAG,EAAK,EAAY,CAAI,EAEtC,CAAI,CAAE,WAAa,IAAa,IAAgB,EAErD,IAAU,EAAI,KAAgB,GAAM,GAAO,EAAI,GAAI,CAAC,EACpD,GAAe,EAAG,GAAc,EAAY,GAG5C,IAAU,EAAI,KAAa,GAAM,GAAO,EAAI,GAAI,CAAC,EACjD,GAAe,EAAG,EAAE,OAAO,SAAW,EAAG,EAAE,OAAO,SAAW,EAAG,EAAc,CAAC,EAC/E,GAAe,EAAG,EAAE,UAAW,EAAE,SAAS,GAM5C,GAAW,CAAC,EAER,GACF,GAAU,CAAC,CAIf,EAMM,GAAc,CAAC,EAAG,EAAM,IAO5B,GAAE,YAAY,EAAE,MAAQ,EAAE,SAAW,GAAU,IAAS,EAAK,IAC7D,EAAE,YAAY,EAAE,MAAQ,EAAE,SAAW,EAAI,GAAK,EAAO,IAErD,EAAE,YAAY,EAAE,MAAQ,EAAE,UAAY,EAAK,IAC3C,EAAE,WAEF,CAAI,GAAS,EAEX,EAAE,UAAU,EAAK,KAEjB,GAAE,UAEF,IAKA,EAAE,UAAW,IAAa,GAAM,GAAa,GAAK,KAClD,EAAE,UAAU,GAAO,CAAI,EAAI,MA0BrB,EAAE,WAAa,EAAE,YAAc,GAOzC,GAAI,IAAc,GACd,GAAqB,GACrB,GAAqB,GACrB,GAAc,GACd,GAAc,GAEd,GAAQ,CACX,SAAU,GACV,iBAAkB,GAClB,gBAAiB,GACjB,UAAW,GACX,UAAW,EACZ,EAyBA,KAAM,IAAU,CAAC,EAAO,EAAK,EAAK,IAAQ,CACxC,GAAI,GAAM,EAAQ,MAAS,EACvB,EAAO,IAAU,GAAM,MAAS,EAChC,EAAI,EAER,KAAO,IAAQ,GAAG,CAIhB,EAAI,EAAM,IAAO,IAAO,EACxB,GAAO,EAEP,EACE,GAAM,EAAK,EAAI,KAAS,EACxB,EAAM,EAAK,EAAK,QACT,EAAE,GAEX,GAAM,MACN,GAAM,KACP,CAED,MAAQ,GAAM,GAAM,GAAM,CAC5B,EAGA,GAAI,IAAY,GA0BhB,KAAM,IAAY,IAAM,CACtB,GAAI,GAAG,EAAQ,GAEf,OAAS,GAAI,EAAG,EAAI,IAAK,IAAK,CAC5B,EAAI,EACJ,OAAS,GAAI,EAAG,EAAI,EAAG,IACrB,EAAM,EAAI,EAAM,WAAc,IAAM,EAAO,IAAM,EAEnD,EAAM,GAAK,CACZ,CAED,MAAO,EACT,EAGM,GAAW,GAAI,aAAY,GAAS,CAAE,EAGtC,GAAQ,CAAC,EAAK,EAAK,EAAK,IAAQ,CACpC,KAAM,GAAI,GACJ,EAAM,EAAM,EAElB,GAAO,GAEP,OAAS,GAAI,EAAK,EAAI,EAAK,IACzB,EAAO,IAAQ,EAAK,EAAG,GAAM,EAAI,IAAM,KAGzC,MAAQ,GAAO,EACjB,EAGA,GAAI,IAAU,GAqBV,GAAW,CACb,EAAQ,kBACR,EAAQ,aACR,EAAQ,GACR,KAAQ,aACR,KAAQ,eACR,KAAQ,aACR,KAAQ,sBACR,KAAQ,eACR,KAAQ,sBACV,EAqBI,GAAc,CAGhB,WAAoB,EACpB,gBAAoB,EACpB,aAAoB,EACpB,aAAoB,EACpB,SAAoB,EACpB,QAAoB,EACpB,QAAoB,EAKpB,KAAoB,EACpB,aAAoB,EACpB,YAAoB,EACpB,QAAmB,GACnB,eAAmB,GACnB,aAAmB,GACnB,YAAmB,GACnB,YAAmB,GAInB,iBAA0B,EAC1B,aAA0B,EAC1B,mBAA0B,EAC1B,sBAAyB,GAGzB,WAA0B,EAC1B,eAA0B,EAC1B,MAA0B,EAC1B,QAA0B,EAC1B,mBAA0B,EAG1B,SAA0B,EAC1B,OAA0B,EAE1B,UAA0B,EAG1B,WAA0B,CAE5B,EAqBA,KAAM,CAAE,YAAU,oBAAkB,mBAAiB,aAAW,cAAc,GAQxE,CACJ,WAAY,GAAc,mBAAiB,aAAc,GAAgB,SAAU,GAAY,QAAS,GACxG,KAAM,GAAQ,aAAc,GAAgB,eAAgB,GAAkB,aAAc,GAAgB,YAAa,GACzH,sBAAuB,GACvB,cAAY,kBAAgB,SAAO,WAAS,mBAAoB,GAChE,aACA,WAAY,IACV,GAKE,GAAgB,EAEhB,GAAc,GAEd,GAAgB,EAGhB,GAAgB,GAEhB,GAAgB,IAEhB,GAAgB,GAAW,EAAI,GAE/B,GAAgB,GAEhB,GAAgB,GAEhB,GAAgB,EAAI,GAAU,EAE9B,GAAY,GAGZ,GAAY,EACZ,GAAY,IACZ,GAAiB,GAAY,GAAY,EAEzC,GAAc,GAEd,GAAa,GACb,GAAc,GACd,GAAa,GACb,GAAgB,GAChB,GAAa,IACb,GAAa,IACb,GAAe,IAEf,GAAoB,EACpB,GAAoB,EACpB,GAAoB,EACpB,GAAoB,EAEpB,GAAU,EAEV,GAAM,CAAC,EAAM,IACjB,GAAK,IAAM,GAAS,GACb,GAGH,GAAO,CAAC,EACH,IAAM,GAAO,GAAK,EAAI,EAAI,GAG/B,GAAO,CAAC,EAAQ,CACpB,GAAI,GAAM,EAAI,OAAQ,KAAO,EAAE,GAAO,GAAK,EAAI,GAAO,CACxD,EAIA,GAAI,IAAY,CAAC,EAAG,EAAM,IAAW,IAAQ,EAAE,WAAc,GAAQ,EAAE,UAInEmvB,GAAO,GAQX,KAAM,IAAgB,CAAC,EAAS,CAC9B,KAAM,GAAI,EAAK,MAGf,GAAI,GAAM,EAAE,QAIZ,CAHI,CAAM,EAAK,WACb,GAAM,EAAK,WAET,IAAQ,GAEZ,GAAK,OAAO,IAAI,EAAE,YAAY,SAAS,EAAE,YAAa,EAAE,YAAc,CAAG,EAAG,EAAK,QAAQ,EACzF,EAAK,UAAY,EACjB,EAAE,aAAe,EACjB,EAAK,WAAa,EAClB,EAAK,WAAa,EAClB,EAAE,SAAW,EACT,EAAE,UAAY,GAChB,GAAE,YAAc,GAEpB,EAGM,GAAmB,CAAC,EAAG,IAAS,CACpC,GAAgB,EAAI,EAAE,aAAe,EAAI,EAAE,YAAc,GAAK,EAAE,SAAW,EAAE,YAAa,CAAI,EAC9F,EAAE,YAAc,EAAE,SAClB,GAAc,EAAE,IAAI,CACtB,EAGM,GAAW,CAAC,EAAG,IAAM,CACzB,EAAE,YAAY,EAAE,WAAa,CAC/B,EAQM,GAAc,CAAC,EAAG,IAAM,CAI5B,EAAE,YAAY,EAAE,WAAc,IAAM,EAAK,IACzC,EAAE,YAAY,EAAE,WAAa,EAAI,GACnC,EAUM,GAAW,CAAC,EAAM,EAAK,EAAO,IAAS,CAE3C,GAAI,GAAM,EAAK,SAGf,MADI,GAAM,GAAQ,GAAM,GACpB,IAAQ,EAAY,EAExB,GAAK,UAAY,EAGjB,EAAI,IAAI,EAAK,MAAM,SAAS,EAAK,QAAS,EAAK,QAAU,CAAG,EAAG,CAAK,EACpE,CAAI,CAAK,MAAM,OAAS,EACtB,EAAK,MAAQ,GAAU,EAAK,MAAO,EAAK,EAAK,CAAK,EAG3C,EAAK,MAAM,OAAS,GAC3B,GAAK,MAAQ,GAAQ,EAAK,MAAO,EAAK,EAAK,CAAK,GAGlD,EAAK,SAAW,EAChB,EAAK,UAAY,EAEV,EACT,EAYM,GAAgB,CAAC,EAAG,IAAc,CAEtC,GAAI,GAAe,EAAE,iBACjB,EAAO,EAAE,SACT,EACA,EACA,EAAW,EAAE,YACb,EAAa,EAAE,WACnB,KAAM,GAAS,EAAE,SAAY,EAAE,OAAS,GACpC,EAAE,SAAY,GAAE,OAAS,IAAiB,EAExC,EAAO,EAAE,OAET,EAAQ,EAAE,OACV,EAAQ,EAAE,KAMV,EAAS,EAAE,SAAW,GAC5B,GAAI,GAAa,EAAK,EAAO,EAAW,GACpC,EAAa,EAAK,EAAO,GAQ7B,CAAI,CAAE,aAAe,EAAE,YACrB,KAAiB,GAKf,EAAa,EAAE,WAAa,GAAa,EAAE,WAI/C,EAaE,IAXA,EAAQ,EAWJ,IAAK,EAAQ,KAAkB,GAC/B,EAAK,EAAQ,EAAW,KAAO,GAC/B,EAAK,KAA0B,EAAK,IACpC,EAAK,EAAE,KAAwB,EAAK,EAAO,IAU/C,IAAQ,EACR,IAMA,EAAG,OAEM,EAAK,EAAE,KAAU,EAAK,EAAE,IAAU,EAAK,EAAE,KAAU,EAAK,EAAE,IAC1D,EAAK,EAAE,KAAU,EAAK,EAAE,IAAU,EAAK,EAAE,KAAU,EAAK,EAAE,IAC1D,EAAK,EAAE,KAAU,EAAK,EAAE,IAAU,EAAK,EAAE,KAAU,EAAK,EAAE,IAC1D,EAAK,EAAE,KAAU,EAAK,EAAE,IAAU,EAAK,EAAE,KAAU,EAAK,EAAE,IAC1D,EAAO,GAOhB,GAHA,EAAM,GAAa,GAAS,GAC5B,EAAO,EAAS,GAEZ,EAAM,EAAU,CAGlB,GAFA,EAAE,YAAc,EAChB,EAAW,EACP,GAAO,EACT,MAEF,EAAa,EAAK,EAAO,EAAW,GACpC,EAAa,EAAK,EAAO,EAC1B,QACO,GAAY,EAAK,EAAY,IAAU,GAAS,EAAE,IAAiB,GAE7E,MAAI,IAAY,EAAE,UACT,EAEF,EAAE,SACX,EAaM,GAAc,CAAC,EAAM,CAEzB,KAAM,GAAU,EAAE,OAClB,GAAI,GAAG,EAAG,EAAG,EAAM,EAInB,EAAG,CAqBD,GApBA,EAAO,EAAE,YAAc,EAAE,UAAY,EAAE,SAoBnC,EAAE,UAAY,EAAW,GAAU,IAAgB,CAErD,EAAE,OAAO,IAAI,EAAE,OAAO,SAAS,EAAS,EAAU,CAAO,EAAG,CAAC,EAC7D,EAAE,aAAe,EACjB,EAAE,UAAY,EAEd,EAAE,aAAe,EASjB,EAAI,EAAE,UACN,EAAI,EAEJ,EACE,GAAI,EAAE,KAAK,EAAE,GACb,EAAE,KAAK,GAAM,GAAK,EAAU,EAAI,EAAU,QACnC,EAAE,GAEX,EAAI,EACJ,EAAI,EAEJ,EACE,GAAI,EAAE,KAAK,EAAE,GACb,EAAE,KAAK,GAAM,GAAK,EAAU,EAAI,EAAU,QAInC,EAAE,GAEX,GAAQ,CACT,CACD,GAAI,EAAE,KAAK,WAAa,EACtB,MAmBF,GAJA,EAAI,GAAS,EAAE,KAAM,EAAE,OAAQ,EAAE,SAAW,EAAE,UAAW,CAAI,EAC7D,EAAE,WAAa,EAGX,EAAE,UAAY,EAAE,QAAU,GAS5B,IARA,EAAM,EAAE,SAAW,EAAE,OACrB,EAAE,MAAQ,EAAE,OAAO,GAGnB,EAAE,MAAQA,GAAK,EAAG,EAAE,MAAO,EAAE,OAAO,EAAM,EAAE,EAIrC,EAAE,QAEP,GAAE,MAAQA,GAAK,EAAG,EAAE,MAAO,EAAE,OAAO,EAAM,GAAY,EAAE,EAExD,EAAE,KAAK,EAAM,EAAE,QAAU,EAAE,KAAK,EAAE,OAClC,EAAE,KAAK,EAAE,OAAS,EAClB,IACA,EAAE,SACE,IAAE,UAAY,EAAE,OAAS,MAA7B,CASR,OAAW,EAAE,UAAY,IAAiB,EAAE,KAAK,WAAa,EAsC9D,EAWM,GAAiB,CAAC,EAAG,IAAU,CAKnC,GAAI,GAAiB,MAOrB,IALI,EAAiB,EAAE,iBAAmB,GACxC,GAAiB,EAAE,iBAAmB,KAI/B,CAEP,GAAI,EAAE,WAAa,EAAG,CAUpB,GADA,GAAY,CAAC,EACT,EAAE,YAAc,GAAK,IAAU,GACjC,MAAO,IAGT,GAAI,EAAE,YAAc,EAClB,KAGH,CAID,EAAE,UAAY,EAAE,UAChB,EAAE,UAAY,EAGd,KAAM,GAAY,EAAE,YAAc,EAkBlC,GAhBI,GAAE,WAAa,GAAK,EAAE,UAAY,IAEpC,GAAE,UAAY,EAAE,SAAW,EAC3B,EAAE,SAAW,EAEb,GAAiB,EAAG,EAAK,EACrB,EAAE,KAAK,YAAc,IAUvB,EAAE,SAAW,EAAE,aAAgB,EAAE,OAAS,IAE5C,IAAiB,EAAG,EAAK,EACrB,EAAE,KAAK,YAAc,GACvB,MAAO,GAIZ,CAID,MAFA,GAAE,OAAS,EAEP,IAAU,GAEZ,IAAiB,EAAG,EAAI,EACpB,EAAE,KAAK,YAAc,EAChB,GAGF,IAGL,GAAE,SAAW,EAAE,aAEjB,IAAiB,EAAG,EAAK,EACrB,EAAE,KAAK,YAAc,GAChB,GAMb,EASM,GAAe,CAAC,EAAG,IAAU,CAEjC,GAAI,GACA,EAEJ,OAAS,CAMP,GAAI,EAAE,UAAY,GAAe,CAE/B,GADA,GAAY,CAAC,EACT,EAAE,UAAY,IAAiB,IAAU,GAC3C,MAAO,IAET,GAAI,EAAE,YAAc,EAClB,KAEH,CAyBD,GApBA,EAAY,EACR,EAAE,WAAa,IAEjB,GAAE,MAAQA,GAAK,EAAG,EAAE,MAAO,EAAE,OAAO,EAAE,SAAW,GAAY,EAAE,EAC/D,EAAY,EAAE,KAAK,EAAE,SAAW,EAAE,QAAU,EAAE,KAAK,EAAE,OACrD,EAAE,KAAK,EAAE,OAAS,EAAE,UAOlB,IAAc,GAAc,EAAE,SAAW,GAAe,EAAE,OAAS,IAKrE,GAAE,aAAe,GAAc,EAAG,CAAS,GAGzC,EAAE,cAAgB,GAYpB,GAPA,EAAS,GAAU,EAAG,EAAE,SAAW,EAAE,YAAa,EAAE,aAAe,EAAS,EAE5E,EAAE,WAAa,EAAE,aAKb,EAAE,cAAgB,EAAE,gBAAuC,EAAE,WAAa,GAAW,CACvF,EAAE,eACF,EACE,GAAE,WAEF,EAAE,MAAQA,GAAK,EAAG,EAAE,MAAO,EAAE,OAAO,EAAE,SAAW,GAAY,EAAE,EAC/D,EAAY,EAAE,KAAK,EAAE,SAAW,EAAE,QAAU,EAAE,KAAK,EAAE,OACrD,EAAE,KAAK,EAAE,OAAS,EAAE,eAKb,EAAE,EAAE,eAAiB,GAC9B,EAAE,UACH,KAEC,GAAE,UAAY,EAAE,aAChB,EAAE,aAAe,EACjB,EAAE,MAAQ,EAAE,OAAO,EAAE,UAErB,EAAE,MAAQA,GAAK,EAAG,EAAE,MAAO,EAAE,OAAO,EAAE,SAAW,EAAE,MAarD,GAAS,GAAU,EAAG,EAAG,EAAE,OAAO,EAAE,SAAS,EAE7C,EAAE,YACF,EAAE,WAEJ,GAAI,GAEF,IAAiB,EAAG,EAAK,EACrB,EAAE,KAAK,YAAc,GACvB,MAAO,GAIZ,CAED,MADA,GAAE,OAAW,EAAE,SAAY,GAAY,EAAM,EAAE,SAAW,GAAY,EAClE,IAAU,GAEZ,IAAiB,EAAG,EAAI,EACpB,EAAE,KAAK,YAAc,EAChB,GAGF,IAEL,EAAE,UAEJ,IAAiB,EAAG,EAAK,EACrB,EAAE,KAAK,YAAc,GAChB,GAIJ,EACT,EAOM,GAAe,CAAC,EAAG,IAAU,CAEjC,GAAI,GACA,EAEA,EAGJ,OAAS,CAMP,GAAI,EAAE,UAAY,GAAe,CAE/B,GADA,GAAY,CAAC,EACT,EAAE,UAAY,IAAiB,IAAU,GAC3C,MAAO,IAET,GAAI,EAAE,YAAc,EAAK,KAC1B,CAyCD,GApCA,EAAY,EACR,EAAE,WAAa,IAEjB,GAAE,MAAQA,GAAK,EAAG,EAAE,MAAO,EAAE,OAAO,EAAE,SAAW,GAAY,EAAE,EAC/D,EAAY,EAAE,KAAK,EAAE,SAAW,EAAE,QAAU,EAAE,KAAK,EAAE,OACrD,EAAE,KAAK,EAAE,OAAS,EAAE,UAMtB,EAAE,YAAc,EAAE,aAClB,EAAE,WAAa,EAAE,YACjB,EAAE,aAAe,GAAY,EAEzB,IAAc,GAAY,EAAE,YAAc,EAAE,gBAC5C,EAAE,SAAW,GAAc,EAAE,OAAS,IAKxC,GAAE,aAAe,GAAc,EAAG,CAAS,EAGvC,EAAE,cAAgB,GAClB,GAAE,WAAa,IAAe,EAAE,eAAiB,IAAa,EAAE,SAAW,EAAE,YAAc,OAK7F,GAAE,aAAe,GAAY,IAM7B,EAAE,aAAe,IAAa,EAAE,cAAgB,EAAE,YAAa,CACjE,EAAa,EAAE,SAAW,EAAE,UAAY,GAOxC,EAAS,GAAU,EAAG,EAAE,SAAW,EAAI,EAAE,WAAY,EAAE,YAAc,EAAS,EAM9E,EAAE,WAAa,EAAE,YAAc,EAC/B,EAAE,aAAe,EACjB,EACE,CAAI,CAAE,EAAE,UAAY,GAElB,GAAE,MAAQA,GAAK,EAAG,EAAE,MAAO,EAAE,OAAO,EAAE,SAAW,GAAY,EAAE,EAC/D,EAAY,EAAE,KAAK,EAAE,SAAW,EAAE,QAAU,EAAE,KAAK,EAAE,OACrD,EAAE,KAAK,EAAE,OAAS,EAAE,gBAGf,EAAE,EAAE,cAAgB,GAK7B,GAJA,EAAE,gBAAkB,EACpB,EAAE,aAAe,GAAY,EAC7B,EAAE,WAEE,GAEF,IAAiB,EAAG,EAAK,EACrB,EAAE,KAAK,YAAc,GACvB,MAAO,GAKjB,SAAe,EAAE,iBAgBX,GATA,EAAS,GAAU,EAAG,EAAG,EAAE,OAAO,EAAE,SAAW,EAAE,EAE7C,GAEF,GAAiB,EAAG,EAAK,EAG3B,EAAE,WACF,EAAE,YACE,EAAE,KAAK,YAAc,EACvB,MAAO,QAMT,GAAE,gBAAkB,EACpB,EAAE,WACF,EAAE,WAEL,CAUD,MARI,GAAE,iBAGJ,GAAS,GAAU,EAAG,EAAG,EAAE,OAAO,EAAE,SAAW,EAAE,EAEjD,EAAE,gBAAkB,GAEtB,EAAE,OAAS,EAAE,SAAW,GAAY,EAAI,EAAE,SAAW,GAAY,EAC7D,IAAU,GAEZ,IAAiB,EAAG,EAAI,EACpB,EAAE,KAAK,YAAc,EAChB,GAGF,IAEL,EAAE,UAEJ,IAAiB,EAAG,EAAK,EACrB,EAAE,KAAK,YAAc,GAChB,GAKJ,EACT,EAQM,GAAc,CAAC,EAAG,IAAU,CAEhC,GAAI,GACA,EACA,EAAM,EAEV,KAAM,GAAO,EAAE,OAEf,OAAS,CAKP,GAAI,EAAE,WAAa,GAAW,CAE5B,GADA,GAAY,CAAC,EACT,EAAE,WAAa,IAAa,IAAU,GACxC,MAAO,IAET,GAAI,EAAE,YAAc,EAAK,KAC1B,CAID,GADA,EAAE,aAAe,EACb,EAAE,WAAa,IAAa,EAAE,SAAW,GAC3C,GAAO,EAAE,SAAW,EACpB,EAAO,EAAK,GACR,IAAS,EAAK,EAAE,IAAS,IAAS,EAAK,EAAE,IAAS,IAAS,EAAK,EAAE,IAAO,CAC3E,EAAS,EAAE,SAAW,GACtB,EAAG,OAEM,IAAS,EAAK,EAAE,IAAS,IAAS,EAAK,EAAE,IACzC,IAAS,EAAK,EAAE,IAAS,IAAS,EAAK,EAAE,IACzC,IAAS,EAAK,EAAE,IAAS,IAAS,EAAK,EAAE,IACzC,IAAS,EAAK,EAAE,IAAS,IAAS,EAAK,EAAE,IACzC,EAAO,GAChB,EAAE,aAAe,GAAa,GAAS,GACnC,EAAE,aAAe,EAAE,WACrB,GAAE,aAAe,EAAE,UAEtB,CAuBH,GAlBA,CAAI,CAAE,cAAgB,GAIpB,GAAS,GAAU,EAAG,EAAG,EAAE,aAAe,EAAS,EAEnD,EAAE,WAAa,EAAE,aACjB,EAAE,UAAY,EAAE,aAChB,EAAE,aAAe,GAKjB,GAAS,GAAU,EAAG,EAAG,EAAE,OAAO,EAAE,SAAS,EAE7C,EAAE,YACF,EAAE,YAEA,GAEF,IAAiB,EAAG,EAAK,EACrB,EAAE,KAAK,YAAc,GACvB,MAAO,GAIZ,CAED,MADA,GAAE,OAAS,EACP,IAAU,GAEZ,IAAiB,EAAG,EAAI,EACpB,EAAE,KAAK,YAAc,EAChB,GAGF,IAEL,EAAE,UAEJ,IAAiB,EAAG,EAAK,EACrB,EAAE,KAAK,YAAc,GAChB,GAIJ,EACT,EAMM,GAAe,CAAC,EAAG,IAAU,CAEjC,GAAI,GAEJ,OAAS,CAEP,GAAI,EAAE,YAAc,GAClB,IAAY,CAAC,EACT,EAAE,YAAc,GAAG,CACrB,GAAI,IAAU,GACZ,MAAO,IAET,KACD,CAUH,GANA,EAAE,aAAe,EAGjB,EAAS,GAAU,EAAG,EAAG,EAAE,OAAO,EAAE,SAAS,EAC7C,EAAE,YACF,EAAE,WACE,GAEF,IAAiB,EAAG,EAAK,EACrB,EAAE,KAAK,YAAc,GACvB,MAAO,GAIZ,CAED,MADA,GAAE,OAAS,EACP,IAAU,GAEZ,IAAiB,EAAG,EAAI,EACpB,EAAE,KAAK,YAAc,EAChB,GAGF,IAEL,EAAE,UAEJ,IAAiB,EAAG,EAAK,EACrB,EAAE,KAAK,YAAc,GAChB,GAIJ,EACT,EAOA,YAAgB,EAAa,EAAU,EAAa,EAAW,EAAM,CAEnE,KAAK,YAAc,EACnB,KAAK,SAAW,EAChB,KAAK,YAAc,EACnB,KAAK,UAAY,EACjB,KAAK,KAAO,CACd,CAEA,KAAM,IAAsB,CAE1B,GAAI,IAAO,EAAG,EAAG,EAAG,EAAG,EAAc,EACrC,GAAI,IAAO,EAAG,EAAG,EAAG,EAAG,EAAY,EACnC,GAAI,IAAO,EAAG,EAAG,GAAI,EAAG,EAAY,EACpC,GAAI,IAAO,EAAG,EAAG,GAAI,GAAI,EAAY,EAErC,GAAI,IAAO,EAAG,EAAG,GAAI,GAAI,EAAY,EACrC,GAAI,IAAO,EAAG,GAAI,GAAI,GAAI,EAAY,EACtC,GAAI,IAAO,EAAG,GAAI,IAAK,IAAK,EAAY,EACxC,GAAI,IAAO,EAAG,GAAI,IAAK,IAAK,EAAY,EACxC,GAAI,IAAO,GAAI,IAAK,IAAK,KAAM,EAAY,EAC3C,GAAI,IAAO,GAAI,IAAK,IAAK,KAAM,EAAY,CAC7C,EAMM,GAAU,CAAC,EAAM,CAErB,EAAE,YAAc,EAAI,EAAE,OAGtB,GAAK,EAAE,IAAI,EAIX,EAAE,eAAiB,GAAoB,EAAE,OAAO,SAChD,EAAE,WAAa,GAAoB,EAAE,OAAO,YAC5C,EAAE,WAAa,GAAoB,EAAE,OAAO,YAC5C,EAAE,iBAAmB,GAAoB,EAAE,OAAO,UAElD,EAAE,SAAW,EACb,EAAE,YAAc,EAChB,EAAE,UAAY,EACd,EAAE,OAAS,EACX,EAAE,aAAe,EAAE,YAAc,GAAY,EAC7C,EAAE,gBAAkB,EACpB,EAAE,MAAQ,CACZ,EAGA,aAAwB,CACtB,KAAK,KAAO,KACZ,KAAK,OAAS,EACd,KAAK,YAAc,KACnB,KAAK,iBAAmB,EACxB,KAAK,YAAc,EACnB,KAAK,QAAU,EACf,KAAK,KAAO,EACZ,KAAK,OAAS,KACd,KAAK,QAAU,EACf,KAAK,OAAS,GACd,KAAK,WAAa,GAElB,KAAK,OAAS,EACd,KAAK,OAAS,EACd,KAAK,OAAS,EAEd,KAAK,OAAS,KAQd,KAAK,YAAc,EAKnB,KAAK,KAAO,KAMZ,KAAK,KAAO,KAEZ,KAAK,MAAQ,EACb,KAAK,UAAY,EACjB,KAAK,UAAY,EACjB,KAAK,UAAY,EAEjB,KAAK,WAAa,EAOlB,KAAK,YAAc,EAKnB,KAAK,aAAe,EACpB,KAAK,WAAa,EAClB,KAAK,gBAAkB,EACvB,KAAK,SAAW,EAChB,KAAK,YAAc,EACnB,KAAK,UAAY,EAEjB,KAAK,YAAc,EAKnB,KAAK,iBAAmB,EAMxB,KAAK,eAAiB,EAYtB,KAAK,MAAQ,EACb,KAAK,SAAW,EAEhB,KAAK,WAAa,EAGlB,KAAK,WAAa,EAYlB,KAAK,UAAa,GAAI,aAAY,GAAY,CAAC,EAC/C,KAAK,UAAa,GAAI,aAAa,GAAI,GAAU,GAAK,CAAC,EACvD,KAAK,QAAa,GAAI,aAAa,GAAI,GAAW,GAAK,CAAC,EACxD,GAAK,KAAK,SAAS,EACnB,GAAK,KAAK,SAAS,EACnB,GAAK,KAAK,OAAO,EAEjB,KAAK,OAAW,KAChB,KAAK,OAAW,KAChB,KAAK,QAAW,KAGhB,KAAK,SAAW,GAAI,aAAY,GAAW,CAAC,EAI5C,KAAK,KAAO,GAAI,aAAY,EAAI,GAAU,CAAC,EAC3C,GAAK,KAAK,IAAI,EAEd,KAAK,SAAW,EAChB,KAAK,SAAW,EAKhB,KAAK,MAAQ,GAAI,aAAY,EAAI,GAAU,CAAC,EAC5C,GAAK,KAAK,KAAK,EAIf,KAAK,MAAQ,EAEb,KAAK,YAAc,EAoBnB,KAAK,SAAW,EAEhB,KAAK,MAAQ,EAMb,KAAK,QAAU,EACf,KAAK,WAAa,EAClB,KAAK,QAAU,EACf,KAAK,OAAS,EAGd,KAAK,OAAS,EAId,KAAK,SAAW,CAalB,CAGA,KAAM,IAAmB,CAAC,EAAS,CAEjC,GAAI,CAAC,GAAQ,CAAC,EAAK,MACjB,MAAO,IAAI,EAAM,EAAgB,EAGnC,EAAK,SAAW,EAAK,UAAY,EACjC,EAAK,UAAY,GAEjB,KAAM,GAAI,EAAK,MACf,SAAE,QAAU,EACZ,EAAE,YAAc,EAEZ,EAAE,KAAO,GACX,GAAE,KAAO,CAAC,EAAE,MAGd,EAAE,OAAU,EAAE,KAAO,GAAa,GAClC,EAAK,MAAS,EAAE,OAAS,EACvB,EAEA,EACF,EAAE,WAAa,GACf,GAAS,CAAC,EACH,EACT,EAGM,GAAe,CAAC,EAAS,CAE7B,KAAM,GAAM,GAAiB,CAAI,EACjC,MAAI,KAAQ,IACV,GAAQ,EAAK,KAAK,EAEb,CACT,EAGM,GAAmB,CAAC,EAAM,IAE1B,CAAC,GAAQ,CAAC,EAAK,OACf,EAAK,MAAM,OAAS,EAAY,GACpC,GAAK,MAAM,OAAS,EACb,IAIH,GAAe,CAAC,EAAM,EAAO,EAAQ,EAAY,EAAU,IAAa,CAE5E,GAAI,CAAC,EACH,MAAO,IAET,GAAI,GAAO,EAiBX,GAfI,IAAU,IACZ,GAAQ,GAGV,CAAI,CAAa,EACf,GAAO,EACP,EAAa,CAAC,GAGP,EAAa,IACpB,GAAO,EACP,GAAc,IAIZ,EAAW,GAAK,EAAW,IAAiB,IAAW,IACzD,EAAa,GAAK,EAAa,IAAM,EAAQ,GAAK,EAAQ,GAC1D,EAAW,GAAK,EAAW,GAC3B,MAAO,IAAI,EAAM,EAAgB,EAInC,CAAI,GAAe,GACjB,GAAa,GAIf,KAAM,GAAI,GAAI,IAEd,SAAK,MAAQ,EACb,EAAE,KAAO,EAET,EAAE,KAAO,EACT,EAAE,OAAS,KACX,EAAE,OAAS,EACX,EAAE,OAAS,GAAK,EAAE,OAClB,EAAE,OAAS,EAAE,OAAS,EAEtB,EAAE,UAAY,EAAW,EACzB,EAAE,UAAY,GAAK,EAAE,UACrB,EAAE,UAAY,EAAE,UAAY,EAC5B,EAAE,WAAa,CAAC,CAAG,IAAE,UAAY,GAAY,GAAK,IAElD,EAAE,OAAS,GAAI,YAAW,EAAE,OAAS,CAAC,EACtC,EAAE,KAAO,GAAI,aAAY,EAAE,SAAS,EACpC,EAAE,KAAO,GAAI,aAAY,EAAE,MAAM,EAKjC,EAAE,YAAc,GAAM,EAAW,EAEjC,EAAE,iBAAmB,EAAE,YAAc,EAIrC,EAAE,YAAc,GAAI,YAAW,EAAE,gBAAgB,EAIjD,EAAE,MAAQ,EAAI,EAAE,YAGhB,EAAE,MAAS,GAAI,GAAK,EAAE,YAEtB,EAAE,MAAQ,EACV,EAAE,SAAW,EACb,EAAE,OAAS,EAEJ,GAAa,CAAI,CAC1B,EAEM,GAAc,CAAC,EAAM,IAElB,GAAa,EAAM,EAAO,GAAc,GAAa,GAAe,EAAoB,EAI3F,GAAY,CAAC,EAAM,IAAU,CAEjC,GAAI,GAAK,EAET,GAAI,CAAC,GAAQ,CAAC,EAAK,OACjB,EAAQ,IAAa,EAAQ,EAC7B,MAAO,GAAO,GAAI,EAAM,EAAgB,EAAI,GAG9C,KAAM,GAAI,EAAK,MAEf,GAAI,CAAC,EAAK,QACL,CAAC,EAAK,OAAS,EAAK,WAAa,GACjC,EAAE,SAAW,IAAgB,IAAU,GAC1C,MAAO,IAAI,EAAO,EAAK,YAAc,EAAK,GAAgB,EAAgB,EAG5E,EAAE,KAAO,EACT,KAAM,GAAY,EAAE,WAIpB,GAHA,EAAE,WAAa,EAGX,EAAE,SAAW,GAEf,GAAI,EAAE,OAAS,EACb,EAAK,MAAQ,EACb,GAAS,EAAG,EAAE,EACd,GAAS,EAAG,GAAG,EACf,GAAS,EAAG,CAAC,EACb,CAAK,CAAE,OAaL,IAAS,EAAI,GAAE,OAAO,KAAO,EAAI,GACpB,GAAE,OAAO,KAAO,EAAI,GACpB,CAAC,EAAE,OAAO,MAAY,EAAJ,GAClB,CAAC,EAAE,OAAO,KAAW,EAAJ,GACjB,CAAC,EAAE,OAAO,QAAc,GAAJ,EACzC,EACQ,GAAS,EAAG,EAAE,OAAO,KAAO,GAAI,EAChC,GAAS,EAAI,EAAE,OAAO,MAAQ,EAAK,GAAI,EACvC,GAAS,EAAI,EAAE,OAAO,MAAQ,GAAM,GAAI,EACxC,GAAS,EAAI,EAAE,OAAO,MAAQ,GAAM,GAAI,EACxC,GAAS,EAAG,EAAE,QAAU,EAAI,EACf,EAAE,UAAY,IAAkB,EAAE,MAAQ,EAC1C,EAAI,CAAE,EACnB,GAAS,EAAG,EAAE,OAAO,GAAK,GAAI,EAC1B,EAAE,OAAO,OAAS,EAAE,OAAO,MAAM,QACnC,IAAS,EAAG,EAAE,OAAO,MAAM,OAAS,GAAI,EACxC,GAAS,EAAI,EAAE,OAAO,MAAM,QAAU,EAAK,GAAI,GAE7C,EAAE,OAAO,MACX,GAAK,MAAQ,GAAQ,EAAK,MAAO,EAAE,YAAa,EAAE,QAAS,CAAC,GAE9D,EAAE,QAAU,EACZ,EAAE,OAAS,IAlCX,IAAS,EAAG,CAAC,EACb,GAAS,EAAG,CAAC,EACb,GAAS,EAAG,CAAC,EACb,GAAS,EAAG,CAAC,EACb,GAAS,EAAG,CAAC,EACb,GAAS,EAAG,EAAE,QAAU,EAAI,EACf,EAAE,UAAY,IAAkB,EAAE,MAAQ,EAC1C,EAAI,CAAE,EACnB,GAAS,EAAG,EAAO,EACnB,EAAE,OAAS,QA6Bf,CACE,GAAI,GAAU,GAAiB,GAAE,OAAS,GAAM,IAAO,EACnD,EAAc,GAElB,CAAI,CAAE,UAAY,IAAkB,EAAE,MAAQ,EAC5C,EAAc,EACT,CAAI,CAAE,MAAQ,EACnB,EAAc,EACT,CAAI,CAAE,QAAU,EACrB,EAAc,EAEd,EAAc,EAEhB,GAAW,GAAe,EACtB,EAAE,WAAa,GAAK,IAAU,IAClC,GAAU,GAAM,EAAS,GAEzB,EAAE,OAAS,GACX,GAAY,EAAG,CAAM,EAGjB,EAAE,WAAa,GACjB,IAAY,EAAG,EAAK,QAAU,EAAE,EAChC,GAAY,EAAG,EAAK,MAAQ,KAAM,GAEpC,EAAK,MAAQ,CACd,CAIH,GAAI,EAAE,SAAW,GACf,GAAI,EAAE,OAAO,MAAqB,CAGhC,IAFA,EAAM,EAAE,QAED,EAAE,QAAW,GAAE,OAAO,MAAM,OAAS,QACtC,IAAE,UAAY,EAAE,kBACd,GAAE,OAAO,MAAQ,EAAE,QAAU,GAC/B,GAAK,MAAQ,GAAQ,EAAK,MAAO,EAAE,YAAa,EAAE,QAAU,EAAK,CAAG,GAEtE,GAAc,CAAI,EAClB,EAAM,EAAE,QACJ,EAAE,UAAY,EAAE,oBAItB,GAAS,EAAG,EAAE,OAAO,MAAM,EAAE,SAAW,GAAI,EAC5C,EAAE,UAEJ,CAAI,CAAE,OAAO,MAAQ,EAAE,QAAU,GAC/B,GAAK,MAAQ,GAAQ,EAAK,MAAO,EAAE,YAAa,EAAE,QAAU,EAAK,CAAG,GAElE,EAAE,UAAY,EAAE,OAAO,MAAM,QAC/B,GAAE,QAAU,EACZ,EAAE,OAAS,GAEd,KAEC,GAAE,OAAS,GAGf,GAAI,EAAE,SAAW,GACf,GAAI,EAAE,OAAO,KAAoB,CAC/B,EAAM,EAAE,QAGR,EAAG,CACD,GAAI,EAAE,UAAY,EAAE,kBACd,GAAE,OAAO,MAAQ,EAAE,QAAU,GAC/B,GAAK,MAAQ,GAAQ,EAAK,MAAO,EAAE,YAAa,EAAE,QAAU,EAAK,CAAG,GAEtE,GAAc,CAAI,EAClB,EAAM,EAAE,QACJ,EAAE,UAAY,EAAE,kBAAkB,CACpC,EAAM,EACN,KACD,CAGH,CAAI,CAAE,QAAU,EAAE,OAAO,KAAK,OAC5B,EAAM,EAAE,OAAO,KAAK,WAAW,EAAE,SAAS,EAAI,IAE9C,EAAM,EAER,GAAS,EAAG,CAAG,CACvB,OAAe,IAAQ,GAEjB,CAAI,CAAE,OAAO,MAAQ,EAAE,QAAU,GAC/B,GAAK,MAAQ,GAAQ,EAAK,MAAO,EAAE,YAAa,EAAE,QAAU,EAAK,CAAG,GAElE,IAAQ,GACV,GAAE,QAAU,EACZ,EAAE,OAAS,GAEd,KAEC,GAAE,OAAS,GAGf,GAAI,EAAE,SAAW,GACf,GAAI,EAAE,OAAO,QAAuB,CAClC,EAAM,EAAE,QAGR,EAAG,CACD,GAAI,EAAE,UAAY,EAAE,kBACd,GAAE,OAAO,MAAQ,EAAE,QAAU,GAC/B,GAAK,MAAQ,GAAQ,EAAK,MAAO,EAAE,YAAa,EAAE,QAAU,EAAK,CAAG,GAEtE,GAAc,CAAI,EAClB,EAAM,EAAE,QACJ,EAAE,UAAY,EAAE,kBAAkB,CACpC,EAAM,EACN,KACD,CAGH,CAAI,CAAE,QAAU,EAAE,OAAO,QAAQ,OAC/B,EAAM,EAAE,OAAO,QAAQ,WAAW,EAAE,SAAS,EAAI,IAEjD,EAAM,EAER,GAAS,EAAG,CAAG,CACvB,OAAe,IAAQ,GAEjB,CAAI,CAAE,OAAO,MAAQ,EAAE,QAAU,GAC/B,GAAK,MAAQ,GAAQ,EAAK,MAAO,EAAE,YAAa,EAAE,QAAU,EAAK,CAAG,GAElE,IAAQ,GACV,GAAE,OAAS,GAEd,KAEC,GAAE,OAAS,GAsBf,GAnBI,EAAE,SAAW,IACf,CAAI,EAAE,OAAO,KACP,GAAE,QAAU,EAAI,EAAE,kBACpB,GAAc,CAAI,EAEhB,EAAE,QAAU,GAAK,EAAE,kBACrB,IAAS,EAAG,EAAK,MAAQ,GAAI,EAC7B,GAAS,EAAI,EAAK,OAAS,EAAK,GAAI,EACpC,EAAK,MAAQ,EACb,EAAE,OAAS,KAIb,EAAE,OAAS,IAMX,EAAE,UAAY,GAEhB,GADA,GAAc,CAAI,EACd,EAAK,YAAc,EAOrB,SAAE,WAAa,GACR,WAOA,EAAK,WAAa,GAAK,GAAK,CAAK,GAAK,GAAK,CAAS,GAC7D,IAAU,GACV,MAAO,IAAI,EAAM,EAAa,EAIhC,GAAI,EAAE,SAAW,IAAgB,EAAK,WAAa,EACjD,MAAO,IAAI,EAAM,EAAa,EAKhC,GAAI,EAAK,WAAa,GAAK,EAAE,YAAc,GACxC,IAAU,IAAgB,EAAE,SAAW,GAAe,CACvD,GAAI,GAAU,EAAE,WAAa,GAAkB,GAAa,EAAG,CAAK,EACjE,EAAE,WAAa,GAAQ,GAAY,EAAG,CAAK,EAC1C,GAAoB,EAAE,OAAO,KAAK,EAAG,CAAK,EAK9C,GAHI,KAAW,IAAqB,IAAW,KAC7C,GAAE,OAAS,IAET,IAAW,IAAgB,IAAW,GACxC,MAAI,GAAK,YAAc,GACrB,GAAE,WAAa,IAGV,GAST,GAAI,IAAW,IACb,CAAI,IAAU,GACZ,GAAU,CAAC,EAEJ,IAAU,IAEjB,IAAiB,EAAG,EAAG,EAAG,EAAK,EAI3B,IAAU,IAEZ,IAAK,EAAE,IAAI,EAEP,EAAE,YAAc,GAClB,GAAE,SAAW,EACb,EAAE,YAAc,EAChB,EAAE,OAAS,KAIjB,GAAc,CAAI,EACd,EAAK,YAAc,GACrB,SAAE,WAAa,GACR,EAGZ,CAID,MAAI,KAAU,GAAqB,GAC/B,EAAE,MAAQ,EAAY,GAG1B,CAAI,EAAE,OAAS,EACb,IAAS,EAAG,EAAK,MAAQ,GAAI,EAC7B,GAAS,EAAI,EAAK,OAAS,EAAK,GAAI,EACpC,GAAS,EAAI,EAAK,OAAS,GAAM,GAAI,EACrC,GAAS,EAAI,EAAK,OAAS,GAAM,GAAI,EACrC,GAAS,EAAG,EAAK,SAAW,GAAI,EAChC,GAAS,EAAI,EAAK,UAAY,EAAK,GAAI,EACvC,GAAS,EAAI,EAAK,UAAY,GAAM,GAAI,EACxC,GAAS,EAAI,EAAK,UAAY,GAAM,GAAI,GAIxC,IAAY,EAAG,EAAK,QAAU,EAAE,EAChC,GAAY,EAAG,EAAK,MAAQ,KAAM,GAGpC,GAAc,CAAI,EAId,EAAE,KAAO,GAAK,GAAE,KAAO,CAAC,EAAE,MAEvB,EAAE,UAAY,EAAI,GAAS,GACpC,EAGM,GAAa,CAAC,EAAS,CAE3B,GAAI,CAAC,GAAqB,CAAC,EAAK,MAC9B,MAAO,IAGT,KAAM,GAAS,EAAK,MAAM,OAC1B,MAAI,KAAW,IACb,IAAW,IACX,IAAW,IACX,IAAW,IACX,IAAW,IACX,IAAW,IACX,IAAW,GAEJ,GAAI,EAAM,EAAgB,EAGnC,GAAK,MAAQ,KAEN,IAAW,GAAa,GAAI,EAAM,EAAc,EAAI,GAC7D,EAOM,GAAuB,CAAC,EAAM,IAAe,CAEjD,GAAI,GAAa,EAAW,OAE5B,GAAI,CAAC,GAAqB,CAAC,EAAK,MAC9B,MAAO,IAGT,KAAM,GAAI,EAAK,MACT,EAAO,EAAE,KAEf,GAAI,IAAS,GAAM,IAAS,GAAK,EAAE,SAAW,IAAe,EAAE,UAC7D,MAAO,IAYT,GARI,IAAS,GAEX,GAAK,MAAQ,GAAU,EAAK,MAAO,EAAY,EAAY,CAAC,GAG9D,EAAE,KAAO,EAGL,GAAc,EAAE,OAAQ,CAC1B,CAAI,GAAS,GAEX,IAAK,EAAE,IAAI,EACX,EAAE,SAAW,EACb,EAAE,YAAc,EAChB,EAAE,OAAS,GAIb,GAAI,GAAU,GAAI,YAAW,EAAE,MAAM,EACrC,EAAQ,IAAI,EAAW,SAAS,EAAa,EAAE,OAAQ,CAAU,EAAG,CAAC,EACrE,EAAa,EACb,EAAa,EAAE,MAChB,CAED,KAAM,GAAQ,EAAK,SACb,EAAO,EAAK,QACZ,EAAQ,EAAK,MAKnB,IAJA,EAAK,SAAW,EAChB,EAAK,QAAU,EACf,EAAK,MAAQ,EACb,GAAY,CAAC,EACN,EAAE,WAAa,IAAW,CAC/B,GAAI,GAAM,EAAE,SACR,EAAI,EAAE,UAAa,IAAY,GACnC,EAEE,GAAE,MAAQA,GAAK,EAAG,EAAE,MAAO,EAAE,OAAO,EAAM,GAAY,EAAE,EAExD,EAAE,KAAK,EAAM,EAAE,QAAU,EAAE,KAAK,EAAE,OAElC,EAAE,KAAK,EAAE,OAAS,EAClB,UACO,EAAE,GACX,EAAE,SAAW,EACb,EAAE,UAAY,GAAY,EAC1B,GAAY,CAAC,CACd,CACD,SAAE,UAAY,EAAE,UAChB,EAAE,YAAc,EAAE,SAClB,EAAE,OAAS,EAAE,UACb,EAAE,UAAY,EACd,EAAE,aAAe,EAAE,YAAc,GAAY,EAC7C,EAAE,gBAAkB,EACpB,EAAK,QAAU,EACf,EAAK,MAAQ,EACb,EAAK,SAAW,EAChB,EAAE,KAAO,EACF,EACT,EAGA,GAAI,IAAgB,GAChB,GAAiB,GACjB,GAAiB,GACjB,GAAqB,GACrB,GAAqB,GACrB,GAAc,GACd,GAAe,GACf,GAAyB,GACzB,GAAc,qCAWd,GAAc,CACjB,YAAa,GACb,aAAc,GACd,aAAc,GACd,iBAAkB,GAClB,iBAAkB,GAClB,QAAS,GACT,WAAY,GACZ,qBAAsB,GACtB,YAAa,EACd,EAEA,KAAM,IAAO,CAAC,EAAK,IACV,OAAO,UAAU,eAAe,KAAK,EAAK,CAAG,EAGtD,GAAI,IAAS,SAAU,EAAkC,CACvD,KAAM,GAAU,MAAM,UAAU,MAAM,KAAK,UAAW,CAAC,EACvD,KAAO,EAAQ,QAAQ,CACrB,KAAM,GAAS,EAAQ,QACvB,GAAI,EAAC,EAEL,IAAI,MAAO,IAAW,SACpB,KAAM,IAAI,WAAU,EAAS,oBAAoB,EAGnD,SAAW,KAAK,GACd,CAAI,EAAK,EAAQ,CAAC,GAChB,GAAI,GAAK,EAAO,IAGrB,CAED,MAAO,EACT,EAII,GAAgB,CAAC,EAAW,CAE9B,GAAI,GAAM,EAEV,OAAS,GAAI,EAAG,EAAI,EAAO,OAAQ,EAAI,EAAG,IACxC,GAAO,EAAO,GAAG,OAInB,KAAM,GAAS,GAAI,YAAW,CAAG,EAEjC,OAAS,GAAI,EAAG,EAAM,EAAG,EAAI,EAAO,OAAQ,EAAI,EAAG,IAAK,CACtD,GAAI,GAAQ,EAAO,GACnB,EAAO,IAAI,EAAO,CAAG,EACrB,GAAO,EAAM,MACd,CAED,MAAO,EACT,EAEI,GAAS,CACZ,OAAQ,GACR,cAAe,EAChB,EAUA,GAAI,IAAmB,GAEvB,GAAI,CAAE,OAAO,aAAa,MAAM,KAAM,GAAI,YAAW,CAAC,CAAC,CAAI,MAAC,CAAa,GAAmB,EAAQ,CAMpG,KAAM,IAAW,GAAI,YAAW,GAAG,EACnC,OAAS,GAAI,EAAG,EAAI,IAAK,IACvB,GAAS,GAAM,GAAK,IAAM,EAAI,GAAK,IAAM,EAAI,GAAK,IAAM,EAAI,GAAK,IAAM,EAAI,GAAK,IAAM,EAAI,EAE5F,GAAS,KAAO,GAAS,KAAO,EAIhC,GAAI,IAAa,CAAC,EAAQ,CACxB,GAAI,MAAO,cAAgB,YAAc,YAAY,UAAU,OAC7D,MAAO,IAAI,aAAW,EAAG,OAAO,CAAG,EAGrC,GAAI,GAAK,EAAG,EAAI,EAAO,EAAG,EAAU,EAAI,OAAQ,EAAU,EAG1D,IAAK,EAAQ,EAAG,EAAQ,EAAS,IAC/B,EAAI,EAAI,WAAW,CAAK,EACnB,GAAI,SAAY,OAAW,EAAQ,EAAI,GAC1C,GAAK,EAAI,WAAW,EAAQ,CAAC,EACxB,GAAK,SAAY,OACpB,GAAI,MAAY,GAAI,OAAW,IAAO,GAAK,OAC3C,MAGJ,GAAW,EAAI,IAAO,EAAI,EAAI,KAAQ,EAAI,EAAI,MAAU,EAAI,EAO9D,IAHA,EAAM,GAAI,YAAW,CAAO,EAGvB,EAAI,EAAG,EAAQ,EAAG,EAAI,EAAS,IAClC,EAAI,EAAI,WAAW,CAAK,EACnB,GAAI,SAAY,OAAW,EAAQ,EAAI,GAC1C,GAAK,EAAI,WAAW,EAAQ,CAAC,EACxB,GAAK,SAAY,OACpB,GAAI,MAAY,GAAI,OAAW,IAAO,GAAK,OAC3C,MAGJ,CAAI,CAAI,IAEN,EAAI,KAAO,EACN,CAAI,CAAI,KAEb,GAAI,KAAO,IAAQ,IAAM,EACzB,EAAI,KAAO,IAAQ,EAAI,IAClB,CAAI,CAAI,MAEb,GAAI,KAAO,IAAQ,IAAM,GACzB,EAAI,KAAO,IAAQ,IAAM,EAAI,GAC7B,EAAI,KAAO,IAAQ,EAAI,IAGvB,GAAI,KAAO,IAAQ,IAAM,GACzB,EAAI,KAAO,IAAQ,IAAM,GAAK,GAC9B,EAAI,KAAO,IAAQ,IAAM,EAAI,GAC7B,EAAI,KAAO,IAAQ,EAAI,IAI3B,MAAO,EACT,EAGA,KAAM,IAAgB,CAAC,EAAK,IAAQ,CAIlC,GAAI,EAAM,OACJ,EAAI,UAAY,GAClB,MAAO,QAAO,aAAa,MAAM,KAAM,EAAI,SAAW,EAAM,EAAM,EAAI,SAAS,EAAG,CAAG,CAAC,EAI1F,GAAI,GAAS,GACb,OAAS,GAAI,EAAG,EAAI,EAAK,IACvB,GAAU,OAAO,aAAa,EAAI,EAAE,EAEtC,MAAO,EACT,EAIA,GAAI,IAAa,CAAC,EAAK,IAAQ,CAC7B,KAAM,GAAM,GAAO,EAAI,OAEvB,GAAI,MAAO,cAAgB,YAAc,YAAY,UAAU,OAC7D,MAAO,IAAI,aAAa,EAAC,OAAO,EAAI,SAAS,EAAG,CAAG,CAAC,EAGtD,GAAI,GAAG,EAKP,KAAM,GAAW,GAAI,OAAM,EAAM,CAAC,EAElC,IAAK,EAAM,EAAG,EAAI,EAAG,EAAI,GAAM,CAC7B,GAAI,GAAI,EAAI,KAEZ,GAAI,EAAI,IAAM,CAAE,EAAS,KAAS,EAAG,QAAW,CAEhD,GAAI,GAAQ,GAAS,GAErB,GAAI,EAAQ,EAAG,CAAE,EAAS,KAAS,MAAQ,GAAK,EAAQ,EAAG,QAAW,CAKtE,IAFA,GAAK,IAAU,EAAI,GAAO,IAAU,EAAI,GAAO,EAExC,EAAQ,GAAK,EAAI,GACtB,EAAK,GAAK,EAAM,EAAI,KAAO,GAC3B,IAIF,GAAI,EAAQ,EAAG,CAAE,EAAS,KAAS,MAAQ,QAAW,CAEtD,CAAI,CAAI,MACN,EAAS,KAAS,EAElB,IAAK,MACL,EAAS,KAAS,MAAW,GAAK,GAAM,KACxC,EAAS,KAAS,MAAU,EAAI,KAEnC,CAED,MAAO,IAAc,EAAU,CAAG,CACpC,EASI,GAAa,CAAC,EAAK,IAAQ,CAE7B,EAAM,GAAO,EAAI,OACb,EAAM,EAAI,QAAU,GAAM,EAAI,QAGlC,GAAI,GAAM,EAAM,EAChB,KAAO,GAAO,GAAM,GAAI,GAAO,OAAU,KAAQ,IAQjD,MAJI,GAAM,GAIN,IAAQ,EAAY,EAEhB,EAAM,GAAS,EAAI,IAAQ,EAAO,EAAM,CAClD,EAEI,GAAU,CACb,WAAY,GACZ,WAAY,GACZ,WAAY,EACb,EAqBA,aAAmB,CAEjB,KAAK,MAAQ,KACb,KAAK,QAAU,EAEf,KAAK,SAAW,EAEhB,KAAK,SAAW,EAEhB,KAAK,OAAS,KACd,KAAK,SAAW,EAEhB,KAAK,UAAY,EAEjB,KAAK,UAAY,EAEjB,KAAK,IAAM,GAEX,KAAK,MAAQ,KAEb,KAAK,UAAY,EAEjB,KAAK,MAAQ,CACf,CAEA,GAAI,IAAU,GAEd,KAAM,IAAa,OAAO,UAAU,SAK9B,CACJ,WAAY,GAAc,gBAAc,gBAAc,SAAU,GAChE,KAAM,GAAQ,aAAc,GAC5B,yBACA,sBACA,WAAY,IACV,GA0FJ,YAAmB,EAAS,CAC1B,KAAK,QAAU,GAAO,OAAO,CAC3B,MAAO,GACP,OAAQ,GACR,UAAW,MACX,WAAY,GACZ,SAAU,EACV,SAAU,EACd,EAAK,GAAW,EAAE,EAEhB,GAAI,GAAM,KAAK,QAEf,CAAI,CAAI,KAAQ,EAAI,WAAa,EAC/B,EAAI,WAAa,CAAC,EAAI,WAGf,EAAI,MAAS,EAAI,WAAa,GAAO,EAAI,WAAa,IAC7D,GAAI,YAAc,IAGpB,KAAK,IAAS,EACd,KAAK,IAAS,GACd,KAAK,MAAS,GACd,KAAK,OAAS,GAEd,KAAK,KAAO,GAAI,IAChB,KAAK,KAAK,UAAY,EAEtB,GAAI,GAAS,GAAY,aACvB,KAAK,KACL,EAAI,MACJ,EAAI,OACJ,EAAI,WACJ,EAAI,SACJ,EAAI,QACR,EAEE,GAAI,IAAW,GACb,KAAM,IAAI,OAAM,GAAS,EAAO,EAOlC,GAJI,EAAI,QACN,GAAY,iBAAiB,KAAK,KAAM,EAAI,MAAM,EAGhD,EAAI,WAAY,CAClB,GAAI,GAaJ,GAXA,CAAI,KAAO,GAAI,YAAe,SAE5B,EAAO,GAAQ,WAAW,EAAI,UAAU,EACnC,CAAI,EAAW,KAAK,EAAI,UAAU,IAAM,uBAC7C,EAAO,GAAI,YAAW,EAAI,UAAU,EAEpC,EAAO,EAAI,WAGb,EAAS,GAAY,qBAAqB,KAAK,KAAM,CAAI,EAErD,IAAW,GACb,KAAM,IAAI,OAAM,GAAS,EAAO,EAGlC,KAAK,UAAY,EAClB,CACH,CAwBA,GAAU,UAAU,KAAO,SAAU,EAAM,EAAY,CACrD,KAAM,GAAO,KAAK,KACZ,EAAY,KAAK,QAAQ,UAC/B,GAAI,GAAQ,EAEZ,GAAI,KAAK,MAAS,MAAO,GAkBzB,IAhBA,CAAI,GAAe,CAAC,CAAC,EAAY,EAAc,EAC1C,EAAc,IAAe,GAAO,GAAa,GAGtD,CAAI,KAAO,IAAS,SAElB,EAAK,MAAQ,GAAQ,WAAW,CAAI,EAC/B,CAAI,EAAW,KAAK,CAAI,IAAM,uBACnC,EAAK,MAAQ,GAAI,YAAW,CAAI,EAEhC,EAAK,MAAQ,EAGf,EAAK,QAAU,EACf,EAAK,SAAW,EAAK,MAAM,SAElB,CAQP,GAPI,EAAK,YAAc,GACrB,GAAK,OAAS,GAAI,YAAW,CAAS,EACtC,EAAK,SAAW,EAChB,EAAK,UAAY,GAId,KAAgB,IAAgB,IAAgB,KAAiB,EAAK,WAAa,EAAG,CACzF,KAAK,OAAO,EAAK,OAAO,SAAS,EAAG,EAAK,QAAQ,CAAC,EAClD,EAAK,UAAY,EACjB,QACD,CAKD,GAHA,EAAS,GAAY,QAAQ,EAAM,CAAW,EAG1C,IAAW,GACb,MAAI,GAAK,SAAW,GAClB,KAAK,OAAO,EAAK,OAAO,SAAS,EAAG,EAAK,QAAQ,CAAC,EAEpD,EAAS,GAAY,WAAW,KAAK,IAAI,EACzC,KAAK,MAAM,CAAM,EACjB,KAAK,MAAQ,GACN,IAAW,GAIpB,GAAI,EAAK,YAAc,EAAG,CACxB,KAAK,OAAO,EAAK,MAAM,EACvB,QACD,CAGD,GAAI,EAAc,GAAK,EAAK,SAAW,EAAG,CACxC,KAAK,OAAO,EAAK,OAAO,SAAS,EAAG,EAAK,QAAQ,CAAC,EAClD,EAAK,UAAY,EACjB,QACD,CAED,GAAI,EAAK,WAAa,EAAG,KAC1B,CAED,MAAO,EACT,EAUA,GAAU,UAAU,OAAS,SAAU,EAAO,CAC5C,KAAK,OAAO,KAAK,CAAK,CACxB,EAYA,GAAU,UAAU,MAAQ,SAAU,EAAQ,CAE5C,CAAI,GAAW,IACb,MAAK,OAAS,GAAO,cAAc,KAAK,MAAM,GAEhD,KAAK,OAAS,GACd,KAAK,IAAM,EACX,KAAK,IAAM,KAAK,KAAK,GACvB,EAmCA,YAAmB,EAAO,EAAS,CACjC,KAAM,GAAW,GAAI,IAAU,CAAO,EAKtC,GAHA,EAAS,KAAK,EAAO,EAAI,EAGrB,EAAS,IAAO,KAAM,GAAS,KAAO,GAAS,EAAS,KAE5D,MAAO,GAAS,MAClB,CAWA,YAAsB,EAAO,EAAS,CACpC,SAAU,GAAW,GACrB,EAAQ,IAAM,GACP,GAAU,EAAO,CAAO,CACjC,CAWA,YAAgB,EAAO,EAAS,CAC9B,SAAU,GAAW,GACrB,EAAQ,KAAO,GACR,GAAU,EAAO,CAAO,CACjC,CAGA,GAAI,IAAc,GACd,GAAY,GACZ,GAAiB,GACjB,GAAW,GACX,GAAc,GAEd,GAAc,CACjB,QAAS,GACT,QAAS,GACT,WAAY,GACZ,KAAM,GACN,UAAW,EACZ,EAsBA,KAAM,IAAQ,GACR,GAAS,GAqCf,GAAI,IAAU,SAAsB,EAAM,EAAO,CAC/C,GAAI,GACA,EACA,EACA,EACA,EAEA,EAEA,EACA,EACA,EAEA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EAEA,EACA,EACA,EACA,EAGA,EAAO,EAGX,KAAM,GAAQ,EAAK,MAEnB,EAAM,EAAK,QACX,EAAQ,EAAK,MACb,EAAO,EAAO,GAAK,SAAW,GAC9B,EAAO,EAAK,SACZ,EAAS,EAAK,OACd,EAAM,EAAQ,GAAQ,EAAK,WAC3B,EAAM,EAAQ,GAAK,UAAY,KAE/B,EAAO,EAAM,KAEb,EAAQ,EAAM,MACd,EAAQ,EAAM,MACd,EAAQ,EAAM,MACd,EAAW,EAAM,OACjB,EAAO,EAAM,KACb,EAAO,EAAM,KACb,EAAQ,EAAM,QACd,EAAQ,EAAM,SACd,EAAS,IAAK,EAAM,SAAW,EAC/B,EAAS,IAAK,EAAM,UAAY,EAMhC,EACA,EAAG,CACD,CAAI,CAAO,IACT,IAAQ,EAAM,MAAU,EACxB,GAAQ,EACR,GAAQ,EAAM,MAAU,EACxB,GAAQ,GAGV,EAAO,EAAM,EAAO,GAEpB,EACA,OAAS,CAKP,GAJA,EAAK,IAAS,GACd,KAAU,EACV,GAAQ,EACR,EAAM,IAAS,GAAM,IACjB,IAAO,EAIT,EAAO,KAAU,EAAO,cAEjB,EAAK,GAAI,CAChB,EAAM,EAAO,MACb,GAAM,GACF,GACE,GAAO,GACT,IAAQ,EAAM,MAAU,EACxB,GAAQ,GAEV,GAAO,EAAS,IAAK,GAAM,EAC3B,KAAU,EACV,GAAQ,GAGN,EAAO,IACT,IAAQ,EAAM,MAAU,EACxB,GAAQ,EACR,GAAQ,EAAM,MAAU,EACxB,GAAQ,GAEV,EAAO,EAAM,EAAO,GAEpB,EACA,OAAS,CAMP,GALA,EAAK,IAAS,GACd,KAAU,EACV,GAAQ,EACR,EAAM,IAAS,GAAM,IAEjB,EAAK,GAAI,CAaX,GAZA,EAAO,EAAO,MACd,GAAM,GACF,EAAO,GACT,IAAQ,EAAM,MAAU,EACxB,GAAQ,EACJ,EAAO,GACT,IAAQ,EAAM,MAAU,EACxB,GAAQ,IAGZ,GAAQ,EAAS,IAAK,GAAM,EAExB,EAAO,EAAM,CACf,EAAK,IAAM,gCACX,EAAM,KAAO,GACb,OACD,CAMD,GAJA,KAAU,EACV,GAAQ,EAER,EAAK,EAAO,EACR,EAAO,EAAI,CAEb,GADA,EAAK,EAAO,EACR,EAAK,GACH,EAAM,KAAM,CACd,EAAK,IAAM,gCACX,EAAM,KAAO,GACb,OACD,CA0BH,GAFA,EAAO,EACP,EAAc,EACV,IAAU,GAEZ,GADA,GAAQ,EAAQ,EACZ,EAAK,EAAK,CACZ,GAAO,EACP,EACE,GAAO,KAAU,EAAS,WACnB,EAAE,GACX,EAAO,EAAO,EACd,EAAc,CACf,UAEM,EAAQ,GAGf,GAFA,GAAQ,EAAQ,EAAQ,EACxB,GAAM,EACF,EAAK,EAAK,CACZ,GAAO,EACP,EACE,GAAO,KAAU,EAAS,WACnB,EAAE,GAEX,GADA,EAAO,EACH,EAAQ,EAAK,CACf,EAAK,EACL,GAAO,EACP,EACE,GAAO,KAAU,EAAS,WACnB,EAAE,GACX,EAAO,EAAO,EACd,EAAc,CACf,CACF,UAGD,GAAQ,EAAQ,EACZ,EAAK,EAAK,CACZ,GAAO,EACP,EACE,GAAO,KAAU,EAAS,WACnB,EAAE,GACX,EAAO,EAAO,EACd,EAAc,CACf,CAEH,KAAO,EAAM,GACX,EAAO,KAAU,EAAY,KAC7B,EAAO,KAAU,EAAY,KAC7B,EAAO,KAAU,EAAY,KAC7B,GAAO,EAET,CAAI,EACF,GAAO,KAAU,EAAY,KACzB,EAAM,GACR,GAAO,KAAU,EAAY,MAGlC,KACI,CACH,EAAO,EAAO,EACd,EACE,GAAO,KAAU,EAAO,KACxB,EAAO,KAAU,EAAO,KACxB,EAAO,KAAU,EAAO,KACxB,GAAO,QACA,EAAM,GACf,CAAI,EACF,GAAO,KAAU,EAAO,KACpB,EAAM,GACR,GAAO,KAAU,EAAO,MAG7B,CACF,SACS,GAAK,MAAQ,EAAG,CACxB,EAAO,EAAO,GAAO,OAAuB,GAAS,IAAK,GAAM,IAChE,UACD,KACI,CACH,EAAK,IAAM,wBACX,EAAM,KAAO,GACb,OACD,CAED,KACD,CACF,SACS,GAAK,MAAQ,EAAG,CACxB,EAAO,EAAO,GAAO,OAAuB,GAAS,IAAK,GAAM,IAChE,UACD,SACQ,EAAK,GAAI,CAEhB,EAAM,KAAO,GACb,OACD,KACI,CACH,EAAK,IAAM,8BACX,EAAM,KAAO,GACb,OACD,CAED,KACD,CACF,OAAQ,EAAM,GAAQ,EAAO,GAG9B,EAAM,GAAQ,EACd,GAAO,EACP,GAAQ,GAAO,EACf,GAAS,IAAK,GAAQ,EAGtB,EAAK,QAAU,EACf,EAAK,SAAW,EAChB,EAAK,SAAY,EAAM,EAAO,EAAK,GAAO,GAAO,EAAK,GAAM,GAC5D,EAAK,UAAa,EAAO,EAAM,IAAO,GAAM,GAAQ,IAAO,GAAO,GAClE,EAAM,KAAO,EACb,EAAM,KAAO,CAEf,EAqBA,KAAM,IAAU,GACV,GAAgB,IAChB,GAAiB,IAGjB,GAAU,EACV,GAAS,EACT,GAAU,EAEV,GAAQ,GAAI,aAAY,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,CAC/D,CAAC,EAEK,GAAO,GAAI,YAAW,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,EAC1D,CAAC,EAEK,GAAQ,GAAI,aAAY,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,CAChC,CAAC,EAEK,GAAO,GAAI,YAAW,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,EACtB,CAAC,EAEK,GAAgB,CAAC,EAAM,EAAM,EAAY,EAAO,EAAO,EAAa,EAAM,IAChF,CACE,KAAM,GAAO,EAAK,KAGlB,GAAI,GAAM,EACN,EAAM,EACN,EAAM,EAAG,EAAM,EACf,EAAO,EACP,EAAO,EACP,EAAO,EACP,EAAO,EACP,EAAO,EACP,EAAO,EACP,EACA,EACA,EACA,EACA,EACA,EAAO,KACP,EAAa,EAEb,EACJ,KAAM,GAAQ,GAAI,aAAY,GAAU,CAAC,EACnC,EAAO,GAAI,aAAY,GAAU,CAAC,EACxC,GAAI,GAAQ,KACR,EAAc,EAEd,EAAW,EAAS,EAkCxB,IAAK,EAAM,EAAG,GAAO,GAAS,IAC5B,EAAM,GAAO,EAEf,IAAK,EAAM,EAAG,EAAM,EAAO,IACzB,EAAM,EAAK,EAAa,MAK1B,IADA,EAAO,EACF,EAAM,GAAS,GAAO,GACrB,EAAM,KAAS,EADS,IAC5B,CAKF,GAHI,EAAO,GACT,GAAO,GAEL,IAAQ,EAIV,SAAM,KAAkB,GAAK,GAAO,IAAM,GAAM,EAMhD,EAAM,KAAkB,GAAK,GAAO,IAAM,GAAM,EAEhD,EAAK,KAAO,EACL,EAET,IAAK,EAAM,EAAG,EAAM,GACd,EAAM,KAAS,EADI,IACvB,CAQF,IANI,EAAO,GACT,GAAO,GAIT,EAAO,EACF,EAAM,EAAG,GAAO,GAAS,IAG5B,GAFA,IAAS,EACT,GAAQ,EAAM,GACV,EAAO,EACT,MAAO,GAGX,GAAI,EAAO,GAAM,KAAS,IAAW,IAAQ,GAC3C,MAAO,GAKT,IADA,EAAK,GAAK,EACL,EAAM,EAAG,EAAM,GAAS,IAC3B,EAAK,EAAM,GAAK,EAAK,GAAO,EAAM,GAIpC,IAAK,EAAM,EAAG,EAAM,EAAO,IACzB,CAAI,CAAK,EAAa,KAAS,GAC7B,GAAK,EAAK,EAAK,EAAa,OAAW,GAmE3C,GA7BA,CAAI,GAAS,GACX,GAAO,EAAQ,EACf,EAAM,IAED,CAAI,GAAS,GAClB,GAAO,GACP,GAAc,IACd,EAAQ,GACR,GAAe,IACf,EAAM,KAGN,GAAO,GACP,EAAQ,GACR,EAAM,IAIR,EAAO,EACP,EAAM,EACN,EAAM,EACN,EAAO,EACP,EAAO,EACP,EAAO,EACP,EAAM,GACN,EAAO,GAAK,EACZ,EAAO,EAAO,EAGT,IAAS,IAAU,EAAO,IAC5B,IAAS,IAAW,EAAO,GAC5B,MAAO,GAIT,OAAS,CAEP,EAAY,EAAM,EAClB,CAAI,CAAK,GAAO,EACd,GAAU,EACV,EAAW,EAAK,IAEb,CAAI,CAAK,GAAO,EACnB,GAAU,EAAM,EAAc,EAAK,IACnC,EAAW,EAAK,EAAa,EAAK,KAGlC,GAAU,GAAK,GACf,EAAW,GAIb,EAAO,GAAM,EAAM,EACnB,EAAO,GAAK,EACZ,EAAM,EACN,EACE,IAAQ,EACR,EAAM,EAAQ,IAAQ,GAAQ,GAAS,GAAa,GAAO,GAAW,GAAM,EAAU,QAC/E,IAAS,GAIlB,IADA,EAAO,GAAM,EAAM,EACZ,EAAO,GACZ,IAAS,EAWX,GATA,CAAI,GAAS,EACX,IAAQ,EAAO,EACf,GAAQ,GAER,EAAO,EAIT,IACI,EAAE,EAAM,KAAS,EAAG,CACtB,GAAI,IAAQ,EAAO,MACnB,EAAM,EAAK,EAAa,EAAK,GAC9B,CAGD,GAAI,EAAM,GAAS,GAAO,KAAU,EAAK,CAYvC,IAVI,IAAS,GACX,GAAO,GAIT,GAAQ,EAGR,EAAO,EAAM,EACb,EAAO,GAAK,EACL,EAAO,EAAO,GACnB,IAAQ,EAAM,EAAO,GACjB,KAAQ,KACZ,IACA,IAAS,EAKX,GADA,GAAQ,GAAK,EACR,IAAS,IAAU,EAAO,IAC5B,IAAS,IAAW,EAAO,GAC5B,MAAO,GAIT,EAAM,EAAO,EAIb,EAAM,GAAQ,GAAQ,GAAO,GAAQ,GAAO,EAAO,EAAc,CAClE,CACF,CAKD,MAAI,KAAS,GAIX,GAAM,EAAO,GAAU,EAAM,GAAS,GAAO,IAAM,GAAK,GAK1D,EAAK,KAAO,EACL,CACT,EAGA,GAAI,IAAW,GA0Bf,KAAM,IAAQ,EACR,GAAO,EACP,GAAQ,EAKR,CACJ,SAAU,GAAY,WAAS,WAC/B,KAAM,GAAQ,aAAc,GAAgB,YAAa,GAAe,eAAgB,GAAkB,aAAc,GAAgB,YAAa,GAAe,eACpK,eACE,GAOK,GAAO,EACP,GAAQ,EACR,GAAO,EACP,GAAK,EACL,GAAQ,EACR,GAAQ,EACR,GAAO,EACPC,GAAU,EACV,GAAO,EACP,GAAS,GACT,GAAO,GACH,GAAO,GACP,GAAS,GACT,GAAS,GACT,GAAQ,GACR,GAAO,GACP,GAAQ,GACR,GAAU,GACV,GAAW,GACP,GAAO,GACP,GAAM,GACN,GAAS,GACT,GAAO,GACP,GAAU,GACV,GAAQ,GACR,GAAM,GACd,GAAQ,GACR,GAAS,GACT,GAAO,GACP,GAAM,GACN,GAAM,GACN,GAAO,GAMV,GAAc,IACd,GAAe,IAGf,GAAY,GAEZ,GAAY,GAGZ,GAAU,CAAC,EAEJ,KAAM,GAAM,KACb,KAAM,EAAK,OACX,IAAI,QAAW,GACf,IAAI,MAAS,IAIzB,aAAwB,CACtB,KAAK,KAAO,EACZ,KAAK,KAAO,GACZ,KAAK,KAAO,EACZ,KAAK,SAAW,GAChB,KAAK,MAAQ,EACb,KAAK,KAAO,EACZ,KAAK,MAAQ,EACb,KAAK,MAAQ,EAEb,KAAK,KAAO,KAGZ,KAAK,MAAQ,EACb,KAAK,MAAQ,EACb,KAAK,MAAQ,EACb,KAAK,MAAQ,EACb,KAAK,OAAS,KAGd,KAAK,KAAO,EACZ,KAAK,KAAO,EAGZ,KAAK,OAAS,EACd,KAAK,OAAS,EAGd,KAAK,MAAQ,EAGb,KAAK,QAAU,KACf,KAAK,SAAW,KAChB,KAAK,QAAU,EACf,KAAK,SAAW,EAGhB,KAAK,MAAQ,EACb,KAAK,KAAO,EACZ,KAAK,MAAQ,EACb,KAAK,KAAO,EACZ,KAAK,KAAO,KAEZ,KAAK,KAAO,GAAI,aAAY,GAAG,EAC/B,KAAK,KAAO,GAAI,aAAY,GAAG,EAO/B,KAAK,OAAS,KACd,KAAK,QAAU,KACf,KAAK,KAAO,EACZ,KAAK,KAAO,EACZ,KAAK,IAAM,CACb,CAGA,KAAM,IAAmB,CAAC,EAAS,CAEjC,GAAI,CAAC,GAAQ,CAAC,EAAK,MAAS,MAAO,IACnC,KAAM,GAAQ,EAAK,MACnB,SAAK,SAAW,EAAK,UAAY,EAAM,MAAQ,EAC/C,EAAK,IAAM,GACP,EAAM,MACR,GAAK,MAAQ,EAAM,KAAO,GAE5B,EAAM,KAAO,GACb,EAAM,KAAO,EACb,EAAM,SAAW,EACjB,EAAM,KAAO,MACb,EAAM,KAAO,KACb,EAAM,KAAO,EACb,EAAM,KAAO,EAEb,EAAM,QAAU,EAAM,OAAS,GAAI,YAAW,EAAW,EACzD,EAAM,SAAW,EAAM,QAAU,GAAI,YAAW,EAAY,EAE5D,EAAM,KAAO,EACb,EAAM,KAAO,GAEN,EACT,EAGM,GAAe,CAAC,EAAS,CAE7B,GAAI,CAAC,GAAQ,CAAC,EAAK,MAAS,MAAO,IACnC,KAAM,GAAQ,EAAK,MACnB,SAAM,MAAQ,EACd,EAAM,MAAQ,EACd,EAAM,MAAQ,EACP,GAAiB,CAAI,CAE9B,EAGM,GAAgB,CAAC,EAAM,IAAe,CAC1C,GAAI,GAGJ,GAAI,CAAC,GAAQ,CAAC,EAAK,MAAS,MAAO,IACnC,KAAM,GAAQ,EAAK,MAenB,MAZA,CAAI,EAAa,EACf,GAAO,EACP,EAAa,CAAC,GAGd,GAAQ,IAAc,GAAK,EACvB,EAAa,IACf,IAAc,KAKd,GAAe,GAAa,GAAK,EAAa,IACzC,GAEL,GAAM,SAAW,MAAQ,EAAM,QAAU,GAC3C,GAAM,OAAS,MAIjB,EAAM,KAAO,EACb,EAAM,MAAQ,EACP,GAAa,CAAI,EAC1B,EAGM,GAAe,CAAC,EAAM,IAAe,CAEzC,GAAI,CAAC,EAAQ,MAAO,IAGpB,KAAM,GAAQ,GAAI,IAIlB,EAAK,MAAQ,EACb,EAAM,OAAS,KACf,KAAM,GAAM,GAAc,EAAM,CAAU,EAC1C,MAAI,KAAQ,IACV,GAAK,MAAQ,MAER,CACT,EAGM,GAAc,CAAC,EAEZ,GAAa,EAAM,EAAS,EAcrC,GAAI,IAAS,GAET,GAAQ,GAGZ,KAAM,IAAc,CAAC,EAAU,CAG7B,GAAI,GAAQ,CACV,GAAS,GAAI,YAAW,GAAG,EAC3B,GAAU,GAAI,YAAW,EAAE,EAG3B,GAAI,GAAM,EACV,KAAO,EAAM,KAAO,EAAM,KAAK,KAAS,EACxC,KAAO,EAAM,KAAO,EAAM,KAAK,KAAS,EACxC,KAAO,EAAM,KAAO,EAAM,KAAK,KAAS,EACxC,KAAO,EAAM,KAAO,EAAM,KAAK,KAAS,EAMxC,IAJA,GAAS,GAAO,EAAM,KAAM,EAAG,IAAK,GAAU,EAAG,EAAM,KAAM,CAAE,KAAM,CAAG,GAGxE,EAAM,EACC,EAAM,IAAM,EAAM,KAAK,KAAS,EAEvC,GAAS,GAAO,EAAM,KAAM,EAAG,GAAM,GAAS,EAAG,EAAM,KAAM,CAAE,KAAM,CAAG,GAGxE,GAAS,EACV,CAED,EAAM,QAAU,GAChB,EAAM,QAAU,EAChB,EAAM,SAAW,GACjB,EAAM,SAAW,CACnB,EAiBM,GAAe,CAAC,EAAM,EAAK,EAAK,IAAS,CAE7C,GAAI,GACJ,KAAM,GAAQ,EAAK,MAGnB,MAAI,GAAM,SAAW,MACnB,GAAM,MAAQ,GAAK,EAAM,MACzB,EAAM,MAAQ,EACd,EAAM,MAAQ,EAEd,EAAM,OAAS,GAAI,YAAW,EAAM,KAAK,GAI3C,CAAI,EAAQ,EAAM,MAChB,GAAM,OAAO,IAAI,EAAI,SAAS,EAAM,EAAM,MAAO,CAAG,EAAG,CAAC,EACxD,EAAM,MAAQ,EACd,EAAM,MAAQ,EAAM,OAGpB,GAAO,EAAM,MAAQ,EAAM,MACvB,EAAO,GACT,GAAO,GAGT,EAAM,OAAO,IAAI,EAAI,SAAS,EAAM,EAAM,EAAM,EAAO,CAAI,EAAG,EAAM,KAAK,EACzE,GAAQ,EACR,CAAI,CAEF,GAAM,OAAO,IAAI,EAAI,SAAS,EAAM,EAAM,CAAG,EAAG,CAAC,EACjD,EAAM,MAAQ,EACd,EAAM,MAAQ,EAAM,OAGpB,GAAM,OAAS,EACX,EAAM,QAAU,EAAM,OAAS,GAAM,MAAQ,GAC7C,EAAM,MAAQ,EAAM,OAAS,GAAM,OAAS,KAG7C,CACT,EAGM,GAAY,CAAC,EAAM,IAAU,CAEjC,GAAI,GACA,EAAO,EACP,EACA,EACA,EAAM,EACN,EACA,EACA,EAAK,EACL,EACA,EACA,EACA,EAAO,EACP,EAAW,EAAS,EAEpB,EAAW,EAAS,EACpB,EACA,EACJ,KAAM,GAAO,GAAI,YAAW,CAAC,EAC7B,GAAI,GAEA,EAEJ,KAAM,GACJ,GAAI,YAAW,CAAE,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAE,CAAE,EAGrF,GAAI,CAAC,GAAQ,CAAC,EAAK,OAAS,CAAC,EAAK,QAC7B,CAAC,EAAK,OAAS,EAAK,WAAa,EACpC,MAAO,IAGT,EAAQ,EAAK,MACT,EAAM,OAAS,IAAQ,GAAM,KAAO,IAIxC,EAAM,EAAK,SACX,EAAS,EAAK,OACd,EAAO,EAAK,UACZ,EAAO,EAAK,QACZ,EAAQ,EAAK,MACb,EAAO,EAAK,SACZ,EAAO,EAAM,KACb,EAAO,EAAM,KAGb,EAAM,EACN,EAAO,EACP,EAAM,GAEN,EACA,OACE,OAAQ,EAAM,UACP,IACH,GAAI,EAAM,OAAS,EAAG,CACpB,EAAM,KAAO,GACb,KACD,CAED,KAAO,EAAO,IAAI,CAChB,GAAI,IAAS,EAAK,QAClB,IACA,GAAQ,EAAM,MAAW,EACzB,GAAQ,CACT,CAED,GAAK,EAAM,KAAO,GAAM,IAAS,MAAQ,CACvC,EAAM,MAAQ,EAEd,EAAK,GAAK,EAAO,IACjB,EAAK,GAAM,IAAS,EAAK,IACzB,EAAM,MAAQ,GAAQ,EAAM,MAAO,EAAM,EAAG,CAAC,EAI7C,EAAO,EACP,EAAO,EAEP,EAAM,KAAO,GACb,KACD,CAKD,GAJA,EAAM,MAAQ,EACV,EAAM,MACR,GAAM,KAAK,KAAO,IAEhB,CAAE,GAAM,KAAO,IACd,KAAO,MAAoB,GAAM,IAAQ,IAAM,GAAI,CACtD,EAAK,IAAM,yBACX,EAAM,KAAO,GACb,KACD,CACD,GAAK,GAAO,MAAqB,GAAY,CAC3C,EAAK,IAAM,6BACX,EAAM,KAAO,GACb,KACD,CAMD,GAJA,KAAU,EACV,GAAQ,EAER,EAAO,GAAO,IAAmB,EAC7B,EAAM,QAAU,EAClB,EAAM,MAAQ,UAEP,EAAM,EAAM,MAAO,CAC1B,EAAK,IAAM,sBACX,EAAM,KAAO,GACb,KACD,CAID,EAAM,KAAO,GAAK,EAAM,MAIxB,EAAK,MAAQ,EAAM,MAAQ,EAC3B,EAAM,KAAO,EAAO,IAAQ,GAAS,GAErC,EAAO,EACP,EAAO,EAEP,UACG,IAEH,KAAO,EAAO,IAAI,CAChB,GAAI,IAAS,EAAK,QAClB,IACA,GAAQ,EAAM,MAAW,EACzB,GAAQ,CACT,CAGD,GADA,EAAM,MAAQ,EACT,GAAM,MAAQ,OAAU,GAAY,CACvC,EAAK,IAAM,6BACX,EAAM,KAAO,GACb,KACD,CACD,GAAI,EAAM,MAAQ,MAAQ,CACxB,EAAK,IAAM,2BACX,EAAM,KAAO,GACb,KACD,CACD,CAAI,CAAM,MACR,GAAM,KAAK,KAAS,GAAQ,EAAK,GAE/B,EAAM,MAAQ,KAEhB,GAAK,GAAK,EAAO,IACjB,EAAK,GAAM,IAAS,EAAK,IACzB,EAAM,MAAQ,GAAQ,EAAM,MAAO,EAAM,EAAG,CAAC,GAI/C,EAAO,EACP,EAAO,EAEP,EAAM,KAAO,OAEV,IAEH,KAAO,EAAO,IAAI,CAChB,GAAI,IAAS,EAAK,QAClB,IACA,GAAQ,EAAM,MAAW,EACzB,GAAQ,CACT,CAED,CAAI,CAAM,MACR,GAAM,KAAK,KAAO,GAEhB,EAAM,MAAQ,KAEhB,GAAK,GAAK,EAAO,IACjB,EAAK,GAAM,IAAS,EAAK,IACzB,EAAK,GAAM,IAAS,GAAM,IAC1B,EAAK,GAAM,IAAS,GAAM,IAC1B,EAAM,MAAQ,GAAQ,EAAM,MAAO,EAAM,EAAG,CAAC,GAI/C,EAAO,EACP,EAAO,EAEP,EAAM,KAAO,OAEV,IAEH,KAAO,EAAO,IAAI,CAChB,GAAI,IAAS,EAAK,QAClB,IACA,GAAQ,EAAM,MAAW,EACzB,GAAQ,CACT,CAED,CAAI,CAAM,MACR,GAAM,KAAK,OAAU,EAAO,IAC5B,EAAM,KAAK,GAAM,GAAQ,GAEvB,EAAM,MAAQ,KAEhB,GAAK,GAAK,EAAO,IACjB,EAAK,GAAM,IAAS,EAAK,IACzB,EAAM,MAAQ,GAAQ,EAAM,MAAO,EAAM,EAAG,CAAC,GAI/C,EAAO,EACP,EAAO,EAEP,EAAM,KAAO,OAEV,IACH,GAAI,EAAM,MAAQ,KAAQ,CAExB,KAAO,EAAO,IAAI,CAChB,GAAI,IAAS,EAAK,QAClB,IACA,GAAQ,EAAM,MAAW,EACzB,GAAQ,CACT,CAED,EAAM,OAAS,EACX,EAAM,MACR,GAAM,KAAK,UAAY,GAErB,EAAM,MAAQ,KAEhB,GAAK,GAAK,EAAO,IACjB,EAAK,GAAM,IAAS,EAAK,IACzB,EAAM,MAAQ,GAAQ,EAAM,MAAO,EAAM,EAAG,CAAC,GAI/C,EAAO,EACP,EAAO,CAER,KACI,CAAI,EAAM,MACb,GAAM,KAAK,MAAQ,MAErB,EAAM,KAAO,OAEV,IACH,GAAI,EAAM,MAAQ,MAChB,GAAO,EAAM,OACT,EAAO,GAAQ,GAAO,GACtB,GACE,GAAM,MACR,GAAM,EAAM,KAAK,UAAY,EAAM,OAC9B,EAAM,KAAK,OAEd,GAAM,KAAK,MAAQ,GAAI,YAAW,EAAM,KAAK,SAAS,GAExD,EAAM,KAAK,MAAM,IACf,EAAM,SACJ,EAGA,EAAO,CACR,EAED,CAChB,GAKgB,EAAM,MAAQ,KAChB,GAAM,MAAQ,GAAQ,EAAM,MAAO,EAAO,EAAM,CAAI,GAEtD,GAAQ,EACR,GAAQ,EACR,EAAM,QAAU,GAEd,EAAM,QAAU,QAEtB,EAAM,OAAS,EACf,EAAM,KAAO,OAEV,IACH,GAAI,EAAM,MAAQ,KAAQ,CACxB,GAAI,IAAS,EAAK,QAClB,EAAO,EACP,EAEE,GAAM,EAAM,EAAO,KAEf,EAAM,MAAQ,GACb,EAAM,OAAS,OAClB,GAAM,KAAK,MAAQ,OAAO,aAAa,CAAG,SAErC,GAAO,EAAO,GAOvB,GALI,EAAM,MAAQ,KAChB,GAAM,MAAQ,GAAQ,EAAM,MAAO,EAAO,EAAM,CAAI,GAEtD,GAAQ,EACR,GAAQ,EACJ,EAAO,OACZ,KACI,CAAI,EAAM,MACb,GAAM,KAAK,KAAO,MAEpB,EAAM,OAAS,EACf,EAAM,KAAOA,OAEVA,IACH,GAAI,EAAM,MAAQ,KAAQ,CACxB,GAAI,IAAS,EAAK,QAClB,EAAO,EACP,EACE,GAAM,EAAM,EAAO,KAEf,EAAM,MAAQ,GACb,EAAM,OAAS,OAClB,GAAM,KAAK,SAAW,OAAO,aAAa,CAAG,SAExC,GAAO,EAAO,GAMvB,GALI,EAAM,MAAQ,KAChB,GAAM,MAAQ,GAAQ,EAAM,MAAO,EAAO,EAAM,CAAI,GAEtD,GAAQ,EACR,GAAQ,EACJ,EAAO,OACZ,KACI,CAAI,EAAM,MACb,GAAM,KAAK,QAAU,MAEvB,EAAM,KAAO,OAEV,IACH,GAAI,EAAM,MAAQ,IAAQ,CAExB,KAAO,EAAO,IAAI,CAChB,GAAI,IAAS,EAAK,QAClB,IACA,GAAQ,EAAM,MAAW,EACzB,GAAQ,CACT,CAED,GAAI,IAAU,GAAM,MAAQ,OAAS,CACnC,EAAK,IAAM,sBACX,EAAM,KAAO,GACb,KACD,CAED,EAAO,EACP,EAAO,CAER,CACD,CAAI,CAAM,MACR,GAAM,KAAK,KAAS,EAAM,OAAS,EAAK,EACxC,EAAM,KAAK,KAAO,IAEpB,EAAK,MAAQ,EAAM,MAAQ,EAC3B,EAAM,KAAO,GACb,UACG,IAEH,KAAO,EAAO,IAAI,CAChB,GAAI,IAAS,EAAK,QAClB,IACA,GAAQ,EAAM,MAAW,EACzB,GAAQ,CACT,CAED,EAAK,MAAQ,EAAM,MAAQ,GAAQ,CAAI,EAEvC,EAAO,EACP,EAAO,EAEP,EAAM,KAAO,OAEV,IACH,GAAI,EAAM,WAAa,EAErB,SAAK,SAAW,EAChB,EAAK,UAAY,EACjB,EAAK,QAAU,EACf,EAAK,SAAW,EAChB,EAAM,KAAO,EACb,EAAM,KAAO,EAEN,GAET,EAAK,MAAQ,EAAM,MAAQ,EAC3B,EAAM,KAAO,OAEV,IACH,GAAI,IAAU,IAAW,IAAU,GAAW,YAE3C,IACH,GAAI,EAAM,KAAM,CAEd,KAAU,EAAO,EACjB,GAAQ,EAAO,EAEf,EAAM,KAAO,GACb,KACD,CAED,KAAO,EAAO,GAAG,CACf,GAAI,IAAS,EAAK,QAClB,IACA,GAAQ,EAAM,MAAW,EACzB,GAAQ,CACT,CAQD,OANA,EAAM,KAAQ,EAAO,EAErB,KAAU,EACV,GAAQ,EAGC,EAAO,OACT,GAGH,EAAM,KAAO,GACb,UACG,GAKH,GAJA,GAAY,CAAK,EAGjB,EAAM,KAAO,GACT,IAAU,GAAS,CAErB,KAAU,EACV,GAAQ,EAER,OACD,CACD,UACG,GAGH,EAAM,KAAO,GACb,UACG,GACH,EAAK,IAAM,qBACX,EAAM,KAAO,GAGjB,KAAU,EACV,GAAQ,EAER,UACG,IAMH,IAJA,KAAU,EAAO,EACjB,GAAQ,EAAO,EAGR,EAAO,IAAI,CAChB,GAAI,IAAS,EAAK,QAClB,IACA,GAAQ,EAAM,MAAW,EACzB,GAAQ,CACT,CAED,GAAK,GAAO,SAAc,KAAS,GAAM,OAAS,CAChD,EAAK,IAAM,+BACX,EAAM,KAAO,GACb,KACD,CASD,GARA,EAAM,OAAS,EAAO,MAItB,EAAO,EACP,EAAO,EAEP,EAAM,KAAO,GACT,IAAU,GAAW,YAEtB,IACH,EAAM,KAAO,OAEV,IAEH,GADA,EAAO,EAAM,OACT,EAAM,CAGR,GAFI,EAAO,GAAQ,GAAO,GACtB,EAAO,GAAQ,GAAO,GACtB,IAAS,EAAK,QAElB,EAAO,IAAI,EAAM,SAAS,EAAM,EAAO,CAAI,EAAG,CAAG,EAEjD,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAO,EACP,EAAM,QAAU,EAChB,KACD,CAED,EAAM,KAAO,GACb,UACG,IAEH,KAAO,EAAO,IAAI,CAChB,GAAI,IAAS,EAAK,QAClB,IACA,GAAQ,EAAM,MAAW,EACzB,GAAQ,CACT,CAkBD,GAhBA,EAAM,KAAQ,GAAO,IAAmB,IAExC,KAAU,EACV,GAAQ,EAER,EAAM,MAAS,GAAO,IAAmB,EAEzC,KAAU,EACV,GAAQ,EAER,EAAM,MAAS,GAAO,IAAmB,EAEzC,KAAU,EACV,GAAQ,EAGJ,EAAM,KAAO,KAAO,EAAM,MAAQ,GAAI,CACxC,EAAK,IAAM,sCACX,EAAM,KAAO,GACb,KACD,CAGD,EAAM,KAAO,EACb,EAAM,KAAO,OAEV,IACH,KAAO,EAAM,KAAO,EAAM,OAAO,CAE/B,KAAO,EAAO,GAAG,CACf,GAAI,IAAS,EAAK,QAClB,IACA,GAAQ,EAAM,MAAW,EACzB,GAAQ,CACT,CAED,EAAM,KAAK,EAAM,EAAM,SAAY,EAAO,EAE1C,KAAU,EACV,GAAQ,CAET,CACD,KAAO,EAAM,KAAO,IAClB,EAAM,KAAK,EAAM,EAAM,SAAW,EAapC,GAPA,EAAM,QAAU,EAAM,OACtB,EAAM,QAAU,EAEhB,EAAO,CAAE,KAAM,EAAM,OAAO,EAC5B,EAAM,GAAS,GAAO,EAAM,KAAM,EAAG,GAAI,EAAM,QAAS,EAAG,EAAM,KAAM,CAAI,EAC3E,EAAM,QAAU,EAAK,KAEjB,EAAK,CACP,EAAK,IAAM,2BACX,EAAM,KAAO,GACb,KACD,CAED,EAAM,KAAO,EACb,EAAM,KAAO,OAEV,IACH,KAAO,EAAM,KAAO,EAAM,KAAO,EAAM,OAAO,CAC5C,KACE,EAAO,EAAM,QAAQ,EAAS,IAAK,EAAM,SAAW,GACpD,EAAY,IAAS,GACrB,EAAW,IAAS,GAAM,IAC1B,EAAW,EAAO,MAEb,KAAc,IANZ,CAQP,GAAI,IAAS,EAAK,QAClB,IACA,GAAQ,EAAM,MAAW,EACzB,GAAQ,CAET,CACD,GAAI,EAAW,GAEb,KAAU,EACV,GAAQ,EAER,EAAM,KAAK,EAAM,QAAU,MAExB,CACH,GAAI,IAAa,GAAI,CAGnB,IADA,EAAI,EAAY,EACT,EAAO,GAAG,CACf,GAAI,IAAS,EAAK,QAClB,IACA,GAAQ,EAAM,MAAW,EACzB,GAAQ,CACT,CAMD,GAHA,KAAU,EACV,GAAQ,EAEJ,EAAM,OAAS,EAAG,CACpB,EAAK,IAAM,4BACX,EAAM,KAAO,GACb,KACD,CACD,EAAM,EAAM,KAAK,EAAM,KAAO,GAC9B,EAAO,EAAK,GAAO,GAEnB,KAAU,EACV,GAAQ,CAET,SACQ,IAAa,GAAI,CAGxB,IADA,EAAI,EAAY,EACT,EAAO,GAAG,CACf,GAAI,IAAS,EAAK,QAClB,IACA,GAAQ,EAAM,MAAW,EACzB,GAAQ,CACT,CAGD,KAAU,EACV,GAAQ,EAER,EAAM,EACN,EAAO,EAAK,GAAO,GAEnB,KAAU,EACV,GAAQ,CAET,KACI,CAGH,IADA,EAAI,EAAY,EACT,EAAO,GAAG,CACf,GAAI,IAAS,EAAK,QAClB,IACA,GAAQ,EAAM,MAAW,EACzB,GAAQ,CACT,CAGD,KAAU,EACV,GAAQ,EAER,EAAM,EACN,EAAO,GAAM,GAAO,KAEpB,KAAU,EACV,GAAQ,CAET,CACD,GAAI,EAAM,KAAO,EAAO,EAAM,KAAO,EAAM,MAAO,CAChD,EAAK,IAAM,4BACX,EAAM,KAAO,GACb,KACD,CACD,KAAO,KACL,EAAM,KAAK,EAAM,QAAU,CAE9B,CACF,CAGD,GAAI,EAAM,OAAS,GAAO,MAG1B,GAAI,EAAM,KAAK,OAAS,EAAG,CACzB,EAAK,IAAM,uCACX,EAAM,KAAO,GACb,KACD,CAcD,GATA,EAAM,QAAU,EAEhB,EAAO,CAAE,KAAM,EAAM,OAAO,EAC5B,EAAM,GAAS,GAAM,EAAM,KAAM,EAAG,EAAM,KAAM,EAAM,QAAS,EAAG,EAAM,KAAM,CAAI,EAGlF,EAAM,QAAU,EAAK,KAGjB,EAAK,CACP,EAAK,IAAM,8BACX,EAAM,KAAO,GACb,KACD,CAaD,GAXA,EAAM,SAAW,EAGjB,EAAM,SAAW,EAAM,QACvB,EAAO,CAAE,KAAM,EAAM,QAAQ,EAC7B,EAAM,GAAS,GAAO,EAAM,KAAM,EAAM,KAAM,EAAM,MAAO,EAAM,SAAU,EAAG,EAAM,KAAM,CAAI,EAG9F,EAAM,SAAW,EAAK,KAGlB,EAAK,CACP,EAAK,IAAM,wBACX,EAAM,KAAO,GACb,KACD,CAGD,GADA,EAAM,KAAO,GACT,IAAU,GAAW,YAEtB,IACH,EAAM,KAAO,OAEV,IACH,GAAI,GAAQ,GAAK,GAAQ,IAAK,CAE5B,EAAK,SAAW,EAChB,EAAK,UAAY,EACjB,EAAK,QAAU,EACf,EAAK,SAAW,EAChB,EAAM,KAAO,EACb,EAAM,KAAO,EAEb,GAAQ,EAAM,CAAI,EAElB,EAAM,EAAK,SACX,EAAS,EAAK,OACd,EAAO,EAAK,UACZ,EAAO,EAAK,QACZ,EAAQ,EAAK,MACb,EAAO,EAAK,SACZ,EAAO,EAAM,KACb,EAAO,EAAM,KAGT,EAAM,OAAS,IACjB,GAAM,KAAO,IAEf,KACD,CAED,IADA,EAAM,KAAO,EAEX,EAAO,EAAM,QAAQ,EAAS,IAAK,EAAM,SAAW,GACpD,EAAY,IAAS,GACrB,EAAW,IAAS,GAAM,IAC1B,EAAW,EAAO,MAEd,KAAa,IANV,CAQP,GAAI,IAAS,EAAK,QAClB,IACA,GAAQ,EAAM,MAAW,EACzB,GAAQ,CAET,CACD,GAAI,GAAY,GAAU,OAAU,EAAG,CAIrC,IAHA,EAAY,EACZ,EAAU,EACV,EAAW,EAET,EAAO,EAAM,QAAQ,EACX,IAAS,IAAM,EAAY,GAAY,IAAoC,IACrF,EAAY,IAAS,GACrB,EAAW,IAAS,GAAM,IAC1B,EAAW,EAAO,MAEb,IAAY,GAAc,IAPxB,CASP,GAAI,IAAS,EAAK,QAClB,IACA,GAAQ,EAAM,MAAW,EACzB,GAAQ,CAET,CAED,KAAU,EACV,GAAQ,EAER,EAAM,MAAQ,CACf,CAOD,GALA,KAAU,EACV,GAAQ,EAER,EAAM,MAAQ,EACd,EAAM,OAAS,EACX,IAAY,EAAG,CAIjB,EAAM,KAAO,GACb,KACD,CACD,GAAI,EAAU,GAAI,CAEhB,EAAM,KAAO,GACb,EAAM,KAAO,GACb,KACD,CACD,GAAI,EAAU,GAAI,CAChB,EAAK,IAAM,8BACX,EAAM,KAAO,GACb,KACD,CACD,EAAM,MAAQ,EAAU,GACxB,EAAM,KAAO,OAEV,IACH,GAAI,EAAM,MAAO,CAGf,IADA,EAAI,EAAM,MACH,EAAO,GAAG,CACf,GAAI,IAAS,EAAK,QAClB,IACA,GAAQ,EAAM,MAAW,EACzB,GAAQ,CACT,CAED,EAAM,QAAU,EAAS,IAAK,EAAM,OAAS,EAE7C,KAAU,EAAM,MAChB,GAAQ,EAAM,MAEd,EAAM,MAAQ,EAAM,KACrB,CAED,EAAM,IAAM,EAAM,OAClB,EAAM,KAAO,OAEV,IACH,KACE,EAAO,EAAM,SAAS,EAAS,IAAK,EAAM,UAAY,GACtD,EAAY,IAAS,GACrB,EAAW,IAAS,GAAM,IAC1B,EAAW,EAAO,MAEb,KAAc,IANZ,CAQP,GAAI,IAAS,EAAK,QAClB,IACA,GAAQ,EAAM,MAAW,EACzB,GAAQ,CAET,CACD,GAAK,GAAU,OAAU,EAAG,CAI1B,IAHA,EAAY,EACZ,EAAU,EACV,EAAW,EAET,EAAO,EAAM,SAAS,EACZ,IAAS,IAAM,EAAY,GAAY,IAAoC,IACrF,EAAY,IAAS,GACrB,EAAW,IAAS,GAAM,IAC1B,EAAW,EAAO,MAEb,IAAY,GAAc,IAPxB,CASP,GAAI,IAAS,EAAK,QAClB,IACA,GAAQ,EAAM,MAAW,EACzB,GAAQ,CAET,CAED,KAAU,EACV,GAAQ,EAER,EAAM,MAAQ,CACf,CAMD,GAJA,KAAU,EACV,GAAQ,EAER,EAAM,MAAQ,EACV,EAAU,GAAI,CAChB,EAAK,IAAM,wBACX,EAAM,KAAO,GACb,KACD,CACD,EAAM,OAAS,EACf,EAAM,MAAS,EAAW,GAC1B,EAAM,KAAO,OAEV,IACH,GAAI,EAAM,MAAO,CAGf,IADA,EAAI,EAAM,MACH,EAAO,GAAG,CACf,GAAI,IAAS,EAAK,QAClB,IACA,GAAQ,EAAM,MAAW,EACzB,GAAQ,CACT,CAED,EAAM,QAAU,EAAS,IAAK,EAAM,OAAS,EAE7C,KAAU,EAAM,MAChB,GAAQ,EAAM,MAEd,EAAM,MAAQ,EAAM,KACrB,CAED,GAAI,EAAM,OAAS,EAAM,KAAM,CAC7B,EAAK,IAAM,gCACX,EAAM,KAAO,GACb,KACD,CAGD,EAAM,KAAO,OAEV,IACH,GAAI,IAAS,EAAK,QAElB,GADA,EAAO,EAAO,EACV,EAAM,OAAS,EAAM,CAEvB,GADA,EAAO,EAAM,OAAS,EAClB,EAAO,EAAM,OACX,EAAM,KAAM,CACd,EAAK,IAAM,gCACX,EAAM,KAAO,GACb,KACD,CAiBH,CAAI,CAAO,EAAM,MACf,IAAQ,EAAM,MACd,EAAO,EAAM,MAAQ,GAGrB,EAAO,EAAM,MAAQ,EAEnB,EAAO,EAAM,QAAU,GAAO,EAAM,QACxC,EAAc,EAAM,MACrB,KAEC,GAAc,EACd,EAAO,EAAM,EAAM,OACnB,EAAO,EAAM,OAEf,CAAI,CAAO,GAAQ,GAAO,GAC1B,GAAQ,EACR,EAAM,QAAU,EAChB,EACE,GAAO,KAAS,EAAY,WACrB,EAAE,GACX,CAAI,CAAM,SAAW,GAAK,GAAM,KAAO,IACvC,UACG,IACH,GAAI,IAAS,EAAK,QAClB,EAAO,KAAS,EAAM,OACtB,IACA,EAAM,KAAO,GACb,UACG,IACH,GAAI,EAAM,KAAM,CAEd,KAAO,EAAO,IAAI,CAChB,GAAI,IAAS,EAAK,QAClB,IAEA,GAAQ,EAAM,MAAW,EACzB,GAAQ,CACT,CAaD,GAXA,GAAQ,EACR,EAAK,WAAa,EAClB,EAAM,OAAS,EACX,GACF,GAAK,MAAQ,EAAM,MAEd,EAAM,MAAQ,GAAQ,EAAM,MAAO,EAAQ,EAAM,EAAM,CAAI,EAAI,GAAU,EAAM,MAAO,EAAQ,EAAM,EAAM,CAAI,GAGrH,EAAO,EAEF,GAAM,MAAQ,EAAO,GAAQ,CAAI,KAAO,EAAM,MAAO,CACxD,EAAK,IAAM,uBACX,EAAM,KAAO,GACb,KACD,CAED,EAAO,EACP,EAAO,CAGR,CACD,EAAM,KAAO,OAEV,IACH,GAAI,EAAM,MAAQ,EAAM,MAAO,CAE7B,KAAO,EAAO,IAAI,CAChB,GAAI,IAAS,EAAK,QAClB,IACA,GAAQ,EAAM,MAAW,EACzB,GAAQ,CACT,CAED,GAAI,IAAU,GAAM,MAAQ,YAAa,CACvC,EAAK,IAAM,yBACX,EAAM,KAAO,GACb,KACD,CAED,EAAO,EACP,EAAO,CAGR,CACD,EAAM,KAAO,OAEV,IACH,EAAM,GACN,YACG,IACH,EAAM,GACN,YACG,IACH,MAAO,QACJ,YAGH,MAAO,IAcb,SAAK,SAAW,EAChB,EAAK,UAAY,EACjB,EAAK,QAAU,EACf,EAAK,SAAW,EAChB,EAAM,KAAO,EACb,EAAM,KAAO,EAGT,GAAM,OAAU,IAAS,EAAK,WAAa,EAAM,KAAO,IACvC,GAAM,KAAO,IAAS,IAAU,MAC/C,GAAa,EAAM,EAAK,OAAQ,EAAK,SAAU,EAAO,EAAK,SAAS,EAE1E,GAAO,EAAK,SACZ,GAAQ,EAAK,UACb,EAAK,UAAY,EACjB,EAAK,WAAa,EAClB,EAAM,OAAS,EACX,EAAM,MAAQ,GAChB,GAAK,MAAQ,EAAM,MAChB,EAAM,MAAQ,GAAQ,EAAM,MAAO,EAAQ,EAAM,EAAK,SAAW,CAAI,EAAI,GAAU,EAAM,MAAO,EAAQ,EAAM,EAAK,SAAW,CAAI,GAEvI,EAAK,UAAY,EAAM,KAAQ,GAAM,KAAO,GAAK,GAC9B,GAAM,OAAS,GAAO,IAAM,GAC5B,GAAM,OAAS,IAAQ,EAAM,OAAS,GAAQ,IAAM,GACjE,KAAQ,GAAK,IAAS,GAAM,IAAU,KAAe,IAAQ,IACjE,GAAM,IAED,CACT,EAGM,GAAa,CAAC,EAAS,CAE3B,GAAI,CAAC,GAAQ,CAAC,EAAK,MACjB,MAAO,IAGT,GAAI,GAAQ,EAAK,MACjB,MAAI,GAAM,QACR,GAAM,OAAS,MAEjB,EAAK,MAAQ,KACN,EACT,EAGM,GAAmB,CAAC,EAAM,IAAS,CAGvC,GAAI,CAAC,GAAQ,CAAC,EAAK,MAAS,MAAO,IACnC,KAAM,GAAQ,EAAK,MACnB,MAAK,GAAM,KAAO,KAAO,EAAY,GAGrC,GAAM,KAAO,EACb,EAAK,KAAO,GACL,GACT,EAGM,GAAuB,CAAC,EAAM,IAAe,CACjD,KAAM,GAAa,EAAW,OAE9B,GAAI,GACA,EACA,EAMJ,MAHI,CAAC,GAAwB,CAAC,EAAK,OACnC,GAAQ,EAAK,MAET,EAAM,OAAS,GAAK,EAAM,OAAS,IAC9B,GAIL,EAAM,OAAS,IACjB,GAAS,EAET,EAAS,GAAU,EAAQ,EAAY,EAAY,CAAC,EAChD,IAAW,EAAM,OACZ,GAKX,GAAM,GAAa,EAAM,EAAY,EAAY,CAAU,EACvD,EACF,GAAM,KAAO,GACN,IAET,GAAM,SAAW,EAEV,IACT,EAGA,GAAI,IAAiB,GACjB,GAAkB,GAClB,GAAqB,GACrB,GAAgB,GAChB,GAAiB,GACjB,GAAc,GACd,GAAe,GACf,GAAqB,GACrB,GAAyB,GACzB,GAAc,qCAYd,GAAc,CACjB,aAAc,GACd,cAAe,GACf,iBAAkB,GAClB,YAAa,GACb,aAAc,GACd,QAAS,GACT,WAAY,GACZ,iBAAkB,GAClB,qBAAsB,GACtB,YAAa,EACd,EAqBA,aAAoB,CAElB,KAAK,KAAa,EAElB,KAAK,KAAa,EAElB,KAAK,OAAa,EAElB,KAAK,GAAa,EAElB,KAAK,MAAa,KAElB,KAAK,UAAa,EAWlB,KAAK,KAAa,GAIlB,KAAK,QAAa,GAIlB,KAAK,KAAa,EAElB,KAAK,KAAa,EACpB,CAEA,GAAI,IAAW,GAEf,KAAM,IAAW,OAAO,UAAU,SAK5B,CACJ,cAAY,YACZ,QAAM,gBAAc,eAAa,kBAAgB,gBAAc,gBAC7D,GAkFJ,YAAmB,EAAS,CAC1B,KAAK,QAAU,GAAO,OAAO,CAC3B,UAAW,KAAO,GAClB,WAAY,GACZ,GAAI,EACR,EAAK,GAAW,EAAE,EAEhB,KAAM,GAAM,KAAK,QAIjB,CAAI,CAAI,KAAQ,EAAI,YAAc,GAAO,EAAI,WAAa,IACxD,GAAI,WAAa,CAAC,EAAI,WAClB,EAAI,aAAe,GAAK,GAAI,WAAa,MAI1C,EAAI,YAAc,GAAO,EAAI,WAAa,IAC3C,CAAE,IAAW,EAAQ,aACvB,GAAI,YAAc,IAKf,EAAI,WAAa,IAAQ,EAAI,WAAa,IAGxC,GAAI,WAAa,MAAQ,GAC5B,GAAI,YAAc,IAItB,KAAK,IAAS,EACd,KAAK,IAAS,GACd,KAAK,MAAS,GACd,KAAK,OAAS,GAEd,KAAK,KAAS,GAAI,IAClB,KAAK,KAAK,UAAY,EAEtB,GAAI,GAAU,GAAY,aACxB,KAAK,KACL,EAAI,UACR,EAEE,GAAI,IAAW,GACb,KAAM,IAAI,OAAM,GAAS,EAAO,EAQlC,GALA,KAAK,OAAS,GAAI,IAElB,GAAY,iBAAiB,KAAK,KAAM,KAAK,MAAM,EAG/C,EAAI,YAEN,CAAI,MAAO,GAAI,YAAe,SAC5B,EAAI,WAAa,GAAQ,WAAW,EAAI,UAAU,EACzC,GAAS,KAAK,EAAI,UAAU,IAAM,wBAC3C,GAAI,WAAa,GAAI,YAAW,EAAI,UAAU,GAE5C,EAAI,KACN,GAAS,GAAY,qBAAqB,KAAK,KAAM,EAAI,UAAU,EAC/D,IAAW,KACb,KAAM,IAAI,OAAM,GAAS,EAAO,CAIxC,CA2BA,GAAU,UAAU,KAAO,SAAU,EAAM,EAAY,CACrD,KAAM,GAAO,KAAK,KACZ,EAAY,KAAK,QAAQ,UACzB,EAAa,KAAK,QAAQ,WAChC,GAAI,GAAQ,EAAa,EAEzB,GAAI,KAAK,MAAO,MAAO,GAevB,IAbA,CAAI,GAAe,CAAC,CAAC,EAAY,EAAc,EAC1C,EAAc,IAAe,GAAO,GAAW,GAGpD,CAAI,EAAS,KAAK,CAAI,IAAM,uBAC1B,EAAK,MAAQ,GAAI,YAAW,CAAI,EAEhC,EAAK,MAAQ,EAGf,EAAK,QAAU,EACf,EAAK,SAAW,EAAK,MAAM,SAElB,CAqBP,IApBI,EAAK,YAAc,GACrB,GAAK,OAAS,GAAI,YAAW,CAAS,EACtC,EAAK,SAAW,EAChB,EAAK,UAAY,GAGnB,EAAS,GAAY,QAAQ,EAAM,CAAW,EAE1C,IAAW,IAAe,GAC5B,GAAS,GAAY,qBAAqB,EAAM,CAAU,EAE1D,CAAI,GAAW,GACb,EAAS,GAAY,QAAQ,EAAM,CAAW,EACrC,IAAW,IAEpB,GAAS,KAKN,EAAK,SAAW,GAChB,IAAW,IACX,EAAK,MAAM,KAAO,GAClB,EAAK,EAAK,WAAa,GAE5B,GAAY,aAAa,CAAI,EAC7B,EAAS,GAAY,QAAQ,EAAM,CAAW,EAGhD,OAAQ,OACD,QACA,QACA,QACA,IACH,YAAK,MAAM,CAAM,EACjB,KAAK,MAAQ,GACN,GAOX,GAFA,EAAiB,EAAK,UAElB,EAAK,UACH,GAAK,YAAc,GAAK,IAAW,IAErC,GAAI,KAAK,QAAQ,KAAO,SAAU,CAEhC,GAAI,GAAgB,GAAQ,WAAW,EAAK,OAAQ,EAAK,QAAQ,EAE7D,EAAO,EAAK,SAAW,EACvB,EAAU,GAAQ,WAAW,EAAK,OAAQ,CAAa,EAG3D,EAAK,SAAW,EAChB,EAAK,UAAY,EAAY,EACzB,GAAM,EAAK,OAAO,IAAI,EAAK,OAAO,SAAS,EAAe,EAAgB,CAAI,EAAG,CAAC,EAEtF,KAAK,OAAO,CAAO,CAE7B,KACU,MAAK,OAAO,EAAK,OAAO,SAAW,EAAK,SAAW,EAAK,OAAS,EAAK,OAAO,SAAS,EAAG,EAAK,QAAQ,CAAC,EAM7G,GAAI,MAAW,IAAQ,IAAmB,GAG1C,IAAI,IAAW,GACb,SAAS,GAAY,WAAW,KAAK,IAAI,EACzC,KAAK,MAAM,CAAM,EACjB,KAAK,MAAQ,GACN,GAGT,GAAI,EAAK,WAAa,EAAG,MAC1B,CAED,MAAO,EACT,EAWA,GAAU,UAAU,OAAS,SAAU,EAAO,CAC5C,KAAK,OAAO,KAAK,CAAK,CACxB,EAYA,GAAU,UAAU,MAAQ,SAAU,EAAQ,CAE5C,CAAI,GAAW,IACb,CAAI,KAAK,QAAQ,KAAO,SACtB,KAAK,OAAS,KAAK,OAAO,KAAK,EAAE,EAEjC,KAAK,OAAS,GAAO,cAAc,KAAK,MAAM,GAGlD,KAAK,OAAS,GACd,KAAK,IAAM,EACX,KAAK,IAAM,KAAK,KAAK,GACvB,EA0CA,YAAmB,EAAO,EAAS,CACjC,KAAM,GAAW,GAAI,IAAU,CAAO,EAKtC,GAHA,EAAS,KAAK,CAAK,EAGf,EAAS,IAAK,KAAM,GAAS,KAAO,GAAS,EAAS,KAE1D,MAAO,GAAS,MAClB,CAWA,YAAsB,EAAO,EAAS,CACpC,SAAU,GAAW,GACrB,EAAQ,IAAM,GACP,GAAU,EAAO,CAAO,CACjC,CAaA,GAAI,IAAc,GACd,GAAY,GACZ,GAAiB,GACjB,GAAW,GACX,GAAY,GAEZ,GAAc,CACjB,QAAS,GACT,QAAS,GACT,WAAY,GACZ,OAAQ,GACR,UAAW,EACZ,EAEA,KAAM,CAAE,WAAS,WAAS,cAAY,SAAS,GAEzC,CAAE,WAAS,WAAS,cAAY,WAAW,GAIjD,GAAI,IAAY,GACZ,GAAY,GACZ,GAAe,GACf,GAAS,GACT,GAAY,GACZ,GAAY,GACZ,GAAe,GACf,GAAW,GACX,GAAc,GAEd,GAAO,CACV,QAAS,GACT,QAAS,GACT,WAAY,GACZ,KAAM,GACN,QAAS,GACT,QAAS,GACT,WAAY,GACZ,OAAQ,GACR,UAAW,EACZ,ECjjNO,YAAgB,EAAM,EAAM,EAAM,CACrC,GAAI,CAAC,EAAK,GACN,KAAM,IAAI,OAAM,WAAW,OAAU,EAEzC,GAAI,EAAK,GAAM,OAAS,EACpB,KAAM,IAAI,OAAM,YAAY,mBAAsB,gBAAmB,EAAK,GAAM,MAAM,EAE1F,MAAO,GAAK,GAAM,KACtB,CACO,YAAoB,EAAM,EAAM,EAAM,EAAQ,CACjD,KAAM,GAAQ,GAAO,EAAM,EAAM,MAAM,EACvC,GAAI,EAAM,OAAS,EACf,KAAM,IAAI,OAAM,YAAY,qBAAwB,iBAAoB,EAAM,OAAO,EAEzF,GAAI,GAAU,EAAM,MAAM,SAAW,EACjC,KAAM,IAAI,OAAM,YAAY,4BAA+B,uBAA4B,EAAM,MAAM,QAAQ,EAE/G,MAAO,GAAM,KACjB,CACO,YAAqB,EAAY,EAAU,CAC9C,GAAI,CACA,MAAO,GAAU,CACpB,MACD,CACI,MAAO,EACV,CACL,CC1BO,GAAI,GACX,CAAC,SAAU,EAAM,CACb,WAAoB,EAAK,CACrB,MAAO,OAAO,IAAQ,SAAW,EAAM,MAC1C,CACD,EAAK,WAAa,EAClB,WAAiB,EAAK,CAClB,MAAO,OAAO,IAAQ,SAAW,KAAK,MAAM,CAAG,EAAI,MACtD,CACD,EAAK,QAAU,EACf,WAAoB,EAAK,CACrB,MAAO,OAAO,IAAQ,SAAW,EAAM,MAC1C,CACD,EAAK,WAAa,EAClB,WAAqB,EAAK,CACtB,MAAO,OAAO,IAAQ,UAAY,EAAM,MAC3C,CACD,EAAK,YAAc,EACnB,WAAoB,EAAK,CACrB,MAAO,OAAO,IAAQ,UAAY,IAAQ,KACpC,EACA,MACT,CACD,EAAK,WAAa,EAClB,WAAmB,EAAK,EAAQ,CAC5B,GAAI,EAAC,MAAM,QAAQ,CAAG,EAEtB,MAAO,GAAI,IAAI,GAAM,EAAO,CAAE,CAAC,CAClC,CACD,EAAK,UAAY,EACjB,WAAiB,EAAK,EAAQ,ChI9BlC,MgI+BQ,KAAM,GAAO,KAAW,CAAG,IAAd,OAAmB,GAChC,MAAO,QAAO,YAAY,OAAO,QAAQ,CAAI,EAAE,IAAI,CAAC,CAAC,EAAG,KAAO,CAAC,EAAG,EAAO,CAAC,CAAC,CAAC,CAAC,CACjF,CACD,EAAK,QAAU,EACf,WAAiB,EAAK,EAAQ,EAAQ,CAClC,KAAM,GAAS,EAAO,CAAG,EACzB,MAAO,GAAS,EAAO,CAAM,EAAI,MACpC,CACD,EAAK,QAAU,EACf,WAAkB,EAAK,EAAQ,CAC3B,MAAI,OAAO,IAAQ,SACR,EAAO,GACd,EAAO,SAAS,CAAG,EACZ,EACJ,EAAO,EACjB,CACD,EAAK,SAAW,CACpB,GAAG,GAAS,GAAO,GAAG,EChDf,YAAc,EAAQ,CACzB,GAAI,GAAQ,KACZ,MAAO,IACC,IAAS,MACT,GAAQ,EAAM,GAEX,EAEf,CACO,YAAyB,EAAK,EAAK,EAAQ,CAC9C,KAAM,GAAW,EAAI,IAAI,CAAG,EAC5B,GAAI,EACA,MAAO,GAEX,KAAM,GAAQ,EAAO,CAAG,EACxB,SAAI,IAAI,EAAK,CAAK,EACX,CACX,CCjBO,cAAiB,CAKpB,YAAY,EAAW,EAAM,CAJ7B,oBACA,eAMI,GAFA,KAAK,UAAY,EACjB,KAAK,KAAO,EACR,CAAC,EAAU,MAAM,gBAAgB,EACjC,KAAM,IAAI,OAAM,6CAA6C,IAAY,GAAW,YAAY,GAAM,EAE1G,GAAI,CAAC,EAAK,MAAM,iBAAiB,EAC7B,KAAM,IAAI,OAAM,yCAAyC,IAAY,GAAW,YAAY,GAAM,CAEzG,CACD,OAAO,EAAO,CACV,MAAI,QAAS,EACF,GAEJ,KAAK,YAAc,EAAM,WAAa,KAAK,OAAS,EAAM,IACpE,CACD,UAAW,CACP,MAAO,MAAK,UAAY,GAAW,UAAY,KAAK,IACvD,CACD,WAAW,EAAQ,CACf,MAAO,IAAI,IAAW,KAAK,UAAW,EAAS,KAAK,IAAI,CAC3D,OACM,QAAO,EAAM,CAChB,MAAO,IAAI,IAAW,KAAK,kBAAmB,CAAI,CACrD,OACM,OAAM,EAAI,CACb,KAAM,GAAM,EAAG,QAAQ,KAAK,SAAS,EACrC,GAAI,GAAO,EAAG,CACV,KAAM,GAAY,GAAO,EAAI,EAAG,UAAU,EAAG,CAAG,EAAI,KAAK,kBACnD,EAAO,EAAG,UAAU,EAAM,CAAC,EACjC,MAAO,IAAI,IAAW,EAAW,CAAI,CACxC,CACD,MAAO,IAAI,IAAW,KAAK,kBAAmB,CAAE,CACnD,CACL,EAvCO,UAGI,EAHJ,GAGI,oBAAoB,aACpB,EAJJ,GAII,YAAY,KCDhB,cAAiB,CAOpB,YAAY,EAAM,EAAa,GAAI,CANnC,qBAKA,eAEI,KAAK,WAAa,EAClB,KAAK,KAAO,MAAO,IAAS,SAAW,GAAW,MAAM,CAAI,EAAI,CACnE,CACD,SAAU,CACN,MAAO,MAAK,IACf,CACD,eAAgB,CACZ,MAAO,MAAK,UACf,CACD,YAAY,EAAK,CACb,MAAO,MAAK,WAAW,EAC1B,CACD,SAAU,CACN,MAAO,MAAK,GAAG,GAAW,KAAK,GAAK,KAAK,GAAG,GAAW,IAAI,CAC9D,CACD,OAAO,EAAO,CACV,MAAK,MAAK,KAAK,OAAO,EAAM,IAAI,EAGzB,OAAO,KAAK,KAAK,UAAU,EAAE,MAAM,GAC/B,EAAM,WAAW,KAAO,KAAK,WAAW,EAClD,EAJU,EAKd,CACD,GAAG,EAAO,CACN,MAAO,MAAK,KAAK,OAAO,EAAM,IAAI,CACrC,CACD,UAAW,CACP,MAAI,QAAO,KAAK,KAAK,UAAU,EAAE,SAAW,EACjC,KAAK,KAAK,WAEd,GAAG,KAAK,KAAK,SAAU,KAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,IAAI,CAAC,CAAC,EAAG,KAAO,EAAI,IAAM,CAAC,EAAE,KAAK,GAAG,IAC1G,OACM,SAAQ,EAAK,CAChB,KAAM,GAAO,GAAW,MAAM,GAAO,EAAI,MAAO,OAAQ,QAAQ,CAAC,EAC3D,EAAW,GAAY,IAAM,GAAO,EAAI,MAAO,aAAc,UAAU,EAAG,EAAE,EAC5E,EAAa,OAAO,KAAK,CAAQ,EAClC,OAAO,CAAC,EAAK,IAAO,SAAK,GAAL,EAAW,GAAI,GAAO,EAAU,EAAG,QAAQ,CAAC,GAAK,CAAE,GAC5E,MAAO,IAAI,IAAW,EAAM,CAAU,CACzC,OACM,UAAS,EAAK,CnIlDzB,QmImDQ,KAAM,GAAO,KAAK,WAAW,CAAG,IAAnB,OAAwB,GAC/B,EAAO,GAAW,MAAM,KAAK,WAAW,EAAK,IAAI,IAAzB,OAA8B,GAAW,MAAM,KAAK,SAAU,GACtF,EAAa,EAAK,QAAQ,EAAK,WAAY,GAAK,CnIrD9D,MmIqD8D,WAAK,WAAW,CAAC,IAAjB,OAAsB,GAAE,EAC9E,MAAO,IAAI,IAAW,EAAM,CAAU,CACzC,CACL,EArDO,UAEI,EAFJ,GAEI,MAAM,GAAI,IAAW,GAAW,OAAO,KAAK,CAAC,GAC7C,EAHJ,GAGI,QAAQ,GAAI,IAAW,GAAW,OAAO,OAAO,CAAC,GACjD,EAJJ,GAII,QAAQ,GAAI,IAAW,GAAW,OAAO,OAAO,EAAG,CAAE,MAAO,GAAG,CAAE,GACjE,EALJ,GAKI,OAAO,GAAI,IAAW,GAAW,OAAO,MAAM,EAAG,CAAE,MAAO,GAAG,CAAE,GCRnE,MAAM,EAAkB,CAK3B,YAAY,EAAM,EAAc,CAJhC,eACA,uBACA,kBACA,kBAEI,KAAK,KAAO,EACZ,KAAK,aAAe,EACpB,KAAK,QAAU,MAAM,CAAI,EAAE,KAAK,CAAC,EACjC,KAAK,QAAU,CAAC,CAAY,CAC/B,CACD,MAAM,EAAG,EAAG,EAAG,CACX,MAAQ,IAAK,GAAM,IAAK,GAAK,CAChC,CACD,IAAI,EAAG,EAAG,EAAG,CACT,KAAM,GAAK,KAAK,QAAQ,KAAK,MAAM,EAAG,EAAG,CAAC,GAC1C,MAAO,MAAK,QAAQ,EACvB,CACD,IAAI,EAAG,EAAG,EAAG,EAAO,CAChB,GAAI,GAAK,KAAK,QAAQ,UAAU,GAAK,EAAE,OAAO,CAAK,CAAC,EACpD,CAAI,GAAO,IACP,GAAK,KAAK,QAAQ,OAClB,KAAK,QAAQ,KAAK,CAAK,GAE3B,KAAK,QAAQ,KAAK,MAAM,EAAG,EAAG,CAAC,GAAK,CACvC,CACL,CCxBO,cAAmB,CAKtB,YAAY,EAAM,CAJlB,eAGA,iBAEI,KAAK,KAAO,EACZ,KAAK,OAAS,GAAI,IAAkB,GAAa,KAAM,GAAW,GAAG,CACxE,IACG,YAAY,CACZ,MAAO,MAAK,MAAQ,CACvB,CACD,cAAc,EAAG,EAAG,EAAG,CACnB,MAAO,MAAK,OAAO,IAAI,EAAG,EAAG,CAAC,CACjC,CACD,cAAc,EAAG,EAAG,EAAG,EAAO,CAC1B,KAAK,OAAO,IAAI,EAAG,EAAG,EAAG,CAAK,CACjC,CACL,EAlBO,UAEI,EAFJ,GAEI,QAAQ,IACR,EAHJ,GAGI,OAAO,GAAa,MAAQ,GAAa,MAAQ,GAAa,OCHlE,MAAM,EAAM,CAKf,YAAY,EAAM,EAAQ,EAAK,CAJ/B,eACA,iBACA,cACA,mBAEI,KAAK,KAAO,EACZ,KAAK,OAAS,EACd,KAAK,IAAM,EACX,KAAK,SAAW,MAAM,KAAK,aAAa,EAAE,KAAK,IAAI,CACtD,IACG,OAAO,CACP,MAAO,MAAK,KAAO,KAAK,MAC3B,IACG,aAAa,CACb,MAAO,MAAK,MAAQ,CACvB,IACG,aAAa,CACb,MAAS,MAAK,KAAO,GAAM,GAAK,CACnC,IACG,gBAAgB,CAChB,MAAO,MAAK,WAAa,KAAK,UACjC,CACD,gBAAgB,EAAG,CACf,MAAQ,IAAK,GAAK,KAAK,UAC1B,CACD,cAAc,EAAK,CtI5BvB,MsI6BQ,KAAM,CAAC,EAAG,EAAG,GAAK,EACZ,EAAU,KAAK,SAAS,KAAK,gBAAgB,CAAC,GACpD,MAAO,oBAAS,cAAc,EAAI,GAAK,EAAI,GAAK,EAAI,MAA7C,OAAqD,GAAW,GAC1E,CACD,cAAc,EAAK,EAAO,CACtB,KAAM,CAAC,EAAG,EAAG,GAAK,EACZ,EAAe,KAAK,gBAAgB,CAAC,EAC3C,GAAI,GAAU,KAAK,SAAS,GAC5B,GAAI,IAAY,KAAM,CAClB,GAAI,EAAM,OAAO,GAAW,GAAG,EAC3B,OACJ,EAAU,KAAK,mBAAmB,CAAY,CACjD,CACD,EAAQ,cAAc,EAAI,GAAK,EAAI,GAAK,EAAI,GAAK,CAAK,CACzD,CACD,mBAAmB,EAAO,CACtB,MAAI,MAAK,SAAS,IAAU,MACxB,MAAK,SAAS,GAAS,GAAI,IAAa,KAAK,WAAa,CAAK,GAE5D,KAAK,SAAS,EACxB,CACL,CClDO,GAAI,IACX,CAAC,SAAU,EAAU,CACjB,WAAgB,EAAG,EAAG,CAClB,MAAO,CAAC,EAAG,CAAC,CACf,CACD,EAAS,OAAS,EAClB,WAAsB,EAAU,CAC5B,MAAO,CAAC,EAAS,IAAM,EAAG,EAAS,IAAM,CAAC,CAC7C,CACD,EAAS,aAAe,EACxB,WAAkB,EAAM,CACpB,MAAO,CAAC,OAAO,CAAI,EAAI,WAAY,OAAO,GAAQ,OAAO,EAAE,CAAC,CAAC,CAChE,CACD,EAAS,SAAW,EACpB,WAAgB,EAAU,CACtB,MAAO,GAAO,EAAS,GAAI,EAAS,EAAE,CACzC,CACD,EAAS,OAAS,EAClB,WAAgB,EAAG,EAAG,CAClB,MAAO,QAAO,EAAI,UAAU,EAAI,OAAO,EAAI,UAAU,GAAK,OAAO,EAAE,CACtE,CACD,EAAS,OAAS,EAClB,WAAmB,EAAU,CACzB,MAAO,GAAS,IAAM,CACzB,CACD,EAAS,UAAY,EACrB,WAAmB,EAAU,CACzB,MAAO,GAAS,IAAM,CACzB,CACD,EAAS,UAAY,EACrB,WAAmB,EAAU,CACzB,MAAQ,GAAS,IAAM,GAAK,EAC/B,CACD,EAAS,UAAY,EACrB,WAAmB,EAAU,CACzB,MAAQ,GAAS,IAAM,GAAK,EAC/B,CACD,EAAS,UAAY,CACzB,GAAG,IAAa,IAAW,GAAG,ECrCvB,GAAI,IACX,CAAC,SAAU,EAAQ,CACf,WAAgB,EAAU,EAAc,CACpC,MAAO,CAAC,GACA,MAAO,IAAQ,SACR,EAAU,EAAU,GAAW,MAAM,CAAG,CAAC,EAGzC,EAAO,EAAa,CAAG,CAAC,CAG1C,CACD,EAAO,OAAS,EAChB,WAAgB,EAAO,EAAI,CACvB,MAAO,CACH,MAAO,IAAM,EACb,IAAK,IAAM,CACvB,CACK,CACD,EAAO,OAAS,EAChB,WAAmB,EAAU,EAAI,CAC7B,MAAO,CACH,MAAO,IAAM,EAAS,WAAW,CAAE,EACnC,IAAK,IAAM,CACvB,CACK,CACD,EAAO,UAAY,CACvB,GAAG,IAAW,IAAS,GAAG,EC1BnB,cAAe,CAMlB,YAAY,EAAK,EAAQ,CALzB,cACA,iBAEA,iBAAU,GAAI,MACd,iBAAU,GAAI,MAEV,KAAK,IAAM,EACX,KAAK,OAAS,CACjB,CACD,SAAS,EAAI,EAAO,EAAS,CACzB,YAAK,QAAQ,IAAI,EAAG,SAAQ,EAAI,CAAK,EACjC,GACA,KAAK,QAAQ,IAAI,EAAG,SAAQ,EAAI,CAAK,EAElC,GAAO,UAAU,KAAM,CAAE,CACnC,CACD,OAAO,EAAI,CACP,KAAM,GAAU,KAAK,QAAQ,OAAO,EAAG,SAAQ,CAAE,EACjD,YAAK,QAAQ,OAAO,EAAG,SAAU,GAC1B,CACV,CACD,MAAO,CACH,MAAO,CAAC,GAAG,KAAK,QAAQ,KAAI,CAAE,EAAE,IAAI,GAAK,GAAW,MAAM,CAAC,CAAC,CAC/D,CACD,IAAI,EAAI,CACJ,MAAO,MAAK,QAAQ,IAAI,EAAG,SAAU,EACxC,CACD,IAAI,EAAI,CACJ,MAAO,MAAK,QAAQ,IAAI,EAAG,SAAU,EACxC,CACD,WAAW,EAAI,CACX,KAAM,GAAQ,KAAK,QAAQ,IAAI,EAAG,SAAQ,CAAE,EAC5C,GAAI,IAAU,OACV,KAAM,IAAI,OAAM,kBAAkB,KAAK,IAAI,SAAU,MAAK,EAAG,SAAU,GAAE,EAE7E,MAAO,EACV,CACD,MAAM,EAAK,CACP,GAAI,CAAC,KAAK,OACN,KAAM,IAAI,OAAM,wBAAwB,KAAK,IAAI,SAAQ,GAAI,EAEjE,MAAO,MAAK,OAAO,CAAG,CACzB,CACD,OAAQ,CACJ,KAAK,QAAQ,QACb,SAAW,CAAC,EAAK,IAAU,MAAK,QAAQ,UACpC,KAAK,QAAQ,IAAI,EAAK,CAAK,EAE/B,MAAO,KACV,CACD,OAAO,EAAO,CACV,GAAI,CAAC,KAAK,IAAI,OAAO,EAAM,GAAG,EAC1B,KAAM,IAAI,OAAM,kCAAkC,EAAM,IAAI,kCAAkC,KAAK,IAAI,SAAU,GAAE,EAEvH,SAAW,KAAO,GAAM,OACpB,KAAK,QAAQ,IAAI,EAAI,SAAU,EAAE,EAAM,WAAW,CAAG,CAAC,EAE1D,MAAO,KACV,CACD,YAAa,CACT,MAAO,IAAI,IAAS,KAAK,IAAK,KAAK,MAAM,CAC5C,CACD,QAAQ,EAAI,CACR,SAAW,CAAC,EAAK,IAAU,MAAK,QAAQ,UACpC,EAAG,GAAW,MAAM,CAAG,EAAG,EAAO,IAAI,CAE5C,CACD,IAAI,EAAI,CACJ,MAAO,CAAC,GAAG,KAAK,QAAQ,QAAO,CAAE,EAAE,IAAI,CAAC,CAAC,EAAK,KACnC,EAAG,GAAW,MAAM,CAAG,EAAG,EAAO,IAAI,CAC/C,CACJ,CACL,EAzEO,UAGI,EAHJ,GAGI,WAAW,GAAI,IAAS,GAAW,OAAO,MAAM,CAAC,GCHrD,MAAM,EAAU,CAKnB,YAAY,EAAM,EAAU,GAAI,EAAS,GAAI,CAJ7C,eACA,kBACA,iBACA,mBAAY,IAER,KAAK,KAAO,EACZ,KAAK,QAAU,EACf,KAAK,OAAS,EACd,EAAO,QAAQ,GAAS,CACpB,GAAI,CAAC,KAAK,SAAS,EAAM,GAAG,EACxB,KAAM,IAAI,OAAM,kBAAkB,EAAM,6CAA6C,KAAK,MAAM,EAEpG,KAAK,UAAU,EAAM,IAAI,GAAK,EAAK,GAAK,EAAK,GAAK,EAAM,IAAI,GAAK,EAAK,GAAK,EAAM,IAAI,IAAM,CACvG,CAAS,CACJ,CACD,SAAU,CACN,MAAO,MAAK,IACf,CACD,SAAS,EAAK,EAAM,EAAY,EAAK,CACjC,GAAI,CAAC,KAAK,SAAS,CAAG,EAClB,KAAM,IAAI,OAAM,uBAAuB,kCAAoC,KAAK,MAAM,EAE1F,KAAM,GAAa,GAAI,IAAW,EAAM,CAAU,EAClD,GAAI,GAAQ,KAAK,QAAQ,UAAU,GAAK,EAAE,OAAO,CAAU,CAAC,EAC5D,MAAI,KAAU,IACV,GAAQ,KAAK,QAAQ,OACrB,KAAK,QAAQ,KAAK,CAAU,GAEhC,KAAK,OAAO,KAAK,CAAE,MAAK,QAAO,KAAG,CAAE,EACpC,KAAK,UAAU,EAAI,GAAK,KAAK,KAAK,GAAK,KAAK,KAAK,GAAK,EAAI,GAAK,KAAK,KAAK,GAAK,EAAI,IAAM,CAAE,MAAK,QAAO,KAAG,EAClG,IACV,CACD,WAAY,CACR,MAAO,MAAK,OAAO,IAAI,GAAM,EACzB,IAAK,EAAE,IACP,MAAO,KAAK,QAAQ,EAAE,OACtB,IAAK,EAAE,GACV,EAAC,CACL,CACD,SAAS,EAAK,CACV,GAAI,CAAC,KAAK,SAAS,CAAG,EAClB,MAAO,MACX,KAAM,GAAQ,KAAK,UAAU,EAAI,GAAK,KAAK,KAAK,GAAK,KAAK,KAAK,GAAK,EAAI,GAAK,KAAK,KAAK,GAAK,EAAI,IAChG,MAAK,GAEe,CAChB,IAAK,EAAM,IACX,MAAO,KAAK,QAAQ,EAAM,OAC1B,IAAK,EAAM,GACvB,EALmB,IAOd,CACD,SAAS,EAAK,CACV,MAAO,GAAI,IAAM,GAAK,EAAI,GAAK,KAAK,KAAK,IAClC,EAAI,IAAM,GAAK,EAAI,GAAK,KAAK,KAAK,IAClC,EAAI,IAAM,GAAK,EAAI,GAAK,KAAK,KAAK,EAC5C,OACM,SAAQ,EAAK,CAChB,KAAM,GAAO,GAAW,EAAI,MAAO,OAAQ,MAAO,CAAC,EAC7C,EAAU,GAAW,EAAI,MAAO,UAAW,UAAU,EACtD,IAAI,GAAQ,GAAW,QAAQ,CAAE,KAAM,GAAI,MAAO,CAAM,EAAC,EACxD,EAAS,GAAW,EAAI,MAAO,SAAU,UAAU,EACpD,IAAI,GAAQ,CACb,KAAM,GAAM,GAAW,EAAM,MAAO,MAAO,CAAC,EACtC,EAAQ,GAAO,EAAM,QAAS,KAAK,EACnC,EAAM,GAAY,IAAM,GAAO,EAAM,MAAO,UAAU,EAAG,MAAS,EACxE,MAAO,CAAE,MAAK,QAAO,MACjC,CAAS,EACD,MAAO,IAAI,IAAU,EAAM,EAAS,CAAM,CAC7C,CACL,CCzEO,YAAgB,EAAG,CACtB,MAAO,GAAI,CACf,CACO,YAAe,EAAG,EAAK,EAAK,CAC/B,MAAO,MAAK,IAAI,EAAK,KAAK,IAAI,EAAK,CAAC,CAAC,CACzC,CACO,YAAc,EAAG,EAAG,EAAG,CAC1B,MAAO,GAAI,EAAK,GAAI,EACxB,CACO,YAAe,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CACpC,MAAO,IAAK,EAAG,GAAK,EAAG,EAAG,CAAC,EAAG,GAAK,EAAG,EAAG,CAAC,CAAC,CAC/C,CACO,YAAe,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CACnD,MAAO,IAAK,EAAG,GAAM,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAAG,GAAM,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,CAAC,CACnE,CACO,YAAkB,EAAG,EAAG,EAAG,CAC9B,MAAI,KAAM,EACC,EAAC,EACR,IAAM,EACC,EAAC,EACL,EAAG,EAAG,EAAK,GAAC,EAAK,EAAG,EAC/B,CACO,YAAmB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CACxC,MAAO,IAAS,EAAG,IAAM,GAAS,EAAG,EAAG,CAAC,EAAG,IAAM,GAAS,EAAG,EAAG,CAAC,CAAC,CACvE,CACO,YAAmB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CACvD,MAAO,IAAS,EAAG,IAAM,GAAU,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAAG,IAAM,GAAU,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,CAAC,CAC3F,CACO,YAAqB,EAAG,EAAG,EAAG,CACjC,MAAI,GAAI,EACG,EAEF,EAAI,EACF,EAGA,GAAK,EAAG,EAAG,CAAC,CAE3B,CACO,YAAqB,EAAG,EAAG,EAAG,CACjC,MAAQ,GAAI,GAAM,GAAI,EAC1B,CACO,YAAoB,EAAG,CAC1B,MAAO,GAAI,EAAI,EAAK,GAAK,GAAI,EAAI,IAAM,GAC3C,CACO,YAAa,EAAG,EAAG,EAAG,EAAG,EAAG,CAC/B,MAAO,IAAK,GAAY,EAAG,EAAG,CAAC,EAAG,EAAG,CAAC,CAC1C,CACO,YAAoB,EAAG,EAAG,EAAG,EAAG,EAAG,CACtC,MAAO,IAAY,EAAG,EAAG,GAAY,EAAG,EAAG,CAAC,CAAC,CACjD,CACO,YAAsB,EAAG,EAAI,EAAW,CAC3C,GAAI,GAAK,EAAK,EACd,KAAO,EAAK,GAAG,CACX,KAAM,GAAK,KAAK,MAAM,EAAK,CAAC,EACtB,EAAK,EAAI,EACf,GAAI,EAAU,CAAE,EAAG,CACf,EAAK,EACL,QACH,CACD,EAAI,EAAK,EACT,GAAM,EAAK,CACd,CACD,MAAO,EACX,CACO,YAAiB,EAAG,EAAG,EAAG,CAC7B,GAAI,GAAO,OAAO,EAAI,OAAO,EAAI,OAAO,CAAC,EAAI,OAAO,SAAS,EAAI,OAAO,CAAC,EACzE,SAAO,EAAO,EAAO,OAAO,QAAQ,EAAI,EAAO,OAAO,EAAE,EACjD,GAAQ,OAAO,EAAE,CAC5B,CACO,YAAuB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAClD,MAAO,QAAO,CAAC,GAAK,OAAO,EAAE,EACvB,OAAO,CAAC,GAAK,OAAO,EAAE,EACtB,OAAO,CAAC,GAAK,OAAO,EAAE,EACtB,OAAO,CAAC,GAAK,OAAO,EAAE,EACtB,OAAO,CAAC,GAAK,OAAO,EAAE,EACtB,OAAO,CAAC,GAAK,OAAO,EAAE,EACtB,OAAO,CAAC,GAAK,OAAO,CAAC,EACrB,OAAO,CAAC,CAClB,CACO,YAAsB,EAAG,CAC5B,MAAQ,GAAK,EAAI,KAAQ,CAC7B,CACO,YAAyB,EAAG,CAC/B,UAAK,EACL,GAAK,GAAK,EACV,GAAK,GAAK,EACV,GAAK,GAAK,EACV,GAAK,GAAK,EACV,GAAK,GAAK,GACV,GAAK,GAAK,GACH,EAAI,CACf,CC1FO,GAAI,IACX,CAAC,SAAU,EAAsB,CAC7B,WAAY,EAAK,CACb,MAAO,OAAO,IAAQ,UAAY,IAAQ,MAAQ,YAAc,IAAO,YAAc,EACxF,CACD,EAAqB,GAAK,CAC9B,GAAG,IAAyB,IAAuB,CAAE,EAAC,EAC/C,GAAI,IACX,CAAC,SAAU,EAAa,CACpB,WAAkB,EAAK,EAAW,C5IXtC,Y4IYQ,GAAI,MAAO,IAAQ,SACf,MAAO,IAAI,GAAS,CAAG,EAE3B,KAAM,GAAO,KAAK,WAAW,CAAG,IAAnB,OAAwB,GAC/B,EAAS,GAAI,GAAW,EAAU,EAAK,UAAU,CAAC,EAClD,EAAS,KAAK,UAAU,EAAK,OAAQ,I5IjBnD,M4IiBwD,WAAK,WAAW,CAAC,IAAjB,OAAsB,CAAE,MAAzD,OAA8D,GAC7E,GAAI,EAAO,SAAW,EAClB,MAAO,IAAI,GAAS,CAAC,EAEzB,SAAW,KAAS,GAAQ,CACxB,KAAM,GAAW,KAAK,WAAW,EAAM,QAAQ,IAA9B,OAAmC,EAC9C,EAAQ,EAAS,EAAM,MAAO,CAAS,EACvC,EAAa,KAAK,WAAW,EAAM,UAAU,IAAhC,OAAqC,EACxD,EAAO,SAAS,EAAU,EAAO,CAAU,CAC9C,CACD,MAAO,EACV,CACD,EAAY,SAAW,EACvB,MAAM,CAAS,CAEX,YAAY,EAAO,CADnB,gBAEI,KAAK,MAAQ,CAChB,CACD,SAAU,CACN,MAAO,MAAK,KACf,CACD,KAAM,CACF,MAAO,MAAK,KACf,CACD,KAAM,CACF,MAAO,MAAK,KACf,CACD,QAAS,CACL,MAAO,KACV,CACD,iBAAkB,CAAG,CACxB,CACD,EAAY,SAAW,EACvB,MAAM,CAAW,CAOb,YAAY,EAAY,EAAY,GAAI,EAAS,CAAE,EAAE,EAAc,GAAI,CANvE,qBACA,oBACA,iBACA,sBACA,uBAAgB,OAAO,mBACvB,uBAAgB,OAAO,mBAEnB,KAAK,WAAa,EAClB,KAAK,UAAY,EACjB,KAAK,OAAS,EACd,KAAK,YAAc,CACtB,CACD,QAAQ,EAAG,CACP,KAAM,GAAa,KAAK,WAAW,QAAQ,CAAC,EACtC,EAAI,GAAa,EAAG,KAAK,UAAU,OAAQ,GAAK,EAAa,KAAK,UAAU,EAAE,EAAI,EAClF,EAAI,KAAK,UAAU,OAAS,EAClC,GAAI,EAAI,EACJ,MAAO,MAAK,OAAO,GAAG,QAAQ,CAAC,EAAI,KAAK,YAAY,GAAM,GAAa,KAAK,UAAU,IAE1F,GAAI,IAAM,EACN,MAAO,MAAK,OAAO,GAAG,QAAQ,CAAC,EAAI,KAAK,YAAY,GAAM,GAAa,KAAK,UAAU,IAE1F,KAAM,GAAO,KAAK,UAAU,GACtB,EAAO,KAAK,UAAU,EAAI,GAC1B,EAAO,KAAK,YAAY,GACxB,EAAO,KAAK,YAAY,EAAI,GAC5B,EAAK,GAAa,GAAS,GAAO,GAClC,EAAO,KAAK,OAAO,GAAG,QAAQ,CAAC,EAC/B,EAAO,KAAK,OAAO,EAAI,GAAG,QAAQ,CAAC,EACnC,EAAK,EAAQ,GAAO,GAAS,GAAO,GACpC,EAAK,CAAC,EAAQ,GAAO,GAAS,GAAO,GAE3C,MADY,IAAK,EAAG,EAAM,CAAI,EAAI,EAAK,GAAM,GAAK,GAAK,EAAG,EAAI,CAAE,CAEnE,CACD,KAAM,CACF,MAAO,MAAK,aACf,CACD,KAAM,CACF,MAAO,MAAK,aACf,CACD,OAAO,EAAS,CACZ,MAAO,IAAI,GAAW,EAAQ,KAAK,UAAU,EAAG,KAAK,UAAW,KAAK,OAAO,IAAI,GAAK,EAAE,OAAO,CAAO,CAAC,EAAG,KAAK,WAAW,CAC5H,CACD,SAAS,EAAU,EAAO,EAAa,EAAG,CACtC,YAAK,UAAU,KAAK,CAAQ,EAC5B,KAAK,OAAO,KAAK,MAAO,IAAU,SAC5B,GAAI,GAAY,SAAS,CAAK,EAC9B,CAAK,EACX,KAAK,YAAY,KAAK,CAAU,EACzB,IACV,CACD,iBAAkB,CACd,GAAI,CAAC,GAAqB,GAAG,KAAK,UAAU,EACxC,OAEJ,KAAM,GAAU,KAAK,UAAU,OAAS,EACxC,GAAI,GAAY,OAAO,kBACnB,EAAY,OAAO,kBACvB,KAAM,GAAgB,KAAK,WAAW,SAAQ,EACxC,EAAgB,KAAK,WAAW,SAAQ,EAC9C,SAAW,KAAe,MAAK,OAC3B,EAAY,gBAAe,EAE/B,GAAI,EAAgB,KAAK,UAAU,GAAI,CACnC,KAAM,GAAY,EAAW,aAAa,EAAe,KAAK,UAAY,KAAK,OAAO,GAAI,IAAG,EAAI,KAAK,YAAa,CAAC,EAC9G,EAAY,EAAW,aAAa,EAAe,KAAK,UAAY,KAAK,OAAO,GAAI,IAAG,EAAI,KAAK,YAAa,CAAC,EACpH,EAAY,KAAK,IAAI,EAAW,KAAK,IAAI,EAAW,CAAS,CAAC,EAC9D,EAAY,KAAK,IAAI,EAAW,KAAK,IAAI,EAAW,CAAS,CAAC,CACjE,CACD,GAAI,EAAgB,KAAK,UAAU,GAAU,CACzC,KAAM,GAAY,EAAW,aAAa,EAAe,KAAK,UAAY,KAAK,OAAO,GAAU,IAAG,EAAI,KAAK,YAAa,CAAO,EAC1H,EAAY,EAAW,aAAa,EAAe,KAAK,UAAY,KAAK,OAAO,GAAU,IAAG,EAAI,KAAK,YAAa,CAAO,EAChI,EAAY,KAAK,IAAI,EAAW,KAAK,IAAI,EAAW,CAAS,CAAC,EAC9D,EAAY,KAAK,IAAI,EAAW,KAAK,IAAI,EAAW,CAAS,CAAC,CACjE,CACD,SAAW,KAAe,MAAK,OAC3B,EAAY,KAAK,IAAI,EAAW,EAAY,IAAG,CAAE,EACjD,EAAY,KAAK,IAAI,EAAW,EAAY,IAAG,CAAE,EAErD,OAAS,GAAI,EAAG,EAAI,EAAS,EAAE,EAAG,CAC9B,KAAM,GAAe,KAAK,UAAU,GAE9B,EAAgB,CADA,IAAK,UAAU,EAAI,GACH,EAChC,EAAa,KAAK,OAAO,GACzB,EAAc,KAAK,OAAO,EAAI,GAC9B,EAAU,EAAW,MACrB,EAAU,EAAW,MACrB,EAAW,EAAY,MACvB,EAAW,EAAY,MACvB,EAAiB,KAAK,YAAY,GAClC,EAAkB,KAAK,YAAY,EAAI,GAC7C,GAAI,IAAmB,GAAO,IAAoB,EAAK,CACnD,KAAM,GAAoB,EAAiB,EACrC,EAAqB,EAAkB,EACvC,EAAW,KAAK,IAAI,EAAS,CAAQ,EACrC,EAAW,KAAK,IAAI,EAAS,CAAQ,EACrC,EAAe,EAAoB,EAAW,EAC9C,EAAe,EAAoB,EAAW,EAC9C,EAAgB,CAAC,EAAqB,EAAW,EACjD,EAAgB,CAAC,EAAqB,EAAW,EACjD,EAAW,KAAK,IAAI,EAAc,CAAa,EAC/C,EAAW,KAAK,IAAI,EAAc,CAAa,EACrD,EAAY,KAAK,IAAI,EAAW,EAAW,IAAO,CAAQ,EAC1D,EAAY,KAAK,IAAI,EAAW,EAAW,IAAO,CAAQ,CAC7D,CACJ,CACD,KAAK,cAAgB,EACrB,KAAK,cAAgB,CACxB,OACM,cAAa,EAAU,EAAW,EAAO,EAAa,EAAU,CACnE,KAAM,GAAa,EAAY,GAC/B,MAAO,IAAc,EAAM,EAAQ,EAAQ,EAAc,GAAW,EAAU,GACjF,CACJ,CACD,EAAY,WAAa,CAC7B,GAAG,IAAgB,IAAc,GAAG,sCCtKpC,CAAC,UAAW,CACV,GAAI,GACE,mEAENC,EAAQ,CAEN,KAAM,SAAS,EAAG,EAAG,CACnB,MAAQ,IAAK,EAAM,IAAO,GAAK,CAChC,EAGD,KAAM,SAAS,EAAG,EAAG,CACnB,MAAQ,IAAM,GAAK,EAAO,IAAM,CACjC,EAGD,OAAQ,SAAS,EAAG,CAElB,GAAI,EAAE,aAAe,OACnB,MAAOA,GAAM,KAAK,EAAG,CAAC,EAAI,SAAaA,EAAM,KAAK,EAAG,EAAE,EAAI,WAI7D,OAAS,GAAI,EAAG,EAAI,EAAE,OAAQ,IAC5B,EAAE,GAAKA,EAAM,OAAO,EAAE,EAAE,EAC1B,MAAO,EACR,EAGD,YAAa,SAAS,EAAG,CACvB,OAAS,GAAQ,GAAI,EAAI,EAAG,IAC1B,EAAM,KAAK,KAAK,MAAM,KAAK,OAAQ,EAAG,GAAG,CAAC,EAC5C,MAAO,EACR,EAGD,aAAc,SAAS,EAAO,CAC5B,OAAS,GAAQ,GAAI,EAAI,EAAG,EAAI,EAAG,EAAI,EAAM,OAAQ,IAAK,GAAK,EAC7D,EAAM,IAAM,IAAM,EAAM,IAAO,GAAK,EAAI,GAC1C,MAAO,EACR,EAGD,aAAc,SAAS,EAAO,CAC5B,OAAS,GAAQ,GAAI,EAAI,EAAG,EAAI,EAAM,OAAS,GAAI,GAAK,EACtD,EAAM,KAAM,EAAM,IAAM,KAAQ,GAAK,EAAI,GAAO,GAAI,EACtD,MAAO,EACR,EAGD,WAAY,SAAS,EAAO,CAC1B,OAAS,GAAM,CAAE,EAAE,EAAI,EAAG,EAAI,EAAM,OAAQ,IAC1C,EAAI,KAAM,GAAM,KAAO,GAAG,SAAS,EAAE,CAAC,EACtC,EAAI,KAAM,GAAM,GAAK,IAAK,SAAS,EAAE,CAAC,EAExC,MAAO,GAAI,KAAK,EAAE,CACnB,EAGD,WAAY,SAAS,EAAK,CACxB,OAAS,GAAQ,CAAE,EAAE,EAAI,EAAG,EAAI,EAAI,OAAQ,GAAK,EAC/C,EAAM,KAAK,SAAS,EAAI,OAAO,EAAG,CAAC,EAAG,EAAE,CAAC,EAC3C,MAAO,EACR,EAGD,cAAe,SAAS,EAAO,CAC7B,OAAS,GAAS,CAAE,EAAE,EAAI,EAAG,EAAI,EAAM,OAAQ,GAAK,EAElD,OADI,GAAW,EAAM,IAAM,GAAO,EAAM,EAAI,IAAM,EAAK,EAAM,EAAI,GACxD,EAAI,EAAG,EAAI,EAAG,IACrB,CAAI,CAAI,EAAI,EAAI,GAAK,EAAM,OAAS,EAClC,EAAO,KAAK,EAAU,OAAQ,IAAY,EAAK,GAAI,GAAM,EAAI,CAAC,EAE9D,EAAO,KAAK,GAAG,EAErB,MAAO,GAAO,KAAK,EAAE,CACtB,EAGD,cAAe,SAAS,EAAQ,CAE9B,EAAS,EAAO,QAAQ,iBAAkB,EAAE,EAE5C,OAAS,GAAQ,CAAE,EAAE,EAAI,EAAG,EAAQ,EAAG,EAAI,EAAO,OAC9C,EAAQ,EAAE,EAAI,EAChB,CAAI,EAAS,GACb,EAAM,KAAO,GAAU,QAAQ,EAAO,OAAO,EAAI,CAAC,CAAC,EAC5C,KAAK,IAAI,EAAG,GAAK,EAAQ,CAAC,EAAI,IAAQ,EAAQ,EAC9C,EAAU,QAAQ,EAAO,OAAO,CAAC,CAAC,IAAO,EAAI,EAAQ,CAAG,EAEjE,MAAO,EACR,CACL,EAEEC,WAAiBD,CACnB,GAAI,EC/FJ,GAAI,IAAU,CAEZ,KAAM,CAEJ,cAAe,SAAS,EAAK,CAC3B,MAAO,IAAQ,IAAI,cAAc,SAAS,mBAAmB,CAAG,CAAC,CAAC,CACnE,EAGD,cAAe,SAAS,EAAO,CAC7B,MAAO,oBAAmB,OAAO,GAAQ,IAAI,cAAc,CAAK,CAAC,CAAC,CACnE,CACF,EAGD,IAAK,CAEH,cAAe,SAAS,EAAK,CAC3B,OAAS,GAAQ,GAAI,EAAI,EAAG,EAAI,EAAI,OAAQ,IAC1C,EAAM,KAAK,EAAI,WAAW,CAAC,EAAI,GAAI,EACrC,MAAO,EACR,EAGD,cAAe,SAAS,EAAO,CAC7B,OAAS,GAAM,GAAI,EAAI,EAAG,EAAI,EAAM,OAAQ,IAC1C,EAAI,KAAK,OAAO,aAAa,EAAM,EAAE,CAAC,EACxC,MAAO,GAAI,KAAK,EAAE,CACnB,CACF,CACH,EAEA,GAAiB;;;;;MCvBjB,IAAiB,SAAU,EAAK,CAC9B,MAAO,IAAO,MAAS,IAAS,CAAG,GAAK,GAAa,CAAG,GAAK,CAAC,CAAC,EAAI,UACrE,EAEA,YAAmB,EAAK,CACtB,MAAO,CAAC,CAAC,EAAI,aAAe,MAAO,GAAI,YAAY,UAAa,YAAc,EAAI,YAAY,SAAS,CAAG,CAC5G,CAGA,YAAuB,EAAK,CAC1B,MAAO,OAAO,GAAI,aAAgB,YAAc,MAAO,GAAI,OAAU,YAAc,GAAS,EAAI,MAAM,EAAG,CAAC,CAAC,CAC7G,CCpBA,CAAC,UAAU,CACT,GAAIA,GAAQ9tB,GAAgB,QACxB,EAAOC,GAAmB,KAC1B,EAAWE,GACX,EAAMF,GAAmB,IAG7B+tB,EAAM,SAAU,EAAS,EAAS,CAEhC,CAAI,CAAQ,aAAe,OACzB,CAAI,EAAW,EAAQ,WAAa,SAClC,EAAU,EAAI,cAAc,CAAO,EAEnC,EAAU,EAAK,cAAc,CAAO,EACnC,CAAI,CAAS,CAAO,EACvB,EAAU,MAAM,UAAU,MAAM,KAAK,EAAS,CAAC,EACxC,CAAC,MAAM,QAAQ,CAAO,GAAK,EAAQ,cAAgB,YAC1D,GAAU,EAAQ,YAWpB,OARI,GAAIF,EAAM,aAAa,CAAO,EAC9B,EAAI,EAAQ,OAAS,EACrB,EAAK,WACL,EAAI,WACJ,EAAI,YACJ,EAAK,UAGA,EAAI,EAAG,EAAI,EAAE,OAAQ,IAC5B,EAAE,GAAO,GAAE,IAAO,EAAM,EAAE,KAAO,IAAO,SAC/B,GAAE,IAAM,GAAO,EAAE,KAAQ,GAAM,WAI1C,EAAE,IAAM,IAAM,KAAS,EAAI,GAC3B,EAAK,GAAI,KAAQ,GAAM,GAAK,IAAM,EAQlC,OALI,GAAKE,EAAI,IACT,EAAKA,EAAI,IACT,EAAKA,EAAI,IACT,EAAKA,EAAI,IAEJ,EAAI,EAAG,EAAI,EAAE,OAAQ,GAAK,GAAI,CAErC,GAAI,GAAK,EACL,EAAK,EACL,EAAK,EACL,EAAK,EAET,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAG,GAAK,EAAG,UAAU,EAC1C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAG,GAAI,GAAI,UAAU,EAC1C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAG,GAAI,GAAK,SAAS,EAC1C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAG,GAAI,GAAI,WAAW,EAC3C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAG,GAAK,EAAG,UAAU,EAC1C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAG,GAAI,GAAK,UAAU,EAC3C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAG,GAAI,GAAI,WAAW,EAC3C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAG,GAAI,GAAI,SAAS,EACzC,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAG,GAAK,EAAI,UAAU,EAC3C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAG,GAAI,GAAI,WAAW,EAC3C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAE,IAAK,GAAI,MAAM,EACtC,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAE,IAAK,GAAI,WAAW,EAC3C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAE,IAAM,EAAI,UAAU,EAC3C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAE,IAAK,GAAI,SAAS,EACzC,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAE,IAAK,GAAI,WAAW,EAC3C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAE,IAAK,GAAK,UAAU,EAE3C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAG,GAAK,EAAG,UAAU,EAC1C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAG,GAAK,EAAG,WAAW,EAC3C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAE,IAAK,GAAK,SAAS,EAC1C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAG,GAAI,GAAI,UAAU,EAC1C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAG,GAAK,EAAG,UAAU,EAC1C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAE,IAAM,EAAI,QAAQ,EACzC,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAE,IAAK,GAAI,UAAU,EAC1C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAG,GAAI,GAAI,UAAU,EAC1C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAG,GAAK,EAAI,SAAS,EAC1C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAE,IAAM,EAAG,WAAW,EAC3C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAG,GAAI,GAAI,UAAU,EAC1C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAG,GAAI,GAAK,UAAU,EAC3C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAE,IAAM,EAAG,WAAW,EAC3C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAG,GAAK,EAAG,SAAS,EACzC,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAG,GAAI,GAAK,UAAU,EAC3C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAE,IAAK,GAAI,WAAW,EAE3C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAG,GAAK,EAAG,OAAO,EACvC,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAG,GAAI,GAAI,WAAW,EAC3C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAE,IAAK,GAAK,UAAU,EAC3C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAE,IAAK,GAAI,SAAS,EACzC,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAG,GAAK,EAAG,WAAW,EAC3C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAG,GAAI,GAAK,UAAU,EAC3C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAG,GAAI,GAAI,UAAU,EAC1C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAE,IAAK,GAAI,WAAW,EAC3C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAE,IAAM,EAAI,SAAS,EAC1C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAG,GAAI,GAAI,UAAU,EAC1C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAG,GAAI,GAAI,UAAU,EAC1C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAG,GAAI,GAAK,QAAQ,EACzC,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAG,GAAK,EAAG,UAAU,EAC1C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAE,IAAK,GAAI,UAAU,EAC1C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAE,IAAK,GAAK,SAAS,EAC1C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAG,GAAI,GAAI,UAAU,EAE1C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAG,GAAK,EAAG,UAAU,EAC1C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAG,GAAI,GAAK,UAAU,EAC3C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAE,IAAK,GAAI,WAAW,EAC3C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAG,GAAI,GAAI,SAAS,EACzC,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAE,IAAM,EAAI,UAAU,EAC3C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAG,GAAI,GAAI,WAAW,EAC3C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAE,IAAK,GAAI,QAAQ,EACxC,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAG,GAAI,GAAI,WAAW,EAC3C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAG,GAAK,EAAI,UAAU,EAC3C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAE,IAAK,GAAI,SAAS,EACzC,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAG,GAAI,GAAI,WAAW,EAC3C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAE,IAAK,GAAK,UAAU,EAC3C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAG,GAAK,EAAG,UAAU,EAC1C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAE,IAAK,GAAI,WAAW,EAC3C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAG,GAAI,GAAK,SAAS,EAC1C,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EAAG,GAAI,GAAI,UAAU,EAE1C,EAAK,EAAI,IAAQ,EACjB,EAAK,EAAI,IAAQ,EACjB,EAAK,EAAI,IAAQ,EACjB,EAAK,EAAI,IAAQ,CAClB,CAED,MAAOF,GAAM,OAAO,CAAC,EAAG,EAAG,EAAG,CAAC,CAAC,CACpC,EAGEE,EAAI,IAAO,SAAU,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CACxC,GAAI,GAAI,EAAK,GAAI,EAAI,CAAC,EAAI,GAAM,KAAM,GAAK,EAC3C,MAAS,IAAK,EAAM,IAAO,GAAK,GAAO,CAC3C,EACEA,EAAI,IAAO,SAAU,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CACxC,GAAI,GAAI,EAAK,GAAI,EAAI,EAAI,CAAC,GAAM,KAAM,GAAK,EAC3C,MAAS,IAAK,EAAM,IAAO,GAAK,GAAO,CAC3C,EACEA,EAAI,IAAO,SAAU,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CACxC,GAAI,GAAI,EAAK,GAAI,EAAI,GAAM,KAAM,GAAK,EACtC,MAAS,IAAK,EAAM,IAAO,GAAK,GAAO,CAC3C,EACEA,EAAI,IAAO,SAAU,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CACxC,GAAI,GAAI,EAAK,GAAK,GAAI,CAAC,IAAO,KAAM,GAAK,EACzC,MAAS,IAAK,EAAM,IAAO,GAAK,GAAO,CAC3C,EAGEA,EAAI,WAAa,GACjBA,EAAI,YAAc,GAElBC,WAAiB,SAAU,EAAS,EAAS,CAC3C,GAAI,CAAyB,EAAY,KACvC,KAAM,IAAI,OAAM,oBAAsB,CAAO,EAE/C,GAAI,GAAcH,EAAM,aAAaE,EAAI,EAAS,CAAO,CAAC,EAC1D,MAAO,IAAW,EAAQ,QAAU,EAChC,GAAW,EAAQ,SAAW,EAAI,cAAc,CAAW,EAC3DF,EAAM,WAAW,CAAW,CACpC,CAEA,uBC7JO,cAAmB,CAQtB,YAAY,EAAM,CADlB,cAAO,OAAO,CAAC,GAEX,KAAK,QAAQ,CAAI,CACpB,CACD,MAAO,CACH,MAAO,IAAI,IAAa,KAAK,SAAU,EAC1C,CACD,gBAAiB,CACb,MAAO,IAAI,IAAuB,KAAK,SAAU,EACpD,CACD,QAAQ,EAAM,CACV,KAAK,KAAO,EAAO,GAAa,WAAa,GAAa,YAC7D,CACD,SAAU,CACN,KAAK,KAAO,KAAK,KAAO,GAAa,WAAa,GAAa,UAAY,GAAa,YAC3F,CACD,QAAQ,EAAO,CACX,OAAS,GAAI,EAAG,EAAI,EAAO,GAAK,EAC5B,KAAK,QAAO,CAEnB,CACD,KAAK,EAAM,CACP,KAAK,QAAO,EACZ,KAAM,GAAM,OAAO,KAAK,MAAQ,OAAO,GAAa,aAAe,CAAI,CAAC,EACxE,MAAO,GAAM,WAAa,EAAM,WAAa,CAChD,CACD,QAAQ,EAAK,CACT,GAAI,IAAQ,OACR,MAAO,MAAK,KAAK,EAAE,EAEvB,GAAK,GAAM,EAAM,IAAM,EACnB,MAAO,QAAO,OAAO,CAAG,EAAI,OAAO,KAAK,KAAK,EAAE,CAAC,GAAK,OAAO,EAAE,CAAC,EAEnE,GAAI,GAAG,EACP,KAAQ,GAAI,KAAK,KAAK,EAAE,GAAM,GAAI,EAAI,GAAQ,GAAM,GAAK,GAAG,CAC5D,MAAO,EACV,CACD,UAAW,CACP,MAAQ,QAAO,KAAK,KAAK,EAAE,CAAC,GAAK,OAAO,EAAE,GAAK,OAAO,KAAK,KAAK,EAAE,CAAC,CACtE,CACD,WAAY,CACR,MAAO,MAAK,KAAK,EAAE,EAAI,GAAa,gBACvC,CACD,YAAa,CACT,KAAM,GAAI,KAAK,KAAK,EAAE,EACtB,YAAK,QAAO,EACL,EAAI,GAAa,iBAC3B,CACL,EAvDO,UACI,EADJ,GACI,eAAe,IACf,EAFJ,GAEI,eAAe,OAAO,iBAAiB,GACvC,EAHJ,GAGI,aAAa,OAAO,aAAa,GACjC,EAJJ,GAII,YAAY,OAAO,IAAI,GACvB,EALJ,GAKI,mBAAmB,EAAI,KAAK,IAAI,EAAG,EAAE,GACrC,EANJ,GAMI,oBAAoB,EAAI,KAAK,IAAI,EAAG,EAAE,GAkD1C,MAAM,EAAuB,CAEhC,YAAY,EAAM,CADlB,eAEI,KAAK,KAAO,CACf,CACD,GAAG,EAAG,EAAG,EAAG,CACR,KAAM,GAAO,GAAQ,EAAG,EAAG,CAAC,EAC5B,MAAO,IAAI,IAAa,EAAO,KAAK,IAAI,CAC3C,CACD,WAAW,EAAM,CACb,KAAM,GAAOE,GAAI,EAAM,CAAE,QAAS,EAAI,CAAE,EAClC,EAAO,GAAc,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,EAAE,EACjG,MAAO,IAAI,IAAa,EAAO,KAAK,IAAI,CAC3C,CACD,SAAU,CACN,MAAO,CAAC,KAAK,KAAM,OAAO,CAAC,CAAC,CAC/B,CACL,CCzEO,cAAsB,CAsBzB,YAAY,EAAM,CADlB,cAAO,CAAC,OAAO,CAAC,EAAG,OAAO,CAAC,CAAC,GAExB,KAAK,KAAO,CACf,OACM,QAAO,EAAM,CAChB,MAAO,IAAI,IAAgB,GAAgB,oBAAoB,CAAI,CAAC,CACvE,OACM,eAAc,EAAO,CACxB,SAAU,GAAQ,GAAS,GAAgB,WAAa,GAAgB,WAAc,GAAgB,UACtG,EAAU,GAAQ,GAAS,GAAgB,WAAa,GAAgB,WAAc,GAAgB,UAC9F,GAAQ,GAAS,GAAgB,WAAa,GAAgB,SACzE,OACM,qBAAoB,EAAM,CAC7B,CAAI,CAAO,GACP,IAAQ,GAAgB,SAE5B,KAAM,GAAS,EAAO,GAAgB,gBAChC,EAAU,EAAS,GAAgB,gBAAmB,GAAgB,UAC5E,MAAO,CAAC,GAAgB,cAAc,CAAM,EAAG,GAAgB,cAAc,CAAM,CAAC,CACvF,OACM,YAAW,EAAO,EAAO,CAC5B,MAAQ,IAAS,EAAU,GAAgB,UAAc,GAAU,GAAgB,UAAY,CAClG,CACD,QAAQ,EAAM,CACV,KAAK,KAAO,GAAgB,oBAAoB,CAAI,CACvD,CACD,MAAO,CACH,MAAO,IAAI,IAAgB,CAAC,KAAK,KAAM,EAAE,KAAK,KAAM,EAAC,CACxD,CACD,gBAAiB,CACb,MAAO,IAAI,IAA0B,KAAK,KAAM,EAAE,KAAK,KAAI,CAAE,CAChE,CACD,MAAO,CACH,KAAM,GAAS,KAAK,KAAK,GACzB,GAAI,GAAS,KAAK,KAAK,GACvB,KAAM,GAAS,GAAgB,WAAY,EAAS,EAAU,GAAgB,UAAW,GAAgB,SAAS,EAAI,EAAU,GAAgB,UAChJ,UAAU,EACV,KAAK,KAAO,CACR,GAAgB,WAAW,EAAQ,GAAgB,SAAS,EAAI,EAAW,GAAU,GAAgB,UAAa,GAAgB,UAClI,GAAgB,WAAW,EAAQ,GAAgB,SAAS,CACxE,EACe,CACV,CACD,UAAW,CACP,GAAI,GAAQ,KAAK,OACjB,MAAI,GAAQ,GAAgB,SACxB,IAAS,GAAgB,SACtB,CACV,CACD,QAAQ,EAAO,CACX,GAAI,GAAS,KAAK,KAAK,GACnB,EAAS,KAAK,KAAK,GACvB,OAAS,GAAI,EAAG,EAAI,EAAO,GAAK,EAC5B,GAAU,EACV,EAAS,GAAgB,WAAW,EAAQ,GAAgB,SAAS,EAAI,EAAS,GAAU,GAAgB,UAC5G,EAAS,GAAgB,WAAW,EAAQ,GAAgB,SAAS,EAEzE,KAAK,KAAO,CAAC,EAAQ,CAAM,CAC9B,CACD,SAAS,EAAM,CACX,MAAO,MAAK,KAAM,GAAK,OAAO,GAAK,CAAI,CAC1C,CACD,QAAQ,EAAK,CACT,GAAI,GAAQ,KAAK,KAAI,EAAK,GAAgB,SAC1C,GAAK,EAOA,CACD,KAAM,GAAY,OAAO,CAAG,EAC5B,GAAI,GAAU,EAAQ,EAClB,EAAY,EAAU,GAAgB,SAC1C,GAAI,EAAY,EAAW,CACvB,KAAM,GAAW,GAAC,EAAY,GAAgB,UAAY,GAAgB,UAAY,EACtF,KAAO,EAAY,GACf,EAAQ,KAAK,OAAS,GAAgB,SACtC,EAAU,EAAQ,EAClB,EAAY,EAAU,GAAgB,QAE7C,CACD,KAAM,GAAY,GAAW,GAAgB,UAC7C,MAAO,QAAO,CAAS,CAC1B,KArBS,CACN,GAAI,GAAS,OAAO,CAAK,EACzB,MAAI,IAAU,YACV,IAAU,YAEP,CACV,CAgBJ,CACD,WAAY,CACR,MAAO,QAAO,KAAK,SAAS,EAAE,CAAC,EAAI,GAAgB,gBACtD,CACD,YAAa,CACT,MAAO,QAAO,KAAK,SAAS,EAAE,CAAC,EAAI,GAAgB,iBACtD,CACD,oBAAqB,CACjB,MAAO,WAAa,KAAK,KAAK,GAAK,aAAe,KAAK,KAAK,EAC/D,CACL,EArHO,UACI,EADJ,GACI,kBAAkB,OAAO,qBAAqB,GAC9C,EAFJ,GAEI,kBAAkB,OAAO,sBAAsB,GAC/C,EAHJ,GAGI,mBAAmB,EAAI,KAAK,IAAI,EAAG,EAAE,GACrC,EAJJ,GAII,oBAAoB,uBACpB,EALJ,GAKI,WAAW,OAAO,CAAC,GACnB,EANJ,GAMI,YAAY,OAAO,EAAE,GACrB,EAPJ,GAOI,YAAY,OAAO,EAAE,GACrB,EARJ,GAQI,YAAY,OAAO,EAAE,GACrB,EATJ,GASI,YAAY,OAAO,EAAE,GACrB,EAVJ,GAUI,YAAY,OAAO,EAAE,GACrB,EAXJ,GAWI,YAAY,OAAO,EAAE,GACrB,EAZJ,GAYI,YAAY,OAAO,EAAE,GACrB,EAbJ,GAaI,YAAY,OAAO,EAAE,GACrB,EAdJ,GAcI,YAAY,OAAO,EAAE,GACrB,EAfJ,GAeI,aAAa,OAAO,sBAAsB,GAC1C,EAhBJ,GAgBI,aAAa,OAAO,sBAAsB,GAC1C,EAjBJ,GAiBI,YAAY,OAAO,oBAAoB,GACvC,EAlBJ,GAkBI,UAAU,OAAO,qBAAqB,GACtC,EAnBJ,GAmBI,UAAU,OAAO,oBAAoB,GACrC,EApBJ,GAoBI,WAAW,OAAO,UAAU,GAkGhC,MAAM,EAA0B,CAGnC,YAAY,EAAQ,EAAQ,CAF5B,iBACA,iBAEI,KAAK,OAAS,EACd,KAAK,OAAS,CACjB,CACD,GAAG,EAAG,EAAG,EAAG,CAER,KAAM,GAAS,CADM,EAAQ,EAAG,EAAG,CAAC,EACN,KAAK,OACnC,MAAO,IAAI,IAAgB,CAAC,EAAQ,KAAK,MAAM,CAAC,CACnD,CACD,WAAW,EAAM,CACb,KAAM,GAAOA,GAAI,EAAM,CAAE,QAAS,EAAI,CAAE,EAClC,EAAK,GAAc,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,EAAK,EAAE,EACzF,EAAK,GAAc,EAAK,GAAI,EAAK,GAAI,EAAK,IAAK,EAAK,IAAK,EAAK,IAAK,EAAK,IAAK,EAAK,IAAK,EAAK,GAAG,EACrG,MAAO,IAAI,IAAgB,CAAC,EAAK,KAAK,OAAQ,EAAK,KAAK,MAAM,CAAC,CAClE,CACD,SAAU,CACN,MAAO,CAAC,KAAK,OAAQ,KAAK,MAAM,CACnC,CACL,CC7IO,cAAmB,CAQtB,YAAY,EAAQ,CAJpB,YACA,aACA,aACA,aAEI,KAAK,GAAK,EAAO,WAAU,EAAK,IAChC,KAAK,GAAK,EAAO,WAAU,EAAK,IAChC,KAAK,GAAK,EAAO,WAAU,EAAK,IAChC,KAAK,EAAI,MAAM,GAAG,EAClB,OAAS,GAAI,EAAG,EAAI,IAAK,GAAK,EAC1B,KAAK,EAAE,GAAK,EAEhB,OAAS,GAAI,EAAG,EAAI,IAAK,GAAK,EAAG,CAC7B,KAAM,GAAI,EAAO,QAAQ,IAAM,CAAC,EAC1B,EAAI,KAAK,EAAE,GACjB,KAAK,EAAE,GAAK,KAAK,EAAE,EAAI,GACvB,KAAK,EAAE,EAAI,GAAK,CACnB,CACJ,CACD,SAAS,EAAG,EAAI,CACZ,GAAI,GACA,EACA,EACJ,KAAM,GAAM,GAAI,GAAM,GAAa,GAC7B,EAAK,KAAK,MAAM,EAAI,CAAE,EACtB,EAAK,EAAM,GAAM,GAAM,GAAK,KAAK,MAAM,EAAK,CAAE,IAAM,GAAa,IACjE,EAAK,EAAI,EACf,GAAI,GACA,EACJ,CAAI,CAAM,GAAK,EAAM,GAAK,IACtB,GAAI,EACJ,EAAI,GAGJ,GAAI,EACJ,EAAI,GAER,KAAM,GAAK,EAAK,EAAI,GAAa,GAC3B,EAAM,EAAK,EAAI,GAAa,GAC5B,EAAM,EAAK,EAAM,EAAM,GAAa,GACpC,EAAM,EAAK,EAAM,EAAM,GAAa,GACpC,EAAK,EAAK,IACV,EAAK,EAAK,IACV,EAAK,KAAK,EAAE,EAAK,KAAK,EAAE,CAAE,CAAC,EAAI,GAC/B,EAAK,KAAK,EAAE,EAAK,EAAI,KAAK,EAAE,EAAK,CAAC,CAAC,EAAI,GACvC,EAAK,KAAK,EAAE,EAAK,EAAI,KAAK,EAAE,EAAK,CAAC,CAAC,EAAI,GACvC,EAAM,KAAK,iBAAiB,EAAI,EAAI,EAAI,EAAK,EAAG,EAChD,EAAM,KAAK,iBAAiB,EAAI,EAAI,EAAK,EAAK,EAAG,EACjD,EAAM,KAAK,iBAAiB,EAAI,EAAK,EAAK,EAAK,EAAG,EACxD,MAAO,IAAQ,GAAM,EAAM,EAC9B,CACD,OAAO,EAAG,EAAG,EAAG,CACZ,KAAM,GAAM,GAAI,EAAI,GAAK,kBACnB,EAAK,KAAK,MAAM,EAAI,CAAE,EACtB,EAAK,KAAK,MAAM,EAAI,CAAE,EACtB,EAAK,KAAK,MAAM,EAAI,CAAE,EACtB,EAAM,GAAK,EAAK,GAAM,mBACtB,EAAK,EAAK,GAAK,GACf,EAAK,EAAK,GAAK,GACf,EAAK,EAAK,GAAK,GACrB,GAAI,GACA,EACA,EACA,EACA,EACA,EACJ,CAAI,EAAM,EACN,CAAI,EAAM,EACN,GAAI,EACJ,EAAI,EACJ,EAAI,EACJ,EAAI,EACJ,EAAI,EACJ,EAAI,GAEH,CAAI,EAAM,EACX,GAAI,EACJ,EAAI,EACJ,EAAI,EACJ,EAAI,EACJ,EAAI,EACJ,EAAI,GAGJ,GAAI,EACJ,EAAI,EACJ,EAAI,EACJ,EAAI,EACJ,EAAI,EACJ,EAAI,GAGP,CAAI,CAAK,EACV,GAAI,EACJ,EAAI,EACJ,EAAI,EACJ,EAAI,EACJ,EAAI,EACJ,EAAI,GAEH,CAAI,CAAK,EACV,GAAI,EACJ,EAAI,EACJ,EAAI,EACJ,EAAI,EACJ,EAAI,EACJ,EAAI,GAGJ,GAAI,EACJ,EAAI,EACJ,EAAI,EACJ,EAAI,EACJ,EAAI,EACJ,EAAI,GAER,KAAM,GAAK,EAAK,EAAI,mBACd,EAAK,EAAK,EAAI,mBACd,EAAK,EAAK,EAAI,mBACd,EAAK,EAAK,EAAI,kBACd,EAAK,EAAK,EAAI,kBACd,EAAK,EAAK,EAAI,kBACd,EAAK,EAAK,GACV,EAAK,EAAK,GACV,EAAK,EAAK,GACV,EAAK,EAAK,IACV,EAAK,EAAK,IACV,EAAK,EAAK,IACV,EAAI,KAAK,EAAE,EAAK,KAAK,EAAE,EAAK,KAAK,EAAE,CAAE,CAAC,CAAC,EAAI,GAC3C,EAAI,KAAK,EAAE,EAAK,EAAI,KAAK,EAAE,EAAK,EAAI,KAAK,EAAE,EAAK,CAAC,CAAC,CAAC,EAAI,GACvD,EAAI,KAAK,EAAE,EAAK,EAAI,KAAK,EAAE,EAAK,EAAI,KAAK,EAAE,EAAK,CAAC,CAAC,CAAC,EAAI,GACvD,EAAI,KAAK,EAAE,EAAK,EAAI,KAAK,EAAE,EAAK,EAAI,KAAK,EAAE,EAAK,CAAC,CAAC,CAAC,EAAI,GACvD,EAAI,KAAK,iBAAiB,EAAG,EAAI,EAAI,EAAI,EAAG,EAC5C,EAAI,KAAK,iBAAiB,EAAG,EAAI,EAAI,EAAI,EAAG,EAC5C,EAAI,KAAK,iBAAiB,EAAG,EAAI,EAAI,EAAI,EAAG,EAC5C,EAAI,KAAK,iBAAiB,EAAG,EAAI,EAAI,EAAI,EAAG,EAClD,MAAO,IAAQ,GAAI,EAAI,EAAI,EAC9B,CACD,EAAE,EAAG,CACD,MAAO,MAAK,EAAE,EAAI,IACrB,CACD,iBAAiB,EAAG,EAAG,EAAG,EAAG,EAAG,CAC5B,GAAI,GACA,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAChC,MAAI,GAAI,EACJ,EAAI,EAGJ,IAAK,EACL,EAAI,EAAI,EAAI,GAAa,QAAQ,EAAG,EAAG,EAAG,CAAC,GAExC,CACV,OACM,SAAQ,EAAG,EAAG,EAAG,EAAG,CACvB,KAAM,GAAO,GAAa,SAAS,EAAI,IACvC,MAAO,GAAK,GAAK,EAAI,EAAK,GAAK,EAAI,EAAK,GAAK,CAChD,CACL,EAjKO,UACI,EADJ,GACI,WAAW,CAAC,CAAC,EAAG,EAAG,CAAC,EAAG,CAAC,GAAI,EAAG,CAAC,EAAG,CAAC,EAAG,GAAI,CAAC,EAAG,CAAC,GAAI,GAAI,CAAC,EAAG,CAAC,EAAG,EAAG,CAAC,EAAG,CAAC,GAAI,EAAG,CAAC,EAAG,CAAC,EAAG,EAAG,EAAE,EAAG,CAAC,GAAI,EAAG,EAAE,EAAG,CAAC,EAAG,EAAG,CAAC,EAAG,CAAC,EAAG,GAAI,CAAC,EAAG,CAAC,EAAG,EAAG,EAAE,EAAG,CAAC,EAAG,GAAI,EAAE,EAAG,CAAC,EAAG,EAAG,CAAC,EAAG,CAAC,EAAG,GAAI,CAAC,EAAG,CAAC,GAAI,EAAG,CAAC,EAAG,CAAC,EAAG,GAAI,EAAE,CAAC,GAC1M,EAFJ,GAEI,KAAK,GAAO,MAAK,KAAK,CAAG,EAAI,IAC7B,EAHJ,GAGI,KAAM,GAAM,KAAK,KAAK,CAAG,GAAK,GCDlC,MAAM,EAAc,CAKvB,YAAY,EAAQ,CAJpB,YACA,aACA,aACA,aAEI,KAAK,GAAK,EAAO,WAAU,EAAK,IAChC,KAAK,GAAK,EAAO,WAAU,EAAK,IAChC,KAAK,GAAK,EAAO,WAAU,EAAK,IAChC,KAAK,EAAI,MAAM,GAAG,EAClB,OAAS,GAAI,EAAG,EAAI,IAAK,GAAK,EAC1B,KAAK,EAAE,GAAK,EAAI,IAAM,EAAI,IAAM,EAEpC,OAAS,GAAI,EAAG,EAAI,IAAK,GAAK,EAAG,CAC7B,KAAM,GAAI,EAAO,QAAQ,IAAM,CAAC,EAC1B,EAAI,KAAK,EAAE,GACjB,KAAK,EAAE,GAAK,KAAK,EAAE,EAAI,GACvB,KAAK,EAAE,EAAI,GAAK,CACnB,CACJ,CACD,OAAO,EAAG,EAAG,EAAG,EAAS,EAAG,EAAS,EAAG,CACpC,KAAM,GAAK,EAAI,KAAK,GACd,EAAK,EAAI,KAAK,GACd,EAAK,EAAI,KAAK,GACd,EAAK,KAAK,MAAM,CAAE,EAClB,EAAK,KAAK,MAAM,CAAE,EAClB,EAAK,KAAK,MAAM,CAAE,EAClB,EAAK,EAAK,EACV,EAAK,EAAK,EACV,EAAK,EAAK,EAChB,GAAI,GAAK,EACT,GAAI,IAAW,EAAG,CACd,KAAM,GAAI,GAAU,GAAK,EAAS,EAAK,EAAS,EAChD,EAAK,KAAK,MAAM,EAAI,EAAS,IAAI,EAAI,CACxC,CACD,MAAO,MAAK,cAAc,EAAI,EAAI,EAAI,EAAI,EAAK,EAAI,EAAI,CAAE,CAC5D,CACD,cAAc,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAC/B,KAAM,GAAI,KAAK,EAAE,CAAC,EACZ,EAAI,KAAK,EAAE,EAAI,CAAC,EAChB,EAAI,KAAK,EAAE,EAAI,CAAC,EAChB,EAAI,KAAK,EAAE,EAAI,EAAI,CAAC,EACpB,EAAI,KAAK,EAAE,EAAI,CAAC,EAChB,EAAI,KAAK,EAAE,EAAI,EAAI,CAAC,EACpB,EAAI,GAAa,QAAQ,KAAK,EAAE,EAAI,CAAC,EAAG,EAAG,EAAG,CAAC,EAC/C,EAAI,GAAa,QAAQ,KAAK,EAAE,EAAI,CAAC,EAAG,EAAI,EAAK,EAAG,CAAC,EACrD,EAAI,GAAa,QAAQ,KAAK,EAAE,EAAI,CAAC,EAAG,EAAG,EAAI,EAAK,CAAC,EACrD,EAAI,GAAa,QAAQ,KAAK,EAAE,EAAI,CAAC,EAAG,EAAI,EAAK,EAAI,EAAK,CAAC,EAC3D,EAAI,GAAa,QAAQ,KAAK,EAAE,EAAI,EAAI,CAAC,EAAG,EAAG,EAAG,EAAI,CAAG,EACzD,EAAI,GAAa,QAAQ,KAAK,EAAE,EAAI,EAAI,CAAC,EAAG,EAAI,EAAK,EAAG,EAAI,CAAG,EAC/D,EAAI,GAAa,QAAQ,KAAK,EAAE,EAAI,EAAI,CAAC,EAAG,EAAG,EAAI,EAAK,EAAI,CAAG,EAC/D,EAAI,GAAa,QAAQ,KAAK,EAAE,EAAI,EAAI,CAAC,EAAG,EAAI,EAAK,EAAI,EAAK,EAAI,CAAG,EACrE,EAAI,GAAW,CAAC,EAChB,EAAI,GAAW,CAAC,EAChB,EAAI,GAAW,CAAC,EACtB,MAAO,IAAM,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,CAC/C,CACD,EAAE,EAAG,CACD,MAAO,MAAK,EAAE,EAAI,KAAQ,GAC7B,CACL,CC5DO,MAAM,EAAY,CAMrB,YAAY,EAAQ,EAAa,EAAY,CAL7C,sBACA,qBACA,gCACA,gCACA,mBAEI,GAAI,YAAkB,IAAiB,CACnC,KAAM,GAAe,EAAO,iBAC5B,KAAK,YAAc,MAAM,EAAW,MAAM,EAC1C,OAAS,GAAI,EAAG,EAAI,EAAW,OAAQ,IACnC,GAAI,EAAW,KAAO,EAAK,CACvB,KAAM,GAAS,EAAc,EAC7B,KAAK,YAAY,GAAK,GAAI,IAAc,EAAa,WAAW,UAAY,CAAM,CAAC,CACtF,CAER,KACI,CACD,GAAI,EAAI,EAAc,EAAW,OAC7B,KAAM,IAAI,OAAM,0DAA0D,EAE9E,KAAK,YAAc,MAAM,EAAW,MAAM,EAC1C,OAAS,GAAI,CAAC,EAAa,GAAK,EAAG,GAAK,EACpC,CAAI,CAAI,EAAW,QAAU,EAAW,KAAO,EAC3C,KAAK,YAAY,GAAK,GAAI,IAAc,CAAM,EAG9C,EAAO,QAAQ,GAAG,CAG7B,CACD,KAAK,WAAa,EAClB,KAAK,sBAAwB,KAAK,IAAI,EAAG,CAAW,EACpD,KAAK,sBAAwB,KAAK,IAAI,EAAI,EAAW,OAAS,CAAG,EAAI,MAAK,IAAI,EAAG,EAAW,MAAM,EAAI,GACtG,KAAK,SAAW,KAAK,UAAU,CAAC,CACnC,CACD,OAAO,EAAG,EAAG,EAAG,EAAS,EAAG,EAAS,EAAG,EAAO,GAAO,CAClD,GAAI,GAAQ,EACR,EAAS,KAAK,sBACd,EAAS,KAAK,sBAClB,OAAS,GAAI,EAAG,EAAI,KAAK,YAAY,OAAQ,GAAK,EAAG,CACjD,KAAM,GAAQ,KAAK,YAAY,GAC/B,CAAI,EACA,IAAS,KAAK,WAAW,GAAK,EAAS,EAAM,OAAO,GAAY,KAAK,EAAI,CAAM,EAAG,EAAO,CAAC,EAAM,GAAK,GAAY,KAAK,EAAI,CAAM,EAAG,GAAY,KAAK,EAAI,CAAM,EAAG,EAAS,EAAQ,EAAS,CAAM,GAErM,GAAU,EACV,GAAU,CACb,CACD,MAAO,EACV,CACD,eAAe,EAAG,CACd,MAAO,MAAK,YAAY,KAAK,YAAY,OAAS,EAAI,EACzD,CACD,UAAU,EAAG,CACT,GAAI,GAAQ,EACR,EAAS,KAAK,sBAClB,OAAS,GAAI,EAAG,EAAI,KAAK,YAAY,OAAQ,GAAK,EAC9C,CAAI,IAAK,YAAY,IACjB,IAAS,KAAK,WAAW,GAAK,EAAI,GAEtC,GAAU,EAEd,MAAO,EACV,OACM,MAAK,EAAO,CACf,MAAO,GAAQ,KAAK,MAAM,EAAQ,SAAc,EAAG,EAAI,QAC1D,CACL,CCnEO,MAAM,EAAa,CAYtB,YAAY,EAAQ,EAAS,EAAQ,EAAU,EAAS,EAAsB,CAX9E,kBACA,iBACA,mBACA,kBACA,+BACA,wBACA,wBACA,oBACA,uBACA,sBACA,mBAEI,KAAK,QAAU,EACf,KAAK,OAAS,EACd,KAAK,SAAW,EAChB,KAAK,QAAU,EACf,KAAK,qBAAuB,EAC5B,KAAK,cAAgB,GAAI,IAAY,EAAQ,IAAK,CAAC,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,CAAG,CAAC,EAClI,KAAK,cAAgB,GAAI,IAAY,EAAQ,IAAK,CAAC,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,CAAG,CAAC,EAClI,KAAK,UAAY,GAAI,IAAY,EAAQ,GAAI,CAAC,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,CAAG,CAAC,EACrF,KAAK,aAAe,QAAU,EAC9B,KAAK,YAAc,QAAU,EAC7B,KAAK,SAAW,KAAK,cAAc,UAAU,KAAK,OAAS,CAAC,CAC/D,CACD,OAAO,EAAG,EAAG,EAAG,CACZ,KAAM,GAAU,EAAI,KAAK,aACnB,EAAU,EAAI,KAAK,YACnB,EAAU,EAAI,KAAK,aACnB,EAAY,EAAU,KAAK,SAC3B,EAAY,EAAU,KAAK,QAC3B,EAAY,EAAU,KAAK,SAC3B,EAAQ,KAAK,YAAc,KAAK,qBAChC,EAAgB,EAAQ,KAAK,QACnC,GAAI,GACA,EAAQ,EACR,EAAS,EACb,OAAS,GAAI,EAAG,EAAI,EAAG,GAAK,EAAG,CAE3B,GADA,EAAQ,KAAK,UAAU,eAAe,CAAC,EACnC,EAAO,CACP,KAAM,GAAK,GAAY,KAAK,EAAY,CAAM,EACxC,EAAK,GAAY,KAAK,EAAY,CAAM,EACxC,EAAK,GAAY,KAAK,EAAY,CAAM,EAC9C,GAAS,EAAM,OAAO,EAAI,EAAI,EAAI,EAAgB,EAAQ,EAAY,CAAM,EAAI,CACnF,CACD,GAAU,CACb,CACD,EAAS,GAAQ,GAAK,GAAK,EAC3B,EAAS,EACT,GAAI,GAAM,EACN,EAAM,EACV,OAAS,GAAI,EAAG,EAAI,GAAI,GAAK,EAAG,CAC5B,KAAM,GAAK,GAAY,KAAK,EAAU,CAAM,EACtC,EAAK,GAAY,KAAK,EAAU,CAAM,EACtC,EAAK,GAAY,KAAK,EAAU,CAAM,EACtC,EAAa,EAAQ,EAC3B,CAAI,CAAQ,GAAM,GAAQ,KAAK,cAAc,eAAe,CAAC,IACzD,IAAO,EAAM,OAAO,EAAI,EAAI,EAAI,EAAY,EAAU,CAAM,EAAI,GAEhE,EAAQ,GAAM,GAAQ,KAAK,cAAc,eAAe,CAAC,IACzD,IAAO,EAAM,OAAO,EAAI,EAAI,EAAI,EAAY,EAAU,CAAM,EAAI,GAEpE,GAAU,CACb,CACD,MAAO,IAAY,EAAM,IAAK,EAAM,IAAK,CAAK,EAAI,GACrD,CACL,CClEO,cAAkB,CAMrB,YAAY,EAAQ,CAAE,cAAa,cAAc,CAJjD,sBACA,gBACA,iBACA,mBAEI,KAAK,MAAQ,GAAI,IAAY,EAAQ,EAAa,CAAU,EAC5D,KAAK,OAAS,GAAI,IAAY,EAAQ,EAAa,CAAU,EAC7D,GAAI,GAAM,IACN,EAAM,KACV,OAAS,GAAI,EAAG,EAAI,EAAW,OAAQ,GAAK,EACxC,CAAI,CAAW,KAAO,GAClB,GAAM,KAAK,IAAI,EAAK,CAAC,EACrB,EAAM,KAAK,IAAI,EAAK,CAAC,GAG7B,KAAM,GAAoB,GAAO,GAAI,EAAK,GAAM,EAAM,IACtD,KAAK,YAAe,EAAI,EAAK,EAC7B,KAAK,SAAY,MAAK,MAAM,SAAW,KAAK,OAAO,UAAY,KAAK,WACvE,CACD,OAAO,EAAG,EAAG,EAAG,CACZ,KAAM,GAAK,EAAI,GAAY,aACrB,EAAK,EAAI,GAAY,aACrB,EAAK,EAAI,GAAY,aAC3B,MAAQ,MAAK,MAAM,OAAO,EAAG,EAAG,CAAC,EAAI,KAAK,OAAO,OAAO,EAAI,EAAI,CAAE,GAAK,KAAK,WAC/E,CACL,EA3BO,UACI,EADJ,GACI,eAAe,oBA2BnB,GAAI,IACX,CAAC,SAAU,EAAiB,CACxB,WAAgB,EAAa,EAAY,CACrC,MAAO,CAAE,cAAa,aACzB,CACD,EAAgB,OAAS,EACzB,WAAkB,EAAK,CvJpC3B,UuJqCQ,KAAM,GAAO,KAAK,WAAW,CAAG,IAAnB,OAAwB,GACrC,MAAO,CACH,YAAa,KAAK,QAAQ,EAAK,WAAW,IAA7B,OAAkC,EAC/C,WAAY,KAAK,UAAU,EAAK,WAAY,IvJxCxD,MuJwC6D,WAAK,WAAW,CAAC,IAAjB,OAAsB,EAAC,IAA5D,OAAiE,CAAE,CAC3F,CACK,CACD,EAAgB,SAAW,CAC/B,GAAG,IAAoB,IAAkB,GAAG,EC3CrC,MAAM,EAAmB,CAI5B,YAAY,EAAQ,EAAS,CAH7B,sBACA,iCACA,iCAEI,KAAM,GAAa,EAAQ,EAAQ,OAAS,GAEtC,EAAQ,CADU,EAAQ,GACD,EAAa,EACtC,EAAa,GAAI,KAAI,CAAO,EAC5B,EAAQ,GAAI,IAAa,CAAM,EACrC,KAAK,YAAc,MAAM,CAAK,EAC1B,GAAc,GAAK,EAAa,GAAS,EAAW,IAAI,CAAC,GACzD,MAAK,YAAY,GAAc,GAEnC,OAAS,GAAI,EAAa,EAAG,EAAI,EAAO,GAAK,EACzC,CAAI,EAAK,GAAK,EAAW,IAAI,EAAa,CAAC,EACvC,KAAK,YAAY,GAAK,GAAI,IAAa,CAAM,EAG7C,EAAO,QAAQ,GAAG,EAG1B,GAAI,EAAa,EACb,KAAM,IAAI,OAAM,kCAAkC,EAEtD,KAAK,uBAAyB,KAAK,IAAI,EAAG,CAAU,EACpD,KAAK,uBAAyB,EAAK,MAAK,IAAI,EAAG,CAAK,EAAI,EAC3D,CACD,OAAO,EAAG,EAAG,EAAY,CACrB,GAAI,GAAQ,EACR,EAAS,KAAK,uBACd,EAAS,KAAK,uBAClB,OAAS,GAAI,EAAG,EAAI,KAAK,YAAY,OAAQ,GAAK,EAAG,CACjD,KAAM,GAAQ,KAAK,YAAY,GAC/B,CAAI,EACA,IAAS,EAAS,EAAM,SAAS,EAAI,EAAU,GAAa,EAAM,GAAK,GAAI,EAAI,EAAU,GAAa,EAAM,GAAK,EAAE,GAEvH,GAAU,EACV,GAAU,CACb,CACD,MAAO,EACV,CACL,CCtCO,GAAI,IACX,CAAC,SAAU,EAAa,CACpB,KAAM,GAAc,CAAC,EAAQ,GAAI,IAAgB,aAAa,GAAO,OAAO,GAAmB,iBAAkB,GAAgB,QAAQ,EAAE,CAAG,CAAC,EAC/I,WAAkB,EAAK,CzJR3B,MyJSQ,KAAM,GAAO,KAAK,WAAW,CAAG,IAAnB,OAAwB,GACrC,MAAO,CACH,QAAS,EAAY,EAAK,OAAO,EACjC,sBAAuB,EAAY,EAAK,uBAAuB,EAC/D,iBAAkB,EAAY,EAAK,kBAAkB,EACrD,KAAM,EAAY,EAAK,IAAI,EAC3B,YAAa,EAAY,EAAK,WAAW,EACzC,WAAY,EAAY,EAAK,UAAU,EACvC,WAAY,EAAY,EAAK,UAAU,EACvC,QAAS,EAAY,EAAK,OAAO,EACjC,MAAO,EAAY,EAAK,KAAK,EAC7B,OAAQ,EAAY,EAAK,MAAM,EAC/B,gCAAiC,EAAY,EAAK,kCAAkC,EACpF,aAAc,EAAY,EAAK,aAAa,EAC5C,WAAY,EAAY,EAAK,WAAW,EACxC,WAAY,EAAY,EAAK,WAAW,EACxC,QAAS,EAAY,EAAK,QAAQ,CAC9C,CACK,CACD,EAAY,SAAW,EACvB,WAAgB,EAAQ,CACpB,MAAO,KACH,QAAS,GAAgB,SAAS,KAClC,sBAAuB,GAAgB,SAAS,KAChD,iBAAkB,GAAgB,SAAS,KAC3C,KAAM,GAAgB,SAAS,KAC/B,YAAa,GAAgB,SAAS,KACtC,WAAY,GAAgB,SAAS,KACrC,WAAY,GAAgB,SAAS,KACrC,QAAS,GAAgB,SAAS,KAClC,MAAO,GAAgB,SAAS,KAChC,OAAQ,GAAgB,SAAS,KACjC,gCAAiC,GAAgB,SAAS,KAC1D,aAAc,GAAgB,SAAS,KACvC,WAAY,GAAgB,SAAS,KACrC,WAAY,GAAgB,SAAS,KACrC,QAAS,GAAgB,SAAS,MAC/B,EAEV,CACD,EAAY,OAAS,EACrB,WAAgB,EAAQ,EAAS,CAC7B,MAAO,CACH,QAAS,EAAO,QAAQ,OAAO,CAAO,EACtC,sBAAuB,EAAO,sBAAsB,OAAO,CAAO,EAClE,iBAAkB,EAAO,iBAAiB,OAAO,CAAO,EACxD,KAAM,EAAO,KAAK,OAAO,CAAO,EAChC,YAAa,EAAO,YAAY,OAAO,CAAO,EAC9C,WAAY,EAAO,WAAW,OAAO,CAAO,EAC5C,WAAY,EAAO,WAAW,OAAO,CAAO,EAC5C,QAAS,EAAO,QAAQ,OAAO,CAAO,EACtC,MAAO,EAAO,MAAM,OAAO,CAAO,EAClC,OAAQ,EAAO,OAAO,OAAO,CAAO,EACpC,gCAAiC,EAAO,gCAAgC,OAAO,CAAO,EACtF,aAAc,EAAO,aAAa,OAAO,CAAO,EAChD,WAAY,EAAO,WAAW,OAAO,CAAO,EAC5C,WAAY,EAAO,WAAW,OAAO,CAAO,EAC5C,QAAS,EAAO,QAAQ,OAAO,CAAO,CAClD,CACK,CACD,EAAY,OAAS,EACrB,KAAM,GAAa,GAAI,KACvB,WAAqB,EAAQ,EAAO,CzJvExC,MyJwEQ,KAAM,GAAM,KAAM,IAAK,IAAX,cAAa,WACzB,GAAI,CAAC,EACD,KAAM,IAAI,OAAM,6CAA6C,EAEjE,KAAM,GAAY,EAAO,UACnB,EAAS,EAAW,IAAI,CAAG,EACjC,GAAI,GAAU,EAAO,KAAO,EAAU,IAAM,EAAO,KAAO,EAAU,GAChE,MAAO,GAAO,GAElB,KAAM,GAAS,GAAI,IAAY,EAAO,WAAW,CAAG,EAAG,EAAM,MAAK,CAAE,EACpE,SAAW,IAAI,EAAK,CAAC,EAAU,GAAI,EAAU,GAAI,CAAM,CAAC,EACjD,CACV,CACD,EAAY,YAAc,CAC9B,GAAG,IAAgB,IAAc,GAAG,ECpF7B,GAAI,IACX,CAAC,SAAU,EAAe,CACtB,WAAkB,EAAK,C1JJ3B,c0JKQ,KAAM,GAAO,KAAK,WAAW,CAAG,IAAnB,OAAwB,GACrC,MAAO,CACH,KAAM,KAAK,QAAQ,EAAK,KAAK,IAAvB,OAA4B,EAClC,OAAQ,KAAK,QAAQ,EAAK,MAAM,IAAxB,OAA6B,IACrC,OAAQ,KAAK,QAAQ,EAAK,eAAe,IAAjC,OAAsC,EAC9C,MAAO,KAAK,QAAQ,EAAK,aAAa,IAA/B,OAAoC,CACvD,CACK,CACD,EAAc,SAAW,EACzB,WAAgB,EAAU,CACtB,MAAO,KACH,KAAM,EACN,OAAQ,IACR,OAAQ,EACR,MAAO,GACJ,EAEV,CACD,EAAc,OAAS,EACvB,WAAoB,EAAU,CAC1B,MAAO,GAAS,OAAS,CAC5B,CACD,EAAc,WAAa,EAC3B,WAAmB,EAAU,CACzB,MAAO,GAAS,QAAU,CAC7B,CACD,EAAc,UAAY,EAC1B,WAAoB,EAAU,CAC1B,MAAO,GAAS,OAAS,EAAW,CAAQ,CAC/C,CACD,EAAc,WAAa,EAC3B,WAAkB,EAAU,CACxB,MAAO,MAAK,MAAM,EAAS,KAAO,EAAW,CAAQ,CAAC,CACzD,CACD,EAAc,SAAW,CAC7B,GAAG,IAAkB,IAAgB,CAAE,EAAC,EACjC,GAAI,IACX,CAAC,SAAU,EAAoB,CAC3B,WAAkB,EAAK,C1J3C3B,Y0J4CQ,KAAM,GAAO,KAAK,WAAW,CAAG,IAAnB,OAAwB,GACrC,MAAO,CACH,OAAQ,KAAK,WAAW,EAAK,MAAM,IAA3B,OAAgC,EACxC,KAAM,KAAK,QAAQ,EAAK,IAAI,IAAtB,OAA2B,EACjC,OAAQ,KAAK,QAAQ,EAAK,MAAM,IAAxB,OAA6B,CACjD,CACK,CACD,EAAmB,SAAW,EAC9B,WAAe,EAAO,EAAS,EAAG,CAC9B,GAAI,EAAM,MAAQ,EACd,MAAO,GACX,KAAM,GAAK,GAAI,EAAM,QAAU,EAAM,KACrC,MAAO,IAAY,EAAM,OAAQ,EAAS,CAAC,CAC9C,CACD,EAAmB,MAAQ,CAC/B,GAAG,IAAuB,IAAqB,GAAG,EC1D3C,GAAI,IACX,CAAC,SAAU,EAAgB,CACvB,WAAkB,EAAK,C3JH3B,Y2JIQ,KAAM,GAAO,KAAK,WAAW,CAAG,IAAnB,OAAwB,GACrC,MAAI,GAAK,WAAa,OACX,EAAS,KAAK,WAAW,EAAK,QAAQ,IAA7B,OAAkC,CAAC,EAE9C,EAAK,eAAiB,OACpB,EAAY,KAAK,WAAW,EAAK,YAAY,IAAjC,OAAsC,CAAC,EAErD,EAAK,YAAc,OACjB,EAAS,KAAK,WAAW,EAAK,SAAS,IAA9B,OAAmC,CAAC,EAEjD,IAAM,CAChB,CACD,EAAe,SAAW,EAC1B,WAAkB,EAAO,CACrB,MAAO,IAAM,CAChB,CACD,WAAqB,EAAO,CACxB,MAAO,IAAW,EAAQ,KAAO,CACpC,CACD,WAAkB,EAAO,CACrB,MAAO,IAAW,EAAQ,KAAO,CACpC,CACL,GAAG,IAAmB,IAAiB,CAAE,EAAC,EACnC,GAAI,IACX,CAAC,SAAU,EAAiB,CACxB,WAAgB,EAAM,EAAQ,CAC1B,MAAO,CACH,OACA,SACA,KAAM,EAAO,EAAS,CAClC,CACK,CACD,EAAgB,OAAS,CAC7B,GAAG,IAAoB,IAAkB,GAAG,EC/BrC,MAAM,EAAc,CAOvB,YAAY,EAAM,EAAc,EAAM,CANtC,eACA,uBACA,uBACA,gCACA,iBACA,4BAEI,KAAK,KAAO,EACZ,KAAK,aAAe,EACpB,KAAK,OAAS,GAAgB,OAAO,CAAI,EAAE,iBAC3C,KAAK,aAAe,GAAY,YAAY,KAAK,OAAQ,GAAmB,aAAa,EACzF,KAAK,sBAAwB,GAAY,YAAY,KAAK,OAAQ,GAAmB,uBAAuB,EAC5G,KAAK,kBAAoB,GAAI,IAChC,CACD,aAAa,EAAO,EAAY,EAAiB,EAAU,CACvD,KAAM,GAAO,GAAS,UAAU,EAAM,GAAG,EACnC,EAAO,GAAS,UAAU,EAAM,GAAG,EACnC,EAAiB,GAAI,IAAe,KAAM,EAAO,EAAY,EAAiB,CAAQ,EACtF,EAAkB,KAAK,KAAK,CAAc,EAChD,OAAS,GAAI,EAAG,EAAI,GAAI,GAAK,EAAG,CAC5B,KAAM,GAAS,EAAO,EACtB,OAAS,GAAI,EAAG,EAAI,EAAG,GAAK,EAAG,CAC3B,KAAM,GAAS,EAAO,EACtB,EAAe,SAAS,EAAQ,CAAM,EACtC,GAAI,GAAkB,EAClB,EAAc,OAAO,iBACrB,EAAmB,OAAO,iBAC9B,OAAS,GAAI,EAAM,KAAM,GAAK,EAAM,KAAM,GAAK,EAAG,CAC9C,KAAM,GAAW,GAAS,OAAO,EAAQ,EAAG,CAAM,EAC5C,EAAW,EAAM,cAAc,CAAQ,EAC7C,GAAI,EAAS,OAAO,GAAW,GAAG,EAAG,CACjC,EAAkB,EAClB,EAAc,OAAO,iBACrB,QACH,CACD,GAAI,EAAS,UAAW,CACpB,CAAI,GAAgB,OAAO,kBACvB,GAAc,EAAI,GAEtB,QACH,CACD,GAAI,GAAoB,EAAG,CACvB,EAAmB,OAAO,iBAC1B,OAAS,GAAI,EAAI,EAAG,GAAK,EAAM,KAAM,GAAK,EAAG,CACzC,KAAM,GAAQ,EAAM,cAAc,GAAS,OAAO,EAAQ,EAAG,CAAM,CAAC,EACpE,GAAI,EAAM,OAAO,GAAW,GAAG,GAAK,EAAM,UAAW,CACjD,EAAmB,EAAI,EACvB,KACH,CACJ,CACJ,CACD,GAAmB,EACnB,KAAM,GAAkB,EAAI,EAAmB,EAC/C,GAAI,CAAC,EAAS,OAAO,KAAK,YAAY,EAClC,SAEJ,EAAe,QAAQ,EAAiB,EAAiB,EAAa,CAAC,EACvE,KAAM,GAAW,EAAgB,EAAQ,EAAG,CAAM,EAClD,CAAI,EACA,EAAM,cAAc,EAAU,CAAQ,CAE7C,CACJ,CACJ,CACJ,CACD,gBAAgB,EAAG,EAAG,CAClB,KAAM,GAAQ,KAAK,aAAa,OAAO,EAAG,EAAG,CAAC,EACxC,EAAS,KAAK,OAAO,GAAG,EAAG,EAAG,CAAC,EAAE,WAAY,EAAG,IACtD,MAAO,GAAQ,KAAO,EAAI,CAC7B,CACD,oBAAoB,EAAG,EAAG,CACtB,MAAO,MAAK,sBAAsB,OAAO,EAAG,EAAG,CAAC,CACnD,CACD,UAAU,EAAM,CACZ,MAAO,IAAgB,KAAK,kBAAmB,EAAM,IAC1C,KAAK,OAAO,WAAW,CAAI,CACrC,CACJ,CACL,CACO,MAAM,EAAe,CAgBxB,YAAY,EAAQ,EAAO,EAAY,EAAS,EAAU,CAf1D,iBACA,gBACA,qBACA,kBACA,mBACA,gBAAS,GACT,gBAAS,GACT,gBAAS,GACT,yBAAkB,GAClB,yBAAkB,GAClB,sBAAe,GACf,qBAAc,GACd,eAAQ,IAAM,IACd,0BAAmB,IAAM,GACzB,yBAAkB,IAAM,GAEpB,KAAK,OAAS,EACd,KAAK,MAAQ,EACb,KAAK,WAAa,EAClB,KAAK,QAAU,EACf,KAAK,SAAW,CACnB,CACD,SAAS,EAAG,EAAG,CACX,KAAK,OAAS,EACd,KAAK,OAAS,EACd,KAAK,aAAe,KAAK,OAAO,gBAAgB,EAAG,CAAC,EACpD,KAAK,iBAAmB,GAAK,IAAM,KAAK,OAAO,oBAAoB,EAAG,CAAC,CAAC,EACxE,KAAK,gBAAkB,GAAK,IAAM,KAAK,yBAAyB,EAAG,CAAC,CAAC,CACxE,CACD,QAAQ,EAAiB,EAAiB,EAAa,EAAG,CACtD,KAAK,OAAS,EACd,KAAK,gBAAkB,EACvB,KAAK,gBAAkB,EACvB,KAAK,YAAc,EACnB,KAAK,MAAQ,GAAK,IAAM,KAAK,SAAS,GAAS,OAAO,KAAK,OAAQ,KAAK,OAAQ,KAAK,MAAM,CAAC,CAAC,CAChG,CACD,yBAAyB,EAAG,EAAG,CAC3B,KAAM,GAAQ,GAAK,EACb,EAAQ,GAAK,EACb,EAAU,KAAK,WAAW,2BAA2B,GAAS,EAAG,GAAS,CAAC,EAC3E,EAAU,KAAK,WAAW,2BAA4B,EAAQ,GAAM,EAAG,GAAS,CAAC,EACjF,EAAU,KAAK,WAAW,2BAA2B,GAAS,EAAI,EAAQ,GAAM,CAAC,EACjF,EAAU,KAAK,WAAW,2BAA4B,EAAQ,GAAM,EAAI,EAAQ,GAAM,CAAC,EAE7F,MAAO,CADO,KAAK,MAAM,GAAO,GAAI,IAAO,GAAK,GAAI,IAAO,GAAI,EAAS,EAAS,EAAS,CAAO,CAAC,EACnF,KAAK,aAAe,CACtC,CACL,CACO,GAAI,IACX,CAAC,SAAU,EAAa,CACpB,EAAY,KAAO,IAAM,OACzB,WAAkB,EAAK,C5JzI3B,U4J0IQ,KAAM,GAAO,KAAK,WAAW,CAAG,IAAnB,OAAwB,GAErC,OADa,KAAK,WAAW,EAAK,IAAI,IAAzB,cAA4B,QAAQ,cAAe,SAEvD,QAAS,MAAO,GAAM,GAAW,SAAS,EAAK,YAAY,CAAC,MAC5D,WAAY,MAAO,GAAS,KAAK,UAAU,EAAK,SAAU,EAAY,QAAQ,IAAlD,OAAuD,CAAE,OACrF,YAAa,MAAO,GAAU,GAAiB,SAAS,EAAK,OAAO,EAAG,EAAY,SAAS,EAAK,QAAQ,CAAC,EAEnH,MAAO,GAAY,IACtB,CACD,EAAY,SAAW,EACvB,WAAe,EAAO,CAClB,MAAO,IAAM,IAAM,CACtB,CACD,EAAY,MAAQ,EACpB,WAAkB,EAAO,CACrB,MAAO,IAAW,CACd,KAAM,GAAmB,EAAM,IAAI,GAAQ,EAAK,CAAO,CAAC,EACxD,MAAO,CAAC,EAAG,EAAG,IAAM,CAChB,SAAW,KAAQ,GAAkB,CACjC,KAAM,GAAS,EAAK,EAAG,EAAG,CAAC,EAC3B,GAAI,EACA,MAAO,EACd,CAEjB,CACA,CACK,CACD,EAAY,SAAW,EACvB,WAAmB,EAAQ,EAAS,CAChC,MAAO,IAAW,CAAC,EAAG,EAAG,IAAM,CAC3B,GAAI,EAAO,CAAO,EACd,MAAO,GAAQ,CAAO,EAAE,EAAG,EAAG,CAAC,CAG/C,CACK,CACD,EAAY,UAAY,CAC5B,GAAG,IAAgB,IAAc,CAAE,EAAC,EAC7B,GAAI,IACX,CAAC,SAAU,EAAkB,CACzB,EAAiB,MAAQ,IAAM,GAC/B,EAAiB,KAAO,IAAM,GAC9B,WAAkB,EAAK,C5JpL3B,4B4JqLQ,KAAM,GAAO,KAAK,WAAW,CAAG,IAAnB,OAAwB,GAErC,OADa,KAAK,WAAW,EAAK,IAAI,IAAzB,cAA4B,QAAQ,cAAe,SAEvD,4BAA6B,MAAO,SACpC,QAAS,MAAO,GAAM,KAAK,UAAU,EAAK,SAAU,GAAC,C5JzLtE,M4JyL0E,WAAK,WAAW,CAAC,IAAjB,OAAsB,GAAE,IAA3D,OAAgE,CAAE,OACxF,MAAO,MAAO,GAAI,EAAiB,SAAS,EAAK,MAAM,CAAC,MACxD,cAAe,MAAO,GAAW,KAAK,QAAQ,EAAK,MAAM,IAAxB,OAA6B,EAAG,KAAK,YAAY,EAAK,iBAAiB,IAAvC,OAA4C,GAAO,KAAK,QAAQ,EAAK,qBAAqB,IAAvC,OAA4C,EAAG,EAAK,WAAW,EAAK,YAAY,IAAM,SAAS,MACnN,oBAAqB,MAAO,GAAiB,KAAK,WAAW,EAAK,WAAW,IAAhC,OAAqC,GAAI,GAAe,SAAS,EAAK,iBAAiB,EAAG,GAAe,SAAS,EAAK,kBAAkB,CAAC,MACvL,QAAS,MAAO,GAAM,KAAK,QAAQ,EAAK,MAAM,IAAxB,OAA6B,EAAG,KAAK,QAAQ,EAAK,wBAAwB,IAA1C,OAA+C,EAAG,KAAK,YAAY,EAAK,iBAAiB,IAAvC,OAA4C,EAAK,MACzJ,UAAW,MAAO,GAAO,GAAe,SAAS,EAAK,MAAM,EAAG,KAAK,QAAQ,EAAK,wBAAwB,IAA1C,OAA+C,EAAG,KAAK,YAAY,EAAK,iBAAiB,IAAvC,OAA4C,EAAK,EAE3K,MAAO,GAAiB,KAC3B,CACD,EAAiB,SAAW,EAC5B,YAAmC,CAC/B,MAAO,IAAW,EAAQ,QAAU,EAAQ,gBAAe,CAC9D,CACD,EAAiB,wBAA0B,EAC3C,WAAe,EAAQ,CACnB,KAAM,GAAW,GAAI,KAAI,CAAM,EAC/B,MAAO,IAAW,EAAS,IAAI,EAAQ,MAAO,EACjD,CACD,EAAiB,MAAQ,EACzB,WAAa,EAAQ,CACjB,MAAO,IAAW,CAAC,EAAO,CAAO,CACpC,CACD,EAAiB,IAAM,EACvB,WAAoB,EAAQ,EAAiB,EAAqB,EAAS,CACvE,MAAO,IAAW,CACd,KAAM,GAAQ,EAAU,EAAQ,gBAAkB,EAAQ,gBACpD,EAAe,EAAkB,EAAQ,aAAe,EACxD,EAAiB,IAAwB,EAAI,EAAI,GAAI,EAAQ,iBAAgB,EAAI,GAAI,EAAG,EAAG,CAAmB,EACpH,MAAO,IAAS,EAAI,EAAS,EAAe,CACxD,CACK,CACD,EAAiB,WAAa,EAC9B,WAA0B,EAAY,EAAgB,EAAiB,CACnE,MAAO,IAAW,CACd,KAAM,GAAkB,EAAe,EAAQ,OAAO,EAChD,EAAmB,EAAgB,EAAQ,OAAO,EACxD,GAAI,EAAQ,QAAU,EAClB,MAAO,GAEX,GAAI,EAAQ,QAAU,EAClB,MAAO,GAEX,KAAM,GAAS,EAAQ,OAAO,UAAU,CAAU,EAC5C,EAAS,GAAI,EAAQ,OAAQ,EAAiB,EAAkB,EAAG,CAAC,EAC1E,MAAO,GAAO,UAAW,EAAG,CACxC,CACK,CACD,EAAiB,iBAAmB,EACpC,WAAe,EAAQ,EAAwB,EAAe,CAC1D,MAAO,IAAW,CACd,GAAI,EAAQ,cAAgB,OAAO,iBAC/B,MAAO,GAEX,KAAM,GAAa,EAAgB,EAAQ,gBAAkB,EAC7D,MAAO,GAAQ,OAAS,GAAc,EAAQ,YAAc,EAAS,EAAQ,aAAe,CACxG,CACK,CACD,EAAiB,MAAQ,EACzB,WAAgB,EAAQ,EAAwB,EAAe,CAC3D,MAAO,IAAW,CACd,KAAM,GAAa,EAAgB,EAAQ,gBAAkB,EAC7D,MAAO,GAAQ,OAAS,GAAc,EAAO,EAAQ,OAAO,EAAI,EAAQ,aAAe,CACnG,CACK,CACD,EAAiB,OAAS,CAC9B,GAAG,IAAqB,IAAmB,GAAG,ECrPvC,GAAI,IACX,CAAC,SAAU,EAAwB,CAC/B,WAAkB,EAAK,C7JP3B,gB6JQQ,KAAM,GAAO,KAAK,WAAW,CAAG,IAAnB,OAAwB,GACrC,MAAO,CACH,YAAa,GAAY,SAAS,EAAK,YAAY,EACnD,MAAO,GAAc,SAAS,EAAK,KAAK,EACxC,aAAc,GAAW,SAAS,EAAK,aAAa,EACpD,aAAc,GAAW,SAAS,EAAK,aAAa,EACpD,YAAa,GAAY,SAAS,EAAK,YAAY,EACnD,SAAU,KAAK,QAAQ,EAAK,SAAS,IAA3B,OAAgC,EAC1C,qBAAsB,KAAK,YAAY,EAAK,sBAAsB,IAA5C,OAAiD,GACvE,gBAAiB,KAAK,YAAY,EAAK,gBAAgB,IAAtC,OAA2C,GAC5D,gBAAiB,KAAK,YAAY,EAAK,iBAAiB,IAAvC,OAA4C,GAC7D,mBAAoB,KAAK,YAAY,EAAK,oBAAoB,IAA1C,OAA+C,EAC/E,CACK,CACD,EAAuB,SAAW,EAClC,WAAgB,EAAU,CACtB,MAAO,KACH,YAAa,GAAY,KACzB,MAAO,GAAc,OAAO,EAAE,EAC9B,aAAc,GAAW,MACzB,aAAc,GAAW,MACzB,YAAa,GAAY,OAAO,EAAE,EAClC,SAAU,EACV,qBAAsB,GACtB,gBAAiB,GACjB,gBAAiB,GACjB,mBAAoB,IACjB,EAEV,CACD,EAAuB,OAAS,CACpC,GAAG,IAA2B,IAAyB,GAAG,ECnCnD,GAAI,IACX,CAAC,SAAU,EAAoB,CAC3B,EAAmB,MAAQ,EAAS,iBAAkB,GAAgB,QAAQ,EAC9E,EAAmB,iBAAmB,EAAS,4BAA6B,GAAO,GAAgB,SAAS,CAAG,CAAC,EAChH,EAAmB,eAAiB,EAAS,0BAA2B,GAAuB,QAAQ,EACvG,WAAkB,EAAM,EAAQ,CAC5B,KAAM,GAAW,GAAI,IAAS,GAAW,OAAO,CAAI,EAAG,CAAM,EAC7D,UAAS,SAAS,SAAS,EAAS,IAAK,CAAQ,EAC1C,CACV,CACD,EAAmB,cAAgB,EAAY,UAAW,GAAI,CAAC,EAAG,EAAG,CAAC,CAAC,EACvE,EAAmB,wBAA0B,EAAY,oBAAqB,GAAI,CAAC,EAAG,EAAG,EAAG,CAAC,CAAC,EAC9F,WAAqB,EAAM,EAAa,EAAY,CAChD,MAAO,GAAmB,MAAM,SAAS,GAAW,OAAO,CAAI,EAAG,GAAgB,OAAO,EAAa,CAAU,EAAG,EAAI,CAC1H,CACL,GAAG,IAAuB,IAAqB,GAAG,ECf3C,MAAM,EAAgB,CACzB,UAAW,CACP,MAAO,CAAC,KAAK,UAChB,CACD,OAAO,EAAS,CACZ,MAAO,GAAQ,IAAI,IAAI,CAC1B,CACL,CACA,CAAC,SAAU,EAAiB,CACxB,WAAiB,EAAG,EAAG,EAAG,CACtB,MAAO,CACH,IACA,IACA,GACZ,CACK,CACD,EAAgB,QAAU,EAC1B,MAAM,SAAoB,EAAgB,CAEtC,YAAY,EAAO,CACf,QAFJ,gBAGI,KAAK,MAAQ,CAChB,CACD,QAAQ,EAAS,CACb,MAAO,MAAK,UAAU,EAAS,KAAK,MAAM,QAAQ,CAAO,CAAC,CAC7D,CACJ,CACD,KAAM,GAAc,GAAO,OAAO,GAAmB,MAAO,GAAgB,QAAQ,EACpF,WAAkB,EAAK,EAAc,EAAU,C/JhCnD,4D+JiCQ,GAAI,MAAO,IAAQ,SACf,MAAO,IAAI,GAAa,GAAO,UAAU,GAAmB,iBAAkB,GAAW,MAAM,CAAG,CAAC,CAAC,EAExG,GAAI,MAAO,IAAQ,SACf,MAAO,IAAI,GAAS,CAAG,EAE3B,KAAM,GAAO,KAAK,WAAW,CAAG,IAAnB,OAAwB,GAC/B,EAAO,KAAK,WAAW,EAAK,IAAI,IAAzB,cAA4B,QAAQ,cAAe,IAChE,OAAQ,OACC,cAAe,MAAO,IAAI,GAAe,EAAG,EAAG,CAAC,MAChD,eAAgB,MAAO,IAAI,GAAe,EAAG,KAAW,GAAQ,MAChE,aAAc,MAAO,IAAI,GAAe,EAAG,KAAW,GAAQ,MAC9D,oBAAqB,MAAO,IAAI,GAAgB,MAAK,WAAW,EAAK,QAAQ,IAA7B,QAAkC,EAAG,KAAK,WAAW,EAAK,OAAO,IAA5B,OAAiC,EAAG,KAAK,WAAW,EAAK,SAAS,IAA9B,OAAmC,GAAI,MAAK,WAAW,EAAK,QAAQ,IAA7B,QAAkC,IAAK,MAAK,WAAW,EAAK,sBAAsB,IAA3C,QAAgD,CAAC,MACxP,aAAc,MAAO,IAAI,GAAU,EAAY,EAAK,QAAQ,CAAC,MAC7D,eAAgB,MAAO,IAAI,GAAa,EAAY,EAAK,QAAQ,CAAC,MAClE,WAAY,MAAO,IAAI,GAAQ,EAAY,EAAK,QAAQ,CAAC,MACzD,aAAc,MAAO,IAAI,GAAU,EAAY,EAAK,QAAQ,CAAC,MAC7D,oBAAqB,MAAO,IAAI,GAAe,EAAY,EAAK,QAAQ,CAAC,MACzE,QAAS,MAAO,IAAI,GAAM,MAAK,WAAW,EAAK,QAAQ,IAA7B,QAAkC,EAAG,MAAK,WAAW,EAAK,OAAO,IAA5B,QAAiC,EAAG,EAAY,EAAK,KAAK,CAAC,MAC1H,cAAe,MAAO,IAAI,OAC1B,uBAAwB,MAAO,IAAI,GAAmB,EAAY,EAAK,KAAK,EAAG,EAAK,SAAS,EAAK,oBAAqB,CAAiB,EAAG,EAAY,EAAK,KAAK,CAAC,MAClK,gBAAiB,MAAO,IAAI,GAAa,EAAY,EAAK,OAAO,EAAG,EAAY,EAAK,OAAO,EAAG,EAAY,EAAK,OAAO,EAAG,MAAK,WAAW,EAAK,QAAQ,IAA7B,QAAkC,EAAG,MAAK,WAAW,EAAK,OAAO,IAA5B,QAAiC,EAAG,EAAY,EAAK,KAAK,CAAC,MAC1N,eAAgB,MAAO,IAAI,GAAY,EAAY,EAAK,KAAK,EAAG,MAAK,WAAW,EAAK,aAAa,IAAlC,QAAuC,EAAG,MAAK,WAAW,EAAK,aAAa,IAAlC,QAAuC,EAAG,EAAY,EAAK,aAAa,EAAG,EAAY,EAAK,iBAAiB,CAAC,MACxN,UAAW,MAAO,IAAI,GAAO,EAAY,EAAK,QAAQ,CAAC,MACvD,UAAW,MAAO,IAAI,GAAO,EAAY,EAAK,QAAQ,CAAC,MACvD,QAAS,MAAO,IAAI,GAAM,EAAY,EAAK,QAAQ,CAAC,MACpD,gBAAiB,MAAO,IAAI,GAAa,EAAY,EAAK,QAAQ,CAAC,MACnE,QAAS,MAAO,IAAI,GAAM,EAAY,EAAK,KAAK,EAAG,MAAK,WAAW,EAAK,GAAG,IAAxB,QAA6B,EAAG,MAAK,WAAW,EAAK,GAAG,IAAxB,QAA6B,CAAC,MACjH,UACA,aACA,WACA,oBACA,uBACA,UACD,MAAO,IAAI,GAAO,EAAM,EAAY,EAAK,QAAQ,CAAC,MACjD,UACA,UACA,UACA,MAAO,MAAO,IAAI,GAAI,EAAK,SAAS,EAAM,CAAO,EAAG,EAAY,EAAK,SAAS,EAAG,EAAY,EAAK,SAAS,CAAC,MAC5G,SAAU,MAAO,IAAI,GAAO,GAAY,SAAS,EAAK,OAAQ,CAAW,CAAC,MAC1E,WAAY,MAAO,IAAI,GAAS,MAAK,WAAW,EAAK,QAAQ,IAA7B,QAAkC,CAAC,MACnE,qBAAsB,MAAO,IAAI,GAAiB,MAAK,QAAQ,EAAK,MAAM,IAAxB,QAA6B,MAAO,MAAK,QAAQ,EAAK,IAAI,IAAtB,QAA2B,KAAM,MAAK,WAAW,EAAK,UAAU,IAA/B,QAAoC,MAAO,MAAK,WAAW,EAAK,QAAQ,IAA7B,QAAkC,IAAI,EAEjN,MAAO,GAAS,IACnB,CACD,EAAgB,SAAW,EAC3B,qBAAuB,EAAgB,CAInC,YAAY,EAAO,CACf,QAJJ,gBAKI,KAAK,MAAQ,CAChB,CACD,SAAU,CACN,MAAO,MAAK,KACf,CACD,UAAW,CACP,MAAO,MAAK,KACf,CACD,UAAW,CACP,MAAO,MAAK,KACf,CACJ,EAjBD,QAEW,EAFX,EAEW,OAAO,GAAI,GAAS,CAAC,GACrB,EAHX,EAGW,MAAM,GAAI,GAAS,CAAC,GAe/B,EAAgB,SAAW,EAC3B,MAAM,SAAqB,EAAgB,CAEvC,YAAY,EAAQ,CAChB,QAFJ,iBAGI,KAAK,OAAS,CACjB,CACD,QAAQ,EAAS,CACb,MAAO,MAAK,OAAO,MAAO,EAAC,QAAQ,CAAO,CAC7C,CACD,UAAW,CACP,MAAO,MAAK,OAAO,MAAO,EAAC,SAAQ,CACtC,CACD,UAAW,CACP,MAAO,MAAK,OAAO,MAAO,EAAC,SAAQ,CACtC,CACJ,CACD,EAAgB,aAAe,EAC/B,MAAM,SAAuB,GAAgB,QAAS,CAGlD,YAAY,EAAO,EAAK,EAAK,CACzB,MAAM,CAAK,EAHf,cACA,cAGI,KAAK,IAAM,EACX,KAAK,IAAM,CACd,CACD,UAAW,CACP,MAAO,MAAK,GACf,CACD,UAAW,CACP,MAAO,MAAK,GACf,CACJ,CACD,EAAgB,eAAiB,EACjC,MAAM,SAAwB,EAAgB,CAO1C,YAAY,EAAS,EAAQ,EAAU,EAAS,GAAsB,EAAc,CAChF,QAPJ,kBACA,iBACA,mBACA,kBACA,+BACA,uBAGI,KAAK,QAAU,EACf,KAAK,OAAS,EACd,KAAK,SAAW,EAChB,KAAK,QAAU,EACf,KAAK,qBAAuB,GAC5B,KAAK,aAAe,CACvB,CACD,QAAQ,EAAS,C/JnJzB,Q+JoJY,MAAO,WAAK,eAAL,cAAmB,OAAO,EAAQ,EAAG,EAAQ,EAAG,EAAQ,KAAxD,OAA8D,CACxE,CACD,UAAW,C/JtJnB,Q+JuJY,MAAO,WAAK,eAAL,cAAmB,WAAnB,OAA+B,CACzC,CACJ,CACD,EAAgB,gBAAkB,EAClC,MAAM,SAAgB,EAAgB,CAElC,YAAY,EAAS,CACjB,QAFJ,kBAGI,KAAK,QAAU,CAClB,CACD,UAAW,CACP,MAAO,MAAK,QAAQ,UACvB,CACD,UAAW,CACP,MAAO,MAAK,QAAQ,UACvB,CACJ,CACD,MAAM,SAAkB,EAAQ,CAI5B,YAAY,EAAS,CACjB,MAAM,CAAO,EAJjB,qBACA,qBACA,mBAAY,EAGX,CACD,QAAQ,EAAS,CACb,KAAM,GAAS,EAAQ,GAAK,EACtB,EAAS,EAAQ,GAAK,EAC5B,MAAI,MAAK,aAAe,GAAU,KAAK,aAAe,IAClD,MAAK,UAAY,KAAK,QAAQ,QAAQ,EAAgB,QAAQ,GAAU,EAAG,EAAG,GAAU,CAAC,CAAC,EAC1F,KAAK,WAAa,EAClB,KAAK,WAAa,GAEf,KAAK,SACf,CACD,OAAO,EAAS,CACZ,MAAO,GAAQ,IAAI,GAAI,GAAU,KAAK,QAAQ,OAAO,CAAO,CAAC,CAAC,CACjE,CACJ,CACD,EAAgB,UAAY,EAC5B,MAAM,SAAuB,EAAQ,CACjC,YAAY,EAAS,CACjB,MAAM,CAAO,CAChB,CACD,QAAQ,EAAS,CACb,MAAO,MAAK,QAAQ,QAAQ,CAAO,CACtC,CACD,OAAO,EAAS,CACZ,MAAO,GAAQ,IAAI,GAAI,GAAe,KAAK,QAAQ,OAAO,CAAO,CAAC,CAAC,CACtE,CACJ,CACD,EAAgB,eAAiB,EACjC,MAAM,SAAgB,EAAQ,CAI1B,YAAY,EAAS,CACjB,MAAM,CAAO,EAJjB,qBACA,qBACA,mBAAY,EAGX,CACD,QAAQ,EAAS,CACb,KAAM,GAAS,EAAQ,EACjB,EAAS,EAAQ,EACvB,MAAI,MAAK,aAAe,GAAU,KAAK,aAAe,IAClD,MAAK,UAAY,KAAK,QAAQ,QAAQ,CAAO,EAC7C,KAAK,WAAa,EAClB,KAAK,WAAa,GAEf,KAAK,SACf,CACD,OAAO,EAAS,CACZ,MAAO,GAAQ,IAAI,GAAI,GAAQ,KAAK,QAAQ,OAAO,CAAO,CAAC,CAAC,CAC/D,CACJ,CACD,EAAgB,QAAU,EAC1B,MAAM,SAAkB,EAAQ,CAK5B,YAAY,EAAS,CACjB,MAAM,CAAO,EALjB,qBACA,qBACA,qBACA,mBAAY,EAGX,CACD,QAAQ,EAAS,CACb,KAAM,GAAS,EAAQ,EACjB,EAAS,EAAQ,EACjB,EAAS,EAAQ,EACvB,MAAI,MAAK,aAAe,GAAU,KAAK,aAAe,GAAU,KAAK,aAAe,IAChF,MAAK,UAAY,KAAK,QAAQ,QAAQ,CAAO,EAC7C,KAAK,WAAa,EAClB,KAAK,WAAa,EAClB,KAAK,WAAa,GAEf,KAAK,SACf,CACD,OAAO,EAAS,CACZ,MAAO,GAAQ,IAAI,GAAI,GAAU,KAAK,QAAQ,OAAO,CAAO,CAAC,CAAC,CACjE,CACJ,CACD,EAAgB,UAAY,EAC5B,MAAM,SAAqB,EAAQ,CAI/B,YAAY,EAAS,EAAY,EAAG,EAAa,EAAG,CAChD,MAAM,CAAO,EAJjB,oBACA,qBACA,iBAGI,KAAK,UAAY,EACjB,KAAK,WAAa,EAClB,KAAK,OAAS,GAAI,IACrB,CACD,QAAQ,CAAE,EAAG,EAAQ,EAAG,EAAQ,EAAG,GAAU,CACzC,KAAM,GAAI,KAAK,UACT,GAAI,KAAK,WACT,EAAM,GAAS,EAAI,GAAK,EAAK,EAC7B,EAAM,GAAS,GAAI,IAAK,GAAK,GAC7B,GAAM,GAAS,EAAI,GAAK,EAAK,EAC7B,GAAS,KAAK,MAAM,EAAS,CAAC,EAAI,EAClC,GAAS,KAAK,MAAM,EAAS,EAAC,EAAI,GAClC,GAAS,KAAK,MAAM,EAAS,CAAC,EAAI,EASxC,MAAO,IAAU,EAAG,EAAG,GARN,IAAM,KAAK,cAAc,GAAQ,GAAQ,EAAM,EAI/C,IAAM,KAAK,cAAc,GAAS,EAAG,GAAQ,EAAM,EAFnD,IAAM,KAAK,cAAc,GAAQ,GAAS,GAAG,EAAM,EAInD,IAAM,KAAK,cAAc,GAAS,EAAG,GAAS,GAAG,EAAM,EALvD,IAAM,KAAK,cAAc,GAAQ,GAAQ,GAAS,CAAC,EAInD,IAAM,KAAK,cAAc,GAAS,EAAG,GAAQ,GAAS,CAAC,EAFvD,IAAM,KAAK,cAAc,GAAQ,GAAS,GAAG,GAAS,CAAC,EAIvD,IAAM,KAAK,cAAc,GAAS,EAAG,GAAS,GAAG,GAAS,CAAC,CAC4B,CAC3G,CACD,cAAc,EAAG,EAAG,EAAG,CACnB,MAAO,IAAgB,KAAK,OAAQ,GAAG,KAAK,KAAK,IAAK,IAC3C,KAAK,QAAQ,QAAQ,EAAgB,QAAQ,EAAG,EAAG,CAAC,CAAC,CAC/D,CACJ,CACD,OAAO,EAAS,CACZ,MAAO,GAAQ,IAAI,GAAI,GAAa,KAAK,QAAQ,OAAO,CAAO,CAAC,CAAC,CACpE,CACD,aAAa,EAAW,EAAY,CAChC,MAAO,IAAI,GAAa,KAAK,QAAS,EAAW,CAAU,CAC9D,CACJ,CACD,EAAgB,aAAe,EAC/B,MAAM,SAAc,EAAgB,CAKhC,YAAY,EAAS,EAAQ,EAAW,EAAO,CAC3C,QALJ,kBACA,iBACA,oBACA,gBAGI,KAAK,QAAU,EACf,KAAK,OAAS,EACd,KAAK,UAAY,EACjB,KAAK,MAAQ,CAChB,CACD,QAAQ,EAAS,C/J/SzB,Q+JgTY,MAAO,WAAK,QAAL,cAAY,OAAO,EAAQ,EAAI,KAAK,QAAS,EAAQ,EAAI,KAAK,OAAQ,EAAQ,EAAI,KAAK,WAAvF,OAAmG,CAC7G,CACD,UAAW,C/JlTnB,Q+JmTY,MAAO,WAAK,QAAL,cAAY,WAAZ,OAAwB,CAClC,CACJ,CACD,EAAgB,MAAQ,EACxB,MAAM,SAAmB,EAAgB,CAErC,YAAY,EAAM,CACd,QAFJ,sBAGI,KAAM,GAAS,GAAI,IAAa,UAAQ,OAAO,CAAC,CAAC,EACjD,EAAO,QAAQ,KAAK,EACpB,KAAK,YAAc,GAAI,IAAa,CAAM,CAC7C,CACD,eAAe,EAAG,EAAG,CACjB,KAAM,GAAK,KAAK,MAAM,EAAI,CAAC,EACrB,EAAK,KAAK,MAAM,EAAI,CAAC,EACrB,GAAK,EAAI,EACT,EAAK,EAAI,EACf,GAAI,GAAI,GAAM,IAAM,KAAK,KAAK,EAAI,EAAI,EAAI,CAAC,EAAG,KAAM,EAAE,EACtD,OAAS,IAAI,IAAK,IAAK,GAAI,IAAK,EAC5B,OAAS,IAAI,IAAK,IAAK,GAAI,IAAK,EAAG,CAC/B,KAAM,IAAK,EAAK,GACV,GAAK,EAAK,GAChB,GAAI,GAAK,GAAK,GAAK,IAAM,MAAQ,KAAK,YAAY,SAAS,GAAI,EAAE,GAAK,IAClE,SAEJ,KAAM,IAAM,MAAK,IAAI,EAAE,EAAI,KAAO,KAAK,IAAI,EAAE,EAAI,KAAO,GAAK,EACvD,GAAK,GAAK,GAAI,EACd,GAAK,EAAK,GAAI,EACd,GAAK,IAAM,KAAK,KAAK,GAAK,GAAK,GAAK,EAAE,EAAI,GAC1C,GAAK,GAAM,GAAI,KAAM,EAAE,EAC7B,EAAI,KAAK,IAAI,EAAG,EAAE,CACrB,CAEL,MAAO,EACV,CACD,QAAQ,CAAE,IAAG,IAAG,KAAK,CACjB,MAAQ,MAAK,eAAe,KAAK,MAAM,EAAI,CAAC,EAAG,KAAK,MAAM,EAAI,CAAC,CAAC,EAAI,GAAK,GAC5E,CACD,UAAW,CACP,MAAO,OACV,CACD,UAAW,CACP,MAAO,MACV,CACJ,CACD,EAAgB,WAAa,EAC7B,KAAM,GAAoB,CAAC,SAAU,QAAQ,EAC7C,eAAiC,EAAY,CASzC,YAAY,EAAO,EAAmB,EAAW,EAAO,CACpD,MAAM,CAAK,EATf,4BACA,oBACA,gBAKA,iBAGI,KAAK,kBAAoB,EACzB,KAAK,UAAY,EACjB,KAAK,MAAQ,EACb,KAAK,OAAS,EAAmB,YAAY,KAAK,kBACrD,CACD,UAAU,EAAS,EAAS,CACxB,GAAI,CAAC,KAAK,MACN,MAAO,GAEX,KAAM,GAAS,KAAK,OAAO,CAAO,EAClC,MAAO,GAAS,KAAK,IAAI,KAAK,MAAM,OAAO,EAAQ,EAAI,EAAQ,EAAQ,EAAI,EAAQ,EAAQ,EAAI,CAAM,CAAC,CACzG,CACD,OAAO,EAAS,CACZ,MAAO,GAAQ,IAAI,GAAI,GAAmB,KAAK,MAAM,OAAO,CAAO,EAAG,KAAK,kBAAmB,KAAK,UAAW,KAAK,KAAK,CAAC,CAC5H,CACD,UAAW,CACP,MAAO,EACV,CACD,UAAW,CACP,MAAO,MAAK,oBAAsB,SAAW,EAAI,CACpD,OACM,oBAAmB,EAAO,CAC7B,MAAI,GAAQ,IACD,IAEF,EAAQ,EACN,EAEF,EAAQ,GACN,IAGA,CAEd,OACM,oBAAmB,EAAO,CAC7B,MAAI,GAAQ,KACD,GAEF,EAAQ,IACN,IAEF,EAAQ,GACN,EAEF,EAAQ,IACN,EAGA,CAEd,CACJ,EA/DD,QAIW,EAJX,EAIW,cAAc,CACjB,OAAQ,EAAmB,mBAC3B,OAAQ,EAAmB,kBACvC,GAyDI,EAAgB,mBAAqB,EACrC,MAAM,SAAqB,EAAM,CAI7B,YAAY,EAAQ,EAAQ,EAAQ,EAAS,GAAQ,EAAW,EAAO,CACnE,MAAM,EAAS,GAAQ,EAAW,CAAK,EAJ3C,iBACA,iBACA,iBAGI,KAAK,OAAS,EACd,KAAK,OAAS,EACd,KAAK,OAAS,CACjB,CACD,QAAQ,EAAS,C/J7azB,S+J8aY,KAAM,GAAK,EAAQ,EAAI,KAAK,QAAU,KAAK,OAAO,QAAQ,CAAO,EAC3D,EAAK,EAAQ,EAAI,KAAK,OAAS,KAAK,OAAO,QAAQ,CAAO,EAC1D,EAAK,EAAQ,EAAI,KAAK,QAAU,KAAK,OAAO,QAAQ,CAAO,EACjE,MAAO,YAAK,QAAL,eAAY,OAAO,EAAI,EAAI,KAA3B,OAAkC,CAC5C,CACD,OAAO,EAAS,CACZ,MAAO,GAAQ,IAAI,GAAI,GAAa,KAAK,OAAO,OAAO,CAAO,EAAG,KAAK,OAAO,OAAO,CAAO,EAAG,KAAK,OAAO,OAAO,CAAO,EAAG,KAAK,QAAS,KAAK,OAAQ,KAAK,UAAW,KAAK,KAAK,CAAC,CACpL,CACJ,CACD,EAAgB,aAAe,EAC/B,MAAM,SAAoB,EAAgB,CAMtC,YAAY,EAAO,EAAc,EAAc,EAAa,GAAgB,CACxE,QANJ,gBACA,uBACA,uBACA,sBACA,yBAGI,KAAK,MAAQ,EACb,KAAK,aAAe,EACpB,KAAK,aAAe,EACpB,KAAK,YAAc,EACnB,KAAK,eAAiB,EACzB,CACD,QAAQ,EAAS,CACb,KAAM,GAAI,KAAK,MAAM,QAAQ,CAAO,EACpC,MAAQ,MAAK,cAAgB,GAAK,EAAI,KAAK,aACrC,KAAK,YAAY,QAAQ,CAAO,EAChC,KAAK,eAAe,QAAQ,CAAO,CAC5C,CACD,OAAO,EAAS,CACZ,MAAO,GAAQ,IAAI,GAAI,GAAY,KAAK,MAAM,OAAO,CAAO,EAAG,KAAK,aAAc,KAAK,aAAc,KAAK,YAAY,OAAO,CAAO,EAAG,KAAK,eAAe,OAAO,CAAO,CAAC,CAAC,CAC9K,CACD,UAAW,CACP,MAAO,MAAK,IAAI,KAAK,YAAY,SAAU,EAAE,KAAK,eAAe,SAAQ,CAAE,CAC9E,CACD,UAAW,CACP,MAAO,MAAK,IAAI,KAAK,YAAY,SAAU,EAAE,KAAK,eAAe,SAAQ,CAAE,CAC9E,CACJ,CACD,EAAgB,YAAc,EAC9B,MAAM,SAAmB,EAAgB,CAGrC,YAAY,EAAW,EAAa,CAChC,QAHJ,oBACA,sBAGI,KAAK,UAAY,EACjB,KAAK,YAAc,CACtB,CACD,QAAQ,EAAS,C/J/dzB,Q+JgeY,MAAO,WAAK,cAAL,cAAkB,OAAO,EAAQ,EAAI,IAAM,EAAQ,EAAI,IAAM,EAAQ,EAAI,OAAzE,OAAkF,CAC5F,CACD,UAAW,C/JlenB,Q+JmeY,MAAQ,YAAK,cAAL,cAAkB,WAAlB,OAA8B,GAAK,CAC9C,CACJ,CACD,EAAgB,WAAa,EAC7B,MAAM,SAAe,EAAW,CAC5B,YAAY,EAAW,EAAa,CAChC,MAAM,EAAW,CAAW,CAC/B,CACD,QAAQ,EAAS,CACb,MAAO,OAAM,QAAQ,EAAgB,QAAQ,EAAQ,EAAG,EAAG,EAAQ,CAAC,CAAC,CACxE,CACD,aAAa,EAAU,CACnB,MAAO,IAAI,GAAO,KAAK,UAAW,CAAQ,CAC7C,CACJ,CACD,EAAgB,OAAS,EACzB,MAAM,SAAe,EAAW,CAC5B,YAAY,EAAW,EAAa,CAChC,MAAM,EAAW,CAAW,CAC/B,CACD,QAAQ,EAAS,CACb,MAAO,OAAM,QAAQ,EAAgB,QAAQ,EAAQ,EAAG,EAAQ,EAAG,CAAC,CAAC,CACxE,CACD,aAAa,EAAU,CACnB,MAAO,IAAI,GAAO,KAAK,UAAW,CAAQ,CAC7C,CACJ,CACD,EAAgB,OAAS,EACzB,MAAM,SAAc,EAAW,CAC3B,YAAY,EAAW,EAAa,CAChC,MAAM,EAAW,CAAW,CAC/B,CACD,aAAa,EAAU,CACnB,MAAO,IAAI,GAAM,KAAK,UAAW,CAAQ,CAC5C,CACJ,CACD,EAAgB,MAAQ,EACxB,MAAM,SAAqB,EAAY,CACnC,YAAY,EAAO,CACf,MAAM,CAAK,CACd,CACD,UAAU,EAAS,EAAS,CACxB,MAAO,EACV,CACD,OAAO,EAAS,CACZ,MAAO,GAAQ,IAAI,GAAI,GAAa,KAAK,MAAM,OAAO,CAAO,CAAC,CAAC,CAClE,CACD,UAAW,CACP,MAAO,IACV,CACD,UAAW,CACP,MAAO,IACV,CACJ,CACD,EAAgB,aAAe,EAC/B,MAAM,SAAc,EAAY,CAG5B,YAAY,EAAO,EAAK,EAAK,CACzB,MAAM,CAAK,EAHf,cACA,cAGI,KAAK,IAAM,EACX,KAAK,IAAM,CACd,CACD,UAAU,EAAS,EAAS,CACxB,MAAO,IAAM,EAAS,KAAK,IAAK,KAAK,GAAG,CAC3C,CACD,OAAO,EAAS,CACZ,MAAO,GAAQ,IAAI,GAAI,GAAM,KAAK,MAAM,OAAO,CAAO,EAAG,KAAK,IAAK,KAAK,GAAG,CAAC,CAC/E,CACD,UAAW,CACP,MAAO,MAAK,GACf,CACD,UAAW,CACP,MAAO,MAAK,GACf,CACJ,CACD,EAAgB,MAAQ,EAExB,qBAAqB,EAAY,CAgB7B,YAAY,EAAM,EAAO,EAAK,EAAK,CAC/B,MAAM,CAAK,EAhBf,eACA,cACA,cAYA,sBAGI,KAAK,KAAO,EACZ,KAAK,IAAM,EACX,KAAK,IAAM,EACX,KAAK,YAAc,EAAO,YAAY,KAAK,KAC9C,CACD,UAAU,EAAS,EAAS,CACxB,MAAO,MAAK,YAAY,CAAO,CAClC,CACD,OAAO,EAAS,CACZ,MAAO,GAAQ,IAAI,GAAI,GAAO,KAAK,KAAM,KAAK,MAAM,OAAO,CAAO,CAAC,CAAC,CACvE,CACD,UAAW,C/J9kBnB,M+J+kBY,MAAO,QAAK,MAAL,OAAY,IACtB,CACD,UAAW,C/JjlBnB,M+JklBY,MAAO,QAAK,MAAL,OAAY,GACtB,CACD,YAAa,CACT,KAAM,GAAW,KAAK,MAAM,SAAQ,EACpC,GAAI,GAAM,KAAK,YAAY,CAAQ,EAC/B,EAAM,KAAK,YAAY,KAAK,MAAM,SAAQ,CAAE,EAChD,MAAI,MAAK,OAAS,OAAS,KAAK,OAAS,WACrC,GAAM,KAAK,IAAI,EAAK,CAAG,EACvB,EAAM,KAAK,IAAI,EAAG,CAAQ,GAEvB,GAAI,GAAO,KAAK,KAAM,KAAK,MAAO,EAAK,CAAG,CACpD,CACJ,EA7CD,QAIW,EAJX,EAIW,cAAc,CACjB,IAAK,GAAK,KAAK,IAAI,CAAC,EACpB,OAAQ,GAAK,EAAI,EACjB,KAAM,GAAK,EAAI,EAAI,EACnB,cAAe,GAAK,EAAI,EAAI,EAAI,EAAI,GACpC,iBAAkB,GAAK,EAAI,EAAI,EAAI,EAAI,IACvC,QAAS,GAAK,CACV,KAAM,GAAI,GAAM,EAAG,GAAI,CAAC,EACxB,MAAO,GAAI,EAAI,EAAI,EAAI,EAAI,EAC9B,CACb,GAgCI,EAAgB,OAAS,EACzB,KAAM,GAAU,CAAC,MAAO,MAAO,MAAO,KAAK,EAC3C,MAAM,SAAY,EAAgB,CAM9B,YAAY,EAAM,EAAW,EAAW,EAAK,GAAK,CAC9C,QANJ,eACA,oBACA,oBACA,cACA,cAGI,KAAK,KAAO,EACZ,KAAK,UAAY,EACjB,KAAK,UAAY,EACjB,KAAK,IAAM,EACX,KAAK,IAAM,EACd,CACD,QAAQ,EAAS,CACb,KAAM,GAAI,KAAK,UAAU,QAAQ,CAAO,EACxC,OAAQ,KAAK,UACJ,MAAO,MAAO,GAAI,KAAK,UAAU,QAAQ,CAAO,MAChD,MAAO,MAAO,KAAM,EAAI,EAAI,EAAI,KAAK,UAAU,QAAQ,CAAO,MAC9D,MAAO,MAAO,GAAI,KAAK,UAAU,SAAQ,EAAK,EAAI,KAAK,IAAI,EAAG,KAAK,UAAU,QAAQ,CAAO,CAAC,MAC7F,MAAO,MAAO,GAAI,KAAK,UAAU,SAAQ,EAAK,EAAI,KAAK,IAAI,EAAG,KAAK,UAAU,QAAQ,CAAO,CAAC,EAEzG,CACD,OAAO,EAAS,CACZ,MAAO,GAAQ,IAAI,GAAI,GAAI,KAAK,KAAM,KAAK,UAAU,OAAO,CAAO,EAAG,KAAK,UAAU,OAAO,CAAO,CAAC,CAAC,CACxG,CACD,UAAW,C/J3nBnB,M+J4nBY,MAAO,QAAK,MAAL,OAAY,IACtB,CACD,UAAW,C/J9nBnB,M+J+nBY,MAAO,QAAK,MAAL,OAAY,GACtB,CACD,YAAa,CACT,KAAM,GAAO,KAAK,UAAU,SAAQ,EAC9B,EAAO,KAAK,UAAU,SAAQ,EAC9B,EAAO,KAAK,UAAU,SAAQ,EAC9B,EAAO,KAAK,UAAU,SAAQ,EACpC,CAAK,KAAK,OAAS,OAAS,KAAK,OAAS,QAAW,IAAQ,GAAQ,GAAQ,IACzE,QAAQ,KAAK,cAAc,KAAK,kDAAkD,EAEtF,GAAI,IAAK,EACT,OAAQ,KAAK,UACJ,MACD,GAAM,EAAO,EACb,EAAM,EAAO,EACb,UACC,MACD,GAAM,EAAO,GAAK,EAAO,EAAK,EAAO,GAAS,EACxC,EAAO,GAAK,EAAO,EAAK,EAAO,GAAS,EACpC,KAAK,IAAK,EAAO,GAAS,EAAI,EAAO,GAAS,CAAC,EACzD,EAAM,EAAO,GAAK,EAAO,EAAK,EAAO,GAAS,EACxC,EAAO,GAAK,EAAO,EAAK,EAAO,GAAS,EACpC,KAAK,IAAK,EAAO,GAAS,EAAI,EAAO,GAAS,CAAC,EACzD,UACC,MACD,GAAM,KAAK,IAAI,EAAM,CAAI,EACzB,EAAM,KAAK,IAAI,EAAM,CAAI,EACzB,UACC,MACD,GAAM,KAAK,IAAI,EAAM,CAAI,EACzB,EAAM,KAAK,IAAI,EAAM,CAAI,EACzB,MAER,MAAO,IAAI,GAAI,KAAK,KAAM,KAAK,UAAW,KAAK,UAAW,GAAK,CAAG,CACrE,CACJ,CACD,EAAgB,IAAM,EACtB,MAAM,SAAe,EAAgB,CAEjC,YAAY,EAAQ,CAChB,QAFJ,iBAGI,KAAK,OAAS,CACjB,CACD,QAAQ,EAAS,CACb,MAAO,MAAK,OAAO,QAAQ,CAAO,CACrC,CACD,OAAO,EAAS,CACZ,KAAM,GAAiB,KAAK,OAAO,OAAO,CAAC,EACnC,YAAc,GACP,EAAG,OAAO,CAAO,EAErB,CACV,EACD,SAAe,gBAAe,EACvB,EAAQ,IAAI,GAAI,GAAO,CAAc,CAAC,CAChD,CACD,UAAW,CACP,MAAO,MAAK,OAAO,KACtB,CACD,UAAW,CACP,MAAO,MAAK,OAAO,KACtB,CACJ,CACD,EAAgB,OAAS,EACzB,MAAM,SAAyB,EAAgB,CAK3C,YAAY,EAAO,EAAK,EAAW,EAAS,CACxC,QALJ,gBACA,cACA,oBACA,kBAGI,KAAK,MAAQ,EACb,KAAK,IAAM,EACX,KAAK,UAAY,EACjB,KAAK,QAAU,CAClB,CACD,QAAQ,EAAS,CACb,MAAO,IAAW,EAAQ,EAAG,KAAK,MAAO,KAAK,IAAK,KAAK,UAAW,KAAK,OAAO,CAClF,CACD,UAAW,CACP,MAAO,MAAK,IAAI,KAAK,UAAW,KAAK,OAAO,CAC/C,CACD,UAAW,CACP,MAAO,MAAK,IAAI,KAAK,UAAW,KAAK,OAAO,CAC/C,CACJ,CACD,EAAgB,iBAAmB,CACvC,GAAG,IAAoB,IAAkB,GAAG,ECltBrC,MAAM,EAAY,CAGrB,YAAY,EAAO,EAAM,CAFzB,gBACA,eAEI,KAAK,MAAQ,EACb,KAAK,KAAO,CACf,CACD,GAAG,EAAO,CACN,MAAO,GAAQ,KAAK,MAAQ,KAAK,KAAO,GAAW,GACtD,CACL,CACO,GAAI,IACX,CAAC,SAAU,EAAS,CAChB,WAAwB,EAAa,CACjC,MAAO,CACH,QAAQ,CAAE,IAAG,IAAG,KAAK,EAAS,CAC1B,GAAI,IAAU,GAGd,MAAO,GAAY,EAAG,EAAG,CAAC,EAAE,GAAG,CAAC,CACnC,CACb,CACK,CACD,EAAQ,eAAiB,CAC7B,GAAG,IAAY,IAAU,CAAE,EAAC,EACrB,cAAmB,CAiBtB,YAAY,EAAY,EAAU,EAAQ,EAAQ,EAAM,EAAQ,EAAmB,CAhBnF,qBACA,iBACA,iBACA,4BAKA,mBACA,mBACA,mBACA,oBACA,oBACA,mBACA,uBACA,+BAEI,KAAK,WAAa,EAClB,KAAK,OAAS,EACd,KAAK,OAAS,EACd,KAAK,kBAAoB,EACzB,KAAK,SAAW,KAAK,MAAM,GAAS,UAAU,CAAQ,CAAC,EAAI,EAC3D,KAAK,UAAY,KAAK,MAAM,GAAS,UAAU,CAAQ,CAAC,EAAI,EAAI,KAAK,SAAW,EAChF,KAAK,SAAW,KAAK,MAAM,CAAI,EAAI,EACnC,KAAK,SAAW,KAAK,MAAM,GAAS,UAAU,CAAQ,CAAC,EAAI,EAC3D,KAAK,UAAY,KAAK,MAAM,GAAS,UAAU,CAAQ,CAAC,EAAI,EAAI,KAAK,SAAW,EAChF,KAAM,GAAY,KAAK,MAAM,EAAO,CAAM,EAAI,EAAI,KAAK,SAAW,EAClE,KAAK,SAAW,KAAK,UAAY,EAAY,KAAK,UAClD,KAAK,aAAe,MAAM,KAAK,QAAQ,EAAE,KAAK,MAAS,EACvD,KAAK,qBAAuB,MAAM,KAAK,QAAQ,EAAE,KAAK,GAAS,IAAI,CACtE,CACD,QAAQ,CAAE,IAAG,IAAG,KAAK,EAAS,CAC1B,GAAI,GAAW,EAAG,CACd,GAAI,KAAK,kBAAkB,EAAG,EAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,GAAW,IAAI,EACxD,MAAO,IAAW,KAEjB,CACD,KAAM,GAAQ,KAAK,MAAM,EAAI,CAAC,EACxB,EAAQ,KAAK,MAAM,EAAI,CAAC,EACxB,EAAQ,KAAK,MAAM,EAAI,CAAC,EAC9B,GAAI,GAAO,OAAO,iBACd,EAAO,OAAO,iBACd,EAAO,OAAO,iBACd,EAAO,GAAS,KAChB,EAAO,GAAS,KAChB,EAAO,GAAS,KACpB,OAAS,GAAU,EAAG,GAAW,EAAG,GAAW,EAC3C,OAAS,GAAU,GAAI,GAAW,EAAG,GAAW,EAC5C,OAAS,GAAU,EAAG,GAAW,EAAG,GAAW,EAAG,CAC9C,KAAM,GAAW,KAAK,YAAY,EAAQ,EAAS,EAAQ,EAAS,EAAQ,CAAO,EAC7E,EAAY,GAAS,UAAU,CAAQ,EAC7C,CAAI,EAAQ,EACR,GAAO,EACP,EAAO,EACP,EAAO,EACP,EAAO,EACP,EAAO,EACP,EAAO,GAEN,CAAI,EAAQ,EACb,GAAO,EACP,EAAO,EACP,EAAO,EACP,EAAO,GAEF,GAAQ,GACb,GAAO,EACP,EAAO,EAEd,CAGT,KAAM,GAAU,KAAK,UAAU,CAAI,EAC7B,EAAU,KAAK,UAAU,CAAI,EAC7B,EAAU,KAAK,UAAU,CAAI,EAC7B,EAAe,GAAa,WAAW,EAAM,CAAI,EACjD,EAAe,GAAa,WAAW,EAAM,CAAI,EACjD,EAAe,GAAa,WAAW,EAAM,CAAI,EACvD,GAAI,GACJ,GAAI,EAAQ,GAAG,CAAC,EAAE,GAAG,GAAW,KAAK,GAAK,KAAK,kBAAkB,EAAG,EAAI,EAAG,CAAC,EAAE,GAAG,EAAI,CAAC,EAAE,GAAG,GAAW,IAAI,EACtG,EAAW,UAEN,EAAe,GAAI,CACxB,KAAM,GAAU,GAAK,IAAM,KAAK,OAAO,QAAQ,QAAQ,GAAgB,QAAQ,EAAG,EAAI,GAAK,CAAC,CAAC,CAAC,EACxF,EAAa,KAAK,kBAAkB,EAAG,EAAS,EAAS,CAAO,EAChE,EAAa,KAAK,kBAAkB,EAAG,EAAS,EAAS,CAAO,EAChE,EAAa,KAAK,kBAAkB,EAAG,EAAS,EAAS,CAAO,EAChE,EAAI,KAAK,IAAI,EAAY,EAAa,KAAK,IAAI,EAAG,CAAY,EAAG,EAAa,KAAK,IAAI,CAAY,CAAC,EAC1G,EAAW,KAAK,IAAI,EAAG,EAAI,KAAK,IAAI,EAAG,CAAY,EAAI,CAAC,CAC3D,KAEG,GAAW,EAEf,GAAI,EAAU,GAAY,EACtB,MAAO,GAAQ,GAAG,CAAC,CAE1B,CACJ,CAEJ,OACM,YAAW,EAAG,EAAG,CACpB,MAAO,GAAI,KAAK,IAAI,EAAI,CAAC,EAAI,EAChC,CACD,kBAAkB,EAAG,EAAS,EAAS,EAAS,CAC5C,KAAM,GAAS,EAAQ,GAAG,CAAC,EACrB,EAAS,EAAQ,GAAG,CAAC,EAC3B,GAAK,EAAO,GAAG,GAAW,IAAI,GAAK,EAAO,GAAG,GAAW,KAAK,GAAO,EAAO,GAAG,GAAW,KAAK,GAAK,EAAO,GAAG,GAAW,IAAI,EACxH,MAAO,GAEX,KAAM,GAAY,KAAK,IAAI,EAAQ,MAAQ,EAAQ,KAAK,EACxD,GAAI,IAAc,EACd,MAAO,GAEX,KAAM,GAAY,GAAQ,MAAQ,EAAQ,OAAS,EAC7C,EAAe,EAAI,GAAM,EACzB,EAAI,EAAY,EAAI,KAAK,IAAI,CAAY,EACzC,EAAW,EAAe,EAC1B,EAAI,EAAI,EAAI,IAAM,EAAI,IACtB,EAAI,GAAM,GAAI,GAAK,EAAK,GAAI,GAAK,GACvC,MAAI,GAAW,IAAM,EAAW,EACrB,EAEJ,EAAW,GACrB,CACD,UAAU,EAAU,CAChB,KAAM,CAAC,EAAG,EAAG,GAAK,EACZ,EAAQ,KAAK,SAAS,KAAK,MAAM,CAAC,EAAG,KAAK,MAAM,CAAC,EAAG,KAAK,MAAM,CAAC,CAAC,EACjE,EAAe,KAAK,aAAa,GACvC,GAAI,IAAiB,OACjB,MAAO,GAEX,KAAM,GAAS,KAAK,cAAc,EAAG,EAAG,CAAC,EACzC,YAAK,aAAa,GAAS,EACpB,CACV,CACD,cAAc,EAAG,EAAG,EAAG,CACnB,KAAM,GAAe,KAAK,kBAAkB,EAAG,EAAG,CAAC,EACnD,GAAI,GAAwB,OAAO,iBAC/B,EAAY,GAChB,SAAW,CAAC,EAAS,IAAY,IAAa,iBAAkB,CAC5D,KAAM,GAAS,EAAK,IAAW,GACzB,EAAS,EAAK,IAAW,GACzB,EAAqB,KAAK,WAAW,2BAA2B,EAAQ,CAAM,EACpF,EAAwB,KAAK,IAAI,EAAuB,CAAkB,EAC1E,KAAM,GAAW,IAAY,GAAK,IAAY,EAC9C,GAAI,GAAY,EAAI,GAAK,EAAqB,EAC1C,MAAO,GAEX,GAAK,GAAY,EAAI,GAAK,EAAqB,EAAI,CAC/C,KAAM,GAAY,KAAK,kBAAkB,EAAQ,EAAqB,EAAG,CAAM,EAC/E,GAAI,CAAC,EAAU,GAAG,EAAqB,CAAC,EAAE,GAAG,GAAW,GAAG,EAAG,CAC1D,GAAI,EACA,MAAO,GAGP,EAAY,EAEnB,CACJ,CACJ,CACD,KAAM,GAAqB,EAAY,GAAW,EAAwB,EAAI,EAAG,EAAG,GAAI,EAAG,CAAC,EAAI,EAC1F,EAAc,GAAM,KAAK,OAAO,sBAAsB,QAAQ,GAAgB,QAAQ,EAAG,EAAI,IAAM,CAAC,CAAC,EAAG,GAAI,CAAC,EACnH,GAAI,EAAc,GAAI,EAAoB,EAAG,EAAG,IAAM,EAAG,EACrD,MAAO,GAEX,GAAI,GAAe,GAAI,EAAoB,EAAG,EAAG,IAAM,EAAG,EACtD,MAAO,IAAI,IAAY,OAAO,iBAAkB,EAAa,IAAI,EAErE,KAAM,GAAQ,KAAK,MAAM,EAAI,EAAE,EACzB,EAAS,KAAK,OAAO,iBAAiB,QAAQ,GAAgB,QAAQ,KAAK,MAAM,EAAI,EAAE,EAAG,EAAO,KAAK,MAAM,EAAI,EAAE,CAAC,CAAC,EACpH,EAAQ,EAAQ,GAAK,GAAK,KAAK,MAAM,EAAS,CAAC,EAAI,EACnD,EAAc,KAAK,IAAI,EAAuB,CAAK,EACnD,EAAQ,KAAK,aAAa,EAAG,EAAG,EAAG,EAAa,KAAM,CAAK,EACjE,MAAO,IAAI,IAAY,EAAa,CAAK,CAC5C,CACD,aAAa,EAAG,EAAG,EAAG,EAAQ,EAAO,CACjC,GAAI,GAAS,IAAK,CACd,KAAM,GAAO,KAAK,OAAO,KAAK,QAAQ,GAAgB,QAAQ,KAAK,MAAM,EAAI,EAAE,EAAG,KAAK,MAAM,EAAI,EAAE,EAAG,KAAK,MAAM,EAAI,EAAE,CAAC,CAAC,EACzH,GAAI,KAAK,IAAI,CAAI,EAAI,GACjB,MAAO,IAAW,IAEzB,CACD,MAAO,EACV,CACD,YAAY,EAAG,EAAG,EAAG,CACjB,KAAM,GAAQ,KAAK,SAAS,EAAG,EAAG,CAAC,EAC7B,EAAiB,KAAK,qBAAqB,GACjD,GAAI,GAAS,OAAO,EAAgB,GAAS,IAAI,EAC7C,MAAO,GAEX,KAAM,GAAS,KAAK,OAAO,GAAG,EAAG,EAAG,CAAC,EAC/B,EAAW,GAAS,OAAO,EAAI,GAAa,UAAY,EAAO,QAAQ,EAAE,EAAG,EAAI,GAAa,UAAY,EAAO,QAAQ,CAAC,EAAG,EAAI,GAAa,UAAY,EAAO,QAAQ,EAAE,CAAC,EACjL,YAAK,qBAAqB,GAAS,EAC5B,CACV,CACD,SAAS,EAAG,EAAG,EAAG,CACd,KAAM,GAAQ,EAAI,KAAK,SACjB,EAAQ,EAAI,KAAK,SACjB,EAAQ,EAAI,KAAK,SACjB,EAAS,GAAQ,KAAK,UAAY,GAAS,KAAK,UAAY,EAClE,GAAI,EAAQ,GAAK,GAAS,KAAK,SAC3B,KAAM,IAAI,OAAM,4BAA4B,KAAK,KAAK,WAAW,OAAW,KAAK,UAAU,EAE/F,MAAO,EACV,CACD,MAAM,EAAG,CACL,MAAO,MAAK,MAAM,EAAI,GAAa,SAAS,CAC/C,CACD,MAAM,EAAG,CACL,MAAO,MAAK,MAAM,EAAI,GAAa,SAAS,CAC/C,CACD,MAAM,EAAG,CACL,MAAO,MAAK,MAAM,EAAI,GAAa,SAAS,CAC/C,CACL,EAvNO,UAKI,EALJ,GAKI,YAAY,IACZ,EANJ,GAMI,YAAY,IACZ,EAPJ,GAOI,YAAY,IACZ,EARJ,GAQI,mBAAmB,CAAC,CAAC,GAAI,EAAE,EAAG,CAAC,GAAI,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,GAAI,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,CAAC,GCnCzI,MAAM,EAAwB,CAIjC,YAAY,EAAO,EAAQ,CAH3B,gBACA,iBACA,YAII,GAFA,KAAK,MAAQ,EACb,KAAK,OAAS,EACV,EAAO,SAAW,EAClB,KAAM,IAAI,OAAM,wDAAwD,EAE5E,KAAK,EAAI,EAAO,MACnB,CACD,SAAS,EAAG,EAAG,EAAG,CACd,KAAM,GAAO,MAAK,KAAK,OAAU,IAAK,KAAK,QAAU,KAAK,EAAI,KAAK,GAAK,KAAK,EAC7E,MAAO,IAAW,MAAM,KAAK,OAAO,GAAG,SAAQ,CAAE,CACpD,OACM,UAAS,EAAK,CjKlBzB,UiKmBQ,KAAM,GAAO,KAAK,WAAW,CAAG,IAAnB,OAAwB,GAC/B,EAAQ,KAAK,QAAQ,EAAK,KAAK,IAAvB,OAA4B,EAC1C,GAAI,GACJ,MAAI,OAAO,GAAK,QAAW,SACvB,EAAS,CAAC,GAAW,MAAM,EAAK,MAAM,CAAC,EAGvC,EAAS,KAAK,UAAU,EAAK,OAAQ,CAAC,EAAM,CjK1BxD,MiK0BwD,UAAW,MAAM,KAAK,WAAW,CAAC,IAAjB,OAAsB,EAAE,EAAC,IAA7E,OAAkF,GAExF,GAAI,IAAwB,EAAQ,EAAG,CAAM,CACvD,CACL,CC5BO,MAAM,EAAiB,CAE1B,YAAY,EAAO,CADnB,gBAEI,KAAK,MAAQ,CAChB,CACD,UAAW,CACP,MAAO,MAAK,KACf,OACM,UAAS,EAAK,ClKVzB,QkKWQ,KAAM,GAAO,KAAK,WAAW,CAAG,IAAnB,OAAwB,GAC/B,EAAQ,GAAW,MAAM,KAAK,WAAW,EAAK,KAAK,IAA1B,OAA+B,QAAQ,EACtE,MAAO,IAAI,IAAiB,CAAK,CACpC,CACL,CCZO,GAAI,IACX,CAAC,SAAU,EAAS,CAEhB,WAAgB,EAAa,EAAU,EAAiB,EAAS,EAAO,EAAW,CAC/E,MAAO,IAAI,GAAY,EAAa,EAAU,EAAiB,EAAS,EAAO,CAAS,CAC3F,CACD,EAAQ,OAAS,EACjB,WAAoB,EAAa,EAAU,EAAiB,EAAS,EAAO,EAAW,EAAQ,CAC3F,MAAO,IAAI,GAAW,EAAM,CAAW,EAAG,EAAM,CAAQ,EAAG,EAAM,CAAe,EAAG,EAAM,CAAO,EAAG,EAAM,CAAK,EAAG,EAAM,CAAS,EAAG,CAAM,CAC5I,CACD,EAAQ,WAAa,EACrB,WAAe,EAAO,EAAK,CACvB,MAAI,OAAO,IAAU,SACV,GAAI,GAAM,EAAO,UAAO,CAAK,EAEjC,CACV,CACD,EAAQ,MAAQ,EAChB,MAAM,CAAM,CAGR,YAAY,EAAK,EAAK,CAFtB,cACA,cAEI,KAAK,IAAM,EACX,KAAK,IAAM,CACd,CACD,SAAS,EAAO,CACZ,KAAM,GAAW,OAAO,IAAU,SAAW,EAAQ,EAAM,KAAO,KAAK,IACjE,EAAU,KAAK,IAAO,OAAO,IAAU,SAAW,EAAQ,EAAM,KACtE,MAAI,GAAU,EACH,EAEJ,KAAK,IAAI,EAAS,CAAC,CAC7B,CACD,MAAM,EAAO,CACT,MAAO,IAAI,GAAM,KAAK,IAAI,KAAK,IAAK,EAAM,GAAG,EAAG,KAAK,IAAI,KAAK,IAAK,EAAM,GAAG,CAAC,CAChF,OACM,UAAS,EAAK,CnKvC7B,MmKwCY,GAAI,MAAO,IAAQ,SACf,MAAO,IAAI,GAAM,EAAK,CAAG,EAC7B,KAAM,CAAC,EAAK,GAAO,KAAK,UAAU,EAAK,GAAK,EAAK,WAAW,CAAC,CAAC,IAA3C,OAAgD,GACnE,MAAO,IAAI,GAAM,UAAO,EAAG,UAAO,CAAC,CACtC,CACJ,CACD,EAAQ,MAAQ,EAChB,MAAM,CAAW,CAQb,YAAY,EAAa,EAAU,EAAiB,EAAS,EAAO,EAAW,EAAQ,CAPvF,sBACA,mBACA,0BACA,kBACA,gBACA,oBACA,iBAEI,KAAK,YAAc,EACnB,KAAK,SAAW,EAChB,KAAK,gBAAkB,EACvB,KAAK,QAAU,EACf,KAAK,MAAQ,EACb,KAAK,UAAY,EACjB,KAAK,OAAS,CACjB,CACD,SAAS,EAAO,CACZ,MAAO,IAAO,KAAK,YAAY,SAAS,EAAM,WAAW,CAAC,EACpD,GAAO,KAAK,SAAS,SAAS,EAAM,QAAQ,CAAC,EAC7C,GAAO,KAAK,gBAAgB,SAAS,EAAM,eAAe,CAAC,EAC3D,GAAO,KAAK,QAAQ,SAAS,EAAM,OAAO,CAAC,EAC3C,GAAO,KAAK,MAAM,SAAS,EAAM,KAAK,CAAC,EACvC,GAAO,KAAK,UAAU,SAAS,EAAM,SAAS,CAAC,EAC/C,GAAO,KAAK,OAAS,EAAM,MAAM,CAC1C,CACD,OAAQ,CACJ,MAAO,CAAC,KAAK,YAAa,KAAK,SAAU,KAAK,gBAAiB,KAAK,QAAS,KAAK,MAAO,KAAK,UAAW,GAAI,GAAM,KAAK,OAAQ,KAAK,MAAM,CAAC,CAC/I,OACM,UAAS,EAAK,CnK5E7B,QmK6EY,KAAM,GAAO,KAAK,WAAW,CAAG,IAAnB,OAAwB,GACrC,MAAO,IAAI,GAAW,EAAM,SAAS,EAAK,WAAW,EAAG,EAAM,SAAS,EAAK,QAAQ,EAAG,EAAM,SAAS,EAAK,eAAe,EAAG,EAAM,SAAS,EAAK,OAAO,EAAG,EAAM,SAAS,EAAK,KAAK,EAAG,EAAM,SAAS,EAAK,SAAS,EAAG,KAAK,QAAQ,EAAK,MAAM,IAAxB,OAA6B,CAAC,CACxP,CACJ,CACD,EAAQ,WAAa,EACrB,MAAM,CAAY,CAOd,YAAY,EAAa,EAAU,EAAiB,EAAS,EAAO,EAAW,CAN/E,sBACA,mBACA,0BACA,kBACA,gBACA,oBAEI,KAAK,YAAc,EACnB,KAAK,SAAW,EAChB,KAAK,gBAAkB,EACvB,KAAK,QAAU,EACf,KAAK,MAAQ,EACb,KAAK,UAAY,CACpB,IACG,SAAS,CACT,MAAO,EACV,CACD,SAAU,CACN,MAAO,CAAC,KAAK,YAAa,KAAK,SAAU,KAAK,gBAAiB,KAAK,QAAS,KAAK,MAAO,KAAK,UAAW,KAAK,MAAM,CACvH,CACJ,CACD,EAAQ,YAAc,EACtB,MAAM,CAAW,CAGb,YAAY,EAAQ,CAFpB,iBACA,gBAEI,KAAK,OAAS,EACd,KAAK,MAAQ,GAAI,GAAM,CAAM,CAChC,CACD,KAAK,EAAQ,CACT,MAAO,MAAK,MAAM,OAAO,EAAQ,CAAC,EAAM,IAAW,EAAK,SAAS,CAAM,CAAC,CAC3E,CACJ,CACD,EAAQ,WAAa,EACrB,MAAM,CAAQ,CAOV,YAAY,EAAa,EAAU,EAAiB,EAAS,EAAO,EAAW,CAN/E,sBACA,mBACA,0BACA,kBACA,gBACA,oBAEI,KAAK,YAAc,EACnB,KAAK,SAAW,EAChB,KAAK,gBAAkB,EACvB,KAAK,QAAU,EACf,KAAK,MAAQ,EACb,KAAK,UAAY,CACpB,OACM,YAAW,EAAQ,CACtB,MAAO,IAAI,GAAQ,QAAQ,EAAO,YAAa,EAAO,WAAY,EAAO,WAAY,EAAO,QAAS,EAAO,MAAO,EAAO,MAAM,CACnI,CACD,OAAO,EAAG,EAAG,EAAG,CACZ,KAAM,GAAU,GAAgB,QAAQ,GAAK,EAAG,GAAK,EAAG,GAAK,CAAC,EAC9D,MAAO,GAAQ,OAAO,KAAK,YAAY,QAAQ,CAAO,EAAG,KAAK,SAAS,QAAQ,CAAO,EAAG,KAAK,gBAAgB,QAAQ,CAAO,EAAG,KAAK,QAAQ,QAAQ,CAAO,EAAG,KAAK,MAAM,QAAQ,CAAO,EAAG,KAAK,UAAU,QAAQ,CAAO,CAAC,CAC9N,CACJ,CACD,EAAQ,QAAU,EAClB,aAAY,CAGR,YAAY,EAAQ,CADpB,eAEI,GAAI,EAAO,SAAW,EAClB,KAAM,IAAI,OAAM,qDAAqD,EAEzE,KAAK,KAAO,EAAM,MAAM,EAAO,IAAI,CAAC,CAAC,EAAO,KAAW,GAAI,GAAM,EAAO,CAAK,CAAC,CAAC,CAClF,OACM,OAAM,EAAO,CAChB,GAAI,EAAM,SAAW,EACjB,MAAO,GAAM,GAEjB,GAAI,EAAM,QAAU,EAAM,kBAAmB,CACzC,KAAM,GAAc,EACf,IAAI,GAAQ,CACb,GAAI,GAAM,EACV,OAAS,GAAI,EAAG,EAAI,EAAiB,GAAK,EAAG,CACzC,KAAM,GAAQ,EAAK,MAAM,GACzB,GAAO,KAAK,IAAK,GAAM,IAAM,EAAM,KAAO,CAAG,CAChD,CACD,MAAO,CAAE,MAAK,OAClC,CAAiB,EACI,KAAK,CAAC,EAAG,IAAM,EAAE,IAAM,EAAE,GAAG,EAC5B,IAAI,CAAC,CAAE,UAAW,CAAI,EAC3B,MAAO,IAAI,GAAS,CAAW,CAClC,CACD,GAAI,GAAI,IACJ,EAAK,GACL,EAAS,GACb,OAAS,GAAK,EAAG,EAAK,EAAiB,EAAE,EAAI,CACzC,EAAQ,EAAM,KAAK,EAAO,EAAI,EAAK,EACnC,EAAS,EAAM,UAAU,CAAK,EAC9B,GAAI,GAAK,EACT,SAAW,KAAY,GACnB,GAAM,EAAM,KAAK,EAAS,KAAK,EAEnC,CAAM,CAAI,GAEV,GAAI,EACJ,EAAK,EACR,CACD,SAAQ,EAAM,KAAK,EAAO,EAAI,EAAK,EACnC,EAAS,EAAM,UAAU,CAAK,EAC9B,EAAS,EAAM,KAAK,EAAQ,EAAI,EAAI,EAC7B,GAAI,GAAS,EAAO,IAAI,GAAW,EAAM,MAAM,EAAQ,QAAQ,CAAC,CAAC,CAC3E,OACM,MAAK,EAAO,EAAG,EAAK,CACvB,MAAO,GACF,IAAI,GAAQ,CACb,KAAM,GAAQ,EAAK,MAAM,GACnB,EAAK,GAAM,IAAM,EAAM,KAAO,EAEpC,MAAO,CAAE,IADG,EAAM,KAAK,IAAI,CAAC,EAAI,EAClB,OAC9B,CAAa,EACI,KAAK,CAAC,EAAG,IAAM,EAAE,IAAM,EAAE,GAAG,EAC5B,IAAI,CAAC,CAAE,UAAW,CAAI,CAC9B,OACM,WAAU,EAAO,CACpB,KAAM,GAAY,GAClB,GAAI,GAAa,GACjB,KAAM,GAAI,KAAK,IAAI,GAAM,KAAK,MAAM,KAAK,IAAI,EAAM,OAAS,GAAI,EAAI,KAAK,IAAI,EAAI,CAAC,CAAC,EACnF,SAAW,KAAQ,GAEf,CADA,CAAW,KAAK,CAAI,EAChB,IAAW,OAAS,IAExB,GAAU,KAAK,GAAI,GAAS,CAAU,CAAC,EACvC,EAAa,IAEjB,MAAI,GAAW,SAAW,GACtB,EAAU,KAAK,GAAI,GAAS,CAAU,CAAC,EAEpC,CACV,OACM,MAAK,EAAQ,CAChB,GAAI,GAAI,EACR,SAAW,KAAS,GAChB,GAAK,KAAK,IAAI,EAAM,IAAM,EAAM,GAAG,EAEvC,MAAO,EACV,CACD,OAAO,EAAQ,EAAU,CAErB,MAAO,CADM,KAAK,KAAK,OAAO,EAAO,QAAO,EAAI,CAAQ,EAC5C,OACf,CACJ,EArFD,QACW,EADX,EACW,oBAAoB,IAqF/B,EAAQ,MAAQ,EAChB,MAAM,CAAM,CAER,YAAY,EAAO,CADnB,gBAEI,KAAK,MAAQ,CAChB,CACD,SAAS,EAAQ,CACb,GAAI,GAAS,EACb,OAAS,GAAI,EAAG,EAAI,EAAiB,GAAK,EACtC,GAAU,GAAO,KAAK,MAAM,GAAG,SAAS,EAAO,EAAE,CAAC,EAEtD,MAAO,EACV,CACJ,CACD,EAAQ,MAAQ,EAChB,MAAM,SAAiB,EAAM,CAEzB,YAAY,EAAU,CAClB,MAAM,EAAS,WAAW,CAAQ,CAAC,EAFvC,mBAGI,KAAK,SAAW,CACnB,OACM,YAAW,EAAO,CACrB,GAAI,GAAQ,CAAC,GAAG,MAAM,CAAe,CAAC,EAAE,IAAI,IAAM,GAAI,GAAM,IAAU,IAAS,CAAC,EAChF,SAAW,KAAQ,GACf,EAAQ,CAAC,GAAG,MAAM,CAAe,CAAC,EAAE,IAAI,CAAC,EAAG,IAAM,EAAM,GAAG,MAAM,EAAK,MAAM,EAAE,CAAC,EAEnF,MAAO,EACV,CACD,OAAO,EAAQ,EAAU,CACrB,GAAI,GAAO,IACP,EAAO,KACX,SAAW,KAAQ,MAAK,SAAU,CAC9B,KAAM,GAAK,EAAS,EAAM,CAAM,EAChC,GAAI,GAAQ,EACR,SACJ,KAAM,GAAQ,EAAK,OAAO,EAAQ,CAAQ,EACpC,EAAK,GAAQ,EAAQ,EAAK,EAAS,EAAO,CAAM,EACtD,CAAI,EAAQ,GAEZ,GAAO,EACP,EAAO,EACV,CACD,MAAO,EACV,CACJ,CACD,EAAQ,SAAW,EACnB,MAAM,SAAc,EAAM,CAEtB,YAAY,EAAO,EAAO,CACtB,MAAM,EAAM,MAAK,CAAE,EAFvB,gBAGI,KAAK,MAAQ,CAChB,CACD,QAAS,CACL,MAAO,KACV,CACJ,CACD,EAAQ,MAAQ,CACpB,GAAG,IAAY,IAAU,GAAG,ECzRrB,MAAM,EAAsB,CAE/B,YAAY,EAAS,CADrB,qBAEI,KAAK,WAAa,GAAI,IAAQ,WAAW,CAAO,CACnD,CACD,SAAS,EAAG,EAAG,EAAG,EAAgB,CAC9B,KAAM,GAAS,EAAe,OAAO,EAAG,EAAG,CAAC,EAC5C,MAAO,MAAK,WAAW,KAAK,CAAM,CACrC,OACM,UAAS,EAAK,CpKZzB,QoKaQ,KAAM,GAAO,KAAK,WAAW,CAAG,IAAnB,OAAwB,GAK/B,EAAU,CAJD,KAAK,UAAU,EAAK,OAAQ,GAAK,CpKdxD,MoKcyD,UAAM,CpKd/D,MoKc+D,OACnD,MAAO,GAAW,MAAM,KAAK,WAAW,EAAE,KAAK,IAAvB,OAA4B,QAAQ,EAC5D,WAAY,GAAQ,WAAW,SAAS,EAAE,UAAU,CAChE,IAAY,KAAK,WAAW,CAAC,IAAjB,OAAsB,CAAE,GAAC,IAHd,OAGmB,IACX,IAAI,GAAK,CAAC,EAAE,WAAY,IAAM,EAAE,KAAK,CAAC,EAC7D,MAAO,IAAI,IAAsB,CAAO,CAC3C,CACL,CCnBO,cAAwB,CAM3B,SAAS,EAAG,EAAG,EAAG,EAAgB,CAC9B,KAAM,GAAS,GAAK,EACd,EAAS,GAAK,EACd,EAAS,GAAK,EACd,EAAW,GAAU,EACrB,EAAW,GAAU,EAC3B,GAAI,EAAW,EAAW,EAAW,GAAY,KAC7C,MAAO,IAAkB,IAE7B,KAAM,GAAU,GAAgB,QAAS,GAAW,EAAI,GAAK,EAAG,EAAS,GAAW,EAAI,GAAK,CAAC,EACxF,EAAU,EAAe,QAAQ,QAAQ,CAAO,EACtD,MAAI,GAAU,IACH,GAAkB,UAEpB,GAAW,OACT,GAAkB,SAEpB,GAAW,QACT,GAAkB,QAGlB,GAAkB,OAEhC,OACM,UAAS,EAAK,CACjB,MAAO,IAAI,GACd,CACL,EAjCO,UACI,EADJ,GACI,MAAM,GAAW,OAAO,SAAS,GACjC,EAFJ,GAEI,YAAY,GAAW,OAAO,eAAe,GAC7C,EAHJ,GAGI,WAAW,GAAW,OAAO,cAAc,GAC3C,EAJJ,GAII,UAAU,GAAW,OAAO,mBAAmB,GAC/C,EALJ,GAKI,UAAU,GAAW,OAAO,aAAa,GCD7C,GAAI,IACX,CAAC,SAAU,EAAa,CACpB,WAAkB,EAAK,CtKR3B,QsKSQ,KAAM,GAAO,KAAK,WAAW,CAAG,IAAnB,OAAwB,GAErC,OADa,KAAK,WAAW,EAAK,IAAI,IAAzB,cAA4B,QAAQ,cAAe,SAEvD,QAAS,MAAO,IAAiB,SAAS,CAAG,MAC7C,eAAgB,MAAO,IAAwB,SAAS,CAAG,MAC3D,cAAe,MAAO,IAAsB,SAAS,CAAG,MACxD,UAAW,MAAO,IAAkB,SAAS,CAAG,UAC5C,MAAO,CAAE,SAAU,IAAM,GAAW,OAAO,QAAQ,GAEnE,CACD,EAAY,SAAW,CAC3B,GAAG,IAAgB,IAAc,GAAG,ECf7B,MAAM,EAAW,CAkBpB,YAAY,EAAa,EAAY,EAAe,EAAa,EAAM,EAAM,EAAU,EAAiB,EAAa,CAjBrH,sBACA,qBACA,wBACA,eACA,eACA,mBACA,oBACA,qBACA,qBACA,qBACA,sBACA,sBACA,sBACA,iCAA0B,GAAI,MAC9B,kBACA,uBACA,yBAEI,KAAK,YAAc,EACnB,KAAK,WAAa,EAClB,KAAK,cAAgB,EACrB,KAAK,KAAO,EACZ,KAAK,KAAO,EACZ,KAAK,SAAW,EAChB,KAAK,UAAY,GAAc,UAAU,CAAQ,EACjD,KAAK,WAAa,GAAc,WAAW,CAAQ,EACnD,KAAK,WAAa,KAAK,MAAM,EAAO,KAAK,SAAS,EAClD,KAAK,WAAa,KAAK,MAAM,EAAO,KAAK,SAAS,EAClD,KAAK,YAAc,GAAQ,EAC3B,KAAK,YAAc,GAAQ,EAC3B,KAAK,YAAe,EAAc,KAAK,WAAc,EAEjD,KAAK,QAAU,GAAQ,eAAe,CAAW,EAQrD,KAAM,GAAe,EAAY,OAAO,aACxC,KAAK,aAAe,GAAa,SAAS,CACtC,CAAC,EAAY,KAAK,QAAQ,QAAQ,EAAS,EAAa,QAAQ,CAAO,CAAC,CACpF,CAAS,EACD,KAAK,eAAiB,EAAY,OAAO,+BAC5C,CACD,cAAc,EAAG,EAAG,EAAG,CACnB,MAAO,MAAK,aAAa,CAAE,IAAG,IAAG,GAAC,CAAE,CACvC,CACD,2BAA2B,EAAQ,EAAQ,CACvC,MAAO,IAAgB,KAAK,wBAAyB,GAAS,OAAO,EAAQ,CAAM,EAAG,IAAM,CACxF,KAAM,GAAI,GAAU,EACd,EAAI,GAAU,EACpB,OAAS,GAAI,KAAK,SAAS,KAAO,KAAK,SAAS,OAAQ,GAAK,KAAK,SAAS,KAAM,GAAK,KAAK,WAEvF,GAAI,CADY,IAAK,eAAe,QAAQ,GAAgB,QAAQ,EAAG,EAAG,CAAC,CAAC,EAC9D,QACV,MAAO,GAGf,MAAO,QAAO,gBAC1B,CAAS,CACJ,CACL,CACO,GAAI,IACX,CAAC,SAAU,EAAc,CACrB,WAAkB,EAAO,CACrB,MAAO,CAAC,GAAY,CAChB,SAAW,KAAQ,GAAO,CACtB,KAAM,GAAQ,EAAK,CAAO,EAC1B,GAAI,EACA,MAAO,EACd,CAEb,CACK,CACD,EAAa,SAAW,CAC5B,GAAG,IAAiB,IAAe,GAAG,EC5E/B,MAAME,EAAoB,CAK7B,YAAY,EAAa,EAAU,CAJnC,sBACA,mBACA,0BACA,4BAEI,KAAK,YAAc,EACnB,KAAK,SAAW,EAChB,KAAK,gBAAkB,GAAI,KAC3B,KAAM,GAAY,GAAI,IAAY,IAAK,GAAW,IAAI,EAChD,EAAe,GAAI,IAAY,EAAS,SAAU,EAAS,YAAY,EAC7E,KAAK,kBAAoB,CAAC,EAAG,EAAG,IACxB,EAAI,KAAK,IAAI,IAAK,EAAS,QAAQ,EAC5B,EAEJ,CAEd,CACD,KAAK,EAAa,EAAO,EAAa,GAAO,CxKxBjD,MwKyBQ,KAAM,GAAO,KAAK,IAAI,EAAM,KAAM,KAAK,SAAS,MAAM,IAAI,EACpD,EAAO,KAAK,IAAI,EAAM,KAAM,KAAK,SAAS,MAAM,KAAO,KAAK,SAAS,MAAM,MAAM,EACjF,EAAY,GAAc,UAAU,KAAK,SAAS,KAAK,EACvD,EAAa,GAAc,WAAW,KAAK,SAAS,KAAK,EACzD,EAAc,KAAK,MAAM,GAAK,CAAS,EACvC,EAAW,KAAK,MAAM,EAAO,CAAU,EACvC,EAAa,KAAK,MAAO,GAAO,GAAQ,CAAU,EAClD,EAAO,GAAS,UAAU,EAAM,GAAG,EACnC,EAAO,GAAS,UAAU,EAAM,GAAG,EACnC,EAAa,KAAK,sBAAsB,EAAa,CAAK,EAChE,OAAS,GAAQ,EAAG,EAAQ,EAAa,GAAS,EAC9C,OAAS,GAAQ,EAAG,EAAS,GAAa,EAAI,GAAc,GAAS,EAAG,CACpE,GAAI,GAAU,EAAM,mBAAmB,EAAM,cAAgB,CAAC,EAC9D,OAAS,GAAQ,EAAa,EAAG,GAAS,EAAG,GAAS,EAClD,OAAS,GAAO,EAAa,EAAG,GAAQ,EAAG,GAAQ,EAAG,CAClD,KAAM,GAAU,GAAW,GAAS,EAAa,EAC3C,EAAW,EAAS,GACpB,EAAe,EAAM,gBAAgB,CAAM,EACjD,CAAI,CAAM,gBAAgB,EAAQ,SAAS,IAAM,GAC7C,GAAU,EAAM,mBAAmB,CAAY,GAEnD,OAAS,GAAO,EAAG,EAAO,EAAW,GAAQ,EAAG,CAC5C,KAAM,GAAS,EAAO,EAAQ,EAAY,EACpC,EAAW,EAAS,GAC1B,OAAS,GAAO,EAAG,EAAQ,GAAa,EAAI,GAAY,GAAQ,EAAG,CAC/D,KAAM,GAAS,EAAO,EAAQ,EAAY,EACpC,EAAW,EAAS,GACpB,EAAQ,KAAW,cAAc,EAAQ,EAAQ,CAAM,IAA/C,OAAoD,KAAK,SAAS,aAChF,EAAQ,cAAc,EAAU,EAAU,EAAU,CAAK,CAC5D,CACJ,CACJ,CAER,CAER,CACD,aAAa,EAAa,EAA0B,EAAQ,mBAAoB,CAC5E,KAAM,GAAa,KAAK,sBAAsB,EAAa,CAAK,EAC1D,EAAU,GAAgB,OAAO,KAAK,SAAS,MAAM,KAAM,KAAK,SAAS,MAAM,MAAM,EAC3F,EAAY,cAAc,aAAa,EAAO,EAAY,EAAS,IAAM,CAAK,CACjF,CACD,aAAa,EAAa,EAAQ,EAAQ,EAAQ,CAC9C,MAAO,MAAK,YAAY,SAAS,EAAQ,EAAQ,EAAQ,EAAY,OAAO,CAC/E,CACD,sBAAsB,EAAa,EAAO,CACtC,MAAO,IAAgB,KAAK,gBAAiB,GAAS,OAAO,EAAM,GAAG,EAAG,IAAM,CAC3E,KAAM,GAAO,KAAK,IAAI,EAAM,KAAM,KAAK,SAAS,MAAM,IAAI,EACpD,EAAO,KAAK,IAAI,EAAM,KAAM,KAAK,SAAS,MAAM,KAAO,KAAK,SAAS,MAAM,MAAM,EACjF,EAAY,GAAc,UAAU,KAAK,SAAS,KAAK,EACvD,EAAa,GAAc,WAAW,KAAK,SAAS,KAAK,EACzD,EAAc,KAAK,MAAM,GAAK,CAAS,EACvC,EAAW,KAAK,MAAM,EAAO,CAAU,EACvC,EAAa,KAAK,MAAO,GAAO,GAAQ,CAAU,EAClD,EAAO,GAAS,UAAU,EAAM,GAAG,EACnC,EAAO,GAAS,UAAU,EAAM,GAAG,EACzC,MAAO,IAAI,IAAW,EAAa,EAAY,EAAU,EAAa,EAAM,EAAM,KAAK,SAAS,MAAO,KAAK,SAAS,gBAAiB,KAAK,iBAAiB,CACxK,CAAS,CACJ,CACL,CClFA,KAAM,IAAQ,CAAC,EAAM,CACjB,KAAM,GAAK,GAAK,GAAM,IAChB,EAAK,GAAK,EAAK,IACf,EAAI,EAAI,IACd,MAAO,CAAC,EAAI,IAAK,EAAI,IAAK,EAAI,GAAG,CACrC,EACM,GAAQ,CAAC,IAAM,IAAK,IAAM,IAAK,IAAM,GAAG,EACxC,GAAS,GAAM,OAAO,EACtB,GAAQ,GAAM,OAAO,EACrB,GAAU,GAAM,OAAO,EACvB,GAAQ,GAAM,OAAO,EACrB,GAAgB,GAAM,OAAO,EAC7B,GAAW,GAAM,OAAO,EACxB,GAAW,CAAC,EAAU,CACxB,KAAM,GAAI,EAAQ,GACZ,EAAI,EAAI,GAAO,GAAI,EAAI,GAAM,IAC7B,EAAI,GAAM,EAAI,EAAI,GAAM,GAAK,EAAG,CAAC,EACjC,EAAI,GAAM,EAAI,EAAI,GAAM,GAAK,EAAG,CAAC,EACvC,MAAO,CAAC,EAAG,EAAG,CAAC,CACnB,EACM,GAAO,CAAC,EACH,CAAC,EAAM,EAAG,EAAI,EAAM,GAAI,EAAM,EAAE,EAE9B,GAAc,CACvB,WAAY,IAAM,GAClB,WAAY,IAAM,GAClB,YAAa,IAAM,GACnB,KAAM,IAAM,GACZ,MAAO,IAAM,GACb,YAAa,IAAM,GACnB,cAAe,IAAM,GACrB,aAAc,IAAM,GACpB,WAAY,IAAM,GAClB,cAAe,IAAM,GACrB,cAAe,IAAM,GACrB,gBAAiB,IAAM,GACvB,KAAM,IAAM,GACZ,MAAO,IAAM,GACb,cAAe,IAAM,GACrB,SAAU,IAAM,GAChB,cAAe,CAAC,EAAK,CzKzCzB,MyKyC8B,UAAS,SAAS,KAAM,QAAN,OAAkB,GAAG,CAAC,GAClE,WAAY,IAAM,GAClB,oBAAqB,IAAM,GAC3B,sBAAuB,IAAM,GAC7B,WAAY,CAAC,EAAK,CzK7CtB,MyK6C2B,UAAK,SAAS,KAAM,MAAN,OAAgB,GAAG,CAAC,GACzD,aAAc,CAAC,EAAK,CzK9CxB,MyK8C6B,UAAK,SAAS,KAAM,MAAN,OAAgB,GAAG,CAAC,GAC3D,SAAU,IAAM,EACpB,EC3CO,GAAI,IAAU,KACV,GAAa,MAAO,eAAiB,YAAc,aAAe,MAWzE,GAAS,KAAK,GAAK,IAOhB,YAAkB,EAAG,CAC1B,MAAO,GAAI,EACb,CAcA,CAAK,IAAK,OAAO,MAAK,MAAQ,UAAY,CAIxC,OAHI,GAAI,EACJ,EAAI,UAAU,OAEX,KACL,GAAK,UAAU,GAAK,UAAU,GAGhC,MAAO,MAAK,KAAK,CAAC,CACpB,GCrCO,aAAkB,CACvB,GAAI,GAAM,GAAIC,IAAoB,EAAE,EAEpC,MAAIA,KAAuB,cACzB,GAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,IAAM,EACV,EAAI,IAAM,EACV,EAAI,IAAM,EACV,EAAI,IAAM,GAGZ,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,IAAM,EACV,EAAI,IAAM,EACH,CACT,CAoCO,YAAc,EAAK,EAAG,CAC3B,SAAI,GAAK,EAAE,GACX,EAAI,GAAK,EAAE,GACX,EAAI,GAAK,EAAE,GACX,EAAI,GAAK,EAAE,GACX,EAAI,GAAK,EAAE,GACX,EAAI,GAAK,EAAE,GACX,EAAI,GAAK,EAAE,GACX,EAAI,GAAK,EAAE,GACX,EAAI,GAAK,EAAE,GACX,EAAI,GAAK,EAAE,GACX,EAAI,IAAM,EAAE,IACZ,EAAI,IAAM,EAAE,IACZ,EAAI,IAAM,EAAE,IACZ,EAAI,IAAM,EAAE,IACZ,EAAI,IAAM,EAAE,IACZ,EAAI,IAAM,EAAE,IACL,CACT,CA4FO,YAAkB,EAAK,CAC5B,SAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,IAAM,EACV,EAAI,IAAM,EACV,EAAI,IAAM,EACV,EAAI,IAAM,EACV,EAAI,IAAM,EACV,EAAI,IAAM,EACH,CACT,CA0QO,YAAmB,EAAK,EAAG,EAAG,CACnC,GAAI,GAAI,EAAE,GACN,EAAI,EAAE,GACN,EAAI,EAAE,GACN,EAAK,EAAK,EAAK,EACf,EAAK,EAAK,EAAK,EACf,EAAK,EAAK,EAAK,EAEnB,MAAI,KAAM,EACR,GAAI,IAAM,EAAE,GAAK,EAAI,EAAE,GAAK,EAAI,EAAE,GAAK,EAAI,EAAE,IAC7C,EAAI,IAAM,EAAE,GAAK,EAAI,EAAE,GAAK,EAAI,EAAE,GAAK,EAAI,EAAE,IAC7C,EAAI,IAAM,EAAE,GAAK,EAAI,EAAE,GAAK,EAAI,EAAE,IAAM,EAAI,EAAE,IAC9C,EAAI,IAAM,EAAE,GAAK,EAAI,EAAE,GAAK,EAAI,EAAE,IAAM,EAAI,EAAE,KAE9C,GAAM,EAAE,GACR,EAAM,EAAE,GACR,EAAM,EAAE,GACR,EAAM,EAAE,GACR,EAAM,EAAE,GACR,EAAM,EAAE,GACR,EAAM,EAAE,GACR,EAAM,EAAE,GACR,EAAM,EAAE,GACR,EAAM,EAAE,GACR,EAAM,EAAE,IACR,EAAM,EAAE,IACR,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,IAAM,EACV,EAAI,IAAM,EACV,EAAI,IAAM,EAAM,EAAI,EAAM,EAAI,EAAM,EAAI,EAAE,IAC1C,EAAI,IAAM,EAAM,EAAI,EAAM,EAAI,EAAM,EAAI,EAAE,IAC1C,EAAI,IAAM,EAAM,EAAI,EAAM,EAAI,EAAM,EAAI,EAAE,IAC1C,EAAI,IAAM,EAAM,EAAI,EAAM,EAAI,EAAM,EAAI,EAAE,KAGrC,CACT,CAUO,YAAe,EAAK,EAAG,EAAG,CAC/B,GAAI,GAAI,EAAE,GACN,EAAI,EAAE,GACN,EAAI,EAAE,GACV,SAAI,GAAK,EAAE,GAAK,EAChB,EAAI,GAAK,EAAE,GAAK,EAChB,EAAI,GAAK,EAAE,GAAK,EAChB,EAAI,GAAK,EAAE,GAAK,EAChB,EAAI,GAAK,EAAE,GAAK,EAChB,EAAI,GAAK,EAAE,GAAK,EAChB,EAAI,GAAK,EAAE,GAAK,EAChB,EAAI,GAAK,EAAE,GAAK,EAChB,EAAI,GAAK,EAAE,GAAK,EAChB,EAAI,GAAK,EAAE,GAAK,EAChB,EAAI,IAAM,EAAE,IAAM,EAClB,EAAI,IAAM,EAAE,IAAM,EAClB,EAAI,IAAM,EAAE,IACZ,EAAI,IAAM,EAAE,IACZ,EAAI,IAAM,EAAE,IACZ,EAAI,IAAM,EAAE,IACL,CACT,CAWO,YAAgB,EAAK,EAAG,EAAK,EAAM,CACxC,GAAI,GAAI,EAAK,GACT,EAAI,EAAK,GACT,EAAI,EAAK,GACT,EAAM,KAAK,MAAM,EAAG,EAAG,CAAC,EACxB,EAAG,EAAG,EACN,EAAK,EAAK,EAAK,EACf,EAAK,EAAK,EAAK,EACf,EAAK,EAAK,EAAK,EACf,EAAK,EAAK,EACV,EAAK,EAAK,EACV,EAAK,EAAK,EAEd,MAAI,GAAMC,GACD,KAGT,GAAM,EAAI,EACV,GAAK,EACL,GAAK,EACL,GAAK,EACL,EAAI,KAAK,IAAI,CAAG,EAChB,EAAI,KAAK,IAAI,CAAG,EAChB,EAAI,EAAI,EACR,EAAM,EAAE,GACR,EAAM,EAAE,GACR,EAAM,EAAE,GACR,EAAM,EAAE,GACR,EAAM,EAAE,GACR,EAAM,EAAE,GACR,EAAM,EAAE,GACR,EAAM,EAAE,GACR,EAAM,EAAE,GACR,EAAM,EAAE,GACR,EAAM,EAAE,IACR,EAAM,EAAE,IAER,EAAM,EAAI,EAAI,EAAI,EAClB,EAAM,EAAI,EAAI,EAAI,EAAI,EACtB,EAAM,EAAI,EAAI,EAAI,EAAI,EACtB,EAAM,EAAI,EAAI,EAAI,EAAI,EACtB,EAAM,EAAI,EAAI,EAAI,EAClB,EAAM,EAAI,EAAI,EAAI,EAAI,EACtB,EAAM,EAAI,EAAI,EAAI,EAAI,EACtB,EAAM,EAAI,EAAI,EAAI,EAAI,EACtB,EAAM,EAAI,EAAI,EAAI,EAElB,EAAI,GAAK,EAAM,EAAM,EAAM,EAAM,EAAM,EACvC,EAAI,GAAK,EAAM,EAAM,EAAM,EAAM,EAAM,EACvC,EAAI,GAAK,EAAM,EAAM,EAAM,EAAM,EAAM,EACvC,EAAI,GAAK,EAAM,EAAM,EAAM,EAAM,EAAM,EACvC,EAAI,GAAK,EAAM,EAAM,EAAM,EAAM,EAAM,EACvC,EAAI,GAAK,EAAM,EAAM,EAAM,EAAM,EAAM,EACvC,EAAI,GAAK,EAAM,EAAM,EAAM,EAAM,EAAM,EACvC,EAAI,GAAK,EAAM,EAAM,EAAM,EAAM,EAAM,EACvC,EAAI,GAAK,EAAM,EAAM,EAAM,EAAM,EAAM,EACvC,EAAI,GAAK,EAAM,EAAM,EAAM,EAAM,EAAM,EACvC,EAAI,IAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EACxC,EAAI,IAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAEpC,IAAM,GAER,GAAI,IAAM,EAAE,IACZ,EAAI,IAAM,EAAE,IACZ,EAAI,IAAM,EAAE,IACZ,EAAI,IAAM,EAAE,KAGP,EACT,CAUO,YAAiB,EAAK,EAAG,EAAK,CACnC,GAAI,GAAI,KAAK,IAAI,CAAG,EAChB,EAAI,KAAK,IAAI,CAAG,EAChB,EAAM,EAAE,GACR,EAAM,EAAE,GACR,EAAM,EAAE,GACR,EAAM,EAAE,GACR,EAAM,EAAE,GACR,EAAM,EAAE,GACR,EAAM,EAAE,IACR,EAAM,EAAE,IAEZ,MAAI,KAAM,GAER,GAAI,GAAK,EAAE,GACX,EAAI,GAAK,EAAE,GACX,EAAI,GAAK,EAAE,GACX,EAAI,GAAK,EAAE,GACX,EAAI,IAAM,EAAE,IACZ,EAAI,IAAM,EAAE,IACZ,EAAI,IAAM,EAAE,IACZ,EAAI,IAAM,EAAE,KAId,EAAI,GAAK,EAAM,EAAI,EAAM,EACzB,EAAI,GAAK,EAAM,EAAI,EAAM,EACzB,EAAI,GAAK,EAAM,EAAI,EAAM,EACzB,EAAI,GAAK,EAAM,EAAI,EAAM,EACzB,EAAI,GAAK,EAAM,EAAI,EAAM,EACzB,EAAI,GAAK,EAAM,EAAI,EAAM,EACzB,EAAI,IAAM,EAAM,EAAI,EAAM,EAC1B,EAAI,IAAM,EAAM,EAAI,EAAM,EACnB,CACT,CAUO,YAAiB,EAAK,EAAG,EAAK,CACnC,GAAI,GAAI,KAAK,IAAI,CAAG,EAChB,EAAI,KAAK,IAAI,CAAG,EAChB,EAAM,EAAE,GACR,EAAM,EAAE,GACR,EAAM,EAAE,GACR,EAAM,EAAE,GACR,EAAM,EAAE,GACR,EAAM,EAAE,GACR,EAAM,EAAE,IACR,EAAM,EAAE,IAEZ,MAAI,KAAM,GAER,GAAI,GAAK,EAAE,GACX,EAAI,GAAK,EAAE,GACX,EAAI,GAAK,EAAE,GACX,EAAI,GAAK,EAAE,GACX,EAAI,IAAM,EAAE,IACZ,EAAI,IAAM,EAAE,IACZ,EAAI,IAAM,EAAE,IACZ,EAAI,IAAM,EAAE,KAId,EAAI,GAAK,EAAM,EAAI,EAAM,EACzB,EAAI,GAAK,EAAM,EAAI,EAAM,EACzB,EAAI,GAAK,EAAM,EAAI,EAAM,EACzB,EAAI,GAAK,EAAM,EAAI,EAAM,EACzB,EAAI,GAAK,EAAM,EAAI,EAAM,EACzB,EAAI,GAAK,EAAM,EAAI,EAAM,EACzB,EAAI,IAAM,EAAM,EAAI,EAAM,EAC1B,EAAI,IAAM,EAAM,EAAI,EAAM,EACnB,CACT,CAUO,YAAiB,EAAK,EAAG,EAAK,CACnC,GAAI,GAAI,KAAK,IAAI,CAAG,EAChB,EAAI,KAAK,IAAI,CAAG,EAChB,EAAM,EAAE,GACR,EAAM,EAAE,GACR,EAAM,EAAE,GACR,EAAM,EAAE,GACR,EAAM,EAAE,GACR,EAAM,EAAE,GACR,EAAM,EAAE,GACR,EAAM,EAAE,GAEZ,MAAI,KAAM,GAER,GAAI,GAAK,EAAE,GACX,EAAI,GAAK,EAAE,GACX,EAAI,IAAM,EAAE,IACZ,EAAI,IAAM,EAAE,IACZ,EAAI,IAAM,EAAE,IACZ,EAAI,IAAM,EAAE,IACZ,EAAI,IAAM,EAAE,IACZ,EAAI,IAAM,EAAE,KAId,EAAI,GAAK,EAAM,EAAI,EAAM,EACzB,EAAI,GAAK,EAAM,EAAI,EAAM,EACzB,EAAI,GAAK,EAAM,EAAI,EAAM,EACzB,EAAI,GAAK,EAAM,EAAI,EAAM,EACzB,EAAI,GAAK,EAAM,EAAI,EAAM,EACzB,EAAI,GAAK,EAAM,EAAI,EAAM,EACzB,EAAI,GAAK,EAAM,EAAI,EAAM,EACzB,EAAI,GAAK,EAAM,EAAI,EAAM,EAClB,CACT,CA4mBO,YAAuB,EAAK,EAAM,EAAQ,EAAM,EAAK,CAC1D,GAAI,GAAI,EAAM,KAAK,IAAI,EAAO,CAAC,EAC3B,EACJ,SAAI,GAAK,EAAI,EACb,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,IAAM,GACV,EAAI,IAAM,EACV,EAAI,IAAM,EACV,EAAI,IAAM,EAEV,CAAI,EAAO,MAAQ,IAAQ,IACzB,GAAK,EAAK,GAAO,GACjB,EAAI,IAAO,GAAM,GAAQ,EACzB,EAAI,IAAM,EAAI,EAAM,EAAO,GAE3B,GAAI,IAAM,GACV,EAAI,IAAM,GAAK,GAGV,CACT,CAMU,GAAC,IAAc,GAgGlB,YAAiB,EAAK,EAAM,EAAO,EAAQ,EAAK,EAAM,EAAK,CAChE,GAAI,GAAK,EAAK,GAAO,GACjB,EAAK,EAAK,GAAS,GACnB,EAAK,EAAK,GAAO,GACrB,SAAI,GAAK,GAAK,EACd,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,GAAK,EACd,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,IAAM,EAAI,EACd,EAAI,IAAM,EACV,EAAI,IAAO,GAAO,GAAS,EAC3B,EAAI,IAAO,GAAM,GAAU,EAC3B,EAAI,IAAO,GAAM,GAAQ,EACzB,EAAI,IAAM,EACH,CACT,CAMO,GAAI,IAAQ,GC9+CZ,aAAkB,CACvB,GAAI,GAAM,GAAID,IAAoB,CAAC,EAEnC,MAAIA,KAAuB,cACzB,GAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,GAGJ,CACT,CAqCO,YAAoB,EAAG,EAAG,EAAG,CAClC,GAAI,GAAM,GAAIA,IAAoB,CAAC,EACnC,SAAI,GAAK,EACT,EAAI,GAAK,EACT,EAAI,GAAK,EACF,CACT,CAuDO,YAAkB,EAAK,EAAG,EAAG,CAClC,SAAI,GAAK,EAAE,GAAK,EAAE,GAClB,EAAI,GAAK,EAAE,GAAK,EAAE,GAClB,EAAI,GAAK,EAAE,GAAK,EAAE,GACX,CACT,CAuLO,YAAgB,EAAK,EAAG,CAC7B,SAAI,GAAK,CAAC,EAAE,GACZ,EAAI,GAAK,CAAC,EAAE,GACZ,EAAI,GAAK,CAAC,EAAE,GACL,CACT,CAuBO,YAAmB,EAAK,EAAG,CAChC,GAAI,GAAI,EAAE,GACN,EAAI,EAAE,GACN,EAAI,EAAE,GACN,EAAM,EAAI,EAAI,EAAI,EAAI,EAAI,EAE9B,MAAI,GAAM,GAER,GAAM,EAAI,KAAK,KAAK,CAAG,GAGzB,EAAI,GAAK,EAAE,GAAK,EAChB,EAAI,GAAK,EAAE,GAAK,EAChB,EAAI,GAAK,EAAE,GAAK,EACT,CACT,CAqBO,YAAe,EAAK,EAAG,EAAG,CAC/B,GAAI,GAAK,EAAE,GACP,EAAK,EAAE,GACP,EAAK,EAAE,GACP,EAAK,EAAE,GACP,EAAK,EAAE,GACP,EAAK,EAAE,GACX,SAAI,GAAK,EAAK,EAAK,EAAK,EACxB,EAAI,GAAK,EAAK,EAAK,EAAK,EACxB,EAAI,GAAK,EAAK,EAAK,EAAK,EACjB,CACT,CAgGO,YAAuB,EAAK,EAAG,EAAG,CACvC,GAAI,GAAI,EAAE,GACN,EAAI,EAAE,GACN,EAAI,EAAE,GACN,EAAI,EAAE,GAAK,EAAI,EAAE,GAAK,EAAI,EAAE,IAAM,EAAI,EAAE,IAC5C,SAAI,GAAK,EACT,EAAI,GAAM,GAAE,GAAK,EAAI,EAAE,GAAK,EAAI,EAAE,GAAK,EAAI,EAAE,KAAO,EACpD,EAAI,GAAM,GAAE,GAAK,EAAI,EAAE,GAAK,EAAI,EAAE,GAAK,EAAI,EAAE,KAAO,EACpD,EAAI,GAAM,GAAE,GAAK,EAAI,EAAE,GAAK,EAAI,EAAE,IAAM,EAAI,EAAE,KAAO,EAC9C,CACT,CA0MO,YAAgB,EAAG,EAAG,CAC3B,GAAI,GAAK,EAAE,GACP,EAAK,EAAE,GACP,EAAK,EAAE,GACP,EAAK,EAAE,GACP,EAAK,EAAE,GACP,EAAK,EAAE,GACX,MAAO,MAAK,IAAI,EAAK,CAAE,GAAKC,GAAmB,KAAK,IAAI,EAAK,KAAK,IAAI,CAAE,EAAG,KAAK,IAAI,CAAE,CAAC,GAAK,KAAK,IAAI,EAAK,CAAE,GAAKA,GAAmB,KAAK,IAAI,EAAK,KAAK,IAAI,CAAE,EAAG,KAAK,IAAI,CAAE,CAAC,GAAK,KAAK,IAAI,EAAK,CAAE,GAAKA,GAAmB,KAAK,IAAI,EAAK,KAAK,IAAI,CAAE,EAAG,KAAK,IAAI,CAAE,CAAC,CACnQ,CAwDqB,WAAY,CAC/B,GAAI,GAAM,KACV,MAAO,UAAU,EAAG,EAAQ,EAAQ,EAAO,EAAI,EAAK,CAClD,GAAI,GAAG,EAgBP,IAdK,GACH,GAAS,GAGN,GACH,GAAS,GAGX,CAAI,CACF,EAAI,KAAK,IAAI,EAAQ,EAAS,EAAQ,EAAE,MAAM,EAE9C,EAAI,EAAE,OAGH,EAAI,EAAQ,EAAI,EAAG,GAAK,EAC3B,EAAI,GAAK,EAAE,GACX,EAAI,GAAK,EAAE,EAAI,GACf,EAAI,GAAK,EAAE,EAAI,GACf,EAAG,EAAK,EAAK,CAAG,EAChB,EAAE,GAAK,EAAI,GACX,EAAE,EAAI,GAAK,EAAI,GACf,EAAE,EAAI,GAAK,EAAI,GAGjB,MAAO,EACX,CACA,GAAC,EClxBM,GAAI,IACX,CAAC,SAAU,EAAM,CACb,WAAgB,EAAM,EAAG,EAAG,CACxB,GAAI,CAAE,KAAI,OAAM,QAAO,OAAM,QAAO,QAAS,EAC7C,OAAQ,OACC,IACD,CAAC,EAAO,EAAM,EAAO,CAAI,EAAI,CAAC,EAAM,EAAO,EAAM,CAAK,EACtD,UACC,KACD,CAAC,EAAO,EAAM,EAAO,CAAI,EAAI,CAAC,EAAO,EAAM,EAAO,CAAI,EACtD,UACC,KACD,CAAC,EAAO,EAAM,EAAO,CAAI,EAAI,CAAC,EAAM,EAAO,EAAM,CAAK,EAE9D,OAAQ,OACC,IACD,CAAC,EAAI,EAAO,EAAM,CAAK,EAAI,CAAC,EAAO,EAAM,EAAO,CAAE,EAClD,UACC,KACD,CAAC,EAAI,EAAO,EAAM,CAAK,EAAI,CAAC,EAAM,EAAO,EAAI,CAAK,EAClD,UACC,KACD,CAAC,EAAI,EAAO,EAAM,CAAK,EAAI,CAAC,EAAO,EAAI,EAAO,CAAI,EAE1D,MAAO,CAAE,KAAI,OAAM,QAAO,OAAM,QAAO,OAC1C,CACD,EAAK,OAAS,EACd,YAAgB,CACZ,MAAO,QAAO,OAAO,IAAI,CAC5B,CACD,EAAK,KAAO,CAChB,GAAG,IAAS,IAAO,GAAG,EC9Bf,eAA+B,EAAQ,CAC1C,GAAI,GAAc,EAClB,SAAW,KAAK,GACZ,GAAe,EAAE,OAErB,KAAM,GAAS,GAAI,cAAa,CAAW,EAC3C,GAAI,GAAS,EACb,SAAW,KAAK,GACZ,EAAO,IAAI,EAAG,CAAM,EAChB,GAAU,EAAE,OAEpB,MAAO,EACX,CACO,YAA0B,EAAO,EAAgB,CACpD,KAAM,GAAIC,KACV,OAAS,GAAI,EAAG,EAAI,EAAM,OAAQ,GAAK,EACnC,EAAE,GAAK,EAAM,GACb,EAAE,GAAK,EAAM,EAAI,GACjB,EAAE,GAAK,EAAM,EAAI,GACjBC,GAAmB,EAAG,EAAG,CAAc,EACvC,EAAM,GAAK,EAAE,GACb,EAAM,EAAI,GAAK,EAAE,GACjB,EAAM,EAAI,GAAK,EAAE,EAEzB,CCrBA,KAAM,IAAgB,CAClB,EAAG,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAC1B,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAC3B,IAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAC5B,IAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,CAChC,EACM,GAAe,CACjB,EAAG,CAAC,EAAG,EAAG,CAAC,EACX,EAAG,CAAC,EAAG,EAAG,CAAC,EACX,EAAG,CAAC,EAAG,EAAG,CAAC,CACf,EACM,GAAQ,cACR,GAAc,CAChB,EAAG,CAAC,EAAG,GAAO,EAAK,EACnB,EAAG,CAAC,GAAO,EAAG,EAAK,EACnB,EAAG,CAAC,GAAO,GAAO,CAAC,CACvB,EACO,QAAiB,CAQpB,YAAY,EAAI,EAAQ,EAAU,EAAU,EAAS,EAAU,CAP/D,aACA,iBACA,mBACA,mBACA,kBACA,mBAGI,KAAK,GAAK,EACV,KAAK,OAAS,EACd,KAAK,SAAW,EAChB,KAAK,SAAW,EAChB,KAAK,QAAU,EACf,KAAK,SAAW,CACnB,CACD,kBAAkB,EAAS,EAAY,EAAQ,EAAM,C/KrCzD,M+KsCQ,KAAM,GAAU,KAAK,WAAW,EAAY,EAAQ,GAAK,OAAQ,CAAI,EAC/D,EAAY,QAAK,UAAL,cAAe,GAC3B,EAAIC,KACVC,GAAc,CAAC,EACfC,GAAe,EAAG,EAAG,CAAC,EAAG,EAAG,CAAC,CAAC,EAC1B,WAAW,aACXA,GAAe,EAAG,EAAG,EAAU,WAAW,EAE1C,WAAW,UACXC,IAAa,EAAG,EAAG,EAAU,SAAS,GAAK,KAAK,GAAK,GAAG,EACxDC,GAAa,EAAG,EAAG,EAAU,SAAS,GAAK,KAAK,GAAK,GAAG,EACxDC,GAAa,EAAG,EAAG,CAAC,EAAU,SAAS,GAAK,KAAK,GAAK,GAAG,GAEzD,WAAW,OACXC,GAAW,EAAG,EAAG,EAAU,KAAK,EAEpCJ,GAAe,EAAG,EAAG,CAAC,GAAI,GAAI,EAAE,CAAC,EACjC,GAAiB,EAAQ,SAAU,CAAC,EACpC,KAAM,GAAU,GAChB,OAAS,GAAI,EAAG,EAAI,EAAQ,SAAS,OAAQ,GAAK,GAAI,CAClD,KAAM,GAAIK,GAAgB,EAAQ,SAAS,GAAI,EAAQ,SAAS,EAAI,GAAI,EAAQ,SAAS,EAAI,EAAE,EACzF,EAAIA,GAAgB,EAAQ,SAAS,EAAI,GAAI,EAAQ,SAAS,EAAI,GAAI,EAAQ,SAAS,EAAI,EAAE,EAC7F,EAAIA,GAAgB,EAAQ,SAAS,EAAI,GAAI,EAAQ,SAAS,EAAI,GAAI,EAAQ,SAAS,EAAI,EAAE,EACnGC,GAAc,EAAG,EAAG,CAAC,EACrBA,GAAc,EAAG,EAAG,CAAC,EACrBC,GAAW,EAAG,EAAG,CAAC,EAClBC,GAAe,EAAG,CAAC,EACnB,EAAQ,KAAK,GAAG,EAAG,GAAG,EAAG,GAAG,EAAG,GAAG,CAAC,CACtC,CACD,MAAO,UACA,GADA,CAEH,OAAQ,CACpB,EACK,CACD,WAAW,EAAY,EAAQ,EAAM,EAAM,C/KxE/C,M+KyEQ,KAAM,GAAW,GACX,EAAW,GACX,EAAY,GACZ,EAAQ,GACd,SAAW,KAAW,QAAK,WAAL,OAAiB,GAAI,CACvC,KAAM,GAAU,KAAK,kBAAkB,EAAS,EAAQ,EAAY,EAAM,CAAI,EAC9E,EAAS,KAAK,EAAQ,QAAQ,EAC9B,EAAS,KAAK,GAAG,EAAQ,QAAQ,EACjC,EAAU,KAAK,GAAG,EAAQ,SAAS,EACnC,EAAM,KAAK,GAAG,EAAQ,KAAK,EAC3B,GAAU,EAAQ,SAAS,OAAS,CACvC,CACD,MAAO,CACH,SAAU,GAAmB,GAAG,CAAQ,EACxC,WACA,YACA,OACZ,CACK,CACD,kBAAkB,EAAG,EAAG,EAAY,EAAM,EAAM,C/K5FpD,4B+K6FQ,KAAM,GAAK,EAAE,KAAK,GACZ,EAAK,EAAE,KAAK,GACZ,EAAK,EAAE,KAAK,GACZ,EAAK,EAAE,GAAG,GACV,EAAK,EAAE,GAAG,GACV,EAAK,EAAE,GAAG,GACV,EAAY,GACZ,EAAY,GACZ,EAAa,GACb,EAAU,GACV,EAAU,CAAC,EAAM,EAAI,IAAQ,C/KvG3C,kC+KwGY,KAAM,CAAC,EAAI,EAAI,EAAI,GAAM,EAAW,aAAa,KAAK,WAAW,EAAK,OAAO,CAAC,EACxE,EAAM,GAAK,GAAM,GACjB,EAAM,GAAK,GAAM,GAEjB,EAAM,EAAK,GACX,GAAM,EAAK,GACjB,EAAG,GAAM,WAAK,KAAL,eAAU,KAAV,QAAgB,EAAG,IAAM,EAAK,EACvC,EAAG,GAAM,WAAK,KAAL,eAAU,KAAV,QAAgB,EAAG,IAAM,EAAK,GACvC,EAAG,GAAM,WAAK,KAAL,eAAU,KAAV,QAAgB,EAAG,IAAM,EAAK,EACvC,EAAG,GAAM,WAAK,KAAL,eAAU,KAAV,QAAgB,EAAG,IAAM,EAAK,GACvC,KAAM,GAAI,GAAc,MAAK,WAAL,QAAiB,GACzC,EAAU,KAAK,EAAK,EAAG,EAAE,IAAK,EAAK,EAAG,EAAE,IAAK,EAAK,EAAG,EAAE,IAAK,EAAK,EAAG,EAAE,IAAK,EAAK,EAAG,EAAE,IAAK,EAAK,EAAG,EAAE,IAAK,EAAK,EAAG,EAAE,IAAK,EAAK,EAAG,EAAE,GAAG,EACrI,KAAM,GAAK,OAAK,YAAL,QAAkB,KAAO,EAAK,UAAQ,CAAC,EAAG,EAAG,CAAC,EAAK,CAAC,EAAG,EAAG,CAAC,EACtE,EAAW,KAAK,GAAG,EAAG,GAAG,EAAG,GAAG,EAAG,GAAG,CAAC,EACtC,EAAU,KAAK,GAAG,CAAG,EACrB,EAAQ,KAAK,EAAG,EAAI,EAAG,EAAI,EAAG,EAAG,EAAI,EAAG,EAAI,CAAC,EAC7C,GAAK,CACjB,EACQ,CAAI,QAAE,QAAF,cAAS,KAAT,cAAa,UAAY,EAAC,EAAE,MAAM,GAAG,UAAY,CAAC,EAAK,EAAE,MAAM,GAAG,YAClE,EAAQ,EAAE,MAAM,GAAI,CAAC,EAAI,GAAK,EAAI,EAAI,GAAK,CAAE,EAAG,CAAC,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,CAAE,CAAC,EAEhG,SAAE,QAAF,cAAS,OAAT,cAAe,UAAY,EAAC,EAAE,MAAM,KAAK,UAAY,CAAC,EAAK,EAAE,MAAM,KAAK,YACxE,EAAQ,EAAE,MAAM,KAAM,CAAC,GAAK,EAAI,GAAK,EAAI,GAAK,EAAI,GAAK,CAAE,EAAG,CAAC,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,CAAE,CAAC,EAE5G,SAAE,QAAF,cAAS,QAAT,cAAgB,UAAY,EAAC,EAAE,MAAM,MAAM,UAAY,CAAC,EAAK,EAAE,MAAM,MAAM,YAC3E,EAAQ,EAAE,MAAM,MAAO,CAAC,EAAI,GAAK,EAAI,EAAI,GAAK,CAAE,EAAG,CAAC,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,CAAE,CAAC,EAEnG,SAAE,QAAF,cAAS,QAAT,cAAgB,UAAY,EAAC,EAAE,MAAM,MAAM,UAAY,CAAC,EAAK,EAAE,MAAM,MAAM,YAC3E,EAAQ,EAAE,MAAM,MAAO,CAAC,GAAK,EAAI,GAAK,EAAI,GAAK,EAAI,GAAK,CAAE,EAAG,CAAC,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,CAAE,CAAC,EAE7G,SAAE,QAAF,cAAS,OAAT,cAAe,UAAY,EAAC,EAAE,MAAM,KAAK,UAAY,CAAC,EAAK,EAAE,MAAM,KAAK,YACxE,EAAQ,EAAE,MAAM,KAAM,CAAC,GAAK,EAAI,GAAK,EAAI,GAAK,EAAI,GAAK,CAAE,EAAG,CAAC,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,CAAE,CAAC,EAE5G,SAAE,QAAF,cAAS,OAAT,cAAe,UAAY,EAAC,EAAE,MAAM,KAAK,UAAY,CAAC,EAAK,EAAE,MAAM,KAAK,YACxE,EAAQ,EAAE,MAAM,KAAM,CAAC,EAAI,GAAK,EAAI,EAAI,GAAK,CAAE,EAAG,CAAC,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,CAAE,CAAC,EAEtG,KAAM,GAAIV,KAEV,GADAC,GAAc,CAAC,EACX,EAAE,SAAU,CACZ,KAAM,GAASM,GAAgB,GAAG,EAAE,SAAS,MAAM,EACnDL,GAAe,EAAG,EAAG,CAAM,EAC3BS,GAAY,EAAG,EAAGC,GAAkB,EAAE,SAAS,KAAK,EAAG,GAAa,EAAE,SAAS,KAAK,EAChF,EAAE,SAAS,SACXN,GAAW,EAAG,EAAG,GAAY,EAAE,SAAS,KAAK,EAEjDO,GAAY,EAAQ,CAAM,EAC1BX,GAAe,EAAG,EAAG,CAAM,CAC9B,CACD,KAAM,GAAW,GAAI,cAAa,CAAS,EAC3C,UAAiB,EAAU,CAAC,EACrB,CACH,SAAU,EACV,SAAU,EACV,UAAW,EACX,MAAO,CACnB,CACK,CACD,WAAW,EAAY,C/KjK3B,Q+KkKQ,KAAO,EAAW,WAAW,GAAG,GAC5B,EAAa,WAAK,WAAL,cAAgB,EAAW,MAAM,CAAC,KAAlC,OAAwC,GAEzD,MAAO,IAAW,MAAM,CAAU,CACrC,CACD,QAAQ,EAAU,C/KvKtB,Q+KwKQ,GAAI,CAAC,KAAK,OACN,OAEJ,KAAM,GAAS,KAAK,UAAU,CAAQ,EACtC,GAAI,CAAC,EAAQ,CACT,QAAQ,KAAK,UAAU,KAAK,wBAAwB,EACpD,KAAK,OAAS,OACd,MACH,CACD,EAAO,QAAQ,CAAQ,EAClB,KAAK,UACN,MAAK,SAAW,EAAO,UAEtB,KAAK,UACN,MAAK,SAAW,IAEpB,OAAO,KAAK,KAAO,WAAP,OAAmB,EAAE,EAAE,QAAQ,GAAK,CAC5C,CAAK,IAAK,SAAS,IACf,MAAK,SAAS,GAAK,EAAO,SAAS,GAEnD,CAAS,EACI,KAAK,SACN,MAAK,QAAU,IAEnB,OAAO,KAAK,KAAO,UAAP,OAAkB,EAAE,EAAE,QAAQ,GAAK,C/KhMvD,M+KiMY,KAAM,GAAI,EACV,CAAK,IAAK,QAAQ,GAId,OAAO,KAAK,KAAO,QAAQ,KAAf,OAAqB,CAAE,GAAE,QAAQ,GAAK,CAC9C,KAAM,GAAI,EACV,CAAK,IAAK,QAAQ,GAAG,IACjB,MAAK,QAAQ,GAAG,GAAK,EAAO,QAAQ,GAAG,GAE/D,CAAiB,EARD,KAAK,QAAQ,GAAK,EAAO,QAAQ,EAUjD,CAAS,EACI,KAAK,UACN,MAAK,SAAW,EAAO,UAE3B,KAAK,OAAS,MACjB,CACD,UAAU,EAAU,CAChB,MAAK,MAAK,OAEN,KAAK,OAAO,OAAO,GAAW,iBAAiB,EACxC,GAAI,IAAW,GAAW,kBAAmB,OAAW,OAAW,CAAC,CACnE,KAAM,CAAC,EAAG,EAAG,CAAC,EACd,GAAI,CAAC,GAAI,GAAI,CAAC,EACd,MAAO,CAAE,MAAO,CAAE,QAAS,UAAW,UAAW,EAAK,CACzD,EAAC,EAEH,EAAS,cAAc,KAAK,MAAM,EAR9B,IASd,OACM,UAAS,EAAI,EAAM,CACtB,KAAM,GAAS,EAAK,SAAW,OAAY,OAAY,GAAW,MAAM,EAAK,MAAM,EACnF,MAAO,IAAI,IAAW,GAAW,MAAM,CAAE,EAAG,EAAQ,EAAK,SAAU,EAAK,SAAU,EAAK,OAAO,CACjG,CACL,EA9MO,UAOI,EAPJ,GAOI,oBAAoB,GAAW,OAAO,mBAAmB,GC5B7D,MAAM,EAAc,CAGvB,YAAY,EAAI,EAAU,EAAU,CAFpC,aACA,kBAEI,KAAK,GAAK,EACV,KAAK,QAAU,KAAK,kBAAkB,EAAU,CAAQ,CAC3D,CACD,YAAa,CACT,MAAO,MAAK,OACf,CACD,kBAAkB,EAAU,EAAU,CAClC,KAAM,GAAe,KAAK,WAAW,KAAK,GAAG,cAAe,CAAQ,EAC9D,EAAiB,KAAK,WAAW,KAAK,GAAG,gBAAiB,CAAQ,EAClE,EAAgB,KAAK,GAAG,cAAa,EAI3C,GAHA,KAAK,GAAG,aAAa,EAAe,CAAY,EAChD,KAAK,GAAG,aAAa,EAAe,CAAc,EAClD,KAAK,GAAG,YAAY,CAAa,EAC7B,CAAC,KAAK,GAAG,oBAAoB,EAAe,KAAK,GAAG,WAAW,EAC/D,KAAM,IAAI,OAAM,kCAAkC,KAAK,GAAG,kBAAkB,CAAa,GAAG,EAEhG,MAAO,EACV,CACD,WAAW,EAAM,EAAQ,CACrB,KAAM,GAAS,KAAK,GAAG,aAAa,CAAI,EAGxC,GAFA,KAAK,GAAG,aAAa,EAAQ,CAAM,EACnC,KAAK,GAAG,cAAc,CAAM,EACxB,CAAC,KAAK,GAAG,mBAAmB,EAAQ,KAAK,GAAG,cAAc,EAAG,CAC7D,KAAM,GAAQ,GAAI,OAAM,aAAa,IAAS,KAAK,GAAG,cAAgB,SAAW,sBAAsB,KAAK,GAAG,iBAAiB,CAAM,GAAG,EACzI,WAAK,GAAG,aAAa,CAAM,EACrB,CACT,CACD,MAAO,EACV,CACL,CC/BA,KAAM,IAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAoBX,GAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcV,MAAMY,EAAS,CAKlB,YAAY,EAAI,CAJhB,aACA,wBACA,qBACA,uBAEI,KAAK,GAAK,EACV,KAAK,cAAgB,GAAI,IAAc,EAAI,GAAU,EAAQ,EAAE,aAC/D,KAAK,aAAe,KAAK,cACzB,KAAK,WAAa,KAAK,iBACvB,KAAK,WAAU,CAClB,CACD,YAAY,EAAG,EAAG,EAAO,EAAQ,CAC7B,KAAK,GAAG,SAAS,EAAG,EAAG,EAAO,CAAM,EACpC,KAAK,WAAa,KAAK,gBAC1B,CACD,gBAAiB,CACb,KAAM,GAAc,GAAK,KAAK,GAAK,IAC7B,EAAS,KAAK,GAAG,OAAO,YAAc,KAAK,GAAG,OAAO,aACrD,EAAad,KACnBe,UAAiB,EAAY,EAAa,EAAQ,GAAK,GAAK,EACrD,CACV,CACD,YAAa,CACT,KAAK,GAAG,OAAO,KAAK,GAAG,UAAU,EACjC,KAAK,GAAG,UAAU,KAAK,GAAG,MAAM,EAChC,KAAK,GAAG,OAAO,KAAK,GAAG,KAAK,EAC5B,KAAK,GAAG,UAAU,KAAK,GAAG,UAAW,KAAK,GAAG,mBAAmB,EAChE,KAAK,GAAG,OAAO,KAAK,GAAG,SAAS,EAChC,KAAK,GAAG,SAAS,KAAK,GAAG,IAAI,CAChC,CACD,UAAU,EAAQ,CACd,KAAK,GAAG,WAAW,CAAM,EACzB,KAAK,aAAe,CACvB,CACD,cAAc,EAAM,EAAM,EAAQ,CAC9B,KAAM,GAAW,KAAK,GAAG,kBAAkB,KAAK,aAAc,CAAI,EAClE,KAAK,GAAG,WAAW,KAAK,GAAG,aAAc,CAAM,EAC/C,KAAK,GAAG,oBAAoB,EAAU,EAAM,KAAK,GAAG,MAAO,GAAO,EAAG,CAAC,EACtE,KAAK,GAAG,wBAAwB,CAAQ,CAC3C,CACD,WAAW,EAAM,EAAO,CACpB,KAAM,GAAW,KAAK,GAAG,mBAAmB,KAAK,aAAc,CAAI,EACnE,KAAK,GAAG,iBAAiB,EAAU,GAAO,CAAK,CAClD,CACD,WAAW,EAAS,CAChB,KAAK,GAAG,cAAc,KAAK,GAAG,QAAQ,EACtC,KAAK,GAAG,YAAY,KAAK,GAAG,WAAY,CAAO,CAClD,CACD,aAAa,EAAM,EAAO,CACtB,KAAM,GAAS,KAAK,GAAG,aAAY,EACnC,GAAI,IAAW,KACX,KAAM,IAAI,OAAM,0CAA0C,EAE9D,YAAK,GAAG,WAAW,EAAM,CAAM,EAC/B,KAAK,GAAG,WAAW,EAAM,EAAO,KAAK,GAAG,YAAY,EAC7C,CACV,CACD,aAAa,EAAQ,EAAM,EAAO,CAC9B,KAAK,GAAG,WAAW,EAAM,CAAM,EAC/B,KAAK,GAAG,WAAW,EAAM,EAAO,KAAK,GAAG,WAAW,CACtD,CACD,mBAAmB,EAAO,CACtB,KAAM,GAAU,KAAK,GAAG,cAAa,EACrC,YAAK,GAAG,YAAY,KAAK,GAAG,WAAY,CAAO,EAC/C,KAAK,GAAG,WAAW,KAAK,GAAG,WAAY,EAAG,KAAK,GAAG,KAAM,KAAK,GAAG,KAAM,KAAK,GAAG,cAAe,CAAK,EAClG,KAAK,GAAG,eAAe,KAAK,GAAG,UAAU,EACzC,KAAK,GAAG,cAAc,KAAK,GAAG,WAAY,KAAK,GAAG,mBAAoB,KAAK,GAAG,OAAO,EAC9E,CACV,CACD,YAAY,EAAY,CACpB,KAAK,WAAW,QAAS,CAAU,EACnC,KAAK,WAAW,QAAS,KAAK,UAAU,CAC3C,CACD,YAAY,EAAS,CACjB,KAAK,cAAc,UAAW,EAAG,EAAQ,QAAQ,EACjD,KAAK,cAAc,WAAY,EAAG,EAAQ,QAAQ,EAClD,KAAK,cAAc,YAAa,EAAG,EAAQ,SAAS,EACpD,KAAK,cAAc,SAAU,EAAG,EAAQ,MAAM,EAC9C,KAAK,GAAG,WAAW,KAAK,GAAG,qBAAsB,EAAQ,KAAK,EAC9D,KAAK,GAAG,aAAa,KAAK,GAAG,UAAW,EAAQ,OAAQ,KAAK,GAAG,eAAgB,CAAC,CACpF,CACL,CClHO,MAAM,UAAqBD,GAAS,CAMvC,YAAY,EAAI,EAAM,EAAW,EAAS,CACtC,MAAM,CAAE,EANZ,eACA,oBACA,kBACA,eACA,uBAGI,KAAK,KAAO,EACZ,KAAK,UAAY,EACjB,KAAK,QAAU,KAAK,iBACpB,KAAK,KAAO,iBAAS,KACrB,KAAK,aAAe,KAAK,mBAAmB,KAAK,UAAU,gBAAe,CAAE,CAC/E,CACD,QAAQ,EAAM,CACV,KAAK,KAAO,EACZ,KAAK,QAAU,KAAK,gBACvB,CACD,gBAAiB,ClLtBrB,MkLuBQ,KAAM,GAAQ,KAAK,UAAU,cAAc,KAAK,KAAK,WAAW,OAAO,CAAC,EACxE,GAAI,CAAC,EACD,KAAM,IAAI,OAAM,kBAAkB,KAAK,KAAK,SAAQ,kBAAmB,EAE3E,GAAI,GAAO,KAAK,KAChB,CAAK,GAAQ,KAAK,KAAK,YAAc,GAAW,mBAC5C,GAAO,MAAY,KAAK,KAAK,QAAtB,sBAA8B,KAEzC,KAAM,GAAU,EAAM,kBAAkB,MAAO,KAAK,UAAW,EAAG,CAAI,EACtE,MAAO,CACH,SAAU,KAAK,aAAa,KAAK,GAAG,aAAc,EAAQ,QAAQ,EAClE,SAAU,KAAK,aAAa,KAAK,GAAG,aAAc,GAAI,cAAa,EAAQ,QAAQ,CAAC,EACpF,UAAW,KAAK,aAAa,KAAK,GAAG,aAAc,GAAI,cAAa,EAAQ,SAAS,CAAC,EACtF,OAAQ,KAAK,aAAa,KAAK,GAAG,aAAc,GAAI,cAAa,EAAQ,MAAM,CAAC,EAChF,MAAO,KAAK,aAAa,KAAK,GAAG,qBAAsB,GAAI,aAAY,EAAQ,KAAK,CAAC,EACrF,OAAQ,EAAQ,MAAM,MAClC,CACK,CACD,gBAAiB,CACb,KAAM,GAAad,KACnBgB,UAAW,EAAY,EAAG,GAAI,EAAG,GAAI,GAAK,GAAK,EACxC,CACV,CACD,UAAW,CACP,KAAM,GAAOhB,KACbE,GAAe,EAAM,EAAM,CAAC,EAAG,EAAG,GAAG,CAAC,EACtC,KAAK,UAAU,KAAK,aAAa,EACjC,KAAK,WAAW,KAAK,YAAY,EACjC,KAAK,YAAY,CAAI,EACrB,KAAK,YAAY,KAAK,OAAO,CAChC,CACL,CCrDO,MAAM,EAAa,CAItB,YAAY,EAAK,EAAO,CAHxB,cACA,gBACA,eAII,GAFA,KAAK,IAAM,EACX,KAAK,MAAQ,EACT,CAAC,GAAa,EAAI,KAAK,GAAK,CAAC,GAAa,EAAI,MAAM,EACpD,KAAM,IAAI,OAAM,8DAA8D,EAAI,SAAS,EAAI,SAAS,EAE5G,KAAK,KAAO,GAAK,EAAI,KACxB,CACD,iBAAkB,CACd,MAAO,MAAK,GACf,CACD,aAAa,EAAI,CnLhBrB,MmLiBQ,MAAO,QAAK,MAAM,EAAG,SAAU,KAAxB,OAA6B,CAAC,EAAG,EAAG,KAAK,KAAM,KAAK,IAAI,CAClE,aACY,WAAU,EAAU,CAC7B,KAAM,GAAe,KAAK,KAAK,OAAO,KAAK,CAAQ,EAAE,OAAS,CAAC,EACzD,EAAQ,GAAgB,CAAY,EACpC,EAAa,EAAQ,GACrB,EAAO,EAAI,EACX,EAAS,SAAS,cAAc,QAAQ,EAC9C,EAAO,MAAQ,EACf,EAAO,OAAS,EAChB,KAAM,GAAM,EAAO,WAAW,IAAI,EAClC,KAAK,mBAAmB,CAAG,EAC3B,KAAM,GAAQ,GACd,GAAI,GAAQ,EACZ,YAAM,SAAQ,IAAI,OAAO,KAAK,CAAQ,EAAE,IAAI,KAAO,IAAO,CACtD,KAAM,GAAK,EAAQ,EACb,EAAI,KAAK,MAAM,EAAQ,CAAK,EAClC,GAAS,EACT,EAAM,GAAM,CAAC,EAAO,EAAG,EAAO,EAAG,EAAO,EAAI,EAAM,EAAO,EAAI,CAAI,EACjE,KAAM,GAAM,KAAM,mBAAkB,EAAS,EAAG,EAChD,EAAI,UAAU,EAAK,EAAG,EAAG,GAAI,GAAI,GAAK,EAAG,GAAK,EAAG,GAAI,EAAE,CAC1D,EAAC,EACK,GAAI,IAAa,EAAI,aAAa,EAAG,EAAG,EAAY,CAAU,EAAG,CAAK,CAChF,OACM,QAAQ,CACX,KAAM,GAAS,SAAS,cAAc,QAAQ,EAC9C,EAAO,MAAQ,GACf,EAAO,OAAS,GAChB,KAAM,GAAM,EAAO,WAAW,IAAI,EAClC,UAAa,mBAAmB,CAAG,EAC5B,GAAI,IAAa,EAAI,aAAa,EAAG,EAAG,GAAI,EAAE,EAAG,EAAE,CAC7D,OACM,oBAAmB,EAAK,CAC3B,EAAI,UAAY,QAChB,EAAI,SAAS,EAAG,EAAG,GAAI,EAAE,EACzB,EAAI,UAAY,UAChB,EAAI,SAAS,EAAG,EAAG,EAAG,CAAC,EACvB,EAAI,SAAS,EAAG,EAAG,EAAG,CAAC,CAC1B,CACL,CCnDO,MAAM,EAAY,CAUrB,YAAY,EAAU,EAAM,CAT5B,eACA,qBACA,sBACA,iBACA,wBACA,oBACA,wBACA,iBACA,kBAEI,KAAK,KAAO,EACZ,KAAK,WAAa,GAAI,KACtB,KAAK,YAAc,GAAI,KACvB,KAAK,OAAU,GAAS,mBAAqB,GAAI,IAAa,CAAI,EAAI,GAAgB,OAAO,CAAI,GAAG,eAAc,EAClH,KAAK,cAAgB,KAAK,OAAO,WAAW,GAAW,OAAO,SAAS,EAAE,UAAU,EAAE,eAAc,EACnG,KAAK,UAAY,KAAK,OAAO,WAAW,GAAW,OAAO,KAAK,EAAE,UAAU,EAAE,eAAc,EAC3F,KAAK,cAAgB,GAAI,IAAc,EAAS,YAAa,EAAS,aAAc,CAAI,EACxF,KAAK,OAAS,GAAY,OAAO,EAAS,YAAa,KAAK,cAAc,EAAS,MAAO,EAAS,kBAAkB,CAAC,EACtH,KAAK,QAAU,GAAQ,QAAQ,WAAW,KAAK,MAAM,CACxD,CACD,cAAc,EAAe,EAAc,CACvC,KAAM,GAAS,GAAI,KACb,EAAW,CAAC,EAAU,CACxB,KAAM,GAAM,EAAM,MAClB,GAAI,IAAQ,OACR,KAAM,IAAI,OAAM,iCAAiC,EAErD,GAAI,EAAc,CACd,GAAI,EAAI,OAAO,GAAW,OAAO,aAAa,CAAC,EAC3C,MAAO,IAAI,IAAY,GAAI,IAAa,KAAK,KAAO,OAAO,CAAC,CAAC,EAAG,GAAgB,OAAO,GAAI,CAAC,EAAG,CAAC,CAAC,CAAC,EAEtG,GAAI,EAAI,OAAO,GAAW,OAAO,YAAY,CAAC,EAC1C,MAAO,IAAI,IAAY,GAAI,IAAa,KAAK,KAAO,OAAO,CAAC,CAAC,EAAG,GAAgB,OAAO,GAAI,CAAC,EAAG,CAAC,CAAC,CAAC,EAEtG,GAAI,EAAI,OAAO,GAAW,OAAO,QAAQ,CAAC,EACtC,MAAO,IAAI,IAAY,KAAK,OAAO,WAAW,QAAQ,EAAG,GAAgB,OAAO,EAAG,CAAC,CAAC,CAAC,CAAC,CAE9F,CACD,MAAO,MAAK,iBAAiB,CAAG,CAC5C,EACc,EAAU,CACZ,IAAK,CAAC,EAAO,CACT,GAAI,YAAc,IAAgB,aAAc,CAC5C,KAAM,GAAM,EAAG,OAAO,IAAG,EACzB,GAAI,IAAQ,QAAa,EAAO,IAAI,EAAI,SAAQ,CAAE,EAC9C,MAAO,GAAO,IAAI,EAAI,SAAU,GAE/B,CACD,KAAM,GAAQ,EAAG,OAAO,MAAK,EAAG,OAAO,CAAO,EAC9C,MAAI,KAAQ,QACR,EAAO,IAAI,EAAI,SAAU,EAAE,CAAK,EAE7B,CACV,CACJ,CACD,MAAI,aAAc,IAAgB,aACvB,EAAG,aAAa,GAAc,UAAU,CAAa,EAAG,GAAc,WAAW,CAAa,CAAC,EAEtG,YAAc,IAAgB,aACvB,GAAI,IAAgB,aAAa,EAAG,OAAQ,EAAG,OAAQ,EAAG,OAAQ,EAAG,QAAS,EAAG,OAAQ,EAAG,UAAW,EAAS,EAAG,SAAS,CAAC,EAEpI,YAAc,IAAgB,MACvB,GAAI,IAAgB,MAAM,EAAG,QAAS,EAAG,OAAQ,EAAG,UAAW,EAAS,EAAG,SAAS,CAAC,EAE5F,YAAc,IAAgB,WACvB,EAAG,aAAa,EAAS,EAAG,SAAS,CAAC,EAE7C,YAAc,IAAgB,mBACvB,GAAI,IAAgB,mBAAmB,EAAG,MAAO,EAAG,kBAAmB,EAAG,UAAW,EAAS,EAAG,SAAS,CAAC,EAElH,YAAc,IAAgB,gBACvB,GAAI,IAAgB,gBAAgB,EAAG,QAAS,EAAG,OAAQ,EAAG,SAAU,EAAG,QAAS,EAAG,qBAAsB,GAAI,IAAa,KAAK,OAAO,WAAW,GAAW,OAAO,SAAS,EAAE,SAAQ,CAAE,EAAG,EAAG,QAAS,EAAG,OAAQ,EAAG,SAAU,EAAG,QAAS,EAAG,oBAAoB,CAAC,EAE9Q,YAAc,IAAgB,WACvB,GAAI,IAAgB,WAAW,KAAK,IAAI,EAE/C,YAAc,IAAgB,QAG9B,YAAc,IAAgB,IACvB,EAAG,aAEP,CACV,CACb,EACQ,MAAO,EACV,CACD,iBAAiB,EAAI,CACjB,KAAM,GAAS,GAAS,SAAS,WAAW,GAAW,OAAO,gBAAgB,CAAC,EAC/E,MAAO,IAAgB,KAAK,WAAY,EAAG,SAAU,EAAE,GAAO,GAAI,IAAY,KAAK,OAAO,WAAW,CAAG,EAAG,EAAO,WAAW,CAAE,CAAC,CAAC,CACpI,CACD,kBAAkB,EAAI,CAClB,MAAO,IAAgB,KAAK,YAAa,EAAG,SAAQ,EAAI,GAAO,KAAK,OAAO,WAAW,CAAG,EAAE,eAAgB,EAC9G,CACL,29CC7FA,KAAMe,IAAyBzU,QAAI,CAClC,2BACA,sCACA,mCAHkC,CAAR,EAMpB,MAAM0U,EAAU,CAAhB,cACMC,UAIKC,uBAAqBxiB,KACjB,SACI,cAOjByiB,iBAAuB,GACvBC,mBAAsC1iB,KAC7B2iB,oBAAwC3iB,IAA7B,MAEf4iB,aAAYz0B,EAAoBmsB,EAAuB,CAC/D,QAAKuI,gBAAkB10B,EAAS,CAC9B20B,sBAAiB30B,EAASmsB,CAA/B,EACA,MACA,CACG,YAAKyI,iBAAmB50B,GAAW,CAAC,KAAK60B,iBACvCD,qBAAiB50B,EACjB60B,oBAAiB,KAAKC,cAAc90B,EAASmsB,CAA5B,GAEhB,KAAK0I,cACZ,MAEaC,eAAc90B,EAAoBmsB,EAAuB,CAChE4I,QAAkB,KAAKV,eAAe/mB,IAAItN,CAAxB,EACxB,CAAI+0B,CACEn4B,OAAIm4B,EAELjD,IAAa9xB,EAAS,MAAV,EACVpD,OAAIw3B,GACCtC,GAAa9xB,EAAS,QAAV,EACjBpD,OAAI,KAAM,kDAEVA,OAAI,KAAM,kDAEZk1B,GAAa9xB,EAAS,MAAV,EACT+S,cAAQC,IAAI,KAAKpW,EAAEo4B,SAASC,SAAS/pB,IAAI,MAAO/H,EAAImb,IAAa,CAClE4V,MAAmBpU,IAAI3c,EAAG8I,SAA1B,GAAuC,CACpCyG,QAAU,KAAMkM,IAAgB5e,EAASmD,EAAGsL,IAAb,EAChC,SAAM,CAACoB,EAAK7Q,IAAU0T,GAAQA,UACzByL,WAAS,KAAKvhB,EAAEs4B,WAAW/b,MAAMtJ,CAAxB,EAA8ByO,EAASnF,MAAMna,CAAf,EAAuB,EAAvE,CAED,CANgB,EAAZ,EAQI8yB,GAAa9xB,EAAS,QAAV,GAChB+S,cAAQC,IAAI,CAAC,GAAGkhB,EAAJ,EAAwBhpB,IAAI,KAAO/H,IAAO,CACrDuP,QAAU,KAAMkM,IAAgB5e,EAASmD,EAAG+J,QAAQ,cAAe,EAA1B,CAAV,EAChC,SAAM,CAAC2C,EAAK7Q,IAAU0T,GAAQA,UAC9BvP,IAAO,2BACV,KAAKvG,EAAEu4B,mBAAmBC,MAAMjX,SAAS,KAAKvhB,EAAEs4B,WAAW/b,MAAMtJ,CAAxB,EAA8B,KAAKjT,EAAEy4B,gBAAgBC,SAASt2B,CAAhC,EAAwC,EAA/G,EACUmE,IAAO,uCACjB,KAAKvG,EAAEu4B,mBAAmBI,iBAAiBpX,SAAS,KAAKvhB,EAAEs4B,WAAW/b,MAAMtJ,CAAxB,EAA8B,KAAKjT,EAAE44B,gBAAgBF,SAASt2B,CAAhC,EAAwC,EAA1H,CANe,EAAZ,EAWP,KAAKq1B,eAAe7mB,IAAIxN,EAAS,KAAKpD,CAAtC,GAEI+3B,sBAAiB30B,EAASmsB,CAA/B,EACKuI,mBAAgB10B,EAChB40B,oBAAiBzwB,MACtB,CAEOwwB,iBAAiB30B,EAAoBmsB,EAAuB,CAC/D2F,GAAa9xB,EAAS,MAAV,GACf,KAAKpD,EAAEo4B,SAASC,SAAStnB,QAAQ,CAACxK,EAAImb,IAAa,CrLrFtD,MqLsFQ4V,MAAmBpU,IAAI3c,EAAG8I,SAA1B,GAAuC,CAC1CqS,EAASmX,MAAT,EACW,UAAC5lB,EAAK7Q,IAAUyO,QAAOiF,QAAQyZ,oBAAUhpB,EAAGsL,QAAb0d,OAAsB,CAArC,GACjBhO,WAAS,KAAKvhB,EAAEs4B,WAAW/b,MAAMtJ,CAAxB,EAA8ByO,EAASnF,MAAMna,CAAf,CAAhD,CAED,EANF,CASD,MAEY02B,oBAAmBC,EAAmBC,EAAqBxoB,EAAc,CAC/EyoB,QAAgB,CAACF,EAAW,GAAEvoB,IAAQwoB,CAAtB,EAClB,IAACtkB,GAAU,KAAKwkB,WAAYD,CAAlB,EAAkC,CACzCE,QAAgB,KAAKC,oBAAoBL,CAAzB,EAChBM,EAAc,KAAM,MAAKC,kBAAkBH,EAAeH,EAAYxoB,CAAlD,EACpB+oB,EAAiB,KAAKC,UAAU,MAAf,EACpB,GAAI,MAAKx5B,EAAEg2B,oBAAoBqD,EAAaF,CAA5C,EACA,GAAK,MAAKn5B,EAAEg2B,oBAA4BxlB,EAAM6oB,EAAaF,CAA3D,EACH,KAAKM,cAAgBN,EAAcO,MAC9BC,oBAAiBJ,EAClB,KAAKC,UAAU,MAAf,EACEI,sBAAmB,GAAI,MAAK55B,EAAE65B,YAAYV,EAAe3oB,CAAtC,EAEnBopB,sBAAmBryB,OAEzB,KAAKuyB,iBAAmB,CACvBC,SAAU,CAAC95B,EAAGR,EAAGM,IAAMs5B,EAAYU,SAAS95B,EAAGR,EAAGM,EAAGwH,MAA9B,GAEnBmwB,iBAAc,GACdC,mBAAiB1iB,KACjBikB,gBAAa3kB,GAAU0kB,CAAD,CAC3B,CACD,MAEaK,mBAAkBH,EAAmDH,EAAqBxoB,EAAgD,CrLxHzJ,UqLyHM,QAAKsnB,eAAiB7pB,GAAS+qB,CAAD,GAAgB,MAAOA,GAAWgB,QAAW,SAAU,CAClF52B,QAAU,KAAK00B,cACfkC,EAAShB,EAAWgB,OAAO1pB,QAAQ,cAAe,EAAzC,EACTiX,EAAS,KAAM0S,IAAqB,KAAKrC,YAAc,GAAEx0B,KAAW42B,IAAU,SAE5E93B,CADW,KAAMg4B,IAAY92B,EAAS,YAAa42B,IAAW,YAAc,YAAc,YAA9D,GAClBG,UAAUC,aAAa7S,MAFA,EAI5B,GAAEjhB,KAAM0yB,EAAW1yB,KAAMihB,SACtC,CACG,QAAKiS,UAAU,MAAf,EACI,YAAKx5B,EAAEq6B,YAAY3B,SAASM,CAA5B,EACD,CACAsB,QAAOrsB,GAAS+qB,CAAD,EAAeA,EAAa,GAC3C1yB,EAAO,MAAOg0B,GAAKh0B,MAAS,SAAWg0B,EAAKh0B,KAAKgK,QAAQ,cAAe,EAAjC,EAAuC/I,OAC5EjB,cACF,QACJ,MAAO,IAAK,MAAKtG,EAAUu6B,WAAW,KAAKf,UAAU,QAAf,EAA2B,KAAKx5B,EAAEs4B,WAAW/b,MAAM+d,EAAK3J,KAAxD,EAA2E2J,EAAK3J,KAA/G,MACH,eACE6J,QAAcC,qBAAS,GAAK,EAC5BC,EAAYJ,QAAK/S,SAAL+S,cAAa/qB,SAAb+qB,OAAuB,EAClC,OAAEP,SAAU,CAAC95B,EAAW06B,EAAY56B,IAAc,CrL7I9D,MqL8IM,KAAMd,GAAYu7B,SAAeA,QAAUE,EAAYA,GAAaA,EAC9D/J,EAAQ2J,KAAK/S,SAAL+S,cAAcr7B,GACrB,YAAKu6B,UAAU,QAAf,EAA2B,KAAKx5B,EAAEs4B,WAAW/b,MAAMoU,CAAxB,EAAiCA,CACnE,OACG,cACA,QAAK6I,UAAU,MAAf,EAAwB,CACrBoB,QAAa,GAAI,MAAK56B,EAAE66B,QAAQC,WAAWR,EAAK/S,OAAOjZ,IAAI,CAAC3O,EAAW,CACtEgxB,QAAQ,KAAK6I,UAAU,QAAf,EAA2B,KAAKx5B,EAAEs4B,WAAW/b,MAAM5c,EAAEgxB,KAA1B,EAAmChxB,EAAEgxB,MACvE,OAAC,KAAK3wB,EAAE66B,QAAQE,WAAWrC,SAAS/4B,EAAEi7B,UAArC,EAAkD,IAAMjK,CAAzD,CAFyC,EAA9B,EAIbqK,EAAa,GAAK,MAAKh7B,EAAUi7B,WAAWL,CAA/B,EACfM,MACA,QAAK1B,UAAU,QAAf,EAA0B,CACvB2B,QAAS,KAAKn7B,EAAEo7B,YAAYC,OAAO,CACxCC,YAAa,GAAI,MAAKt7B,EAAE44B,gBAAgB2C,MAAM,IAAM,EAAI,KAAKv7B,EAAUw7B,OAAOC,WAAjE,EACbC,WAAY,GAAI,MAAK17B,EAAE44B,gBAAgB2C,MAAM,IAAM,EAAI,KAAKv7B,EAAUw7B,OAAOG,UAAjE,EACZC,WAAY,GAAI,MAAK57B,EAAE44B,gBAAgB2C,MAAM,IAAM,EAAI,KAAKv7B,EAAUw7B,OAAOK,eAAjE,EACZC,QAAS,GAAI,MAAK97B,EAAE44B,gBAAgB2C,MAAM,IAAM,EAAI,KAAKv7B,EAAUw7B,OAAOO,OAAjE,EACTC,OAAQ,GAAI,MAAKh8B,EAAE44B,gBAAgB2C,MAAM,IAAM,EAAI,KAAKv7B,EAAUw7B,OAAOS,KAAjE,EALM,EAOff,EAAU,KAAKl7B,EAAE66B,QAAQqB,QAAQC,WAAY,KAAKn8B,EAAEo7B,YAAoBgB,aAAajB,EAAQhC,EAAe3oB,CAAhE,CAAlC,MACJ,CACA6rB,QAAe,GAAK,MAAKr8B,EAAUs8B,aAAa,KAAKt8B,EAAEu8B,cAAc7D,SAAS,IAA9B,EAAqC,GAAMloB,EAAM,EAAlF,EACX,GAACvQ,EAAWR,EAAWM,IAAcs8B,EAAaG,OAAOv8B,EAAGR,EAAGM,CAA1B,CAC/C,CACM,OAAEg6B,SAAU,CAAC95B,EAAWR,EAAWM,IAClCi7B,EAAWjB,SAAS95B,EAAGR,EAAGM,EAAGm7B,CAA7B,CACP,CAFD,KAGM,CACAxB,QAAQ,CAAC,WAAY,cAAe,WAAY,WAAxC,EACZprB,IAAI,CAAC/H,EAAItH,IAAM,CrL5KvB,MqL6KcsO,QAAS+sB,EAAM,GAAE/zB,WACvBgH,SAAOkvB,YAAcC,GAAMnvB,KAAOkvB,cAAPlvB,OAAsB,GAAI,KAAM,EAAjC,EACnB,GAAI,MAAKvN,EAAE28B,YAAY,GAAI,MAAK38B,EAAE48B,aAAapsB,EAAOR,OAAO/Q,CAAD,CAArC,EAA2CsO,CAAlE,EAJK,EAMV,OAACqC,MAAMkE,QAAQwmB,EAAK/S,MAAnB,GAA8B+S,EAAK/S,OAAOhY,SAAW,EAClD,CAAEwqB,SAAU,IAAM,KAAK/5B,EAAEs4B,WAAW+C,OAAO,SAAzB,GAEnB,CAAEtB,SAAU,CAAC95B,EAAW06B,EAAY56B,IAAc,CAClDjB,QAAI46B,EAAMprB,IAAIxP,GAAKA,EAAE09B,OAAOv8B,EAAGF,EAAG,CAAf,CAAf,EACN88B,MAAUC,IACVC,EAAW,UACJ,UAAEpM,QAAOiK,WAAY/7B,IAAOy7B,GAAK/S,OAAQ,CAC7CyV,QAAOC,GAAOp+B,EAAEq+B,SAAWp+B,EAAE,EAAhB,EAAsBm+B,GAAOp+B,EAAEy8B,YAAcx8B,EAAE,EAAnB,EAAyBm+B,GAAOp+B,EAAEs+B,SAAWr+B,EAAE,EAAhB,EAAsBm+B,GAAOp+B,EAAEu+B,UAAYt+B,EAAE,EAAjB,EAAuBm+B,GAAOp+B,EAAEw+B,MAAH,EACnIL,EAAOH,GACAG,KACCrM,IAEZ,CACMoM,QACP,EACD,SACa,SAAI1oB,OAAO,4BAA2B/N,GAAtC,EAEhB,CACD,CAEO8yB,oBAAoBL,EAAuD,CAC9E,aAAOA,IAAa,SACnB,KAAKS,UAAU,MAAf,EACI,KAAKx5B,EAAEu4B,mBAAmB+E,eAAeC,WAAW,KAAKv9B,EAAEs4B,WAAW/b,MAAMwc,CAAxB,CAApD,EAEA,KAAK/4B,EAAEw9B,uBAAuB9E,SAASnxB,MAAvC,EAGD,KAAKvH,EAAEw9B,uBAAuB9E,SAASK,CAAvC,CAER,CAEM0E,eAAeC,EAAc9hB,EAAe+U,EAAQ,UAAW,CAEjE,GADG1gB,OAAKC,MAAMwtB,CAAX,EACH,CAAC,KAAKjE,cACH,SAAIplB,OAAM,qDAAV,EAEDspB,QAAO,KAAKlE,cAAckE,KAC1B9hB,EAAS,KAAK4d,cAAc5d,OAE3B,OAAC,GAAGjM,MAAMK,KAAK2tB,KAAKhiB,EAAQ,EAAlB,EAAwB,CAAzB,CAAT,EAAsCtN,IAAI,CAAC5N,EAAGzB,IAAM,CACpDgB,YAAqB,GAAKhB,EAC1B4+B,EAAS,KAAKnG,YAAY9lB,KAAKrS,GAAKA,EAAEu+B,IAAI,KAAO79B,CAAxC,EACf,GAAI49B,EACIA,SAEFE,QAAQ,GAAI,MAAK/9B,EAAEg+B,MAAML,EAAM9hB,EAAQ,KAAK7b,EAAEi+B,SAAS5C,OAAOp7B,EAAG,KAAKi+B,GAAK,CAApC,CAA/B,EACV,IAAC,KAAKvE,eACH,SAAItlB,OAAM,qDAAV,EAEH6gB,MAAa,KAAK4C,cAAgB,MAAtB,EAA+B,CAC1C,IAAC,KAAK8B,iBACH,SAAIvlB,OAAM,wDAAV,EAEFslB,oBAAewE,KAAK,KAAKvE,iBAAkBmE,EAAO,EAAvD,EACKpE,oBAAeyE,aAAa,KAAKxE,iBAAkBmE,EAAOpN,CAA/D,MAEC,MAAKgJ,eAAuBwE,KAAKJ,EAAO,EAAzC,EACC,KAAKpE,eAAuByE,aAAaL,EAAOpN,CAAjD,EAEI+G,wBAAY9T,KAAKma,CAAtB,EACOA,EArBD,CAuBP,CAEMM,WAAWX,EAAcY,EAAcC,EAAcC,EAAcC,EAAO,EAAGh/B,EAAI,GAAI,CAC3F,GAAI,CAAC,KAAKk6B,gBAAkB,CAAC,KAAKF,cAC3B,SAAIplB,OAAM,iDAAV,EAEDqqB,QAAUj/B,EAAI,KAAKg6B,cAAckE,MAAS,EAC1CgB,EAAYjB,GAAQ,EACpBkB,EAAYN,GAAQ,EACpBO,EAAYN,GAAQ,EACpBO,EAAYN,GAAQ,EACpBO,EAAS9uB,KAAKC,MAAO0uB,GAAYD,GAAaF,CAArC,EACTO,EAAS/uB,KAAKC,MAAO4uB,GAAYD,GAAaJ,CAArC,EAETQ,EAAW,GAAIlqB,IACf1C,EAAO,GAAI6sB,WAAUH,EAASC,CAAvB,EACTG,MAAU,EACVlgC,EAAI,EAER,OAASgB,GAAI0+B,EAAW1+B,EAAI2+B,EAAW3+B,GAAKw+B,EAC3C,OAAS1+B,GAAI8+B,EAAW9+B,EAAI++B,EAAW/+B,GAAK0+B,EAAM,CAC3CW,QAAU,GAAEn/B,KAAKy+B,KAAU3+B,IAC7B4wB,MAAQ,KAAKgH,WAAWjnB,IAAI0uB,CAApB,EACR,IAACzO,EAAO,CACP,QAAK0O,MACA,OAAKC,kBAAkBr/B,EAAGF,CAA1B,UACE,KAAKy5B,UAAU,MAAf,EAAwB,CAC9B,IAAC,KAAKI,iBACH,SAAIvlB,OAAM,uDAAV,EAEC,OAAKslB,eAAe4F,aAAa,KAAK3F,iBAAkB35B,EAAGy+B,EAAQ3+B,CAAnE,EAAsEsP,SAA9E,MACM,CACH,IAAC,KAAKyqB,iBACF,SAAIzlB,OAAM,uDAAV,EAEPsc,EAAQ,KAAKmJ,iBAAiBC,SAAS95B,EAAGy+B,EAAQ3+B,CAA1C,EAA6CsP,UACrD,CACIsoB,gBAAW/mB,IAAIwuB,EAAQzO,CAA5B,CACA,CACDte,EAAKpT,KAAOggC,EAAS1pB,gBAAgBob,EAAO,IAAMwO,GAAtC,CACZ,CAGK,OACNK,QAASP,EAAS/pB,SAClB7C,OACAuJ,MAAOmjB,EACPljB,OAAQmjB,EAET,CAEOM,kBAAkBr/B,EAAWF,EAAW,CAC3CE,SAAI,EACAF,EAAI,EAAI,mBAAqB,mBAE7BA,EAAI,EAAI,qBAAuB,kBAEvC,CAEM0/B,oBAAoBzmB,EAAgBxI,EAAc,CACpD,QAAKgpB,UAAU,MAAf,EAAwB,CACrBT,QAAW,KAAK/4B,EAAEw9B,uBAAuBnC,OAAO,CACrD3B,MAAO,CACNiE,KAAM,IACN9hB,OAAQ,IACR6jB,OAAQ,EACRC,MAAO,CAL6C,EAOrDC,YAAa,KAAK5/B,EAAEo7B,YAAYC,OAAO,CACtCwE,aAAc,KAAK7/B,EAAE44B,gBAAgBF,SAAS1f,CAAhC,EADF,EAPG,EAWjB,YAAKygB,cAAgBV,EAASW,MAEvBoG,CADa,EAAI,MAAK9/B,EAAE65B,YAAYd,EAAUvoB,CAAjC,EACD2qB,OAAO0E,iBACpB,CACN,KAAM1vB,GAAS,KAAKnQ,EAAE+/B,gBAAgB1E,OAAO7qB,CAA9B,EAAoCwvB,iBAC7CjH,EAAW,KAAK/4B,EAAEu8B,cAAc7D,SAAS,CAC9CuH,MAAO,IACPpkB,OAAQ,IACRqkB,gBAAiB,EACjBC,cAAe,EACfC,SAAU,CAAEC,SAAU,EAAGC,QAAS,EAAGC,UAAW,GAAIC,SAAU,GALhB,EAM9CC,aAAc,CAAEhpB,OAAQ,SAAWsC,KAAM,EAAGsjB,OAAQ,CANN,EAO9CqD,UAAW,CAAEjpB,OAAQ,SAAWsC,KAAM,EAAGsjB,OAAQ,CAPH,EAQ9CsD,eAAgB,CAAEtD,OAAQ,KAAOuD,OAAQ,EAAGC,WAAY,CAAxC,EARA,EAUZpH,0BAAgBV,EAEd+H,CADY,IAAK9gC,EAAE44B,gBAAgBF,SAAS1f,CAAhC,EACD+nB,OAAO,GAAK,MAAK/gC,EAAEo7B,YAAoB4F,QAAQ7wB,EAAQ4oB,CAAhD,CAAlB,CACP,CACD,CAEMkI,kBAAkC,CACpC,IAAC,KAAKxH,cACH,SAAIplB,OAAM,yDAAV,EAEP,MAAO,MAAKolB,aACZ,CAEMyH,cAAcjhC,EAAWR,EAAW,CACtCwQ,OAAKC,MAAMjQ,CAAX,EACAgQ,OAAKC,MAAMzQ,CAAX,EACEs+B,QAAQ,KAAKrG,YAAY9lB,KAAKrS,GAAK,KAAKS,EAAEi+B,SAASkD,UAAU5hC,EAAEu+B,GAA5B,GAAoC79B,GAAK,KAAKD,EAAEi+B,SAASmD,UAAU7hC,EAAEu+B,GAA5B,GAAoC79B,CAAxG,EACP89B,wBAAOmD,cAAc,KAAKlhC,EAAEqhC,SAAShG,OAAOp7B,EAAGR,EAAG,KAAKy+B,CAAlC,EAC5B,CAEO1E,UAAUrlB,EAAiBD,EAAiB,CAC/C,IAAC,KAAK4jB,cACH,SAAIzjB,OAAM,6BAAV,EAEA6gB,UAAa,KAAK4C,cAAe3jB,EAAKD,CAA1B,CACnB,CArVqB,CAwVVotB,SAAY,GAAI/J,IClWtB,MAAMvB,EAAoB,CAgBhCvhB,YAAYjE,EAAc,CAVlBuoB,cAAgB,GACK,kBACC,mBACA,oBACD,mBACA,mBAErBwI,sBAAwC,GACtB,eAGnBpxB,QAAS,GAAIysB,IAAapsB,CAAjB,EACVgxB,yBAAsB,GAAIC,IAAYtxB,EAAQ,IAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAA9C,CAA7B,EACtBuxB,yBAAsB,GAAID,IAAYtxB,EAAQ,IAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAA9C,CAA7B,EACtBwxB,qBAAkB,GAAIF,IAAYtxB,EAAQ,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAtB,CAA5B,EAClByxB,gBAAa,GAAIH,IAAYtxB,EAAQ,IAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAA9C,CAA7B,CAClB,CAEMsZ,MAAMsP,EAAe1lB,EAAeonB,EAAeoH,EAAiBjmB,EAAe,CACpFmd,cAAWA,EACX+I,gBAAa/I,EAASmH,gBAAkB,EACxC6B,iBAAchJ,EAASoH,cAAgB,EAC5C,KAAK6B,YAAc/xB,KAAKC,MAAM6oB,EAASld,OAAS,KAAKkmB,WAAlC,EAEfhJ,EAASkJ,WAAa5uB,EAAQ,GACjCA,GAAQ,EAAIA,EAAQ,EACpBonB,EAAQ,EAAIA,EAAQ,GAEhByH,gBAAa,QAAY7uB,GAAQ,GAAM,MACvC8uB,gBAAa,GAAQ1H,GAAQ,GAAM,IAEnC8G,sBAAmB3xB,MAAMgM,CAAD,EAAQuiB,KAAK,IAAlB,EACnB0D,aAAUA,CACf,CAEMO,mBAAmBniC,EAAqB,CACxCoS,QAAOzC,MAAM,KAAKoyB,YAAc,KAAKD,WAAzB,EACZM,EAAKpyB,KAAKC,MAAMjQ,EAAI,KAAK6hC,UAApB,EACLQ,EAAKryB,KAAKC,MAAMjQ,EAAI,KAAK6hC,UAApB,EAAkC,KAAKA,WAC5CS,EAAS,KAAKC,gBAAgBH,CAArB,EACTI,EAAS,KAAKD,gBAAgBH,EAAK,CAA1B,EAEf,OAAS5iC,GAAI,KAAKuiC,YAAc,EAAGviC,GAAK,EAAGA,GAAK,EAC/C,OAASijC,GAAK,KAAKX,YAAaW,GAAM,EAAGA,GAAM,EAAG,CAC3CC,QAAKD,EAAK,KAAKX,YACf9iC,EAAIQ,EAAI,KAAKsiC,YAAcW,EACjCrwB,EAAKpT,GAAK2jC,GAAMD,EAAIL,EAAIC,EAAO9iC,GAAI8iC,EAAO9iC,EAAE,GAAIgjC,EAAOhjC,GAAIgjC,EAAOhjC,EAAE,EAArD,CACf,CAEK4S,QACP,CAEOmwB,gBAAgBviC,EAAqB,CACtC4iC,QAAe,KAAKtB,iBAAiBthC,EAAI,KAAK4hC,SAChDgB,KAAqBA,SAEnBxwB,QAAOzC,MAAM,KAAKoyB,YAAc,CAApB,EAEZc,EAAU,QAAU,KAAK/J,SAASqH,SAASC,SAC3C0C,EAAS,QAAU,KAAKhK,SAASqH,SAASE,QAC1C0C,EAAWF,EAAU,KAAK/J,SAASqH,SAASG,UAC5C0C,EAAUF,EAAS,KAAKhK,SAASqH,SAASI,SAC1C0C,EAAgB,KAAKnK,SAASoK,sBAAwB,KAAKC,iBAAiBnjC,CAAtB,EAA2B,EAEvF,OAASR,GAAI,EAAGA,GAAK,KAAKuiC,YAAaviC,GAAK,EAAG,CAC1Ci6B,MAAQ,KAAK2J,oBAAoBpjC,EAAGR,EAAG,KAAKkiC,gBAAgB2B,eAAe,CAApC,EAAwCC,GAAIT,EAASC,EAAQC,EAAUC,CAAtG,EAGNO,QAAWC,CADD/c,CADA,EAAIjnB,EAAI,EAAI,KAAKuiC,YAAckB,GACrB,KAAKnK,SAAS2K,eAAiB,KAAK3K,SAAS4K,eAC5C,KAAKzB,YAAc,KAAKC,WAC1CqB,KAAqB,KAAI,EAAI,GAElC,KAAKzK,SAAS2H,UAAU3mB,KAAO,GAClC2f,GAAQkK,GACP,KAAK7K,SAAS2H,UAAUjpB,OACxBiiB,EACMsI,kBAAcviC,EAAK,KAAKs5B,SAAS2H,UAAUrD,QAAY,KAAKtE,SAAS2H,UAAU3mB,IAHnE,GAOhB,KAAKgf,SAAS0H,aAAa1mB,KAAO,GACrC2f,GAAQkK,GACP,KAAK7K,SAAS0H,aAAahpB,OAC3BiiB,EACCj6B,GAAK,KAAKs5B,SAAS0H,aAAapD,QAAY,KAAKtE,SAAS0H,aAAa1mB,IAHtD,GAMpB1H,EAAK5S,GAAKi6B,CACV,CAEI6H,6BAAiBthC,EAAI,KAAK4hC,SAAWxvB,EACnCA,CACP,CAEO+wB,iBAAiBnjC,EAAmB,CACrCy5B,QAAQ,KAAKkI,WAAWpF,OAAOv8B,EAAI,IAAK,GAAI,KAAK2hC,WAAW0B,eAAe,CAA/B,EAAmCC,GAAI,EAAG,EAAG,EAAjF,EAER5jC,EAAIE,CADC65B,EAAQ,EAAK,CAACA,EAAQ,GAAMA,GACzB,UAAY,EAClB/5B,SAAI,EAAKA,EAAI,oBAAuBsQ,KAAKkE,IAAIxU,EAAG,CAAZ,EAAiB,UAC7D,CAEO0jC,oBAAoBpjC,EAAWR,EAAWM,EAAW+iC,EAAiBC,EAAgBC,EAAkBC,EAAyB,CACpIpjC,MAAI,EACJF,EAAI,EACJJ,EAAI,EACJS,EAAI,EAER,OAASf,GAAI,EAAGA,EAAI,GAAIA,GAAK,EAAG,CACzB4kC,QAAKpC,GAAYqC,KAAK7jC,EAAI6iC,EAAU9iC,CAA/B,EACL+jC,EAAKtC,GAAYqC,KAAKrkC,EAAIsjC,EAAS/iC,CAA9B,EACLgkC,EAAKvC,GAAYqC,KAAK/jC,EAAI+iC,EAAU9iC,CAA/B,EACLV,EAAIyjC,EAAS/iC,EAEbikC,EAAgB,KAAKzC,oBAAoB8B,eAAerkC,CAAxC,EACtB,CAAIglC,EACEA,MAAczH,OAAOqH,EAAIE,EAAIC,EAAI1kC,EAAGG,EAAIH,CAAxC,EAA6CU,GAG7CkkC,QAAgB,KAAKxC,oBAAoB4B,eAAerkC,CAAxC,EAKlBA,GAJAilC,GACEA,MAAc1H,OAAOqH,EAAIE,EAAIC,EAAI1kC,EAAGG,EAAIH,CAAxC,EAA6CU,GAG/Cf,EAAI,EAAG,CACJklC,QAAY,KAAKxC,gBAAgB2B,eAAerkC,CAApC,EAClB,CAAIklC,EACEA,MAAU3H,OACdiF,GAAYqC,KAAK7jC,EAAI+iC,EAAWhjC,CAAhC,EACAyhC,GAAYqC,KAAKrkC,EAAIwjC,EAAUjjC,CAA/B,EACAyhC,GAAYqC,KAAK/jC,EAAIijC,EAAWhjC,CAAhC,EACAijC,EAAUjjC,EACVP,EAAIwjC,EAAUjjC,CALV,EAMDA,EAEL,CAEI,IACL,CAEM4jC,UAAY/jC,EAAI,IAAKF,EAAI,IAAU,MAAK,GAAK,CAAlC,CAClB,CAjJ+B,CCgBjC,KAAMykC,IAAmD,CACxD,gBAAiB,CAAC,IAAK,IAAK,GAAX,EACjB,kBAAmB,CAAC,GAAI,GAAI,GAAT,EACnB,iBAAkB,CAAC,IAAK,IAAK,CAAX,EAClB,kBAAmB,CAAC,GAAI,GAAI,EAAT,EACnB,sBAAuB,CAAC,GAAI,GAAI,EAAT,EACvB,oBAAqB,CAAC,GAAI,GAAI,EAAT,EACrB,wBAAyB,CAAC,GAAI,IAAK,EAAV,EACzB,iBAAkB,CAAC,GAAI,GAAI,CAAT,EAClB,mBAAoB,CAAC,GAAI,GAAI,EAAT,EACpB,iBAAkB,CAAC,IAAK,IAAK,EAAX,EAClB,sBAAuB,CAAC,IAAK,IAAK,EAAX,EACvB,uBAAwB,CAAC,IAAK,GAAI,EAAV,EACxB,2BAA4B,CAAC,IAAK,GAAI,EAAV,EAC5B,0BAA2B,CAAC,GAAI,IAAK,GAAV,EAC3B,mBAAoB,CAAC,GAAI,GAAI,EAAT,EACpB,sBAAuB,CAAC,IAAK,IAAK,GAAX,CAhBiC,EAmBrBprB,oBAAY8C,EAAgBuoB,EAA+B,CvLtC/F,YuLuCKnP,MAAamP,EAAQjhC,QAAS,MAAlB,EAA2B,CAC1C,KAAMk+B,IAAUzJ,YAAYwM,EAAQjhC,QAASkhC,GAAeD,EAAQ9U,OAAT,CAArD,EACN,KAAM8J,GAAc,CAAE/yB,KAAM,QAASqqB,MAAO0T,EAAQ1T,OAC9C2Q,SAAUxI,mBAAmBvP,YAAUuL,YAAY9b,CAAtB,EAA8BqgB,EAAagL,EAAQ7zB,IAAhF,EACN8wB,GAAU7D,eAAe,CAAC4G,EAAQhH,OAAQgH,EAAQzoB,KAAlD,EACM8d,QAAQ4H,GAAUL,mBAElB5uB,EAAOyJ,EAAIzJ,KACjB,OAASpS,GAAI,EAAGA,EAAIokC,EAAQzoB,MAAO3b,GAAK,EACvC,OAASR,GAAI,EAAGA,EAAIi6B,EAAM7d,OAAQpc,GAAK,EAAG,CACnCR,QAAIgB,EAAI,EAAKy5B,GAAM7d,OAAOpc,EAAE,GAAK,EAAIqc,EAAIF,MACzC5C,EAAQsoB,MAAUJ,cAAcjhC,EAAIokC,EAAQhH,OAAQ59B,EAAIi6B,EAAMiE,IAAtD,WAA+D4G,GAAWC,IAClF3wB,EAAQuwB,MAAOprB,EAAMyrB,QAAUp1B,WAAe,KAAtC+0B,OAAsC,CAAC,EAAG,EAAG,CAAP,EACpD/xB,EAAKpT,GAAK4U,EAAM,GACX5U,IAAI,GAAK4U,EAAM,GACf5U,IAAI,GAAK4U,EAAM,GACpBxB,EAAKpT,EAAI,GAAK,GACd,CAEF,MACA,CAEKk7B,QAAY,GAAIuK,IAAuBL,EAAQ7zB,IAAnC,EAClB2pB,EAAU1Q,MAAMzQ,EAAM0gB,MAAO2K,KAAQnC,aAARmC,OAAsB,EAAGA,KAAQlC,aAARkC,OAAsB,EAAGA,EAAQhH,OAAQgH,EAAQzoB,KAAvG,EACA,KAAMvJ,GAAOyJ,EAAIzJ,KACXsyB,EAAM7oB,EAAIF,MAAQ,EACxB,OAAS3b,GAAI,EAAGA,EAAIokC,EAAQzoB,MAAO3b,GAAK,EAAG,CAC1C,KAAMy5B,GAAQS,EAAUiI,mBAAmBniC,EAAIokC,EAAQhH,MAAzC,EAAiDuH,UAC/D,OAASnlC,GAAI,EAAGA,EAAIuZ,EAAM0gB,MAAM7d,OAAQpc,GAAK,EAAG,CACzCR,QAAIQ,EAAIklC,EAAM1kC,EAAI,EAClB4T,EAAQgxB,GAASnL,EAAOj6B,CAAR,EACtB4S,EAAKpT,GAAK4U,EACVxB,EAAKpT,EAAI,GAAK4U,EACdxB,EAAKpT,EAAI,GAAK4U,EACdxB,EAAKpT,EAAI,GAAK,GACd,CACD,CACD,CAEM,YAAuBgB,EAAWR,EAAW,CAC5C6hC,UAAUJ,cAAcjhC,EAAGR,CAA3B,CACP,CAEqCuZ,oBAAY8C,EAAgBuoB,EAA+B,CAChG,KAAM/C,IAAUzJ,YAAYwM,EAAQjhC,QAASkhC,GAAeD,EAAQ9U,OAAT,CAArD,EACA3W,QAAK0oB,GAAU7B,oBAAoBlW,YAAUuL,YAAY9b,CAAtB,EAA8BqrB,EAAQ7zB,IAApE,EACLkpB,EAAQ4H,GAAUL,mBAElBzxB,EAAMI,MAAMy0B,EAAQzoB,MAAQ8d,EAAM7d,MAAvB,EACb1H,MAAM2oB,IACN5oB,EAAM,KACV,OAASjU,GAAI,EAAGA,EAAIokC,EAAQzoB,MAAO3b,GAAK,EACvC,OAASR,GAAI,EAAGA,EAAIi6B,EAAM7d,OAAQpc,GAAK,EAAG,CACzC,KAAMR,GAAIgB,EAAKy5B,GAAM7d,OAAOpc,EAAE,GAAK4kC,EAAQzoB,MACrC6nB,EAAU7qB,EAAGksB,QAAQlM,GAAgB1S,QAAQjmB,EAAIokC,EAAQhH,OAAQ59B,EAAG,CAA/C,CAAX,EACVwQ,OAAKkE,IAAIA,EAAKsvB,CAAd,EACAxzB,OAAKiE,IAAIA,EAAKuvB,CAAd,EACNj0B,EAAIvQ,GAAKwkC,CACT,CAGF,KAAMpxB,GAAOyJ,EAAIzJ,KACRpT,UAAI,EAAGA,EAAIolC,EAAQzoB,MAAQ8d,EAAM7d,OAAQ5c,GAAK,EAAG,CACnD4U,QAAQ5D,KAAKC,MAAM60B,GAAWv1B,EAAIvQ,GAAIkV,EAAKD,EAAK,EAAG,GAAtB,CAArB,EACd7B,EAAK,EAAIpT,GAAK4U,EACT,IAAI5U,EAAI,GAAK4U,EACb,IAAI5U,EAAI,GAAK4U,EACb,IAAI5U,EAAI,GAAK,GAClB,CACD,CAEM,YAAwBswB,EAAkB,CACzC1e,cAAOm0B,YAAY,CAAC,0BAA2B,iBAAkB,2BAA9C,EAA2E12B,IAAIhI,CAAQ,GAChH,KAAM2+B,GAAYp0B,OAAOm0B,YACxBzV,EAAQJ,MAAM9Y,OAAOZ,GAAQA,EAAKnP,OAASA,CAA3C,EACEgI,IAAuBmH,GAAQ,CAACA,EAAKlP,GAAIkP,EAAKpD,IAAf,CADjC,CADiB,EAIX,OAAC/L,EAAM2+B,CAAP,CALkB,EAAnB,CAOP,CAED,YAAkBvL,EAAiBj6B,EAAmB,CACjDi6B,SAAMj6B,GAAK,EACP,EAEJi6B,EAAMj6B,EAAE,GAAK,EACT,IAED,GACP,CC3G8BuZ,oBAAY8C,EAAgBuoB,EAA6B,CACvF,KAAM/C,IAAUzJ,YAAYwM,EAAQjhC,QAASkhC,GAAeD,EAAQ9U,OAAT,CAArD,EACA+R,SAAUxI,mBAAmBvP,YAAUuL,YAAYuP,EAAQtL,QAA9B,EAAyCxP,YAAUuL,YAAY9b,CAAtB,EAA8BqrB,EAAQ7zB,IAA5G,EAEA00B,QAAYj1B,KAAKiE,IAAI,EAAGjE,KAAKk1B,MAAMd,EAAQ5J,KAAnB,CAAZ,EACZ2K,EAAa,IAAMF,EAEnBG,EAAUp1B,KAAKk1B,MAAM,CAACd,EAAQhH,OAAO,GAAKgH,EAAQ5J,KAAxC,EACV6K,EAAUr1B,KAAKk1B,MAAM,CAACd,EAAQhH,OAAO,GAAKgH,EAAQ5J,KAAxC,EAEViD,EAAOztB,KAAKC,MAAMm1B,EAAUD,EAAa,CAAlC,EACP7G,EAAOtuB,KAAKC,MAAMo1B,EAAUF,EAAa,CAAlC,EACP9G,EAAOZ,EAAO0H,EACd5G,EAAOD,EAAO6G,EAEd,CAAE5F,UAASntB,OAAMuJ,QAAOC,UAAWylB,GAAUjD,WAAWX,EAAO,EAAGY,EAAO,EAAGC,EAAO,EAAGC,EAAO,EAAG0G,EAAYb,EAAQ1iB,IAAK0iB,EAAQ5kC,CAA9F,EAErCQ,MAAI,EACJF,EAAI,EACR,OAASd,GAAI,EAAGA,EAAIoT,EAAK9C,OAAQtQ,GAAK,EAAG,CAClC0xB,QAAQ6O,EAAQ9uB,IAAI2B,EAAKpT,EAAjB,EACR4U,EAAQ0xB,GAAc5U,UAAS,GAAI0T,EAAQ9T,WAAtB,EACrBzwB,EAAIC,EAAI6b,EAAQ3b,EAClBoS,OAAKvS,EAAI,GAAK+T,EAAM,GACxBiI,EAAIzJ,KAAKvS,EAAI,EAAI,GAAK+T,EAAM,GAC5BiI,EAAIzJ,KAAKvS,EAAI,EAAI,GAAK+T,EAAM,GACxBxB,OAAKvS,EAAI,EAAI,GAAK,IAEjB,KACDC,GAAK8b,GACJ,KACC,KAEN,CACD,CAE8B7C,oBAAY/Y,EAAWF,EAAWskC,EAAkF,CAClJ,KAAM/C,IAAUzJ,YAAYwM,EAAQjhC,QAASkhC,GAAeD,EAAQ9U,OAAT,CAArD,EACA+R,SAAUxI,mBAAmBvP,YAAUuL,YAAYuP,EAAQtL,QAA9B,EAAyCxP,YAAUuL,YAAa9b,CAAvB,EAA+BqrB,EAAQ7zB,IAA7G,EAEA00B,QAAYj1B,KAAKiE,IAAI,EAAGjE,KAAKk1B,MAAMd,EAAQ5J,KAAnB,CAAZ,EAEZ4K,EAAUp1B,KAAKk1B,MAAM,CAACd,EAAQhH,OAAO,GAAKgH,EAAQ5J,KAAxC,EACV6K,EAAUr1B,KAAKk1B,MAAM,CAACd,EAAQhH,OAAO,GAAKgH,EAAQ5J,KAAxC,EAEV+K,EAAKv1B,KAAKC,MAAMm1B,EAAYplC,GAAI,KAAOilC,CAAlC,EACLO,EAAKx1B,KAAKC,MAAMo1B,EAAYvlC,GAAI,KAAOmlC,CAAlC,EAEL,CAAE1F,UAASntB,QAASivB,GAAUjD,WAAWmH,EAAK,EAAGA,EAAK,EAAI,EAAGC,EAAK,EAAGA,EAAK,EAAI,EAAG,EAAGpB,EAAQ5kC,CAAxE,EAGnB,OACNkxB,MAHa6O,EAAQ9uB,IAAI2B,EAAK,EAAjB,CAGbse,CAED,CAED,YAAuBA,EAAeJ,EAAkC,CxL7ExE,MwL8EK,IAACI,EACG,OAAC,IAAK,IAAK,GAAX,EAEF9c,QAAQ0c,KAAYI,KAAZJ,OAAsBmV,GAAc/U,GAC9C9c,WAAUtM,OACNo+B,GAAchV,CAAD,EAEd9c,CACP,CAEM,KAAM6xB,IAAwC,CACpD,qBAAsB,CAAC,IAAI,GAAG,EAAR,EACtB,6BAA8B,CAAC,IAAI,IAAI,GAAT,EAC9B,0BAA2B,CAAC,IAAI,IAAI,EAAT,EAC3B,gCAAiC,CAAC,GAAG,GAAG,EAAP,EACjC,0BAA2B,CAAC,GAAG,GAAG,EAAP,EAC3B,kBAAmB,CAAC,IAAI,IAAI,EAAT,EACnB,yBAA0B,CAAC,GAAG,IAAI,EAAR,EAC1B,+BAAgC,CAAC,GAAG,GAAG,EAAP,EAChC,uBAAwB,CAAC,GAAG,GAAG,GAAP,EACxB,2BAA4B,CAAC,IAAI,EAAE,CAAP,EAC5B,wBAAyB,CAAC,GAAG,GAAG,EAAP,EACzB,8BAA+B,CAAC,IAAI,IAAI,EAAT,EAC/B,4BAA6B,CAAC,GAAG,GAAG,EAAP,EAC7B,8BAA+B,CAAC,GAAG,GAAG,GAAP,EAC/B,gCAAiC,CAAC,EAAE,EAAE,EAAL,EACjC,uBAAwB,CAAC,EAAE,EAAE,EAAL,EACxB,4BAA6B,CAAC,EAAE,EAAE,EAAL,EAC7B,mBAAoB,CAAC,IAAI,IAAI,EAAT,EACpB,yBAA0B,CAAC,IAAI,GAAG,EAAR,EAC1B,yBAA0B,CAAC,IAAI,IAAI,EAAT,EAC1B,wBAAyB,CAAC,GAAG,GAAG,EAAP,EACzB,0BAA2B,CAAC,IAAI,IAAI,GAAT,EAC3B,yBAA0B,CAAC,IAAI,IAAI,GAAT,EAC1B,4BAA6B,CAAC,IAAI,IAAI,EAAT,EAC7B,0BAA2B,CAAC,GAAG,IAAI,EAAR,EAC3B,mBAAoB,CAAC,EAAE,IAAI,EAAP,EACpB,yBAA0B,CAAC,IAAI,IAAI,GAAT,EAC1B,yBAA0B,CAAC,IAAI,IAAI,GAAT,EAC1B,+BAAgC,CAAC,IAAI,IAAI,GAAT,EAChC,oCAAqC,CAAC,IAAI,IAAI,GAAT,EACrC,qCAAsC,CAAC,IAAI,IAAI,GAAT,EACtC,6BAA8B,CAAC,GAAG,IAAI,EAAR,EAC9B,kCAAmC,CAAC,GAAG,IAAI,EAAR,EACnC,mCAAoC,CAAC,GAAG,GAAG,EAAP,EACpC,2BAA4B,CAAC,IAAI,IAAI,GAAT,EAC5B,+BAAgC,CAAC,IAAI,IAAI,GAAT,EAChC,qCAAsC,CAAC,IAAI,IAAI,GAAT,EACtC,uBAAwB,CAAC,IAAI,IAAI,GAAT,EACxB,mBAAoB,CAAC,GAAG,IAAI,CAAR,EACpB,wBAAyB,CAAC,GAAG,IAAI,EAAR,EACzB,0BAA2B,CAAC,GAAG,IAAI,EAAR,EAC3B,yBAA0B,CAAC,GAAG,GAAG,CAAP,EAC1B,2BAA4B,CAAC,EAAE,EAAE,GAAL,EAC5B,sCAAuC,CAAC,IAAI,IAAI,GAAT,EACvC,wCAAyC,CAAC,IAAI,IAAI,GAAT,EACzC,4BAA6B,CAAC,IAAI,IAAI,EAAT,EAC7B,iCAAkC,CAAC,IAAI,IAAI,EAAT,EAClC,6CAA8C,CAAC,IAAI,IAAI,GAAT,EAC9C,0BAA2B,CAAC,IAAI,IAAI,GAAT,EAC3B,0BAA2B,CAAC,GAAG,GAAG,EAAP,EAC3B,sBAAuB,CAAC,GAAG,GAAG,EAAP,EACvB,4BAA6B,CAAC,GAAG,GAAG,EAAP,EAC7B,iCAAkC,CAAC,IAAI,EAAE,GAAP,EAClC,4BAA6B,CAAC,IAAI,EAAE,GAAP,EAC7B,0BAA2B,CAAC,IAAI,GAAG,EAAR,EAC3B,kBAAmB,CAAC,EAAE,EAAE,GAAL,EACnB,mBAAoB,CAAC,IAAI,IAAI,EAAT,EACpB,kBAAmB,CAAC,EAAE,EAAE,GAAL,EACnB,oBAAqB,CAAC,IAAI,IAAI,EAAT,EACrB,4BAA6B,CAAC,IAAI,IAAI,GAAT,EAC7B,8BAA+B,CAAC,IAAI,IAAI,GAAT,EAC/B,8BAA+B,CAAC,IAAI,IAAI,GAAT,EAC/B,sCAAuC,CAAC,IAAI,IAAI,GAAT,EACvC,8BAA+B,CAAC,GAAG,GAAG,EAAP,EAC/B,wBAAyB,CAAC,IAAI,IAAI,GAAT,EACzB,4BAA6B,CAAC,IAAI,IAAI,GAAT,EAC7B,wBAAyB,CAAC,GAAG,GAAG,EAAP,EACzB,8BAA+B,CAAC,GAAG,GAAG,EAAP,EAC/B,kCAAmC,CAAC,GAAG,IAAI,GAAR,EACnC,yBAA0B,CAAC,IAAI,IAAI,GAAT,EAC1B,yBAA0B,CAAC,IAAI,IAAI,GAAT,EAC1B,6BAA8B,CAAC,GAAG,GAAG,EAAP,EAC9B,wBAAyB,CAAC,IAAI,IAAI,GAAT,EACzB,wBAAyB,CAAC,IAAI,IAAI,GAAT,EACzB,6BAA8B,CAAC,IAAI,IAAI,GAAT,EAC9B,kBAAmB,CAAC,EAAE,IAAI,GAAP,EACnB,wBAAyB,CAAC,GAAG,IAAI,GAAR,EACzB,kBAAmB,CAAC,GAAG,IAAI,EAAR,EACnB,wBAAyB,CAAC,GAAG,GAAG,EAAP,EACzB,4BAA6B,CAAC,GAAG,IAAI,GAAR,EAC7B,8BAA+B,CAAC,GAAG,IAAI,GAAR,EAC/B,oCAAqC,CAAC,GAAG,IAAI,GAAR,EACrC,6BAA8B,CAAC,GAAG,IAAI,EAAR,EAC9B,oBAAqB,CAAC,GAAG,GAAG,EAAP,EACrB,qBAAsB,CAAC,EAAE,EAAE,CAAL,EACtB,uBAAwB,CAAC,EAAE,EAAE,GAAL,EACxB,0BAA2B,CAAC,GAAG,IAAI,GAAR,EAC3B,oCAAqC,CAAC,IAAI,IAAI,GAAT,EACrC,4BAA6B,CAAC,IAAI,IAAI,GAAT,EAC7B,yBAA0B,CAAC,GAAG,GAAG,EAAP,EAC1B,6BAA8B,CAAC,GAAG,IAAI,EAAR,EAC9B,6BAA8B,CAAC,GAAG,IAAI,EAAR,EAC9B,yBAA0B,CAAC,IAAK,IAAK,GAAX,EAC1B,wBAAyB,CAAC,IAAK,IAAK,GAAX,EACzB,yBAA0B,CAAC,IAAK,IAAK,GAAX,EAC1B,6BAA8B,CAAC,IAAK,IAAK,GAAX,EAC9B,yBAA0B,CAAC,IAAK,IAAK,GAAX,EAC1B,wBAAyB,CAAC,GAAI,GAAI,GAAT,EACzB,kBAAmB,CAAC,IAAK,IAAK,GAAX,EACnB,mBAAoB,CAAC,IAAK,IAAK,EAAX,EACpB,uBAAwB,CAAC,IAAK,IAAK,EAAX,EACxB,4BAA6B,CAAC,IAAK,IAAK,CAAX,EAC7B,sBAAuB,CAAC,GAAI,GAAI,EAAT,EACvB,2BAA4B,CAAC,GAAG,IAAI,GAAR,CAxGwB,ECjE/CE,GAAU,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAA7P,EAEVC,GAAgB,CACrB,CAAC,IAAK,GAAI,EAAV,EACA,CAAC,GAAI,IAAK,GAAV,EACA,CAAC,GAAI,IAAK,EAAV,EACA,CAAC,IAAK,GAAI,GAAV,EACA,CAAC,IAAK,IAAK,EAAX,EACA,CAAC,GAAI,IAAK,GAAV,CANqB,EAcI7sB,cAAY8C,EAAgBuoB,EAA2B,CAC1El0B,QAAS,GAAIysB,IAAayH,EAAQ7zB,IAAzB,EACTkL,EAAwB,CAC7BoqB,WAAY,CADiB,EAE7BC,SAAU,CAFmB,EAG7B51B,SACA61B,eAAgB,GAAIvE,IAAYtxB,EAAO81B,OAAQ,EAAG,CAAC,CAAD,CAAlC,EAChBC,SAAU,GACV9iC,QAASihC,EAAQjhC,QACjB+iC,UAAW,IAAMh2B,EAAOg2B,UAPK,EAQ7BlvB,QAAS,CAAC/C,EAAgB/D,EAAO8G,QAAQ/C,CAAf,EAC1BkyB,aAAc,IAAMn2B,KAAKo2B,KAAK,GAAKp2B,KAAKq2B,IAAI,EAAIn2B,EAAOg2B,WAApB,CAAf,EAAmDl2B,KAAKs2B,IAAI,EAAIt2B,KAAKu2B,GAAKr2B,EAAOg2B,WAA9B,EACvEM,UAAUrkC,EAAO,CAASqkC,UAAUrkC,EAAO,IAAR,CAAe,GAG1CnC,UAAI,EAAGA,EAAIokC,EAAQtqB,KAAK,GAAK,GAAI9Z,GAAK,EACrCF,UAAI,EAAGA,EAAIskC,EAAQtqB,KAAK,GAAK,GAAIha,GAAK,EAC1Cm1B,GAAamP,EAAQjhC,QAASmE,OAAW,MAA7B,EACD,IAACtH,EAAI,GAAI,EAAGF,EAAI,EAAhB,EAAqBwpB,EAAUuL,sBAAY9b,CAAtB,EAA8B0C,CAApD,EAEbgrB,GAAgB,CAACzmC,EAAI,GAAI,EAAGF,EAAI,EAAhB,EAAqBwpB,YAAUuL,YAAY9b,EAAM2tB,SAA5B,EAAwCjrB,CAA9D,EAKlB,KAAMrJ,GAAOyJ,EAAIzJ,KACbA,OAAK8rB,KAAK,GAAd,EAEK,SAAM,CAACL,EAAK8I,IAAYlrB,GAAIoqB,WAAY,CACxChI,KAAI,GAAK,GAAKA,EAAI,GAAK,GAAKA,EAAI,GAAK,GAAKA,EAAI,IAAMuG,EAAQtqB,KAAK,IAAM+jB,EAAI,IAAMuG,EAAQtqB,KAAK,IAAM+jB,EAAI,IAAMuG,EAAQtqB,KAAK,GAAI,SACnI,KAAM9a,GAAK6+B,EAAI,MAAUliB,MAAQ,GAAOkiB,EAAI,GAAK,EAC3CjqB,EAAQ+yB,EAAUf,GAAct2B,OAASs2B,GAAce,GAAWjB,GAAcjqB,EAAIqqB,SAASa,EAAd,EACrFv0B,EAAKpT,GAAKy9B,GAAM,GAAI,IAAK7oB,EAAM,EAAhB,EACfxB,EAAKpT,EAAI,GAAKy9B,GAAM,GAAI,IAAK7oB,EAAM,EAAhB,EACnBxB,EAAKpT,EAAI,GAAKy9B,GAAM,GAAI,IAAK7oB,EAAM,EAAhB,EACnBxB,EAAKpT,EAAI,GAAK,GACd,CAED,OAASgB,GAAI,EAAGA,EAAIokC,EAAQtqB,KAAK,GAAI9Z,GAAK,EACzC,OAASR,GAAI,EAAGA,EAAI4kC,EAAQtqB,KAAK,GAAIta,GAAK,EAAG,CACvCwQ,SAAKC,MAAMjQ,EAAI,EAAf,EAAqBgQ,KAAKC,MAAMzQ,EAAI,EAAf,GAAsB,IAAM,EAAG,SACzD,KAAMR,GAAKQ,EAASmc,SAAQ,GAAO3b,EAAI,EACvC,OAASH,GAAI,EAAGA,EAAI,EAAGA,GAAK,EAC3BuS,EAAKpT,EAAIa,GAAK,IAAOuS,EAAKpT,EAAIa,EAE/B,CAEF,CAED,YAAmByG,EAAY,CAC9B,MAAOA,GAAG2L,WAAW,YAAd,EAA8B3L,EAAGgL,MAAM,EAAT,EAAehL,CACpD,CAED,YAAmBu3B,EAAer+B,EAAuB,CACxD,MAAO,CAAC,CAAEq+B,EAAI,GAAIr+B,EAAGq+B,EAAI,EAAjB,CAAD,CACP,CAED,YAAmB17B,EAAYsZ,EAA+B,CzLhG9D,QyLiGK,SAAOtZ,IAAU,SACbA,SACP,GAAUA,EAAMykC,KACTzkC,WAAMykC,OAANzkC,OAAc,EAAIsZ,EAAIzE,QAAQ,EAAK7U,MAAM0kC,SAAN1kC,OAAgB,EAAjC,EAEjB2kC,UAAU3kC,EAAMkE,IAAP,OACX,WAAmBlE,SAAMA,UACzB,UAAkBA,SAAMA,MAAM4kC,cAAgBtrB,EAAIzE,QAAQ7U,EAAMA,MAAM6kC,cAAgB7kC,EAAMA,MAAM4kC,cAAgB,CAApE,MAC9C,mBAAoB,MAAO5kC,GAAMA,MAAM4kC,cAAgBtrB,EAAIzE,QAAQyE,EAAIzE,QAAQ7U,EAAMA,MAAM6kC,cAAgB7kC,EAAMA,MAAM4kC,cAAgB,CAApE,EAAyE,CAArF,MACvD,UAAkBtK,UAAMhhB,EAAI+qB,UAAUrkC,EAAMA,MAAMgQ,MAA1B,EAAmChQ,EAAMA,MAAM4kC,cAAe5kC,EAAMA,MAAM6kC,aAA3E,MACvB,iBACEC,QAAS9kC,EAAMA,MAAM+kC,KAAOzrB,EAAI0qB,eAAiBhkC,EAAMA,MAAMglC,UAC5Dn3B,YAAKC,MAAMwsB,GAAMt6B,EAAMA,MAAM4kC,cAAe5kC,EAAMA,MAAM6kC,cAAeC,CAAvD,CAAhB,MACH,gBACEnwB,QAAe3U,EAAMilC,aAAuBC,OAAe,CAACC,EAAKjoC,IAAMioC,EAAMjoC,EAAEomB,OAAQ,CAAzE,EAChBzmB,MAAIyc,EAAIzE,QAAQF,CAAZ,EACGzX,cAAK8C,GAAMilC,aAErB,GADApoC,GAAKK,EAAEomB,OACHzmB,EAAI,EAAUyc,SAAI+qB,UAAUnnC,EAAE+S,IAAhB,EAEZ,SAEF,QAER,CAED,YAAuBm1B,EAAaC,EAAgC,CAC/D,IAACx5B,GAASu5B,CAAD,EAAgB,SAAInzB,OAAM,yBAAV,EAC7B,GAAImzB,EAAOE,SAAU,MAAOF,GAAOE,SACnC,GAAIF,EAAOG,aAAc,MAAOH,GAAOG,aACnCH,KAAOI,UAAW,MAAO,KAAMJ,EAAOI,UACpC,SAAIvzB,OAAM,yBAAV,CACN,CAED,YAAsBwH,EAAaH,EAA+B,CzLnIlE,YyLoIK,IAACzN,GAAS4N,CAAD,EAAgB,SAAIxH,OAAM,yBAAV,EACzB,SAAOwH,GAAOvV,MAAS,SACnBuhC,UAAchsB,CAAD,EAEbkrB,UAAUlrB,EAAOvV,IAAR,OACX,WAAmBuhC,UAAchsB,EAAOzZ,KAAR,MAChC,UAAW,CACT+R,QAAM0zB,GAAchsB,EAAOmrB,aAAR,EACnB9yB,EAAM2zB,GAAchsB,EAAOorB,aAAR,EAClB9yB,SAAMuH,EAAIzE,QAAQ/C,EAAMC,EAAM,CAAxB,CACb,KACI,mBAAoB,CAClBA,QAAM0zB,GAAchsB,EAAOmrB,aAAR,EACnB9yB,EAAM2zB,GAAchsB,EAAOorB,aAAR,EACnBnoC,EAAI4c,EAAIzE,QAAQ/C,EAAMC,EAAc2zB,qBAAS,GAAK,CAA9C,EACV,MAAO3zB,GAAMuH,EAAIzE,QAAQnY,EAAK+c,MAAOisB,QAAPjsB,OAAgB,EAAjC,CACb,KACI,wBAAyB,CACvB1H,QAAM0zB,GAAchsB,EAAOmrB,aAAR,EACnB9yB,EAAM2zB,GAAchsB,EAAOorB,aAAR,EACnBa,EAAQjsB,KAAOisB,QAAPjsB,OAAgB,EACxBksB,EAAK5zB,EAAM2zB,EAAQpsB,EAAIzE,QAAQ/C,EAAMC,EAAM2zB,EAAQ,CAAhC,EACnBE,EAAK7zB,EAAMuH,EAAIzE,QAAQ8wB,EAAK5zB,CAAjB,EACVA,SAAMuH,EAAIzE,QAAQ+wB,EAAK7zB,EAAM2zB,CAAvB,CACb,KACI,YAAa,CACX3zB,QAAM0zB,GAAchsB,EAAOmrB,aAAR,EACnB9yB,EAAM2zB,GAAchsB,EAAOorB,aAAR,EACnBgB,EAAUpsB,KAAOosB,UAAPpsB,OAAkB,EAC9BosB,MAAW/zB,EAAMC,EACbA,SAAMuH,EAAIzE,QAAQ/C,EAAMC,EAAM,CAAxB,EAER4zB,QAAY5zB,KAAM8zB,GAAW,EAC7BD,EAAM9zB,EAAMC,EAAO4zB,EAClB5zB,SAAMuH,EAAIzE,QAAQ+wB,EAAK,CAAjB,EAAsBtsB,EAAIzE,QAAQ8wB,EAAK,CAAjB,CACnC,SACc,SAAI1zB,OAAO,2BAA0BwH,EAAOvV,MAA5C,EAEhB,CAGD,YAAoB9G,EAAWkc,EAAuB,CAC/Czc,QAAIyc,EAAIqqB,SAASz0B,QAAQ9R,CAArB,EACV,MAAIP,IAAK,GAAWA,EAChB8mC,YAASniB,KAAKpkB,CAAlB,EACOkc,EAAIqqB,SAASx2B,OAAS,EAC7B,CAED,YAAuBuuB,EAAe8I,EAAclrB,EAA6B,CzLpLjF,MyLqLK,SAAOkrB,IAAY,SAAU,CAC5Bd,aAAWliB,KAAK,CAACka,EAAKoK,GAAWtB,EAASlrB,CAAV,CAAhB,CAApB,EACA,MACA,CACKpV,QAAOygC,GAAUH,oBAAStgC,OAATsgC,OAAiB,OAAlB,EAChBuB,EAAYC,GAAS9hC,GAC3B,CAAI6hC,CACOvB,IAAQr5B,OAAQuwB,EAAKpiB,CAAtB,EAELoqB,aAAWliB,KAAK,CAACka,EAAKoK,GAAWlnB,KAAKxE,UAAUoqB,CAAf,EAAyBlrB,CAA1B,CAAhB,CAApB,CAED,CAED,YAAsBoiB,EAAeuK,EAAgB3sB,EAAmC,CzLlMxF,MyLmMOpV,QAAOygC,GAAUsB,oBAAW/hC,OAAX+hC,OAAmB,MAApB,EAChBC,EAAcC,GAAWjiC,GAC3B,MAACgiC,GAGEA,EAAYD,iBAAW96B,OAAQuwB,EAAKpiB,CAAzB,EAFV,CAACoiB,CAAD,CAGR,CAED,KAAMsK,IAEF,CACHI,UAAW,CAACj7B,EAAQuwB,EAAKpiB,IAAQ,CAEhC+sB,CADkBC,EAAa5K,EAAKvwB,iBAAQ86B,UAAW3sB,CAAzB,EACpB3K,QAAQlS,CAAK8pC,KAAc9pC,EAAG0O,iBAAQq5B,QAASlrB,CAArB,CAApC,CAHE,EAKHktB,wBAAyB,CAACr7B,EAAQuwB,EAAKpiB,IAAQ,CAC9C,KAAMkrB,GAAUlrB,EAAIyqB,YAAc,GAAM54B,iBAAQs7B,aAAet7B,iBAAQu7B,cACzDhL,KAAK8I,EAASlrB,CAAf,CAPX,EASHqtB,gBAAiB,CAACx7B,EAAQuwB,EAAKpiB,IAAQ,CzLtNxC,QyLuNO,SAAMrc,KAAKkO,oBAAQw4B,WAARx4B,OAAoB,GAC/BmO,KAAIyqB,UAAe9mC,uBAAG2pC,SAAH3pC,OAAa,GAAI,CACzBy+B,KAAKz+B,EAAEunC,QAASlrB,CAAjB,EACb,MACA,CAEYoiB,KAAKvwB,iBAAQkU,QAAS/F,CAAvB,CAhBX,EAkBHutB,uBAAwB,CAAC17B,EAAQuwB,EAAKpiB,IAAQ,CzL/N/C,UyLgOQkrB,QAAUr5B,oBAAQw4B,WAARx4B,cAAmBmO,EAAIzE,QAAQ1J,uBAAQw4B,WAARx4B,cAAkBgC,SAAlBhC,OAA4B,CAAxC,GACrBuwB,KAAK8I,EAASlrB,CAAf,CACb,CArBE,EAwBE6sB,GAEF,CACHS,OAAQ,CAACz7B,EAAQuwB,EAAKpiB,IAAQ,CzLxO/B,MyLyOSA,SAAIyqB,YAAc,EAAK54B,qBAAQy7B,SAARz7B,OAAkB,GAAK,CAACuwB,CAAD,EAAQ,EAF3D,EAIHoL,MAAO,CAAC37B,EAAQuwB,EAAKpiB,IAAQ,CzL3O9B,MyL4OS,UAAI9L,OAAM8L,EAAI+qB,UAAUl5B,oBAAQ27B,QAAR37B,OAAiB,CAA/B,CAAV,EAA6C4wB,KAAKL,CAAlD,CALL,EAOHqL,YAAa,CAAC57B,EAAQuwB,EAAKpiB,IAAQ,CzL9OpC,QyL+OMwtB,MAAQ37B,oBAAQ27B,QAAR37B,OAAiB,EACzBmO,SAAIyqB,YAAc54B,EAAO67B,cAC5BF,IAAS37B,KAAO87B,cAAP97B,OAAsB,GAEzB,GAAIqC,OAAMs5B,CAAV,EAAiB/K,KAAKL,CAAtB,CAZL,EAcHwL,iBAAkB,CAAC/7B,EAAQuwB,EAAKpiB,IAAQ,CzLrPzC,MyLsPS,UAAI9L,OAAM8L,EAAI+qB,UAAUl5B,oBAAQ27B,QAAR37B,OAAiB,CAA/B,CAAV,EAA6C4wB,KAAKL,CAAlD,EACLxvB,IAAIzP,GAAK,CACTA,EAAE,GAAK6c,EAAIzE,QAAQ,EAAZ,EACPpY,EAAE,GACFA,EAAE,GAAK6c,EAAIzE,QAAQ,EAAZ,CAHE,CADJ,CAfL,EAsBHsyB,YAAa,CAACh8B,EAAQuwB,EAAKpiB,IAAQ,CAElC,KAAMwtB,GAAQxP,CADAhe,CAAIsqB,eAAexJ,OAAOsB,EAAI,GAAK,IAAK,EAAGA,EAAI,GAAK,GAApD,EACQvwB,EAAOi8B,YAAcj8B,EAAOk8B,YAAcl8B,EAAOm8B,YAChE,UAAI95B,OAAMs5B,CAAV,EAAiB/K,KAAKL,CAAtB,CAzBL,EA2BH6L,mBAAoB,CAACp8B,EAAQuwB,EAAKpiB,IAAQ,CzLlQ3C,MyLmQQklB,QAAS3wB,KAAKiE,IAAI,EAAG3G,EAAOq8B,YAAnB,EACTlQ,EAAQhe,EAAIsqB,eAAexJ,OAAOsB,EAAI,GAAK8C,EAAQ,EAAG9C,EAAI,GAAK8C,CAAvD,EACRsI,EAAQj5B,KAAKiE,IAAI,EAAGjE,KAAK2tB,KAAerwB,SAAOs8B,eAAPt8B,OAAuB,IAAMA,EAAOu8B,oBAAxD,CAAZ,EACP,UAAIl6B,OAAMs5B,CAAV,EAAiB/K,KAAKL,CAAtB,CA/BL,EAiCHiM,cAAe,CAACC,EAASlM,EAAKpiB,IACtB,CAAC,GAAG,GAAI9L,OAAM,EAAV,CAAJ,EAAmBtB,IAAI,CAAC5N,EAAGzB,IAAM,CACjCgB,QAAIgQ,KAAKC,MAAMjR,EAAI,CAAf,EAAoB,EAAI,EAAIyc,EAAIzE,QAAQ,CAAZ,EAAiB6mB,EAAI,GACrDr+B,EAAIwQ,KAAKiE,IAAIwH,EAAIwqB,SAAUN,GAAQlJ,GAAM,EAAG,GAAIz8B,CAAR,EAApC,EACJF,EAAIkQ,KAAKC,MAAMjR,EAAI,CAAf,EAAoB,EAAI,EAAIyc,EAAIzE,QAAQ,CAAZ,EAAiB6mB,EAAI,GACpD,OAAC79B,EAAGR,EAAGM,CAAP,EAJD,EAORyoC,UAAW,CAACj7B,EAAQuwB,EAAKpiB,IACjBgtB,GAAa5K,EAAKvwB,iBAAQ08B,MAAOvuB,CAArB,EAA0BwuB,QAAQrrC,CAAK,EAClD6pC,GAAa7pC,EAAG0O,iBAAQu6B,MAAOpsB,CAAnB,CADb,EAIRyuB,cAAe,CAAC58B,EAAQuwB,EAAKpiB,IAAQ,CzLrRtC,YyLsRE,KAAMjc,GAAIic,EAAIzE,QAAQ1J,oBAAQu5B,SAARv5B,OAAkB,CAA9B,EAAmCmO,EAAIzE,QAAQ1J,oBAAQu5B,SAARv5B,OAAkB,CAA9B,QAA2Cu5B,gBAAU,wBAAcsD,kBAAY,GACrHC,UAAUvM,EAAKr+B,CAAN,CAhDd,EAkDH6qC,YAAa,CAACN,EAASlM,EAAKpiB,IAAQ,CAC7BwtB,QAAQ,EAAIxtB,EAAIzE,QAAQ,CAAZ,EACX,OAAC,GAAG,GAAIrH,OAAMs5B,CAAV,CAAJ,EAAsB56B,IAAI,IAAM,CACtCwvB,EAAI,GAAKpiB,EAAIzE,QAAQ,EAAZ,EACT,EAAIyE,EAAIzE,QAAQ,EAAZ,EACJ6mB,EAAI,GAAKpiB,EAAIzE,QAAQ,EAAZ,CAH6B,CAAhC,CApDL,EA0DHszB,KAAM,CAACh9B,EAAQuwB,EAAKpiB,IAAQ,CACrBwtB,QAAQ,EAAIxtB,EAAIzE,QAAQyE,EAAIzE,QAAQyE,EAAI+qB,UAAUl5B,iBAAQ27B,KAAtB,CAAZ,CAAZ,EACX,OAAC,GAAG,GAAIt5B,OAAMs5B,CAAV,CAAJ,EAAsB56B,IAAI,IAAM,CACtCwvB,EAAI,GAAKpiB,EAAIzE,QAAQ,EAAZ,EACTyE,EAAIzE,QAAQ,GAAZ,EACA6mB,EAAI,GAAKpiB,EAAIzE,QAAQ,EAAZ,CAH6B,CAAhC,CA5DL,EAkEHuzB,UAAW,CAACj9B,EAAQuwB,EAAKpiB,IAAQ,CAC1BwtB,QAAQxtB,EAAIzE,QAAQ,EAAIyE,EAAIzE,QAAQyE,EAAI+qB,UAAUl5B,iBAAQ27B,KAAtB,CAAZ,CAAhB,EACP,OAAC,GAAG,GAAIt5B,OAAMs5B,CAAV,CAAJ,EAAsB56B,IAAI,IAAM,CACtCwvB,EAAI,GAAKpiB,EAAIzE,QAAQ,EAAZ,EACTyE,EAAIzE,QAAQ,GAAZ,EACA6mB,EAAI,GAAKpiB,EAAIzE,QAAQ,EAAZ,CAH6B,CAAhC,CApEL,EA0EHwzB,UAAW,CAACT,EAASlM,EAAKpiB,IAAQ,CAC3Bjc,QAAIwQ,KAAKiE,IAAIwH,EAAIwqB,SAAUN,GAAQlJ,GAAM,EAAG,GAAIoB,EAAI,EAAZ,EAApC,EACHuM,UAAUvM,EAAKr+B,CAAN,CA5Ed,EA8EHirC,wBAAyB,CAACV,EAASlM,EAAKpiB,IAAQ,CACzCjc,QAAIwQ,KAAKiE,IAAIwH,EAAIwqB,SAAUN,GAAQlJ,GAAM,EAAG,GAAIoB,EAAI,EAAZ,EAApC,EACV,MAAOuM,IAAUvM,EAAKpiB,EAAIzE,QAAQxX,EAAI,CAAhB,CAAN,CAhFd,EAkFHkrC,wBAAyB,CAACX,EAASlM,EAAKpiB,IAAQ,CACzCjc,QAAIwQ,KAAKiE,IAAIwH,EAAIwqB,SAAUN,GAAQlJ,GAAM,EAAG,GAAIoB,EAAI,EAAZ,EAApC,EACHuM,UAAUvM,EAAKr+B,CAAN,CApFd,EAsFHmrC,QAAS,CAACZ,EAASlM,EAAKpiB,IAChB,CAAC,CACPoiB,EAAI,GAAK,EAAIpiB,EAAIzE,QAAQ,CAAZ,EACb6mB,EAAI,GACJA,EAAI,GAAK,EAAIpiB,EAAIzE,QAAQ,CAAZ,CAHN,CAAD,EAMR4zB,UAAW,CAACt9B,EAAQuwB,EAAKpiB,IAAQ,CzLpUlC,QyLqUE,GAAIA,EAAIzE,QAAS1J,MAAOy7B,SAAPz7B,OAAiB,GAAK,EAAnC,IAA2C,EAAG,CAC3C9N,QAAIic,EAAIzE,QAAQyE,EAAIzE,QAAQ,GAAZ,EAAuB,CAAnC,EACNxX,KAAIic,EAAIwqB,UAAYxqB,EAAIzE,6BAAiB+xB,gBAAU,GAAK,CAApC,GAA0C,EAAG,CAC9D/oC,QAAIyb,EAAIzE,QAAQ,EAAZ,EAAkB6mB,EAAI,GAC1B/9B,EAAI2b,EAAIzE,QAAQ,EAAZ,EAAkB6mB,EAAI,GACzB,OAAC,CAAC79B,EAAGR,EAAGM,CAAP,CAAD,CACP,CACD,CACD,MAAO,EAtGL,EAwGH+qC,KAAM,CAACd,EAASlM,IACR,CAACA,CAAD,EAERiN,MAAO,CAACx9B,EAAQuwB,EAAKpiB,IAAQ,CzLlV9B,UyLmVQjc,QAAIic,EAAIzE,QAAiB+zB,sCAAW,GAAMz9B,qBAAQ09B,aAAR19B,OAAsB,EAA5D,EAAmEA,qBAAQ29B,gBAAR39B,OAAyB,GAC/F88B,UAAUvM,EAAKr+B,CAAN,CA7Gd,EA+GH0rC,aAAc,CAAC59B,EAAQuwB,EAAKpiB,IAAQ,CzLtVrC,UyLuVE,KAAMjc,GAAIic,EAAIzE,QAAQyE,EAAIzE,QAAiB+zB,sCAAW,GAAMz9B,qBAAQ09B,aAAR19B,OAAsB,EAA5D,EAAmEA,qBAAQ29B,gBAAR39B,OAAyB,EAAxG,EACH88B,UAAUvM,EAAKr+B,CAAN,CAjHd,EAmHH2rC,kBAAmB,CAAC79B,EAAQuwB,EAAKpiB,IAAQ,CzL1V1C,YyL2VQjc,QAAIic,EAAIzE,QAAQyE,EAAIzE,QAAQyE,EAAIzE,6BAAiB+zB,iBAAW,wBAAcC,oBAAc,EAA5D,EAA2EC,4CAAiB,EAAxG,EAA+G39B,qBAAQ29B,gBAAR39B,OAAyB,EAApJ,EACH88B,UAAUvM,EAAKr+B,CAAN,CArHd,EAuHH4rC,gBAAiB,CAACrB,EAASlM,EAAKpiB,IAAQ,CACvC,KAAMjc,GAAIic,EAAIzE,QAAQ6mB,EAAI,GAAK,EAArB,EACHuM,UAAUvM,EAAKr+B,CAAN,CAzHd,EA2HH6rC,oBAAqB,CAACtB,EAASlM,IAAQ,CACtC,KAAMr+B,GAAImmC,GAAQlJ,GAAM,EAAG,GAAIoB,EAAI,EAAZ,GAChBuM,UAAUvM,EAAKr+B,CAAN,CA7Hd,EA+HH8rC,MAAO,CAACvB,EAASlM,EAAKpiB,IAAQ,CAC7B,KAAMjc,GAAIic,EAAIzE,QAAQ6mB,EAAI,GAAK,EAArB,EACHuM,UAAUvM,EAAKr+B,CAAN,CAjId,EAmIHw9B,OAAQ,CAAC+M,EAASlM,EAAKpiB,IACf,CAAC,CACPoiB,EAAI,GAAKpiB,EAAIzE,QAAQ,EAAZ,EACT6mB,EAAI,GACJA,EAAI,GAAKpiB,EAAIzE,QAAQ,EAAZ,CAHF,CAAD,EAMRu0B,2BAA4B,CAACj+B,EAAQuwB,IAAQ,CzLjX9C,QyLkXE,KAAMjiB,GAAS+pB,GAAQlJ,GAAM,EAAG,GAAIoB,EAAI,EAAZ,GACtB3pB,EAAM0H,EAAUtO,qBAAQy5B,gBAARz5B,OAAyB,MACzC2G,EAAM2H,EAAUtO,qBAAQ05B,gBAAR15B,OAAyBuvB,KACvCgB,SAAI,GAAK3pB,GAAO2pB,EAAI,GAAK5pB,EAAO,CAAC4pB,CAAD,EAAQ,EA9I9C,EAgJH2N,WAAY,CAACl+B,EAAQuwB,EAAKpiB,IAAQ,CzLvXnC,MyLwXMA,SAAIzE,QAAQ1J,KAAOy7B,SAAPz7B,OAAiB,CAA7B,IAAoC,EAChC,CAAC,CACPuwB,EAAI,GAAKpiB,EAAIzE,QAAQ,EAAZ,EACTyE,EAAIzE,QAAQ,GAAZ,EACA6mB,EAAI,GAAKpiB,EAAIzE,QAAQ,EAAZ,CAHF,CAAD,EAMD,EACP,CAzJE,EA6JJ,YAAyB6mB,EAAe6I,EAAkBjrB,EAAuB,CzLpYjF,MyLqYK+sB,MAAY,CAAC3K,CAAD,EAChB,SAAW4N,KAAY/E,GAElB,CADegF,GAAmB5E,GAAU2E,oBAAUplC,OAAVolC,OAAkB,MAAnB,IAEnCjD,KAAUyB,QAAQpM,GAC7B6N,GAAmB5E,GAAU2E,EAASplC,IAAV,GAAiBolC,EAAU5N,EAAKpiB,CAA5D,CADW,GAIb,SAAWoiB,KAAO2K,GACjB/sB,EAAIoqB,WAAWliB,KAAK,CAACka,EAAK,CAAN,CAApB,CAED,CAED,KAAM6N,IAEF,CACHzC,MAAO,CAAC,CAAEA,SAASpL,EAAKpiB,IAChB,GAAI9L,OAAM8L,EAAI+qB,UAAUyC,UAAS,CAAvB,CAAV,EAAqC/K,KAAKL,CAA1C,EAER8N,qBAAsB,CAAC,CAAE1C,SAASpL,EAAKpiB,IAC/B,GAAI9L,OAAM8L,EAAI+qB,UAAUyC,UAAS,CAAvB,CAAV,EAAqC/K,KAAKL,CAA1C,EACLxvB,IAAIzP,CAAK,GACTA,EAAE,GAAK6c,EAAIzE,QAAQ,EAAZ,EACPpY,EAAE,GACFA,EAAE,GAAK6c,EAAIzE,QAAQ,EAAZ,CAHE,CADJ,EAOR40B,iBAAkB,CAAC,GAAI/N,IACf,CAACA,CAAD,EAERgO,aAAc,CAAC,CAAEjwB,UAAUiiB,EAAKpiB,IACxB2uB,GAAUvM,EAAKiO,GAAalwB,EAAQH,CAAT,CAAlB,EAEjB+uB,UAAW,CAAC,GAAI3M,EAAKpiB,IAAQ,CACtBjc,QAAIwQ,KAAKiE,IAAIwH,EAAIwqB,SAAUN,GAAQlJ,GAAM,EAAG,GAAIoB,EAAI,EAAZ,EAApC,EACHuM,UAAUvM,EAAKr+B,CAAN,CApBd,EAsBHusC,UAAW,CAAC,GAAIlO,EAAKpiB,IACb,CAAC,CACPoiB,EAAI,GAAKpiB,EAAIzE,QAAQ,EAAZ,EACT6mB,EAAI,GACJA,EAAI,GAAKpiB,EAAIzE,QAAQ,EAAZ,CAHF,CAAD,EAMRg1B,kBAAmB,CAAC,CAAEnC,uBAAsBF,eAAcC,gBAAgB/L,EAAKpiB,IAAQ,CAChFklB,QAAS3wB,KAAKiE,IAAI,EAAG01B,CAAZ,EACTlQ,EAAQhe,EAAIsqB,eAAexJ,OAAOsB,EAAI,GAAK8C,EAAQ,EAAG9C,EAAI,GAAK8C,CAAvD,EACRsI,EAAQj5B,KAAKiE,IAAI,EAAGjE,KAAK2tB,KAAeiM,cAAgB,IAAMC,CAA1C,CAAZ,EACP,UAAIl6B,OAAMs5B,CAAV,EAAiB/K,KAAKL,CAAtB,CAjCL,EAmCHoO,sBAAuB,CAAC,CAAE1C,cAAaC,cAAaC,eAAe5L,EAAKpiB,IAAQ,CAEzEwtB,QAAQxP,CADAhe,CAAIsqB,eAAexJ,OAAOsB,EAAI,GAAK,IAAK,EAAGA,EAAI,GAAK,GAApD,EACQ0L,EAAcC,EAAcC,EAC3C,UAAI95B,OAAMs5B,CAAV,EAAiB/K,KAAKL,CAAtB,CAtCL,EAwCHqO,cAAe,CAAC,CAAEC,YAAWC,YAAYvO,EAAKpiB,IACtC,CAAC,CACPoiB,EAAI,GAAKpiB,EAAI+qB,UAAU2F,CAAd,EACTtO,EAAI,GAAKpiB,EAAI+qB,UAAU4F,CAAd,EACTvO,EAAI,GAAKpiB,EAAI+qB,UAAU2F,CAAd,CAHF,CAAD,EAMRE,cAAe,CAAC,CAAEtD,UAAUlL,EAAKpiB,IACzBA,EAAIyqB,UAAc,eAAe,GAAK,CAACrI,CAAD,EAAQ,EAhDnD,ECzYwB9kB,cAAY8C,EAAgBuoB,EAAuB,CACxEl0B,QAAS4vB,GAAgB1E,OAAOgJ,EAAQ7zB,IAA/B,EACTsN,EAAS2a,GAAgBC,SAASnP,EAAUuL,sBAAY9b,CAAtB,CAAzB,EACT0gB,EAAQ,GAAIiD,IAAYxsB,EAAQ2N,CAAxB,EAERwkB,EAAK,CAAC+B,EAAQhH,OAAO,GAAK,IAC1BkP,EAAK,CAAClI,EAAQhH,OAAO,GAAK,IAC1BhrB,EAAOyJ,EAAIzJ,KACjB,OAASpS,GAAI,EAAGA,EAAI,IAAKA,GAAK,EAC7B,OAASR,GAAI,EAAGA,EAAI,IAAKA,GAAK,EAAG,CAC1BR,QAAIgB,EAAI,EAAIR,EAAI,EAAI,IACpB+lC,EAAUlD,MAAM+B,EAAQ5J,MACxBiI,EAAU6J,MAAMlI,EAAQ5J,MACxB5mB,EAAe2oB,UAAOgJ,EAAI9C,EAAI,CAArB,EAA0B,GAAK,IAC9CrwB,EAAKpT,GAAK4U,EACVxB,EAAKpT,EAAI,GAAK4U,EACdxB,EAAKpT,EAAI,GAAK4U,EACdxB,EAAKpT,EAAI,GAAK,GACd,CAEF,CCtBM,KAAMutC,IAAqB,CAAC,CAAEj8B,QAAO8B,OAAMo6B,QAAOrpC,aAA4B,C3LTrF,M2LUO,MAAEX,UAAW+uB,GAAnB,EACM,CAAEjC,WAAYqF,GAApB,EACM,CAACpkB,EAAMk8B,GAAWl0B,EAASm0B,GAAD,GAC1B,CAAClS,EAAOmS,GAAYp0B,EAAS,CAAD,EAC5B,CAACkO,EAASmmB,GAAcr0B,EAAS,EAAD,EAChC,CAACs0B,EAASC,GAAcv0B,EAAqDjR,MAA7C,EAChC,CAAEgpB,eAAgByc,GAAxB,EACM3P,EAAS1lB,GAAyB,CAAC,EAAG,CAAJ,CAAnB,EACfgK,EAAMhK,GAAO,CAAD,EACZs1B,EAAgBt1B,KAEhBohB,EAAWxP,YAAUuL,YAAYvkB,EAAMG,IAAI,GAAIC,GAAK,MAAC,YAAa,UAAd,CAAT,CAAV,CAAtB,EACXqI,EAAQgI,KAAKxE,UAAU,CAACnK,EAAM0mB,CAAP,CAAf,EACRzyB,EAAe+L,KAAK/L,OAAL+L,cAAW/B,QAAQ,cAAe,IACjD48B,EAAgB5mC,IAAS,eAAiBA,IAAS,UAEnD,CAAE8T,SAAQoB,UAAW2xB,GAAU,CACpCpzB,MAAO,CACC,OAAC,IAAM4H,EAAI/J,QAAS,IAAM+J,EAAI/J,OAA9B,CAF4B,OAI9BoC,MAAK8B,EAAK,CACf,KAAMuoB,GAAU,CAAEtL,WAAUxI,cAAa8M,OAAQA,EAAOzlB,QAAS6iB,QAAOjqB,OAAMmR,IAAKA,EAAI/J,QAASxU,UAASmsB,UAAS9vB,EAAGinB,GAC/G0mB,SAAS/6B,EAAMyJ,EAAKuoB,CAAZ,EACV1iB,EAAI/J,UAAY,GACnBc,cAAau0B,EAAcr1B,OAAf,EACEA,UAAUe,WAAW,IAAM,CACxCgJ,EAAI/J,QAAU,EACR,KACJ,GAH+B,EATA,OAe9BqC,QAAOc,EAAIC,EAAI,CACpBqiB,EAAOzlB,QAAQ,GAAKylB,EAAOzlB,QAAQ,GAAKmD,EAAK,IAC7CsiB,EAAOzlB,QAAQ,GAAKylB,EAAOzlB,QAAQ,GAAKoD,EAAK,IAC7CtC,aAAau0B,EAAcr1B,OAAf,EACRA,UAAUs1B,EAAgB,EAAI,EAC5B,GApB6B,OAsB9BhzB,SAAQja,EAAGR,EAAG,CACnB,KAAM4kC,GAAU,CAAEtL,WAAUxI,cAAa8M,OAAQA,EAAOzlB,QAAS6iB,QAAOjqB,OAAYmR,IAAK,EAAGve,UAASmsB,UAAS9vB,EAAGinB,GAC3GiK,EAAQ,KAAMoJ,IAAS1nB,EAAMpC,KAAKC,MAAMjQ,EAAI,GAAf,EAAqBgQ,KAAKC,MAAMzQ,EAAI,GAAf,EAAqB4kC,CAAjD,EAC5B0I,EAAWpc,CAAD,CAzByB,EA2BpCxW,SAAU,CACT4yB,EAAWxlC,MAAD,CACV,GACC,CAACnE,EAAS4V,EAAOyhB,EAAOjqB,EAAMkW,EAAS6J,EAAahB,CAApD,CA9BiC,EAgCpC/oB,GAAU,IAAM,CACf,CAAIimC,EACC70B,WAAUs1B,EAAgB,EAAI,EAC5B,IACN,EACC,CAAC9pC,EAAS4V,EAAOyhB,EAAOjqB,EAAMkW,EAAS+lB,EAAOlc,EAAahB,CAA3D,CALM,EAOH8d,QAAc,CAACC,EAAqB,CACzCA,EAAWr9B,KAAKiE,IAAI,EAAGjE,KAAKk1B,MAAMmI,CAAX,CAAZ,EACXjQ,EAAOzlB,QAAQ,GAAKylB,EAAOzlB,QAAQ,GAAK6iB,EAAQ6S,EAChDjQ,EAAOzlB,QAAQ,GAAKylB,EAAOzlB,QAAQ,GAAK6iB,EAAQ6S,EAChDV,EAASU,CAAD,GAGF,aACN,mBAAK,MAAM,4BACTR,aAAWhmC,EAAC,GAAD,CAAK,MAAOgmC,EAAQnc,MAAiB,MAAM,aADxD,EAEC7pB,EAAC,GAAD,CAAK,KAAK,OAAO,QAASrE,EAAO,UAAD,EAC/B,QAAS,IAAM4qC,EAAY5S,EAAQ,CAAT,EAH5B,EAIC3zB,EAAC,GAAD,CAAK,KAAK,OAAO,QAASrE,EAAOwN,KAAKk1B,MAAM1K,CAAX,GAAqB,EAAI,gBAAkB,SAA5C,EAC/B,SAAUxqB,KAAKk1B,MAAM1K,CAAX,GAAqB,EAC/B,QAAS,IAAM4S,EAAY5S,EAAQ,CAAT,EAN5B,EAOEyS,GAAiB/0B,gBACjBrR,EAAC,GAAD,CAAS,KAAK,QACb,kBAAK,MAAM,gBAAgB,QAASxH,CAAKA,IAAEyY,gBAA3C,EACC,oBAAOtV,WAAO,GAAD,EADd,EAECqE,EAAC,GAAD,CAAa,MAAO4f,EAAS,SAAUmmB,EAFxC,KAFgB,EAOjB/lC,EAAC,GAAD,CAAK,KAAK,OAAO,QAASrE,EAAO,mBAAD,EAC/B,QAAS,IAAMiqC,EAAQC,IAAD,EARN,GAPnB,KAkBCG,kBAASxR,eAAgB/zB,QAAaT,SAAK,MAAM,8BAAX,SACtCA,EAAC,GAAD,CAAK,MAAM,aAAa,MAAO+J,OAAOiF,QAAQg3B,CAAf,EAC7Bz2B,OAAO,CAAC,CAAC3W,KAAOA,IAAM,OADO,EAE7B4O,IAAI,CAAC,CAAC5O,EAAGsB,KAAQ,GAAEtB,EAAE,GAAG6tC,YAAL,MAAwBvsC,EAAa+iB,QAAQ,CAAtB,GAFb,EAEyChU,KAAK,IAF9C,EAA/B,EADsC,EAKvCjJ,YAAQ,IAAKsT,EAAQ,MAAM,MAAM,OAAO,MAxBlC,GAAP,CA0BA,EC1FYozB,GAAmB,CAAC,CAAEn7B,OAAMjP,UAASqpC,WAA0B,CACrE,MAAEhqC,UAAW+uB,GAAnB,EACM,CAACiJ,EAAOmS,GAAYp0B,EAAS,CAAD,EAC5B,CAAChI,EAAMk8B,GAAWl0B,EAASm0B,GAAD,GAE1B3zB,EAAQgI,KAAKxE,UAAUnK,CAAf,EAER,CAAE+H,SAAQoB,UAAW2xB,GAAU,CACpCpzB,MAAO,CACC,OAAC0gB,EAAQ,GAAIA,EAAQ,EAArB,CAF4B,OAI9BzgB,MAAK8B,EAAK,CACfusB,GAAUh2B,EAAMyJ,EAAK,CAAEtL,OAAMpN,UAAS2W,KAAM,CAAC0gB,EAAQ,GAAI,IAAKA,EAAQ,EAA1B,EAAnC,CACT,CACC,GAACr3B,EAAS4V,EAAOxI,CAAjB,CAPiC,EASpChK,UAAU,IAAM,CACf,CAAIimC,EACG,GACN,EACC,CAACrpC,EAAS4V,EAAOyhB,EAAOjqB,EAAMi8B,CAA9B,CAJM,EAMFt0B,MACN,mBAAK,MAAM,4BAAX,UACCrR,EAAC,GAAD,CAAK,KAAK,OAAO,QAASrE,EAAO,UAAD,EAC/B,QAAS,IAAMmqC,EAAS38B,KAAKkE,IAAI,GAAIsmB,EAAQ,CAArB,CAAD,EAFzB,EAGC3zB,EAAC,GAAD,CAAK,KAAK,OAAO,QAASrE,EAAO,SAAD,EAC/B,QAAS,IAAMmqC,EAAS38B,KAAKiE,IAAI,EAAGumB,EAAQ,CAApB,CAAD,EAJzB,EAKC3zB,EAAC,GAAD,CAAK,KAAK,OAAO,QAASrE,EAAO,mBAAD,EAC/B,QAAS,IAAMiqC,EAAQC,IAAD,EANxB,KAQA7lC,YAAQ,IAAKsT,EAAQ,MAAM,KAAK,OAAO,KATjC,GAAP,CAWA,ECjCYqzB,GAAyB,CAAC,CAAEp7B,OAAMo6B,QAAOrpC,aAA4B,C7LRlF,Q6LSO,MAAEX,UAAW+uB,GAAnB,EACM,CAAEjC,WAAYqF,GAApB,EACM,CAACpkB,EAAMk8B,GAAWl0B,EAASm0B,GAAD,GAC1B,CAACe,EAAYC,GAAiBn1B,EAAS,EAAD,EACtC,CAACs0B,EAASC,GAAcv0B,EAA6BjR,MAArB,EAChC81B,EAAS1lB,GAAO,CAAD,EACfi2B,EAAiBj2B,GAA2BpQ,MAArB,EACvByR,EAAQgI,KAAKxE,UAAU,CAACnK,CAAD,CAAf,EAER0H,EAAO1H,uBAAMqnB,QAANrnB,cAAawJ,SAAbxJ,OAAuB,IAC9B,CAAE+H,SAAQoB,UAAW2xB,GAAU,CACpCpzB,MAAO,CACC,OAACA,EAAMA,CAAP,CAF4B,OAI9BC,MAAK8B,EAAK,CACf,KAAMuoB,GAAU,CAAEhH,OAAQA,EAAOzlB,QAASgE,MAAOE,EAAIF,MAAOpL,OAAMpN,UAASmsB,WACrEse,SAAgBx7B,EAAMyJ,EAAKuoB,CAAZ,CANc,OAQ9BpqB,QAAOc,EAAI,CAChBsiB,EAAOzlB,SAAWmD,EAAKhB,EACjB,GAV6B,OAY9BG,SAAQja,EAAGR,EAAG,C7L/BtB,Q6LgCG,KAAMquC,GAAS79B,KAAKC,MAAMjQ,EAAI8Z,EAAOsjB,EAAOzlB,OAA7B,EACTm2B,EAASh0B,EAAO9J,KAAKiE,IAAI,EAAGjE,KAAK2tB,KAAKn+B,EAAIsa,CAAd,CAAZ,EAAoC1H,wBAAMqnB,QAANrnB,cAAa4tB,QAAb5tB,OAAsB,GACpE,OAAIy7B,OAAYC,GAAlB,CAfyB,EAiBpC5zB,SAAU,CACT4yB,EAAWxlC,MAAD,CACV,GACC,CAACnE,EAAS4V,EAAOxI,EAAM+e,CAAvB,CApBiC,EAsBpC/oB,UAAU,IAAM,CACXonC,EAAeh2B,SAClBo2B,cAAcJ,EAAeh2B,OAAhB,EAEV60B,GACG,KACFiB,GACY91B,WAAUq2B,YAAY,IAAM,CAC1C5Q,EAAOzlB,SAAW,EACZ,KACJ,GAHiC,GAKrC,EACC,CAACxU,EAAS4V,EAAOxI,EAAM+e,EAASkd,EAAOiB,CAAvC,CAbM,EAeFv1B,MACN,mBAAK,MAAM,4BACT20B,aAAWhmC,EAAC,GAAD,CAAK,MAAOgmC,EAAS,MAAM,aADxC,EAEChmC,EAAC,GAAD,CAAS,KAAK,OAAO,QAASrE,EAAO,kBAAD,EAApC,SACCqE,EAAC,GAAD,CAAK,KAAM4mC,EAAa,cAAgB,SAAU,MAAOjrC,EAAO,qBAAD,EAAyB,QAAS,IAAMkrC,EAAc,CAACD,CAAF,EAApH,EAHF,EAKC5mC,EAAC,GAAD,CAAK,KAAK,OAAO,QAASrE,EAAO,mBAAD,EAC/B,QAAS,IAAMiqC,EAAQC,IAAD,EANxB,KAQA7lC,YAAQ,IAAKsT,EAAQ,MAAOL,EAAM,OAAQA,EATpC,GAAP,CAWA,EC3DYm0B,GAAe,CAAC,CAAE77B,OAAMo6B,QAAOrpC,aAA4B,CACjE,MAAEX,UAAW+uB,GAAnB,EACM,CAAChhB,EAAMk8B,GAAWl0B,EAASm0B,GAAD,GAC1B,CAAClS,EAAOmS,GAAYp0B,EAAS,CAAD,EAC5B6kB,EAAS1lB,GAAyB,CAAC,EAAG,CAAJ,CAAnB,EACfqB,EAAQgI,KAAKxE,UAAU,CAACnK,CAAD,CAAf,EAER,CAAE+H,SAAQoB,UAAW2xB,GAAU,CACpCpzB,MAAO,CACC,OAAC,IAAK,GAAN,CAF4B,OAI9BC,MAAK8B,EAAK,CACf,KAAMuoB,GAAU,CAAEhH,OAAQA,EAAOzlB,QAAS6iB,QAAOjqB,OAAMpN,WAC3CiP,KAAMyJ,EAAKuoB,CAAZ,CANwB,OAQ9BpqB,QAAOc,EAAIC,EAAI,CACpBqiB,EAAOzlB,QAAQ,GAAKylB,EAAOzlB,QAAQ,GAAKmD,EAAK,IAC7CsiB,EAAOzlB,QAAQ,GAAKylB,EAAOzlB,QAAQ,GAAKoD,EAAK,IACvC,GACN,GACC,CAAC5X,EAAS4V,EAAOyhB,EAAOjqB,CAAxB,CAbiC,EAepChK,GAAU,IAAM,CACf,CAAIimC,EACG,GACN,EACC,CAACrpC,EAAS4V,EAAOyhB,EAAOjqB,EAAMi8B,CAA9B,CAJM,EAMHY,QAAc,CAACC,EAAqB,CACzCjQ,EAAOzlB,QAAQ,GAAKylB,EAAOzlB,QAAQ,GAAK6iB,EAAQ6S,EAChDjQ,EAAOzlB,QAAQ,GAAKylB,EAAOzlB,QAAQ,GAAK6iB,EAAQ6S,EAChDV,EAASU,CAAD,GAGF,aACN,mBAAK,MAAM,4BAAX,UACCxmC,EAAC,GAAD,CAAK,KAAK,OAAO,QAASrE,EAAO,UAAD,EAC/B,QAAS,IAAM4qC,EAAY5S,EAAQ,GAAT,EAF5B,EAGC3zB,EAAC,GAAD,CAAK,KAAK,OAAO,QAASrE,EAAO,SAAD,EAC/B,QAAS,IAAM4qC,EAAY5S,EAAQ,GAAT,EAJ5B,EAKC3zB,EAAC,GAAD,CAAK,KAAK,OAAO,QAASrE,EAAO,mBAAD,EAC/B,QAAS,IAAMiqC,EAAQC,IAAD,EANxB,KAQA7lC,YAAQ,IAAKsT,EAAQ,MAAM,MAAM,OAAO,MATlC,GAAP,CAWA,EC5CY+zB,GAAuB,CAAC,CAAE97B,OAAMo6B,QAAOrpC,aAA4B,C/LThF,Q+LUO,MAAEX,UAAW+uB,GAAnB,EACM,CAAEjC,WAAYqF,GAApB,EACM,CAACpkB,EAAMk8B,GAAWl0B,EAASm0B,GAAD,GAC1B,CAAChc,EAAOyd,GAAY51B,EAAS,kBAAD,EAC5B,CAAC2pB,EAAYkM,GAAiB71B,EAAS,EAAD,EACtC,CAAC0pB,EAAYoM,GAAiB91B,EAAS,EAAD,EACtC,CAACk1B,EAAYC,GAAiBn1B,EAAS,EAAD,EACtC,CAACs0B,EAASC,GAAcv0B,EAA6BjR,MAArB,EAChC81B,EAAS1lB,GAAO,CAAD,EACfi2B,EAAiBj2B,GAA2BpQ,MAArB,EACvByR,EAAQgI,KAAKxE,UAAU,CAACnK,EAAM8vB,EAAYD,CAAnB,CAAf,EAERnoB,EAAO1H,uBAAMqnB,QAANrnB,cAAawJ,SAAbxJ,OAAuB,IAC9B,CAAE+H,SAAQoB,UAAW2xB,GAAU,CACpCpzB,MAAO,CACC,OAACA,EAAMA,CAAP,CAF4B,OAI9BC,MAAK8B,EAAK,CACf,KAAMuoB,GAAU,CAAE1T,QAAOuR,aAAYC,aAAY9E,OAAQA,EAAOzlB,QAASgE,MAAOE,EAAIF,MAAOpL,OAAMpN,UAASmsB,WACpG4J,SAAc9mB,EAAMyJ,EAAKuoB,CAAZ,CANgB,OAQ9BpqB,QAAOc,EAAI,CAChBsiB,EAAOzlB,SAAWmD,EAAKhB,EACjB,GAV6B,OAY9BG,SAAQja,EAAGR,EAAG,C/LnCtB,Q+LoCG,KAAMquC,GAAS79B,KAAKC,MAAMjQ,EAAI8Z,EAAOsjB,EAAOzlB,OAA7B,EACTm2B,EAASh0B,EAAO9J,KAAKiE,IAAI,EAAGjE,KAAK2tB,KAAKn+B,EAAIsa,CAAd,CAAZ,EAAoC1H,wBAAMqnB,QAANrnB,cAAa4tB,QAAb5tB,OAAsB,GAC1E2U,EAAQunB,GAAcT,EAAQC,CAAT,EAChB/mB,IAAS,KAAI+mB,MAAW/mB,EAAMyd,QAAU5yB,UAAW,KAAIk8B,GAAxD,CAhByB,EAkBpC5zB,SAAU,CACT4yB,EAAWxlC,MAAD,CACV,CACC,GAACyR,EAAOxI,EAAM+e,CAAd,CArBiC,EAuBpC/oB,GAAU,IAAM,CACXonC,EAAeh2B,SAClBo2B,cAAcJ,EAAeh2B,OAAhB,EAEV60B,GACU,WACR,IACH,KAAMjxB,GAAN,EACIkyB,GACY91B,WAAUq2B,YAAY,IAAM,CAC1C5Q,EAAOzlB,SAAW,EACZ,KACJ,GAHiC,SAK7BtY,GACFA,OACN,KAhBK,EAmBN,CAAC8D,EAAS4V,EAAOxI,EAAM+e,EAASkd,EAAO9b,EAAOwR,EAAYD,EAAYwL,CAAtE,CAnBM,EAqBHc,QAAYlwB,GAAQ,K/LnE3B,M+LmEiCuK,4BAAmBnY,IAAI,oBAAvBmY,OAA4C,CAAnD,GAAuD,CAACzlB,CAAD,CAAvD,EAElB,aACN,mBAAK,MAAM,4BACT0pC,aAAWhmC,EAAC,GAAD,CAAK,MAAOgmC,EAAS,MAAM,aADxC,EAEC30B,EAAC,GAAD,CAAS,KAAK,OAAO,QAAS1V,EAAO,kBAAD,EAClCyyB,aAAa9xB,EAASmE,OAAW,MAArB,EAA+B4Q,gBAC3CrR,EAAC,GAAD,CAAU,MAAOrE,EAAO,eAAD,EAAmB,MAAQ,GAAE0/B,IAAc,SAAUnhC,GAAKqtC,EAAcj+B,OAAOpP,CAAD,CAAP,EADnD,EAE3C8F,EAAC,GAAD,CAAU,MAAOrE,EAAO,eAAD,EAAmB,MAAQ,GAAEy/B,IAAc,SAAUlhC,GAAKstC,EAAcl+B,OAAOpP,CAAD,CAAP,EAFnD,GAA3C,EAIA8F,EAAC,GAAD,CAAU,MAAOrE,EAAO,eAAD,EAAmB,MAAOkuB,EAAO,SAAUyd,EAAU,SAAUI,EAAW,OAAM,GALzG,EAOC1nC,EAAC,GAAD,CAAK,KAAM4mC,EAAa,cAAgB,SAAU,MAAOjrC,EAAO,qBAAD,EAAyB,QAAS,IAAMkrC,EAAc,CAACD,CAAF,EAPrH,GAFD,EAWC5mC,EAAC,GAAD,CAAK,KAAK,OAAO,QAASrE,EAAO,mBAAD,EAC/B,QAAS,IAAMiqC,EAAQC,IAAD,EAZxB,KAcA7lC,YAAQ,IAAKsT,EAAQ,MAAOL,EAAM,OAAQA,EAfpC,GAAP,CAiBA,ECpEK00B,GAAc,CACnBC,UAAWC,GACXltB,QAASmtB,EAFU,EA0Bb,YAA2BC,EAAgBxK,EAAsB,CACjE3oB,QAAMozB,GAAkBzK,CAAD,EACvB0K,EAAiB,GACvBC,UAAcH,EAAWI,CAAQF,IAAOnrB,KAAKqrB,CAAZ,EAAmBvzB,CAAvC,EAENwzB,CADOT,EAAYpK,EAAQ8K,YACrBJ,EAAQrzB,CAAT,CACZ,CAED,KAAM0zB,IAAa,GAEnB,YAAuBC,EAAe3zB,EAAiC,CAChE4zB,QAAQC,GAAQ,CAAC,GAAG3/B,MAAMw/B,EAAD,CAAT,EAAuB9gC,IAAI,CAAC5N,EAAGzB,IAAMA,CAArC,EAAyCyc,CAA1C,EAEf8zB,EAAQH,EAAMh5B,OAAOpX,GAAKA,EAAEsH,KAAO,iBAAmBtH,EAAEiqC,MAAQ,CAAxD,EAGPkG,IAFCC,IAAMh5B,OAAOpX,CAAKA,IAAEsH,KAAO,iBAAmBtH,EAAEiqC,QAAU,CAA1D,EAEDkG,GAAaC,EAAM9/B,OAASigC,EAAMjgC,OAAS,GAAKigC,EAAMjgC,OAAS,GAAG,CAClE,MAACkgC,GAASD,EAAME,OAAOh0B,EAAIvL,OAAO8G,QAAQu4B,EAAMjgC,MAAzB,EAAkC,CAA/C,EACVogC,EAAaj0B,EAAIvL,OAAO8G,QAAQhH,KAAKC,MAAMu/B,EAAMvG,MAAQ,CAAzB,CAAnB,EAAkD,EAC/D0G,EAAQC,GAAUJ,EAAOE,CAAR,EAElB,SAAMV,KAAQ,CAACQ,EAAOG,CAAR,EAClB,CAAIX,CAAK/F,MAAQ,GAAKxtB,EAAIvL,OAAOg2B,YAAc,GAC9CqJ,EAAM5rB,KAAKqrB,CAAX,EAEAI,EAAMzrB,KAAKqrB,CAAX,CAGF,CAEKrrB,OAAK,GAAG4rB,CAAd,EACAD,GAAQF,EAAO3zB,CAAR,EAEP,KAAMoY,GAAyB,GAC/B,SAAWmb,KAAQI,GAAO,CACnBS,QAAOR,EAAMS,MACfD,OAASvoC,OACZ,MAEG0nC,EAAK1oC,KAAO,iBAAmB0oC,EAAK/F,MAAQ,GAC/CpV,EAAQlQ,KAAK,CAAEksB,OAAMb,OAArB,CAED,CACMnb,QACP,CAED,YAAqBub,EAA8B,CAC3CA,SAAM/gC,IAAI,CAAC2gC,EAAMhwC,IAAO,EAAE6wC,KAAM7wC,EAAGgwC,MAAnC,GACP,CAED,YAAmBA,EAAY/F,EAAqB,CAC7CyG,QAAa1/B,KAAKkE,IAAI+0B,EAAO+F,EAAK/F,KAArB,EACb8G,EAAQz7B,GAAU06B,CAAD,EACvBe,SAAM9G,MAAQyG,EACTzG,QAAQ+F,EAAK/F,MAAQyG,EACnBK,CACP,CAED,YAAoBC,EAAYv0B,EAAkB,CACjD,GAAIzc,GAAIgxC,EAAM1gC,OACPtQ,OAAI,GAAG,CACPa,QAAI4b,EAAIvL,OAAO8G,QAAQhY,CAAnB,EACL,KACJgxC,GAAMhxC,GAAIgxC,EAAMnwC,EAAjB,EAAuB,CAACmwC,EAAMnwC,GAAImwC,EAAMhxC,EAAjB,CACvB,CACMgxC,QACP,CAED,YAAuBziC,EAAY0iC,EAAwBx0B,EAAkB,ChMhH7E,QgMiHC,KAAMy0B,GAAgBC,GAAkB5iC,KAAM6iC,YAAN7iC,OAAmB,GAAI0iC,EAAUx0B,CAAlC,EAClC,SAAMkJ,KAAQpX,KAAM8iC,QAAN9iC,OAAe,GACpBoX,KAAMurB,EAAez0B,CAAtB,CAEb,CAED,YAA2B2oB,EAAmC,CACtD,gBACHA,GADG,CAENl0B,OAAQ,GAAIysB,IAAayH,EAAQ7zB,IAAzB,EACR+/B,KAAMlM,EAAQkM,KACdC,QAASnM,EAAQmM,QACjBC,QAASpM,EAAQqM,QACjBC,WAAY,IAAM,CANZ,EAONC,aAAc,IAAO,EAAEN,MAAO,KAC9BO,aAAc,IAAM,IAErB,CAED,YAAsBjsB,EAAWsrB,EAAwBx0B,EAAkB,ChMpI3E,UgMqIKo1B,MAAkBlsB,KAAKmsB,aAALnsB,OAAmB,EAApB,EAAwBlJ,CAAzC,EAA+C,CAClD,KAAMs1B,GAAeZ,GAAkBxrB,KAAKyrB,YAALzrB,OAAkB,GAAIsrB,EAAUx0B,CAAjC,EAEhCu1B,EAAQC,GAAWtsB,EAAKqsB,MAAOv1B,CAAb,EAAoBzL,KAAKC,MAAMihC,GAAavsB,EAAKwsB,YAAa11B,CAAnB,EAA0BA,EAAI60B,IAArD,EAC5C,OAAStxC,GAAI,EAAGA,EAAIgyC,EAAOhyC,GAAK,EAAG,CAC9B8X,MAAc,EAClB,KAAMjB,GAAiB,GAGlB,SAAMkB,KAAS4N,KAAK9O,UAAL8O,OAAgB,GACvB5N,KAAO0E,EAAMpc,CAAM,GACxBomB,QAAS2rB,GAAc/xC,EAAGoc,EAAI60B,IAAR,EACxB7qB,EAAS,GACZ5P,GAAQ8N,KAAKtkB,CAAb,EACeomB,KACf,CALS,EAUR3O,OAAgB,GAAKjB,EAAQvG,SAAW,EAC3C,SAEGuG,KAAQvG,SAAW,EAAG,CACduG,KAAQ,GAAIk7B,EAAct1B,CAA3B,EACV,QACA,CACG41B,MAAkB51B,EAAIvL,OAAO8G,QAAQF,CAAnB,EACtB,SAAWC,KAASlB,GAEfw7B,GADeD,MAAcr6B,EAAO0E,EAAI60B,IAAZ,EAC5Be,EAAkB,EAAG,CACbt6B,KAAOg6B,EAAct1B,CAAtB,EACV,KACA,CAEF,CACD,CACD,CAED,YAAqB1E,EAAY0E,EAAkBw0B,EAAyC,ChM5K5F,cgM6KC,GAAI,CAACqB,GAAYv6B,EAAO0E,CAAR,EACR,SAGApV,OADK0Q,KAAM1Q,OAAN0Q,cAAY1G,QAAQ,cAAe,SAE1C,QACC,SAAMkhC,KAASx6B,KAAM8H,WAAN9H,OAAkB,GACzBw6B,KAAO91B,EAAKw0B,CAAb,EAEL,aACH,eACC,SAAMsB,KAASx6B,KAAM8H,WAAN9H,OAAkB,GACjCy6B,MAAYD,EAAO91B,EAAKw0B,CAAb,EACP,SAGF,aACH,WACC,SAAMsB,KAASx6B,KAAM8H,WAAN9H,OAAkB,GACjC,IAACy6B,GAAYD,EAAO91B,EAAKw0B,CAAb,EACR,SAGF,aACH,MACAl5B,SAAM06B,OACTh2B,EAAIi1B,WAAW35B,KAAMwH,MAANxH,OAAa,EAA5B,EAAgCjG,QAAQ4gC,CAAY,GAC1C,GAAErrC,KAAM,OAAQoQ,KAAMi7B,EAAvB,EADT,EAIAzB,EAASl5B,CAAD,EAEF,WAEPk5B,SAASl5B,CAAD,EACD,GAET,CAED,YAAqBA,EAAY0E,EAA2B,ChMpN5D,MgMqNQo1B,UAAkB95B,KAAM+5B,aAAN/5B,OAAoB,EAArB,EAAyB0E,CAA1C,CACP,CAED,YAAoB1E,EAAYk5B,EAAwBx0B,EAAkB,ChMxN1E,UgMyNC,KAAMk2B,GAAgBxB,GAAkBp5B,KAAMq5B,YAANr5B,OAAmB,GAAIk5B,EAAUx0B,CAAlC,EAG/BpV,OADK0Q,KAAM1Q,OAAN0Q,cAAY1G,QAAQ,cAAe,SAE1C,OACU,GAAE/J,GAAIyQ,EAAMN,KAAMwyB,MAAO,EAA1B,EACb,UACI,MACJxtB,EAAIi1B,WAAW35B,KAAMN,OAANM,OAAc,EAA7B,EAAiCjG,QAAQ4gC,CAAY,GACtC,GAAEprC,GAAIorC,EAAUzI,MAAO,EAAxB,EADd,EAGA,UACI,aACJ8F,GAActzB,EAAIk1B,aAAa55B,EAAMN,IAAvB,EAA8Bk7B,EAAel2B,CAA9C,EACb,MAKF,CAED,YAAuB1E,EAAYu5B,EAAc,ChM9OjD,QgM+OQtgC,YAAKiE,IAAIjE,KAAKC,MAAawV,sBAAU,GAAM1O,MAAM66B,UAAN76B,OAAiB,GAAKu5B,CAAxD,EAA+D,CAAxE,CACP,CAID,YAA2BF,EAAkBH,EAAwBx0B,EAAgC,CAC9Fo2B,QAAoBC,GAAiB1B,CAAD,EAC1C,MAAQpB,CAAS,IAChB6C,EAAkB7C,EAAMvzB,CAAP,EACjBw0B,EAASjB,CAAD,EAET,CAED,YAA0BoB,EAAgC,CAClD,OAACpB,EAAMvzB,IAAQ,ChM7PvB,YgM8PE,SAAW9C,KAAMy3B,GACZS,MAAkBl4B,KAAGm4B,aAAHn4B,OAAiB,EAAlB,EAAsB8C,CAAvC,EAA6C,CAC1CpV,QAAOsS,KAAGo5B,WAAHp5B,cAAatI,QAAQ,cAAe,IAChD2hC,UAAc3rC,2BAAQsS,YAAa3Z,MAAIgwC,EAAMvzB,CAA9C,CACA,CACD,CAEF,CAED,KAAMu2B,IAA+D,CACpEC,iBAAkB,CAAC,CAAEC,kBAAmB,CAAClD,EAAMvzB,IAAQ,CAChD02B,QAASnD,EAAK1oC,KAAO,iBACvB4rC,KAAiB5qC,QAAa4qC,EAAa5iC,SAAW,IACzD4iC,GAAe,CAAC,GAAGE,GAAavhC,KAAjB,GACbuF,OAAO/W,CAAK,GACN+S,QAAOigC,GAAmBhzC,CAAD,EAC/B,MAAO+S,GAAKkgC,cAAiBH,IAAU//B,EAAKmgC,WAAWvD,EAAK1oC,EAArB,GAH1B,GAMhB,KAAMA,GAAK4rC,EAAaz2B,EAAIvL,OAAO8G,QAAQk7B,EAAa5iC,MAAhC,GAClB8C,EAAOigC,GAAmB/rC,CAAD,EACzBksC,EAAM/2B,EAAIvL,OAAO8G,QAAQ5E,EAAKqgC,SAAWrgC,EAAKsgC,SAAW,CAAnD,EAAwDtgC,EAAKsgC,SACzEC,GAAY3D,EAAM,CAAE1oC,KAAIksC,MAAb,CAbwD,EAepEI,oBAAqB,CAAC,CAAEC,SAAQC,cAAe,CAAC9D,EAAMvzB,IAAQ,CACvDs3B,QAAWC,GAAmBv3B,EAAIvL,OAAQ8+B,EAAMiC,GAAW4B,EAAQp3B,CAAT,EAAeq3B,CAA5C,EAEnC,CADe9D,CAAK1oC,KAAO,kBAE1B0oC,GAAK1oC,GAAK,2BACV0oC,EAAK/F,MAAQ,EACb+F,EAAKzwB,IAAM,IAEZ,SAAW00B,KAAWF,GACrBJ,GAAY3D,EAAMiE,CAAP,CAxBuD,EA2BpEC,YAAa,CAAC,CAAEC,WAAY,CAACnE,EAAMvzB,IAAQ,CACpC,MAAEvH,MAAKD,OAAQm/B,GAAgBD,EAAO13B,CAAR,EACpCuzB,EAAK/F,MAAQxM,GAAMuS,EAAK/F,MAAO/0B,EAAKD,CAAlB,CA7BiD,EA+BpEo/B,UAAW,CAAC,CAAEpK,WAAY,CAAC+F,EAAMvzB,IAAQ,CACnCwtB,QAAQgI,GAAWhI,EAAOxtB,CAAR,CAhC4C,EAkCpE63B,WAAY,CAAC,CAAEC,SAAQ78B,SAAU,CAACs4B,EAAMvzB,IAAQ,ChMzSjD,QgM0SQ+3B,QAAYC,GAAehjC,IAAIu+B,EAAK1oC,EAAxB,EAClB,GAAIktC,EAAW,CACd,KAAME,GAAYh9B,EAAM,WAAU6H,oBAAKo1B,gBAAU,GAAKH,EAAY,EAC5DI,EAAY,EAAInX,GAAMyU,GAAaqC,EAAQ93B,CAAT,EAAgBi4B,EAAW,EAAG,CAA3C,EACrBG,EAAc7jC,KAAKC,MAAM2jC,EAAYJ,CAAvB,EACpBxE,EAAKzwB,IAAM,SAAKywB,EAAKzwB,KAAV,CAAeo1B,OAAQE,GAClC,CAzCkE,EA2CpEC,iBAAkB,CAAC,CAAE5B,eAAcx7B,SAAU,CAACs4B,EAAMvzB,IAAQ,CAC3D7K,OAAOiF,QAAQq8B,CAAf,EAA6BphC,QAAQ,CAAC,CAACxK,EAAIytC,KAAW,CAC/CvB,QAAMvB,GAAW8C,EAAOt4B,CAAR,EACtBk3B,GAAY3D,EAAM,CAAE1oC,KAAIksC,OAAO97B,CAApB,EAFZ,CA5CmE,EAiDpEs9B,SAAU,CAAC,CAAEC,OAAM5jC,aAAe2+B,CAAS,GhMxT5C,YgMyTQkF,QAAQD,EAAK5lC,IAAI,CAACiR,EAAcyB,KAAKxE,UAAU+C,CAAf,CAAxB,EACR60B,EAAU9jC,EAAU6jC,EAAQ,CAAC,GAAIlF,WAAKzwB,MAALywB,cAAUoF,UAAVpF,cAAmBqF,OAAnBrF,OAA2B,GAAK,GAAGkF,CAAxC,EAClClF,EAAKzwB,IAAM,SAAKywB,EAAKzwB,KAAV,CAAe61B,QAAS,SAAKpF,KAAKzwB,MAALywB,cAAUoF,SAAf,CAAwBC,KAAMF,CAA9B,IApDgC,EAsDpEG,SAAU,CAAC,CAAE79B,UAAYu4B,CAAS,GhM7TnC,MgM8TQuF,QAAUxzB,KAAKxE,UAAU9F,CAAf,EAChBu4B,EAAKzwB,IAAM,SAAKywB,EAAKzwB,KAAV,CAAe61B,QAAS,SAAKpF,KAAKzwB,MAALywB,cAAUoF,SAAf,CAAwBntB,KAAMstB,CAA9B,IACnC,CAzDmE,EA8DrE,YAA2BzD,EAAkC,CAC5D,MAAQr1B,CAAQ,IACf,SAAW+4B,KAAQ1D,GAClB,GAAI,CAAC2D,GAAcD,EAAM/4B,CAAP,EACV,SAGF,SAER,CAED,YAAuBi5B,EAAgBj5B,EAA2B,ChMhVlE,UgMiVOpV,QAAOquC,KAAUA,YAAVA,cAAqBrkC,QAAQ,cAAe,IACzD,gBAAuBhK,2BAAQquC,YAAe,IAAM,IAAOj5B,CAApD,CACP,CAED,KAAMk5B,IAAiE,CACtEC,YAAa,CAAC,CAAE9gB,WAAarY,CAAQ,GACpC,SAAWo5B,KAAQ/gB,GACd2gB,MAAcI,EAAMp5B,CAAP,EACT,SAGF,QAP8D,EAStEq5B,qBAAsB,IAAM,IACpB,GAERC,yBAA0B,CAAC,CAAEt/B,eAAiBgG,CAAQ,EAC9Cu5B,GAAyB,EAEjCC,kBAAmB,CAAC,CAAEx/B,eAAiBgG,CAAQ,EACvCy5B,GAAmB,EAE3BC,cAAe,IAAM,IACb,GAERC,SAAU,CAAC,CAAEP,UAAYp5B,CAAQ,EACzB,CAACg5B,GAAcI,EAAMp5B,CAAP,EAEtB45B,iBAAkB,CAAC,CAAED,cAAe,eACf,MAAW,GAEhCE,eAAgB,CAAC,CAAE7/B,eAAiBgG,CAAQ,EACpC85B,GAAqB,EAE7BC,WAAY,CAAC,CAAE//B,eAAiBgG,CAAQ,EAChCg6B,GAAiB,EAEzBC,cAAe,CAAC,CAAE3M,YAActtB,CAAQ,EAChCA,EAAIvL,OAAOg2B,YAAc6C,EAEjC4M,2BAA4B,CAAC,CAAE5M,SAAQ6M,wBAA0Bn6B,CAAQ,GAElEuM,QAAc+gB,EAASgL,EAAQ6B,EAC9Bn6B,SAAIvL,OAAOg2B,YAAcle,CAvCqC,EA0CtE6tB,UAAW,CAAC,CAAEp/B,UAAYgF,CAAQ,GhM/XnC,MgMgYQhG,QAAYgG,KAAIm1B,aAAan6B,CAAjB,WAA0B,GACxC9G,aAAMkE,QAAQ4B,CAAd,EACIo7B,GAAkBp7B,CAAD,EAAYgG,CAA7B,EAEDg5B,GAAch/B,EAAWgG,CAAZ,CA/CiD,EAiDtEq6B,mBAAoB,IAAM,IAAM,GAChCC,YAAa,CAAC,CAAEC,aAAev6B,CAAQ,GAEtC,KAAMstB,GAASiN,EAAQvZ,GAAMsX,EAAO,EAAGiC,EAAQ1mC,OAAS,CAA5B,GACrBmM,SAAIvL,OAAOg2B,YAAc6C,CArDqC,EAuDtEkN,WAAY,CAAC,CAAE9zC,QAAO+zC,YAAcz6B,CAAQ,GAC3C,GAAI06B,GAAO16B,EAAI+0B,QACX0F,IAAW5uC,QACd6uC,GAAOA,EAAOD,GAET,MAAEhiC,MAAKD,OAAQm/B,GAAgBjxC,EAAOsZ,CAAR,EAC7BvH,UAAOiiC,GAAQA,GAAQliC,CA7DuC,EA+DtEmiC,YAAa,IAAM,IACX,GAERC,cAAe,CAAC,CAAEC,UAASC,gBAAkB96B,CAAQ,GACpD,KAAM+6B,GAAY/6B,EAAI80B,UAAY,QAAU90B,EAAI80B,UAAY,UACtDkG,EAAeh7B,EAAI80B,UAAY,UAEjCgG,MADAD,MAAYhvC,QAAagvC,IAAYE,GACrCD,IAAejvC,QAAaivC,IAAeE,EAE/C,CAxEqE,EA2EvE,YAAoBC,EAAej7B,EAA0B,ChMha7D,UgMiaC,GAAI,MAAOi7B,IAAa,SAAiBA,SACrC,IAAC1oC,GAAS0oC,CAAD,EAAmB,SAGxBrwC,OADKqwC,QAASrwC,OAATqwC,cAAermC,QAAQ,cAAe,MAAtCqmC,OAA6C,eAEpD,WACG1mC,YAAKk1B,MAAMwR,KAASv0C,QAATu0C,OAAkB,CAA7B,MACH,UACExiC,QAAM+8B,GAAWyF,EAASxiC,IAAKuH,CAAf,EAChBxH,EAAMg9B,GAAWyF,EAASziC,IAAKwH,CAAf,EACfxH,SAAMC,EAAMA,EAAMuH,EAAIvL,OAAO8G,QAAQ/C,EAAMC,EAAM,CAA/B,EAAoCA,MACzD,WACErV,QAAIoyC,GAAWyF,EAAS73C,EAAG4c,CAAb,EACd7c,EAAIsyC,GAAawF,EAAS93C,EAAG6c,CAAb,EAClBqzB,MAAS,EACb,OAAS9vC,GAAI,EAAGA,EAAIH,EAAGG,GAAK,EAC3B,CAAIyc,CAAIvL,OAAOg2B,UAAX,EAAyBtnC,GAClB,OAGLkwC,SAEF,QACP,CAED,YAAsB4H,EAAej7B,EAA0B,ChM1b/D,UgM2bC,GAAI,MAAOi7B,IAAa,SAAiBA,SACrC,IAAC1oC,GAAS0oC,CAAD,EAAmB,SAGxBrwC,OADKqwC,QAASrwC,OAATqwC,cAAermC,QAAQ,cAAe,MAAtCqmC,OAA6C,eAEpD,WACJ,MAAOA,KAASv0C,QAATu0C,OAAkB,MACrB,UACExiC,QAAMg9B,GAAawF,EAASxiC,IAAKuH,CAAf,EAClBxH,EAAMi9B,GAAawF,EAASziC,IAAKwH,CAAf,EACjBxH,SAAMC,EAAMA,EAAMuH,EAAIvL,OAAOg2B,UAAejyB,KAAIC,GAAOA,MAC1D,WACErV,QAAIoyC,GAAWyF,EAAS73C,EAAG4c,CAAb,EACd7c,EAAIsyC,GAAawF,EAAS93C,EAAG6c,CAAb,EAClBqzB,MAAS,EACb,OAAS9vC,GAAI,EAAGA,EAAIH,EAAGG,GAAK,EAC3B,CAAIyc,CAAIvL,OAAOg2B,UAAX,EAAyBtnC,GAClB,OAGLkwC,SAEF,QACP,CAED,YAAyBhE,EAAYrvB,EAAkB,CAClD,MAAOqvB,IAAU,UACZ,IAAE52B,IAAK42B,EAAO72B,IAAK62B,IAEtB52B,QAAM+8B,GAAWnG,EAAM52B,IAAKuH,CAAZ,EAChBxH,EAAMg9B,GAAWnG,EAAM72B,IAAKwH,CAAZ,EACf,OAAEvH,MAAKD,MACd,CAED,YAA2B0iC,EAAiBnP,EAAmB,CACvD,QACP,CAED,YAA+BmP,EAAiBnP,EAAmB,CAC3D,QACP,CAED,YAA6BmP,EAAiBnP,EAAmB,CACzD,QACP,CAED,YAAmCmP,EAAiBnP,EAAmB,CAC/D,QACP,CAED,YAAqBwH,EAAYiE,EAAkB2D,EAAoB,CAClE,CAAC5H,CAAKzwB,KACTywB,GAAKzwB,IAAM,IAENs4B,QAAW7H,EAAK1oC,KAAO,iBAAoB,qBAAuB,eACpE,EAAC0oC,EAAKzwB,IAAIs4B,IAAY,CAAClnC,MAAMkE,QAAQm7B,EAAKzwB,IAAIs4B,EAAvB,IACrBt4B,OAAIs4B,GAAW,IAEf3E,QAAelD,EAAKzwB,IAAIs4B,GAC1B30C,MAAQgwC,EAAaroB,UAAU,CAACxqB,EAAWA,EAAEiH,KAAO2sC,EAAQ3sC,EAApD,EACZ,GAAIpE,IAAU,GAAI,CACjB,KAAM40C,GAAU5E,EAAahwC,GACrBswC,MAAMxiC,KAAKiE,IAAI2iC,EAAWE,EAAQtE,IAAMS,EAAQT,IAAMS,EAAQT,IAAK,CAA7D,MAEdN,GAAavuB,KAAKsvB,CAAlB,EACA/wC,EAAQgwC,EAAa5iC,OAAS,EAE3B4iC,EAAahwC,GAAOswC,MAAQ,GAClB/C,SAAOvtC,EAAO,CAA3B,CAED,CAED,YAA4BgO,EAAgB8+B,EAAY6D,EAAgBC,EAA8B,ChMngBtG,MgMogBOiE,QAAmBC,MAAiBvmC,IAAIu+B,EAAK1oC,EAA1B,WAAiC,EACtDywC,MAAoB,EACvB,MAAO,GAERlE,GAAU,EAAI3iC,EAAO8G,QAAQhH,KAAKC,MAAM8mC,EAAmB,EAAI,CAAlC,CAAf,EAAuD7mC,EAAO8G,QAAQhH,KAAKC,MAAM8mC,EAAmB,EAAI,CAAlC,CAAf,EACrE,KAAM33C,GAAY8mC,eAAch2B,EAAOg2B,YAAc,GAAK,IACjDzJ,KAAMzsB,KAAKk1B,MAAM2N,EAASA,EAASzzC,CAA7B,EAAiC,EAAG+Q,OAAOC,gBAA5C,EACV6mC,MAAYC,GAAyBlI,EAAM6D,EAAQC,CAAf,EACpCmE,KAAU3nC,SAAW,EACxB,MAAO,GAEFw/B,QAAS,GACTqI,EAAQC,GAAkBlnC,EAAQ+mC,EAAWI,EAApB,EAG/B,IAFIF,GAAOrI,EAAOnrB,KAAKwzB,CAAZ,EAEJjnC,EAAO8G,QAAQ,EAAf,GAAsB67B,GAAQ,CAChC/D,KAAOx/B,OAAS,EAAG,CAChBgoC,QAAYxI,EAAOA,EAAOx/B,OAAS,GAC7B2nC,IAAU7gC,OAAOxW,CAAK23C,KAAoB33C,EAAE0G,GAAIgxC,EAAUhxC,EAAjB,CAAzC,CACZ,CACD,GAAI2wC,EAAU3nC,SAAW,EAAG,MACtBkoC,QAAOJ,GAAkBlnC,EAAQ+mC,EAAWI,EAApB,EAC1BG,GAAM1I,EAAOnrB,KAAK6zB,CAAZ,EACDxnC,OAAKC,MAAM4iC,EAAS,CAApB,CACT,CAEM/D,QACP,CAED,YAA0B0I,EAAe,ChMjiBzC,UgMkiBQC,YAA0BhnC,IAAI4hC,SAAmBmF,EAAKlxC,EAAN,IAAlB+rC,cAA6BqF,SAA7BrF,OAAuC,QAArE,WAAkF,CACzF,CAED,YAAkCrD,EAAY6D,EAAgBC,EAA8B,CACrFhE,QAAS,GACTqD,EAASnD,EAAK1oC,KAAO,iBAEhBA,cAAM8rC,IAAavhC,OAAQ,CAC/B2mC,QAAOnF,GAAmB/rC,CAAD,EAC1B,KAACkxC,EAAK1E,UAAYA,IAAa0E,EAAKlF,cAAiBkF,GAAKjF,WAAWvD,EAAK1oC,EAArB,GAA4B6rC,GAC5EK,UAAMgF,EAAK/E,SAAUD,EAAMgF,EAAK9E,SAAW,EAAGF,GAAO,EACzDK,GAAU2E,EAAKG,QAAQnF,CAAb,GAAqBK,GAAU2E,EAAKI,QAAQpF,CAAb,GAC5C1D,EAAOnrB,KAAK,CAAErd,KAAIksC,MAAlB,CAIH,CACM1D,QACP,CAOD,YAA6BlvC,EAAWF,EAAW,CAC3CE,WAAMF,GAAKm4C,GAAuBj4C,EAAGF,CAAJ,GAAUm4C,GAAuBn4C,EAAGE,CAAJ,CACxE,CAED,YAAgCA,EAAWF,EAAW,CAC/C83C,QAAOnF,GAAmBzyC,CAAD,EACxB43C,wBAAMM,aAAap4C,EAC1B,CAEM,KAAM+zC,IAAiB,GAAIz+B,KAAIpE,OAAOiF,QAAgB,CAC5D,8BAA+B,GAC/B,qCAAsC,IACtC,4BAA6B,GAC7B,mBAAoB,IACpB,gBAAiB,IACjB,wBAAyB,GACzB,mBAAoB,IACpB,mBAAoB,IACpB,oBAAqB,IACrB,qBAAsB,IAEtB,2BAA4B,GAAK,EACjC,+BAAgC,GAAK,EACrC,6BAA8B,GAAK,EACnC,0BAA2B,GAAK,EAChC,6BAA8B,GAAK,GACnC,iCAAkC,GAAK,GACvC,+BAAgC,GAAK,GACrC,4BAA6B,GAAK,GAClC,wBAAyB,GAAK,GAC9B,4BAA6B,GAAK,GAClC,0BAA2B,GAAK,GAChC,uBAAwB,GAAK,GAC7B,2BAA4B,GAAK,GACjC,+BAAgC,GAAK,GACrC,6BAA8B,GAAK,GACnC,0BAA2B,GAAK,GAChC,0BAA2B,GAAK,EAChC,8BAA+B,GAAK,EACpC,4BAA6B,GAAK,EAClC,yBAA0B,GAAK,EAC/B,6BAA8B,GAAK,GACnC,iCAAkC,GAAK,GACvC,+BAAgC,GAAK,GACrC,4BAA6B,GAAK,GAClC,0BAA2B,GAAK,GAEhC,yBAA0B,GAC1B,0BAA2B,GAC3B,2BAA4B,GAC5B,uBAAwB,GACxB,uBAAwB,GACxB,wBAAyB,IACzB,yBAA0B,IAC1B,0BAA2B,IAC3B,sBAAuB,IACvB,sBAAuB,IACvB,uBAAwB,IACxB,wBAAyB,IACzB,yBAA0B,IAC1B,qBAAsB,IACtB,qBAAsB,IACtB,0BAA2B,KAC3B,2BAA4B,KAC5B,4BAA6B,KAC7B,wBAAyB,KACzB,wBAAyB,KACzB,uBAAwB,GACxB,wBAAyB,GACzB,yBAA0B,GAC1B,qBAAsB,GACtB,qBAAsB,GACtB,4BAA6B,KAC7B,6BAA8B,KAC9B,8BAA+B,KAC/B,0BAA2B,KACA,8BAnEiC,CAAvB,CAAR,EAsExBmhC,GAAmB,GAAIhiC,KAAIpE,OAAOiF,QAAgB,CACvD,iBAAkB,EAClB,wBAAyB,EACzB,oBAAqB,EACrB,gBAAiB,EACjB,qBAAsB,EAEtB,2BAA4B,GAC5B,+BAAgC,GAChC,6BAA8B,GAC9B,0BAA2B,GAC3B,6BAA8B,GAC9B,iCAAkC,GAClC,+BAAgC,GAChC,4BAA6B,GAC7B,wBAAyB,EACzB,4BAA6B,EAC7B,0BAA2B,EAC3B,uBAAwB,EACxB,2BAA4B,GAC5B,+BAAgC,GAChC,6BAA8B,GAC9B,0BAA2B,GAC3B,0BAA2B,GAC3B,8BAA+B,GAC/B,4BAA6B,GAC7B,yBAA0B,GAC1B,6BAA8B,GAC9B,iCAAkC,GAClC,+BAAgC,GAChC,4BAA6B,GAC7B,0BAA2B,GAE3B,yBAA0B,GAC1B,0BAA2B,GAC3B,2BAA4B,GAC5B,uBAAwB,GACxB,uBAAwB,GACxB,wBAAyB,EACzB,yBAA0B,EAC1B,0BAA2B,EAC3B,sBAAuB,EACvB,sBAAuB,EACvB,uBAAwB,GACxB,wBAAyB,GACzB,yBAA0B,GAC1B,qBAAsB,GACtB,qBAAsB,GACtB,0BAA2B,GAC3B,2BAA4B,GAC5B,4BAA6B,GAC7B,wBAAyB,GACzB,wBAAyB,GACzB,uBAAwB,GACxB,wBAAyB,GACzB,yBAA0B,GAC1B,qBAAsB,GACtB,qBAAsB,GACtB,4BAA6B,GAC7B,6BAA8B,GAC9B,8BAA+B,GAC/B,0BAA2B,GACA,4BA9D4B,CAAvB,CAAR,EAgFlB,YAA4BvP,EAA6B,ChM1tBhE,wBgM2tBO8L,QAAOggC,GAAa3hC,IAAInK,CAAjB,EACPzE,EAAWuQ,oBAAMvQ,WAANuQ,OAAkB,QAC5B,OACN9L,KACAoxC,OAAQtlC,oBAAMslC,SAANtlC,OAAgB,SACxBvQ,WACA6wC,SAAUtgC,oBAAMsgC,WAANtgC,OAAkB,EAC5BqgC,SAAUrgC,oBAAMqgC,WAANrgC,OAAkB,EAC5BulC,QAASvlC,oBAAMulC,UAANvlC,OAAmBogC,GAAQ,EAAIA,EAAM,GAC9CoF,QAASxlC,oBAAMwlC,UAANxlC,OAAmBogC,GAAQ,EAAIA,EAAM,GAC9CF,aAAclgC,oBAAMkgC,eAANlgC,OAAsB,GACpC0gC,SAAU1gC,oBAAM0gC,WAAN1gC,OAAkB,GAC5B2lC,MAAO3lC,oBAAM2lC,QAAN3lC,OAAe,GACtBmgC,WAAYjsC,CAAM0xC,KAAuBvnC,IAAI5O,CAA3B,EAAsC4c,SAASnY,CAA/C,EAClBwxC,aAAc1lC,oBAAM0lC,eAAN1lC,OAA6B,OAE5C,CAED,KAAM6lC,IAAsB,CAAC,uBAAwB,4BAA6B,6BAA8B,iCAApF,EACtBC,GAAkB,CAAC,sBAAuB,kBAAmB,8BAA3C,EAElB9F,GAAe,GAAIp9B,KAAIpE,OAAOiF,QAAkC,CAC7C,wBAAE6hC,OAAQ,SAAU71C,SAAU,QAAS4wC,SAAU,EACxEkF,QAASnF,GAAO,EAAKA,GAAM,GAAK,GAChCoF,QAASpF,GAAO,EAAKA,GAAM,GAAK,GAAK,GACrCsF,aAAc/H,GAAS,CAACkI,GAAoBx5B,SAASsxB,CAA7B,CAJ4C,EAKxC,6BAAE2H,OAAQ,WAAY71C,SAAU,QAAS4wC,SAAU,EAC/EkF,QAASnF,GAAO,GAAMA,GAAM,GAAK,EACjCoF,QAASpF,GAAO,GAAMA,GAAM,GAAK,EAAI,EACrCsF,aAAc/H,GAAS,CAACkI,GAAoBx5B,SAASsxB,CAA7B,CAR4C,EASxC,6BAAE2H,OAAQ,WAAY71C,SAAU,aAAc4wC,SAAU,EACpFkF,QAASnF,GAAO,EAAKA,GAAM,GAAK,EAChCoF,QAASpF,GAAO,EAAKA,GAAM,GAAK,EAAI,CAXgC,EAYvC,8BAAEkF,OAAQ,OAAQ71C,SAAU,QAAS4wC,SAAU,EAC5EkF,QAASnF,GAAO,EAAKA,GAAM,GAAK,EAChCoF,QAASpF,GAAO,EAAKA,GAAM,GAAK,EAAI,EACpCsF,aAAc/H,GAAS,CAACkI,GAAoBx5B,SAASsxB,CAA7B,CAf4C,EAgBlC,mCAAE2H,OAAQ,WAAY71C,SAAU,QAAS4wC,SAAU,EACrFkF,QAASnF,GAAO,EAAKA,GAAM,GAAK,EAChCoF,QAASpF,GAAO,EAAKA,GAAM,GAAK,EAAI,EACpCsF,aAAc/H,GAAS,CAACkI,GAAoBx5B,SAASsxB,CAA7B,CAnB4C,EAoB5C,yBAAE2H,OAAQ,OAAQ71C,SAAU,aAAc4wC,SAAU,EAC5EkF,QAASnF,GAAO,GAAKA,EACrBoF,QAASpF,CAAO,KAAKA,EAAM,EAtByC,EAuB1C,2BAAEkF,OAAQ,OAAQ71C,SAAU,aACtD81C,QAAS,IAAM,EACfC,QAAS,IAAM,EAzBqD,EA0BjD,oBAAEF,OAAQ,YAAa71C,SAAU,cAAe4wC,SAAU,EAC7EkF,QAASnF,GAAO,GAAK,GAAY,MACjCoF,QAASpF,GAAO,GAAK,MAAY,GAAK,EA5B8B,EA6B1C,2BAAEkF,OAAQ,OAAQ71C,SAAU,aAAc4wC,SAAU,EAC9EkF,QAASnF,GAAO,GAAKA,EACrBoF,QAASpF,CAAO,KAAKA,EAAM,GAC3BsF,aAAc/H,GAASA,IAAU,wBAhCmC,EAiC3C,0BAAE2H,OAAQ,OAAQ71C,SAAU,aAAc4wC,SAAU,EAAGK,SAAU,GAC1F6E,QAASnF,GAAO,GAAKA,EACrBoF,QAASpF,CAAO,KAAKA,EAAM,GAC3BsF,aAAc/H,GAASA,IAAU,yBApCmC,EAqC1C,2BAAE2H,OAAQ,YAAa71C,SAAU,WAAYixC,SAAU,GAAMiF,MAAO,GAC9FJ,QAAS,IAAM,GACfC,QAAS,IAAM,EAvCqD,EAwC7C,wBAAEF,OAAQ,YAAa71C,SAAU,aAAc4wC,SAAU,EAChFH,aAAc,GAAOQ,SAAU,GAC/B6E,QAASnF,GAAO,GAAKA,EACrBoF,QAASpF,CAAO,KAAKA,EAAM,EA3CyC,EA4C5C,yBAAEkF,OAAQ,YAAa71C,SAAU,aAAc4wC,SAAU,EACjFH,aAAc,GAAOQ,SAAU,GAC/B6E,QAASnF,GAAO,GAAKA,EACrBoF,QAASpF,CAAO,KAAKA,EAAM,EA/CyC,EAgD9C,uBAAEkF,OAAQ,SAAU71C,SAAU,SAAU4wC,SAAU,EACxEkF,QAASnF,GAAO,EAAKA,GAAM,GAAK,GAChCoF,QAASpF,GAAO,EAAKA,GAAM,GAAK,GAAK,GACrCsF,aAAc/H,GAAS,CAACmI,GAAgBz5B,SAASsxB,CAAzB,CAnD4C,EAoDlD,mBAAE2H,OAAQ,SAAU71C,SAAU,SAAU4wC,SAAU,EACpEkF,QAASnF,GAAO,EAAKA,GAAM,GAAK,EAChCoF,QAASpF,GAAO,EAAKA,GAAM,GAAK,EAAI,GACpCsF,aAAc/H,GAAS,CAACmI,GAAgBz5B,SAASsxB,CAAzB,CAvD4C,EAwDrC,gCAAE2H,OAAQ,SAAU71C,SAAU,SAAU4wC,SAAU,EACjFkF,QAASnF,GAAO,EAAKA,GAAM,GAAK,EAChCoF,QAASpF,GAAO,EAAKA,GAAM,GAAK,EAAI,GACpCsF,aAAc/H,GAAS,CAACmI,GAAgBz5B,SAASsxB,CAAzB,CA3D4C,EA4D9C,uBAAE2H,OAAQ,WAAY71C,SAAU,SAAU4wC,SAAU,EAC1EkF,QAASnF,GAAO,EAAI,GAAY,MAChCoF,QAASpF,GAAO,EAAIA,EAAM,GAAK,EA9DqC,EA+D5C,yBAAEkF,OAAQ,OAAQ71C,SAAU,SAAU4wC,SAAU,EACxEkF,QAASnF,GAAO,EAAI,GAAY,MAChCoF,QAASpF,GAAO,EAAIA,EAAM,GAAK,EAjEqC,EAkEhD,qBAAEkF,OAAQ,OAAQ71C,SAAU,SAAU4wC,SAAU,EACpEkF,QAASnF,GAAO,GAAMA,GAAM,GAAK,EACjCoF,QAASpF,GAAO,EAAIA,EAAM,GAAK,GAC/BsF,aAAc/H,GAASA,IAAU,sBArEmC,EAsE/C,sBAAE2H,OAAQ,OAAQ71C,SAAU,SAAU4wC,SAAU,EACrEkF,QAASnF,GAAO,EAAKA,GAAM,GAAK,EAChCoF,QAASpF,GAAO,EAAKA,GAAM,GAAK,EAAI,EAxEgC,EAyE7C,wBAAEkF,OAAQ,SAAU71C,SAAU,SAAU4wC,SAAU,EACzEkF,QAASnF,GAAO,EAAI,GAAY,MAChCoF,QAASpF,GAAO,EAAIA,EAAM,GAAK,GAC/BD,WAAYjsC,GAAMA,IAAO,oBAAsB0xC,GAAuBvnC,IAAI,QAA3B,EAAsCgO,SAASnY,CAA/C,CA5EqB,EA6E7C,wBAAEoxC,OAAQ,YAAa71C,SAAU,SACxD81C,QAAS,IAAM,GACfC,QAASpF,GAAO,EAAIA,EAAM,GAAK,GAC/BsF,aAAc/H,GAASA,IAAU,mBAhFmC,EAiF7C,wBAAE2H,OAAQ,WAAY71C,SAAU,YAAa4wC,SAAU,EAC9EkF,QAASnF,GAAO,EAAKA,GAAM,GAAK,EAChCoF,QAASpF,GAAO,EAAIA,EAAM,GAAK,EAnFqC,EAoFhD,qBAAEkF,OAAQ,OAAQ71C,SAAU,SAAU4wC,SAAU,EACpEkF,QAASnF,GAAO,GAAMA,GAAM,GAAK,EACjCoF,QAASpF,GAAO,EAAIA,EAAM,GAAK,GAC/BsF,aAAc/H,GAASA,IAAU,sBAvFmC,EAwFlD,mBAAE2H,OAAQ,SAAU71C,SAAU,MAAO4wC,SAAU,EACjEkF,QAASnF,GAAO,EAAKA,GAAM,GAAK,GAChCoF,QAASpF,GAAO,EAAKA,GAAM,GAAK,GAAK,EA1F+B,EA2FlD,mBAAEkF,OAAQ,OAAQ71C,SAAU,MAAO4wC,SAAU,EAC/DkF,QAASnF,GAAO,GAAMA,GAAM,GAAK,GACjCoF,QAASpF,GAAO,GAAMA,GAAM,GAAK,GAAK,EA7F8B,EA8FlD,mBAAEkF,OAAQ,OAAQ71C,SAAU,MAC9C81C,QAAS,IAAM,GACfC,QAAS,IAAM,EAhGqD,EAiG/C,sBAAEF,OAAQ,YAAa71C,SAAU,MACtD81C,QAAS,IAAM,GACfC,QAAS,IAAM,GACfE,aAAc/H,GAASA,IAAU,mBApGmC,EAqGxC,6BAAE2H,OAAQ,OAAQ71C,SAAU,cAAe4wC,SAAU,EACjFkF,QAASnF,GAAO,GAAMA,GAAM,GAAK,EACjCoF,QAASpF,GAAO,EAAIA,EAAM,GAAK,GAC/BsF,aAAc/H,GAASA,IAAU,sBAxGmC,EAyGnD,kBAAE2H,OAAQ,OAAQ71C,SAAU,cAAe4wC,SAAU,EACtEkF,QAASnF,GAAO,GAAMA,GAAM,GAAK,EACjCoF,QAASpF,GAAO,EAAIA,EAAM,GAAK,EA3GqC,EA4GhD,qBAAEkF,OAAQ,WAAY71C,SAAU,UAAW4wC,SAAU,EACzEkF,QAASnF,CAAO,IAAIA,EAAM,EAC1BoF,QAAS,IAAM,EA9GqD,EA+G/C,sBAAEF,OAAQ,OAAQ71C,SAAU,UAAW4wC,SAAU,EACtEkF,QAASnF,GAAO,EAAKA,GAAM,GAAK,EAChCoF,QAASpF,GAAO,EAAKA,GAAM,GAAK,EAAI,EAjHgC,EAkHhD,qBAAEkF,OAAQ,OAAQ71C,SAAU,UAAW4wC,SAAU,EACrEkF,QAASnF,CAAO,IAAIA,EAAM,EAC1BoF,QAAS,IAAM,GACfE,aAAc/H,GAAS,CAAC,CAAC,oBAAqB,sBAAtB,EAA8CtxB,SAASsxB,CAAvD,CArH4C,EAsH7C,wBAAE2H,OAAQ,YAAa71C,SAAU,UACxD81C,QAAS,IAAM,GACfC,QAAS,IAAM,EAxHqD,EAyH9C,uBAAEF,OAAQ,OAAQ71C,SAAU,WAClD81C,QAAS,IAAM,GACfC,QAAS,IAAM,GACfE,aAAc/H,GAASA,IAAU,oBA5HmC,EA6H3C,0BAAE2H,OAAQ,WAAY71C,SAAU,WAAY4wC,SAAU,EAC/EkF,QAASnF,GAAO,GAAMA,GAAM,GAAK,GACjCoF,QAAS,IAAM,EA/HqD,EAgI/C,sBAAEF,OAAQ,SAAU71C,SAAU,WAAY4wC,SAAU,EACzEkF,QAASnF,GAAO,EAAKA,GAAM,GAAK,GAChCoF,QAAS,IAAM,GACfE,aAAc/H,GAASA,IAAU,qBAnImC,EAoIhD,qBAAE2H,OAAQ,OAAQ71C,SAAU,YAAaixC,SAAU,GACvE6E,QAASnF,GAAOA,EAAM,GACtBoF,QAASpF,CAAOA,IAAM,GAAK,EAtIyC,EAuIxC,6BAAEkF,OAAQ,YAAa71C,SAAU,aAAcixC,SAAU,GAAMiF,MAAO,GAClGJ,QAAS,IAAM,GACfC,QAAS,IAAM,EAFa,CAvIwC,CAAzC,CAAR,EA4IfH,GAA4B,GAAIziC,KAAIpE,OAAOiF,QAAgB,CAChE9H,OAAQ,GACRoqC,SAAU,EACVC,KAAM,EACNC,UAAW,CAJqD,CAAvB,CAAR,EAO5BC,GAAa,CAClB,0BACA,4BACA,uBACA,0BACA,yBACA,2BANkB,EAQbC,GAAa,CAClB,6BACA,+BACA,0BACA,6BACA,4BACA,8BANkB,EAQbC,GAAc,CACnB,+BACA,iCACA,4BACA,+BACA,8BACA,gCANmB,EAQdC,GAAa,CAClB,2BACA,6BACA,wBACA,2BACA,0BACA,6BACA,yBAPkB,EASbC,GAAQ,CAAC,GAAGJ,GAAY,GAAGC,GAAY,GAAGC,GAAa,GAAGC,EAAlD,EACRE,GAAQ,CACb,yBACA,wBACA,uBACA,0BACA,uBACA,2BANa,EAQRC,GAAS,CACd,0BACA,2BACA,uBACA,uBACA,yBACA,0BACA,sBACA,sBACA,wBACA,yBACA,qBACA,qBACA,2BACA,4BACA,wBACA,wBACA,wBACA,yBACA,qBACA,qBACA,6BACA,8BACA,0BACA,yBAxBc,EA0BTC,GAAY,CAAC,GAAGpF,GAAe5iC,KAAnB,GACZioC,GAAW,CAChB,GAAGJ,GACH,mBACA,2BACA,yBACA,wBACA,wBACA,uBAPgB,EAUXV,GAAyB,GAAIhjC,KAAIpE,OAAOiF,QAAkB,CAC/DkjC,MAAOL,GACPM,WAAYV,GACZW,WAAYV,GACZW,YAAaV,GACbW,WAAYV,GACZW,OAAQT,GACRU,OAAQT,GACRU,YAAa,CAAC,uBAAD,EACbC,QAAS,CAAC,mBAAD,EACTC,UAAWX,GACXY,IAAK,CAAC,eAAD,EACLC,SAAUZ,GACVa,SAAU,CAAC,oBAAD,EACVC,WAAY,CAAC,GAAGf,GAAW,mBAAf,CAdmD,CAAzB,CAAR,EC58BzBgB,GAAwE,GAE9E,kBAAmC12C,EAAoB,CAClD,MAAC02C,IAAU12C,IACd02C,IAAU12C,GAAwB,WAC7B,IACG,MAAEye,SAAQC,YAAWC,SAAS,KAAMg4B,IAAe32C,CAAD,EACxD02C,UAAU12C,GAAW,GAAI42C,IAAgBn4B,EAAQC,EAAWC,CAAvC,EACd+3B,GAAU12C,SACT9D,GACAwa,oBAAM,UAAWxa,CAAzB,EACM,GAAI+U,OAAO,oCAAmCjR,MAAYkR,GAAQhV,CAAD,GAAjE,CACN,OAEKw6C,GAAU12C,EAGlB,CAED,KAAM62C,IAAc,IACdC,MAAsBjlC,KAE5B,kBAAiC7R,EAAoB6rC,EAAc,CAC5DkL,QAAa,GAAE/2C,KAAW6rC,IAC1BpR,EAASqc,GAAgBxpC,IAAIypC,CAApB,EACXtc,OAAWt2B,OACPs2B,SAGFuc,QAAuB,WACtBhgC,QAASyX,SAASnwB,cAAc,QAAvB,EACf0Y,EAAOwB,MAAQq+B,GACf7/B,EAAOyB,OAASo+B,GACVhV,QAAY,KAAMoV,IAAaj3C,CAAD,EAC9Bk3C,EAAKlgC,EAAOuB,WAAW,SAAU,CAAE4+B,sBAAuB,GAArD,EACP,IAACD,EACE,SAAIjmC,OAAM,2BAAV,EAGPmmC,MADiB,IAAIC,IAAaH,EAAIhiB,GAAW/b,MAAM0yB,CAAjB,EAAwBhK,CAA7C,EACRyV,SAAT,EACOtgC,EAAOugC,WAAd,KAEe/pC,cAAIupC,EAAWC,CAA/B,EACOA,CACP,CAEM,MAAMJ,EAAoE,CAIhFvlC,YAAYoN,EAA8BC,EAAgB84B,EAAgC,CACpFC,iBAAc,GACdD,kBAAeE,GAAaC,QAC5BC,qBAAgBn5B,CAArB,EACKo5B,oBAAeL,EAAc94B,CAAlC,CACA,CAEMo5B,cAAc30C,EAAgB,CAC7B,YAAKs0C,YAAYt0C,EAAG8I,WAC3B,CAEM8rC,aAAa50C,EAAgB,CAC5B,YAAKq0C,aAAaO,aAAa50C,CAA/B,CACP,CAEM60C,iBAAkB,CACjB,YAAKR,aAAaQ,iBACzB,CAEOJ,gBAAgBn5B,EAA8B,CACpD,IAAGA,EAAO/L,SAAX,EAAsB/E,QAAQ,CAAC,CAACxK,EAAIgK,KAAW,CACzCsqC,iBAAYviB,GAAW+C,OAAO90B,CAAlB,EAAsB8I,SAAcgsC,MAAW3iB,SAASnyB,EAAIgK,CAAxB,EADtD,EAGOkjB,cAAO,KAAKonB,WAAnB,EAAgC9pC,QAAQ5P,CAAKA,IAAEm6C,QAAQ,IAAV,CAA7C,CACA,CAEOL,eAAe94B,EAAyBo5B,EAAe,CACxDC,QAAc3pB,SAASnwB,cAAc,QAAvB,EACdd,EAAI66C,GAAgBt5B,EAAMvG,KAAP,EACnB7a,EAAI06C,GAAgBt5B,EAAMtG,MAAP,EACzB2/B,EAAY5/B,MAAQhb,EACpB46C,EAAY3/B,OAAS9a,EACf2a,QAAM8/B,EAAY7/B,WAAW,IAAvB,EACR+/B,YAAUv5B,EAAO,EAAG,CAAxB,EACA,KAAMw5B,GAAYjgC,EAAIK,aAAa,EAAG,EAAGnb,EAAGG,CAA1B,EAEZ66C,EAA4B,GAClC/qC,OAAOC,KAAKyqC,CAAZ,EAAsBxqC,QAAQxK,CAAM,GACnC,KAAM,CAACvH,EAAGgC,EAAG66C,EAAIC,GAAMP,EAASh1C,GAC1Bw1C,EAAOF,IAAOC,GAAMv1C,EAAG2L,WAAW,QAAd,EAA2B2pC,EAAKC,EAC1DF,EAAMtjB,GAAW+C,OAAO90B,CAAlB,EAAsB8I,YAAc,CAACrQ,EAAI4B,EAAGI,EAAID,EAAQ86C,MAAMj7C,EAAII,GAAI+6C,GAAOh7C,CAAzC,EAH3C,EAKK65C,kBAAe,GAAIE,IAAaa,EAAWC,CAA5B,CACpB,CA/C+E,CAkDjF,KAAMI,IAAsF,GAE5F,kBAAkC54C,EAAoB,CACjD,MAAC44C,IAAU54C,IACd44C,IAAU54C,GAAwB,WAC7B,IACOA,aAAW,KAAM64C,IAAc74C,CAAD,EACjC44C,GAAU54C,SACT9D,GACAwa,oBAAM,UAAWxa,CAAzB,EACM,GAAI+U,OAAO,mCAAkCjR,MAAYkR,GAAQhV,CAAD,GAAhE,CACN,OAEK08C,GAAU54C,EAGlB,CAEoCA,oBAAoB6P,EAAa6K,EAAmB,CAExF,KAAMnK,GAAM4O,CADC,KAAMgK,IAAYnpB,CAAD,GACb6P,GACjB,MAAKU,GACEuoC,GAAmBvoC,EAAKmK,CAAN,EADR,IAEjB,CAEM,YAA4BoE,EAAapE,EAAmB,CjM/HnE,MiMgIKq+B,MAAM,GACNl9C,EAAI,EACJJ,EAAI,EACDI,OAAIijB,EAAI3S,QAAQ,CACtB,KAAM6sC,GAAKl6B,EAAIjjB,KACXm9C,OAAO,IAAK,CACXn9C,MAAKijB,EAAI3S,OAAQ,CACb6sC,KACP,KACA,CACD,GAAIC,GAAKn6B,EAAIjjB,KACTo9C,OAAO,IACH,eACGA,IAAO,KAAOA,IAAO,IAC/BF,GAAOr+B,oBAASjf,OAATif,OAAiB,WACdu+B,GAAM,KAAOA,GAAM,IAAK,CAC9Bp9C,MAAKijB,EAAI3S,OAAQ,CACpB4sC,GAAOC,EAAKC,EACZ,KACA,CACGroC,MAAM,GACP,EACKqoC,MACPA,EAAKn6B,EAAIjjB,WACDA,EAAIijB,EAAI3S,QAAU8sC,GAAM,KAAOA,GAAM,KAC1CA,OAAO,IAAK,CACXp9C,MAAKijB,EAAI3S,OAAQ,CACpB4sC,GAAOC,EAAKpoC,EAAMqoC,EAClB,KACA,CACD,KAAMC,GAAKp6B,EAAIjjB,KACXq9C,OAAO,KAAOA,IAAO,IAAK,CACvBxe,QAAM7pB,SAASD,CAAD,EAAQ,EACxB,CAAC8J,GAAUy+B,MAAMze,CAAD,GAASA,EAAM,GAAKA,GAAOhgB,EAAOvO,OAC9C,MAEP4sC,GAAOr+B,EAAOggB,EACd,KAEDqe,IAAOC,EAAKpoC,EAAMqoC,CAClB,KAEDF,IAAOC,EAAKpoC,CACZ,KAEMooC,KACP,KAEMA,KAER,CACMD,QACP,CC5J6B,aAAErpB,YAAW+T,OAAO,CAAEhzB,MAAO,OAA7B,EAAwC2oC,SAAS,IAAe,CACvFxjC,QAAQgI,KAAKxE,UAAUsW,CAAf,EACR2pB,EAAQn+B,GAAQ,IAAM,CAC3B,KAAMm+B,GAAoB,GAC1BC,UAAe5pB,EAAW6pB,GAAMF,EAAM74B,KAAK+4B,CAAX,CAAlB,EACPF,GACL,CAACzjC,CAAD,CAJkB,EAMd,gBAAK,MAAM,iBAAX,UACLwjC,GAAU11C,SAAK,MAAO81C,GAAY/V,EAAM,EAAP,EAAvB,SACT4V,EAAMnuC,IAAIzP,GAAKiI,EAAC,GAAD,CAAU,KAAMjI,EAAG,OAAQ,GAA1C,GADS,EAGXiI,SAAK,MAAM,kBAAkB,MAAO81C,GAAY/V,EAAM,EAAP,EAA/C,SACE4V,EAAMnuC,IAAIzP,GAAKiI,EAAC,GAAD,CAAU,KAAMjI,EAA/B,GALI,GAAP,CAQA,CAED,YAAwBi0B,EAAoBod,EAAiC,CACxE,SAAOpd,IAAc,UAAY,MAAOA,IAAc,SAChD,GAAE+pB,KAAM/pB,EAAUzjB,SAAV,EAAT,UACEO,MAAMkE,QAAQgf,CAAd,EAA0B,CACpC,KAAM+T,GAAO/T,EAAU,GACvB4pB,GAAe7V,EAAMqJ,CAAP,EACT,SAAM3wC,KAAKuzB,GAAUvhB,MAAM,CAAhB,EACfmrC,GAAen9C,EAAGS,CAAKkwC,IAAS4M,GAAQ98C,EAAG6mC,CAAJ,CAAR,CAAjB,CAEL,eAAO/T,IAAc,UAAYA,IAAc,MACrD,SAAUA,IAEH,aAAeA,GADzBod,EAASpd,CAAD,EAGR,CAAU,QAAWA,GACZ,WAAKA,GAAL,CAAgB+pB,KAAM,OAAvB,EACR,CAAU,WAAc/pB,GACf,WAAKA,GAAL,CAAgB+pB,KAAM,SAAvB,EACR,CAAU,UAAa/pB,GACd,WAAKA,GAAL,CAAgB+pB,KAAO/pB,EAAkBiqB,SAA1C,EACE,OAASjqB,IACV,WAAKA,GAAL,CAAgB+pB,KAAO/pB,EAAkBkqB,KAA1C,EAEL,SAAWlqB,IACHxzB,cAAMwzB,GAAkBmqB,MAClCP,GAAep9C,EAAGC,CAAK2wC,IAAS4M,GAAQv9C,EAAGuzB,CAAJ,CAAR,CAAjB,CAIjB,CAED,YAAiBA,EAAmB+T,EAAgB,CAC5C,WACNhzB,MAAOgzB,EAAKhzB,MACZqpC,KAAMrW,EAAKqW,KACXC,OAAQtW,EAAKsW,OACbC,WAAYvW,EAAKuW,WACjBC,cAAexW,EAAKwW,eACjBvqB,EAEJ,CAED,KAAMwqB,IAAa,CAClBC,MAAO,CAAC,OAAQ,MAAT,EACPC,UAAW,CAAC,OAAQ,SAAT,EACXC,WAAY,CAAC,OAAQ,SAAT,EACZC,UAAW,CAAC,OAAQ,SAAT,EACXC,SAAU,CAAC,OAAQ,SAAT,EACVC,YAAa,CAAC,OAAQ,SAAT,EACbC,KAAM,CAAC,OAAQ,SAAT,EACNC,KAAM,CAAC,OAAQ,SAAT,EACNC,UAAW,CAAC,OAAQ,SAAT,EACXC,KAAM,CAAC,OAAQ,SAAT,EACNC,MAAO,CAAC,OAAQ,SAAT,EACPC,KAAM,CAAC,OAAQ,SAAT,EACNC,IAAK,CAAC,OAAQ,SAAT,EACLC,aAAc,CAAC,OAAQ,SAAT,EACdC,OAAQ,CAAC,OAAQ,SAAT,EACRC,MAAO,CAAC,OAAQ,SAAT,CAhBW,EAoBbC,GAAgB1tC,OAAOC,KAAKwsC,EAAZ,EAEtB,YAAkB,CAAEkB,OAAMhC,UAAgD,ClM1G1E,MkM2GKgC,KAAKC,UAAW,CACb,MAAEr7C,WAAYgyB,GAApB,EACM,CAAEhzB,MAAOs8C,GAAeC,GAAS,IAC/BC,GAAex7C,EAASo7C,EAAKC,UAAYD,EAAKK,IAAhC,EACnB,CAACz7C,EAASo7C,EAAKC,UAAW,GAAGD,KAAKK,OAALL,OAAa,CAA1C,EAFmC,EAG/B,iBAAM,MAAO5B,GAAY4B,EAAMhC,CAAP,EAAiBkC,mBAAcF,EAAKC,UAAnE,CACA,CACM,iBAAM,MAAO7B,GAAY4B,EAAMhC,CAAP,EAAxB,SAAyCgC,EAAK3B,KAArD,CACA,CAED,YAAqBiC,EAAkBtC,EAAkB,CACjD,OACN3oC,MAAOirC,EAAMjrC,OAAwB6K,aAASogC,EAAMjrC,KAA7B,EACpBypC,GAAWwB,EAAMjrC,OAAuB2oC,EAAS,EAAI,GACrDA,EAAS,cAAgBsC,EAAMjrC,OAClCkrC,WAAaD,EAAM5B,OAAS,GAAQ,OAAS31C,OAC7Cy3C,UAAYF,EAAM3B,SAAW,GAAQ,SAAW51C,OAChD03C,eAAiBH,EAAM1B,aAAe,GAClC0B,EAAMzB,gBAAkB,GAAQ,yBAA2B,YAC3DyB,EAAMzB,gBAAkB,GAAQ,eAAiB91C,OAEtD,CCnH2B,aAAEhB,KAAIiY,MAAK0gC,WAAU7hB,SAAS,CAAC,EAAG,CAAJ,EAAQ8hB,QAAe,CnMbjF,gBmMcO,MAAE/7C,WAAYgyB,GAApB,EACM,CAAEhzB,MAAOg9C,GAAmBT,GAAS,IAAM,CnMflD,MmMgBQ1rC,QAAM1M,EAAGgY,MAAM,GAAT,EAAcxO,KAAK,GAAnB,EACL6uC,YAAex7C,EAAU,QAAO6P,GAAlB,IAAd2rC,OAA0CA,GAAex7C,EAAU,SAAQ6P,GAAnB,GAC7D,CAAC7P,EAASmD,CAAV,CAHuC,EAIpC6sB,EAAc5U,oBAAK61B,UAAL71B,cAAc0I,KAC5BxQ,EAAO0c,EAAcpS,KAAKzE,MAAM6W,CAAX,EAA2BgsB,UAAkBC,GAAgB94C,CAAD,EAEjFktC,EAAYC,GAAehjC,IAAInK,CAAnB,EAEX,gBAAK,MAAM,eAAe,MAAO82B,GAAU,CACjDiiB,KAAOH,EAAO53C,OAAa,GAAE81B,EAAO,OACpCkiB,MAAQJ,EAAQ,GAAE9hB,EAAO,OAAS91B,OAClCi4C,IAAM,GAAEniB,EAAO,MAHT,YAKNv2B,EAAC,GAAD,CAAe,UAAW4P,EAAM,KAAM,CAAE7C,MAAO,OAAT,CAAtC,GACC2K,oBAAK6zB,eAAL7zB,cAAmBlQ,IAAI,CAAC,CAAE/H,KAAIksC,SAAuC,CAC/DgF,QAAOnF,GAAmB/rC,CAAD,EACzBusB,EAAmB,CAAC,CAAE2rB,UAAY,eAAcl4C,EAAG+J,QAAQ,IAAK,GAAhB,IAAwBuD,MAAO4jC,WAAMO,MAAQ,MAAQ,OAAlF,EACrBvF,WAAQ,GAAKgF,kBAAM/E,YAAa,IACnC5f,EAAUlP,KAAK,IAAK,CAAE66B,UAAY,qBAAoBhM,IAAtD,EAEM3rC,EAAC,GAAD,CAAe,YAAtB,CANA,GAQA0X,kBAAK61B,UAAWl8B,MACfqG,+BAAK61B,UAAL71B,cAAc3K,QAAUqrC,GACtBp4C,EAAC,GAAD,CAAe,UAAW,CAAE23C,UAAW,aAAcI,KAAM,CAAE,IAAGrgC,EAAI61B,QAAQxgC,MAAMxE,SAAS,EAA3B,EAA+BC,SAAS,EAAG,GAA3C,GAAL,EAAyDuE,MAAO,MAAjG,EADI,EAE9B/M,EAAC,GAAD,CAAe,UAAW,CAAE23C,UAAW,YAAa5qC,MAAO,MAAjC,CAA1B,IACD2K,wBAAK61B,UAAL71B,cAAc81B,OAAd91B,OAAsB,IAAIlQ,IAAI,CAACiR,EAAczY,EAAC,GAAD,CAAe,UAAWka,KAAKzE,MAAMgD,CAAX,EAAkB,KAAM,CAAE1L,MAAO,cAAespC,OAAQ,EAAhC,CAAlD,EAA9C,CAJe,CAdX,GAoBL3+B,kBAAKihC,eAAgB,IAAQ34C,EAAC,GAAD,CAAe,UAAW,CAAE23C,UAAW,mBAAoB5qC,MAAO,MAAxC,EAA1B,EAC5BqrC,GAAa1gC,qBAAKo1B,SAALp1B,OAAe,GAAK,GAAKi1B,GAAc3sC,EAAC,GAAD,CAAe,UAAW,CAAE23C,UAAW,kBAAmBI,KAAM,CAAE,GAAEpL,EAAYj1B,EAAIo1B,SAAW,GAAEH,GAAjC,CAAtC,EArB1E,EAsBLyL,GAAY/mC,gBACZrR,EAAC,GAAD,CAAe,UAAW,CAAE+1C,KAAMt2C,EAAIsN,MAAO,WAAnB,EAA1B,EACC2K,GAAO1X,EAAC,GAAD,CAAe,UAAW,CAAE23C,UAAW,gBAAiBI,KAAM,CAAChuC,OAAOC,KAAK0N,CAAZ,EAAiBjP,MAAlB,EAA2BsE,MAAO,WAAtE,EAFtB,GAtBP,GAAP,CA2BA,CAED,YAAyBF,EAAa,CAC/B8I,QAAM9I,EAAIrD,QAAQ,aAAc,EAA1B,EAA8Bc,WAAW,IAAK,GAA9C,EACZ,MAAOqL,GAAI,GAAG8wB,YAAgB9wB,IAAIlL,MAAM,CAAV,CAC9B,CCxDM,KAAM/J,IAAU,CACtBk4C,MAAO54C,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,2TAA5B,EADpE,EAEtB64C,QAAS74C,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,kcAA5B,EAFtE,EAGtB84C,WAAY94C,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,2JAA5B,EAHzE,EAItB+4C,YAAa/4C,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,8JAA5B,EAJ1E,EAKtBg5C,MAAOh5C,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,kIAA5B,EALpE,EAMtBi5C,aAAcj5C,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,iIAA5B,EAN3E,EAOtBk5C,aAAcl5C,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,gIAA5B,EAP3E,EAQtBm5C,cAAen5C,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,gIAA5B,EAR5E,EAStBo5C,WAAYp5C,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,gIAA5B,EATzE,EAUtBq5C,OAAQr5C,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,6XAA5B,EAVrE,EAWtB8nB,KAAM9nB,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,4NAA5B,EAXnE,EAYtBs5C,mBAAoBjoC,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,oBAAM,EAAE,gHAAR,EAA+HrR,UAAM,YAAU,UAAU,EAAE,yKAA9O,GAZE,EAatBu5C,KAAMv5C,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,qEAA5B,EAbnE,EActBw5C,eAAgBx5C,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,+ZAA5B,EAd7E,EAetBy5C,SAAUz5C,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,gCAA5B,EAfvE,EAgBtB05C,SAAU15C,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,qMAA5B,EAhBvE,EAiBtB25C,UAAWtoC,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,oBAAM,EAAE,uHAAR,EAAsIrR,UAAM,YAAU,UAAU,EAAE,gOAA5B,EAAmQA,UAAM,EAAE,gNAApe,GAjBW,EAkBtB45C,IAAK55C,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,0nBAA5B,EAlBlE,EAmBtB65C,WAAY75C,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,yxBAA5B,EAnBzE,EAoBtB2O,KAAM3O,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,uUAA5B,EApBnE,EAqBtB85C,eAAgB95C,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,+KAA5B,EArB7E,EAsBtB+5C,SAAU/5C,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,m1BAA5B,EAtBvE,EAuBtBg6C,KAAMh6C,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,kvEAA5B,EAvBnE,EAwBtBi6C,WAAYj6C,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,6JAA5B,EAxBzE,EAyBtBk6C,MAAOl6C,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,8rBAA5B,EAzBpE,EA0BtB8rB,MAAO9rB,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,snBAA5B,EA1BpE,EA2BtB3C,QAAS2C,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,sSAA5B,EA3BtE,EA4BtB8Y,KAAM9Y,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,oOAA5B,EA5BnE,EA6BtBm6C,aAAcn6C,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,+JAA5B,EA7B3E,EA8BtBo6C,iBAAkBp6C,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,EAAE,qHAAR,EA9B/E,EA+BtBkR,KAAMlR,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,kWAA5B,EA/BnE,EAgCtBq6C,cAAer6C,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,oWAA5B,EAhC5E,EAiCtB+rB,YAAa/rB,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,2jBAA5B,EAjC1E,EAkCtBs6C,KAAMt6C,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,mLAA5B,EAlCnE,EAmCtBu6C,QAASv6C,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,saAA5B,EAnCtE,EAoCtBw6C,OAAQx6C,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,6YAA5B,EApCrE,EAqCtBy6C,KAAMz6C,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,+KAA5B,EArCnE,EAsCtB06C,KAAM16C,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,iIAA5B,EAtCnE,EAuCtB26C,YAAa36C,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,8LAA5B,EAvC1E,EAwCtB46C,KAAM56C,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,0WAA5B,EAxCnE,EAyCtB66C,OAAQ76C,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,65BAA5B,EAzCrE,EA0CtB86C,KAAM96C,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,+bAA5B,EA1CnE,EA2CtBgL,OAAQhL,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,mIAA5B,EA3CrE,EA4CtB+6C,SAAU/6C,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,mUAA5B,EA5CvE,EA6CtBg7C,UAAW3pC,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,oBAAM,YAAU,UAAU,EAAE,iNAA5B,EAAoPrR,UAAM,EAAE,iHAA/U,GA7CW,EA8CtBm2B,OAAQn2B,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,qOAA5B,EA9CrE,EA+CtBi7C,YAAaj7C,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,yHAA5B,EA/C1E,EAgDtBuY,MAAOvY,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,8jBAA5B,EAhDpE,EAiDtBk7C,IAAKl7C,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,6sBAA5B,EAjDlE,EAkDtBm7C,KAAMn7C,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,mZAA5B,EAlDnE,EAmDtB0X,IAAK1X,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,kWAA5B,EAnDlE,EAoDtBo7C,SAAUp7C,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,wZAA5B,EApDvE,EAqDtBq7C,WAAYr7C,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,mMAA5B,EArDzE,EAsDtBs7C,SAAUt7C,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,mXAA5B,EAtDvE,EAuDtBu7C,OAAQv7C,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,EAAE,8hBAAR,EAvDrE,EAwDtBw7C,OAAQx7C,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,kMAA5B,EAxDrE,EAyDtB7G,EAAG6G,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,wLAA5B,EAzDhE,EA0DtBy7C,SAAUz7C,SAAK,MAAM,6BAA6B,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,mBAAM,YAAU,UAAU,EAAE,8RAA5B,EAAnF,CA1DY,ECgBK,aAAEmoC,OAAMuT,iBAAgBC,mBAA0B,CrMhB9E,QqMiBO9F,QAAKhlC,GAAuB,IAAjB,EACX,CAAC+qC,EAAeC,GAAoBnqC,EAA2B,CAAC,EAAG,CAAJ,CAAnB,EAC5C,CAACoqC,EAAaC,GAAkBrqC,EAAS,EAAD,EAE9ChS,GAAU,IAAM,CrMrBjB,MqMsBQs8C,QAAS,CAACxjD,EAAkB,CACjC4b,sBAAsB,IAAM,CACrB,MAAEqkC,QAAO3jC,SAAU+gC,EAAG/kC,QAASmrC,wBAC/B5D,EAAOI,EAAQ,IAAM1tB,SAASvW,KAAKT,YACzCgoC,EAAe1D,CAAD,EACG,GAASvjC,KAAQtc,EAAEob,QAAUpb,EAAEob,SAAW,GAAIpb,EAAEqb,QAAU,EAA1D,CAAD,EAJI,GAOnB/C,6BAASyD,iBAAiB,YAAaynC,GACnC,KrM/BT,MqM+BenG,WAAG/kC,UAAH+kC,cAAYphC,oBAAoB,YAAaunC,GAVlD,EAWN,CAXM,GAaHrP,QAAYC,GAAehjC,IAAIu+B,EAAK1oC,EAAxB,EAEX,gBAAK,MAAM,eAAe,IAAKo2C,EAA/B,UACN71C,EAAC,GAAD,CAAY,MAAZ,GACCmoC,EAAK/F,QAAU,GAAKpiC,MACpB,kBAAK,MAAM,aAAa,MAAM,OAAO,OAAO,OAAO,QAAQ,cAAc,oBAAoB,gBAC5F,oBAAM,EAAE,KAAK,EAAE,KAAK,YAAU,KAAK,WAAW,MAAM,WAAW,iBAAiB,KAAK,UAArF,SAAgGmoC,EAAK/F,MAArG,EACApiC,UAAM,EAAE,KAAK,EAAE,KAAK,YAAU,KAAK,WAAW,MAAM,WAAW,iBAAiB,KAAK,UAArF,SAAgGmoC,EAAK/F,MAFtG,KAHK,EAQLsZ,GAAkBrqC,gBAChBs7B,GAAcxE,SAAKzwB,MAALywB,cAAU2E,SAAV3E,OAAoB,GAAK,GAAM92B,SAAK,MAAM,kBAAkB,MAAM,OAAO,OAAO,OAAO,QAAQ,YAC9G,oBAAM,EAAE,IAAI,EAAE,KAAK,MAAM,KAAK,OAAO,IAAI,KAAK,OAA9C,EACArR,UAAM,EAAE,IAAI,EAAE,KAAK,MAAQ,GAAG2sC,GAAYxE,EAAKzwB,IAAIo1B,QAAUH,EAAY,KAAM,OAAO,IAAI,KAAO,OAAOA,GAAYxE,EAAKzwB,IAAIo1B,QAAUH,EAAY,qBAFrG,KAI/C3sC,SAAK,MAAM,oBALO,KAOnBA,EAAC,GAAD,SAAiBmoC,GAAjB,CAAuB,SAAUwT,EAAiB,OAAQC,EAAe,KAAME,GAfzE,GAAP,CAiBA,CAED,YAAoB,CAAE3T,QAAe,CrMvDrC,gBqMwDO,MAAE7rC,WAAYgyB,GAApB,EACM,CAAC4tB,EAASC,GAAczqC,EAAS,EAAD,EAEhC0qC,EAAoB1kC,gCAAK6zB,eAAL7zB,cAAmBjP,SAAnBiP,OAA6B,GAAK,GAAWA,gCAAK2kC,qBAAL3kC,cAAyBjP,SAAzBiP,OAAmC,GAAK,EAE3GwkC,MAAY/T,EAAK1oC,GAAGmY,SAAS,GAAjB,GAAyB,CAACuwB,EAAK1oC,GAAG2L,WAAW,YAAnB,EAClC1K,UAAQ65C,QAGV,MAAEj/C,MAAO8hB,GAAgBy6B,GAAS,IAAM51B,GAAe3lB,CAAD,EAAW,CAAhC,GAEnC8gB,OAAgB3c,OACZ,YAGR,KAAM67C,GAAe,QAAOnU,EAAK1oC,GAAG+J,QAAQ,cAAe,EAA/B,IACxB4T,KAAYxT,IAAI,SAAhB,EAA2BgO,SAAS,aAAe0kC,CAAnD,EAAiE,CAC9DlhC,QAAMmhC,GAAYjgD,EAAS,WAAYggD,CAAtB,EAChB,aACN,mBAAK,MAAU,IAAI,GAAG,QAAS,IAAMH,EAAW,EAAD,EAAQ,UAAW,GAD5D,EAELC,GAAep8C,SAAK,MAAM,aAAa,MAAO,CAAC,eAAiB,QAAOob,KAAzB,EAFzC,GAAP,CAIA,CAED,KAAMohC,GAAa,QAAOrU,EAAK1oC,GAAG+J,QAAQ,cAAe,EAA/B,IACtB4T,SAAYxT,IAAI,OAAhB,EAAyBgO,SAAS,aAAe4kC,CAAjD,EACIx8C,EAAC,GAAD,CAAc,OAAY,cAAjC,EAGMU,GAAQ65C,OACf,CAED,YAAsB,CAAEpS,OAAMiU,eAAiD,CACxE,MAAE9/C,WAAYgyB,GAApB,EACM,CAAEhzB,MAAO8f,GAAQy8B,GAAS,IAAM4E,GAAWngD,EAAS6rC,EAAK1oC,EAAf,EAAoB,CAACnD,EAAS6rC,CAAV,CAArC,EAE/B,MAAI/sB,GACI/J,MACN,mBAAK,MAAU,IAAK82B,EAAK1oC,GAAI,MAAM,QAAQ,UAAW,GADhD,EAEL28C,GAAep8C,SAAK,MAAM,aAAa,MAAO,CAAC,eAAiB,QAAOob,KAAzB,EAFzC,GAAP,EAMMpb,SAAK,MAAM,eAAX,SACLU,GAAQ65C,QADV,CAGA,CC5FM,KAAMmC,IAAmB,CAAC,CAAEnxC,UAAyB,CACrD,MAAE5P,UAAW+uB,GAAnB,EACM,CAAEpuB,WAAYgyB,GAApB,EACM,CAAC5kB,EAAMk8B,GAAWl0B,EAASm0B,GAAD,GAC1B,CAAC4D,EAAMkT,GAAWjrC,EAAS,CAAD,EAC1B,CAACk4B,EAASgT,GAAclrC,EAAS,CAAD,EAChC,CAACg4B,EAASmT,GAAcnrC,EAAS,OAAD,EAChC,CAACorC,EAAUC,GAAerrC,EAAS,EAAD,EAClC,CAACsrC,EAAkBC,GAAuBvrC,EAAS,EAAD,EAClDyG,EAAUtH,GAAuB,IAAjB,EAEhB,CAAC03B,EAAO2U,GAAYxrC,EAAwB,CAAhB,GAE5BhL,EAAQ+b,YAAUuL,YAAYziB,CAAtB,EACR2G,EAAQgI,KAAKxE,UAAUhP,CAAf,EACdhH,UAAU,IAAM,CACT6oC,QAAQ4U,GAAkBz2C,EAAO,CAAEpK,UAASoN,OAAM+/B,OAAMG,UAASF,UAASrB,WAAYyU,EAAW,YAAc,UAAtF,EAC/BI,EAAS3U,CAAD,GACN,CAACjsC,EAASoN,EAAM+/B,EAAMG,EAASF,EAASoT,EAAU5qC,CAAlD,CAHM,EAKFb,MACN,mBAAK,IAAK8G,EAAS,MAAM,kBACxB,mBAAK,IAAI,wBAAwB,IAAI,uBAAuB,MAAM,YAAY,UAAW,GAAzF,EACCowB,EAAM/gC,IAAI,CAAC,CAAEwhC,OAAMb,UACnBnoC,SAAgB,MAAOo9C,GAAUpU,CAAD,EAAhC,SACChpC,EAAC,GAAD,CAAa,OAAY,eAAgB,GAAM,gBAAiBg9C,EAAhE,GADShU,CAAV,CADA,CAFF,IAQA33B,SAAK,MAAM,4BAAX,UACCA,EAAC,GAAD,CAAS,KAAK,OAAO,QAAS1V,EAAO,UAAD,EACnC,mBAAK,MAAM,gBAAgB,QAASnD,CAAKA,IAAEyY,gBAA3C,EACC,oBAAOtV,WAAO,cAAD,EADd,EAECqE,EAAC,GAAD,CAAa,MAAOypC,EAAM,SAAUkT,EAFrC,KAIAtrC,SAAK,MAAM,gBAAgB,QAAS7Y,CAAKA,IAAEyY,gBAA3C,EACC,oBAAOtV,WAAO,iBAAD,EADd,EAECqE,EAAC,GAAD,CAAa,MAAO4pC,EAAS,SAAUgT,EAFxC,KAIAvrC,SAAK,MAAM,gBAAgB,QAAS7Y,CAAKA,IAAEyY,gBAA3C,EACC,oBAAOtV,WAAO,iBAAD,EAAb,EACAqE,YAAQ,MAAO0pC,EAAS,SAAUlxC,GAAKqkD,EAAYrkD,EAAEmY,OAA6BrV,KAAjC,EAC/C,UAAC,QAAS,OAAQ,SAAlB,EAA6BkM,IAAItN,CACjC,cAAQ,MAAOA,EAAf,SAAmByB,EAAQ,mBAAkBzB,GAApB,EADzB,GAHH,GATD,EAgBC8F,EAAC,GAAD,CAAK,KAAM88C,EAAW,cAAgB,SAAU,MAAM,0BAA0B,QAAStkD,CAAK,GAACukD,EAAY,CAACD,CAAF,EAAatkD,EAAEyY,gBAAF,CAAoB,EAhB5I,EAiBCjR,EAAC,GAAD,CAAK,KAAMg9C,EAAmB,cAAgB,SAAU,MAAM,oBAAoB,QAASxkD,CAAK,GAACykD,EAAoB,CAACD,CAAF,EAAqBxkD,EAAEyY,gBAAF,CAAoB,EAjB9J,GADD,EAoBCjR,EAAC,GAAD,CAAK,KAAK,OAAO,QAASrE,EAAO,mBAAD,EAAuB,QAAS,IAAMiqC,EAAQC,IAAD,EApB9E,GATM,GAAP,CAgCA,EAEKwX,GAAY,IACZC,GAAa,GACbC,GAAY,GAElB,YAAmBvU,EAAc,CACzBpT,KAAMoT,EAAM,EAAG,EAAV,EACN7vC,QAAK6vC,EAAO,EAAKuU,GAAY,EAC7B5kD,EAAKwQ,KAAKC,MAAM4/B,EAAO,CAAlB,EAAwBuU,GAAY,GACxC,OACN/E,KAAO,GAAEr/C,EAAE,IAAIkkD,MACf3E,IAAM,GAAE//C,EAAE,IAAI2kD,MACdxoC,MAAQ,GAAEyoC,GAAU,IAAIF,MACxBtoC,OAAS,GAAEwoC,GAAU,IAAID,MAE1B,CCrEYE,SAAa,CAAC,aAAc,YAAa,4BAA6B,iBAAkB,0BAA2B,8BAA+B,yBAArI,EASG,aAAE/zC,QAAOnN,UAASmD,KAAIkmC,SAA4B,CvMlB/E,MuMmBC,KAAM,EAAG8X,GAAY/rC,EAAS,CAAD,EAM7B,GAJAgsC,GAASj0C,EAAO,IAAM,CACZ24B,KAASA,EAAQ,CAAlB,EADD,EAIJ,CAAC34B,EAAc,SAAPk0C,OAERl+C,OAAO,aAAc,CAClB8L,QAAO9B,EAAMG,IAAI,GAAIC,GAAK,MAAT,EAAV,EACT0B,KAAM,MAAOvL,GAAC,GAAD,CAAwByJ,QAAOnN,UAASqpC,QAAOp6B,OAAtD,CACV,CAEG9L,OAAO,aAAegK,MAAMG,IAAI,GAAIC,GAAK,MAAC,YAAa,MAAd,CAAT,CAAV,kBAA4C+zC,SAAS,UAAU,CAClFryC,QAAO9B,EAAMG,IAAI,GAAIC,QAAK,CAAC,YAAa,cAAd,CAAT,CAAV,EACT0B,KAAM,MAAOvL,GAAC,GAAD,CAA0ByJ,QAAOnN,UAASqpC,QAAOp6B,OAAxD,CACV,CAEG9L,OAAO,4BAA6B,CACjC8L,QAAO9B,EAAMG,IAAI,GAAIC,GAAK,MAAT,EAAV,EACT0B,KAAM,MAAOvL,GAAC,GAAD,CAA8ByJ,QAAOnN,UAASqpC,QAAOp6B,OAA5D,CACV,CAEG9L,OAAO,iBAAkB,CACtB8L,QAAO9B,EAAMG,IAAI,GAAIC,GAAK,MAAT,EAAV,EACT0B,KAAM,MAAOvL,GAAC,GAAD,CAAoByJ,QAAOnN,UAASqpC,QAAOp6B,OAAlD,CACV,CAEG9L,OAAO,0BAA2B,CAC/B8L,QAAO9B,EAAMG,IAAI,GAAIC,GAAK,MAAT,EAAV,EACT0B,KAAM,MAAOvL,GAAC,GAAD,CAA4ByJ,QAAOnN,UAASqpC,QAAOp6B,OAA1D,CACV,CAEI9L,OAAO,2BAA+BA,IAAO,+BAAiC2uB,GAAa9xB,EAAS,OAAQ,MAAlB,EAA6B,CACrHiP,QAAO9B,EAAMG,IAAI,GAAIC,GAAK,MAAT,EAAV,EACT0B,KAAM,MAAOvL,GAAC,GAAD,CAAwByJ,QAAOnN,UAASqpC,QAAOp6B,OAAtD,CACV,CAEM,SAAPoyC,MACA,CC7C+B,aAAE9vB,WAAkB,CAC7C,MAAElyB,UAAW+uB,GAAnB,EACM,CAAE5E,WAAU4C,gBAAeC,gBAAeC,iBAAkBkF,GAAlE,EAEM,CAACle,EAAMiuC,GAAWnsC,EAAS,EAAD,EAC1B,CAAC0W,EAAW01B,GAAgBpsC,EAAS,EAAD,EACpC,CAACpV,EAASE,GAAckV,EAAS+P,EAAD,EAChC,CAAC9S,EAAMovC,GAAWrsC,EAA2BjR,MAAnB,EAC1B,CAACu9C,EAAUC,GAAevsC,EAAS,EAAD,EAElC+Z,EAAW,CAAC9c,EAAe,CAC5BA,EAAKnP,KAAK0Z,MAAM,uCAAhB,GACCtJ,GAAKnH,SAAW,GACXkG,IAAKiB,KACXpG,QAAQ,SAAU,EADZ,EAENc,WAAW,UAAW,GAFhB,CAAD,EAIRyzC,EAAQpvC,CAAD,EACP,EAGIuvC,EAAiBrtC,GAAO+X,CAAD,EAC7BlpB,GAAU,IAAM,CACfw+C,EAAeptC,QAAU8X,GACvB,CAACA,CAAD,CAFM,EAIHu1B,QAAW,IAAM,CACtBF,EAAY,EAAD,EACGruC,IAAMwY,GAAa3nB,OAAWnE,CAA/B,EACbqsB,EAAc/Y,CAAD,EACb,CAAIjB,CACHyvC,GAAQzvC,CAAD,EAAOoE,KAAK,KAAO/D,IAAY,CACrC,KAAMyZ,GAA4B,CAAEJ,MAAO,IACrChZ,cAAQC,IAAIN,EAAQxH,IAAI,KAAO0I,IAAU,CACxCvB,QAAO0vC,GAAenuC,EAAM,EAAP,EAC3B,GAAIvB,EACC,IACGpD,QAAO,KAAM+yC,IAAYpuC,EAAM,GAAI,MAAX,EAC9BuY,EAAQJ,MAAOvL,KAAK,SAAKnO,GAAL,CAAWpD,QAA/B,QACQ/S,GACAwa,cAAO,kBAAiBrE,EAAKnP,QAAQmP,EAAKlP,OAAO+N,GAAQhV,CAAD,GAAhE,CACA,CARe,EAAZ,EAWN0lD,EAAeptC,QAAQ2X,CAAvB,EACO,IAdR,EAeG81B,MAAM,IAAM,CACP,IAhBR,EAmBO,GACP,EAGIC,EAAchnC,GAAQ,IACpBsO,EAASte,IAAIzP,CAAKA,IAAE6X,KAAK1D,OAAOyiB,YAAhC,GAA+C/W,SAAShI,EAAK1D,KAAL,EAAYyiB,aAApE,EACL,CAAC7I,EAAUlW,CAAX,CAFwB,EAIrB6uC,EAAmBjnC,GAAQ,IACzB,CAAY/O,YAAW,GAAK2f,EAAUlP,MAAM,mCAAhB,GACjC,CAACkP,CAAD,CAF6B,EAI1B/b,EAAW5F,GAAO4F,SAAS7E,IAAItN,GAAKA,EAAEuF,EAA3B,EAA4Cq+B,UAE7D,MAAOzsB,GAAC,GAAD,CAAO,MAAM,mBAAmB,UAAWwc,EACjD,iBAAIlyB,WAAO,gBAAD,EAAV,EACA0V,SAAK,MAAM,cAAX,UACCrR,EAAC,GAAD,CAAW,UAAX,GAAqB,MAAQ,gBAAe,CAACg+C,OAA4BpuC,EAAKnH,SAAW,GAAK,WAAY,KAAM,YAAa9M,EAAO,cAAD,EAAkB,MAAOiU,EAAM,SAAUiuC,CAA5K,GACC,CAACG,GAAYQ,GAAex+C,SAAK,MAAM,sCAAkDrE,eAAO,6BAAD,EAAnE,SAAqG+E,GAAQy5C,aAF3I,KAIA9oC,SAAK,MAAM,cAAX,UACCrR,EAAC,GAAD,CAAW,MAAQ,gBAAe,CAACg+C,GAAYS,EAAmB,WAAa,KAAM,YAAa9iD,EAAO,mBAAD,EAAuB,MAAOysB,EAAW,SAAU01B,CAA3J,GACC,CAACE,GAAYS,GAAoBz+C,SAAK,MAAM,sCAAkDrE,eAAO,2BAAD,EAAnE,SAAmG+E,GAAQy5C,aAF9I,GANM,EAUNn6C,EAAC,GAAD,CAAS,KAAK,MAAM,MAAO1D,EAAS,QAASX,EAAO,gBAAD,EAAoB,UAAQ,mBAA/E,SACE0Q,EAAS7E,IAAItN,GACb8F,EAAC,GAAD,CAAK,MAAO9F,EAAG,OAAQA,IAAMoC,EAAS,QAAS,IAAME,EAAWtC,CAAD,EAD/D,GAXI,EAeN8F,EAAC,GAAD,CAAY,MAAO2O,EAAM,SAAU8c,EAAU,MAAO9vB,EAAO,iBAAD,EAAqB,OAAO,OAfhF,EAgBNqE,EAAC,GAAD,CAAK,KAAK,SAAS,MAAM,UAAU,SAAUg+C,GAAYQ,GAAe5uC,EAAKnH,SAAW,GAAKg2C,EAAkB,QAASN,EAhBlH,GAAP,CAkBA,CCvF+B,aAAEtwB,WAAkB,CAC7C,MAAElyB,UAAW+uB,GAAnB,EACM,CAAE5E,WAAU2C,UAASxpB,iBAAkB6uB,GAA7C,EAEMC,EAAS,IAAM,CACpBlzB,GAAUoE,cAAc6mB,EAASrd,OAAQggB,EAAQJ,MAAM5f,OAAQ,MAA/D,EACAxJ,EAAcwpB,EAAQ7Y,IAAT,EACN,KAGR,MAAOyB,GAAC,GAAD,CAAO,MAAM,aAAa,UAAWwc,EAC3C,0BAAIlyB,EAAO,2BAA4B8sB,EAAQ7Y,IAArC,EAAV,EACA5P,OAAG,gBAAIrE,WAAO,0BAAD,EAAV,EAAH,EACA0V,SAAK,MAAM,eAAX,UACCrR,EAAC,GAAD,CAAK,KAAK,WAAW,MAAOrE,EAAO,gBAAD,EAAoB,QAASoyB,EAAQ,MAAM,SAD9E,EAEC/tB,EAAC,GAAD,CAAK,MAAOrE,EAAO,gBAAD,EAAoB,QAASkyB,EAFhD,GAHM,GAAP,CAQA,CCtBD,KAAM6wB,IAAY,IAqBO,aAAE1vC,UAAS4d,WAAU+xB,WAAUC,UAAS76B,SAAQQ,UAAiB,CACnFs6B,QAAQrnC,GAAQ,IAAM,C1M1B7B,M0M2BQsnC,QAAmC,GACzC,SAAW5uC,KAASlB,GAAS,CACtB7W,QAAI+X,EAAM1F,QAAQk0C,EAAd,EACNvmD,MAAK,EAAG,CACLq7B,QAAOtjB,EAAMzF,MAAM,EAAGtS,CAAf,EACX2mD,uBAAiB,IAAIhiC,KAAK5M,EAAMzF,MAAMtS,EAAI,CAAhB,CAA3B,CACD,CACD,CACM4R,cAAOiF,QAAQ8vC,CAAf,EAAuBt3C,IAAI,CAAC,CAAClP,EAAG0W,KAAa,CAC7C+vC,QAAcH,iBAASp3C,IAAIzO,CAAM,WAAKA,GAAL,CAAQimD,SAAU,CAACxmD,EAAcO,EAAEimD,SAAS1mD,EAAIomD,GAAYlmD,CAA3B,CAApD,IACdymD,EAAal7B,iBAAQqf,QAAQ5qC,CAAKA,IAAEuS,KAAKK,WAAW9S,EAAIomD,EAAtB,EAAmC,CAAC,SAAKlmD,GAAL,CAAQuS,KAAMvS,EAAEuS,KAAKN,MAAMnS,EAAEmQ,OAASi2C,GAAUj2C,MAAlC,GAAf,EAA8D,CAAtH,GACnB,MAAO,CAACnQ,EAAG0W,EAAS+vC,EAAaE,CAA1B,EAHD,EAIJpnC,KAJH,CAKE,GAAC7I,EAAS4vC,EAAS76B,CAAnB,CAdkB,EAgBfm7B,EAAS1nC,GAAQ,IACfxI,EAAQO,OAAO/W,GAAK,CAACA,EAAEof,SAAS8mC,EAAX,CAArB,EACL,CAAC1vC,CAAD,CAFmB,EAIhB,CAACmwC,EAAQC,GAAa1tC,EAAS,GAAIqK,IAAL,EAC9BsjC,EAAS,CAAC7rB,EAAiB,CAC5B2rB,EAAO/iC,IAAIoX,CAAX,EACH2rB,EAAOloC,OAAOuc,CAAd,EAEA2rB,EAAOtvC,IAAI2jB,CAAX,EAES,KAAIzX,KAAIojC,CAAR,CAAD,GAGH,gBAAK,MAAM,YAAY,MAAQ,aAAY56B,UAAU,KAArD,UACLs6B,EAAMr3C,IAAI,CAAC,CAAClP,EAAG0W,EAAS4vC,EAAS76B,KAAY1S,C1MzDhD,M0MyDgDA,0BAC7CrR,EAAC,GAAD,CAAe,KAAMm/C,EAAO/iC,IAAI9jB,CAAX,EAAgB,gBAAkB,eAAwB,MAAOA,EAAG,QAAS,IAAM+mD,EAAO/mD,CAAD,EAAK,MAAgBmQ,qCAAU,GAAK,GAAtEnQ,CAA5E,EACC,CAAC6mD,EAAO/iC,IAAI9jB,CAAX,GACD0H,EAAC,GAAD,CAAU,QAASgP,EAAS,SAAUxW,CAAKo0B,IAAU,GAAEt0B,IAAIomD,KAAYlmD,GAApB,EAClD,SAAUmmD,WAAUvzC,WAAW9S,EAAIomD,IAAaC,EAASlzC,UAAUnT,EAAEmQ,OAAS,CAA9B,EAAmChI,OACnF,QAASm+C,EAAS,OAAQ76B,EAAQ,kBAAmB,GAAK,EALf,GAA7C,IAOAm7B,EAAO13C,IAAIhP,I1MhEd,M0MgEmBwH,SAAC,GAAD,CAAe,KAAK,OAAe,MAAOxH,EAAG,OAAQA,IAAMmmD,EAAU,QAAS,IAAM/xB,EAASp0B,CAAD,EAAK,QAASomD,iBAASp3C,IAAIzO,CAAM,WAAKA,GAAL,CAAQimD,SAAU,IAAMjmD,EAAEimD,SAASxmD,CAAX,KAAmB,MAAOurB,oBAAQjZ,KAAKw0C,GAAMA,EAAGv0C,OAASvS,KAA/BurB,cAAmCvW,SAAlLhV,CAAhC,EAAhB,CARK,EAAP,CAUA,CAUD,YAAuB,CAAEyH,OAAM/E,QAAOgF,SAAQK,UAASq+C,UAAS5rC,SAA6B,CACtF,MAACgzB,EAASuZ,GAAYtnC,GAA5B,EAQO,gBAAK,MAAQ,QAAOjF,EAAQ,aAAe,KAAK9S,EAAS,UAAY,KAAK8lC,EAAU,WAAa,KAAM,UAAkB,cAP1G,CAAC/Z,EAAoB,CAC1CA,EAAIN,eAAJ,EACIizB,WAASn2C,QACJ,GACR,EAGK,UACL/H,GAAQT,GACTD,mBAAO9E,EAAMoP,WAAW,SAAU,GAA3B,CAAP,GACC,MAAO0I,IAAU,UAAYhT,SAAK,MAAM,uCAAuC,aAAYgT,EAA9D,SAC5BtS,GAAQy5C,aAJJ,EAMLnU,GAAWhmC,SAAK,MAAM,aAAX,SACV4+C,iBAASp3C,IAAIzO,GAAKsY,SAAK,MAAM,SAAS,QAAS7Y,CAAK,GAAEO,EAAEimD,SAAS,EAAX,EAAgBxmD,EAAEyY,gBAAF,EAAqBsuC,EAAS,EAAD,CAAjF,EAA6F7+C,aAAQ3H,EAAEkH,MAAOlH,EAAEmC,KAAhH,EAAlB,GAPI,GAAP,CAUA,CCxE4B,aAAEskD,WAAUrB,WAAUsB,mBAA0B,CACtE,MAAE9jD,UAAW+uB,GAAnB,EACM,CAAEpuB,WAAYgyB,GAApB,EACM,CAAExI,WAAU2C,UAASE,gBAAeha,OAAMma,WAAUD,cAAeiF,GAAzE,EAEM,CAAC4xB,EAActiD,GAAmBsU,EAAS+S,GAAM4B,iBAAP,EAE1Cs5B,EAAqBhtC,GAAY,CAACwU,EAAiB,CACxD1C,GAAMrnB,gBAAgB+pB,CAAtB,EACAtsB,GAAUuC,gBAAgB+pB,CAA1B,EACA/pB,EAAgB+pB,CAAD,CAHsB,EAInC,CAJmC,GAMhCy4B,EAAcjtC,GAAY,CAACzC,EAAkB,CAC9CwvC,OAAiB,aAAexvC,IAAU,cAAe,CACtD,MAAC1Q,EAAMC,GAAMyQ,EAAMuH,MAAM,GAAZ,EACZ,OACNjY,KAAMA,EAAK8K,WAAW,SAAU,GAA1B,EACN7K,GAAIA,EAAG6K,WAAW,SAAU,GAAxB,EAEL,CACM+zC,UAAenuC,CAAD,GACnB,CAACwvC,CAAD,CAT4B,EAWzB1wC,EAAUwI,GAAQ,IAAMiR,EAAQJ,MAAM+a,QAAQ7qC,CAAK,GAClDwS,QAAO80C,GAAYtnD,CAAD,EACxB,MAAKwS,GACDxS,EAAEiH,OAAS,cAAsB,cACjCkgD,IAAiB,YACb,CAAE,GAAEnnD,EAAEiH,KAAK8K,WAAW,IAAK,QAAvB,KAAoC/R,EAAEkH,GAAG6K,WAAW,IAAK,QAArB,GAAxC,EAED,CAACS,CAAD,EALW,EAFW,GAQ1B,CAAC20C,EAAc,GAAGj3B,EAAQJ,KAA1B,CARmB,EAUjBs2B,EAAWnnC,GAAQ,IAAM7I,GAAQkxC,GAAYlxC,CAAD,EAAQ,CAACA,CAAD,CAAlC,EAElBmxC,EAAantC,GAAY,CAACzC,EAAkB,CAC3CvB,QAAOixC,EAAY1vC,CAAD,EACxB,CAAIvB,EACMA,IAAKnP,KAAMmP,EAAKlP,EAAjB,CACR,EACC,CAACmgD,CAAD,CAL2B,EAOxBlG,EAAW7oC,GAA0B,IAApB,EAEjBkvC,EAAa,SAAY,CAC9B,GAAI,CAACrG,EAAS5oC,QAAS,OACnBkvC,MAAU,GACRhxC,QAAUyZ,EAAQJ,MAAM+a,QAAQz0B,CAAQ,GACvC5D,QAAO80C,GAAYlxC,CAAD,EACxB,MAAI5D,KAAStK,OAAkB,GAC3BsK,KAAS,eAAyB,OAC/B,CAAC,CAACA,EAAMk1C,GAAgBtxC,EAAKpD,IAAN,CAAtB,CAAD,GAJQ,EAMZ,IAACy0C,EAAS,CACP1zC,QAAc7F,GAAO4F,SAASvB,KAAK5Q,GAAKA,EAAEuF,KAAOnD,CAAnC,EAA6CgQ,YACzDwQ,OAAK,CAAC,cAAemjC,GAAgB,CAAEC,KAAM,CAAE5zC,cAAa6zC,YAAa,EAA5B,CAAT,EAA/B,CAAb,CACA,CACK91C,QAAM,KAAM+1C,IAASpxC,CAAD,EACjB8B,UAAQsZ,aAAa,OAAQ/f,CAAtC,EACSyG,UAAQsZ,aAAa,WAAa,GAAE3B,EAAQ7Y,KAAKtF,WAAW,IAAK,GAA7B,OAA7C,EACAovC,EAAS5oC,QAAQuvC,OAAjB,EAGKzB,EAAUpnC,GAAuB,IAAM,CAC5C,CACCvX,KAAM,SACN/E,MAAOS,EAAO,qBAAD,EACbqjD,SAAWxmD,CAAM,GACVmW,QAAOixC,EAAYpnD,CAAD,EACxB,CAAImW,EACH6wC,EAAS7wC,CAAD,CAET,GAEF,CACC1O,KAAM,WACN/E,MAAOS,EAAO,qBAAD,EACbqjD,SAAWxmD,CAAM,GACVmW,QAAOixC,EAAYpnD,CAAD,EACxB,CAAImW,EACO5P,sBAAkB4P,EAAKnP,KAAMsmB,EAASrd,OAAQggB,EAAQJ,MAAM5f,OAAQ,MAA9E,EACAogB,EAAWla,EAAKnP,KAAMmP,EAAKlP,GAAI,CAArB,GAEX,CApB0C,GAsB1C,CAACmgD,EAAa/2B,EAAY22B,CAA1B,CAtBoB,EAwBhB,aACN,mBAAK,MAAM,mBAAX,UACCx/C,EAAC,GAAD,CAAS,KAAK,eAAe,MAAOyoB,EAAQ7Y,KAAM,QAASjU,EAAO,gBAAD,EAAoB,WAAW,KAAhG,SACEmqB,EAASte,IAAIzP,GAAKiI,EAAC,GAAD,CAAK,MAAOjI,EAAE6X,KAAM,OAAQ7X,EAAE6X,OAAS6Y,EAAQ7Y,KAAM,QAAS,IAAM+Y,EAAc5wB,EAAE6X,IAAH,EAAnG,GAFH,EAICyB,EAAC,GAAD,CAAS,KAAK,mBAAd,UACCrR,EAAC,GAAD,CAAK,KAAK,WAAW,MAAOrE,EAAO,kBAAD,EAAsB,QAASokD,EADlE,EAEC//C,EAAC,GAAD,CAAK,KAAK,cAAc,MAAOrE,EAAO,aAAD,EAAiB,QAASwiD,EAFhE,EAGCn+C,EAAC,GAAD,CAAK,KAAM0/C,IAAiB,YAAc,aAAe,OAAQ,MAAO/jD,EAAO+jD,IAAiB,YAAc,0BAA4B,wBAA5D,EAAuF,QAAS,IAAMC,EAAmBD,IAAiB,YAAc,QAAU,WAA1C,EAHvM,EAIEj3B,EAAQ7Y,OAASmW,GAAcnW,MAAQ5P,EAAC,GAAD,CAAK,KAAK,WAAW,MAAOrE,EAAO,gBAAD,EAAoB,QAAS8jD,EAJxG,GAJD,KAWAz/C,SAAK,MAAM,YAAX,SACEgP,EAAQvG,SAAW,EACjBzI,UAAOrE,WAAO,kBAAD,EADf,EAEEqE,EAAC,GAAD,CAAU,UAAkB,WAAoB,SAAU8/C,EAAY,UAAtE,EAHJ,EAKA9/C,OAAG,IAAK05C,EAAU,MAAM,iBAjBlB,GAAP,CAmBA,CC9HM,YAAmBjwC,EAAkByY,EAAsC,CAC1EzY,SAAM+Y,OAAO89B,KAAKC,GAAiB,GAAIC,aAAU/2C,CAAd,EAAsBA,EAAM8B,KAAM,CAAE2W,cAAvE,CACP,CAKM,KAAMq+B,IAAiD,CAC7DxgB,KAAK,GAAInmC,EAAG0B,EAAO,CACXA,QAFqD,EAK7DmlD,OAAO,CAAEC,cAAc31C,EAAMzP,EAAOwc,EAAO,CACnC4oC,SAAWJ,KAAK,KAAMv1C,EAAMzP,EAAOwc,CAAnC,CANqD,EAS7D6oC,KAAK,CAAE3oC,YAAYjN,EAAMzP,EAAOwc,EAAO,CAClC,IAAChP,MAAMkE,QAAQ1R,CAAd,EAA6BA,SAClC,KAAMuf,GAAMvf,EAAMkM,IAAI,CAACc,EAAKjN,IAC3B2c,EAASsoC,KAAK,KAAMv1C,EAAK+R,KAAKzhB,CAAV,EAAkBiN,EAAIsV,KAAM9F,CAAhD,CADW,EAGP,SAAM/e,KAAKgR,QAAO62C,sBAAsBtlD,CAA7B,EACfuf,EAAI9hB,GAAYuC,EAAMvC,GAEhB8hB,QAjBqD,EAoB7DrT,IAAI,CAAEwQ,WAAUvR,UAAUsE,EAAMzP,EAAOwc,EAAO,C5M/B/C,Q4MgCE,GAAIxc,IAAUmF,OAAkBA,OAChC,KAAMogD,GAAap6C,MAAOq6C,aAAPr6C,cAAmBoX,aAAc,kBAAmB/F,KAAMoK,cAANpK,cAAoBipC,eAAah2C,EAAMtE,EAAOq6C,WAAW9pC,OAAOvX,EAAhC,EAAoCmK,OAAS,KAC9IiR,EAAW,GACjB9Q,OAAOC,KAAK1O,CAAZ,EAAmB2O,QAAQ1R,CAAK,G5MnClC,M4MoCG,CAAIsoD,EACC,CAAC92C,OAAOC,KAAK62C,KAAWnmC,aAAXmmC,OAAyB,EAArC,EAAyCjpC,SAASrf,CAAlD,GAEFA,MAAKyf,EAASsoC,KAAK,KAAMv1C,EAAK+R,KAAKvkB,CAAV,EAAc+C,EAAM/C,GAAIuf,CAA5C,GAJV,EAMK,SAAM/e,KAAKgR,QAAO62C,sBAAsBtlD,CAA7B,EACfuf,EAAI9hB,GAAYuC,EAAMvC,GAEhB8hB,QAjCqD,EAoC7DmmC,OAAO,CAAEC,mBAAmBl2C,EAAMzP,EAAOwc,EAAO,CAC/C,GAAIxc,CAAuBA,EAAU,MAAQ,MAAOA,IAAU,SACtDA,SAER,KAAMuf,GAAW,GACXqmC,EAAeD,EAAgBl2C,CAAD,EACpChB,OAAOC,KAAKk3C,CAAZ,EACE3xC,OAAO3W,CAAKsoD,IAAatoD,GAAGuoD,QAAQp2C,CAAxB,CADd,EAEEd,QAAQ1R,CAAK,GACP88C,QAAM6L,EAAa3oD,GAAG+nD,KAAK,KAAMv1C,EAAK+R,KAAKvkB,CAAV,EAAc+C,EAAM/C,GAAIuf,CAAnD,EACRu9B,CAAqBA,EAAQ,MAChCx6B,GAAItiB,GAAK88C,EACT,CANH,EAQK,SAAMt8C,KAAKgR,QAAO62C,sBAAsBtlD,CAA7B,EACfuf,EAAI9hB,GAAYuC,EAAMvC,GAEhB8hB,QACP,CAtD4D,ECiBlC,aAAEjL,OAAMnG,QAAOyY,cAAak/B,SAAQC,aAAYC,WAAUC,cAAaC,WAA6B,CACzH,MAAE7lD,UAAW+uB,GAAnB,EACM,CAACnG,EAAQkC,GAAa/U,EAAS+S,GAAME,WAAP,EAC9B,CAACH,EAAQkC,GAAahV,EAAS+S,GAAMC,WAAP,EAC9B,CAACiC,EAAcC,GAAmBlV,EAAS+S,GAAMmB,iBAAP,EAC1C,CAAC67B,EAAaC,GAAkBhwC,EAAS,EAAD,EACxCgoC,EAAW7oC,GAA0B,IAApB,EACjB8wC,EAAc9wC,GAAiB,IAAM,EAAjB,EACpB+wC,EAAW/wC,GAA4B,SAAY,EAAlC,EAEjBgxC,EAAWhxC,GAA4B,IAAtB,EACjBixC,EAASjxC,KAETkxC,EAAsBpvC,GAAY,CAAClJ,EAAkByY,IAAoC,CACxF3W,QAAOy2C,GAAUv4C,EAAOyY,CAAR,EACf+9B,UAAgB10C,EAAMiZ,EAAQD,CAAf,GACpB,CAACA,EAAQC,CAAT,CAHoC,EAKvC9kB,GAAU,IAAM,CACfiiD,EAAY7wC,QAAU,IAAM,CAC3B,GAAI,EAACgxC,EAAOhxC,SACR,GAACrH,GAAS,CAACyY,GACX,IACG+/B,QAASF,EAAoBt4C,EAAOyY,CAAR,EAC3BpR,UAAQgG,SAASmrC,CAAxB,QACQzpD,GACJA,YAAa+U,OACdC,WAAW,8BAA6BhV,EAAEgV,UAC5Cg0C,EAAQhpD,CAAD,GAEE,gCAA6BgV,GAAQhV,CAAD,GAAtC,EAERmU,QAAQqG,MAAMxa,CAAd,EACOsY,UAAQgG,SAAS,EAAxB,CACA,GAGF8qC,EAAS9wC,QAAU,SAAY,CAC9B,GAAI,CAACgxC,EAAOhxC,QAAS,OACfxV,QAAQwmD,EAAOhxC,QAAQ6F,SAA7B,EACA,GAAIrb,EAAMmN,SAAW,EACjB,IACG8C,QAAO,KAAM+yC,IAAYhjD,EAAOkpB,CAAR,EAC9B/a,WAAOkZ,MAAMF,YAAUC,UAAUnX,CAApB,EAA2B,UAChC/S,GACJA,YAAa+U,OACdC,WAAW,oBAAmBhV,EAAEgV,UAClCg0C,EAAQhpD,CAAD,GAEE,sBAAmBgV,GAAQhV,CAAD,GAA5B,EAERmU,QAAQqG,MAAMxa,CAAd,CACA,EAfF,EAiBE,CAACiR,EAAOyY,EAAaqC,EAAQC,EAAQmC,CAArC,CApCM,EAsCTjnB,GAAU,IAAM,CACf,CAAIinB,CACH+6B,GAAe,EAAD,EACdI,EAAOhxC,QAAU,CAChB6F,UAAW,CAAS,QADJ,EAEhBG,UAAW,CAAE,EACborC,WAAY,CAAE,EACdnxC,QAAS,CAAE,GAEL,uEAASgC,KAAK,KAAOovC,IAAU,CACrC,KAAM9yC,SAAQC,IAAI,CACjB,sEACA,GAFiB,qCAAZ,EAIA8yC,QAAcD,EAAME,KAAK,QAAX,EACpBD,EAAYE,WAAW,CACtBC,SAAU,GACVC,gBAAiB,GACjBC,sBAAuB,GAHxB,EAKAL,EAAYM,gBAAkB1sB,IAC9BosB,EAAYO,GAAG,OAAQ,IAAMf,EAAS9wC,QAAtC,GACY8xC,eAAaC,QAAQ,eAAjC,EAEAf,EAAOhxC,QAAU,CAChB6F,UAAW,CACHyrC,SAAYQ,aAAajsC,UAFjB,EAIhBG,SAASxb,EAAO,CACHsnD,eAAa9rC,SAASxb,CAAlC,CALe,EAOhB4mD,UAAU39B,EAAQC,EAAQ,CACbs+B,YAAU,cAAev+B,IAAW,MAAhD,EACA69B,EAAYU,UAAU,UAAWv+B,IAAW,OAAS,EAAIw+B,GAAgBx+B,CAAD,CAAxE,EACA69B,EAAYQ,WAAZ,EAAyBC,QAAS,YAAWr+B,GAA7C,CAVe,EAYhBzT,QAAS,CACRqxC,EAAYY,UAAZ,CACA,GAEFtB,EAAe,EAAD,EA/Bf,GAkCAI,EAAOhxC,QAAU,CAChB6F,UAAW,CACV,MAAKkrC,GAAS/wC,QACP+wC,EAAS/wC,QAAQxV,MADM,EAFf,EAKhBwb,SAASxb,EAAe,CACvB,CAAKumD,EAAS/wC,SACd+wC,GAAS/wC,QAAQxV,MAAQA,EAPV,EAShB4mD,WAAY,CAAE,EACdnxC,QAAS,CAAE,EAEZ,EACC,CAAC4V,CAAD,CAxDM,EA0DT+2B,GAASj0C,EAAO,IAAM,CACrB,CAAKk4C,EAAY7wC,SACjB6wC,EAAY7wC,QAAZ,EAFO,EAIRpR,GAAU,IAAM,CACf,CAAKiiD,EAAY7wC,SACbrH,GAAOk4C,EAAY7wC,QAAZ,GACT,CAACrH,CAAD,CAHM,EAKT/J,GAAU,IAAM,CACX,CAACoiD,EAAOhxC,SAAW,CAAC6wC,EAAY7wC,SAChC,EAAC6V,GAAgB86B,IACb3wC,WAAQoxC,UAAU39B,EAAQC,CAAjC,EACAm9B,EAAY7wC,QAAZ,IAEC,CAACyT,EAAQC,EAAQmC,EAAc86B,CAA/B,CANM,EAQT/hD,GAAU,IAAM,CACX0hD,GAAU33C,GAASyY,GACZ+gC,oBAAUC,UAAUnB,EAAoBt4C,EAAOyY,CAAR,CAAjD,EAAuEnP,KAAK,IAAM,CACtE,IADZ,CAGA,EACC,CAACquC,CAAD,CANM,EAQT1hD,GAAU,IAAM,CACX2hD,MAAc53C,GAASyY,GAAew3B,EAAS5oC,QAAS,CACrDpF,QAAUmN,mBAAmBkpC,EAAoBt4C,EAAOyY,CAAR,CAApB,EAClCw3B,EAAS5oC,QAAQsZ,aAAa,OAAS,gCAA+B1e,GAAtE,EACA,KAAMy3C,GAAWvzC,IAAS,cAAgB,cAAiB,GAAEA,KAAQ4U,IAC5D1T,UAAQsZ,aAAa,WAAY+4B,CAA1C,EACAzJ,EAAS5oC,QAAQuvC,OACjB,GACC,CAACgB,CAAD,CARM,EAUT3hD,GAAU,IAAM,CACX4hD,GAAYQ,EAAOhxC,SACfA,WAAQgG,SAAS,EAAxB,EACAgrC,EAAOhxC,QAAQC,SACf,EACC,CAACuwC,CAAD,CALM,EAOH8B,QAAe,CAAC9nD,EAAkB,CACvCmpB,GAAMgC,UAAUnrB,CAAhB,EACAmrB,EAAUnrB,CAAD,GAGJ+nD,EAAe,CAAC/nD,EAAkB,CACvCmpB,GAAMiC,UAAUprB,CAAhB,EACAorB,EAAUprB,CAAD,GAGJgoD,EAAqB,CAAChoD,EAAmB,CAC9CmpB,GAAMmC,gBAAgBtrB,CAAtB,EACAsrB,EAAgBtrB,CAAD,GAGT,aACN,mBAAK,MAAM,2BAAX,SACC+V,EAAC,GAAD,CAAS,KAAK,OAAO,QAAS1V,EAAO,iBAAD,EAAqB,UAAQ,kBAAjE,UACE4nD,KAAmB/7C,IAAI2E,GACvBnM,EAAC,GAAD,CAAK,MAAOrE,EAAQ,eAAcwQ,GAAhB,EAAwB,OAAQoY,IAAWpY,EAC5D,QAAS,IAAMi3C,EAAaj3C,CAAD,CAF5B,IAIDnM,WACCwjD,GAAmBh8C,MAAI2E,GACvBnM,EAAC,GAAD,CAAK,MAAOrE,EAAQ,UAASwQ,GAAX,EAAmB,OAAQqY,IAAWrY,EACvD,QAAS,IAAMk3C,EAAal3C,CAAD,EAD5B,CADA,EAGDnM,EATD,SAUCA,EAAC,GAAD,CAAK,KAAM2mB,EAAe,cAAgB,SAAU,MAAOhrB,EAAO,cAAD,EAChE,QAAS,IAAM2nD,EAAmB,CAAC38B,CAAF,EAXnC,KAFK,EAgBLA,EACE3mB,SAAK,GAAG,SAAS,MAAM,SAAvB,EACAA,cAAU,IAAK6hD,EAAU,MAAM,SAAS,WAAY,GAAO,YAAY,MAAM,OAAQD,EAAS9wC,QAA9F,EACH9Q,OAAG,IAAK05C,EAAU,MAAM,iBAnBlB,GAAP,CAqBA,CC5Nwd,YAAW,EAAE,EAAE,CAAC,OAAQ,KAAK,GAAE,EAAE,GAAG,EAAE,GAAG,MAAO,EAAC,CAAC,YAAW,EAAE,EAAE,CAAC,OAAQ,KAAK,GAAE,GAAG,CAAa,GAAb,YAAgB,CAAE,KAAK,IAAG,MAAM,GAAG,OAAQ,KAAK,GAAE,GAAG,CAAa,GAAb,YAAgB,EAAE,KAAK,EAAE,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC,YAAW,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC,YAAW,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC,GAAI,GAAE,KAAK,MAAM,IAAI,EAAE,GAAG,EAAE,IAAI,MAAM,CAAC,GAAG,GAAI,GAAE,KAAK,EAAE,IAAI,EAAE,EAAE,QAAQ,MAAM,EAAE,CAAC,EAAE,KAAK,MAAM,CAAC,GAAG,CAAC,EAAE,GAAE,KAAK,MAAM,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,MAAO,MAAK,sBAAsB,EAAEhhD,GAAE,EAAE,CAAC,CAAC,CAAC,MAAO,GAAE,YAAY,QAAS,GAAE,aAAa,EAAE,MAAM,IAAI,EAAE,UAAU,iBAAiB,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,GAAE,UAAU,GAAIK,KAAG,qBAAqB,GAAG,GAAE,UAAU,sBAAsB,SAAS,EAAE,EAAE,CAAC,MAAO,IAAE,KAAK,MAAM,CAAC,GAAG,GAAE,KAAK,MAAM,CAAC,CAAC,EAAE,GAAI,IAAEkB,GAAE,IAAIA,GAAE,IAAI,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,KAAK,EAAE,KAAM,GAAE,MAAM,IAAI,EAAE,IAAI,EAAE,IAAI,MAAM,IAAG,GAAE,CAAC,CAAC,EAAE,GAAI,IAAE,CAAa,KAAO,SAApB,aAA4B,OAAO,KAAK,OAAO,IAAI,mBAAmB,GAAG,KAAK,YAAW,EAAE,CAAC,WAAW,EAAE,CAAC,GAAI,GAAE,GAAE,GAAG,CAAC,EAAE,MAAO,OAAO,GAAE,IAAI,EAAE,EAAE,EAAE,KAAK,IAAI,CAAC,CAAC,MAAO,GAAE,SAAS,GAAE,EAAE,OAAO,EAAE,EAAE,UAAU,iBAAiB,EAAE,IAAI,GAAG,EAAE,YAAY,cAAe,GAAE,aAAa,EAAE,MAAM,IAAI,CAAC,CAAC,GAAI,IAAE,SAAS,EAAE,EAAE,CAAC,MAAO,CAAM,GAAN,KAAQ,KAAKf,GAAEA,GAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,GAAE,CAAC,IAAI,GAAE,QAAQ,GAAE,MAAM,SAAS,EAAE,CAAC,MAAO,GAAEA,GAAE,CAAC,EAAE,OAAO,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC,GAAI,GAAEA,GAAE,CAAC,EAAE,GAAG,CAAI,CAAE,SAAN,EAAa,KAAK,gBAAgB,MAAO,GAAE,EAAE,EAAE,QAAQA,EAAC,EAAE,GAAEe,GAAE,IAAIA,GAAE,IAAI,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,MAAK,OAAQ,GAAE,EAAE,EAAE,EAAE,EAAE,IAAI,GAAI,GAAE,EAAE,MAAM,EAAE,IAAI,MAAO,CAAM,EAAE,KAAR,MAAc,GAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,GAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,GAAI,IAAEA,GAAE,QAAQ,aAAY,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,IAAI,CAAC,YAAW,EAAE,CAAC,GAAI,GAAE,EAAE,GAAG,IAAI,MAAO,IAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,YAAW,EAAE,CAAC,GAAI,GAAE,EAAE,EAAE,WAAW,EAAE,CAAC,GAAG,GAAI,GAAE,KAAK,KAAK,SAAS,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,KAAM,GAAE,GAAG,CAAC,EAAE,KAAM,GAAE,MAAOvB,IAAE,EAAE,CAAC,CAAC,CAAC,MAAO,GAAE,YAAY,OAAO,EAAE,IAAI,GAAG,CAAC,CAAC,aAAY,CAAC,KAAK,EAAE,KAAK,KAAK,EAAE,IAAI,CAACuB,GAAE,QAAQ,SAAS,EAAE,CAAC,GAAI,GAAE,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,IAAK,EAAC,GAAG,CAAK,CAAE,MAAP,IAAa,GAAE,KAAK,MAAM,IAAG,GAAE,CAAC,CAAC,EAAG,IAAE,UAAU,GAAIlB,KAAG,IAAI,SAAS,EAAE,EAAE,CAAC,GAAI,GAAE,EAAE,IAAI,EAAE,KAAK,CAAM,CAAE,GAAR,MAAY,GAAE,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,EAAE,GAAI,GAAE,GAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,UAAU,CAAC,GAAI,GAAE,GAAG,EAAE,IAAI,KAAK,EAAE,EAAE,CAAC,EAAE,EAAC,EAAG,EAAE,EAAE,IAAI,EAAE,GAAI,GAAE,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,MAAM,IAAI,CAAC,GAAI,GAAE,EAAE,MAAM,IAAI,EAAE,IAAI,IAAI,GAAG,WAAW,EAAE,EAAE,EAAE,CAAC,MAAO,IAAI,GAAE,IAAI,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,SAAS,EAAE,CAAC,MAAO,GAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,MAAM,GAAI,GAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,GAAI,GAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,YAAW,CAAE,CAAC,EAAE,EAAE,CAAK,CAAE,MAAP,GAAW,EAAE,OAAO,GAAG,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,GAAE,UAAU,qBAAqB,UAAU,CAAC,KAAK,EAAE,EAAE,EAAE,GAAE,UAAU,OAAO,SAAS,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC,GAAI,GAAE,SAAS,cAAc,KAAK,EAAE,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,IAAI,IAAI,GAAG,WAAW,EAAE,EAAE,EAAE,CAAC,MAAO,IAAI,GAAE,KAAK,EAAE,IAAI,KAAM,GAAE,IAAI,IAAI,GAAG,QAAQ,SAAS,EAAE,CAAC,CAAY,KAAO,GAAE,KAArB,YAA0B,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,IAAI,MAAM,CAAO,EAAE,GAAE,GAAG,CAAC,GAAG,KAAlB,MAAwB,GAAE,IAAI,MAAM,GAAI,GAAE,IAAI,IAAI,GAAG,EAAE,IAAI,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,SAAS,EAAE,CAAC,MAAO,GAAE,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,GAAI,GAAE,EAAE,KAAKL,GAAEwB,GAAE,KAAK,EAAE,QAAQ,EAAE,MAAO,IAAI,GAAE,IAAI,MAAM,CAACxB,GAAEwB,GAAE,KAAK,EAAE,IAAI,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,GAAI,IAAE,SAAS,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,MAAM,aAAc,CAAM,EAAE,MAAM,YAAY,KAA1B,KAA8B,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,KAAK,EAAE,OAAO,GAAG,EAAE,IAAG,EAAI,EAAC,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,YAAW,EAAE,CAAC,MAAO,MAAK,gBAAgB,UAAU,CAAC,MAAO,GAAE,OAAO,EAAE,EAAE,QAAQ,CAAC,YAAW,EAAE,CAAC,GAAI,GAAE,KAAK,EAAE,EAAE,EAAE,EAAE,qBAAqB,UAAU,CAACnC,GAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,GAAG,EAAE,qBAAoB,EAAG,EAAE,IAAK,GAAE,GAAI,GAAE,EAAE,EAAE,EAAE,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,GAAG,YAAY,SAAS,EAAE,CAAC,KAAK,WAAW,KAAK,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,SAAS,EAAE,EAAE,CAAC,KAAK,WAAW,KAAK,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC,CAAC,EAAE,YAAY,SAAS,EAAE,CAAC,KAAK,WAAW,OAAO,KAAK,WAAW,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,GAAGA,GAAEW,GAAE,GAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,qBAAsB,EAAC,YAAW,EAAE,EAAE,CAAC,GAAI,GAAEA,GAAE,GAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,MAAO,GAAE,cAAc,EAAE,CAAC,CAAC,CAAC,GAAE,UAAU,GAAIK,KAAG,IAAI,SAAS,EAAE,CAAC,GAAI,GAAE,KAAK,EAAE,GAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,MAAO,GAAE,KAAK,SAAS,EAAE,CAAC,GAAI,GAAE,UAAU,CAAC,EAAE,MAAM,YAAa,GAAE,KAAK,CAAC,EAAE,GAAE,EAAE,EAAE,CAAC,GAAG,EAAC,CAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAG,EAAC,EAAE,GAAE,UAAU,OAAO,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,EAAE,GAAI,KAAI,GAAI,GAAEG,GAAE,EAAE,QAAQ,EAAE,EAAE,aAAa,CAAM,CAAE,YAAY,KAApB,KAAwB,EAAE,QAAS,EAAC,OAAQ,GAAE,EAAE,OAAO,KAAK,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,MAAO,GAAE,QAAQ,EAAE,GAAE,UAAU,mBAAmB,GAAE,UAAU,kBAAkB,UAAU,CAAC,GAAI,GAAE,KAAK,KAAK,EAAE,QAAQ,SAAS,EAAE,EAAE,CAAC,GAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAI,IAAE,CAAa,KAAO,SAApB,aAA4B,OAAO,KAAK,OAAO,IAAI,eAAe,GAAG,MAAM,GAAE,4OAA4O,GAAE,CAAa,KAAO,WAApB,YAA6B,GAAE,SAAS,EAAE,CAAC,MAAO,CAAa,MAAO,SAApB,aAA4B,CAAU,KAAO,QAAM,GAAvB,SAA0B,eAAe,eAAe,KAAK,CAAC,CAAC,EAAE,YAAW,EAAE,EAAE,EAAE,CAAC,MAAO,CAAM,EAAE,KAAR,MAAc,GAAE,YAAY,IAAInB,GAAE,EAAE,CAAC,EAAE,CAAY,KAAO,IAAnB,YAAsB,EAAG,EAAC,EAAE,EAAE,IAAI,IAAI,CAAC,YAAW,EAAE,EAAE,EAAE,CAAC,MAAOsC,IAAE,EAAE,CAAC,EAAE,CAAY,KAAO,IAAnB,YAAsB,EAAG,EAAC,EAAE,EAAE,IAAI,IAAI,CAACtB,GAAE,UAAU,iBAAiB,GAAG,CAAC,qBAAqB,4BAA4B,qBAAqB,EAAE,QAAQ,SAAS,EAAE,CAAC,OAAO,eAAeA,GAAE,UAAU,EAAE,CAAC,aAAa,GAAG,IAAI,UAAU,CAAC,MAAO,MAAK,UAAU,EAAE,EAAE,IAAI,SAAS,EAAE,CAAC,OAAO,eAAe,KAAK,EAAE,CAAC,aAAa,GAAG,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAI,IAAEkB,GAAE,MAAM,aAAY,EAAE,aAAY,CAAC,MAAO,MAAK,YAAY,CAAC,aAAY,CAAC,MAAO,MAAK,gBAAgB,CAACA,GAAE,MAAM,SAAS,EAAE,CAAC,MAAO,KAAI,GAAE,GAAE,CAAC,GAAG,EAAE,QAAQ,GAAE,EAAE,qBAAqB,GAAE,EAAE,mBAAmB,GAAE,EAAE,YAAY,CAAC,EAAE,GAAI,IAAE,GAAE,CAAC,aAAa,GAAG,IAAI,UAAU,CAAC,MAAO,MAAK,KAAK,CAAC,EAAE,GAAEA,GAAE,MAAMA,GAAE,MAAM,SAAS,EAAE,CAAC,GAAI,GAAE,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,CAAU,KAAO,IAAjB,SAAmB,CAAC,GAAI,GAAE,CAAK,CAAE,QAAQ,GAAG,IAAlB,GAAoB,OAAQ,KAAK,GAAE,GAAG,EAAE,CAAC,GAAI,GAAE,EAAE,GAAG,IAAG,CAAa,GAAb,YAAgB,CAAa,GAAb,YAAgB,CAAU,GAAV,SAAa,gBAAiB,IAAG,CAAM,EAAN,MAAU,CAAiB,IAAjB,gBAAoB,SAAU,IAAG,CAAM,CAAE,OAAR,KAAc,EAAE,QAAQ,CAAa,GAAb,YAAgB,CAAK,GAAL,GAAO,EAAE,GAAG,iBAAiB,KAAK,CAAC,EAAE,EAAE,aAAa,6BAA6B,KAAK,EAAE,CAAC,GAAG,CAAC,GAAE,EAAE,IAAI,EAAE,EAAE,UAAU,aAAa,KAAK,CAAC,EAAE,EAAE,YAAY,YAAY,KAAK,CAAC,EAAE,EAAE,aAAa,mCAAmC,KAAK,CAAC,EAAE,EAAE,EAAE,YAAa,EAAC,GAAG,GAAE,KAAK,CAAC,EAAE,EAAE,EAAE,QAAQ,WAAW,KAAK,EAAE,cAAc,CAAO,GAAP,MAAW,GAAE,QAAQ,YAAY,KAAK,CAAC,GAAI,GAAE,EAAE,YAAa,EAAC,EAAE,IAAK,GAAE,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAU,EAAV,UAAa,EAAE,UAAU,MAAM,QAAQ,EAAE,KAAK,GAAI,GAAE,MAAMf,GAAE,EAAE,QAAQ,EAAE,QAAQ,SAAS,EAAE,CAAC,EAAE,MAAM,SAAS,CAAI,CAAE,MAAM,QAAQ,EAAE,MAAM,KAAK,GAAjC,EAAkC,CAAC,GAAG,CAAU,EAAV,UAAa,CAAM,CAAE,cAAR,MAAuB,GAAE,MAAMA,GAAE,EAAE,QAAQ,EAAE,QAAQ,SAAS,EAAE,CAAC,EAAE,MAAM,SAAS,EAAE,SAAS,CAAI,CAAE,aAAa,QAAQ,EAAE,MAAM,KAAK,GAAxC,GAA0C,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,WAAY,IAAE,WAAW,aAAc,GAAE,CAAM,CAAE,WAAR,MAAoB,GAAE,MAAM,EAAE,WAAW,OAAO,eAAe,EAAE,YAAY,EAAC,EAAE,CAAC,EAAE,SAAS,GAAE,IAAG,GAAE,CAAC,CAAC,EAAE,GAAI,IAAEe,GAAE,IAAIA,GAAE,IAAI,SAAS,EAAE,CAAC,IAAG,GAAE,CAAC,EAAE,GAAE,EAAE,GAAG,EAAK,GAAC,IAAE,CAAC,uBAAuB,CAAC,QAAQ,CAAC,YAAY,SAAS,EAAE,CAAC,MAAO,IAAE,IAAI,EAAE,KAAK,MAAM,KAAK,CAAC,CAAC,CAAC,EAAc,YAAY,EAAE,CAAC,MAAOvB,IAAE,KAAK,KAAK,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW,EAAC,CAAC,YAAY,EAAE,CAAC,MAAO,IAAG,CAAC,EAAEC,GAAE,MAAM,KAAK,SAAS,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,KAAMZ,IAAE,KAAK,CAAC,EAAE,GAAG,CAAC,YAAY,EAAE,CAAC,MAAO,IAAI,GAAE,MAAM,CAAI,CAAE,WAAN,GAAgB,IAAI,IAAI,CAAI,GAAC,IAAG,SAAS,EAAE,EAAE,CAAC,MAAO,GAAE,CAAC,CAAC,EAAE,GAAG,SAAS,EAAE,EAAE,CAAC,MAAO,GAAE,CAAC,CAAC,EAAqB,IAAC,SAASC,EAAE,WAAWI,GAAE,UAAUI,GAAE,gBAAgBF,GAAE,OAAOJ,GAAE,oBAAoBG,GAAE,QAAQF,GAAE,YAAYF,GAAE,WAAWM,GAAE,cAAcE,GAAE,QAAQ,SAAS,SAAS,GAAE,OAAO,GAAE,QAAQ,GAAE,uBAAuB,GAAG,aAAa,GAAE,cAAcC,GAAE,cAAckB,GAAE,cAAc,GAAG,aAAa,GAAG,UAAUf,GAAE,SAASqB,GAAE,eAAe,GAAG,YAAY,GAAG,UAAUnB,GAAE,cAAc,GAAE,KAAKD,GAAE,WAAW,GAAE,UAAU,GAAG,wBAAwB,GAAG,WAAWoB,GAAE,SAAS,GAAE,aAAa,GAAE,KAAK,GAAE,mDAAmD,EAAC,ECGtiQ,MAAMupD,UAAqBhhC,YAAU,CAC3C9U,YACC6U,EACiBkhC,EACA5zC,EACAgG,EAChB,CACD,MAAM0M,CAAN,EAJiBkhC,cACA5zC,cACAgG,aAGjB,CAEDtO,IAAIuD,EAAY,CACR,YAAK24C,OAAO34C,CAAZ,CACP,CAEDnB,IAAImB,EAAY,CACR,YAAK+E,OAAO/E,CAAZ,CACP,CAEDjB,IAAIiB,EAAYzP,EAAYqoD,EAAkB,CACtC,YAAK7tC,OAAO/K,EAAMzP,EAAOqoD,CAAzB,CACP,CApB0C,CCa5C,KAAMC,IAAmB,CAAC,kBAAmB,kBAAmB,oBAAqB,sBAAuB,oBAAqB,cAAe,2BAA4B,wCAAyC,0CAA2C,cAAe,eAAgB,iBAAkB,iCAAkC,4BAA6B,oBAAqB,sBAAuB,sBAAuB,oBAAqB,sBAAuB,uBAAwB,yBAA0B,uBAAwB,2BAA4B,2BAA4B,+BAAgC,gCAAiC,oBAAqB,uBAAwB,qBAAsB,0BAA2B,2BAA4B,wBAAyB,mBAAoB,mCAAoC,mCAAp1B,EACnBC,GAAe,CAAC,uBAAwB,sBAAuB,oBAAqB,oBAAqB,sBAAuB,sBAAjH,EACfC,GAAkB,CAAC,iBAAkB,mBAAoB,qBAAsB,uBAAwB,mDAAoD,oDAAqD,kEAAmE,wBAAyB,2BAA4B,yBAA0B,uCAAwC,wCAAyC,kCAAja,EAClBC,GAAe,CAAC,kBAAmB,oBAAqB,sBAAuB,oBAAqB,2BAA4B,wCAAyC,eAAgB,iBAAkB,4BAA6B,iCAAkC,oBAAqB,sBAAuB,sBAAuB,oBAAqB,2BAA4B,2BAA4B,gCAAiC,mBAAoB,wBAAyB,sBAAuB,wBAAyB,sBAAuB,sBAAuB,wBAAyB,uBAAwB,qBAAsB,0BAA2B,wBAAyB,mBAAoB,4BAA6B,sBAAuB,2CAA4C,oEAAqE,mDAA32B,EACfC,GAAY,CAAC,uBAAwB,+BAAgC,4BAA6B,aAAc,YAAa,UAAjH,EACZC,GAAa,CAAC,yCAA0C,sCAAuC,6CAA8C,qCAAsC,mCAAoC,uCAAwC,wCAAyC,2BAA4B,gCAAiC,yCAA0C,yCAA0C,qBAAsB,mBAAoB,gCAAiC,yBAA0B,0BAA2B,6BAA8B,uBAAwB,iDAAlmB,EACbC,GAAkB,CAAC,8BAA+B,qCAAhC,EAClBC,GAAoB,CAAC,4BAA6B,6BAA8B,6BAA8B,yBAA0B,iCAAkC,oCAAtJ,EAEpBC,GAAgB,CAAC3kD,EACfgH,GAAOoE,WAAWC,KAAKhS,CAAKA,IAAE2G,KAAOA,EAAG+J,QAAQ,MAAO,EAAlB,CAArC,EAMF66C,GAAY,GAAI5hC,aAAUnC,UAC/B9C,aACAA,gBAFsC,EAGpC,CAAE8mC,WAAY,CAAd,CAHe,EAkBO,aAAE76C,QAAOgS,OAAMnf,UAAS4lB,eAAwG,ChNlDzJ,MgNmDOnX,QAAO,GAAIy1C,aAAU/2C,CAAd,EACP,CAAC86C,EAAQ95B,EAAQjW,GAAQ/K,EAAM+Y,OAAO89B,KAAKkE,GAAYz5C,EAAM0C,GAAUhE,EAAM8B,IAAP,EAAckQ,EAAMnf,EAAS4lB,EAAa,EAAvF,EACxBuI,0BAAQ3S,QAAR2S,QAAezS,SAASuR,KAAK,CAAC9wB,EAAWA,GAAK4Y,SAAK,MAAQ,QAAO5H,EAAM+Y,OAAOhjB,KAAKuL,CAAlB,SAAgC,gBAAetB,EAAM+Y,OAAOxnB,SAAS+P,CAAtB,EACvH,mBAAK,MAAM,cAAew5C,YAAQ95B,CAAlC,IACAzqB,SAAK,MAAM,YAAawU,WAF4B,KAG5CA,CACT,CAED,KAAMgwC,IAAyB,CAC9BzkB,MAAO,CACC,OAAC,KAAM,KAAM,IAAb,CAFsB,EAK9B0kB,QAAQztC,EAAQjM,EAAMzP,EAAOmgB,EAAMnf,EAASooD,EAAQ9vC,EAAK,CACjD,OAAC,KAAM5U,EAAC,GAAD,SAAuBgX,GAAvB,CAA+BjM,OAAMzP,QAAOmgB,OAAMnf,UAASooD,SAAQ9vC,OAA1E,EAAoF,IAApF,CANsB,EAS9B6rC,OAAO,CAAEkE,UAASl+C,SAAQi6C,cAAc31C,EAAMzP,EAAOmgB,EAAMnf,EAASooD,EAAQ9vC,EAAK,CAChF,KAAM6rC,GAASC,EAAWkE,WAAW75C,EAAM,EAA5B,EACT85C,EAAep+C,WAAQ2Y,QAAW,GAAIohC,aAAUz1C,EAAK+5C,WAAY,GAAIj7C,GAAKkB,OAAKg6C,WAAY,CAACt+C,EAAO2Y,OAAR,CAA1B,CAA/B,EAA8ErU,EAChH,CAACw5C,EAAQ95B,EAAQjW,GAAQisC,EAAO7iC,KAAK0iC,KAAK,KAAMuE,EAAavpD,EAAOmgB,EAAMnf,EAASooD,EAAQ9vC,CAAlE,EAC3B+vC,KAAQl8C,SAAW,EACf,OAAC87C,EAAQ95B,EAAQjW,CAAjB,EAEFwwC,QAAoBv+C,WAAQyX,cAAgB,GAAIrU,QAAK,GAAI,CAACpD,EAAOyX,aAAR,CAAb,EAAuCzX,WAAQ2Y,QAAU,GAAIvV,QAAK,GAAI,CAACpD,EAAO2Y,OAAR,CAAb,EAAiCrU,EACtIjB,EAAM,CAACtK,EAAiB,ChN5EhC,MgN6EG,KAAM/G,GAAIksD,KAAQ75C,KAAKrS,GAAKA,EAAE+G,OAASA,CAA7B,WAAsCihD,EAC1CwE,EAAMxsD,EAAEmlB,KAAKjD,QAAnB,EACMjM,EAAWjW,EAAEulB,OAChBvlB,EAAEulB,OAAOyE,YAAUuL,YAAY1yB,CAAtB,CAAT,EACAmL,EAAOyX,gBAAkB,WAAa+mC,kBAAKzlD,QAAS,sBAAwBylD,EAAIx+C,OAAOq5B,QAAUmlB,EACpGl6C,EAAKtB,MAAMK,IAAIiB,EAAM0X,YAAUC,UAAUhU,CAApB,CAArB,GAEKw2C,EAASllD,YAAQ,MAAOygD,EAAOjhD,KAAM,SAAWhH,GAAMsR,EAAKtR,EAAEmY,OAA6BrV,KAAjC,EAAhD,SACbqpD,EAAQn9C,IAAI/O,GAAKuH,YAAQ,MAAOvH,EAAE+G,KACjC2lD,YAAW1pC,EAAMupC,EAAkBI,YAAY3sD,EAAE+G,IAAhC,CAAP,EADX,GADF,EAKO,OAAC+kD,EAAQlzC,MAAG6zC,YAAQz6B,CAAX,EAAT,EAAgCjW,CAAhC,CA9BsB,EAiC9BmsC,KAAK,CAAE3oC,WAAUvR,UAAUsE,EAAMzP,EAAOmgB,EAAMnf,EAASooD,EAAQ9vC,EAAK,CAC7D,MAAEg2B,SAAQya,WAAUC,aAAcC,GAAxC,EACM,CAACC,EAAUC,GAAe/zC,EAAS,EAAD,EAElC0N,EAAUrU,EAAK8J,WAAa5L,OAAK,GAAvB,EACZg7C,MAAWrsC,SAASwH,CAApB,EAA8B,CAC3BmlC,QAASlzC,gBACb,CAAC,GAAGvI,MAAMrC,EAAOi/C,SAAR,CAAT,EAA8Bl+C,IAAI,CAAC5N,EAAGzB,IACtC6H,EAAC,GAAD,CAAY,OAAY,KAAM+K,EAAK46C,UAAUxtD,CAAf,EAA9B,CADA,EAED6H,SAAK,MAAM,aAHG,GAAf,EAKMyqB,EAASzqB,eAAG,CAAC,GAAG8I,MAAMrC,EAAOi/C,SAAR,CAAT,EAA6Bl+C,IAAI,CAAC5N,EAAGzB,IAAM,ChNvGhE,MgNyGWuyC,OADO1yB,EAASsoC,KAAK,KAAMv1C,EAAK46C,UAAUxtD,CAAf,EAAmBmD,oBAAQnD,KAARmD,cAAYsiB,KAAMnC,EAAMnf,EAASooD,EAAQ9vC,CAAhF,EACD,GAFI,EAAlB,EAIO,OAAC2vC,EAAQ95B,EAAQ,IAAjB,CACP,CAEKm7B,QAAQ,IAAM,CACf,CAAC98C,KAAMkE,QAAQ1R,CAAd,GAAsBA,GAAQ,IAC7BsiB,QAAO6E,YAAUC,UAAU1K,EAAS2C,QAA7B,GACRlR,QAAMK,IAAIiB,EAAM,CAAC,CAAE6S,OAAMne,GAAIqB,GAAK,GAAM,GAAGxF,CAA3B,CAArB,GAEKuqD,EAAc,IAAM,CACrB,CAAC/8C,KAAMkE,QAAQ1R,CAAd,GAAsBA,GAAQ,IAC7BsiB,QAAO6E,YAAUC,UAAU1K,EAAS2C,QAA7B,GACb5P,EAAKtB,MAAMK,IAAIiB,EAAM,CAAC,GAAGzP,EAAO,CAAEsiB,OAAMne,GAAIqB,GAAK,CAA5B,EAArB,GAEK2pB,EAASzqB,YAAQ,MAAM,wBAAwB,aAAYioB,GAASxM,EAAM,SAAP,EAAmB,QAASmqC,EAAtF,SAA8FllD,GAAQi6C,YAArH,EACMnmC,EAAOnD,gBACV/V,GAASwN,MAAMkE,QAAQ1R,CAAd,GAAyBA,EAAMkM,IAAI,CAAC,CAAEoW,KAAMkoC,EAAQrmD,GAAIsmD,GAAO1qD,IAAU,CAC/EA,OAAUmqD,EACN,gBAAK,MAAM,mBACjB,8BAAQv9B,GAASxM,EAAM,iBAAmB,GAAEngB,EAAMmN,OAAS+8C,GAA3C,EAAhB,EACAxlD,YAAQ,QAAS,IAAMylD,EAAYt8C,KAAKkE,IAAIm4C,EAAW,GAAIlqD,EAAMmN,MAA9B,CAAD,EAAlC,SAA4Ewf,GAASxM,EAAM,sBAAuB,IAA9B,EAApF,EACAzb,YAAQ,QAAS,IAAMylD,EAAYnqD,EAAMmN,MAAP,EAAlC,SAAmDwf,GAASxM,EAAM,oBAAP,EAHrD,GAAP,EAMGpgB,KAAQmqD,EACJ,YAGFQ,QAAQj7C,EAAK+R,KAAKzhB,CAAV,EAAiB+pD,YAAY,OAA7B,EACRa,EAAYjuC,EAASxY,KAAKwmD,CAAd,IAAyB,SACrC3G,EAASiG,EAAUS,CAAD,EAEpB7qD,MAOJ,GANI,CAAC,0BAA2B,yCAA0C,kCAAmC,qCAAsC,qCAA/I,EAAsL0c,SAASouC,EAAMnxC,WAAN,EAAmB5L,KAAK,GAAxB,CAA/L,GACC9B,GAAS2+C,CAAD,GAAY,MAAOA,GAAOtmD,MAAS,UAAYsmD,EAAOtmD,KAAKgK,QAAQ,cAAe,EAAnC,IAA2C,QAAU,MAAOs8C,GAAOl2C,MAAS,UACtI1U,GAAQ8E,EAAC,GAAD,CAAa,KAAM,CAAEP,GAAIqmD,EAAOl2C,KAAMwyB,MAAO,CAA1B,EAA3B,GAIE6jB,GAAyB,SAAU5G,IAAW5+C,QAAanF,EAAMmN,OAAS,IACtE,gBAAK,MAAM,mBAAmB,gBAAeuP,EAAShd,SAASgrD,CAAlB,EAA7C,UACNhmD,EAAC,GAAD,CAAY,OAAY,KAAMgmD,EAAO,OAAM,GAA3C,EACAhmD,YAAQ,MAAM,2BAA2B,aAAa,GAAEioB,GAASxM,EAAM,QAAP;AAAA,EAAqBwM,GAASxM,EAAM,aAAc,MAArB,IAAgC,QAASmvB,EAAOmb,CAAD,EAA5I,SAAoJrlD,GAAQy4C,cAA5J,EACAn5C,WAAQ9E,mBAASiqD,GAAW1pC,EAAMuqC,EAAQ,GAAE3qD,GAAjB,EAHrB,EAIN2E,EAAC,GAAD,CAAqB,KAAMgmD,EAAO,MAAOF,EAAQ,OAAQ9tC,CAAzD,EAAgB+tC,CAAhB,CAJM,EAAP,EAQKG,QAAW,IAAMF,EAAMl8C,IAAIrJ,MAAV,EACjB0lD,EAAW,IAAM,CAChBjsD,QAAI,CAAC,GAAG6Q,EAAKnB,IAAT,GACT1P,GAAEmB,EAAQ,GAAInB,EAAEmB,EAAjB,EAA2B,CAACnB,EAAEmB,GAAQnB,EAAEmB,EAAQ,EAArB,EACtBoO,QAAMK,IAAIiB,EAAM7Q,CAArB,GAEKksD,EAAa,IAAM,CAClBlsD,QAAI,CAAC,GAAG6Q,EAAKnB,IAAT,GACT1P,GAAEmB,EAAQ,GAAInB,EAAEmB,EAAjB,EAA2B,CAACnB,EAAEmB,GAAQnB,EAAEmB,EAAQ,EAArB,EACtBoO,QAAMK,IAAIiB,EAAM7Q,CAArB,GAaD,MAAOmX,GAAC,GAAD,CAA0B,QAAc,KAAM20C,EAAO,OAAQhuC,EAAU,MAAO8tC,EAAarqC,OAAMnf,UAASooD,SAAQ9F,QAX3F,CAC7B,CACC3+C,KAAM,YACN/E,MAAO,YACP0xB,SAAU,IAAM,CACT1yB,QAAI,CAAC,GAAG6Q,EAAKnB,IAAT,GACRg/B,SAAOvtC,EAAO,EAAG,CAAEoE,GAAIqB,GAAN,EAAe8c,KAAMnQ,GAAUq4C,CAAD,EAAjD,EACKr8C,QAAMK,IAAIiB,EAAM7Q,CAArB,CACA,EAR2B,EAWqG,IAAK,SAAI0a,GAAJ,CAASvZ,WAAkB,EAAI,EAAI,GAAgBC,OAAMmN,OAAS,EAAI,EAAI,EAA3M,aACLw9C,GAAajmD,YAAQ,MAAM,2BAA2B,aAAa,GAAEioB,GAASxM,EAAM,UAAP;AAAA,EAAuBwM,GAASxM,EAAM,eAAgB,MAAvB,IAAkC,QAAS4pC,EAASU,CAAD,EAAlJ,SAA0JrlD,GAAQu4C,aAAlK,EACdj5C,YAAQ,MAAM,2BAA2B,aAAYioB,GAASxM,EAAM,QAAP,EAAkB,QAASyqC,EAAxF,SAAmGxlD,GAAQ46C,QAA3G,GACChgD,EAAMmN,OAAS,GAAK4I,SAAK,MAAM,YAC/B,sBAAQ,MAAM,yBAAyB,aAAY4W,GAASxM,EAAM,SAAP,EAAmB,QAAS0qC,EAAU,SAAU9qD,IAAU,EAArH,SAAyHqF,GAAQ04C,WAAjI,EACAp5C,YAAQ,MAAM,yBAAyB,aAAYioB,GAASxM,EAAM,WAAP,EAAqB,QAAS2qC,EAAY,SAAU/qD,IAAUC,EAAMmN,OAAS,EAAxI,SAA4I/H,GAAQu4C,aAFhI,GAHf,IAAqB8M,CAArB,EAtD4B,EA+DlCzqD,GAASA,EAAMmN,OAAS,GAAKnN,EAAMmN,QAAU+8C,GAAaxlD,SAAK,MAAM,mBACtE,qBAAQ,MAAM,wBAAwB,aAAYioB,GAASxM,EAAM,YAAP,EAAsB,QAASoqC,EAAzF,SAAuGnlD,GAAQi6C,YAA/G,EAjEW,GAAb,EAoEO,OAAC,KAAMlwB,EAAQjW,CAAf,CAlIsB,EAqI9BhN,IAAI,CAAEwQ,WAAUhO,OAAMvD,UAAUsE,EAAMzP,EAAOmgB,EAAMnf,EAASooD,EAAQ9vC,EAAK,ChNhM1E,cgNiMQ,MAAEg2B,SAAQya,WAAUC,aAAcC,GAAxC,EAEMc,EAAU,GAAI7F,aAAU6D,GAAW,GAAIx6C,QAAK,CAACiD,GAAW/B,EAAKxC,UAAN,CAAX,CAAT,CAAzB,EACVq9C,EAAQ,IAAM,CACbz5C,QAAMk6C,EAAQz8C,MACfH,QAAMK,IAAIiB,EAAK+R,KAAK3Q,CAAV,EAAgBsW,YAAUC,UAAU1K,EAAS2C,QAAT,CAApB,CAA/B,GAEKkmC,EAAap6C,MAAOq6C,aAAPr6C,cAAmBoX,aAAc,kBAAoB6mC,iBAAS3D,eAAah2C,EAAMtE,EAAOq6C,WAAW9pC,OAAOvX,EAAhC,EAAoCmK,OAAS,KACpI08C,EAAazF,WAAYnmC,WAC5B8C,aAAW,KAAO,CAAEmB,KAAM5U,OAAOC,KAAK62C,KAAWnmC,aAAXmmC,OAAyB,EAArC,CAAhB,GACV72C,EACH,GAAI62C,GAAc91C,EAAKw7C,KAAL,IAAgB,aAAc,CAC/C,CAAI,KAAOjrD,IAAU,UAAUA,GAAQ,IACjCof,QAAa3Q,OAAOiF,QAAQ6xC,KAAWnmC,aAAXmmC,OAAyB,EAAxC,EACjBr5C,IAAI,CAAC,CAAC2E,EAAKwgB,KAAY,CAACxgB,EAAKqR,aAAW,KAAO,CAAEmB,KAAMgO,CAAhB,EAAhB,CADN,EAEZ3d,sBAAQ6xC,KAAWnmC,aAAXmmC,OAAyB,EAAxC,EAA4C52C,QAAQ,CAAC,CAACkC,EAAKwgB,KAAY,CAClE,MAAOrxB,GAAM6Q,IAAS,SACzBpB,EAAKtB,MAAMsa,OAAOlU,IAAI9E,EAAK+R,KAAK3Q,CAAV,EAAgB,uBAAtC,EACWwgB,EAAO/U,SAAStc,EAAM6Q,EAAtB,GACN1C,QAAMsa,OAAOlU,IAAI9E,EAAK+R,KAAK3Q,CAAV,EAAgB,4BAA6B7Q,EAAM6Q,EAAzE,CACA,CALF,EAOOgS,EAAWpU,kBAAOm0B,YAAYxjB,CAAnB,CAAD,EAAiC4lC,KAAK,KAAMv1C,EAAMzP,EAAOmgB,EAAMnf,EAASooD,EAAQ9vC,CAA1F,CACP,CACK6V,QAASpZ,MACbi1C,YAAWhG,KAAK,KAAM+F,EAASA,KAAQz8C,IAAS,IAAjBy8C,OAAiB,GAAI5qC,EAAMnf,EAASooD,EAAQ9vC,CAA3E,EAAgF,GACjF5U,YAAQ,MAAM,wBAAwB,aAAYioB,GAASxM,EAAM,KAAP,EAAe,QAASmqC,EAAlF,SAA0FllD,GAAQi6C,YAFpF,GAAf,EAIMnmC,EAAOxU,eACX,MAAO1E,IAAU,UAAYyO,OAAOiF,QAAQ1T,CAAf,EAAsBkM,IAAI,CAAC,CAAC2E,EAAK25C,KAAY,ChN9N9E,YgNgOUE,QAAQj7C,EAAK46C,UAAUx5C,CAAf,EACR85C,EAAYjuC,EAASxY,KAAKwmD,CAAd,IAAyB,SACrC3G,EAASiG,EAAUn5C,CAAD,EACxB,GAAI85C,GAAyB,SAAU5G,IAAW5+C,QAAanF,EAAMmN,OAAS,IACtE,gBAAK,MAAM,mBAAmB,gBAAeuP,EAAShd,SAASgrD,CAAlB,EAA7C,UACNhmD,EAAC,GAAD,CAAY,OAAY,KAAMgmD,EAAO,OAAM,GAA3C,EACAhmD,YAAQ,MAAM,2BAA2B,aAAa,GAAEioB,GAASxM,EAAM,QAAP;AAAA,EAAqBwM,GAASxM,EAAM,aAAc,MAArB,IAAgC,QAASmvB,EAAOz+B,CAAD,EAA5I,SAAoJzL,GAAQy4C,cAA5J,EACAn5C,WAAQmM,WAHF,EAINnM,EAAC,GAAD,CAAqB,KAAMgmD,EAAO,MAAOF,EAAQ,OAAQ9tC,CAAzD,EAAgB7L,CAAhB,CAJM,EAAP,EAOKq6C,QAAU3F,EACbrjC,aAAW,KAAO,CAAEmB,KAAMkiC,QAAWnmC,aAAXmmC,cAAwB10C,KAAxB00C,OAAgC,EAAhD,GACV7oC,EACC6oC,qBAAYnmC,aAAZmmC,cAAyB10C,KAAQ,MAAO25C,IAAW,UACnD,CAACjF,MAAWnmC,aAAXmmC,QAAwB10C,GAAKyL,SAASkuC,KAC1C/6C,EAAKtB,MAAMsa,OAAOlU,IAAIm2C,EAAO,4BAA6BF,CAA1D,EAEKI,QAAW,IAAMF,EAAMl8C,IAAIrJ,MAAV,EACvB,MAAO4Q,GAAC,GAAD,CAA0B,OAAQm1C,EAAS,KAAMR,EAAO,MAAOF,EAAarqC,OAAMnf,UAASooD,SAAQ9vC,MAAM,MAAOzI,EAAhH,UACL85C,GAAajmD,YAAQ,MAAM,2BAA2B,aAAa,GAAEioB,GAASxM,EAAM,UAAP;AAAA,EAAuBwM,GAASxM,EAAM,eAAgB,MAAvB,IAAkC,QAAS4pC,EAASl5C,CAAD,EAAlJ,SAA0JzL,GAAQu4C,aAAlK,EACdj5C,YAAQ,MAAM,2BAA2B,aAAYioB,GAASxM,EAAM,QAAP,EAAkB,QAASyqC,EAAxF,SAAmGxlD,GAAQ46C,SAFrG,IAAqBnvC,CAArB,EArBsB,EAD/B,EA4BO,OAAC,KAAMse,EAAQjW,CAAf,CA9LsB,EAiM9BiyC,OAAOzvC,EAAQjM,EAAMzP,EAAOmgB,EAAMnf,EAASooD,EAAQ9vC,EAAK,CAChD,OAAC,KAAM5U,EAAC,GAAD,SAAsBgX,GAAtB,CAA8BjM,OAAMzP,QAAOmgB,OAAMnf,UAASooD,SAAQ9vC,OAAzE,EAAmF,IAAnF,CAlMsB,EAqM9BosC,OAAO,CAAEpjC,OAAMnX,SAAQw6C,kBAAiByF,qBAAqB37C,EAAMzP,EAAOmgB,EAAMnf,EAASooD,EAAQ9vC,EAAK,ChNhQvG,MgNiQQ,MAAEg2B,SAAQya,WAAUC,aAAcC,GAAxC,EAEIx6C,KAAKg6C,SAAWt8C,UAAU,GAAKk+C,GAAYlgD,EAAO2Y,QAAS9jB,CAAjB,EAAyB,CAChE,MAAEsrD,UAASC,UAAWC,GAAwB7F,EAAgBl2C,CAAD,EAAQA,EAAMzP,CAA9B,EACnDA,EAAQsrD,EAAQr7C,KAChB01C,EAAkB,IAAM4F,EACxBH,EAAoB,CAAC37C,EAAMoB,IAAQ,GAAIq0C,aAAUoG,EAAS,GAAI/8C,QAAKkB,EAAKg6C,WAAY,CAAC,SAAD,CAA1B,CAAvB,EAA+DjoC,KAAK3Q,CAApE,CACnC,CAEGo4C,MAA6B,KAC7B95B,EAA6B,KAC7B7M,KAAKmpC,WACJzrD,OAAUmF,OAAW,CAClBumD,QAAW,IAAMj8C,EAAKjB,IAAI2Y,YAAUC,UAAU9E,EAAKjD,QAAzB,EAAT,EACvB8P,EAASzqB,YAAQ,MAAM,oCAAoC,aAAYioB,GAASxM,EAAM,QAAP,EAAkB,QAASurC,EAAjG,SAA4GtmD,GAAQi6C,YAA7H,MACM,CACAsM,QAAa,IAAMl8C,EAAKjB,IAAIrJ,MAAT,EACzBgqB,EAASzqB,YAAQ,MAAM,kCAAkC,aAAYioB,GAASxM,EAAM,QAAP,EAAkB,QAASwrC,EAA/F,SAA4GvmD,GAAQ46C,SAA7H,CACA,CAEIl8B,QAAUrU,EAAK8J,WAAa5L,OAAK,GAAvB,EAChB,GAAIk7C,GAAkBvsC,SAASwH,CAA3B,GAAuC8kC,GAAgBtsC,SAASwH,CAAzB,EAAmC,CACvE8nC,QAAU5B,EAAU,EAAD,EACnB6B,EAAWjD,GAAgBtsC,SAASwH,CAAzB,EAAoC8nC,EAAU,CAACA,EAI5D,GAHJ3C,EAASvkD,MACR,qBAAQ,MAAM,2BAAuCioB,gBAASxM,EAAM0rC,EAAW,WAAa,QAA/B,EAA0C,QAASD,EAAU7B,EAAS,EAAD,EAAOza,EAAO,EAAD,EAA/I,SAAsJuc,EAAWzmD,GAAQu4C,aAAev4C,GAAQy4C,cAAhM,EADD,EAGI,CAACgO,EACG,OAAC5C,EAAQ95B,EAAQ,IAAjB,CAER,CAEK28B,QAAU,MAAO9rD,IAAU,UAAYA,IAAU,MAAQsiB,MAAKjD,QAAL,kBAAgB6uB,OAC5E,SAAK50B,GAAL,CAAUyyC,KAAM/rD,iBAAOkE,IAASoV,KAC7BJ,EAAOxU,MACV,eAAO1E,IAAU,UAAYA,IAAU,MAAQ,CAAOyrD,YAAczrD,OAAUmF,SAC/EsJ,OAAOiF,QAAQiyC,EAAgBl2C,CAAD,CAA9B,EACEwE,OAAO,CAAC,CAAC3V,EAAG8wC,KAAWA,EAAMyW,QAAQp2C,CAAd,CADzB,EAEEvD,IAAI,CAAC,CAAC2E,EAAKu+B,KAAW,CAChBsb,QAAQU,EAAkB37C,EAAMoB,CAAP,EACzBiT,EAAU4mC,EAAMnxC,WAAa5L,OAAK,GAAxB,EACZ46C,MAAajsC,SAASwH,CAAtB,EAAuC,YACrC,MAACkoC,EAASC,EAASC,GAAS9c,EAAM4V,KAAK,KAAM0F,EAAO1qD,EAAM6Q,GAAMsP,EAAMnf,EAASooD,EAAQ0C,CAA3D,EAC5BK,EAAc/c,EAAMlrC,KAAKwmD,CAAX,IAAsB,UAAYlC,GAAgBlsC,SAASwH,CAAzB,EAChDsoC,EAAY3D,GAAansC,SAASwH,CAAtB,EACdqoC,UAAeC,EAClBnD,GAASlzC,MAAGkzC,YAAOvkD,EAAC,GAAD,CAAY,OAAY,KAAMgmD,EAAxC,EAAiDhmD,EAAC,GAAD,CAAW,OAAY,KAAMgmD,CAA7B,GAAuCsB,CAAxF,EAAT,EACA78B,EAASpZ,MAAGoZ,YAAQ88B,CAAX,EAAT,EACOE,EAAcD,EAAQ,MAEvBxnD,EAAC,GAAD,CAA0B,OAAQ0qC,EAAO,KAAMsb,EAAO,MAAO1qD,EAAM6Q,GAAWsP,OAAMnf,UAASooD,SAAQ9vC,IAAKwyC,GAArFj7C,CAArB,EAdT,EAFF,EAoBO,OAACo4C,EAAQ95B,EAAQjW,CAAjB,CA5PsB,EA+P9BmzC,OAAO3wC,EAAQjM,EAAMzP,EAAOmgB,EAAMnf,EAASooD,EAAQ9vC,EAAK,CAChD,OAAC,KAAM5U,EAAC,GAAD,SAAsBgX,GAAtB,CAA8BjM,OAAMzP,QAAOmgB,OAAMnf,UAASooD,SAAQ9vC,OAAzE,EAAmF,IAAnF,CACP,CAjQ6B,EAoQ/B,YAAmB,CAAE7J,OAAMzP,SAA8D,ChN/TzF,cgNiUS8jB,OADQrU,EAAK8J,WAAa5L,OAAK,GAAvB,OAEV,yBACG,4BAAQ3N,uBAAO0T,UAAP1T,cAAgBmN,SAAhBnN,OAA0B,EAAlC,YAAP,MACI,0CACA,0BACG,2BAAQA,uBAAOsU,OAAPtU,cAAakO,QAAQ,cAAe,MAApClO,OAA2CA,oBAAOkE,OAAPlE,cAAakO,QAAQ,cAAe,GAApC,CAA1D,EAEG,SAAMkhC,KAAS3gC,QAAO4iB,OAAOrxB,UAAS,CAAvB,GACf,SAAOovC,IAAU,SACb,2BAAQA,EAAMlhC,QAAQ,cAAe,EAA7B,EAAf,EAGK,WACP,CAED,aAAsB,CACrB,KAAM,CAACo+C,EAAaC,GAAkBn2C,EAAS,GAAIvD,IAAL,EACxC,CAAC25C,EAAWC,GAAgBr2C,EAA8BjR,MAAtB,EAwBnC,OAAEmqC,OAtBM,CAACz+B,EAAgB,CAAC8f,EAAoB,CAChDA,EAAI+7B,QACQ,MAAI75C,IAAL,EACd45C,EAAa,EAAD,GAEG71C,KAAS,GAAI/D,KAAI+D,EAAMpI,IAAIqC,EAAK,EAAf,CAAR,CAAV,CACd,EAgBek5C,SAdA,CAACl5C,EAAgB,CAAC8f,EAAoB,CAClDA,EAAI+7B,QACQ,MAAI75C,IAAL,EACd45C,EAAa,EAAD,GAEG71C,KAAS,GAAI/D,KAAI+D,EAAMpI,IAAIqC,EAAK,EAAf,CAAR,CAAV,CACd,EAQyBm5C,UALT,CAACn5C,EAAgB,ChNrWpC,MgNsWE,MAA6BgC,kBACtBy5C,KAAYh+C,IAAIuC,CAAhB,WAAwB27C,EADW,EACXA,CAGLxC,CAC3B,CAED,YAAuB,CAAEv6C,OAAM6S,OAAMtiB,QAAOmgB,QAAsC,CAC3E3R,QAAM,CAAC6G,EAAoB,CAC3BlH,QAAMK,IAAIiB,EAAM6S,EAAKmpC,YAAczrD,IAAUqV,EAASlQ,OAAYkQ,CAAvE,GAEM,aACN,sBAAQ,MAAOrV,IAAU,GAAQ,WAAa,GAAI,QAAS,IAAMwO,EAAI,EAAD,EAApE,SAA8Eme,GAASxM,EAAM,OAAP,EAAtF,EACAzb,YAAQ,MAAO1E,IAAU,GAAO,WAAa,GAAI,QAAS,IAAMwO,EAAI,EAAD,EAAnE,SAA4Eme,GAASxM,EAAM,MAAP,EAF9E,GAAP,CAIA,CAED,YAAsB,CAAE1Q,OAAMtE,SAAQoY,UAASvjB,QAAOmgB,QAAqC,ChNvX3F,MgNwXOhL,QAAW,CAACwb,EAAe,CAC1B3wB,QAAS2wB,EAAItb,OAA4BrV,MACzC2sD,EAASppC,EAAU1R,SAAS7R,CAAD,EAAU4sD,WAAW5sD,CAAD,EAChDmO,QAAMK,IAAIiB,EAAMk9C,CAArB,GAEKE,EAAU,CAACl8B,EAAe,CACzB3wB,QAAS2wB,EAAItb,OAA4BrV,MACzC2sD,EAAS96C,SAAS7R,EAAMmP,MAAM,CAAZ,EAAgB,EAAjB,EAClBhB,QAAMK,IAAIiB,EAAMk9C,CAArB,GAEM,aACN,qBAAO,KAAK,OAAO,MAAO3sD,UAAS,GAAI,OAAQmV,EAAU,UAAWwb,CAAO,GAAKA,EAAI9f,MAAQ,SAASsE,EAASwb,CAAD,CAAM,CAAnH,GACCxlB,kBAAQsG,QAAS/M,WAAO,KAAK,QAAQ,MAAO,IAAcuI,8BAAS,IAAIC,SAAS,EAAG,OAAzBD,OAAiC,UAAW,SAAU4/C,EAF3G,EAGL,CAAC,2BAA4B,wCAAyC,sBAAuB,0BAA7F,EAAyHvwC,SAAS7M,EAAK8J,aAAa5L,KAAK,GAAvB,CAAlI,GAAkKjJ,YAAQ,QAAS,IAAMooD,GAAQr9C,EAAKtB,KAAN,EAAc,MAAM,oBAAoB,aAAYwe,GAASxM,EAAM,mBAAP,EAA1F,SAAwH/a,GAAQy6C,KAH7R,GAAP,CAKA,CAED,YAAsB,CAAEpwC,OAAMs9C,YAAW5hD,SAAQmX,OAAMtiB,QAAOmgB,OAAMnf,UAASooD,UAAuC,ChNzYpH,UgN0YOj0C,QAAW,CAACwb,EAAe,CAChCA,EAAIhb,gBAAJ,EACMvC,QAAYud,EAAItb,OAA6BrV,MAC/CoT,IAAapT,GACjByP,EAAKtB,MAAMK,IAAIiB,EAAM2D,EAASjG,SAAW,EAAIhI,OAAYiO,CAAzD,GAEKie,EAAS07B,IACTjpC,EAAUrU,EAAK8J,WAAa5L,OAAK,GAAvB,EACVxJ,EAAK,CAACoC,GAAO4E,CAAD,GAAYA,kBAAQoX,aAAc,YAAc,MAAOpX,GAAOuQ,OAAO8G,MAAS,SAAWrX,EAAOuQ,OAAO8G,KAAOrd,OAE5HujD,MAAUpsC,SAASwH,CAAnB,EACI,qBAAU,MAAO9jB,UAAS,GAAI,OAAQmV,EAA7C,EACA,GAAW5O,GAAO4E,CAAD,GAAY,CAACA,EAAO6hD,YAAe1E,GAAiBhsC,SAASwH,CAA1B,EAAoC,CACxF,GAAIA,GAAU,GAAIvV,QAAK,EAAT,EACVhI,UAAO4E,CAAD,GAAY,MAAOA,GAAOkY,MAAS,SAClCS,IAAQgmC,YAAY3+C,EAAOkY,IAA3B,EACAlf,EACA2f,IAAQgmC,YAAY3lD,CAApB,EACAoC,GAAO4E,CAAD,GACNsE,MAEJsG,YAAQ,MAAO/V,UAAS,GAAI,WACjCsiB,YAAKmpC,SAAc,eAAQ,MAAM,GAAd,SAAkB9+B,GAASxM,EAAM,OAAP,EAA1B,EACnBkR,EAAOnlB,IAAItN,GAAK8F,YAAQ,MAAO9F,EAAf,SACfirD,GAAW1pC,EAAM2D,EAAQgmC,YAAYlrD,EAAEsP,QAAQ,cAAe,EAAzB,CAApB,CAAP,CADK,EAAhB,CAFK,EAAP,UAMU,CAAC3H,GAAO4E,CAAD,GAAYA,kBAAQoX,aAAc,kBAAmB,CAChEgjC,QAAa6D,iBAAS3D,eAAah2C,EAAMtE,EAAOuQ,OAAOvX,EAArB,EAAyBmK,OAC3D+iB,EAAS5iB,OAAOC,KAAK62C,oBAAYnmC,aAAZmmC,OAA0B,EAAtC,EACR,mBAAQ,MAAOvlD,UAAS,GAAI,WAA5B,SACLqxB,EAAOnlB,IAAItN,GAAK8F,YAAS9F,WAAzB,GADF,MAGM,CACA,MAAEuvB,cAAaC,iBAAkBwc,GAAvC,EACMqiB,EAAS,MAAOjtD,IAAU,SAAWA,EAAMsc,SAAS,GAAf,EAAsBtc,EAAQ,aAAeA,EAAQ,UAC1FktD,EAAa1nD,KACb0oB,EAAM/pB,EAAK2kD,GAAc3kD,CAAD,EAAOgB,OAC9B,aACN,qBAAO,MAAOnF,UAAS,GAAI,OAAQmV,EAAU,UAAWwb,CAAO,GAAKA,EAAI9f,MAAQ,SAASsE,EAASwb,CAAD,CAAjG,EACC,KAAMU,EAAOlkB,OAAS,EAAI+/C,EAAa,EADxC,GAEC77B,EAAOlkB,OAAS,GAAKzI,cAAU,GAAIwoD,EAAd,SACpB77B,EAAOnlB,IAAItN,GAAK8F,YAAQ,MAAO9F,EAA/B,GADoB,EAGrB,CAAC,uBAAD,EAA0B0d,SAASwH,CAAnC,GAA+Cpf,WAAO,KAAK,QAAQ,MAAOyoD,GAASh/B,QAAY8+B,KAAZ9+B,OAAuBmV,GAAc2pB,KAArC9+B,OAAgDoV,GAAc0pB,CAAD,CAA9D,EAAyE,SAAUruD,GAAKwvB,EAAc6+B,EAAQG,GAASxuD,EAAEyuD,cAAcrtD,KAAjB,CAAjB,EANlL,EAOL,CAAC,wBAAyB,0DAA1B,EAAsFsc,SAASwH,CAA/F,GAA2Gpf,YAAQ,QAAS,IAAM+K,EAAKjB,IAAI8+C,IAAT,EAA0B,MAAM,oBAAoB,aAAY3gC,GAASxM,EAAM,mBAAP,EAA/F,SAA6H/a,GAAQy6C,IAArI,GAC3G3xB,GAAOmD,EAAO/U,SAAStc,CAAhB,GAA0BA,EAAM8P,WAAW,YAAjB,GACjCpL,OAAG,KAAO,IAAGwpB,EAAInf,gBAAgB/N,YAAkBhB,EAAMkO,QAAQ,cAAe,EAA7B,IAAoC,MAAM,oBAAoB,aAAYye,GAASxM,EAAM,kBAAP,EAArI,SAAkK/a,GAAQ25C,cATrK,GAAP,CAWA,CACD,CAsBD,YAAkB,CAAEn/C,QAAOsnB,SAAQzX,OAAMzP,QAAOmgB,OAAMnf,UAASooD,SAAQ9vC,MAAKgqC,UAAS5mC,YAA2B,ChNldhH,MgNmdOxY,QAAOgjB,EAAOhjB,KAAKuL,CAAZ,EACP/P,EAAWwnB,EAAOxnB,SAAS+P,CAAhB,EACXqU,EAAUrU,EAAK8J,WAAa5L,OAAK,GAAvB,EAEV,CAAC/I,EAAQuR,GAAawG,GAA5B,EACM4wC,EAAgB,CAAC58B,EAAoB,CAC1CA,EAAIN,eAAJ,EACS,KAGJy7B,EAA8B,SAAKxyC,GAAL,CAAUrI,MAAYA,qBAAS,GAAK,IACjE66C,SAAO/rD,MACR,MAACkpD,EAAQ95B,EAAQjW,GAAQgO,EAAO89B,KAAKkE,GAAYz5C,EAAMzP,EAAOmgB,EAAMnf,EAASooD,EAAQ0C,CAA5D,EACxB,gBAAK,MAAQ,QAAO5nD,SAAa,gBAAexE,EACtD,mBAAK,MAAM,cAAc,gBAAzB,UACCgF,EAAC,GAAD,CAAY,OAAY,OADzB,EAECA,EAAC,GAAD,CAAW,OAAY,MAAvB,GACCgY,EACAusC,EACDlzC,qBACEnW,UAASiqD,GAAW1pC,EAAM1Q,EAAO,GAAEA,EAAKw7C,KAAL,GAAhB,EACnBrmD,GAAUmR,SAAK,MAAM,YAAX,UACTutC,iBAASp3C,IAAIzO,IhNzenB,MgNyewBsY,gBAAmB,MAAM,YAAzB,UAClBrR,EAAC,GAAD,CAAK,KAAMjH,EAAEkH,KAAM,QAASgoB,GAASxM,EAAM1iB,EAAEmC,KAAT,EAAiB,WAAW,KAAK,QAAS,IAAMnC,EAAE6zB,SAAF,EAApF,EACA5sB,UAAOjH,cAAEonD,cAAFpnD,OAAiBkvB,GAASxM,EAAM1iB,EAAEmC,KAAT,EAFd,IAAUnC,EAAEmC,KAAZ,IAInBmW,SAAK,MAAM,YAAX,UACCrR,EAAC,GAAD,CAAK,KAAK,SAAS,QAASioB,GAASxM,EAAM,cAAP,EAAwB,WAAW,KAAK,QAAS,IAAMqtC,UAAU7F,UAAUC,UAAU9jC,CAA9B,EAA3F,EACApf,UAAOof,WAFR,GALU,GAFZ,KAaCqL,CAlBF,EADM,EAqBLjW,GAAQxU,SAAK,MAAM,YAAawU,WArB3B,GAAP,CAuBA,CAED,KAAMu0C,IAAiBC,GAAKC,GAAU,CAACn2C,EAAMo2C,IACrCp2C,EAAK0P,SAAW0mC,EAAK1mC,QACxB1P,EAAK2I,OAASytC,EAAKztC,MACnB3I,EAAK/H,KAAKo+C,OAAOD,EAAKn+C,IAAtB,GACA6C,GAAUkF,EAAK8B,IAAKs0C,EAAKt0C,GAAhB,GACThH,GAAUkF,EAAKxX,MAAO4tD,EAAK5tD,KAAlB,CALa,EAQ3B,YAAgBA,EAA4D,CACpE,OAAC,CAAEA,YAAeqjB,KACzB,CAED,YAAoB9R,EAAa,CAC5B5B,MAAO,EAAG9S,EAAGixD,EACjB,IAAKjxD,EAAI,EAAGA,EAAI0U,EAAIpE,OAAQtQ,IACrB0U,IAAIzC,WAAWjS,CAAf,EACG8S,MAAQ,GAAKA,EAAQm+C,EACtB,KAEFn+C,QACP,CAED,YAAoBwQ,EAAc1Q,KAAeiM,EAAkB,CAC5DpC,QAAM7J,EAAK8J,aACjB,OAAS1c,GAAI,EAAGA,EAAIyc,EAAInM,OAAQtQ,GAAK,EAAG,CACjCgU,QAAMyI,EAAInK,MAAMtS,CAAV,EAAa8Q,KAAK,GAAlB,EACNg/B,EAAShgB,GAASxM,EAAMtP,EAAK,GAAG6K,CAAf,EACnB7K,OAAQ87B,EACJA,QAER,CACMrzB,SAAIA,EAAInM,OAAS,EACxB,CAED,YAAoB,CAAEgT,OAAM1Q,OAAMs+C,UAA+D,ChN3hBjG,MgN4hBKt+C,EAAKtB,gBAAiBg6C,KACzB14C,GAAOA,EAAKtB,MAAMjC,IAAIuD,CAAf,EAAqBu+C,UAAUv+C,EAAKtB,KAApC,GAEFjR,QAAI6wD,EACPt+C,EAAKtB,MAAMsa,OAAOwlC,OAASh6C,SAAO/W,CAAKA,IAAEuS,KAAKK,WAAWL,CAAlB,CAAvC,EACAA,EAAKtB,MAAMsa,OAAOna,IAAImB,EAAM,EAA5B,EACH,GAAIvS,EAAEiQ,SAAW,EAAU,YACrB+E,QAAUya,GAASxM,EAAMjjB,EAAE,GAAGwa,MAAO,GAAIxa,KAAE,GAAGwe,SAALxe,OAAe,CAAtC,GACjBgxD,UAAU,aAAc,eAAgBh8C,CAA/B,CAChB,CAED,YAAmB,CAAEiO,OAAM1Q,QAAsC,CAC1DoB,QAAMpB,EAAKq6C,YAAY,MAAjB,EAAyBvwC,WAAzB,EAAsC5L,KAAK,GAA3C,EACNuE,EAAUya,GAASxM,EAAMtP,CAAP,EACxB,MAAIqB,KAAYrB,EAAY,KACrBq9C,GAAU,YAAa,OAAQh8C,CAAtB,CAChB,CAED,KAAMg8C,IAAY,CAAChqD,EAAcS,EAA4BwpD,IAAkB,CACxE,MAACvpD,EAAQuR,GAAawG,GAA5B,EAEO,gBAAK,MAAQ,aAAYzY,IAAOU,EAAS,QAAU,KAAM,QAAS,IAAMuR,EAAxE,YACL/Q,GAAQT,GACTD,UAAM,MAAM,aAAcypD,WAFpB,GAAP,CAIA,EAED,YAAqBrqC,EAA6B9jB,EAAY,ChNvjB9D,MgNwjBQ8jB,WAAY,WACf9jB,qBAAOkE,OAAPlE,cAAakO,QAAQ,cAAe,OAAQ,aAC5CrC,GAAS7L,iBAAOmL,MAAR,CACZ,CAED,YAAiCijD,EAA8B3+C,EAAiBzP,EAAY,CAC3F,KAAMquD,GAAoB,GACpB7pB,EAAU8pB,GAAwBtuD,EAAOquD,CAAR,EACjC9C,EAAS,CACdrnD,KAAMkqD,EAAelqD,KACrBiH,OAAQ0X,aAAW,CAClBwrC,WAAY1rC,WAAS4D,EAAD,EACpBie,QAAShe,IACP,CAAE1C,QAAS,oBAHI,GAKboD,EAASrE,aAAW0oC,EAAQ,CAAEznC,QAAS,UAApB,EACnByqC,EAAc,GAAIhgD,QAAK,CAAC,SAAU,SAAX,CAAT,EACdigD,EAAiB,GAAIjgD,QAAK,CAAC,SAAU,YAAX,CAAT,EACjBJ,EAAQsB,EAAK+5C,WACb8B,EAAwB,GAAInD,IAAajhC,EAAQzX,CAAQ,GAC1DA,KAAKK,WAAWy+C,CAAhB,EACI,UAAIhgD,QAAK,CAAC,GAAG,CAAC,GAAGf,MAAM6gD,EAAWlhD,OAAS,CAArB,CAAT,EAAkC26B,QAAQ,IAAM,CAAC,SAAU,SAAX,CAAhD,EAAwE,GAAGr4B,EAAKg/C,QAApF,CAAT,EACGh/C,KAAKK,WAAW0+C,CAAhB,EAAiC,CACvC/+C,KAAKg/C,SAASthD,SAAW,EACrB,UAAIoB,QAAK,EAAT,EAEFxO,QAAQ0P,EAAKg/C,SAAS,GACxB,SAAO1uD,IAAU,SACb,UAAIwO,QAAK,CAAC,GAAG,CAAC,GAAGf,MAAMzN,CAAD,CAAT,EAAkB+nC,QAAQ,IAAM,CAAC,SAAU,SAAX,CAAhC,EAAwD,SAAU,YAAa,GAAGr4B,EAAKg/C,SAASt/C,MAAM,CAApB,CAAtF,CAAT,CAER,CACMM,UACLA,CAAQ,GACNA,KAAKo+C,OAAOW,CAAZ,EAA6B,CAChC,KAAME,GAAuB,GACLvgD,YAAM8B,KAAMy+C,CAAb,EAChBA,CACP,CACMvgD,SAAMG,IAAIg9C,EAAQp/C,IAAIuD,CAAZ,CAAV,GACL,CAACA,EAAMzP,EAAOqoD,IAAW,CACvB54C,KAAKK,WAAWy+C,CAAhB,EAA8B,CACjC,KAAMG,GAAuB,GACLvgD,KAAM8B,KAAMy+C,CAAb,EACjBC,QAAS,GAAIpgD,QAAK,CAAC,GAAG,CAAC,GAAGf,MAAMkhD,EAAcvhD,OAAS,CAAxB,CAAT,EAAqC26B,QAAQ,IAAM,CAAC,SAAU,SAAX,CAAnD,EAA2E,GAAGr4B,EAAKg/C,QAAvF,CAAT,EACRtgD,SAAMK,IAAImgD,EAAS3uD,EAAOqoD,CAA1B,CACG54C,WAAKK,WAAW0+C,CAAhB,EAAiC,CACrCzuD,QAAQ0P,EAAKg/C,SAAS,GACxBh/C,KAAKg/C,SAASthD,SAAW,EAAG,CACzBq3B,QAAU8mB,EAAQh9C,IAAIigD,CAAZ,EACTpgD,SAAMK,IAAI,GAAID,QAAQqgD,GAAwBpqB,EAASxkC,CAAV,EAAkBqoD,CAA/D,UACG,MAAOtoD,IAAU,SACvB0P,KAAKg/C,SAASthD,SAAW,GAAKnN,IAAUmF,OAAW,CAChDq/B,QAAU8mB,EAAQh9C,IAAIigD,CAAZ,EACVG,EAAuB,GACLvgD,KAAM8B,KAAMy+C,CAAb,EACTphB,SAAOvtC,EAAO,CAA5B,EACMqT,QAAWw7C,GAAwBpqB,EAASkqB,CAAV,EACjCvgD,SAAMK,IAAI,GAAID,GAAJ,KAAY6E,EAAUi1C,CAAhC,MACD,CACAsG,QAAU,GAAIpgD,QAAK,CAAC,GAAG,CAAC,GAAGf,MAAMzN,CAAD,CAAT,EAAkB+nC,QAAQ,IAAM,CAAC,SAAU,SAAX,CAAhC,EAAwD,SAAU,YAAa,GAAGr4B,EAAKg/C,SAASt/C,MAAM,CAApB,CAAtF,CAAT,EACThB,SAAMK,IAAImgD,EAAS3uD,EAAOqoD,CAA1B,CACP,CAEF,CACK75C,MAAIiB,EAAMzP,EAAOqoD,CAAvB,EA7C6B,EA+C9BiD,SAAQr7C,KAAO,CACd/L,KAAMiK,EAAM8B,KAAK/L,KACjBiH,OAAQ,CACPkjD,aACA7pB,SAFO,GAKT8mB,EAAQ7iC,OAASta,EAAMsa,OAChB,CAAE8iC,SAAQD,UACjB,CAED,YAAiCtrD,EAAYquD,EAAwB,ChNroBrE,QgNyoBC,MAHIruD,qBAAOkE,OAAPlE,cAAakO,QAAQ,cAAe,OAAQ,aAG5C,CAACrC,GAAS7L,iBAAOmL,MAAR,EACLnL,EAERquD,GAAW7sC,KAAK,CAAErd,GAAIkqD,EAAWlhD,OAAQmV,KAAMtiB,EAAMmL,OAAO86B,UAA5D,EACOqoB,GAAwBtuD,KAAMmL,OAAOq5B,UAAbxkC,OAAwB,GAAIquD,CAA7B,EAC9B,CAED,YAAiC7pB,EAAc6pB,EAAwB,CACtE,MAAIA,GAAWlhD,SAAW,EAAUq3B,EAC7B,CACNtgC,KAAM,sBACNiH,OAAQ,CACP86B,UAAWooB,EAAWj2B,QAAQ9V,KAC9BkiB,QAASoqB,GAAwBpqB,EAAS6pB,CAAV,CAFzB,EAKT,CC5oBoB,aAAErtD,UAASmN,QAAOyY,cAAas/B,WAA2B,CACxE,MAAE/lC,QAASiP,GAAjB,EACI,IAACjhB,GAAS,CAACyY,GAAezG,IAAS,OAAe,SAAPkiC,OAEzC,MAAC3qC,GAASm3C,GAAiB3xD,CAAK,GAC5B,+BAA4BA,EAAEgV,SAAhC,EACPb,QAAQqG,MAAMxa,CAAd,EAF+B,EAI5Bwa,KAAc,SAAP2qC,OAEX,KAAM,EAAGnrC,GAAYd,EAAS,CAAD,EAC7BgsC,UAASj0C,EAAO,IAAM,CACZyI,KAASA,EAAQ,CAAlB,EADD,EAIDlS,SAAK,MAAM,OAAO,UAAQ,OAA1B,SACNA,EAAC,GAAD,CAAeyJ,QAAOgS,OAAMnf,UAAS4lB,cAArC,EADD,CAGA,CC/BD,GAAI,IAAE,OAAO,eAAe,GAAE,OAAO,iBAAiB,GAAE,OAAO,0BAA0B,GAAE,OAAO,sBAAsB,GAAE,OAAO,UAAU,eAAe,GAAE,OAAO,UAAU,qBAAqB,GAAE,CAAC,EAAE,EAAE,IAAI,IAAK,GAAE,GAAE,EAAE,EAAE,CAAC,WAAW,GAAG,aAAa,GAAG,SAAS,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,IAAI,CAAC,OAAQ,KAAK,IAAI,GAAE,CAAE,GAAE,GAAE,KAAK,EAAE,CAAC,GAAG,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAE,OAAQ,KAAK,IAAE,CAAC,EAAE,GAAE,KAAK,EAAE,CAAC,GAAG,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAO,EAAC,EAAiE,KAAM,IAAE,0FAA0F,YAAW,EAAE,CAAC,MAAM,+CAA+C,KAAK,CAAC,YAAW,EAAE,CAAC,KAAM,GAAE,SAAS,cAAc,qBAAqB,kBAAkB,KAAK,EAAE,MAAO,GAAE,EAAE,QAAQ,EAAE,CAAC,aAAY,CAAC,KAAM,GAAE,SAAS,eAAe,YAAY,GAAG,SAAS,cAAc,OAAO,EAAE,EAAE,GAAG,aAAa,EAAE,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAA8I,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAW,EAAE,CAAC,KAAK,CAAC,EAAE,GAAGjqB,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,WAAW,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE,QAAQ,iBAAiB,EAAE,IAAI,aAAa,EAAE,IAAI,cAAc,EAAE,SAAS,KAAK,EAAE,KAAK,QAAQ,EAAE,OAAO,GAAG,CAAC,KAAM,GAAE,GAAI,KAAI,SAAS,IAAI,EAAE,EAAE,aAAa,OAAO,QAAQ,EAAE,KAAM,GAAE,EAAE,SAAQ,EAAG,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,aAAa,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,GAAE,aAAa,CAAC,EAAE,OAAO,OAAO,MAAM,EAAE,KAAK,EAAE,UAAU,QAAQ,EAAE,KAAK,SAAS,MAAM,UAAU,WAAW,EAAE,KAAK,GAAE,OAAO,EAAE,UAAU,WAAW,EAAE,KAAK,EAAE,UAAU,SAAS,EAAE,OAAO,EAAE,UAAU,mBAAmB,EAAE,KAAK,SAAS,SAAS,OAAO,EAAE,QAAQ,SAAS,SAAS,UAAU,CAAC,EAAE,QAAQ,SAAS,EAAE,EAAE,MAAM,sBAAsB,YAAY,GAAI,iBAAgB,CAAC,GAAG,EAAG,GAAE,GAAE,CAAE,EAAC,CAAC,EAAE,GAAE,EAAE,GAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAC,EAAG,GAAI,GAAE,KAAM,GAAEoC,GAAE,IAAI,EAAE,MAAOnC,IAAG,IAAI,CAAC,KAAM,GAAE,SAAS,KAAK,EAAE,GAAI,KAAI,CAAC,EAAE,EAAE,aAAa,QAAQ,gBAAgB,EAAE,EAAE,EAAE,aAAa,IAAI,QAAQ,GAAG,GAAG,GAAG,EAAE,MAAO,cAAa,QAAQ,iBAAiB,KAAK,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,aAAa,OAAO,QAAQ,EAAE,IAAK,SAAQ,aAAa,OAAO,SAAS,MAAM,EAAE,SAAU,GAAE,GAAG,EAAE,GAAG,CAAC,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,EAAN,CAAS,EAAE,EAAE,EAAE,aAAa,WAAW,gBAAgB,EAAE,QAAQ,KAAK,GAAG,GAAE,CAAM,EAAN,KAAQ,OAAO,EAAE,OAAO,6BAA6B,CAAC,CAAC,EAAG,EAAE,EAAEA,GAAE,GAAE,CAAE,GAAEA,GAAG,IAAI,CAAC,KAAM,GAAE,SAAS,EAAE,EAAE,KAAK,CAAC,MAAO,UAAS,EAAE,CAAC,GAAG,CAAuB,CAAE,SAAzB,qBAAgC,OAAO,KAAK,CAAC,KAAK,GAAG,EAA0C,GAArC,CAAU,KAAO,IAAjB,UAAoB,CAAC,EAAE,QAAiB,IAAG,EAAE,OAAO,cAAe,GAAE,MAAM,OAAO,GAAG,EAAE,OAAO,kBAAkB,CAAC,EAAE,OAAO,OAAM,OAAO,KAAM,GAAE,EAAE,OAAO,MAAM,GAAG,EAAE,SAAS,iBAAiB,GAAG,EAAE,SAAS,qBAAqB,EAAE,CAAC,GAAG,CAAO,YAAa,QAAQ,gBAAgB,IAA5C,KAA8C,MAAO,cAAa,WAAW,gBAAgB,EAAE,EAAG,EAAC,IAAK,SAAQ,KAAK,GAAG,GAAE,CAAC,6BAA6B,EAAE,QAAQ,MAAM,GAAG,GAAE,CAAC,qCAAqC,IAAG,CAAC,CAAC,EAAE,SAAS,sBAAsB,EAAE,QAAQ,KAAK,YAAY,yEAAyE,EAAE,QAAQ,MAAM,GAAG,GAAE,CAAC,KAAK,IAAG,CAAC,CAAC,EAAG,IAAI,EAAE,EAAE,EAAG,EAAE,OAAO,EAAE,MAAO,QAAO,iBAAiB,UAAU,CAAC,EAAE,IAAI,OAAO,oBAAoB,UAAU,CAAC,CAAC,EAAG,EAAE,EAAE,GAAE,cAAc,MAAM,CAAC,UAAU,QAAQ,EAAE,GAAE,cAAc,SAAS,CAAC,UAAU,eAAe,MAAM,WAAW,UAAU,KAAK,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,YAAW,EAAE,CAAC,KAAK,CAAC,EAAE,GAAGD,EAAE,EAAE,EAAE,MAAOC,IAAG,IAAI,EAAE,EAAE,EAAG,EAAE,EAAE,EAAE,GAAE,cAAc,GAAE,GAAE,GAAG,CAAC,CAAC,EAAE,IAAI,CCMz2G,aAAE81C,QAAe,CACjC,MAAEjkB,eAAgBqgC,GAAxB,EACMC,EAActgC,IAAgB,QAAU,QAAU,GAClDugC,EAEF,GAAEp/C,SAASq/C,aAAar/C,SAASs/C,qBAAqBH,QAEnD,gBAAK,MAAM,mBAAX,SACNrqD,EAACyqD,GAAD,CACC,KAAK,0BACL,OAAO,mCACP,SAAS,OACT,WAAW,uBACX,QAASzc,EAAO,WAAa,WAC7B,OACA,iBAAiB,IACjB,aAAa,IACb,cAAc,MACd,MAAOsc,EACP,KAAK,KAXN,EADD,CAcA,CClB2B,cACpBI,szBACP,CAEM,YAAkBjrD,EAAmB,CAC3C,KAAMkrD,GAAQC,GAAS,EAAG9/C,KAAKhS,CAAKA,IAAE2G,KAAOA,CAA/B,EACVkrD,WAAUlqD,OACN,CAAEhB,KAAIyY,MAAO,iBAEdyyC,CACP,CCRyB,aAAElrD,KAAIwuB,UAAS1W,aAAYszC,aAAoB,CAClE,MAAE3yC,QAAO7L,WAAU+K,QAASI,GAAQ,IAAMszC,GAASrrD,CAAD,EAAM,CAACA,CAAD,CAArB,EAEnCsrD,EAAc,CAACrzC,EAAgB,CAAClf,EAAkB,CACnDqyD,GAAWA,EAAUnzC,CAAD,EACxBlf,EAAEmzB,eAAF,EACAnzB,EAAEwyD,yBAAF,GAGD,MAAOhrD,GAAC,GAAD,CAAM,QAAc,QAAS,CAACiuB,GAAW5hB,kBAAUpD,KAAK,aAAQ,KAAO,WAAUxJ,KACvF,kBAAK,MAAM,cACT2X,0BAAMS,OAAOrQ,IAAIkQ,GAAO1X,EAAC,GAAD,CAAO,MAAO0X,EAAK,QAASqzC,EAAYrzC,CAAD,EAAO,OAAQH,iBAAYK,SAASF,EAArB,CAA9E,GADF,EADD,CAKA,CClBD,KAAMuzC,IAA+C,CACpDC,OAAQ,iBACRC,KAAM,OACNC,MAAO,KAH6C,EAM5B,cAClB,MAAE3vC,OAAM9f,SAAQK,aAAcqvD,GAAmB3gC,GAAvD,EACM,CAAEzuB,QAAOI,eAAgB+tD,GAA/B,EACM,CAAE9tD,WAAYgyB,GAApB,EACM,CAAExI,WAAU2C,UAASE,iBAAkBmF,GAA7C,EACM,CAAE5V,SAAUozC,GAAlB,EACMjhD,EAAMkhD,KACN/hC,EAAMgiC,GAAanhD,CAAD,EAEjB,mBACN,mBAAK,MAAM,QAAX,UACCrK,EAAC,GAAD,CAAM,MAAM,YAAY,KAAK,IAAgBrE,eAAO,MAAD,EAAU,UAAQ,YAArE,SAAkFwyB,GAAMs9B,KAAxF,EACAzrD,QAAKkY,WAAL,EACCsR,GAAOxpB,EAAC,GAAD,CAAS,KAAK,eAAe,QAASrE,EAAO,kBAAD,EAAsB,UAAQ,qBAA1E,SACN8K,GAAOoE,WACN0E,OAAOzW,GAAKA,CtN5BlB,QsN4BkBA,YAAEse,OAAFte,cAAS,MAAO0wB,qBAAKpS,OAALoS,cAAY,KAAM4E,GAAa9xB,EAASxD,EAAEmqB,UAAZ,EAD3D,EAECzb,IAAI1O,GACJkH,EAAC,GAAD,CAAK,MAAOrE,EAAO7C,EAAEo1B,QAAW,WAAUp1B,EAAEo1B,WAAWp1B,EAAE2G,KAAO3G,EAAE2G,EAAhD,EAAqD,OAAQ3G,EAAE2G,KAAO+pB,EAAI/pB,GAAI,QAAS,IAAM4L,GAAMX,GAAS5R,EAAEuR,GAAH,CAAT,EAHrH,GADM,EAOP,CAACmf,GAAOnf,EAAI6O,MAAM,gBAAV,GAA+BlZ,EAAC,GAAD,CAAS,KAAK,eAAe,QAASrE,EAAO,gBAAD,EAA5C,SACtCmqB,EAASte,IAAIzP,GACbiI,EAAC,GAAD,CAAK,MAAOjI,EAAE6X,KAAM,OAAQ7X,EAAE6X,OAAS6Y,EAAQ7Y,KAAM,QAAS,IAAM+Y,EAAc5wB,EAAE6X,IAAH,EADjF,GAXH,KAgBA5P,SACC,iBACC,kBAAI,UAAQ,oBAAZ,SACCA,EAAC,GAAD,CAAS,KAAK,QAAQ,QAASrE,EAAO,UAAD,EAArC,SACE8K,GAAOohB,UAAUrgB,IAAI,CAAC,CAAEsgB,OAAMlY,UAC9B5P,EAAC,GAAD,CAAK,MAAO4P,EAAM,OAAQkY,IAASrM,EAClC,QAAS,IAAM4vC,EAAevjC,CAAD,EAF9B,GADF,EADD,EAQA9nB,QAAI,UAAQ,iBAAZ,SACCA,EAAC,GAAD,CAAS,KAAMirD,GAAOhvD,GAAQ,QAASN,EAAO,OAAD,EAA7C,SACEoO,OAAOiF,QAAQi8C,EAAf,EAAuBzjD,IAAI,CAAC,CAACkkD,EAAIzrD,KACjCD,EAAC,GAAD,CAAK,OAAY,MAAOrE,EAAQ,SAAQ+vD,GAAV,EAAiB,OAAQA,IAAOzvD,EAC7D,QAAS,IAAMI,EAAYqvD,CAAD,EAF3B,GADF,EADD,EAQA1rD,QAAI,MAAM,SACT,gBAAG,KAAK,6CAA6C,OAAO,SAAS,IAAI,aAAa,MAAM,oBAAgCrE,eAAO,QAAD,EAAlI,SACE+E,GAAQqrB,YADV,EAlBF,KAlBK,GAAP,CA2CA,CCjED,KAAM4/B,IAAM3rD,SAAK,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,MAAM,6BAA6B,mBAAM,YAAU,UAAU,YAAU,UAAU,EAAE,4bAAhD,CAA/F,CAAZ,EACM4rD,GAAY5rD,SAAK,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,MAAM,6BAA6B,mBAAM,YAAU,UAAU,YAAU,UAAU,EAAE,slBAAhD,CAA/F,CAAlB,EAEamuB,GAAQ,CACpBs9B,KAAMp6C,SAAK,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,MAAM,6BAA6B,oBAAM,MAAM,KAAK,OAAO,IAAI,GAAG,IAAI,KAAK,UAAxC,EAAmDrR,UAAM,EAAE,IAAI,MAAM,KAAK,OAAO,IAAI,GAAG,IAAI,KAAK,UAA9C,EAAyDA,UAAM,EAAE,KAAK,MAAM,KAAK,OAAO,IAAI,GAAG,IAAI,KAAK,UAA/C,EAA0DA,UAAM,EAAE,KAAK,EAAE,KAAK,MAAM,KAAK,OAAO,IAAI,GAAG,IAAI,KAAK,UAAtD,EAAiEA,UAAM,EAAE,KAAK,EAAE,KAAK,MAAM,KAAK,OAAO,IAAI,GAAG,IAAI,KAAK,UAAtD,EAAiEA,UAAM,EAAE,KAAK,EAAE,KAAK,MAAM,KAAK,OAAO,IAAI,GAAG,IAAI,KAAK,UAA7b,GADc,EAEpB6rD,OAAQx6C,SAAK,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,MAAM,6BAA6B,oBAAM,EAAE,6HAA6H,KAAK,UAA1I,EAAqJrR,UAAM,EAAE,+HAA+H,KAAK,UAA5I,EAAuJA,UAAM,EAAE,kIAAkI,KAAK,UAA/I,EAA0JA,UAAM,EAAE,6HAA6H,KAAK,UAA1I,EAAqJA,UAAM,EAAE,sIAAsI,KAAK,UAAnJ,EAA8JA,UAAM,EAAE,sIAAsI,KAAK,UAA/9B,GAFY,EAGpB8rD,OAAQz6C,SAAK,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,MAAM,6BAA6B,sBAAQ,GAAG,KAAK,GAAG,KAAK,EAAE,KAAK,KAAK,UAApC,EAA+CrR,UAAM,YAAU,UAAU,YAAU,UAAU,EAAE,utCAAutC,KAAK,UAA94C,GAHY,EAIpB+rD,YAAa/rD,SAAK,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,MAAM,6BAA6B,mBAAM,EAAE,0rBAAR,EAJxF,EAKpBgsD,iBAAkBhsD,SAAK,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,MAAM,6BAA6B,mBAAM,YAAU,UAAU,YAAU,UAAU,EAAE,qgBAAhD,EAL7F,EAMpBisD,UAAWjsD,SAAK,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,MAAM,6BAA6B,mBAAM,YAAU,UAAU,YAAU,UAAU,EAAE,mLAAhD,EANtF,EAOpB5E,UAAW4E,SAAK,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,MAAM,6BAA6B,mBAAM,YAAU,UAAU,YAAU,UAAU,EAAE,qiJAAhD,EAPtF,EAQpBksD,eAAgBlsD,SAAK,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,MAAM,6BAA6B,mBAAM,YAAU,UAAU,YAAU,UAAU,EAAE,q8BAAhD,EAR3F,EASpBmsD,KAAMnsD,SAAK,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,MAAM,6BAA6B,mBAAM,YAAU,UAAU,YAAU,UAAU,EAAE,+4DAAhD,EATjF,EAUpBosD,cAAe/6C,SAAK,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,MAAM,6BAA6B,oBAAM,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,OAAO,eAAe,eAAa,IAAmB,yBAAhH,EAAyHrR,UAAM,EAAE,kHAAkH,KAAK,OAAO,OAAO,eAAe,eAAa,IAAmB,yBAApZ,GAVK,EAWpBqsD,WAAYrsD,SAAK,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,MAAM,6BAA6B,mBAAM,YAAU,UAAU,YAAU,UAAU,EAAE,kkCAAhD,EAXvF,EAYpByJ,MAAOzJ,SAAK,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,MAAM,6BAA6B,mBAAM,YAAU,UAAU,YAAU,UAAU,EAAE,wfAAhD,EAZlF,EAapBssD,YAAatsD,SAAK,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,MAAM,6BAA6B,mBAAM,YAAU,UAAU,YAAU,UAAU,EAAE,skBAAhD,EAbxF,EAcpB4O,UAAW5O,SAAK,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,MAAM,6BAA6B,mBAAM,EAAE,yRAAR,EAdtF,EAepBusD,OAAQvsD,SAAK,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,MAAM,6BAA6B,mBAAM,YAAU,UAAU,YAAU,UAAU,EAAE,kZAAhD,EAfnF,EAgBpB,YAAa2rD,GACb,kBAAmBA,GACnB,YAAaA,GACb,iBAAkBA,GAClB,WAAYA,GACZ,qBAAsBA,GACtBa,eAAgBxsD,SAAK,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,MAAM,6BAA6B,mBAAM,YAAU,UAAU,YAAU,UAAU,EAAE,+lEAAhD,EAtB3F,EAuBpBysD,MAAOzsD,SAAK,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,MAAM,6BAA6B,mBAAM,YAAU,UAAU,YAAU,UAAU,EAAE,uyBAAhD,EAvBlF,EAwBpB0sD,SAAU1sD,SAAK,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,MAAM,6BAA6B,mBAAM,YAAU,UAAU,YAAU,UAAU,EAAE,wlBAAhD,EAxBrF,EAyBF,0BAAK,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,MAAM,6BAA6B,mBAAM,YAAU,UAAU,YAAU,UAAU,EAAE,6kDAAhD,EAzB7F,EA0BU,sCAAK,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,MAAM,6BAA6B,oBAAM,EAAE,gOAAR,EAAyOA,UAAM,EAAE,+PAAhV,GA1BV,EA2BW,uCAAK,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,MAAM,6BAA6B,mBAAM,YAAU,UAAU,YAAU,UAAU,EAAE,mQAAhD,EA3B1G,EA4BpB,wCAAyC4rD,GACF,+CAAK,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,MAAM,6BAA6B,mBAAM,YAAU,UAAU,YAAU,UAAU,EAAE,yjCAAhD,EA7BlH,EA8BS,qCAAK,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,MAAM,6BAA6B,mBAAM,YAAU,UAAU,YAAU,UAAU,EAAE,o7CAAhD,EA9BxG,EA+BoB,gDAAK,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,MAAM,6BAA6B,mBAAM,YAAU,UAAU,YAAU,UAAU,EAAE,yWAAhD,EA/BnH,EAgCF,0BAAK,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,MAAM,6BAA6B,mBAAM,YAAU,UAAU,YAAU,UAAU,EAAE,2cAAhD,EAhC7F,EAiCO,mCAAK,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,MAAM,6BAA6B,mBAAM,EAAE,0PAAR,EAjCtG,EAkCO,mCAAK,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,MAAM,6BAA6B,mBAAM,YAAU,UAAU,YAAU,UAAU,EAAE,+XAAhD,EAlCtG,EAmCO,mCAAK,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,MAAM,6BAA6B,mBAAM,YAAU,UAAU,YAAU,UAAU,EAAE,8pCAAhD,EAnCtG,EAoCpB,qBAAsBA,GACI,kCAAK,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,MAAM,6BAA6B,mBAAM,YAAU,UAAU,YAAU,UAAU,EAAE,wxBAAhD,EArCrG,EAsCM,kCAAK,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,MAAM,6BAA6B,mBAAM,YAAU,UAAU,YAAU,UAAU,EAAE,4oBAAhD,EAtCrG,EAuCK,iCAAK,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,MAAM,6BAA6B,mBAAM,YAAU,UAAU,YAAU,UAAU,EAAE,opBAAhD,EAA/F,CAvCL,ECkBO,aAAEe,SAAQb,SAAQc,QAAOC,QAAOC,QAAOC,SAAQC,SAAQC,WAAUC,eAAiC,CACvH,MAAEvxD,UAAW+uB,GAAnB,EACM,CAAEpuB,WAAYgyB,GAApB,EACM,CAACrc,EAASk7C,GAAcz7C,EAAS,EAAD,EAChC,CAAC07C,EAASC,GAAc37C,EAAS,EAAD,EAChC,CAAC47C,EAASC,GAAc77C,EAAS,EAAD,EAChC87C,EAAQ38C,GAAe,EAAT,EACd48C,EAAW,uBAAsBb,qBAAyBG,KAAUD,IAE1EptD,GAAU,IAAM,CxN9BjB,UwN+BE,KAAMguD,GAAa5B,EAAOc,GAC1BW,EAAwBzB,+CAAQrjD,SAARqjD,OAAkB,KAAO,CAAvC,EACV0B,EAAM18C,QAAQ7G,QAAQhQ,CAAKA,IAAE0zD,MAA7B,EACAH,EAAM18C,QAAuBg7C,qCAAU,IAAItkD,IAAI0I,CAAS,GACjD09C,QAAY,MAAO19C,IAAU,SAAWA,EAAQA,EAAMN,KACtDvF,EAAMwjD,GAAYvxD,EAASsxD,CAAV,EACjBE,EAAOnB,EAAO,CACnBvxC,IAAK,CAAC/Q,CAAD,EACLma,OAAQ,CAAC,KAAD,EACRuoC,SACAnpC,KAAMkpC,EAJY,EAMdnK,KAAG,MAAO,IAAM,CACpB0K,EAAW,EAAD,EADX,EAGMU,QAAY,IAAM,CACnB97C,GAAWu7C,EAAM18C,QAAQoc,MAAMjzB,GAAKA,EAAEiY,UAAY,QAAvC,GACdi7C,EAAW,EAAD,CACV,EAEEW,SAAK57C,MAAL,IAAiB,SACT,eAAM67C,GAAP,EAELpL,KAAG,OAAQ,IAAM,CACZ,IADV,EAIMmL,EAxBQ,EA0BhBX,EAAW,EAAD,GACR,CAACP,EAAOd,CAAR,CA/BM,EAiCTpsD,GAAU,IAAM,CACf8tD,EAAM18C,QAAQ7G,QAAQhQ,GAAKA,EAAE2pB,KAAKkpC,CAAP,CAA3B,GACE,CAACA,CAAD,CAFM,EAITptD,GAAU,IAAM,CACf8tD,EAAM18C,QAAQ7G,QAAQhQ,GAAKA,EAAE8yD,OAAOA,CAAT,CAA3B,GACE,CAACA,CAAD,CAFM,EAIHtS,QAAO,IAAM,CACdxoC,MAAWq7C,EAAS,OACpB,IACEQ,QAAO3kD,KAAKC,MAAMD,KAAKE,SAAWmkD,EAAM18C,QAAQrI,MAAzC,EACPqI,UAAQg9C,GAAMrT,KAApB,EACA4S,EAAW,EAAD,GAELM,EAAO,IAAM,CAClBH,EAAM18C,QAAQ7G,QAAQhQ,CAAKA,IAAE0zD,MAA7B,GAEDjuD,GAAU,IAAM,CACXwtD,GAAar7C,WAAW,IAAM4oC,IAAQoS,EAAQ,EAAvB,GACzB,CAACK,CAAD,CAFM,EAITxtD,GAAU,IACF,IAAMiuD,EAAb,EACE,CAFM,GAIH,MAACK,EAAYC,GAAiBv8C,EAAS,EAAD,EACtCw8C,EAAcr9C,GAA2BpQ,MAArB,EACpB0tD,EAAO,IAAM,CACRlL,oBAAUC,UAAUuK,CAA9B,EACAQ,EAAc,EAAD,EACTC,EAAYp9C,UAAYrQ,QAAWmR,aAAas8C,EAAYp9C,OAAb,EACvCA,UAAUe,WAAW,IAAM,CACtCo8C,EAAc,EAAD,GACX,GAF6B,GAK1B,gBAAK,MAAQ,eAAch8C,EAAU,WAAam7C,EAAU,WAAa,KAAKE,EAAU,WAAa,KAArG,UACNttD,EAAC,GAAD,CAAK,MAAM,OAAO,KAAMstD,EAAU,QAAUr7C,EAAU,OAAS,OAAQ,MAAOtW,EAAO,aAAD,EAAiB,QAAS8+C,EAAM,QAAS6S,CAAU3xD,CAAV2xD,EAAiB,uBAA0Br7C,EAAiB,uBAAiC,mBAA7E,EAAmG,WAAW,KADrP,EAENjS,EAAC,GAAD,CAAW,MAAM,sBAAsB,KAAK,aAAa,WAAY,GACpE,MAAO4sD,EAAO,SAAUA,GAASI,EAAO,CAAEJ,QAAH,EADxC,EAEAv7C,WAAO,MAAM,cAAe1V,YAAO,cAAD,EAAlC,MAJM,EAKNqE,EAAC,GAAD,CAAa,MAAM,sBAAsB,IAAK,EAC7C,MAAO6sD,EAAO,SAAUA,GAASG,EAAO,CAAEH,QAAH,EADxC,EAEAx7C,WAAO,MAAM,cAAe1V,YAAO,cAAD,EAAlC,MAPM,EAQNqE,EAAC,GAAD,CAAY,MAAM,yBAAyB,IAAK,GAAK,IAAK,EAAG,KAAM,IAClE,aAAY8sD,EAAM7vC,QAAQ,CAAd,EAAkB,MAAQ,QAAgB,OAAc,aACpE,MAAO6vC,EAAO,SAAUA,GAASE,EAAO,CAAEF,QAAH,EAFxC,EAGAz7C,WAAO,MAAM,eAAgB1V,YAAO,eAAD,EAAnC,MAXM,EAYNqE,EAAC,GAAD,CAAY,MAAM,0BAA0B,IAAK,EAAG,IAAK,EAAG,KAAM,IACjE,aAAY+sD,EAAO9vC,QAAQ,CAAf,EAAmB,MAAQ,QAAO8vC,EAAS,OACvD,MAAOA,EAAQ,SAAUA,GAAUC,EAAO,CAAED,SAAH,EAdpC,EAeN/sD,EAAC,GAAD,CAAK,MAAQ,OAAMguD,EAAa,UAAY,KAAM,KAAMA,EAAa,QAAU,WAAY,MAAOryD,EAAO,MAAD,EAAU,QAASqyD,CAAaryD,CAAbqyD,EAAoB,SAAmB,qBAApB,EAC7I,QAASG,EAhBJ,EAiBNnuD,EAAC,GAAD,CAAK,MAAM,SAAS,KAAK,WAAW,QAASrE,EAAO,qBAAD,EAClD,QAAS,IAAM,CAAS,IAAQ,GAAG,EAlB9B,GAAP,CAoBA,CC9GwB,aAAEuc,QAAOk2C,OAAMl9C,OAAMjR,OAAMouD,aAAoB,CACnEpuD,UAAQmuD,EACJ/8C,OAAG,MAAM,YAAY,KAAMH,EAA3B,UACLjR,GAAQkuB,GAAMluB,GACfoR,mBACCrR,EAAC,GAAD,CAAU,QAAc,YAAxB,EACAA,OAAIouD,WAFL,GAFM,GAAP,EASMpuD,OAAG,MAAM,YAAY,KAAMkR,EAA3B,SACNlR,EAAC,GAAD,CAAU,QAAc,YAAxB,EADD,CAGA,CAED,YAAkB,CAAEkY,QAAOm2C,aAAiD,CACpE,eACLn2C,YACAm2C,QAA2B3tD,IAAWA,GAAgB2tD,GAAclgC,GAAckgC,GAF7E,EAAP,CAIA,CCpByB,aAAEn2C,QAAOm2C,YAAWn9C,OAAM8G,YAAmB,CAC/D,gBAAK,MAAM,aAChB9G,cAASzQ,OACPT,SAAK,MAAM,YAAY,iBAAKkY,WAAL,EADzB,EAEElY,EAAC,GAAD,CAAgBkY,QAAOm2C,YAAWn9C,OAH/B,EAKL8G,GAAYhY,SAAK,MAAM,YACtBgY,WANI,GAAP,CASA,CCbqB,aAAE9c,QAAOgF,SAAQK,WAAkB,CACxD,KAAMwM,GAAQ7R,IAAU,WAAa,EAAI4R,GAAW5R,CAAD,EAAU,IACtD,gBAAK,MAAQ,QAAOgF,EAAS,UAAY,KAAKK,EAAU,aAAe,KAAM,MAAQ,WAAUwM,IAAS,UAC7G7R,cAAU,YAAcwF,GAAQk4C,MAChC19C,CAFK,EAAP,CAIA,CCHD,aAAuB,CACrB,MAAO,CACL,QAAS,KACT,OAAQ,GACR,WAAY,KACZ,IAAK,GACL,UAAW,GACX,aAAc,GACd,UAAW,KACX,WAAY,YACZ,OAAQ,GACR,SAAU,GACV,SAAU,KACV,SAAU,GACV,UAAW,KACX,OAAQ,GACR,WAAY,GACZ,YAAa,GACb,UAAW,KACX,WAAY,KACZ,MAAO,EACX,CACA,CAEA,GAAI,IAAW,GAAW,EAE1B,YAAwB,EAAa,CACnC,GAAW,CACb,CAKA,KAAM,IAAa,UACb,GAAgB,WAChB,GAAqB,qBACrB,GAAwB,sBACxB,GAAqB,CACzB,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,SACL,IAAK,OACP,EACM,GAAuB,CAAC,EAAO,GAAmB,GACxD,YAAgB,EAAM,EAAQ,CAC5B,GAAI,GACF,GAAI,GAAW,KAAK,CAAI,EACtB,MAAO,GAAK,QAAQ,GAAe,EAAoB,UAGrD,GAAmB,KAAK,CAAI,EAC9B,MAAO,GAAK,QAAQ,GAAuB,EAAoB,EAInE,MAAO,EACT,CAEA,KAAM,IAAe,6CAErB,YAAkB,EAAM,CAEtB,MAAO,GAAK,QAAQ,GAAc,CAAC,EAAG,IACpC,GAAI,EAAE,cACF,IAAM,QAAgB,IACtB,EAAE,OAAO,CAAC,IAAM,IACX,EAAE,OAAO,CAAC,IAAM,IACnB,OAAO,aAAa,SAAS,EAAE,UAAU,CAAC,EAAG,EAAE,CAAC,EAChD,OAAO,aAAa,CAAC,EAAE,UAAU,CAAC,CAAC,EAElC,GACR,CACH,CAEA,KAAM,IAAQ,eACd,YAAc,EAAO,EAAK,CACxB,EAAQ,EAAM,QAAU,EACxB,EAAM,GAAO,GACb,KAAM,GAAM,CACV,QAAS,CAAC,EAAM,IACd,GAAM,EAAI,QAAU,EACpB,EAAM,EAAI,QAAQ,GAAO,IAAI,EAC7B,EAAQ,EAAM,QAAQ,EAAM,CAAG,EACxB,GAET,SAAU,IACD,GAAI,QAAO,EAAO,CAAG,CAElC,EACE,MAAO,EACT,CAEA,KAAM,IAAsB,UACtB,GAAuB,gCAC7B,YAAkB,EAAU,EAAM,EAAM,CACtC,GAAI,EAAU,CACZ,GAAI,GACJ,GAAI,CACF,EAAO,mBAAmBozD,GAAS,CAAI,CAAC,EACrC,QAAQ,GAAqB,EAAE,EAC/B,aACJ,MAAC,CACA,MAAO,KACR,CACD,GAAI,EAAK,QAAQ,aAAa,IAAM,GAAK,EAAK,QAAQ,WAAW,IAAM,GAAK,EAAK,QAAQ,OAAO,IAAM,EACpG,MAAO,KAEV,CACD,CAAI,EAAQ,CAAC,GAAqB,KAAK,CAAI,GACzC,GAAO,GAAW,EAAM,CAAI,GAE9B,GAAI,CACF,EAAO,UAAU,CAAI,EAAE,QAAQ,OAAQ,GAAG,CAC3C,MAAC,CACA,MAAO,KACR,CACD,MAAO,EACT,CAEA,KAAM,IAAW,GACX,GAAa,mBACb,GAAW,oBACX,GAAS,4BAEf,YAAoB,EAAM,EAAM,CAC9B,CAAK,EAAS,IAAM,IAIlB,CAAI,GAAW,KAAK,CAAI,EACtB,GAAS,IAAM,GAAQ,EAAO,IAE9B,GAAS,IAAM,GAAQ,GAAM,EAAM,IAAK,EAAI,GAGhD,EAAO,GAAS,IAAM,GACtB,KAAM,GAAe,EAAK,QAAQ,GAAG,IAAM,GAE3C,MAAI,GAAK,UAAU,EAAG,CAAC,IAAM,KACvB,EACK,EAEF,EAAK,QAAQ,GAAU,IAAI,EAAI,EAC7B,EAAK,OAAO,CAAC,IAAM,IACxB,EACK,EAEF,EAAK,QAAQ,GAAQ,IAAI,EAAI,EAE7B,EAAO,CAElB,CAEA,KAAM,IAAW,CAAE,KAAM,UAAoB,CAAE,GAE/C,YAAe,EAAK,CAClB,GAAI,GAAI,EACN,EACA,EAEF,KAAO,EAAI,UAAU,OAAQ,IAAK,CAChC,EAAS,UAAU,GACnB,IAAK,IAAO,GACV,CAAI,MAAO,UAAU,eAAe,KAAK,EAAQ,CAAG,GAClD,GAAI,GAAO,EAAO,GAGvB,CAED,MAAO,EACT,CAEA,YAAoB,EAAU,EAAO,CAGnC,KAAM,GAAM,EAAS,QAAQ,MAAO,CAAC,EAAO,EAAQ,IAAQ,CACxD,GAAI,GAAU,GACZ,EAAO,EACT,KAAO,EAAE,GAAQ,GAAK,EAAI,KAAU,MAAM,EAAU,CAAC,EACrD,MAAI,GAGK,IAGA,IAEf,CAAK,EACD,EAAQ,EAAI,MAAM,KAAK,EACzB,GAAI,GAAI,EAMR,GAHK,EAAM,GAAG,KAAM,GAAI,EAAM,MAAK,EAC9B,EAAM,EAAM,OAAS,GAAG,KAAI,GAAM,EAAM,IAAG,EAE5C,EAAM,OAAS,EACjB,EAAM,OAAO,CAAK,MAElB,MAAO,EAAM,OAAS,GAAO,EAAM,KAAK,EAAE,EAG5C,KAAO,EAAI,EAAM,OAAQ,IAEvB,EAAM,GAAK,EAAM,GAAG,KAAI,EAAG,QAAQ,QAAS,GAAG,EAEjD,MAAO,EACT,CAKA,YAAe,EAAK,EAAG,EAAQ,CAC7B,KAAM,GAAI,EAAI,OACd,GAAI,IAAM,EACR,MAAO,GAIT,GAAI,GAAU,EAGd,KAAO,EAAU,GAAG,CAClB,KAAM,GAAW,EAAI,OAAO,EAAI,EAAU,CAAC,EAC3C,GAAI,IAAa,GAAK,CAAC,EACrB,YACS,IAAa,GAAK,EAC3B,QAEA,MAEH,CAED,MAAO,GAAI,OAAO,EAAG,EAAI,CAAO,CAClC,CAEA,YAA4B,EAAK,EAAG,CAClC,GAAI,EAAI,QAAQ,EAAE,EAAE,IAAM,GACxB,MAAO,GAET,KAAM,GAAI,EAAI,OACd,GAAI,GAAQ,EACV,EAAI,EACN,KAAO,EAAI,EAAG,IACZ,GAAI,EAAI,KAAO,KACb,YACS,EAAI,KAAO,EAAE,GACtB,YACS,EAAI,KAAO,EAAE,IACtB,KACI,EAAQ,GACV,MAAO,GAIb,MAAO,EACT,CAEA,YAAkC,EAAK,CACrC,CAAI,EAAO,EAAI,UAAY,CAAC,EAAI,QAC9B,QAAQ,KAAK,yMAAyM,CAE1N,CAGA,YAAsB,EAAS,EAAO,CACpC,GAAI,EAAQ,EACV,MAAO,GAET,GAAI,GAAS,GACb,KAAO,EAAQ,GACb,CAAI,CAAQ,GACV,IAAU,GAEZ,IAAU,EACV,GAAW,EAEb,MAAO,GAAS,CAClB,CAEA,YAAoB,EAAK,EAAM,EAAK,EAAO,CACzC,KAAM,GAAO,EAAK,KACZ,EAAQ,EAAK,MAAQC,GAAO,EAAK,KAAK,EAAI,KAC1C,EAAO,EAAI,GAAG,QAAQ,cAAe,IAAI,EAE/C,GAAI,EAAI,GAAG,OAAO,CAAC,IAAM,IAAK,CAC5B,EAAM,MAAM,OAAS,GACrB,KAAM,GAAQ,CACZ,KAAM,OACN,MACA,OACA,QACA,OACA,OAAQ,EAAM,aAAa,EAAM,EAAE,CACzC,EACI,SAAM,MAAM,OAAS,GACd,CACX,KACI,OAAO,CACL,KAAM,QACN,MACA,OACA,QACA,KAAMA,GAAO,CAAI,CACvB,CAEA,CAEA,YAAgC,EAAK,EAAM,CACzC,KAAM,GAAoB,EAAI,MAAM,eAAe,EAEnD,GAAI,IAAsB,KACxB,MAAO,GAGT,KAAM,GAAe,EAAkB,GAEvC,MAAO,GACJ,MAAM;AAAA,CAAI,EACV,IAAI,GAAQ,CACX,KAAM,GAAoB,EAAK,MAAM,MAAM,EAC3C,GAAI,IAAsB,KACxB,MAAO,GAGT,KAAM,CAAC,GAAgB,EAEvB,MAAI,GAAa,QAAU,EAAa,OAC/B,EAAK,MAAM,EAAa,MAAM,EAGhC,CACb,CAAK,EACA,KAAK;AAAA,CAAI,CACd,CAKA,MAAM,EAAU,CACd,YAAY,EAAS,CACnB,KAAK,QAAU,GAAW,EAC3B,CAED,MAAM,EAAK,CACT,KAAM,GAAM,KAAK,MAAM,MAAM,QAAQ,KAAK,CAAG,EAC7C,GAAI,GAAO,EAAI,GAAG,OAAS,EACzB,MAAO,CACL,KAAM,QACN,IAAK,EAAI,EACjB,CAEG,CAED,KAAK,EAAK,CACR,KAAM,GAAM,KAAK,MAAM,MAAM,KAAK,KAAK,CAAG,EAC1C,GAAI,EAAK,CACP,KAAM,GAAO,EAAI,GAAG,QAAQ,YAAa,EAAE,EAC3C,MAAO,CACL,KAAM,OACN,IAAK,EAAI,GACT,eAAgB,WAChB,KAAM,CAAC,IAAK,QAAQ,SAEhB,EADA,GAAM,EAAM;AAAA,CAAI,CAE5B,CACK,CACF,CAED,OAAO,EAAK,CACV,KAAM,GAAM,KAAK,MAAM,MAAM,OAAO,KAAK,CAAG,EAC5C,GAAI,EAAK,CACP,KAAM,GAAM,EAAI,GACV,EAAO,GAAuB,EAAK,EAAI,IAAM,EAAE,EAErD,MAAO,CACL,KAAM,OACN,MACA,KAAM,EAAI,GAAK,EAAI,GAAG,KAAI,EAAK,EAAI,GACnC,MACR,CACK,CACF,CAED,QAAQ,EAAK,CACX,KAAM,GAAM,KAAK,MAAM,MAAM,QAAQ,KAAK,CAAG,EAC7C,GAAI,EAAK,CACP,GAAI,GAAO,EAAI,GAAG,KAAI,EAGtB,GAAI,KAAK,KAAK,CAAI,EAAG,CACnB,KAAM,GAAU,GAAM,EAAM,GAAG,EAC/B,CAAI,KAAK,QAAQ,UAEN,CAAC,GAAW,KAAK,KAAK,CAAO,IAEtC,GAAO,EAAQ,OAElB,CAED,KAAM,GAAQ,CACZ,KAAM,UACN,IAAK,EAAI,GACT,MAAO,EAAI,GAAG,OACd,KAAM,EACN,OAAQ,CAAE,CAClB,EACM,YAAK,MAAM,OAAO,EAAM,KAAM,EAAM,MAAM,EACnC,CACR,CACF,CAED,GAAG,EAAK,CACN,KAAM,GAAM,KAAK,MAAM,MAAM,GAAG,KAAK,CAAG,EACxC,GAAI,EACF,MAAO,CACL,KAAM,KACN,IAAK,EAAI,EACjB,CAEG,CAED,WAAW,EAAK,CACd,KAAM,GAAM,KAAK,MAAM,MAAM,WAAW,KAAK,CAAG,EAChD,GAAI,EAAK,CACP,KAAM,GAAO,EAAI,GAAG,QAAQ,WAAY,EAAE,EAE1C,MAAO,CACL,KAAM,aACN,IAAK,EAAI,GACT,OAAQ,KAAK,MAAM,YAAY,EAAM,EAAE,EACvC,MACR,CACK,CACF,CAED,KAAK,EAAK,CACR,GAAI,GAAM,KAAK,MAAM,MAAM,KAAK,KAAK,CAAG,EACxC,GAAI,EAAK,CACP,GAAI,GAAK,EAAQ,EAAW,EAAQ,EAAG,EAAW,EAChD,EAAM,EAAU,EAAS,EAAc,EAErC,EAAO,EAAI,GAAG,KAAI,EACtB,KAAM,GAAY,EAAK,OAAS,EAE1B,EAAO,CACX,KAAM,OACN,IAAK,GACL,QAAS,EACT,MAAO,EAAY,CAAC,EAAK,MAAM,EAAG,EAAE,EAAI,GACxC,MAAO,GACP,MAAO,CAAE,CACjB,EAEM,EAAO,EAAY,aAAa,EAAK,MAAM,EAAE,IAAM,KAAK,IAEpD,KAAK,QAAQ,UACf,GAAO,EAAY,EAAO,SAI5B,KAAM,GAAY,GAAI,QAAO,WAAW,4BAA+B,EAGvE,KAAO,GACL,GAAW,GACP,GAAE,GAAM,EAAU,KAAK,CAAG,IAI1B,KAAK,MAAM,MAAM,GAAG,KAAK,CAAG,KANtB,CAkCV,GAxBA,EAAM,EAAI,GACV,EAAM,EAAI,UAAU,EAAI,MAAM,EAE9B,EAAO,EAAI,GAAG,MAAM;AAAA,EAAM,CAAC,EAAE,GAC7B,EAAW,EAAI,MAAM;AAAA,EAAM,CAAC,EAAE,GAE9B,CAAI,IAAK,QAAQ,SACf,GAAS,EACT,EAAe,EAAK,YAEpB,GAAS,EAAI,GAAG,OAAO,MAAM,EAC7B,EAAS,EAAS,EAAI,EAAI,EAC1B,EAAe,EAAK,MAAM,CAAM,EAChC,GAAU,EAAI,GAAG,QAGnB,EAAY,GAER,CAAC,GAAQ,OAAO,KAAK,CAAQ,GAC/B,IAAO,EAAW;AAAA,EAClB,EAAM,EAAI,UAAU,EAAS,OAAS,CAAC,EACvC,EAAW,IAGT,CAAC,EAAU,CACb,KAAM,GAAkB,GAAI,QAAO,QAAQ,KAAK,IAAI,EAAG,EAAS,CAAC,0BAA0B,EAG3F,KAAO,GACL,GAAU,EAAI,MAAM;AAAA,EAAM,CAAC,EAAE,GAC7B,EAAO,EAGH,KAAK,QAAQ,UACf,GAAO,EAAK,QAAQ,0BAA2B,IAAI,GAIjD,GAAgB,KAAK,CAAI,IAVnB,CAcV,GAAI,EAAK,OAAO,MAAM,GAAK,GAAU,CAAC,EAAK,OACzC,GAAgB;AAAA,EAAO,EAAK,MAAM,CAAM,UAC/B,CAAC,EACV,GAAgB;AAAA,EAAO,MAEvB,OAGF,CAAK,GAAa,CAAC,EAAK,KAAI,GAC1B,GAAY,IAGd,GAAO,EAAU;AAAA,EACjB,EAAM,EAAI,UAAU,EAAQ,OAAS,CAAC,CACvC,CACF,CAED,CAAK,CAAK,OAER,CAAI,EACF,EAAK,MAAQ,GACJ,YAAY,KAAK,CAAG,GAC7B,GAAoB,KAKpB,KAAK,QAAQ,KACf,GAAS,cAAc,KAAK,CAAY,EACpC,GACF,GAAY,EAAO,KAAO,OAC1B,EAAe,EAAa,QAAQ,eAAgB,EAAE,IAI1D,EAAK,MAAM,KAAK,CACd,KAAM,YACN,IAAK,EACL,KAAM,CAAC,CAAC,EACR,QAAS,EACT,MAAO,GACP,KAAM,CAChB,CAAS,EAED,EAAK,KAAO,CACb,CAGD,EAAK,MAAM,EAAK,MAAM,OAAS,GAAG,IAAM,EAAI,YAC5C,EAAK,MAAM,EAAK,MAAM,OAAS,GAAG,KAAO,EAAa,YACtD,EAAK,IAAM,EAAK,IAAI,UAAS,EAE7B,KAAM,GAAI,EAAK,MAAM,OAGrB,IAAK,EAAI,EAAG,EAAI,EAAG,IAAK,CACtB,KAAK,MAAM,MAAM,IAAM,GACvB,EAAK,MAAM,GAAG,OAAS,KAAK,MAAM,YAAY,EAAK,MAAM,GAAG,KAAM,CAAE,GACpE,KAAM,GAAU,EAAK,MAAM,GAAG,OAAO,OAAO,GAAK,EAAE,OAAS,OAAO,EAC7D,EAAwB,EAAQ,MAAM,GAAK,CAC/C,KAAM,GAAQ,EAAE,IAAI,MAAM,EAAE,EAC5B,GAAI,GAAa,EACjB,SAAW,KAAQ,GAIjB,GAHI,IAAS;AAAA,GACX,IAAc,GAEZ,EAAa,EACf,MAAO,GAIX,MAAO,EACjB,CAAS,EAED,CAAK,EAAK,OAAS,EAAQ,QAAU,GAEnC,GAAK,MAAQ,GACb,EAAK,MAAM,GAAG,MAAQ,GAEzB,CAED,MAAO,EACR,CACF,CAED,KAAK,EAAK,CACR,KAAM,GAAM,KAAK,MAAM,MAAM,KAAK,KAAK,CAAG,EAC1C,GAAI,EAAK,CACP,KAAM,GAAQ,CACZ,KAAM,OACN,IAAK,EAAI,GACT,IAAK,CAAC,KAAK,QAAQ,WACb,GAAI,KAAO,OAAS,EAAI,KAAO,UAAY,EAAI,KAAO,SAC5D,KAAM,EAAI,EAClB,EACM,MAAI,MAAK,QAAQ,UACf,GAAM,KAAO,YACb,EAAM,KAAO,KAAK,QAAQ,UAAY,KAAK,QAAQ,UAAU,EAAI,EAAE,EAAIA,GAAO,EAAI,EAAE,EACpF,EAAM,OAAS,GACf,KAAK,MAAM,OAAO,EAAM,KAAM,EAAM,MAAM,GAErC,CACR,CACF,CAED,IAAI,EAAK,CACP,KAAM,GAAM,KAAK,MAAM,MAAM,IAAI,KAAK,CAAG,EACzC,GAAI,EAAK,CACP,CAAI,CAAI,IAAI,GAAI,GAAK,EAAI,GAAG,UAAU,EAAG,EAAI,GAAG,OAAS,CAAC,GAC1D,KAAM,GAAM,EAAI,GAAG,YAAW,EAAG,QAAQ,OAAQ,GAAG,EACpD,MAAO,CACL,KAAM,MACN,MACA,IAAK,EAAI,GACT,KAAM,EAAI,GACV,MAAO,EAAI,EACnB,CACK,CACF,CAED,MAAM,EAAK,CACT,KAAM,GAAM,KAAK,MAAM,MAAM,MAAM,KAAK,CAAG,EAC3C,GAAI,EAAK,CACP,KAAM,GAAO,CACX,KAAM,QACN,OAAQ,GAAW,EAAI,EAAE,EAAE,IAAI,GAAc,EAAE,KAAM,CAAC,EAAK,EAC3D,MAAO,EAAI,GAAG,QAAQ,aAAc,EAAE,EAAE,MAAM,QAAQ,EACtD,KAAM,EAAI,GAAK,EAAI,GAAG,QAAQ,YAAa,EAAE,EAAE,MAAM;AAAA,CAAI,EAAI,CAAE,CACvE,EAEM,GAAI,EAAK,OAAO,SAAW,EAAK,MAAM,OAAQ,CAC5C,EAAK,IAAM,EAAI,GAEf,GAAI,GAAI,EAAK,MAAM,OACf,EAAG,EAAG,EAAG,EACb,IAAK,EAAI,EAAG,EAAI,EAAG,IACjB,CAAI,WAAY,KAAK,EAAK,MAAM,EAAE,EAChC,EAAK,MAAM,GAAK,QACX,CAAI,YAAa,KAAK,EAAK,MAAM,EAAE,EACxC,EAAK,MAAM,GAAK,SACX,CAAI,WAAY,KAAK,EAAK,MAAM,EAAE,EACvC,EAAK,MAAM,GAAK,OAEhB,EAAK,MAAM,GAAK,KAKpB,IADA,EAAI,EAAK,KAAK,OACT,EAAI,EAAG,EAAI,EAAG,IACjB,EAAK,KAAK,GAAK,GAAW,EAAK,KAAK,GAAI,EAAK,OAAO,MAAM,EAAE,IAAI,GAAc,EAAE,KAAM,GAAM,EAO9F,IADA,EAAI,EAAK,OAAO,OACX,EAAI,EAAG,EAAI,EAAG,IACjB,EAAK,OAAO,GAAG,OAAS,GACxB,KAAK,MAAM,aAAa,EAAK,OAAO,GAAG,KAAM,EAAK,OAAO,GAAG,MAAM,EAKpE,IADA,EAAI,EAAK,KAAK,OACT,EAAI,EAAG,EAAI,EAAG,IAEjB,IADA,EAAM,EAAK,KAAK,GACX,EAAI,EAAG,EAAI,EAAI,OAAQ,IAC1B,EAAI,GAAG,OAAS,GAChB,KAAK,MAAM,aAAa,EAAI,GAAG,KAAM,EAAI,GAAG,MAAM,EAItD,MAAO,EACR,CACF,CACF,CAED,SAAS,EAAK,CACZ,KAAM,GAAM,KAAK,MAAM,MAAM,SAAS,KAAK,CAAG,EAC9C,GAAI,EAAK,CACP,KAAM,GAAQ,CACZ,KAAM,UACN,IAAK,EAAI,GACT,MAAO,EAAI,GAAG,OAAO,CAAC,IAAM,IAAM,EAAI,EACtC,KAAM,EAAI,GACV,OAAQ,CAAE,CAClB,EACM,YAAK,MAAM,OAAO,EAAM,KAAM,EAAM,MAAM,EACnC,CACR,CACF,CAED,UAAU,EAAK,CACb,KAAM,GAAM,KAAK,MAAM,MAAM,UAAU,KAAK,CAAG,EAC/C,GAAI,EAAK,CACP,KAAM,GAAQ,CACZ,KAAM,YACN,IAAK,EAAI,GACT,KAAM,EAAI,GAAG,OAAO,EAAI,GAAG,OAAS,CAAC,IAAM;AAAA,EACvC,EAAI,GAAG,MAAM,EAAG,EAAE,EAClB,EAAI,GACR,OAAQ,CAAE,CAClB,EACM,YAAK,MAAM,OAAO,EAAM,KAAM,EAAM,MAAM,EACnC,CACR,CACF,CAED,KAAK,EAAK,CACR,KAAM,GAAM,KAAK,MAAM,MAAM,KAAK,KAAK,CAAG,EAC1C,GAAI,EAAK,CACP,KAAM,GAAQ,CACZ,KAAM,OACN,IAAK,EAAI,GACT,KAAM,EAAI,GACV,OAAQ,CAAE,CAClB,EACM,YAAK,MAAM,OAAO,EAAM,KAAM,EAAM,MAAM,EACnC,CACR,CACF,CAED,OAAO,EAAK,CACV,KAAM,GAAM,KAAK,MAAM,OAAO,OAAO,KAAK,CAAG,EAC7C,GAAI,EACF,MAAO,CACL,KAAM,SACN,IAAK,EAAI,GACT,KAAMA,GAAO,EAAI,EAAE,CAC3B,CAEG,CAED,IAAI,EAAK,CACP,KAAM,GAAM,KAAK,MAAM,OAAO,IAAI,KAAK,CAAG,EAC1C,GAAI,EACF,MAAI,CAAC,KAAK,MAAM,MAAM,QAAU,QAAQ,KAAK,EAAI,EAAE,EACjD,KAAK,MAAM,MAAM,OAAS,GACjB,KAAK,MAAM,MAAM,QAAU,UAAU,KAAK,EAAI,EAAE,GACzD,MAAK,MAAM,MAAM,OAAS,IAE5B,CAAK,KAAK,MAAM,MAAM,YAAc,iCAAiC,KAAK,EAAI,EAAE,EAC9E,KAAK,MAAM,MAAM,WAAa,GACrB,KAAK,MAAM,MAAM,YAAc,mCAAmC,KAAK,EAAI,EAAE,GACtF,MAAK,MAAM,MAAM,WAAa,IAGzB,CACL,KAAM,KAAK,QAAQ,SACf,OACA,OACJ,IAAK,EAAI,GACT,OAAQ,KAAK,MAAM,MAAM,OACzB,WAAY,KAAK,MAAM,MAAM,WAC7B,KAAM,KAAK,QAAQ,SACd,KAAK,QAAQ,UACZ,KAAK,QAAQ,UAAU,EAAI,EAAE,EAC7BA,GAAO,EAAI,EAAE,EACf,EAAI,EAChB,CAEG,CAED,KAAK,EAAK,CACR,KAAM,GAAM,KAAK,MAAM,OAAO,KAAK,KAAK,CAAG,EAC3C,GAAI,EAAK,CACP,KAAM,GAAa,EAAI,GAAG,KAAI,EAC9B,GAAI,CAAC,KAAK,QAAQ,UAAY,KAAK,KAAK,CAAU,EAAG,CAEnD,GAAI,CAAE,KAAK,KAAK,CAAU,EACxB,OAIF,KAAM,GAAa,GAAM,EAAW,MAAM,EAAG,EAAE,EAAG,IAAI,EACtD,GAAK,GAAW,OAAS,EAAW,QAAU,IAAM,EAClD,MAEV,KAAa,CAEL,KAAM,GAAiB,GAAmB,EAAI,GAAI,IAAI,EACtD,GAAI,EAAiB,GAAI,CAEvB,KAAM,GAAU,CADF,EAAI,GAAG,QAAQ,GAAG,IAAM,EAAI,EAAI,GACtB,EAAI,GAAG,OAAS,EACxC,EAAI,GAAK,EAAI,GAAG,UAAU,EAAG,CAAc,EAC3C,EAAI,GAAK,EAAI,GAAG,UAAU,EAAG,CAAO,EAAE,OACtC,EAAI,GAAK,EACV,CACF,CACD,GAAI,GAAO,EAAI,GACX,EAAQ,GACZ,GAAI,KAAK,QAAQ,SAAU,CAEzB,KAAM,GAAO,gCAAgC,KAAK,CAAI,EAEtD,CAAI,EACF,GAAO,EAAK,GACZ,EAAQ,EAAK,GAEvB,KACQ,GAAQ,EAAI,GAAK,EAAI,GAAG,MAAM,EAAG,EAAE,EAAI,GAGzC,SAAO,EAAK,OACR,KAAK,KAAK,CAAI,GAChB,CAAI,KAAK,QAAQ,UAAY,CAAE,KAAK,KAAK,CAAU,EAEjD,EAAO,EAAK,MAAM,CAAC,EAEnB,EAAO,EAAK,MAAM,EAAG,EAAE,GAGpB,GAAW,EAAK,CACrB,KAAM,GAAO,EAAK,QAAQ,KAAK,MAAM,OAAO,SAAU,IAAI,EAC1D,MAAO,GAAQ,EAAM,QAAQ,KAAK,MAAM,OAAO,SAAU,IAAI,CAC9D,EAAE,EAAI,GAAI,KAAK,KAAK,CACtB,CACF,CAED,QAAQ,EAAK,EAAO,CAClB,GAAI,GACJ,GAAK,GAAM,KAAK,MAAM,OAAO,QAAQ,KAAK,CAAG,IACrC,GAAM,KAAK,MAAM,OAAO,OAAO,KAAK,CAAG,GAAI,CACjD,GAAI,GAAQ,GAAI,IAAM,EAAI,IAAI,QAAQ,OAAQ,GAAG,EAEjD,GADA,EAAO,EAAM,EAAK,YAAa,GAC3B,CAAC,GAAQ,CAAC,EAAK,KAAM,CACvB,KAAM,GAAO,EAAI,GAAG,OAAO,CAAC,EAC5B,MAAO,CACL,KAAM,OACN,IAAK,EACL,MACV,CACO,CACD,MAAO,IAAW,EAAK,EAAM,EAAI,GAAI,KAAK,KAAK,CAChD,CACF,CAED,SAAS,EAAK,EAAW,EAAW,GAAI,CACtC,GAAI,GAAQ,KAAK,MAAM,OAAO,SAAS,OAAO,KAAK,CAAG,EAItD,GAHI,CAAC,GAGD,EAAM,IAAM,EAAS,MAAM,eAAe,EAAG,OAEjD,KAAM,GAAW,EAAM,IAAM,EAAM,IAAM,GAEzC,GAAI,CAAC,GAAa,GAAa,KAAa,IAAM,KAAK,MAAM,OAAO,YAAY,KAAK,CAAQ,GAAK,CAChG,KAAM,GAAU,EAAM,GAAG,OAAS,EAClC,GAAI,GAAQ,EAAS,EAAa,EAAS,EAAgB,EAE3D,KAAM,GAAS,EAAM,GAAG,KAAO,IAAM,KAAK,MAAM,OAAO,SAAS,UAAY,KAAK,MAAM,OAAO,SAAS,UAMvG,IALA,EAAO,UAAY,EAGnB,EAAY,EAAU,MAAM,GAAK,EAAI,OAAS,CAAO,EAE7C,GAAQ,EAAO,KAAK,CAAS,IAAM,MAAM,CAG/C,GAFA,EAAS,EAAM,IAAM,EAAM,IAAM,EAAM,IAAM,EAAM,IAAM,EAAM,IAAM,EAAM,GAEvE,CAAC,EAAQ,SAIb,GAFA,EAAU,EAAO,OAEb,EAAM,IAAM,EAAM,GAAI,CACxB,GAAc,EACd,QACD,SAAU,GAAM,IAAM,EAAM,KACvB,EAAU,GAAK,CAAG,IAAU,GAAW,GAAI,CAC7C,GAAiB,EACjB,QACD,CAKH,GAFA,GAAc,EAEV,EAAa,EAAG,SAMpB,GAHA,EAAU,KAAK,IAAI,EAAS,EAAU,EAAa,CAAa,EAG5D,KAAK,IAAI,EAAS,CAAO,EAAI,EAAG,CAClC,KAAM,GAAO,EAAI,MAAM,EAAG,EAAU,EAAM,MAAQ,CAAO,EACzD,MAAO,CACL,KAAM,KACN,IAAK,EAAI,MAAM,EAAG,EAAU,EAAM,MAAQ,EAAU,CAAC,EACrD,OACA,OAAQ,KAAK,MAAM,aAAa,EAAM,EAAE,CACpD,CACS,CAGD,KAAM,GAAO,EAAI,MAAM,EAAG,EAAU,EAAM,MAAQ,EAAU,CAAC,EAC7D,MAAO,CACL,KAAM,SACN,IAAK,EAAI,MAAM,EAAG,EAAU,EAAM,MAAQ,EAAU,CAAC,EACrD,OACA,OAAQ,KAAK,MAAM,aAAa,EAAM,EAAE,CAClD,CACO,CACF,CACF,CAED,SAAS,EAAK,CACZ,KAAM,GAAM,KAAK,MAAM,OAAO,KAAK,KAAK,CAAG,EAC3C,GAAI,EAAK,CACP,GAAI,GAAO,EAAI,GAAG,QAAQ,MAAO,GAAG,EACpC,KAAM,GAAmB,OAAO,KAAK,CAAI,EACnC,EAA0B,KAAK,KAAK,CAAI,GAAK,KAAK,KAAK,CAAI,EACjE,MAAI,IAAoB,GACtB,GAAO,EAAK,UAAU,EAAG,EAAK,OAAS,CAAC,GAE1C,EAAOA,GAAO,EAAM,EAAI,EACjB,CACL,KAAM,WACN,IAAK,EAAI,GACT,MACR,CACK,CACF,CAED,GAAG,EAAK,CACN,KAAM,GAAM,KAAK,MAAM,OAAO,GAAG,KAAK,CAAG,EACzC,GAAI,EACF,MAAO,CACL,KAAM,KACN,IAAK,EAAI,EACjB,CAEG,CAED,IAAI,EAAK,CACP,KAAM,GAAM,KAAK,MAAM,OAAO,IAAI,KAAK,CAAG,EAC1C,GAAI,EACF,MAAO,CACL,KAAM,MACN,IAAK,EAAI,GACT,KAAM,EAAI,GACV,OAAQ,KAAK,MAAM,aAAa,EAAI,GAAI,EAAE,CAClD,CAEG,CAED,SAAS,EAAK,EAAQ,CACpB,KAAM,GAAM,KAAK,MAAM,OAAO,SAAS,KAAK,CAAG,EAC/C,GAAI,EAAK,CACP,GAAI,GAAM,EACV,MAAI,GAAI,KAAO,IACb,GAAOA,GAAO,KAAK,QAAQ,OAAS,EAAO,EAAI,EAAE,EAAI,EAAI,EAAE,EAC3D,EAAO,UAAY,GAEnB,GAAOA,GAAO,EAAI,EAAE,EACpB,EAAO,GAGF,CACL,KAAM,OACN,IAAK,EAAI,GACT,OACA,OACA,OAAQ,CACN,CACE,KAAM,OACN,IAAK,EACL,MACD,CACF,CACT,CACK,CACF,CAED,IAAI,EAAK,EAAQ,CACf,GAAI,GACJ,GAAI,EAAM,KAAK,MAAM,OAAO,IAAI,KAAK,CAAG,EAAG,CACzC,GAAI,GAAM,EACV,GAAI,EAAI,KAAO,IACb,EAAOA,GAAO,KAAK,QAAQ,OAAS,EAAO,EAAI,EAAE,EAAI,EAAI,EAAE,EAC3D,EAAO,UAAY,MACd,CAEL,GAAI,GACJ,EACE,GAAc,EAAI,GAClB,EAAI,GAAK,KAAK,MAAM,OAAO,WAAW,KAAK,EAAI,EAAE,EAAE,SAC5C,IAAgB,EAAI,IAC7B,EAAOA,GAAO,EAAI,EAAE,EACpB,CAAI,CAAI,KAAO,OACb,EAAO,UAAY,EAEnB,EAAO,CAEV,CACD,MAAO,CACL,KAAM,OACN,IAAK,EAAI,GACT,OACA,OACA,OAAQ,CACN,CACE,KAAM,OACN,IAAK,EACL,MACD,CACF,CACT,CACK,CACF,CAED,WAAW,EAAK,EAAa,CAC3B,KAAM,GAAM,KAAK,MAAM,OAAO,KAAK,KAAK,CAAG,EAC3C,GAAI,EAAK,CACP,GAAI,GACJ,MAAI,MAAK,MAAM,MAAM,WACnB,EAAO,KAAK,QAAQ,SAAY,KAAK,QAAQ,UAAY,KAAK,QAAQ,UAAU,EAAI,EAAE,EAAIA,GAAO,EAAI,EAAE,EAAK,EAAI,GAEhH,EAAOA,GAAO,KAAK,QAAQ,YAAc,EAAY,EAAI,EAAE,EAAI,EAAI,EAAE,EAEhE,CACL,KAAM,OACN,IAAK,EAAI,GACT,MACR,CACK,CACF,CACH,CAKA,KAAM,IAAQ,CACZ,QAAS,mBACT,KAAM,uCACN,OAAQ,4FACR,GAAI,yDACJ,QAAS,uCACT,WAAY,0CACZ,KAAM,mCACN,KAAM,mdAUN,IAAK,2FACL,MAAO,GACP,SAAU,sCAGV,WAAY,uFACZ,KAAM,SACR,EAEA,GAAM,OAAS,8BACf,GAAM,OAAS,+DACf,GAAM,IAAM,GAAK,GAAM,GAAG,EACvB,QAAQ,QAAS,GAAM,MAAM,EAC7B,QAAQ,QAAS,GAAM,MAAM,EAC7B,WAEH,GAAM,OAAS,wBACf,GAAM,cAAgB,GAAK,eAAe,EACvC,QAAQ,OAAQ,GAAM,MAAM,EAC5B,WAEH,GAAM,KAAO,GAAK,GAAM,IAAI,EACzB,QAAQ,QAAS,GAAM,MAAM,EAC7B,QAAQ,KAAM,iEAAiE,EAC/E,QAAQ,MAAO,UAAY,GAAM,IAAI,OAAS,GAAG,EACjD,WAEH,GAAM,KAAO,gWAMb,GAAM,SAAW,+BACjB,GAAM,KAAO,GAAK,GAAM,KAAM,GAAG,EAC9B,QAAQ,UAAW,GAAM,QAAQ,EACjC,QAAQ,MAAO,GAAM,IAAI,EACzB,QAAQ,YAAa,0EAA0E,EAC/F,WAEH,GAAM,UAAY,GAAK,GAAM,UAAU,EACpC,QAAQ,KAAM,GAAM,EAAE,EACtB,QAAQ,UAAW,eAAe,EAClC,QAAQ,YAAa,EAAE,EACvB,QAAQ,SAAU,EAAE,EACpB,QAAQ,aAAc,SAAS,EAC/B,QAAQ,SAAU,gDAAgD,EAClE,QAAQ,OAAQ,wBAAwB,EACxC,QAAQ,OAAQ,6DAA6D,EAC7E,QAAQ,MAAO,GAAM,IAAI,EACzB,WAEH,GAAM,WAAa,GAAK,GAAM,UAAU,EACrC,QAAQ,YAAa,GAAM,SAAS,EACpC,WAMH,GAAM,OAAS,GAAM,CAAE,EAAE,EAAK,EAM9B,GAAM,IAAM,GAAM,GAAI,GAAM,OAAQ,CAClC,MAAO,kKAGT,CAAC,EAED,GAAM,IAAI,MAAQ,GAAK,GAAM,IAAI,KAAK,EACnC,QAAQ,KAAM,GAAM,EAAE,EACtB,QAAQ,UAAW,eAAe,EAClC,QAAQ,aAAc,SAAS,EAC/B,QAAQ,OAAQ,YAAY,EAC5B,QAAQ,SAAU,gDAAgD,EAClE,QAAQ,OAAQ,wBAAwB,EACxC,QAAQ,OAAQ,6DAA6D,EAC7E,QAAQ,MAAO,GAAM,IAAI,EACzB,WAEH,GAAM,IAAI,UAAY,GAAK,GAAM,UAAU,EACxC,QAAQ,KAAM,GAAM,EAAE,EACtB,QAAQ,UAAW,eAAe,EAClC,QAAQ,YAAa,EAAE,EACvB,QAAQ,QAAS,GAAM,IAAI,KAAK,EAChC,QAAQ,aAAc,SAAS,EAC/B,QAAQ,SAAU,gDAAgD,EAClE,QAAQ,OAAQ,wBAAwB,EACxC,QAAQ,OAAQ,6DAA6D,EAC7E,QAAQ,MAAO,GAAM,IAAI,EACzB,WAKH,GAAM,SAAW,GAAM,GAAI,GAAM,OAAQ,CACvC,KAAM,GACJ,wIAEwE,EACvE,QAAQ,UAAW,GAAM,QAAQ,EACjC,QAAQ,OAAQ,mKAGkB,EAClC,SAAU,EACb,IAAK,oEACL,QAAS,yBACT,OAAQ,GACR,UAAW,GAAK,GAAM,OAAO,UAAU,EACpC,QAAQ,KAAM,GAAM,EAAE,EACtB,QAAQ,UAAW;AAAA,EAAiB,EACpC,QAAQ,WAAY,GAAM,QAAQ,EAClC,QAAQ,aAAc,SAAS,EAC/B,QAAQ,UAAW,EAAE,EACrB,QAAQ,QAAS,EAAE,EACnB,QAAQ,QAAS,EAAE,EACnB,SAAU,CACf,CAAC,EAKD,KAAM,IAAS,CACb,OAAQ,8CACR,SAAU,sCACV,IAAK,GACL,IAAK,2JAML,KAAM,gDACN,QAAS,0BACT,OAAQ,wBACR,cAAe,wBACf,SAAU,CACR,OAAQ,2DAGR,UAAW,mNACX,UAAW,gLACZ,EACD,KAAM,sCACN,GAAI,wBACJ,IAAK,GACL,KAAM,8EACN,YAAa,oBACf,EAIA,GAAO,aAAe,uCACtB,GAAO,YAAc,GAAK,GAAO,WAAW,EAAE,QAAQ,eAAgB,GAAO,YAAY,EAAE,SAAQ,EAGnG,GAAO,UAAY,4CACnB,GAAO,YAAc,YAErB,GAAO,SAAW,GAAK,GAAM,QAAQ,EAAE,QAAQ,YAAa,KAAK,EAAE,WAEnE,GAAO,SAAS,OAAS,GAAK,GAAO,SAAS,MAAM,EACjD,QAAQ,SAAU,GAAO,YAAY,EACrC,WAEH,GAAO,SAAS,UAAY,GAAK,GAAO,SAAS,UAAW,GAAG,EAC5D,QAAQ,SAAU,GAAO,YAAY,EACrC,WAEH,GAAO,SAAS,UAAY,GAAK,GAAO,SAAS,UAAW,GAAG,EAC5D,QAAQ,SAAU,GAAO,YAAY,EACrC,WAEH,GAAO,SAAW,8CAElB,GAAO,QAAU,+BACjB,GAAO,OAAS,+IAChB,GAAO,SAAW,GAAK,GAAO,QAAQ,EACnC,QAAQ,SAAU,GAAO,OAAO,EAChC,QAAQ,QAAS,GAAO,MAAM,EAC9B,WAEH,GAAO,WAAa,8EAEpB,GAAO,IAAM,GAAK,GAAO,GAAG,EACzB,QAAQ,UAAW,GAAO,QAAQ,EAClC,QAAQ,YAAa,GAAO,UAAU,EACtC,WAEH,GAAO,OAAS,sDAChB,GAAO,MAAQ,uCACf,GAAO,OAAS,8DAEhB,GAAO,KAAO,GAAK,GAAO,IAAI,EAC3B,QAAQ,QAAS,GAAO,MAAM,EAC9B,QAAQ,OAAQ,GAAO,KAAK,EAC5B,QAAQ,QAAS,GAAO,MAAM,EAC9B,WAEH,GAAO,QAAU,GAAK,GAAO,OAAO,EACjC,QAAQ,QAAS,GAAO,MAAM,EAC9B,QAAQ,MAAO,GAAM,MAAM,EAC3B,WAEH,GAAO,OAAS,GAAK,GAAO,MAAM,EAC/B,QAAQ,MAAO,GAAM,MAAM,EAC3B,WAEH,GAAO,cAAgB,GAAK,GAAO,cAAe,GAAG,EAClD,QAAQ,UAAW,GAAO,OAAO,EACjC,QAAQ,SAAU,GAAO,MAAM,EAC/B,WAMH,GAAO,OAAS,GAAM,CAAE,EAAE,EAAM,EAMhC,GAAO,SAAW,GAAM,GAAI,GAAO,OAAQ,CACzC,OAAQ,CACN,MAAO,WACP,OAAQ,iEACR,OAAQ,cACR,OAAQ,UACT,EACD,GAAI,CACF,MAAO,QACP,OAAQ,6DACR,OAAQ,YACR,OAAQ,SACT,EACD,KAAM,GAAK,yBAAyB,EACjC,QAAQ,QAAS,GAAO,MAAM,EAC9B,SAAU,EACb,QAAS,GAAK,+BAA+B,EAC1C,QAAQ,QAAS,GAAO,MAAM,EAC9B,SAAU,CACf,CAAC,EAMD,GAAO,IAAM,GAAM,GAAI,GAAO,OAAQ,CACpC,OAAQ,GAAK,GAAO,MAAM,EAAE,QAAQ,KAAM,MAAM,EAAE,SAAU,EAC5D,gBAAiB,4EACjB,IAAK,mEACL,WAAY,yEACZ,IAAK,+CACL,KAAM,4NACR,CAAC,EAED,GAAO,IAAI,IAAM,GAAK,GAAO,IAAI,IAAK,GAAG,EACtC,QAAQ,QAAS,GAAO,IAAI,eAAe,EAC3C,WAKH,GAAO,OAAS,GAAM,GAAI,GAAO,IAAK,CACpC,GAAI,GAAK,GAAO,EAAE,EAAE,QAAQ,OAAQ,GAAG,EAAE,SAAU,EACnD,KAAM,GAAK,GAAO,IAAI,IAAI,EACvB,QAAQ,OAAQ,eAAe,EAC/B,QAAQ,UAAW,GAAG,EACtB,SAAU,CACf,CAAC,EAKD,YAAqB,EAAM,CACzB,MAAO,GAEJ,QAAQ,OAAQ,QAAQ,EAExB,QAAQ,MAAO,QAAQ,EAEvB,QAAQ,0BAA2B,UAAU,EAE7C,QAAQ,KAAM,QAAQ,EAEtB,QAAQ,+BAAgC,UAAU,EAElD,QAAQ,KAAM,QAAQ,EAEtB,QAAQ,SAAU,QAAQ,CAC/B,CAKA,YAAgB,EAAM,CACpB,GAAI,GAAM,GACR,EACA,EAEF,KAAM,GAAI,EAAK,OACf,IAAK,EAAI,EAAG,EAAI,EAAG,IACjB,EAAK,EAAK,WAAW,CAAC,EAClB,KAAK,OAAQ,EAAG,IAClB,GAAK,IAAM,EAAG,SAAS,EAAE,GAE3B,GAAO,KAAO,EAAK,IAGrB,MAAO,EACT,CAKA,MAAM,EAAM,CACV,YAAY,EAAS,CACnB,KAAK,OAAS,GACd,KAAK,OAAO,MAAQ,OAAO,OAAO,IAAI,EACtC,KAAK,QAAU,GAAW,GAC1B,KAAK,QAAQ,UAAY,KAAK,QAAQ,WAAa,GAAI,IACvD,KAAK,UAAY,KAAK,QAAQ,UAC9B,KAAK,UAAU,QAAU,KAAK,QAC9B,KAAK,UAAU,MAAQ,KACvB,KAAK,YAAc,GACnB,KAAK,MAAQ,CACX,OAAQ,GACR,WAAY,GACZ,IAAK,EACX,EAEI,KAAM,GAAQ,CACZ,MAAO,GAAM,OACb,OAAQ,GAAO,MACrB,EAEI,CAAI,IAAK,QAAQ,SACf,GAAM,MAAQ,GAAM,SACpB,EAAM,OAAS,GAAO,UACb,KAAK,QAAQ,KACtB,GAAM,MAAQ,GAAM,IACpB,CAAI,IAAK,QAAQ,OACf,EAAM,OAAS,GAAO,OAEtB,EAAM,OAAS,GAAO,KAG1B,KAAK,UAAU,MAAQ,CACxB,WAKU,QAAQ,CACjB,MAAO,CACL,SACA,SACN,CACG,OAKM,KAAI,EAAK,EAAS,CAEvB,MAAO,CADO,GAAI,IAAM,CAAO,EAClB,IAAI,CAAG,CACrB,OAKM,WAAU,EAAK,EAAS,CAE7B,MAAO,CADO,GAAI,IAAM,CAAO,EAClB,aAAa,CAAG,CAC9B,CAKD,IAAI,EAAK,CACP,EAAM,EACH,QAAQ,WAAY;AAAA,CAAI,EACxB,QAAQ,MAAO,MAAM,EAExB,KAAK,YAAY,EAAK,KAAK,MAAM,EAEjC,GAAI,GACJ,KAAO,EAAO,KAAK,YAAY,MAAK,GAClC,KAAK,aAAa,EAAK,IAAK,EAAK,MAAM,EAGzC,MAAO,MAAK,MACb,CAKD,YAAY,EAAK,EAAS,GAAI,CAC5B,CAAI,IAAK,QAAQ,UACf,GAAM,EAAI,QAAQ,SAAU,EAAE,GAEhC,GAAI,GAAO,EAAW,EAAQ,EAE9B,KAAO,GACL,GAAI,OAAK,QAAQ,YACZ,KAAK,QAAQ,WAAW,OACxB,KAAK,QAAQ,WAAW,MAAM,KAAK,CAAC,EACjC,GAAQ,EAAa,KAAK,CAAE,MAAO,IAAM,EAAE,EAAK,CAAM,GACxD,GAAM,EAAI,UAAU,EAAM,IAAI,MAAM,EACpC,EAAO,KAAK,CAAK,EACV,IAEF,EACR,GAKH,IAAI,EAAQ,KAAK,UAAU,MAAM,CAAG,EAAG,CACrC,EAAM,EAAI,UAAU,EAAM,IAAI,MAAM,EACpC,CAAI,CAAM,IAAI,SAAW,GAAK,EAAO,OAAS,EAG5C,EAAO,EAAO,OAAS,GAAG,KAAO;AAAA,EAEjC,EAAO,KAAK,CAAK,EAEnB,QACD,CAGD,GAAI,EAAQ,KAAK,UAAU,KAAK,CAAG,EAAG,CACpC,EAAM,EAAI,UAAU,EAAM,IAAI,MAAM,EACpC,EAAY,EAAO,EAAO,OAAS,GAEnC,CAAI,EAAc,GAAU,OAAS,aAAe,EAAU,OAAS,QACrE,GAAU,KAAO;AAAA,EAAO,EAAM,IAC9B,EAAU,MAAQ;AAAA,EAAO,EAAM,KAC/B,KAAK,YAAY,KAAK,YAAY,OAAS,GAAG,IAAM,EAAU,MAE9D,EAAO,KAAK,CAAK,EAEnB,QACD,CAGD,GAAI,EAAQ,KAAK,UAAU,OAAO,CAAG,EAAG,CACtC,EAAM,EAAI,UAAU,EAAM,IAAI,MAAM,EACpC,EAAO,KAAK,CAAK,EACjB,QACD,CAGD,GAAI,EAAQ,KAAK,UAAU,QAAQ,CAAG,EAAG,CACvC,EAAM,EAAI,UAAU,EAAM,IAAI,MAAM,EACpC,EAAO,KAAK,CAAK,EACjB,QACD,CAGD,GAAI,EAAQ,KAAK,UAAU,GAAG,CAAG,EAAG,CAClC,EAAM,EAAI,UAAU,EAAM,IAAI,MAAM,EACpC,EAAO,KAAK,CAAK,EACjB,QACD,CAGD,GAAI,EAAQ,KAAK,UAAU,WAAW,CAAG,EAAG,CAC1C,EAAM,EAAI,UAAU,EAAM,IAAI,MAAM,EACpC,EAAO,KAAK,CAAK,EACjB,QACD,CAGD,GAAI,EAAQ,KAAK,UAAU,KAAK,CAAG,EAAG,CACpC,EAAM,EAAI,UAAU,EAAM,IAAI,MAAM,EACpC,EAAO,KAAK,CAAK,EACjB,QACD,CAGD,GAAI,EAAQ,KAAK,UAAU,KAAK,CAAG,EAAG,CACpC,EAAM,EAAI,UAAU,EAAM,IAAI,MAAM,EACpC,EAAO,KAAK,CAAK,EACjB,QACD,CAGD,GAAI,EAAQ,KAAK,UAAU,IAAI,CAAG,EAAG,CACnC,EAAM,EAAI,UAAU,EAAM,IAAI,MAAM,EACpC,EAAY,EAAO,EAAO,OAAS,GACnC,CAAI,EAAc,GAAU,OAAS,aAAe,EAAU,OAAS,QACrE,GAAU,KAAO;AAAA,EAAO,EAAM,IAC9B,EAAU,MAAQ;AAAA,EAAO,EAAM,IAC/B,KAAK,YAAY,KAAK,YAAY,OAAS,GAAG,IAAM,EAAU,MACpD,KAAK,OAAO,MAAM,EAAM,MAClC,MAAK,OAAO,MAAM,EAAM,KAAO,CAC7B,KAAM,EAAM,KACZ,MAAO,EAAM,KACzB,GAEQ,QACD,CAGD,GAAI,EAAQ,KAAK,UAAU,MAAM,CAAG,EAAG,CACrC,EAAM,EAAI,UAAU,EAAM,IAAI,MAAM,EACpC,EAAO,KAAK,CAAK,EACjB,QACD,CAGD,GAAI,EAAQ,KAAK,UAAU,SAAS,CAAG,EAAG,CACxC,EAAM,EAAI,UAAU,EAAM,IAAI,MAAM,EACpC,EAAO,KAAK,CAAK,EACjB,QACD,CAKD,GADA,EAAS,EACL,KAAK,QAAQ,YAAc,KAAK,QAAQ,WAAW,WAAY,CACjE,GAAI,GAAa,IACjB,KAAM,GAAU,EAAI,MAAM,CAAC,EAC3B,GAAI,GACJ,KAAK,QAAQ,WAAW,WAAW,QAAQ,SAAS,EAAe,CACjE,EAAY,EAAc,KAAK,CAAE,MAAO,IAAI,EAAI,CAAO,EACnD,MAAO,IAAc,UAAY,GAAa,GAAK,GAAa,KAAK,IAAI,EAAY,CAAS,EAC5G,CAAS,EACG,EAAa,KAAY,GAAc,GACzC,GAAS,EAAI,UAAU,EAAG,EAAa,CAAC,EAE3C,CACD,GAAI,KAAK,MAAM,KAAQ,GAAQ,KAAK,UAAU,UAAU,CAAM,GAAI,CAChE,EAAY,EAAO,EAAO,OAAS,GACnC,CAAI,EAAwB,EAAU,OAAS,YAC7C,GAAU,KAAO;AAAA,EAAO,EAAM,IAC9B,EAAU,MAAQ;AAAA,EAAO,EAAM,KAC/B,KAAK,YAAY,MACjB,KAAK,YAAY,KAAK,YAAY,OAAS,GAAG,IAAM,EAAU,MAE9D,EAAO,KAAK,CAAK,EAEnB,EAAwB,EAAO,SAAW,EAAI,OAC9C,EAAM,EAAI,UAAU,EAAM,IAAI,MAAM,EACpC,QACD,CAGD,GAAI,EAAQ,KAAK,UAAU,KAAK,CAAG,EAAG,CACpC,EAAM,EAAI,UAAU,EAAM,IAAI,MAAM,EACpC,EAAY,EAAO,EAAO,OAAS,GACnC,CAAI,EAAa,EAAU,OAAS,OAClC,GAAU,KAAO;AAAA,EAAO,EAAM,IAC9B,EAAU,MAAQ;AAAA,EAAO,EAAM,KAC/B,KAAK,YAAY,MACjB,KAAK,YAAY,KAAK,YAAY,OAAS,GAAG,IAAM,EAAU,MAE9D,EAAO,KAAK,CAAK,EAEnB,QACD,CAED,GAAI,EAAK,CACP,KAAM,GAAS,0BAA4B,EAAI,WAAW,CAAC,EAC3D,GAAI,KAAK,QAAQ,OAAQ,CACvB,QAAQ,MAAM,CAAM,EACpB,KACV,KACU,MAAM,IAAI,OAAM,CAAM,CAEzB,EAGH,YAAK,MAAM,IAAM,GACV,CACR,CAED,OAAO,EAAK,EAAQ,CAClB,KAAK,YAAY,KAAK,CAAE,MAAK,QAAQ,EACtC,CAKD,aAAa,EAAK,EAAS,GAAI,CAC7B,GAAI,GAAO,EAAW,EAGlB,EAAY,EACZ,EACA,EAAc,EAGlB,GAAI,KAAK,OAAO,MAAO,CACrB,KAAM,GAAQ,OAAO,KAAK,KAAK,OAAO,KAAK,EAC3C,GAAI,EAAM,OAAS,EACjB,KAAQ,GAAQ,KAAK,UAAU,MAAM,OAAO,cAAc,KAAK,CAAS,IAAM,MAC5E,CAAI,CAAM,SAAS,EAAM,GAAG,MAAM,EAAM,GAAG,YAAY,GAAG,EAAI,EAAG,EAAE,CAAC,GAClE,GAAY,EAAU,MAAM,EAAG,EAAM,KAAK,EAAI,IAAM,GAAa,IAAK,EAAM,GAAG,OAAS,CAAC,EAAI,IAAM,EAAU,MAAM,KAAK,UAAU,MAAM,OAAO,cAAc,SAAS,EAI7K,CAED,KAAQ,GAAQ,KAAK,UAAU,MAAM,OAAO,UAAU,KAAK,CAAS,IAAM,MACxE,EAAY,EAAU,MAAM,EAAG,EAAM,KAAK,EAAI,IAAM,GAAa,IAAK,EAAM,GAAG,OAAS,CAAC,EAAI,IAAM,EAAU,MAAM,KAAK,UAAU,MAAM,OAAO,UAAU,SAAS,EAIpK,KAAQ,GAAQ,KAAK,UAAU,MAAM,OAAO,YAAY,KAAK,CAAS,IAAM,MAC1E,EAAY,EAAU,MAAM,EAAG,EAAM,KAAK,EAAI,KAAO,EAAU,MAAM,KAAK,UAAU,MAAM,OAAO,YAAY,SAAS,EAGxH,KAAO,GAOL,GANK,GACH,GAAW,IAEb,EAAe,GAGX,OAAK,QAAQ,YACZ,KAAK,QAAQ,WAAW,QACxB,KAAK,QAAQ,WAAW,OAAO,KAAK,CAAC,EAClC,GAAQ,EAAa,KAAK,CAAE,MAAO,IAAM,EAAE,EAAK,CAAM,GACxD,GAAM,EAAI,UAAU,EAAM,IAAI,MAAM,EACpC,EAAO,KAAK,CAAK,EACV,IAEF,EACR,GAKH,IAAI,EAAQ,KAAK,UAAU,OAAO,CAAG,EAAG,CACtC,EAAM,EAAI,UAAU,EAAM,IAAI,MAAM,EACpC,EAAO,KAAK,CAAK,EACjB,QACD,CAGD,GAAI,EAAQ,KAAK,UAAU,IAAI,CAAG,EAAG,CACnC,EAAM,EAAI,UAAU,EAAM,IAAI,MAAM,EACpC,EAAY,EAAO,EAAO,OAAS,GACnC,CAAI,EAAa,EAAM,OAAS,QAAU,EAAU,OAAS,OAC3D,GAAU,KAAO,EAAM,IACvB,EAAU,MAAQ,EAAM,MAExB,EAAO,KAAK,CAAK,EAEnB,QACD,CAGD,GAAI,EAAQ,KAAK,UAAU,KAAK,CAAG,EAAG,CACpC,EAAM,EAAI,UAAU,EAAM,IAAI,MAAM,EACpC,EAAO,KAAK,CAAK,EACjB,QACD,CAGD,GAAI,EAAQ,KAAK,UAAU,QAAQ,EAAK,KAAK,OAAO,KAAK,EAAG,CAC1D,EAAM,EAAI,UAAU,EAAM,IAAI,MAAM,EACpC,EAAY,EAAO,EAAO,OAAS,GACnC,CAAI,EAAa,EAAM,OAAS,QAAU,EAAU,OAAS,OAC3D,GAAU,KAAO,EAAM,IACvB,EAAU,MAAQ,EAAM,MAExB,EAAO,KAAK,CAAK,EAEnB,QACD,CAGD,GAAI,EAAQ,KAAK,UAAU,SAAS,EAAK,EAAW,CAAQ,EAAG,CAC7D,EAAM,EAAI,UAAU,EAAM,IAAI,MAAM,EACpC,EAAO,KAAK,CAAK,EACjB,QACD,CAGD,GAAI,EAAQ,KAAK,UAAU,SAAS,CAAG,EAAG,CACxC,EAAM,EAAI,UAAU,EAAM,IAAI,MAAM,EACpC,EAAO,KAAK,CAAK,EACjB,QACD,CAGD,GAAI,EAAQ,KAAK,UAAU,GAAG,CAAG,EAAG,CAClC,EAAM,EAAI,UAAU,EAAM,IAAI,MAAM,EACpC,EAAO,KAAK,CAAK,EACjB,QACD,CAGD,GAAI,EAAQ,KAAK,UAAU,IAAI,CAAG,EAAG,CACnC,EAAM,EAAI,UAAU,EAAM,IAAI,MAAM,EACpC,EAAO,KAAK,CAAK,EACjB,QACD,CAGD,GAAI,EAAQ,KAAK,UAAU,SAAS,EAAK,EAAM,EAAG,CAChD,EAAM,EAAI,UAAU,EAAM,IAAI,MAAM,EACpC,EAAO,KAAK,CAAK,EACjB,QACD,CAGD,GAAI,CAAC,KAAK,MAAM,QAAW,GAAQ,KAAK,UAAU,IAAI,EAAK,EAAM,GAAI,CACnE,EAAM,EAAI,UAAU,EAAM,IAAI,MAAM,EACpC,EAAO,KAAK,CAAK,EACjB,QACD,CAKD,GADA,EAAS,EACL,KAAK,QAAQ,YAAc,KAAK,QAAQ,WAAW,YAAa,CAClE,GAAI,GAAa,IACjB,KAAM,GAAU,EAAI,MAAM,CAAC,EAC3B,GAAI,GACJ,KAAK,QAAQ,WAAW,YAAY,QAAQ,SAAS,EAAe,CAClE,EAAY,EAAc,KAAK,CAAE,MAAO,IAAI,EAAI,CAAO,EACnD,MAAO,IAAc,UAAY,GAAa,GAAK,GAAa,KAAK,IAAI,EAAY,CAAS,EAC5G,CAAS,EACG,EAAa,KAAY,GAAc,GACzC,GAAS,EAAI,UAAU,EAAG,EAAa,CAAC,EAE3C,CACD,GAAI,EAAQ,KAAK,UAAU,WAAW,EAAQ,EAAW,EAAG,CAC1D,EAAM,EAAI,UAAU,EAAM,IAAI,MAAM,EAChC,EAAM,IAAI,MAAM,EAAE,IAAM,KAC1B,GAAW,EAAM,IAAI,MAAM,EAAE,GAE/B,EAAe,GACf,EAAY,EAAO,EAAO,OAAS,GACnC,CAAI,EAAa,EAAU,OAAS,OAClC,GAAU,KAAO,EAAM,IACvB,EAAU,MAAQ,EAAM,MAExB,EAAO,KAAK,CAAK,EAEnB,QACD,CAED,GAAI,EAAK,CACP,KAAM,GAAS,0BAA4B,EAAI,WAAW,CAAC,EAC3D,GAAI,KAAK,QAAQ,OAAQ,CACvB,QAAQ,MAAM,CAAM,EACpB,KACV,KACU,MAAM,IAAI,OAAM,CAAM,CAEzB,EAGH,MAAO,EACR,CACH,CAKA,MAAM,EAAS,CACb,YAAY,EAAS,CACnB,KAAK,QAAU,GAAW,EAC3B,CAED,KAAK,EAAM,EAAY,EAAS,CAC9B,KAAM,GAAQ,IAAc,IAAI,MAAM,KAAK,EAAE,GAC7C,GAAI,KAAK,QAAQ,UAAW,CAC1B,KAAM,GAAM,KAAK,QAAQ,UAAU,EAAM,CAAI,EAC7C,CAAI,EAAO,MAAQ,IAAQ,GACzB,GAAU,GACV,EAAO,EAEV,CAID,MAFA,GAAO,EAAK,QAAQ,MAAO,EAAE,EAAI;AAAA,EAE7B,CAAC,CAME,qBACH,KAAK,QAAQ,WACbA,GAAO,EAAM,EAAI,EACjB,KACC,GAAU,EAAOA,GAAO,EAAM,EAAI,GACnC;AAAA,EAVK,cACF,GAAU,EAAOA,GAAO,EAAM,EAAI,GACnC;AAAA,CASP,CAED,WAAW,EAAO,CAChB,MAAO;AAAA,EAAmB,EAAQ;AAAA,CACnC,CAED,KAAK,EAAM,CACT,MAAO,EACR,CAED,QAAQ,EAAM,EAAO,EAAK,EAAS,CACjC,MAAI,MAAK,QAAQ,UACR,KACH,EACA,QACA,KAAK,QAAQ,aACb,EAAQ,KAAK,CAAG,EAChB,KACA,EACA,MACA,EACA;AAAA,EAGC,KAAO,EAAQ,IAAM,EAAO,MAAQ,EAAQ;AAAA,CACpD,CAED,IAAK,CACH,MAAO,MAAK,QAAQ,MAAQ;AAAA,EAAY;AAAA,CACzC,CAED,KAAK,EAAM,EAAS,EAAO,CACzB,KAAM,GAAO,EAAU,KAAO,KAC5B,EAAY,GAAW,IAAU,EAAM,WAAa,EAAQ,IAAO,GACrE,MAAO,IAAM,EAAO,EAAW;AAAA,EAAQ,EAAO,KAAO,EAAO;AAAA,CAC7D,CAED,SAAS,EAAM,CACb,MAAO,OAAS,EAAO;AAAA,CACxB,CAED,SAAS,EAAS,CAChB,MAAO,UACF,GAAU,cAAgB,IAC3B,8BACC,MAAK,QAAQ,MAAQ,KAAO,IAC7B,IACL,CAED,UAAU,EAAM,CACd,MAAO,MAAQ,EAAO;AAAA,CACvB,CAED,MAAM,EAAQ,EAAM,CAClB,MAAI,IAAM,GAAO,UAAY,EAAO,YAE7B;AAAA;AAAA,EAEH,EACA;AAAA,EACA,EACA;AAAA,CACL,CAED,SAAS,EAAS,CAChB,MAAO;AAAA,EAAW,EAAU;AAAA,CAC7B,CAED,UAAU,EAAS,EAAO,CACxB,KAAM,GAAO,EAAM,OAAS,KAAO,KAInC,MAAO,CAHK,EAAM,MACd,IAAM,EAAO,WAAa,EAAM,MAAQ,KACxC,IAAM,EAAO,KACJ,EAAU,KAAO,EAAO;AAAA,CACtC,CAGD,OAAO,EAAM,CACX,MAAO,WAAa,EAAO,WAC5B,CAED,GAAG,EAAM,CACP,MAAO,OAAS,EAAO,OACxB,CAED,SAAS,EAAM,CACb,MAAO,SAAW,EAAO,SAC1B,CAED,IAAK,CACH,MAAO,MAAK,QAAQ,MAAQ,QAAU,MACvC,CAED,IAAI,EAAM,CACR,MAAO,QAAU,EAAO,QACzB,CAED,KAAK,EAAM,EAAO,EAAM,CAEtB,GADA,EAAO,GAAS,KAAK,QAAQ,SAAU,KAAK,QAAQ,QAAS,CAAI,EAC7D,IAAS,KACX,MAAO,GAET,GAAI,GAAM,YAAcA,GAAO,CAAI,EAAI,IACvC,MAAI,IACF,IAAO,WAAa,EAAQ,KAE9B,GAAO,IAAM,EAAO,OACb,CACR,CAED,MAAM,EAAM,EAAO,EAAM,CAEvB,GADA,EAAO,GAAS,KAAK,QAAQ,SAAU,KAAK,QAAQ,QAAS,CAAI,EAC7D,IAAS,KACX,MAAO,GAGT,GAAI,GAAM,aAAe,EAAO,UAAY,EAAO,IACnD,MAAI,IACF,IAAO,WAAa,EAAQ,KAE9B,GAAO,KAAK,QAAQ,MAAQ,KAAO,IAC5B,CACR,CAED,KAAK,EAAM,CACT,MAAO,EACR,CACH,CAMA,MAAM,EAAa,CAEjB,OAAO,EAAM,CACX,MAAO,EACR,CAED,GAAG,EAAM,CACP,MAAO,EACR,CAED,SAAS,EAAM,CACb,MAAO,EACR,CAED,IAAI,EAAM,CACR,MAAO,EACR,CAED,KAAK,EAAM,CACT,MAAO,EACR,CAED,KAAK,EAAM,CACT,MAAO,EACR,CAED,KAAK,EAAM,EAAO,EAAM,CACtB,MAAO,GAAK,CACb,CAED,MAAM,EAAM,EAAO,EAAM,CACvB,MAAO,GAAK,CACb,CAED,IAAK,CACH,MAAO,EACR,CACH,CAKA,MAAM,EAAQ,CACZ,aAAc,CACZ,KAAK,KAAO,EACb,CAED,UAAU,EAAO,CACf,MAAO,GACJ,YAAa,EACb,KAAM,EAEN,QAAQ,kBAAmB,EAAE,EAE7B,QAAQ,gEAAiE,EAAE,EAC3E,QAAQ,MAAO,GAAG,CACtB,CAKD,gBAAgB,EAAc,EAAU,CACtC,GAAI,GAAO,EACP,EAAuB,EAC3B,GAAI,KAAK,KAAK,eAAe,CAAI,EAAG,CAClC,EAAuB,KAAK,KAAK,GACjC,EACE,KACA,EAAO,EAAe,IAAM,QACrB,KAAK,KAAK,eAAe,CAAI,EACvC,CACD,MAAK,IACH,MAAK,KAAK,GAAgB,EAC1B,KAAK,KAAK,GAAQ,GAEb,CACR,CAOD,KAAK,EAAO,EAAU,GAAI,CACxB,KAAM,GAAO,KAAK,UAAU,CAAK,EACjC,MAAO,MAAK,gBAAgB,EAAM,EAAQ,MAAM,CACjD,CACH,CAKA,MAAM,EAAO,CACX,YAAY,EAAS,CACnB,KAAK,QAAU,GAAW,GAC1B,KAAK,QAAQ,SAAW,KAAK,QAAQ,UAAY,GAAI,IACrD,KAAK,SAAW,KAAK,QAAQ,SAC7B,KAAK,SAAS,QAAU,KAAK,QAC7B,KAAK,aAAe,GAAI,IACxB,KAAK,QAAU,GAAI,GACpB,OAKM,OAAM,EAAQ,EAAS,CAE5B,MAAO,CADQ,GAAI,IAAO,CAAO,EACnB,MAAM,CAAM,CAC3B,OAKM,aAAY,EAAQ,EAAS,CAElC,MAAO,CADQ,GAAI,IAAO,CAAO,EACnB,YAAY,CAAM,CACjC,CAKD,MAAM,EAAQ,EAAM,GAAM,CACxB,GAAI,GAAM,GACR,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EAEF,KAAM,GAAI,EAAO,OACjB,IAAK,EAAI,EAAG,EAAI,EAAG,IAAK,CAItB,GAHA,EAAQ,EAAO,GAGX,KAAK,QAAQ,YAAc,KAAK,QAAQ,WAAW,WAAa,KAAK,QAAQ,WAAW,UAAU,EAAM,OAC1G,GAAM,KAAK,QAAQ,WAAW,UAAU,EAAM,MAAM,KAAK,CAAE,OAAQ,IAAM,EAAE,CAAK,EAC5E,IAAQ,IAAS,CAAC,CAAC,QAAS,KAAM,UAAW,OAAQ,QAAS,aAAc,OAAQ,OAAQ,YAAa,MAAM,EAAE,SAAS,EAAM,IAAI,GAAG,CACzI,GAAO,GAAO,GACd,QACD,CAGH,OAAQ,EAAM,UACP,QACH,aAEG,KAAM,CACT,GAAO,KAAK,SAAS,KACrB,QACD,KACI,UAAW,CACd,GAAO,KAAK,SAAS,QACnB,KAAK,YAAY,EAAM,MAAM,EAC7B,EAAM,MACND,GAAS,KAAK,YAAY,EAAM,OAAQ,KAAK,YAAY,CAAC,EAC1D,KAAK,OAAO,EACd,QACD,KACI,OAAQ,CACX,GAAO,KAAK,SAAS,KAAK,EAAM,KAC9B,EAAM,KACN,EAAM,OAAO,EACf,QACD,KACI,QAAS,CAMZ,IALA,EAAS,GAGT,EAAO,GACP,EAAK,EAAM,OAAO,OACb,EAAI,EAAG,EAAI,EAAI,IAClB,GAAQ,KAAK,SAAS,UACpB,KAAK,YAAY,EAAM,OAAO,GAAG,MAAM,EACvC,CAAE,OAAQ,GAAM,MAAO,EAAM,MAAM,EAAI,CACrD,EAMU,IAJA,GAAU,KAAK,SAAS,SAAS,CAAI,EAErC,EAAO,GACP,EAAK,EAAM,KAAK,OACX,EAAI,EAAG,EAAI,EAAI,IAAK,CAKvB,IAJA,EAAM,EAAM,KAAK,GAEjB,EAAO,GACP,EAAK,EAAI,OACJ,EAAI,EAAG,EAAI,EAAI,IAClB,GAAQ,KAAK,SAAS,UACpB,KAAK,YAAY,EAAI,GAAG,MAAM,EAC9B,CAAE,OAAQ,GAAO,MAAO,EAAM,MAAM,EAAI,CACxD,EAGY,GAAQ,KAAK,SAAS,SAAS,CAAI,CACpC,CACD,GAAO,KAAK,SAAS,MAAM,EAAQ,CAAI,EACvC,QACD,KACI,aAAc,CACjB,EAAO,KAAK,MAAM,EAAM,MAAM,EAC9B,GAAO,KAAK,SAAS,WAAW,CAAI,EACpC,QACD,KACI,OAAQ,CAOX,IANA,EAAU,EAAM,QAChB,EAAQ,EAAM,MACd,EAAQ,EAAM,MACd,EAAK,EAAM,MAAM,OAEjB,EAAO,GACF,EAAI,EAAG,EAAI,EAAI,IAClB,EAAO,EAAM,MAAM,GACnB,EAAU,EAAK,QACf,EAAO,EAAK,KAEZ,EAAW,GACP,EAAK,MACP,GAAW,KAAK,SAAS,SAAS,CAAO,EACzC,CAAI,CACF,CAAI,CAAK,OAAO,OAAS,GAAK,EAAK,OAAO,GAAG,OAAS,YACpD,GAAK,OAAO,GAAG,KAAO,EAAW,IAAM,EAAK,OAAO,GAAG,KAClD,EAAK,OAAO,GAAG,QAAU,EAAK,OAAO,GAAG,OAAO,OAAS,GAAK,EAAK,OAAO,GAAG,OAAO,GAAG,OAAS,QACjG,GAAK,OAAO,GAAG,OAAO,GAAG,KAAO,EAAW,IAAM,EAAK,OAAO,GAAG,OAAO,GAAG,OAG5E,EAAK,OAAO,QAAQ,CAClB,KAAM,OACN,KAAM,CAC1B,CAAmB,EAGH,GAAY,GAIhB,GAAY,KAAK,MAAM,EAAK,OAAQ,CAAK,EACzC,GAAQ,KAAK,SAAS,SAAS,EAAU,EAAM,CAAO,EAGxD,GAAO,KAAK,SAAS,KAAK,EAAM,EAAS,CAAK,EAC9C,QACD,KACI,OAAQ,CAEX,GAAO,KAAK,SAAS,KAAK,EAAM,IAAI,EACpC,QACD,KACI,YAAa,CAChB,GAAO,KAAK,SAAS,UAAU,KAAK,YAAY,EAAM,MAAM,CAAC,EAC7D,QACD,KACI,OAAQ,CAEX,IADA,EAAO,EAAM,OAAS,KAAK,YAAY,EAAM,MAAM,EAAI,EAAM,KACtD,EAAI,EAAI,GAAK,EAAO,EAAI,GAAG,OAAS,QACzC,EAAQ,EAAO,EAAE,GACjB,GAAQ;AAAA,EAAQ,GAAM,OAAS,KAAK,YAAY,EAAM,MAAM,EAAI,EAAM,MAExE,GAAO,EAAM,KAAK,SAAS,UAAU,CAAI,EAAI,EAC7C,QACD,SAEQ,CACP,KAAM,GAAS,eAAiB,EAAM,KAAO,wBAC7C,GAAI,KAAK,QAAQ,OAAQ,CACvB,QAAQ,MAAM,CAAM,EACpB,MACZ,KACY,MAAM,IAAI,OAAM,CAAM,CAEzB,EAEJ,CAED,MAAO,EACR,CAKD,YAAY,EAAQ,EAAU,CAC5B,EAAW,GAAY,KAAK,SAC5B,GAAI,GAAM,GACR,EACA,EACA,EAEF,KAAM,GAAI,EAAO,OACjB,IAAK,EAAI,EAAG,EAAI,EAAG,IAAK,CAItB,GAHA,EAAQ,EAAO,GAGX,KAAK,QAAQ,YAAc,KAAK,QAAQ,WAAW,WAAa,KAAK,QAAQ,WAAW,UAAU,EAAM,OAC1G,GAAM,KAAK,QAAQ,WAAW,UAAU,EAAM,MAAM,KAAK,CAAE,OAAQ,IAAM,EAAE,CAAK,EAC5E,IAAQ,IAAS,CAAC,CAAC,SAAU,OAAQ,OAAQ,QAAS,SAAU,KAAM,WAAY,KAAM,MAAO,MAAM,EAAE,SAAS,EAAM,IAAI,GAAG,CAC/H,GAAO,GAAO,GACd,QACD,CAGH,OAAQ,EAAM,UACP,SAAU,CACb,GAAO,EAAS,KAAK,EAAM,IAAI,EAC/B,KACD,KACI,OAAQ,CACX,GAAO,EAAS,KAAK,EAAM,IAAI,EAC/B,KACD,KACI,OAAQ,CACX,GAAO,EAAS,KAAK,EAAM,KAAM,EAAM,MAAO,KAAK,YAAY,EAAM,OAAQ,CAAQ,CAAC,EACtF,KACD,KACI,QAAS,CACZ,GAAO,EAAS,MAAM,EAAM,KAAM,EAAM,MAAO,EAAM,IAAI,EACzD,KACD,KACI,SAAU,CACb,GAAO,EAAS,OAAO,KAAK,YAAY,EAAM,OAAQ,CAAQ,CAAC,EAC/D,KACD,KACI,KAAM,CACT,GAAO,EAAS,GAAG,KAAK,YAAY,EAAM,OAAQ,CAAQ,CAAC,EAC3D,KACD,KACI,WAAY,CACf,GAAO,EAAS,SAAS,EAAM,IAAI,EACnC,KACD,KACI,KAAM,CACT,GAAO,EAAS,KAChB,KACD,KACI,MAAO,CACV,GAAO,EAAS,IAAI,KAAK,YAAY,EAAM,OAAQ,CAAQ,CAAC,EAC5D,KACD,KACI,OAAQ,CACX,GAAO,EAAS,KAAK,EAAM,IAAI,EAC/B,KACD,SACQ,CACP,KAAM,GAAS,eAAiB,EAAM,KAAO,wBAC7C,GAAI,KAAK,QAAQ,OAAQ,CACvB,QAAQ,MAAM,CAAM,EACpB,MACZ,KACY,MAAM,IAAI,OAAM,CAAM,CAEzB,EAEJ,CACD,MAAO,EACR,CACH,CAKA,YAAgB,EAAK,EAAK,EAAU,CAElC,GAAI,MAAO,IAAQ,aAAe,IAAQ,KACxC,KAAM,IAAI,OAAM,gDAAgD,EAElE,GAAI,MAAO,IAAQ,SACjB,KAAM,IAAI,OAAM,wCACZ,OAAO,UAAU,SAAS,KAAK,CAAG,EAAI,mBAAmB,EAW/D,GARI,MAAO,IAAQ,YACjB,GAAW,EACX,EAAM,MAGR,EAAM,GAAM,GAAI,GAAO,SAAU,GAAO,EAAE,EAC1C,GAAyB,CAAG,EAExB,EAAU,CACZ,KAAM,GAAY,EAAI,UACtB,GAAI,GAEJ,GAAI,CACF,EAAS,GAAM,IAAI,EAAK,CAAG,CAC5B,OAAQ,EAAP,CACA,MAAO,GAAS,CAAC,CAClB,CAED,KAAM,GAAO,SAAS,EAAK,CACzB,GAAI,GAEJ,GAAI,CAAC,EACH,GAAI,CACF,CAAI,CAAI,YACN,GAAO,WAAW,EAAQ,EAAI,UAAU,EAE1C,EAAM,GAAO,MAAM,EAAQ,CAAG,CAC/B,OAAQ,EAAP,CACA,EAAM,CACP,CAGH,SAAI,UAAY,EAET,EACH,EAAS,CAAG,EACZ,EAAS,KAAM,CAAG,CAC5B,EAQI,GANI,CAAC,GAAa,EAAU,OAAS,GAIrC,OAAO,GAAI,UAEP,CAAC,EAAO,QAAQ,MAAO,GAAI,EAE/B,GAAI,GAAU,EACd,GAAO,WAAW,EAAQ,SAAS,EAAO,CACxC,CAAI,CAAM,OAAS,QACjB,KACA,WAAW,IAAM,CACf,EAAU,EAAM,KAAM,EAAM,KAAM,SAAS,EAAK,EAAM,CACpD,GAAI,EACF,MAAO,GAAK,CAAG,EAEjB,CAAI,EAAQ,MAAQ,IAAS,EAAM,MACjC,GAAM,KAAO,EACb,EAAM,QAAU,IAGlB,IACI,IAAY,GACd,GAEd,CAAW,CACF,EAAE,CAAC,EAEZ,CAAK,EAEG,IAAY,GACd,IAGF,MACD,CAED,GAAI,CACF,KAAM,GAAS,GAAM,IAAI,EAAK,CAAG,EACjC,MAAI,GAAI,YACN,GAAO,WAAW,EAAQ,EAAI,UAAU,EAEnC,GAAO,MAAM,EAAQ,CAAG,CAChC,OAAQ,EAAP,CAEA,GADA,EAAE,SAAW;AAAA,2DACT,EAAI,OACN,MAAO,iCACHC,GAAO,EAAE,QAAU,GAAI,EAAI,EAC3B,SAEN,KAAM,EACP,CACH,CAMA,GAAO,QACP,GAAO,WAAa,SAAS,EAAK,CAChC,UAAM,GAAO,SAAU,CAAG,EAC1B,GAAe,GAAO,QAAQ,EACvB,EACT,EAEA,GAAO,YAAc,GAErB,GAAO,SAAW,GAMlB,GAAO,IAAM,YAAY,EAAM,CAC7B,KAAM,GAAO,GAAM,GAAI,GAAG,CAAI,EACxB,EAAa,GAAO,SAAS,YAAc,CAAE,UAAW,CAAE,EAAE,YAAa,IAC/E,GAAI,GAEJ,EAAK,QAAQ,CAAC,EAAS,CAuDrB,GArDI,EAAK,YACP,GAAgB,GAChB,EAAK,WAAW,QAAQ,CAAC,EAAQ,CAC/B,GAAI,CAAC,EAAI,KACP,KAAM,IAAI,OAAM,yBAAyB,EAE3C,GAAI,EAAI,SAAU,CAChB,KAAM,GAAe,EAAW,UAAY,EAAW,UAAU,EAAI,MAAQ,KAC7E,CAAI,CAEF,EAAW,UAAU,EAAI,MAAQ,YAAY,EAAM,CACjD,GAAI,GAAM,EAAI,SAAS,MAAM,KAAM,CAAI,EACvC,MAAI,KAAQ,IACV,GAAM,EAAa,MAAM,KAAM,CAAI,GAE9B,CACrB,EAEY,EAAW,UAAU,EAAI,MAAQ,EAAI,QAExC,CACD,GAAI,EAAI,UAAW,CACjB,GAAI,CAAC,EAAI,OAAU,EAAI,QAAU,SAAW,EAAI,QAAU,SACxD,KAAM,IAAI,OAAM,6CAA6C,EAE/D,CAAI,CAAW,EAAI,OACjB,EAAW,EAAI,OAAO,QAAQ,EAAI,SAAS,EAE3C,EAAW,EAAI,OAAS,CAAC,EAAI,SAAS,EAEpC,EAAI,OACN,CAAI,EAAI,QAAU,QAChB,CAAI,CAAW,WACb,EAAW,WAAW,KAAK,EAAI,KAAK,EAEpC,EAAW,WAAa,CAAC,EAAI,KAAK,EAE3B,EAAI,QAAU,UACvB,CAAI,EAAW,YACb,EAAW,YAAY,KAAK,EAAI,KAAK,EAErC,EAAW,YAAc,CAAC,EAAI,KAAK,GAI1C,CACD,CAAI,CAAI,aACN,GAAW,YAAY,EAAI,MAAQ,EAAI,YAEjD,CAAO,GAIC,EAAK,SAAU,CACjB,KAAM,GAAW,GAAO,SAAS,UAAY,GAAI,IACjD,SAAW,KAAQ,GAAK,SAAU,CAChC,KAAM,GAAe,EAAS,GAE9B,EAAS,GAAQ,IAAI,IAAS,CAC5B,GAAI,GAAM,EAAK,SAAS,GAAM,MAAM,EAAU,CAAI,EAClD,MAAI,KAAQ,IACV,GAAM,EAAa,MAAM,EAAU,CAAI,GAElC,CACjB,CACO,CACD,EAAK,SAAW,CACjB,CACD,GAAI,EAAK,UAAW,CAClB,KAAM,GAAY,GAAO,SAAS,WAAa,GAAI,IACnD,SAAW,KAAQ,GAAK,UAAW,CACjC,KAAM,GAAgB,EAAU,GAEhC,EAAU,GAAQ,IAAI,IAAS,CAC7B,GAAI,GAAM,EAAK,UAAU,GAAM,MAAM,EAAW,CAAI,EACpD,MAAI,KAAQ,IACV,GAAM,EAAc,MAAM,EAAW,CAAI,GAEpC,CACjB,CACO,CACD,EAAK,UAAY,CAClB,CAGD,GAAI,EAAK,WAAY,CACnB,KAAM,GAAa,GAAO,SAAS,WACnC,EAAK,WAAa,SAAS,EAAO,CAChC,EAAK,WAAW,KAAK,KAAM,CAAK,EAC5B,GACF,EAAW,KAAK,KAAM,CAAK,CAErC,CACK,CAED,CAAI,EACF,GAAK,WAAa,GAGpB,GAAO,WAAW,CAAI,CAC1B,CAAG,CACH,EAMA,GAAO,WAAa,SAAS,EAAQ,EAAU,CAC7C,SAAW,KAAS,GAElB,OADA,EAAS,KAAK,GAAQ,CAAK,EACnB,EAAM,UACP,QAAS,CACZ,SAAW,KAAQ,GAAM,OACvB,GAAO,WAAW,EAAK,OAAQ,CAAQ,EAEzC,SAAW,KAAO,GAAM,KACtB,SAAW,KAAQ,GACjB,GAAO,WAAW,EAAK,OAAQ,CAAQ,EAG3C,KACD,KACI,OAAQ,CACX,GAAO,WAAW,EAAM,MAAO,CAAQ,EACvC,KACD,SAEC,CAAI,EAAO,SAAS,YAAc,GAAO,SAAS,WAAW,aAAe,GAAO,SAAS,WAAW,YAAY,EAAM,MACvH,GAAO,SAAS,WAAW,YAAY,EAAM,MAAM,QAAQ,SAAS,EAAa,CAC/E,GAAO,WAAW,EAAM,GAAc,CAAQ,CAC1D,CAAW,EACQ,EAAM,QACf,GAAO,WAAW,EAAM,OAAQ,CAAQ,EAKlD,EAKA,GAAO,YAAc,SAAS,EAAK,EAAK,CAEtC,GAAI,MAAO,IAAQ,aAAe,IAAQ,KACxC,KAAM,IAAI,OAAM,4DAA4D,EAE9E,GAAI,MAAO,IAAQ,SACjB,KAAM,IAAI,OAAM,oDACZ,OAAO,UAAU,SAAS,KAAK,CAAG,EAAI,mBAAmB,EAG/D,EAAM,GAAM,GAAI,GAAO,SAAU,GAAO,EAAE,EAC1C,GAAyB,CAAG,EAE5B,GAAI,CACF,KAAM,GAAS,GAAM,UAAU,EAAK,CAAG,EACvC,MAAI,GAAI,YACN,GAAO,WAAW,EAAQ,EAAI,UAAU,EAEnC,GAAO,YAAY,EAAQ,CAAG,CACtC,OAAQ,EAAP,CAEA,GADA,EAAE,SAAW;AAAA,2DACT,EAAI,OACN,MAAO,iCACHA,GAAO,EAAE,QAAU,GAAI,EAAI,EAC3B,SAEN,KAAM,EACP,CACH,EAKA,GAAO,OAAS,GAChB,GAAO,OAAS,GAAO,MACvB,GAAO,SAAW,GAClB,GAAO,aAAe,GACtB,GAAO,MAAQ,GACf,GAAO,MAAQ,GAAM,IACrB,GAAO,UAAY,GACnB,GAAO,QAAU,GACjB,GAAO,MAAQ,GAQA,GAAO,MACR,GAAM,IC/nFW,aAAEvwC,SAAQiQ,UAAS1W,aAAYszC,aAAoB,CACjF,MAAOx5C,GAAC,GAAD,CAAM,QAAS,CAAC4c,GAAW5c,MACjC,iBAAG,MAAM,oBAAoB,KAAO,iBAAgB2M,EAAO1hB,UAA3D,SAAuE0hB,EAAO1hB,QAA9E,EACA0D,OAAG,MAAM,oBAAoB,KAAO,iBAAgBge,EAAOwwC,QAA3D,SAAqExwC,EAAOwwC,MAF3C,GAA3B,EAIN,mBAAK,MAAM,cACTxwC,WAAO5G,KAAK5P,IAAIkQ,GAAO1X,EAAC,GAAD,CAAO,MAAO0X,EAAK,QAASmzC,EAAY,IAAMA,EAAUnzC,CAAD,EAAQjX,OAAW,OAAQ8W,iBAAYK,SAASF,EAArB,CAAzG,GADF,EAGA1X,SAAK,MAAM,oBAAoB,wBAAyB,CAAEyuD,OAAQC,GAAO1wC,EAAOtS,OAAR,CAAhB,EAPlD,GAAP,CASA,CCZD,KAAMijD,IAAa,SAQW,aAAEjzC,UAASkzC,eAActiB,QAAOuiB,cAAqB,C9NjBnF,Q8NkBO,MAAElzD,UAAW+uB,GAAnB,EAEM,CAAC1f,EAAQ+hB,GAAazV,GAAeq3C,EAAD,EACpC,CAACv3C,EAAMyzC,GAAaiE,GAA1B,EAEMC,EAAqBv3C,GAAQ,IAAM,CACxC,KAAMvB,GAAmB,eAAIwB,MAAM,GAArB,EAA0BjQ,IAAIpN,CAAKA,IAAE8R,OAAOyiB,YAA5C,GAA2Dpf,OAAOnV,CAAKA,IAAEqO,OAAS,CAAlF,EACd,MAAIwN,GAAMxN,SAAW,GAAK2O,EAAK3O,SAAW,EAAUiT,EAC7CA,iBAASnM,OAAOyO,CAAU,GAC5B,IAAC5G,EAAK8V,MAAMxV,GAAOsG,EAAO5G,KAAKQ,SAASF,CAArB,CAAlB,EACG,SAEFhM,QAAW,GAAEsS,EAAOwwC,SAASxwC,EAAO1hB,WAAW0hB,EAAO5G,KAAKnO,KAAK,GAAjB,KAAyB+U,EAAOtS,QAAQijB,YAAf,IACvE1Y,SAAMiX,MAAM9yB,CAAK,EACnBA,EAAEgR,WAAW,GAAb,EACIhR,EAAEqO,SAAW,GAAK,CAACiD,EAAQkM,SAASxd,EAAEqQ,MAAM,CAAR,CAAjB,EAEpBiB,EAAQkM,SAASxd,CAAjB,CAJD,GAON,GAACshB,EAAS1Q,EAAQoM,CAAlB,CAf+B,EAiB5B,CAACS,EAAMm3C,GAAWt9C,EAASk9C,IAAiB,MAAlB,EAE1BK,EAAmBz3C,GAAQ,IACzBu3C,iBAAoBl3C,KAAK,CAAC9e,EAAGF,IAAMgf,EAAOhf,EAAEgjB,MAAQ9iB,EAAE8iB,MAAQ9iB,EAAE8iB,MAAQhjB,EAAEgjB,OAC/E,CAACkzC,EAAoBl3C,CAArB,CAF6B,EAI1B,CAACq3C,EAAaC,GAAkBz9C,EAAS,EAAD,EAExC09C,EAAoB53C,GAAQ,IAC7B,CAAC03C,GAAgB5iB,WAAS,IAAM,EAAU2iB,EACvCA,iBAAkBxkD,MAAM,EAAG6hC,GAChC,CAAC2iB,EAAkBC,EAAa5iB,EAAOz0B,EAHT,EAK3Bw3C,EAAiBJ,qBAAkBxmD,SAAlBwmD,OAA4B,wBAAyBxmD,gBAAU,GAE/E,aACN,mBAAK,MAAM,aACTomD,YACD7uD,EAAC,GAAD,CAAW,MAAM,6BAA6B,KAAK,aAAa,YAAarE,EAAO,kBAAD,EAClF,MAAOqP,EAAQ,SAAU9Q,GAAK6yB,EAAU7yB,EAAG,EAAJ,EAHzC,EAIC8F,EAAC,GAAD,CAAK,KAAM6X,EAAO,YAAc,WAAY,MAAOA,EAAO,eAAiB,eAAgB,QAAS,IAAMm3C,EAAQ,CAACn3C,CAAF,EAJlH,KAMCT,EAAK3O,OAAS,GAAKzI,SAAK,MAAM,cAAX,SAClBoX,EAAK5P,IAAIkQ,GAAO1X,EAAC,GAAD,CAAO,MAAO0X,EAAK,QAAS,IAAMmzC,EAAUnzC,CAAD,EAA3D,GADkB,EAGpBrG,SAAK,MAAM,cACT+9C,cAAsB3uD,OAAYT,MAClC,mBAAM,MAAM,OAAQrE,WAAO,SAAD,EAA1B,CADkC,GAE7ByzD,EAAkB3mD,SAAW,EAAIzI,MACtC,mBAAM,MAAM,OAAQrE,WAAO,sBAAD,EAA1B,EADsC,EAEjCqE,eACJovD,EAAkB5nD,IAAIwW,GACtBhe,EAAC,GAAD,CAAgB,SAAgB,WAAYoX,EAAM,YADlD,EADI,GAILi4C,EAAgB,GAChBrvD,EAAC,GAAD,CAAK,MAAOrE,EAAO,sBAAwB,GAAE0zD,GAA3B,EAA6C,QAAS,IAAMF,EAAe,EAAD,EAV9F,GAVM,GAAP,CAwBA,CC/D6B,aAAE1vD,KAAInD,WAAkB,C/NhBtD,Q+NiBO,MAAEX,UAAW+uB,GAAnB,EAEM,CAAC4kC,EAAKC,GAAU79C,EAAc,WAAN,EAExB,CAAEpW,MAAOogB,GAAYm8B,GAAS2X,GAAiB,EAAlB,EAE7BT,EAAqBv3C,GAAQ,IAClCkE,iBAASnM,OAAO9W,GAAKA,EAAE6D,UAAYmD,GAAMhH,EAAE+1D,QAAU/uD,GACtD,CAACA,EAAIic,CAAL,CAFkC,EAI5B+zC,EAAcnzD,GAAWozD,GAAepzD,EAAQmD,EAAT,EAEtC,aACN,kBAAK,MAAM,iBACV,kBAAKnD,6BAASsT,OAATtT,OAAiBmD,EAAtB,EACAO,SAAK,MAAM,eAAX,SACE1D,EAAU+U,gBACVrR,EAAC,GAAD,CAAiB,MAAOrE,EAAO,mBAAD,EAAuB,MAAOg0D,GAAYrzD,CAAD,EAD7D,EAEV0D,EAAC,GAAD,CAAiB,MAAOrE,EAAO,yBAAD,EAA6B,MAAOW,EAAQszD,eAAgB,KAAMtzD,EAAQmD,KAAOnD,EAAQszD,eAAkB,iBAAgBtzD,EAAQszD,iBAAmBnvD,OAF1K,EAGVT,EAAC,GAAD,CAAiB,MAAOrE,EAAO,uBAAD,EAA2B,MAAOW,EAAQuzD,aAH9D,EAIV7vD,EAAC,GAAD,CAAiB,MAAOrE,EAAO,2BAAD,EAA+B,MAAOW,EAAQwzD,iBAJlE,EAKV9vD,EAAC,GAAD,CAAiB,MAAOrE,EAAO,2BAAD,EAA+B,MAAOW,EAAQyzD,kBALlE,EAMV/vD,EAAC,GAAD,CAAiB,MAAOrE,EAAO,+BAAD,EAAmC,MAAOW,EAAQ0zD,sBANtE,KAOLjB,qBAAoBtmD,SAApBsmD,OAA8B,EAAI,GAAI/uD,sDAErCA,gHAVR,EAcAqR,SAAK,MAAM,eACV,oBAAM,MAAOi+C,IAAQ,YAAc,WAAa,GAAI,QAAS,IAAMC,EAAO,WAAD,EAAgB5zD,WAAO,4BAAD,EAA/F,EACAqE,UAAM,MAAOsvD,IAAQ,aAAe,WAAa,GAAI,QAAS,IAAMC,EAAO,YAAD,EAAiB5zD,WAAO,qBAAD,EAFlG,EAGE8zD,GAAep+C,OAAG,KAAMo+C,EAAa,OAAO,SAA7B,UACd9zD,EAAO,kBAAD,EACN+E,GAAQ25C,aAFM,EAHjB,KAQAhpC,SAAK,MAAM,cAAX,UACEi+C,IAAQ,aAAetvD,EAAC,GAAD,CAAe,QAAS+uD,EAAoB,aAAa,KAAzD,GACvBO,IAAQ,cAAgBtvD,EAAC,GAAD,CAAQ,KAAO,WAAUP,KAFnD,GAxBD,KADD,CA+BA,CAEM,YAAqBnD,EAAsB,CAC1C,UAAI2zD,MAAK3zD,EAAQ4zD,YAAjB,EAA+BC,mBAAmB1vD,OAAW,CAAEkgB,IAAK,UAAWyvC,MAAO,QAASC,KAAM,UAArG,CACP,CCxD4B,aAAE/zD,UAAS4U,QAAe,CAChD,MAAEvV,UAAW+uB,GAAnB,EAEO,cAAG,MAAM,gBAAgB,KAAMxZ,EACrC,oBAAM,MAAM,aAAZ,SAA0B5U,EAAQmD,GAD5B,EAENO,EAAC,GAAD,CAAiB,MAAOrE,EAAO,mBAAD,EAAuB,MAAOg0D,GAAYrzD,CAAD,EAAW,QAAO,GAFnF,EAGN0D,EAAC,GAAD,CAAiB,MAAOrE,EAAO,uBAAD,EAA2B,MAAOW,EAAQuzD,aAAc,SAAQ,GAHxF,EAIN7vD,EAAC,GAAD,CAAiB,MAAOrE,EAAO,sBAAD,EAA0B,MAAOW,EAAQyzD,kBAAmB,SAAQ,GAJ5F,GAAP,CAMA,CCTD,KAAMO,IAAoB,2BACpB3B,GAAa,SAOS,aAAEtiD,WAAU6E,OAAM29C,cAAqB,CAC5D,MAAElzD,UAAW+uB,GAAnB,EAEM,CAAC6lC,EAAWC,GAAgB5mC,GAAgB0mC,GAAmB,GAAMp2D,GAAKA,IAAM,OAAQrB,CAAM,KAAEA,GAArD,EAC3C,CAACmS,EAAQ+hB,GAAazV,GAAeq3C,EAAD,EAEpC8B,EAAmBj5C,GAAQ,IAAMnL,iBAAUkD,OAAOrV,CAAK,EACxDA,EAAEsF,OAAS,YAAc,CAAC+wD,EAAkB,GACzCr2D,EAAEuF,GAAGmY,SAAS5M,UAAU,EAAxB,GACJ,CAACqB,EAAUkkD,EAAWvlD,CAAtB,CAH4B,EAKzB,aACN,mBAAK,MAAM,aACT6jD,YACD7uD,EAAC,GAAD,CAAW,MAAM,6BAA6B,YAAarE,EAAO,iBAAD,EAChE,MAAOqP,EAAQ,SAAU+hB,EAH3B,EAIC/sB,EAAC,GAAD,CAAU,MAAM,oBAAoB,MAAOuwD,EAAW,SAAUC,EAJjE,KAMAxwD,SAAK,MAAM,eACTywD,aAAqBhwD,OACnBT,UAAM,MAAM,OAAQrE,WAAO,SAAD,CAA1B,GACA80D,EAAiBhoD,SAAW,EAC3BzI,UAAM,MAAM,OAAQrE,WAAO,qBAAD,EAD3B,EAEC80D,EAAiBjpD,IAAItN,GAAK8F,EAAC,GAAD,CAAc,QAAS9F,EAAG,KAAMgX,iBAAOhX,EAAEuF,GAAL,CAA9D,GAZC,GAAP,CAeA,CCjC+B,aAAEvE,QAAOI,QAAO4V,OAAMw/C,UAAS3J,YAAmB,CAC1E,gBAAK,MAAQ,mBAAkBA,EAAW,yBAA2B,KAC3E,oBAAM,MAAO2J,EAAU,wBAA0BjwD,OAAjD,UAA6DvF,EAA7D,QACA8E,UAAM,MAAM,yBAA0B1E,WAFhC,EAGL4V,GAAQlR,OAAG,KAAMkR,EAAM,MAAM,wBAArB,SAA8CxQ,GAAQ25C,cAHzD,GAAP,CAKA,CCA+B,aAAE/+C,QAAOq1D,UAASC,SAAQngD,WAAUogD,SAAgB,CAC7E,MAAEl1D,UAAW+uB,GAAnB,EAEMre,EAAWmL,GAAQ,IACpBm5C,GACGlqD,GAAO4F,SACZ7E,IAAItN,GAAKA,EAAEuF,EADN,EAELq+B,UACA,CAAC6yB,CAAD,CALqB,EAOxB,MAAOt/C,GAAC,GAAD,CAAS,MAAQ,mBAAkBoT,GAAMnC,WAAiB,SAAO,aAAe,KAAM,KAAK,MAAM,MAAOhnB,UAASK,EAAO,aAAD,EAAiB,QAASA,EAAO,gBAAD,EAC5Ji1D,aAAU5wD,EAAC,GAAD,CAAK,MAAOrE,EAAO,aAAD,EAAiB,QAASk1D,EAAO,OAAQ,CAACv1D,EADjE,EAEL+Q,EAAS7E,IAAI,CAACtN,EACd8F,EAAC,GAAD,CAAK,MAAO9F,EAAG,OAAQA,IAAMoB,EAAO,QAAS,IAAMmV,EAASvW,CAAD,CAA3D,EADA,CAFK,EAAP,CAKA,CCtBM,YAAmB,GAAW,CAC9B,MAAEyB,UAAW+uB,GAAnB,EACS/uB,KAAO,iBAAD,CAAP,EAEF,MAAEL,MAAOogB,EAAS1I,SAAU6kC,GAAS2X,GAAiB,EAAlB,EAEnC,iBACLx8C,aAAShT,EAAC,GAAD,CAAY,QAAZ,EACVA,SAAK,MAAM,sBAAX,SACCA,EAAC,GAAD,CAAe,UAAkB,aAAa,OAAO,MAAO,IAAK,WAChEA,EAAC,GAAD,CAAS,KAAK,aAAa,KAAK,aAAa,MAAOrE,EAAO,cAAD,EAA1D,EADD,CAHK,GAONqE,EAAC,GAPK,KAAP,CASA,CCTM,KAAM8wD,IAAY,QAKlB,YAAmB,GAAW,CrOnBrC,SqOoBO,MAAEn1D,UAAW+uB,GAAnB,EACM,CAAEpuB,UAASM,gBAAesuB,uBAAwBoD,GAAxD,EACM,CAAExI,WAAU2C,UAAS9Z,OAAMia,gBAAeC,cAAeiF,GAA/D,EACM,CAAC9a,EAAO+9C,GAAYr/C,EAAgC,IAAxB,EAC5B,CAACs/C,EAAeC,GAAc9G,GAApC,EACA,GAAI6G,EACWxjD,iBAAW,iDAAgDwjD,EAAcxjD,UAChFxN,mBAAMA,EAAC,GAAD,CAAY,MAAOgxD,EAAe,UAAWC,EAA7C,EAAb,EAGKznC,QAAMgiC,GAAaD,IAAD,EACpB,IAAC/hC,EACG,0BAAMxpB,EAAC,GAAD,CAAY,MAAQ,0BAAyBurD,GAAgB,KAA7D,EAAb,EAGK2F,QAAkB15C,GAAQ,IACxB/Q,GAAO4F,SACZkD,OAAOrV,GAAKk0B,GAAal0B,EAAEuF,GAAI+pB,EAAIvG,WAAYuG,EAAItG,UAA3B,CADnB,EAEL1b,IAAItN,GAAKA,EAAEuF,EAFN,EAGLq+B,UACA,CAACtU,EAAIvG,WAAYuG,EAAItG,UAArB,CAL4B,EAO/BooC,GAAS3vD,EAAO,kBAAmBA,EAAO6tB,EAAI0E,QAAW,WAAU1E,EAAI0E,WAAW1E,EAAI/pB,KAAO+pB,EAAI/pB,EAAxD,CAA1B,EAAwFyxD,CAA/F,EAEH9iC,GAAa9xB,EAASktB,EAAIvG,UAAd,GACN,+CAA4CuG,EAAIvG,YAAlD,EAEJmL,GAAa9xB,EAASmE,OAAW+oB,EAAItG,UAAzB,GACN,uDAAoDsG,EAAItG,YAA1D,EAGCxjB,OAAM+kB,GAAM2C,eAAeoC,EAAI/pB,EAAzB,EAA8B,CAAC+pB,EAAI/pB,EAAL,CAArC,EAEH,MAAC0xD,EAAeC,GAAoB95C,GAAe,QAAD,EAClD,CAAC+5C,EAAiBC,GAAsBh6C,GAAew5C,EAAD,EACtDS,EAAe1gD,GAAO,EAAD,EACrB2gD,EAASh6C,GAAQ,IAAMiN,GAAMyB,UAAUsD,EAAI/pB,EAApB,EAAyB,CAAC+pB,EAAI/pB,EAAL,CAAhC,EAEhBgyD,EAAa,IAAM,CACpBD,IAAW/wD,QACdgJ,YAAOkZ,MAAMF,YAAUC,UAAU8uC,CAApB,EAA6B,IAC1C,EAGI,CAAEl2D,SAAUu8C,GAAS,SAAY,CACtC,GAAItsC,GACA4lD,MAAiBE,EACpBC,SAAmB7wD,MAAD,EACX6R,GAER,GAAI6+C,EACI,OAAMvzD,GAAWuzD,CAAD,UACbE,EAAiB,CACrB5tC,SAAU,KAAMiuC,IAAWL,CAAD,EAC5BM,OAAS,GAKTluC,GAJAA,GAAQnnB,SAAWmnB,GAAQnnB,UAAYA,GAC5BmnB,MAAQnnB,QAAS,EAAlB,EACJ,OAENmnB,GAAQjkB,MAAQikB,GAAQjkB,OAASgqB,EAAI/pB,GAAI,CACtCmyD,SAAanrD,GAAOoE,WAAWC,KAAKhS,IAAKA,GAAE2G,KAAOgkB,GAAQjkB,IAA7C,EACnB,CAAIoyD,GACHvmD,IAAO,GAAEX,GAASknD,GAAWvnD,GAAZ,KAAoBymD,MAAartC,GAAQhkB,IAArD,EACI,MAEV,CACD,GAAIkyD,GACIr/C,UAEJmR,GAAQH,cAAgB,CAACuuC,IAC5BC,IAAgB,EAAD,EACfC,GAAe,EAAD,GAEfl3D,GAAUsD,YAAYqrB,EAAI/pB,GAAI4xD,EAAiB/0D,CAA/C,EACAiP,EAAOkY,GAAQlY,aACLoD,EAAM,CACZ8Z,KAAQnsB,SAAWmsB,EAAQnsB,UAAYA,EAC5BmsB,WAAQnsB,QAAS,EAAlB,EACNgW,GAER/G,EAAOoD,EAAKpD,IACZ,CACK,MAAC9B,GAAOyY,IAAe,KAAM7S,SAAQC,IAAI,CAC9Cw1C,GAASxoD,EAASktB,EAAI/pB,EAAd,EACRuyD,GAAe11D,CAAD,CAFgC,CAAZ,EAInC,MAAIiP,IACHgmD,GAAazgD,QAAU,GACvBrH,GAAMkZ,MAAMF,YAAUC,UAAUnX,CAApB,EAA2B,EAAvC,GAESxO,gBAAaysB,EAAI/pB,EAA3B,EACO,CAAEgK,SAAOyY,eA/CS,EAgDvB,CAACsH,EAAI/pB,GAAInD,EAAS+0D,EAAiBF,EAAe1oC,EAAQ7Y,KAAMjB,iBAAMlP,EAAtE,CAhDuB,EAkDpBgK,EAAQnO,iBAAOmO,MACfyY,EAAc5mB,iBAAO4mB,YAE3Bw7B,GAASj0C,EAAOA,CAAS,GAKpBkF,GAJC4iD,EAAazgD,SACjBsgD,GAAiB3wD,OAAW,EAAZ,EAChB6wD,EAAmB7wD,OAAW,EAAZ,GAEfkO,GAAQlF,GAASyY,EAAa,CAC3B3W,SAAOy2C,GAAUv4C,EAAOyY,CAAR,EACXsH,IAAI/pB,GAAIkP,EAAKlP,GAAI,CAAEA,GAAIkP,EAAKlP,GAAI8L,QAAjC,CACV,CACDgmD,EAAazgD,QAAU,GACvB2T,GAAMsC,UAAUyC,EAAI/pB,GAAIgjB,YAAUuL,YAAYvkB,EAAM8B,IAA5B,CAAxB,EACAwlD,EAAS,IAAD,GACN,CAACvnC,EAAI/pB,GAAI2xD,EAAkBE,EAAoBpvC,EAAavT,iBAAMlP,EAAlE,CAZK,EAcFkjB,QAAQ,IAAM,CrOnIrB,MqOoIE9nB,GAAU0C,eAAeisB,EAAI/pB,GAAIgK,oBAAOwoD,eAAPxoD,OAAuB,EAAG,MAA3D,EACOkZ,iBAAMF,YAAUC,UAAUjZ,EAAM+Y,OAAO7H,QAAjC,GAA6C,GAA1D,EAEKu3C,EAAO,CAAC15D,EAAkB,CrOvIjC,OqOwIEA,EAAEyY,gBAAF,EACApW,GAAU4C,cAAc+rB,EAAI/pB,GAAIgK,qBAAOwoD,eAAPxoD,QAAuB,EAAG,MAA1D,EACAA,WAAOyoD,MAAP,EAEKC,EAAO,CAAC35D,EAAkB,CrO5IjC,OqO6IEA,EAAEyY,gBAAF,EACApW,GAAU6C,cAAc8rB,EAAI/pB,GAAIgK,qBAAOwoD,eAAPxoD,QAAuB,EAAG,MAA1D,EACAA,WAAO0oD,MAAP,EAGKC,EAAU,CAAC55D,EAAqB,CrOlJvC,UqOmJMA,EAAEwvD,SAAWxvD,EAAE2T,MAAQ,IAC1BtR,IAAU4C,cAAc+rB,EAAI/pB,GAAIgK,qBAAOwoD,eAAPxoD,QAAuB,EAAG,QAA1D,EACAA,WAAOyoD,QACG15D,EAAEwvD,SAAWxvD,EAAE2T,MAAQ,KACjCtR,IAAU6C,cAAc8rB,EAAI/pB,GAAIgK,qBAAOwoD,eAAPxoD,QAAuB,EAAG,QAA1D,EACAA,WAAO0oD,OACP,EAEIjmC,EAAY,CAAC1zB,EAAqB,CACnCA,EAAEwvD,SAAWxvD,EAAE2T,MAAQ,KAC1BkmD,GAAc,QAAD,EACb75D,EAAEmzB,eAAF,EACAnzB,EAAEyY,gBAAF,EACA,EAEFvR,GAAU,IACA6U,2BAAiB,QAAS69C,CAAnC,EACS79C,0BAAiB,UAAW2X,CAArC,EACO,IAAM,CACHzX,6BAAoB,QAAS29C,CAAtC,EACS39C,6BAAoB,UAAWyX,CAAxC,IAEC,CAACziB,EAAOyY,EAAavT,CAArB,CAPM,EASH,MAAC2jD,EAASC,GAAc7gD,EAAmB,CAAX,GACtChS,GAAU,IAAM,CACApD,IAAD,EAAUyW,KAAKqK,CAAe,GAC3Cm1C,EAAWn1C,EAAYxT,IAAI4f,EAAI/pB,EAApB,EAAwB+H,IAAIzP,CAAKA,MAAEqT,WAAW,YAAb,EAA6BrT,GAAE0S,MAAM,EAAR,EAAc1S,EAA5E,CAAD,EADX,EAGEwmD,MAAM/lD,CAAK,GAAEmU,QAAQqG,MAAMxa,CAAd,EAAkBu4D,EAASv4D,CAAD,EAHzC,CAIE,GAAC8D,EAASktB,EAAI/pB,EAAd,CALM,EAOH+yD,QAAe,CAAC/yD,EAAe,CAC1B7B,cAAW4rB,EAAI/pB,GAAIA,CAA7B,EACA6xD,EAAmB7wD,OAAW,EAAZ,EAClByqB,EAAoB5uB,EAAS,EAAV,EACnB80D,EAAiB3xD,CAAD,GAGX7B,EAAa,KAAO6B,IAAe,CrO1L1C,aqO2LM,IACGyzB,SAAS,KAAME,IAAY92B,EAASktB,MAAIze,OAAJye,QAAYA,EAAI/pB,GAAIA,CAA9B,EAC1BiK,GAAOD,iBAAOG,IAAI,GAAIC,QAAK,CAAC,YAAa,MAAd,CAAT,GACpBqpB,8BAAQG,YAARH,eAAmBxpB,QAASjJ,QAAaiJ,KAASjJ,QACrDyyB,IAAOG,UAAU3pB,KAAOA,GACpBwpB,QAAOG,UAAUC,eAAjBJ,eAA+BxpB,QAASjJ,QACpC4yB,cAAUC,aAAa5pB,KAAOA,KAGhCwpB,SAEG,wBAAqBzzB,QAASnD,GAAhC,EACR80D,EAAiB3wD,OAAW,EAAZ,CAChB,GAGIgyD,EAAgB,CAACn2D,EAAuB,CAC7Cg1D,EAAmB7wD,OAAW,EAAZ,EAClB7D,EAAcN,CAAD,EACTmsB,EAAQ7Y,OAASmW,GAAcnW,MAAQ6Y,EAAQnsB,UAAYA,GAChD,GAAEA,UAAH,CACb,EAGI,CAACo2D,EAAUC,GAAejhD,EAA6BjR,MAArB,EAClC,CAACmyD,EAAYC,GAAiBnhD,EAAS,EAAD,EACtC,CAACohD,EAAiBC,GAAoBC,GAAiB,CAAE1hD,SAAU,IAAb,EACtD2hD,GAAQ,IAAM,CACnB,GAAIL,EAAY,CACfC,EAAc,EAAD,EACb,MACA,CACD,GAAI1B,EACHwB,EAAa,GAAEznD,SAASgoD,UAAU1pC,EAAInf,gBAAgB/N,YAAkB60D,GAA7D,EACX0B,EAAc,EAAD,EACD,YACFppD,GAASyY,EAAa,CAC1B+/B,QAASD,GAAUv4C,EAAOyY,CAAR,EACpBtU,GAAUq0C,EAAQx4C,EAAM+Y,OAAO7H,QAAtB,GACZg4C,GAAa,GAAEznD,SAASgoD,UAAU1pC,EAAInf,gBAAgB/N,GAA3C,EACXu2D,EAAc,EAAD,GAEbM,GAAa3pC,EAAI/pB,GAAInD,EAAS2lD,EAAQ4P,EAA1B,EACV9+C,KAAK,CAAC,CAAEtT,MAAIgJ,UAAQkb,cAAYC,WAAW,CAC3C/oB,GAAUqD,cAAcsrB,EAAI/pB,GAAIA,GAAInD,EAASmM,GAAQkb,GAAYC,EAAjE,EACA,KAAMvZ,IAAO,GAAEa,SAASgoD,UAAU1pC,EAAInf,QAAQymD,MAAarxD,KAC3DkzD,EAAYtoD,EAAD,EACXwoD,EAAc,EAAD,EALf,EAOEtU,MAAM/lD,CAAK,IACPA,aAAa+U,QAChBwjD,EAASv4D,EAAD,CACR,CAVH,CAaD,GAEI46D,EAAe,IAAM,CAChBnQ,oBAAUC,UAAUwP,UAAY,EAA1C,EACgB,KAEjBhzD,GAAU,IAAM,CACX,CAACozD,EACJH,GAAYlyD,MAAD,EACXoyD,EAAc,EAAD,EACb,EACC,CAACC,CAAD,CALM,EAOT,KAAM,CAACO,EAAatB,IAAkBrgD,EAAS7R,OAAOyzD,WAAa,GAArB,EACxC,CAAClS,GAAQmS,IAAW7hD,EAAS,CAAD,EAC5B,CAAC2vC,GAAYmS,IAAe9hD,EAAS,CAAD,EACpC,CAAC4vC,GAAUmS,IAAa/hD,EAAS,CAAD,EAEhCgiD,GAAa,IAAM,CACdt1D,cAAWorB,EAAI/pB,GAAI,MAA7B,EACA8zD,GAAQnS,GAAS,CAAV,GAEFuS,GAAiB,IAAM,CAClBt1D,kBAAemrB,EAAI/pB,GAAI,MAAjC,EACA+zD,GAAYnS,GAAa,CAAd,GAENuS,GAAe,IAAM,CAC1B/4D,GAAUY,eAAe,QAAzB,EACAs2D,GAAe,EAAD,EACd0B,GAAUnS,GAAW,CAAZ,GAEJuS,GAAe,IAAM,CAC1B,CAAIR,CACO90D,cAAWirB,EAAI/pB,GAAI,MAA7B,EAEUnB,cAAWkrB,EAAI/pB,GAAI,MAA7B,EAEDsyD,GAAe,CAACsB,CAAF,EACdE,GAAQ,CAAD,EACPC,GAAY,CAAD,EACXC,GAAU,CAAD,GAGJ,CAACzF,GAAYzM,IAAeyR,GAAlC,EAEM,CAACnB,GAAcC,IAAmBpgD,EAAS,EAAD,EAC1CoiD,GAAatW,GAAW5lC,SAAS4R,EAAI/pB,EAAxB,GAA+B,CAAE+pB,GAAI/pB,KAAO,+BAAiC2uB,GAAa9xB,EAAS,MAAV,GACxGu1D,IAAgB,CAACiC,IAAYhC,GAAgB,EAAD,EAC5CiC,OAAe,EACfD,IAA4B,QAC5BT,GAA6B,QAE3BW,SAAgB,IAAM,CAC3B,CAAIX,CACO50D,eAAY+qB,EAAI/pB,GAAI,MAA9B,EAEUjB,eAAYgrB,EAAI/pB,GAAI,MAA9B,EAEDqyD,GAAgB,CAACD,EAAF,EACX,CAACA,IAAgBwB,GACpBtB,GAAe,EAAD,CACd,EAGI,CAACkC,GAAcC,IAAmBxiD,EAAS+S,MAAM0B,wBAAN1B,OAA+B5kB,OAAOyzD,WAAa,GAApD,EAC1Ca,GAAqBxhD,GAAY,IAAM,CAC5C,CAAIshD,EACOp1D,eAAY2qB,EAAI/pB,GAAIqmB,EAASrd,OAAQggB,EAAQJ,MAAM5f,OAAQ,MAArE,EAEU7J,eAAY4qB,EAAI/pB,GAAIqmB,EAASrd,OAAQggB,EAAQJ,MAAM5f,OAAQ,MAArE,EAEKue,uBAAoB,CAACitC,EAA3B,EACAC,GAAgB,CAACD,EAAF,GACb,CAACA,EAAD,CARmC,EAUhC,CAACG,GAAiBC,IAAsB3iD,EAAS,EAAD,EAChD,CAAC4iD,GAAiBC,IAAsB7iD,EAAS,EAAD,EAChD,CAAC8iD,GAAYnC,GAAiB3gD,EAA6BjR,MAArB,EACtC,CAACg0D,EAAcC,GAAmBhjD,EAAmDjR,MAA3C,EAEzC,aACN,oBAAM,MAAQ,YAAWoxD,GAAe,eAAiB,KAAKoC,GAAe,eAAiB,KAA9F,UACE,CAACzqC,EAAI0E,SAAWluB,EAAC,GAAD,CAAI,GAAG,sBAAsB,KAAK,OAAlC,EACjBqR,SAAK,MAAM,8BAAX,UACCrR,EAAC,GAAD,CAAK,KAAK,SAAS,MAAOrE,EAAO,QAAD,EAAY,QAASi4D,GADtD,EAEC5zD,EAAC,GAAD,CAAS,KAAK,UAAU,MAAOrE,EAAO,SAAD,EAAa,SAAU,GAA5D,SACCqE,EAAC,GAAD,CAAY,kBAAmBrE,EAAO,QAAD,EAAY,UAAWA,EAAO,YAAD,EAAgB,OAAQ22D,EAAS,SAAUE,EAA7G,EAHF,EAKCxyD,EAAC,GAAD,CAAiB,MAAO1D,EAAS,SAAUm2D,EAAe,QAASvB,EALpE,EAMC7/C,EAAC,GAAD,CAAS,KAAK,mBAAmB,QAAS1V,EAAO,MAAD,EAAhD,UACCqE,EAAC,GAAD,CAAK,KAAK,UAAU,MAAOrE,EAAO,eAAD,EAAmB,QAASgnB,CAA7D,GACC6uC,IAAW/wD,QAAaT,EAAC,GAAD,CAAK,KAAK,UAAU,MAAOrE,EAAO,gBAAD,EAAoB,QAAS81D,EAFxF,EAGCzxD,EAAC,GAAD,CAAK,KAAK,aAAa,MAAOrE,EAAO,MAAD,EAAU,QAASu2D,EAHxD,EAIClyD,EAAC,GAAD,CAAK,KAAK,cAAc,MAAOrE,EAAO,MAAD,EAAU,QAASw2D,EAJzD,EAKCnyD,EAAC,GAAD,CAAK,KAAK,OAAO,MAAOrE,EAAO,cAAD,EAAkB,QAAS,IAAM02D,EAAc,MAAD,EAL7E,GAND,KAcCr/C,GAAShT,EAAC,GAAD,CAAY,QAAc,UAAW,IAAM+wD,EAAS,IAAD,EAhB9D,EAiBC/wD,EAAC,GAAD,CAAWyJ,QAAOnN,UAAS4lB,cAAc,QAAS6uC,EAjBnD,EAkBC/wD,EAAC,GAAD,CAAQ,OAAQ,CAACwpB,EAAI0E,QAlBtB,KAoBA7c,SAAK,MAAM,8BAA8B,MAAQ,cAAa,EAAI0iD,GAAe,QAChF,mBAAK,MAAQ,8BAA6BD,GAAa,SAAW,uBAAwB,aAAYn4D,EAAOk2D,GAAe,eAAiB,cAAjC,EAAkD,QAASmC,GAAvK,SACEnC,GAAenxD,GAAQ+6C,SAAW/6C,GAAQ+5C,KAD5C,EAGAz6C,SAAK,MAAO,oDAAiErE,eAAO,OAAD,EAAW,QAASs3D,GAAvG,SACEvyD,GAAQwQ,KADV,EAGAlR,SAAK,MAAQ,+BAA8BqzD,EAAc,SAAW,uBAAoC13D,eAAO,UAAD,EAAc,QAASg4D,GAArI,SACEjzD,GAAQg5C,SADV,EAGA15C,SAAK,MAAQ,2BAA0BqzD,EAAc,SAAW,KAAKrF,GAAa,UAAY,uBAAwB,aAAYryD,EAAOqyD,GAAa,SAAW,MAAzB,EAAkC,QAAS0F,GAAnL,SACE1F,GAAattD,GAAQs4C,MAAQt4C,GAAQ24C,OADvC,EAGAr5C,SAAK,MAAO,mDAAoD,aAAYrE,EAAO03D,EAAc,cAAgB,aAA/B,EAA+C,QAASQ,GAA1I,SACER,EAAc3yD,GAAQy4C,cAAgBz4C,GAAQonB,KAdjD,KAiBA9nB,SAAK,MAAQ,gBAAe6xD,GAAe,SAAW,KAAtD,SACC7xD,EAAC,GAAD,CAAmByJ,QAAOnN,UAASmD,GAAI+pB,EAAI/pB,GAAK,MAAOoyD,GAAc,QAASd,EAA9E,EADD,EAGA/wD,SAAK,MAAQ,eAAcqzD,EAAc,SAAW,KAApD,SACCrzD,EAAC,GAAD,CAAkByJ,QAAOyY,cAAak/B,UAAQC,cAAYC,YAAW,KAAM93B,MAAIhH,SAAJgH,QAAc,OAAQ,eAA0B,QAASunC,EAApI,EADD,EAGA1/C,SAAK,MAAQ,cAAauhD,EAAa,SAAW,KAAlD,UACC5yD,EAAC,GAAD,CAAW,MAAO0yD,EAAU,SAAQ,GADrC,EAEC1yD,EAAC,GAAD,CAAK,KAAM8yD,EAAkB,QAAU,SAAU,QAASM,EAAc,QAASz3D,EAAOm3D,EAAkB,SAAW,YAA9B,EAA6C,WAAW,KAAK,OAAQA,EAF7J,KAIA9yD,SAAK,MAAM,6BAA6B,MAAM,kBAC7C,kBAAK,MAAO,sDAAuD,aAAYrE,EAAOs4D,GAAe,eAAiB,cAAjC,EAAkD,QAASE,GAAhJ,SACEF,GAAevzD,GAAQw4C,aAAex4C,GAAQk6C,KADhD,EADD,EAKA56C,SAAK,MAAQ,gBAAei0D,GAAe,SAAW,KAAtD,SACCj0D,EAAC,GAAD,CAAmByJ,QAAOnN,UAASmD,GAAI+pB,EAAI/pB,GAAK,QAASsxD,EAAU,gBAAiB,IAAMwD,GAAmB,EAAD,EAAQ,SAAUG,EAAiB,SAAU,IAAML,GAAmB,EAAD,EAAjL,EADD,EAGCD,IAAmBp0D,EAAC,GAAD,CAAiB,QAAS,IAAMq0D,GAAmB,EAAD,EAAlD,EACnBC,IAAmBt0D,EAAC,GAAD,CAAiB,QAAS,IAAMu0D,GAAmB,EAAD,CAAlD,GACnB9qD,GAAS+qD,IAAcx0D,EAAC,GAAD,CAAc,GAAIwpB,EAAI/pB,GAAI,QAAc,OAAQ+0D,GAAY,QAAS,IAAMnC,EAAc5xD,MAAD,EAAxF,EACvBg0D,GAAgBz0D,EAAC,GAAD,CAAc,GAAIy0D,EAAaj1D,KAAO,KAAMi1D,EAAah1D,GAAI,QAAS,IAAMi1D,EAAgBj0D,MAAD,EA3DtG,GAAP,CA6DA,CCzXM,YAAoB,GAAW,CAC/B,MAAE9E,UAAW+uB,GAAnB,EACS/uB,YAAO,kBAAD,CAAP,EAED0V,UACN,mBAAK,MAAM,YAAX,SACCrR,EAAC,GAAD,CAAe,UAAWwpB,CAAO,GAACA,EAAI0E,QAAtC,CAFK,GAINluB,EAAC,GAJK,KAAP,CAMA,CChBD,GAAI,IAAgB,CAAC,QAAS,EAAE,EAEhC,YAAoB,EAAK,CACrB,MAAI,aAAe,KACf,EAAI,MAAQ,EAAI,OAAS,EAAI,IAAM,UAAY,CAC3C,KAAM,IAAI,OAAM,kBAAkB,CAC9C,EACe,YAAe,MACtB,GAAI,IAAM,EAAI,MAAQ,EAAI,OAAS,UAAY,CAC3C,KAAM,IAAI,OAAM,kBAAkB,CAC9C,GAII,OAAO,OAAO,CAAG,EAEjB,OAAO,oBAAoB,CAAG,EAAE,QAAQ,SAAU,EAAM,CACpD,GAAI,GAAO,EAAI,GAGf,CAAI,KAAO,IAAQ,UAAY,CAAC,OAAO,SAAS,CAAI,GAChD,GAAW,CAAI,CAE3B,CAAK,EAEM,CACX,CAEA,GAAc,QAAU,GACxB,GAAc,QAAQ,QAAU,GAEhC,GAAI,IAAe,GAAc,QAMjC,MAAM,EAAS,CAIb,YAAY,EAAM,CAEhB,CAAI,CAAK,OAAS,QAAW,GAAK,KAAO,IAEzC,KAAK,KAAO,EAAK,KACjB,KAAK,eAAiB,EACvB,CAED,aAAc,CACZ,KAAK,eAAiB,EACvB,CACH,CAMA,YAAoB,EAAO,CACzB,MAAO,GACJ,QAAQ,KAAM,OAAO,EACrB,QAAQ,KAAM,MAAM,EACpB,QAAQ,KAAM,MAAM,EACpB,QAAQ,KAAM,QAAQ,EACtB,QAAQ,KAAM,QAAQ,CAC3B,CAUA,YAAmB,KAAa,EAAS,CAEvC,KAAM,GAAS,OAAO,OAAO,IAAI,EAEjC,SAAW,KAAO,GAChB,EAAO,GAAO,EAAS,GAEzB,SAAQ,QAAQ,SAAS,EAAK,CAC5B,SAAW,KAAO,GAChB,EAAO,GAAO,EAAI,EAExB,CAAG,EACwB,CAC3B,CAcA,KAAM,IAAa,UAMb,GAAoB,CAAC,EAClB,CAAC,CAAC,EAAK,KAQV,GAAkB,CAAC,EAAM,CAAE,YAAa,CAC5C,GAAI,EAAK,SAAS,GAAG,EAAG,CACtB,KAAM,GAAS,EAAK,MAAM,GAAG,EAC7B,MAAO,CACL,GAAG,IAAS,EAAO,MAAO,IAC1B,GAAI,EAAO,IAAI,CAAC,EAAG,IAAM,GAAG,IAAI,IAAI,OAAO,EAAI,CAAC,GAAG,CACzD,EAAM,KAAK,GAAG,CACX,CACD,MAAO,GAAG,IAAS,GACrB,EAGA,MAAM,EAAa,CAOjB,YAAY,EAAW,EAAS,CAC9B,KAAK,OAAS,GACd,KAAK,YAAc,EAAQ,YAC3B,EAAU,KAAK,IAAI,CACpB,CAMD,QAAQ,EAAM,CACZ,KAAK,QAAU,GAAW,CAAI,CAC/B,CAMD,SAAS,EAAM,CACb,GAAI,CAAC,GAAkB,CAAI,EAAG,OAE9B,GAAI,GAAQ,EAAK,KACjB,CAAI,CAAK,YACP,EAAQ,YAAY,IAEpB,EAAQ,GAAgB,EAAO,CAAE,OAAQ,KAAK,WAAW,CAAE,EAE7D,KAAK,KAAK,CAAK,CAChB,CAMD,UAAU,EAAM,CACd,CAAK,GAAkB,CAAI,GAE3B,MAAK,QAAU,GAChB,CAKD,OAAQ,CACN,MAAO,MAAK,MACb,CAQD,KAAK,EAAW,CACd,KAAK,QAAU,gBAAgB,KAChC,CACH,CAOA,MAAM,EAAU,CACd,aAAc,CAEZ,KAAK,SAAW,CAAE,SAAU,CAAE,GAC9B,KAAK,MAAQ,CAAC,KAAK,QAAQ,CAC5B,IAEG,MAAM,CACR,MAAO,MAAK,MAAM,KAAK,MAAM,OAAS,EACvC,IAEG,OAAO,CAAE,MAAO,MAAK,QAAW,CAGpC,IAAI,EAAM,CACR,KAAK,IAAI,SAAS,KAAK,CAAI,CAC5B,CAGD,SAAS,EAAM,CAEb,KAAM,GAAO,CAAE,OAAM,SAAU,CAAE,GACjC,KAAK,IAAI,CAAI,EACb,KAAK,MAAM,KAAK,CAAI,CACrB,CAED,WAAY,CACV,GAAI,KAAK,MAAM,OAAS,EACtB,MAAO,MAAK,MAAM,KAIrB,CAED,eAAgB,CACd,KAAO,KAAK,UAAS,GAAG,CACzB,CAED,QAAS,CACP,MAAO,MAAK,UAAU,KAAK,SAAU,KAAM,CAAC,CAC7C,CAMD,KAAK,EAAS,CAEZ,MAAO,MAAK,YAAY,MAAM,EAAS,KAAK,QAAQ,CAGrD,OAMM,OAAM,EAAS,EAAM,CAC1B,MAAI,OAAO,IAAS,SAClB,EAAQ,QAAQ,CAAI,EACX,EAAK,UACd,GAAQ,SAAS,CAAI,EACrB,EAAK,SAAS,QAAQ,CAAC,EAAU,KAAK,MAAM,EAAS,CAAK,CAAC,EAC3D,EAAQ,UAAU,CAAI,GAEjB,CACR,OAKM,WAAU,EAAM,CACrB,CAAI,KAAO,IAAS,UAChB,EAAC,EAAK,UAEV,CAAI,EAAK,SAAS,MAAM,GAAM,MAAO,IAAO,QAAQ,EAGlD,EAAK,SAAW,CAAC,EAAK,SAAS,KAAK,EAAE,CAAC,EAEvC,EAAK,SAAS,QAAQ,CAAC,EAAU,CAC/B,GAAU,UAAU,CAAK,CACjC,CAAO,GAEJ,CACH,CAsBA,MAAM,UAAyB,GAAU,CAIvC,YAAY,EAAS,CACnB,QACA,KAAK,QAAU,CAChB,CAMD,WAAW,EAAM,EAAM,CACrB,CAAI,GAAS,IAEb,MAAK,SAAS,CAAI,EAClB,KAAK,QAAQ,CAAI,EACjB,KAAK,UAAS,EACf,CAKD,QAAQ,EAAM,CACZ,CAAI,GAAS,IAEb,KAAK,IAAI,CAAI,CACd,CAMD,eAAe,EAAS,EAAM,CAE5B,KAAM,GAAO,EAAQ,KACrB,EAAK,KAAO,EACZ,EAAK,YAAc,GACnB,KAAK,IAAI,CAAI,CACd,CAED,QAAS,CAEP,MAAO,CADU,GAAI,IAAa,KAAM,KAAK,OAAO,EACpC,OACjB,CAED,UAAW,CACT,MAAO,EACR,CACH,CAWA,YAAgB,EAAI,CAClB,MAAK,GACD,MAAO,IAAO,SAAiB,EAE5B,EAAG,OAHM,IAIlB,CAMA,YAAmB,EAAI,CACrB,MAAO,IAAO,MAAO,EAAI,GAAG,CAC9B,CAMA,YAA0B,EAAI,CAC5B,MAAO,IAAO,MAAO,EAAI,IAAI,CAC/B,CAMA,YAAkB,EAAI,CACpB,MAAO,IAAO,MAAO,EAAI,IAAI,CAC/B,CAMA,eAAmB,EAAM,CAEvB,MADe,GAAK,IAAI,CAAC,EAAM,GAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAEnD,CAMA,YAA8B,EAAM,CAClC,KAAM,GAAO,EAAK,EAAK,OAAS,GAEhC,MAAI,OAAO,IAAS,UAAY,EAAK,cAAgB,OACnD,GAAK,OAAO,EAAK,OAAS,EAAG,CAAC,EACvB,GAEA,EAEX,CAWA,eAAmB,EAAM,CAEvB,KAAM,GAAO,GAAqB,CAAI,EAItC,MAHe,IACV,GAAK,QAAU,GAAK,MACrB,EAAK,IAAI,CAAC,EAAM,GAAO,CAAC,CAAC,EAAE,KAAK,GAAG,EAAI,GAE7C,CAMA,YAA0B,EAAI,CAC5B,MAAQ,IAAI,QAAO,EAAG,SAAU,EAAG,GAAG,EAAG,KAAK,EAAE,EAAE,OAAS,CAC7D,CAOA,YAAoB,EAAI,EAAQ,CAC9B,KAAM,GAAQ,GAAM,EAAG,KAAK,CAAM,EAClC,MAAO,IAAS,EAAM,QAAU,CAClC,CASA,KAAM,IAAa,iDAanB,YAAgC,EAAS,CAAE,YAAY,CACrD,GAAI,GAAc,EAElB,MAAO,GAAQ,IAAI,CAAC,EAAU,CAC5B,GAAe,EACf,KAAM,GAAS,EACf,GAAI,GAAK,GAAO,CAAK,EACjB,EAAM,GAEV,KAAO,EAAG,OAAS,GAAG,CACpB,KAAM,GAAQ,GAAW,KAAK,CAAE,EAChC,GAAI,CAAC,EAAO,CACV,GAAO,EACP,KACD,CACD,GAAO,EAAG,UAAU,EAAG,EAAM,KAAK,EAClC,EAAK,EAAG,UAAU,EAAM,MAAQ,EAAM,GAAG,MAAM,EAC/C,CAAI,CAAM,GAAG,KAAO,MAAQ,EAAM,GAEhC,GAAO,KAAO,OAAO,OAAO,EAAM,EAAE,EAAI,CAAM,EAE9C,IAAO,EAAM,GACT,EAAM,KAAO,KACf,IAGL,CACD,MAAO,EACX,CAAG,EAAE,IAAI,GAAM,IAAI,IAAK,EAAE,KAAK,CAAQ,CACvC,CAMA,KAAM,IAAmB,OACnB,GAAW,eACX,GAAsB,gBACtB,GAAY,oBACZ,GAAc,yEACd,GAAmB,eACnB,GAAiB,+IAKjB,GAAU,CAAC,EAAO,KAAO,CAC7B,KAAM,GAAe,YACrB,MAAI,GAAK,QACP,GAAK,MAAQ,GACX,EACA,OACA,EAAK,OACL,MAAM,GAEH,GAAU,CACf,MAAO,OACP,MAAO,EACP,IAAK,IACL,UAAW,EAEX,WAAY,CAAC,EAAG,IAAS,CACvB,CAAI,CAAE,QAAU,GAAG,EAAK,YAAW,CACpC,CACF,EAAE,CAAI,CACT,EAGM,GAAmB,CACvB,MAAO,eAAgB,UAAW,CACpC,EACM,GAAmB,CACvB,MAAO,SACP,MAAO,IACP,IAAK,IACL,QAAS,MACT,SAAU,CAAC,EAAgB,CAC7B,EACM,GAAoB,CACxB,MAAO,SACP,MAAO,IACP,IAAK,IACL,QAAS,MACT,SAAU,CAAC,EAAgB,CAC7B,EACM,GAAqB,CACzB,MAAO,4IACT,EASM,GAAU,SAAS,EAAO,EAAK,EAAc,GAAI,CACrD,KAAM,GAAO,GACX,CACE,MAAO,UACP,QACA,MACA,SAAU,CAAE,CACb,EACD,CACJ,EACE,EAAK,SAAS,KAAK,CACjB,MAAO,SAGP,MAAO,mDACP,IAAK,2CACL,aAAc,GACd,UAAW,CACf,CAAG,EACD,KAAM,GAAe,GAEnB,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KAEA,iCACA,qBACA,mBACJ,EAEE,SAAK,SAAS,KACZ,CAgBE,MAAO,GACL,OACA,IACA,EACA,uBACA,MAAM,CACT,CACL,EACS,CACT,EACM,GAAsB,GAAQ,KAAM,GAAG,EACvC,GAAuB,GAAQ,OAAQ,MAAM,EAC7C,GAAoB,GAAQ,IAAK,GAAG,EACpC,GAAc,CAClB,MAAO,SACP,MAAO,GACP,UAAW,CACb,EACM,GAAgB,CACpB,MAAO,SACP,MAAO,GACP,UAAW,CACb,EACM,GAAqB,CACzB,MAAO,SACP,MAAO,GACP,UAAW,CACb,EACM,GAAc,CAOlB,MAAO,kBACP,SAAU,CAAC,CACT,MAAO,SACP,MAAO,KACP,IAAK,aACL,QAAS,KACT,SAAU,CACR,GACA,CACE,MAAO,KACP,IAAK,KACL,UAAW,EACX,SAAU,CAAC,EAAgB,CAC5B,CACF,CACL,CAAG,CACH,EACM,GAAa,CACjB,MAAO,QACP,MAAO,GACP,UAAW,CACb,EACM,GAAwB,CAC5B,MAAO,QACP,MAAO,GACP,UAAW,CACb,EACM,GAAe,CAEnB,MAAO,UAAY,GACnB,UAAW,CACb,EASM,GAAoB,SAAS,EAAM,CACvC,MAAO,QAAO,OAAO,EACnB,CAEE,WAAY,CAAC,EAAG,IAAS,CAAE,EAAK,KAAK,YAAc,EAAE,EAAK,EAE1D,SAAU,CAAC,EAAG,IAAS,CAAE,CAAI,CAAK,KAAK,cAAgB,EAAE,IAAI,EAAK,YAAa,CAAG,CACxF,CAAK,CACL,EAEA,GAAI,IAAqB,OAAO,OAAO,CACnC,UAAW,KACX,iBAAkB,GAClB,SAAU,GACV,oBAAqB,GACrB,UAAW,GACX,YAAa,GACb,iBAAkB,GAClB,eAAgB,GAChB,QAAS,GACT,iBAAkB,GAClB,iBAAkB,GAClB,kBAAmB,GACnB,mBAAoB,GACpB,QAAS,GACT,oBAAqB,GACrB,qBAAsB,GACtB,kBAAmB,GACnB,YAAa,GACb,cAAe,GACf,mBAAoB,GACpB,YAAa,GACb,WAAY,GACZ,sBAAuB,GACvB,aAAc,GACd,kBAAmB,EACvB,CAAC,EA+BD,YAA+B,EAAO,EAAU,CAE9C,CADe,CAAM,MAAM,EAAM,MAAQ,KAC1B,KACb,EAAS,YAAW,CAExB,CAMA,YAAwB,EAAM,EAAS,CAErC,CAAI,CAAK,YAAc,QACrB,GAAK,MAAQ,EAAK,UAClB,MAAO,GAAK,UAEhB,CAMA,YAAuB,EAAM,EAAQ,CACnC,CAAK,GACD,CAAC,EAAK,eAOV,GAAK,MAAQ,OAAS,EAAK,cAAc,MAAM,GAAG,EAAE,KAAK,GAAG,EAAI,sBAChE,EAAK,cAAgB,GACrB,EAAK,SAAW,EAAK,UAAY,EAAK,cACtC,MAAO,GAAK,cAKR,EAAK,YAAc,QAAW,GAAK,UAAY,GACrD,CAMA,YAAwB,EAAM,EAAS,CACrC,CAAK,MAAM,QAAQ,EAAK,OAAO,GAE/B,GAAK,QAAU,GAAO,GAAG,EAAK,OAAO,EACvC,CAMA,YAAsB,EAAM,EAAS,CACnC,GAAI,EAAC,EAAK,MACV,IAAI,EAAK,OAAS,EAAK,IAAK,KAAM,IAAI,OAAM,0CAA0C,EAEtF,EAAK,MAAQ,EAAK,MAClB,MAAO,GAAK,MACd,CAMA,YAA0B,EAAM,EAAS,CAEvC,CAAI,CAAK,YAAc,QAAW,GAAK,UAAY,EACrD,CAIA,KAAM,IAAiB,CAAC,EAAM,IAAW,CACvC,GAAI,CAAC,EAAK,YAAa,OAGvB,GAAI,EAAK,OAAQ,KAAM,IAAI,OAAM,wCAAwC,EAEzE,KAAM,GAAe,OAAO,OAAO,CAAE,EAAE,CAAI,EAC3C,OAAO,KAAK,CAAI,EAAE,QAAQ,CAAC,EAAQ,CAAE,MAAO,GAAK,EAAO,GAExD,EAAK,SAAW,EAAa,SAC7B,EAAK,MAAQ,GAAO,EAAa,YAAa,GAAU,EAAa,KAAK,CAAC,EAC3E,EAAK,OAAS,CACZ,UAAW,EACX,SAAU,CACR,OAAO,OAAO,EAAc,CAAE,WAAY,EAAI,CAAE,CACjD,CACL,EACE,EAAK,UAAY,EAEjB,MAAO,GAAa,WACtB,EAGM,GAAkB,CACtB,KACA,MACA,MACA,KACA,MACA,KACA,KACA,OACA,SACA,OACA,OACF,EAEM,GAAwB,UAQ9B,YAAyB,EAAa,EAAiB,EAAY,GAAuB,CAExF,KAAM,GAAmB,OAAO,OAAO,IAAI,EAI3C,MAAI,OAAO,IAAgB,SACzB,EAAY,EAAW,EAAY,MAAM,GAAG,CAAC,EACxC,CAAI,KAAM,QAAQ,CAAW,EAClC,EAAY,EAAW,CAAW,EAElC,OAAO,KAAK,CAAW,EAAE,QAAQ,SAAS,EAAW,CAEnD,OAAO,OACL,EACA,GAAgB,EAAY,GAAY,EAAiB,CAAS,CAC1E,CACA,CAAK,EAEI,EAYP,WAAqB,EAAW,EAAa,CAC3C,CAAI,EACF,GAAc,EAAY,IAAI,GAAK,EAAE,YAAW,CAAE,GAEpD,EAAY,QAAQ,SAAS,EAAS,CACpC,KAAM,GAAO,EAAQ,MAAM,GAAG,EAC9B,EAAiB,EAAK,IAAM,CAAC,EAAW,GAAgB,EAAK,GAAI,EAAK,EAAE,CAAC,CAC/E,CAAK,CACF,CACH,CAUA,YAAyB,EAAS,EAAe,CAG/C,MAAI,GACK,OAAO,CAAa,EAGtB,GAAc,CAAO,EAAI,EAAI,CACtC,CAMA,YAAuB,EAAS,CAC9B,MAAO,IAAgB,SAAS,EAAQ,YAAa,EACvD,CAYA,KAAM,IAAmB,GAKnB,GAAQ,CAAC,EAAY,CACzB,QAAQ,MAAM,CAAO,CACvB,EAMM,GAAO,CAAC,KAAY,IAAS,CACjC,QAAQ,IAAI,SAAS,IAAW,GAAG,CAAI,CACzC,EAMM,GAAa,CAAC,EAAS,IAAY,CACvC,CAAI,EAAiB,GAAG,KAAW,MAEnC,SAAQ,IAAI,oBAAoB,MAAY,GAAS,EACrD,GAAiB,GAAG,KAAW,KAAa,GAC9C,EAQM,GAAkB,GAAI,OA8B5B,YAAyB,EAAM,EAAS,CAAE,OAAO,CAC/C,GAAI,GAAS,EACb,KAAM,GAAa,EAAK,GAElB,EAAO,GAEP,EAAY,GAElB,OAAS,GAAI,EAAG,GAAK,EAAQ,OAAQ,IACnC,EAAU,EAAI,GAAU,EAAW,GACnC,EAAK,EAAI,GAAU,GACnB,GAAU,GAAiB,EAAQ,EAAI,EAAE,EAI3C,EAAK,GAAO,EACZ,EAAK,GAAK,MAAQ,EAClB,EAAK,GAAK,OAAS,EACrB,CAKA,YAAyB,EAAM,CAC7B,GAAI,EAAC,MAAM,QAAQ,EAAK,KAAK,EAE7B,IAAI,EAAK,MAAQ,EAAK,cAAgB,EAAK,YACzC,SAAM,oEAAoE,EACpE,GAGR,GAAI,MAAO,GAAK,YAAe,UAAY,EAAK,aAAe,KAC7D,SAAM,2BAA2B,EAC3B,GAGR,GAAgB,EAAM,EAAK,MAAO,CAAE,IAAK,YAAY,CAAE,EACvD,EAAK,MAAQ,GAAuB,EAAK,MAAO,CAAE,SAAU,EAAE,CAAE,EAClE,CAKA,YAAuB,EAAM,CAC3B,GAAI,EAAC,MAAM,QAAQ,EAAK,GAAG,EAE3B,IAAI,EAAK,MAAQ,EAAK,YAAc,EAAK,UACvC,SAAM,8DAA8D,EAC9D,GAGR,GAAI,MAAO,GAAK,UAAa,UAAY,EAAK,WAAa,KACzD,SAAM,yBAAyB,EACzB,GAGR,GAAgB,EAAM,EAAK,IAAK,CAAE,IAAK,UAAU,CAAE,EACnD,EAAK,IAAM,GAAuB,EAAK,IAAK,CAAE,SAAU,EAAE,CAAE,EAC9D,CAaA,YAAoB,EAAM,CACxB,CAAI,CAAK,OAAS,MAAO,GAAK,OAAU,UAAY,EAAK,QAAU,MACjE,GAAK,WAAa,EAAK,MACvB,MAAO,GAAK,MAEhB,CAKA,YAAoB,EAAM,CACxB,GAAW,CAAI,EAEX,MAAO,GAAK,YAAe,UAC7B,GAAK,WAAa,CAAE,MAAO,EAAK,UAAU,GAExC,MAAO,GAAK,UAAa,UAC3B,GAAK,SAAW,CAAE,MAAO,EAAK,QAAQ,GAGxC,GAAgB,CAAI,EACpB,GAAc,CAAI,CACpB,CAoBA,YAAyB,EAAU,CAOjC,WAAgB,EAAO,EAAQ,CAC7B,MAAO,IAAI,QACT,GAAO,CAAK,EACZ,IACG,GAAS,iBAAmB,IAAM,IAClC,GAAS,aAAe,IAAM,IAC9B,GAAS,IAAM,GACxB,CACG,CAeD,MAAM,CAAW,CACf,aAAc,CACZ,KAAK,aAAe,GAEpB,KAAK,QAAU,GACf,KAAK,QAAU,EACf,KAAK,SAAW,CACjB,CAGD,QAAQ,EAAI,EAAM,CAChB,EAAK,SAAW,KAAK,WAErB,KAAK,aAAa,KAAK,SAAW,EAClC,KAAK,QAAQ,KAAK,CAAC,EAAM,CAAE,CAAC,EAC5B,KAAK,SAAW,GAAiB,CAAE,EAAI,CACxC,CAED,SAAU,CACR,CAAI,IAAK,QAAQ,SAAW,GAG1B,MAAK,KAAO,IAAM,MAEpB,KAAM,GAAc,KAAK,QAAQ,IAAI,GAAM,EAAG,EAAE,EAChD,KAAK,UAAY,EAAO,GAAuB,EAAa,CAAE,SAAU,GAAG,CAAE,EAAG,EAAI,EACpF,KAAK,UAAY,CAClB,CAGD,KAAK,EAAG,CACN,KAAK,UAAU,UAAY,KAAK,UAChC,KAAM,GAAQ,KAAK,UAAU,KAAK,CAAC,EACnC,GAAI,CAAC,EAAS,MAAO,MAGrB,KAAM,GAAI,EAAM,UAAU,CAAC,EAAI,IAAM,EAAI,GAAK,IAAO,MAAS,EAExD,EAAY,KAAK,aAAa,GAGpC,SAAM,OAAO,EAAG,CAAC,EAEV,OAAO,OAAO,EAAO,CAAS,CACtC,CACF,CAiCD,MAAM,CAAoB,CACxB,aAAc,CAEZ,KAAK,MAAQ,GAEb,KAAK,aAAe,GACpB,KAAK,MAAQ,EAEb,KAAK,UAAY,EACjB,KAAK,WAAa,CACnB,CAGD,WAAW,EAAO,CAChB,GAAI,KAAK,aAAa,GAAQ,MAAO,MAAK,aAAa,GAEvD,KAAM,GAAU,GAAI,GACpB,YAAK,MAAM,MAAM,CAAK,EAAE,QAAQ,CAAC,CAAC,EAAI,KAAU,EAAQ,QAAQ,EAAI,CAAI,CAAC,EACzE,EAAQ,QAAO,EACf,KAAK,aAAa,GAAS,EACpB,CACR,CAED,4BAA6B,CAC3B,MAAO,MAAK,aAAe,CAC5B,CAED,aAAc,CACZ,KAAK,WAAa,CACnB,CAGD,QAAQ,EAAI,EAAM,CAChB,KAAK,MAAM,KAAK,CAAC,EAAI,CAAI,CAAC,EACtB,EAAK,OAAS,SAAS,KAAK,OACjC,CAGD,KAAK,EAAG,CACN,KAAM,GAAI,KAAK,WAAW,KAAK,UAAU,EACzC,EAAE,UAAY,KAAK,UACnB,GAAI,GAAS,EAAE,KAAK,CAAC,EAiCrB,GAAI,KAAK,8BACH,KAAU,EAAO,QAAU,KAAK,WAAkB,CACpD,KAAM,GAAK,KAAK,WAAW,CAAC,EAC5B,EAAG,UAAY,KAAK,UAAY,EAChC,EAAS,EAAG,KAAK,CAAC,CACnB,CAGH,MAAI,IACF,MAAK,YAAc,EAAO,SAAW,EACjC,KAAK,aAAe,KAAK,OAE3B,KAAK,YAAW,GAIb,CACR,CACF,CASD,WAAwB,EAAM,CAC5B,KAAM,GAAK,GAAI,GAEf,SAAK,SAAS,QAAQ,GAAQ,EAAG,QAAQ,EAAK,MAAO,CAAE,KAAM,EAAM,KAAM,OAAO,CAAE,CAAC,EAE/E,EAAK,eACP,EAAG,QAAQ,EAAK,cAAe,CAAE,KAAM,KAAK,CAAE,EAE5C,EAAK,SACP,EAAG,QAAQ,EAAK,QAAS,CAAE,KAAM,SAAS,CAAE,EAGvC,CACR,CAyCD,WAAqB,EAAM,EAAQ,CACjC,KAAM,GAAmC,EACzC,GAAI,EAAK,WAAY,MAAO,GAE5B,CACE,GAGA,GACA,GACA,EACN,EAAM,QAAQ,GAAO,EAAI,EAAM,CAAM,CAAC,EAElC,EAAS,mBAAmB,QAAQ,GAAO,EAAI,EAAM,CAAM,CAAC,EAG5D,EAAK,cAAgB,KAErB,CACE,GAGA,GAEA,EACN,EAAM,QAAQ,GAAO,EAAI,EAAM,CAAM,CAAC,EAElC,EAAK,WAAa,GAElB,GAAI,GAAiB,KACrB,MAAI,OAAO,GAAK,UAAa,UAAY,EAAK,SAAS,UAIrD,GAAK,SAAW,OAAO,OAAO,GAAI,EAAK,QAAQ,EAC/C,EAAiB,EAAK,SAAS,SAC/B,MAAO,GAAK,SAAS,UAEvB,EAAiB,GAAkB,MAE/B,EAAK,UACP,GAAK,SAAW,GAAgB,EAAK,SAAU,EAAS,gBAAgB,GAG1E,EAAM,iBAAmB,EAAO,EAAgB,EAAI,EAEhD,GACG,GAAK,OAAO,GAAK,MAAQ,SAC9B,EAAM,QAAU,EAAO,EAAM,KAAK,EAC9B,CAAC,EAAK,KAAO,CAAC,EAAK,gBAAgB,GAAK,IAAM,SAC9C,EAAK,KAAK,GAAM,MAAQ,EAAO,EAAM,GAAG,GAC5C,EAAM,cAAgB,GAAO,EAAM,GAAG,GAAK,GACvC,EAAK,gBAAkB,EAAO,eAChC,GAAM,eAAkB,GAAK,IAAM,IAAM,IAAM,EAAO,gBAGtD,EAAK,SAAS,GAAM,UAAY,EAAuC,EAAK,UAC3E,EAAK,UAAU,GAAK,SAAW,IAEpC,EAAK,SAAW,GAAG,OAAO,GAAG,EAAK,SAAS,IAAI,SAAS,EAAG,CACzD,MAAO,IAAkB,IAAM,OAAS,EAAO,CAAC,CACjD,EAAC,EACF,EAAK,SAAS,QAAQ,SAAS,EAAG,CAAE,EAA+B,EAAI,CAAK,CAAE,CAAE,EAE5E,EAAK,QACP,EAAY,EAAK,OAAQ,CAAM,EAGjC,EAAM,QAAU,EAAe,CAAK,EAC7B,CACR,CAKD,GAHK,EAAS,oBAAoB,GAAS,mBAAqB,IAG5D,EAAS,UAAY,EAAS,SAAS,SAAS,MAAM,EACxD,KAAM,IAAI,OAAM,2FAA2F,EAI7G,SAAS,iBAAmB,GAAU,EAAS,kBAAoB,CAAE,GAE9D,EAA+B,EACxC,CAaA,YAA4B,EAAM,CAChC,MAAK,GAEE,EAAK,gBAAkB,GAAmB,EAAK,MAAM,EAF1C,EAGpB,CAYA,YAA2B,EAAM,CAU/B,MATI,GAAK,UAAY,CAAC,EAAK,gBACzB,GAAK,eAAiB,EAAK,SAAS,IAAI,SAAS,EAAS,CACxD,MAAO,IAAU,EAAM,CAAE,SAAU,IAAI,EAAI,CAAO,CACxD,CAAK,GAMC,EAAK,eACA,EAAK,eAOV,GAAmB,CAAI,EAClB,GAAU,EAAM,CAAE,OAAQ,EAAK,OAAS,GAAU,EAAK,MAAM,EAAI,IAAM,GAG5E,OAAO,SAAS,CAAI,EACf,GAAU,CAAI,EAIhB,CACT,CAEA,GAAI,IAAU,SAEd,MAAM,UAA2B,MAAM,CACrC,YAAY,EAAQ,EAAM,CACxB,MAAM,CAAM,EACZ,KAAK,KAAO,qBACZ,KAAK,KAAO,CACb,CACH,CA6BA,KAAMuuD,IAAS,GACT,GAAU,GACV,GAAW,OAAO,SAAS,EAC3B,GAAmB,EAMnB,GAAO,SAAS,EAAM,CAG1B,KAAM,GAAY,OAAO,OAAO,IAAI,EAE9B,EAAU,OAAO,OAAO,IAAI,EAE5B,EAAU,GAIhB,GAAI,GAAY,GAChB,KAAM,GAAqB,sFAErB,EAAqB,CAAE,kBAAmB,GAAM,KAAM,aAAc,SAAU,IAKpF,GAAI,GAAU,CACZ,oBAAqB,GACrB,mBAAoB,GACpB,cAAe,qBACf,iBAAkB,8BAClB,YAAa,QACb,YAAa,WACb,UAAW,KAGX,UAAW,EACf,EAQE,WAA4B,EAAc,CACxC,MAAO,GAAQ,cAAc,KAAK,CAAY,CAC/C,CAKD,WAAuB,EAAO,CAC5B,GAAI,GAAU,EAAM,UAAY,IAEhC,GAAW,EAAM,WAAa,EAAM,WAAW,UAAY,GAG3D,KAAM,GAAQ,EAAQ,iBAAiB,KAAK,CAAO,EACnD,GAAI,EAAO,CACT,KAAM,GAAW,EAAY,EAAM,EAAE,EACrC,MAAK,IACH,IAAK,EAAmB,QAAQ,KAAM,EAAM,EAAE,CAAC,EAC/C,GAAK,oDAAqD,CAAK,GAE1D,EAAW,EAAM,GAAK,cAC9B,CAED,MAAO,GACJ,MAAM,KAAK,EACX,KAAK,CAAC,EAAW,EAAmB,CAAM,GAAK,EAAY,CAAM,CAAC,CACtE,CAuBD,WAAmB,EAAoB,EAAe,EAAgB,CACpE,GAAI,GAAO,GACP,EAAe,GACnB,CAAI,KAAO,IAAkB,SAC3B,GAAO,EACP,EAAiB,EAAc,eAC/B,EAAe,EAAc,UAG7B,IAAW,SAAU,qDAAqD,EAC1E,GAAW,SAAU;AAAA,wDAAuG,EAC5H,EAAe,EACf,EAAO,GAKL,IAAmB,QAAa,GAAiB,IAGrD,KAAM,GAAU,CACd,OACA,SAAU,CAChB,EAGI,EAAK,mBAAoB,CAAO,EAIhC,KAAM,GAAS,EAAQ,OACnB,EAAQ,OACR,EAAW,EAAQ,SAAU,EAAQ,KAAM,CAAc,EAE7D,SAAO,KAAO,EAAQ,KAEtB,EAAK,kBAAmB,CAAM,EAEvB,CACR,CAWD,WAAoB,EAAc,EAAiB,EAAgB,EAAc,CAC/E,KAAM,GAAc,OAAO,OAAO,IAAI,EAQtC,WAAqB,GAAM,GAAW,CACpC,MAAO,IAAK,SAAS,GACtB,CAED,YAA2B,CACzB,GAAI,CAAC,GAAI,SAAU,CACjB,GAAQ,QAAQ,EAAU,EAC1B,MACD,CAED,GAAI,IAAY,EAChB,GAAI,iBAAiB,UAAY,EACjC,GAAI,IAAQ,GAAI,iBAAiB,KAAK,EAAU,EAC5C,GAAM,GAEV,KAAO,IAAO,CACZ,IAAO,GAAW,UAAU,GAAW,GAAM,KAAK,EAClD,KAAM,IAAO,GAAS,iBAAmB,GAAM,GAAG,YAAa,EAAG,GAAM,GAClE,GAAO,EAAY,GAAK,EAAI,EAClC,GAAI,GAAM,CACR,KAAM,CAAC,GAAM,IAAoB,GAMjC,GALA,GAAQ,QAAQ,EAAG,EACnB,GAAM,GAEN,EAAY,IAAS,GAAY,KAAS,GAAK,EAC3C,EAAY,KAAS,IAAkB,KAAa,IACpD,GAAK,WAAW,GAAG,EAGrB,IAAO,GAAM,OACR,CACL,KAAM,IAAW,GAAS,iBAAiB,KAAS,GACpD,GAAQ,WAAW,GAAM,GAAI,EAAQ,CACtC,CACX,KACU,KAAO,GAAM,GAEf,GAAY,GAAI,iBAAiB,UACjC,GAAQ,GAAI,iBAAiB,KAAK,EAAU,CAC7C,CACD,IAAO,GAAW,OAAO,EAAS,EAClC,GAAQ,QAAQ,EAAG,CACpB,CAED,YAA8B,CAC5B,GAAI,KAAe,GAAI,OAEvB,GAAI,IAAS,KAEb,GAAI,MAAO,IAAI,aAAgB,SAAU,CACvC,GAAI,CAAC,EAAU,GAAI,aAAc,CAC/B,GAAQ,QAAQ,EAAU,EAC1B,MACD,CACD,GAAS,EAAW,GAAI,YAAa,GAAY,GAAM,GAAc,GAAI,YAAY,EACrF,GAAc,GAAI,aAA4C,GAAO,IAC7E,KACQ,IAAS,EAAc,GAAY,GAAI,YAAY,OAAS,GAAI,YAAc,IAAI,EAOpF,CAAI,EAAI,UAAY,GAClB,KAAa,GAAO,WAEtB,GAAQ,eAAe,GAAO,SAAU,GAAO,QAAQ,CACxD,CAED,YAAyB,CACvB,CAAI,EAAI,aAAe,KACrB,IAEA,IAEF,GAAa,EACd,CAMD,YAAwB,GAAO,GAAO,CACpC,GAAI,IAAI,EACR,KAAM,IAAM,GAAM,OAAS,EAC3B,KAAO,IAAK,IAAK,CACf,GAAI,CAAC,GAAM,MAAM,IAAI,CAAE,KAAK,QAAW,CACvC,KAAM,IAAQ,GAAS,iBAAiB,GAAM,MAAO,GAAM,IACrD,GAAO,GAAM,IACnB,CAAI,EACF,GAAQ,WAAW,GAAM,EAAK,EAE9B,IAAa,GACb,IACA,GAAa,IAEf,IACD,CACF,CAMD,WAAsB,GAAM,GAAO,CACjC,MAAI,IAAK,OAAS,MAAO,IAAK,OAAU,UACtC,GAAQ,SAAS,GAAS,iBAAiB,GAAK,QAAU,GAAK,KAAK,EAElE,GAAK,YAEP,CAAI,GAAK,WAAW,MAClB,IAAQ,WAAW,GAAY,GAAS,iBAAiB,GAAK,WAAW,QAAU,GAAK,WAAW,KAAK,EACxG,GAAa,IACJ,GAAK,WAAW,QAEzB,IAAe,GAAK,WAAY,EAAK,EACrC,GAAa,KAIjB,GAAM,OAAO,OAAO,GAAM,CAAE,OAAQ,CAAE,MAAO,EAAK,EAAE,EAC7C,EACR,CAQD,WAAmB,GAAM,GAAO,GAAoB,CAClD,GAAI,IAAU,GAAW,GAAK,MAAO,EAAkB,EAEvD,GAAI,GAAS,CACX,GAAI,GAAK,UAAW,CAClB,KAAM,IAAO,GAAI,IAAS,EAAI,EAC9B,GAAK,UAAU,GAAO,EAAI,EACtB,GAAK,gBAAgB,IAAU,GACpC,CAED,GAAI,GAAS,CACX,KAAO,GAAK,YAAc,GAAK,QAC7B,GAAO,GAAK,OAEd,MAAO,GACR,CACF,CAGD,GAAI,GAAK,eACP,MAAO,GAAU,GAAK,OAAQ,GAAO,EAAkB,CAE1D,CAOD,YAAkB,GAAQ,CACxB,MAAI,IAAI,QAAQ,aAAe,EAG7B,KAAc,GAAO,GACd,GAIP,IAA2B,GACpB,EAEV,CAQD,YAAsB,GAAO,CAC3B,KAAM,IAAS,GAAM,GACf,GAAU,GAAM,KAEhB,GAAO,GAAI,IAAS,EAAO,EAE3B,GAAkB,CAAC,GAAQ,cAAe,GAAQ,WAAW,EACnE,SAAW,MAAM,IACf,GAAI,EAAC,IACL,IAAG,GAAO,EAAI,EACV,GAAK,gBAAgB,MAAO,IAAS,EAAM,EAGjD,MAAI,IAAQ,KACV,IAAc,GAEV,IAAQ,cACV,KAAc,IAEhB,IACI,CAAC,GAAQ,aAAe,CAAC,GAAQ,cACnC,IAAa,KAGjB,EAAa,GAAS,EAAK,EACpB,GAAQ,YAAc,EAAI,GAAO,MACzC,CAOD,YAAoB,GAAO,CACzB,KAAM,IAAS,GAAM,GACf,GAAqB,EAAgB,OAAO,GAAM,KAAK,EAEvD,GAAU,EAAU,GAAK,GAAO,EAAkB,EACxD,GAAI,CAAC,GAAW,MAAO,IAEvB,KAAM,IAAS,GACf,CAAI,EAAI,UAAY,GAAI,SAAS,MAC/B,KACA,GAAQ,WAAW,GAAQ,GAAI,SAAS,KAAK,GACxC,CAAI,EAAI,UAAY,GAAI,SAAS,OACtC,KACA,GAAe,GAAI,SAAU,EAAK,GAC7B,CAAI,EAAO,KAChB,IAAc,GAER,IAAO,WAAa,GAAO,YAC/B,KAAc,IAEhB,IACI,GAAO,YACT,IAAa,KAGjB,EACE,CAAI,GAAI,OACN,GAAQ,UAAS,EAEf,CAAC,GAAI,MAAQ,CAAC,GAAI,aACpB,KAAa,GAAI,WAEnB,GAAM,GAAI,aACH,KAAQ,GAAQ,QACzB,MAAI,IAAQ,QACV,EAAa,GAAQ,OAAQ,EAAK,EAE7B,GAAO,UAAY,EAAI,GAAO,MACtC,CAED,aAAgC,CAC9B,KAAM,IAAO,GACb,OAAS,IAAU,GAAK,KAAY,GAAU,GAAU,GAAQ,OAC9D,CAAI,EAAQ,OACV,GAAK,QAAQ,GAAQ,KAAK,EAG9B,GAAK,QAAQ,IAAQ,GAAQ,SAAS,EAAI,CAAC,CAC5C,CAGD,GAAI,IAAY,GAQhB,YAAuB,GAAiB,GAAO,CAC7C,KAAM,IAAS,IAAS,GAAM,GAK9B,GAFA,IAAc,GAEV,IAAU,KACZ,WACO,EAOT,GAAI,GAAU,OAAS,SAAW,GAAM,OAAS,OAAS,GAAU,QAAU,GAAM,OAAS,KAAW,GAAI,CAG1G,GADA,IAAc,EAAgB,MAAM,GAAM,MAAO,GAAM,MAAQ,CAAC,EAC5D,CAAC,EAAW,CAEd,KAAM,IAAM,GAAI,OAAM,wBAAwB,IAAe,EAC7D,SAAI,aAAe,EACnB,GAAI,QAAU,GAAU,KAClB,EACP,CACD,MAAO,EACR,CAGD,GAFA,GAAY,GAER,GAAM,OAAS,QACjB,MAAO,IAAa,EAAK,EACpB,GAAI,GAAM,OAAS,WAAa,CAAC,EAAgB,CAGtD,KAAM,IAAM,GAAI,OAAM,mBAAqB,GAAS,eAAkB,IAAI,OAAS,aAAe,GAAG,EACrG,SAAI,KAAO,GACL,EACd,SAAiB,GAAM,OAAS,MAAO,CAC/B,KAAM,IAAY,GAAW,EAAK,EAClC,GAAI,KAAc,GAChB,MAAO,GAEV,CAKD,GAAI,GAAM,OAAS,WAAa,KAAW,GAEzC,MAAO,GAOT,GAAI,GAAa,KAAU,GAAa,GAAM,MAAQ,EAEpD,KADY,IAAI,OAAM,2DAA2D,EAYnF,WAAc,GACP,GAAO,MACf,CAED,KAAM,IAAW,EAAY,CAAY,EACzC,GAAI,CAAC,GACH,SAAM,EAAmB,QAAQ,KAAM,CAAY,CAAC,EAC9C,GAAI,OAAM,sBAAwB,EAAe,GAAG,EAG5D,KAAM,IAAK,GAAgB,EAAQ,EACnC,GAAI,IAAS,GAET,GAAM,GAAgB,GAE1B,KAAM,IAAgB,GAChB,GAAU,GAAI,GAAQ,UAAU,CAAO,EAC7C,KACA,GAAI,IAAa,GACb,GAAY,EACZ,GAAQ,EACR,GAAa,EACb,GAA2B,GAE/B,GAAI,CAGF,IAFA,GAAI,QAAQ,gBAEH,CACP,KACA,CAAI,EAGF,GAA2B,GAE3B,GAAI,QAAQ,cAEd,GAAI,QAAQ,UAAY,GAExB,KAAM,IAAQ,GAAI,QAAQ,KAAK,CAAe,EAG9C,GAAI,CAAC,GAAO,MAEZ,KAAM,IAAc,EAAgB,UAAU,GAAO,GAAM,KAAK,EAC1D,GAAiB,GAAc,GAAa,EAAK,EACvD,GAAQ,GAAM,MAAQ,EACvB,CACD,UAAc,EAAgB,OAAO,EAAK,CAAC,EAC3C,GAAQ,cAAa,EACrB,GAAQ,SAAQ,EAChB,GAAS,GAAQ,SAEV,CACL,SAAU,EACV,MAAO,GACP,UAAW,GACX,QAAS,GACT,SAAU,GACV,KAAM,EACd,CACK,OAAQ,GAAP,CACA,GAAI,GAAI,SAAW,GAAI,QAAQ,SAAS,SAAS,EAC/C,MAAO,CACL,SAAU,EACV,MAAOA,GAAO,CAAe,EAC7B,QAAS,GACT,UAAW,EACX,WAAY,CACV,QAAS,GAAI,QACb,MAAO,GACP,QAAS,EAAgB,MAAM,GAAQ,IAAK,GAAQ,GAAG,EACvD,KAAM,GAAI,KACV,YAAa,EACd,EACD,SAAU,EACpB,EACa,GAAI,EACT,MAAO,CACL,SAAU,EACV,MAAOA,GAAO,CAAe,EAC7B,QAAS,GACT,UAAW,EACX,YAAa,GACb,SAAU,GACV,KAAM,EAChB,EAEQ,KAAM,GAET,CACF,CASD,WAAiC,EAAM,CACrC,KAAM,GAAS,CACb,MAAOA,GAAO,CAAI,EAClB,QAAS,GACT,UAAW,EACX,KAAM,EACN,SAAU,GAAI,GAAQ,UAAU,CAAO,CAC7C,EACI,SAAO,SAAS,QAAQ,CAAI,EACrB,CACR,CAgBD,WAAuB,EAAM,EAAgB,CAC3C,EAAiB,GAAkB,EAAQ,WAAa,OAAO,KAAK,CAAS,EAC7E,KAAM,GAAY,EAAwB,CAAI,EAExC,EAAU,EAAe,OAAO,CAAW,EAAE,OAAO,CAAa,EAAE,IAAI,GAC3E,EAAW,EAAM,EAAM,EAAK,CAClC,EACI,EAAQ,QAAQ,CAAS,EAEzB,KAAM,GAAS,EAAQ,KAAK,CAAC,EAAG,KAAM,CAEpC,GAAI,EAAE,YAAc,GAAE,UAAW,MAAO,IAAE,UAAY,EAAE,UAIxD,GAAI,EAAE,UAAY,GAAE,SAAU,CAC5B,GAAI,EAAY,EAAE,QAAQ,EAAE,aAAe,GAAE,SAC3C,MAAO,GACF,GAAI,EAAY,GAAE,QAAQ,EAAE,aAAe,EAAE,SAClD,MAAO,EAEV,CAMD,MAAO,EACb,CAAK,EAEK,CAAC,EAAM,GAAc,EAGrB,EAAS,EACf,SAAO,WAAa,EAEb,CACR,CASD,WAAyB,EAAS,EAAa,EAAY,CACzD,KAAM,GAAY,GAAe,EAAQ,IAAiB,EAE1D,EAAQ,UAAU,IAAI,MAAM,EAC5B,EAAQ,UAAU,IAAI,YAAY,GAAU,CAC7C,CAOD,WAA0B,EAAS,CAEjC,GAAI,GAAO,KACX,KAAM,GAAW,EAAc,CAAO,EAEtC,GAAI,EAAmB,CAAQ,EAAG,OAUlC,GARA,EAAK,0BACH,CAAE,GAAI,EAAS,SAAU,CAAU,GAOjC,EAAQ,SAAS,OAAS,GACvB,GAAQ,qBACX,SAAQ,KAAK,+FAA+F,EAC5G,QAAQ,KAAK,2DAA2D,EACxE,QAAQ,KAAK,kCAAkC,EAC/C,QAAQ,KAAK,CAAO,GAElB,EAAQ,oBAKV,KAJY,IAAI,IACd,mDACA,EAAQ,SAClB,EAKI,EAAO,EACP,KAAM,GAAO,EAAK,YACZ,EAAS,EAAW,EAAU,EAAM,CAAE,WAAU,eAAgB,EAAM,GAAI,EAAc,CAAI,EAElG,EAAQ,UAAY,EAAO,MAC3B,EAAgB,EAAS,EAAU,EAAO,QAAQ,EAClD,EAAQ,OAAS,CACf,SAAU,EAAO,SAEjB,GAAI,EAAO,UACX,UAAW,EAAO,SACxB,EACQ,EAAO,YACT,GAAQ,WAAa,CACnB,SAAU,EAAO,WAAW,SAC5B,UAAW,EAAO,WAAW,SACrC,GAGI,EAAK,yBAA0B,CAAE,GAAI,EAAS,SAAQ,MAAI,CAAE,CAC7D,CAOD,WAAmB,EAAa,CAC9B,EAAU,GAAQ,EAAS,CAAW,CACvC,CAGD,KAAM,GAAmB,IAAM,CAC7B,IACA,GAAW,SAAU,yDAAyD,CAClF,EAGE,YAAkC,CAChC,IACA,GAAW,SAAU,+DAA+D,CACrF,CAED,GAAI,GAAiB,GAKrB,YAAwB,CAEtB,GAAI,SAAS,aAAe,UAAW,CACrC,EAAiB,GACjB,MACD,CAGD,CADe,QAAS,iBAAiB,EAAQ,WAAW,EACrD,QAAQ,CAAgB,CAChC,CAED,YAAgB,CAEd,CAAI,EAAgB,GACrB,CAGD,CAAI,KAAO,SAAW,aAAe,OAAO,kBAC1C,OAAO,iBAAiB,mBAAoB,EAAM,EAAK,EASzD,WAA0B,EAAc,EAAoB,CAC1D,GAAI,GAAO,KACX,GAAI,CACF,EAAO,EAAmB,CAAI,CAC/B,OAAQ,EAAP,CAGA,GAFA,GAAM,wDAAwD,QAAQ,KAAM,CAAY,CAAC,EAEpF,EAAqC,GAAM,CAAO,MAArC,MAAM,GAKxB,EAAO,CACR,CAED,CAAK,CAAK,MAAM,GAAK,KAAO,GAC5B,EAAU,GAAgB,EAC1B,EAAK,cAAgB,EAAmB,KAAK,KAAM,CAAI,EAEnD,EAAK,SACP,EAAgB,EAAK,QAAS,CAAE,cAAc,EAEjD,CAOD,WAA4B,EAAc,CACxC,MAAO,GAAU,GACjB,SAAW,KAAS,QAAO,KAAK,CAAO,EACrC,CAAI,CAAQ,KAAW,GACrB,MAAO,GAAQ,EAGpB,CAKD,YAAyB,CACvB,MAAO,QAAO,KAAK,CAAS,CAC7B,CAMD,WAAqB,EAAM,CACzB,SAAQ,IAAQ,IAAI,YAAW,EACxB,EAAU,IAAS,EAAU,EAAQ,GAC7C,CAOD,WAAyB,EAAW,CAAE,gBAAgB,CACpD,CAAI,KAAO,IAAc,UACvB,GAAY,CAAC,CAAS,GAExB,EAAU,QAAQ,GAAS,CAAE,EAAQ,EAAM,eAAiB,CAAa,CAAE,CAC5E,CAMD,WAAuB,EAAM,CAC3B,KAAM,GAAO,EAAY,CAAI,EAC7B,MAAO,IAAQ,CAAC,EAAK,iBACtB,CAOD,WAA0B,EAAQ,CAEhC,CAAI,CAAO,0BAA4B,CAAC,EAAO,4BAC7C,GAAO,2BAA6B,CAAC,EAAS,CAC5C,EAAO,yBACL,OAAO,OAAO,CAAE,MAAO,EAAK,EAAI,EAAE,CAAI,CAChD,CACA,GAEQ,EAAO,yBAA2B,CAAC,EAAO,2BAC5C,GAAO,0BAA4B,CAAC,EAAS,CAC3C,EAAO,wBACL,OAAO,OAAO,CAAE,MAAO,EAAK,EAAI,EAAE,CAAI,CAChD,CACA,EAEG,CAKD,WAAmB,EAAQ,CACzB,EAAiB,CAAM,EACvB,EAAQ,KAAK,CAAM,CACpB,CAOD,WAAc,EAAO,EAAM,CACzB,KAAM,GAAK,EACX,EAAQ,QAAQ,SAAS,EAAQ,CAC/B,CAAI,CAAO,IACT,EAAO,GAAI,CAAI,CAEvB,CAAK,CACF,CAMD,WAAiC,EAAI,CACnC,UAAW,SAAU,kDAAkD,EACvE,GAAW,SAAU,kCAAkC,EAEhD,EAAiB,CAAE,CAC3B,CAGD,OAAO,OAAO,EAAM,CAClB,YACA,gBACA,eACA,mBAEA,eAAgB,EAChB,YACA,mBACA,yBACA,mBACA,qBACA,gBACA,cACA,kBACA,gBACA,WACA,WACJ,CAAG,EAED,EAAK,UAAY,UAAW,CAAE,EAAY,EAAM,EAChD,EAAK,SAAW,UAAW,CAAE,EAAY,EAAK,EAC9C,EAAK,cAAgB,GAErB,EAAK,MAAQ,CACX,OAAQ,GACR,UAAW,GACX,OAAQ,GACR,SAAU,GACV,iBAAkB,EACtB,EAEE,SAAW,KAAO,IAEhB,CAAI,KAAO,IAAM,IAAS,UAExB,GAAa,GAAM,EAAI,EAK3B,cAAO,OAAO,EAAM,EAAK,EAElB,CACT,EAGA,GAAI,IAAY,GAAK,EAAE,EAEvB,GAAiB,GACjB,GAAU,YAAc,GACxB,GAAU,QAAU,aCr/EpB,YAAc,EAAM,CAClB,KAAM,GAAY,CAChB,UAAW,OACX,MAAO,8BACP,UAAW,IACf,EACQ,EAAc,CAClB,MAAO,YACP,UAAW,cACX,UAAW,CACf,EAMQ,EAAW,CAAE,cAAe,CAChC,OACA,QACA,MACJ,EAAI,KAAK,GAAG,GAEV,MAAO,CACL,KAAM,OACN,SAAU,CACR,EACA,EACA,EAAK,kBACL,EACA,EAAK,cACL,EAAK,oBACL,EAAK,oBACN,EACD,QAAS,KACb,CACA,CC/BA,KAAM3/B,IAAO,2eAEb+lC,GAAKC,iBAAiB,OAAQntD,EAA9B,EAEAinD,GAAOmG,IAAI,CACVC,UAAW,CAAChtC,EAAMrM,IAAS,CAC1B,GAAIA,IAAS,GACNk5C,UAAKG,UAAUhtC,EAAM,CAAEvB,SAAU9K,CAAjC,GAAyCngB,KAChD,CAJS,CAAX,EAWsB,aAAEmE,MAAa,CAC9B,MAAE9D,UAAW+uB,GAAnB,EACM,CAAEpuB,UAASM,iBAAkB0xB,GAAnC,EACM,CAAE9D,eAAgB8gC,GAAxB,EAEM,CAAEhwD,MAAOoQ,EAAS2G,WAAYwlC,GAAS,SAErC,KAAMh9B,CADD,KAAMC,OAAO,gBAAerb,MAAjB,GACNs2C,OACf,CAACt2C,CAAD,CAHyC,EAWtCs1D,EAAcv9C,GAAQ,IAAM,CACjC,GAAI,CAAC9L,EAAgBjL,OACf8K,QAAOypD,GAAiBtpD,CAAD,EACjBH,0BAAM2M,MAAO3M,iBAAMc,QAApB,EACJd,GACL,CAACG,CAAD,CALwB,EAOrBwlD,EAAkB15C,GAAQ,IAAM,CzOlDvC,MyOmDE,KAAMy9C,GAAkBxuD,GAAO4F,SAAS7E,IAAItN,GAAKA,EAAEuF,EAA3B,EACjB,MAACs1D,oBAAa1oD,WAAb0oD,cACLl9C,KAAK,CAAC9e,EAAGF,IAAMo8D,EAAgBzqD,QAAQ3R,CAAxB,EAA6Bo8D,EAAgBzqD,QAAQzR,CAAxB,EADxC,EAEL,CAACg8D,iBAAa1oD,QAAd,CAJ4B,EAMzB6oD,EAAe19C,GAAQ,IACxB,CAAC05C,GACDA,EAAgBt5C,SAAStb,CAAzB,EAA0CA,EACvC40D,EAAgB,GACrB,CAAC50D,EAASy4D,iBAAa1oD,QAAvB,CAJyB,EAMtB8oD,EAAO39C,GAAQ,IAAM,CAC1B,GAAI,CAAC9L,EAAgBjL,OACf20D,QAAoC,GACtCC,MAAc,GAClB3G,GAAOmG,IAAI,CACVS,WAAY,CACX,CACC1lD,KAAM,aACNs9B,MAAO,SACPthC,MAAMwP,EAAK,CzOvEhB,QyOwEaA,cAAIlC,MAAM,WAAV,kBAAwB7d,QAAxB+f,OAAiC,EAJ1C,EAMCm6C,UAAUn6C,EAAK,CACRlC,QAAQkC,EAAIlC,MAAM,oBAAV,EACd,GAAIA,EACI,OACN1Z,KAAM,aACNmW,IAAKuD,EAAM,GACXqrC,OAAQrrC,EAAM,GACd68B,KAAM78B,EAAM,GAbhB,EAkBCw6B,SAAS8hB,EAAO,CACf,GAAI9pD,GAAU8pD,EAAMzf,KAChBt9C,EAAI,CACPF,EAAG,YACHG,EAAG,cACHV,EAAG,eACFw9D,EAAMjR,QACJiR,SAAMjR,SAAW,KACpB74C,GAAUipD,GAAKG,UAAU,OAAQU,EAAMzf,IAA7B,EAAmCz6C,MACzC,mBAEG,QAAO7C,EAAK,WAAUA,KAAO,MAAMiT,UAC3C,EA/BS,EAkCZ+pD,WAAWD,EAAO,CACbA,EAAMh2D,OAAS,WAClB41D,EAASt4C,KAAK04C,CAAd,CArCQ,EAwCV9hB,SAAU,CACTxiC,KAAKE,EAAM8G,EAAO69B,EAAM,CACvB,GAAI3kC,IAAS,KAAa2kC,SACpB2f,QAASx9C,EAAS,WAAUA,KAAW,GACvCvH,EAASS,WAAM8H,MAAM,gBAAkB,mBAAqB,GAC1D,kBAAW9H,KAAQskD,IAAS/kD,KAAUolC,OALtC,EAOT4f,QAAQ5f,EAAM7I,EAAOv3B,EAAKigD,EAAS,CAC9BC,MAAM,GACN,CAACR,EACG,4BAAwBD,EAAS7lD,OAAOnX,GAAKA,EAAEmU,QAAU,CAAjC,EAAoC/E,IAAIpP,CAAK,GzOpHlF,QyOqHaqH,QAAKm2D,EAAQE,KAAK19D,QAAEud,IAAIuD,MAAM,UAAZ,kBAA0B,KAA1B9gB,OAAgC,GAAI,CAAE29D,OAAQ,GAA3D,EACLhgB,EAAO39C,EAAE29C,KAAKzrC,WAAW,IAAK,EAAvB,EACb,MAAQ,iBAAgB7K,MAAOs2C,YAHD,GAI5B9sC,KAAK,EAJuB,SAKjB,MAETxJ,QAAKm2D,EAAQE,KAAKngD,CAAb,EACLzE,EAAQ,mBAAkBzR,qBAAsBnD,KAAWmD,MAAOmvB,YAChE,SAAEinC,MAAQ3oB,KAASh8B,IAAO6kC,OAAU7I,IAC5C,CApBQ,EAxCX,EA+DMyd,QAAQj/C,EAAQD,UAAUC,EAAQlB,QAAQ,MAAO,CAAvB,EAA4B,CAA9C,EACRwrD,EAAmBC,GAAetL,EAAOuK,CAAR,EAChCxG,UAAOsH,EAAkB,CAAE15D,QAAS,OAA3C,GACE,CAAC44D,EAAcxpD,CAAf,CAtEiB,EAwEd,CAACT,EAAMqK,GAAW4gD,GAAxB,EAEMC,EAAkBxjD,GAAY,IAAM,CACrC,IAACwiD,EAAM,OACX,KAAMQ,GAAU5qC,SAASqrC,cAAe,aAAYnrD,EAAKR,MAAM,CAAX,IAApC,EAChB,GAAIkrD,EAAS,CACNjd,QAAMid,EAAQ1Z,wBAAwBvD,IAAM74C,OAAOw2D,QACzDx2D,OAAOy2D,SAAS,CAAE5d,IAAKA,EAAM,GAAI6d,SAAU,SAA3C,CACA,GACC,CAACpB,EAAMlqD,CAAP,CAPgC,EASnCvL,GAAU,IAAM,CACA,GACb,GAACy1D,IAAS10D,OAAWwK,CAArB,CAFM,EAIHurD,QAAoB7jD,GAAY,CAACna,EAAkB,CACpD,OAAImY,iBAAkB8lD,kBAAkB,OAC5C,KAAMC,GAAa,IAAMl+D,EAAEmY,OAAOlR,GAAG+J,QAAQ,UAAW,EAA/B,EACXlN,IAAS,GAAO,EAAjB,EACbgZ,EAAQohD,CAAD,EACHA,IAAezrD,GACH,GAEd,GAACkrD,EAAiBlrD,EAAM3O,CAAxB,CARkC,EAU/B,CAACq6D,EAAaC,GAAgB5D,GAApC,EAEM6D,EAAUlkD,GAAY,IAAM,CAC3BtI,QAAO,GAAEa,SAASgoD,iBAAiBzzD,cAAenD,IAC9C2mD,oBAAUC,UAAU74C,CAA9B,EACY,KACV,CAAC5K,EAAInD,CAAL,CAJwB,EAMrBw6D,EAAankD,GAAY,CAAC+E,EAAgB,CAC/CrM,GAAO,iBAAgBqM,GAAlB,CADwB,EAE3B,CAF2B,GAIxB,CAACq/C,GAAcrlD,EAAS7R,OAAOyzD,WAAa,GAArB,EAEtB,iBACN,mBAAK,MAAM,kBACV,mBAAK,MAAM,aACV,iBAAG,MAAM,eAAe,KAAK,WAC3B5yD,aAAQo4C,WACT94C,UAAOrE,WAAO,YAAD,EAFd,KAIA0V,OAAG,MAAM,eAAe,KAAK,aAC3B8c,aAAMu+B,SACP1sD,UAAOrE,WAAO,UAAD,EAFd,KAIAqE,SAAK,MAAM,qBATZ,EAUCA,EAAC,GAAD,CAAK,KAAM22D,EAAc,QAAU,OAAQ,MAAOh7D,EAAO,OAAD,EAAW,QAASk7D,EAAS,OAAQF,EAAa,QAASh7D,EAAOg7D,EAAc,SAAW,YAA1B,EAAyC,MAAM,cAAxK,EACCzF,GAAmBlxD,EAAC,GAAD,CAAiB,MAAOk1D,EAAc,QAAShE,EAAiB,SAAUt0D,EAX/F,KAaEm4D,kBAAa39C,OAAQ29C,EAAY39C,KAAK3O,OAAS,GAAMzI,SAAK,MAAM,cAAX,SACrD+0D,EAAY39C,KAAK5P,IAAI,CAACkQ,EACtB1X,EAAC,GAAD,CAAO,MAAO0X,EAAK,OAAnB,GAA0B,QAAS,IAAMo/C,EAAWp/C,CAAD,EADnD,GAfH,EAmBEy9C,GAAQ9jD,gBACRrR,EAAC,GAAD,CAAI,GAAG,QAAQ,KAAM+2D,EAAa,QAAU,OAA5C,EACA/2D,SAAK,MAAM,gBAAgB,wBAAyB,CAAEyuD,OAAQ0G,CAA9D,EAAsE,QAASqB,CAFvE,GAGRx2D,EAAC,GAHO,KAnBV,EADM,GA0BNA,EAAC,GA1BK,KAAP,CA4BA,CChMM,YAAgB,GAAW,CAC3B,MAAErE,UAAW+uB,GAAnB,EACM,CAAEpuB,UAASM,iBAAkB0xB,GAAnC,EACS3yB,KAAO,cAAD,CAAP,EAEF,MAACqP,EAAQ+hB,GAAarb,EAAS,EAAD,EAC9B,CAAC6F,EAAYszC,GAAaiE,GAAhC,EAEM,CAACvgC,EAAeC,GAAmB9c,EAAS,EAAD,EAE3CslD,EAAkBx/C,GAAQ,IAC3B+W,IAAkB,GAAcq8B,GAAP,EACtBA,GAAYr7C,SAAOo7C,CAAS,G1OrBrC,M0OsBUA,WAAMt+C,WAANs+C,cAAgB/yC,SAAStb,EAAzB,CADD,EAGL,CAACA,EAASiyB,CAAV,CAL4B,EAOzB0oC,EAAiBz/C,GAAQ,IAAM,CACpC,KAAMvB,GAAQjL,EAAOyM,MAAM,GAAb,EAAkBjQ,IAAIpN,CAAKA,IAAE8R,KAAF,EAASyiB,aAApC,EAAmDpf,OAAOnV,CAAKA,IAAEqO,OAAS,CAA1E,EACPuuD,SAAgBznD,OAAOo7C,CAAS,G1O5BzC,M0O6BO,IAACpzC,EAAW2V,MAAMxV,I1O7BzB,M0O6BgCizC,WAAMvzC,OAANuzC,cAAY/yC,SAASF,GAA7C,EACG,SAEFhM,QAAUi/C,MAAMvzC,OAANuzC,cAAY1hD,KAAK,MAAO,IAAM0hD,EAAMzyC,MAAMyW,cACnD1Y,SAAMiX,MAAM9yB,CAAK,EACnBA,EAAEgR,WAAW,GAAb,EACIhR,EAAEqO,SAAW,GAAK,CAACiD,EAAQkM,SAASxd,EAAEqQ,MAAM,CAAR,CAAjB,EAEpBiB,EAAQkM,SAASxd,CAAjB,CAJD,EALD,CAYL,GAAC48D,EAAiBhsD,EAAQuM,CAA1B,CAd2B,EAgBvB,iBACN,mBAAK,MAAM,mBACV,mBAAK,MAAM,aAAX,UACCvX,EAAC,GAAD,CAAW,MAAM,6BAA6B,YAAarE,EAAO,eAAD,EAAmB,MAAOqP,EAAQ,SAAU+hB,EAD9G,EAEC/sB,EAAC,GAAD,CAAiB,MAAOuuB,EAAgBjyB,EAAUmE,OAAW,SAAUvG,CAAK,GAAC0C,EAAc1C,CAAD,EAAKs0B,EAAgB,EAAD,CAA9G,EAAuH,OAAvH,GAA8H,MAAO,IAAMA,EAAgB,EAAD,EAF3J,KAICjX,EAAW9O,OAAS,GAAKzI,SAAK,MAAM,cAAX,SACxBuX,EAAW/P,IAAIkQ,GAAO1X,EAAC,GAAD,CAAO,MAAO0X,EAAK,QAAS,IAAMmzC,EAAUnzC,CAAD,EAAjE,GADwB,EAG1B1X,SAAK,MAAM,cAAX,SACEg3D,EAAgBvuD,SAAW,EAAIzI,MAC/B,mBAAM,MAAM,OAAQrE,WAAO,2BAAD,EAA1B,CAD+B,GAE1Bs7D,EAAexuD,SAAW,EAAIzI,MACnC,mBAAM,MAAM,OAAQrE,WAAO,yBAAD,EAA1B,EADK,EAEAs7D,EAAezvD,IAAI1O,GACxBkH,EAAC,GAAD,CAAW,GAAIlH,EAAE2G,GAAI,aAAwB,YADxC,GAbR,EADM,GAmBNO,EAAC,GAnBK,KAAP,CAqBA,CCvDD,KAAMk3D,IAAgB,EAChBC,GAAgB,EAKf,YAAc,GAAW,CACzB,MAAEx7D,UAAW+uB,GAAnB,EACS/uB,KAAO,YAAD,CAAP,EAEFy7D,QAAcntC,GAAc,oBAAD,EAE1B,iBACN,kBAAK,MAAM,YACV,mBAAK,MAAM,aACV,mBAAK,MAAM,cAAX,UACCjqB,EAAC,GADF,IAEEo3D,GAAep3D,EAAC,GAFlB,IAGCA,EAAC,GAHF,IAIEo3D,GAAep3D,EAAC,GAJlB,IAKCA,EAAC0hB,GALF,IAME01C,GAAep3D,EAAC,GANlB,IADD,GASE,CAACo3D,GAAe/lD,SAAK,MAAM,cAC3B,YAAC,GAAD,IACArR,EAAC,GAFe,IAGhBA,EAAC,GAHe,KATlB,KAeAA,EAAC,OACDA,EAAC,GAjBF,OADD,CAqBA,CAED,aAA6B,CACtB,MAAErE,UAAW+uB,GAAnB,EACA,MAAOrZ,GAAC,GAAD,CAAW,MAAO1V,EAAO,oBAAD,EAAwB,KAAK,eAArD,UACNqE,EAAC,GAAD,CAAe,QAAf,GAAuB,GAAG,aADpB,EAENA,EAAC,GAAD,CAAe,QAAf,GAAuB,GAAG,cAFpB,EAGNA,EAAC,GAAD,CAAe,QAAf,GAAuB,GAAG,YAHpB,EAINA,EAAC,GAAD,CAAU,MAAOrE,EAAO,UAAD,EAAc,KAAK,aAAa,UAAU,WAJ3D,EAKNqE,EAAC,GAAD,CAAU,MAAOrE,EAAO,gBAAD,EAAoB,KAAK,eAAe,UAAU,cALnE,GAAP,CAOA,CAED,aAA8B,CACvB,MAAEA,UAAW+uB,GAAnB,EAEM2sC,EAAY7/C,GAAQ,IAAM,CAC/B,KAAMna,GAAoB,GACrB,SAAMoC,KAAMglB,IAAM6B,oBAAN,EAA4BwX,UAC5C,CAAKzgC,CAAQua,SAASnY,CAAjB,GACJpC,EAAQyf,KAAKrd,CAAb,EAGKpC,SAAQoN,MAAM,EAAG0sD,EAAjB,CAPiB,EAQtB,CARsB,GAUzB,MAAIE,GAAU5uD,OAASyuD,GAAsBl3D,EAAP29C,OAE/B39C,EAAC,GAAD,CAAW,MAAOrE,EAAO,mBAAD,EAAxB,SACL07D,EAAU7vD,IAAIjP,GAAKyH,EAAC,GAAD,CAAe,QAAf,GAAuB,GAAIzH,EAA9C,GADF,CAGA,CAED,aAAkB,CACX,MAAEoD,UAAW+uB,GAAnB,EAEA,MAAOrZ,GAAC,GAAD,CAAW,MAAO1V,EAAO,QAAD,EAAY,KAAK,WAAW,UAAU,cAA9D,UACNqE,EAAC,GAAD,CAAW,QAAX,GAAmB,GAAG,2BADhB,EAENA,EAAC,GAAD,CAAW,QAAX,GAAmB,GAAG,eAFhB,GAAP,CAIA,CAED,aAAiB,CACV,MAAErE,UAAW+uB,GAAnB,EAEA,MAAOrZ,GAAC,GAAD,CAAW,MAAO1V,EAAO,OAAD,EAAxB,UACNqE,EAAC,GAAD,CAAU,MAAM,mBAAmB,KAAK,SACvC,KAAK,mCACL,KAAK,mCAHA,EAINA,EAAC,GAAD,CAAU,MAAM,mBAAmB,KAAK,SACvC,KAAK,WACL,KAAK,gDANA,EAONA,EAAC,GAAD,CAAU,MAAM,qBACf,KAAK,qCACL,KAAK,4CATA,GAAP,CAWA,CAED,aAAoB,CACb,MAAErE,UAAW+uB,GAAnB,EAEM,CAAEpvB,MAAO+Q,GAAawrC,GAASl8B,GAAe,EAAhB,EAC9B27C,EAAU9/C,GAAQ,IAAMnL,iBAAUvB,KAAK5Q,GAAKA,EAAEsF,OAAS,WAAY,CAAC6M,CAAD,CAAlD,EAEvB,MAAOrM,GAAC,GAAD,CAAW,MAAOrE,EAAO,6BAAD,EAAiC,KAAK,aAAa,UAAU,cAArF,SACJ0Q,kBAAW,KAAMirD,GAAYjmD,gBAC7BhF,EAAS,GAAG5M,KAAO63D,EAAQ73D,IAC3BO,EAAC,GAAD,CAAU,MAAOqM,EAAS,GAAGuD,KAAM,KAAO,iBAAgBvD,EAAS,GAAG5M,KAAM,KAAM9D,EAAO,0BAAD,EAF3D,EAI9BqE,EAAC,GAAD,CAAU,MAAOs3D,EAAQ1nD,KAAM,KAAO,iBAAgB0nD,EAAQ73D,KAAM,KAAM9D,EAAO,yBAAD,EAJlD,KADhC,CAQA,CAED,aAAqB,CACd,MAAEA,UAAW+uB,GAAnB,EAEM6sC,EAAattC,GAAc,oBAAD,EAE1B,CAAE3uB,MAAOogB,GAAYm8B,GAAS2X,GAAiB,EAAlB,EAC7BgI,EAAgBhgD,GAAQ,IAAMkE,iBAAS7D,KAAK,CAAC9e,EAAGF,IAAMA,EAAEgjB,MAAQ9iB,EAAE8iB,OAAOpR,MAAM,EAAG,GAAI,CAACiR,CAAD,CAA/D,EAE7B,MAAO1b,GAAC,GAAD,CAAW,MAAOrE,EAAO,WAAD,EAAe,KAAK,cAAc,UAAU,aAApE,SACL67D,iBAAehwD,IAAIwW,GAAUhe,EAAC,GAAD,CAAgB,QAAS,CAACu3D,EAAY,SAAnE,GADF,CAGA,CCxHM,YAAkB,GAAW,CAC7B,MAAE57D,UAAW+uB,GAAnB,EACS/uB,YAAO,gBAAD,CAAP,EAED0V,UACN,mBAAK,MAAM,YAAX,SACCrR,EAAC,GAAD,CAAe,UAAWwpB,CAAOA,IAAI0E,UAAYztB,OAAjD,EAFK,EAINT,EAAC,GAAD,CAAQ,OAAQ,GAJV,GAAP,CAMA,CCLM,YAAgB,GAAW,CAC3B,MAAErE,UAAW+uB,GAAnB,EACM,CAAEpuB,UAASM,iBAAkB0xB,GAAnC,EACS3yB,KAAO,cAAD,CAAP,EAER,KAAM,CAACgxD,EAAQ8K,GAAa/lD,EAAuDjR,MAA/C,EACpCf,GAAU,IAAM,CACd,CAAY,UACNitD,QAAS,KAAM,yEACrB8K,EAAU,IAAM,CAACl6B,EAAyB,GAAIovB,GAAO+K,KAAKn6B,CAAhB,CAAjC,KAHF,EAKN,CALM,GAOH,MAAEjiC,MAAOwwD,EAAQ94C,SAAU6kC,GAAS,SAClC,KAAM8f,IAAYr7D,CAAD,EACtB,CAACA,CAAD,CAFsC,EAGnCs7D,EAAYpgD,GAAQ,IAAMzN,OAAOC,KAAK8hD,UAAU,EAAtB,EAA2B,CAACA,CAAD,CAAlC,EAEnB,CAAC9gD,EAAQ+hB,GAAarb,EAAS,EAAD,EAC9B,CAACmmD,EAASC,GAAcpmD,EAAwB,CAAhB,GAChCqmD,EAAY,IAAM,CACvBD,EAAW,CAAC,CAAEr4D,GAAIqB,GAAN,EAAe8rD,MAAO5hD,EAAQ6hD,MAAO,EAAGC,MAAO,EAAGC,OAAQ,GAAK,GAAG8K,CAAnE,CAAD,GAELG,EAAa,CAACv4D,EAAe,CAACic,EAAkC,CACrEo8C,EAAWD,EAAQrwD,IAAI/O,CAAKA,IAAEgH,KAAOA,EAAK,SAAKhH,GAAMijB,GAAYjjB,CAAtD,CAAD,GAELw/D,EAAe,CAACx4D,EAAe,IAAM,CAC1Cq4D,EAAWD,EAAQtoD,OAAO9W,GAAKA,EAAEgH,KAAOA,CAA7B,CAAD,GAGL,CAACytD,EAAagL,GAAkBxmD,EAAS,CAAD,EACxCymD,EAAU,IAAM,CACrBD,EAAehL,EAAc,CAAf,GAGTxT,EAAW7oC,GAA0B,IAApB,EACjBunD,EAAmB,IAAM,CAC9B,GAAI,CAAC1e,EAAS5oC,QAAS,OACvB,KAAMunD,GAAWR,EAAQtuC,KAAK9wB,CAAKA,IAAEo0D,MAAQ,CAA5B,EACXnhD,EAAUmsD,EACdhgD,KAAK,CAAC9e,EAAGF,IAAME,EAAE8zD,MAAQh0D,EAAEg0D,KADb,EAEdrlD,IAAI/O,GAAM,GAAE4/D,EAAY,qCAAoC5/D,EAAEo0D,aAAe,yBAAyBp0D,EAAEm0D,yBAAyBn0D,EAAEs0D,UAAUt0D,EAAEq0D,OAFjI,EAGd7jD,KAAK;AAAA,CAHS,EAIhBywC,EAAS5oC,QAAQsZ,aAAa,OAAQ,iCAAmC1e,EAAU,KAAnF,EACSoF,UAAQsZ,aAAa,WAAY,mBAA1C,EACAsvB,EAAS5oC,QAAQuvC,OAAjB,EAGM,iBACLrtC,aAAShT,EAAC,GAAD,CAAY,OAAZ,GACT43D,EAAUnvD,OAAS,GAAK4I,MACxB,mBAAK,MAAM,kBACV,mBAAK,MAAM,qBAAX,UACCrR,EAAC,GAAD,CAAW,MAAM,6BAA6B,KAAK,aAAa,YAAarE,EAAO,eAAD,EAClF,MAAOqP,EAAQ,SAAU+hB,EAAW,QAASgrC,EAF/C,EAGC/3D,EAAC,GAAD,CAAK,KAAK,OAAO,QAASrE,EAAO,kBAAD,EAAsB,MAAM,YAAY,QAASo8D,EAHlF,EADD,GAMEF,EAAQpvD,OAAS,GAAKzI,EAAC,GAAD,CAAK,KAAK,OAAO,MAAQrE,EAAO,iBAAD,EAAqB,MAAM,kBAAkB,QAASw8D,EAArF,EACvBn4D,SAAK,MAAM,SAPZ,EAQCA,EAAC,GAAD,CAAK,KAAK,WAAW,MAAOrE,EAAO,UAAD,EAAc,QAASA,EAAO,0BAAD,EAA8B,WAAW,KAAK,MAAM,kBAAkB,QAASy8D,EAR/I,EASCp4D,EAAC,GAAD,CAAiB,MAAO1D,EAAS,SAAUM,EAT5C,KAWAoD,SAAK,MAAM,SAAX,SACE8rD,GAAUa,GAAUkL,EAAQrwD,IAAI/O,GAChCuH,EAAC,YAA2BvH,IAASk0D,SAAQb,SAAQoB,cAAe,OAAQ8K,EAAWv/D,EAAEgH,EAAH,EAAQ,SAAUw4D,EAAax/D,EAAEgH,EAAH,IAAlGhH,EAAEgH,EAApB,CADoB,EADtB,EAKAO,OAAG,IAAK05C,EAAU,MAAM,iBAAxB,EACA15C,cAAU,GAAG,aAAb,SACE43D,EAAUpwD,IAAI9O,GAAKsH,YAAgB,MAAOtH,CAAvB,EAAaA,CAAb,CAAnB,EAnBsB,GAFnB,EAwBNsH,EAAC,GAAD,CAAQ,OAAQ,GAxBV,GAAP,CA0BA,CC5EM,YAAkB,GAAW,CAC7B,MAAErE,UAAW+uB,GAAnB,EAEM,CAAEpvB,MAAO+Q,EAAU2G,SAAU6kC,GAASl8B,GAAe,EAAhB,EAErC,CAAC28C,GAAchhD,GAAe,IAAD,EAC7BqnC,aAAwB,IAAI7zC,KAAK5Q,CAAKA,IAAEuF,KAAO64D,CAApC,EAGhB3Z,KAAY,aAAYA,EAAS/uC,OAAS,oBAC1C+uC,EAAW,GAAKl+C,OAChBk+C,EAAW,uBAAyBl+C,MAH7B,EAKR,KAAM83D,GAAc5Z,GAAY6Z,GAAiBnsD,UAAY,GAAIsyC,EAAU,EAA3B,EAC1C8Z,EAAkB9Z,GAAY6Z,GAAiBnsD,UAAY,GAAIsyC,EAAU,CAA3B,EAE7C,iBACL3rC,aAAShT,EAAC,GAAD,CAAY,QAAZ,EACVA,SAAK,MAAM,YAAX,SACEs4D,EAAajnD,MACb,mBAAK,MAAM,aAAX,UACCrR,EAAC,GAAD,CAAS,KAAK,aAAa,KAAK,aAAa,MAAOrE,EAAO,cAAD,EAD3D,EAECqE,EAAC,GAAD,CAAS,KAAMy4D,EAAmB,iBAAgBA,EAAgBh5D,KAAOgB,OACxE,KAAK,aAAa,MAAO9E,EAAO,mBAAD,EAHjC,EAICqE,EAAC,GAAD,CAAS,KAAMu4D,EAAe,iBAAgBA,EAAY94D,KAAOgB,OAChE,KAAK,cAAc,MAAO9E,EAAO,eAAD,EAAmB,QAAO,GAL5D,GADa,EAQbqE,EAAC,GAAD,CAAe,GAAIs4D,EAAY,QAAS3Z,EAR3B,KASR3+C,eACLA,EAAC,GAAD,CAAa,WAAoB,KAAMP,GAAO,iBAAgBA,IAAM,WACnEO,EAAC,GAAD,CAAS,KAAK,aAAa,KAAK,aAAa,MAAOrE,EAAO,4BAAD,EAA1D,EADD,EADK,EAZD,EAkBNqE,EAAC,GAAD,CAAQ,OAAQ,GAlBV,GAAP,CAoBA,CAED,YAA0BqM,EAAyByE,EAAsBylB,EAAgB,CAExF,KAAMmiC,GAAcC,CADCtsD,CAAS2W,UAAU9oB,GAAKA,EAAEuF,KAAOqR,EAAQrR,EAAzC,EACc82B,EAC/BmiC,OAAc,GAAKA,GAAersD,EAAS5D,QAGxC4D,SAASqsD,EAChB,CChDM,YAAkB,GAAW,CAC7B,MAAE/8D,UAAW+uB,GAAnB,EACS/uB,YAAO,gBAAD,CAAP,EAED0V,UACN,mBAAK,MAAM,qBACV,mBAAK,MAAM,aAAX,UACCA,EAAC,GAAD,CAAW,MAAO1V,EAAO,oBAAD,EAAxB,UACCqE,EAAC,GAAD,CAAe,QAAf,GAAuB,GAAG,YAD3B,EAECA,EAAC,GAAD,CAAe,QAAf,GAAuB,GAAG,iBAF3B,EAGCA,EAAC,GAAD,CAAe,QAAf,GAAuB,GAAG,0BAH3B,EAICA,EAAC,GAAD,CAAe,QAAf,GAAuB,GAAG,8BAJ3B,EAKCA,EAAC,GAAD,CAAe,QAAf,GAAuB,GAAG,0BAL3B,GADD,EAQCqR,EAAC,GAAD,CAAW,MAAO1V,EAAO,QAAD,EAAY,KAAK,yBAAyB,UAAU,cAA5E,UACCqE,EAAC,GAAD,CAAW,GAAG,2BADf,EAECA,EAAC,GAAD,CAAW,GAAG,kBAFf,GARD,GADD,EAcCA,EAAC,GAAD,CAAe,UAAWwpB,GAAOA,C/OzBpC,M+OyBoCA,WAAIpS,OAAJoS,cAAU5R,SAAS,YAAnB,CAdlC,EADM,GAiBN5X,EAAC,GAjBK,KAAP,CAmBA,CCpBqB,cACf44D,QAAc,CAACpgE,EAA0B,CAC9CqH,OAAOwtB,cAAc,GAAIwrC,aAAY,cAAhB,CAArB,EAEAhnD,WAAW,IAAMhX,GAAUW,SAASkP,GAASlS,EAAE6R,GAAH,CAA3B,CAAP,GAGJ,uBACNrK,EAAC,GADK,IAENqR,EAAC,GAAD,CAAQ,SAAUunD,EAAlB,UACC54D,EAAC,GAAD,CAAM,KAAK,IADZ,EAECA,EAAC,GAAD,CAAY,KAAK,cAFlB,EAGCA,EAAC,GAAD,CAAU,KAAK,YAHhB,EAICA,EAAC,GAAD,CAAU,KAAK,YAJhB,EAKCA,EAAC,GAAD,CAAQ,KAAK,UALd,EAMCA,EAAC84D,GAAD,CAAW,KAAK,aANjB,EAOC94D,EAAC,GAAD,CAAU,KAAK,YAPhB,EAQCA,EAAC+4D,GAAD,CAAQ,KAAK,UARd,EASC/4D,EAAC,GAAD,CAAO,KAAK,cATb,EAUCA,EAAC,GAAD,CAAW,QAAO,GAVnB,GAFM,GAAP,CAeA,CCzBD,aAAgB,CACf,MACCA,GAAC,GAAD,UACCA,EAAC,GAAD,UACCA,EAAC,GAAD,UACCA,EAAC,GAAD,UACCA,EAAC,GAAD,UACCA,EAAC,GAAD,UACCA,EAAC,GAAD,IADD,EADD,EADD,EADD,EADD,EAFF,CAeA,CAEDg5D,GAAOh5D,EAAC,GAAD,IAAU+qB,SAASvW,IAApB","names":["p","n","l","u","i","t","o","r","f","e","c","s","y","k","b","g","a","j","z","d","x","P","N","M","A","H","$","T","I","_","O","w","L","C","h","v","S","q","m","rank","toChildArray","this$1","assign","cloneElement","Component","createElement","Analytics","ID_SITE","ID_GENERATOR","category","action","label","ga","dimension","index","value","page","pageview","generatorEvent","method","locale","DIM_LANGUAGE","gtag","setLocale","prev_locale","changeLocale","theme","DIM_THEME","setTheme","prev_theme","changeTheme","version","DIM_VERSION","setVersion","selected_version","setSelectedVersion","prev_version","changeVersion","file_type","DIM_GENERATOR","setGenerator","prefers_color_scheme","DIM_PREFERS_COLOR_SCHEME","setPrefersColorScheme","tree_view_mode","setTreeViewMode","history","event","resetGenerator","legacyMethod","undoGenerator","redoGenerator","file_name","loadPreset","openPreset","snippet_id","data_size","compressed_size","compression_rate","createSnippet","openSnippet","copyOutput","downloadOutput","showOutput","hideOutput","showPreview","hidePreview","projects_count","project_size","showProject","hideProject","saveProjectFile","deleteProjectFile","renameProjectFile","deleteProject","Fragment","jsx","jsxs","jsxRuntime.jsx","jsxRuntime.jsxs","jsxRuntime.Fragment","type","id","useEffect","getElementById","remove","window","ethicalads","load","_jsx","icon","active","class","clazz","tooltip","tooltipLoc","onClick","disabled","undefined","Octicon","Path_1","Errors_1","escapeString","hexId","DataModel_1","require$$0","require$$1","utils_1","require$$2","BooleanNode_1","Node_1","ListNode_1","SwitchNode_1","MapNode_1","require$$3","require$$4","Reference_1","StringNode_1","isEnum","this","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","MAX_BITS","D_CODES","BL_CODES","LENGTH_CODES","LITERALS","L_CODES","HEAP_SIZE","END_BLOCK","MAX_BL_BITS","REP_3_6","REPZ_3_10","REPZ_11_138","Buf_size","Z_DEFAULT_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_DEFAULT_STRATEGY","Z_NO_FLUSH","Z_PARTIAL_FLUSH","Z_FULL_FLUSH","Z_FINISH","Z_OK","Z_STREAM_END","Z_NEED_DICT","Z_STREAM_ERROR","Z_DATA_ERROR","Z_BUF_ERROR","_dist_code","Tree","MAX_MEM_LEVEL","DEF_MEM_LEVEL","STORED","Config","PRESET_DICT","INIT_STATE","BUSY_STATE","FINISH_STATE","Z_DEFLATED","STORED_BLOCK","STATIC_TREES","DYN_TREES","MIN_MATCH","MAX_MATCH","MIN_LOOKAHEAD","smaller","ZStream","Deflate","getMaximumCompressedSize","Z_MEM_ERROR","LEN","LENEXT","DIST","DISTEXT","COPY","LIT","TYPE","LENS","TABLE","CODES","DONE","BAD","mark","Inflate","config","table","concat","createKeys","createCodec","getDataView","getOptionValue","setUint32","configureWebWorker","common","isObject","YAMLException","Mark","Type","Schema","map","json","core","_require","require","_hasOwnProperty","_toString","DEFAULT_SAFE_SCHEMA","DEFAULT_FULL_SCHEMA","State","loader","dumper","jsYaml","deprecated","obj","toString","padStart","length","arr","Uint8Array","crypto","getRandomValues","Array","from","decToHex","join","BigInt","Math","floor","random","Number","MAX_SAFE_INTEGER","replace","model","seed","dimensions","get","Path","set","Object","keys","forEach","abs","imul","charCodeAt","url","replaceAll","searchIndex","indexOf","slice","cleanUrl","trimmedUrl","getPath","generators","find","path","search","hash","location","pathname","startsWith","route","source","data","yaml","substring","content","cursor","start","end","findMatchingClose","vStart","sub","vEnd","trim","key","versionConfig","versions","pack_format","depth","iteration","close","open","console","warn","str","hashString","color","isArray","hex","num","parseInt","max","min","lerp","Error","message","deepClone","rfdc","constructor","deepEqual","valueOf","prototype","hasOwnProperty","call","BiMap","forward","Map","backward","getA","getB","getOrPut","defaultValue","computeIfAbsent","newValue","file","predicate","buffer","File","arrayBuffer","entries","reader","zip","Blob","getEntries","Promise","all","filter","directory","filename","writer","getData","name","add","getter","existing","getWeight","totalWeight","entry","nextInt","large","larger","doSelect","placeholder","dataList","onChange","onInput","target","ref","useRef","current","select","dataListId","stopPropagation","link","swapped","href","_jsxs","cooldown","invert","initial","setActive","useState","timeout","clearTimeout","setTimeout","fn","inputs","initialState","loading","state","callback","useAsyncFn","refresh","AsyncCancel","Symbol","setState","isMounted","lastCallId","useCallback","args","callId","prev","then","error","size","draw","onDrag","onHover","onLeave","canvas","dragStart","dragRequest","dragPending","dragBusy","onMouseDown","offsetX","offsetY","onMouseMove","clientWidth","clientHeight","dx","dy","cancelAnimationFrame","requestAnimationFrame","onMouseUp","onMouseLeave","addEventListener","body","removeEventListener","redraw","redrawCount","ctx","getContext","width","height","img","getImageData","ownCount","putImageData","LOSE_FOCUS","hider","setHash","changeHash","newHash","parse","stringify","raw","localStorage","getItem","setter","removeItem","setItem","query","prefers","setPrefers","matchMedia","matches","mediaQuery","invalidated","listener","addListener","removeListener","getValue","param","URLSearchParams","setValue","changeValue","params","delete","TAG_KEY","TAG_SEP","tags","setTags","useSearchParam","activeTags","useMemo","split","tag","force","includes","sort","props","relative","children","useFocus","title","overlay","onDismiss","stackVisible","setStackVisible","stack","setStack","line","mapStackTrace","mapped","mappedStack","encodeURIComponent","info","ARTICLE_PREFIX","ARTICLE_OVERRIDES","override","match","CACHE_NAME","CACHE_LATEST_VERSION","CACHE_PATCH","latestVersion","__LATEST_VERSION__","mcmetaUrl","mcmetaTarballUrl","changesUrl","tarball","dynamic","applyPatches","deleteMatching","versionId","collectionTarget","blockStateTarget","JSON","validateCache","fetchRegistries","fetchBlockStateMap","debug","cachedFetch","mcmeta","register","properties","default","registry","res","fetch","models","uvMapping","atlas","fetchAllPresets","loadImage","src","image","Image","onload","crossOrigin","lang","changes","fetchVersions","versionMap","order","REFRESHED","Set","decode","cache","caches","cacheResponse","has","fetchAndCache","ok","fetchResponse","fetchData","fetchClone","clone","put","promises","request","push","PATCHES","patch","toFixed","ID","schemas","collections","Reference","RawReference","bind","StringNode","RawStringNode","Tag","ChoiceNode","node","validator","pool","allowTag","change","ListNode","choiceContext","ObjectNode","area_condition","position_predicates","Opt","growth_chance","NumberNode","growth_for_face","direction","enum","weight","integer","growth","owners","replacing_target","target_self","BooleanNode","destroy_target","context","Switch","Case","generate_if_not_too_many","radiusX","radiusY","radiusZ","requiredAmount","yOffset","must_have","must_not_have","neighbor_based_generation","required_amount","directions","block","above_block","Name","Properties","MapNode","predicate_type","biome_match","biomes","day_test","day","nand","predicates","precipitation_test","precipitation","temperature_range","use_local_pos","block_state","probability","blocks","fluid","disableSwitchContext","initImmersiveWeathering","VersionIds","DEFAULT_VERSION","Versions","Models","versionGetter","CachedDecorator","CachedFeature","CachedCollections","mcschema","getCollections","blockStates","getSchemas","initPartners","versionData","getVersion","schemaName","schema","DataModel","wrapLists","reset","validate","err","minVersionId","maxVersionId","findIndex","minVersion","maxVersion","API_PREFIX","ShareCache","jsonData","show_preview","lz","compressToBase64","snippet","fetchApi","compressed","rate","decompressFromBase64","headers","errors","INDENTS","tabs","minified","commentJson","FORMATS","dump","flowLevel","indent","format","Store","getFormat","getIndent","ID_LANGUAGE","ID_THEME","ID_VERSION","ID_INDENT","ID_FORMAT","ID_HIGHLIGHTING","ID_SOUNDS_VERSION","ID_PROJECTS","ID_BACKUPS","ID_PROJECT_PANEL_OPEN","ID_OPEN_PROJECT","ID_TREE_VIEW_MODE","ID_GENERATOR_HISTORY","getLanguage","getTheme","getVersionOrDefault","getHighlighting","getSoundsVersion","projects","DRAFT_PROJECT","getProjects","backups","getBackup","getProjectPanelOpen","getOpenProject","getTreeViewMode","getGeneratorHistory","language","setLanguage","setIndent","setFormat","highlighting","setHighlighting","setSoundsVersion","setProjects","setBackup","setProjectPanelOpen","projectName","setOpenProject","mode","visitGenerator","Locale","createContext","Locales","fallback","English","en","resolveLocaleParams","langConfig","languages","code","partners","useContext","localize","newLang","loadLocale","namespace","files","FilePatterns","RegExp","Project","project","createProject","changeProject","updateProject","updateFile","openFile","closeFile","setProjectName","fileId","setFileId","changeProjects","edits","newId","exists","some","gen","biomeColors","setBiomeColor","setBiomeColors","useLocalStorage","biome","Theme","actualTheme","prefersLight","useMediaQuery","prefersDark","documentElement","setAttribute","newTheme","VERSIONS_IN_TITLE","Title","changeTitle","suffix","useLocale","setTitle","versionIds","titleSuffix","titleVersions","document","VERSION_PARAM","Version","changeTargetVersion","targetVersion","newVersion","store","updateSearch","accept","fileUpload","onUpload","onDrop","preventDefault","dataTransfer","donate","heart","mark_github","component","evt","onKeyDown","onEnter","onCancel","autofocus","displayName","TextInput","BaseInput","NumberInput","RangeInput","values","onSelect","searchPlaceholder","noResults","setSearch","results","terms","every","MODALS_KEY","addCurrentModals","dispatchEvent","Event","bubbles","diff","newModals","currentModals","getAttribute","removeAttribute","onClose","useProject","doSave","unwrapLists","minimal","partner","Icons","checkVersion","noPath","useVersion","versionFilter","setVersionFiler","versionedGenerators","filteredGenerators","toLowerCase","HASH","COMMENT","crypt","cryptModule","md5","md5Module","NoiseChunkGenerator","glMatrix.ARRAY_TYPE","glMatrix.EPSILON","vec3.create","vec3.transformMat4","mat4.create","mat4.identity","mat4.translate","mat4.rotateX","mat4.rotateY","mat4.rotateZ","mat4.scale","vec3.fromValues","vec3.subtract","vec3.cross","vec3.normalize","mat4.rotate","glMatrix.toRadian","vec3.negate","Renderer","mat4.perspective","mat4.ortho","DYNAMIC_REGISTRIES","Deepslate","deepslate19","deepslateCache","chunksCache","biomeCache","presetCache","loadVersion","loadedVersion","applyProjectData","loadingVersion","loadingPromise","doLoadVersion","cachedDeepslate","Registry","REGISTRY","Identifier","WorldgenRegistries","NOISE","NoiseParameters","fromJson","DENSITY_FUNCTION","DensityFunction","clear","loadChunkGenerator","settings","biomeState","newCacheState","cacheState","noiseSettings","createNoiseSettings","biomeSource","createBiomeSource","chunkGenerator","isVersion","settingsCache","noise","generatorCache","randomStateCache","RandomState","biomeSourceCache","getBiome","preset","computeIfAbsentAsync","fetchPreset","generator","biome_source","BiomeSource","root","FixedBiome","shift","scale","numBiomes","_y","parameters","Climate","Parameters","ParamPoint","multiNoise","MultiNoise","sampler","router","NoiseRouter","create","temperature","Noise","Noises","TEMPERATURE","vegetation","VEGETATION","continents","CONTINENTALNESS","erosion","EROSION","ridges","RIDGE","Sampler","fromRouter","withSettings","noiseSampler","NoiseSampler","NoiseSettings","sample","firstOctave","clamp","NormalNoise","LegacyRandom","minDist","Infinity","minBiome","dist","square","altitude","humidity","weirdness","offset","NOISE_SETTINGS","getOrThrow","NoiseGeneratorSettings","generateChunks","minX","minY","ceil","cached","pos","chunk","Chunk","ChunkPos","Z","fill","buildSurface","fillBiomes","maxX","minZ","maxZ","step","quartY","minQuartX","maxQuartX","minQuartZ","maxQuartZ","countX","countZ","biomeIds","Int8Array","biomeId","posKey","DEBUG","computeDebugBiome","computeBiome","palette","loadDensityFunction","xzSize","ySize","noiseRouter","finalDensity","randomState","XoroshiroRandom","forkPositional","min_y","size_horizontal","size_vertical","sampling","xz_scale","y_scale","xz_factor","y_factor","bottom_slide","top_slide","terrain_shaper","factor","jaggedness","originalFn","mapAll","Visitor","getNoiseSettings","getBlockState","minBlockX","maxBlockX","BlockPos","DEEPSLATE","noiseColumnCache","minLimitPerlinNoise","PerlinNoise","maxLimitPerlinNoise","mainPerlinNoise","depthNoise","xOffset","chunkWidth","chunkHeight","chunkCountY","amplified","biomeDepth","biomeScale","iterateNoiseColumn","cx","ox","noise1","fillNoiseColumn","noise2","yy","oy","lerp2","cachedColumn","xzScale","yScale","xzFactor","yFactor","randomDensity","random_density_offset","getRandomDensity","sampleAndClampNoise","getOctaveNoise","zo","falloff","density","density_factor","density_offset","clampedLerp","x2","wrap","y2","z2","minLimitNoise","maxLimitNoise","mainNoise","colors","options","getProjectData","BlockState","AIR","getName","OldNoiseChunkGenerator","row","reverse","getColor","compute","clampedMap","fromEntries","resources","quartStep","round","quartWidth","centerX","centerZ","getBiomeColor","xx","zz","VanillaColors","stringToColor","terrain","featureColors","placements","features","biomeInfoNoise","fork","seaLevel","nextFloat","nextGaussian","sqrt","log","cos","PI","sampleInt","modifyPlacement","placement","feature","base","spread","normalize","min_inclusive","max_inclusive","normal","mean","deviation","distribution","reduce","sum","anchor","_ctx","absolute","above_bottom","below_top","resolveAnchor","inner","n1","n2","plateau","useFeature","featureFn","Features","decorator","decoratorFn","Decorators","decorated","positions","getPositions","getPlacements","random_boolean_selector","feature_true","feature_false","random_selector","chance","simple_random_selector","count","count_extra","extra_chance","extra_count","count_multilayer","count_noise","noise_level","below_noise","above_noise","count_noise_biased","noise_factor","noise_offset","noise_to_count_ratio","dark_oak_tree","_config","outer","flatMap","depth_average","baseline","decorateY","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","modifier","PlacementModifiers","count_on_every_layer","environment_scan","height_range","sampleHeight","in_square","noise_based_count","noise_threshold_count","random_offset","xz_spread","y_spread","rarity_filter","oz","BiomeSourcePreview","shown","setSeed","randomSeed","setScale","setYOffset","focused","setFocused","useStore","refineTimeout","hasRandomness","useCanvas","biomeMap","changeScale","newScale","toUpperCase","DecoratorPreview","DensityFunctionPreview","autoScroll","setAutoScroll","scrollInterval","densityFunction","worldX","worldY","clearInterval","setInterval","NoisePreview","NoiseSettingsPreview","setBiome","setBiomeScale","setBiomeDepth","getNoiseBlock","allBiomes","StackMixers","container","fillContainer","assignSlots","lootTable","createLootContext","result","generateTable","item","mixer","stackMixer","SLOT_COUNT","items","slots","shuffle","queue","itemA","splice","splitCount","itemB","splitItem","slot","pop","other","array","consumer","tableConsumer","decorateFunctions","functions","pools","luck","weather","dayTime","daytime","getItemTag","getLootTable","getPredicate","composeConditions","conditions","poolConsumer","rolls","computeInt","computeFloat","bonus_rolls","computeWeight","remainingWeight","canEntryRun","child","expandEntry","expand","tagEntry","entryConsumer","quality","compositeFunction","composeFunctions","function","LootFunctions","enchant_randomly","enchantments","isBook","Enchantments","getEnchantmentData","discoverable","canEnchant","lvl","maxLevel","minLevel","enchantItem","enchant_with_levels","levels","treasure","enchants","selectEnchantments","enchant","limit_count","limit","prepareIntRange","set_count","set_damage","damage","maxDamage","MaxDamageItems","oldDamage","Damage","newDamage","finalDamage","set_enchantments","level","set_lore","lore","lines","newLore","display","Lore","set_name","newName","cond","testCondition","condition","LootConditions","alternative","term","block_state_property","damage_source_properties","testDamageSourcePredicate","entity_properties","testEntityPredicate","entity_scores","inverted","killed_by_player","location_check","testLocationPredicate","match_tool","testItemPredicate","random_chance","random_chance_with_looting","looting_multiplier","reference","survives_explosion","table_bonus","chances","time_check","period","time","value_check","weather_check","raining","thundering","isRaining","isThundering","provider","_predicate","additive","listKey","oldEnch","enchantmentValue","EnchantmentItems","available","getAvailableEnchantments","first","getWeightedRandom","getEnchantWeight","lastAdded","isEnchantCompatible","ench","EnchantmentsRarityWeights","rarity","minCost","maxCost","isEnchantCompatibleRaw","isCompatible","curse","EnchantmentsCategories","PROTECTION_ENCHANTS","DAMAGE_ENCHANTS","uncommon","rare","very_rare","ARMOR_FEET","ARMOR_LEGS","ARMOR_CHEST","ARMOR_HEAD","ARMOR","SWORD","DIGGER","BREAKABLE","WEARABLE","armor","armor_feet","armor_legs","armor_chest","armor_head","weapon","digger","fishing_rod","trident","breakable","bow","wearable","crossbow","vanishable","Resources","fetchResources","ResourceManager","RENDER_SIZE","ItemRenderCache","cache_key","promise","getResources","gl","preserveDrawingBuffer","renderer","ItemRenderer","drawItem","toDataURL","textureAtlas","blockModels","TextureAtlas","empty","loadBlockModels","loadBlockAtlas","getBlockModel","getTextureUV","getTextureAtlas","BlockModel","flatten","textures","atlasCanvas","upperPowerOfTwo","drawImage","imageData","idMap","du","dv","dv2","Languages","fetchLanguage","replaceTranslation","out","c0","c1","c2","isNaN","shadow","parts","visitComponent","el","createStyle","text","inherit","keybind","nbt","extra","bold","italic","underlined","strikethrough","TextColors","black","dark_blue","dark_green","dark_aqua","dark_red","dark_purple","gold","gray","dark_gray","blue","green","aqua","red","light_purple","yellow","white","TextColorKeys","part","translate","translated","useAsync","getTranslation","with","style","fontWeight","fontStyle","textDecoration","advanced","swap","translatedName","fakeTranslation","left","right","top","Unbreakable","alert","archive","arrow_left","arrow_right","check","chevron_down","chevron_left","chevron_right","chevron_up","clippy","codescan_checkmark","dash","device_desktop","dot_fill","download","duplicate","eye","eye_closed","file_directory","file_zip","gear","git_commit","globe","issue_opened","kebab_horizontal","link_external","moon","package","pencil","play","plus","plus_circle","repo","rocket","rows","sort_asc","sort_desc","square_fill","sun","sync","terminal","three_bars","trashcan","unfold","upload","x_circle","slotDecoration","advancedTooltip","tooltipOffset","setTooltipOffset","tooltipSwap","setTooltipSwap","onMove","getBoundingClientRect","errored","setErrored","isEnchanted","StoredEnchantments","texturePath","getAssetUrl","modelPath","renderItem","LootTablePreview","setLuck","setDaytime","setWeather","mixItems","setMixItems","advancedTooltips","setAdvancedTooltips","setItems","generateLootTable","slotStyle","GUI_WIDTH","GUI_HEIGHT","SLOT_SIZE","HasPreview","setCount","useModel","_Fragment","endsWith","setName","setNamespace","setFile","creating","setCreating","projectUpdater","onCreate","readZip","disectFilePath","parseSource","catch","invalidName","invalidNamespace","SEPARATOR","selected","actions","roots","groups","rootActions","onAction","rootErrors","leaves","hidden","setHidden","toggle","er","setFocus","onRename","onDeleteProject","treeViewMode","changeTreeViewMode","disectEntry","getFilePath","selectFile","onDownload","hasPack","stringifySource","pack","description","writeZip","click","hook","transformOutput","ModelPath","choice","switchNode","list","getOwnPropertySymbols","blockState","validation","relativePath","object","getActiveFields","activeFields","enabled","doCopy","doDownload","doImport","copySuccess","onError","braceLoaded","setBraceLoaded","retransform","onImport","textarea","editor","getSerializedOutput","getOutput","output","configure","brace","braceEditor","edit","setOptions","fontSize","showFoldWidgets","highlightSelectedWord","$blockScrolling","on","getSession","setMode","setOption","getSourceIndent","selectAll","clipboard","writeText","fileName","changeIndent","changeFormat","changeHighlighting","getSourceIndents","getSourceFormats","ModelWrapper","mapper","silent","selectRegistries","hiddenFields","flattenedFields","inlineFields","nbtFields","fixedLists","collapsedFields","collapsableFields","findGenerator","keysModel","historyMax","prefix","renderHtml","boolean","states","choices","activeCase","contextPath","getModel","getArray","choiceContextPath","def","inject","pathLocale","contextPush","collapse","isToggled","useToggles","maxShown","setMaxShown","maxLength","modelPush","onAdd","onAddBottom","cValue","cId","cPath","canToggle","onRemove","onMoveUp","onMoveDown","keyPath","keysSchema","last","cSchema","number","getChildModelPath","isDecorated","wrapper","fields","createDecoratorsWrapper","optional","onExpand","onCollapse","toggled","expanded","newCtx","loot","cPrefix","cSuffix","cBody","isFlattened","isInlined","string","toggleState","setToggleState","toggleAll","setToggleAll","ctrlKey","parsed","parseFloat","onColor","newSeed","getValues","additional","fullId","datalistId","rgbToHex","hexToRgb","currentTarget","generateUUID","onContextMenu","navigator","MemoedTreeNode","memo","TreeNode","next","equals","chr","nested","withModel","getAll","popupIcon","popup","originalFields","decorators","iterateNestedDecorators","featurePath","decoratorsPath","modelArr","newDecorators","newPath","produceNestedDecorators","useErrorBoundary","useTheme","themeSuffix","themeUrl","protocol","host","GiscusReact","__GUIDES__","guide","getGuides","toggleTag","getGuide","onToggleTag","stopImmediatePropagation","Themes","system","dark","light","changeLanguage","useTitle","getCurrentUrl","getGenerator","home","th","TAG","STRUCTURE","report","sounds","advancement","block_definition","chat_type","dimension_type","font","item_modifier","loot_table","pack_mcmeta","recipe","text_component","world","worldgen","howler","sound","delay","pitch","volume","onEdit","onDelete","delayedPlay","setLoading","playing","setPlaying","invalid","setInvalid","howls","command","soundEvent","stop","soundPath","getSoundUrl","howl","completed","copyActive","setCopyActive","copyTimeout","copy","desc","titleIcon","unescape","escape","group","__html","marked","SEARCH_KEY","defaultOrder","navigation","useTags","filteredChangelogs","setSort","sortedChangelogs","limitActive","setLimitActive","limitedChangelogs","hiddenChanges","tab","setTab","fetchChangelogs","articleLink","getArticleLink","releaseDate","release_target","data_version","protocol_version","data_pack_version","resource_pack_version","Date","release_time","toLocaleDateString","month","year","INCLUDE_SNAPSHOTS","snapshots","setSnapshots","filteredVersions","compact","allowed","hasAny","onAny","SHARE_KEY","setError","errorBoundary","errorRetry","allowedVersions","currentPreset","setCurrentPreset","sharedSnippetId","setSharedSnippetId","ignoreChange","backup","loadBackup","getSnippet","cancel","snippetGen","previewShown","setPreviewShown","setSourceShown","getBlockStates","historyIndex","undo","redo","onKeyUp","setFileSaving","presets","setPresets","selectPreset","selectVersion","shareUrl","setShareUrl","shareShown","setShareShown","shareCopyActive","shareCopySuccess","useActiveTimeout","share","origin","shareSnippet","copySharedId","sourceShown","innerWidth","setCopy","setDownload","setImport","copySource","downloadSource","importSource","toggleSource","hasPreview","actionsShown","togglePreview","projectShown","setProjectShown","toggleProjectShown","projectCreating","setProjectCreating","projectDeleting","setprojectDeleting","fileSaving","fileRenaming","setFileRenaming","hljs","registerLanguage","use","highlight","frontMatter","parseFrontMatter","orderedVersions","guideVersion","html","headings","insertedToc","extensions","tokenizer","token","walkTokens","title2","heading","slugger","toc","slug","dryrun","versionedContent","versionContent","useHash","scrollToHeading","querySelector","scrollY","scrollTo","behavior","clickGuideContent","HTMLSpanElement","targetHash","shareActive","shareSuccess","onShare","onClickTag","largeWidth","versionedGuides","filteredGuides","MIN_FAVORITES","MAX_FAVORITES","smallScreen","favorites","release","hugeScreen","latestChanges","setHowler","Howl","fetchSounds","soundKeys","configs","setConfigs","addConfig","editConfig","deleteConfig","setDelayedPlay","playAll","downloadFunction","hasDelay","selectedId","nextVersion","getOffsetVersion","previousVersion","offsetIndex","currentIndex","changeRoute","CustomEvent","Changelog","Guides","render"],"sources":["../../vite/modulepreload-polyfill","../../node_modules/preact/dist/preact.module.js","../../node_modules/preact-router/dist/preact-router.es.js","../../src/app/Analytics.ts","../../node_modules/preact/hooks/dist/hooks.module.js","../../node_modules/preact/jsx-runtime/dist/jsxRuntime.js","../../preact/jsx-runtime","../../src/app/components/Ad.tsx","../../src/app/components/Btn.tsx","../../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/@zip.js/zip.js/lib/core/codecs/deflate.js","../../node_modules/@zip.js/zip.js/lib/core/codecs/inflate.js","../../node_modules/@zip.js/zip.js/lib/core/configuration.js","../../node_modules/@zip.js/zip.js/lib/core/util/mime-type.js","../../node_modules/@zip.js/zip.js/lib/core/codecs/crc32.js","../../node_modules/@zip.js/zip.js/lib/core/util/encode-text.js","../../node_modules/@zip.js/zip.js/lib/core/codecs/sjcl.js","../../node_modules/@zip.js/zip.js/lib/core/codecs/aes-crypto.js","../../node_modules/@zip.js/zip.js/lib/core/codecs/zip-crypto.js","../../node_modules/@zip.js/zip.js/lib/core/codecs/codec.js","../../node_modules/@zip.js/zip.js/lib/core/codecs/codec-pool-worker.js","../../node_modules/@zip.js/zip.js/lib/core/codecs/codec-pool.js","../../node_modules/@zip.js/zip.js/lib/z-worker-inline.js","../../node_modules/@zip.js/zip.js/lib/core/io.js","../../node_modules/@zip.js/zip.js/lib/core/constants.js","../../node_modules/@zip.js/zip.js/lib/core/util/cp437-decode.js","../../node_modules/@zip.js/zip.js/lib/core/util/decode-text.js","../../node_modules/@zip.js/zip.js/lib/core/engine.js","../../node_modules/@zip.js/zip.js/lib/core/zip-entry.js","../../node_modules/@zip.js/zip.js/lib/core/zip-reader.js","../../node_modules/@zip.js/zip.js/lib/core/zip-writer.js","../../node_modules/@zip.js/zip.js/lib/zip-fs.js","../../node_modules/@zip.js/zip.js/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/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/schema/failsafe.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/merge.js","../../node_modules/js-yaml/lib/js-yaml/type/binary.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/regexp.js","../../node_modules/js-yaml/lib/js-yaml/type/js/function.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/rfdc/index.js","../../src/app/Utils.ts","../../src/app/components/BtnInput.tsx","../../src/app/components/BtnLink.tsx","../../src/app/hooks/useActiveTimout.ts","../../src/app/hooks/useAsync.ts","../../src/app/hooks/useAsyncFn.ts","../../src/app/hooks/useCanvas.ts","../../src/app/hooks/useFocus.ts","../../src/app/hooks/useHash.ts","../../src/app/hooks/useLocalStorage.ts","../../src/app/hooks/useMediaQuery.ts","../../src/app/hooks/useModel.ts","../../src/app/hooks/useSearchParam.ts","../../src/app/hooks/useTags.ts","../../src/app/components/BtnMenu.tsx","../../src/app/components/Card.tsx","../../vite/preload-helper","../../src/app/components/ErrorPanel.tsx","../../src/app/services/Article.ts","../../src/app/services/DataFetcher.ts","../../src/app/partners/ImmersiveWeathering.ts","../../src/app/partners/index.ts","../../src/app/services/Schemas.ts","../../node_modules/lz-string/libs/lz-string.js","../../src/app/services/Sharing.ts","../../src/app/services/Source.ts","../../src/app/Store.ts","../../src/app/contexts/Locale.tsx","../../src/app/contexts/Project.tsx","../../src/app/contexts/Store.tsx","../../src/app/contexts/Theme.tsx","../../src/app/contexts/Title.tsx","../../src/app/contexts/Version.tsx","../../src/app/components/FileUpload.tsx","../../src/app/components/Footer.tsx","../../src/app/components/forms/Checkbox.tsx","../../src/app/components/forms/Input.tsx","../../src/app/components/forms/SearchList.tsx","../../src/app/components/Modal.tsx","../../src/app/components/generator/FileCreation.tsx","../../src/app/components/generator/FileRenaming.tsx","../../src/app/components/generator/GeneratorCard.tsx","../../src/app/components/generator/GeneratorList.tsx","../../node_modules/deepslate/lib/core/Direction.js","../../node_modules/deepslate/lib/core/BlockPos.js","../../node_modules/pako/dist/pako.esm.mjs","../../node_modules/deepslate/lib/nbt/TagUtils.js","../../node_modules/deepslate/lib/util/Json.js","../../node_modules/deepslate/lib/util/Util.js","../../node_modules/deepslate/lib/core/Identifier.js","../../node_modules/deepslate/lib/core/BlockState.js","../../node_modules/deepslate/lib/core/PalettedContainer.js","../../node_modules/deepslate/lib/core/ChunkSection.js","../../node_modules/deepslate/lib/core/Chunk.js","../../node_modules/deepslate/lib/core/ChunkPos.js","../../node_modules/deepslate/lib/core/Holder.js","../../node_modules/deepslate/lib/core/Registry.js","../../node_modules/deepslate/lib/core/Structure.js","../../node_modules/deepslate/lib/math/Util.js","../../node_modules/deepslate/lib/math/CubicSpline.js","../../node_modules/crypt/crypt.js","../../node_modules/charenc/charenc.js","../../node_modules/is-buffer/index.js","../../node_modules/md5/md5.js","../../node_modules/deepslate/lib/math/random/LegacyRandom.js","../../node_modules/deepslate/lib/math/random/XoroshiroRandom.js","../../node_modules/deepslate/lib/math/noise/SimplexNoise.js","../../node_modules/deepslate/lib/math/noise/ImprovedNoise.js","../../node_modules/deepslate/lib/math/noise/PerlinNoise.js","../../node_modules/deepslate/lib/math/noise/BlendedNoise.js","../../node_modules/deepslate/lib/math/noise/NormalNoise.js","../../node_modules/deepslate/lib/math/noise/PerlinSimplexNoise.js","../../node_modules/deepslate/lib/worldgen/NoiseRouter.js","../../node_modules/deepslate/lib/worldgen/NoiseSettings.js","../../node_modules/deepslate/lib/worldgen/VerticalAnchor.js","../../node_modules/deepslate/lib/worldgen/SurfaceSystem.js","../../node_modules/deepslate/lib/worldgen/NoiseGeneratorSettings.js","../../node_modules/deepslate/lib/worldgen/WorldgenRegistries.js","../../node_modules/deepslate/lib/worldgen/DensityFunction.js","../../node_modules/deepslate/lib/worldgen/Aquifer.js","../../node_modules/deepslate/lib/worldgen/biome/CheckerboardBiomeSource.js","../../node_modules/deepslate/lib/worldgen/biome/FixedBiomeSource.js","../../node_modules/deepslate/lib/worldgen/biome/Climate.js","../../node_modules/deepslate/lib/worldgen/biome/MultiNoiseBiomeSource.js","../../node_modules/deepslate/lib/worldgen/biome/TheEndBiomeSource.js","../../node_modules/deepslate/lib/worldgen/biome/BiomeSource.js","../../node_modules/deepslate/lib/worldgen/NoiseChunk.js","../../node_modules/deepslate/lib/worldgen/NoiseChunkGenerator.js","../../node_modules/deepslate/lib/render/BlockColors.js","../../node_modules/gl-matrix/esm/common.js","../../node_modules/gl-matrix/esm/mat4.js","../../node_modules/gl-matrix/esm/vec3.js","../../node_modules/deepslate/lib/render/Cull.js","../../node_modules/deepslate/lib/render/Util.js","../../node_modules/deepslate/lib/render/BlockModel.js","../../node_modules/deepslate/lib/render/ShaderProgram.js","../../node_modules/deepslate/lib/render/Renderer.js","../../node_modules/deepslate/lib/render/ItemRenderer.js","../../node_modules/deepslate/lib/render/TextureAtlas.js","../../node_modules/deepslate/lib/worldgen/RandomState.js","../../src/app/previews/Deepslate.ts","../../src/app/previews/noise/NoiseChunkGenerator.ts","../../src/app/previews/NoiseSettings.ts","../../src/app/previews/BiomeSource.ts","../../src/app/previews/Decorator.ts","../../src/app/previews/NormalNoise.ts","../../src/app/components/previews/BiomeSourcePreview.tsx","../../src/app/components/previews/DecoratorPreview.tsx","../../src/app/components/previews/DensityFunctionPreview.tsx","../../src/app/components/previews/NoisePreview.tsx","../../src/app/components/previews/NoiseSettingsPreview.tsx","../../src/app/previews/LootTable.ts","../../src/app/services/Resources.ts","../../src/app/components/TextComponent.tsx","../../src/app/components/ItemTooltip.tsx","../../src/app/components/Octicon.tsx","../../src/app/components/ItemDisplay.tsx","../../src/app/components/previews/LootTablePreview.tsx","../../src/app/components/generator/PreviewPanel.tsx","../../src/app/components/generator/ProjectCreation.tsx","../../src/app/components/generator/ProjectDeletion.tsx","../../src/app/components/TreeView.tsx","../../src/app/components/generator/ProjectPanel.tsx","../../src/app/schema/transformOutput.ts","../../src/app/components/generator/SourcePanel.tsx","../../node_modules/preact/compat/dist/compat.module.js","../../src/app/schema/ModelWrapper.ts","../../src/app/schema/renderHtml.tsx","../../src/app/components/generator/Tree.tsx","../../node_modules/@giscus/react/dist/index.es.js","../../src/app/components/Giscus.tsx","../../src/app/services/Guides.ts","../../src/app/components/GuideCard.tsx","../../src/app/components/Header.tsx","../../src/app/components/Icons.tsx","../../src/app/components/sounds/SoundConfig.tsx","../../src/app/components/ToolCard.tsx","../../src/app/components/ToolGroup.tsx","../../src/app/components/Badge.tsx","../../node_modules/marked/lib/marked.esm.js","../../src/app/components/versions/ChangelogEntry.tsx","../../src/app/components/versions/ChangelogList.tsx","../../src/app/components/versions/VersionDetail.tsx","../../src/app/components/versions/VersionEntry.tsx","../../src/app/components/versions/VersionList.tsx","../../src/app/components/versions/VersionMetaData.tsx","../../src/app/components/VersionSwitcher.tsx","../../src/app/pages/Changelog.tsx","../../src/app/pages/Generator.tsx","../../src/app/pages/Generators.tsx","../../node_modules/highlight.js/lib/core.js","../../node_modules/highlight.js/es/languages/json.js","../../src/app/pages/Guide.tsx","../../src/app/pages/Guides.tsx","../../src/app/pages/Home.tsx","../../src/app/pages/Partners.tsx","../../src/app/pages/Sounds.tsx","../../src/app/pages/Versions.tsx","../../src/app/pages/Worldgen.tsx","../../src/app/App.tsx","../../src/app/Main.tsx"],"sourcesContent":["const p = function polyfill() {\n const relList = document.createElement('link').relList;\n if (relList && relList.supports && relList.supports('modulepreload')) {\n return;\n }\n for (const link of document.querySelectorAll('link[rel=\"modulepreload\"]')) {\n processPreload(link);\n }\n new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n if (mutation.type !== 'childList') {\n continue;\n }\n for (const node of mutation.addedNodes) {\n if (node.tagName === 'LINK' && node.rel === 'modulepreload')\n processPreload(node);\n }\n }\n }).observe(document, { childList: true, subtree: true });\n function getFetchOpts(script) {\n const fetchOpts = {};\n if (script.integrity)\n fetchOpts.integrity = script.integrity;\n if (script.referrerpolicy)\n fetchOpts.referrerPolicy = script.referrerpolicy;\n if (script.crossorigin === 'use-credentials')\n fetchOpts.credentials = 'include';\n else if (script.crossorigin === 'anonymous')\n fetchOpts.credentials = 'omit';\n else\n fetchOpts.credentials = 'same-origin';\n return fetchOpts;\n }\n function processPreload(link) {\n if (link.ep)\n // ep marker = processed\n return;\n link.ep = true;\n // prepopulate the load record\n const fetchOpts = getFetchOpts(link);\n fetch(link.href, fetchOpts);\n }\n};__VITE_IS_MODERN__&&p();","var n,l,u,i,t,o,r,f,e={},c=[],s=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function a(n,l){for(var u in l)n[u]=l[u];return n}function h(n){var l=n.parentNode;l&&l.removeChild(n)}function v(l,u,i){var t,o,r,f={};for(r in u)\"key\"==r?t=u[r]:\"ref\"==r?o=u[r]:f[r]=u[r];if(arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),\"function\"==typeof l&&null!=l.defaultProps)for(r in l.defaultProps)void 0===f[r]&&(f[r]=l.defaultProps[r]);return y(l,f,t,o,null)}function y(n,i,t,o,r){var f={type:n,props:i,key:t,ref:o,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==r?++u:r};return null==r&&null!=l.vnode&&l.vnode(f),f}function p(){return{current:null}}function d(n){return n.children}function _(n,l){this.props=n,this.context=l}function k(n,l){if(null==l)return n.__?k(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return\"function\"==typeof n.type?k(n):null}function b(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return b(n)}}function m(n){(!n.__d&&(n.__d=!0)&&t.push(n)&&!g.__r++||r!==l.debounceRendering)&&((r=l.debounceRendering)||o)(g)}function g(){for(var n;g.__r=t.length;)n=t.sort(function(n,l){return n.__v.__b-l.__v.__b}),t=[],n.some(function(n){var l,u,i,t,o,r;n.__d&&(o=(t=(l=n).__v).__e,(r=l.__P)&&(u=[],(i=a({},t)).__v=t.__v+1,j(r,t,i,l.__n,void 0!==r.ownerSVGElement,null!=t.__h?[o]:null,u,null==o?k(t):o,t.__h),z(u,t),t.__e!=o&&b(t)))})}function w(n,l,u,i,t,o,r,f,s,a){var h,v,p,_,b,m,g,w=i&&i.__k||c,A=w.length;for(u.__k=[],h=0;h<l.length;h++)if(null!=(_=u.__k[h]=null==(_=l[h])||\"boolean\"==typeof _?null:\"string\"==typeof _||\"number\"==typeof _||\"bigint\"==typeof _?y(null,_,null,null,_):Array.isArray(_)?y(d,{children:_},null,null,null):_.__b>0?y(_.type,_.props,_.key,null,_.__v):_)){if(_.__=u,_.__b=u.__b+1,null===(p=w[h])||p&&_.key==p.key&&_.type===p.type)w[h]=void 0;else for(v=0;v<A;v++){if((p=w[v])&&_.key==p.key&&_.type===p.type){w[v]=void 0;break}p=null}j(n,_,p=p||e,t,o,r,f,s,a),b=_.__e,(v=_.ref)&&p.ref!=v&&(g||(g=[]),p.ref&&g.push(p.ref,null,_),g.push(v,_.__c||b,_)),null!=b?(null==m&&(m=b),\"function\"==typeof _.type&&_.__k===p.__k?_.__d=s=x(_,s,n):s=P(n,_,p,w,b,s),\"function\"==typeof u.type&&(u.__d=s)):s&&p.__e==s&&s.parentNode!=n&&(s=k(p))}for(u.__e=m,h=A;h--;)null!=w[h]&&(\"function\"==typeof u.type&&null!=w[h].__e&&w[h].__e==u.__d&&(u.__d=k(i,h+1)),N(w[h],w[h]));if(g)for(h=0;h<g.length;h++)M(g[h],g[++h],g[++h])}function x(n,l,u){for(var i,t=n.__k,o=0;t&&o<t.length;o++)(i=t[o])&&(i.__=n,l=\"function\"==typeof i.type?x(i,l,u):P(u,i,i,t,i.__e,l));return l}function A(n,l){return l=l||[],null==n||\"boolean\"==typeof n||(Array.isArray(n)?n.some(function(n){A(n,l)}):l.push(n)),l}function P(n,l,u,i,t,o){var r,f,e;if(void 0!==l.__d)r=l.__d,l.__d=void 0;else if(null==u||t!=o||null==t.parentNode)n:if(null==o||o.parentNode!==n)n.appendChild(t),r=null;else{for(f=o,e=0;(f=f.nextSibling)&&e<i.length;e+=2)if(f==t)break n;n.insertBefore(t,o),r=o}return void 0!==r?r:t.nextSibling}function C(n,l,u,i,t){var o;for(o in u)\"children\"===o||\"key\"===o||o in l||H(n,o,null,u[o],i);for(o in l)t&&\"function\"!=typeof l[o]||\"children\"===o||\"key\"===o||\"value\"===o||\"checked\"===o||u[o]===l[o]||H(n,o,l[o],u[o],i)}function $(n,l,u){\"-\"===l[0]?n.setProperty(l,u):n[l]=null==u?\"\":\"number\"!=typeof u||s.test(l)?u:u+\"px\"}function H(n,l,u,i,t){var o;n:if(\"style\"===l)if(\"string\"==typeof u)n.style.cssText=u;else{if(\"string\"==typeof i&&(n.style.cssText=i=\"\"),i)for(l in i)u&&l in u||$(n.style,l,\"\");if(u)for(l in u)i&&u[l]===i[l]||$(n.style,l,u[l])}else if(\"o\"===l[0]&&\"n\"===l[1])o=l!==(l=l.replace(/Capture$/,\"\")),l=l.toLowerCase()in n?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+o]=u,u?i||n.addEventListener(l,o?T:I,o):n.removeEventListener(l,o?T:I,o);else if(\"dangerouslySetInnerHTML\"!==l){if(t)l=l.replace(/xlink(H|:h)/,\"h\").replace(/sName$/,\"s\");else if(\"href\"!==l&&\"list\"!==l&&\"form\"!==l&&\"tabIndex\"!==l&&\"download\"!==l&&l in n)try{n[l]=null==u?\"\":u;break n}catch(n){}\"function\"==typeof u||(null!=u&&(!1!==u||\"a\"===l[0]&&\"r\"===l[1])?n.setAttribute(l,u):n.removeAttribute(l))}}function I(n){this.l[n.type+!1](l.event?l.event(n):n)}function T(n){this.l[n.type+!0](l.event?l.event(n):n)}function j(n,u,i,t,o,r,f,e,c){var s,h,v,y,p,k,b,m,g,x,A,P,C,$=u.type;if(void 0!==u.constructor)return null;null!=i.__h&&(c=i.__h,e=u.__e=i.__e,u.__h=null,r=[e]),(s=l.__b)&&s(u);try{n:if(\"function\"==typeof $){if(m=u.props,g=(s=$.contextType)&&t[s.__c],x=s?g?g.props.value:s.__:t,i.__c?b=(h=u.__c=i.__c).__=h.__E:(\"prototype\"in $&&$.prototype.render?u.__c=h=new $(m,x):(u.__c=h=new _(m,x),h.constructor=$,h.render=O),g&&g.sub(h),h.props=m,h.state||(h.state={}),h.context=x,h.__n=t,v=h.__d=!0,h.__h=[]),null==h.__s&&(h.__s=h.state),null!=$.getDerivedStateFromProps&&(h.__s==h.state&&(h.__s=a({},h.__s)),a(h.__s,$.getDerivedStateFromProps(m,h.__s))),y=h.props,p=h.state,v)null==$.getDerivedStateFromProps&&null!=h.componentWillMount&&h.componentWillMount(),null!=h.componentDidMount&&h.__h.push(h.componentDidMount);else{if(null==$.getDerivedStateFromProps&&m!==y&&null!=h.componentWillReceiveProps&&h.componentWillReceiveProps(m,x),!h.__e&&null!=h.shouldComponentUpdate&&!1===h.shouldComponentUpdate(m,h.__s,x)||u.__v===i.__v){h.props=m,h.state=h.__s,u.__v!==i.__v&&(h.__d=!1),h.__v=u,u.__e=i.__e,u.__k=i.__k,u.__k.forEach(function(n){n&&(n.__=u)}),h.__h.length&&f.push(h);break n}null!=h.componentWillUpdate&&h.componentWillUpdate(m,h.__s,x),null!=h.componentDidUpdate&&h.__h.push(function(){h.componentDidUpdate(y,p,k)})}if(h.context=x,h.props=m,h.__v=u,h.__P=n,A=l.__r,P=0,\"prototype\"in $&&$.prototype.render)h.state=h.__s,h.__d=!1,A&&A(u),s=h.render(h.props,h.state,h.context);else do{h.__d=!1,A&&A(u),s=h.render(h.props,h.state,h.context),h.state=h.__s}while(h.__d&&++P<25);h.state=h.__s,null!=h.getChildContext&&(t=a(a({},t),h.getChildContext())),v||null==h.getSnapshotBeforeUpdate||(k=h.getSnapshotBeforeUpdate(y,p)),C=null!=s&&s.type===d&&null==s.key?s.props.children:s,w(n,Array.isArray(C)?C:[C],u,i,t,o,r,f,e,c),h.base=u.__e,u.__h=null,h.__h.length&&f.push(h),b&&(h.__E=h.__=null),h.__e=!1}else null==r&&u.__v===i.__v?(u.__k=i.__k,u.__e=i.__e):u.__e=L(i.__e,u,i,t,o,r,f,c);(s=l.diffed)&&s(u)}catch(n){u.__v=null,(c||null!=r)&&(u.__e=e,u.__h=!!c,r[r.indexOf(e)]=null),l.__e(n,u,i)}}function z(n,u){l.__c&&l.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u)})}catch(n){l.__e(n,u.__v)}})}function L(l,u,i,t,o,r,f,c){var s,a,v,y=i.props,p=u.props,d=u.type,_=0;if(\"svg\"===d&&(o=!0),null!=r)for(;_<r.length;_++)if((s=r[_])&&\"setAttribute\"in s==!!d&&(d?s.localName===d:3===s.nodeType)){l=s,r[_]=null;break}if(null==l){if(null===d)return document.createTextNode(p);l=o?document.createElementNS(\"http://www.w3.org/2000/svg\",d):document.createElement(d,p.is&&p),r=null,c=!1}if(null===d)y===p||c&&l.data===p||(l.data=p);else{if(r=r&&n.call(l.childNodes),a=(y=i.props||e).dangerouslySetInnerHTML,v=p.dangerouslySetInnerHTML,!c){if(null!=r)for(y={},_=0;_<l.attributes.length;_++)y[l.attributes[_].name]=l.attributes[_].value;(v||a)&&(v&&(a&&v.__html==a.__html||v.__html===l.innerHTML)||(l.innerHTML=v&&v.__html||\"\"))}if(C(l,p,y,o,c),v)u.__k=[];else if(_=u.props.children,w(l,Array.isArray(_)?_:[_],u,i,t,o&&\"foreignObject\"!==d,r,f,r?r[0]:i.__k&&k(i,0),c),null!=r)for(_=r.length;_--;)null!=r[_]&&h(r[_]);c||(\"value\"in p&&void 0!==(_=p.value)&&(_!==l.value||\"progress\"===d&&!_||\"option\"===d&&_!==y.value)&&H(l,\"value\",_,y.value,!1),\"checked\"in p&&void 0!==(_=p.checked)&&_!==l.checked&&H(l,\"checked\",_,y.checked,!1))}return l}function M(n,u,i){try{\"function\"==typeof n?n(u):n.current=u}catch(n){l.__e(n,i)}}function N(n,u,i){var t,o;if(l.unmount&&l.unmount(n),(t=n.ref)&&(t.current&&t.current!==n.__e||M(t,null,u)),null!=(t=n.__c)){if(t.componentWillUnmount)try{t.componentWillUnmount()}catch(n){l.__e(n,u)}t.base=t.__P=null}if(t=n.__k)for(o=0;o<t.length;o++)t[o]&&N(t[o],u,\"function\"!=typeof n.type);i||null==n.__e||h(n.__e),n.__e=n.__d=void 0}function O(n,l,u){return this.constructor(n,u)}function S(u,i,t){var o,r,f;l.__&&l.__(u,i),r=(o=\"function\"==typeof t)?null:t&&t.__k||i.__k,f=[],j(i,u=(!o&&t||i).__k=v(d,null,[u]),r||e,e,void 0!==i.ownerSVGElement,!o&&t?[t]:r?null:i.firstChild?n.call(i.childNodes):null,f,!o&&t?t:r?r.__e:i.firstChild,o),z(f,u)}function q(n,l){S(n,l,q)}function B(l,u,i){var t,o,r,f=a({},l.props);for(r in u)\"key\"==r?t=u[r]:\"ref\"==r?o=u[r]:f[r]=u[r];return arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),y(l.type,f,t||l.key,o||l.ref,null)}function D(n,l){var u={__c:l=\"__cC\"+f++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,i;return this.getChildContext||(u=[],(i={})[l]=this,this.getChildContext=function(){return i},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(m)},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u.splice(u.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n=c.slice,l={__e:function(n,l,u,i){for(var t,o,r;l=l.__;)if((t=l.__c)&&!t.__)try{if((o=t.constructor)&&null!=o.getDerivedStateFromError&&(t.setState(o.getDerivedStateFromError(n)),r=t.__d),null!=t.componentDidCatch&&(t.componentDidCatch(n,i||{}),r=t.__d),r)return t.__E=t}catch(l){n=l}throw n}},u=0,i=function(n){return null!=n&&void 0===n.constructor},_.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=a({},this.state),\"function\"==typeof n&&(n=n(a({},u),this.props)),n&&a(u,n),null!=n&&this.__v&&(l&&this.__h.push(l),m(this))},_.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),m(this))},_.prototype.render=d,t=[],o=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,g.__r=0,f=0;export{S as render,q as hydrate,v as createElement,v as h,d as Fragment,p as createRef,i as isValidElement,_ as Component,B as cloneElement,D as createContext,A as toChildArray,l as options};\n//# sourceMappingURL=preact.module.js.map\n","import { Component, cloneElement, createElement, toChildArray } from 'preact';\n\nvar EMPTY$1 = {};\n\nfunction assign(obj, props) {\n\t// eslint-disable-next-line guard-for-in\n\tfor (var i in props) {\n\t\tobj[i] = props[i];\n\t}\n\treturn obj;\n}\n\nfunction exec(url, route, opts) {\n\tvar reg = /(?:\\?([^#]*))?(#.*)?$/,\n\t\tc = url.match(reg),\n\t\tmatches = {},\n\t\tret;\n\tif (c && c[1]) {\n\t\tvar p = c[1].split('&');\n\t\tfor (var i=0; i<p.length; i++) {\n\t\t\tvar r = p[i].split('=');\n\t\t\tmatches[decodeURIComponent(r[0])] = decodeURIComponent(r.slice(1).join('='));\n\t\t}\n\t}\n\turl = segmentize(url.replace(reg, ''));\n\troute = segmentize(route || '');\n\tvar max = Math.max(url.length, route.length);\n\tfor (var i$1=0; i$1<max; i$1++) {\n\t\tif (route[i$1] && route[i$1].charAt(0)===':') {\n\t\t\tvar param = route[i$1].replace(/(^:|[+*?]+$)/g, ''),\n\t\t\t\tflags = (route[i$1].match(/[+*?]+$/) || EMPTY$1)[0] || '',\n\t\t\t\tplus = ~flags.indexOf('+'),\n\t\t\t\tstar = ~flags.indexOf('*'),\n\t\t\t\tval = url[i$1] || '';\n\t\t\tif (!val && !star && (flags.indexOf('?')<0 || plus)) {\n\t\t\t\tret = false;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatches[param] = decodeURIComponent(val);\n\t\t\tif (plus || star) {\n\t\t\t\tmatches[param] = url.slice(i$1).map(decodeURIComponent).join('/');\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\telse if (route[i$1]!==url[i$1]) {\n\t\t\tret = false;\n\t\t\tbreak;\n\t\t}\n\t}\n\tif (opts.default!==true && ret===false) { return false; }\n\treturn matches;\n}\n\nfunction pathRankSort(a, b) {\n\treturn (\n\t\t(a.rank < b.rank) ? 1 :\n\t\t\t(a.rank > 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<ROUTERS.length; i++) {\n\t\tif (ROUTERS[i].routeTo(url)===true) {\n\t\t\tdidRoute = true;\n\t\t}\n\t}\n\tfor (var i$1=subscribers.length; i$1--; ) {\n\t\tsubscribers[i$1](url);\n\t}\n\treturn didRoute;\n}\n\n\nfunction routeFromLink(node) {\n\t// only valid elements\n\tif (!node || !node.getAttribute) { return; }\n\n\tvar href = node.getAttribute('href'),\n\t\ttarget = node.getAttribute('target');\n\n\t// ignore links with targets and non-path URLs\n\tif (!href || !href.match(/^\\//g) || (target && !target.match(/^_?self$/i))) { return; }\n\n\t// attempt to route, if no match simply cede control to browser\n\treturn route(href);\n}\n\n\nfunction handleLinkClick(e) {\n\tif (e.ctrlKey || e.metaKey || e.altKey || e.shiftKey || e.button!==0) { return; }\n\trouteFromLink(e.currentTarget || e.target || this);\n\treturn prevent(e);\n}\n\n\nfunction prevent(e) {\n\tif (e) {\n\t\tif (e.stopImmediatePropagation) { e.stopImmediatePropagation(); }\n\t\tif (e.stopPropagation) { e.stopPropagation(); }\n\t\te.preventDefault();\n\t}\n\treturn false;\n}\n\n\nfunction delegateLinkHandler(e) {\n\t// ignore events the browser takes care of already:\n\tif (e.ctrlKey || e.metaKey || e.altKey || e.shiftKey || e.button!==0) { return; }\n\n\tvar t = e.target;\n\tdo {\n\t\tif (String(t.nodeName).toUpperCase()==='A' && t.getAttribute('href')) {\n\t\t\tif (t.hasAttribute('native')) { return; }\n\t\t\t// if link is handled by the router, prevent browser defaults\n\t\t\tif (routeFromLink(t)) {\n\t\t\t\treturn prevent(e);\n\t\t\t}\n\t\t}\n\t} while ((t=t.parentNode));\n}\n\n\nvar eventListenersInitialized = false;\n\nfunction initEventListeners() {\n\tif (eventListenersInitialized) { return; }\n\n\tif (typeof addEventListener==='function') {\n\t\tif (!customHistory) {\n\t\t\taddEventListener('popstate', function () {\n\t\t\t\trouteTo(getCurrentUrl());\n\t\t\t});\n\t\t}\n\t\taddEventListener('click', delegateLinkHandler);\n\t}\n\teventListenersInitialized = true;\n}\n\n\nvar Router = (function (Component$$1) {\n\tfunction Router(props) {\n\t\tComponent$$1.call(this, props);\n\t\tif (props.history) {\n\t\t\tcustomHistory = props.history;\n\t\t}\n\n\t\tthis.state = {\n\t\t\turl: props.url || getCurrentUrl()\n\t\t};\n\n\t\tinitEventListeners();\n\t}\n\n\tif ( Component$$1 ) Router.__proto__ = Component$$1;\n\tRouter.prototype = Object.create( Component$$1 && Component$$1.prototype );\n\tRouter.prototype.constructor = Router;\n\n\tRouter.prototype.shouldComponentUpdate = function shouldComponentUpdate (props) {\n\t\tif (props.static!==true) { return true; }\n\t\treturn props.url!==this.props.url || props.onChange!==this.props.onChange;\n\t};\n\n\t/** Check if the given URL can be matched against any children */\n\tRouter.prototype.canRoute = function canRoute (url) {\n\t\tvar children = toChildArray(this.props.children);\n\t\treturn this.getMatchingChildren(children, url, false).length > 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 type { VersionId } from './services/index.js'\n\ntype Method = 'menu' | 'hotkey'\n\nexport namespace Analytics {\n\n\t/** Universal 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_GENERATOR = 6\n\tconst DIM_PREFERS_COLOR_SCHEME = 7\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\t/**\n\t * @deprecated\n\t */\n\texport function generatorEvent(action: string, label?: string) {\n\t\tevent(ID_GENERATOR, action, label)\n\t}\n\n\tfunction legacyMethod(method: Method) {\n\t\treturn method === 'menu' ? 'Menu' : 'Hotkey'\n\t}\n\t/** END Universal Analytics 4 */\n\n\texport function setLocale(locale: string) {\n\t\tdimension(DIM_LANGUAGE, locale)\n\t\tgtag('set', {\n\t\t\tlocale,\n\t\t})\n\t}\n\n\texport function changeLocale(prev_locale: string, locale: string) {\n\t\tsetLocale(locale)\n\t\tevent(ID_SITE, 'set-language', locale)\n\t\tgtag('event', 'change_locale', {\n\t\t\tprev_locale,\n\t\t})\n\t}\n\n\texport function setTheme(theme: string) {\n\t\tdimension(DIM_THEME, theme)\n\t\tgtag('set', {\n\t\t\ttheme,\n\t\t})\n\t}\n\n\texport function changeTheme(prev_theme: string, theme: string) {\n\t\tsetTheme(theme)\n\t\tevent(ID_SITE, 'set-theme', theme)\n\t\tgtag('event', 'change_theme', {\n\t\t\tprev_theme,\n\t\t})\n\t}\n\n\texport function setVersion(version: string) {\n\t\tdimension(DIM_VERSION, version)\n\t\tgtag('set', {\n\t\t\tversion,\n\t\t})\n\t}\n\n\texport function setSelectedVersion(selected_version: string) {\n\t\tgtag('set', {\n\t\t\tselected_version,\n\t\t})\n\t}\n\n\texport function changeVersion(prev_version: string, version: string) {\n\t\tsetVersion(version)\n\t\tevent(ID_GENERATOR, 'set-version', version)\n\t\tgtag('event', 'change_version', {\n\t\t\tprev_version,\n\t\t})\n\t}\n\n\texport function setGenerator(file_type: string) {\n\t\tdimension(DIM_GENERATOR, file_type)\n\t\tgtag('event', 'use_generator', {\n\t\t\tfile_type,\n\t\t})\n\t}\n\n\texport function setPrefersColorScheme(prefers_color_scheme: string) {\n\t\tdimension(DIM_PREFERS_COLOR_SCHEME, prefers_color_scheme)\n\t\tgtag('set', {\n\t\t\tprefers_color_scheme,\n\t\t})\n\t}\n\n\texport function setTreeViewMode(tree_view_mode: string) {\n\t\tgtag('set', {\n\t\t\ttree_view_mode,\n\t\t})\n\t}\n\n\texport function resetGenerator(file_type: string, history: number, method: Method) {\n\t\tevent(ID_GENERATOR, 'reset')\n\t\tgtag('event', 'reset_generator', {\n\t\t\tfile_type,\n\t\t\thistory,\n\t\t\tmethod,\n\t\t})\n\t}\n\n\texport function undoGenerator(file_type: string, history: number, method: Method) {\n\t\tevent(ID_GENERATOR, 'undo', legacyMethod(method))\n\t\tgtag('event', 'undo_generator', {\n\t\t\tfile_type,\n\t\t\thistory,\n\t\t\tmethod,\n\t\t})\n\t}\n\n\texport function redoGenerator(file_type: string, history: number, method: Method) {\n\t\tevent(ID_GENERATOR, 'undo', legacyMethod(method))\n\t\tgtag('event', 'redo_generator', {\n\t\t\tfile_type,\n\t\t\thistory,\n\t\t\tmethod,\n\t\t})\n\t}\n\n\texport function loadPreset(file_type: string, file_name: string) {\n\t\tevent(ID_GENERATOR, 'load-preset', file_name)\n\t\tgtag('event', 'load_generator_preset', {\n\t\t\tfile_type,\n\t\t\tfile_name,\n\t\t})\n\t}\n\n\texport function openPreset(file_type: string, file_name: string) {\n\t\tgtag('event', 'open_generator_preset', {\n\t\t\tfile_type,\n\t\t\tfile_name,\n\t\t})\n\t}\n\n\texport function createSnippet(file_type: string, snippet_id: string, version: VersionId, data_size: number, compressed_size: number, compression_rate: number) {\n\t\tgtag('event', 'create_generator_snippet', {\n\t\t\tfile_type,\n\t\t\tsnippet_id,\n\t\t\tversion,\n\t\t\tdata_size,\n\t\t\tcompressed_size,\n\t\t\tcompression_rate,\n\t\t})\n\t}\n\n\texport function openSnippet(file_type: string, snippet_id: string, version: VersionId) {\n\t\tgtag('event', 'open_generator_snippet', {\n\t\t\tfile_type,\n\t\t\tsnippet_id,\n\t\t\tversion,\n\t\t})\n\t}\n\n\texport function copyOutput(file_type: string, method: Method) {\n\t\tevent(ID_GENERATOR, 'copy')\n\t\tgtag('event', 'copy_generator_output', {\n\t\t\tfile_type,\n\t\t\tmethod,\n\t\t})\n\t}\n\n\texport function downloadOutput(file_type: string, method: Method) {\n\t\tevent(ID_GENERATOR, 'download')\n\t\tgtag('event', 'download_generator_output', {\n\t\t\tfile_type,\n\t\t\tmethod,\n\t\t})\n\t}\n\n\texport function showOutput(file_type: string, method: Method) {\n\t\tevent(ID_GENERATOR, 'toggle-output', 'visible')\n\t\tgtag('event', 'show_generator_output', {\n\t\t\tfile_type,\n\t\t\tmethod,\n\t\t})\n\t}\n\n\texport function hideOutput(file_type: string, method: Method) {\n\t\tevent(ID_GENERATOR, 'toggle-output', 'hidden')\n\t\tgtag('event', 'hide_generator_output', {\n\t\t\tfile_type,\n\t\t\tmethod,\n\t\t})\n\t}\n\n\texport function showPreview(file_type: string, method: Method) {\n\t\tevent(ID_GENERATOR, 'toggle-preview', 'visible')\n\t\tgtag('event', 'show_generator_preview', {\n\t\t\tfile_type,\n\t\t\tmethod,\n\t\t})\n\t}\n\n\texport function hidePreview(file_type: string, method: Method) {\n\t\tevent(ID_GENERATOR, 'toggle-preview', 'hidden')\n\t\tgtag('event', 'hide_generator_preview', {\n\t\t\tfile_type,\n\t\t\tmethod,\n\t\t})\n\t}\n\n\texport function showProject(file_type: string, projects_count: number, project_size: number, method: Method) {\n\t\tevent(ID_GENERATOR, 'show-project', legacyMethod(method))\n\t\tgtag('event', 'show_project', {\n\t\t\tfile_type,\n\t\t\tprojects_count,\n\t\t\tproject_size,\n\t\t\tmethod,\n\t\t})\n\t}\n\n\texport function hideProject(file_type: string, projects_count: number, project_size: number, method: Method) {\n\t\tevent(ID_GENERATOR, 'hide-project', legacyMethod(method))\n\t\tgtag('event', 'hide_project', {\n\t\t\tfile_type,\n\t\t\tprojects_count,\n\t\t\tproject_size,\n\t\t\tmethod,\n\t\t})\n\t}\n\n\texport function saveProjectFile(file_type: string, projects_count: number, project_size: number, method: Method) {\n\t\tevent(ID_GENERATOR, 'save-project-file', legacyMethod(method))\n\t\tgtag('event', 'save_project_file', {\n\t\t\tfile_type,\n\t\t\tprojects_count,\n\t\t\tproject_size,\n\t\t\tmethod,\n\t\t})\n\t}\n\n\texport function deleteProjectFile(file_type: string, projects_count: number, project_size: number, method: Method) {\n\t\tevent(ID_GENERATOR, 'delete-project-file', legacyMethod(method))\n\t\tgtag('event', 'delete_project_file', {\n\t\t\tfile_type,\n\t\t\tprojects_count,\n\t\t\tproject_size,\n\t\t\tmethod,\n\t\t})\n\t}\n\n\texport function renameProjectFile(file_type: string, projects_count: number, project_size: number, method: Method) {\n\t\tevent(ID_GENERATOR, 'rename-project-file', legacyMethod(method))\n\t\tgtag('event', 'rename_project_file', {\n\t\t\tfile_type,\n\t\t\tprojects_count,\n\t\t\tproject_size,\n\t\t\tmethod,\n\t\t})\n\t}\n\n\texport function deleteProject(projects_count: number, project_size: number, method: Method) {\n\t\tevent(ID_GENERATOR, 'delete-project', legacyMethod(method))\n\t\tgtag('event', 'delete_project', {\n\t\t\tprojects_count,\n\t\t\tproject_size,\n\t\t\tmethod,\n\t\t})\n\t}\n}\n","import{options as n}from\"preact\";var t,u,r,o,i=0,c=[],f=n.__b,e=n.__r,a=n.diffed,v=n.__c,l=n.unmount;function m(t,r){n.__h&&n.__h(u,t,i||r),i=0;var o=u.__H||(u.__H={__:[],__h:[]});return t>=o.__.length&&o.__.push({}),o.__[t]}function p(n){return i=1,y(z,n)}function y(n,r,o){var i=m(t++,2);return i.t=n,i.__c||(i.__=[o?o(r):z(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 d(r,o){var i=m(t++,3);!n.__s&&w(i.__H,o)&&(i.__=r,i.__H=o,u.__H.__h.push(i))}function h(r,o){var i=m(t++,4);!n.__s&&w(i.__H,o)&&(i.__=r,i.__H=o,u.__h.push(i))}function s(n){return i=5,A(function(){return{current:n}},[])}function _(n,t,u){i=6,h(function(){return\"function\"==typeof n?(n(t()),function(){return n(null)}):n?(n.current=t(),function(){return n.current=null}):void 0},null==u?u:u.concat(n))}function A(n,u){var r=m(t++,7);return w(r.__H,u)&&(r.__=n(),r.__H=u,r.__h=n),r.__}function F(n,t){return i=8,A(function(){return n},t)}function T(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 q(t,u){n.useDebugValue&&n.useDebugValue(u?u(t):t)}function x(n){var r=m(t++,10),o=p();return r.__=n,u.componentDidCatch||(u.componentDidCatch=function(n){r.__&&r.__(n),o[1](n)}),[o[0],function(){o[1](void 0)}]}function b(){for(var t;t=c.shift();)if(t.__P)try{t.__H.__h.forEach(j),t.__H.__h.forEach(k),t.__H.__h=[]}catch(u){t.__H.__h=[],n.__e(u,t.__v)}}n.__b=function(n){u=null,f&&f(n)},n.__r=function(n){e&&e(n),t=0;var o=(u=n.__c).__H;o&&(r===u?(o.__h=[],u.__h=[],o.__.forEach(function(n){n.__H&&(n.__H=void 0)})):(o.__h.forEach(j),o.__h.forEach(k),o.__h=[])),r=u},n.diffed=function(t){a&&a(t);var i=t.__c;i&&i.__H&&i.__H.__h.length&&(1!==c.push(i)&&o===n.requestAnimationFrame||((o=n.requestAnimationFrame)||function(n){var t,u=function(){clearTimeout(r),g&&cancelAnimationFrame(t),setTimeout(n)},r=setTimeout(u,100);g&&(t=requestAnimationFrame(u))})(b)),u=null,r=null},n.__c=function(t,u){u.some(function(t){try{t.__h.forEach(j),t.__h=t.__h.filter(function(n){return!n.__||k(n)})}catch(r){u.some(function(n){n.__h&&(n.__h=[])}),u=[],n.__e(r,t.__v)}}),v&&v(t,u)},n.unmount=function(t){l&&l(t);var u,r=t.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{j(n)}catch(n){u=n}}),u&&n.__e(u,r.__v))};var g=\"function\"==typeof requestAnimationFrame;function j(n){var t=u,r=n.__c;\"function\"==typeof r&&(n.__c=void 0,r()),u=t}function k(n){var t=u;n.__c=n.__(),u=t}function w(n,t){return!n||n.length!==t.length||t.some(function(t,u){return t!==n[u]})}function z(n,t){return\"function\"==typeof t?t(n):t}export{p as useState,y as useReducer,d as useEffect,h as useLayoutEffect,s as useRef,_ as useImperativeHandle,A as useMemo,F as useCallback,T as useContext,q as useDebugValue,x as useErrorBoundary};\n//# sourceMappingURL=hooks.module.js.map\n","var r=require(\"preact\"),_=0;function e(e,o,n,t,l){var u,f,i={};for(f in o)\"ref\"==f?u=o[f]:i[f]=o[f];var p={type:e,props:i,key:n,ref:u,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:--_,__source:l,__self:t};if(\"function\"==typeof e&&(u=e.defaultProps))for(f in u)void 0===i[f]&&(i[f]=u[f]);return r.options.vnode&&r.options.vnode(p),p}exports.Fragment=r.Fragment,exports.jsx=e,exports.jsxs=e,exports.jsxDEV=e;\n//# sourceMappingURL=jsxRuntime.js.map\n","import * as jsxRuntime from \"/home/runner/work/misode.github.io/misode.github.io/node_modules/preact/jsx-runtime/dist/jsxRuntime.js\"\nexport const jsx = jsxRuntime.jsx\nexport const jsxs = jsxRuntime.jsxs\nexport const Fragment = jsxRuntime.Fragment","import { useEffect } from 'preact/hooks'\n\ndeclare const ethicalads: any\n\ntype AdProps = {\n\ttype: 'text' | 'image',\n\tid: string,\n}\nexport function Ad({ type, id }: AdProps) {\n\tuseEffect(() => {\n\t\tdocument.getElementById('ad-placeholder')?.remove()\n\t\tif ('ethicalads' in window) {\n\t\t\tethicalads.load()\n\t\t}\n\t}, [])\n\n\treturn <div data-ea-publisher=\"misode-github-io\" data-ea-type={type} class=\"ad dark flat\" id={id}></div>\n}\n","import { Octicon } from './index.js'\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\tdisabled?: boolean,\n}\nexport function Btn({ icon, label, active, class: clazz, tooltip, tooltipLoc, onClick, disabled }: BtnProps) {\n\treturn <div class={`btn${active ? ' active' : ''}${clazz ? ` ${clazz}` : ''}${tooltip ? ` tooltipped tip-${tooltipLoc ?? 'sw'}` : ''}${disabled ? ' disabled' : ''}${active ? ' tip-shown' : ''}`} onClick={disabled ? undefined : onClick} aria-label={tooltip}>\n\t\t{icon && Octicon[icon]}\n\t\t{label && <span>{label}</span>}\n\t</div>\n}\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: (0, 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: (0, 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: (0, 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\nconst Mod = (node, mods) => ({\r\n ...node, ...(typeof mods === 'function' ? mods(node) : mods)\r\n});\r\nexports.Mod = Mod;\r\nconst Has = (key, node) => (0, exports.Mod)(node, {\r\n enabled: (p) => p.push(key).get() !== undefined\r\n});\r\nexports.Has = Has;\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\nconst 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\nexports.BooleanNode = BooleanNode;\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\nconst 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\nexports.ListNode = ListNode;\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\nconst 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\nexports.SwitchNode = SwitchNode;\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\nconst 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 = (0, 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\nexports.ChoiceNode = ChoiceNode;\r\nconst XOrList = (x) => ((node, config) => {\r\n return (0, 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: (0, 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\nconst ObjectOrPreset = (presetNode, objectNode, presets) => {\r\n return (0, 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\nexports.ObjectOrPreset = ObjectOrPreset;\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\nconst 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\nexports.MapNode = MapNode;\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\nconst 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.NumberNode = NumberNode;\r\nconst NumberEnum = ({ integer, values }) => (0, __1.Mod)((0, 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\nexports.NumberEnum = NumberEnum;\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\nconst 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 = (0, 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 ? (0, 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 = (0, 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\nexports.ObjectNode = ObjectNode;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Reference = void 0;\r\nconst 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\nexports.Reference = Reference;\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 return !!(value === null || value === void 0 ? void 0 : value.enum);\r\n};\r\nconst isValidator = (value) => {\r\n return !!(value === null || value === void 0 ? void 0 : value.validator);\r\n};\r\n/**\r\n * Simple string node with one text field\r\n */\r\nconst StringNode = (collections, config) => {\r\n const getValues = () => {\r\n var _a, _b, _c, _d;\r\n if (isEnum(config)) {\r\n if (typeof config.enum === 'string') {\r\n return (_a = collections === null || collections === void 0 ? void 0 : collections.get(config.enum)) !== null && _a !== void 0 ? _a : [];\r\n }\r\n return config.enum;\r\n }\r\n if ((config === null || config === void 0 ? void 0 : config.validator) === 'resource') {\r\n if (typeof config.params.pool === 'string') {\r\n if (config.params.requireTag) {\r\n return (_b = collections === null || collections === void 0 ? void 0 : collections.get(`tag/${config.params.pool}`).map(e => `#${e}`)) !== null && _b !== void 0 ? _b : [];\r\n }\r\n const registry = config.params.pool.replace(/^\\$/, '');\r\n const values = (_c = collections === null || collections === void 0 ? void 0 : collections.get(registry)) !== null && _c !== void 0 ? _c : [];\r\n return [\r\n ...config.params.allowTag ? (_d = collections === null || collections === void 0 ? void 0 : collections.get(`tag/${registry}`).map(e => `#${e}`)) !== null && _d !== void 0 ? _d : [] : [],\r\n ...config.params.suffix ? values.map(v => v + config.params.suffix) : values,\r\n ];\r\n }\r\n return config.params.pool;\r\n }\r\n return [];\r\n };\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'string',\r\n default: () => '',\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'string') {\r\n value = (options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default()) || undefined;\r\n }\r\n if (typeof value !== 'string') {\r\n errors.add(path, 'error.expected_string');\r\n return value;\r\n }\r\n if (isValidator(config)) {\r\n if (config.validator === 'resource' && value.length > 0 && !value.includes(':')) {\r\n value = value.startsWith('#')\r\n ? '#minecraft:' + value.slice(1)\r\n : 'minecraft:' + value;\r\n }\r\n if (config.validator === 'resource' && typeof value == 'string') {\r\n let id = value;\r\n if (value.startsWith('#')) {\r\n if (typeof config.params.pool === 'string' && config.params.pool.startsWith('$tag/')) {\r\n errors.add(path, 'error.disallowed_tag_prefix');\r\n return value;\r\n }\r\n else if (!config.params.allowTag && !config.params.requireTag) {\r\n errors.add(path, 'error.disallowed_tag');\r\n return value;\r\n }\r\n id = id.slice(1);\r\n }\r\n else if (config.params.requireTag) {\r\n errors.add(path, 'error.expected_tag');\r\n return value;\r\n }\r\n if (!id.match(/^(?:[_\\-a-z0-9.]*:)?[_\\-a-z0-9/.]*$/g)) {\r\n errors.add(path, 'error.invalid_resource_location');\r\n return value;\r\n }\r\n if (config.params.suffix && !id.endsWith(config.params.suffix)) {\r\n errors.add(path, 'error.expected_suffix', config.params.suffix);\r\n return value;\r\n }\r\n }\r\n if (config.validator === 'resource' && ((typeof config.params.pool === 'string' && config.params.pool.startsWith('$')) ||\r\n ((config.params.allowTag || config.params.requireTag) && value.startsWith('#')) ||\r\n (typeof value === 'string' && value.includes(':') && !value.startsWith('minecraft:')) ||\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\nexports.StringNode = StringNode;\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 var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\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\" && !Object.prototype.hasOwnProperty.call(exports, 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 Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/*\n * This program is based on JZlib 1.0.2 ymnk, JCraft,Inc.\n * JZlib is based on zlib-1.1.3, so all credit should go authors\n * Jean-loup Gailly(jloup@gzip.org) and Mark Adler(madler@alumni.caltech.edu)\n * and contributors of zlib.\n */\n\n// Global\n\nconst MAX_BITS = 15;\nconst D_CODES = 30;\nconst BL_CODES = 19;\n\nconst LENGTH_CODES = 29;\nconst LITERALS = 256;\nconst L_CODES = (LITERALS + 1 + LENGTH_CODES);\nconst HEAP_SIZE = (2 * L_CODES + 1);\n\nconst END_BLOCK = 256;\n\n// Bit length codes must not exceed MAX_BL_BITS bits\nconst MAX_BL_BITS = 7;\n\n// repeat previous bit length 3-6 times (2 bits of repeat count)\nconst REP_3_6 = 16;\n\n// repeat a zero length 3-10 times (3 bits of repeat count)\nconst REPZ_3_10 = 17;\n\n// repeat a zero length 11-138 times (7 bits of repeat count)\nconst REPZ_11_138 = 18;\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\n// length codes.\n\nconst Buf_size = 8 * 2;\n\n// JZlib version : \"1.0.2\"\nconst Z_DEFAULT_COMPRESSION = -1;\n\n// compression strategy\nconst Z_FILTERED = 1;\nconst Z_HUFFMAN_ONLY = 2;\nconst Z_DEFAULT_STRATEGY = 0;\n\nconst Z_NO_FLUSH = 0;\nconst Z_PARTIAL_FLUSH = 1;\nconst Z_FULL_FLUSH = 3;\nconst Z_FINISH = 4;\n\nconst Z_OK = 0;\nconst Z_STREAM_END = 1;\nconst Z_NEED_DICT = 2;\nconst Z_STREAM_ERROR = -2;\nconst Z_DATA_ERROR = -3;\nconst Z_BUF_ERROR = -5;\n\n// Tree\n\nfunction extractArray(array) {\n\treturn flatArray(array.map(([length, value]) => (new Array(length)).fill(value, 0, length)));\n}\n\nfunction flatArray(array) {\n\treturn array.reduce((a, b) => a.concat(Array.isArray(b) ? flatArray(b) : b), []);\n}\n\n// see definition of array dist_code below\nconst _dist_code = [0, 1, 2, 3].concat(...extractArray([\n\t[2, 4], [2, 5], [4, 6], [4, 7], [8, 8], [8, 9], [16, 10], [16, 11], [32, 12], [32, 13], [64, 14], [64, 15], [2, 0], [1, 16],\n\t[1, 17], [2, 18], [2, 19], [4, 20], [4, 21], [8, 22], [8, 23], [16, 24], [16, 25], [32, 26], [32, 27], [64, 28], [64, 29]\n]));\n\nfunction Tree() {\n\tconst that = this;\n\n\t// dyn_tree; // the dynamic tree\n\t// max_code; // largest code with non zero frequency\n\t// stat_desc; // the corresponding static tree\n\n\t// Compute the optimal bit lengths for a tree and update the total bit\n\t// length\n\t// for the current block.\n\t// IN assertion: the fields freq and dad are set, heap[heap_max] and\n\t// above are the tree nodes sorted by increasing frequency.\n\t// OUT assertions: the field len is set to the optimal bit length, the\n\t// array bl_count contains the frequencies for each bit length.\n\t// The length opt_len is updated; static_len is also updated if stree is\n\t// not null.\n\tfunction gen_bitlen(s) {\n\t\tconst tree = that.dyn_tree;\n\t\tconst stree = that.stat_desc.static_tree;\n\t\tconst extra = that.stat_desc.extra_bits;\n\t\tconst base = that.stat_desc.extra_base;\n\t\tconst max_length = that.stat_desc.max_length;\n\t\tlet h; // heap index\n\t\tlet n, m; // iterate over the tree elements\n\t\tlet bits; // bit length\n\t\tlet xbits; // extra bits\n\t\tlet f; // frequency\n\t\tlet overflow = 0; // number of elements with bit length too large\n\n\t\tfor (bits = 0; bits <= MAX_BITS; bits++)\n\t\t\ts.bl_count[bits] = 0;\n\n\t\t// In a first pass, compute the optimal bit lengths (which may\n\t\t// overflow in the case of the bit length tree).\n\t\ttree[s.heap[s.heap_max] * 2 + 1] = 0; // root of the heap\n\n\t\tfor (h = s.heap_max + 1; h < HEAP_SIZE; h++) {\n\t\t\tn = s.heap[h];\n\t\t\tbits = tree[tree[n * 2 + 1] * 2 + 1] + 1;\n\t\t\tif (bits > max_length) {\n\t\t\t\tbits = max_length;\n\t\t\t\toverflow++;\n\t\t\t}\n\t\t\ttree[n * 2 + 1] = bits;\n\t\t\t// We overwrite tree[n*2+1] which is no longer needed\n\n\t\t\tif (n > that.max_code)\n\t\t\t\tcontinue; // not a leaf node\n\n\t\t\ts.bl_count[bits]++;\n\t\t\txbits = 0;\n\t\t\tif (n >= base)\n\t\t\t\txbits = extra[n - base];\n\t\t\tf = tree[n * 2];\n\t\t\ts.opt_len += f * (bits + xbits);\n\t\t\tif (stree)\n\t\t\t\ts.static_len += f * (stree[n * 2 + 1] + xbits);\n\t\t}\n\t\tif (overflow === 0)\n\t\t\treturn;\n\n\t\t// This happens for example on obj2 and pic of the Calgary corpus\n\t\t// Find the first bit length which could increase:\n\t\tdo {\n\t\t\tbits = max_length - 1;\n\t\t\twhile (s.bl_count[bits] === 0)\n\t\t\t\tbits--;\n\t\t\ts.bl_count[bits]--; // move one leaf down the tree\n\t\t\ts.bl_count[bits + 1] += 2; // move one overflow item as its brother\n\t\t\ts.bl_count[max_length]--;\n\t\t\t// The brother of the overflow item also moves one step up,\n\t\t\t// but this does not affect bl_count[max_length]\n\t\t\toverflow -= 2;\n\t\t} while (overflow > 0);\n\n\t\tfor (bits = max_length; bits !== 0; bits--) {\n\t\t\tn = s.bl_count[bits];\n\t\t\twhile (n !== 0) {\n\t\t\t\tm = s.heap[--h];\n\t\t\t\tif (m > that.max_code)\n\t\t\t\t\tcontinue;\n\t\t\t\tif (tree[m * 2 + 1] != bits) {\n\t\t\t\t\ts.opt_len += (bits - tree[m * 2 + 1]) * tree[m * 2];\n\t\t\t\t\ttree[m * 2 + 1] = bits;\n\t\t\t\t}\n\t\t\t\tn--;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Reverse the first len bits of a code, using straightforward code (a\n\t// faster\n\t// method would use a table)\n\t// IN assertion: 1 <= len <= 15\n\tfunction bi_reverse(code, // the value to invert\n\t\tlen // its bit length\n\t) {\n\t\tlet res = 0;\n\t\tdo {\n\t\t\tres |= code & 1;\n\t\t\tcode >>>= 1;\n\t\t\tres <<= 1;\n\t\t} while (--len > 0);\n\t\treturn res >>> 1;\n\t}\n\n\t// Generate the codes for a given tree and bit counts (which need not be\n\t// optimal).\n\t// IN assertion: the array bl_count contains the bit length statistics for\n\t// the given tree and the field len is set for all tree elements.\n\t// OUT assertion: the field code is set for all tree elements of non\n\t// zero code length.\n\tfunction gen_codes(tree, // the tree to decorate\n\t\tmax_code, // largest code with non zero frequency\n\t\tbl_count // number of codes at each bit length\n\t) {\n\t\tconst next_code = []; // next code value for each\n\t\t// bit length\n\t\tlet code = 0; // running code value\n\t\tlet bits; // bit index\n\t\tlet n; // code index\n\t\tlet len;\n\n\t\t// The distribution counts are first used to generate the code values\n\t\t// without bit reversal.\n\t\tfor (bits = 1; bits <= MAX_BITS; bits++) {\n\t\t\tnext_code[bits] = code = ((code + bl_count[bits - 1]) << 1);\n\t\t}\n\n\t\t// Check that the bit counts in bl_count are consistent. The last code\n\t\t// must be all ones.\n\t\t// Assert (code + bl_count[MAX_BITS]-1 == (1<<MAX_BITS)-1,\n\t\t// \"inconsistent bit counts\");\n\t\t// Tracev((stderr,\"gen_codes: max_code %d \", max_code));\n\n\t\tfor (n = 0; n <= max_code; n++) {\n\t\t\tlen = tree[n * 2 + 1];\n\t\t\tif (len === 0)\n\t\t\t\tcontinue;\n\t\t\t// Now reverse the bits\n\t\t\ttree[n * 2] = bi_reverse(next_code[len]++, len);\n\t\t}\n\t}\n\n\t// Construct one Huffman tree and assigns the code bit strings and lengths.\n\t// Update the total bit length for the current block.\n\t// IN assertion: the field freq is set for all tree elements.\n\t// OUT assertions: the fields len and code are set to the optimal bit length\n\t// and corresponding code. The length opt_len is updated; static_len is\n\t// also updated if stree is not null. The field max_code is set.\n\tthat.build_tree = function (s) {\n\t\tconst tree = that.dyn_tree;\n\t\tconst stree = that.stat_desc.static_tree;\n\t\tconst elems = that.stat_desc.elems;\n\t\tlet n, m; // iterate over heap elements\n\t\tlet max_code = -1; // largest code with non zero frequency\n\t\tlet node; // new node being created\n\n\t\t// Construct the initial heap, with least frequent element in\n\t\t// heap[1]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n\t\t// heap[0] is not used.\n\t\ts.heap_len = 0;\n\t\ts.heap_max = HEAP_SIZE;\n\n\t\tfor (n = 0; n < elems; n++) {\n\t\t\tif (tree[n * 2] !== 0) {\n\t\t\t\ts.heap[++s.heap_len] = max_code = n;\n\t\t\t\ts.depth[n] = 0;\n\t\t\t} else {\n\t\t\t\ttree[n * 2 + 1] = 0;\n\t\t\t}\n\t\t}\n\n\t\t// The pkzip format requires that at least one distance code exists,\n\t\t// and that at least one bit should be sent even if there is only one\n\t\t// possible code. So to avoid special checks later on we force at least\n\t\t// two codes of non zero frequency.\n\t\twhile (s.heap_len < 2) {\n\t\t\tnode = s.heap[++s.heap_len] = max_code < 2 ? ++max_code : 0;\n\t\t\ttree[node * 2] = 1;\n\t\t\ts.depth[node] = 0;\n\t\t\ts.opt_len--;\n\t\t\tif (stree)\n\t\t\t\ts.static_len -= stree[node * 2 + 1];\n\t\t\t// node is 0 or 1 so it does not have extra bits\n\t\t}\n\t\tthat.max_code = max_code;\n\n\t\t// The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n\t\t// establish sub-heaps of increasing lengths:\n\n\t\tfor (n = Math.floor(s.heap_len / 2); n >= 1; n--)\n\t\t\ts.pqdownheap(tree, n);\n\n\t\t// Construct the Huffman tree by repeatedly combining the least two\n\t\t// frequent nodes.\n\n\t\tnode = elems; // next internal node of the tree\n\t\tdo {\n\t\t\t// n = node of least frequency\n\t\t\tn = s.heap[1];\n\t\t\ts.heap[1] = s.heap[s.heap_len--];\n\t\t\ts.pqdownheap(tree, 1);\n\t\t\tm = s.heap[1]; // m = node of next least frequency\n\n\t\t\ts.heap[--s.heap_max] = n; // keep the nodes sorted by frequency\n\t\t\ts.heap[--s.heap_max] = m;\n\n\t\t\t// Create a new node father of n and m\n\t\t\ttree[node * 2] = (tree[n * 2] + tree[m * 2]);\n\t\t\ts.depth[node] = Math.max(s.depth[n], s.depth[m]) + 1;\n\t\t\ttree[n * 2 + 1] = tree[m * 2 + 1] = node;\n\n\t\t\t// and insert the new node in the heap\n\t\t\ts.heap[1] = node++;\n\t\t\ts.pqdownheap(tree, 1);\n\t\t} while (s.heap_len >= 2);\n\n\t\ts.heap[--s.heap_max] = s.heap[1];\n\n\t\t// At this point, the fields freq and dad are set. We can now\n\t\t// generate the bit lengths.\n\n\t\tgen_bitlen(s);\n\n\t\t// The field len is now set, we can generate the bit codes\n\t\tgen_codes(tree, that.max_code, s.bl_count);\n\t};\n\n}\n\nTree._length_code = [0, 1, 2, 3, 4, 5, 6, 7].concat(...extractArray([\n\t[2, 8], [2, 9], [2, 10], [2, 11], [4, 12], [4, 13], [4, 14], [4, 15], [8, 16], [8, 17], [8, 18], [8, 19],\n\t[16, 20], [16, 21], [16, 22], [16, 23], [32, 24], [32, 25], [32, 26], [31, 27], [1, 28]]));\n\nTree.base_length = [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, 24, 28, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 0];\n\nTree.base_dist = [0, 1, 2, 3, 4, 6, 8, 12, 16, 24, 32, 48, 64, 96, 128, 192, 256, 384, 512, 768, 1024, 1536, 2048, 3072, 4096, 6144, 8192, 12288, 16384,\n\t24576];\n\n// Mapping from a distance to a distance code. dist is the distance - 1 and\n// must not have side effects. _dist_code[256] and _dist_code[257] are never\n// used.\nTree.d_code = function (dist) {\n\treturn ((dist) < 256 ? _dist_code[dist] : _dist_code[256 + ((dist) >>> 7)]);\n};\n\n// extra bits for each length code\nTree.extra_lbits = [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\n// extra bits for each distance code\nTree.extra_dbits = [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\n// extra bits for each bit length code\nTree.extra_blbits = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7];\n\nTree.bl_order = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15];\n\n// StaticTree\n\nfunction StaticTree(static_tree, extra_bits, extra_base, elems, max_length) {\n\tconst that = this;\n\tthat.static_tree = static_tree;\n\tthat.extra_bits = extra_bits;\n\tthat.extra_base = extra_base;\n\tthat.elems = elems;\n\tthat.max_length = max_length;\n}\n\nconst static_ltree2_first_part = [12, 140, 76, 204, 44, 172, 108, 236, 28, 156, 92, 220, 60, 188, 124, 252, 2, 130, 66, 194, 34, 162, 98, 226, 18, 146, 82,\n\t210, 50, 178, 114, 242, 10, 138, 74, 202, 42, 170, 106, 234, 26, 154, 90, 218, 58, 186, 122, 250, 6, 134, 70, 198, 38, 166, 102, 230, 22, 150, 86,\n\t214, 54, 182, 118, 246, 14, 142, 78, 206, 46, 174, 110, 238, 30, 158, 94, 222, 62, 190, 126, 254, 1, 129, 65, 193, 33, 161, 97, 225, 17, 145, 81,\n\t209, 49, 177, 113, 241, 9, 137, 73, 201, 41, 169, 105, 233, 25, 153, 89, 217, 57, 185, 121, 249, 5, 133, 69, 197, 37, 165, 101, 229, 21, 149, 85,\n\t213, 53, 181, 117, 245, 13, 141, 77, 205, 45, 173, 109, 237, 29, 157, 93, 221, 61, 189, 125, 253, 19, 275, 147, 403, 83, 339, 211, 467, 51, 307,\n\t179, 435, 115, 371, 243, 499, 11, 267, 139, 395, 75, 331, 203, 459, 43, 299, 171, 427, 107, 363, 235, 491, 27, 283, 155, 411, 91, 347, 219, 475,\n\t59, 315, 187, 443, 123, 379, 251, 507, 7, 263, 135, 391, 71, 327, 199, 455, 39, 295, 167, 423, 103, 359, 231, 487, 23, 279, 151, 407, 87, 343, 215,\n\t471, 55, 311, 183, 439, 119, 375, 247, 503, 15, 271, 143, 399, 79, 335, 207, 463, 47, 303, 175, 431, 111, 367, 239, 495, 31, 287, 159, 415, 95,\n\t351, 223, 479, 63, 319, 191, 447, 127, 383, 255, 511, 0, 64, 32, 96, 16, 80, 48, 112, 8, 72, 40, 104, 24, 88, 56, 120, 4, 68, 36, 100, 20, 84, 52,\n\t116, 3, 131, 67, 195, 35, 163, 99, 227];\nconst static_ltree2_second_part = extractArray([[144, 8], [112, 9], [24, 7], [8, 8]]);\nStaticTree.static_ltree = flatArray(static_ltree2_first_part.map((value, index) => [value, static_ltree2_second_part[index]]));\n\nconst static_dtree_first_part = [0, 16, 8, 24, 4, 20, 12, 28, 2, 18, 10, 26, 6, 22, 14, 30, 1, 17, 9, 25, 5, 21, 13, 29, 3, 19, 11, 27, 7, 23];\nconst static_dtree_second_part = extractArray([[30, 5]]);\nStaticTree.static_dtree = flatArray(static_dtree_first_part.map((value, index) => [value, static_dtree_second_part[index]]));\n\nStaticTree.static_l_desc = new StaticTree(StaticTree.static_ltree, Tree.extra_lbits, LITERALS + 1, L_CODES, MAX_BITS);\n\nStaticTree.static_d_desc = new StaticTree(StaticTree.static_dtree, Tree.extra_dbits, 0, D_CODES, MAX_BITS);\n\nStaticTree.static_bl_desc = new StaticTree(null, Tree.extra_blbits, 0, BL_CODES, MAX_BL_BITS);\n\n// Deflate\n\nconst MAX_MEM_LEVEL = 9;\nconst DEF_MEM_LEVEL = 8;\n\nfunction Config(good_length, max_lazy, nice_length, max_chain, func) {\n\tconst that = this;\n\tthat.good_length = good_length;\n\tthat.max_lazy = max_lazy;\n\tthat.nice_length = nice_length;\n\tthat.max_chain = max_chain;\n\tthat.func = func;\n}\n\nconst STORED = 0;\nconst FAST = 1;\nconst SLOW = 2;\nconst config_table = [\n\tnew Config(0, 0, 0, 0, STORED),\n\tnew Config(4, 4, 8, 4, FAST),\n\tnew Config(4, 5, 16, 8, FAST),\n\tnew Config(4, 6, 32, 32, FAST),\n\tnew Config(4, 4, 16, 16, SLOW),\n\tnew Config(8, 16, 32, 32, SLOW),\n\tnew Config(8, 16, 128, 128, SLOW),\n\tnew Config(8, 32, 128, 256, SLOW),\n\tnew Config(32, 128, 258, 1024, SLOW),\n\tnew Config(32, 258, 258, 4096, SLOW)\n];\n\nconst z_errmsg = [\"need dictionary\", // Z_NEED_DICT\n\t// 2\n\t\"stream end\", // Z_STREAM_END 1\n\t\"\", // Z_OK 0\n\t\"\", // Z_ERRNO (-1)\n\t\"stream error\", // Z_STREAM_ERROR (-2)\n\t\"data error\", // Z_DATA_ERROR (-3)\n\t\"\", // Z_MEM_ERROR (-4)\n\t\"buffer error\", // Z_BUF_ERROR (-5)\n\t\"\",// Z_VERSION_ERROR (-6)\n\t\"\"];\n\n// block not completed, need more input or more output\nconst NeedMore = 0;\n\n// block flush performed\nconst BlockDone = 1;\n\n// finish started, need only more output at next deflate\nconst FinishStarted = 2;\n\n// finish done, accept no more input or output\nconst FinishDone = 3;\n\n// preset dictionary flag in zlib header\nconst PRESET_DICT = 0x20;\n\nconst INIT_STATE = 42;\nconst BUSY_STATE = 113;\nconst FINISH_STATE = 666;\n\n// The deflate compression method\nconst Z_DEFLATED = 8;\n\nconst STORED_BLOCK = 0;\nconst STATIC_TREES = 1;\nconst DYN_TREES = 2;\n\nconst MIN_MATCH = 3;\nconst MAX_MATCH = 258;\nconst MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);\n\nfunction smaller(tree, n, m, depth) {\n\tconst tn2 = tree[n * 2];\n\tconst tm2 = tree[m * 2];\n\treturn (tn2 < tm2 || (tn2 == tm2 && depth[n] <= depth[m]));\n}\n\nfunction Deflate() {\n\n\tconst that = this;\n\tlet strm; // pointer back to this zlib stream\n\tlet status; // as the name implies\n\t// pending_buf; // output still pending\n\tlet pending_buf_size; // size of pending_buf\n\t// pending_out; // next pending byte to output to the stream\n\t// pending; // nb of bytes in the pending buffer\n\n\t// dist_buf; // buffer for distances\n\t// lc_buf; // buffer for literals or lengths\n\t// To simplify the code, dist_buf and lc_buf have the same number of elements.\n\t// To use different lengths, an extra flag array would be necessary.\n\n\tlet last_flush; // value of flush param for previous deflate call\n\n\tlet w_size; // LZ77 win size (32K by default)\n\tlet w_bits; // log2(w_size) (8..16)\n\tlet w_mask; // w_size - 1\n\n\tlet win;\n\t// Sliding win. Input bytes are read into the second half of the win,\n\t// and move to the first half later to keep a dictionary of at least wSize\n\t// bytes. With this organization, matches are limited to a distance of\n\t// wSize-MAX_MATCH bytes, but this ensures that IO is always\n\t// performed with a length multiple of the block size. Also, it limits\n\t// the win size to 64K, which is quite useful on MSDOS.\n\t// To do: use the user input buffer as sliding win.\n\n\tlet window_size;\n\t// Actual size of win: 2*wSize, except when the user input buffer\n\t// is directly used as sliding win.\n\n\tlet prev;\n\t// Link to older string with same hash index. To limit the size of this\n\t// array to 64K, this link is maintained only for the last 32K strings.\n\t// An index in this array is thus a win index modulo 32K.\n\n\tlet head; // Heads of the hash chains or NIL.\n\n\tlet ins_h; // hash index of string to be inserted\n\tlet hash_size; // number of elements in hash table\n\tlet hash_bits; // log2(hash_size)\n\tlet hash_mask; // hash_size-1\n\n\t// Number of bits by which ins_h must be shifted at each input\n\t// step. It must be such that after MIN_MATCH steps, the oldest\n\t// byte no longer takes part in the hash key, that is:\n\t// hash_shift * MIN_MATCH >= hash_bits\n\tlet hash_shift;\n\n\t// Window position at the beginning of the current output block. Gets\n\t// negative when the win is moved backwards.\n\n\tlet block_start;\n\n\tlet match_length; // length of best match\n\tlet prev_match; // previous match\n\tlet match_available; // set if previous match exists\n\tlet strstart; // start of string to insert\n\tlet match_start; // start of matching string\n\tlet lookahead; // number of valid bytes ahead in win\n\n\t// Length of the best match at previous step. Matches not greater than this\n\t// are discarded. This is used in the lazy match evaluation.\n\tlet prev_length;\n\n\t// To speed up deflation, hash chains are never searched beyond this\n\t// length. A higher limit improves compression ratio but degrades the speed.\n\tlet max_chain_length;\n\n\t// Attempt to find a better match only when the current match is strictly\n\t// smaller than this value. This mechanism is used only for compression\n\t// levels >= 4.\n\tlet max_lazy_match;\n\n\t// Insert new strings in the hash table only if the match length is not\n\t// greater than this length. This saves time but degrades compression.\n\t// max_insert_length is used only for compression levels <= 3.\n\n\tlet level; // compression level (1..9)\n\tlet strategy; // favor or force Huffman coding\n\n\t// Use a faster search when the previous match is longer than this\n\tlet good_match;\n\n\t// Stop searching when current match exceeds this\n\tlet nice_match;\n\n\tlet dyn_ltree; // literal and length tree\n\tlet dyn_dtree; // distance tree\n\tlet bl_tree; // Huffman tree for bit lengths\n\n\tconst l_desc = new Tree(); // desc for literal tree\n\tconst d_desc = new Tree(); // desc for distance tree\n\tconst bl_desc = new Tree(); // desc for bit length tree\n\n\t// that.heap_len; // number of elements in the heap\n\t// that.heap_max; // element of largest frequency\n\t// The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n\t// The same heap array is used to build all trees.\n\n\t// Depth of each subtree used as tie breaker for trees of equal frequency\n\tthat.depth = [];\n\n\t// Size of match buffer for literals/lengths. There are 4 reasons for\n\t// limiting lit_bufsize to 64K:\n\t// - frequencies can be kept in 16 bit counters\n\t// - if compression is not successful for the first block, all input\n\t// data is still in the win so we can still emit a stored block even\n\t// when input comes from standard input. (This can also be done for\n\t// all blocks if lit_bufsize is not greater than 32K.)\n\t// - if compression is not successful for a file smaller than 64K, we can\n\t// even emit a stored file instead of a stored block (saving 5 bytes).\n\t// This is applicable only for zip (not gzip or zlib).\n\t// - creating new Huffman trees less frequently may not provide fast\n\t// adaptation to changes in the input data statistics. (Take for\n\t// example a binary file with poorly compressible code followed by\n\t// a highly compressible string table.) Smaller buffer sizes give\n\t// fast adaptation but have of course the overhead of transmitting\n\t// trees more frequently.\n\t// - I can't count above 4\n\tlet lit_bufsize;\n\n\tlet last_lit; // running index in dist_buf and lc_buf\n\n\t// that.opt_len; // bit length of current block with optimal trees\n\t// that.static_len; // bit length of current block with static trees\n\tlet matches; // number of string matches in current block\n\tlet last_eob_len; // bit length of EOB code for last block\n\n\t// Output buffer. bits are inserted starting at the bottom (least\n\t// significant bits).\n\tlet bi_buf;\n\n\t// Number of valid bits in bi_buf. All bits above the last valid bit\n\t// are always zero.\n\tlet bi_valid;\n\n\t// number of codes at each bit length for an optimal tree\n\tthat.bl_count = [];\n\n\t// heap used to build the Huffman trees\n\tthat.heap = [];\n\n\tdyn_ltree = [];\n\tdyn_dtree = [];\n\tbl_tree = [];\n\n\tfunction lm_init() {\n\t\twindow_size = 2 * w_size;\n\n\t\thead[hash_size - 1] = 0;\n\t\tfor (let i = 0; i < hash_size - 1; i++) {\n\t\t\thead[i] = 0;\n\t\t}\n\n\t\t// Set the default configuration parameters:\n\t\tmax_lazy_match = config_table[level].max_lazy;\n\t\tgood_match = config_table[level].good_length;\n\t\tnice_match = config_table[level].nice_length;\n\t\tmax_chain_length = config_table[level].max_chain;\n\n\t\tstrstart = 0;\n\t\tblock_start = 0;\n\t\tlookahead = 0;\n\t\tmatch_length = prev_length = MIN_MATCH - 1;\n\t\tmatch_available = 0;\n\t\tins_h = 0;\n\t}\n\n\tfunction init_block() {\n\t\tlet i;\n\t\t// Initialize the trees.\n\t\tfor (i = 0; i < L_CODES; i++)\n\t\t\tdyn_ltree[i * 2] = 0;\n\t\tfor (i = 0; i < D_CODES; i++)\n\t\t\tdyn_dtree[i * 2] = 0;\n\t\tfor (i = 0; i < BL_CODES; i++)\n\t\t\tbl_tree[i * 2] = 0;\n\n\t\tdyn_ltree[END_BLOCK * 2] = 1;\n\t\tthat.opt_len = that.static_len = 0;\n\t\tlast_lit = matches = 0;\n\t}\n\n\t// Initialize the tree data structures for a new zlib stream.\n\tfunction tr_init() {\n\n\t\tl_desc.dyn_tree = dyn_ltree;\n\t\tl_desc.stat_desc = StaticTree.static_l_desc;\n\n\t\td_desc.dyn_tree = dyn_dtree;\n\t\td_desc.stat_desc = StaticTree.static_d_desc;\n\n\t\tbl_desc.dyn_tree = bl_tree;\n\t\tbl_desc.stat_desc = StaticTree.static_bl_desc;\n\n\t\tbi_buf = 0;\n\t\tbi_valid = 0;\n\t\tlast_eob_len = 8; // enough lookahead for inflate\n\n\t\t// Initialize the first block of the first file:\n\t\tinit_block();\n\t}\n\n\t// Restore the heap property by moving down the tree starting at node k,\n\t// exchanging a node with the smallest of its two sons if necessary,\n\t// stopping\n\t// when the heap property is re-established (each father smaller than its\n\t// two sons).\n\tthat.pqdownheap = function (tree, // the tree to restore\n\t\tk // node to move down\n\t) {\n\t\tconst heap = that.heap;\n\t\tconst v = heap[k];\n\t\tlet j = k << 1; // left son of k\n\t\twhile (j <= that.heap_len) {\n\t\t\t// Set j to the smallest of the two sons:\n\t\t\tif (j < that.heap_len && smaller(tree, heap[j + 1], heap[j], that.depth)) {\n\t\t\t\tj++;\n\t\t\t}\n\t\t\t// Exit if v is smaller than both sons\n\t\t\tif (smaller(tree, v, heap[j], that.depth))\n\t\t\t\tbreak;\n\n\t\t\t// Exchange v with the smallest son\n\t\t\theap[k] = heap[j];\n\t\t\tk = j;\n\t\t\t// And continue down the tree, setting j to the left son of k\n\t\t\tj <<= 1;\n\t\t}\n\t\theap[k] = v;\n\t};\n\n\t// Scan a literal or distance tree to determine the frequencies of the codes\n\t// in the bit length tree.\n\tfunction scan_tree(tree,// the tree to be scanned\n\t\tmax_code // and its largest code of non zero frequency\n\t) {\n\t\tlet prevlen = -1; // last emitted length\n\t\tlet curlen; // length of current code\n\t\tlet nextlen = tree[0 * 2 + 1]; // length of next code\n\t\tlet count = 0; // repeat count of the current code\n\t\tlet max_count = 7; // max repeat count\n\t\tlet min_count = 4; // min repeat count\n\n\t\tif (nextlen === 0) {\n\t\t\tmax_count = 138;\n\t\t\tmin_count = 3;\n\t\t}\n\t\ttree[(max_code + 1) * 2 + 1] = 0xffff; // guard\n\n\t\tfor (let n = 0; n <= max_code; n++) {\n\t\t\tcurlen = nextlen;\n\t\t\tnextlen = tree[(n + 1) * 2 + 1];\n\t\t\tif (++count < max_count && curlen == nextlen) {\n\t\t\t\tcontinue;\n\t\t\t} else if (count < min_count) {\n\t\t\t\tbl_tree[curlen * 2] += count;\n\t\t\t} else if (curlen !== 0) {\n\t\t\t\tif (curlen != prevlen)\n\t\t\t\t\tbl_tree[curlen * 2]++;\n\t\t\t\tbl_tree[REP_3_6 * 2]++;\n\t\t\t} else if (count <= 10) {\n\t\t\t\tbl_tree[REPZ_3_10 * 2]++;\n\t\t\t} else {\n\t\t\t\tbl_tree[REPZ_11_138 * 2]++;\n\t\t\t}\n\t\t\tcount = 0;\n\t\t\tprevlen = curlen;\n\t\t\tif (nextlen === 0) {\n\t\t\t\tmax_count = 138;\n\t\t\t\tmin_count = 3;\n\t\t\t} else if (curlen == nextlen) {\n\t\t\t\tmax_count = 6;\n\t\t\t\tmin_count = 3;\n\t\t\t} else {\n\t\t\t\tmax_count = 7;\n\t\t\t\tmin_count = 4;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Construct the Huffman tree for the bit lengths and return the index in\n\t// bl_order of the last bit length code to send.\n\tfunction build_bl_tree() {\n\t\tlet max_blindex; // index of last bit length code of non zero freq\n\n\t\t// Determine the bit length frequencies for literal and distance trees\n\t\tscan_tree(dyn_ltree, l_desc.max_code);\n\t\tscan_tree(dyn_dtree, d_desc.max_code);\n\n\t\t// Build the bit length tree:\n\t\tbl_desc.build_tree(that);\n\t\t// opt_len now includes the length of the tree representations, except\n\t\t// the lengths of the bit lengths codes and the 5+5+4 bits for the\n\t\t// counts.\n\n\t\t// Determine the number of bit length codes to send. The pkzip format\n\t\t// requires that at least 4 bit length codes be sent. (appnote.txt says\n\t\t// 3 but the actual value used is 4.)\n\t\tfor (max_blindex = BL_CODES - 1; max_blindex >= 3; max_blindex--) {\n\t\t\tif (bl_tree[Tree.bl_order[max_blindex] * 2 + 1] !== 0)\n\t\t\t\tbreak;\n\t\t}\n\t\t// Update opt_len to include the bit length tree and counts\n\t\tthat.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;\n\n\t\treturn max_blindex;\n\t}\n\n\t// Output a byte on the stream.\n\t// IN assertion: there is enough room in pending_buf.\n\tfunction put_byte(p) {\n\t\tthat.pending_buf[that.pending++] = p;\n\t}\n\n\tfunction put_short(w) {\n\t\tput_byte(w & 0xff);\n\t\tput_byte((w >>> 8) & 0xff);\n\t}\n\n\tfunction putShortMSB(b) {\n\t\tput_byte((b >> 8) & 0xff);\n\t\tput_byte((b & 0xff) & 0xff);\n\t}\n\n\tfunction send_bits(value, length) {\n\t\tlet val;\n\t\tconst len = length;\n\t\tif (bi_valid > Buf_size - len) {\n\t\t\tval = value;\n\t\t\t// bi_buf |= (val << bi_valid);\n\t\t\tbi_buf |= ((val << bi_valid) & 0xffff);\n\t\t\tput_short(bi_buf);\n\t\t\tbi_buf = val >>> (Buf_size - bi_valid);\n\t\t\tbi_valid += len - Buf_size;\n\t\t} else {\n\t\t\t// bi_buf |= (value) << bi_valid;\n\t\t\tbi_buf |= (((value) << bi_valid) & 0xffff);\n\t\t\tbi_valid += len;\n\t\t}\n\t}\n\n\tfunction send_code(c, tree) {\n\t\tconst c2 = c * 2;\n\t\tsend_bits(tree[c2] & 0xffff, tree[c2 + 1] & 0xffff);\n\t}\n\n\t// Send a literal or distance tree in compressed form, using the codes in\n\t// bl_tree.\n\tfunction send_tree(tree,// the tree to be sent\n\t\tmax_code // and its largest code of non zero frequency\n\t) {\n\t\tlet n; // iterates over all tree elements\n\t\tlet prevlen = -1; // last emitted length\n\t\tlet curlen; // length of current code\n\t\tlet nextlen = tree[0 * 2 + 1]; // length of next code\n\t\tlet count = 0; // repeat count of the current code\n\t\tlet max_count = 7; // max repeat count\n\t\tlet min_count = 4; // min repeat count\n\n\t\tif (nextlen === 0) {\n\t\t\tmax_count = 138;\n\t\t\tmin_count = 3;\n\t\t}\n\n\t\tfor (n = 0; n <= max_code; n++) {\n\t\t\tcurlen = nextlen;\n\t\t\tnextlen = tree[(n + 1) * 2 + 1];\n\t\t\tif (++count < max_count && curlen == nextlen) {\n\t\t\t\tcontinue;\n\t\t\t} else if (count < min_count) {\n\t\t\t\tdo {\n\t\t\t\t\tsend_code(curlen, bl_tree);\n\t\t\t\t} while (--count !== 0);\n\t\t\t} else if (curlen !== 0) {\n\t\t\t\tif (curlen != prevlen) {\n\t\t\t\t\tsend_code(curlen, bl_tree);\n\t\t\t\t\tcount--;\n\t\t\t\t}\n\t\t\t\tsend_code(REP_3_6, bl_tree);\n\t\t\t\tsend_bits(count - 3, 2);\n\t\t\t} else if (count <= 10) {\n\t\t\t\tsend_code(REPZ_3_10, bl_tree);\n\t\t\t\tsend_bits(count - 3, 3);\n\t\t\t} else {\n\t\t\t\tsend_code(REPZ_11_138, bl_tree);\n\t\t\t\tsend_bits(count - 11, 7);\n\t\t\t}\n\t\t\tcount = 0;\n\t\t\tprevlen = curlen;\n\t\t\tif (nextlen === 0) {\n\t\t\t\tmax_count = 138;\n\t\t\t\tmin_count = 3;\n\t\t\t} else if (curlen == nextlen) {\n\t\t\t\tmax_count = 6;\n\t\t\t\tmin_count = 3;\n\t\t\t} else {\n\t\t\t\tmax_count = 7;\n\t\t\t\tmin_count = 4;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Send the header for a block using dynamic Huffman trees: the counts, the\n\t// lengths of the bit length codes, the literal tree and the distance tree.\n\t// IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n\tfunction send_all_trees(lcodes, dcodes, blcodes) {\n\t\tlet rank; // index in bl_order\n\n\t\tsend_bits(lcodes - 257, 5); // not +255 as stated in appnote.txt\n\t\tsend_bits(dcodes - 1, 5);\n\t\tsend_bits(blcodes - 4, 4); // not -3 as stated in appnote.txt\n\t\tfor (rank = 0; rank < blcodes; rank++) {\n\t\t\tsend_bits(bl_tree[Tree.bl_order[rank] * 2 + 1], 3);\n\t\t}\n\t\tsend_tree(dyn_ltree, lcodes - 1); // literal tree\n\t\tsend_tree(dyn_dtree, dcodes - 1); // distance tree\n\t}\n\n\t// Flush the bit buffer, keeping at most 7 bits in it.\n\tfunction bi_flush() {\n\t\tif (bi_valid == 16) {\n\t\t\tput_short(bi_buf);\n\t\t\tbi_buf = 0;\n\t\t\tbi_valid = 0;\n\t\t} else if (bi_valid >= 8) {\n\t\t\tput_byte(bi_buf & 0xff);\n\t\t\tbi_buf >>>= 8;\n\t\t\tbi_valid -= 8;\n\t\t}\n\t}\n\n\t// Send one empty static block to give enough lookahead for inflate.\n\t// This takes 10 bits, of which 7 may remain in the bit buffer.\n\t// The current inflate code requires 9 bits of lookahead. If the\n\t// last two codes for the previous block (real code plus EOB) were coded\n\t// on 5 bits or less, inflate may have only 5+3 bits of lookahead to decode\n\t// the last real code. In this case we send two empty static blocks instead\n\t// of one. (There are no problems if the previous block is stored or fixed.)\n\t// To simplify the code, we assume the worst case of last real code encoded\n\t// on one bit only.\n\tfunction _tr_align() {\n\t\tsend_bits(STATIC_TREES << 1, 3);\n\t\tsend_code(END_BLOCK, StaticTree.static_ltree);\n\n\t\tbi_flush();\n\n\t\t// Of the 10 bits for the empty block, we have already sent\n\t\t// (10 - bi_valid) bits. The lookahead for the last real code (before\n\t\t// the EOB of the previous block) was thus at least one plus the length\n\t\t// of the EOB plus what we have just sent of the empty static block.\n\t\tif (1 + last_eob_len + 10 - bi_valid < 9) {\n\t\t\tsend_bits(STATIC_TREES << 1, 3);\n\t\t\tsend_code(END_BLOCK, StaticTree.static_ltree);\n\t\t\tbi_flush();\n\t\t}\n\t\tlast_eob_len = 7;\n\t}\n\n\t// Save the match info and tally the frequency counts. Return true if\n\t// the current block must be flushed.\n\tfunction _tr_tally(dist, // distance of matched string\n\t\tlc // match length-MIN_MATCH or unmatched char (if dist==0)\n\t) {\n\t\tlet out_length, in_length, dcode;\n\t\tthat.dist_buf[last_lit] = dist;\n\t\tthat.lc_buf[last_lit] = lc & 0xff;\n\t\tlast_lit++;\n\n\t\tif (dist === 0) {\n\t\t\t// lc is the unmatched char\n\t\t\tdyn_ltree[lc * 2]++;\n\t\t} else {\n\t\t\tmatches++;\n\t\t\t// Here, lc is the match length - MIN_MATCH\n\t\t\tdist--; // dist = match distance - 1\n\t\t\tdyn_ltree[(Tree._length_code[lc] + LITERALS + 1) * 2]++;\n\t\t\tdyn_dtree[Tree.d_code(dist) * 2]++;\n\t\t}\n\n\t\tif ((last_lit & 0x1fff) === 0 && level > 2) {\n\t\t\t// Compute an upper bound for the compressed length\n\t\t\tout_length = last_lit * 8;\n\t\t\tin_length = strstart - block_start;\n\t\t\tfor (dcode = 0; dcode < D_CODES; dcode++) {\n\t\t\t\tout_length += dyn_dtree[dcode * 2] * (5 + Tree.extra_dbits[dcode]);\n\t\t\t}\n\t\t\tout_length >>>= 3;\n\t\t\tif ((matches < Math.floor(last_lit / 2)) && out_length < Math.floor(in_length / 2))\n\t\t\t\treturn true;\n\t\t}\n\n\t\treturn (last_lit == lit_bufsize - 1);\n\t\t// We avoid equality with lit_bufsize because of wraparound at 64K\n\t\t// on 16 bit machines and because stored blocks are restricted to\n\t\t// 64K-1 bytes.\n\t}\n\n\t// Send the block data compressed using the given Huffman trees\n\tfunction compress_block(ltree, dtree) {\n\t\tlet dist; // distance of matched string\n\t\tlet lc; // match length or unmatched char (if dist === 0)\n\t\tlet lx = 0; // running index in dist_buf and lc_buf\n\t\tlet code; // the code to send\n\t\tlet extra; // number of extra bits to send\n\n\t\tif (last_lit !== 0) {\n\t\t\tdo {\n\t\t\t\tdist = that.dist_buf[lx];\n\t\t\t\tlc = that.lc_buf[lx];\n\t\t\t\tlx++;\n\n\t\t\t\tif (dist === 0) {\n\t\t\t\t\tsend_code(lc, ltree); // send a literal byte\n\t\t\t\t} else {\n\t\t\t\t\t// Here, lc is the match length - MIN_MATCH\n\t\t\t\t\tcode = Tree._length_code[lc];\n\n\t\t\t\t\tsend_code(code + LITERALS + 1, ltree); // send the length\n\t\t\t\t\t// code\n\t\t\t\t\textra = Tree.extra_lbits[code];\n\t\t\t\t\tif (extra !== 0) {\n\t\t\t\t\t\tlc -= Tree.base_length[code];\n\t\t\t\t\t\tsend_bits(lc, extra); // send the extra length bits\n\t\t\t\t\t}\n\t\t\t\t\tdist--; // dist is now the match distance - 1\n\t\t\t\t\tcode = Tree.d_code(dist);\n\n\t\t\t\t\tsend_code(code, dtree); // send the distance code\n\t\t\t\t\textra = Tree.extra_dbits[code];\n\t\t\t\t\tif (extra !== 0) {\n\t\t\t\t\t\tdist -= Tree.base_dist[code];\n\t\t\t\t\t\tsend_bits(dist, extra); // send the extra distance bits\n\t\t\t\t\t}\n\t\t\t\t} // literal or match pair ?\n\t\t\t} while (lx < last_lit);\n\t\t}\n\n\t\tsend_code(END_BLOCK, ltree);\n\t\tlast_eob_len = ltree[END_BLOCK * 2 + 1];\n\t}\n\n\t// Flush the bit buffer and align the output on a byte boundary\n\tfunction bi_windup() {\n\t\tif (bi_valid > 8) {\n\t\t\tput_short(bi_buf);\n\t\t} else if (bi_valid > 0) {\n\t\t\tput_byte(bi_buf & 0xff);\n\t\t}\n\t\tbi_buf = 0;\n\t\tbi_valid = 0;\n\t}\n\n\t// Copy a stored block, storing first the length and its\n\t// one's complement if requested.\n\tfunction copy_block(buf, // the input data\n\t\tlen, // its length\n\t\theader // true if block header must be written\n\t) {\n\t\tbi_windup(); // align on byte boundary\n\t\tlast_eob_len = 8; // enough lookahead for inflate\n\n\t\tif (header) {\n\t\t\tput_short(len);\n\t\t\tput_short(~len);\n\t\t}\n\n\t\tthat.pending_buf.set(win.subarray(buf, buf + len), that.pending);\n\t\tthat.pending += len;\n\t}\n\n\t// Send a stored block\n\tfunction _tr_stored_block(buf, // input block\n\t\tstored_len, // length of input block\n\t\teof // true if this is the last block for a file\n\t) {\n\t\tsend_bits((STORED_BLOCK << 1) + (eof ? 1 : 0), 3); // send block type\n\t\tcopy_block(buf, stored_len, true); // with header\n\t}\n\n\t// Determine the best encoding for the current block: dynamic trees, static\n\t// trees or store, and output the encoded block to the zip file.\n\tfunction _tr_flush_block(buf, // input block, or NULL if too old\n\t\tstored_len, // length of input block\n\t\teof // true if this is the last block for a file\n\t) {\n\t\tlet opt_lenb, static_lenb;// opt_len and static_len in bytes\n\t\tlet max_blindex = 0; // index of last bit length code of non zero freq\n\n\t\t// Build the Huffman trees unless a stored block is forced\n\t\tif (level > 0) {\n\t\t\t// Construct the literal and distance trees\n\t\t\tl_desc.build_tree(that);\n\n\t\t\td_desc.build_tree(that);\n\n\t\t\t// At this point, opt_len and static_len are the total bit lengths\n\t\t\t// of\n\t\t\t// the compressed block data, excluding the tree representations.\n\n\t\t\t// Build the bit length tree for the above two trees, and get the\n\t\t\t// index\n\t\t\t// in bl_order of the last bit length code to send.\n\t\t\tmax_blindex = build_bl_tree();\n\n\t\t\t// Determine the best encoding. Compute first the block length in\n\t\t\t// bytes\n\t\t\topt_lenb = (that.opt_len + 3 + 7) >>> 3;\n\t\t\tstatic_lenb = (that.static_len + 3 + 7) >>> 3;\n\n\t\t\tif (static_lenb <= opt_lenb)\n\t\t\t\topt_lenb = static_lenb;\n\t\t} else {\n\t\t\topt_lenb = static_lenb = stored_len + 5; // force a stored block\n\t\t}\n\n\t\tif ((stored_len + 4 <= opt_lenb) && buf != -1) {\n\t\t\t// 4: two words for the lengths\n\t\t\t// The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n\t\t\t// Otherwise we can't have processed more than WSIZE input bytes\n\t\t\t// since\n\t\t\t// the last block flush, because compression would have been\n\t\t\t// successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n\t\t\t// transform a block into a stored block.\n\t\t\t_tr_stored_block(buf, stored_len, eof);\n\t\t} else if (static_lenb == opt_lenb) {\n\t\t\tsend_bits((STATIC_TREES << 1) + (eof ? 1 : 0), 3);\n\t\t\tcompress_block(StaticTree.static_ltree, StaticTree.static_dtree);\n\t\t} else {\n\t\t\tsend_bits((DYN_TREES << 1) + (eof ? 1 : 0), 3);\n\t\t\tsend_all_trees(l_desc.max_code + 1, d_desc.max_code + 1, max_blindex + 1);\n\t\t\tcompress_block(dyn_ltree, dyn_dtree);\n\t\t}\n\n\t\t// The above check is made mod 2^32, for files larger than 512 MB\n\t\t// and uLong implemented on 32 bits.\n\n\t\tinit_block();\n\n\t\tif (eof) {\n\t\t\tbi_windup();\n\t\t}\n\t}\n\n\tfunction flush_block_only(eof) {\n\t\t_tr_flush_block(block_start >= 0 ? block_start : -1, strstart - block_start, eof);\n\t\tblock_start = strstart;\n\t\tstrm.flush_pending();\n\t}\n\n\t// Fill the win when the lookahead becomes insufficient.\n\t// Updates strstart and lookahead.\n\t//\n\t// IN assertion: lookahead < MIN_LOOKAHEAD\n\t// OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n\t// At least one byte has been read, or avail_in === 0; reads are\n\t// performed for at least two bytes (required for the zip translate_eol\n\t// option -- not supported here).\n\tfunction fill_window() {\n\t\tlet n, m;\n\t\tlet p;\n\t\tlet more; // Amount of free space at the end of the win.\n\n\t\tdo {\n\t\t\tmore = (window_size - lookahead - strstart);\n\n\t\t\t// Deal with !@#$% 64K limit:\n\t\t\tif (more === 0 && strstart === 0 && lookahead === 0) {\n\t\t\t\tmore = w_size;\n\t\t\t} else if (more == -1) {\n\t\t\t\t// Very unlikely, but possible on 16 bit machine if strstart ==\n\t\t\t\t// 0\n\t\t\t\t// and lookahead == 1 (input done one byte at time)\n\t\t\t\tmore--;\n\n\t\t\t\t// If the win is almost full and there is insufficient\n\t\t\t\t// lookahead,\n\t\t\t\t// move the upper half to the lower one to make room in the\n\t\t\t\t// upper half.\n\t\t\t} else if (strstart >= w_size + w_size - MIN_LOOKAHEAD) {\n\t\t\t\twin.set(win.subarray(w_size, w_size + w_size), 0);\n\n\t\t\t\tmatch_start -= w_size;\n\t\t\t\tstrstart -= w_size; // we now have strstart >= MAX_DIST\n\t\t\t\tblock_start -= w_size;\n\n\t\t\t\t// Slide the hash table (could be avoided with 32 bit values\n\t\t\t\t// at the expense of memory usage). We slide even when level ==\n\t\t\t\t// 0\n\t\t\t\t// to keep the hash table consistent if we switch back to level\n\t\t\t\t// > 0\n\t\t\t\t// later. (Using level 0 permanently is not an optimal usage of\n\t\t\t\t// zlib, so we don't care about this pathological case.)\n\n\t\t\t\tn = hash_size;\n\t\t\t\tp = n;\n\t\t\t\tdo {\n\t\t\t\t\tm = (head[--p] & 0xffff);\n\t\t\t\t\thead[p] = (m >= w_size ? m - w_size : 0);\n\t\t\t\t} while (--n !== 0);\n\n\t\t\t\tn = w_size;\n\t\t\t\tp = n;\n\t\t\t\tdo {\n\t\t\t\t\tm = (prev[--p] & 0xffff);\n\t\t\t\t\tprev[p] = (m >= w_size ? m - w_size : 0);\n\t\t\t\t\t// If n is not on any hash chain, prev[n] is garbage but\n\t\t\t\t\t// its value will never be used.\n\t\t\t\t} while (--n !== 0);\n\t\t\t\tmore += w_size;\n\t\t\t}\n\n\t\t\tif (strm.avail_in === 0)\n\t\t\t\treturn;\n\n\t\t\t// If there was no sliding:\n\t\t\t// strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n\t\t\t// more == window_size - lookahead - strstart\n\t\t\t// => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n\t\t\t// => more >= window_size - 2*WSIZE + 2\n\t\t\t// In the BIG_MEM or MMAP case (not yet supported),\n\t\t\t// window_size == input_size + MIN_LOOKAHEAD &&\n\t\t\t// strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n\t\t\t// Otherwise, window_size == 2*WSIZE so more >= 2.\n\t\t\t// If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n\n\t\t\tn = strm.read_buf(win, strstart + lookahead, more);\n\t\t\tlookahead += n;\n\n\t\t\t// Initialize the hash value now that we have some input:\n\t\t\tif (lookahead >= MIN_MATCH) {\n\t\t\t\tins_h = win[strstart] & 0xff;\n\t\t\t\tins_h = (((ins_h) << hash_shift) ^ (win[strstart + 1] & 0xff)) & hash_mask;\n\t\t\t}\n\t\t\t// If the whole input has less than MIN_MATCH bytes, ins_h is\n\t\t\t// garbage,\n\t\t\t// but this is not important since only literal bytes will be\n\t\t\t// emitted.\n\t\t} while (lookahead < MIN_LOOKAHEAD && strm.avail_in !== 0);\n\t}\n\n\t// Copy without compression as much as possible from the input stream,\n\t// return\n\t// the current block state.\n\t// This function does not insert new strings in the dictionary since\n\t// uncompressible data is probably not useful. This function is used\n\t// only for the level=0 compression option.\n\t// NOTE: this function should be optimized to avoid extra copying from\n\t// win to pending_buf.\n\tfunction deflate_stored(flush) {\n\t\t// Stored blocks are limited to 0xffff bytes, pending_buf is limited\n\t\t// to pending_buf_size, and each stored block has a 5 byte header:\n\n\t\tlet max_block_size = 0xffff;\n\t\tlet max_start;\n\n\t\tif (max_block_size > pending_buf_size - 5) {\n\t\t\tmax_block_size = pending_buf_size - 5;\n\t\t}\n\n\t\t// Copy as much as possible from input to output:\n\t\t// eslint-disable-next-line no-constant-condition\n\t\twhile (true) {\n\t\t\t// Fill the win as much as possible:\n\t\t\tif (lookahead <= 1) {\n\t\t\t\tfill_window();\n\t\t\t\tif (lookahead === 0 && flush == Z_NO_FLUSH)\n\t\t\t\t\treturn NeedMore;\n\t\t\t\tif (lookahead === 0)\n\t\t\t\t\tbreak; // flush the current block\n\t\t\t}\n\n\t\t\tstrstart += lookahead;\n\t\t\tlookahead = 0;\n\n\t\t\t// Emit a stored block if pending_buf will be full:\n\t\t\tmax_start = block_start + max_block_size;\n\t\t\tif (strstart === 0 || strstart >= max_start) {\n\t\t\t\t// strstart === 0 is possible when wraparound on 16-bit machine\n\t\t\t\tlookahead = (strstart - max_start);\n\t\t\t\tstrstart = max_start;\n\n\t\t\t\tflush_block_only(false);\n\t\t\t\tif (strm.avail_out === 0)\n\t\t\t\t\treturn NeedMore;\n\n\t\t\t}\n\n\t\t\t// Flush if we may have to slide, otherwise block_start may become\n\t\t\t// negative and the data will be gone:\n\t\t\tif (strstart - block_start >= w_size - MIN_LOOKAHEAD) {\n\t\t\t\tflush_block_only(false);\n\t\t\t\tif (strm.avail_out === 0)\n\t\t\t\t\treturn NeedMore;\n\t\t\t}\n\t\t}\n\n\t\tflush_block_only(flush == Z_FINISH);\n\t\tif (strm.avail_out === 0)\n\t\t\treturn (flush == Z_FINISH) ? FinishStarted : NeedMore;\n\n\t\treturn flush == Z_FINISH ? FinishDone : BlockDone;\n\t}\n\n\tfunction longest_match(cur_match) {\n\t\tlet chain_length = max_chain_length; // max hash chain length\n\t\tlet scan = strstart; // current string\n\t\tlet match; // matched string\n\t\tlet len; // length of current match\n\t\tlet best_len = prev_length; // best match length so far\n\t\tconst limit = strstart > (w_size - MIN_LOOKAHEAD) ? strstart - (w_size - MIN_LOOKAHEAD) : 0;\n\t\tlet _nice_match = nice_match;\n\n\t\t// Stop when cur_match becomes <= limit. To simplify the code,\n\t\t// we prevent matches with the string of win index 0.\n\n\t\tconst wmask = w_mask;\n\n\t\tconst strend = strstart + MAX_MATCH;\n\t\tlet scan_end1 = win[scan + best_len - 1];\n\t\tlet scan_end = win[scan + best_len];\n\n\t\t// The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of\n\t\t// 16.\n\t\t// It is easy to get rid of this optimization if necessary.\n\n\t\t// Do not waste too much time if we already have a good match:\n\t\tif (prev_length >= good_match) {\n\t\t\tchain_length >>= 2;\n\t\t}\n\n\t\t// Do not look for matches beyond the end of the input. This is\n\t\t// necessary\n\t\t// to make deflate deterministic.\n\t\tif (_nice_match > lookahead)\n\t\t\t_nice_match = lookahead;\n\n\t\tdo {\n\t\t\tmatch = cur_match;\n\n\t\t\t// Skip to next match if the match length cannot increase\n\t\t\t// or if the match length is less than 2:\n\t\t\tif (win[match + best_len] != scan_end || win[match + best_len - 1] != scan_end1 || win[match] != win[scan]\n\t\t\t\t|| win[++match] != win[scan + 1])\n\t\t\t\tcontinue;\n\n\t\t\t// The check at best_len-1 can be removed because it will be made\n\t\t\t// again later. (This heuristic is not always a win.)\n\t\t\t// It is not necessary to compare scan[2] and match[2] since they\n\t\t\t// are always equal when the other bytes match, given that\n\t\t\t// the hash keys are equal and that HASH_BITS >= 8.\n\t\t\tscan += 2;\n\t\t\tmatch++;\n\n\t\t\t// We check for insufficient lookahead only every 8th comparison;\n\t\t\t// the 256th check will be made at strstart+258.\n\t\t\t// eslint-disable-next-line no-empty\n\t\t\tdo {\n\t\t\t} while (win[++scan] == win[++match] && win[++scan] == win[++match] && win[++scan] == win[++match]\n\t\t\t&& win[++scan] == win[++match] && win[++scan] == win[++match] && win[++scan] == win[++match]\n\t\t\t&& win[++scan] == win[++match] && win[++scan] == win[++match] && scan < strend);\n\n\t\t\tlen = MAX_MATCH - (strend - scan);\n\t\t\tscan = strend - MAX_MATCH;\n\n\t\t\tif (len > best_len) {\n\t\t\t\tmatch_start = cur_match;\n\t\t\t\tbest_len = len;\n\t\t\t\tif (len >= _nice_match)\n\t\t\t\t\tbreak;\n\t\t\t\tscan_end1 = win[scan + best_len - 1];\n\t\t\t\tscan_end = win[scan + best_len];\n\t\t\t}\n\n\t\t} while ((cur_match = (prev[cur_match & wmask] & 0xffff)) > limit && --chain_length !== 0);\n\n\t\tif (best_len <= lookahead)\n\t\t\treturn best_len;\n\t\treturn lookahead;\n\t}\n\n\t// Compress as much as possible from the input stream, return the current\n\t// block state.\n\t// This function does not perform lazy evaluation of matches and inserts\n\t// new strings in the dictionary only for unmatched strings or for short\n\t// matches. It is used only for the fast compression options.\n\tfunction deflate_fast(flush) {\n\t\t// short hash_head = 0; // head of the hash chain\n\t\tlet hash_head = 0; // head of the hash chain\n\t\tlet bflush; // set if current block must be flushed\n\n\t\t// eslint-disable-next-line no-constant-condition\n\t\twhile (true) {\n\t\t\t// Make sure that we always have enough lookahead, except\n\t\t\t// at the end of the input file. We need MAX_MATCH bytes\n\t\t\t// for the next match, plus MIN_MATCH bytes to insert the\n\t\t\t// string following the next match.\n\t\t\tif (lookahead < MIN_LOOKAHEAD) {\n\t\t\t\tfill_window();\n\t\t\t\tif (lookahead < MIN_LOOKAHEAD && flush == Z_NO_FLUSH) {\n\t\t\t\t\treturn NeedMore;\n\t\t\t\t}\n\t\t\t\tif (lookahead === 0)\n\t\t\t\t\tbreak; // flush the current block\n\t\t\t}\n\n\t\t\t// Insert the string win[strstart .. strstart+2] in the\n\t\t\t// dictionary, and set hash_head to the head of the hash chain:\n\t\t\tif (lookahead >= MIN_MATCH) {\n\t\t\t\tins_h = (((ins_h) << hash_shift) ^ (win[(strstart) + (MIN_MATCH - 1)] & 0xff)) & hash_mask;\n\n\t\t\t\t// prev[strstart&w_mask]=hash_head=head[ins_h];\n\t\t\t\thash_head = (head[ins_h] & 0xffff);\n\t\t\t\tprev[strstart & w_mask] = head[ins_h];\n\t\t\t\thead[ins_h] = strstart;\n\t\t\t}\n\n\t\t\t// Find the longest match, discarding those <= prev_length.\n\t\t\t// At this point we have always match_length < MIN_MATCH\n\n\t\t\tif (hash_head !== 0 && ((strstart - hash_head) & 0xffff) <= w_size - MIN_LOOKAHEAD) {\n\t\t\t\t// To simplify the code, we prevent matches with the string\n\t\t\t\t// of win index 0 (in particular we have to avoid a match\n\t\t\t\t// of the string with itself at the start of the input file).\n\t\t\t\tif (strategy != Z_HUFFMAN_ONLY) {\n\t\t\t\t\tmatch_length = longest_match(hash_head);\n\t\t\t\t}\n\t\t\t\t// longest_match() sets match_start\n\t\t\t}\n\t\t\tif (match_length >= MIN_MATCH) {\n\t\t\t\t// check_match(strstart, match_start, match_length);\n\n\t\t\t\tbflush = _tr_tally(strstart - match_start, match_length - MIN_MATCH);\n\n\t\t\t\tlookahead -= match_length;\n\n\t\t\t\t// Insert new strings in the hash table only if the match length\n\t\t\t\t// is not too large. This saves time but degrades compression.\n\t\t\t\tif (match_length <= max_lazy_match && lookahead >= MIN_MATCH) {\n\t\t\t\t\tmatch_length--; // string at strstart already in hash table\n\t\t\t\t\tdo {\n\t\t\t\t\t\tstrstart++;\n\n\t\t\t\t\t\tins_h = ((ins_h << hash_shift) ^ (win[(strstart) + (MIN_MATCH - 1)] & 0xff)) & hash_mask;\n\t\t\t\t\t\t// prev[strstart&w_mask]=hash_head=head[ins_h];\n\t\t\t\t\t\thash_head = (head[ins_h] & 0xffff);\n\t\t\t\t\t\tprev[strstart & w_mask] = head[ins_h];\n\t\t\t\t\t\thead[ins_h] = strstart;\n\n\t\t\t\t\t\t// strstart never exceeds WSIZE-MAX_MATCH, so there are\n\t\t\t\t\t\t// always MIN_MATCH bytes ahead.\n\t\t\t\t\t} while (--match_length !== 0);\n\t\t\t\t\tstrstart++;\n\t\t\t\t} else {\n\t\t\t\t\tstrstart += match_length;\n\t\t\t\t\tmatch_length = 0;\n\t\t\t\t\tins_h = win[strstart] & 0xff;\n\n\t\t\t\t\tins_h = (((ins_h) << hash_shift) ^ (win[strstart + 1] & 0xff)) & hash_mask;\n\t\t\t\t\t// If lookahead < MIN_MATCH, ins_h is garbage, but it does\n\t\t\t\t\t// not\n\t\t\t\t\t// matter since it will be recomputed at next deflate call.\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// No match, output a literal byte\n\n\t\t\t\tbflush = _tr_tally(0, win[strstart] & 0xff);\n\t\t\t\tlookahead--;\n\t\t\t\tstrstart++;\n\t\t\t}\n\t\t\tif (bflush) {\n\n\t\t\t\tflush_block_only(false);\n\t\t\t\tif (strm.avail_out === 0)\n\t\t\t\t\treturn NeedMore;\n\t\t\t}\n\t\t}\n\n\t\tflush_block_only(flush == Z_FINISH);\n\t\tif (strm.avail_out === 0) {\n\t\t\tif (flush == Z_FINISH)\n\t\t\t\treturn FinishStarted;\n\t\t\telse\n\t\t\t\treturn NeedMore;\n\t\t}\n\t\treturn flush == Z_FINISH ? FinishDone : BlockDone;\n\t}\n\n\t// Same as above, but achieves better compression. We use a lazy\n\t// evaluation for matches: a match is finally adopted only if there is\n\t// no better match at the next win position.\n\tfunction deflate_slow(flush) {\n\t\t// short hash_head = 0; // head of hash chain\n\t\tlet hash_head = 0; // head of hash chain\n\t\tlet bflush; // set if current block must be flushed\n\t\tlet max_insert;\n\n\t\t// Process the input block.\n\t\t// eslint-disable-next-line no-constant-condition\n\t\twhile (true) {\n\t\t\t// Make sure that we always have enough lookahead, except\n\t\t\t// at the end of the input file. We need MAX_MATCH bytes\n\t\t\t// for the next match, plus MIN_MATCH bytes to insert the\n\t\t\t// string following the next match.\n\n\t\t\tif (lookahead < MIN_LOOKAHEAD) {\n\t\t\t\tfill_window();\n\t\t\t\tif (lookahead < MIN_LOOKAHEAD && flush == Z_NO_FLUSH) {\n\t\t\t\t\treturn NeedMore;\n\t\t\t\t}\n\t\t\t\tif (lookahead === 0)\n\t\t\t\t\tbreak; // flush the current block\n\t\t\t}\n\n\t\t\t// Insert the string win[strstart .. strstart+2] in the\n\t\t\t// dictionary, and set hash_head to the head of the hash chain:\n\n\t\t\tif (lookahead >= MIN_MATCH) {\n\t\t\t\tins_h = (((ins_h) << hash_shift) ^ (win[(strstart) + (MIN_MATCH - 1)] & 0xff)) & hash_mask;\n\t\t\t\t// prev[strstart&w_mask]=hash_head=head[ins_h];\n\t\t\t\thash_head = (head[ins_h] & 0xffff);\n\t\t\t\tprev[strstart & w_mask] = head[ins_h];\n\t\t\t\thead[ins_h] = strstart;\n\t\t\t}\n\n\t\t\t// Find the longest match, discarding those <= prev_length.\n\t\t\tprev_length = match_length;\n\t\t\tprev_match = match_start;\n\t\t\tmatch_length = MIN_MATCH - 1;\n\n\t\t\tif (hash_head !== 0 && prev_length < max_lazy_match && ((strstart - hash_head) & 0xffff) <= w_size - MIN_LOOKAHEAD) {\n\t\t\t\t// To simplify the code, we prevent matches with the string\n\t\t\t\t// of win index 0 (in particular we have to avoid a match\n\t\t\t\t// of the string with itself at the start of the input file).\n\n\t\t\t\tif (strategy != Z_HUFFMAN_ONLY) {\n\t\t\t\t\tmatch_length = longest_match(hash_head);\n\t\t\t\t}\n\t\t\t\t// longest_match() sets match_start\n\n\t\t\t\tif (match_length <= 5 && (strategy == Z_FILTERED || (match_length == MIN_MATCH && strstart - match_start > 4096))) {\n\n\t\t\t\t\t// If prev_match is also MIN_MATCH, match_start is garbage\n\t\t\t\t\t// but we will ignore the current match anyway.\n\t\t\t\t\tmatch_length = MIN_MATCH - 1;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// If there was a match at the previous step and the current\n\t\t\t// match is not better, output the previous match:\n\t\t\tif (prev_length >= MIN_MATCH && match_length <= prev_length) {\n\t\t\t\tmax_insert = strstart + lookahead - MIN_MATCH;\n\t\t\t\t// Do not insert strings in hash table beyond this.\n\n\t\t\t\t// check_match(strstart-1, prev_match, prev_length);\n\n\t\t\t\tbflush = _tr_tally(strstart - 1 - prev_match, prev_length - MIN_MATCH);\n\n\t\t\t\t// Insert in hash table all strings up to the end of the match.\n\t\t\t\t// strstart-1 and strstart are already inserted. If there is not\n\t\t\t\t// enough lookahead, the last two strings are not inserted in\n\t\t\t\t// the hash table.\n\t\t\t\tlookahead -= prev_length - 1;\n\t\t\t\tprev_length -= 2;\n\t\t\t\tdo {\n\t\t\t\t\tif (++strstart <= max_insert) {\n\t\t\t\t\t\tins_h = (((ins_h) << hash_shift) ^ (win[(strstart) + (MIN_MATCH - 1)] & 0xff)) & hash_mask;\n\t\t\t\t\t\t// prev[strstart&w_mask]=hash_head=head[ins_h];\n\t\t\t\t\t\thash_head = (head[ins_h] & 0xffff);\n\t\t\t\t\t\tprev[strstart & w_mask] = head[ins_h];\n\t\t\t\t\t\thead[ins_h] = strstart;\n\t\t\t\t\t}\n\t\t\t\t} while (--prev_length !== 0);\n\t\t\t\tmatch_available = 0;\n\t\t\t\tmatch_length = MIN_MATCH - 1;\n\t\t\t\tstrstart++;\n\n\t\t\t\tif (bflush) {\n\t\t\t\t\tflush_block_only(false);\n\t\t\t\t\tif (strm.avail_out === 0)\n\t\t\t\t\t\treturn NeedMore;\n\t\t\t\t}\n\t\t\t} else if (match_available !== 0) {\n\n\t\t\t\t// If there was no match at the previous position, output a\n\t\t\t\t// single literal. If there was a match but the current match\n\t\t\t\t// is longer, truncate the previous match to a single literal.\n\n\t\t\t\tbflush = _tr_tally(0, win[strstart - 1] & 0xff);\n\n\t\t\t\tif (bflush) {\n\t\t\t\t\tflush_block_only(false);\n\t\t\t\t}\n\t\t\t\tstrstart++;\n\t\t\t\tlookahead--;\n\t\t\t\tif (strm.avail_out === 0)\n\t\t\t\t\treturn NeedMore;\n\t\t\t} else {\n\t\t\t\t// There is no previous match to compare with, wait for\n\t\t\t\t// the next step to decide.\n\n\t\t\t\tmatch_available = 1;\n\t\t\t\tstrstart++;\n\t\t\t\tlookahead--;\n\t\t\t}\n\t\t}\n\n\t\tif (match_available !== 0) {\n\t\t\tbflush = _tr_tally(0, win[strstart - 1] & 0xff);\n\t\t\tmatch_available = 0;\n\t\t}\n\t\tflush_block_only(flush == Z_FINISH);\n\n\t\tif (strm.avail_out === 0) {\n\t\t\tif (flush == Z_FINISH)\n\t\t\t\treturn FinishStarted;\n\t\t\telse\n\t\t\t\treturn NeedMore;\n\t\t}\n\n\t\treturn flush == Z_FINISH ? FinishDone : BlockDone;\n\t}\n\n\tfunction deflateReset(strm) {\n\t\tstrm.total_in = strm.total_out = 0;\n\t\tstrm.msg = null; //\n\n\t\tthat.pending = 0;\n\t\tthat.pending_out = 0;\n\n\t\tstatus = BUSY_STATE;\n\n\t\tlast_flush = Z_NO_FLUSH;\n\n\t\ttr_init();\n\t\tlm_init();\n\t\treturn Z_OK;\n\t}\n\n\tthat.deflateInit = function (strm, _level, bits, _method, memLevel, _strategy) {\n\t\tif (!_method)\n\t\t\t_method = Z_DEFLATED;\n\t\tif (!memLevel)\n\t\t\tmemLevel = DEF_MEM_LEVEL;\n\t\tif (!_strategy)\n\t\t\t_strategy = Z_DEFAULT_STRATEGY;\n\n\t\t// byte[] my_version=ZLIB_VERSION;\n\n\t\t//\n\t\t// if (!version || version[0] != my_version[0]\n\t\t// || stream_size != sizeof(z_stream)) {\n\t\t// return Z_VERSION_ERROR;\n\t\t// }\n\n\t\tstrm.msg = null;\n\n\t\tif (_level == Z_DEFAULT_COMPRESSION)\n\t\t\t_level = 6;\n\n\t\tif (memLevel < 1 || memLevel > MAX_MEM_LEVEL || _method != Z_DEFLATED || bits < 9 || bits > 15 || _level < 0 || _level > 9 || _strategy < 0\n\t\t\t|| _strategy > Z_HUFFMAN_ONLY) {\n\t\t\treturn Z_STREAM_ERROR;\n\t\t}\n\n\t\tstrm.dstate = that;\n\n\t\tw_bits = bits;\n\t\tw_size = 1 << w_bits;\n\t\tw_mask = w_size - 1;\n\n\t\thash_bits = memLevel + 7;\n\t\thash_size = 1 << hash_bits;\n\t\thash_mask = hash_size - 1;\n\t\thash_shift = Math.floor((hash_bits + MIN_MATCH - 1) / MIN_MATCH);\n\n\t\twin = new Uint8Array(w_size * 2);\n\t\tprev = [];\n\t\thead = [];\n\n\t\tlit_bufsize = 1 << (memLevel + 6); // 16K elements by default\n\n\t\tthat.pending_buf = new Uint8Array(lit_bufsize * 4);\n\t\tpending_buf_size = lit_bufsize * 4;\n\n\t\tthat.dist_buf = new Uint16Array(lit_bufsize);\n\t\tthat.lc_buf = new Uint8Array(lit_bufsize);\n\n\t\tlevel = _level;\n\n\t\tstrategy = _strategy;\n\n\t\treturn deflateReset(strm);\n\t};\n\n\tthat.deflateEnd = function () {\n\t\tif (status != INIT_STATE && status != BUSY_STATE && status != FINISH_STATE) {\n\t\t\treturn Z_STREAM_ERROR;\n\t\t}\n\t\t// Deallocate in reverse order of allocations:\n\t\tthat.lc_buf = null;\n\t\tthat.dist_buf = null;\n\t\tthat.pending_buf = null;\n\t\thead = null;\n\t\tprev = null;\n\t\twin = null;\n\t\t// free\n\t\tthat.dstate = null;\n\t\treturn status == BUSY_STATE ? Z_DATA_ERROR : Z_OK;\n\t};\n\n\tthat.deflateParams = function (strm, _level, _strategy) {\n\t\tlet err = Z_OK;\n\n\t\tif (_level == Z_DEFAULT_COMPRESSION) {\n\t\t\t_level = 6;\n\t\t}\n\t\tif (_level < 0 || _level > 9 || _strategy < 0 || _strategy > Z_HUFFMAN_ONLY) {\n\t\t\treturn Z_STREAM_ERROR;\n\t\t}\n\n\t\tif (config_table[level].func != config_table[_level].func && strm.total_in !== 0) {\n\t\t\t// Flush the last buffer:\n\t\t\terr = strm.deflate(Z_PARTIAL_FLUSH);\n\t\t}\n\n\t\tif (level != _level) {\n\t\t\tlevel = _level;\n\t\t\tmax_lazy_match = config_table[level].max_lazy;\n\t\t\tgood_match = config_table[level].good_length;\n\t\t\tnice_match = config_table[level].nice_length;\n\t\t\tmax_chain_length = config_table[level].max_chain;\n\t\t}\n\t\tstrategy = _strategy;\n\t\treturn err;\n\t};\n\n\tthat.deflateSetDictionary = function (strm, dictionary, dictLength) {\n\t\tlet length = dictLength;\n\t\tlet n, index = 0;\n\n\t\tif (!dictionary || status != INIT_STATE)\n\t\t\treturn Z_STREAM_ERROR;\n\n\t\tif (length < MIN_MATCH)\n\t\t\treturn Z_OK;\n\t\tif (length > w_size - MIN_LOOKAHEAD) {\n\t\t\tlength = w_size - MIN_LOOKAHEAD;\n\t\t\tindex = dictLength - length; // use the tail of the dictionary\n\t\t}\n\t\twin.set(dictionary.subarray(index, index + length), 0);\n\n\t\tstrstart = length;\n\t\tblock_start = length;\n\n\t\t// Insert all strings in the hash table (except for the last two bytes).\n\t\t// s->lookahead stays null, so s->ins_h will be recomputed at the next\n\t\t// call of fill_window.\n\n\t\tins_h = win[0] & 0xff;\n\t\tins_h = (((ins_h) << hash_shift) ^ (win[1] & 0xff)) & hash_mask;\n\n\t\tfor (n = 0; n <= length - MIN_MATCH; n++) {\n\t\t\tins_h = (((ins_h) << hash_shift) ^ (win[(n) + (MIN_MATCH - 1)] & 0xff)) & hash_mask;\n\t\t\tprev[n & w_mask] = head[ins_h];\n\t\t\thead[ins_h] = n;\n\t\t}\n\t\treturn Z_OK;\n\t};\n\n\tthat.deflate = function (_strm, flush) {\n\t\tlet i, header, level_flags, old_flush, bstate;\n\n\t\tif (flush > Z_FINISH || flush < 0) {\n\t\t\treturn Z_STREAM_ERROR;\n\t\t}\n\n\t\tif (!_strm.next_out || (!_strm.next_in && _strm.avail_in !== 0) || (status == FINISH_STATE && flush != Z_FINISH)) {\n\t\t\t_strm.msg = z_errmsg[Z_NEED_DICT - (Z_STREAM_ERROR)];\n\t\t\treturn Z_STREAM_ERROR;\n\t\t}\n\t\tif (_strm.avail_out === 0) {\n\t\t\t_strm.msg = z_errmsg[Z_NEED_DICT - (Z_BUF_ERROR)];\n\t\t\treturn Z_BUF_ERROR;\n\t\t}\n\n\t\tstrm = _strm; // just in case\n\t\told_flush = last_flush;\n\t\tlast_flush = flush;\n\n\t\t// Write the zlib header\n\t\tif (status == INIT_STATE) {\n\t\t\theader = (Z_DEFLATED + ((w_bits - 8) << 4)) << 8;\n\t\t\tlevel_flags = ((level - 1) & 0xff) >> 1;\n\n\t\t\tif (level_flags > 3)\n\t\t\t\tlevel_flags = 3;\n\t\t\theader |= (level_flags << 6);\n\t\t\tif (strstart !== 0)\n\t\t\t\theader |= PRESET_DICT;\n\t\t\theader += 31 - (header % 31);\n\n\t\t\tstatus = BUSY_STATE;\n\t\t\tputShortMSB(header);\n\t\t}\n\n\t\t// Flush as much pending output as possible\n\t\tif (that.pending !== 0) {\n\t\t\tstrm.flush_pending();\n\t\t\tif (strm.avail_out === 0) {\n\t\t\t\t// console.log(\" avail_out==0\");\n\t\t\t\t// Since avail_out is 0, deflate will be called again with\n\t\t\t\t// more output space, but possibly with both pending and\n\t\t\t\t// avail_in equal to zero. There won't be anything to do,\n\t\t\t\t// but this is not an error situation so make sure we\n\t\t\t\t// return OK instead of BUF_ERROR at next call of deflate:\n\t\t\t\tlast_flush = -1;\n\t\t\t\treturn Z_OK;\n\t\t\t}\n\n\t\t\t// Make sure there is something to do and avoid duplicate\n\t\t\t// consecutive\n\t\t\t// flushes. For repeated and useless calls with Z_FINISH, we keep\n\t\t\t// returning Z_STREAM_END instead of Z_BUFF_ERROR.\n\t\t} else if (strm.avail_in === 0 && flush <= old_flush && flush != Z_FINISH) {\n\t\t\tstrm.msg = z_errmsg[Z_NEED_DICT - (Z_BUF_ERROR)];\n\t\t\treturn Z_BUF_ERROR;\n\t\t}\n\n\t\t// User must not provide more input after the first FINISH:\n\t\tif (status == FINISH_STATE && strm.avail_in !== 0) {\n\t\t\t_strm.msg = z_errmsg[Z_NEED_DICT - (Z_BUF_ERROR)];\n\t\t\treturn Z_BUF_ERROR;\n\t\t}\n\n\t\t// Start a new block or continue the current one.\n\t\tif (strm.avail_in !== 0 || lookahead !== 0 || (flush != Z_NO_FLUSH && status != FINISH_STATE)) {\n\t\t\tbstate = -1;\n\t\t\tswitch (config_table[level].func) {\n\t\t\t\tcase STORED:\n\t\t\t\t\tbstate = deflate_stored(flush);\n\t\t\t\t\tbreak;\n\t\t\t\tcase FAST:\n\t\t\t\t\tbstate = deflate_fast(flush);\n\t\t\t\t\tbreak;\n\t\t\t\tcase SLOW:\n\t\t\t\t\tbstate = deflate_slow(flush);\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t}\n\n\t\t\tif (bstate == FinishStarted || bstate == FinishDone) {\n\t\t\t\tstatus = FINISH_STATE;\n\t\t\t}\n\t\t\tif (bstate == NeedMore || bstate == FinishStarted) {\n\t\t\t\tif (strm.avail_out === 0) {\n\t\t\t\t\tlast_flush = -1; // avoid BUF_ERROR next call, see above\n\t\t\t\t}\n\t\t\t\treturn Z_OK;\n\t\t\t\t// If flush != Z_NO_FLUSH && avail_out === 0, the next call\n\t\t\t\t// of deflate should use the same flush parameter to make sure\n\t\t\t\t// that the flush is complete. So we don't have to output an\n\t\t\t\t// empty block here, this will be done at next call. This also\n\t\t\t\t// ensures that for a very small output buffer, we emit at most\n\t\t\t\t// one empty block.\n\t\t\t}\n\n\t\t\tif (bstate == BlockDone) {\n\t\t\t\tif (flush == Z_PARTIAL_FLUSH) {\n\t\t\t\t\t_tr_align();\n\t\t\t\t} else { // FULL_FLUSH or SYNC_FLUSH\n\t\t\t\t\t_tr_stored_block(0, 0, false);\n\t\t\t\t\t// For a full flush, this empty block will be recognized\n\t\t\t\t\t// as a special marker by inflate_sync().\n\t\t\t\t\tif (flush == Z_FULL_FLUSH) {\n\t\t\t\t\t\t// state.head[s.hash_size-1]=0;\n\t\t\t\t\t\tfor (i = 0; i < hash_size/*-1*/; i++)\n\t\t\t\t\t\t\t// forget history\n\t\t\t\t\t\t\thead[i] = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstrm.flush_pending();\n\t\t\t\tif (strm.avail_out === 0) {\n\t\t\t\t\tlast_flush = -1; // avoid BUF_ERROR at next call, see above\n\t\t\t\t\treturn Z_OK;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (flush != Z_FINISH)\n\t\t\treturn Z_OK;\n\t\treturn Z_STREAM_END;\n\t};\n}\n\n// ZStream\n\nfunction ZStream() {\n\tconst that = this;\n\tthat.next_in_index = 0;\n\tthat.next_out_index = 0;\n\t// that.next_in; // next input byte\n\tthat.avail_in = 0; // number of bytes available at next_in\n\tthat.total_in = 0; // total nb of input bytes read so far\n\t// that.next_out; // next output byte should be put there\n\tthat.avail_out = 0; // remaining free space at next_out\n\tthat.total_out = 0; // total nb of bytes output so far\n\t// that.msg;\n\t// that.dstate;\n}\n\nZStream.prototype = {\n\tdeflateInit: function (level, bits) {\n\t\tconst that = this;\n\t\tthat.dstate = new Deflate();\n\t\tif (!bits)\n\t\t\tbits = MAX_BITS;\n\t\treturn that.dstate.deflateInit(that, level, bits);\n\t},\n\n\tdeflate: function (flush) {\n\t\tconst that = this;\n\t\tif (!that.dstate) {\n\t\t\treturn Z_STREAM_ERROR;\n\t\t}\n\t\treturn that.dstate.deflate(that, flush);\n\t},\n\n\tdeflateEnd: function () {\n\t\tconst that = this;\n\t\tif (!that.dstate)\n\t\t\treturn Z_STREAM_ERROR;\n\t\tconst ret = that.dstate.deflateEnd();\n\t\tthat.dstate = null;\n\t\treturn ret;\n\t},\n\n\tdeflateParams: function (level, strategy) {\n\t\tconst that = this;\n\t\tif (!that.dstate)\n\t\t\treturn Z_STREAM_ERROR;\n\t\treturn that.dstate.deflateParams(that, level, strategy);\n\t},\n\n\tdeflateSetDictionary: function (dictionary, dictLength) {\n\t\tconst that = this;\n\t\tif (!that.dstate)\n\t\t\treturn Z_STREAM_ERROR;\n\t\treturn that.dstate.deflateSetDictionary(that, dictionary, dictLength);\n\t},\n\n\t// Read a new buffer from the current input stream, update the\n\t// total number of bytes read. All deflate() input goes through\n\t// this function so some applications may wish to modify it to avoid\n\t// allocating a large strm->next_in buffer and copying from it.\n\t// (See also flush_pending()).\n\tread_buf: function (buf, start, size) {\n\t\tconst that = this;\n\t\tlet len = that.avail_in;\n\t\tif (len > size)\n\t\t\tlen = size;\n\t\tif (len === 0)\n\t\t\treturn 0;\n\t\tthat.avail_in -= len;\n\t\tbuf.set(that.next_in.subarray(that.next_in_index, that.next_in_index + len), start);\n\t\tthat.next_in_index += len;\n\t\tthat.total_in += len;\n\t\treturn len;\n\t},\n\n\t// Flush as much pending output as possible. All deflate() output goes\n\t// through this function so some applications may wish to modify it\n\t// to avoid allocating a large strm->next_out buffer and copying into it.\n\t// (See also read_buf()).\n\tflush_pending: function () {\n\t\tconst that = this;\n\t\tlet len = that.dstate.pending;\n\n\t\tif (len > that.avail_out)\n\t\t\tlen = that.avail_out;\n\t\tif (len === 0)\n\t\t\treturn;\n\n\t\t// if (that.dstate.pending_buf.length <= that.dstate.pending_out || that.next_out.length <= that.next_out_index\n\t\t// || that.dstate.pending_buf.length < (that.dstate.pending_out + len) || that.next_out.length < (that.next_out_index +\n\t\t// len)) {\n\t\t// console.log(that.dstate.pending_buf.length + \", \" + that.dstate.pending_out + \", \" + that.next_out.length + \", \" +\n\t\t// that.next_out_index + \", \" + len);\n\t\t// console.log(\"avail_out=\" + that.avail_out);\n\t\t// }\n\n\t\tthat.next_out.set(that.dstate.pending_buf.subarray(that.dstate.pending_out, that.dstate.pending_out + len), that.next_out_index);\n\n\t\tthat.next_out_index += len;\n\t\tthat.dstate.pending_out += len;\n\t\tthat.total_out += len;\n\t\tthat.avail_out -= len;\n\t\tthat.dstate.pending -= len;\n\t\tif (that.dstate.pending === 0) {\n\t\t\tthat.dstate.pending_out = 0;\n\t\t}\n\t}\n};\n\n// Deflate\n\nfunction ZipDeflate(options) {\n\tconst that = this;\n\tconst z = new ZStream();\n\tconst bufsize = getMaximumCompressedSize(options && options.chunkSize ? options.chunkSize : 64 * 1024);\n\tconst flush = Z_NO_FLUSH;\n\tconst buf = new Uint8Array(bufsize);\n\tlet level = options ? options.level : Z_DEFAULT_COMPRESSION;\n\tif (typeof level == \"undefined\")\n\t\tlevel = Z_DEFAULT_COMPRESSION;\n\tz.deflateInit(level);\n\tz.next_out = buf;\n\n\tthat.append = function (data, onprogress) {\n\t\tlet err, array, lastIndex = 0, bufferIndex = 0, bufferSize = 0;\n\t\tconst buffers = [];\n\t\tif (!data.length)\n\t\t\treturn;\n\t\tz.next_in_index = 0;\n\t\tz.next_in = data;\n\t\tz.avail_in = data.length;\n\t\tdo {\n\t\t\tz.next_out_index = 0;\n\t\t\tz.avail_out = bufsize;\n\t\t\terr = z.deflate(flush);\n\t\t\tif (err != Z_OK)\n\t\t\t\tthrow new Error(\"deflating: \" + z.msg);\n\t\t\tif (z.next_out_index)\n\t\t\t\tif (z.next_out_index == bufsize)\n\t\t\t\t\tbuffers.push(new Uint8Array(buf));\n\t\t\t\telse\n\t\t\t\t\tbuffers.push(buf.slice(0, z.next_out_index));\n\t\t\tbufferSize += z.next_out_index;\n\t\t\tif (onprogress && z.next_in_index > 0 && z.next_in_index != lastIndex) {\n\t\t\t\tonprogress(z.next_in_index);\n\t\t\t\tlastIndex = z.next_in_index;\n\t\t\t}\n\t\t} while (z.avail_in > 0 || z.avail_out === 0);\n\t\tif (buffers.length > 1) {\n\t\t\tarray = new Uint8Array(bufferSize);\n\t\t\tbuffers.forEach(function (chunk) {\n\t\t\t\tarray.set(chunk, bufferIndex);\n\t\t\t\tbufferIndex += chunk.length;\n\t\t\t});\n\t\t} else {\n\t\t\tarray = buffers[0] || new Uint8Array(0);\n\t\t}\n\t\treturn array;\n\t};\n\tthat.flush = function () {\n\t\tlet err, array, bufferIndex = 0, bufferSize = 0;\n\t\tconst buffers = [];\n\t\tdo {\n\t\t\tz.next_out_index = 0;\n\t\t\tz.avail_out = bufsize;\n\t\t\terr = z.deflate(Z_FINISH);\n\t\t\tif (err != Z_STREAM_END && err != Z_OK)\n\t\t\t\tthrow new Error(\"deflating: \" + z.msg);\n\t\t\tif (bufsize - z.avail_out > 0)\n\t\t\t\tbuffers.push(buf.slice(0, z.next_out_index));\n\t\t\tbufferSize += z.next_out_index;\n\t\t} while (z.avail_in > 0 || z.avail_out === 0);\n\t\tz.deflateEnd();\n\t\tarray = new Uint8Array(bufferSize);\n\t\tbuffers.forEach(function (chunk) {\n\t\t\tarray.set(chunk, bufferIndex);\n\t\t\tbufferIndex += chunk.length;\n\t\t});\n\t\treturn array;\n\t};\n}\n\nfunction getMaximumCompressedSize(uncompressedSize) {\n\treturn uncompressedSize + (5 * (Math.floor(uncompressedSize / 16383) + 1));\n}\n\nexport default ZipDeflate;","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/*\n * This program is based on JZlib 1.0.2 ymnk, JCraft,Inc.\n * JZlib is based on zlib-1.1.3, so all credit should go authors\n * Jean-loup Gailly(jloup@gzip.org) and Mark Adler(madler@alumni.caltech.edu)\n * and contributors of zlib.\n */\n\n// Global\nconst MAX_BITS = 15;\n\nconst Z_OK = 0;\nconst Z_STREAM_END = 1;\nconst Z_NEED_DICT = 2;\nconst Z_STREAM_ERROR = -2;\nconst Z_DATA_ERROR = -3;\nconst Z_MEM_ERROR = -4;\nconst Z_BUF_ERROR = -5;\n\nconst inflate_mask = [0x00000000, 0x00000001, 0x00000003, 0x00000007, 0x0000000f, 0x0000001f, 0x0000003f, 0x0000007f, 0x000000ff, 0x000001ff, 0x000003ff,\n\t0x000007ff, 0x00000fff, 0x00001fff, 0x00003fff, 0x00007fff, 0x0000ffff];\n\nconst MANY = 1440;\n\n// JZlib version : \"1.0.2\"\nconst Z_NO_FLUSH = 0;\nconst Z_FINISH = 4;\n\n// InfTree\nconst fixed_bl = 9;\nconst fixed_bd = 5;\n\nconst fixed_tl = [96, 7, 256, 0, 8, 80, 0, 8, 16, 84, 8, 115, 82, 7, 31, 0, 8, 112, 0, 8, 48, 0, 9, 192, 80, 7, 10, 0, 8, 96, 0, 8, 32, 0, 9, 160, 0, 8, 0,\n\t0, 8, 128, 0, 8, 64, 0, 9, 224, 80, 7, 6, 0, 8, 88, 0, 8, 24, 0, 9, 144, 83, 7, 59, 0, 8, 120, 0, 8, 56, 0, 9, 208, 81, 7, 17, 0, 8, 104, 0, 8, 40,\n\t0, 9, 176, 0, 8, 8, 0, 8, 136, 0, 8, 72, 0, 9, 240, 80, 7, 4, 0, 8, 84, 0, 8, 20, 85, 8, 227, 83, 7, 43, 0, 8, 116, 0, 8, 52, 0, 9, 200, 81, 7, 13,\n\t0, 8, 100, 0, 8, 36, 0, 9, 168, 0, 8, 4, 0, 8, 132, 0, 8, 68, 0, 9, 232, 80, 7, 8, 0, 8, 92, 0, 8, 28, 0, 9, 152, 84, 7, 83, 0, 8, 124, 0, 8, 60,\n\t0, 9, 216, 82, 7, 23, 0, 8, 108, 0, 8, 44, 0, 9, 184, 0, 8, 12, 0, 8, 140, 0, 8, 76, 0, 9, 248, 80, 7, 3, 0, 8, 82, 0, 8, 18, 85, 8, 163, 83, 7,\n\t35, 0, 8, 114, 0, 8, 50, 0, 9, 196, 81, 7, 11, 0, 8, 98, 0, 8, 34, 0, 9, 164, 0, 8, 2, 0, 8, 130, 0, 8, 66, 0, 9, 228, 80, 7, 7, 0, 8, 90, 0, 8,\n\t26, 0, 9, 148, 84, 7, 67, 0, 8, 122, 0, 8, 58, 0, 9, 212, 82, 7, 19, 0, 8, 106, 0, 8, 42, 0, 9, 180, 0, 8, 10, 0, 8, 138, 0, 8, 74, 0, 9, 244, 80,\n\t7, 5, 0, 8, 86, 0, 8, 22, 192, 8, 0, 83, 7, 51, 0, 8, 118, 0, 8, 54, 0, 9, 204, 81, 7, 15, 0, 8, 102, 0, 8, 38, 0, 9, 172, 0, 8, 6, 0, 8, 134, 0,\n\t8, 70, 0, 9, 236, 80, 7, 9, 0, 8, 94, 0, 8, 30, 0, 9, 156, 84, 7, 99, 0, 8, 126, 0, 8, 62, 0, 9, 220, 82, 7, 27, 0, 8, 110, 0, 8, 46, 0, 9, 188, 0,\n\t8, 14, 0, 8, 142, 0, 8, 78, 0, 9, 252, 96, 7, 256, 0, 8, 81, 0, 8, 17, 85, 8, 131, 82, 7, 31, 0, 8, 113, 0, 8, 49, 0, 9, 194, 80, 7, 10, 0, 8, 97,\n\t0, 8, 33, 0, 9, 162, 0, 8, 1, 0, 8, 129, 0, 8, 65, 0, 9, 226, 80, 7, 6, 0, 8, 89, 0, 8, 25, 0, 9, 146, 83, 7, 59, 0, 8, 121, 0, 8, 57, 0, 9, 210,\n\t81, 7, 17, 0, 8, 105, 0, 8, 41, 0, 9, 178, 0, 8, 9, 0, 8, 137, 0, 8, 73, 0, 9, 242, 80, 7, 4, 0, 8, 85, 0, 8, 21, 80, 8, 258, 83, 7, 43, 0, 8, 117,\n\t0, 8, 53, 0, 9, 202, 81, 7, 13, 0, 8, 101, 0, 8, 37, 0, 9, 170, 0, 8, 5, 0, 8, 133, 0, 8, 69, 0, 9, 234, 80, 7, 8, 0, 8, 93, 0, 8, 29, 0, 9, 154,\n\t84, 7, 83, 0, 8, 125, 0, 8, 61, 0, 9, 218, 82, 7, 23, 0, 8, 109, 0, 8, 45, 0, 9, 186, 0, 8, 13, 0, 8, 141, 0, 8, 77, 0, 9, 250, 80, 7, 3, 0, 8, 83,\n\t0, 8, 19, 85, 8, 195, 83, 7, 35, 0, 8, 115, 0, 8, 51, 0, 9, 198, 81, 7, 11, 0, 8, 99, 0, 8, 35, 0, 9, 166, 0, 8, 3, 0, 8, 131, 0, 8, 67, 0, 9, 230,\n\t80, 7, 7, 0, 8, 91, 0, 8, 27, 0, 9, 150, 84, 7, 67, 0, 8, 123, 0, 8, 59, 0, 9, 214, 82, 7, 19, 0, 8, 107, 0, 8, 43, 0, 9, 182, 0, 8, 11, 0, 8, 139,\n\t0, 8, 75, 0, 9, 246, 80, 7, 5, 0, 8, 87, 0, 8, 23, 192, 8, 0, 83, 7, 51, 0, 8, 119, 0, 8, 55, 0, 9, 206, 81, 7, 15, 0, 8, 103, 0, 8, 39, 0, 9, 174,\n\t0, 8, 7, 0, 8, 135, 0, 8, 71, 0, 9, 238, 80, 7, 9, 0, 8, 95, 0, 8, 31, 0, 9, 158, 84, 7, 99, 0, 8, 127, 0, 8, 63, 0, 9, 222, 82, 7, 27, 0, 8, 111,\n\t0, 8, 47, 0, 9, 190, 0, 8, 15, 0, 8, 143, 0, 8, 79, 0, 9, 254, 96, 7, 256, 0, 8, 80, 0, 8, 16, 84, 8, 115, 82, 7, 31, 0, 8, 112, 0, 8, 48, 0, 9,\n\t193, 80, 7, 10, 0, 8, 96, 0, 8, 32, 0, 9, 161, 0, 8, 0, 0, 8, 128, 0, 8, 64, 0, 9, 225, 80, 7, 6, 0, 8, 88, 0, 8, 24, 0, 9, 145, 83, 7, 59, 0, 8,\n\t120, 0, 8, 56, 0, 9, 209, 81, 7, 17, 0, 8, 104, 0, 8, 40, 0, 9, 177, 0, 8, 8, 0, 8, 136, 0, 8, 72, 0, 9, 241, 80, 7, 4, 0, 8, 84, 0, 8, 20, 85, 8,\n\t227, 83, 7, 43, 0, 8, 116, 0, 8, 52, 0, 9, 201, 81, 7, 13, 0, 8, 100, 0, 8, 36, 0, 9, 169, 0, 8, 4, 0, 8, 132, 0, 8, 68, 0, 9, 233, 80, 7, 8, 0, 8,\n\t92, 0, 8, 28, 0, 9, 153, 84, 7, 83, 0, 8, 124, 0, 8, 60, 0, 9, 217, 82, 7, 23, 0, 8, 108, 0, 8, 44, 0, 9, 185, 0, 8, 12, 0, 8, 140, 0, 8, 76, 0, 9,\n\t249, 80, 7, 3, 0, 8, 82, 0, 8, 18, 85, 8, 163, 83, 7, 35, 0, 8, 114, 0, 8, 50, 0, 9, 197, 81, 7, 11, 0, 8, 98, 0, 8, 34, 0, 9, 165, 0, 8, 2, 0, 8,\n\t130, 0, 8, 66, 0, 9, 229, 80, 7, 7, 0, 8, 90, 0, 8, 26, 0, 9, 149, 84, 7, 67, 0, 8, 122, 0, 8, 58, 0, 9, 213, 82, 7, 19, 0, 8, 106, 0, 8, 42, 0, 9,\n\t181, 0, 8, 10, 0, 8, 138, 0, 8, 74, 0, 9, 245, 80, 7, 5, 0, 8, 86, 0, 8, 22, 192, 8, 0, 83, 7, 51, 0, 8, 118, 0, 8, 54, 0, 9, 205, 81, 7, 15, 0, 8,\n\t102, 0, 8, 38, 0, 9, 173, 0, 8, 6, 0, 8, 134, 0, 8, 70, 0, 9, 237, 80, 7, 9, 0, 8, 94, 0, 8, 30, 0, 9, 157, 84, 7, 99, 0, 8, 126, 0, 8, 62, 0, 9,\n\t221, 82, 7, 27, 0, 8, 110, 0, 8, 46, 0, 9, 189, 0, 8, 14, 0, 8, 142, 0, 8, 78, 0, 9, 253, 96, 7, 256, 0, 8, 81, 0, 8, 17, 85, 8, 131, 82, 7, 31, 0,\n\t8, 113, 0, 8, 49, 0, 9, 195, 80, 7, 10, 0, 8, 97, 0, 8, 33, 0, 9, 163, 0, 8, 1, 0, 8, 129, 0, 8, 65, 0, 9, 227, 80, 7, 6, 0, 8, 89, 0, 8, 25, 0, 9,\n\t147, 83, 7, 59, 0, 8, 121, 0, 8, 57, 0, 9, 211, 81, 7, 17, 0, 8, 105, 0, 8, 41, 0, 9, 179, 0, 8, 9, 0, 8, 137, 0, 8, 73, 0, 9, 243, 80, 7, 4, 0, 8,\n\t85, 0, 8, 21, 80, 8, 258, 83, 7, 43, 0, 8, 117, 0, 8, 53, 0, 9, 203, 81, 7, 13, 0, 8, 101, 0, 8, 37, 0, 9, 171, 0, 8, 5, 0, 8, 133, 0, 8, 69, 0, 9,\n\t235, 80, 7, 8, 0, 8, 93, 0, 8, 29, 0, 9, 155, 84, 7, 83, 0, 8, 125, 0, 8, 61, 0, 9, 219, 82, 7, 23, 0, 8, 109, 0, 8, 45, 0, 9, 187, 0, 8, 13, 0, 8,\n\t141, 0, 8, 77, 0, 9, 251, 80, 7, 3, 0, 8, 83, 0, 8, 19, 85, 8, 195, 83, 7, 35, 0, 8, 115, 0, 8, 51, 0, 9, 199, 81, 7, 11, 0, 8, 99, 0, 8, 35, 0, 9,\n\t167, 0, 8, 3, 0, 8, 131, 0, 8, 67, 0, 9, 231, 80, 7, 7, 0, 8, 91, 0, 8, 27, 0, 9, 151, 84, 7, 67, 0, 8, 123, 0, 8, 59, 0, 9, 215, 82, 7, 19, 0, 8,\n\t107, 0, 8, 43, 0, 9, 183, 0, 8, 11, 0, 8, 139, 0, 8, 75, 0, 9, 247, 80, 7, 5, 0, 8, 87, 0, 8, 23, 192, 8, 0, 83, 7, 51, 0, 8, 119, 0, 8, 55, 0, 9,\n\t207, 81, 7, 15, 0, 8, 103, 0, 8, 39, 0, 9, 175, 0, 8, 7, 0, 8, 135, 0, 8, 71, 0, 9, 239, 80, 7, 9, 0, 8, 95, 0, 8, 31, 0, 9, 159, 84, 7, 99, 0, 8,\n\t127, 0, 8, 63, 0, 9, 223, 82, 7, 27, 0, 8, 111, 0, 8, 47, 0, 9, 191, 0, 8, 15, 0, 8, 143, 0, 8, 79, 0, 9, 255];\nconst fixed_td = [80, 5, 1, 87, 5, 257, 83, 5, 17, 91, 5, 4097, 81, 5, 5, 89, 5, 1025, 85, 5, 65, 93, 5, 16385, 80, 5, 3, 88, 5, 513, 84, 5, 33, 92, 5,\n\t8193, 82, 5, 9, 90, 5, 2049, 86, 5, 129, 192, 5, 24577, 80, 5, 2, 87, 5, 385, 83, 5, 25, 91, 5, 6145, 81, 5, 7, 89, 5, 1537, 85, 5, 97, 93, 5,\n\t24577, 80, 5, 4, 88, 5, 769, 84, 5, 49, 92, 5, 12289, 82, 5, 13, 90, 5, 3073, 86, 5, 193, 192, 5, 24577];\n\n// Tables for deflate from PKZIP's appnote.txt.\nconst cplens = [ // Copy lengths for literal codes 257..285\n\t3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0];\n\n// see note #13 above about 258\nconst cplext = [ // Extra bits for literal codes 257..285\n\t0, 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, 112, 112 // 112==invalid\n];\n\nconst cpdist = [ // Copy offsets for distance codes 0..29\n\t1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577];\n\nconst cpdext = [ // Extra bits for distance codes\n\t0, 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\n// If BMAX needs to be larger than 16, then h and x[] should be uLong.\nconst BMAX = 15; // maximum bit length of any code\n\nfunction InfTree() {\n\tconst that = this;\n\n\tlet hn; // hufts used in space\n\tlet v; // work area for huft_build\n\tlet c; // bit length count table\n\tlet r; // table entry for structure assignment\n\tlet u; // table stack\n\tlet x; // bit offsets, then code stack\n\n\tfunction huft_build(b, // code lengths in bits (all assumed <=\n\t\t// BMAX)\n\t\tbindex, n, // number of codes (assumed <= 288)\n\t\ts, // number of simple-valued codes (0..s-1)\n\t\td, // list of base values for non-simple codes\n\t\te, // list of extra bits for non-simple codes\n\t\tt, // result: starting table\n\t\tm, // maximum lookup bits, returns actual\n\t\thp,// space for trees\n\t\thn,// hufts used in space\n\t\tv // working area: values in order of bit length\n\t) {\n\t\t// Given a list of code lengths and a maximum table size, make a set of\n\t\t// tables to decode that set of codes. Return Z_OK on success,\n\t\t// Z_BUF_ERROR\n\t\t// if the given code set is incomplete (the tables are still built in\n\t\t// this\n\t\t// case), Z_DATA_ERROR if the input is invalid (an over-subscribed set\n\t\t// of\n\t\t// lengths), or Z_MEM_ERROR if not enough memory.\n\n\t\tlet a; // counter for codes of length k\n\t\tlet f; // i repeats in table every f entries\n\t\tlet g; // maximum code length\n\t\tlet h; // table level\n\t\tlet i; // counter, current code\n\t\tlet j; // counter\n\t\tlet k; // number of bits in current code\n\t\tlet l; // bits per table (returned in m)\n\t\tlet mask; // (1 << w) - 1, to avoid cc -O bug on HP\n\t\tlet p; // pointer into c[], b[], or v[]\n\t\tlet q; // points to current table\n\t\tlet w; // bits before this table == (l * h)\n\t\tlet xp; // pointer into x\n\t\tlet y; // number of dummy codes added\n\t\tlet z; // number of entries in current table\n\n\t\t// Generate counts for each bit length\n\n\t\tp = 0;\n\t\ti = n;\n\t\tdo {\n\t\t\tc[b[bindex + p]]++;\n\t\t\tp++;\n\t\t\ti--; // assume all entries <= BMAX\n\t\t} while (i !== 0);\n\n\t\tif (c[0] == n) { // null input--all zero length codes\n\t\t\tt[0] = -1;\n\t\t\tm[0] = 0;\n\t\t\treturn Z_OK;\n\t\t}\n\n\t\t// Find minimum and maximum length, bound *m by those\n\t\tl = m[0];\n\t\tfor (j = 1; j <= BMAX; j++)\n\t\t\tif (c[j] !== 0)\n\t\t\t\tbreak;\n\t\tk = j; // minimum code length\n\t\tif (l < j) {\n\t\t\tl = j;\n\t\t}\n\t\tfor (i = BMAX; i !== 0; i--) {\n\t\t\tif (c[i] !== 0)\n\t\t\t\tbreak;\n\t\t}\n\t\tg = i; // maximum code length\n\t\tif (l > i) {\n\t\t\tl = i;\n\t\t}\n\t\tm[0] = l;\n\n\t\t// Adjust last length count to fill out codes, if needed\n\t\tfor (y = 1 << j; j < i; j++, y <<= 1) {\n\t\t\tif ((y -= c[j]) < 0) {\n\t\t\t\treturn Z_DATA_ERROR;\n\t\t\t}\n\t\t}\n\t\tif ((y -= c[i]) < 0) {\n\t\t\treturn Z_DATA_ERROR;\n\t\t}\n\t\tc[i] += y;\n\n\t\t// Generate starting offsets into the value table for each length\n\t\tx[1] = j = 0;\n\t\tp = 1;\n\t\txp = 2;\n\t\twhile (--i !== 0) { // note that i == g from above\n\t\t\tx[xp] = (j += c[p]);\n\t\t\txp++;\n\t\t\tp++;\n\t\t}\n\n\t\t// Make a table of values in order of bit lengths\n\t\ti = 0;\n\t\tp = 0;\n\t\tdo {\n\t\t\tif ((j = b[bindex + p]) !== 0) {\n\t\t\t\tv[x[j]++] = i;\n\t\t\t}\n\t\t\tp++;\n\t\t} while (++i < n);\n\t\tn = x[g]; // set n to length of v\n\n\t\t// Generate the Huffman codes and for each, make the table entries\n\t\tx[0] = i = 0; // first Huffman code is zero\n\t\tp = 0; // grab values in bit order\n\t\th = -1; // no tables yet--level -1\n\t\tw = -l; // bits decoded == (l * h)\n\t\tu[0] = 0; // just to keep compilers happy\n\t\tq = 0; // ditto\n\t\tz = 0; // ditto\n\n\t\t// go through the bit lengths (k already is bits in shortest code)\n\t\tfor (; k <= g; k++) {\n\t\t\ta = c[k];\n\t\t\twhile (a-- !== 0) {\n\t\t\t\t// here i is the Huffman code of length k bits for value *p\n\t\t\t\t// make tables up to required level\n\t\t\t\twhile (k > w + l) {\n\t\t\t\t\th++;\n\t\t\t\t\tw += l; // previous table always l bits\n\t\t\t\t\t// compute minimum size table less than or equal to l bits\n\t\t\t\t\tz = g - w;\n\t\t\t\t\tz = (z > l) ? l : z; // table size upper limit\n\t\t\t\t\tif ((f = 1 << (j = k - w)) > a + 1) { // try a k-w bit table\n\t\t\t\t\t\t// too few codes for\n\t\t\t\t\t\t// k-w bit table\n\t\t\t\t\t\tf -= a + 1; // deduct codes from patterns left\n\t\t\t\t\t\txp = k;\n\t\t\t\t\t\tif (j < z) {\n\t\t\t\t\t\t\twhile (++j < z) { // try smaller tables up to z bits\n\t\t\t\t\t\t\t\tif ((f <<= 1) <= c[++xp])\n\t\t\t\t\t\t\t\t\tbreak; // enough codes to use up j bits\n\t\t\t\t\t\t\t\tf -= c[xp]; // else deduct codes from patterns\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tz = 1 << j; // table entries for j-bit table\n\n\t\t\t\t\t// allocate new table\n\t\t\t\t\tif (hn[0] + z > MANY) { // (note: doesn't matter for fixed)\n\t\t\t\t\t\treturn Z_DATA_ERROR; // overflow of MANY\n\t\t\t\t\t}\n\t\t\t\t\tu[h] = q = /* hp+ */hn[0]; // DEBUG\n\t\t\t\t\thn[0] += z;\n\n\t\t\t\t\t// connect to last table, if there is one\n\t\t\t\t\tif (h !== 0) {\n\t\t\t\t\t\tx[h] = i; // save pattern for backing up\n\t\t\t\t\t\tr[0] = /* (byte) */j; // bits in this table\n\t\t\t\t\t\tr[1] = /* (byte) */l; // bits to dump before this table\n\t\t\t\t\t\tj = i >>> (w - l);\n\t\t\t\t\t\tr[2] = /* (int) */(q - u[h - 1] - j); // offset to this table\n\t\t\t\t\t\thp.set(r, (u[h - 1] + j) * 3);\n\t\t\t\t\t\t// to\n\t\t\t\t\t\t// last\n\t\t\t\t\t\t// table\n\t\t\t\t\t} else {\n\t\t\t\t\t\tt[0] = q; // first table is returned result\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// set up table entry in r\n\t\t\t\tr[1] = /* (byte) */(k - w);\n\t\t\t\tif (p >= n) {\n\t\t\t\t\tr[0] = 128 + 64; // out of values--invalid code\n\t\t\t\t} else if (v[p] < s) {\n\t\t\t\t\tr[0] = /* (byte) */(v[p] < 256 ? 0 : 32 + 64); // 256 is\n\t\t\t\t\t// end-of-block\n\t\t\t\t\tr[2] = v[p++]; // simple code is just the value\n\t\t\t\t} else {\n\t\t\t\t\tr[0] = /* (byte) */(e[v[p] - s] + 16 + 64); // non-simple--look\n\t\t\t\t\t// up in lists\n\t\t\t\t\tr[2] = d[v[p++] - s];\n\t\t\t\t}\n\n\t\t\t\t// fill code-like entries with r\n\t\t\t\tf = 1 << (k - w);\n\t\t\t\tfor (j = i >>> w; j < z; j += f) {\n\t\t\t\t\thp.set(r, (q + j) * 3);\n\t\t\t\t}\n\n\t\t\t\t// backwards increment the k-bit code i\n\t\t\t\tfor (j = 1 << (k - 1); (i & j) !== 0; j >>>= 1) {\n\t\t\t\t\ti ^= j;\n\t\t\t\t}\n\t\t\t\ti ^= j;\n\n\t\t\t\t// backup over finished tables\n\t\t\t\tmask = (1 << w) - 1; // needed on HP, cc -O bug\n\t\t\t\twhile ((i & mask) != x[h]) {\n\t\t\t\t\th--; // don't need to update q\n\t\t\t\t\tw -= l;\n\t\t\t\t\tmask = (1 << w) - 1;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// Return Z_BUF_ERROR if we were given an incomplete table\n\t\treturn y !== 0 && g != 1 ? Z_BUF_ERROR : Z_OK;\n\t}\n\n\tfunction initWorkArea(vsize) {\n\t\tlet i;\n\t\tif (!hn) {\n\t\t\thn = []; // []; //new Array(1);\n\t\t\tv = []; // new Array(vsize);\n\t\t\tc = new Int32Array(BMAX + 1); // new Array(BMAX + 1);\n\t\t\tr = []; // new Array(3);\n\t\t\tu = new Int32Array(BMAX); // new Array(BMAX);\n\t\t\tx = new Int32Array(BMAX + 1); // new Array(BMAX + 1);\n\t\t}\n\t\tif (v.length < vsize) {\n\t\t\tv = []; // new Array(vsize);\n\t\t}\n\t\tfor (i = 0; i < vsize; i++) {\n\t\t\tv[i] = 0;\n\t\t}\n\t\tfor (i = 0; i < BMAX + 1; i++) {\n\t\t\tc[i] = 0;\n\t\t}\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\tr[i] = 0;\n\t\t}\n\t\t// for(int i=0; i<BMAX; i++){u[i]=0;}\n\t\tu.set(c.subarray(0, BMAX), 0);\n\t\t// for(int i=0; i<BMAX+1; i++){x[i]=0;}\n\t\tx.set(c.subarray(0, BMAX + 1), 0);\n\t}\n\n\tthat.inflate_trees_bits = function (c, // 19 code lengths\n\t\tbb, // bits tree desired/actual depth\n\t\ttb, // bits tree result\n\t\thp, // space for trees\n\t\tz // for messages\n\t) {\n\t\tlet result;\n\t\tinitWorkArea(19);\n\t\thn[0] = 0;\n\t\tresult = huft_build(c, 0, 19, 19, null, null, tb, bb, hp, hn, v);\n\n\t\tif (result == Z_DATA_ERROR) {\n\t\t\tz.msg = \"oversubscribed dynamic bit lengths tree\";\n\t\t} else if (result == Z_BUF_ERROR || bb[0] === 0) {\n\t\t\tz.msg = \"incomplete dynamic bit lengths tree\";\n\t\t\tresult = Z_DATA_ERROR;\n\t\t}\n\t\treturn result;\n\t};\n\n\tthat.inflate_trees_dynamic = function (nl, // number of literal/length codes\n\t\tnd, // number of distance codes\n\t\tc, // that many (total) code lengths\n\t\tbl, // literal desired/actual bit depth\n\t\tbd, // distance desired/actual bit depth\n\t\ttl, // literal/length tree result\n\t\ttd, // distance tree result\n\t\thp, // space for trees\n\t\tz // for messages\n\t) {\n\t\tlet result;\n\n\t\t// build literal/length tree\n\t\tinitWorkArea(288);\n\t\thn[0] = 0;\n\t\tresult = huft_build(c, 0, nl, 257, cplens, cplext, tl, bl, hp, hn, v);\n\t\tif (result != Z_OK || bl[0] === 0) {\n\t\t\tif (result == Z_DATA_ERROR) {\n\t\t\t\tz.msg = \"oversubscribed literal/length tree\";\n\t\t\t} else if (result != Z_MEM_ERROR) {\n\t\t\t\tz.msg = \"incomplete literal/length tree\";\n\t\t\t\tresult = Z_DATA_ERROR;\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\n\t\t// build distance tree\n\t\tinitWorkArea(288);\n\t\tresult = huft_build(c, nl, nd, 0, cpdist, cpdext, td, bd, hp, hn, v);\n\n\t\tif (result != Z_OK || (bd[0] === 0 && nl > 257)) {\n\t\t\tif (result == Z_DATA_ERROR) {\n\t\t\t\tz.msg = \"oversubscribed distance tree\";\n\t\t\t} else if (result == Z_BUF_ERROR) {\n\t\t\t\tz.msg = \"incomplete distance tree\";\n\t\t\t\tresult = Z_DATA_ERROR;\n\t\t\t} else if (result != Z_MEM_ERROR) {\n\t\t\t\tz.msg = \"empty distance tree with lengths\";\n\t\t\t\tresult = Z_DATA_ERROR;\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\n\t\treturn Z_OK;\n\t};\n\n}\n\nInfTree.inflate_trees_fixed = function (bl, // literal desired/actual bit depth\n\tbd, // distance desired/actual bit depth\n\ttl,// literal/length tree result\n\ttd// distance tree result\n) {\n\tbl[0] = fixed_bl;\n\tbd[0] = fixed_bd;\n\ttl[0] = fixed_tl;\n\ttd[0] = fixed_td;\n\treturn Z_OK;\n};\n\n// InfCodes\n\n// waiting for \"i:\"=input,\n// \"o:\"=output,\n// \"x:\"=nothing\nconst START = 0; // x: set up for LEN\nconst LEN = 1; // i: get length/literal/eob next\nconst LENEXT = 2; // i: getting length extra (have base)\nconst DIST = 3; // i: get distance next\nconst DISTEXT = 4;// i: getting distance extra\nconst COPY = 5; // o: copying bytes in win, waiting\n// for space\nconst LIT = 6; // o: got literal, waiting for output\n// space\nconst WASH = 7; // o: got eob, possibly still output\n// waiting\nconst END = 8; // x: got eob and all data flushed\nconst BADCODE = 9;// x: got error\n\nfunction InfCodes() {\n\tconst that = this;\n\n\tlet mode; // current inflate_codes mode\n\n\t// mode dependent information\n\tlet len = 0;\n\n\tlet tree; // pointer into tree\n\tlet tree_index = 0;\n\tlet need = 0; // bits needed\n\n\tlet lit = 0;\n\n\t// if EXT or COPY, where and how much\n\tlet get = 0; // bits to get for extra\n\tlet dist = 0; // distance back to copy from\n\n\tlet lbits = 0; // ltree bits decoded per branch\n\tlet dbits = 0; // dtree bits decoder per branch\n\tlet ltree; // literal/length/eob tree\n\tlet ltree_index = 0; // literal/length/eob tree\n\tlet dtree; // distance tree\n\tlet dtree_index = 0; // distance tree\n\n\t// Called with number of bytes left to write in win at least 258\n\t// (the maximum string length) and number of input bytes available\n\t// at least ten. The ten bytes are six bytes for the longest length/\n\t// distance pair plus four bytes for overloading the bit buffer.\n\n\tfunction inflate_fast(bl, bd, tl, tl_index, td, td_index, s, z) {\n\t\tlet t; // temporary pointer\n\t\tlet tp; // temporary pointer\n\t\tlet tp_index; // temporary pointer\n\t\tlet e; // extra bits or operation\n\t\tlet b; // bit buffer\n\t\tlet k; // bits in bit buffer\n\t\tlet p; // input data pointer\n\t\tlet n; // bytes available there\n\t\tlet q; // output win write pointer\n\t\tlet m; // bytes to end of win or read pointer\n\t\tlet ml; // mask for literal/length tree\n\t\tlet md; // mask for distance tree\n\t\tlet c; // bytes to copy\n\t\tlet d; // distance back to copy from\n\t\tlet r; // copy source pointer\n\n\t\tlet tp_index_t_3; // (tp_index+t)*3\n\n\t\t// load input, output, bit values\n\t\tp = z.next_in_index;\n\t\tn = z.avail_in;\n\t\tb = s.bitb;\n\t\tk = s.bitk;\n\t\tq = s.write;\n\t\tm = q < s.read ? s.read - q - 1 : s.end - q;\n\n\t\t// initialize masks\n\t\tml = inflate_mask[bl];\n\t\tmd = inflate_mask[bd];\n\n\t\t// do until not enough input or output space for fast loop\n\t\tdo { // assume called with m >= 258 && n >= 10\n\t\t\t// get literal/length code\n\t\t\twhile (k < (20)) { // max bits for literal/length code\n\t\t\t\tn--;\n\t\t\t\tb |= (z.read_byte(p++) & 0xff) << k;\n\t\t\t\tk += 8;\n\t\t\t}\n\n\t\t\tt = b & ml;\n\t\t\ttp = tl;\n\t\t\ttp_index = tl_index;\n\t\t\ttp_index_t_3 = (tp_index + t) * 3;\n\t\t\tif ((e = tp[tp_index_t_3]) === 0) {\n\t\t\t\tb >>= (tp[tp_index_t_3 + 1]);\n\t\t\t\tk -= (tp[tp_index_t_3 + 1]);\n\n\t\t\t\ts.win[q++] = /* (byte) */tp[tp_index_t_3 + 2];\n\t\t\t\tm--;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tdo {\n\n\t\t\t\tb >>= (tp[tp_index_t_3 + 1]);\n\t\t\t\tk -= (tp[tp_index_t_3 + 1]);\n\n\t\t\t\tif ((e & 16) !== 0) {\n\t\t\t\t\te &= 15;\n\t\t\t\t\tc = tp[tp_index_t_3 + 2] + (/* (int) */b & inflate_mask[e]);\n\n\t\t\t\t\tb >>= e;\n\t\t\t\t\tk -= e;\n\n\t\t\t\t\t// decode distance base of block to copy\n\t\t\t\t\twhile (k < (15)) { // max bits for distance code\n\t\t\t\t\t\tn--;\n\t\t\t\t\t\tb |= (z.read_byte(p++) & 0xff) << k;\n\t\t\t\t\t\tk += 8;\n\t\t\t\t\t}\n\n\t\t\t\t\tt = b & md;\n\t\t\t\t\ttp = td;\n\t\t\t\t\ttp_index = td_index;\n\t\t\t\t\ttp_index_t_3 = (tp_index + t) * 3;\n\t\t\t\t\te = tp[tp_index_t_3];\n\n\t\t\t\t\tdo {\n\n\t\t\t\t\t\tb >>= (tp[tp_index_t_3 + 1]);\n\t\t\t\t\t\tk -= (tp[tp_index_t_3 + 1]);\n\n\t\t\t\t\t\tif ((e & 16) !== 0) {\n\t\t\t\t\t\t\t// get extra bits to add to distance base\n\t\t\t\t\t\t\te &= 15;\n\t\t\t\t\t\t\twhile (k < (e)) { // get extra bits (up to 13)\n\t\t\t\t\t\t\t\tn--;\n\t\t\t\t\t\t\t\tb |= (z.read_byte(p++) & 0xff) << k;\n\t\t\t\t\t\t\t\tk += 8;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\td = tp[tp_index_t_3 + 2] + (b & inflate_mask[e]);\n\n\t\t\t\t\t\t\tb >>= (e);\n\t\t\t\t\t\t\tk -= (e);\n\n\t\t\t\t\t\t\t// do the copy\n\t\t\t\t\t\t\tm -= c;\n\t\t\t\t\t\t\tif (q >= d) { // offset before dest\n\t\t\t\t\t\t\t\t// just copy\n\t\t\t\t\t\t\t\tr = q - d;\n\t\t\t\t\t\t\t\tif (q - r > 0 && 2 > (q - r)) {\n\t\t\t\t\t\t\t\t\ts.win[q++] = s.win[r++]; // minimum\n\t\t\t\t\t\t\t\t\t// count is\n\t\t\t\t\t\t\t\t\t// three,\n\t\t\t\t\t\t\t\t\ts.win[q++] = s.win[r++]; // so unroll\n\t\t\t\t\t\t\t\t\t// loop a\n\t\t\t\t\t\t\t\t\t// little\n\t\t\t\t\t\t\t\t\tc -= 2;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts.win.set(s.win.subarray(r, r + 2), q);\n\t\t\t\t\t\t\t\t\tq += 2;\n\t\t\t\t\t\t\t\t\tr += 2;\n\t\t\t\t\t\t\t\t\tc -= 2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else { // else offset after destination\n\t\t\t\t\t\t\t\tr = q - d;\n\t\t\t\t\t\t\t\tdo {\n\t\t\t\t\t\t\t\t\tr += s.end; // force pointer in win\n\t\t\t\t\t\t\t\t} while (r < 0); // covers invalid distances\n\t\t\t\t\t\t\t\te = s.end - r;\n\t\t\t\t\t\t\t\tif (c > e) { // if source crosses,\n\t\t\t\t\t\t\t\t\tc -= e; // wrapped copy\n\t\t\t\t\t\t\t\t\tif (q - r > 0 && e > (q - r)) {\n\t\t\t\t\t\t\t\t\t\tdo {\n\t\t\t\t\t\t\t\t\t\t\ts.win[q++] = s.win[r++];\n\t\t\t\t\t\t\t\t\t\t} while (--e !== 0);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts.win.set(s.win.subarray(r, r + e), q);\n\t\t\t\t\t\t\t\t\t\tq += e;\n\t\t\t\t\t\t\t\t\t\tr += e;\n\t\t\t\t\t\t\t\t\t\te = 0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tr = 0; // copy rest from start of win\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// copy all or what's left\n\t\t\t\t\t\t\tif (q - r > 0 && c > (q - r)) {\n\t\t\t\t\t\t\t\tdo {\n\t\t\t\t\t\t\t\t\ts.win[q++] = s.win[r++];\n\t\t\t\t\t\t\t\t} while (--c !== 0);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts.win.set(s.win.subarray(r, r + c), q);\n\t\t\t\t\t\t\t\tq += c;\n\t\t\t\t\t\t\t\tr += c;\n\t\t\t\t\t\t\t\tc = 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t} else if ((e & 64) === 0) {\n\t\t\t\t\t\t\tt += tp[tp_index_t_3 + 2];\n\t\t\t\t\t\t\tt += (b & inflate_mask[e]);\n\t\t\t\t\t\t\ttp_index_t_3 = (tp_index + t) * 3;\n\t\t\t\t\t\t\te = tp[tp_index_t_3];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tz.msg = \"invalid distance code\";\n\n\t\t\t\t\t\t\tc = z.avail_in - n;\n\t\t\t\t\t\t\tc = (k >> 3) < c ? k >> 3 : c;\n\t\t\t\t\t\t\tn += c;\n\t\t\t\t\t\t\tp -= c;\n\t\t\t\t\t\t\tk -= c << 3;\n\n\t\t\t\t\t\t\ts.bitb = b;\n\t\t\t\t\t\t\ts.bitk = k;\n\t\t\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\t\t\ts.write = q;\n\n\t\t\t\t\t\t\treturn Z_DATA_ERROR;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// eslint-disable-next-line no-constant-condition\n\t\t\t\t\t} while (true);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif ((e & 64) === 0) {\n\t\t\t\t\tt += tp[tp_index_t_3 + 2];\n\t\t\t\t\tt += (b & inflate_mask[e]);\n\t\t\t\t\ttp_index_t_3 = (tp_index + t) * 3;\n\t\t\t\t\tif ((e = tp[tp_index_t_3]) === 0) {\n\n\t\t\t\t\t\tb >>= (tp[tp_index_t_3 + 1]);\n\t\t\t\t\t\tk -= (tp[tp_index_t_3 + 1]);\n\n\t\t\t\t\t\ts.win[q++] = /* (byte) */tp[tp_index_t_3 + 2];\n\t\t\t\t\t\tm--;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} else if ((e & 32) !== 0) {\n\n\t\t\t\t\tc = z.avail_in - n;\n\t\t\t\t\tc = (k >> 3) < c ? k >> 3 : c;\n\t\t\t\t\tn += c;\n\t\t\t\t\tp -= c;\n\t\t\t\t\tk -= c << 3;\n\n\t\t\t\t\ts.bitb = b;\n\t\t\t\t\ts.bitk = k;\n\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\ts.write = q;\n\n\t\t\t\t\treturn Z_STREAM_END;\n\t\t\t\t} else {\n\t\t\t\t\tz.msg = \"invalid literal/length code\";\n\n\t\t\t\t\tc = z.avail_in - n;\n\t\t\t\t\tc = (k >> 3) < c ? k >> 3 : c;\n\t\t\t\t\tn += c;\n\t\t\t\t\tp -= c;\n\t\t\t\t\tk -= c << 3;\n\n\t\t\t\t\ts.bitb = b;\n\t\t\t\t\ts.bitk = k;\n\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\ts.write = q;\n\n\t\t\t\t\treturn Z_DATA_ERROR;\n\t\t\t\t}\n\t\t\t\t// eslint-disable-next-line no-constant-condition\n\t\t\t} while (true);\n\t\t} while (m >= 258 && n >= 10);\n\n\t\t// not enough input or output--restore pointers and return\n\t\tc = z.avail_in - n;\n\t\tc = (k >> 3) < c ? k >> 3 : c;\n\t\tn += c;\n\t\tp -= c;\n\t\tk -= c << 3;\n\n\t\ts.bitb = b;\n\t\ts.bitk = k;\n\t\tz.avail_in = n;\n\t\tz.total_in += p - z.next_in_index;\n\t\tz.next_in_index = p;\n\t\ts.write = q;\n\n\t\treturn Z_OK;\n\t}\n\n\tthat.init = function (bl, bd, tl, tl_index, td, td_index) {\n\t\tmode = START;\n\t\tlbits = /* (byte) */bl;\n\t\tdbits = /* (byte) */bd;\n\t\tltree = tl;\n\t\tltree_index = tl_index;\n\t\tdtree = td;\n\t\tdtree_index = td_index;\n\t\ttree = null;\n\t};\n\n\tthat.proc = function (s, z, r) {\n\t\tlet j; // temporary storage\n\t\tlet tindex; // temporary pointer\n\t\tlet e; // extra bits or operation\n\t\tlet b = 0; // bit buffer\n\t\tlet k = 0; // bits in bit buffer\n\t\tlet p = 0; // input data pointer\n\t\tlet n; // bytes available there\n\t\tlet q; // output win write pointer\n\t\tlet m; // bytes to end of win or read pointer\n\t\tlet f; // pointer to copy strings from\n\n\t\t// copy input/output information to locals (UPDATE macro restores)\n\t\tp = z.next_in_index;\n\t\tn = z.avail_in;\n\t\tb = s.bitb;\n\t\tk = s.bitk;\n\t\tq = s.write;\n\t\tm = q < s.read ? s.read - q - 1 : s.end - q;\n\n\t\t// process input and output based on current state\n\t\t// eslint-disable-next-line no-constant-condition\n\t\twhile (true) {\n\t\t\tswitch (mode) {\n\t\t\t\t// waiting for \"i:\"=input, \"o:\"=output, \"x:\"=nothing\n\t\t\t\tcase START: // x: set up for LEN\n\t\t\t\t\tif (m >= 258 && n >= 10) {\n\n\t\t\t\t\t\ts.bitb = b;\n\t\t\t\t\t\ts.bitk = k;\n\t\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\t\ts.write = q;\n\t\t\t\t\t\tr = inflate_fast(lbits, dbits, ltree, ltree_index, dtree, dtree_index, s, z);\n\n\t\t\t\t\t\tp = z.next_in_index;\n\t\t\t\t\t\tn = z.avail_in;\n\t\t\t\t\t\tb = s.bitb;\n\t\t\t\t\t\tk = s.bitk;\n\t\t\t\t\t\tq = s.write;\n\t\t\t\t\t\tm = q < s.read ? s.read - q - 1 : s.end - q;\n\n\t\t\t\t\t\tif (r != Z_OK) {\n\t\t\t\t\t\t\tmode = r == Z_STREAM_END ? WASH : BADCODE;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tneed = lbits;\n\t\t\t\t\ttree = ltree;\n\t\t\t\t\ttree_index = ltree_index;\n\n\t\t\t\t\tmode = LEN;\n\t\t\t\t/* falls through */\n\t\t\t\tcase LEN: // i: get length/literal/eob next\n\t\t\t\t\tj = need;\n\n\t\t\t\t\twhile (k < (j)) {\n\t\t\t\t\t\tif (n !== 0)\n\t\t\t\t\t\t\tr = Z_OK;\n\t\t\t\t\t\telse {\n\n\t\t\t\t\t\t\ts.bitb = b;\n\t\t\t\t\t\t\ts.bitk = k;\n\t\t\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\t\t\ts.write = q;\n\t\t\t\t\t\t\treturn s.inflate_flush(z, r);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tn--;\n\t\t\t\t\t\tb |= (z.read_byte(p++) & 0xff) << k;\n\t\t\t\t\t\tk += 8;\n\t\t\t\t\t}\n\n\t\t\t\t\ttindex = (tree_index + (b & inflate_mask[j])) * 3;\n\n\t\t\t\t\tb >>>= (tree[tindex + 1]);\n\t\t\t\t\tk -= (tree[tindex + 1]);\n\n\t\t\t\t\te = tree[tindex];\n\n\t\t\t\t\tif (e === 0) { // literal\n\t\t\t\t\t\tlit = tree[tindex + 2];\n\t\t\t\t\t\tmode = LIT;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif ((e & 16) !== 0) { // length\n\t\t\t\t\t\tget = e & 15;\n\t\t\t\t\t\tlen = tree[tindex + 2];\n\t\t\t\t\t\tmode = LENEXT;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif ((e & 64) === 0) { // next table\n\t\t\t\t\t\tneed = e;\n\t\t\t\t\t\ttree_index = tindex / 3 + tree[tindex + 2];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif ((e & 32) !== 0) { // end of block\n\t\t\t\t\t\tmode = WASH;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tmode = BADCODE; // invalid code\n\t\t\t\t\tz.msg = \"invalid literal/length code\";\n\t\t\t\t\tr = Z_DATA_ERROR;\n\n\t\t\t\t\ts.bitb = b;\n\t\t\t\t\ts.bitk = k;\n\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\ts.write = q;\n\t\t\t\t\treturn s.inflate_flush(z, r);\n\n\t\t\t\tcase LENEXT: // i: getting length extra (have base)\n\t\t\t\t\tj = get;\n\n\t\t\t\t\twhile (k < (j)) {\n\t\t\t\t\t\tif (n !== 0)\n\t\t\t\t\t\t\tr = Z_OK;\n\t\t\t\t\t\telse {\n\n\t\t\t\t\t\t\ts.bitb = b;\n\t\t\t\t\t\t\ts.bitk = k;\n\t\t\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\t\t\ts.write = q;\n\t\t\t\t\t\t\treturn s.inflate_flush(z, r);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tn--;\n\t\t\t\t\t\tb |= (z.read_byte(p++) & 0xff) << k;\n\t\t\t\t\t\tk += 8;\n\t\t\t\t\t}\n\n\t\t\t\t\tlen += (b & inflate_mask[j]);\n\n\t\t\t\t\tb >>= j;\n\t\t\t\t\tk -= j;\n\n\t\t\t\t\tneed = dbits;\n\t\t\t\t\ttree = dtree;\n\t\t\t\t\ttree_index = dtree_index;\n\t\t\t\t\tmode = DIST;\n\t\t\t\t/* falls through */\n\t\t\t\tcase DIST: // i: get distance next\n\t\t\t\t\tj = need;\n\n\t\t\t\t\twhile (k < (j)) {\n\t\t\t\t\t\tif (n !== 0)\n\t\t\t\t\t\t\tr = Z_OK;\n\t\t\t\t\t\telse {\n\n\t\t\t\t\t\t\ts.bitb = b;\n\t\t\t\t\t\t\ts.bitk = k;\n\t\t\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\t\t\ts.write = q;\n\t\t\t\t\t\t\treturn s.inflate_flush(z, r);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tn--;\n\t\t\t\t\t\tb |= (z.read_byte(p++) & 0xff) << k;\n\t\t\t\t\t\tk += 8;\n\t\t\t\t\t}\n\n\t\t\t\t\ttindex = (tree_index + (b & inflate_mask[j])) * 3;\n\n\t\t\t\t\tb >>= tree[tindex + 1];\n\t\t\t\t\tk -= tree[tindex + 1];\n\n\t\t\t\t\te = (tree[tindex]);\n\t\t\t\t\tif ((e & 16) !== 0) { // distance\n\t\t\t\t\t\tget = e & 15;\n\t\t\t\t\t\tdist = tree[tindex + 2];\n\t\t\t\t\t\tmode = DISTEXT;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif ((e & 64) === 0) { // next table\n\t\t\t\t\t\tneed = e;\n\t\t\t\t\t\ttree_index = tindex / 3 + tree[tindex + 2];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tmode = BADCODE; // invalid code\n\t\t\t\t\tz.msg = \"invalid distance code\";\n\t\t\t\t\tr = Z_DATA_ERROR;\n\n\t\t\t\t\ts.bitb = b;\n\t\t\t\t\ts.bitk = k;\n\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\ts.write = q;\n\t\t\t\t\treturn s.inflate_flush(z, r);\n\n\t\t\t\tcase DISTEXT: // i: getting distance extra\n\t\t\t\t\tj = get;\n\n\t\t\t\t\twhile (k < (j)) {\n\t\t\t\t\t\tif (n !== 0)\n\t\t\t\t\t\t\tr = Z_OK;\n\t\t\t\t\t\telse {\n\n\t\t\t\t\t\t\ts.bitb = b;\n\t\t\t\t\t\t\ts.bitk = k;\n\t\t\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\t\t\ts.write = q;\n\t\t\t\t\t\t\treturn s.inflate_flush(z, r);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tn--;\n\t\t\t\t\t\tb |= (z.read_byte(p++) & 0xff) << k;\n\t\t\t\t\t\tk += 8;\n\t\t\t\t\t}\n\n\t\t\t\t\tdist += (b & inflate_mask[j]);\n\n\t\t\t\t\tb >>= j;\n\t\t\t\t\tk -= j;\n\n\t\t\t\t\tmode = COPY;\n\t\t\t\t/* falls through */\n\t\t\t\tcase COPY: // o: copying bytes in win, waiting for space\n\t\t\t\t\tf = q - dist;\n\t\t\t\t\twhile (f < 0) { // modulo win size-\"while\" instead\n\t\t\t\t\t\tf += s.end; // of \"if\" handles invalid distances\n\t\t\t\t\t}\n\t\t\t\t\twhile (len !== 0) {\n\n\t\t\t\t\t\tif (m === 0) {\n\t\t\t\t\t\t\tif (q == s.end && s.read !== 0) {\n\t\t\t\t\t\t\t\tq = 0;\n\t\t\t\t\t\t\t\tm = q < s.read ? s.read - q - 1 : s.end - q;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (m === 0) {\n\t\t\t\t\t\t\t\ts.write = q;\n\t\t\t\t\t\t\t\tr = s.inflate_flush(z, r);\n\t\t\t\t\t\t\t\tq = s.write;\n\t\t\t\t\t\t\t\tm = q < s.read ? s.read - q - 1 : s.end - q;\n\n\t\t\t\t\t\t\t\tif (q == s.end && s.read !== 0) {\n\t\t\t\t\t\t\t\t\tq = 0;\n\t\t\t\t\t\t\t\t\tm = q < s.read ? s.read - q - 1 : s.end - q;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (m === 0) {\n\t\t\t\t\t\t\t\t\ts.bitb = b;\n\t\t\t\t\t\t\t\t\ts.bitk = k;\n\t\t\t\t\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\t\t\t\t\ts.write = q;\n\t\t\t\t\t\t\t\t\treturn s.inflate_flush(z, r);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\ts.win[q++] = s.win[f++];\n\t\t\t\t\t\tm--;\n\n\t\t\t\t\t\tif (f == s.end)\n\t\t\t\t\t\t\tf = 0;\n\t\t\t\t\t\tlen--;\n\t\t\t\t\t}\n\t\t\t\t\tmode = START;\n\t\t\t\t\tbreak;\n\t\t\t\tcase LIT: // o: got literal, waiting for output space\n\t\t\t\t\tif (m === 0) {\n\t\t\t\t\t\tif (q == s.end && s.read !== 0) {\n\t\t\t\t\t\t\tq = 0;\n\t\t\t\t\t\t\tm = q < s.read ? s.read - q - 1 : s.end - q;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (m === 0) {\n\t\t\t\t\t\t\ts.write = q;\n\t\t\t\t\t\t\tr = s.inflate_flush(z, r);\n\t\t\t\t\t\t\tq = s.write;\n\t\t\t\t\t\t\tm = q < s.read ? s.read - q - 1 : s.end - q;\n\n\t\t\t\t\t\t\tif (q == s.end && s.read !== 0) {\n\t\t\t\t\t\t\t\tq = 0;\n\t\t\t\t\t\t\t\tm = q < s.read ? s.read - q - 1 : s.end - q;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (m === 0) {\n\t\t\t\t\t\t\t\ts.bitb = b;\n\t\t\t\t\t\t\t\ts.bitk = k;\n\t\t\t\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\t\t\t\ts.write = q;\n\t\t\t\t\t\t\t\treturn s.inflate_flush(z, r);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tr = Z_OK;\n\n\t\t\t\t\ts.win[q++] = /* (byte) */lit;\n\t\t\t\t\tm--;\n\n\t\t\t\t\tmode = START;\n\t\t\t\t\tbreak;\n\t\t\t\tcase WASH: // o: got eob, possibly more output\n\t\t\t\t\tif (k > 7) { // return unused byte, if any\n\t\t\t\t\t\tk -= 8;\n\t\t\t\t\t\tn++;\n\t\t\t\t\t\tp--; // can always return one\n\t\t\t\t\t}\n\n\t\t\t\t\ts.write = q;\n\t\t\t\t\tr = s.inflate_flush(z, r);\n\t\t\t\t\tq = s.write;\n\t\t\t\t\tm = q < s.read ? s.read - q - 1 : s.end - q;\n\n\t\t\t\t\tif (s.read != s.write) {\n\t\t\t\t\t\ts.bitb = b;\n\t\t\t\t\t\ts.bitk = k;\n\t\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\t\ts.write = q;\n\t\t\t\t\t\treturn s.inflate_flush(z, r);\n\t\t\t\t\t}\n\t\t\t\t\tmode = END;\n\t\t\t\t/* falls through */\n\t\t\t\tcase END:\n\t\t\t\t\tr = Z_STREAM_END;\n\t\t\t\t\ts.bitb = b;\n\t\t\t\t\ts.bitk = k;\n\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\ts.write = q;\n\t\t\t\t\treturn s.inflate_flush(z, r);\n\n\t\t\t\tcase BADCODE: // x: got error\n\n\t\t\t\t\tr = Z_DATA_ERROR;\n\n\t\t\t\t\ts.bitb = b;\n\t\t\t\t\ts.bitk = k;\n\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\ts.write = q;\n\t\t\t\t\treturn s.inflate_flush(z, r);\n\n\t\t\t\tdefault:\n\t\t\t\t\tr = Z_STREAM_ERROR;\n\n\t\t\t\t\ts.bitb = b;\n\t\t\t\t\ts.bitk = k;\n\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\ts.write = q;\n\t\t\t\t\treturn s.inflate_flush(z, r);\n\t\t\t}\n\t\t}\n\t};\n\n\tthat.free = function () {\n\t\t// ZFREE(z, c);\n\t};\n\n}\n\n// InfBlocks\n\n// Table for deflate from PKZIP's appnote.txt.\nconst border = [ // Order of the bit length code lengths\n\t16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15];\n\nconst TYPE = 0; // get type bits (3, including end bit)\nconst LENS = 1; // get lengths for stored\nconst STORED = 2;// processing stored block\nconst TABLE = 3; // get table lengths\nconst BTREE = 4; // get bit lengths tree for a dynamic\n// block\nconst DTREE = 5; // get length, distance trees for a\n// dynamic block\nconst CODES = 6; // processing fixed or dynamic block\nconst DRY = 7; // output remaining win bytes\nconst DONELOCKS = 8; // finished last block, done\nconst BADBLOCKS = 9; // ot a data error--stuck here\n\nfunction InfBlocks(z, w) {\n\tconst that = this;\n\n\tlet mode = TYPE; // current inflate_block mode\n\n\tlet left = 0; // if STORED, bytes left to copy\n\n\tlet table = 0; // table lengths (14 bits)\n\tlet index = 0; // index into blens (or border)\n\tlet blens; // bit lengths of codes\n\tconst bb = [0]; // bit length tree depth\n\tconst tb = [0]; // bit length decoding tree\n\n\tconst codes = new InfCodes(); // if CODES, current state\n\n\tlet last = 0; // true if this block is the last block\n\n\tlet hufts = new Int32Array(MANY * 3); // single malloc for tree space\n\tconst check = 0; // check on output\n\tconst inftree = new InfTree();\n\n\tthat.bitk = 0; // bits in bit buffer\n\tthat.bitb = 0; // bit buffer\n\tthat.win = new Uint8Array(w); // sliding win\n\tthat.end = w; // one byte after sliding win\n\tthat.read = 0; // win read pointer\n\tthat.write = 0; // win write pointer\n\n\tthat.reset = function (z, c) {\n\t\tif (c)\n\t\t\tc[0] = check;\n\t\t// if (mode == BTREE || mode == DTREE) {\n\t\t// }\n\t\tif (mode == CODES) {\n\t\t\tcodes.free(z);\n\t\t}\n\t\tmode = TYPE;\n\t\tthat.bitk = 0;\n\t\tthat.bitb = 0;\n\t\tthat.read = that.write = 0;\n\t};\n\n\tthat.reset(z, null);\n\n\t// copy as much as possible from the sliding win to the output area\n\tthat.inflate_flush = function (z, r) {\n\t\tlet n;\n\t\tlet p;\n\t\tlet q;\n\n\t\t// local copies of source and destination pointers\n\t\tp = z.next_out_index;\n\t\tq = that.read;\n\n\t\t// compute number of bytes to copy as far as end of win\n\t\tn = /* (int) */((q <= that.write ? that.write : that.end) - q);\n\t\tif (n > z.avail_out)\n\t\t\tn = z.avail_out;\n\t\tif (n !== 0 && r == Z_BUF_ERROR)\n\t\t\tr = Z_OK;\n\n\t\t// update counters\n\t\tz.avail_out -= n;\n\t\tz.total_out += n;\n\n\t\t// copy as far as end of win\n\t\tz.next_out.set(that.win.subarray(q, q + n), p);\n\t\tp += n;\n\t\tq += n;\n\n\t\t// see if more to copy at beginning of win\n\t\tif (q == that.end) {\n\t\t\t// wrap pointers\n\t\t\tq = 0;\n\t\t\tif (that.write == that.end)\n\t\t\t\tthat.write = 0;\n\n\t\t\t// compute bytes to copy\n\t\t\tn = that.write - q;\n\t\t\tif (n > z.avail_out)\n\t\t\t\tn = z.avail_out;\n\t\t\tif (n !== 0 && r == Z_BUF_ERROR)\n\t\t\t\tr = Z_OK;\n\n\t\t\t// update counters\n\t\t\tz.avail_out -= n;\n\t\t\tz.total_out += n;\n\n\t\t\t// copy\n\t\t\tz.next_out.set(that.win.subarray(q, q + n), p);\n\t\t\tp += n;\n\t\t\tq += n;\n\t\t}\n\n\t\t// update pointers\n\t\tz.next_out_index = p;\n\t\tthat.read = q;\n\n\t\t// done\n\t\treturn r;\n\t};\n\n\tthat.proc = function (z, r) {\n\t\tlet t; // temporary storage\n\t\tlet b; // bit buffer\n\t\tlet k; // bits in bit buffer\n\t\tlet p; // input data pointer\n\t\tlet n; // bytes available there\n\t\tlet q; // output win write pointer\n\t\tlet m; // bytes to end of win or read pointer\n\n\t\tlet i;\n\n\t\t// copy input/output information to locals (UPDATE macro restores)\n\t\t// {\n\t\tp = z.next_in_index;\n\t\tn = z.avail_in;\n\t\tb = that.bitb;\n\t\tk = that.bitk;\n\t\t// }\n\t\t// {\n\t\tq = that.write;\n\t\tm = /* (int) */(q < that.read ? that.read - q - 1 : that.end - q);\n\t\t// }\n\n\t\t// process input based on current state\n\t\t// DEBUG dtree\n\t\t// eslint-disable-next-line no-constant-condition\n\t\twhile (true) {\n\t\t\tlet bl, bd, tl, td, bl_, bd_, tl_, td_;\n\t\t\tswitch (mode) {\n\t\t\t\tcase TYPE:\n\n\t\t\t\t\twhile (k < (3)) {\n\t\t\t\t\t\tif (n !== 0) {\n\t\t\t\t\t\t\tr = Z_OK;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthat.bitb = b;\n\t\t\t\t\t\t\tthat.bitk = k;\n\t\t\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\t\t\tthat.write = q;\n\t\t\t\t\t\t\treturn that.inflate_flush(z, r);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tn--;\n\t\t\t\t\t\tb |= (z.read_byte(p++) & 0xff) << k;\n\t\t\t\t\t\tk += 8;\n\t\t\t\t\t}\n\t\t\t\t\tt = /* (int) */(b & 7);\n\t\t\t\t\tlast = t & 1;\n\n\t\t\t\t\tswitch (t >>> 1) {\n\t\t\t\t\t\tcase 0: // stored\n\t\t\t\t\t\t\t// {\n\t\t\t\t\t\t\tb >>>= (3);\n\t\t\t\t\t\t\tk -= (3);\n\t\t\t\t\t\t\t// }\n\t\t\t\t\t\t\tt = k & 7; // go to byte boundary\n\n\t\t\t\t\t\t\t// {\n\t\t\t\t\t\t\tb >>>= (t);\n\t\t\t\t\t\t\tk -= (t);\n\t\t\t\t\t\t\t// }\n\t\t\t\t\t\t\tmode = LENS; // get length of stored block\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 1: // fixed\n\t\t\t\t\t\t\t// {\n\t\t\t\t\t\t\tbl = []; // new Array(1);\n\t\t\t\t\t\t\tbd = []; // new Array(1);\n\t\t\t\t\t\t\ttl = [[]]; // new Array(1);\n\t\t\t\t\t\t\ttd = [[]]; // new Array(1);\n\n\t\t\t\t\t\t\tInfTree.inflate_trees_fixed(bl, bd, tl, td);\n\t\t\t\t\t\t\tcodes.init(bl[0], bd[0], tl[0], 0, td[0], 0);\n\t\t\t\t\t\t\t// }\n\n\t\t\t\t\t\t\t// {\n\t\t\t\t\t\t\tb >>>= (3);\n\t\t\t\t\t\t\tk -= (3);\n\t\t\t\t\t\t\t// }\n\n\t\t\t\t\t\t\tmode = CODES;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 2: // dynamic\n\n\t\t\t\t\t\t\t// {\n\t\t\t\t\t\t\tb >>>= (3);\n\t\t\t\t\t\t\tk -= (3);\n\t\t\t\t\t\t\t// }\n\n\t\t\t\t\t\t\tmode = TABLE;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 3: // illegal\n\n\t\t\t\t\t\t\t// {\n\t\t\t\t\t\t\tb >>>= (3);\n\t\t\t\t\t\t\tk -= (3);\n\t\t\t\t\t\t\t// }\n\t\t\t\t\t\t\tmode = BADBLOCKS;\n\t\t\t\t\t\t\tz.msg = \"invalid block type\";\n\t\t\t\t\t\t\tr = Z_DATA_ERROR;\n\n\t\t\t\t\t\t\tthat.bitb = b;\n\t\t\t\t\t\t\tthat.bitk = k;\n\t\t\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\t\t\tthat.write = q;\n\t\t\t\t\t\t\treturn that.inflate_flush(z, r);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase LENS:\n\n\t\t\t\t\twhile (k < (32)) {\n\t\t\t\t\t\tif (n !== 0) {\n\t\t\t\t\t\t\tr = Z_OK;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthat.bitb = b;\n\t\t\t\t\t\t\tthat.bitk = k;\n\t\t\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\t\t\tthat.write = q;\n\t\t\t\t\t\t\treturn that.inflate_flush(z, r);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tn--;\n\t\t\t\t\t\tb |= (z.read_byte(p++) & 0xff) << k;\n\t\t\t\t\t\tk += 8;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ((((~b) >>> 16) & 0xffff) != (b & 0xffff)) {\n\t\t\t\t\t\tmode = BADBLOCKS;\n\t\t\t\t\t\tz.msg = \"invalid stored block lengths\";\n\t\t\t\t\t\tr = Z_DATA_ERROR;\n\n\t\t\t\t\t\tthat.bitb = b;\n\t\t\t\t\t\tthat.bitk = k;\n\t\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\t\tthat.write = q;\n\t\t\t\t\t\treturn that.inflate_flush(z, r);\n\t\t\t\t\t}\n\t\t\t\t\tleft = (b & 0xffff);\n\t\t\t\t\tb = k = 0; // dump bits\n\t\t\t\t\tmode = left !== 0 ? STORED : (last !== 0 ? DRY : TYPE);\n\t\t\t\t\tbreak;\n\t\t\t\tcase STORED:\n\t\t\t\t\tif (n === 0) {\n\t\t\t\t\t\tthat.bitb = b;\n\t\t\t\t\t\tthat.bitk = k;\n\t\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\t\tthat.write = q;\n\t\t\t\t\t\treturn that.inflate_flush(z, r);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (m === 0) {\n\t\t\t\t\t\tif (q == that.end && that.read !== 0) {\n\t\t\t\t\t\t\tq = 0;\n\t\t\t\t\t\t\tm = /* (int) */(q < that.read ? that.read - q - 1 : that.end - q);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (m === 0) {\n\t\t\t\t\t\t\tthat.write = q;\n\t\t\t\t\t\t\tr = that.inflate_flush(z, r);\n\t\t\t\t\t\t\tq = that.write;\n\t\t\t\t\t\t\tm = /* (int) */(q < that.read ? that.read - q - 1 : that.end - q);\n\t\t\t\t\t\t\tif (q == that.end && that.read !== 0) {\n\t\t\t\t\t\t\t\tq = 0;\n\t\t\t\t\t\t\t\tm = /* (int) */(q < that.read ? that.read - q - 1 : that.end - q);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (m === 0) {\n\t\t\t\t\t\t\t\tthat.bitb = b;\n\t\t\t\t\t\t\t\tthat.bitk = k;\n\t\t\t\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\t\t\t\tthat.write = q;\n\t\t\t\t\t\t\t\treturn that.inflate_flush(z, r);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tr = Z_OK;\n\n\t\t\t\t\tt = left;\n\t\t\t\t\tif (t > n)\n\t\t\t\t\t\tt = n;\n\t\t\t\t\tif (t > m)\n\t\t\t\t\t\tt = m;\n\t\t\t\t\tthat.win.set(z.read_buf(p, t), q);\n\t\t\t\t\tp += t;\n\t\t\t\t\tn -= t;\n\t\t\t\t\tq += t;\n\t\t\t\t\tm -= t;\n\t\t\t\t\tif ((left -= t) !== 0)\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tmode = last !== 0 ? DRY : TYPE;\n\t\t\t\t\tbreak;\n\t\t\t\tcase TABLE:\n\n\t\t\t\t\twhile (k < (14)) {\n\t\t\t\t\t\tif (n !== 0) {\n\t\t\t\t\t\t\tr = Z_OK;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthat.bitb = b;\n\t\t\t\t\t\t\tthat.bitk = k;\n\t\t\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\t\t\tthat.write = q;\n\t\t\t\t\t\t\treturn that.inflate_flush(z, r);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tn--;\n\t\t\t\t\t\tb |= (z.read_byte(p++) & 0xff) << k;\n\t\t\t\t\t\tk += 8;\n\t\t\t\t\t}\n\n\t\t\t\t\ttable = t = (b & 0x3fff);\n\t\t\t\t\tif ((t & 0x1f) > 29 || ((t >> 5) & 0x1f) > 29) {\n\t\t\t\t\t\tmode = BADBLOCKS;\n\t\t\t\t\t\tz.msg = \"too many length or distance symbols\";\n\t\t\t\t\t\tr = Z_DATA_ERROR;\n\n\t\t\t\t\t\tthat.bitb = b;\n\t\t\t\t\t\tthat.bitk = k;\n\t\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\t\tthat.write = q;\n\t\t\t\t\t\treturn that.inflate_flush(z, r);\n\t\t\t\t\t}\n\t\t\t\t\tt = 258 + (t & 0x1f) + ((t >> 5) & 0x1f);\n\t\t\t\t\tif (!blens || blens.length < t) {\n\t\t\t\t\t\tblens = []; // new Array(t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfor (i = 0; i < t; i++) {\n\t\t\t\t\t\t\tblens[i] = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// {\n\t\t\t\t\tb >>>= (14);\n\t\t\t\t\tk -= (14);\n\t\t\t\t\t// }\n\n\t\t\t\t\tindex = 0;\n\t\t\t\t\tmode = BTREE;\n\t\t\t\t/* falls through */\n\t\t\t\tcase BTREE:\n\t\t\t\t\twhile (index < 4 + (table >>> 10)) {\n\t\t\t\t\t\twhile (k < (3)) {\n\t\t\t\t\t\t\tif (n !== 0) {\n\t\t\t\t\t\t\t\tr = Z_OK;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthat.bitb = b;\n\t\t\t\t\t\t\t\tthat.bitk = k;\n\t\t\t\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\t\t\t\tthat.write = q;\n\t\t\t\t\t\t\t\treturn that.inflate_flush(z, r);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tn--;\n\t\t\t\t\t\t\tb |= (z.read_byte(p++) & 0xff) << k;\n\t\t\t\t\t\t\tk += 8;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tblens[border[index++]] = b & 7;\n\n\t\t\t\t\t\t// {\n\t\t\t\t\t\tb >>>= (3);\n\t\t\t\t\t\tk -= (3);\n\t\t\t\t\t\t// }\n\t\t\t\t\t}\n\n\t\t\t\t\twhile (index < 19) {\n\t\t\t\t\t\tblens[border[index++]] = 0;\n\t\t\t\t\t}\n\n\t\t\t\t\tbb[0] = 7;\n\t\t\t\t\tt = inftree.inflate_trees_bits(blens, bb, tb, hufts, z);\n\t\t\t\t\tif (t != Z_OK) {\n\t\t\t\t\t\tr = t;\n\t\t\t\t\t\tif (r == Z_DATA_ERROR) {\n\t\t\t\t\t\t\tblens = null;\n\t\t\t\t\t\t\tmode = BADBLOCKS;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthat.bitb = b;\n\t\t\t\t\t\tthat.bitk = k;\n\t\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\t\tthat.write = q;\n\t\t\t\t\t\treturn that.inflate_flush(z, r);\n\t\t\t\t\t}\n\n\t\t\t\t\tindex = 0;\n\t\t\t\t\tmode = DTREE;\n\t\t\t\t/* falls through */\n\t\t\t\tcase DTREE:\n\t\t\t\t\t// eslint-disable-next-line no-constant-condition\n\t\t\t\t\twhile (true) {\n\t\t\t\t\t\tt = table;\n\t\t\t\t\t\tif (index >= 258 + (t & 0x1f) + ((t >> 5) & 0x1f)) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tlet j, c;\n\n\t\t\t\t\t\tt = bb[0];\n\n\t\t\t\t\t\twhile (k < (t)) {\n\t\t\t\t\t\t\tif (n !== 0) {\n\t\t\t\t\t\t\t\tr = Z_OK;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthat.bitb = b;\n\t\t\t\t\t\t\t\tthat.bitk = k;\n\t\t\t\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\t\t\t\tthat.write = q;\n\t\t\t\t\t\t\t\treturn that.inflate_flush(z, r);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tn--;\n\t\t\t\t\t\t\tb |= (z.read_byte(p++) & 0xff) << k;\n\t\t\t\t\t\t\tk += 8;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// if (tb[0] == -1) {\n\t\t\t\t\t\t// System.err.println(\"null...\");\n\t\t\t\t\t\t// }\n\n\t\t\t\t\t\tt = hufts[(tb[0] + (b & inflate_mask[t])) * 3 + 1];\n\t\t\t\t\t\tc = hufts[(tb[0] + (b & inflate_mask[t])) * 3 + 2];\n\n\t\t\t\t\t\tif (c < 16) {\n\t\t\t\t\t\t\tb >>>= (t);\n\t\t\t\t\t\t\tk -= (t);\n\t\t\t\t\t\t\tblens[index++] = c;\n\t\t\t\t\t\t} else { // c == 16..18\n\t\t\t\t\t\t\ti = c == 18 ? 7 : c - 14;\n\t\t\t\t\t\t\tj = c == 18 ? 11 : 3;\n\n\t\t\t\t\t\t\twhile (k < (t + i)) {\n\t\t\t\t\t\t\t\tif (n !== 0) {\n\t\t\t\t\t\t\t\t\tr = Z_OK;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tthat.bitb = b;\n\t\t\t\t\t\t\t\t\tthat.bitk = k;\n\t\t\t\t\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\t\t\t\t\tthat.write = q;\n\t\t\t\t\t\t\t\t\treturn that.inflate_flush(z, r);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tn--;\n\t\t\t\t\t\t\t\tb |= (z.read_byte(p++) & 0xff) << k;\n\t\t\t\t\t\t\t\tk += 8;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tb >>>= (t);\n\t\t\t\t\t\t\tk -= (t);\n\n\t\t\t\t\t\t\tj += (b & inflate_mask[i]);\n\n\t\t\t\t\t\t\tb >>>= (i);\n\t\t\t\t\t\t\tk -= (i);\n\n\t\t\t\t\t\t\ti = index;\n\t\t\t\t\t\t\tt = table;\n\t\t\t\t\t\t\tif (i + j > 258 + (t & 0x1f) + ((t >> 5) & 0x1f) || (c == 16 && i < 1)) {\n\t\t\t\t\t\t\t\tblens = null;\n\t\t\t\t\t\t\t\tmode = BADBLOCKS;\n\t\t\t\t\t\t\t\tz.msg = \"invalid bit length repeat\";\n\t\t\t\t\t\t\t\tr = Z_DATA_ERROR;\n\n\t\t\t\t\t\t\t\tthat.bitb = b;\n\t\t\t\t\t\t\t\tthat.bitk = k;\n\t\t\t\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\t\t\t\tthat.write = q;\n\t\t\t\t\t\t\t\treturn that.inflate_flush(z, r);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tc = c == 16 ? blens[i - 1] : 0;\n\t\t\t\t\t\t\tdo {\n\t\t\t\t\t\t\t\tblens[i++] = c;\n\t\t\t\t\t\t\t} while (--j !== 0);\n\t\t\t\t\t\t\tindex = i;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\ttb[0] = -1;\n\t\t\t\t\t// {\n\t\t\t\t\tbl_ = []; // new Array(1);\n\t\t\t\t\tbd_ = []; // new Array(1);\n\t\t\t\t\ttl_ = []; // new Array(1);\n\t\t\t\t\ttd_ = []; // new Array(1);\n\t\t\t\t\tbl_[0] = 9; // must be <= 9 for lookahead assumptions\n\t\t\t\t\tbd_[0] = 6; // must be <= 9 for lookahead assumptions\n\n\t\t\t\t\tt = table;\n\t\t\t\t\tt = inftree.inflate_trees_dynamic(257 + (t & 0x1f), 1 + ((t >> 5) & 0x1f), blens, bl_, bd_, tl_, td_, hufts, z);\n\n\t\t\t\t\tif (t != Z_OK) {\n\t\t\t\t\t\tif (t == Z_DATA_ERROR) {\n\t\t\t\t\t\t\tblens = null;\n\t\t\t\t\t\t\tmode = BADBLOCKS;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tr = t;\n\n\t\t\t\t\t\tthat.bitb = b;\n\t\t\t\t\t\tthat.bitk = k;\n\t\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\t\tthat.write = q;\n\t\t\t\t\t\treturn that.inflate_flush(z, r);\n\t\t\t\t\t}\n\t\t\t\t\tcodes.init(bl_[0], bd_[0], hufts, tl_[0], hufts, td_[0]);\n\t\t\t\t\t// }\n\t\t\t\t\tmode = CODES;\n\t\t\t\t/* falls through */\n\t\t\t\tcase CODES:\n\t\t\t\t\tthat.bitb = b;\n\t\t\t\t\tthat.bitk = k;\n\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\tthat.write = q;\n\n\t\t\t\t\tif ((r = codes.proc(that, z, r)) != Z_STREAM_END) {\n\t\t\t\t\t\treturn that.inflate_flush(z, r);\n\t\t\t\t\t}\n\t\t\t\t\tr = Z_OK;\n\t\t\t\t\tcodes.free(z);\n\n\t\t\t\t\tp = z.next_in_index;\n\t\t\t\t\tn = z.avail_in;\n\t\t\t\t\tb = that.bitb;\n\t\t\t\t\tk = that.bitk;\n\t\t\t\t\tq = that.write;\n\t\t\t\t\tm = /* (int) */(q < that.read ? that.read - q - 1 : that.end - q);\n\n\t\t\t\t\tif (last === 0) {\n\t\t\t\t\t\tmode = TYPE;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tmode = DRY;\n\t\t\t\t/* falls through */\n\t\t\t\tcase DRY:\n\t\t\t\t\tthat.write = q;\n\t\t\t\t\tr = that.inflate_flush(z, r);\n\t\t\t\t\tq = that.write;\n\t\t\t\t\tm = /* (int) */(q < that.read ? that.read - q - 1 : that.end - q);\n\t\t\t\t\tif (that.read != that.write) {\n\t\t\t\t\t\tthat.bitb = b;\n\t\t\t\t\t\tthat.bitk = k;\n\t\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\t\tthat.write = q;\n\t\t\t\t\t\treturn that.inflate_flush(z, r);\n\t\t\t\t\t}\n\t\t\t\t\tmode = DONELOCKS;\n\t\t\t\t/* falls through */\n\t\t\t\tcase DONELOCKS:\n\t\t\t\t\tr = Z_STREAM_END;\n\n\t\t\t\t\tthat.bitb = b;\n\t\t\t\t\tthat.bitk = k;\n\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\tthat.write = q;\n\t\t\t\t\treturn that.inflate_flush(z, r);\n\t\t\t\tcase BADBLOCKS:\n\t\t\t\t\tr = Z_DATA_ERROR;\n\n\t\t\t\t\tthat.bitb = b;\n\t\t\t\t\tthat.bitk = k;\n\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\tthat.write = q;\n\t\t\t\t\treturn that.inflate_flush(z, r);\n\n\t\t\t\tdefault:\n\t\t\t\t\tr = Z_STREAM_ERROR;\n\n\t\t\t\t\tthat.bitb = b;\n\t\t\t\t\tthat.bitk = k;\n\t\t\t\t\tz.avail_in = n;\n\t\t\t\t\tz.total_in += p - z.next_in_index;\n\t\t\t\t\tz.next_in_index = p;\n\t\t\t\t\tthat.write = q;\n\t\t\t\t\treturn that.inflate_flush(z, r);\n\t\t\t}\n\t\t}\n\t};\n\n\tthat.free = function (z) {\n\t\tthat.reset(z, null);\n\t\tthat.win = null;\n\t\thufts = null;\n\t\t// ZFREE(z, s);\n\t};\n\n\tthat.set_dictionary = function (d, start, n) {\n\t\tthat.win.set(d.subarray(start, start + n), 0);\n\t\tthat.read = that.write = n;\n\t};\n\n\t// Returns true if inflate is currently at the end of a block generated\n\t// by Z_SYNC_FLUSH or Z_FULL_FLUSH.\n\tthat.sync_point = function () {\n\t\treturn mode == LENS ? 1 : 0;\n\t};\n\n}\n\n// Inflate\n\n// preset dictionary flag in zlib header\nconst PRESET_DICT = 0x20;\n\nconst Z_DEFLATED = 8;\n\nconst METHOD = 0; // waiting for method byte\nconst FLAG = 1; // waiting for flag byte\nconst DICT4 = 2; // four dictionary check bytes to go\nconst DICT3 = 3; // three dictionary check bytes to go\nconst DICT2 = 4; // two dictionary check bytes to go\nconst DICT1 = 5; // one dictionary check byte to go\nconst DICT0 = 6; // waiting for inflateSetDictionary\nconst BLOCKS = 7; // decompressing blocks\nconst DONE = 12; // finished check, done\nconst BAD = 13; // got an error--stay here\n\nconst mark = [0, 0, 0xff, 0xff];\n\nfunction Inflate() {\n\tconst that = this;\n\n\tthat.mode = 0; // current inflate mode\n\n\t// mode dependent information\n\tthat.method = 0; // if FLAGS, method byte\n\n\t// if CHECK, check values to compare\n\tthat.was = [0]; // new Array(1); // computed check value\n\tthat.need = 0; // stream check value\n\n\t// if BAD, inflateSync's marker bytes count\n\tthat.marker = 0;\n\n\t// mode independent information\n\tthat.wbits = 0; // log2(win size) (8..15, defaults to 15)\n\n\t// this.blocks; // current inflate_blocks state\n\n\tfunction inflateReset(z) {\n\t\tif (!z || !z.istate)\n\t\t\treturn Z_STREAM_ERROR;\n\n\t\tz.total_in = z.total_out = 0;\n\t\tz.msg = null;\n\t\tz.istate.mode = BLOCKS;\n\t\tz.istate.blocks.reset(z, null);\n\t\treturn Z_OK;\n\t}\n\n\tthat.inflateEnd = function (z) {\n\t\tif (that.blocks)\n\t\t\tthat.blocks.free(z);\n\t\tthat.blocks = null;\n\t\t// ZFREE(z, z->state);\n\t\treturn Z_OK;\n\t};\n\n\tthat.inflateInit = function (z, w) {\n\t\tz.msg = null;\n\t\tthat.blocks = null;\n\n\t\t// set win size\n\t\tif (w < 8 || w > 15) {\n\t\t\tthat.inflateEnd(z);\n\t\t\treturn Z_STREAM_ERROR;\n\t\t}\n\t\tthat.wbits = w;\n\n\t\tz.istate.blocks = new InfBlocks(z, 1 << w);\n\n\t\t// reset state\n\t\tinflateReset(z);\n\t\treturn Z_OK;\n\t};\n\n\tthat.inflate = function (z, f) {\n\t\tlet r;\n\t\tlet b;\n\n\t\tif (!z || !z.istate || !z.next_in)\n\t\t\treturn Z_STREAM_ERROR;\n\t\tconst istate = z.istate;\n\t\tf = f == Z_FINISH ? Z_BUF_ERROR : Z_OK;\n\t\tr = Z_BUF_ERROR;\n\t\t// eslint-disable-next-line no-constant-condition\n\t\twhile (true) {\n\t\t\tswitch (istate.mode) {\n\t\t\t\tcase METHOD:\n\n\t\t\t\t\tif (z.avail_in === 0)\n\t\t\t\t\t\treturn r;\n\t\t\t\t\tr = f;\n\n\t\t\t\t\tz.avail_in--;\n\t\t\t\t\tz.total_in++;\n\t\t\t\t\tif (((istate.method = z.read_byte(z.next_in_index++)) & 0xf) != Z_DEFLATED) {\n\t\t\t\t\t\tistate.mode = BAD;\n\t\t\t\t\t\tz.msg = \"unknown compression method\";\n\t\t\t\t\t\tistate.marker = 5; // can't try inflateSync\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif ((istate.method >> 4) + 8 > istate.wbits) {\n\t\t\t\t\t\tistate.mode = BAD;\n\t\t\t\t\t\tz.msg = \"invalid win size\";\n\t\t\t\t\t\tistate.marker = 5; // can't try inflateSync\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tistate.mode = FLAG;\n\t\t\t\t/* falls through */\n\t\t\t\tcase FLAG:\n\n\t\t\t\t\tif (z.avail_in === 0)\n\t\t\t\t\t\treturn r;\n\t\t\t\t\tr = f;\n\n\t\t\t\t\tz.avail_in--;\n\t\t\t\t\tz.total_in++;\n\t\t\t\t\tb = (z.read_byte(z.next_in_index++)) & 0xff;\n\n\t\t\t\t\tif ((((istate.method << 8) + b) % 31) !== 0) {\n\t\t\t\t\t\tistate.mode = BAD;\n\t\t\t\t\t\tz.msg = \"incorrect header check\";\n\t\t\t\t\t\tistate.marker = 5; // can't try inflateSync\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ((b & PRESET_DICT) === 0) {\n\t\t\t\t\t\tistate.mode = BLOCKS;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tistate.mode = DICT4;\n\t\t\t\t/* falls through */\n\t\t\t\tcase DICT4:\n\n\t\t\t\t\tif (z.avail_in === 0)\n\t\t\t\t\t\treturn r;\n\t\t\t\t\tr = f;\n\n\t\t\t\t\tz.avail_in--;\n\t\t\t\t\tz.total_in++;\n\t\t\t\t\tistate.need = ((z.read_byte(z.next_in_index++) & 0xff) << 24) & 0xff000000;\n\t\t\t\t\tistate.mode = DICT3;\n\t\t\t\t/* falls through */\n\t\t\t\tcase DICT3:\n\n\t\t\t\t\tif (z.avail_in === 0)\n\t\t\t\t\t\treturn r;\n\t\t\t\t\tr = f;\n\n\t\t\t\t\tz.avail_in--;\n\t\t\t\t\tz.total_in++;\n\t\t\t\t\tistate.need += ((z.read_byte(z.next_in_index++) & 0xff) << 16) & 0xff0000;\n\t\t\t\t\tistate.mode = DICT2;\n\t\t\t\t/* falls through */\n\t\t\t\tcase DICT2:\n\n\t\t\t\t\tif (z.avail_in === 0)\n\t\t\t\t\t\treturn r;\n\t\t\t\t\tr = f;\n\n\t\t\t\t\tz.avail_in--;\n\t\t\t\t\tz.total_in++;\n\t\t\t\t\tistate.need += ((z.read_byte(z.next_in_index++) & 0xff) << 8) & 0xff00;\n\t\t\t\t\tistate.mode = DICT1;\n\t\t\t\t/* falls through */\n\t\t\t\tcase DICT1:\n\n\t\t\t\t\tif (z.avail_in === 0)\n\t\t\t\t\t\treturn r;\n\t\t\t\t\tr = f;\n\n\t\t\t\t\tz.avail_in--;\n\t\t\t\t\tz.total_in++;\n\t\t\t\t\tistate.need += (z.read_byte(z.next_in_index++) & 0xff);\n\t\t\t\t\tistate.mode = DICT0;\n\t\t\t\t\treturn Z_NEED_DICT;\n\t\t\t\tcase DICT0:\n\t\t\t\t\tistate.mode = BAD;\n\t\t\t\t\tz.msg = \"need dictionary\";\n\t\t\t\t\tistate.marker = 0; // can try inflateSync\n\t\t\t\t\treturn Z_STREAM_ERROR;\n\t\t\t\tcase BLOCKS:\n\n\t\t\t\t\tr = istate.blocks.proc(z, r);\n\t\t\t\t\tif (r == Z_DATA_ERROR) {\n\t\t\t\t\t\tistate.mode = BAD;\n\t\t\t\t\t\tistate.marker = 0; // can try inflateSync\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif (r == Z_OK) {\n\t\t\t\t\t\tr = f;\n\t\t\t\t\t}\n\t\t\t\t\tif (r != Z_STREAM_END) {\n\t\t\t\t\t\treturn r;\n\t\t\t\t\t}\n\t\t\t\t\tr = f;\n\t\t\t\t\tistate.blocks.reset(z, istate.was);\n\t\t\t\t\tistate.mode = DONE;\n\t\t\t\t/* falls through */\n\t\t\t\tcase DONE:\n\t\t\t\t\treturn Z_STREAM_END;\n\t\t\t\tcase BAD:\n\t\t\t\t\treturn Z_DATA_ERROR;\n\t\t\t\tdefault:\n\t\t\t\t\treturn Z_STREAM_ERROR;\n\t\t\t}\n\t\t}\n\t};\n\n\tthat.inflateSetDictionary = function (z, dictionary, dictLength) {\n\t\tlet index = 0, length = dictLength;\n\t\tif (!z || !z.istate || z.istate.mode != DICT0)\n\t\t\treturn Z_STREAM_ERROR;\n\t\tconst istate = z.istate;\n\t\tif (length >= (1 << istate.wbits)) {\n\t\t\tlength = (1 << istate.wbits) - 1;\n\t\t\tindex = dictLength - length;\n\t\t}\n\t\tistate.blocks.set_dictionary(dictionary, index, length);\n\t\tistate.mode = BLOCKS;\n\t\treturn Z_OK;\n\t};\n\n\tthat.inflateSync = function (z) {\n\t\tlet n; // number of bytes to look at\n\t\tlet p; // pointer to bytes\n\t\tlet m; // number of marker bytes found in a row\n\t\tlet r, w; // temporaries to save total_in and total_out\n\n\t\t// set up\n\t\tif (!z || !z.istate)\n\t\t\treturn Z_STREAM_ERROR;\n\t\tconst istate = z.istate;\n\t\tif (istate.mode != BAD) {\n\t\t\tistate.mode = BAD;\n\t\t\tistate.marker = 0;\n\t\t}\n\t\tif ((n = z.avail_in) === 0)\n\t\t\treturn Z_BUF_ERROR;\n\t\tp = z.next_in_index;\n\t\tm = istate.marker;\n\n\t\t// search\n\t\twhile (n !== 0 && m < 4) {\n\t\t\tif (z.read_byte(p) == mark[m]) {\n\t\t\t\tm++;\n\t\t\t} else if (z.read_byte(p) !== 0) {\n\t\t\t\tm = 0;\n\t\t\t} else {\n\t\t\t\tm = 4 - m;\n\t\t\t}\n\t\t\tp++;\n\t\t\tn--;\n\t\t}\n\n\t\t// restore\n\t\tz.total_in += p - z.next_in_index;\n\t\tz.next_in_index = p;\n\t\tz.avail_in = n;\n\t\tistate.marker = m;\n\n\t\t// return no joy or set up to restart on a new block\n\t\tif (m != 4) {\n\t\t\treturn Z_DATA_ERROR;\n\t\t}\n\t\tr = z.total_in;\n\t\tw = z.total_out;\n\t\tinflateReset(z);\n\t\tz.total_in = r;\n\t\tz.total_out = w;\n\t\tistate.mode = BLOCKS;\n\t\treturn Z_OK;\n\t};\n\n\t// Returns true if inflate is currently at the end of a block generated\n\t// by Z_SYNC_FLUSH or Z_FULL_FLUSH. This function is used by one PPP\n\t// implementation to provide an additional safety check. PPP uses\n\t// Z_SYNC_FLUSH\n\t// but removes the length bytes of the resulting empty stored block. When\n\t// decompressing, PPP checks that at the end of input packet, inflate is\n\t// waiting for these length bytes.\n\tthat.inflateSyncPoint = function (z) {\n\t\tif (!z || !z.istate || !z.istate.blocks)\n\t\t\treturn Z_STREAM_ERROR;\n\t\treturn z.istate.blocks.sync_point();\n\t};\n}\n\n// ZStream\n\nfunction ZStream() {\n}\n\nZStream.prototype = {\n\tinflateInit: function (bits) {\n\t\tconst that = this;\n\t\tthat.istate = new Inflate();\n\t\tif (!bits)\n\t\t\tbits = MAX_BITS;\n\t\treturn that.istate.inflateInit(that, bits);\n\t},\n\n\tinflate: function (f) {\n\t\tconst that = this;\n\t\tif (!that.istate)\n\t\t\treturn Z_STREAM_ERROR;\n\t\treturn that.istate.inflate(that, f);\n\t},\n\n\tinflateEnd: function () {\n\t\tconst that = this;\n\t\tif (!that.istate)\n\t\t\treturn Z_STREAM_ERROR;\n\t\tconst ret = that.istate.inflateEnd(that);\n\t\tthat.istate = null;\n\t\treturn ret;\n\t},\n\n\tinflateSync: function () {\n\t\tconst that = this;\n\t\tif (!that.istate)\n\t\t\treturn Z_STREAM_ERROR;\n\t\treturn that.istate.inflateSync(that);\n\t},\n\tinflateSetDictionary: function (dictionary, dictLength) {\n\t\tconst that = this;\n\t\tif (!that.istate)\n\t\t\treturn Z_STREAM_ERROR;\n\t\treturn that.istate.inflateSetDictionary(that, dictionary, dictLength);\n\t},\n\tread_byte: function (start) {\n\t\tconst that = this;\n\t\treturn that.next_in[start];\n\t},\n\tread_buf: function (start, size) {\n\t\tconst that = this;\n\t\treturn that.next_in.subarray(start, start + size);\n\t}\n};\n\n// Inflater\n\nfunction ZipInflate(options) {\n\tconst that = this;\n\tconst z = new ZStream();\n\tconst bufsize = options && options.chunkSize ? Math.floor(options.chunkSize * 2) : 128 * 1024;\n\tconst flush = Z_NO_FLUSH;\n\tconst buf = new Uint8Array(bufsize);\n\tlet nomoreinput = false;\n\n\tz.inflateInit();\n\tz.next_out = buf;\n\n\tthat.append = function (data, onprogress) {\n\t\tconst buffers = [];\n\t\tlet err, array, lastIndex = 0, bufferIndex = 0, bufferSize = 0;\n\t\tif (data.length === 0)\n\t\t\treturn;\n\t\tz.next_in_index = 0;\n\t\tz.next_in = data;\n\t\tz.avail_in = data.length;\n\t\tdo {\n\t\t\tz.next_out_index = 0;\n\t\t\tz.avail_out = bufsize;\n\t\t\tif ((z.avail_in === 0) && (!nomoreinput)) { // if buffer is empty and more input is available, refill it\n\t\t\t\tz.next_in_index = 0;\n\t\t\t\tnomoreinput = true;\n\t\t\t}\n\t\t\terr = z.inflate(flush);\n\t\t\tif (nomoreinput && (err === Z_BUF_ERROR)) {\n\t\t\t\tif (z.avail_in !== 0)\n\t\t\t\t\tthrow new Error(\"inflating: bad input\");\n\t\t\t} else if (err !== Z_OK && err !== Z_STREAM_END)\n\t\t\t\tthrow new Error(\"inflating: \" + z.msg);\n\t\t\tif ((nomoreinput || err === Z_STREAM_END) && (z.avail_in === data.length))\n\t\t\t\tthrow new Error(\"inflating: bad input\");\n\t\t\tif (z.next_out_index)\n\t\t\t\tif (z.next_out_index === bufsize)\n\t\t\t\t\tbuffers.push(new Uint8Array(buf));\n\t\t\t\telse\n\t\t\t\t\tbuffers.push(buf.slice(0, z.next_out_index));\n\t\t\tbufferSize += z.next_out_index;\n\t\t\tif (onprogress && z.next_in_index > 0 && z.next_in_index != lastIndex) {\n\t\t\t\tonprogress(z.next_in_index);\n\t\t\t\tlastIndex = z.next_in_index;\n\t\t\t}\n\t\t} while (z.avail_in > 0 || z.avail_out === 0);\n\t\tif (buffers.length > 1) {\n\t\t\tarray = new Uint8Array(bufferSize);\n\t\t\tbuffers.forEach(function (chunk) {\n\t\t\t\tarray.set(chunk, bufferIndex);\n\t\t\t\tbufferIndex += chunk.length;\n\t\t\t});\n\t\t} else {\n\t\t\tarray = buffers[0] || new Uint8Array(0);\n\t\t}\n\t\treturn array;\n\t};\n\tthat.flush = function () {\n\t\tz.inflateEnd();\n\t};\n}\n\nexport default ZipInflate;","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/* global navigator */\n\nconst DEFAULT_CONFIGURATION = {\n\tchunkSize: 512 * 1024,\n\tmaxWorkers: (typeof navigator != \"undefined\" && navigator.hardwareConcurrency) || 2,\n\tterminateWorkerTimeout: 5000,\n\tuseWebWorkers: true,\n\tworkerScripts: undefined\n};\n\nconst config = Object.assign({}, DEFAULT_CONFIGURATION);\n\nexport {\n\tconfigure,\n\tgetConfiguration\n};\n\nfunction getConfiguration() {\n\treturn config;\n}\n\nfunction configure(configuration) {\n\tif (configuration.baseURL !== undefined) {\n\t\tconfig.baseURL = configuration.baseURL;\n\t}\n\tif (configuration.chunkSize !== undefined) {\n\t\tconfig.chunkSize = configuration.chunkSize;\n\t}\n\tif (configuration.maxWorkers !== undefined) {\n\t\tconfig.maxWorkers = configuration.maxWorkers;\n\t}\n\tif (configuration.terminateWorkerTimeout !== undefined) {\n\t\tconfig.terminateWorkerTimeout = configuration.terminateWorkerTimeout;\n\t}\n\tif (configuration.useWebWorkers !== undefined) {\n\t\tconfig.useWebWorkers = configuration.useWebWorkers;\n\t}\n\tif (configuration.Deflate !== undefined) {\n\t\tconfig.Deflate = configuration.Deflate;\n\t}\n\tif (configuration.Inflate !== undefined) {\n\t\tconfig.Inflate = configuration.Inflate;\n\t}\n\tif (configuration.workerScripts !== undefined) {\n\t\tif (configuration.workerScripts.deflate) {\n\t\t\tif (!Array.isArray(configuration.workerScripts.deflate)) {\n\t\t\t\tthrow new Error(\"workerScripts.deflate must be an array\");\n\t\t\t}\n\t\t\tif (!config.workerScripts) {\n\t\t\t\tconfig.workerScripts = {};\n\t\t\t}\n\t\t\tconfig.workerScripts.deflate = configuration.workerScripts.deflate;\n\t\t}\n\t\tif (configuration.workerScripts.inflate) {\n\t\t\tif (!Array.isArray(configuration.workerScripts.inflate)) {\n\t\t\t\tthrow new Error(\"workerScripts.inflate must be an array\");\n\t\t\t}\n\t\t\tif (!config.workerScripts) {\n\t\t\t\tconfig.workerScripts = {};\n\t\t\t}\n\t\t\tconfig.workerScripts.inflate = configuration.workerScripts.inflate;\n\t\t}\n\t}\n}\n","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nconst table = {\n\t\"application\": {\n\t\t\"andrew-inset\": \"ez\",\n\t\t\"annodex\": \"anx\",\n\t\t\"atom+xml\": \"atom\",\n\t\t\"atomcat+xml\": \"atomcat\",\n\t\t\"atomserv+xml\": \"atomsrv\",\n\t\t\"bbolin\": \"lin\",\n\t\t\"cap\": [\"cap\", \"pcap\"],\n\t\t\"cu-seeme\": \"cu\",\n\t\t\"davmount+xml\": \"davmount\",\n\t\t\"dsptype\": \"tsp\",\n\t\t\"ecmascript\": [\"es\", \"ecma\"],\n\t\t\"futuresplash\": \"spl\",\n\t\t\"hta\": \"hta\",\n\t\t\"java-archive\": \"jar\",\n\t\t\"java-serialized-object\": \"ser\",\n\t\t\"java-vm\": \"class\",\n\t\t\"javascript\": \"js\",\n\t\t\"m3g\": \"m3g\",\n\t\t\"mac-binhex40\": \"hqx\",\n\t\t\"mathematica\": [\"nb\", \"ma\", \"mb\"],\n\t\t\"msaccess\": \"mdb\",\n\t\t\"msword\": [\"doc\", \"dot\"],\n\t\t\"mxf\": \"mxf\",\n\t\t\"oda\": \"oda\",\n\t\t\"ogg\": \"ogx\",\n\t\t\"pdf\": \"pdf\",\n\t\t\"pgp-keys\": \"key\",\n\t\t\"pgp-signature\": [\"asc\", \"sig\"],\n\t\t\"pics-rules\": \"prf\",\n\t\t\"postscript\": [\"ps\", \"ai\", \"eps\", \"epsi\", \"epsf\", \"eps2\", \"eps3\"],\n\t\t\"rar\": \"rar\",\n\t\t\"rdf+xml\": \"rdf\",\n\t\t\"rss+xml\": \"rss\",\n\t\t\"rtf\": \"rtf\",\n\t\t\"smil\": [\"smi\", \"smil\"],\n\t\t\"xhtml+xml\": [\"xhtml\", \"xht\"],\n\t\t\"xml\": [\"xml\", \"xsl\", \"xsd\"],\n\t\t\"xspf+xml\": \"xspf\",\n\t\t\"zip\": \"zip\",\n\t\t\"vnd.android.package-archive\": \"apk\",\n\t\t\"vnd.cinderella\": \"cdy\",\n\t\t\"vnd.google-earth.kml+xml\": \"kml\",\n\t\t\"vnd.google-earth.kmz\": \"kmz\",\n\t\t\"vnd.mozilla.xul+xml\": \"xul\",\n\t\t\"vnd.ms-excel\": [\"xls\", \"xlb\", \"xlt\", \"xlm\", \"xla\", \"xlc\", \"xlw\"],\n\t\t\"vnd.ms-pki.seccat\": \"cat\",\n\t\t\"vnd.ms-pki.stl\": \"stl\",\n\t\t\"vnd.ms-powerpoint\": [\"ppt\", \"pps\", \"pot\"],\n\t\t\"vnd.oasis.opendocument.chart\": \"odc\",\n\t\t\"vnd.oasis.opendocument.database\": \"odb\",\n\t\t\"vnd.oasis.opendocument.formula\": \"odf\",\n\t\t\"vnd.oasis.opendocument.graphics\": \"odg\",\n\t\t\"vnd.oasis.opendocument.graphics-template\": \"otg\",\n\t\t\"vnd.oasis.opendocument.image\": \"odi\",\n\t\t\"vnd.oasis.opendocument.presentation\": \"odp\",\n\t\t\"vnd.oasis.opendocument.presentation-template\": \"otp\",\n\t\t\"vnd.oasis.opendocument.spreadsheet\": \"ods\",\n\t\t\"vnd.oasis.opendocument.spreadsheet-template\": \"ots\",\n\t\t\"vnd.oasis.opendocument.text\": \"odt\",\n\t\t\"vnd.oasis.opendocument.text-master\": \"odm\",\n\t\t\"vnd.oasis.opendocument.text-template\": \"ott\",\n\t\t\"vnd.oasis.opendocument.text-web\": \"oth\",\n\t\t\"vnd.openxmlformats-officedocument.spreadsheetml.sheet\": \"xlsx\",\n\t\t\"vnd.openxmlformats-officedocument.spreadsheetml.template\": \"xltx\",\n\t\t\"vnd.openxmlformats-officedocument.presentationml.presentation\": \"pptx\",\n\t\t\"vnd.openxmlformats-officedocument.presentationml.slideshow\": \"ppsx\",\n\t\t\"vnd.openxmlformats-officedocument.presentationml.template\": \"potx\",\n\t\t\"vnd.openxmlformats-officedocument.wordprocessingml.document\": \"docx\",\n\t\t\"vnd.openxmlformats-officedocument.wordprocessingml.template\": \"dotx\",\n\t\t\"vnd.smaf\": \"mmf\",\n\t\t\"vnd.stardivision.calc\": \"sdc\",\n\t\t\"vnd.stardivision.chart\": \"sds\",\n\t\t\"vnd.stardivision.draw\": \"sda\",\n\t\t\"vnd.stardivision.impress\": \"sdd\",\n\t\t\"vnd.stardivision.math\": [\"sdf\", \"smf\"],\n\t\t\"vnd.stardivision.writer\": [\"sdw\", \"vor\"],\n\t\t\"vnd.stardivision.writer-global\": \"sgl\",\n\t\t\"vnd.sun.xml.calc\": \"sxc\",\n\t\t\"vnd.sun.xml.calc.template\": \"stc\",\n\t\t\"vnd.sun.xml.draw\": \"sxd\",\n\t\t\"vnd.sun.xml.draw.template\": \"std\",\n\t\t\"vnd.sun.xml.impress\": \"sxi\",\n\t\t\"vnd.sun.xml.impress.template\": \"sti\",\n\t\t\"vnd.sun.xml.math\": \"sxm\",\n\t\t\"vnd.sun.xml.writer\": \"sxw\",\n\t\t\"vnd.sun.xml.writer.global\": \"sxg\",\n\t\t\"vnd.sun.xml.writer.template\": \"stw\",\n\t\t\"vnd.symbian.install\": [\"sis\", \"sisx\"],\n\t\t\"vnd.visio\": [\"vsd\", \"vst\", \"vss\", \"vsw\"],\n\t\t\"vnd.wap.wbxml\": \"wbxml\",\n\t\t\"vnd.wap.wmlc\": \"wmlc\",\n\t\t\"vnd.wap.wmlscriptc\": \"wmlsc\",\n\t\t\"vnd.wordperfect\": \"wpd\",\n\t\t\"vnd.wordperfect5.1\": \"wp5\",\n\t\t\"x-123\": \"wk\",\n\t\t\"x-7z-compressed\": \"7z\",\n\t\t\"x-abiword\": \"abw\",\n\t\t\"x-apple-diskimage\": \"dmg\",\n\t\t\"x-bcpio\": \"bcpio\",\n\t\t\"x-bittorrent\": \"torrent\",\n\t\t\"x-cbr\": [\"cbr\", \"cba\", \"cbt\", \"cb7\"],\n\t\t\"x-cbz\": \"cbz\",\n\t\t\"x-cdf\": [\"cdf\", \"cda\"],\n\t\t\"x-cdlink\": \"vcd\",\n\t\t\"x-chess-pgn\": \"pgn\",\n\t\t\"x-cpio\": \"cpio\",\n\t\t\"x-csh\": \"csh\",\n\t\t\"x-debian-package\": [\"deb\", \"udeb\"],\n\t\t\"x-director\": [\"dcr\", \"dir\", \"dxr\", \"cst\", \"cct\", \"cxt\", \"w3d\", \"fgd\", \"swa\"],\n\t\t\"x-dms\": \"dms\",\n\t\t\"x-doom\": \"wad\",\n\t\t\"x-dvi\": \"dvi\",\n\t\t\"x-httpd-eruby\": \"rhtml\",\n\t\t\"x-font\": \"pcf.Z\",\n\t\t\"x-freemind\": \"mm\",\n\t\t\"x-gnumeric\": \"gnumeric\",\n\t\t\"x-go-sgf\": \"sgf\",\n\t\t\"x-graphing-calculator\": \"gcf\",\n\t\t\"x-gtar\": [\"gtar\", \"taz\"],\n\t\t\"x-hdf\": \"hdf\",\n\t\t\"x-httpd-php\": [\"phtml\", \"pht\", \"php\"],\n\t\t\"x-httpd-php-source\": \"phps\",\n\t\t\"x-httpd-php3\": \"php3\",\n\t\t\"x-httpd-php3-preprocessed\": \"php3p\",\n\t\t\"x-httpd-php4\": \"php4\",\n\t\t\"x-httpd-php5\": \"php5\",\n\t\t\"x-ica\": \"ica\",\n\t\t\"x-info\": \"info\",\n\t\t\"x-internet-signup\": [\"ins\", \"isp\"],\n\t\t\"x-iphone\": \"iii\",\n\t\t\"x-iso9660-image\": \"iso\",\n\t\t\"x-java-jnlp-file\": \"jnlp\",\n\t\t\"x-jmol\": \"jmz\",\n\t\t\"x-killustrator\": \"kil\",\n\t\t\"x-koan\": [\"skp\", \"skd\", \"skt\", \"skm\"],\n\t\t\"x-kpresenter\": [\"kpr\", \"kpt\"],\n\t\t\"x-kword\": [\"kwd\", \"kwt\"],\n\t\t\"x-latex\": \"latex\",\n\t\t\"x-lha\": \"lha\",\n\t\t\"x-lyx\": \"lyx\",\n\t\t\"x-lzh\": \"lzh\",\n\t\t\"x-lzx\": \"lzx\",\n\t\t\"x-maker\": [\"frm\", \"maker\", \"frame\", \"fm\", \"fb\", \"book\", \"fbdoc\"],\n\t\t\"x-ms-wmd\": \"wmd\",\n\t\t\"x-ms-wmz\": \"wmz\",\n\t\t\"x-msdos-program\": [\"com\", \"exe\", \"bat\", \"dll\"],\n\t\t\"x-msi\": \"msi\",\n\t\t\"x-netcdf\": [\"nc\", \"cdf\"],\n\t\t\"x-ns-proxy-autoconfig\": [\"pac\", \"dat\"],\n\t\t\"x-nwc\": \"nwc\",\n\t\t\"x-object\": \"o\",\n\t\t\"x-oz-application\": \"oza\",\n\t\t\"x-pkcs7-certreqresp\": \"p7r\",\n\t\t\"x-python-code\": [\"pyc\", \"pyo\"],\n\t\t\"x-qgis\": [\"qgs\", \"shp\", \"shx\"],\n\t\t\"x-quicktimeplayer\": \"qtl\",\n\t\t\"x-redhat-package-manager\": \"rpm\",\n\t\t\"x-ruby\": \"rb\",\n\t\t\"x-sh\": \"sh\",\n\t\t\"x-shar\": \"shar\",\n\t\t\"x-shockwave-flash\": [\"swf\", \"swfl\"],\n\t\t\"x-silverlight\": \"scr\",\n\t\t\"x-stuffit\": \"sit\",\n\t\t\"x-sv4cpio\": \"sv4cpio\",\n\t\t\"x-sv4crc\": \"sv4crc\",\n\t\t\"x-tar\": \"tar\",\n\t\t\"x-tcl\": \"tcl\",\n\t\t\"x-tex-gf\": \"gf\",\n\t\t\"x-tex-pk\": \"pk\",\n\t\t\"x-texinfo\": [\"texinfo\", \"texi\"],\n\t\t\"x-trash\": [\"~\", \"%\", \"bak\", \"old\", \"sik\"],\n\t\t\"x-troff\": [\"t\", \"tr\", \"roff\"],\n\t\t\"x-troff-man\": \"man\",\n\t\t\"x-troff-me\": \"me\",\n\t\t\"x-troff-ms\": \"ms\",\n\t\t\"x-ustar\": \"ustar\",\n\t\t\"x-wais-source\": \"src\",\n\t\t\"x-wingz\": \"wz\",\n\t\t\"x-x509-ca-cert\": [\"crt\", \"der\", \"cer\"],\n\t\t\"x-xcf\": \"xcf\",\n\t\t\"x-xfig\": \"fig\",\n\t\t\"x-xpinstall\": \"xpi\",\n\t\t\"applixware\": \"aw\",\n\t\t\"atomsvc+xml\": \"atomsvc\",\n\t\t\"ccxml+xml\": \"ccxml\",\n\t\t\"cdmi-capability\": \"cdmia\",\n\t\t\"cdmi-container\": \"cdmic\",\n\t\t\"cdmi-domain\": \"cdmid\",\n\t\t\"cdmi-object\": \"cdmio\",\n\t\t\"cdmi-queue\": \"cdmiq\",\n\t\t\"docbook+xml\": \"dbk\",\n\t\t\"dssc+der\": \"dssc\",\n\t\t\"dssc+xml\": \"xdssc\",\n\t\t\"emma+xml\": \"emma\",\n\t\t\"epub+zip\": \"epub\",\n\t\t\"exi\": \"exi\",\n\t\t\"font-tdpfr\": \"pfr\",\n\t\t\"gml+xml\": \"gml\",\n\t\t\"gpx+xml\": \"gpx\",\n\t\t\"gxf\": \"gxf\",\n\t\t\"hyperstudio\": \"stk\",\n\t\t\"inkml+xml\": [\"ink\", \"inkml\"],\n\t\t\"ipfix\": \"ipfix\",\n\t\t\"json\": \"json\",\n\t\t\"jsonml+json\": \"jsonml\",\n\t\t\"lost+xml\": \"lostxml\",\n\t\t\"mads+xml\": \"mads\",\n\t\t\"marc\": \"mrc\",\n\t\t\"marcxml+xml\": \"mrcx\",\n\t\t\"mathml+xml\": \"mathml\",\n\t\t\"mbox\": \"mbox\",\n\t\t\"mediaservercontrol+xml\": \"mscml\",\n\t\t\"metalink+xml\": \"metalink\",\n\t\t\"metalink4+xml\": \"meta4\",\n\t\t\"mets+xml\": \"mets\",\n\t\t\"mods+xml\": \"mods\",\n\t\t\"mp21\": [\"m21\", \"mp21\"],\n\t\t\"mp4\": \"mp4s\",\n\t\t\"oebps-package+xml\": \"opf\",\n\t\t\"omdoc+xml\": \"omdoc\",\n\t\t\"onenote\": [\"onetoc\", \"onetoc2\", \"onetmp\", \"onepkg\"],\n\t\t\"oxps\": \"oxps\",\n\t\t\"patch-ops-error+xml\": \"xer\",\n\t\t\"pgp-encrypted\": \"pgp\",\n\t\t\"pkcs10\": \"p10\",\n\t\t\"pkcs7-mime\": [\"p7m\", \"p7c\"],\n\t\t\"pkcs7-signature\": \"p7s\",\n\t\t\"pkcs8\": \"p8\",\n\t\t\"pkix-attr-cert\": \"ac\",\n\t\t\"pkix-crl\": \"crl\",\n\t\t\"pkix-pkipath\": \"pkipath\",\n\t\t\"pkixcmp\": \"pki\",\n\t\t\"pls+xml\": \"pls\",\n\t\t\"prs.cww\": \"cww\",\n\t\t\"pskc+xml\": \"pskcxml\",\n\t\t\"reginfo+xml\": \"rif\",\n\t\t\"relax-ng-compact-syntax\": \"rnc\",\n\t\t\"resource-lists+xml\": \"rl\",\n\t\t\"resource-lists-diff+xml\": \"rld\",\n\t\t\"rls-services+xml\": \"rs\",\n\t\t\"rpki-ghostbusters\": \"gbr\",\n\t\t\"rpki-manifest\": \"mft\",\n\t\t\"rpki-roa\": \"roa\",\n\t\t\"rsd+xml\": \"rsd\",\n\t\t\"sbml+xml\": \"sbml\",\n\t\t\"scvp-cv-request\": \"scq\",\n\t\t\"scvp-cv-response\": \"scs\",\n\t\t\"scvp-vp-request\": \"spq\",\n\t\t\"scvp-vp-response\": \"spp\",\n\t\t\"sdp\": \"sdp\",\n\t\t\"set-payment-initiation\": \"setpay\",\n\t\t\"set-registration-initiation\": \"setreg\",\n\t\t\"shf+xml\": \"shf\",\n\t\t\"sparql-query\": \"rq\",\n\t\t\"sparql-results+xml\": \"srx\",\n\t\t\"srgs\": \"gram\",\n\t\t\"srgs+xml\": \"grxml\",\n\t\t\"sru+xml\": \"sru\",\n\t\t\"ssdl+xml\": \"ssdl\",\n\t\t\"ssml+xml\": \"ssml\",\n\t\t\"tei+xml\": [\"tei\", \"teicorpus\"],\n\t\t\"thraud+xml\": \"tfi\",\n\t\t\"timestamped-data\": \"tsd\",\n\t\t\"vnd.3gpp.pic-bw-large\": \"plb\",\n\t\t\"vnd.3gpp.pic-bw-small\": \"psb\",\n\t\t\"vnd.3gpp.pic-bw-var\": \"pvb\",\n\t\t\"vnd.3gpp2.tcap\": \"tcap\",\n\t\t\"vnd.3m.post-it-notes\": \"pwn\",\n\t\t\"vnd.accpac.simply.aso\": \"aso\",\n\t\t\"vnd.accpac.simply.imp\": \"imp\",\n\t\t\"vnd.acucobol\": \"acu\",\n\t\t\"vnd.acucorp\": [\"atc\", \"acutc\"],\n\t\t\"vnd.adobe.air-application-installer-package+zip\": \"air\",\n\t\t\"vnd.adobe.formscentral.fcdt\": \"fcdt\",\n\t\t\"vnd.adobe.fxp\": [\"fxp\", \"fxpl\"],\n\t\t\"vnd.adobe.xdp+xml\": \"xdp\",\n\t\t\"vnd.adobe.xfdf\": \"xfdf\",\n\t\t\"vnd.ahead.space\": \"ahead\",\n\t\t\"vnd.airzip.filesecure.azf\": \"azf\",\n\t\t\"vnd.airzip.filesecure.azs\": \"azs\",\n\t\t\"vnd.amazon.ebook\": \"azw\",\n\t\t\"vnd.americandynamics.acc\": \"acc\",\n\t\t\"vnd.amiga.ami\": \"ami\",\n\t\t\"vnd.anser-web-certificate-issue-initiation\": \"cii\",\n\t\t\"vnd.anser-web-funds-transfer-initiation\": \"fti\",\n\t\t\"vnd.antix.game-component\": \"atx\",\n\t\t\"vnd.apple.installer+xml\": \"mpkg\",\n\t\t\"vnd.apple.mpegurl\": \"m3u8\",\n\t\t\"vnd.aristanetworks.swi\": \"swi\",\n\t\t\"vnd.astraea-software.iota\": \"iota\",\n\t\t\"vnd.audiograph\": \"aep\",\n\t\t\"vnd.blueice.multipass\": \"mpm\",\n\t\t\"vnd.bmi\": \"bmi\",\n\t\t\"vnd.businessobjects\": \"rep\",\n\t\t\"vnd.chemdraw+xml\": \"cdxml\",\n\t\t\"vnd.chipnuts.karaoke-mmd\": \"mmd\",\n\t\t\"vnd.claymore\": \"cla\",\n\t\t\"vnd.cloanto.rp9\": \"rp9\",\n\t\t\"vnd.clonk.c4group\": [\"c4g\", \"c4d\", \"c4f\", \"c4p\", \"c4u\"],\n\t\t\"vnd.cluetrust.cartomobile-config\": \"c11amc\",\n\t\t\"vnd.cluetrust.cartomobile-config-pkg\": \"c11amz\",\n\t\t\"vnd.commonspace\": \"csp\",\n\t\t\"vnd.contact.cmsg\": \"cdbcmsg\",\n\t\t\"vnd.cosmocaller\": \"cmc\",\n\t\t\"vnd.crick.clicker\": \"clkx\",\n\t\t\"vnd.crick.clicker.keyboard\": \"clkk\",\n\t\t\"vnd.crick.clicker.palette\": \"clkp\",\n\t\t\"vnd.crick.clicker.template\": \"clkt\",\n\t\t\"vnd.crick.clicker.wordbank\": \"clkw\",\n\t\t\"vnd.criticaltools.wbs+xml\": \"wbs\",\n\t\t\"vnd.ctc-posml\": \"pml\",\n\t\t\"vnd.cups-ppd\": \"ppd\",\n\t\t\"vnd.curl.car\": \"car\",\n\t\t\"vnd.curl.pcurl\": \"pcurl\",\n\t\t\"vnd.dart\": \"dart\",\n\t\t\"vnd.data-vision.rdz\": \"rdz\",\n\t\t\"vnd.dece.data\": [\"uvf\", \"uvvf\", \"uvd\", \"uvvd\"],\n\t\t\"vnd.dece.ttml+xml\": [\"uvt\", \"uvvt\"],\n\t\t\"vnd.dece.unspecified\": [\"uvx\", \"uvvx\"],\n\t\t\"vnd.dece.zip\": [\"uvz\", \"uvvz\"],\n\t\t\"vnd.denovo.fcselayout-link\": \"fe_launch\",\n\t\t\"vnd.dna\": \"dna\",\n\t\t\"vnd.dolby.mlp\": \"mlp\",\n\t\t\"vnd.dpgraph\": \"dpg\",\n\t\t\"vnd.dreamfactory\": \"dfac\",\n\t\t\"vnd.ds-keypoint\": \"kpxx\",\n\t\t\"vnd.dvb.ait\": \"ait\",\n\t\t\"vnd.dvb.service\": \"svc\",\n\t\t\"vnd.dynageo\": \"geo\",\n\t\t\"vnd.ecowin.chart\": \"mag\",\n\t\t\"vnd.enliven\": \"nml\",\n\t\t\"vnd.epson.esf\": \"esf\",\n\t\t\"vnd.epson.msf\": \"msf\",\n\t\t\"vnd.epson.quickanime\": \"qam\",\n\t\t\"vnd.epson.salt\": \"slt\",\n\t\t\"vnd.epson.ssf\": \"ssf\",\n\t\t\"vnd.eszigno3+xml\": [\"es3\", \"et3\"],\n\t\t\"vnd.ezpix-album\": \"ez2\",\n\t\t\"vnd.ezpix-package\": \"ez3\",\n\t\t\"vnd.fdf\": \"fdf\",\n\t\t\"vnd.fdsn.mseed\": \"mseed\",\n\t\t\"vnd.fdsn.seed\": [\"seed\", \"dataless\"],\n\t\t\"vnd.flographit\": \"gph\",\n\t\t\"vnd.fluxtime.clip\": \"ftc\",\n\t\t\"vnd.framemaker\": [\"fm\", \"frame\", \"maker\", \"book\"],\n\t\t\"vnd.frogans.fnc\": \"fnc\",\n\t\t\"vnd.frogans.ltf\": \"ltf\",\n\t\t\"vnd.fsc.weblaunch\": \"fsc\",\n\t\t\"vnd.fujitsu.oasys\": \"oas\",\n\t\t\"vnd.fujitsu.oasys2\": \"oa2\",\n\t\t\"vnd.fujitsu.oasys3\": \"oa3\",\n\t\t\"vnd.fujitsu.oasysgp\": \"fg5\",\n\t\t\"vnd.fujitsu.oasysprs\": \"bh2\",\n\t\t\"vnd.fujixerox.ddd\": \"ddd\",\n\t\t\"vnd.fujixerox.docuworks\": \"xdw\",\n\t\t\"vnd.fujixerox.docuworks.binder\": \"xbd\",\n\t\t\"vnd.fuzzysheet\": \"fzs\",\n\t\t\"vnd.genomatix.tuxedo\": \"txd\",\n\t\t\"vnd.geogebra.file\": \"ggb\",\n\t\t\"vnd.geogebra.tool\": \"ggt\",\n\t\t\"vnd.geometry-explorer\": [\"gex\", \"gre\"],\n\t\t\"vnd.geonext\": \"gxt\",\n\t\t\"vnd.geoplan\": \"g2w\",\n\t\t\"vnd.geospace\": \"g3w\",\n\t\t\"vnd.gmx\": \"gmx\",\n\t\t\"vnd.grafeq\": [\"gqf\", \"gqs\"],\n\t\t\"vnd.groove-account\": \"gac\",\n\t\t\"vnd.groove-help\": \"ghf\",\n\t\t\"vnd.groove-identity-message\": \"gim\",\n\t\t\"vnd.groove-injector\": \"grv\",\n\t\t\"vnd.groove-tool-message\": \"gtm\",\n\t\t\"vnd.groove-tool-template\": \"tpl\",\n\t\t\"vnd.groove-vcard\": \"vcg\",\n\t\t\"vnd.hal+xml\": \"hal\",\n\t\t\"vnd.handheld-entertainment+xml\": \"zmm\",\n\t\t\"vnd.hbci\": \"hbci\",\n\t\t\"vnd.hhe.lesson-player\": \"les\",\n\t\t\"vnd.hp-hpgl\": \"hpgl\",\n\t\t\"vnd.hp-hpid\": \"hpid\",\n\t\t\"vnd.hp-hps\": \"hps\",\n\t\t\"vnd.hp-jlyt\": \"jlt\",\n\t\t\"vnd.hp-pcl\": \"pcl\",\n\t\t\"vnd.hp-pclxl\": \"pclxl\",\n\t\t\"vnd.hydrostatix.sof-data\": \"sfd-hdstx\",\n\t\t\"vnd.ibm.minipay\": \"mpy\",\n\t\t\"vnd.ibm.modcap\": [\"afp\", \"listafp\", \"list3820\"],\n\t\t\"vnd.ibm.rights-management\": \"irm\",\n\t\t\"vnd.ibm.secure-container\": \"sc\",\n\t\t\"vnd.iccprofile\": [\"icc\", \"icm\"],\n\t\t\"vnd.igloader\": \"igl\",\n\t\t\"vnd.immervision-ivp\": \"ivp\",\n\t\t\"vnd.immervision-ivu\": \"ivu\",\n\t\t\"vnd.insors.igm\": \"igm\",\n\t\t\"vnd.intercon.formnet\": [\"xpw\", \"xpx\"],\n\t\t\"vnd.intergeo\": \"i2g\",\n\t\t\"vnd.intu.qbo\": \"qbo\",\n\t\t\"vnd.intu.qfx\": \"qfx\",\n\t\t\"vnd.ipunplugged.rcprofile\": \"rcprofile\",\n\t\t\"vnd.irepository.package+xml\": \"irp\",\n\t\t\"vnd.is-xpr\": \"xpr\",\n\t\t\"vnd.isac.fcs\": \"fcs\",\n\t\t\"vnd.jam\": \"jam\",\n\t\t\"vnd.jcp.javame.midlet-rms\": \"rms\",\n\t\t\"vnd.jisp\": \"jisp\",\n\t\t\"vnd.joost.joda-archive\": \"joda\",\n\t\t\"vnd.kahootz\": [\"ktz\", \"ktr\"],\n\t\t\"vnd.kde.karbon\": \"karbon\",\n\t\t\"vnd.kde.kchart\": \"chrt\",\n\t\t\"vnd.kde.kformula\": \"kfo\",\n\t\t\"vnd.kde.kivio\": \"flw\",\n\t\t\"vnd.kde.kontour\": \"kon\",\n\t\t\"vnd.kde.kpresenter\": [\"kpr\", \"kpt\"],\n\t\t\"vnd.kde.kspread\": \"ksp\",\n\t\t\"vnd.kde.kword\": [\"kwd\", \"kwt\"],\n\t\t\"vnd.kenameaapp\": \"htke\",\n\t\t\"vnd.kidspiration\": \"kia\",\n\t\t\"vnd.kinar\": [\"kne\", \"knp\"],\n\t\t\"vnd.koan\": [\"skp\", \"skd\", \"skt\", \"skm\"],\n\t\t\"vnd.kodak-descriptor\": \"sse\",\n\t\t\"vnd.las.las+xml\": \"lasxml\",\n\t\t\"vnd.llamagraphics.life-balance.desktop\": \"lbd\",\n\t\t\"vnd.llamagraphics.life-balance.exchange+xml\": \"lbe\",\n\t\t\"vnd.lotus-1-2-3\": \"123\",\n\t\t\"vnd.lotus-approach\": \"apr\",\n\t\t\"vnd.lotus-freelance\": \"pre\",\n\t\t\"vnd.lotus-notes\": \"nsf\",\n\t\t\"vnd.lotus-organizer\": \"org\",\n\t\t\"vnd.lotus-screencam\": \"scm\",\n\t\t\"vnd.lotus-wordpro\": \"lwp\",\n\t\t\"vnd.macports.portpkg\": \"portpkg\",\n\t\t\"vnd.mcd\": \"mcd\",\n\t\t\"vnd.medcalcdata\": \"mc1\",\n\t\t\"vnd.mediastation.cdkey\": \"cdkey\",\n\t\t\"vnd.mfer\": \"mwf\",\n\t\t\"vnd.mfmp\": \"mfm\",\n\t\t\"vnd.micrografx.flo\": \"flo\",\n\t\t\"vnd.micrografx.igx\": \"igx\",\n\t\t\"vnd.mif\": \"mif\",\n\t\t\"vnd.mobius.daf\": \"daf\",\n\t\t\"vnd.mobius.dis\": \"dis\",\n\t\t\"vnd.mobius.mbk\": \"mbk\",\n\t\t\"vnd.mobius.mqy\": \"mqy\",\n\t\t\"vnd.mobius.msl\": \"msl\",\n\t\t\"vnd.mobius.plc\": \"plc\",\n\t\t\"vnd.mobius.txf\": \"txf\",\n\t\t\"vnd.mophun.application\": \"mpn\",\n\t\t\"vnd.mophun.certificate\": \"mpc\",\n\t\t\"vnd.ms-artgalry\": \"cil\",\n\t\t\"vnd.ms-cab-compressed\": \"cab\",\n\t\t\"vnd.ms-excel.addin.macroenabled.12\": \"xlam\",\n\t\t\"vnd.ms-excel.sheet.binary.macroenabled.12\": \"xlsb\",\n\t\t\"vnd.ms-excel.sheet.macroenabled.12\": \"xlsm\",\n\t\t\"vnd.ms-excel.template.macroenabled.12\": \"xltm\",\n\t\t\"vnd.ms-fontobject\": \"eot\",\n\t\t\"vnd.ms-htmlhelp\": \"chm\",\n\t\t\"vnd.ms-ims\": \"ims\",\n\t\t\"vnd.ms-lrm\": \"lrm\",\n\t\t\"vnd.ms-officetheme\": \"thmx\",\n\t\t\"vnd.ms-powerpoint.addin.macroenabled.12\": \"ppam\",\n\t\t\"vnd.ms-powerpoint.presentation.macroenabled.12\": \"pptm\",\n\t\t\"vnd.ms-powerpoint.slide.macroenabled.12\": \"sldm\",\n\t\t\"vnd.ms-powerpoint.slideshow.macroenabled.12\": \"ppsm\",\n\t\t\"vnd.ms-powerpoint.template.macroenabled.12\": \"potm\",\n\t\t\"vnd.ms-project\": [\"mpp\", \"mpt\"],\n\t\t\"vnd.ms-word.document.macroenabled.12\": \"docm\",\n\t\t\"vnd.ms-word.template.macroenabled.12\": \"dotm\",\n\t\t\"vnd.ms-works\": [\"wps\", \"wks\", \"wcm\", \"wdb\"],\n\t\t\"vnd.ms-wpl\": \"wpl\",\n\t\t\"vnd.ms-xpsdocument\": \"xps\",\n\t\t\"vnd.mseq\": \"mseq\",\n\t\t\"vnd.musician\": \"mus\",\n\t\t\"vnd.muvee.style\": \"msty\",\n\t\t\"vnd.mynfc\": \"taglet\",\n\t\t\"vnd.neurolanguage.nlu\": \"nlu\",\n\t\t\"vnd.nitf\": [\"ntf\", \"nitf\"],\n\t\t\"vnd.noblenet-directory\": \"nnd\",\n\t\t\"vnd.noblenet-sealer\": \"nns\",\n\t\t\"vnd.noblenet-web\": \"nnw\",\n\t\t\"vnd.nokia.n-gage.data\": \"ngdat\",\n\t\t\"vnd.nokia.n-gage.symbian.install\": \"n-gage\",\n\t\t\"vnd.nokia.radio-preset\": \"rpst\",\n\t\t\"vnd.nokia.radio-presets\": \"rpss\",\n\t\t\"vnd.novadigm.edm\": \"edm\",\n\t\t\"vnd.novadigm.edx\": \"edx\",\n\t\t\"vnd.novadigm.ext\": \"ext\",\n\t\t\"vnd.oasis.opendocument.chart-template\": \"otc\",\n\t\t\"vnd.oasis.opendocument.formula-template\": \"odft\",\n\t\t\"vnd.oasis.opendocument.image-template\": \"oti\",\n\t\t\"vnd.olpc-sugar\": \"xo\",\n\t\t\"vnd.oma.dd2+xml\": \"dd2\",\n\t\t\"vnd.openofficeorg.extension\": \"oxt\",\n\t\t\"vnd.openxmlformats-officedocument.presentationml.slide\": \"sldx\",\n\t\t\"vnd.osgeo.mapguide.package\": \"mgp\",\n\t\t\"vnd.osgi.dp\": \"dp\",\n\t\t\"vnd.osgi.subsystem\": \"esa\",\n\t\t\"vnd.palm\": [\"pdb\", \"pqa\", \"oprc\"],\n\t\t\"vnd.pawaafile\": \"paw\",\n\t\t\"vnd.pg.format\": \"str\",\n\t\t\"vnd.pg.osasli\": \"ei6\",\n\t\t\"vnd.picsel\": \"efif\",\n\t\t\"vnd.pmi.widget\": \"wg\",\n\t\t\"vnd.pocketlearn\": \"plf\",\n\t\t\"vnd.powerbuilder6\": \"pbd\",\n\t\t\"vnd.previewsystems.box\": \"box\",\n\t\t\"vnd.proteus.magazine\": \"mgz\",\n\t\t\"vnd.publishare-delta-tree\": \"qps\",\n\t\t\"vnd.pvi.ptid1\": \"ptid\",\n\t\t\"vnd.quark.quarkxpress\": [\"qxd\", \"qxt\", \"qwd\", \"qwt\", \"qxl\", \"qxb\"],\n\t\t\"vnd.realvnc.bed\": \"bed\",\n\t\t\"vnd.recordare.musicxml\": \"mxl\",\n\t\t\"vnd.recordare.musicxml+xml\": \"musicxml\",\n\t\t\"vnd.rig.cryptonote\": \"cryptonote\",\n\t\t\"vnd.rn-realmedia\": \"rm\",\n\t\t\"vnd.rn-realmedia-vbr\": \"rmvb\",\n\t\t\"vnd.route66.link66+xml\": \"link66\",\n\t\t\"vnd.sailingtracker.track\": \"st\",\n\t\t\"vnd.seemail\": \"see\",\n\t\t\"vnd.sema\": \"sema\",\n\t\t\"vnd.semd\": \"semd\",\n\t\t\"vnd.semf\": \"semf\",\n\t\t\"vnd.shana.informed.formdata\": \"ifm\",\n\t\t\"vnd.shana.informed.formtemplate\": \"itp\",\n\t\t\"vnd.shana.informed.interchange\": \"iif\",\n\t\t\"vnd.shana.informed.package\": \"ipk\",\n\t\t\"vnd.simtech-mindmapper\": [\"twd\", \"twds\"],\n\t\t\"vnd.smart.teacher\": \"teacher\",\n\t\t\"vnd.solent.sdkm+xml\": [\"sdkm\", \"sdkd\"],\n\t\t\"vnd.spotfire.dxp\": \"dxp\",\n\t\t\"vnd.spotfire.sfs\": \"sfs\",\n\t\t\"vnd.stepmania.package\": \"smzip\",\n\t\t\"vnd.stepmania.stepchart\": \"sm\",\n\t\t\"vnd.sus-calendar\": [\"sus\", \"susp\"],\n\t\t\"vnd.svd\": \"svd\",\n\t\t\"vnd.syncml+xml\": \"xsm\",\n\t\t\"vnd.syncml.dm+wbxml\": \"bdm\",\n\t\t\"vnd.syncml.dm+xml\": \"xdm\",\n\t\t\"vnd.tao.intent-module-archive\": \"tao\",\n\t\t\"vnd.tcpdump.pcap\": [\"pcap\", \"cap\", \"dmp\"],\n\t\t\"vnd.tmobile-livetv\": \"tmo\",\n\t\t\"vnd.trid.tpt\": \"tpt\",\n\t\t\"vnd.triscape.mxs\": \"mxs\",\n\t\t\"vnd.trueapp\": \"tra\",\n\t\t\"vnd.ufdl\": [\"ufd\", \"ufdl\"],\n\t\t\"vnd.uiq.theme\": \"utz\",\n\t\t\"vnd.umajin\": \"umj\",\n\t\t\"vnd.unity\": \"unityweb\",\n\t\t\"vnd.uoml+xml\": \"uoml\",\n\t\t\"vnd.vcx\": \"vcx\",\n\t\t\"vnd.visionary\": \"vis\",\n\t\t\"vnd.vsf\": \"vsf\",\n\t\t\"vnd.webturbo\": \"wtb\",\n\t\t\"vnd.wolfram.player\": \"nbp\",\n\t\t\"vnd.wqd\": \"wqd\",\n\t\t\"vnd.wt.stf\": \"stf\",\n\t\t\"vnd.xara\": \"xar\",\n\t\t\"vnd.xfdl\": \"xfdl\",\n\t\t\"vnd.yamaha.hv-dic\": \"hvd\",\n\t\t\"vnd.yamaha.hv-script\": \"hvs\",\n\t\t\"vnd.yamaha.hv-voice\": \"hvp\",\n\t\t\"vnd.yamaha.openscoreformat\": \"osf\",\n\t\t\"vnd.yamaha.openscoreformat.osfpvg+xml\": \"osfpvg\",\n\t\t\"vnd.yamaha.smaf-audio\": \"saf\",\n\t\t\"vnd.yamaha.smaf-phrase\": \"spf\",\n\t\t\"vnd.yellowriver-custom-menu\": \"cmp\",\n\t\t\"vnd.zul\": [\"zir\", \"zirz\"],\n\t\t\"vnd.zzazz.deck+xml\": \"zaz\",\n\t\t\"voicexml+xml\": \"vxml\",\n\t\t\"widget\": \"wgt\",\n\t\t\"winhlp\": \"hlp\",\n\t\t\"wsdl+xml\": \"wsdl\",\n\t\t\"wspolicy+xml\": \"wspolicy\",\n\t\t\"x-ace-compressed\": \"ace\",\n\t\t\"x-authorware-bin\": [\"aab\", \"x32\", \"u32\", \"vox\"],\n\t\t\"x-authorware-map\": \"aam\",\n\t\t\"x-authorware-seg\": \"aas\",\n\t\t\"x-blorb\": [\"blb\", \"blorb\"],\n\t\t\"x-bzip\": \"bz\",\n\t\t\"x-bzip2\": [\"bz2\", \"boz\"],\n\t\t\"x-cfs-compressed\": \"cfs\",\n\t\t\"x-chat\": \"chat\",\n\t\t\"x-conference\": \"nsc\",\n\t\t\"x-dgc-compressed\": \"dgc\",\n\t\t\"x-dtbncx+xml\": \"ncx\",\n\t\t\"x-dtbook+xml\": \"dtb\",\n\t\t\"x-dtbresource+xml\": \"res\",\n\t\t\"x-eva\": \"eva\",\n\t\t\"x-font-bdf\": \"bdf\",\n\t\t\"x-font-ghostscript\": \"gsf\",\n\t\t\"x-font-linux-psf\": \"psf\",\n\t\t\"x-font-otf\": \"otf\",\n\t\t\"x-font-pcf\": \"pcf\",\n\t\t\"x-font-snf\": \"snf\",\n\t\t\"x-font-ttf\": [\"ttf\", \"ttc\"],\n\t\t\"x-font-type1\": [\"pfa\", \"pfb\", \"pfm\", \"afm\"],\n\t\t\"x-font-woff\": \"woff\",\n\t\t\"x-freearc\": \"arc\",\n\t\t\"x-gca-compressed\": \"gca\",\n\t\t\"x-glulx\": \"ulx\",\n\t\t\"x-gramps-xml\": \"gramps\",\n\t\t\"x-install-instructions\": \"install\",\n\t\t\"x-lzh-compressed\": [\"lzh\", \"lha\"],\n\t\t\"x-mie\": \"mie\",\n\t\t\"x-mobipocket-ebook\": [\"prc\", \"mobi\"],\n\t\t\"x-ms-application\": \"application\",\n\t\t\"x-ms-shortcut\": \"lnk\",\n\t\t\"x-ms-xbap\": \"xbap\",\n\t\t\"x-msbinder\": \"obd\",\n\t\t\"x-mscardfile\": \"crd\",\n\t\t\"x-msclip\": \"clp\",\n\t\t\"x-msdownload\": [\"exe\", \"dll\", \"com\", \"bat\", \"msi\"],\n\t\t\"x-msmediaview\": [\"mvb\", \"m13\", \"m14\"],\n\t\t\"x-msmetafile\": [\"wmf\", \"wmz\", \"emf\", \"emz\"],\n\t\t\"x-msmoney\": \"mny\",\n\t\t\"x-mspublisher\": \"pub\",\n\t\t\"x-msschedule\": \"scd\",\n\t\t\"x-msterminal\": \"trm\",\n\t\t\"x-mswrite\": \"wri\",\n\t\t\"x-nzb\": \"nzb\",\n\t\t\"x-pkcs12\": [\"p12\", \"pfx\"],\n\t\t\"x-pkcs7-certificates\": [\"p7b\", \"spc\"],\n\t\t\"x-research-info-systems\": \"ris\",\n\t\t\"x-silverlight-app\": \"xap\",\n\t\t\"x-sql\": \"sql\",\n\t\t\"x-stuffitx\": \"sitx\",\n\t\t\"x-subrip\": \"srt\",\n\t\t\"x-t3vm-image\": \"t3\",\n\t\t\"x-tads\": \"gam\",\n\t\t\"x-tex\": \"tex\",\n\t\t\"x-tex-tfm\": \"tfm\",\n\t\t\"x-tgif\": \"obj\",\n\t\t\"x-xliff+xml\": \"xlf\",\n\t\t\"x-xz\": \"xz\",\n\t\t\"x-zmachine\": [\"z1\", \"z2\", \"z3\", \"z4\", \"z5\", \"z6\", \"z7\", \"z8\"],\n\t\t\"xaml+xml\": \"xaml\",\n\t\t\"xcap-diff+xml\": \"xdf\",\n\t\t\"xenc+xml\": \"xenc\",\n\t\t\"xml-dtd\": \"dtd\",\n\t\t\"xop+xml\": \"xop\",\n\t\t\"xproc+xml\": \"xpl\",\n\t\t\"xslt+xml\": \"xslt\",\n\t\t\"xv+xml\": [\"mxml\", \"xhvml\", \"xvml\", \"xvm\"],\n\t\t\"yang\": \"yang\",\n\t\t\"yin+xml\": \"yin\",\n\t\t\"envoy\": \"evy\",\n\t\t\"fractals\": \"fif\",\n\t\t\"internet-property-stream\": \"acx\",\n\t\t\"olescript\": \"axs\",\n\t\t\"vnd.ms-outlook\": \"msg\",\n\t\t\"vnd.ms-pkicertstore\": \"sst\",\n\t\t\"x-compress\": \"z\",\n\t\t\"x-compressed\": \"tgz\",\n\t\t\"x-gzip\": \"gz\",\n\t\t\"x-perfmon\": [\"pma\", \"pmc\", \"pml\", \"pmr\", \"pmw\"],\n\t\t\"x-pkcs7-mime\": [\"p7c\", \"p7m\"],\n\t\t\"ynd.ms-pkipko\": \"pko\"\n\t},\n\t\"audio\": {\n\t\t\"amr\": \"amr\",\n\t\t\"amr-wb\": \"awb\",\n\t\t\"annodex\": \"axa\",\n\t\t\"basic\": [\"au\", \"snd\"],\n\t\t\"flac\": \"flac\",\n\t\t\"midi\": [\"mid\", \"midi\", \"kar\", \"rmi\"],\n\t\t\"mpeg\": [\"mpga\", \"mpega\", \"mp2\", \"mp3\", \"m4a\", \"mp2a\", \"m2a\", \"m3a\"],\n\t\t\"mpegurl\": \"m3u\",\n\t\t\"ogg\": [\"oga\", \"ogg\", \"spx\"],\n\t\t\"prs.sid\": \"sid\",\n\t\t\"x-aiff\": [\"aif\", \"aiff\", \"aifc\"],\n\t\t\"x-gsm\": \"gsm\",\n\t\t\"x-ms-wma\": \"wma\",\n\t\t\"x-ms-wax\": \"wax\",\n\t\t\"x-pn-realaudio\": \"ram\",\n\t\t\"x-realaudio\": \"ra\",\n\t\t\"x-sd2\": \"sd2\",\n\t\t\"x-wav\": \"wav\",\n\t\t\"adpcm\": \"adp\",\n\t\t\"mp4\": \"mp4a\",\n\t\t\"s3m\": \"s3m\",\n\t\t\"silk\": \"sil\",\n\t\t\"vnd.dece.audio\": [\"uva\", \"uvva\"],\n\t\t\"vnd.digital-winds\": \"eol\",\n\t\t\"vnd.dra\": \"dra\",\n\t\t\"vnd.dts\": \"dts\",\n\t\t\"vnd.dts.hd\": \"dtshd\",\n\t\t\"vnd.lucent.voice\": \"lvp\",\n\t\t\"vnd.ms-playready.media.pya\": \"pya\",\n\t\t\"vnd.nuera.ecelp4800\": \"ecelp4800\",\n\t\t\"vnd.nuera.ecelp7470\": \"ecelp7470\",\n\t\t\"vnd.nuera.ecelp9600\": \"ecelp9600\",\n\t\t\"vnd.rip\": \"rip\",\n\t\t\"webm\": \"weba\",\n\t\t\"x-aac\": \"aac\",\n\t\t\"x-caf\": \"caf\",\n\t\t\"x-matroska\": \"mka\",\n\t\t\"x-pn-realaudio-plugin\": \"rmp\",\n\t\t\"xm\": \"xm\",\n\t\t\"mid\": [\"mid\", \"rmi\"]\n\t},\n\t\"chemical\": {\n\t\t\"x-alchemy\": \"alc\",\n\t\t\"x-cache\": [\"cac\", \"cache\"],\n\t\t\"x-cache-csf\": \"csf\",\n\t\t\"x-cactvs-binary\": [\"cbin\", \"cascii\", \"ctab\"],\n\t\t\"x-cdx\": \"cdx\",\n\t\t\"x-chem3d\": \"c3d\",\n\t\t\"x-cif\": \"cif\",\n\t\t\"x-cmdf\": \"cmdf\",\n\t\t\"x-cml\": \"cml\",\n\t\t\"x-compass\": \"cpa\",\n\t\t\"x-crossfire\": \"bsd\",\n\t\t\"x-csml\": [\"csml\", \"csm\"],\n\t\t\"x-ctx\": \"ctx\",\n\t\t\"x-cxf\": [\"cxf\", \"cef\"],\n\t\t\"x-embl-dl-nucleotide\": [\"emb\", \"embl\"],\n\t\t\"x-gamess-input\": [\"inp\", \"gam\", \"gamin\"],\n\t\t\"x-gaussian-checkpoint\": [\"fch\", \"fchk\"],\n\t\t\"x-gaussian-cube\": \"cub\",\n\t\t\"x-gaussian-input\": [\"gau\", \"gjc\", \"gjf\"],\n\t\t\"x-gaussian-log\": \"gal\",\n\t\t\"x-gcg8-sequence\": \"gcg\",\n\t\t\"x-genbank\": \"gen\",\n\t\t\"x-hin\": \"hin\",\n\t\t\"x-isostar\": [\"istr\", \"ist\"],\n\t\t\"x-jcamp-dx\": [\"jdx\", \"dx\"],\n\t\t\"x-kinemage\": \"kin\",\n\t\t\"x-macmolecule\": \"mcm\",\n\t\t\"x-macromodel-input\": [\"mmd\", \"mmod\"],\n\t\t\"x-mdl-molfile\": \"mol\",\n\t\t\"x-mdl-rdfile\": \"rd\",\n\t\t\"x-mdl-rxnfile\": \"rxn\",\n\t\t\"x-mdl-sdfile\": [\"sd\", \"sdf\"],\n\t\t\"x-mdl-tgf\": \"tgf\",\n\t\t\"x-mmcif\": \"mcif\",\n\t\t\"x-mol2\": \"mol2\",\n\t\t\"x-molconn-Z\": \"b\",\n\t\t\"x-mopac-graph\": \"gpt\",\n\t\t\"x-mopac-input\": [\"mop\", \"mopcrt\", \"mpc\", \"zmt\"],\n\t\t\"x-mopac-out\": \"moo\",\n\t\t\"x-ncbi-asn1\": \"asn\",\n\t\t\"x-ncbi-asn1-ascii\": [\"prt\", \"ent\"],\n\t\t\"x-ncbi-asn1-binary\": [\"val\", \"aso\"],\n\t\t\"x-pdb\": [\"pdb\", \"ent\"],\n\t\t\"x-rosdal\": \"ros\",\n\t\t\"x-swissprot\": \"sw\",\n\t\t\"x-vamas-iso14976\": \"vms\",\n\t\t\"x-vmd\": \"vmd\",\n\t\t\"x-xtel\": \"xtel\",\n\t\t\"x-xyz\": \"xyz\"\n\t},\n\t\"image\": {\n\t\t\"gif\": \"gif\",\n\t\t\"ief\": \"ief\",\n\t\t\"jpeg\": [\"jpeg\", \"jpg\", \"jpe\"],\n\t\t\"pcx\": \"pcx\",\n\t\t\"png\": \"png\",\n\t\t\"svg+xml\": [\"svg\", \"svgz\"],\n\t\t\"tiff\": [\"tiff\", \"tif\"],\n\t\t\"vnd.djvu\": [\"djvu\", \"djv\"],\n\t\t\"vnd.wap.wbmp\": \"wbmp\",\n\t\t\"x-canon-cr2\": \"cr2\",\n\t\t\"x-canon-crw\": \"crw\",\n\t\t\"x-cmu-raster\": \"ras\",\n\t\t\"x-coreldraw\": \"cdr\",\n\t\t\"x-coreldrawpattern\": \"pat\",\n\t\t\"x-coreldrawtemplate\": \"cdt\",\n\t\t\"x-corelphotopaint\": \"cpt\",\n\t\t\"x-epson-erf\": \"erf\",\n\t\t\"x-icon\": \"ico\",\n\t\t\"x-jg\": \"art\",\n\t\t\"x-jng\": \"jng\",\n\t\t\"x-nikon-nef\": \"nef\",\n\t\t\"x-olympus-orf\": \"orf\",\n\t\t\"x-photoshop\": \"psd\",\n\t\t\"x-portable-anymap\": \"pnm\",\n\t\t\"x-portable-bitmap\": \"pbm\",\n\t\t\"x-portable-graymap\": \"pgm\",\n\t\t\"x-portable-pixmap\": \"ppm\",\n\t\t\"x-rgb\": \"rgb\",\n\t\t\"x-xbitmap\": \"xbm\",\n\t\t\"x-xpixmap\": \"xpm\",\n\t\t\"x-xwindowdump\": \"xwd\",\n\t\t\"bmp\": \"bmp\",\n\t\t\"cgm\": \"cgm\",\n\t\t\"g3fax\": \"g3\",\n\t\t\"ktx\": \"ktx\",\n\t\t\"prs.btif\": \"btif\",\n\t\t\"sgi\": \"sgi\",\n\t\t\"vnd.dece.graphic\": [\"uvi\", \"uvvi\", \"uvg\", \"uvvg\"],\n\t\t\"vnd.dwg\": \"dwg\",\n\t\t\"vnd.dxf\": \"dxf\",\n\t\t\"vnd.fastbidsheet\": \"fbs\",\n\t\t\"vnd.fpx\": \"fpx\",\n\t\t\"vnd.fst\": \"fst\",\n\t\t\"vnd.fujixerox.edmics-mmr\": \"mmr\",\n\t\t\"vnd.fujixerox.edmics-rlc\": \"rlc\",\n\t\t\"vnd.ms-modi\": \"mdi\",\n\t\t\"vnd.ms-photo\": \"wdp\",\n\t\t\"vnd.net-fpx\": \"npx\",\n\t\t\"vnd.xiff\": \"xif\",\n\t\t\"webp\": \"webp\",\n\t\t\"x-3ds\": \"3ds\",\n\t\t\"x-cmx\": \"cmx\",\n\t\t\"x-freehand\": [\"fh\", \"fhc\", \"fh4\", \"fh5\", \"fh7\"],\n\t\t\"x-pict\": [\"pic\", \"pct\"],\n\t\t\"x-tga\": \"tga\",\n\t\t\"cis-cod\": \"cod\",\n\t\t\"pipeg\": \"jfif\"\n\t},\n\t\"message\": {\n\t\t\"rfc822\": [\"eml\", \"mime\", \"mht\", \"mhtml\", \"nws\"]\n\t},\n\t\"model\": {\n\t\t\"iges\": [\"igs\", \"iges\"],\n\t\t\"mesh\": [\"msh\", \"mesh\", \"silo\"],\n\t\t\"vrml\": [\"wrl\", \"vrml\"],\n\t\t\"x3d+vrml\": [\"x3dv\", \"x3dvz\"],\n\t\t\"x3d+xml\": [\"x3d\", \"x3dz\"],\n\t\t\"x3d+binary\": [\"x3db\", \"x3dbz\"],\n\t\t\"vnd.collada+xml\": \"dae\",\n\t\t\"vnd.dwf\": \"dwf\",\n\t\t\"vnd.gdl\": \"gdl\",\n\t\t\"vnd.gtw\": \"gtw\",\n\t\t\"vnd.mts\": \"mts\",\n\t\t\"vnd.vtu\": \"vtu\"\n\t},\n\t\"text\": {\n\t\t\"cache-manifest\": [\"manifest\", \"appcache\"],\n\t\t\"calendar\": [\"ics\", \"icz\", \"ifb\"],\n\t\t\"css\": \"css\",\n\t\t\"csv\": \"csv\",\n\t\t\"h323\": \"323\",\n\t\t\"html\": [\"html\", \"htm\", \"shtml\", \"stm\"],\n\t\t\"iuls\": \"uls\",\n\t\t\"mathml\": \"mml\",\n\t\t\"plain\": [\"txt\", \"text\", \"brf\", \"conf\", \"def\", \"list\", \"log\", \"in\", \"bas\"],\n\t\t\"richtext\": \"rtx\",\n\t\t\"scriptlet\": [\"sct\", \"wsc\"],\n\t\t\"texmacs\": [\"tm\", \"ts\"],\n\t\t\"tab-separated-values\": \"tsv\",\n\t\t\"vnd.sun.j2me.app-descriptor\": \"jad\",\n\t\t\"vnd.wap.wml\": \"wml\",\n\t\t\"vnd.wap.wmlscript\": \"wmls\",\n\t\t\"x-bibtex\": \"bib\",\n\t\t\"x-boo\": \"boo\",\n\t\t\"x-c++hdr\": [\"h++\", \"hpp\", \"hxx\", \"hh\"],\n\t\t\"x-c++src\": [\"c++\", \"cpp\", \"cxx\", \"cc\"],\n\t\t\"x-component\": \"htc\",\n\t\t\"x-dsrc\": \"d\",\n\t\t\"x-diff\": [\"diff\", \"patch\"],\n\t\t\"x-haskell\": \"hs\",\n\t\t\"x-java\": \"java\",\n\t\t\"x-literate-haskell\": \"lhs\",\n\t\t\"x-moc\": \"moc\",\n\t\t\"x-pascal\": [\"p\", \"pas\"],\n\t\t\"x-pcs-gcd\": \"gcd\",\n\t\t\"x-perl\": [\"pl\", \"pm\"],\n\t\t\"x-python\": \"py\",\n\t\t\"x-scala\": \"scala\",\n\t\t\"x-setext\": \"etx\",\n\t\t\"x-tcl\": [\"tcl\", \"tk\"],\n\t\t\"x-tex\": [\"tex\", \"ltx\", \"sty\", \"cls\"],\n\t\t\"x-vcalendar\": \"vcs\",\n\t\t\"x-vcard\": \"vcf\",\n\t\t\"n3\": \"n3\",\n\t\t\"prs.lines.tag\": \"dsc\",\n\t\t\"sgml\": [\"sgml\", \"sgm\"],\n\t\t\"troff\": [\"t\", \"tr\", \"roff\", \"man\", \"me\", \"ms\"],\n\t\t\"turtle\": \"ttl\",\n\t\t\"uri-list\": [\"uri\", \"uris\", \"urls\"],\n\t\t\"vcard\": \"vcard\",\n\t\t\"vnd.curl\": \"curl\",\n\t\t\"vnd.curl.dcurl\": \"dcurl\",\n\t\t\"vnd.curl.scurl\": \"scurl\",\n\t\t\"vnd.curl.mcurl\": \"mcurl\",\n\t\t\"vnd.dvb.subtitle\": \"sub\",\n\t\t\"vnd.fly\": \"fly\",\n\t\t\"vnd.fmi.flexstor\": \"flx\",\n\t\t\"vnd.graphviz\": \"gv\",\n\t\t\"vnd.in3d.3dml\": \"3dml\",\n\t\t\"vnd.in3d.spot\": \"spot\",\n\t\t\"x-asm\": [\"s\", \"asm\"],\n\t\t\"x-c\": [\"c\", \"cc\", \"cxx\", \"cpp\", \"h\", \"hh\", \"dic\"],\n\t\t\"x-fortran\": [\"f\", \"for\", \"f77\", \"f90\"],\n\t\t\"x-opml\": \"opml\",\n\t\t\"x-nfo\": \"nfo\",\n\t\t\"x-sfv\": \"sfv\",\n\t\t\"x-uuencode\": \"uu\",\n\t\t\"webviewhtml\": \"htt\"\n\t},\n\t\"video\": {\n\t\t\"avif\": \".avif\",\n\t\t\"3gpp\": \"3gp\",\n\t\t\"annodex\": \"axv\",\n\t\t\"dl\": \"dl\",\n\t\t\"dv\": [\"dif\", \"dv\"],\n\t\t\"fli\": \"fli\",\n\t\t\"gl\": \"gl\",\n\t\t\"mpeg\": [\"mpeg\", \"mpg\", \"mpe\", \"m1v\", \"m2v\", \"mp2\", \"mpa\", \"mpv2\"],\n\t\t\"mp4\": [\"mp4\", \"mp4v\", \"mpg4\"],\n\t\t\"quicktime\": [\"qt\", \"mov\"],\n\t\t\"ogg\": \"ogv\",\n\t\t\"vnd.mpegurl\": [\"mxu\", \"m4u\"],\n\t\t\"x-flv\": \"flv\",\n\t\t\"x-la-asf\": [\"lsf\", \"lsx\"],\n\t\t\"x-mng\": \"mng\",\n\t\t\"x-ms-asf\": [\"asf\", \"asx\", \"asr\"],\n\t\t\"x-ms-wm\": \"wm\",\n\t\t\"x-ms-wmv\": \"wmv\",\n\t\t\"x-ms-wmx\": \"wmx\",\n\t\t\"x-ms-wvx\": \"wvx\",\n\t\t\"x-msvideo\": \"avi\",\n\t\t\"x-sgi-movie\": \"movie\",\n\t\t\"x-matroska\": [\"mpv\", \"mkv\", \"mk3d\", \"mks\"],\n\t\t\"3gpp2\": \"3g2\",\n\t\t\"h261\": \"h261\",\n\t\t\"h263\": \"h263\",\n\t\t\"h264\": \"h264\",\n\t\t\"jpeg\": \"jpgv\",\n\t\t\"jpm\": [\"jpm\", \"jpgm\"],\n\t\t\"mj2\": [\"mj2\", \"mjp2\"],\n\t\t\"vnd.dece.hd\": [\"uvh\", \"uvvh\"],\n\t\t\"vnd.dece.mobile\": [\"uvm\", \"uvvm\"],\n\t\t\"vnd.dece.pd\": [\"uvp\", \"uvvp\"],\n\t\t\"vnd.dece.sd\": [\"uvs\", \"uvvs\"],\n\t\t\"vnd.dece.video\": [\"uvv\", \"uvvv\"],\n\t\t\"vnd.dvb.file\": \"dvb\",\n\t\t\"vnd.fvt\": \"fvt\",\n\t\t\"vnd.ms-playready.media.pyv\": \"pyv\",\n\t\t\"vnd.uvvu.mp4\": [\"uvu\", \"uvvu\"],\n\t\t\"vnd.vivo\": \"viv\",\n\t\t\"webm\": \"webm\",\n\t\t\"x-f4v\": \"f4v\",\n\t\t\"x-m4v\": \"m4v\",\n\t\t\"x-ms-vob\": \"vob\",\n\t\t\"x-smv\": \"smv\"\t\t\n\t},\n\t\"x-conference\": {\n\t\t\"x-cooltalk\": \"ice\"\n\t},\n\t\"x-world\": {\n\t\t\"x-vrml\": [\"vrm\", \"vrml\", \"wrl\", \"flr\", \"wrz\", \"xaf\", \"xof\"]\n\t}\n};\n\nconst mimeTypes = (() => {\n\tconst mimeTypes = {};\n\tfor (let type in table) {\n\t\t// eslint-disable-next-line no-prototype-builtins\n\t\tif (table.hasOwnProperty(type)) {\n\t\t\tfor (let subtype in table[type]) {\n\t\t\t\t// eslint-disable-next-line no-prototype-builtins\n\t\t\t\tif (table[type].hasOwnProperty(subtype)) {\n\t\t\t\t\tconst value = table[type][subtype];\n\t\t\t\t\tif (typeof value == \"string\") {\n\t\t\t\t\t\tmimeTypes[value] = type + \"/\" + subtype;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfor (let indexMimeType = 0; indexMimeType < value.length; indexMimeType++) {\n\t\t\t\t\t\t\tmimeTypes[value[indexMimeType]] = type + \"/\" + subtype;\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}\n\t}\n\treturn mimeTypes;\n})();\n\nexport default getMimeType;\n\nfunction getMimeType(filename) {\n\tconst defaultValue = \"application/octet-stream\";\n\treturn filename && mimeTypes[filename.split(\".\").pop().toLowerCase()] || defaultValue;\n}","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nconst table = [];\nfor (let i = 0; i < 256; i++) {\n\tlet t = i;\n\tfor (let j = 0; j < 8; j++) {\n\t\tif (t & 1) {\n\t\t\tt = (t >>> 1) ^ 0xEDB88320;\n\t\t} else {\n\t\t\tt = t >>> 1;\n\t\t}\n\t}\n\ttable[i] = t;\n}\n\nclass Crc32 {\n\n\tconstructor(crc) {\n\t\tthis.crc = crc || -1;\n\t}\n\n\tappend(data) {\n\t\tlet crc = this.crc | 0;\n\t\tfor (let offset = 0, length = data.length | 0; offset < length; offset++) {\n\t\t\tcrc = (crc >>> 8) ^ table[(crc ^ data[offset]) & 0xFF];\n\t\t}\n\t\tthis.crc = crc;\n\t}\n\n\tget() {\n\t\treturn ~this.crc;\n\t}\n}\n\nexport default Crc32;","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/* global TextEncoder */\n\nexport default encodeText;\n\nfunction encodeText(value) {\n\tif (typeof TextEncoder == \"undefined\") {\n\t\tvalue = unescape(encodeURIComponent(value));\n\t\tconst result = new Uint8Array(value.length);\n\t\tfor (let i = 0; i < result.length; i++) {\n\t\t\tresult[i] = value.charCodeAt(i);\n\t\t}\n\t\treturn result;\n\t} else {\n\t\treturn new TextEncoder().encode(value);\n\t}\n}","// Derived from https://github.com/xqdoo00o/jszip/blob/master/lib/sjcl.js\n\n/** @fileOverview Javascript cryptography implementation.\n *\n * Crush to remove comments, shorten variable names and\n * generally reduce transmission size.\n *\n * @author Emily Stark\n * @author Mike Hamburg\n * @author Dan Boneh\n */\n\n/*jslint indent: 2, bitwise: false, nomen: false, plusplus: false, white: false, regexp: false */\n\n/** @fileOverview Arrays of bits, encoded as arrays of Numbers.\n *\n * @author Emily Stark\n * @author Mike Hamburg\n * @author Dan Boneh\n */\n\n/**\n * Arrays of bits, encoded as arrays of Numbers.\n * @namespace\n * @description\n * <p>\n * These objects are the currency accepted by SJCL's crypto functions.\n * </p>\n *\n * <p>\n * Most of our crypto primitives operate on arrays of 4-byte words internally,\n * but many of them can take arguments that are not a multiple of 4 bytes.\n * This library encodes arrays of bits (whose size need not be a multiple of 8\n * bits) as arrays of 32-bit words. The bits are packed, big-endian, into an\n * array of words, 32 bits at a time. Since the words are double-precision\n * floating point numbers, they fit some extra data. We use this (in a private,\n * possibly-changing manner) to encode the number of bits actually present\n * in the last word of the array.\n * </p>\n *\n * <p>\n * Because bitwise ops clear this out-of-band data, these arrays can be passed\n * to ciphers like AES which want arrays of words.\n * </p>\n */\nconst bitArray = {\n\t/**\n\t * Concatenate two bit arrays.\n\t * @param {bitArray} a1 The first array.\n\t * @param {bitArray} a2 The second array.\n\t * @return {bitArray} The concatenation of a1 and a2.\n\t */\n\tconcat(a1, a2) {\n\t\tif (a1.length === 0 || a2.length === 0) {\n\t\t\treturn a1.concat(a2);\n\t\t}\n\n\t\tconst last = a1[a1.length - 1], shift = bitArray.getPartial(last);\n\t\tif (shift === 32) {\n\t\t\treturn a1.concat(a2);\n\t\t} else {\n\t\t\treturn bitArray._shiftRight(a2, shift, last | 0, a1.slice(0, a1.length - 1));\n\t\t}\n\t},\n\n\t/**\n\t * Find the length of an array of bits.\n\t * @param {bitArray} a The array.\n\t * @return {Number} The length of a, in bits.\n\t */\n\tbitLength(a) {\n\t\tconst l = a.length;\n\t\tif (l === 0) {\n\t\t\treturn 0;\n\t\t}\n\t\tconst x = a[l - 1];\n\t\treturn (l - 1) * 32 + bitArray.getPartial(x);\n\t},\n\n\t/**\n\t * Truncate an array.\n\t * @param {bitArray} a The array.\n\t * @param {Number} len The length to truncate to, in bits.\n\t * @return {bitArray} A new array, truncated to len bits.\n\t */\n\tclamp(a, len) {\n\t\tif (a.length * 32 < len) {\n\t\t\treturn a;\n\t\t}\n\t\ta = a.slice(0, Math.ceil(len / 32));\n\t\tconst l = a.length;\n\t\tlen = len & 31;\n\t\tif (l > 0 && len) {\n\t\t\ta[l - 1] = bitArray.partial(len, a[l - 1] & 0x80000000 >> (len - 1), 1);\n\t\t}\n\t\treturn a;\n\t},\n\n\t/**\n\t * Make a partial word for a bit array.\n\t * @param {Number} len The number of bits in the word.\n\t * @param {Number} x The bits.\n\t * @param {Number} [_end=0] Pass 1 if x has already been shifted to the high side.\n\t * @return {Number} The partial word.\n\t */\n\tpartial(len, x, _end) {\n\t\tif (len === 32) {\n\t\t\treturn x;\n\t\t}\n\t\treturn (_end ? x | 0 : x << (32 - len)) + len * 0x10000000000;\n\t},\n\n\t/**\n\t * Get the number of bits used by a partial word.\n\t * @param {Number} x The partial word.\n\t * @return {Number} The number of bits used by the partial word.\n\t */\n\tgetPartial(x) {\n\t\treturn Math.round(x / 0x10000000000) || 32;\n\t},\n\n\t/** Shift an array right.\n\t * @param {bitArray} a The array to shift.\n\t * @param {Number} shift The number of bits to shift.\n\t * @param {Number} [carry=0] A byte to carry in\n\t * @param {bitArray} [out=[]] An array to prepend to the output.\n\t * @private\n\t */\n\t_shiftRight(a, shift, carry, out) {\n\t\tif (out === undefined) {\n\t\t\tout = [];\n\t\t}\n\n\t\tfor (; shift >= 32; shift -= 32) {\n\t\t\tout.push(carry);\n\t\t\tcarry = 0;\n\t\t}\n\t\tif (shift === 0) {\n\t\t\treturn out.concat(a);\n\t\t}\n\n\t\tfor (let i = 0; i < a.length; i++) {\n\t\t\tout.push(carry | a[i] >>> shift);\n\t\t\tcarry = a[i] << (32 - shift);\n\t\t}\n\t\tconst last2 = a.length ? a[a.length - 1] : 0;\n\t\tconst shift2 = bitArray.getPartial(last2);\n\t\tout.push(bitArray.partial(shift + shift2 & 31, (shift + shift2 > 32) ? carry : out.pop(), 1));\n\t\treturn out;\n\t}\n};\n\n/** @fileOverview Bit array codec implementations.\n *\n * @author Emily Stark\n * @author Mike Hamburg\n * @author Dan Boneh\n */\n\n/**\n * Arrays of bytes\n * @namespace\n */\nconst codec = {\n\tbytes: {\n\t\t/** Convert from a bitArray to an array of bytes. */\n\t\tfromBits(arr) {\n\t\t\tconst bl = bitArray.bitLength(arr);\n\t\t\tconst byteLength = bl / 8;\n\t\t\tconst out = new Uint8Array(byteLength);\n\t\t\tlet tmp;\n\t\t\tfor (let i = 0; i < byteLength; i++) {\n\t\t\t\tif ((i & 3) === 0) {\n\t\t\t\t\ttmp = arr[i / 4];\n\t\t\t\t}\n\t\t\t\tout[i] = tmp >>> 24;\n\t\t\t\ttmp <<= 8;\n\t\t\t}\n\t\t\treturn out;\n\t\t},\n\t\t/** Convert from an array of bytes to a bitArray. */\n\t\ttoBits(bytes) {\n\t\t\tconst out = [];\n\t\t\tlet i;\n\t\t\tlet tmp = 0;\n\t\t\tfor (i = 0; i < bytes.length; i++) {\n\t\t\t\ttmp = tmp << 8 | bytes[i];\n\t\t\t\tif ((i & 3) === 3) {\n\t\t\t\t\tout.push(tmp);\n\t\t\t\t\ttmp = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (i & 3) {\n\t\t\t\tout.push(bitArray.partial(8 * (i & 3), tmp));\n\t\t\t}\n\t\t\treturn out;\n\t\t}\n\t}\n};\n\nconst hash = {};\n\n/**\n * Context for a SHA-1 operation in progress.\n * @constructor\n */\nhash.sha1 = function (hash) {\n\tif (hash) {\n\t\tthis._h = hash._h.slice(0);\n\t\tthis._buffer = hash._buffer.slice(0);\n\t\tthis._length = hash._length;\n\t} else {\n\t\tthis.reset();\n\t}\n};\n\nhash.sha1.prototype = {\n\t/**\n\t * The hash's block size, in bits.\n\t * @constant\n\t */\n\tblockSize: 512,\n\n\t/**\n\t * Reset the hash state.\n\t * @return this\n\t */\n\treset: function () {\n\t\tconst sha1 = this;\n\t\tsha1._h = this._init.slice(0);\n\t\tsha1._buffer = [];\n\t\tsha1._length = 0;\n\t\treturn sha1;\n\t},\n\n\t/**\n\t * Input several words to the hash.\n\t * @param {bitArray|String} data the data to hash.\n\t * @return this\n\t */\n\tupdate: function (data) {\n\t\tconst sha1 = this;\n\t\tif (typeof data === \"string\") {\n\t\t\tdata = codec.utf8String.toBits(data);\n\t\t}\n\t\tconst b = sha1._buffer = bitArray.concat(sha1._buffer, data);\n\t\tconst ol = sha1._length;\n\t\tconst nl = sha1._length = ol + bitArray.bitLength(data);\n\t\tif (nl > 9007199254740991) {\n\t\t\tthrow new Error(\"Cannot hash more than 2^53 - 1 bits\");\n\t\t}\n\t\tconst c = new Uint32Array(b);\n\t\tlet j = 0;\n\t\tfor (let i = sha1.blockSize + ol - ((sha1.blockSize + ol) & (sha1.blockSize - 1)); i <= nl;\n\t\t\ti += sha1.blockSize) {\n\t\t\tsha1._block(c.subarray(16 * j, 16 * (j + 1)));\n\t\t\tj += 1;\n\t\t}\n\t\tb.splice(0, 16 * j);\n\t\treturn sha1;\n\t},\n\n\t/**\n\t * Complete hashing and output the hash value.\n\t * @return {bitArray} The hash value, an array of 5 big-endian words. TODO\n\t */\n\tfinalize: function () {\n\t\tconst sha1 = this;\n\t\tlet b = sha1._buffer;\n\t\tconst h = sha1._h;\n\n\t\t// Round out and push the buffer\n\t\tb = bitArray.concat(b, [bitArray.partial(1, 1)]);\n\t\t// Round out the buffer to a multiple of 16 words, less the 2 length words.\n\t\tfor (let i = b.length + 2; i & 15; i++) {\n\t\t\tb.push(0);\n\t\t}\n\n\t\t// append the length\n\t\tb.push(Math.floor(sha1._length / 0x100000000));\n\t\tb.push(sha1._length | 0);\n\n\t\twhile (b.length) {\n\t\t\tsha1._block(b.splice(0, 16));\n\t\t}\n\n\t\tsha1.reset();\n\t\treturn h;\n\t},\n\n\t/**\n\t * The SHA-1 initialization vector.\n\t * @private\n\t */\n\t_init: [0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0],\n\n\t/**\n\t * The SHA-1 hash key.\n\t * @private\n\t */\n\t_key: [0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xCA62C1D6],\n\n\t/**\n\t * The SHA-1 logical functions f(0), f(1), ..., f(79).\n\t * @private\n\t */\n\t_f: function (t, b, c, d) {\n\t\tif (t <= 19) {\n\t\t\treturn (b & c) | (~b & d);\n\t\t} else if (t <= 39) {\n\t\t\treturn b ^ c ^ d;\n\t\t} else if (t <= 59) {\n\t\t\treturn (b & c) | (b & d) | (c & d);\n\t\t} else if (t <= 79) {\n\t\t\treturn b ^ c ^ d;\n\t\t}\n\t},\n\n\t/**\n\t * Circular left-shift operator.\n\t * @private\n\t */\n\t_S: function (n, x) {\n\t\treturn (x << n) | (x >>> 32 - n);\n\t},\n\n\t/**\n\t * Perform one cycle of SHA-1.\n\t * @param {Uint32Array|bitArray} words one block of words.\n\t * @private\n\t */\n\t_block: function (words) {\n\t\tconst sha1 = this;\n\t\tconst h = sha1._h;\n\t\t// When words is passed to _block, it has 16 elements. SHA1 _block\n\t\t// function extends words with new elements (at the end there are 80 elements). \n\t\t// The problem is that if we use Uint32Array instead of Array, \n\t\t// the length of Uint32Array cannot be changed. Thus, we replace words with a \n\t\t// normal Array here.\n\t\tconst w = Array(80); // do not use Uint32Array here as the instantiation is slower\n\t\tfor (let j = 0; j < 16; j++) {\n\t\t\tw[j] = words[j];\n\t\t}\n\n\t\tlet a = h[0];\n\t\tlet b = h[1];\n\t\tlet c = h[2];\n\t\tlet d = h[3];\n\t\tlet e = h[4];\n\n\t\tfor (let t = 0; t <= 79; t++) {\n\t\t\tif (t >= 16) {\n\t\t\t\tw[t] = sha1._S(1, w[t - 3] ^ w[t - 8] ^ w[t - 14] ^ w[t - 16]);\n\t\t\t}\n\t\t\tconst tmp = (sha1._S(5, a) + sha1._f(t, b, c, d) + e + w[t] +\n\t\t\t\tsha1._key[Math.floor(t / 20)]) | 0;\n\t\t\te = d;\n\t\t\td = c;\n\t\t\tc = sha1._S(30, b);\n\t\t\tb = a;\n\t\t\ta = tmp;\n\t\t}\n\n\t\th[0] = (h[0] + a) | 0;\n\t\th[1] = (h[1] + b) | 0;\n\t\th[2] = (h[2] + c) | 0;\n\t\th[3] = (h[3] + d) | 0;\n\t\th[4] = (h[4] + e) | 0;\n\t}\n};\n\n/** @fileOverview Low-level AES implementation.\n *\n * This file contains a low-level implementation of AES, optimized for\n * size and for efficiency on several browsers. It is based on\n * OpenSSL's aes_core.c, a public-domain implementation by Vincent\n * Rijmen, Antoon Bosselaers and Paulo Barreto.\n *\n * An older version of this implementation is available in the public\n * domain, but this one is (c) Emily Stark, Mike Hamburg, Dan Boneh,\n * Stanford University 2008-2010 and BSD-licensed for liability\n * reasons.\n *\n * @author Emily Stark\n * @author Mike Hamburg\n * @author Dan Boneh\n */\n\nconst cipher = {};\n\n/**\n * Schedule out an AES key for both encryption and decryption. This\n * is a low-level class. Use a cipher mode to do bulk encryption.\n *\n * @constructor\n * @param {Array} key The key as an array of 4, 6 or 8 words.\n */\ncipher.aes = class {\n\tconstructor(key) {\n\t\t/**\n\t\t * The expanded S-box and inverse S-box tables. These will be computed\n\t\t * on the client so that we don't have to send them down the wire.\n\t\t *\n\t\t * There are two tables, _tables[0] is for encryption and\n\t\t * _tables[1] is for decryption.\n\t\t *\n\t\t * The first 4 sub-tables are the expanded S-box with MixColumns. The\n\t\t * last (_tables[01][4]) is the S-box itself.\n\t\t *\n\t\t * @private\n\t\t */\n\t\tconst aes = this;\n\t\taes._tables = [[[], [], [], [], []], [[], [], [], [], []]];\n\n\t\tif (!aes._tables[0][0][0]) {\n\t\t\taes._precompute();\n\t\t}\n\n\t\tconst sbox = aes._tables[0][4];\n\t\tconst decTable = aes._tables[1];\n\t\tconst keyLen = key.length;\n\n\t\tlet i, encKey, decKey, rcon = 1;\n\n\t\tif (keyLen !== 4 && keyLen !== 6 && keyLen !== 8) {\n\t\t\tthrow new Error(\"invalid aes key size\");\n\t\t}\n\n\t\taes._key = [encKey = key.slice(0), decKey = []];\n\n\t\t// schedule encryption keys\n\t\tfor (i = keyLen; i < 4 * keyLen + 28; i++) {\n\t\t\tlet tmp = encKey[i - 1];\n\n\t\t\t// apply sbox\n\t\t\tif (i % keyLen === 0 || (keyLen === 8 && i % keyLen === 4)) {\n\t\t\t\ttmp = sbox[tmp >>> 24] << 24 ^ sbox[tmp >> 16 & 255] << 16 ^ sbox[tmp >> 8 & 255] << 8 ^ sbox[tmp & 255];\n\n\t\t\t\t// shift rows and add rcon\n\t\t\t\tif (i % keyLen === 0) {\n\t\t\t\t\ttmp = tmp << 8 ^ tmp >>> 24 ^ rcon << 24;\n\t\t\t\t\trcon = rcon << 1 ^ (rcon >> 7) * 283;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tencKey[i] = encKey[i - keyLen] ^ tmp;\n\t\t}\n\n\t\t// schedule decryption keys\n\t\tfor (let j = 0; i; j++, i--) {\n\t\t\tconst tmp = encKey[j & 3 ? i : i - 4];\n\t\t\tif (i <= 4 || j < 4) {\n\t\t\t\tdecKey[j] = tmp;\n\t\t\t} else {\n\t\t\t\tdecKey[j] = decTable[0][sbox[tmp >>> 24]] ^\n\t\t\t\t\tdecTable[1][sbox[tmp >> 16 & 255]] ^\n\t\t\t\t\tdecTable[2][sbox[tmp >> 8 & 255]] ^\n\t\t\t\t\tdecTable[3][sbox[tmp & 255]];\n\t\t\t}\n\t\t}\n\t}\n\t// public\n\t/* Something like this might appear here eventually\n\tname: \"AES\",\n\tblockSize: 4,\n\tkeySizes: [4,6,8],\n\t*/\n\n\t/**\n\t * Encrypt an array of 4 big-endian words.\n\t * @param {Array} data The plaintext.\n\t * @return {Array} The ciphertext.\n\t */\n\tencrypt(data) {\n\t\treturn this._crypt(data, 0);\n\t}\n\n\t/**\n\t * Decrypt an array of 4 big-endian words.\n\t * @param {Array} data The ciphertext.\n\t * @return {Array} The plaintext.\n\t */\n\tdecrypt(data) {\n\t\treturn this._crypt(data, 1);\n\t}\n\n\t/**\n\t * Expand the S-box tables.\n\t *\n\t * @private\n\t */\n\t_precompute() {\n\t\tconst encTable = this._tables[0];\n\t\tconst decTable = this._tables[1];\n\t\tconst sbox = encTable[4];\n\t\tconst sboxInv = decTable[4];\n\t\tconst d = [];\n\t\tconst th = [];\n\t\tlet xInv, x2, x4, x8;\n\n\t\t// Compute double and third tables\n\t\tfor (let i = 0; i < 256; i++) {\n\t\t\tth[(d[i] = i << 1 ^ (i >> 7) * 283) ^ i] = i;\n\t\t}\n\n\t\tfor (let x = xInv = 0; !sbox[x]; x ^= x2 || 1, xInv = th[xInv] || 1) {\n\t\t\t// Compute sbox\n\t\t\tlet s = xInv ^ xInv << 1 ^ xInv << 2 ^ xInv << 3 ^ xInv << 4;\n\t\t\ts = s >> 8 ^ s & 255 ^ 99;\n\t\t\tsbox[x] = s;\n\t\t\tsboxInv[s] = x;\n\n\t\t\t// Compute MixColumns\n\t\t\tx8 = d[x4 = d[x2 = d[x]]];\n\t\t\tlet tDec = x8 * 0x1010101 ^ x4 * 0x10001 ^ x2 * 0x101 ^ x * 0x1010100;\n\t\t\tlet tEnc = d[s] * 0x101 ^ s * 0x1010100;\n\n\t\t\tfor (let i = 0; i < 4; i++) {\n\t\t\t\tencTable[i][x] = tEnc = tEnc << 24 ^ tEnc >>> 8;\n\t\t\t\tdecTable[i][s] = tDec = tDec << 24 ^ tDec >>> 8;\n\t\t\t}\n\t\t}\n\n\t\t// Compactify. Considerable speedup on Firefox.\n\t\tfor (let i = 0; i < 5; i++) {\n\t\t\tencTable[i] = encTable[i].slice(0);\n\t\t\tdecTable[i] = decTable[i].slice(0);\n\t\t}\n\t}\n\n\t/**\n\t * Encryption and decryption core.\n\t * @param {Array} input Four words to be encrypted or decrypted.\n\t * @param dir The direction, 0 for encrypt and 1 for decrypt.\n\t * @return {Array} The four encrypted or decrypted words.\n\t * @private\n\t */\n\t_crypt(input, dir) {\n\t\tif (input.length !== 4) {\n\t\t\tthrow new Error(\"invalid aes block size\");\n\t\t}\n\n\t\tconst key = this._key[dir];\n\n\t\tconst nInnerRounds = key.length / 4 - 2;\n\t\tconst out = [0, 0, 0, 0];\n\t\tconst table = this._tables[dir];\n\n\t\t// load up the tables\n\t\tconst t0 = table[0];\n\t\tconst t1 = table[1];\n\t\tconst t2 = table[2];\n\t\tconst t3 = table[3];\n\t\tconst sbox = table[4];\n\n\t\t// state variables a,b,c,d are loaded with pre-whitened data\n\t\tlet a = input[0] ^ key[0];\n\t\tlet b = input[dir ? 3 : 1] ^ key[1];\n\t\tlet c = input[2] ^ key[2];\n\t\tlet d = input[dir ? 1 : 3] ^ key[3];\n\t\tlet kIndex = 4;\n\t\tlet a2, b2, c2;\n\n\t\t// Inner rounds. Cribbed from OpenSSL.\n\t\tfor (let i = 0; i < nInnerRounds; i++) {\n\t\t\ta2 = t0[a >>> 24] ^ t1[b >> 16 & 255] ^ t2[c >> 8 & 255] ^ t3[d & 255] ^ key[kIndex];\n\t\t\tb2 = t0[b >>> 24] ^ t1[c >> 16 & 255] ^ t2[d >> 8 & 255] ^ t3[a & 255] ^ key[kIndex + 1];\n\t\t\tc2 = t0[c >>> 24] ^ t1[d >> 16 & 255] ^ t2[a >> 8 & 255] ^ t3[b & 255] ^ key[kIndex + 2];\n\t\t\td = t0[d >>> 24] ^ t1[a >> 16 & 255] ^ t2[b >> 8 & 255] ^ t3[c & 255] ^ key[kIndex + 3];\n\t\t\tkIndex += 4;\n\t\t\ta = a2; b = b2; c = c2;\n\t\t}\n\n\t\t// Last round.\n\t\tfor (let i = 0; i < 4; i++) {\n\t\t\tout[dir ? 3 & -i : i] =\n\t\t\t\tsbox[a >>> 24] << 24 ^\n\t\t\t\tsbox[b >> 16 & 255] << 16 ^\n\t\t\t\tsbox[c >> 8 & 255] << 8 ^\n\t\t\t\tsbox[d & 255] ^\n\t\t\t\tkey[kIndex++];\n\t\t\ta2 = a; a = b; b = c; c = d; d = a2;\n\t\t}\n\n\t\treturn out;\n\t}\n};\n\n/** @fileOverview CTR mode implementation.\n *\n * Special thanks to Roy Nicholson for pointing out a bug in our\n * implementation.\n *\n * @author Emily Stark\n * @author Mike Hamburg\n * @author Dan Boneh\n */\n\n/** Brian Gladman's CTR Mode.\n* @constructor\n* @param {Object} _prf The aes instance to generate key.\n* @param {bitArray} _iv The iv for ctr mode, it must be 128 bits.\n*/\n\nconst mode = {};\n\n/**\n * Brian Gladman's CTR Mode.\n * @namespace\n */\nmode.ctrGladman = class {\n\tconstructor(prf, iv) {\n\t\tthis._prf = prf;\n\t\tthis._initIv = iv;\n\t\tthis._iv = iv;\n\t}\n\n\treset() {\n\t\tthis._iv = this._initIv;\n\t}\n\n\t/** Input some data to calculate.\n\t * @param {bitArray} data the data to process, it must be intergral multiple of 128 bits unless it's the last.\n\t */\n\tupdate(data) {\n\t\treturn this.calculate(this._prf, data, this._iv);\n\t}\n\n\tincWord(word) {\n\t\tif (((word >> 24) & 0xff) === 0xff) { //overflow\n\t\t\tlet b1 = (word >> 16) & 0xff;\n\t\t\tlet b2 = (word >> 8) & 0xff;\n\t\t\tlet b3 = word & 0xff;\n\n\t\t\tif (b1 === 0xff) { // overflow b1 \n\t\t\t\tb1 = 0;\n\t\t\t\tif (b2 === 0xff) {\n\t\t\t\t\tb2 = 0;\n\t\t\t\t\tif (b3 === 0xff) {\n\t\t\t\t\t\tb3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t++b3;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t++b2;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t++b1;\n\t\t\t}\n\n\t\t\tword = 0;\n\t\t\tword += (b1 << 16);\n\t\t\tword += (b2 << 8);\n\t\t\tword += b3;\n\t\t} else {\n\t\t\tword += (0x01 << 24);\n\t\t}\n\t\treturn word;\n\t}\n\n\tincCounter(counter) {\n\t\tif ((counter[0] = this.incWord(counter[0])) === 0) {\n\t\t\t// encr_data in fileenc.c from Dr Brian Gladman's counts only with DWORD j < 8\n\t\t\tcounter[1] = this.incWord(counter[1]);\n\t\t}\n\t}\n\n\tcalculate(prf, data, iv) {\n\t\tlet l;\n\t\tif (!(l = data.length)) {\n\t\t\treturn [];\n\t\t}\n\t\tconst bl = bitArray.bitLength(data);\n\t\tfor (let i = 0; i < l; i += 4) {\n\t\t\tthis.incCounter(iv);\n\t\t\tconst e = prf.encrypt(iv);\n\t\t\tdata[i] ^= e[0];\n\t\t\tdata[i + 1] ^= e[1];\n\t\t\tdata[i + 2] ^= e[2];\n\t\t\tdata[i + 3] ^= e[3];\n\t\t}\n\t\treturn bitArray.clamp(data, bl);\n\t}\n};\n\n\nconst misc = {};\n\n/** @fileOverview HMAC implementation.\n *\n * @author Emily Stark\n * @author Mike Hamburg\n * @author Dan Boneh\n */\n\n/** HMAC with the specified hash function.\n * @constructor\n * @param {bitArray} key the key for HMAC.\n * @param {Object} [Hash=hash.sha1] The hash function to use.\n */\nmisc.hmacSha1 = class {\n\n\tconstructor(key) {\n\t\tconst hmac = this;\n\t\tconst Hash = hmac._hash = hash.sha1;\n\t\tconst exKey = [[], []];\n\t\tconst bs = Hash.prototype.blockSize / 32;\n\t\thmac._baseHash = [new Hash(), new Hash()];\n\n\t\tif (key.length > bs) {\n\t\t\tkey = Hash.hash(key);\n\t\t}\n\n\t\tfor (let i = 0; i < bs; i++) {\n\t\t\texKey[0][i] = key[i] ^ 0x36363636;\n\t\t\texKey[1][i] = key[i] ^ 0x5C5C5C5C;\n\t\t}\n\n\t\thmac._baseHash[0].update(exKey[0]);\n\t\thmac._baseHash[1].update(exKey[1]);\n\t\thmac._resultHash = new Hash(hmac._baseHash[0]);\n\t}\n\treset() {\n\t\tconst hmac = this;\n\t\thmac._resultHash = new hmac._hash(hmac._baseHash[0]);\n\t\thmac._updated = false;\n\t}\n\n\tupdate(data) {\n\t\tconst hmac = this;\n\t\thmac._updated = true;\n\t\thmac._resultHash.update(data);\n\t}\n\n\tdigest() {\n\t\tconst hmac = this;\n\t\tconst w = hmac._resultHash.finalize();\n\t\tconst result = new (hmac._hash)(hmac._baseHash[1]).update(w).finalize();\n\n\t\thmac.reset();\n\n\t\treturn result;\n\t}\n};\n\nexport {\n\tcipher,\n\tcodec,\n\tmisc,\n\tmode\n};","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/* global crypto */\n\nimport encodeText from \"./../util/encode-text.js\";\nimport { cipher, codec, misc, mode } from \"./sjcl.js\";\n\nconst ERR_INVALID_PASSWORD = \"Invalid pasword\";\nconst BLOCK_LENGTH = 16;\nconst RAW_FORMAT = \"raw\";\nconst PBKDF2_ALGORITHM = { name: \"PBKDF2\" };\nconst HASH_ALGORITHM = { name: \"HMAC\" };\nconst HASH_FUNCTION = \"SHA-1\";\nconst BASE_KEY_ALGORITHM = Object.assign({ hash: HASH_ALGORITHM }, PBKDF2_ALGORITHM);\nconst DERIVED_BITS_ALGORITHM = Object.assign({ iterations: 1000, hash: { name: HASH_FUNCTION } }, PBKDF2_ALGORITHM);\nconst DERIVED_BITS_USAGE = [\"deriveBits\"];\nconst SALT_LENGTH = [8, 12, 16];\nconst KEY_LENGTH = [16, 24, 32];\nconst SIGNATURE_LENGTH = 10;\nconst COUNTER_DEFAULT_VALUE = [0, 0, 0, 0];\nconst codecBytes = codec.bytes;\nconst Aes = cipher.aes;\nconst CtrGladman = mode.ctrGladman;\nconst HmacSha1 = misc.hmacSha1;\nclass AESDecrypt {\n\n\tconstructor(password, signed, strength) {\n\t\tObject.assign(this, {\n\t\t\tpassword,\n\t\t\tsigned,\n\t\t\tstrength: strength - 1,\n\t\t\tpendingInput: new Uint8Array(0)\n\t\t});\n\t}\n\n\tasync append(input) {\n\t\tconst aesCrypto = this;\n\t\tif (aesCrypto.password) {\n\t\t\tconst preamble = subarray(input, 0, SALT_LENGTH[aesCrypto.strength] + 2);\n\t\t\tawait createDecryptionKeys(aesCrypto, preamble, aesCrypto.password);\n\t\t\taesCrypto.password = null;\n\t\t\taesCrypto.aesCtrGladman = new CtrGladman(new Aes(aesCrypto.keys.key), Array.from(COUNTER_DEFAULT_VALUE));\n\t\t\taesCrypto.hmac = new HmacSha1(aesCrypto.keys.authentication);\n\t\t\tinput = subarray(input, SALT_LENGTH[aesCrypto.strength] + 2);\n\t\t}\n\t\tconst output = new Uint8Array(input.length - SIGNATURE_LENGTH - ((input.length - SIGNATURE_LENGTH) % BLOCK_LENGTH));\n\t\treturn append(aesCrypto, input, output, 0, SIGNATURE_LENGTH, true);\n\t}\n\n\tflush() {\n\t\tconst aesCrypto = this;\n\t\tconst pendingInput = aesCrypto.pendingInput;\n\t\tconst chunkToDecrypt = subarray(pendingInput, 0, pendingInput.length - SIGNATURE_LENGTH);\n\t\tconst originalSignature = subarray(pendingInput, pendingInput.length - SIGNATURE_LENGTH);\n\t\tlet decryptedChunkArray = new Uint8Array(0);\n\t\tif (chunkToDecrypt.length) {\n\t\t\tconst encryptedChunk = codecBytes.toBits(chunkToDecrypt);\n\t\t\taesCrypto.hmac.update(encryptedChunk);\n\t\t\tconst decryptedChunk = aesCrypto.aesCtrGladman.update(encryptedChunk);\n\t\t\tdecryptedChunkArray = codecBytes.fromBits(decryptedChunk);\n\t\t}\n\t\tlet valid = true;\n\t\tif (aesCrypto.signed) {\n\t\t\tconst signature = subarray(codecBytes.fromBits(aesCrypto.hmac.digest()), 0, SIGNATURE_LENGTH);\n\t\t\tfor (let indexSignature = 0; indexSignature < SIGNATURE_LENGTH; indexSignature++) {\n\t\t\t\tif (signature[indexSignature] != originalSignature[indexSignature]) {\n\t\t\t\t\tvalid = false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\tvalid,\n\t\t\tdata: decryptedChunkArray\n\t\t};\n\t}\n}\n\nclass AESEncrypt {\n\n\tconstructor(password, strength) {\n\t\tObject.assign(this, {\n\t\t\tpassword,\n\t\t\tstrength: strength - 1,\n\t\t\tpendingInput: new Uint8Array(0)\n\t\t});\n\t}\n\n\tasync append(input) {\n\t\tconst aesCrypto = this;\n\t\tlet preamble = new Uint8Array(0);\n\t\tif (aesCrypto.password) {\n\t\t\tpreamble = await createEncryptionKeys(aesCrypto, aesCrypto.password);\n\t\t\taesCrypto.password = null;\n\t\t\taesCrypto.aesCtrGladman = new CtrGladman(new Aes(aesCrypto.keys.key), Array.from(COUNTER_DEFAULT_VALUE));\n\t\t\taesCrypto.hmac = new HmacSha1(aesCrypto.keys.authentication);\n\t\t}\n\t\tconst output = new Uint8Array(preamble.length + input.length - (input.length % BLOCK_LENGTH));\n\t\toutput.set(preamble, 0);\n\t\treturn append(aesCrypto, input, output, preamble.length, 0);\n\t}\n\n\tflush() {\n\t\tconst aesCrypto = this;\n\t\tlet encryptedChunkArray = new Uint8Array(0);\n\t\tif (aesCrypto.pendingInput.length) {\n\t\t\tconst encryptedChunk = aesCrypto.aesCtrGladman.update(codecBytes.toBits(aesCrypto.pendingInput));\n\t\t\taesCrypto.hmac.update(encryptedChunk);\n\t\t\tencryptedChunkArray = codecBytes.fromBits(encryptedChunk);\n\t\t}\n\t\tconst signature = subarray(codecBytes.fromBits(aesCrypto.hmac.digest()), 0, SIGNATURE_LENGTH);\n\t\treturn {\n\t\t\tdata: concat(encryptedChunkArray, signature),\n\t\t\tsignature\n\t\t};\n\t}\n}\n\nexport {\n\tAESDecrypt,\n\tAESEncrypt,\n\tERR_INVALID_PASSWORD\n};\n\nfunction append(aesCrypto, input, output, paddingStart, paddingEnd, verifySignature) {\n\tconst inputLength = input.length - paddingEnd;\n\tif (aesCrypto.pendingInput.length) {\n\t\tinput = concat(aesCrypto.pendingInput, input);\n\t\toutput = expand(output, inputLength - (inputLength % BLOCK_LENGTH));\n\t}\n\tlet offset;\n\tfor (offset = 0; offset <= inputLength - BLOCK_LENGTH; offset += BLOCK_LENGTH) {\n\t\tconst inputChunk = codecBytes.toBits(subarray(input, offset, offset + BLOCK_LENGTH));\n\t\tif (verifySignature) {\n\t\t\taesCrypto.hmac.update(inputChunk);\n\t\t}\n\t\tconst outputChunk = aesCrypto.aesCtrGladman.update(inputChunk);\n\t\tif (!verifySignature) {\n\t\t\taesCrypto.hmac.update(outputChunk);\n\t\t}\n\t\toutput.set(codecBytes.fromBits(outputChunk), offset + paddingStart);\n\t}\n\taesCrypto.pendingInput = subarray(input, offset);\n\treturn output;\n}\n\nasync function createDecryptionKeys(decrypt, preambleArray, password) {\n\tawait createKeys(decrypt, password, subarray(preambleArray, 0, SALT_LENGTH[decrypt.strength]));\n\tconst passwordVerification = subarray(preambleArray, SALT_LENGTH[decrypt.strength]);\n\tconst passwordVerificationKey = decrypt.keys.passwordVerification;\n\tif (passwordVerificationKey[0] != passwordVerification[0] || passwordVerificationKey[1] != passwordVerification[1]) {\n\t\tthrow new Error(ERR_INVALID_PASSWORD);\n\t}\n}\n\nasync function createEncryptionKeys(encrypt, password) {\n\tconst salt = crypto.getRandomValues(new Uint8Array(SALT_LENGTH[encrypt.strength]));\n\tawait createKeys(encrypt, password, salt);\n\treturn concat(salt, encrypt.keys.passwordVerification);\n}\n\nasync function createKeys(target, password, salt) {\n\tconst encodedPassword = encodeText(password);\n\tconst basekey = await crypto.subtle.importKey(RAW_FORMAT, encodedPassword, BASE_KEY_ALGORITHM, false, DERIVED_BITS_USAGE);\n\tconst derivedBits = await crypto.subtle.deriveBits(Object.assign({ salt }, DERIVED_BITS_ALGORITHM), basekey, 8 * ((KEY_LENGTH[target.strength] * 2) + 2));\n\tconst compositeKey = new Uint8Array(derivedBits);\n\ttarget.keys = {\n\t\tkey: codecBytes.toBits(subarray(compositeKey, 0, KEY_LENGTH[target.strength])),\n\t\tauthentication: codecBytes.toBits(subarray(compositeKey, KEY_LENGTH[target.strength], KEY_LENGTH[target.strength] * 2)),\n\t\tpasswordVerification: subarray(compositeKey, KEY_LENGTH[target.strength] * 2)\n\t};\n}\n\nfunction concat(leftArray, rightArray) {\n\tlet array = leftArray;\n\tif (leftArray.length + rightArray.length) {\n\t\tarray = new Uint8Array(leftArray.length + rightArray.length);\n\t\tarray.set(leftArray, 0);\n\t\tarray.set(rightArray, leftArray.length);\n\t}\n\treturn array;\n}\n\nfunction expand(inputArray, length) {\n\tif (length && length > inputArray.length) {\n\t\tconst array = inputArray;\n\t\tinputArray = new Uint8Array(length);\n\t\tinputArray.set(array, 0);\n\t}\n\treturn inputArray;\n}\n\nfunction subarray(array, begin, end) {\n\treturn array.subarray(begin, end);\n}","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/* global crypto */\n\nimport Crc32 from \"./crc32.js\";\nimport { ERR_INVALID_PASSWORD } from \"./aes-crypto.js\";\n\nconst HEADER_LENGTH = 12;\n\nclass ZipCryptoDecrypt {\n\n\tconstructor(password, passwordVerification) {\n\t\tconst zipCrypto = this;\n\t\tObject.assign(zipCrypto, {\n\t\t\tpassword,\n\t\t\tpasswordVerification\n\t\t});\n\t\tcreateKeys(zipCrypto, password);\n\t}\n\n\tappend(input) {\n\t\tconst zipCrypto = this;\n\t\tif (zipCrypto.password) {\n\t\t\tconst decryptedHeader = decrypt(zipCrypto, input.subarray(0, HEADER_LENGTH));\n\t\t\tzipCrypto.password = null;\n\t\t\tif (decryptedHeader[HEADER_LENGTH - 1] != zipCrypto.passwordVerification) {\n\t\t\t\tthrow new Error(ERR_INVALID_PASSWORD);\n\t\t\t}\n\t\t\tinput = input.subarray(HEADER_LENGTH);\n\t\t}\n\t\treturn decrypt(zipCrypto, input);\n\t}\n\n\tflush() {\n\t\treturn {\n\t\t\tvalid: true,\n\t\t\tdata: new Uint8Array(0)\n\t\t};\n\t}\n}\n\nclass ZipCryptoEncrypt {\n\n\tconstructor(password, passwordVerification) {\n\t\tconst zipCrypto = this;\n\t\tObject.assign(zipCrypto, {\n\t\t\tpassword,\n\t\t\tpasswordVerification\n\t\t});\n\t\tcreateKeys(zipCrypto, password);\n\t}\n\n\tappend(input) {\n\t\tconst zipCrypto = this;\n\t\tlet output;\n\t\tlet offset;\n\t\tif (zipCrypto.password) {\n\t\t\tzipCrypto.password = null;\n\t\t\tconst header = crypto.getRandomValues(new Uint8Array(HEADER_LENGTH));\n\t\t\theader[HEADER_LENGTH - 1] = zipCrypto.passwordVerification;\n\t\t\toutput = new Uint8Array(input.length + header.length);\n\t\t\toutput.set(encrypt(zipCrypto, header), 0);\n\t\t\toffset = HEADER_LENGTH;\n\t\t} else {\n\t\t\toutput = new Uint8Array(input.length);\n\t\t\toffset = 0;\n\t\t}\n\t\toutput.set(encrypt(zipCrypto, input), offset);\n\t\treturn output;\n\t}\n\n\tflush() {\n\t\treturn {\n\t\t\tdata: new Uint8Array(0)\n\t\t};\n\t}\n}\n\nexport {\n\tZipCryptoDecrypt,\n\tZipCryptoEncrypt,\n\tERR_INVALID_PASSWORD\n};\n\nfunction decrypt(target, input) {\n\tconst output = new Uint8Array(input.length);\n\tfor (let index = 0; index < input.length; index++) {\n\t\toutput[index] = getByte(target) ^ input[index];\n\t\tupdateKeys(target, output[index]);\n\t}\n\treturn output;\n}\n\nfunction encrypt(target, input) {\n\tconst output = new Uint8Array(input.length);\n\tfor (let index = 0; index < input.length; index++) {\n\t\toutput[index] = getByte(target) ^ input[index];\n\t\tupdateKeys(target, input[index]);\n\t}\n\treturn output;\n}\n\nfunction createKeys(target, password) {\n\ttarget.keys = [0x12345678, 0x23456789, 0x34567890];\n\ttarget.crcKey0 = new Crc32(target.keys[0]);\n\ttarget.crcKey2 = new Crc32(target.keys[2]);\n\tfor (let index = 0; index < password.length; index++) {\n\t\tupdateKeys(target, password.charCodeAt(index));\n\t}\n}\n\nfunction updateKeys(target, byte) {\n\ttarget.crcKey0.append([byte]);\n\ttarget.keys[0] = ~target.crcKey0.get();\n\ttarget.keys[1] = getInt32(target.keys[1] + getInt8(target.keys[0]));\n\ttarget.keys[1] = getInt32(Math.imul(target.keys[1], 134775813) + 1);\n\ttarget.crcKey2.append([target.keys[1] >>> 24]);\n\ttarget.keys[2] = ~target.crcKey2.get();\n}\n\nfunction getByte(target) {\n\tconst temp = target.keys[2] | 2;\n\treturn getInt8(Math.imul(temp, (temp ^ 1)) >>> 8);\n}\n\nfunction getInt8(number) {\n\treturn number & 0xFF;\n}\n\nfunction getInt32(number) {\n\treturn number & 0xFFFFFFFF;\n}","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nimport Crc32 from \"./crc32.js\";\nimport { AESEncrypt, AESDecrypt, ERR_INVALID_PASSWORD } from \"./aes-crypto.js\";\nimport { ZipCryptoDecrypt, ZipCryptoEncrypt } from \"./zip-crypto.js\";\n\nconst CODEC_DEFLATE = \"deflate\";\nconst CODEC_INFLATE = \"inflate\";\nconst ERR_INVALID_SIGNATURE = \"Invalid signature\";\n\nclass Inflate {\n\n\tconstructor(codecConstructor, {\n\t\tsignature,\n\t\tpassword,\n\t\tsigned,\n\t\tcompressed,\n\t\tzipCrypto,\n\t\tpasswordVerification,\n\t\tencryptionStrength\n\t}, { chunkSize }) {\n\t\tconst encrypted = Boolean(password);\n\t\tObject.assign(this, {\n\t\t\tsignature,\n\t\t\tencrypted,\n\t\t\tsigned,\n\t\t\tcompressed,\n\t\t\tinflate: compressed && new codecConstructor({ chunkSize }),\n\t\t\tcrc32: signed && new Crc32(),\n\t\t\tzipCrypto,\n\t\t\tdecrypt: encrypted && zipCrypto ?\n\t\t\t\tnew ZipCryptoDecrypt(password, passwordVerification) :\n\t\t\t\tnew AESDecrypt(password, signed, encryptionStrength)\n\t\t});\n\t}\n\n\tasync append(data) {\n\t\tconst codec = this;\n\t\tif (codec.encrypted && data.length) {\n\t\t\tdata = await codec.decrypt.append(data);\n\t\t}\n\t\tif (codec.compressed && data.length) {\n\t\t\tdata = await codec.inflate.append(data);\n\t\t}\n\t\tif ((!codec.encrypted || codec.zipCrypto) && codec.signed && data.length) {\n\t\t\tcodec.crc32.append(data);\n\t\t}\n\t\treturn data;\n\t}\n\n\tasync flush() {\n\t\tconst codec = this;\n\t\tlet signature;\n\t\tlet data = new Uint8Array(0);\n\t\tif (codec.encrypted) {\n\t\t\tconst result = codec.decrypt.flush();\n\t\t\tif (!result.valid) {\n\t\t\t\tthrow new Error(ERR_INVALID_SIGNATURE);\n\t\t\t}\n\t\t\tdata = result.data;\n\t\t}\n\t\tif ((!codec.encrypted || codec.zipCrypto) && codec.signed) {\n\t\t\tconst dataViewSignature = new DataView(new Uint8Array(4).buffer);\n\t\t\tsignature = codec.crc32.get();\n\t\t\tdataViewSignature.setUint32(0, signature);\n\t\t\tif (codec.signature != dataViewSignature.getUint32(0, false)) {\n\t\t\t\tthrow new Error(ERR_INVALID_SIGNATURE);\n\t\t\t}\n\t\t}\n\t\tif (codec.compressed) {\n\t\t\tdata = (await codec.inflate.append(data)) || new Uint8Array(0);\n\t\t\tawait codec.inflate.flush();\n\t\t}\n\t\treturn { data, signature };\n\t}\n}\n\nclass Deflate {\n\n\tconstructor(codecConstructor, {\n\t\tencrypted,\n\t\tsigned,\n\t\tcompressed,\n\t\tlevel,\n\t\tzipCrypto,\n\t\tpassword,\n\t\tpasswordVerification,\n\t\tencryptionStrength\n\t}, { chunkSize }) {\n\t\tObject.assign(this, {\n\t\t\tencrypted,\n\t\t\tsigned,\n\t\t\tcompressed,\n\t\t\tdeflate: compressed && new codecConstructor({ level: level || 5, chunkSize }),\n\t\t\tcrc32: signed && new Crc32(),\n\t\t\tzipCrypto,\n\t\t\tencrypt: encrypted && zipCrypto ?\n\t\t\t\tnew ZipCryptoEncrypt(password, passwordVerification) :\n\t\t\t\tnew AESEncrypt(password, encryptionStrength)\n\t\t});\n\t}\n\n\tasync append(inputData) {\n\t\tconst codec = this;\n\t\tlet data = inputData;\n\t\tif (codec.compressed && inputData.length) {\n\t\t\tdata = await codec.deflate.append(inputData);\n\t\t}\n\t\tif (codec.encrypted && data.length) {\n\t\t\tdata = await codec.encrypt.append(data);\n\t\t}\n\t\tif ((!codec.encrypted || codec.zipCrypto) && codec.signed && inputData.length) {\n\t\t\tcodec.crc32.append(inputData);\n\t\t}\n\t\treturn data;\n\t}\n\n\tasync flush() {\n\t\tconst codec = this;\n\t\tlet signature;\n\t\tlet data = new Uint8Array(0);\n\t\tif (codec.compressed) {\n\t\t\tdata = (await codec.deflate.flush()) || new Uint8Array(0);\n\t\t}\n\t\tif (codec.encrypted) {\n\t\t\tdata = await codec.encrypt.append(data);\n\t\t\tconst result = codec.encrypt.flush();\n\t\t\tsignature = result.signature;\n\t\t\tconst newData = new Uint8Array(data.length + result.data.length);\n\t\t\tnewData.set(data, 0);\n\t\t\tnewData.set(result.data, data.length);\n\t\t\tdata = newData;\n\t\t}\n\t\tif ((!codec.encrypted || codec.zipCrypto) && codec.signed) {\n\t\t\tsignature = codec.crc32.get();\n\t\t}\n\t\treturn { data, signature };\n\t}\n}\n\nexport {\n\tInflate,\n\tDeflate,\n\tcreateCodec,\n\tCODEC_DEFLATE,\n\tCODEC_INFLATE,\n\tERR_INVALID_SIGNATURE,\n\tERR_INVALID_PASSWORD\n};\n\nfunction createCodec(codecConstructor, options, config) {\n\tif (options.codecType.startsWith(CODEC_DEFLATE)) {\n\t\treturn new Deflate(codecConstructor, options, config);\n\t} else if (options.codecType.startsWith(CODEC_INFLATE)) {\n\t\treturn new Inflate(codecConstructor, options, config);\n\t}\n}","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/* global Worker, URL */\n\nimport { createCodec } from \"./codec.js\";\n\nconst MESSAGE_INIT = \"init\";\nconst MESSAGE_APPEND = \"append\";\nconst MESSAGE_FLUSH = \"flush\";\nconst MESSAGE_EVENT_TYPE = \"message\";\n\nlet classicWorkersSupported = true;\n\nexport default (workerData, codecConstructor, options, config, onTaskFinished, webWorker, scripts) => {\n\tObject.assign(workerData, {\n\t\tbusy: true,\n\t\tcodecConstructor,\n\t\toptions: Object.assign({}, options),\n\t\tscripts,\n\t\tterminate() {\n\t\t\tif (workerData.worker && !workerData.busy) {\n\t\t\t\tworkerData.worker.terminate();\n\t\t\t\tworkerData.interface = null;\n\t\t\t}\n\t\t},\n\t\tonTaskFinished() {\n\t\t\tworkerData.busy = false;\n\t\t\tonTaskFinished(workerData);\n\t\t}\n\t});\n\treturn webWorker ? createWebWorkerInterface(workerData, config) : createWorkerInterface(workerData, config);\n};\n\nfunction createWorkerInterface(workerData, config) {\n\tconst interfaceCodec = createCodec(workerData.codecConstructor, workerData.options, config);\n\treturn {\n\t\tasync append(data) {\n\t\t\ttry {\n\t\t\t\treturn await interfaceCodec.append(data);\n\t\t\t} catch (error) {\n\t\t\t\tworkerData.onTaskFinished();\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t},\n\t\tasync flush() {\n\t\t\ttry {\n\t\t\t\treturn await interfaceCodec.flush();\n\t\t\t} finally {\n\t\t\t\tworkerData.onTaskFinished();\n\t\t\t}\n\t\t},\n\t\tabort() {\n\t\t\tworkerData.onTaskFinished();\n\t\t}\n\t};\n}\n\nfunction createWebWorkerInterface(workerData, config) {\n\tlet messageTask;\n\tconst workerOptions = { type: \"module\" };\n\tif (!workerData.interface) {\n\t\tif (!classicWorkersSupported) {\n\t\t\tworkerData.worker = getWorker(workerOptions, config.baseURL);\n\t\t} else {\n\t\t\ttry {\n\t\t\t\tworkerData.worker = getWorker({}, config.baseURL);\n\t\t\t} catch (error) {\n\t\t\t\tclassicWorkersSupported = false;\n\t\t\t\tworkerData.worker = getWorker(workerOptions, config.baseURL);\n\t\t\t}\n\t\t}\n\t\tworkerData.worker.addEventListener(MESSAGE_EVENT_TYPE, onMessage, false);\n\t\tworkerData.interface = {\n\t\t\tappend(data) {\n\t\t\t\treturn initAndSendMessage({ type: MESSAGE_APPEND, data });\n\t\t\t},\n\t\t\tflush() {\n\t\t\t\treturn initAndSendMessage({ type: MESSAGE_FLUSH });\n\t\t\t},\n\t\t\tabort() {\n\t\t\t\tworkerData.onTaskFinished();\n\t\t\t}\n\t\t};\n\t}\n\treturn workerData.interface;\n\n\tfunction getWorker(options, baseURL) {\n\t\tlet url, scriptUrl;\n\t\turl = workerData.scripts[0];\n\t\tif (typeof url == \"function\") {\n\t\t\turl = url();\n\t\t}\n\t\ttry {\n\t\t\tscriptUrl = new URL(url, baseURL);\n\t\t} catch (error) {\n\t\t\tscriptUrl = url;\n\t\t}\n\t\treturn new Worker(scriptUrl, options);\n\t}\n\n\tasync function initAndSendMessage(message) {\n\t\tif (!messageTask) {\n\t\t\tconst options = workerData.options;\n\t\t\tconst scripts = workerData.scripts.slice(1);\n\t\t\tawait sendMessage({ scripts, type: MESSAGE_INIT, options, config: { chunkSize: config.chunkSize } });\n\t\t}\n\t\treturn sendMessage(message);\n\t}\n\n\tfunction sendMessage(message) {\n\t\tconst worker = workerData.worker;\n\t\tconst result = new Promise((resolve, reject) => messageTask = { resolve, reject });\n\t\ttry {\n\t\t\tif (message.data) {\n\t\t\t\ttry {\n\t\t\t\t\tmessage.data = message.data.buffer;\n\t\t\t\t\tworker.postMessage(message, [message.data]);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tworker.postMessage(message);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tworker.postMessage(message);\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tmessageTask.reject(error);\n\t\t\tmessageTask = null;\n\t\t\tworkerData.onTaskFinished();\n\t\t}\n\t\treturn result;\n\t}\n\n\tfunction onMessage(event) {\n\t\tconst message = event.data;\n\t\tif (messageTask) {\n\t\t\tconst reponseError = message.error;\n\t\t\tconst type = message.type;\n\t\t\tif (reponseError) {\n\t\t\t\tconst error = new Error(reponseError.message);\n\t\t\t\terror.stack = reponseError.stack;\n\t\t\t\tmessageTask.reject(error);\n\t\t\t\tmessageTask = null;\n\t\t\t\tworkerData.onTaskFinished();\n\t\t\t} else if (type == MESSAGE_INIT || type == MESSAGE_FLUSH || type == MESSAGE_APPEND) {\n\t\t\t\tconst data = message.data;\n\t\t\t\tif (type == MESSAGE_FLUSH) {\n\t\t\t\t\tmessageTask.resolve({ data: new Uint8Array(data), signature: message.signature });\n\t\t\t\t\tmessageTask = null;\n\t\t\t\t\tworkerData.onTaskFinished();\n\t\t\t\t} else {\n\t\t\t\t\tmessageTask.resolve(data && new Uint8Array(data));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/* global setTimeout, clearTimeout */\n\nimport { CODEC_INFLATE, CODEC_DEFLATE, ERR_INVALID_SIGNATURE, ERR_INVALID_PASSWORD } from \"./codec.js\";\nimport getWorker from \"./codec-pool-worker.js\";\n\nlet pool = [];\nlet pendingRequests = [];\n\nexport {\n\tcreateCodec,\n\tterminateWorkers,\n\tCODEC_DEFLATE,\n\tCODEC_INFLATE,\n\tERR_INVALID_SIGNATURE,\n\tERR_INVALID_PASSWORD\n};\n\nfunction createCodec(codecConstructor, options, config) {\n\tconst streamCopy = !options.compressed && !options.signed && !options.encrypted;\n\tconst webWorker = !streamCopy && (options.useWebWorkers || (options.useWebWorkers === undefined && config.useWebWorkers));\n\tconst scripts = webWorker && config.workerScripts ? config.workerScripts[options.codecType] : [];\n\tif (pool.length < config.maxWorkers) {\n\t\tconst workerData = {};\n\t\tpool.push(workerData);\n\t\treturn getWorker(workerData, codecConstructor, options, config, onTaskFinished, webWorker, scripts);\n\t} else {\n\t\tconst workerData = pool.find(workerData => !workerData.busy);\n\t\tif (workerData) {\n\t\t\tclearTerminateTimeout(workerData);\n\t\t\treturn getWorker(workerData, codecConstructor, options, config, onTaskFinished, webWorker, scripts);\n\t\t} else {\n\t\t\treturn new Promise(resolve => pendingRequests.push({ resolve, codecConstructor, options, webWorker, scripts }));\n\t\t}\n\t}\n\n\tfunction onTaskFinished(workerData) {\n\t\tif (pendingRequests.length) {\n\t\t\tconst [{ resolve, codecConstructor, options, webWorker, scripts }] = pendingRequests.splice(0, 1);\n\t\t\tresolve(getWorker(workerData, codecConstructor, options, config, onTaskFinished, webWorker, scripts));\n\t\t} else if (workerData.worker) {\n\t\t\tclearTerminateTimeout(workerData);\n\t\t\tif (Number.isFinite(config.terminateWorkerTimeout) && config.terminateWorkerTimeout >= 0) {\n\t\t\t\tworkerData.terminateTimeout = setTimeout(() => {\n\t\t\t\t\tpool = pool.filter(data => data != workerData);\n\t\t\t\t\tworkerData.terminate();\n\t\t\t\t}, config.terminateWorkerTimeout);\n\t\t\t}\n\t\t} else {\n\t\t\tpool = pool.filter(data => data != workerData);\n\t\t}\n\t}\n}\n\nfunction clearTerminateTimeout(workerData) {\n\tif (workerData.terminateTimeout) {\n\t\tclearTimeout(workerData.terminateTimeout);\n\t\tworkerData.terminateTimeout = null;\n\t}\n}\n\nfunction terminateWorkers() {\n\tpool.forEach(workerData => {\n\t\tclearTerminateTimeout(workerData);\n\t\tworkerData.terminate();\n\t});\n}","var t=t=>{if(\"function\"==typeof URL.createObjectURL){const e=()=>URL.createObjectURL(new Blob(['const{Array:t,Object:e,Math:n,Error:r,Uint8Array:i,Uint16Array:s,Uint32Array:o,Int32Array:f,DataView:c,TextEncoder:l,crypto:u,postMessage:a}=globalThis,w=[];for(let t=0;256>t;t++){let e=t;for(let t=0;8>t;t++)1&e?e=e>>>1^3988292384:e>>>=1;w[t]=e}class h{constructor(t){this.t=t||-1}append(t){let e=0|this.t;for(let n=0,r=0|t.length;r>n;n++)e=e>>>8^w[255&(e^t[n])];this.t=e}get(){return~this.t}}const d={concat(t,e){if(0===t.length||0===e.length)return t.concat(e);const n=t[t.length-1],r=d.i(n);return 32===r?t.concat(e):d.o(e,r,0|n,t.slice(0,t.length-1))},l(t){const e=t.length;if(0===e)return 0;const n=t[e-1];return 32*(e-1)+d.i(n)},u(t,e){if(32*t.length<e)return t;const r=(t=t.slice(0,n.ceil(e/32))).length;return e&=31,r>0&&e&&(t[r-1]=d.h(e,t[r-1]&2147483648>>e-1,1)),t},h:(t,e,n)=>32===t?e:(n?0|e:e<<32-t)+1099511627776*t,i:t=>n.round(t/1099511627776)||32,o(t,e,n,r){for(void 0===r&&(r=[]);e>=32;e-=32)r.push(n),n=0;if(0===e)return r.concat(t);for(let i=0;i<t.length;i++)r.push(n|t[i]>>>e),n=t[i]<<32-e;const i=t.length?t[t.length-1]:0,s=d.i(i);return r.push(d.h(e+s&31,e+s>32?n:r.pop(),1)),r}},p={p:{k(t){const e=d.l(t)/8,n=new i(e);let r;for(let i=0;e>i;i++)0==(3&i)&&(r=t[i/4]),n[i]=r>>>24,r<<=8;return n},g(t){const e=[];let n,r=0;for(n=0;n<t.length;n++)r=r<<8|t[n],3==(3&n)&&(e.push(r),r=0);return 3&n&&e.push(d.h(8*(3&n),r)),e}}},b={v:function(t){t?(this.m=t.m.slice(0),this.S=t.S.slice(0),this._=t._):this.reset()}};b.v.prototype={blockSize:512,reset:function(){const t=this;return t.m=this.I.slice(0),t.S=[],t._=0,t},update:function(t){const e=this;\"string\"==typeof t&&(t=p.C.g(t));const n=e.S=d.concat(e.S,t),i=e._,s=e._=i+d.l(t);if(s>9007199254740991)throw new r(\"Cannot hash more than 2^53 - 1 bits\");const f=new o(n);let c=0;for(let t=e.blockSize+i-(e.blockSize+i&e.blockSize-1);s>=t;t+=e.blockSize)e.A(f.subarray(16*c,16*(c+1))),c+=1;return n.splice(0,16*c),e},V:function(){const t=this;let e=t.S;const r=t.m;e=d.concat(e,[d.h(1,1)]);for(let t=e.length+2;15&t;t++)e.push(0);for(e.push(n.floor(t._/4294967296)),e.push(0|t._);e.length;)t.A(e.splice(0,16));return t.reset(),r},I:[1732584193,4023233417,2562383102,271733878,3285377520],B:[1518500249,1859775393,2400959708,3395469782],D:(t,e,n,r)=>t>19?t>39?t>59?t>79?void 0:e^n^r:e&n|e&r|n&r:e^n^r:e&n|~e&r,U:(t,e)=>e<<t|e>>>32-t,A:function(e){const r=this,i=r.m,s=t(80);for(let t=0;16>t;t++)s[t]=e[t];let o=i[0],f=i[1],c=i[2],l=i[3],u=i[4];for(let t=0;79>=t;t++){16>t||(s[t]=r.U(1,s[t-3]^s[t-8]^s[t-14]^s[t-16]));const e=r.U(5,o)+r.D(t,f,c,l)+u+s[t]+r.B[n.floor(t/20)]|0;u=l,l=c,c=r.U(30,f),f=o,o=e}i[0]=i[0]+o|0,i[1]=i[1]+f|0,i[2]=i[2]+c|0,i[3]=i[3]+l|0,i[4]=i[4]+u|0}};const y={name:\"PBKDF2\"},k=e.assign({hash:{name:\"HMAC\"}},y),g=e.assign({iterations:1e3,hash:{name:\"SHA-1\"}},y),v=[\"deriveBits\"],m=[8,12,16],z=[16,24,32],S=[0,0,0,0],_=p.p,I=class{constructor(t){const e=this;e.M=[[[],[],[],[],[]],[[],[],[],[],[]]],e.M[0][0][0]||e.P();const n=e.M[0][4],i=e.M[1],s=t.length;let o,f,c,l=1;if(4!==s&&6!==s&&8!==s)throw new r(\"invalid aes key size\");for(e.B=[f=t.slice(0),c=[]],o=s;4*s+28>o;o++){let t=f[o-1];(o%s==0||8===s&&o%s==4)&&(t=n[t>>>24]<<24^n[t>>16&255]<<16^n[t>>8&255]<<8^n[255&t],o%s==0&&(t=t<<8^t>>>24^l<<24,l=l<<1^283*(l>>7))),f[o]=f[o-s]^t}for(let t=0;o;t++,o--){const e=f[3&t?o:o-4];c[t]=4>=o||4>t?e:i[0][n[e>>>24]]^i[1][n[e>>16&255]]^i[2][n[e>>8&255]]^i[3][n[255&e]]}}encrypt(t){return this.H(t,0)}decrypt(t){return this.H(t,1)}P(){const t=this.M[0],e=this.M[1],n=t[4],r=e[4],i=[],s=[];let o,f,c,l;for(let t=0;256>t;t++)s[(i[t]=t<<1^283*(t>>7))^t]=t;for(let u=o=0;!n[u];u^=f||1,o=s[o]||1){let s=o^o<<1^o<<2^o<<3^o<<4;s=s>>8^255&s^99,n[u]=s,r[s]=u,l=i[c=i[f=i[u]]];let a=16843009*l^65537*c^257*f^16843008*u,w=257*i[s]^16843008*s;for(let n=0;4>n;n++)t[n][u]=w=w<<24^w>>>8,e[n][s]=a=a<<24^a>>>8}for(let n=0;5>n;n++)t[n]=t[n].slice(0),e[n]=e[n].slice(0)}H(t,e){if(4!==t.length)throw new r(\"invalid aes block size\");const n=this.B[e],i=n.length/4-2,s=[0,0,0,0],o=this.M[e],f=o[0],c=o[1],l=o[2],u=o[3],a=o[4];let w,h,d,p=t[0]^n[0],b=t[e?3:1]^n[1],y=t[2]^n[2],k=t[e?1:3]^n[3],g=4;for(let t=0;i>t;t++)w=f[p>>>24]^c[b>>16&255]^l[y>>8&255]^u[255&k]^n[g],h=f[b>>>24]^c[y>>16&255]^l[k>>8&255]^u[255&p]^n[g+1],d=f[y>>>24]^c[k>>16&255]^l[p>>8&255]^u[255&b]^n[g+2],k=f[k>>>24]^c[p>>16&255]^l[b>>8&255]^u[255&y]^n[g+3],g+=4,p=w,b=h,y=d;for(let t=0;4>t;t++)s[e?3&-t:t]=a[p>>>24]<<24^a[b>>16&255]<<16^a[y>>8&255]<<8^a[255&k]^n[g++],w=p,p=b,b=y,y=k,k=w;return s}},C=class{constructor(t,e){this.L=t,this.R=e,this.T=e}reset(){this.T=this.R}update(t){return this.j(this.L,t,this.T)}F(t){if(255==(t>>24&255)){let e=t>>16&255,n=t>>8&255,r=255&t;255===e?(e=0,255===n?(n=0,255===r?r=0:++r):++n):++e,t=0,t+=e<<16,t+=n<<8,t+=r}else t+=1<<24;return t}K(t){0===(t[0]=this.F(t[0]))&&(t[1]=this.F(t[1]))}j(t,e,n){let r;if(!(r=e.length))return[];const i=d.l(e);for(let i=0;r>i;i+=4){this.K(n);const r=t.encrypt(n);e[i]^=r[0],e[i+1]^=r[1],e[i+2]^=r[2],e[i+3]^=r[3]}return d.u(e,i)}},A=class{constructor(t){const e=this,n=e.O=b.v,r=[[],[]],i=n.prototype.blockSize/32;e.W=[new n,new n],t.length>i&&(t=n.hash(t));for(let e=0;i>e;e++)r[0][e]=909522486^t[e],r[1][e]=1549556828^t[e];e.W[0].update(r[0]),e.W[1].update(r[1]),e.q=new n(e.W[0])}reset(){const t=this;t.q=new t.O(t.W[0]),t.G=!1}update(t){this.G=!0,this.q.update(t)}digest(){const t=this,e=t.q.V(),n=new t.O(t.W[1]).update(e).V();return t.reset(),n}};class V{constructor(t,n,r){e.assign(this,{password:t,signed:n,J:r-1,N:new i(0)})}async append(e){const n=this;if(n.password){const i=M(e,0,m[n.J]+2);await(async(t,e,n)=>{await D(t,n,M(e,0,m[t.J]));const i=M(e,m[t.J]),s=t.keys.passwordVerification;if(s[0]!=i[0]||s[1]!=i[1])throw new r(\"Invalid pasword\")})(n,i,n.password),n.password=null,n.X=new C(new I(n.keys.key),t.from(S)),n.Y=new A(n.keys.Z),e=M(e,m[n.J]+2)}return B(n,e,new i(e.length-10-(e.length-10)%16),0,10,!0)}flush(){const t=this,e=t.N,n=M(e,0,e.length-10),r=M(e,e.length-10);let s=new i(0);if(n.length){const e=_.g(n);t.Y.update(e);const r=t.X.update(e);s=_.k(r)}let o=!0;if(t.signed){const e=M(_.k(t.Y.digest()),0,10);for(let t=0;10>t;t++)e[t]!=r[t]&&(o=!1)}return{valid:o,data:s}}}class E{constructor(t,n){e.assign(this,{password:t,J:n-1,N:new i(0)})}async append(e){const n=this;let r=new i(0);n.password&&(r=await(async(t,e)=>{const n=u.getRandomValues(new i(m[t.J]));return await D(t,e,n),U(n,t.keys.passwordVerification)})(n,n.password),n.password=null,n.X=new C(new I(n.keys.key),t.from(S)),n.Y=new A(n.keys.Z));const s=new i(r.length+e.length-e.length%16);return s.set(r,0),B(n,e,s,r.length,0)}flush(){const t=this;let e=new i(0);if(t.N.length){const n=t.X.update(_.g(t.N));t.Y.update(n),e=_.k(n)}const n=M(_.k(t.Y.digest()),0,10);return{data:U(e,n),signature:n}}}function B(t,e,n,r,s,o){const f=e.length-s;let c;for(t.N.length&&(e=U(t.N,e),n=((t,e)=>{if(e&&e>t.length){const n=t;(t=new i(e)).set(n,0)}return t})(n,f-f%16)),c=0;f-16>=c;c+=16){const i=_.g(M(e,c,c+16));o&&t.Y.update(i);const s=t.X.update(i);o||t.Y.update(s),n.set(_.k(s),c+r)}return t.N=M(e,c),n}async function D(t,n,r){const s=(t=>{if(void 0===l){const e=new i((t=unescape(encodeURIComponent(t))).length);for(let n=0;n<e.length;n++)e[n]=t.charCodeAt(n);return e}return(new l).encode(t)})(n),o=await u.subtle.importKey(\"raw\",s,k,!1,v),f=await u.subtle.deriveBits(e.assign({salt:r},g),o,8*(2*z[t.J]+2)),c=new i(f);t.keys={key:_.g(M(c,0,z[t.J])),Z:_.g(M(c,z[t.J],2*z[t.J])),passwordVerification:M(c,2*z[t.J])}}function U(t,e){let n=t;return t.length+e.length&&(n=new i(t.length+e.length),n.set(t,0),n.set(e,t.length)),n}function M(t,e,n){return t.subarray(e,n)}class P{constructor(t,n){e.assign(this,{password:t,passwordVerification:n}),T(this,t)}append(t){const e=this;if(e.password){const n=L(e,t.subarray(0,12));if(e.password=null,n[11]!=e.passwordVerification)throw new r(\"Invalid pasword\");t=t.subarray(12)}return L(e,t)}flush(){return{valid:!0,data:new i(0)}}}class H{constructor(t,n){e.assign(this,{password:t,passwordVerification:n}),T(this,t)}append(t){const e=this;let n,r;if(e.password){e.password=null;const s=u.getRandomValues(new i(12));s[11]=e.passwordVerification,n=new i(t.length+s.length),n.set(R(e,s),0),r=12}else n=new i(t.length),r=0;return n.set(R(e,t),r),n}flush(){return{data:new i(0)}}}function L(t,e){const n=new i(e.length);for(let r=0;r<e.length;r++)n[r]=x(t)^e[r],j(t,n[r]);return n}function R(t,e){const n=new i(e.length);for(let r=0;r<e.length;r++)n[r]=x(t)^e[r],j(t,e[r]);return n}function T(t,e){t.keys=[305419896,591751049,878082192],t.$=new h(t.keys[0]),t.tt=new h(t.keys[2]);for(let n=0;n<e.length;n++)j(t,e.charCodeAt(n))}function j(t,e){t.$.append([e]),t.keys[0]=~t.$.get(),t.keys[1]=K(t.keys[1]+F(t.keys[0])),t.keys[1]=K(n.imul(t.keys[1],134775813)+1),t.tt.append([t.keys[1]>>>24]),t.keys[2]=~t.tt.get()}function x(t){const e=2|t.keys[2];return F(n.imul(e,1^e)>>>8)}function F(t){return 255&t}function K(t){return 4294967295&t}class O{constructor(t,{signature:n,password:r,signed:i,compressed:s,zipCrypto:o,passwordVerification:f,encryptionStrength:c},{et:l}){const u=!!r;e.assign(this,{signature:n,encrypted:u,signed:i,compressed:s,nt:s&&new t({et:l}),rt:i&&new h,zipCrypto:o,decrypt:u&&o?new P(r,f):new V(r,i,c)})}async append(t){const e=this;return e.encrypted&&t.length&&(t=await e.decrypt.append(t)),e.compressed&&t.length&&(t=await e.nt.append(t)),(!e.encrypted||e.zipCrypto)&&e.signed&&t.length&&e.rt.append(t),t}async flush(){const t=this;let e,n=new i(0);if(t.encrypted){const e=t.decrypt.flush();if(!e.valid)throw new r(\"Invalid signature\");n=e.data}if((!t.encrypted||t.zipCrypto)&&t.signed){const n=new c(new i(4).buffer);if(e=t.rt.get(),n.setUint32(0,e),t.signature!=n.getUint32(0,!1))throw new r(\"Invalid signature\")}return t.compressed&&(n=await t.nt.append(n)||new i(0),await t.nt.flush()),{data:n,signature:e}}}class W{constructor(t,{encrypted:n,signed:r,compressed:i,level:s,zipCrypto:o,password:f,passwordVerification:c,encryptionStrength:l},{et:u}){e.assign(this,{encrypted:n,signed:r,compressed:i,it:i&&new t({level:s||5,et:u}),rt:r&&new h,zipCrypto:o,encrypt:n&&o?new H(f,c):new E(f,l)})}async append(t){const e=this;let n=t;return e.compressed&&t.length&&(n=await e.it.append(t)),e.encrypted&&n.length&&(n=await e.encrypt.append(n)),(!e.encrypted||e.zipCrypto)&&e.signed&&t.length&&e.rt.append(t),n}async flush(){const t=this;let e,n=new i(0);if(t.compressed&&(n=await t.it.flush()||new i(0)),t.encrypted){n=await t.encrypt.append(n);const r=t.encrypt.flush();e=r.signature;const s=new i(n.length+r.data.length);s.set(n,0),s.set(r.data,n.length),n=s}return t.encrypted&&!t.zipCrypto||!t.signed||(e=t.rt.get()),{data:n,signature:e}}}const q={init(t){t.scripts&&t.scripts.length&&importScripts.apply(void 0,t.scripts);const e=t.options;let n;self.initCodec&&self.initCodec(),e.codecType.startsWith(\"deflate\")?n=self.Deflate:e.codecType.startsWith(\"inflate\")&&(n=self.Inflate),G=((t,e,n)=>e.codecType.startsWith(\"deflate\")?new W(t,e,n):e.codecType.startsWith(\"inflate\")?new O(t,e,n):void 0)(n,e,t.config)},append:async t=>({data:await G.append(t.data)}),flush:()=>G.flush()};let G;function J(e){return N(e.map((([e,n])=>new t(e).fill(n,0,e))))}function N(e){return e.reduce(((e,n)=>e.concat(t.isArray(n)?N(n):n)),[])}addEventListener(\"message\",(async t=>{const e=t.data,n=e.type,r=q[n];if(r)try{e.data&&(e.data=new i(e.data));const t=await r(e)||{};if(t.type=n,t.data)try{t.data=t.data.buffer,a(t,[t.data])}catch(e){a(t)}else a(t)}catch(t){a({type:n,error:{message:t.message,stack:t.stack}})}}));const Q=[0,1,2,3].concat(...J([[2,4],[2,5],[4,6],[4,7],[8,8],[8,9],[16,10],[16,11],[32,12],[32,13],[64,14],[64,15],[2,0],[1,16],[1,17],[2,18],[2,19],[4,20],[4,21],[8,22],[8,23],[16,24],[16,25],[32,26],[32,27],[64,28],[64,29]]));function X(){const t=this;function e(t,e){let n=0;do{n|=1&t,t>>>=1,n<<=1}while(--e>0);return n>>>1}t.st=r=>{const i=t.ot,s=t.ct.ft,o=t.ct.lt;let f,c,l,u=-1;for(r.ut=0,r.at=573,f=0;o>f;f++)0!==i[2*f]?(r.wt[++r.ut]=u=f,r.ht[f]=0):i[2*f+1]=0;for(;2>r.ut;)l=r.wt[++r.ut]=2>u?++u:0,i[2*l]=1,r.ht[l]=0,r.dt--,s&&(r.bt-=s[2*l+1]);for(t.yt=u,f=n.floor(r.ut/2);f>=1;f--)r.kt(i,f);l=o;do{f=r.wt[1],r.wt[1]=r.wt[r.ut--],r.kt(i,1),c=r.wt[1],r.wt[--r.at]=f,r.wt[--r.at]=c,i[2*l]=i[2*f]+i[2*c],r.ht[l]=n.max(r.ht[f],r.ht[c])+1,i[2*f+1]=i[2*c+1]=l,r.wt[1]=l++,r.kt(i,1)}while(r.ut>=2);r.wt[--r.at]=r.wt[1],(e=>{const n=t.ot,r=t.ct.ft,i=t.ct.gt,s=t.ct.vt,o=t.ct.zt;let f,c,l,u,a,w,h=0;for(u=0;15>=u;u++)e.St[u]=0;for(n[2*e.wt[e.at]+1]=0,f=e.at+1;573>f;f++)c=e.wt[f],u=n[2*n[2*c+1]+1]+1,u>o&&(u=o,h++),n[2*c+1]=u,c>t.yt||(e.St[u]++,a=0,s>c||(a=i[c-s]),w=n[2*c],e.dt+=w*(u+a),r&&(e.bt+=w*(r[2*c+1]+a)));if(0!==h){do{for(u=o-1;0===e.St[u];)u--;e.St[u]--,e.St[u+1]+=2,e.St[o]--,h-=2}while(h>0);for(u=o;0!==u;u--)for(c=e.St[u];0!==c;)l=e.wt[--f],l>t.yt||(n[2*l+1]!=u&&(e.dt+=(u-n[2*l+1])*n[2*l],n[2*l+1]=u),c--)}})(r),((t,n,r)=>{const i=[];let s,o,f,c=0;for(s=1;15>=s;s++)i[s]=c=c+r[s-1]<<1;for(o=0;n>=o;o++)f=t[2*o+1],0!==f&&(t[2*o]=e(i[f]++,f))})(i,t.yt,r.St)}}function Y(t,e,n,r,i){const s=this;s.ft=t,s.gt=e,s.vt=n,s.lt=r,s.zt=i}X._t=[0,1,2,3,4,5,6,7].concat(...J([[2,8],[2,9],[2,10],[2,11],[4,12],[4,13],[4,14],[4,15],[8,16],[8,17],[8,18],[8,19],[16,20],[16,21],[16,22],[16,23],[32,24],[32,25],[32,26],[31,27],[1,28]])),X.It=[0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224,0],X.Ct=[0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576],X.At=t=>256>t?Q[t]:Q[256+(t>>>7)],X.Vt=[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],X.Et=[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],X.Bt=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],X.Dt=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];const Z=J([[144,8],[112,9],[24,7],[8,8]]);Y.Ut=N([12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254,1,129,65,193,33,161,97,225,17,145,81,209,49,177,113,241,9,137,73,201,41,169,105,233,25,153,89,217,57,185,121,249,5,133,69,197,37,165,101,229,21,149,85,213,53,181,117,245,13,141,77,205,45,173,109,237,29,157,93,221,61,189,125,253,19,275,147,403,83,339,211,467,51,307,179,435,115,371,243,499,11,267,139,395,75,331,203,459,43,299,171,427,107,363,235,491,27,283,155,411,91,347,219,475,59,315,187,443,123,379,251,507,7,263,135,391,71,327,199,455,39,295,167,423,103,359,231,487,23,279,151,407,87,343,215,471,55,311,183,439,119,375,247,503,15,271,143,399,79,335,207,463,47,303,175,431,111,367,239,495,31,287,159,415,95,351,223,479,63,319,191,447,127,383,255,511,0,64,32,96,16,80,48,112,8,72,40,104,24,88,56,120,4,68,36,100,20,84,52,116,3,131,67,195,35,163,99,227].map(((t,e)=>[t,Z[e]])));const $=J([[30,5]]);function tt(t,e,n,r,i){const s=this;s.Mt=t,s.Pt=e,s.Ht=n,s.Lt=r,s.Rt=i}Y.Tt=N([0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23].map(((t,e)=>[t,$[e]]))),Y.jt=new Y(Y.Ut,X.Vt,257,286,15),Y.xt=new Y(Y.Tt,X.Et,0,30,15),Y.Ft=new Y(null,X.Bt,0,19,7);const et=[new tt(0,0,0,0,0),new tt(4,4,8,4,1),new tt(4,5,16,8,1),new tt(4,6,32,32,1),new tt(4,4,16,16,2),new tt(8,16,32,32,2),new tt(8,16,128,128,2),new tt(8,32,128,256,2),new tt(32,128,258,1024,2),new tt(32,258,258,4096,2)],nt=[\"need dictionary\",\"stream end\",\"\",\"\",\"stream error\",\"data error\",\"\",\"buffer error\",\"\",\"\"];function rt(t,e,n,r){const i=t[2*e],s=t[2*n];return s>i||i==s&&r[e]<=r[n]}function it(){const t=this;let e,r,o,f,c,l,u,a,w,h,d,p,b,y,k,g,v,m,z,S,_,I,C,A,V,E,B,D,U,M,P,H,L;const R=new X,T=new X,j=new X;let x,F,K,O,W,q;function G(){let e;for(e=0;286>e;e++)P[2*e]=0;for(e=0;30>e;e++)H[2*e]=0;for(e=0;19>e;e++)L[2*e]=0;P[512]=1,t.dt=t.bt=0,F=K=0}function J(t,e){let n,r=-1,i=t[1],s=0,o=7,f=4;0===i&&(o=138,f=3),t[2*(e+1)+1]=65535;for(let c=0;e>=c;c++)n=i,i=t[2*(c+1)+1],++s<o&&n==i||(f>s?L[2*n]+=s:0!==n?(n!=r&&L[2*n]++,L[32]++):s>10?L[36]++:L[34]++,s=0,r=n,0===i?(o=138,f=3):n==i?(o=6,f=3):(o=7,f=4))}function N(e){t.Kt[t.pending++]=e}function Q(t){N(255&t),N(t>>>8&255)}function Z(t,e){let n;const r=e;q>16-r?(n=t,W|=n<<q&65535,Q(W),W=n>>>16-q,q+=r-16):(W|=t<<q&65535,q+=r)}function $(t,e){const n=2*t;Z(65535&e[n],65535&e[n+1])}function tt(t,e){let n,r,i=-1,s=t[1],o=0,f=7,c=4;for(0===s&&(f=138,c=3),n=0;e>=n;n++)if(r=s,s=t[2*(n+1)+1],++o>=f||r!=s){if(c>o)do{$(r,L)}while(0!=--o);else 0!==r?(r!=i&&($(r,L),o--),$(16,L),Z(o-3,2)):o>10?($(18,L),Z(o-11,7)):($(17,L),Z(o-3,3));o=0,i=r,0===s?(f=138,c=3):r==s?(f=6,c=3):(f=7,c=4)}}function it(){16==q?(Q(W),W=0,q=0):8>q||(N(255&W),W>>>=8,q-=8)}function st(e,r){let i,s,o;if(t.Ot[F]=e,t.Wt[F]=255&r,F++,0===e?P[2*r]++:(K++,e--,P[2*(X._t[r]+256+1)]++,H[2*X.At(e)]++),0==(8191&F)&&B>2){for(i=8*F,s=_-v,o=0;30>o;o++)i+=H[2*o]*(5+X.Et[o]);if(i>>>=3,K<n.floor(F/2)&&i<n.floor(s/2))return!0}return F==x-1}function ot(e,n){let r,i,s,o,f=0;if(0!==F)do{r=t.Ot[f],i=t.Wt[f],f++,0===r?$(i,e):(s=X._t[i],$(s+256+1,e),o=X.Vt[s],0!==o&&(i-=X.It[s],Z(i,o)),r--,s=X.At(r),$(s,n),o=X.Et[s],0!==o&&(r-=X.Ct[s],Z(r,o)))}while(F>f);$(256,e),O=e[513]}function ft(){q>8?Q(W):q>0&&N(255&W),W=0,q=0}function ct(e,n,r){Z(0+(r?1:0),3),((e,n)=>{ft(),O=8,Q(n),Q(~n),t.Kt.set(a.subarray(e,e+n),t.pending),t.pending+=n})(e,n)}function lt(n){((e,n,r)=>{let i,s,o=0;B>0?(R.st(t),T.st(t),o=(()=>{let e;for(J(P,R.yt),J(H,T.yt),j.st(t),e=18;e>=3&&0===L[2*X.Dt[e]+1];e--);return t.dt+=14+3*(e+1),e})(),i=t.dt+3+7>>>3,s=t.bt+3+7>>>3,s>i||(i=s)):i=s=n+5,n+4>i||-1==e?s==i?(Z(2+(r?1:0),3),ot(Y.Ut,Y.Tt)):(Z(4+(r?1:0),3),((t,e,n)=>{let r;for(Z(t-257,5),Z(e-1,5),Z(n-4,4),r=0;n>r;r++)Z(L[2*X.Dt[r]+1],3);tt(P,t-1),tt(H,e-1)})(R.yt+1,T.yt+1,o+1),ot(P,H)):ct(e,n,r),G(),r&&ft()})(0>v?-1:v,_-v,n),v=_,e.qt()}function ut(){let t,n,r,i;do{if(i=w-C-_,0===i&&0===_&&0===C)i=c;else if(-1==i)i--;else if(_>=c+c-262){a.set(a.subarray(c,c+c),0),I-=c,_-=c,v-=c,t=b,r=t;do{n=65535&d[--r],d[r]=c>n?0:n-c}while(0!=--t);t=c,r=t;do{n=65535&h[--r],h[r]=c>n?0:n-c}while(0!=--t);i+=c}if(0===e.Gt)return;t=e.Jt(a,_+C,i),C+=t,3>C||(p=255&a[_],p=(p<<g^255&a[_+1])&k)}while(262>C&&0!==e.Gt)}function at(t){let e,n,r=V,i=_,s=A;const o=_>c-262?_-(c-262):0;let f=M;const l=u,w=_+258;let d=a[i+s-1],p=a[i+s];U>A||(r>>=2),f>C&&(f=C);do{if(e=t,a[e+s]==p&&a[e+s-1]==d&&a[e]==a[i]&&a[++e]==a[i+1]){i+=2,e++;do{}while(a[++i]==a[++e]&&a[++i]==a[++e]&&a[++i]==a[++e]&&a[++i]==a[++e]&&a[++i]==a[++e]&&a[++i]==a[++e]&&a[++i]==a[++e]&&a[++i]==a[++e]&&w>i);if(n=258-(w-i),i=w-258,n>s){if(I=t,s=n,n>=f)break;d=a[i+s-1],p=a[i+s]}}}while((t=65535&h[t&l])>o&&0!=--r);return s>C?C:s}t.ht=[],t.St=[],t.wt=[],P=[],H=[],L=[],t.kt=(e,n)=>{const r=t.wt,i=r[n];let s=n<<1;for(;s<=t.ut&&(s<t.ut&&rt(e,r[s+1],r[s],t.ht)&&s++,!rt(e,i,r[s],t.ht));)r[n]=r[s],n=s,s<<=1;r[n]=i},t.Nt=(e,z,I,F,K,J)=>(F||(F=8),K||(K=8),J||(J=0),e.Qt=null,-1==z&&(z=6),1>K||K>9||8!=F||9>I||I>15||0>z||z>9||0>J||J>2?-2:(e.Xt=t,l=I,c=1<<l,u=c-1,y=K+7,b=1<<y,k=b-1,g=n.floor((y+3-1)/3),a=new i(2*c),h=[],d=[],x=1<<K+6,t.Kt=new i(4*x),o=4*x,t.Ot=new s(x),t.Wt=new i(x),B=z,D=J,(e=>(e.Yt=e.Zt=0,e.Qt=null,t.pending=0,t.$t=0,r=113,f=0,R.ot=P,R.ct=Y.jt,T.ot=H,T.ct=Y.xt,j.ot=L,j.ct=Y.Ft,W=0,q=0,O=8,G(),(()=>{w=2*c,d[b-1]=0;for(let t=0;b-1>t;t++)d[t]=0;E=et[B].Pt,U=et[B].Mt,M=et[B].Ht,V=et[B].Lt,_=0,v=0,C=0,m=A=2,S=0,p=0})(),0))(e))),t.te=()=>42!=r&&113!=r&&666!=r?-2:(t.Wt=null,t.Ot=null,t.Kt=null,d=null,h=null,a=null,t.Xt=null,113==r?-3:0),t.ee=(t,e,n)=>{let r=0;return-1==e&&(e=6),0>e||e>9||0>n||n>2?-2:(et[B].Rt!=et[e].Rt&&0!==t.Yt&&(r=t.it(1)),B!=e&&(B=e,E=et[B].Pt,U=et[B].Mt,M=et[B].Ht,V=et[B].Lt),D=n,r)},t.ne=(t,e,n)=>{let i,s=n,o=0;if(!e||42!=r)return-2;if(3>s)return 0;for(s>c-262&&(s=c-262,o=n-s),a.set(e.subarray(o,o+s),0),_=s,v=s,p=255&a[0],p=(p<<g^255&a[1])&k,i=0;s-3>=i;i++)p=(p<<g^255&a[i+2])&k,h[i&u]=d[p],d[p]=i;return 0},t.it=(n,i)=>{let s,w,y,V,U;if(i>4||0>i)return-2;if(!n.re||!n.ie&&0!==n.Gt||666==r&&4!=i)return n.Qt=nt[4],-2;if(0===n.se)return n.Qt=nt[7],-5;var M;if(e=n,V=f,f=i,42==r&&(w=8+(l-8<<4)<<8,y=(B-1&255)>>1,y>3&&(y=3),w|=y<<6,0!==_&&(w|=32),w+=31-w%31,r=113,N((M=w)>>8&255),N(255&M)),0!==t.pending){if(e.qt(),0===e.se)return f=-1,0}else if(0===e.Gt&&V>=i&&4!=i)return e.Qt=nt[7],-5;if(666==r&&0!==e.Gt)return n.Qt=nt[7],-5;if(0!==e.Gt||0!==C||0!=i&&666!=r){switch(U=-1,et[B].Rt){case 0:U=(t=>{let n,r=65535;for(r>o-5&&(r=o-5);;){if(1>=C){if(ut(),0===C&&0==t)return 0;if(0===C)break}if(_+=C,C=0,n=v+r,(0===_||_>=n)&&(C=_-n,_=n,lt(!1),0===e.se))return 0;if(_-v>=c-262&&(lt(!1),0===e.se))return 0}return lt(4==t),0===e.se?4==t?2:0:4==t?3:1})(i);break;case 1:U=(t=>{let n,r=0;for(;;){if(262>C){if(ut(),262>C&&0==t)return 0;if(0===C)break}if(3>C||(p=(p<<g^255&a[_+2])&k,r=65535&d[p],h[_&u]=d[p],d[p]=_),0===r||(_-r&65535)>c-262||2!=D&&(m=at(r)),3>m)n=st(0,255&a[_]),C--,_++;else if(n=st(_-I,m-3),C-=m,m>E||3>C)_+=m,m=0,p=255&a[_],p=(p<<g^255&a[_+1])&k;else{m--;do{_++,p=(p<<g^255&a[_+2])&k,r=65535&d[p],h[_&u]=d[p],d[p]=_}while(0!=--m);_++}if(n&&(lt(!1),0===e.se))return 0}return lt(4==t),0===e.se?4==t?2:0:4==t?3:1})(i);break;case 2:U=(t=>{let n,r,i=0;for(;;){if(262>C){if(ut(),262>C&&0==t)return 0;if(0===C)break}if(3>C||(p=(p<<g^255&a[_+2])&k,i=65535&d[p],h[_&u]=d[p],d[p]=_),A=m,z=I,m=2,0!==i&&E>A&&c-262>=(_-i&65535)&&(2!=D&&(m=at(i)),5>=m&&(1==D||3==m&&_-I>4096)&&(m=2)),3>A||m>A)if(0!==S){if(n=st(0,255&a[_-1]),n&<(!1),_++,C--,0===e.se)return 0}else S=1,_++,C--;else{r=_+C-3,n=st(_-1-z,A-3),C-=A-1,A-=2;do{++_>r||(p=(p<<g^255&a[_+2])&k,i=65535&d[p],h[_&u]=d[p],d[p]=_)}while(0!=--A);if(S=0,m=2,_++,n&&(lt(!1),0===e.se))return 0}}return 0!==S&&(n=st(0,255&a[_-1]),S=0),lt(4==t),0===e.se?4==t?2:0:4==t?3:1})(i)}if(2!=U&&3!=U||(r=666),0==U||2==U)return 0===e.se&&(f=-1),0;if(1==U){if(1==i)Z(2,3),$(256,Y.Ut),it(),9>1+O+10-q&&(Z(2,3),$(256,Y.Ut),it()),O=7;else if(ct(0,0,!1),3==i)for(s=0;b>s;s++)d[s]=0;if(e.qt(),0===e.se)return f=-1,0}}return 4!=i?0:1}}function st(){const t=this;t.oe=0,t.fe=0,t.Gt=0,t.Yt=0,t.se=0,t.Zt=0}function ot(t){const e=new st,s=(o=t&&t.et?t.et:65536)+5*(n.floor(o/16383)+1);var o;const f=new i(s);let c=t?t.level:-1;void 0===c&&(c=-1),e.Nt(c),e.re=f,this.append=(t,n)=>{let o,c,l=0,u=0,a=0;const w=[];if(t.length){e.oe=0,e.ie=t,e.Gt=t.length;do{if(e.fe=0,e.se=s,o=e.it(0),0!=o)throw new r(\"deflating: \"+e.Qt);e.fe&&(e.fe==s?w.push(new i(f)):w.push(f.slice(0,e.fe))),a+=e.fe,n&&e.oe>0&&e.oe!=l&&(n(e.oe),l=e.oe)}while(e.Gt>0||0===e.se);return w.length>1?(c=new i(a),w.forEach((t=>{c.set(t,u),u+=t.length}))):c=w[0]||new i(0),c}},this.flush=()=>{let t,n,o=0,c=0;const l=[];do{if(e.fe=0,e.se=s,t=e.it(4),1!=t&&0!=t)throw new r(\"deflating: \"+e.Qt);s-e.se>0&&l.push(f.slice(0,e.fe)),c+=e.fe}while(e.Gt>0||0===e.se);return e.te(),n=new i(c),l.forEach((t=>{n.set(t,o),o+=t.length})),n}}st.prototype={Nt:function(t,e){const n=this;return n.Xt=new it,e||(e=15),n.Xt.Nt(n,t,e)},it:function(t){const e=this;return e.Xt?e.Xt.it(e,t):-2},te:function(){const t=this;if(!t.Xt)return-2;const e=t.Xt.te();return t.Xt=null,e},ee:function(t,e){const n=this;return n.Xt?n.Xt.ee(n,t,e):-2},ne:function(t,e){const n=this;return n.Xt?n.Xt.ne(n,t,e):-2},Jt:function(t,e,n){const r=this;let i=r.Gt;return i>n&&(i=n),0===i?0:(r.Gt-=i,t.set(r.ie.subarray(r.oe,r.oe+i),e),r.oe+=i,r.Yt+=i,i)},qt:function(){const t=this;let e=t.Xt.pending;e>t.se&&(e=t.se),0!==e&&(t.re.set(t.Xt.Kt.subarray(t.Xt.$t,t.Xt.$t+e),t.fe),t.fe+=e,t.Xt.$t+=e,t.Zt+=e,t.se-=e,t.Xt.pending-=e,0===t.Xt.pending&&(t.Xt.$t=0))}};const ft=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],ct=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],lt=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],ut=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],at=[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,112,112],wt=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],ht=[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];function dt(){let t,e,n,r,i,s;function o(t,e,o,f,c,l,u,a,w,h,d){let p,b,y,k,g,v,m,z,S,_,I,C,A,V,E;_=0,g=o;do{n[t[e+_]]++,_++,g--}while(0!==g);if(n[0]==o)return u[0]=-1,a[0]=0,0;for(z=a[0],v=1;15>=v&&0===n[v];v++);for(m=v,v>z&&(z=v),g=15;0!==g&&0===n[g];g--);for(y=g,z>g&&(z=g),a[0]=z,V=1<<v;g>v;v++,V<<=1)if(0>(V-=n[v]))return-3;if(0>(V-=n[g]))return-3;for(n[g]+=V,s[1]=v=0,_=1,A=2;0!=--g;)s[A]=v+=n[_],A++,_++;g=0,_=0;do{0!==(v=t[e+_])&&(d[s[v]++]=g),_++}while(++g<o);for(o=s[y],s[0]=g=0,_=0,k=-1,C=-z,i[0]=0,I=0,E=0;y>=m;m++)for(p=n[m];0!=p--;){for(;m>C+z;){if(k++,C+=z,E=y-C,E=E>z?z:E,(b=1<<(v=m-C))>p+1&&(b-=p+1,A=m,E>v))for(;++v<E&&(b<<=1)>n[++A];)b-=n[A];if(E=1<<v,h[0]+E>1440)return-3;i[k]=I=h[0],h[0]+=E,0!==k?(s[k]=g,r[0]=v,r[1]=z,v=g>>>C-z,r[2]=I-i[k-1]-v,w.set(r,3*(i[k-1]+v))):u[0]=I}for(r[1]=m-C,o>_?d[_]<f?(r[0]=256>d[_]?0:96,r[2]=d[_++]):(r[0]=l[d[_]-f]+16+64,r[2]=c[d[_++]-f]):r[0]=192,b=1<<m-C,v=g>>>C;E>v;v+=b)w.set(r,3*(I+v));for(v=1<<m-1;0!=(g&v);v>>>=1)g^=v;for(g^=v,S=(1<<C)-1;(g&S)!=s[k];)k--,C-=z,S=(1<<C)-1}return 0!==V&&1!=y?-5:0}function c(o){let c;for(t||(t=[],e=[],n=new f(16),r=[],i=new f(15),s=new f(16)),e.length<o&&(e=[]),c=0;o>c;c++)e[c]=0;for(c=0;16>c;c++)n[c]=0;for(c=0;3>c;c++)r[c]=0;i.set(n.subarray(0,15),0),s.set(n.subarray(0,16),0)}this.ce=(n,r,i,s,f)=>{let l;return c(19),t[0]=0,l=o(n,0,19,19,null,null,i,r,s,t,e),-3==l?f.Qt=\"oversubscribed dynamic bit lengths tree\":-5!=l&&0!==r[0]||(f.Qt=\"incomplete dynamic bit lengths tree\",l=-3),l},this.le=(n,r,i,s,f,l,u,a,w)=>{let h;return c(288),t[0]=0,h=o(i,0,n,257,ut,at,l,s,a,t,e),0!=h||0===s[0]?(-3==h?w.Qt=\"oversubscribed literal/length tree\":-4!=h&&(w.Qt=\"incomplete literal/length tree\",h=-3),h):(c(288),h=o(i,n,r,0,wt,ht,u,f,a,t,e),0!=h||0===f[0]&&n>257?(-3==h?w.Qt=\"oversubscribed distance tree\":-5==h?(w.Qt=\"incomplete distance tree\",h=-3):-4!=h&&(w.Qt=\"empty distance tree with lengths\",h=-3),h):0)}}function pt(){const t=this;let e,n,r,i,s=0,o=0,f=0,c=0,l=0,u=0,a=0,w=0,h=0,d=0;function p(t,e,n,r,i,s,o,f){let c,l,u,a,w,h,d,p,b,y,k,g,v,m,z,S;d=f.oe,p=f.Gt,w=o.ue,h=o.ae,b=o.write,y=b<o.read?o.read-b-1:o.end-b,k=ft[t],g=ft[e];do{for(;20>h;)p--,w|=(255&f.we(d++))<<h,h+=8;if(c=w&k,l=n,u=r,S=3*(u+c),0!==(a=l[S]))for(;;){if(w>>=l[S+1],h-=l[S+1],0!=(16&a)){for(a&=15,v=l[S+2]+(w&ft[a]),w>>=a,h-=a;15>h;)p--,w|=(255&f.we(d++))<<h,h+=8;for(c=w&g,l=i,u=s,S=3*(u+c),a=l[S];;){if(w>>=l[S+1],h-=l[S+1],0!=(16&a)){for(a&=15;a>h;)p--,w|=(255&f.we(d++))<<h,h+=8;if(m=l[S+2]+(w&ft[a]),w>>=a,h-=a,y-=v,m>b){z=b-m;do{z+=o.end}while(0>z);if(a=o.end-z,v>a){if(v-=a,b-z>0&&a>b-z)do{o.he[b++]=o.he[z++]}while(0!=--a);else o.he.set(o.he.subarray(z,z+a),b),b+=a,z+=a,a=0;z=0}}else z=b-m,b-z>0&&2>b-z?(o.he[b++]=o.he[z++],o.he[b++]=o.he[z++],v-=2):(o.he.set(o.he.subarray(z,z+2),b),b+=2,z+=2,v-=2);if(b-z>0&&v>b-z)do{o.he[b++]=o.he[z++]}while(0!=--v);else o.he.set(o.he.subarray(z,z+v),b),b+=v,z+=v,v=0;break}if(0!=(64&a))return f.Qt=\"invalid distance code\",v=f.Gt-p,v=v>h>>3?h>>3:v,p+=v,d-=v,h-=v<<3,o.ue=w,o.ae=h,f.Gt=p,f.Yt+=d-f.oe,f.oe=d,o.write=b,-3;c+=l[S+2],c+=w&ft[a],S=3*(u+c),a=l[S]}break}if(0!=(64&a))return 0!=(32&a)?(v=f.Gt-p,v=v>h>>3?h>>3:v,p+=v,d-=v,h-=v<<3,o.ue=w,o.ae=h,f.Gt=p,f.Yt+=d-f.oe,f.oe=d,o.write=b,1):(f.Qt=\"invalid literal/length code\",v=f.Gt-p,v=v>h>>3?h>>3:v,p+=v,d-=v,h-=v<<3,o.ue=w,o.ae=h,f.Gt=p,f.Yt+=d-f.oe,f.oe=d,o.write=b,-3);if(c+=l[S+2],c+=w&ft[a],S=3*(u+c),0===(a=l[S])){w>>=l[S+1],h-=l[S+1],o.he[b++]=l[S+2],y--;break}}else w>>=l[S+1],h-=l[S+1],o.he[b++]=l[S+2],y--}while(y>=258&&p>=10);return v=f.Gt-p,v=v>h>>3?h>>3:v,p+=v,d-=v,h-=v<<3,o.ue=w,o.ae=h,f.Gt=p,f.Yt+=d-f.oe,f.oe=d,o.write=b,0}t.init=(t,s,o,f,c,l)=>{e=0,a=t,w=s,r=o,h=f,i=c,d=l,n=null},t.de=(t,b,y)=>{let k,g,v,m,z,S,_,I=0,C=0,A=0;for(A=b.oe,m=b.Gt,I=t.ue,C=t.ae,z=t.write,S=z<t.read?t.read-z-1:t.end-z;;)switch(e){case 0:if(S>=258&&m>=10&&(t.ue=I,t.ae=C,b.Gt=m,b.Yt+=A-b.oe,b.oe=A,t.write=z,y=p(a,w,r,h,i,d,t,b),A=b.oe,m=b.Gt,I=t.ue,C=t.ae,z=t.write,S=z<t.read?t.read-z-1:t.end-z,0!=y)){e=1==y?7:9;break}f=a,n=r,o=h,e=1;case 1:for(k=f;k>C;){if(0===m)return t.ue=I,t.ae=C,b.Gt=m,b.Yt+=A-b.oe,b.oe=A,t.write=z,t.pe(b,y);y=0,m--,I|=(255&b.we(A++))<<C,C+=8}if(g=3*(o+(I&ft[k])),I>>>=n[g+1],C-=n[g+1],v=n[g],0===v){c=n[g+2],e=6;break}if(0!=(16&v)){l=15&v,s=n[g+2],e=2;break}if(0==(64&v)){f=v,o=g/3+n[g+2];break}if(0!=(32&v)){e=7;break}return e=9,b.Qt=\"invalid literal/length code\",y=-3,t.ue=I,t.ae=C,b.Gt=m,b.Yt+=A-b.oe,b.oe=A,t.write=z,t.pe(b,y);case 2:for(k=l;k>C;){if(0===m)return t.ue=I,t.ae=C,b.Gt=m,b.Yt+=A-b.oe,b.oe=A,t.write=z,t.pe(b,y);y=0,m--,I|=(255&b.we(A++))<<C,C+=8}s+=I&ft[k],I>>=k,C-=k,f=w,n=i,o=d,e=3;case 3:for(k=f;k>C;){if(0===m)return t.ue=I,t.ae=C,b.Gt=m,b.Yt+=A-b.oe,b.oe=A,t.write=z,t.pe(b,y);y=0,m--,I|=(255&b.we(A++))<<C,C+=8}if(g=3*(o+(I&ft[k])),I>>=n[g+1],C-=n[g+1],v=n[g],0!=(16&v)){l=15&v,u=n[g+2],e=4;break}if(0==(64&v)){f=v,o=g/3+n[g+2];break}return e=9,b.Qt=\"invalid distance code\",y=-3,t.ue=I,t.ae=C,b.Gt=m,b.Yt+=A-b.oe,b.oe=A,t.write=z,t.pe(b,y);case 4:for(k=l;k>C;){if(0===m)return t.ue=I,t.ae=C,b.Gt=m,b.Yt+=A-b.oe,b.oe=A,t.write=z,t.pe(b,y);y=0,m--,I|=(255&b.we(A++))<<C,C+=8}u+=I&ft[k],I>>=k,C-=k,e=5;case 5:for(_=z-u;0>_;)_+=t.end;for(;0!==s;){if(0===S&&(z==t.end&&0!==t.read&&(z=0,S=z<t.read?t.read-z-1:t.end-z),0===S&&(t.write=z,y=t.pe(b,y),z=t.write,S=z<t.read?t.read-z-1:t.end-z,z==t.end&&0!==t.read&&(z=0,S=z<t.read?t.read-z-1:t.end-z),0===S)))return t.ue=I,t.ae=C,b.Gt=m,b.Yt+=A-b.oe,b.oe=A,t.write=z,t.pe(b,y);t.he[z++]=t.he[_++],S--,_==t.end&&(_=0),s--}e=0;break;case 6:if(0===S&&(z==t.end&&0!==t.read&&(z=0,S=z<t.read?t.read-z-1:t.end-z),0===S&&(t.write=z,y=t.pe(b,y),z=t.write,S=z<t.read?t.read-z-1:t.end-z,z==t.end&&0!==t.read&&(z=0,S=z<t.read?t.read-z-1:t.end-z),0===S)))return t.ue=I,t.ae=C,b.Gt=m,b.Yt+=A-b.oe,b.oe=A,t.write=z,t.pe(b,y);y=0,t.he[z++]=c,S--,e=0;break;case 7:if(C>7&&(C-=8,m++,A--),t.write=z,y=t.pe(b,y),z=t.write,S=z<t.read?t.read-z-1:t.end-z,t.read!=t.write)return t.ue=I,t.ae=C,b.Gt=m,b.Yt+=A-b.oe,b.oe=A,t.write=z,t.pe(b,y);e=8;case 8:return y=1,t.ue=I,t.ae=C,b.Gt=m,b.Yt+=A-b.oe,b.oe=A,t.write=z,t.pe(b,y);case 9:return y=-3,t.ue=I,t.ae=C,b.Gt=m,b.Yt+=A-b.oe,b.oe=A,t.write=z,t.pe(b,y);default:return y=-2,t.ue=I,t.ae=C,b.Gt=m,b.Yt+=A-b.oe,b.oe=A,t.write=z,t.pe(b,y)}},t.be=()=>{}}dt.ye=(t,e,n,r)=>(t[0]=9,e[0]=5,n[0]=ct,r[0]=lt,0);const bt=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function yt(t,e){const n=this;let r,s=0,o=0,c=0,l=0;const u=[0],a=[0],w=new pt;let h=0,d=new f(4320);const p=new dt;n.ae=0,n.ue=0,n.he=new i(e),n.end=e,n.read=0,n.write=0,n.reset=(t,e)=>{e&&(e[0]=0),6==s&&w.be(t),s=0,n.ae=0,n.ue=0,n.read=n.write=0},n.reset(t,null),n.pe=(t,e)=>{let r,i,s;return i=t.fe,s=n.read,r=(s>n.write?n.end:n.write)-s,r>t.se&&(r=t.se),0!==r&&-5==e&&(e=0),t.se-=r,t.Zt+=r,t.re.set(n.he.subarray(s,s+r),i),i+=r,s+=r,s==n.end&&(s=0,n.write==n.end&&(n.write=0),r=n.write-s,r>t.se&&(r=t.se),0!==r&&-5==e&&(e=0),t.se-=r,t.Zt+=r,t.re.set(n.he.subarray(s,s+r),i),i+=r,s+=r),t.fe=i,n.read=s,e},n.de=(t,e)=>{let i,f,b,y,k,g,v,m;for(y=t.oe,k=t.Gt,f=n.ue,b=n.ae,g=n.write,v=g<n.read?n.read-g-1:n.end-g;;){let z,S,_,I,C,A,V,E;switch(s){case 0:for(;3>b;){if(0===k)return n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e);e=0,k--,f|=(255&t.we(y++))<<b,b+=8}switch(i=7&f,h=1&i,i>>>1){case 0:f>>>=3,b-=3,i=7&b,f>>>=i,b-=i,s=1;break;case 1:z=[],S=[],_=[[]],I=[[]],dt.ye(z,S,_,I),w.init(z[0],S[0],_[0],0,I[0],0),f>>>=3,b-=3,s=6;break;case 2:f>>>=3,b-=3,s=3;break;case 3:return f>>>=3,b-=3,s=9,t.Qt=\"invalid block type\",e=-3,n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e)}break;case 1:for(;32>b;){if(0===k)return n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e);e=0,k--,f|=(255&t.we(y++))<<b,b+=8}if((~f>>>16&65535)!=(65535&f))return s=9,t.Qt=\"invalid stored block lengths\",e=-3,n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e);o=65535&f,f=b=0,s=0!==o?2:0!==h?7:0;break;case 2:if(0===k)return n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e);if(0===v&&(g==n.end&&0!==n.read&&(g=0,v=g<n.read?n.read-g-1:n.end-g),0===v&&(n.write=g,e=n.pe(t,e),g=n.write,v=g<n.read?n.read-g-1:n.end-g,g==n.end&&0!==n.read&&(g=0,v=g<n.read?n.read-g-1:n.end-g),0===v)))return n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e);if(e=0,i=o,i>k&&(i=k),i>v&&(i=v),n.he.set(t.Jt(y,i),g),y+=i,k-=i,g+=i,v-=i,0!=(o-=i))break;s=0!==h?7:0;break;case 3:for(;14>b;){if(0===k)return n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e);e=0,k--,f|=(255&t.we(y++))<<b,b+=8}if(c=i=16383&f,(31&i)>29||(i>>5&31)>29)return s=9,t.Qt=\"too many length or distance symbols\",e=-3,n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e);if(i=258+(31&i)+(i>>5&31),!r||r.length<i)r=[];else for(m=0;i>m;m++)r[m]=0;f>>>=14,b-=14,l=0,s=4;case 4:for(;4+(c>>>10)>l;){for(;3>b;){if(0===k)return n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e);e=0,k--,f|=(255&t.we(y++))<<b,b+=8}r[bt[l++]]=7&f,f>>>=3,b-=3}for(;19>l;)r[bt[l++]]=0;if(u[0]=7,i=p.ce(r,u,a,d,t),0!=i)return-3==(e=i)&&(r=null,s=9),n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e);l=0,s=5;case 5:for(;i=c,258+(31&i)+(i>>5&31)>l;){let o,w;for(i=u[0];i>b;){if(0===k)return n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e);e=0,k--,f|=(255&t.we(y++))<<b,b+=8}if(i=d[3*(a[0]+(f&ft[i]))+1],w=d[3*(a[0]+(f&ft[i]))+2],16>w)f>>>=i,b-=i,r[l++]=w;else{for(m=18==w?7:w-14,o=18==w?11:3;i+m>b;){if(0===k)return n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e);e=0,k--,f|=(255&t.we(y++))<<b,b+=8}if(f>>>=i,b-=i,o+=f&ft[m],f>>>=m,b-=m,m=l,i=c,m+o>258+(31&i)+(i>>5&31)||16==w&&1>m)return r=null,s=9,t.Qt=\"invalid bit length repeat\",e=-3,n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e);w=16==w?r[m-1]:0;do{r[m++]=w}while(0!=--o);l=m}}if(a[0]=-1,C=[],A=[],V=[],E=[],C[0]=9,A[0]=6,i=c,i=p.le(257+(31&i),1+(i>>5&31),r,C,A,V,E,d,t),0!=i)return-3==i&&(r=null,s=9),e=i,n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e);w.init(C[0],A[0],d,V[0],d,E[0]),s=6;case 6:if(n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,1!=(e=w.de(n,t,e)))return n.pe(t,e);if(e=0,w.be(t),y=t.oe,k=t.Gt,f=n.ue,b=n.ae,g=n.write,v=g<n.read?n.read-g-1:n.end-g,0===h){s=0;break}s=7;case 7:if(n.write=g,e=n.pe(t,e),g=n.write,v=g<n.read?n.read-g-1:n.end-g,n.read!=n.write)return n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e);s=8;case 8:return e=1,n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e);case 9:return e=-3,n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e);default:return e=-2,n.ue=f,n.ae=b,t.Gt=k,t.Yt+=y-t.oe,t.oe=y,n.write=g,n.pe(t,e)}}},n.be=t=>{n.reset(t,null),n.he=null,d=null},n.ke=(t,e,r)=>{n.he.set(t.subarray(e,e+r),0),n.read=n.write=r},n.ge=()=>1==s?1:0}const kt=[0,0,255,255];function gt(){const t=this;function e(t){return t&&t.ve?(t.Yt=t.Zt=0,t.Qt=null,t.ve.mode=7,t.ve.me.reset(t,null),0):-2}t.mode=0,t.method=0,t.ze=[0],t.Se=0,t.marker=0,t._e=0,t.Ie=e=>(t.me&&t.me.be(e),t.me=null,0),t.Ce=(n,r)=>(n.Qt=null,t.me=null,8>r||r>15?(t.Ie(n),-2):(t._e=r,n.ve.me=new yt(n,1<<r),e(n),0)),t.nt=(t,e)=>{let n,r;if(!t||!t.ve||!t.ie)return-2;const i=t.ve;for(e=4==e?-5:0,n=-5;;)switch(i.mode){case 0:if(0===t.Gt)return n;if(n=e,t.Gt--,t.Yt++,8!=(15&(i.method=t.we(t.oe++)))){i.mode=13,t.Qt=\"unknown compression method\",i.marker=5;break}if(8+(i.method>>4)>i._e){i.mode=13,t.Qt=\"invalid win size\",i.marker=5;break}i.mode=1;case 1:if(0===t.Gt)return n;if(n=e,t.Gt--,t.Yt++,r=255&t.we(t.oe++),((i.method<<8)+r)%31!=0){i.mode=13,t.Qt=\"incorrect header check\",i.marker=5;break}if(0==(32&r)){i.mode=7;break}i.mode=2;case 2:if(0===t.Gt)return n;n=e,t.Gt--,t.Yt++,i.Se=(255&t.we(t.oe++))<<24&4278190080,i.mode=3;case 3:if(0===t.Gt)return n;n=e,t.Gt--,t.Yt++,i.Se+=(255&t.we(t.oe++))<<16&16711680,i.mode=4;case 4:if(0===t.Gt)return n;n=e,t.Gt--,t.Yt++,i.Se+=(255&t.we(t.oe++))<<8&65280,i.mode=5;case 5:return 0===t.Gt?n:(n=e,t.Gt--,t.Yt++,i.Se+=255&t.we(t.oe++),i.mode=6,2);case 6:return i.mode=13,t.Qt=\"need dictionary\",i.marker=0,-2;case 7:if(n=i.me.de(t,n),-3==n){i.mode=13,i.marker=0;break}if(0==n&&(n=e),1!=n)return n;n=e,i.me.reset(t,i.ze),i.mode=12;case 12:return 1;case 13:return-3;default:return-2}},t.Ae=(t,e,n)=>{let r=0,i=n;if(!t||!t.ve||6!=t.ve.mode)return-2;const s=t.ve;return i<1<<s._e||(i=(1<<s._e)-1,r=n-i),s.me.ke(e,r,i),s.mode=7,0},t.Ve=t=>{let n,r,i,s,o;if(!t||!t.ve)return-2;const f=t.ve;if(13!=f.mode&&(f.mode=13,f.marker=0),0===(n=t.Gt))return-5;for(r=t.oe,i=f.marker;0!==n&&4>i;)t.we(r)==kt[i]?i++:i=0!==t.we(r)?0:4-i,r++,n--;return t.Yt+=r-t.oe,t.oe=r,t.Gt=n,f.marker=i,4!=i?-3:(s=t.Yt,o=t.Zt,e(t),t.Yt=s,t.Zt=o,f.mode=7,0)},t.Ee=t=>t&&t.ve&&t.ve.me?t.ve.me.ge():-2}function vt(){}function mt(t){const e=new vt,s=t&&t.et?n.floor(2*t.et):131072,o=new i(s);let f=!1;e.Ce(),e.re=o,this.append=(t,n)=>{const c=[];let l,u,a=0,w=0,h=0;if(0!==t.length){e.oe=0,e.ie=t,e.Gt=t.length;do{if(e.fe=0,e.se=s,0!==e.Gt||f||(e.oe=0,f=!0),l=e.nt(0),f&&-5===l){if(0!==e.Gt)throw new r(\"inflating: bad input\")}else if(0!==l&&1!==l)throw new r(\"inflating: \"+e.Qt);if((f||1===l)&&e.Gt===t.length)throw new r(\"inflating: bad input\");e.fe&&(e.fe===s?c.push(new i(o)):c.push(o.slice(0,e.fe))),h+=e.fe,n&&e.oe>0&&e.oe!=a&&(n(e.oe),a=e.oe)}while(e.Gt>0||0===e.se);return c.length>1?(u=new i(h),c.forEach((t=>{u.set(t,w),w+=t.length}))):u=c[0]||new i(0),u}},this.flush=()=>{e.Ie()}}vt.prototype={Ce:function(t){const e=this;return e.ve=new gt,t||(t=15),e.ve.Ce(e,t)},nt:function(t){const e=this;return e.ve?e.ve.nt(e,t):-2},Ie:function(){const t=this;if(!t.ve)return-2;const e=t.ve.Ie(t);return t.ve=null,e},Ve:function(){const t=this;return t.ve?t.ve.Ve(t):-2},Ae:function(t,e){const n=this;return n.ve?n.ve.Ae(n,t,e):-2},we:function(t){return this.ie[t]},Jt:function(t,e){return this.ie.subarray(t,t+e)}},self.initCodec=()=>{self.Deflate=ot,self.Inflate=mt};\\n'],{type:\"text/javascript\"}));t({workerScripts:{inflate:[e],deflate:[e]}})}};export{t as default};\n","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/* global Blob, FileReader, atob, btoa, XMLHttpRequest, document, fetch */\n\nconst ERR_HTTP_STATUS = \"HTTP error \";\nconst ERR_HTTP_RANGE = \"HTTP Range not supported\";\n\nconst CONTENT_TYPE_TEXT_PLAIN = \"text/plain\";\nconst HTTP_HEADER_CONTENT_LENGTH = \"Content-Length\";\nconst HTTP_HEADER_CONTENT_RANGE = \"Content-Range\";\nconst HTTP_HEADER_ACCEPT_RANGES = \"Accept-Ranges\";\nconst HTTP_HEADER_RANGE = \"Range\";\nconst HTTP_METHOD_HEAD = \"HEAD\";\nconst HTTP_METHOD_GET = \"GET\";\nconst HTTP_RANGE_UNIT = \"bytes\";\n\nclass Stream {\n\n\tconstructor() {\n\t\tthis.size = 0;\n\t}\n\n\tinit() {\n\t\tthis.initialized = true;\n\t}\n}\n\nclass Reader extends Stream {\n}\n\nclass Writer extends Stream {\n\n\twriteUint8Array(array) {\n\t\tthis.size += array.length;\n\t}\n}\n\nclass TextReader extends Reader {\n\n\tconstructor(text) {\n\t\tsuper();\n\t\tthis.blobReader = new BlobReader(new Blob([text], { type: CONTENT_TYPE_TEXT_PLAIN }));\n\t}\n\n\tasync init() {\n\t\tsuper.init();\n\t\tthis.blobReader.init();\n\t\tthis.size = this.blobReader.size;\n\t}\n\n\tasync readUint8Array(offset, length) {\n\t\treturn this.blobReader.readUint8Array(offset, length);\n\t}\n}\n\nclass TextWriter extends Writer {\n\n\tconstructor(encoding) {\n\t\tsuper();\n\t\tthis.encoding = encoding;\n\t\tthis.blob = new Blob([], { type: CONTENT_TYPE_TEXT_PLAIN });\n\t}\n\n\tasync writeUint8Array(array) {\n\t\tsuper.writeUint8Array(array);\n\t\tthis.blob = new Blob([this.blob, array.buffer], { type: CONTENT_TYPE_TEXT_PLAIN });\n\t}\n\n\tgetData() {\n\t\tif (this.blob.text) {\n\t\t\treturn this.blob.text();\n\t\t} else {\n\t\t\tconst reader = new FileReader();\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\treader.onload = event => resolve(event.target.result);\n\t\t\t\treader.onerror = () => reject(reader.error);\n\t\t\t\treader.readAsText(this.blob, this.encoding);\n\t\t\t});\n\t\t}\n\t}\n}\n\nclass Data64URIReader extends Reader {\n\n\tconstructor(dataURI) {\n\t\tsuper();\n\t\tthis.dataURI = dataURI;\n\t\tlet dataEnd = dataURI.length;\n\t\twhile (dataURI.charAt(dataEnd - 1) == \"=\") {\n\t\t\tdataEnd--;\n\t\t}\n\t\tthis.dataStart = dataURI.indexOf(\",\") + 1;\n\t\tthis.size = Math.floor((dataEnd - this.dataStart) * 0.75);\n\t}\n\n\tasync readUint8Array(offset, length) {\n\t\tconst dataArray = new Uint8Array(length);\n\t\tconst start = Math.floor(offset / 3) * 4;\n\t\tconst bytes = atob(this.dataURI.substring(start + this.dataStart, Math.ceil((offset + length) / 3) * 4 + this.dataStart));\n\t\tconst delta = offset - Math.floor(start / 4) * 3;\n\t\tfor (let indexByte = delta; indexByte < delta + length; indexByte++) {\n\t\t\tdataArray[indexByte - delta] = bytes.charCodeAt(indexByte);\n\t\t}\n\t\treturn dataArray;\n\t}\n}\n\nclass Data64URIWriter extends Writer {\n\n\tconstructor(contentType) {\n\t\tsuper();\n\t\tthis.data = \"data:\" + (contentType || \"\") + \";base64,\";\n\t\tthis.pending = [];\n\t}\n\n\tasync writeUint8Array(array) {\n\t\tsuper.writeUint8Array(array);\n\t\tlet indexArray = 0;\n\t\tlet dataString = this.pending;\n\t\tconst delta = this.pending.length;\n\t\tthis.pending = \"\";\n\t\tfor (indexArray = 0; indexArray < (Math.floor((delta + array.length) / 3) * 3) - delta; indexArray++) {\n\t\t\tdataString += String.fromCharCode(array[indexArray]);\n\t\t}\n\t\tfor (; indexArray < array.length; indexArray++) {\n\t\t\tthis.pending += String.fromCharCode(array[indexArray]);\n\t\t}\n\t\tif (dataString.length > 2) {\n\t\t\tthis.data += btoa(dataString);\n\t\t} else {\n\t\t\tthis.pending = dataString;\n\t\t}\n\t}\n\n\tgetData() {\n\t\treturn this.data + btoa(this.pending);\n\t}\n}\n\nclass BlobReader extends Reader {\n\n\tconstructor(blob) {\n\t\tsuper();\n\t\tthis.blob = blob;\n\t\tthis.size = blob.size;\n\t}\n\n\tasync readUint8Array(offset, length) {\n\t\tif (this.blob.arrayBuffer) {\n\t\t\treturn new Uint8Array(await this.blob.slice(offset, offset + length).arrayBuffer());\n\t\t} else {\n\t\t\tconst reader = new FileReader();\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\treader.onload = event => resolve(new Uint8Array(event.target.result));\n\t\t\t\treader.onerror = () => reject(reader.error);\n\t\t\t\treader.readAsArrayBuffer(this.blob.slice(offset, offset + length));\n\t\t\t});\n\t\t}\n\t}\n}\n\nclass BlobWriter extends Writer {\n\n\tconstructor(contentType) {\n\t\tsuper();\n\t\tthis.contentType = contentType;\n\t\tthis.arrayBuffers = [];\n\t}\n\n\tasync writeUint8Array(array) {\n\t\tsuper.writeUint8Array(array);\n\t\tthis.arrayBuffers.push(array.buffer);\n\t}\n\n\tgetData() {\n\t\tif (!this.blob) {\n\t\t\tthis.blob = new Blob(this.arrayBuffers, { type: this.contentType });\n\t\t}\n\t\treturn this.blob;\n\t}\n}\n\nclass WritableStreamWriter extends Writer {\n\tconstructor(writableStream) {\n\t\tsuper();\n\t\tthis.writableStream = writableStream;\n\t\tthis.writer = writableStream.getWriter();\n\t}\n\n\tasync writeUint8Array(array) {\n\t\tawait this.writer.ready;\n\t\treturn this.writer.write(array);\n\t}\n\n\tasync getData() {\n\t\tawait this.writer.ready;\n\t\tawait this.writer.close();\n\t\treturn this.writableStream;\n\t}\n}\n\nclass FetchReader extends Reader {\n\n\tconstructor(url, options) {\n\t\tsuper();\n\t\tthis.url = url;\n\t\tthis.preventHeadRequest = options.preventHeadRequest;\n\t\tthis.useRangeHeader = options.useRangeHeader;\n\t\tthis.forceRangeRequests = options.forceRangeRequests;\n\t\tthis.options = Object.assign({}, options);\n\t\tdelete this.options.preventHeadRequest;\n\t\tdelete this.options.useRangeHeader;\n\t\tdelete this.options.forceRangeRequests;\n\t\tdelete this.options.useXHR;\n\t}\n\n\tasync init() {\n\t\tsuper.init();\n\t\tawait initHttpReader(this, sendFetchRequest, getFetchRequestData);\n\t}\n\n\tasync readUint8Array(index, length) {\n\t\treturn readUint8ArrayHttpReader(this, index, length, sendFetchRequest, getFetchRequestData);\n\t}\n}\n\nclass XHRReader extends Reader {\n\n\tconstructor(url, options) {\n\t\tsuper();\n\t\tthis.url = url;\n\t\tthis.preventHeadRequest = options.preventHeadRequest;\n\t\tthis.useRangeHeader = options.useRangeHeader;\n\t\tthis.forceRangeRequests = options.forceRangeRequests;\n\t\tthis.options = options;\n\t}\n\n\tasync init() {\n\t\tsuper.init();\n\t\tawait initHttpReader(this, sendXMLHttpRequest, getXMLHttpRequestData);\n\t}\n\n\tasync readUint8Array(index, length) {\n\t\treturn readUint8ArrayHttpReader(this, index, length, sendXMLHttpRequest, getXMLHttpRequestData);\n\t}\n}\n\nasync function initHttpReader(httpReader, sendRequest, getRequestData) {\n\tif (isHttpFamily(httpReader.url) && (httpReader.useRangeHeader || httpReader.forceRangeRequests)) {\n\t\tconst response = await sendRequest(HTTP_METHOD_GET, httpReader, getRangeHeaders(httpReader));\n\t\tif (!httpReader.forceRangeRequests && response.headers.get(HTTP_HEADER_ACCEPT_RANGES) != HTTP_RANGE_UNIT) {\n\t\t\tthrow new Error(ERR_HTTP_RANGE);\n\t\t} else {\n\t\t\tlet contentSize;\n\t\t\tconst contentRangeHeader = response.headers.get(HTTP_HEADER_CONTENT_RANGE);\n\t\t\tif (contentRangeHeader) {\n\t\t\t\tconst splitHeader = contentRangeHeader.trim().split(/\\s*\\/\\s*/);\n\t\t\t\tif (splitHeader.length) {\n\t\t\t\t\tconst headerValue = splitHeader[1];\n\t\t\t\t\tif (headerValue && headerValue != \"*\") {\n\t\t\t\t\t\tcontentSize = Number(headerValue);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (contentSize === undefined) {\n\t\t\t\tawait getContentLength(httpReader, sendRequest, getRequestData);\n\t\t\t} else {\n\t\t\t\thttpReader.size = contentSize;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tawait getContentLength(httpReader, sendRequest, getRequestData);\n\t}\n}\n\nasync function readUint8ArrayHttpReader(httpReader, index, length, sendRequest, getRequestData) {\n\tif (httpReader.useRangeHeader || httpReader.forceRangeRequests) {\n\t\tconst response = await sendRequest(HTTP_METHOD_GET, httpReader, getRangeHeaders(httpReader, index, length));\n\t\tif (response.status != 206) {\n\t\t\tthrow new Error(ERR_HTTP_RANGE);\n\t\t}\n\t\treturn new Uint8Array(await response.arrayBuffer());\n\t} else {\n\t\tif (!httpReader.data) {\n\t\t\tawait getRequestData(httpReader, httpReader.options);\n\t\t}\n\t\treturn new Uint8Array(httpReader.data.subarray(index, index + length));\n\t}\n}\n\nfunction getRangeHeaders(httpReader, index = 0, length = 1) {\n\treturn Object.assign({}, getHeaders(httpReader), { [HTTP_HEADER_RANGE]: HTTP_RANGE_UNIT + \"=\" + index + \"-\" + (index + length - 1) });\n}\n\nfunction getHeaders(httpReader) {\n\tlet headers = httpReader.options.headers;\n\tif (headers) {\n\t\tif (Symbol.iterator in headers) {\n\t\t\treturn Object.fromEntries(headers);\n\t\t} else {\n\t\t\treturn headers;\n\t\t}\n\t}\n}\n\nasync function getFetchRequestData(httpReader) {\n\tawait getRequestData(httpReader, sendFetchRequest);\n}\n\nasync function getXMLHttpRequestData(httpReader) {\n\tawait getRequestData(httpReader, sendXMLHttpRequest);\n}\n\nasync function getRequestData(httpReader, sendRequest) {\n\tconst response = await sendRequest(HTTP_METHOD_GET, httpReader, getHeaders(httpReader));\n\thttpReader.data = new Uint8Array(await response.arrayBuffer());\n\tif (!httpReader.size) {\n\t\thttpReader.size = httpReader.data.length;\n\t}\n}\n\nasync function getContentLength(httpReader, sendRequest, getRequestData) {\n\tif (httpReader.preventHeadRequest) {\n\t\tawait getRequestData(httpReader, httpReader.options);\n\t} else {\n\t\tconst response = await sendRequest(HTTP_METHOD_HEAD, httpReader, getHeaders(httpReader));\n\t\tconst contentLength = response.headers.get(HTTP_HEADER_CONTENT_LENGTH);\n\t\tif (contentLength) {\n\t\t\thttpReader.size = Number(contentLength);\n\t\t} else {\n\t\t\tawait getRequestData(httpReader, httpReader.options);\n\t\t}\n\t}\n}\n\nasync function sendFetchRequest(method, { options, url }, headers) {\n\tconst response = await fetch(url, Object.assign({}, options, { method, headers }));\n\tif (response.status < 400) {\n\t\treturn response;\n\t} else {\n\t\tthrow new Error(ERR_HTTP_STATUS + (response.statusText || response.status));\n\t}\n}\n\nfunction sendXMLHttpRequest(method, { url }, headers) {\n\treturn new Promise((resolve, reject) => {\n\t\tconst request = new XMLHttpRequest();\n\t\trequest.addEventListener(\"load\", () => {\n\t\t\tif (request.status < 400) {\n\t\t\t\tconst headers = [];\n\t\t\t\trequest.getAllResponseHeaders().trim().split(/[\\r\\n]+/).forEach(header => {\n\t\t\t\t\tconst splitHeader = header.trim().split(/\\s*:\\s*/);\n\t\t\t\t\tsplitHeader[0] = splitHeader[0].trim().replace(/^[a-z]|-[a-z]/g, value => value.toUpperCase());\n\t\t\t\t\theaders.push(splitHeader);\n\t\t\t\t});\n\t\t\t\tresolve({\n\t\t\t\t\tstatus: request.status,\n\t\t\t\t\tarrayBuffer: () => request.response,\n\t\t\t\t\theaders: new Map(headers)\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treject(new Error(ERR_HTTP_STATUS + (request.statusText || request.status)));\n\t\t\t}\n\t\t}, false);\n\t\trequest.addEventListener(\"error\", event => reject(event.detail.error), false);\n\t\trequest.open(method, url);\n\t\tif (headers) {\n\t\t\tfor (const entry of Object.entries(headers)) {\n\t\t\t\trequest.setRequestHeader(entry[0], entry[1]);\n\t\t\t}\n\t\t}\n\t\trequest.responseType = \"arraybuffer\";\n\t\trequest.send();\n\t});\n}\n\nclass HttpReader extends Reader {\n\n\tconstructor(url, options = {}) {\n\t\tsuper();\n\t\tthis.url = url;\n\t\tif (options.useXHR) {\n\t\t\tthis.reader = new XHRReader(url, options);\n\t\t} else {\n\t\t\tthis.reader = new FetchReader(url, options);\n\t\t}\n\t}\n\n\tset size(value) {\n\t\t// ignored\n\t}\n\n\tget size() {\n\t\treturn this.reader.size;\n\t}\n\n\tasync init() {\n\t\tsuper.init();\n\t\tawait this.reader.init();\n\t}\n\n\tasync readUint8Array(index, length) {\n\t\treturn this.reader.readUint8Array(index, length);\n\t}\n}\n\nclass HttpRangeReader extends HttpReader {\n\n\tconstructor(url, options = {}) {\n\t\toptions.useRangeHeader = true;\n\t\tsuper(url, options);\n\t}\n}\n\n\nclass Uint8ArrayReader extends Reader {\n\n\tconstructor(array) {\n\t\tsuper();\n\t\tthis.array = array;\n\t\tthis.size = array.length;\n\t}\n\n\tasync readUint8Array(index, length) {\n\t\treturn this.array.slice(index, index + length);\n\t}\n}\n\nclass Uint8ArrayWriter extends Writer {\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.array = new Uint8Array(0);\n\t}\n\n\tasync writeUint8Array(array) {\n\t\tsuper.writeUint8Array(array);\n\t\tconst previousArray = this.array;\n\t\tthis.array = new Uint8Array(previousArray.length + array.length);\n\t\tthis.array.set(previousArray);\n\t\tthis.array.set(array, previousArray.length);\n\t}\n\n\tgetData() {\n\t\treturn this.array;\n\t}\n}\n\nfunction isHttpFamily(url) {\n\tif (typeof document != \"undefined\") {\n\t\tconst anchor = document.createElement(\"a\");\n\t\tanchor.href = url;\n\t\treturn anchor.protocol == \"http:\" || anchor.protocol == \"https:\";\n\t} else {\n\t\treturn /^https?:\\/\\//i.test(url);\n\t}\n}\n\nexport {\n\tReader,\n\tWriter,\n\tTextReader,\n\tTextWriter,\n\tData64URIReader,\n\tData64URIWriter,\n\tBlobReader,\n\tBlobWriter,\n\tUint8ArrayReader,\n\tUint8ArrayWriter,\n\tHttpReader,\n\tHttpRangeReader,\n\tWritableStreamWriter,\n\tERR_HTTP_RANGE\n};\n","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nconst MAX_32_BITS = 0xffffffff;\nconst MAX_16_BITS = 0xffff;\nconst COMPRESSION_METHOD_DEFLATE = 0x08;\nconst COMPRESSION_METHOD_STORE = 0x00;\nconst COMPRESSION_METHOD_AES = 0x63;\n\nconst LOCAL_FILE_HEADER_SIGNATURE = 0x04034b50;\nconst DATA_DESCRIPTOR_RECORD_SIGNATURE = 0x08074b50;\nconst CENTRAL_FILE_HEADER_SIGNATURE = 0x02014b50;\nconst END_OF_CENTRAL_DIR_SIGNATURE = 0x06054b50;\nconst ZIP64_END_OF_CENTRAL_DIR_SIGNATURE = 0x06064b50;\nconst ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIGNATURE = 0x07064b50;\nconst END_OF_CENTRAL_DIR_LENGTH = 22;\nconst ZIP64_END_OF_CENTRAL_DIR_LOCATOR_LENGTH = 20;\nconst ZIP64_END_OF_CENTRAL_DIR_LENGTH = 56;\nconst ZIP64_END_OF_CENTRAL_DIR_TOTAL_LENGTH = END_OF_CENTRAL_DIR_LENGTH + ZIP64_END_OF_CENTRAL_DIR_LOCATOR_LENGTH + ZIP64_END_OF_CENTRAL_DIR_LENGTH;\n\nconst ZIP64_TOTAL_NUMBER_OF_DISKS = 1;\n\nconst EXTRAFIELD_TYPE_ZIP64 = 0x0001;\nconst EXTRAFIELD_TYPE_AES = 0x9901;\nconst EXTRAFIELD_TYPE_NTFS = 0x000a;\nconst EXTRAFIELD_TYPE_NTFS_TAG1 = 0x0001;\nconst EXTRAFIELD_TYPE_EXTENDED_TIMESTAMP = 0x5455;\nconst EXTRAFIELD_TYPE_UNICODE_PATH = 0x7075;\nconst EXTRAFIELD_TYPE_UNICODE_COMMENT = 0x6375;\n\nconst BITFLAG_ENCRYPTED = 0x01;\nconst BITFLAG_LEVEL = 0x06;\nconst BITFLAG_DATA_DESCRIPTOR = 0x0008;\nconst BITFLAG_LANG_ENCODING_FLAG = 0x0800;\nconst FILE_ATTR_MSDOS_DIR_MASK = 0x10;\n\nconst VERSION_DEFLATE = 0x14;\nconst VERSION_ZIP64 = 0x2D;\nconst VERSION_AES = 0x33;\n\nconst DIRECTORY_SIGNATURE = \"/\";\n\nconst MAX_DATE = new Date(2107, 11, 31);\nconst MIN_DATE = new Date(1980, 0, 1);\n\nexport {\n\tMAX_32_BITS,\n\tMAX_16_BITS,\n\tCOMPRESSION_METHOD_DEFLATE,\n\tCOMPRESSION_METHOD_STORE,\n\tCOMPRESSION_METHOD_AES,\n\tLOCAL_FILE_HEADER_SIGNATURE,\n\tDATA_DESCRIPTOR_RECORD_SIGNATURE,\n\tCENTRAL_FILE_HEADER_SIGNATURE,\n\tEND_OF_CENTRAL_DIR_SIGNATURE,\n\tZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIGNATURE,\n\tZIP64_END_OF_CENTRAL_DIR_SIGNATURE,\n\tEXTRAFIELD_TYPE_ZIP64,\n\tEXTRAFIELD_TYPE_AES,\n\tEXTRAFIELD_TYPE_NTFS,\n\tEXTRAFIELD_TYPE_NTFS_TAG1,\n\tEXTRAFIELD_TYPE_EXTENDED_TIMESTAMP,\n\tEXTRAFIELD_TYPE_UNICODE_PATH,\n\tEXTRAFIELD_TYPE_UNICODE_COMMENT,\n\tEND_OF_CENTRAL_DIR_LENGTH,\n\tZIP64_END_OF_CENTRAL_DIR_LOCATOR_LENGTH,\n\tZIP64_END_OF_CENTRAL_DIR_LENGTH,\n\tZIP64_END_OF_CENTRAL_DIR_TOTAL_LENGTH,\n\tZIP64_TOTAL_NUMBER_OF_DISKS,\n\tBITFLAG_ENCRYPTED,\n\tBITFLAG_LEVEL,\n\tBITFLAG_DATA_DESCRIPTOR,\n\tBITFLAG_LANG_ENCODING_FLAG,\n\tFILE_ATTR_MSDOS_DIR_MASK,\n\tVERSION_DEFLATE,\n\tVERSION_ZIP64,\n\tVERSION_AES,\n\tDIRECTORY_SIGNATURE,\n\tMIN_DATE,\n\tMAX_DATE\n};","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nconst CP437 = \"\\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \".split(\"\");\n\nexport default stringValue => {\n\tlet result = \"\";\n\tfor (let indexCharacter = 0; indexCharacter < stringValue.length; indexCharacter++) {\n\t\tresult += CP437[stringValue[indexCharacter]];\n\t}\n\treturn result;\n};","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/* global TextDecoder, FileReader, Blob */\n\nimport decodeCP437 from \"./cp437-decode.js\";\n\nexport default decodeText;\n\nasync function decodeText(value, encoding) {\n\tif (encoding && encoding.trim().toLowerCase() == \"cp437\") {\n\t\treturn decodeCP437(value);\n\t} else if (typeof TextDecoder == \"undefined\") {\n\t\tconst fileReader = new FileReader();\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tfileReader.onload = event => resolve(event.target.result);\n\t\t\tfileReader.onerror = () => reject(fileReader.error);\n\t\t\tfileReader.readAsText(new Blob([value]));\n\t\t});\n\t} else {\n\t\treturn new TextDecoder(encoding).decode(value);\n\t}\n}","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nconst MINIMUM_CHUNK_SIZE = 64;\nconst ERR_ABORT = \"Abort error\";\n\nexport {\n\tERR_ABORT,\n\tprocessData\n};\n\nasync function processData(codec, reader, writer, offset, inputLength, config, options) {\n\tconst chunkSize = Math.max(config.chunkSize, MINIMUM_CHUNK_SIZE);\n\treturn processChunk();\n\n\tasync function processChunk(chunkOffset = 0, outputLength = 0) {\n\t\tconst signal = options.signal;\n\t\tif (chunkOffset < inputLength) {\n\t\t\ttestAborted(signal, codec);\n\t\t\tconst inputData = await reader.readUint8Array(chunkOffset + offset, Math.min(chunkSize, inputLength - chunkOffset));\n\t\t\tconst chunkLength = inputData.length;\n\t\t\ttestAborted(signal, codec);\n\t\t\tconst data = await codec.append(inputData);\n\t\t\ttestAborted(signal, codec);\n\t\t\toutputLength += await writeData(writer, data);\n\t\t\tif (options.onprogress) {\n\t\t\t\ttry {\n\t\t\t\t\toptions.onprogress(chunkOffset + chunkLength, inputLength);\n\t\t\t\t} catch (error) {\n\t\t\t\t\t// ignored\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn processChunk(chunkOffset + chunkSize, outputLength);\n\t\t} else {\n\t\t\tconst result = await codec.flush();\n\t\t\toutputLength += await writeData(writer, result.data);\n\t\t\treturn { signature: result.signature, length: outputLength };\n\t\t}\n\t}\n}\n\nfunction testAborted(signal, codec) {\n\tif (signal && signal.aborted) {\n\t\tcodec.abort();\n\t\tthrow new Error(ERR_ABORT);\n\t}\n}\n\nasync function writeData(writer, data) {\n\tif (data.length) {\n\t\tawait writer.writeUint8Array(data);\n\t}\n\treturn data.length;\n}","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nconst PROPERTY_NAMES = [\n\t\"filename\", \"rawFilename\", \"directory\", \"encrypted\", \"compressedSize\", \"uncompressedSize\",\n\t\"lastModDate\", \"rawLastModDate\", \"comment\", \"rawComment\", \"signature\", \"extraField\",\n\t\"rawExtraField\", \"bitFlag\", \"extraFieldZip64\", \"extraFieldUnicodePath\", \"extraFieldUnicodeComment\",\n\t\"extraFieldAES\", \"filenameUTF8\", \"commentUTF8\", \"offset\", \"zip64\", \"compressionMethod\",\n\t\"extraFieldNTFS\", \"lastAccessDate\", \"creationDate\", \"extraFieldExtendedTimestamp\",\n\t\"version\", \"versionMadeBy\", \"msDosCompatible\", \"internalFileAttribute\", \"externalFileAttribute\"];\n\nexport default class Entry {\n\n\tconstructor(data) {\n\t\tPROPERTY_NAMES.forEach(name => this[name] = data[name]);\n\t}\n\n}","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/* global BigInt */\n\nimport {\n\tMAX_32_BITS,\n\tMAX_16_BITS,\n\tCOMPRESSION_METHOD_DEFLATE,\n\tCOMPRESSION_METHOD_STORE,\n\tCOMPRESSION_METHOD_AES,\n\tLOCAL_FILE_HEADER_SIGNATURE,\n\tCENTRAL_FILE_HEADER_SIGNATURE,\n\tEND_OF_CENTRAL_DIR_SIGNATURE,\n\tZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIGNATURE,\n\tZIP64_END_OF_CENTRAL_DIR_SIGNATURE,\n\tEXTRAFIELD_TYPE_ZIP64,\n\tEXTRAFIELD_TYPE_UNICODE_PATH,\n\tEXTRAFIELD_TYPE_UNICODE_COMMENT,\n\tEXTRAFIELD_TYPE_AES,\n\tEXTRAFIELD_TYPE_NTFS,\n\tEXTRAFIELD_TYPE_NTFS_TAG1,\n\tEXTRAFIELD_TYPE_EXTENDED_TIMESTAMP,\n\tEND_OF_CENTRAL_DIR_LENGTH,\n\tZIP64_END_OF_CENTRAL_DIR_LOCATOR_LENGTH,\n\tZIP64_END_OF_CENTRAL_DIR_LENGTH,\n\tBITFLAG_ENCRYPTED,\n\tBITFLAG_LEVEL,\n\tBITFLAG_DATA_DESCRIPTOR,\n\tBITFLAG_LANG_ENCODING_FLAG,\n\tFILE_ATTR_MSDOS_DIR_MASK,\n\tDIRECTORY_SIGNATURE\n} from \"./constants.js\";\nimport { getConfiguration } from \"./configuration.js\";\nimport { createCodec, CODEC_INFLATE, ERR_INVALID_SIGNATURE, ERR_INVALID_PASSWORD } from \"./codecs/codec-pool.js\";\nimport decodeText from \"./util/decode-text.js\";\nimport Crc32 from \"./codecs/crc32.js\";\nimport { processData } from \"./engine.js\";\nimport Entry from \"./zip-entry.js\";\n\nconst ERR_BAD_FORMAT = \"File format is not recognized\";\nconst ERR_EOCDR_NOT_FOUND = \"End of central directory not found\";\nconst ERR_EOCDR_ZIP64_NOT_FOUND = \"End of Zip64 central directory not found\";\nconst ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND = \"End of Zip64 central directory locator not found\";\nconst ERR_CENTRAL_DIRECTORY_NOT_FOUND = \"Central directory header not found\";\nconst ERR_LOCAL_FILE_HEADER_NOT_FOUND = \"Local file header not found\";\nconst ERR_EXTRAFIELD_ZIP64_NOT_FOUND = \"Zip64 extra field not found\";\nconst ERR_ENCRYPTED = \"File contains encrypted entry\";\nconst ERR_UNSUPPORTED_ENCRYPTION = \"Encryption method not supported\";\nconst ERR_UNSUPPORTED_COMPRESSION = \"Compression method not supported\";\nconst CHARSET_UTF8 = \"utf-8\";\nconst CHARSET_CP437 = \"cp437\";\nconst ZIP64_PROPERTIES = [\"uncompressedSize\", \"compressedSize\", \"offset\"];\n\nclass ZipReader {\n\n\tconstructor(reader, options = {}) {\n\t\tObject.assign(this, {\n\t\t\treader,\n\t\t\toptions,\n\t\t\tconfig: getConfiguration()\n\t\t});\n\t}\n\n\tasync getEntries(options = {}) {\n\t\tconst zipReader = this;\n\t\tconst reader = zipReader.reader;\n\t\tif (!reader.initialized) {\n\t\t\tawait reader.init();\n\t\t}\n\t\tif (reader.size < END_OF_CENTRAL_DIR_LENGTH) {\n\t\t\tthrow new Error(ERR_BAD_FORMAT);\n\t\t}\n\t\tconst endOfDirectoryInfo = await seekSignature(reader, END_OF_CENTRAL_DIR_SIGNATURE, reader.size, END_OF_CENTRAL_DIR_LENGTH, MAX_16_BITS * 16);\n\t\tif (!endOfDirectoryInfo) {\n\t\t\tthrow new Error(ERR_EOCDR_NOT_FOUND);\n\t\t}\n\t\tconst endOfDirectoryView = getDataView(endOfDirectoryInfo);\n\t\tlet directoryDataLength = getUint32(endOfDirectoryView, 12);\n\t\tlet directoryDataOffset = getUint32(endOfDirectoryView, 16);\n\t\tlet filesLength = getUint16(endOfDirectoryView, 8);\n\t\tlet prependedDataLength = 0;\n\t\tif (directoryDataOffset == MAX_32_BITS || directoryDataLength == MAX_32_BITS || filesLength == MAX_16_BITS) {\n\t\t\tconst endOfDirectoryLocatorArray = await readUint8Array(reader, endOfDirectoryInfo.offset - ZIP64_END_OF_CENTRAL_DIR_LOCATOR_LENGTH, ZIP64_END_OF_CENTRAL_DIR_LOCATOR_LENGTH);\n\t\t\tconst endOfDirectoryLocatorView = getDataView(endOfDirectoryLocatorArray);\n\t\t\tif (getUint32(endOfDirectoryLocatorView, 0) != ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIGNATURE) {\n\t\t\t\tthrow new Error(ERR_EOCDR_ZIP64_NOT_FOUND);\n\t\t\t}\n\t\t\tdirectoryDataOffset = getBigUint64(endOfDirectoryLocatorView, 8);\n\t\t\tlet endOfDirectoryArray = await readUint8Array(reader, directoryDataOffset, ZIP64_END_OF_CENTRAL_DIR_LENGTH);\n\t\t\tlet endOfDirectoryView = getDataView(endOfDirectoryArray);\n\t\t\tconst expectedDirectoryDataOffset = endOfDirectoryInfo.offset - ZIP64_END_OF_CENTRAL_DIR_LOCATOR_LENGTH - ZIP64_END_OF_CENTRAL_DIR_LENGTH;\n\t\t\tif (getUint32(endOfDirectoryView, 0) != ZIP64_END_OF_CENTRAL_DIR_SIGNATURE && directoryDataOffset != expectedDirectoryDataOffset) {\n\t\t\t\tconst originalDirectoryDataOffset = directoryDataOffset;\n\t\t\t\tdirectoryDataOffset = expectedDirectoryDataOffset;\n\t\t\t\tprependedDataLength = directoryDataOffset - originalDirectoryDataOffset;\n\t\t\t\tendOfDirectoryArray = await readUint8Array(reader, directoryDataOffset, ZIP64_END_OF_CENTRAL_DIR_LENGTH);\n\t\t\t\tendOfDirectoryView = getDataView(endOfDirectoryArray);\n\t\t\t}\n\t\t\tif (getUint32(endOfDirectoryView, 0) != ZIP64_END_OF_CENTRAL_DIR_SIGNATURE) {\n\t\t\t\tthrow new Error(ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND);\n\t\t\t}\n\t\t\tfilesLength = getBigUint64(endOfDirectoryView, 32);\n\t\t\tdirectoryDataLength = getBigUint64(endOfDirectoryView, 40);\n\t\t\tdirectoryDataOffset -= directoryDataLength;\n\t\t}\n\t\tif (directoryDataOffset < 0 || directoryDataOffset >= reader.size) {\n\t\t\tthrow new Error(ERR_BAD_FORMAT);\n\t\t}\n\t\tlet offset = 0;\n\t\tlet directoryArray = await readUint8Array(reader, directoryDataOffset, directoryDataLength);\n\t\tlet directoryView = getDataView(directoryArray);\n\t\tif (directoryDataLength) {\n\t\t\tconst expectedDirectoryDataOffset = endOfDirectoryInfo.offset - directoryDataLength;\n\t\t\tif (getUint32(directoryView, offset) != CENTRAL_FILE_HEADER_SIGNATURE && directoryDataOffset != expectedDirectoryDataOffset) {\n\t\t\t\tconst originalDirectoryDataOffset = directoryDataOffset;\n\t\t\t\tdirectoryDataOffset = expectedDirectoryDataOffset;\n\t\t\t\tprependedDataLength = directoryDataOffset - originalDirectoryDataOffset;\n\t\t\t\tdirectoryArray = await readUint8Array(reader, directoryDataOffset, directoryDataLength);\n\t\t\t\tdirectoryView = getDataView(directoryArray);\n\t\t\t}\n\t\t}\n\t\tif (directoryDataOffset < 0 || directoryDataOffset >= reader.size) {\n\t\t\tthrow new Error(ERR_BAD_FORMAT);\n\t\t}\n\t\tconst entries = [];\n\t\tfor (let indexFile = 0; indexFile < filesLength; indexFile++) {\n\t\t\tconst fileEntry = new ZipEntry(reader, zipReader.config, zipReader.options);\n\t\t\tif (getUint32(directoryView, offset) != CENTRAL_FILE_HEADER_SIGNATURE) {\n\t\t\t\tthrow new Error(ERR_CENTRAL_DIRECTORY_NOT_FOUND);\n\t\t\t}\n\t\t\treadCommonHeader(fileEntry, directoryView, offset + 6);\n\t\t\tconst languageEncodingFlag = Boolean(fileEntry.bitFlag.languageEncodingFlag);\n\t\t\tconst filenameOffset = offset + 46;\n\t\t\tconst extraFieldOffset = filenameOffset + fileEntry.filenameLength;\n\t\t\tconst commentOffset = extraFieldOffset + fileEntry.extraFieldLength;\n\t\t\tconst versionMadeBy = getUint16(directoryView, offset + 4);\n\t\t\tconst msDosCompatible = (versionMadeBy & 0) == 0;\n\t\t\tObject.assign(fileEntry, {\n\t\t\t\tversionMadeBy,\n\t\t\t\tmsDosCompatible,\n\t\t\t\tcompressedSize: 0,\n\t\t\t\tuncompressedSize: 0,\n\t\t\t\tcommentLength: getUint16(directoryView, offset + 32),\n\t\t\t\tdirectory: msDosCompatible && ((getUint8(directoryView, offset + 38) & FILE_ATTR_MSDOS_DIR_MASK) == FILE_ATTR_MSDOS_DIR_MASK),\n\t\t\t\toffset: getUint32(directoryView, offset + 42) + prependedDataLength,\n\t\t\t\tinternalFileAttribute: getUint32(directoryView, offset + 34),\n\t\t\t\texternalFileAttribute: getUint32(directoryView, offset + 38),\n\t\t\t\trawFilename: directoryArray.subarray(filenameOffset, extraFieldOffset),\n\t\t\t\tfilenameUTF8: languageEncodingFlag,\n\t\t\t\tcommentUTF8: languageEncodingFlag,\n\t\t\t\trawExtraField: directoryArray.subarray(extraFieldOffset, commentOffset)\n\t\t\t});\n\t\t\tconst endOffset = commentOffset + fileEntry.commentLength;\n\t\t\tfileEntry.rawComment = directoryArray.subarray(commentOffset, endOffset);\n\t\t\tconst filenameEncoding = getOptionValue(zipReader, options, \"filenameEncoding\");\n\t\t\tconst commentEncoding = getOptionValue(zipReader, options, \"commentEncoding\");\n\t\t\tconst [filename, comment] = await Promise.all([\n\t\t\t\tdecodeText(fileEntry.rawFilename, fileEntry.filenameUTF8 ? CHARSET_UTF8 : filenameEncoding || CHARSET_CP437),\n\t\t\t\tdecodeText(fileEntry.rawComment, fileEntry.commentUTF8 ? CHARSET_UTF8 : commentEncoding || CHARSET_CP437)\n\t\t\t]);\n\t\t\tfileEntry.filename = filename;\n\t\t\tfileEntry.comment = comment;\n\t\t\tif (!fileEntry.directory && fileEntry.filename.endsWith(DIRECTORY_SIGNATURE)) {\n\t\t\t\tfileEntry.directory = true;\n\t\t\t}\n\t\t\tawait readCommonFooter(fileEntry, fileEntry, directoryView, offset + 6);\n\t\t\tconst entry = new Entry(fileEntry);\n\t\t\tentry.getData = (writer, options) => fileEntry.getData(writer, entry, options);\n\t\t\tentries.push(entry);\n\t\t\toffset = endOffset;\n\t\t\tif (options.onprogress) {\n\t\t\t\ttry {\n\t\t\t\t\toptions.onprogress(indexFile + 1, filesLength, new Entry(fileEntry));\n\t\t\t\t} catch (error) {\n\t\t\t\t\t// ignored\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn entries;\n\t}\n\n\tasync close() {\n\t}\n}\n\nexport {\n\tZipReader,\n\tERR_BAD_FORMAT,\n\tERR_EOCDR_NOT_FOUND,\n\tERR_EOCDR_ZIP64_NOT_FOUND,\n\tERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND,\n\tERR_CENTRAL_DIRECTORY_NOT_FOUND,\n\tERR_LOCAL_FILE_HEADER_NOT_FOUND,\n\tERR_EXTRAFIELD_ZIP64_NOT_FOUND,\n\tERR_ENCRYPTED,\n\tERR_UNSUPPORTED_ENCRYPTION,\n\tERR_UNSUPPORTED_COMPRESSION,\n\tERR_INVALID_SIGNATURE,\n\tERR_INVALID_PASSWORD\n};\n\nclass ZipEntry {\n\n\tconstructor(reader, config, options) {\n\t\tObject.assign(this, {\n\t\t\treader,\n\t\t\tconfig,\n\t\t\toptions\n\t\t});\n\t}\n\n\tasync getData(writer, fileEntry, options = {}) {\n\t\tconst zipEntry = this;\n\t\tconst {\n\t\t\treader,\n\t\t\toffset,\n\t\t\textraFieldAES,\n\t\t\tcompressionMethod,\n\t\t\tconfig,\n\t\t\tbitFlag,\n\t\t\tsignature,\n\t\t\trawLastModDate,\n\t\t\tcompressedSize\n\t\t} = zipEntry;\n\t\tconst localDirectory = zipEntry.localDirectory = {};\n\t\tif (!reader.initialized) {\n\t\t\tawait reader.init();\n\t\t}\n\t\tlet dataArray = await readUint8Array(reader, offset, 30);\n\t\tconst dataView = getDataView(dataArray);\n\t\tlet password = getOptionValue(zipEntry, options, \"password\");\n\t\tpassword = password && password.length && password;\n\t\tif (extraFieldAES) {\n\t\t\tif (extraFieldAES.originalCompressionMethod != COMPRESSION_METHOD_AES) {\n\t\t\t\tthrow new Error(ERR_UNSUPPORTED_COMPRESSION);\n\t\t\t}\n\t\t}\n\t\tif (compressionMethod != COMPRESSION_METHOD_STORE && compressionMethod != COMPRESSION_METHOD_DEFLATE) {\n\t\t\tthrow new Error(ERR_UNSUPPORTED_COMPRESSION);\n\t\t}\n\t\tif (getUint32(dataView, 0) != LOCAL_FILE_HEADER_SIGNATURE) {\n\t\t\tthrow new Error(ERR_LOCAL_FILE_HEADER_NOT_FOUND);\n\t\t}\n\t\treadCommonHeader(localDirectory, dataView, 4);\n\t\tdataArray = await readUint8Array(reader, offset, 30 + localDirectory.filenameLength + localDirectory.extraFieldLength);\n\t\tlocalDirectory.rawExtraField = dataArray.subarray(30 + localDirectory.filenameLength);\n\t\tawait readCommonFooter(zipEntry, localDirectory, dataView, 4);\n\t\tfileEntry.lastAccessDate = localDirectory.lastAccessDate;\n\t\tfileEntry.creationDate = localDirectory.creationDate;\n\t\tconst encrypted = zipEntry.encrypted && localDirectory.encrypted;\n\t\tconst zipCrypto = encrypted && !extraFieldAES;\n\t\tif (encrypted) {\n\t\t\tif (!zipCrypto && extraFieldAES.strength === undefined) {\n\t\t\t\tthrow new Error(ERR_UNSUPPORTED_ENCRYPTION);\n\t\t\t} else if (!password) {\n\t\t\t\tthrow new Error(ERR_ENCRYPTED);\n\t\t\t}\n\t\t}\n\t\tconst codec = await createCodec(config.Inflate, {\n\t\t\tcodecType: CODEC_INFLATE,\n\t\t\tpassword,\n\t\t\tzipCrypto,\n\t\t\tencryptionStrength: extraFieldAES && extraFieldAES.strength,\n\t\t\tsigned: getOptionValue(zipEntry, options, \"checkSignature\"),\n\t\t\tpasswordVerification: zipCrypto && (bitFlag.dataDescriptor ? ((rawLastModDate >>> 8) & 0xFF) : ((signature >>> 24) & 0xFF)),\n\t\t\tsignature,\n\t\t\tcompressed: compressionMethod != 0,\n\t\t\tencrypted,\n\t\t\tuseWebWorkers: getOptionValue(zipEntry, options, \"useWebWorkers\")\n\t\t}, config);\n\t\tif (!writer.initialized) {\n\t\t\tawait writer.init();\n\t\t}\n\t\tconst signal = getOptionValue(zipEntry, options, \"signal\");\n\t\tconst dataOffset = offset + 30 + localDirectory.filenameLength + localDirectory.extraFieldLength;\n\t\tawait processData(codec, reader, writer, dataOffset, compressedSize, config, { onprogress: options.onprogress, signal });\n\t\treturn writer.getData();\n\t}\n}\n\nfunction readCommonHeader(directory, dataView, offset) {\n\tconst rawBitFlag = directory.rawBitFlag = getUint16(dataView, offset + 2);\n\tconst encrypted = (rawBitFlag & BITFLAG_ENCRYPTED) == BITFLAG_ENCRYPTED;\n\tconst rawLastModDate = getUint32(dataView, offset + 6);\n\tObject.assign(directory, {\n\t\tencrypted,\n\t\tversion: getUint16(dataView, offset),\n\t\tbitFlag: {\n\t\t\tlevel: (rawBitFlag & BITFLAG_LEVEL) >> 1,\n\t\t\tdataDescriptor: (rawBitFlag & BITFLAG_DATA_DESCRIPTOR) == BITFLAG_DATA_DESCRIPTOR,\n\t\t\tlanguageEncodingFlag: (rawBitFlag & BITFLAG_LANG_ENCODING_FLAG) == BITFLAG_LANG_ENCODING_FLAG\n\t\t},\n\t\trawLastModDate,\n\t\tlastModDate: getDate(rawLastModDate),\n\t\tfilenameLength: getUint16(dataView, offset + 22),\n\t\textraFieldLength: getUint16(dataView, offset + 24)\n\t});\n}\n\nasync function readCommonFooter(fileEntry, directory, dataView, offset) {\n\tconst rawExtraField = directory.rawExtraField;\n\tconst extraField = directory.extraField = new Map();\n\tconst rawExtraFieldView = getDataView(new Uint8Array(rawExtraField));\n\tlet offsetExtraField = 0;\n\ttry {\n\t\twhile (offsetExtraField < rawExtraField.length) {\n\t\t\tconst type = getUint16(rawExtraFieldView, offsetExtraField);\n\t\t\tconst size = getUint16(rawExtraFieldView, offsetExtraField + 2);\n\t\t\textraField.set(type, {\n\t\t\t\ttype,\n\t\t\t\tdata: rawExtraField.slice(offsetExtraField + 4, offsetExtraField + 4 + size)\n\t\t\t});\n\t\t\toffsetExtraField += 4 + size;\n\t\t}\n\t} catch (error) {\n\t\t// ignored\n\t}\n\tconst compressionMethod = getUint16(dataView, offset + 4);\n\tdirectory.signature = getUint32(dataView, offset + 10);\n\tdirectory.uncompressedSize = getUint32(dataView, offset + 18);\n\tdirectory.compressedSize = getUint32(dataView, offset + 14);\n\tconst extraFieldZip64 = extraField.get(EXTRAFIELD_TYPE_ZIP64);\n\tif (extraFieldZip64) {\n\t\treadExtraFieldZip64(extraFieldZip64, directory);\n\t\tdirectory.extraFieldZip64 = extraFieldZip64;\n\t}\n\tconst extraFieldUnicodePath = extraField.get(EXTRAFIELD_TYPE_UNICODE_PATH);\n\tif (extraFieldUnicodePath) {\n\t\tawait readExtraFieldUnicode(extraFieldUnicodePath, \"filename\", \"rawFilename\", directory, fileEntry);\n\t\tdirectory.extraFieldUnicodePath = extraFieldUnicodePath;\n\t}\n\tconst extraFieldUnicodeComment = extraField.get(EXTRAFIELD_TYPE_UNICODE_COMMENT);\n\tif (extraFieldUnicodeComment) {\n\t\tawait readExtraFieldUnicode(extraFieldUnicodeComment, \"comment\", \"rawComment\", directory, fileEntry);\n\t\tdirectory.extraFieldUnicodeComment = extraFieldUnicodeComment;\n\t}\n\tconst extraFieldAES = extraField.get(EXTRAFIELD_TYPE_AES);\n\tif (extraFieldAES) {\n\t\treadExtraFieldAES(extraFieldAES, directory, compressionMethod);\n\t\tdirectory.extraFieldAES = extraFieldAES;\n\t} else {\n\t\tdirectory.compressionMethod = compressionMethod;\n\t}\n\tconst extraFieldNTFS = extraField.get(EXTRAFIELD_TYPE_NTFS);\n\tif (extraFieldNTFS) {\n\t\treadExtraFieldNTFS(extraFieldNTFS, directory);\n\t\tdirectory.extraFieldNTFS = extraFieldNTFS;\n\t}\n\tconst extraFieldExtendedTimestamp = extraField.get(EXTRAFIELD_TYPE_EXTENDED_TIMESTAMP);\n\tif (extraFieldExtendedTimestamp) {\n\t\treadExtraFieldExtendedTimestamp(extraFieldExtendedTimestamp, directory);\n\t\tdirectory.extraFieldExtendedTimestamp = extraFieldExtendedTimestamp;\n\t}\n}\n\nfunction readExtraFieldZip64(extraFieldZip64, directory) {\n\tdirectory.zip64 = true;\n\tconst extraFieldView = getDataView(extraFieldZip64.data);\n\textraFieldZip64.values = [];\n\tfor (let indexValue = 0; indexValue < Math.floor(extraFieldZip64.data.length / 8); indexValue++) {\n\t\textraFieldZip64.values.push(getBigUint64(extraFieldView, 0 + indexValue * 8));\n\t}\n\tconst missingProperties = ZIP64_PROPERTIES.filter(propertyName => directory[propertyName] == MAX_32_BITS);\n\tfor (let indexMissingProperty = 0; indexMissingProperty < missingProperties.length; indexMissingProperty++) {\n\t\textraFieldZip64[missingProperties[indexMissingProperty]] = extraFieldZip64.values[indexMissingProperty];\n\t}\n\tZIP64_PROPERTIES.forEach(propertyName => {\n\t\tif (directory[propertyName] == MAX_32_BITS) {\n\t\t\tif (extraFieldZip64[propertyName] !== undefined) {\n\t\t\t\tdirectory[propertyName] = extraFieldZip64[propertyName];\n\t\t\t} else {\n\t\t\t\tthrow new Error(ERR_EXTRAFIELD_ZIP64_NOT_FOUND);\n\t\t\t}\n\t\t}\n\t});\n}\n\nasync function readExtraFieldUnicode(extraFieldUnicode, propertyName, rawPropertyName, directory, fileEntry) {\n\tconst extraFieldView = getDataView(extraFieldUnicode.data);\n\textraFieldUnicode.version = getUint8(extraFieldView, 0);\n\textraFieldUnicode.signature = getUint32(extraFieldView, 1);\n\tconst crc32 = new Crc32();\n\tcrc32.append(fileEntry[rawPropertyName]);\n\tconst dataViewSignature = getDataView(new Uint8Array(4));\n\tdataViewSignature.setUint32(0, crc32.get(), true);\n\textraFieldUnicode[propertyName] = await decodeText(extraFieldUnicode.data.subarray(5));\n\textraFieldUnicode.valid = !fileEntry.bitFlag.languageEncodingFlag && extraFieldUnicode.signature == getUint32(dataViewSignature, 0);\n\tif (extraFieldUnicode.valid) {\n\t\tdirectory[propertyName] = extraFieldUnicode[propertyName];\n\t\tdirectory[propertyName + \"UTF8\"] = true;\n\t}\n}\n\nfunction readExtraFieldAES(extraFieldAES, directory, compressionMethod) {\n\tconst extraFieldView = getDataView(extraFieldAES.data);\n\textraFieldAES.vendorVersion = getUint8(extraFieldView, 0);\n\textraFieldAES.vendorId = getUint8(extraFieldView, 2);\n\tconst strength = getUint8(extraFieldView, 4);\n\textraFieldAES.strength = strength;\n\textraFieldAES.originalCompressionMethod = compressionMethod;\n\tdirectory.compressionMethod = extraFieldAES.compressionMethod = getUint16(extraFieldView, 5);\n}\n\nfunction readExtraFieldNTFS(extraFieldNTFS, directory) {\n\tconst extraFieldView = getDataView(extraFieldNTFS.data);\n\tlet offsetExtraField = 4;\n\tlet tag1Data;\n\ttry {\n\t\twhile (offsetExtraField < extraFieldNTFS.data.length && !tag1Data) {\n\t\t\tconst tagValue = getUint16(extraFieldView, offsetExtraField);\n\t\t\tconst attributeSize = getUint16(extraFieldView, offsetExtraField + 2);\n\t\t\tif (tagValue == EXTRAFIELD_TYPE_NTFS_TAG1) {\n\t\t\t\ttag1Data = extraFieldNTFS.data.slice(offsetExtraField + 4, offsetExtraField + 4 + attributeSize);\n\t\t\t}\n\t\t\toffsetExtraField += 4 + attributeSize;\n\t\t}\n\t} catch (error) {\n\t\t// ignored\n\t}\n\ttry {\n\t\tif (tag1Data && tag1Data.length == 24) {\n\t\t\tconst tag1View = getDataView(tag1Data);\n\t\t\tconst rawLastModDate = tag1View.getBigUint64(0, true);\n\t\t\tconst rawLastAccessDate = tag1View.getBigUint64(8, true);\n\t\t\tconst rawCreationDate = tag1View.getBigUint64(16, true);\n\t\t\tObject.assign(extraFieldNTFS, {\n\t\t\t\trawLastModDate,\n\t\t\t\trawLastAccessDate,\n\t\t\t\trawCreationDate\n\t\t\t});\n\t\t\tconst lastModDate = getDateNTFS(rawLastModDate);\n\t\t\tconst lastAccessDate = getDateNTFS(rawLastAccessDate);\n\t\t\tconst creationDate = getDateNTFS(rawCreationDate);\n\t\t\tconst extraFieldData = { lastModDate, lastAccessDate, creationDate };\n\t\t\tObject.assign(extraFieldNTFS, extraFieldData);\n\t\t\tObject.assign(directory, extraFieldData);\n\t\t}\n\t} catch (error) {\n\t\t// ignored\n\t}\n}\n\nfunction readExtraFieldExtendedTimestamp(extraFieldExtendedTimestamp, directory) {\n\tconst extraFieldView = getDataView(extraFieldExtendedTimestamp.data);\n\tconst flags = getUint8(extraFieldView, 0);\n\tconst timeProperties = [];\n\tconst timeRawProperties = [];\n\tif ((flags & 0x1) == 0x1) {\n\t\ttimeProperties.push(\"lastModDate\");\n\t\ttimeRawProperties.push(\"rawLastModDate\");\n\t}\n\tif ((flags & 0x2) == 0x2) {\n\t\ttimeProperties.push(\"lastAccessDate\");\n\t\ttimeRawProperties.push(\"rawLastAccessDate\");\n\t}\n\tif ((flags & 0x4) == 0x4) {\n\t\ttimeProperties.push(\"creationDate\");\n\t\ttimeRawProperties.push(\"rawCreationDate\");\n\t}\n\tlet offset = 1;\n\ttimeProperties.forEach((propertyName, indexProperty) => {\n\t\tif (extraFieldExtendedTimestamp.data.length >= offset + 4) {\n\t\t\tconst time = getUint32(extraFieldView, offset);\n\t\t\tdirectory[propertyName] = extraFieldExtendedTimestamp[propertyName] = new Date(time * 1000);\n\t\t\tconst rawPropertyName = timeRawProperties[indexProperty];\n\t\t\textraFieldExtendedTimestamp[rawPropertyName] = time;\n\t\t}\n\t\toffset += 4;\n\t});\n}\n\nasync function seekSignature(reader, signature, startOffset, minimumBytes, maximumLength) {\n\tconst signatureArray = new Uint8Array(4);\n\tconst signatureView = getDataView(signatureArray);\n\tsetUint32(signatureView, 0, signature);\n\tconst maximumBytes = minimumBytes + maximumLength;\n\treturn (await seek(minimumBytes)) || await seek(Math.min(maximumBytes, startOffset));\n\n\tasync function seek(length) {\n\t\tconst offset = startOffset - length;\n\t\tconst bytes = await readUint8Array(reader, offset, length);\n\t\tfor (let indexByte = bytes.length - minimumBytes; indexByte >= 0; indexByte--) {\n\t\t\tif (bytes[indexByte] == signatureArray[0] && bytes[indexByte + 1] == signatureArray[1] &&\n\t\t\t\tbytes[indexByte + 2] == signatureArray[2] && bytes[indexByte + 3] == signatureArray[3]) {\n\t\t\t\treturn {\n\t\t\t\t\toffset: offset + indexByte,\n\t\t\t\t\tbuffer: bytes.slice(indexByte, indexByte + minimumBytes).buffer\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction getOptionValue(zipReader, options, name) {\n\treturn options[name] === undefined ? zipReader.options[name] : options[name];\n}\n\nfunction getDate(timeRaw) {\n\tconst date = (timeRaw & 0xffff0000) >> 16, time = timeRaw & 0x0000ffff;\n\ttry {\n\t\treturn new Date(1980 + ((date & 0xFE00) >> 9), ((date & 0x01E0) >> 5) - 1, date & 0x001F, (time & 0xF800) >> 11, (time & 0x07E0) >> 5, (time & 0x001F) * 2, 0);\n\t} catch (error) {\n\t\t// ignored\n\t}\n}\n\nfunction getDateNTFS(timeRaw) {\n\treturn new Date((Number((timeRaw / BigInt(10000)) - BigInt(11644473600000))));\n}\n\nfunction getUint8(view, offset) {\n\treturn view.getUint8(offset);\n}\n\nfunction getUint16(view, offset) {\n\treturn view.getUint16(offset, true);\n}\n\nfunction getUint32(view, offset) {\n\treturn view.getUint32(offset, true);\n}\n\nfunction getBigUint64(view, offset) {\n\treturn Number(view.getBigUint64(offset, true));\n}\n\nfunction setUint32(view, offset, value) {\n\tview.setUint32(offset, value, true);\n}\n\nfunction getDataView(array) {\n\treturn new DataView(array.buffer);\n}\n\nfunction readUint8Array(reader, offset, size) {\n\treturn reader.readUint8Array(offset, size);\n}","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/* global BigInt, FileReader */\n\nimport {\n\tMAX_32_BITS,\n\tMAX_16_BITS,\n\tCOMPRESSION_METHOD_DEFLATE,\n\tCOMPRESSION_METHOD_STORE,\n\tCOMPRESSION_METHOD_AES,\n\tLOCAL_FILE_HEADER_SIGNATURE,\n\tDATA_DESCRIPTOR_RECORD_SIGNATURE,\n\tCENTRAL_FILE_HEADER_SIGNATURE,\n\tEND_OF_CENTRAL_DIR_SIGNATURE,\n\tZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIGNATURE,\n\tZIP64_END_OF_CENTRAL_DIR_SIGNATURE,\n\tZIP64_TOTAL_NUMBER_OF_DISKS,\n\tEXTRAFIELD_TYPE_AES,\n\tEXTRAFIELD_TYPE_ZIP64,\n\tEXTRAFIELD_TYPE_EXTENDED_TIMESTAMP,\n\tEXTRAFIELD_TYPE_NTFS,\n\tEXTRAFIELD_TYPE_NTFS_TAG1,\n\tEND_OF_CENTRAL_DIR_LENGTH,\n\tZIP64_END_OF_CENTRAL_DIR_TOTAL_LENGTH,\n\tBITFLAG_ENCRYPTED,\n\tBITFLAG_DATA_DESCRIPTOR,\n\tBITFLAG_LANG_ENCODING_FLAG,\n\tFILE_ATTR_MSDOS_DIR_MASK,\n\tVERSION_DEFLATE,\n\tVERSION_ZIP64,\n\tVERSION_AES,\n\tDIRECTORY_SIGNATURE,\n\tMIN_DATE,\n\tMAX_DATE\n} from \"./constants.js\";\nimport { getConfiguration } from \"./configuration.js\";\nimport { CODEC_DEFLATE, createCodec } from \"./codecs/codec-pool.js\";\nimport encodeText from \"./util/encode-text.js\";\nimport { BlobWriter } from \"./io.js\";\nimport { processData } from \"./engine.js\";\nimport Entry from \"./zip-entry.js\";\n\nconst ERR_DUPLICATED_NAME = \"File already exists\";\nconst ERR_INVALID_COMMENT = \"Zip file comment exceeds 64KB\";\nconst ERR_INVALID_ENTRY_COMMENT = \"File entry comment exceeds 64KB\";\nconst ERR_INVALID_ENTRY_NAME = \"File entry name exceeds 64KB\";\nconst ERR_INVALID_VERSION = \"Version exceeds 65535\";\nconst ERR_INVALID_ENCRYPTION_STRENGTH = \"The strength must equal 1, 2, or 3\";\nconst ERR_INVALID_EXTRAFIELD_TYPE = \"Extra field type exceeds 65535\";\nconst ERR_INVALID_EXTRAFIELD_DATA = \"Extra field data exceeds 64KB\";\nconst ERR_UNSUPPORTED_FORMAT = \"Zip64 is not supported\";\n\nconst EXTRAFIELD_DATA_AES = new Uint8Array([0x07, 0x00, 0x02, 0x00, 0x41, 0x45, 0x03, 0x00, 0x00]);\nconst EXTRAFIELD_LENGTH_ZIP64 = 24;\n\nlet workers = 0;\n\nclass ZipWriter {\n\n\tconstructor(writer, options = {}) {\n\t\tObject.assign(this, {\n\t\t\twriter,\n\t\t\toptions,\n\t\t\tconfig: getConfiguration(),\n\t\t\tfiles: new Map(),\n\t\t\toffset: writer.size,\n\t\t\tpendingCompressedSize: 0,\n\t\t\tpendingEntries: []\n\t\t});\n\t}\n\n\tasync add(name = \"\", reader, options = {}) {\n\t\tconst zipWriter = this;\n\t\tif (workers < zipWriter.config.maxWorkers) {\n\t\t\tworkers++;\n\t\t\ttry {\n\t\t\t\treturn await addFile(zipWriter, name, reader, options);\n\t\t\t} finally {\n\t\t\t\tworkers--;\n\t\t\t\tconst pendingEntry = zipWriter.pendingEntries.shift();\n\t\t\t\tif (pendingEntry) {\n\t\t\t\t\tzipWriter.add(pendingEntry.name, pendingEntry.reader, pendingEntry.options)\n\t\t\t\t\t\t.then(pendingEntry.resolve)\n\t\t\t\t\t\t.catch(pendingEntry.reject);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\treturn new Promise((resolve, reject) => zipWriter.pendingEntries.push({ name, reader, options, resolve, reject }));\n\t\t}\n\t}\n\n\tasync close(comment = new Uint8Array(0), options = {}) {\n\t\tawait closeFile(this, comment, options);\n\t\treturn this.writer.getData();\n\t}\n}\n\nexport {\n\tZipWriter,\n\tERR_DUPLICATED_NAME,\n\tERR_INVALID_COMMENT,\n\tERR_INVALID_ENTRY_NAME,\n\tERR_INVALID_ENTRY_COMMENT,\n\tERR_INVALID_VERSION,\n\tERR_INVALID_EXTRAFIELD_TYPE,\n\tERR_INVALID_EXTRAFIELD_DATA,\n\tERR_INVALID_ENCRYPTION_STRENGTH,\n\tERR_UNSUPPORTED_FORMAT\n};\n\nasync function addFile(zipWriter, name, reader, options) {\n\tname = name.trim();\n\tif (options.directory && (!name.endsWith(DIRECTORY_SIGNATURE))) {\n\t\tname += DIRECTORY_SIGNATURE;\n\t} else {\n\t\toptions.directory = name.endsWith(DIRECTORY_SIGNATURE);\n\t}\n\tif (zipWriter.files.has(name)) {\n\t\tthrow new Error(ERR_DUPLICATED_NAME);\n\t}\n\tconst rawFilename = encodeText(name);\n\tif (rawFilename.length > MAX_16_BITS) {\n\t\tthrow new Error(ERR_INVALID_ENTRY_NAME);\n\t}\n\tconst comment = options.comment || \"\";\n\tconst rawComment = encodeText(comment);\n\tif (rawComment.length > MAX_16_BITS) {\n\t\tthrow new Error(ERR_INVALID_ENTRY_COMMENT);\n\t}\n\tconst version = zipWriter.options.version || options.version || 0;\n\tif (version > MAX_16_BITS) {\n\t\tthrow new Error(ERR_INVALID_VERSION);\n\t}\n\tconst versionMadeBy = zipWriter.options.versionMadeBy || options.versionMadeBy || 20;\n\tif (versionMadeBy > MAX_16_BITS) {\n\t\tthrow new Error(ERR_INVALID_VERSION);\n\t}\n\tconst lastModDate = getOptionValue(zipWriter, options, \"lastModDate\") || new Date();\n\tconst lastAccessDate = getOptionValue(zipWriter, options, \"lastAccessDate\");\n\tconst creationDate = getOptionValue(zipWriter, options, \"creationDate\");\n\tconst password = getOptionValue(zipWriter, options, \"password\");\n\tconst encryptionStrength = getOptionValue(zipWriter, options, \"encryptionStrength\") || 3;\n\tconst zipCrypto = getOptionValue(zipWriter, options, \"zipCrypto\");\n\tif (password !== undefined && encryptionStrength !== undefined && (encryptionStrength < 1 || encryptionStrength > 3)) {\n\t\tthrow new Error(ERR_INVALID_ENCRYPTION_STRENGTH);\n\t}\n\tlet rawExtraField = new Uint8Array(0);\n\tconst extraField = options.extraField;\n\tif (extraField) {\n\t\tlet extraFieldSize = 0;\n\t\tlet offset = 0;\n\t\textraField.forEach(data => extraFieldSize += 4 + data.length);\n\t\trawExtraField = new Uint8Array(extraFieldSize);\n\t\textraField.forEach((data, type) => {\n\t\t\tif (type > MAX_16_BITS) {\n\t\t\t\tthrow new Error(ERR_INVALID_EXTRAFIELD_TYPE);\n\t\t\t}\n\t\t\tif (data.length > MAX_16_BITS) {\n\t\t\t\tthrow new Error(ERR_INVALID_EXTRAFIELD_DATA);\n\t\t\t}\n\t\t\tarraySet(rawExtraField, new Uint16Array([type]), offset);\n\t\t\tarraySet(rawExtraField, new Uint16Array([data.length]), offset + 2);\n\t\t\tarraySet(rawExtraField, data, offset + 4);\n\t\t\toffset += 4 + data.length;\n\t\t});\n\t}\n\tlet extendedTimestamp = getOptionValue(zipWriter, options, \"extendedTimestamp\");\n\tif (extendedTimestamp === undefined) {\n\t\textendedTimestamp = true;\n\t}\n\tlet maximumCompressedSize = 0;\n\tlet keepOrder = getOptionValue(zipWriter, options, \"keepOrder\");\n\tif (keepOrder === undefined) {\n\t\tkeepOrder = true;\n\t}\n\tlet uncompressedSize = 0;\n\tlet msDosCompatible = getOptionValue(zipWriter, options, \"msDosCompatible\");\n\tif (msDosCompatible === undefined) {\n\t\tmsDosCompatible = true;\n\t}\n\tconst internalFileAttribute = getOptionValue(zipWriter, options, \"internalFileAttribute\") || 0;\n\tconst externalFileAttribute = getOptionValue(zipWriter, options, \"externalFileAttribute\") || 0;\n\tif (reader) {\n\t\tif (!reader.initialized) {\n\t\t\tawait reader.init();\n\t\t}\n\t\tuncompressedSize = reader.size;\n\t\tmaximumCompressedSize = getMaximumCompressedSize(uncompressedSize);\n\t}\n\tlet zip64 = options.zip64 || zipWriter.options.zip64 || false;\n\tif (zipWriter.offset + zipWriter.pendingCompressedSize >= MAX_32_BITS ||\n\t\tuncompressedSize >= MAX_32_BITS ||\n\t\tmaximumCompressedSize >= MAX_32_BITS) {\n\t\tif (options.zip64 === false || zipWriter.options.zip64 === false || !keepOrder) {\n\t\t\tthrow new Error(ERR_UNSUPPORTED_FORMAT);\n\t\t} else {\n\t\t\tzip64 = true;\n\t\t}\n\t}\n\tzipWriter.pendingCompressedSize += maximumCompressedSize;\n\tawait Promise.resolve();\n\tconst level = getOptionValue(zipWriter, options, \"level\");\n\tconst useWebWorkers = getOptionValue(zipWriter, options, \"useWebWorkers\");\n\tconst bufferedWrite = getOptionValue(zipWriter, options, \"bufferedWrite\");\n\tlet dataDescriptor = getOptionValue(zipWriter, options, \"dataDescriptor\");\n\tlet dataDescriptorSignature = getOptionValue(zipWriter, options, \"dataDescriptorSignature\");\n\tconst signal = getOptionValue(zipWriter, options, \"signal\");\n\tif (dataDescriptor === undefined) {\n\t\tdataDescriptor = true;\n\t}\n\tif (dataDescriptor && dataDescriptorSignature === undefined) {\n\t\tdataDescriptorSignature = true;\n\t}\n\tconst fileEntry = await getFileEntry(zipWriter, name, reader, Object.assign({}, options, {\n\t\trawFilename,\n\t\trawComment,\n\t\tversion,\n\t\tversionMadeBy,\n\t\tlastModDate,\n\t\tlastAccessDate,\n\t\tcreationDate,\n\t\trawExtraField,\n\t\tzip64,\n\t\tpassword,\n\t\tlevel,\n\t\tuseWebWorkers,\n\t\tencryptionStrength,\n\t\textendedTimestamp,\n\t\tzipCrypto,\n\t\tbufferedWrite,\n\t\tkeepOrder,\n\t\tdataDescriptor,\n\t\tdataDescriptorSignature,\n\t\tsignal,\n\t\tmsDosCompatible,\n\t\tinternalFileAttribute,\n\t\texternalFileAttribute\n\t}));\n\tif (maximumCompressedSize) {\n\t\tzipWriter.pendingCompressedSize -= maximumCompressedSize;\n\t}\n\tObject.assign(fileEntry, { name, comment, extraField });\n\treturn new Entry(fileEntry);\n}\n\nasync function getFileEntry(zipWriter, name, reader, options) {\n\tconst files = zipWriter.files;\n\tconst writer = zipWriter.writer;\n\tconst previousFileEntry = Array.from(files.values()).pop();\n\tlet fileEntry = {};\n\tlet bufferedWrite;\n\tlet resolveLockUnbufferedWrite;\n\tlet resolveLockCurrentFileEntry;\n\tfiles.set(name, fileEntry);\n\ttry {\n\t\tlet lockPreviousFileEntry;\n\t\tlet fileWriter;\n\t\tlet lockCurrentFileEntry;\n\t\tif (options.keepOrder) {\n\t\t\tlockPreviousFileEntry = previousFileEntry && previousFileEntry.lock;\n\t\t}\n\t\tfileEntry.lock = lockCurrentFileEntry = new Promise(resolve => resolveLockCurrentFileEntry = resolve);\n\t\tif (options.bufferedWrite || zipWriter.lockWrite || !options.dataDescriptor) {\n\t\t\tfileWriter = new BlobWriter();\n\t\t\tfileWriter.init();\n\t\t\tbufferedWrite = true;\n\t\t} else {\n\t\t\tzipWriter.lockWrite = new Promise(resolve => resolveLockUnbufferedWrite = resolve);\n\t\t\tif (!writer.initialized) {\n\t\t\t\tawait writer.init();\n\t\t\t}\n\t\t\tfileWriter = writer;\n\t\t}\n\t\tfileEntry = await createFileEntry(reader, fileWriter, zipWriter.config, options);\n\t\tfileEntry.lock = lockCurrentFileEntry;\n\t\tfiles.set(name, fileEntry);\n\t\tfileEntry.filename = name;\n\t\tif (bufferedWrite) {\n\t\t\tlet indexWrittenData = 0;\n\t\t\tconst blob = fileWriter.getData();\n\t\t\tawait Promise.all([zipWriter.lockWrite, lockPreviousFileEntry]);\n\t\t\tlet pendingFileEntry;\n\t\t\tdo {\n\t\t\t\tpendingFileEntry = Array.from(files.values()).find(fileEntry => fileEntry.writingBufferedData);\n\t\t\t\tif (pendingFileEntry) {\n\t\t\t\t\tawait pendingFileEntry.lock;\n\t\t\t\t}\n\t\t\t} while (pendingFileEntry && pendingFileEntry.lock);\n\t\t\tfileEntry.writingBufferedData = true;\n\t\t\tif (!options.dataDescriptor) {\n\t\t\t\tconst headerLength = 26;\n\t\t\t\tconst arrayBuffer = await sliceAsArrayBuffer(blob, 0, headerLength);\n\t\t\t\tconst arrayBufferView = new DataView(arrayBuffer);\n\t\t\t\tif (!fileEntry.encrypted || options.zipCrypto) {\n\t\t\t\t\tsetUint32(arrayBufferView, 14, fileEntry.signature);\n\t\t\t\t}\n\t\t\t\tif (fileEntry.zip64) {\n\t\t\t\t\tsetUint32(arrayBufferView, 18, MAX_32_BITS);\n\t\t\t\t\tsetUint32(arrayBufferView, 22, MAX_32_BITS);\n\t\t\t\t} else {\n\t\t\t\t\tsetUint32(arrayBufferView, 18, fileEntry.compressedSize);\n\t\t\t\t\tsetUint32(arrayBufferView, 22, fileEntry.uncompressedSize);\n\t\t\t\t}\n\t\t\t\tawait writer.writeUint8Array(new Uint8Array(arrayBuffer));\n\t\t\t\tindexWrittenData = headerLength;\n\t\t\t}\n\t\t\tawait writeBlob(writer, blob, indexWrittenData);\n\t\t\tdelete fileEntry.writingBufferedData;\n\t\t}\n\t\tfileEntry.offset = zipWriter.offset;\n\t\tif (fileEntry.zip64) {\n\t\t\tconst rawExtraFieldZip64View = getDataView(fileEntry.rawExtraFieldZip64);\n\t\t\tsetBigUint64(rawExtraFieldZip64View, 20, BigInt(fileEntry.offset));\n\t\t} else if (fileEntry.offset >= MAX_32_BITS) {\n\t\t\tthrow new Error(ERR_UNSUPPORTED_FORMAT);\n\t\t}\n\t\tzipWriter.offset += fileEntry.length;\n\t\treturn fileEntry;\n\t} catch (error) {\n\t\tif ((bufferedWrite && fileEntry.writingBufferedData) || (!bufferedWrite && fileEntry.dataWritten)) {\n\t\t\terror.corruptedEntry = zipWriter.hasCorruptedEntries = true;\n\t\t\tif (fileEntry.uncompressedSize) {\n\t\t\t\tzipWriter.offset += fileEntry.uncompressedSize;\n\t\t\t}\n\t\t}\n\t\tfiles.delete(name);\n\t\tthrow error;\n\t} finally {\n\t\tresolveLockCurrentFileEntry();\n\t\tif (resolveLockUnbufferedWrite) {\n\t\t\tresolveLockUnbufferedWrite();\n\t\t}\n\t}\n}\n\nasync function createFileEntry(reader, writer, config, options) {\n\tconst {\n\t\trawFilename,\n\t\tlastAccessDate,\n\t\tcreationDate,\n\t\tpassword,\n\t\tlevel,\n\t\tzip64,\n\t\tzipCrypto,\n\t\tdataDescriptor,\n\t\tdataDescriptorSignature,\n\t\tdirectory,\n\t\tversion,\n\t\tversionMadeBy,\n\t\trawComment,\n\t\trawExtraField,\n\t\tuseWebWorkers,\n\t\tonprogress,\n\t\tsignal,\n\t\tencryptionStrength,\n\t\textendedTimestamp,\n\t\tmsDosCompatible,\n\t\tinternalFileAttribute,\n\t\texternalFileAttribute\n\t} = options;\n\tconst encrypted = Boolean(password && password.length);\n\tconst compressed = level !== 0 && !directory;\n\tlet rawExtraFieldAES;\n\tif (encrypted && !zipCrypto) {\n\t\trawExtraFieldAES = new Uint8Array(EXTRAFIELD_DATA_AES.length + 2);\n\t\tconst extraFieldAESView = getDataView(rawExtraFieldAES);\n\t\tsetUint16(extraFieldAESView, 0, EXTRAFIELD_TYPE_AES);\n\t\tarraySet(rawExtraFieldAES, EXTRAFIELD_DATA_AES, 2);\n\t\tsetUint8(extraFieldAESView, 8, encryptionStrength);\n\t} else {\n\t\trawExtraFieldAES = new Uint8Array(0);\n\t}\n\tlet rawExtraFieldNTFS;\n\tlet rawExtraFieldExtendedTimestamp;\n\tif (extendedTimestamp) {\n\t\trawExtraFieldExtendedTimestamp = new Uint8Array(9 + (lastAccessDate ? 4 : 0) + (creationDate ? 4 : 0));\n\t\tconst extraFieldExtendedTimestampView = getDataView(rawExtraFieldExtendedTimestamp);\n\t\tsetUint16(extraFieldExtendedTimestampView, 0, EXTRAFIELD_TYPE_EXTENDED_TIMESTAMP);\n\t\tsetUint16(extraFieldExtendedTimestampView, 2, rawExtraFieldExtendedTimestamp.length - 4);\n\t\tconst extraFieldExtendedTimestampFlag = 0x1 + (lastAccessDate ? 0x2 : 0) + (creationDate ? 0x4 : 0);\n\t\tsetUint8(extraFieldExtendedTimestampView, 4, extraFieldExtendedTimestampFlag);\n\t\tsetUint32(extraFieldExtendedTimestampView, 5, Math.floor(options.lastModDate.getTime() / 1000));\n\t\tif (lastAccessDate) {\n\t\t\tsetUint32(extraFieldExtendedTimestampView, 9, Math.floor(lastAccessDate.getTime() / 1000));\n\t\t}\n\t\tif (creationDate) {\n\t\t\tsetUint32(extraFieldExtendedTimestampView, 13, Math.floor(creationDate.getTime() / 1000));\n\t\t}\n\t\ttry {\n\t\t\trawExtraFieldNTFS = new Uint8Array(36);\n\t\t\tconst extraFieldNTFSView = getDataView(rawExtraFieldNTFS);\n\t\t\tconst lastModTimeNTFS = getTimeNTFS(options.lastModDate);\n\t\t\tsetUint16(extraFieldNTFSView, 0, EXTRAFIELD_TYPE_NTFS);\n\t\t\tsetUint16(extraFieldNTFSView, 2, 32);\n\t\t\tsetUint16(extraFieldNTFSView, 8, EXTRAFIELD_TYPE_NTFS_TAG1);\n\t\t\tsetUint16(extraFieldNTFSView, 10, 24);\n\t\t\tsetBigUint64(extraFieldNTFSView, 12, lastModTimeNTFS);\n\t\t\tsetBigUint64(extraFieldNTFSView, 20, getTimeNTFS(lastAccessDate) || lastModTimeNTFS);\n\t\t\tsetBigUint64(extraFieldNTFSView, 28, getTimeNTFS(creationDate) || lastModTimeNTFS);\n\t\t} catch (error) {\n\t\t\trawExtraFieldNTFS = new Uint8Array(0);\n\t\t}\n\t} else {\n\t\trawExtraFieldNTFS = rawExtraFieldExtendedTimestamp = new Uint8Array(0);\n\t}\n\tconst fileEntry = {\n\t\tversion: version || VERSION_DEFLATE,\n\t\tversionMadeBy,\n\t\tzip64,\n\t\tdirectory: Boolean(directory),\n\t\tfilenameUTF8: true,\n\t\trawFilename,\n\t\tcommentUTF8: true,\n\t\trawComment,\n\t\trawExtraFieldZip64: zip64 ? new Uint8Array(EXTRAFIELD_LENGTH_ZIP64 + 4) : new Uint8Array(0),\n\t\trawExtraFieldExtendedTimestamp,\n\t\trawExtraFieldNTFS,\n\t\trawExtraFieldAES,\n\t\trawExtraField,\n\t\textendedTimestamp,\n\t\tmsDosCompatible,\n\t\tinternalFileAttribute,\n\t\texternalFileAttribute\n\t};\n\tlet uncompressedSize = fileEntry.uncompressedSize = 0;\n\tlet bitFlag = BITFLAG_LANG_ENCODING_FLAG;\n\tif (dataDescriptor) {\n\t\tbitFlag = bitFlag | BITFLAG_DATA_DESCRIPTOR;\n\t}\n\tlet compressionMethod = COMPRESSION_METHOD_STORE;\n\tif (compressed) {\n\t\tcompressionMethod = COMPRESSION_METHOD_DEFLATE;\n\t}\n\tif (zip64) {\n\t\tfileEntry.version = fileEntry.version > VERSION_ZIP64 ? fileEntry.version : VERSION_ZIP64;\n\t}\n\tif (encrypted) {\n\t\tbitFlag = bitFlag | BITFLAG_ENCRYPTED;\n\t\tif (!zipCrypto) {\n\t\t\tfileEntry.version = fileEntry.version > VERSION_AES ? fileEntry.version : VERSION_AES;\n\t\t\tcompressionMethod = COMPRESSION_METHOD_AES;\n\t\t\tif (compressed) {\n\t\t\t\tfileEntry.rawExtraFieldAES[9] = COMPRESSION_METHOD_DEFLATE;\n\t\t\t}\n\t\t}\n\t}\n\tfileEntry.compressionMethod = compressionMethod;\n\tconst headerArray = fileEntry.headerArray = new Uint8Array(26);\n\tconst headerView = getDataView(headerArray);\n\tsetUint16(headerView, 0, fileEntry.version);\n\tsetUint16(headerView, 2, bitFlag);\n\tsetUint16(headerView, 4, compressionMethod);\n\tconst dateArray = new Uint32Array(1);\n\tconst dateView = getDataView(dateArray);\n\tlet lastModDate;\n\tif (options.lastModDate < MIN_DATE) {\n\t\tlastModDate = MIN_DATE;\n\t} else if (options.lastModDate > MAX_DATE) {\n\t\tlastModDate = MAX_DATE;\n\t} else {\n\t\tlastModDate = options.lastModDate;\n\t}\n\tsetUint16(dateView, 0, (((lastModDate.getHours() << 6) | lastModDate.getMinutes()) << 5) | lastModDate.getSeconds() / 2);\n\tsetUint16(dateView, 2, ((((lastModDate.getFullYear() - 1980) << 4) | (lastModDate.getMonth() + 1)) << 5) | lastModDate.getDate());\n\tconst rawLastModDate = dateArray[0];\n\tsetUint32(headerView, 6, rawLastModDate);\n\tsetUint16(headerView, 22, rawFilename.length);\n\tconst extraFieldLength = rawExtraFieldAES.length + rawExtraFieldExtendedTimestamp.length + rawExtraFieldNTFS.length + fileEntry.rawExtraField.length;\n\tsetUint16(headerView, 24, extraFieldLength);\n\tconst localHeaderArray = new Uint8Array(30 + rawFilename.length + extraFieldLength);\n\tconst localHeaderView = getDataView(localHeaderArray);\n\tsetUint32(localHeaderView, 0, LOCAL_FILE_HEADER_SIGNATURE);\n\tarraySet(localHeaderArray, headerArray, 4);\n\tarraySet(localHeaderArray, rawFilename, 30);\n\tarraySet(localHeaderArray, rawExtraFieldAES, 30 + rawFilename.length);\n\tarraySet(localHeaderArray, rawExtraFieldExtendedTimestamp, 30 + rawFilename.length + rawExtraFieldAES.length);\n\tarraySet(localHeaderArray, rawExtraFieldNTFS, 30 + rawFilename.length + rawExtraFieldAES.length + rawExtraFieldExtendedTimestamp.length);\n\tarraySet(localHeaderArray, fileEntry.rawExtraField, 30 + rawFilename.length + rawExtraFieldAES.length + rawExtraFieldExtendedTimestamp.length + rawExtraFieldNTFS.length);\n\tlet result;\n\tlet compressedSize = 0;\n\tif (reader) {\n\t\tuncompressedSize = fileEntry.uncompressedSize = reader.size;\n\t\tconst codec = await createCodec(config.Deflate, {\n\t\t\tcodecType: CODEC_DEFLATE,\n\t\t\tlevel,\n\t\t\tpassword,\n\t\t\tencryptionStrength,\n\t\t\tzipCrypto: encrypted && zipCrypto,\n\t\t\tpasswordVerification: encrypted && zipCrypto && (rawLastModDate >> 8) & 0xFF,\n\t\t\tsigned: true,\n\t\t\tcompressed,\n\t\t\tencrypted,\n\t\t\tuseWebWorkers\n\t\t}, config);\n\t\tawait writer.writeUint8Array(localHeaderArray);\n\t\tfileEntry.dataWritten = true;\n\t\tresult = await processData(codec, reader, writer, 0, uncompressedSize, config, { onprogress, signal });\n\t\tcompressedSize = result.length;\n\t} else {\n\t\tawait writer.writeUint8Array(localHeaderArray);\n\t\tfileEntry.dataWritten = true;\n\t}\n\tlet dataDescriptorArray = new Uint8Array(0);\n\tlet dataDescriptorView, dataDescriptorOffset = 0;\n\tif (dataDescriptor) {\n\t\tdataDescriptorArray = new Uint8Array(zip64 ? (dataDescriptorSignature ? 24 : 20) : (dataDescriptorSignature ? 16 : 12));\n\t\tdataDescriptorView = getDataView(dataDescriptorArray);\n\t\tif (dataDescriptorSignature) {\n\t\t\tdataDescriptorOffset = 4;\n\t\t\tsetUint32(dataDescriptorView, 0, DATA_DESCRIPTOR_RECORD_SIGNATURE);\n\t\t}\n\t}\n\tif (reader) {\n\t\tconst signature = result.signature;\n\t\tif ((!encrypted || zipCrypto) && signature !== undefined) {\n\t\t\tsetUint32(headerView, 10, signature);\n\t\t\tfileEntry.signature = signature;\n\t\t\tif (dataDescriptor) {\n\t\t\t\tsetUint32(dataDescriptorView, dataDescriptorOffset, signature);\n\t\t\t}\n\t\t}\n\t\tif (zip64) {\n\t\t\tconst rawExtraFieldZip64View = getDataView(fileEntry.rawExtraFieldZip64);\n\t\t\tsetUint16(rawExtraFieldZip64View, 0, EXTRAFIELD_TYPE_ZIP64);\n\t\t\tsetUint16(rawExtraFieldZip64View, 2, EXTRAFIELD_LENGTH_ZIP64);\n\t\t\tsetUint32(headerView, 14, MAX_32_BITS);\n\t\t\tsetBigUint64(rawExtraFieldZip64View, 12, BigInt(compressedSize));\n\t\t\tsetUint32(headerView, 18, MAX_32_BITS);\n\t\t\tsetBigUint64(rawExtraFieldZip64View, 4, BigInt(uncompressedSize));\n\t\t\tif (dataDescriptor) {\n\t\t\t\tsetBigUint64(dataDescriptorView, dataDescriptorOffset + 4, BigInt(compressedSize));\n\t\t\t\tsetBigUint64(dataDescriptorView, dataDescriptorOffset + 12, BigInt(uncompressedSize));\n\t\t\t}\n\t\t} else {\n\t\t\tsetUint32(headerView, 14, compressedSize);\n\t\t\tsetUint32(headerView, 18, uncompressedSize);\n\t\t\tif (dataDescriptor) {\n\t\t\t\tsetUint32(dataDescriptorView, dataDescriptorOffset + 4, compressedSize);\n\t\t\t\tsetUint32(dataDescriptorView, dataDescriptorOffset + 8, uncompressedSize);\n\t\t\t}\n\t\t}\n\t}\n\tif (dataDescriptor) {\n\t\tawait writer.writeUint8Array(dataDescriptorArray);\n\t}\n\tconst length = localHeaderArray.length + compressedSize + dataDescriptorArray.length;\n\tObject.assign(fileEntry, { compressedSize, lastModDate, rawLastModDate, creationDate, lastAccessDate, encrypted, length });\n\treturn fileEntry;\n}\n\nasync function closeFile(zipWriter, comment, options) {\n\tconst writer = zipWriter.writer;\n\tconst files = zipWriter.files;\n\tlet offset = 0;\n\tlet directoryDataLength = 0;\n\tlet directoryOffset = zipWriter.offset;\n\tlet filesLength = files.size;\n\tfor (const [, fileEntry] of files) {\n\t\tdirectoryDataLength += 46 +\n\t\t\tfileEntry.rawFilename.length +\n\t\t\tfileEntry.rawComment.length +\n\t\t\tfileEntry.rawExtraFieldZip64.length +\n\t\t\tfileEntry.rawExtraFieldAES.length +\n\t\t\tfileEntry.rawExtraFieldExtendedTimestamp.length +\n\t\t\tfileEntry.rawExtraFieldNTFS.length +\n\t\t\tfileEntry.rawExtraField.length;\n\t}\n\tlet zip64 = options.zip64 || zipWriter.options.zip64 || false;\n\tif (directoryOffset >= MAX_32_BITS || directoryDataLength >= MAX_32_BITS || filesLength >= MAX_16_BITS) {\n\t\tif (options.zip64 === false || zipWriter.options.zip64 === false) {\n\t\t\tthrow new Error(ERR_UNSUPPORTED_FORMAT);\n\t\t} else {\n\t\t\tzip64 = true;\n\t\t}\n\t}\n\tconst directoryArray = new Uint8Array(directoryDataLength + (zip64 ? ZIP64_END_OF_CENTRAL_DIR_TOTAL_LENGTH : END_OF_CENTRAL_DIR_LENGTH));\n\tconst directoryView = getDataView(directoryArray);\n\tif (comment && comment.length) {\n\t\tif (comment.length <= MAX_16_BITS) {\n\t\t\tsetUint16(directoryView, offset + 20, comment.length);\n\t\t} else {\n\t\t\tthrow new Error(ERR_INVALID_COMMENT);\n\t\t}\n\t}\n\tfor (const [indexFileEntry, fileEntry] of Array.from(files.values()).entries()) {\n\t\tconst {\n\t\t\trawFilename,\n\t\t\trawExtraFieldZip64,\n\t\t\trawExtraFieldAES,\n\t\t\trawExtraField,\n\t\t\trawComment,\n\t\t\tversionMadeBy,\n\t\t\theaderArray,\n\t\t\tdirectory,\n\t\t\tzip64,\n\t\t\tmsDosCompatible,\n\t\t\tinternalFileAttribute,\n\t\t\texternalFileAttribute\n\t\t} = fileEntry;\n\t\tlet rawExtraFieldExtendedTimestamp;\n\t\tlet rawExtraFieldNTFS;\n\t\tif (fileEntry.extendedTimestamp) {\n\t\t\trawExtraFieldNTFS = fileEntry.rawExtraFieldNTFS;\n\t\t\trawExtraFieldExtendedTimestamp = new Uint8Array(9);\n\t\t\tconst extraFieldExtendedTimestampView = getDataView(rawExtraFieldExtendedTimestamp);\n\t\t\tsetUint16(extraFieldExtendedTimestampView, 0, EXTRAFIELD_TYPE_EXTENDED_TIMESTAMP);\n\t\t\tsetUint16(extraFieldExtendedTimestampView, 2, rawExtraFieldExtendedTimestamp.length - 4);\n\t\t\tsetUint8(extraFieldExtendedTimestampView, 4, 0x1);\n\t\t\tsetUint32(extraFieldExtendedTimestampView, 5, Math.floor(fileEntry.lastModDate.getTime() / 1000));\n\t\t} else {\n\t\t\trawExtraFieldNTFS = rawExtraFieldExtendedTimestamp = new Uint8Array(0);\n\t\t}\n\t\tconst extraFieldLength = rawExtraFieldZip64.length + rawExtraFieldAES.length + rawExtraFieldExtendedTimestamp.length + rawExtraFieldNTFS.length + rawExtraField.length;\n\t\tsetUint32(directoryView, offset, CENTRAL_FILE_HEADER_SIGNATURE);\n\t\tsetUint16(directoryView, offset + 4, versionMadeBy);\n\t\tarraySet(directoryArray, headerArray, offset + 6);\n\t\tsetUint16(directoryView, offset + 30, extraFieldLength);\n\t\tsetUint16(directoryView, offset + 32, rawComment.length);\n\t\tsetUint32(directoryView, offset + 34, internalFileAttribute);\n\t\tif (externalFileAttribute) {\n\t\t\tsetUint32(directoryView, offset + 38, externalFileAttribute);\n\t\t} else if (directory && msDosCompatible) {\n\t\t\tsetUint8(directoryView, offset + 38, FILE_ATTR_MSDOS_DIR_MASK);\n\t\t}\n\t\tif (zip64) {\n\t\t\tsetUint32(directoryView, offset + 42, MAX_32_BITS);\n\t\t} else {\n\t\t\tsetUint32(directoryView, offset + 42, fileEntry.offset);\n\t\t}\n\t\tarraySet(directoryArray, rawFilename, offset + 46);\n\t\tarraySet(directoryArray, rawExtraFieldZip64, offset + 46 + rawFilename.length);\n\t\tarraySet(directoryArray, rawExtraFieldAES, offset + 46 + rawFilename.length + rawExtraFieldZip64.length);\n\t\tarraySet(directoryArray, rawExtraFieldExtendedTimestamp, offset + 46 + rawFilename.length + rawExtraFieldZip64.length + rawExtraFieldAES.length);\n\t\tarraySet(directoryArray, rawExtraFieldNTFS, offset + 46 + rawFilename.length + rawExtraFieldZip64.length + rawExtraFieldAES.length + rawExtraFieldExtendedTimestamp.length);\n\t\tarraySet(directoryArray, rawExtraField, offset + 46 + rawFilename.length + rawExtraFieldZip64.length + rawExtraFieldAES.length + rawExtraFieldExtendedTimestamp.length + rawExtraFieldNTFS.length);\n\t\tarraySet(directoryArray, rawComment, offset + 46 + rawFilename.length + extraFieldLength);\n\t\toffset += 46 + rawFilename.length + extraFieldLength + rawComment.length;\n\t\tif (options.onprogress) {\n\t\t\ttry {\n\t\t\t\toptions.onprogress(indexFileEntry + 1, files.size, new Entry(fileEntry));\n\t\t\t} catch (error) {\n\t\t\t\t// ignored\n\t\t\t}\n\t\t}\n\t}\n\tif (zip64) {\n\t\tsetUint32(directoryView, offset, ZIP64_END_OF_CENTRAL_DIR_SIGNATURE);\n\t\tsetBigUint64(directoryView, offset + 4, BigInt(44));\n\t\tsetUint16(directoryView, offset + 12, 45);\n\t\tsetUint16(directoryView, offset + 14, 45);\n\t\tsetBigUint64(directoryView, offset + 24, BigInt(filesLength));\n\t\tsetBigUint64(directoryView, offset + 32, BigInt(filesLength));\n\t\tsetBigUint64(directoryView, offset + 40, BigInt(directoryDataLength));\n\t\tsetBigUint64(directoryView, offset + 48, BigInt(directoryOffset));\n\t\tsetUint32(directoryView, offset + 56, ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIGNATURE);\n\t\tsetBigUint64(directoryView, offset + 64, BigInt(directoryOffset) + BigInt(directoryDataLength));\n\t\tsetUint32(directoryView, offset + 72, ZIP64_TOTAL_NUMBER_OF_DISKS);\n\t\tfilesLength = MAX_16_BITS;\n\t\tdirectoryOffset = MAX_32_BITS;\n\t\tdirectoryDataLength = MAX_32_BITS;\n\t\toffset += 76;\n\t}\n\tsetUint32(directoryView, offset, END_OF_CENTRAL_DIR_SIGNATURE);\n\tsetUint16(directoryView, offset + 8, filesLength);\n\tsetUint16(directoryView, offset + 10, filesLength);\n\tsetUint32(directoryView, offset + 12, directoryDataLength);\n\tsetUint32(directoryView, offset + 16, directoryOffset);\n\tawait writer.writeUint8Array(directoryArray);\n\tif (comment && comment.length) {\n\t\tawait writer.writeUint8Array(comment);\n\t}\n}\n\nfunction sliceAsArrayBuffer(blob, start, end) {\n\tif (blob.arrayBuffer) {\n\t\tif (start || end) {\n\t\t\treturn blob.slice(start, end).arrayBuffer();\n\t\t} else {\n\t\t\treturn blob.arrayBuffer();\n\t\t}\n\t} else {\n\t\tconst fileReader = new FileReader();\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tfileReader.onload = event => resolve(event.target.result);\n\t\t\tfileReader.onerror = () => reject(fileReader.error);\n\t\t\tfileReader.readAsArrayBuffer(start || end ? blob.slice(start, end) : blob);\n\t\t});\n\t}\n}\n\nasync function writeBlob(writer, blob, start = 0) {\n\tconst blockSize = 512 * 1024 * 1024;\n\tawait writeSlice();\n\n\tasync function writeSlice() {\n\t\tif (start < blob.size) {\n\t\t\tconst arrayBuffer = await sliceAsArrayBuffer(blob, start, start + blockSize);\n\t\t\tawait writer.writeUint8Array(new Uint8Array(arrayBuffer));\n\t\t\tstart += blockSize;\n\t\t\tawait writeSlice();\n\t\t}\n\t}\n}\n\nfunction getTimeNTFS(date) {\n\tif (date) {\n\t\treturn ((BigInt(date.getTime()) + BigInt(11644473600000)) * BigInt(10000));\n\t}\n}\n\nfunction getOptionValue(zipWriter, options, name) {\n\treturn options[name] === undefined ? zipWriter.options[name] : options[name];\n}\n\nfunction getMaximumCompressedSize(uncompressedSize) {\n\treturn uncompressedSize + (5 * (Math.floor(uncompressedSize / 16383) + 1));\n}\n\nfunction setUint8(view, offset, value) {\n\tview.setUint8(offset, value);\n}\n\nfunction setUint16(view, offset, value) {\n\tview.setUint16(offset, value, true);\n}\n\nfunction setUint32(view, offset, value) {\n\tview.setUint32(offset, value, true);\n}\n\nfunction setBigUint64(view, offset, value) {\n\tview.setBigUint64(offset, value, true);\n}\n\nfunction arraySet(array, typedArray, offset) {\n\tarray.set(typedArray, offset);\n}\n\nfunction getDataView(array) {\n\treturn new DataView(array.buffer);\n}","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nimport { configure } from \"./core/configuration.js\";\nimport configureWebWorker from \"./z-worker-inline.js\";\nimport getMimeType from \"./core/util/default-mime-type.js\";\nimport initShimAsyncCodec from \"./core/util/stream-codec-shim.js\";\nimport { terminateWorkers } from \"./core/codecs/codec-pool.js\";\n\nlet baseURL;\ntry {\n\tbaseURL = import.meta.url;\n} catch (error) {\n\t// ignored\n}\nconfigure({ baseURL });\nconfigureWebWorker(configure);\n\nexport * from \"./core/io.js\";\nexport * from \"./core/zip-reader.js\";\nexport * from \"./core/zip-writer.js\";\nexport * from \"./core/zip-fs-core.js\";\nexport {\n\tconfigure,\n\tgetMimeType,\n\tinitShimAsyncCodec,\n\tterminateWorkers\n};","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nimport Deflate from \"./lib/core/codecs/deflate.js\";\nimport Inflate from \"./lib/core/codecs/inflate.js\";\nimport { configure } from \"./lib/core/configuration.js\";\nimport getMimeType from \"./lib/core/util/mime-type.js\";\nimport { terminateWorkers } from \"./lib/core/codecs/codec-pool.js\";\n\nconfigure({ Deflate, Inflate });\n\nexport {\n\tfs,\n\tconfigure,\n\tinitShimAsyncCodec,\n\tZipReader,\n\tZipWriter,\n\tReader,\n\tWriter,\n\tTextReader,\n\tTextWriter,\n\tData64URIReader,\n\tData64URIWriter,\n\tBlobReader,\n\tBlobWriter,\n\tWritableStreamWriter,\n\tHttpReader,\n\tHttpRangeReader,\n\tUint8ArrayWriter,\n\tUint8ArrayReader,\n\tERR_HTTP_RANGE,\n\tERR_BAD_FORMAT,\n\tERR_EOCDR_NOT_FOUND,\n\tERR_EOCDR_ZIP64_NOT_FOUND,\n\tERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND,\n\tERR_CENTRAL_DIRECTORY_NOT_FOUND,\n\tERR_LOCAL_FILE_HEADER_NOT_FOUND,\n\tERR_EXTRAFIELD_ZIP64_NOT_FOUND,\n\tERR_ENCRYPTED,\n\tERR_UNSUPPORTED_ENCRYPTION,\n\tERR_UNSUPPORTED_COMPRESSION,\n\tERR_INVALID_SIGNATURE,\n\tERR_INVALID_PASSWORD,\n\tERR_DUPLICATED_NAME,\n\tERR_INVALID_COMMENT,\n\tERR_INVALID_ENTRY_NAME,\n\tERR_INVALID_ENTRY_COMMENT,\n\tERR_INVALID_VERSION,\n\tERR_INVALID_EXTRAFIELD_TYPE,\n\tERR_INVALID_EXTRAFIELD_DATA,\n\tERR_INVALID_ENCRYPTION_STRENGTH,\n\tERR_UNSUPPORTED_FORMAT,\n\tERR_ABORT\n} from \"./lib/zip-fs.js\";\nexport { getMimeType, terminateWorkers };","'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","'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","// 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\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\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\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\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 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","'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","// 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<parent\n atNewLine = false,\n hasContent = false,\n typeIndex,\n typeQuantity,\n type,\n flowIndent,\n blockIndent;\n\n if (state.listener !== null) {\n state.listener('open', state);\n }\n\n state.tag = null;\n state.anchor = null;\n state.kind = null;\n state.result = null;\n\n allowBlockStyles = allowBlockScalars = allowBlockCollections =\n CONTEXT_BLOCK_OUT === nodeContext ||\n CONTEXT_BLOCK_IN === nodeContext;\n\n if (allowToSeek) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\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 }\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","'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","import type { DataModel } from '@mcschema/core'\nimport { Path } from '@mcschema/core'\nimport * as zip from '@zip.js/zip.js'\nimport type { Random } from 'deepslate/core'\nimport yaml from 'js-yaml'\nimport { route } from 'preact-router'\nimport rfdc from 'rfdc'\nimport config from './Config.js'\n\nexport function isPromise(obj: any): obj is Promise<any> {\n\treturn typeof (obj as any)?.then === 'function' \n}\n\nexport function isObject(obj: any): obj is Record<string, any> {\n\treturn typeof obj === 'object' && obj !== null\n}\n\nfunction decToHex(n: number) {\n\treturn n.toString(16).padStart(2, '0')\n}\n\nexport function hexId(length = 12) {\n\tvar arr = new Uint8Array(length / 2)\n\twindow.crypto.getRandomValues(arr)\n\treturn Array.from(arr, decToHex).join('')\n}\n\nexport function randomSeed() {\n\treturn BigInt(Math.floor(Math.random() * Number.MAX_SAFE_INTEGER))\n}\n\nexport function generateUUID() {\n\treturn 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\n\t\tconst r = Math.random()*16|0\n\t\tconst v = c == 'x' ? r : (r&0x3|0x8)\n\t\treturn v.toString(16)\n\t})\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 (isObject(dimensions)) {\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(['placement', 'salt']), Math.abs(seed), true)\n\tmodel.set(new Path(['generator', 'seed']), seed, true)\n\tmodel.set(new Path(['generator', 'biome_source', 'seed']), seed)\n}\n\nexport function htmlEncode(str: string) {\n\treturn str.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>')\n\t\t.replace(/\"/g, '"').replace(/'/g, ''').replace(/\\//g, '/')\n}\n\nexport function hashString(s: string) {\n\tlet h = 0\n\tfor(let i = 0; i < s.length; i++)\n\t\th = Math.imul(31, h) + s.charCodeAt(i) | 0\n\treturn h\n}\n\nexport function cleanUrl(url: string) {\n\treturn `/${url}/`.replaceAll('//', '/')\n}\n\nexport function getPath(url: string) {\n\tconst searchIndex = url.indexOf('?')\n\tif (searchIndex >= 0) {\n\t\turl = url.slice(0, searchIndex)\n\t}\n\treturn cleanUrl(url)\n}\n\nexport function getGenerator(url: string) {\n\tconst trimmedUrl = getPath(url).replace(/^\\//, '').replace(/\\/$/, '')\n\treturn config.generators.find(g => g.url === trimmedUrl)\n}\n\nexport function changeUrl({ path, search, hash, replace }: { path?: string, search?: string, hash?: string, replace?: boolean }) {\n\tconst url = (path !== undefined ? cleanUrl(path) : location.pathname)\n\t\t+ (search !== undefined ? (search.startsWith('?') || search.length === 0 ? search : '?' + search) : location.search)\n\t\t+ (hash !== undefined ? (hash.startsWith('#') ? hash : '#' + hash) : location.hash)\n\troute(url, replace)\n}\n\nexport function parseFrontMatter(source: string): Record<string, any> {\n\tconst data = yaml.load(source.substring(3, source.indexOf('---', 3)))\n\tif (!isObject(data)) return {}\n\treturn data\n}\n\nexport function versionContent(content: string, version: string) {\n\tlet cursor = 0\n\twhile (true) {\n\t\tconst start = content.indexOf('{#', cursor)\n\t\tif (start < 0) {\n\t\t\tbreak\n\t\t}\n\t\tconst end = findMatchingClose(content, start + 2)\n\t\tconst vStart = content.indexOf('#[', start + 1)\n\t\tlet sub = ''\n\t\tif (vStart >= 0 && vStart < end) {\n\t\t\tconst vEnd = content.indexOf(']', vStart + 2)\n\t\t\tconst v = content.substring(vStart + 2, vEnd)\n\t\t\tif (v === version) {\n\t\t\t\tsub = content.substring(vEnd + 1, end).trim()\n\t\t\t}\n\t\t} else {\n\t\t\tconst key = content.substring(start + 2, end)\n\t\t\tconst versionConfig = config.versions.find(v => v.id === version)\n\t\t\tsub = ({\n\t\t\t\tversion: versionConfig?.id,\n\t\t\t\tpack_format: versionConfig?.pack_format.toString(),\n\t\t\t} as Record<string, string | undefined>)[key] ?? ''\n\t\t}\n\t\tcontent = content.substring(0, start) + sub + content.substring(end + 2)\n\t\tcursor = start\n\t\t\n\t}\n\treturn content\n}\n\nfunction findMatchingClose(source: string, index: number) {\n\tlet depth = 0\n\tlet iteration = 0\n\twhile (iteration++ < 1000) {\n\t\tconst close = source.indexOf('#}', index)\n\t\tconst open = source.indexOf('{#', index)\n\t\tif (close < 0) {\n\t\t\tconsole.warn('Missing closing bracket')\n\t\t\treturn source.length\n\t\t}\n\t\tif (open < 0) {\n\t\t\tif (depth === 0) {\n\t\t\t\treturn close\n\t\t\t} else {\n\t\t\t\tdepth -= 1\n\t\t\t\tindex = close + 2\n\t\t\t}\n\t\t} else if (open < close) {\n\t\t\tdepth += 1\n\t\t\tindex = open + 2\n\t\t} else if (depth === 0) {\n\t\t\treturn close\n\t\t} else {\n\t\t\tdepth -= 1\n\t\t\tindex = close + 2\n\t\t}\n\t}\n\tconsole.warn('Exceeded max iterations while finding closing bracket')\n\treturn source.length\n}\n\nexport type Color = [number, number, number]\n\nexport function stringToColor(str: string): Color {\n\tconst h = Math.abs(hashString(str))\n\treturn [h % 256, (h >> 8) % 256, (h >> 16) % 256]\n}\n\nexport function rgbToHex(color: Color): string {\n\tif (!Array.isArray(color) || color.length !== 3) return '#000000'\n\tconst [r, g, b] = color\n\treturn '#' + decToHex(r) + decToHex(g) + decToHex(b)\n}\n\nexport function hexToRgb(hex: string | undefined): Color {\n\tif (typeof hex !== 'string') return [0, 0, 0]\n\tconst num = parseInt(hex.startsWith('#') ? hex.slice(1) : hex, 16)\n\tconst r = (num >> 16) & 255\n\tconst g = (num >> 8) & 255\n\tconst b = num & 255\n\treturn [r, g, b]\n}\n\nexport function square(a: number) {\n\treturn a * a\n}\n\nexport function clamp(a: number, b: number, c: number) {\n\treturn Math.max(a, Math.min(b, c))\n}\n\nexport function clampedLerp(a: number, b: number, c: number): number {\n\tif (c < 0) {\n\t\treturn a\n\t} else if (c > 1) {\n\t\treturn b\n\t} else {\n\t\treturn lerp(c, a, b)\n\t}\n}\n\nexport function lerp(a: number, b: number, c: number): number {\n\treturn b + a * (c - b)\n}\n\nexport function lerp2(a: number, b: number, c: number, d: number, e: number, f: number): number {\n\treturn lerp(b, lerp(a, c, d), lerp(a, e, f))\n}\n\nexport function lerp3(a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number) {\n\treturn lerp(c, lerp2(a, b, d, e, f, g), lerp2(a, b, h, i, j, k))\n}\n\nexport function smoothstep(x: number): number {\n\treturn x * x * x * (x * (x * 6 - 15) + 10)\n}\n\nexport function message(e: unknown): string {\n\tif (e instanceof Error) return e.message\n\treturn `${e}`\n}\n\nexport const deepClone = rfdc()\n\n/**\n * MIT License\n * \n * Copyright (c) 2017 Evgeny Poberezkin\n * \n * https://github.com/epoberezkin/fast-deep-equal/blob/master/LICENSE\n */\nexport function deepEqual(a: any, b: any) {\n\tif (a === b) return true\n\n\tif (a && b && typeof a == 'object' && typeof b == 'object') {\n\t\tif (a.constructor !== b.constructor) return false\n\t\tlet length, i\n\t\tif (Array.isArray(a)) {\n\t\t\tlength = a.length\n\t\t\tif (length != b.length) return false\n\t\t\tfor (i = 0; i < length; i++) {\n\t\t\t\tif (!deepEqual(a[i], b[i])) return false\n\t\t\t}\n\t\t\treturn true\n\t\t}\n\t\tif (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf()\n\t\tif (a.toString !== Object.prototype.toString) return a.toString() === b.toString()\n\t\tconst keys = Object.keys(a)\n\t\tlength = keys.length\n\t\tif (length !== Object.keys(b).length) return false\n\t\tfor (i = length; i-- !== 0;)\n\t\t\tif (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false\n\t\tfor (i = length; i-- !== 0;) {\n\t\t\tconst key = keys[i]\n\t\t\tif (!deepEqual(a[key], b[key])) return false\n\t\t}\n\t\treturn true\n\t}\n\treturn a !== a && b !== b\n}\n\nexport class BiMap<A, B> {\n\tpublic readonly forward: Map<A, B>\n\tpublic readonly backward: Map<B, A>\n\n\tconstructor() {\n\t\tthis.forward = new Map()\n\t\tthis.backward = new Map()\n\t}\n\n\tpublic set(a: A, b: B) {\n\t\tthis.forward.set(a, b)\n\t\tthis.backward.set(b, a)\n\t}\n\n\tpublic getA(key: B) {\n\t\treturn this.backward.get(key)\n\t}\n\n\tpublic getB(key: A) {\n\t\treturn this.forward.get(key)\n\t}\n\n\tpublic getOrPut(key: A, defaultValue: B) {\n\t\tconst b = this.forward.get(key)\n\t\tif (b === undefined) {\n\t\t\tthis.set(key, defaultValue)\n\t\t\treturn defaultValue\n\t\t}\n\t\treturn b\n\t}\n\n\tpublic computeIfAbsent(key: A, value: () => B) {\n\t\tconst b = this.forward.get(key)\n\t\tif (b === undefined) {\n\t\t\tconst newValue = value()\n\t\t\tthis.set(key, newValue)\n\t\t\treturn newValue\n\t\t}\n\t\treturn b\n\t}\n}\n\nexport async function readZip(file: File | ArrayBuffer, predicate: (name: string) => boolean = () => true): Promise<[string, string][]> {\n\tconst buffer = file instanceof File ? await file.arrayBuffer() : file\n\tconst reader = new zip.ZipReader(new zip.BlobReader(new Blob([buffer])))\n\tconst entries = await reader.getEntries()\n\treturn await Promise.all(entries\n\t\t.filter(e => !e.directory && predicate(e.filename))\n\t\t.map(async e => {\n\t\t\tconst writer = new zip.TextWriter('utf-8')\n\t\t\treturn [e.filename, await e.getData?.(writer)] as [string, string]\n\t\t})\n\t)\n}\n\nexport async function writeZip(entries: [string, string][]): Promise<string> {\n\tconst writer = new zip.ZipWriter(new zip.Data64URIWriter('application/zip'))\n\tawait Promise.all(entries.map(async ([name, data]) => {\n\t\tawait writer.add(name, new zip.TextReader(data))\n\t}))\n\treturn await writer.close()\n}\n\nexport function computeIfAbsent<K, V>(map: Map<K, V>, key: K, getter: (key: K) => V): V {\n\tconst existing = map.get(key)\n\tif (existing) {\n\t\treturn existing\n\t}\n\tconst value = getter(key)\n\tmap.set(key, value)\n\treturn value\n}\n\nexport async function computeIfAbsentAsync<K, V>(map: Map<K, V>, key: K, getter: (key: K) => Promise<V>): Promise<V> {\n\tconst existing = map.get(key)\n\tif (existing) {\n\t\treturn existing\n\t}\n\tconst value = await getter(key)\n\tmap.set(key, value)\n\treturn value\n}\n\nexport function getWeightedRandom<T>(random: Random, entries: T[], getWeight: (entry: T) => number) {\n\tlet totalWeight = 0\n\tfor (const entry of entries) {\n\t\ttotalWeight += getWeight(entry)\n\t}\n\tif (totalWeight <= 0) {\n\t\treturn undefined\n\t}\n\tlet n = random.nextInt(totalWeight)\n\tfor (const entry of entries) {\n\t\tn -= getWeight(entry)\n\t\tif (n < 0) {\n\t\t\treturn entry\n\t\t}\n\t}\n\treturn undefined\n}\n","import { useEffect, useRef } from 'preact/hooks'\nimport { hexId } from '../Utils.js'\nimport { Octicon } from './index.js'\n\ntype BtnInputProps = {\n\ticon?: keyof typeof Octicon,\n\tlabel?: string,\n\tlarge?: boolean,\n\tlarger?: boolean,\n\tdoSelect?: number,\n\tvalue?: string,\n\tplaceholder?: string,\n\tdataList?: string[],\n\tonChange?: (value: string) => unknown,\n}\nexport function BtnInput({ icon, label, large, larger, doSelect, value, placeholder, dataList, onChange }: BtnInputProps) {\n\tconst onInput = onChange === undefined ? () => {} : (e: any) => {\n\t\tconst value = (e.target as HTMLInputElement).value\n\t\tonChange?.(value)\n\t}\n\n\tconst ref = useRef<HTMLInputElement>(null)\n\tuseEffect(() => {\n\t\tif (doSelect && ref.current) {\n\t\t\tref.current.select()\n\t\t}\n\t}, [doSelect])\n\n\tconst dataListId = dataList && hexId()\n\n\treturn <div class={`btn btn-input ${large ? 'large-input' : ''} ${larger ? 'larger-input' : ''}`} onClick={e => e.stopPropagation()}>\n\t\t{icon && Octicon[icon]}\n\t\t{label && <span>{label}</span>}\n\t\t<input ref={ref} type=\"text\" value={value} onChange={onInput} placeholder={placeholder} list={dataListId} />\n\t\t{dataList && <datalist id={dataListId}>\n\t\t\t{dataList.map(e => <option value={e} />)}\n\t\t</datalist>}\n\t</div>\n}\n","import { Octicon } from './index.js'\n\ninterface Props {\n\tlink?: string,\n\ticon?: keyof typeof Octicon,\n\tlabel?: string,\n\ttooltip?: string,\n\ttooltipLoc?: 'se' | 'sw' | 'nw',\n\tswapped?: boolean,\n}\nexport function BtnLink({ link, icon, label, tooltip, tooltipLoc, swapped }: Props) {\n\treturn <a {...link ? { href: link } : { disabled: true }} class={`btn btn-link${tooltip ? ` tooltipped tip-${tooltipLoc ?? 'sw'}` : ''}`} aria-label={tooltip}>\n\t\t{swapped ? <>\n\t\t\t{label && <span>{label}</span>}\n\t\t\t{icon && Octicon[icon]}\n\t\t</> : <>\n\t\t\t{icon && Octicon[icon]}\n\t\t\t{label && <span>{label}</span>}\n\t\t</>}\n\t</a>\n}\n","import { useRef, useState } from 'preact/hooks'\n\ninterface ActiveTimeoutOptions {\n\tcooldown?: number,\n\tinvert?: boolean,\n\tinitial?: boolean,\n}\nexport function useActiveTimeout({ cooldown, invert, initial }: ActiveTimeoutOptions = {}): [boolean | undefined, () => unknown] {\n\tconst [active, setActive] = useState(initial)\n\tconst timeout = useRef<number | undefined>(undefined)\n\n\tconst trigger = () => {\n\t\tsetActive(invert ? false : true)\n\t\tif (timeout.current !== undefined) clearTimeout(timeout.current)\n\t\ttimeout.current = setTimeout(() => {\n\t\t\tsetActive(invert ? true : false)\n\t\t}, cooldown ?? 2000) as any\n\t}\n\n\treturn [active, trigger]\n}\n","import type { Inputs } from 'preact/hooks'\nimport { useEffect } from 'preact/hooks'\nimport type { AsyncCancel, AsyncState } from './index.js'\nimport { useAsyncFn } from './index.js'\n\nexport function useAsync<R>(\n\tfn: () => Promise<R | typeof AsyncCancel>,\n\tinputs: Inputs = [],\n\tinitialState: AsyncState<R> = { loading: true },\n): AsyncState<R> & { refresh: () => Promise<unknown> } {\n\tconst [state, callback] = useAsyncFn<R, () => Promise<R | typeof AsyncCancel>>(fn, inputs, initialState)\n\n\tuseEffect(() => {\n\t\tcallback()\n\t}, [callback])\n\n\treturn {\n\t\t...state,\n\t\trefresh: callback,\n\t}\n}\n","import type { Inputs } from 'preact/hooks'\nimport { useCallback, useEffect, useRef, useState } from 'preact/hooks'\n\n\nexport type AsyncState<T> = {\n\tloading: boolean,\n\terror?: undefined,\n\tvalue?: undefined,\n} | {\n\tloading: true,\n\terror?: Error | undefined,\n\tvalue?: T,\n} | {\n\tloading: false,\n\terror: Error,\n\tvalue?: undefined,\n} | {\n\tloading: false,\n\terror?: undefined,\n\tvalue: T,\n}\n\nexport const AsyncCancel = Symbol('async-cancel')\n\nexport function useAsyncFn<R, T extends (...args: any[]) => Promise<R | typeof AsyncCancel>>(\n\tfn: T,\n\tinputs: Inputs = [],\n\tinitialState: AsyncState<R> = { loading: false },\n): [AsyncState<R>, (...args: Parameters<T>) => Promise<R | typeof AsyncCancel | undefined>] {\n\tconst [state, setState] = useState<AsyncState<R>>(initialState)\n\tconst isMounted = useRef<boolean>(false)\n\tconst lastCallId = useRef(0)\n\n\tuseEffect(() => {\n\t\tisMounted.current = true\n\t\treturn () => isMounted.current = false\n\t}, [])\n\n\tconst callback = useCallback((...args: Parameters<T>): Promise<R | typeof AsyncCancel | undefined> => {\n\t\tconst callId = ++lastCallId.current\n\t\tif (!state.loading) {\n\t\t\tsetState(prev => ({ ...prev, loading: true }))\n\t\t}\n\n\t\treturn fn(...args).then(\n\t\t\tvalue => {\n\t\t\t\tif (isMounted.current && callId === lastCallId.current && value !== AsyncCancel) {\n\t\t\t\t\tsetState({ value, loading: false })\n\t\t\t\t}\n\t\t\t\treturn value\n\t\t\t},\n\t\t\terror => {\n\t\t\t\tif (isMounted.current && callId === lastCallId.current) {\n\t\t\t\t\tsetState({ error, loading: false })\n\t\t\t\t}\n\t\t\t\treturn undefined\n\t\t\t})\n\t}, inputs)\n\n\treturn [state, callback]\n}\n","import type { Inputs } from 'preact/hooks'\nimport { useEffect, useRef } from 'preact/hooks'\n\ntype Vec2 = [number, number]\n\nexport function useCanvas({ size, draw, onDrag, onHover, onLeave }: {\n\tsize: () => Vec2,\n\tdraw: (img: ImageData) => Promise<unknown>,\n\tonDrag?: (dx: number, dy: number) => Promise<unknown>,\n\tonHover?: (x: number, y: number) => unknown,\n\tonLeave?: () => unknown,\n}, inputs?: Inputs) {\n\tconst canvas = useRef<HTMLCanvasElement>(null)\n\n\tconst dragStart = useRef<Vec2 | undefined>()\n\tconst dragRequest = useRef<number>()\n\tconst dragPending = useRef<Vec2>([0, 0])\n\tconst dragBusy = useRef(false)\n\n\tuseEffect(() => {\n\t\tif (!canvas.current) return\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\tif (!canvas.current) return\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\tif (dragRequest.current) {\n\t\t\t\t\t\tcancelAnimationFrame(dragRequest.current)\n\t\t\t\t\t}\n\t\t\t\t\tdragRequest.current = requestAnimationFrame(async () => {\n\t\t\t\t\t\tif (!canvas.current) return\n\t\t\t\t\t\tdragBusy.current = true\n\t\t\t\t\t\tconst dx = dragPending.current[0] / canvas.current.clientWidth\n\t\t\t\t\t\tconst dy = dragPending.current[1] / canvas.current.clientHeight\n\t\t\t\t\t\tdragPending.current = [0, 0]\n\t\t\t\t\t\tawait onDrag?.(dx, dy)\n\t\t\t\t\t\tdragBusy.current = false\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t\tdragStart.current = [e.offsetX, e.offsetY]\n\t\t}\n\t\tconst onMouseUp = () => {\n\t\t\tdragStart.current = undefined\n\t\t}\n\t\tconst onMouseLeave = () => {\n\t\t\tonLeave?.()\n\t\t}\n\n\t\tcanvas.current.addEventListener('mousedown', onMouseDown)\n\t\tcanvas.current.addEventListener('mousemove', onMouseMove)\n\t\tcanvas.current.addEventListener('mouseleave', onMouseLeave)\n\t\tdocument.body.addEventListener('mouseup', onMouseUp)\n\n\t\treturn () => {\n\t\t\tcanvas.current?.removeEventListener('mousedown', onMouseDown)\n\t\t\tcanvas.current?.removeEventListener('mousemove', onMouseMove)\n\t\t\tcanvas.current?.removeEventListener('mouseleave', onMouseLeave)\n\t\t\tdocument.body.removeEventListener('mouseup', onMouseUp)\n\t\t}\n\t}, [...inputs ?? [], canvas.current])\n\n\tconst redraw = useRef<() => Promise<unknown>>()\n\tconst redrawCount = useRef(0)\n\tredraw.current = async () => {\n\t\tif (!canvas.current) return\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\ttry {\n\t\t\tawait draw(img)\n\t\t} catch (e) {\n\t\t\tthrow e\n\t\t}\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 const LOSE_FOCUS = 'misode-lose-focus'\n\nexport function useFocus(): [boolean, (active?: 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\tdocument.body.addEventListener(LOSE_FOCUS, 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\tdocument.body.removeEventListener(LOSE_FOCUS, hider)\n\t\t}\n\t}, [active])\n\n\treturn [active, (active = true) => setActive(active)]\n}\n","import { useCallback, useEffect, useState } from 'preact/hooks'\nimport { changeUrl } from '../Utils.js'\n\nexport function useHash(): [string, (hash: string) => unknown] {\n\tconst [hash, setHash] = useState(window.location.hash)\n\n\tconst onChange = useCallback(() => {\n\t\tsetHash(window.location.hash)\n\t}, [])\n\n\tuseEffect(() => {\n\t\twindow.addEventListener('hashchange', onChange)\n\t\twindow.addEventListener('replacestate', onChange)\n\t\treturn () => {\n\t\t\twindow.removeEventListener('hashchange', onChange)\n\t\t\twindow.removeEventListener('replacestate', onChange)\n\t\t}\n\t}, [])\n\n\tconst changeHash = useCallback((newHash: string) => {\n\t\tif (newHash !== hash) {\n\t\t\tchangeUrl({ hash: newHash })\n\t\t}\n\t}, [hash])\n\n\treturn [hash, changeHash]\n}\n","import { useCallback, useState } from 'preact/hooks'\n\ntype Result<T> = [T, (value: T | null | undefined) => void]\n\nexport function useLocalStorage(key: string, defaultValue: string): Result<string>\nexport function useLocalStorage<T>(key: string, defaultValue: T, parse: (s: string) => T, stringify: (e: T) => string): Result<T>\nexport function useLocalStorage<T>(key: string, defaultValue: T, parse?: (s: string) => T, stringify?: (e: T) => string): Result<T> {\n\tconst getter = useCallback(() => {\n\t\tconst raw = localStorage.getItem(key)\n\t\tif (raw === null) {\n\t\t\treturn defaultValue\n\t\t} else if (parse === undefined) {\n\t\t\treturn raw as unknown as T\n\t\t} else {\n\t\t\treturn parse(raw)\n\t\t}\n\t}, [])\n\n\tconst [state, setState] = useState(getter())\n\n\tconst setter = useCallback((value: T | null | undefined) => {\n\t\tif (value == null) {\n\t\t\tlocalStorage.removeItem(key)\n\t\t\tsetState(defaultValue)\n\t\t} else if (stringify !== undefined) {\n\t\t\tlocalStorage.setItem(key, stringify(value))\n\t\t\tsetState(value)\n\t\t} else {\n\t\t\tlocalStorage.setItem(key, value as unknown as string)\n\t\t\tsetState(value)\n\t\t}\n\t}, [])\n\n\treturn [state, setter]\n}\n","import { useEffect, useState } from 'preact/hooks'\n\nexport function useMediaQuery(query: string): boolean {\n\tconst [prefers, setPrefers] = useState(matchMedia(query).matches)\n\n\tconst onChange = (e: MediaQueryListEvent) => {\n\t\tsetPrefers(e.matches)\n\t}\n\n\tuseEffect(() => {\n\t\tconst mediaQuery = matchMedia(query)\n\t\tmediaQuery.addEventListener('change', onChange)\n\t\treturn () => {\n\t\t\tmediaQuery.removeEventListener('change', onChange)\n\t\t}\n\t}, [query])\n\n\treturn prefers\n}\n","import type { DataModel } from '@mcschema/core'\nimport type { Inputs } from 'preact/hooks'\nimport { useEffect } from 'preact/hooks'\n\nexport function useModel(model: DataModel | undefined | null, invalidated: (model: DataModel) => unknown, inputs?: Inputs) {\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, ...inputs ?? []])\n}\n","import { useCallback, useEffect, useState } from 'preact/hooks'\nimport { changeUrl } from '../Utils.js'\n\nconst getValue = (search: string, param: string) => new URLSearchParams(search).get(param) ?? undefined\n\nexport function useSearchParam(param: string): [string | undefined, (value: string | undefined, replace?: boolean) => unknown] {\n\tconst location = window.location\n\tconst [value, setValue] = useState<string | undefined>(getValue(location.search, param))\n\n\tuseEffect(() => {\n\t\tconst onChange = () => {\n\t\t\tsetValue(getValue(location.search, param))\n\t\t}\n\n\t\twindow.addEventListener('popstate', onChange)\n\t\twindow.addEventListener('pushstate', onChange)\n\t\twindow.addEventListener('replacestate', onChange)\n\n\t\treturn () => {\n\t\t\twindow.removeEventListener('popstate', onChange)\n\t\t\twindow.removeEventListener('pushstate', onChange)\n\t\t\twindow.removeEventListener('replacestate', onChange)\n\t\t}\n\t}, [])\n\n\tconst changeValue = useCallback((newValue: string | undefined, replace?: boolean) => {\n\t\tif (newValue !== value) {\n\t\t\tsetValue(newValue)\n\t\t\tconst params = new URLSearchParams(location.search)\n\t\t\tif (newValue === undefined || newValue.length === 0) {\n\t\t\t\tparams.delete(param)\n\t\t\t} else {\n\t\t\t\tparams.set(param, newValue)\n\t\t\t}\n\t\t\tchangeUrl({ search: params.toString().replaceAll('%7C', '|'), replace })\n\t\t}\n\t}, [value])\n\n\treturn [value, changeValue]\n};\n","import { useMemo } from 'preact/hooks'\nimport { useSearchParam } from './index.js'\n\nconst TAG_KEY = 'tags'\nconst TAG_SEP = '|'\n\nexport function useTags(): [string[], (tag: string, force?: boolean) => void] {\n\tconst [tags, setTags] = useSearchParam(TAG_KEY)\n\tconst activeTags = useMemo(() => tags?.split(TAG_SEP) ?? [], [tags])\n\n\tconst toggleTag = (tag: string, force?: boolean) => {\n\t\tif (force === false || (activeTags.includes(tag) && force !== true)) {\n\t\t\tsetTags(activeTags.filter(t => t !== tag).join(TAG_SEP), true)\n\t\t} else {\n\t\t\tsetTags([...activeTags, tag].sort().join(TAG_SEP), true)\n\t\t}\n\t}\n\n\treturn [activeTags, toggleTag]\n}\n","import type { ComponentChildren } from 'preact'\nimport { useFocus } from '../hooks/index.js'\nimport type { Octicon } from './index.js'\nimport { Btn } from './index.js'\n\ninterface BtnMenuProps extends JSX.HTMLAttributes<HTMLDivElement> {\n\ticon?: keyof typeof Octicon,\n\tlabel?: string,\n\trelative?: boolean,\n\ttooltip?: string,\n\ttooltipLoc?: 'se' | 'sw' | 'nw',\n\tchildren: ComponentChildren,\n}\nexport function BtnMenu(props: BtnMenuProps) {\n\tconst { icon, label, relative, tooltip, tooltipLoc, children } = props\n\tconst [active, setActive] = useFocus()\n\n\treturn <div {...props} class={`btn-menu${relative === false ? ' no-relative' : ''} ${props.class}`}>\n\t\t<Btn {...{icon, label, tooltip, tooltipLoc}} onClick={() => setActive()} />\n\t\t{active && <div class=\"btn-group\">\n\t\t\t{children}\n\t\t</div>}\n\t</div>\n}\n","import type { ComponentChildren } from 'preact'\n\ninterface Props {\n\ttitle?: ComponentChildren,\n\tlink?: string,\n\toverlay?: ComponentChildren,\n\tchildren?: ComponentChildren,\n}\nexport function Card({ title, overlay, link, children }: Props) {\n\tconst content = <>\n\t\t{overlay && <span class=\"card-overlay\">{overlay}</span>}\n\t\t<div class=\"card-content\">\n\t\t\t{title && <h3 class=\"card-title\">{title}</h3>}\n\t\t\t{children}\n\t\t</div>\n\t</>\n\n\treturn link === undefined\n\t\t?\t<div class=\"card\">{content}</div>\n\t\t: <a class=\"card\" href={link} >{content}</a>\n}\n","const scriptRel = 'modulepreload';const seen = {};const base = '/';export const __vitePreload = function preload(baseModule, deps) {\n // @ts-ignore\n if (!__VITE_IS_MODERN__ || !deps || deps.length === 0) {\n return baseModule();\n }\n return Promise.all(deps.map((dep) => {\n // @ts-ignore\n dep = `${base}${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(new Error(`Unable to preload CSS for ${dep}`)));\n });\n }\n })).then(() => baseModule());\n}","import { useEffect, useMemo, useState } from 'preact/hooks'\nimport { Octicon } from './index.js'\n\ntype ErrorPanelProps = {\n\terror: string | Error,\n\tonDismiss?: () => unknown,\n}\nexport function ErrorPanel({ error, onDismiss }: ErrorPanelProps) {\n\tconst [stackVisible, setStackVisible] = useState(false)\n\tconst [stack, setStack] = useState<string | undefined>(undefined)\n\n\tuseEffect(() => {\n\t\tif (error instanceof Error) {\n\t\t\tconst stack = error.stack!.split('\\n').map(line => {\n\t\t\t\treturn line.replace(/^(\\s+)at (?:async )?(https?:.*)/, '$1at ($2)')\n\t\t\t})\n\t\t\tsetStack(stack.join('\\n'))\n\t\t\timport('sourcemapped-stacktrace').then(({ mapStackTrace }) => {\n\t\t\t\tmapStackTrace(stack.join('\\n'), (mapped) => {\n\t\t\t\t\tconst mappedStack = mapped.map(line => {\n\t\t\t\t\t\treturn line.replace(/..\\/..\\/src\\//, 'src/')\n\t\t\t\t\t}).join('\\n')\n\t\t\t\t\tsetStack(mappedStack)\n\t\t\t\t})\n\t\t\t})\n\t\t}\n\t}, [error])\n\n\tconst url = useMemo(() => {\n\t\tlet url ='https://github.com/misode/misode.github.io/issues/new'\n\t\tif (error instanceof Error) {\n\t\t\turl += `?title=${encodeURIComponent(`${error.name}: ${error.message}`)}`\n\t\t\tif (stack) {\n\t\t\t\turl += `&body=${encodeURIComponent(`\\`\\`\\`\\n${error.name}: ${error.message}\\n${stack}\\n\\`\\`\\`\\n`)}`\n\t\t\t}\n\t\t} else {\n\t\t\turl += `?title=${encodeURIComponent(error.toString())}`\n\t\t}\n\t\treturn url\n\t}, [error, stack])\n\n\treturn <div class=\"error\">\n\t\t{onDismiss && <div class=\"error-dismiss\" onClick={onDismiss}>{Octicon.x}</div>}\n\t\t<h3>\n\t\t\t{error instanceof Error ? error.message : error}\n\t\t\t{stack && <span onClick={() => setStackVisible(!stackVisible)}>\n\t\t\t\t{Octicon.info}\n\t\t\t</span>}\n\t\t</h3>\n\t\t{stack && stackVisible && <pre>{stack}</pre>}\n\t\t<p>If you think this is a bug, you can report it <a href={url} target=\"_blank\">on GitHub</a></p>\n\t</div>\n}\n","const ARTICLE_PREFIX = 'https://www.minecraft.net/article/'\n\nconst ARTICLE_OVERRIDES = new Map(Object.entries({\n\t'1.16-pre2': 'minecraft-1-16-pre-release-1',\n\t'1.16-pre4': 'minecraft-1-16-pre-release-3',\n\t'1.16-pre5': 'minecraft-1-16-pre-release-3',\n\t'1.16-pre7': 'minecraft-1-16-pre-release-6',\n\t'1.16-pre8': 'minecraft-1-16-pre-release-6',\n\t'1.16-rc1': 'minecraft-1-16-release-candidate',\n\t1.16: 'nether-update-java',\n\t'1.16.2-pre3': 'minecraft-1-16-2-pre-release-2',\n\t'1.16.2-rc1': 'minecraft-1-16-2-pre-release-2',\n\t'1.16.2-rc2': 'minecraft-1-16-2-pre-release-2',\n\t'1.17-pre3': 'minecraft-1-17-pre-release-2',\n\t'1.17-pre4': 'minecraft-1-17-pre-release-2',\n\t'1.17-pre5': 'minecraft-1-17-pre-release-2',\n\t'1.17.1-pre3': 'minecraft-1-17-1-pre-release-2',\n\t1.17: 'caves---cliffs--part-i-out-today-java',\n\t'1.18-pre3': 'minecraft-1-18-pre-release-2',\n\t'1.18-pre4': 'minecraft-1-18-pre-release-2',\n\t'1.18-pre5': 'minecraft-1-18-pre-release-2',\n\t'1.18-pre7': 'minecraft-1-18-pre-release-6',\n\t'1.18-pre8': 'minecraft-1-18-pre-release-6',\n\t1.18: 'caves---cliffs--part-ii-out-today-java',\n\t'1.18.2-pre3': 'minecraft-1-18-2-pre-release-2',\n\t'1.18.2-pre5': 'minecraft-1-18-2-pre-release-4',\n\t'1.19-pre3': 'minecraft-1-19-pre-release-2',\n\t'1.19-pre5': 'minecraft-1-19-pre-release-4',\n\t1.19: 'the-wild-update-out-today-java',\n\t'1.19.1-pre4': 'minecraft-1-19-1-pre-release-3',\n}))\n\nexport function getArticleLink(version: string): string | undefined {\n\tconst override = ARTICLE_OVERRIDES.get(version)\n\tif (override) {\n\t\treturn ARTICLE_PREFIX + override\n\t}\n\tlet match\n\tif ((match = version.match(/^(\\d\\dw\\d\\d)[a-z]$/)) && match[1]) {\n\t\treturn ARTICLE_PREFIX + 'minecraft-snapshot-' + match[1] + 'a'\n\t}\n\tif ((match = version.match(/^(\\d+\\.\\d+(?:\\.\\d+)?)-pre([0-9]+)$/)) && match[1] && match[2]) {\n\t\treturn ARTICLE_PREFIX + 'minecraft-' + match[1].replaceAll('.', '-') + '-pre-release-' + match[2]\n\t}\n\tif ((match = version.match(/^(\\d+\\.\\d+(?:\\.\\d+)?)-rc[0-9]+$/)) && match[1]) {\n\t\treturn ARTICLE_PREFIX + 'minecraft-' + match[1].replaceAll('.', '-') + '-release-candidate-1' \n\t}\n\tif (version.match(/^\\d+\\.\\d+\\.\\d+$/)) {\n\t\treturn ARTICLE_PREFIX + 'minecraft-java-edition-' + version.replaceAll('.', '-')\n\t}\n\treturn undefined\n}\n","import type { CollectionRegistry } from '@mcschema/core'\nimport config from '../Config.js'\nimport { message } from '../Utils.js'\nimport type { BlockStateRegistry, VersionId } from './Schemas.js'\n\nconst CACHE_NAME = 'misode-v2'\nconst CACHE_LATEST_VERSION = 'cached_latest_version'\nconst CACHE_PATCH = 'misode_cache_patch'\n\ntype Version = {\n\tid: string,\n\tref?: string,\n\tdynamic?: boolean,\n}\n\ndeclare var __LATEST_VERSION__: string\nconst latestVersion = __LATEST_VERSION__ ?? ''\nconst mcmetaUrl = 'https://raw.githubusercontent.com/misode/mcmeta'\nconst mcmetaTarballUrl = 'https://github.com/misode/mcmeta/tarball'\nconst changesUrl = 'https://raw.githubusercontent.com/misode/technical-changes'\n\ntype McmetaTypes = 'summary' | 'data' | 'data-json' | 'assets' | 'assets-json' | 'registries' | 'atlas'\n\ninterface RefInfo {\n\tdynamic?: boolean\n\tref?: string\n}\n\nfunction mcmeta(version: RefInfo, type: McmetaTypes, tarball?: boolean) {\n\treturn `${tarball ? mcmetaTarballUrl : mcmetaUrl}/${version.dynamic ? type : `${version.ref}-${type}`}`\n}\n\nasync function validateCache(version: RefInfo) {\n\tawait applyPatches()\n\tif (version.dynamic) {\n\t\tif (localStorage.getItem(CACHE_LATEST_VERSION) !== latestVersion) {\n\t\t\tawait deleteMatching(url => url.startsWith(`${mcmetaUrl}/summary/`) || url.startsWith(`${mcmetaUrl}/data/`) || url.startsWith(`${mcmetaUrl}/assets/`) || url.startsWith(`${mcmetaUrl}/registries/`) || url.startsWith(`${mcmetaUrl}/atlas/`) || url.startsWith(`${mcmetaTarballUrl}/assets-json/`))\n\t\t\tlocalStorage.setItem(CACHE_LATEST_VERSION, latestVersion)\n\t\t}\n\t\tversion.ref = latestVersion\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\n\tawait validateCache(version)\n\n\tawait Promise.all([\n\t\tfetchRegistries(version, collectionTarget),\n\t\tfetchBlockStateMap(version, blockStateTarget),\n\t])\n}\n\nasync function fetchRegistries(version: Version, target: CollectionRegistry) {\n\tconsole.debug(`[fetchRegistries] ${version.id}`)\n\ttry {\n\t\tconst data = await cachedFetch<any>(`${mcmeta(version, 'summary')}/registries/data.min.json`)\n\t\tfor (const id in data) {\n\t\t\ttarget.register(id, data[id].map((e: string) => 'minecraft:' + e))\n\t\t}\n\t} catch (e) {\n\t\tconsole.warn('Error occurred while fetching registries:', message(e))\n\t}\n}\n\nasync function fetchBlockStateMap(version: Version, target: BlockStateRegistry) {\n\tconsole.debug(`[fetchBlockStateMap] ${version.id}`)\n\ttry {\n\t\tconst data = await cachedFetch<any>(`${mcmeta(version, 'summary')}/blocks/data.min.json`)\n\t\tfor (const id in data) {\n\t\t\ttarget['minecraft:' + id] = {\n\t\t\t\tproperties: data[id][0],\n\t\t\t\tdefault: data[id][1],\n\t\t\t}\n\t\t}\n\t} catch (e) {\n\t\tconsole.warn('Error occurred while fetching block state map:', message(e))\n\t}\n}\n\nexport async function fetchPreset(versionId: VersionId, registry: string, id: string) {\n\tconsole.debug(`[fetchPreset] ${versionId} ${registry} ${id}`)\n\tconst version = config.versions.find(v => v.id === versionId)!\n\ttry {\n\t\tlet url\n\t\tif (id.startsWith('immersive_weathering:')) {\n\t\t\turl = `https://raw.githubusercontent.com/AstralOrdana/Immersive-Weathering/main/src/main/resources/data/immersive_weathering/block_growths/${id.slice(21)}.json`\n\t\t} else {\n\t\t\tconst type = ['blockstates', 'models', 'font'].includes(registry) ? 'assets' : 'data'\n\t\t\turl = `${mcmeta(version, type)}/${type}/minecraft/${registry}/${id}.json`\n\t\t}\n\t\tconst res = await fetch(url)\n\t\treturn await res.json()\n\t} catch (e) {\n\t\tthrow new Error(`Error occurred while fetching ${registry} preset ${id}: ${message(e)}`)\n\t}\n}\n\nexport async function fetchAllPresets(versionId: VersionId, registry: string) {\n\tconsole.debug(`[fetchAllPresets] ${versionId} ${registry}`)\n\tconst version = config.versions.find(v => v.id === versionId)!\n\tawait validateCache(version)\n\ttry {\n\t\tconst type = ['block_definition', 'model', 'font'].includes(registry) ? 'assets' : 'data'\n\t\treturn new Map<string, unknown>(Object.entries(await cachedFetch(`${mcmeta(version, 'summary')}/${type}/${registry}/data.min.json`)))\n\t} catch (e) {\n\t\tthrow new Error(`Error occurred while fetching all ${registry} presets: ${message(e)}`)\n\t}\n}\n\nexport type SoundEvents = {\n\t[key: string]: {\n\t\tsounds: (string | { name: string })[],\n\t},\n}\nexport async function fetchSounds(versionId: VersionId): Promise<SoundEvents> {\n\tconst version = config.versions.find(v => v.id === versionId)!\n\tawait validateCache(version)\n\ttry {\n\t\tconst url = `${mcmeta(version, 'summary')}/sounds/data.min.json`\n\t\treturn await cachedFetch(url)\n\t} catch (e) {\n\t\tthrow new Error(`Error occurred while fetching sounds for ${version}: ${message(e)}`)\n\t}\n}\n\nexport function getSoundUrl(versionId: VersionId, path: string) {\n\tconst version = config.versions.find(v => v.id === versionId)!\n\treturn `${mcmeta(version, 'assets')}/assets/minecraft/sounds/${path}.ogg`\n}\n\nexport type VersionMeta = {\n\tid: string,\n\tname: string,\n\trelease_target: string,\n\ttype: 'snapshot' | 'release',\n\tstable: boolean,\n\tdata_version: number,\n\tprotocol_version: number,\n\tdata_pack_version: number,\n\tresource_pack_version: number,\n\tbuild_time: string,\n\trelease_time: string,\n\tsha1: string,\n}\nexport async function fetchVersions(): Promise<VersionMeta[]> {\n\tawait validateCache({ dynamic: true })\n\ttry {\n\t\treturn cachedFetch(`${mcmeta({ dynamic: true }, 'summary')}/versions/data.min.json`, { refresh: true })\n\t} catch (e) {\n\t\tthrow new Error(`Error occured while fetching versions: ${message(e)}`)\n\t}\n}\n\nexport function getAssetUrl(versionId: VersionId, type: string, path: string): string {\n\tconst version = config.versions.find(v => v.id === versionId)!\n\treturn `${mcmeta(version, 'assets')}/assets/minecraft/${type}/${path}.png`\n}\n\nexport async function fetchResources(versionId: VersionId) {\n\tconst version = config.versions.find(v => v.id === versionId)!\n\tawait validateCache(version)\n\ttry {\n\t\tconst [models, uvMapping, atlas] = await Promise.all([\n\t\t\tfetchAllPresets(versionId, 'model'),\n\t\t\tcachedFetch(`${mcmeta(version, 'atlas')}/all/data.min.json`),\n\t\t\tloadImage(`${mcmeta(version, 'atlas')}/all/atlas.png`),\n\t\t])\n\t\treturn { models, uvMapping, atlas }\n\t} catch (e) {\n\t\tthrow new Error(`Error occured while fetching resources: ${message(e)}`)\n\t}\n}\n\nasync function loadImage(src: string) {\n\treturn new Promise<HTMLImageElement>(res => {\n\t\tconst image = new Image()\n\t\timage.onload = () => res(image)\n\t\timage.crossOrigin = 'Anonymous'\n\t\timage.src = src\n\t})\n}\n\n/*\nasync function loadImage(src: string) {\n\tconst buffer = await cachedFetch(src, { decode: r => r.arrayBuffer() })\n\tconst blob = new Blob([buffer], { type: 'image/png' })\n\tconst img = new Image()\n\timg.src = URL.createObjectURL(blob)\n\treturn new Promise<ImageData>((res) => {\n\t\timg.onload = () => {\n\t\t\tconst canvas = document.createElement('canvas')\n\t\t\tconst ctx = canvas.getContext('2d')!\n\t\t\tctx.drawImage(img, 0, 0)\n\t\t\tconst imgData = ctx.getImageData(0, 0, img.width, img.height)\n\t\t\tres(imgData)\n\t\t}\n\t})\n}\n*/\n\nexport async function fetchLanguage(versionId: VersionId, lang: string = 'en_us') {\n\tconst version = config.versions.find(v => v.id === versionId)!\n\tawait validateCache(version)\n\ttry {\n\t\treturn await cachedFetch<Record<string, string>>(`${mcmeta(version, 'assets')}/assets/minecraft/lang/${lang}.json`)\n\t} catch (e) {\n\t\tthrow new Error(`Error occured while fetching language: ${message(e)}`)\n\t}\n}\n\nexport interface Change {\n\tgroup: string,\n\tversion: string,\n\torder: number,\n\ttags: string[],\n\tcontent: string,\n}\n\nexport async function fetchChangelogs(): Promise<Change[]> {\n\ttry {\n\t\tconst [changes, versions] = await Promise.all([\n\t\t\tcachedFetch<Omit<Change, 'order'>[]>(`${changesUrl}/generated/changes.json`, { refresh: true }),\n\t\t\tfetchVersions(),\n\t\t])\n\t\tconst versionMap = new Map(versions.map((v, i) => [v.id, versions.length - i]))\n\t\treturn changes.map(c => ({ ...c, order: versionMap.get(c.version) ?? 0 }))\n\t} catch (e) {\n\t\tthrow new Error(`Error occured while fetching technical changes: ${message(e)}`)\n\t}\n}\n\ninterface FetchOptions<D> {\n\tdecode?: (r: Response) => Promise<D>\n\trefresh?: boolean\n}\n\nconst REFRESHED = new Set<string>()\n\nasync function cachedFetch<D = unknown>(url: string, { decode = (r => r.json()), refresh }: FetchOptions<D> = {}): Promise<D> {\n\ttry {\n\t\tconst cache = await caches.open(CACHE_NAME)\n\t\tconsole.debug(`[cachedFetch] Opened cache ${CACHE_NAME} ${url}`)\n\t\tconst cacheResponse = await cache.match(url)\n\n\t\tif (refresh) {\n\t\t\tif (REFRESHED.has(url)) {\n\t\t\t\trefresh = false\n\t\t\t} else {\n\t\t\t\tREFRESHED.add(url)\n\t\t\t}\n\t\t}\n\n\t\tif (refresh) {\n\t\t\ttry {\n\t\t\t\treturn await fetchAndCache(cache, url, decode)\n\t\t\t} catch (e) {\n\t\t\t\tif (cacheResponse && cacheResponse.ok) {\n\t\t\t\t\tconsole.debug(`[cachedFetch] Cannot refresh, using cache ${url}`)\n\t\t\t\t\treturn await decode(cacheResponse)\n\t\t\t\t}\n\t\t\t\tthrow new Error('Failed to fetch')\n\t\t\t}\n\t\t} else {\n\t\t\tif (cacheResponse && cacheResponse.ok) {\n\t\t\t\tconsole.debug(`[cachedFetch] Retrieving cached data ${url}`)\n\t\t\t\treturn await decode(cacheResponse)\n\t\t\t}\n\t\t\treturn await fetchAndCache(cache, url, decode)\n\t\t}\n\t} catch (e: any) {\n\t\tconsole.warn(`[cachedFetch] Failed to open cache ${CACHE_NAME}: ${e.message}`)\n\n\t\tconsole.debug(`[cachedFetch] Fetching data ${url}`)\n\t\tconst fetchResponse = await fetch(url)\n\t\tconst fetchData = await decode(fetchResponse)\n\t\treturn fetchData\n\t}\n}\n\nasync function fetchAndCache<D>(cache: Cache, url: string, decode: (r: Response) => Promise<D>) {\n\tconsole.debug(`[cachedFetch] Fetching data ${url}`)\n\tconst fetchResponse = await fetch(url)\n\tconst fetchClone = fetchResponse.clone()\n\tconst fetchData = await decode(fetchResponse)\n\tawait cache.put(url, fetchClone)\n\treturn fetchData\n}\n\nasync function deleteMatching(matches: (url: string) => boolean) {\n\ttry {\n\t\tconst cache = await caches.open(CACHE_NAME)\n\t\tconsole.debug(`[deleteMatching] Opened cache ${CACHE_NAME}`)\n\t\tconst promises: Promise<boolean>[] = []\n \n\t\tfor (const request of await cache.keys()) {\n\t\t\tif (matches(request.url)) {\n\t\t\t\tpromises.push(cache.delete(request))\n\t\t\t}\n\t\t}\n\t\tconsole.debug(`[deleteMatching] Removing ${promises.length} cache objects...`)\n\t\tawait Promise.all(promises)\n\t} catch (e) {\n\t\tconsole.warn(`[deleteMatching] Failed to open cache ${CACHE_NAME}: ${message(e)}`)\n\t}\n}\n\nconst PATCHES: (() => Promise<void>)[] = [\n\tasync () => {\n\t\t['1.15', '1.16', '1.17'].forEach(v => localStorage.removeItem(`cache_${v}`));\n\t\t['mcdata_master', 'vanilla_datapack_summary'].forEach(v => localStorage.removeItem(`cached_${v}`))\n\t\tcaches.delete('misode-v1')\n\t},\n\tasync () => {\n\t\tawait deleteMatching(url => url.startsWith(`${mcmetaUrl}/1.18.2-summary/`))\n\t},\n]\n\nasync function applyPatches() {\n\tconst start = parseInt(localStorage.getItem(CACHE_PATCH) ?? '0')\n\tfor (let i = start + 1; i <= PATCHES.length; i +=1) {\n\t\tconst patch = PATCHES[i - 1]\n\t\tif (patch) {\n\t\t\tawait patch()\n\t\t}\n\t\tlocalStorage.setItem(CACHE_PATCH, i.toFixed())\n\t}\n}\n","import type { CollectionRegistry, ResourceType, SchemaRegistry } from '@mcschema/core'\nimport { BooleanNode, Case, ChoiceNode, ListNode, MapNode, NumberNode, ObjectNode, Opt, Reference as RawReference, StringNode as RawStringNode, Switch } from '@mcschema/core'\n\nconst ID = 'immersive_weathering'\n\nexport function initImmersiveWeathering(schemas: SchemaRegistry, collections: CollectionRegistry) {\n\tconst Reference = RawReference.bind(undefined, schemas)\n\tconst StringNode = RawStringNode.bind(undefined, collections)\n\n\tconst Tag = (id: Exclude<ResourceType, `$tag/${string}`>) => ChoiceNode([\n\t\t{\n\t\t\ttype: 'string',\n\t\t\tnode: StringNode({ validator: 'resource', params: { pool: id, allowTag: true } }),\n\t\t\tchange: (v: unknown) => {\n\t\t\t\tif (Array.isArray(v) && typeof v[0] === 'string' && !v[0].startsWith('#')) {\n\t\t\t\t\treturn v[0]\n\t\t\t\t}\n\t\t\t\treturn undefined\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'list',\n\t\t\tnode: ListNode(\n\t\t\t\tStringNode({ validator: 'resource', params: { pool: id } })\n\t\t\t),\n\t\t\tchange: (v: unknown) => {\n\t\t\t\tif (typeof v === 'string' && !v.startsWith('#')) {\n\t\t\t\t\treturn [v]\n\t\t\t\t}\n\t\t\t\treturn []\n\t\t\t},\n\t\t},\n\t], { choiceContext: 'tag' })\n\n\tschemas.register(`${ID}:block_growth`, ObjectNode({\n\t\tarea_condition: Reference(`${ID}:area_condition`),\n\t\tposition_predicates: Opt(ListNode(\n\t\t\tReference(`${ID}:position_test`)\n\t\t)),\n\t\tgrowth_chance: NumberNode({ min: 0, max: 1 }),\n\t\tgrowth_for_face: ListNode(\n\t\t\tObjectNode({\n\t\t\t\tdirection: Opt(StringNode({ enum: 'direction' })),\n\t\t\t\tweight: Opt(NumberNode({ integer: true })),\n\t\t\t\tgrowth: ListNode(\n\t\t\t\t\tObjectNode({\n\t\t\t\t\t\tdata: Reference(`${ID}:block_pair`),\n\t\t\t\t\t\tweight: NumberNode({ integer: true }),\n\t\t\t\t\t})\n\t\t\t\t),\n\t\t\t}, { category: 'pool' })\n\t\t),\n\t\towners: ListNode(\n\t\t\tStringNode({ validator: 'resource', params: { pool: 'block' } })\n\t\t),\n\t\treplacing_target: Reference(`${ID}:rule_test`),\n\t\ttarget_self: Opt(BooleanNode()),\n\t\tdestroy_target: Opt(BooleanNode()),\n\t}, { context: `${ID}.block_growth` }))\n\n\tschemas.register(`${ID}:area_condition`, ObjectNode({\n\t\ttype: StringNode({ enum: ['generate_if_not_too_many', 'neighbor_based_generation'] }),\n\t\t[Switch]: [{ push: 'type' }],\n\t\t[Case]: {\n\t\t\tgenerate_if_not_too_many: {\n\t\t\t\tradiusX: NumberNode({ integer: true }),\n\t\t\t\tradiusY: NumberNode({ integer: true }),\n\t\t\t\tradiusZ: NumberNode({ integer: true }),\n\t\t\t\trequiredAmount: NumberNode({ integer: true }),\n\t\t\t\tyOffset: Opt(NumberNode({ integer: true })),\n\t\t\t\tmust_have: Opt(Reference(`${ID}:rule_test`)),\n\t\t\t\tmust_not_have: Opt(Reference(`${ID}:rule_test`)),\n\t\t\t\tincludes: Opt(Tag('block')),\n\t\t\t},\n\t\t\tneighbor_based_generation: {\n\t\t\t\tmust_have: Reference(`${ID}:rule_test`),\n\t\t\t\tmust_not_have: Opt(Reference(`${ID}:rule_test`)),\n\t\t\t\trequired_amount: Opt(NumberNode({ integer: true })),\n\t\t\t\tdirections: ListNode(\n\t\t\t\t\tStringNode({ enum: 'direction' })\n\t\t\t\t),\n\t\t\t},\n\t\t},\n\t}, { context: `${ID}.area_condition` }))\n\n\tschemas.register(`${ID}:block_pair`, ObjectNode({\n\t\tblock: Reference(`${ID}:block_state`),\n\t\tabove_block: Opt(Reference(`${ID}:block_state`)),\n\t}, { context: `${ID}.block_pair` }))\n\n\tschemas.register(`${ID}:block_state`, ObjectNode({\n\t\tName: StringNode({ validator: 'resource', params: { pool: 'block' } }),\n\t\tProperties: Opt(MapNode(\n\t\t\tStringNode(),\n\t\t\tStringNode(),\n\t\t)),\n\t}, { context: 'block_state' }))\n\n\tschemas.register(`${ID}:position_test`, ObjectNode({\n\t\tpredicate_type: StringNode({ enum: ['biome_match', 'day_test', 'nand', 'precipitation_test', 'temperature_range'] }),\n\t\t[Switch]: [{ push: 'predicate_type' }],\n\t\t[Case]: {\n\t\t\tbiome_match: {\n\t\t\t\tbiomes: Tag('$worldgen/biome'),\n\t\t\t},\n\t\t\tday_test: {\n\t\t\t\tday: BooleanNode(),\n\t\t\t},\n\t\t\tnand: {\n\t\t\t\tpredicates: ListNode(\n\t\t\t\t\tReference(`${ID}:position_test`)\n\t\t\t\t),\n\t\t\t},\n\t\t\tprecipitation_test: {\n\t\t\t\tprecipitation: StringNode({ enum: ['none', 'rain', 'snow']}),\n\t\t\t},\n\t\t\ttemperature_range: {\n\t\t\t\tmin: NumberNode(),\n\t\t\t\tmax: NumberNode(),\n\t\t\t\tuse_local_pos: Opt(BooleanNode()),\n\t\t\t},\n\t\t},\n\t}, { context: `${ID}.position_test`, category: 'predicate' }))\n\n\tcollections.register(`${ID}:rule_test`, [\n\t\t...collections.get('rule_test'),\n\t\t'immersive_weathering:block_set_match',\n\t\t'immersive_weathering:fluid_match',\n\t\t'immersive_weathering:tree_log',\n\t])\n\n\tschemas.register(`${ID}:rule_test`, ObjectNode({\n\t\tpredicate_type: StringNode({ validator: 'resource', params: { pool: `${ID}:rule_test` as any } }),\n\t\t[Switch]: [{ push: 'predicate_type' }],\n\t\t[Case]: {\n\t\t\t'minecraft:block_match': {\n\t\t\t\tblock: StringNode({ validator: 'resource', params: { pool: 'block' } }),\n\t\t\t},\n\t\t\t'minecraft:blockstate_match': {\n\t\t\t\tblock_state: Reference('block_state'),\n\t\t\t},\n\t\t\t'minecraft:random_block_match': {\n\t\t\t\tblock: StringNode({ validator: 'resource', params: { pool: 'block' } }),\n\t\t\t\tprobability: NumberNode({ min: 0, max: 1 }),\n\t\t\t},\n\t\t\t'minecraft:random_blockstate_match': {\n\t\t\t\tblock_state: Reference('block_state'),\n\t\t\t\tprobability: NumberNode({ min: 0, max: 1 }),\n\t\t\t},\n\t\t\t'minecraft:tag_match': {\n\t\t\t\ttag: StringNode({ validator: 'resource', params: { pool: '$tag/block' }}),\n\t\t\t},\n\t\t\t'immersive_weathering:block_set_match': {\n\t\t\t\tblocks: Tag('block'),\n\t\t\t\tprobability: Opt(NumberNode({ min: 0, max: 1 })),\n\t\t\t},\n\t\t\t'immersive_weathering:fluid_match': {\n\t\t\t\tfluid: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\n\t\t\t},\n\t\t},\n\t}, { context: 'rule_test', disableSwitchContext: true }))\n\n\tcollections.register('block_growth', [\n\t\t'immersive_weathering:brain_coral',\n\t\t'immersive_weathering:bubble_coral',\n\t\t'immersive_weathering:cracked_mud_rivers',\n\t\t'immersive_weathering:crimson_nylium',\n\t\t'immersive_weathering:cryosol',\n\t\t'immersive_weathering:farmland_rare_weeds',\n\t\t'immersive_weathering:farmland_weeds',\n\t\t'immersive_weathering:fire_coral',\n\t\t'immersive_weathering:fire_soot',\n\t\t'immersive_weathering:fluvisol',\n\t\t'immersive_weathering:grass_base',\n\t\t'immersive_weathering:grass_block_badlands',\n\t\t'immersive_weathering:grass_block_bamboo_jungle',\n\t\t'immersive_weathering:grass_block_birch_forest',\n\t\t'immersive_weathering:grass_block_dark_forest',\n\t\t'immersive_weathering:grass_block_flower_forest',\n\t\t'immersive_weathering:grass_block_forest',\n\t\t'immersive_weathering:grass_block_jungle',\n\t\t'immersive_weathering:grass_block_lush_caves',\n\t\t'immersive_weathering:grass_block_old_growth_spruce',\n\t\t'immersive_weathering:grass_block_plains',\n\t\t'immersive_weathering:grass_block_sunflower_plains',\n\t\t'immersive_weathering:grass_block_swamp',\n\t\t'immersive_weathering:grass_block_taiga',\n\t\t'immersive_weathering:grass_block_wooded_badlands',\n\t\t'immersive_weathering:hanging_roots',\n\t\t'immersive_weathering:horn_coral',\n\t\t'immersive_weathering:humus',\n\t\t'immersive_weathering:icicle_growth',\n\t\t'immersive_weathering:large_fern',\n\t\t'immersive_weathering:magma',\n\t\t'immersive_weathering:mycelium',\n\t\t'immersive_weathering:podzol',\n\t\t'immersive_weathering:red_sand_weathering',\n\t\t'immersive_weathering:rooted_dirt',\n\t\t'immersive_weathering:rooted_grass',\n\t\t'immersive_weathering:sand_weathering',\n\t\t'immersive_weathering:sapling',\n\t\t'immersive_weathering:sapling_nether',\n\t\t'immersive_weathering:silt',\n\t\t'immersive_weathering:tall_grass',\n\t\t'immersive_weathering:tall_seagrass',\n\t\t'immersive_weathering:tube_coral',\n\t\t'immersive_weathering:vertisol',\n\t\t'immersive_weathering:warped_nylium',\n\t])\n}\n","import type { CollectionRegistry, SchemaRegistry } from '@mcschema/core'\nimport { initImmersiveWeathering } from './ImmersiveWeathering.js'\n\nexport * from './ImmersiveWeathering.js'\n\nexport function initPartners(schemas: SchemaRegistry, collections: CollectionRegistry) {\n\tinitImmersiveWeathering(schemas, collections)\n}\n","import type { CollectionRegistry, INode, SchemaRegistry } from '@mcschema/core'\nimport { ChoiceNode, DataModel, Reference, StringNode } from '@mcschema/core'\nimport config from '../Config.js'\nimport { initPartners } from '../partners/index.js'\nimport { message } from '../Utils.js'\nimport { fetchData } from './DataFetcher.js'\n\nexport const VersionIds = ['1.15', '1.16', '1.17', '1.18', '1.18.2', '1.19'] as const\nexport type VersionId = typeof VersionIds[number]\n\nexport const DEFAULT_VERSION: VersionId = '1.19'\n\nexport type BlockStateRegistry = {\n\t[block: string]: {\n\t\tproperties?: {\n\t\t\t[key: string]: string[],\n\t\t},\n\t\tdefault?: {\n\t\t\t[key: string]: string,\n\t\t},\n\t},\n}\n\ntype VersionData = {\n\tcollections: CollectionRegistry,\n\tschemas: SchemaRegistry,\n\tblockStates: BlockStateRegistry,\n}\nconst Versions: Record<string, VersionData | Promise<VersionData>> = {}\n\ntype ModelData = {\n\tmodel: DataModel,\n\tversion: VersionId,\n}\nconst Models: Record<string, ModelData> = {}\n\nconst versionGetter: {\n\t[versionId in VersionId]: () => Promise<{\n\t\tgetCollections: () => CollectionRegistry,\n\t\tgetSchemas: (collections: CollectionRegistry) => SchemaRegistry,\n\t}>\n} = {\n\t1.15: () => import('@mcschema/java-1.15'),\n\t1.16: () => import('@mcschema/java-1.16'),\n\t1.17: () => import('@mcschema/java-1.17'),\n\t1.18: () => import('@mcschema/java-1.18'),\n\t'1.18.2': () => import('@mcschema/java-1.18.2'),\n\t1.19: () => import('@mcschema/java-1.19'),\n}\n\nexport let CachedDecorator: INode<any>\nexport let CachedFeature: INode<any>\nexport let CachedCollections: CollectionRegistry\nexport let CachedSchemas: SchemaRegistry\n\nasync function getVersion(id: VersionId): Promise<VersionData> {\n\tif (!Versions[id]) {\n\t\tVersions[id] = (async () => {\n\t\t\ttry {\n\t\t\t\tconst mcschema = await versionGetter[id]()\n\t\t\t\tconst collections = mcschema.getCollections()\n\t\t\t\tconst blockStates: BlockStateRegistry = {}\n\t\t\t\tawait fetchData(id, collections, blockStates)\n\t\t\t\tconst schemas = mcschema.getSchemas(collections)\n\t\t\t\tinitPartners(schemas, collections)\n\t\t\t\tVersions[id] = { collections, schemas, blockStates }\n\t\t\t\treturn Versions[id]\n\t\t\t} catch (e) {\n\t\t\t\tthrow new Error(`Cannot get version \"${id}\": ${message(e)}`)\n\t\t\t}\n\t\t})()\n\t\treturn Versions[id]\n\t}\n\treturn Versions[id]\n}\n\nexport async function getModel(version: VersionId, id: string): Promise<DataModel> {\n\tif (!Models[id] || Models[id].version !== version) {\n\t\tconst versionData = await getVersion(version)\n\t\t\n\t\tCachedDecorator = Reference(versionData.schemas, 'configured_decorator')\n\t\tCachedFeature = ChoiceNode([\n\t\t\t{\n\t\t\t\ttype: 'string',\n\t\t\t\tnode: StringNode(versionData.collections, { validator: 'resource', params: { pool: '$worldgen/configured_feature' } }),\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'object',\n\t\t\t\tnode: Reference(versionData.schemas, 'configured_feature'),\n\t\t\t},\n\t\t], { choiceContext: 'feature' })\n\n\t\tconst schemaName = config.generators.find(g => g.id === id)?.schema\n\t\tif (!schemaName) {\n\t\t\tthrow new Error(`Cannot find model ${id}`)\n\t\t}\n\t\ttry {\n\t\t\tconst schema = versionData.schemas.get(schemaName)\n\t\t\tconst model = new DataModel(schema, { wrapLists: true })\n\t\t\tif (Models[id]) {\n\t\t\t\tmodel.reset(Models[id].model.data, false)\n\t\t\t} else {\n\t\t\t\tmodel.validate(true)\n\t\t\t\tmodel.history = [JSON.stringify(model.data)]\n\t\t\t}\n\t\t\tModels[id] = { model, version }\n\t\t} catch (e) {\n\t\t\tconst err = new Error(`Cannot get generator \"${id}\" for version \"${version}\": ${message(e)}`)\n\t\t\tif (e instanceof Error) err.stack = e.stack\n\t\t\tthrow err\n\t\t}\n\t}\n\treturn Models[id].model\n}\n\nexport async function getCollections(version: VersionId): Promise<CollectionRegistry> {\n\tconst versionData = await getVersion(version)\n\tCachedCollections = versionData.collections\n\treturn versionData.collections\n}\n\nexport async function getBlockStates(version: VersionId): Promise<BlockStateRegistry> {\n\tconst versionData = await getVersion(version)\n\treturn versionData.blockStates\n}\n\nexport async function getSchemas(version: VersionId): Promise<SchemaRegistry> {\n\tconst versionData = await getVersion(version)\n\tCachedSchemas = versionData.schemas\n\treturn versionData.schemas\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","// Copyright (c) 2013 Pieroxy <pieroxy@pieroxy.net>\n// This work is free. You can redistribute it and/or modify it\n// under the terms of the WTFPL, Version 2\n// For more information see LICENSE.txt or http://www.wtfpl.net/\n//\n// For more information, the home page:\n// http://pieroxy.net/blog/pages/lz-string/testing.html\n//\n// LZ-based compression algorithm, version 1.4.4\nvar LZString = (function() {\n\n// private property\nvar f = String.fromCharCode;\nvar keyStrBase64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nvar keyStrUriSafe = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$\";\nvar baseReverseDic = {};\n\nfunction getBaseValue(alphabet, character) {\n if (!baseReverseDic[alphabet]) {\n baseReverseDic[alphabet] = {};\n for (var i=0 ; i<alphabet.length ; i++) {\n baseReverseDic[alphabet][alphabet.charAt(i)] = i;\n }\n }\n return baseReverseDic[alphabet][character];\n}\n\nvar LZString = {\n compressToBase64 : function (input) {\n if (input == null) return \"\";\n var res = LZString._compress(input, 6, function(a){return keyStrBase64.charAt(a);});\n switch (res.length % 4) { // To produce valid Base64\n default: // When could this happen ?\n case 0 : return res;\n case 1 : return res+\"===\";\n case 2 : return res+\"==\";\n case 3 : return res+\"=\";\n }\n },\n\n decompressFromBase64 : function (input) {\n if (input == null) return \"\";\n if (input == \"\") return null;\n return LZString._decompress(input.length, 32, function(index) { return getBaseValue(keyStrBase64, input.charAt(index)); });\n },\n\n compressToUTF16 : function (input) {\n if (input == null) return \"\";\n return LZString._compress(input, 15, function(a){return f(a+32);}) + \" \";\n },\n\n decompressFromUTF16: function (compressed) {\n if (compressed == null) return \"\";\n if (compressed == \"\") return null;\n return LZString._decompress(compressed.length, 16384, function(index) { return compressed.charCodeAt(index) - 32; });\n },\n\n //compress into uint8array (UCS-2 big endian format)\n compressToUint8Array: function (uncompressed) {\n var compressed = LZString.compress(uncompressed);\n var buf=new Uint8Array(compressed.length*2); // 2 bytes per character\n\n for (var i=0, TotalLen=compressed.length; i<TotalLen; i++) {\n var current_value = compressed.charCodeAt(i);\n buf[i*2] = current_value >>> 8;\n buf[i*2+1] = current_value % 256;\n }\n return buf;\n },\n\n //decompress from uint8array (UCS-2 big endian format)\n decompressFromUint8Array:function (compressed) {\n if (compressed===null || compressed===undefined){\n return LZString.decompress(compressed);\n } else {\n var buf=new Array(compressed.length/2); // 2 bytes per character\n for (var i=0, TotalLen=buf.length; i<TotalLen; i++) {\n buf[i]=compressed[i*2]*256+compressed[i*2+1];\n }\n\n var result = [];\n buf.forEach(function (c) {\n result.push(f(c));\n });\n return LZString.decompress(result.join(''));\n\n }\n\n },\n\n\n //compress into a string that is already URI encoded\n compressToEncodedURIComponent: function (input) {\n if (input == null) return \"\";\n return LZString._compress(input, 6, function(a){return keyStrUriSafe.charAt(a);});\n },\n\n //decompress from an output of compressToEncodedURIComponent\n decompressFromEncodedURIComponent:function (input) {\n if (input == null) return \"\";\n if (input == \"\") return null;\n input = input.replace(/ /g, \"+\");\n return LZString._decompress(input.length, 32, function(index) { return getBaseValue(keyStrUriSafe, input.charAt(index)); });\n },\n\n compress: function (uncompressed) {\n return LZString._compress(uncompressed, 16, function(a){return f(a);});\n },\n _compress: function (uncompressed, bitsPerChar, getCharFromInt) {\n if (uncompressed == null) return \"\";\n var i, value,\n context_dictionary= {},\n context_dictionaryToCreate= {},\n context_c=\"\",\n context_wc=\"\",\n context_w=\"\",\n context_enlargeIn= 2, // Compensate for the first entry which should not count\n context_dictSize= 3,\n context_numBits= 2,\n context_data=[],\n context_data_val=0,\n context_data_position=0,\n ii;\n\n for (ii = 0; ii < uncompressed.length; ii += 1) {\n context_c = uncompressed.charAt(ii);\n if (!Object.prototype.hasOwnProperty.call(context_dictionary,context_c)) {\n context_dictionary[context_c] = context_dictSize++;\n context_dictionaryToCreate[context_c] = true;\n }\n\n context_wc = context_w + context_c;\n if (Object.prototype.hasOwnProperty.call(context_dictionary,context_wc)) {\n context_w = context_wc;\n } else {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {\n if (context_w.charCodeAt(0)<256) {\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n }\n value = context_w.charCodeAt(0);\n for (i=0 ; i<8 ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | value;\n if (context_data_position ==bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = 0;\n }\n value = context_w.charCodeAt(0);\n for (i=0 ; i<16 ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++;\n context_w = String(context_c);\n }\n }\n\n // Output the code for w.\n if (context_w !== \"\") {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {\n if (context_w.charCodeAt(0)<256) {\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n }\n value = context_w.charCodeAt(0);\n for (i=0 ; i<8 ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | value;\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = 0;\n }\n value = context_w.charCodeAt(0);\n for (i=0 ; i<16 ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n }\n\n // Mark the end of the stream\n value = 2;\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n\n // Flush the last char\n while (true) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data.push(getCharFromInt(context_data_val));\n break;\n }\n else context_data_position++;\n }\n return context_data.join('');\n },\n\n decompress: function (compressed) {\n if (compressed == null) return \"\";\n if (compressed == \"\") return null;\n return LZString._decompress(compressed.length, 32768, function(index) { return compressed.charCodeAt(index); });\n },\n\n _decompress: function (length, resetValue, getNextValue) {\n var dictionary = [],\n next,\n enlargeIn = 4,\n dictSize = 4,\n numBits = 3,\n entry = \"\",\n result = [],\n i,\n w,\n bits, resb, maxpower, power,\n c,\n data = {val:getNextValue(0), position:resetValue, index:1};\n\n for (i = 0; i < 3; i += 1) {\n dictionary[i] = i;\n }\n\n bits = 0;\n maxpower = Math.pow(2,2);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (next = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 2:\n return \"\";\n }\n dictionary[3] = c;\n w = c;\n result.push(c);\n while (true) {\n if (data.index > length) {\n return \"\";\n }\n\n bits = 0;\n maxpower = Math.pow(2,numBits);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (c = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 2:\n return result.join('');\n }\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n if (dictionary[c]) {\n entry = dictionary[c];\n } else {\n if (c === dictSize) {\n entry = w + w.charAt(0);\n } else {\n return null;\n }\n }\n result.push(entry);\n\n // Add w+entry[0] to the dictionary.\n dictionary[dictSize++] = w + entry.charAt(0);\n enlargeIn--;\n\n w = entry;\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n }\n }\n};\n return LZString;\n})();\n\nif (typeof define === 'function' && define.amd) {\n define(function () { return LZString; });\n} else if( typeof module !== 'undefined' && module != null ) {\n module.exports = LZString\n}\n","import lz from 'lz-string'\nimport type { VersionId } from './Schemas.js'\n\nconst API_PREFIX = 'https://z15g7can.directus.app/items'\n\nconst ShareCache = new Map<string, string>()\n\nexport async function shareSnippet(type: string, version: VersionId, jsonData: any, show_preview: boolean) {\n\ttry {\n\t\tconst raw = JSON.stringify(jsonData)\n\t\tconst data = lz.compressToBase64(raw)\n\t\tconsole.debug('Compression rate', raw.length / raw.length)\n\t\tconst body = JSON.stringify({ data, type, version, show_preview })\n\t\tlet id = ShareCache.get(body)\n\t\tif (!id) {\n\t\t\tconst snippet = await fetchApi('/snippets', body)\n\t\t\tShareCache.set(body, snippet.id)\n\t\t\tid = snippet.id as string\n\t\t}\n\t\treturn { id, length: raw.length, compressed: data.length, rate: raw.length / data.length }\n\t} catch (e) {\n\t\tif (e instanceof Error) {\n\t\t\te.message = `Error creating share link: ${e.message}`\n\t\t}\n\t\tthrow e\n\t}\n}\n\nexport async function getSnippet(id: string) {\n\ttry {\n\t\tconst snippet = await fetchApi(`/snippets/${id}`)\n\t\treturn {\n\t\t\t...snippet,\n\t\t\tdata: JSON.parse(lz.decompressFromBase64(snippet.data) ?? '{}'),\n\t\t}\n\t} catch (e) {\n\t\tif (e instanceof Error) {\n\t\t\te.message = `Error loading shared content: ${e.message}`\n\t\t}\n\t\tthrow e\n\t}\n}\n\nasync function fetchApi(url: string, body?: string) {\n\tconst res = await fetch(API_PREFIX + url, body ? {\n\t\tmethod: 'post',\n\t\theaders: { 'Content-Type': 'application/json' },\n\t\tbody,\n\t} : undefined)\n\tconst data = await res.json()\n\tif (data.data) {\n\t\treturn data.data\n\t}\n\tthrow new Error(data.errors?.[0]?.message ?? 'Unknown error')\n}\n","import yaml from 'js-yaml'\nimport { Store } from '../Store.js'\n\nconst INDENTS: Record<string, number | string | undefined> = {\n\t'2_spaces': 2,\n\t'4_spaces': 4,\n\ttabs: '\\t',\n\tminified: undefined,\n}\n\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nlet commentJson: typeof import('comment-json') | null = null\n\nconst FORMATS: Record<string, {\n\tparse: (v: string) => Promise<unknown>,\n\tstringify: (v: unknown, indentation: string | number | undefined) => string,\n}> = {\n\tjson: {\n\t\tparse: async (v) => {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(v)\n\t\t\t} catch (e) {\n\t\t\t\tcommentJson = await import('comment-json')\n\t\t\t\treturn commentJson.parse(v)\n\t\t\t}\n\t\t},\n\t\tstringify: (v, i) => (commentJson ?? JSON).stringify(v, null, i) + '\\n',\n\t},\n\tyaml: {\n\t\tparse: async (v) => yaml.load(v),\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\nexport function stringifySource(data: unknown, format?: string, indent?: string) {\n\treturn FORMATS[format ?? Store.getFormat()].stringify(data, INDENTS[indent ?? Store.getIndent()])\n}\n\nexport async function parseSource(data: string, format: string) {\n\treturn await FORMATS[format].parse(data)\n}\n\nexport function getSourceIndent(indent: string) {\n\treturn INDENTS[indent]\n}\n\nexport function getSourceIndents() {\n\treturn Object.keys(INDENTS)\n}\n\nexport function getSourceFormats() {\n\treturn Object.keys(FORMATS)\n}\n","import type { Project } from './contexts/index.js'\nimport { DRAFT_PROJECT } from './contexts/index.js'\nimport type { VersionId } from './services/index.js'\nimport { VersionIds } from './services/index.js'\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_HIGHLIGHTING = 'output_highlighting'\n\texport const ID_SOUNDS_VERSION = 'minecraft_sounds_version'\n\texport const ID_PROJECTS = 'misode_projects'\n\texport const ID_BACKUPS = 'misode_generator_backups'\n\texport const ID_PROJECT_PANEL_OPEN = 'misode_project_panel_open'\n\texport const ID_OPEN_PROJECT = 'misode_open_project'\n\texport const ID_TREE_VIEW_MODE = 'misode_tree_view_mode'\n\texport const ID_GENERATOR_HISTORY = 'misode_generator_history'\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 getVersionOrDefault(): 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.19'\n\t}\n\n\texport function getVersion(): VersionId | null {\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 null\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 getHighlighting() {\n\t\treturn localStorage.getItem(ID_HIGHLIGHTING) !== 'false'\n\t}\n\n\texport function getSoundsVersion() {\n\t\treturn localStorage.getItem(ID_SOUNDS_VERSION) ?? 'latest'\n\t}\n\n\texport function getProjects(): Project[] {\n\t\tconst projects = localStorage.getItem(ID_PROJECTS)\n\t\tif (projects) {\n\t\t\treturn JSON.parse(projects) as Project[]\n\t\t}\n\t\treturn [DRAFT_PROJECT]\n\t}\n\n\texport function getBackup(id: string): object | undefined {\n\t\tconst backups = JSON.parse(localStorage.getItem(ID_BACKUPS) ?? '{}')\n\t\treturn backups[id]\n\t}\n\n\texport function getProjectPanelOpen(): boolean | undefined {\n\t\tconst open = localStorage.getItem(ID_PROJECT_PANEL_OPEN)\n\t\tif (open === null) return undefined\n\t\treturn JSON.parse(open)\n\t}\n\n\texport function getOpenProject() {\n\t\treturn localStorage.getItem(ID_OPEN_PROJECT) ?? DRAFT_PROJECT.name\n\t}\n\n\texport function getTreeViewMode() {\n\t\treturn localStorage.getItem(ID_TREE_VIEW_MODE) ?? 'resources'\n\t}\n\n\texport function getGeneratorHistory(): string[] {\n\t\treturn JSON.parse(localStorage.getItem(ID_GENERATOR_HISTORY) ?? '[]')\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 setHighlighting(highlighting: boolean | undefined) {\n\t\tif (highlighting !== undefined) localStorage.setItem(ID_HIGHLIGHTING, highlighting.toString())\n\t}\n\n\texport function setSoundsVersion(version: string | undefined) {\n\t\tif (version) localStorage.setItem(ID_SOUNDS_VERSION, version)\n\t}\n\n\texport function setProjects(projects: Project[] | undefined) {\n\t\tif (projects) localStorage.setItem(ID_PROJECTS, JSON.stringify(projects))\n\t}\n\n\texport function setBackup(id: string, data: object | undefined) {\n\t\tconst backups = JSON.parse(localStorage.getItem(ID_BACKUPS) ?? '{}')\n\t\tif (data === undefined) {\n\t\t\tdelete backups[id]\n\t\t} else {\n\t\t\tbackups[id] = data\n\t\t}\n\t\tlocalStorage.setItem(ID_BACKUPS, JSON.stringify(backups))\n\t}\n\n\texport function setProjectPanelOpen(open: boolean | undefined) {\n\t\tif (open === undefined) {\n\t\t\tlocalStorage.removeItem(ID_PROJECT_PANEL_OPEN)\n\t\t} else {\n\t\t\tlocalStorage.setItem(ID_PROJECT_PANEL_OPEN, JSON.stringify(open))\n\t\t}\n\t}\n\n\texport function setOpenProject(projectName: string | undefined) {\n\t\tif (projectName === undefined) {\n\t\t\tlocalStorage.removeItem(ID_OPEN_PROJECT)\n\t\t} else {\n\t\t\tlocalStorage.setItem(ID_OPEN_PROJECT, projectName)\n\t\t}\n\t}\n\n\texport function setTreeViewMode(mode: string | undefined) {\n\t\tif (mode) localStorage.setItem(ID_TREE_VIEW_MODE, mode)\n\t}\n\n\texport function visitGenerator(id: string) {\n\t\tconst history = getGeneratorHistory()\n\t\thistory.push(id)\n\t\tlocalStorage.setItem(ID_GENERATOR_HISTORY, JSON.stringify(history.slice(-50)))\n\t}\n}\n","// import { createRequire } from 'module'\nimport type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { useCallback, useContext, useEffect, useState } from 'preact/hooks'\nimport { Analytics } from '../Analytics.js'\nimport config from '../Config.js'\nimport { Store } from '../Store.js'\n// const require = createRequire(import.meta.url)\n// const English = require('../../locales/en.json')\nimport English from '../../locales/en.json'\n\ninterface Locale {\n\tlang: string,\n\tlocale: (key: string, ...params: string[]) => string,\n\tchangeLocale: (lang: string) => unknown,\n}\nconst Locale = createContext<Locale>({\n\tlang: 'none',\n\tlocale: key => key,\n\tchangeLocale: () => {},\n})\n\nexport const Locales: {\n\t[key: string]: {\n\t\t[key: string]: string,\n\t},\n} = {\n\tfallback: English,\n}\n\nexport function localize(lang: string, key: string, ...params: string[]) {\n\tconst value: string | undefined = Locales[lang]?.[key]\n\t?? Locales.en?.[key] ?? Locales.fallback[key] ?? key\n\treturn resolveLocaleParams(value, params)\n}\n\nfunction resolveLocaleParams(value: string, params?: string[]): string {\n\treturn value.replace(/%\\d+%/g, match => {\n\t\tconst index = parseInt(match.slice(1, -1))\n\t\treturn params?.[index] !== undefined ? params[index] : match\n\t})\n}\n\nasync function loadLocale(language: string) {\n\tif (Locales[language]) return\n\tconst langConfig = config.languages.find(lang => lang.code === language)\n\tif (!langConfig) return\n\tconst data = await import(`../../locales/${language}.json`)\n\tconst schema = langConfig.schemas !== false\n\t\t&& await import(`../../../node_modules/@mcschema/locales/src/${language}.json`)\n\tlet partners = { default: {} }\n\tif (language === 'en') {\n\t\tpartners = await import('../partners/locales/en.json')\n\t}\n\tLocales[language] = { ...data.default, ...schema.default, ...partners.default }\n}\n\nexport function useLocale() {\n\treturn useContext(Locale)\n}\n\nexport function LocaleProvider({ children }: { children: ComponentChildren }) {\n\tconst [lang, setLanguage] = useState('none')\n\n\tconst locale = useCallback((key: string, ...params: string[]) => {\n\t\treturn localize(lang, key, ...params)\n\t}, [lang])\n\n\tconst changeLocale = useCallback(async (newLang: string) => {\n\t\tawait loadLocale(newLang)\n\t\tAnalytics.changeLocale(lang, newLang)\n\t\tStore.setLanguage(newLang)\n\t\tsetLanguage(newLang)\n\t}, [lang])\n\n\tuseEffect(() => {\n\t\t(async () => {\n\t\t\tconst target = Store.getLanguage()\n\t\t\tAnalytics.setLocale(target)\n\t\t\tawait Promise.all([\n\t\t\t\tloadLocale('en'),\n\t\t\t\t...(target !== 'en' ? [loadLocale(target)] : []),\n\t\t\t])\n\t\t\tsetLanguage(target)\n\t\t})()\n\t}, [])\n\n\tconst value: Locale = {\n\t\tlang,\n\t\tlocale,\n\t\tchangeLocale,\n\t}\n\n\treturn <Locale.Provider value={value}>\n\t\t{children}\n\t</Locale.Provider>\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { route } from 'preact-router'\nimport { useCallback, useContext, useMemo, useState } from 'preact/hooks'\nimport config from '../Config.js'\nimport type { VersionId } from '../services/index.js'\nimport { Store } from '../Store.js'\nimport { cleanUrl } from '../Utils.js'\n\nexport type Project = {\n\tname: string,\n\tnamespace?: string,\n\tversion?: VersionId,\n\tfiles: ProjectFile[],\n}\nexport const DRAFT_PROJECT: Project = {\n\tname: 'Drafts',\n\tnamespace: 'draft',\n\tfiles: [],\n}\n\nexport type ProjectFile = {\n\ttype: string,\n\tid: string,\n\tdata: any,\n}\n\nexport const FilePatterns = [\n\t'worldgen/[a-z_]+',\n\t'tags/worldgen/[a-z_]+',\n\t'tags/[a-z_]+',\n\t'[a-z_]+',\n].map(e => RegExp(`^data/([a-z0-9._-]+)/(${e})/([a-z0-9/._-]+)$`))\n\ninterface ProjectContext {\n\tprojects: Project[],\n\tproject: Project,\n\tfile?: ProjectFile,\n\tcreateProject: (name: string, namespace?: string, version?: VersionId) => unknown,\n\tdeleteProject: (name: string) => unknown,\n\tchangeProject: (name: string) => unknown,\n\tupdateProject: (project: Partial<Project>) => unknown,\n\tupdateFile: (type: string, id: string | undefined, file: Partial<ProjectFile>) => boolean,\n\topenFile: (type: string, id: string) => unknown,\n\tcloseFile: () => unknown,\n}\nconst Project = createContext<ProjectContext>({\n\tprojects: [DRAFT_PROJECT],\n\tproject: DRAFT_PROJECT,\n\tcreateProject: () => {},\n\tdeleteProject: () => {},\n\tchangeProject: () => {},\n\tupdateProject: () => {},\n\tupdateFile: () => false,\n\topenFile: () => {},\n\tcloseFile: () => {},\n})\n\nexport function useProject() {\n\treturn useContext(Project)\n}\n\nexport function ProjectProvider({ children }: { children: ComponentChildren }) {\n\tconst [projects, setProjects] = useState<Project[]>(Store.getProjects())\n\n\tconst [projectName, setProjectName] = useState<string>(Store.getOpenProject())\n\tconst project = useMemo(() => {\n\t\treturn projects.find(p => p.name === projectName) ?? DRAFT_PROJECT\n\t}, [projects, projectName])\n\n\tconst [fileId, setFileId] = useState<[string, string] | undefined>(undefined)\n\tconst file = useMemo(() => {\n\t\tif (!fileId) return undefined\n\t\treturn project.files.find(f => f.type === fileId[0] && f.id === fileId[1])\n\t}, [project, fileId])\n\n\tconst changeProjects = useCallback((projects: Project[]) => {\n\t\tStore.setProjects(projects)\n\t\tsetProjects(projects)\n\t}, [])\n\n\tconst createProject = useCallback((name: string, namespace?: string, version?: VersionId) => {\n\t\tchangeProjects([...projects, { name, namespace, version, files: [] }])\n\t}, [projects])\n\n\tconst deleteProject = useCallback((name: string) => {\n\t\tif (name === DRAFT_PROJECT.name) return\n\t\tchangeProjects(projects.filter(p => p.name !== name))\n\t}, [projects])\n\n\tconst changeProject = useCallback((name: string) => {\n\t\tStore.setOpenProject(name)\n\t\tsetProjectName(name)\n\t}, [])\n\n\tconst updateProject = useCallback((edits: Partial<Project>) => {\n\t\tchangeProjects(projects.map(p => p.name === projectName ?\t{ ...p, ...edits } : p))\n\t}, [projects, projectName])\n\n\tconst updateFile = useCallback((type: string, id: string | undefined, edits: Partial<ProjectFile>) => {\n\t\tif (!edits.id) { // remove\n\t\t\tupdateProject({ files: project.files.filter(f => f.type !== type || f.id !== id) })\n\t\t} else {\n\t\t\tconst newId = type === 'pack_mcmeta' ? 'pack' : edits.id.includes(':') ? edits.id : `${project.namespace ?? 'minecraft'}:${edits.id}`\n\t\t\tconst exists = project.files.some(f => f.type === type && f.id === newId)\n\t\t\tif (!id) { // create\n\t\t\t\tif (exists) return false\n\t\t\t\tupdateProject({ files: [...project.files, { type, id: newId, data: edits.data ?? {} } ]})\n\t\t\t\tsetFileId([type, newId])\n\t\t\t} else { // rename or update data\n\t\t\t\tif (file?.id === id && id !== newId && exists) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tupdateProject({ files: project.files.map(f => f.type === type && f.id === id ? { ...f, ...edits, id: newId } : f)})\n\t\t\t\tif (file?.id === id) setFileId([type, newId])\n\t\t\t}\n\t\t}\n\t\treturn true\n\t}, [updateProject, project, file])\n\n\tconst openFile = useCallback((type: string, id: string) => {\n\t\tconst gen = config.generators.find(g => g.id === type || g.path === type)\n\t\tif (!gen) {\n\t\t\tthrow new Error(`Cannot find generator of type ${type}`)\n\t\t}\n\t\tsetFileId([gen.id, id])\n\t\troute(cleanUrl(gen.url))\n\t}, [])\n\n\tconst closeFile = useCallback(() => {\n\t\tsetFileId(undefined)\n\t}, [])\n\n\tconst value: ProjectContext = {\n\t\tprojects,\n\t\tproject,\n\t\tfile,\n\t\tcreateProject,\n\t\tchangeProject,\n\t\tdeleteProject,\n\t\tupdateProject,\n\t\tupdateFile,\n\t\topenFile,\n\t\tcloseFile,\n\t}\n\n\treturn <Project.Provider value={value}>\n\t\t{children}\n\t</Project.Provider>\n}\n\nexport function getFilePath(file: { id: string, type: string }) {\n\tconst [namespace, id] = file.id.includes(':') ? file.id.split(':') : ['minecraft', file.id]\n\tif (file.type === 'pack_mcmeta') {\n\t\tif (file.id === 'pack') return 'pack.mcmeta'\n\t\treturn undefined\n\t}\n\tconst gen = config.generators.find(g => g.id === file.type)\n\tif (!gen) {\n\t\treturn undefined\n\t}\n\treturn `data/${namespace}/${gen.path ?? gen.id}/${id}.json`\n}\n\nexport function disectFilePath(path: string) {\n\tif (path === 'pack.mcmeta') {\n\t\treturn { type: 'pack_mcmeta', id: 'pack' }\n\t}\n\tfor (const p of FilePatterns) {\n\t\tconst match = path.match(p)\n\t\tif (!match) continue\n\t\tconst gen = config.generators.find(g => (g.path ?? g.id) === match[2])\n\t\tif (!gen) continue\n\t\tconst namespace = match[1]\n\t\tconst name = match[3].replace(/\\.[a-z]+$/, '')\n\t\treturn {\n\t\t\ttype: gen.id,\n\t\t\tid: `${namespace}:${name}`,\n\t\t}\n\t}\n\treturn undefined\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { useCallback, useContext } from 'preact/hooks'\nimport { useLocalStorage } from '../hooks/index.js'\nimport type { Color } from '../Utils.js'\n\ninterface Store {\n\tbiomeColors: Record<string, [number, number, number]>\n\tsetBiomeColor: (biome: string, color: Color) => void\n}\n\nconst Store = createContext<Store>({\n\tbiomeColors: {},\n\tsetBiomeColor: () => {},\n})\n\nexport function useStore() {\n\treturn useContext(Store)\n}\n\nexport function StoreProvider({ children }: { children: ComponentChildren }) {\n\tconst [biomeColors, setBiomeColors] = useLocalStorage<Record<string, Color>>('misode_biome_colors', {}, JSON.parse, JSON.stringify)\n\n\tconst setBiomeColor = useCallback((biome: string, color: Color) => {\n\t\tsetBiomeColors({...biomeColors, [biome]: color })\n\t}, [biomeColors])\n\n\tconst value: Store = {\n\t\tbiomeColors,\n\t\tsetBiomeColor,\n\t}\n\n\treturn <Store.Provider value={value}>\n\t\t{children}\n\t</Store.Provider>\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { useCallback, useContext, useEffect, useState } from 'preact/hooks'\nimport { Analytics } from '../Analytics.js'\nimport { useMediaQuery } from '../hooks/index.js'\nimport { Store } from '../Store.js'\n\ninterface Theme {\n\ttheme: string,\n\tactualTheme: 'light' | 'dark',\n\tchangeTheme: (theme: string) => unknown,\n}\nconst Theme = createContext<Theme>({\n\ttheme: 'dark',\n\tactualTheme: 'dark',\n\tchangeTheme: () => {},\n})\n\nexport function useTheme() {\n\treturn useContext(Theme)\n}\n\nexport function ThemeProvider({ children }: { children: ComponentChildren }) {\n\tconst [theme, setTheme] = useState(Store.getTheme())\n\tconst prefersLight = useMediaQuery('(prefers-color-scheme: light)')\n\tconst prefersDark = useMediaQuery('(prefers-color-scheme: dark)')\n\n\tuseEffect(() => {\n\t\tdocument.documentElement.setAttribute('data-theme', theme)\n\t}, [theme])\n\n\tconst changeTheme = useCallback((newTheme: string) => {\n\t\tAnalytics.changeTheme(theme, newTheme)\n\t\tStore.setTheme(newTheme)\n\t\tsetTheme(newTheme)\n\t}, [theme])\n\n\tuseEffect(() => {\n\t\tAnalytics.setPrefersColorScheme(prefersLight ? 'light' : prefersDark ? 'dark' : 'none')\n\t}, [prefersLight, prefersDark])\n\n\tuseEffect(() => {\n\t\tAnalytics.setTheme(theme)\n\t}, [])\n\n\tconst value: Theme = {\n\t\ttheme,\n\t\tactualTheme: theme === 'light' || (theme !== 'dark' && prefersLight) ? 'light' : 'dark',\n\t\tchangeTheme,\n\t}\n\n\treturn <Theme.Provider value={value}>\n\t\t{children}\n\t</Theme.Provider>\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { useCallback, useContext, useEffect, useState } from 'preact/hooks'\nimport config from '../Config.js'\nimport type { VersionId } from '../services/index.js'\nimport { useLocale } from './index.js'\n\nconst VERSIONS_IN_TITLE = 3\n\ninterface Title {\n\ttitle: string,\n\tchangeTitle: (title: string, versions?: VersionId[], suffix?: string) => unknown,\n}\nconst Title = createContext<Title>({\n\ttitle: '',\n\tchangeTitle: () => {},\n})\n\nexport function useTitle(title?: string, versions?: VersionId[], suffix?: string) {\n\tconst context = useContext(Title)\n\tuseEffect(() => {\n\t\tif (title) {\n\t\t\tcontext.changeTitle(title, versions, suffix)\n\t\t}\n\t}, [title, versions, suffix])\n\treturn context\n}\n\nexport function TitleProvider({ children }: { children: ComponentChildren }) {\n\tconst { locale } = useLocale()\n\tconst [title, setTitle] = useState<string>(locale('title.home'))\n\n\tconst changeTitle = useCallback((title: string, versionIds?: VersionId[], suffix?: string) => {\n\t\tlet versions = config.versions\n\t\tif (versionIds !== undefined) {\n\t\t\tversions = config.versions.filter(v => versionIds?.includes(v.id as VersionId))\n\t\t}\n\t\tlet titleSuffix = ''\n\t\tif (suffix) {\n\t\t\ttitleSuffix = ` - ${suffix}`\n\t\t}\n\t\tif (!(versionIds?.length === 0)) {\n\t\t\tconst titleVersions = versions.map(v => v.id).slice(-VERSIONS_IN_TITLE)\n\t\t\ttitleSuffix = ` - Minecraft ${titleVersions.join(', ')}`\n\t\t}\n\t\tdocument.title = title + titleSuffix\n\t\tsetTitle(title)\n\t}, [])\n\n\tconst value = {\n\t\ttitle,\n\t\tchangeTitle,\n\t}\n\n\treturn <Title.Provider value={value}>\n\t\t{children}\n\t</Title.Provider>\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { useCallback, useContext, useEffect, useState } from 'preact/hooks'\nimport { Analytics } from '../Analytics.js'\nimport { useSearchParam } from '../hooks/index.js'\nimport type { VersionId } from '../services/index.js'\nimport { VersionIds } from '../services/index.js'\nimport { Store } from '../Store.js'\n\nconst VERSION_PARAM = 'version'\n\ninterface Version {\n\tversion: VersionId,\n\tchangeVersion: (version: VersionId, store?: boolean, updateSearch?: boolean) => unknown,\n\tchangeTargetVersion: (version: VersionId, replace?: boolean) => unknown,\n}\nconst Version = createContext<Version>({\n\tversion: '1.18.2',\n\tchangeVersion: () => {},\n\tchangeTargetVersion: () => {},\n})\n\nexport function useVersion() {\n\treturn useContext(Version)\n}\n\nexport function VersionProvider({ children }: { children: ComponentChildren }) {\n\tconst [version, setVersion] = useState<VersionId>(Store.getVersionOrDefault())\n\n\tconst [targetVersion, changeTargetVersion] = useSearchParam(VERSION_PARAM)\n\n\tuseEffect(() => {\n\t\tif (VersionIds.includes(targetVersion as VersionId) && version !== targetVersion) {\n\t\t\tAnalytics.setVersion(targetVersion as VersionId)\n\t\t\tsetVersion(targetVersion as VersionId)\n\t\t}\n\t}, [version, targetVersion])\n\n\tconst changeVersion = useCallback((newVersion: VersionId, store = true, updateSearch = false) => {\n\t\tif (updateSearch || targetVersion) {\n\t\t\tchangeTargetVersion(newVersion, true)\n\t\t}\n\t\tif (store) {\n\t\t\tAnalytics.changeVersion(version, newVersion)\n\t\t\tStore.setVersion(newVersion)\n\t\t}\n\t\tsetVersion(newVersion)\n\t}, [version, targetVersion])\n\n\tuseEffect(() => {\n\t\tAnalytics.setVersion(version)\n\t\tAnalytics.setSelectedVersion(Store.getVersion() ?? 'default')\n\t}, [])\n\n\tconst value: Version = {\n\t\tversion,\n\t\tchangeVersion,\n\t\tchangeTargetVersion,\n\t}\n\n\treturn <Version.Provider value={value}>\n\t\t{children}\n\t</Version.Provider>\n}\n","import { useCallback, useRef } from 'preact/hooks'\nimport { useLocale } from '../contexts/index.js'\nimport { Btn } from './index.js'\n\ninterface Props {\n\tvalue: File | undefined,\n\tonChange: (file: File) => unknown,\n\tlabel?: string,\n\taccept?: string,\n}\nexport function FileUpload({ value, onChange, label, accept }: Props) {\n\tconst { locale } = useLocale()\n\tconst fileUpload = useRef<HTMLInputElement>(null)\n\t\n\tconst onUpload = () => {\n\t\tif (fileUpload.current === null) return\n\t\tfor (let i = 0; i < (fileUpload.current.files?.length ?? 0); i++) {\n\t\t\tconst file = fileUpload.current.files![i]\n\t\t\tonChange(file)\n\t\t} \n\t}\n\n\tconst onDrop = useCallback((e: DragEvent) => {\n\t\te.preventDefault()\n\t\tif(!e.dataTransfer) return\n\n\t\tfor (let i = 0; i < e.dataTransfer.files.length; i++) {\n\t\t\tconst file = e.dataTransfer.files[i]\n\t\t\tonChange(file)\n\t\t}\n\t}, [onChange])\n\n\treturn <label class=\"file-upload\" onDrop={onDrop} onDragOver={e => e.preventDefault()}>\n\t\t<input ref={fileUpload} type=\"file\" onChange={onUpload} accept={accept} />\n\t\t<Btn label={label ?? locale('choose_file')} />\n\t\t<span>\n\t\t\t{value ? value.name : locale('no_file_chosen')}\n\t\t</span>\n\t</label>\n}\n","import { useLocale } from '../contexts/index.js'\nimport { Octicon } from './index.js'\n\ninterface Props {\n\tdonate?: boolean,\n}\nexport function Footer({ donate }: Props) {\n\tconst { locale } = useLocale()\n\n\treturn <footer>\n\t\t<p>\n\t\t\t<span>{locale('developed_by')} <a href=\"https://github.com/misode\" target=\"_blank\" rel=\"noreferrer\">Misode</a></span>\n\t\t</p>\n\t\t{donate !== false && <p class=\"donate\">\n\t\t\t{Octicon.heart}\n\t\t\t<a href=\"https://ko-fi.com/misode\" target=\"_blank\" rel=\"noreferrer\">{locale('donate')}</a>\n\t\t</p>}\n\t\t<p>\n\t\t\t{Octicon.mark_github}\n\t\t\t<span>{locale('source_code_on')} <a href=\"https://github.com/misode/misode.github.io\" target=\"_blank\" rel=\"noreferrer\">{locale('github')}</a></span>\n\t\t</p>\n\t</footer>\n}\n","import { hexId } from '../../Utils.js'\n\ninterface Props {\n\tlabel: string,\n\tvalue: boolean,\n\tonChange: (value: boolean) => unknown,\n}\nexport function Checkbox({ label, value, onChange }: Props) {\n\tconst id = hexId()\n\treturn <label class=\"checkbox\">\n\t\t<input id={id} type=\"checkbox\" checked={value} onClick={() => onChange(!value)} />\n\t\t{label}\n\t</label>\n}\n","import type { JSX } from 'preact'\nimport { useEffect, useRef } from 'preact/hooks'\n\ntype InputProps = JSX.HTMLAttributes<HTMLInputElement>\n\ntype BaseInputProps<T> = Omit<InputProps, 'onChange' | 'type'> & {\n\tonChange?: (value: T) => unknown,\n\tonEnter?: (value: T) => unknown,\n\tonCancel?: () => unknown,\n}\nfunction BaseInput<T>(name: string, type: string, fn: (value: string) => T) {\n\tconst component = (props: BaseInputProps<T>) => {\n\t\tconst onChange = props.onChange && ((evt: Event) => {\n\t\t\tconst value = (evt.target as HTMLInputElement).value\n\t\t\tprops.onChange?.(fn(value))\n\t\t})\n\t\tconst onKeyDown = props.onEnter && ((evt: KeyboardEvent) => {\n\t\t\tif (evt.key === 'Enter') {\n\t\t\t\tconst value = (evt.target as HTMLInputElement).value\n\t\t\t\tprops.onEnter?.(fn(value))\n\t\t\t} else if (evt.key === 'Escape') {\n\t\t\t\tprops.onCancel?.()\n\t\t\t}\n\t\t})\n\t\tconst ref = useRef<HTMLInputElement>(null)\n\t\tuseEffect(() => {\n\t\t\tif (props.autofocus) {\n\t\t\t\tref.current?.select()\n\t\t\t}\n\t\t}, [props.autofocus])\n\t\treturn <input ref={ref} {...props} {...{ type, onChange, onKeyDown }} />\n\t}\n\tcomponent.displayName = name\n\treturn component\n}\n\nexport const TextInput = BaseInput('TextInput', 'text', v => v)\n\nexport const NumberInput = BaseInput('NumberInput', 'number', v => Number(v))\n\nexport const RangeInput = BaseInput('RangeInput', 'range', v => Number(v))\n","import { useMemo, useState } from 'preact/hooks'\nimport { Btn, BtnInput } from '../index.js'\n\ninterface Props {\n\tvalues?: string[],\n\tonSelect?: (value: string) => unknown,\n\tsearchPlaceholder?: string,\n\tnoResults?: string,\n}\nexport function SearchList({ values, onSelect, searchPlaceholder, noResults }: Props) {\n\tconst [search, setSearch] = useState('')\n\tconst results = useMemo(() => {\n\t\tconst terms = search.trim().split(' ')\n\t\treturn values?.filter(v => terms.every(t => v.includes(t))) ?? []\n\t}, [values, search])\n\n\treturn <>\n\t\t<BtnInput icon=\"search\" large value={search} onChange={setSearch} doSelect={1} placeholder={searchPlaceholder ?? 'Search'} />\n\t\t<div class=\"result-list\">\n\t\t\t{results.map(v => <Btn key={v} label={v} onClick={() => onSelect?.(v)} />)}\n\t\t\t{results.length === 0 && <Btn label={noResults ?? 'No results'}/>}\n\t\t</div>\n\t</>\n}\n","import type { JSX } from 'preact'\nimport { useCallback, useEffect } from 'preact/hooks'\nimport { LOSE_FOCUS } from '../hooks/index.js'\n\nconst MODALS_KEY = 'data-modals'\n\ninterface Props extends JSX.HTMLAttributes<HTMLDivElement> {\n\tonDismiss: () => void,\n}\nexport function Modal(props: Props) {\n\tuseEffect(() => {\n\t\taddCurrentModals(1)\n\t\twindow.addEventListener('click', props.onDismiss)\n\t\treturn () => {\n\t\t\taddCurrentModals(-1)\n\t\t\twindow.removeEventListener('click', props.onDismiss)\n\t\t}\n\t})\n\n\tconst onClick = useCallback((e: MouseEvent) => {\n\t\te.stopPropagation()\n\t\te.target?.dispatchEvent(new Event(LOSE_FOCUS, { bubbles: true }))\n\t}, [])\n\n\treturn <div {...props} class={`modal ${props.class ?? ''}`} onClick={onClick}>\n\t\t{props.children}\n\t</div>\n}\n\nfunction addCurrentModals(diff: number) {\n\tconst currentModals = parseInt(document.body.getAttribute(MODALS_KEY) ?? '0')\n\tconst newModals = currentModals + diff\n\tif (newModals <= 0) {\n\t\tdocument.body.removeAttribute(MODALS_KEY)\n\t} else {\n\t\tdocument.body.setAttribute(MODALS_KEY, newModals.toFixed())\n\t}\n}\n","import { DataModel } from '@mcschema/core'\nimport { useState } from 'preact/hooks'\nimport { Analytics } from '../../Analytics.js'\nimport { useLocale, useProject } from '../../contexts/index.js'\nimport { Btn } from '../Btn.js'\nimport { TextInput } from '../forms/index.js'\nimport { Modal } from '../Modal.js'\n\ninterface Props {\n\tmodel: DataModel,\n\tid: string,\n\tmethod: string,\n\tonClose: () => void,\n}\nexport function FileCreation({ model, id, method, onClose }: Props) {\n\tconst { locale } = useLocale()\n\tconst { projects, project, updateFile } = useProject()\n\tconst [fileId, setFileId] = useState(id === 'pack_mcmeta' ? 'pack' : '')\n\n\tconst doSave = () => {\n\t\tAnalytics.saveProjectFile(id, projects.length, project.files.length, method as any)\n\t\tupdateFile(id, undefined, { type: id, id: fileId, data: DataModel.unwrapLists(model.data) })\n\t\tonClose()\n\t}\n\n\treturn <Modal class=\"file-modal\" onDismiss={onClose}>\n\t\t<p>{locale('project.save_current_file')}</p>\n\t\t<TextInput autofocus={id !== 'pack_mcmeta'} class=\"btn btn-input\" value={fileId} onChange={setFileId} onEnter={doSave} onCancel={onClose} placeholder={locale('resource_location')} spellcheck={false} readOnly={id === 'pack_mcmeta'} />\n\t\t<Btn icon=\"file\" label={locale('project.save')} onClick={doSave} />\n\t</Modal>\n}\n","import { useState } from 'preact/hooks'\nimport { Analytics } from '../../Analytics.js'\nimport { useLocale, useProject } from '../../contexts/index.js'\nimport { Btn } from '../Btn.js'\nimport { TextInput } from '../forms/index.js'\nimport { Modal } from '../Modal.js'\n\ninterface Props {\n\tid: string,\n\tname: string,\n\tonClose: () => void,\n}\nexport function FileRenaming({ id, name, onClose }: Props) {\n\tconst { locale } = useLocale()\n\tconst { projects, project, updateFile } = useProject()\n\tconst [fileId, setFileId] = useState(name)\n\n\tconst doSave = () => {\n\t\tAnalytics.renameProjectFile(id, projects.length, project.files.length, 'menu')\n\t\tupdateFile(id, name, { type: id, id: fileId })\n\t\tonClose()\n\t}\n\n\treturn <Modal class=\"file-modal\" onDismiss={onClose}>\n\t\t<p>{locale('project.rename_file')}</p>\n\t\t<TextInput autofocus class=\"btn btn-input\" value={fileId} onChange={setFileId} onEnter={doSave} placeholder={locale('resource_location')} spellcheck={false} />\n\t\t<Btn icon=\"pencil\" label={locale('project.rename')} onClick={doSave} />\n\t</Modal>\n}\n","import { useMemo } from 'preact/hooks'\nimport type { ConfigGenerator } from '../../Config.js'\nimport config from '../../Config.js'\nimport { useLocale } from '../../contexts/Locale.jsx'\nimport type { VersionId } from '../../services/Schemas.js'\nimport { checkVersion } from '../../services/Schemas.js'\nimport { cleanUrl } from '../../Utils.js'\nimport { Badge, Card, Icons, ToolCard } from '../index.js'\n\ninterface Props {\n\tid: string,\n\tminimal?: boolean,\n}\nexport function GeneratorCard({ id, minimal }: Props) {\n\tconst { locale } = useLocale()\n\n\tconst gen = useMemo<ConfigGenerator>(() => {\n\t\tconst gen = config.generators.find(g => g.id === id)\n\t\tif (gen === undefined) {\n\t\t\treturn { id, schema: id, url: id }\n\t\t}\n\t\treturn gen\n\t}, [id])\n\n\tconst title = locale(gen.partner ? `partner.${gen.partner}.${gen.id}` : gen.id)\n\n\tconst icon = Object.keys(Icons).includes(id) ? id as keyof typeof Icons : undefined\n\n\tif (minimal) {\n\t\treturn <ToolCard title={title} link={cleanUrl(gen.url)} titleIcon={icon} />\n\t}\n\n\tconst versions = useMemo(() => {\n\t\tif (!gen) return []\n\t\treturn config.versions\n\t\t\t.filter(v => checkVersion(v.id, gen.minVersion, gen.maxVersion))\n\t\t\t.map(v => v.id as VersionId)\n\t}, [gen])\n\n\tconst tags = useMemo(() => {\n\t\tif (gen.tags?.includes('assets')) return ['resource-pack']\n\t\treturn []\n\t}, [gen])\n\n\treturn <Card title={<>{title}{icon && Icons[icon]}</>} overlay={gen.partner ? locale(`partner.${gen.partner}`) : versions.join(' • ')} link={cleanUrl(gen.url)}>\n\t\t{!gen.noPath && <p class=\"card-subtitle\">/{gen.path ?? gen.id}</p>}\n\t\t{tags.length > 0 && <div class=\"badges-list\">\n\t\t\t{tags.sort().map(tag => <Badge label={tag} />)}\n\t\t</div>}\n\t</Card>\n}\n","import { useMemo, useState } from 'preact/hooks'\nimport type { ConfigGenerator } from '../../Config.js'\nimport config from '../../Config.js'\nimport { useLocale, useVersion } from '../../contexts/index.js'\nimport { checkVersion } from '../../services/Schemas.js'\nimport { GeneratorCard, TextInput, VersionSwitcher } from '../index.js'\n\ninterface Props {\n\tpath?: string,\n\tpredicate?: (gen: ConfigGenerator) => boolean | undefined,\n}\nexport function GeneratorList({ predicate }: Props) {\n\tconst { locale } = useLocale()\n\tconst { version, changeVersion } = useVersion()\n\n\tconst [search, setSearch] = useState('')\n\n\tconst [versionFilter, setVersionFiler] = useState(true)\n\n\tconst versionedGenerators = useMemo(() => {\n\t\treturn config.generators.filter(gen => {\n\t\t\tif (predicate === undefined || !predicate(gen)) return false\n\t\t\tif (versionFilter === false) return true\n\t\t\treturn checkVersion(version, gen.minVersion, gen.maxVersion)\n\t\t})\n\t}, [version, versionFilter])\n\n\tconst filteredGenerators = useMemo(() => {\n\t\tconst query = search.split(' ').map(q => q.trim().toLowerCase()).filter(q => q.length > 0)\n\t\treturn versionedGenerators.filter(gen => {\n\t\t\tconst content = `${gen.id} ${gen.tags?.join(' ') ?? ''} ${gen.path ?? ''} ${gen.partner ?? ''} ${locale(gen.id).toLowerCase()}`\n\t\t\treturn query.every(q => {\n\t\t\t\tif (q.startsWith('!')) {\n\t\t\t\t\treturn q.length === 1 || !content.includes(q.slice(1))\n\t\t\t\t}\n\t\t\t\treturn content.includes(q)\n\t\t\t})\n\t\t})\n\t}, [versionedGenerators, search, locale])\n\n\treturn <div class=\"generator-list\">\n\t\t<div class=\"navigation\">\n\t\t\t<TextInput class=\"btn btn-input query-search\" placeholder={locale('generators.search')} value={search} onChange={setSearch} />\n\t\t\t<VersionSwitcher value={versionFilter ? version : undefined} onChange={v => {changeVersion(v); setVersionFiler(true)}} hasAny onAny={() => setVersionFiler(false)} />\n\t\t</div>\n\t\t{filteredGenerators.length === 0 ? <>\n\t\t\t<span class=\"note\">{locale('generators.no_results')}</span>\n\t\t</> : <div class=\"card-column\">\n\t\t\t{filteredGenerators.map(gen =>\n\t\t\t\t<GeneratorCard id={gen.id} />\n\t\t\t)}\n\t\t</div>}\n\t</div>\n}\n","export var Direction;\n(function (Direction) {\n Direction[\"UP\"] = \"up\";\n Direction[\"DOWN\"] = \"down\";\n Direction[\"NORTH\"] = \"north\";\n Direction[\"EAST\"] = \"east\";\n Direction[\"SOUTH\"] = \"south\";\n Direction[\"WEST\"] = \"west\";\n})(Direction || (Direction = {}));\nconst directionNormals = {\n [Direction.UP]: [0, 1, 0],\n [Direction.DOWN]: [0, -1, 0],\n [Direction.NORTH]: [0, 0, -1],\n [Direction.EAST]: [1, 0, 0],\n [Direction.SOUTH]: [0, 0, 1],\n [Direction.WEST]: [-1, 0, 0],\n};\n(function (Direction) {\n Direction.ALL = [Direction.UP, Direction.DOWN, Direction.NORTH, Direction.EAST, Direction.SOUTH, Direction.WEST];\n function normal(dir) {\n return directionNormals[dir];\n }\n Direction.normal = normal;\n})(Direction || (Direction = {}));\n//# sourceMappingURL=Direction.js.map","import { Direction } from './Direction.js';\nexport var BlockPos;\n(function (BlockPos) {\n function create(x, y, z) {\n return [x, y, z];\n }\n BlockPos.create = create;\n BlockPos.ZERO = BlockPos.create(0, 0, 0);\n function offset(pos, dx, dy, dz) {\n return [pos[0] + dx, pos[1] + dy, pos[2] + dz];\n }\n BlockPos.offset = offset;\n function towards(pos, dir) {\n return BlockPos.offset(pos, ...Direction.normal(dir));\n }\n BlockPos.towards = towards;\n function equals(a, b) {\n if (a === b)\n return true;\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2];\n }\n BlockPos.equals = equals;\n function magnitude(pos) {\n return pos[0] * pos[0] + pos[1] * pos[1] + pos[2] * pos[2];\n }\n BlockPos.magnitude = magnitude;\n})(BlockPos || (BlockPos = {}));\n//# sourceMappingURL=BlockPos.js.map","\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<<MAX_BITS)-1,\n // \"inconsistent bit counts\");\n //Tracev((stderr,\"\\ngen_codes: max_code %d \", max_code));\n\n for (n = 0; n <= max_code; n++) {\n let len = tree[n * 2 + 1]/*.Len*/;\n if (len === 0) { continue; }\n /* Now reverse the bits */\n tree[n * 2]/*.Code*/ = bi_reverse(next_code[len]++, len);\n\n //Tracecv(tree != static_ltree, (stderr,\"\\nn %3d %c l %2d c %4x (%x) \",\n // n, (isgraph(n) ? n : ' '), len, tree[n].Code, next_code[len]-1));\n }\n};\n\n\n/* ===========================================================================\n * Initialize the various 'constant' tables.\n */\nconst tr_static_init = () => {\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","export function getTag(tags, name, type) {\n if (!tags[name]) {\n throw new Error(`Missing ${name} tag`);\n }\n if (tags[name].type !== type) {\n throw new Error(`Expected ${name} to be of type ${type}, but found ${tags[name].type}`);\n }\n return tags[name].value;\n}\nexport function getListTag(tags, name, type, length) {\n const value = getTag(tags, name, 'list');\n if (value.type !== type) {\n throw new Error(`Expected ${name} to be a list of ${type}s, but found ${value.type}s`);\n }\n if (length && value.value.length !== length) {\n throw new Error(`Expected ${name} to be a list of length ${length}, but found length ${value.value.length}`);\n }\n return value.value;\n}\nexport function getOptional(readResult, fallback) {\n try {\n return readResult();\n }\n catch (e) {\n return fallback;\n }\n}\n//# sourceMappingURL=TagUtils.js.map","export var Json;\n(function (Json) {\n function readNumber(obj) {\n return typeof obj === 'number' ? obj : undefined;\n }\n Json.readNumber = readNumber;\n function readInt(obj) {\n return typeof obj === 'number' ? Math.floor(obj) : undefined;\n }\n Json.readInt = readInt;\n function readString(obj) {\n return typeof obj === 'string' ? obj : undefined;\n }\n Json.readString = readString;\n function readBoolean(obj) {\n return typeof obj === 'boolean' ? obj : undefined;\n }\n Json.readBoolean = readBoolean;\n function readObject(obj) {\n return typeof obj === 'object' && obj !== null\n ? obj\n : undefined;\n }\n Json.readObject = readObject;\n function readArray(obj, parser) {\n if (!Array.isArray(obj))\n return undefined;\n return obj.map(el => parser(el));\n }\n Json.readArray = readArray;\n function readMap(obj, parser) {\n const root = readObject(obj) ?? {};\n return Object.fromEntries(Object.entries(root).map(([k, v]) => [k, parser(v)]));\n }\n Json.readMap = readMap;\n function compose(obj, parser, mapper) {\n const result = parser(obj);\n return result ? mapper(result) : undefined;\n }\n Json.compose = compose;\n function readEnum(obj, values) {\n if (typeof obj !== 'string')\n return values[0];\n if (values.includes(obj))\n return obj;\n return values[0];\n }\n Json.readEnum = readEnum;\n})(Json || (Json = {}));\n//# sourceMappingURL=Json.js.map","export function lazy(getter) {\n let value = null;\n return () => {\n if (value == null) {\n value = getter();\n }\n return value;\n };\n}\nexport function computeIfAbsent(map, key, getter) {\n const existing = map.get(key);\n if (existing) {\n return existing;\n }\n const value = getter(key);\n map.set(key, value);\n return value;\n}\n//# sourceMappingURL=Util.js.map","export class Identifier {\n namespace;\n path;\n static DEFAULT_NAMESPACE = 'minecraft';\n static SEPARATOR = ':';\n constructor(namespace, path) {\n this.namespace = namespace;\n this.path = path;\n if (!namespace.match(/^[a-z0-9._-]*$/)) {\n throw new Error(`Non [a-z0-9._-] character in namespace of ${namespace}${Identifier.SEPARATOR}${path}`);\n }\n if (!path.match(/^[a-z0-9/._-]*$/)) {\n throw new Error(`Non [a-z0-9/._-] character in path of ${namespace}${Identifier.SEPARATOR}${path}`);\n }\n }\n equals(other) {\n if (this === other) {\n return true;\n }\n return this.namespace === other.namespace && this.path === other.path;\n }\n toString() {\n return this.namespace + Identifier.SEPARATOR + this.path;\n }\n withPrefix(prefix) {\n return new Identifier(this.namespace, prefix + this.path);\n }\n static create(path) {\n return new Identifier(this.DEFAULT_NAMESPACE, path);\n }\n static parse(id) {\n const sep = id.indexOf(this.SEPARATOR);\n if (sep >= 0) {\n const namespace = sep >= 1 ? id.substring(0, sep) : this.DEFAULT_NAMESPACE;\n const path = id.substring(sep + 1);\n return new Identifier(namespace, path);\n }\n return new Identifier(this.DEFAULT_NAMESPACE, id);\n }\n}\n//# sourceMappingURL=Identifier.js.map","import { getOptional, getTag } from '../nbt/index.js';\nimport { Json } from '../util/index.js';\nimport { Identifier } from './Identifier.js';\nexport class BlockState {\n properties;\n static AIR = new BlockState(Identifier.create('air'));\n static STONE = new BlockState(Identifier.create('stone'));\n static WATER = new BlockState(Identifier.create('water'), { level: '0' });\n static LAVA = new BlockState(Identifier.create('lava'), { level: '0' });\n name;\n constructor(name, properties = {}) {\n this.properties = properties;\n this.name = typeof name === 'string' ? Identifier.parse(name) : name;\n }\n getName() {\n return this.name;\n }\n getProperties() {\n return this.properties;\n }\n getProperty(key) {\n return this.properties[key];\n }\n isFluid() {\n return this.is(BlockState.WATER) || this.is(BlockState.LAVA);\n }\n equals(other) {\n if (!this.name.equals(other.name)) {\n return false;\n }\n return Object.keys(this.properties).every(p => {\n return other.properties[p] === this.properties[p];\n });\n }\n is(other) {\n return this.name.equals(other.name);\n }\n toString() {\n if (Object.keys(this.properties).length === 0) {\n return this.name.toString();\n }\n return `${this.name.toString()}[${Object.entries(this.properties).map(([k, v]) => k + '=' + v).join(',')}]`;\n }\n static fromNbt(nbt) {\n const name = Identifier.parse(getTag(nbt.value, 'Name', 'string'));\n const propsTag = getOptional(() => getTag(nbt.value, 'Properties', 'compound'), {});\n const properties = Object.keys(propsTag)\n .reduce((acc, k) => ({ ...acc, [k]: getTag(propsTag, k, 'string') }), {});\n return new BlockState(name, properties);\n }\n static fromJson(obj) {\n const root = Json.readObject(obj) ?? {};\n const name = Identifier.parse(Json.readString(root.Name) ?? BlockState.STONE.name.toString());\n const properties = Json.readMap(root.Properties, p => Json.readString(p) ?? '');\n return new BlockState(name, properties);\n }\n}\n//# sourceMappingURL=BlockState.js.map","export class PalettedContainer {\n size;\n defaultValue;\n storage;\n palette;\n constructor(size, defaultValue) {\n this.size = size;\n this.defaultValue = defaultValue;\n this.storage = Array(size).fill(0);\n this.palette = [defaultValue];\n }\n index(x, y, z) {\n return (x << 8) + (y << 4) + z;\n }\n get(x, y, z) {\n const id = this.storage[this.index(x, y, z)];\n return this.palette[id];\n }\n set(x, y, z, value) {\n let id = this.palette.findIndex(b => b.equals(value));\n if (id === -1) {\n id = this.palette.length;\n this.palette.push(value);\n }\n this.storage[this.index(x, y, z)] = id;\n }\n}\n//# sourceMappingURL=PalettedContainer.js.map","import { BlockState } from './BlockState.js';\nimport { PalettedContainer } from './PalettedContainer.js';\nexport class ChunkSection {\n minY;\n static WIDTH = 16;\n static SIZE = ChunkSection.WIDTH * ChunkSection.WIDTH * ChunkSection.WIDTH;\n states;\n constructor(minY) {\n this.minY = minY;\n this.states = new PalettedContainer(ChunkSection.SIZE, BlockState.AIR);\n }\n get minBlockY() {\n return this.minY << 4;\n }\n getBlockState(x, y, z) {\n return this.states.get(x, y, z);\n }\n setBlockState(x, y, z, state) {\n this.states.set(x, y, z, state);\n }\n}\n//# sourceMappingURL=ChunkSection.js.map","import { BlockState } from './BlockState.js';\nimport { ChunkSection } from './ChunkSection.js';\nexport class Chunk {\n minY;\n height;\n pos;\n sections;\n constructor(minY, height, pos) {\n this.minY = minY;\n this.height = height;\n this.pos = pos;\n this.sections = Array(this.sectionsCount).fill(null);\n }\n get maxY() {\n return this.minY + this.height;\n }\n get minSection() {\n return this.minY >> 4;\n }\n get maxSection() {\n return ((this.maxY - 1) >> 4) + 1;\n }\n get sectionsCount() {\n return this.maxSection - this.minSection;\n }\n getSectionIndex(y) {\n return (y >> 4) - this.minSection;\n }\n getBlockState(pos) {\n const [x, y, z] = pos;\n const section = this.sections[this.getSectionIndex(y)];\n return section?.getBlockState(x & 0xF, y & 0xF, z & 0xF) ?? BlockState.AIR;\n }\n setBlockState(pos, state) {\n const [x, y, z] = pos;\n const sectionIndex = this.getSectionIndex(y);\n let section = this.sections[sectionIndex];\n if (section === null) {\n if (state.equals(BlockState.AIR))\n return;\n section = this.getOrCreateSection(sectionIndex);\n }\n section.setBlockState(x & 0xF, y & 0xF, z & 0xF, state);\n }\n getOrCreateSection(index) {\n if (this.sections[index] == null) {\n this.sections[index] = new ChunkSection(this.minSection + index);\n }\n return this.sections[index];\n }\n}\n//# sourceMappingURL=Chunk.js.map","export var ChunkPos;\n(function (ChunkPos) {\n function create(x, z) {\n return [x, z];\n }\n ChunkPos.create = create;\n function fromBlockPos(blockPos) {\n return [blockPos[0] >> 4, blockPos[2] >> 4];\n }\n ChunkPos.fromBlockPos = fromBlockPos;\n function fromLong(long) {\n return [Number(long) & 0xFFFFFFFF, Number(long >> BigInt(32))];\n }\n ChunkPos.fromLong = fromLong;\n function toLong(chunkPos) {\n return asLong(chunkPos[0], chunkPos[1]);\n }\n ChunkPos.toLong = toLong;\n function asLong(x, z) {\n return BigInt(x & 0xFFFFFFFF) | BigInt(z & 0xFFFFFFFF) << BigInt(32);\n }\n ChunkPos.asLong = asLong;\n function minBlockX(chunkPos) {\n return chunkPos[0] << 4;\n }\n ChunkPos.minBlockX = minBlockX;\n function minBlockZ(chunkPos) {\n return chunkPos[1] << 4;\n }\n ChunkPos.minBlockZ = minBlockZ;\n function maxBlockX(chunkPos) {\n return (chunkPos[0] << 4) + 15;\n }\n ChunkPos.maxBlockX = maxBlockX;\n function maxBlockZ(chunkPos) {\n return (chunkPos[1] << 4) + 15;\n }\n ChunkPos.maxBlockZ = maxBlockZ;\n})(ChunkPos || (ChunkPos = {}));\n//# sourceMappingURL=ChunkPos.js.map","import { Identifier } from './Identifier.js';\nexport var Holder;\n(function (Holder) {\n function parser(registry, directParser) {\n return (obj) => {\n if (typeof obj === 'string') {\n return reference(registry, Identifier.parse(obj));\n }\n else {\n return direct(directParser(obj));\n }\n };\n }\n Holder.parser = parser;\n function direct(value, id) {\n return {\n value: () => value,\n key: () => id,\n };\n }\n Holder.direct = direct;\n function reference(registry, id) {\n return {\n value: () => registry.getOrThrow(id),\n key: () => id,\n };\n }\n Holder.reference = reference;\n})(Holder || (Holder = {}));\n//# sourceMappingURL=Holder.js.map","import { Holder } from './Holder.js';\nimport { Identifier } from './Identifier.js';\nexport class Registry {\n key;\n parser;\n static REGISTRY = new Registry(Identifier.create('root'));\n storage = new Map();\n builtin = new Map();\n constructor(key, parser) {\n this.key = key;\n this.parser = parser;\n }\n register(id, value, builtin) {\n this.storage.set(id.toString(), value);\n if (builtin) {\n this.builtin.set(id.toString(), value);\n }\n return Holder.reference(this, id);\n }\n delete(id) {\n const deleted = this.storage.delete(id.toString());\n this.builtin.delete(id.toString());\n return deleted;\n }\n keys() {\n return [...this.storage.keys()].map(e => Identifier.parse(e));\n }\n has(id) {\n return this.storage.has(id.toString());\n }\n get(id) {\n return this.storage.get(id.toString());\n }\n getOrThrow(id) {\n const value = this.storage.get(id.toString());\n if (value === undefined) {\n throw new Error(`Missing key in ${this.key.toString()}: ${id.toString()}`);\n }\n return value;\n }\n parse(obj) {\n if (!this.parser) {\n throw new Error(`No parser exists for ${this.key.toString()}`);\n }\n return this.parser(obj);\n }\n clear() {\n this.storage.clear();\n for (const [key, value] of this.builtin.entries()) {\n this.storage.set(key, value);\n }\n return this;\n }\n assign(other) {\n if (!this.key.equals(other.key)) {\n throw new Error(`Cannot assign registry of type ${other.key.toString()} to registry of type ${this.key.toString()}`);\n }\n for (const key of other.keys()) {\n this.storage.set(key.toString(), other.getOrThrow(key));\n }\n return this;\n }\n cloneEmpty() {\n return new Registry(this.key, this.parser);\n }\n forEach(fn) {\n for (const [key, value] of this.storage.entries()) {\n fn(Identifier.parse(key), value, this);\n }\n }\n map(fn) {\n return [...this.storage.entries()].map(([key, value]) => {\n return fn(Identifier.parse(key), value, this);\n });\n }\n}\n//# sourceMappingURL=Registry.js.map","import { getListTag, getOptional, getTag } from '../nbt/index.js';\nimport { BlockState } from './BlockState.js';\nexport class Structure {\n size;\n palette;\n blocks;\n blocksMap = [];\n constructor(size, palette = [], blocks = []) {\n this.size = size;\n this.palette = palette;\n this.blocks = blocks;\n blocks.forEach(block => {\n if (!this.isInside(block.pos)) {\n throw new Error(`Found block at ${block.pos} which is outside the structure bounds ${this.size}`);\n }\n this.blocksMap[block.pos[0] * size[1] * size[2] + block.pos[1] * size[2] + block.pos[2]] = block;\n });\n }\n getSize() {\n return this.size;\n }\n addBlock(pos, name, properties, nbt) {\n if (!this.isInside(pos)) {\n throw new Error(`Cannot add block at ${pos} outside the structure bounds ${this.size}`);\n }\n const blockState = new BlockState(name, properties);\n let state = this.palette.findIndex(b => b.equals(blockState));\n if (state === -1) {\n state = this.palette.length;\n this.palette.push(blockState);\n }\n this.blocks.push({ pos, state, nbt });\n this.blocksMap[pos[0] * this.size[1] * this.size[2] + pos[1] * this.size[2] + pos[2]] = { pos, state, nbt };\n return this;\n }\n getBlocks() {\n return this.blocks.map(b => ({\n pos: b.pos,\n state: this.palette[b.state],\n nbt: b.nbt,\n }));\n }\n getBlock(pos) {\n if (!this.isInside(pos))\n return null;\n const block = this.blocksMap[pos[0] * this.size[1] * this.size[2] + pos[1] * this.size[2] + pos[2]];\n if (!block)\n return null;\n const placedBlock = {\n pos: block.pos,\n state: this.palette[block.state],\n nbt: block.nbt,\n };\n return placedBlock;\n }\n isInside(pos) {\n return pos[0] >= 0 && pos[0] < this.size[0]\n && pos[1] >= 0 && pos[1] < this.size[1]\n && pos[2] >= 0 && pos[2] < this.size[2];\n }\n static fromNbt(nbt) {\n const size = getListTag(nbt.value, 'size', 'int', 3);\n const palette = getListTag(nbt.value, 'palette', 'compound')\n .map(tags => BlockState.fromNbt({ name: '', value: tags }));\n const blocks = getListTag(nbt.value, 'blocks', 'compound')\n .map(tags => {\n const pos = getListTag(tags, 'pos', 'int', 3);\n const state = getTag(tags, 'state', 'int');\n const nbt = getOptional(() => getTag(tags, 'nbt', 'compound'), undefined);\n return { pos, state, nbt };\n });\n return new Structure(size, palette, blocks);\n }\n}\n//# sourceMappingURL=Structure.js.map","export function square(x) {\n return x * x;\n}\nexport function clamp(x, min, max) {\n return Math.max(min, Math.min(max, x));\n}\nexport function lerp(a, b, c) {\n return b + a * (c - b);\n}\nexport function lerp2(a, b, c, d, e, f) {\n return lerp(b, lerp(a, c, d), lerp(a, e, f));\n}\nexport function lerp3(a, b, c, d, e, f, g, h, i, j, k) {\n return lerp(c, lerp2(a, b, d, e, f, g), lerp2(a, b, h, i, j, k));\n}\nexport function lazyLerp(a, b, c) {\n if (a === 0)\n return b();\n if (a === 1)\n return c();\n return b() + a * (c() - b());\n}\nexport function lazyLerp2(a, b, c, d, e, f) {\n return lazyLerp(b, () => lazyLerp(a, c, d), () => lazyLerp(a, e, f));\n}\nexport function lazyLerp3(a, b, c, d, e, f, g, h, i, j, k) {\n return lazyLerp(c, () => lazyLerp2(a, b, d, e, f, g), () => lazyLerp2(a, b, h, i, j, k));\n}\nexport function clampedLerp(a, b, c) {\n if (c < 0) {\n return a;\n }\n else if (c > 1) {\n return b;\n }\n else {\n return lerp(c, a, b);\n }\n}\nexport function inverseLerp(a, b, c) {\n return (a - b) / (c - b);\n}\nexport function smoothstep(x) {\n return x * x * x * (x * (x * 6 - 15) + 10);\n}\nexport function map(a, b, c, d, e) {\n return lerp(inverseLerp(a, b, c), d, e);\n}\nexport function clampedMap(a, b, c, d, e) {\n return clampedLerp(d, e, inverseLerp(a, b, c));\n}\nexport function binarySearch(n, n2, predicate) {\n let n3 = n2 - n;\n while (n3 > 0) {\n const n4 = Math.floor(n3 / 2);\n const n5 = n + n4;\n if (predicate(n5)) {\n n3 = n4;\n continue;\n }\n n = n5 + 1;\n n3 -= n4 + 1;\n }\n return n;\n}\nexport function getSeed(x, y, z) {\n let seed = BigInt(x * 3129871) ^ BigInt(z) * BigInt(116129781) ^ BigInt(y);\n seed = seed * seed * BigInt(42317861) + seed * BigInt(11);\n return seed >> BigInt(16);\n}\nexport function longfromBytes(a, b, c, d, e, f, g, h) {\n return BigInt(a) << BigInt(56)\n | BigInt(b) << BigInt(48)\n | BigInt(c) << BigInt(40)\n | BigInt(d) << BigInt(32)\n | BigInt(e) << BigInt(24)\n | BigInt(f) << BigInt(16)\n | BigInt(g) << BigInt(8)\n | BigInt(h);\n}\nexport function isPowerOfTwo(x) {\n return (x & (x - 1)) === 0;\n}\nexport function upperPowerOfTwo(x) {\n x -= 1;\n x |= x >> 1;\n x |= x >> 2;\n x |= x >> 4;\n x |= x >> 8;\n x |= x >> 18;\n x |= x >> 32;\n return x + 1;\n}\n//# sourceMappingURL=Util.js.map","import { Json } from '../util/index.js';\nimport { binarySearch, lerp } from './Util.js';\nexport var MinMaxNumberFunction;\n(function (MinMaxNumberFunction) {\n function is(obj) {\n return typeof obj === 'object' && obj !== null && 'minValue' in obj && 'maxValue' in obj;\n }\n MinMaxNumberFunction.is = is;\n})(MinMaxNumberFunction || (MinMaxNumberFunction = {}));\nexport var CubicSpline;\n(function (CubicSpline) {\n function fromJson(obj, extractor) {\n if (typeof obj === 'number') {\n return new Constant(obj);\n }\n const root = Json.readObject(obj) ?? {};\n const spline = new MultiPoint(extractor(root.coordinate));\n const points = Json.readArray(root.points, e => Json.readObject(e) ?? {}) ?? [];\n if (points.length === 0) {\n return new Constant(0);\n }\n for (const point of points) {\n const location = Json.readNumber(point.location) ?? 0;\n const value = fromJson(point.value, extractor);\n const derivative = Json.readNumber(point.derivative) ?? 0;\n spline.addPoint(location, value, derivative);\n }\n return spline;\n }\n CubicSpline.fromJson = fromJson;\n class Constant {\n value;\n constructor(value) {\n this.value = value;\n }\n compute() {\n return this.value;\n }\n min() {\n return this.value;\n }\n max() {\n return this.value;\n }\n mapAll() {\n return this;\n }\n calculateMinMax() { }\n }\n CubicSpline.Constant = Constant;\n class MultiPoint {\n coordinate;\n locations;\n values;\n derivatives;\n calculatedMin = Number.NEGATIVE_INFINITY;\n calculatedMax = Number.POSITIVE_INFINITY;\n constructor(coordinate, locations = [], values = [], derivatives = []) {\n this.coordinate = coordinate;\n this.locations = locations;\n this.values = values;\n this.derivatives = derivatives;\n }\n compute(c) {\n const coordinate = this.coordinate.compute(c);\n const i = binarySearch(0, this.locations.length, n => coordinate < this.locations[n]) - 1;\n const n = this.locations.length - 1;\n if (i < 0) {\n return this.values[0].compute(c) + this.derivatives[0] * (coordinate - this.locations[0]); //TODO: us linear extend for this \n }\n if (i === n) {\n return this.values[n].compute(c) + this.derivatives[n] * (coordinate - this.locations[n]); //TODO: us linear extend for this \n }\n const loc0 = this.locations[i];\n const loc1 = this.locations[i + 1];\n const der0 = this.derivatives[i];\n const der1 = this.derivatives[i + 1];\n const f = (coordinate - loc0) / (loc1 - loc0);\n const val0 = this.values[i].compute(c);\n const val1 = this.values[i + 1].compute(c);\n const f8 = der0 * (loc1 - loc0) - (val1 - val0);\n const f9 = -der1 * (loc1 - loc0) + (val1 - val0);\n const f10 = lerp(f, val0, val1) + f * (1.0 - f) * lerp(f, f8, f9);\n return f10;\n }\n min() {\n return this.calculatedMin;\n }\n max() {\n return this.calculatedMax;\n }\n mapAll(visitor) {\n return new MultiPoint(visitor(this.coordinate), this.locations, this.values.map(v => v.mapAll(visitor)), this.derivatives);\n }\n addPoint(location, value, derivative = 0) {\n this.locations.push(location);\n this.values.push(typeof value === 'number'\n ? new CubicSpline.Constant(value)\n : value);\n this.derivatives.push(derivative);\n return this;\n }\n calculateMinMax() {\n if (!MinMaxNumberFunction.is(this.coordinate)) {\n return;\n }\n const lastIdx = this.locations.length - 1;\n var splineMin = Number.POSITIVE_INFINITY;\n var splineMax = Number.NEGATIVE_INFINITY;\n const coordinateMin = this.coordinate.minValue();\n const coordinateMax = this.coordinate.maxValue();\n for (const innerSpline of this.values) {\n innerSpline.calculateMinMax();\n }\n if (coordinateMin < this.locations[0]) {\n const minExtend = MultiPoint.linearExtend(coordinateMin, this.locations, (this.values[0]).min(), this.derivatives, 0);\n const maxExtend = MultiPoint.linearExtend(coordinateMin, this.locations, (this.values[0]).max(), this.derivatives, 0);\n splineMin = Math.min(splineMin, Math.min(minExtend, maxExtend));\n splineMax = Math.max(splineMax, Math.max(minExtend, maxExtend));\n }\n if (coordinateMax > this.locations[lastIdx]) {\n const minExtend = MultiPoint.linearExtend(coordinateMax, this.locations, (this.values[lastIdx]).min(), this.derivatives, lastIdx);\n const maxExtend = MultiPoint.linearExtend(coordinateMax, this.locations, (this.values[lastIdx]).max(), this.derivatives, lastIdx);\n splineMin = Math.min(splineMin, Math.min(minExtend, maxExtend));\n splineMax = Math.max(splineMax, Math.max(minExtend, maxExtend));\n }\n for (const innerSpline of this.values) {\n splineMin = Math.min(splineMin, innerSpline.min());\n splineMax = Math.max(splineMax, innerSpline.max());\n }\n for (var i = 0; i < lastIdx; ++i) {\n const locationLeft = this.locations[i];\n const locationRight = this.locations[i + 1];\n const locationDelta = locationRight - locationLeft;\n const splineLeft = this.values[i];\n const splineRight = this.values[i + 1];\n const minLeft = splineLeft.min();\n const maxLeft = splineLeft.max();\n const minRight = splineRight.min();\n const maxRight = splineRight.max();\n const derivativeLeft = this.derivatives[i];\n const derivativeRight = this.derivatives[i + 1];\n if (derivativeLeft !== 0.0 || derivativeRight !== 0.0) {\n const maxValueDeltaLeft = derivativeLeft * locationDelta;\n const maxValueDeltaRight = derivativeRight * locationDelta;\n const minValue = Math.min(minLeft, minRight);\n const maxValue = Math.max(maxLeft, maxRight);\n const minDeltaLeft = maxValueDeltaLeft - maxRight + minLeft;\n const maxDeltaLeft = maxValueDeltaLeft - minRight + maxLeft;\n const minDeltaRight = -maxValueDeltaRight + minRight - maxLeft;\n const maxDeltaRight = -maxValueDeltaRight + maxRight - minLeft;\n const minDelta = Math.min(minDeltaLeft, minDeltaRight);\n const maxDelta = Math.max(maxDeltaLeft, maxDeltaRight);\n splineMin = Math.min(splineMin, minValue + 0.25 * minDelta);\n splineMax = Math.max(splineMax, maxValue + 0.25 * maxDelta);\n }\n }\n this.calculatedMin = splineMin;\n this.calculatedMax = splineMax;\n }\n static linearExtend(location, locations, value, derivatives, useIndex) {\n const derivative = derivatives[useIndex];\n return derivative == 0.0 ? value : value + derivative * (location - locations[useIndex]);\n }\n }\n CubicSpline.MultiPoint = MultiPoint;\n})(CubicSpline || (CubicSpline = {}));\n//# sourceMappingURL=CubicSpline.js.map","(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 <https://feross.org>\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 md5 from 'md5';\nimport { getSeed, longfromBytes } from '../Util.js';\nexport class LegacyRandom {\n static MODULUS_BITS = 48;\n static MODULUS_MASK = BigInt('281474976710655');\n static MULTIPLIER = BigInt('25214903917');\n static INCREMENT = BigInt('11');\n static FLOAT_MULTIPLIER = 1 / Math.pow(2, 24);\n static DOUBLE_MULTIPLIER = 1 / Math.pow(2, 30);\n seed = BigInt(0);\n constructor(seed) {\n this.setSeed(seed);\n }\n fork() {\n return new LegacyRandom(this.nextLong());\n }\n forkPositional() {\n return new LegacyPositionalRandom(this.nextLong());\n }\n setSeed(seed) {\n this.seed = seed ^ LegacyRandom.MULTIPLIER & LegacyRandom.MODULUS_MASK;\n }\n advance() {\n this.seed = this.seed * LegacyRandom.MULTIPLIER + LegacyRandom.INCREMENT & LegacyRandom.MODULUS_MASK;\n }\n consume(count) {\n for (let i = 0; i < count; i += 1) {\n this.advance();\n }\n }\n next(bits) {\n this.advance();\n const out = Number(this.seed >> BigInt(LegacyRandom.MODULUS_BITS - bits));\n return out > 2147483647 ? out - 4294967296 : out;\n }\n nextInt(max) {\n if (max === undefined) {\n return this.next(32);\n }\n if ((max & max - 1) == 0) { // If max is a power of two\n return Number(BigInt(max) * BigInt(this.next(31)) >> BigInt(31));\n }\n let a, b;\n while ((a = this.next(31)) - (b = a % max) + (max - 1) < 0) { }\n return b;\n }\n nextLong() {\n return (BigInt(this.next(32)) << BigInt(32)) + BigInt(this.next(32));\n }\n nextFloat() {\n return this.next(24) * LegacyRandom.FLOAT_MULTIPLIER;\n }\n nextDouble() {\n const a = this.next(30);\n this.advance();\n return a * LegacyRandom.DOUBLE_MULTIPLIER;\n }\n}\nexport class LegacyPositionalRandom {\n seed;\n constructor(seed) {\n this.seed = seed;\n }\n at(x, y, z) {\n const seed = getSeed(x, y, z);\n return new LegacyRandom(seed ^ this.seed);\n }\n fromHashOf(name) {\n const hash = md5(name, { asBytes: true });\n const seed = longfromBytes(hash[0], hash[1], hash[2], hash[3], hash[4], hash[5], hash[6], hash[7]);\n return new LegacyRandom(seed ^ this.seed);\n }\n seedKey() {\n return [this.seed, BigInt(0)];\n }\n}\n//# sourceMappingURL=LegacyRandom.js.map","import md5 from 'md5';\nimport { getSeed, longfromBytes } from '../Util.js';\nexport class XoroshiroRandom {\n static SILVER_RATIO_64 = BigInt('7640891576956012809');\n static GOLDEN_RATIO_64 = BigInt('-7046029254386353131');\n static FLOAT_MULTIPLIER = 1 / Math.pow(2, 24);\n static DOUBLE_MULTIPLIER = 1.1102230246251565E-16;\n static BIGINT_1 = BigInt(1);\n static BIGINT_17 = BigInt(17);\n static BIGINT_21 = BigInt(21);\n static BIGINT_27 = BigInt(27);\n static BIGINT_28 = BigInt(28);\n static BIGINT_30 = BigInt(30);\n static BIGINT_31 = BigInt(31);\n static BIGINT_32 = BigInt(32);\n static BIGINT_49 = BigInt(49);\n static BIGINT_64 = BigInt(64);\n static STAFFORD_1 = BigInt('-4658895280553007687');\n static STAFFORD_2 = BigInt('-7723592293110705685');\n static MAX_ULONG = BigInt('0xFFFFFFFFFFFFFFFF');\n static POW2_60 = BigInt('0x10000000000000000');\n static POW2_63 = BigInt('0x8000000000000000');\n static MAX_UINT = BigInt(0xFFFFFFFF);\n seed = [BigInt(0), BigInt(0)];\n constructor(seed) {\n this.seed = seed;\n }\n static create(seed) {\n return new XoroshiroRandom(XoroshiroRandom.upgradeSeedTo128bit(seed));\n }\n static mixStafford13(value) {\n value = ((value ^ value >> XoroshiroRandom.BIGINT_30) * XoroshiroRandom.STAFFORD_1) & XoroshiroRandom.MAX_ULONG;\n value = ((value ^ value >> XoroshiroRandom.BIGINT_27) * XoroshiroRandom.STAFFORD_2) & XoroshiroRandom.MAX_ULONG;\n return (value ^ value >> XoroshiroRandom.BIGINT_31) & XoroshiroRandom.MAX_ULONG;\n }\n static upgradeSeedTo128bit(seed) {\n if (seed < 0) {\n seed += XoroshiroRandom.POW2_60;\n }\n const seedLo = seed ^ XoroshiroRandom.SILVER_RATIO_64;\n const seedHi = (seedLo + XoroshiroRandom.GOLDEN_RATIO_64) & XoroshiroRandom.MAX_ULONG;\n return [XoroshiroRandom.mixStafford13(seedLo), XoroshiroRandom.mixStafford13(seedHi)];\n }\n static rotateLeft(value, shift) {\n return (value << shift) & (XoroshiroRandom.MAX_ULONG) | (value >> (XoroshiroRandom.BIGINT_64 - shift));\n }\n setSeed(seed) {\n this.seed = XoroshiroRandom.upgradeSeedTo128bit(seed);\n }\n fork() {\n return new XoroshiroRandom([this.next(), this.next()]);\n }\n forkPositional() {\n return new XoroshiroPositionalRandom(this.next(), this.next());\n }\n next() {\n const seedLo = this.seed[0];\n let seedHi = this.seed[1];\n const value = (XoroshiroRandom.rotateLeft((seedLo + seedHi) & XoroshiroRandom.MAX_ULONG, XoroshiroRandom.BIGINT_17) + seedLo) & XoroshiroRandom.MAX_ULONG;\n seedHi ^= seedLo;\n this.seed = [\n XoroshiroRandom.rotateLeft(seedLo, XoroshiroRandom.BIGINT_49) ^ seedHi ^ ((seedHi << XoroshiroRandom.BIGINT_21) & XoroshiroRandom.MAX_ULONG),\n XoroshiroRandom.rotateLeft(seedHi, XoroshiroRandom.BIGINT_28),\n ];\n return value;\n }\n nextLong() {\n let value = this.next();\n if (value > XoroshiroRandom.POW2_63)\n value -= XoroshiroRandom.POW2_60;\n return value;\n }\n consume(count) {\n let seedLo = this.seed[0];\n let seedHi = this.seed[1];\n for (let i = 0; i < count; i += 1) {\n seedHi ^= seedLo;\n seedLo = XoroshiroRandom.rotateLeft(seedLo, XoroshiroRandom.BIGINT_49) ^ seedHi ^ seedHi << XoroshiroRandom.BIGINT_21;\n seedHi = XoroshiroRandom.rotateLeft(seedHi, XoroshiroRandom.BIGINT_28);\n }\n this.seed = [seedLo, seedHi];\n }\n nextBits(bits) {\n return this.next() >> (BigInt(64 - bits));\n }\n nextInt(max) {\n let value = this.next() & XoroshiroRandom.MAX_UINT;\n if (!max) {\n let result = Number(value);\n if (result >= 0x80000000) {\n result -= 0x100000000;\n }\n return result;\n }\n else {\n const maxBigint = BigInt(max);\n let product = value * maxBigint;\n let productLo = product & XoroshiroRandom.MAX_UINT;\n if (productLo < maxBigint) {\n const newMax = ((~maxBigint & XoroshiroRandom.MAX_UINT) + XoroshiroRandom.BIGINT_1) % maxBigint;\n while (productLo < newMax) {\n value = this.next() & XoroshiroRandom.MAX_UINT;\n product = value * maxBigint;\n productLo = product & XoroshiroRandom.MAX_UINT;\n }\n }\n const productHi = product >> XoroshiroRandom.BIGINT_32;\n return Number(productHi);\n }\n }\n nextFloat() {\n return Number(this.nextBits(24)) * XoroshiroRandom.FLOAT_MULTIPLIER;\n }\n nextDouble() {\n return Number(this.nextBits(53)) * XoroshiroRandom.DOUBLE_MULTIPLIER;\n }\n parityConfigString() {\n return 'seedLo: ' + this.seed[0] + ', seedHi: ' + this.seed[1];\n }\n}\nexport class XoroshiroPositionalRandom {\n seedLo;\n seedHi;\n constructor(seedLo, seedHi) {\n this.seedLo = seedLo;\n this.seedHi = seedHi;\n }\n at(x, y, z) {\n const positionSeed = getSeed(x, y, z);\n const seedLo = positionSeed ^ this.seedLo;\n return new XoroshiroRandom([seedLo, this.seedHi]);\n }\n fromHashOf(name) {\n const hash = md5(name, { asBytes: true });\n const lo = longfromBytes(hash[0], hash[1], hash[2], hash[3], hash[4], hash[5], hash[6], hash[7]);\n const hi = longfromBytes(hash[8], hash[9], hash[10], hash[11], hash[12], hash[13], hash[14], hash[15]);\n return new XoroshiroRandom([lo ^ this.seedLo, hi ^ this.seedHi]);\n }\n seedKey() {\n return [this.seedLo, this.seedHi];\n }\n}\n//# sourceMappingURL=XoroshiroRandom.js.map","export class SimplexNoise {\n static GRADIENT = [[1, 1, 0], [-1, 1, 0], [1, -1, 0], [-1, -1, 0], [1, 0, 1], [-1, 0, 1], [1, 0, -1], [-1, 0, -1], [0, 1, 1], [0, -1, 1], [0, 1, -1], [0, -1, -1], [1, 1, 0], [0, -1, 1], [-1, 1, 0], [0, -1, -1]];\n static F2 = 0.5 * (Math.sqrt(3.0) - 1.0);\n static G2 = (3.0 - Math.sqrt(3.0)) / 6.0;\n p;\n xo;\n yo;\n zo;\n constructor(random) {\n this.xo = random.nextDouble() * 256;\n this.yo = random.nextDouble() * 256;\n this.zo = random.nextDouble() * 256;\n this.p = Array(256);\n for (let i = 0; i < 256; i += 1) {\n this.p[i] = i;\n }\n for (let i = 0; i < 256; i += 1) {\n const j = random.nextInt(256 - i);\n const b = this.p[i];\n this.p[i] = this.p[i + j];\n this.p[i + j] = b;\n }\n }\n sample2D(d, d2) {\n let d3;\n let n3;\n let d4;\n const d6 = (d + d2) * SimplexNoise.F2;\n const n4 = Math.floor(d + d6);\n const d7 = n4 - (d3 = (n4 + (n3 = Math.floor(d2 + d6))) * SimplexNoise.G2);\n const d8 = d - d7;\n let a;\n let b;\n if (d8 > (d4 = d2 - (n3 - d3))) {\n a = 1;\n b = 0;\n }\n else {\n a = 0;\n b = 1;\n }\n const d9 = d8 - a + SimplexNoise.G2;\n const d10 = d4 - b + SimplexNoise.G2;\n const d11 = d8 - 1.0 + 2.0 * SimplexNoise.G2;\n const d12 = d4 - 1.0 + 2.0 * SimplexNoise.G2;\n const n5 = n4 & 0xFF;\n const n6 = n3 & 0xFF;\n const n7 = this.P(n5 + this.P(n6)) % 12;\n const n8 = this.P(n5 + a + this.P(n6 + b)) % 12;\n const n9 = this.P(n5 + 1 + this.P(n6 + 1)) % 12;\n const d13 = this.getCornerNoise3D(n7, d8, d4, 0.0, 0.5);\n const d14 = this.getCornerNoise3D(n8, d9, d10, 0.0, 0.5);\n const d15 = this.getCornerNoise3D(n9, d11, d12, 0.0, 0.5);\n return 70.0 * (d13 + d14 + d15);\n }\n sample(x, y, z) {\n const d5 = (x + y + z) * 0.3333333333333333;\n const x2 = Math.floor(x + d5);\n const y2 = Math.floor(y + d5);\n const z2 = Math.floor(z + d5);\n const d7 = (x2 + y2 + z2) * 0.16666666666666666;\n const x3 = x - (x2 - d7);\n const y3 = y - (y2 - d7);\n const z3 = z - (z2 - d7);\n let a;\n let b;\n let c;\n let d;\n let e;\n let f;\n if (x3 >= y3) {\n if (y3 >= z3) {\n a = 1;\n b = 0;\n c = 0;\n d = 1;\n e = 1;\n f = 0;\n }\n else if (x3 >= z3) {\n a = 1;\n b = 0;\n c = 0;\n d = 1;\n e = 0;\n f = 1;\n }\n else {\n a = 0;\n b = 0;\n c = 1;\n d = 1;\n e = 0;\n f = 1;\n }\n }\n else if (y3 < z3) {\n a = 0;\n b = 0;\n c = 1;\n d = 0;\n e = 1;\n f = 1;\n }\n else if (x3 < z3) {\n a = 0;\n b = 1;\n c = 0;\n d = 0;\n e = 1;\n f = 1;\n }\n else {\n a = 0;\n b = 1;\n c = 0;\n d = 1;\n e = 1;\n f = 0;\n }\n const x4 = x3 - a + 0.16666666666666666;\n const y4 = y3 - b + 0.16666666666666666;\n const z4 = z3 - c + 0.16666666666666666;\n const x5 = x3 - d + 0.3333333333333333;\n const y5 = y3 - e + 0.3333333333333333;\n const z5 = z3 - f + 0.3333333333333333;\n const x6 = x3 - 0.5;\n const y6 = y3 - 0.5;\n const z6 = z3 - 0.5;\n const x7 = x2 & 0xFF;\n const y7 = y2 & 0xFF;\n const z7 = z2 & 0xFF;\n const g = this.P(x7 + this.P(y7 + this.P(z7))) % 12;\n const h = this.P(x7 + a + this.P(y7 + b + this.P(z7 + c))) % 12;\n const i = this.P(x7 + d + this.P(y7 + e + this.P(z7 + f))) % 12;\n const j = this.P(x7 + 1 + this.P(y7 + 1 + this.P(z7 + 1))) % 12;\n const k = this.getCornerNoise3D(g, x3, y3, z3, 0.6);\n const l = this.getCornerNoise3D(h, x4, y4, z4, 0.6);\n const m = this.getCornerNoise3D(i, x5, y5, z5, 0.6);\n const n = this.getCornerNoise3D(j, x6, y6, z6, 0.6);\n return 32.0 * (k + l + m + n);\n }\n P(i) {\n return this.p[i & 0xFF];\n }\n getCornerNoise3D(i, a, b, c, d) {\n let f;\n let e = d - a * a - b * b - c * c;\n if (e < 0.0) {\n f = 0.0;\n }\n else {\n e *= e;\n f = e * e * SimplexNoise.gradDot(i, a, b, c);\n }\n return f;\n }\n static gradDot(a, b, c, d) {\n const grad = SimplexNoise.GRADIENT[a & 15];\n return grad[0] * b + grad[1] * c + grad[2] * d;\n }\n}\n//# sourceMappingURL=SimplexNoise.js.map","import { lerp3, smoothstep } from '../Util.js';\nimport { SimplexNoise } from './SimplexNoise.js';\nexport class ImprovedNoise {\n p;\n xo;\n yo;\n zo;\n constructor(random) {\n this.xo = random.nextDouble() * 256;\n this.yo = random.nextDouble() * 256;\n this.zo = random.nextDouble() * 256;\n this.p = Array(256);\n for (let i = 0; i < 256; i += 1) {\n this.p[i] = i > 127 ? i - 256 : i;\n }\n for (let i = 0; i < 256; i += 1) {\n const j = random.nextInt(256 - i);\n const b = this.p[i];\n this.p[i] = this.p[i + j];\n this.p[i + j] = b;\n }\n }\n sample(x, y, z, yScale = 0, yLimit = 0) {\n const x2 = x + this.xo;\n const y2 = y + this.yo;\n const z2 = z + this.zo;\n const x3 = Math.floor(x2);\n const y3 = Math.floor(y2);\n const z3 = Math.floor(z2);\n const x4 = x2 - x3;\n const y4 = y2 - y3;\n const z4 = z2 - z3;\n let y6 = 0;\n if (yScale !== 0) {\n const t = yLimit >= 0 && yLimit < y4 ? yLimit : y4;\n y6 = Math.floor(t / yScale + 1e-7) * yScale;\n }\n return this.sampleAndLerp(x3, y3, z3, x4, y4 - y6, z4, y4);\n }\n sampleAndLerp(a, b, c, d, e, f, g) {\n const h = this.P(a);\n const i = this.P(a + 1);\n const j = this.P(h + b);\n const k = this.P(h + b + 1);\n const l = this.P(i + b);\n const m = this.P(i + b + 1);\n const n = SimplexNoise.gradDot(this.P(j + c), d, e, f);\n const o = SimplexNoise.gradDot(this.P(l + c), d - 1.0, e, f);\n const p = SimplexNoise.gradDot(this.P(k + c), d, e - 1.0, f);\n const q = SimplexNoise.gradDot(this.P(m + c), d - 1.0, e - 1.0, f);\n const r = SimplexNoise.gradDot(this.P(j + c + 1), d, e, f - 1.0);\n const s = SimplexNoise.gradDot(this.P(l + c + 1), d - 1.0, e, f - 1.0);\n const t = SimplexNoise.gradDot(this.P(k + c + 1), d, e - 1.0, f - 1.0);\n const u = SimplexNoise.gradDot(this.P(m + c + 1), d - 1.0, e - 1.0, f - 1.0);\n const v = smoothstep(d);\n const w = smoothstep(g);\n const x = smoothstep(f);\n return lerp3(v, w, x, n, o, p, q, r, s, t, u);\n }\n P(i) {\n return this.p[i & 0xFF] & 0xFF;\n }\n}\n//# sourceMappingURL=ImprovedNoise.js.map","import { XoroshiroRandom } from '../random/index.js';\nimport { ImprovedNoise } from './ImprovedNoise.js';\nexport class PerlinNoise {\n noiseLevels;\n amplitudes;\n lowestFreqInputFactor;\n lowestFreqValueFactor;\n maxValue;\n constructor(random, firstOctave, amplitudes) {\n if (random instanceof XoroshiroRandom) {\n const forkedRandom = random.forkPositional();\n this.noiseLevels = Array(amplitudes.length);\n for (let i = 0; i < amplitudes.length; i++) {\n if (amplitudes[i] !== 0.0) {\n const octave = firstOctave + i;\n this.noiseLevels[i] = new ImprovedNoise(forkedRandom.fromHashOf('octave_' + octave));\n }\n }\n }\n else {\n if (1 - firstOctave < amplitudes.length) {\n throw new Error('Positive octaves are not allowed when using LegacyRandom');\n }\n this.noiseLevels = Array(amplitudes.length);\n for (let i = -firstOctave; i >= 0; i -= 1) {\n if (i < amplitudes.length && amplitudes[i] !== 0) {\n this.noiseLevels[i] = new ImprovedNoise(random);\n }\n else {\n random.consume(262);\n }\n }\n }\n this.amplitudes = amplitudes;\n this.lowestFreqInputFactor = Math.pow(2, firstOctave);\n this.lowestFreqValueFactor = Math.pow(2, (amplitudes.length - 1)) / (Math.pow(2, amplitudes.length) - 1);\n this.maxValue = this.edgeValue(2);\n }\n sample(x, y, z, yScale = 0, yLimit = 0, fixY = false) {\n let value = 0;\n let inputF = this.lowestFreqInputFactor;\n let valueF = this.lowestFreqValueFactor;\n for (let i = 0; i < this.noiseLevels.length; i += 1) {\n const noise = this.noiseLevels[i];\n if (noise) {\n value += this.amplitudes[i] * valueF * noise.sample(PerlinNoise.wrap(x * inputF), fixY ? -noise.yo : PerlinNoise.wrap(y * inputF), PerlinNoise.wrap(z * inputF), yScale * inputF, yLimit * inputF);\n }\n inputF *= 2;\n valueF /= 2;\n }\n return value;\n }\n getOctaveNoise(i) {\n return this.noiseLevels[this.noiseLevels.length - 1 - i];\n }\n edgeValue(x) {\n let value = 0;\n let valueF = this.lowestFreqValueFactor;\n for (let i = 0; i < this.noiseLevels.length; i += 1) {\n if (this.noiseLevels[i]) {\n value += this.amplitudes[i] * x * valueF;\n }\n valueF /= 2;\n }\n return value;\n }\n static wrap(value) {\n return value - Math.floor(value / 3.3554432E7 + 0.5) * 3.3554432E7;\n }\n}\n//# sourceMappingURL=PerlinNoise.js.map","import { clampedLerp } from '../Util.js';\nimport { PerlinNoise } from './PerlinNoise.js';\nexport class BlendedNoise {\n xzScale;\n yScale;\n xzFactor;\n yFactor;\n smearScaleMultiplier;\n minLimitNoise;\n maxLimitNoise;\n mainNoise;\n xzMultiplier;\n yMultiplier;\n maxValue;\n constructor(random, xzScale, yScale, xzFactor, yFactor, smearScaleMultiplier) {\n this.xzScale = xzScale;\n this.yScale = yScale;\n this.xzFactor = xzFactor;\n this.yFactor = yFactor;\n this.smearScaleMultiplier = smearScaleMultiplier;\n this.minLimitNoise = new PerlinNoise(random, -15, [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]);\n this.maxLimitNoise = new PerlinNoise(random, -15, [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]);\n this.mainNoise = new PerlinNoise(random, -7, [1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0]);\n this.xzMultiplier = 684.412 * xzScale;\n this.yMultiplier = 684.412 * yScale;\n this.maxValue = this.minLimitNoise.edgeValue(this.yScale + 2); //TODO\n }\n sample(x, y, z) {\n const scaledX = x * this.xzMultiplier;\n const scaledY = y * this.yMultiplier;\n const scaledZ = z * this.xzMultiplier;\n const factoredX = scaledX / this.xzFactor;\n const factoredY = scaledY / this.yFactor;\n const factoredZ = scaledZ / this.xzFactor;\n const smear = this.yMultiplier * this.smearScaleMultiplier;\n const factoredSmear = smear / this.yFactor;\n let noise;\n let value = 0;\n let factor = 1;\n for (let i = 0; i < 8; i += 1) {\n noise = this.mainNoise.getOctaveNoise(i);\n if (noise) {\n const xx = PerlinNoise.wrap(factoredX * factor);\n const yy = PerlinNoise.wrap(factoredY * factor);\n const zz = PerlinNoise.wrap(factoredZ * factor);\n value += noise.sample(xx, yy, zz, factoredSmear * factor, factoredY * factor) / factor;\n }\n factor /= 2;\n }\n value = (value / 10 + 1) / 2;\n factor = 1;\n let min = 0;\n let max = 0;\n for (let i = 0; i < 16; i += 1) {\n const xx = PerlinNoise.wrap(scaledX * factor);\n const yy = PerlinNoise.wrap(scaledY * factor);\n const zz = PerlinNoise.wrap(scaledZ * factor);\n const smearsmear = smear * factor;\n if (value < 1 && (noise = this.minLimitNoise.getOctaveNoise(i))) {\n min += noise.sample(xx, yy, zz, smearsmear, scaledY * factor) / factor;\n }\n if (value > 0 && (noise = this.maxLimitNoise.getOctaveNoise(i))) {\n max += noise.sample(xx, yy, zz, smearsmear, scaledY * factor) / factor;\n }\n factor /= 2;\n }\n return clampedLerp(min / 512, max / 512, value) / 128;\n }\n}\n//# sourceMappingURL=BlendedNoise.js.map","import { Json } from '../../util/index.js';\nimport { PerlinNoise } from './PerlinNoise.js';\nexport class NormalNoise {\n static INPUT_FACTOR = 1.0181268882175227;\n valueFactor;\n first;\n second;\n maxValue;\n constructor(random, { firstOctave, amplitudes }) {\n this.first = new PerlinNoise(random, firstOctave, amplitudes);\n this.second = new PerlinNoise(random, firstOctave, amplitudes);\n let min = +Infinity;\n let max = -Infinity;\n for (let i = 0; i < amplitudes.length; i += 1) {\n if (amplitudes[i] !== 0) {\n min = Math.min(min, i);\n max = Math.max(max, i);\n }\n }\n const expectedDeviation = 0.1 * (1 + 1 / (max - min + 1));\n this.valueFactor = (1 / 6) / expectedDeviation;\n this.maxValue = (this.first.maxValue + this.second.maxValue) * this.valueFactor;\n }\n sample(x, y, z) {\n const x2 = x * NormalNoise.INPUT_FACTOR;\n const y2 = y * NormalNoise.INPUT_FACTOR;\n const z2 = z * NormalNoise.INPUT_FACTOR;\n return (this.first.sample(x, y, z) + this.second.sample(x2, y2, z2)) * this.valueFactor;\n }\n}\nexport var NoiseParameters;\n(function (NoiseParameters) {\n function create(firstOctave, amplitudes) {\n return { firstOctave, amplitudes };\n }\n NoiseParameters.create = create;\n function fromJson(obj) {\n const root = Json.readObject(obj) ?? {};\n return {\n firstOctave: Json.readInt(root.firstOctave) ?? 0,\n amplitudes: Json.readArray(root.amplitudes, e => Json.readNumber(e) ?? 0) ?? [],\n };\n }\n NoiseParameters.fromJson = fromJson;\n})(NoiseParameters || (NoiseParameters = {}));\n//# sourceMappingURL=NormalNoise.js.map","import { SimplexNoise } from './SimplexNoise.js';\nexport class PerlinSimplexNoise {\n noiseLevels;\n highestFreqInputFactor;\n highestFreqValueFactor;\n constructor(random, octaves) {\n const lastOctave = octaves[octaves.length - 1];\n const negFirstOctave = -octaves[0];\n const range = negFirstOctave + lastOctave + 1;\n const octavesSet = new Set(octaves);\n const noise = new SimplexNoise(random);\n this.noiseLevels = Array(range);\n if (lastOctave >= 0 && lastOctave < range && octavesSet.has(0)) {\n this.noiseLevels[lastOctave] = noise;\n }\n for (let i = lastOctave + 1; i < range; i += 1) {\n if (i >= 0 && octavesSet.has(lastOctave - i)) {\n this.noiseLevels[i] = new SimplexNoise(random);\n }\n else {\n random.consume(262);\n }\n }\n if (lastOctave > 0) {\n throw new Error('Positive octaves are not allowed');\n }\n this.highestFreqInputFactor = Math.pow(2, lastOctave);\n this.highestFreqValueFactor = 1 / (Math.pow(2, range) - 1);\n }\n sample(x, y, useOffsets) {\n let value = 0;\n let inputF = this.highestFreqInputFactor;\n let valueF = this.highestFreqValueFactor;\n for (let i = 0; i < this.noiseLevels.length; i += 1) {\n const noise = this.noiseLevels[i];\n if (noise) {\n value += valueF * noise.sample2D(x * inputF + (useOffsets ? noise.xo : 0), y * inputF + (useOffsets ? noise.yo : 0));\n }\n inputF /= 2;\n valueF *= 2;\n }\n return value;\n }\n}\n//# sourceMappingURL=PerlinSimplexNoise.js.map","import { Holder } from '../core/index.js';\nimport { NormalNoise } from '../math/index.js';\nimport { Json } from '../util/index.js';\nimport { DensityFunction } from './DensityFunction.js';\nimport { WorldgenRegistries } from './WorldgenRegistries.js';\nexport var NoiseRouter;\n(function (NoiseRouter) {\n const fieldParser = (obj) => new DensityFunction.HolderHolder(Holder.parser(WorldgenRegistries.DENSITY_FUNCTION, DensityFunction.fromJson)(obj));\n function fromJson(obj) {\n const root = Json.readObject(obj) ?? {};\n return {\n barrier: fieldParser(root.barrier),\n fluidLevelFloodedness: fieldParser(root.fluid_level_floodedness),\n fluidLevelSpread: fieldParser(root.fluid_level_spread),\n lava: fieldParser(root.lava),\n temperature: fieldParser(root.temperature),\n vegetation: fieldParser(root.vegetation),\n continents: fieldParser(root.continents),\n erosion: fieldParser(root.erosion),\n depth: fieldParser(root.depth),\n ridges: fieldParser(root.ridges),\n initialDensityWithoutJaggedness: fieldParser(root.initial_density_without_jaggedness),\n finalDensity: fieldParser(root.final_density),\n veinToggle: fieldParser(root.vein_toggle),\n veinRidged: fieldParser(root.vein_ridged),\n veinGap: fieldParser(root.vein_gap),\n };\n }\n NoiseRouter.fromJson = fromJson;\n function create(router) {\n return {\n barrier: DensityFunction.Constant.ZERO,\n fluidLevelFloodedness: DensityFunction.Constant.ZERO,\n fluidLevelSpread: DensityFunction.Constant.ZERO,\n lava: DensityFunction.Constant.ZERO,\n temperature: DensityFunction.Constant.ZERO,\n vegetation: DensityFunction.Constant.ZERO,\n continents: DensityFunction.Constant.ZERO,\n erosion: DensityFunction.Constant.ZERO,\n depth: DensityFunction.Constant.ZERO,\n ridges: DensityFunction.Constant.ZERO,\n initialDensityWithoutJaggedness: DensityFunction.Constant.ZERO,\n finalDensity: DensityFunction.Constant.ZERO,\n veinToggle: DensityFunction.Constant.ZERO,\n veinRidged: DensityFunction.Constant.ZERO,\n veinGap: DensityFunction.Constant.ZERO,\n ...router,\n };\n }\n NoiseRouter.create = create;\n function mapAll(router, visitor) {\n return {\n barrier: router.barrier.mapAll(visitor),\n fluidLevelFloodedness: router.fluidLevelFloodedness.mapAll(visitor),\n fluidLevelSpread: router.fluidLevelSpread.mapAll(visitor),\n lava: router.lava.mapAll(visitor),\n temperature: router.temperature.mapAll(visitor),\n vegetation: router.vegetation.mapAll(visitor),\n continents: router.continents.mapAll(visitor),\n erosion: router.erosion.mapAll(visitor),\n depth: router.depth.mapAll(visitor),\n ridges: router.ridges.mapAll(visitor),\n initialDensityWithoutJaggedness: router.initialDensityWithoutJaggedness.mapAll(visitor),\n finalDensity: router.finalDensity.mapAll(visitor),\n veinToggle: router.veinToggle.mapAll(visitor),\n veinRidged: router.veinRidged.mapAll(visitor),\n veinGap: router.veinGap.mapAll(visitor),\n };\n }\n NoiseRouter.mapAll = mapAll;\n const noiseCache = new Map();\n function instantiate(random, noise) {\n const key = noise.key()?.toString();\n if (!key) {\n throw new Error('Cannot instantiate noise from direct holder');\n }\n const randomKey = random.seedKey();\n const cached = noiseCache.get(key);\n if (cached && cached[0] === randomKey[0] && cached[1] === randomKey[1]) {\n return cached[2];\n }\n const result = new NormalNoise(random.fromHashOf(key), noise.value());\n noiseCache.set(key, [randomKey[0], randomKey[1], result]);\n return result;\n }\n NoiseRouter.instantiate = instantiate;\n})(NoiseRouter || (NoiseRouter = {}));\n//# sourceMappingURL=NoiseRouter.js.map","import { clampedLerp } from '../math/index.js';\nimport { Json } from '../util/index.js';\nexport var NoiseSettings;\n(function (NoiseSettings) {\n function fromJson(obj) {\n const root = Json.readObject(obj) ?? {};\n return {\n minY: Json.readInt(root.min_y) ?? 0,\n height: Json.readInt(root.height) ?? 256,\n xzSize: Json.readInt(root.size_horizontal) ?? 1,\n ySize: Json.readInt(root.size_vertical) ?? 1,\n };\n }\n NoiseSettings.fromJson = fromJson;\n function create(settings) {\n return {\n minY: 0,\n height: 256,\n xzSize: 1,\n ySize: 1,\n ...settings,\n };\n }\n NoiseSettings.create = create;\n function cellHeight(settings) {\n return settings.ySize << 2;\n }\n NoiseSettings.cellHeight = cellHeight;\n function cellWidth(settings) {\n return settings.xzSize << 2;\n }\n NoiseSettings.cellWidth = cellWidth;\n function cellCountY(settings) {\n return settings.height / cellHeight(settings);\n }\n NoiseSettings.cellCountY = cellCountY;\n function minCellY(settings) {\n return Math.floor(settings.minY / cellHeight(settings));\n }\n NoiseSettings.minCellY = minCellY;\n})(NoiseSettings || (NoiseSettings = {}));\nexport var NoiseSlideSettings;\n(function (NoiseSlideSettings) {\n function fromJson(obj) {\n const root = Json.readObject(obj) ?? {};\n return {\n target: Json.readNumber(root.target) ?? 0,\n size: Json.readInt(root.size) ?? 0,\n offset: Json.readInt(root.offset) ?? 0,\n };\n }\n NoiseSlideSettings.fromJson = fromJson;\n function apply(slide, density, y) {\n if (slide.size <= 0)\n return density;\n const t = (y - slide.offset) / slide.size;\n return clampedLerp(slide.target, density, t);\n }\n NoiseSlideSettings.apply = apply;\n})(NoiseSlideSettings || (NoiseSlideSettings = {}));\n//# sourceMappingURL=NoiseSettings.js.map","import { Json } from '../util/index.js';\nexport var VerticalAnchor;\n(function (VerticalAnchor) {\n function fromJson(obj) {\n const root = Json.readObject(obj) ?? {};\n if (root.absolute !== undefined) {\n return absolute(Json.readNumber(root.absolute) ?? 0);\n }\n else if (root.above_bottom !== undefined) {\n return aboveBottom(Json.readNumber(root.above_bottom) ?? 0);\n }\n else if (root.below_top !== undefined) {\n return belowTop(Json.readNumber(root.below_top) ?? 0);\n }\n return () => 0;\n }\n VerticalAnchor.fromJson = fromJson;\n function absolute(value) {\n return () => value;\n }\n function aboveBottom(value) {\n return context => context.minY + value;\n }\n function belowTop(value) {\n return context => context.maxY - value;\n }\n})(VerticalAnchor || (VerticalAnchor = {}));\nexport var WorldgenContext;\n(function (WorldgenContext) {\n function create(minY, height) {\n return {\n minY,\n height,\n maxY: minY + height - 1,\n };\n }\n WorldgenContext.create = create;\n})(WorldgenContext || (WorldgenContext = {}));\n//# sourceMappingURL=VerticalAnchor.js.map","import { BlockPos, BlockState, ChunkPos } from '../core/index.js';\nimport { lerp2, map, XoroshiroRandom } from '../math/index.js';\nimport { computeIfAbsent, Json, lazy } from '../util/index.js';\nimport { NoiseRouter } from './NoiseRouter.js';\nimport { VerticalAnchor } from './VerticalAnchor.js';\nimport { WorldgenRegistries } from './WorldgenRegistries.js';\nexport class SurfaceSystem {\n rule;\n defaultBlock;\n surfaceNoise;\n surfaceSecondaryNoise;\n random;\n positionalRandoms;\n constructor(rule, defaultBlock, seed) {\n this.rule = rule;\n this.defaultBlock = defaultBlock;\n this.random = XoroshiroRandom.create(seed).forkPositional();\n this.surfaceNoise = NoiseRouter.instantiate(this.random, WorldgenRegistries.SURFACE_NOISE);\n this.surfaceSecondaryNoise = NoiseRouter.instantiate(this.random, WorldgenRegistries.SURFACE_SECONDARY_NOISE);\n this.positionalRandoms = new Map();\n }\n buildSurface(chunk, noiseChunk, worldgenContext, getBiome) {\n const minX = ChunkPos.minBlockX(chunk.pos);\n const minZ = ChunkPos.minBlockZ(chunk.pos);\n const surfaceContext = new SurfaceContext(this, chunk, noiseChunk, worldgenContext, getBiome);\n const ruleWithContext = this.rule(surfaceContext);\n for (let x = 0; x < 16; x += 1) {\n const worldX = minX + x;\n for (let z = 0; z < 1; z += 1) {\n const worldZ = minZ + z;\n surfaceContext.updateXZ(worldX, worldZ);\n let stoneDepthAbove = 0;\n let waterHeight = Number.MIN_SAFE_INTEGER;\n let stoneDepthOffset = Number.MAX_SAFE_INTEGER;\n for (let y = chunk.maxY; y >= chunk.minY; y -= 1) {\n const worldPos = BlockPos.create(worldX, y, worldZ);\n const oldState = chunk.getBlockState(worldPos);\n if (oldState.equals(BlockState.AIR)) {\n stoneDepthAbove = 0;\n waterHeight = Number.MIN_SAFE_INTEGER;\n continue;\n }\n if (oldState.isFluid()) {\n if (waterHeight === Number.MIN_SAFE_INTEGER) {\n waterHeight = y + 1;\n }\n continue;\n }\n if (stoneDepthOffset >= y) {\n stoneDepthOffset = Number.MIN_SAFE_INTEGER;\n for (let i = y - 1; i >= chunk.minY; i -= 1) {\n const state = chunk.getBlockState(BlockPos.create(worldX, i, worldZ));\n if (state.equals(BlockState.AIR) || state.isFluid()) {\n stoneDepthOffset = i + 1;\n break;\n }\n }\n }\n stoneDepthAbove += 1;\n const stoneDepthBelow = y - stoneDepthOffset + 1;\n if (!oldState.equals(this.defaultBlock)) {\n continue;\n }\n surfaceContext.updateY(stoneDepthAbove, stoneDepthBelow, waterHeight, y);\n const newState = ruleWithContext(worldX, y, worldZ);\n if (newState) {\n chunk.setBlockState(worldPos, newState);\n }\n }\n }\n }\n }\n getSurfaceDepth(x, z) {\n const noise = this.surfaceNoise.sample(x, 0, z);\n const offset = this.random.at(x, 0, z).nextDouble() * 0.25;\n return noise * 2.75 + 3 + offset;\n }\n getSurfaceSecondary(x, z) {\n return this.surfaceSecondaryNoise.sample(x, 0, z);\n }\n getRandom(name) {\n return computeIfAbsent(this.positionalRandoms, name, () => {\n return this.random.fromHashOf(name);\n });\n }\n}\nexport class SurfaceContext {\n system;\n chunk;\n noiseChunk;\n context;\n getBiome;\n blockX = 0;\n blockY = 0;\n blockZ = 0;\n stoneDepthAbove = 0;\n stoneDepthBelow = 0;\n surfaceDepth = 0;\n waterHeight = 0;\n biome = () => '';\n surfaceSecondary = () => 0;\n minSurfaceLevel = () => 0;\n constructor(system, chunk, noiseChunk, context, getBiome) {\n this.system = system;\n this.chunk = chunk;\n this.noiseChunk = noiseChunk;\n this.context = context;\n this.getBiome = getBiome;\n }\n updateXZ(x, z) {\n this.blockX = x;\n this.blockZ = z;\n this.surfaceDepth = this.system.getSurfaceDepth(x, z);\n this.surfaceSecondary = lazy(() => this.system.getSurfaceSecondary(x, z));\n this.minSurfaceLevel = lazy(() => this.calculateMinSurfaceLevel(x, z));\n }\n updateY(stoneDepthAbove, stoneDepthBelow, waterHeight, y) {\n this.blockY = y;\n this.stoneDepthAbove = stoneDepthAbove;\n this.stoneDepthBelow = stoneDepthBelow;\n this.waterHeight = waterHeight;\n this.biome = lazy(() => this.getBiome(BlockPos.create(this.blockX, this.blockY, this.blockZ)));\n }\n calculateMinSurfaceLevel(x, z) {\n const cellX = x >> 4;\n const cellZ = z >> 4;\n const level00 = this.noiseChunk.getPreliminarySurfaceLevel(cellX << 4, cellZ << 4);\n const level10 = this.noiseChunk.getPreliminarySurfaceLevel((cellX + 1) << 4, cellZ << 4);\n const level01 = this.noiseChunk.getPreliminarySurfaceLevel(cellX << 4, (cellZ + 1) << 4);\n const level11 = this.noiseChunk.getPreliminarySurfaceLevel((cellX + 1) << 4, (cellZ + 1) << 4);\n const level = Math.floor(lerp2((x & 0xF) / 16, (z & 0xF) / 16, level00, level10, level01, level11));\n return level + this.surfaceDepth - 8;\n }\n}\nexport var SurfaceRule;\n(function (SurfaceRule) {\n SurfaceRule.NOOP = () => () => undefined;\n function fromJson(obj) {\n const root = Json.readObject(obj) ?? {};\n const type = Json.readString(root.type)?.replace(/^minecraft:/, '');\n switch (type) {\n case 'block': return block(BlockState.fromJson(root.result_state));\n case 'sequence': return sequence(Json.readArray(root.sequence, SurfaceRule.fromJson) ?? []);\n case 'condition': return condition(SurfaceCondition.fromJson(root.if_true), SurfaceRule.fromJson(root.then_run));\n }\n return SurfaceRule.NOOP;\n }\n SurfaceRule.fromJson = fromJson;\n function block(state) {\n return () => () => state;\n }\n SurfaceRule.block = block;\n function sequence(rules) {\n return context => {\n const rulesWithContext = rules.map(rule => rule(context));\n return (x, y, z) => {\n for (const rule of rulesWithContext) {\n const result = rule(x, y, z);\n if (result)\n return result;\n }\n return undefined;\n };\n };\n }\n SurfaceRule.sequence = sequence;\n function condition(ifTrue, thenRun) {\n return context => (x, y, z) => {\n if (ifTrue(context)) {\n return thenRun(context)(x, y, z);\n }\n return undefined;\n };\n }\n SurfaceRule.condition = condition;\n})(SurfaceRule || (SurfaceRule = {}));\nexport var SurfaceCondition;\n(function (SurfaceCondition) {\n SurfaceCondition.FALSE = () => false;\n SurfaceCondition.TRUE = () => true;\n function fromJson(obj) {\n const root = Json.readObject(obj) ?? {};\n const type = Json.readString(root.type)?.replace(/^minecraft:/, '');\n switch (type) {\n case 'above_preliminary_surface': return abovePreliminarySurface();\n case 'biome': return biome(Json.readArray(root.biome_is, e => Json.readString(e) ?? '') ?? []);\n case 'not': return not(SurfaceCondition.fromJson(root.invert));\n case 'stone_depth': return stoneDepth(Json.readInt(root.offset) ?? 0, Json.readBoolean(root.add_surface_depth) ?? false, Json.readInt(root.secondary_depth_range) ?? 0, Json.readString(root.surface_type) === 'ceiling');\n case 'vertical_gradient': return verticalGradient(Json.readString(root.random_name) ?? '', VerticalAnchor.fromJson(root.true_at_and_below), VerticalAnchor.fromJson(root.false_at_and_above));\n case 'water': return water(Json.readInt(root.offset) ?? 0, Json.readInt(root.surface_depth_multiplier) ?? 0, Json.readBoolean(root.add_surface_depth) ?? false);\n case 'y_above': return yAbove(VerticalAnchor.fromJson(root.anchor), Json.readInt(root.surface_depth_multiplier) ?? 0, Json.readBoolean(root.add_surface_depth) ?? false);\n }\n return SurfaceCondition.FALSE;\n }\n SurfaceCondition.fromJson = fromJson;\n function abovePreliminarySurface() {\n return context => context.blockY >= context.minSurfaceLevel();\n }\n SurfaceCondition.abovePreliminarySurface = abovePreliminarySurface;\n function biome(biomes) {\n const biomeSet = new Set(biomes);\n return context => biomeSet.has(context.biome());\n }\n SurfaceCondition.biome = biome;\n function not(invert) {\n return context => !invert(context);\n }\n SurfaceCondition.not = not;\n function stoneDepth(offset, addSurfaceDepth, secondaryDepthRange, ceiling) {\n return context => {\n const depth = ceiling ? context.stoneDepthBelow : context.stoneDepthAbove;\n const surfaceDepth = addSurfaceDepth ? context.surfaceDepth : 0;\n const secondaryDepth = secondaryDepthRange === 0 ? 0 : map(context.surfaceSecondary(), -1, 1, 0, secondaryDepthRange);\n return depth <= 1 + offset + surfaceDepth + secondaryDepth;\n };\n }\n SurfaceCondition.stoneDepth = stoneDepth;\n function verticalGradient(randomName, trueAtAndBelow, falseAtAndAbove) {\n return context => {\n const trueAtAndBelowY = trueAtAndBelow(context.context);\n const falseAtAndAboveY = falseAtAndAbove(context.context);\n if (context.blockY <= trueAtAndBelowY) {\n return true;\n }\n if (context.blockY >= falseAtAndAboveY) {\n return false;\n }\n const random = context.system.getRandom(randomName);\n const chance = map(context.blockY, trueAtAndBelowY, falseAtAndAboveY, 1, 0);\n return random.nextFloat() < chance;\n };\n }\n SurfaceCondition.verticalGradient = verticalGradient;\n function water(offset, surfaceDepthMultiplier, addStoneDepth) {\n return context => {\n if (context.waterHeight === Number.MIN_SAFE_INTEGER) {\n return true;\n }\n const stoneDepth = addStoneDepth ? context.stoneDepthAbove : 0;\n return context.blockY + stoneDepth >= context.waterHeight + offset + context.surfaceDepth * surfaceDepthMultiplier;\n };\n }\n SurfaceCondition.water = water;\n function yAbove(anchor, surfaceDepthMultiplier, addStoneDepth) {\n return context => {\n const stoneDepth = addStoneDepth ? context.stoneDepthAbove : 0;\n return context.blockY + stoneDepth >= anchor(context.context) + context.surfaceDepth * surfaceDepthMultiplier;\n };\n }\n SurfaceCondition.yAbove = yAbove;\n})(SurfaceCondition || (SurfaceCondition = {}));\n//# sourceMappingURL=SurfaceSystem.js.map","import { BlockState } from '../core/index.js';\nimport { Json } from '../util/index.js';\nimport { NoiseRouter } from './NoiseRouter.js';\nimport { NoiseSettings } from './NoiseSettings.js';\nimport { SurfaceRule } from './SurfaceSystem.js';\nexport var NoiseGeneratorSettings;\n(function (NoiseGeneratorSettings) {\n function fromJson(obj) {\n const root = Json.readObject(obj) ?? {};\n return {\n surfaceRule: SurfaceRule.fromJson(root.surface_rule),\n noise: NoiseSettings.fromJson(root.noise),\n defaultBlock: BlockState.fromJson(root.default_block),\n defaultFluid: BlockState.fromJson(root.default_fluid),\n noiseRouter: NoiseRouter.fromJson(root.noise_router),\n seaLevel: Json.readInt(root.sea_level) ?? 0,\n disableMobGeneration: Json.readBoolean(root.disable_mob_generation) ?? false,\n aquifersEnabled: Json.readBoolean(root.aquifers_enabled) ?? false,\n oreVeinsEnabled: Json.readBoolean(root.ore_veins_enabled) ?? false,\n legacyRandomSource: Json.readBoolean(root.legacy_random_source) ?? false,\n };\n }\n NoiseGeneratorSettings.fromJson = fromJson;\n function create(settings) {\n return {\n surfaceRule: SurfaceRule.NOOP,\n noise: NoiseSettings.create({}),\n defaultBlock: BlockState.STONE,\n defaultFluid: BlockState.WATER,\n noiseRouter: NoiseRouter.create({}),\n seaLevel: 0,\n disableMobGeneration: false,\n aquifersEnabled: false,\n oreVeinsEnabled: false,\n legacyRandomSource: false,\n ...settings,\n };\n }\n NoiseGeneratorSettings.create = create;\n})(NoiseGeneratorSettings || (NoiseGeneratorSettings = {}));\n//# sourceMappingURL=NoiseGeneratorSettings.js.map","import { Identifier, Registry } from '../core/index.js';\nimport { NoiseParameters } from '../math/index.js';\nimport { DensityFunction } from './DensityFunction.js';\nimport { NoiseGeneratorSettings } from './NoiseGeneratorSettings.js';\nexport var WorldgenRegistries;\n(function (WorldgenRegistries) {\n WorldgenRegistries.NOISE = register('worldgen/noise', NoiseParameters.fromJson);\n WorldgenRegistries.DENSITY_FUNCTION = register('worldgen/density_function', obj => DensityFunction.fromJson(obj));\n WorldgenRegistries.NOISE_SETTINGS = register('worldgen/noise_settings', NoiseGeneratorSettings.fromJson);\n function register(name, parser) {\n const registry = new Registry(Identifier.create(name), parser);\n Registry.REGISTRY.register(registry.key, registry);\n return registry;\n }\n WorldgenRegistries.SURFACE_NOISE = createNoise('surface', -6, [1, 1, 1]);\n WorldgenRegistries.SURFACE_SECONDARY_NOISE = createNoise('surface_secondary', -6, [1, 1, 0, 1]);\n function createNoise(name, firstOctave, amplitudes) {\n return WorldgenRegistries.NOISE.register(Identifier.create(name), NoiseParameters.create(firstOctave, amplitudes), true);\n }\n})(WorldgenRegistries || (WorldgenRegistries = {}));\n//# sourceMappingURL=WorldgenRegistries.js.map","import { Holder, Identifier } from '../core/index.js';\nimport { clamp, clampedMap, CubicSpline, lazyLerp3, LegacyRandom, NoiseParameters, SimplexNoise } from '../math/index.js';\nimport { computeIfAbsent, Json } from '../util/index.js';\nimport { WorldgenRegistries } from './WorldgenRegistries.js';\nexport class DensityFunction {\n minValue() {\n return -this.maxValue();\n }\n mapAll(visitor) {\n return visitor.map(this);\n }\n}\n(function (DensityFunction) {\n function context(x, y, z) {\n return {\n x,\n y,\n z,\n };\n }\n DensityFunction.context = context;\n class Transformer extends DensityFunction {\n input;\n constructor(input) {\n super();\n this.input = input;\n }\n compute(context) {\n return this.transform(context, this.input.compute(context));\n }\n }\n const NoiseParser = Holder.parser(WorldgenRegistries.NOISE, NoiseParameters.fromJson);\n function fromJson(obj, inputParser = fromJson) {\n if (typeof obj === 'string') {\n return new HolderHolder(Holder.reference(WorldgenRegistries.DENSITY_FUNCTION, Identifier.parse(obj)));\n }\n if (typeof obj === 'number') {\n return new Constant(obj);\n }\n const root = Json.readObject(obj) ?? {};\n const type = Json.readString(root.type)?.replace(/^minecraft:/, '');\n switch (type) {\n case 'blend_alpha': return new ConstantMinMax(1, 0, 1);\n case 'blend_offset': return new ConstantMinMax(0, -Infinity, Infinity);\n case 'beardifier': return new ConstantMinMax(0, -Infinity, Infinity);\n case 'old_blended_noise': return new OldBlendedNoise(Json.readNumber(root.xz_scale) ?? 1, Json.readNumber(root.y_scale) ?? 1, Json.readNumber(root.xz_factor) ?? 80, Json.readNumber(root.y_factor) ?? 160, Json.readNumber(root.smear_scale_multiplier) ?? 8);\n case 'flat_cache': return new FlatCache(inputParser(root.argument));\n case 'interpolated': return new Interpolated(inputParser(root.argument));\n case 'cache_2d': return new Cache2D(inputParser(root.argument));\n case 'cache_once': return new CacheOnce(inputParser(root.argument));\n case 'cache_all_in_cell': return new CacheAllInCell(inputParser(root.argument));\n case 'noise': return new Noise(Json.readNumber(root.xz_scale) ?? 1, Json.readNumber(root.y_scale) ?? 1, NoiseParser(root.noise));\n case 'end_islands': return new EndIslands();\n case 'weird_scaled_sampler': return new WeirdScaledSampler(inputParser(root.input), Json.readEnum(root.rarity_value_mapper, RarityValueMapper), NoiseParser(root.noise));\n case 'shifted_noise': return new ShiftedNoise(inputParser(root.shift_x), inputParser(root.shift_y), inputParser(root.shift_z), Json.readNumber(root.xz_scale) ?? 1, Json.readNumber(root.y_scale) ?? 1, NoiseParser(root.noise));\n case 'range_choice': return new RangeChoice(inputParser(root.input), Json.readNumber(root.min_inclusive) ?? 0, Json.readNumber(root.max_exclusive) ?? 1, inputParser(root.when_in_range), inputParser(root.when_out_of_range));\n case 'shift_a': return new ShiftA(NoiseParser(root.argument));\n case 'shift_b': return new ShiftB(NoiseParser(root.argument));\n case 'shift': return new Shift(NoiseParser(root.argument));\n case 'blend_density': return new BlendDensity(inputParser(root.argument));\n case 'clamp': return new Clamp(inputParser(root.input), Json.readNumber(root.min) ?? 0, Json.readNumber(root.max) ?? 1);\n case 'abs':\n case 'square':\n case 'cube':\n case 'half_negative':\n case 'quarter_negative':\n case 'squeeze':\n return new Mapped(type, inputParser(root.argument));\n case 'add':\n case 'mul':\n case 'min':\n case 'max': return new Ap2(Json.readEnum(type, Ap2Type), inputParser(root.argument1), inputParser(root.argument2));\n case 'spline': return new Spline(CubicSpline.fromJson(root.spline, inputParser));\n case 'constant': return new Constant(Json.readNumber(root.argument) ?? 0);\n case 'y_clamped_gradient': return new YClampedGradient(Json.readInt(root.from_y) ?? -4064, Json.readInt(root.to_y) ?? 4062, Json.readNumber(root.from_value) ?? -4064, Json.readNumber(root.to_value) ?? 4062);\n }\n return Constant.ZERO;\n }\n DensityFunction.fromJson = fromJson;\n class Constant extends DensityFunction {\n value;\n static ZERO = new Constant(0);\n static ONE = new Constant(1);\n constructor(value) {\n super();\n this.value = value;\n }\n compute() {\n return this.value;\n }\n minValue() {\n return this.value;\n }\n maxValue() {\n return this.value;\n }\n }\n DensityFunction.Constant = Constant;\n class HolderHolder extends DensityFunction {\n holder;\n constructor(holder) {\n super();\n this.holder = holder;\n }\n compute(context) {\n return this.holder.value().compute(context);\n }\n minValue() {\n return this.holder.value().minValue();\n }\n maxValue() {\n return this.holder.value().maxValue();\n }\n }\n DensityFunction.HolderHolder = HolderHolder;\n class ConstantMinMax extends DensityFunction.Constant {\n min;\n max;\n constructor(value, min, max) {\n super(value);\n this.min = min;\n this.max = max;\n }\n minValue() {\n return this.min;\n }\n maxValue() {\n return this.max;\n }\n }\n DensityFunction.ConstantMinMax = ConstantMinMax;\n class OldBlendedNoise extends DensityFunction {\n xzScale;\n yScale;\n xzFactor;\n yFactor;\n smearScaleMultiplier;\n blendedNoise;\n constructor(xzScale, yScale, xzFactor, yFactor, smearScaleMultiplier, blendedNoise) {\n super();\n this.xzScale = xzScale;\n this.yScale = yScale;\n this.xzFactor = xzFactor;\n this.yFactor = yFactor;\n this.smearScaleMultiplier = smearScaleMultiplier;\n this.blendedNoise = blendedNoise;\n }\n compute(context) {\n return this.blendedNoise?.sample(context.x, context.y, context.z) ?? 0;\n }\n maxValue() {\n return this.blendedNoise?.maxValue ?? 0;\n }\n }\n DensityFunction.OldBlendedNoise = OldBlendedNoise;\n class Wrapper extends DensityFunction {\n wrapped;\n constructor(wrapped) {\n super();\n this.wrapped = wrapped;\n }\n minValue() {\n return this.wrapped.minValue();\n }\n maxValue() {\n return this.wrapped.maxValue();\n }\n }\n class FlatCache extends Wrapper {\n lastQuartX;\n lastQuartZ;\n lastValue = 0;\n constructor(wrapped) {\n super(wrapped);\n }\n compute(context) {\n const quartX = context.x >> 2;\n const quartZ = context.z >> 2;\n if (this.lastQuartX !== quartX || this.lastQuartZ !== quartZ) {\n this.lastValue = this.wrapped.compute(DensityFunction.context(quartX << 2, 0, quartZ << 2));\n this.lastQuartX = quartX;\n this.lastQuartZ = quartZ;\n }\n return this.lastValue;\n }\n mapAll(visitor) {\n return visitor.map(new FlatCache(this.wrapped.mapAll(visitor)));\n }\n }\n DensityFunction.FlatCache = FlatCache;\n class CacheAllInCell extends Wrapper {\n constructor(wrapped) {\n super(wrapped);\n }\n compute(context) {\n return this.wrapped.compute(context);\n }\n mapAll(visitor) {\n return visitor.map(new CacheAllInCell(this.wrapped.mapAll(visitor)));\n }\n }\n DensityFunction.CacheAllInCell = CacheAllInCell;\n class Cache2D extends Wrapper {\n lastBlockX;\n lastBlockZ;\n lastValue = 0;\n constructor(wrapped) {\n super(wrapped);\n }\n compute(context) {\n const blockX = context.x;\n const blockZ = context.z;\n if (this.lastBlockX !== blockX || this.lastBlockZ !== blockZ) {\n this.lastValue = this.wrapped.compute(context);\n this.lastBlockX = blockX;\n this.lastBlockZ = blockZ;\n }\n return this.lastValue;\n }\n mapAll(visitor) {\n return visitor.map(new Cache2D(this.wrapped.mapAll(visitor)));\n }\n }\n DensityFunction.Cache2D = Cache2D;\n class CacheOnce extends Wrapper {\n lastBlockX;\n lastBlockY;\n lastBlockZ;\n lastValue = 0;\n constructor(wrapped) {\n super(wrapped);\n }\n compute(context) {\n const blockX = context.x;\n const blockY = context.y;\n const blockZ = context.z;\n if (this.lastBlockX !== blockX || this.lastBlockY !== blockY || this.lastBlockZ !== blockZ) {\n this.lastValue = this.wrapped.compute(context);\n this.lastBlockX = blockX;\n this.lastBlockY = blockY;\n this.lastBlockZ = blockZ;\n }\n return this.lastValue;\n }\n mapAll(visitor) {\n return visitor.map(new CacheOnce(this.wrapped.mapAll(visitor)));\n }\n }\n DensityFunction.CacheOnce = CacheOnce;\n class Interpolated extends Wrapper {\n cellWidth;\n cellHeight;\n values;\n constructor(wrapped, cellWidth = 4, cellHeight = 4) {\n super(wrapped);\n this.cellWidth = cellWidth;\n this.cellHeight = cellHeight;\n this.values = new Map();\n }\n compute({ x: blockX, y: blockY, z: blockZ }) {\n const w = this.cellWidth;\n const h = this.cellHeight;\n const x = ((blockX % w + w) % w) / w;\n const y = ((blockY % h + h) % h) / h;\n const z = ((blockZ % w + w) % w) / w;\n const firstX = Math.floor(blockX / w) * w;\n const firstY = Math.floor(blockY / h) * h;\n const firstZ = Math.floor(blockZ / w) * w;\n const noise000 = () => this.computeCorner(firstX, firstY, firstZ);\n const noise001 = () => this.computeCorner(firstX, firstY, firstZ + w);\n const noise010 = () => this.computeCorner(firstX, firstY + h, firstZ);\n const noise011 = () => this.computeCorner(firstX, firstY + h, firstZ + w);\n const noise100 = () => this.computeCorner(firstX + w, firstY, firstZ);\n const noise101 = () => this.computeCorner(firstX + w, firstY, firstZ + w);\n const noise110 = () => this.computeCorner(firstX + w, firstY + h, firstZ);\n const noise111 = () => this.computeCorner(firstX + w, firstY + h, firstZ + w);\n return lazyLerp3(x, y, z, noise000, noise100, noise010, noise110, noise001, noise101, noise011, noise111);\n }\n computeCorner(x, y, z) {\n return computeIfAbsent(this.values, `${x} ${y} ${z}`, () => {\n return this.wrapped.compute(DensityFunction.context(x, y, z));\n });\n }\n mapAll(visitor) {\n return visitor.map(new Interpolated(this.wrapped.mapAll(visitor)));\n }\n withCellSize(cellWidth, cellHeight) {\n return new Interpolated(this.wrapped, cellWidth, cellHeight);\n }\n }\n DensityFunction.Interpolated = Interpolated;\n class Noise extends DensityFunction {\n xzScale;\n yScale;\n noiseData;\n noise;\n constructor(xzScale, yScale, noiseData, noise) {\n super();\n this.xzScale = xzScale;\n this.yScale = yScale;\n this.noiseData = noiseData;\n this.noise = noise;\n }\n compute(context) {\n return this.noise?.sample(context.x * this.xzScale, context.y * this.yScale, context.z * this.xzScale) ?? 0;\n }\n maxValue() {\n return this.noise?.maxValue ?? 2;\n }\n }\n DensityFunction.Noise = Noise;\n class EndIslands extends DensityFunction {\n islandNoise;\n constructor(seed) {\n super();\n const random = new LegacyRandom(seed ?? BigInt(0));\n random.consume(17292);\n this.islandNoise = new SimplexNoise(random);\n }\n getHeightValue(x, z) {\n const x0 = Math.floor(x / 2);\n const z0 = Math.floor(z / 2);\n const x1 = x % 2;\n const z1 = z % 2;\n let f = clamp(100 - Math.sqrt(x * x + z * z), -100, 80);\n for (let i = -12; i <= 12; i += 1) {\n for (let j = -12; j <= 12; j += 1) {\n const x2 = x0 + i;\n const z2 = z0 + j;\n if (x2 * x2 + z2 * z2 <= 4096 || this.islandNoise.sample2D(x2, z2) >= -0.9) {\n continue;\n }\n const f1 = (Math.abs(x2) * 3439 + Math.abs(z2) * 147) % 13 + 9;\n const x3 = x1 + i * 2;\n const z3 = z1 + j * 2;\n const f2 = 100 - Math.sqrt(x3 * x3 + z3 * z3) * f1;\n const f3 = clamp(f2, -100, 80);\n f = Math.max(f, f3);\n }\n }\n return f;\n }\n compute({ x, y, z }) {\n return (this.getHeightValue(Math.floor(x / 8), Math.floor(z / 8)) - 8) / 128;\n }\n minValue() {\n return -0.84375;\n }\n maxValue() {\n return 0.5625;\n }\n }\n DensityFunction.EndIslands = EndIslands;\n const RarityValueMapper = ['type_1', 'type_2'];\n class WeirdScaledSampler extends Transformer {\n rarityValueMapper;\n noiseData;\n noise;\n static ValueMapper = {\n type_1: WeirdScaledSampler.rarityValueMapper1,\n type_2: WeirdScaledSampler.rarityValueMapper2,\n };\n mapper;\n constructor(input, rarityValueMapper, noiseData, noise) {\n super(input);\n this.rarityValueMapper = rarityValueMapper;\n this.noiseData = noiseData;\n this.noise = noise;\n this.mapper = WeirdScaledSampler.ValueMapper[this.rarityValueMapper];\n }\n transform(context, density) {\n if (!this.noise) {\n return 0;\n }\n const rarity = this.mapper(density);\n return rarity * Math.abs(this.noise.sample(context.x / rarity, context.y / rarity, context.z / rarity));\n }\n mapAll(visitor) {\n return visitor.map(new WeirdScaledSampler(this.input.mapAll(visitor), this.rarityValueMapper, this.noiseData, this.noise));\n }\n minValue() {\n return 0;\n }\n maxValue() {\n return this.rarityValueMapper === 'type_1' ? 2 : 3;\n }\n static rarityValueMapper1(value) {\n if (value < -0.5) {\n return 0.75;\n }\n else if (value < 0) {\n return 1;\n }\n else if (value < 0.5) {\n return 1.5;\n }\n else {\n return 2;\n }\n }\n static rarityValueMapper2(value) {\n if (value < -0.75) {\n return 0.5;\n }\n else if (value < -0.5) {\n return 0.75;\n }\n else if (value < 0.5) {\n return 1;\n }\n else if (value < 0.75) {\n return 2;\n }\n else {\n return 3;\n }\n }\n }\n DensityFunction.WeirdScaledSampler = WeirdScaledSampler;\n class ShiftedNoise extends Noise {\n shiftX;\n shiftY;\n shiftZ;\n constructor(shiftX, shiftY, shiftZ, xzScale, yScale, noiseData, noise) {\n super(xzScale, yScale, noiseData, noise);\n this.shiftX = shiftX;\n this.shiftY = shiftY;\n this.shiftZ = shiftZ;\n }\n compute(context) {\n const xx = context.x * this.xzScale + this.shiftX.compute(context);\n const yy = context.y * this.yScale + this.shiftY.compute(context);\n const zz = context.z * this.xzScale + this.shiftZ.compute(context);\n return this.noise?.sample(xx, yy, zz) ?? 0;\n }\n mapAll(visitor) {\n return visitor.map(new ShiftedNoise(this.shiftX.mapAll(visitor), this.shiftY.mapAll(visitor), this.shiftZ.mapAll(visitor), this.xzScale, this.yScale, this.noiseData, this.noise));\n }\n }\n DensityFunction.ShiftedNoise = ShiftedNoise;\n class RangeChoice extends DensityFunction {\n input;\n minInclusive;\n maxExclusive;\n whenInRange;\n whenOutOfRange;\n constructor(input, minInclusive, maxExclusive, whenInRange, whenOutOfRange) {\n super();\n this.input = input;\n this.minInclusive = minInclusive;\n this.maxExclusive = maxExclusive;\n this.whenInRange = whenInRange;\n this.whenOutOfRange = whenOutOfRange;\n }\n compute(context) {\n const x = this.input.compute(context);\n return (this.minInclusive <= x && x < this.maxExclusive)\n ? this.whenInRange.compute(context)\n : this.whenOutOfRange.compute(context);\n }\n mapAll(visitor) {\n return visitor.map(new RangeChoice(this.input.mapAll(visitor), this.minInclusive, this.maxExclusive, this.whenInRange.mapAll(visitor), this.whenOutOfRange.mapAll(visitor)));\n }\n minValue() {\n return Math.min(this.whenInRange.minValue(), this.whenOutOfRange.minValue());\n }\n maxValue() {\n return Math.max(this.whenInRange.maxValue(), this.whenOutOfRange.maxValue());\n }\n }\n DensityFunction.RangeChoice = RangeChoice;\n class ShiftNoise extends DensityFunction {\n noiseData;\n offsetNoise;\n constructor(noiseData, offsetNoise) {\n super();\n this.noiseData = noiseData;\n this.offsetNoise = offsetNoise;\n }\n compute(context) {\n return this.offsetNoise?.sample(context.x * 0.25, context.y * 0.25, context.z * 0.25) ?? 0;\n }\n maxValue() {\n return (this.offsetNoise?.maxValue ?? 2) * 4;\n }\n }\n DensityFunction.ShiftNoise = ShiftNoise;\n class ShiftA extends ShiftNoise {\n constructor(noiseData, offsetNoise) {\n super(noiseData, offsetNoise);\n }\n compute(context) {\n return super.compute(DensityFunction.context(context.x, 0, context.z));\n }\n withNewNoise(newNoise) {\n return new ShiftA(this.noiseData, newNoise);\n }\n }\n DensityFunction.ShiftA = ShiftA;\n class ShiftB extends ShiftNoise {\n constructor(noiseData, offsetNoise) {\n super(noiseData, offsetNoise);\n }\n compute(context) {\n return super.compute(DensityFunction.context(context.z, context.x, 0));\n }\n withNewNoise(newNoise) {\n return new ShiftB(this.noiseData, newNoise);\n }\n }\n DensityFunction.ShiftB = ShiftB;\n class Shift extends ShiftNoise {\n constructor(noiseData, offsetNoise) {\n super(noiseData, offsetNoise);\n }\n withNewNoise(newNoise) {\n return new Shift(this.noiseData, newNoise);\n }\n }\n DensityFunction.Shift = Shift;\n class BlendDensity extends Transformer {\n constructor(input) {\n super(input);\n }\n transform(context, density) {\n return density; // blender not supported\n }\n mapAll(visitor) {\n return visitor.map(new BlendDensity(this.input.mapAll(visitor)));\n }\n minValue() {\n return -Infinity;\n }\n maxValue() {\n return Infinity;\n }\n }\n DensityFunction.BlendDensity = BlendDensity;\n class Clamp extends Transformer {\n min;\n max;\n constructor(input, min, max) {\n super(input);\n this.min = min;\n this.max = max;\n }\n transform(context, density) {\n return clamp(density, this.min, this.max);\n }\n mapAll(visitor) {\n return visitor.map(new Clamp(this.input.mapAll(visitor), this.min, this.max));\n }\n minValue() {\n return this.min;\n }\n maxValue() {\n return this.max;\n }\n }\n DensityFunction.Clamp = Clamp;\n const MappedType = ['abs', 'square', 'cube', 'half_negative', 'quarter_negative', 'squeeze'];\n class Mapped extends Transformer {\n type;\n min;\n max;\n static MappedTypes = {\n abs: d => Math.abs(d),\n square: d => d * d,\n cube: d => d * d * d,\n half_negative: d => d > 0 ? d : d * 0.5,\n quarter_negative: d => d > 0 ? d : d * 0.25,\n squeeze: d => {\n const c = clamp(d, -1, 1);\n return c / 2 - c * c * c / 24;\n },\n };\n transformer;\n constructor(type, input, min, max) {\n super(input);\n this.type = type;\n this.min = min;\n this.max = max;\n this.transformer = Mapped.MappedTypes[this.type];\n }\n transform(context, density) {\n return this.transformer(density);\n }\n mapAll(visitor) {\n return visitor.map(new Mapped(this.type, this.input.mapAll(visitor)));\n }\n minValue() {\n return this.min ?? -Infinity;\n }\n maxValue() {\n return this.max ?? Infinity;\n }\n withMinMax() {\n const minInput = this.input.minValue();\n let min = this.transformer(minInput);\n let max = this.transformer(this.input.maxValue());\n if (this.type === 'abs' || this.type === 'square') {\n max = Math.max(min, max);\n min = Math.max(0, minInput);\n }\n return new Mapped(this.type, this.input, min, max);\n }\n }\n DensityFunction.Mapped = Mapped;\n const Ap2Type = ['add', 'mul', 'min', 'max'];\n class Ap2 extends DensityFunction {\n type;\n argument1;\n argument2;\n min;\n max;\n constructor(type, argument1, argument2, min, max) {\n super();\n this.type = type;\n this.argument1 = argument1;\n this.argument2 = argument2;\n this.min = min;\n this.max = max;\n }\n compute(context) {\n const a = this.argument1.compute(context);\n switch (this.type) {\n case 'add': return a + this.argument2.compute(context);\n case 'mul': return a === 0 ? 0 : a * this.argument2.compute(context);\n case 'min': return a < this.argument2.minValue() ? a : Math.min(a, this.argument2.compute(context));\n case 'max': return a > this.argument2.maxValue() ? a : Math.max(a, this.argument2.compute(context));\n }\n }\n mapAll(visitor) {\n return visitor.map(new Ap2(this.type, this.argument1.mapAll(visitor), this.argument2.mapAll(visitor)));\n }\n minValue() {\n return this.min ?? -Infinity;\n }\n maxValue() {\n return this.max ?? Infinity;\n }\n withMinMax() {\n const min1 = this.argument1.minValue();\n const min2 = this.argument2.minValue();\n const max1 = this.argument1.maxValue();\n const max2 = this.argument2.maxValue();\n if ((this.type === 'min' || this.type === 'max') && (min1 >= max2 || min2 >= max1)) {\n console.warn(`Creating a ${this.type} function between two non-overlapping inputs`);\n }\n let min, max;\n switch (this.type) {\n case 'add':\n min = min1 + min2;\n max = max1 + max2;\n break;\n case 'mul':\n min = min1 > 0 && min2 > 0 ? (min1 * min2) || 0\n : max1 < 0 && max2 < 0 ? (max1 * max2) || 0\n : Math.min((min1 * max2) || 0, (min2 * max1) || 0);\n max = min1 > 0 && min2 > 0 ? (max1 * max2) || 0\n : max1 < 0 && max2 < 0 ? (min1 * min2) || 0\n : Math.max((min1 * min2) || 0, (max1 * max2) || 0);\n break;\n case 'min':\n min = Math.min(min1, min2);\n max = Math.min(max1, max2);\n break;\n case 'max':\n min = Math.max(min1, min2);\n max = Math.max(max1, max2);\n break;\n }\n return new Ap2(this.type, this.argument1, this.argument2, min, max);\n }\n }\n DensityFunction.Ap2 = Ap2;\n class Spline extends DensityFunction {\n spline;\n constructor(spline) {\n super();\n this.spline = spline;\n }\n compute(context) {\n return this.spline.compute(context);\n }\n mapAll(visitor) {\n const newCubicSpline = this.spline.mapAll((fn) => {\n if (fn instanceof DensityFunction) {\n return fn.mapAll(visitor);\n }\n return fn;\n });\n newCubicSpline.calculateMinMax();\n return visitor.map(new Spline(newCubicSpline));\n }\n minValue() {\n return this.spline.min();\n }\n maxValue() {\n return this.spline.max();\n }\n }\n DensityFunction.Spline = Spline;\n class YClampedGradient extends DensityFunction {\n fromY;\n toY;\n fromValue;\n toValue;\n constructor(fromY, toY, fromValue, toValue) {\n super();\n this.fromY = fromY;\n this.toY = toY;\n this.fromValue = fromValue;\n this.toValue = toValue;\n }\n compute(context) {\n return clampedMap(context.y, this.fromY, this.toY, this.fromValue, this.toValue);\n }\n minValue() {\n return Math.min(this.fromValue, this.toValue);\n }\n maxValue() {\n return Math.max(this.fromValue, this.toValue);\n }\n }\n DensityFunction.YClampedGradient = YClampedGradient;\n})(DensityFunction || (DensityFunction = {}));\n//# sourceMappingURL=DensityFunction.js.map","import { BlockPos, BlockState, ChunkPos } from '../core/index.js';\nimport { clamp, clampedMap, map } from '../math/index.js';\nimport { lazy } from '../util/index.js';\nimport { DensityFunction } from './DensityFunction.js';\nexport class FluidStatus {\n level;\n type;\n constructor(level, type) {\n this.level = level;\n this.type = type;\n }\n at(level) {\n return level < this.level ? this.type : BlockState.AIR;\n }\n}\nexport var Aquifer;\n(function (Aquifer) {\n function createDisabled(fluidPicker) {\n return {\n compute({ x, y, z }, density) {\n if (density > 0) {\n return undefined;\n }\n return fluidPicker(x, y, z).at(y);\n },\n };\n }\n Aquifer.createDisabled = createDisabled;\n})(Aquifer || (Aquifer = {}));\nexport class NoiseAquifer {\n noiseChunk;\n router;\n random;\n globalFluidPicker;\n static X_SPACING = 16;\n static Y_SPACING = 12;\n static Z_SPACING = 16;\n static SURFACE_SAMPLING = [[-2, -1], [-1, -1], [0, -1], [1, -1], [-3, 0], [-2, 0], [-1, 0], [0, 0], [1, 0], [-2, 1], [-1, 1], [0, 1], [1, 1]];\n minGridX;\n minGridY;\n minGridZ;\n gridSizeX;\n gridSizeZ;\n gridSize;\n aquiferCache;\n aquiferLocationCache;\n constructor(noiseChunk, chunkPos, router, random, minY, height, globalFluidPicker) {\n this.noiseChunk = noiseChunk;\n this.router = router;\n this.random = random;\n this.globalFluidPicker = globalFluidPicker;\n this.minGridX = this.gridX(ChunkPos.minBlockX(chunkPos)) - 1;\n this.gridSizeX = this.gridX(ChunkPos.maxBlockX(chunkPos)) + 1 - this.minGridX + 1;\n this.minGridY = this.gridY(minY) - 1;\n this.minGridZ = this.gridZ(ChunkPos.minBlockZ(chunkPos)) - 1;\n this.gridSizeZ = this.gridZ(ChunkPos.maxBlockZ(chunkPos)) + 1 - this.minGridZ + 1;\n const gridSizeY = this.gridY(minY + height) + 1 - this.minGridY + 1;\n this.gridSize = this.gridSizeX * gridSizeY * this.gridSizeZ;\n this.aquiferCache = Array(this.gridSize).fill(undefined);\n this.aquiferLocationCache = Array(this.gridSize).fill(BlockPos.ZERO);\n }\n compute({ x, y, z }, density) {\n if (density <= 0) {\n if (this.globalFluidPicker(x, y, z).at(y).is(BlockState.LAVA)) {\n return BlockState.LAVA;\n }\n else {\n const gridX = this.gridX(x - 5);\n const gridY = this.gridY(y + 1);\n const gridZ = this.gridZ(z - 5);\n let mag1 = Number.MAX_SAFE_INTEGER;\n let mag2 = Number.MAX_SAFE_INTEGER;\n let mag3 = Number.MAX_SAFE_INTEGER;\n let loc1 = BlockPos.ZERO;\n let loc2 = BlockPos.ZERO;\n let loc3 = BlockPos.ZERO;\n for (let xOffset = 0; xOffset <= 1; xOffset += 1) {\n for (let yOffset = -1; yOffset <= 1; yOffset += 1) {\n for (let zOffset = 0; zOffset <= 1; zOffset += 1) {\n const location = this.getLocation(gridX + xOffset, gridY + yOffset, gridZ + zOffset);\n const magnitude = BlockPos.magnitude(location);\n if (mag1 >= magnitude) {\n loc3 = loc2;\n loc2 = loc1;\n loc1 = location;\n mag3 = mag2;\n mag2 = mag1;\n mag1 = magnitude;\n }\n else if (mag2 >= magnitude) {\n loc3 = loc2;\n loc2 = location;\n mag3 = mag2;\n mag2 = magnitude;\n }\n else if (mag3 >= magnitude) {\n loc3 = location;\n mag3 = magnitude;\n }\n }\n }\n }\n const status1 = this.getStatus(loc1);\n const status2 = this.getStatus(loc2);\n const status3 = this.getStatus(loc3);\n const similarity12 = NoiseAquifer.similarity(mag1, mag2);\n const similarity13 = NoiseAquifer.similarity(mag1, mag3);\n const similarity23 = NoiseAquifer.similarity(mag2, mag3);\n let pressure;\n if (status1.at(y).is(BlockState.WATER) && this.globalFluidPicker(x, y - 1, z).at(y - 1).is(BlockState.LAVA)) {\n pressure = 1;\n }\n else if (similarity12 > -1) {\n const barrier = lazy(() => this.router.barrier.compute(DensityFunction.context(x, y * 0.5, z)));\n const pressure12 = this.calculatePressure(y, status1, status2, barrier);\n const pressure13 = this.calculatePressure(y, status1, status3, barrier);\n const pressure23 = this.calculatePressure(y, status2, status3, barrier);\n const n = Math.max(pressure12, pressure13 * Math.max(0, similarity13), pressure23 * Math.max(similarity23));\n pressure = Math.max(0, 2 * Math.max(0, similarity12) * n);\n }\n else {\n pressure = 0;\n }\n if (density + pressure <= 0) {\n return status1.at(y);\n }\n }\n }\n return undefined;\n }\n static similarity(a, b) {\n return 1 - Math.abs(b - a) / 25;\n }\n calculatePressure(y, status1, status2, barrier) {\n const fluid1 = status1.at(y);\n const fluid2 = status2.at(y);\n if ((fluid1.is(BlockState.LAVA) && fluid2.is(BlockState.WATER)) || (fluid1.is(BlockState.WATER) && fluid2.is(BlockState.LAVA))) {\n return 1;\n }\n const levelDiff = Math.abs(status1.level - status2.level);\n if (levelDiff === 0) {\n return 0;\n }\n const levelAvg = (status1.level + status2.level) / 2;\n const levelAvgDiff = y + 0.5 - levelAvg;\n const p = levelDiff / 2 - Math.abs(levelAvgDiff);\n const pressure = levelAvgDiff > 0\n ? p > 0 ? p / 1.5 : p / 2.5\n : p > -3 ? (p + 3) / 3 : (p + 3) / 10;\n if (pressure < -2 || pressure > 2) {\n return pressure;\n }\n return pressure + barrier();\n }\n getStatus(location) {\n const [x, y, z] = location;\n const index = this.getIndex(this.gridX(x), this.gridY(y), this.gridZ(z));\n const cachedStatus = this.aquiferCache[index];\n if (cachedStatus !== undefined) {\n return cachedStatus;\n }\n const status = this.computeStatus(x, y, z);\n this.aquiferCache[index] = status;\n return status;\n }\n computeStatus(x, y, z) {\n const globalStatus = this.globalFluidPicker(x, y, z);\n let minPreliminarySurface = Number.MAX_SAFE_INTEGER;\n let isAquifer = false;\n for (const [xOffset, zOffset] of NoiseAquifer.SURFACE_SAMPLING) {\n const blockX = x + (zOffset << 4);\n const blockZ = z + (zOffset << 4);\n const preliminarySurface = this.noiseChunk.getPreliminarySurfaceLevel(blockX, blockZ);\n minPreliminarySurface = Math.min(minPreliminarySurface, preliminarySurface);\n const noOffset = xOffset === 0 && zOffset === 0;\n if (noOffset && y - 12 > preliminarySurface + 8) {\n return globalStatus;\n }\n if ((noOffset || y + 12 > preliminarySurface + 8)) {\n const newStatus = this.globalFluidPicker(blockX, preliminarySurface + 8, blockZ);\n if (!newStatus.at(preliminarySurface + 8).is(BlockState.AIR)) {\n if (noOffset) {\n return newStatus;\n }\n else {\n isAquifer = true;\n }\n }\n }\n }\n const allowedFloodedness = isAquifer ? clampedMap(minPreliminarySurface + 8 - y, 0, 64, 1, 0) : 0;\n const floodedness = clamp(this.router.fluidLevelFloodedness.compute(DensityFunction.context(x, y * 0.67, z)), -1, 1);\n if (floodedness > map(allowedFloodedness, 1, 0, -0.3, 0.8)) {\n return globalStatus;\n }\n if (floodedness <= map(allowedFloodedness, 1, 0, -0.8, 0.4)) {\n return new FluidStatus(Number.MIN_SAFE_INTEGER, globalStatus.type);\n }\n const gridY = Math.floor(y / 40);\n const spread = this.router.fluidLevelSpread.compute(DensityFunction.context(Math.floor(x / 16), gridY, Math.floor(z / 16)));\n const level = gridY * 40 + 20 + Math.floor(spread / 3) * 3;\n const statusLevel = Math.min(minPreliminarySurface, level);\n const fluid = this.getFluidType(x, y, z, globalStatus.type, level);\n return new FluidStatus(statusLevel, fluid);\n }\n getFluidType(x, y, z, global, level) {\n if (level <= -10) {\n const lava = this.router.lava.compute(DensityFunction.context(Math.floor(x / 64), Math.floor(y / 40), Math.floor(z / 64)));\n if (Math.abs(lava) > 0.3) {\n return BlockState.LAVA;\n }\n }\n return global;\n }\n getLocation(x, y, z) {\n const index = this.getIndex(x, y, z);\n const cachedLocation = this.aquiferLocationCache[index];\n if (BlockPos.equals(cachedLocation, BlockPos.ZERO)) {\n return cachedLocation;\n }\n const random = this.random.at(x, y, z);\n const location = BlockPos.create(x * NoiseAquifer.X_SPACING + random.nextInt(10), y * NoiseAquifer.Y_SPACING + random.nextInt(9), z * NoiseAquifer.Z_SPACING + random.nextInt(10));\n this.aquiferLocationCache[index] = location;\n return location;\n }\n getIndex(x, y, z) {\n const gridX = x - this.minGridX;\n const gridY = y - this.minGridY;\n const gridZ = z - this.minGridZ;\n const index = (gridY * this.gridSizeZ + gridZ) * this.gridSizeX + gridX;\n if (index < 0 || index >= this.gridSize) {\n throw new Error(`Invalid aquifer index at ${x} ${y} ${z}: 0 <= ${index} < ${this.gridSize}`);\n }\n return index;\n }\n gridX(x) {\n return Math.floor(x / NoiseAquifer.X_SPACING);\n }\n gridY(y) {\n return Math.floor(y / NoiseAquifer.Y_SPACING);\n }\n gridZ(z) {\n return Math.floor(z / NoiseAquifer.Z_SPACING);\n }\n}\n//# sourceMappingURL=Aquifer.js.map","import { Identifier } from '../../core/index.js';\nimport { Json } from '../../util/index.js';\nexport class CheckerboardBiomeSource {\n shift;\n biomes;\n n;\n constructor(shift, biomes) {\n this.shift = shift;\n this.biomes = biomes;\n if (biomes.length === 0) {\n throw new Error('Cannot create checkerboard biome source without biomes');\n }\n this.n = biomes.length;\n }\n getBiome(x, y, z) {\n const i = (((x >> this.shift) + (z >> this.shift)) % this.n + this.n) % this.n;\n return Identifier.parse(this.biomes[i].toString());\n }\n static fromJson(obj) {\n const root = Json.readObject(obj) ?? {};\n const scale = Json.readInt(root.scale) ?? 2;\n let biomes;\n if (typeof root.biomes === 'string') {\n biomes = [Identifier.parse(root.biomes)];\n }\n else {\n biomes = Json.readArray(root.biomes, (b) => Identifier.parse(Json.readString(b) ?? '')) ?? [];\n }\n return new CheckerboardBiomeSource(scale + 2, biomes);\n }\n}\n//# sourceMappingURL=CheckerboardBiomeSource.js.map","import { Identifier } from '../../core/index.js';\nimport { Json } from '../../util/index.js';\nexport class FixedBiomeSource {\n biome;\n constructor(biome) {\n this.biome = biome;\n }\n getBiome() {\n return this.biome;\n }\n static fromJson(obj) {\n const root = Json.readObject(obj) ?? {};\n const biome = Identifier.parse(Json.readString(root.biome) ?? 'plains');\n return new FixedBiomeSource(biome);\n }\n}\n//# sourceMappingURL=FixedBiomeSource.js.map","import { square } from '../../math/index.js';\nimport { Json } from '../../util/index.js';\nimport { DensityFunction } from '../DensityFunction.js';\nexport var Climate;\n(function (Climate) {\n const PARAMETER_SPACE = 7;\n function target(temperature, humidity, continentalness, erosion, depth, weirdness) {\n return new TargetPoint(temperature, humidity, continentalness, erosion, depth, weirdness);\n }\n Climate.target = target;\n function parameters(temperature, humidity, continentalness, erosion, depth, weirdness, offset) {\n return new ParamPoint(param(temperature), param(humidity), param(continentalness), param(erosion), param(depth), param(weirdness), offset);\n }\n Climate.parameters = parameters;\n function param(value, max) {\n if (typeof value === 'number') {\n return new Param(value, max ?? value);\n }\n return value;\n }\n Climate.param = param;\n class Param {\n min;\n max;\n constructor(min, max) {\n this.min = min;\n this.max = max;\n }\n distance(param) {\n const diffMax = (typeof param === 'number' ? param : param.min) - this.max;\n const diffMin = this.min - (typeof param === 'number' ? param : param.max);\n if (diffMax > 0) {\n return diffMax;\n }\n return Math.max(diffMin, 0);\n }\n union(param) {\n return new Param(Math.min(this.min, param.min), Math.max(this.max, param.max));\n }\n static fromJson(obj) {\n if (typeof obj === 'number')\n return new Param(obj, obj);\n const [min, max] = Json.readArray(obj, e => Json.readNumber(e)) ?? [];\n return new Param(min ?? 0, max ?? 0);\n }\n }\n Climate.Param = Param;\n class ParamPoint {\n temperature;\n humidity;\n continentalness;\n erosion;\n depth;\n weirdness;\n offset;\n constructor(temperature, humidity, continentalness, erosion, depth, weirdness, offset) {\n this.temperature = temperature;\n this.humidity = humidity;\n this.continentalness = continentalness;\n this.erosion = erosion;\n this.depth = depth;\n this.weirdness = weirdness;\n this.offset = offset;\n }\n fittness(point) {\n return square(this.temperature.distance(point.temperature))\n + square(this.humidity.distance(point.humidity))\n + square(this.continentalness.distance(point.continentalness))\n + square(this.erosion.distance(point.erosion))\n + square(this.depth.distance(point.depth))\n + square(this.weirdness.distance(point.weirdness))\n + square(this.offset - point.offset);\n }\n space() {\n return [this.temperature, this.humidity, this.continentalness, this.erosion, this.depth, this.weirdness, new Param(this.offset, this.offset)];\n }\n static fromJson(obj) {\n const root = Json.readObject(obj) ?? {};\n return new ParamPoint(Param.fromJson(root.temperature), Param.fromJson(root.humidity), Param.fromJson(root.continentalness), Param.fromJson(root.erosion), Param.fromJson(root.depth), Param.fromJson(root.weirdness), Json.readInt(root.offset) ?? 0);\n }\n }\n Climate.ParamPoint = ParamPoint;\n class TargetPoint {\n temperature;\n humidity;\n continentalness;\n erosion;\n depth;\n weirdness;\n constructor(temperature, humidity, continentalness, erosion, depth, weirdness) {\n this.temperature = temperature;\n this.humidity = humidity;\n this.continentalness = continentalness;\n this.erosion = erosion;\n this.depth = depth;\n this.weirdness = weirdness;\n }\n get offset() {\n return 0;\n }\n toArray() {\n return [this.temperature, this.humidity, this.continentalness, this.erosion, this.depth, this.weirdness, this.offset];\n }\n }\n Climate.TargetPoint = TargetPoint;\n class Parameters {\n things;\n index;\n constructor(things) {\n this.things = things;\n this.index = new RTree(things);\n }\n find(target) {\n return this.index.search(target, (node, values) => node.distance(values));\n }\n }\n Climate.Parameters = Parameters;\n class Sampler {\n temperature;\n humidity;\n continentalness;\n erosion;\n depth;\n weirdness;\n constructor(temperature, humidity, continentalness, erosion, depth, weirdness) {\n this.temperature = temperature;\n this.humidity = humidity;\n this.continentalness = continentalness;\n this.erosion = erosion;\n this.depth = depth;\n this.weirdness = weirdness;\n }\n static fromRouter(router) {\n return new Climate.Sampler(router.temperature, router.vegetation, router.continents, router.erosion, router.depth, router.ridges);\n }\n sample(x, y, z) {\n const context = DensityFunction.context(x << 2, y << 2, z << 2);\n return Climate.target(this.temperature.compute(context), this.humidity.compute(context), this.continentalness.compute(context), this.erosion.compute(context), this.depth.compute(context), this.weirdness.compute(context));\n }\n }\n Climate.Sampler = Sampler;\n class RTree {\n static CHILDREN_PER_NODE = 10;\n root;\n constructor(points) {\n if (points.length === 0) {\n throw new Error('At least one point is required to build search tree');\n }\n this.root = RTree.build(points.map(([point, thing]) => new RLeaf(point, thing)));\n }\n static build(nodes) {\n if (nodes.length === 1) {\n return nodes[0];\n }\n if (nodes.length <= RTree.CHILDREN_PER_NODE) {\n const sortedNodes = nodes\n .map(node => {\n let key = 0.0;\n for (let i = 0; i < PARAMETER_SPACE; i += 1) {\n const param = node.space[i];\n key += Math.abs((param.min + param.max) / 2.0);\n }\n return { key, node };\n })\n .sort((a, b) => a.key - b.key)\n .map(({ node }) => node);\n return new RSubTree(sortedNodes);\n }\n let f = Infinity;\n let n3 = -1;\n let result = [];\n for (let n2 = 0; n2 < PARAMETER_SPACE; ++n2) {\n nodes = RTree.sort(nodes, n2, false);\n result = RTree.bucketize(nodes);\n let f2 = 0.0;\n for (const subTree2 of result) {\n f2 += RTree.area(subTree2.space);\n }\n if (!(f > f2))\n continue;\n f = f2;\n n3 = n2;\n }\n nodes = RTree.sort(nodes, n3, false);\n result = RTree.bucketize(nodes);\n result = RTree.sort(result, n3, true);\n return new RSubTree(result.map(subTree => RTree.build(subTree.children)));\n }\n static sort(nodes, i, abs) {\n return nodes\n .map(node => {\n const param = node.space[i];\n const f = (param.min + param.max) / 2;\n const key = abs ? Math.abs(f) : f;\n return { key, node };\n })\n .sort((a, b) => a.key - b.key)\n .map(({ node }) => node);\n }\n static bucketize(nodes) {\n const arrayList = [];\n let arrayList2 = [];\n const n = Math.pow(10.0, Math.floor(Math.log(nodes.length - 0.01) / Math.log(10.0)));\n for (const node of nodes) {\n arrayList2.push(node);\n if (arrayList2.length < n)\n continue;\n arrayList.push(new RSubTree(arrayList2));\n arrayList2 = [];\n }\n if (arrayList2.length !== 0) {\n arrayList.push(new RSubTree(arrayList2));\n }\n return arrayList;\n }\n static area(params) {\n let f = 0.0;\n for (const param of params) {\n f += Math.abs(param.max - param.min);\n }\n return f;\n }\n search(target, distance) {\n const leaf = this.root.search(target.toArray(), distance);\n return leaf.thing();\n }\n }\n Climate.RTree = RTree;\n class RNode {\n space;\n constructor(space) {\n this.space = space;\n }\n distance(values) {\n let result = 0;\n for (let i = 0; i < PARAMETER_SPACE; i += 1) {\n result += square(this.space[i].distance(values[i]));\n }\n return result;\n }\n }\n Climate.RNode = RNode;\n class RSubTree extends RNode {\n children;\n constructor(children) {\n super(RSubTree.buildSpace(children));\n this.children = children;\n }\n static buildSpace(nodes) {\n let space = [...Array(PARAMETER_SPACE)].map(() => new Param(Infinity, -Infinity));\n for (const node of nodes) {\n space = [...Array(PARAMETER_SPACE)].map((_, i) => space[i].union(node.space[i]));\n }\n return space;\n }\n search(values, distance) {\n let dist = Infinity;\n let leaf = null;\n for (const node of this.children) {\n const d1 = distance(node, values);\n if (dist <= d1)\n continue;\n const leaf2 = node.search(values, distance);\n const d2 = node == leaf2 ? d1 : distance(leaf2, values);\n if (dist <= d2)\n continue;\n dist = d2;\n leaf = leaf2;\n }\n return leaf;\n }\n }\n Climate.RSubTree = RSubTree;\n class RLeaf extends RNode {\n thing;\n constructor(point, thing) {\n super(point.space());\n this.thing = thing;\n }\n search() {\n return this;\n }\n }\n Climate.RLeaf = RLeaf;\n})(Climate || (Climate = {}));\n//# sourceMappingURL=Climate.js.map","import { Identifier } from '../../core/index.js';\nimport { Json } from '../../util/index.js';\nimport { Climate } from './Climate.js';\nexport class MultiNoiseBiomeSource {\n parameters;\n constructor(entries) {\n this.parameters = new Climate.Parameters(entries);\n }\n getBiome(x, y, z, climateSampler) {\n const target = climateSampler.sample(x, y, z);\n return this.parameters.find(target);\n }\n static fromJson(obj) {\n const root = Json.readObject(obj) ?? {};\n const biomes = Json.readArray(root.biomes, b => (b => ({\n biome: Identifier.parse(Json.readString(b.biome) ?? 'plains'),\n parameters: Climate.ParamPoint.fromJson(b.parameters),\n }))(Json.readObject(b) ?? {})) ?? [];\n const entries = biomes.map(b => [b.parameters, () => b.biome]);\n return new MultiNoiseBiomeSource(entries);\n }\n}\n//# sourceMappingURL=MultiNoiseBiomeSource.js.map","import { Identifier } from '../../core/index.js';\nimport { DensityFunction } from '../DensityFunction.js';\nexport class TheEndBiomeSource {\n static END = Identifier.create('the_end');\n static HIGHLANDS = Identifier.create('end_highlands');\n static MIDLANDS = Identifier.create('end_midlands');\n static ISLANDS = Identifier.create('small_end_islands');\n static BARRENS = Identifier.create('end_barrens');\n getBiome(x, y, z, climateSampler) {\n const blockX = x << 2;\n const blockY = y << 2;\n const blockZ = z << 2;\n const sectionX = blockX >> 4;\n const sectionZ = blockZ >> 4;\n if (sectionX * sectionX + sectionZ * sectionZ <= 4096) {\n return TheEndBiomeSource.END;\n }\n const context = DensityFunction.context((sectionX * 2 + 1) * 8, blockY, (sectionZ * 2 + 1) * 8);\n const erosion = climateSampler.erosion.compute(context);\n if (erosion > 0.25) {\n return TheEndBiomeSource.HIGHLANDS;\n }\n else if (erosion >= -0.0625) {\n return TheEndBiomeSource.MIDLANDS;\n }\n else if (erosion >= -0.21875) {\n return TheEndBiomeSource.BARRENS;\n }\n else {\n return TheEndBiomeSource.ISLANDS;\n }\n }\n static fromJson(obj) {\n return new TheEndBiomeSource();\n }\n}\n//# sourceMappingURL=TheEndBiomeSource.js.map","import { Identifier } from '../../core/index.js';\nimport { Json } from '../../util/index.js';\nimport { CheckerboardBiomeSource } from './CheckerboardBiomeSource.js';\nimport { FixedBiomeSource } from './FixedBiomeSource.js';\nimport { MultiNoiseBiomeSource } from './MultiNoiseBiomeSource.js';\nimport { TheEndBiomeSource } from './TheEndBiomeSource.js';\nexport var BiomeSource;\n(function (BiomeSource) {\n function fromJson(obj) {\n const root = Json.readObject(obj) ?? {};\n const type = Json.readString(root.type)?.replace(/^minecraft:/, '');\n switch (type) {\n case 'fixed': return FixedBiomeSource.fromJson(obj);\n case 'checkerboard': return CheckerboardBiomeSource.fromJson(obj);\n case 'multi_noise': return MultiNoiseBiomeSource.fromJson(obj);\n case 'the_end': return TheEndBiomeSource.fromJson(obj);\n default: return { getBiome: () => Identifier.create('plains') };\n }\n }\n BiomeSource.fromJson = fromJson;\n})(BiomeSource || (BiomeSource = {}));\n//# sourceMappingURL=BiomeSource.js.map","import { BlockPos, ChunkPos } from '../core/index.js';\nimport { computeIfAbsent } from '../util/index.js';\nimport { Aquifer, NoiseAquifer } from './Aquifer.js';\nimport { DensityFunction } from './DensityFunction.js';\nimport { NoiseSettings } from './NoiseSettings.js';\nexport class NoiseChunk {\n cellCountXZ;\n cellCountY;\n cellNoiseMinY;\n minX;\n minZ;\n settings;\n cellWidth;\n cellHeight;\n firstCellX;\n firstCellZ;\n firstNoiseX;\n firstNoiseZ;\n noiseSizeXZ;\n preliminarySurfaceLevel = new Map();\n aquifer;\n materialRule;\n initialDensity;\n constructor(cellCountXZ, cellCountY, cellNoiseMinY, randomState, minX, minZ, settings, aquifersEnabled, fluidPicker) {\n this.cellCountXZ = cellCountXZ;\n this.cellCountY = cellCountY;\n this.cellNoiseMinY = cellNoiseMinY;\n this.minX = minX;\n this.minZ = minZ;\n this.settings = settings;\n this.cellWidth = NoiseSettings.cellWidth(settings);\n this.cellHeight = NoiseSettings.cellHeight(settings);\n this.firstCellX = Math.floor(minX / this.cellWidth);\n this.firstCellZ = Math.floor(minZ / this.cellWidth);\n this.firstNoiseX = minX >> 2;\n this.firstNoiseZ = minZ >> 2;\n this.noiseSizeXZ = (cellCountXZ * this.cellWidth) >> 2;\n if (!aquifersEnabled || true) { // WIP: Noise aquifers don't work yet\n this.aquifer = Aquifer.createDisabled(fluidPicker);\n }\n else {\n const chunkPos = ChunkPos.fromBlockPos(BlockPos.create(minX, 0, minZ));\n const minY = cellNoiseMinY * NoiseSettings.cellHeight(settings);\n const height = cellCountY * NoiseSettings.cellHeight(settings);\n this.aquifer = new NoiseAquifer(this, chunkPos, randomState.router, randomState.aquiferRandom, minY, height, fluidPicker);\n }\n const finalDensity = randomState.router.finalDensity;\n this.materialRule = MaterialRule.fromList([\n (context) => this.aquifer.compute(context, finalDensity.compute(context)),\n ]);\n this.initialDensity = randomState.router.initialDensityWithoutJaggedness;\n }\n getFinalState(x, y, z) {\n return this.materialRule({ x, y, z });\n }\n getPreliminarySurfaceLevel(quartX, quartZ) {\n return computeIfAbsent(this.preliminarySurfaceLevel, ChunkPos.asLong(quartX, quartZ), () => {\n const x = quartX << 2;\n const z = quartZ << 2;\n for (let y = this.settings.minY + this.settings.height; y >= this.settings.minY; y -= this.cellHeight) {\n const density = this.initialDensity.compute(DensityFunction.context(x, y, z));\n if (density > 0.390625) {\n return y;\n }\n }\n return Number.MAX_SAFE_INTEGER;\n });\n }\n}\nexport var MaterialRule;\n(function (MaterialRule) {\n function fromList(rules) {\n return (context) => {\n for (const rule of rules) {\n const state = rule(context);\n if (state)\n return state;\n }\n return undefined;\n };\n }\n MaterialRule.fromList = fromList;\n})(MaterialRule || (MaterialRule = {}));\n//# sourceMappingURL=NoiseChunk.js.map","import { BlockState, ChunkPos } from '../core/index.js';\nimport { computeIfAbsent } from '../util/index.js';\nimport { FluidStatus } from './Aquifer.js';\nimport { NoiseChunk } from './NoiseChunk.js';\nimport { NoiseSettings } from './NoiseSettings.js';\nimport { WorldgenContext } from './VerticalAnchor.js';\nexport class NoiseChunkGenerator {\n biomeSource;\n settings;\n noiseChunkCache;\n globalFluidPicker;\n constructor(biomeSource, settings) {\n this.biomeSource = biomeSource;\n this.settings = settings;\n this.noiseChunkCache = new Map();\n const lavaFluid = new FluidStatus(-54, BlockState.LAVA);\n const defaultFluid = new FluidStatus(settings.seaLevel, settings.defaultFluid);\n this.globalFluidPicker = (x, y, z) => {\n if (y < Math.min(-54, settings.seaLevel)) {\n return lavaFluid;\n }\n return defaultFluid;\n };\n }\n fill(randomState, chunk, onlyFirstZ = false) {\n const minY = Math.max(chunk.minY, this.settings.noise.minY);\n const maxY = Math.min(chunk.maxY, this.settings.noise.minY + this.settings.noise.height);\n const cellWidth = NoiseSettings.cellWidth(this.settings.noise);\n const cellHeight = NoiseSettings.cellHeight(this.settings.noise);\n const cellCountXZ = Math.floor(16 / cellWidth);\n const minCellY = Math.floor(minY / cellHeight);\n const cellCountY = Math.floor((maxY - minY) / cellHeight);\n const minX = ChunkPos.minBlockX(chunk.pos);\n const minZ = ChunkPos.minBlockZ(chunk.pos);\n const noiseChunk = this.getOrCreateNoiseChunk(randomState, chunk);\n for (let cellX = 0; cellX < cellCountXZ; cellX += 1) {\n for (let cellZ = 0; cellZ < (onlyFirstZ ? 1 : cellCountXZ); cellZ += 1) {\n let section = chunk.getOrCreateSection(chunk.sectionsCount - 1);\n for (let cellY = cellCountY - 1; cellY >= 0; cellY -= 1) {\n for (let offY = cellHeight - 1; offY >= 0; offY -= 1) {\n const blockY = (minCellY + cellY) * cellHeight + offY;\n const sectionY = blockY & 0xF;\n const sectionIndex = chunk.getSectionIndex(blockY);\n if (chunk.getSectionIndex(section.minBlockY) !== sectionIndex) {\n section = chunk.getOrCreateSection(sectionIndex);\n }\n for (let offX = 0; offX < cellWidth; offX += 1) {\n const blockX = minX + cellX * cellWidth + offX;\n const sectionX = blockX & 0xF;\n for (let offZ = 0; offZ < (onlyFirstZ ? 1 : cellWidth); offZ += 1) {\n const blockZ = minZ + cellZ * cellWidth + offZ;\n const sectionZ = blockZ & 0xF;\n const state = noiseChunk.getFinalState(blockX, blockY, blockZ) ?? this.settings.defaultBlock;\n section.setBlockState(sectionX, sectionY, sectionZ, state);\n }\n }\n }\n }\n }\n }\n }\n buildSurface(randomState, chunk, /** @deprecated */ biome = 'minecraft:plains') {\n const noiseChunk = this.getOrCreateNoiseChunk(randomState, chunk);\n const context = WorldgenContext.create(this.settings.noise.minY, this.settings.noise.height);\n randomState.surfaceSystem.buildSurface(chunk, noiseChunk, context, () => biome);\n }\n computeBiome(randomState, quartX, quartY, quartZ) {\n return this.biomeSource.getBiome(quartX, quartY, quartZ, randomState.sampler);\n }\n getOrCreateNoiseChunk(randomState, chunk) {\n return computeIfAbsent(this.noiseChunkCache, ChunkPos.toLong(chunk.pos), () => {\n const minY = Math.max(chunk.minY, this.settings.noise.minY);\n const maxY = Math.min(chunk.maxY, this.settings.noise.minY + this.settings.noise.height);\n const cellWidth = NoiseSettings.cellWidth(this.settings.noise);\n const cellHeight = NoiseSettings.cellHeight(this.settings.noise);\n const cellCountXZ = Math.floor(16 / cellWidth);\n const minCellY = Math.floor(minY / cellHeight);\n const cellCountY = Math.floor((maxY - minY) / cellHeight);\n const minX = ChunkPos.minBlockX(chunk.pos);\n const minZ = ChunkPos.minBlockZ(chunk.pos);\n return new NoiseChunk(cellCountXZ, cellCountY, minCellY, randomState, minX, minZ, this.settings.noise, this.settings.aquifersEnabled, this.globalFluidPicker);\n });\n }\n}\n//# sourceMappingURL=NoiseChunkGenerator.js.map","import { clamp } from '../math/index.js';\nconst toRGB = (c) => {\n const r = (c >> 16) & 255;\n const g = (c >> 8) & 255;\n const b = c & 255;\n return [r / 256, g / 256, b / 256];\n};\nconst grass = [124 / 256, 189 / 256, 107 / 256];\nconst spruce = toRGB(6396257);\nconst birch = toRGB(8431445);\nconst foliage = toRGB(4764952);\nconst water = toRGB(4159204);\nconst attached_stem = toRGB(8431445);\nconst lily_pad = toRGB(2129968);\nconst redstone = (power) => {\n const a = power / 15;\n const r = a * 0.6 + (a > 0 ? 0.4 : 0.3);\n const g = clamp(a * a * 0.7 - 0.5, 0, 1);\n const b = clamp(a * a * 0.6 - 0.7, 0, 1);\n return [r, g, b];\n};\nconst stem = (age) => {\n return [age / 8, 1 - age / 32, age * 64];\n};\nexport const BlockColors = {\n large_fern: () => grass,\n tall_grass: () => grass,\n grass_block: () => grass,\n fern: () => grass,\n grass: () => grass,\n potted_fern: () => grass,\n spruce_leaves: () => spruce,\n birch_leaves: () => birch,\n oak_leaves: () => foliage,\n jungle_leaves: () => foliage,\n acacia_leaves: () => foliage,\n dark_oak_leaves: () => foliage,\n vine: () => foliage,\n water: () => water,\n bubble_column: () => water,\n cauldron: () => water,\n redstone_wire: (props) => redstone(parseInt(props['power'] ?? '0')),\n sugar_cane: () => grass,\n attached_melon_stem: () => attached_stem,\n attached_pumpkin_stem: () => attached_stem,\n melon_stem: (props) => stem(parseInt(props['age'] ?? '0')),\n pumpkin_stem: (props) => stem(parseInt(props['age'] ?? '0')),\n lily_pad: () => lily_pad,\n};\n//# sourceMappingURL=BlockColors.js.map","/**\n * Common utilities\n * @module glMatrix\n */\n// Configuration Constants\nexport var EPSILON = 0.000001;\nexport var ARRAY_TYPE = typeof Float32Array !== 'undefined' ? Float32Array : Array;\nexport var RANDOM = Math.random;\n/**\n * Sets the type of array used when creating new vectors and matrices\n *\n * @param {Float32ArrayConstructor | ArrayConstructor} type Array type, such as Float32Array or Array\n */\n\nexport function setMatrixArrayType(type) {\n ARRAY_TYPE = type;\n}\nvar degree = Math.PI / 180;\n/**\n * Convert Degree To Radian\n *\n * @param {Number} a Angle in Degrees\n */\n\nexport function toRadian(a) {\n return a * degree;\n}\n/**\n * Tests whether or not the arguments have approximately the same value, within an absolute\n * or relative tolerance of glMatrix.EPSILON (an absolute tolerance is used for values less\n * than or equal to 1.0, and a relative tolerance is used for larger values)\n *\n * @param {Number} a The first number to test.\n * @param {Number} b The second number to test.\n * @returns {Boolean} True if the numbers are approximately equal, false otherwise.\n */\n\nexport function equals(a, b) {\n return Math.abs(a - b) <= EPSILON * Math.max(1.0, Math.abs(a), Math.abs(b));\n}\nif (!Math.hypot) Math.hypot = function () {\n var y = 0,\n i = arguments.length;\n\n while (i--) {\n y += arguments[i] * arguments[i];\n }\n\n return Math.sqrt(y);\n};","import * as glMatrix from \"./common.js\";\n/**\n * 4x4 Matrix<br>Format: column-major, when typed out it looks like row-major<br>The matrices are being post multiplied.\n * @module mat4\n */\n\n/**\n * Creates a new identity mat4\n *\n * @returns {mat4} a new 4x4 matrix\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(16);\n\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n }\n\n out[0] = 1;\n out[5] = 1;\n out[10] = 1;\n out[15] = 1;\n return out;\n}\n/**\n * Creates a new mat4 initialized with values from an existing matrix\n *\n * @param {ReadonlyMat4} a matrix to clone\n * @returns {mat4} a new 4x4 matrix\n */\n\nexport function clone(a) {\n var out = new glMatrix.ARRAY_TYPE(16);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n}\n/**\n * Copy the values from one mat4 to another\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the source matrix\n * @returns {mat4} out\n */\n\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n}\n/**\n * Create a new mat4 with the given values\n *\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\n * @param {Number} m03 Component in column 0, row 3 position (index 3)\n * @param {Number} m10 Component in column 1, row 0 position (index 4)\n * @param {Number} m11 Component in column 1, row 1 position (index 5)\n * @param {Number} m12 Component in column 1, row 2 position (index 6)\n * @param {Number} m13 Component in column 1, row 3 position (index 7)\n * @param {Number} m20 Component in column 2, row 0 position (index 8)\n * @param {Number} m21 Component in column 2, row 1 position (index 9)\n * @param {Number} m22 Component in column 2, row 2 position (index 10)\n * @param {Number} m23 Component in column 2, row 3 position (index 11)\n * @param {Number} m30 Component in column 3, row 0 position (index 12)\n * @param {Number} m31 Component in column 3, row 1 position (index 13)\n * @param {Number} m32 Component in column 3, row 2 position (index 14)\n * @param {Number} m33 Component in column 3, row 3 position (index 15)\n * @returns {mat4} A new mat4\n */\n\nexport function fromValues(m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33) {\n var out = new glMatrix.ARRAY_TYPE(16);\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m03;\n out[4] = m10;\n out[5] = m11;\n out[6] = m12;\n out[7] = m13;\n out[8] = m20;\n out[9] = m21;\n out[10] = m22;\n out[11] = m23;\n out[12] = m30;\n out[13] = m31;\n out[14] = m32;\n out[15] = m33;\n return out;\n}\n/**\n * Set the components of a mat4 to the given values\n *\n * @param {mat4} out the receiving matrix\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\n * @param {Number} m03 Component in column 0, row 3 position (index 3)\n * @param {Number} m10 Component in column 1, row 0 position (index 4)\n * @param {Number} m11 Component in column 1, row 1 position (index 5)\n * @param {Number} m12 Component in column 1, row 2 position (index 6)\n * @param {Number} m13 Component in column 1, row 3 position (index 7)\n * @param {Number} m20 Component in column 2, row 0 position (index 8)\n * @param {Number} m21 Component in column 2, row 1 position (index 9)\n * @param {Number} m22 Component in column 2, row 2 position (index 10)\n * @param {Number} m23 Component in column 2, row 3 position (index 11)\n * @param {Number} m30 Component in column 3, row 0 position (index 12)\n * @param {Number} m31 Component in column 3, row 1 position (index 13)\n * @param {Number} m32 Component in column 3, row 2 position (index 14)\n * @param {Number} m33 Component in column 3, row 3 position (index 15)\n * @returns {mat4} out\n */\n\nexport function set(out, m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33) {\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m03;\n out[4] = m10;\n out[5] = m11;\n out[6] = m12;\n out[7] = m13;\n out[8] = m20;\n out[9] = m21;\n out[10] = m22;\n out[11] = m23;\n out[12] = m30;\n out[13] = m31;\n out[14] = m32;\n out[15] = m33;\n return out;\n}\n/**\n * Set a mat4 to the identity matrix\n *\n * @param {mat4} out the receiving matrix\n * @returns {mat4} out\n */\n\nexport function identity(out) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Transpose the values of a mat4\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the source matrix\n * @returns {mat4} out\n */\n\nexport function transpose(out, a) {\n // If we are transposing ourselves we can skip a few steps but have to cache some values\n if (out === a) {\n var a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a12 = a[6],\n a13 = a[7];\n var a23 = a[11];\n out[1] = a[4];\n out[2] = a[8];\n out[3] = a[12];\n out[4] = a01;\n out[6] = a[9];\n out[7] = a[13];\n out[8] = a02;\n out[9] = a12;\n out[11] = a[14];\n out[12] = a03;\n out[13] = a13;\n out[14] = a23;\n } else {\n out[0] = a[0];\n out[1] = a[4];\n out[2] = a[8];\n out[3] = a[12];\n out[4] = a[1];\n out[5] = a[5];\n out[6] = a[9];\n out[7] = a[13];\n out[8] = a[2];\n out[9] = a[6];\n out[10] = a[10];\n out[11] = a[14];\n out[12] = a[3];\n out[13] = a[7];\n out[14] = a[11];\n out[15] = a[15];\n }\n\n return out;\n}\n/**\n * Inverts a mat4\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the source matrix\n * @returns {mat4} out\n */\n\nexport function invert(out, a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15];\n var b00 = a00 * a11 - a01 * a10;\n var b01 = a00 * a12 - a02 * a10;\n var b02 = a00 * a13 - a03 * a10;\n var b03 = a01 * a12 - a02 * a11;\n var b04 = a01 * a13 - a03 * a11;\n var b05 = a02 * a13 - a03 * a12;\n var b06 = a20 * a31 - a21 * a30;\n var b07 = a20 * a32 - a22 * a30;\n var b08 = a20 * a33 - a23 * a30;\n var b09 = a21 * a32 - a22 * a31;\n var b10 = a21 * a33 - a23 * a31;\n var b11 = a22 * a33 - a23 * a32; // Calculate the determinant\n\n var det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n\n if (!det) {\n return null;\n }\n\n det = 1.0 / det;\n out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;\n out[1] = (a02 * b10 - a01 * b11 - a03 * b09) * det;\n out[2] = (a31 * b05 - a32 * b04 + a33 * b03) * det;\n out[3] = (a22 * b04 - a21 * b05 - a23 * b03) * det;\n out[4] = (a12 * b08 - a10 * b11 - a13 * b07) * det;\n out[5] = (a00 * b11 - a02 * b08 + a03 * b07) * det;\n out[6] = (a32 * b02 - a30 * b05 - a33 * b01) * det;\n out[7] = (a20 * b05 - a22 * b02 + a23 * b01) * det;\n out[8] = (a10 * b10 - a11 * b08 + a13 * b06) * det;\n out[9] = (a01 * b08 - a00 * b10 - a03 * b06) * det;\n out[10] = (a30 * b04 - a31 * b02 + a33 * b00) * det;\n out[11] = (a21 * b02 - a20 * b04 - a23 * b00) * det;\n out[12] = (a11 * b07 - a10 * b09 - a12 * b06) * det;\n out[13] = (a00 * b09 - a01 * b07 + a02 * b06) * det;\n out[14] = (a31 * b01 - a30 * b03 - a32 * b00) * det;\n out[15] = (a20 * b03 - a21 * b01 + a22 * b00) * det;\n return out;\n}\n/**\n * Calculates the adjugate of a mat4\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the source matrix\n * @returns {mat4} out\n */\n\nexport function adjoint(out, a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15];\n out[0] = a11 * (a22 * a33 - a23 * a32) - a21 * (a12 * a33 - a13 * a32) + a31 * (a12 * a23 - a13 * a22);\n out[1] = -(a01 * (a22 * a33 - a23 * a32) - a21 * (a02 * a33 - a03 * a32) + a31 * (a02 * a23 - a03 * a22));\n out[2] = a01 * (a12 * a33 - a13 * a32) - a11 * (a02 * a33 - a03 * a32) + a31 * (a02 * a13 - a03 * a12);\n out[3] = -(a01 * (a12 * a23 - a13 * a22) - a11 * (a02 * a23 - a03 * a22) + a21 * (a02 * a13 - a03 * a12));\n out[4] = -(a10 * (a22 * a33 - a23 * a32) - a20 * (a12 * a33 - a13 * a32) + a30 * (a12 * a23 - a13 * a22));\n out[5] = a00 * (a22 * a33 - a23 * a32) - a20 * (a02 * a33 - a03 * a32) + a30 * (a02 * a23 - a03 * a22);\n out[6] = -(a00 * (a12 * a33 - a13 * a32) - a10 * (a02 * a33 - a03 * a32) + a30 * (a02 * a13 - a03 * a12));\n out[7] = a00 * (a12 * a23 - a13 * a22) - a10 * (a02 * a23 - a03 * a22) + a20 * (a02 * a13 - a03 * a12);\n out[8] = a10 * (a21 * a33 - a23 * a31) - a20 * (a11 * a33 - a13 * a31) + a30 * (a11 * a23 - a13 * a21);\n out[9] = -(a00 * (a21 * a33 - a23 * a31) - a20 * (a01 * a33 - a03 * a31) + a30 * (a01 * a23 - a03 * a21));\n out[10] = a00 * (a11 * a33 - a13 * a31) - a10 * (a01 * a33 - a03 * a31) + a30 * (a01 * a13 - a03 * a11);\n out[11] = -(a00 * (a11 * a23 - a13 * a21) - a10 * (a01 * a23 - a03 * a21) + a20 * (a01 * a13 - a03 * a11));\n out[12] = -(a10 * (a21 * a32 - a22 * a31) - a20 * (a11 * a32 - a12 * a31) + a30 * (a11 * a22 - a12 * a21));\n out[13] = a00 * (a21 * a32 - a22 * a31) - a20 * (a01 * a32 - a02 * a31) + a30 * (a01 * a22 - a02 * a21);\n out[14] = -(a00 * (a11 * a32 - a12 * a31) - a10 * (a01 * a32 - a02 * a31) + a30 * (a01 * a12 - a02 * a11));\n out[15] = a00 * (a11 * a22 - a12 * a21) - a10 * (a01 * a22 - a02 * a21) + a20 * (a01 * a12 - a02 * a11);\n return out;\n}\n/**\n * Calculates the determinant of a mat4\n *\n * @param {ReadonlyMat4} a the source matrix\n * @returns {Number} determinant of a\n */\n\nexport function determinant(a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15];\n var b00 = a00 * a11 - a01 * a10;\n var b01 = a00 * a12 - a02 * a10;\n var b02 = a00 * a13 - a03 * a10;\n var b03 = a01 * a12 - a02 * a11;\n var b04 = a01 * a13 - a03 * a11;\n var b05 = a02 * a13 - a03 * a12;\n var b06 = a20 * a31 - a21 * a30;\n var b07 = a20 * a32 - a22 * a30;\n var b08 = a20 * a33 - a23 * a30;\n var b09 = a21 * a32 - a22 * a31;\n var b10 = a21 * a33 - a23 * a31;\n var b11 = a22 * a33 - a23 * a32; // Calculate the determinant\n\n return b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n}\n/**\n * Multiplies two mat4s\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the first operand\n * @param {ReadonlyMat4} b the second operand\n * @returns {mat4} out\n */\n\nexport function multiply(out, a, b) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15]; // Cache only the current line of the second matrix\n\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3];\n out[0] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[1] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[2] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[3] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[4];\n b1 = b[5];\n b2 = b[6];\n b3 = b[7];\n out[4] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[5] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[6] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[7] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[8];\n b1 = b[9];\n b2 = b[10];\n b3 = b[11];\n out[8] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[9] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[10] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[11] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[12];\n b1 = b[13];\n b2 = b[14];\n b3 = b[15];\n out[12] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[13] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[14] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[15] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n return out;\n}\n/**\n * Translate a mat4 by the given vector\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to translate\n * @param {ReadonlyVec3} v vector to translate by\n * @returns {mat4} out\n */\n\nexport function translate(out, a, v) {\n var x = v[0],\n y = v[1],\n z = v[2];\n var a00, a01, a02, a03;\n var a10, a11, a12, a13;\n var a20, a21, a22, a23;\n\n if (a === out) {\n out[12] = a[0] * x + a[4] * y + a[8] * z + a[12];\n out[13] = a[1] * x + a[5] * y + a[9] * z + a[13];\n out[14] = a[2] * x + a[6] * y + a[10] * z + a[14];\n out[15] = a[3] * x + a[7] * y + a[11] * z + a[15];\n } else {\n a00 = a[0];\n a01 = a[1];\n a02 = a[2];\n a03 = a[3];\n a10 = a[4];\n a11 = a[5];\n a12 = a[6];\n a13 = a[7];\n a20 = a[8];\n a21 = a[9];\n a22 = a[10];\n a23 = a[11];\n out[0] = a00;\n out[1] = a01;\n out[2] = a02;\n out[3] = a03;\n out[4] = a10;\n out[5] = a11;\n out[6] = a12;\n out[7] = a13;\n out[8] = a20;\n out[9] = a21;\n out[10] = a22;\n out[11] = a23;\n out[12] = a00 * x + a10 * y + a20 * z + a[12];\n out[13] = a01 * x + a11 * y + a21 * z + a[13];\n out[14] = a02 * x + a12 * y + a22 * z + a[14];\n out[15] = a03 * x + a13 * y + a23 * z + a[15];\n }\n\n return out;\n}\n/**\n * Scales the mat4 by the dimensions in the given vec3 not using vectorization\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to scale\n * @param {ReadonlyVec3} v the vec3 to scale the matrix by\n * @returns {mat4} out\n **/\n\nexport function scale(out, a, v) {\n var x = v[0],\n y = v[1],\n z = v[2];\n out[0] = a[0] * x;\n out[1] = a[1] * x;\n out[2] = a[2] * x;\n out[3] = a[3] * x;\n out[4] = a[4] * y;\n out[5] = a[5] * y;\n out[6] = a[6] * y;\n out[7] = a[7] * y;\n out[8] = a[8] * z;\n out[9] = a[9] * z;\n out[10] = a[10] * z;\n out[11] = a[11] * z;\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n}\n/**\n * Rotates a mat4 by the given angle around the given axis\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @param {ReadonlyVec3} axis the axis to rotate around\n * @returns {mat4} out\n */\n\nexport function rotate(out, a, rad, axis) {\n var x = axis[0],\n y = axis[1],\n z = axis[2];\n var len = Math.hypot(x, y, z);\n var s, c, t;\n var a00, a01, a02, a03;\n var a10, a11, a12, a13;\n var a20, a21, a22, a23;\n var b00, b01, b02;\n var b10, b11, b12;\n var b20, b21, b22;\n\n if (len < glMatrix.EPSILON) {\n return null;\n }\n\n len = 1 / len;\n x *= len;\n y *= len;\n z *= len;\n s = Math.sin(rad);\n c = Math.cos(rad);\n t = 1 - c;\n a00 = a[0];\n a01 = a[1];\n a02 = a[2];\n a03 = a[3];\n a10 = a[4];\n a11 = a[5];\n a12 = a[6];\n a13 = a[7];\n a20 = a[8];\n a21 = a[9];\n a22 = a[10];\n a23 = a[11]; // Construct the elements of the rotation matrix\n\n b00 = x * x * t + c;\n b01 = y * x * t + z * s;\n b02 = z * x * t - y * s;\n b10 = x * y * t - z * s;\n b11 = y * y * t + c;\n b12 = z * y * t + x * s;\n b20 = x * z * t + y * s;\n b21 = y * z * t - x * s;\n b22 = z * z * t + c; // Perform rotation-specific matrix multiplication\n\n out[0] = a00 * b00 + a10 * b01 + a20 * b02;\n out[1] = a01 * b00 + a11 * b01 + a21 * b02;\n out[2] = a02 * b00 + a12 * b01 + a22 * b02;\n out[3] = a03 * b00 + a13 * b01 + a23 * b02;\n out[4] = a00 * b10 + a10 * b11 + a20 * b12;\n out[5] = a01 * b10 + a11 * b11 + a21 * b12;\n out[6] = a02 * b10 + a12 * b11 + a22 * b12;\n out[7] = a03 * b10 + a13 * b11 + a23 * b12;\n out[8] = a00 * b20 + a10 * b21 + a20 * b22;\n out[9] = a01 * b20 + a11 * b21 + a21 * b22;\n out[10] = a02 * b20 + a12 * b21 + a22 * b22;\n out[11] = a03 * b20 + a13 * b21 + a23 * b22;\n\n if (a !== out) {\n // If the source and destination differ, copy the unchanged last row\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n }\n\n return out;\n}\n/**\n * Rotates a matrix by the given angle around the X axis\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nexport function rotateX(out, a, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad);\n var a10 = a[4];\n var a11 = a[5];\n var a12 = a[6];\n var a13 = a[7];\n var a20 = a[8];\n var a21 = a[9];\n var a22 = a[10];\n var a23 = a[11];\n\n if (a !== out) {\n // If the source and destination differ, copy the unchanged rows\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n } // Perform axis-specific matrix multiplication\n\n\n out[4] = a10 * c + a20 * s;\n out[5] = a11 * c + a21 * s;\n out[6] = a12 * c + a22 * s;\n out[7] = a13 * c + a23 * s;\n out[8] = a20 * c - a10 * s;\n out[9] = a21 * c - a11 * s;\n out[10] = a22 * c - a12 * s;\n out[11] = a23 * c - a13 * s;\n return out;\n}\n/**\n * Rotates a matrix by the given angle around the Y axis\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nexport function rotateY(out, a, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad);\n var a00 = a[0];\n var a01 = a[1];\n var a02 = a[2];\n var a03 = a[3];\n var a20 = a[8];\n var a21 = a[9];\n var a22 = a[10];\n var a23 = a[11];\n\n if (a !== out) {\n // If the source and destination differ, copy the unchanged rows\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n } // Perform axis-specific matrix multiplication\n\n\n out[0] = a00 * c - a20 * s;\n out[1] = a01 * c - a21 * s;\n out[2] = a02 * c - a22 * s;\n out[3] = a03 * c - a23 * s;\n out[8] = a00 * s + a20 * c;\n out[9] = a01 * s + a21 * c;\n out[10] = a02 * s + a22 * c;\n out[11] = a03 * s + a23 * c;\n return out;\n}\n/**\n * Rotates a matrix by the given angle around the Z axis\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nexport function rotateZ(out, a, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad);\n var a00 = a[0];\n var a01 = a[1];\n var a02 = a[2];\n var a03 = a[3];\n var a10 = a[4];\n var a11 = a[5];\n var a12 = a[6];\n var a13 = a[7];\n\n if (a !== out) {\n // If the source and destination differ, copy the unchanged last row\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n } // Perform axis-specific matrix multiplication\n\n\n out[0] = a00 * c + a10 * s;\n out[1] = a01 * c + a11 * s;\n out[2] = a02 * c + a12 * s;\n out[3] = a03 * c + a13 * s;\n out[4] = a10 * c - a00 * s;\n out[5] = a11 * c - a01 * s;\n out[6] = a12 * c - a02 * s;\n out[7] = a13 * c - a03 * s;\n return out;\n}\n/**\n * Creates a matrix from a vector translation\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.translate(dest, dest, vec);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {ReadonlyVec3} v Translation vector\n * @returns {mat4} out\n */\n\nexport function fromTranslation(out, v) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = v[0];\n out[13] = v[1];\n out[14] = v[2];\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from a vector scaling\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.scale(dest, dest, vec);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {ReadonlyVec3} v Scaling vector\n * @returns {mat4} out\n */\n\nexport function fromScaling(out, v) {\n out[0] = v[0];\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = v[1];\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = v[2];\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from a given angle around a given axis\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.rotate(dest, dest, rad, axis);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @param {ReadonlyVec3} axis the axis to rotate around\n * @returns {mat4} out\n */\n\nexport function fromRotation(out, rad, axis) {\n var x = axis[0],\n y = axis[1],\n z = axis[2];\n var len = Math.hypot(x, y, z);\n var s, c, t;\n\n if (len < glMatrix.EPSILON) {\n return null;\n }\n\n len = 1 / len;\n x *= len;\n y *= len;\n z *= len;\n s = Math.sin(rad);\n c = Math.cos(rad);\n t = 1 - c; // Perform rotation-specific matrix multiplication\n\n out[0] = x * x * t + c;\n out[1] = y * x * t + z * s;\n out[2] = z * x * t - y * s;\n out[3] = 0;\n out[4] = x * y * t - z * s;\n out[5] = y * y * t + c;\n out[6] = z * y * t + x * s;\n out[7] = 0;\n out[8] = x * z * t + y * s;\n out[9] = y * z * t - x * s;\n out[10] = z * z * t + c;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from the given angle around the X axis\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.rotateX(dest, dest, rad);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nexport function fromXRotation(out, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad); // Perform axis-specific matrix multiplication\n\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = c;\n out[6] = s;\n out[7] = 0;\n out[8] = 0;\n out[9] = -s;\n out[10] = c;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from the given angle around the Y axis\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.rotateY(dest, dest, rad);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nexport function fromYRotation(out, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad); // Perform axis-specific matrix multiplication\n\n out[0] = c;\n out[1] = 0;\n out[2] = -s;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = s;\n out[9] = 0;\n out[10] = c;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from the given angle around the Z axis\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.rotateZ(dest, dest, rad);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nexport function fromZRotation(out, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad); // Perform axis-specific matrix multiplication\n\n out[0] = c;\n out[1] = s;\n out[2] = 0;\n out[3] = 0;\n out[4] = -s;\n out[5] = c;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from a quaternion rotation and vector translation\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.translate(dest, vec);\n * let quatMat = mat4.create();\n * quat4.toMat4(quat, quatMat);\n * mat4.multiply(dest, quatMat);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {quat4} q Rotation quaternion\n * @param {ReadonlyVec3} v Translation vector\n * @returns {mat4} out\n */\n\nexport function fromRotationTranslation(out, q, v) {\n // Quaternion math\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var xy = x * y2;\n var xz = x * z2;\n var yy = y * y2;\n var yz = y * z2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n out[0] = 1 - (yy + zz);\n out[1] = xy + wz;\n out[2] = xz - wy;\n out[3] = 0;\n out[4] = xy - wz;\n out[5] = 1 - (xx + zz);\n out[6] = yz + wx;\n out[7] = 0;\n out[8] = xz + wy;\n out[9] = yz - wx;\n out[10] = 1 - (xx + yy);\n out[11] = 0;\n out[12] = v[0];\n out[13] = v[1];\n out[14] = v[2];\n out[15] = 1;\n return out;\n}\n/**\n * Creates a new mat4 from a dual quat.\n *\n * @param {mat4} out Matrix\n * @param {ReadonlyQuat2} a Dual Quaternion\n * @returns {mat4} mat4 receiving operation result\n */\n\nexport function fromQuat2(out, a) {\n var translation = new glMatrix.ARRAY_TYPE(3);\n var bx = -a[0],\n by = -a[1],\n bz = -a[2],\n bw = a[3],\n ax = a[4],\n ay = a[5],\n az = a[6],\n aw = a[7];\n var magnitude = bx * bx + by * by + bz * bz + bw * bw; //Only scale if it makes sense\n\n if (magnitude > 0) {\n translation[0] = (ax * bw + aw * bx + ay * bz - az * by) * 2 / magnitude;\n translation[1] = (ay * bw + aw * by + az * bx - ax * bz) * 2 / magnitude;\n translation[2] = (az * bw + aw * bz + ax * by - ay * bx) * 2 / magnitude;\n } else {\n translation[0] = (ax * bw + aw * bx + ay * bz - az * by) * 2;\n translation[1] = (ay * bw + aw * by + az * bx - ax * bz) * 2;\n translation[2] = (az * bw + aw * bz + ax * by - ay * bx) * 2;\n }\n\n fromRotationTranslation(out, a, translation);\n return out;\n}\n/**\n * Returns the translation vector component of a transformation\n * matrix. If a matrix is built with fromRotationTranslation,\n * the returned vector will be the same as the translation vector\n * originally supplied.\n * @param {vec3} out Vector to receive translation component\n * @param {ReadonlyMat4} mat Matrix to be decomposed (input)\n * @return {vec3} out\n */\n\nexport function getTranslation(out, mat) {\n out[0] = mat[12];\n out[1] = mat[13];\n out[2] = mat[14];\n return out;\n}\n/**\n * Returns the scaling factor component of a transformation\n * matrix. If a matrix is built with fromRotationTranslationScale\n * with a normalized Quaternion paramter, the returned vector will be\n * the same as the scaling vector\n * originally supplied.\n * @param {vec3} out Vector to receive scaling factor component\n * @param {ReadonlyMat4} mat Matrix to be decomposed (input)\n * @return {vec3} out\n */\n\nexport function getScaling(out, mat) {\n var m11 = mat[0];\n var m12 = mat[1];\n var m13 = mat[2];\n var m21 = mat[4];\n var m22 = mat[5];\n var m23 = mat[6];\n var m31 = mat[8];\n var m32 = mat[9];\n var m33 = mat[10];\n out[0] = Math.hypot(m11, m12, m13);\n out[1] = Math.hypot(m21, m22, m23);\n out[2] = Math.hypot(m31, m32, m33);\n return out;\n}\n/**\n * Returns a quaternion representing the rotational component\n * of a transformation matrix. If a matrix is built with\n * fromRotationTranslation, the returned quaternion will be the\n * same as the quaternion originally supplied.\n * @param {quat} out Quaternion to receive the rotation component\n * @param {ReadonlyMat4} mat Matrix to be decomposed (input)\n * @return {quat} out\n */\n\nexport function getRotation(out, mat) {\n var scaling = new glMatrix.ARRAY_TYPE(3);\n getScaling(scaling, mat);\n var is1 = 1 / scaling[0];\n var is2 = 1 / scaling[1];\n var is3 = 1 / scaling[2];\n var sm11 = mat[0] * is1;\n var sm12 = mat[1] * is2;\n var sm13 = mat[2] * is3;\n var sm21 = mat[4] * is1;\n var sm22 = mat[5] * is2;\n var sm23 = mat[6] * is3;\n var sm31 = mat[8] * is1;\n var sm32 = mat[9] * is2;\n var sm33 = mat[10] * is3;\n var trace = sm11 + sm22 + sm33;\n var S = 0;\n\n if (trace > 0) {\n S = Math.sqrt(trace + 1.0) * 2;\n out[3] = 0.25 * S;\n out[0] = (sm23 - sm32) / S;\n out[1] = (sm31 - sm13) / S;\n out[2] = (sm12 - sm21) / S;\n } else if (sm11 > sm22 && sm11 > sm33) {\n S = Math.sqrt(1.0 + sm11 - sm22 - sm33) * 2;\n out[3] = (sm23 - sm32) / S;\n out[0] = 0.25 * S;\n out[1] = (sm12 + sm21) / S;\n out[2] = (sm31 + sm13) / S;\n } else if (sm22 > sm33) {\n S = Math.sqrt(1.0 + sm22 - sm11 - sm33) * 2;\n out[3] = (sm31 - sm13) / S;\n out[0] = (sm12 + sm21) / S;\n out[1] = 0.25 * S;\n out[2] = (sm23 + sm32) / S;\n } else {\n S = Math.sqrt(1.0 + sm33 - sm11 - sm22) * 2;\n out[3] = (sm12 - sm21) / S;\n out[0] = (sm31 + sm13) / S;\n out[1] = (sm23 + sm32) / S;\n out[2] = 0.25 * S;\n }\n\n return out;\n}\n/**\n * Creates a matrix from a quaternion rotation, vector translation and vector scale\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.translate(dest, vec);\n * let quatMat = mat4.create();\n * quat4.toMat4(quat, quatMat);\n * mat4.multiply(dest, quatMat);\n * mat4.scale(dest, scale)\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {quat4} q Rotation quaternion\n * @param {ReadonlyVec3} v Translation vector\n * @param {ReadonlyVec3} s Scaling vector\n * @returns {mat4} out\n */\n\nexport function fromRotationTranslationScale(out, q, v, s) {\n // Quaternion math\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var xy = x * y2;\n var xz = x * z2;\n var yy = y * y2;\n var yz = y * z2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n var sx = s[0];\n var sy = s[1];\n var sz = s[2];\n out[0] = (1 - (yy + zz)) * sx;\n out[1] = (xy + wz) * sx;\n out[2] = (xz - wy) * sx;\n out[3] = 0;\n out[4] = (xy - wz) * sy;\n out[5] = (1 - (xx + zz)) * sy;\n out[6] = (yz + wx) * sy;\n out[7] = 0;\n out[8] = (xz + wy) * sz;\n out[9] = (yz - wx) * sz;\n out[10] = (1 - (xx + yy)) * sz;\n out[11] = 0;\n out[12] = v[0];\n out[13] = v[1];\n out[14] = v[2];\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from a quaternion rotation, vector translation and vector scale, rotating and scaling around the given origin\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.translate(dest, vec);\n * mat4.translate(dest, origin);\n * let quatMat = mat4.create();\n * quat4.toMat4(quat, quatMat);\n * mat4.multiply(dest, quatMat);\n * mat4.scale(dest, scale)\n * mat4.translate(dest, negativeOrigin);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {quat4} q Rotation quaternion\n * @param {ReadonlyVec3} v Translation vector\n * @param {ReadonlyVec3} s Scaling vector\n * @param {ReadonlyVec3} o The origin vector around which to scale and rotate\n * @returns {mat4} out\n */\n\nexport function fromRotationTranslationScaleOrigin(out, q, v, s, o) {\n // Quaternion math\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var xy = x * y2;\n var xz = x * z2;\n var yy = y * y2;\n var yz = y * z2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n var sx = s[0];\n var sy = s[1];\n var sz = s[2];\n var ox = o[0];\n var oy = o[1];\n var oz = o[2];\n var out0 = (1 - (yy + zz)) * sx;\n var out1 = (xy + wz) * sx;\n var out2 = (xz - wy) * sx;\n var out4 = (xy - wz) * sy;\n var out5 = (1 - (xx + zz)) * sy;\n var out6 = (yz + wx) * sy;\n var out8 = (xz + wy) * sz;\n var out9 = (yz - wx) * sz;\n var out10 = (1 - (xx + yy)) * sz;\n out[0] = out0;\n out[1] = out1;\n out[2] = out2;\n out[3] = 0;\n out[4] = out4;\n out[5] = out5;\n out[6] = out6;\n out[7] = 0;\n out[8] = out8;\n out[9] = out9;\n out[10] = out10;\n out[11] = 0;\n out[12] = v[0] + ox - (out0 * ox + out4 * oy + out8 * oz);\n out[13] = v[1] + oy - (out1 * ox + out5 * oy + out9 * oz);\n out[14] = v[2] + oz - (out2 * ox + out6 * oy + out10 * oz);\n out[15] = 1;\n return out;\n}\n/**\n * Calculates a 4x4 matrix from the given quaternion\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {ReadonlyQuat} q Quaternion to create matrix from\n *\n * @returns {mat4} out\n */\n\nexport function fromQuat(out, q) {\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var yx = y * x2;\n var yy = y * y2;\n var zx = z * x2;\n var zy = z * y2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n out[0] = 1 - yy - zz;\n out[1] = yx + wz;\n out[2] = zx - wy;\n out[3] = 0;\n out[4] = yx - wz;\n out[5] = 1 - xx - zz;\n out[6] = zy + wx;\n out[7] = 0;\n out[8] = zx + wy;\n out[9] = zy - wx;\n out[10] = 1 - xx - yy;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Generates a frustum matrix with the given bounds\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {Number} left Left bound of the frustum\n * @param {Number} right Right bound of the frustum\n * @param {Number} bottom Bottom bound of the frustum\n * @param {Number} top Top bound of the frustum\n * @param {Number} near Near bound of the frustum\n * @param {Number} far Far bound of the frustum\n * @returns {mat4} out\n */\n\nexport function frustum(out, left, right, bottom, top, near, far) {\n var rl = 1 / (right - left);\n var tb = 1 / (top - bottom);\n var nf = 1 / (near - far);\n out[0] = near * 2 * rl;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = near * 2 * tb;\n out[6] = 0;\n out[7] = 0;\n out[8] = (right + left) * rl;\n out[9] = (top + bottom) * tb;\n out[10] = (far + near) * nf;\n out[11] = -1;\n out[12] = 0;\n out[13] = 0;\n out[14] = far * near * 2 * nf;\n out[15] = 0;\n return out;\n}\n/**\n * Generates a perspective projection matrix with the given bounds.\n * The near/far clip planes correspond to a normalized device coordinate Z range of [-1, 1],\n * which matches WebGL/OpenGL's clip volume.\n * Passing null/undefined/no value for far will generate infinite projection matrix.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} fovy Vertical field of view in radians\n * @param {number} aspect Aspect ratio. typically viewport width/height\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum, can be null or Infinity\n * @returns {mat4} out\n */\n\nexport function perspectiveNO(out, fovy, aspect, near, far) {\n var f = 1.0 / Math.tan(fovy / 2),\n nf;\n out[0] = f / aspect;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = f;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[11] = -1;\n out[12] = 0;\n out[13] = 0;\n out[15] = 0;\n\n if (far != null && far !== Infinity) {\n nf = 1 / (near - far);\n out[10] = (far + near) * nf;\n out[14] = 2 * far * near * nf;\n } else {\n out[10] = -1;\n out[14] = -2 * near;\n }\n\n return out;\n}\n/**\n * Alias for {@link mat4.perspectiveNO}\n * @function\n */\n\nexport var perspective = perspectiveNO;\n/**\n * Generates a perspective projection matrix suitable for WebGPU with the given bounds.\n * The near/far clip planes correspond to a normalized device coordinate Z range of [0, 1],\n * which matches WebGPU/Vulkan/DirectX/Metal's clip volume.\n * Passing null/undefined/no value for far will generate infinite projection matrix.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} fovy Vertical field of view in radians\n * @param {number} aspect Aspect ratio. typically viewport width/height\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum, can be null or Infinity\n * @returns {mat4} out\n */\n\nexport function perspectiveZO(out, fovy, aspect, near, far) {\n var f = 1.0 / Math.tan(fovy / 2),\n nf;\n out[0] = f / aspect;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = f;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[11] = -1;\n out[12] = 0;\n out[13] = 0;\n out[15] = 0;\n\n if (far != null && far !== Infinity) {\n nf = 1 / (near - far);\n out[10] = far * nf;\n out[14] = far * near * nf;\n } else {\n out[10] = -1;\n out[14] = -near;\n }\n\n return out;\n}\n/**\n * Generates a perspective projection matrix with the given field of view.\n * This is primarily useful for generating projection matrices to be used\n * with the still experiemental WebVR API.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {Object} fov Object containing the following values: upDegrees, downDegrees, leftDegrees, rightDegrees\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum\n * @returns {mat4} out\n */\n\nexport function perspectiveFromFieldOfView(out, fov, near, far) {\n var upTan = Math.tan(fov.upDegrees * Math.PI / 180.0);\n var downTan = Math.tan(fov.downDegrees * Math.PI / 180.0);\n var leftTan = Math.tan(fov.leftDegrees * Math.PI / 180.0);\n var rightTan = Math.tan(fov.rightDegrees * Math.PI / 180.0);\n var xScale = 2.0 / (leftTan + rightTan);\n var yScale = 2.0 / (upTan + downTan);\n out[0] = xScale;\n out[1] = 0.0;\n out[2] = 0.0;\n out[3] = 0.0;\n out[4] = 0.0;\n out[5] = yScale;\n out[6] = 0.0;\n out[7] = 0.0;\n out[8] = -((leftTan - rightTan) * xScale * 0.5);\n out[9] = (upTan - downTan) * yScale * 0.5;\n out[10] = far / (near - far);\n out[11] = -1.0;\n out[12] = 0.0;\n out[13] = 0.0;\n out[14] = far * near / (near - far);\n out[15] = 0.0;\n return out;\n}\n/**\n * Generates a orthogonal projection matrix with the given bounds.\n * The near/far clip planes correspond to a normalized device coordinate Z range of [-1, 1],\n * which matches WebGL/OpenGL's clip volume.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} left Left bound of the frustum\n * @param {number} right Right bound of the frustum\n * @param {number} bottom Bottom bound of the frustum\n * @param {number} top Top bound of the frustum\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum\n * @returns {mat4} out\n */\n\nexport function orthoNO(out, left, right, bottom, top, near, far) {\n var lr = 1 / (left - right);\n var bt = 1 / (bottom - top);\n var nf = 1 / (near - far);\n out[0] = -2 * lr;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = -2 * bt;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 2 * nf;\n out[11] = 0;\n out[12] = (left + right) * lr;\n out[13] = (top + bottom) * bt;\n out[14] = (far + near) * nf;\n out[15] = 1;\n return out;\n}\n/**\n * Alias for {@link mat4.orthoNO}\n * @function\n */\n\nexport var ortho = orthoNO;\n/**\n * Generates a orthogonal projection matrix with the given bounds.\n * The near/far clip planes correspond to a normalized device coordinate Z range of [0, 1],\n * which matches WebGPU/Vulkan/DirectX/Metal's clip volume.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} left Left bound of the frustum\n * @param {number} right Right bound of the frustum\n * @param {number} bottom Bottom bound of the frustum\n * @param {number} top Top bound of the frustum\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum\n * @returns {mat4} out\n */\n\nexport function orthoZO(out, left, right, bottom, top, near, far) {\n var lr = 1 / (left - right);\n var bt = 1 / (bottom - top);\n var nf = 1 / (near - far);\n out[0] = -2 * lr;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = -2 * bt;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = nf;\n out[11] = 0;\n out[12] = (left + right) * lr;\n out[13] = (top + bottom) * bt;\n out[14] = near * nf;\n out[15] = 1;\n return out;\n}\n/**\n * Generates a look-at matrix with the given eye position, focal point, and up axis.\n * If you want a matrix that actually makes an object look at another object, you should use targetTo instead.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {ReadonlyVec3} eye Position of the viewer\n * @param {ReadonlyVec3} center Point the viewer is looking at\n * @param {ReadonlyVec3} up vec3 pointing up\n * @returns {mat4} out\n */\n\nexport function lookAt(out, eye, center, up) {\n var x0, x1, x2, y0, y1, y2, z0, z1, z2, len;\n var eyex = eye[0];\n var eyey = eye[1];\n var eyez = eye[2];\n var upx = up[0];\n var upy = up[1];\n var upz = up[2];\n var centerx = center[0];\n var centery = center[1];\n var centerz = center[2];\n\n if (Math.abs(eyex - centerx) < glMatrix.EPSILON && Math.abs(eyey - centery) < glMatrix.EPSILON && Math.abs(eyez - centerz) < glMatrix.EPSILON) {\n return identity(out);\n }\n\n z0 = eyex - centerx;\n z1 = eyey - centery;\n z2 = eyez - centerz;\n len = 1 / Math.hypot(z0, z1, z2);\n z0 *= len;\n z1 *= len;\n z2 *= len;\n x0 = upy * z2 - upz * z1;\n x1 = upz * z0 - upx * z2;\n x2 = upx * z1 - upy * z0;\n len = Math.hypot(x0, x1, x2);\n\n if (!len) {\n x0 = 0;\n x1 = 0;\n x2 = 0;\n } else {\n len = 1 / len;\n x0 *= len;\n x1 *= len;\n x2 *= len;\n }\n\n y0 = z1 * x2 - z2 * x1;\n y1 = z2 * x0 - z0 * x2;\n y2 = z0 * x1 - z1 * x0;\n len = Math.hypot(y0, y1, y2);\n\n if (!len) {\n y0 = 0;\n y1 = 0;\n y2 = 0;\n } else {\n len = 1 / len;\n y0 *= len;\n y1 *= len;\n y2 *= len;\n }\n\n out[0] = x0;\n out[1] = y0;\n out[2] = z0;\n out[3] = 0;\n out[4] = x1;\n out[5] = y1;\n out[6] = z1;\n out[7] = 0;\n out[8] = x2;\n out[9] = y2;\n out[10] = z2;\n out[11] = 0;\n out[12] = -(x0 * eyex + x1 * eyey + x2 * eyez);\n out[13] = -(y0 * eyex + y1 * eyey + y2 * eyez);\n out[14] = -(z0 * eyex + z1 * eyey + z2 * eyez);\n out[15] = 1;\n return out;\n}\n/**\n * Generates a matrix that makes something look at something else.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {ReadonlyVec3} eye Position of the viewer\n * @param {ReadonlyVec3} center Point the viewer is looking at\n * @param {ReadonlyVec3} up vec3 pointing up\n * @returns {mat4} out\n */\n\nexport function targetTo(out, eye, target, up) {\n var eyex = eye[0],\n eyey = eye[1],\n eyez = eye[2],\n upx = up[0],\n upy = up[1],\n upz = up[2];\n var z0 = eyex - target[0],\n z1 = eyey - target[1],\n z2 = eyez - target[2];\n var len = z0 * z0 + z1 * z1 + z2 * z2;\n\n if (len > 0) {\n len = 1 / Math.sqrt(len);\n z0 *= len;\n z1 *= len;\n z2 *= len;\n }\n\n var x0 = upy * z2 - upz * z1,\n x1 = upz * z0 - upx * z2,\n x2 = upx * z1 - upy * z0;\n len = x0 * x0 + x1 * x1 + x2 * x2;\n\n if (len > 0) {\n len = 1 / Math.sqrt(len);\n x0 *= len;\n x1 *= len;\n x2 *= len;\n }\n\n out[0] = x0;\n out[1] = x1;\n out[2] = x2;\n out[3] = 0;\n out[4] = z1 * x2 - z2 * x1;\n out[5] = z2 * x0 - z0 * x2;\n out[6] = z0 * x1 - z1 * x0;\n out[7] = 0;\n out[8] = z0;\n out[9] = z1;\n out[10] = z2;\n out[11] = 0;\n out[12] = eyex;\n out[13] = eyey;\n out[14] = eyez;\n out[15] = 1;\n return out;\n}\n/**\n * Returns a string representation of a mat4\n *\n * @param {ReadonlyMat4} a matrix to represent as a string\n * @returns {String} string representation of the matrix\n */\n\nexport function str(a) {\n return \"mat4(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \", \" + a[3] + \", \" + a[4] + \", \" + a[5] + \", \" + a[6] + \", \" + a[7] + \", \" + a[8] + \", \" + a[9] + \", \" + a[10] + \", \" + a[11] + \", \" + a[12] + \", \" + a[13] + \", \" + a[14] + \", \" + a[15] + \")\";\n}\n/**\n * Returns Frobenius norm of a mat4\n *\n * @param {ReadonlyMat4} a the matrix to calculate Frobenius norm of\n * @returns {Number} Frobenius norm\n */\n\nexport function frob(a) {\n return Math.hypot(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15]);\n}\n/**\n * Adds two mat4's\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the first operand\n * @param {ReadonlyMat4} b the second operand\n * @returns {mat4} out\n */\n\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n out[3] = a[3] + b[3];\n out[4] = a[4] + b[4];\n out[5] = a[5] + b[5];\n out[6] = a[6] + b[6];\n out[7] = a[7] + b[7];\n out[8] = a[8] + b[8];\n out[9] = a[9] + b[9];\n out[10] = a[10] + b[10];\n out[11] = a[11] + b[11];\n out[12] = a[12] + b[12];\n out[13] = a[13] + b[13];\n out[14] = a[14] + b[14];\n out[15] = a[15] + b[15];\n return out;\n}\n/**\n * Subtracts matrix b from matrix a\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the first operand\n * @param {ReadonlyMat4} b the second operand\n * @returns {mat4} out\n */\n\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n out[3] = a[3] - b[3];\n out[4] = a[4] - b[4];\n out[5] = a[5] - b[5];\n out[6] = a[6] - b[6];\n out[7] = a[7] - b[7];\n out[8] = a[8] - b[8];\n out[9] = a[9] - b[9];\n out[10] = a[10] - b[10];\n out[11] = a[11] - b[11];\n out[12] = a[12] - b[12];\n out[13] = a[13] - b[13];\n out[14] = a[14] - b[14];\n out[15] = a[15] - b[15];\n return out;\n}\n/**\n * Multiply each element of the matrix by a scalar.\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to scale\n * @param {Number} b amount to scale the matrix's elements by\n * @returns {mat4} out\n */\n\nexport function multiplyScalar(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n out[3] = a[3] * b;\n out[4] = a[4] * b;\n out[5] = a[5] * b;\n out[6] = a[6] * b;\n out[7] = a[7] * b;\n out[8] = a[8] * b;\n out[9] = a[9] * b;\n out[10] = a[10] * b;\n out[11] = a[11] * b;\n out[12] = a[12] * b;\n out[13] = a[13] * b;\n out[14] = a[14] * b;\n out[15] = a[15] * b;\n return out;\n}\n/**\n * Adds two mat4's after multiplying each element of the second operand by a scalar value.\n *\n * @param {mat4} out the receiving vector\n * @param {ReadonlyMat4} a the first operand\n * @param {ReadonlyMat4} b the second operand\n * @param {Number} scale the amount to scale b's elements by before adding\n * @returns {mat4} out\n */\n\nexport function multiplyScalarAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n out[3] = a[3] + b[3] * scale;\n out[4] = a[4] + b[4] * scale;\n out[5] = a[5] + b[5] * scale;\n out[6] = a[6] + b[6] * scale;\n out[7] = a[7] + b[7] * scale;\n out[8] = a[8] + b[8] * scale;\n out[9] = a[9] + b[9] * scale;\n out[10] = a[10] + b[10] * scale;\n out[11] = a[11] + b[11] * scale;\n out[12] = a[12] + b[12] * scale;\n out[13] = a[13] + b[13] * scale;\n out[14] = a[14] + b[14] * scale;\n out[15] = a[15] + b[15] * scale;\n return out;\n}\n/**\n * Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===)\n *\n * @param {ReadonlyMat4} a The first matrix.\n * @param {ReadonlyMat4} b The second matrix.\n * @returns {Boolean} True if the matrices are equal, false otherwise.\n */\n\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3] && a[4] === b[4] && a[5] === b[5] && a[6] === b[6] && a[7] === b[7] && a[8] === b[8] && a[9] === b[9] && a[10] === b[10] && a[11] === b[11] && a[12] === b[12] && a[13] === b[13] && a[14] === b[14] && a[15] === b[15];\n}\n/**\n * Returns whether or not the matrices have approximately the same elements in the same position.\n *\n * @param {ReadonlyMat4} a The first matrix.\n * @param {ReadonlyMat4} b The second matrix.\n * @returns {Boolean} True if the matrices are equal, false otherwise.\n */\n\nexport function equals(a, b) {\n var a0 = a[0],\n a1 = a[1],\n a2 = a[2],\n a3 = a[3];\n var a4 = a[4],\n a5 = a[5],\n a6 = a[6],\n a7 = a[7];\n var a8 = a[8],\n a9 = a[9],\n a10 = a[10],\n a11 = a[11];\n var a12 = a[12],\n a13 = a[13],\n a14 = a[14],\n a15 = a[15];\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3];\n var b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7];\n var b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11];\n var b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)) && Math.abs(a3 - b3) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a3), Math.abs(b3)) && Math.abs(a4 - b4) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a4), Math.abs(b4)) && Math.abs(a5 - b5) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a5), Math.abs(b5)) && Math.abs(a6 - b6) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a6), Math.abs(b6)) && Math.abs(a7 - b7) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a7), Math.abs(b7)) && Math.abs(a8 - b8) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a8), Math.abs(b8)) && Math.abs(a9 - b9) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a9), Math.abs(b9)) && Math.abs(a10 - b10) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a10), Math.abs(b10)) && Math.abs(a11 - b11) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a11), Math.abs(b11)) && Math.abs(a12 - b12) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a12), Math.abs(b12)) && Math.abs(a13 - b13) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a13), Math.abs(b13)) && Math.abs(a14 - b14) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a14), Math.abs(b14)) && Math.abs(a15 - b15) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a15), Math.abs(b15));\n}\n/**\n * Alias for {@link mat4.multiply}\n * @function\n */\n\nexport var mul = multiply;\n/**\n * Alias for {@link mat4.subtract}\n * @function\n */\n\nexport var sub = subtract;","import * as glMatrix from \"./common.js\";\n/**\n * 3 Dimensional Vector\n * @module vec3\n */\n\n/**\n * Creates a new, empty vec3\n *\n * @returns {vec3} a new 3D vector\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(3);\n\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n }\n\n return out;\n}\n/**\n * Creates a new vec3 initialized with values from an existing vector\n *\n * @param {ReadonlyVec3} a vector to clone\n * @returns {vec3} a new 3D vector\n */\n\nexport function clone(a) {\n var out = new glMatrix.ARRAY_TYPE(3);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n return out;\n}\n/**\n * Calculates the length of a vec3\n *\n * @param {ReadonlyVec3} a vector to calculate length of\n * @returns {Number} length of a\n */\n\nexport function length(a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n return Math.hypot(x, y, z);\n}\n/**\n * Creates a new vec3 initialized with the given values\n *\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @returns {vec3} a new 3D vector\n */\n\nexport function fromValues(x, y, z) {\n var out = new glMatrix.ARRAY_TYPE(3);\n out[0] = x;\n out[1] = y;\n out[2] = z;\n return out;\n}\n/**\n * Copy the values from one vec3 to another\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the source vector\n * @returns {vec3} out\n */\n\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n return out;\n}\n/**\n * Set the components of a vec3 to the given values\n *\n * @param {vec3} out the receiving vector\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @returns {vec3} out\n */\n\nexport function set(out, x, y, z) {\n out[0] = x;\n out[1] = y;\n out[2] = z;\n return out;\n}\n/**\n * Adds two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n return out;\n}\n/**\n * Subtracts vector b from vector a\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n return out;\n}\n/**\n * Multiplies two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function multiply(out, a, b) {\n out[0] = a[0] * b[0];\n out[1] = a[1] * b[1];\n out[2] = a[2] * b[2];\n return out;\n}\n/**\n * Divides two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function divide(out, a, b) {\n out[0] = a[0] / b[0];\n out[1] = a[1] / b[1];\n out[2] = a[2] / b[2];\n return out;\n}\n/**\n * Math.ceil the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to ceil\n * @returns {vec3} out\n */\n\nexport function ceil(out, a) {\n out[0] = Math.ceil(a[0]);\n out[1] = Math.ceil(a[1]);\n out[2] = Math.ceil(a[2]);\n return out;\n}\n/**\n * Math.floor the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to floor\n * @returns {vec3} out\n */\n\nexport function floor(out, a) {\n out[0] = Math.floor(a[0]);\n out[1] = Math.floor(a[1]);\n out[2] = Math.floor(a[2]);\n return out;\n}\n/**\n * Returns the minimum of two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function min(out, a, b) {\n out[0] = Math.min(a[0], b[0]);\n out[1] = Math.min(a[1], b[1]);\n out[2] = Math.min(a[2], b[2]);\n return out;\n}\n/**\n * Returns the maximum of two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function max(out, a, b) {\n out[0] = Math.max(a[0], b[0]);\n out[1] = Math.max(a[1], b[1]);\n out[2] = Math.max(a[2], b[2]);\n return out;\n}\n/**\n * Math.round the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to round\n * @returns {vec3} out\n */\n\nexport function round(out, a) {\n out[0] = Math.round(a[0]);\n out[1] = Math.round(a[1]);\n out[2] = Math.round(a[2]);\n return out;\n}\n/**\n * Scales a vec3 by a scalar number\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the vector to scale\n * @param {Number} b amount to scale the vector by\n * @returns {vec3} out\n */\n\nexport function scale(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n return out;\n}\n/**\n * Adds two vec3's after scaling the second operand by a scalar value\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @param {Number} scale the amount to scale b by before adding\n * @returns {vec3} out\n */\n\nexport function scaleAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n return out;\n}\n/**\n * Calculates the euclidian distance between two vec3's\n *\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {Number} distance between a and b\n */\n\nexport function distance(a, b) {\n var x = b[0] - a[0];\n var y = b[1] - a[1];\n var z = b[2] - a[2];\n return Math.hypot(x, y, z);\n}\n/**\n * Calculates the squared euclidian distance between two vec3's\n *\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {Number} squared distance between a and b\n */\n\nexport function squaredDistance(a, b) {\n var x = b[0] - a[0];\n var y = b[1] - a[1];\n var z = b[2] - a[2];\n return x * x + y * y + z * z;\n}\n/**\n * Calculates the squared length of a vec3\n *\n * @param {ReadonlyVec3} a vector to calculate squared length of\n * @returns {Number} squared length of a\n */\n\nexport function squaredLength(a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n return x * x + y * y + z * z;\n}\n/**\n * Negates the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to negate\n * @returns {vec3} out\n */\n\nexport function negate(out, a) {\n out[0] = -a[0];\n out[1] = -a[1];\n out[2] = -a[2];\n return out;\n}\n/**\n * Returns the inverse of the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to invert\n * @returns {vec3} out\n */\n\nexport function inverse(out, a) {\n out[0] = 1.0 / a[0];\n out[1] = 1.0 / a[1];\n out[2] = 1.0 / a[2];\n return out;\n}\n/**\n * Normalize a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to normalize\n * @returns {vec3} out\n */\n\nexport function normalize(out, a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n var len = x * x + y * y + z * z;\n\n if (len > 0) {\n //TODO: evaluate use of glm_invsqrt here?\n len = 1 / Math.sqrt(len);\n }\n\n out[0] = a[0] * len;\n out[1] = a[1] * len;\n out[2] = a[2] * len;\n return out;\n}\n/**\n * Calculates the dot product of two vec3's\n *\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {Number} dot product of a and b\n */\n\nexport function dot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n}\n/**\n * Computes the cross product of two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function cross(out, a, b) {\n var ax = a[0],\n ay = a[1],\n az = a[2];\n var bx = b[0],\n by = b[1],\n bz = b[2];\n out[0] = ay * bz - az * by;\n out[1] = az * bx - ax * bz;\n out[2] = ax * by - ay * bx;\n return out;\n}\n/**\n * Performs a linear interpolation between two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {vec3} out\n */\n\nexport function lerp(out, a, b, t) {\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n out[0] = ax + t * (b[0] - ax);\n out[1] = ay + t * (b[1] - ay);\n out[2] = az + t * (b[2] - az);\n return out;\n}\n/**\n * Performs a hermite interpolation with two control points\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @param {ReadonlyVec3} c the third operand\n * @param {ReadonlyVec3} d the fourth operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {vec3} out\n */\n\nexport function hermite(out, a, b, c, d, t) {\n var factorTimes2 = t * t;\n var factor1 = factorTimes2 * (2 * t - 3) + 1;\n var factor2 = factorTimes2 * (t - 2) + t;\n var factor3 = factorTimes2 * (t - 1);\n var factor4 = factorTimes2 * (3 - 2 * t);\n out[0] = a[0] * factor1 + b[0] * factor2 + c[0] * factor3 + d[0] * factor4;\n out[1] = a[1] * factor1 + b[1] * factor2 + c[1] * factor3 + d[1] * factor4;\n out[2] = a[2] * factor1 + b[2] * factor2 + c[2] * factor3 + d[2] * factor4;\n return out;\n}\n/**\n * Performs a bezier interpolation with two control points\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @param {ReadonlyVec3} c the third operand\n * @param {ReadonlyVec3} d the fourth operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {vec3} out\n */\n\nexport function bezier(out, a, b, c, d, t) {\n var inverseFactor = 1 - t;\n var inverseFactorTimesTwo = inverseFactor * inverseFactor;\n var factorTimes2 = t * t;\n var factor1 = inverseFactorTimesTwo * inverseFactor;\n var factor2 = 3 * t * inverseFactorTimesTwo;\n var factor3 = 3 * factorTimes2 * inverseFactor;\n var factor4 = factorTimes2 * t;\n out[0] = a[0] * factor1 + b[0] * factor2 + c[0] * factor3 + d[0] * factor4;\n out[1] = a[1] * factor1 + b[1] * factor2 + c[1] * factor3 + d[1] * factor4;\n out[2] = a[2] * factor1 + b[2] * factor2 + c[2] * factor3 + d[2] * factor4;\n return out;\n}\n/**\n * Generates a random vector with the given scale\n *\n * @param {vec3} out the receiving vector\n * @param {Number} [scale] Length of the resulting vector. If ommitted, a unit vector will be returned\n * @returns {vec3} out\n */\n\nexport function random(out, scale) {\n scale = scale || 1.0;\n var r = glMatrix.RANDOM() * 2.0 * Math.PI;\n var z = glMatrix.RANDOM() * 2.0 - 1.0;\n var zScale = Math.sqrt(1.0 - z * z) * scale;\n out[0] = Math.cos(r) * zScale;\n out[1] = Math.sin(r) * zScale;\n out[2] = z * scale;\n return out;\n}\n/**\n * Transforms the vec3 with a mat4.\n * 4th vector component is implicitly '1'\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the vector to transform\n * @param {ReadonlyMat4} m matrix to transform with\n * @returns {vec3} out\n */\n\nexport function transformMat4(out, a, m) {\n var x = a[0],\n y = a[1],\n z = a[2];\n var w = m[3] * x + m[7] * y + m[11] * z + m[15];\n w = w || 1.0;\n out[0] = (m[0] * x + m[4] * y + m[8] * z + m[12]) / w;\n out[1] = (m[1] * x + m[5] * y + m[9] * z + m[13]) / w;\n out[2] = (m[2] * x + m[6] * y + m[10] * z + m[14]) / w;\n return out;\n}\n/**\n * Transforms the vec3 with a mat3.\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the vector to transform\n * @param {ReadonlyMat3} m the 3x3 matrix to transform with\n * @returns {vec3} out\n */\n\nexport function transformMat3(out, a, m) {\n var x = a[0],\n y = a[1],\n z = a[2];\n out[0] = x * m[0] + y * m[3] + z * m[6];\n out[1] = x * m[1] + y * m[4] + z * m[7];\n out[2] = x * m[2] + y * m[5] + z * m[8];\n return out;\n}\n/**\n * Transforms the vec3 with a quat\n * Can also be used for dual quaternions. (Multiply it with the real part)\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the vector to transform\n * @param {ReadonlyQuat} q quaternion to transform with\n * @returns {vec3} out\n */\n\nexport function transformQuat(out, a, q) {\n // benchmarks: https://jsperf.com/quaternion-transform-vec3-implementations-fixed\n var qx = q[0],\n qy = q[1],\n qz = q[2],\n qw = q[3];\n var x = a[0],\n y = a[1],\n z = a[2]; // var qvec = [qx, qy, qz];\n // var uv = vec3.cross([], qvec, a);\n\n var uvx = qy * z - qz * y,\n uvy = qz * x - qx * z,\n uvz = qx * y - qy * x; // var uuv = vec3.cross([], qvec, uv);\n\n var uuvx = qy * uvz - qz * uvy,\n uuvy = qz * uvx - qx * uvz,\n uuvz = qx * uvy - qy * uvx; // vec3.scale(uv, uv, 2 * w);\n\n var w2 = qw * 2;\n uvx *= w2;\n uvy *= w2;\n uvz *= w2; // vec3.scale(uuv, uuv, 2);\n\n uuvx *= 2;\n uuvy *= 2;\n uuvz *= 2; // return vec3.add(out, a, vec3.add(out, uv, uuv));\n\n out[0] = x + uvx + uuvx;\n out[1] = y + uvy + uuvy;\n out[2] = z + uvz + uuvz;\n return out;\n}\n/**\n * Rotate a 3D vector around the x-axis\n * @param {vec3} out The receiving vec3\n * @param {ReadonlyVec3} a The vec3 point to rotate\n * @param {ReadonlyVec3} b The origin of the rotation\n * @param {Number} rad The angle of rotation in radians\n * @returns {vec3} out\n */\n\nexport function rotateX(out, a, b, rad) {\n var p = [],\n r = []; //Translate point to the origin\n\n p[0] = a[0] - b[0];\n p[1] = a[1] - b[1];\n p[2] = a[2] - b[2]; //perform rotation\n\n r[0] = p[0];\n r[1] = p[1] * Math.cos(rad) - p[2] * Math.sin(rad);\n r[2] = p[1] * Math.sin(rad) + p[2] * Math.cos(rad); //translate to correct position\n\n out[0] = r[0] + b[0];\n out[1] = r[1] + b[1];\n out[2] = r[2] + b[2];\n return out;\n}\n/**\n * Rotate a 3D vector around the y-axis\n * @param {vec3} out The receiving vec3\n * @param {ReadonlyVec3} a The vec3 point to rotate\n * @param {ReadonlyVec3} b The origin of the rotation\n * @param {Number} rad The angle of rotation in radians\n * @returns {vec3} out\n */\n\nexport function rotateY(out, a, b, rad) {\n var p = [],\n r = []; //Translate point to the origin\n\n p[0] = a[0] - b[0];\n p[1] = a[1] - b[1];\n p[2] = a[2] - b[2]; //perform rotation\n\n r[0] = p[2] * Math.sin(rad) + p[0] * Math.cos(rad);\n r[1] = p[1];\n r[2] = p[2] * Math.cos(rad) - p[0] * Math.sin(rad); //translate to correct position\n\n out[0] = r[0] + b[0];\n out[1] = r[1] + b[1];\n out[2] = r[2] + b[2];\n return out;\n}\n/**\n * Rotate a 3D vector around the z-axis\n * @param {vec3} out The receiving vec3\n * @param {ReadonlyVec3} a The vec3 point to rotate\n * @param {ReadonlyVec3} b The origin of the rotation\n * @param {Number} rad The angle of rotation in radians\n * @returns {vec3} out\n */\n\nexport function rotateZ(out, a, b, rad) {\n var p = [],\n r = []; //Translate point to the origin\n\n p[0] = a[0] - b[0];\n p[1] = a[1] - b[1];\n p[2] = a[2] - b[2]; //perform rotation\n\n r[0] = p[0] * Math.cos(rad) - p[1] * Math.sin(rad);\n r[1] = p[0] * Math.sin(rad) + p[1] * Math.cos(rad);\n r[2] = p[2]; //translate to correct position\n\n out[0] = r[0] + b[0];\n out[1] = r[1] + b[1];\n out[2] = r[2] + b[2];\n return out;\n}\n/**\n * Get the angle between two 3D vectors\n * @param {ReadonlyVec3} a The first operand\n * @param {ReadonlyVec3} b The second operand\n * @returns {Number} The angle in radians\n */\n\nexport function angle(a, b) {\n var ax = a[0],\n ay = a[1],\n az = a[2],\n bx = b[0],\n by = b[1],\n bz = b[2],\n mag1 = Math.sqrt(ax * ax + ay * ay + az * az),\n mag2 = Math.sqrt(bx * bx + by * by + bz * bz),\n mag = mag1 * mag2,\n cosine = mag && dot(a, b) / mag;\n return Math.acos(Math.min(Math.max(cosine, -1), 1));\n}\n/**\n * Set the components of a vec3 to zero\n *\n * @param {vec3} out the receiving vector\n * @returns {vec3} out\n */\n\nexport function zero(out) {\n out[0] = 0.0;\n out[1] = 0.0;\n out[2] = 0.0;\n return out;\n}\n/**\n * Returns a string representation of a vector\n *\n * @param {ReadonlyVec3} a vector to represent as a string\n * @returns {String} string representation of the vector\n */\n\nexport function str(a) {\n return \"vec3(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \")\";\n}\n/**\n * Returns whether or not the vectors have exactly the same elements in the same position (when compared with ===)\n *\n * @param {ReadonlyVec3} a The first vector.\n * @param {ReadonlyVec3} b The second vector.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\n\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2];\n}\n/**\n * Returns whether or not the vectors have approximately the same elements in the same position.\n *\n * @param {ReadonlyVec3} a The first vector.\n * @param {ReadonlyVec3} b The second vector.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\n\nexport function equals(a, b) {\n var a0 = a[0],\n a1 = a[1],\n a2 = a[2];\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2];\n return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2));\n}\n/**\n * Alias for {@link vec3.subtract}\n * @function\n */\n\nexport var sub = subtract;\n/**\n * Alias for {@link vec3.multiply}\n * @function\n */\n\nexport var mul = multiply;\n/**\n * Alias for {@link vec3.divide}\n * @function\n */\n\nexport var div = divide;\n/**\n * Alias for {@link vec3.distance}\n * @function\n */\n\nexport var dist = distance;\n/**\n * Alias for {@link vec3.squaredDistance}\n * @function\n */\n\nexport var sqrDist = squaredDistance;\n/**\n * Alias for {@link vec3.length}\n * @function\n */\n\nexport var len = length;\n/**\n * Alias for {@link vec3.squaredLength}\n * @function\n */\n\nexport var sqrLen = squaredLength;\n/**\n * Perform some operation over an array of vec3s.\n *\n * @param {Array} a the array of vectors to iterate over\n * @param {Number} stride Number of elements between the start of each vec3. If 0 assumes tightly packed\n * @param {Number} offset Number of elements to skip at the beginning of the array\n * @param {Number} count Number of vec3s to iterate over. If 0 iterates over entire array\n * @param {Function} fn Function to call for each vector in the array\n * @param {Object} [arg] additional argument to pass to fn\n * @returns {Array} a\n * @function\n */\n\nexport var forEach = function () {\n var vec = create();\n return function (a, stride, offset, count, fn, arg) {\n var i, l;\n\n if (!stride) {\n stride = 3;\n }\n\n if (!offset) {\n offset = 0;\n }\n\n if (count) {\n l = Math.min(count * stride + offset, a.length);\n } else {\n l = a.length;\n }\n\n for (i = offset; i < l; i += stride) {\n vec[0] = a[i];\n vec[1] = a[i + 1];\n vec[2] = a[i + 2];\n fn(vec, vec, arg);\n a[i] = vec[0];\n a[i + 1] = vec[1];\n a[i + 2] = vec[2];\n }\n\n return a;\n };\n}();","export var Cull;\n(function (Cull) {\n function rotate(cull, x, y) {\n let { up, down, north, east, south, west } = cull;\n switch (y) {\n case 90:\n [north, east, south, west] = [east, south, west, north];\n break;\n case 180:\n [north, east, south, west] = [south, west, north, east];\n break;\n case 270:\n [north, east, south, west] = [west, north, east, south];\n }\n switch (x) {\n case 90:\n [up, north, down, south] = [north, down, south, up];\n break;\n case 180:\n [up, north, down, south] = [down, south, up, north];\n break;\n case 270:\n [up, north, down, south] = [south, up, north, down];\n }\n return { up, down, north, east, south, west };\n }\n Cull.rotate = rotate;\n function none() {\n return Object.create(null);\n }\n Cull.none = none;\n})(Cull || (Cull = {}));\n//# sourceMappingURL=Cull.js.map","import { vec3 } from 'gl-matrix';\nexport function mergeFloat32Arrays(...arrays) {\n let totalLength = 0;\n for (const a of arrays) {\n totalLength += a.length;\n }\n const result = new Float32Array(totalLength);\n let offset = 0;\n for (const a of arrays) {\n result.set(a, offset),\n offset += a.length;\n }\n return result;\n}\nexport function transformVectors(array, transformation) {\n const a = vec3.create();\n for (let i = 0; i < array.length; i += 3) {\n a[0] = array[i];\n a[1] = array[i + 1];\n a[2] = array[i + 2];\n vec3.transformMat4(a, a, transformation);\n array[i] = a[0];\n array[i + 1] = a[1];\n array[i + 2] = a[2];\n }\n}\n//# sourceMappingURL=Util.js.map","import { glMatrix, mat4, vec3 } from 'gl-matrix';\nimport { Identifier } from '../core/index.js';\nimport { Cull } from './Cull.js';\nimport { mergeFloat32Arrays, transformVectors } from './Util.js';\nconst faceRotations = {\n 0: [0, 3, 2, 3, 2, 1, 0, 1],\n 90: [2, 3, 2, 1, 0, 1, 0, 3],\n 180: [2, 1, 0, 1, 0, 3, 2, 3],\n 270: [0, 1, 0, 3, 2, 3, 2, 1],\n};\nconst rotationAxis = {\n x: [1, 0, 0],\n y: [0, 1, 0],\n z: [0, 0, 1],\n};\nconst SQRT2 = 1.41421356237;\nconst rescaleAxis = {\n x: [1, SQRT2, SQRT2],\n y: [SQRT2, 1, SQRT2],\n z: [SQRT2, SQRT2, 1],\n};\nexport class BlockModel {\n id;\n parent;\n textures;\n elements;\n display;\n guiLight;\n static BUILTIN_GENERATED = Identifier.create('builtin/generated');\n constructor(id, parent, textures, elements, display, guiLight) {\n this.id = id;\n this.parent = parent;\n this.textures = textures;\n this.elements = elements;\n this.display = display;\n this.guiLight = guiLight;\n }\n getDisplayBuffers(display, uvProvider, offset, tint) {\n const buffers = this.getBuffers(uvProvider, offset, Cull.none(), tint);\n const transform = this.display?.[display];\n const t = mat4.create();\n mat4.identity(t);\n mat4.translate(t, t, [8, 8, 8]);\n if (transform?.translation) {\n mat4.translate(t, t, transform.translation);\n }\n if (transform?.rotation) {\n mat4.rotateX(t, t, transform.rotation[0] * Math.PI / 180);\n mat4.rotateY(t, t, transform.rotation[1] * Math.PI / 180);\n mat4.rotateZ(t, t, -transform.rotation[2] * Math.PI / 180);\n }\n if (transform?.scale) {\n mat4.scale(t, t, transform.scale);\n }\n mat4.translate(t, t, [-8, -8, -8]);\n transformVectors(buffers.position, t);\n const normals = [];\n for (let i = 0; i < buffers.position.length; i += 12) {\n const a = vec3.fromValues(buffers.position[i], buffers.position[i + 1], buffers.position[i + 2]);\n const b = vec3.fromValues(buffers.position[i + 3], buffers.position[i + 4], buffers.position[i + 5]);\n const c = vec3.fromValues(buffers.position[i + 6], buffers.position[i + 7], buffers.position[i + 8]);\n vec3.subtract(b, b, a);\n vec3.subtract(c, c, a);\n vec3.cross(b, b, c);\n vec3.normalize(b, b);\n normals.push(...b, ...b, ...b, ...b);\n }\n return {\n ...buffers,\n normal: normals,\n };\n }\n getBuffers(uvProvider, offset, cull, tint) {\n const position = [];\n const texCoord = [];\n const tintColor = [];\n const index = [];\n for (const element of this.elements ?? []) {\n const buffers = this.getElementBuffers(element, offset, uvProvider, cull, tint);\n position.push(buffers.position);\n texCoord.push(...buffers.texCoord);\n tintColor.push(...buffers.tintColor);\n index.push(...buffers.index);\n offset += buffers.texCoord.length / 2;\n }\n return {\n position: mergeFloat32Arrays(...position),\n texCoord,\n tintColor,\n index,\n };\n }\n getElementBuffers(e, i, uvProvider, cull, tint) {\n const x0 = e.from[0];\n const y0 = e.from[1];\n const z0 = e.from[2];\n const x1 = e.to[0];\n const y1 = e.to[1];\n const z1 = e.to[2];\n const positions = [];\n const texCoords = [];\n const tintColors = [];\n const indices = [];\n const addFace = (face, uv, pos) => {\n const [u0, v0, u1, v1] = uvProvider.getTextureUV(this.getTexture(face.texture));\n const du = (u1 - u0) / 16;\n const dv = (v1 - v0) / 16;\n // Hack to remove stiching lines\n const duu = du / 16;\n const dvv = dv / 16;\n uv[0] = (face.uv?.[0] ?? uv[0]) * du + duu;\n uv[1] = (face.uv?.[1] ?? uv[1]) * dv + dvv;\n uv[2] = (face.uv?.[2] ?? uv[2]) * du - duu;\n uv[3] = (face.uv?.[3] ?? uv[3]) * dv - dvv;\n const r = faceRotations[face.rotation ?? 0];\n texCoords.push(u0 + uv[r[0]], v0 + uv[r[1]], u0 + uv[r[2]], v0 + uv[r[3]], u0 + uv[r[4]], v0 + uv[r[5]], u0 + uv[r[6]], v0 + uv[r[7]]);\n const t = (face.tintindex ?? -1) >= 0 ? (tint ?? [1, 1, 1]) : [1, 1, 1];\n tintColors.push(...t, ...t, ...t, ...t);\n positions.push(...pos);\n indices.push(i, i + 1, i + 2, i, i + 2, i + 3);\n i += 4;\n };\n if (e.faces?.up?.texture && (!e.faces.up.cullface || !cull[e.faces.up.cullface])) {\n addFace(e.faces.up, [x0, 16 - z1, x1, 16 - z0], [x0, y1, z1, x1, y1, z1, x1, y1, z0, x0, y1, z0]);\n }\n if (e.faces?.down?.texture && (!e.faces.down.cullface || !cull[e.faces.down.cullface])) {\n addFace(e.faces.down, [16 - z1, 16 - x1, 16 - z0, 16 - x0], [x0, y0, z0, x1, y0, z0, x1, y0, z1, x0, y0, z1]);\n }\n if (e.faces?.south?.texture && (!e.faces.south.cullface || !cull[e.faces.south.cullface])) {\n addFace(e.faces.south, [x0, 16 - y1, x1, 16 - y0], [x0, y0, z1, x1, y0, z1, x1, y1, z1, x0, y1, z1]);\n }\n if (e.faces?.north?.texture && (!e.faces.north.cullface || !cull[e.faces.north.cullface])) {\n addFace(e.faces.north, [16 - x1, 16 - y1, 16 - x0, 16 - y0], [x1, y0, z0, x0, y0, z0, x0, y1, z0, x1, y1, z0]);\n }\n if (e.faces?.east?.texture && (!e.faces.east.cullface || !cull[e.faces.east.cullface])) {\n addFace(e.faces.east, [16 - z1, 16 - y1, 16 - z0, 16 - y0], [x1, y0, z1, x1, y0, z0, x1, y1, z0, x1, y1, z1]);\n }\n if (e.faces?.west?.texture && (!e.faces.west.cullface || !cull[e.faces.west.cullface])) {\n addFace(e.faces.west, [z0, 16 - y1, z1, 16 - y0], [x0, y0, z0, x0, y0, z1, x0, y1, z1, x0, y1, z0]);\n }\n const t = mat4.create();\n mat4.identity(t);\n if (e.rotation) {\n const origin = vec3.fromValues(...e.rotation.origin);\n mat4.translate(t, t, origin);\n mat4.rotate(t, t, glMatrix.toRadian(e.rotation.angle), rotationAxis[e.rotation.axis]);\n if (e.rotation.rescale) {\n mat4.scale(t, t, rescaleAxis[e.rotation.axis]);\n }\n vec3.negate(origin, origin);\n mat4.translate(t, t, origin);\n }\n const posArray = new Float32Array(positions);\n transformVectors(posArray, t);\n return {\n position: posArray,\n texCoord: texCoords,\n tintColor: tintColors,\n index: indices,\n };\n }\n getTexture(textureRef) {\n while (textureRef.startsWith('#')) {\n textureRef = this.textures?.[textureRef.slice(1)] ?? '';\n }\n return Identifier.parse(textureRef);\n }\n flatten(accessor) {\n if (!this.parent) {\n return;\n }\n const parent = this.getParent(accessor);\n if (!parent) {\n console.warn(`parent ${this.parent} does not exist!`);\n this.parent = undefined;\n return;\n }\n parent.flatten(accessor);\n if (!this.elements) {\n this.elements = parent.elements;\n }\n if (!this.textures) {\n this.textures = {};\n }\n Object.keys(parent.textures ?? {}).forEach(t => {\n if (!this.textures[t]) {\n this.textures[t] = parent.textures[t];\n }\n });\n if (!this.display) {\n this.display = {};\n }\n Object.keys(parent.display ?? {}).forEach(k => {\n const l = k;\n if (!this.display[l]) {\n this.display[l] = parent.display[l];\n }\n else {\n Object.keys(parent.display[l] ?? {}).forEach(m => {\n const n = m;\n if (!this.display[l][n]) {\n this.display[l][n] = parent.display[l][n];\n }\n });\n }\n });\n if (!this.guiLight) {\n this.guiLight = parent.guiLight;\n }\n this.parent = undefined;\n }\n getParent(accessor) {\n if (!this.parent)\n return null;\n if (this.parent.equals(BlockModel.BUILTIN_GENERATED)) {\n return new BlockModel(BlockModel.BUILTIN_GENERATED, undefined, undefined, [{\n from: [0, 0, 0],\n to: [16, 16, 0],\n faces: { south: { texture: '#layer0', tintindex: 0 } },\n }]);\n }\n return accessor.getBlockModel(this.parent);\n }\n static fromJson(id, data) {\n const parent = data.parent === undefined ? undefined : Identifier.parse(data.parent);\n return new BlockModel(Identifier.parse(id), parent, data.textures, data.elements, data.display);\n }\n}\n//# sourceMappingURL=BlockModel.js.map","export class ShaderProgram {\n gl;\n program;\n constructor(gl, vsSource, fsSource) {\n this.gl = gl;\n this.program = this.initShaderProgram(vsSource, fsSource);\n }\n getProgram() {\n return this.program;\n }\n initShaderProgram(vsSource, fsSource) {\n const vertexShader = this.loadShader(this.gl.VERTEX_SHADER, vsSource);\n const fragmentShader = this.loadShader(this.gl.FRAGMENT_SHADER, fsSource);\n const shaderProgram = this.gl.createProgram();\n this.gl.attachShader(shaderProgram, vertexShader);\n this.gl.attachShader(shaderProgram, fragmentShader);\n this.gl.linkProgram(shaderProgram);\n if (!this.gl.getProgramParameter(shaderProgram, this.gl.LINK_STATUS)) {\n throw new Error(`Unable to link shader program: ${this.gl.getProgramInfoLog(shaderProgram)}`);\n }\n return shaderProgram;\n }\n loadShader(type, source) {\n const shader = this.gl.createShader(type);\n this.gl.shaderSource(shader, source);\n this.gl.compileShader(shader);\n if (!this.gl.getShaderParameter(shader, this.gl.COMPILE_STATUS)) {\n const error = new Error(`Compiling ${type === this.gl.VERTEX_SHADER ? 'vertex' : 'fragment'} shader: ${this.gl.getShaderInfoLog(shader)}`);\n this.gl.deleteShader(shader);\n throw error;\n }\n return shader;\n }\n}\n//# sourceMappingURL=ShaderProgram.js.map","import { mat4 } from 'gl-matrix';\nimport { ShaderProgram } from './ShaderProgram.js';\nconst vsSource = `\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`;\nconst fsSource = `\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\t\tvec4 texColor = texture2D(sampler, vTexCoord);\n\t\tif(texColor.a < 0.01) discard;\n\t\tgl_FragColor = vec4(texColor.xyz * vTintColor * vLighting, texColor.a);\n }\n`;\nexport class Renderer {\n gl;\n shaderProgram;\n projMatrix;\n activeShader;\n constructor(gl) {\n this.gl = gl;\n this.shaderProgram = new ShaderProgram(gl, vsSource, fsSource).getProgram();\n this.activeShader = this.shaderProgram;\n this.projMatrix = this.getPerspective();\n this.initialize();\n }\n setViewport(x, y, width, height) {\n this.gl.viewport(x, y, width, height);\n this.projMatrix = this.getPerspective();\n }\n getPerspective() {\n const fieldOfView = 70 * Math.PI / 180;\n const aspect = this.gl.canvas.clientWidth / this.gl.canvas.clientHeight;\n const projMatrix = mat4.create();\n mat4.perspective(projMatrix, fieldOfView, aspect, 0.1, 500.0);\n return projMatrix;\n }\n initialize() {\n this.gl.enable(this.gl.DEPTH_TEST);\n this.gl.depthFunc(this.gl.LEQUAL);\n this.gl.enable(this.gl.BLEND);\n this.gl.blendFunc(this.gl.SRC_ALPHA, this.gl.ONE_MINUS_SRC_ALPHA);\n this.gl.enable(this.gl.CULL_FACE);\n this.gl.cullFace(this.gl.BACK);\n }\n setShader(shader) {\n this.gl.useProgram(shader);\n this.activeShader = shader;\n }\n setVertexAttr(name, size, buffer) {\n const location = this.gl.getAttribLocation(this.activeShader, name);\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, buffer);\n this.gl.vertexAttribPointer(location, size, this.gl.FLOAT, false, 0, 0);\n this.gl.enableVertexAttribArray(location);\n }\n setUniform(name, value) {\n const location = this.gl.getUniformLocation(this.activeShader, name);\n this.gl.uniformMatrix4fv(location, false, value);\n }\n setTexture(texture) {\n this.gl.activeTexture(this.gl.TEXTURE0);\n this.gl.bindTexture(this.gl.TEXTURE_2D, texture);\n }\n createBuffer(type, array) {\n const buffer = this.gl.createBuffer();\n if (buffer === null) {\n throw new Error('Renderer Error: Cannot create new buffer');\n }\n this.gl.bindBuffer(type, buffer);\n this.gl.bufferData(type, array, this.gl.DYNAMIC_DRAW);\n return buffer;\n }\n updateBuffer(buffer, type, array) {\n this.gl.bindBuffer(type, buffer);\n this.gl.bufferData(type, array, this.gl.STATIC_DRAW);\n }\n createAtlasTexture(image) {\n const texture = this.gl.createTexture();\n this.gl.bindTexture(this.gl.TEXTURE_2D, texture);\n this.gl.texImage2D(this.gl.TEXTURE_2D, 0, this.gl.RGBA, this.gl.RGBA, this.gl.UNSIGNED_BYTE, image);\n this.gl.generateMipmap(this.gl.TEXTURE_2D);\n this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_MAG_FILTER, this.gl.NEAREST);\n return texture;\n }\n prepareDraw(viewMatrix) {\n this.setUniform('mView', viewMatrix);\n this.setUniform('mProj', this.projMatrix);\n }\n drawBuffers(buffers) {\n this.setVertexAttr('vertPos', 3, buffers.position);\n this.setVertexAttr('texCoord', 2, buffers.texCoord);\n this.setVertexAttr('tintColor', 3, buffers.tintColor);\n this.setVertexAttr('normal', 3, buffers.normal);\n this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER, buffers.index);\n this.gl.drawElements(this.gl.TRIANGLES, buffers.length, this.gl.UNSIGNED_SHORT, 0);\n }\n}\n//# sourceMappingURL=Renderer.js.map","import { mat4 } from 'gl-matrix';\nimport { Identifier } from '../core/index.js';\nimport { BlockColors } from './BlockColors.js';\nimport { Renderer } from './Renderer.js';\nexport class ItemRenderer extends Renderer {\n item;\n resources;\n buffers;\n tint;\n atlasTexture;\n constructor(gl, item, resources, options) {\n super(gl);\n this.item = item;\n this.resources = resources;\n this.buffers = this.getItemBuffers();\n this.tint = options?.tint;\n this.atlasTexture = this.createAtlasTexture(this.resources.getTextureAtlas());\n }\n setItem(item) {\n this.item = item;\n this.buffers = this.getItemBuffers();\n }\n getItemBuffers() {\n const model = this.resources.getBlockModel(this.item.withPrefix('item/'));\n if (!model) {\n throw new Error(`Item model for ${this.item.toString()} does not exist`);\n }\n let tint = this.tint;\n if (!tint && this.item.namespace === Identifier.DEFAULT_NAMESPACE) {\n tint = BlockColors[this.item.path]?.({});\n }\n const buffers = model.getDisplayBuffers('gui', this.resources, 0, tint);\n return {\n position: this.createBuffer(this.gl.ARRAY_BUFFER, buffers.position),\n texCoord: this.createBuffer(this.gl.ARRAY_BUFFER, new Float32Array(buffers.texCoord)),\n tintColor: this.createBuffer(this.gl.ARRAY_BUFFER, new Float32Array(buffers.tintColor)),\n normal: this.createBuffer(this.gl.ARRAY_BUFFER, new Float32Array(buffers.normal)),\n index: this.createBuffer(this.gl.ELEMENT_ARRAY_BUFFER, new Uint16Array(buffers.index)),\n length: buffers.index.length,\n };\n }\n getPerspective() {\n const projMatrix = mat4.create();\n mat4.ortho(projMatrix, 0, 16, 0, 16, 0.1, 500.0);\n return projMatrix;\n }\n drawItem() {\n const view = mat4.create();\n mat4.translate(view, view, [0, 0, -32]);\n this.setShader(this.shaderProgram);\n this.setTexture(this.atlasTexture);\n this.prepareDraw(view);\n this.drawBuffers(this.buffers);\n }\n}\n//# sourceMappingURL=ItemRenderer.js.map","import { isPowerOfTwo, upperPowerOfTwo } from '../math/index.js';\nexport class TextureAtlas {\n img;\n idMap;\n part;\n constructor(img, idMap) {\n this.img = img;\n this.idMap = idMap;\n if (!isPowerOfTwo(img.width) || !isPowerOfTwo(img.height)) {\n throw new Error(`Expected texture atlas dimensions to be powers of two, got ${img.width}x${img.height}.`);\n }\n this.part = 16 / img.width;\n }\n getTextureAtlas() {\n return this.img;\n }\n getTextureUV(id) {\n return this.idMap[id.toString()] ?? [0, 0, this.part, this.part];\n }\n static async fromBlobs(textures) {\n const initialWidth = Math.sqrt(Object.keys(textures).length + 1);\n const width = upperPowerOfTwo(initialWidth);\n const pixelWidth = width * 16;\n const part = 1 / width;\n const canvas = document.createElement('canvas');\n canvas.width = pixelWidth;\n canvas.height = pixelWidth;\n const ctx = canvas.getContext('2d');\n this.drawInvalidTexture(ctx);\n const idMap = {};\n let index = 1;\n await Promise.all(Object.keys(textures).map(async (id) => {\n const u = (index % width);\n const v = Math.floor(index / width);\n index += 1;\n idMap[id] = [part * u, part * v, part * u + part, part * v + part];\n const img = await createImageBitmap(textures[id]);\n ctx.drawImage(img, 0, 0, 16, 16, 16 * u, 16 * v, 16, 16);\n }));\n return new TextureAtlas(ctx.getImageData(0, 0, pixelWidth, pixelWidth), idMap);\n }\n static empty() {\n const canvas = document.createElement('canvas');\n canvas.width = 16;\n canvas.height = 16;\n const ctx = canvas.getContext('2d');\n TextureAtlas.drawInvalidTexture(ctx);\n return new TextureAtlas(ctx.getImageData(0, 0, 16, 16), {});\n }\n static drawInvalidTexture(ctx) {\n ctx.fillStyle = 'black';\n ctx.fillRect(0, 0, 16, 16);\n ctx.fillStyle = 'magenta';\n ctx.fillRect(0, 0, 8, 8);\n ctx.fillRect(8, 8, 8, 8);\n }\n}\n//# sourceMappingURL=TextureAtlas.js.map","import { Registry } from '../core/index.js';\nimport { BlendedNoise, computeIfAbsent, DensityFunction, Identifier, LegacyRandom, NoiseParameters, NoiseSettings, NormalNoise, XoroshiroRandom } from '../index.js';\nimport { Climate } from './biome/index.js';\nimport { NoiseRouter } from './NoiseRouter.js';\nimport { SurfaceSystem } from './SurfaceSystem.js';\nexport class RandomState {\n seed;\n noiseCache;\n randomCache;\n random;\n aquiferRandom;\n oreRandom;\n surfaceSystem;\n router;\n sampler;\n constructor(settings, seed) {\n this.seed = seed;\n this.noiseCache = new Map();\n this.randomCache = new Map();\n this.random = (settings.legacyRandomSource ? new LegacyRandom(seed) : XoroshiroRandom.create(seed)).forkPositional();\n this.aquiferRandom = this.random.fromHashOf(Identifier.create('aquifer').toString()).forkPositional();\n this.oreRandom = this.random.fromHashOf(Identifier.create('ore').toString()).forkPositional();\n this.surfaceSystem = new SurfaceSystem(settings.surfaceRule, settings.defaultBlock, seed);\n this.router = NoiseRouter.mapAll(settings.noiseRouter, this.createVisitor(settings.noise, settings.legacyRandomSource));\n this.sampler = Climate.Sampler.fromRouter(this.router);\n }\n createVisitor(noiseSettings, legacyRandom) {\n const mapped = new Map();\n const getNoise = (noise) => {\n const key = noise.key();\n if (key === undefined) {\n throw new Error('Cannot create noise without key');\n }\n if (legacyRandom) {\n if (key.equals(Identifier.create('temperature'))) {\n return new NormalNoise(new LegacyRandom(this.seed + BigInt(0)), NoiseParameters.create(-7, [1, 1]));\n }\n if (key.equals(Identifier.create('vegetation'))) {\n return new NormalNoise(new LegacyRandom(this.seed + BigInt(1)), NoiseParameters.create(-7, [1, 1]));\n }\n if (key.equals(Identifier.create('offset'))) {\n return new NormalNoise(this.random.fromHashOf('offset'), NoiseParameters.create(0, [0]));\n }\n }\n return this.getOrCreateNoise(key);\n };\n const visitor = {\n map: (fn) => {\n if (fn instanceof DensityFunction.HolderHolder) {\n const key = fn.holder.key();\n if (key !== undefined && mapped.has(key.toString())) {\n return mapped.get(key.toString());\n }\n else {\n const value = fn.holder.value().mapAll(visitor);\n if (key !== undefined) {\n mapped.set(key.toString(), value);\n }\n return value;\n }\n }\n if (fn instanceof DensityFunction.Interpolated) {\n return fn.withCellSize(NoiseSettings.cellWidth(noiseSettings), NoiseSettings.cellHeight(noiseSettings));\n }\n if (fn instanceof DensityFunction.ShiftedNoise) {\n return new DensityFunction.ShiftedNoise(fn.shiftX, fn.shiftY, fn.shiftZ, fn.xzScale, fn.yScale, fn.noiseData, getNoise(fn.noiseData));\n }\n if (fn instanceof DensityFunction.Noise) {\n return new DensityFunction.Noise(fn.xzScale, fn.yScale, fn.noiseData, getNoise(fn.noiseData));\n }\n if (fn instanceof DensityFunction.ShiftNoise) {\n return fn.withNewNoise(getNoise(fn.noiseData));\n }\n if (fn instanceof DensityFunction.WeirdScaledSampler) {\n return new DensityFunction.WeirdScaledSampler(fn.input, fn.rarityValueMapper, fn.noiseData, getNoise(fn.noiseData));\n }\n if (fn instanceof DensityFunction.OldBlendedNoise) {\n return new DensityFunction.OldBlendedNoise(fn.xzScale, fn.yScale, fn.xzFactor, fn.yFactor, fn.smearScaleMultiplier, new BlendedNoise(this.random.fromHashOf(Identifier.create('terrain').toString()), fn.xzScale, fn.yScale, fn.xzFactor, fn.yFactor, fn.smearScaleMultiplier));\n }\n if (fn instanceof DensityFunction.EndIslands) {\n return new DensityFunction.EndIslands(this.seed);\n }\n if (fn instanceof DensityFunction.Mapped) {\n return fn.withMinMax();\n }\n if (fn instanceof DensityFunction.Ap2) {\n return fn.withMinMax();\n }\n return fn;\n },\n };\n return visitor;\n }\n getOrCreateNoise(id) {\n const noises = Registry.REGISTRY.getOrThrow(Identifier.create('worldgen/noise'));\n return computeIfAbsent(this.noiseCache, id.toString(), key => new NormalNoise(this.random.fromHashOf(key), noises.getOrThrow(id)));\n }\n getOrCreateRandom(id) {\n return computeIfAbsent(this.randomCache, id.toString(), key => this.random.fromHashOf(key).forkPositional());\n }\n}\n//# sourceMappingURL=RandomState.js.map","import * as deepslate19 from 'deepslate/worldgen'\nimport type { VersionId } from '../services/index.js'\nimport { checkVersion, fetchAllPresets, fetchPreset } from '../services/index.js'\nimport { BiMap, clamp, computeIfAbsentAsync, deepClone, deepEqual, isObject, square } from '../Utils.js'\n\nexport type ProjectData = Record<string, Record<string, unknown>>\n\nconst DYNAMIC_REGISTRIES = new Set([\n\t'minecraft:worldgen/noise',\n\t'minecraft:worldgen/density_function',\n\t'minecraft:worldgen/noise_settings',\n])\n\nexport class Deepslate {\n\tprivate d = deepslate19\n\tprivate loadedVersion: VersionId | undefined\n\tprivate loadingVersion: VersionId | undefined\n\tprivate loadingPromise: Promise<void> | undefined\n\tprivate readonly deepslateCache = new Map<VersionId, typeof deepslate19>()\n\tprivate readonly Z = 0\n\tprivate readonly DEBUG = false\n\n\tprivate cacheState: unknown\n\tprivate settingsCache: NoiseSettings | undefined\n\tprivate generatorCache: ChunkGenerator | undefined\n\tprivate biomeSourceCache: BiomeSource | undefined\n\tprivate randomStateCache: deepslate19.RandomState | undefined\n\tprivate chunksCache: Chunk[] = []\n\tprivate biomeCache: Map<string, string> = new Map()\n\tprivate readonly presetCache: Map<string, unknown> = new Map()\n\n\tpublic async loadVersion(version: VersionId, project?: ProjectData) {\n\t\tif (this.loadedVersion === version) {\n\t\t\tthis.applyProjectData(version, project)\n\t\t\treturn\n\t\t}\n\t\tif (this.loadingVersion !== version || !this.loadingPromise) {\n\t\t\tthis.loadingVersion = version\n\t\t\tthis.loadingPromise = this.doLoadVersion(version, project)\n\t\t}\n\t\treturn this.loadingPromise\n\t}\n\n\tprivate async doLoadVersion(version: VersionId, project?: ProjectData) {\n\t\tconst cachedDeepslate = this.deepslateCache.get(version)\n\t\tif (cachedDeepslate) {\n\t\t\tthis.d = cachedDeepslate\n\t\t} else {\n\t\t\tif (checkVersion(version, '1.19')) {\n\t\t\t\tthis.d = deepslate19\n\t\t\t} else if (checkVersion(version, '1.18.2')) {\n\t\t\t\tthis.d = await import('deepslate-1.18.2') as any\n\t\t\t} else {\n\t\t\t\tthis.d = await import('deepslate-1.18') as any\n\t\t\t}\n\t\t\tif (checkVersion(version, '1.19')) {\n\t\t\t\tawait Promise.all(this.d.Registry.REGISTRY.map(async (id, registry) => {\n\t\t\t\t\tif (DYNAMIC_REGISTRIES.has(id.toString())) {\n\t\t\t\t\t\tconst entries = await fetchAllPresets(version, id.path)\n\t\t\t\t\t\tfor (const [key, value] of entries.entries()) {\n\t\t\t\t\t\t\tregistry.register(this.d.Identifier.parse(key), registry.parse(value), true)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}))\n\t\t\t} else if (checkVersion(version, '1.18.2')) {\n\t\t\t\tawait Promise.all([...DYNAMIC_REGISTRIES].map(async (id) => {\n\t\t\t\t\tconst entries = await fetchAllPresets(version, id.replace(/^minecraft:/, ''))\n\t\t\t\t\tfor (const [key, value] of entries.entries()) {\n\t\t\t\t\t\tif (id === 'minecraft:worldgen/noise') {\n\t\t\t\t\t\t\tthis.d.WorldgenRegistries.NOISE.register(this.d.Identifier.parse(key), this.d.NoiseParameters.fromJson(value), true)\n\t\t\t\t\t\t} else if (id === 'minecraft:worldgen/density_function') {\n\t\t\t\t\t\t\tthis.d.WorldgenRegistries.DENSITY_FUNCTION.register(this.d.Identifier.parse(key), this.d.DensityFunction.fromJson(value), true)\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\tthis.deepslateCache.set(version, this.d)\n\t\t}\n\t\tthis.applyProjectData(version, project)\n\t\tthis.loadedVersion = version\n\t\tthis.loadingVersion = undefined\n\t}\n\n\tprivate applyProjectData(version: VersionId, project?: ProjectData) {\n\t\tif (checkVersion(version, '1.19')) {\n\t\t\tthis.d.Registry.REGISTRY.forEach((id, registry) => {\n\t\t\t\tif (DYNAMIC_REGISTRIES.has(id.toString())) {\n\t\t\t\t\tregistry.clear()\n\t\t\t\t\tfor (const [key, value] of Object.entries(project?.[id.path] ?? {})) {\n\t\t\t\t\t\tregistry.register(this.d.Identifier.parse(key), registry.parse(value))\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n\n\tpublic async loadChunkGenerator(settings: unknown, biomeState: unknown, seed: bigint) {\n\t\tconst newCacheState = [settings, `${seed}`, biomeState]\n\t\tif (!deepEqual(this.cacheState, newCacheState)) {\n\t\t\tconst noiseSettings = this.createNoiseSettings(settings)\n\t\t\tconst biomeSource = await this.createBiomeSource(noiseSettings, biomeState, seed)\n\t\t\tconst chunkGenerator = this.isVersion('1.19')\n\t\t\t\t?\tnew this.d.NoiseChunkGenerator(biomeSource, noiseSettings)\n\t\t\t\t: new (this.d.NoiseChunkGenerator as any)(seed, biomeSource, noiseSettings)\n\t\t\tthis.settingsCache = noiseSettings.noise\n\t\t\tthis.generatorCache = chunkGenerator\n\t\t\tif (this.isVersion('1.19')) {\n\t\t\t\tthis.randomStateCache = new this.d.RandomState(noiseSettings, seed)\n\t\t\t} else {\n\t\t\t\tthis.randomStateCache = undefined\n\t\t\t}\n\t\t\tthis.biomeSourceCache = {\n\t\t\t\tgetBiome: (x, y, z) => biomeSource.getBiome(x, y, z, undefined!),\n\t\t\t}\n\t\t\tthis.chunksCache = []\n\t\t\tthis.biomeCache = new Map()\n\t\t\tthis.cacheState = deepClone(newCacheState)\n\t\t}\n\t}\n\n\tprivate async createBiomeSource(noiseSettings: deepslate19.NoiseGeneratorSettings, biomeState: unknown, seed: bigint): Promise<deepslate19.BiomeSource> {\n\t\tif (this.loadedVersion && isObject(biomeState) && typeof biomeState.preset === 'string') {\n\t\t\tconst version = this.loadedVersion\n\t\t\tconst preset = biomeState.preset.replace(/^minecraft:/, '')\n\t\t\tconst biomes = await computeIfAbsentAsync(this.presetCache, `${version}-${preset}`, async () => {\n\t\t\t\tconst dimension = await fetchPreset(version, 'dimension', preset === 'overworld' ? 'overworld' : 'the_nether')\n\t\t\t\treturn dimension.generator.biome_source.biomes\n\t\t\t})\n\t\t\tbiomeState = { type: biomeState.type, biomes }\n\t\t}\n\t\tif (this.isVersion('1.19')) {\n\t\t\treturn this.d.BiomeSource.fromJson(biomeState)\n\t\t} else {\n\t\t\tconst root = isObject(biomeState) ? biomeState : {}\n\t\t\tconst type = typeof root.type === 'string' ? root.type.replace(/^minecraft:/, '') : undefined\n\t\t\tswitch (type) {\n\t\t\t\tcase 'fixed':\n\t\t\t\t\treturn new (this.d as any).FixedBiome(this.isVersion('1.18.2') ? this.d.Identifier.parse(root.biome as string) : root.biome as any)\n\t\t\t\tcase 'checkerboard':\n\t\t\t\t\tconst shift = (root.scale ?? 2) + 2\n\t\t\t\t\tconst numBiomes = root.biomes?.length ?? 0\n\t\t\t\t\treturn { getBiome: (x: number, _y: number, z: number) => {\n\t\t\t\t\t\tconst i = (((x >> shift) + (z >> shift)) % numBiomes + numBiomes) % numBiomes\n\t\t\t\t\t\tconst biome = root.biomes?.[i]\n\t\t\t\t\t\treturn this.isVersion('1.18.2') ? this.d.Identifier.parse(biome) : biome\n\t\t\t\t\t} }\n\t\t\t\tcase 'multi_noise':\n\t\t\t\t\tif (this.isVersion('1.18')) {\n\t\t\t\t\t\tconst parameters = new this.d.Climate.Parameters(root.biomes.map((b: any) => {\n\t\t\t\t\t\t\tconst biome = this.isVersion('1.18.2') ? this.d.Identifier.parse(b.biome) : b.biome\n\t\t\t\t\t\t\treturn [this.d.Climate.ParamPoint.fromJson(b.parameters), () => biome]\n\t\t\t\t\t\t}))\n\t\t\t\t\t\tconst multiNoise = new (this.d as any).MultiNoise(parameters)\n\t\t\t\t\t\tlet sampler: any\n\t\t\t\t\t\tif (this.isVersion('1.18.2')) {\n\t\t\t\t\t\t\tconst router = this.d.NoiseRouter.create({\n\t\t\t\t\t\t\t\ttemperature: new this.d.DensityFunction.Noise(0.25, 0, (this.d as any).Noises.TEMPERATURE),\n\t\t\t\t\t\t\t\tvegetation: new this.d.DensityFunction.Noise(0.25, 0, (this.d as any).Noises.VEGETATION),\n\t\t\t\t\t\t\t\tcontinents: new this.d.DensityFunction.Noise(0.25, 0, (this.d as any).Noises.CONTINENTALNESS),\n\t\t\t\t\t\t\t\terosion: new this.d.DensityFunction.Noise(0.25, 0, (this.d as any).Noises.EROSION),\n\t\t\t\t\t\t\t\tridges: new this.d.DensityFunction.Noise(0.25, 0, (this.d as any).Noises.RIDGE),\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\tsampler = this.d.Climate.Sampler.fromRouter((this.d.NoiseRouter as any).withSettings(router, noiseSettings, seed))\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst noiseSampler = new (this.d as any).NoiseSampler(this.d.NoiseSettings.fromJson(null), true, seed, true)\n\t\t\t\t\t\t\tsampler = (x: number, y: number, z: number) => noiseSampler.sample(x, y, z)\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn { getBiome: (x: number, y: number, z: number) => {\n\t\t\t\t\t\t\treturn multiNoise.getBiome(x, y, z, sampler)\n\t\t\t\t\t\t} }\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst noise = ['altitude', 'temperature', 'humidity', 'weirdness']\n\t\t\t\t\t\t\t.map((id, i) => {\n\t\t\t\t\t\t\t\tconst config = root[`${id}_noise`]\n\t\t\t\t\t\t\t\tconfig.firstOctave = clamp(config.firstOctave ?? -7, -100, -1)\n\t\t\t\t\t\t\t\treturn new this.d.NormalNoise(new this.d.LegacyRandom(seed + BigInt(i)), config)\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\tif (!Array.isArray(root.biomes) || root.biomes.length === 0) {\n\t\t\t\t\t\t\treturn { getBiome: () => this.d.Identifier.create('unknown') }\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn { getBiome: (x: number, _y: number, z: number) => {\n\t\t\t\t\t\t\tconst n = noise.map(n => n.sample(x, z, 0))\n\t\t\t\t\t\t\tlet minDist = Infinity\n\t\t\t\t\t\t\tlet minBiome = 'unknown'\n\t\t\t\t\t\t\tfor (const { biome, parameters: p } of root.biomes) {\n\t\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\t\tif (dist < minDist) {\n\t\t\t\t\t\t\t\t\tminDist = dist\n\t\t\t\t\t\t\t\t\tminBiome = biome\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn minBiome as unknown as deepslate19.Identifier\n\t\t\t\t\t\t} }\n\t\t\t\t\t}\n\t\t\t\tdefault: throw new Error(`Unsupported biome source ${type}`)\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate createNoiseSettings(settings: unknown): deepslate19.NoiseGeneratorSettings {\n\t\tif (typeof settings === 'string') {\n\t\t\tif (this.isVersion('1.19')) {\n\t\t\t\treturn this.d.WorldgenRegistries.NOISE_SETTINGS.getOrThrow(this.d.Identifier.parse(settings))\n\t\t\t} else {\n\t\t\t\treturn this.d.NoiseGeneratorSettings.fromJson(undefined)\n\t\t\t}\n\t\t} else {\n\t\t\treturn this.d.NoiseGeneratorSettings.fromJson(settings)\n\t\t}\n\t}\n\n\tpublic generateChunks(minX: number, width: number, biome = 'unknown') {\n\t\tminX = Math.floor(minX)\n\t\tif (!this.settingsCache) {\n\t\t\tthrow new Error('Tried to generate chunks before settings are loaded')\n\t\t}\n\t\tconst minY = this.settingsCache.minY\n\t\tconst height = this.settingsCache.height\n\n\t\treturn [...Array(Math.ceil(width / 16) + 1)].map((_, i) => {\n\t\t\tconst x: number = (minX >> 4) + i\n\t\t\tconst cached = this.chunksCache.find(c => c.pos[0] === x)\n\t\t\tif (cached) {\n\t\t\t\treturn cached\n\t\t\t}\n\t\t\tconst chunk = new this.d.Chunk(minY, height, this.d.ChunkPos.create(x, this.Z >> 4))\n\t\t\tif (!this.generatorCache) {\n\t\t\t\tthrow new Error('Tried to generate chunks before generator is loaded')\n\t\t\t}\n\t\t\tif (checkVersion(this.loadedVersion!, '1.19')) {\n\t\t\t\tif (!this.randomStateCache) {\n\t\t\t\t\tthrow new Error('Tried to generate chunks before random state is loaded')\n\t\t\t\t}\n\t\t\t\tthis.generatorCache.fill(this.randomStateCache, chunk, true)\n\t\t\t\tthis.generatorCache.buildSurface(this.randomStateCache, chunk, biome)\n\t\t\t} else {\n\t\t\t\t(this.generatorCache as any).fill(chunk, true);\n\t\t\t\t(this.generatorCache as any).buildSurface(chunk, biome)\n\t\t\t}\n\t\t\tthis.chunksCache.push(chunk)\n\t\t\treturn chunk\n\t\t})\n\t}\n\n\tpublic fillBiomes(minX: number, maxX: number, minZ: number, maxZ: number, step = 1, y = 64) {\n\t\tif (!this.generatorCache || !this.settingsCache) {\n\t\t\tthrow new Error('Tried to fill biomes before generator is loaded')\n\t\t}\n\t\tconst quartY = (y - this.settingsCache.minY) >> 2\n\t\tconst minQuartX = minX >> 2\n\t\tconst maxQuartX = maxX >> 2\n\t\tconst minQuartZ = minZ >> 2\n\t\tconst maxQuartZ = maxZ >> 2\n\t\tconst countX = Math.floor((maxQuartX - minQuartX) / step)\n\t\tconst countZ = Math.floor((maxQuartZ - minQuartZ) / step)\n\n\t\tconst biomeIds = new BiMap<string, number>()\n\t\tconst data = new Int8Array(countX * countZ)\n\t\tlet biomeId = 0\n\t\tlet i = 0\n\n\t\tfor (let x = minQuartX; x < maxQuartX; x += step) {\n\t\t\tfor (let z = minQuartZ; z < maxQuartZ; z += step) {\n\t\t\t\tconst posKey = `${x}:${quartY}:${z}`\n\t\t\t\tlet biome = this.biomeCache.get(posKey)\n\t\t\t\tif (!biome) {\n\t\t\t\t\tif (this.DEBUG) {\n\t\t\t\t\t\tbiome = this.computeDebugBiome(x, z)\n\t\t\t\t\t} else if (this.isVersion('1.19')) {\n\t\t\t\t\t\tif (!this.randomStateCache) {\n\t\t\t\t\t\t\tthrow new Error('Tried to compute biomes before random state is loaded')\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbiome = this.generatorCache.computeBiome(this.randomStateCache, x, quartY, z).toString()\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif(!this.biomeSourceCache) {\n\t\t\t\t\t\t\tthrow new Error('Tried to compute biomes before biome source is loaded')\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbiome = this.biomeSourceCache.getBiome(x, quartY, z).toString()\n\t\t\t\t\t}\n\t\t\t\t\tthis.biomeCache.set(posKey, biome)\n\t\t\t\t}\n\t\t\t\tdata[i++] = biomeIds.computeIfAbsent(biome, () => biomeId++)\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tpalette: biomeIds.backward,\n\t\t\tdata,\n\t\t\twidth: countX,\n\t\t\theight: countZ,\n\t\t}\n\t}\n\n\tprivate computeDebugBiome(x: number, z: number) {\n\t\tif (x > 0) {\n\t\t\treturn z > 0 ? 'minecraft:plains' : 'minecraft:forest'\n\t\t} else {\n\t\t\treturn z > 0 ? 'minecraft:badlands' : 'minecraft:desert'\n\t\t}\n\t}\n\n\tpublic loadDensityFunction(state: unknown, seed: bigint) {\n\t\tif (this.isVersion('1.19')) {\n\t\t\tconst settings = this.d.NoiseGeneratorSettings.create({\n\t\t\t\tnoise: {\n\t\t\t\t\tminY: -64,\n\t\t\t\t\theight: 384,\n\t\t\t\t\txzSize: 1,\n\t\t\t\t\tySize: 2,\n\t\t\t\t},\n\t\t\t\tnoiseRouter: this.d.NoiseRouter.create({\n\t\t\t\t\tfinalDensity: this.d.DensityFunction.fromJson(state),\n\t\t\t\t}),\n\t\t\t})\n\t\t\tthis.settingsCache = settings.noise\n\t\t\tconst randomState = new this.d.RandomState(settings, seed)\n\t\t\treturn randomState.router.finalDensity\n\t\t} else {\n\t\t\tconst random = this.d.XoroshiroRandom.create(seed).forkPositional()\n\t\t\tconst settings = this.d.NoiseSettings.fromJson({\n\t\t\t\tmin_y: -64,\n\t\t\t\theight: 384,\n\t\t\t\tsize_horizontal: 1,\n\t\t\t\tsize_vertical: 2,\n\t\t\t\tsampling: { xz_scale: 1, y_scale: 1, xz_factor: 80, y_factor: 160 },\n\t\t\t\tbottom_slide: { target: 0.1171875, size: 3, offset: 0 },\n\t\t\t\ttop_slide: { target: -0.078125, size: 2, offset: 8 },\n\t\t\t\tterrain_shaper: { offset: 0.044, factor: 4, jaggedness: 0 },\n\t\t\t})\n\t\t\tthis.settingsCache = settings\n\t\t\tconst originalFn = this.d.DensityFunction.fromJson(state)\n\t\t\treturn originalFn.mapAll(new (this.d.NoiseRouter as any).Visitor(random, settings))\n\t\t}\n\t}\n\n\tpublic getNoiseSettings(): NoiseSettings {\n\t\tif (!this.settingsCache) {\n\t\t\tthrow new Error('Tried to access noise settings when they are not loaded')\n\t\t}\n\t\treturn this.settingsCache\n\t}\n\n\tpublic getBlockState(x: number, y: number) {\n\t\tx = Math.floor(x)\n\t\ty = Math.floor(y)\n\t\tconst chunk = this.chunksCache.find(c => this.d.ChunkPos.minBlockX(c.pos) <= x && this.d.ChunkPos.maxBlockX(c.pos) >= x)\n\t\treturn chunk?.getBlockState(this.d.BlockPos.create(x, y, this.Z))\n\t}\n\n\tprivate isVersion(min?: VersionId, max?: VersionId) {\n\t\tif (!this.loadedVersion) {\n\t\t\tthrow new Error('No deepslate version loaded')\n\t\t}\n\t\treturn checkVersion(this.loadedVersion, min, max)\n\t}\n}\n\nexport const DEEPSLATE = new Deepslate()\n\ninterface NoiseSettings {\n\tminY: number\n\theight: number\n}\n\ninterface ChunkGenerator {\n\tfill(randomState: deepslate19.RandomState, chunk: Chunk, onlyFirstZ?: boolean): void\n\tbuildSurface(randomState: deepslate19.RandomState, chunk: Chunk, biome: string): void\n\tcomputeBiome(randomState: deepslate19.RandomState, quartX: number, quartY: number, quartZ: number): deepslate19.Identifier\n}\n\ninterface Chunk {\n\treadonly pos: deepslate19.ChunkPos\n\tgetBlockState(pos: deepslate19.BlockPos): deepslate19.BlockState\n}\n\ninterface BiomeSource {\n\tgetBiome(x: number, y: number, z: number): deepslate19.Identifier\n}\n","import { LegacyRandom, PerlinNoise } from 'deepslate/worldgen'\nimport { clampedLerp, lerp2 } from '../../Utils.js'\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 { BlockState, clampedMap, DensityFunction } from 'deepslate/worldgen'\nimport type { Project } from '../contexts/Project.jsx'\nimport type { VersionId } from '../services/index.js'\nimport { checkVersion } from '../services/index.js'\nimport { DEEPSLATE } from './Deepslate.js'\nimport { NoiseChunkGenerator as OldNoiseChunkGenerator } from './noise/NoiseChunkGenerator.js'\n\nexport type NoiseSettingsOptions = {\n\tbiome?: string,\n\tbiomeScale?: number,\n\tbiomeDepth?: number,\n\toffset: number,\n\twidth: number,\n\tseed: bigint,\n\tversion: VersionId,\n\tproject: Project,\n}\n\nconst colors: Record<string, [number, number, number]> = {\n\t'minecraft:air': [150, 160, 170],\n\t'minecraft:water': [20, 80, 170],\n\t'minecraft:lava': [200, 100, 0],\n\t'minecraft:stone': [55, 55, 55],\n\t'minecraft:deepslate': [34, 34, 36],\n\t'minecraft:bedrock': [10, 10, 10],\n\t'minecraft:grass_block': [47, 120, 23],\n\t'minecraft:dirt': [64, 40, 8],\n\t'minecraft:gravel': [70, 70, 70],\n\t'minecraft:sand': [196, 180, 77],\n\t'minecraft:sandstone': [148, 135, 52],\n\t'minecraft:netherrack': [100, 40, 40],\n\t'minecraft:crimson_nylium': [144, 22, 22],\n\t'minecraft:warped_nylium': [28, 115, 113],\n\t'minecraft:basalt': [73, 74, 85],\n\t'minecraft:end_stone': [200, 200, 140],\n}\n\nexport async function noiseSettings(state: any, img: ImageData, options: NoiseSettingsOptions) {\n\tif (checkVersion(options.version, '1.18')) {\n\t\tawait DEEPSLATE.loadVersion(options.version, getProjectData(options.project))\n\t\tconst biomeSource = { type: 'fixed', biome: options.biome }\n\t\tawait DEEPSLATE.loadChunkGenerator(DataModel.unwrapLists(state), biomeSource, options.seed)\n\t\tDEEPSLATE.generateChunks(-options.offset, options.width)\n\t\tconst noise = DEEPSLATE.getNoiseSettings()\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 < noise.height; y += 1) {\n\t\t\t\tconst i = x * 4 + (noise.height-y-1) * 4 * img.width\n\t\t\t\tconst state = DEEPSLATE.getBlockState(x - options.offset, y + noise.minY) ?? BlockState.AIR\n\t\t\t\tconst color = colors[state.getName().toString()] ?? [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\nexport function getNoiseBlock(x: number, y: number) {\n\treturn DEEPSLATE.getBlockState(x, y)\n}\n\nexport async function densityFunction(state: any, img: ImageData, options: NoiseSettingsOptions) {\n\tawait DEEPSLATE.loadVersion(options.version, getProjectData(options.project))\n\tconst fn = DEEPSLATE.loadDensityFunction(DataModel.unwrapLists(state), options.seed)\n\tconst noise = DEEPSLATE.getNoiseSettings()\n\n\tconst arr = Array(options.width * noise.height)\n\tlet min = Infinity\n\tlet max = -Infinity\n\tfor (let x = 0; x < options.width; x += 1) {\n\t\tfor (let y = 0; y < noise.height; y += 1) {\n\t\t\tconst i = x + (noise.height-y-1) * options.width\n\t\t\tconst density = fn.compute(DensityFunction.context(x - options.offset, y, 0))\n\t\t\tmin = Math.min(min, density)\n\t\t\tmax = Math.max(max, density)\n\t\t\tarr[i] = density\n\t\t}\n\t}\n\n\tconst data = img.data\n\tfor (let i = 0; i < options.width * noise.height; i += 1) {\n\t\tconst color = Math.floor(clampedMap(arr[i], min, max, 0, 256))\n\t\tdata[4 * i] = color\n\t\tdata[4 * i + 1] = color\n\t\tdata[4 * i + 2] = color\n\t\tdata[4 * i + 3] = 255\n\t}\n}\n\nexport function getProjectData(project: Project) {\n\treturn Object.fromEntries(['worldgen/noise_settings', 'worldgen/noise', 'worldgen/density_function'].map(type => {\n\t\tconst resources = Object.fromEntries(\n\t\t\tproject.files.filter(file => file.type === type)\n\t\t\t\t.map<[string, unknown]>(file => [file.id, file.data])\n\t\t)\n\t\treturn [type, resources]\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","import { DataModel } from '@mcschema/core'\nimport type { Project } from '../contexts/Project.jsx'\nimport type { VersionId } from '../services/index.js'\nimport { stringToColor } from '../Utils.js'\nimport { DEEPSLATE } from './Deepslate.js'\nimport { getProjectData } from './NoiseSettings.js'\n\ntype Triple = [number, number, number]\ntype BiomeColors = Record<string, Triple>\ntype BiomeSourceOptions = {\n\tbiomeColors: BiomeColors,\n\toffset: [number, number],\n\tscale: number,\n\tres: number,\n\tseed: bigint,\n\tversion: VersionId,\n\tsettings: unknown,\n\tproject: Project,\n\ty: number,\n}\n\nexport async function biomeMap(state: any, img: ImageData, options: BiomeSourceOptions) {\n\tawait DEEPSLATE.loadVersion(options.version, getProjectData(options.project))\n\tawait DEEPSLATE.loadChunkGenerator(DataModel.unwrapLists(options.settings), DataModel.unwrapLists(state), options.seed)\n\n\tconst quartStep = Math.max(1, Math.round(options.scale))\n\tconst quartWidth = 200 * quartStep\n\n\tconst centerX = Math.round(-options.offset[0] * options.scale)\n\tconst centerZ = Math.round(-options.offset[1] * options.scale)\n\n\tconst minX = Math.floor(centerX - quartWidth / 2)\n\tconst minZ = Math.floor(centerZ - quartWidth / 2)\n\tconst maxX = minX + quartWidth\n\tconst maxZ = minZ + quartWidth\n\n\tconst { palette, data, width, height } = DEEPSLATE.fillBiomes(minX * 4, maxX * 4, minZ * 4, maxZ * 4, quartStep * options.res, options.y)\n\n\tlet x = 0\n\tlet z = 0\n\tfor (let i = 0; i < data.length; i += 1) {\n\t\tconst biome = palette.get(data[i])\n\t\tconst color = getBiomeColor(biome ?? '', options.biomeColors)\n\t\tconst j = z * width + x\n\t\timg.data[j * 4] = color[0]\n\t\timg.data[j * 4 + 1] = color[1]\n\t\timg.data[j * 4 + 2] = color[2]\n\t\timg.data[j * 4 + 3] = 255\n\n\t\tz += 1\n\t\tif (z >= height) {\n\t\t\tz = 0\n\t\t\tx += 1\n\t\t}\n\t}\n}\n\nexport async function getBiome(state: any, x: number, z: number, options: BiomeSourceOptions): Promise<{[k: string]: number | string} | undefined> {\n\tawait DEEPSLATE.loadVersion(options.version, getProjectData(options.project))\n\tawait DEEPSLATE.loadChunkGenerator(DataModel.unwrapLists(options.settings), DataModel.unwrapLists( state), options.seed)\n\n\tconst quartStep = Math.max(1, Math.round(options.scale))\n\n\tconst centerX = Math.round(-options.offset[0] * options.scale)\n\tconst centerZ = Math.round(-options.offset[1] * options.scale)\n\n\tconst xx = Math.floor(centerX + ((x - 100) * quartStep))\n\tconst zz = Math.floor(centerZ + ((z - 100) * quartStep))\n\n\tconst { palette, data } = DEEPSLATE.fillBiomes(xx * 4, xx * 4 + 4, zz * 4, zz * 4 + 4, 1, options.y)\n\tconst biome = palette.get(data[0])!\n\n\treturn {\n\t\tbiome,\n\t}\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\nexport const VanillaColors: Record<string, Triple> = {\n\t'minecraft:badlands': [217,69,21],\n\t'minecraft:badlands_plateau': [202,140,101],\n\t'minecraft:bamboo_jungle': [118,142,20],\n\t'minecraft:bamboo_jungle_hills': [59,71,10],\n\t'minecraft:basalt_deltas': [64,54,54],\n\t'minecraft:beach': [250,222,85],\n\t'minecraft:birch_forest': [48,116,68],\n\t'minecraft:birch_forest_hills': [31,95,50],\n\t'minecraft:cold_ocean': [32,32,112],\n\t'minecraft:crimson_forest': [221,8,8],\n\t'minecraft:dark_forest': [64,81,26],\n\t'minecraft:dark_forest_hills': [104,121,66],\n\t'minecraft:deep_cold_ocean': [32,32,56],\n\t'minecraft:deep_frozen_ocean': [64,64,144],\n\t'minecraft:deep_lukewarm_ocean': [0,0,64],\n\t'minecraft:deep_ocean': [0,0,48],\n\t'minecraft:deep_warm_ocean': [0,0,80],\n\t'minecraft:desert': [250,148,24],\n\t'minecraft:desert_hills': [210,95,18],\n\t'minecraft:desert_lakes': [255,188,64],\n\t'minecraft:end_barrens': [39,30,61],\n\t'minecraft:end_highlands': [232,244,178],\n\t'minecraft:end_midlands': [194,187,136],\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': [16,12,28],\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': [59,39,84],\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\t'minecraft:deep_dark': [10, 14, 19],\n\t'minecraft:mangrove_swamp': [36,196,142],\n}\n","import { DataModel } from '@mcschema/core'\nimport type { Random } from 'deepslate/worldgen'\nimport { LegacyRandom, PerlinNoise } from 'deepslate/worldgen'\nimport type { VersionId } from '../services/index.js'\nimport { checkVersion } from '../services/index.js'\nimport { clamp, isObject, stringToColor } from '../Utils.js'\n\ntype BlockPos = [number, number, number]\ntype Placement = [BlockPos, number]\n\ntype PlacementContext = {\n\tplacements: Placement[],\n\tfeatures: string[],\n\trandom: Random,\n\tbiomeInfoNoise: PerlinNoise,\n\tseaLevel: number,\n\tversion: VersionId,\n\tnextFloat(): number,\n\tnextInt(max: number): number,\n\tnextGaussian(): number,\n\tsampleInt(provider: any): number,\n}\n\nconst terrain = [50, 50, 51, 51, 52, 52, 53, 54, 56, 57, 57, 58, 58, 59, 60, 60, 60, 59, 59, 59, 60, 61, 61, 62, 63, 63, 64, 64, 64, 65, 65, 66, 66, 65, 65, 66, 66, 67, 67, 67, 68, 69, 71, 73, 74, 76, 79, 80, 81, 81, 82, 83, 83, 82, 82, 81, 81, 80, 80, 80, 81, 81, 82, 82] \n\nconst featureColors = [\n\t[255, 77, 54], // red\n\t[59, 118, 255], // blue\n\t[91, 207, 25], // green\n\t[217, 32, 245], // magenta\n\t[255, 209, 41], // yellow\n\t[52, 204, 209], // cyan\n]\n\nexport type DecoratorOptions = {\n\tsize: [number, number, number],\n\tseed: bigint,\n\tversion: VersionId,\n}\nexport function decorator(state: any, img: ImageData, options: DecoratorOptions) {\n\tconst random = new LegacyRandom(options.seed)\n\tconst ctx: PlacementContext = {\n\t\tplacements: [],\n\t\tfeatures: [],\n\t\trandom,\n\t\tbiomeInfoNoise: new PerlinNoise(random.fork(), 0, [1]),\n\t\tseaLevel: 63,\n\t\tversion: options.version,\n\t\tnextFloat: () => random.nextFloat(),\n\t\tnextInt: (max: number) => random.nextInt(max),\n\t\tnextGaussian: () => Math.sqrt(-2 * Math.log(1 - random.nextFloat())) * Math.cos(2 * Math.PI * random.nextFloat()),\n\t\tsampleInt(value) { return sampleInt(value, this) },\n\t}\n\n\tfor (let x = 0; x < options.size[0] / 16; x += 1) {\n\t\tfor (let z = 0; z < options.size[2] / 16; z += 1) {\n\t\t\tif (checkVersion(options.version, undefined, '1.17')) {\n\t\t\t\tgetPlacements([x * 16, 0, z * 16], DataModel.unwrapLists(state), ctx)\n\t\t\t} else {\n\t\t\t\tmodifyPlacement([x * 16, 0, z * 16], DataModel.unwrapLists(state.placement), ctx)\n\t\t\t}\n\t\t}\n\t}\n\n\tconst data = img.data\n\timg.data.fill(255)\n\n\tfor (const [pos, feature] of ctx.placements) {\n\t\tif (pos[0] < 0 || pos[1] < 0 || pos[2] < 0 || pos[0] >= options.size[0] || pos[1] >= options.size[1] || pos[2] >= options.size[2]) continue\n\t\tconst i = (pos[2] * (img.width * 4)) + (pos[0] * 4)\n\t\tconst color = feature < featureColors.length ? featureColors[feature] : stringToColor(ctx.features[feature])\n\t\tdata[i] = clamp(50, 205, color[0])\n\t\tdata[i + 1] = clamp(50, 205, color[1])\n\t\tdata[i + 2] = clamp(50, 205, color[2])\n\t\tdata[i + 3] = 255\n\t}\n\n\tfor (let x = 0; x < options.size[0]; x += 1) {\n\t\tfor (let y = 0; y < options.size[2]; y += 1) {\n\t\t\tif ((Math.floor(x / 16) + Math.floor(y / 16)) % 2 === 0) continue\n\t\t\tconst i = (y * (img.width * 4)) + (x * 4)\n\t\t\tfor (let j = 0; j < 3; j += 1) {\n\t\t\t\tdata[i + j] = 0.85 * data[i + j] \n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction normalize(id: string) {\n\treturn id.startsWith('minecraft:') ? id.slice(10) : id\n}\n\nfunction decorateY(pos: BlockPos, y: number): BlockPos[] {\n\treturn [[ pos[0], y, pos[2] ]]\n}\n\nfunction sampleInt(value: any, ctx: PlacementContext): number {\n\tif (typeof value === 'number') {\n\t\treturn value\n\t} else if (value.base) {\n\t\treturn value.base ?? 1 + ctx.nextInt(1 + (value.spread ?? 0))\n\t} else {\n\t\tswitch (normalize(value.type)) {\n\t\t\tcase 'constant': return value.value\n\t\t\tcase 'uniform': return value.value.min_inclusive + ctx.nextInt(value.value.max_inclusive - value.value.min_inclusive + 1)\n\t\t\tcase 'biased_to_bottom': return value.value.min_inclusive + ctx.nextInt(ctx.nextInt(value.value.max_inclusive - value.value.min_inclusive + 1) + 1)\n\t\t\tcase 'clamped': return clamp(ctx.sampleInt(value.value.source), value.value.min_inclusive, value.value.max_inclusive)\n\t\t\tcase 'clamped_normal':\n\t\t\t\tconst normal = value.value.mean + ctx.nextGaussian() * value.value.deviation\n\t\t\t\treturn Math.floor(clamp(value.value.min_inclusive, value.value.max_inclusive, normal))\n\t\t\tcase 'weighted_list':\n\t\t\t\tconst totalWeight = (value.distribution as any[]).reduce<number>((sum, e) => sum + e.weight, 0)\n\t\t\t\tlet i = ctx.nextInt(totalWeight)\n\t\t\t\tfor (const e of value.distribution) {\n\t\t\t\t\ti -= e.weight\n\t\t\t\t\tif (i < 0) return ctx.sampleInt(e.data)\n\t\t\t\t}\n\t\t\t\treturn 0\n\t\t}\n\t\treturn 1\n\t}\n}\n\nfunction resolveAnchor(anchor: any, _ctx: PlacementContext): number {\n\tif (!isObject(anchor)) throw new Error('Invalid vertical anchor')\n\tif (anchor.absolute) return anchor.absolute\n\tif (anchor.above_bottom) return anchor.above_bottom\n\tif (anchor.below_top) return 256 - anchor.below_top\n\tthrow new Error('Invalid vertical anchor')\n}\n\nfunction sampleHeight(height: any, ctx: PlacementContext): number {\n\tif (!isObject(height)) throw new Error('Invalid height provider')\n\tif (typeof height.type !== 'string') {\n\t\treturn resolveAnchor(height, ctx)\n\t}\n\tswitch (normalize(height.type)) {\n\t\tcase 'constant': return resolveAnchor(height.value, ctx)\n\t\tcase 'uniform': {\n\t\t\tconst min = resolveAnchor(height.min_inclusive, ctx)\n\t\t\tconst max = resolveAnchor(height.max_inclusive, ctx)\n\t\t\treturn min + ctx.nextInt(max - min + 1)\n\t\t}\n\t\tcase 'biased_to_bottom': {\n\t\t\tconst min = resolveAnchor(height.min_inclusive, ctx)\n\t\t\tconst max = resolveAnchor(height.max_inclusive, ctx)\n\t\t\tconst n = ctx.nextInt(max - min - (height.inner ?? 1) + 1)\n\t\t\treturn min + ctx.nextInt(n + (height.inner ?? 1))\n\t\t}\n\t\tcase 'very_biased_to_bottom': {\n\t\t\tconst min = resolveAnchor(height.min_inclusive, ctx)\n\t\t\tconst max = resolveAnchor(height.max_inclusive, ctx)\n\t\t\tconst inner = height.inner ?? 1\n\t\t\tconst n1 = min + inner + ctx.nextInt(max - min - inner + 1)\n\t\t\tconst n2 = min + ctx.nextInt(n1 - min)\n\t\t\treturn min + ctx.nextInt(n2 - min + inner)\n\t\t}\n\t\tcase 'trapezoid': {\n\t\t\tconst min = resolveAnchor(height.min_inclusive, ctx)\n\t\t\tconst max = resolveAnchor(height.max_inclusive, ctx)\n\t\t\tconst plateau = height.plateau ?? 0\n\t\t\tif (plateau >= max - min) {\n\t\t\t\treturn min + ctx.nextInt(max - min + 1)\n\t\t\t}\n\t\t\tconst n1 = (max - min - plateau) / 2\n\t\t\tconst n2 = (max - min) - n1\n\t\t\treturn min + ctx.nextInt(n2 + 1) + ctx.nextInt(n1 + 1)\n\t\t}\n\t\tdefault: throw new Error(`Invalid height provider ${height.type}`)\n\t}\n}\n\n// 1.17 and before\nfunction useFeature(s: string, ctx: PlacementContext) {\n\tconst i = ctx.features.indexOf(s)\n\tif (i != -1) return i\n\tctx.features.push(s)\n\treturn ctx.features.length - 1\n}\n\nfunction getPlacements(pos: BlockPos, feature: any, ctx: PlacementContext): void {\n\tif (typeof feature === 'string') {\n\t\tctx.placements.push([pos, useFeature(feature, ctx)])\n\t\treturn\n\t}\n\tconst type = normalize(feature?.type ?? 'no_op')\n\tconst featureFn = Features[type]\n\tif (featureFn) {\n\t\tfeatureFn(feature.config, pos, ctx)\n\t} else {\n\t\tctx.placements.push([pos, useFeature(JSON.stringify(feature), ctx)])\n\t}\n}\n\nfunction getPositions(pos: BlockPos, decorator: any, ctx: PlacementContext): BlockPos[] {\n\tconst type = normalize(decorator?.type ?? 'nope')\n\tconst decoratorFn = Decorators[type]\n\tif (!decoratorFn) {\n\t\treturn [pos]\n\t}\n\treturn decoratorFn(decorator?.config, pos, ctx)\n}\n\nconst Features: {\n\t[key: string]: (config: any, pos: BlockPos, ctx: PlacementContext) => void,\n} = {\n\tdecorated: (config, pos, ctx) => {\n\t\tconst positions = getPositions(pos, config?.decorator, ctx)\n\t\tpositions.forEach(p => getPlacements(p, config?.feature, ctx))\n\t},\n\trandom_boolean_selector: (config, pos, ctx) => {\n\t\tconst feature = ctx.nextFloat() < 0.5 ? config?.feature_true : config?.feature_false\n\t\tgetPlacements(pos, feature, ctx)\n\t},\n\trandom_selector: (config, pos, ctx) => {\n\t\tfor (const f of config?.features ?? []) {\n\t\t\tif (ctx.nextFloat() < (f?.chance ?? 0)) {\n\t\t\t\tgetPlacements(pos, f.feature, ctx)\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t\tgetPlacements(pos, config?.default, ctx)\n\t},\n\tsimple_random_selector: (config, pos, ctx) => {\n\t\tconst feature = config?.features?.[ctx.nextInt(config?.features?.length ?? 0)]\n\t\tgetPlacements(pos, feature, ctx)\n\t},\n}\n\nconst Decorators: {\n\t[key: string]: (config: any, pos: BlockPos, ctx: PlacementContext) => BlockPos[],\n} = {\n\tchance: (config, pos, ctx) => {\n\t\treturn ctx.nextFloat() < 1 / (config?.chance ?? 1) ? [pos] : []\n\t},\n\tcount: (config, pos, ctx) => {\n\t\treturn new Array(ctx.sampleInt(config?.count ?? 1)).fill(pos)\n\t},\n\tcount_extra: (config, pos, ctx) => {\n\t\tlet count = config?.count ?? 1\n\t\tif (ctx.nextFloat() < config.extra_chance ?? 0){\n\t\t\tcount += config.extra_count ?? 0\n\t\t}\n\t\treturn new Array(count).fill(pos)\n\t},\n\tcount_multilayer: (config, pos, ctx) => {\n\t\treturn new Array(ctx.sampleInt(config?.count ?? 1)).fill(pos)\n\t\t\t.map(p => [\n\t\t\t\tp[0] + ctx.nextInt(16),\n\t\t\t\tp[1], \n\t\t\t\tp[2] + ctx.nextInt(16),\n\t\t\t])\n\t},\n\tcount_noise: (config, pos, ctx) => {\n\t\tconst noise = ctx.biomeInfoNoise.sample(pos[0] / 200, 0, pos[2] / 200)\n\t\tconst count = noise < config.noise_level ? config.below_noise : config.above_noise\n\t\treturn new Array(count).fill(pos)\n\t},\n\tcount_noise_biased: (config, pos, ctx) => {\n\t\tconst factor = Math.max(1, config.noise_factor)\n\t\tconst noise = ctx.biomeInfoNoise.sample(pos[0] / factor, 0, pos[2] / factor)\n\t\tconst count = Math.max(0, Math.ceil((noise + (config.noise_offset ?? 0)) * config.noise_to_count_ratio))\n\t\treturn new Array(count).fill(pos)\n\t},\n\tdark_oak_tree: (_config, pos, ctx) => {\n\t\treturn [...new Array(16)].map((_, i) => {\n\t\t\tconst x = Math.floor(i / 4) * 4 + 1 + ctx.nextInt(3) + pos[0]\n\t\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, x)])\n\t\t\tconst z = Math.floor(i % 4) * 4 + 1 + ctx.nextInt(3) + pos[2]\n\t\t\treturn [x, y, z]\n\t\t})\n\t},\n\tdecorated: (config, pos, ctx) => {\n\t\treturn getPositions(pos, config?.outer, ctx).flatMap(p => {\n\t\t\treturn getPositions(p, config?.inner, ctx)\n\t\t})\n\t},\n\tdepth_average: (config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(config?.spread ?? 0) + ctx.nextInt(config?.spread ?? 0) - (config.spread ?? 0) + (config?.baseline ?? 0)\n\t\treturn decorateY(pos, y)\n\t},\n\temerald_ore: (_config, pos, ctx) => {\n\t\tconst count = 3 + ctx.nextInt(6)\n\t\treturn [...new Array(count)].map(() => [\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\t4 + ctx.nextInt(28),\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t])\n\t},\n\tfire: (config, pos, ctx) => {\n\t\tconst count = 1 + ctx.nextInt(ctx.nextInt(ctx.sampleInt(config?.count)))\n\t\treturn [...new Array(count)].map(() => [\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\tctx.nextInt(128),\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t])\n\t},\n\tglowstone: (config, pos, ctx) => {\n\t\tconst count = ctx.nextInt(1 + ctx.nextInt(ctx.sampleInt(config?.count)))\n\t\treturn [...new Array(count)].map(() => [\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\tctx.nextInt(128),\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t])\n\t},\n\theightmap: (_config, pos, ctx) => {\n\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, pos[0])])\n\t\treturn decorateY(pos, y)\n\t},\n\theightmap_spread_double: (_config, pos, ctx) => {\n\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, pos[0])])\n\t\treturn decorateY(pos, ctx.nextInt(y * 2))\n\t},\n\theightmap_world_surface: (_config, pos, ctx) => {\n\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, pos[0])])\n\t\treturn decorateY(pos, y)\n\t},\n\ticeberg: (_config, pos, ctx) => {\n\t\treturn [[\n\t\t\tpos[0] + 4 + ctx.nextInt(8),\n\t\t\tpos[1],\n\t\t\tpos[2] + 4 + ctx.nextInt(8),\n\t\t]]\n\t},\n\tlava_lake: (config, pos, ctx) => {\n\t\tif (ctx.nextInt((config.chance ?? 1) / 10) === 0) {\n\t\t\tconst y = ctx.nextInt(ctx.nextInt(256 - 8) + 8)\n\t\t\tif (y < ctx.seaLevel || ctx.nextInt((config?.chance ?? 1) / 8) == 0) {\n\t\t\t\tconst x = ctx.nextInt(16) + pos[0]\n\t\t\t\tconst z = ctx.nextInt(16) + pos[2]\n\t\t\t\treturn [[x, y, z]]\n\t\t\t}\n\t\t}\n\t\treturn []\n\t},\n\tnope: (_config, pos) => {\n\t\treturn [pos]\n\t},\n\trange: (config, pos, ctx) => {\n\t\tconst y = ctx.nextInt((config?.maximum ?? 1) - (config?.top_offset ?? 0)) + (config?.bottom_offset ?? 0)\n\t\treturn decorateY(pos, y)\n\t},\n\trange_biased: (config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(ctx.nextInt((config?.maximum ?? 1) - (config?.top_offset ?? 0)) + (config?.bottom_offset ?? 0))\n\t\treturn decorateY(pos, y)\n\t},\n\trange_very_biased: (config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(ctx.nextInt(ctx.nextInt((config?.maximum ?? 1) - (config?.top_offset ?? 0)) + (config?.bottom_offset ?? 0)) + (config?.bottom_offset ?? 0))\n\t\treturn decorateY(pos, y)\n\t},\n\tspread_32_above: (_config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(pos[1] + 32)\n\t\treturn decorateY(pos, y)\n\t},\n\ttop_solid_heightmap: (_config, pos) => {\n\t\tconst y = terrain[clamp(0, 63, pos[0])]\n\t\treturn decorateY(pos, y)\n\t},\n\tmagma: (_config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(pos[1] + 32)\n\t\treturn decorateY(pos, y)\n\t},\n\tsquare: (_config, pos, ctx) => {\n\t\treturn [[\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\tpos[1],\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t]]\n\t},\n\tsurface_relative_threshold: (config, pos) => {\n\t\tconst height = terrain[clamp(0, 63, pos[0])]\n\t\tconst min = height + (config?.min_inclusive ?? -Infinity)\n\t\tconst max = height + (config?.max_inclusive ?? Infinity)\n\t\treturn (pos[1] < min || pos[1] > max) ? [pos] : []\n\t},\n\twater_lake: (config, pos, ctx) => {\n\t\tif (ctx.nextInt(config.chance ?? 1) === 0) {\n\t\t\treturn [[\n\t\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\t\tctx.nextInt(256),\n\t\t\t\tpos[2] + ctx.nextInt(16),\n\t\t\t]]\n\t\t}\n\t\treturn []\n\t},\n}\n\n// 1.18 and after\nfunction modifyPlacement(pos: BlockPos, placement: any[], ctx: PlacementContext) {\n\tlet positions = [pos]\n\tfor (const modifier of placement) {\n\t\tconst modifierFn = PlacementModifiers[normalize(modifier?.type ?? 'nope')]\n\t\tif (!modifierFn) continue\n\t\tpositions = positions.flatMap(pos =>\n\t\t\tPlacementModifiers[normalize(modifier.type)](modifier, pos, ctx)\n\t\t)\n\t}\n\tfor (const pos of positions) {\n\t\tctx.placements.push([pos, 0])\n\t}\n}\n\nconst PlacementModifiers: {\n\t[key: string]: (config: any, pos: BlockPos, ctx: PlacementContext) => BlockPos[],\n} = {\n\tcount: ({ count }, pos, ctx) => {\n\t\treturn new Array(ctx.sampleInt(count ?? 1)).fill(pos)\n\t},\n\tcount_on_every_layer: ({ count }, pos, ctx) => {\n\t\treturn new Array(ctx.sampleInt(count ?? 1)).fill(pos)\n\t\t\t.map(p => [\n\t\t\t\tp[0] + ctx.nextInt(16),\n\t\t\t\tp[1], \n\t\t\t\tp[2] + ctx.nextInt(16),\n\t\t\t])\n\t},\n\tenvironment_scan: ({}, pos) => {\n\t\treturn [pos]\n\t},\n\theight_range: ({ height }, pos, ctx) => {\n\t\treturn decorateY(pos, sampleHeight(height, ctx))\n\t},\n\theightmap: ({}, pos, ctx) => {\n\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, pos[0])])\n\t\treturn decorateY(pos, y)\n\t},\n\tin_square: ({}, pos, ctx) => {\n\t\treturn [[\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\tpos[1],\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t]]\n\t},\n\tnoise_based_count: ({ noise_to_count_ratio, noise_factor, noise_offset }, pos, ctx) => {\n\t\tconst factor = Math.max(1, noise_factor)\n\t\tconst noise = ctx.biomeInfoNoise.sample(pos[0] / factor, 0, pos[2] / factor)\n\t\tconst count = Math.max(0, Math.ceil((noise + (noise_offset ?? 0)) * noise_to_count_ratio))\n\t\treturn new Array(count).fill(pos)\n\t},\n\tnoise_threshold_count: ({ noise_level, below_noise, above_noise }, pos, ctx) => {\n\t\tconst noise = ctx.biomeInfoNoise.sample(pos[0] / 200, 0, pos[2] / 200)\n\t\tconst count = noise < noise_level ? below_noise : above_noise\n\t\treturn new Array(count).fill(pos)\n\t},\n\trandom_offset: ({ xz_spread, y_spread }, pos, ctx) => {\n\t\treturn [[\n\t\t\tpos[0] + ctx.sampleInt(xz_spread),\n\t\t\tpos[1] + ctx.sampleInt(y_spread),\n\t\t\tpos[2] + ctx.sampleInt(xz_spread),\n\t\t]]\n\t},\n\trarity_filter: ({ chance }, pos, ctx) => {\n\t\treturn ctx.nextFloat() < 1 / (chance ?? 1) ? [pos] : []\n\t},\n}\n","import { DataModel } from '@mcschema/core'\nimport { NoiseParameters, NormalNoise, XoroshiroRandom } from 'deepslate/worldgen'\nimport type { VersionId } from '../services/index.js'\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 = XoroshiroRandom.create(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 { DataModel, Path } from '@mcschema/core'\nimport { useEffect, useRef, useState } from 'preact/hooks'\nimport { useLocale, useProject, useStore } from '../../contexts/index.js'\nimport { useCanvas } from '../../hooks/index.js'\nimport { biomeMap, getBiome } from '../../previews/index.js'\nimport { randomSeed } from '../../Utils.js'\nimport { Btn, BtnMenu, NumberInput } from '../index.js'\nimport type { PreviewProps } from './index.js'\n\nexport const BiomeSourcePreview = ({ model, data, shown, version }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst { project } = useProject()\n\tconst [seed, setSeed] = useState(randomSeed())\n\tconst [scale, setScale] = useState(2)\n\tconst [yOffset, setYOffset] = useState(64)\n\tconst [focused, setFocused] = useState<{[k: string]: number | string} | undefined>(undefined)\n\tconst { biomeColors } = useStore()\n\tconst offset = useRef<[number, number]>([0, 0])\n\tconst res = useRef(1)\n\tconst refineTimeout = useRef<number>()\n\n\tconst settings = DataModel.unwrapLists(model.get(new Path(['generator', 'settings'])))\n\tconst state = JSON.stringify([data, settings])\n\tconst type: string = data.type?.replace(/^minecraft:/, '')\n\tconst hasRandomness = type === 'multi_noise' || type === 'the_end'\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 = { settings, biomeColors, offset: offset.current, scale, seed, res: res.current, version, project, y: yOffset }\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 = hasRandomness ? 4 : 1\n\t\t\tredraw()\n\t\t},\n\t\tasync onHover(x, y) {\n\t\t\tconst options = { settings, biomeColors, offset: offset.current, scale, seed: seed, res: 1, version, project, y: yOffset }\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}, [version, state, scale, seed, yOffset, biomeColors, project])\n\n\tuseEffect(() => {\n\t\tif (shown) {\n\t\t\tres.current = hasRandomness ? 4 : 1\n\t\t\tredraw()\n\t\t}\n\t}, [version, state, scale, seed, yOffset, shown, biomeColors, project])\n\n\tconst changeScale = (newScale: number) => {\n\t\tnewScale = Math.max(1, Math.round(newScale))\n\t\toffset.current[0] = offset.current[0] * scale / newScale\n\t\toffset.current[1] = offset.current[1] * scale / newScale\n\t\tsetScale(newScale)\n\t}\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t{focused && <Btn label={focused.biome as string} class=\"no-pointer\" />}\n\t\t\t<Btn icon=\"dash\" tooltip={locale('zoom_out')}\n\t\t\t\tonClick={() => changeScale(scale * 2)} />\n\t\t\t<Btn icon=\"plus\" tooltip={locale(Math.round(scale) <= 1 ? 'zoom_in_limit' : 'zoom_in')}\n\t\t\t\tdisabled={Math.round(scale) <= 1}\n\t\t\t\tonClick={() => changeScale(scale / 2)} />\n\t\t\t{hasRandomness && <>\n\t\t\t\t<BtnMenu icon=\"stack\">\n\t\t\t\t\t<div class=\"btn btn-input\" onClick={e => e.stopPropagation()}>\n\t\t\t\t\t\t<span>{locale('y')}</span>\n\t\t\t\t\t\t<NumberInput value={yOffset} onChange={setYOffset} />\n\t\t\t\t\t</div>\n\t\t\t\t</BtnMenu>\n\t\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\t\tonClick={() => setSeed(randomSeed())} />\n\t\t\t</>}\n\t\t</div>\n\t\t{focused?.temperature !== undefined && <div class=\"controls secondary-controls\">\n\t\t\t<Btn class=\"no-pointer\" label={Object.entries(focused)\n\t\t\t\t.filter(([k]) => k !== 'biome')\n\t\t\t\t.map(([k, v]) => `${k[0].toUpperCase()}: ${(v as number).toFixed(2)}`).join(' ')}/>\n\t\t</div>}\n\t\t<canvas ref={canvas} width=\"200\" height=\"200\"></canvas>\n\t</>\n}\n","import { useEffect, useState } from 'preact/hooks'\nimport { useLocale } from '../../contexts/index.js'\nimport { useCanvas } from '../../hooks/index.js'\nimport { decorator } from '../../previews/index.js'\nimport { randomSeed } from '../../Utils.js'\nimport { Btn } from '../index.js'\nimport type { PreviewProps } from './index.js'\n\nexport const DecoratorPreview = ({ data, version, shown }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [scale, setScale] = useState(4)\n\tconst [seed, setSeed] = useState(randomSeed())\n\n\tconst state = JSON.stringify(data)\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}, [version, state, seed])\n\n\tuseEffect(() => {\n\t\tif (shown) {\n\t\t\tredraw()\n\t\t}\n\t}, [version, state, scale, seed, shown])\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t<Btn icon=\"dash\" tooltip={locale('zoom_out')}\n\t\t\t\tonClick={() => setScale(Math.min(16, scale + 1))} />\n\t\t\t<Btn icon=\"plus\" tooltip={locale('zoom_in')}\n\t\t\t\tonClick={() => setScale(Math.max(1, scale - 1))} />\n\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\tonClick={() => setSeed(randomSeed())} />\n\t\t</div>\n\t\t<canvas ref={canvas} width=\"64\" height=\"64\"></canvas>\n\t</>\n}\n","import { useEffect, useRef, useState } from 'preact/hooks'\nimport { useLocale, useProject } from '../../contexts/index.js'\nimport { useCanvas } from '../../hooks/index.js'\nimport { densityFunction } from '../../previews/index.js'\nimport { randomSeed } from '../../Utils.js'\nimport { Btn, BtnMenu } from '../index.js'\nimport type { PreviewProps } from './index.js'\n\nexport const DensityFunctionPreview = ({ data, shown, version }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst { project } = useProject()\n\tconst [seed, setSeed] = useState(randomSeed())\n\tconst [autoScroll, setAutoScroll] = useState(false)\n\tconst [focused, setFocused] = useState<string | undefined>(undefined)\n\tconst offset = useRef(0)\n\tconst scrollInterval = useRef<number | undefined>(undefined)\n\tconst state = JSON.stringify([data])\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 = { offset: offset.current, width: img.width, seed, version, project }\n\t\t\tawait densityFunction(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(x, y) {\n\t\t\tconst worldX = Math.floor(x * size - offset.current)\n\t\t\tconst worldY = size - Math.max(1, Math.ceil(y * size)) + (data?.noise?.min_y ?? 0)\n\t\t\tsetFocused(`X=${worldX} Y=${worldY}`)\n\t\t},\n\t\tonLeave() {\n\t\t\tsetFocused(undefined)\n\t\t},\n\t}, [version, state, seed, project])\n\n\tuseEffect(() => {\n\t\tif (scrollInterval.current) {\n\t\t\tclearInterval(scrollInterval.current)\n\t\t}\n\t\tif (shown) {\n\t\t\tredraw()\n\t\t\tif (autoScroll) {\n\t\t\t\tscrollInterval.current = setInterval(() => {\n\t\t\t\t\toffset.current -= 8\n\t\t\t\t\tredraw()\n\t\t\t\t}, 100) as any\n\t\t\t}\n\t\t}\n\t}, [version, state, seed, project, shown, autoScroll])\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t{focused && <Btn label={focused} class=\"no-pointer\" />}\n\t\t\t<BtnMenu icon=\"gear\" tooltip={locale('terrain_settings')}>\n\t\t\t\t<Btn icon={autoScroll ? 'square_fill' : 'square'} label={locale('preview.auto_scroll')} onClick={() => setAutoScroll(!autoScroll)} />\n\t\t\t</BtnMenu>\n\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\tonClick={() => setSeed(randomSeed())} />\n\t\t</div>\n\t\t<canvas ref={canvas} width={size} height={size}></canvas>\n\t</>\n}\n","import { useEffect, useRef, useState } from 'preact/hooks'\nimport { useLocale } from '../../contexts/index.js'\nimport { useCanvas } from '../../hooks/index.js'\nimport { normalNoise } from '../../previews/index.js'\nimport { randomSeed } from '../../Utils.js'\nimport { Btn } from '../index.js'\nimport type { PreviewProps } from './index.js'\n\nexport const NoisePreview = ({ data, shown, version }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [seed, setSeed] = useState(randomSeed())\n\tconst [scale, setScale] = useState(2)\n\tconst offset = useRef<[number, number]>([0, 0])\n\tconst state = JSON.stringify([data])\n\n\tconst { canvas, redraw } = useCanvas({\n\t\tsize() {\n\t\t\treturn [256, 256]\n\t\t},\n\t\tasync draw(img) {\n\t\t\tconst options = { offset: offset.current, scale, seed, version }\n\t\t\tnormalNoise(data, img, options)\n\t\t},\n\t\tasync onDrag(dx, dy) {\n\t\t\toffset.current[0] = offset.current[0] + dx * 256\n\t\t\toffset.current[1] = offset.current[1] + dy * 256\n\t\t\tredraw()\n\t\t},\n\t}, [version, state, scale, seed])\n\n\tuseEffect(() => {\n\t\tif (shown) {\n\t\t\tredraw()\n\t\t}\n\t}, [version, state, scale, seed, shown])\n\n\tconst changeScale = (newScale: number) => {\n\t\toffset.current[0] = offset.current[0] * scale / newScale\n\t\toffset.current[1] = offset.current[1] * scale / newScale\n\t\tsetScale(newScale)\n\t}\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t<Btn icon=\"dash\" tooltip={locale('zoom_out')}\n\t\t\t\tonClick={() => changeScale(scale * 1.5)} />\n\t\t\t<Btn icon=\"plus\" tooltip={locale('zoom_in')}\n\t\t\t\tonClick={() => changeScale(scale / 1.5)} />\n\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\tonClick={() => setSeed(randomSeed())} />\n\t\t</div>\n\t\t<canvas ref={canvas} width=\"256\" height=\"256\"></canvas>\n\t</>\n}\n","import { useEffect, useMemo, useRef, useState } from 'preact/hooks'\nimport { useLocale, useProject } from '../../contexts/index.js'\nimport { useCanvas } from '../../hooks/index.js'\nimport { getNoiseBlock, noiseSettings } from '../../previews/index.js'\nimport { CachedCollections, checkVersion } from '../../services/index.js'\nimport { randomSeed } from '../../Utils.js'\nimport { Btn, BtnInput, BtnMenu } from '../index.js'\nimport type { PreviewProps } from './index.js'\n\nexport const NoiseSettingsPreview = ({ data, shown, version }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst { project } = useProject()\n\tconst [seed, setSeed] = useState(randomSeed())\n\tconst [biome, setBiome] = useState('minecraft:plains')\n\tconst [biomeScale, setBiomeScale] = useState(0.2)\n\tconst [biomeDepth, setBiomeDepth] = useState(0.1)\n\tconst [autoScroll, setAutoScroll] = useState(false)\n\tconst [focused, setFocused] = useState<string | undefined>(undefined)\n\tconst offset = useRef(0)\n\tconst scrollInterval = useRef<number | undefined>(undefined)\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 = { biome, biomeDepth, biomeScale, offset: offset.current, width: img.width, seed, version, project }\n\t\t\tawait noiseSettings(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(x, y) {\n\t\t\tconst worldX = Math.floor(x * size - offset.current)\n\t\t\tconst worldY = size - Math.max(1, Math.ceil(y * size)) + (data?.noise?.min_y ?? 0)\n\t\t\tconst block = getNoiseBlock(worldX, worldY)\n\t\t\tsetFocused(block ? `Y=${worldY} (${block.getName().path})` : `Y=${worldY}`)\n\t\t},\n\t\tonLeave() {\n\t\t\tsetFocused(undefined)\n\t\t},\n\t}, [state, seed, project])\n\n\tuseEffect(() => {\n\t\tif (scrollInterval.current) {\n\t\t\tclearInterval(scrollInterval.current)\n\t\t}\n\t\tif (shown) {\n\t\t\t(async () => {\n\t\t\t\ttry {\n\t\t\t\t\tawait redraw()\n\t\t\t\t\tif (autoScroll) {\n\t\t\t\t\t\tscrollInterval.current = setInterval(() => {\n\t\t\t\t\t\t\toffset.current -= 8\n\t\t\t\t\t\t\tredraw()\n\t\t\t\t\t\t}, 100) as any\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\tthrow e\n\t\t\t\t}\n\t\t\t})()\n\t\t}\n\t}, [version, state, seed, project, shown, biome, biomeScale, biomeDepth, autoScroll])\n\n\tconst allBiomes = useMemo(() => CachedCollections?.get('worldgen/biome') ?? [], [version])\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t{focused && <Btn label={focused} class=\"no-pointer\" />}\n\t\t\t<BtnMenu icon=\"gear\" tooltip={locale('terrain_settings')}>\n\t\t\t\t{checkVersion(version, undefined, '1.17') ? <>\n\t\t\t\t\t<BtnInput label={locale('preview.scale')} value={`${biomeScale}`} onChange={v => setBiomeScale(Number(v))} />\n\t\t\t\t\t<BtnInput label={locale('preview.depth')} value={`${biomeDepth}`} onChange={v => setBiomeDepth(Number(v))} />\n\t\t\t\t</> :\n\t\t\t\t\t<BtnInput label={locale('preview.biome')} value={biome} onChange={setBiome} dataList={allBiomes} larger />\n\t\t\t\t}\n\t\t\t\t<Btn icon={autoScroll ? 'square_fill' : 'square'} label={locale('preview.auto_scroll')} onClick={() => setAutoScroll(!autoScroll)} />\n\t\t\t</BtnMenu>\n\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\tonClick={() => setSeed(randomSeed())} />\n\t\t</div>\n\t\t<canvas ref={canvas} width={size} height={size}></canvas>\n\t</>\n}\n","import type { Random } from 'deepslate'\nimport { LegacyRandom } from 'deepslate'\nimport type { VersionId } from '../services/Schemas.js'\nimport { clamp, deepClone, getWeightedRandom, isObject } from '../Utils.js'\n\nexport interface Item {\n\tid: string,\n\tcount: number,\n\ttag?: any,\n}\n\nexport interface SlottedItem {\n\tslot: number,\n\titem: Item,\n}\n\ntype ItemConsumer = (item: Item) => void\n\nconst StackMixers = {\n\tcontainer: fillContainer,\n\tdefault: assignSlots,\n}\n\ntype StackMixer = keyof typeof StackMixers\n\ninterface LootOptions {\n\tversion: VersionId,\n\tseed: bigint,\n\tluck: number,\n\tdaytime: number,\n\tweather: string,\n\tstackMixer: StackMixer,\n}\n\ninterface LootContext extends LootOptions {\n\trandom: Random,\n\tluck: number\n\tweather: string,\n\tdayTime: number,\n\tgetItemTag(id: string): string[],\n\tgetLootTable(id: string): any,\n\tgetPredicate(id: string): any,\n}\n\nexport function generateLootTable(lootTable: any, options: LootOptions) {\n\tconst ctx = createLootContext(options)\n\tconst result: Item[] = []\n\tgenerateTable(lootTable, item => result.push(item), ctx)\n\tconst mixer = StackMixers[options.stackMixer]\n\treturn mixer(result, ctx)\n}\n\nconst SLOT_COUNT = 27\n\nfunction fillContainer(items: Item[], ctx: LootContext): SlottedItem[] {\n\tconst slots = shuffle([...Array(SLOT_COUNT)].map((_, i) => i), ctx)\n\t\n\tconst queue = items.filter(i => i.id !== 'minecraft:air' && i.count > 1)\n\titems = items.filter(i => i.id !== 'minecraft:air' && i.count === 1)\n\n\twhile (SLOT_COUNT - items.length - queue.length > 0 && queue.length > 0) { \n\t\tconst [itemA] = queue.splice(ctx.random.nextInt(queue.length), 1)\n\t\tconst splitCount = ctx.random.nextInt(Math.floor(itemA.count / 2)) + 1\n\t\tconst itemB = splitItem(itemA, splitCount)\n\n\t\tfor (const item of [itemA, itemB]) {\n\t\t\tif (item.count > 1 && ctx.random.nextFloat() < 0.5) {\n\t\t\t\tqueue.push(item)\n\t\t\t} else {\n\t\t\t\titems.push(item)\n\t\t\t}\n\t\t}\n\t}\n\n\titems.push(...queue)\n\tshuffle(items, ctx)\n\n\tconst results: SlottedItem[] = []\n\tfor (const item of items) {\n\t\tconst slot = slots.pop()\n\t\tif (slot === undefined) {\n\t\t\tbreak\n\t\t}\n\t\tif (item.id !== 'minecraft:air' && item.count > 0) {\n\t\t\tresults.push({ slot, item })\n\t\t}\n\t}\n\treturn results\n}\n\nfunction assignSlots(items: Item[]): SlottedItem[] {\n\treturn items.map((item, i) => ({ slot: i, item }))\n}\n\nfunction splitItem(item: Item, count: number): Item {\n\tconst splitCount = Math.min(count, item.count)\n\tconst other = deepClone(item)\n\tother.count = splitCount\n\titem.count = item.count - splitCount\n\treturn other\n}\n\nfunction shuffle<T>(array: T[], ctx: LootContext) {\n\tlet i = array.length\n\twhile (i > 0) {\n\t\tconst j = ctx.random.nextInt(i)\n\t\ti -= 1;\n\t\t[array[i], array[j]] = [array[j], array[i]]\n\t}\n\treturn array\n}\n\nfunction generateTable(table: any, consumer: ItemConsumer, ctx: LootContext) {\n\tconst tableConsumer = decorateFunctions(table.functions ?? [], consumer, ctx)\n\tfor (const pool of table.pools ?? []) {\n\t\tgeneratePool(pool, tableConsumer, ctx)\n\t}\n}\n\nfunction createLootContext(options: LootOptions): LootContext {\n\treturn {\n\t\t...options,\n\t\trandom: new LegacyRandom(options.seed),\n\t\tluck: options.luck,\n\t\tweather: options.weather,\n\t\tdayTime: options.daytime,\n\t\tgetItemTag: () => [],\n\t\tgetLootTable: () => ({ pools: [] }),\n\t\tgetPredicate: () => [],\n\t}\n}\n\nfunction generatePool(pool: any, consumer: ItemConsumer, ctx: LootContext) {\n\tif (composeConditions(pool.conditions ?? [])(ctx)) {\n\t\tconst poolConsumer = decorateFunctions(pool.functions ?? [], consumer, ctx)\n\n\t\tconst rolls = computeInt(pool.rolls, ctx) + Math.floor(computeFloat(pool.bonus_rolls, ctx) * ctx.luck)\n\t\tfor (let i = 0; i < rolls; i += 1) {\n\t\t\tlet totalWeight = 0\n\t\t\tconst entries: any[] = []\n\n\t\t\t// Expand entries\n\t\t\tfor (const entry of pool.entries ?? []) {\n\t\t\t\texpandEntry(entry, ctx, (e) => {\n\t\t\t\t\tconst weight = computeWeight(e, ctx.luck)\n\t\t\t\t\tif (weight > 0) {\n\t\t\t\t\t\tentries.push(e)\n\t\t\t\t\t\ttotalWeight += weight\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\n\t\t\t// Select random entry\n\t\t\tif (totalWeight === 0 || entries.length === 0) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif (entries.length === 1) {\n\t\t\t\tcreateItem(entries[0], poolConsumer, ctx)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tlet remainingWeight = ctx.random.nextInt(totalWeight)\n\t\t\tfor (const entry of entries) {\n\t\t\t\tremainingWeight -= computeWeight(entry, ctx.luck)\n\t\t\t\tif (remainingWeight < 0) {\n\t\t\t\t\tcreateItem(entry, poolConsumer, ctx)\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction expandEntry(entry: any, ctx: LootContext, consumer: (entry: any) => void): boolean {\n\tif (!canEntryRun(entry, ctx)) {\n\t\treturn false\n\t}\n\tconst type = entry.type?.replace(/^minecraft:/, '')\n\tswitch (type) {\n\t\tcase 'group':\n\t\t\tfor (const child of entry.children ?? []) {\n\t\t\t\texpandEntry(child, ctx, consumer)\n\t\t\t}\n\t\t\treturn true\n\t\tcase 'alternatives':\n\t\t\tfor (const child of entry.children ?? []) {\n\t\t\t\tif (expandEntry(child, ctx, consumer)) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false\n\t\tcase 'sequence':\n\t\t\tfor (const child of entry.children ?? []) {\n\t\t\t\tif (!expandEntry(child, ctx, consumer)) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true\n\t\tcase 'tag':\n\t\t\tif (entry.expand) {\n\t\t\t\tctx.getItemTag(entry.tag ?? '').forEach(tagEntry => {\n\t\t\t\t\tconsumer({ type: 'item', name: tagEntry })\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\tconsumer(entry)\n\t\t\t}\n\t\t\treturn true\n\t\tdefault:\n\t\t\tconsumer(entry)\n\t\t\treturn true\n\t}\n}\n\nfunction canEntryRun(entry: any, ctx: LootContext): boolean {\n\treturn composeConditions(entry.conditions ?? [])(ctx)\n}\n\nfunction createItem(entry: any, consumer: ItemConsumer, ctx: LootContext) {\n\tconst entryConsumer = decorateFunctions(entry.functions ?? [], consumer, ctx)\n\n\tconst type = entry.type?.replace(/^minecraft:/, '')\n\tswitch (type) {\n\t\tcase 'item':\n\t\t\tentryConsumer({ id: entry.name, count: 1 })\n\t\t\tbreak\n\t\tcase 'tag':\n\t\t\tctx.getItemTag(entry.name ?? '').forEach(tagEntry => {\n\t\t\t\tentryConsumer({ id: tagEntry, count: 1 })\n\t\t\t})\n\t\t\tbreak\n\t\tcase 'loot_table':\n\t\t\tgenerateTable(ctx.getLootTable(entry.name), entryConsumer, ctx)\n\t\t\tbreak\n\t\tcase 'dynamic':\n\t\t\t// not relevant for this simulation\n\t\t\tbreak\n\t}\n}\n\nfunction computeWeight(entry: any, luck: number) {\n\treturn Math.max(Math.floor((entry.weight ?? 1) + (entry.quality ?? 0) * luck), 0)\n}\n\ntype LootFunction = (item: Item, ctx: LootContext) => void\n\nfunction decorateFunctions(functions: any[], consumer: ItemConsumer, ctx: LootContext): ItemConsumer {\n\tconst compositeFunction = composeFunctions(functions)\n\treturn (item) => {\n\t\tcompositeFunction(item, ctx)\n\t\tconsumer(item)\n\t}\n}\n\nfunction composeFunctions(functions: any[]): LootFunction {\n\treturn (item, ctx) => {\n\t\tfor (const fn of functions) {\n\t\t\tif (composeConditions(fn.conditions ?? [])(ctx)) {\n\t\t\t\tconst type = fn.function?.replace(/^minecraft:/, '');\n\t\t\t\t(LootFunctions[type]?.(fn) ?? (i => i))(item, ctx)\n\t\t\t}\n\t\t}\n\t}\n}\n\nconst LootFunctions: Record<string, (params: any) => LootFunction> = {\n\tenchant_randomly: ({ enchantments }) => (item, ctx) => {\n\t\tconst isBook = item.id === 'minecraft:book'\n\t\tif (enchantments === undefined || enchantments.length === 0) {\n\t\t\tenchantments = [...Enchantments.keys()]\n\t\t\t\t.filter(e => {\n\t\t\t\t\tconst data = getEnchantmentData(e)\n\t\t\t\t\treturn data.discoverable && (isBook || data.canEnchant(item.id))\n\t\t\t\t})\n\t\t}\n\t\tconst id = enchantments[ctx.random.nextInt(enchantments.length)]\n\t\tconst data = getEnchantmentData(id)\n\t\tconst lvl = ctx.random.nextInt(data.maxLevel - data.minLevel + 1) + data.minLevel\n\t\tenchantItem(item, { id, lvl })\n\t},\n\tenchant_with_levels: ({ levels, treasure }) => (item, ctx) => {\n\t\tconst enchants = selectEnchantments(ctx.random, item, computeInt(levels, ctx), treasure)\n\t\tconst isBook = item.id === 'minecraft:book'\n\t\tif (isBook) {\n\t\t\titem.id = 'minecraft:enchanted_book'\n\t\t\titem.count = 1\n\t\t\titem.tag = {}\n\t\t}\n\t\tfor (const enchant of enchants) {\n\t\t\tenchantItem(item, enchant)\n\t\t}\n\t},\n\tlimit_count: ({ limit }) => (item, ctx) => {\n\t\tconst { min, max } = prepareIntRange(limit, ctx)\n\t\titem.count = clamp(item.count, min, max )\n\t},\n\tset_count: ({ count }) => (item, ctx) => {\n\t\titem.count = computeInt(count, ctx)\n\t},\n\tset_damage: ({ damage, add }) => (item, ctx) => {\n\t\tconst maxDamage = MaxDamageItems.get(item.id)\n\t\tif (maxDamage) {\n\t\t\tconst oldDamage = add ? 1 - (item.tag?.Damage ?? 0) / maxDamage : 0\n\t\t\tconst newDamage = 1 - clamp(computeFloat(damage, ctx) + oldDamage, 0, 1)\n\t\t\tconst finalDamage = Math.floor(newDamage * maxDamage)\n\t\t\titem.tag = { ...item.tag, Damage: finalDamage }\n\t\t}\n\t},\n\tset_enchantments: ({ enchantments, add }) => (item, ctx) => {\n\t\tObject.entries(enchantments).forEach(([id, level]) => {\n\t\t\tconst lvl = computeInt(level, ctx)\n\t\t\tenchantItem(item, { id, lvl }, add)\n\t\t})\n\t},\n\tset_lore: ({ lore, replace }) => (item) => {\n\t\tconst lines = lore.map((line: any) => JSON.stringify(line))\n\t\tconst newLore = replace ? lines : [...(item.tag?.display?.Lore ?? []), ...lines]\n\t\titem.tag = { ...item.tag, display: { ...item.tag?.display, Lore: newLore } }\n\t},\n\tset_name: ({ name }) => (item) => {\n\t\tconst newName = JSON.stringify(name)\n\t\titem.tag = { ...item.tag, display: { ...item.tag?.display, Name: newName } }\n\t},\n}\n\ntype LootCondition = (ctx: LootContext) => boolean\n\nfunction composeConditions(conditions: any[]): LootCondition {\n\treturn (ctx) => {\n\t\tfor (const cond of conditions) {\n\t\t\tif (!testCondition(cond, ctx)) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\t}\n}\n\nfunction testCondition(condition: any, ctx: LootContext): boolean {\n\tconst type = condition.condition?.replace(/^minecraft:/, '')\n\treturn (LootConditions[type]?.(condition) ?? (() => true))(ctx)\n}\n\nconst LootConditions: Record<string, (params: any) => LootCondition> = {\n\talternative: ({ terms }) => (ctx) => {\n\t\tfor (const term of terms) {\n\t\t\tif (testCondition(term, ctx)) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\treturn false\n\t},\n\tblock_state_property: () => () => {\n\t\treturn false // TODO\n\t},\n\tdamage_source_properties: ({ predicate }) => (ctx) => {\n\t\treturn testDamageSourcePredicate(predicate, ctx)\n\t},\n\tentity_properties: ({ predicate }) => (ctx) => {\n\t\treturn testEntityPredicate(predicate, ctx)\n\t},\n\tentity_scores: () => () => {\n\t\treturn false // TODO,\n\t},\n\tinverted: ({ term }) => (ctx) => {\n\t\treturn !testCondition(term, ctx)\n\t},\n\tkilled_by_player: ({ inverted }) => () => {\n\t\treturn (inverted ?? false) === false // TODO\n\t},\n\tlocation_check: ({ predicate }) => (ctx) => {\n\t\treturn testLocationPredicate(predicate, ctx)\n\t},\n\tmatch_tool: ({ predicate }) => (ctx) => {\n\t\treturn testItemPredicate(predicate, ctx)\n\t},\n\trandom_chance: ({ chance }) => (ctx) => {\n\t\treturn ctx.random.nextFloat() < chance\n\t},\n\trandom_chance_with_looting: ({ chance, looting_multiplier }) => (ctx) => {\n\t\tconst level = 0 // TODO: get looting level from killer\n\t\tconst probability = chance + level * looting_multiplier\n\t\treturn ctx.random.nextFloat() < probability\n\n\t},\n\treference: ({ name }) => (ctx) => {\n\t\tconst predicate = ctx.getPredicate(name) ?? []\n\t\tif (Array.isArray(predicate)) {\n\t\t\treturn composeConditions(predicate)(ctx)\n\t\t}\n\t\treturn testCondition(predicate, ctx)\n\t},\n\tsurvives_explosion: () => () => true,\n\ttable_bonus: ({ chances }) => (ctx) => {\n\t\tconst level = 0 // TODO: get enchantment level from tool\n\t\tconst chance = chances[clamp(level, 0, chances.length - 1)]\n\t\treturn ctx.random.nextFloat() < chance\n\t},\n\ttime_check: ({ value, period }) => (ctx) => {\n\t\tlet time = ctx.dayTime\n\t\tif (period !== undefined) {\n\t\t\ttime = time % period\n\t\t}\n\t\tconst { min, max } = prepareIntRange(value, ctx)\n\t\treturn min <= time && time <= max\n\t},\n\tvalue_check: () => () => {\n\t\treturn false // TODO\n\t},\n\tweather_check: ({ raining, thundering }) => (ctx) => {\n\t\tconst isRaining = ctx.weather === 'rain' || ctx.weather === 'thunder'\n\t\tconst isThundering = ctx.weather === 'thunder'\n\t\tif (raining !== undefined && raining !== isRaining) return false\n\t\tif (thundering !== undefined && thundering !== isThundering) return false\n\t\treturn true\n\t},\n}\n\nfunction computeInt(provider: any, ctx: LootContext): number {\n\tif (typeof provider === 'number') return provider\n\tif (!isObject(provider)) return 0\n\n\tconst type = provider.type?.replace(/^minecraft:/, '') ?? 'uniform'\n\tswitch (type) {\n\t\tcase 'constant':\n\t\t\treturn Math.round(provider.value ?? 0)\n\t\tcase 'uniform':\n\t\t\tconst min = computeInt(provider.min, ctx)\n\t\t\tconst max = computeInt(provider.max, ctx)\n\t\t\treturn max < min ? min : ctx.random.nextInt(max - min + 1) + min\n\t\tcase 'binomial':\n\t\t\tconst n = computeInt(provider.n, ctx)\n\t\t\tconst p = computeFloat(provider.p, ctx)\n\t\t\tlet result = 0\n\t\t\tfor (let i = 0; i < n; i += 1) {\n\t\t\t\tif (ctx.random.nextFloat() < p) {\n\t\t\t\t\tresult += 1\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn result \n\t}\n\treturn 0\n}\n\nfunction computeFloat(provider: any, ctx: LootContext): number {\n\tif (typeof provider === 'number') return provider\n\tif (!isObject(provider)) return 0\n\n\tconst type = provider.type?.replace(/^minecraft:/, '') ?? 'uniform'\n\tswitch (type) {\n\t\tcase 'constant':\n\t\t\treturn provider.value ?? 0\n\t\tcase 'uniform':\n\t\t\tconst min = computeFloat(provider.min, ctx)\n\t\t\tconst max = computeFloat(provider.max, ctx)\n\t\t\treturn max < min ? min : ctx.random.nextFloat() * (max-min) + min\n\t\tcase 'binomial':\n\t\t\tconst n = computeInt(provider.n, ctx)\n\t\t\tconst p = computeFloat(provider.p, ctx)\n\t\t\tlet result = 0\n\t\t\tfor (let i = 0; i < n; i += 1) {\n\t\t\t\tif (ctx.random.nextFloat() < p) {\n\t\t\t\t\tresult += 1\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn result \n\t}\n\treturn 0\n}\n\nfunction prepareIntRange(range: any, ctx: LootContext) {\n\tif (typeof range === 'number') {\n\t\trange = { min: range, max: range }\n\t}\n\tconst min = computeInt(range.min, ctx)\n\tconst max = computeInt(range.max, ctx)\n\treturn { min, max }\n}\n\nfunction testItemPredicate(_predicate: any, _ctx: LootContext) {\n\treturn false // TODO\n}\n\nfunction testLocationPredicate(_predicate: any, _ctx: LootContext) {\n\treturn false // TODO\n}\n\nfunction testEntityPredicate(_predicate: any, _ctx: LootContext) {\n\treturn false // TODO\n}\n\nfunction testDamageSourcePredicate(_predicate: any, _ctx: LootContext) {\n\treturn false // TODO\n}\n\nfunction enchantItem(item: Item, enchant: Enchant, additive?: boolean) {\n\tif (!item.tag) {\n\t\titem.tag = {}\n\t}\n\tconst listKey = (item.id === 'minecraft:book') ? 'StoredEnchantments' : 'Enchantments'\n\tif (!item.tag[listKey] || !Array.isArray(item.tag[listKey])) {\n\t\titem.tag[listKey] = []\n\t}\n\tconst enchantments = item.tag[listKey] as any[]\n\tlet index = enchantments.findIndex((e: any) => e.id === enchant.id)\n\tif (index !== -1) {\n\t\tconst oldEnch = enchantments[index]\n\t\toldEnch.lvl = Math.max(additive ? oldEnch.lvl + enchant.lvl : enchant.lvl, 0)\n\t} else {\n\t\tenchantments.push(enchant)\n\t\tindex = enchantments.length - 1\n\t}\n\tif (enchantments[index].lvl === 0) {\n\t\tenchantments.splice(index, 1)\n\t}\n}\n\nfunction selectEnchantments(random: Random, item: Item, levels: number, treasure: boolean): Enchant[] {\n\tconst enchantmentValue = EnchantmentItems.get(item.id) ?? 0\n\tif (enchantmentValue <= 0) {\n\t\treturn []\n\t}\n\tlevels += 1 + random.nextInt(Math.floor(enchantmentValue / 4 + 1)) + random.nextInt(Math.floor(enchantmentValue / 4 + 1))\n\tconst f = (random.nextFloat() + random.nextFloat() - 1) * 0.15\n\tlevels = clamp(Math.round(levels + levels * f), 1, Number.MAX_SAFE_INTEGER)\n\tlet available = getAvailableEnchantments(item, levels, treasure)\n\tif (available.length === 0) {\n\t\treturn []\n\t}\n\tconst result = []\n\tconst first = getWeightedRandom(random, available, getEnchantWeight)\n\tif (first) result.push(first)\n\n\twhile (random.nextInt(50) <= levels) {\n\t\tif (result.length > 0) {\n\t\t\tconst lastAdded = result[result.length - 1]\n\t\t\tavailable = available.filter(a => isEnchantCompatible(a.id, lastAdded.id))\n\t\t}\n\t\tif (available.length === 0) break\n\t\tconst ench = getWeightedRandom(random, available, getEnchantWeight)\n\t\tif (ench) result.push(ench)\n\t\tlevels = Math.floor(levels / 2)\n\t}\n\n\treturn result\n}\n\nfunction getEnchantWeight(ench: Enchant) {\n\treturn EnchantmentsRarityWeights.get(getEnchantmentData(ench.id)?.rarity ?? 'common') ?? 0\n}\n\nfunction getAvailableEnchantments(item: Item, levels: number, treasure: boolean): Enchant[] {\n\tconst result = []\n\tconst isBook = item.id === 'minecraft:book'\n\n\tfor (const id of Enchantments.keys()) {\n\t\tconst ench = getEnchantmentData(id)!\n\t\tif ((!ench.treasure || treasure) && ench.discoverable && (ench.canEnchant(item.id) || isBook)) {\n\t\t\tfor (let lvl = ench.maxLevel; lvl > ench.minLevel - 1; lvl -= 1) {\n\t\t\t\tif (levels >= ench.minCost(lvl) && levels <= ench.maxCost(lvl)) {\n\t\t\t\t\tresult.push({ id, lvl })\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn result\n}\n\ninterface Enchant {\n\tid: string,\n\tlvl: number,\n}\n\nfunction isEnchantCompatible(a: string, b: string) {\n\treturn a !== b && isEnchantCompatibleRaw(a, b) && isEnchantCompatibleRaw(b, a)\n}\n\nfunction isEnchantCompatibleRaw(a: string, b: string) {\n\tconst ench = getEnchantmentData(a)\n\treturn ench?.isCompatible(b)\n}\n\nexport const MaxDamageItems = new Map(Object.entries<number>({\n\t'minecraft:carrot_on_a_stick': 25,\n\t'minecraft:warped_fungus_on_a_stick': 100,\n\t'minecraft:flint_and_steel': 64,\n\t'minecraft:elytra': 432,\n\t'minecraft:bow': 384,\n\t'minecraft:fishing_rod': 64,\n\t'minecraft:shears': 238,\n\t'minecraft:shield': 336,\n\t'minecraft:trident': 250,\n\t'minecraft:crossbow': 465,\n\n\t'minecraft:leather_helmet': 11 * 5,\n\t'minecraft:leather_chestplate': 16 * 5,\n\t'minecraft:leather_leggings': 15 * 5,\n\t'minecraft:leather_boots': 13 * 5,\n\t'minecraft:chainmail_helmet': 11 * 15,\n\t'minecraft:chainmail_chestplate': 16 * 15,\n\t'minecraft:chainmail_leggings': 15 * 15,\n\t'minecraft:chainmail_boots': 13 * 15,\n\t'minecraft:iron_helmet': 11 * 15,\n\t'minecraft:iron_chestplate': 16 * 15,\n\t'minecraft:iron_leggings': 15 * 15,\n\t'minecraft:iron_boots': 13 * 15,\n\t'minecraft:diamond_helmet': 11 * 33,\n\t'minecraft:diamond_chestplate': 16 * 33,\n\t'minecraft:diamond_leggings': 15 * 33,\n\t'minecraft:diamond_boots': 13 * 33,\n\t'minecraft:golden_helmet': 11 * 7,\n\t'minecraft:golden_chestplate': 16 * 7,\n\t'minecraft:golden_leggings': 15 * 7,\n\t'minecraft:golden_boots': 13 * 7,\n\t'minecraft:netherite_helmet': 11 * 37,\n\t'minecraft:netherite_chestplate': 16 * 37,\n\t'minecraft:netherite_leggings': 15 * 37,\n\t'minecraft:netherite_boots': 13 * 37,\n\t'minecraft:turtle_helmet': 11 * 25,\n\n\t'minecraft:wooden_sword': 59,\n\t'minecraft:wooden_shovel': 59,\n\t'minecraft:wooden_pickaxe': 59,\n\t'minecraft:wooden_axe': 59,\n\t'minecraft:wooden_hoe': 59,\n\t'minecraft:stone_sword': 131,\n\t'minecraft:stone_shovel': 131,\n\t'minecraft:stone_pickaxe': 131,\n\t'minecraft:stone_axe': 131,\n\t'minecraft:stone_hoe': 131,\n\t'minecraft:iron_sword': 250,\n\t'minecraft:iron_shovel': 250,\n\t'minecraft:iron_pickaxe': 250,\n\t'minecraft:iron_axe': 250,\n\t'minecraft:iron_hoe': 250,\n\t'minecraft:diamond_sword': 1561,\n\t'minecraft:diamond_shovel': 1561,\n\t'minecraft:diamond_pickaxe': 1561,\n\t'minecraft:diamond_axe': 1561,\n\t'minecraft:diamond_hoe': 1561,\n\t'minecraft:gold_sword': 32,\n\t'minecraft:gold_shovel': 32,\n\t'minecraft:gold_pickaxe': 32,\n\t'minecraft:gold_axe': 32,\n\t'minecraft:gold_hoe': 32,\n\t'minecraft:netherite_sword': 2031,\n\t'minecraft:netherite_shovel': 2031,\n\t'minecraft:netherite_pickaxe': 2031,\n\t'minecraft:netherite_axe': 2031,\n\t'minecraft:netherite_hoe': 2031,\n}))\n\nconst EnchantmentItems = new Map(Object.entries<number>({\n\t'minecraft:book': 1,\n\t'minecraft:fishing_rod': 1,\n\t'minecraft:trident': 1,\n\t'minecraft:bow': 1,\n\t'minecraft:crossbow': 1,\n\n\t'minecraft:leather_helmet': 15,\n\t'minecraft:leather_chestplate': 15,\n\t'minecraft:leather_leggings': 15,\n\t'minecraft:leather_boots': 15,\n\t'minecraft:chainmail_helmet': 12,\n\t'minecraft:chainmail_chestplate': 12,\n\t'minecraft:chainmail_leggings': 12,\n\t'minecraft:chainmail_boots': 12,\n\t'minecraft:iron_helmet': 9,\n\t'minecraft:iron_chestplate': 9,\n\t'minecraft:iron_leggings': 9,\n\t'minecraft:iron_boots': 9,\n\t'minecraft:diamond_helmet': 10,\n\t'minecraft:diamond_chestplate': 10,\n\t'minecraft:diamond_leggings': 10,\n\t'minecraft:diamond_boots': 10,\n\t'minecraft:golden_helmet': 25,\n\t'minecraft:golden_chestplate': 25,\n\t'minecraft:golden_leggings': 25,\n\t'minecraft:golden_boots': 25,\n\t'minecraft:netherite_helmet': 15,\n\t'minecraft:netherite_chestplate': 15,\n\t'minecraft:netherite_leggings': 15,\n\t'minecraft:netherite_boots': 15,\n\t'minecraft:turtle_helmet': 15,\n\n\t'minecraft:wooden_sword': 15,\n\t'minecraft:wooden_shovel': 15,\n\t'minecraft:wooden_pickaxe': 15,\n\t'minecraft:wooden_axe': 15,\n\t'minecraft:wooden_hoe': 15,\n\t'minecraft:stone_sword': 5,\n\t'minecraft:stone_shovel': 5,\n\t'minecraft:stone_pickaxe': 5,\n\t'minecraft:stone_axe': 5,\n\t'minecraft:stone_hoe': 5,\n\t'minecraft:iron_sword': 14,\n\t'minecraft:iron_shovel': 14,\n\t'minecraft:iron_pickaxe': 14,\n\t'minecraft:iron_axe': 14,\n\t'minecraft:iron_hoe': 14,\n\t'minecraft:diamond_sword': 10,\n\t'minecraft:diamond_shovel': 10,\n\t'minecraft:diamond_pickaxe': 10,\n\t'minecraft:diamond_axe': 10,\n\t'minecraft:diamond_hoe': 10,\n\t'minecraft:gold_sword': 22,\n\t'minecraft:gold_shovel': 22,\n\t'minecraft:gold_pickaxe': 22,\n\t'minecraft:gold_axe': 22,\n\t'minecraft:gold_hoe': 22,\n\t'minecraft:netherite_sword': 15,\n\t'minecraft:netherite_shovel': 15,\n\t'minecraft:netherite_pickaxe': 15,\n\t'minecraft:netherite_axe': 15,\n\t'minecraft:netherite_hoe': 15,\n}))\n\ninterface EnchantmentData {\n\tid: string\n\trarity: 'common' | 'uncommon' | 'rare' | 'very_rare'\n\tcategory: 'armor' | 'armor_feet' | 'armor_legs' | 'armor_chest' | 'armor_head' | 'weapon' | 'digger' | 'fishing_rod' | 'trident' | 'breakable' | 'bow' | 'wearable' | 'crossbow' | 'vanishable'\n\tminLevel: number\n\tmaxLevel: number\n\tminCost: (lvl: number) => number\n\tmaxCost: (lvl: number) => number\n\tdiscoverable: boolean\n\ttreasure: boolean\n\tcurse: boolean\n\tcanEnchant: (id: string) => boolean\n\tisCompatible: (other: string) => boolean\n}\n\nexport function getEnchantmentData(id: string): EnchantmentData {\n\tconst data = Enchantments.get(id)\n\tconst category = data?.category ?? 'armor'\n\treturn {\n\t\tid,\n\t\trarity: data?.rarity ?? 'common',\n\t\tcategory,\n\t\tminLevel: data?.minLevel\t?? 1,\n\t\tmaxLevel: data?.maxLevel\t?? 1,\n\t\tminCost: data?.minCost ?? ((lvl) => 1 + lvl * 10),\n\t\tmaxCost: data?.maxCost ?? ((lvl) => 6 + lvl * 10),\n\t\tdiscoverable: data?.discoverable ?? true,\n\t\ttreasure: data?.treasure ?? false,\n\t\tcurse: data?.curse ?? false,\n\t\tcanEnchant: id => EnchantmentsCategories.get(category)!.includes(id),\n\t\tisCompatible: data?.isCompatible ?? (() => true),\n\t}\n}\n\nconst PROTECTION_ENCHANTS = ['minecraft:protection', 'minecraft:fire_protection', 'minecraft:blast_protection', 'minecraft:projectile_protection']\nconst DAMAGE_ENCHANTS = ['minecraft:sharpness', 'minecraft:smite', 'minecraft:bane_of_arthropods']\n\nconst Enchantments = new Map(Object.entries<Partial<EnchantmentData>>({\n\t'minecraft:protection': { rarity: 'common', category: 'armor', maxLevel: 4,\n\t\tminCost: lvl => 1 + (lvl - 1) * 11,\n\t\tmaxCost: lvl => 1 + (lvl - 1) * 11 + 11,\n\t\tisCompatible: other => !PROTECTION_ENCHANTS.includes(other) },\n\t'minecraft:fire_protection': { rarity: 'uncommon', category: 'armor', maxLevel: 4,\n\t\tminCost: lvl => 10 + (lvl - 1) * 8,\n\t\tmaxCost: lvl => 10 + (lvl - 1) * 8 + 8,\n\t\tisCompatible: other => !PROTECTION_ENCHANTS.includes(other) },\n\t'minecraft:feather_falling': { rarity: 'uncommon', category: 'armor_feet', maxLevel: 4,\n\t\tminCost: lvl => 5 + (lvl - 1) * 6,\n\t\tmaxCost: lvl => 5 + (lvl - 1) * 6 + 6 },\n\t'minecraft:blast_protection': { rarity: 'rare', category: 'armor', maxLevel: 4,\n\t\tminCost: lvl => 5 + (lvl - 1) * 8,\n\t\tmaxCost: lvl => 5 + (lvl - 1) * 8 + 8,\n\t\tisCompatible: other => !PROTECTION_ENCHANTS.includes(other) },\n\t'minecraft:projectile_protection': { rarity: 'uncommon', category: 'armor', maxLevel: 4,\n\t\tminCost: lvl => 3 + (lvl - 1) * 6,\n\t\tmaxCost: lvl => 3 + (lvl - 1) * 6 + 6,\n\t\tisCompatible: other => !PROTECTION_ENCHANTS.includes(other) },\n\t'minecraft:respiration': { rarity: 'rare', category: 'armor_head', maxLevel: 3,\n\t\tminCost: lvl => 10 * lvl,\n\t\tmaxCost: lvl => 10 * lvl + 30 },\n\t'minecraft:aqua_affinity': { rarity: 'rare', category: 'armor_head',\n\t\tminCost: () => 1,\n\t\tmaxCost: () => 40 },\n\t'minecraft:thorns': { rarity: 'very_rare', category: 'armor_chest', maxLevel: 3,\n\t\tminCost: lvl => 10 + 20 * (lvl - 1),\n\t\tmaxCost: lvl => 10 + 20 * (lvl - 1) + 50 },\n\t'minecraft:depth_strider': { rarity: 'rare', category: 'armor_feet', maxLevel: 3,\n\t\tminCost: lvl => 10 * lvl,\n\t\tmaxCost: lvl => 10 * lvl + 15,\n\t\tisCompatible: other => other !== 'minecraft:frost_walker' },\n\t'minecraft:frost_walker': { rarity: 'rare', category: 'armor_feet', maxLevel: 2, treasure: true,\n\t\tminCost: lvl => 10 * lvl,\n\t\tmaxCost: lvl => 10 * lvl + 15,\n\t\tisCompatible: other => other !== 'minecraft:depth_strider' },\n\t'minecraft:binding_curse': { rarity: 'very_rare', category: 'wearable', treasure: true, curse: true,\n\t\tminCost: () => 25,\n\t\tmaxCost: () => 50 },\n\t'minecraft:soul_speed': { rarity: 'very_rare', category: 'armor_feet', maxLevel: 3,\n\t\tdiscoverable: false, treasure: true,\n\t\tminCost: lvl => 10 * lvl,\n\t\tmaxCost: lvl => 10 * lvl + 15 },\n\t'minecraft:swift_sneak': { rarity: 'very_rare', category: 'armor_legs', maxLevel: 3,\n\t\tdiscoverable: false, treasure: true,\n\t\tminCost: lvl => 25 * lvl,\n\t\tmaxCost: lvl => 25 * lvl + 50 },\n\t'minecraft:sharpness': { rarity: 'common', category: 'weapon', maxLevel: 5,\n\t\tminCost: lvl => 1 + (lvl - 1) * 11,\n\t\tmaxCost: lvl => 1 + (lvl - 1) * 11 + 20,\n\t\tisCompatible: other => !DAMAGE_ENCHANTS.includes(other) },\n\t'minecraft:smite': { rarity: 'common', category: 'weapon', maxLevel: 5,\n\t\tminCost: lvl => 5 + (lvl - 1) * 8,\n\t\tmaxCost: lvl => 5 + (lvl - 1) * 8 + 20,\n\t\tisCompatible: other => !DAMAGE_ENCHANTS.includes(other) },\n\t'minecraft:bane_of_arthropods': { rarity: 'common', category: 'weapon', maxLevel: 5,\n\t\tminCost: lvl => 5 + (lvl - 1) * 8,\n\t\tmaxCost: lvl => 5 + (lvl - 1) * 8 + 20,\n\t\tisCompatible: other => !DAMAGE_ENCHANTS.includes(other) },\n\t'minecraft:knockback': { rarity: 'uncommon', category: 'weapon', maxLevel: 2,\n\t\tminCost: lvl => 5 + 20 * (lvl - 1),\n\t\tmaxCost: lvl => 1 + lvl * 10 + 50 },\n\t'minecraft:fire_aspect': { rarity: 'rare', category: 'weapon', maxLevel: 2,\n\t\tminCost: lvl => 5 + 20 * (lvl - 1),\n\t\tmaxCost: lvl => 1 + lvl * 10 + 50 },\n\t'minecraft:looting': { rarity: 'rare', category: 'weapon', maxLevel: 3,\n\t\tminCost: lvl => 15 + (lvl - 1) * 9,\n\t\tmaxCost: lvl => 1 + lvl * 10 + 50,\n\t\tisCompatible: other => other !== 'minecraft:silk_touch' },\n\t'minecraft:sweeping': { rarity: 'rare', category: 'weapon', maxLevel: 3,\n\t\tminCost: lvl => 5 + (lvl - 1) * 9,\n\t\tmaxCost: lvl => 5 + (lvl - 1) * 9 + 15 },\n\t'minecraft:efficiency': { rarity: 'common', category: 'digger', maxLevel: 5,\n\t\tminCost: lvl => 1 + 10 * (lvl - 1),\n\t\tmaxCost: lvl => 1 + lvl * 10 + 50,\n\t\tcanEnchant: id => id === 'minecraft:shears' || EnchantmentsCategories.get('digger')!.includes(id) },\n\t'minecraft:silk_touch': { rarity: 'very_rare', category: 'digger',\n\t\tminCost: () => 15,\n\t\tmaxCost: lvl => 1 + lvl * 10 + 50,\n\t\tisCompatible: other => other !== 'minecraft:fortune' },\n\t'minecraft:unbreaking': { rarity: 'uncommon', category: 'breakable', maxLevel: 3,\n\t\tminCost: lvl => 5 + (lvl - 1) * 8,\n\t\tmaxCost: lvl => 1 + lvl * 10 + 50 },\n\t'minecraft:fortune': { rarity: 'rare', category: 'digger', maxLevel: 3,\n\t\tminCost: lvl => 15 + (lvl - 1) * 9,\n\t\tmaxCost: lvl => 1 + lvl * 10 + 50,\n\t\tisCompatible: other => other !== 'minecraft:silk_touch' },\n\t'minecraft:power': { rarity: 'common', category: 'bow', maxLevel: 5,\n\t\tminCost: lvl => 1 + (lvl - 1) * 10,\n\t\tmaxCost: lvl => 1 + (lvl - 1) * 10 + 15 },\n\t'minecraft:punch': { rarity: 'rare', category: 'bow', maxLevel: 2,\n\t\tminCost: lvl => 12 + (lvl - 1) * 20,\n\t\tmaxCost: lvl => 12 + (lvl - 1) * 20 + 25 },\n\t'minecraft:flame': { rarity: 'rare', category: 'bow',\n\t\tminCost: () => 20,\n\t\tmaxCost: () => 50 },\n\t'minecraft:infinity': { rarity: 'very_rare', category: 'bow',\n\t\tminCost: () => 20,\n\t\tmaxCost: () => 50,\n\t\tisCompatible: other => other !== 'minecraft:mending' },\n\t'minecraft:luck_of_the_sea': { rarity: 'rare', category: 'fishing_rod', maxLevel: 3,\n\t\tminCost: lvl => 15 + (lvl - 1) * 9,\n\t\tmaxCost: lvl => 1 + lvl * 10 + 50,\n\t\tisCompatible: other => other !== 'minecraft:silk_touch' },\n\t'minecraft:lure': { rarity: 'rare', category: 'fishing_rod', maxLevel: 3,\n\t\tminCost: lvl => 15 + (lvl - 1) * 9,\n\t\tmaxCost: lvl => 1 + lvl * 10 + 50 },\n\t'minecraft:loyalty': { rarity: 'uncommon', category: 'trident', maxLevel: 3,\n\t\tminCost: lvl => 5 + lvl * 7,\n\t\tmaxCost: () => 50 },\n\t'minecraft:impaling': { rarity: 'rare', category: 'trident', maxLevel: 5,\n\t\tminCost: lvl => 1 + (lvl - 1) * 8,\n\t\tmaxCost: lvl => 1 + (lvl - 1) * 8 + 20 },\n\t'minecraft:riptide': { rarity: 'rare', category: 'trident', maxLevel: 3,\n\t\tminCost: lvl => 5 + lvl * 7,\n\t\tmaxCost: () => 50,\n\t\tisCompatible: other => !['minecraft:riptide', 'minecraft:channeling'].includes(other) },\n\t'minecraft:channeling': { rarity: 'very_rare', category: 'trident',\n\t\tminCost: () => 25,\n\t\tmaxCost: () => 50 },\n\t'minecraft:multishot': { rarity: 'rare', category: 'crossbow',\n\t\tminCost: () => 20,\n\t\tmaxCost: () => 50,\n\t\tisCompatible: other => other !== 'minecraft:piercing' },\n\t'minecraft:quick_charge': { rarity: 'uncommon', category: 'crossbow', maxLevel: 3,\n\t\tminCost: lvl => 12 + (lvl - 1) * 20,\n\t\tmaxCost: () => 50 },\n\t'minecraft:piercing': { rarity: 'common', category: 'crossbow', maxLevel: 4,\n\t\tminCost: lvl => 1 + (lvl - 1) * 10,\n\t\tmaxCost: () => 50,\n\t\tisCompatible: other => other !== 'minecraft:multishot' },\n\t'minecraft:mending': { rarity: 'rare', category: 'breakable', treasure: true,\n\t\tminCost: lvl => lvl * 25,\n\t\tmaxCost: lvl => lvl * 25 + 50 },\n\t'minecraft:vanishing_curse': { rarity: 'very_rare', category: 'vanishable', treasure: true, curse: true,\n\t\tminCost: () => 25,\n\t\tmaxCost: () => 50 },\n}))\n\nconst EnchantmentsRarityWeights = new Map(Object.entries<number>({\n\tcommon: 10,\n\tuncommon: 5,\n\trare: 2,\n\tvery_rare: 1,\n}))\n\nconst ARMOR_FEET = [\n\t'minecraft:leather_boots',\n\t'minecraft:chainmail_boots',\n\t'minecraft:iron_boots',\n\t'minecraft:diamond_boots',\n\t'minecraft:golden_boots',\n\t'minecraft:netherite_boots',\n]\nconst ARMOR_LEGS = [\n\t'minecraft:leather_leggings',\n\t'minecraft:chainmail_leggings',\n\t'minecraft:iron_leggings',\n\t'minecraft:diamond_leggings',\n\t'minecraft:golden_leggings',\n\t'minecraft:netherite_leggings',\n]\nconst ARMOR_CHEST = [\n\t'minecraft:leather_chestplate',\n\t'minecraft:chainmail_chestplate',\n\t'minecraft:iron_chestplate',\n\t'minecraft:diamond_chestplate',\n\t'minecraft:golden_chestplate',\n\t'minecraft:netherite_chestplate',\n]\nconst ARMOR_HEAD = [\n\t'minecraft:leather_helmet',\n\t'minecraft:chainmail_helmet',\n\t'minecraft:iron_helmet',\n\t'minecraft:diamond_helmet',\n\t'minecraft:golden_helmet',\n\t'minecraft:netherite_helmet',\n\t'minecraft:turtle_helmet',\n]\nconst ARMOR = [...ARMOR_FEET, ...ARMOR_LEGS, ...ARMOR_CHEST, ...ARMOR_HEAD]\nconst SWORD = [\n\t'minecraft:wooden_sword',\n\t'minecraft:stone_sword',\n\t'minecraft:iron_sword',\n\t'minecraft:diamond_sword',\n\t'minecraft:gold_sword',\n\t'minecraft:netherite_sword',\n]\nconst DIGGER = [\n\t'minecraft:wooden_shovel',\n\t'minecraft:wooden_pickaxe',\n\t'minecraft:wooden_axe',\n\t'minecraft:wooden_hoe',\n\t'minecraft:stone_shovel',\n\t'minecraft:stone_pickaxe',\n\t'minecraft:stone_axe',\n\t'minecraft:stone_hoe',\n\t'minecraft:iron_shovel',\n\t'minecraft:iron_pickaxe',\n\t'minecraft:iron_axe',\n\t'minecraft:iron_hoe',\n\t'minecraft:diamond_shovel',\n\t'minecraft:diamond_pickaxe',\n\t'minecraft:diamond_axe',\n\t'minecraft:diamond_hoe',\n\t'minecraft:gold_shovel',\n\t'minecraft:gold_pickaxe',\n\t'minecraft:gold_axe',\n\t'minecraft:gold_hoe',\n\t'minecraft:netherite_shovel',\n\t'minecraft:netherite_pickaxe',\n\t'minecraft:netherite_axe',\n\t'minecraft:netherite_hoe',\n]\nconst BREAKABLE = [...MaxDamageItems.keys()]\nconst WEARABLE = [\n\t...ARMOR,\n\t'minecraft:elytra',\n\t'minecraft:carved_pumpkin',\n\t'minecraft:creeper_head',\n\t'minecraft:dragon_head',\n\t'minecraft:player_head',\n\t'minecraft:zombie_head',\n]\n\nconst EnchantmentsCategories = new Map(Object.entries<string[]>({\n\tarmor: ARMOR,\n\tarmor_feet: ARMOR_FEET,\n\tarmor_legs: ARMOR_LEGS,\n\tarmor_chest: ARMOR_CHEST,\n\tarmor_head: ARMOR_HEAD,\n\tweapon: SWORD,\n\tdigger: DIGGER,\n\tfishing_rod: ['minecraft:fishing_rod'],\n\ttrident: ['minecraft:trident'],\n\tbreakable: BREAKABLE,\n\tbow: ['minecraft:bow'],\n\twearable: WEARABLE,\n\tcrossbow: ['minecraft:crossbow'],\n\tvanishable: [...BREAKABLE, 'minecraft:compass'],\n}))\n","import type { BlockModelProvider, TextureAtlasProvider, UV } from 'deepslate/render'\nimport { BlockModel, Identifier, ItemRenderer, TextureAtlas, upperPowerOfTwo } from 'deepslate/render'\nimport { message } from '../Utils.js'\nimport { fetchLanguage, fetchResources } from './DataFetcher.js'\nimport type { VersionId } from './Schemas.js'\n\nconst Resources: Record<string, ResourceManager | Promise<ResourceManager>> = {}\n\nexport async function getResources(version: VersionId) {\n\tif (!Resources[version]) {\n\t\tResources[version] = (async () => {\n\t\t\ttry {\n\t\t\t\tconst { models, uvMapping, atlas} = await fetchResources(version)\n\t\t\t\tResources[version] = new ResourceManager(models, uvMapping, atlas)\n\t\t\t\treturn Resources[version]\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error('Error: ', e)\n\t\t\t\tthrow new Error(`Cannot get resources for version ${version}: ${message(e)}`)\n\t\t\t}\n\t\t})()\n\t\treturn Resources[version]\n\t}\n\treturn Resources[version]\n}\n\nconst RENDER_SIZE = 128\nconst ItemRenderCache = new Map<string, Promise<string>>()\n\nexport async function renderItem(version: VersionId, item: string) {\n\tconst cache_key = `${version} ${item}`\n\tconst cached = ItemRenderCache.get(cache_key)\n\tif (cached !== undefined) {\n\t\treturn cached\n\t}\n\n\tconst promise = (async () => {\n\t\tconst canvas = document.createElement('canvas')\n\t\tcanvas.width = RENDER_SIZE\n\t\tcanvas.height = RENDER_SIZE\n\t\tconst resources = await getResources(version)\n\t\tconst gl = canvas.getContext('webgl2', { preserveDrawingBuffer: true })\n\t\tif (!gl) {\n\t\t\tthrow new Error('Cannot get WebGL2 context')\n\t\t}\n\t\tconst renderer = new ItemRenderer(gl, Identifier.parse(item), resources)\n\t\trenderer.drawItem()\n\t\treturn canvas.toDataURL()\n\t})()\n\tItemRenderCache.set(cache_key, promise)\n\treturn promise\n}\n\nexport class ResourceManager implements BlockModelProvider, TextureAtlasProvider {\n\tprivate blockModels: { [id: string]: BlockModel }\n\tprivate textureAtlas: TextureAtlas\n\n\tconstructor(models: Map<string, unknown>, uvMapping: any, textureAtlas: HTMLImageElement) {\n\t\tthis.blockModels = {}\n\t\tthis.textureAtlas = TextureAtlas.empty()\n\t\tthis.loadBlockModels(models)\n\t\tthis.loadBlockAtlas(textureAtlas, uvMapping)\n\t}\n\n\tpublic getBlockModel(id: Identifier) {\n\t\treturn this.blockModels[id.toString()]\n\t}\n\n\tpublic getTextureUV(id: Identifier) {\n\t\treturn this.textureAtlas.getTextureUV(id)\n\t}\n\n\tpublic getTextureAtlas() {\n\t\treturn this.textureAtlas.getTextureAtlas()\n\t}\n\n\tprivate loadBlockModels(models: Map<string, unknown>) {\n\t\t[...models.entries()].forEach(([id, model]) => {\n\t\t\tthis.blockModels[Identifier.create(id).toString()] = BlockModel.fromJson(id, model)\n\t\t})\n\t\tObject.values(this.blockModels).forEach(m => m.flatten(this))\n\t}\n\n\tprivate loadBlockAtlas(image: HTMLImageElement, textures: any) {\n\t\tconst atlasCanvas = document.createElement('canvas')\n\t\tconst w = upperPowerOfTwo(image.width)\n\t\tconst h = upperPowerOfTwo(image.height)\n\t\tatlasCanvas.width = w\n\t\tatlasCanvas.height = h\n\t\tconst ctx = atlasCanvas.getContext('2d')!\n\t\tctx.drawImage(image, 0, 0)\n\t\tconst imageData = ctx.getImageData(0, 0, w, h)\n\n\t\tconst idMap: Record<string, UV> = {}\n\t\tObject.keys(textures).forEach(id => {\n\t\t\tconst [u, v, du, dv] = textures[id]\n\t\t\tconst dv2 = (du !== dv && id.startsWith('block/')) ? du : dv\n\t\t\tidMap[Identifier.create(id).toString()] = [u / w, v / h, (u + du) / w, (v + dv2) / h]\n\t\t})\n\t\tthis.textureAtlas = new TextureAtlas(imageData, idMap)\n\t}\n}\n\nconst Languages: Record<string, Record<string, string> | Promise<Record<string, string>>> = {}\n\nexport async function getLanguage(version: VersionId) {\n\tif (!Languages[version]) {\n\t\tLanguages[version] = (async () => {\n\t\t\ttry {\n\t\t\t\tLanguages[version] = await fetchLanguage(version)\n\t\t\t\treturn Languages[version]\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error('Error: ', e)\n\t\t\t\tthrow new Error(`Cannot get language for version ${version}: ${message(e)}`)\n\t\t\t}\n\t\t})()\n\t\treturn Languages[version]\n\t}\n\treturn Languages[version]\n}\n\nexport async function getTranslation(version: VersionId, key: string, params?: string[]) {\n\tconst lang = await getLanguage(version)\n\tconst str = lang[key]\n\tif (!str) return null\n\treturn replaceTranslation(str, params)\n}\n\nexport function replaceTranslation(src: string, params?: string[]) {\n\tlet out = ''\n\tlet i = 0\n\tlet p = 0\n\twhile (i < src.length) {\n\t\tconst c0 = src[i++]\n\t\tif (c0 === '%') { // percent character\n\t\t\tif (i >= src.length) { // INVALID: %<end>\n\t\t\t\tout += c0\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tlet c1 = src[i++]\n\t\t\tif (c1 === '%') { // escape\n\t\t\t\tout += '%'\n\t\t\t} else if (c1 === 's' || c1 === 'd') { // short form %s\n\t\t\t\tout += params?.[p++] ?? ''\n\t\t\t} else if (c1 >= '0' && c1 <= '9') {\n\t\t\t\tif (i >= src.length) { // INVALID: %2<end>\n\t\t\t\t\tout += c0 + c1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tlet num = ''\n\t\t\t\tdo {\n\t\t\t\t\tnum += c1\n\t\t\t\t\tc1 = src[i++]\n\t\t\t\t} while (i < src.length && c1 >= '0' && c1 <= '9')\n\t\t\t\tif (c1 === '$') {\n\t\t\t\t\tif (i >= src.length) { // INVALID: %2$<end>\n\t\t\t\t\t\tout += c0 + num + c1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tconst c2 = src[i++]\n\t\t\t\t\tif (c2 === 's' || c2 === 'd') { // long form %2$s\n\t\t\t\t\t\tconst pos = parseInt(num) - 1\n\t\t\t\t\t\tif (!params || isNaN(pos) || pos < 0 || pos >= params.length) {\n\t\t\t\t\t\t\tout += ''\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tout += params[pos]\n\t\t\t\t\t\t}\n\t\t\t\t\t} else { // INVALID: %2$...\n\t\t\t\t\t\tout += c0 + num + c1\n\t\t\t\t\t}\n\t\t\t\t} else { // INVALID: %2...\n\t\t\t\t\tout += c0 + num\n\t\t\t\t}\n\t\t\t} else { // INVALID: %...\n\t\t\t\tout += c0\n\t\t\t}\n\t\t} else { // normal character\n\t\t\tout += c0\n\t\t}\n\t}\n\treturn out\n}\n","import { useMemo } from 'preact/hooks'\nimport { useVersion } from '../contexts/Version.jsx'\nimport { useAsync } from '../hooks/useAsync.js'\nimport { getTranslation } from '../services/Resources.js'\n\ninterface StyleData {\n\tcolor?: string,\n\tbold?: boolean,\n\titalic?: boolean,\n\tunderlined?: boolean,\n\tstrikethrough?: boolean,\n}\n\ninterface PartData extends StyleData {\n\ttext?: string,\n\ttranslate?: string,\n\twith?: string[],\n}\n\ninterface Props {\n\tcomponent: unknown,\n\tbase?: StyleData,\n\tshadow?: boolean,\n}\nexport function TextComponent({ component, base = { color: 'white' }, shadow = true }: Props) {\n\tconst state = JSON.stringify(component)\n\tconst parts = useMemo(() => {\n\t\tconst parts: PartData[] = []\n\t\tvisitComponent(component, el => parts.push(el))\n\t\treturn parts\n\t}, [state])\n\n\treturn <div class=\"text-component\">\n\t\t{shadow && <div style={createStyle(base, true)}>\n\t\t\t{parts.map(p => <TextPart part={p} shadow={true} />)}\n\t\t</div>}\n\t\t<div class=\"text-foreground\" style={createStyle(base, false)}>\n\t\t\t{parts.map(p => <TextPart part={p} />)}\n\t\t</div>\n\t</div>\n}\n\nfunction visitComponent(component: unknown, consumer: (c: PartData) => void) {\n\tif (typeof component === 'string' || typeof component === 'number') {\n\t\tconsumer({ text: component.toString() })\n\t} else if (Array.isArray(component)) {\n\t\tconst base = component[0]\n\t\tvisitComponent(base, consumer)\n\t\tfor (const c of component.slice(1)) {\n\t\t\tvisitComponent(c, d => consumer(inherit(d, base)))\n\t\t}\n\t} else if (typeof component === 'object' && component !== null) {\n\t\tif ('text' in component) {\n\t\t\tconsumer(component)\n\t\t} else if ('translate' in component) {\n\t\t\tconsumer(component)\n\t\t} else if ('score' in component) {\n\t\t\tconsumer({ ...component, text: '123' })\n\t\t} else if ('selector' in component) {\n\t\t\tconsumer({ ...component, text: 'Steve' })\n\t\t} else if ('keybind' in component) {\n\t\t\tconsumer({ ...component, text: (component as any).keybind })\n\t\t} else if ('nbt' in component) {\n\t\t\tconsumer({ ...component, text: (component as any).nbt })\n\t\t}\n\t\tif ('extra' in component) {\n\t\t\tfor (const e of (component as any).extra) {\n\t\t\t\tvisitComponent(e, c => consumer(inherit(c, component)))\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction inherit(component: object, base: PartData) {\n\treturn {\n\t\tcolor: base.color,\n\t\tbold: base.bold,\n\t\titalic: base.italic,\n\t\tunderlined: base.underlined,\n\t\tstrikethrough: base.strikethrough,\n\t\t...component,\n\t}\n}\n\nconst TextColors = {\n\tblack: ['#000', '#000'],\n\tdark_blue: ['#00A', '#00002A'],\n\tdark_green: ['#0A0', '#002A00'],\n\tdark_aqua: ['#0AA', '#002A2A'],\n\tdark_red: ['#A00', '#2A0000'],\n\tdark_purple: ['#A0A', '#2A002A'],\n\tgold: ['#FA0', '#2A2A00'],\n\tgray: ['#AAA', '#2A2A2A'],\n\tdark_gray: ['#555', '#151515'],\n\tblue: ['#55F', '#15153F'],\n\tgreen: ['#5F5', '#153F15'],\n\taqua: ['#5FF', '#153F3F'],\n\tred: ['#F55', '#3F1515'],\n\tlight_purple: ['#F5F', '#3F153F'],\n\tyellow: ['#FF5', '#3F3F15'],\n\twhite: ['#FFF', '#3F3F3F'],\n}\n\ntype TextColorKey = keyof typeof TextColors\nconst TextColorKeys = Object.keys(TextColors)\n\nfunction TextPart({ part, shadow }: { part: PartData, shadow?: boolean }) {\n\tif (part.translate) {\n\t\tconst { version } = useVersion()\n\t\tconst { value: translated } = useAsync(() => {\n\t\t\treturn getTranslation(version, part.translate!, part.with)\n\t\t}, [version, part.translate, ...part.with ?? []])\n\t\treturn <span style={createStyle(part, shadow)}>{translated ?? part.translate}</span>\n\t}\n\treturn <span style={createStyle(part, shadow)}>{part.text}</span>\n}\n\nfunction createStyle(style: StyleData, shadow?: boolean) {\n\treturn {\n\t\tcolor: style.color && (TextColorKeys.includes(style.color)\n\t\t\t? TextColors[style.color as TextColorKey][shadow ? 1 : 0]\n\t\t\t: shadow ? 'transparent' : style.color),\n\t\tfontWeight: (style.bold === true) ? 'bold' : undefined,\n\t\tfontStyle: (style.italic === true) ? 'italic' : undefined,\n\t\ttextDecoration: (style.underlined === true)\n\t\t\t? (style.strikethrough === true) ? 'underline line-through' : 'underline'\n\t\t\t: (style.strikethrough === true) ? 'line-through' : undefined,\n\t}\n}\n","import { useVersion } from '../contexts/Version.jsx'\nimport { useAsync } from '../hooks/useAsync.js'\nimport { getEnchantmentData, MaxDamageItems } from '../previews/LootTable.js'\nimport { getTranslation } from '../services/Resources.js'\nimport { TextComponent } from './TextComponent.jsx'\n\ninterface Props {\n\tid: string,\n\ttag?: any,\n\tadvanced?: boolean,\n\toffset?: [number, number],\n\tswap?: boolean,\n}\nexport function ItemTooltip({ id, tag, advanced, offset = [0, 0], swap }: Props) {\n\tconst { version } = useVersion()\n\tconst { value: translatedName } = useAsync(() => {\n\t\tconst key = id.split(':').join('.')\n\t\treturn getTranslation(version, `item.${key}`) ?? getTranslation(version, `block.${key}`)\n\t}, [version, id])\n\tconst displayName = tag?.display?.Name\n\tconst name = displayName ? JSON.parse(displayName) : (translatedName ?? fakeTranslation(id))\n\n\tconst maxDamage = MaxDamageItems.get(id)\n\n\treturn <div class=\"item-tooltip\" style={offset && {\n\t\tleft: (swap ? undefined : `${offset[0]}px`),\n\t\tright: (swap ? `${offset[0]}px` : undefined),\n\t\ttop: `${offset[1]}px`,\n\t}}>\n\t\t<TextComponent component={name} base={{ color: 'white' }} />\n\t\t{tag?.Enchantments?.map(({ id, lvl }: { id: string, lvl: number }) => {\n\t\t\tconst ench = getEnchantmentData(id)\n\t\t\tconst component: any[] = [{ translate: `enchantment.${id.replace(':', '.')}`, color: ench?.curse ? 'red' : 'gray' }]\n\t\t\tif (lvl !== 1 || ench?.maxLevel !== 1) {\n\t\t\t\tcomponent.push(' ', { translate: `enchantment.level.${lvl}`})\n\t\t\t}\n\t\t\treturn <TextComponent component={component} />\n\t\t})}\n\t\t{tag?.display && <>\n\t\t\t{tag?.display?.color && (advanced\n\t\t\t\t? <TextComponent component={{ translate: 'item.color', with: [`#${tag.display.color.toString(16).padStart(6, '0')}`], color: 'gray' }} />\n\t\t\t\t: <TextComponent component={{ translate: 'item.dyed', color: 'gray' }} />)}\n\t\t\t{(tag?.display?.Lore ?? []).map((line: any) => <TextComponent component={JSON.parse(line)} base={{ color: 'dark_purple', italic: true }} />)}\n\t\t</>}\n\t\t{tag?.Unbreakable === true && <TextComponent component={{ translate: 'item.unbreakable', color: 'blue' }} />}\n\t\t{(advanced && (tag?.Damage ?? 0) > 0 && maxDamage) && <TextComponent component={{ translate: 'item.durability', with: [`${maxDamage - tag.Damage}`, `${maxDamage}`] }} />}\n\t\t{advanced && <>\n\t\t\t<TextComponent component={{ text: id, color: 'dark_gray'}} />\n\t\t\t{tag && <TextComponent component={{ translate: 'item.nbt_tags', with: [Object.keys(tag).length], color: 'dark_gray' }} />}\n\t\t</>}\n\t</div>\n}\n\nfunction fakeTranslation(str: string) {\n\tconst raw = str.replace(/minecraft:/, '').replaceAll('_', ' ')\n\treturn raw[0].toUpperCase() + raw.slice(1)\n}\n","export const Octicon = {\n\talert: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8.22 1.754a.25.25 0 00-.44 0L1.698 13.132a.25.25 0 00.22.368h12.164a.25.25 0 00.22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0114.082 15H1.918a1.75 1.75 0 01-1.543-2.575L6.457 1.047zM9 11a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.25a.75.75 0 00-1.5 0v2.5a.75.75 0 001.5 0v-2.5z\"></path></svg>,\n\tarchive: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1.75 2.5a.25.25 0 00-.25.25v1.5c0 .138.112.25.25.25h12.5a.25.25 0 00.25-.25v-1.5a.25.25 0 00-.25-.25H1.75zM0 2.75C0 1.784.784 1 1.75 1h12.5c.966 0 1.75.784 1.75 1.75v1.5A1.75 1.75 0 0114.25 6H1.75A1.75 1.75 0 010 4.25v-1.5zM1.75 7a.75.75 0 01.75.75v5.5c0 .138.112.25.25.25h10.5a.25.25 0 00.25-.25v-5.5a.75.75 0 111.5 0v5.5A1.75 1.75 0 0113.25 15H2.75A1.75 1.75 0 011 13.25v-5.5A.75.75 0 011.75 7zm4.5 1a.75.75 0 000 1.5h3.5a.75.75 0 100-1.5h-3.5z\"></path></svg>,\n\tarrow_left: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M7.78 12.53a.75.75 0 01-1.06 0L2.47 8.28a.75.75 0 010-1.06l4.25-4.25a.75.75 0 011.06 1.06L4.81 7h7.44a.75.75 0 010 1.5H4.81l2.97 2.97a.75.75 0 010 1.06z\"></path></svg>,\n\tarrow_right: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8.22 2.97a.75.75 0 011.06 0l4.25 4.25a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06-1.06l2.97-2.97H3.75a.75.75 0 010-1.5h7.44L8.22 4.03a.75.75 0 010-1.06z\"></path></svg>,\n\tcheck: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z\"></path></svg>,\n\tchevron_down: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M12.78 6.22a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06 0L3.22 7.28a.75.75 0 011.06-1.06L8 9.94l3.72-3.72a.75.75 0 011.06 0z\"></path></svg>,\n\tchevron_left: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M9.78 12.78a.75.75 0 01-1.06 0L4.47 8.53a.75.75 0 010-1.06l4.25-4.25a.75.75 0 011.06 1.06L6.06 8l3.72 3.72a.75.75 0 010 1.06z\"></path></svg>,\n\tchevron_right: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M6.22 3.22a.75.75 0 011.06 0l4.25 4.25a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06-1.06L9.94 8 6.22 4.28a.75.75 0 010-1.06z\"></path></svg>,\n\tchevron_up: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M3.22 9.78a.75.75 0 010-1.06l4.25-4.25a.75.75 0 011.06 0l4.25 4.25a.75.75 0 01-1.06 1.06L8 6.06 4.28 9.78a.75.75 0 01-1.06 0z\"></path></svg>,\n\tclippy: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M5.75 1a.75.75 0 00-.75.75v3c0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75v-3a.75.75 0 00-.75-.75h-4.5zm.75 3V2.5h3V4h-3zm-2.874-.467a.75.75 0 00-.752-1.298A1.75 1.75 0 002 3.75v9.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 13.25v-9.5a1.75 1.75 0 00-.874-1.515.75.75 0 10-.752 1.298.25.25 0 01.126.217v9.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-9.5a.25.25 0 01.126-.217z\"></path></svg>,\n\tcode: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M4.72 3.22a.75.75 0 011.06 1.06L2.06 8l3.72 3.72a.75.75 0 11-1.06 1.06L.47 8.53a.75.75 0 010-1.06l4.25-4.25zm6.56 0a.75.75 0 10-1.06 1.06L13.94 8l-3.72 3.72a.75.75 0 101.06 1.06l4.25-4.25a.75.75 0 000-1.06l-4.25-4.25z\"></path></svg>,\n\tcodescan_checkmark: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path d=\"M10.28 6.28a.75.75 0 10-1.06-1.06L6.25 8.19l-.97-.97a.75.75 0 00-1.06 1.06l1.5 1.5a.75.75 0 001.06 0l3.5-3.5z\"></path><path fill-rule=\"evenodd\" d=\"M7.5 15a7.469 7.469 0 004.746-1.693l2.474 2.473a.75.75 0 101.06-1.06l-2.473-2.474A7.5 7.5 0 107.5 15zm0-13.5a6 6 0 104.094 10.386.75.75 0 01.293-.292A6 6 0 007.5 1.5z\"></path></svg>,\n\tdash: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M2 8a.75.75 0 01.75-.75h10.5a.75.75 0 010 1.5H2.75A.75.75 0 012 8z\"></path></svg>,\n\tdevice_desktop: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1.75 2.5h12.5a.25.25 0 01.25.25v7.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25v-7.5a.25.25 0 01.25-.25zM14.25 1H1.75A1.75 1.75 0 000 2.75v7.5C0 11.216.784 12 1.75 12h3.727c-.1 1.041-.52 1.872-1.292 2.757A.75.75 0 004.75 16h6.5a.75.75 0 00.565-1.243c-.772-.885-1.193-1.716-1.292-2.757h3.727A1.75 1.75 0 0016 10.25v-7.5A1.75 1.75 0 0014.25 1zM9.018 12H6.982a5.72 5.72 0 01-.765 2.5h3.566a5.72 5.72 0 01-.765-2.5z\"></path></svg>,\n\tdot_fill: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8 4a4 4 0 100 8 4 4 0 000-8z\"></path></svg>,\n\tdownload: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M7.47 10.78a.75.75 0 001.06 0l3.75-3.75a.75.75 0 00-1.06-1.06L8.75 8.44V1.75a.75.75 0 00-1.5 0v6.69L4.78 5.97a.75.75 0 00-1.06 1.06l3.75 3.75zM3.75 13a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5z\"></path></svg>,\n\tduplicate: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path d=\"M10.5 3a.75.75 0 01.75.75v1h1a.75.75 0 010 1.5h-1v1a.75.75 0 01-1.5 0v-1h-1a.75.75 0 010-1.5h1v-1A.75.75 0 0110.5 3z\"></path><path fill-rule=\"evenodd\" d=\"M6.75 0A1.75 1.75 0 005 1.75v7.5c0 .966.784 1.75 1.75 1.75h7.5A1.75 1.75 0 0016 9.25v-7.5A1.75 1.75 0 0014.25 0h-7.5zM6.5 1.75a.25.25 0 01.25-.25h7.5a.25.25 0 01.25.25v7.5a.25.25 0 01-.25.25h-7.5a.25.25 0 01-.25-.25v-7.5z\"></path><path d=\"M1.75 5A1.75 1.75 0 000 6.75v7.5C0 15.216.784 16 1.75 16h7.5A1.75 1.75 0 0011 14.25v-1.5a.75.75 0 00-1.5 0v1.5a.25.25 0 01-.25.25h-7.5a.25.25 0 01-.25-.25v-7.5a.25.25 0 01.25-.25h1.5a.75.75 0 000-1.5h-1.5z\"></path></svg>,\n\teye: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1.679 7.932c.412-.621 1.242-1.75 2.366-2.717C5.175 4.242 6.527 3.5 8 3.5c1.473 0 2.824.742 3.955 1.715 1.124.967 1.954 2.096 2.366 2.717a.119.119 0 010 .136c-.412.621-1.242 1.75-2.366 2.717C10.825 11.758 9.473 12.5 8 12.5c-1.473 0-2.824-.742-3.955-1.715C2.92 9.818 2.09 8.69 1.679 8.068a.119.119 0 010-.136zM8 2c-1.981 0-3.67.992-4.933 2.078C1.797 5.169.88 6.423.43 7.1a1.619 1.619 0 000 1.798c.45.678 1.367 1.932 2.637 3.024C4.329 13.008 6.019 14 8 14c1.981 0 3.67-.992 4.933-2.078 1.27-1.091 2.187-2.345 2.637-3.023a1.619 1.619 0 000-1.798c-.45-.678-1.367-1.932-2.637-3.023C11.671 2.992 9.981 2 8 2zm0 8a2 2 0 100-4 2 2 0 000 4z\"></path></svg>,\n\teye_closed: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M.143 2.31a.75.75 0 011.047-.167l14.5 10.5a.75.75 0 11-.88 1.214l-2.248-1.628C11.346 13.19 9.792 14 8 14c-1.981 0-3.67-.992-4.933-2.078C1.797 10.832.88 9.577.43 8.9a1.618 1.618 0 010-1.797c.353-.533.995-1.42 1.868-2.305L.31 3.357A.75.75 0 01.143 2.31zm3.386 3.378a14.21 14.21 0 00-1.85 2.244.12.12 0 00-.022.068c0 .021.006.045.022.068.412.621 1.242 1.75 2.366 2.717C5.175 11.758 6.527 12.5 8 12.5c1.195 0 2.31-.488 3.29-1.191L9.063 9.695A2 2 0 016.058 7.52l-2.53-1.832zM8 3.5c-.516 0-1.017.09-1.499.251a.75.75 0 11-.473-1.423A6.23 6.23 0 018 2c1.981 0 3.67.992 4.933 2.078 1.27 1.091 2.187 2.345 2.637 3.023a1.619 1.619 0 010 1.798c-.11.166-.248.365-.41.587a.75.75 0 11-1.21-.887c.148-.201.272-.382.371-.53a.119.119 0 000-.137c-.412-.621-1.242-1.75-2.366-2.717C10.825 4.242 9.473 3.5 8 3.5z\"></path></svg>,\n\tfile: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M3.75 1.5a.25.25 0 00-.25.25v11.5c0 .138.112.25.25.25h8.5a.25.25 0 00.25-.25V6H9.75A1.75 1.75 0 018 4.25V1.5H3.75zm5.75.56v2.19c0 .138.112.25.25.25h2.19L9.5 2.06zM2 1.75C2 .784 2.784 0 3.75 0h5.086c.464 0 .909.184 1.237.513l3.414 3.414c.329.328.513.773.513 1.237v8.086A1.75 1.75 0 0112.25 15h-8.5A1.75 1.75 0 012 13.25V1.75z\"></path></svg>,\n\tfile_directory: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1.75 1A1.75 1.75 0 000 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0016 13.25v-8.5A1.75 1.75 0 0014.25 3h-6.5a.25.25 0 01-.2-.1l-.9-1.2c-.33-.44-.85-.7-1.4-.7h-3.5z\"></path></svg>,\n\tfile_zip: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M3.5 1.75a.25.25 0 01.25-.25h3a.75.75 0 000 1.5h.5a.75.75 0 000-1.5h2.086a.25.25 0 01.177.073l2.914 2.914a.25.25 0 01.073.177v8.586a.25.25 0 01-.25.25h-.5a.75.75 0 000 1.5h.5A1.75 1.75 0 0014 13.25V4.664c0-.464-.184-.909-.513-1.237L10.573.513A1.75 1.75 0 009.336 0H3.75A1.75 1.75 0 002 1.75v11.5c0 .649.353 1.214.874 1.515a.75.75 0 10.752-1.298.25.25 0 01-.126-.217V1.75zM8.75 3a.75.75 0 000 1.5h.5a.75.75 0 000-1.5h-.5zM6 5.25a.75.75 0 01.75-.75h.5a.75.75 0 010 1.5h-.5A.75.75 0 016 5.25zm2 1.5A.75.75 0 018.75 6h.5a.75.75 0 010 1.5h-.5A.75.75 0 018 6.75zm-1.25.75a.75.75 0 000 1.5h.5a.75.75 0 000-1.5h-.5zM8 9.75A.75.75 0 018.75 9h.5a.75.75 0 010 1.5h-.5A.75.75 0 018 9.75zm-.75.75a1.75 1.75 0 00-1.75 1.75v3c0 .414.336.75.75.75h2.5a.75.75 0 00.75-.75v-3a1.75 1.75 0 00-1.75-1.75h-.5zM7 12.25a.25.25 0 01.25-.25h.5a.25.25 0 01.25.25v2.25H7v-2.25z\"></path></svg>,\n\tgear: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M7.429 1.525a6.593 6.593 0 011.142 0c.036.003.108.036.137.146l.289 1.105c.147.56.55.967.997 1.189.174.086.341.183.501.29.417.278.97.423 1.53.27l1.102-.303c.11-.03.175.016.195.046.219.31.41.641.573.989.014.031.022.11-.059.19l-.815.806c-.411.406-.562.957-.53 1.456a4.588 4.588 0 010 .582c-.032.499.119 1.05.53 1.456l.815.806c.08.08.073.159.059.19a6.494 6.494 0 01-.573.99c-.02.029-.086.074-.195.045l-1.103-.303c-.559-.153-1.112-.008-1.529.27-.16.107-.327.204-.5.29-.449.222-.851.628-.998 1.189l-.289 1.105c-.029.11-.101.143-.137.146a6.613 6.613 0 01-1.142 0c-.036-.003-.108-.037-.137-.146l-.289-1.105c-.147-.56-.55-.967-.997-1.189a4.502 4.502 0 01-.501-.29c-.417-.278-.97-.423-1.53-.27l-1.102.303c-.11.03-.175-.016-.195-.046a6.492 6.492 0 01-.573-.989c-.014-.031-.022-.11.059-.19l.815-.806c.411-.406.562-.957.53-1.456a4.587 4.587 0 010-.582c.032-.499-.119-1.05-.53-1.456l-.815-.806c-.08-.08-.073-.159-.059-.19a6.44 6.44 0 01.573-.99c.02-.029.086-.075.195-.045l1.103.303c.559.153 1.112.008 1.529-.27.16-.107.327-.204.5-.29.449-.222.851-.628.998-1.189l.289-1.105c.029-.11.101-.143.137-.146zM8 0c-.236 0-.47.01-.701.03-.743.065-1.29.615-1.458 1.261l-.29 1.106c-.017.066-.078.158-.211.224a5.994 5.994 0 00-.668.386c-.123.082-.233.09-.3.071L3.27 2.776c-.644-.177-1.392.02-1.82.63a7.977 7.977 0 00-.704 1.217c-.315.675-.111 1.422.363 1.891l.815.806c.05.048.098.147.088.294a6.084 6.084 0 000 .772c.01.147-.038.246-.088.294l-.815.806c-.474.469-.678 1.216-.363 1.891.2.428.436.835.704 1.218.428.609 1.176.806 1.82.63l1.103-.303c.066-.019.176-.011.299.071.213.143.436.272.668.386.133.066.194.158.212.224l.289 1.106c.169.646.715 1.196 1.458 1.26a8.094 8.094 0 001.402 0c.743-.064 1.29-.614 1.458-1.26l.29-1.106c.017-.066.078-.158.211-.224a5.98 5.98 0 00.668-.386c.123-.082.233-.09.3-.071l1.102.302c.644.177 1.392-.02 1.82-.63.268-.382.505-.789.704-1.217.315-.675.111-1.422-.364-1.891l-.814-.806c-.05-.048-.098-.147-.088-.294a6.1 6.1 0 000-.772c-.01-.147.039-.246.088-.294l.814-.806c.475-.469.679-1.216.364-1.891a7.992 7.992 0 00-.704-1.218c-.428-.609-1.176-.806-1.82-.63l-1.103.303c-.066.019-.176.011-.299-.071a5.991 5.991 0 00-.668-.386c-.133-.066-.194-.158-.212-.224L10.16 1.29C9.99.645 9.444.095 8.701.031A8.094 8.094 0 008 0zm1.5 8a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zM11 8a3 3 0 11-6 0 3 3 0 016 0z\"></path></svg>,\n\tgit_commit: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M10.5 7.75a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0zm1.43.75a4.002 4.002 0 01-7.86 0H.75a.75.75 0 110-1.5h3.32a4.001 4.001 0 017.86 0h3.32a.75.75 0 110 1.5h-3.32z\"></path></svg>,\n\tglobe: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1.543 7.25h2.733c.144-2.074.866-3.756 1.58-4.948.12-.197.237-.381.353-.552a6.506 6.506 0 00-4.666 5.5zm2.733 1.5H1.543a6.506 6.506 0 004.666 5.5 11.13 11.13 0 01-.352-.552c-.715-1.192-1.437-2.874-1.581-4.948zm1.504 0h4.44a9.637 9.637 0 01-1.363 4.177c-.306.51-.612.919-.857 1.215a9.978 9.978 0 01-.857-1.215A9.637 9.637 0 015.78 8.75zm4.44-1.5H5.78a9.637 9.637 0 011.363-4.177c.306-.51.612-.919.857-1.215.245.296.55.705.857 1.215A9.638 9.638 0 0110.22 7.25zm1.504 1.5c-.144 2.074-.866 3.756-1.58 4.948-.12.197-.237.381-.353.552a6.506 6.506 0 004.666-5.5h-2.733zm2.733-1.5h-2.733c-.144-2.074-.866-3.756-1.58-4.948a11.738 11.738 0 00-.353-.552 6.506 6.506 0 014.666 5.5zM8 0a8 8 0 100 16A8 8 0 008 0z\"></path></svg>,\n\theart: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M4.25 2.5c-1.336 0-2.75 1.164-2.75 3 0 2.15 1.58 4.144 3.365 5.682A20.565 20.565 0 008 13.393a20.561 20.561 0 003.135-2.211C12.92 9.644 14.5 7.65 14.5 5.5c0-1.836-1.414-3-2.75-3-1.373 0-2.609.986-3.029 2.456a.75.75 0 01-1.442 0C6.859 3.486 5.623 2.5 4.25 2.5zM8 14.25l-.345.666-.002-.001-.006-.003-.018-.01a7.643 7.643 0 01-.31-.17 22.075 22.075 0 01-3.434-2.414C2.045 10.731 0 8.35 0 5.5 0 2.836 2.086 1 4.25 1 5.797 1 7.153 1.802 8 3.02 8.847 1.802 10.203 1 11.75 1 13.914 1 16 2.836 16 5.5c0 2.85-2.045 5.231-3.885 6.818a22.08 22.08 0 01-3.744 2.584l-.018.01-.006.003h-.002L8 14.25zm0 0l.345.666a.752.752 0 01-.69 0L8 14.25z\"></path></svg>,\n\thistory: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1.643 3.143L.427 1.927A.25.25 0 000 2.104V5.75c0 .138.112.25.25.25h3.646a.25.25 0 00.177-.427L2.715 4.215a6.5 6.5 0 11-1.18 4.458.75.75 0 10-1.493.154 8.001 8.001 0 101.6-5.684zM7.75 4a.75.75 0 01.75.75v2.992l2.028.812a.75.75 0 01-.557 1.392l-2.5-1A.75.75 0 017 8.25v-3.5A.75.75 0 017.75 4z\"></path></svg>,\n\tinfo: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8 1.5a6.5 6.5 0 100 13 6.5 6.5 0 000-13zM0 8a8 8 0 1116 0A8 8 0 010 8zm6.5-.25A.75.75 0 017.25 7h1a.75.75 0 01.75.75v2.75h.25a.75.75 0 010 1.5h-2a.75.75 0 010-1.5h.25v-2h-.25a.75.75 0 01-.75-.75zM8 6a1 1 0 100-2 1 1 0 000 2z\"></path></svg>,\n\tissue_opened: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8 1.5a6.5 6.5 0 100 13 6.5 6.5 0 000-13zM0 8a8 8 0 1116 0A8 8 0 010 8zm9 3a1 1 0 11-2 0 1 1 0 012 0zm-.25-6.25a.75.75 0 00-1.5 0v3.5a.75.75 0 001.5 0v-3.5z\"></path></svg>,\n\tkebab_horizontal: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path d=\"M8 9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zM1.5 9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zm13 0a1.5 1.5 0 100-3 1.5 1.5 0 000 3z\"></path></svg>,\n\tlink: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg>,\n\tlink_external: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M10.604 1h4.146a.25.25 0 01.25.25v4.146a.25.25 0 01-.427.177L13.03 4.03 9.28 7.78a.75.75 0 01-1.06-1.06l3.75-3.75-1.543-1.543A.25.25 0 0110.604 1zM3.75 2A1.75 1.75 0 002 3.75v8.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 12.25v-3.5a.75.75 0 00-1.5 0v3.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-8.5a.25.25 0 01.25-.25h3.5a.75.75 0 000-1.5h-3.5z\"></path></svg>,\n\tmark_github: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z\"></path></svg>,\n\tmoon: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M9.598 1.591a.75.75 0 01.785-.175 7 7 0 11-8.967 8.967.75.75 0 01.961-.96 5.5 5.5 0 007.046-7.046.75.75 0 01.175-.786zm1.616 1.945a7 7 0 01-7.678 7.678 5.5 5.5 0 107.678-7.678z\"></path></svg>,\n\tpackage: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8.878.392a1.75 1.75 0 00-1.756 0l-5.25 3.045A1.75 1.75 0 001 4.951v6.098c0 .624.332 1.2.872 1.514l5.25 3.045a1.75 1.75 0 001.756 0l5.25-3.045c.54-.313.872-.89.872-1.514V4.951c0-.624-.332-1.2-.872-1.514L8.878.392zM7.875 1.69a.25.25 0 01.25 0l4.63 2.685L8 7.133 3.245 4.375l4.63-2.685zM2.5 5.677v5.372c0 .09.047.171.125.216l4.625 2.683V8.432L2.5 5.677zm6.25 8.271l4.625-2.683a.25.25 0 00.125-.216V5.677L8.75 8.432v5.516z\"></path></svg>,\n\tpencil: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M11.013 1.427a1.75 1.75 0 012.474 0l1.086 1.086a1.75 1.75 0 010 2.474l-8.61 8.61c-.21.21-.47.364-.756.445l-3.251.93a.75.75 0 01-.927-.928l.929-3.25a1.75 1.75 0 01.445-.758l8.61-8.61zm1.414 1.06a.25.25 0 00-.354 0L10.811 3.75l1.439 1.44 1.263-1.263a.25.25 0 000-.354l-1.086-1.086zM11.189 6.25L9.75 4.81l-6.286 6.287a.25.25 0 00-.064.108l-.558 1.953 1.953-.558a.249.249 0 00.108-.064l6.286-6.286z\"></path></svg>,\n\tplay: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0zM8 0a8 8 0 100 16A8 8 0 008 0zM6.379 5.227A.25.25 0 006 5.442v5.117a.25.25 0 00.379.214l4.264-2.559a.25.25 0 000-.428L6.379 5.227z\"></path></svg>,\n\tplus: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8 2a.75.75 0 01.75.75v4.5h4.5a.75.75 0 010 1.5h-4.5v4.5a.75.75 0 01-1.5 0v-4.5h-4.5a.75.75 0 010-1.5h4.5v-4.5A.75.75 0 018 2z\"></path></svg>,\n\tplus_circle: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0zM8 0a8 8 0 100 16A8 8 0 008 0zm.75 4.75a.75.75 0 00-1.5 0v2.5h-2.5a.75.75 0 000 1.5h2.5v2.5a.75.75 0 001.5 0v-2.5h2.5a.75.75 0 000-1.5h-2.5v-2.5z\"></path></svg>,\n\trepo: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z\"></path></svg>,\n\trocket: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M14.064 0a8.75 8.75 0 00-6.187 2.563l-.459.458c-.314.314-.616.641-.904.979H3.31a1.75 1.75 0 00-1.49.833L.11 7.607a.75.75 0 00.418 1.11l3.102.954c.037.051.079.1.124.145l2.429 2.428c.046.046.094.088.145.125l.954 3.102a.75.75 0 001.11.418l2.774-1.707a1.75 1.75 0 00.833-1.49V9.485c.338-.288.665-.59.979-.904l.458-.459A8.75 8.75 0 0016 1.936V1.75A1.75 1.75 0 0014.25 0h-.186zM10.5 10.625c-.088.06-.177.118-.266.175l-2.35 1.521.548 1.783 1.949-1.2a.25.25 0 00.119-.213v-2.066zM3.678 8.116L5.2 5.766c.058-.09.117-.178.176-.266H3.309a.25.25 0 00-.213.119l-1.2 1.95 1.782.547zm5.26-4.493A7.25 7.25 0 0114.063 1.5h.186a.25.25 0 01.25.25v.186a7.25 7.25 0 01-2.123 5.127l-.459.458a15.21 15.21 0 01-2.499 2.02l-2.317 1.5-2.143-2.143 1.5-2.317a15.25 15.25 0 012.02-2.5l.458-.458h.002zM12 5a1 1 0 11-2 0 1 1 0 012 0zm-8.44 9.56a1.5 1.5 0 10-2.12-2.12c-.734.73-1.047 2.332-1.15 3.003a.23.23 0 00.265.265c.671-.103 2.273-.416 3.005-1.148z\"></path></svg>,\n\trows: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M16 2.75A1.75 1.75 0 0014.25 1H1.75A1.75 1.75 0 000 2.75v2.5A1.75 1.75 0 001.75 7h12.5A1.75 1.75 0 0016 5.25v-2.5zm-1.75-.25a.25.25 0 01.25.25v2.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25v-2.5a.25.25 0 01.25-.25h12.5zM16 10.75A1.75 1.75 0 0014.25 9H1.75A1.75 1.75 0 000 10.75v2.5A1.75 1.75 0 001.75 15h12.5A1.75 1.75 0 0016 13.25v-2.5zm-1.75-.25a.25.25 0 01.25.25v2.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25v-2.5a.25.25 0 01.25-.25h12.5z\"></path></svg>,\n\tsearch: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z\"></path></svg>,\n\tsort_asc: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M0 4.25a.75.75 0 01.75-.75h2.5a.75.75 0 010 1.5H.75A.75.75 0 010 4.25zm0 4a.75.75 0 01.75-.75h4.5a.75.75 0 010 1.5H.75A.75.75 0 010 8.25zm0 4a.75.75 0 01.75-.75h7.5a.75.75 0 010 1.5H.75a.75.75 0 01-.75-.75zm12.927-9.677a.25.25 0 00-.354 0l-3 3A.25.25 0 009.75 6H12v6.75a.75.75 0 001.5 0V6h2.25a.25.25 0 00.177-.427l-3-3z\"></path></svg>,\n\tsort_desc: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M0 4.25a.75.75 0 01.75-.75h7.5a.75.75 0 010 1.5H.75A.75.75 0 010 4.25zm0 4a.75.75 0 01.75-.75h4.5a.75.75 0 010 1.5H.75A.75.75 0 010 8.25zm0 4a.75.75 0 01.75-.75h2.5a.75.75 0 010 1.5H.75a.75.75 0 01-.75-.75z\"></path><path d=\"M13.5 10h2.25a.25.25 0 01.177.427l-3 3a.25.25 0 01-.354 0l-3-3A.25.25 0 019.75 10H12V3.75a.75.75 0 011.5 0V10z\"></path></svg>,\n\tsquare: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M4 5.75C4 4.784 4.784 4 5.75 4h4.5c.966 0 1.75.784 1.75 1.75v4.5A1.75 1.75 0 0110.25 12h-4.5A1.75 1.75 0 014 10.25v-4.5zm1.75-.25a.25.25 0 00-.25.25v4.5c0 .138.112.25.25.25h4.5a.25.25 0 00.25-.25v-4.5a.25.25 0 00-.25-.25h-4.5z\"></path></svg>,\n\tsquare_fill: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M5.75 4A1.75 1.75 0 004 5.75v4.5c0 .966.784 1.75 1.75 1.75h4.5A1.75 1.75 0 0012 10.25v-4.5A1.75 1.75 0 0010.25 4h-4.5z\"></path></svg>,\n\tstack: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M7.122.392a1.75 1.75 0 011.756 0l5.003 2.902c.83.481.83 1.68 0 2.162L8.878 8.358a1.75 1.75 0 01-1.756 0L2.119 5.456a1.25 1.25 0 010-2.162L7.122.392zM8.125 1.69a.25.25 0 00-.25 0l-4.63 2.685 4.63 2.685a.25.25 0 00.25 0l4.63-2.685-4.63-2.685zM1.601 7.789a.75.75 0 011.025-.273l5.249 3.044a.25.25 0 00.25 0l5.249-3.044a.75.75 0 01.752 1.298l-5.248 3.044a1.75 1.75 0 01-1.756 0L1.874 8.814A.75.75 0 011.6 7.789zm0 3.5a.75.75 0 011.025-.273l5.249 3.044a.25.25 0 00.25 0l5.249-3.044a.75.75 0 01.752 1.298l-5.248 3.044a1.75 1.75 0 01-1.756 0l-5.248-3.044a.75.75 0 01-.273-1.025z\"></path></svg>,\n\tsun: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8 10.5a2.5 2.5 0 100-5 2.5 2.5 0 000 5zM8 12a4 4 0 100-8 4 4 0 000 8zM8 0a.75.75 0 01.75.75v1.5a.75.75 0 01-1.5 0V.75A.75.75 0 018 0zm0 13a.75.75 0 01.75.75v1.5a.75.75 0 01-1.5 0v-1.5A.75.75 0 018 13zM2.343 2.343a.75.75 0 011.061 0l1.06 1.061a.75.75 0 01-1.06 1.06l-1.06-1.06a.75.75 0 010-1.06zm9.193 9.193a.75.75 0 011.06 0l1.061 1.06a.75.75 0 01-1.06 1.061l-1.061-1.06a.75.75 0 010-1.061zM16 8a.75.75 0 01-.75.75h-1.5a.75.75 0 010-1.5h1.5A.75.75 0 0116 8zM3 8a.75.75 0 01-.75.75H.75a.75.75 0 010-1.5h1.5A.75.75 0 013 8zm10.657-5.657a.75.75 0 010 1.061l-1.061 1.06a.75.75 0 11-1.06-1.06l1.06-1.06a.75.75 0 011.06 0zm-9.193 9.193a.75.75 0 010 1.06l-1.06 1.061a.75.75 0 11-1.061-1.06l1.06-1.061a.75.75 0 011.061 0z\"></path></svg>,\n\tsync: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8 2.5a5.487 5.487 0 00-4.131 1.869l1.204 1.204A.25.25 0 014.896 6H1.25A.25.25 0 011 5.75V2.104a.25.25 0 01.427-.177l1.38 1.38A7.001 7.001 0 0114.95 7.16a.75.75 0 11-1.49.178A5.501 5.501 0 008 2.5zM1.705 8.005a.75.75 0 01.834.656 5.501 5.501 0 009.592 2.97l-1.204-1.204a.25.25 0 01.177-.427h3.646a.25.25 0 01.25.25v3.646a.25.25 0 01-.427.177l-1.38-1.38A7.001 7.001 0 011.05 8.84a.75.75 0 01.656-.834z\"></path></svg>,\n\ttag: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M2.5 7.775V2.75a.25.25 0 01.25-.25h5.025a.25.25 0 01.177.073l6.25 6.25a.25.25 0 010 .354l-5.025 5.025a.25.25 0 01-.354 0l-6.25-6.25a.25.25 0 01-.073-.177zm-1.5 0V2.75C1 1.784 1.784 1 2.75 1h5.025c.464 0 .91.184 1.238.513l6.25 6.25a1.75 1.75 0 010 2.474l-5.026 5.026a1.75 1.75 0 01-2.474 0l-6.25-6.25A1.75 1.75 0 011 7.775zM6 5a1 1 0 100 2 1 1 0 000-2z\"></path></svg>,\n\tterminal: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M0 2.75C0 1.784.784 1 1.75 1h12.5c.966 0 1.75.784 1.75 1.75v10.5A1.75 1.75 0 0114.25 15H1.75A1.75 1.75 0 010 13.25V2.75zm1.75-.25a.25.25 0 00-.25.25v10.5c0 .138.112.25.25.25h12.5a.25.25 0 00.25-.25V2.75a.25.25 0 00-.25-.25H1.75zM7.25 8a.75.75 0 01-.22.53l-2.25 2.25a.75.75 0 11-1.06-1.06L5.44 8 3.72 6.28a.75.75 0 111.06-1.06l2.25 2.25c.141.14.22.331.22.53zm1.5 1.5a.75.75 0 000 1.5h3a.75.75 0 000-1.5h-3z\"></path></svg>,\n\tthree_bars: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1 2.75A.75.75 0 011.75 2h12.5a.75.75 0 110 1.5H1.75A.75.75 0 011 2.75zm0 5A.75.75 0 011.75 7h12.5a.75.75 0 110 1.5H1.75A.75.75 0 011 7.75zM1.75 12a.75.75 0 100 1.5h12.5a.75.75 0 100-1.5H1.75z\"></path></svg>,\n\ttrashcan: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M6.5 1.75a.25.25 0 01.25-.25h2.5a.25.25 0 01.25.25V3h-3V1.75zm4.5 0V3h2.25a.75.75 0 010 1.5H2.75a.75.75 0 010-1.5H5V1.75C5 .784 5.784 0 6.75 0h2.5C10.216 0 11 .784 11 1.75zM4.496 6.675a.75.75 0 10-1.492.15l.66 6.6A1.75 1.75 0 005.405 15h5.19c.9 0 1.652-.681 1.741-1.576l.66-6.6a.75.75 0 00-1.492-.149l-.66 6.6a.25.25 0 01-.249.225h-5.19a.25.25 0 01-.249-.225l-.66-6.6z\"></path></svg>,\n\tunfold: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path d=\"M8.177.677l2.896 2.896a.25.25 0 01-.177.427H8.75v1.25a.75.75 0 01-1.5 0V4H5.104a.25.25 0 01-.177-.427L7.823.677a.25.25 0 01.354 0zM7.25 10.75a.75.75 0 011.5 0V12h2.146a.25.25 0 01.177.427l-2.896 2.896a.25.25 0 01-.354 0l-2.896-2.896A.25.25 0 015.104 12H7.25v-1.25zm-5-2a.75.75 0 000-1.5h-.5a.75.75 0 000 1.5h.5zM6 8a.75.75 0 01-.75.75h-.5a.75.75 0 010-1.5h.5A.75.75 0 016 8zm2.25.75a.75.75 0 000-1.5h-.5a.75.75 0 000 1.5h.5zM12 8a.75.75 0 01-.75.75h-.5a.75.75 0 010-1.5h.5A.75.75 0 0112 8zm2.25.75a.75.75 0 000-1.5h-.5a.75.75 0 000 1.5h.5z\"></path></svg>,\n\tupload: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8.53 1.22a.75.75 0 00-1.06 0L3.72 4.97a.75.75 0 001.06 1.06l2.47-2.47v6.69a.75.75 0 001.5 0V3.56l2.47 2.47a.75.75 0 101.06-1.06L8.53 1.22zM3.75 13a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5z\"></path></svg>,\n\tx: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z\"></path></svg>,\n\tx_circle: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M3.404 12.596a6.5 6.5 0 119.192-9.192 6.5 6.5 0 01-9.192 9.192zM2.344 2.343a8 8 0 1011.313 11.314A8 8 0 002.343 2.343zM6.03 4.97a.75.75 0 00-1.06 1.06L6.94 8 4.97 9.97a.75.75 0 101.06 1.06L8 9.06l1.97 1.97a.75.75 0 101.06-1.06L9.06 8l1.97-1.97a.75.75 0 10-1.06-1.06L8 6.94 6.03 4.97z\"></path></svg>,\n}\n","import { useEffect, useRef, useState } from 'preact/hooks'\nimport { useVersion } from '../contexts/Version.jsx'\nimport { useAsync } from '../hooks/useAsync.js'\nimport type { Item } from '../previews/LootTable.js'\nimport { MaxDamageItems } from '../previews/LootTable.js'\nimport { getAssetUrl } from '../services/DataFetcher.js'\nimport { renderItem } from '../services/Resources.js'\nimport { getCollections } from '../services/Schemas.js'\nimport { ItemTooltip } from './ItemTooltip.jsx'\nimport { Octicon } from './Octicon.jsx'\n\ninterface Props {\n\titem: Item,\n\tslotDecoration?: boolean,\n\tadvancedTooltip?: boolean,\n}\nexport function ItemDisplay({ item, slotDecoration, advancedTooltip }: Props) {\n\tconst el = useRef<HTMLDivElement>(null)\n\tconst [tooltipOffset, setTooltipOffset] = useState<[number, number]>([0, 0])\n\tconst [tooltipSwap, setTooltipSwap] = useState(false)\n\n\tuseEffect(() => {\n\t\tconst onMove = (e: MouseEvent) => {\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\tconst { right, width } = el.current!.getBoundingClientRect()\n\t\t\t\tconst swap = right + 200 > document.body.clientWidth\n\t\t\t\tsetTooltipSwap(swap)\n\t\t\t\tsetTooltipOffset([(swap ? width - e.offsetX : e.offsetX) + 20, e.offsetY - 40])\n\t\t\t})\n\t\t}\n\t\tel.current?.addEventListener('mousemove', onMove)\n\t\treturn () => el.current?.removeEventListener('mousemove', onMove)\n\t}, [])\n\n\tconst maxDamage = MaxDamageItems.get(item.id)\n\n\treturn <div class=\"item-display\" ref={el}>\n\t\t<ItemItself item={item} />\n\t\t{item.count !== 1 && <>\n\t\t\t<svg class=\"item-count\" width=\"100%\" height=\"100%\" viewBox=\"0 0 100 100\" preserveAspectRatio=\"xMinYMid meet\">\n\t\t\t\t<text x=\"95\" y=\"93\" font-size=\"50\" textAnchor=\"end\" fontFamily=\"MinecraftSeven\" fill=\"#373737\">{item.count}</text>\n\t\t\t\t<text x=\"90\" y=\"88\" font-size=\"50\" textAnchor=\"end\" fontFamily=\"MinecraftSeven\" fill=\"#ffffff\">{item.count}</text>\n\t\t\t</svg>\n\t\t</>}\n\t\t{slotDecoration && <>\n\t\t\t{(maxDamage && (item.tag?.Damage ?? 0) > 0) && <svg class=\"item-durability\" width=\"100%\" height=\"100%\" viewBox=\"0 0 18 18\">\n\t\t\t\t<rect x=\"3\" y=\"14\" width=\"13\" height=\"2\" fill=\"#000\" />\n\t\t\t\t<rect x=\"3\" y=\"14\" width={`${(maxDamage - item.tag.Damage) / maxDamage * 13}`} height=\"1\" fill={`hsl(${(maxDamage - item.tag.Damage) / maxDamage * 120}deg, 100%, 50%)`} />\n\t\t\t</svg>}\n\t\t\t<div class=\"item-slot-overlay\"></div>\n\t\t</>}\n\t\t<ItemTooltip {...item} advanced={advancedTooltip} offset={tooltipOffset} swap={tooltipSwap} />\n\t</div>\n}\n\nfunction ItemItself({ item }: Props) {\n\tconst { version } = useVersion()\n\tconst [errored, setErrored] = useState(false)\n\n\tconst isEnchanted = (item.tag?.Enchantments?.length ?? 0) > 0 || (item.tag?.StoredEnchantments?.length ?? 0) > 0\n\n\tif (errored || (item.id.includes(':') && !item.id.startsWith('minecraft:'))) {\n\t\treturn Octicon.package\n\t}\n\n\tconst { value: collections } = useAsync(() => getCollections(version), [])\n\n\tif (collections === undefined) {\n\t\treturn null\n\t}\n\n\tconst texturePath = `item/${item.id.replace(/^minecraft:/, '')}`\n\tif (collections.get('texture').includes('minecraft:' + texturePath)) {\n\t\tconst src = getAssetUrl(version, 'textures', texturePath)\n\t\treturn <>\n\t\t\t<img src={src} alt=\"\" onError={() => setErrored(true)} draggable={false} />\n\t\t\t{isEnchanted && <div class=\"item-glint\" style={{'--mask-image': `url(\"${src}\")`}}></div>}\n\t\t</>\n\t}\n\n\tconst modelPath = `item/${item.id.replace(/^minecraft:/, '')}`\n\tif (collections.get('model').includes('minecraft:' + modelPath)) {\n\t\treturn <RenderedItem item={item} isEnchanted={isEnchanted} />\n\t}\n\n\treturn Octicon.package\n}\n\nfunction RenderedItem({ item, isEnchanted }: Props & { isEnchanted: boolean }) {\n\tconst { version } = useVersion()\n\tconst { value: src } = useAsync(() => renderItem(version, item.id), [version, item])\n\n\tif (src) {\n\t\treturn <>\n\t\t\t<img src={src} alt={item.id} class=\"model\" draggable={false} />\n\t\t\t{isEnchanted && <div class=\"item-glint\" style={{'--mask-image': `url(\"${src}\")`}}></div>}\n\t\t</>\n\t}\n\n\treturn <div class=\"item-display\">\n\t\t{Octicon.package}\n\t</div>\n}\n","import { DataModel } from '@mcschema/core'\nimport { useEffect, useRef, useState } from 'preact/hooks'\nimport { useLocale, useVersion } from '../../contexts/index.js'\nimport type { SlottedItem } from '../../previews/LootTable.js'\nimport { generateLootTable } from '../../previews/LootTable.js'\nimport { clamp, randomSeed } from '../../Utils.js'\nimport { Btn, BtnMenu, NumberInput } from '../index.js'\nimport { ItemDisplay } from '../ItemDisplay.jsx'\nimport type { PreviewProps } from './index.js'\n\nexport const LootTablePreview = ({ data }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst { version } = useVersion()\n\tconst [seed, setSeed] = useState(randomSeed())\n\tconst [luck, setLuck] = useState(0)\n\tconst [daytime, setDaytime] = useState(0)\n\tconst [weather, setWeather] = useState('clear')\n\tconst [mixItems, setMixItems] = useState(true)\n\tconst [advancedTooltips, setAdvancedTooltips] = useState(true)\n\tconst overlay = useRef<HTMLDivElement>(null)\n\n\tconst [items, setItems] = useState<SlottedItem[]>([])\n\n\tconst table = DataModel.unwrapLists(data)\n\tconst state = JSON.stringify(table)\n\tuseEffect(() => {\n\t\tconst items = generateLootTable(table, { version, seed, luck, daytime, weather, stackMixer: mixItems ? 'container' : 'default' })\n\t\tsetItems(items)\n\t}, [version, seed, luck, daytime, weather, mixItems, state])\n\n\treturn <>\n\t\t<div ref={overlay} class=\"preview-overlay\">\n\t\t\t<img src=\"/images/container.png\" alt=\"Container background\" class=\"pixelated\" draggable={false} />\n\t\t\t{items.map(({ slot, item }) =>\n\t\t\t\t<div key={slot} style={slotStyle(slot)}>\n\t\t\t\t\t<ItemDisplay item={item} slotDecoration={true} advancedTooltip={advancedTooltips} />\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t<BtnMenu icon=\"gear\" tooltip={locale('settings')} >\n\t\t\t\t<div class=\"btn btn-input\" onClick={e => e.stopPropagation()}>\n\t\t\t\t\t<span>{locale('preview.luck')}</span>\n\t\t\t\t\t<NumberInput value={luck} onChange={setLuck} />\n\t\t\t\t</div>\n\t\t\t\t<div class=\"btn btn-input\" onClick={e => e.stopPropagation()}>\n\t\t\t\t\t<span>{locale('preview.daytime')}</span>\n\t\t\t\t\t<NumberInput value={daytime} onChange={setDaytime} />\n\t\t\t\t</div>\n\t\t\t\t<div class=\"btn btn-input\" onClick={e => e.stopPropagation()}>\n\t\t\t\t\t<span>{locale('preview.weather')}</span>\n\t\t\t\t\t<select value={weather} onChange={e => setWeather((e.target as HTMLSelectElement).value)} >\n\t\t\t\t\t\t{['clear', 'rain', 'thunder'].map(v =>\n\t\t\t\t\t\t\t<option value={v}>{locale(`preview.weather.${v}`)}</option>)}\n\t\t\t\t\t</select>\n\t\t\t\t</div>\n\t\t\t\t<Btn icon={mixItems ? 'square_fill' : 'square'} label=\"Fill container randomly\" onClick={e => {setMixItems(!mixItems); e.stopPropagation()}} />\n\t\t\t\t<Btn icon={advancedTooltips ? 'square_fill' : 'square'} label=\"Advanced tooltips\" onClick={e => {setAdvancedTooltips(!advancedTooltips); e.stopPropagation()}} />\n\t\t\t</BtnMenu>\n\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')} onClick={() => setSeed(randomSeed())} />\n\t\t</div>\n\t</>\n}\n\nconst GUI_WIDTH = 176\nconst GUI_HEIGHT = 81\nconst SLOT_SIZE = 18\n\nfunction slotStyle(slot: number) {\n\tslot = clamp(slot, 0, 26)\n\tconst x = (slot % 9) * SLOT_SIZE + 7\n\tconst y = (Math.floor(slot / 9)) * SLOT_SIZE + 20\n\treturn {\n\t\tleft: `${x*100/GUI_WIDTH}%`,\n\t\ttop: `${y*100/GUI_HEIGHT}%`,\n\t\twidth: `${SLOT_SIZE*100/GUI_WIDTH}%`,\n\t\theight: `${SLOT_SIZE*100/GUI_HEIGHT}%`,\n\t}\n}\n","import type { DataModel } from '@mcschema/core'\nimport { Path } from '@mcschema/core'\nimport { useState } from 'preact/hooks'\nimport { useModel } from '../../hooks/index.js'\nimport type { VersionId } from '../../services/index.js'\nimport { checkVersion } from '../../services/index.js'\nimport { BiomeSourcePreview, DecoratorPreview, DensityFunctionPreview, NoisePreview, NoiseSettingsPreview } from '../previews/index.js'\nimport { LootTablePreview } from '../previews/LootTablePreview.jsx'\n\nexport const HasPreview = ['loot_table', 'dimension', 'worldgen/density_function', 'worldgen/noise', 'worldgen/noise_settings', 'worldgen/configured_feature', 'worldgen/placed_feature']\n\ntype PreviewPanelProps = {\n\tmodel: DataModel | undefined,\n\tversion: VersionId,\n\tid: string,\n\tshown: boolean,\n\tonError: (message: string) => unknown,\n}\nexport function PreviewPanel({ model, version, id, shown }: PreviewPanelProps) {\n\tconst [, setCount] = useState(0)\n\n\tuseModel(model, () => {\n\t\tsetCount(count => count + 1)\n\t})\n\n\tif (!model) return <></>\n\n\tif (id === 'loot_table') {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return <LootTablePreview {...{ model, version, shown, data }} />\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 <BiomeSourcePreview {...{ model, version, shown, data }} />\n\t}\n\n\tif (id === 'worldgen/density_function') {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return <DensityFunctionPreview {...{ model, version, shown, data }} />\n\t}\n\n\tif (id === 'worldgen/noise') {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return <NoisePreview {...{ model, version, shown, data }} />\n\t}\n\n\tif (id === 'worldgen/noise_settings') {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return <NoiseSettingsPreview {...{ model, version, shown, data }} />\n\t}\n\n\tif ((id === 'worldgen/placed_feature' || (id === 'worldgen/configured_feature' && checkVersion(version, '1.16', '1.17')))) {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return <DecoratorPreview {...{ model, version, shown, data }} />\n\t}\n\n\treturn <></>\n}\n","import { useEffect, useMemo, useRef, useState } from 'preact/hooks'\nimport config from '../../Config.js'\nimport type { Project } from '../../contexts/index.js'\nimport { disectFilePath, useLocale, useProject } from '../../contexts/index.js'\nimport type { VersionId } from '../../services/index.js'\nimport { DEFAULT_VERSION, parseSource } from '../../services/index.js'\nimport { message, readZip } from '../../Utils.js'\nimport { Btn, BtnMenu, FileUpload, Octicon, TextInput } from '../index.js'\nimport { Modal } from '../Modal.js'\n\ninterface Props {\n\tonClose: () => unknown,\n}\nexport function ProjectCreation({ onClose }: Props) {\n\tconst { locale } = useLocale()\n\tconst { projects, createProject, changeProject, updateProject } = useProject()\n\n\tconst [name, setName] = useState('')\n\tconst [namespace, setNamespace] = useState('')\n\tconst [version, setVersion] = useState(DEFAULT_VERSION)\n\tconst [file, setFile] = useState<File | undefined>(undefined)\n\tconst [creating, setCreating] = useState(false)\n\n\tconst onUpload = (file: File) => {\n\t\tif (file.type.match(/^application\\/(x-)?zip(-compressed)?$/)) {\n\t\t\tif (name.length === 0) {\n\t\t\t\tsetName(file.name\n\t\t\t\t\t.replace(/\\.zip$/, '')\n\t\t\t\t\t.replaceAll(/[ _-]+/g, ' '))\n\t\t\t}\n\t\t\tsetFile(file)\n\t\t}\n\t}\n\n\tconst projectUpdater = useRef(updateProject)\n\tuseEffect(() => {\n\t\tprojectUpdater.current = updateProject\n\t}, [updateProject])\n\n\tconst onCreate = () => {\n\t\tsetCreating(true)\n\t\tcreateProject(name, namespace || undefined, version)\n\t\tchangeProject(name)\n\t\tif (file) {\n\t\t\treadZip(file).then(async (entries) => {\n\t\t\t\tconst project: Partial<Project> = { files: [] }\n\t\t\t\tawait Promise.all(entries.map(async (entry) => {\n\t\t\t\t\tconst file = disectFilePath(entry[0])\n\t\t\t\t\tif (file) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst data = await parseSource(entry[1], 'json')\n\t\t\t\t\t\t\tproject.files!.push({ ...file, data })\n\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\tconsole.error(`Failed parsing ${file.type} ${file.id}: ${message(e)}`)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}))\n\t\t\t\tprojectUpdater.current(project)\n\t\t\t\tonClose()\n\t\t\t}).catch(() => {\n\t\t\t\tonClose()\n\t\t\t})\n\t\t} else {\n\t\t\tonClose()\n\t\t}\n\t}\n\n\tconst invalidName = useMemo(() => {\n\t\treturn projects.map(p => p.name.trim().toLowerCase()).includes(name.trim().toLowerCase())\n\t}, [projects, name])\n\n\tconst invalidNamespace = useMemo(() => {\n\t\treturn !(namespace.length === 0 || namespace.match(/^(?:[a-z0-9._-]+:)?[a-z0-9/._-]+$/))\n\t}, [namespace])\n\n\tconst versions = config.versions.map(v => v.id as VersionId).reverse()\n\n\treturn <Modal class=\"project-creation\" onDismiss={onClose}>\n\t\t<p>{locale('project.create')}</p>\n\t\t<div class=\"input-group\">\n\t\t\t<TextInput autofocus class={`btn btn-input${!creating && (invalidName || name.length === 0) ? ' invalid': ''}`} placeholder={locale('project.name')} value={name} onChange={setName} />\n\t\t\t{!creating && invalidName && <div class=\"status-icon danger tooltipped tip-e\" aria-label={locale('project.name.already_exists')}>{Octicon.issue_opened}</div>}\n\t\t</div>\n\t\t<div class=\"input-group\">\n\t\t\t<TextInput class={`btn btn-input${!creating && invalidNamespace ? ' invalid' : ''}`} placeholder={locale('project.namespace')} value={namespace} onChange={setNamespace} />\n\t\t\t{!creating && invalidNamespace && <div class=\"status-icon danger tooltipped tip-e\" aria-label={locale('project.namespace.invalid')}>{Octicon.issue_opened}</div>}\n\t\t</div>\n\t\t<BtnMenu icon=\"tag\" label={version} tooltip={locale('switch_version')} data-cy=\"version-switcher\">\n\t\t\t{versions.map(v =>\n\t\t\t\t<Btn label={v} active={v === version} onClick={() => setVersion(v)} />\n\t\t\t)}\n\t\t</BtnMenu>\n\t\t<FileUpload value={file} onChange={onUpload} label={locale('choose_zip_file')} accept=\".zip\"/>\n\t\t<Btn icon=\"rocket\" label=\"Create!\" disabled={creating || invalidName || name.length === 0 || invalidNamespace} onClick={onCreate} />\n\t</Modal>\n}\n","import { Analytics } from '../../Analytics.js'\nimport { useLocale, useProject } from '../../contexts/index.js'\nimport { Btn } from '../Btn.js'\nimport { Modal } from '../Modal.js'\n\ninterface Props {\n\tonClose: () => void,\n}\nexport function ProjectDeletion({ onClose }: Props) {\n\tconst { locale } = useLocale()\n\tconst { projects, project, deleteProject } = useProject()\n\n\tconst doSave = () => {\n\t\tAnalytics.deleteProject(projects.length, project.files.length, 'menu')\n\t\tdeleteProject(project.name)\n\t\tonClose()\n\t}\n\n\treturn <Modal class=\"file-modal\" onDismiss={onClose}>\n\t\t<p>{locale('project.delete_confirm.1', project.name)}</p>\n\t\t<p><b>{locale('project.delete_confirm.2')}</b></p>\n\t\t<div class=\"button-group\">\n\t\t\t<Btn icon=\"trashcan\" label={locale('project.delete')} onClick={doSave} class=\"danger\" />\n\t\t\t<Btn label={locale('project.cancel')} onClick={onClose} />\n\t\t</div>\n\t</Modal>\n}\n","import { useMemo, useState } from 'preact/hooks'\nimport { useFocus } from '../hooks/index.js'\nimport { Octicon } from './index.js'\n\nconst SEPARATOR = '/'\n\nexport interface EntryAction {\n\ticon: keyof typeof Octicon,\n\tlabel: string,\n\tonAction: (entry: string) => unknown,\n}\n\nexport interface EntryError {\n\tpath: string,\n\tmessage: string,\n}\n\ninterface Props {\n\tentries: string[],\n\tonSelect: (entry: string) => unknown,\n\tselected?: string,\n\tactions?: EntryAction[],\n\terrors?: EntryError[],\n\tindent?: number,\n}\nexport function TreeView({ entries, onSelect, selected, actions, errors, indent }: Props) {\n\tconst roots = useMemo(() => {\n\t\tconst groups: Record<string, string[]> = {}\n\t\tfor (const entry of entries) {\n\t\t\tconst i = entry.indexOf(SEPARATOR)\n\t\t\tif (i >= 0) {\n\t\t\t\tconst root = entry.slice(0, i)\n\t\t\t\t;(groups[root] ??= []).push(entry.slice(i + 1))\n\t\t\t}\n\t\t}\n\t\treturn Object.entries(groups).map(([r, entries]) => {\n\t\t\tconst rootActions = actions?.map(a => ({ ...a, onAction: (e: string) => a.onAction(r + SEPARATOR + e) }))\n\t\t\tconst rootErrors = errors?.flatMap(e => e.path.startsWith(r + SEPARATOR) ? [{ ...e, path: e.path.slice(r.length + SEPARATOR.length) }] : [])\n\t\t\treturn [r, entries, rootActions, rootErrors] as [string, string[], EntryAction[], EntryError[]]\n\t\t}).sort()\n\t}, [entries, actions, errors])\n\n\tconst leaves = useMemo(() => {\n\t\treturn entries.filter(e => !e.includes(SEPARATOR))\n\t}, [entries])\n\n\tconst [hidden, setHidden] = useState(new Set<string>())\n\tconst toggle = (root: string) => {\n\t\tif (hidden.has(root)) {\n\t\t\thidden.delete(root)\n\t\t} else {\n\t\t\thidden.add(root)\n\t\t}\n\t\tsetHidden(new Set(hidden))\n\t}\n\n\treturn <div class=\"tree-view\" style={`--indent: ${indent ?? 0};`}>\n\t\t{roots.map(([r, entries, actions, errors]) => <div>\n\t\t\t<TreeViewEntry icon={hidden.has(r) ? 'chevron_right' : 'chevron_down'} key={r} label={r} onClick={() => toggle(r)} error={(errors?.length ?? 0) > 0} />\n\t\t\t{!hidden.has(r) &&\n\t\t\t\t<TreeView entries={entries} onSelect={e => onSelect(`${r}${SEPARATOR}${e}`)}\n\t\t\t\t\tselected={selected?.startsWith(r + SEPARATOR) ? selected.substring(r.length + 1) : undefined}\n\t\t\t\t\tactions={actions} errors={errors} indent={(indent ?? 0) + 1} />}\n\t\t</div>)}\n\t\t{leaves.map(e => <TreeViewEntry icon=\"file\" key={e} label={e} active={e === selected} onClick={() => onSelect(e)} actions={actions?.map(a => ({ ...a, onAction: () => a.onAction(e) }))} error={errors?.find(er => er.path === e)?.message} />)}\n\t</div>\n}\n\ninterface TreeViewEntryProps {\n\ticon: keyof typeof Octicon,\n\tlabel: string,\n\tactive?: boolean,\n\tonClick?: () => unknown,\n\tactions?: EntryAction[],\n\terror?: string | boolean,\n}\nfunction TreeViewEntry({ icon, label, active, onClick, actions, error }: TreeViewEntryProps) {\n\tconst [focused, setFocus] = useFocus()\n\tconst onContextMenu = (evt: MouseEvent) => {\n\t\tevt.preventDefault()\n\t\tif (actions?.length) {\n\t\t\tsetFocus()\n\t\t}\n\t}\n\n\treturn <div class={`entry${error ? ' has-error' : ''}${active ? ' active' : ''}${focused ? ' focused' : ''}`} onClick={onClick} onContextMenu={onContextMenu} >\n\t\t{Octicon[icon]}\n\t\t<span>{label.replaceAll('\\u2215', '/')}</span>\n\t\t{typeof error === 'string' && <div class=\"status-icon danger tooltipped tip-se\" aria-label={error}>\n\t\t\t{Octicon.issue_opened}\t\n\t\t</div>}\n\t\t{focused && <div class=\"entry-menu\">\n\t\t\t{actions?.map(a => <div class=\"action\" onClick={e => { a.onAction(''); e.stopPropagation(); setFocus(false) }}>{Octicon[a.icon]}{a.label}</div>)}\n\t\t</div>}\n\t</div>\n}\n","import type { DataModel } from '@mcschema/core'\nimport { useCallback, useMemo, useRef, useState } from 'preact/hooks'\nimport { Analytics } from '../../Analytics.js'\nimport config from '../../Config.js'\nimport { disectFilePath, DRAFT_PROJECT, getFilePath, useLocale, useProject, useVersion } from '../../contexts/index.js'\nimport type { VersionId } from '../../services/index.js'\nimport { stringifySource } from '../../services/index.js'\nimport { Store } from '../../Store.js'\nimport { writeZip } from '../../Utils.js'\nimport { Btn } from '../Btn.js'\nimport { BtnMenu } from '../BtnMenu.js'\nimport type { EntryAction } from '../TreeView.js'\nimport { TreeView } from '../TreeView.js'\n\ninterface Props {\n\tmodel: DataModel | undefined,\n\tversion: VersionId,\n\tid: string,\n\tonError: (message: string) => unknown,\n\tonRename: (file: { type: string, id: string }) => unknown,\n\tonCreate: () => unknown,\n\tonDeleteProject: () => unknown,\n}\nexport function ProjectPanel({ onRename, onCreate, onDeleteProject }: Props) {\n\tconst { locale } = useLocale()\n\tconst { version } = useVersion()\n\tconst { projects, project, changeProject, file, openFile, updateFile } = useProject()\n\n\tconst [treeViewMode, setTreeViewMode] = useState(Store.getTreeViewMode())\n\n\tconst changeTreeViewMode = useCallback((mode: string) => {\n\t\tStore.setTreeViewMode(mode)\n\t\tAnalytics.setTreeViewMode(mode)\n\t\tsetTreeViewMode(mode)\n\t}, [])\n\n\tconst disectEntry = useCallback((entry: string) => {\n\t\tif (treeViewMode === 'resources' && entry !== 'pack.mcmeta') {\n\t\t\tconst [type, id] = entry.split('/')\n\t\t\treturn {\n\t\t\t\ttype: type.replaceAll('\\u2215', '/'),\n\t\t\t\tid: id.replaceAll('\\u2215', '/'),\n\t\t\t}\n\t\t}\n\t\treturn disectFilePath(entry)\n\t}, [treeViewMode])\n\n\tconst entries = useMemo(() => project.files.flatMap(f => {\n\t\tconst path = getFilePath(f)\n\t\tif (!path) return []\n\t\tif (f.type === 'pack_mcmeta') return 'pack.mcmeta'\n\t\tif (treeViewMode === 'resources') {\n\t\t\treturn [`${f.type.replaceAll('/', '\\u2215')}/${f.id.replaceAll('/', '\\u2215')}`]\n\t\t}\n\t\treturn [path]\n\t}), [treeViewMode, ...project.files])\n\n\tconst selected = useMemo(() => file && getFilePath(file), [file])\n\n\tconst selectFile = useCallback((entry: string) => {\n\t\tconst file = disectEntry(entry)\n\t\tif (file) {\n\t\t\topenFile(file.type, file.id)\n\t\t}\n\t}, [disectEntry])\n\n\tconst download = useRef<HTMLAnchorElement>(null)\n\n\tconst onDownload = async () => {\n\t\tif (!download.current) return\n\t\tlet hasPack = false\n\t\tconst entries = project.files.flatMap(file => {\n\t\t\tconst path = getFilePath(file)\n\t\t\tif (path === undefined) return []\n\t\t\tif (path === 'pack.mcmeta') hasPack = true\n\t\t\treturn [[path, stringifySource(file.data)]] as [string, string][]\n\t\t})\n\t\tif (!hasPack) {\n\t\t\tconst pack_format = config.versions.find(v => v.id === version)!.pack_format\n\t\t\tentries.push(['pack.mcmeta', stringifySource({ pack: { pack_format, description: '' } })])\n\t\t}\n\t\tconst url = await writeZip(entries)\n\t\tdownload.current.setAttribute('href', url)\n\t\tdownload.current.setAttribute('download', `${project.name.replaceAll(' ', '_')}.zip`)\n\t\tdownload.current.click()\n\t}\n\n\tconst actions = useMemo<EntryAction[]>(() => [\n\t\t{\n\t\t\ticon: 'pencil',\n\t\t\tlabel: locale('project.rename_file'),\n\t\t\tonAction: (e) => {\n\t\t\t\tconst file = disectEntry(e)\n\t\t\t\tif (file) {\n\t\t\t\t\tonRename(file)\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ticon: 'trashcan',\n\t\t\tlabel: locale('project.delete_file'),\n\t\t\tonAction: (e) => {\n\t\t\t\tconst file = disectEntry(e)\n\t\t\t\tif (file) {\n\t\t\t\t\tAnalytics.deleteProjectFile(file.type, projects.length, project.files.length, 'menu')\n\t\t\t\t\tupdateFile(file.type, file.id, {})\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t], [disectEntry, updateFile, onRename])\n\n\treturn <>\n\t\t<div class=\"project-controls\">\n\t\t\t<BtnMenu icon=\"chevron_down\" label={project.name} tooltip={locale('switch_project')} tooltipLoc=\"se\">\n\t\t\t\t{projects.map(p => <Btn label={p.name} active={p.name === project.name} onClick={() => changeProject(p.name)} />)}\n\t\t\t</BtnMenu>\n\t\t\t<BtnMenu icon=\"kebab_horizontal\" >\n\t\t\t\t<Btn icon=\"file_zip\" label={locale('project.download')} onClick={onDownload} />\n\t\t\t\t<Btn icon=\"plus_circle\" label={locale('project.new')} onClick={onCreate} />\n\t\t\t\t<Btn icon={treeViewMode === 'resources' ? 'three_bars' : 'rows'} label={locale(treeViewMode === 'resources' ? 'project.show_file_paths' : 'project.show_resources')} onClick={() => changeTreeViewMode(treeViewMode === 'resources' ? 'files' : 'resources')} />\n\t\t\t\t{project.name !== DRAFT_PROJECT.name && <Btn icon=\"trashcan\" label={locale('project.delete')} onClick={onDeleteProject} />}\n\t\t\t</BtnMenu>\n\t\t</div>\n\t\t<div class=\"file-view\">\n\t\t\t{entries.length === 0\n\t\t\t\t? <span>{locale('project.no_files')}</span>\n\t\t\t\t: <TreeView entries={entries} selected={selected} onSelect={selectFile} actions={actions} />}\n\t\t</div>\n\t\t<a ref={download} style=\"display: none;\"></a>\n\t</>\n}\n","import type { DataModel, Hook } from '@mcschema/core'\nimport { ModelPath, relativePath } from '@mcschema/core'\nimport type { BlockStateRegistry } from '../services/index.js'\n\nexport function getOutput(model: DataModel, blockStates: BlockStateRegistry): any {\n\treturn model.schema.hook(transformOutput, new ModelPath(model), model.data, { blockStates })\n}\n\nexport type OutputProps = {\n\tblockStates: BlockStateRegistry,\n}\nexport const transformOutput: Hook<[any, OutputProps], any> = {\n\tbase({}, _, value) {\n\t\treturn value\n\t},\n\n\tchoice({ switchNode }, path, value, props) {\n\t\treturn switchNode.hook(this, path, value, props)\n\t},\n\n\tlist({ children }, path, value, props) {\n\t\tif (!Array.isArray(value)) return value\n\t\tconst res = value.map((obj, index) =>\n\t\t\tchildren.hook(this, path.push(index), obj.node, props)\n\t\t)\n\t\tfor (const a of Object.getOwnPropertySymbols(value)) {\n\t\t\tres[a as any] = value[a as any]\n\t\t}\n\t\treturn res\n\t},\n\n\tmap({ children, config }, path, value, props) {\n\t\tif (value === undefined) return undefined\n\t\tconst blockState = config.validation?.validator === 'block_state_map'? props.blockStates?.[relativePath(path, config.validation.params.id).get()] : null\n\t\tconst res: any = {}\n\t\tObject.keys(value).forEach(f => {\n\t\t\tif (blockState) {\n\t\t\t\tif (!Object.keys(blockState.properties ?? {}).includes(f)) return\n\t\t\t}\n\t\t\tres[f] = children.hook(this, path.push(f), value[f], props)\n\t\t})\n\t\tfor (const a of Object.getOwnPropertySymbols(value)) {\n\t\t\tres[a as any] = value[a]\n\t\t}\n\t\treturn res\n\t},\n\n\tobject({ getActiveFields }, path, value, props) {\n\t\tif (value === undefined || value === null || typeof value !== 'object') {\n\t\t\treturn value\n\t\t}\n\t\tconst res: any = {}\n\t\tconst activeFields = getActiveFields(path)\n\t\tObject.keys(activeFields)\n\t\t\t.filter(k => activeFields[k].enabled(path))\n\t\t\t.forEach(f => {\n\t\t\t\tconst out = activeFields[f].hook(this, path.push(f), value[f], props)\n\t\t\t\tif (out !== undefined && out !== null) {\n\t\t\t\t\tres[f] = out\n\t\t\t\t}\n\t\t\t})\n\t\tfor (const a of Object.getOwnPropertySymbols(value)) {\n\t\t\tres[a as any] = value[a]\n\t\t}\n\t\treturn res\n\t},\n}\n","import { DataModel } from '@mcschema/core'\nimport { useCallback, useEffect, useRef, useState } from 'preact/hooks'\nimport { useLocale } from '../../contexts/index.js'\nimport { useModel } from '../../hooks/index.js'\nimport { getOutput } from '../../schema/transformOutput.js'\nimport type { BlockStateRegistry } from '../../services/index.js'\nimport { getSourceFormats, getSourceIndent, getSourceIndents, parseSource, stringifySource } from '../../services/index.js'\nimport { Store } from '../../Store.js'\nimport { message } from '../../Utils.js'\nimport { Btn, BtnMenu } from '../index.js'\n\ninterface Editor {\n\tgetValue(): string\n\tsetValue(value: string): void\n\tconfigure(indent: string, format: string): void\n\tselect(): void\n}\n\ntype SourcePanelProps = {\n\tname: string,\n\tmodel: DataModel | undefined,\n\tblockStates: BlockStateRegistry | undefined,\n\tdoCopy?: number,\n\tdoDownload?: number,\n\tdoImport?: number,\n\tcopySuccess: () => unknown,\n\tonError: (message: string | Error) => unknown,\n}\nexport function SourcePanel({ name, model, blockStates, doCopy, doDownload, doImport, copySuccess, onError }: SourcePanelProps) {\n\tconst { locale } = useLocale()\n\tconst [indent, setIndent] = useState(Store.getIndent())\n\tconst [format, setFormat] = useState(Store.getFormat())\n\tconst [highlighting, setHighlighting] = useState(Store.getHighlighting())\n\tconst [braceLoaded, setBraceLoaded] = useState(false)\n\tconst download = useRef<HTMLAnchorElement>(null)\n\tconst retransform = useRef<Function>(() => {})\n\tconst onImport = useRef<() => Promise<void>>(async () => {})\n\n\tconst textarea = useRef<HTMLTextAreaElement>(null)\n\tconst editor = useRef<Editor>()\n\n\tconst getSerializedOutput = useCallback((model: DataModel, blockStates: BlockStateRegistry) => {\n\t\tconst data = getOutput(model, blockStates)\n\t\treturn stringifySource(data, format, indent)\n\t}, [indent, format])\n\n\tuseEffect(() => {\n\t\tretransform.current = () => {\n\t\t\tif (!editor.current) return\n\t\t\tif (!model || !blockStates) return\n\t\t\ttry {\n\t\t\t\tconst output = getSerializedOutput(model, blockStates)\n\t\t\t\teditor.current.setValue(output)\n\t\t\t} catch (e) {\n\t\t\t\tif (e instanceof Error) {\n\t\t\t\t\te.message = `Error getting JSON output: ${e.message}`\n\t\t\t\t\tonError(e)\n\t\t\t\t} else {\n\t\t\t\t\tonError(`Error getting JSON output: ${message(e)}`)\n\t\t\t\t}\n\t\t\t\tconsole.error(e)\n\t\t\t\teditor.current.setValue('')\n\t\t\t}\n\t\t}\n\n\t\tonImport.current = async () => {\n\t\t\tif (!editor.current) return\n\t\t\tconst value = editor.current.getValue()\n\t\t\tif (value.length === 0) return\n\t\t\ttry {\n\t\t\t\tconst data = await parseSource(value, format)\n\t\t\t\tmodel?.reset(DataModel.wrapLists(data), false)\n\t\t\t} catch (e) {\n\t\t\t\tif (e instanceof Error) {\n\t\t\t\t\te.message = `Error importing: ${e.message}`\n\t\t\t\t\tonError(e)\n\t\t\t\t} else {\n\t\t\t\t\tonError(`Error importing: ${message(e)}`)\n\t\t\t\t}\n\t\t\t\tconsole.error(e)\n\t\t\t}\n\t\t}\n\t}, [model, blockStates, indent, format, highlighting])\n\n\tuseEffect(() => {\n\t\tif (highlighting) {\n\t\t\tsetBraceLoaded(false)\n\t\t\teditor.current = {\n\t\t\t\tgetValue() { return ''},\n\t\t\t\tsetValue() {},\n\t\t\t\tconfigure() {},\n\t\t\t\tselect() {},\n\t\t\t}\n\t\t\timport('brace').then(async (brace) => {\n\t\t\t\tawait Promise.all([\n\t\t\t\t\timport('brace/mode/json'),\n\t\t\t\t\timport('brace/mode/yaml'),\n\t\t\t\t])\n\t\t\t\tconst braceEditor = brace.edit('editor')\n\t\t\t\tbraceEditor.setOptions({\n\t\t\t\t\tfontSize: 14,\n\t\t\t\t\tshowFoldWidgets: false,\n\t\t\t\t\thighlightSelectedWord: false,\n\t\t\t\t})\n\t\t\t\tbraceEditor.$blockScrolling = Infinity\n\t\t\t\tbraceEditor.on('blur', () => onImport.current())\n\t\t\t\tbraceEditor.getSession().setMode('ace/mode/json')\n\n\t\t\t\teditor.current = {\n\t\t\t\t\tgetValue() {\n\t\t\t\t\t\treturn braceEditor.getSession().getValue()\n\t\t\t\t\t},\n\t\t\t\t\tsetValue(value) {\n\t\t\t\t\t\tbraceEditor.getSession().setValue(value)\n\t\t\t\t\t},\n\t\t\t\t\tconfigure(indent, format) {\n\t\t\t\t\t\tbraceEditor.setOption('useSoftTabs', indent !== 'tabs')\n\t\t\t\t\t\tbraceEditor.setOption('tabSize', indent === 'tabs' ? 4 : getSourceIndent(indent))\n\t\t\t\t\t\tbraceEditor.getSession().setMode(`ace/mode/${format}`)\n\t\t\t\t\t},\n\t\t\t\t\tselect() {\n\t\t\t\t\t\tbraceEditor.selectAll()\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t\tsetBraceLoaded(true)\n\t\t\t})\n\t\t} else {\n\t\t\teditor.current = {\n\t\t\t\tgetValue() {\n\t\t\t\t\tif (!textarea.current) return ''\n\t\t\t\t\treturn textarea.current.value\n\t\t\t\t},\n\t\t\t\tsetValue(value: string) {\n\t\t\t\t\tif (!textarea.current) return\n\t\t\t\t\ttextarea.current.value = value\n\t\t\t\t},\n\t\t\t\tconfigure() {},\n\t\t\t\tselect() {},\n\t\t\t}\n\t\t}\n\t}, [highlighting])\n\n\tuseModel(model, () => {\n\t\tif (!retransform.current) return\n\t\tretransform.current()\n\t})\n\tuseEffect(() => {\n\t\tif (!retransform.current) return\n\t\tif (model) retransform.current()\n\t}, [model])\n\n\tuseEffect(() => {\n\t\tif (!editor.current || !retransform.current) return\n\t\tif (!highlighting || braceLoaded) {\n\t\t\teditor.current.configure(indent, format)\n\t\t\tretransform.current()\n\t\t}\n\t}, [indent, format, highlighting, braceLoaded])\n\n\tuseEffect(() => {\n\t\tif (doCopy && model && blockStates) {\n\t\t\tnavigator.clipboard.writeText(getSerializedOutput(model, blockStates)).then(() => {\n\t\t\t\tcopySuccess()\n\t\t\t})\n\t\t}\n\t}, [doCopy])\n\n\tuseEffect(() => {\n\t\tif (doDownload && model && blockStates && download.current) {\n\t\t\tconst content = encodeURIComponent(getSerializedOutput(model, blockStates))\n\t\t\tdownload.current.setAttribute('href', `data:text/json;charset=utf-8,${content}`)\n\t\t\tconst fileName = name === 'pack_mcmeta' ? 'pack.mcmeta' : `${name}.${format}`\n\t\t\tdownload.current.setAttribute('download', fileName)\n\t\t\tdownload.current.click()\n\t\t}\n\t}, [doDownload])\n\n\tuseEffect(() => {\n\t\tif (doImport && editor.current) {\n\t\t\teditor.current.setValue('')\n\t\t\teditor.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\tconst changeHighlighting = (value: boolean) => {\n\t\tStore.setHighlighting(value)\n\t\tsetHighlighting(value)\n\t}\n\n\treturn <> \n\t\t<div class=\"controls source-controls\">\n\t\t\t<BtnMenu icon=\"gear\" tooltip={locale('output_settings')} data-cy=\"source-controls\">\n\t\t\t\t{getSourceIndents().map(key =>\n\t\t\t\t\t<Btn label={locale(`indentation.${key}`)} active={indent === key}\n\t\t\t\t\t\tonClick={() => changeIndent(key)}/>\n\t\t\t\t)}\n\t\t\t\t<hr />\n\t\t\t\t{getSourceFormats().map(key =>\n\t\t\t\t\t<Btn label={locale(`format.${key}`)} active={format === key}\n\t\t\t\t\t\tonClick={() => changeFormat(key)} />)}\n\t\t\t\t<hr />\n\t\t\t\t<Btn icon={highlighting ? 'square_fill' : 'square'} label={locale('highlighting')}\n\t\t\t\t\tonClick={() => changeHighlighting(!highlighting)} />\n\t\t\t</BtnMenu>\n\t\t</div>\n\t\t{highlighting\n\t\t\t? <pre id=\"editor\" class=\"source\"></pre>\n\t\t\t: <textarea ref={textarea} class=\"source\" spellcheck={false} autocorrect=\"off\" onBlur={onImport.current}></textarea>}\n\t\t<a ref={download} style=\"display: none;\"></a>\n\t</>\n}\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 d,Fragment as v,render as p,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){var e=C({},t);return delete e.ref,n(e,t.ref||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:d(d(n).map(t))},k={map:N,forEach:N,count:function(n){return n?d(n).length:0},only:function(n){var t=d(n);if(1!==t.length)throw\"Children.only\";return t[0]},toArray:d},A=h.__e;h.__e=function(n,t,e,r){if(n.then)for(var u,o=t;o=o.__;)if((u=o.__c)&&u.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),u.__c(n,t);A(n,t,e,r)};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 F(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 M(){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 T=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]<e[0])break;n.u=e=e[2]}};function D(n){return this.getChildContext=function(){return n.context},n.children}function I(n){var t=this,e=n.i;t.componentWillUnmount=function(){p(null,t.l),t.l=null,t.i=null},t.i&&t.i!==e&&t.componentWillUnmount(),n.__v?(t.l||(t.i=e,t.l={nodeType:1,parentNode:e,childNodes:[],appendChild:function(n){this.childNodes.push(n),t.i.appendChild(n)},insertBefore:function(n,e){this.childNodes.push(n),t.i.appendChild(n)},removeChild:function(n){this.childNodes.splice(this.childNodes.indexOf(n)>>>1,1),t.i.removeChild(n)}}),p(s(D,{context:t.context},n.__v),t.l)):t.l&&t.componentWillUnmount()}function W(n,t){var e=s(I,{__v:n,i:t});return e.containerInfo=t,e}(M.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),T(t,n,r)):u()};e?e(o):o()}},M.prototype.render=function(n){this.u=null,this.o=new Map;var t=d(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},M.prototype.componentDidUpdate=M.prototype.componentDidMount=function(){var n=this;this.o.forEach(function(t,e){T(n,e,t)})};var P=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103,V=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|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]/,j=\"undefined\"!=typeof document,z=function(n){return(\"undefined\"!=typeof Symbol&&\"symbol\"==typeof Symbol()?/fil|che|rad/i:/fil|che|ra/i).test(n)};function B(n,t,e){return null==t.__k&&(t.textContent=\"\"),p(n,t),\"function\"==typeof e&&e(),n?n.__c:null}function $(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 q(){return this.defaultPrevented}h.event=function(n){return H&&(n=H(n)),n.persist=Z,n.isPropagationStopped=Y,n.isDefaultPrevented=q,n.nativeEvent=n};var G,J={configurable:!0,get:function(){return this.class}},K=h.vnode;h.vnode=function(n){var t=n.type,e=n.props,r=e;if(\"string\"==typeof t){var u=-1===t.indexOf(\"-\");for(var o in r={},e){var i=e[o];j&&\"children\"===o&&\"noscript\"===t||\"value\"===o&&\"defaultValue\"in e&&null==i||(\"defaultValue\"===o&&\"value\"in e&&null==e.value?o=\"value\":\"download\"===o&&!0===i?i=\"\":/ondoubleclick/i.test(o)?o=\"ondblclick\":/^onchange(textarea|input)/i.test(o+t)&&!z(e.type)?o=\"oninput\":/^onfocus$/i.test(o)?o=\"onfocusin\":/^onblur$/i.test(o)?o=\"onfocusout\":/^on(Ani|Tra|Tou|BeforeInp|Compo)/.test(o)?o=o.toLowerCase():u&&V.test(o)?o=o.replace(/[A-Z0-9]/,\"-$&\").toLowerCase():null===i&&(i=void 0),/^oninput/i.test(o)&&(o=o.toLowerCase(),r[o]&&(o=\"oninputCapture\")),r[o]=i)}\"select\"==t&&r.multiple&&Array.isArray(r.value)&&(r.value=d(e.children).forEach(function(n){n.props.selected=-1!=r.value.indexOf(n.props.value)})),\"select\"==t&&null!=r.defaultValue&&(r.value=d(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,e.class!=e.className&&(J.enumerable=\"className\"in e,null!=e.className&&(r.class=e.className),Object.defineProperty(r,\"className\",J))}n.$$typeof=P,K&&K(n)};var Q=h.__r;h.__r=function(n){Q&&Q(n),G=n.__c};var X={ReactCurrentDispatcher:{current:{readContext:function(n){return G.__n[n.__c].props.value}}}},nn=\"17.0.2\";function tn(n){return s.bind(null,n)}function en(n){return!!n&&n.$$typeof===P}function rn(n){return en(n)?y.apply(null,arguments):n}function un(n){return!!n.__k&&(p(null,n),!0)}function on(n){return n&&(n.base||1===n.nodeType&&n)||null}var ln=function(n,t){return n(t)},fn=function(n,t){return n(t)},cn=v;export default{useState:n,useReducer:t,useEffect:e,useLayoutEffect:r,useRef:u,useImperativeHandle:o,useMemo:i,useCallback:l,useContext:f,useDebugValue:c,version:\"17.0.2\",Children:k,render:B,hydrate:$,unmountComponentAtNode:un,createPortal:W,createElement:s,createContext:_,createFactory:tn,cloneElement:rn,createRef:b,Fragment:v,isValidElement:en,findDOMNode:on,Component:a,PureComponent:E,memo:g,forwardRef:x,flushSync:fn,unstable_batchedUpdates:ln,StrictMode:v,Suspense:L,SuspenseList:M,lazy:F,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:X};export{nn as version,k as Children,B as render,$ as hydrate,un as unmountComponentAtNode,W as createPortal,tn as createFactory,rn as cloneElement,en as isValidElement,on as findDOMNode,E as PureComponent,g as memo,x as forwardRef,fn as flushSync,ln as unstable_batchedUpdates,cn as StrictMode,L as Suspense,M as SuspenseList,F as lazy,X as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED};\n//# sourceMappingURL=compat.module.js.map\n","import type { INode, Path } from '@mcschema/core'\nimport { DataModel } from '@mcschema/core'\n\nexport class ModelWrapper extends DataModel {\n\tconstructor(\n\t\tschema: INode<any>,\n\t\tprivate readonly mapper: (path: Path) => Path,\n\t\tprivate readonly getter: (path: Path) => any,\n\t\tprivate readonly setter: (path: Path, value: any, silent?: boolean) => any,\n\t) {\n\t\tsuper(schema)\n\t}\n\n\tmap(path: Path) {\n\t\treturn this.mapper(path)\n\t}\n\n\tget(path: Path) {\n\t\treturn this.getter(path)\n\t}\n\n\tset(path: Path, value: any, silent?: boolean) {\n\t\treturn this.setter(path, value, silent)\n\t}\n}\n","import type { BooleanHookParams, EnumOption, Hook, INode, NodeChildren, NumberHookParams, StringHookParams, ValidationOption } from '@mcschema/core'\nimport { DataModel, ListNode, MapNode, ModelPath, ObjectNode, Path, relativePath, StringNode } from '@mcschema/core'\nimport type { ComponentChildren, JSX } from 'preact'\nimport { memo } from 'preact/compat'\nimport { useState } from 'preact/hooks'\nimport { Btn, Octicon } from '../components/index.js'\nimport { ItemDisplay } from '../components/ItemDisplay.jsx'\nimport config from '../Config.js'\nimport { localize, useStore } from '../contexts/index.js'\nimport { useFocus } from '../hooks/index.js'\nimport { VanillaColors } from '../previews/index.js'\nimport type { BlockStateRegistry, VersionId } from '../services/index.js'\nimport { CachedDecorator, CachedFeature } from '../services/index.js'\nimport { deepClone, deepEqual, generateUUID, hexId, hexToRgb, isObject, newSeed, rgbToHex, stringToColor } from '../Utils.js'\nimport { ModelWrapper } from './ModelWrapper.js'\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', 'structure_placement.type', 'density_function.type', 'root_placer.type', 'entity.type_specific.cat.variant', 'entity.type_specific.frog.variant']\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', 'density_function.type', 'root_placer.type', 'entity.type_specific.type', 'glyph_provider.type', 'immersive_weathering.area_condition.type', 'immersive_weathering.block_growth.growth_for_face.entry.direction', 'immersive_weathering.position_test.predicate_type']\nconst nbtFields = ['function.set_nbt.tag', 'advancement.display.icon.nbt', 'text_component_object.nbt', 'entity.nbt', 'block.nbt', 'item.nbt']\nconst fixedLists = ['generator_biome.parameters.temperature', 'generator_biome.parameters.humidity', 'generator_biome.parameters.continentalness', 'generator_biome.parameters.erosion', 'generator_biome.parameters.depth', 'generator_biome.parameters.weirdness', 'feature.end_spike.crystal_beam_target', 'feature.end_gateway.exit', 'decorator.block_filter.offset', 'block_predicate.matching_blocks.offset', 'block_predicate.matching_fluids.offset', 'model_element.from', 'model_element.to', 'model_element.rotation.origin', 'model_element.faces.uv', 'item_transform.rotation', 'item_transform.translation', 'item_transform.scale', 'generator_structure.random_spread.locate_offset']\nconst collapsedFields = ['noise_settings.surface_rule', 'noise_settings.noise.terrain_shaper']\nconst collapsableFields = ['density_function.argument', 'density_function.argument1', 'density_function.argument2', 'density_function.input', 'density_function.when_in_range', 'density_function.when_out_of_range']\n\nconst findGenerator = (id: string) => {\n\treturn config.generators.find(g => g.id === id.replace(/^\\$/, ''))\n}\n\n/**\n * Secondary model used to remember the keys of a map\n */\nconst keysModel = new DataModel(MapNode(\n\tStringNode(),\n\tStringNode()\n), { historyMax: 0 })\n\ntype JSXTriple = [JSX.Element | null, JSX.Element | null, JSX.Element | null]\ntype RenderHook = Hook<[any, string, VersionId, BlockStateRegistry, Record<string, any>], JSXTriple>\n\ntype NodeProps<T> = T & {\n\tnode: INode<any>,\n\tpath: ModelPath,\n\tvalue: any,\n\tlang: string,\n\tversion: VersionId,\n\tstates: BlockStateRegistry,\n\tctx: Record<string, any>,\n}\n\nexport function FullNode({ model, lang, version, blockStates }: { model: DataModel, lang: string, version: VersionId, blockStates: BlockStateRegistry }) {\n\tconst path = new ModelPath(model)\n\tconst [prefix, suffix, body] = model.schema.hook(renderHtml, path, deepClone(model.data), lang, version, blockStates, {})\n\treturn suffix?.props?.children.some((c: any) => c) ? <div class={`node ${model.schema.type(path)}-node`} data-category={model.schema.category(path)}>\n\t\t<div class=\"node-header\">{prefix}{suffix}</div>\n\t\t<div class=\"node-body\">{body}</div>\n\t</div> : body\n}\n\nconst renderHtml: RenderHook = {\n\tbase() {\n\t\treturn [null, null, null]\n\t},\n\n\tboolean(params, path, value, lang, version, states, ctx) {\n\t\treturn [null, <BooleanSuffix {...{...params, path, value, lang, version, states, ctx}} />, null]\n\t},\n\n\tchoice({ choices, config, switchNode }, path, value, lang, version, states, ctx) {\n\t\tconst choice = switchNode.activeCase(path, true) as typeof choices[number]\n\t\tconst contextPath = (config?.context) ? new ModelPath(path.getModel(), new Path(path.getArray(), [config.context])) : path\n\t\tconst [prefix, suffix, body] = choice.node.hook(this, contextPath, value, lang, version, states, ctx)\n\t\tif (choices.length === 1) {\n\t\t\treturn [prefix, suffix, body]\n\t\t}\n\t\tconst choiceContextPath = config?.choiceContext ? new Path([], [config.choiceContext]) : config?.context ? new Path([], [config.context]) : path\n\t\tconst set = (type: string) => {\n\t\t\tconst c = choices.find(c => c.type === type) ?? choice\n\t\t\tconst def = c.node.default()\n\t\t\tconst newValue = c.change\n\t\t\t\t? c.change(DataModel.unwrapLists(value))\n\t\t\t\t: config.choiceContext === 'feature' && def?.type === 'minecraft:decorated' ? def.config.feature : def\n\t\t\tpath.model.set(path, DataModel.wrapLists(newValue))\n\t\t}\n\t\tconst inject = <select value={choice.type} onChange={(e) => set((e.target as HTMLSelectElement).value)}>\n\t\t\t{choices.map(c => <option value={c.type}>\n\t\t\t\t{pathLocale(lang, choiceContextPath.contextPush(c.type))}\n\t\t\t</option>)}\n\t\t</select>\n\t\treturn [prefix, <>{inject}{suffix}</>, body]\n\t},\n\n\tlist({ children, config }, path, value, lang, version, states, ctx) {\n\t\tconst { expand, collapse, isToggled } = useToggles()\n\t\tconst [maxShown, setMaxShown] = useState(50)\n\n\t\tconst context = path.getContext().join('.')\n\t\tif (fixedLists.includes(context)) {\n\t\t\tconst prefix = <>\n\t\t\t\t{[...Array(config.maxLength!)].map((_, i) =>\n\t\t\t\t\t<ErrorPopup lang={lang} path={path.modelPush(i)} />)}\n\t\t\t\t<div class=\"fixed-list\"></div>\n\t\t\t</>\n\t\t\tconst suffix = <>{[...Array(config.maxLength)].map((_, i) => {\n\t\t\t\tconst child = children.hook(this, path.modelPush(i), value?.[i]?.node, lang, version, states, ctx)\n\t\t\t\treturn child[1]\n\t\t\t})}</>\n\t\t\treturn [prefix, suffix, null]\n\t\t}\n\n\t\tconst onAdd = () => {\n\t\t\tif (!Array.isArray(value)) value = []\n\t\t\tconst node = DataModel.wrapLists(children.default())\n\t\t\tpath.model.set(path, [{ node, id: hexId() }, ...value])\n\t\t}\n\t\tconst onAddBottom = () => {\n\t\t\tif (!Array.isArray(value)) value = []\n\t\t\tconst node = DataModel.wrapLists(children.default())\n\t\t\tpath.model.set(path, [...value, { node, id: hexId() }])\n\t\t}\n\t\tconst suffix = <button class=\"add tooltipped tip-se\" aria-label={localize(lang, 'add_top')} onClick={onAdd}>{Octicon.plus_circle}</button>\n\t\tconst body = <>\n\t\t\t{(value && Array.isArray(value)) && value.map(({ node: cValue, id: cId }, index) => {\n\t\t\t\tif (index === maxShown) {\n\t\t\t\t\treturn <div class=\"node node-header\">\n\t\t\t\t\t\t<label>{localize(lang, 'entries_hidden', `${value.length - maxShown}`)}</label>\n\t\t\t\t\t\t<button onClick={() => setMaxShown(Math.min(maxShown + 50, value.length))}>{localize(lang, 'entries_hidden.more', '50')}</button>\n\t\t\t\t\t\t<button onClick={() => setMaxShown(value.length)}>{localize(lang, 'entries_hidden.all')}</button>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\tif (index > maxShown) {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\n\t\t\t\tconst cPath = path.push(index).contextPush('entry')\n\t\t\t\tconst canToggle = children.type(cPath) === 'object'\n\t\t\t\tconst toggle = isToggled(cId)\n\n\t\t\t\tlet label: undefined | string | JSX.Element\n\t\t\t\tif (['loot_pool.entries.entry', 'loot_entry.alternatives.children.entry', 'loot_entry.group.children.entry', 'loot_entry.sequence.children.entry', 'function.set_contents.entries.entry'].includes(cPath.getContext().join('.'))) {\n\t\t\t\t\tif (isObject(cValue) && typeof cValue.type === 'string' && cValue.type.replace(/^minecraft:/, '') === 'item' && typeof cValue.name === 'string') {\n\t\t\t\t\t\tlabel = <ItemDisplay item={{ id: cValue.name, count: 1 }} />\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (canToggle && (toggle === false || (toggle === undefined && value.length > 20))) {\n\t\t\t\t\treturn <div class=\"node node-header\" data-category={children.category(cPath)}>\n\t\t\t\t\t\t<ErrorPopup lang={lang} path={cPath} nested />\n\t\t\t\t\t\t<button class=\"toggle tooltipped tip-se\" aria-label={`${localize(lang, 'expand')}\\n${localize(lang, 'expand_all', 'Ctrl')}`} onClick={expand(cId)}>{Octicon.chevron_right}</button>\n\t\t\t\t\t\t<label>{label ?? pathLocale(lang, cPath, `${index}`)}</label>\n\t\t\t\t\t\t<Collapsed key={cId} path={cPath} value={cValue} schema={children} />\n\t\t\t\t\t</div>\n\t\t\t\t}\n\n\t\t\t\tconst onRemove = () => cPath.set(undefined)\n\t\t\t\tconst onMoveUp = () => {\n\t\t\t\t\tconst v = [...path.get()];\n\t\t\t\t\t[v[index - 1], v[index]] = [v[index], v[index - 1]]\n\t\t\t\t\tpath.model.set(path, v)\n\t\t\t\t}\n\t\t\t\tconst onMoveDown = () => {\n\t\t\t\t\tconst v = [...path.get()];\n\t\t\t\t\t[v[index + 1], v[index]] = [v[index], v[index + 1]]\n\t\t\t\t\tpath.model.set(path, v)\n\t\t\t\t}\n\t\t\t\tconst actions: MenuAction[] = [\n\t\t\t\t\t{\n\t\t\t\t\t\ticon: 'duplicate',\n\t\t\t\t\t\tlabel: 'duplicate',\n\t\t\t\t\t\tonSelect: () => {\n\t\t\t\t\t\t\tconst v = [...path.get()]\n\t\t\t\t\t\t\tv.splice(index, 0, { id: hexId(), node: deepClone(cValue) })\n\t\t\t\t\t\t\tpath.model.set(path, v)\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t]\n\t\t\t\treturn <MemoedTreeNode key={cId} label={label} path={cPath} schema={children} value={cValue} {...{lang, version, states, actions}} ctx={{...ctx, index: (index === 0 ? 1 : 0) + (index === value.length - 1 ? 2 : 0)}}>\n\t\t\t\t\t{canToggle && <button class=\"toggle tooltipped tip-se\" aria-label={`${localize(lang, 'collapse')}\\n${localize(lang, 'collapse_all', 'Ctrl')}`} onClick={collapse(cId)}>{Octicon.chevron_down}</button>}\n\t\t\t\t\t<button class=\"remove tooltipped tip-se\" aria-label={localize(lang, 'remove')} onClick={onRemove}>{Octicon.trashcan}</button>\n\t\t\t\t\t{value.length > 1 && <div class=\"node-move\">\n\t\t\t\t\t\t<button class=\"move tooltipped tip-se\" aria-label={localize(lang, 'move_up')} onClick={onMoveUp} disabled={index === 0}>{Octicon.chevron_up}</button>\n\t\t\t\t\t\t<button class=\"move tooltipped tip-se\" aria-label={localize(lang, 'move_down')} onClick={onMoveDown} disabled={index === value.length - 1}>{Octicon.chevron_down}</button>\n\t\t\t\t\t</div>}\n\t\t\t\t</MemoedTreeNode>\n\t\t\t})}\n\t\t\t{(value && value.length > 0 && value.length <= maxShown) && <div class=\"node node-header\">\n\t\t\t\t<button class=\"add tooltipped tip-se\" aria-label={localize(lang, 'add_bottom')} onClick={onAddBottom}>{Octicon.plus_circle}</button>\n\t\t\t</div>}\n\t\t</>\n\t\treturn [null, suffix, body]\n\t},\n\n\tmap({ children, keys, config }, path, value, lang, version, states, ctx) {\n\t\tconst { expand, collapse, isToggled } = useToggles()\n\n\t\tconst keyPath = new ModelPath(keysModel, new Path([hashString(path.toString())]))\n\t\tconst onAdd = () => {\n\t\t\tconst key = keyPath.get()\n\t\t\tpath.model.set(path.push(key), DataModel.wrapLists(children.default()))\n\t\t}\n\t\tconst blockState = config.validation?.validator === 'block_state_map' ? states?.[relativePath(path, config.validation.params.id).get()] : null\n\t\tconst keysSchema = blockState?.properties\n\t\t\t? StringNode(null!, { enum: Object.keys(blockState.properties ?? {}) })\n\t\t\t: keys\n\t\tif (blockState && path.last() === 'Properties') {\n\t\t\tif (typeof value !== 'object') value = {}\n\t\t\tconst properties = Object.entries(blockState.properties ?? {})\n\t\t\t\t.map(([key, values]) => [key, StringNode(null!, { enum: values })])\n\t\t\tObject.entries(blockState.properties ?? {}).forEach(([key, values]) => {\n\t\t\t\tif (typeof value[key] !== 'string') {\n\t\t\t\t\tpath.model.errors.add(path.push(key), 'error.expected_string')\n\t\t\t\t} else if (!values.includes(value[key])) {\n\t\t\t\t\tpath.model.errors.add(path.push(key), 'error.invalid_enum_option', value[key])\n\t\t\t\t}\n\t\t\t})\n\t\t\treturn ObjectNode(Object.fromEntries(properties)).hook(this, path, value, lang, version, states, ctx)\n\t\t}\n\t\tconst suffix = <>\n\t\t\t{keysSchema.hook(this, keyPath, keyPath.get() ?? '', lang, version, states, ctx)[1]}\n\t\t\t<button class=\"add tooltipped tip-se\" aria-label={localize(lang, 'add')} onClick={onAdd}>{Octicon.plus_circle}</button>\n\t\t</>\n\t\tconst body = <>\n\t\t\t{typeof value === 'object' && Object.entries(value).map(([key, cValue]) => {\n\n\t\t\t\tconst cPath = path.modelPush(key)\n\t\t\t\tconst canToggle = children.type(cPath) === 'object'\n\t\t\t\tconst toggle = isToggled(key)\n\t\t\t\tif (canToggle && (toggle === false || (toggle === undefined && value.length > 20))) {\n\t\t\t\t\treturn <div class=\"node node-header\" data-category={children.category(cPath)}>\n\t\t\t\t\t\t<ErrorPopup lang={lang} path={cPath} nested />\n\t\t\t\t\t\t<button class=\"toggle tooltipped tip-se\" aria-label={`${localize(lang, 'expand')}\\n${localize(lang, 'expand_all', 'Ctrl')}`} onClick={expand(key)}>{Octicon.chevron_right}</button>\n\t\t\t\t\t\t<label>{key}</label>\n\t\t\t\t\t\t<Collapsed key={key} path={cPath} value={cValue} schema={children} />\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\tconst cSchema = blockState\n\t\t\t\t\t? StringNode(null!, { enum: blockState.properties?.[key] ?? [] })\n\t\t\t\t\t: children\n\t\t\t\tif (blockState?.properties?.[key] && typeof cValue === 'string'\n\t\t\t\t\t&& !blockState.properties?.[key].includes(cValue)) {\n\t\t\t\t\tpath.model.errors.add(cPath, 'error.invalid_enum_option', cValue)\n\t\t\t\t}\n\t\t\t\tconst onRemove = () => cPath.set(undefined)\n\t\t\t\treturn <MemoedTreeNode key={key} schema={cSchema} path={cPath} value={cValue} {...{lang, version, states, ctx}} label={key}>\n\t\t\t\t\t{canToggle && <button class=\"toggle tooltipped tip-se\" aria-label={`${localize(lang, 'collapse')}\\n${localize(lang, 'collapse_all', 'Ctrl')}`} onClick={collapse(key)}>{Octicon.chevron_down}</button>}\n\t\t\t\t\t<button class=\"remove tooltipped tip-se\" aria-label={localize(lang, 'remove')} onClick={onRemove}>{Octicon.trashcan}</button>\n\t\t\t\t</MemoedTreeNode>\n\t\t\t})}\n\t\t</>\n\t\treturn [null, suffix, body]\n\t},\n\n\tnumber(params, path, value, lang, version, states, ctx) {\n\t\treturn [null, <NumberSuffix {...{...params, path, value, lang, version, states, ctx}} />, null]\n\t},\n\n\tobject({ node, config, getActiveFields, getChildModelPath }, path, value, lang, version, states, ctx) {\n\t\tconst { expand, collapse, isToggled } = useToggles()\n\n\t\tif (path.getArray().length == 0 && isDecorated(config.context, value)) {\n\t\t\tconst { wrapper, fields } = createDecoratorsWrapper(getActiveFields(path), path, value)\n\t\t\tvalue = wrapper.data\n\t\t\tgetActiveFields = () => fields\n\t\t\tgetChildModelPath = (path, key) => new ModelPath(wrapper, new Path(path.getArray(), ['feature'])).push(key)\n\t\t}\n\n\t\tlet prefix: JSX.Element | null = null\n\t\tlet suffix: JSX.Element | null = null\n\t\tif (node.optional()) {\n\t\t\tif (value === undefined) {\n\t\t\t\tconst onExpand = () => path.set(DataModel.wrapLists(node.default()))\n\t\t\t\tsuffix = <button class=\"collapse closed tooltipped tip-se\" aria-label={localize(lang, 'expand')} onClick={onExpand}>{Octicon.plus_circle}</button>\n\t\t\t} else {\n\t\t\t\tconst onCollapse = () => path.set(undefined)\n\t\t\t\tsuffix = <button class=\"collapse open tooltipped tip-se\" aria-label={localize(lang, 'remove')} onClick={onCollapse}>{Octicon.trashcan}</button>\n\t\t\t}\n\t\t}\n\t\tconst context = path.getContext().join('.')\n\t\tif (collapsableFields.includes(context) || collapsedFields.includes(context)) {\n\t\t\tconst toggled = isToggled('')\n\t\t\tconst expanded = collapsedFields.includes(context) ? toggled : !toggled\n\t\t\tprefix = <>\n\t\t\t\t<button class=\"toggle tooltipped tip-se\" aria-label={localize(lang, expanded ? 'collapse' : 'expand')} onClick={toggled ? collapse('') : expand('')}>{expanded ? Octicon.chevron_down : Octicon.chevron_right}</button>\n\t\t\t</>\n\t\t\tif (!expanded) {\n\t\t\t\treturn [prefix, suffix, null]\n\t\t\t}\n\t\t}\n\n\t\tconst newCtx = (typeof value === 'object' && value !== null && node.default()?.pools)\n\t\t\t? { ...ctx, loot: value?.type } : ctx\n\t\tconst body = <>\n\t\t\t{(typeof value === 'object' && value !== null && !(node.optional() && value === undefined)) &&\n\t\t\t\tObject.entries(getActiveFields(path))\n\t\t\t\t\t.filter(([_, child]) => child.enabled(path))\n\t\t\t\t\t.map(([key, child]) => {\n\t\t\t\t\t\tconst cPath = getChildModelPath(path, key)\n\t\t\t\t\t\tconst context = cPath.getContext().join('.')\n\t\t\t\t\t\tif (hiddenFields.includes(context)) return null\n\t\t\t\t\t\tconst [cPrefix, cSuffix, cBody] = child.hook(this, cPath, value[key], lang, version, states, newCtx)\n\t\t\t\t\t\tconst isFlattened = child.type(cPath) === 'object' && flattenedFields.includes(context)\n\t\t\t\t\t\tconst isInlined = inlineFields.includes(context)\n\t\t\t\t\t\tif (isFlattened || isInlined) {\n\t\t\t\t\t\t\tprefix = <>{prefix}<ErrorPopup lang={lang} path={cPath} /><HelpPopup lang={lang} path={cPath} />{cPrefix}</>\n\t\t\t\t\t\t\tsuffix = <>{suffix}{cSuffix}</>\n\t\t\t\t\t\t\treturn isFlattened ? cBody : null\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn <MemoedTreeNode key={key} schema={child} path={cPath} value={value[key]} {...{lang, version, states, ctx: newCtx}} />\n\t\t\t\t\t})\n\t\t\t}\n\t\t</>\n\t\treturn [prefix, suffix, body]\n\t},\n\n\tstring(params, path, value, lang, version, states, ctx) {\n\t\treturn [null, <StringSuffix {...{...params, path, value, lang, version, states, ctx}} />, null]\n\t},\n}\n\nfunction Collapsed({ path, value }: { path: ModelPath, value: any, schema: INode<any> }) {\n\tconst context = path.getContext().join('.')\n\tswitch (context) {\n\t\tcase 'loot_table.pools.entry':\n\t\t\treturn <label>{value?.entries?.length ?? 0} entries</label>\n\t\tcase 'function.set_contents.entries.entry':\n\t\tcase 'loot_pool.entries.entry':\n\t\t\treturn <label>{value?.name?.replace(/^minecraft:/, '') ?? value?.type?.replace(/^minecraft:/, '')}</label>\n\t}\n\tfor (const child of Object.values(value ?? {})) {\n\t\tif (typeof child === 'string') {\n\t\t\treturn <label>{child.replace(/^minecraft:/, '')}</label>\n\t\t}\n\t}\n\treturn null\n}\n\nfunction useToggles() {\n\tconst [toggleState, setToggleState] = useState(new Map<string, boolean>())\n\tconst [toggleAll, setToggleAll] = useState<boolean | undefined>(undefined)\n\n\tconst expand = (key: string) => (evt: MouseEvent) => {\n\t\tif (evt.ctrlKey) {\n\t\t\tsetToggleState(new Map())\n\t\t\tsetToggleAll(true)\n\t\t} else {\n\t\t\tsetToggleState(state => new Map(state.set(key, true)))\n\t\t}\n\t}\n\tconst collapse = (key: string) => (evt: MouseEvent) => {\n\t\tif (evt.ctrlKey) {\n\t\t\tsetToggleState(new Map())\n\t\t\tsetToggleAll(false)\n\t\t} else {\n\t\t\tsetToggleState(state => new Map(state.set(key, false)))\n\t\t}\n\t}\n\t\n\tconst isToggled = (key: string) => {\n\t\tif (!(toggleState instanceof Map)) return false\n\t\treturn toggleState.get(key) ?? toggleAll\n\t}\n\n\treturn { expand, collapse, isToggled }\n}\n\nfunction BooleanSuffix({ path, node, value, lang }: NodeProps<BooleanHookParams>) {\n\tconst set = (target: boolean) => {\n\t\tpath.model.set(path, node.optional() && value === target ? undefined : target)\n\t}\n\treturn <>\n\t\t<button class={value === false ? 'selected' : ''} onClick={() => set(false)}>{localize(lang, 'false')}</button>\n\t\t<button class={value === true ? 'selected' : ''} onClick={() => set(true)}>{localize(lang, 'true')}</button>\n\t</>\n}\n\nfunction NumberSuffix({ path, config, integer, value, lang }: NodeProps<NumberHookParams>) {\n\tconst onChange = (evt: Event) => {\n\t\tconst value = (evt.target as HTMLInputElement).value\n\t\tconst parsed = integer ? parseInt(value) : parseFloat(value)\n\t\tpath.model.set(path, parsed)\n\t}\n\tconst onColor = (evt: Event) => {\n\t\tconst value = (evt.target as HTMLInputElement).value\n\t\tconst parsed = parseInt(value.slice(1), 16)\n\t\tpath.model.set(path, parsed)\n\t}\n\treturn <>\n\t\t<input type=\"text\" value={value ?? ''} onBlur={onChange} onKeyDown={evt => {if (evt.key === 'Enter') onChange(evt)}} />\n\t\t{config?.color && <input type=\"color\" value={'#' + (value?.toString(16).padStart(6, '0') ?? '000000')} onChange={onColor} />}\n\t\t{['dimension.generator.seed', 'dimension.generator.biome_source.seed', 'world_settings.seed', 'structure_placement.salt'].includes(path.getContext().join('.')) && <button onClick={() => newSeed(path.model)} class=\"tooltipped tip-se\" aria-label={localize(lang, 'generate_new_seed')}>{Octicon.sync}</button>}\n\t</>\n}\n\nfunction StringSuffix({ path, getValues, config, node, value, lang, version, states }: NodeProps<StringHookParams>) {\n\tconst onChange = (evt: Event) => {\n\t\tevt.stopPropagation()\n\t\tconst newValue = (evt.target as HTMLSelectElement).value\n\t\tif (newValue === value) return\n\t\tpath.model.set(path, newValue.length === 0 ? undefined : newValue)\n\t}\n\tconst values = getValues()\n\tconst context = path.getContext().join('.')\n\tconst id = !isEnum(config) && config?.validator === 'resource' && typeof config.params.pool === 'string' ? config.params.pool : undefined\n\n\tif (nbtFields.includes(context)) {\n\t\treturn <textarea value={value ?? ''} onBlur={onChange}></textarea>\n\t} else if ((isEnum(config) && !config.additional) || selectRegistries.includes(context)) {\n\t\tlet context = new Path([])\n\t\tif (isEnum(config) && typeof config.enum === 'string') {\n\t\t\tcontext = context.contextPush(config.enum)\n\t\t} else if (id) {\n\t\t\tcontext = context.contextPush(id)\n\t\t} else if (isEnum(config)) {\n\t\t\tcontext = path\n\t\t}\n\t\treturn <select value={value ?? ''} onChange={onChange}>\n\t\t\t{node.optional() && <option value=\"\">{localize(lang, 'unset')}</option>}\n\t\t\t{values.map(v => <option value={v}>\n\t\t\t\t{pathLocale(lang, context.contextPush(v.replace(/^minecraft:/, '')))}\n\t\t\t</option>)}\n\t\t</select>\n\t} else if (!isEnum(config) && config?.validator === 'block_state_key') {\n\t\tconst blockState = states?.[relativePath(path, config.params.id).get()]\n\t\tconst values = Object.keys(blockState?.properties ?? {})\n\t\treturn <select value={value ?? ''} onChange={onChange}>\n\t\t\t{values.map(v => <option>{v}</option>)}\n\t\t</select>\n\t} else {\n\t\tconst { biomeColors, setBiomeColor } = useStore()\n\t\tconst fullId = typeof value === 'string' ? value.includes(':') ? value : 'minecraft:' + value : 'unknown'\n\t\tconst datalistId = hexId()\n\t\tconst gen = id ? findGenerator(id) : undefined\n\t\treturn <>\n\t\t\t<input value={value ?? ''} onBlur={onChange} onKeyDown={evt => {if (evt.key === 'Enter') onChange(evt)}}\n\t\t\t\tlist={values.length > 0 ? datalistId : ''} />\n\t\t\t{values.length > 0 && <datalist id={datalistId}>\n\t\t\t\t{values.map(v => <option value={v} />)}\n\t\t\t</datalist>}\n\t\t\t{['generator_biome.biome'].includes(context) && <input type=\"color\" value={rgbToHex(biomeColors[fullId] ?? VanillaColors[fullId] ?? stringToColor(fullId))} onChange={v => setBiomeColor(fullId, hexToRgb(v.currentTarget.value))}></input>}\n\t\t\t{['attribute_modifier.id', 'text_component_object.hoverEvent.show_entity.contents.id'].includes(context) && <button onClick={() => path.set(generateUUID())} class=\"tooltipped tip-se\" aria-label={localize(lang, 'generate_new_uuid')}>{Octicon.sync}</button>}\n\t\t\t{gen && values.includes(value) && value.startsWith('minecraft:') &&\n\t\t\t\t<a href={`/${gen.url}/?version=${version}&preset=${value.replace(/^minecraft:/, '')}`} class=\"tooltipped tip-se\" aria-label={localize(lang, 'follow_reference')}>{Octicon.link_external}</a>}\n\t\t</>\n\t}\n}\n\ntype MenuAction = {\n\tlabel: string,\n\tdescription?: string,\n\ticon: keyof typeof Octicon,\n\tonSelect: () => unknown,\n}\n\ntype TreeNodeProps = {\n\tschema: INode<any>,\n\tpath: ModelPath,\n\tvalue: any,\n\tlang: string,\n\tversion: VersionId,\n\tstates: BlockStateRegistry,\n\tctx: Record<string, any>,\n\tcompare?: any,\n\tlabel?: string | ComponentChildren,\n\tactions?: MenuAction[],\n\tchildren?: ComponentChildren,\n}\nfunction TreeNode({ label, schema, path, value, lang, version, states, ctx, actions, children }: TreeNodeProps) {\n\tconst type = schema.type(path)\n\tconst category = schema.category(path)\n\tconst context = path.getContext().join('.')\n\n\tconst [active, setActive] = useFocus()\n\tconst onContextMenu = (evt: MouseEvent) => {\n\t\tevt.preventDefault()\n\t\tsetActive()\n\t}\n\n\tconst newCtx: Record<string, any> = { ...ctx, depth: (ctx.depth ?? 0) + 1 }\n\tdelete newCtx.index\n\tconst [prefix, suffix, body] = schema.hook(renderHtml, path, value, lang, version, states, newCtx)\n\treturn <div class={`node ${type}-node`} data-category={category}>\n\t\t<div class=\"node-header\" onContextMenu={onContextMenu}>\n\t\t\t<ErrorPopup lang={lang} path={path} />\n\t\t\t<HelpPopup lang={lang} path={path} />\n\t\t\t{children}\n\t\t\t{prefix}\n\t\t\t<label>\n\t\t\t\t{label ?? pathLocale(lang, path, `${path.last()}`)}\n\t\t\t\t{active && <div class=\"node-menu\">\n\t\t\t\t\t{actions?.map(a => <div key={a.label} class=\"menu-item\">\n\t\t\t\t\t\t<Btn icon={a.icon} tooltip={localize(lang, a.label)} tooltipLoc=\"se\" onClick={() => a.onSelect()}/>\n\t\t\t\t\t\t<span>{a.description ?? localize(lang, a.label)}</span>\n\t\t\t\t\t</div>)}\n\t\t\t\t\t<div class=\"menu-item\">\n\t\t\t\t\t\t<Btn icon=\"clippy\" tooltip={localize(lang, 'copy_context')} tooltipLoc=\"se\" onClick={() => navigator.clipboard.writeText(context)} />\n\t\t\t\t\t\t<span>{context}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>}\n\t\t\t</label>\n\t\t\t{suffix}\n\t\t</div>\n\t\t{body && <div class=\"node-body\">{body}</div>}\n\t</div>\n}\n\nconst MemoedTreeNode = memo(TreeNode, (prev, next) => {\n\treturn prev.schema === next.schema\n\t\t&& prev.lang === next.lang\n\t\t&& prev.path.equals(next.path)\n\t\t&& deepEqual(prev.ctx, next.ctx)\n\t\t&& deepEqual(prev.value, next.value)\n})\n\nfunction isEnum(value?: ValidationOption | EnumOption): value is EnumOption {\n\treturn !!(value as any)?.enum\n}\n\nfunction hashString(str: string) {\n\tvar hash = 0, i, chr\n\tfor (i = 0; i < str.length; i++) {\n\t\tchr = str.charCodeAt(i)\n\t\thash = ((hash << 5) - hash) + chr\n\t\thash |= 0\n\t}\n\treturn hash\n}\n\nfunction pathLocale(lang: string, path: Path, ...params: string[]) {\n\tconst ctx = path.getContext()\n\tfor (let i = 0; i < ctx.length; i += 1) {\n\t\tconst key = ctx.slice(i).join('.')\n\t\tconst result = localize(lang, key, ...params)\n\t\tif (key !== result) {\n\t\t\treturn result\n\t\t}\n\t}\n\treturn ctx[ctx.length - 1]\n}\n\nfunction ErrorPopup({ lang, path, nested }: { lang: string, path: ModelPath, nested?: boolean }) {\n\tif (path.model instanceof ModelWrapper) {\n\t\tpath = path.model.map(path).withModel(path.model)\n\t}\n\tconst e = nested\n\t\t?\tpath.model.errors.getAll().filter(e => e.path.startsWith(path))\n\t\t: path.model.errors.get(path, true)\n\tif (e.length === 0) return null\n\tconst message = localize(lang, e[0].error, ...(e[0].params ?? []))\n\treturn popupIcon('node-error', 'issue_opened', message)\n}\n\nfunction HelpPopup({ lang, path }: { lang: string, path: Path }) {\n\tconst key = path.contextPush('help').getContext().join('.')\n\tconst message = localize(lang, key)\n\tif (message === key) return null\n\treturn popupIcon('node-help', 'info', message)\n}\n\nconst popupIcon = (type: string, icon: keyof typeof Octicon, popup: string) => {\n\tconst [active, setActive] = useFocus()\n\n\treturn <div class={`node-icon ${type}${active ? ' show' : ''}`} onClick={() => setActive()}>\n\t\t{Octicon[icon]}\n\t\t<span class=\"icon-popup\">{popup}</span>\n\t</div>\n}\n\nfunction isDecorated(context: string | undefined, value: any) {\n\treturn context === 'feature'\n\t\t&& value?.type?.replace(/^minecraft:/, '') === 'decorated'\n\t\t&& isObject(value?.config)\n}\n\nfunction createDecoratorsWrapper(originalFields: NodeChildren, path: ModelPath, value: any) {\n\tconst decorators: any[] = []\n\tconst feature = iterateNestedDecorators(value, decorators)\n\tconst fields = {\n\t\ttype: originalFields.type,\n\t\tconfig: ObjectNode({\n\t\t\tdecorators: ListNode(CachedDecorator),\n\t\t\tfeature: CachedFeature,\n\t\t}, { context: 'feature.decorated' }),\n\t}\n\tconst schema = ObjectNode(fields, { context: 'feature' })\n\tconst featurePath = new Path(['config', 'feature'])\n\tconst decoratorsPath = new Path(['config', 'decorators'])\n\tconst model = path.getModel()\n\tconst wrapper: ModelWrapper = new ModelWrapper(schema, path => {\n\t\tif (path.startsWith(featurePath)) {\n\t\t\treturn new Path([...[...Array(decorators.length - 1)].flatMap(() => ['config', 'feature']), ...path.modelArr])\n\t\t} else if (path.startsWith(decoratorsPath)) {\n\t\t\tif (path.modelArr.length === 2) {\n\t\t\t\treturn new Path([])\n\t\t\t}\n\t\t\tconst index = path.modelArr[2]\n\t\t\tif (typeof index === 'number') {\n\t\t\t\treturn new Path([...[...Array(index)].flatMap(() => ['config', 'feature']), 'config', 'decorator', ...path.modelArr.slice(3)])\n\t\t\t}\n\t\t}\n\t\treturn path\n\t}, path => {\n\t\tif (path.equals(decoratorsPath)) {\n\t\t\tconst newDecorators: any[] = []\n\t\t\titerateNestedDecorators(model.data, newDecorators)\n\t\t\treturn newDecorators\n\t\t}\n\t\treturn model.get(wrapper.map(path))\n\t}, (path, value, silent) => {\n\t\tif (path.startsWith(featurePath)) {\n\t\t\tconst newDecorators: any[] = []\n\t\t\titerateNestedDecorators(model.data, newDecorators)\n\t\t\tconst newPath =new Path([...[...Array(newDecorators.length - 1)].flatMap(() => ['config', 'feature']), ...path.modelArr])\n\t\t\treturn model.set(newPath, value, silent)\n\t\t} else if (path.startsWith(decoratorsPath)) {\n\t\t\tconst index = path.modelArr[2]\n\t\t\tif (path.modelArr.length === 2) {\n\t\t\t\tconst feature = wrapper.get(featurePath)\n\t\t\t\treturn model.set(new Path(), produceNestedDecorators(feature, value), silent)\n\t\t\t} else if (typeof index === 'number') {\n\t\t\t\tif (path.modelArr.length === 3 && value === undefined) {\n\t\t\t\t\tconst feature = wrapper.get(featurePath)\n\t\t\t\t\tconst newDecorators: any[] = []\n\t\t\t\t\titerateNestedDecorators(model.data, newDecorators)\n\t\t\t\t\tnewDecorators.splice(index, 1)\n\t\t\t\t\tconst newValue = produceNestedDecorators(feature, newDecorators)\n\t\t\t\t\treturn model.set(new Path(), newValue, silent)\n\t\t\t\t} else {\n\t\t\t\t\tconst newPath = new Path([...[...Array(index)].flatMap(() => ['config', 'feature']), 'config', 'decorator', ...path.modelArr.slice(3)])\n\t\t\t\t\treturn model.set(newPath, value, silent)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tmodel.set(path, value, silent)\n\t})\n\twrapper.data = {\n\t\ttype: model.data.type,\n\t\tconfig: {\n\t\t\tdecorators,\n\t\t\tfeature,\n\t\t},\n\t}\n\twrapper.errors = model.errors\n\treturn { fields, wrapper }\n}\n\nfunction iterateNestedDecorators(value: any, decorators: any[]): any {\n\tif (value?.type?.replace(/^minecraft:/, '') !== 'decorated') {\n\t\treturn value\n\t}\n\tif (!isObject(value?.config)) {\n\t\treturn value\n\t}\n\tdecorators.push({ id: decorators.length, node: value.config.decorator })\n\treturn iterateNestedDecorators(value.config.feature ?? '', decorators)\n}\n\nfunction produceNestedDecorators(feature: any, decorators: any[]): any {\n\tif (decorators.length === 0) return feature\n\treturn {\n\t\ttype: 'minecraft:decorated',\n\t\tconfig: {\n\t\t\tdecorator: decorators.shift().node,\n\t\t\tfeature: produceNestedDecorators(feature, decorators),\n\t\t},\n\t}\n}\n","import type { DataModel } from '@mcschema/core'\nimport { useErrorBoundary, useState } from 'preact/hooks'\nimport { useLocale } from '../../contexts/index.js'\nimport { useModel } from '../../hooks/index.js'\nimport { FullNode } from '../../schema/renderHtml.js'\nimport type { BlockStateRegistry, VersionId } from '../../services/index.js'\n\ntype TreePanelProps = {\n\tversion: VersionId,\n\tmodel: DataModel | undefined,\n\tblockStates: BlockStateRegistry | undefined,\n\tonError: (message: string) => unknown,\n}\nexport function Tree({ version, model, blockStates, onError }: TreePanelProps) {\n\tconst { lang } = useLocale()\n\tif (!model || !blockStates || lang === 'none') return <></>\n\n\tconst [error] = useErrorBoundary(e => {\n\t\tonError(`Error rendering the tree: ${e.message}`)\n\t\tconsole.error(e)\n\t})\n\tif (error) return <></>\n\n\tconst [, setState] = useState(0)\n\tuseModel(model, () => {\n\t\tsetState(state => state + 1)\n\t})\n\n\treturn <div class=\"tree\" data-cy=\"tree\">\n\t\t<FullNode {...{model, lang, version, blockStates}}/>\n\t</div>\n}\n","var e=Object.defineProperty,t=Object.defineProperties,s=Object.getOwnPropertyDescriptors,r=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable,i=(t,s,r)=>s in t?e(t,s,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[s]=r,c=(e,t)=>{for(var s in t||(t={}))n.call(t,s)&&i(e,s,t[s]);if(r)for(var s of r(t))o.call(t,s)&&i(e,s,t[s]);return e};import a,{useState as l,useEffect as u,useRef as m}from\"react\";const g=\"Please consider reporting this error at https://github.com/laymonage/giscus/issues/new.\";function d(e){return`[giscus] An error occurred. Error message: \"${e}\".`}function p(e){const t=document.querySelector(`meta[property='og:${e}'],meta[name='${e}']`);return t?t.content:\"\"}function f(){const e=document.getElementById(\"giscus-css\")||document.createElement(\"style\");e.id=\"giscus-css\",e.textContent=\"\\n .giscus, .giscus-frame {\\n width: 100%;\\n }\\n .giscus-frame {\\n border: none;\\n color-scheme: normal;\\n }\\n \",document.head.prepend(e)}function h(e){const[r,n]=l(\"\"),o=function({repo:e,repoId:t,category:s=\"\",categoryId:r=\"\",mapping:n,term:o=\"\",theme:i=\"light\",reactionsEnabled:c=\"1\",emitMetadata:a=\"0\",inputPosition:l=\"bottom\",lang:u=\"en\",session:m,origin:g}){const d=new URL(location.href);d.searchParams.delete(\"giscus\");const f=d.toString(),h={origin:g=g||f,session:m,theme:i,reactionsEnabled:c,emitMetadata:a,inputPosition:l,repo:e,repoId:t,category:s,categoryId:r,description:p(\"description\")};switch(n){case\"url\":h.term=f;break;case\"title\":h.term=document.title;break;case\"og:title\":h.term=p(\"title\");break;case\"specific\":h.term=o;break;case\"number\":h.number=o;break;case\"pathname\":default:h.term=location.pathname.length<2?\"index\":location.pathname.substring(1).replace(/\\.\\w+$/,\"\")}return`https://giscus.app/${u}/widget?${new URLSearchParams(h)}`}((i=c({},e),t(i,s({session:r}))));var i;const h=m(null);return u((()=>{const e=location.href,t=new URL(e),s=localStorage.getItem(\"giscus-session\"),r=t.searchParams.get(\"giscus\")||\"\";if(r)return localStorage.setItem(\"giscus-session\",JSON.stringify(r)),n(r),t.searchParams.delete(\"giscus\"),void history.replaceState(void 0,document.title,t.toString());if(s)try{n(JSON.parse(s||\"\")||\"\")}catch(o){n(\"\"),localStorage.removeItem(\"giscus-session\"),console.warn(`${d(null==o?void 0:o.message)} Session has been cleared.`)}}),[]),u(f,[]),u((()=>{const e=function(e,t=null){return function(s){if(\"https://giscus.app\"!==s.origin)return;const{data:r}=s;if(\"object\"!=typeof r||!r.giscus)return;if(t&&r.giscus.resizeHeight&&(t.style.height=`${r.giscus.resizeHeight}px`),!r.giscus.error)return;const n=r.giscus.error;if(n.includes(\"Bad credentials\")||n.includes(\"Invalid state value\")){if(null!==localStorage.getItem(\"giscus-session\"))return localStorage.removeItem(\"giscus-session\"),e(),void console.warn(`${d(n)} Session has been cleared.`);console.error(`${d(n)} No session is stored initially. ${g}`)}n.includes(\"Discussion not found\")?console.warn(`[giscus] ${n}. A new discussion will be created if a comment/reaction is submitted.`):console.error(`${d(n)} ${g}`)}}((()=>n(\"\")),h.current);return window.addEventListener(\"message\",e),()=>window.removeEventListener(\"message\",e)}),[]),a.createElement(\"div\",{className:\"giscus\"},a.createElement(\"iframe\",{className:\"giscus-frame\",title:\"Comments\",scrolling:\"no\",src:o,ref:h}))}function b(e){const[t,s]=l(!1);return u((()=>s(!0)),[]),t?a.createElement(h,c({},e)):null}export{b as Giscus};\n","import { Giscus as GiscusReact } from '@giscus/react'\nimport { useTheme } from '../contexts/index.js'\n\ninterface Props {\n\tterm?: string,\n}\nexport function Giscus({ term }: Props) {\n\tconst { actualTheme } = useTheme()\n\tconst themeSuffix = actualTheme === 'light' ? '-burn' : ''\n\tconst themeUrl = (import.meta as any).env.DEV\n\t\t? `http://localhost:3000/src/styles/giscus${themeSuffix}.css`\n\t\t: `${location.protocol}//${location.host}/assets/giscus${themeSuffix}.css`\n\n\treturn <div class=\"giscus-container\">\n\t\t<GiscusReact\n\t\t\trepo=\"misode/misode.github.io\"\n\t\t\trepoId=\"MDEwOlJlcG9zaXRvcnkxOTIyNTQyMzA=\"\n\t\t\tcategory=\"Site\"\n\t\t\tcategoryId=\"DIC_kwDOC3WRFs4COB8r\"\n\t\t\tmapping={term ? 'specific' : 'pathname'}\n\t\t\tterm={term}\n\t\t\treactionsEnabled=\"1\"\n\t\t\temitMetadata=\"0\"\n\t\t\tinputPosition=\"top\"\n\t\t\ttheme={themeUrl}\n\t\t\tlang=\"en\" />\n\t</div>\n}\n","export interface Guide {\n\tid: string,\n\ttitle: string,\n\tversions?: string[],\n\ttags?: string[],\n}\n\ndeclare var __GUIDES__: Guide[]\n\nexport function getGuides() {\n\treturn __GUIDES__\n}\n\nexport function getGuide(id: string): Guide {\n\tconst guide = getGuides().find(g => g.id === id)\n\tif (guide === undefined) {\n\t\treturn { id, title: 'Unknown Guide' }\n\t}\n\treturn guide\n}\n","import { useMemo } from 'preact/hooks'\nimport { getGuide } from '../services/Guides.js'\nimport { Card } from './Card.jsx'\nimport { Badge } from './index.js'\n\ninterface Props {\n\tid: string,\n\tminimal?: boolean,\n\tactiveTags?: string[],\n\ttoggleTag?: (tag: string) => unknown,\n}\nexport function GuideCard({ id, minimal, activeTags, toggleTag }: Props) {\n\tconst { title, versions, tags } = useMemo(() => getGuide(id), [id])\n\n\tconst onToggleTag = (tag: string) => (e: MouseEvent) => {\n\t\tif (toggleTag) toggleTag(tag)\n\t\te.preventDefault()\n\t\te.stopImmediatePropagation()\n\t}\n\n\treturn <Card title={title} overlay={!minimal && versions?.join(' • ')} link={`/guides/${id}/`}>\n\t\t<div class=\"badges-list\">\n\t\t\t{tags?.sort().map(tag => <Badge label={tag} onClick={onToggleTag(tag)} active={activeTags?.includes(tag)} />)}\n\t\t</div>\n\t</Card>\n}\n","import { getCurrentUrl, Link, route } from 'preact-router'\nimport config from '../Config.js'\nimport { useLocale, useProject, useTheme, useTitle, useVersion } from '../contexts/index.js'\nimport { checkVersion } from '../services/index.js'\nimport { cleanUrl, getGenerator } from '../Utils.js'\nimport { Btn, BtnMenu, Icons, Octicon } from './index.js'\n\nconst Themes: Record<string, keyof typeof Octicon> = {\n\tsystem: 'device_desktop',\n\tdark: 'moon',\n\tlight: 'sun',\n}\n\nexport function Header() {\n\tconst { lang, locale, changeLocale: changeLanguage } = useLocale()\n\tconst { theme, changeTheme } = useTheme()\n\tconst { version } = useVersion()\n\tconst { projects, project, changeProject } = useProject()\n\tconst { title } = useTitle()\n\tconst url = getCurrentUrl()\n\tconst gen = getGenerator(url)\n\n\treturn <header>\n\t\t<div class=\"title\">\n\t\t\t<Link class=\"home-link\" href=\"/\" aria-label={locale('home')} data-cy=\"home-link\">{Icons.home}</Link>\n\t\t\t<h1>{title}</h1>\n\t\t\t{gen && <BtnMenu icon=\"chevron_down\" tooltip={locale('switch_generator')} data-cy=\"generator-switcher\">\n\t\t\t\t{config.generators\n\t\t\t\t\t.filter(g => g.tags?.[0] === gen?.tags?.[0] && checkVersion(version, g.minVersion))\n\t\t\t\t\t.map(g =>\n\t\t\t\t\t\t<Btn label={locale(g.partner ? `partner.${g.partner}.${g.id}` : g.id)} active={g.id === gen.id} onClick={() => route(cleanUrl(g.url))} />\n\t\t\t\t\t)}\n\t\t\t</BtnMenu>}\n\t\t\t{!gen && url.match(/\\/?project\\/?$/) && <BtnMenu icon=\"chevron_down\" tooltip={locale('switch_project')}>\n\t\t\t\t{projects.map(p =>\n\t\t\t\t\t<Btn label={p.name} active={p.name === project.name} onClick={() => changeProject(p.name)} />\n\t\t\t\t)}\n\t\t\t</BtnMenu>}\n\t\t</div>\n\t\t<nav>\n\t\t\t<ul>\n\t\t\t\t<li data-cy=\"language-switcher\">\n\t\t\t\t\t<BtnMenu icon=\"globe\" tooltip={locale('language')}>\n\t\t\t\t\t\t{config.languages.map(({ code, name }) =>\n\t\t\t\t\t\t\t<Btn label={name} active={code === lang}\n\t\t\t\t\t\t\t\tonClick={() => changeLanguage(code)} />\n\t\t\t\t\t\t)}\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t</li>\n\t\t\t\t<li data-cy=\"theme-switcher\">\n\t\t\t\t\t<BtnMenu icon={Themes[theme]} tooltip={locale('theme')}>\n\t\t\t\t\t\t{Object.entries(Themes).map(([th, icon]) =>\n\t\t\t\t\t\t\t<Btn icon={icon} label={locale(`theme.${th}`)} active={th === theme}\n\t\t\t\t\t\t\t\tonClick={() => changeTheme(th)} />\n\t\t\t\t\t\t)}\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t</li>\n\t\t\t\t<li class=\"dimmed\">\n\t\t\t\t\t<a href=\"https://github.com/misode/misode.github.io\" target=\"_blank\" rel=\"noreferrer\" class=\"tooltipped tip-sw\" aria-label={locale('github')}>\n\t\t\t\t\t\t{Octicon.mark_github}\n\t\t\t\t\t</a>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</nav>\n\t</header>\n}\n","const TAG = <svg width=\"29\" height=\"29\" viewBox=\"0 0 29 29\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M17.8284 0.686291C17.298 0.686291 16.7893 0.897005 16.4142 1.27208L1.44365 16.2426C0.662602 17.0237 0.662602 18.29 1.44365 19.0711L9.92893 27.5563C10.71 28.3374 11.9763 28.3374 12.7574 27.5563L27.7279 12.5858C28.103 12.2107 28.3137 11.702 28.3137 11.1716V2.68629C28.3137 1.58172 27.4183 0.686291 26.3137 0.686291H17.8284ZM23.5 8C24.8807 8 26 6.88071 26 5.5C26 4.11929 24.8807 3 23.5 3C22.1193 3 21 4.11929 21 5.5C21 6.88071 22.1193 8 23.5 8Z\"/></svg>\nconst STRUCTURE = <svg width=\"28\" height=\"22\" viewBox=\"0 0 28 22\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M26.8426 9.83057L23.3294 9.83057V20.8306C23.3294 21.3829 22.8817 21.8306 22.3294 21.8306H5.3294C4.77712 21.8306 4.3294 21.3829 4.3294 20.8306V9.83057L1.00171 9.83057C-0.017101 9.83057 -0.383456 8.48519 0.494688 7.96864L13.8067 0.138065C14.1279 -0.0509101 14.5276 -0.045538 14.8437 0.152002L27.3726 7.98258C28.2246 8.51506 27.8473 9.83057 26.8426 9.83057ZM15.3294 11.8306C14.7771 11.8306 14.3294 12.2783 14.3294 12.8306V16.8306C14.3294 17.3829 14.7771 17.8306 15.3294 17.8306H18.3294C18.8817 17.8306 19.3294 17.3829 19.3294 16.8306V12.8306C19.3294 12.2783 18.8817 11.8306 18.3294 11.8306H15.3294Z\"/></svg>\n\nexport const Icons = {\n\thome: <svg width=\"32\" height=\"28\" viewBox=\"0 0 32 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"26\" height=\"6\" rx=\"3\" fill=\"#7CB45C\"/><rect x=\"8\" width=\"18\" height=\"6\" rx=\"3\" fill=\"#4BA041\"/><rect y=\"11\" width=\"32\" height=\"6\" rx=\"3\" fill=\"#AAA8A8\"/><rect x=\"11\" y=\"11\" width=\"21\" height=\"6\" rx=\"3\" fill=\"#91908F\"/><rect x=\"11\" y=\"22\" width=\"21\" height=\"6\" rx=\"3\" fill=\"#70B5C3\"/><rect x=\"17\" y=\"22\" width=\"15\" height=\"6\" rx=\"3\" fill=\"#4D989B\"/></svg>,\n\treport: <svg width=\"30\" height=\"36\" viewBox=\"0 0 30 36\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 16C0 13.7909 1.79086 12 4 12V12C6.20914 12 8 13.7909 8 16V32C8 34.2091 6.20914 36 4 36V36C1.79086 36 0 34.2091 0 32V16Z\" fill=\"#6ACC5D\"/><path d=\"M11 4C11 1.79086 12.7909 0 15 0V0C17.2091 0 19 1.79086 19 4V32C19 34.2091 17.2091 36 15 36V36C12.7909 36 11 34.2091 11 32V4Z\" fill=\"#FF4C4C\"/><path d=\"M22 10C22 7.79086 23.7909 6 26 6V6C28.2091 6 30 7.79086 30 10V32C30 34.2091 28.2091 36 26 36V36C23.7909 36 22 34.2091 22 32V10Z\" fill=\"#E5B442\"/><path d=\"M0 23C0 20.7909 1.79086 19 4 19V19C6.20914 19 8 20.7909 8 23V32C8 34.2091 6.20914 36 4 36V36C1.79086 36 0 34.2091 0 32V23Z\" fill=\"#2BAD1D\"/><path d=\"M11 15C11 12.7909 12.7909 11 15 11V11C17.2091 11 19 12.7909 19 15V32C19 34.2091 17.2091 36 15 36V36C12.7909 36 11 34.2091 11 32V15Z\" fill=\"#C10B0B\"/><path d=\"M22 19C22 16.7909 23.7909 15 26 15V15C28.2091 15 30 16.7909 30 19V32C30 34.2091 28.2091 36 26 36V36C23.7909 36 22 34.2091 22 32V19Z\" fill=\"#CC8E00\"/></svg>,\n\tsounds: <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"10\" cy=\"10\" r=\"10\" fill=\"#451475\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M3.5 10C3.5 8.27609 4.18482 6.62279 5.40381 5.40381C6.62279 4.18482 8.27609 3.5 10 3.5C11.7239 3.5 13.3772 4.18482 14.5962 5.40381C15.8152 6.62279 16.5 8.27609 16.5 10C16.5 11.7239 15.8152 13.3772 14.5962 14.5962C13.3772 15.8152 11.7239 16.5 10 16.5C8.27609 16.5 6.62279 15.8152 5.40381 14.5962C4.18482 13.3772 3.5 11.7239 3.5 10V10ZM10 2C7.87827 2 5.84344 2.84285 4.34315 4.34315C2.84285 5.84344 2 7.87827 2 10C2 12.1217 2.84285 14.1566 4.34315 15.6569C5.84344 17.1571 7.87827 18 10 18C12.1217 18 14.1566 17.1571 15.6569 15.6569C17.1571 14.1566 18 12.1217 18 10C18 7.87827 17.1571 5.84344 15.6569 4.34315C14.1566 2.84285 12.1217 2 10 2V2ZM8.379 7.227C8.34101 7.20412 8.29762 7.19175 8.25327 7.19117C8.20892 7.19059 8.16522 7.20181 8.12664 7.2237C8.08807 7.24558 8.05601 7.27733 8.03375 7.3157C8.0115 7.35406 7.99985 7.39765 8 7.442V12.559C8.00003 12.6033 8.0118 12.6467 8.03413 12.685C8.05646 12.7232 8.08854 12.7548 8.12708 12.7765C8.16563 12.7983 8.20926 12.8095 8.25352 12.8088C8.29778 12.8082 8.34108 12.7958 8.379 12.773L12.643 10.214C12.6798 10.1917 12.7103 10.1604 12.7315 10.1229C12.7526 10.0854 12.7638 10.043 12.7638 10C12.7638 9.95695 12.7526 9.91463 12.7315 9.87714C12.7103 9.83965 12.6798 9.80825 12.643 9.786L8.379 7.227Z\" fill=\"#C5A5E6\"/></svg>,\n\tadvancement: <svg width=\"27\" height=\"27\" viewBox=\"0 0 27 27\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M5.76943 2.86824L2.18356 0.819176C1.29934 0.313911 0.313911 1.29934 0.819176 2.18356L2.86824 5.76943C2.95458 5.92052 3 6.09154 3 6.26556V20.7344C3 20.9085 2.95459 21.0795 2.86824 21.2306L0.819176 24.8164C0.313911 25.7007 1.29934 26.6861 2.18356 26.1808L5.76943 24.1318C5.92052 24.0454 6.09154 24 6.26556 24H20.7344C20.9085 24 21.0795 24.0454 21.2306 24.1318L24.8164 26.1808C25.7007 26.6861 26.6861 25.7007 26.1808 24.8164L24.1318 21.2306C24.0454 21.0795 24 20.9085 24 20.7344V6.26556C24 6.09154 24.0454 5.92052 24.1318 5.76943L26.1808 2.18356C26.6861 1.29934 25.7007 0.313911 24.8164 0.819176L21.2306 2.86824C21.0795 2.95458 20.9085 3 20.7344 3H6.26556C6.09154 3 5.92052 2.95459 5.76943 2.86824Z\"/></svg>,\n\tblock_definition: <svg width=\"28\" height=\"30\" viewBox=\"0 0 28 30\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.75 0.272806C13.5437 -0.0909347 14.4563 -0.0909357 15.25 0.272805L26.25 5.31447C27.3163 5.80322 28 6.86864 28 8.04167V21.3583C28 22.5313 27.3163 23.5967 26.25 24.0855L15.25 29.1272C14.4563 29.4909 13.5437 29.4909 12.75 29.1272L1.75004 24.0855C0.683681 23.5967 0 22.5313 0 21.3583V8.04167C0 6.86864 0.683678 5.80322 1.75004 5.31447L12.75 0.272806ZM14 4.10003L6.92266 7.34381L14 10.2391L21.0773 7.34381L14 4.10003ZM24 10.4699V20.7166L16 24.3833V13.7427L24 10.4699ZM12 13.7427L4 10.4699V20.7166L12 24.3833V13.7427Z\"/></svg>,\n\tchat_type: <svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 0C1.79086 0 0 1.79086 0 4V21C0 23.2091 1.79086 25 4 25H8V30.7732C8 31.636 9.01946 32.0938 9.66436 31.5206L17 25H28C30.2091 25 32 23.2091 32 21V4C32 1.79086 30.2091 0 28 0H4Z\"/></svg>,\t\n\tdimension: <svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M19.7659 0.445701C18.5582 0.154357 17.2971 0 16 0C12.7056 0 9.64369 0.995672 7.09887 2.70251C7.94418 3.62868 8.45554 4.49063 8.75229 5.30669C9.09264 6.24263 9.125 7.05145 9.125 7.6875C9.125 7.78933 9.12466 7.88242 9.12434 7.96797V7.96834V7.96869V7.96901V7.96902C9.12247 8.47232 9.12158 8.71409 9.19707 8.93677C9.24638 9.08226 9.36226 9.31309 9.94721 9.60557C10.5615 9.91273 10.7586 9.8353 10.7733 9.82952L10.7739 9.82929C10.8476 9.80165 10.9347 9.73088 11.2191 9.3753L11.256 9.32901C11.4803 9.04661 11.8843 8.53789 12.5239 8.29804C13.2651 8.02009 14.0719 8.16789 14.9472 8.60557C16.4469 9.35541 17.3707 9.72195 17.9896 9.84301C18.2833 9.90046 18.4612 9.89221 18.5724 9.86953C18.6731 9.84897 18.7646 9.80771 18.8753 9.71913C19.2786 9.39647 19.6673 8.76901 19.9604 7.83984C20.2468 6.93156 20.4085 5.83955 20.4378 4.72369C20.4672 3.60868 20.3634 2.50945 20.1445 1.59133C20.0358 1.13577 19.9057 0.75371 19.7659 0.445701ZM5.50368 3.92379C2.13164 6.85717 4.76837e-07 11.1797 4.76837e-07 16C4.76837e-07 16.1436 0.00189157 16.2867 0.00565022 16.4294C1.54401 16.9679 2.98111 16.6462 4.47925 16.2249C4.59499 16.1923 4.71296 16.1585 4.83279 16.1242L4.83282 16.1242C5.68141 15.881 6.62293 15.6113 7.5179 15.5713C8.62706 15.5218 9.72807 15.8138 10.7071 16.7929C11.7646 17.8503 12.0777 19.3283 11.8236 20.6012C11.5699 21.8719 10.7059 23.1043 9.24253 23.4702C8.94395 23.5448 8.87224 23.6435 8.85319 23.6716C8.82014 23.7204 8.77492 23.8288 8.77233 24.0677C8.7697 24.3108 8.81045 24.5892 8.869 24.9304L8.88606 25.0286L8.88606 25.0286C8.93527 25.3102 9 25.6807 9 26C9 27.4332 8.58821 28.8019 8.09018 29.9113C10.4231 31.2406 13.1229 32 16 32C19.5354 32 22.8029 30.8534 25.4511 28.9117C25.3471 28.7646 25.2399 28.6153 25.1301 28.465C24.5506 27.672 23.9089 26.8682 23.2732 26.2107C22.6167 25.5315 22.05 25.0971 21.6286 24.9285C20.8738 24.6266 20.1566 24.1617 19.9616 23.3144C19.8718 22.9244 19.9228 22.5591 20.0033 22.2613C20.0827 21.9675 20.2083 21.6782 20.3292 21.4199C20.3937 21.2823 20.4611 21.1436 20.5296 21.0026L20.5296 21.0024C20.9898 20.055 21.5 19.0047 21.5 17.5C21.5 16.2061 22.0035 15.2171 22.8218 14.4932C23.5953 13.8089 24.6068 13.3989 25.5877 13.1047C26.3248 12.8835 27.1287 12.7056 27.8822 12.5388L27.8824 12.5388L27.8824 12.5388L27.8824 12.5388C28.1297 12.484 28.3716 12.4305 28.6038 12.377C29.5877 12.1506 30.4202 11.9219 31.0528 11.6056C31.1525 11.5557 31.2566 11.5241 31.3612 11.5094C29.9973 6.83578 26.5583 3.04703 22.1087 1.2075C22.3608 2.30151 22.4695 3.54643 22.4372 4.7763C22.404 6.03545 22.2219 7.31843 21.8678 8.4414C21.5202 9.54349 20.9714 10.6035 20.1247 11.2809C19.7989 11.5415 19.4221 11.7373 18.9722 11.8291C18.5328 11.9188 18.0778 11.8982 17.6057 11.8058C16.6928 11.6273 15.5531 11.1446 14.0528 10.3944C13.4385 10.0873 13.2414 10.1647 13.2267 10.1705L13.2261 10.1707C13.1524 10.1983 13.0653 10.2691 12.7809 10.6247L12.744 10.671C12.5197 10.9534 12.1157 11.4621 11.4761 11.702C10.7349 11.9799 9.92815 11.8321 9.05279 11.3944C8.13774 10.9369 7.56612 10.3552 7.30294 9.57885C7.10968 9.00876 7.1174 8.37679 7.1232 7.90214V7.90213C7.12412 7.82627 7.125 7.75443 7.125 7.6875C7.125 7.13604 7.09486 6.60111 6.87271 5.99018C6.66804 5.42734 6.27867 4.74354 5.50368 3.92379ZM31.8004 13.4655C30.9636 13.8583 29.9823 14.1121 29.0524 14.3261C28.782 14.3883 28.5159 14.4472 28.2543 14.5052C27.5209 14.6676 26.8227 14.8222 26.1623 15.0203C25.2682 15.2886 24.5922 15.5973 24.147 15.9912C23.7465 16.3454 23.5 16.7939 23.5 17.5C23.5 19.496 22.7817 20.9579 22.3162 21.9053L22.3159 21.9058C22.2518 22.0363 22.1925 22.157 22.1405 22.268C22.0298 22.5045 21.9661 22.6645 21.934 22.7831C21.9282 22.8046 21.9241 22.8225 21.9212 22.837C21.9775 22.8824 22.105 22.965 22.3714 23.0715C23.2 23.403 24.0083 24.0935 24.7112 24.8206C25.4349 25.5693 26.1369 26.4531 26.7449 27.285C26.8288 27.3998 26.9111 27.5139 26.9917 27.6269C30.0758 24.7103 32 20.5798 32 16C32 15.1375 31.9318 14.291 31.8004 13.4655ZM6.39285 28.7958C6.7349 27.9612 7 26.9846 7 26C7 25.8639 6.96675 25.6702 6.9058 25.3152L6.8978 25.2686C6.84067 24.9356 6.76762 24.4924 6.77245 24.0461C6.77733 23.5956 6.86084 23.0468 7.19719 22.5502C7.54754 22.0328 8.08591 21.6977 8.75748 21.5299C9.2941 21.3957 9.72071 20.9187 9.86229 20.2096C10.0034 19.5028 9.81659 18.7308 9.2929 18.2071C8.77193 17.6861 8.24794 17.5407 7.6071 17.5693C6.96482 17.598 6.27253 17.7947 5.38824 18.0461L5.38718 18.0464L5.3833 18.0475C5.26594 18.0808 5.1452 18.1152 5.02075 18.1502C3.64971 18.5358 2.00798 18.9412 0.20345 18.5584C0.873856 22.73 3.15691 26.3624 6.39285 28.7958ZM21.8827 22.799C21.882 22.7982 21.8816 22.7979 21.8815 22.7979C21.881 22.798 21.883 22.8012 21.8886 22.8073C21.886 22.8031 21.884 22.8004 21.8827 22.799Z\"/></svg>,\n\tdimension_type: <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.2929 22.7071C11.6834 23.0976 12.3166 23.0976 12.7071 22.7071L19.0711 16.3431C19.4616 15.9526 19.4616 15.3195 19.0711 14.9289C18.6805 14.5384 18.0474 14.5384 17.6569 14.9289L13 19.5858V14.1521C14.074 14.1106 15.2545 13.9152 16.5 13.5C17.4051 13.1983 18.0371 12.8511 18.602 12.5408C19.9096 11.8225 20.8576 11.3017 24 12V20C24 22.2091 22.2091 24 20 24H4C1.79086 24 0 22.2091 0 20V9.5C3 7.5 6 10.5 7.5 12.5C7.95659 13.1088 9.22475 13.7863 11 14.0485V19.5858L6.34315 14.9289C5.95262 14.5384 5.31946 14.5384 4.92893 14.9289C4.53841 15.3195 4.53841 15.9526 4.92893 16.3431L11.2929 22.7071ZM11 14.0485V3.41421L6.34315 8.07107C5.95262 8.46159 5.31946 8.46159 4.92893 8.07107C4.53841 7.68054 4.53841 7.04738 4.92893 6.65686L11.2929 0.292893C11.6834 -0.097631 12.3166 -0.097631 12.7071 0.292893L19.0711 6.65686C19.4616 7.04738 19.4616 7.68054 19.0711 8.07107C18.6805 8.46159 18.0474 8.46159 17.6569 8.07107L13 3.41421V14.1521C12.2816 14.1799 11.6108 14.1388 11 14.0485Z\"/></svg>,\n\tfont: <svg width=\"26\" height=\"20\" viewBox=\"0 0 26 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M3 16V3H9V16H3ZM0 1C0 0.447715 0.447715 0 1 0H11C11.5523 0 12 0.447715 12 1V18C12 18.5523 11.5523 19 11 19H1C0.447715 19 0 18.5523 0 18V1ZM17.3224 18.8366C17.8622 19.0687 18.4801 19.1847 19.1761 19.1847C19.6828 19.1847 20.1373 19.1207 20.5398 18.9929C20.947 18.8651 21.2997 18.6733 21.598 18.4176C21.901 18.1619 22.1496 17.8494 22.3438 17.4801H22.429V19H25.696V11.5852C25.696 11.0076 25.5753 10.4938 25.3338 10.044C25.0971 9.59422 24.7609 9.21544 24.3253 8.90767C23.8897 8.59517 23.3783 8.35843 22.7912 8.19744C22.2041 8.03172 21.5625 7.94886 20.8665 7.94886C19.8911 7.94886 19.0554 8.10038 18.3594 8.40341C17.6681 8.7017 17.1236 9.11364 16.7259 9.6392C16.3329 10.16 16.089 10.7519 15.9943 11.4148L19.1974 11.5284C19.2732 11.178 19.4508 10.9034 19.7301 10.7045C20.0095 10.5057 20.3788 10.4062 20.8381 10.4062C21.2642 10.4062 21.6027 10.5057 21.8537 10.7045C22.1046 10.9034 22.2301 11.1851 22.2301 11.5497V11.5852C22.2301 11.8078 22.1425 11.9806 21.9673 12.1037C21.7969 12.2221 21.5223 12.3144 21.1435 12.3807C20.7647 12.4422 20.2652 12.5014 19.6449 12.5582C19.0909 12.6056 18.5701 12.6979 18.0824 12.8352C17.5947 12.9678 17.1638 13.1643 16.7898 13.4247C16.4157 13.6851 16.1222 14.0237 15.9091 14.4403C15.696 14.857 15.5895 15.3684 15.5895 15.9744C15.5895 16.6941 15.7434 17.2931 16.0511 17.7713C16.3636 18.2448 16.7874 18.5999 17.3224 18.8366ZM21.2571 16.6847C20.9588 16.8362 20.6226 16.9119 20.2486 16.9119C19.8509 16.9119 19.5218 16.8172 19.2614 16.6278C19.0057 16.4384 18.8778 16.1638 18.8778 15.804C18.8778 15.5672 18.937 15.3636 19.0554 15.1932C19.1785 15.018 19.3537 14.8759 19.581 14.767C19.813 14.6581 20.0923 14.5777 20.419 14.5256C20.58 14.5019 20.7481 14.4759 20.9233 14.4474C21.0985 14.419 21.2689 14.3859 21.4347 14.348C21.6004 14.3101 21.7519 14.2699 21.8892 14.2273C22.0312 14.1847 22.152 14.1373 22.2514 14.0852V15.1222C22.2514 15.4773 22.1615 15.7898 21.9815 16.0597C21.8016 16.3248 21.5601 16.5331 21.2571 16.6847Z\"/></svg>,\n\titem_modifier: <svg width=\"26\" height=\"26\" viewBox=\"0 0 26 26\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><line x1=\"8.05026\" y1=\"17.9498\" x2=\"17.9498\" y2=\"8.05026\" stroke=\"currentColor\" stroke-width=\"4\" stroke-linecap=\"round\"/><path d=\"M10.1749 4.51138C10.1749 4.51138 16.4785 3.75061 19.364 6.63604C22.2494 9.52148 21.4886 15.8251 21.4886 15.8251\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"4\" stroke-linecap=\"round\"/></svg>,\n\tloot_table: <svg width=\"36\" height=\"36\" viewBox=\"0 0 36 36\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M0.159296 8.96068C-0.224317 6.7851 1.22836 4.71047 3.40393 4.32686L27.0393 0.159301C29.2149 -0.224312 31.2895 1.22836 31.6731 3.40394L35.8407 27.0393C36.2243 29.2149 34.7716 31.2895 32.5961 31.6731L8.96068 35.8407C6.7851 36.2243 4.71047 34.7716 4.32685 32.5961L0.159296 8.96068ZM11.5999 10.4974C11.9356 12.401 10.6645 14.2163 8.76089 14.552C6.85726 14.8876 5.04196 13.6165 4.7063 11.7129C4.37063 9.80928 5.64172 7.99398 7.54535 7.65832C9.44898 7.32266 11.2643 8.59375 11.5999 10.4974ZM25.5026 11.6C27.4063 11.2643 28.6773 9.44899 28.3417 7.54536C28.006 5.64173 26.1907 4.37064 24.2871 4.7063C22.3835 5.04196 21.1124 6.85727 21.448 8.7609C21.7837 10.6645 23.599 11.9356 25.5026 11.6ZM14.552 27.2391C14.8876 29.1427 13.6165 30.958 11.7129 31.2937C9.80928 31.6294 7.99398 30.3583 7.65831 28.4546C7.32265 26.551 8.59374 24.7357 10.4974 24.4001C12.401 24.0644 14.2163 25.3355 14.552 27.2391ZM28.4546 28.3417C30.3583 28.006 31.6294 26.1907 31.2937 24.2871C30.958 22.3835 29.1427 21.1124 27.2391 21.448C25.3355 21.7837 24.0644 23.599 24.4 25.5026C24.7357 27.4063 26.551 28.6773 28.4546 28.3417Z\"/></svg>,\n\tmodel: <svg width=\"28\" height=\"23\" viewBox=\"0 0 28 23\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.75 0.27279C13.5437 -0.09095 14.4563 -0.0909509 15.25 0.27279L26.25 5.31446C27.3163 5.8032 28 6.86863 28 8.04165V15.3333C28 16.5444 27.2718 17.6367 26.1538 18.1025L15.1538 22.6859C14.4154 22.9936 13.5846 22.9936 12.8462 22.6859L1.84615 18.1025C0.728214 17.6367 0 16.5444 0 15.3333V8.04165C0 6.86863 0.683678 5.8032 1.75004 5.31446L12.75 0.27279ZM14 4.10002L6.92266 7.3438L14 10.2391L21.0773 7.3438L14 4.10002ZM24 10.4699V14.6666L16 18V13.7427L24 10.4699ZM12 13.7427L4 10.4699V14.6666L12 18V13.7427Z\"/></svg>,\n\tpack_mcmeta: <svg width=\"28\" height=\"31\" viewBox=\"0 0 28 31\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15.25 0.872837C14.4563 0.509096 13.5437 0.509097 12.75 0.872837L1.75004 5.9145C0.683678 6.40325 0 7.46867 0 8.6417V23.3333C0 24.5444 0.728212 25.6368 1.84615 26.1026L12.8462 30.6859C13.5846 30.9936 14.4154 30.9936 15.1538 30.6859L26.1538 26.1026C27.2718 25.6368 28 24.5444 28 23.3333V8.6417C28 7.46867 27.3163 6.40325 26.25 5.9145L15.25 0.872837ZM11.8374 5.69126L14 4.70006L21.0773 7.94384L18.8225 8.86629L11.8374 5.69126ZM9.4308 6.79428L6.92266 7.94384L14 10.8391L16.2787 9.90694L9.4308 6.79428ZM24 22.6667V11.07L16 14.3427V26L24 22.6667ZM4 11.07L12 14.3427V26L4 22.6667V11.07Z\"/></svg>,\n\tpredicate: <svg width=\"24\" height=\"22\" viewBox=\"0 0 24 22\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M22 0H2C1.17595 0 0.705573 0.940764 1.2 1.6L8.8 11.7333C8.92982 11.9064 9 12.117 9 12.3333V20.382C9 21.1253 9.78231 21.6088 10.4472 21.2764L14.4472 19.2764C14.786 19.107 15 18.7607 15 18.382V12.3333C15 12.117 15.0702 11.9064 15.2 11.7333L22.8 1.6C23.2944 0.940764 22.824 0 22 0Z\"/></svg>,\n\trecipe: <svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M20 2H12V10L20 10V2ZM10 2V10H2V4C2 2.89543 2.89543 2 4 2H10ZM2 20L2 12H10V20H2ZM2 22L2 28C2 29.1046 2.89543 30 4 30H10V22H2ZM12 22V30H20V22L12 22ZM22 22V30H28C29.1046 30 30 29.1046 30 28V22H22ZM30 20V12H22V20H30ZM20 20L12 20V12L20 12V20ZM30 4V10H22V2H28C29.1046 2 30 2.89543 30 4ZM4 0C1.79086 0 0 1.79086 0 4V28C0 30.2091 1.79086 32 4 32H28C30.2091 32 32 30.2091 32 28V4C32 1.79086 30.2091 0 28 0H4Z\"/></svg>,\n\t'tag/block': TAG,\n\t'tag/entity_type': TAG,\n\t'tag/fluid': TAG,\n\t'tag/game_event': TAG,\n\t'tag/item': TAG,\n\t'tag/worldgen/biome': TAG,\n\ttext_component: <svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M0 4C0 1.79086 1.79086 0 4 0H28C30.2091 0 32 1.79086 32 4V21C32 23.2091 30.2091 25 28 25H17L9.66436 31.5206C9.01946 32.0938 8 31.636 8 30.7732V25H4C1.79086 25 0 23.2091 0 21V4ZM2.46875 20H6.24716L7.20402 16.946H12.2272L13.1861 20H16.9645L12.0568 5.45455H7.37642L2.46875 20ZM11.3888 14.2756L9.76989 9.11932H9.65625L8.04072 14.2756H11.3888ZM19.7521 19.8366C20.2919 20.0687 20.9098 20.1847 21.6058 20.1847C22.1125 20.1847 22.567 20.1207 22.9695 19.9929C23.3767 19.8651 23.7294 19.6733 24.0277 19.4176C24.3307 19.1619 24.5793 18.8494 24.7734 18.4801H24.8587V20H28.1257V12.5852C28.1257 12.0076 28.005 11.4938 27.7635 11.044C27.5268 10.5942 27.1906 10.2154 26.755 9.90767C26.3194 9.59517 25.808 9.35843 25.2209 9.19744C24.6338 9.03172 23.9922 8.94886 23.2962 8.94886C22.3208 8.94886 21.4851 9.10038 20.7891 9.40341C20.0978 9.7017 19.5533 10.1136 19.1555 10.6392C18.7625 11.16 18.5187 11.7519 18.424 12.4148L21.6271 12.5284C21.7029 12.178 21.8804 11.9034 22.1598 11.7045C22.4392 11.5057 22.8085 11.4062 23.2678 11.4062C23.6939 11.4062 24.0324 11.5057 24.2834 11.7045C24.5343 11.9034 24.6598 12.1851 24.6598 12.5497V12.5852C24.6598 12.8078 24.5722 12.9806 24.397 13.1037C24.2266 13.2221 23.9519 13.3144 23.5732 13.3807C23.1944 13.4422 22.6948 13.5014 22.0746 13.5582C21.5206 13.6056 20.9998 13.6979 20.5121 13.8352C20.0244 13.9678 19.5935 14.1643 19.2195 14.4247C18.8454 14.6851 18.5518 15.0237 18.3388 15.4403C18.1257 15.857 18.0192 16.3684 18.0192 16.9744C18.0192 17.6941 18.1731 18.2931 18.4808 18.7713C18.7933 19.2448 19.2171 19.5999 19.7521 19.8366ZM23.6868 17.6847C23.3885 17.8362 23.0523 17.9119 22.6783 17.9119C22.2805 17.9119 21.9515 17.8172 21.6911 17.6278C21.4354 17.4384 21.3075 17.1638 21.3075 16.804C21.3075 16.5672 21.3667 16.3636 21.4851 16.1932C21.6082 16.018 21.7834 15.8759 22.0107 15.767C22.2427 15.6581 22.522 15.5777 22.8487 15.5256C23.0097 15.5019 23.1778 15.4759 23.353 15.4474C23.5282 15.419 23.6986 15.3859 23.8643 15.348C24.0301 15.3101 24.1816 15.2699 24.3189 15.2273C24.4609 15.1847 24.5817 15.1373 24.6811 15.0852V16.1222C24.6811 16.4773 24.5911 16.7898 24.4112 17.0597C24.2313 17.3248 23.9898 17.5331 23.6868 17.6847Z\"/></svg>,\n\tworld: <svg width=\"28\" height=\"29\" viewBox=\"0 0 28 29\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M6 2C6 0.895431 6.89543 0 8 0H10C11.1046 0 12 0.895431 12 2V4C12 5.10457 11.1046 6 10 6V10.5688C10.2875 10.9298 10.5816 11.3478 10.8939 11.7915L10.8939 11.7916C11.5 12.6529 12.1742 13.6111 13 14.4368C13.8636 15.3004 15.3471 15.813 17 15.9652V12C15.8954 12 15 11.1046 15 10V8C15 6.89543 15.8954 6 17 6H19C20.1046 6 21 6.89543 21 8V10C21 11.1046 20.1046 12 19 12V15.8819C20.1705 15.6766 21.362 15.2558 22 14.9368C23 14.4368 26 14 28 14.4368V20C28 22.2091 26.2091 24 24 24H8C5.79086 24 4 22.2091 4 20V9C5.38919 8.65271 6.77837 8.54664 8 9.01691V6C6.89543 6 6 5.10457 6 4V2ZM22 26.2968H6C3.79086 26.2968 2 24.5059 2 22.2968V13C1.34604 13.0169 0.673018 13.1285 0 13.2968V24.2968C0 26.5059 1.79086 28.2968 4 28.2968H20C21.6222 28.2968 23.0189 27.3311 23.6465 25.9433C23.1444 26.1704 22.5869 26.2968 22 26.2968Z\"/></svg>,\n\tworldgen: <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 0C2.89543 0 2 0.89543 2 2V4C2 5.10457 2.89543 6 4 6V9.01691C2.77837 8.54664 1.38919 8.65271 0 9V20C0 22.2091 1.79086 24 4 24H20C22.2091 24 24 22.2091 24 20V14.4368C22 14 19 14.4368 18 14.9368C17.362 15.2558 16.1705 15.6766 15 15.8819V12C16.1046 12 17 11.1046 17 10V8C17 6.89543 16.1046 6 15 6H13C11.8954 6 11 6.89543 11 8V10C11 11.1046 11.8954 12 13 12V15.9652C11.3471 15.813 9.86362 15.3004 9 14.4368C8.17424 13.6111 7.50001 12.6529 6.8939 11.7916L6.89388 11.7916L6.89388 11.7916L6.89385 11.7915C6.58163 11.3478 6.28748 10.9298 6 10.5688V6C7.10457 6 8 5.10457 8 4V2C8 0.895431 7.10457 0 6 0H4Z\"/></svg>,\n\t'worldgen/biome': <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M7 1C7 0.447715 7.44772 0 8 0C8.55229 0 9 0.447715 9 1V3C9 3.55228 8.55229 4 8 4C7.44772 4 7 3.55228 7 3V1ZM20.5 21H22.5C23.2136 21 23.6975 20.2741 23.4231 19.6154L19.9231 11.2154C19.5812 10.3949 18.4188 10.3949 18.0769 11.2154L14.5769 19.6154C14.3025 20.2741 14.7864 21 15.5 21H17.5V24H20.5V21ZM16 8C16 7.44772 15.5523 7 15 7H13C12.4477 7 12 7.44772 12 8C12 8.55228 12.4477 9 13 9H15C15.5523 9 16 8.55229 16 8ZM14.4142 13C14.8047 13.3905 14.8047 14.0237 14.4142 14.4142C14.0237 14.8047 13.3905 14.8047 13 14.4142L11.5858 13C11.1953 12.6095 11.1953 11.9763 11.5858 11.5858C11.9763 11.1953 12.6095 11.1953 13 11.5858L14.4142 13ZM4 8C4 7.44772 3.55228 7 3 7H1C0.447715 7 0 7.44772 0 8C0 8.55228 0.447715 9 1 9H3C3.55228 9 4 8.55229 4 8ZM4.41422 3C4.80474 3.39053 4.80474 4.02369 4.41422 4.41421C4.02369 4.80474 3.39053 4.80474 3 4.41421L1.58579 3C1.19526 2.60948 1.19526 1.97631 1.58579 1.58579C1.97631 1.19526 2.60948 1.19526 3 1.58579L4.41422 3ZM8 16C8.55229 16 9 15.5523 9 15V13C9 12.4477 8.55229 12 8 12C7.44772 12 7 12.4477 7 13L7 15C7 15.5523 7.44772 16 8 16ZM3 14.4142C2.60947 14.8047 1.97631 14.8047 1.58579 14.4142C1.19526 14.0237 1.19526 13.3905 1.58579 13L3 11.5858C3.39052 11.1953 4.02369 11.1953 4.41421 11.5858C4.80474 11.9763 4.80474 12.6095 4.41421 13L3 14.4142ZM14.4142 1.58579C14.0237 1.19526 13.3905 1.19526 13 1.58579L11.5858 3C11.1953 3.39053 11.1953 4.02369 11.5858 4.41422C11.9763 4.80474 12.6095 4.80474 13 4.41422L14.4142 3C14.8047 2.60948 14.8047 1.97631 14.4142 1.58579ZM7 5C5.89543 5 5 5.89543 5 7V9C5 10.1046 5.89543 11 7 11H9C10.1046 11 11 10.1046 11 9V7C11 5.89543 10.1046 5 9 5H7Z\"/></svg>,\n\t'worldgen/configured_carver': <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M20 24H4C1.79086 24 0 22.2091 2.47955e-06 20L3.09944e-06 19C1.5 20.5 4.5 22 7 21.5C9.5 21 10 19.7806 10 17.5C10 15 9.17881 12.9285 11.5 12C14 11 16 17 18.5 17.5C20.5 17.9 23 15.3333 24 14.5V20C24 22.2091 22.2091 24 20 24Z\"/><path d=\"M24 4V8C22.1667 9.66667 20.1125 11.8062 18.5 11C16.5 10 14 9 11.5 8.5C10.5194 8.30388 8.5 9 7.5 11C6.5 13 7.5 14.5 6.5 15.5C5.5 16.5 4.5 17 3.5 16C2.05778 14.5578 2 13 0 12.5L2.10762e-06 4C2.65539e-06 1.79086 1.79086 0 4 0H20C22.2091 0 24 1.79086 24 4Z\"/></svg>,\n\t'worldgen/configured_feature': <svg width=\"11\" height=\"18\" viewBox=\"0 0 11 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M0 2C0 0.89543 0.895431 0 2 0H7C8.10457 0 9 0.895431 9 2V4C10.1046 4 11 4.89543 11 6V8C11 9.10457 10.1046 10 9 10H7C6.63571 10 6.29417 9.90261 6 9.73244L6 18H3V15H1C0.447715 15 0 14.5523 0 14V12C0 11.4477 0.447715 11 1 11H3L3 9H2C0.89543 9 0 8.10457 0 7V2Z\"/></svg>,\n\t'worldgen/configured_structure_feature': STRUCTURE,\n\t'worldgen/configured_surface_builder': <svg width=\"24\" height=\"20\" viewBox=\"0 0 24 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M1.21953 2.06398C0.59354 2.14445 0 1.68765 0 1.0565C0 0.611334 0.302132 0.217946 0.74016 0.138531C2.48644 -0.178075 4.18528 -0.0156892 5.5 1.29904C5.94949 1.74852 6.39898 2.38729 6.89388 3.09058L6.89388 3.09059C7.5 3.95195 8.17424 4.91009 9 5.73586C9.9499 6.68575 11.6497 7.21092 13.5 7.29903C15 7.37046 17.078 6.69683 18 6.23586C18.8772 5.79726 21.2934 5.40727 23.2235 5.61295C23.6802 5.66162 24 6.06324 24 6.52248C24 7.14603 23.4206 7.61579 22.7982 7.57749C20.9522 7.46389 18.8138 7.82895 18 8.23586C17.078 8.69683 15 9.37046 13.5 9.29904C11.6497 9.21092 9.9499 8.68575 9 7.73586C8.17424 6.91009 7.5 5.95195 6.89388 5.09059L6.89388 5.09059L6.89387 5.09058C6.39898 4.38729 5.94949 3.74852 5.5 3.29904C4.30594 2.10498 2.79505 1.86144 1.21953 2.06398ZM4 19.299H20C22.2091 19.299 24 17.5082 24 15.299V9.73586C22 9.29903 19 9.73586 18 10.2359C17.078 10.6968 15 11.3705 13.5 11.299C11.6497 11.2109 9.9499 10.6858 9 9.73586C8.17423 8.91009 7.5 7.95194 6.89388 7.09058C6.39898 6.38729 5.94949 5.74852 5.5 5.29903C4 3.79903 2 3.79904 0 4.29903V15.299C0 17.5082 1.79086 19.299 4 19.299Z\"/></svg>,\n\t'worldgen/density_function': <svg width=\"24\" height=\"19\" viewBox=\"0 0 24 19\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M3.99999 19C3.44771 19 2.99999 18.5523 2.99999 18V16H0.999994C0.447709 16 -6.40123e-06 15.5523 -6.40123e-06 15C-6.40123e-06 14.4477 0.447709 14 0.999994 14H2.99999V6.50898C2.73742 6.59875 2.44791 6.71456 2.12858 6.86194C1.3764 7.2091 0.485216 6.88077 0.138056 6.12859C-0.209103 5.37641 0.11923 4.48522 0.871408 4.13806C1.62438 3.79054 2.33177 3.5433 2.99999 3.39632V1C2.99999 0.447716 3.44771 0 3.99999 0C4.55228 0 4.99999 0.447716 4.99999 1V3.2668C5.19676 3.28855 5.38996 3.32136 5.57983 3.36522C6.95063 3.68192 7.87758 4.51535 8.55369 5.26846C8.81818 5.56308 9.07365 5.88025 9.29728 6.15788L9.29731 6.15792C9.35241 6.22632 9.40557 6.29232 9.45646 6.35499C9.73181 6.69411 9.96489 6.96732 10.2004 7.19234C10.6367 7.60933 11.0034 7.79103 11.5 7.79103C13.4431 7.79103 14.7031 7.02516 16.2234 6.10111L16.4096 5.988C18.0133 5.01523 19.9627 3.89955 22.8254 4.53572C23.6341 4.71543 24.144 5.51669 23.9643 6.32539C23.7846 7.13409 22.9833 7.64399 22.1746 7.46428C20.5373 7.10044 19.4867 7.63028 17.9654 8.55302C17.8762 8.60715 17.7854 8.66264 17.6929 8.71915C16.2113 9.62479 14.3033 10.791 11.5 10.791C9.99661 10.791 8.92576 10.1238 8.12775 9.36127C7.74604 8.99651 7.41271 8.59727 7.12751 8.24603C7.06056 8.16357 6.99674 8.0844 6.93508 8.00791L6.9348 8.00757C6.71743 7.73792 6.52696 7.50165 6.3213 7.27257C5.84352 6.74037 5.44831 6.44194 4.99999 6.31296V14H23C23.5523 14 24 14.4477 24 15C24 15.5523 23.5523 16 23 16H4.99999V18C4.99999 18.5523 4.55228 19 3.99999 19Z\"/></svg>,\n\t'worldgen/flat_level_generator_preset': <svg width=\"24\" height=\"22\" viewBox=\"0 0 24 22\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5 0C3.89543 0 3 0.895431 3 2V4C3 5.10457 3.89543 6 5 6V10H1C0.447715 10 0 10.4477 0 11C0 11.5523 0.447716 12 1 12H23C23.5523 12 24 11.5523 24 11C24 10.4477 23.5523 10 23 10H7V6C8.10457 6 9 5.10457 9 4V2C9 0.895431 8.10457 0 7 0H5ZM0 15C0 14.4477 0.447715 14 1 14H23C23.5523 14 24 14.4477 24 15V21C24 21.5523 23.5523 22 23 22H1C0.447716 22 0 21.5523 0 21V15Z\"/></svg>,\n\t'worldgen/noise': <svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M28 0H5C7 5 3 8 0 8V25.5C2.5 31 6.64628 28.2245 11 23C13.5 20 18 19 17.5 32H28C30.2091 32 32 30.2091 32 28V21.5C27.754 23.044 24.104 20.4161 21.05 18.2174C20.148 17.568 19.298 16.956 18.5 16.5C15 14.5 17.953 6.1094 23.5 5C25.2216 4.65569 25.5205 4.78558 27.6624 5.71624C28.6308 6.13704 29.9761 6.72157 32 7.5V4C32 1.79086 30.2091 0 28 0ZM8.5 11.5C7.5 11 6.5 10.5 5 12C2.87868 14.1213 3.5 19.5 6.5 19C9.5 18.5 10 16 10 14.5C10 13.3 9.13246 11.8162 8.5 11.5Z\"/></svg>,\n\t'worldgen/noise_settings': <svg width=\"24\" height=\"19\" viewBox=\"0 0 24 19\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M20 18.299H4C1.79086 18.299 0 16.5082 0 14.299V3.29904C1.5 1 3.5 -1.5 6 2C7 3.4 7.5 7.23586 9 8.73586C9.9499 9.68576 11.3494 10.3408 13 9.5C14.5 8.73586 15 7 16.5 6.5C18.091 5.96967 22 8.29904 24 8.73586V14.299C24 16.5082 22.2091 18.299 20 18.299Z\"/></svg>,\n\t'worldgen/placed_feature': <svg width=\"15\" height=\"20\" viewBox=\"0 0 15 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11 0C9.89543 0 9 0.89543 9 2V4C9 5.10457 9.89543 6 11 6V9H10C8.89543 9 8 9.89543 8 11V13C8 14.1046 8.89543 15 10 15V19.5H12V15C13.1046 15 14 14.1046 14 13V11C14 10.2597 13.5978 9.61337 13 9.26756V6C14.1046 6 15 5.10457 15 4V2C15 0.895431 14.1046 0 13 0H11ZM2 5C0.895431 5 0 5.89543 0 7V9C0 10.1046 0.89543 11 2 11L2 15.5H4V11C5.10457 11 6 10.1046 6 9V7C6 5.89543 5.10457 5 4 5H2Z\"/></svg>,\n\t'worldgen/processor_list': <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M6.21973 0H4C1.79086 0 0 1.79086 0 4V5.82578L4.72912 3.27934L6.21973 0ZM0 8.0973V11H16.9613L17.9149 6.09189L11.6129 0H8.41664L6.48011 4.26037C6.34438 4.55898 6.11451 4.80487 5.82571 4.96037L5.43726 5.16954L7.99614 6.63176C8.47566 6.90577 8.64226 7.51662 8.36825 7.99614C8.09424 8.47566 7.48338 8.64225 7.00387 8.36824L3.50386 6.36824C3.45778 6.34191 3.41458 6.31246 3.37439 6.28032L0 8.0973ZM14.4905 0L17.5131 2.92179L19.4556 1.66116C19.9189 1.36051 20.5382 1.49235 20.8388 1.95563C21.1395 2.41891 21.0077 3.03819 20.5444 3.33884L18.9888 4.34834L19.5 4.84246C19.8649 5.19527 20.0267 5.70872 19.9299 6.20702L18.9987 11H24V4C24 1.79086 22.2091 0 20 0H14.4905ZM3.94591 14H0V20C0 22.2091 1.79086 24 4 24H11V19.1801L6.54232 18.1514L4.89443 21.4472C4.64744 21.9412 4.04677 22.1414 3.55279 21.8944C3.05881 21.6474 2.85859 21.0468 3.10558 20.5528L4.92033 16.9233L3.94591 14ZM11 17.1276V14H6.0541L6.77134 16.1517L11 17.1276ZM21.6247 17.7809C22.056 17.4359 22.1259 16.8066 21.7809 16.3753C21.4359 15.944 20.8066 15.8741 20.3753 16.2191L18.0071 18.1137C17.7506 18.3189 17.5686 18.6026 17.4889 18.9212L16.2192 24H14V14H24V20C24 22.2091 22.2091 24 20 24H18.2808L19.3883 19.57L21.6247 17.7809Z\"/></svg>,\n\t'worldgen/structure': STRUCTURE,\n\t'worldgen/structure_set': <svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11 4L9.5376 4C9.05336 4 8.85189 3.38045 9.24351 3.09563L13.2059 0.21388C13.3812 0.0863707 13.6188 0.0863706 13.7941 0.21388L17.7565 3.09563C18.1481 3.38045 17.9467 4 17.4624 4L16 4V7C16 7.55228 15.5523 8 15 8H12C11.4477 8 11 7.55228 11 7V4ZM8.46241 7H0.537581C0.0533412 7 -0.148129 6.38045 0.243493 6.09563L4.2059 3.21388C4.38123 3.08637 4.61875 3.08637 4.79407 3.21388L8.75649 6.09563C9.14812 6.38045 8.94665 7 8.46241 7ZM6.99999 10V7H1.99999V10C1.99999 10.5523 2.4477 11 2.99999 11H5.99999C6.55227 11 6.99999 10.5523 6.99999 10ZM9.99999 17V14H8.5376C8.05336 14 7.85189 13.3804 8.24351 13.0956L12.2059 10.2139C12.3812 10.0864 12.6188 10.0864 12.7941 10.2139L16.7565 13.0956C17.1481 13.3804 16.9467 14 16.4624 14H15V17C15 17.5523 14.5523 18 14 18H11C10.4477 18 9.99999 17.5523 9.99999 17Z\"/></svg>,\n\t'worldgen/template_pool': <svg width=\"20\" height=\"21\" viewBox=\"0 0 20 21\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M10.2361 5C10.7111 4.46924 11 3.76835 11 3C11 1.34315 9.65685 0 8 0C6.34315 0 5 1.34315 5 3C5 3.76835 5.28885 4.46924 5.76389 5H3C1.34315 5 0 6.34315 0 8V10.1707C0.312779 10.0602 0.649365 10 1 10C2.65685 10 4 11.3431 4 13C4 14.6569 2.65685 16 1 16C0.649365 16 0.312779 15.9398 0 15.8293V18C0 19.6569 1.34315 21 3 21H5.17071C5.06015 20.6872 5 20.3506 5 20C5 18.3431 6.34315 17 8 17C9.65685 17 11 18.3431 11 20C11 20.3506 10.9398 20.6872 10.8293 21H13C14.6569 21 16 19.6569 16 18V15.8293C16.3128 15.9398 16.6494 16 17 16C18.6569 16 20 14.6569 20 13C20 11.3431 18.6569 10 17 10C16.6494 10 16.3128 10.0602 16 10.1707V8C16 6.34315 14.6569 5 13 5H10.2361Z\"/></svg>,\n\t'worldgen/world_preset': <svg width=\"28\" height=\"23\" viewBox=\"0 0 28 23\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15 2C15 0.89543 15.8954 0 17 0H19C20.1046 0 21 0.895431 21 2V4C21 5.10457 20.1046 6 19 6V9.88192C20.1705 9.67661 21.362 9.2558 22 8.93682C23 8.43682 26 8 28 8.43682V14C28 16.2091 26.2091 18 24 18H8C5.79086 18 4 16.2091 4 14V3C6 2.50001 8 2.5 9.5 4C9.94949 4.44949 10.399 5.08825 10.8939 5.79154L10.8939 5.79155C11.5 6.65291 12.1742 7.61106 13 8.43682C13.8636 9.30044 15.3471 9.81299 17 9.96519V6C15.8954 6 15 5.10457 15 4V2ZM22 20.2968H6C3.79086 20.2968 2 18.5059 2 16.2968V7C1.34604 7.01691 0.673018 7.12855 0 7.2968V18.2968C0 20.5059 1.79086 22.2968 4 22.2968H20C21.6222 22.2968 23.0189 21.3311 23.6465 19.9433C23.1444 20.1704 22.5869 20.2968 22 20.2968Z\"/></svg>,\n}\n","import type { Howl, HowlOptions } from 'howler'\nimport { useEffect, useRef, useState } from 'preact/hooks'\nimport { useLocale, useVersion } from '../../contexts/index.js'\nimport type { SoundEvents } from '../../services/index.js'\nimport { getSoundUrl } from '../../services/index.js'\nimport { Btn, NumberInput, RangeInput, TextInput } from '../index.js'\n\nexport interface SoundConfig {\n\tid: string,\n\tsound: string,\n\tdelay: number,\n\tpitch: number,\n\tvolume: number,\n}\ntype SoundConfigProps = SoundConfig & {\n\thowler: (options: HowlOptions) => Howl,\n\tsounds: SoundEvents,\n\tonEdit: (changes: Partial<SoundConfig>) => unknown,\n\tonDelete: () => unknown,\n\tdelayedPlay?: number,\n}\nexport function SoundConfig({ howler, sounds, sound, delay, pitch, volume, onEdit, onDelete, delayedPlay }: SoundConfigProps) {\n\tconst { locale } = useLocale()\n\tconst { version } = useVersion()\n\tconst [loading, setLoading] = useState(true)\n\tconst [playing, setPlaying] = useState(false)\n\tconst [invalid, setInvalid] = useState(false)\n\tconst howls = useRef<Howl[]>([])\n\tconst command = `playsound minecraft:${sound} master @s ~ ~ ~ ${volume} ${pitch}`\n\n\tuseEffect(() => {\n\t\tconst soundEvent = sounds[sound]\n\t\tsetInvalid((soundEvent?.sounds?.length ?? 0) === 0)\n\t\thowls.current.forEach(h => h.stop())\n\t\thowls.current = (soundEvent?.sounds ?? []).map(entry => {\n\t\t\tconst soundPath = typeof entry === 'string' ? entry : entry.name\n\t\t\tconst url = getSoundUrl(version, soundPath)\n\t\t\tconst howl = howler({\n\t\t\t\tsrc: [url],\n\t\t\t\tformat: ['ogg'],\n\t\t\t\tvolume,\n\t\t\t\trate: pitch,\n\t\t\t})\n\t\t\thowl.on('end', () => {\n\t\t\t\tsetPlaying(false)\n\t\t\t})\n\t\t\tconst completed = () => {\n\t\t\t\tif (loading && howls.current.every(h => h.state() === 'loaded')) {\n\t\t\t\t\tsetLoading(false)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (howl.state() === 'loaded') {\n\t\t\t\tsetTimeout(() => completed())\n\t\t\t} else {\n\t\t\t\thowl.on('load', () => {\n\t\t\t\t\tcompleted()\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn howl\n\t\t})\n\t\tsetLoading(true)\n\t}, [sound, sounds])\n\n\tuseEffect(() => {\n\t\thowls.current.forEach(h => h.rate(pitch))\n\t}, [pitch])\n\n\tuseEffect(() => {\n\t\thowls.current.forEach(h => h.volume(volume))\n\t}, [volume])\n\n\tconst play = () => {\n\t\tif (loading || invalid) return\n\t\tstop()\n\t\tconst howl = Math.floor(Math.random() * howls.current.length)\n\t\thowls.current[howl].play()\n\t\tsetPlaying(true)\n\t}\n\tconst stop = () => {\n\t\thowls.current.forEach(h => h.stop())\n\t}\n\tuseEffect(() => {\n\t\tif (delayedPlay) setTimeout(() => play(), delay * 50)\n\t}, [delayedPlay])\n\n\tuseEffect(() => {\n\t\treturn () => stop()\n\t}, [])\n\n\tconst [copyActive, setCopyActive] = useState(false)\n\tconst copyTimeout = useRef<number | undefined>(undefined)\n\tconst copy = () => {\n\t\tnavigator.clipboard.writeText(command)\n\t\tsetCopyActive(true)\n\t\tif (copyTimeout.current !== undefined) clearTimeout(copyTimeout.current)\n\t\tcopyTimeout.current = setTimeout(() => {\n\t\t\tsetCopyActive(false)\n\t\t}, 2000) as any\n\t}\n\n\treturn <div class={`sound-config${loading ? ' loading' : playing ? ' playing' : ''}${invalid ? ' invalid' : ''}`}>\n\t\t<Btn class=\"play\" icon={invalid ? 'alert' : loading ? 'sync' : 'play'} label={locale('sounds.play')} onClick={play} tooltip={invalid ? locale('sounds.unknown_sound') : loading ? locale('sounds.loading_sound') : locale('sounds.play_sound')} tooltipLoc=\"se\" />\n\t\t<TextInput class=\"btn btn-input sound\" list=\"sound-list\" spellcheck={false}\n\t\t\tvalue={sound} onChange={sound => onEdit({ sound })} />\n\t\t<label class=\"delay-label\">{locale('sounds.delay')}: </label>\n\t\t<NumberInput class=\"btn btn-input delay\" min={0}\n\t\t\tvalue={delay} onChange={delay => onEdit({ delay })} />\n\t\t<label class=\"pitch-label\">{locale('sounds.pitch')}: </label>\n\t\t<RangeInput class=\"pitch tooltipped tip-s\" min={0.5} max={2} step={0.01}\n\t\t\taria-label={pitch.toFixed(2)} style={`--x: ${(pitch - 0.5) * (100 / 1.5)}%`}\n\t\t\tvalue={pitch} onChange={pitch => onEdit({ pitch })} />\n\t\t<label class=\"volume-label\">{locale('sounds.volume')}: </label>\n\t\t<RangeInput class=\"volume tooltipped tip-s\" min={0} max={1} step={0.01}\n\t\t\taria-label={volume.toFixed(2)} style={`--x: ${volume * 100}%`}\n\t\t\tvalue={volume} onChange={volume => onEdit({ volume })} />\n\t\t<Btn class={`copy${copyActive ? ' active' : ''}`} icon={copyActive ? 'check' : 'terminal'} label={locale('copy')} tooltip={copyActive ? locale('copied') : locale('sounds.copy_command')}\n\t\t\tonClick={copy} />\n\t\t<Btn class=\"remove\" icon=\"trashcan\" tooltip={locale('sounds.remove_sound')}\n\t\t\tonClick={() => {onDelete(); stop()}} />\n\t</div>\n}\n","import { Icons } from './Icons.js'\nimport { Octicon } from './Octicon.jsx'\n\ninterface Props {\n\ttitle: string,\n\ttitleIcon?: keyof typeof Octicon | keyof typeof Icons,\n\tlink: string,\n\ticon?: keyof typeof Icons,\n\tdesc?: string,\n}\nexport function ToolCard({ title, desc, link, icon, titleIcon }: Props) {\n\tif (icon || desc) {\n\t\treturn <a class=\"tool-card\" href={link}>\n\t\t\t{icon && Icons[icon]}\n\t\t\t<div>\n\t\t\t\t<ToolHead title={title} titleIcon={titleIcon} />\n\t\t\t\t<p>{desc}</p>\n\t\t\t</div>\n\t\t</a>\n\t}\n\n\treturn <a class=\"tool-card\" href={link}>\n\t\t<ToolHead title={title} titleIcon={titleIcon} />\n\t</a>\n}\n\nfunction ToolHead({ title, titleIcon }: Pick<Props, 'title' | 'titleIcon'>) {\n\treturn <h3>\n\t\t{title}\n\t\t{titleIcon && (titleIcon in Octicon ? (Octicon as any)[titleIcon] : (Icons as any)[titleIcon])}\n\t</h3>\n}\n","import type { ComponentChildren } from 'preact'\nimport type { Icons } from './Icons.jsx'\nimport type { Octicon } from './Octicon.jsx'\nimport { ToolCard } from './ToolCard.jsx'\n\ninterface Props {\n\ttitle: string,\n\ttitleIcon?: keyof typeof Octicon | keyof typeof Icons,\n\tlink?: string,\n\tchildren?: ComponentChildren,\n}\nexport function ToolGroup({ title, titleIcon, link, children }: Props) {\n\treturn <div class=\"tool-group\">\n\t\t{link === undefined\n\t\t\t? <div class=\"tool-card\"><h3>{title}</h3></div>\n\t\t\t: <ToolCard {...{ title, titleIcon, link}} />\n\t\t}\n\t\t{children && <div class=\"tool-body\">\n\t\t\t{children}\n\t\t</div>}\n\t</div>\n}\n","import { hashString } from '../Utils.js'\nimport { Octicon } from './index.js'\n\ninterface Props {\n\tlabel: string,\n\tactive?: boolean,\n\tonClick?: (e: MouseEvent) => unknown,\n}\nexport function Badge({ label, active, onClick }: Props) {\n\tconst color = label === 'breaking' ? 5 : hashString(label) % 360\n\treturn <div class={`badge${active ? ' active' : ''}${onClick ? ' clickable' : ''}`} style={`--tint: ${color}`} onClick={onClick}>\n\t\t{label === 'breaking' && Octicon.alert}\n\t\t{label}\n\t</div>\n}\n","/**\n * marked - a markdown parser\n * Copyright (c) 2011-2022, Christopher Jeffrey. (MIT Licensed)\n * https://github.com/markedjs/marked\n */\n\n/**\n * DO NOT EDIT THIS FILE\n * The code in this file is generated from files in ./src/\n */\n\nfunction getDefaults() {\n return {\n baseUrl: null,\n breaks: false,\n extensions: null,\n gfm: true,\n headerIds: true,\n headerPrefix: '',\n highlight: null,\n langPrefix: 'language-',\n mangle: true,\n pedantic: false,\n renderer: null,\n sanitize: false,\n sanitizer: null,\n silent: false,\n smartLists: false,\n smartypants: false,\n tokenizer: null,\n walkTokens: null,\n xhtml: false\n };\n}\n\nlet defaults = getDefaults();\n\nfunction changeDefaults(newDefaults) {\n defaults = newDefaults;\n}\n\n/**\n * Helpers\n */\nconst escapeTest = /[&<>\"']/;\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(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(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(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(sanitize, base, href) {\n if (sanitize) {\n let prot;\n try {\n prot = decodeURIComponent(unescape(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(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 = { exec: function noopTest() {} };\n\nfunction merge(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(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(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(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(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(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\nfunction outputLink(cap, link, raw, lexer) {\n const href = link.href;\n const title = link.title ? escape(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(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 */\nclass Tokenizer {\n constructor(options) {\n this.options = options || defaults;\n }\n\n space(src) {\n const cap = this.rules.block.newline.exec(src);\n if (cap && cap[0].length > 0) {\n return {\n type: 'space',\n raw: cap[0]\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, nextLine, rawLine, itemContents, endEarly;\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 // Check if current bullet point can start a new List Item\n while (src) {\n endEarly = false;\n if (!(cap = itemRegex.exec(src))) {\n break;\n }\n\n if (this.rules.block.hr.test(src)) { // End list if bullet was actually HR (possibly move into itemRegex?)\n break;\n }\n\n raw = cap[0];\n src = src.substring(raw.length);\n\n line = cap[2].split('\\n', 1)[0];\n nextLine = src.split('\\n', 1)[0];\n\n if (this.options.pedantic) {\n indent = 2;\n itemContents = line.trimLeft();\n } else {\n indent = cap[2].search(/[^ ]/); // Find first non-space char\n indent = indent > 4 ? 1 : indent; // Treat indented code blocks (> 4 spaces) as having only 1 indent\n itemContents = line.slice(indent);\n indent += cap[1].length;\n }\n\n blankLine = false;\n\n if (!line && /^ *$/.test(nextLine)) { // Items begin with at most one blank line\n raw += nextLine + '\\n';\n src = src.substring(nextLine.length + 1);\n endEarly = true;\n }\n\n if (!endEarly) {\n const nextBulletRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:[*+-]|\\\\d{1,9}[.)])`);\n\n // Check if following lines should be included in List Item\n while (src) {\n rawLine = src.split('\\n', 1)[0];\n line = rawLine;\n\n // Re-align to follow commonmark nesting rules\n if (this.options.pedantic) {\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 break;\n }\n\n if (line.search(/[^ ]/) >= indent || !line.trim()) { // Dedent if possible\n itemContents += '\\n' + line.slice(indent);\n } else if (!blankLine) { // Until blank line, item doesn't need indentation\n itemContents += '\\n' + line;\n } else { // Otherwise, improper indentation ends this item\n break;\n }\n\n if (!blankLine && !line.trim()) { // Check if current line is blank\n blankLine = true;\n }\n\n raw += rawLine + '\\n';\n src = src.substring(rawLine.length + 1);\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 }\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 const spacers = list.items[i].tokens.filter(t => t.type === 'space');\n const hasMultipleLineBreaks = spacers.every(t => {\n const chars = t.raw.split('');\n let lineBreaks = 0;\n for (const char of chars) {\n if (char === '\\n') {\n lineBreaks += 1;\n }\n if (lineBreaks > 1) {\n return true;\n }\n }\n\n return false;\n });\n\n if (!list.loose && spacers.length && hasMultipleLineBreaks) {\n // Having a single line break doesn't mean a list is loose. A single line break is terminating the last list item\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(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[ \\t]*$/, '').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(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 && /^<a /i.test(cap[0])) {\n this.lexer.state.inLink = true;\n } else if (this.lexer.state.inLink && /^<\\/a>/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(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 // commonmark requires matching angle brackets\n if (!(/>$/.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(href)) {\n if (this.options.pedantic && !(/>$/.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(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(this.options.mangle ? mangle(cap[1]) : cap[1]);\n href = 'mailto:' + text;\n } else {\n text = escape(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(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(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(cap[0])) : cap[0];\n } else {\n text = escape(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\n/**\n * Block-Level Grammar\n */\nconst block = {\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]*?(?:</\\\\1>[^\\\\n]*\\\\n+|$)' // (1)\n + '|comment[^\\\\n]*(\\\\n+|$)' // (2)\n + '|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)' // (3)\n + '|<![A-Z][\\\\s\\\\S]*?(?:>\\\\n*|$)' // (4)\n + '|<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?(?:\\\\]\\\\]>\\\\n*|$)' // (5)\n + '|</?(tag)(?: +|\\\\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 + '|</(?!script|pre|style|textarea)[a-z][\\\\w-]*\\\\s*>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) closing tag\n + ')',\n def: /^ {0,3}\\[(label)\\]: *(?:\\n *)?<?([^\\s>]+)>?(?:(?: +(?:\\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|table| +\\n)[^\\n]+)*)/,\n text: /^[^\\n]+/\n};\n\nblock._label = /(?!\\s*\\])(?:\\\\.|[^\\[\\]\\\\])+/;\nblock._title = /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/;\nblock.def = edit(block.def)\n .replace('label', block._label)\n .replace('title', block._title)\n .getRegex();\n\nblock.bullet = /(?:[*+-]|\\d{1,9}[.)])/;\nblock.listItemStart = edit(/^( *)(bull) */)\n .replace('bull', block.bullet)\n .getRegex();\n\nblock.list = edit(block.list)\n .replace(/bull/g, block.bullet)\n .replace('hr', '\\\\n+(?=\\\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$))')\n .replace('def', '\\\\n+(?=' + block.def.source + ')')\n .getRegex();\n\nblock._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._comment = /<!--(?!-?>)[\\s\\S]*?(?:-->|$)/;\nblock.html = edit(block.html, 'i')\n .replace('comment', block._comment)\n .replace('tag', block._tag)\n .replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/)\n .getRegex();\n\nblock.paragraph = edit(block._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('|table', '')\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n\nblock.blockquote = edit(block.blockquote)\n .replace('paragraph', block.paragraph)\n .getRegex();\n\n/**\n * Normal Block Grammar\n */\n\nblock.normal = merge({}, block);\n\n/**\n * GFM Block Grammar\n */\n\nblock.gfm = merge({}, block.normal, {\n table: '^ *([^\\\\n ].*\\\\|.*)\\\\n' // Header\n + ' {0,3}(?:\\\\| *)?(:?-+:? *(?:\\\\| *:?-+:? *)*)(?:\\\\| *)?' // Align\n + '(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)' // Cells\n});\n\nblock.gfm.table = edit(block.gfm.table)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('blockquote', ' {0,3}>')\n .replace('code', ' {4}[^\\\\n]')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block._tag) // tables can be interrupted by type (6) html blocks\n .getRegex();\n\nblock.gfm.paragraph = edit(block._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('table', block.gfm.table) // interrupt paragraphs with table\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n/**\n * Pedantic grammar (original John Gruber's loose markdown specification)\n */\n\nblock.pedantic = merge({}, block.normal, {\n html: edit(\n '^ *(?:comment *(?:\\\\n|\\\\s*$)'\n + '|<(tag)[\\\\s\\\\S]+?</\\\\1> *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n + '|<tag(?:\"[^\"]*\"|\\'[^\\']*\\'|\\\\s[^\\'\"/>\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))')\n .replace('comment', block._comment)\n .replace(/tag/g, '(?!(?:'\n + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub'\n + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)'\n + '\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b')\n .getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *<?([^\\s>]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n fences: noopTest, // fences not supported\n paragraph: edit(block.normal._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' *#{1,6} *[^\\n]')\n .replace('lheading', block.lheading)\n .replace('blockquote', ' {0,3}>')\n .replace('|fences', '')\n .replace('|list', '')\n .replace('|html', '')\n .getRegex()\n});\n\n/**\n * Inline-Level Grammar\n */\nconst inline = {\n escape: /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,\n autolink: /^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/,\n url: noopTest,\n tag: '^comment'\n + '|^</[a-zA-Z][\\\\w:-]*\\\\s*>' // self-closing tag\n + '|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>' // open tag\n + '|^<\\\\?[\\\\s\\\\S]*?\\\\?>' // processing instruction, e.g. <?php ?>\n + '|^<![a-zA-Z]+\\\\s[\\\\s\\\\S]*?>' // declaration, e.g. <!DOCTYPE html>\n + '|^<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>', // CDATA section\n link: /^!?\\[(label)\\]\\(\\s*(href)(?:\\s+(title))?\\s*\\)/,\n reflink: /^!?\\[(label)\\]\\[(ref)\\]/,\n nolink: /^!?\\[(ref)\\](?:\\[\\])?/,\n reflinkSearch: 'reflink|nolink(?!\\\\()',\n emStrong: {\n lDelim: /^(?:\\*+(?:([punct_])|[^\\s*]))|^_+(?:([punct*])|([^\\s_]))/,\n // (1) and (2) can only be a Right Delimiter. (3) and (4) can only be Left. (5) and (6) can be either Left or Right.\n // () Skip orphan delim inside strong (1) #*** (2) a***#, a*** (3) #***a, ***a (4) ***# (5) #***# (6) a***a\n rDelimAst: /^[^_*]*?\\_\\_[^_*]*?\\*[^_*]*?(?=\\_\\_)|[punct_](\\*+)(?=[\\s]|$)|[^punct*_\\s](\\*+)(?=[punct_\\s]|$)|[punct_\\s](\\*+)(?=[^punct*_\\s])|[\\s](\\*+)(?=[punct_])|[punct_](\\*+)(?=[punct_])|[^punct*_\\s](\\*+)(?=[^punct*_\\s])/,\n rDelimUnd: /^[^_*]*?\\*\\*[^_*]*?\\_[^_*]*?(?=\\*\\*)|[punct*](\\_+)(?=[\\s]|$)|[^punct*_\\s](\\_+)(?=[punct*\\s]|$)|[punct*\\s](\\_+)(?=[^punct*_\\s])|[\\s](\\_+)(?=[punct*])|[punct*](\\_+)(?=[punct*])/ // ^- Not allowed for _\n },\n code: /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,\n br: /^( {2,}|\\\\)\\n(?!\\s*$)/,\n del: noopTest,\n text: /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*_]|\\b_|$)|[^ ](?= {2,}\\n)))/,\n punctuation: /^([\\spunctuation])/\n};\n\n// list of punctuation marks from CommonMark spec\n// without * and _ to handle the different emphasis markers * and _\ninline._punctuation = '!\"#$%&\\'()+\\\\-.,/:;<=>?@\\\\[\\\\]`^{|}~';\ninline.punctuation = edit(inline.punctuation).replace(/punctuation/g, inline._punctuation).getRegex();\n\n// sequences em should skip over [title](link), `code`, <html>\ninline.blockSkip = /\\[[^\\]]*?\\]\\([^\\)]*?\\)|`[^`]*?`|<[^>]*?>/g;\ninline.escapedEmSt = /\\\\\\*|\\\\_/g;\n\ninline._comment = edit(block._comment).replace('(?:-->|$)', '-->').getRegex();\n\ninline.emStrong.lDelim = edit(inline.emStrong.lDelim)\n .replace(/punct/g, inline._punctuation)\n .getRegex();\n\ninline.emStrong.rDelimAst = edit(inline.emStrong.rDelimAst, 'g')\n .replace(/punct/g, inline._punctuation)\n .getRegex();\n\ninline.emStrong.rDelimUnd = edit(inline.emStrong.rDelimUnd, 'g')\n .replace(/punct/g, inline._punctuation)\n .getRegex();\n\ninline._escapes = /\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/g;\n\ninline._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;\ninline._email = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/;\ninline.autolink = edit(inline.autolink)\n .replace('scheme', inline._scheme)\n .replace('email', inline._email)\n .getRegex();\n\ninline._attribute = /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/;\n\ninline.tag = edit(inline.tag)\n .replace('comment', inline._comment)\n .replace('attribute', inline._attribute)\n .getRegex();\n\ninline._label = /(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\ninline._href = /<(?:\\\\.|[^\\n<>\\\\])+>|[^\\s\\x00-\\x1f]*/;\ninline._title = /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/;\n\ninline.link = edit(inline.link)\n .replace('label', inline._label)\n .replace('href', inline._href)\n .replace('title', inline._title)\n .getRegex();\n\ninline.reflink = edit(inline.reflink)\n .replace('label', inline._label)\n .replace('ref', block._label)\n .getRegex();\n\ninline.nolink = edit(inline.nolink)\n .replace('ref', block._label)\n .getRegex();\n\ninline.reflinkSearch = edit(inline.reflinkSearch, 'g')\n .replace('reflink', inline.reflink)\n .replace('nolink', inline.nolink)\n .getRegex();\n\n/**\n * Normal Inline Grammar\n */\n\ninline.normal = merge({}, inline);\n\n/**\n * Pedantic Inline Grammar\n */\n\ninline.pedantic = merge({}, inline.normal, {\n strong: {\n start: /^__|\\*\\*/,\n middle: /^__(?=\\S)([\\s\\S]*?\\S)__(?!_)|^\\*\\*(?=\\S)([\\s\\S]*?\\S)\\*\\*(?!\\*)/,\n endAst: /\\*\\*(?!\\*)/g,\n endUnd: /__(?!_)/g\n },\n em: {\n start: /^_|\\*/,\n middle: /^()\\*(?=\\S)([\\s\\S]*?\\S)\\*(?!\\*)|^_(?=\\S)([\\s\\S]*?\\S)_(?!_)/,\n endAst: /\\*(?!\\*)/g,\n endUnd: /_(?!_)/g\n },\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/)\n .replace('label', inline._label)\n .getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/)\n .replace('label', inline._label)\n .getRegex()\n});\n\n/**\n * GFM Inline Grammar\n */\n\ninline.gfm = merge({}, inline.normal, {\n escape: edit(inline.escape).replace('])', '~|])').getRegex(),\n _extended_email: /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,\n url: /^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/,\n _backpedal: /(?:[^?!.,:;*_~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,\n del: /^(~~?)(?=[^\\s~])([\\s\\S]*?[^\\s~])\\1(?=[^~]|$)/,\n text: /^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*~_]|\\b_|https?:\\/\\/|ftp:\\/\\/|www\\.|$)|[^ ](?= {2,}\\n)|[^a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-](?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)))/\n});\n\ninline.gfm.url = edit(inline.gfm.url, 'i')\n .replace('email', inline.gfm._extended_email)\n .getRegex();\n/**\n * GFM + Line Breaks Inline Grammar\n */\n\ninline.breaks = merge({}, inline.gfm, {\n br: edit(inline.br).replace('{2,}', '*').getRegex(),\n text: edit(inline.gfm.text)\n .replace('\\\\b_', '\\\\b_| {2,}\\\\n')\n .replace(/\\{2,\\}/g, '*')\n .getRegex()\n});\n\n/**\n * smartypants text replacement\n */\nfunction smartypants(text) {\n return text\n // em-dashes\n .replace(/---/g, '\\u2014')\n // en-dashes\n .replace(/--/g, '\\u2013')\n // opening singles\n .replace(/(^|[-\\u2014/(\\[{\"\\s])'/g, '$1\\u2018')\n // closing singles & apostrophes\n .replace(/'/g, '\\u2019')\n // opening doubles\n .replace(/(^|[-\\u2014/(\\[{\\u2018\\s])\"/g, '$1\\u201c')\n // closing doubles\n .replace(/\"/g, '\\u201d')\n // ellipses\n .replace(/\\.{3}/g, '\\u2026');\n}\n\n/**\n * mangle email addresses\n */\nfunction mangle(text) {\n let out = '',\n i,\n ch;\n\n const l = text.length;\n for (i = 0; i < l; i++) {\n ch = text.charCodeAt(i);\n if (Math.random() > 0.5) {\n ch = 'x' + ch.toString(16);\n }\n out += '&#' + ch + ';';\n }\n\n return out;\n}\n\n/**\n * Block Lexer\n */\nclass Lexer {\n constructor(options) {\n this.tokens = [];\n this.tokens.links = Object.create(null);\n this.options = options || defaults;\n this.options.tokenizer = this.options.tokenizer || new Tokenizer();\n this.tokenizer = this.options.tokenizer;\n this.tokenizer.options = this.options;\n this.tokenizer.lexer = this;\n this.inlineQueue = [];\n this.state = {\n inLink: false,\n inRawBlock: false,\n top: true\n };\n\n const rules = {\n block: block.normal,\n inline: inline.normal\n };\n\n if (this.options.pedantic) {\n rules.block = block.pedantic;\n rules.inline = inline.pedantic;\n } else if (this.options.gfm) {\n rules.block = block.gfm;\n if (this.options.breaks) {\n rules.inline = inline.breaks;\n } else {\n rules.inline = inline.gfm;\n }\n }\n this.tokenizer.rules = rules;\n }\n\n /**\n * Expose Rules\n */\n static get rules() {\n return {\n block,\n inline\n };\n }\n\n /**\n * Static Lex Method\n */\n static lex(src, options) {\n const lexer = new Lexer(options);\n return lexer.lex(src);\n }\n\n /**\n * Static Lex Inline Method\n */\n static lexInline(src, options) {\n const lexer = new Lexer(options);\n return lexer.inlineTokens(src);\n }\n\n /**\n * Preprocessing\n */\n lex(src) {\n src = src\n .replace(/\\r\\n|\\r/g, '\\n')\n .replace(/\\t/g, ' ');\n\n this.blockTokens(src, this.tokens);\n\n let next;\n while (next = this.inlineQueue.shift()) {\n this.inlineTokens(next.src, next.tokens);\n }\n\n return this.tokens;\n }\n\n /**\n * Lexing\n */\n blockTokens(src, tokens = []) {\n if (this.options.pedantic) {\n src = src.replace(/^ +$/gm, '');\n }\n let token, lastToken, cutSrc, lastParagraphClipped;\n\n while (src) {\n if (this.options.extensions\n && this.options.extensions.block\n && this.options.extensions.block.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n\n // newline\n if (token = this.tokenizer.space(src)) {\n src = src.substring(token.raw.length);\n if (token.raw.length === 1 && tokens.length > 0) {\n // if there's a single \\n as a spacer, it's terminating the last line,\n // so move it there so that we don't get unecessary paragraph tags\n tokens[tokens.length - 1].raw += '\\n';\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // code\n if (token = this.tokenizer.code(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n // An indented code block cannot interrupt a paragraph.\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // fences\n if (token = this.tokenizer.fences(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // heading\n if (token = this.tokenizer.heading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // hr\n if (token = this.tokenizer.hr(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // blockquote\n if (token = this.tokenizer.blockquote(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // list\n if (token = this.tokenizer.list(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // html\n if (token = this.tokenizer.html(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // def\n if (token = this.tokenizer.def(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.raw;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else if (!this.tokens.links[token.tag]) {\n this.tokens.links[token.tag] = {\n href: token.href,\n title: token.title\n };\n }\n continue;\n }\n\n // table (gfm)\n if (token = this.tokenizer.table(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // lheading\n if (token = this.tokenizer.lheading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // top-level paragraph\n // prevent paragraph consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startBlock) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startBlock.forEach(function(getStartIndex) {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) { startIndex = Math.min(startIndex, tempStart); }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) {\n lastToken = tokens[tokens.length - 1];\n if (lastParagraphClipped && lastToken.type === 'paragraph') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n lastParagraphClipped = (cutSrc.length !== src.length);\n src = src.substring(token.raw.length);\n continue;\n }\n\n // text\n if (token = this.tokenizer.text(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n\n this.state.top = true;\n return tokens;\n }\n\n inline(src, tokens) {\n this.inlineQueue.push({ src, tokens });\n }\n\n /**\n * Lexing/Compiling\n */\n inlineTokens(src, tokens = []) {\n let token, lastToken, cutSrc;\n\n // String with links masked to avoid interference with em and strong\n let maskedSrc = src;\n let match;\n let keepPrevChar, prevChar;\n\n // Mask out reflinks\n if (this.tokens.links) {\n const links = Object.keys(this.tokens.links);\n if (links.length > 0) {\n while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) {\n if (links.includes(match[0].slice(match[0].lastIndexOf('[') + 1, -1))) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);\n }\n }\n }\n }\n // Mask out other blocks\n while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);\n }\n\n // Mask out escaped em & strong delimiters\n while ((match = this.tokenizer.rules.inline.escapedEmSt.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '++' + maskedSrc.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);\n }\n\n while (src) {\n if (!keepPrevChar) {\n prevChar = '';\n }\n keepPrevChar = false;\n\n // extensions\n if (this.options.extensions\n && this.options.extensions.inline\n && this.options.extensions.inline.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n\n // escape\n if (token = this.tokenizer.escape(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // tag\n if (token = this.tokenizer.tag(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // link\n if (token = this.tokenizer.link(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // reflink, nolink\n if (token = this.tokenizer.reflink(src, this.tokens.links)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // em & strong\n if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // code\n if (token = this.tokenizer.codespan(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // br\n if (token = this.tokenizer.br(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // del (gfm)\n if (token = this.tokenizer.del(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // autolink\n if (token = this.tokenizer.autolink(src, mangle)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // url (gfm)\n if (!this.state.inLink && (token = this.tokenizer.url(src, mangle))) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // text\n // prevent inlineText consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startInline) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startInline.forEach(function(getStartIndex) {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) { startIndex = Math.min(startIndex, tempStart); }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (token = this.tokenizer.inlineText(cutSrc, smartypants)) {\n src = src.substring(token.raw.length);\n if (token.raw.slice(-1) !== '_') { // Track prevChar before string of ____ started\n prevChar = token.raw.slice(-1);\n }\n keepPrevChar = true;\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n\n return tokens;\n }\n}\n\n/**\n * Renderer\n */\nclass Renderer {\n constructor(options) {\n this.options = options || defaults;\n }\n\n code(code, infostring, escaped) {\n const lang = (infostring || '').match(/\\S*/)[0];\n if (this.options.highlight) {\n const out = this.options.highlight(code, lang);\n if (out != null && out !== code) {\n escaped = true;\n code = out;\n }\n }\n\n code = code.replace(/\\n$/, '') + '\\n';\n\n if (!lang) {\n return '<pre><code>'\n + (escaped ? code : escape(code, true))\n + '</code></pre>\\n';\n }\n\n return '<pre><code class=\"'\n + this.options.langPrefix\n + escape(lang, true)\n + '\">'\n + (escaped ? code : escape(code, true))\n + '</code></pre>\\n';\n }\n\n blockquote(quote) {\n return '<blockquote>\\n' + quote + '</blockquote>\\n';\n }\n\n html(html) {\n return html;\n }\n\n heading(text, level, raw, slugger) {\n if (this.options.headerIds) {\n return '<h'\n + level\n + ' id=\"'\n + this.options.headerPrefix\n + slugger.slug(raw)\n + '\">'\n + text\n + '</h'\n + level\n + '>\\n';\n }\n // ignore IDs\n return '<h' + level + '>' + text + '</h' + level + '>\\n';\n }\n\n hr() {\n return this.options.xhtml ? '<hr/>\\n' : '<hr>\\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 + '</' + type + '>\\n';\n }\n\n listitem(text) {\n return '<li>' + text + '</li>\\n';\n }\n\n checkbox(checked) {\n return '<input '\n + (checked ? 'checked=\"\" ' : '')\n + 'disabled=\"\" type=\"checkbox\"'\n + (this.options.xhtml ? ' /' : '')\n + '> ';\n }\n\n paragraph(text) {\n return '<p>' + text + '</p>\\n';\n }\n\n table(header, body) {\n if (body) body = '<tbody>' + body + '</tbody>';\n\n return '<table>\\n'\n + '<thead>\\n'\n + header\n + '</thead>\\n'\n + body\n + '</table>\\n';\n }\n\n tablerow(content) {\n return '<tr>\\n' + content + '</tr>\\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 + '</' + type + '>\\n';\n }\n\n // span level renderer\n strong(text) {\n return '<strong>' + text + '</strong>';\n }\n\n em(text) {\n return '<em>' + text + '</em>';\n }\n\n codespan(text) {\n return '<code>' + text + '</code>';\n }\n\n br() {\n return this.options.xhtml ? '<br/>' : '<br>';\n }\n\n del(text) {\n return '<del>' + text + '</del>';\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 = '<a href=\"' + escape(href) + '\"';\n if (title) {\n out += ' title=\"' + title + '\"';\n }\n out += '>' + text + '</a>';\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 = '<img src=\"' + href + '\" alt=\"' + text + '\"';\n if (title) {\n out += ' title=\"' + title + '\"';\n }\n out += this.options.xhtml ? '/>' : '>';\n return out;\n }\n\n text(text) {\n return text;\n }\n}\n\n/**\n * TextRenderer\n * returns only the textual part of the token\n */\nclass TextRenderer {\n // no need for block level renderers\n strong(text) {\n return text;\n }\n\n em(text) {\n return text;\n }\n\n codespan(text) {\n return text;\n }\n\n del(text) {\n return text;\n }\n\n html(text) {\n return text;\n }\n\n text(text) {\n return text;\n }\n\n link(href, title, text) {\n return '' + text;\n }\n\n image(href, title, text) {\n return '' + text;\n }\n\n br() {\n return '';\n }\n}\n\n/**\n * Slugger generates header id\n */\nclass Slugger {\n constructor() {\n this.seen = {};\n }\n\n serialize(value) {\n return value\n .toLowerCase()\n .trim()\n // remove html tags\n .replace(/<[!\\/a-z].*?>/ig, '')\n // remove unwanted chars\n .replace(/[\\u2000-\\u206F\\u2E00-\\u2E7F\\\\'!\"#$%&()*+,./:;<=>?@[\\]^`{|}~]/g, '')\n .replace(/\\s/g, '-');\n }\n\n /**\n * Finds the next safe (unique) slug to use\n */\n getNextSafeSlug(originalSlug, isDryRun) {\n let slug = originalSlug;\n let occurenceAccumulator = 0;\n if (this.seen.hasOwnProperty(slug)) {\n occurenceAccumulator = this.seen[originalSlug];\n do {\n occurenceAccumulator++;\n slug = originalSlug + '-' + occurenceAccumulator;\n } while (this.seen.hasOwnProperty(slug));\n }\n if (!isDryRun) {\n this.seen[originalSlug] = occurenceAccumulator;\n this.seen[slug] = 0;\n }\n return slug;\n }\n\n /**\n * Convert string to unique id\n * @param {object} options\n * @param {boolean} options.dryrun Generates the next unique slug without updating the internal accumulator.\n */\n slug(value, options = {}) {\n const slug = this.serialize(value);\n return this.getNextSafeSlug(slug, options.dryrun);\n }\n}\n\n/**\n * Parsing & Compiling\n */\nclass Parser {\n constructor(options) {\n this.options = options || defaults;\n this.options.renderer = this.options.renderer || new Renderer();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n this.textRenderer = new TextRenderer();\n this.slugger = new Slugger();\n }\n\n /**\n * Static Parse Method\n */\n static parse(tokens, options) {\n const parser = new Parser(options);\n return parser.parse(tokens);\n }\n\n /**\n * Static Parse Inline Method\n */\n static parseInline(tokens, options) {\n const parser = new Parser(options);\n return parser.parseInline(tokens);\n }\n\n /**\n * Parse Loop\n */\n parse(tokens, top = true) {\n let out = '',\n i,\n j,\n k,\n l2,\n l3,\n row,\n cell,\n header,\n body,\n token,\n ordered,\n start,\n loose,\n itemBody,\n item,\n checked,\n task,\n checkbox,\n ret;\n\n const l = tokens.length;\n for (i = 0; i < l; i++) {\n token = tokens[i];\n\n // Run any renderer extensions\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n ret = this.options.extensions.renderers[token.type].call({ parser: this }, token);\n if (ret !== false || !['space', 'hr', 'heading', 'code', 'table', 'blockquote', 'list', 'html', 'paragraph', 'text'].includes(token.type)) {\n out += ret || '';\n continue;\n }\n }\n\n switch (token.type) {\n case 'space': {\n continue;\n }\n case 'hr': {\n out += this.renderer.hr();\n continue;\n }\n case 'heading': {\n out += this.renderer.heading(\n this.parseInline(token.tokens),\n token.depth,\n unescape(this.parseInline(token.tokens, this.textRenderer)),\n this.slugger);\n continue;\n }\n case 'code': {\n out += this.renderer.code(token.text,\n token.lang,\n token.escaped);\n continue;\n }\n case 'table': {\n header = '';\n\n // header\n cell = '';\n l2 = token.header.length;\n for (j = 0; j < l2; j++) {\n cell += this.renderer.tablecell(\n this.parseInline(token.header[j].tokens),\n { header: true, align: token.align[j] }\n );\n }\n header += this.renderer.tablerow(cell);\n\n body = '';\n l2 = token.rows.length;\n for (j = 0; j < l2; j++) {\n row = token.rows[j];\n\n cell = '';\n l3 = row.length;\n for (k = 0; k < l3; k++) {\n cell += this.renderer.tablecell(\n this.parseInline(row[k].tokens),\n { header: false, align: token.align[k] }\n );\n }\n\n body += this.renderer.tablerow(cell);\n }\n out += this.renderer.table(header, body);\n continue;\n }\n case 'blockquote': {\n body = this.parse(token.tokens);\n out += this.renderer.blockquote(body);\n continue;\n }\n case 'list': {\n ordered = token.ordered;\n start = token.start;\n loose = token.loose;\n l2 = token.items.length;\n\n body = '';\n for (j = 0; j < l2; j++) {\n item = token.items[j];\n checked = item.checked;\n task = item.task;\n\n itemBody = '';\n if (item.task) {\n checkbox = this.renderer.checkbox(checked);\n if (loose) {\n if (item.tokens.length > 0 && item.tokens[0].type === 'paragraph') {\n item.tokens[0].text = checkbox + ' ' + item.tokens[0].text;\n if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === 'text') {\n item.tokens[0].tokens[0].text = checkbox + ' ' + item.tokens[0].tokens[0].text;\n }\n } else {\n item.tokens.unshift({\n type: 'text',\n text: checkbox\n });\n }\n } else {\n itemBody += checkbox;\n }\n }\n\n itemBody += this.parse(item.tokens, loose);\n body += this.renderer.listitem(itemBody, task, checked);\n }\n\n out += this.renderer.list(body, ordered, start);\n continue;\n }\n case 'html': {\n // TODO parse inline content if parameter markdown=1\n out += this.renderer.html(token.text);\n continue;\n }\n case 'paragraph': {\n out += this.renderer.paragraph(this.parseInline(token.tokens));\n continue;\n }\n case 'text': {\n body = token.tokens ? this.parseInline(token.tokens) : token.text;\n while (i + 1 < l && tokens[i + 1].type === 'text') {\n token = tokens[++i];\n body += '\\n' + (token.tokens ? this.parseInline(token.tokens) : token.text);\n }\n out += top ? this.renderer.paragraph(body) : body;\n continue;\n }\n\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n\n return out;\n }\n\n /**\n * Parse Inline Tokens\n */\n parseInline(tokens, renderer) {\n renderer = renderer || this.renderer;\n let out = '',\n i,\n token,\n ret;\n\n const l = tokens.length;\n for (i = 0; i < l; i++) {\n token = tokens[i];\n\n // Run any renderer extensions\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n ret = this.options.extensions.renderers[token.type].call({ parser: this }, token);\n if (ret !== false || !['escape', 'html', 'link', 'image', 'strong', 'em', 'codespan', 'br', 'del', 'text'].includes(token.type)) {\n out += ret || '';\n continue;\n }\n }\n\n switch (token.type) {\n case 'escape': {\n out += renderer.text(token.text);\n break;\n }\n case 'html': {\n out += renderer.html(token.text);\n break;\n }\n case 'link': {\n out += renderer.link(token.href, token.title, this.parseInline(token.tokens, renderer));\n break;\n }\n case 'image': {\n out += renderer.image(token.href, token.title, token.text);\n break;\n }\n case 'strong': {\n out += renderer.strong(this.parseInline(token.tokens, renderer));\n break;\n }\n case 'em': {\n out += renderer.em(this.parseInline(token.tokens, renderer));\n break;\n }\n case 'codespan': {\n out += renderer.codespan(token.text);\n break;\n }\n case 'br': {\n out += renderer.br();\n break;\n }\n case 'del': {\n out += renderer.del(this.parseInline(token.tokens, renderer));\n break;\n }\n case 'text': {\n out += renderer.text(token.text);\n break;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out;\n }\n}\n\n/**\n * Marked\n */\nfunction marked(src, opt, callback) {\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n throw new Error('marked(): input parameter is undefined or null');\n }\n if (typeof src !== 'string') {\n throw new Error('marked(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected');\n }\n\n if (typeof opt === 'function') {\n callback = opt;\n opt = null;\n }\n\n opt = merge({}, marked.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n\n if (callback) {\n const highlight = opt.highlight;\n let tokens;\n\n try {\n tokens = Lexer.lex(src, opt);\n } catch (e) {\n return callback(e);\n }\n\n const done = function(err) {\n let out;\n\n if (!err) {\n try {\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n out = Parser.parse(tokens, opt);\n } catch (e) {\n err = e;\n }\n }\n\n opt.highlight = highlight;\n\n return err\n ? callback(err)\n : callback(null, out);\n };\n\n if (!highlight || highlight.length < 3) {\n return done();\n }\n\n delete opt.highlight;\n\n if (!tokens.length) return done();\n\n let pending = 0;\n marked.walkTokens(tokens, function(token) {\n if (token.type === 'code') {\n pending++;\n setTimeout(() => {\n highlight(token.text, token.lang, function(err, code) {\n if (err) {\n return done(err);\n }\n if (code != null && code !== token.text) {\n token.text = code;\n token.escaped = true;\n }\n\n pending--;\n if (pending === 0) {\n done();\n }\n });\n }, 0);\n }\n });\n\n if (pending === 0) {\n done();\n }\n\n return;\n }\n\n try {\n const tokens = Lexer.lex(src, opt);\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n return Parser.parse(tokens, opt);\n } catch (e) {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n if (opt.silent) {\n return '<p>An error occurred:</p><pre>'\n + escape(e.message + '', true)\n + '</pre>';\n }\n throw e;\n }\n}\n\n/**\n * Options\n */\n\nmarked.options =\nmarked.setOptions = function(opt) {\n merge(marked.defaults, opt);\n changeDefaults(marked.defaults);\n return marked;\n};\n\nmarked.getDefaults = getDefaults;\n\nmarked.defaults = defaults;\n\n/**\n * Use Extension\n */\n\nmarked.use = function(...args) {\n const opts = merge({}, ...args);\n const extensions = marked.defaults.extensions || { renderers: {}, childTokens: {} };\n let hasExtensions;\n\n args.forEach((pack) => {\n // ==-- Parse \"addon\" extensions --== //\n if (pack.extensions) {\n hasExtensions = true;\n pack.extensions.forEach((ext) => {\n if (!ext.name) {\n throw new Error('extension name required');\n }\n if (ext.renderer) { // Renderer extensions\n const prevRenderer = extensions.renderers ? extensions.renderers[ext.name] : null;\n if (prevRenderer) {\n // Replace extension with func to run new extension but fall back if false\n extensions.renderers[ext.name] = function(...args) {\n let ret = ext.renderer.apply(this, args);\n if (ret === false) {\n ret = prevRenderer.apply(this, args);\n }\n return ret;\n };\n } else {\n extensions.renderers[ext.name] = ext.renderer;\n }\n }\n if (ext.tokenizer) { // Tokenizer Extensions\n if (!ext.level || (ext.level !== 'block' && ext.level !== 'inline')) {\n throw new Error(\"extension level must be 'block' or 'inline'\");\n }\n if (extensions[ext.level]) {\n extensions[ext.level].unshift(ext.tokenizer);\n } else {\n extensions[ext.level] = [ext.tokenizer];\n }\n if (ext.start) { // Function to check for start of token\n if (ext.level === 'block') {\n if (extensions.startBlock) {\n extensions.startBlock.push(ext.start);\n } else {\n extensions.startBlock = [ext.start];\n }\n } else if (ext.level === 'inline') {\n if (extensions.startInline) {\n extensions.startInline.push(ext.start);\n } else {\n extensions.startInline = [ext.start];\n }\n }\n }\n }\n if (ext.childTokens) { // Child tokens to be visited by walkTokens\n extensions.childTokens[ext.name] = ext.childTokens;\n }\n });\n }\n\n // ==-- Parse \"overwrite\" extensions --== //\n if (pack.renderer) {\n const renderer = marked.defaults.renderer || new Renderer();\n for (const prop in pack.renderer) {\n const prevRenderer = renderer[prop];\n // Replace renderer with func to run extension, but fall back if false\n renderer[prop] = (...args) => {\n let ret = pack.renderer[prop].apply(renderer, args);\n if (ret === false) {\n ret = prevRenderer.apply(renderer, args);\n }\n return ret;\n };\n }\n opts.renderer = renderer;\n }\n if (pack.tokenizer) {\n const tokenizer = marked.defaults.tokenizer || new Tokenizer();\n for (const prop in pack.tokenizer) {\n const prevTokenizer = tokenizer[prop];\n // Replace tokenizer with func to run extension, but fall back if false\n tokenizer[prop] = (...args) => {\n let ret = pack.tokenizer[prop].apply(tokenizer, args);\n if (ret === false) {\n ret = prevTokenizer.apply(tokenizer, args);\n }\n return ret;\n };\n }\n opts.tokenizer = tokenizer;\n }\n\n // ==-- Parse WalkTokens extensions --== //\n if (pack.walkTokens) {\n const walkTokens = marked.defaults.walkTokens;\n opts.walkTokens = function(token) {\n pack.walkTokens.call(this, token);\n if (walkTokens) {\n walkTokens.call(this, token);\n }\n };\n }\n\n if (hasExtensions) {\n opts.extensions = extensions;\n }\n\n marked.setOptions(opts);\n });\n};\n\n/**\n * Run callback for every token\n */\n\nmarked.walkTokens = function(tokens, callback) {\n for (const token of tokens) {\n callback.call(marked, token);\n switch (token.type) {\n case 'table': {\n for (const cell of token.header) {\n marked.walkTokens(cell.tokens, callback);\n }\n for (const row of token.rows) {\n for (const cell of row) {\n marked.walkTokens(cell.tokens, callback);\n }\n }\n break;\n }\n case 'list': {\n marked.walkTokens(token.items, callback);\n break;\n }\n default: {\n if (marked.defaults.extensions && marked.defaults.extensions.childTokens && marked.defaults.extensions.childTokens[token.type]) { // Walk any extensions\n marked.defaults.extensions.childTokens[token.type].forEach(function(childTokens) {\n marked.walkTokens(token[childTokens], callback);\n });\n } else if (token.tokens) {\n marked.walkTokens(token.tokens, callback);\n }\n }\n }\n }\n};\n\n/**\n * Parse Inline\n */\nmarked.parseInline = function(src, opt) {\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n throw new Error('marked.parseInline(): input parameter is undefined or null');\n }\n if (typeof src !== 'string') {\n throw new Error('marked.parseInline(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected');\n }\n\n opt = merge({}, marked.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n\n try {\n const tokens = Lexer.lexInline(src, opt);\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n return Parser.parseInline(tokens, opt);\n } catch (e) {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n if (opt.silent) {\n return '<p>An error occurred:</p><pre>'\n + escape(e.message + '', true)\n + '</pre>';\n }\n throw e;\n }\n};\n\n/**\n * Expose\n */\nmarked.Parser = Parser;\nmarked.parser = Parser.parse;\nmarked.Renderer = Renderer;\nmarked.TextRenderer = TextRenderer;\nmarked.Lexer = Lexer;\nmarked.lexer = Lexer.lex;\nmarked.Tokenizer = Tokenizer;\nmarked.Slugger = Slugger;\nmarked.parse = marked;\n\nconst options = marked.options;\nconst setOptions = marked.setOptions;\nconst use = marked.use;\nconst walkTokens = marked.walkTokens;\nconst parseInline = marked.parseInline;\nconst parse = marked;\nconst parser = Parser.parse;\nconst lexer = Lexer.lex;\n\nexport { Lexer, Parser, Renderer, Slugger, TextRenderer, Tokenizer, defaults, getDefaults, lexer, marked, options, parse, parseInline, parser, setOptions, use, walkTokens };\n","import { marked } from 'marked'\nimport type { Change } from '../../services/index.js'\nimport { Card } from '../Card.jsx'\nimport { Badge } from './index.js'\n\ntype Props = {\n\tchange: Change,\n\tminimal?: boolean,\n\tactiveTags?: string[],\n\ttoggleTag?: (tag: string) => unknown,\n}\nexport function ChangelogEntry({ change, minimal, activeTags, toggleTag }: Props) {\n\treturn <Card overlay={!minimal && <>\n\t\t<a class=\"changelog-version\" href={`/versions/?id=${change.version}`}>{change.version}</a>\n\t\t<a class=\"changelog-version\" href={`/versions/?id=${change.group}`}>{change.group}</a>\n\t</>}>\n\t\t<div class=\"badges-list\">\n\t\t\t{change.tags.map(tag => <Badge label={tag} onClick={toggleTag ? () => toggleTag(tag) : undefined} active={activeTags?.includes(tag)} />)}\n\t\t</div>\n\t\t<div class=\"changelog-content\" dangerouslySetInnerHTML={{ __html: marked(change.content) }} />\n\t</Card>\n}\n","import type { ComponentChildren } from 'preact'\nimport { useMemo, useState } from 'preact/hooks'\nimport { useLocale } from '../../contexts/index.js'\nimport { useSearchParam, useTags } from '../../hooks/index.js'\nimport type { Change } from '../../services/index.js'\nimport { Badge } from '../Badge.jsx'\nimport { Btn, TextInput } from '../index.js'\nimport { ChangelogEntry } from './ChangelogEntry.js'\n\nconst SEARCH_KEY = 'search'\n\ninterface Props {\n\tchanges: Change[] | undefined,\n\tdefaultOrder: 'asc' | 'desc',\n\tlimit?: number,\n\tnavigation?: ComponentChildren,\n}\nexport function ChangelogList({ changes, defaultOrder, limit, navigation }: Props) {\n\tconst { locale } = useLocale()\n\n\tconst [search, setSearch] = useSearchParam(SEARCH_KEY)\n\tconst [tags, toggleTag] = useTags()\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 changes\n\t\treturn changes?.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.group} ${change.version} ${change.tags.join(' ')} ${change.content.toLowerCase()}`\n\t\t\treturn query.every(q => {\n\t\t\t\tif (q.startsWith('!')) {\n\t\t\t\t\treturn q.length === 1 || !content.includes(q.slice(1))\n\t\t\t\t}\n\t\t\t\treturn content.includes(q)\n\t\t\t})\n\t\t})\n\t}, [changes, search, tags])\n\n\tconst [sort, setSort] = useState(defaultOrder === 'desc')\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\tconst [limitActive, setLimitActive] = useState(true)\n\n\tconst limitedChangelogs = useMemo(() => {\n\t\tif (!limitActive || (limit ?? -1) < 0) return sortedChangelogs \n\t\treturn sortedChangelogs?.slice(0, limit)\n\t}, [sortedChangelogs, limitActive, limit, sort /* why is this necessary??? */])\n\n\tconst hiddenChanges = (sortedChangelogs?.length ?? 0) - (limitedChangelogs?.length ?? 0)\n\n\treturn <>\n\t\t<div class=\"navigation\">\n\t\t\t{navigation}\n\t\t\t<TextInput class=\"btn btn-input query-search\" list=\"sound-list\" placeholder={locale('changelog.search')}\n\t\t\t\tvalue={search} onChange={v => setSearch(v, true)} />\n\t\t\t<Btn icon={sort ? 'sort_desc' : 'sort_asc'} label={sort ? 'Newest first' : 'Oldest first'} onClick={() => setSort(!sort)} />\n\t\t</div>\n\t\t{tags.length > 0 && <div class=\"badges-list\">\n\t\t\t{tags.map(tag => <Badge label={tag} onClick={() => toggleTag(tag)} />)}\n\t\t</div>}\n\t\t<div class=\"card-column\">\n\t\t\t{limitedChangelogs === undefined ? <>\n\t\t\t\t<span class=\"note\">{locale('loading')}</span>\n\t\t\t</> : limitedChangelogs.length === 0 ? <>\n\t\t\t\t<span class=\"note\">{locale('changelog.no_results')}</span>\n\t\t\t</> :\t<>\n\t\t\t\t{limitedChangelogs.map(change =>\n\t\t\t\t\t<ChangelogEntry change={change} activeTags={tags} toggleTag={toggleTag} />)}\n\t\t\t</>}\n\t\t\t{hiddenChanges > 0 && (\n\t\t\t\t<Btn label={locale('changelog.show_more', `${hiddenChanges}`)} onClick={() => setLimitActive(false)}/>\n\t\t\t)}\n\t\t</div>\n\t</>\n}\n","import { useMemo, useState } from 'preact/hooks'\nimport { useLocale } from '../../contexts/index.js'\nimport { useAsync } from '../../hooks/useAsync.js'\nimport type { VersionMeta } from '../../services/index.js'\nimport { fetchChangelogs, getArticleLink } from '../../services/index.js'\nimport { Giscus } from '../Giscus.js'\nimport { Octicon } from '../Octicon.js'\nimport { ChangelogList } from './ChangelogList.js'\nimport { VersionMetaData } from './index.js'\n\ntype Tab = 'changelog' | 'discussion' \n\ninterface Props {\n\tid: string,\n\tversion?: VersionMeta,\n}\nexport function VersionDetail({ id, version }: Props) {\n\tconst { locale } = useLocale()\n\n\tconst [tab, setTab] = useState<Tab>('changelog')\n\n\tconst { value: changes } = useAsync(fetchChangelogs, [])\n\n\tconst filteredChangelogs = useMemo(() =>\n\t\tchanges?.filter(c => c.version === id || c.group === id),\n\t[id, changes])\n\n\tconst articleLink = version && getArticleLink(version.id)\n\n\treturn <>\n\t\t<div class=\"version-detail\">\n\t\t\t<h2>{version?.name ?? id}</h2>\n\t\t\t<div class=\"version-info\">\n\t\t\t\t{version ? <>\n\t\t\t\t\t<VersionMetaData label={locale('versions.released')} value={releaseDate(version)} />\n\t\t\t\t\t<VersionMetaData label={locale('versions.release_target')} value={version.release_target} link={version.id !== version.release_target ? `/versions/?id=${version.release_target}` : undefined} />\n\t\t\t\t\t<VersionMetaData label={locale('versions.data_version')} value={version.data_version} />\n\t\t\t\t\t<VersionMetaData label={locale('versions.protocol_version')} value={version.protocol_version} />\n\t\t\t\t\t<VersionMetaData label={locale('versions.data_pack_format')} value={version.data_pack_version} />\n\t\t\t\t\t<VersionMetaData label={locale('versions.resource_pack_format')} value={version.resource_pack_version} />\n\t\t\t\t</> : filteredChangelogs?.length ?? 0 > 1 ? <p>\n\t\t\t\t\tThis version is not released yet.\n\t\t\t\t</p> : <p>\n\t\t\t\t\tThis version does not exist. Only versions since 1.14 are tracked, or it may be too recent.\n\t\t\t\t</p>}\n\t\t\t</div>\n\t\t\t<div class=\"version-tabs\">\n\t\t\t\t<span class={tab === 'changelog' ? 'selected' : ''} onClick={() => setTab('changelog')}>{locale('versions.technical_changes')}</span>\n\t\t\t\t<span class={tab === 'discussion' ? 'selected' : ''} onClick={() => setTab('discussion')}>{locale('versions.discussion')}</span>\n\t\t\t\t{articleLink && <a href={articleLink} target=\"_blank\">\n\t\t\t\t\t{locale('versions.article')}\n\t\t\t\t\t{Octicon.link_external}\n\t\t\t\t</a>}\n\t\t\t</div>\n\t\t\t<div class=\"version-tab\">\n\t\t\t\t{tab === 'changelog' && <ChangelogList changes={filteredChangelogs} defaultOrder=\"asc\" />}\n\t\t\t\t{tab === 'discussion' && <Giscus term={`version/${id}/`} />}\n\t\t\t</div>\n\t\t</div>\n\t</>\n}\n\nexport function releaseDate(version: VersionMeta) {\n\treturn new Date(version.release_time).toLocaleDateString(undefined, { day: 'numeric', month: 'short', year: 'numeric' })\n}\n","import { useLocale } from '../../contexts/index.js'\nimport type { VersionMeta } from '../../services/index.js'\nimport { releaseDate, VersionMetaData } from './index.js'\n\ninterface Props {\n\tversion: VersionMeta,\n\tlink?: string,\n}\nexport function VersionEntry({ version, link }: Props) {\n\tconst { locale } = useLocale()\n\n\treturn <a class=\"version-entry\" href={link}>\n\t\t<span class=\"version-id\">{version.id}</span>\n\t\t<VersionMetaData label={locale('versions.released')} value={releaseDate(version)} compact />\n\t\t<VersionMetaData label={locale('versions.data_version')} value={version.data_version} optional />\n\t\t<VersionMetaData label={locale('versions.pack_format')} value={version.data_pack_version} optional />\n\t</a>\n}\n","import type { ComponentChildren } from 'preact'\nimport { useMemo } from 'preact/hooks'\nimport { useLocale } from '../../contexts/index.js'\nimport { useLocalStorage, useSearchParam } from '../../hooks/index.js'\nimport type { VersionMeta } from '../../services/index.js'\nimport { Checkbox, TextInput } from '../index.js'\nimport { VersionEntry } from './VersionEntry.js'\n\nconst INCLUDE_SNAPSHOTS = 'misode_include_snapshots'\nconst SEARCH_KEY = 'search'\n\ninterface Props {\n\tversions?: VersionMeta[],\n\tlink?: (id: string) => string,\n\tnavigation?: ComponentChildren,\n}\nexport function VersionList({ versions, link, navigation }: Props) {\n\tconst { locale } = useLocale()\n\t\n\tconst [snapshots, setSnapshots] = useLocalStorage(INCLUDE_SNAPSHOTS, true, v => v === 'true', b => `${b}`)\n\tconst [search, setSearch] = useSearchParam(SEARCH_KEY)\n\n\tconst filteredVersions = useMemo(() => versions?.filter(v => {\n\t\tif (v.type === 'snapshot' && !snapshots) return false\n\t\treturn v.id.includes(search ?? '')\n\t}), [versions, snapshots, search])\n\n\treturn <>\n\t\t<div class=\"navigation\">\n\t\t\t{navigation}\n\t\t\t<TextInput class=\"btn btn-input query-search\" placeholder={locale('versions.search')}\n\t\t\t\tvalue={search} onChange={setSearch} />\n\t\t\t<Checkbox label=\"Include snapshots\" value={snapshots} onChange={setSnapshots} />\n\t\t</div>\n\t\t<div class=\"version-list\">\n\t\t\t{filteredVersions === undefined\n\t\t\t\t? <span class=\"note\">{locale('loading')}</span>\n\t\t\t\t: filteredVersions.length === 0\n\t\t\t\t\t? <span class=\"note\">{locale('versions.no_results')}</span>\n\t\t\t\t\t:\tfilteredVersions.map(v => <VersionEntry version={v} link={link?.(v.id)} />)}\n\t\t</div>\n\t</>\n}\n","import { Octicon } from '../index.js'\n\ninterface Props {\n\tlabel: string,\n\tvalue: string | number,\n\tlink?: string,\n\tcompact?: boolean,\n\toptional?: boolean,\n}\nexport function VersionMetaData({ label, value, link, compact, optional }: Props) {\n\treturn <div class={`version-metadata${optional ? ' version-metadata-hide' : ''}`}>\n\t\t<span class={compact ? 'version-metadata-hide' : undefined}>{label}: </span>\n\t\t<span class=\"version-metadata-value\">{value}</span>\n\t\t{link && <a href={link} class=\"version-metadata-link\">{Octicon.link_external}</a>}\n\t</div>\n}\n","import { useMemo } from 'preact/hooks'\nimport config from '../Config.js'\nimport { useLocale } from '../contexts/index.js'\nimport type { VersionId } from '../services/index.js'\nimport { Store } from '../Store.js'\nimport { Btn } from './Btn.js'\nimport { BtnMenu } from './BtnMenu.js'\n\ninterface Props {\n\tvalue?: VersionId,\n\tallowed?: VersionId[],\n\thasAny?: boolean,\n\tonChange: (version: VersionId) => void,\n\tonAny?: () => void,\n}\nexport function VersionSwitcher({ value, allowed, hasAny, onChange, onAny }: Props) {\n\tconst { locale } = useLocale()\n\n\tconst versions = useMemo(() => {\n\t\tif (allowed) return allowed\n\t\treturn config.versions\n\t\t\t.map(v => v.id as VersionId)\n\t\t\t.reverse()\n\t}, [allowed])\n\n\treturn <BtnMenu class={`version-switcher${Store.getVersion() === null ? ' attention' : ''}`} icon=\"tag\" label={value ?? locale('any_version')} tooltip={locale('switch_version')}>\n\t\t{hasAny && <Btn label={locale('any_version')} onClick={onAny} active={!value} />}\n\t\t{versions.map((v: string) => \n\t\t\t<Btn label={v} active={v === value} onClick={() => onChange(v as VersionId)} />)}\n\t</BtnMenu>\n}\n","import { BtnLink, ChangelogList, ErrorPanel, Footer } from '../components/index.js'\nimport { useLocale, useTitle } from '../contexts/index.js'\nimport { useAsync } from '../hooks/index.js'\nimport { fetchChangelogs } from '../services/index.js'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Changelog({}: Props) {\n\tconst { locale } = useLocale()\n\tuseTitle(locale('title.changelog'))\n\n\tconst { value: changes, error } = useAsync(fetchChangelogs, [])\n\n\treturn <main>\n\t\t{error && <ErrorPanel error={error} />}\n\t\t<div class=\"container changelog\">\n\t\t\t<ChangelogList changes={changes} defaultOrder=\"desc\" limit={100} navigation={(\n\t\t\t\t<BtnLink link=\"/versions/\" icon=\"three_bars\" label={locale('versions.all')} />\n\t\t\t)} />\n\t\t</div>\n\t\t<Footer />\n\t</main>\n}\n","import { DataModel, Path } from '@mcschema/core'\nimport { getCurrentUrl, route } from 'preact-router'\nimport { useCallback, useEffect, useErrorBoundary, useMemo, useRef, useState } from 'preact/hooks'\nimport { Analytics } from '../Analytics.js'\nimport { Ad, Btn, BtnMenu, ErrorPanel, FileCreation, FileRenaming, Footer, HasPreview, Octicon, PreviewPanel, ProjectCreation, ProjectDeletion, ProjectPanel, SearchList, SourcePanel, TextInput, Tree, VersionSwitcher } from '../components/index.js'\nimport config from '../Config.js'\nimport { DRAFT_PROJECT, useLocale, useProject, useTitle, useVersion } from '../contexts/index.js'\nimport { AsyncCancel, useActiveTimeout, useAsync, useModel, useSearchParam } from '../hooks/index.js'\nimport { getOutput } from '../schema/transformOutput.js'\nimport type { VersionId } from '../services/index.js'\nimport { checkVersion, fetchPreset, getBlockStates, getCollections, getModel, getSnippet, shareSnippet } from '../services/index.js'\nimport { Store } from '../Store.js'\nimport { cleanUrl, deepEqual, getGenerator } from '../Utils.js'\n\nexport const SHARE_KEY = 'share'\n\ninterface Props {\n\tdefault?: true,\n}\nexport function Generator({}: Props) {\n\tconst { locale } = useLocale()\n\tconst { version, changeVersion, changeTargetVersion } = useVersion()\n\tconst { projects, project, file, updateProject, updateFile } = useProject()\n\tconst [error, setError] = useState<Error | string | null>(null)\n\tconst [errorBoundary, errorRetry] = useErrorBoundary()\n\tif (errorBoundary) {\n\t\terrorBoundary.message = `Something went wrong rendering the generator: ${errorBoundary.message}`\n\t\treturn <main><ErrorPanel error={errorBoundary} onDismiss={errorRetry} /></main>\n\t}\n\n\tconst gen = getGenerator(getCurrentUrl())\n\tif (!gen) {\n\t\treturn <main><ErrorPanel error={`Cannot find generator \"${getCurrentUrl()}\"`} /></main>\n\t}\n\n\tconst allowedVersions = useMemo(() => {\n\t\treturn config.versions\n\t\t\t.filter(v => checkVersion(v.id, gen.minVersion, gen.maxVersion))\n\t\t\t.map(v => v.id as VersionId)\n\t\t\t.reverse()\n\t}, [gen.minVersion, gen.maxVersion])\n\n\tuseTitle(locale('title.generator', locale(gen.partner ? `partner.${gen.partner}.${gen.id}` : gen.id)), allowedVersions)\n\n\tif (!checkVersion(version, gen.minVersion)) {\n\t\tsetError(`The minimum version for this generator is ${gen.minVersion}`)\n\t}\n\tif (!checkVersion(version, undefined, gen.maxVersion)) {\n\t\tsetError(`This generator is not available in versions above ${gen.maxVersion}`)\n\t}\n\n\tuseEffect(() => Store.visitGenerator(gen.id), [gen.id])\n\n\tconst [currentPreset, setCurrentPreset] = useSearchParam('preset')\n\tconst [sharedSnippetId, setSharedSnippetId] = useSearchParam(SHARE_KEY)\n\tconst ignoreChange = useRef(false)\n\tconst backup = useMemo(() => Store.getBackup(gen.id), [gen.id])\n\n\tconst loadBackup = () => {\n\t\tif (backup !== undefined) {\n\t\t\tmodel?.reset(DataModel.wrapLists(backup), false)\n\t\t}\n\t}\n\n\tconst { value } = useAsync(async () => {\n\t\tlet data: unknown = undefined\n\t\tif (currentPreset && sharedSnippetId) {\n\t\t\tsetSharedSnippetId(undefined)\n\t\t\treturn AsyncCancel\n\t\t}\n\t\tif (currentPreset) {\n\t\t\tdata = await loadPreset(currentPreset)\n\t\t} else if (sharedSnippetId) {\n\t\t\tconst snippet = await getSnippet(sharedSnippetId)\n\t\t\tlet cancel = false\n\t\t\tif (snippet.version && snippet.version !== version) {\n\t\t\t\tchangeVersion(snippet.version, false)\n\t\t\t\tcancel = true\n\t\t\t}\n\t\t\tif (snippet.type && snippet.type !== gen.id) {\n\t\t\t\tconst snippetGen = config.generators.find(g => g.id === snippet.type)\n\t\t\t\tif (snippetGen) {\n\t\t\t\t\troute(`${cleanUrl(snippetGen.url)}?${SHARE_KEY}=${snippet.id}`)\n\t\t\t\t\tcancel = true\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (cancel) {\n\t\t\t\treturn AsyncCancel\n\t\t\t}\n\t\t\tif (snippet.show_preview && !previewShown) {\n\t\t\t\tsetPreviewShown(true)\n\t\t\t\tsetSourceShown(false)\n\t\t\t}\n\t\t\tAnalytics.openSnippet(gen.id, sharedSnippetId, version)\n\t\t\tdata = snippet.data\n\t\t} else if (file) {\n\t\t\tif (project.version && project.version !== version) {\n\t\t\t\tchangeVersion(project.version, false)\n\t\t\t\treturn AsyncCancel\n\t\t\t}\n\t\t\tdata = file.data\n\t\t}\n\t\tconst [model, blockStates] = await Promise.all([\n\t\t\tgetModel(version, gen.id),\n\t\t\tgetBlockStates(version),\n\t\t])\n\t\tif (data) {\n\t\t\tignoreChange.current = true\n\t\t\tmodel.reset(DataModel.wrapLists(data), false)\n\t\t}\n\t\tAnalytics.setGenerator(gen.id)\n\t\treturn { model, blockStates }\n\t}, [gen.id, version, sharedSnippetId, currentPreset, project.name, file?.id])\n\n\tconst model = value?.model\n\tconst blockStates = value?.blockStates\n\n\tuseModel(model, model => {\n\t\tif (!ignoreChange.current) {\n\t\t\tsetCurrentPreset(undefined, true)\n\t\t\tsetSharedSnippetId(undefined, true)\n\t\t}\n\t\tif (file && model && blockStates) {\n\t\t\tconst data = getOutput(model, blockStates)\n\t\t\tupdateFile(gen.id, file.id, { id: file.id, data })\n\t\t}\n\t\tignoreChange.current = false\n\t\tStore.setBackup(gen.id, DataModel.unwrapLists(model.data))\n\t\tsetError(null)\n\t}, [gen.id, setCurrentPreset, setSharedSnippetId, blockStates, file?.id])\n\n\tconst reset = () => {\n\t\tAnalytics.resetGenerator(gen.id, model?.historyIndex ?? 1, 'menu')\n\t\tmodel?.reset(DataModel.wrapLists(model.schema.default()), true)\n\t}\n\tconst undo = (e: MouseEvent) => {\n\t\te.stopPropagation()\n\t\tAnalytics.undoGenerator(gen.id, model?.historyIndex ?? 1, 'menu')\n\t\tmodel?.undo()\n\t}\n\tconst redo = (e: MouseEvent) => {\n\t\te.stopPropagation()\n\t\tAnalytics.redoGenerator(gen.id, model?.historyIndex ?? 1, '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.undoGenerator(gen.id, model?.historyIndex ?? 1, 'hotkey')\n\t\t\tmodel?.undo()\n\t\t} else if (e.ctrlKey && e.key === 'y') {\n\t\t\tAnalytics.redoGenerator(gen.id, model?.historyIndex ?? 1, 'hotkey')\n\t\t\tmodel?.redo()\n\t\t}\n\t}\n\tconst onKeyDown = (e: KeyboardEvent) => {\n\t\tif (e.ctrlKey && e.key === 's') {\n\t\t\tsetFileSaving('hotkey')\n\t\t\te.preventDefault()\n\t\t\te.stopPropagation()\n\t\t}\n\t}\n\tuseEffect(() => {\n\t\tdocument.addEventListener('keyup', onKeyUp)\n\t\tdocument.addEventListener('keydown', onKeyDown)\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('keyup', onKeyUp)\n\t\t\tdocument.removeEventListener('keydown', onKeyDown)\n\t\t}\n\t}, [model, blockStates, file])\n\n\tconst [presets, setPresets] = useState<string[]>([])\n\tuseEffect(() => {\n\t\tgetCollections(version).then(collections => {\n\t\t\tsetPresets(collections.get(gen.id).map(p => p.startsWith('minecraft:') ? p.slice(10) : p))\n\t\t})\n\t\t\t.catch(e => { console.error(e); setError(e) })\n\t}, [version, gen.id])\n\n\tconst selectPreset = (id: string) => {\n\t\tAnalytics.loadPreset(gen.id, id)\n\t\tsetSharedSnippetId(undefined, true)\n\t\tchangeTargetVersion(version, true)\n\t\tsetCurrentPreset(id)\n\t}\n\n\tconst loadPreset = async (id: string) => {\n\t\ttry {\n\t\t\tconst preset = await fetchPreset(version, gen.path ?? gen.id, id)\n\t\t\tconst seed = model?.get(new Path(['generator', 'seed']))\n\t\t\tif (preset?.generator?.seed !== undefined && seed !== undefined) {\n\t\t\t\tpreset.generator.seed = seed\n\t\t\t\tif (preset.generator.biome_source?.seed !== undefined) {\n\t\t\t\t\tpreset.generator.biome_source.seed = seed\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn preset\n\t\t} catch (e) {\n\t\t\tsetError(`Cannot load preset ${id} in ${version}`)\n\t\t\tsetCurrentPreset(undefined, true)\n\t\t}\n\t}\n\n\tconst selectVersion = (version: VersionId) => {\n\t\tsetSharedSnippetId(undefined, true)\n\t\tchangeVersion(version)\n\t\tif (project.name !== DRAFT_PROJECT.name && project.version !== version) {\n\t\t\tupdateProject({ version })\n\t\t}\n\t}\n\n\tconst [shareUrl, setShareUrl] = useState<string | undefined>(undefined)\n\tconst [shareShown, setShareShown] = useState(false)\n\tconst [shareCopyActive, shareCopySuccess] = useActiveTimeout({ cooldown: 3000 })\n\tconst share = () => {\n\t\tif (shareShown) {\n\t\t\tsetShareShown(false)\n\t\t\treturn\n\t\t}\n\t\tif (currentPreset) {\n\t\t\tsetShareUrl(`${location.origin}/${gen.url}/?version=${version}&preset=${currentPreset}`)\n\t\t\tsetShareShown(true)\n\t\t\tcopySharedId()\n\t\t} else if (model && blockStates) {\n\t\t\tconst output = getOutput(model, blockStates)\n\t\t\tif (deepEqual(output, model.schema.default())) {\n\t\t\t\tsetShareUrl(`${location.origin}/${gen.url}/?version=${version}`)\n\t\t\t\tsetShareShown(true)\n\t\t\t} else {\n\t\t\t\tshareSnippet(gen.id, version, output, previewShown)\n\t\t\t\t\t.then(({ id, length, compressed, rate }) => {\n\t\t\t\t\t\tAnalytics.createSnippet(gen.id, id, version, length, compressed, rate)\n\t\t\t\t\t\tconst url = `${location.origin}/${gen.url}/?${SHARE_KEY}=${id}`\n\t\t\t\t\t\tsetShareUrl(url)\n\t\t\t\t\t\tsetShareShown(true)\n\t\t\t\t\t})\n\t\t\t\t\t.catch(e => {\n\t\t\t\t\t\tif (e instanceof Error) {\n\t\t\t\t\t\t\tsetError(e)\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t}\n\t\t}\n\t}\n\tconst copySharedId = () => {\n\t\tnavigator.clipboard.writeText(shareUrl ?? '')\n\t\tshareCopySuccess()\n\t}\n\tuseEffect(() => {\n\t\tif (!shareCopyActive) {\n\t\t\tsetShareUrl(undefined)\n\t\t\tsetShareShown(false)\n\t\t}\n\t}, [shareCopyActive])\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.copyOutput(gen.id, 'menu')\n\t\tsetCopy(doCopy + 1)\n\t}\n\tconst downloadSource = () => {\n\t\tAnalytics.downloadOutput(gen.id, 'menu')\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\tif (sourceShown) {\n\t\t\tAnalytics.hideOutput(gen.id, 'menu')\n\t\t} else {\n\t\t\tAnalytics.showOutput(gen.id, 'menu')\n\t\t}\n\t\tsetSourceShown(!sourceShown)\n\t\tsetCopy(0)\n\t\tsetDownload(0)\n\t\tsetImport(0)\n\t}\n\n\tconst [copyActive, copySuccess] = useActiveTimeout()\n\n\tconst [previewShown, setPreviewShown] = useState(false)\n\tconst hasPreview = HasPreview.includes(gen.id) && !(gen.id === 'worldgen/configured_feature' && checkVersion(version, '1.18'))\n\tif (previewShown && !hasPreview) setPreviewShown(false)\n\tlet actionsShown = 2\n\tif (hasPreview) actionsShown += 1\n\tif (sourceShown) actionsShown += 2\n\n\tconst togglePreview = () => {\n\t\tif (sourceShown) {\n\t\t\tAnalytics.hidePreview(gen.id, 'menu')\n\t\t} else {\n\t\t\tAnalytics.showPreview(gen.id, 'menu')\n\t\t}\n\t\tsetPreviewShown(!previewShown)\n\t\tif (!previewShown && sourceShown) {\n\t\t\tsetSourceShown(false)\n\t\t}\n\t}\n\n\tconst [projectShown, setProjectShown] = useState(Store.getProjectPanelOpen() ?? window.innerWidth > 600)\n\tconst toggleProjectShown = useCallback(() => {\n\t\tif (projectShown) {\n\t\t\tAnalytics.hideProject(gen.id, projects.length, project.files.length, 'menu')\n\t\t} else {\n\t\t\tAnalytics.showProject(gen.id, projects.length, project.files.length, 'menu')\n\t\t}\n\t\tStore.setProjectPanelOpen(!projectShown)\n\t\tsetProjectShown(!projectShown)\n\t}, [projectShown])\n\n\tconst [projectCreating, setProjectCreating] = useState(false)\n\tconst [projectDeleting, setprojectDeleting] = useState(false)\n\tconst [fileSaving, setFileSaving] = useState<string | undefined>(undefined)\n\tconst [fileRenaming, setFileRenaming] = useState<{ type: string, id: string } | undefined>(undefined)\n\n\treturn <>\n\t\t<main class={`generator${previewShown ? ' has-preview' : ''}${projectShown ? ' has-project' : ''}`}>\n\t\t\t{!gen.partner && <Ad id=\"data-pack-generator\" type=\"text\" />}\n\t\t\t<div class=\"controls generator-controls\">\n\t\t\t\t<Btn icon=\"upload\" label={locale('import')} onClick={importSource} />\n\t\t\t\t<BtnMenu icon=\"archive\" label={locale('presets')} relative={false}>\n\t\t\t\t\t<SearchList searchPlaceholder={locale('search')} noResults={locale('no_presets')} values={presets} onSelect={selectPreset}/>\n\t\t\t\t</BtnMenu>\n\t\t\t\t<VersionSwitcher value={version} onChange={selectVersion} allowed={allowedVersions} />\n\t\t\t\t<BtnMenu icon=\"kebab_horizontal\" tooltip={locale('more')}>\n\t\t\t\t\t<Btn icon=\"history\" label={locale('reset_default')} onClick={reset} />\n\t\t\t\t\t{backup !== undefined && <Btn icon=\"history\" label={locale('restore_backup')} onClick={loadBackup} />}\n\t\t\t\t\t<Btn icon=\"arrow_left\" label={locale('undo')} onClick={undo} />\n\t\t\t\t\t<Btn icon=\"arrow_right\" label={locale('redo')} onClick={redo} />\n\t\t\t\t\t<Btn icon=\"file\" label={locale('project.save')} onClick={() => setFileSaving('menu')} />\n\t\t\t\t</BtnMenu>\n\t\t\t</div>\n\t\t\t{error && <ErrorPanel error={error} onDismiss={() => setError(null)} />}\n\t\t\t<Tree {...{model, version, blockStates}} onError={setError} />\n\t\t\t<Footer donate={!gen.partner} />\n\t\t</main>\n\t\t<div class=\"popup-actions right-actions\" style={`--offset: -${8 + actionsShown * 50}px;`}>\n\t\t\t<div class={`popup-action action-preview${hasPreview ? ' shown' : ''} tooltipped tip-nw`} aria-label={locale(previewShown ? 'hide_preview' : 'show_preview')} onClick={togglePreview}>\n\t\t\t\t{previewShown ? Octicon.x_circle : Octicon.play}\n\t\t\t</div>\n\t\t\t<div class={'popup-action action-share shown tooltipped tip-nw'} aria-label={locale('share')} onClick={share}>\n\t\t\t\t{Octicon.link}\n\t\t\t</div>\n\t\t\t<div class={`popup-action action-download${sourceShown ? ' shown' : ''} tooltipped tip-nw`} aria-label={locale('download')} onClick={downloadSource}>\n\t\t\t\t{Octicon.download}\n\t\t\t</div>\n\t\t\t<div class={`popup-action action-copy${sourceShown ? ' shown' : ''}${copyActive ? ' active' : ''} tooltipped tip-nw`} aria-label={locale(copyActive ? 'copied' : 'copy')} onClick={copySource}>\n\t\t\t\t{copyActive ? Octicon.check : Octicon.clippy}\n\t\t\t</div>\n\t\t\t<div class={'popup-action action-code shown tooltipped tip-nw'} aria-label={locale(sourceShown ? 'hide_output' : 'show_output')} onClick={toggleSource}>\n\t\t\t\t{sourceShown ? Octicon.chevron_right : Octicon.code}\n\t\t\t</div>\n\t\t</div>\n\t\t<div class={`popup-preview${previewShown ? ' shown' : ''}`}>\n\t\t\t<PreviewPanel {...{model, version, id: gen.id}} shown={previewShown} onError={setError} />\n\t\t</div>\n\t\t<div class={`popup-source${sourceShown ? ' shown' : ''}`}>\n\t\t\t<SourcePanel {...{model, blockStates, doCopy, doDownload, doImport}} name={gen.schema ?? 'data'} copySuccess={copySuccess} onError={setError} />\n\t\t</div>\n\t\t<div class={`popup-share${shareShown ? ' shown' : ''}`}>\n\t\t\t<TextInput value={shareUrl} readonly />\n\t\t\t<Btn icon={shareCopyActive ? 'check' : 'clippy'} onClick={copySharedId} tooltip={locale(shareCopyActive ? 'copied' : 'copy_share')} tooltipLoc=\"nw\" active={shareCopyActive} />\n\t\t</div>\n\t\t<div class=\"popup-actions left-actions\" style=\"--offset: 50px;\">\n\t\t\t<div class={'popup-action action-project shown tooltipped tip-ne'} aria-label={locale(projectShown ? 'hide_project' : 'show_project')} onClick={toggleProjectShown}>\n\t\t\t\t{projectShown ? Octicon.chevron_left : Octicon.repo}\n\t\t\t</div>\n\t\t</div>\n\t\t<div class={`popup-project${projectShown ? ' shown' : ''}`}>\n\t\t\t<ProjectPanel {...{model, version, id: gen.id}} onError={setError} onDeleteProject={() => setprojectDeleting(true)} onRename={setFileRenaming} onCreate={() => setProjectCreating(true)} />\n\t\t</div>\n\t\t{projectCreating && <ProjectCreation onClose={() => setProjectCreating(false)} />}\n\t\t{projectDeleting && <ProjectDeletion onClose={() => setprojectDeleting(false)} />}\n\t\t{model && fileSaving && <FileCreation id={gen.id} model={model} method={fileSaving} onClose={() => setFileSaving(undefined)} />}\n\t\t{fileRenaming && <FileRenaming id={fileRenaming.type } name={fileRenaming.id} onClose={() => setFileRenaming(undefined)} />}\n\t</>\n}\n","import { Footer, GeneratorList } from '../components/index.js'\nimport { useLocale, useTitle } from '../contexts/index.js'\n\ninterface Props {\n\tpath?: string\n}\nexport function Generators({}: Props) {\n\tconst { locale } = useLocale()\n\tuseTitle(locale('title.generators'))\n\n\treturn <main>\n\t\t<div class=\"container\">\n\t\t\t<GeneratorList predicate={gen => !gen.partner} />\n\t\t</div>\n\t\t<Footer />\n\t</main>\n}\n","var deepFreezeEs6 = {exports: {}};\n\nfunction deepFreeze(obj) {\n if (obj instanceof Map) {\n obj.clear = obj.delete = obj.set = function () {\n throw new Error('map is read-only');\n };\n } else if (obj instanceof Set) {\n obj.add = obj.clear = obj.delete = function () {\n throw new Error('set is read-only');\n };\n }\n\n // Freeze self\n Object.freeze(obj);\n\n Object.getOwnPropertyNames(obj).forEach(function (name) {\n var prop = obj[name];\n\n // Freeze prop if it is an object\n if (typeof prop == 'object' && !Object.isFrozen(prop)) {\n deepFreeze(prop);\n }\n });\n\n return obj;\n}\n\ndeepFreezeEs6.exports = deepFreeze;\ndeepFreezeEs6.exports.default = deepFreeze;\n\nvar deepFreeze$1 = deepFreezeEs6.exports;\n\n/** @typedef {import('highlight.js').CallbackResponse} CallbackResponse */\n/** @typedef {import('highlight.js').CompiledMode} CompiledMode */\n/** @implements CallbackResponse */\n\nclass Response {\n /**\n * @param {CompiledMode} mode\n */\n constructor(mode) {\n // eslint-disable-next-line no-undefined\n if (mode.data === undefined) mode.data = {};\n\n this.data = mode.data;\n this.isMatchIgnored = false;\n }\n\n ignoreMatch() {\n this.isMatchIgnored = true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {string}\n */\nfunction escapeHTML(value) {\n return value\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n}\n\n/**\n * performs a shallow merge of multiple objects into one\n *\n * @template T\n * @param {T} original\n * @param {Record<string,any>[]} objects\n * @returns {T} a single new object\n */\nfunction inherit$1(original, ...objects) {\n /** @type Record<string,any> */\n const result = Object.create(null);\n\n for (const key in original) {\n result[key] = original[key];\n }\n objects.forEach(function(obj) {\n for (const key in obj) {\n result[key] = obj[key];\n }\n });\n return /** @type {T} */ (result);\n}\n\n/**\n * @typedef {object} Renderer\n * @property {(text: string) => void} addText\n * @property {(node: Node) => void} openNode\n * @property {(node: Node) => void} closeNode\n * @property {() => string} value\n */\n\n/** @typedef {{kind?: string, sublanguage?: boolean}} Node */\n/** @typedef {{walk: (r: Renderer) => void}} Tree */\n/** */\n\nconst SPAN_CLOSE = '</span>';\n\n/**\n * Determines if a node needs to be wrapped in <span>\n *\n * @param {Node} node */\nconst emitsWrappingTags = (node) => {\n return !!node.kind;\n};\n\n/**\n *\n * @param {string} name\n * @param {{prefix:string}} options\n */\nconst expandScopeName = (name, { prefix }) => {\n if (name.includes(\".\")) {\n const pieces = name.split(\".\");\n return [\n `${prefix}${pieces.shift()}`,\n ...(pieces.map((x, i) => `${x}${\"_\".repeat(i + 1)}`))\n ].join(\" \");\n }\n return `${prefix}${name}`;\n};\n\n/** @type {Renderer} */\nclass HTMLRenderer {\n /**\n * Creates a new HTMLRenderer\n *\n * @param {Tree} parseTree - the parse tree (must support `walk` API)\n * @param {{classPrefix: string}} options\n */\n constructor(parseTree, options) {\n this.buffer = \"\";\n this.classPrefix = options.classPrefix;\n parseTree.walk(this);\n }\n\n /**\n * Adds texts to the output stream\n *\n * @param {string} text */\n addText(text) {\n this.buffer += escapeHTML(text);\n }\n\n /**\n * Adds a node open to the output stream (if needed)\n *\n * @param {Node} node */\n openNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n let scope = node.kind;\n if (node.sublanguage) {\n scope = `language-${scope}`;\n } else {\n scope = expandScopeName(scope, { prefix: this.classPrefix });\n }\n this.span(scope);\n }\n\n /**\n * Adds a node close to the output stream (if needed)\n *\n * @param {Node} node */\n closeNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n this.buffer += SPAN_CLOSE;\n }\n\n /**\n * returns the accumulated buffer\n */\n value() {\n return this.buffer;\n }\n\n // helpers\n\n /**\n * Builds a span element\n *\n * @param {string} className */\n span(className) {\n this.buffer += `<span class=\"${className}\">`;\n }\n}\n\n/** @typedef {{kind?: string, sublanguage?: boolean, children: Node[]} | string} Node */\n/** @typedef {{kind?: string, sublanguage?: boolean, children: Node[]} } DataNode */\n/** @typedef {import('highlight.js').Emitter} Emitter */\n/** */\n\nclass TokenTree {\n constructor() {\n /** @type DataNode */\n this.rootNode = { children: [] };\n this.stack = [this.rootNode];\n }\n\n get top() {\n return this.stack[this.stack.length - 1];\n }\n\n get root() { return this.rootNode; }\n\n /** @param {Node} node */\n add(node) {\n this.top.children.push(node);\n }\n\n /** @param {string} kind */\n openNode(kind) {\n /** @type Node */\n const node = { kind, children: [] };\n this.add(node);\n this.stack.push(node);\n }\n\n closeNode() {\n if (this.stack.length > 1) {\n return this.stack.pop();\n }\n // eslint-disable-next-line no-undefined\n return undefined;\n }\n\n closeAllNodes() {\n while (this.closeNode());\n }\n\n toJSON() {\n return JSON.stringify(this.rootNode, null, 4);\n }\n\n /**\n * @typedef { import(\"./html_renderer\").Renderer } Renderer\n * @param {Renderer} builder\n */\n walk(builder) {\n // this does not\n return this.constructor._walk(builder, this.rootNode);\n // this works\n // return TokenTree._walk(builder, this.rootNode);\n }\n\n /**\n * @param {Renderer} builder\n * @param {Node} node\n */\n static _walk(builder, node) {\n if (typeof node === \"string\") {\n builder.addText(node);\n } else if (node.children) {\n builder.openNode(node);\n node.children.forEach((child) => this._walk(builder, child));\n builder.closeNode(node);\n }\n return builder;\n }\n\n /**\n * @param {Node} node\n */\n static _collapse(node) {\n if (typeof node === \"string\") return;\n if (!node.children) return;\n\n if (node.children.every(el => typeof el === \"string\")) {\n // node.text = node.children.join(\"\");\n // delete node.children;\n node.children = [node.children.join(\"\")];\n } else {\n node.children.forEach((child) => {\n TokenTree._collapse(child);\n });\n }\n }\n}\n\n/**\n Currently this is all private API, but this is the minimal API necessary\n that an Emitter must implement to fully support the parser.\n\n Minimal interface:\n\n - addKeyword(text, kind)\n - addText(text)\n - addSublanguage(emitter, subLanguageName)\n - finalize()\n - openNode(kind)\n - closeNode()\n - closeAllNodes()\n - toHTML()\n\n*/\n\n/**\n * @implements {Emitter}\n */\nclass TokenTreeEmitter extends TokenTree {\n /**\n * @param {*} options\n */\n constructor(options) {\n super();\n this.options = options;\n }\n\n /**\n * @param {string} text\n * @param {string} kind\n */\n addKeyword(text, kind) {\n if (text === \"\") { return; }\n\n this.openNode(kind);\n this.addText(text);\n this.closeNode();\n }\n\n /**\n * @param {string} text\n */\n addText(text) {\n if (text === \"\") { return; }\n\n this.add(text);\n }\n\n /**\n * @param {Emitter & {root: DataNode}} emitter\n * @param {string} name\n */\n addSublanguage(emitter, name) {\n /** @type DataNode */\n const node = emitter.root;\n node.kind = name;\n node.sublanguage = true;\n this.add(node);\n }\n\n toHTML() {\n const renderer = new HTMLRenderer(this, this.options);\n return renderer.value();\n }\n\n finalize() {\n return true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n return concat('(?=', re, ')');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction anyNumberOfTimes(re) {\n return concat('(?:', re, ')*');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction optional(re) {\n return concat('(?:', re, ')?');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/**\n * @param { Array<string | RegExp | Object> } args\n * @returns {object}\n */\nfunction stripOptionsFromArgs(args) {\n const opts = args[args.length - 1];\n\n if (typeof opts === 'object' && opts.constructor === Object) {\n args.splice(args.length - 1, 1);\n return opts;\n } else {\n return {};\n }\n}\n\n/** @typedef { {capture?: boolean} } RegexEitherOptions */\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] | [...(RegExp | string)[], RegexEitherOptions]} args\n * @returns {string}\n */\nfunction either(...args) {\n /** @type { object & {capture?: boolean} } */\n const opts = stripOptionsFromArgs(args);\n const joined = '('\n + (opts.capture ? \"\" : \"?:\")\n + args.map((x) => source(x)).join(\"|\") + \")\";\n return joined;\n}\n\n/**\n * @param {RegExp | string} re\n * @returns {number}\n */\nfunction countMatchGroups(re) {\n return (new RegExp(re.toString() + '|')).exec('').length - 1;\n}\n\n/**\n * Does lexeme start with a regular expression match at the beginning\n * @param {RegExp} re\n * @param {string} lexeme\n */\nfunction startsWith(re, lexeme) {\n const match = re && re.exec(lexeme);\n return match && match.index === 0;\n}\n\n// BACKREF_RE matches an open parenthesis or backreference. To avoid\n// an incorrect parse, it additionally matches the following:\n// - [...] elements, where the meaning of parentheses and escapes change\n// - other escape sequences, so we do not misparse escape sequences as\n// interesting elements\n// - non-matching or lookahead parentheses, which do not capture. These\n// follow the '(' with a '?'.\nconst BACKREF_RE = /\\[(?:[^\\\\\\]]|\\\\.)*\\]|\\(\\??|\\\\([1-9][0-9]*)|\\\\./;\n\n// **INTERNAL** Not intended for outside usage\n// join logically computes regexps.join(separator), but fixes the\n// backreferences so they continue to match.\n// it also places each individual regular expression into it's own\n// match group, keeping track of the sequencing of those match groups\n// is currently an exercise for the caller. :-)\n/**\n * @param {(string | RegExp)[]} regexps\n * @param {{joinWith: string}} opts\n * @returns {string}\n */\nfunction _rewriteBackreferences(regexps, { joinWith }) {\n let numCaptures = 0;\n\n return regexps.map((regex) => {\n numCaptures += 1;\n const offset = numCaptures;\n let re = source(regex);\n let out = '';\n\n while (re.length > 0) {\n const match = BACKREF_RE.exec(re);\n if (!match) {\n out += re;\n break;\n }\n out += re.substring(0, match.index);\n re = re.substring(match.index + match[0].length);\n if (match[0][0] === '\\\\' && match[1]) {\n // Adjust the backreference.\n out += '\\\\' + String(Number(match[1]) + offset);\n } else {\n out += match[0];\n if (match[0] === '(') {\n numCaptures++;\n }\n }\n }\n return out;\n }).map(re => `(${re})`).join(joinWith);\n}\n\n/** @typedef {import('highlight.js').Mode} Mode */\n/** @typedef {import('highlight.js').ModeCallback} ModeCallback */\n\n// Common regexps\nconst MATCH_NOTHING_RE = /\\b\\B/;\nconst IDENT_RE = '[a-zA-Z]\\\\w*';\nconst UNDERSCORE_IDENT_RE = '[a-zA-Z_]\\\\w*';\nconst NUMBER_RE = '\\\\b\\\\d+(\\\\.\\\\d+)?';\nconst C_NUMBER_RE = '(-?)(\\\\b0[xX][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)'; // 0x..., 0..., decimal, float\nconst BINARY_NUMBER_RE = '\\\\b(0b[01]+)'; // 0b...\nconst RE_STARTERS_RE = '!|!=|!==|%|%=|&|&&|&=|\\\\*|\\\\*=|\\\\+|\\\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\\\?|\\\\[|\\\\{|\\\\(|\\\\^|\\\\^=|\\\\||\\\\|=|\\\\|\\\\||~';\n\n/**\n* @param { Partial<Mode> & {binary?: string | RegExp} } opts\n*/\nconst SHEBANG = (opts = {}) => {\n const beginShebang = /^#![ ]*\\//;\n if (opts.binary) {\n opts.begin = concat(\n beginShebang,\n /.*\\b/,\n opts.binary,\n /\\b.*/);\n }\n return inherit$1({\n scope: 'meta',\n begin: beginShebang,\n end: /$/,\n relevance: 0,\n /** @type {ModeCallback} */\n \"on:begin\": (m, resp) => {\n if (m.index !== 0) resp.ignoreMatch();\n }\n }, opts);\n};\n\n// Common modes\nconst BACKSLASH_ESCAPE = {\n begin: '\\\\\\\\[\\\\s\\\\S]', relevance: 0\n};\nconst APOS_STRING_MODE = {\n scope: 'string',\n begin: '\\'',\n end: '\\'',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst QUOTE_STRING_MODE = {\n scope: 'string',\n begin: '\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst PHRASAL_WORDS_MODE = {\n begin: /\\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\\b/\n};\n/**\n * Creates a comment mode\n *\n * @param {string | RegExp} begin\n * @param {string | RegExp} end\n * @param {Mode | {}} [modeOptions]\n * @returns {Partial<Mode>}\n */\nconst COMMENT = function(begin, end, modeOptions = {}) {\n const mode = inherit$1(\n {\n scope: 'comment',\n begin,\n end,\n contains: []\n },\n modeOptions\n );\n mode.contains.push({\n scope: 'doctag',\n // hack to avoid the space from being included. the space is necessary to\n // match here to prevent the plain text rule below from gobbling up doctags\n begin: '[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)',\n end: /(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,\n excludeBegin: true,\n relevance: 0\n });\n const ENGLISH_WORD = either(\n // list of common 1 and 2 letter words in English\n \"I\",\n \"a\",\n \"is\",\n \"so\",\n \"us\",\n \"to\",\n \"at\",\n \"if\",\n \"in\",\n \"it\",\n \"on\",\n // note: this is not an exhaustive list of contractions, just popular ones\n /[A-Za-z]+['](d|ve|re|ll|t|s|n)/, // contractions - can't we'd they're let's, etc\n /[A-Za-z]+[-][a-z]+/, // `no-way`, etc.\n /[A-Za-z][a-z]{2,}/ // allow capitalized words at beginning of sentences\n );\n // looking like plain text, more likely to be a comment\n mode.contains.push(\n {\n // TODO: how to include \", (, ) without breaking grammars that use these for\n // comment delimiters?\n // begin: /[ ]+([()\"]?([A-Za-z'-]{3,}|is|a|I|so|us|[tT][oO]|at|if|in|it|on)[.]?[()\":]?([.][ ]|[ ]|\\))){3}/\n // ---\n\n // this tries to find sequences of 3 english words in a row (without any\n // \"programming\" type syntax) this gives us a strong signal that we've\n // TRULY found a comment - vs perhaps scanning with the wrong language.\n // It's possible to find something that LOOKS like the start of the\n // comment - but then if there is no readable text - good chance it is a\n // false match and not a comment.\n //\n // for a visual example please see:\n // https://github.com/highlightjs/highlight.js/issues/2827\n\n begin: concat(\n /[ ]+/, // necessary to prevent us gobbling up doctags like /* @author Bob Mcgill */\n '(',\n ENGLISH_WORD,\n /[.]?[:]?([.][ ]|[ ])/,\n '){3}') // look for 3 words in a row\n }\n );\n return mode;\n};\nconst C_LINE_COMMENT_MODE = COMMENT('//', '$');\nconst C_BLOCK_COMMENT_MODE = COMMENT('/\\\\*', '\\\\*/');\nconst HASH_COMMENT_MODE = COMMENT('#', '$');\nconst NUMBER_MODE = {\n scope: 'number',\n begin: NUMBER_RE,\n relevance: 0\n};\nconst C_NUMBER_MODE = {\n scope: 'number',\n begin: C_NUMBER_RE,\n relevance: 0\n};\nconst BINARY_NUMBER_MODE = {\n scope: 'number',\n begin: BINARY_NUMBER_RE,\n relevance: 0\n};\nconst REGEXP_MODE = {\n // this outer rule makes sure we actually have a WHOLE regex and not simply\n // an expression such as:\n //\n // 3 / something\n //\n // (which will then blow up when regex's `illegal` sees the newline)\n begin: /(?=\\/[^/\\n]*\\/)/,\n contains: [{\n scope: 'regexp',\n begin: /\\//,\n end: /\\/[gimuy]*/,\n illegal: /\\n/,\n contains: [\n BACKSLASH_ESCAPE,\n {\n begin: /\\[/,\n end: /\\]/,\n relevance: 0,\n contains: [BACKSLASH_ESCAPE]\n }\n ]\n }]\n};\nconst TITLE_MODE = {\n scope: 'title',\n begin: IDENT_RE,\n relevance: 0\n};\nconst UNDERSCORE_TITLE_MODE = {\n scope: 'title',\n begin: UNDERSCORE_IDENT_RE,\n relevance: 0\n};\nconst METHOD_GUARD = {\n // excludes method names from keyword processing\n begin: '\\\\.\\\\s*' + UNDERSCORE_IDENT_RE,\n relevance: 0\n};\n\n/**\n * Adds end same as begin mechanics to a mode\n *\n * Your mode must include at least a single () match group as that first match\n * group is what is used for comparison\n * @param {Partial<Mode>} mode\n */\nconst END_SAME_AS_BEGIN = function(mode) {\n return Object.assign(mode,\n {\n /** @type {ModeCallback} */\n 'on:begin': (m, resp) => { resp.data._beginMatch = m[1]; },\n /** @type {ModeCallback} */\n 'on:end': (m, resp) => { if (resp.data._beginMatch !== m[1]) resp.ignoreMatch(); }\n });\n};\n\nvar MODES = /*#__PURE__*/Object.freeze({\n __proto__: null,\n MATCH_NOTHING_RE: MATCH_NOTHING_RE,\n IDENT_RE: IDENT_RE,\n UNDERSCORE_IDENT_RE: UNDERSCORE_IDENT_RE,\n NUMBER_RE: NUMBER_RE,\n C_NUMBER_RE: C_NUMBER_RE,\n BINARY_NUMBER_RE: BINARY_NUMBER_RE,\n RE_STARTERS_RE: RE_STARTERS_RE,\n SHEBANG: SHEBANG,\n BACKSLASH_ESCAPE: BACKSLASH_ESCAPE,\n APOS_STRING_MODE: APOS_STRING_MODE,\n QUOTE_STRING_MODE: QUOTE_STRING_MODE,\n PHRASAL_WORDS_MODE: PHRASAL_WORDS_MODE,\n COMMENT: COMMENT,\n C_LINE_COMMENT_MODE: C_LINE_COMMENT_MODE,\n C_BLOCK_COMMENT_MODE: C_BLOCK_COMMENT_MODE,\n HASH_COMMENT_MODE: HASH_COMMENT_MODE,\n NUMBER_MODE: NUMBER_MODE,\n C_NUMBER_MODE: C_NUMBER_MODE,\n BINARY_NUMBER_MODE: BINARY_NUMBER_MODE,\n REGEXP_MODE: REGEXP_MODE,\n TITLE_MODE: TITLE_MODE,\n UNDERSCORE_TITLE_MODE: UNDERSCORE_TITLE_MODE,\n METHOD_GUARD: METHOD_GUARD,\n END_SAME_AS_BEGIN: END_SAME_AS_BEGIN\n});\n\n/**\n@typedef {import('highlight.js').CallbackResponse} CallbackResponse\n@typedef {import('highlight.js').CompilerExt} CompilerExt\n*/\n\n// Grammar extensions / plugins\n// See: https://github.com/highlightjs/highlight.js/issues/2833\n\n// Grammar extensions allow \"syntactic sugar\" to be added to the grammar modes\n// without requiring any underlying changes to the compiler internals.\n\n// `compileMatch` being the perfect small example of now allowing a grammar\n// author to write `match` when they desire to match a single expression rather\n// than being forced to use `begin`. The extension then just moves `match` into\n// `begin` when it runs. Ie, no features have been added, but we've just made\n// the experience of writing (and reading grammars) a little bit nicer.\n\n// ------\n\n// TODO: We need negative look-behind support to do this properly\n/**\n * Skip a match if it has a preceding dot\n *\n * This is used for `beginKeywords` to prevent matching expressions such as\n * `bob.keyword.do()`. The mode compiler automatically wires this up as a\n * special _internal_ 'on:begin' callback for modes with `beginKeywords`\n * @param {RegExpMatchArray} match\n * @param {CallbackResponse} response\n */\nfunction skipIfHasPrecedingDot(match, response) {\n const before = match.input[match.index - 1];\n if (before === \".\") {\n response.ignoreMatch();\n }\n}\n\n/**\n *\n * @type {CompilerExt}\n */\nfunction scopeClassName(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.className !== undefined) {\n mode.scope = mode.className;\n delete mode.className;\n }\n}\n\n/**\n * `beginKeywords` syntactic sugar\n * @type {CompilerExt}\n */\nfunction beginKeywords(mode, parent) {\n if (!parent) return;\n if (!mode.beginKeywords) return;\n\n // for languages with keywords that include non-word characters checking for\n // a word boundary is not sufficient, so instead we check for a word boundary\n // or whitespace - this does no harm in any case since our keyword engine\n // doesn't allow spaces in keywords anyways and we still check for the boundary\n // first\n mode.begin = '\\\\b(' + mode.beginKeywords.split(' ').join('|') + ')(?!\\\\.)(?=\\\\b|\\\\s)';\n mode.__beforeBegin = skipIfHasPrecedingDot;\n mode.keywords = mode.keywords || mode.beginKeywords;\n delete mode.beginKeywords;\n\n // prevents double relevance, the keywords themselves provide\n // relevance, the mode doesn't need to double it\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 0;\n}\n\n/**\n * Allow `illegal` to contain an array of illegal values\n * @type {CompilerExt}\n */\nfunction compileIllegal(mode, _parent) {\n if (!Array.isArray(mode.illegal)) return;\n\n mode.illegal = either(...mode.illegal);\n}\n\n/**\n * `match` to match a single expression for readability\n * @type {CompilerExt}\n */\nfunction compileMatch(mode, _parent) {\n if (!mode.match) return;\n if (mode.begin || mode.end) throw new Error(\"begin & end are not supported with match\");\n\n mode.begin = mode.match;\n delete mode.match;\n}\n\n/**\n * provides the default 1 relevance to all modes\n * @type {CompilerExt}\n */\nfunction compileRelevance(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 1;\n}\n\n// allow beforeMatch to act as a \"qualifier\" for the match\n// the full match begin must be [beforeMatch][begin]\nconst beforeMatchExt = (mode, parent) => {\n if (!mode.beforeMatch) return;\n // starts conflicts with endsParent which we need to make sure the child\n // rule is not matched multiple times\n if (mode.starts) throw new Error(\"beforeMatch cannot be used with starts\");\n\n const originalMode = Object.assign({}, mode);\n Object.keys(mode).forEach((key) => { delete mode[key]; });\n\n mode.keywords = originalMode.keywords;\n mode.begin = concat(originalMode.beforeMatch, lookahead(originalMode.begin));\n mode.starts = {\n relevance: 0,\n contains: [\n Object.assign(originalMode, { endsParent: true })\n ]\n };\n mode.relevance = 0;\n\n delete originalMode.beforeMatch;\n};\n\n// keywords that should have no default relevance value\nconst COMMON_KEYWORDS = [\n 'of',\n 'and',\n 'for',\n 'in',\n 'not',\n 'or',\n 'if',\n 'then',\n 'parent', // common variable name\n 'list', // common variable name\n 'value' // common variable name\n];\n\nconst DEFAULT_KEYWORD_SCOPE = \"keyword\";\n\n/**\n * Given raw keywords from a language definition, compile them.\n *\n * @param {string | Record<string,string|string[]> | Array<string>} rawKeywords\n * @param {boolean} caseInsensitive\n */\nfunction compileKeywords(rawKeywords, caseInsensitive, scopeName = DEFAULT_KEYWORD_SCOPE) {\n /** @type KeywordDict */\n const compiledKeywords = Object.create(null);\n\n // input can be a string of keywords, an array of keywords, or a object with\n // named keys representing scopeName (which can then point to a string or array)\n if (typeof rawKeywords === 'string') {\n compileList(scopeName, rawKeywords.split(\" \"));\n } else if (Array.isArray(rawKeywords)) {\n compileList(scopeName, rawKeywords);\n } else {\n Object.keys(rawKeywords).forEach(function(scopeName) {\n // collapse all our objects back into the parent object\n Object.assign(\n compiledKeywords,\n compileKeywords(rawKeywords[scopeName], caseInsensitive, scopeName)\n );\n });\n }\n return compiledKeywords;\n\n // ---\n\n /**\n * Compiles an individual list of keywords\n *\n * Ex: \"for if when while|5\"\n *\n * @param {string} scopeName\n * @param {Array<string>} keywordList\n */\n function compileList(scopeName, keywordList) {\n if (caseInsensitive) {\n keywordList = keywordList.map(x => x.toLowerCase());\n }\n keywordList.forEach(function(keyword) {\n const pair = keyword.split('|');\n compiledKeywords[pair[0]] = [scopeName, scoreForKeyword(pair[0], pair[1])];\n });\n }\n}\n\n/**\n * Returns the proper score for a given keyword\n *\n * Also takes into account comment keywords, which will be scored 0 UNLESS\n * another score has been manually assigned.\n * @param {string} keyword\n * @param {string} [providedScore]\n */\nfunction scoreForKeyword(keyword, providedScore) {\n // manual scores always win over common keywords\n // so you can force a score of 1 if you really insist\n if (providedScore) {\n return Number(providedScore);\n }\n\n return commonKeyword(keyword) ? 0 : 1;\n}\n\n/**\n * Determines if a given keyword is common or not\n *\n * @param {string} keyword */\nfunction commonKeyword(keyword) {\n return COMMON_KEYWORDS.includes(keyword.toLowerCase());\n}\n\n/*\n\nFor the reasoning behind this please see:\nhttps://github.com/highlightjs/highlight.js/issues/2880#issuecomment-747275419\n\n*/\n\n/**\n * @type {Record<string, boolean>}\n */\nconst seenDeprecations = {};\n\n/**\n * @param {string} message\n */\nconst error = (message) => {\n console.error(message);\n};\n\n/**\n * @param {string} message\n * @param {any} args\n */\nconst warn = (message, ...args) => {\n console.log(`WARN: ${message}`, ...args);\n};\n\n/**\n * @param {string} version\n * @param {string} message\n */\nconst deprecated = (version, message) => {\n if (seenDeprecations[`${version}/${message}`]) return;\n\n console.log(`Deprecated as of ${version}. ${message}`);\n seenDeprecations[`${version}/${message}`] = true;\n};\n\n/* eslint-disable no-throw-literal */\n\n/**\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n*/\n\nconst MultiClassError = new Error();\n\n/**\n * Renumbers labeled scope names to account for additional inner match\n * groups that otherwise would break everything.\n *\n * Lets say we 3 match scopes:\n *\n * { 1 => ..., 2 => ..., 3 => ... }\n *\n * So what we need is a clean match like this:\n *\n * (a)(b)(c) => [ \"a\", \"b\", \"c\" ]\n *\n * But this falls apart with inner match groups:\n *\n * (a)(((b)))(c) => [\"a\", \"b\", \"b\", \"b\", \"c\" ]\n *\n * Our scopes are now \"out of alignment\" and we're repeating `b` 3 times.\n * What needs to happen is the numbers are remapped:\n *\n * { 1 => ..., 2 => ..., 5 => ... }\n *\n * We also need to know that the ONLY groups that should be output\n * are 1, 2, and 5. This function handles this behavior.\n *\n * @param {CompiledMode} mode\n * @param {Array<RegExp | string>} regexes\n * @param {{key: \"beginScope\"|\"endScope\"}} opts\n */\nfunction remapScopeNames(mode, regexes, { key }) {\n let offset = 0;\n const scopeNames = mode[key];\n /** @type Record<number,boolean> */\n const emit = {};\n /** @type Record<number,string> */\n const positions = {};\n\n for (let i = 1; i <= regexes.length; i++) {\n positions[i + offset] = scopeNames[i];\n emit[i + offset] = true;\n offset += countMatchGroups(regexes[i - 1]);\n }\n // we use _emit to keep track of which match groups are \"top-level\" to avoid double\n // output from inside match groups\n mode[key] = positions;\n mode[key]._emit = emit;\n mode[key]._multi = true;\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction beginMultiClass(mode) {\n if (!Array.isArray(mode.begin)) return;\n\n if (mode.skip || mode.excludeBegin || mode.returnBegin) {\n error(\"skip, excludeBegin, returnBegin not compatible with beginScope: {}\");\n throw MultiClassError;\n }\n\n if (typeof mode.beginScope !== \"object\" || mode.beginScope === null) {\n error(\"beginScope must be object\");\n throw MultiClassError;\n }\n\n remapScopeNames(mode, mode.begin, { key: \"beginScope\" });\n mode.begin = _rewriteBackreferences(mode.begin, { joinWith: \"\" });\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction endMultiClass(mode) {\n if (!Array.isArray(mode.end)) return;\n\n if (mode.skip || mode.excludeEnd || mode.returnEnd) {\n error(\"skip, excludeEnd, returnEnd not compatible with endScope: {}\");\n throw MultiClassError;\n }\n\n if (typeof mode.endScope !== \"object\" || mode.endScope === null) {\n error(\"endScope must be object\");\n throw MultiClassError;\n }\n\n remapScopeNames(mode, mode.end, { key: \"endScope\" });\n mode.end = _rewriteBackreferences(mode.end, { joinWith: \"\" });\n}\n\n/**\n * this exists only to allow `scope: {}` to be used beside `match:`\n * Otherwise `beginScope` would necessary and that would look weird\n\n {\n match: [ /def/, /\\w+/ ]\n scope: { 1: \"keyword\" , 2: \"title\" }\n }\n\n * @param {CompiledMode} mode\n */\nfunction scopeSugar(mode) {\n if (mode.scope && typeof mode.scope === \"object\" && mode.scope !== null) {\n mode.beginScope = mode.scope;\n delete mode.scope;\n }\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction MultiClass(mode) {\n scopeSugar(mode);\n\n if (typeof mode.beginScope === \"string\") {\n mode.beginScope = { _wrap: mode.beginScope };\n }\n if (typeof mode.endScope === \"string\") {\n mode.endScope = { _wrap: mode.endScope };\n }\n\n beginMultiClass(mode);\n endMultiClass(mode);\n}\n\n/**\n@typedef {import('highlight.js').Mode} Mode\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n@typedef {import('highlight.js').Language} Language\n@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin\n@typedef {import('highlight.js').CompiledLanguage} CompiledLanguage\n*/\n\n// compilation\n\n/**\n * Compiles a language definition result\n *\n * Given the raw result of a language definition (Language), compiles this so\n * that it is ready for highlighting code.\n * @param {Language} language\n * @returns {CompiledLanguage}\n */\nfunction compileLanguage(language) {\n /**\n * Builds a regex with the case sensitivity of the current language\n *\n * @param {RegExp | string} value\n * @param {boolean} [global]\n */\n function langRe(value, global) {\n return new RegExp(\n source(value),\n 'm'\n + (language.case_insensitive ? 'i' : '')\n + (language.unicodeRegex ? 'u' : '')\n + (global ? 'g' : '')\n );\n }\n\n /**\n Stores multiple regular expressions and allows you to quickly search for\n them all in a string simultaneously - returning the first match. It does\n this by creating a huge (a|b|c) regex - each individual item wrapped with ()\n and joined by `|` - using match groups to track position. When a match is\n found checking which position in the array has content allows us to figure\n out which of the original regexes / match groups triggered the match.\n\n The match object itself (the result of `Regex.exec`) is returned but also\n enhanced by merging in any meta-data that was registered with the regex.\n This is how we keep track of which mode matched, and what type of rule\n (`illegal`, `begin`, end, etc).\n */\n class MultiRegex {\n constructor() {\n this.matchIndexes = {};\n // @ts-ignore\n this.regexes = [];\n this.matchAt = 1;\n this.position = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n opts.position = this.position++;\n // @ts-ignore\n this.matchIndexes[this.matchAt] = opts;\n this.regexes.push([opts, re]);\n this.matchAt += countMatchGroups(re) + 1;\n }\n\n compile() {\n if (this.regexes.length === 0) {\n // avoids the need to check length every time exec is called\n // @ts-ignore\n this.exec = () => null;\n }\n const terminators = this.regexes.map(el => el[1]);\n this.matcherRe = langRe(_rewriteBackreferences(terminators, { joinWith: '|' }), true);\n this.lastIndex = 0;\n }\n\n /** @param {string} s */\n exec(s) {\n this.matcherRe.lastIndex = this.lastIndex;\n const match = this.matcherRe.exec(s);\n if (!match) { return null; }\n\n // eslint-disable-next-line no-undefined\n const i = match.findIndex((el, i) => i > 0 && el !== undefined);\n // @ts-ignore\n const matchData = this.matchIndexes[i];\n // trim off any earlier non-relevant match groups (ie, the other regex\n // match groups that make up the multi-matcher)\n match.splice(0, i);\n\n return Object.assign(match, matchData);\n }\n }\n\n /*\n Created to solve the key deficiently with MultiRegex - there is no way to\n test for multiple matches at a single location. Why would we need to do\n that? In the future a more dynamic engine will allow certain matches to be\n ignored. An example: if we matched say the 3rd regex in a large group but\n decided to ignore it - we'd need to started testing again at the 4th\n regex... but MultiRegex itself gives us no real way to do that.\n\n So what this class creates MultiRegexs on the fly for whatever search\n position they are needed.\n\n NOTE: These additional MultiRegex objects are created dynamically. For most\n grammars most of the time we will never actually need anything more than the\n first MultiRegex - so this shouldn't have too much overhead.\n\n Say this is our search group, and we match regex3, but wish to ignore it.\n\n regex1 | regex2 | regex3 | regex4 | regex5 ' ie, startAt = 0\n\n What we need is a new MultiRegex that only includes the remaining\n possibilities:\n\n regex4 | regex5 ' ie, startAt = 3\n\n This class wraps all that complexity up in a simple API... `startAt` decides\n where in the array of expressions to start doing the matching. It\n auto-increments, so if a match is found at position 2, then startAt will be\n set to 3. If the end is reached startAt will return to 0.\n\n MOST of the time the parser will be setting startAt manually to 0.\n */\n class ResumableMultiRegex {\n constructor() {\n // @ts-ignore\n this.rules = [];\n // @ts-ignore\n this.multiRegexes = [];\n this.count = 0;\n\n this.lastIndex = 0;\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n getMatcher(index) {\n if (this.multiRegexes[index]) return this.multiRegexes[index];\n\n const matcher = new MultiRegex();\n this.rules.slice(index).forEach(([re, opts]) => matcher.addRule(re, opts));\n matcher.compile();\n this.multiRegexes[index] = matcher;\n return matcher;\n }\n\n resumingScanAtSamePosition() {\n return this.regexIndex !== 0;\n }\n\n considerAll() {\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n this.rules.push([re, opts]);\n if (opts.type === \"begin\") this.count++;\n }\n\n /** @param {string} s */\n exec(s) {\n const m = this.getMatcher(this.regexIndex);\n m.lastIndex = this.lastIndex;\n let result = m.exec(s);\n\n // The following is because we have no easy way to say \"resume scanning at the\n // existing position but also skip the current rule ONLY\". What happens is\n // all prior rules are also skipped which can result in matching the wrong\n // thing. Example of matching \"booger\":\n\n // our matcher is [string, \"booger\", number]\n //\n // ....booger....\n\n // if \"booger\" is ignored then we'd really need a regex to scan from the\n // SAME position for only: [string, number] but ignoring \"booger\" (if it\n // was the first match), a simple resume would scan ahead who knows how\n // far looking only for \"number\", ignoring potential string matches (or\n // future \"booger\" matches that might be valid.)\n\n // So what we do: We execute two matchers, one resuming at the same\n // position, but the second full matcher starting at the position after:\n\n // /--- resume first regex match here (for [number])\n // |/---- full match here for [string, \"booger\", number]\n // vv\n // ....booger....\n\n // Which ever results in a match first is then used. So this 3-4 step\n // process essentially allows us to say \"match at this position, excluding\n // a prior rule that was ignored\".\n //\n // 1. Match \"booger\" first, ignore. Also proves that [string] does non match.\n // 2. Resume matching for [number]\n // 3. Match at index + 1 for [string, \"booger\", number]\n // 4. If #2 and #3 result in matches, which came first?\n if (this.resumingScanAtSamePosition()) {\n if (result && result.index === this.lastIndex) ; else { // use the second matcher result\n const m2 = this.getMatcher(0);\n m2.lastIndex = this.lastIndex + 1;\n result = m2.exec(s);\n }\n }\n\n if (result) {\n this.regexIndex += result.position + 1;\n if (this.regexIndex === this.count) {\n // wrap-around to considering all matches again\n this.considerAll();\n }\n }\n\n return result;\n }\n }\n\n /**\n * Given a mode, builds a huge ResumableMultiRegex that can be used to walk\n * the content and find matches.\n *\n * @param {CompiledMode} mode\n * @returns {ResumableMultiRegex}\n */\n function buildModeRegex(mode) {\n const mm = new ResumableMultiRegex();\n\n mode.contains.forEach(term => mm.addRule(term.begin, { rule: term, type: \"begin\" }));\n\n if (mode.terminatorEnd) {\n mm.addRule(mode.terminatorEnd, { type: \"end\" });\n }\n if (mode.illegal) {\n mm.addRule(mode.illegal, { type: \"illegal\" });\n }\n\n return mm;\n }\n\n /** skip vs abort vs ignore\n *\n * @skip - The mode is still entered and exited normally (and contains rules apply),\n * but all content is held and added to the parent buffer rather than being\n * output when the mode ends. Mostly used with `sublanguage` to build up\n * a single large buffer than can be parsed by sublanguage.\n *\n * - The mode begin ands ends normally.\n * - Content matched is added to the parent mode buffer.\n * - The parser cursor is moved forward normally.\n *\n * @abort - A hack placeholder until we have ignore. Aborts the mode (as if it\n * never matched) but DOES NOT continue to match subsequent `contains`\n * modes. Abort is bad/suboptimal because it can result in modes\n * farther down not getting applied because an earlier rule eats the\n * content but then aborts.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is added to the mode buffer.\n * - The parser cursor is moved forward accordingly.\n *\n * @ignore - Ignores the mode (as if it never matched) and continues to match any\n * subsequent `contains` modes. Ignore isn't technically possible with\n * the current parser implementation.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is ignored.\n * - The parser cursor is not moved forward.\n */\n\n /**\n * Compiles an individual mode\n *\n * This can raise an error if the mode contains certain detectable known logic\n * issues.\n * @param {Mode} mode\n * @param {CompiledMode | null} [parent]\n * @returns {CompiledMode | never}\n */\n function compileMode(mode, parent) {\n const cmode = /** @type CompiledMode */ (mode);\n if (mode.isCompiled) return cmode;\n\n [\n scopeClassName,\n // do this early so compiler extensions generally don't have to worry about\n // the distinction between match/begin\n compileMatch,\n MultiClass,\n beforeMatchExt\n ].forEach(ext => ext(mode, parent));\n\n language.compilerExtensions.forEach(ext => ext(mode, parent));\n\n // __beforeBegin is considered private API, internal use only\n mode.__beforeBegin = null;\n\n [\n beginKeywords,\n // do this later so compiler extensions that come earlier have access to the\n // raw array if they wanted to perhaps manipulate it, etc.\n compileIllegal,\n // default to 1 relevance if not specified\n compileRelevance\n ].forEach(ext => ext(mode, parent));\n\n mode.isCompiled = true;\n\n let keywordPattern = null;\n if (typeof mode.keywords === \"object\" && mode.keywords.$pattern) {\n // we need a copy because keywords might be compiled multiple times\n // so we can't go deleting $pattern from the original on the first\n // pass\n mode.keywords = Object.assign({}, mode.keywords);\n keywordPattern = mode.keywords.$pattern;\n delete mode.keywords.$pattern;\n }\n keywordPattern = keywordPattern || /\\w+/;\n\n if (mode.keywords) {\n mode.keywords = compileKeywords(mode.keywords, language.case_insensitive);\n }\n\n cmode.keywordPatternRe = langRe(keywordPattern, true);\n\n if (parent) {\n if (!mode.begin) mode.begin = /\\B|\\b/;\n cmode.beginRe = langRe(cmode.begin);\n if (!mode.end && !mode.endsWithParent) mode.end = /\\B|\\b/;\n if (mode.end) cmode.endRe = langRe(cmode.end);\n cmode.terminatorEnd = source(cmode.end) || '';\n if (mode.endsWithParent && parent.terminatorEnd) {\n cmode.terminatorEnd += (mode.end ? '|' : '') + parent.terminatorEnd;\n }\n }\n if (mode.illegal) cmode.illegalRe = langRe(/** @type {RegExp | string} */ (mode.illegal));\n if (!mode.contains) mode.contains = [];\n\n mode.contains = [].concat(...mode.contains.map(function(c) {\n return expandOrCloneMode(c === 'self' ? mode : c);\n }));\n mode.contains.forEach(function(c) { compileMode(/** @type Mode */ (c), cmode); });\n\n if (mode.starts) {\n compileMode(mode.starts, parent);\n }\n\n cmode.matcher = buildModeRegex(cmode);\n return cmode;\n }\n\n if (!language.compilerExtensions) language.compilerExtensions = [];\n\n // self is not valid at the top-level\n if (language.contains && language.contains.includes('self')) {\n throw new Error(\"ERR: contains `self` is not supported at the top-level of a language. See documentation.\");\n }\n\n // we need a null object, which inherit will guarantee\n language.classNameAliases = inherit$1(language.classNameAliases || {});\n\n return compileMode(/** @type Mode */ (language));\n}\n\n/**\n * Determines if a mode has a dependency on it's parent or not\n *\n * If a mode does have a parent dependency then often we need to clone it if\n * it's used in multiple places so that each copy points to the correct parent,\n * where-as modes without a parent can often safely be re-used at the bottom of\n * a mode chain.\n *\n * @param {Mode | null} mode\n * @returns {boolean} - is there a dependency on the parent?\n * */\nfunction dependencyOnParent(mode) {\n if (!mode) return false;\n\n return mode.endsWithParent || dependencyOnParent(mode.starts);\n}\n\n/**\n * Expands a mode or clones it if necessary\n *\n * This is necessary for modes with parental dependenceis (see notes on\n * `dependencyOnParent`) and for nodes that have `variants` - which must then be\n * exploded into their own individual modes at compile time.\n *\n * @param {Mode} mode\n * @returns {Mode | Mode[]}\n * */\nfunction expandOrCloneMode(mode) {\n if (mode.variants && !mode.cachedVariants) {\n mode.cachedVariants = mode.variants.map(function(variant) {\n return inherit$1(mode, { variants: null }, variant);\n });\n }\n\n // EXPAND\n // if we have variants then essentially \"replace\" the mode with the variants\n // this happens in compileMode, where this function is called from\n if (mode.cachedVariants) {\n return mode.cachedVariants;\n }\n\n // CLONE\n // if we have dependencies on parents then we need a unique\n // instance of ourselves, so we can be reused with many\n // different parents without issue\n if (dependencyOnParent(mode)) {\n return inherit$1(mode, { starts: mode.starts ? inherit$1(mode.starts) : null });\n }\n\n if (Object.isFrozen(mode)) {\n return inherit$1(mode);\n }\n\n // no special dependency issues, just return ourselves\n return mode;\n}\n\nvar version = \"11.5.1\";\n\nclass HTMLInjectionError extends Error {\n constructor(reason, html) {\n super(reason);\n this.name = \"HTMLInjectionError\";\n this.html = html;\n }\n}\n\n/*\nSyntax highlighting with language autodetection.\nhttps://highlightjs.org/\n*/\n\n/**\n@typedef {import('highlight.js').Mode} Mode\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n@typedef {import('highlight.js').CompiledScope} CompiledScope\n@typedef {import('highlight.js').Language} Language\n@typedef {import('highlight.js').HLJSApi} HLJSApi\n@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin\n@typedef {import('highlight.js').PluginEvent} PluginEvent\n@typedef {import('highlight.js').HLJSOptions} HLJSOptions\n@typedef {import('highlight.js').LanguageFn} LanguageFn\n@typedef {import('highlight.js').HighlightedHTMLElement} HighlightedHTMLElement\n@typedef {import('highlight.js').BeforeHighlightContext} BeforeHighlightContext\n@typedef {import('highlight.js/private').MatchType} MatchType\n@typedef {import('highlight.js/private').KeywordData} KeywordData\n@typedef {import('highlight.js/private').EnhancedMatch} EnhancedMatch\n@typedef {import('highlight.js/private').AnnotatedError} AnnotatedError\n@typedef {import('highlight.js').AutoHighlightResult} AutoHighlightResult\n@typedef {import('highlight.js').HighlightOptions} HighlightOptions\n@typedef {import('highlight.js').HighlightResult} HighlightResult\n*/\n\n\nconst escape = escapeHTML;\nconst inherit = inherit$1;\nconst NO_MATCH = Symbol(\"nomatch\");\nconst MAX_KEYWORD_HITS = 7;\n\n/**\n * @param {any} hljs - object that is extended (legacy)\n * @returns {HLJSApi}\n */\nconst HLJS = function(hljs) {\n // Global internal variables used within the highlight.js library.\n /** @type {Record<string, Language>} */\n const languages = Object.create(null);\n /** @type {Record<string, string>} */\n const aliases = Object.create(null);\n /** @type {HLJSPlugin[]} */\n const plugins = [];\n\n // safe/production mode - swallows more errors, tries to keep running\n // even if a single syntax or parse hits a fatal error\n let SAFE_MODE = true;\n const LANGUAGE_NOT_FOUND = \"Could not find the language '{}', did you forget to load/include a language module?\";\n /** @type {Language} */\n const PLAINTEXT_LANGUAGE = { disableAutodetect: true, name: 'Plain text', contains: [] };\n\n // Global options used when within external APIs. This is modified when\n // calling the `hljs.configure` function.\n /** @type HLJSOptions */\n let options = {\n ignoreUnescapedHTML: false,\n throwUnescapedHTML: false,\n noHighlightRe: /^(no-?highlight)$/i,\n languageDetectRe: /\\blang(?:uage)?-([\\w-]+)\\b/i,\n classPrefix: 'hljs-',\n cssSelector: 'pre code',\n languages: null,\n // beta configuration options, subject to change, welcome to discuss\n // https://github.com/highlightjs/highlight.js/issues/1086\n __emitter: TokenTreeEmitter\n };\n\n /* Utility functions */\n\n /**\n * Tests a language name to see if highlighting should be skipped\n * @param {string} languageName\n */\n function shouldNotHighlight(languageName) {\n return options.noHighlightRe.test(languageName);\n }\n\n /**\n * @param {HighlightedHTMLElement} block - the HTML element to determine language for\n */\n function blockLanguage(block) {\n let classes = block.className + ' ';\n\n classes += block.parentNode ? block.parentNode.className : '';\n\n // language-* takes precedence over non-prefixed class names.\n const match = options.languageDetectRe.exec(classes);\n if (match) {\n const language = getLanguage(match[1]);\n if (!language) {\n warn(LANGUAGE_NOT_FOUND.replace(\"{}\", match[1]));\n warn(\"Falling back to no-highlight mode for this block.\", block);\n }\n return language ? match[1] : 'no-highlight';\n }\n\n return classes\n .split(/\\s+/)\n .find((_class) => shouldNotHighlight(_class) || getLanguage(_class));\n }\n\n /**\n * Core highlighting function.\n *\n * OLD API\n * highlight(lang, code, ignoreIllegals, continuation)\n *\n * NEW API\n * highlight(code, {lang, ignoreIllegals})\n *\n * @param {string} codeOrLanguageName - the language to use for highlighting\n * @param {string | HighlightOptions} optionsOrCode - the code to highlight\n * @param {boolean} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n *\n * @returns {HighlightResult} Result - an object that represents the result\n * @property {string} language - the language name\n * @property {number} relevance - the relevance score\n * @property {string} value - the highlighted HTML code\n * @property {string} code - the original raw code\n * @property {CompiledMode} top - top of the current mode stack\n * @property {boolean} illegal - indicates whether any illegal matches were found\n */\n function highlight(codeOrLanguageName, optionsOrCode, ignoreIllegals) {\n let code = \"\";\n let languageName = \"\";\n if (typeof optionsOrCode === \"object\") {\n code = codeOrLanguageName;\n ignoreIllegals = optionsOrCode.ignoreIllegals;\n languageName = optionsOrCode.language;\n } else {\n // old API\n deprecated(\"10.7.0\", \"highlight(lang, code, ...args) has been deprecated.\");\n deprecated(\"10.7.0\", \"Please use highlight(code, options) instead.\\nhttps://github.com/highlightjs/highlight.js/issues/2277\");\n languageName = codeOrLanguageName;\n code = optionsOrCode;\n }\n\n // https://github.com/highlightjs/highlight.js/issues/3149\n // eslint-disable-next-line no-undefined\n if (ignoreIllegals === undefined) { ignoreIllegals = true; }\n\n /** @type {BeforeHighlightContext} */\n const context = {\n code,\n language: languageName\n };\n // the plugin can change the desired language or the code to be highlighted\n // just be changing the object it was passed\n fire(\"before:highlight\", context);\n\n // a before plugin can usurp the result completely by providing it's own\n // in which case we don't even need to call highlight\n const result = context.result\n ? context.result\n : _highlight(context.language, context.code, ignoreIllegals);\n\n result.code = context.code;\n // the plugin can change anything in result to suite it\n fire(\"after:highlight\", result);\n\n return result;\n }\n\n /**\n * private highlight that's used internally and does not fire callbacks\n *\n * @param {string} languageName - the language to use for highlighting\n * @param {string} codeToHighlight - the code to highlight\n * @param {boolean?} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n * @param {CompiledMode?} [continuation] - current continuation mode, if any\n * @returns {HighlightResult} - result of the highlight operation\n */\n function _highlight(languageName, codeToHighlight, ignoreIllegals, continuation) {\n const keywordHits = Object.create(null);\n\n /**\n * Return keyword data if a match is a keyword\n * @param {CompiledMode} mode - current mode\n * @param {string} matchText - the textual match\n * @returns {KeywordData | false}\n */\n function keywordData(mode, matchText) {\n return mode.keywords[matchText];\n }\n\n function processKeywords() {\n if (!top.keywords) {\n emitter.addText(modeBuffer);\n return;\n }\n\n let lastIndex = 0;\n top.keywordPatternRe.lastIndex = 0;\n let match = top.keywordPatternRe.exec(modeBuffer);\n let buf = \"\";\n\n while (match) {\n buf += modeBuffer.substring(lastIndex, match.index);\n const word = language.case_insensitive ? match[0].toLowerCase() : match[0];\n const data = keywordData(top, word);\n if (data) {\n const [kind, keywordRelevance] = data;\n emitter.addText(buf);\n buf = \"\";\n\n keywordHits[word] = (keywordHits[word] || 0) + 1;\n if (keywordHits[word] <= MAX_KEYWORD_HITS) relevance += keywordRelevance;\n if (kind.startsWith(\"_\")) {\n // _ implied for relevance only, do not highlight\n // by applying a class name\n buf += match[0];\n } else {\n const cssClass = language.classNameAliases[kind] || kind;\n emitter.addKeyword(match[0], cssClass);\n }\n } else {\n buf += match[0];\n }\n lastIndex = top.keywordPatternRe.lastIndex;\n match = top.keywordPatternRe.exec(modeBuffer);\n }\n buf += modeBuffer.substr(lastIndex);\n emitter.addText(buf);\n }\n\n function processSubLanguage() {\n if (modeBuffer === \"\") return;\n /** @type HighlightResult */\n let result = null;\n\n if (typeof top.subLanguage === 'string') {\n if (!languages[top.subLanguage]) {\n emitter.addText(modeBuffer);\n return;\n }\n result = _highlight(top.subLanguage, modeBuffer, true, continuations[top.subLanguage]);\n continuations[top.subLanguage] = /** @type {CompiledMode} */ (result._top);\n } else {\n result = highlightAuto(modeBuffer, top.subLanguage.length ? top.subLanguage : null);\n }\n\n // Counting embedded language score towards the host language may be disabled\n // with zeroing the containing mode relevance. Use case in point is Markdown that\n // allows XML everywhere and makes every XML snippet to have a much larger Markdown\n // score.\n if (top.relevance > 0) {\n relevance += result.relevance;\n }\n emitter.addSublanguage(result._emitter, result.language);\n }\n\n function processBuffer() {\n if (top.subLanguage != null) {\n processSubLanguage();\n } else {\n processKeywords();\n }\n modeBuffer = '';\n }\n\n /**\n * @param {CompiledScope} scope\n * @param {RegExpMatchArray} match\n */\n function emitMultiClass(scope, match) {\n let i = 1;\n const max = match.length - 1;\n while (i <= max) {\n if (!scope._emit[i]) { i++; continue; }\n const klass = language.classNameAliases[scope[i]] || scope[i];\n const text = match[i];\n if (klass) {\n emitter.addKeyword(text, klass);\n } else {\n modeBuffer = text;\n processKeywords();\n modeBuffer = \"\";\n }\n i++;\n }\n }\n\n /**\n * @param {CompiledMode} mode - new mode to start\n * @param {RegExpMatchArray} match\n */\n function startNewMode(mode, match) {\n if (mode.scope && typeof mode.scope === \"string\") {\n emitter.openNode(language.classNameAliases[mode.scope] || mode.scope);\n }\n if (mode.beginScope) {\n // beginScope just wraps the begin match itself in a scope\n if (mode.beginScope._wrap) {\n emitter.addKeyword(modeBuffer, language.classNameAliases[mode.beginScope._wrap] || mode.beginScope._wrap);\n modeBuffer = \"\";\n } else if (mode.beginScope._multi) {\n // at this point modeBuffer should just be the match\n emitMultiClass(mode.beginScope, match);\n modeBuffer = \"\";\n }\n }\n\n top = Object.create(mode, { parent: { value: top } });\n return top;\n }\n\n /**\n * @param {CompiledMode } mode - the mode to potentially end\n * @param {RegExpMatchArray} match - the latest match\n * @param {string} matchPlusRemainder - match plus remainder of content\n * @returns {CompiledMode | void} - the next mode, or if void continue on in current mode\n */\n function endOfMode(mode, match, matchPlusRemainder) {\n let matched = startsWith(mode.endRe, matchPlusRemainder);\n\n if (matched) {\n if (mode[\"on:end\"]) {\n const resp = new Response(mode);\n mode[\"on:end\"](match, resp);\n if (resp.isMatchIgnored) matched = false;\n }\n\n if (matched) {\n while (mode.endsParent && mode.parent) {\n mode = mode.parent;\n }\n return mode;\n }\n }\n // even if on:end fires an `ignore` it's still possible\n // that we might trigger the end node because of a parent mode\n if (mode.endsWithParent) {\n return endOfMode(mode.parent, match, matchPlusRemainder);\n }\n }\n\n /**\n * Handle matching but then ignoring a sequence of text\n *\n * @param {string} lexeme - string containing full match text\n */\n function doIgnore(lexeme) {\n if (top.matcher.regexIndex === 0) {\n // no more regexes to potentially match here, so we move the cursor forward one\n // space\n modeBuffer += lexeme[0];\n return 1;\n } else {\n // no need to move the cursor, we still have additional regexes to try and\n // match at this very spot\n resumeScanAtSamePosition = true;\n return 0;\n }\n }\n\n /**\n * Handle the start of a new potential mode match\n *\n * @param {EnhancedMatch} match - the current match\n * @returns {number} how far to advance the parse cursor\n */\n function doBeginMatch(match) {\n const lexeme = match[0];\n const newMode = match.rule;\n\n const resp = new Response(newMode);\n // first internal before callbacks, then the public ones\n const beforeCallbacks = [newMode.__beforeBegin, newMode[\"on:begin\"]];\n for (const cb of beforeCallbacks) {\n if (!cb) continue;\n cb(match, resp);\n if (resp.isMatchIgnored) return doIgnore(lexeme);\n }\n\n if (newMode.skip) {\n modeBuffer += lexeme;\n } else {\n if (newMode.excludeBegin) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (!newMode.returnBegin && !newMode.excludeBegin) {\n modeBuffer = lexeme;\n }\n }\n startNewMode(newMode, match);\n return newMode.returnBegin ? 0 : lexeme.length;\n }\n\n /**\n * Handle the potential end of mode\n *\n * @param {RegExpMatchArray} match - the current match\n */\n function doEndMatch(match) {\n const lexeme = match[0];\n const matchPlusRemainder = codeToHighlight.substr(match.index);\n\n const endMode = endOfMode(top, match, matchPlusRemainder);\n if (!endMode) { return NO_MATCH; }\n\n const origin = top;\n if (top.endScope && top.endScope._wrap) {\n processBuffer();\n emitter.addKeyword(lexeme, top.endScope._wrap);\n } else if (top.endScope && top.endScope._multi) {\n processBuffer();\n emitMultiClass(top.endScope, match);\n } else if (origin.skip) {\n modeBuffer += lexeme;\n } else {\n if (!(origin.returnEnd || origin.excludeEnd)) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (origin.excludeEnd) {\n modeBuffer = lexeme;\n }\n }\n do {\n if (top.scope) {\n emitter.closeNode();\n }\n if (!top.skip && !top.subLanguage) {\n relevance += top.relevance;\n }\n top = top.parent;\n } while (top !== endMode.parent);\n if (endMode.starts) {\n startNewMode(endMode.starts, match);\n }\n return origin.returnEnd ? 0 : lexeme.length;\n }\n\n function processContinuations() {\n const list = [];\n for (let current = top; current !== language; current = current.parent) {\n if (current.scope) {\n list.unshift(current.scope);\n }\n }\n list.forEach(item => emitter.openNode(item));\n }\n\n /** @type {{type?: MatchType, index?: number, rule?: Mode}}} */\n let lastMatch = {};\n\n /**\n * Process an individual match\n *\n * @param {string} textBeforeMatch - text preceding the match (since the last match)\n * @param {EnhancedMatch} [match] - the match itself\n */\n function processLexeme(textBeforeMatch, match) {\n const lexeme = match && match[0];\n\n // add non-matched text to the current mode buffer\n modeBuffer += textBeforeMatch;\n\n if (lexeme == null) {\n processBuffer();\n return 0;\n }\n\n // we've found a 0 width match and we're stuck, so we need to advance\n // this happens when we have badly behaved rules that have optional matchers to the degree that\n // sometimes they can end up matching nothing at all\n // Ref: https://github.com/highlightjs/highlight.js/issues/2140\n if (lastMatch.type === \"begin\" && match.type === \"end\" && lastMatch.index === match.index && lexeme === \"\") {\n // spit the \"skipped\" character that our regex choked on back into the output sequence\n modeBuffer += codeToHighlight.slice(match.index, match.index + 1);\n if (!SAFE_MODE) {\n /** @type {AnnotatedError} */\n const err = new Error(`0 width match regex (${languageName})`);\n err.languageName = languageName;\n err.badRule = lastMatch.rule;\n throw err;\n }\n return 1;\n }\n lastMatch = match;\n\n if (match.type === \"begin\") {\n return doBeginMatch(match);\n } else if (match.type === \"illegal\" && !ignoreIllegals) {\n // illegal match, we do not continue processing\n /** @type {AnnotatedError} */\n const err = new Error('Illegal lexeme \"' + lexeme + '\" for mode \"' + (top.scope || '<unnamed>') + '\"');\n err.mode = top;\n throw err;\n } else if (match.type === \"end\") {\n const processed = doEndMatch(match);\n if (processed !== NO_MATCH) {\n return processed;\n }\n }\n\n // edge case for when illegal matches $ (end of line) which is technically\n // a 0 width match but not a begin/end match so it's not caught by the\n // first handler (when ignoreIllegals is true)\n if (match.type === \"illegal\" && lexeme === \"\") {\n // advance so we aren't stuck in an infinite loop\n return 1;\n }\n\n // infinite loops are BAD, this is a last ditch catch all. if we have a\n // decent number of iterations yet our index (cursor position in our\n // parsing) still 3x behind our index then something is very wrong\n // so we bail\n if (iterations > 100000 && iterations > match.index * 3) {\n const err = new Error('potential infinite loop, way more iterations than matches');\n throw err;\n }\n\n /*\n Why might be find ourselves here? An potential end match that was\n triggered but could not be completed. IE, `doEndMatch` returned NO_MATCH.\n (this could be because a callback requests the match be ignored, etc)\n\n This causes no real harm other than stopping a few times too many.\n */\n\n modeBuffer += lexeme;\n return lexeme.length;\n }\n\n const language = getLanguage(languageName);\n if (!language) {\n error(LANGUAGE_NOT_FOUND.replace(\"{}\", languageName));\n throw new Error('Unknown language: \"' + languageName + '\"');\n }\n\n const md = compileLanguage(language);\n let result = '';\n /** @type {CompiledMode} */\n let top = continuation || md;\n /** @type Record<string,CompiledMode> */\n const continuations = {}; // keep continuations for sub-languages\n const emitter = new options.__emitter(options);\n processContinuations();\n let modeBuffer = '';\n let relevance = 0;\n let index = 0;\n let iterations = 0;\n let resumeScanAtSamePosition = false;\n\n try {\n top.matcher.considerAll();\n\n for (;;) {\n iterations++;\n if (resumeScanAtSamePosition) {\n // only regexes not matched previously will now be\n // considered for a potential match\n resumeScanAtSamePosition = false;\n } else {\n top.matcher.considerAll();\n }\n top.matcher.lastIndex = index;\n\n const match = top.matcher.exec(codeToHighlight);\n // console.log(\"match\", match[0], match.rule && match.rule.begin)\n\n if (!match) break;\n\n const beforeMatch = codeToHighlight.substring(index, match.index);\n const processedCount = processLexeme(beforeMatch, match);\n index = match.index + processedCount;\n }\n processLexeme(codeToHighlight.substr(index));\n emitter.closeAllNodes();\n emitter.finalize();\n result = emitter.toHTML();\n\n return {\n language: languageName,\n value: result,\n relevance: relevance,\n illegal: false,\n _emitter: emitter,\n _top: top\n };\n } catch (err) {\n if (err.message && err.message.includes('Illegal')) {\n return {\n language: languageName,\n value: escape(codeToHighlight),\n illegal: true,\n relevance: 0,\n _illegalBy: {\n message: err.message,\n index: index,\n context: codeToHighlight.slice(index - 100, index + 100),\n mode: err.mode,\n resultSoFar: result\n },\n _emitter: emitter\n };\n } else if (SAFE_MODE) {\n return {\n language: languageName,\n value: escape(codeToHighlight),\n illegal: false,\n relevance: 0,\n errorRaised: err,\n _emitter: emitter,\n _top: top\n };\n } else {\n throw err;\n }\n }\n }\n\n /**\n * returns a valid highlight result, without actually doing any actual work,\n * auto highlight starts with this and it's possible for small snippets that\n * auto-detection may not find a better match\n * @param {string} code\n * @returns {HighlightResult}\n */\n function justTextHighlightResult(code) {\n const result = {\n value: escape(code),\n illegal: false,\n relevance: 0,\n _top: PLAINTEXT_LANGUAGE,\n _emitter: new options.__emitter(options)\n };\n result._emitter.addText(code);\n return result;\n }\n\n /**\n Highlighting with language detection. Accepts a string with the code to\n highlight. Returns an object with the following properties:\n\n - language (detected language)\n - relevance (int)\n - value (an HTML string with highlighting markup)\n - secondBest (object with the same structure for second-best heuristically\n detected language, may be absent)\n\n @param {string} code\n @param {Array<string>} [languageSubset]\n @returns {AutoHighlightResult}\n */\n function highlightAuto(code, languageSubset) {\n languageSubset = languageSubset || options.languages || Object.keys(languages);\n const plaintext = justTextHighlightResult(code);\n\n const results = languageSubset.filter(getLanguage).filter(autoDetection).map(name =>\n _highlight(name, code, false)\n );\n results.unshift(plaintext); // plaintext is always an option\n\n const sorted = results.sort((a, b) => {\n // sort base on relevance\n if (a.relevance !== b.relevance) return b.relevance - a.relevance;\n\n // always award the tie to the base language\n // ie if C++ and Arduino are tied, it's more likely to be C++\n if (a.language && b.language) {\n if (getLanguage(a.language).supersetOf === b.language) {\n return 1;\n } else if (getLanguage(b.language).supersetOf === a.language) {\n return -1;\n }\n }\n\n // otherwise say they are equal, which has the effect of sorting on\n // relevance while preserving the original ordering - which is how ties\n // have historically been settled, ie the language that comes first always\n // wins in the case of a tie\n return 0;\n });\n\n const [best, secondBest] = sorted;\n\n /** @type {AutoHighlightResult} */\n const result = best;\n result.secondBest = secondBest;\n\n return result;\n }\n\n /**\n * Builds new class name for block given the language name\n *\n * @param {HTMLElement} element\n * @param {string} [currentLang]\n * @param {string} [resultLang]\n */\n function updateClassName(element, currentLang, resultLang) {\n const language = (currentLang && aliases[currentLang]) || resultLang;\n\n element.classList.add(\"hljs\");\n element.classList.add(`language-${language}`);\n }\n\n /**\n * Applies highlighting to a DOM node containing code.\n *\n * @param {HighlightedHTMLElement} element - the HTML element to highlight\n */\n function highlightElement(element) {\n /** @type HTMLElement */\n let node = null;\n const language = blockLanguage(element);\n\n if (shouldNotHighlight(language)) return;\n\n fire(\"before:highlightElement\",\n { el: element, language: language });\n\n // we should be all text, no child nodes (unescaped HTML) - this is possibly\n // an HTML injection attack - it's likely too late if this is already in\n // production (the code has likely already done its damage by the time\n // we're seeing it)... but we yell loudly about this so that hopefully it's\n // more likely to be caught in development before making it to production\n if (element.children.length > 0) {\n if (!options.ignoreUnescapedHTML) {\n console.warn(\"One of your code blocks includes unescaped HTML. This is a potentially serious security risk.\");\n console.warn(\"https://github.com/highlightjs/highlight.js/wiki/security\");\n console.warn(\"The element with unescaped HTML:\");\n console.warn(element);\n }\n if (options.throwUnescapedHTML) {\n const err = new HTMLInjectionError(\n \"One of your code blocks includes unescaped HTML.\",\n element.innerHTML\n );\n throw err;\n }\n }\n\n node = element;\n const text = node.textContent;\n const result = language ? highlight(text, { language, ignoreIllegals: true }) : highlightAuto(text);\n\n element.innerHTML = result.value;\n updateClassName(element, language, result.language);\n element.result = {\n language: result.language,\n // TODO: remove with version 11.0\n re: result.relevance,\n relevance: result.relevance\n };\n if (result.secondBest) {\n element.secondBest = {\n language: result.secondBest.language,\n relevance: result.secondBest.relevance\n };\n }\n\n fire(\"after:highlightElement\", { el: element, result, text });\n }\n\n /**\n * Updates highlight.js global options with the passed options\n *\n * @param {Partial<HLJSOptions>} userOptions\n */\n function configure(userOptions) {\n options = inherit(options, userOptions);\n }\n\n // TODO: remove v12, deprecated\n const initHighlighting = () => {\n highlightAll();\n deprecated(\"10.6.0\", \"initHighlighting() deprecated. Use highlightAll() now.\");\n };\n\n // TODO: remove v12, deprecated\n function initHighlightingOnLoad() {\n highlightAll();\n deprecated(\"10.6.0\", \"initHighlightingOnLoad() deprecated. Use highlightAll() now.\");\n }\n\n let wantsHighlight = false;\n\n /**\n * auto-highlights all pre>code elements on the page\n */\n function highlightAll() {\n // if we are called too early in the loading process\n if (document.readyState === \"loading\") {\n wantsHighlight = true;\n return;\n }\n\n const blocks = document.querySelectorAll(options.cssSelector);\n blocks.forEach(highlightElement);\n }\n\n function boot() {\n // if a highlight was requested before DOM was loaded, do now\n if (wantsHighlight) highlightAll();\n }\n\n // make sure we are in the browser environment\n if (typeof window !== 'undefined' && window.addEventListener) {\n window.addEventListener('DOMContentLoaded', boot, false);\n }\n\n /**\n * Register a language grammar module\n *\n * @param {string} languageName\n * @param {LanguageFn} languageDefinition\n */\n function registerLanguage(languageName, languageDefinition) {\n let lang = null;\n try {\n lang = languageDefinition(hljs);\n } catch (error$1) {\n error(\"Language definition for '{}' could not be registered.\".replace(\"{}\", languageName));\n // hard or soft error\n if (!SAFE_MODE) { throw error$1; } else { error(error$1); }\n // languages that have serious errors are replaced with essentially a\n // \"plaintext\" stand-in so that the code blocks will still get normal\n // css classes applied to them - and one bad language won't break the\n // entire highlighter\n lang = PLAINTEXT_LANGUAGE;\n }\n // give it a temporary name if it doesn't have one in the meta-data\n if (!lang.name) lang.name = languageName;\n languages[languageName] = lang;\n lang.rawDefinition = languageDefinition.bind(null, hljs);\n\n if (lang.aliases) {\n registerAliases(lang.aliases, { languageName });\n }\n }\n\n /**\n * Remove a language grammar module\n *\n * @param {string} languageName\n */\n function unregisterLanguage(languageName) {\n delete languages[languageName];\n for (const alias of Object.keys(aliases)) {\n if (aliases[alias] === languageName) {\n delete aliases[alias];\n }\n }\n }\n\n /**\n * @returns {string[]} List of language internal names\n */\n function listLanguages() {\n return Object.keys(languages);\n }\n\n /**\n * @param {string} name - name of the language to retrieve\n * @returns {Language | undefined}\n */\n function getLanguage(name) {\n name = (name || '').toLowerCase();\n return languages[name] || languages[aliases[name]];\n }\n\n /**\n *\n * @param {string|string[]} aliasList - single alias or list of aliases\n * @param {{languageName: string}} opts\n */\n function registerAliases(aliasList, { languageName }) {\n if (typeof aliasList === 'string') {\n aliasList = [aliasList];\n }\n aliasList.forEach(alias => { aliases[alias.toLowerCase()] = languageName; });\n }\n\n /**\n * Determines if a given language has auto-detection enabled\n * @param {string} name - name of the language\n */\n function autoDetection(name) {\n const lang = getLanguage(name);\n return lang && !lang.disableAutodetect;\n }\n\n /**\n * Upgrades the old highlightBlock plugins to the new\n * highlightElement API\n * @param {HLJSPlugin} plugin\n */\n function upgradePluginAPI(plugin) {\n // TODO: remove with v12\n if (plugin[\"before:highlightBlock\"] && !plugin[\"before:highlightElement\"]) {\n plugin[\"before:highlightElement\"] = (data) => {\n plugin[\"before:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n if (plugin[\"after:highlightBlock\"] && !plugin[\"after:highlightElement\"]) {\n plugin[\"after:highlightElement\"] = (data) => {\n plugin[\"after:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n }\n\n /**\n * @param {HLJSPlugin} plugin\n */\n function addPlugin(plugin) {\n upgradePluginAPI(plugin);\n plugins.push(plugin);\n }\n\n /**\n *\n * @param {PluginEvent} event\n * @param {any} args\n */\n function fire(event, args) {\n const cb = event;\n plugins.forEach(function(plugin) {\n if (plugin[cb]) {\n plugin[cb](args);\n }\n });\n }\n\n /**\n * DEPRECATED\n * @param {HighlightedHTMLElement} el\n */\n function deprecateHighlightBlock(el) {\n deprecated(\"10.7.0\", \"highlightBlock will be removed entirely in v12.0\");\n deprecated(\"10.7.0\", \"Please use highlightElement now.\");\n\n return highlightElement(el);\n }\n\n /* Interface definition */\n Object.assign(hljs, {\n highlight,\n highlightAuto,\n highlightAll,\n highlightElement,\n // TODO: Remove with v12 API\n highlightBlock: deprecateHighlightBlock,\n configure,\n initHighlighting,\n initHighlightingOnLoad,\n registerLanguage,\n unregisterLanguage,\n listLanguages,\n getLanguage,\n registerAliases,\n autoDetection,\n inherit,\n addPlugin\n });\n\n hljs.debugMode = function() { SAFE_MODE = false; };\n hljs.safeMode = function() { SAFE_MODE = true; };\n hljs.versionString = version;\n\n hljs.regex = {\n concat: concat,\n lookahead: lookahead,\n either: either,\n optional: optional,\n anyNumberOfTimes: anyNumberOfTimes\n };\n\n for (const key in MODES) {\n // @ts-ignore\n if (typeof MODES[key] === \"object\") {\n // @ts-ignore\n deepFreeze$1(MODES[key]);\n }\n }\n\n // merge all the modes/regexes into our main object\n Object.assign(hljs, MODES);\n\n return hljs;\n};\n\n// export an \"instance\" of the highlighter\nvar highlight = HLJS({});\n\nmodule.exports = highlight;\nhighlight.HighlightJS = highlight;\nhighlight.default = highlight;\n","/*\nLanguage: JSON\nDescription: JSON (JavaScript Object Notation) is a lightweight data-interchange format.\nAuthor: Ivan Sagalaev <maniac@softwaremaniacs.org>\nWebsite: http://www.json.org\nCategory: common, protocols, web\n*/\n\nfunction json(hljs) {\n const ATTRIBUTE = {\n className: 'attr',\n begin: /\"(\\\\.|[^\\\\\"\\r\\n])*\"(?=\\s*:)/,\n relevance: 1.01\n };\n const PUNCTUATION = {\n match: /[{}[\\],:]/,\n className: \"punctuation\",\n relevance: 0\n };\n // normally we would rely on `keywords` for this but using a mode here allows us\n // to use the very tight `illegal: \\S` rule later to flag any other character\n // as illegal indicating that despite looking like JSON we do not truly have\n // JSON and thus improve false-positively greatly since JSON will try and claim\n // all sorts of JSON looking stuff\n const LITERALS = { beginKeywords: [\n \"true\",\n \"false\",\n \"null\"\n ].join(\" \") };\n\n return {\n name: 'JSON',\n contains: [\n ATTRIBUTE,\n PUNCTUATION,\n hljs.QUOTE_STRING_MODE,\n LITERALS,\n hljs.C_NUMBER_MODE,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ],\n illegal: '\\\\S'\n };\n}\n\nexport { json as default };\n","import hljs from 'highlight.js/lib/core'\nimport json from 'highlight.js/lib/languages/json'\nimport { marked } from 'marked'\nimport { route } from 'preact-router'\nimport { useCallback, useEffect, useMemo, useState } from 'preact/hooks'\nimport { Ad, Badge, Btn, Footer, Giscus, Icons, Octicon, VersionSwitcher } from '../components/index.js'\nimport config from '../Config.js'\nimport { useLocale, useTitle, useVersion } from '../contexts/index.js'\nimport { useActiveTimeout, useAsync, useHash } from '../hooks/index.js'\nimport type { VersionId } from '../services/index.js'\nimport { parseFrontMatter, versionContent } from '../Utils.js'\n\nconst HASH = '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M6.368 1.01a.75.75 0 01.623.859L6.57 4.5h3.98l.46-2.868a.75.75 0 011.48.237L12.07 4.5h2.18a.75.75 0 010 1.5h-2.42l-.64 4h2.56a.75.75 0 010 1.5h-2.8l-.46 2.869a.75.75 0 01-1.48-.237l.42-2.632H5.45l-.46 2.869a.75.75 0 01-1.48-.237l.42-2.632H1.75a.75.75 0 010-1.5h2.42l.64-4H2.25a.75.75 0 010-1.5h2.8l.46-2.868a.75.75 0 01.858-.622zM9.67 10l.64-4H6.33l-.64 4h3.98z\"></path></svg>'\n\nhljs.registerLanguage('json', json)\n\nmarked.use({\n\thighlight: (code, lang) => {\n\t\tif (lang === '') return undefined\n\t\treturn hljs.highlight(code, { language: lang }).value\n\t},\n})\n\ninterface Props {\n\tpath?: string\n\tid?: string\n}\nexport function Guide({ id }: Props) {\n\tconst { locale } = useLocale()\n\tconst { version, changeVersion } = useVersion()\n\tconst { changeTitle } = useTitle()\n\n\tconst { value: content, refresh } = useAsync(async () => {\n\t\tconst res = await fetch(`../../guides/${id}.md`)\n\t\treturn await res.text()\n\t}, [id])\n\n\tif ((import.meta as any).hot) {\n\t\t(import.meta as any).hot.on('guide-update', (updateId: string) => {\n\t\t\tif (id === updateId) refresh()\n\t\t})\n\t}\n\n\tconst frontMatter = useMemo(() => {\n\t\tif (!content) return undefined\n\t\tconst data = parseFrontMatter(content)\n\t\tchangeTitle(data?.title, data?.versions)\n\t\treturn data\n\t}, [content])\n\n\tconst allowedVersions = useMemo(() => {\n\t\tconst orderedVersions = config.versions.map(v => v.id)\n\t\treturn (frontMatter?.versions as VersionId[])\n\t\t\t?.sort((a, b) => orderedVersions.indexOf(b) - orderedVersions.indexOf(a))\n\t}, [frontMatter?.versions])\n\n\tconst guideVersion = useMemo(() => {\n\t\tif (!allowedVersions) return version\n\t\tif (allowedVersions.includes(version)) return version\n\t\treturn allowedVersions[0]\n\t}, [version, frontMatter?.versions])\n\n\tconst html = useMemo(() => {\n\t\tif (!content) return undefined\n\t\tconst headings: marked.Tokens.Heading[] = []\n\t\tlet insertedToc = false\n\t\tmarked.use({\n\t\t\textensions: [\n\t\t\t\t{\n\t\t\t\t\tname: 'styledCode',\n\t\t\t\t\tlevel: 'inline',\n\t\t\t\t\tstart(src) {\n\t\t\t\t\t\treturn src.match(/\\b[fsnj]`/)?.index ?? -1\n\t\t\t\t\t},\n\t\t\t\t\ttokenizer(src) {\n\t\t\t\t\t\tconst match = src.match(/^([fsnj])`([^`]+)`/)\n\t\t\t\t\t\tif (match) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\ttype: 'styledCode',\n\t\t\t\t\t\t\t\traw: match[0],\n\t\t\t\t\t\t\t\tprefix: match[1],\n\t\t\t\t\t\t\t\ttext: match[2],\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn undefined\n\t\t\t\t\t},\n\t\t\t\t\trenderer(token) {\n\t\t\t\t\t\tlet content = token.text\n\t\t\t\t\t\tlet c = {\n\t\t\t\t\t\t\tf: 'hljs-attr',\n\t\t\t\t\t\t\ts: 'hljs-string',\n\t\t\t\t\t\t\tn: 'hljs-number',\n\t\t\t\t\t\t}[token.prefix as string]\n\t\t\t\t\t\tif (token.prefix === 'j') {\n\t\t\t\t\t\t\tcontent = hljs.highlight('json', token.text).value\n\t\t\t\t\t\t\tc = 'language-json'\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn `<code${c ? ` class=\"${c}\"` : ''}>${content}</code>`\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\twalkTokens(token) {\n\t\t\t\tif (token.type === 'heading') {\n\t\t\t\t\theadings.push(token)\n\t\t\t\t}\n\t\t\t},\n\t\t\trenderer: {\n\t\t\t\tlink(href, title, text) {\n\t\t\t\t\tif (href === null) return text\n\t\t\t\t\tconst title2 = title ? ` title=\"${title}\"` : '' \n\t\t\t\t\tconst target = href?.match(/^https?:\\/\\//) ? ' target=\"_blank\"' : ''\n\t\t\t\t\treturn `<a href=\"${href}\"${title2}${target}>${text}</a>`\n\t\t\t\t},\n\t\t\t\theading(text, level, raw, slugger) {\n\t\t\t\t\tlet toc = ''\n\t\t\t\t\tif (!insertedToc) {\n\t\t\t\t\t\ttoc = `<ol class=\"guide-toc\">${headings.filter(t => t.depth === 2).map(t => {\n\t\t\t\t\t\t\tconst id = slugger.slug(t.raw.match(/^#+ (.*)/)?.[1] ?? '', { dryrun: true })\n\t\t\t\t\t\t\tconst text = t.text.replaceAll('`', '')\n\t\t\t\t\t\t\treturn `<li><a href=\"#${id}\">${text}</a></li>`\n\t\t\t\t\t\t}).join('')}</ol>`\n\t\t\t\t\t\tinsertedToc = true\n\t\t\t\t\t}\n\t\t\t\t\tconst id = slugger.slug(raw)\n\t\t\t\t\tconst link = `<span id=\"guide-${id}\" href=\"?version=${version}#${id}\">${HASH}</span>`\n\t\t\t\t\treturn `${toc}<h${level}>${link}${text}</h${level}>`\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tconst guide = content.substring(content.indexOf('---', 3) + 3)\n\t\tconst versionedContent = versionContent(guide, guideVersion)\n\t\treturn marked(versionedContent, { version: '1.19' } as any)\n\t}, [guideVersion, content])\n\n\tconst [hash, setHash] = useHash()\n\n\tconst scrollToHeading = useCallback(() => {\n\t\tif (!html) return\n\t\tconst heading = document.querySelector(`[id=guide-${hash.slice(1)}]`)\n\t\tif (heading) {\n\t\t\tconst top = heading.getBoundingClientRect().top + window.scrollY\n\t\t\twindow.scrollTo({ top: top - 68, behavior: 'smooth' })\n\t\t}\n\t}, [html, hash])\n\n\tuseEffect(() => {\n\t\tscrollToHeading()\n\t}, [html === undefined, hash])\n\n\tconst clickGuideContent = useCallback((e: MouseEvent) => {\n\t\tif (!(e.target instanceof HTMLSpanElement)) return\n\t\tconst targetHash = '#' + e.target.id.replace(/^guide-/, '')\n\t\tchangeVersion(version, false, true)\n\t\tsetHash(targetHash)\n\t\tif (targetHash === hash) {\n\t\t\tscrollToHeading()\n\t\t}\n\t}, [scrollToHeading, hash, version])\n\n\tconst [shareActive, shareSuccess] = useActiveTimeout()\n\n\tconst onShare = useCallback(() => {\n\t\tconst url = `${location.origin}/guides/${id}/?version=${version}`\n\t\tnavigator.clipboard.writeText(url)\n\t\tshareSuccess()\n\t}, [id, version])\n\n\tconst onClickTag = useCallback((tag: string) => {\n\t\troute(`/guides/?tags=${tag}`)\n\t}, [])\n\n\tconst [largeWidth] = useState(window.innerWidth > 600)\n\n\treturn <main>\n\t\t<div class=\"container guide\">\n\t\t\t<div class=\"navigation\">\n\t\t\t\t<a class=\"btn btn-link\" href=\"/guides/\">\n\t\t\t\t\t{Octicon.arrow_left}\n\t\t\t\t\t<span>{locale('guides.all')}</span>\n\t\t\t\t</a>\n\t\t\t\t<a class=\"btn btn-link\" href=\"/worldgen/\">\n\t\t\t\t\t{Icons.worldgen}\n\t\t\t\t\t<span>{locale('worldgen')}</span>\n\t\t\t\t</a>\n\t\t\t\t<div class=\"navigation-divider\" />\n\t\t\t\t<Btn icon={shareActive ? 'check' : 'link'} label={locale('share')} onClick={onShare} active={shareActive} tooltip={locale(shareActive ? 'copied' : 'copy_share')} class=\"guide-share\" />\n\t\t\t\t{allowedVersions && <VersionSwitcher value={guideVersion} allowed={allowedVersions} onChange={changeVersion} />}\n\t\t\t</div>\n\t\t\t{(frontMatter?.tags && frontMatter.tags.length > 0) && <div class=\"badges-list\">\n\t\t\t\t{frontMatter.tags.map((tag: string) =>\n\t\t\t\t\t<Badge label={tag} active onClick={() => onClickTag(tag)} />\n\t\t\t\t)}\n\t\t\t</div>}\n\t\t\t{html && <>\n\t\t\t\t<Ad id=\"guide\" type={largeWidth ? 'image' : 'text'} />\n\t\t\t\t<div class=\"guide-content\" dangerouslySetInnerHTML={{ __html: html }} onClick={clickGuideContent}></div>\n\t\t\t\t<Giscus />\n\t\t\t</>}\n\t\t</div>\n\t\t<Footer />\n\t</main>\n}\n","import { useMemo, useState } from 'preact/hooks'\nimport { Badge, Footer, GuideCard, TextInput, VersionSwitcher } from '../components/index.js'\nimport { useLocale, useTitle, useVersion } from '../contexts/index.js'\nimport { useTags } from '../hooks/index.js'\nimport { getGuides } from '../services/Guides.js'\n\ninterface Props {\n\tpath?: string\n}\nexport function Guides({}: Props) {\n\tconst { locale } = useLocale()\n\tconst { version, changeVersion } = useVersion()\n\tuseTitle(locale('title.guides'))\n\n\tconst [search, setSearch] = useState('')\n\tconst [activeTags, toggleTag] = useTags()\n\n\tconst [versionFilter, setVersionFiler] = useState(false)\n\n\tconst versionedGuides = useMemo(() => {\n\t\tif (versionFilter === false) return getGuides()\n\t\treturn getGuides().filter(guide => {\n\t\t\treturn guide.versions?.includes(version)\n\t\t})\n\t}, [version, versionFilter])\n\n\tconst filteredGuides = useMemo(() => {\n\t\tconst query = search.split(' ').map(q => q.trim().toLowerCase()).filter(q => q.length > 0)\n\t\treturn versionedGuides.filter(guide => {\n\t\t\tif (!activeTags.every(tag => guide.tags?.includes(tag))) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tconst content = guide.tags?.join(' ') + ' ' + guide.title.toLowerCase()\n\t\t\treturn query.every(q => {\n\t\t\t\tif (q.startsWith('!')) {\n\t\t\t\t\treturn q.length === 1 || !content.includes(q.slice(1))\n\t\t\t\t}\n\t\t\t\treturn content.includes(q)\n\t\t\t})\n\t\t})\n\t}, [versionedGuides, search, activeTags])\n\n\treturn <main>\n\t\t<div class=\"container guides\">\n\t\t\t<div class=\"navigation\">\n\t\t\t\t<TextInput class=\"btn btn-input query-search\" placeholder={locale('guides.search')} value={search} onChange={setSearch} />\n\t\t\t\t<VersionSwitcher value={versionFilter ? version : undefined} onChange={v => {changeVersion(v); setVersionFiler(true)}} hasAny onAny={() => setVersionFiler(false)} />\n\t\t\t</div>\n\t\t\t{activeTags.length > 0 && <div class=\"badges-list\">\n\t\t\t\t{activeTags.map(tag => <Badge label={tag} onClick={() => toggleTag(tag)} />)}\n\t\t\t</div>}\n\t\t\t<div class=\"card-column\">\n\t\t\t\t{versionedGuides.length === 0 ? <>\n\t\t\t\t\t<span class=\"note\">{locale('guides.no_results.version')}</span>\n\t\t\t\t</> : filteredGuides.length === 0 ? <>\n\t\t\t\t\t<span class=\"note\">{locale('guides.no_results.query')}</span>\n\t\t\t\t</> : filteredGuides.map(g =>\n\t\t\t\t\t<GuideCard id={g.id} activeTags={activeTags} toggleTag={toggleTag} />\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</div>\n\t\t<Footer />\n\t</main>\n}\n","import { useMemo } from 'preact/hooks'\nimport { ChangelogEntry, Footer, GeneratorCard, Giscus, GuideCard, ToolCard, ToolGroup } from '../components/index.js'\nimport { useLocale, useTitle } from '../contexts/index.js'\nimport { useAsync } from '../hooks/useAsync.js'\nimport { useMediaQuery } from '../hooks/useMediaQuery.js'\nimport { fetchChangelogs, fetchVersions } from '../services/DataFetcher.js'\nimport { Store } from '../Store.js'\n\nconst MIN_FAVORITES = 2\nconst MAX_FAVORITES = 5\n\ninterface Props {\n\tpath?: string,\n}\nexport function Home({}: Props) {\n\tconst { locale } = useLocale()\n\tuseTitle(locale('title.home'))\n\n\tconst smallScreen = useMediaQuery('(max-width: 580px)')\n\n\treturn <main>\n\t\t<div class=\"container\">\n\t\t\t<div class=\"card-group\">\n\t\t\t\t<div class=\"card-column\">\n\t\t\t\t\t<PopularGenerators />\n\t\t\t\t\t{smallScreen && <FavoriteGenerators />}\n\t\t\t\t\t<Changelog />\n\t\t\t\t\t{smallScreen && <Guides />}\n\t\t\t\t\t<Versions />\n\t\t\t\t\t{smallScreen && <Tools />}\n\t\t\t\t</div>\n\t\t\t\t{!smallScreen && <div class=\"card-column\">\n\t\t\t\t\t<FavoriteGenerators />\n\t\t\t\t\t<Guides />\n\t\t\t\t\t<Tools />\n\t\t\t\t</div>}\n\t\t\t</div>\n\t\t\t<Giscus />\n\t\t\t<Footer />\n\t\t</div>\n\t</main>\n}\n\nfunction PopularGenerators() {\n\tconst { locale } = useLocale()\n\treturn <ToolGroup title={locale('generators.popular')} link=\"/generators/\">\n\t\t<GeneratorCard minimal id=\"loot_table\" />\n\t\t<GeneratorCard minimal id=\"advancement\" />\n\t\t<GeneratorCard minimal id=\"predicate\" />\n\t\t<ToolCard title={locale('worldgen')} link=\"/worldgen/\" titleIcon=\"worldgen\" />\n\t\t<ToolCard title={locale('generators.all')} link=\"/generators/\" titleIcon=\"arrow_right\" />\n\t</ToolGroup>\n}\n\nfunction FavoriteGenerators() {\n\tconst { locale } = useLocale()\n\n\tconst favorites = useMemo(() => {\n\t\tconst history: string[] = []\n\t\tfor (const id of Store.getGeneratorHistory().reverse()) {\n\t\t\tif (!history.includes(id)) {\n\t\t\t\thistory.push(id)\n\t\t\t}\n\t\t}\n\t\treturn history.slice(0, MAX_FAVORITES)\n\t}, [])\n\n\tif (favorites.length < MIN_FAVORITES) return <></>\n\n\treturn <ToolGroup title={locale('generators.recent')}>\n\t\t{favorites.map(f => <GeneratorCard minimal id={f} />)}\n\t</ToolGroup>\n}\n\nfunction Guides() {\n\tconst { locale } = useLocale()\n\n\treturn <ToolGroup title={locale('guides')} link=\"/guides/\" titleIcon=\"arrow_right\">\n\t\t<GuideCard minimal id=\"adding-custom-structures\" />\n\t\t<GuideCard minimal id=\"noise-router\" />\n\t</ToolGroup>\n}\n\nfunction Tools() {\n\tconst { locale } = useLocale()\n\n\treturn <ToolGroup title={locale('tools')}>\n\t\t<ToolCard title=\"Report Inspector\" icon=\"report\"\n\t\t\tlink=\"https://misode.github.io/report/\"\n\t\t\tdesc=\"Analyse your performance reports\" />\n\t\t<ToolCard title=\"Minecraft Sounds\" icon=\"sounds\"\n\t\t\tlink=\"/sounds/\"\n\t\t\tdesc=\"Browse through and mix all the vanilla sounds\" />\n\t\t<ToolCard title=\"Data Pack Upgrader\"\n\t\t\tlink=\"https://misode.github.io/upgrader/\"\n\t\t\tdesc=\"Convert your data packs from 1.16 to 1.19\" />\n\t</ToolGroup>\n}\n\nfunction Versions() {\n\tconst { locale } = useLocale()\n\n\tconst { value: versions } = useAsync(fetchVersions, [])\n\tconst release = useMemo(() => versions?.find(v => v.type === 'release'), [versions])\n\n\treturn <ToolGroup title={locale('versions.minecraft_versions')} link=\"/versions/\" titleIcon=\"arrow_right\">\n\t\t{(versions?.[0] && release) && <>\n\t\t\t{versions[0].id !== release.id && (\n\t\t\t\t<ToolCard title={versions[0].name} link={`/versions/?id=${versions[0].id}`} desc={locale('versions.latest_snapshot')} />\n\t\t\t)}\n\t\t\t<ToolCard title={release.name} link={`/versions/?id=${release.id}`} desc={locale('versions.latest_release')} />\n\t\t</>}\n\t</ToolGroup>\n}\n\nfunction Changelog() {\n\tconst { locale } = useLocale()\n\n\tconst hugeScreen = useMediaQuery('(min-width: 960px)')\n\n\tconst { value: changes } = useAsync(fetchChangelogs, [])\n\tconst latestChanges = useMemo(() => changes?.sort((a, b) => b.order - a.order).slice(0, 2), [changes])\n\n\treturn <ToolGroup title={locale('changelog')} link=\"/changelog/\" titleIcon=\"git_commit\">\n\t\t{latestChanges?.map(change => <ChangelogEntry minimal={!hugeScreen} change={change} />)}\n\t</ToolGroup>\n}\n","import { Footer, GeneratorList } from '../components/index.js'\nimport { useLocale, useTitle } from '../contexts/index.js'\n\ninterface Props {\n\tpath?: string\n}\nexport function Partners({}: Props) {\n\tconst { locale } = useLocale()\n\tuseTitle(locale('title.partners'))\n\n\treturn <main>\n\t\t<div class=\"container\">\n\t\t\t<GeneratorList predicate={gen => gen.partner !== undefined} />\n\t\t</div>\n\t\t<Footer donate={false} />\n\t</main>\n}\n","import type { Howl, HowlOptions } from 'howler'\nimport { useEffect, useMemo, useRef, useState } from 'preact/hooks'\nimport { Btn, ErrorPanel, Footer, SoundConfig, TextInput, VersionSwitcher } from '../components/index.js'\nimport { useLocale, useTitle, useVersion } from '../contexts/index.js'\nimport { useAsync } from '../hooks/index.js'\nimport { fetchSounds } from '../services/index.js'\nimport { hexId } from '../Utils.js'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Sounds({}: Props) {\n\tconst { locale } = useLocale()\n\tconst { version, changeVersion } = useVersion()\n\tuseTitle(locale('title.sounds'))\n\n\tconst [howler, setHowler] = useState<undefined | ((options: HowlOptions) => Howl)>(undefined)\n\tuseEffect(() => {\n\t\t(async () => {\n\t\t\tconst howler = await import('howler')\n\t\t\tsetHowler(() => (options: HowlOptions) => new howler.Howl(options))\n\t\t})()\n\t}, [])\n\n\tconst { value: sounds, error } = useAsync(async () => {\n\t\treturn await fetchSounds(version)\n\t}, [version])\n\tconst soundKeys = useMemo(() => Object.keys(sounds ?? {}), [sounds])\n\n\tconst [search, setSearch] = useState('')\n\tconst [configs, setConfigs] = useState<SoundConfig[]>([])\n\tconst addConfig = () => {\n\t\tsetConfigs([{ id: hexId(), sound: search, delay: 0, pitch: 1, volume: 1 }, ...configs])\n\t}\n\tconst editConfig = (id: string) => (changes: Partial<SoundConfig>) => {\n\t\tsetConfigs(configs.map(c => c.id === id ? { ...c, ...changes } : c))\n\t}\n\tconst deleteConfig = (id: string) => () => {\n\t\tsetConfigs(configs.filter(c => c.id !== id))\n\t}\n\n\tconst [delayedPlay, setDelayedPlay] = useState(0)\n\tconst playAll = () => {\n\t\tsetDelayedPlay(delayedPlay + 1)\n\t}\n\n\tconst download = useRef<HTMLAnchorElement>(null)\n\tconst downloadFunction = () => {\n\t\tif (!download.current) return\n\t\tconst hasDelay = configs.some(c => c.delay > 0)\n\t\tconst content = configs\n\t\t\t.sort((a, b) => a.delay - b.delay)\n\t\t\t.map(c => `${hasDelay ? `execute if score @s delay matches ${c.delay} run ` : ''}playsound minecraft:${c.sound} master @s ~ ~ ~ ${c.volume} ${c.pitch}`)\n\t\t\t.join('\\n')\n\t\tdownload.current.setAttribute('href', 'data:text/plain;charset=utf-8,' + content + '%0A')\n\t\tdownload.current.setAttribute('download', 'sounds.mcfunction')\n\t\tdownload.current.click()\n\t}\n\n\treturn <main>\n\t\t{error && <ErrorPanel error={error} />}\n\t\t{soundKeys.length > 0 && <>\n\t\t\t<div class=\"sounds-controls\">\n\t\t\t\t<div class=\"sound-search-group\">\n\t\t\t\t\t<TextInput class=\"btn btn-input sound-search\" list=\"sound-list\" placeholder={locale('sounds.search')}\n\t\t\t\t\t\tvalue={search} onChange={setSearch} onEnter={addConfig} />\n\t\t\t\t\t<Btn icon=\"plus\" tooltip={locale('sounds.add_sound')} class=\"add-sound\" onClick={addConfig} />\n\t\t\t\t</div>\n\t\t\t\t{configs.length > 1 && <Btn icon=\"play\" label={ locale('sounds.play_all')} class=\"play-all-sounds\" onClick={playAll} />}\n\t\t\t\t<div class=\"spacer\"></div>\n\t\t\t\t<Btn icon=\"download\" label={locale('download')} tooltip={locale('sounds.download_function')} tooltipLoc=\"se\" class=\"download-sounds\" onClick={downloadFunction} />\n\t\t\t\t<VersionSwitcher value={version} onChange={changeVersion} />\n\t\t\t</div>\n\t\t\t<div class=\"sounds\">\n\t\t\t\t{sounds && howler && configs.map(c =>\n\t\t\t\t\t<SoundConfig key={c.id} {...c} {...{ howler, sounds, delayedPlay }} onEdit={editConfig(c.id)} onDelete={deleteConfig(c.id)} />\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t<a ref={download} style=\"display: none;\"></a>\n\t\t\t<datalist id=\"sound-list\">\n\t\t\t\t{soundKeys.map(s => <option key={s} value={s} />)}\n\t\t\t</datalist>\n\t\t</>}\n\t\t<Footer donate={false} />\n\t</main>\n}\n","import { BtnLink, ErrorPanel, Footer, VersionDetail, VersionList } from '../components/index.js'\nimport { useLocale, useTitle } from '../contexts/index.js'\nimport { useAsync, useSearchParam } from '../hooks/index.js'\nimport type { VersionMeta } from '../services/index.js'\nimport { fetchVersions } from '../services/index.js'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Versions({}: Props) {\n\tconst { locale } = useLocale()\n\n\tconst { value: versions, error } = useAsync(fetchVersions, [])\n\n\tconst [selectedId] = useSearchParam('id')\n\tconst selected = (versions ?? []).find(v => v.id === selectedId)\n\n\tuseTitle(\n\t\tselected ? `Minecraft ${selected.name}` : 'Versions Explorer',\n\t\tselected ? [] : undefined,\n\t\tselected ? 'Changes and metadata' : undefined)\n\n\tconst nextVersion = selected && getOffsetVersion(versions ?? [], selected, -1)\n\tconst previousVersion = selected && getOffsetVersion(versions ?? [], selected, 1)\n\n\treturn <main>\n\t\t{error && <ErrorPanel error={error} />}\n\t\t<div class=\"container\">\n\t\t\t{selectedId ? <>\n\t\t\t\t<div class=\"navigation\">\n\t\t\t\t\t<BtnLink link=\"/versions/\" icon=\"three_bars\" label={locale('versions.all')} />\n\t\t\t\t\t<BtnLink link={previousVersion ? `/versions/?id=${previousVersion.id}` : undefined}\n\t\t\t\t\t\ticon=\"arrow_left\" label={locale('versions.previous')} />\n\t\t\t\t\t<BtnLink link={nextVersion ? `/versions/?id=${nextVersion.id}` : undefined} \n\t\t\t\t\t\ticon=\"arrow_right\" label={locale('versions.next')} swapped />\n\t\t\t\t</div>\n\t\t\t\t<VersionDetail id={selectedId} version={selected} />\n\t\t\t</> : <>\n\t\t\t\t<VersionList versions={versions} link={id => `/versions/?id=${id}`} navigation={(\n\t\t\t\t\t<BtnLink link=\"/changelog\" icon=\"git_commit\" label={locale('versions.technical_changes')} />\n\t\t\t\t)} />\n\t\t\t</>}\n\t\t</div>\n\t\t<Footer donate={false} />\n\t</main>\n}\n\nfunction getOffsetVersion(versions: VersionMeta[], current: VersionMeta, offset: number) {\n\tconst currentIndex = versions.findIndex(v => v.id === current.id)\n\tconst offsetIndex = currentIndex + offset\n\tif (offsetIndex < 0 || offsetIndex >= versions.length) {\n\t\treturn undefined\n\t}\n\treturn versions[offsetIndex]\n}\n","import { Footer, GeneratorCard, GeneratorList, GuideCard, ToolGroup } from '../components/index.js'\nimport { useLocale, useTitle } from '../contexts/index.js'\n\ninterface Props {\n\tpath?: string\n}\nexport function Worldgen({}: Props) {\n\tconst { locale } = useLocale()\n\tuseTitle(locale('title.worldgen'))\n\n\treturn <main>\n\t\t<div class=\"container worldgen\">\n\t\t\t<div class=\"card-group\">\n\t\t\t\t<ToolGroup title={locale('generators.popular')}>\n\t\t\t\t\t<GeneratorCard minimal id=\"dimension\" />\n\t\t\t\t\t<GeneratorCard minimal id=\"worldgen/biome\" />\n\t\t\t\t\t<GeneratorCard minimal id=\"worldgen/noise_settings\" />\n\t\t\t\t\t<GeneratorCard minimal id=\"worldgen/configured_feature\" />\n\t\t\t\t\t<GeneratorCard minimal id=\"worldgen/placed_feature\" />\n\t\t\t\t</ToolGroup>\n\t\t\t\t<ToolGroup title={locale('guides')} link=\"/guides/?tags=worldgen\" titleIcon=\"arrow_right\">\n\t\t\t\t\t<GuideCard id=\"adding-custom-structures\" />\n\t\t\t\t\t<GuideCard id=\"placed-features\" />\n\t\t\t\t</ToolGroup>\n\t\t\t</div>\n\t\t\t<GeneratorList predicate={gen => gen.tags?.includes('worldgen')} />\n\t\t</div>\n\t\t<Footer />\n\t</main>\n}\n","import type { RouterOnChangeArgs } from 'preact-router'\nimport { Router } from 'preact-router'\nimport '../styles/global.css'\nimport '../styles/nodes.css'\nimport { Analytics } from './Analytics.js'\nimport { Header } from './components/index.js'\nimport { Changelog, Generator, Generators, Guide, Guides, Home, Partners, Sounds, Versions, Worldgen } from './pages/index.js'\nimport { cleanUrl } from './Utils.js'\n\nexport function App() {\n\tconst changeRoute = (e: RouterOnChangeArgs) => {\n\t\twindow.dispatchEvent(new CustomEvent('replacestate'))\n\t\t// Needs a timeout to ensure the title is set correctly\n\t\tsetTimeout(() => Analytics.pageview(cleanUrl(e.url)))\n\t}\n\n\treturn <>\n\t\t<Header />\n\t\t<Router onChange={changeRoute}>\n\t\t\t<Home path=\"/\" />\n\t\t\t<Generators path=\"/generators\" />\n\t\t\t<Worldgen path=\"/worldgen\" />\n\t\t\t<Partners path=\"/partners\" />\n\t\t\t<Sounds path=\"/sounds\" />\n\t\t\t<Changelog path=\"/changelog\" />\n\t\t\t<Versions path=\"/versions\" />\n\t\t\t<Guides path=\"/guides\" />\n\t\t\t<Guide path=\"/guides/:id\" />\n\t\t\t<Generator default />\n\t\t</Router>\n\t</>\n}\n","import { render } from 'preact'\nimport '../styles/global.css'\nimport '../styles/nodes.css'\nimport { App } from './App.js'\nimport { LocaleProvider, ProjectProvider, StoreProvider, ThemeProvider, TitleProvider, VersionProvider } from './contexts/index.js'\n\nfunction Main() {\n\treturn (\n\t\t<StoreProvider>\n\t\t\t<LocaleProvider>\n\t\t\t\t<ThemeProvider>\n\t\t\t\t\t<VersionProvider>\n\t\t\t\t\t\t<TitleProvider>\n\t\t\t\t\t\t\t<ProjectProvider>\n\t\t\t\t\t\t\t\t<App />\n\t\t\t\t\t\t\t</ProjectProvider>\n\t\t\t\t\t\t</TitleProvider>\n\t\t\t\t\t</VersionProvider>\n\t\t\t\t</ThemeProvider>\n\t\t\t</LocaleProvider>\n\t\t</StoreProvider>\n\t)\n}\n\nrender(<Main />, document.body)\n"],"file":"assets/index.d528c217.js"} \ No newline at end of file diff --git a/assets/index.d48dc598.js b/assets/index.f2087122.js similarity index 99% rename from assets/index.d48dc598.js rename to assets/index.f2087122.js index 6af60945..1590a73a 100644 --- a/assets/index.d48dc598.js +++ b/assets/index.f2087122.js @@ -1,2 +1,2 @@ -var Ee=Object.defineProperty,We=Object.defineProperties;var Ge=Object.getOwnPropertyDescriptors;var Le=Object.getOwnPropertySymbols;var Ue=Object.prototype.hasOwnProperty,Ve=Object.prototype.propertyIsEnumerable;var Be=(o,r,e)=>r in o?Ee(o,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):o[r]=e,k=(o,r)=>{for(var e in r||(r={}))Ue.call(r,e)&&Be(o,e,r[e]);if(Le)for(var e of Le(r))Ve.call(r,e)&&Be(o,e,r[e]);return o},ze=(o,r)=>We(o,Ge(r));import{v as w,u as ee}from"./index.41a3dfd7.js";function He(o,r){return r.forEach(function(e){e&&typeof e!="string"&&!Array.isArray(e)&&Object.keys(e).forEach(function(t){if(t!=="default"&&!(t in o)){var d=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(o,t,d.get?d:{enumerable:!0,get:function(){return e[t]}})}})}),Object.freeze(Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}))}var G={},ie={};Object.defineProperty(ie,"__esModule",{value:!0});ie.initCollections=void 0;function Ke(o){o.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"]),o.register("dimension",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),o.register("dimension_type",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),o.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"]),o.register("slot",["mainhand","offhand","head","chest","legs","feet"]),o.register("gamemode",["survival","creative","adventure","spectator"]),o.register("worldgen/noise_settings",["minecraft:overworld","minecraft:nether","minecraft:end","minecraft:amplified","minecraft:caves","minecraft:floating_islands"]),o.register("entity_source",["this","killer","direct_killer","killer_player"]),o.register("copy_source",["block_entity","this","killer","killer_player"]),o.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),o.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"]),o.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"]),o.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"]),o.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"]),o.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"]),o.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"]),o.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end","underground"]),o.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),o.register("generation_step",["air","liquid"]),o.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"]),o.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"]),o.register("dye_color",["white","orange","magenta","light_blue","yellow","lime","pink","gray","light_gray","cyan","purple","blue","brown","green","red","black"]),o.register("direction",["down","up","north","east","south","west"]),o.register("axis",["x","y","z"]),o.register("display_position",["firstperson_righthand","firstperson_lefthand","thirdperson_righthand","thirdperson_lefthand","gui","head","ground","fixed"]),o.register("gui_light",["front","side"]),o.register("item_model_predicates",["angle","blocking","broken","cast","charged","cooldown","custom_model_data","damage","damaged","firework","lefthanded","pull","pulling","throwing","time"]),o.register("glyph_provider_type",["bitmap","ttf","legacy_unicode"]),o.register("cat_texture",["textures/entity/cat/tabby.png","textures/entity/cat/black.png","textures/entity/cat/red.png","textures/entity/cat/siamese.png","textures/entity/cat/british_shorthair.png","textures/entity/cat/calico.png","textures/entity/cat/persian.png","textures/entity/cat/ragdoll.png","textures/entity/cat/white.png","textures/entity/cat/jellie.png","textures/entity/cat/all_black.png"])}ie.initCollections=Ke;var ae={},ne={};Object.defineProperty(ne,"__esModule",{value:!0});ne.initAdvancementSchemas=void 0;const s=w;function Xe(o,r){const e=s.Reference.bind(void 0,o),t=s.StringNode.bind(void 0,r),d=(0,s.ChoiceNode)([{type:"object",node:(0,s.Opt)(e("entity_predicate")),change:a=>{var n,N;return(N=(n=a[0])===null||n===void 0?void 0:n.predicate)!==null&&N!==void 0?N:{}}},{type:"list",node:(0,s.ListNode)(e("condition")),change:a=>[{condition:"minecraft:entity_properties",predicate:a}]}],{context:"conditions"});o.register("advancement",(0,s.Mod)((0,s.ObjectNode)({display:(0,s.Opt)((0,s.Mod)((0,s.ObjectNode)({icon:(0,s.ObjectNode)({item:t({validator:"resource",params:{pool:"item"}}),nbt:(0,s.Opt)(t({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:e("text_component"),description:e("text_component"),background:(0,s.Opt)(t()),frame:(0,s.Opt)(t({enum:["task","challenge","goal"]})),show_toast:(0,s.Opt)((0,s.BooleanNode)()),announce_to_chat:(0,s.Opt)((0,s.BooleanNode)()),hidden:(0,s.Opt)((0,s.BooleanNode)())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:(0,s.Opt)(t({validator:"resource",params:{pool:"$advancement"}})),criteria:(0,s.MapNode)(t(),e("advancement_criteria")),requirements:(0,s.Opt)((0,s.ListNode)((0,s.ListNode)(t()))),rewards:(0,s.Opt)((0,s.ObjectNode)({function:(0,s.Opt)(t({validator:"resource",params:{pool:"$function"}})),loot:(0,s.Opt)((0,s.ListNode)(t({validator:"resource",params:{pool:"$loot_table"}}))),recipes:(0,s.Opt)((0,s.ListNode)(t({validator:"resource",params:{pool:"$recipe"}}))),experience:(0,s.Opt)((0,s.NumberNode)({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),o.register("advancement_criteria",(0,s.ObjectNode)({trigger:t({validator:"resource",params:{pool:r.get("advancement_trigger")}}),conditions:(0,s.Opt)((0,s.ObjectNode)({player:(0,s.Mod)(d,{enabled:a=>a.pop().push("trigger").get()!=="minecraft:impossible"}),[s.Switch]:["pop",{push:"trigger"}],[s.Case]:{"minecraft:bee_nest_destroyed":{block:(0,s.Opt)(t({validator:"resource",params:{pool:"block"}})),num_bees_inside:(0,s.Opt)((0,s.NumberNode)({integer:!0})),item:(0,s.Opt)(e("item_predicate"))},"minecraft:bred_animals":{parent:d,partner:d,child:d},"minecraft:brewed_potion":{potion:(0,s.Opt)(t({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:(0,s.Opt)(t({validator:"resource",params:{pool:"$dimension"}})),to:(0,s.Opt)(t({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:(0,s.Opt)((0,s.ListNode)(d))},"minecraft:construct_beacon":{level:e("int_bounds")},"minecraft:consume_item":{item:(0,s.Opt)(e("item_predicate"))},"minecraft:cured_zombie_villager":{villager:d,zombie:d},"minecraft:effects_changed":{effects:(0,s.Opt)((0,s.MapNode)(t({validator:"resource",params:{pool:"mob_effect"}}),e("status_effect_predicate"))),source:(0,s.Opt)(d)},"minecraft:enter_block":{block:(0,s.Opt)(t({validator:"resource",params:{pool:"block"}})),state:(0,s.Opt)((0,s.MapNode)(t(),t(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:e("int_bounds"),item:(0,s.Opt)(e("item_predicate"))},"minecraft:entity_hurt_player":{damage:(0,s.Opt)(e("damage_predicate"))},"minecraft:entity_killed_player":{entity:d,killing_blow:(0,s.Opt)(e("damage_source_predicate"))},"minecraft:filled_bucket":{item:(0,s.Opt)(e("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:d,item:(0,s.Opt)(e("item_predicate"))},"minecraft:hero_of_the_village":{location:(0,s.Opt)(e("location_predicate"))},"minecraft:inventory_changed":{slots:(0,s.Opt)((0,s.ObjectNode)({empty:e("int_bounds"),occupied:e("int_bounds"),full:e("int_bounds")})),items:(0,s.Opt)((0,s.ListNode)(e("item_predicate")))},"minecraft:item_durability_changed":{delta:e("int_bounds"),durability:e("int_bounds"),item:(0,s.Opt)(e("item_predicate"))},"minecraft:item_used_on_block":{item:(0,s.Opt)(e("item_predicate")),location:(0,s.Opt)(e("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:e("int_bounds"),victims:(0,s.Opt)((0,s.ListNode)(d))},"minecraft:levitation":{distance:e("distance_predicate"),duration:e("int_bounds")},"minecraft:lightning_strike":{lightning:d,bystander:d},"minecraft:location":{location:(0,s.Opt)(e("location_predicate"))},"minecraft:nether_travel":{distance:e("distance_predicate"),entered:(0,s.Opt)(e("location_predicate")),exited:(0,s.Opt)(e("location_predicate"))},"minecraft:placed_block":{block:(0,s.Opt)(t({validator:"resource",params:{pool:"block"}})),state:(0,s.Opt)((0,s.MapNode)(t(),t(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:(0,s.Opt)(e("item_predicate")),location:(0,s.Opt)(e("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:t({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:(0,s.Opt)(e("damage_predicate")),entity:d},"minecraft:player_interacted_with_entity":{item:(0,s.Opt)(e("item_predicate")),entity:d},"minecraft:player_killed_entity":{entity:d,killing_blow:(0,s.Opt)(e("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:t({validator:"resource",params:{pool:"$recipe"}})},"minecraft:slept_in_bed":{location:(0,s.Opt)(e("location_predicate"))},"minecraft:slide_down_block":{block:(0,s.Opt)(t({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:(0,s.Opt)(e("item_predicate"))},"minecraft:summoned_entity":{entity:d},"minecraft:tame_animal":{entity:d},"minecraft:target_hit":{projectile:d,shooter:d,signal_strength:e("int_bounds")},"minecraft:thrown_item_picked_up_by_entity":{entity:d,item:(0,s.Opt)(e("item_predicate"))},"minecraft:used_ender_eye":{distance:e("float_bounds")},"minecraft:used_totem":{item:(0,s.Opt)(e("item_predicate"))},"minecraft:using_item":{item:(0,s.Opt)(e("item_predicate"))},"minecraft:villager_trade":{villager:d,item:(0,s.Opt)(e("item_predicate"))},"minecraft:voluntary_exile":{location:e("location_predicate")}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))}ne.initAdvancementSchemas=Xe;var ce={},de={};Object.defineProperty(de,"__esModule",{value:!0});de.initModelSchemas=void 0;const g=w;function Ze(o,r){g.Reference.bind(void 0,o);const e=g.StringNode.bind(void 0,r),t=(a,n,N)=>(0,g.ListNode)((0,g.NumberNode)({min:n,max:N}),{minLength:a,maxLength:a}),d=(0,g.ChoiceNode)([{type:"alias",match:a=>typeof a=="string"&&a.startsWith("#"),node:e(),change:a=>typeof a=="string"?`#${a}`:"#0"},{type:"reference",match:a=>typeof a=="string",node:e({validator:"resource",params:{pool:"$texture"}}),change:a=>typeof a=="string"?a.replace(/^#/,""):""}],{choiceContext:"texture"});o.register("model",(0,g.Mod)((0,g.ObjectNode)({parent:(0,g.Opt)(e({validator:"resource",params:{pool:"$model"}})),ambientocclusion:(0,g.Opt)((0,g.BooleanNode)()),gui_light:(0,g.Opt)(e({enum:"gui_light"})),textures:(0,g.Opt)((0,g.MapNode)(e(),d)),elements:(0,g.Opt)((0,g.ListNode)((0,g.ObjectNode)({from:t(3,-16,32),to:t(3,-16,32),rotation:(0,g.Opt)((0,g.ObjectNode)({origin:t(3),axis:e({enum:"axis"}),angle:(0,g.NumberEnum)({values:[-45,-22.5,0,22.5,45]}),rescale:(0,g.Opt)((0,g.BooleanNode)())})),shade:(0,g.Opt)((0,g.BooleanNode)()),faces:(0,g.MapNode)(e({enum:"direction"}),(0,g.ObjectNode)({texture:d,uv:(0,g.Opt)(t(4)),cullface:(0,g.Opt)(e({enum:"direction"})),rotation:(0,g.Opt)((0,g.NumberNode)({integer:!0})),tintindex:(0,g.Opt)((0,g.NumberNode)({integer:!0}))}))},{context:"model_element"}))),display:(0,g.Opt)((0,g.MapNode)(e({enum:"display_position"}),(0,g.ObjectNode)({rotation:t(3),translation:t(3,-80,80),scale:t(3,-4,4)},{context:"item_transform"}))),overrides:(0,g.Opt)((0,g.ListNode)((0,g.ObjectNode)({predicate:(0,g.MapNode)(e({enum:"item_model_predicates"}),(0,g.NumberNode)()),model:e({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))}de.initModelSchemas=Ze;var se={};Object.defineProperty(se,"__esModule",{value:!0});se.initBlockDefinitionSchemas=void 0;const x=w;function Ye(o,r){const e=x.Reference.bind(void 0,o),t=x.StringNode.bind(void 0,r);o.register("block_definition",(0,x.Mod)((0,x.ChoiceNode)([{type:"variants",match:a=>a.variants!==void 0,node:(0,x.ObjectNode)({variants:(0,x.MapNode)(t(),e("model_variant"))}),change:a=>({variants:{"":{}}})},{type:"multipart",match:a=>a.multipart!==void 0,node:(0,x.ObjectNode)({multipart:(0,x.ListNode)((0,x.ObjectNode)({when:(0,x.Opt)(e("multipart_condition")),apply:e("model_variant")}))}),change:a=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const d={model:t({validator:"resource",params:{pool:"$model"}}),x:(0,x.Opt)((0,x.NumberEnum)({integer:!0,values:[0,90,180,270]})),y:(0,x.Opt)((0,x.NumberEnum)({integer:!0,values:[0,90,180,270]})),uvlock:(0,x.Opt)((0,x.BooleanNode)())};o.register("model_variant",(0,x.ChoiceNode)([{type:"object",node:(0,x.ObjectNode)(d),change:a=>Array.isArray(a)&&a.length>0?a[0]:{}},{type:"list",node:(0,x.ListNode)((0,x.ObjectNode)(ze(k({},d),{weight:(0,x.Opt)((0,x.NumberNode)({integer:!0,min:1}))}),{context:"model_variant"})),change:a=>[k({weight:1},a)]}],{context:"model_variant"})),o.register("multipart_condition",(0,x.ChoiceNode)([{type:"object",priority:-1,match:()=>!0,node:(0,x.MapNode)(t(),t()),change:a=>typeof a=="object"&&Array.isArray(a==null?void 0:a.OR)&&a.OR.length>0?a.OR[0]:{}},{type:"or",match:a=>typeof a=="object"&&(a==null?void 0:a.OR)!==void 0,node:(0,x.ObjectNode)({OR:(0,x.ListNode)(e("multipart_condition"))}),change:a=>({OR:[a!=null?a:{}]})}],{context:"multipart_condition"}))}se.initBlockDefinitionSchemas=Ye;var me={};Object.defineProperty(me,"__esModule",{value:!0});me.initFontSchemas=void 0;const S=w;function Je(o,r){const e=S.Reference.bind(void 0,o),t=S.StringNode.bind(void 0,r);o.register("font",(0,S.ObjectNode)({providers:(0,S.ListNode)(e("glyph_provider"))},{context:"font"})),o.register("glyph_provider",(0,S.Mod)((0,S.ObjectNode)({type:t({enum:"glyph_provider_type"}),[S.Switch]:[{push:"type"}],[S.Case]:{bitmap:{file:t({validator:"resource",params:{pool:"$texture",suffix:".png"}}),height:(0,S.Opt)((0,S.NumberNode)({integer:!0})),ascent:(0,S.NumberNode)({integer:!0}),chars:(0,S.ListNode)(t(),{minLength:1})},ttf:{file:t({validator:"resource",params:{pool:"$texture",suffix:".png"}}),size:(0,S.Opt)((0,S.NumberNode)()),oversample:(0,S.Opt)((0,S.NumberNode)()),shift:(0,S.Opt)((0,S.ListNode)((0,S.NumberNode)(),{minLength:2,maxLength:2})),skip:(0,S.Opt)((0,S.StringOrList)(t()))},legacy_unicode:{sizes:t(),template:t()}}},{context:"glyph_provider"}),{default:()=>({type:"bitmap"})}))}me.initFontSchemas=Je;Object.defineProperty(ce,"__esModule",{value:!0});ce.initAssetsSchemas=void 0;const Qe=de,et=se,tt=me;function rt(o,r){(0,et.initBlockDefinitionSchemas)(o,r),(0,tt.initFontSchemas)(o,r),(0,Qe.initModelSchemas)(o,r)}ce.initAssetsSchemas=rt;var I={};(function(o){Object.defineProperty(o,"__esModule",{value:!0}),o.initCommonSchemas=o.IntProvider=o.FloatProvider=o.NoiseSettingsPresets=o.DefaultNoiseSettings=o.DimensionTypePresets=o.DefaultDimensionType=o.FunctionCases=o.ConditionCases=void 0;const r=w;o.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},o.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"}}};function e(t,d){const a=r.StringNode.bind(void 0,d),n=r.Reference.bind(void 0,t);t.register("block_state",(0,r.Mod)((0,r.ObjectNode)({Name:a({validator:"resource",params:{pool:"block"}}),Properties:(0,r.Opt)((0,r.MapNode)(a(),a(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),t.register("fluid_state",(0,r.Mod)((0,r.ObjectNode)({Name:a({validator:"resource",params:{pool:"fluid"}}),Properties:(0,r.Opt)((0,r.MapNode)(a(),a()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),t.register("block_pos",(0,r.Mod)((0,r.ListNode)((0,r.NumberNode)({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const N=u=>(0,r.Opt)((0,r.ChoiceNode)([{type:"number",node:(0,r.NumberNode)({integer:u}),change:v=>{var M,O;return v===void 0?0:(O=(M=v.min)!==null&&M!==void 0?M:v.max)!==null&&O!==void 0?O:0}},{type:"object",node:(0,r.ObjectNode)({min:(0,r.Opt)((0,r.NumberNode)({integer:u})),max:(0,r.Opt)((0,r.NumberNode)({integer:u}))},{context:"range"}),change:v=>({min:v!=null?v:0,max:v!=null?v:0})}]));t.register("int_bounds",N(!0)),t.register("float_bounds",N()),t.register("int_range",(0,r.ChoiceNode)([{type:"object",node:(0,r.ObjectNode)({min:(0,r.Opt)(n("number_provider")),max:(0,r.Opt)(n("number_provider"))})},{type:"number",node:(0,r.NumberNode)({integer:!0})}],{context:"range"}));const z=(u,v,M,O,L,B,q)=>{let oe={};L&&Object.keys(q[L]).forEach(F=>{oe[F]=(0,r.Mod)(q[L][F],{enabled:D=>D.push("type").get()===void 0})});const X=(0,r.ObjectNode)(k({type:(0,r.Mod)((0,r.Opt)(a({validator:"resource",params:{pool:u}})),{hidden:()=>!0}),[r.Switch]:[{push:"type"}],[r.Case]:q},oe),{context:B,disableSwitchContext:!0}),Z=[{type:v,node:q[O][M]}];return L&&Z.push({type:"object",priority:-1,node:X}),Object.keys(q).forEach(F=>{Z.push({type:F,match:D=>{var Y;if("minecraft:"+((Y=D==null?void 0:D.type)===null||Y===void 0?void 0:Y.replace(/^minecraft:/,""))===F)return!0;const A=D?Object.keys(D):[];return typeof D=="object"&&((A==null?void 0:A.length)===0||(A==null?void 0:A.length)===1&&(A==null?void 0:A[0])==="type")},node:X,change:D=>({type:F})})}),(0,r.ChoiceNode)(Z,{context:B,choiceContext:`${B}.type`})};t.register("number_provider",z("loot_number_provider_type","number","value","minecraft:constant","minecraft:uniform","number_provider",{"minecraft:constant":{value:(0,r.NumberNode)()},"minecraft:uniform":{min:n("number_provider"),max:n("number_provider")},"minecraft:binomial":{n:n("number_provider"),p:n("number_provider")},"minecraft:score":{target:n("scoreboard_name_provider"),score:a({validator:"objective"}),scale:(0,r.Opt)((0,r.NumberNode)())}})),t.register("scoreboard_name_provider",z("loot_score_provider_type","string","target","minecraft:context",null,"score_provider",{"minecraft:fixed":{name:a({validator:"entity",params:{amount:"multiple",type:"entities",isScoreHolder:!0}})},"minecraft:context":{target:(0,r.Mod)(a({enum:"entity_source"}),{default:()=>"this"})}})),t.register("nbt_provider",z("loot_nbt_provider_type","string","target","minecraft:context",null,"nbt_provider",{"minecraft:storage":{source:a({validator:"resource",params:{pool:"$storage"}})},"minecraft:context":{target:(0,r.Mod)(a({enum:"copy_source"}),{default:()=>"this"})}})),o.FloatProvider=u=>z("float_provider_type","number","value","minecraft:constant",null,"float_provider",{"minecraft:constant":{value:(0,r.NumberNode)(u)},"minecraft:uniform":{value:(0,r.ObjectNode)({min_inclusive:(0,r.NumberNode)(u),max_exclusive:(0,r.NumberNode)(u)})},"minecraft:clamped_normal":{value:(0,r.ObjectNode)({min:(0,r.NumberNode)(),max:(0,r.NumberNode)(),mean:(0,r.NumberNode)(),deviation:(0,r.NumberNode)()})},"minecraft:trapezoid":{value:(0,r.ObjectNode)({min:(0,r.NumberNode)(),max:(0,r.NumberNode)(),plateau:(0,r.NumberNode)()})}}),t.register("float_provider",(0,o.FloatProvider)()),o.IntProvider=u=>z("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:(0,r.NumberNode)(k({integer:!0},u))},"minecraft:uniform":{value:(0,r.ObjectNode)({min_inclusive:(0,r.NumberNode)(k({integer:!0},u)),max_inclusive:(0,r.NumberNode)(k({integer:!0},u))})},"minecraft:biased_to_bottom":{value:(0,r.ObjectNode)({min_inclusive:(0,r.NumberNode)(k({integer:!0},u)),max_inclusive:(0,r.NumberNode)(k({integer:!0},u))})},"minecraft:clamped":{value:(0,r.ObjectNode)({min_inclusive:(0,r.NumberNode)(k({integer:!0},u)),max_inclusive:(0,r.NumberNode)(k({integer:!0},u)),source:n("int_provider")})}}),t.register("int_provider",(0,o.IntProvider)()),t.register("vertical_anchor",(0,r.ChoiceNode)(["absolute","above_bottom","below_top"].map(u=>({type:u,match:v=>(v==null?void 0:v[u])!==void 0,change:v=>{var M,O,L;return{[u]:(L=(O=(M=v.absolute)!==null&&M!==void 0?M:v.above_bottom)!==null&&O!==void 0?O:v.below_top)!==null&&L!==void 0?L:0}},node:(0,r.ObjectNode)({[u]:(0,r.NumberNode)({integer:!0,min:-2048,max:2047})})})),{context:"vertical_anchor"})),t.register("height_provider",z("height_provider_type","number","value","minecraft:constant",null,"height_provider",{"minecraft:constant":{value:n("vertical_anchor")},"minecraft:uniform":{min_inclusive:n("vertical_anchor"),max_inclusive:n("vertical_anchor")},"minecraft:biased_to_bottom":{min_inclusive:n("vertical_anchor"),max_inclusive:n("vertical_anchor"),inner:(0,r.Opt)((0,r.NumberNode)({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:n("vertical_anchor"),max_inclusive:n("vertical_anchor"),inner:(0,r.Opt)((0,r.NumberNode)({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:n("vertical_anchor"),max_inclusive:n("vertical_anchor"),plateau:(0,r.Opt)((0,r.NumberNode)({integer:!0}))}})),o.ConditionCases=(u=a({enum:"entity_source"}))=>({"minecraft:alternative":{terms:(0,r.ListNode)(n("condition"))},"minecraft:block_state_property":{block:a({validator:"resource",params:{pool:"block"}}),properties:(0,r.MapNode)(a(),a(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:n("damage_source_predicate")},"minecraft:entity_properties":{entity:u,predicate:n("entity_predicate")},"minecraft:entity_scores":{entity:u,scores:(0,r.MapNode)(a({validator:"objective"}),n("int_range"))},"minecraft:inverted":{term:n("condition")},"minecraft:killed_by_player":{inverse:(0,r.Opt)((0,r.BooleanNode)())},"minecraft:location_check":{offsetX:(0,r.Opt)((0,r.NumberNode)({integer:!0})),offsetY:(0,r.Opt)((0,r.NumberNode)({integer:!0})),offsetZ:(0,r.Opt)((0,r.NumberNode)({integer:!0})),predicate:n("location_predicate")},"minecraft:match_tool":{predicate:n("item_predicate")},"minecraft:random_chance":{chance:(0,r.NumberNode)({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:(0,r.NumberNode)({min:0,max:1}),looting_multiplier:(0,r.NumberNode)()},"minecraft:reference":{name:a({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:a({validator:"resource",params:{pool:"enchantment"}}),chances:(0,r.ListNode)((0,r.NumberNode)({min:0,max:1}))},"minecraft:time_check":{value:n("int_range"),period:(0,r.Opt)((0,r.NumberNode)({integer:!0}))},"minecraft:value_check":{value:n("number_provider"),range:n("int_range")},"minecraft:weather_check":{raining:(0,r.Opt)((0,r.BooleanNode)()),thundering:(0,r.Opt)((0,r.BooleanNode)())}}),o.FunctionCases=(u,v=a({enum:"copy_source"}),M=a({enum:"entity_source"}))=>{const O={"minecraft:apply_bonus":{enchantment:a({validator:"resource",params:{pool:"enchantment"}}),formula:a({validator:"resource",params:{pool:d.get("loot_table_apply_bonus_formula")}}),parameters:(0,r.Mod)((0,r.ObjectNode)({bonusMultiplier:(0,r.Mod)((0,r.NumberNode)(),{enabled:B=>B.pop().push("formula").get()==="minecraft:uniform_bonus_count"}),extra:(0,r.Mod)((0,r.NumberNode)(),{enabled:B=>B.pop().push("formula").get()==="minecraft:binomial_with_bonus_count"}),probability:(0,r.Mod)((0,r.NumberNode)(),{enabled:B=>B.pop().push("formula").get()==="minecraft:binomial_with_bonus_count"})}),{enabled:B=>B.push("formula").get()!=="minecraft:ore_drops"})},"minecraft:copy_name":{source:v},"minecraft:copy_nbt":{source:n("nbt_provider"),ops:(0,r.ListNode)((0,r.ObjectNode)({source:a({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:a({validator:"nbt_path",params:{category:"minecraft:item"}}),op:a({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:a({validator:"resource",params:{pool:"block"}}),properties:(0,r.ListNode)(a({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:(0,r.Opt)((0,r.ListNode)(a({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:n("number_provider"),treasure:(0,r.Opt)((0,r.BooleanNode)())},"minecraft:exploration_map":{destination:(0,r.Opt)(a({enum:"map_feature"})),decoration:(0,r.Opt)(a({enum:"map_decoration"})),zoom:(0,r.Opt)((0,r.NumberNode)({integer:!0})),search_radius:(0,r.Opt)((0,r.NumberNode)({integer:!0})),skip_existing_chunks:(0,r.Opt)((0,r.BooleanNode)())},"minecraft:fill_player_head":{entity:M},"minecraft:limit_count":{limit:n("int_range")},"minecraft:looting_enchant":{count:n("number_provider"),limit:(0,r.Opt)((0,r.NumberNode)({integer:!0}))},"minecraft:set_attributes":{modifiers:(0,r.ListNode)(n("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:(0,r.ListNode)((0,r.ObjectNode)({pattern:a({enum:"banner_pattern"}),color:a({enum:"dye_color"})})),append:(0,r.Opt)((0,r.BooleanNode)())},"minecraft:set_contents":{entries:(0,r.ListNode)(n("loot_entry"))},"minecraft:set_count":{count:n("number_provider"),add:(0,r.Opt)((0,r.BooleanNode)())},"minecraft:set_damage":{damage:n("number_provider"),add:(0,r.Opt)((0,r.BooleanNode)())},"minecraft:set_enchantments":{enchantments:(0,r.MapNode)(a({validator:"resource",params:{pool:"enchantment"}}),n("number_provider")),add:(0,r.Opt)((0,r.BooleanNode)())},"minecraft:set_loot_table":{name:a({validator:"resource",params:{pool:"$loot_table"}}),seed:(0,r.Opt)((0,r.NumberNode)({integer:!0}))},"minecraft:set_lore":{entity:(0,r.Opt)(M),lore:(0,r.ListNode)(n("text_component")),replace:(0,r.Opt)((0,r.BooleanNode)())},"minecraft:set_name":{entity:(0,r.Opt)(M),name:(0,r.Opt)(n("text_component"))},"minecraft:set_nbt":{tag:a({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:(0,r.Opt)((0,r.ListNode)((0,r.ObjectNode)({type:a({validator:"resource",params:{pool:"mob_effect"}}),duration:n("number_provider")})))}},L={};return d.get("loot_function_type").forEach(B=>{L[B]=k(k({},O[B]),u)}),L},o.DimensionTypePresets=u=>(0,r.ObjectOrPreset)(a({validator:"resource",params:{pool:"$dimension_type"}}),u,{"minecraft:overworld":o.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}}),o.NoiseSettingsPresets=u=>(0,r.ObjectOrPreset)(a({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),u,{"minecraft:overworld":o.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"}}}})}o.initCommonSchemas=e})(I);var le={};Object.defineProperty(le,"__esModule",{value:!0});le.initConditionSchemas=void 0;const J=w,ot=I;function it(o,r){const e=J.Reference.bind(void 0,o),t=J.StringNode.bind(void 0,r);o.register("predicate",(0,J.ObjectOrList)(e("condition"),{choiceContext:"condition"})),o.register("condition",(0,J.Mod)((0,J.ObjectNode)({condition:t({validator:"resource",params:{pool:"loot_condition_type"}}),[J.Switch]:[{push:"condition"}],[J.Case]:(0,ot.ConditionCases)()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))}le.initConditionSchemas=it;var _e={};Object.defineProperty(_e,"__esModule",{value:!0});_e.initDimensionSchemas=void 0;const b=w,$e=I;function at(o,r){const e=b.Reference.bind(void 0,o),t=b.StringNode.bind(void 0,r),d=a=>(0,b.Mod)(a,{enabled:n=>n.push("preset").get()===void 0});o.register("dimension",(0,b.Mod)((0,b.ObjectNode)({type:(0,$e.DimensionTypePresets)(e("dimension_type")),generator:(0,b.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[b.Switch]:[{push:"type"}],[b.Case]:{"minecraft:noise":{seed:(0,b.NumberNode)({integer:!0}),settings:(0,$e.NoiseSettingsPresets)(e("noise_settings")),biome_source:(0,b.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/biome_source"}}),[b.Switch]:[{push:"type"}],[b.Case]:{"minecraft:fixed":{biome:t({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{seed:(0,b.NumberNode)({integer:!0}),preset:(0,b.Opt)(t({enum:["nether"]})),altitude_noise:d(e("generator_biome_noise")),temperature_noise:d(e("generator_biome_noise")),humidity_noise:d(e("generator_biome_noise")),weirdness_noise:d(e("generator_biome_noise")),biomes:d((0,b.Mod)((0,b.ListNode)(e("generator_biome")),{default:()=>[{biome:"minecraft:plains"}]}))},"minecraft:checkerboard":{scale:(0,b.Opt)((0,b.NumberNode)({integer:!0,min:0,max:62})),biomes:(0,b.ListNode)(t({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:(0,b.NumberNode)({integer:!0})},"minecraft:vanilla_layered":{seed:(0,b.NumberNode)({integer:!0}),large_biomes:(0,b.Opt)((0,b.BooleanNode)()),legacy_biome_init_layer:(0,b.Opt)((0,b.BooleanNode)())}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:(0,b.ObjectNode)({biome:(0,b.Opt)(t({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:(0,b.Opt)((0,b.BooleanNode)()),features:(0,b.Opt)((0,b.BooleanNode)()),layers:(0,b.ListNode)(e("generator_layer")),structures:e("generator_structures")})}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>{const a=Math.floor(Math.random()*4294967296)-2147483648;return{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:a,biome_source:{type:"minecraft:fixed",seed:a,biome:"minecraft:plains"},settings:"minecraft:overworld"}}}})),o.register("generator_biome",(0,b.Mod)((0,b.ObjectNode)({biome:t({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:(0,b.ObjectNode)({altitude:(0,b.NumberNode)(),temperature:(0,b.NumberNode)(),humidity:(0,b.NumberNode)(),weirdness:(0,b.NumberNode)(),offset:(0,b.NumberNode)()})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})})),o.register("generator_biome_noise",(0,b.Mod)((0,b.ObjectNode)({firstOctave:(0,b.NumberNode)({integer:!0}),amplitudes:(0,b.ListNode)((0,b.NumberNode)())},{context:"generator_biome_noise"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})}))}_e.initDimensionSchemas=at;var pe={};Object.defineProperty(pe,"__esModule",{value:!0});pe.initDimensionTypeSchemas=void 0;const C=w,nt=I;function ct(o,r){const e=C.StringNode.bind(void 0,r);o.register("dimension_type",(0,C.Mod)((0,C.ObjectNode)({name:(0,C.Mod)(e({validator:"resource",params:{pool:"$dimension_type",isDefinition:!0}}),{enabled:t=>t.getArray().length>0}),ultrawarm:(0,C.BooleanNode)(),natural:(0,C.BooleanNode)(),piglin_safe:(0,C.BooleanNode)(),respawn_anchor_works:(0,C.BooleanNode)(),bed_works:(0,C.BooleanNode)(),has_raids:(0,C.BooleanNode)(),has_skylight:(0,C.BooleanNode)(),has_ceiling:(0,C.BooleanNode)(),coordinate_scale:(0,C.NumberNode)({min:1e-5,max:3e7}),ambient_light:(0,C.NumberNode)(),fixed_time:(0,C.Opt)((0,C.NumberNode)({integer:!0})),logical_height:(0,C.NumberNode)({integer:!0,min:0,max:4096}),effects:(0,C.Opt)(e({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:e({validator:"resource",params:{pool:"$tag/block"}}),min_y:(0,C.NumberNode)({integer:!0,min:-2048,max:2047}),height:(0,C.NumberNode)({integer:!0,min:0,max:4096})},{context:"dimension_type"}),t=>({default:()=>nt.DefaultDimensionType,validate:(d,a,n,N)=>(a=t.validate(d,a,n,N),(a==null?void 0:a.min_y)+(a==null?void 0:a.height)>2047&&n.add(d.push("height"),"error.min_y_plus_height",2047),(a==null?void 0:a.logical_height)>(a==null?void 0:a.height)&&n.add(d.push("logical_height"),"error.logical_height"),(a==null?void 0:a.height)%16!==0&&n.add(d.push("height"),"error.height_multiple",16),(a==null?void 0:a.min_y)%16!==0&&n.add(d.push("min_y"),"error.min_y_multiple",16),a)})))}pe.initDimensionTypeSchemas=ct;var ue={};Object.defineProperty(ue,"__esModule",{value:!0});ue.initItemModifierSchemas=void 0;const E=w,dt=I;function st(o,r){const e=E.Reference.bind(void 0,o),t=E.StringNode.bind(void 0,r);o.register("item_modifier",(0,E.ObjectOrList)(e("function"),{choiceContext:"function"}));const d={conditions:(0,E.Opt)((0,E.ListNode)(e("condition")))};o.register("function",(0,E.Mod)((0,E.ObjectNode)({function:t({validator:"resource",params:{pool:"loot_function_type"}}),[E.Switch]:[{push:"function"}],[E.Case]:(0,dt.FunctionCases)(d)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))}ue.initItemModifierSchemas=st;var fe={},T={};Object.defineProperty(T,"__esModule",{value:!0});T.LootFunctions=T.LootConditions=T.LootCopySources=T.LootEntitySources=T.LootTableTypes=void 0;T.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]}]]);T.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]);T.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]);T.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",[]]]);T.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(fe,"__esModule",{value:!0});fe.initLootTableSchemas=void 0;const f=w,te=T,Re=I;function mt(o,r){const e=f.Reference.bind(void 0,o),t=f.StringNode.bind(void 0,r),d={conditions:(0,f.Opt)((0,f.ListNode)(e("loot_condition")))},a=k({functions:(0,f.Opt)((0,f.ListNode)(e("loot_function")))},d);function n(O,L,B){const q=[],oe=X=>r.get(L).filter(Z=>{var F;return((F=O.get(Z))!==null&&F!==void 0?F:[]).every(Y=>X.includes(Y))});for(const[X,{allows:Z,requires:F}]of te.LootTableTypes){const D=[...Z,...F];q.push({match:Y=>Y.getModel().get(new f.Path(["type"]))===X,node:B(oe(D))})}return q.push({match:X=>!0,node:B(L)}),(0,f.SwitchNode)(q)}const N=n(te.LootConditions,"loot_condition_type",O=>t({validator:"resource",params:{pool:O instanceof Array?O:"loot_condition_type"}})),z=n(te.LootFunctions,"loot_function_type",O=>t({validator:"resource",params:{pool:O instanceof Array?O:"loot_function_type"}})),u=n(te.LootEntitySources,"entity_source",O=>t({enum:O})),v=n(te.LootCopySources,"copy_source",O=>t({enum:O}));o.register("loot_table",(0,f.Mod)((0,f.ObjectNode)({type:(0,f.Opt)(t({validator:"resource",params:{pool:r.get("loot_context_type")}})),pools:(0,f.Opt)((0,f.ListNode)((0,f.Mod)((0,f.ObjectNode)(k({rolls:e("number_provider"),bonus_rolls:(0,f.Opt)(e("number_provider")),entries:(0,f.ListNode)(e("loot_entry"))},a),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:(0,f.Opt)((0,f.ListNode)(e("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const M={enabled:O=>{var L;return((L=O.pop().get())===null||L===void 0?void 0:L.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(O.push("type").get())}};o.register("loot_entry",(0,f.Mod)((0,f.ObjectNode)({type:t({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:(0,f.Opt)((0,f.Mod)((0,f.NumberNode)({integer:!0,min:1}),M)),quality:(0,f.Opt)((0,f.Mod)((0,f.NumberNode)({integer:!0}),M)),[f.Switch]:[{push:"type"}],[f.Case]:{"minecraft:alternatives":k({children:(0,f.ListNode)(e("loot_entry"))},a),"minecraft:dynamic":k({name:t()},a),"minecraft:group":k({children:(0,f.ListNode)(e("loot_entry"))},a),"minecraft:item":k({name:t({validator:"resource",params:{pool:"item"}})},a),"minecraft:loot_table":k({name:t({validator:"resource",params:{pool:"$loot_table"}})},a),"minecraft:sequence":k({children:(0,f.ListNode)(e("loot_entry"))},a),"minecraft:tag":k({name:t({validator:"resource",params:{pool:"$tag/item"}}),expand:(0,f.Opt)((0,f.BooleanNode)())},a)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),o.register("loot_function",(0,f.Mod)((0,f.ObjectNode)({function:z,[f.Switch]:[{push:"function"}],[f.Case]:(0,Re.FunctionCases)(d,v,u)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),o.register("loot_condition",(0,f.Mod)((0,f.ObjectNode)({condition:N,[f.Switch]:[{push:"condition"}],[f.Case]:(0,Re.ConditionCases)(u)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),o.register("attribute_modifier",(0,f.Mod)((0,f.ObjectNode)({attribute:t({validator:"resource",params:{pool:"attribute"}}),name:t(),amount:e("number_provider"),operation:t({enum:["addition","multiply_base","multiply_total"]}),id:(0,f.Opt)(t({validator:"uuid"})),slot:(0,f.StringOrList)(t({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))}fe.initLootTableSchemas=mt;var be={};Object.defineProperty(be,"__esModule",{value:!0});be.initPackMcmetaSchemas=void 0;const Q=w,U=7;function lt(o,r){o.register("pack_mcmeta",(0,Q.Mod)((0,Q.ObjectNode)({pack:(0,Q.Mod)((0,Q.ObjectNode)({pack_format:(0,Q.Mod)((0,Q.NumberNode)({integer:!0,min:U,max:U}),{default:()=>U,canUpdate:(e,t)=>t!==U,update:()=>[{name:"pack_format",params:[U],newValue:U}]}),description:(0,Q.Reference)(o,"text_component")}),{default:()=>({pack_format:U,description:""})})}),{default:()=>({pack:{pack_format:U,description:""}})}))}be.initPackMcmetaSchemas=lt;var ge={};Object.defineProperty(ge,"__esModule",{value:!0});ge.initPredicatesSchemas=void 0;const c=w;function _t(o,r){const e=c.Reference.bind(void 0,o),t=c.StringNode.bind(void 0,r),d=(0,c.ChoiceNode)([{type:"string",node:t(),change:a=>typeof a=="boolean"||typeof a=="number"?a.toString():""},{type:"number",node:(0,c.NumberNode)(),change:a=>typeof a=="string"?parseInt(a):0},{type:"object",node:(0,c.ObjectNode)({min:(0,c.Opt)((0,c.NumberNode)({integer:!0})),max:(0,c.Opt)((0,c.NumberNode)({integer:!0}))}),change:a=>typeof a=="number"?{min:a,max:a}:{}},{type:"boolean",node:(0,c.BooleanNode)(),change:a=>a==="true"||a===1}]);o.register("item_predicate",(0,c.ObjectNode)({items:(0,c.Opt)((0,c.ListNode)(t({validator:"resource",params:{pool:"item"}}))),tag:(0,c.Opt)(t({validator:"resource",params:{pool:"$tag/item"}})),count:e("int_bounds"),durability:e("int_bounds"),potion:(0,c.Opt)(t({validator:"resource",params:{pool:"potion"}})),nbt:(0,c.Opt)(t({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:(0,c.Opt)((0,c.ListNode)(e("enchantment_predicate")))},{context:"item"})),o.register("enchantment_predicate",(0,c.ObjectNode)({enchantment:(0,c.Opt)(t({validator:"resource",params:{pool:"enchantment"}})),levels:e("int_bounds")},{context:"enchantment"})),o.register("block_predicate",(0,c.ObjectNode)({blocks:(0,c.Opt)((0,c.ListNode)(t({validator:"resource",params:{pool:"block"}}))),tag:(0,c.Opt)(t({validator:"resource",params:{pool:"$tag/block"}})),nbt:(0,c.Opt)(t({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:(0,c.Opt)((0,c.MapNode)(t(),d,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),o.register("fluid_predicate",(0,c.ObjectNode)({fluid:(0,c.Opt)(t({validator:"resource",params:{pool:"fluid"}})),tag:(0,c.Opt)(t({validator:"resource",params:{pool:"$tag/fluid"}})),state:(0,c.Opt)((0,c.MapNode)(t(),d))},{context:"fluid"})),o.register("location_predicate",(0,c.ObjectNode)({position:(0,c.Opt)((0,c.ObjectNode)({x:e("float_bounds"),y:e("float_bounds"),z:e("float_bounds")})),biome:(0,c.Opt)(t({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:(0,c.Opt)(t({enum:r.get("worldgen/structure_feature").map(a=>a.slice(10))})),dimension:(0,c.Opt)(t({validator:"resource",params:{pool:"$dimension"}})),light:(0,c.Opt)((0,c.ObjectNode)({light:e("int_bounds")})),smokey:(0,c.Opt)((0,c.BooleanNode)()),block:(0,c.Opt)(e("block_predicate")),fluid:(0,c.Opt)(e("fluid_predicate"))},{context:"location"})),o.register("statistic_predicate",(0,c.ObjectNode)({type:t({validator:"resource",params:{pool:"stat_type"}}),stat:t(),value:e("int_bounds"),[c.Switch]:[{push:"type"}],[c.Case]:{"minecraft:mined":{stat:t({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:t({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:t({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:t({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:t({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:t({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:t({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:t({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:t({validator:"resource",params:{pool:"custom_stat"}})}}})),o.register("player_predicate",(0,c.ObjectNode)({gamemode:(0,c.Opt)(t({enum:"gamemode"})),level:e("int_bounds"),advancements:(0,c.Opt)((0,c.MapNode)(t({validator:"resource",params:{pool:"$advancement"}}),(0,c.ChoiceNode)([{type:"boolean",node:(0,c.BooleanNode)(),change:a=>!0},{type:"object",node:(0,c.MapNode)(t(),(0,c.BooleanNode)())}]))),recipes:(0,c.Opt)((0,c.MapNode)(t({validator:"resource",params:{pool:"$recipe"}}),(0,c.BooleanNode)())),stats:(0,c.Opt)((0,c.ListNode)(e("statistic_predicate"))),looking_at:(0,c.Opt)(e("entity_predicate"))},{context:"player"})),o.register("status_effect_predicate",(0,c.ObjectNode)({amplifier:e("int_bounds"),duration:e("int_bounds"),ambient:(0,c.Opt)((0,c.BooleanNode)()),visible:(0,c.Opt)((0,c.BooleanNode)())},{context:"status_effect"})),o.register("distance_predicate",(0,c.ObjectNode)({x:e("float_bounds"),y:e("float_bounds"),z:e("float_bounds"),absolute:e("float_bounds"),horizontal:e("float_bounds")},{context:"distance"})),o.register("entity_predicate",(0,c.ObjectNode)({type:(0,c.Opt)(t({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:(0,c.Opt)(t({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:(0,c.Opt)(t({validator:"team"})),location:(0,c.Opt)(e("location_predicate")),stepping_on:(0,c.Opt)(e("location_predicate")),distance:(0,c.Opt)(e("distance_predicate")),flags:(0,c.Opt)((0,c.ObjectNode)({is_on_fire:(0,c.Opt)((0,c.BooleanNode)()),is_sneaking:(0,c.Opt)((0,c.BooleanNode)()),is_sprinting:(0,c.Opt)((0,c.BooleanNode)()),is_swimming:(0,c.Opt)((0,c.BooleanNode)()),is_baby:(0,c.Opt)((0,c.BooleanNode)())})),equipment:(0,c.Opt)((0,c.MapNode)(t({enum:"slot"}),e("item_predicate"))),vehicle:(0,c.Opt)(e("entity_predicate")),passenger:(0,c.Opt)(e("entity_predicate")),targeted_entity:(0,c.Opt)(e("entity_predicate")),player:(0,c.Opt)(e("player_predicate")),lightning_bolt:(0,c.Opt)((0,c.ObjectNode)({blocks_set_on_fire:(0,c.Opt)(e("int_bounds")),entity_struck:(0,c.Opt)(e("entity_predicate"))})),fishing_hook:(0,c.Opt)((0,c.ObjectNode)({in_open_water:(0,c.Opt)((0,c.BooleanNode)())})),catType:(0,c.Opt)(t({enum:"cat_texture"})),effects:(0,c.Opt)((0,c.MapNode)(t({validator:"resource",params:{pool:"mob_effect"}}),e("status_effect_predicate")))},{context:"entity"})),o.register("damage_source_predicate",(0,c.ObjectNode)({is_explosion:(0,c.Opt)((0,c.BooleanNode)()),is_fire:(0,c.Opt)((0,c.BooleanNode)()),is_magic:(0,c.Opt)((0,c.BooleanNode)()),is_projectile:(0,c.Opt)((0,c.BooleanNode)()),is_lightning:(0,c.Opt)((0,c.BooleanNode)()),bypasses_armor:(0,c.Opt)((0,c.BooleanNode)()),bypasses_invulnerability:(0,c.Opt)((0,c.BooleanNode)()),bypasses_magic:(0,c.Opt)((0,c.BooleanNode)()),source_entity:(0,c.Opt)(e("entity_predicate")),direct_entity:(0,c.Opt)(e("entity_predicate"))},{context:"damage_source"})),o.register("damage_predicate",(0,c.ObjectNode)({dealt:e("float_bounds"),taken:e("float_bounds"),blocked:(0,c.Opt)((0,c.BooleanNode)()),source_entity:(0,c.Opt)(e("entity_predicate")),type:(0,c.Opt)(e("damage_source_predicate"))},{context:"damage"}))}ge.initPredicatesSchemas=_t;var Ne={};Object.defineProperty(Ne,"__esModule",{value:!0});Ne.initRecipeSchemas=void 0;const p=w;function pt(o,r){const e=p.Reference.bind(void 0,o),t=p.StringNode.bind(void 0,r);o.register("recipe",(0,p.Mod)((0,p.ObjectNode)({type:t({validator:"resource",params:{pool:"recipe_serializer"}}),[p.Switch]:[{push:"type"}],[p.Case]:{"minecraft:crafting_shaped":{group:(0,p.Opt)(t({enum:"recipe_group",additional:!0})),pattern:(0,p.ListNode)(t()),key:(0,p.MapNode)(t(),e("recipe_ingredient")),result:e("recipe_result")},"minecraft:crafting_shapeless":{group:(0,p.Opt)(t()),ingredients:(0,p.ListNode)(e("recipe_ingredient")),result:e("recipe_result")},"minecraft:smelting":{group:(0,p.Opt)(t()),ingredient:e("recipe_ingredient"),result:t({validator:"resource",params:{pool:"item"}}),experience:(0,p.Opt)((0,p.NumberNode)()),cookingtime:(0,p.Opt)((0,p.Mod)((0,p.NumberNode)({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:(0,p.Opt)(t()),ingredient:e("recipe_ingredient"),result:t({validator:"resource",params:{pool:"item"}}),experience:(0,p.Opt)((0,p.NumberNode)()),cookingtime:(0,p.Opt)((0,p.Mod)((0,p.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:(0,p.Opt)(t()),ingredient:e("recipe_ingredient"),result:t({validator:"resource",params:{pool:"item"}}),experience:(0,p.Opt)((0,p.NumberNode)()),cookingtime:(0,p.Opt)((0,p.Mod)((0,p.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:(0,p.Opt)(t()),ingredient:e("recipe_ingredient"),result:t({validator:"resource",params:{pool:"item"}}),experience:(0,p.Opt)((0,p.NumberNode)()),cookingtime:(0,p.Opt)((0,p.Mod)((0,p.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:(0,p.Opt)(t()),ingredient:e("recipe_ingredient"),result:t({validator:"resource",params:{pool:"item"}}),count:(0,p.NumberNode)({integer:!0})},"minecraft:smithing":{group:(0,p.Opt)(t()),base:e("recipe_ingredient_object"),addition:e("recipe_ingredient_object"),result:e("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),o.register("recipe_ingredient",(0,p.Mod)((0,p.ChoiceNode)([{type:"object",node:e("recipe_ingredient_object"),change:d=>d[0]},{type:"list",node:(0,p.ListNode)(e("recipe_ingredient_object")),change:d=>[d]}]),{default:()=>({item:"minecraft:stone"})})),o.register("recipe_ingredient_object",(0,p.Mod)((0,p.ObjectNode)({item:(0,p.Opt)(t({validator:"resource",params:{pool:"item"}})),tag:(0,p.Opt)(t({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),o.register("recipe_result",(0,p.Mod)((0,p.ObjectNode)({item:t({validator:"resource",params:{pool:"item"}}),count:(0,p.Opt)((0,p.Mod)((0,p.NumberNode)({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))}Ne.initRecipeSchemas=pt;var he={};Object.defineProperty(he,"__esModule",{value:!0});he.initTagsSchemas=void 0;const W=w;function ut(o,r){const e=W.StringNode.bind(void 0,r),t=d=>(0,W.Mod)((0,W.ObjectNode)({replace:(0,W.Opt)((0,W.BooleanNode)()),values:(0,W.ListNode)((0,W.ChoiceNode)([{type:"string",node:e({validator:"resource",params:{pool:d,allowTag:!0}}),change:a=>a.id},{type:"object",node:(0,W.ObjectNode)({id:e({validator:"resource",params:{pool:d,allowTag:!0,allowUnknown:!0}}),required:(0,W.BooleanNode)()}),change:a=>({id:a})}]))},{context:"tag"}),{default:()=>({values:[]})});o.register("block_tag",t("block")),o.register("entity_type_tag",t("entity_type")),o.register("fluid_tag",t("fluid")),o.register("function_tag",t("$function")),o.register("game_event_tag",t("game_event")),o.register("item_tag",t("item"))}he.initTagsSchemas=ut;var ye={};Object.defineProperty(ye,"__esModule",{value:!0});ye.initTextComponentSchemas=void 0;const m=w;function ft(o,r){const e=m.Reference.bind(void 0,o),t=m.StringNode.bind(void 0,r),d=n=>{var N;return n instanceof Array?d(n[0]):(N=n==null?void 0:n.text)!==null&&N!==void 0?N:typeof n=="object"?"":n==null?void 0:n.toString()};o.register("text_component",(0,m.Mod)((0,m.ChoiceNode)([{type:"object",node:e("text_component_object"),change:n=>n instanceof Array?typeof n[0]=="object"?n[0]:{text:d(n[0])}:typeof n=="object"?n:{text:d(n)}},{type:"list",node:e("text_component_list"),change:n=>[n]},{type:"string",priority:1,node:t(),change:d},{type:"number",node:(0,m.NumberNode)(),change:n=>{const N=parseFloat(d(n));return isFinite(N)?N:n?1:0}},{type:"boolean",node:(0,m.BooleanNode)(),change:n=>{const N=d(n);return N==="true"||N==="false"?N==="true":!!N}}],{context:"text_component"}),{default:()=>({text:""})}));const a={color:(0,m.Opt)(t()),font:(0,m.Opt)(t()),bold:(0,m.Opt)((0,m.BooleanNode)()),italic:(0,m.Opt)((0,m.BooleanNode)()),underlined:(0,m.Opt)((0,m.BooleanNode)()),strikethrough:(0,m.Opt)((0,m.BooleanNode)()),obfuscated:(0,m.Opt)((0,m.BooleanNode)()),insertion:(0,m.Opt)(t()),clickEvent:(0,m.Opt)((0,m.ObjectNode)({action:t({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[m.Switch]:[{push:"action"}],[m.Case]:{change_page:{value:t()},copy_to_clipboard:{value:t()},open_file:{value:t()},open_url:{value:t()},run_command:{value:t({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:t({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:(0,m.Opt)((0,m.ObjectNode)({action:t({enum:["show_text","show_item","show_entity"]}),[m.Switch]:[{push:"action"}],[m.Case]:{show_text:{value:(0,m.Opt)(e("text_component")),contents:(0,m.Opt)(e("text_component"))},show_item:{value:(0,m.Opt)(t({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:(0,m.Opt)((0,m.ObjectNode)({id:t({validator:"resource",params:{pool:"item"}}),count:(0,m.Opt)((0,m.NumberNode)({integer:!0})),tag:(0,m.Opt)(t({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:(0,m.Opt)((0,m.ObjectNode)({name:(0,m.Opt)(t()),type:(0,m.Opt)(t()),id:(0,m.Opt)(t())})),contents:(0,m.Opt)((0,m.Mod)((0,m.ObjectNode)({name:(0,m.Opt)(e("text_component")),type:t({validator:"resource",params:{pool:"entity_type"}}),id:t({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:(0,m.Opt)(e("text_component_list"))};o.register("text_component_object",(0,m.Mod)((0,m.ChoiceNode)([{type:"text",match:n=>typeof n=="object",change:n=>({text:""}),priority:-1,node:(0,m.ObjectNode)(k({text:t()},a))},{type:"translation",match:n=>(n==null?void 0:n.translate)!==void 0,change:n=>({translate:""}),node:(0,m.ObjectNode)(k({translate:t(),with:(0,m.Opt)(e("text_component_list"))},a))},{type:"score",match:n=>(n==null?void 0:n.score)!==void 0,change:n=>({score:{}}),node:(0,m.ObjectNode)(k({score:(0,m.ObjectNode)({name:t({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:t({validator:"objective"}),value:(0,m.Opt)(t())})},a))},{type:"selector",match:n=>(n==null?void 0:n.selector)!==void 0,change:n=>({selector:""}),node:(0,m.ObjectNode)(k({selector:t({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:(0,m.Opt)(e("text_component"))},a))},{type:"keybind",match:n=>(n==null?void 0:n.keybind)!==void 0,change:n=>({keybind:""}),node:(0,m.ObjectNode)(k({keybind:t({enum:"keybind",additional:!0})},a))},{type:"nbt",match:n=>(n==null?void 0:n.nbt)!==void 0,change:n=>({nbt:""}),node:(0,m.ObjectNode)(k({nbt:t({validator:"nbt_path"}),block:(0,m.Opt)(t({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:(0,m.Opt)(t({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:(0,m.Opt)(t({validator:"resource",params:{pool:"$storage"}})),interpret:(0,m.Opt)((0,m.BooleanNode)()),separator:(0,m.Opt)(e("text_component"))},a))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),o.register("text_component_list",(0,m.Mod)((0,m.ListNode)(e("text_component")),{default:()=>[{text:""}]}))}ye.initTextComponentSchemas=ft;var ve={},Oe={};Object.defineProperty(Oe,"__esModule",{value:!0});Oe.initBiomeSchemas=void 0;const l=w;function bt(o,r){const e=l.StringNode.bind(void 0,r);o.register("biome",(0,l.Mod)((0,l.ObjectNode)({surface_builder:e({validator:"resource",params:{pool:"$worldgen/configured_surface_builder"}}),depth:(0,l.NumberNode)(),scale:(0,l.NumberNode)(),temperature:(0,l.NumberNode)(),downfall:(0,l.NumberNode)(),precipitation:e({enum:["none","rain","snow"]}),temperature_modifier:(0,l.Opt)(e({enum:["none","frozen"]})),category:e({enum:"biome_category"}),player_spawn_friendly:(0,l.Opt)((0,l.BooleanNode)()),creature_spawn_probability:(0,l.Opt)((0,l.NumberNode)({min:0,max:1})),effects:(0,l.ObjectNode)({sky_color:(0,l.NumberNode)({color:!0}),fog_color:(0,l.NumberNode)({color:!0}),water_color:(0,l.NumberNode)({color:!0}),water_fog_color:(0,l.NumberNode)({color:!0}),grass_color:(0,l.Opt)((0,l.NumberNode)({color:!0})),foliage_color:(0,l.Opt)((0,l.NumberNode)({color:!0})),grass_color_modifier:(0,l.Opt)(e({enum:["none","dark_forest","swamp"]})),ambient_sound:(0,l.Opt)(e()),mood_sound:(0,l.Opt)((0,l.ObjectNode)({sound:e(),tick_delay:(0,l.NumberNode)({integer:!0}),block_search_extent:(0,l.NumberNode)({integer:!0}),offset:(0,l.NumberNode)()})),additions_sound:(0,l.Opt)((0,l.ObjectNode)({sound:e(),tick_chance:(0,l.NumberNode)({min:0,max:1})})),music:(0,l.Opt)((0,l.ObjectNode)({sound:e(),min_delay:(0,l.NumberNode)({integer:!0,min:0}),max_delay:(0,l.NumberNode)({integer:!0,min:0}),replace_current_music:(0,l.BooleanNode)()})),particle:(0,l.Opt)((0,l.ObjectNode)({options:(0,l.ObjectNode)({type:e()}),probability:(0,l.NumberNode)({min:0,max:1})}))}),starts:(0,l.ListNode)(e({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),spawners:(0,l.MapNode)(e({enum:["monster","creature","ambient","underground_water_creature","water_creature","water_ambient","misc"]}),(0,l.Mod)((0,l.ListNode)((0,l.ObjectNode)({type:e({validator:"resource",params:{pool:"entity_type"}}),weight:(0,l.NumberNode)({integer:!0}),minCount:(0,l.NumberNode)({integer:!0}),maxCount:(0,l.NumberNode)({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:(0,l.MapNode)(e({validator:"resource",params:{pool:"entity_type"}}),(0,l.Mod)((0,l.ObjectNode)({energy_budget:(0,l.NumberNode)(),charge:(0,l.NumberNode)()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:(0,l.MapNode)(e({enum:["air","liquid"]}),(0,l.Mod)((0,l.ListNode)(e({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:(0,l.ListNode)((0,l.Mod)((0,l.ListNode)(e({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}})}))}Oe.initBiomeSchemas=bt;var ke={};Object.defineProperty(ke,"__esModule",{value:!0});ke.initCarverSchemas=void 0;const j=w,V=I;function gt(o,r){const e=j.Reference.bind(void 0,o),t=j.StringNode.bind(void 0,r),d={vertical_rotation:(0,V.FloatProvider)(),shape:(0,j.ObjectNode)({distance_factor:(0,V.FloatProvider)(),thickness:(0,V.FloatProvider)(),width_smoothness:(0,j.NumberNode)({integer:!0,min:0}),horizontal_radius_factor:(0,V.FloatProvider)(),vertical_radius_default_factor:(0,j.NumberNode)(),vertical_radius_center_factor:(0,j.NumberNode)()})},a={horizontal_radius_multiplier:(0,V.FloatProvider)(),vertical_radius_multiplier:(0,V.FloatProvider)(),floor_level:(0,V.FloatProvider)({min:-1,max:1})};o.register("configured_carver",(0,j.Mod)((0,j.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/carver"}}),config:(0,j.ObjectNode)({probability:(0,j.NumberNode)({min:0,max:1}),y:e("height_provider"),yScale:(0,V.FloatProvider)(),lava_level:e("vertical_anchor"),aquifers_enabled:(0,j.BooleanNode)(),debug_settings:(0,j.Opt)((0,j.ObjectNode)({debug_mode:(0,j.Opt)((0,j.BooleanNode)()),air_state:(0,j.Opt)(e("block_state")),water_state:(0,j.Opt)(e("block_state")),lava_state:(0,j.Opt)(e("block_state")),barrier_state:(0,j.Opt)(e("block_state"))})),[j.Switch]:["pop",{push:"type"}],[j.Case]:{"minecraft:canyon":d,"minecraft:cave":a,"minecraft:nether_cave":a}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))}ke.initCarverSchemas=gt;var xe={};Object.defineProperty(xe,"__esModule",{value:!0});xe.initDecoratorSchemas=void 0;const P=w,Nt=I;function ht(o,r){const e=P.Reference.bind(void 0,o),t=P.StringNode.bind(void 0,r),d={count:(0,Nt.IntProvider)({min:0,max:256})};o.register("configured_decorator",(0,P.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/decorator"}}),config:(0,P.ObjectNode)({[P.Switch]:["pop",{push:"type"}],[P.Case]:{"minecraft:carving_mask":{step:t({enum:"generation_step"})},"minecraft:cave_surface":{surface:t({enum:["floor","ceiling"]}),floor_to_ceiling_search_range:(0,P.NumberNode)({integer:!0})},"minecraft:chance":{chance:(0,P.NumberNode)({integer:!0,min:0})},"minecraft:count":d,"minecraft:count_extra":{count:(0,P.NumberNode)({integer:!0,min:0}),extra_count:(0,P.NumberNode)({integer:!0,min:0}),extra_chance:(0,P.NumberNode)({min:0,max:1})},"minecraft:count_multilayer":d,"minecraft:count_noise":{noise_level:(0,P.NumberNode)(),below_noise:(0,P.NumberNode)({integer:!0}),above_noise:(0,P.NumberNode)({integer:!0})},"minecraft:count_noise_biased":{noise_to_count_ratio:(0,P.NumberNode)({integer:!0}),noise_factor:(0,P.NumberNode)(),noise_offset:(0,P.Opt)((0,P.NumberNode)())},"minecraft:decorated":{outer:e("configured_decorator"),inner:e("configured_decorator")},"minecraft:heightmap":{heightmap:t({enum:"heightmap_type"})},"minecraft:heightmap_spread_double":{heightmap:t({enum:"heightmap_type"})},"minecraft:lava_lake":{chance:(0,P.NumberNode)({integer:!0,min:0})},"minecraft:range":{height:e("height_provider")},"minecraft:water_depth_threshold":{max_water_depth:(0,P.NumberNode)({integer:!0})}}},{context:"decorator",category:"predicate"})},{context:"decorator",category:"predicate"}))}xe.initDecoratorSchemas=ht;var we={},K={};Object.defineProperty(K,"__esModule",{value:!0});K.initProcessorListSchemas=K.Processors=void 0;const h=w;function yt(o,r){const e=h.Reference.bind(void 0,o),t=h.StringNode.bind(void 0,r);K.Processors=(0,h.ChoiceNode)([{type:"string",node:t({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:a=>{}},{type:"object",node:e("processor_list"),change:a=>({processors:[{processor_type:"minecraft:nop"}]})}]),o.register("processor_list",(0,h.Mod)((0,h.ObjectNode)({processors:(0,h.ListNode)(e("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"}}]}]})})),o.register("processor",(0,h.Mod)((0,h.ObjectNode)({processor_type:t({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[h.Switch]:[{push:"processor_type"}],[h.Case]:{"minecraft:block_age":{mossiness:(0,h.NumberNode)()},"minecraft:block_ignore":{blocks:(0,h.ListNode)(e("block_state"))},"minecraft:block_rot":{integrity:(0,h.NumberNode)({min:0,max:1})},"minecraft:gravity":{heightmap:t({enum:"heightmap_type"}),offset:(0,h.NumberNode)({integer:!0})},"minecraft:protected_blocks":{value:t({validator:"resource",params:{pool:"$tag/block"}})},"minecraft:rule":{rules:(0,h.ListNode)(e("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"}}]})})),o.register("processor_rule",(0,h.Mod)((0,h.ObjectNode)({position_predicate:(0,h.Opt)(e("pos_rule_test")),location_predicate:e("rule_test"),input_predicate:e("rule_test"),output_state:e("block_state"),output_nbt:(0,h.Opt)(t({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 d={min_dist:(0,h.Opt)((0,h.NumberNode)({min:0,max:255,integer:!0})),max_dist:(0,h.Opt)((0,h.NumberNode)({min:0,max:255,integer:!0})),min_chance:(0,h.Opt)((0,h.NumberNode)({min:0,max:1})),max_chance:(0,h.Opt)((0,h.NumberNode)({min:0,max:1}))};o.register("pos_rule_test",(0,h.ObjectNode)({predicate_type:t({validator:"resource",params:{pool:"pos_rule_test"}}),[h.Switch]:[{push:"predicate_type"}],[h.Case]:{"minecraft:axis_aligned_linear_pos":k({axis:t({enum:["x","y","z"]})},d),"minecraft:linear_pos":d}},{context:"pos_rule_test",disableSwitchContext:!0})),o.register("rule_test",(0,h.ObjectNode)({predicate_type:t({validator:"resource",params:{pool:"rule_test"}}),[h.Switch]:[{push:"predicate_type"}],[h.Case]:{"minecraft:block_match":{block:t({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:e("block_state")},"minecraft:random_block_match":{block:t({validator:"resource",params:{pool:"block"}}),probability:(0,h.NumberNode)({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:e("block_state"),probability:(0,h.NumberNode)({min:0,max:1})},"minecraft:tag_match":{tag:t({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))}K.initProcessorListSchemas=yt;Object.defineProperty(we,"__esModule",{value:!0});we.initFeatureSchemas=void 0;const i=w,y=I,Te=K;function vt(o,r){const e=i.Reference.bind(void 0,o),t=i.StringNode.bind(void 0,r),d={can_replace:(0,i.Opt)((0,i.BooleanNode)()),project:(0,i.Opt)((0,i.BooleanNode)()),need_water:(0,i.Opt)((0,i.BooleanNode)()),xspread:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0})),yspread:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0})),zspread:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0})),tries:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:1})),state_provider:e("block_state_provider"),block_placer:e("block_placer"),whitelist:(0,i.ListNode)(e("block_state")),blacklist:(0,i.ListNode)(e("block_state"))},a={state:e("block_state"),radius:(0,y.IntProvider)({min:0,max:8}),half_height:(0,i.NumberNode)({integer:!0,min:0,max:4}),targets:(0,i.ListNode)(e("block_state"))},n={cap_provider:e("block_state_provider"),stem_provider:e("block_state_provider"),foliage_radius:(0,i.Opt)((0,i.NumberNode)({integer:!0}))},N=(0,i.ObjectNode)({target:e("rule_test"),state:e("block_state")}),z={size:(0,i.NumberNode)({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:(0,i.NumberNode)({min:0,max:1}),targets:(0,i.ListNode)(N)},u=(0,i.ChoiceNode)([{type:"string",node:t({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:e("configured_feature")}],{choiceContext:"feature"}),v={surface:t({enum:["floor","ceiling"]}),depth:(0,y.IntProvider)({min:1,max:128}),vertical_range:(0,i.NumberNode)({integer:!0,min:1,max:256}),extra_bottom_block_chance:(0,i.NumberNode)({min:0,max:1}),extra_edge_column_chance:(0,i.NumberNode)({min:0,max:1}),vegetation_chance:(0,i.NumberNode)({min:0,max:1}),xz_radius:(0,y.IntProvider)(),replaceable:t({validator:"resource",params:{pool:"$tag/block"}}),ground_state:e("block_state_provider"),vegetation_feature:u};o.register("configured_feature",(0,i.Mod)((0,i.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/feature"}}),config:(0,i.ObjectNode)({[i.Switch]:["pop",{push:"type"}],[i.Case]:{"minecraft:bamboo":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:basalt_columns":{reach:(0,y.IntProvider)({min:0,max:3}),height:(0,y.IntProvider)({min:1,max:10})},"minecraft:block_pile":{state_provider:e("block_state_provider")},"minecraft:decorated":{decorator:e("configured_decorator"),feature:u},"minecraft:decorated_flower":{decorator:e("configured_decorator"),feature:u},"minecraft:delta_feature":{contents:e("block_state"),rim:e("block_state"),size:(0,y.IntProvider)({min:0,max:16}),rim_size:(0,y.IntProvider)({min:0,max:16})},"minecraft:disk":a,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:(0,i.NumberNode)({integer:!0,min:1,max:512}),height:(0,y.IntProvider)({min:0,max:128}),radius:(0,y.IntProvider)({min:0,max:128}),max_stalagmite_stalactite_height_diff:(0,i.NumberNode)({integer:!0,min:0,max:64}),height_deviation:(0,i.NumberNode)({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:(0,y.IntProvider)({min:0,max:128}),density:(0,y.FloatProvider)({min:0,max:2}),wetness:(0,y.FloatProvider)({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:(0,i.NumberNode)({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:(0,i.NumberNode)({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:(0,i.NumberNode)({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:(0,i.BooleanNode)(),exit:(0,i.Opt)(e("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:(0,i.Opt)((0,i.BooleanNode)()),crystal_beam_target:(0,i.Opt)(e("block_pos")),spikes:(0,i.ListNode)((0,i.ObjectNode)({centerX:(0,i.Opt)((0,i.NumberNode)({integer:!0})),centerZ:(0,i.Opt)((0,i.NumberNode)({integer:!0})),radius:(0,i.Opt)((0,i.NumberNode)({integer:!0})),height:(0,i.Opt)((0,i.NumberNode)({integer:!0})),guarded:(0,i.Opt)((0,i.BooleanNode)())}))},"minecraft:fill_layer":{state:e("block_state"),height:(0,i.NumberNode)({integer:!0,min:0,max:255})},"minecraft:flower":d,"minecraft:forest_rock":{state:e("block_state")},"minecraft:fossil":{max_empty_corners_allowed:(0,i.NumberNode)({integer:!0,min:0,max:7}),fossil_structures:(0,i.ListNode)(t({validator:"resource",params:{pool:"$structure"}})),overlay_structures:(0,i.ListNode)(t({validator:"resource",params:{pool:"$structure"}})),fossil_processors:Te.Processors,overlay_processors:Te.Processors},"minecraft:geode":{blocks:(0,i.ObjectNode)({filling_provider:e("block_state_provider"),inner_layer_provider:e("block_state_provider"),alternate_inner_layer_provider:e("block_state_provider"),middle_layer_provider:e("block_state_provider"),outer_layer_provider:e("block_state_provider"),inner_placements:(0,i.ListNode)(e("block_state")),cannot_replace:t({validator:"resource",params:{pool:"$tag/block"}}),invalid_blocks:t({validator:"resource",params:{pool:"$tag/block"}})}),layers:(0,i.ObjectNode)({filling:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50})),inner_layer:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50})),middle_layer:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50})),outer_layer:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50}))}),crack:(0,i.ObjectNode)({generate_crack_chance:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),base_crack_size:(0,i.Opt)((0,i.NumberNode)({min:0,max:5})),crack_point_offset:(0,i.Opt)((0,i.NumberNode)({min:0,max:10}))}),noise_multiplier:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),use_potential_placements_chance:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),use_alternate_layer0_chance:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),placements_require_layer0_alternate:(0,i.Opt)((0,i.BooleanNode)()),outer_wall_distance:(0,i.Opt)((0,y.IntProvider)({min:1,max:20})),distribution_points:(0,i.Opt)((0,y.IntProvider)({min:1,max:20})),point_offset:(0,i.Opt)((0,y.IntProvider)({min:0,max:10})),min_gen_offset:(0,i.Opt)((0,i.NumberNode)({integer:!0})),max_gen_offset:(0,i.Opt)((0,i.NumberNode)({integer:!0})),invalid_blocks_threshold:(0,i.NumberNode)({integer:!0})},"minecraft:glow_lichen":{search_range:(0,i.Opt)((0,i.NumberNode)({min:1,max:64,integer:!0})),chance_of_spreading:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),can_place_on_floor:(0,i.Opt)((0,i.BooleanNode)()),can_place_on_ceiling:(0,i.Opt)((0,i.BooleanNode)()),can_place_on_wall:(0,i.Opt)((0,i.BooleanNode)()),can_be_placed_on:(0,i.ListNode)(e("block_state"))},"minecraft:growing_plant":{direction:t({enum:["up","down","north","east","south","west"]}),allow_water:(0,i.BooleanNode)(),height_distribution:(0,i.ListNode)((0,i.ObjectNode)({weight:(0,i.NumberNode)({integer:!0}),data:(0,y.IntProvider)()})),body_provider:e("block_state_provider"),head_provider:e("block_state_provider")},"minecraft:huge_brown_mushroom":n,"minecraft:huge_fungus":{hat_state:e("block_state"),decor_state:e("block_state"),stem_state:e("block_state"),valid_base_block:e("block_state"),planted:(0,i.Opt)((0,i.BooleanNode)())},"minecraft:huge_red_mushroom":n,"minecraft:ice_patch":a,"minecraft:iceberg":{state:e("block_state")},"minecraft:lake":{state:e("block_state")},"minecraft:large_dripstone":{floor_to_ceiling_search_range:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:1,max:512})),column_radius:(0,y.IntProvider)({min:0,max:60}),height_scale:(0,y.FloatProvider)({min:0,max:20}),max_column_radius_to_cave_height_ratio:(0,i.NumberNode)({min:0,max:1}),stalactite_bluntness:(0,y.FloatProvider)({min:.1,max:10}),stalagmite_bluntness:(0,y.FloatProvider)({min:.1,max:10}),wind_speed:(0,y.FloatProvider)({min:0,max:2}),min_radius_for_wind:(0,i.NumberNode)({integer:!0,min:0,max:100}),min_bluntness_for_wind:(0,i.NumberNode)({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:e("block_state_provider")},"minecraft:netherrack_replace_blobs":{state:e("block_state"),target:e("block_state"),radius:(0,y.IntProvider)({min:0,max:12})},"minecraft:no_bonemeal_flower":d,"minecraft:ore":z,"minecraft:random_patch":d,"minecraft:random_boolean_selector":{feature_false:u,feature_true:u},"minecraft:random_selector":{features:(0,i.ListNode)((0,i.ObjectNode)({chance:(0,i.NumberNode)({min:0,max:1}),feature:u})),default:u},"minecraft:replace_single_block":{targets:(0,i.ListNode)(N)},"minecraft:root_system":{required_vertical_space_for_tree:(0,i.NumberNode)({integer:!0,min:1,max:64}),root_radius:(0,i.NumberNode)({integer:!0,min:1,max:64}),root_placement_attempts:(0,i.NumberNode)({integer:!0,min:1,max:256}),root_column_max_height:(0,i.NumberNode)({integer:!0,min:1,max:4096}),hanging_root_radius:(0,i.NumberNode)({integer:!0,min:1,max:64}),hanging_roots_vertical_span:(0,i.NumberNode)({integer:!0,min:0,max:16}),hanging_root_placement_attempts:(0,i.NumberNode)({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:(0,i.NumberNode)({integer:!0,min:1,max:64}),root_replaceable:t({validator:"resource",params:{pool:"$tag/block"}}),root_state_provider:e("block_state_provider"),hanging_root_state_provider:e("block_state_provider"),feature:u},"minecraft:scattered_ore":z,"minecraft:sea_pickle":{count:(0,y.IntProvider)({min:0,max:256})},"minecraft:seagrass":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:simple_block":{to_place:e("block_state_provider"),place_on:(0,i.Opt)((0,i.ListNode)(e("block_state"))),place_in:(0,i.Opt)((0,i.ListNode)(e("block_state"))),place_under:(0,i.Opt)((0,i.ListNode)(e("block_state")))},"minecraft:simple_random_selector":{features:(0,i.ListNode)(u)},"minecraft:small_dripstone":{max_placements:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:100})),empty_space_search_radius:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:20})),max_offset_from_origin:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:20})),chance_of_taller_dripstone:(0,i.Opt)((0,i.NumberNode)({min:0,max:1}))},"minecraft:spring_feature":{state:e("fluid_state"),rock_count:(0,i.NumberNode)({integer:!0}),hole_count:(0,i.NumberNode)({integer:!0}),requires_block_below:(0,i.BooleanNode)(),valid_blocks:(0,i.ListNode)(t({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{ignore_vines:(0,i.Opt)((0,i.BooleanNode)()),force_dirt:(0,i.Opt)((0,i.BooleanNode)()),minimum_size:e("feature_size"),dirt_provider:e("block_state_provider"),sapling_provider:e("block_state_provider"),trunk_provider:e("block_state_provider"),foliage_provider:e("block_state_provider"),trunk_placer:(0,i.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:(0,i.NumberNode)({integer:!0,min:0,max:32}),height_rand_a:(0,i.NumberNode)({integer:!0,min:0,max:24}),height_rand_b:(0,i.NumberNode)({integer:!0,min:0,max:24}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:bending_trunk_placer":{bend_length:(0,y.IntProvider)({min:1,max:64}),min_height_for_leaves:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:(0,i.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:(0,y.IntProvider)({min:0,max:16}),offset:(0,y.IntProvider)({min:0,max:16}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:blob_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:(0,y.IntProvider)({min:0,max:24})},"minecraft:pine_foliage_placer":{height:(0,y.IntProvider)({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:(0,y.IntProvider)({min:1,max:512}),leaf_placement_attempts:(0,i.NumberNode)({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:(0,y.IntProvider)({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:(0,i.ListNode)((0,i.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:alter_ground":{provider:e("block_state_provider")},"minecraft:beehive":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:cocoa":{probability:(0,i.NumberNode)({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:underwater_magma":{floor_search_range:(0,i.NumberNode)({integer:!0,min:0,max:512}),placement_radius_around_floor:(0,i.NumberNode)({integer:!0,min:0,max:64}),placement_probability_per_valid_position:(0,i.NumberNode)({min:0,max:1})},"minecraft:vegetation_patch":v,"minecraft:waterlogged_vegetation_patch":v}},{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}}}}})})),o.register("feature_size",(0,i.Mod)((0,i.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:(0,i.Opt)((0,i.NumberNode)({min:0,max:80})),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:two_layers_feature_size":{limit:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:81})),lower_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:80})),upper_limit:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:80})),lower_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16})),middle_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})})),o.register("block_state_provider",(0,i.Mod)((0,i.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:randomized_int_state_provider":{property:t(),values:(0,y.IntProvider)(),source:e("block_state_provider")},"minecraft:rotated_block_provider":{state:e("block_state")},"minecraft:simple_state_provider":{state:e("block_state")},"minecraft:weighted_state_provider":{entries:(0,i.ListNode)((0,i.Mod)((0,i.ObjectNode)({weight:(0,i.NumberNode)({integer:!0,min:1}),data:e("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})})),o.register("block_placer",(0,i.Mod)((0,i.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/block_placer_type"}}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:column_placer":{size:(0,y.IntProvider)({min:0})}}},{context:"block_placer"}),{default:()=>({type:"minecraft:simple_block_placer"})}))}we.initFeatureSchemas=vt;var Se={};Object.defineProperty(Se,"__esModule",{value:!0});Se.initNoiseSettingsSchemas=void 0;const _=w,Ot=I;function kt(o,r){const e=_.Reference.bind(void 0,o),t=_.StringNode.bind(void 0,r);o.register("noise_settings",(0,_.Mod)((0,_.ObjectNode)({name:(0,_.Mod)(t({validator:"resource",params:{pool:"$worldgen/noise_settings",isDefinition:!0}}),{enabled:d=>d.getArray().length>0}),bedrock_roof_position:(0,_.NumberNode)({integer:!0}),bedrock_floor_position:(0,_.NumberNode)({integer:!0}),sea_level:(0,_.NumberNode)({integer:!0}),min_surface_level:(0,_.NumberNode)({integer:!0}),disable_mob_generation:(0,_.BooleanNode)(),noise_caves_enabled:(0,_.BooleanNode)(),noodle_caves_enabled:(0,_.BooleanNode)(),aquifers_enabled:(0,_.BooleanNode)(),deepslate_enabled:(0,_.BooleanNode)(),ore_veins_enabled:(0,_.BooleanNode)(),default_block:e("block_state"),default_fluid:e("block_state"),noise:(0,_.ObjectNode)({min_y:(0,_.NumberNode)({integer:!0,min:-2048,max:2047}),height:(0,_.NumberNode)({integer:!0,min:0,max:4096}),density_factor:(0,_.NumberNode)(),density_offset:(0,_.NumberNode)(),size_horizontal:(0,_.NumberNode)({integer:!0}),size_vertical:(0,_.NumberNode)({integer:!0}),simplex_surface_noise:(0,_.BooleanNode)(),random_density_offset:(0,_.Opt)((0,_.BooleanNode)()),island_noise_override:(0,_.Opt)((0,_.BooleanNode)()),amplified:(0,_.Opt)((0,_.BooleanNode)()),sampling:(0,_.ObjectNode)({xz_scale:(0,_.NumberNode)(),y_scale:(0,_.NumberNode)(),xz_factor:(0,_.NumberNode)(),y_factor:(0,_.NumberNode)()}),bottom_slide:(0,_.ObjectNode)({target:(0,_.NumberNode)({integer:!0}),size:(0,_.NumberNode)({integer:!0,min:0}),offset:(0,_.NumberNode)({integer:!0})}),top_slide:(0,_.ObjectNode)({target:(0,_.NumberNode)({integer:!0}),size:(0,_.NumberNode)({integer:!0,min:0}),offset:(0,_.NumberNode)({integer:!0})})}),structures:e("generator_structures")},{context:"noise_settings"}),d=>({default:()=>Ot.DefaultNoiseSettings,validate:(a,n,N,z)=>{var u,v,M,O;return n=d.validate(a,n,N,z),((u=n==null?void 0:n.noise)===null||u===void 0?void 0:u.min_y)+((v=n==null?void 0:n.noise)===null||v===void 0?void 0:v.height)>2047&&N.add(a.push("noise").push("height"),"error.min_y_plus_height",2047),((M=n==null?void 0:n.noise)===null||M===void 0?void 0:M.height)%16!==0&&N.add(a.push("noise").push("height"),"error.height_multiple",16),((O=n==null?void 0:n.noise)===null||O===void 0?void 0:O.min_y)%16!==0&&N.add(a.push("noise").push("min_y"),"error.min_y_multiple",16),n}}))),o.register("generator_structures",(0,_.ObjectNode)({stronghold:(0,_.Opt)((0,_.ObjectNode)({distance:(0,_.NumberNode)({integer:!0,min:0,max:1023}),spread:(0,_.NumberNode)({integer:!0,min:0,max:1023}),count:(0,_.NumberNode)({integer:!0,min:1,max:4095})})),structures:(0,_.MapNode)(t({validator:"resource",params:{pool:"worldgen/structure_feature"}}),(0,_.Mod)((0,_.ObjectNode)({spacing:(0,_.NumberNode)({integer:!0,min:0,max:4096}),separation:(0,_.Mod)((0,_.NumberNode)({integer:!0,min:0,max:4096}),d=>({validate:(a,n,N,z)=>(a.pop().push("spacing").get()<=n&&N.add(a,"error.separation_smaller_spacing"),d.validate(a,n,N,z))})),salt:(0,_.NumberNode)({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),o.register("generator_layer",(0,_.Mod)((0,_.ObjectNode)({block:t({validator:"resource",params:{pool:"block"}}),height:(0,_.NumberNode)({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})}))}Se.initNoiseSettingsSchemas=kt;var je={};Object.defineProperty(je,"__esModule",{value:!0});je.initStructureFeatureSchemas=void 0;const $=w;function xt(o,r){const e=$.StringNode.bind(void 0,r),t=$.Reference.bind(void 0,o),d={start_pool:e({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:(0,$.NumberNode)({integer:!0})};o.register("configured_structure_feature",(0,$.Mod)((0,$.ObjectNode)({type:e({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:(0,$.ObjectNode)({[$.Switch]:["pop",{push:"type"}],[$.Case]:{"minecraft:bastion_remnant":d,"minecraft:buried_treasure":{probability:(0,$.NumberNode)({min:0,max:1})},"minecraft:mineshaft":{type:e({enum:["normal","mesa"]}),probability:(0,$.NumberNode)({min:0,max:1})},"minecraft:nether_fossil":{height:t("height_provider")},"minecraft:ocean_ruin":{biome_temp:e({enum:["cold","warm"]}),large_probability:(0,$.NumberNode)({min:0,max:1}),cluster_probability:(0,$.NumberNode)({min:0,max:1})},"minecraft:pillager_outpost":d,"minecraft:ruined_portal":{portal_type:e({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:(0,$.Opt)((0,$.BooleanNode)())},"minecraft:village":d}},{context:"structure_feature",disableSwitchContext:!0})},{context:"structure_feature"}),{default:()=>({type:"minecraft:bastion_remnant",config:{start_pool:"minecraft:bastion/starts",size:6}})}))}je.initStructureFeatureSchemas=xt;var Me={};Object.defineProperty(Me,"__esModule",{value:!0});Me.initSurfaceBuilderSchemas=void 0;const re=w;function wt(o,r){const e=re.StringNode.bind(void 0,r),t=re.Reference.bind(void 0,o);o.register("configured_surface_builder",(0,re.Mod)((0,re.ObjectNode)({type:e({validator:"resource",params:{pool:"worldgen/surface_builder"}}),config:(0,re.ObjectNode)({top_material:t("block_state"),under_material:t("block_state"),underwater_material:t("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"}}})}))}Me.initSurfaceBuilderSchemas=wt;var Ce={};Object.defineProperty(Ce,"__esModule",{value:!0});Ce.initTemplatePoolSchemas=void 0;const R=w,Fe=K;function St(o,r){const e=R.Reference.bind(void 0,o),t=R.StringNode.bind(void 0,r);o.register("template_pool",(0,R.Mod)((0,R.ObjectNode)({name:t(),fallback:t(),elements:(0,R.ListNode)(e("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"}}]})})),o.register("template_weighted_element",(0,R.Mod)((0,R.ObjectNode)({weight:(0,R.NumberNode)({integer:!0,min:1}),element:e("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),o.register("template_element",(0,R.Mod)((0,R.ObjectNode)({element_type:t({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:t({enum:["rigid","terrain_matching"]}),[R.Switch]:[{push:"element_type"}],[R.Case]:{"minecraft:feature_pool_element":{feature:t({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},"minecraft:legacy_single_pool_element":{location:t({validator:"resource",params:{pool:"$structure"}}),processors:Fe.Processors},"minecraft:list_pool_element":{elements:(0,R.ListNode)(e("template_element"))},"minecraft:single_pool_element":{location:t({validator:"resource",params:{pool:"$structure"}}),processors:Fe.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))}Ce.initTemplatePoolSchemas=St;Object.defineProperty(ve,"__esModule",{value:!0});ve.initWorldgenSchemas=void 0;const jt=Oe,Mt=ke,Ct=xe,Pt=we,Lt=Se,Bt=K,zt=je,$t=Me,Rt=Ce;function Tt(o,r){(0,Bt.initProcessorListSchemas)(o,r),(0,jt.initBiomeSchemas)(o,r),(0,Mt.initCarverSchemas)(o,r),(0,Ct.initDecoratorSchemas)(o,r),(0,Pt.initFeatureSchemas)(o,r),(0,Lt.initNoiseSettingsSchemas)(o,r),(0,zt.initStructureFeatureSchemas)(o,r),(0,$t.initSurfaceBuilderSchemas)(o,r),(0,Rt.initTemplatePoolSchemas)(o,r)}ve.initWorldgenSchemas=Tt;var Pe={};Object.defineProperty(Pe,"__esModule",{value:!0});Pe.initWorldSettingsSchemas=void 0;const H=w;function Ft(o,r){const e=H.Reference.bind(void 0,o),t=H.StringNode.bind(void 0,r);o.register("world_settings",(0,H.Mod)((0,H.ObjectNode)({generate_features:(0,H.BooleanNode)(),bonus_chest:(0,H.BooleanNode)(),seed:(0,H.NumberNode)({integer:!0}),dimensions:(0,H.MapNode)(t({validator:"resource",params:{pool:"$dimension"}}),e("dimension"))},{context:"world_settings"}),{default:()=>{const d=Math.floor(Math.random()*4294967296)-2147483648;return{generate_features:!0,bonus_chest:!1,seed:d,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:vanilla_layered",seed:d},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:multi_noise",seed:d,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:d,biome_source:{type:"minecraft:the_end",seed:d},settings:"minecraft:end"}}}}}}))}Pe.initWorldSettingsSchemas=Ft;Object.defineProperty(ae,"__esModule",{value:!0});ae.initSchemas=void 0;const Dt=ne,It=ce,qt=I,At=le,Et=_e,Wt=pe,Gt=ue,Ut=fe,Vt=be,Ht=ge,Kt=Ne,Xt=he,Zt=ye,Yt=ve,Jt=Pe;function Qt(o,r){(0,qt.initCommonSchemas)(o,r),(0,Dt.initAdvancementSchemas)(o,r),(0,It.initAssetsSchemas)(o,r),(0,At.initConditionSchemas)(o,r),(0,Wt.initDimensionTypeSchemas)(o,r),(0,Et.initDimensionSchemas)(o,r),(0,Gt.initItemModifierSchemas)(o,r),(0,Ut.initLootTableSchemas)(o,r),(0,Vt.initPackMcmetaSchemas)(o,r),(0,Ht.initPredicatesSchemas)(o,r),(0,Kt.initRecipeSchemas)(o,r),(0,Xt.initTagsSchemas)(o,r),(0,Zt.initTextComponentSchemas)(o,r),(0,Yt.initWorldgenSchemas)(o,r),(0,Jt.initWorldSettingsSchemas)(o,r)}ae.initSchemas=Qt;var er=ee&&ee.__createBinding||(Object.create?function(o,r,e,t){t===void 0&&(t=e);var d=Object.getOwnPropertyDescriptor(r,e);(!d||("get"in d?!r.__esModule:d.writable||d.configurable))&&(d={enumerable:!0,get:function(){return r[e]}}),Object.defineProperty(o,t,d)}:function(o,r,e,t){t===void 0&&(t=e),o[t]=r[e]}),tr=ee&&ee.__setModuleDefault||(Object.create?function(o,r){Object.defineProperty(o,"default",{enumerable:!0,value:r})}:function(o,r){o.default=r}),rr=ee&&ee.__importStar||function(o){if(o&&o.__esModule)return o;var r={};if(o!=null)for(var e in o)e!=="default"&&Object.prototype.hasOwnProperty.call(o,e)&&er(r,o,e);return tr(r,o),r};Object.defineProperty(G,"__esModule",{value:!0});var De=G.getSchemas=Ae=G.getCollections=qe=G.lootContext=void 0;const Ie=w,or=ie,ir=ae;var qe=G.lootContext=rr(T);function ar(){const o=new Ie.CollectionRegistry;return(0,or.initCollections)(o),o}var Ae=G.getCollections=ar;function nr(o){const r=new Ie.SchemaRegistry;return(0,ir.initSchemas)(r,o),r}De=G.getSchemas=nr;var mr=He({__proto__:null,get getSchemas(){return De},get getCollections(){return Ae},get lootContext(){return qe},default:G},[G]);export{mr as i}; -//# sourceMappingURL=index.d48dc598.js.map +var Ee=Object.defineProperty,We=Object.defineProperties;var Ge=Object.getOwnPropertyDescriptors;var Le=Object.getOwnPropertySymbols;var Ue=Object.prototype.hasOwnProperty,Ve=Object.prototype.propertyIsEnumerable;var Be=(o,r,e)=>r in o?Ee(o,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):o[r]=e,k=(o,r)=>{for(var e in r||(r={}))Ue.call(r,e)&&Be(o,e,r[e]);if(Le)for(var e of Le(r))Ve.call(r,e)&&Be(o,e,r[e]);return o},ze=(o,r)=>We(o,Ge(r));import{v as w,u as ee}from"./index.d528c217.js";function He(o,r){return r.forEach(function(e){e&&typeof e!="string"&&!Array.isArray(e)&&Object.keys(e).forEach(function(t){if(t!=="default"&&!(t in o)){var d=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(o,t,d.get?d:{enumerable:!0,get:function(){return e[t]}})}})}),Object.freeze(Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}))}var G={},ie={};Object.defineProperty(ie,"__esModule",{value:!0});ie.initCollections=void 0;function Ke(o){o.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"]),o.register("dimension",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),o.register("dimension_type",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),o.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"]),o.register("slot",["mainhand","offhand","head","chest","legs","feet"]),o.register("gamemode",["survival","creative","adventure","spectator"]),o.register("worldgen/noise_settings",["minecraft:overworld","minecraft:nether","minecraft:end","minecraft:amplified","minecraft:caves","minecraft:floating_islands"]),o.register("entity_source",["this","killer","direct_killer","killer_player"]),o.register("copy_source",["block_entity","this","killer","killer_player"]),o.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),o.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"]),o.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"]),o.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"]),o.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"]),o.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"]),o.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"]),o.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end","underground"]),o.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),o.register("generation_step",["air","liquid"]),o.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"]),o.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"]),o.register("dye_color",["white","orange","magenta","light_blue","yellow","lime","pink","gray","light_gray","cyan","purple","blue","brown","green","red","black"]),o.register("direction",["down","up","north","east","south","west"]),o.register("axis",["x","y","z"]),o.register("display_position",["firstperson_righthand","firstperson_lefthand","thirdperson_righthand","thirdperson_lefthand","gui","head","ground","fixed"]),o.register("gui_light",["front","side"]),o.register("item_model_predicates",["angle","blocking","broken","cast","charged","cooldown","custom_model_data","damage","damaged","firework","lefthanded","pull","pulling","throwing","time"]),o.register("glyph_provider_type",["bitmap","ttf","legacy_unicode"]),o.register("cat_texture",["textures/entity/cat/tabby.png","textures/entity/cat/black.png","textures/entity/cat/red.png","textures/entity/cat/siamese.png","textures/entity/cat/british_shorthair.png","textures/entity/cat/calico.png","textures/entity/cat/persian.png","textures/entity/cat/ragdoll.png","textures/entity/cat/white.png","textures/entity/cat/jellie.png","textures/entity/cat/all_black.png"])}ie.initCollections=Ke;var ae={},ne={};Object.defineProperty(ne,"__esModule",{value:!0});ne.initAdvancementSchemas=void 0;const s=w;function Xe(o,r){const e=s.Reference.bind(void 0,o),t=s.StringNode.bind(void 0,r),d=(0,s.ChoiceNode)([{type:"object",node:(0,s.Opt)(e("entity_predicate")),change:a=>{var n,N;return(N=(n=a[0])===null||n===void 0?void 0:n.predicate)!==null&&N!==void 0?N:{}}},{type:"list",node:(0,s.ListNode)(e("condition")),change:a=>[{condition:"minecraft:entity_properties",predicate:a}]}],{context:"conditions"});o.register("advancement",(0,s.Mod)((0,s.ObjectNode)({display:(0,s.Opt)((0,s.Mod)((0,s.ObjectNode)({icon:(0,s.ObjectNode)({item:t({validator:"resource",params:{pool:"item"}}),nbt:(0,s.Opt)(t({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:e("text_component"),description:e("text_component"),background:(0,s.Opt)(t()),frame:(0,s.Opt)(t({enum:["task","challenge","goal"]})),show_toast:(0,s.Opt)((0,s.BooleanNode)()),announce_to_chat:(0,s.Opt)((0,s.BooleanNode)()),hidden:(0,s.Opt)((0,s.BooleanNode)())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:(0,s.Opt)(t({validator:"resource",params:{pool:"$advancement"}})),criteria:(0,s.MapNode)(t(),e("advancement_criteria")),requirements:(0,s.Opt)((0,s.ListNode)((0,s.ListNode)(t()))),rewards:(0,s.Opt)((0,s.ObjectNode)({function:(0,s.Opt)(t({validator:"resource",params:{pool:"$function"}})),loot:(0,s.Opt)((0,s.ListNode)(t({validator:"resource",params:{pool:"$loot_table"}}))),recipes:(0,s.Opt)((0,s.ListNode)(t({validator:"resource",params:{pool:"$recipe"}}))),experience:(0,s.Opt)((0,s.NumberNode)({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),o.register("advancement_criteria",(0,s.ObjectNode)({trigger:t({validator:"resource",params:{pool:r.get("advancement_trigger")}}),conditions:(0,s.Opt)((0,s.ObjectNode)({player:(0,s.Mod)(d,{enabled:a=>a.pop().push("trigger").get()!=="minecraft:impossible"}),[s.Switch]:["pop",{push:"trigger"}],[s.Case]:{"minecraft:bee_nest_destroyed":{block:(0,s.Opt)(t({validator:"resource",params:{pool:"block"}})),num_bees_inside:(0,s.Opt)((0,s.NumberNode)({integer:!0})),item:(0,s.Opt)(e("item_predicate"))},"minecraft:bred_animals":{parent:d,partner:d,child:d},"minecraft:brewed_potion":{potion:(0,s.Opt)(t({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:(0,s.Opt)(t({validator:"resource",params:{pool:"$dimension"}})),to:(0,s.Opt)(t({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:(0,s.Opt)((0,s.ListNode)(d))},"minecraft:construct_beacon":{level:e("int_bounds")},"minecraft:consume_item":{item:(0,s.Opt)(e("item_predicate"))},"minecraft:cured_zombie_villager":{villager:d,zombie:d},"minecraft:effects_changed":{effects:(0,s.Opt)((0,s.MapNode)(t({validator:"resource",params:{pool:"mob_effect"}}),e("status_effect_predicate"))),source:(0,s.Opt)(d)},"minecraft:enter_block":{block:(0,s.Opt)(t({validator:"resource",params:{pool:"block"}})),state:(0,s.Opt)((0,s.MapNode)(t(),t(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:e("int_bounds"),item:(0,s.Opt)(e("item_predicate"))},"minecraft:entity_hurt_player":{damage:(0,s.Opt)(e("damage_predicate"))},"minecraft:entity_killed_player":{entity:d,killing_blow:(0,s.Opt)(e("damage_source_predicate"))},"minecraft:filled_bucket":{item:(0,s.Opt)(e("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:d,item:(0,s.Opt)(e("item_predicate"))},"minecraft:hero_of_the_village":{location:(0,s.Opt)(e("location_predicate"))},"minecraft:inventory_changed":{slots:(0,s.Opt)((0,s.ObjectNode)({empty:e("int_bounds"),occupied:e("int_bounds"),full:e("int_bounds")})),items:(0,s.Opt)((0,s.ListNode)(e("item_predicate")))},"minecraft:item_durability_changed":{delta:e("int_bounds"),durability:e("int_bounds"),item:(0,s.Opt)(e("item_predicate"))},"minecraft:item_used_on_block":{item:(0,s.Opt)(e("item_predicate")),location:(0,s.Opt)(e("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:e("int_bounds"),victims:(0,s.Opt)((0,s.ListNode)(d))},"minecraft:levitation":{distance:e("distance_predicate"),duration:e("int_bounds")},"minecraft:lightning_strike":{lightning:d,bystander:d},"minecraft:location":{location:(0,s.Opt)(e("location_predicate"))},"minecraft:nether_travel":{distance:e("distance_predicate"),entered:(0,s.Opt)(e("location_predicate")),exited:(0,s.Opt)(e("location_predicate"))},"minecraft:placed_block":{block:(0,s.Opt)(t({validator:"resource",params:{pool:"block"}})),state:(0,s.Opt)((0,s.MapNode)(t(),t(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:(0,s.Opt)(e("item_predicate")),location:(0,s.Opt)(e("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:t({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:(0,s.Opt)(e("damage_predicate")),entity:d},"minecraft:player_interacted_with_entity":{item:(0,s.Opt)(e("item_predicate")),entity:d},"minecraft:player_killed_entity":{entity:d,killing_blow:(0,s.Opt)(e("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:t({validator:"resource",params:{pool:"$recipe"}})},"minecraft:slept_in_bed":{location:(0,s.Opt)(e("location_predicate"))},"minecraft:slide_down_block":{block:(0,s.Opt)(t({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:(0,s.Opt)(e("item_predicate"))},"minecraft:summoned_entity":{entity:d},"minecraft:tame_animal":{entity:d},"minecraft:target_hit":{projectile:d,shooter:d,signal_strength:e("int_bounds")},"minecraft:thrown_item_picked_up_by_entity":{entity:d,item:(0,s.Opt)(e("item_predicate"))},"minecraft:used_ender_eye":{distance:e("float_bounds")},"minecraft:used_totem":{item:(0,s.Opt)(e("item_predicate"))},"minecraft:using_item":{item:(0,s.Opt)(e("item_predicate"))},"minecraft:villager_trade":{villager:d,item:(0,s.Opt)(e("item_predicate"))},"minecraft:voluntary_exile":{location:e("location_predicate")}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))}ne.initAdvancementSchemas=Xe;var ce={},de={};Object.defineProperty(de,"__esModule",{value:!0});de.initModelSchemas=void 0;const g=w;function Ze(o,r){g.Reference.bind(void 0,o);const e=g.StringNode.bind(void 0,r),t=(a,n,N)=>(0,g.ListNode)((0,g.NumberNode)({min:n,max:N}),{minLength:a,maxLength:a}),d=(0,g.ChoiceNode)([{type:"alias",match:a=>typeof a=="string"&&a.startsWith("#"),node:e(),change:a=>typeof a=="string"?`#${a}`:"#0"},{type:"reference",match:a=>typeof a=="string",node:e({validator:"resource",params:{pool:"$texture"}}),change:a=>typeof a=="string"?a.replace(/^#/,""):""}],{choiceContext:"texture"});o.register("model",(0,g.Mod)((0,g.ObjectNode)({parent:(0,g.Opt)(e({validator:"resource",params:{pool:"$model"}})),ambientocclusion:(0,g.Opt)((0,g.BooleanNode)()),gui_light:(0,g.Opt)(e({enum:"gui_light"})),textures:(0,g.Opt)((0,g.MapNode)(e(),d)),elements:(0,g.Opt)((0,g.ListNode)((0,g.ObjectNode)({from:t(3,-16,32),to:t(3,-16,32),rotation:(0,g.Opt)((0,g.ObjectNode)({origin:t(3),axis:e({enum:"axis"}),angle:(0,g.NumberEnum)({values:[-45,-22.5,0,22.5,45]}),rescale:(0,g.Opt)((0,g.BooleanNode)())})),shade:(0,g.Opt)((0,g.BooleanNode)()),faces:(0,g.MapNode)(e({enum:"direction"}),(0,g.ObjectNode)({texture:d,uv:(0,g.Opt)(t(4)),cullface:(0,g.Opt)(e({enum:"direction"})),rotation:(0,g.Opt)((0,g.NumberNode)({integer:!0})),tintindex:(0,g.Opt)((0,g.NumberNode)({integer:!0}))}))},{context:"model_element"}))),display:(0,g.Opt)((0,g.MapNode)(e({enum:"display_position"}),(0,g.ObjectNode)({rotation:t(3),translation:t(3,-80,80),scale:t(3,-4,4)},{context:"item_transform"}))),overrides:(0,g.Opt)((0,g.ListNode)((0,g.ObjectNode)({predicate:(0,g.MapNode)(e({enum:"item_model_predicates"}),(0,g.NumberNode)()),model:e({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))}de.initModelSchemas=Ze;var se={};Object.defineProperty(se,"__esModule",{value:!0});se.initBlockDefinitionSchemas=void 0;const x=w;function Ye(o,r){const e=x.Reference.bind(void 0,o),t=x.StringNode.bind(void 0,r);o.register("block_definition",(0,x.Mod)((0,x.ChoiceNode)([{type:"variants",match:a=>a.variants!==void 0,node:(0,x.ObjectNode)({variants:(0,x.MapNode)(t(),e("model_variant"))}),change:a=>({variants:{"":{}}})},{type:"multipart",match:a=>a.multipart!==void 0,node:(0,x.ObjectNode)({multipart:(0,x.ListNode)((0,x.ObjectNode)({when:(0,x.Opt)(e("multipart_condition")),apply:e("model_variant")}))}),change:a=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const d={model:t({validator:"resource",params:{pool:"$model"}}),x:(0,x.Opt)((0,x.NumberEnum)({integer:!0,values:[0,90,180,270]})),y:(0,x.Opt)((0,x.NumberEnum)({integer:!0,values:[0,90,180,270]})),uvlock:(0,x.Opt)((0,x.BooleanNode)())};o.register("model_variant",(0,x.ChoiceNode)([{type:"object",node:(0,x.ObjectNode)(d),change:a=>Array.isArray(a)&&a.length>0?a[0]:{}},{type:"list",node:(0,x.ListNode)((0,x.ObjectNode)(ze(k({},d),{weight:(0,x.Opt)((0,x.NumberNode)({integer:!0,min:1}))}),{context:"model_variant"})),change:a=>[k({weight:1},a)]}],{context:"model_variant"})),o.register("multipart_condition",(0,x.ChoiceNode)([{type:"object",priority:-1,match:()=>!0,node:(0,x.MapNode)(t(),t()),change:a=>typeof a=="object"&&Array.isArray(a==null?void 0:a.OR)&&a.OR.length>0?a.OR[0]:{}},{type:"or",match:a=>typeof a=="object"&&(a==null?void 0:a.OR)!==void 0,node:(0,x.ObjectNode)({OR:(0,x.ListNode)(e("multipart_condition"))}),change:a=>({OR:[a!=null?a:{}]})}],{context:"multipart_condition"}))}se.initBlockDefinitionSchemas=Ye;var me={};Object.defineProperty(me,"__esModule",{value:!0});me.initFontSchemas=void 0;const S=w;function Je(o,r){const e=S.Reference.bind(void 0,o),t=S.StringNode.bind(void 0,r);o.register("font",(0,S.ObjectNode)({providers:(0,S.ListNode)(e("glyph_provider"))},{context:"font"})),o.register("glyph_provider",(0,S.Mod)((0,S.ObjectNode)({type:t({enum:"glyph_provider_type"}),[S.Switch]:[{push:"type"}],[S.Case]:{bitmap:{file:t({validator:"resource",params:{pool:"$texture",suffix:".png"}}),height:(0,S.Opt)((0,S.NumberNode)({integer:!0})),ascent:(0,S.NumberNode)({integer:!0}),chars:(0,S.ListNode)(t(),{minLength:1})},ttf:{file:t({validator:"resource",params:{pool:"$texture",suffix:".png"}}),size:(0,S.Opt)((0,S.NumberNode)()),oversample:(0,S.Opt)((0,S.NumberNode)()),shift:(0,S.Opt)((0,S.ListNode)((0,S.NumberNode)(),{minLength:2,maxLength:2})),skip:(0,S.Opt)((0,S.StringOrList)(t()))},legacy_unicode:{sizes:t(),template:t()}}},{context:"glyph_provider"}),{default:()=>({type:"bitmap"})}))}me.initFontSchemas=Je;Object.defineProperty(ce,"__esModule",{value:!0});ce.initAssetsSchemas=void 0;const Qe=de,et=se,tt=me;function rt(o,r){(0,et.initBlockDefinitionSchemas)(o,r),(0,tt.initFontSchemas)(o,r),(0,Qe.initModelSchemas)(o,r)}ce.initAssetsSchemas=rt;var I={};(function(o){Object.defineProperty(o,"__esModule",{value:!0}),o.initCommonSchemas=o.IntProvider=o.FloatProvider=o.NoiseSettingsPresets=o.DefaultNoiseSettings=o.DimensionTypePresets=o.DefaultDimensionType=o.FunctionCases=o.ConditionCases=void 0;const r=w;o.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},o.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"}}};function e(t,d){const a=r.StringNode.bind(void 0,d),n=r.Reference.bind(void 0,t);t.register("block_state",(0,r.Mod)((0,r.ObjectNode)({Name:a({validator:"resource",params:{pool:"block"}}),Properties:(0,r.Opt)((0,r.MapNode)(a(),a(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),t.register("fluid_state",(0,r.Mod)((0,r.ObjectNode)({Name:a({validator:"resource",params:{pool:"fluid"}}),Properties:(0,r.Opt)((0,r.MapNode)(a(),a()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),t.register("block_pos",(0,r.Mod)((0,r.ListNode)((0,r.NumberNode)({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const N=u=>(0,r.Opt)((0,r.ChoiceNode)([{type:"number",node:(0,r.NumberNode)({integer:u}),change:v=>{var M,O;return v===void 0?0:(O=(M=v.min)!==null&&M!==void 0?M:v.max)!==null&&O!==void 0?O:0}},{type:"object",node:(0,r.ObjectNode)({min:(0,r.Opt)((0,r.NumberNode)({integer:u})),max:(0,r.Opt)((0,r.NumberNode)({integer:u}))},{context:"range"}),change:v=>({min:v!=null?v:0,max:v!=null?v:0})}]));t.register("int_bounds",N(!0)),t.register("float_bounds",N()),t.register("int_range",(0,r.ChoiceNode)([{type:"object",node:(0,r.ObjectNode)({min:(0,r.Opt)(n("number_provider")),max:(0,r.Opt)(n("number_provider"))})},{type:"number",node:(0,r.NumberNode)({integer:!0})}],{context:"range"}));const z=(u,v,M,O,L,B,q)=>{let oe={};L&&Object.keys(q[L]).forEach(F=>{oe[F]=(0,r.Mod)(q[L][F],{enabled:D=>D.push("type").get()===void 0})});const X=(0,r.ObjectNode)(k({type:(0,r.Mod)((0,r.Opt)(a({validator:"resource",params:{pool:u}})),{hidden:()=>!0}),[r.Switch]:[{push:"type"}],[r.Case]:q},oe),{context:B,disableSwitchContext:!0}),Z=[{type:v,node:q[O][M]}];return L&&Z.push({type:"object",priority:-1,node:X}),Object.keys(q).forEach(F=>{Z.push({type:F,match:D=>{var Y;if("minecraft:"+((Y=D==null?void 0:D.type)===null||Y===void 0?void 0:Y.replace(/^minecraft:/,""))===F)return!0;const A=D?Object.keys(D):[];return typeof D=="object"&&((A==null?void 0:A.length)===0||(A==null?void 0:A.length)===1&&(A==null?void 0:A[0])==="type")},node:X,change:D=>({type:F})})}),(0,r.ChoiceNode)(Z,{context:B,choiceContext:`${B}.type`})};t.register("number_provider",z("loot_number_provider_type","number","value","minecraft:constant","minecraft:uniform","number_provider",{"minecraft:constant":{value:(0,r.NumberNode)()},"minecraft:uniform":{min:n("number_provider"),max:n("number_provider")},"minecraft:binomial":{n:n("number_provider"),p:n("number_provider")},"minecraft:score":{target:n("scoreboard_name_provider"),score:a({validator:"objective"}),scale:(0,r.Opt)((0,r.NumberNode)())}})),t.register("scoreboard_name_provider",z("loot_score_provider_type","string","target","minecraft:context",null,"score_provider",{"minecraft:fixed":{name:a({validator:"entity",params:{amount:"multiple",type:"entities",isScoreHolder:!0}})},"minecraft:context":{target:(0,r.Mod)(a({enum:"entity_source"}),{default:()=>"this"})}})),t.register("nbt_provider",z("loot_nbt_provider_type","string","target","minecraft:context",null,"nbt_provider",{"minecraft:storage":{source:a({validator:"resource",params:{pool:"$storage"}})},"minecraft:context":{target:(0,r.Mod)(a({enum:"copy_source"}),{default:()=>"this"})}})),o.FloatProvider=u=>z("float_provider_type","number","value","minecraft:constant",null,"float_provider",{"minecraft:constant":{value:(0,r.NumberNode)(u)},"minecraft:uniform":{value:(0,r.ObjectNode)({min_inclusive:(0,r.NumberNode)(u),max_exclusive:(0,r.NumberNode)(u)})},"minecraft:clamped_normal":{value:(0,r.ObjectNode)({min:(0,r.NumberNode)(),max:(0,r.NumberNode)(),mean:(0,r.NumberNode)(),deviation:(0,r.NumberNode)()})},"minecraft:trapezoid":{value:(0,r.ObjectNode)({min:(0,r.NumberNode)(),max:(0,r.NumberNode)(),plateau:(0,r.NumberNode)()})}}),t.register("float_provider",(0,o.FloatProvider)()),o.IntProvider=u=>z("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:(0,r.NumberNode)(k({integer:!0},u))},"minecraft:uniform":{value:(0,r.ObjectNode)({min_inclusive:(0,r.NumberNode)(k({integer:!0},u)),max_inclusive:(0,r.NumberNode)(k({integer:!0},u))})},"minecraft:biased_to_bottom":{value:(0,r.ObjectNode)({min_inclusive:(0,r.NumberNode)(k({integer:!0},u)),max_inclusive:(0,r.NumberNode)(k({integer:!0},u))})},"minecraft:clamped":{value:(0,r.ObjectNode)({min_inclusive:(0,r.NumberNode)(k({integer:!0},u)),max_inclusive:(0,r.NumberNode)(k({integer:!0},u)),source:n("int_provider")})}}),t.register("int_provider",(0,o.IntProvider)()),t.register("vertical_anchor",(0,r.ChoiceNode)(["absolute","above_bottom","below_top"].map(u=>({type:u,match:v=>(v==null?void 0:v[u])!==void 0,change:v=>{var M,O,L;return{[u]:(L=(O=(M=v.absolute)!==null&&M!==void 0?M:v.above_bottom)!==null&&O!==void 0?O:v.below_top)!==null&&L!==void 0?L:0}},node:(0,r.ObjectNode)({[u]:(0,r.NumberNode)({integer:!0,min:-2048,max:2047})})})),{context:"vertical_anchor"})),t.register("height_provider",z("height_provider_type","number","value","minecraft:constant",null,"height_provider",{"minecraft:constant":{value:n("vertical_anchor")},"minecraft:uniform":{min_inclusive:n("vertical_anchor"),max_inclusive:n("vertical_anchor")},"minecraft:biased_to_bottom":{min_inclusive:n("vertical_anchor"),max_inclusive:n("vertical_anchor"),inner:(0,r.Opt)((0,r.NumberNode)({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:n("vertical_anchor"),max_inclusive:n("vertical_anchor"),inner:(0,r.Opt)((0,r.NumberNode)({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:n("vertical_anchor"),max_inclusive:n("vertical_anchor"),plateau:(0,r.Opt)((0,r.NumberNode)({integer:!0}))}})),o.ConditionCases=(u=a({enum:"entity_source"}))=>({"minecraft:alternative":{terms:(0,r.ListNode)(n("condition"))},"minecraft:block_state_property":{block:a({validator:"resource",params:{pool:"block"}}),properties:(0,r.MapNode)(a(),a(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:n("damage_source_predicate")},"minecraft:entity_properties":{entity:u,predicate:n("entity_predicate")},"minecraft:entity_scores":{entity:u,scores:(0,r.MapNode)(a({validator:"objective"}),n("int_range"))},"minecraft:inverted":{term:n("condition")},"minecraft:killed_by_player":{inverse:(0,r.Opt)((0,r.BooleanNode)())},"minecraft:location_check":{offsetX:(0,r.Opt)((0,r.NumberNode)({integer:!0})),offsetY:(0,r.Opt)((0,r.NumberNode)({integer:!0})),offsetZ:(0,r.Opt)((0,r.NumberNode)({integer:!0})),predicate:n("location_predicate")},"minecraft:match_tool":{predicate:n("item_predicate")},"minecraft:random_chance":{chance:(0,r.NumberNode)({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:(0,r.NumberNode)({min:0,max:1}),looting_multiplier:(0,r.NumberNode)()},"minecraft:reference":{name:a({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:a({validator:"resource",params:{pool:"enchantment"}}),chances:(0,r.ListNode)((0,r.NumberNode)({min:0,max:1}))},"minecraft:time_check":{value:n("int_range"),period:(0,r.Opt)((0,r.NumberNode)({integer:!0}))},"minecraft:value_check":{value:n("number_provider"),range:n("int_range")},"minecraft:weather_check":{raining:(0,r.Opt)((0,r.BooleanNode)()),thundering:(0,r.Opt)((0,r.BooleanNode)())}}),o.FunctionCases=(u,v=a({enum:"copy_source"}),M=a({enum:"entity_source"}))=>{const O={"minecraft:apply_bonus":{enchantment:a({validator:"resource",params:{pool:"enchantment"}}),formula:a({validator:"resource",params:{pool:d.get("loot_table_apply_bonus_formula")}}),parameters:(0,r.Mod)((0,r.ObjectNode)({bonusMultiplier:(0,r.Mod)((0,r.NumberNode)(),{enabled:B=>B.pop().push("formula").get()==="minecraft:uniform_bonus_count"}),extra:(0,r.Mod)((0,r.NumberNode)(),{enabled:B=>B.pop().push("formula").get()==="minecraft:binomial_with_bonus_count"}),probability:(0,r.Mod)((0,r.NumberNode)(),{enabled:B=>B.pop().push("formula").get()==="minecraft:binomial_with_bonus_count"})}),{enabled:B=>B.push("formula").get()!=="minecraft:ore_drops"})},"minecraft:copy_name":{source:v},"minecraft:copy_nbt":{source:n("nbt_provider"),ops:(0,r.ListNode)((0,r.ObjectNode)({source:a({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:a({validator:"nbt_path",params:{category:"minecraft:item"}}),op:a({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:a({validator:"resource",params:{pool:"block"}}),properties:(0,r.ListNode)(a({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:(0,r.Opt)((0,r.ListNode)(a({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:n("number_provider"),treasure:(0,r.Opt)((0,r.BooleanNode)())},"minecraft:exploration_map":{destination:(0,r.Opt)(a({enum:"map_feature"})),decoration:(0,r.Opt)(a({enum:"map_decoration"})),zoom:(0,r.Opt)((0,r.NumberNode)({integer:!0})),search_radius:(0,r.Opt)((0,r.NumberNode)({integer:!0})),skip_existing_chunks:(0,r.Opt)((0,r.BooleanNode)())},"minecraft:fill_player_head":{entity:M},"minecraft:limit_count":{limit:n("int_range")},"minecraft:looting_enchant":{count:n("number_provider"),limit:(0,r.Opt)((0,r.NumberNode)({integer:!0}))},"minecraft:set_attributes":{modifiers:(0,r.ListNode)(n("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:(0,r.ListNode)((0,r.ObjectNode)({pattern:a({enum:"banner_pattern"}),color:a({enum:"dye_color"})})),append:(0,r.Opt)((0,r.BooleanNode)())},"minecraft:set_contents":{entries:(0,r.ListNode)(n("loot_entry"))},"minecraft:set_count":{count:n("number_provider"),add:(0,r.Opt)((0,r.BooleanNode)())},"minecraft:set_damage":{damage:n("number_provider"),add:(0,r.Opt)((0,r.BooleanNode)())},"minecraft:set_enchantments":{enchantments:(0,r.MapNode)(a({validator:"resource",params:{pool:"enchantment"}}),n("number_provider")),add:(0,r.Opt)((0,r.BooleanNode)())},"minecraft:set_loot_table":{name:a({validator:"resource",params:{pool:"$loot_table"}}),seed:(0,r.Opt)((0,r.NumberNode)({integer:!0}))},"minecraft:set_lore":{entity:(0,r.Opt)(M),lore:(0,r.ListNode)(n("text_component")),replace:(0,r.Opt)((0,r.BooleanNode)())},"minecraft:set_name":{entity:(0,r.Opt)(M),name:(0,r.Opt)(n("text_component"))},"minecraft:set_nbt":{tag:a({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:(0,r.Opt)((0,r.ListNode)((0,r.ObjectNode)({type:a({validator:"resource",params:{pool:"mob_effect"}}),duration:n("number_provider")})))}},L={};return d.get("loot_function_type").forEach(B=>{L[B]=k(k({},O[B]),u)}),L},o.DimensionTypePresets=u=>(0,r.ObjectOrPreset)(a({validator:"resource",params:{pool:"$dimension_type"}}),u,{"minecraft:overworld":o.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}}),o.NoiseSettingsPresets=u=>(0,r.ObjectOrPreset)(a({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),u,{"minecraft:overworld":o.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"}}}})}o.initCommonSchemas=e})(I);var le={};Object.defineProperty(le,"__esModule",{value:!0});le.initConditionSchemas=void 0;const J=w,ot=I;function it(o,r){const e=J.Reference.bind(void 0,o),t=J.StringNode.bind(void 0,r);o.register("predicate",(0,J.ObjectOrList)(e("condition"),{choiceContext:"condition"})),o.register("condition",(0,J.Mod)((0,J.ObjectNode)({condition:t({validator:"resource",params:{pool:"loot_condition_type"}}),[J.Switch]:[{push:"condition"}],[J.Case]:(0,ot.ConditionCases)()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))}le.initConditionSchemas=it;var _e={};Object.defineProperty(_e,"__esModule",{value:!0});_e.initDimensionSchemas=void 0;const b=w,$e=I;function at(o,r){const e=b.Reference.bind(void 0,o),t=b.StringNode.bind(void 0,r),d=a=>(0,b.Mod)(a,{enabled:n=>n.push("preset").get()===void 0});o.register("dimension",(0,b.Mod)((0,b.ObjectNode)({type:(0,$e.DimensionTypePresets)(e("dimension_type")),generator:(0,b.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[b.Switch]:[{push:"type"}],[b.Case]:{"minecraft:noise":{seed:(0,b.NumberNode)({integer:!0}),settings:(0,$e.NoiseSettingsPresets)(e("noise_settings")),biome_source:(0,b.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/biome_source"}}),[b.Switch]:[{push:"type"}],[b.Case]:{"minecraft:fixed":{biome:t({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{seed:(0,b.NumberNode)({integer:!0}),preset:(0,b.Opt)(t({enum:["nether"]})),altitude_noise:d(e("generator_biome_noise")),temperature_noise:d(e("generator_biome_noise")),humidity_noise:d(e("generator_biome_noise")),weirdness_noise:d(e("generator_biome_noise")),biomes:d((0,b.Mod)((0,b.ListNode)(e("generator_biome")),{default:()=>[{biome:"minecraft:plains"}]}))},"minecraft:checkerboard":{scale:(0,b.Opt)((0,b.NumberNode)({integer:!0,min:0,max:62})),biomes:(0,b.ListNode)(t({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:(0,b.NumberNode)({integer:!0})},"minecraft:vanilla_layered":{seed:(0,b.NumberNode)({integer:!0}),large_biomes:(0,b.Opt)((0,b.BooleanNode)()),legacy_biome_init_layer:(0,b.Opt)((0,b.BooleanNode)())}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:(0,b.ObjectNode)({biome:(0,b.Opt)(t({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:(0,b.Opt)((0,b.BooleanNode)()),features:(0,b.Opt)((0,b.BooleanNode)()),layers:(0,b.ListNode)(e("generator_layer")),structures:e("generator_structures")})}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>{const a=Math.floor(Math.random()*4294967296)-2147483648;return{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:a,biome_source:{type:"minecraft:fixed",seed:a,biome:"minecraft:plains"},settings:"minecraft:overworld"}}}})),o.register("generator_biome",(0,b.Mod)((0,b.ObjectNode)({biome:t({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:(0,b.ObjectNode)({altitude:(0,b.NumberNode)(),temperature:(0,b.NumberNode)(),humidity:(0,b.NumberNode)(),weirdness:(0,b.NumberNode)(),offset:(0,b.NumberNode)()})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})})),o.register("generator_biome_noise",(0,b.Mod)((0,b.ObjectNode)({firstOctave:(0,b.NumberNode)({integer:!0}),amplitudes:(0,b.ListNode)((0,b.NumberNode)())},{context:"generator_biome_noise"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})}))}_e.initDimensionSchemas=at;var pe={};Object.defineProperty(pe,"__esModule",{value:!0});pe.initDimensionTypeSchemas=void 0;const C=w,nt=I;function ct(o,r){const e=C.StringNode.bind(void 0,r);o.register("dimension_type",(0,C.Mod)((0,C.ObjectNode)({name:(0,C.Mod)(e({validator:"resource",params:{pool:"$dimension_type",isDefinition:!0}}),{enabled:t=>t.getArray().length>0}),ultrawarm:(0,C.BooleanNode)(),natural:(0,C.BooleanNode)(),piglin_safe:(0,C.BooleanNode)(),respawn_anchor_works:(0,C.BooleanNode)(),bed_works:(0,C.BooleanNode)(),has_raids:(0,C.BooleanNode)(),has_skylight:(0,C.BooleanNode)(),has_ceiling:(0,C.BooleanNode)(),coordinate_scale:(0,C.NumberNode)({min:1e-5,max:3e7}),ambient_light:(0,C.NumberNode)(),fixed_time:(0,C.Opt)((0,C.NumberNode)({integer:!0})),logical_height:(0,C.NumberNode)({integer:!0,min:0,max:4096}),effects:(0,C.Opt)(e({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:e({validator:"resource",params:{pool:"$tag/block"}}),min_y:(0,C.NumberNode)({integer:!0,min:-2048,max:2047}),height:(0,C.NumberNode)({integer:!0,min:0,max:4096})},{context:"dimension_type"}),t=>({default:()=>nt.DefaultDimensionType,validate:(d,a,n,N)=>(a=t.validate(d,a,n,N),(a==null?void 0:a.min_y)+(a==null?void 0:a.height)>2047&&n.add(d.push("height"),"error.min_y_plus_height",2047),(a==null?void 0:a.logical_height)>(a==null?void 0:a.height)&&n.add(d.push("logical_height"),"error.logical_height"),(a==null?void 0:a.height)%16!==0&&n.add(d.push("height"),"error.height_multiple",16),(a==null?void 0:a.min_y)%16!==0&&n.add(d.push("min_y"),"error.min_y_multiple",16),a)})))}pe.initDimensionTypeSchemas=ct;var ue={};Object.defineProperty(ue,"__esModule",{value:!0});ue.initItemModifierSchemas=void 0;const E=w,dt=I;function st(o,r){const e=E.Reference.bind(void 0,o),t=E.StringNode.bind(void 0,r);o.register("item_modifier",(0,E.ObjectOrList)(e("function"),{choiceContext:"function"}));const d={conditions:(0,E.Opt)((0,E.ListNode)(e("condition")))};o.register("function",(0,E.Mod)((0,E.ObjectNode)({function:t({validator:"resource",params:{pool:"loot_function_type"}}),[E.Switch]:[{push:"function"}],[E.Case]:(0,dt.FunctionCases)(d)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))}ue.initItemModifierSchemas=st;var fe={},T={};Object.defineProperty(T,"__esModule",{value:!0});T.LootFunctions=T.LootConditions=T.LootCopySources=T.LootEntitySources=T.LootTableTypes=void 0;T.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]}]]);T.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]);T.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]);T.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",[]]]);T.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(fe,"__esModule",{value:!0});fe.initLootTableSchemas=void 0;const f=w,te=T,Re=I;function mt(o,r){const e=f.Reference.bind(void 0,o),t=f.StringNode.bind(void 0,r),d={conditions:(0,f.Opt)((0,f.ListNode)(e("loot_condition")))},a=k({functions:(0,f.Opt)((0,f.ListNode)(e("loot_function")))},d);function n(O,L,B){const q=[],oe=X=>r.get(L).filter(Z=>{var F;return((F=O.get(Z))!==null&&F!==void 0?F:[]).every(Y=>X.includes(Y))});for(const[X,{allows:Z,requires:F}]of te.LootTableTypes){const D=[...Z,...F];q.push({match:Y=>Y.getModel().get(new f.Path(["type"]))===X,node:B(oe(D))})}return q.push({match:X=>!0,node:B(L)}),(0,f.SwitchNode)(q)}const N=n(te.LootConditions,"loot_condition_type",O=>t({validator:"resource",params:{pool:O instanceof Array?O:"loot_condition_type"}})),z=n(te.LootFunctions,"loot_function_type",O=>t({validator:"resource",params:{pool:O instanceof Array?O:"loot_function_type"}})),u=n(te.LootEntitySources,"entity_source",O=>t({enum:O})),v=n(te.LootCopySources,"copy_source",O=>t({enum:O}));o.register("loot_table",(0,f.Mod)((0,f.ObjectNode)({type:(0,f.Opt)(t({validator:"resource",params:{pool:r.get("loot_context_type")}})),pools:(0,f.Opt)((0,f.ListNode)((0,f.Mod)((0,f.ObjectNode)(k({rolls:e("number_provider"),bonus_rolls:(0,f.Opt)(e("number_provider")),entries:(0,f.ListNode)(e("loot_entry"))},a),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:(0,f.Opt)((0,f.ListNode)(e("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const M={enabled:O=>{var L;return((L=O.pop().get())===null||L===void 0?void 0:L.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(O.push("type").get())}};o.register("loot_entry",(0,f.Mod)((0,f.ObjectNode)({type:t({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:(0,f.Opt)((0,f.Mod)((0,f.NumberNode)({integer:!0,min:1}),M)),quality:(0,f.Opt)((0,f.Mod)((0,f.NumberNode)({integer:!0}),M)),[f.Switch]:[{push:"type"}],[f.Case]:{"minecraft:alternatives":k({children:(0,f.ListNode)(e("loot_entry"))},a),"minecraft:dynamic":k({name:t()},a),"minecraft:group":k({children:(0,f.ListNode)(e("loot_entry"))},a),"minecraft:item":k({name:t({validator:"resource",params:{pool:"item"}})},a),"minecraft:loot_table":k({name:t({validator:"resource",params:{pool:"$loot_table"}})},a),"minecraft:sequence":k({children:(0,f.ListNode)(e("loot_entry"))},a),"minecraft:tag":k({name:t({validator:"resource",params:{pool:"$tag/item"}}),expand:(0,f.Opt)((0,f.BooleanNode)())},a)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),o.register("loot_function",(0,f.Mod)((0,f.ObjectNode)({function:z,[f.Switch]:[{push:"function"}],[f.Case]:(0,Re.FunctionCases)(d,v,u)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),o.register("loot_condition",(0,f.Mod)((0,f.ObjectNode)({condition:N,[f.Switch]:[{push:"condition"}],[f.Case]:(0,Re.ConditionCases)(u)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),o.register("attribute_modifier",(0,f.Mod)((0,f.ObjectNode)({attribute:t({validator:"resource",params:{pool:"attribute"}}),name:t(),amount:e("number_provider"),operation:t({enum:["addition","multiply_base","multiply_total"]}),id:(0,f.Opt)(t({validator:"uuid"})),slot:(0,f.StringOrList)(t({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))}fe.initLootTableSchemas=mt;var be={};Object.defineProperty(be,"__esModule",{value:!0});be.initPackMcmetaSchemas=void 0;const Q=w,U=7;function lt(o,r){o.register("pack_mcmeta",(0,Q.Mod)((0,Q.ObjectNode)({pack:(0,Q.Mod)((0,Q.ObjectNode)({pack_format:(0,Q.Mod)((0,Q.NumberNode)({integer:!0,min:U,max:U}),{default:()=>U,canUpdate:(e,t)=>t!==U,update:()=>[{name:"pack_format",params:[U],newValue:U}]}),description:(0,Q.Reference)(o,"text_component")}),{default:()=>({pack_format:U,description:""})})}),{default:()=>({pack:{pack_format:U,description:""}})}))}be.initPackMcmetaSchemas=lt;var ge={};Object.defineProperty(ge,"__esModule",{value:!0});ge.initPredicatesSchemas=void 0;const c=w;function _t(o,r){const e=c.Reference.bind(void 0,o),t=c.StringNode.bind(void 0,r),d=(0,c.ChoiceNode)([{type:"string",node:t(),change:a=>typeof a=="boolean"||typeof a=="number"?a.toString():""},{type:"number",node:(0,c.NumberNode)(),change:a=>typeof a=="string"?parseInt(a):0},{type:"object",node:(0,c.ObjectNode)({min:(0,c.Opt)((0,c.NumberNode)({integer:!0})),max:(0,c.Opt)((0,c.NumberNode)({integer:!0}))}),change:a=>typeof a=="number"?{min:a,max:a}:{}},{type:"boolean",node:(0,c.BooleanNode)(),change:a=>a==="true"||a===1}]);o.register("item_predicate",(0,c.ObjectNode)({items:(0,c.Opt)((0,c.ListNode)(t({validator:"resource",params:{pool:"item"}}))),tag:(0,c.Opt)(t({validator:"resource",params:{pool:"$tag/item"}})),count:e("int_bounds"),durability:e("int_bounds"),potion:(0,c.Opt)(t({validator:"resource",params:{pool:"potion"}})),nbt:(0,c.Opt)(t({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:(0,c.Opt)((0,c.ListNode)(e("enchantment_predicate")))},{context:"item"})),o.register("enchantment_predicate",(0,c.ObjectNode)({enchantment:(0,c.Opt)(t({validator:"resource",params:{pool:"enchantment"}})),levels:e("int_bounds")},{context:"enchantment"})),o.register("block_predicate",(0,c.ObjectNode)({blocks:(0,c.Opt)((0,c.ListNode)(t({validator:"resource",params:{pool:"block"}}))),tag:(0,c.Opt)(t({validator:"resource",params:{pool:"$tag/block"}})),nbt:(0,c.Opt)(t({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:(0,c.Opt)((0,c.MapNode)(t(),d,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),o.register("fluid_predicate",(0,c.ObjectNode)({fluid:(0,c.Opt)(t({validator:"resource",params:{pool:"fluid"}})),tag:(0,c.Opt)(t({validator:"resource",params:{pool:"$tag/fluid"}})),state:(0,c.Opt)((0,c.MapNode)(t(),d))},{context:"fluid"})),o.register("location_predicate",(0,c.ObjectNode)({position:(0,c.Opt)((0,c.ObjectNode)({x:e("float_bounds"),y:e("float_bounds"),z:e("float_bounds")})),biome:(0,c.Opt)(t({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:(0,c.Opt)(t({enum:r.get("worldgen/structure_feature").map(a=>a.slice(10))})),dimension:(0,c.Opt)(t({validator:"resource",params:{pool:"$dimension"}})),light:(0,c.Opt)((0,c.ObjectNode)({light:e("int_bounds")})),smokey:(0,c.Opt)((0,c.BooleanNode)()),block:(0,c.Opt)(e("block_predicate")),fluid:(0,c.Opt)(e("fluid_predicate"))},{context:"location"})),o.register("statistic_predicate",(0,c.ObjectNode)({type:t({validator:"resource",params:{pool:"stat_type"}}),stat:t(),value:e("int_bounds"),[c.Switch]:[{push:"type"}],[c.Case]:{"minecraft:mined":{stat:t({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:t({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:t({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:t({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:t({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:t({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:t({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:t({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:t({validator:"resource",params:{pool:"custom_stat"}})}}})),o.register("player_predicate",(0,c.ObjectNode)({gamemode:(0,c.Opt)(t({enum:"gamemode"})),level:e("int_bounds"),advancements:(0,c.Opt)((0,c.MapNode)(t({validator:"resource",params:{pool:"$advancement"}}),(0,c.ChoiceNode)([{type:"boolean",node:(0,c.BooleanNode)(),change:a=>!0},{type:"object",node:(0,c.MapNode)(t(),(0,c.BooleanNode)())}]))),recipes:(0,c.Opt)((0,c.MapNode)(t({validator:"resource",params:{pool:"$recipe"}}),(0,c.BooleanNode)())),stats:(0,c.Opt)((0,c.ListNode)(e("statistic_predicate"))),looking_at:(0,c.Opt)(e("entity_predicate"))},{context:"player"})),o.register("status_effect_predicate",(0,c.ObjectNode)({amplifier:e("int_bounds"),duration:e("int_bounds"),ambient:(0,c.Opt)((0,c.BooleanNode)()),visible:(0,c.Opt)((0,c.BooleanNode)())},{context:"status_effect"})),o.register("distance_predicate",(0,c.ObjectNode)({x:e("float_bounds"),y:e("float_bounds"),z:e("float_bounds"),absolute:e("float_bounds"),horizontal:e("float_bounds")},{context:"distance"})),o.register("entity_predicate",(0,c.ObjectNode)({type:(0,c.Opt)(t({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:(0,c.Opt)(t({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:(0,c.Opt)(t({validator:"team"})),location:(0,c.Opt)(e("location_predicate")),stepping_on:(0,c.Opt)(e("location_predicate")),distance:(0,c.Opt)(e("distance_predicate")),flags:(0,c.Opt)((0,c.ObjectNode)({is_on_fire:(0,c.Opt)((0,c.BooleanNode)()),is_sneaking:(0,c.Opt)((0,c.BooleanNode)()),is_sprinting:(0,c.Opt)((0,c.BooleanNode)()),is_swimming:(0,c.Opt)((0,c.BooleanNode)()),is_baby:(0,c.Opt)((0,c.BooleanNode)())})),equipment:(0,c.Opt)((0,c.MapNode)(t({enum:"slot"}),e("item_predicate"))),vehicle:(0,c.Opt)(e("entity_predicate")),passenger:(0,c.Opt)(e("entity_predicate")),targeted_entity:(0,c.Opt)(e("entity_predicate")),player:(0,c.Opt)(e("player_predicate")),lightning_bolt:(0,c.Opt)((0,c.ObjectNode)({blocks_set_on_fire:(0,c.Opt)(e("int_bounds")),entity_struck:(0,c.Opt)(e("entity_predicate"))})),fishing_hook:(0,c.Opt)((0,c.ObjectNode)({in_open_water:(0,c.Opt)((0,c.BooleanNode)())})),catType:(0,c.Opt)(t({enum:"cat_texture"})),effects:(0,c.Opt)((0,c.MapNode)(t({validator:"resource",params:{pool:"mob_effect"}}),e("status_effect_predicate")))},{context:"entity"})),o.register("damage_source_predicate",(0,c.ObjectNode)({is_explosion:(0,c.Opt)((0,c.BooleanNode)()),is_fire:(0,c.Opt)((0,c.BooleanNode)()),is_magic:(0,c.Opt)((0,c.BooleanNode)()),is_projectile:(0,c.Opt)((0,c.BooleanNode)()),is_lightning:(0,c.Opt)((0,c.BooleanNode)()),bypasses_armor:(0,c.Opt)((0,c.BooleanNode)()),bypasses_invulnerability:(0,c.Opt)((0,c.BooleanNode)()),bypasses_magic:(0,c.Opt)((0,c.BooleanNode)()),source_entity:(0,c.Opt)(e("entity_predicate")),direct_entity:(0,c.Opt)(e("entity_predicate"))},{context:"damage_source"})),o.register("damage_predicate",(0,c.ObjectNode)({dealt:e("float_bounds"),taken:e("float_bounds"),blocked:(0,c.Opt)((0,c.BooleanNode)()),source_entity:(0,c.Opt)(e("entity_predicate")),type:(0,c.Opt)(e("damage_source_predicate"))},{context:"damage"}))}ge.initPredicatesSchemas=_t;var Ne={};Object.defineProperty(Ne,"__esModule",{value:!0});Ne.initRecipeSchemas=void 0;const p=w;function pt(o,r){const e=p.Reference.bind(void 0,o),t=p.StringNode.bind(void 0,r);o.register("recipe",(0,p.Mod)((0,p.ObjectNode)({type:t({validator:"resource",params:{pool:"recipe_serializer"}}),[p.Switch]:[{push:"type"}],[p.Case]:{"minecraft:crafting_shaped":{group:(0,p.Opt)(t({enum:"recipe_group",additional:!0})),pattern:(0,p.ListNode)(t()),key:(0,p.MapNode)(t(),e("recipe_ingredient")),result:e("recipe_result")},"minecraft:crafting_shapeless":{group:(0,p.Opt)(t()),ingredients:(0,p.ListNode)(e("recipe_ingredient")),result:e("recipe_result")},"minecraft:smelting":{group:(0,p.Opt)(t()),ingredient:e("recipe_ingredient"),result:t({validator:"resource",params:{pool:"item"}}),experience:(0,p.Opt)((0,p.NumberNode)()),cookingtime:(0,p.Opt)((0,p.Mod)((0,p.NumberNode)({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:(0,p.Opt)(t()),ingredient:e("recipe_ingredient"),result:t({validator:"resource",params:{pool:"item"}}),experience:(0,p.Opt)((0,p.NumberNode)()),cookingtime:(0,p.Opt)((0,p.Mod)((0,p.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:(0,p.Opt)(t()),ingredient:e("recipe_ingredient"),result:t({validator:"resource",params:{pool:"item"}}),experience:(0,p.Opt)((0,p.NumberNode)()),cookingtime:(0,p.Opt)((0,p.Mod)((0,p.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:(0,p.Opt)(t()),ingredient:e("recipe_ingredient"),result:t({validator:"resource",params:{pool:"item"}}),experience:(0,p.Opt)((0,p.NumberNode)()),cookingtime:(0,p.Opt)((0,p.Mod)((0,p.NumberNode)({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:(0,p.Opt)(t()),ingredient:e("recipe_ingredient"),result:t({validator:"resource",params:{pool:"item"}}),count:(0,p.NumberNode)({integer:!0})},"minecraft:smithing":{group:(0,p.Opt)(t()),base:e("recipe_ingredient_object"),addition:e("recipe_ingredient_object"),result:e("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),o.register("recipe_ingredient",(0,p.Mod)((0,p.ChoiceNode)([{type:"object",node:e("recipe_ingredient_object"),change:d=>d[0]},{type:"list",node:(0,p.ListNode)(e("recipe_ingredient_object")),change:d=>[d]}]),{default:()=>({item:"minecraft:stone"})})),o.register("recipe_ingredient_object",(0,p.Mod)((0,p.ObjectNode)({item:(0,p.Opt)(t({validator:"resource",params:{pool:"item"}})),tag:(0,p.Opt)(t({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),o.register("recipe_result",(0,p.Mod)((0,p.ObjectNode)({item:t({validator:"resource",params:{pool:"item"}}),count:(0,p.Opt)((0,p.Mod)((0,p.NumberNode)({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))}Ne.initRecipeSchemas=pt;var he={};Object.defineProperty(he,"__esModule",{value:!0});he.initTagsSchemas=void 0;const W=w;function ut(o,r){const e=W.StringNode.bind(void 0,r),t=d=>(0,W.Mod)((0,W.ObjectNode)({replace:(0,W.Opt)((0,W.BooleanNode)()),values:(0,W.ListNode)((0,W.ChoiceNode)([{type:"string",node:e({validator:"resource",params:{pool:d,allowTag:!0}}),change:a=>a.id},{type:"object",node:(0,W.ObjectNode)({id:e({validator:"resource",params:{pool:d,allowTag:!0,allowUnknown:!0}}),required:(0,W.BooleanNode)()}),change:a=>({id:a})}]))},{context:"tag"}),{default:()=>({values:[]})});o.register("block_tag",t("block")),o.register("entity_type_tag",t("entity_type")),o.register("fluid_tag",t("fluid")),o.register("function_tag",t("$function")),o.register("game_event_tag",t("game_event")),o.register("item_tag",t("item"))}he.initTagsSchemas=ut;var ye={};Object.defineProperty(ye,"__esModule",{value:!0});ye.initTextComponentSchemas=void 0;const m=w;function ft(o,r){const e=m.Reference.bind(void 0,o),t=m.StringNode.bind(void 0,r),d=n=>{var N;return n instanceof Array?d(n[0]):(N=n==null?void 0:n.text)!==null&&N!==void 0?N:typeof n=="object"?"":n==null?void 0:n.toString()};o.register("text_component",(0,m.Mod)((0,m.ChoiceNode)([{type:"object",node:e("text_component_object"),change:n=>n instanceof Array?typeof n[0]=="object"?n[0]:{text:d(n[0])}:typeof n=="object"?n:{text:d(n)}},{type:"list",node:e("text_component_list"),change:n=>[n]},{type:"string",priority:1,node:t(),change:d},{type:"number",node:(0,m.NumberNode)(),change:n=>{const N=parseFloat(d(n));return isFinite(N)?N:n?1:0}},{type:"boolean",node:(0,m.BooleanNode)(),change:n=>{const N=d(n);return N==="true"||N==="false"?N==="true":!!N}}],{context:"text_component"}),{default:()=>({text:""})}));const a={color:(0,m.Opt)(t()),font:(0,m.Opt)(t()),bold:(0,m.Opt)((0,m.BooleanNode)()),italic:(0,m.Opt)((0,m.BooleanNode)()),underlined:(0,m.Opt)((0,m.BooleanNode)()),strikethrough:(0,m.Opt)((0,m.BooleanNode)()),obfuscated:(0,m.Opt)((0,m.BooleanNode)()),insertion:(0,m.Opt)(t()),clickEvent:(0,m.Opt)((0,m.ObjectNode)({action:t({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[m.Switch]:[{push:"action"}],[m.Case]:{change_page:{value:t()},copy_to_clipboard:{value:t()},open_file:{value:t()},open_url:{value:t()},run_command:{value:t({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:t({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:(0,m.Opt)((0,m.ObjectNode)({action:t({enum:["show_text","show_item","show_entity"]}),[m.Switch]:[{push:"action"}],[m.Case]:{show_text:{value:(0,m.Opt)(e("text_component")),contents:(0,m.Opt)(e("text_component"))},show_item:{value:(0,m.Opt)(t({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:(0,m.Opt)((0,m.ObjectNode)({id:t({validator:"resource",params:{pool:"item"}}),count:(0,m.Opt)((0,m.NumberNode)({integer:!0})),tag:(0,m.Opt)(t({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:(0,m.Opt)((0,m.ObjectNode)({name:(0,m.Opt)(t()),type:(0,m.Opt)(t()),id:(0,m.Opt)(t())})),contents:(0,m.Opt)((0,m.Mod)((0,m.ObjectNode)({name:(0,m.Opt)(e("text_component")),type:t({validator:"resource",params:{pool:"entity_type"}}),id:t({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:(0,m.Opt)(e("text_component_list"))};o.register("text_component_object",(0,m.Mod)((0,m.ChoiceNode)([{type:"text",match:n=>typeof n=="object",change:n=>({text:""}),priority:-1,node:(0,m.ObjectNode)(k({text:t()},a))},{type:"translation",match:n=>(n==null?void 0:n.translate)!==void 0,change:n=>({translate:""}),node:(0,m.ObjectNode)(k({translate:t(),with:(0,m.Opt)(e("text_component_list"))},a))},{type:"score",match:n=>(n==null?void 0:n.score)!==void 0,change:n=>({score:{}}),node:(0,m.ObjectNode)(k({score:(0,m.ObjectNode)({name:t({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:t({validator:"objective"}),value:(0,m.Opt)(t())})},a))},{type:"selector",match:n=>(n==null?void 0:n.selector)!==void 0,change:n=>({selector:""}),node:(0,m.ObjectNode)(k({selector:t({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:(0,m.Opt)(e("text_component"))},a))},{type:"keybind",match:n=>(n==null?void 0:n.keybind)!==void 0,change:n=>({keybind:""}),node:(0,m.ObjectNode)(k({keybind:t({enum:"keybind",additional:!0})},a))},{type:"nbt",match:n=>(n==null?void 0:n.nbt)!==void 0,change:n=>({nbt:""}),node:(0,m.ObjectNode)(k({nbt:t({validator:"nbt_path"}),block:(0,m.Opt)(t({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:(0,m.Opt)(t({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:(0,m.Opt)(t({validator:"resource",params:{pool:"$storage"}})),interpret:(0,m.Opt)((0,m.BooleanNode)()),separator:(0,m.Opt)(e("text_component"))},a))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),o.register("text_component_list",(0,m.Mod)((0,m.ListNode)(e("text_component")),{default:()=>[{text:""}]}))}ye.initTextComponentSchemas=ft;var ve={},Oe={};Object.defineProperty(Oe,"__esModule",{value:!0});Oe.initBiomeSchemas=void 0;const l=w;function bt(o,r){const e=l.StringNode.bind(void 0,r);o.register("biome",(0,l.Mod)((0,l.ObjectNode)({surface_builder:e({validator:"resource",params:{pool:"$worldgen/configured_surface_builder"}}),depth:(0,l.NumberNode)(),scale:(0,l.NumberNode)(),temperature:(0,l.NumberNode)(),downfall:(0,l.NumberNode)(),precipitation:e({enum:["none","rain","snow"]}),temperature_modifier:(0,l.Opt)(e({enum:["none","frozen"]})),category:e({enum:"biome_category"}),player_spawn_friendly:(0,l.Opt)((0,l.BooleanNode)()),creature_spawn_probability:(0,l.Opt)((0,l.NumberNode)({min:0,max:1})),effects:(0,l.ObjectNode)({sky_color:(0,l.NumberNode)({color:!0}),fog_color:(0,l.NumberNode)({color:!0}),water_color:(0,l.NumberNode)({color:!0}),water_fog_color:(0,l.NumberNode)({color:!0}),grass_color:(0,l.Opt)((0,l.NumberNode)({color:!0})),foliage_color:(0,l.Opt)((0,l.NumberNode)({color:!0})),grass_color_modifier:(0,l.Opt)(e({enum:["none","dark_forest","swamp"]})),ambient_sound:(0,l.Opt)(e()),mood_sound:(0,l.Opt)((0,l.ObjectNode)({sound:e(),tick_delay:(0,l.NumberNode)({integer:!0}),block_search_extent:(0,l.NumberNode)({integer:!0}),offset:(0,l.NumberNode)()})),additions_sound:(0,l.Opt)((0,l.ObjectNode)({sound:e(),tick_chance:(0,l.NumberNode)({min:0,max:1})})),music:(0,l.Opt)((0,l.ObjectNode)({sound:e(),min_delay:(0,l.NumberNode)({integer:!0,min:0}),max_delay:(0,l.NumberNode)({integer:!0,min:0}),replace_current_music:(0,l.BooleanNode)()})),particle:(0,l.Opt)((0,l.ObjectNode)({options:(0,l.ObjectNode)({type:e()}),probability:(0,l.NumberNode)({min:0,max:1})}))}),starts:(0,l.ListNode)(e({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),spawners:(0,l.MapNode)(e({enum:["monster","creature","ambient","underground_water_creature","water_creature","water_ambient","misc"]}),(0,l.Mod)((0,l.ListNode)((0,l.ObjectNode)({type:e({validator:"resource",params:{pool:"entity_type"}}),weight:(0,l.NumberNode)({integer:!0}),minCount:(0,l.NumberNode)({integer:!0}),maxCount:(0,l.NumberNode)({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:(0,l.MapNode)(e({validator:"resource",params:{pool:"entity_type"}}),(0,l.Mod)((0,l.ObjectNode)({energy_budget:(0,l.NumberNode)(),charge:(0,l.NumberNode)()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:(0,l.MapNode)(e({enum:["air","liquid"]}),(0,l.Mod)((0,l.ListNode)(e({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:(0,l.ListNode)((0,l.Mod)((0,l.ListNode)(e({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}})}))}Oe.initBiomeSchemas=bt;var ke={};Object.defineProperty(ke,"__esModule",{value:!0});ke.initCarverSchemas=void 0;const j=w,V=I;function gt(o,r){const e=j.Reference.bind(void 0,o),t=j.StringNode.bind(void 0,r),d={vertical_rotation:(0,V.FloatProvider)(),shape:(0,j.ObjectNode)({distance_factor:(0,V.FloatProvider)(),thickness:(0,V.FloatProvider)(),width_smoothness:(0,j.NumberNode)({integer:!0,min:0}),horizontal_radius_factor:(0,V.FloatProvider)(),vertical_radius_default_factor:(0,j.NumberNode)(),vertical_radius_center_factor:(0,j.NumberNode)()})},a={horizontal_radius_multiplier:(0,V.FloatProvider)(),vertical_radius_multiplier:(0,V.FloatProvider)(),floor_level:(0,V.FloatProvider)({min:-1,max:1})};o.register("configured_carver",(0,j.Mod)((0,j.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/carver"}}),config:(0,j.ObjectNode)({probability:(0,j.NumberNode)({min:0,max:1}),y:e("height_provider"),yScale:(0,V.FloatProvider)(),lava_level:e("vertical_anchor"),aquifers_enabled:(0,j.BooleanNode)(),debug_settings:(0,j.Opt)((0,j.ObjectNode)({debug_mode:(0,j.Opt)((0,j.BooleanNode)()),air_state:(0,j.Opt)(e("block_state")),water_state:(0,j.Opt)(e("block_state")),lava_state:(0,j.Opt)(e("block_state")),barrier_state:(0,j.Opt)(e("block_state"))})),[j.Switch]:["pop",{push:"type"}],[j.Case]:{"minecraft:canyon":d,"minecraft:cave":a,"minecraft:nether_cave":a}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))}ke.initCarverSchemas=gt;var xe={};Object.defineProperty(xe,"__esModule",{value:!0});xe.initDecoratorSchemas=void 0;const P=w,Nt=I;function ht(o,r){const e=P.Reference.bind(void 0,o),t=P.StringNode.bind(void 0,r),d={count:(0,Nt.IntProvider)({min:0,max:256})};o.register("configured_decorator",(0,P.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/decorator"}}),config:(0,P.ObjectNode)({[P.Switch]:["pop",{push:"type"}],[P.Case]:{"minecraft:carving_mask":{step:t({enum:"generation_step"})},"minecraft:cave_surface":{surface:t({enum:["floor","ceiling"]}),floor_to_ceiling_search_range:(0,P.NumberNode)({integer:!0})},"minecraft:chance":{chance:(0,P.NumberNode)({integer:!0,min:0})},"minecraft:count":d,"minecraft:count_extra":{count:(0,P.NumberNode)({integer:!0,min:0}),extra_count:(0,P.NumberNode)({integer:!0,min:0}),extra_chance:(0,P.NumberNode)({min:0,max:1})},"minecraft:count_multilayer":d,"minecraft:count_noise":{noise_level:(0,P.NumberNode)(),below_noise:(0,P.NumberNode)({integer:!0}),above_noise:(0,P.NumberNode)({integer:!0})},"minecraft:count_noise_biased":{noise_to_count_ratio:(0,P.NumberNode)({integer:!0}),noise_factor:(0,P.NumberNode)(),noise_offset:(0,P.Opt)((0,P.NumberNode)())},"minecraft:decorated":{outer:e("configured_decorator"),inner:e("configured_decorator")},"minecraft:heightmap":{heightmap:t({enum:"heightmap_type"})},"minecraft:heightmap_spread_double":{heightmap:t({enum:"heightmap_type"})},"minecraft:lava_lake":{chance:(0,P.NumberNode)({integer:!0,min:0})},"minecraft:range":{height:e("height_provider")},"minecraft:water_depth_threshold":{max_water_depth:(0,P.NumberNode)({integer:!0})}}},{context:"decorator",category:"predicate"})},{context:"decorator",category:"predicate"}))}xe.initDecoratorSchemas=ht;var we={},K={};Object.defineProperty(K,"__esModule",{value:!0});K.initProcessorListSchemas=K.Processors=void 0;const h=w;function yt(o,r){const e=h.Reference.bind(void 0,o),t=h.StringNode.bind(void 0,r);K.Processors=(0,h.ChoiceNode)([{type:"string",node:t({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:a=>{}},{type:"object",node:e("processor_list"),change:a=>({processors:[{processor_type:"minecraft:nop"}]})}]),o.register("processor_list",(0,h.Mod)((0,h.ObjectNode)({processors:(0,h.ListNode)(e("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"}}]}]})})),o.register("processor",(0,h.Mod)((0,h.ObjectNode)({processor_type:t({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[h.Switch]:[{push:"processor_type"}],[h.Case]:{"minecraft:block_age":{mossiness:(0,h.NumberNode)()},"minecraft:block_ignore":{blocks:(0,h.ListNode)(e("block_state"))},"minecraft:block_rot":{integrity:(0,h.NumberNode)({min:0,max:1})},"minecraft:gravity":{heightmap:t({enum:"heightmap_type"}),offset:(0,h.NumberNode)({integer:!0})},"minecraft:protected_blocks":{value:t({validator:"resource",params:{pool:"$tag/block"}})},"minecraft:rule":{rules:(0,h.ListNode)(e("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"}}]})})),o.register("processor_rule",(0,h.Mod)((0,h.ObjectNode)({position_predicate:(0,h.Opt)(e("pos_rule_test")),location_predicate:e("rule_test"),input_predicate:e("rule_test"),output_state:e("block_state"),output_nbt:(0,h.Opt)(t({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 d={min_dist:(0,h.Opt)((0,h.NumberNode)({min:0,max:255,integer:!0})),max_dist:(0,h.Opt)((0,h.NumberNode)({min:0,max:255,integer:!0})),min_chance:(0,h.Opt)((0,h.NumberNode)({min:0,max:1})),max_chance:(0,h.Opt)((0,h.NumberNode)({min:0,max:1}))};o.register("pos_rule_test",(0,h.ObjectNode)({predicate_type:t({validator:"resource",params:{pool:"pos_rule_test"}}),[h.Switch]:[{push:"predicate_type"}],[h.Case]:{"minecraft:axis_aligned_linear_pos":k({axis:t({enum:["x","y","z"]})},d),"minecraft:linear_pos":d}},{context:"pos_rule_test",disableSwitchContext:!0})),o.register("rule_test",(0,h.ObjectNode)({predicate_type:t({validator:"resource",params:{pool:"rule_test"}}),[h.Switch]:[{push:"predicate_type"}],[h.Case]:{"minecraft:block_match":{block:t({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:e("block_state")},"minecraft:random_block_match":{block:t({validator:"resource",params:{pool:"block"}}),probability:(0,h.NumberNode)({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:e("block_state"),probability:(0,h.NumberNode)({min:0,max:1})},"minecraft:tag_match":{tag:t({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))}K.initProcessorListSchemas=yt;Object.defineProperty(we,"__esModule",{value:!0});we.initFeatureSchemas=void 0;const i=w,y=I,Te=K;function vt(o,r){const e=i.Reference.bind(void 0,o),t=i.StringNode.bind(void 0,r),d={can_replace:(0,i.Opt)((0,i.BooleanNode)()),project:(0,i.Opt)((0,i.BooleanNode)()),need_water:(0,i.Opt)((0,i.BooleanNode)()),xspread:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0})),yspread:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0})),zspread:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0})),tries:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:1})),state_provider:e("block_state_provider"),block_placer:e("block_placer"),whitelist:(0,i.ListNode)(e("block_state")),blacklist:(0,i.ListNode)(e("block_state"))},a={state:e("block_state"),radius:(0,y.IntProvider)({min:0,max:8}),half_height:(0,i.NumberNode)({integer:!0,min:0,max:4}),targets:(0,i.ListNode)(e("block_state"))},n={cap_provider:e("block_state_provider"),stem_provider:e("block_state_provider"),foliage_radius:(0,i.Opt)((0,i.NumberNode)({integer:!0}))},N=(0,i.ObjectNode)({target:e("rule_test"),state:e("block_state")}),z={size:(0,i.NumberNode)({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:(0,i.NumberNode)({min:0,max:1}),targets:(0,i.ListNode)(N)},u=(0,i.ChoiceNode)([{type:"string",node:t({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:e("configured_feature")}],{choiceContext:"feature"}),v={surface:t({enum:["floor","ceiling"]}),depth:(0,y.IntProvider)({min:1,max:128}),vertical_range:(0,i.NumberNode)({integer:!0,min:1,max:256}),extra_bottom_block_chance:(0,i.NumberNode)({min:0,max:1}),extra_edge_column_chance:(0,i.NumberNode)({min:0,max:1}),vegetation_chance:(0,i.NumberNode)({min:0,max:1}),xz_radius:(0,y.IntProvider)(),replaceable:t({validator:"resource",params:{pool:"$tag/block"}}),ground_state:e("block_state_provider"),vegetation_feature:u};o.register("configured_feature",(0,i.Mod)((0,i.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/feature"}}),config:(0,i.ObjectNode)({[i.Switch]:["pop",{push:"type"}],[i.Case]:{"minecraft:bamboo":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:basalt_columns":{reach:(0,y.IntProvider)({min:0,max:3}),height:(0,y.IntProvider)({min:1,max:10})},"minecraft:block_pile":{state_provider:e("block_state_provider")},"minecraft:decorated":{decorator:e("configured_decorator"),feature:u},"minecraft:decorated_flower":{decorator:e("configured_decorator"),feature:u},"minecraft:delta_feature":{contents:e("block_state"),rim:e("block_state"),size:(0,y.IntProvider)({min:0,max:16}),rim_size:(0,y.IntProvider)({min:0,max:16})},"minecraft:disk":a,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:(0,i.NumberNode)({integer:!0,min:1,max:512}),height:(0,y.IntProvider)({min:0,max:128}),radius:(0,y.IntProvider)({min:0,max:128}),max_stalagmite_stalactite_height_diff:(0,i.NumberNode)({integer:!0,min:0,max:64}),height_deviation:(0,i.NumberNode)({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:(0,y.IntProvider)({min:0,max:128}),density:(0,y.FloatProvider)({min:0,max:2}),wetness:(0,y.FloatProvider)({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:(0,i.NumberNode)({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:(0,i.NumberNode)({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:(0,i.NumberNode)({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:(0,i.BooleanNode)(),exit:(0,i.Opt)(e("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:(0,i.Opt)((0,i.BooleanNode)()),crystal_beam_target:(0,i.Opt)(e("block_pos")),spikes:(0,i.ListNode)((0,i.ObjectNode)({centerX:(0,i.Opt)((0,i.NumberNode)({integer:!0})),centerZ:(0,i.Opt)((0,i.NumberNode)({integer:!0})),radius:(0,i.Opt)((0,i.NumberNode)({integer:!0})),height:(0,i.Opt)((0,i.NumberNode)({integer:!0})),guarded:(0,i.Opt)((0,i.BooleanNode)())}))},"minecraft:fill_layer":{state:e("block_state"),height:(0,i.NumberNode)({integer:!0,min:0,max:255})},"minecraft:flower":d,"minecraft:forest_rock":{state:e("block_state")},"minecraft:fossil":{max_empty_corners_allowed:(0,i.NumberNode)({integer:!0,min:0,max:7}),fossil_structures:(0,i.ListNode)(t({validator:"resource",params:{pool:"$structure"}})),overlay_structures:(0,i.ListNode)(t({validator:"resource",params:{pool:"$structure"}})),fossil_processors:Te.Processors,overlay_processors:Te.Processors},"minecraft:geode":{blocks:(0,i.ObjectNode)({filling_provider:e("block_state_provider"),inner_layer_provider:e("block_state_provider"),alternate_inner_layer_provider:e("block_state_provider"),middle_layer_provider:e("block_state_provider"),outer_layer_provider:e("block_state_provider"),inner_placements:(0,i.ListNode)(e("block_state")),cannot_replace:t({validator:"resource",params:{pool:"$tag/block"}}),invalid_blocks:t({validator:"resource",params:{pool:"$tag/block"}})}),layers:(0,i.ObjectNode)({filling:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50})),inner_layer:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50})),middle_layer:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50})),outer_layer:(0,i.Opt)((0,i.NumberNode)({min:.01,max:50}))}),crack:(0,i.ObjectNode)({generate_crack_chance:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),base_crack_size:(0,i.Opt)((0,i.NumberNode)({min:0,max:5})),crack_point_offset:(0,i.Opt)((0,i.NumberNode)({min:0,max:10}))}),noise_multiplier:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),use_potential_placements_chance:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),use_alternate_layer0_chance:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),placements_require_layer0_alternate:(0,i.Opt)((0,i.BooleanNode)()),outer_wall_distance:(0,i.Opt)((0,y.IntProvider)({min:1,max:20})),distribution_points:(0,i.Opt)((0,y.IntProvider)({min:1,max:20})),point_offset:(0,i.Opt)((0,y.IntProvider)({min:0,max:10})),min_gen_offset:(0,i.Opt)((0,i.NumberNode)({integer:!0})),max_gen_offset:(0,i.Opt)((0,i.NumberNode)({integer:!0})),invalid_blocks_threshold:(0,i.NumberNode)({integer:!0})},"minecraft:glow_lichen":{search_range:(0,i.Opt)((0,i.NumberNode)({min:1,max:64,integer:!0})),chance_of_spreading:(0,i.Opt)((0,i.NumberNode)({min:0,max:1})),can_place_on_floor:(0,i.Opt)((0,i.BooleanNode)()),can_place_on_ceiling:(0,i.Opt)((0,i.BooleanNode)()),can_place_on_wall:(0,i.Opt)((0,i.BooleanNode)()),can_be_placed_on:(0,i.ListNode)(e("block_state"))},"minecraft:growing_plant":{direction:t({enum:["up","down","north","east","south","west"]}),allow_water:(0,i.BooleanNode)(),height_distribution:(0,i.ListNode)((0,i.ObjectNode)({weight:(0,i.NumberNode)({integer:!0}),data:(0,y.IntProvider)()})),body_provider:e("block_state_provider"),head_provider:e("block_state_provider")},"minecraft:huge_brown_mushroom":n,"minecraft:huge_fungus":{hat_state:e("block_state"),decor_state:e("block_state"),stem_state:e("block_state"),valid_base_block:e("block_state"),planted:(0,i.Opt)((0,i.BooleanNode)())},"minecraft:huge_red_mushroom":n,"minecraft:ice_patch":a,"minecraft:iceberg":{state:e("block_state")},"minecraft:lake":{state:e("block_state")},"minecraft:large_dripstone":{floor_to_ceiling_search_range:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:1,max:512})),column_radius:(0,y.IntProvider)({min:0,max:60}),height_scale:(0,y.FloatProvider)({min:0,max:20}),max_column_radius_to_cave_height_ratio:(0,i.NumberNode)({min:0,max:1}),stalactite_bluntness:(0,y.FloatProvider)({min:.1,max:10}),stalagmite_bluntness:(0,y.FloatProvider)({min:.1,max:10}),wind_speed:(0,y.FloatProvider)({min:0,max:2}),min_radius_for_wind:(0,i.NumberNode)({integer:!0,min:0,max:100}),min_bluntness_for_wind:(0,i.NumberNode)({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:e("block_state_provider")},"minecraft:netherrack_replace_blobs":{state:e("block_state"),target:e("block_state"),radius:(0,y.IntProvider)({min:0,max:12})},"minecraft:no_bonemeal_flower":d,"minecraft:ore":z,"minecraft:random_patch":d,"minecraft:random_boolean_selector":{feature_false:u,feature_true:u},"minecraft:random_selector":{features:(0,i.ListNode)((0,i.ObjectNode)({chance:(0,i.NumberNode)({min:0,max:1}),feature:u})),default:u},"minecraft:replace_single_block":{targets:(0,i.ListNode)(N)},"minecraft:root_system":{required_vertical_space_for_tree:(0,i.NumberNode)({integer:!0,min:1,max:64}),root_radius:(0,i.NumberNode)({integer:!0,min:1,max:64}),root_placement_attempts:(0,i.NumberNode)({integer:!0,min:1,max:256}),root_column_max_height:(0,i.NumberNode)({integer:!0,min:1,max:4096}),hanging_root_radius:(0,i.NumberNode)({integer:!0,min:1,max:64}),hanging_roots_vertical_span:(0,i.NumberNode)({integer:!0,min:0,max:16}),hanging_root_placement_attempts:(0,i.NumberNode)({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:(0,i.NumberNode)({integer:!0,min:1,max:64}),root_replaceable:t({validator:"resource",params:{pool:"$tag/block"}}),root_state_provider:e("block_state_provider"),hanging_root_state_provider:e("block_state_provider"),feature:u},"minecraft:scattered_ore":z,"minecraft:sea_pickle":{count:(0,y.IntProvider)({min:0,max:256})},"minecraft:seagrass":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:simple_block":{to_place:e("block_state_provider"),place_on:(0,i.Opt)((0,i.ListNode)(e("block_state"))),place_in:(0,i.Opt)((0,i.ListNode)(e("block_state"))),place_under:(0,i.Opt)((0,i.ListNode)(e("block_state")))},"minecraft:simple_random_selector":{features:(0,i.ListNode)(u)},"minecraft:small_dripstone":{max_placements:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:100})),empty_space_search_radius:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:20})),max_offset_from_origin:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:20})),chance_of_taller_dripstone:(0,i.Opt)((0,i.NumberNode)({min:0,max:1}))},"minecraft:spring_feature":{state:e("fluid_state"),rock_count:(0,i.NumberNode)({integer:!0}),hole_count:(0,i.NumberNode)({integer:!0}),requires_block_below:(0,i.BooleanNode)(),valid_blocks:(0,i.ListNode)(t({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{ignore_vines:(0,i.Opt)((0,i.BooleanNode)()),force_dirt:(0,i.Opt)((0,i.BooleanNode)()),minimum_size:e("feature_size"),dirt_provider:e("block_state_provider"),sapling_provider:e("block_state_provider"),trunk_provider:e("block_state_provider"),foliage_provider:e("block_state_provider"),trunk_placer:(0,i.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:(0,i.NumberNode)({integer:!0,min:0,max:32}),height_rand_a:(0,i.NumberNode)({integer:!0,min:0,max:24}),height_rand_b:(0,i.NumberNode)({integer:!0,min:0,max:24}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:bending_trunk_placer":{bend_length:(0,y.IntProvider)({min:1,max:64}),min_height_for_leaves:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:(0,i.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:(0,y.IntProvider)({min:0,max:16}),offset:(0,y.IntProvider)({min:0,max:16}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:blob_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:(0,i.NumberNode)({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:(0,y.IntProvider)({min:0,max:24})},"minecraft:pine_foliage_placer":{height:(0,y.IntProvider)({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:(0,y.IntProvider)({min:1,max:512}),leaf_placement_attempts:(0,i.NumberNode)({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:(0,y.IntProvider)({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:(0,i.ListNode)((0,i.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:alter_ground":{provider:e("block_state_provider")},"minecraft:beehive":{probability:(0,i.NumberNode)({min:0,max:1})},"minecraft:cocoa":{probability:(0,i.NumberNode)({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:underwater_magma":{floor_search_range:(0,i.NumberNode)({integer:!0,min:0,max:512}),placement_radius_around_floor:(0,i.NumberNode)({integer:!0,min:0,max:64}),placement_probability_per_valid_position:(0,i.NumberNode)({min:0,max:1})},"minecraft:vegetation_patch":v,"minecraft:waterlogged_vegetation_patch":v}},{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}}}}})})),o.register("feature_size",(0,i.Mod)((0,i.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:(0,i.Opt)((0,i.NumberNode)({min:0,max:80})),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:two_layers_feature_size":{limit:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:81})),lower_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:80})),upper_limit:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:80})),lower_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16})),middle_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16})),upper_size:(0,i.Opt)((0,i.NumberNode)({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})})),o.register("block_state_provider",(0,i.Mod)((0,i.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:randomized_int_state_provider":{property:t(),values:(0,y.IntProvider)(),source:e("block_state_provider")},"minecraft:rotated_block_provider":{state:e("block_state")},"minecraft:simple_state_provider":{state:e("block_state")},"minecraft:weighted_state_provider":{entries:(0,i.ListNode)((0,i.Mod)((0,i.ObjectNode)({weight:(0,i.NumberNode)({integer:!0,min:1}),data:e("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})})),o.register("block_placer",(0,i.Mod)((0,i.ObjectNode)({type:t({validator:"resource",params:{pool:"worldgen/block_placer_type"}}),[i.Switch]:[{push:"type"}],[i.Case]:{"minecraft:column_placer":{size:(0,y.IntProvider)({min:0})}}},{context:"block_placer"}),{default:()=>({type:"minecraft:simple_block_placer"})}))}we.initFeatureSchemas=vt;var Se={};Object.defineProperty(Se,"__esModule",{value:!0});Se.initNoiseSettingsSchemas=void 0;const _=w,Ot=I;function kt(o,r){const e=_.Reference.bind(void 0,o),t=_.StringNode.bind(void 0,r);o.register("noise_settings",(0,_.Mod)((0,_.ObjectNode)({name:(0,_.Mod)(t({validator:"resource",params:{pool:"$worldgen/noise_settings",isDefinition:!0}}),{enabled:d=>d.getArray().length>0}),bedrock_roof_position:(0,_.NumberNode)({integer:!0}),bedrock_floor_position:(0,_.NumberNode)({integer:!0}),sea_level:(0,_.NumberNode)({integer:!0}),min_surface_level:(0,_.NumberNode)({integer:!0}),disable_mob_generation:(0,_.BooleanNode)(),noise_caves_enabled:(0,_.BooleanNode)(),noodle_caves_enabled:(0,_.BooleanNode)(),aquifers_enabled:(0,_.BooleanNode)(),deepslate_enabled:(0,_.BooleanNode)(),ore_veins_enabled:(0,_.BooleanNode)(),default_block:e("block_state"),default_fluid:e("block_state"),noise:(0,_.ObjectNode)({min_y:(0,_.NumberNode)({integer:!0,min:-2048,max:2047}),height:(0,_.NumberNode)({integer:!0,min:0,max:4096}),density_factor:(0,_.NumberNode)(),density_offset:(0,_.NumberNode)(),size_horizontal:(0,_.NumberNode)({integer:!0}),size_vertical:(0,_.NumberNode)({integer:!0}),simplex_surface_noise:(0,_.BooleanNode)(),random_density_offset:(0,_.Opt)((0,_.BooleanNode)()),island_noise_override:(0,_.Opt)((0,_.BooleanNode)()),amplified:(0,_.Opt)((0,_.BooleanNode)()),sampling:(0,_.ObjectNode)({xz_scale:(0,_.NumberNode)(),y_scale:(0,_.NumberNode)(),xz_factor:(0,_.NumberNode)(),y_factor:(0,_.NumberNode)()}),bottom_slide:(0,_.ObjectNode)({target:(0,_.NumberNode)({integer:!0}),size:(0,_.NumberNode)({integer:!0,min:0}),offset:(0,_.NumberNode)({integer:!0})}),top_slide:(0,_.ObjectNode)({target:(0,_.NumberNode)({integer:!0}),size:(0,_.NumberNode)({integer:!0,min:0}),offset:(0,_.NumberNode)({integer:!0})})}),structures:e("generator_structures")},{context:"noise_settings"}),d=>({default:()=>Ot.DefaultNoiseSettings,validate:(a,n,N,z)=>{var u,v,M,O;return n=d.validate(a,n,N,z),((u=n==null?void 0:n.noise)===null||u===void 0?void 0:u.min_y)+((v=n==null?void 0:n.noise)===null||v===void 0?void 0:v.height)>2047&&N.add(a.push("noise").push("height"),"error.min_y_plus_height",2047),((M=n==null?void 0:n.noise)===null||M===void 0?void 0:M.height)%16!==0&&N.add(a.push("noise").push("height"),"error.height_multiple",16),((O=n==null?void 0:n.noise)===null||O===void 0?void 0:O.min_y)%16!==0&&N.add(a.push("noise").push("min_y"),"error.min_y_multiple",16),n}}))),o.register("generator_structures",(0,_.ObjectNode)({stronghold:(0,_.Opt)((0,_.ObjectNode)({distance:(0,_.NumberNode)({integer:!0,min:0,max:1023}),spread:(0,_.NumberNode)({integer:!0,min:0,max:1023}),count:(0,_.NumberNode)({integer:!0,min:1,max:4095})})),structures:(0,_.MapNode)(t({validator:"resource",params:{pool:"worldgen/structure_feature"}}),(0,_.Mod)((0,_.ObjectNode)({spacing:(0,_.NumberNode)({integer:!0,min:0,max:4096}),separation:(0,_.Mod)((0,_.NumberNode)({integer:!0,min:0,max:4096}),d=>({validate:(a,n,N,z)=>(a.pop().push("spacing").get()<=n&&N.add(a,"error.separation_smaller_spacing"),d.validate(a,n,N,z))})),salt:(0,_.NumberNode)({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),o.register("generator_layer",(0,_.Mod)((0,_.ObjectNode)({block:t({validator:"resource",params:{pool:"block"}}),height:(0,_.NumberNode)({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})}))}Se.initNoiseSettingsSchemas=kt;var je={};Object.defineProperty(je,"__esModule",{value:!0});je.initStructureFeatureSchemas=void 0;const $=w;function xt(o,r){const e=$.StringNode.bind(void 0,r),t=$.Reference.bind(void 0,o),d={start_pool:e({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:(0,$.NumberNode)({integer:!0})};o.register("configured_structure_feature",(0,$.Mod)((0,$.ObjectNode)({type:e({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:(0,$.ObjectNode)({[$.Switch]:["pop",{push:"type"}],[$.Case]:{"minecraft:bastion_remnant":d,"minecraft:buried_treasure":{probability:(0,$.NumberNode)({min:0,max:1})},"minecraft:mineshaft":{type:e({enum:["normal","mesa"]}),probability:(0,$.NumberNode)({min:0,max:1})},"minecraft:nether_fossil":{height:t("height_provider")},"minecraft:ocean_ruin":{biome_temp:e({enum:["cold","warm"]}),large_probability:(0,$.NumberNode)({min:0,max:1}),cluster_probability:(0,$.NumberNode)({min:0,max:1})},"minecraft:pillager_outpost":d,"minecraft:ruined_portal":{portal_type:e({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:(0,$.Opt)((0,$.BooleanNode)())},"minecraft:village":d}},{context:"structure_feature",disableSwitchContext:!0})},{context:"structure_feature"}),{default:()=>({type:"minecraft:bastion_remnant",config:{start_pool:"minecraft:bastion/starts",size:6}})}))}je.initStructureFeatureSchemas=xt;var Me={};Object.defineProperty(Me,"__esModule",{value:!0});Me.initSurfaceBuilderSchemas=void 0;const re=w;function wt(o,r){const e=re.StringNode.bind(void 0,r),t=re.Reference.bind(void 0,o);o.register("configured_surface_builder",(0,re.Mod)((0,re.ObjectNode)({type:e({validator:"resource",params:{pool:"worldgen/surface_builder"}}),config:(0,re.ObjectNode)({top_material:t("block_state"),under_material:t("block_state"),underwater_material:t("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"}}})}))}Me.initSurfaceBuilderSchemas=wt;var Ce={};Object.defineProperty(Ce,"__esModule",{value:!0});Ce.initTemplatePoolSchemas=void 0;const R=w,Fe=K;function St(o,r){const e=R.Reference.bind(void 0,o),t=R.StringNode.bind(void 0,r);o.register("template_pool",(0,R.Mod)((0,R.ObjectNode)({name:t(),fallback:t(),elements:(0,R.ListNode)(e("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"}}]})})),o.register("template_weighted_element",(0,R.Mod)((0,R.ObjectNode)({weight:(0,R.NumberNode)({integer:!0,min:1}),element:e("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),o.register("template_element",(0,R.Mod)((0,R.ObjectNode)({element_type:t({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:t({enum:["rigid","terrain_matching"]}),[R.Switch]:[{push:"element_type"}],[R.Case]:{"minecraft:feature_pool_element":{feature:t({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},"minecraft:legacy_single_pool_element":{location:t({validator:"resource",params:{pool:"$structure"}}),processors:Fe.Processors},"minecraft:list_pool_element":{elements:(0,R.ListNode)(e("template_element"))},"minecraft:single_pool_element":{location:t({validator:"resource",params:{pool:"$structure"}}),processors:Fe.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))}Ce.initTemplatePoolSchemas=St;Object.defineProperty(ve,"__esModule",{value:!0});ve.initWorldgenSchemas=void 0;const jt=Oe,Mt=ke,Ct=xe,Pt=we,Lt=Se,Bt=K,zt=je,$t=Me,Rt=Ce;function Tt(o,r){(0,Bt.initProcessorListSchemas)(o,r),(0,jt.initBiomeSchemas)(o,r),(0,Mt.initCarverSchemas)(o,r),(0,Ct.initDecoratorSchemas)(o,r),(0,Pt.initFeatureSchemas)(o,r),(0,Lt.initNoiseSettingsSchemas)(o,r),(0,zt.initStructureFeatureSchemas)(o,r),(0,$t.initSurfaceBuilderSchemas)(o,r),(0,Rt.initTemplatePoolSchemas)(o,r)}ve.initWorldgenSchemas=Tt;var Pe={};Object.defineProperty(Pe,"__esModule",{value:!0});Pe.initWorldSettingsSchemas=void 0;const H=w;function Ft(o,r){const e=H.Reference.bind(void 0,o),t=H.StringNode.bind(void 0,r);o.register("world_settings",(0,H.Mod)((0,H.ObjectNode)({generate_features:(0,H.BooleanNode)(),bonus_chest:(0,H.BooleanNode)(),seed:(0,H.NumberNode)({integer:!0}),dimensions:(0,H.MapNode)(t({validator:"resource",params:{pool:"$dimension"}}),e("dimension"))},{context:"world_settings"}),{default:()=>{const d=Math.floor(Math.random()*4294967296)-2147483648;return{generate_features:!0,bonus_chest:!1,seed:d,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:vanilla_layered",seed:d},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:d,biome_source:{type:"minecraft:multi_noise",seed:d,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:d,biome_source:{type:"minecraft:the_end",seed:d},settings:"minecraft:end"}}}}}}))}Pe.initWorldSettingsSchemas=Ft;Object.defineProperty(ae,"__esModule",{value:!0});ae.initSchemas=void 0;const Dt=ne,It=ce,qt=I,At=le,Et=_e,Wt=pe,Gt=ue,Ut=fe,Vt=be,Ht=ge,Kt=Ne,Xt=he,Zt=ye,Yt=ve,Jt=Pe;function Qt(o,r){(0,qt.initCommonSchemas)(o,r),(0,Dt.initAdvancementSchemas)(o,r),(0,It.initAssetsSchemas)(o,r),(0,At.initConditionSchemas)(o,r),(0,Wt.initDimensionTypeSchemas)(o,r),(0,Et.initDimensionSchemas)(o,r),(0,Gt.initItemModifierSchemas)(o,r),(0,Ut.initLootTableSchemas)(o,r),(0,Vt.initPackMcmetaSchemas)(o,r),(0,Ht.initPredicatesSchemas)(o,r),(0,Kt.initRecipeSchemas)(o,r),(0,Xt.initTagsSchemas)(o,r),(0,Zt.initTextComponentSchemas)(o,r),(0,Yt.initWorldgenSchemas)(o,r),(0,Jt.initWorldSettingsSchemas)(o,r)}ae.initSchemas=Qt;var er=ee&&ee.__createBinding||(Object.create?function(o,r,e,t){t===void 0&&(t=e);var d=Object.getOwnPropertyDescriptor(r,e);(!d||("get"in d?!r.__esModule:d.writable||d.configurable))&&(d={enumerable:!0,get:function(){return r[e]}}),Object.defineProperty(o,t,d)}:function(o,r,e,t){t===void 0&&(t=e),o[t]=r[e]}),tr=ee&&ee.__setModuleDefault||(Object.create?function(o,r){Object.defineProperty(o,"default",{enumerable:!0,value:r})}:function(o,r){o.default=r}),rr=ee&&ee.__importStar||function(o){if(o&&o.__esModule)return o;var r={};if(o!=null)for(var e in o)e!=="default"&&Object.prototype.hasOwnProperty.call(o,e)&&er(r,o,e);return tr(r,o),r};Object.defineProperty(G,"__esModule",{value:!0});var De=G.getSchemas=Ae=G.getCollections=qe=G.lootContext=void 0;const Ie=w,or=ie,ir=ae;var qe=G.lootContext=rr(T);function ar(){const o=new Ie.CollectionRegistry;return(0,or.initCollections)(o),o}var Ae=G.getCollections=ar;function nr(o){const r=new Ie.SchemaRegistry;return(0,ir.initSchemas)(r,o),r}De=G.getSchemas=nr;var mr=He({__proto__:null,get getSchemas(){return De},get getCollections(){return Ae},get lootContext(){return qe},default:G},[G]);export{mr as i}; +//# sourceMappingURL=index.f2087122.js.map diff --git a/assets/index.d48dc598.js.map b/assets/index.f2087122.js.map similarity index 99% rename from assets/index.d48dc598.js.map rename to assets/index.f2087122.js.map index bf6cdeef..d920403c 100644 --- a/assets/index.d48dc598.js.map +++ b/assets/index.f2087122.js.map @@ -1 +1 @@ -{"version":3,"file":"index.d48dc598.js","sources":["../../node_modules/@mcschema/java-1.17/lib/Collections.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.17/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.17/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.17/lib/schemas/assets/Font.js","../../node_modules/@mcschema/java-1.17/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Dimension.js","../../node_modules/@mcschema/java-1.17/lib/schemas/DimensionType.js","../../node_modules/@mcschema/java-1.17/lib/schemas/ItemModifier.js","../../node_modules/@mcschema/java-1.17/lib/LootContext.js","../../node_modules/@mcschema/java-1.17/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.17/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.17/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Biome.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Carver.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Decorator.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/ProcessorList.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Feature.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/NoiseSettings.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/StructureFeature.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/SurfaceBuilder.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/TemplatePool.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/index.js","../../node_modules/@mcschema/java-1.17/lib/schemas/WorldSettings.js","../../node_modules/@mcschema/java-1.17/lib/schemas/index.js","../../node_modules/@mcschema/java-1.17/lib/index.js"],"sourcesContent":["\"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 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 collections.register('glyph_provider_type', [\r\n 'bitmap',\r\n 'ttf',\r\n 'legacy_unicode',\r\n ]);\r\n collections.register('cat_texture', [\r\n 'textures/entity/cat/tabby.png',\r\n 'textures/entity/cat/black.png',\r\n 'textures/entity/cat/red.png',\r\n 'textures/entity/cat/siamese.png',\r\n 'textures/entity/cat/british_shorthair.png',\r\n 'textures/entity/cat/calico.png',\r\n 'textures/entity/cat/persian.png',\r\n 'textures/entity/cat/ragdoll.png',\r\n 'textures/entity/cat/white.png',\r\n 'textures/entity/cat/jellie.png',\r\n 'textures/entity/cat/all_black.png'\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 = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n display: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n icon: (0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: (0, 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: (0, core_1.Opt)(StringNode()),\r\n frame: (0, core_1.Opt)(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n announce_to_chat: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n hidden: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: (0, core_1.MapNode)(StringNode(), Reference('advancement_criteria')),\r\n requirements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ListNode)(StringNode() // TODO: add validation\r\n ))),\r\n rewards: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n function: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n player: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n item: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: (0, core_1.Opt)((0, 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: (0, 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: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate'))),\r\n source: (0, core_1.Opt)(EntityPredicate)\r\n },\r\n 'minecraft:enter_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: (0, core_1.Opt)(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: (0, core_1.Opt)(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n distance: Reference('distance_predicate'),\r\n entered: (0, core_1.Opt)(Reference('location_predicate')),\r\n exited: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, 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: (0, core_1.Opt)(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: (0, 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: (0, 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: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: (0, 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: EntityPredicate,\r\n item: (0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:using_item': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: Reference('location_predicate')\r\n }\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => (0, core_1.ListNode)((0, core_1.NumberNode)({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n parent: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n gui_light: (0, core_1.Opt)(StringNode({ enum: 'gui_light' })),\r\n textures: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), Texture)),\r\n elements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: (0, core_1.NumberEnum)({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n shade: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n faces: (0, core_1.MapNode)(StringNode({ enum: 'direction' }), (0, core_1.ObjectNode)({\r\n texture: Texture,\r\n uv: (0, core_1.Opt)(Vec(4)),\r\n cullface: (0, core_1.Opt)(StringNode({ enum: 'direction' })),\r\n rotation: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tintindex: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'display_position' }), (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n predicate: (0, core_1.MapNode)(StringNode({ enum: 'item_model_predicates' }), (0, 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', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n variants: (0, 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: (0, core_1.ObjectNode)({\r\n multipart: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n when: (0, 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: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n y: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n };\r\n schemas.register('model_variant', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n ...VariantChildren,\r\n weight: (0, core_1.Opt)((0, 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', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n OR: (0, 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.initFontSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initFontSchemas(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('font', (0, core_1.ObjectNode)({\r\n providers: (0, core_1.ListNode)(Reference('glyph_provider'))\r\n }, { context: 'font' }));\r\n schemas.register('glyph_provider', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ enum: 'glyph_provider_type' }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'bitmap': {\r\n file: StringNode({ validator: 'resource', params: { pool: '$texture', suffix: '.png' } }),\r\n height: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n ascent: (0, core_1.NumberNode)({ integer: true }),\r\n chars: (0, core_1.ListNode)(StringNode(), { minLength: 1 })\r\n },\r\n 'ttf': {\r\n file: StringNode({ validator: 'resource', params: { pool: '$texture', suffix: '.png' } }),\r\n size: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n oversample: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n shift: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.NumberNode)(), { minLength: 2, maxLength: 2 })),\r\n skip: (0, core_1.Opt)((0, core_1.StringOrList)(StringNode()))\r\n },\r\n 'legacy_unicode': {\r\n sizes: StringNode(),\r\n template: StringNode()\r\n }\r\n }\r\n }, { context: 'glyph_provider' }), {\r\n default: () => ({\r\n type: 'bitmap',\r\n }),\r\n }));\r\n}\r\nexports.initFontSchemas = initFontSchemas;\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\nconst Font_1 = require(\"./Font\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n (0, BlockDefinition_1.initBlockDefinitionSchemas)(schemas, collections);\r\n (0, Font_1.initFontSchemas)(schemas, collections);\r\n (0, Model_1.initModelSchemas)(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.IntProvider = exports.FloatProvider = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.FunctionCases = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: 'minecraft:infiniburn_overworld',\r\n min_y: 0,\r\n height: 256,\r\n};\r\nexports.DefaultNoiseSettings = {\r\n name: 'minecraft:overworld',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise_caves_enabled: true,\r\n aquifers_enabled: true,\r\n deepslate_enabled: true,\r\n noise: {\r\n min_y: 0,\r\n height: 256,\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => (0, core_1.Opt)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer })),\r\n max: (0, core_1.Opt)((0, 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', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)(Reference('number_provider')),\r\n max: (0, core_1.Opt)(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: (0, 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] = (0, 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 = (0, core_1.ObjectNode)({\r\n type: (0, core_1.Mod)((0, 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 (0, 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: (0, 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: (0, core_1.Opt)((0, 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: (0, 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: (0, 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: (0, core_1.NumberNode)(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)(config),\r\n max_exclusive: (0, core_1.NumberNode)(config)\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n mean: (0, core_1.NumberNode)(),\r\n deviation: (0, core_1.NumberNode)()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n plateau: (0, core_1.NumberNode)()\r\n })\r\n }\r\n });\r\n schemas.register('float_provider', (0, 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: (0, core_1.NumberNode)({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n }\r\n });\r\n schemas.register('int_provider', (0, exports.IntProvider)());\r\n schemas.register('vertical_anchor', (0, 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: (0, core_1.ObjectNode)({\r\n [t]: (0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetY: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetZ: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n looting_multiplier: (0, 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: (0, core_1.ListNode)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n thundering: (0, core_1.Opt)((0, 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: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n bonusMultiplier: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: (0, core_1.Mod)((0, 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: (0, core_1.ListNode)((0, 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: (0, core_1.ListNode)(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: (0, core_1.Opt)(StringNode({ enum: 'map_feature' })),\r\n decoration: (0, core_1.Opt)(StringNode({ enum: 'map_decoration' })),\r\n zoom: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n search_radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n skip_existing_chunks: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: (0, core_1.ListNode)(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_contents': {\r\n entries: (0, core_1.ListNode)(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n lore: (0, core_1.ListNode)(Reference('text_component')),\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_name': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n name: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, 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) => (0, 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) => (0, 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', (0, core_1.ObjectOrList)(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', (0, core_1.Mod)((0, 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]: (0, 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) => (0, core_1.Mod)(node, {\r\n enabled: path => path.push('preset').get() === undefined\r\n });\r\n schemas.register('dimension', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, Common_1.DimensionTypePresets)(Reference('dimension_type')),\r\n generator: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n settings: (0, Common_1.NoiseSettingsPresets)(Reference('noise_settings')),\r\n biome_source: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n preset: (0, 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((0, core_1.Mod)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 62 })),\r\n biomes: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:the_end': {\r\n seed: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:vanilla_layered': {\r\n seed: (0, core_1.NumberNode)({ integer: true }),\r\n large_biomes: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n legacy_biome_init_layer: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: (0, core_1.ObjectNode)({\r\n biome: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n features: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n layers: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: (0, core_1.ObjectNode)({\r\n altitude: (0, core_1.NumberNode)(),\r\n temperature: (0, core_1.NumberNode)(),\r\n humidity: (0, core_1.NumberNode)(),\r\n weirdness: (0, core_1.NumberNode)(),\r\n offset: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n firstOctave: (0, core_1.NumberNode)({ integer: true }),\r\n amplitudes: (0, core_1.ListNode)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, 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: (0, core_1.BooleanNode)(),\r\n natural: (0, core_1.BooleanNode)(),\r\n piglin_safe: (0, core_1.BooleanNode)(),\r\n respawn_anchor_works: (0, core_1.BooleanNode)(),\r\n bed_works: (0, core_1.BooleanNode)(),\r\n has_raids: (0, core_1.BooleanNode)(),\r\n has_skylight: (0, core_1.BooleanNode)(),\r\n has_ceiling: (0, core_1.BooleanNode)(),\r\n coordinate_scale: (0, core_1.NumberNode)({ min: 0.00001, max: 30000000 }),\r\n ambient_light: (0, core_1.NumberNode)(),\r\n fixed_time: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n logical_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n effects: (0, 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: (0, core_1.NumberNode)({ integer: true, min: -2048, max: 2047 }),\r\n height: (0, 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', (0, core_1.ObjectOrList)(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: (0, core_1.Opt)((0, core_1.ListNode)(Reference('condition')))\r\n };\r\n schemas.register('function', (0, core_1.Mod)((0, 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]: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: (0, core_1.Opt)((0, 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 (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: (0, core_1.Opt)(Reference('number_provider')),\r\n entries: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 1 }), weightMod)),\r\n quality: (0, core_1.Opt)((0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: (0, 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', (0, core_1.Mod)((0, 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 id: (0, core_1.Opt)(StringNode({ validator: 'uuid' })),\r\n slot: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack_format: (0, core_1.Mod)((0, 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: (0, 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 = (0, 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: (0, core_1.NumberNode)(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max: (0, core_1.Opt)((0, 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: (0, core_1.BooleanNode)(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', (0, core_1.ObjectNode)({\r\n items: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'item' } }))),\r\n tag: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: (0, core_1.Opt)((0, core_1.ListNode)(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', (0, core_1.ObjectNode)({\r\n enchantment: (0, 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', (0, core_1.ObjectNode)({\r\n blocks: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n fluid: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', (0, core_1.ObjectNode)({\r\n position: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: (0, core_1.Opt)(StringNode({ enum: collections.get('worldgen/structure_feature').map(v => v.slice(10)) })),\r\n dimension: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n block: (0, core_1.Opt)(Reference('block_predicate')),\r\n fluid: (0, core_1.Opt)(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', (0, 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', (0, core_1.ObjectNode)({\r\n gamemode: (0, core_1.Opt)(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), (0, core_1.ChoiceNode)([\r\n { type: 'boolean', node: (0, core_1.BooleanNode)(), change: _ => true },\r\n {\r\n type: 'object', node: (0, core_1.MapNode)(StringNode(), (0, core_1.BooleanNode)())\r\n }\r\n ]))),\r\n recipes: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), (0, core_1.BooleanNode)())),\r\n stats: (0, core_1.Opt)((0, core_1.ListNode)(Reference('statistic_predicate'))),\r\n looking_at: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', (0, core_1.ObjectNode)({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n visible: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', (0, 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', (0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: (0, core_1.Opt)(StringNode({ validator: 'team' })),\r\n location: (0, core_1.Opt)(Reference('location_predicate')),\r\n stepping_on: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n flags: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n is_on_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sneaking: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sprinting: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_swimming: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_baby: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n equipment: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n vehicle: (0, core_1.Opt)(Reference('entity_predicate')),\r\n passenger: (0, core_1.Opt)(Reference('entity_predicate')),\r\n targeted_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n player: (0, core_1.Opt)(Reference('player_predicate')),\r\n lightning_bolt: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n blocks_set_on_fire: (0, core_1.Opt)(Reference('int_bounds')),\r\n entity_struck: (0, core_1.Opt)(Reference('entity_predicate'))\r\n })),\r\n fishing_hook: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n in_open_water: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n catType: (0, core_1.Opt)(StringNode({ enum: 'cat_texture' })),\r\n effects: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n is_explosion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_projectile: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_lightning: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_armor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_invulnerability: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n direct_entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', (0, core_1.ObjectNode)({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n type: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.Opt)(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: (0, core_1.ListNode)(StringNode()),\r\n key: (0, 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: (0, core_1.Opt)(StringNode()),\r\n ingredients: (0, core_1.ListNode)(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: (0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.Mod)((0, 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) => (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n values: (0, core_1.ListNode)((0, 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: (0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: (0, 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', (0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, core_1.Opt)(StringNode()) /* TODO */,\r\n font: (0, core_1.Opt)(StringNode()),\r\n bold: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n italic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n underlined: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n strikethrough: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n obfuscated: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n insertion: (0, core_1.Opt)(StringNode()),\r\n clickEvent: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('text_component')),\r\n contents: (0, core_1.Opt)(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tag: (0, 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: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n name: (0, core_1.Opt)(StringNode()),\r\n type: (0, core_1.Opt)(StringNode()),\r\n id: (0, core_1.Opt)(StringNode())\r\n })),\r\n contents: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, 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: (0, core_1.Opt)(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n translate: StringNode(),\r\n with: (0, 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: (0, core_1.ObjectNode)({\r\n score: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n separator: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: (0, core_1.Opt)(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: (0, core_1.Opt)(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n separator: (0, 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', (0, core_1.Mod)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n surface_builder: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_surface_builder' } }),\r\n depth: (0, core_1.NumberNode)(),\r\n scale: (0, core_1.NumberNode)(),\r\n temperature: (0, core_1.NumberNode)(),\r\n downfall: (0, core_1.NumberNode)(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n player_spawn_friendly: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n creature_spawn_probability: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n effects: (0, core_1.ObjectNode)({\r\n sky_color: (0, core_1.NumberNode)({ color: true }),\r\n fog_color: (0, core_1.NumberNode)({ color: true }),\r\n water_color: (0, core_1.NumberNode)({ color: true }),\r\n water_fog_color: (0, core_1.NumberNode)({ color: true }),\r\n grass_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n foliage_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n grass_color_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: (0, core_1.Opt)(StringNode()),\r\n mood_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_delay: (0, core_1.NumberNode)({ integer: true }),\r\n block_search_extent: (0, core_1.NumberNode)({ integer: true }),\r\n offset: (0, core_1.NumberNode)()\r\n })),\r\n additions_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n })),\r\n music: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n min_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n max_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n replace_current_music: (0, core_1.BooleanNode)()\r\n })),\r\n particle: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n options: (0, core_1.ObjectNode)({\r\n type: StringNode()\r\n }),\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }))\r\n }),\r\n starts: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_structure_feature' } })),\r\n spawners: (0, 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 ] }), (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n minCount: (0, core_1.NumberNode)({ integer: true }),\r\n maxCount: (0, 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: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n energy_budget: (0, core_1.NumberNode)(),\r\n charge: (0, 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: (0, core_1.MapNode)(StringNode({ enum: ['air', 'liquid'] }), (0, core_1.Mod)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_carver' } })), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: (0, core_1.ListNode)((0, core_1.Mod)((0, 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: (0, Common_1.FloatProvider)(),\r\n shape: (0, core_1.ObjectNode)({\r\n distance_factor: (0, Common_1.FloatProvider)(),\r\n thickness: (0, Common_1.FloatProvider)(),\r\n width_smoothness: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n horizontal_radius_factor: (0, Common_1.FloatProvider)(),\r\n vertical_radius_default_factor: (0, core_1.NumberNode)(),\r\n vertical_radius_center_factor: (0, core_1.NumberNode)()\r\n })\r\n };\r\n const CaveConfig = {\r\n horizontal_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n vertical_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n floor_level: (0, Common_1.FloatProvider)({ min: -1, max: 1 }),\r\n };\r\n schemas.register('configured_carver', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: (0, core_1.ObjectNode)({\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n y: Reference('height_provider'),\r\n yScale: (0, Common_1.FloatProvider)(),\r\n lava_level: Reference('vertical_anchor'),\r\n aquifers_enabled: (0, core_1.BooleanNode)(),\r\n debug_settings: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n debug_mode: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n air_state: (0, core_1.Opt)(Reference('block_state')),\r\n water_state: (0, core_1.Opt)(Reference('block_state')),\r\n lava_state: (0, core_1.Opt)(Reference('block_state')),\r\n barrier_state: (0, 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: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n };\r\n schemas.register('configured_decorator', (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/decorator' } }),\r\n config: (0, 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: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:chance': {\r\n chance: (0, core_1.NumberNode)({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': CountConfig,\r\n 'minecraft:count_extra': {\r\n count: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n extra_count: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n extra_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:count_multilayer': CountConfig,\r\n 'minecraft:count_noise': {\r\n noise_level: (0, core_1.NumberNode)(),\r\n below_noise: (0, core_1.NumberNode)({ integer: true }),\r\n above_noise: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:count_noise_biased': {\r\n noise_to_count_ratio: (0, core_1.NumberNode)({ integer: true }),\r\n noise_factor: (0, core_1.NumberNode)(),\r\n noise_offset: (0, core_1.Opt)((0, 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: (0, 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: (0, 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 = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n processors: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.NumberNode)()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n position_predicate: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n max_dist: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n min_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n max_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n };\r\n schemas.register('pos_rule_test', (0, 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', (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n project: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n need_water: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n xspread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n yspread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n zspread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n tries: (0, core_1.Opt)((0, 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: (0, core_1.ListNode)(Reference('block_state')),\r\n blacklist: (0, core_1.ListNode)(Reference('block_state'))\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 8 }),\r\n half_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4 }),\r\n targets: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n };\r\n const TargetBlockState = (0, core_1.ObjectNode)({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n });\r\n const OreConfig = {\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n targets: (0, core_1.ListNode)(TargetBlockState)\r\n };\r\n const Feature = (0, 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: (0, Common_1.IntProvider)({ min: 1, max: 128 }),\r\n vertical_range: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n extra_edge_column_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n vegetation_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n xz_radius: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: (0, core_1.ObjectNode)({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: (0, Common_1.IntProvider)({ min: 0, max: 3 }),\r\n height: (0, 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: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n rim_size: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 1, max: 512 }),\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n max_stalagmite_stalactite_height_diff: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n height_deviation: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n density: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n wetness: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: (0, core_1.BooleanNode)(),\r\n exit: (0, core_1.Opt)(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n crystal_beam_target: (0, core_1.Opt)(Reference('block_pos')),\r\n spikes: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n centerX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n centerZ: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n height: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n guarded: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: (0, 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: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n filling: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n inner_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n middle_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n outer_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n }),\r\n crack: (0, core_1.ObjectNode)({\r\n generate_crack_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n base_crack_size: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 5 })),\r\n crack_point_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 10 })),\r\n }),\r\n noise_multiplier: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_potential_placements_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n outer_wall_distance: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n distribution_points: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n point_offset: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 0, max: 10 })),\r\n min_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n invalid_blocks_threshold: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:glow_lichen': {\r\n search_range: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n can_place_on_floor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_ceiling: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_wall: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_be_placed_on: (0, 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: (0, core_1.BooleanNode)(),\r\n height_distribution: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n data: (0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1, max: 512 })),\r\n column_radius: (0, Common_1.IntProvider)({ min: 0, max: 60 }),\r\n height_scale: (0, Common_1.FloatProvider)({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n stalactite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n wind_speed: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n min_radius_for_wind: (0, core_1.NumberNode)({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: (0, 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: (0, 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: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n chance: (0, 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: (0, core_1.ListNode)(TargetBlockState)\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 }),\r\n allowed_vertical_water_for_tree: (0, 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: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:seagrass': {\r\n probability: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)(Reference('block_state'))),\r\n place_in: (0, core_1.Opt)((0, core_1.ListNode)(Reference('block_state'))),\r\n place_under: (0, core_1.Opt)((0, core_1.ListNode)(Reference('block_state')))\r\n },\r\n 'minecraft:simple_random_selector': {\r\n features: (0, core_1.ListNode)(Feature)\r\n },\r\n 'minecraft:small_dripstone': {\r\n max_placements: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 100 })),\r\n empty_space_search_radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 20 })),\r\n max_offset_from_origin: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 20 })),\r\n chance_of_taller_dripstone: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: (0, core_1.NumberNode)({ integer: true }),\r\n hole_count: (0, core_1.NumberNode)({ integer: true }),\r\n requires_block_below: (0, core_1.BooleanNode)(),\r\n valid_blocks: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:tree': {\r\n ignore_vines: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n force_dirt: (0, core_1.Opt)((0, 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: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: (0, core_1.NumberNode)({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: (0, 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: (0, Common_1.IntProvider)({ min: 1, max: 64 }),\r\n min_height_for_leaves: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 }))\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n offset: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: (0, Common_1.IntProvider)({ min: 1, max: 512 }),\r\n leaf_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: (0, core_1.ListNode)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 81 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n upper_limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n middle_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n bedrock_floor_position: (0, core_1.NumberNode)({ integer: true }),\r\n sea_level: (0, core_1.NumberNode)({ integer: true }),\r\n min_surface_level: (0, core_1.NumberNode)({ integer: true }),\r\n disable_mob_generation: (0, core_1.BooleanNode)(),\r\n noise_caves_enabled: (0, core_1.BooleanNode)(),\r\n noodle_caves_enabled: (0, core_1.BooleanNode)(),\r\n aquifers_enabled: (0, core_1.BooleanNode)(),\r\n deepslate_enabled: (0, core_1.BooleanNode)(),\r\n ore_veins_enabled: (0, core_1.BooleanNode)(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: (0, core_1.ObjectNode)({\r\n min_y: (0, core_1.NumberNode)({ integer: true, min: -2048, max: 2047 }),\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n density_factor: (0, core_1.NumberNode)(),\r\n density_offset: (0, core_1.NumberNode)(),\r\n size_horizontal: (0, core_1.NumberNode)({ integer: true }),\r\n size_vertical: (0, core_1.NumberNode)({ integer: true }),\r\n simplex_surface_noise: (0, core_1.BooleanNode)(),\r\n random_density_offset: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n island_noise_override: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n amplified: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n sampling: (0, core_1.ObjectNode)({\r\n xz_scale: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n xz_factor: (0, core_1.NumberNode)(),\r\n y_factor: (0, core_1.NumberNode)()\r\n }),\r\n bottom_slide: (0, core_1.ObjectNode)({\r\n target: (0, core_1.NumberNode)({ integer: true }),\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n offset: (0, core_1.NumberNode)({ integer: true })\r\n }),\r\n top_slide: (0, core_1.ObjectNode)({\r\n target: (0, core_1.NumberNode)({ integer: true }),\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n offset: (0, 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', (0, core_1.ObjectNode)({\r\n stronghold: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n distance: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n spread: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n count: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4095 })\r\n })),\r\n structures: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }), (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n spacing: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n separation: (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: (0, 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: (0, core_1.NumberNode)({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n config: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n cluster_probability: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/surface_builder' } }),\r\n config: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, 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', (0, core_1.Mod)((0, 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: (0, 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 (0, ProcessorList_1.initProcessorListSchemas)(schemas, collections);\r\n (0, Biome_1.initBiomeSchemas)(schemas, collections);\r\n (0, Carver_1.initCarverSchemas)(schemas, collections);\r\n (0, Decorator_1.initDecoratorSchemas)(schemas, collections);\r\n (0, Feature_1.initFeatureSchemas)(schemas, collections);\r\n (0, NoiseSettings_1.initNoiseSettingsSchemas)(schemas, collections);\r\n (0, StructureFeature_1.initStructureFeatureSchemas)(schemas, collections);\r\n (0, SurfaceBuilder_1.initSurfaceBuilderSchemas)(schemas, collections);\r\n (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n generate_features: (0, core_1.BooleanNode)(),\r\n bonus_chest: (0, core_1.BooleanNode)(),\r\n seed: (0, core_1.NumberNode)({ integer: true }),\r\n dimensions: (0, 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 (0, Common_1.initCommonSchemas)(schemas, collections);\r\n (0, Advancement_1.initAdvancementSchemas)(schemas, collections);\r\n (0, assets_1.initAssetsSchemas)(schemas, collections);\r\n (0, Condition_1.initConditionSchemas)(schemas, collections);\r\n (0, DimensionType_1.initDimensionTypeSchemas)(schemas, collections);\r\n (0, Dimension_1.initDimensionSchemas)(schemas, collections);\r\n (0, ItemModifier_1.initItemModifierSchemas)(schemas, collections);\r\n (0, LootTable_1.initLootTableSchemas)(schemas, collections);\r\n (0, PackMcmeta_1.initPackMcmetaSchemas)(schemas, collections);\r\n (0, Predicates_1.initPredicatesSchemas)(schemas, collections);\r\n (0, Recipe_1.initRecipeSchemas)(schemas, collections);\r\n (0, Tags_1.initTagsSchemas)(schemas, collections);\r\n (0, TextComponent_1.initTextComponentSchemas)(schemas, collections);\r\n (0, worldgen_1.initWorldgenSchemas)(schemas, collections);\r\n (0, 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 var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\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.prototype.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 = exports.lootContext = 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 (0, 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 (0, schemas_1.initSchemas)(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n"],"names":["core_1","require$$0","require$$1","require$$2","Common_1","ProcessorList_1","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","this"],"mappings":"g2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAI,CAAE,EACrC,GAAA,gBAAG,OAC1B,YAAyB,EAAa,CAClC,EAAY,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,2BACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,sBACA,uBACA,mBACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,sBACA,uBACA,mBACR,CAAK,EACD,EAAY,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,SACR,CAAK,EACD,EAAY,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,MACR,CAAK,EACD,EAAY,SAAS,WAAY,CAC7B,WACA,WACA,YACA,WACR,CAAK,EACD,EAAY,SAAS,0BAA2B,CAC5C,sBACA,mBACA,gBACA,sBACA,kBACA,4BACR,CAAK,EACD,EAAY,SAAS,gBAAiB,CAClC,OACA,SACA,gBACA,eACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,eACA,OACA,SACA,eACR,CAAK,EACD,EAAY,SAAS,iCAAkC,CACnD,gCACA,sCACA,qBACR,CAAK,EACD,EAAY,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,cACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,SACR,CAAK,EACD,EAAY,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,iBACR,CAAK,EACD,EAAY,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,yBACR,CAAK,EACD,EAAY,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,yBACR,CAAK,EACD,EAAY,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,2BACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,QACA,UACA,aACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,kBACR,CAAK,EACD,EAAY,SAAS,kBAAmB,CACpC,MACA,QACR,CAAK,EACD,EAAY,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,iBACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,OACA,qBACA,sBACA,kBACA,mBACA,gBACA,aACA,cACA,eACA,gBACA,gBACA,mBACA,kBACA,gBACA,QACA,iBACA,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"} \ No newline at end of file +{"version":3,"file":"index.f2087122.js","sources":["../../node_modules/@mcschema/java-1.17/lib/Collections.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.17/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.17/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.17/lib/schemas/assets/Font.js","../../node_modules/@mcschema/java-1.17/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Dimension.js","../../node_modules/@mcschema/java-1.17/lib/schemas/DimensionType.js","../../node_modules/@mcschema/java-1.17/lib/schemas/ItemModifier.js","../../node_modules/@mcschema/java-1.17/lib/LootContext.js","../../node_modules/@mcschema/java-1.17/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.17/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.17/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Biome.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Carver.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Decorator.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/ProcessorList.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Feature.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/NoiseSettings.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/StructureFeature.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/SurfaceBuilder.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/TemplatePool.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/index.js","../../node_modules/@mcschema/java-1.17/lib/schemas/WorldSettings.js","../../node_modules/@mcschema/java-1.17/lib/schemas/index.js","../../node_modules/@mcschema/java-1.17/lib/index.js"],"sourcesContent":["\"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 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 collections.register('glyph_provider_type', [\r\n 'bitmap',\r\n 'ttf',\r\n 'legacy_unicode',\r\n ]);\r\n collections.register('cat_texture', [\r\n 'textures/entity/cat/tabby.png',\r\n 'textures/entity/cat/black.png',\r\n 'textures/entity/cat/red.png',\r\n 'textures/entity/cat/siamese.png',\r\n 'textures/entity/cat/british_shorthair.png',\r\n 'textures/entity/cat/calico.png',\r\n 'textures/entity/cat/persian.png',\r\n 'textures/entity/cat/ragdoll.png',\r\n 'textures/entity/cat/white.png',\r\n 'textures/entity/cat/jellie.png',\r\n 'textures/entity/cat/all_black.png'\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 = (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n display: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n icon: (0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: (0, 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: (0, core_1.Opt)(StringNode()),\r\n frame: (0, core_1.Opt)(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n announce_to_chat: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n hidden: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: (0, core_1.MapNode)(StringNode(), Reference('advancement_criteria')),\r\n requirements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ListNode)(StringNode() // TODO: add validation\r\n ))),\r\n rewards: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n function: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n player: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n item: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: (0, core_1.Opt)((0, 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: (0, 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: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate'))),\r\n source: (0, core_1.Opt)(EntityPredicate)\r\n },\r\n 'minecraft:enter_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: (0, core_1.Opt)(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: (0, core_1.Opt)(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n distance: Reference('distance_predicate'),\r\n entered: (0, core_1.Opt)(Reference('location_predicate')),\r\n exited: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: (0, core_1.Opt)(Reference('item_predicate')),\r\n location: (0, 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: (0, core_1.Opt)(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: (0, 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: (0, 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: (0, core_1.Opt)(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: (0, 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: EntityPredicate,\r\n item: (0, 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: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:using_item': {\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: EntityPredicate,\r\n item: (0, core_1.Opt)(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: Reference('location_predicate')\r\n }\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => (0, core_1.ListNode)((0, core_1.NumberNode)({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n parent: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n gui_light: (0, core_1.Opt)(StringNode({ enum: 'gui_light' })),\r\n textures: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), Texture)),\r\n elements: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: (0, core_1.NumberEnum)({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n shade: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n faces: (0, core_1.MapNode)(StringNode({ enum: 'direction' }), (0, core_1.ObjectNode)({\r\n texture: Texture,\r\n uv: (0, core_1.Opt)(Vec(4)),\r\n cullface: (0, core_1.Opt)(StringNode({ enum: 'direction' })),\r\n rotation: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tintindex: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'display_position' }), (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n predicate: (0, core_1.MapNode)(StringNode({ enum: 'item_model_predicates' }), (0, 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', (0, core_1.Mod)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: (0, core_1.ObjectNode)({\r\n variants: (0, 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: (0, core_1.ObjectNode)({\r\n multipart: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n when: (0, 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: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n y: (0, core_1.Opt)((0, core_1.NumberEnum)({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n };\r\n schemas.register('model_variant', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, 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: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n ...VariantChildren,\r\n weight: (0, core_1.Opt)((0, 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', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n OR: (0, 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.initFontSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initFontSchemas(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('font', (0, core_1.ObjectNode)({\r\n providers: (0, core_1.ListNode)(Reference('glyph_provider'))\r\n }, { context: 'font' }));\r\n schemas.register('glyph_provider', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ enum: 'glyph_provider_type' }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'bitmap': {\r\n file: StringNode({ validator: 'resource', params: { pool: '$texture', suffix: '.png' } }),\r\n height: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n ascent: (0, core_1.NumberNode)({ integer: true }),\r\n chars: (0, core_1.ListNode)(StringNode(), { minLength: 1 })\r\n },\r\n 'ttf': {\r\n file: StringNode({ validator: 'resource', params: { pool: '$texture', suffix: '.png' } }),\r\n size: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n oversample: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n shift: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.NumberNode)(), { minLength: 2, maxLength: 2 })),\r\n skip: (0, core_1.Opt)((0, core_1.StringOrList)(StringNode()))\r\n },\r\n 'legacy_unicode': {\r\n sizes: StringNode(),\r\n template: StringNode()\r\n }\r\n }\r\n }, { context: 'glyph_provider' }), {\r\n default: () => ({\r\n type: 'bitmap',\r\n }),\r\n }));\r\n}\r\nexports.initFontSchemas = initFontSchemas;\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\nconst Font_1 = require(\"./Font\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n (0, BlockDefinition_1.initBlockDefinitionSchemas)(schemas, collections);\r\n (0, Font_1.initFontSchemas)(schemas, collections);\r\n (0, Model_1.initModelSchemas)(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.IntProvider = exports.FloatProvider = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.FunctionCases = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: 'minecraft:infiniburn_overworld',\r\n min_y: 0,\r\n height: 256,\r\n};\r\nexports.DefaultNoiseSettings = {\r\n name: 'minecraft:overworld',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise_caves_enabled: true,\r\n aquifers_enabled: true,\r\n deepslate_enabled: true,\r\n noise: {\r\n min_y: 0,\r\n height: 256,\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.NumberNode)({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => (0, core_1.Opt)((0, core_1.ChoiceNode)([\r\n {\r\n type: 'number',\r\n node: (0, 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: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer })),\r\n max: (0, core_1.Opt)((0, 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', (0, core_1.ChoiceNode)([\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)(Reference('number_provider')),\r\n max: (0, core_1.Opt)(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: (0, 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] = (0, 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 = (0, core_1.ObjectNode)({\r\n type: (0, core_1.Mod)((0, 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 (0, 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: (0, 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: (0, core_1.Opt)((0, 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: (0, 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: (0, 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: (0, core_1.NumberNode)(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)(config),\r\n max_exclusive: (0, core_1.NumberNode)(config)\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n mean: (0, core_1.NumberNode)(),\r\n deviation: (0, core_1.NumberNode)()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: (0, core_1.ObjectNode)({\r\n min: (0, core_1.NumberNode)(),\r\n max: (0, core_1.NumberNode)(),\r\n plateau: (0, core_1.NumberNode)()\r\n })\r\n }\r\n });\r\n schemas.register('float_provider', (0, 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: (0, core_1.NumberNode)({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: (0, core_1.ObjectNode)({\r\n min_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n max_inclusive: (0, core_1.NumberNode)({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n }\r\n });\r\n schemas.register('int_provider', (0, exports.IntProvider)());\r\n schemas.register('vertical_anchor', (0, 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: (0, core_1.ObjectNode)({\r\n [t]: (0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetY: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n offsetZ: (0, core_1.Opt)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n looting_multiplier: (0, 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: (0, core_1.ListNode)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n thundering: (0, core_1.Opt)((0, 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: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n bonusMultiplier: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: (0, core_1.Mod)((0, core_1.NumberNode)(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: (0, core_1.Mod)((0, 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: (0, core_1.ListNode)((0, 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: (0, core_1.ListNode)(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: (0, core_1.Opt)(StringNode({ enum: 'map_feature' })),\r\n decoration: (0, core_1.Opt)(StringNode({ enum: 'map_decoration' })),\r\n zoom: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n search_radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n skip_existing_chunks: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: (0, core_1.ListNode)(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_contents': {\r\n entries: (0, core_1.ListNode)(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n lore: (0, core_1.ListNode)(Reference('text_component')),\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n },\r\n 'minecraft:set_name': {\r\n entity: (0, core_1.Opt)(entitySourceNode),\r\n name: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)((0, 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) => (0, 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) => (0, 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', (0, core_1.ObjectOrList)(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', (0, core_1.Mod)((0, 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]: (0, 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) => (0, core_1.Mod)(node, {\r\n enabled: path => path.push('preset').get() === undefined\r\n });\r\n schemas.register('dimension', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, Common_1.DimensionTypePresets)(Reference('dimension_type')),\r\n generator: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n settings: (0, Common_1.NoiseSettingsPresets)(Reference('noise_settings')),\r\n biome_source: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n preset: (0, 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((0, core_1.Mod)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 62 })),\r\n biomes: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:the_end': {\r\n seed: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:vanilla_layered': {\r\n seed: (0, core_1.NumberNode)({ integer: true }),\r\n large_biomes: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n legacy_biome_init_layer: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: (0, core_1.ObjectNode)({\r\n biome: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n features: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n layers: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: (0, core_1.ObjectNode)({\r\n altitude: (0, core_1.NumberNode)(),\r\n temperature: (0, core_1.NumberNode)(),\r\n humidity: (0, core_1.NumberNode)(),\r\n weirdness: (0, core_1.NumberNode)(),\r\n offset: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n firstOctave: (0, core_1.NumberNode)({ integer: true }),\r\n amplitudes: (0, core_1.ListNode)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, 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: (0, core_1.BooleanNode)(),\r\n natural: (0, core_1.BooleanNode)(),\r\n piglin_safe: (0, core_1.BooleanNode)(),\r\n respawn_anchor_works: (0, core_1.BooleanNode)(),\r\n bed_works: (0, core_1.BooleanNode)(),\r\n has_raids: (0, core_1.BooleanNode)(),\r\n has_skylight: (0, core_1.BooleanNode)(),\r\n has_ceiling: (0, core_1.BooleanNode)(),\r\n coordinate_scale: (0, core_1.NumberNode)({ min: 0.00001, max: 30000000 }),\r\n ambient_light: (0, core_1.NumberNode)(),\r\n fixed_time: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n logical_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n effects: (0, 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: (0, core_1.NumberNode)({ integer: true, min: -2048, max: 2047 }),\r\n height: (0, 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', (0, core_1.ObjectOrList)(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: (0, core_1.Opt)((0, core_1.ListNode)(Reference('condition')))\r\n };\r\n schemas.register('function', (0, core_1.Mod)((0, 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]: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: (0, core_1.Opt)((0, 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 (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: (0, core_1.Opt)((0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: (0, core_1.Opt)(Reference('number_provider')),\r\n entries: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true, min: 1 }), weightMod)),\r\n quality: (0, core_1.Opt)((0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: (0, 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', (0, core_1.Mod)((0, 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 id: (0, core_1.Opt)(StringNode({ validator: 'uuid' })),\r\n slot: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack: (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n pack_format: (0, core_1.Mod)((0, 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: (0, 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 = (0, 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: (0, core_1.NumberNode)(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: (0, core_1.ObjectNode)({\r\n min: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max: (0, core_1.Opt)((0, 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: (0, core_1.BooleanNode)(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', (0, core_1.ObjectNode)({\r\n items: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'item' } }))),\r\n tag: (0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: (0, core_1.Opt)((0, core_1.ListNode)(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', (0, core_1.ObjectNode)({\r\n enchantment: (0, 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', (0, core_1.ObjectNode)({\r\n blocks: (0, core_1.Opt)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n fluid: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: (0, core_1.Opt)((0, core_1.MapNode)(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', (0, core_1.ObjectNode)({\r\n position: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: (0, core_1.Opt)(StringNode({ enum: collections.get('worldgen/structure_feature').map(v => v.slice(10)) })),\r\n dimension: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n block: (0, core_1.Opt)(Reference('block_predicate')),\r\n fluid: (0, core_1.Opt)(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', (0, 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', (0, core_1.ObjectNode)({\r\n gamemode: (0, core_1.Opt)(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), (0, core_1.ChoiceNode)([\r\n { type: 'boolean', node: (0, core_1.BooleanNode)(), change: _ => true },\r\n {\r\n type: 'object', node: (0, core_1.MapNode)(StringNode(), (0, core_1.BooleanNode)())\r\n }\r\n ]))),\r\n recipes: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), (0, core_1.BooleanNode)())),\r\n stats: (0, core_1.Opt)((0, core_1.ListNode)(Reference('statistic_predicate'))),\r\n looking_at: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', (0, core_1.ObjectNode)({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n visible: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', (0, 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', (0, core_1.ObjectNode)({\r\n type: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: (0, core_1.Opt)(StringNode({ validator: 'team' })),\r\n location: (0, core_1.Opt)(Reference('location_predicate')),\r\n stepping_on: (0, core_1.Opt)(Reference('location_predicate')),\r\n distance: (0, core_1.Opt)(Reference('distance_predicate')),\r\n flags: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n is_on_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sneaking: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_sprinting: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_swimming: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_baby: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n equipment: (0, core_1.Opt)((0, core_1.MapNode)(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n vehicle: (0, core_1.Opt)(Reference('entity_predicate')),\r\n passenger: (0, core_1.Opt)(Reference('entity_predicate')),\r\n targeted_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n player: (0, core_1.Opt)(Reference('player_predicate')),\r\n lightning_bolt: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n blocks_set_on_fire: (0, core_1.Opt)(Reference('int_bounds')),\r\n entity_struck: (0, core_1.Opt)(Reference('entity_predicate'))\r\n })),\r\n fishing_hook: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n in_open_water: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n })),\r\n catType: (0, core_1.Opt)(StringNode({ enum: 'cat_texture' })),\r\n effects: (0, core_1.Opt)((0, 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', (0, core_1.ObjectNode)({\r\n is_explosion: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_fire: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_projectile: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n is_lightning: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_armor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_invulnerability: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n bypasses_magic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n direct_entity: (0, core_1.Opt)(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', (0, core_1.ObjectNode)({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n source_entity: (0, core_1.Opt)(Reference('entity_predicate')),\r\n type: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.Opt)(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: (0, core_1.ListNode)(StringNode()),\r\n key: (0, 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: (0, core_1.Opt)(StringNode()),\r\n ingredients: (0, core_1.ListNode)(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: (0, core_1.Opt)((0, core_1.NumberNode)()),\r\n cookingtime: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.NumberNode)({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: (0, core_1.Opt)(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: (0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.Mod)((0, 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) => (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n replace: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n values: (0, core_1.ListNode)((0, 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: (0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: (0, 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', (0, core_1.Mod)((0, 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: (0, 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: (0, 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: (0, core_1.Opt)(StringNode()) /* TODO */,\r\n font: (0, core_1.Opt)(StringNode()),\r\n bold: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n italic: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n underlined: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n strikethrough: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n obfuscated: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n insertion: (0, core_1.Opt)(StringNode()),\r\n clickEvent: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)(Reference('text_component')),\r\n contents: (0, core_1.Opt)(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: (0, core_1.Opt)(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n tag: (0, 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: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n name: (0, core_1.Opt)(StringNode()),\r\n type: (0, core_1.Opt)(StringNode()),\r\n id: (0, core_1.Opt)(StringNode())\r\n })),\r\n contents: (0, core_1.Opt)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, 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: (0, core_1.Opt)(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n translate: StringNode(),\r\n with: (0, 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: (0, core_1.ObjectNode)({\r\n score: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n separator: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: (0, core_1.Opt)(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: (0, core_1.Opt)(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: (0, core_1.Opt)(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n separator: (0, 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', (0, core_1.Mod)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n surface_builder: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_surface_builder' } }),\r\n depth: (0, core_1.NumberNode)(),\r\n scale: (0, core_1.NumberNode)(),\r\n temperature: (0, core_1.NumberNode)(),\r\n downfall: (0, core_1.NumberNode)(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n player_spawn_friendly: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n creature_spawn_probability: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n effects: (0, core_1.ObjectNode)({\r\n sky_color: (0, core_1.NumberNode)({ color: true }),\r\n fog_color: (0, core_1.NumberNode)({ color: true }),\r\n water_color: (0, core_1.NumberNode)({ color: true }),\r\n water_fog_color: (0, core_1.NumberNode)({ color: true }),\r\n grass_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n foliage_color: (0, core_1.Opt)((0, core_1.NumberNode)({ color: true })),\r\n grass_color_modifier: (0, core_1.Opt)(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: (0, core_1.Opt)(StringNode()),\r\n mood_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_delay: (0, core_1.NumberNode)({ integer: true }),\r\n block_search_extent: (0, core_1.NumberNode)({ integer: true }),\r\n offset: (0, core_1.NumberNode)()\r\n })),\r\n additions_sound: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n tick_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n })),\r\n music: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n sound: StringNode(),\r\n min_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n max_delay: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n replace_current_music: (0, core_1.BooleanNode)()\r\n })),\r\n particle: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n options: (0, core_1.ObjectNode)({\r\n type: StringNode()\r\n }),\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n }))\r\n }),\r\n starts: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_structure_feature' } })),\r\n spawners: (0, 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 ] }), (0, core_1.Mod)((0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n minCount: (0, core_1.NumberNode)({ integer: true }),\r\n maxCount: (0, 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: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n energy_budget: (0, core_1.NumberNode)(),\r\n charge: (0, 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: (0, core_1.MapNode)(StringNode({ enum: ['air', 'liquid'] }), (0, core_1.Mod)((0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_carver' } })), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: (0, core_1.ListNode)((0, core_1.Mod)((0, 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: (0, Common_1.FloatProvider)(),\r\n shape: (0, core_1.ObjectNode)({\r\n distance_factor: (0, Common_1.FloatProvider)(),\r\n thickness: (0, Common_1.FloatProvider)(),\r\n width_smoothness: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n horizontal_radius_factor: (0, Common_1.FloatProvider)(),\r\n vertical_radius_default_factor: (0, core_1.NumberNode)(),\r\n vertical_radius_center_factor: (0, core_1.NumberNode)()\r\n })\r\n };\r\n const CaveConfig = {\r\n horizontal_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n vertical_radius_multiplier: (0, Common_1.FloatProvider)(),\r\n floor_level: (0, Common_1.FloatProvider)({ min: -1, max: 1 }),\r\n };\r\n schemas.register('configured_carver', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: (0, core_1.ObjectNode)({\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n y: Reference('height_provider'),\r\n yScale: (0, Common_1.FloatProvider)(),\r\n lava_level: Reference('vertical_anchor'),\r\n aquifers_enabled: (0, core_1.BooleanNode)(),\r\n debug_settings: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n debug_mode: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n air_state: (0, core_1.Opt)(Reference('block_state')),\r\n water_state: (0, core_1.Opt)(Reference('block_state')),\r\n lava_state: (0, core_1.Opt)(Reference('block_state')),\r\n barrier_state: (0, 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: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n };\r\n schemas.register('configured_decorator', (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/decorator' } }),\r\n config: (0, 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: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:chance': {\r\n chance: (0, core_1.NumberNode)({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': CountConfig,\r\n 'minecraft:count_extra': {\r\n count: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n extra_count: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n extra_chance: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:count_multilayer': CountConfig,\r\n 'minecraft:count_noise': {\r\n noise_level: (0, core_1.NumberNode)(),\r\n below_noise: (0, core_1.NumberNode)({ integer: true }),\r\n above_noise: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:count_noise_biased': {\r\n noise_to_count_ratio: (0, core_1.NumberNode)({ integer: true }),\r\n noise_factor: (0, core_1.NumberNode)(),\r\n noise_offset: (0, core_1.Opt)((0, 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: (0, 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: (0, 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 = (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n processors: (0, 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', (0, core_1.Mod)((0, 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: (0, core_1.NumberNode)()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: (0, core_1.ListNode)(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: (0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n position_predicate: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n max_dist: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 255, integer: true })),\r\n min_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n max_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n };\r\n schemas.register('pos_rule_test', (0, 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', (0, 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: (0, 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: (0, 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: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n project: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n need_water: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n xspread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n yspread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n zspread: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0 })),\r\n tries: (0, core_1.Opt)((0, 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: (0, core_1.ListNode)(Reference('block_state')),\r\n blacklist: (0, core_1.ListNode)(Reference('block_state'))\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 8 }),\r\n half_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4 }),\r\n targets: (0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true }))\r\n };\r\n const TargetBlockState = (0, core_1.ObjectNode)({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n });\r\n const OreConfig = {\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n targets: (0, core_1.ListNode)(TargetBlockState)\r\n };\r\n const Feature = (0, 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: (0, Common_1.IntProvider)({ min: 1, max: 128 }),\r\n vertical_range: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n extra_edge_column_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n vegetation_chance: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n xz_radius: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: (0, core_1.ObjectNode)({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: (0, Common_1.IntProvider)({ min: 0, max: 3 }),\r\n height: (0, 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: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n rim_size: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 1, max: 512 }),\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n max_stalagmite_stalactite_height_diff: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n height_deviation: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: (0, Common_1.IntProvider)({ min: 0, max: 128 }),\r\n density: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n wetness: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: (0, core_1.BooleanNode)(),\r\n exit: (0, core_1.Opt)(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n crystal_beam_target: (0, core_1.Opt)(Reference('block_pos')),\r\n spikes: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n centerX: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n centerZ: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n height: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n guarded: (0, core_1.Opt)((0, core_1.BooleanNode)())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: (0, 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: (0, 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: (0, 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: (0, core_1.ObjectNode)({\r\n filling: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n inner_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n middle_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n outer_layer: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0.01, max: 50 })),\r\n }),\r\n crack: (0, core_1.ObjectNode)({\r\n generate_crack_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n base_crack_size: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 5 })),\r\n crack_point_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 10 })),\r\n }),\r\n noise_multiplier: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_potential_placements_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n outer_wall_distance: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n distribution_points: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 1, max: 20 })),\r\n point_offset: (0, core_1.Opt)((0, Common_1.IntProvider)({ min: 0, max: 10 })),\r\n min_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n max_gen_offset: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true })),\r\n invalid_blocks_threshold: (0, core_1.NumberNode)({ integer: true })\r\n },\r\n 'minecraft:glow_lichen': {\r\n search_range: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 })),\r\n can_place_on_floor: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_ceiling: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_place_on_wall: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n can_be_placed_on: (0, 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: (0, core_1.BooleanNode)(),\r\n height_distribution: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n weight: (0, core_1.NumberNode)({ integer: true }),\r\n data: (0, 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: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1, max: 512 })),\r\n column_radius: (0, Common_1.IntProvider)({ min: 0, max: 60 }),\r\n height_scale: (0, Common_1.FloatProvider)({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n stalactite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: (0, Common_1.FloatProvider)({ min: 0.1, max: 10 }),\r\n wind_speed: (0, Common_1.FloatProvider)({ min: 0, max: 2 }),\r\n min_radius_for_wind: (0, core_1.NumberNode)({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: (0, 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: (0, 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: (0, core_1.ListNode)((0, core_1.ObjectNode)({\r\n chance: (0, 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: (0, core_1.ListNode)(TargetBlockState)\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: (0, core_1.NumberNode)({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 }),\r\n allowed_vertical_water_for_tree: (0, 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: (0, Common_1.IntProvider)({ min: 0, max: 256 })\r\n },\r\n 'minecraft:seagrass': {\r\n probability: (0, 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: (0, core_1.Opt)((0, core_1.ListNode)(Reference('block_state'))),\r\n place_in: (0, core_1.Opt)((0, core_1.ListNode)(Reference('block_state'))),\r\n place_under: (0, core_1.Opt)((0, core_1.ListNode)(Reference('block_state')))\r\n },\r\n 'minecraft:simple_random_selector': {\r\n features: (0, core_1.ListNode)(Feature)\r\n },\r\n 'minecraft:small_dripstone': {\r\n max_placements: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 100 })),\r\n empty_space_search_radius: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 20 })),\r\n max_offset_from_origin: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 20 })),\r\n chance_of_taller_dripstone: (0, core_1.Opt)((0, core_1.NumberNode)({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: (0, core_1.NumberNode)({ integer: true }),\r\n hole_count: (0, core_1.NumberNode)({ integer: true }),\r\n requires_block_below: (0, core_1.BooleanNode)(),\r\n valid_blocks: (0, core_1.ListNode)(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:tree': {\r\n ignore_vines: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n force_dirt: (0, core_1.Opt)((0, 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: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: (0, core_1.NumberNode)({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: (0, 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: (0, Common_1.IntProvider)({ min: 1, max: 64 }),\r\n min_height_for_leaves: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 1 }))\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: (0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: (0, Common_1.IntProvider)({ min: 0, max: 16 }),\r\n offset: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: (0, Common_1.IntProvider)({ min: 1, max: 512 }),\r\n leaf_placement_attempts: (0, core_1.NumberNode)({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: (0, Common_1.IntProvider)({ min: 0, max: 24 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: (0, core_1.ListNode)((0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: (0, 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: (0, core_1.NumberNode)({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: (0, core_1.NumberNode)({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: (0, core_1.Opt)((0, 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: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 81 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n upper_limit: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 80 })),\r\n lower_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n middle_size: (0, core_1.Opt)((0, core_1.NumberNode)({ integer: true, min: 0, max: 16 })),\r\n upper_size: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, 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: (0, 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: (0, core_1.ListNode)((0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, 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', (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: (0, 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: (0, core_1.NumberNode)({ integer: true }),\r\n bedrock_floor_position: (0, core_1.NumberNode)({ integer: true }),\r\n sea_level: (0, core_1.NumberNode)({ integer: true }),\r\n min_surface_level: (0, core_1.NumberNode)({ integer: true }),\r\n disable_mob_generation: (0, core_1.BooleanNode)(),\r\n noise_caves_enabled: (0, core_1.BooleanNode)(),\r\n noodle_caves_enabled: (0, core_1.BooleanNode)(),\r\n aquifers_enabled: (0, core_1.BooleanNode)(),\r\n deepslate_enabled: (0, core_1.BooleanNode)(),\r\n ore_veins_enabled: (0, core_1.BooleanNode)(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: (0, core_1.ObjectNode)({\r\n min_y: (0, core_1.NumberNode)({ integer: true, min: -2048, max: 2047 }),\r\n height: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n density_factor: (0, core_1.NumberNode)(),\r\n density_offset: (0, core_1.NumberNode)(),\r\n size_horizontal: (0, core_1.NumberNode)({ integer: true }),\r\n size_vertical: (0, core_1.NumberNode)({ integer: true }),\r\n simplex_surface_noise: (0, core_1.BooleanNode)(),\r\n random_density_offset: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n island_noise_override: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n amplified: (0, core_1.Opt)((0, core_1.BooleanNode)()),\r\n sampling: (0, core_1.ObjectNode)({\r\n xz_scale: (0, core_1.NumberNode)(),\r\n y_scale: (0, core_1.NumberNode)(),\r\n xz_factor: (0, core_1.NumberNode)(),\r\n y_factor: (0, core_1.NumberNode)()\r\n }),\r\n bottom_slide: (0, core_1.ObjectNode)({\r\n target: (0, core_1.NumberNode)({ integer: true }),\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n offset: (0, core_1.NumberNode)({ integer: true })\r\n }),\r\n top_slide: (0, core_1.ObjectNode)({\r\n target: (0, core_1.NumberNode)({ integer: true }),\r\n size: (0, core_1.NumberNode)({ integer: true, min: 0 }),\r\n offset: (0, 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', (0, core_1.ObjectNode)({\r\n stronghold: (0, core_1.Opt)((0, core_1.ObjectNode)({\r\n distance: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n spread: (0, core_1.NumberNode)({ integer: true, min: 0, max: 1023 }),\r\n count: (0, core_1.NumberNode)({ integer: true, min: 1, max: 4095 })\r\n })),\r\n structures: (0, core_1.MapNode)(StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }), (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n spacing: (0, core_1.NumberNode)({ integer: true, min: 0, max: 4096 }),\r\n separation: (0, core_1.Mod)((0, 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: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: (0, 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: (0, core_1.NumberNode)({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n config: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: (0, 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: (0, core_1.NumberNode)({ min: 0, max: 1 }),\r\n cluster_probability: (0, 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: (0, core_1.Opt)((0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/surface_builder' } }),\r\n config: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n weight: (0, 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', (0, core_1.Mod)((0, 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: (0, 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 (0, ProcessorList_1.initProcessorListSchemas)(schemas, collections);\r\n (0, Biome_1.initBiomeSchemas)(schemas, collections);\r\n (0, Carver_1.initCarverSchemas)(schemas, collections);\r\n (0, Decorator_1.initDecoratorSchemas)(schemas, collections);\r\n (0, Feature_1.initFeatureSchemas)(schemas, collections);\r\n (0, NoiseSettings_1.initNoiseSettingsSchemas)(schemas, collections);\r\n (0, StructureFeature_1.initStructureFeatureSchemas)(schemas, collections);\r\n (0, SurfaceBuilder_1.initSurfaceBuilderSchemas)(schemas, collections);\r\n (0, 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', (0, core_1.Mod)((0, core_1.ObjectNode)({\r\n generate_features: (0, core_1.BooleanNode)(),\r\n bonus_chest: (0, core_1.BooleanNode)(),\r\n seed: (0, core_1.NumberNode)({ integer: true }),\r\n dimensions: (0, 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 (0, Common_1.initCommonSchemas)(schemas, collections);\r\n (0, Advancement_1.initAdvancementSchemas)(schemas, collections);\r\n (0, assets_1.initAssetsSchemas)(schemas, collections);\r\n (0, Condition_1.initConditionSchemas)(schemas, collections);\r\n (0, DimensionType_1.initDimensionTypeSchemas)(schemas, collections);\r\n (0, Dimension_1.initDimensionSchemas)(schemas, collections);\r\n (0, ItemModifier_1.initItemModifierSchemas)(schemas, collections);\r\n (0, LootTable_1.initLootTableSchemas)(schemas, collections);\r\n (0, PackMcmeta_1.initPackMcmetaSchemas)(schemas, collections);\r\n (0, Predicates_1.initPredicatesSchemas)(schemas, collections);\r\n (0, Recipe_1.initRecipeSchemas)(schemas, collections);\r\n (0, Tags_1.initTagsSchemas)(schemas, collections);\r\n (0, TextComponent_1.initTextComponentSchemas)(schemas, collections);\r\n (0, worldgen_1.initWorldgenSchemas)(schemas, collections);\r\n (0, 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 var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\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.prototype.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 = exports.lootContext = 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 (0, 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 (0, schemas_1.initSchemas)(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n"],"names":["core_1","require$$0","require$$1","require$$2","Common_1","ProcessorList_1","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","this"],"mappings":"g2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAI,CAAE,EACrC,GAAA,gBAAG,OAC1B,YAAyB,EAAa,CAClC,EAAY,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,2BACR,CAAK,EACD,EAAY,SAAS,YAAa,CAC9B,sBACA,uBACA,mBACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,sBACA,uBACA,mBACR,CAAK,EACD,EAAY,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,SACR,CAAK,EACD,EAAY,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,MACR,CAAK,EACD,EAAY,SAAS,WAAY,CAC7B,WACA,WACA,YACA,WACR,CAAK,EACD,EAAY,SAAS,0BAA2B,CAC5C,sBACA,mBACA,gBACA,sBACA,kBACA,4BACR,CAAK,EACD,EAAY,SAAS,gBAAiB,CAClC,OACA,SACA,gBACA,eACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,eACA,OACA,SACA,eACR,CAAK,EACD,EAAY,SAAS,iCAAkC,CACnD,gCACA,sCACA,qBACR,CAAK,EACD,EAAY,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,cACR,CAAK,EACD,EAAY,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,SACR,CAAK,EACD,EAAY,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,iBACR,CAAK,EACD,EAAY,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,yBACR,CAAK,EACD,EAAY,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,yBACR,CAAK,EACD,EAAY,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,2BACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,QACA,UACA,aACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,kBACR,CAAK,EACD,EAAY,SAAS,kBAAmB,CACpC,MACA,QACR,CAAK,EACD,EAAY,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,iBACR,CAAK,EACD,EAAY,SAAS,iBAAkB,CACnC,OACA,qBACA,sBACA,kBACA,mBACA,gBACA,aACA,cACA,eACA,gBACA,gBACA,mBACA,kBACA,gBACA,QACA,iBACA,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"} \ No newline at end of file diff --git a/assets/index.html b/assets/index.html index d3cd64ee..7edcea5f 100644 --- a/assets/index.html +++ b/assets/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.41a3dfd7.js"></script> - <link rel="stylesheet" href="/assets/index.c53548d8.css"> + <script type="module" crossorigin src="/assets/index.d528c217.js"></script> + <link rel="stylesheet" href="/assets/index.139af8e4.css"> </head> <body> <div data-ea-publisher="misode-github-io" data-ea-manual="true" id="ad-placeholder"></div> diff --git a/assets/model/index.html b/assets/model/index.html index 745a189f..f418fc97 100644 --- a/assets/model/index.html +++ b/assets/model/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.41a3dfd7.js"></script> - <link rel="stylesheet" href="/assets/index.c53548d8.css"> + <script type="module" crossorigin src="/assets/index.d528c217.js"></script> + <link rel="stylesheet" href="/assets/index.139af8e4.css"> </head> <body> <div data-ea-publisher="misode-github-io" data-ea-manual="true" id="ad-placeholder"></div> diff --git a/assets/sourcemapped-stacktrace.cf55c084.js b/assets/sourcemapped-stacktrace.d972a070.js similarity index 99% rename from assets/sourcemapped-stacktrace.cf55c084.js rename to assets/sourcemapped-stacktrace.d972a070.js index 1a557235..be363bdc 100644 --- a/assets/sourcemapped-stacktrace.cf55c084.js +++ b/assets/sourcemapped-stacktrace.d972a070.js @@ -1,3 +1,3 @@ -import{u as U}from"./index.41a3dfd7.js";function B(D,I){return I.forEach(function(b){b&&typeof b!="string"&&!Array.isArray(b)&&Object.keys(b).forEach(function(v){if(v!=="default"&&!(v in D)){var y=Object.getOwnPropertyDescriptor(b,v);Object.defineProperty(D,v,y.get?y:{enumerable:!0,get:function(){return b[v]}})}})}),Object.freeze(Object.defineProperty(D,Symbol.toStringTag,{value:"Module"}))}var j={exports:{}};(function(D,I){(function(v,y){D.exports=y()})(U,function(){return function(b){var v={};function y(t){if(v[t])return v[t].exports;var C=v[t]={exports:{},id:t,loaded:!1};return b[t].call(C.exports,C,C.exports,y),C.loaded=!0,C.exports}return y.m=b,y.c=v,y.p="",y(0)}([function(b,v,y){var t,C;t=[y(1)],C=function(f){var m={},d=function(i,o,p){var L,E,w={},S,R,M,T,x,G=new r(p),F=p&&p.traceFormat;if(F!=="chrome"&&F!=="firefox"){if(F)throw new Error('unknown traceFormat "'+F+'" :(');if(u()||O())F="chrome";else if(_()||A())F="firefox";else throw new Error("unknown browser :(")}F==="chrome"?(T=/^ +at.+\((.*):([0-9]+):([0-9]+)/,M=4,x=1):(T=/@(.*):([0-9]+):([0-9]+)/,M=4,x=0),L=i.split(` +import{u as U}from"./index.d528c217.js";function B(D,I){return I.forEach(function(b){b&&typeof b!="string"&&!Array.isArray(b)&&Object.keys(b).forEach(function(v){if(v!=="default"&&!(v in D)){var y=Object.getOwnPropertyDescriptor(b,v);Object.defineProperty(D,v,y.get?y:{enumerable:!0,get:function(){return b[v]}})}})}),Object.freeze(Object.defineProperty(D,Symbol.toStringTag,{value:"Module"}))}var j={exports:{}};(function(D,I){(function(v,y){D.exports=y()})(U,function(){return function(b){var v={};function y(t){if(v[t])return v[t].exports;var C=v[t]={exports:{},id:t,loaded:!1};return b[t].call(C.exports,C,C.exports,y),C.loaded=!0,C.exports}return y.m=b,y.c=v,y.p="",y(0)}([function(b,v,y){var t,C;t=[y(1)],C=function(f){var m={},d=function(i,o,p){var L,E,w={},S,R,M,T,x,G=new r(p),F=p&&p.traceFormat;if(F!=="chrome"&&F!=="firefox"){if(F)throw new Error('unknown traceFormat "'+F+'" :(');if(u()||O())F="chrome";else if(_()||A())F="firefox";else throw new Error("unknown browser :(")}F==="chrome"?(T=/^ +at.+\((.*):([0-9]+):([0-9]+)/,M=4,x=1):(T=/@(.*):([0-9]+):([0-9]+)/,M=4,x=0),L=i.split(` `).slice(x);for(var P=0;P<L.length;P++)E=L[P],!(p&&p.filter&&!p.filter(E))&&(S=E.match(T),S&&S.length===M&&(w[P]=S,R=S[1],R.match(/<anonymous>/)||G.fetchScript(R)));G.sem.whenReady(function(){var N=l(L,w,G.mapForUri,F);o(N)})},u=function(){return navigator.userAgent.toLowerCase().indexOf("chrome")>-1},_=function(){return navigator.userAgent.toLowerCase().indexOf("firefox")>-1},A=function(){return navigator.userAgent.toLowerCase().indexOf("safari")>-1},O=function(){return document.documentMode&&document.documentMode>=11},a=function(){this.count=0,this.pending=[]};a.prototype.incr=function(){this.count++},a.prototype.decr=function(){this.count--,this.flush()},a.prototype.whenReady=function(i){this.pending.push(i),this.flush()},a.prototype.flush=function(){this.count===0&&(this.pending.forEach(function(i){i()}),this.pending=[])};var r=function(i){this.sem=new a,this.sync=i&&i.sync,this.mapForUri=i&&i.cacheGlobally?m:{}};r.prototype.ajax=function(i,o){var p=n(),L=this;p.onreadystatechange=function(){p.readyState==4&&o.call(L,p,i)},p.open("GET",i,!this.sync),p.send()},r.prototype.fetchScript=function(i){if(!(i in this.mapForUri))this.sem.incr(),this.mapForUri[i]=null;else return;this.ajax(i,this.onScriptLoad)};var s=new RegExp("^(?:[a-z]+:)?//","i");r.prototype.onScriptLoad=function(i,o){if(i.status===200||o.slice(0,7)==="file://"&&i.status===0){var p=i.responseText.match("//# [s]ourceMappingURL=(.*)[\\s]*$","m");if(p&&p.length===2){var L=p[1],E=L.match("data:application/json;(charset=[^;]+;)?base64,(.*)");if(E&&E[2])this.mapForUri[o]=new f.SourceMapConsumer(atob(E[2])),this.sem.decr();else{if(!s.test(L)){var w,S=o.lastIndexOf("/");S!==-1&&(w=o.slice(0,S+1),L=w+L)}this.ajax(L,function(R){(R.status===200||L.slice(0,7)==="file://"&&R.status===0)&&(this.mapForUri[o]=new f.SourceMapConsumer(R.responseText)),this.sem.decr()})}}else this.sem.decr()}else this.sem.decr()};var l=function(i,o,p,L){for(var E=[],w,S=L==="chrome"?c:h,R=0;R<i.length;R++){var M=o[R];if(M){var T=M[1],x=parseInt(M[2],10),G=parseInt(M[3],10);if(w=p[T],w){var F=w.originalPositionFor({line:x,column:G});E.push(g(F.source,F.line,F.column,F.name||S(i[R])))}else E.push(g(T,x,G,S(i[R])))}else E.push(i[R])}return E};function c(i){var o=/ +at +([^ ]*).*/.exec(i);return o&&o[1]}function h(i){var o=/([^@]*)@.*/.exec(i);return o&&o[1]}var g=function(i,o,p,L){return" at "+(L||"(unknown)")+" ("+i+":"+o+":"+p+")"},e=[function(){return new XMLHttpRequest},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml3.XMLHTTP")},function(){return new ActiveXObject("Microsoft.XMLHTTP")}];function n(){for(var i=!1,o=0;o<e.length;o++){try{i=e[o]()}catch{continue}break}return i}return{mapStackTrace:d}}.apply(v,t),C!==void 0&&(b.exports=C)},function(b,v,y){var t=y(2),C=y(3),f=y(4).ArraySet,m=y(5),d=y(7).quickSort;function u(a){var r=a;return typeof a=="string"&&(r=JSON.parse(a.replace(/^\)\]\}'/,""))),r.sections!=null?new O(r):new _(r)}u.fromSourceMap=function(a){return _.fromSourceMap(a)},u.prototype._version=3,u.prototype.__generatedMappings=null,Object.defineProperty(u.prototype,"_generatedMappings",{get:function(){return this.__generatedMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__generatedMappings}}),u.prototype.__originalMappings=null,Object.defineProperty(u.prototype,"_originalMappings",{get:function(){return this.__originalMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__originalMappings}}),u.prototype._charIsMappingSeparator=function(r,s){var l=r.charAt(s);return l===";"||l===","},u.prototype._parseMappings=function(r,s){throw new Error("Subclasses must implement _parseMappings")},u.GENERATED_ORDER=1,u.ORIGINAL_ORDER=2,u.GREATEST_LOWER_BOUND=1,u.LEAST_UPPER_BOUND=2,u.prototype.eachMapping=function(r,s,l){var c=s||null,h=l||u.GENERATED_ORDER,g;switch(h){case u.GENERATED_ORDER:g=this._generatedMappings;break;case u.ORIGINAL_ORDER:g=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}var e=this.sourceRoot;g.map(function(n){var i=n.source===null?null:this._sources.at(n.source);return i!=null&&e!=null&&(i=t.join(e,i)),{source:i,generatedLine:n.generatedLine,generatedColumn:n.generatedColumn,originalLine:n.originalLine,originalColumn:n.originalColumn,name:n.name===null?null:this._names.at(n.name)}},this).forEach(r,c)},u.prototype.allGeneratedPositionsFor=function(r){var s=t.getArg(r,"line"),l={source:t.getArg(r,"source"),originalLine:s,originalColumn:t.getArg(r,"column",0)};if(this.sourceRoot!=null&&(l.source=t.relative(this.sourceRoot,l.source)),!this._sources.has(l.source))return[];l.source=this._sources.indexOf(l.source);var c=[],h=this._findMapping(l,this._originalMappings,"originalLine","originalColumn",t.compareByOriginalPositions,C.LEAST_UPPER_BOUND);if(h>=0){var g=this._originalMappings[h];if(r.column===void 0)for(var e=g.originalLine;g&&g.originalLine===e;)c.push({line:t.getArg(g,"generatedLine",null),column:t.getArg(g,"generatedColumn",null),lastColumn:t.getArg(g,"lastGeneratedColumn",null)}),g=this._originalMappings[++h];else for(var n=g.originalColumn;g&&g.originalLine===s&&g.originalColumn==n;)c.push({line:t.getArg(g,"generatedLine",null),column:t.getArg(g,"generatedColumn",null),lastColumn:t.getArg(g,"lastGeneratedColumn",null)}),g=this._originalMappings[++h]}return c},v.SourceMapConsumer=u;function _(a){var r=a;typeof a=="string"&&(r=JSON.parse(a.replace(/^\)\]\}'/,"")));var s=t.getArg(r,"version"),l=t.getArg(r,"sources"),c=t.getArg(r,"names",[]),h=t.getArg(r,"sourceRoot",null),g=t.getArg(r,"sourcesContent",null),e=t.getArg(r,"mappings"),n=t.getArg(r,"file",null);if(s!=this._version)throw new Error("Unsupported version: "+s);l=l.map(String).map(t.normalize).map(function(i){return h&&t.isAbsolute(h)&&t.isAbsolute(i)?t.relative(h,i):i}),this._names=f.fromArray(c.map(String),!0),this._sources=f.fromArray(l,!0),this.sourceRoot=h,this.sourcesContent=g,this._mappings=e,this.file=n}_.prototype=Object.create(u.prototype),_.prototype.consumer=u,_.fromSourceMap=function(r){var s=Object.create(_.prototype),l=s._names=f.fromArray(r._names.toArray(),!0),c=s._sources=f.fromArray(r._sources.toArray(),!0);s.sourceRoot=r._sourceRoot,s.sourcesContent=r._generateSourcesContent(s._sources.toArray(),s.sourceRoot),s.file=r._file;for(var h=r._mappings.toArray().slice(),g=s.__generatedMappings=[],e=s.__originalMappings=[],n=0,i=h.length;n<i;n++){var o=h[n],p=new A;p.generatedLine=o.generatedLine,p.generatedColumn=o.generatedColumn,o.source&&(p.source=c.indexOf(o.source),p.originalLine=o.originalLine,p.originalColumn=o.originalColumn,o.name&&(p.name=l.indexOf(o.name)),e.push(p)),g.push(p)}return d(s.__originalMappings,t.compareByOriginalPositions),s},_.prototype._version=3,Object.defineProperty(_.prototype,"sources",{get:function(){return this._sources.toArray().map(function(a){return this.sourceRoot!=null?t.join(this.sourceRoot,a):a},this)}});function A(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}_.prototype._parseMappings=function(r,s){for(var l=1,c=0,h=0,g=0,e=0,n=0,i=r.length,o=0,p={},L={},E=[],w=[],S,R,M,T,x;o<i;)if(r.charAt(o)===";")l++,o++,c=0;else if(r.charAt(o)===",")o++;else{for(S=new A,S.generatedLine=l,T=o;T<i&&!this._charIsMappingSeparator(r,T);T++);if(R=r.slice(o,T),M=p[R],M)o+=R.length;else{for(M=[];o<T;)m.decode(r,o,L),x=L.value,o=L.rest,M.push(x);if(M.length===2)throw new Error("Found a source, but no line and column");if(M.length===3)throw new Error("Found a source and line, but no column");p[R]=M}S.generatedColumn=c+M[0],c=S.generatedColumn,M.length>1&&(S.source=e+M[1],e+=M[1],S.originalLine=h+M[2],h=S.originalLine,S.originalLine+=1,S.originalColumn=g+M[3],g=S.originalColumn,M.length>4&&(S.name=n+M[4],n+=M[4])),w.push(S),typeof S.originalLine=="number"&&E.push(S)}d(w,t.compareByGeneratedPositionsDeflated),this.__generatedMappings=w,d(E,t.compareByOriginalPositions),this.__originalMappings=E},_.prototype._findMapping=function(r,s,l,c,h,g){if(r[l]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+r[l]);if(r[c]<0)throw new TypeError("Column must be greater than or equal to 0, got "+r[c]);return C.search(r,s,h,g)},_.prototype.computeColumnSpans=function(){for(var r=0;r<this._generatedMappings.length;++r){var s=this._generatedMappings[r];if(r+1<this._generatedMappings.length){var l=this._generatedMappings[r+1];if(s.generatedLine===l.generatedLine){s.lastGeneratedColumn=l.generatedColumn-1;continue}}s.lastGeneratedColumn=1/0}},_.prototype.originalPositionFor=function(r){var s={generatedLine:t.getArg(r,"line"),generatedColumn:t.getArg(r,"column")},l=this._findMapping(s,this._generatedMappings,"generatedLine","generatedColumn",t.compareByGeneratedPositionsDeflated,t.getArg(r,"bias",u.GREATEST_LOWER_BOUND));if(l>=0){var c=this._generatedMappings[l];if(c.generatedLine===s.generatedLine){var h=t.getArg(c,"source",null);h!==null&&(h=this._sources.at(h),this.sourceRoot!=null&&(h=t.join(this.sourceRoot,h)));var g=t.getArg(c,"name",null);return g!==null&&(g=this._names.at(g)),{source:h,line:t.getArg(c,"originalLine",null),column:t.getArg(c,"originalColumn",null),name:g}}}return{source:null,line:null,column:null,name:null}},_.prototype.hasContentsOfAllSources=function(){return this.sourcesContent?this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some(function(r){return r==null}):!1},_.prototype.sourceContentFor=function(r,s){if(!this.sourcesContent)return null;if(this.sourceRoot!=null&&(r=t.relative(this.sourceRoot,r)),this._sources.has(r))return this.sourcesContent[this._sources.indexOf(r)];var l;if(this.sourceRoot!=null&&(l=t.urlParse(this.sourceRoot))){var c=r.replace(/^file:\/\//,"");if(l.scheme=="file"&&this._sources.has(c))return this.sourcesContent[this._sources.indexOf(c)];if((!l.path||l.path=="/")&&this._sources.has("/"+r))return this.sourcesContent[this._sources.indexOf("/"+r)]}if(s)return null;throw new Error('"'+r+'" is not in the SourceMap.')},_.prototype.generatedPositionFor=function(r){var s=t.getArg(r,"source");if(this.sourceRoot!=null&&(s=t.relative(this.sourceRoot,s)),!this._sources.has(s))return{line:null,column:null,lastColumn:null};s=this._sources.indexOf(s);var l={source:s,originalLine:t.getArg(r,"line"),originalColumn:t.getArg(r,"column")},c=this._findMapping(l,this._originalMappings,"originalLine","originalColumn",t.compareByOriginalPositions,t.getArg(r,"bias",u.GREATEST_LOWER_BOUND));if(c>=0){var h=this._originalMappings[c];if(h.source===l.source)return{line:t.getArg(h,"generatedLine",null),column:t.getArg(h,"generatedColumn",null),lastColumn:t.getArg(h,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}},v.BasicSourceMapConsumer=_;function O(a){var r=a;typeof a=="string"&&(r=JSON.parse(a.replace(/^\)\]\}'/,"")));var s=t.getArg(r,"version"),l=t.getArg(r,"sections");if(s!=this._version)throw new Error("Unsupported version: "+s);this._sources=new f,this._names=new f;var c={line:-1,column:0};this._sections=l.map(function(h){if(h.url)throw new Error("Support for url field in sections not implemented.");var g=t.getArg(h,"offset"),e=t.getArg(g,"line"),n=t.getArg(g,"column");if(e<c.line||e===c.line&&n<c.column)throw new Error("Section offsets must be ordered and non-overlapping.");return c=g,{generatedOffset:{generatedLine:e+1,generatedColumn:n+1},consumer:new u(t.getArg(h,"map"))}})}O.prototype=Object.create(u.prototype),O.prototype.constructor=u,O.prototype._version=3,Object.defineProperty(O.prototype,"sources",{get:function(){for(var a=[],r=0;r<this._sections.length;r++)for(var s=0;s<this._sections[r].consumer.sources.length;s++)a.push(this._sections[r].consumer.sources[s]);return a}}),O.prototype.originalPositionFor=function(r){var s={generatedLine:t.getArg(r,"line"),generatedColumn:t.getArg(r,"column")},l=C.search(s,this._sections,function(h,g){var e=h.generatedLine-g.generatedOffset.generatedLine;return e||h.generatedColumn-g.generatedOffset.generatedColumn}),c=this._sections[l];return c?c.consumer.originalPositionFor({line:s.generatedLine-(c.generatedOffset.generatedLine-1),column:s.generatedColumn-(c.generatedOffset.generatedLine===s.generatedLine?c.generatedOffset.generatedColumn-1:0),bias:r.bias}):{source:null,line:null,column:null,name:null}},O.prototype.hasContentsOfAllSources=function(){return this._sections.every(function(r){return r.consumer.hasContentsOfAllSources()})},O.prototype.sourceContentFor=function(r,s){for(var l=0;l<this._sections.length;l++){var c=this._sections[l],h=c.consumer.sourceContentFor(r,!0);if(h)return h}if(s)return null;throw new Error('"'+r+'" is not in the SourceMap.')},O.prototype.generatedPositionFor=function(r){for(var s=0;s<this._sections.length;s++){var l=this._sections[s];if(l.consumer.sources.indexOf(t.getArg(r,"source"))!==-1){var c=l.consumer.generatedPositionFor(r);if(c){var h={line:c.line+(l.generatedOffset.generatedLine-1),column:c.column+(l.generatedOffset.generatedLine===c.line?l.generatedOffset.generatedColumn-1:0)};return h}}}return{line:null,column:null}},O.prototype._parseMappings=function(r,s){this.__generatedMappings=[],this.__originalMappings=[];for(var l=0;l<this._sections.length;l++)for(var c=this._sections[l],h=c.consumer._generatedMappings,g=0;g<h.length;g++){var e=h[g],n=c.consumer._sources.at(e.source);c.consumer.sourceRoot!==null&&(n=t.join(c.consumer.sourceRoot,n)),this._sources.add(n),n=this._sources.indexOf(n);var i=c.consumer._names.at(e.name);this._names.add(i),i=this._names.indexOf(i);var o={source:n,generatedLine:e.generatedLine+(c.generatedOffset.generatedLine-1),generatedColumn:e.generatedColumn+(c.generatedOffset.generatedLine===e.generatedLine?c.generatedOffset.generatedColumn-1:0),originalLine:e.originalLine,originalColumn:e.originalColumn,name:i};this.__generatedMappings.push(o),typeof o.originalLine=="number"&&this.__originalMappings.push(o)}d(this.__generatedMappings,t.compareByGeneratedPositionsDeflated),d(this.__originalMappings,t.compareByOriginalPositions)},v.IndexedSourceMapConsumer=O},function(b,v){function y(e,n,i){if(n in e)return e[n];if(arguments.length===3)return i;throw new Error('"'+n+'" is a required argument.')}v.getArg=y;var t=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/,C=/^data:.+\,.+$/;function f(e){var n=e.match(t);return n?{scheme:n[1],auth:n[2],host:n[3],port:n[4],path:n[5]}:null}v.urlParse=f;function m(e){var n="";return e.scheme&&(n+=e.scheme+":"),n+="//",e.auth&&(n+=e.auth+"@"),e.host&&(n+=e.host),e.port&&(n+=":"+e.port),e.path&&(n+=e.path),n}v.urlGenerate=m;function d(e){var n=e,i=f(e);if(i){if(!i.path)return e;n=i.path}for(var o=v.isAbsolute(n),p=n.split(/\/+/),L,E=0,w=p.length-1;w>=0;w--)L=p[w],L==="."?p.splice(w,1):L===".."?E++:E>0&&(L===""?(p.splice(w+1,E),E=0):(p.splice(w,2),E--));return n=p.join("/"),n===""&&(n=o?"/":"."),i?(i.path=n,m(i)):n}v.normalize=d;function u(e,n){e===""&&(e="."),n===""&&(n=".");var i=f(n),o=f(e);if(o&&(e=o.path||"/"),i&&!i.scheme)return o&&(i.scheme=o.scheme),m(i);if(i||n.match(C))return n;if(o&&!o.host&&!o.path)return o.host=n,m(o);var p=n.charAt(0)==="/"?n:d(e.replace(/\/+$/,"")+"/"+n);return o?(o.path=p,m(o)):p}v.join=u,v.isAbsolute=function(e){return e.charAt(0)==="/"||!!e.match(t)};function _(e,n){e===""&&(e="."),e=e.replace(/\/$/,"");for(var i=0;n.indexOf(e+"/")!==0;){var o=e.lastIndexOf("/");if(o<0||(e=e.slice(0,o),e.match(/^([^\/]+:\/)?\/*$/)))return n;++i}return Array(i+1).join("../")+n.substr(e.length+1)}v.relative=_;var A=function(){var e=Object.create(null);return!("__proto__"in e)}();function O(e){return e}function a(e){return s(e)?"$"+e:e}v.toSetString=A?O:a;function r(e){return s(e)?e.slice(1):e}v.fromSetString=A?O:r;function s(e){if(!e)return!1;var n=e.length;if(n<9||e.charCodeAt(n-1)!==95||e.charCodeAt(n-2)!==95||e.charCodeAt(n-3)!==111||e.charCodeAt(n-4)!==116||e.charCodeAt(n-5)!==111||e.charCodeAt(n-6)!==114||e.charCodeAt(n-7)!==112||e.charCodeAt(n-8)!==95||e.charCodeAt(n-9)!==95)return!1;for(var i=n-10;i>=0;i--)if(e.charCodeAt(i)!==36)return!1;return!0}function l(e,n,i){var o=e.source-n.source;return o!==0||(o=e.originalLine-n.originalLine,o!==0)||(o=e.originalColumn-n.originalColumn,o!==0||i)||(o=e.generatedColumn-n.generatedColumn,o!==0)||(o=e.generatedLine-n.generatedLine,o!==0)?o:e.name-n.name}v.compareByOriginalPositions=l;function c(e,n,i){var o=e.generatedLine-n.generatedLine;return o!==0||(o=e.generatedColumn-n.generatedColumn,o!==0||i)||(o=e.source-n.source,o!==0)||(o=e.originalLine-n.originalLine,o!==0)||(o=e.originalColumn-n.originalColumn,o!==0)?o:e.name-n.name}v.compareByGeneratedPositionsDeflated=c;function h(e,n){return e===n?0:e>n?1:-1}function g(e,n){var i=e.generatedLine-n.generatedLine;return i!==0||(i=e.generatedColumn-n.generatedColumn,i!==0)||(i=h(e.source,n.source),i!==0)||(i=e.originalLine-n.originalLine,i!==0)||(i=e.originalColumn-n.originalColumn,i!==0)?i:h(e.name,n.name)}v.compareByGeneratedPositionsInflated=g},function(b,v){v.GREATEST_LOWER_BOUND=1,v.LEAST_UPPER_BOUND=2;function y(t,C,f,m,d,u){var _=Math.floor((C-t)/2)+t,A=d(f,m[_],!0);return A===0?_:A>0?C-_>1?y(_,C,f,m,d,u):u==v.LEAST_UPPER_BOUND?C<m.length?C:-1:_:_-t>1?y(t,_,f,m,d,u):u==v.LEAST_UPPER_BOUND?_:t<0?-1:t}v.search=function(C,f,m,d){if(f.length===0)return-1;var u=y(-1,f.length,C,f,m,d||v.GREATEST_LOWER_BOUND);if(u<0)return-1;for(;u-1>=0&&m(f[u],f[u-1],!0)===0;)--u;return u}},function(b,v,y){var t=y(2),C=Object.prototype.hasOwnProperty;function f(){this._array=[],this._set=Object.create(null)}f.fromArray=function(d,u){for(var _=new f,A=0,O=d.length;A<O;A++)_.add(d[A],u);return _},f.prototype.size=function(){return Object.getOwnPropertyNames(this._set).length},f.prototype.add=function(d,u){var _=t.toSetString(d),A=C.call(this._set,_),O=this._array.length;(!A||u)&&this._array.push(d),A||(this._set[_]=O)},f.prototype.has=function(d){var u=t.toSetString(d);return C.call(this._set,u)},f.prototype.indexOf=function(d){var u=t.toSetString(d);if(C.call(this._set,u))return this._set[u];throw new Error('"'+d+'" is not in the set.')},f.prototype.at=function(d){if(d>=0&&d<this._array.length)return this._array[d];throw new Error("No element indexed by "+d)},f.prototype.toArray=function(){return this._array.slice()},v.ArraySet=f},function(b,v,y){var t=y(6),C=5,f=1<<C,m=f-1,d=f;function u(A){return A<0?(-A<<1)+1:(A<<1)+0}function _(A){var O=(A&1)===1,a=A>>1;return O?-a:a}v.encode=function(O){var a="",r,s=u(O);do r=s&m,s>>>=C,s>0&&(r|=d),a+=t.encode(r);while(s>0);return a},v.decode=function(O,a,r){var s=O.length,l=0,c=0,h,g;do{if(a>=s)throw new Error("Expected more digits in base 64 VLQ value.");if(g=t.decode(O.charCodeAt(a++)),g===-1)throw new Error("Invalid base64 digit: "+O.charAt(a-1));h=!!(g&d),g&=m,l=l+(g<<c),c+=C}while(h);r.value=_(l),r.rest=a}},function(b,v){var y="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");v.encode=function(t){if(0<=t&&t<y.length)return y[t];throw new TypeError("Must be between 0 and 63: "+t)},v.decode=function(t){var C=65,f=90,m=97,d=122,u=48,_=57,A=43,O=47,a=26,r=52;return C<=t&&t<=f?t-C:m<=t&&t<=d?t-m+a:u<=t&&t<=_?t-u+r:t==A?62:t==O?63:-1}},function(b,v){function y(f,m,d){var u=f[m];f[m]=f[d],f[d]=u}function t(f,m){return Math.round(f+Math.random()*(m-f))}function C(f,m,d,u){if(d<u){var _=t(d,u),A=d-1;y(f,_,u);for(var O=f[u],a=d;a<u;a++)m(f[a],O)<=0&&(A+=1,y(f,A,a));y(f,A+1,a);var r=A+1;C(f,m,d,r-1),C(f,m,r+1,u)}}v.quickSort=function(f,m){C(f,m,0,f.length-1)}}])})})(j);var Q=j.exports,X=B({__proto__:null,default:Q},[j.exports]);export{X as s}; -//# sourceMappingURL=sourcemapped-stacktrace.cf55c084.js.map +//# sourceMappingURL=sourcemapped-stacktrace.d972a070.js.map diff --git a/assets/sourcemapped-stacktrace.cf55c084.js.map b/assets/sourcemapped-stacktrace.d972a070.js.map similarity index 99% rename from assets/sourcemapped-stacktrace.cf55c084.js.map rename to assets/sourcemapped-stacktrace.d972a070.js.map index 1f28c534..85e3fafa 100644 --- a/assets/sourcemapped-stacktrace.cf55c084.js.map +++ b/assets/sourcemapped-stacktrace.d972a070.js.map @@ -1 +1 @@ -{"version":3,"file":"sourcemapped-stacktrace.cf55c084.js","sources":["../../node_modules/sourcemapped-stacktrace/dist/sourcemapped-stacktrace.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\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\telse if(typeof exports === 'object')\n\t\texports[\"sourceMappedStackTrace\"] = factory();\n\telse\n\t\troot[\"sourceMappedStackTrace\"] = 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/******/ \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\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*\n\t * sourcemapped-stacktrace.js\n\t * created by James Salter <iteration@gmail.com> (2014)\n\t *\n\t * https://github.com/novocaine/sourcemapped-stacktrace\n\t *\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\t/*global define */\n\n\t// note we only include source-map-consumer, not the whole source-map library,\n\t// which includes gear for generating source maps that we don't need\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1)], __WEBPACK_AMD_DEFINE_RESULT__ = function(source_map_consumer) {\n\n\t var global_mapForUri = {};\n\n\t /**\n\t * Re-map entries in a stacktrace using sourcemaps if available.\n\t *\n\t * @param {str} stack - The stacktrace from the browser.\n\t * @param {function} done - Callback invoked with the transformed stacktrace\n\t * (an Array of Strings) passed as the first\n\t * argument\n\t * @param {Object} [opts] - Optional options object.\n\t * @param {Function} [opts.filter] - Filter function applied to each stackTrace line.\n\t * Lines which do not pass the filter won't be processesd.\n\t * @param {boolean} [opts.cacheGlobally] - Whether to cache sourcemaps globally across multiple calls.\n\t * @param {boolean} [opts.sync] - Whether to use synchronous ajax to load the sourcemaps.\n\t * @param {string} [opts.traceFormat] - If `error.stack` is formatted according to chrome or\n\t * Firefox's style. Can be either `\"chrome\"`, `\"firefox\"`\n\t * or `undefined` (default). If `undefined`, this library\n\t * will guess based on `navigator.userAgent`.\n\t */\n\t var mapStackTrace = function(stack, done, opts) {\n\t var lines;\n\t var line;\n\t var mapForUri = {};\n\t var rows = {};\n\t var fields;\n\t var uri;\n\t var expected_fields;\n\t var regex;\n\t var skip_lines;\n\n\t var fetcher = new Fetcher(opts);\n\n\t var traceFormat = opts && opts.traceFormat;\n\t if (traceFormat !== \"chrome\" && traceFormat !== \"firefox\") {\n\t if (traceFormat) {\n\t throw new Error(\"unknown traceFormat \\\"\" + traceFormat + \"\\\" :(\");\n\t } else if (isChromeOrEdge() || isIE11Plus()) {\n\t traceFormat = \"chrome\";\n\t } else if (isFirefox() || isSafari()) {\n\t traceFormat = \"firefox\";\n\t } else {\n\t throw new Error(\"unknown browser :(\");\n\t }\n\t }\n\n\t if (traceFormat === \"chrome\") {\n\t regex = /^ +at.+\\((.*):([0-9]+):([0-9]+)/;\n\t expected_fields = 4;\n\t // (skip first line containing exception message)\n\t skip_lines = 1;\n\t } else {\n\t regex = /@(.*):([0-9]+):([0-9]+)/;\n\t expected_fields = 4;\n\t skip_lines = 0;\n\t }\n\n\t lines = stack.split(\"\\n\").slice(skip_lines);\n\n\t for (var i=0; i < lines.length; i++) {\n\t line = lines[i];\n\t if ( opts && opts.filter && !opts.filter(line) ) continue;\n\t \n\t fields = line.match(regex);\n\t if (fields && fields.length === expected_fields) {\n\t rows[i] = fields;\n\t uri = fields[1];\n\t if (!uri.match(/<anonymous>/)) {\n\t fetcher.fetchScript(uri);\n\t }\n\t }\n\t }\n\n\t fetcher.sem.whenReady(function() {\n\t var result = processSourceMaps(lines, rows, fetcher.mapForUri, traceFormat);\n\t done(result);\n\t });\n\t };\n\n\t var isChromeOrEdge = function() {\n\t return navigator.userAgent.toLowerCase().indexOf('chrome') > -1;\n\t };\n\n\t var isFirefox = function() {\n\t return navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\n\t }; \n\n\t var isSafari = function() {\n\t return navigator.userAgent.toLowerCase().indexOf('safari') > -1;\n\t };\n\t\t\t\n\t var isIE11Plus = function() {\n\t \treturn document.documentMode && document.documentMode >= 11;\n\t };\n\n\n\t var Semaphore = function() {\n\t this.count = 0;\n\t this.pending = [];\n\t };\n\n\t Semaphore.prototype.incr = function() {\n\t this.count++;\n\t };\n\n\t Semaphore.prototype.decr = function() {\n\t this.count--;\n\t this.flush();\n\t };\n\n\t Semaphore.prototype.whenReady = function(fn) {\n\t this.pending.push(fn);\n\t this.flush();\n\t };\n\n\t Semaphore.prototype.flush = function() {\n\t if (this.count === 0) {\n\t this.pending.forEach(function(fn) { fn(); });\n\t this.pending = [];\n\t }\n\t };\n\n\n\t var Fetcher = function(opts) {\n\t this.sem = new Semaphore();\n\t this.sync = opts && opts.sync;\n\t this.mapForUri = opts && opts.cacheGlobally ? global_mapForUri : {};\n\t };\n\n\t Fetcher.prototype.ajax = function(uri, callback) {\n\t var xhr = createXMLHTTPObject();\n\t var that = this;\n\t xhr.onreadystatechange = function() {\n\t if (xhr.readyState == 4) {\n\t callback.call(that, xhr, uri);\n\t }\n\t };\n\t xhr.open(\"GET\", uri, !this.sync);\n\t xhr.send();\n\t }\n\n\t Fetcher.prototype.fetchScript = function(uri) {\n\t if (!(uri in this.mapForUri)) {\n\t this.sem.incr();\n\t this.mapForUri[uri] = null;\n\t } else {\n\t return;\n\t }\n\n\t this.ajax(uri, this.onScriptLoad);\n\t };\n\n\t var absUrlRegex = new RegExp('^(?:[a-z]+:)?//', 'i');\n\n\t Fetcher.prototype.onScriptLoad = function(xhr, uri) {\n\t if (xhr.status === 200 || (uri.slice(0, 7) === \"file://\" && xhr.status === 0)) {\n\t // find .map in file.\n\t //\n\t // attempt to find it at the very end of the file, but tolerate trailing\n\t // whitespace inserted by some packers.\n\t var match = xhr.responseText.match(\"//# [s]ourceMappingURL=(.*)[\\\\s]*$\", \"m\");\n\t if (match && match.length === 2) {\n\t // get the map\n\t var mapUri = match[1];\n\n\t var embeddedSourceMap = mapUri.match(\"data:application/json;(charset=[^;]+;)?base64,(.*)\");\n\n\t if (embeddedSourceMap && embeddedSourceMap[2]) {\n\t this.mapForUri[uri] = new source_map_consumer.SourceMapConsumer(atob(embeddedSourceMap[2]));\n\t this.sem.decr();\n\t } else {\n\t if (!absUrlRegex.test(mapUri)) {\n\t // relative url; according to sourcemaps spec is 'source origin'\n\t var origin;\n\t var lastSlash = uri.lastIndexOf('/');\n\t if (lastSlash !== -1) {\n\t origin = uri.slice(0, lastSlash + 1);\n\t mapUri = origin + mapUri;\n\t // note if lastSlash === -1, actual script uri has no slash\n\t // somehow, so no way to use it as a prefix... we give up and try\n\t // as absolute\n\t }\n\t }\n\n\t this.ajax(mapUri, function(xhr) {\n\t if (xhr.status === 200 || (mapUri.slice(0, 7) === \"file://\" && xhr.status === 0)) {\n\t this.mapForUri[uri] = new source_map_consumer.SourceMapConsumer(xhr.responseText);\n\t }\n\t this.sem.decr();\n\t });\n\t }\n\t } else {\n\t // no map\n\t this.sem.decr();\n\t }\n\t } else {\n\t // HTTP error fetching uri of the script\n\t this.sem.decr();\n\t }\n\t };\n\n\t var processSourceMaps = function(lines, rows, mapForUri, traceFormat) {\n\t var result = [];\n\t var map;\n\t var origName = traceFormat === \"chrome\" ? origNameChrome : origNameFirefox;\n\t for (var i=0; i < lines.length; i++) {\n\t var row = rows[i];\n\t if (row) {\n\t var uri = row[1];\n\t var line = parseInt(row[2], 10);\n\t var column = parseInt(row[3], 10);\n\t map = mapForUri[uri];\n\n\t if (map) {\n\t // we think we have a map for that uri. call source-map library\n\t var origPos = map.originalPositionFor(\n\t { line: line, column: column });\n\t result.push(formatOriginalPosition(origPos.source,\n\t origPos.line, origPos.column, origPos.name || origName(lines[i])));\n\t } else {\n\t // we can't find a map for that url, but we parsed the row.\n\t // reformat unchanged line for consistency with the sourcemapped\n\t // lines.\n\t result.push(formatOriginalPosition(uri, line, column, origName(lines[i])));\n\t }\n\t } else {\n\t // we weren't able to parse the row, push back what we were given\n\t result.push(lines[i]);\n\t }\n\t }\n\n\t return result;\n\t };\n\n\t function origNameChrome(origLine) {\n\t var match = / +at +([^ ]*).*/.exec(origLine);\n\t return match && match[1];\n\t }\n\n\t function origNameFirefox(origLine) {\n\t var match = /([^@]*)@.*/.exec(origLine);\n\t return match && match[1];\n\t }\n\n\t var formatOriginalPosition = function(source, line, column, name) {\n\t // mimic chrome's format\n\t return \" at \" + (name ? name : \"(unknown)\") +\n\t \" (\" + source + \":\" + line + \":\" + column + \")\";\n\t };\n\n\t // xmlhttprequest boilerplate\n\t var XMLHttpFactories = [\n\t\tfunction () {return new XMLHttpRequest();},\n\t\tfunction () {return new ActiveXObject(\"Msxml2.XMLHTTP\");},\n\t\tfunction () {return new ActiveXObject(\"Msxml3.XMLHTTP\");},\n\t\tfunction () {return new ActiveXObject(\"Microsoft.XMLHTTP\");}\n\t ];\n\n\t function createXMLHTTPObject() {\n\t var xmlhttp = false;\n\t for (var i=0;i<XMLHttpFactories.length;i++) {\n\t try {\n\t xmlhttp = XMLHttpFactories[i]();\n\t }\n\t catch (e) {\n\t continue;\n\t }\n\t break;\n\t }\n\t return xmlhttp;\n\t }\n\n\t return {\n\t mapStackTrace: mapStackTrace\n\t }\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\tvar util = __webpack_require__(2);\n\tvar binarySearch = __webpack_require__(3);\n\tvar ArraySet = __webpack_require__(4).ArraySet;\n\tvar base64VLQ = __webpack_require__(5);\n\tvar quickSort = __webpack_require__(7).quickSort;\n\n\tfunction SourceMapConsumer(aSourceMap) {\n\t var sourceMap = aSourceMap;\n\t if (typeof aSourceMap === 'string') {\n\t sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n\t }\n\n\t return sourceMap.sections != null\n\t ? new IndexedSourceMapConsumer(sourceMap)\n\t : new BasicSourceMapConsumer(sourceMap);\n\t}\n\n\tSourceMapConsumer.fromSourceMap = function(aSourceMap) {\n\t return BasicSourceMapConsumer.fromSourceMap(aSourceMap);\n\t}\n\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tSourceMapConsumer.prototype._version = 3;\n\n\t// `__generatedMappings` and `__originalMappings` are arrays that hold the\n\t// parsed mapping coordinates from the source map's \"mappings\" attribute. They\n\t// are lazily instantiated, accessed via the `_generatedMappings` and\n\t// `_originalMappings` getters respectively, and we only parse the mappings\n\t// and create these arrays once queried for a source location. We jump through\n\t// these hoops because there can be many thousands of mappings, and parsing\n\t// them is expensive, so we only want to do it if we must.\n\t//\n\t// Each object in the arrays is of the form:\n\t//\n\t// {\n\t// generatedLine: The line number in the generated code,\n\t// generatedColumn: The column number in the generated code,\n\t// source: The path to the original source file that generated this\n\t// chunk of code,\n\t// originalLine: The line number in the original source that\n\t// corresponds to this chunk of generated code,\n\t// originalColumn: The column number in the original source that\n\t// corresponds to this chunk of generated code,\n\t// name: The name of the original symbol which generated this chunk of\n\t// code.\n\t// }\n\t//\n\t// All properties except for `generatedLine` and `generatedColumn` can be\n\t// `null`.\n\t//\n\t// `_generatedMappings` is ordered by the generated positions.\n\t//\n\t// `_originalMappings` is ordered by the original positions.\n\n\tSourceMapConsumer.prototype.__generatedMappings = null;\n\tObject.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {\n\t get: function () {\n\t if (!this.__generatedMappings) {\n\t this._parseMappings(this._mappings, this.sourceRoot);\n\t }\n\n\t return this.__generatedMappings;\n\t }\n\t});\n\n\tSourceMapConsumer.prototype.__originalMappings = null;\n\tObject.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {\n\t get: function () {\n\t if (!this.__originalMappings) {\n\t this._parseMappings(this._mappings, this.sourceRoot);\n\t }\n\n\t return this.__originalMappings;\n\t }\n\t});\n\n\tSourceMapConsumer.prototype._charIsMappingSeparator =\n\t function SourceMapConsumer_charIsMappingSeparator(aStr, index) {\n\t var c = aStr.charAt(index);\n\t return c === \";\" || c === \",\";\n\t };\n\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tSourceMapConsumer.prototype._parseMappings =\n\t function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t throw new Error(\"Subclasses must implement _parseMappings\");\n\t };\n\n\tSourceMapConsumer.GENERATED_ORDER = 1;\n\tSourceMapConsumer.ORIGINAL_ORDER = 2;\n\n\tSourceMapConsumer.GREATEST_LOWER_BOUND = 1;\n\tSourceMapConsumer.LEAST_UPPER_BOUND = 2;\n\n\t/**\n\t * Iterate over each mapping between an original source/line/column and a\n\t * generated line/column in this source map.\n\t *\n\t * @param Function aCallback\n\t * The function that is called with each mapping.\n\t * @param Object aContext\n\t * Optional. If specified, this object will be the value of `this` every\n\t * time that `aCallback` is called.\n\t * @param aOrder\n\t * Either `SourceMapConsumer.GENERATED_ORDER` or\n\t * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to\n\t * iterate over the mappings sorted by the generated file's line/column\n\t * order or the original's source/line/column order, respectively. Defaults to\n\t * `SourceMapConsumer.GENERATED_ORDER`.\n\t */\n\tSourceMapConsumer.prototype.eachMapping =\n\t function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {\n\t var context = aContext || null;\n\t var order = aOrder || SourceMapConsumer.GENERATED_ORDER;\n\n\t var mappings;\n\t switch (order) {\n\t case SourceMapConsumer.GENERATED_ORDER:\n\t mappings = this._generatedMappings;\n\t break;\n\t case SourceMapConsumer.ORIGINAL_ORDER:\n\t mappings = this._originalMappings;\n\t break;\n\t default:\n\t throw new Error(\"Unknown order of iteration.\");\n\t }\n\n\t var sourceRoot = this.sourceRoot;\n\t mappings.map(function (mapping) {\n\t var source = mapping.source === null ? null : this._sources.at(mapping.source);\n\t if (source != null && sourceRoot != null) {\n\t source = util.join(sourceRoot, source);\n\t }\n\t return {\n\t source: source,\n\t generatedLine: mapping.generatedLine,\n\t generatedColumn: mapping.generatedColumn,\n\t originalLine: mapping.originalLine,\n\t originalColumn: mapping.originalColumn,\n\t name: mapping.name === null ? null : this._names.at(mapping.name)\n\t };\n\t }, this).forEach(aCallback, context);\n\t };\n\n\t/**\n\t * Returns all generated line and column information for the original source,\n\t * line, and column provided. If no column is provided, returns all mappings\n\t * corresponding to a either the line we are searching for or the next\n\t * closest line that has any mappings. Otherwise, returns all mappings\n\t * corresponding to the given line and either the column we are searching for\n\t * or the next closest column that has any offsets.\n\t *\n\t * The only argument is an object with the following properties:\n\t *\n\t * - source: The filename of the original source.\n\t * - line: The line number in the original source.\n\t * - column: Optional. the column number in the original source.\n\t *\n\t * and an array of objects is returned, each with the following properties:\n\t *\n\t * - line: The line number in the generated source, or null.\n\t * - column: The column number in the generated source, or null.\n\t */\n\tSourceMapConsumer.prototype.allGeneratedPositionsFor =\n\t function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {\n\t var line = util.getArg(aArgs, 'line');\n\n\t // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping\n\t // returns the index of the closest mapping less than the needle. By\n\t // setting needle.originalColumn to 0, we thus find the last mapping for\n\t // the given line, provided such a mapping exists.\n\t var needle = {\n\t source: util.getArg(aArgs, 'source'),\n\t originalLine: line,\n\t originalColumn: util.getArg(aArgs, 'column', 0)\n\t };\n\n\t if (this.sourceRoot != null) {\n\t needle.source = util.relative(this.sourceRoot, needle.source);\n\t }\n\t if (!this._sources.has(needle.source)) {\n\t return [];\n\t }\n\t needle.source = this._sources.indexOf(needle.source);\n\n\t var mappings = [];\n\n\t var index = this._findMapping(needle,\n\t this._originalMappings,\n\t \"originalLine\",\n\t \"originalColumn\",\n\t util.compareByOriginalPositions,\n\t binarySearch.LEAST_UPPER_BOUND);\n\t if (index >= 0) {\n\t var mapping = this._originalMappings[index];\n\n\t if (aArgs.column === undefined) {\n\t var originalLine = mapping.originalLine;\n\n\t // Iterate until either we run out of mappings, or we run into\n\t // a mapping for a different line than the one we found. Since\n\t // mappings are sorted, this is guaranteed to find all mappings for\n\t // the line we found.\n\t while (mapping && mapping.originalLine === originalLine) {\n\t mappings.push({\n\t line: util.getArg(mapping, 'generatedLine', null),\n\t column: util.getArg(mapping, 'generatedColumn', null),\n\t lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t });\n\n\t mapping = this._originalMappings[++index];\n\t }\n\t } else {\n\t var originalColumn = mapping.originalColumn;\n\n\t // Iterate until either we run out of mappings, or we run into\n\t // a mapping for a different line than the one we were searching for.\n\t // Since mappings are sorted, this is guaranteed to find all mappings for\n\t // the line we are searching for.\n\t while (mapping &&\n\t mapping.originalLine === line &&\n\t mapping.originalColumn == originalColumn) {\n\t mappings.push({\n\t line: util.getArg(mapping, 'generatedLine', null),\n\t column: util.getArg(mapping, 'generatedColumn', null),\n\t lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t });\n\n\t mapping = this._originalMappings[++index];\n\t }\n\t }\n\t }\n\n\t return mappings;\n\t };\n\n\texports.SourceMapConsumer = SourceMapConsumer;\n\n\t/**\n\t * A BasicSourceMapConsumer instance represents a parsed source map which we can\n\t * query for information about the original file positions by giving it a file\n\t * position in the generated source.\n\t *\n\t * The only parameter is the raw source map (either as a JSON string, or\n\t * already parsed to an object). According to the spec, source maps have the\n\t * following attributes:\n\t *\n\t * - version: Which version of the source map spec this map is following.\n\t * - sources: An array of URLs to the original source files.\n\t * - names: An array of identifiers which can be referrenced by individual mappings.\n\t * - sourceRoot: Optional. The URL root from which all sources are relative.\n\t * - sourcesContent: Optional. An array of contents of the original source files.\n\t * - mappings: A string of base64 VLQs which contain the actual mappings.\n\t * - file: Optional. The generated file this source map is associated with.\n\t *\n\t * Here is an example source map, taken from the source map spec[0]:\n\t *\n\t * {\n\t * version : 3,\n\t * file: \"out.js\",\n\t * sourceRoot : \"\",\n\t * sources: [\"foo.js\", \"bar.js\"],\n\t * names: [\"src\", \"maps\", \"are\", \"fun\"],\n\t * mappings: \"AA,AB;;ABCDE;\"\n\t * }\n\t *\n\t * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\n\t */\n\tfunction BasicSourceMapConsumer(aSourceMap) {\n\t var sourceMap = aSourceMap;\n\t if (typeof aSourceMap === 'string') {\n\t sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n\t }\n\n\t var version = util.getArg(sourceMap, 'version');\n\t var sources = util.getArg(sourceMap, 'sources');\n\t // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which\n\t // requires the array) to play nice here.\n\t var names = util.getArg(sourceMap, 'names', []);\n\t var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);\n\t var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);\n\t var mappings = util.getArg(sourceMap, 'mappings');\n\t var file = util.getArg(sourceMap, 'file', null);\n\n\t // Once again, Sass deviates from the spec and supplies the version as a\n\t // string rather than a number, so we use loose equality checking here.\n\t if (version != this._version) {\n\t throw new Error('Unsupported version: ' + version);\n\t }\n\n\t sources = sources\n\t .map(String)\n\t // Some source maps produce relative source paths like \"./foo.js\" instead of\n\t // \"foo.js\". Normalize these first so that future comparisons will succeed.\n\t // See bugzil.la/1090768.\n\t .map(util.normalize)\n\t // Always ensure that absolute sources are internally stored relative to\n\t // the source root, if the source root is absolute. Not doing this would\n\t // be particularly problematic when the source root is a prefix of the\n\t // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\n\t .map(function (source) {\n\t return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\n\t ? util.relative(sourceRoot, source)\n\t : source;\n\t });\n\n\t // Pass `true` below to allow duplicate names and sources. While source maps\n\t // are intended to be compressed and deduplicated, the TypeScript compiler\n\t // sometimes generates source maps with duplicates in them. See Github issue\n\t // #72 and bugzil.la/889492.\n\t this._names = ArraySet.fromArray(names.map(String), true);\n\t this._sources = ArraySet.fromArray(sources, true);\n\n\t this.sourceRoot = sourceRoot;\n\t this.sourcesContent = sourcesContent;\n\t this._mappings = mappings;\n\t this.file = file;\n\t}\n\n\tBasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\n\tBasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\n\n\t/**\n\t * Create a BasicSourceMapConsumer from a SourceMapGenerator.\n\t *\n\t * @param SourceMapGenerator aSourceMap\n\t * The source map that will be consumed.\n\t * @returns BasicSourceMapConsumer\n\t */\n\tBasicSourceMapConsumer.fromSourceMap =\n\t function SourceMapConsumer_fromSourceMap(aSourceMap) {\n\t var smc = Object.create(BasicSourceMapConsumer.prototype);\n\n\t var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);\n\t var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);\n\t smc.sourceRoot = aSourceMap._sourceRoot;\n\t smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),\n\t smc.sourceRoot);\n\t smc.file = aSourceMap._file;\n\n\t // Because we are modifying the entries (by converting string sources and\n\t // names to indices into the sources and names ArraySets), we have to make\n\t // a copy of the entry or else bad things happen. Shared mutable state\n\t // strikes again! See github issue #191.\n\n\t var generatedMappings = aSourceMap._mappings.toArray().slice();\n\t var destGeneratedMappings = smc.__generatedMappings = [];\n\t var destOriginalMappings = smc.__originalMappings = [];\n\n\t for (var i = 0, length = generatedMappings.length; i < length; i++) {\n\t var srcMapping = generatedMappings[i];\n\t var destMapping = new Mapping;\n\t destMapping.generatedLine = srcMapping.generatedLine;\n\t destMapping.generatedColumn = srcMapping.generatedColumn;\n\n\t if (srcMapping.source) {\n\t destMapping.source = sources.indexOf(srcMapping.source);\n\t destMapping.originalLine = srcMapping.originalLine;\n\t destMapping.originalColumn = srcMapping.originalColumn;\n\n\t if (srcMapping.name) {\n\t destMapping.name = names.indexOf(srcMapping.name);\n\t }\n\n\t destOriginalMappings.push(destMapping);\n\t }\n\n\t destGeneratedMappings.push(destMapping);\n\t }\n\n\t quickSort(smc.__originalMappings, util.compareByOriginalPositions);\n\n\t return smc;\n\t };\n\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tBasicSourceMapConsumer.prototype._version = 3;\n\n\t/**\n\t * The list of original sources.\n\t */\n\tObject.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {\n\t get: function () {\n\t return this._sources.toArray().map(function (s) {\n\t return this.sourceRoot != null ? util.join(this.sourceRoot, s) : s;\n\t }, this);\n\t }\n\t});\n\n\t/**\n\t * Provide the JIT with a nice shape / hidden class.\n\t */\n\tfunction Mapping() {\n\t this.generatedLine = 0;\n\t this.generatedColumn = 0;\n\t this.source = null;\n\t this.originalLine = null;\n\t this.originalColumn = null;\n\t this.name = null;\n\t}\n\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tBasicSourceMapConsumer.prototype._parseMappings =\n\t function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t var generatedLine = 1;\n\t var previousGeneratedColumn = 0;\n\t var previousOriginalLine = 0;\n\t var previousOriginalColumn = 0;\n\t var previousSource = 0;\n\t var previousName = 0;\n\t var length = aStr.length;\n\t var index = 0;\n\t var cachedSegments = {};\n\t var temp = {};\n\t var originalMappings = [];\n\t var generatedMappings = [];\n\t var mapping, str, segment, end, value;\n\n\t while (index < length) {\n\t if (aStr.charAt(index) === ';') {\n\t generatedLine++;\n\t index++;\n\t previousGeneratedColumn = 0;\n\t }\n\t else if (aStr.charAt(index) === ',') {\n\t index++;\n\t }\n\t else {\n\t mapping = new Mapping();\n\t mapping.generatedLine = generatedLine;\n\n\t // Because each offset is encoded relative to the previous one,\n\t // many segments often have the same encoding. We can exploit this\n\t // fact by caching the parsed variable length fields of each segment,\n\t // allowing us to avoid a second parse if we encounter the same\n\t // segment again.\n\t for (end = index; end < length; end++) {\n\t if (this._charIsMappingSeparator(aStr, end)) {\n\t break;\n\t }\n\t }\n\t str = aStr.slice(index, end);\n\n\t segment = cachedSegments[str];\n\t if (segment) {\n\t index += str.length;\n\t } else {\n\t segment = [];\n\t while (index < end) {\n\t base64VLQ.decode(aStr, index, temp);\n\t value = temp.value;\n\t index = temp.rest;\n\t segment.push(value);\n\t }\n\n\t if (segment.length === 2) {\n\t throw new Error('Found a source, but no line and column');\n\t }\n\n\t if (segment.length === 3) {\n\t throw new Error('Found a source and line, but no column');\n\t }\n\n\t cachedSegments[str] = segment;\n\t }\n\n\t // Generated column.\n\t mapping.generatedColumn = previousGeneratedColumn + segment[0];\n\t previousGeneratedColumn = mapping.generatedColumn;\n\n\t if (segment.length > 1) {\n\t // Original source.\n\t mapping.source = previousSource + segment[1];\n\t previousSource += segment[1];\n\n\t // Original line.\n\t mapping.originalLine = previousOriginalLine + segment[2];\n\t previousOriginalLine = mapping.originalLine;\n\t // Lines are stored 0-based\n\t mapping.originalLine += 1;\n\n\t // Original column.\n\t mapping.originalColumn = previousOriginalColumn + segment[3];\n\t previousOriginalColumn = mapping.originalColumn;\n\n\t if (segment.length > 4) {\n\t // Original name.\n\t mapping.name = previousName + segment[4];\n\t previousName += segment[4];\n\t }\n\t }\n\n\t generatedMappings.push(mapping);\n\t if (typeof mapping.originalLine === 'number') {\n\t originalMappings.push(mapping);\n\t }\n\t }\n\t }\n\n\t quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);\n\t this.__generatedMappings = generatedMappings;\n\n\t quickSort(originalMappings, util.compareByOriginalPositions);\n\t this.__originalMappings = originalMappings;\n\t };\n\n\t/**\n\t * Find the mapping that best matches the hypothetical \"needle\" mapping that\n\t * we are searching for in the given \"haystack\" of mappings.\n\t */\n\tBasicSourceMapConsumer.prototype._findMapping =\n\t function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,\n\t aColumnName, aComparator, aBias) {\n\t // To return the position we are searching for, we must first find the\n\t // mapping for the given position and then return the opposite position it\n\t // points to. Because the mappings are sorted, we can use binary search to\n\t // find the best mapping.\n\n\t if (aNeedle[aLineName] <= 0) {\n\t throw new TypeError('Line must be greater than or equal to 1, got '\n\t + aNeedle[aLineName]);\n\t }\n\t if (aNeedle[aColumnName] < 0) {\n\t throw new TypeError('Column must be greater than or equal to 0, got '\n\t + aNeedle[aColumnName]);\n\t }\n\n\t return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\n\t };\n\n\t/**\n\t * Compute the last column for each generated mapping. The last column is\n\t * inclusive.\n\t */\n\tBasicSourceMapConsumer.prototype.computeColumnSpans =\n\t function SourceMapConsumer_computeColumnSpans() {\n\t for (var index = 0; index < this._generatedMappings.length; ++index) {\n\t var mapping = this._generatedMappings[index];\n\n\t // Mappings do not contain a field for the last generated columnt. We\n\t // can come up with an optimistic estimate, however, by assuming that\n\t // mappings are contiguous (i.e. given two consecutive mappings, the\n\t // first mapping ends where the second one starts).\n\t if (index + 1 < this._generatedMappings.length) {\n\t var nextMapping = this._generatedMappings[index + 1];\n\n\t if (mapping.generatedLine === nextMapping.generatedLine) {\n\t mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;\n\t continue;\n\t }\n\t }\n\n\t // The last mapping for each line spans the entire line.\n\t mapping.lastGeneratedColumn = Infinity;\n\t }\n\t };\n\n\t/**\n\t * Returns the original source, line, and column information for the generated\n\t * source's line and column positions provided. The only argument is an object\n\t * with the following properties:\n\t *\n\t * - line: The line number in the generated source.\n\t * - column: The column number in the generated source.\n\t * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n\t * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t * closest element that is smaller than or greater than the one we are\n\t * searching for, respectively, if the exact element cannot be found.\n\t * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t * - source: The original source file, or null.\n\t * - line: The line number in the original source, or null.\n\t * - column: The column number in the original source, or null.\n\t * - name: The original identifier, or null.\n\t */\n\tBasicSourceMapConsumer.prototype.originalPositionFor =\n\t function SourceMapConsumer_originalPositionFor(aArgs) {\n\t var needle = {\n\t generatedLine: util.getArg(aArgs, 'line'),\n\t generatedColumn: util.getArg(aArgs, 'column')\n\t };\n\n\t var index = this._findMapping(\n\t needle,\n\t this._generatedMappings,\n\t \"generatedLine\",\n\t \"generatedColumn\",\n\t util.compareByGeneratedPositionsDeflated,\n\t util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n\t );\n\n\t if (index >= 0) {\n\t var mapping = this._generatedMappings[index];\n\n\t if (mapping.generatedLine === needle.generatedLine) {\n\t var source = util.getArg(mapping, 'source', null);\n\t if (source !== null) {\n\t source = this._sources.at(source);\n\t if (this.sourceRoot != null) {\n\t source = util.join(this.sourceRoot, source);\n\t }\n\t }\n\t var name = util.getArg(mapping, 'name', null);\n\t if (name !== null) {\n\t name = this._names.at(name);\n\t }\n\t return {\n\t source: source,\n\t line: util.getArg(mapping, 'originalLine', null),\n\t column: util.getArg(mapping, 'originalColumn', null),\n\t name: name\n\t };\n\t }\n\t }\n\n\t return {\n\t source: null,\n\t line: null,\n\t column: null,\n\t name: null\n\t };\n\t };\n\n\t/**\n\t * Return true if we have the source content for every source in the source\n\t * map, false otherwise.\n\t */\n\tBasicSourceMapConsumer.prototype.hasContentsOfAllSources =\n\t function BasicSourceMapConsumer_hasContentsOfAllSources() {\n\t if (!this.sourcesContent) {\n\t return false;\n\t }\n\t return this.sourcesContent.length >= this._sources.size() &&\n\t !this.sourcesContent.some(function (sc) { return sc == null; });\n\t };\n\n\t/**\n\t * Returns the original source content. The only argument is the url of the\n\t * original source file. Returns null if no original source content is\n\t * available.\n\t */\n\tBasicSourceMapConsumer.prototype.sourceContentFor =\n\t function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n\t if (!this.sourcesContent) {\n\t return null;\n\t }\n\n\t if (this.sourceRoot != null) {\n\t aSource = util.relative(this.sourceRoot, aSource);\n\t }\n\n\t if (this._sources.has(aSource)) {\n\t return this.sourcesContent[this._sources.indexOf(aSource)];\n\t }\n\n\t var url;\n\t if (this.sourceRoot != null\n\t && (url = util.urlParse(this.sourceRoot))) {\n\t // XXX: file:// URIs and absolute paths lead to unexpected behavior for\n\t // many users. We can help them out when they expect file:// URIs to\n\t // behave like it would if they were running a local HTTP server. See\n\t // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\n\t var fileUriAbsPath = aSource.replace(/^file:\\/\\//, \"\");\n\t if (url.scheme == \"file\"\n\t && this._sources.has(fileUriAbsPath)) {\n\t return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]\n\t }\n\n\t if ((!url.path || url.path == \"/\")\n\t && this._sources.has(\"/\" + aSource)) {\n\t return this.sourcesContent[this._sources.indexOf(\"/\" + aSource)];\n\t }\n\t }\n\n\t // This function is used recursively from\n\t // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\n\t // don't want to throw if we can't find the source - we just want to\n\t // return null, so we provide a flag to exit gracefully.\n\t if (nullOnMissing) {\n\t return null;\n\t }\n\t else {\n\t throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n\t }\n\t };\n\n\t/**\n\t * Returns the generated line and column information for the original source,\n\t * line, and column positions provided. The only argument is an object with\n\t * the following properties:\n\t *\n\t * - source: The filename of the original source.\n\t * - line: The line number in the original source.\n\t * - column: The column number in the original source.\n\t * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n\t * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t * closest element that is smaller than or greater than the one we are\n\t * searching for, respectively, if the exact element cannot be found.\n\t * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t * - line: The line number in the generated source, or null.\n\t * - column: The column number in the generated source, or null.\n\t */\n\tBasicSourceMapConsumer.prototype.generatedPositionFor =\n\t function SourceMapConsumer_generatedPositionFor(aArgs) {\n\t var source = util.getArg(aArgs, 'source');\n\t if (this.sourceRoot != null) {\n\t source = util.relative(this.sourceRoot, source);\n\t }\n\t if (!this._sources.has(source)) {\n\t return {\n\t line: null,\n\t column: null,\n\t lastColumn: null\n\t };\n\t }\n\t source = this._sources.indexOf(source);\n\n\t var needle = {\n\t source: source,\n\t originalLine: util.getArg(aArgs, 'line'),\n\t originalColumn: util.getArg(aArgs, 'column')\n\t };\n\n\t var index = this._findMapping(\n\t needle,\n\t this._originalMappings,\n\t \"originalLine\",\n\t \"originalColumn\",\n\t util.compareByOriginalPositions,\n\t util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n\t );\n\n\t if (index >= 0) {\n\t var mapping = this._originalMappings[index];\n\n\t if (mapping.source === needle.source) {\n\t return {\n\t line: util.getArg(mapping, 'generatedLine', null),\n\t column: util.getArg(mapping, 'generatedColumn', null),\n\t lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t };\n\t }\n\t }\n\n\t return {\n\t line: null,\n\t column: null,\n\t lastColumn: null\n\t };\n\t };\n\n\texports.BasicSourceMapConsumer = BasicSourceMapConsumer;\n\n\t/**\n\t * An IndexedSourceMapConsumer instance represents a parsed source map which\n\t * we can query for information. It differs from BasicSourceMapConsumer in\n\t * that it takes \"indexed\" source maps (i.e. ones with a \"sections\" field) as\n\t * input.\n\t *\n\t * The only parameter is a raw source map (either as a JSON string, or already\n\t * parsed to an object). According to the spec for indexed source maps, they\n\t * have the following attributes:\n\t *\n\t * - version: Which version of the source map spec this map is following.\n\t * - file: Optional. The generated file this source map is associated with.\n\t * - sections: A list of section definitions.\n\t *\n\t * Each value under the \"sections\" field has two fields:\n\t * - offset: The offset into the original specified at which this section\n\t * begins to apply, defined as an object with a \"line\" and \"column\"\n\t * field.\n\t * - map: A source map definition. This source map could also be indexed,\n\t * but doesn't have to be.\n\t *\n\t * Instead of the \"map\" field, it's also possible to have a \"url\" field\n\t * specifying a URL to retrieve a source map from, but that's currently\n\t * unsupported.\n\t *\n\t * Here's an example source map, taken from the source map spec[0], but\n\t * modified to omit a section which uses the \"url\" field.\n\t *\n\t * {\n\t * version : 3,\n\t * file: \"app.js\",\n\t * sections: [{\n\t * offset: {line:100, column:10},\n\t * map: {\n\t * version : 3,\n\t * file: \"section.js\",\n\t * sources: [\"foo.js\", \"bar.js\"],\n\t * names: [\"src\", \"maps\", \"are\", \"fun\"],\n\t * mappings: \"AAAA,E;;ABCDE;\"\n\t * }\n\t * }],\n\t * }\n\t *\n\t * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\n\t */\n\tfunction IndexedSourceMapConsumer(aSourceMap) {\n\t var sourceMap = aSourceMap;\n\t if (typeof aSourceMap === 'string') {\n\t sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n\t }\n\n\t var version = util.getArg(sourceMap, 'version');\n\t var sections = util.getArg(sourceMap, 'sections');\n\n\t if (version != this._version) {\n\t throw new Error('Unsupported version: ' + version);\n\t }\n\n\t this._sources = new ArraySet();\n\t this._names = new ArraySet();\n\n\t var lastOffset = {\n\t line: -1,\n\t column: 0\n\t };\n\t this._sections = sections.map(function (s) {\n\t if (s.url) {\n\t // The url field will require support for asynchronicity.\n\t // See https://github.com/mozilla/source-map/issues/16\n\t throw new Error('Support for url field in sections not implemented.');\n\t }\n\t var offset = util.getArg(s, 'offset');\n\t var offsetLine = util.getArg(offset, 'line');\n\t var offsetColumn = util.getArg(offset, 'column');\n\n\t if (offsetLine < lastOffset.line ||\n\t (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\n\t throw new Error('Section offsets must be ordered and non-overlapping.');\n\t }\n\t lastOffset = offset;\n\n\t return {\n\t generatedOffset: {\n\t // The offset fields are 0-based, but we use 1-based indices when\n\t // encoding/decoding from VLQ.\n\t generatedLine: offsetLine + 1,\n\t generatedColumn: offsetColumn + 1\n\t },\n\t consumer: new SourceMapConsumer(util.getArg(s, 'map'))\n\t }\n\t });\n\t}\n\n\tIndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\n\tIndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;\n\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tIndexedSourceMapConsumer.prototype._version = 3;\n\n\t/**\n\t * The list of original sources.\n\t */\n\tObject.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {\n\t get: function () {\n\t var sources = [];\n\t for (var i = 0; i < this._sections.length; i++) {\n\t for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {\n\t sources.push(this._sections[i].consumer.sources[j]);\n\t }\n\t }\n\t return sources;\n\t }\n\t});\n\n\t/**\n\t * Returns the original source, line, and column information for the generated\n\t * source's line and column positions provided. The only argument is an object\n\t * with the following properties:\n\t *\n\t * - line: The line number in the generated source.\n\t * - column: The column number in the generated source.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t * - source: The original source file, or null.\n\t * - line: The line number in the original source, or null.\n\t * - column: The column number in the original source, or null.\n\t * - name: The original identifier, or null.\n\t */\n\tIndexedSourceMapConsumer.prototype.originalPositionFor =\n\t function IndexedSourceMapConsumer_originalPositionFor(aArgs) {\n\t var needle = {\n\t generatedLine: util.getArg(aArgs, 'line'),\n\t generatedColumn: util.getArg(aArgs, 'column')\n\t };\n\n\t // Find the section containing the generated position we're trying to map\n\t // to an original position.\n\t var sectionIndex = binarySearch.search(needle, this._sections,\n\t function(needle, section) {\n\t var cmp = needle.generatedLine - section.generatedOffset.generatedLine;\n\t if (cmp) {\n\t return cmp;\n\t }\n\n\t return (needle.generatedColumn -\n\t section.generatedOffset.generatedColumn);\n\t });\n\t var section = this._sections[sectionIndex];\n\n\t if (!section) {\n\t return {\n\t source: null,\n\t line: null,\n\t column: null,\n\t name: null\n\t };\n\t }\n\n\t return section.consumer.originalPositionFor({\n\t line: needle.generatedLine -\n\t (section.generatedOffset.generatedLine - 1),\n\t column: needle.generatedColumn -\n\t (section.generatedOffset.generatedLine === needle.generatedLine\n\t ? section.generatedOffset.generatedColumn - 1\n\t : 0),\n\t bias: aArgs.bias\n\t });\n\t };\n\n\t/**\n\t * Return true if we have the source content for every source in the source\n\t * map, false otherwise.\n\t */\n\tIndexedSourceMapConsumer.prototype.hasContentsOfAllSources =\n\t function IndexedSourceMapConsumer_hasContentsOfAllSources() {\n\t return this._sections.every(function (s) {\n\t return s.consumer.hasContentsOfAllSources();\n\t });\n\t };\n\n\t/**\n\t * Returns the original source content. The only argument is the url of the\n\t * original source file. Returns null if no original source content is\n\t * available.\n\t */\n\tIndexedSourceMapConsumer.prototype.sourceContentFor =\n\t function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n\t for (var i = 0; i < this._sections.length; i++) {\n\t var section = this._sections[i];\n\n\t var content = section.consumer.sourceContentFor(aSource, true);\n\t if (content) {\n\t return content;\n\t }\n\t }\n\t if (nullOnMissing) {\n\t return null;\n\t }\n\t else {\n\t throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n\t }\n\t };\n\n\t/**\n\t * Returns the generated line and column information for the original source,\n\t * line, and column positions provided. The only argument is an object with\n\t * the following properties:\n\t *\n\t * - source: The filename of the original source.\n\t * - line: The line number in the original source.\n\t * - column: The column number in the original source.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t * - line: The line number in the generated source, or null.\n\t * - column: The column number in the generated source, or null.\n\t */\n\tIndexedSourceMapConsumer.prototype.generatedPositionFor =\n\t function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {\n\t for (var i = 0; i < this._sections.length; i++) {\n\t var section = this._sections[i];\n\n\t // Only consider this section if the requested source is in the list of\n\t // sources of the consumer.\n\t if (section.consumer.sources.indexOf(util.getArg(aArgs, 'source')) === -1) {\n\t continue;\n\t }\n\t var generatedPosition = section.consumer.generatedPositionFor(aArgs);\n\t if (generatedPosition) {\n\t var ret = {\n\t line: generatedPosition.line +\n\t (section.generatedOffset.generatedLine - 1),\n\t column: generatedPosition.column +\n\t (section.generatedOffset.generatedLine === generatedPosition.line\n\t ? section.generatedOffset.generatedColumn - 1\n\t : 0)\n\t };\n\t return ret;\n\t }\n\t }\n\n\t return {\n\t line: null,\n\t column: null\n\t };\n\t };\n\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tIndexedSourceMapConsumer.prototype._parseMappings =\n\t function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t this.__generatedMappings = [];\n\t this.__originalMappings = [];\n\t for (var i = 0; i < this._sections.length; i++) {\n\t var section = this._sections[i];\n\t var sectionMappings = section.consumer._generatedMappings;\n\t for (var j = 0; j < sectionMappings.length; j++) {\n\t var mapping = sectionMappings[j];\n\n\t var source = section.consumer._sources.at(mapping.source);\n\t if (section.consumer.sourceRoot !== null) {\n\t source = util.join(section.consumer.sourceRoot, source);\n\t }\n\t this._sources.add(source);\n\t source = this._sources.indexOf(source);\n\n\t var name = section.consumer._names.at(mapping.name);\n\t this._names.add(name);\n\t name = this._names.indexOf(name);\n\n\t // The mappings coming from the consumer for the section have\n\t // generated positions relative to the start of the section, so we\n\t // need to offset them to be relative to the start of the concatenated\n\t // generated file.\n\t var adjustedMapping = {\n\t source: source,\n\t generatedLine: mapping.generatedLine +\n\t (section.generatedOffset.generatedLine - 1),\n\t generatedColumn: mapping.generatedColumn +\n\t (section.generatedOffset.generatedLine === mapping.generatedLine\n\t ? section.generatedOffset.generatedColumn - 1\n\t : 0),\n\t originalLine: mapping.originalLine,\n\t originalColumn: mapping.originalColumn,\n\t name: name\n\t };\n\n\t this.__generatedMappings.push(adjustedMapping);\n\t if (typeof adjustedMapping.originalLine === 'number') {\n\t this.__originalMappings.push(adjustedMapping);\n\t }\n\t }\n\t }\n\n\t quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);\n\t quickSort(this.__originalMappings, util.compareByOriginalPositions);\n\t };\n\n\texports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\t/**\n\t * This is a helper function for getting values from parameter/options\n\t * objects.\n\t *\n\t * @param args The object we are extracting values from\n\t * @param name The name of the property we are getting.\n\t * @param defaultValue An optional value to return if the property is missing\n\t * from the object. If this is not specified and the property is missing, an\n\t * error will be thrown.\n\t */\n\tfunction getArg(aArgs, aName, aDefaultValue) {\n\t if (aName in aArgs) {\n\t return aArgs[aName];\n\t } else if (arguments.length === 3) {\n\t return aDefaultValue;\n\t } else {\n\t throw new Error('\"' + aName + '\" is a required argument.');\n\t }\n\t}\n\texports.getArg = getArg;\n\n\tvar urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.]*)(?::(\\d+))?(\\S*)$/;\n\tvar dataUrlRegexp = /^data:.+\\,.+$/;\n\n\tfunction urlParse(aUrl) {\n\t var match = aUrl.match(urlRegexp);\n\t if (!match) {\n\t return null;\n\t }\n\t return {\n\t scheme: match[1],\n\t auth: match[2],\n\t host: match[3],\n\t port: match[4],\n\t path: match[5]\n\t };\n\t}\n\texports.urlParse = urlParse;\n\n\tfunction urlGenerate(aParsedUrl) {\n\t var url = '';\n\t if (aParsedUrl.scheme) {\n\t url += aParsedUrl.scheme + ':';\n\t }\n\t url += '//';\n\t if (aParsedUrl.auth) {\n\t url += aParsedUrl.auth + '@';\n\t }\n\t if (aParsedUrl.host) {\n\t url += aParsedUrl.host;\n\t }\n\t if (aParsedUrl.port) {\n\t url += \":\" + aParsedUrl.port\n\t }\n\t if (aParsedUrl.path) {\n\t url += aParsedUrl.path;\n\t }\n\t return url;\n\t}\n\texports.urlGenerate = urlGenerate;\n\n\t/**\n\t * Normalizes a path, or the path portion of a URL:\n\t *\n\t * - Replaces consecutive slashes with one slash.\n\t * - Removes unnecessary '.' parts.\n\t * - Removes unnecessary '<dir>/..' parts.\n\t *\n\t * Based on code in the Node.js 'path' core module.\n\t *\n\t * @param aPath The path or url to normalize.\n\t */\n\tfunction normalize(aPath) {\n\t var path = aPath;\n\t var url = urlParse(aPath);\n\t if (url) {\n\t if (!url.path) {\n\t return aPath;\n\t }\n\t path = url.path;\n\t }\n\t var isAbsolute = exports.isAbsolute(path);\n\n\t var parts = path.split(/\\/+/);\n\t for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\n\t part = parts[i];\n\t if (part === '.') {\n\t parts.splice(i, 1);\n\t } else if (part === '..') {\n\t up++;\n\t } else if (up > 0) {\n\t if (part === '') {\n\t // The first part is blank if the path is absolute. Trying to go\n\t // above the root is a no-op. Therefore we can remove all '..' parts\n\t // directly after the root.\n\t parts.splice(i + 1, up);\n\t up = 0;\n\t } else {\n\t parts.splice(i, 2);\n\t up--;\n\t }\n\t }\n\t }\n\t path = parts.join('/');\n\n\t if (path === '') {\n\t path = isAbsolute ? '/' : '.';\n\t }\n\n\t if (url) {\n\t url.path = path;\n\t return urlGenerate(url);\n\t }\n\t return path;\n\t}\n\texports.normalize = normalize;\n\n\t/**\n\t * Joins two paths/URLs.\n\t *\n\t * @param aRoot The root path or URL.\n\t * @param aPath The path or URL to be joined with the root.\n\t *\n\t * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n\t * scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n\t * first.\n\t * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n\t * is updated with the result and aRoot is returned. Otherwise the result\n\t * is returned.\n\t * - If aPath is absolute, the result is aPath.\n\t * - Otherwise the two paths are joined with a slash.\n\t * - Joining for example 'http://' and 'www.example.com' is also supported.\n\t */\n\tfunction join(aRoot, aPath) {\n\t if (aRoot === \"\") {\n\t aRoot = \".\";\n\t }\n\t if (aPath === \"\") {\n\t aPath = \".\";\n\t }\n\t var aPathUrl = urlParse(aPath);\n\t var aRootUrl = urlParse(aRoot);\n\t if (aRootUrl) {\n\t aRoot = aRootUrl.path || '/';\n\t }\n\n\t // `join(foo, '//www.example.org')`\n\t if (aPathUrl && !aPathUrl.scheme) {\n\t if (aRootUrl) {\n\t aPathUrl.scheme = aRootUrl.scheme;\n\t }\n\t return urlGenerate(aPathUrl);\n\t }\n\n\t if (aPathUrl || aPath.match(dataUrlRegexp)) {\n\t return aPath;\n\t }\n\n\t // `join('http://', 'www.example.com')`\n\t if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n\t aRootUrl.host = aPath;\n\t return urlGenerate(aRootUrl);\n\t }\n\n\t var joined = aPath.charAt(0) === '/'\n\t ? aPath\n\t : normalize(aRoot.replace(/\\/+$/, '') + '/' + aPath);\n\n\t if (aRootUrl) {\n\t aRootUrl.path = joined;\n\t return urlGenerate(aRootUrl);\n\t }\n\t return joined;\n\t}\n\texports.join = join;\n\n\texports.isAbsolute = function (aPath) {\n\t return aPath.charAt(0) === '/' || !!aPath.match(urlRegexp);\n\t};\n\n\t/**\n\t * Make a path relative to a URL or another path.\n\t *\n\t * @param aRoot The root path or URL.\n\t * @param aPath The path or URL to be made relative to aRoot.\n\t */\n\tfunction relative(aRoot, aPath) {\n\t if (aRoot === \"\") {\n\t aRoot = \".\";\n\t }\n\n\t aRoot = aRoot.replace(/\\/$/, '');\n\n\t // It is possible for the path to be above the root. In this case, simply\n\t // checking whether the root is a prefix of the path won't work. Instead, we\n\t // need to remove components from the root one by one, until either we find\n\t // a prefix that fits, or we run out of components to remove.\n\t var level = 0;\n\t while (aPath.indexOf(aRoot + '/') !== 0) {\n\t var index = aRoot.lastIndexOf(\"/\");\n\t if (index < 0) {\n\t return aPath;\n\t }\n\n\t // If the only part of the root that is left is the scheme (i.e. http://,\n\t // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n\t // have exhausted all components, so the path is not relative to the root.\n\t aRoot = aRoot.slice(0, index);\n\t if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n\t return aPath;\n\t }\n\n\t ++level;\n\t }\n\n\t // Make sure we add a \"../\" for each component we removed from the root.\n\t return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n\t}\n\texports.relative = relative;\n\n\tvar supportsNullProto = (function () {\n\t var obj = Object.create(null);\n\t return !('__proto__' in obj);\n\t}());\n\n\tfunction identity (s) {\n\t return s;\n\t}\n\n\t/**\n\t * Because behavior goes wacky when you set `__proto__` on objects, we\n\t * have to prefix all the strings in our set with an arbitrary character.\n\t *\n\t * See https://github.com/mozilla/source-map/pull/31 and\n\t * https://github.com/mozilla/source-map/issues/30\n\t *\n\t * @param String aStr\n\t */\n\tfunction toSetString(aStr) {\n\t if (isProtoString(aStr)) {\n\t return '$' + aStr;\n\t }\n\n\t return aStr;\n\t}\n\texports.toSetString = supportsNullProto ? identity : toSetString;\n\n\tfunction fromSetString(aStr) {\n\t if (isProtoString(aStr)) {\n\t return aStr.slice(1);\n\t }\n\n\t return aStr;\n\t}\n\texports.fromSetString = supportsNullProto ? identity : fromSetString;\n\n\tfunction isProtoString(s) {\n\t if (!s) {\n\t return false;\n\t }\n\n\t var length = s.length;\n\n\t if (length < 9 /* \"__proto__\".length */) {\n\t return false;\n\t }\n\n\t if (s.charCodeAt(length - 1) !== 95 /* '_' */ ||\n\t s.charCodeAt(length - 2) !== 95 /* '_' */ ||\n\t s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n\t s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n\t s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n\t s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n\t s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n\t s.charCodeAt(length - 8) !== 95 /* '_' */ ||\n\t s.charCodeAt(length - 9) !== 95 /* '_' */) {\n\t return false;\n\t }\n\n\t for (var i = length - 10; i >= 0; i--) {\n\t if (s.charCodeAt(i) !== 36 /* '$' */) {\n\t return false;\n\t }\n\t }\n\n\t return true;\n\t}\n\n\t/**\n\t * Comparator between two mappings where the original positions are compared.\n\t *\n\t * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n\t * mappings with the same original source/line/column, but different generated\n\t * line and column the same. Useful when searching for a mapping with a\n\t * stubbed out mapping.\n\t */\n\tfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n\t var cmp = mappingA.source - mappingB.source;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalLine - mappingB.originalLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t if (cmp !== 0 || onlyCompareOriginal) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t return mappingA.name - mappingB.name;\n\t}\n\texports.compareByOriginalPositions = compareByOriginalPositions;\n\n\t/**\n\t * Comparator between two mappings with deflated source and name indices where\n\t * the generated positions are compared.\n\t *\n\t * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n\t * mappings with the same generated line and column, but different\n\t * source/name/original line and column the same. Useful when searching for a\n\t * mapping with a stubbed out mapping.\n\t */\n\tfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n\t var cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t if (cmp !== 0 || onlyCompareGenerated) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.source - mappingB.source;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalLine - mappingB.originalLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t return mappingA.name - mappingB.name;\n\t}\n\texports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\n\tfunction strcmp(aStr1, aStr2) {\n\t if (aStr1 === aStr2) {\n\t return 0;\n\t }\n\n\t if (aStr1 > aStr2) {\n\t return 1;\n\t }\n\n\t return -1;\n\t}\n\n\t/**\n\t * Comparator between two mappings with inflated source and name strings where\n\t * the generated positions are compared.\n\t */\n\tfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n\t var cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = strcmp(mappingA.source, mappingB.source);\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalLine - mappingB.originalLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t return strcmp(mappingA.name, mappingB.name);\n\t}\n\texports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\texports.GREATEST_LOWER_BOUND = 1;\n\texports.LEAST_UPPER_BOUND = 2;\n\n\t/**\n\t * Recursive implementation of binary search.\n\t *\n\t * @param aLow Indices here and lower do not contain the needle.\n\t * @param aHigh Indices here and higher do not contain the needle.\n\t * @param aNeedle The element being searched for.\n\t * @param aHaystack The non-empty array being searched.\n\t * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n\t * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n\t * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t * closest element that is smaller than or greater than the one we are\n\t * searching for, respectively, if the exact element cannot be found.\n\t */\n\tfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n\t // This function terminates when one of the following is true:\n\t //\n\t // 1. We find the exact element we are looking for.\n\t //\n\t // 2. We did not find the exact element, but we can return the index of\n\t // the next-closest element.\n\t //\n\t // 3. We did not find the exact element, and there is no next-closest\n\t // element than the one we are searching for, so we return -1.\n\t var mid = Math.floor((aHigh - aLow) / 2) + aLow;\n\t var cmp = aCompare(aNeedle, aHaystack[mid], true);\n\t if (cmp === 0) {\n\t // Found the element we are looking for.\n\t return mid;\n\t }\n\t else if (cmp > 0) {\n\t // Our needle is greater than aHaystack[mid].\n\t if (aHigh - mid > 1) {\n\t // The element is in the upper half.\n\t return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n\t }\n\n\t // The exact needle element was not found in this haystack. Determine if\n\t // we are in termination case (3) or (2) and return the appropriate thing.\n\t if (aBias == exports.LEAST_UPPER_BOUND) {\n\t return aHigh < aHaystack.length ? aHigh : -1;\n\t } else {\n\t return mid;\n\t }\n\t }\n\t else {\n\t // Our needle is less than aHaystack[mid].\n\t if (mid - aLow > 1) {\n\t // The element is in the lower half.\n\t return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n\t }\n\n\t // we are in termination case (3) or (2) and return the appropriate thing.\n\t if (aBias == exports.LEAST_UPPER_BOUND) {\n\t return mid;\n\t } else {\n\t return aLow < 0 ? -1 : aLow;\n\t }\n\t }\n\t}\n\n\t/**\n\t * This is an implementation of binary search which will always try and return\n\t * the index of the closest element if there is no exact hit. This is because\n\t * mappings between original and generated line/col pairs are single points,\n\t * and there is an implicit region between each of them, so a miss just means\n\t * that you aren't on the very start of a region.\n\t *\n\t * @param aNeedle The element you are looking for.\n\t * @param aHaystack The array that is being searched.\n\t * @param aCompare A function which takes the needle and an element in the\n\t * array and returns -1, 0, or 1 depending on whether the needle is less\n\t * than, equal to, or greater than the element, respectively.\n\t * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n\t * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t * closest element that is smaller than or greater than the one we are\n\t * searching for, respectively, if the exact element cannot be found.\n\t * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.\n\t */\n\texports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n\t if (aHaystack.length === 0) {\n\t return -1;\n\t }\n\n\t var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n\t aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n\t if (index < 0) {\n\t return -1;\n\t }\n\n\t // We have found either the exact element, or the next-closest element than\n\t // the one we are searching for. However, there may be more than one such\n\t // element. Make sure we always return the smallest of these.\n\t while (index - 1 >= 0) {\n\t if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n\t break;\n\t }\n\t --index;\n\t }\n\n\t return index;\n\t};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\tvar util = __webpack_require__(2);\n\tvar has = Object.prototype.hasOwnProperty;\n\n\t/**\n\t * A data structure which is a combination of an array and a set. Adding a new\n\t * member is O(1), testing for membership is O(1), and finding the index of an\n\t * element is O(1). Removing elements from the set is not supported. Only\n\t * strings are supported for membership.\n\t */\n\tfunction ArraySet() {\n\t this._array = [];\n\t this._set = Object.create(null);\n\t}\n\n\t/**\n\t * Static method for creating ArraySet instances from an existing array.\n\t */\n\tArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {\n\t var set = new ArraySet();\n\t for (var i = 0, len = aArray.length; i < len; i++) {\n\t set.add(aArray[i], aAllowDuplicates);\n\t }\n\t return set;\n\t};\n\n\t/**\n\t * Return how many unique items are in this ArraySet. If duplicates have been\n\t * added, than those do not count towards the size.\n\t *\n\t * @returns Number\n\t */\n\tArraySet.prototype.size = function ArraySet_size() {\n\t return Object.getOwnPropertyNames(this._set).length;\n\t};\n\n\t/**\n\t * Add the given string to this set.\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {\n\t var sStr = util.toSetString(aStr);\n\t var isDuplicate = has.call(this._set, sStr);\n\t var idx = this._array.length;\n\t if (!isDuplicate || aAllowDuplicates) {\n\t this._array.push(aStr);\n\t }\n\t if (!isDuplicate) {\n\t this._set[sStr] = idx;\n\t }\n\t};\n\n\t/**\n\t * Is the given string a member of this set?\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.has = function ArraySet_has(aStr) {\n\t var sStr = util.toSetString(aStr);\n\t return has.call(this._set, sStr);\n\t};\n\n\t/**\n\t * What is the index of the given string in the array?\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {\n\t var sStr = util.toSetString(aStr);\n\t if (has.call(this._set, sStr)) {\n\t return this._set[sStr];\n\t }\n\t throw new Error('\"' + aStr + '\" is not in the set.');\n\t};\n\n\t/**\n\t * What is the element at the given index?\n\t *\n\t * @param Number aIdx\n\t */\n\tArraySet.prototype.at = function ArraySet_at(aIdx) {\n\t if (aIdx >= 0 && aIdx < this._array.length) {\n\t return this._array[aIdx];\n\t }\n\t throw new Error('No element indexed by ' + aIdx);\n\t};\n\n\t/**\n\t * Returns the array representation of this set (which has the proper indices\n\t * indicated by indexOf). Note that this is a copy of the internal array used\n\t * for storing the members so that no one can mess with internal state.\n\t */\n\tArraySet.prototype.toArray = function ArraySet_toArray() {\n\t return this._array.slice();\n\t};\n\n\texports.ArraySet = ArraySet;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t *\n\t * Based on the Base 64 VLQ implementation in Closure Compiler:\n\t * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java\n\t *\n\t * Copyright 2011 The Closure Compiler Authors. All rights reserved.\n\t * Redistribution and use in source and binary forms, with or without\n\t * modification, are permitted provided that the following conditions are\n\t * met:\n\t *\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\n\t * copyright notice, this list of conditions and the following\n\t * disclaimer in the documentation and/or other materials provided\n\t * with the distribution.\n\t * * Neither the name of Google Inc. nor the names of its\n\t * contributors may be used to endorse or promote products derived\n\t * from this software without specific prior written permission.\n\t *\n\t * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\t * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n\t * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n\t * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n\t * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n\t * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n\t * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n\t * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n\t * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n\t * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n\t * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t */\n\n\tvar base64 = __webpack_require__(6);\n\n\t// A single base 64 digit can contain 6 bits of data. For the base 64 variable\n\t// length quantities we use in the source map spec, the first bit is the sign,\n\t// the next four bits are the actual value, and the 6th bit is the\n\t// continuation bit. The continuation bit tells us whether there are more\n\t// digits in this value following this digit.\n\t//\n\t// Continuation\n\t// | Sign\n\t// | |\n\t// V V\n\t// 101011\n\n\tvar VLQ_BASE_SHIFT = 5;\n\n\t// binary: 100000\n\tvar VLQ_BASE = 1 << VLQ_BASE_SHIFT;\n\n\t// binary: 011111\n\tvar VLQ_BASE_MASK = VLQ_BASE - 1;\n\n\t// binary: 100000\n\tvar VLQ_CONTINUATION_BIT = VLQ_BASE;\n\n\t/**\n\t * Converts from a two-complement value to a value where the sign bit is\n\t * placed in the least significant bit. For example, as decimals:\n\t * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary)\n\t * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary)\n\t */\n\tfunction toVLQSigned(aValue) {\n\t return aValue < 0\n\t ? ((-aValue) << 1) + 1\n\t : (aValue << 1) + 0;\n\t}\n\n\t/**\n\t * Converts to a two-complement value from a value where the sign bit is\n\t * placed in the least significant bit. For example, as decimals:\n\t * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1\n\t * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2\n\t */\n\tfunction fromVLQSigned(aValue) {\n\t var isNegative = (aValue & 1) === 1;\n\t var shifted = aValue >> 1;\n\t return isNegative\n\t ? -shifted\n\t : shifted;\n\t}\n\n\t/**\n\t * Returns the base 64 VLQ encoded value.\n\t */\n\texports.encode = function base64VLQ_encode(aValue) {\n\t var encoded = \"\";\n\t var digit;\n\n\t var vlq = toVLQSigned(aValue);\n\n\t do {\n\t digit = vlq & VLQ_BASE_MASK;\n\t vlq >>>= VLQ_BASE_SHIFT;\n\t if (vlq > 0) {\n\t // There are still more digits in this value, so we must make sure the\n\t // continuation bit is marked.\n\t digit |= VLQ_CONTINUATION_BIT;\n\t }\n\t encoded += base64.encode(digit);\n\t } while (vlq > 0);\n\n\t return encoded;\n\t};\n\n\t/**\n\t * Decodes the next base 64 VLQ value from the given string and returns the\n\t * value and the rest of the string via the out parameter.\n\t */\n\texports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\n\t var strLen = aStr.length;\n\t var result = 0;\n\t var shift = 0;\n\t var continuation, digit;\n\n\t do {\n\t if (aIndex >= strLen) {\n\t throw new Error(\"Expected more digits in base 64 VLQ value.\");\n\t }\n\n\t digit = base64.decode(aStr.charCodeAt(aIndex++));\n\t if (digit === -1) {\n\t throw new Error(\"Invalid base64 digit: \" + aStr.charAt(aIndex - 1));\n\t }\n\n\t continuation = !!(digit & VLQ_CONTINUATION_BIT);\n\t digit &= VLQ_BASE_MASK;\n\t result = result + (digit << shift);\n\t shift += VLQ_BASE_SHIFT;\n\t } while (continuation);\n\n\t aOutParam.value = fromVLQSigned(result);\n\t aOutParam.rest = aIndex;\n\t};\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\tvar intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n\n\t/**\n\t * Encode an integer in the range of 0 to 63 to a single base 64 digit.\n\t */\n\texports.encode = function (number) {\n\t if (0 <= number && number < intToCharMap.length) {\n\t return intToCharMap[number];\n\t }\n\t throw new TypeError(\"Must be between 0 and 63: \" + number);\n\t};\n\n\t/**\n\t * Decode a single base 64 character code digit to an integer. Returns -1 on\n\t * failure.\n\t */\n\texports.decode = function (charCode) {\n\t var bigA = 65; // 'A'\n\t var bigZ = 90; // 'Z'\n\n\t var littleA = 97; // 'a'\n\t var littleZ = 122; // 'z'\n\n\t var zero = 48; // '0'\n\t var nine = 57; // '9'\n\n\t var plus = 43; // '+'\n\t var slash = 47; // '/'\n\n\t var littleOffset = 26;\n\t var numberOffset = 52;\n\n\t // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ\n\t if (bigA <= charCode && charCode <= bigZ) {\n\t return (charCode - bigA);\n\t }\n\n\t // 26 - 51: abcdefghijklmnopqrstuvwxyz\n\t if (littleA <= charCode && charCode <= littleZ) {\n\t return (charCode - littleA + littleOffset);\n\t }\n\n\t // 52 - 61: 0123456789\n\t if (zero <= charCode && charCode <= nine) {\n\t return (charCode - zero + numberOffset);\n\t }\n\n\t // 62: +\n\t if (charCode == plus) {\n\t return 62;\n\t }\n\n\t // 63: /\n\t if (charCode == slash) {\n\t return 63;\n\t }\n\n\t // Invalid base64 digit.\n\t return -1;\n\t};\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\t// It turns out that some (most?) JavaScript engines don't self-host\n\t// `Array.prototype.sort`. This makes sense because C++ will likely remain\n\t// faster than JS when doing raw CPU-intensive sorting. However, when using a\n\t// custom comparator function, calling back and forth between the VM's C++ and\n\t// JIT'd JS is rather slow *and* loses JIT type information, resulting in\n\t// worse generated code for the comparator function than would be optimal. In\n\t// fact, when sorting with a comparator, these costs outweigh the benefits of\n\t// sorting in C++. By using our own JS-implemented Quick Sort (below), we get\n\t// a ~3500ms mean speed-up in `bench/bench.html`.\n\n\t/**\n\t * Swap the elements indexed by `x` and `y` in the array `ary`.\n\t *\n\t * @param {Array} ary\n\t * The array.\n\t * @param {Number} x\n\t * The index of the first item.\n\t * @param {Number} y\n\t * The index of the second item.\n\t */\n\tfunction swap(ary, x, y) {\n\t var temp = ary[x];\n\t ary[x] = ary[y];\n\t ary[y] = temp;\n\t}\n\n\t/**\n\t * Returns a random integer within the range `low .. high` inclusive.\n\t *\n\t * @param {Number} low\n\t * The lower bound on the range.\n\t * @param {Number} high\n\t * The upper bound on the range.\n\t */\n\tfunction randomIntInRange(low, high) {\n\t return Math.round(low + (Math.random() * (high - low)));\n\t}\n\n\t/**\n\t * The Quick Sort algorithm.\n\t *\n\t * @param {Array} ary\n\t * An array to sort.\n\t * @param {function} comparator\n\t * Function to use to compare two items.\n\t * @param {Number} p\n\t * Start index of the array\n\t * @param {Number} r\n\t * End index of the array\n\t */\n\tfunction doQuickSort(ary, comparator, p, r) {\n\t // If our lower bound is less than our upper bound, we (1) partition the\n\t // array into two pieces and (2) recurse on each half. If it is not, this is\n\t // the empty array and our base case.\n\n\t if (p < r) {\n\t // (1) Partitioning.\n\t //\n\t // The partitioning chooses a pivot between `p` and `r` and moves all\n\t // elements that are less than or equal to the pivot to the before it, and\n\t // all the elements that are greater than it after it. The effect is that\n\t // once partition is done, the pivot is in the exact place it will be when\n\t // the array is put in sorted order, and it will not need to be moved\n\t // again. This runs in O(n) time.\n\n\t // Always choose a random pivot so that an input array which is reverse\n\t // sorted does not cause O(n^2) running time.\n\t var pivotIndex = randomIntInRange(p, r);\n\t var i = p - 1;\n\n\t swap(ary, pivotIndex, r);\n\t var pivot = ary[r];\n\n\t // Immediately after `j` is incremented in this loop, the following hold\n\t // true:\n\t //\n\t // * Every element in `ary[p .. i]` is less than or equal to the pivot.\n\t //\n\t // * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\n\t for (var j = p; j < r; j++) {\n\t if (comparator(ary[j], pivot) <= 0) {\n\t i += 1;\n\t swap(ary, i, j);\n\t }\n\t }\n\n\t swap(ary, i + 1, j);\n\t var q = i + 1;\n\n\t // (2) Recurse on each half.\n\n\t doQuickSort(ary, comparator, p, q - 1);\n\t doQuickSort(ary, comparator, q + 1, r);\n\t }\n\t}\n\n\t/**\n\t * Sort the given array in-place with the given comparator function.\n\t *\n\t * @param {Array} ary\n\t * An array to sort.\n\t * @param {function} comparator\n\t * Function to use to compare two items.\n\t */\n\texports.quickSort = function (ary, comparator) {\n\t doQuickSort(ary, comparator, 0, ary.length - 1);\n\t};\n\n\n/***/ })\n/******/ ])\n});\n;"],"names":["this"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"sourcemapped-stacktrace.d972a070.js","sources":["../../node_modules/sourcemapped-stacktrace/dist/sourcemapped-stacktrace.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\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\telse if(typeof exports === 'object')\n\t\texports[\"sourceMappedStackTrace\"] = factory();\n\telse\n\t\troot[\"sourceMappedStackTrace\"] = 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/******/ \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\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*\n\t * sourcemapped-stacktrace.js\n\t * created by James Salter <iteration@gmail.com> (2014)\n\t *\n\t * https://github.com/novocaine/sourcemapped-stacktrace\n\t *\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\t/*global define */\n\n\t// note we only include source-map-consumer, not the whole source-map library,\n\t// which includes gear for generating source maps that we don't need\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(1)], __WEBPACK_AMD_DEFINE_RESULT__ = function(source_map_consumer) {\n\n\t var global_mapForUri = {};\n\n\t /**\n\t * Re-map entries in a stacktrace using sourcemaps if available.\n\t *\n\t * @param {str} stack - The stacktrace from the browser.\n\t * @param {function} done - Callback invoked with the transformed stacktrace\n\t * (an Array of Strings) passed as the first\n\t * argument\n\t * @param {Object} [opts] - Optional options object.\n\t * @param {Function} [opts.filter] - Filter function applied to each stackTrace line.\n\t * Lines which do not pass the filter won't be processesd.\n\t * @param {boolean} [opts.cacheGlobally] - Whether to cache sourcemaps globally across multiple calls.\n\t * @param {boolean} [opts.sync] - Whether to use synchronous ajax to load the sourcemaps.\n\t * @param {string} [opts.traceFormat] - If `error.stack` is formatted according to chrome or\n\t * Firefox's style. Can be either `\"chrome\"`, `\"firefox\"`\n\t * or `undefined` (default). If `undefined`, this library\n\t * will guess based on `navigator.userAgent`.\n\t */\n\t var mapStackTrace = function(stack, done, opts) {\n\t var lines;\n\t var line;\n\t var mapForUri = {};\n\t var rows = {};\n\t var fields;\n\t var uri;\n\t var expected_fields;\n\t var regex;\n\t var skip_lines;\n\n\t var fetcher = new Fetcher(opts);\n\n\t var traceFormat = opts && opts.traceFormat;\n\t if (traceFormat !== \"chrome\" && traceFormat !== \"firefox\") {\n\t if (traceFormat) {\n\t throw new Error(\"unknown traceFormat \\\"\" + traceFormat + \"\\\" :(\");\n\t } else if (isChromeOrEdge() || isIE11Plus()) {\n\t traceFormat = \"chrome\";\n\t } else if (isFirefox() || isSafari()) {\n\t traceFormat = \"firefox\";\n\t } else {\n\t throw new Error(\"unknown browser :(\");\n\t }\n\t }\n\n\t if (traceFormat === \"chrome\") {\n\t regex = /^ +at.+\\((.*):([0-9]+):([0-9]+)/;\n\t expected_fields = 4;\n\t // (skip first line containing exception message)\n\t skip_lines = 1;\n\t } else {\n\t regex = /@(.*):([0-9]+):([0-9]+)/;\n\t expected_fields = 4;\n\t skip_lines = 0;\n\t }\n\n\t lines = stack.split(\"\\n\").slice(skip_lines);\n\n\t for (var i=0; i < lines.length; i++) {\n\t line = lines[i];\n\t if ( opts && opts.filter && !opts.filter(line) ) continue;\n\t \n\t fields = line.match(regex);\n\t if (fields && fields.length === expected_fields) {\n\t rows[i] = fields;\n\t uri = fields[1];\n\t if (!uri.match(/<anonymous>/)) {\n\t fetcher.fetchScript(uri);\n\t }\n\t }\n\t }\n\n\t fetcher.sem.whenReady(function() {\n\t var result = processSourceMaps(lines, rows, fetcher.mapForUri, traceFormat);\n\t done(result);\n\t });\n\t };\n\n\t var isChromeOrEdge = function() {\n\t return navigator.userAgent.toLowerCase().indexOf('chrome') > -1;\n\t };\n\n\t var isFirefox = function() {\n\t return navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\n\t }; \n\n\t var isSafari = function() {\n\t return navigator.userAgent.toLowerCase().indexOf('safari') > -1;\n\t };\n\t\t\t\n\t var isIE11Plus = function() {\n\t \treturn document.documentMode && document.documentMode >= 11;\n\t };\n\n\n\t var Semaphore = function() {\n\t this.count = 0;\n\t this.pending = [];\n\t };\n\n\t Semaphore.prototype.incr = function() {\n\t this.count++;\n\t };\n\n\t Semaphore.prototype.decr = function() {\n\t this.count--;\n\t this.flush();\n\t };\n\n\t Semaphore.prototype.whenReady = function(fn) {\n\t this.pending.push(fn);\n\t this.flush();\n\t };\n\n\t Semaphore.prototype.flush = function() {\n\t if (this.count === 0) {\n\t this.pending.forEach(function(fn) { fn(); });\n\t this.pending = [];\n\t }\n\t };\n\n\n\t var Fetcher = function(opts) {\n\t this.sem = new Semaphore();\n\t this.sync = opts && opts.sync;\n\t this.mapForUri = opts && opts.cacheGlobally ? global_mapForUri : {};\n\t };\n\n\t Fetcher.prototype.ajax = function(uri, callback) {\n\t var xhr = createXMLHTTPObject();\n\t var that = this;\n\t xhr.onreadystatechange = function() {\n\t if (xhr.readyState == 4) {\n\t callback.call(that, xhr, uri);\n\t }\n\t };\n\t xhr.open(\"GET\", uri, !this.sync);\n\t xhr.send();\n\t }\n\n\t Fetcher.prototype.fetchScript = function(uri) {\n\t if (!(uri in this.mapForUri)) {\n\t this.sem.incr();\n\t this.mapForUri[uri] = null;\n\t } else {\n\t return;\n\t }\n\n\t this.ajax(uri, this.onScriptLoad);\n\t };\n\n\t var absUrlRegex = new RegExp('^(?:[a-z]+:)?//', 'i');\n\n\t Fetcher.prototype.onScriptLoad = function(xhr, uri) {\n\t if (xhr.status === 200 || (uri.slice(0, 7) === \"file://\" && xhr.status === 0)) {\n\t // find .map in file.\n\t //\n\t // attempt to find it at the very end of the file, but tolerate trailing\n\t // whitespace inserted by some packers.\n\t var match = xhr.responseText.match(\"//# [s]ourceMappingURL=(.*)[\\\\s]*$\", \"m\");\n\t if (match && match.length === 2) {\n\t // get the map\n\t var mapUri = match[1];\n\n\t var embeddedSourceMap = mapUri.match(\"data:application/json;(charset=[^;]+;)?base64,(.*)\");\n\n\t if (embeddedSourceMap && embeddedSourceMap[2]) {\n\t this.mapForUri[uri] = new source_map_consumer.SourceMapConsumer(atob(embeddedSourceMap[2]));\n\t this.sem.decr();\n\t } else {\n\t if (!absUrlRegex.test(mapUri)) {\n\t // relative url; according to sourcemaps spec is 'source origin'\n\t var origin;\n\t var lastSlash = uri.lastIndexOf('/');\n\t if (lastSlash !== -1) {\n\t origin = uri.slice(0, lastSlash + 1);\n\t mapUri = origin + mapUri;\n\t // note if lastSlash === -1, actual script uri has no slash\n\t // somehow, so no way to use it as a prefix... we give up and try\n\t // as absolute\n\t }\n\t }\n\n\t this.ajax(mapUri, function(xhr) {\n\t if (xhr.status === 200 || (mapUri.slice(0, 7) === \"file://\" && xhr.status === 0)) {\n\t this.mapForUri[uri] = new source_map_consumer.SourceMapConsumer(xhr.responseText);\n\t }\n\t this.sem.decr();\n\t });\n\t }\n\t } else {\n\t // no map\n\t this.sem.decr();\n\t }\n\t } else {\n\t // HTTP error fetching uri of the script\n\t this.sem.decr();\n\t }\n\t };\n\n\t var processSourceMaps = function(lines, rows, mapForUri, traceFormat) {\n\t var result = [];\n\t var map;\n\t var origName = traceFormat === \"chrome\" ? origNameChrome : origNameFirefox;\n\t for (var i=0; i < lines.length; i++) {\n\t var row = rows[i];\n\t if (row) {\n\t var uri = row[1];\n\t var line = parseInt(row[2], 10);\n\t var column = parseInt(row[3], 10);\n\t map = mapForUri[uri];\n\n\t if (map) {\n\t // we think we have a map for that uri. call source-map library\n\t var origPos = map.originalPositionFor(\n\t { line: line, column: column });\n\t result.push(formatOriginalPosition(origPos.source,\n\t origPos.line, origPos.column, origPos.name || origName(lines[i])));\n\t } else {\n\t // we can't find a map for that url, but we parsed the row.\n\t // reformat unchanged line for consistency with the sourcemapped\n\t // lines.\n\t result.push(formatOriginalPosition(uri, line, column, origName(lines[i])));\n\t }\n\t } else {\n\t // we weren't able to parse the row, push back what we were given\n\t result.push(lines[i]);\n\t }\n\t }\n\n\t return result;\n\t };\n\n\t function origNameChrome(origLine) {\n\t var match = / +at +([^ ]*).*/.exec(origLine);\n\t return match && match[1];\n\t }\n\n\t function origNameFirefox(origLine) {\n\t var match = /([^@]*)@.*/.exec(origLine);\n\t return match && match[1];\n\t }\n\n\t var formatOriginalPosition = function(source, line, column, name) {\n\t // mimic chrome's format\n\t return \" at \" + (name ? name : \"(unknown)\") +\n\t \" (\" + source + \":\" + line + \":\" + column + \")\";\n\t };\n\n\t // xmlhttprequest boilerplate\n\t var XMLHttpFactories = [\n\t\tfunction () {return new XMLHttpRequest();},\n\t\tfunction () {return new ActiveXObject(\"Msxml2.XMLHTTP\");},\n\t\tfunction () {return new ActiveXObject(\"Msxml3.XMLHTTP\");},\n\t\tfunction () {return new ActiveXObject(\"Microsoft.XMLHTTP\");}\n\t ];\n\n\t function createXMLHTTPObject() {\n\t var xmlhttp = false;\n\t for (var i=0;i<XMLHttpFactories.length;i++) {\n\t try {\n\t xmlhttp = XMLHttpFactories[i]();\n\t }\n\t catch (e) {\n\t continue;\n\t }\n\t break;\n\t }\n\t return xmlhttp;\n\t }\n\n\t return {\n\t mapStackTrace: mapStackTrace\n\t }\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\tvar util = __webpack_require__(2);\n\tvar binarySearch = __webpack_require__(3);\n\tvar ArraySet = __webpack_require__(4).ArraySet;\n\tvar base64VLQ = __webpack_require__(5);\n\tvar quickSort = __webpack_require__(7).quickSort;\n\n\tfunction SourceMapConsumer(aSourceMap) {\n\t var sourceMap = aSourceMap;\n\t if (typeof aSourceMap === 'string') {\n\t sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n\t }\n\n\t return sourceMap.sections != null\n\t ? new IndexedSourceMapConsumer(sourceMap)\n\t : new BasicSourceMapConsumer(sourceMap);\n\t}\n\n\tSourceMapConsumer.fromSourceMap = function(aSourceMap) {\n\t return BasicSourceMapConsumer.fromSourceMap(aSourceMap);\n\t}\n\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tSourceMapConsumer.prototype._version = 3;\n\n\t// `__generatedMappings` and `__originalMappings` are arrays that hold the\n\t// parsed mapping coordinates from the source map's \"mappings\" attribute. They\n\t// are lazily instantiated, accessed via the `_generatedMappings` and\n\t// `_originalMappings` getters respectively, and we only parse the mappings\n\t// and create these arrays once queried for a source location. We jump through\n\t// these hoops because there can be many thousands of mappings, and parsing\n\t// them is expensive, so we only want to do it if we must.\n\t//\n\t// Each object in the arrays is of the form:\n\t//\n\t// {\n\t// generatedLine: The line number in the generated code,\n\t// generatedColumn: The column number in the generated code,\n\t// source: The path to the original source file that generated this\n\t// chunk of code,\n\t// originalLine: The line number in the original source that\n\t// corresponds to this chunk of generated code,\n\t// originalColumn: The column number in the original source that\n\t// corresponds to this chunk of generated code,\n\t// name: The name of the original symbol which generated this chunk of\n\t// code.\n\t// }\n\t//\n\t// All properties except for `generatedLine` and `generatedColumn` can be\n\t// `null`.\n\t//\n\t// `_generatedMappings` is ordered by the generated positions.\n\t//\n\t// `_originalMappings` is ordered by the original positions.\n\n\tSourceMapConsumer.prototype.__generatedMappings = null;\n\tObject.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {\n\t get: function () {\n\t if (!this.__generatedMappings) {\n\t this._parseMappings(this._mappings, this.sourceRoot);\n\t }\n\n\t return this.__generatedMappings;\n\t }\n\t});\n\n\tSourceMapConsumer.prototype.__originalMappings = null;\n\tObject.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {\n\t get: function () {\n\t if (!this.__originalMappings) {\n\t this._parseMappings(this._mappings, this.sourceRoot);\n\t }\n\n\t return this.__originalMappings;\n\t }\n\t});\n\n\tSourceMapConsumer.prototype._charIsMappingSeparator =\n\t function SourceMapConsumer_charIsMappingSeparator(aStr, index) {\n\t var c = aStr.charAt(index);\n\t return c === \";\" || c === \",\";\n\t };\n\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tSourceMapConsumer.prototype._parseMappings =\n\t function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t throw new Error(\"Subclasses must implement _parseMappings\");\n\t };\n\n\tSourceMapConsumer.GENERATED_ORDER = 1;\n\tSourceMapConsumer.ORIGINAL_ORDER = 2;\n\n\tSourceMapConsumer.GREATEST_LOWER_BOUND = 1;\n\tSourceMapConsumer.LEAST_UPPER_BOUND = 2;\n\n\t/**\n\t * Iterate over each mapping between an original source/line/column and a\n\t * generated line/column in this source map.\n\t *\n\t * @param Function aCallback\n\t * The function that is called with each mapping.\n\t * @param Object aContext\n\t * Optional. If specified, this object will be the value of `this` every\n\t * time that `aCallback` is called.\n\t * @param aOrder\n\t * Either `SourceMapConsumer.GENERATED_ORDER` or\n\t * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to\n\t * iterate over the mappings sorted by the generated file's line/column\n\t * order or the original's source/line/column order, respectively. Defaults to\n\t * `SourceMapConsumer.GENERATED_ORDER`.\n\t */\n\tSourceMapConsumer.prototype.eachMapping =\n\t function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {\n\t var context = aContext || null;\n\t var order = aOrder || SourceMapConsumer.GENERATED_ORDER;\n\n\t var mappings;\n\t switch (order) {\n\t case SourceMapConsumer.GENERATED_ORDER:\n\t mappings = this._generatedMappings;\n\t break;\n\t case SourceMapConsumer.ORIGINAL_ORDER:\n\t mappings = this._originalMappings;\n\t break;\n\t default:\n\t throw new Error(\"Unknown order of iteration.\");\n\t }\n\n\t var sourceRoot = this.sourceRoot;\n\t mappings.map(function (mapping) {\n\t var source = mapping.source === null ? null : this._sources.at(mapping.source);\n\t if (source != null && sourceRoot != null) {\n\t source = util.join(sourceRoot, source);\n\t }\n\t return {\n\t source: source,\n\t generatedLine: mapping.generatedLine,\n\t generatedColumn: mapping.generatedColumn,\n\t originalLine: mapping.originalLine,\n\t originalColumn: mapping.originalColumn,\n\t name: mapping.name === null ? null : this._names.at(mapping.name)\n\t };\n\t }, this).forEach(aCallback, context);\n\t };\n\n\t/**\n\t * Returns all generated line and column information for the original source,\n\t * line, and column provided. If no column is provided, returns all mappings\n\t * corresponding to a either the line we are searching for or the next\n\t * closest line that has any mappings. Otherwise, returns all mappings\n\t * corresponding to the given line and either the column we are searching for\n\t * or the next closest column that has any offsets.\n\t *\n\t * The only argument is an object with the following properties:\n\t *\n\t * - source: The filename of the original source.\n\t * - line: The line number in the original source.\n\t * - column: Optional. the column number in the original source.\n\t *\n\t * and an array of objects is returned, each with the following properties:\n\t *\n\t * - line: The line number in the generated source, or null.\n\t * - column: The column number in the generated source, or null.\n\t */\n\tSourceMapConsumer.prototype.allGeneratedPositionsFor =\n\t function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {\n\t var line = util.getArg(aArgs, 'line');\n\n\t // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping\n\t // returns the index of the closest mapping less than the needle. By\n\t // setting needle.originalColumn to 0, we thus find the last mapping for\n\t // the given line, provided such a mapping exists.\n\t var needle = {\n\t source: util.getArg(aArgs, 'source'),\n\t originalLine: line,\n\t originalColumn: util.getArg(aArgs, 'column', 0)\n\t };\n\n\t if (this.sourceRoot != null) {\n\t needle.source = util.relative(this.sourceRoot, needle.source);\n\t }\n\t if (!this._sources.has(needle.source)) {\n\t return [];\n\t }\n\t needle.source = this._sources.indexOf(needle.source);\n\n\t var mappings = [];\n\n\t var index = this._findMapping(needle,\n\t this._originalMappings,\n\t \"originalLine\",\n\t \"originalColumn\",\n\t util.compareByOriginalPositions,\n\t binarySearch.LEAST_UPPER_BOUND);\n\t if (index >= 0) {\n\t var mapping = this._originalMappings[index];\n\n\t if (aArgs.column === undefined) {\n\t var originalLine = mapping.originalLine;\n\n\t // Iterate until either we run out of mappings, or we run into\n\t // a mapping for a different line than the one we found. Since\n\t // mappings are sorted, this is guaranteed to find all mappings for\n\t // the line we found.\n\t while (mapping && mapping.originalLine === originalLine) {\n\t mappings.push({\n\t line: util.getArg(mapping, 'generatedLine', null),\n\t column: util.getArg(mapping, 'generatedColumn', null),\n\t lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t });\n\n\t mapping = this._originalMappings[++index];\n\t }\n\t } else {\n\t var originalColumn = mapping.originalColumn;\n\n\t // Iterate until either we run out of mappings, or we run into\n\t // a mapping for a different line than the one we were searching for.\n\t // Since mappings are sorted, this is guaranteed to find all mappings for\n\t // the line we are searching for.\n\t while (mapping &&\n\t mapping.originalLine === line &&\n\t mapping.originalColumn == originalColumn) {\n\t mappings.push({\n\t line: util.getArg(mapping, 'generatedLine', null),\n\t column: util.getArg(mapping, 'generatedColumn', null),\n\t lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t });\n\n\t mapping = this._originalMappings[++index];\n\t }\n\t }\n\t }\n\n\t return mappings;\n\t };\n\n\texports.SourceMapConsumer = SourceMapConsumer;\n\n\t/**\n\t * A BasicSourceMapConsumer instance represents a parsed source map which we can\n\t * query for information about the original file positions by giving it a file\n\t * position in the generated source.\n\t *\n\t * The only parameter is the raw source map (either as a JSON string, or\n\t * already parsed to an object). According to the spec, source maps have the\n\t * following attributes:\n\t *\n\t * - version: Which version of the source map spec this map is following.\n\t * - sources: An array of URLs to the original source files.\n\t * - names: An array of identifiers which can be referrenced by individual mappings.\n\t * - sourceRoot: Optional. The URL root from which all sources are relative.\n\t * - sourcesContent: Optional. An array of contents of the original source files.\n\t * - mappings: A string of base64 VLQs which contain the actual mappings.\n\t * - file: Optional. The generated file this source map is associated with.\n\t *\n\t * Here is an example source map, taken from the source map spec[0]:\n\t *\n\t * {\n\t * version : 3,\n\t * file: \"out.js\",\n\t * sourceRoot : \"\",\n\t * sources: [\"foo.js\", \"bar.js\"],\n\t * names: [\"src\", \"maps\", \"are\", \"fun\"],\n\t * mappings: \"AA,AB;;ABCDE;\"\n\t * }\n\t *\n\t * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\n\t */\n\tfunction BasicSourceMapConsumer(aSourceMap) {\n\t var sourceMap = aSourceMap;\n\t if (typeof aSourceMap === 'string') {\n\t sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n\t }\n\n\t var version = util.getArg(sourceMap, 'version');\n\t var sources = util.getArg(sourceMap, 'sources');\n\t // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which\n\t // requires the array) to play nice here.\n\t var names = util.getArg(sourceMap, 'names', []);\n\t var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);\n\t var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);\n\t var mappings = util.getArg(sourceMap, 'mappings');\n\t var file = util.getArg(sourceMap, 'file', null);\n\n\t // Once again, Sass deviates from the spec and supplies the version as a\n\t // string rather than a number, so we use loose equality checking here.\n\t if (version != this._version) {\n\t throw new Error('Unsupported version: ' + version);\n\t }\n\n\t sources = sources\n\t .map(String)\n\t // Some source maps produce relative source paths like \"./foo.js\" instead of\n\t // \"foo.js\". Normalize these first so that future comparisons will succeed.\n\t // See bugzil.la/1090768.\n\t .map(util.normalize)\n\t // Always ensure that absolute sources are internally stored relative to\n\t // the source root, if the source root is absolute. Not doing this would\n\t // be particularly problematic when the source root is a prefix of the\n\t // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\n\t .map(function (source) {\n\t return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\n\t ? util.relative(sourceRoot, source)\n\t : source;\n\t });\n\n\t // Pass `true` below to allow duplicate names and sources. While source maps\n\t // are intended to be compressed and deduplicated, the TypeScript compiler\n\t // sometimes generates source maps with duplicates in them. See Github issue\n\t // #72 and bugzil.la/889492.\n\t this._names = ArraySet.fromArray(names.map(String), true);\n\t this._sources = ArraySet.fromArray(sources, true);\n\n\t this.sourceRoot = sourceRoot;\n\t this.sourcesContent = sourcesContent;\n\t this._mappings = mappings;\n\t this.file = file;\n\t}\n\n\tBasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\n\tBasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\n\n\t/**\n\t * Create a BasicSourceMapConsumer from a SourceMapGenerator.\n\t *\n\t * @param SourceMapGenerator aSourceMap\n\t * The source map that will be consumed.\n\t * @returns BasicSourceMapConsumer\n\t */\n\tBasicSourceMapConsumer.fromSourceMap =\n\t function SourceMapConsumer_fromSourceMap(aSourceMap) {\n\t var smc = Object.create(BasicSourceMapConsumer.prototype);\n\n\t var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);\n\t var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);\n\t smc.sourceRoot = aSourceMap._sourceRoot;\n\t smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),\n\t smc.sourceRoot);\n\t smc.file = aSourceMap._file;\n\n\t // Because we are modifying the entries (by converting string sources and\n\t // names to indices into the sources and names ArraySets), we have to make\n\t // a copy of the entry or else bad things happen. Shared mutable state\n\t // strikes again! See github issue #191.\n\n\t var generatedMappings = aSourceMap._mappings.toArray().slice();\n\t var destGeneratedMappings = smc.__generatedMappings = [];\n\t var destOriginalMappings = smc.__originalMappings = [];\n\n\t for (var i = 0, length = generatedMappings.length; i < length; i++) {\n\t var srcMapping = generatedMappings[i];\n\t var destMapping = new Mapping;\n\t destMapping.generatedLine = srcMapping.generatedLine;\n\t destMapping.generatedColumn = srcMapping.generatedColumn;\n\n\t if (srcMapping.source) {\n\t destMapping.source = sources.indexOf(srcMapping.source);\n\t destMapping.originalLine = srcMapping.originalLine;\n\t destMapping.originalColumn = srcMapping.originalColumn;\n\n\t if (srcMapping.name) {\n\t destMapping.name = names.indexOf(srcMapping.name);\n\t }\n\n\t destOriginalMappings.push(destMapping);\n\t }\n\n\t destGeneratedMappings.push(destMapping);\n\t }\n\n\t quickSort(smc.__originalMappings, util.compareByOriginalPositions);\n\n\t return smc;\n\t };\n\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tBasicSourceMapConsumer.prototype._version = 3;\n\n\t/**\n\t * The list of original sources.\n\t */\n\tObject.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {\n\t get: function () {\n\t return this._sources.toArray().map(function (s) {\n\t return this.sourceRoot != null ? util.join(this.sourceRoot, s) : s;\n\t }, this);\n\t }\n\t});\n\n\t/**\n\t * Provide the JIT with a nice shape / hidden class.\n\t */\n\tfunction Mapping() {\n\t this.generatedLine = 0;\n\t this.generatedColumn = 0;\n\t this.source = null;\n\t this.originalLine = null;\n\t this.originalColumn = null;\n\t this.name = null;\n\t}\n\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tBasicSourceMapConsumer.prototype._parseMappings =\n\t function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t var generatedLine = 1;\n\t var previousGeneratedColumn = 0;\n\t var previousOriginalLine = 0;\n\t var previousOriginalColumn = 0;\n\t var previousSource = 0;\n\t var previousName = 0;\n\t var length = aStr.length;\n\t var index = 0;\n\t var cachedSegments = {};\n\t var temp = {};\n\t var originalMappings = [];\n\t var generatedMappings = [];\n\t var mapping, str, segment, end, value;\n\n\t while (index < length) {\n\t if (aStr.charAt(index) === ';') {\n\t generatedLine++;\n\t index++;\n\t previousGeneratedColumn = 0;\n\t }\n\t else if (aStr.charAt(index) === ',') {\n\t index++;\n\t }\n\t else {\n\t mapping = new Mapping();\n\t mapping.generatedLine = generatedLine;\n\n\t // Because each offset is encoded relative to the previous one,\n\t // many segments often have the same encoding. We can exploit this\n\t // fact by caching the parsed variable length fields of each segment,\n\t // allowing us to avoid a second parse if we encounter the same\n\t // segment again.\n\t for (end = index; end < length; end++) {\n\t if (this._charIsMappingSeparator(aStr, end)) {\n\t break;\n\t }\n\t }\n\t str = aStr.slice(index, end);\n\n\t segment = cachedSegments[str];\n\t if (segment) {\n\t index += str.length;\n\t } else {\n\t segment = [];\n\t while (index < end) {\n\t base64VLQ.decode(aStr, index, temp);\n\t value = temp.value;\n\t index = temp.rest;\n\t segment.push(value);\n\t }\n\n\t if (segment.length === 2) {\n\t throw new Error('Found a source, but no line and column');\n\t }\n\n\t if (segment.length === 3) {\n\t throw new Error('Found a source and line, but no column');\n\t }\n\n\t cachedSegments[str] = segment;\n\t }\n\n\t // Generated column.\n\t mapping.generatedColumn = previousGeneratedColumn + segment[0];\n\t previousGeneratedColumn = mapping.generatedColumn;\n\n\t if (segment.length > 1) {\n\t // Original source.\n\t mapping.source = previousSource + segment[1];\n\t previousSource += segment[1];\n\n\t // Original line.\n\t mapping.originalLine = previousOriginalLine + segment[2];\n\t previousOriginalLine = mapping.originalLine;\n\t // Lines are stored 0-based\n\t mapping.originalLine += 1;\n\n\t // Original column.\n\t mapping.originalColumn = previousOriginalColumn + segment[3];\n\t previousOriginalColumn = mapping.originalColumn;\n\n\t if (segment.length > 4) {\n\t // Original name.\n\t mapping.name = previousName + segment[4];\n\t previousName += segment[4];\n\t }\n\t }\n\n\t generatedMappings.push(mapping);\n\t if (typeof mapping.originalLine === 'number') {\n\t originalMappings.push(mapping);\n\t }\n\t }\n\t }\n\n\t quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);\n\t this.__generatedMappings = generatedMappings;\n\n\t quickSort(originalMappings, util.compareByOriginalPositions);\n\t this.__originalMappings = originalMappings;\n\t };\n\n\t/**\n\t * Find the mapping that best matches the hypothetical \"needle\" mapping that\n\t * we are searching for in the given \"haystack\" of mappings.\n\t */\n\tBasicSourceMapConsumer.prototype._findMapping =\n\t function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,\n\t aColumnName, aComparator, aBias) {\n\t // To return the position we are searching for, we must first find the\n\t // mapping for the given position and then return the opposite position it\n\t // points to. Because the mappings are sorted, we can use binary search to\n\t // find the best mapping.\n\n\t if (aNeedle[aLineName] <= 0) {\n\t throw new TypeError('Line must be greater than or equal to 1, got '\n\t + aNeedle[aLineName]);\n\t }\n\t if (aNeedle[aColumnName] < 0) {\n\t throw new TypeError('Column must be greater than or equal to 0, got '\n\t + aNeedle[aColumnName]);\n\t }\n\n\t return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\n\t };\n\n\t/**\n\t * Compute the last column for each generated mapping. The last column is\n\t * inclusive.\n\t */\n\tBasicSourceMapConsumer.prototype.computeColumnSpans =\n\t function SourceMapConsumer_computeColumnSpans() {\n\t for (var index = 0; index < this._generatedMappings.length; ++index) {\n\t var mapping = this._generatedMappings[index];\n\n\t // Mappings do not contain a field for the last generated columnt. We\n\t // can come up with an optimistic estimate, however, by assuming that\n\t // mappings are contiguous (i.e. given two consecutive mappings, the\n\t // first mapping ends where the second one starts).\n\t if (index + 1 < this._generatedMappings.length) {\n\t var nextMapping = this._generatedMappings[index + 1];\n\n\t if (mapping.generatedLine === nextMapping.generatedLine) {\n\t mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;\n\t continue;\n\t }\n\t }\n\n\t // The last mapping for each line spans the entire line.\n\t mapping.lastGeneratedColumn = Infinity;\n\t }\n\t };\n\n\t/**\n\t * Returns the original source, line, and column information for the generated\n\t * source's line and column positions provided. The only argument is an object\n\t * with the following properties:\n\t *\n\t * - line: The line number in the generated source.\n\t * - column: The column number in the generated source.\n\t * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n\t * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t * closest element that is smaller than or greater than the one we are\n\t * searching for, respectively, if the exact element cannot be found.\n\t * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t * - source: The original source file, or null.\n\t * - line: The line number in the original source, or null.\n\t * - column: The column number in the original source, or null.\n\t * - name: The original identifier, or null.\n\t */\n\tBasicSourceMapConsumer.prototype.originalPositionFor =\n\t function SourceMapConsumer_originalPositionFor(aArgs) {\n\t var needle = {\n\t generatedLine: util.getArg(aArgs, 'line'),\n\t generatedColumn: util.getArg(aArgs, 'column')\n\t };\n\n\t var index = this._findMapping(\n\t needle,\n\t this._generatedMappings,\n\t \"generatedLine\",\n\t \"generatedColumn\",\n\t util.compareByGeneratedPositionsDeflated,\n\t util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n\t );\n\n\t if (index >= 0) {\n\t var mapping = this._generatedMappings[index];\n\n\t if (mapping.generatedLine === needle.generatedLine) {\n\t var source = util.getArg(mapping, 'source', null);\n\t if (source !== null) {\n\t source = this._sources.at(source);\n\t if (this.sourceRoot != null) {\n\t source = util.join(this.sourceRoot, source);\n\t }\n\t }\n\t var name = util.getArg(mapping, 'name', null);\n\t if (name !== null) {\n\t name = this._names.at(name);\n\t }\n\t return {\n\t source: source,\n\t line: util.getArg(mapping, 'originalLine', null),\n\t column: util.getArg(mapping, 'originalColumn', null),\n\t name: name\n\t };\n\t }\n\t }\n\n\t return {\n\t source: null,\n\t line: null,\n\t column: null,\n\t name: null\n\t };\n\t };\n\n\t/**\n\t * Return true if we have the source content for every source in the source\n\t * map, false otherwise.\n\t */\n\tBasicSourceMapConsumer.prototype.hasContentsOfAllSources =\n\t function BasicSourceMapConsumer_hasContentsOfAllSources() {\n\t if (!this.sourcesContent) {\n\t return false;\n\t }\n\t return this.sourcesContent.length >= this._sources.size() &&\n\t !this.sourcesContent.some(function (sc) { return sc == null; });\n\t };\n\n\t/**\n\t * Returns the original source content. The only argument is the url of the\n\t * original source file. Returns null if no original source content is\n\t * available.\n\t */\n\tBasicSourceMapConsumer.prototype.sourceContentFor =\n\t function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n\t if (!this.sourcesContent) {\n\t return null;\n\t }\n\n\t if (this.sourceRoot != null) {\n\t aSource = util.relative(this.sourceRoot, aSource);\n\t }\n\n\t if (this._sources.has(aSource)) {\n\t return this.sourcesContent[this._sources.indexOf(aSource)];\n\t }\n\n\t var url;\n\t if (this.sourceRoot != null\n\t && (url = util.urlParse(this.sourceRoot))) {\n\t // XXX: file:// URIs and absolute paths lead to unexpected behavior for\n\t // many users. We can help them out when they expect file:// URIs to\n\t // behave like it would if they were running a local HTTP server. See\n\t // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\n\t var fileUriAbsPath = aSource.replace(/^file:\\/\\//, \"\");\n\t if (url.scheme == \"file\"\n\t && this._sources.has(fileUriAbsPath)) {\n\t return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]\n\t }\n\n\t if ((!url.path || url.path == \"/\")\n\t && this._sources.has(\"/\" + aSource)) {\n\t return this.sourcesContent[this._sources.indexOf(\"/\" + aSource)];\n\t }\n\t }\n\n\t // This function is used recursively from\n\t // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\n\t // don't want to throw if we can't find the source - we just want to\n\t // return null, so we provide a flag to exit gracefully.\n\t if (nullOnMissing) {\n\t return null;\n\t }\n\t else {\n\t throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n\t }\n\t };\n\n\t/**\n\t * Returns the generated line and column information for the original source,\n\t * line, and column positions provided. The only argument is an object with\n\t * the following properties:\n\t *\n\t * - source: The filename of the original source.\n\t * - line: The line number in the original source.\n\t * - column: The column number in the original source.\n\t * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n\t * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t * closest element that is smaller than or greater than the one we are\n\t * searching for, respectively, if the exact element cannot be found.\n\t * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t * - line: The line number in the generated source, or null.\n\t * - column: The column number in the generated source, or null.\n\t */\n\tBasicSourceMapConsumer.prototype.generatedPositionFor =\n\t function SourceMapConsumer_generatedPositionFor(aArgs) {\n\t var source = util.getArg(aArgs, 'source');\n\t if (this.sourceRoot != null) {\n\t source = util.relative(this.sourceRoot, source);\n\t }\n\t if (!this._sources.has(source)) {\n\t return {\n\t line: null,\n\t column: null,\n\t lastColumn: null\n\t };\n\t }\n\t source = this._sources.indexOf(source);\n\n\t var needle = {\n\t source: source,\n\t originalLine: util.getArg(aArgs, 'line'),\n\t originalColumn: util.getArg(aArgs, 'column')\n\t };\n\n\t var index = this._findMapping(\n\t needle,\n\t this._originalMappings,\n\t \"originalLine\",\n\t \"originalColumn\",\n\t util.compareByOriginalPositions,\n\t util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n\t );\n\n\t if (index >= 0) {\n\t var mapping = this._originalMappings[index];\n\n\t if (mapping.source === needle.source) {\n\t return {\n\t line: util.getArg(mapping, 'generatedLine', null),\n\t column: util.getArg(mapping, 'generatedColumn', null),\n\t lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t };\n\t }\n\t }\n\n\t return {\n\t line: null,\n\t column: null,\n\t lastColumn: null\n\t };\n\t };\n\n\texports.BasicSourceMapConsumer = BasicSourceMapConsumer;\n\n\t/**\n\t * An IndexedSourceMapConsumer instance represents a parsed source map which\n\t * we can query for information. It differs from BasicSourceMapConsumer in\n\t * that it takes \"indexed\" source maps (i.e. ones with a \"sections\" field) as\n\t * input.\n\t *\n\t * The only parameter is a raw source map (either as a JSON string, or already\n\t * parsed to an object). According to the spec for indexed source maps, they\n\t * have the following attributes:\n\t *\n\t * - version: Which version of the source map spec this map is following.\n\t * - file: Optional. The generated file this source map is associated with.\n\t * - sections: A list of section definitions.\n\t *\n\t * Each value under the \"sections\" field has two fields:\n\t * - offset: The offset into the original specified at which this section\n\t * begins to apply, defined as an object with a \"line\" and \"column\"\n\t * field.\n\t * - map: A source map definition. This source map could also be indexed,\n\t * but doesn't have to be.\n\t *\n\t * Instead of the \"map\" field, it's also possible to have a \"url\" field\n\t * specifying a URL to retrieve a source map from, but that's currently\n\t * unsupported.\n\t *\n\t * Here's an example source map, taken from the source map spec[0], but\n\t * modified to omit a section which uses the \"url\" field.\n\t *\n\t * {\n\t * version : 3,\n\t * file: \"app.js\",\n\t * sections: [{\n\t * offset: {line:100, column:10},\n\t * map: {\n\t * version : 3,\n\t * file: \"section.js\",\n\t * sources: [\"foo.js\", \"bar.js\"],\n\t * names: [\"src\", \"maps\", \"are\", \"fun\"],\n\t * mappings: \"AAAA,E;;ABCDE;\"\n\t * }\n\t * }],\n\t * }\n\t *\n\t * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\n\t */\n\tfunction IndexedSourceMapConsumer(aSourceMap) {\n\t var sourceMap = aSourceMap;\n\t if (typeof aSourceMap === 'string') {\n\t sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n\t }\n\n\t var version = util.getArg(sourceMap, 'version');\n\t var sections = util.getArg(sourceMap, 'sections');\n\n\t if (version != this._version) {\n\t throw new Error('Unsupported version: ' + version);\n\t }\n\n\t this._sources = new ArraySet();\n\t this._names = new ArraySet();\n\n\t var lastOffset = {\n\t line: -1,\n\t column: 0\n\t };\n\t this._sections = sections.map(function (s) {\n\t if (s.url) {\n\t // The url field will require support for asynchronicity.\n\t // See https://github.com/mozilla/source-map/issues/16\n\t throw new Error('Support for url field in sections not implemented.');\n\t }\n\t var offset = util.getArg(s, 'offset');\n\t var offsetLine = util.getArg(offset, 'line');\n\t var offsetColumn = util.getArg(offset, 'column');\n\n\t if (offsetLine < lastOffset.line ||\n\t (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\n\t throw new Error('Section offsets must be ordered and non-overlapping.');\n\t }\n\t lastOffset = offset;\n\n\t return {\n\t generatedOffset: {\n\t // The offset fields are 0-based, but we use 1-based indices when\n\t // encoding/decoding from VLQ.\n\t generatedLine: offsetLine + 1,\n\t generatedColumn: offsetColumn + 1\n\t },\n\t consumer: new SourceMapConsumer(util.getArg(s, 'map'))\n\t }\n\t });\n\t}\n\n\tIndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\n\tIndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;\n\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tIndexedSourceMapConsumer.prototype._version = 3;\n\n\t/**\n\t * The list of original sources.\n\t */\n\tObject.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {\n\t get: function () {\n\t var sources = [];\n\t for (var i = 0; i < this._sections.length; i++) {\n\t for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {\n\t sources.push(this._sections[i].consumer.sources[j]);\n\t }\n\t }\n\t return sources;\n\t }\n\t});\n\n\t/**\n\t * Returns the original source, line, and column information for the generated\n\t * source's line and column positions provided. The only argument is an object\n\t * with the following properties:\n\t *\n\t * - line: The line number in the generated source.\n\t * - column: The column number in the generated source.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t * - source: The original source file, or null.\n\t * - line: The line number in the original source, or null.\n\t * - column: The column number in the original source, or null.\n\t * - name: The original identifier, or null.\n\t */\n\tIndexedSourceMapConsumer.prototype.originalPositionFor =\n\t function IndexedSourceMapConsumer_originalPositionFor(aArgs) {\n\t var needle = {\n\t generatedLine: util.getArg(aArgs, 'line'),\n\t generatedColumn: util.getArg(aArgs, 'column')\n\t };\n\n\t // Find the section containing the generated position we're trying to map\n\t // to an original position.\n\t var sectionIndex = binarySearch.search(needle, this._sections,\n\t function(needle, section) {\n\t var cmp = needle.generatedLine - section.generatedOffset.generatedLine;\n\t if (cmp) {\n\t return cmp;\n\t }\n\n\t return (needle.generatedColumn -\n\t section.generatedOffset.generatedColumn);\n\t });\n\t var section = this._sections[sectionIndex];\n\n\t if (!section) {\n\t return {\n\t source: null,\n\t line: null,\n\t column: null,\n\t name: null\n\t };\n\t }\n\n\t return section.consumer.originalPositionFor({\n\t line: needle.generatedLine -\n\t (section.generatedOffset.generatedLine - 1),\n\t column: needle.generatedColumn -\n\t (section.generatedOffset.generatedLine === needle.generatedLine\n\t ? section.generatedOffset.generatedColumn - 1\n\t : 0),\n\t bias: aArgs.bias\n\t });\n\t };\n\n\t/**\n\t * Return true if we have the source content for every source in the source\n\t * map, false otherwise.\n\t */\n\tIndexedSourceMapConsumer.prototype.hasContentsOfAllSources =\n\t function IndexedSourceMapConsumer_hasContentsOfAllSources() {\n\t return this._sections.every(function (s) {\n\t return s.consumer.hasContentsOfAllSources();\n\t });\n\t };\n\n\t/**\n\t * Returns the original source content. The only argument is the url of the\n\t * original source file. Returns null if no original source content is\n\t * available.\n\t */\n\tIndexedSourceMapConsumer.prototype.sourceContentFor =\n\t function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n\t for (var i = 0; i < this._sections.length; i++) {\n\t var section = this._sections[i];\n\n\t var content = section.consumer.sourceContentFor(aSource, true);\n\t if (content) {\n\t return content;\n\t }\n\t }\n\t if (nullOnMissing) {\n\t return null;\n\t }\n\t else {\n\t throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n\t }\n\t };\n\n\t/**\n\t * Returns the generated line and column information for the original source,\n\t * line, and column positions provided. The only argument is an object with\n\t * the following properties:\n\t *\n\t * - source: The filename of the original source.\n\t * - line: The line number in the original source.\n\t * - column: The column number in the original source.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t * - line: The line number in the generated source, or null.\n\t * - column: The column number in the generated source, or null.\n\t */\n\tIndexedSourceMapConsumer.prototype.generatedPositionFor =\n\t function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {\n\t for (var i = 0; i < this._sections.length; i++) {\n\t var section = this._sections[i];\n\n\t // Only consider this section if the requested source is in the list of\n\t // sources of the consumer.\n\t if (section.consumer.sources.indexOf(util.getArg(aArgs, 'source')) === -1) {\n\t continue;\n\t }\n\t var generatedPosition = section.consumer.generatedPositionFor(aArgs);\n\t if (generatedPosition) {\n\t var ret = {\n\t line: generatedPosition.line +\n\t (section.generatedOffset.generatedLine - 1),\n\t column: generatedPosition.column +\n\t (section.generatedOffset.generatedLine === generatedPosition.line\n\t ? section.generatedOffset.generatedColumn - 1\n\t : 0)\n\t };\n\t return ret;\n\t }\n\t }\n\n\t return {\n\t line: null,\n\t column: null\n\t };\n\t };\n\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tIndexedSourceMapConsumer.prototype._parseMappings =\n\t function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t this.__generatedMappings = [];\n\t this.__originalMappings = [];\n\t for (var i = 0; i < this._sections.length; i++) {\n\t var section = this._sections[i];\n\t var sectionMappings = section.consumer._generatedMappings;\n\t for (var j = 0; j < sectionMappings.length; j++) {\n\t var mapping = sectionMappings[j];\n\n\t var source = section.consumer._sources.at(mapping.source);\n\t if (section.consumer.sourceRoot !== null) {\n\t source = util.join(section.consumer.sourceRoot, source);\n\t }\n\t this._sources.add(source);\n\t source = this._sources.indexOf(source);\n\n\t var name = section.consumer._names.at(mapping.name);\n\t this._names.add(name);\n\t name = this._names.indexOf(name);\n\n\t // The mappings coming from the consumer for the section have\n\t // generated positions relative to the start of the section, so we\n\t // need to offset them to be relative to the start of the concatenated\n\t // generated file.\n\t var adjustedMapping = {\n\t source: source,\n\t generatedLine: mapping.generatedLine +\n\t (section.generatedOffset.generatedLine - 1),\n\t generatedColumn: mapping.generatedColumn +\n\t (section.generatedOffset.generatedLine === mapping.generatedLine\n\t ? section.generatedOffset.generatedColumn - 1\n\t : 0),\n\t originalLine: mapping.originalLine,\n\t originalColumn: mapping.originalColumn,\n\t name: name\n\t };\n\n\t this.__generatedMappings.push(adjustedMapping);\n\t if (typeof adjustedMapping.originalLine === 'number') {\n\t this.__originalMappings.push(adjustedMapping);\n\t }\n\t }\n\t }\n\n\t quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);\n\t quickSort(this.__originalMappings, util.compareByOriginalPositions);\n\t };\n\n\texports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\t/**\n\t * This is a helper function for getting values from parameter/options\n\t * objects.\n\t *\n\t * @param args The object we are extracting values from\n\t * @param name The name of the property we are getting.\n\t * @param defaultValue An optional value to return if the property is missing\n\t * from the object. If this is not specified and the property is missing, an\n\t * error will be thrown.\n\t */\n\tfunction getArg(aArgs, aName, aDefaultValue) {\n\t if (aName in aArgs) {\n\t return aArgs[aName];\n\t } else if (arguments.length === 3) {\n\t return aDefaultValue;\n\t } else {\n\t throw new Error('\"' + aName + '\" is a required argument.');\n\t }\n\t}\n\texports.getArg = getArg;\n\n\tvar urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.]*)(?::(\\d+))?(\\S*)$/;\n\tvar dataUrlRegexp = /^data:.+\\,.+$/;\n\n\tfunction urlParse(aUrl) {\n\t var match = aUrl.match(urlRegexp);\n\t if (!match) {\n\t return null;\n\t }\n\t return {\n\t scheme: match[1],\n\t auth: match[2],\n\t host: match[3],\n\t port: match[4],\n\t path: match[5]\n\t };\n\t}\n\texports.urlParse = urlParse;\n\n\tfunction urlGenerate(aParsedUrl) {\n\t var url = '';\n\t if (aParsedUrl.scheme) {\n\t url += aParsedUrl.scheme + ':';\n\t }\n\t url += '//';\n\t if (aParsedUrl.auth) {\n\t url += aParsedUrl.auth + '@';\n\t }\n\t if (aParsedUrl.host) {\n\t url += aParsedUrl.host;\n\t }\n\t if (aParsedUrl.port) {\n\t url += \":\" + aParsedUrl.port\n\t }\n\t if (aParsedUrl.path) {\n\t url += aParsedUrl.path;\n\t }\n\t return url;\n\t}\n\texports.urlGenerate = urlGenerate;\n\n\t/**\n\t * Normalizes a path, or the path portion of a URL:\n\t *\n\t * - Replaces consecutive slashes with one slash.\n\t * - Removes unnecessary '.' parts.\n\t * - Removes unnecessary '<dir>/..' parts.\n\t *\n\t * Based on code in the Node.js 'path' core module.\n\t *\n\t * @param aPath The path or url to normalize.\n\t */\n\tfunction normalize(aPath) {\n\t var path = aPath;\n\t var url = urlParse(aPath);\n\t if (url) {\n\t if (!url.path) {\n\t return aPath;\n\t }\n\t path = url.path;\n\t }\n\t var isAbsolute = exports.isAbsolute(path);\n\n\t var parts = path.split(/\\/+/);\n\t for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\n\t part = parts[i];\n\t if (part === '.') {\n\t parts.splice(i, 1);\n\t } else if (part === '..') {\n\t up++;\n\t } else if (up > 0) {\n\t if (part === '') {\n\t // The first part is blank if the path is absolute. Trying to go\n\t // above the root is a no-op. Therefore we can remove all '..' parts\n\t // directly after the root.\n\t parts.splice(i + 1, up);\n\t up = 0;\n\t } else {\n\t parts.splice(i, 2);\n\t up--;\n\t }\n\t }\n\t }\n\t path = parts.join('/');\n\n\t if (path === '') {\n\t path = isAbsolute ? '/' : '.';\n\t }\n\n\t if (url) {\n\t url.path = path;\n\t return urlGenerate(url);\n\t }\n\t return path;\n\t}\n\texports.normalize = normalize;\n\n\t/**\n\t * Joins two paths/URLs.\n\t *\n\t * @param aRoot The root path or URL.\n\t * @param aPath The path or URL to be joined with the root.\n\t *\n\t * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n\t * scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n\t * first.\n\t * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n\t * is updated with the result and aRoot is returned. Otherwise the result\n\t * is returned.\n\t * - If aPath is absolute, the result is aPath.\n\t * - Otherwise the two paths are joined with a slash.\n\t * - Joining for example 'http://' and 'www.example.com' is also supported.\n\t */\n\tfunction join(aRoot, aPath) {\n\t if (aRoot === \"\") {\n\t aRoot = \".\";\n\t }\n\t if (aPath === \"\") {\n\t aPath = \".\";\n\t }\n\t var aPathUrl = urlParse(aPath);\n\t var aRootUrl = urlParse(aRoot);\n\t if (aRootUrl) {\n\t aRoot = aRootUrl.path || '/';\n\t }\n\n\t // `join(foo, '//www.example.org')`\n\t if (aPathUrl && !aPathUrl.scheme) {\n\t if (aRootUrl) {\n\t aPathUrl.scheme = aRootUrl.scheme;\n\t }\n\t return urlGenerate(aPathUrl);\n\t }\n\n\t if (aPathUrl || aPath.match(dataUrlRegexp)) {\n\t return aPath;\n\t }\n\n\t // `join('http://', 'www.example.com')`\n\t if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n\t aRootUrl.host = aPath;\n\t return urlGenerate(aRootUrl);\n\t }\n\n\t var joined = aPath.charAt(0) === '/'\n\t ? aPath\n\t : normalize(aRoot.replace(/\\/+$/, '') + '/' + aPath);\n\n\t if (aRootUrl) {\n\t aRootUrl.path = joined;\n\t return urlGenerate(aRootUrl);\n\t }\n\t return joined;\n\t}\n\texports.join = join;\n\n\texports.isAbsolute = function (aPath) {\n\t return aPath.charAt(0) === '/' || !!aPath.match(urlRegexp);\n\t};\n\n\t/**\n\t * Make a path relative to a URL or another path.\n\t *\n\t * @param aRoot The root path or URL.\n\t * @param aPath The path or URL to be made relative to aRoot.\n\t */\n\tfunction relative(aRoot, aPath) {\n\t if (aRoot === \"\") {\n\t aRoot = \".\";\n\t }\n\n\t aRoot = aRoot.replace(/\\/$/, '');\n\n\t // It is possible for the path to be above the root. In this case, simply\n\t // checking whether the root is a prefix of the path won't work. Instead, we\n\t // need to remove components from the root one by one, until either we find\n\t // a prefix that fits, or we run out of components to remove.\n\t var level = 0;\n\t while (aPath.indexOf(aRoot + '/') !== 0) {\n\t var index = aRoot.lastIndexOf(\"/\");\n\t if (index < 0) {\n\t return aPath;\n\t }\n\n\t // If the only part of the root that is left is the scheme (i.e. http://,\n\t // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n\t // have exhausted all components, so the path is not relative to the root.\n\t aRoot = aRoot.slice(0, index);\n\t if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n\t return aPath;\n\t }\n\n\t ++level;\n\t }\n\n\t // Make sure we add a \"../\" for each component we removed from the root.\n\t return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n\t}\n\texports.relative = relative;\n\n\tvar supportsNullProto = (function () {\n\t var obj = Object.create(null);\n\t return !('__proto__' in obj);\n\t}());\n\n\tfunction identity (s) {\n\t return s;\n\t}\n\n\t/**\n\t * Because behavior goes wacky when you set `__proto__` on objects, we\n\t * have to prefix all the strings in our set with an arbitrary character.\n\t *\n\t * See https://github.com/mozilla/source-map/pull/31 and\n\t * https://github.com/mozilla/source-map/issues/30\n\t *\n\t * @param String aStr\n\t */\n\tfunction toSetString(aStr) {\n\t if (isProtoString(aStr)) {\n\t return '$' + aStr;\n\t }\n\n\t return aStr;\n\t}\n\texports.toSetString = supportsNullProto ? identity : toSetString;\n\n\tfunction fromSetString(aStr) {\n\t if (isProtoString(aStr)) {\n\t return aStr.slice(1);\n\t }\n\n\t return aStr;\n\t}\n\texports.fromSetString = supportsNullProto ? identity : fromSetString;\n\n\tfunction isProtoString(s) {\n\t if (!s) {\n\t return false;\n\t }\n\n\t var length = s.length;\n\n\t if (length < 9 /* \"__proto__\".length */) {\n\t return false;\n\t }\n\n\t if (s.charCodeAt(length - 1) !== 95 /* '_' */ ||\n\t s.charCodeAt(length - 2) !== 95 /* '_' */ ||\n\t s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n\t s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n\t s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n\t s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n\t s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n\t s.charCodeAt(length - 8) !== 95 /* '_' */ ||\n\t s.charCodeAt(length - 9) !== 95 /* '_' */) {\n\t return false;\n\t }\n\n\t for (var i = length - 10; i >= 0; i--) {\n\t if (s.charCodeAt(i) !== 36 /* '$' */) {\n\t return false;\n\t }\n\t }\n\n\t return true;\n\t}\n\n\t/**\n\t * Comparator between two mappings where the original positions are compared.\n\t *\n\t * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n\t * mappings with the same original source/line/column, but different generated\n\t * line and column the same. Useful when searching for a mapping with a\n\t * stubbed out mapping.\n\t */\n\tfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n\t var cmp = mappingA.source - mappingB.source;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalLine - mappingB.originalLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t if (cmp !== 0 || onlyCompareOriginal) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t return mappingA.name - mappingB.name;\n\t}\n\texports.compareByOriginalPositions = compareByOriginalPositions;\n\n\t/**\n\t * Comparator between two mappings with deflated source and name indices where\n\t * the generated positions are compared.\n\t *\n\t * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n\t * mappings with the same generated line and column, but different\n\t * source/name/original line and column the same. Useful when searching for a\n\t * mapping with a stubbed out mapping.\n\t */\n\tfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n\t var cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t if (cmp !== 0 || onlyCompareGenerated) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.source - mappingB.source;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalLine - mappingB.originalLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t return mappingA.name - mappingB.name;\n\t}\n\texports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\n\tfunction strcmp(aStr1, aStr2) {\n\t if (aStr1 === aStr2) {\n\t return 0;\n\t }\n\n\t if (aStr1 > aStr2) {\n\t return 1;\n\t }\n\n\t return -1;\n\t}\n\n\t/**\n\t * Comparator between two mappings with inflated source and name strings where\n\t * the generated positions are compared.\n\t */\n\tfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n\t var cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = strcmp(mappingA.source, mappingB.source);\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalLine - mappingB.originalLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\n\t return strcmp(mappingA.name, mappingB.name);\n\t}\n\texports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\texports.GREATEST_LOWER_BOUND = 1;\n\texports.LEAST_UPPER_BOUND = 2;\n\n\t/**\n\t * Recursive implementation of binary search.\n\t *\n\t * @param aLow Indices here and lower do not contain the needle.\n\t * @param aHigh Indices here and higher do not contain the needle.\n\t * @param aNeedle The element being searched for.\n\t * @param aHaystack The non-empty array being searched.\n\t * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n\t * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n\t * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t * closest element that is smaller than or greater than the one we are\n\t * searching for, respectively, if the exact element cannot be found.\n\t */\n\tfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n\t // This function terminates when one of the following is true:\n\t //\n\t // 1. We find the exact element we are looking for.\n\t //\n\t // 2. We did not find the exact element, but we can return the index of\n\t // the next-closest element.\n\t //\n\t // 3. We did not find the exact element, and there is no next-closest\n\t // element than the one we are searching for, so we return -1.\n\t var mid = Math.floor((aHigh - aLow) / 2) + aLow;\n\t var cmp = aCompare(aNeedle, aHaystack[mid], true);\n\t if (cmp === 0) {\n\t // Found the element we are looking for.\n\t return mid;\n\t }\n\t else if (cmp > 0) {\n\t // Our needle is greater than aHaystack[mid].\n\t if (aHigh - mid > 1) {\n\t // The element is in the upper half.\n\t return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n\t }\n\n\t // The exact needle element was not found in this haystack. Determine if\n\t // we are in termination case (3) or (2) and return the appropriate thing.\n\t if (aBias == exports.LEAST_UPPER_BOUND) {\n\t return aHigh < aHaystack.length ? aHigh : -1;\n\t } else {\n\t return mid;\n\t }\n\t }\n\t else {\n\t // Our needle is less than aHaystack[mid].\n\t if (mid - aLow > 1) {\n\t // The element is in the lower half.\n\t return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n\t }\n\n\t // we are in termination case (3) or (2) and return the appropriate thing.\n\t if (aBias == exports.LEAST_UPPER_BOUND) {\n\t return mid;\n\t } else {\n\t return aLow < 0 ? -1 : aLow;\n\t }\n\t }\n\t}\n\n\t/**\n\t * This is an implementation of binary search which will always try and return\n\t * the index of the closest element if there is no exact hit. This is because\n\t * mappings between original and generated line/col pairs are single points,\n\t * and there is an implicit region between each of them, so a miss just means\n\t * that you aren't on the very start of a region.\n\t *\n\t * @param aNeedle The element you are looking for.\n\t * @param aHaystack The array that is being searched.\n\t * @param aCompare A function which takes the needle and an element in the\n\t * array and returns -1, 0, or 1 depending on whether the needle is less\n\t * than, equal to, or greater than the element, respectively.\n\t * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n\t * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t * closest element that is smaller than or greater than the one we are\n\t * searching for, respectively, if the exact element cannot be found.\n\t * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.\n\t */\n\texports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n\t if (aHaystack.length === 0) {\n\t return -1;\n\t }\n\n\t var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n\t aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n\t if (index < 0) {\n\t return -1;\n\t }\n\n\t // We have found either the exact element, or the next-closest element than\n\t // the one we are searching for. However, there may be more than one such\n\t // element. Make sure we always return the smallest of these.\n\t while (index - 1 >= 0) {\n\t if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n\t break;\n\t }\n\t --index;\n\t }\n\n\t return index;\n\t};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\tvar util = __webpack_require__(2);\n\tvar has = Object.prototype.hasOwnProperty;\n\n\t/**\n\t * A data structure which is a combination of an array and a set. Adding a new\n\t * member is O(1), testing for membership is O(1), and finding the index of an\n\t * element is O(1). Removing elements from the set is not supported. Only\n\t * strings are supported for membership.\n\t */\n\tfunction ArraySet() {\n\t this._array = [];\n\t this._set = Object.create(null);\n\t}\n\n\t/**\n\t * Static method for creating ArraySet instances from an existing array.\n\t */\n\tArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {\n\t var set = new ArraySet();\n\t for (var i = 0, len = aArray.length; i < len; i++) {\n\t set.add(aArray[i], aAllowDuplicates);\n\t }\n\t return set;\n\t};\n\n\t/**\n\t * Return how many unique items are in this ArraySet. If duplicates have been\n\t * added, than those do not count towards the size.\n\t *\n\t * @returns Number\n\t */\n\tArraySet.prototype.size = function ArraySet_size() {\n\t return Object.getOwnPropertyNames(this._set).length;\n\t};\n\n\t/**\n\t * Add the given string to this set.\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {\n\t var sStr = util.toSetString(aStr);\n\t var isDuplicate = has.call(this._set, sStr);\n\t var idx = this._array.length;\n\t if (!isDuplicate || aAllowDuplicates) {\n\t this._array.push(aStr);\n\t }\n\t if (!isDuplicate) {\n\t this._set[sStr] = idx;\n\t }\n\t};\n\n\t/**\n\t * Is the given string a member of this set?\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.has = function ArraySet_has(aStr) {\n\t var sStr = util.toSetString(aStr);\n\t return has.call(this._set, sStr);\n\t};\n\n\t/**\n\t * What is the index of the given string in the array?\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {\n\t var sStr = util.toSetString(aStr);\n\t if (has.call(this._set, sStr)) {\n\t return this._set[sStr];\n\t }\n\t throw new Error('\"' + aStr + '\" is not in the set.');\n\t};\n\n\t/**\n\t * What is the element at the given index?\n\t *\n\t * @param Number aIdx\n\t */\n\tArraySet.prototype.at = function ArraySet_at(aIdx) {\n\t if (aIdx >= 0 && aIdx < this._array.length) {\n\t return this._array[aIdx];\n\t }\n\t throw new Error('No element indexed by ' + aIdx);\n\t};\n\n\t/**\n\t * Returns the array representation of this set (which has the proper indices\n\t * indicated by indexOf). Note that this is a copy of the internal array used\n\t * for storing the members so that no one can mess with internal state.\n\t */\n\tArraySet.prototype.toArray = function ArraySet_toArray() {\n\t return this._array.slice();\n\t};\n\n\texports.ArraySet = ArraySet;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t *\n\t * Based on the Base 64 VLQ implementation in Closure Compiler:\n\t * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java\n\t *\n\t * Copyright 2011 The Closure Compiler Authors. All rights reserved.\n\t * Redistribution and use in source and binary forms, with or without\n\t * modification, are permitted provided that the following conditions are\n\t * met:\n\t *\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\n\t * copyright notice, this list of conditions and the following\n\t * disclaimer in the documentation and/or other materials provided\n\t * with the distribution.\n\t * * Neither the name of Google Inc. nor the names of its\n\t * contributors may be used to endorse or promote products derived\n\t * from this software without specific prior written permission.\n\t *\n\t * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\t * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n\t * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n\t * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n\t * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n\t * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n\t * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n\t * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n\t * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n\t * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n\t * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t */\n\n\tvar base64 = __webpack_require__(6);\n\n\t// A single base 64 digit can contain 6 bits of data. For the base 64 variable\n\t// length quantities we use in the source map spec, the first bit is the sign,\n\t// the next four bits are the actual value, and the 6th bit is the\n\t// continuation bit. The continuation bit tells us whether there are more\n\t// digits in this value following this digit.\n\t//\n\t// Continuation\n\t// | Sign\n\t// | |\n\t// V V\n\t// 101011\n\n\tvar VLQ_BASE_SHIFT = 5;\n\n\t// binary: 100000\n\tvar VLQ_BASE = 1 << VLQ_BASE_SHIFT;\n\n\t// binary: 011111\n\tvar VLQ_BASE_MASK = VLQ_BASE - 1;\n\n\t// binary: 100000\n\tvar VLQ_CONTINUATION_BIT = VLQ_BASE;\n\n\t/**\n\t * Converts from a two-complement value to a value where the sign bit is\n\t * placed in the least significant bit. For example, as decimals:\n\t * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary)\n\t * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary)\n\t */\n\tfunction toVLQSigned(aValue) {\n\t return aValue < 0\n\t ? ((-aValue) << 1) + 1\n\t : (aValue << 1) + 0;\n\t}\n\n\t/**\n\t * Converts to a two-complement value from a value where the sign bit is\n\t * placed in the least significant bit. For example, as decimals:\n\t * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1\n\t * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2\n\t */\n\tfunction fromVLQSigned(aValue) {\n\t var isNegative = (aValue & 1) === 1;\n\t var shifted = aValue >> 1;\n\t return isNegative\n\t ? -shifted\n\t : shifted;\n\t}\n\n\t/**\n\t * Returns the base 64 VLQ encoded value.\n\t */\n\texports.encode = function base64VLQ_encode(aValue) {\n\t var encoded = \"\";\n\t var digit;\n\n\t var vlq = toVLQSigned(aValue);\n\n\t do {\n\t digit = vlq & VLQ_BASE_MASK;\n\t vlq >>>= VLQ_BASE_SHIFT;\n\t if (vlq > 0) {\n\t // There are still more digits in this value, so we must make sure the\n\t // continuation bit is marked.\n\t digit |= VLQ_CONTINUATION_BIT;\n\t }\n\t encoded += base64.encode(digit);\n\t } while (vlq > 0);\n\n\t return encoded;\n\t};\n\n\t/**\n\t * Decodes the next base 64 VLQ value from the given string and returns the\n\t * value and the rest of the string via the out parameter.\n\t */\n\texports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\n\t var strLen = aStr.length;\n\t var result = 0;\n\t var shift = 0;\n\t var continuation, digit;\n\n\t do {\n\t if (aIndex >= strLen) {\n\t throw new Error(\"Expected more digits in base 64 VLQ value.\");\n\t }\n\n\t digit = base64.decode(aStr.charCodeAt(aIndex++));\n\t if (digit === -1) {\n\t throw new Error(\"Invalid base64 digit: \" + aStr.charAt(aIndex - 1));\n\t }\n\n\t continuation = !!(digit & VLQ_CONTINUATION_BIT);\n\t digit &= VLQ_BASE_MASK;\n\t result = result + (digit << shift);\n\t shift += VLQ_BASE_SHIFT;\n\t } while (continuation);\n\n\t aOutParam.value = fromVLQSigned(result);\n\t aOutParam.rest = aIndex;\n\t};\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\tvar intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n\n\t/**\n\t * Encode an integer in the range of 0 to 63 to a single base 64 digit.\n\t */\n\texports.encode = function (number) {\n\t if (0 <= number && number < intToCharMap.length) {\n\t return intToCharMap[number];\n\t }\n\t throw new TypeError(\"Must be between 0 and 63: \" + number);\n\t};\n\n\t/**\n\t * Decode a single base 64 character code digit to an integer. Returns -1 on\n\t * failure.\n\t */\n\texports.decode = function (charCode) {\n\t var bigA = 65; // 'A'\n\t var bigZ = 90; // 'Z'\n\n\t var littleA = 97; // 'a'\n\t var littleZ = 122; // 'z'\n\n\t var zero = 48; // '0'\n\t var nine = 57; // '9'\n\n\t var plus = 43; // '+'\n\t var slash = 47; // '/'\n\n\t var littleOffset = 26;\n\t var numberOffset = 52;\n\n\t // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ\n\t if (bigA <= charCode && charCode <= bigZ) {\n\t return (charCode - bigA);\n\t }\n\n\t // 26 - 51: abcdefghijklmnopqrstuvwxyz\n\t if (littleA <= charCode && charCode <= littleZ) {\n\t return (charCode - littleA + littleOffset);\n\t }\n\n\t // 52 - 61: 0123456789\n\t if (zero <= charCode && charCode <= nine) {\n\t return (charCode - zero + numberOffset);\n\t }\n\n\t // 62: +\n\t if (charCode == plus) {\n\t return 62;\n\t }\n\n\t // 63: /\n\t if (charCode == slash) {\n\t return 63;\n\t }\n\n\t // Invalid base64 digit.\n\t return -1;\n\t};\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\n\t// It turns out that some (most?) JavaScript engines don't self-host\n\t// `Array.prototype.sort`. This makes sense because C++ will likely remain\n\t// faster than JS when doing raw CPU-intensive sorting. However, when using a\n\t// custom comparator function, calling back and forth between the VM's C++ and\n\t// JIT'd JS is rather slow *and* loses JIT type information, resulting in\n\t// worse generated code for the comparator function than would be optimal. In\n\t// fact, when sorting with a comparator, these costs outweigh the benefits of\n\t// sorting in C++. By using our own JS-implemented Quick Sort (below), we get\n\t// a ~3500ms mean speed-up in `bench/bench.html`.\n\n\t/**\n\t * Swap the elements indexed by `x` and `y` in the array `ary`.\n\t *\n\t * @param {Array} ary\n\t * The array.\n\t * @param {Number} x\n\t * The index of the first item.\n\t * @param {Number} y\n\t * The index of the second item.\n\t */\n\tfunction swap(ary, x, y) {\n\t var temp = ary[x];\n\t ary[x] = ary[y];\n\t ary[y] = temp;\n\t}\n\n\t/**\n\t * Returns a random integer within the range `low .. high` inclusive.\n\t *\n\t * @param {Number} low\n\t * The lower bound on the range.\n\t * @param {Number} high\n\t * The upper bound on the range.\n\t */\n\tfunction randomIntInRange(low, high) {\n\t return Math.round(low + (Math.random() * (high - low)));\n\t}\n\n\t/**\n\t * The Quick Sort algorithm.\n\t *\n\t * @param {Array} ary\n\t * An array to sort.\n\t * @param {function} comparator\n\t * Function to use to compare two items.\n\t * @param {Number} p\n\t * Start index of the array\n\t * @param {Number} r\n\t * End index of the array\n\t */\n\tfunction doQuickSort(ary, comparator, p, r) {\n\t // If our lower bound is less than our upper bound, we (1) partition the\n\t // array into two pieces and (2) recurse on each half. If it is not, this is\n\t // the empty array and our base case.\n\n\t if (p < r) {\n\t // (1) Partitioning.\n\t //\n\t // The partitioning chooses a pivot between `p` and `r` and moves all\n\t // elements that are less than or equal to the pivot to the before it, and\n\t // all the elements that are greater than it after it. The effect is that\n\t // once partition is done, the pivot is in the exact place it will be when\n\t // the array is put in sorted order, and it will not need to be moved\n\t // again. This runs in O(n) time.\n\n\t // Always choose a random pivot so that an input array which is reverse\n\t // sorted does not cause O(n^2) running time.\n\t var pivotIndex = randomIntInRange(p, r);\n\t var i = p - 1;\n\n\t swap(ary, pivotIndex, r);\n\t var pivot = ary[r];\n\n\t // Immediately after `j` is incremented in this loop, the following hold\n\t // true:\n\t //\n\t // * Every element in `ary[p .. i]` is less than or equal to the pivot.\n\t //\n\t // * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\n\t for (var j = p; j < r; j++) {\n\t if (comparator(ary[j], pivot) <= 0) {\n\t i += 1;\n\t swap(ary, i, j);\n\t }\n\t }\n\n\t swap(ary, i + 1, j);\n\t var q = i + 1;\n\n\t // (2) Recurse on each half.\n\n\t doQuickSort(ary, comparator, p, q - 1);\n\t doQuickSort(ary, comparator, q + 1, r);\n\t }\n\t}\n\n\t/**\n\t * Sort the given array in-place with the given comparator function.\n\t *\n\t * @param {Array} ary\n\t * An array to sort.\n\t * @param {function} comparator\n\t * Function to use to compare two items.\n\t */\n\texports.quickSort = function (ary, comparator) {\n\t doQuickSort(ary, comparator, 0, ary.length - 1);\n\t};\n\n\n/***/ })\n/******/ ])\n});\n;"],"names":["this"],"mappings":"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"} \ No newline at end of file diff --git a/changelog/index.html b/changelog/index.html index 62d2e2e8..82343593 100644 --- a/changelog/index.html +++ b/changelog/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.41a3dfd7.js"></script> - <link rel="stylesheet" href="/assets/index.c53548d8.css"> + <script type="module" crossorigin src="/assets/index.d528c217.js"></script> + <link rel="stylesheet" href="/assets/index.139af8e4.css"> </head> <body> <div data-ea-publisher="misode-github-io" data-ea-manual="true" id="ad-placeholder"></div> diff --git a/chat-type/index.html b/chat-type/index.html index ea15698a..3114d595 100644 --- a/chat-type/index.html +++ b/chat-type/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.41a3dfd7.js"></script> - <link rel="stylesheet" href="/assets/index.c53548d8.css"> + <script type="module" crossorigin src="/assets/index.d528c217.js"></script> + <link rel="stylesheet" href="/assets/index.139af8e4.css"> </head> <body> <div data-ea-publisher="misode-github-io" data-ea-manual="true" id="ad-placeholder"></div> diff --git a/dimension-type/index.html b/dimension-type/index.html index 2041a71b..ca3b1bd5 100644 --- a/dimension-type/index.html +++ b/dimension-type/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.41a3dfd7.js"></script> - <link rel="stylesheet" href="/assets/index.c53548d8.css"> + <script type="module" crossorigin src="/assets/index.d528c217.js"></script> + <link rel="stylesheet" href="/assets/index.139af8e4.css"> </head> <body> <div data-ea-publisher="misode-github-io" data-ea-manual="true" id="ad-placeholder"></div> diff --git a/dimension/index.html b/dimension/index.html index 21c4c831..3ec69802 100644 --- a/dimension/index.html +++ b/dimension/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.41a3dfd7.js"></script> - <link rel="stylesheet" href="/assets/index.c53548d8.css"> + <script type="module" crossorigin src="/assets/index.d528c217.js"></script> + <link rel="stylesheet" href="/assets/index.139af8e4.css"> </head> <body> <div data-ea-publisher="misode-github-io" data-ea-manual="true" id="ad-placeholder"></div> diff --git a/fonts/seven.ttf b/fonts/seven.ttf new file mode 100644 index 0000000000000000000000000000000000000000..0b738f7f84a4a9ce6ff32f483f21b3bc2712e4a3 GIT binary patch literal 188416 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 MP4HpeeDss~KSfLoRsaA1 literal 0 HcmV?d00001 diff --git a/guides/adding-custom-structures/index.html b/guides/adding-custom-structures/index.html index 12594b57..6320d9d7 100644 --- a/guides/adding-custom-structures/index.html +++ b/guides/adding-custom-structures/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.41a3dfd7.js"></script> - <link rel="stylesheet" href="/assets/index.c53548d8.css"> + <script type="module" crossorigin src="/assets/index.d528c217.js"></script> + <link rel="stylesheet" href="/assets/index.139af8e4.css"> </head> <body> <div data-ea-publisher="misode-github-io" data-ea-manual="true" id="ad-placeholder"></div> diff --git a/guides/density-functions/index.html b/guides/density-functions/index.html index 9df4414a..e0a45a3c 100644 --- a/guides/density-functions/index.html +++ b/guides/density-functions/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.41a3dfd7.js"></script> - <link rel="stylesheet" href="/assets/index.c53548d8.css"> + <script type="module" crossorigin src="/assets/index.d528c217.js"></script> + <link rel="stylesheet" href="/assets/index.139af8e4.css"> </head> <body> <div data-ea-publisher="misode-github-io" data-ea-manual="true" id="ad-placeholder"></div> diff --git a/guides/feature-order-cycle/index.html b/guides/feature-order-cycle/index.html index 068bfc51..675c4da4 100644 --- a/guides/feature-order-cycle/index.html +++ b/guides/feature-order-cycle/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.41a3dfd7.js"></script> - <link rel="stylesheet" href="/assets/index.c53548d8.css"> + <script type="module" crossorigin src="/assets/index.d528c217.js"></script> + <link rel="stylesheet" href="/assets/index.139af8e4.css"> </head> <body> <div data-ea-publisher="misode-github-io" data-ea-manual="true" id="ad-placeholder"></div> diff --git a/guides/heightmap-types/index.html b/guides/heightmap-types/index.html index 3342815a..346b1827 100644 --- a/guides/heightmap-types/index.html +++ b/guides/heightmap-types/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.41a3dfd7.js"></script> - <link rel="stylesheet" href="/assets/index.c53548d8.css"> + <script type="module" crossorigin src="/assets/index.d528c217.js"></script> + <link rel="stylesheet" href="/assets/index.139af8e4.css"> </head> <body> <div data-ea-publisher="misode-github-io" data-ea-manual="true" id="ad-placeholder"></div> diff --git a/guides/index.html b/guides/index.html index 1f5c259a..75fd2fb6 100644 --- a/guides/index.html +++ b/guides/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.41a3dfd7.js"></script> - <link rel="stylesheet" href="/assets/index.c53548d8.css"> + <script type="module" crossorigin src="/assets/index.d528c217.js"></script> + <link rel="stylesheet" href="/assets/index.139af8e4.css"> </head> <body> <div data-ea-publisher="misode-github-io" data-ea-manual="true" id="ad-placeholder"></div> diff --git a/guides/noise-router/index.html b/guides/noise-router/index.html index 216d2049..b7f3fec9 100644 --- a/guides/noise-router/index.html +++ b/guides/noise-router/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.41a3dfd7.js"></script> - <link rel="stylesheet" href="/assets/index.c53548d8.css"> + <script type="module" crossorigin src="/assets/index.d528c217.js"></script> + <link rel="stylesheet" href="/assets/index.139af8e4.css"> </head> <body> <div data-ea-publisher="misode-github-io" data-ea-manual="true" id="ad-placeholder"></div> diff --git a/guides/placed-features/index.html b/guides/placed-features/index.html index 4d086c80..ea560b4d 100644 --- a/guides/placed-features/index.html +++ b/guides/placed-features/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.41a3dfd7.js"></script> - <link rel="stylesheet" href="/assets/index.c53548d8.css"> + <script type="module" crossorigin src="/assets/index.d528c217.js"></script> + <link rel="stylesheet" href="/assets/index.139af8e4.css"> </head> <body> <div data-ea-publisher="misode-github-io" data-ea-manual="true" id="ad-placeholder"></div> diff --git a/images/container.png b/images/container.png new file mode 100644 index 0000000000000000000000000000000000000000..8a33932a0f2aa539799223d28a06709fb791795c GIT binary patch literal 417 zcmeAS@N?(olHy`uVBq!ia0vp^8-O^FgBeJ=7T)m&QjEnx?oJHr&dIz4a#+$GeH|GX zHuiJ>Nn{1`MFV_7T!Hle|NoC2I~E!mYHn`c-Q5ioN!>hM8c4C11o;I6Wr2V}%A45@ zD8yOd5n0T@z;_sg8IR|$NC8^H<muuVlHvSz_Cc;@0|C~>*Z%xhzrIJ$_vYjd=h%v3 z&l#6Dd`w`8e!rIQ?~1p%E1Qo={}x(vyvF@QRBNvFyl$txe8&n6dYdz4d>$uAv0t{B zv8?EW_U7YOKR2H|Se;Zkt8fEDZ!>F#jE=+O1V$-#?h6(X4aW{LnOtrDe%}12{JgZF zf<4#$5A1ecGdWm|{rHpp4eixup=$WV7NBUK_3Gdq--mjWn;!42W4b4sG<S}XrG?sm zR+~H7AS2P0gKP`of0oBpK2s!ynf-DI_dU0Q{AAt3KOV0>x{v92&2jy#(ieYu9ey6T VxBmHT6<`oCc)I$ztaD0e0suwdrPTlc literal 0 HcmV?d00001 diff --git a/images/glint.png b/images/glint.png new file mode 100644 index 0000000000000000000000000000000000000000..0a495e1d8976764b47e00f63d43dc3565ef1637d GIT binary patch literal 24860 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 literal 0 HcmV?d00001 diff --git a/images/tooltip.png b/images/tooltip.png new file mode 100644 index 0000000000000000000000000000000000000000..64e04d067e2d1eba727f34801f337f0e4428cbb2 GIT binary patch literal 158 zcmeAS@N?(olHy`uVBq!ia0vp^tRT$61|)m))t&+=#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lf>d%ActjR6Fz_7&Va6R3v)=**jXhl)LnOkJQy7@y)c%PpNU_-c|E+P5LukT} x_spV62^9x-v^H{{Vk=Hy(Cb(u)jd;Ql|eI;pKpb)Vhm6_gQu&X%Q~loCIDZyDhmJr literal 0 HcmV?d00001 diff --git a/index.html b/index.html index d04b8e2e..1a5609e8 100644 --- a/index.html +++ b/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.41a3dfd7.js"></script> - <link rel="stylesheet" href="/assets/index.c53548d8.css"> + <script type="module" crossorigin src="/assets/index.d528c217.js"></script> + <link rel="stylesheet" href="/assets/index.139af8e4.css"> </head> <body> <div data-ea-publisher="misode-github-io" data-ea-manual="true" id="ad-placeholder"></div> diff --git a/item-modifier/index.html b/item-modifier/index.html index 816ca070..be62fa19 100644 --- a/item-modifier/index.html +++ b/item-modifier/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.41a3dfd7.js"></script> - <link rel="stylesheet" href="/assets/index.c53548d8.css"> + <script type="module" crossorigin src="/assets/index.d528c217.js"></script> + <link rel="stylesheet" href="/assets/index.139af8e4.css"> </head> <body> <div data-ea-publisher="misode-github-io" data-ea-manual="true" id="ad-placeholder"></div> diff --git a/loot-table/index.html b/loot-table/index.html index d0ad8031..570eda17 100644 --- a/loot-table/index.html +++ b/loot-table/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.41a3dfd7.js"></script> - <link rel="stylesheet" href="/assets/index.c53548d8.css"> + <script type="module" crossorigin src="/assets/index.d528c217.js"></script> + <link rel="stylesheet" href="/assets/index.139af8e4.css"> </head> <body> <div data-ea-publisher="misode-github-io" data-ea-manual="true" id="ad-placeholder"></div> diff --git a/pack-mcmeta/index.html b/pack-mcmeta/index.html index 6e682d2c..0739f180 100644 --- a/pack-mcmeta/index.html +++ b/pack-mcmeta/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.41a3dfd7.js"></script> - <link rel="stylesheet" href="/assets/index.c53548d8.css"> + <script type="module" crossorigin src="/assets/index.d528c217.js"></script> + <link rel="stylesheet" href="/assets/index.139af8e4.css"> </head> <body> <div data-ea-publisher="misode-github-io" data-ea-manual="true" id="ad-placeholder"></div> diff --git a/partners/immersive-weathering/block-growth/index.html b/partners/immersive-weathering/block-growth/index.html index d6e7ef51..2ff279fb 100644 --- a/partners/immersive-weathering/block-growth/index.html +++ b/partners/immersive-weathering/block-growth/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.41a3dfd7.js"></script> - <link rel="stylesheet" href="/assets/index.c53548d8.css"> + <script type="module" crossorigin src="/assets/index.d528c217.js"></script> + <link rel="stylesheet" href="/assets/index.139af8e4.css"> </head> <body> <div data-ea-publisher="misode-github-io" data-ea-manual="true" id="ad-placeholder"></div> diff --git a/predicate/index.html b/predicate/index.html index 08421d60..399e2242 100644 --- a/predicate/index.html +++ b/predicate/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.41a3dfd7.js"></script> - <link rel="stylesheet" href="/assets/index.c53548d8.css"> + <script type="module" crossorigin src="/assets/index.d528c217.js"></script> + <link rel="stylesheet" href="/assets/index.139af8e4.css"> </head> <body> <div data-ea-publisher="misode-github-io" data-ea-manual="true" id="ad-placeholder"></div> diff --git a/recipe/index.html b/recipe/index.html index 50cd400a..7a18012e 100644 --- a/recipe/index.html +++ b/recipe/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.41a3dfd7.js"></script> - <link rel="stylesheet" href="/assets/index.c53548d8.css"> + <script type="module" crossorigin src="/assets/index.d528c217.js"></script> + <link rel="stylesheet" href="/assets/index.139af8e4.css"> </head> <body> <div data-ea-publisher="misode-github-io" data-ea-manual="true" id="ad-placeholder"></div> diff --git a/sounds/index.html b/sounds/index.html index 6a267179..9804e4bb 100644 --- a/sounds/index.html +++ b/sounds/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.41a3dfd7.js"></script> - <link rel="stylesheet" href="/assets/index.c53548d8.css"> + <script type="module" crossorigin src="/assets/index.d528c217.js"></script> + <link rel="stylesheet" href="/assets/index.139af8e4.css"> </head> <body> <div data-ea-publisher="misode-github-io" data-ea-manual="true" id="ad-placeholder"></div> diff --git a/tags/biome/index.html b/tags/biome/index.html index 6d27e216..35f3fe42 100644 --- a/tags/biome/index.html +++ b/tags/biome/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.41a3dfd7.js"></script> - <link rel="stylesheet" href="/assets/index.c53548d8.css"> + <script type="module" crossorigin src="/assets/index.d528c217.js"></script> + <link rel="stylesheet" href="/assets/index.139af8e4.css"> </head> <body> <div data-ea-publisher="misode-github-io" data-ea-manual="true" id="ad-placeholder"></div> diff --git a/tags/block/index.html b/tags/block/index.html index f1378a2c..ffa17a36 100644 --- a/tags/block/index.html +++ b/tags/block/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.41a3dfd7.js"></script> - <link rel="stylesheet" href="/assets/index.c53548d8.css"> + <script type="module" crossorigin src="/assets/index.d528c217.js"></script> + <link rel="stylesheet" href="/assets/index.139af8e4.css"> </head> <body> <div data-ea-publisher="misode-github-io" data-ea-manual="true" id="ad-placeholder"></div> diff --git a/tags/entity-type/index.html b/tags/entity-type/index.html index 68043dea..ca2d2af3 100644 --- a/tags/entity-type/index.html +++ b/tags/entity-type/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.41a3dfd7.js"></script> - <link rel="stylesheet" href="/assets/index.c53548d8.css"> + <script type="module" crossorigin src="/assets/index.d528c217.js"></script> + <link rel="stylesheet" href="/assets/index.139af8e4.css"> </head> <body> <div data-ea-publisher="misode-github-io" data-ea-manual="true" id="ad-placeholder"></div> diff --git a/tags/fluid/index.html b/tags/fluid/index.html index d8f52563..95fd827c 100644 --- a/tags/fluid/index.html +++ b/tags/fluid/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.41a3dfd7.js"></script> - <link rel="stylesheet" href="/assets/index.c53548d8.css"> + <script type="module" crossorigin src="/assets/index.d528c217.js"></script> + <link rel="stylesheet" href="/assets/index.139af8e4.css"> </head> <body> <div data-ea-publisher="misode-github-io" data-ea-manual="true" id="ad-placeholder"></div> diff --git a/tags/game-event/index.html b/tags/game-event/index.html index 9ead93dc..91d17e49 100644 --- a/tags/game-event/index.html +++ b/tags/game-event/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.41a3dfd7.js"></script> - <link rel="stylesheet" href="/assets/index.c53548d8.css"> + <script type="module" crossorigin src="/assets/index.d528c217.js"></script> + <link rel="stylesheet" href="/assets/index.139af8e4.css"> </head> <body> <div data-ea-publisher="misode-github-io" data-ea-manual="true" id="ad-placeholder"></div> diff --git a/tags/item/index.html b/tags/item/index.html index 974dd77f..aae9bf94 100644 --- a/tags/item/index.html +++ b/tags/item/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.41a3dfd7.js"></script> - <link rel="stylesheet" href="/assets/index.c53548d8.css"> + <script type="module" crossorigin src="/assets/index.d528c217.js"></script> + <link rel="stylesheet" href="/assets/index.139af8e4.css"> </head> <body> <div data-ea-publisher="misode-github-io" data-ea-manual="true" id="ad-placeholder"></div> diff --git a/text-component/index.html b/text-component/index.html index 8765a767..947fb677 100644 --- a/text-component/index.html +++ b/text-component/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.41a3dfd7.js"></script> - <link rel="stylesheet" href="/assets/index.c53548d8.css"> + <script type="module" crossorigin src="/assets/index.d528c217.js"></script> + <link rel="stylesheet" href="/assets/index.139af8e4.css"> </head> <body> <div data-ea-publisher="misode-github-io" data-ea-manual="true" id="ad-placeholder"></div> diff --git a/versions/index.html b/versions/index.html index 8e5c8aa5..94482db9 100644 --- a/versions/index.html +++ b/versions/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.41a3dfd7.js"></script> - <link rel="stylesheet" href="/assets/index.c53548d8.css"> + <script type="module" crossorigin src="/assets/index.d528c217.js"></script> + <link rel="stylesheet" href="/assets/index.139af8e4.css"> </head> <body> <div data-ea-publisher="misode-github-io" data-ea-manual="true" id="ad-placeholder"></div> diff --git a/world/index.html b/world/index.html index 2284ba62..758d82da 100644 --- a/world/index.html +++ b/world/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.41a3dfd7.js"></script> - <link rel="stylesheet" href="/assets/index.c53548d8.css"> + <script type="module" crossorigin src="/assets/index.d528c217.js"></script> + <link rel="stylesheet" href="/assets/index.139af8e4.css"> </head> <body> <div data-ea-publisher="misode-github-io" data-ea-manual="true" id="ad-placeholder"></div> diff --git a/worldgen/biome/index.html b/worldgen/biome/index.html index 735e7988..42c15cd3 100644 --- a/worldgen/biome/index.html +++ b/worldgen/biome/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.41a3dfd7.js"></script> - <link rel="stylesheet" href="/assets/index.c53548d8.css"> + <script type="module" crossorigin src="/assets/index.d528c217.js"></script> + <link rel="stylesheet" href="/assets/index.139af8e4.css"> </head> <body> <div data-ea-publisher="misode-github-io" data-ea-manual="true" id="ad-placeholder"></div> diff --git a/worldgen/carver/index.html b/worldgen/carver/index.html index d53f097f..52022c28 100644 --- a/worldgen/carver/index.html +++ b/worldgen/carver/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.41a3dfd7.js"></script> - <link rel="stylesheet" href="/assets/index.c53548d8.css"> + <script type="module" crossorigin src="/assets/index.d528c217.js"></script> + <link rel="stylesheet" href="/assets/index.139af8e4.css"> </head> <body> <div data-ea-publisher="misode-github-io" data-ea-manual="true" id="ad-placeholder"></div> diff --git a/worldgen/density-function/index.html b/worldgen/density-function/index.html index f44eaed7..53284909 100644 --- a/worldgen/density-function/index.html +++ b/worldgen/density-function/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.41a3dfd7.js"></script> - <link rel="stylesheet" href="/assets/index.c53548d8.css"> + <script type="module" crossorigin src="/assets/index.d528c217.js"></script> + <link rel="stylesheet" href="/assets/index.139af8e4.css"> </head> <body> <div data-ea-publisher="misode-github-io" data-ea-manual="true" id="ad-placeholder"></div> diff --git a/worldgen/feature/index.html b/worldgen/feature/index.html index 70a8c23d..99437012 100644 --- a/worldgen/feature/index.html +++ b/worldgen/feature/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.41a3dfd7.js"></script> - <link rel="stylesheet" href="/assets/index.c53548d8.css"> + <script type="module" crossorigin src="/assets/index.d528c217.js"></script> + <link rel="stylesheet" href="/assets/index.139af8e4.css"> </head> <body> <div data-ea-publisher="misode-github-io" data-ea-manual="true" id="ad-placeholder"></div> diff --git a/worldgen/flat-world-preset/index.html b/worldgen/flat-world-preset/index.html index 95c29120..c081a16f 100644 --- a/worldgen/flat-world-preset/index.html +++ b/worldgen/flat-world-preset/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.41a3dfd7.js"></script> - <link rel="stylesheet" href="/assets/index.c53548d8.css"> + <script type="module" crossorigin src="/assets/index.d528c217.js"></script> + <link rel="stylesheet" href="/assets/index.139af8e4.css"> </head> <body> <div data-ea-publisher="misode-github-io" data-ea-manual="true" id="ad-placeholder"></div> diff --git a/worldgen/index.html b/worldgen/index.html index 9ef34347..39992756 100644 --- a/worldgen/index.html +++ b/worldgen/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.41a3dfd7.js"></script> - <link rel="stylesheet" href="/assets/index.c53548d8.css"> + <script type="module" crossorigin src="/assets/index.d528c217.js"></script> + <link rel="stylesheet" href="/assets/index.139af8e4.css"> </head> <body> <div data-ea-publisher="misode-github-io" data-ea-manual="true" id="ad-placeholder"></div> diff --git a/worldgen/noise-settings/index.html b/worldgen/noise-settings/index.html index 578d3bc0..e816f6f4 100644 --- a/worldgen/noise-settings/index.html +++ b/worldgen/noise-settings/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.41a3dfd7.js"></script> - <link rel="stylesheet" href="/assets/index.c53548d8.css"> + <script type="module" crossorigin src="/assets/index.d528c217.js"></script> + <link rel="stylesheet" href="/assets/index.139af8e4.css"> </head> <body> <div data-ea-publisher="misode-github-io" data-ea-manual="true" id="ad-placeholder"></div> diff --git a/worldgen/noise/index.html b/worldgen/noise/index.html index 8bcfed26..eccb9948 100644 --- a/worldgen/noise/index.html +++ b/worldgen/noise/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.41a3dfd7.js"></script> - <link rel="stylesheet" href="/assets/index.c53548d8.css"> + <script type="module" crossorigin src="/assets/index.d528c217.js"></script> + <link rel="stylesheet" href="/assets/index.139af8e4.css"> </head> <body> <div data-ea-publisher="misode-github-io" data-ea-manual="true" id="ad-placeholder"></div> diff --git a/worldgen/placed-feature/index.html b/worldgen/placed-feature/index.html index bafa1972..a3e87bdf 100644 --- a/worldgen/placed-feature/index.html +++ b/worldgen/placed-feature/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.41a3dfd7.js"></script> - <link rel="stylesheet" href="/assets/index.c53548d8.css"> + <script type="module" crossorigin src="/assets/index.d528c217.js"></script> + <link rel="stylesheet" href="/assets/index.139af8e4.css"> </head> <body> <div data-ea-publisher="misode-github-io" data-ea-manual="true" id="ad-placeholder"></div> diff --git a/worldgen/processor-list/index.html b/worldgen/processor-list/index.html index a10772e9..ac10b3f8 100644 --- a/worldgen/processor-list/index.html +++ b/worldgen/processor-list/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.41a3dfd7.js"></script> - <link rel="stylesheet" href="/assets/index.c53548d8.css"> + <script type="module" crossorigin src="/assets/index.d528c217.js"></script> + <link rel="stylesheet" href="/assets/index.139af8e4.css"> </head> <body> <div data-ea-publisher="misode-github-io" data-ea-manual="true" id="ad-placeholder"></div> diff --git a/worldgen/structure-feature/index.html b/worldgen/structure-feature/index.html index 470a1dcd..c2b64dc6 100644 --- a/worldgen/structure-feature/index.html +++ b/worldgen/structure-feature/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.41a3dfd7.js"></script> - <link rel="stylesheet" href="/assets/index.c53548d8.css"> + <script type="module" crossorigin src="/assets/index.d528c217.js"></script> + <link rel="stylesheet" href="/assets/index.139af8e4.css"> </head> <body> <div data-ea-publisher="misode-github-io" data-ea-manual="true" id="ad-placeholder"></div> diff --git a/worldgen/structure-set/index.html b/worldgen/structure-set/index.html index c3df2976..4a592c9a 100644 --- a/worldgen/structure-set/index.html +++ b/worldgen/structure-set/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.41a3dfd7.js"></script> - <link rel="stylesheet" href="/assets/index.c53548d8.css"> + <script type="module" crossorigin src="/assets/index.d528c217.js"></script> + <link rel="stylesheet" href="/assets/index.139af8e4.css"> </head> <body> <div data-ea-publisher="misode-github-io" data-ea-manual="true" id="ad-placeholder"></div> diff --git a/worldgen/structure/index.html b/worldgen/structure/index.html index e07de10f..bcc60f45 100644 --- a/worldgen/structure/index.html +++ b/worldgen/structure/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.41a3dfd7.js"></script> - <link rel="stylesheet" href="/assets/index.c53548d8.css"> + <script type="module" crossorigin src="/assets/index.d528c217.js"></script> + <link rel="stylesheet" href="/assets/index.139af8e4.css"> </head> <body> <div data-ea-publisher="misode-github-io" data-ea-manual="true" id="ad-placeholder"></div> diff --git a/worldgen/surface-builder/index.html b/worldgen/surface-builder/index.html index 7bd009c1..fcfe8c68 100644 --- a/worldgen/surface-builder/index.html +++ b/worldgen/surface-builder/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.41a3dfd7.js"></script> - <link rel="stylesheet" href="/assets/index.c53548d8.css"> + <script type="module" crossorigin src="/assets/index.d528c217.js"></script> + <link rel="stylesheet" href="/assets/index.139af8e4.css"> </head> <body> <div data-ea-publisher="misode-github-io" data-ea-manual="true" id="ad-placeholder"></div> diff --git a/worldgen/template-pool/index.html b/worldgen/template-pool/index.html index 5ed2dcd5..1c52494e 100644 --- a/worldgen/template-pool/index.html +++ b/worldgen/template-pool/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.41a3dfd7.js"></script> - <link rel="stylesheet" href="/assets/index.c53548d8.css"> + <script type="module" crossorigin src="/assets/index.d528c217.js"></script> + <link rel="stylesheet" href="/assets/index.139af8e4.css"> </head> <body> <div data-ea-publisher="misode-github-io" data-ea-manual="true" id="ad-placeholder"></div> diff --git a/worldgen/world-preset/index.html b/worldgen/world-preset/index.html index e4671145..10af6e7a 100644 --- a/worldgen/world-preset/index.html +++ b/worldgen/world-preset/index.html @@ -43,8 +43,8 @@ BigInt64Array = function() { } } </script> - <script type="module" crossorigin src="/assets/index.41a3dfd7.js"></script> - <link rel="stylesheet" href="/assets/index.c53548d8.css"> + <script type="module" crossorigin src="/assets/index.d528c217.js"></script> + <link rel="stylesheet" href="/assets/index.139af8e4.css"> </head> <body> <div data-ea-publisher="misode-github-io" data-ea-manual="true" id="ad-placeholder"></div>