@omnimedia/omnitool 1.1.0-3 → 1.1.0-4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/package.json +10 -9
  2. package/s/context.ts +1 -1
  3. package/s/demo/demo.bundle.ts +6 -2
  4. package/s/demo/routines/filmstrip-test.ts +2 -2
  5. package/s/demo/routines/transcriber-test.ts +34 -0
  6. package/s/driver/fns/host.ts +7 -6
  7. package/s/driver/fns/schematic.ts +1 -1
  8. package/s/driver/fns/work.ts +116 -119
  9. package/s/driver/utils/load-decoder-source.ts +3 -4
  10. package/s/features/speech/transcribe/default-spec.ts +11 -0
  11. package/s/features/speech/transcribe/parts/load-pipe.ts +19 -0
  12. package/s/features/speech/transcribe/parts/prep-audio.ts +23 -0
  13. package/s/features/speech/transcribe/parts/transcribe.ts +70 -0
  14. package/s/features/speech/transcribe/transcriber.ts +46 -0
  15. package/s/features/speech/transcribe/types.ts +82 -0
  16. package/s/features/speech/transcribe/worker.bundle.ts +40 -0
  17. package/s/timeline/utils/checksum.ts +2 -1
  18. package/s/tools/common/loader.ts +26 -0
  19. package/s/tools/common/transformer-pipeline.ts +26 -0
  20. package/s/tools/speech-recognition/common/model.ts +26 -0
  21. package/s/tools/speech-recognition/whisper/fns/host.ts +25 -0
  22. package/s/tools/speech-recognition/whisper/fns/schematic.ts +23 -0
  23. package/s/tools/speech-recognition/whisper/fns/work.ts +91 -0
  24. package/s/tools/speech-recognition/whisper/parts/types.ts +38 -0
  25. package/s/tools/speech-recognition/whisper/parts/worker.bundle.ts +7 -0
  26. package/s/tools/speech-recognition/whisper/tool.ts +70 -0
  27. package/x/context.js +1 -1
  28. package/x/context.js.map +1 -1
  29. package/x/demo/demo.bundle.js +6 -2
  30. package/x/demo/demo.bundle.js.map +1 -1
  31. package/x/demo/demo.bundle.min.js +6 -6
  32. package/x/demo/demo.bundle.min.js.map +4 -4
  33. package/x/demo/routines/filmstrip-test.d.ts +1 -1
  34. package/x/demo/routines/filmstrip-test.js +2 -2
  35. package/x/demo/routines/filmstrip-test.js.map +1 -1
  36. package/x/demo/routines/transcriber-test.d.ts +4 -0
  37. package/x/demo/routines/transcriber-test.js +33 -0
  38. package/x/demo/routines/transcriber-test.js.map +1 -0
  39. package/x/driver/driver.worker.bundle.min.js +80 -80
  40. package/x/driver/driver.worker.bundle.min.js.map +4 -4
  41. package/x/driver/fns/host.js +3 -3
  42. package/x/driver/fns/host.js.map +1 -1
  43. package/x/driver/fns/schematic.d.ts +1 -1
  44. package/x/driver/fns/work.js +8 -8
  45. package/x/driver/fns/work.js.map +1 -1
  46. package/x/driver/utils/load-decoder-source.d.ts +2 -1
  47. package/x/driver/utils/load-decoder-source.js +2 -3
  48. package/x/driver/utils/load-decoder-source.js.map +1 -1
  49. package/x/features/speech/transcribe/default-spec.d.ts +2 -0
  50. package/x/features/speech/transcribe/default-spec.js +8 -0
  51. package/x/features/speech/transcribe/default-spec.js.map +1 -0
  52. package/x/features/speech/transcribe/parts/load-pipe.d.ts +2 -0
  53. package/x/features/speech/transcribe/parts/load-pipe.js +13 -0
  54. package/x/features/speech/transcribe/parts/load-pipe.js.map +1 -0
  55. package/x/features/speech/transcribe/parts/prep-audio.d.ts +5 -0
  56. package/x/features/speech/transcribe/parts/prep-audio.js +21 -0
  57. package/x/features/speech/transcribe/parts/prep-audio.js.map +1 -0
  58. package/x/features/speech/transcribe/parts/transcribe.d.ts +5 -0
  59. package/x/features/speech/transcribe/parts/transcribe.js +56 -0
  60. package/x/features/speech/transcribe/parts/transcribe.js.map +1 -0
  61. package/x/features/speech/transcribe/transcriber.d.ts +5 -0
  62. package/x/features/speech/transcribe/transcriber.js +33 -0
  63. package/x/features/speech/transcribe/transcriber.js.map +1 -0
  64. package/x/features/speech/transcribe/types.d.ts +66 -0
  65. package/x/features/speech/transcribe/types.js +2 -0
  66. package/x/features/speech/transcribe/types.js.map +1 -0
  67. package/x/features/speech/transcribe/worker.bundle.d.ts +1 -0
  68. package/x/features/speech/transcribe/worker.bundle.js +33 -0
  69. package/x/features/speech/transcribe/worker.bundle.js.map +1 -0
  70. package/x/features/speech/transcribe/worker.bundle.min.js +2916 -0
  71. package/x/features/speech/transcribe/worker.bundle.min.js.map +7 -0
  72. package/x/index.html +2 -2
  73. package/x/timeline/utils/checksum.js +2 -1
  74. package/x/timeline/utils/checksum.js.map +1 -1
  75. package/x/tools/common/loader.d.ts +19 -0
  76. package/x/tools/common/loader.js +18 -0
  77. package/x/tools/common/loader.js.map +1 -0
  78. package/x/tools/common/transformer-pipeline.d.ts +8 -0
  79. package/x/tools/common/transformer-pipeline.js +24 -0
  80. package/x/tools/common/transformer-pipeline.js.map +1 -0
  81. package/x/tools/speech-recognition/common/model.d.ts +14 -0
  82. package/x/tools/speech-recognition/common/model.js +16 -0
  83. package/x/tools/speech-recognition/common/model.js.map +1 -0
  84. package/x/tools/speech-recognition/whisper/fns/host.d.ts +13 -0
  85. package/x/tools/speech-recognition/whisper/fns/host.js +19 -0
  86. package/x/tools/speech-recognition/whisper/fns/host.js.map +1 -0
  87. package/x/tools/speech-recognition/whisper/fns/schematic.d.ts +19 -0
  88. package/x/tools/speech-recognition/whisper/fns/schematic.js +2 -0
  89. package/x/tools/speech-recognition/whisper/fns/schematic.js.map +1 -0
  90. package/x/tools/speech-recognition/whisper/fns/work.d.ts +12 -0
  91. package/x/tools/speech-recognition/whisper/fns/work.js +74 -0
  92. package/x/tools/speech-recognition/whisper/fns/work.js.map +1 -0
  93. package/x/tools/speech-recognition/whisper/parts/types.d.ts +31 -0
  94. package/x/tools/speech-recognition/whisper/parts/types.js +2 -0
  95. package/x/tools/speech-recognition/whisper/parts/types.js.map +1 -0
  96. package/x/tools/speech-recognition/whisper/parts/worker.bundle.d.ts +1 -0
  97. package/x/tools/speech-recognition/whisper/parts/worker.bundle.js +4 -0
  98. package/x/tools/speech-recognition/whisper/parts/worker.bundle.js.map +1 -0
  99. package/x/tools/speech-recognition/whisper/parts/worker.bundle.min.js +8 -0
  100. package/x/tools/speech-recognition/whisper/parts/worker.bundle.min.js.map +7 -0
  101. package/x/tools/speech-recognition/whisper/tool.d.ts +12 -0
  102. package/x/tools/speech-recognition/whisper/tool.js +63 -0
  103. package/x/tools/speech-recognition/whisper/tool.js.map +1 -0
@@ -1,9 +1,9 @@
1
- var VE=Object.create;var vh=Object.defineProperty;var HE=Object.getOwnPropertyDescriptor;var WE=Object.getOwnPropertyNames;var $E=Object.getPrototypeOf,qE=Object.prototype.hasOwnProperty;var p=(r,e)=>()=>(r&&(e=r(r=0)),e);var Fr=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),Tg=(r,e)=>{for(var t in e)vh(r,t,{get:e[t],enumerable:!0})},jE=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of WE(e))!qE.call(r,s)&&s!==t&&vh(r,s,{get:()=>e[s],enumerable:!(i=HE(e,s))||i.enumerable});return r};var Ch=(r,e,t)=>(t=r!=null?VE($E(r)):{},jE(e||!r||!r.__esModule?vh(t,"default",{value:r,enumerable:!0}):t,r));var b,Td,mu,O,B=p(()=>{"use strict";b=(r=>(r.Application="application",r.WebGLPipes="webgl-pipes",r.WebGLPipesAdaptor="webgl-pipes-adaptor",r.WebGLSystem="webgl-system",r.WebGPUPipes="webgpu-pipes",r.WebGPUPipesAdaptor="webgpu-pipes-adaptor",r.WebGPUSystem="webgpu-system",r.CanvasSystem="canvas-system",r.CanvasPipesAdaptor="canvas-pipes-adaptor",r.CanvasPipes="canvas-pipes",r.Asset="asset",r.LoadParser="load-parser",r.ResolveParser="resolve-parser",r.CacheParser="cache-parser",r.DetectionParser="detection-parser",r.MaskEffect="mask-effect",r.BlendMode="blend-mode",r.TextureSource="texture-source",r.Environment="environment",r.ShapeBuilder="shape-builder",r.Batcher="batcher",r))(b||{}),Td=r=>{if(typeof r=="function"||typeof r=="object"&&r.extension){if(!r.extension)throw new Error("Extension class must have an extension object");r={...typeof r.extension!="object"?{type:r.extension}:r.extension,ref:r}}if(typeof r=="object")r={...r};else throw new Error("Invalid extension type");return typeof r.type=="string"&&(r.type=[r.type]),r},mu=(r,e)=>Td(r).priority??e,O={_addHandlers:{},_removeHandlers:{},_queue:{},remove(...r){return r.map(Td).forEach(e=>{e.type.forEach(t=>this._removeHandlers[t]?.(e))}),this},add(...r){return r.map(Td).forEach(e=>{e.type.forEach(t=>{let i=this._addHandlers,s=this._queue;i[t]?i[t]?.(e):(s[t]=s[t]||[],s[t]?.push(e))})}),this},handle(r,e,t){let i=this._addHandlers,s=this._removeHandlers;if(i[r]||s[r])throw new Error(`Extension type ${r} already has a handler`);i[r]=e,s[r]=t;let n=this._queue;return n[r]&&(n[r]?.forEach(o=>e(o)),delete n[r]),this},handleByMap(r,e){return this.handle(r,t=>{t.name&&(e[t.name]=t.ref)},t=>{t.name&&delete e[t.name]})},handleByNamedList(r,e,t=-1){return this.handle(r,i=>{e.findIndex(n=>n.name===i.name)>=0||(e.push({name:i.name,value:i.ref}),e.sort((n,o)=>mu(o.value,t)-mu(n.value,t)))},i=>{let s=e.findIndex(n=>n.name===i.name);s!==-1&&e.splice(s,1)})},handleByList(r,e,t=-1){return this.handle(r,i=>{e.includes(i.ref)||(e.push(i.ref),e.sort((s,n)=>mu(n,t)-mu(s,t)))},i=>{let s=e.indexOf(i.ref);s!==-1&&e.splice(s,1)})},mixin(r,...e){for(let t of e)Object.defineProperties(r.prototype,Object.getOwnPropertyDescriptors(t))}}});var m0=Fr((T8,wd)=>{"use strict";var zA=Object.prototype.hasOwnProperty,Je="~";function oo(){}Object.create&&(oo.prototype=Object.create(null),new oo().__proto__||(Je=!1));function VA(r,e,t){this.fn=r,this.context=e,this.once=t||!1}function f0(r,e,t,i,s){if(typeof t!="function")throw new TypeError("The listener must be a function");var n=new VA(t,i||r,s),o=Je?Je+e:e;return r._events[o]?r._events[o].fn?r._events[o]=[r._events[o],n]:r._events[o].push(n):(r._events[o]=n,r._eventsCount++),r}function pu(r,e){--r._eventsCount===0?r._events=new oo:delete r._events[e]}function qe(){this._events=new oo,this._eventsCount=0}qe.prototype.eventNames=function(){var e=[],t,i;if(this._eventsCount===0)return e;for(i in t=this._events)zA.call(t,i)&&e.push(Je?i.slice(1):i);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e};qe.prototype.listeners=function(e){var t=Je?Je+e:e,i=this._events[t];if(!i)return[];if(i.fn)return[i.fn];for(var s=0,n=i.length,o=new Array(n);s<n;s++)o[s]=i[s].fn;return o};qe.prototype.listenerCount=function(e){var t=Je?Je+e:e,i=this._events[t];return i?i.fn?1:i.length:0};qe.prototype.emit=function(e,t,i,s,n,o){var a=Je?Je+e:e;if(!this._events[a])return!1;var c=this._events[a],u=arguments.length,l,h;if(c.fn){switch(c.once&&this.removeListener(e,c.fn,void 0,!0),u){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,t),!0;case 3:return c.fn.call(c.context,t,i),!0;case 4:return c.fn.call(c.context,t,i,s),!0;case 5:return c.fn.call(c.context,t,i,s,n),!0;case 6:return c.fn.call(c.context,t,i,s,n,o),!0}for(h=1,l=new Array(u-1);h<u;h++)l[h-1]=arguments[h];c.fn.apply(c.context,l)}else{var f=c.length,d;for(h=0;h<f;h++)switch(c[h].once&&this.removeListener(e,c[h].fn,void 0,!0),u){case 1:c[h].fn.call(c[h].context);break;case 2:c[h].fn.call(c[h].context,t);break;case 3:c[h].fn.call(c[h].context,t,i);break;case 4:c[h].fn.call(c[h].context,t,i,s);break;default:if(!l)for(d=1,l=new Array(u-1);d<u;d++)l[d-1]=arguments[d];c[h].fn.apply(c[h].context,l)}}return!0};qe.prototype.on=function(e,t,i){return f0(this,e,t,i,!1)};qe.prototype.once=function(e,t,i){return f0(this,e,t,i,!0)};qe.prototype.removeListener=function(e,t,i,s){var n=Je?Je+e:e;if(!this._events[n])return this;if(!t)return pu(this,n),this;var o=this._events[n];if(o.fn)o.fn===t&&(!s||o.once)&&(!i||o.context===i)&&pu(this,n);else{for(var a=0,c=[],u=o.length;a<u;a++)(o[a].fn!==t||s&&!o[a].once||i&&o[a].context!==i)&&c.push(o[a]);c.length?this._events[n]=c.length===1?c[0]:c:pu(this,n)}return this};qe.prototype.removeAllListeners=function(e){var t;return e?(t=Je?Je+e:e,this._events[t]&&pu(this,t)):(this._events=new oo,this._eventsCount=0),this};qe.prototype.off=qe.prototype.removeListener;qe.prototype.addListener=qe.prototype.on;qe.prefixed=Je;qe.EventEmitter=qe;typeof wd<"u"&&(wd.exports=qe)});var p0,oe,Ve=p(()=>{p0=Ch(m0(),1),oe=p0.default});var HA,_r,Ue,kt,S0,g0,Sd,WA,gu,v0,C0,x0,_0,b0,ao,$A,qA,jA,XA,Ed,y0,YA,vd,Cd,T0,kd,It,w0,E0,k0=p(()=>{HA={grad:.9,turn:360,rad:360/(2*Math.PI)},_r=function(r){return typeof r=="string"?r.length>0:typeof r=="number"},Ue=function(r,e,t){return e===void 0&&(e=0),t===void 0&&(t=Math.pow(10,e)),Math.round(t*r)/t+0},kt=function(r,e,t){return e===void 0&&(e=0),t===void 0&&(t=1),r>t?t:r>e?r:e},S0=function(r){return(r=isFinite(r)?r%360:0)>0?r:r+360},g0=function(r){return{r:kt(r.r,0,255),g:kt(r.g,0,255),b:kt(r.b,0,255),a:kt(r.a)}},Sd=function(r){return{r:Ue(r.r),g:Ue(r.g),b:Ue(r.b),a:Ue(r.a,3)}},WA=/^#([0-9a-f]{3,8})$/i,gu=function(r){var e=r.toString(16);return e.length<2?"0"+e:e},v0=function(r){var e=r.r,t=r.g,i=r.b,s=r.a,n=Math.max(e,t,i),o=n-Math.min(e,t,i),a=o?n===e?(t-i)/o:n===t?2+(i-e)/o:4+(e-t)/o:0;return{h:60*(a<0?a+6:a),s:n?o/n*100:0,v:n/255*100,a:s}},C0=function(r){var e=r.h,t=r.s,i=r.v,s=r.a;e=e/360*6,t/=100,i/=100;var n=Math.floor(e),o=i*(1-t),a=i*(1-(e-n)*t),c=i*(1-(1-e+n)*t),u=n%6;return{r:255*[i,a,o,o,c,i][u],g:255*[c,i,i,a,o,o][u],b:255*[o,o,c,i,i,a][u],a:s}},x0=function(r){return{h:S0(r.h),s:kt(r.s,0,100),l:kt(r.l,0,100),a:kt(r.a)}},_0=function(r){return{h:Ue(r.h),s:Ue(r.s),l:Ue(r.l),a:Ue(r.a,3)}},b0=function(r){return C0((t=(e=r).s,{h:e.h,s:(t*=((i=e.l)<50?i:100-i)/100)>0?2*t/(i+t)*100:0,v:i+t,a:e.a}));var e,t,i},ao=function(r){return{h:(e=v0(r)).h,s:(s=(200-(t=e.s))*(i=e.v)/100)>0&&s<200?t*i/100/(s<=100?s:200-s)*100:0,l:s/2,a:e.a};var e,t,i,s},$A=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,qA=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,jA=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,XA=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Ed={string:[[function(r){var e=WA.exec(r);return e?(r=e[1]).length<=4?{r:parseInt(r[0]+r[0],16),g:parseInt(r[1]+r[1],16),b:parseInt(r[2]+r[2],16),a:r.length===4?Ue(parseInt(r[3]+r[3],16)/255,2):1}:r.length===6||r.length===8?{r:parseInt(r.substr(0,2),16),g:parseInt(r.substr(2,2),16),b:parseInt(r.substr(4,2),16),a:r.length===8?Ue(parseInt(r.substr(6,2),16)/255,2):1}:null:null},"hex"],[function(r){var e=jA.exec(r)||XA.exec(r);return e?e[2]!==e[4]||e[4]!==e[6]?null:g0({r:Number(e[1])/(e[2]?100/255:1),g:Number(e[3])/(e[4]?100/255:1),b:Number(e[5])/(e[6]?100/255:1),a:e[7]===void 0?1:Number(e[7])/(e[8]?100:1)}):null},"rgb"],[function(r){var e=$A.exec(r)||qA.exec(r);if(!e)return null;var t,i,s=x0({h:(t=e[1],i=e[2],i===void 0&&(i="deg"),Number(t)*(HA[i]||1)),s:Number(e[3]),l:Number(e[4]),a:e[5]===void 0?1:Number(e[5])/(e[6]?100:1)});return b0(s)},"hsl"]],object:[[function(r){var e=r.r,t=r.g,i=r.b,s=r.a,n=s===void 0?1:s;return _r(e)&&_r(t)&&_r(i)?g0({r:Number(e),g:Number(t),b:Number(i),a:Number(n)}):null},"rgb"],[function(r){var e=r.h,t=r.s,i=r.l,s=r.a,n=s===void 0?1:s;if(!_r(e)||!_r(t)||!_r(i))return null;var o=x0({h:Number(e),s:Number(t),l:Number(i),a:Number(n)});return b0(o)},"hsl"],[function(r){var e=r.h,t=r.s,i=r.v,s=r.a,n=s===void 0?1:s;if(!_r(e)||!_r(t)||!_r(i))return null;var o=function(a){return{h:S0(a.h),s:kt(a.s,0,100),v:kt(a.v,0,100),a:kt(a.a)}}({h:Number(e),s:Number(t),v:Number(i),a:Number(n)});return C0(o)},"hsv"]]},y0=function(r,e){for(var t=0;t<e.length;t++){var i=e[t][0](r);if(i)return[i,e[t][1]]}return[null,void 0]},YA=function(r){return typeof r=="string"?y0(r.trim(),Ed.string):typeof r=="object"&&r!==null?y0(r,Ed.object):[null,void 0]},vd=function(r,e){var t=ao(r);return{h:t.h,s:kt(t.s+100*e,0,100),l:t.l,a:t.a}},Cd=function(r){return(299*r.r+587*r.g+114*r.b)/1e3/255},T0=function(r,e){var t=ao(r);return{h:t.h,s:t.s,l:kt(t.l+100*e,0,100),a:t.a}},kd=function(){function r(e){this.parsed=YA(e)[0],this.rgba=this.parsed||{r:0,g:0,b:0,a:1}}return r.prototype.isValid=function(){return this.parsed!==null},r.prototype.brightness=function(){return Ue(Cd(this.rgba),2)},r.prototype.isDark=function(){return Cd(this.rgba)<.5},r.prototype.isLight=function(){return Cd(this.rgba)>=.5},r.prototype.toHex=function(){return e=Sd(this.rgba),t=e.r,i=e.g,s=e.b,o=(n=e.a)<1?gu(Ue(255*n)):"","#"+gu(t)+gu(i)+gu(s)+o;var e,t,i,s,n,o},r.prototype.toRgb=function(){return Sd(this.rgba)},r.prototype.toRgbString=function(){return e=Sd(this.rgba),t=e.r,i=e.g,s=e.b,(n=e.a)<1?"rgba("+t+", "+i+", "+s+", "+n+")":"rgb("+t+", "+i+", "+s+")";var e,t,i,s,n},r.prototype.toHsl=function(){return _0(ao(this.rgba))},r.prototype.toHslString=function(){return e=_0(ao(this.rgba)),t=e.h,i=e.s,s=e.l,(n=e.a)<1?"hsla("+t+", "+i+"%, "+s+"%, "+n+")":"hsl("+t+", "+i+"%, "+s+"%)";var e,t,i,s,n},r.prototype.toHsv=function(){return e=v0(this.rgba),{h:Ue(e.h),s:Ue(e.s),v:Ue(e.v),a:Ue(e.a,3)};var e},r.prototype.invert=function(){return It({r:255-(e=this.rgba).r,g:255-e.g,b:255-e.b,a:e.a});var e},r.prototype.saturate=function(e){return e===void 0&&(e=.1),It(vd(this.rgba,e))},r.prototype.desaturate=function(e){return e===void 0&&(e=.1),It(vd(this.rgba,-e))},r.prototype.grayscale=function(){return It(vd(this.rgba,-1))},r.prototype.lighten=function(e){return e===void 0&&(e=.1),It(T0(this.rgba,e))},r.prototype.darken=function(e){return e===void 0&&(e=.1),It(T0(this.rgba,-e))},r.prototype.rotate=function(e){return e===void 0&&(e=15),this.hue(this.hue()+e)},r.prototype.alpha=function(e){return typeof e=="number"?It({r:(t=this.rgba).r,g:t.g,b:t.b,a:e}):Ue(this.rgba.a,3);var t},r.prototype.hue=function(e){var t=ao(this.rgba);return typeof e=="number"?It({h:e,s:t.s,l:t.l,a:t.a}):Ue(t.h)},r.prototype.isEqual=function(e){return this.toHex()===It(e).toHex()},r}(),It=function(r){return r instanceof kd?r:new kd(r)},w0=[],E0=function(r){r.forEach(function(e){w0.indexOf(e)<0&&(e(kd,Ed),w0.push(e))})}});function A0(r,e){var t={white:"#ffffff",bisque:"#ffe4c4",blue:"#0000ff",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",antiquewhite:"#faebd7",aqua:"#00ffff",azure:"#f0ffff",whitesmoke:"#f5f5f5",papayawhip:"#ffefd5",plum:"#dda0dd",blanchedalmond:"#ffebcd",black:"#000000",gold:"#ffd700",goldenrod:"#daa520",gainsboro:"#dcdcdc",cornsilk:"#fff8dc",cornflowerblue:"#6495ed",burlywood:"#deb887",aquamarine:"#7fffd4",beige:"#f5f5dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkkhaki:"#bdb76b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",peachpuff:"#ffdab9",darkmagenta:"#8b008b",darkred:"#8b0000",darkorchid:"#9932cc",darkorange:"#ff8c00",darkslateblue:"#483d8b",gray:"#808080",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",deeppink:"#ff1493",deepskyblue:"#00bfff",wheat:"#f5deb3",firebrick:"#b22222",floralwhite:"#fffaf0",ghostwhite:"#f8f8ff",darkviolet:"#9400d3",magenta:"#ff00ff",green:"#008000",dodgerblue:"#1e90ff",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",blueviolet:"#8a2be2",forestgreen:"#228b22",lawngreen:"#7cfc00",indianred:"#cd5c5c",indigo:"#4b0082",fuchsia:"#ff00ff",brown:"#a52a2a",maroon:"#800000",mediumblue:"#0000cd",lightcoral:"#f08080",darkturquoise:"#00ced1",lightcyan:"#e0ffff",ivory:"#fffff0",lightyellow:"#ffffe0",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",linen:"#faf0e6",mediumaquamarine:"#66cdaa",lemonchiffon:"#fffacd",lime:"#00ff00",khaki:"#f0e68c",mediumseagreen:"#3cb371",limegreen:"#32cd32",mediumspringgreen:"#00fa9a",lightskyblue:"#87cefa",lightblue:"#add8e6",midnightblue:"#191970",lightpink:"#ffb6c1",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",mintcream:"#f5fffa",lightslategray:"#778899",lightslategrey:"#778899",navajowhite:"#ffdead",navy:"#000080",mediumvioletred:"#c71585",powderblue:"#b0e0e6",palegoldenrod:"#eee8aa",oldlace:"#fdf5e6",paleturquoise:"#afeeee",mediumturquoise:"#48d1cc",mediumorchid:"#ba55d3",rebeccapurple:"#663399",lightsteelblue:"#b0c4de",mediumslateblue:"#7b68ee",thistle:"#d8bfd8",tan:"#d2b48c",orchid:"#da70d6",mediumpurple:"#9370db",purple:"#800080",pink:"#ffc0cb",skyblue:"#87ceeb",springgreen:"#00ff7f",palegreen:"#98fb98",red:"#ff0000",yellow:"#ffff00",slateblue:"#6a5acd",lavenderblush:"#fff0f5",peru:"#cd853f",palevioletred:"#db7093",violet:"#ee82ee",teal:"#008080",slategray:"#708090",slategrey:"#708090",aliceblue:"#f0f8ff",darkseagreen:"#8fbc8f",darkolivegreen:"#556b2f",greenyellow:"#adff2f",seagreen:"#2e8b57",seashell:"#fff5ee",tomato:"#ff6347",silver:"#c0c0c0",sienna:"#a0522d",lavender:"#e6e6fa",lightgreen:"#90ee90",orange:"#ffa500",orangered:"#ff4500",steelblue:"#4682b4",royalblue:"#4169e1",turquoise:"#40e0d0",yellowgreen:"#9acd32",salmon:"#fa8072",saddlebrown:"#8b4513",sandybrown:"#f4a460",rosybrown:"#bc8f8f",darksalmon:"#e9967a",lightgoldenrodyellow:"#fafad2",snow:"#fffafa",lightgrey:"#d3d3d3",lightgray:"#d3d3d3",dimgray:"#696969",dimgrey:"#696969",olivedrab:"#6b8e23",olive:"#808000"},i={};for(var s in t)i[t[s]]=s;var n={};r.prototype.toName=function(o){if(!(this.rgba.a||this.rgba.r||this.rgba.g||this.rgba.b))return"transparent";var a,c,u=i[this.toHex()];if(u)return u;if(o?.closest){var l=this.toRgb(),h=1/0,f="black";if(!n.length)for(var d in t)n[d]=new r(t[d]).toRgb();for(var m in t){var x=(a=l,c=n[m],Math.pow(a.r-c.r,2)+Math.pow(a.g-c.g,2)+Math.pow(a.b-c.b,2));x<h&&(h=x,f=m)}return f}},e.string.push([function(o){var a=o.toLowerCase(),c=a==="transparent"?"#0000":t[a];return c?new r(c).toRgb():null},"name"])}var P0=p(()=>{});var Cs,q,He=p(()=>{k0();P0();E0([A0]);Cs=class co{constructor(e=16777215){this._value=null,this._components=new Float32Array(4),this._components.fill(1),this._int=16777215,this.value=e}get red(){return this._components[0]}get green(){return this._components[1]}get blue(){return this._components[2]}get alpha(){return this._components[3]}setValue(e){return this.value=e,this}set value(e){if(e instanceof co)this._value=this._cloneSource(e._value),this._int=e._int,this._components.set(e._components);else{if(e===null)throw new Error("Cannot set Color#value to null");(this._value===null||!this._isSourceEqual(this._value,e))&&(this._value=this._cloneSource(e),this._normalize(this._value))}}get value(){return this._value}_cloneSource(e){return typeof e=="string"||typeof e=="number"||e instanceof Number||e===null?e:Array.isArray(e)||ArrayBuffer.isView(e)?e.slice(0):typeof e=="object"&&e!==null?{...e}:e}_isSourceEqual(e,t){let i=typeof e;if(i!==typeof t)return!1;if(i==="number"||i==="string"||e instanceof Number)return e===t;if(Array.isArray(e)&&Array.isArray(t)||ArrayBuffer.isView(e)&&ArrayBuffer.isView(t))return e.length!==t.length?!1:e.every((n,o)=>n===t[o]);if(e!==null&&t!==null){let n=Object.keys(e),o=Object.keys(t);return n.length!==o.length?!1:n.every(a=>e[a]===t[a])}return e===t}toRgba(){let[e,t,i,s]=this._components;return{r:e,g:t,b:i,a:s}}toRgb(){let[e,t,i]=this._components;return{r:e,g:t,b:i}}toRgbaString(){let[e,t,i]=this.toUint8RgbArray();return`rgba(${e},${t},${i},${this.alpha})`}toUint8RgbArray(e){let[t,i,s]=this._components;return this._arrayRgb||(this._arrayRgb=[]),e||(e=this._arrayRgb),e[0]=Math.round(t*255),e[1]=Math.round(i*255),e[2]=Math.round(s*255),e}toArray(e){this._arrayRgba||(this._arrayRgba=[]),e||(e=this._arrayRgba);let[t,i,s,n]=this._components;return e[0]=t,e[1]=i,e[2]=s,e[3]=n,e}toRgbArray(e){this._arrayRgb||(this._arrayRgb=[]),e||(e=this._arrayRgb);let[t,i,s]=this._components;return e[0]=t,e[1]=i,e[2]=s,e}toNumber(){return this._int}toBgrNumber(){let[e,t,i]=this.toUint8RgbArray();return(i<<16)+(t<<8)+e}toLittleEndianNumber(){let e=this._int;return(e>>16)+(e&65280)+((e&255)<<16)}multiply(e){let[t,i,s,n]=co._temp.setValue(e)._components;return this._components[0]*=t,this._components[1]*=i,this._components[2]*=s,this._components[3]*=n,this._refreshInt(),this._value=null,this}premultiply(e,t=!0){return t&&(this._components[0]*=e,this._components[1]*=e,this._components[2]*=e),this._components[3]=e,this._refreshInt(),this._value=null,this}toPremultiplied(e,t=!0){if(e===1)return(255<<24)+this._int;if(e===0)return t?0:this._int;let i=this._int>>16&255,s=this._int>>8&255,n=this._int&255;return t&&(i=i*e+.5|0,s=s*e+.5|0,n=n*e+.5|0),(e*255<<24)+(i<<16)+(s<<8)+n}toHex(){let e=this._int.toString(16);return`#${"000000".substring(0,6-e.length)+e}`}toHexa(){let t=Math.round(this._components[3]*255).toString(16);return this.toHex()+"00".substring(0,2-t.length)+t}setAlpha(e){return this._components[3]=this._clamp(e),this}_normalize(e){let t,i,s,n;if((typeof e=="number"||e instanceof Number)&&e>=0&&e<=16777215){let o=e;t=(o>>16&255)/255,i=(o>>8&255)/255,s=(o&255)/255,n=1}else if((Array.isArray(e)||e instanceof Float32Array)&&e.length>=3&&e.length<=4)e=this._clamp(e),[t,i,s,n=1]=e;else if((e instanceof Uint8Array||e instanceof Uint8ClampedArray)&&e.length>=3&&e.length<=4)e=this._clamp(e,0,255),[t,i,s,n=255]=e,t/=255,i/=255,s/=255,n/=255;else if(typeof e=="string"||typeof e=="object"){if(typeof e=="string"){let a=co.HEX_PATTERN.exec(e);a&&(e=`#${a[2]}`)}let o=It(e);o.isValid()&&({r:t,g:i,b:s,a:n}=o.rgba,t/=255,i/=255,s/=255)}if(t!==void 0)this._components[0]=t,this._components[1]=i,this._components[2]=s,this._components[3]=n,this._refreshInt();else throw new Error(`Unable to convert color ${e}`)}_refreshInt(){this._clamp(this._components);let[e,t,i]=this._components;this._int=(e*255<<16)+(t*255<<8)+(i*255|0)}_clamp(e,t=0,i=1){return typeof e=="number"?Math.min(Math.max(e,t),i):(e.forEach((s,n)=>{e[n]=Math.min(Math.max(s,t),i)}),e)}static isColorLike(e){return typeof e=="number"||typeof e=="string"||e instanceof Number||e instanceof co||Array.isArray(e)||e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Float32Array||e.r!==void 0&&e.g!==void 0&&e.b!==void 0||e.r!==void 0&&e.g!==void 0&&e.b!==void 0&&e.a!==void 0||e.h!==void 0&&e.s!==void 0&&e.l!==void 0||e.h!==void 0&&e.s!==void 0&&e.l!==void 0&&e.a!==void 0||e.h!==void 0&&e.s!==void 0&&e.v!==void 0||e.h!==void 0&&e.s!==void 0&&e.v!==void 0&&e.a!==void 0}};Cs.shared=new Cs;Cs._temp=new Cs;Cs.HEX_PATTERN=/^(#|0x)?(([a-f0-9]{3}){1,2}([a-f0-9]{2})?)$/i;q=Cs});var B0,R0=p(()=>{"use strict";B0={cullArea:null,cullable:!1,cullableChildren:!0}});var D0,M0,I0,Ad=p(()=>{"use strict";D0=Math.PI*2,M0=180/Math.PI,I0=Math.PI/180});var J,Pd,Ft=p(()=>{"use strict";J=class r{constructor(e=0,t=0){this.x=0,this.y=0,this.x=e,this.y=t}clone(){return new r(this.x,this.y)}copyFrom(e){return this.set(e.x,e.y),this}copyTo(e){return e.set(this.x,this.y),e}equals(e){return e.x===this.x&&e.y===this.y}set(e=0,t=e){return this.x=e,this.y=t,this}toString(){return`[pixi.js/math:Point x=${this.x} y=${this.y}]`}static get shared(){return Pd.x=0,Pd.y=0,Pd}},Pd=new J});var R,KA,QA,te=p(()=>{Ad();Ft();R=class r{constructor(e=1,t=0,i=0,s=1,n=0,o=0){this.array=null,this.a=e,this.b=t,this.c=i,this.d=s,this.tx=n,this.ty=o}fromArray(e){this.a=e[0],this.b=e[1],this.c=e[3],this.d=e[4],this.tx=e[2],this.ty=e[5]}set(e,t,i,s,n,o){return this.a=e,this.b=t,this.c=i,this.d=s,this.tx=n,this.ty=o,this}toArray(e,t){this.array||(this.array=new Float32Array(9));let i=t||this.array;return e?(i[0]=this.a,i[1]=this.b,i[2]=0,i[3]=this.c,i[4]=this.d,i[5]=0,i[6]=this.tx,i[7]=this.ty,i[8]=1):(i[0]=this.a,i[1]=this.c,i[2]=this.tx,i[3]=this.b,i[4]=this.d,i[5]=this.ty,i[6]=0,i[7]=0,i[8]=1),i}apply(e,t){t=t||new J;let i=e.x,s=e.y;return t.x=this.a*i+this.c*s+this.tx,t.y=this.b*i+this.d*s+this.ty,t}applyInverse(e,t){t=t||new J;let i=this.a,s=this.b,n=this.c,o=this.d,a=this.tx,c=this.ty,u=1/(i*o+n*-s),l=e.x,h=e.y;return t.x=o*u*l+-n*u*h+(c*n-a*o)*u,t.y=i*u*h+-s*u*l+(-c*i+a*s)*u,t}translate(e,t){return this.tx+=e,this.ty+=t,this}scale(e,t){return this.a*=e,this.d*=t,this.c*=e,this.b*=t,this.tx*=e,this.ty*=t,this}rotate(e){let t=Math.cos(e),i=Math.sin(e),s=this.a,n=this.c,o=this.tx;return this.a=s*t-this.b*i,this.b=s*i+this.b*t,this.c=n*t-this.d*i,this.d=n*i+this.d*t,this.tx=o*t-this.ty*i,this.ty=o*i+this.ty*t,this}append(e){let t=this.a,i=this.b,s=this.c,n=this.d;return this.a=e.a*t+e.b*s,this.b=e.a*i+e.b*n,this.c=e.c*t+e.d*s,this.d=e.c*i+e.d*n,this.tx=e.tx*t+e.ty*s+this.tx,this.ty=e.tx*i+e.ty*n+this.ty,this}appendFrom(e,t){let i=e.a,s=e.b,n=e.c,o=e.d,a=e.tx,c=e.ty,u=t.a,l=t.b,h=t.c,f=t.d;return this.a=i*u+s*h,this.b=i*l+s*f,this.c=n*u+o*h,this.d=n*l+o*f,this.tx=a*u+c*h+t.tx,this.ty=a*l+c*f+t.ty,this}setTransform(e,t,i,s,n,o,a,c,u){return this.a=Math.cos(a+u)*n,this.b=Math.sin(a+u)*n,this.c=-Math.sin(a-c)*o,this.d=Math.cos(a-c)*o,this.tx=e-(i*this.a+s*this.c),this.ty=t-(i*this.b+s*this.d),this}prepend(e){let t=this.tx;if(e.a!==1||e.b!==0||e.c!==0||e.d!==1){let i=this.a,s=this.c;this.a=i*e.a+this.b*e.c,this.b=i*e.b+this.b*e.d,this.c=s*e.a+this.d*e.c,this.d=s*e.b+this.d*e.d}return this.tx=t*e.a+this.ty*e.c+e.tx,this.ty=t*e.b+this.ty*e.d+e.ty,this}decompose(e){let t=this.a,i=this.b,s=this.c,n=this.d,o=e.pivot,a=-Math.atan2(-s,n),c=Math.atan2(i,t),u=Math.abs(a+c);return u<1e-5||Math.abs(D0-u)<1e-5?(e.rotation=c,e.skew.x=e.skew.y=0):(e.rotation=0,e.skew.x=a,e.skew.y=c),e.scale.x=Math.sqrt(t*t+i*i),e.scale.y=Math.sqrt(s*s+n*n),e.position.x=this.tx+(o.x*t+o.y*s),e.position.y=this.ty+(o.x*i+o.y*n),e}invert(){let e=this.a,t=this.b,i=this.c,s=this.d,n=this.tx,o=e*s-t*i;return this.a=s/o,this.b=-t/o,this.c=-i/o,this.d=e/o,this.tx=(i*this.ty-s*n)/o,this.ty=-(e*this.ty-t*n)/o,this}isIdentity(){return this.a===1&&this.b===0&&this.c===0&&this.d===1&&this.tx===0&&this.ty===0}identity(){return this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0,this}clone(){let e=new r;return e.a=this.a,e.b=this.b,e.c=this.c,e.d=this.d,e.tx=this.tx,e.ty=this.ty,e}copyTo(e){return e.a=this.a,e.b=this.b,e.c=this.c,e.d=this.d,e.tx=this.tx,e.ty=this.ty,e}copyFrom(e){return this.a=e.a,this.b=e.b,this.c=e.c,this.d=e.d,this.tx=e.tx,this.ty=e.ty,this}equals(e){return e.a===this.a&&e.b===this.b&&e.c===this.c&&e.d===this.d&&e.tx===this.tx&&e.ty===this.ty}toString(){return`[pixi.js:Matrix a=${this.a} b=${this.b} c=${this.c} d=${this.d} tx=${this.tx} ty=${this.ty}]`}static get IDENTITY(){return QA.identity()}static get shared(){return KA.identity()}},KA=new R,QA=new R});var We,xu=p(()=>{"use strict";We=class r{constructor(e,t,i){this._x=t||0,this._y=i||0,this._observer=e}clone(e){return new r(e??this._observer,this._x,this._y)}set(e=0,t=e){return(this._x!==e||this._y!==t)&&(this._x=e,this._y=t,this._observer._onUpdate(this)),this}copyFrom(e){return(this._x!==e.x||this._y!==e.y)&&(this._x=e.x,this._y=e.y,this._observer._onUpdate(this)),this}copyTo(e){return e.set(this._x,this._y),e}equals(e){return e.x===this._x&&e.y===this._y}toString(){return`[pixi.js/math:ObservablePoint x=${this._x} y=${this._y} scope=${this._observer}]`}get x(){return this._x}set x(e){this._x!==e&&(this._x=e,this._observer._onUpdate(this))}get y(){return this._y}set y(e){this._y!==e&&(this._y=e,this._observer._onUpdate(this))}}});function K(r="default"){return Bd[r]===void 0&&(Bd[r]=-1),++Bd[r]}var Bd,Oe=p(()=>{"use strict";Bd={default:-1}});function z(r,e,t=3){if(F0[e])return;let i=new Error().stack;typeof i>"u"?console.warn("PixiJS Deprecation Warning: ",`${e}
1
+ var $E=Object.create;var kh=Object.defineProperty;var qE=Object.getOwnPropertyDescriptor;var jE=Object.getOwnPropertyNames;var XE=Object.getPrototypeOf,YE=Object.prototype.hasOwnProperty;var p=(r,e)=>()=>(r&&(e=r(r=0)),e);var Or=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),yg=(r,e)=>{for(var t in e)kh(r,t,{get:e[t],enumerable:!0})},KE=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of jE(e))!YE.call(r,s)&&s!==t&&kh(r,s,{get:()=>e[s],enumerable:!(i=qE(e,s))||i.enumerable});return r};var Ah=(r,e,t)=>(t=r!=null?$E(XE(r)):{},KE(e||!r||!r.__esModule?kh(t,"default",{value:r,enumerable:!0}):t,r));var b,Oh,Rc,O,P=p(()=>{"use strict";b=(r=>(r.Application="application",r.WebGLPipes="webgl-pipes",r.WebGLPipesAdaptor="webgl-pipes-adaptor",r.WebGLSystem="webgl-system",r.WebGPUPipes="webgpu-pipes",r.WebGPUPipesAdaptor="webgpu-pipes-adaptor",r.WebGPUSystem="webgpu-system",r.CanvasSystem="canvas-system",r.CanvasPipesAdaptor="canvas-pipes-adaptor",r.CanvasPipes="canvas-pipes",r.Asset="asset",r.LoadParser="load-parser",r.ResolveParser="resolve-parser",r.CacheParser="cache-parser",r.DetectionParser="detection-parser",r.MaskEffect="mask-effect",r.BlendMode="blend-mode",r.TextureSource="texture-source",r.Environment="environment",r.ShapeBuilder="shape-builder",r.Batcher="batcher",r))(b||{}),Oh=r=>{if(typeof r=="function"||typeof r=="object"&&r.extension){if(!r.extension)throw new Error("Extension class must have an extension object");r={...typeof r.extension!="object"?{type:r.extension}:r.extension,ref:r}}if(typeof r=="object")r={...r};else throw new Error("Invalid extension type");return typeof r.type=="string"&&(r.type=[r.type]),r},Rc=(r,e)=>Oh(r).priority??e,O={_addHandlers:{},_removeHandlers:{},_queue:{},remove(...r){return r.map(Oh).forEach(e=>{e.type.forEach(t=>this._removeHandlers[t]?.(e))}),this},add(...r){return r.map(Oh).forEach(e=>{e.type.forEach(t=>{let i=this._addHandlers,s=this._queue;i[t]?i[t]?.(e):(s[t]=s[t]||[],s[t]?.push(e))})}),this},handle(r,e,t){let i=this._addHandlers,s=this._removeHandlers;if(i[r]||s[r])throw new Error(`Extension type ${r} already has a handler`);i[r]=e,s[r]=t;let n=this._queue;return n[r]&&(n[r]?.forEach(o=>e(o)),delete n[r]),this},handleByMap(r,e){return this.handle(r,t=>{t.name&&(e[t.name]=t.ref)},t=>{t.name&&delete e[t.name]})},handleByNamedList(r,e,t=-1){return this.handle(r,i=>{e.findIndex(n=>n.name===i.name)>=0||(e.push({name:i.name,value:i.ref}),e.sort((n,o)=>Rc(o.value,t)-Rc(n.value,t)))},i=>{let s=e.findIndex(n=>n.name===i.name);s!==-1&&e.splice(s,1)})},handleByList(r,e,t=-1){return this.handle(r,i=>{e.includes(i.ref)||(e.push(i.ref),e.sort((s,n)=>Rc(n,t)-Rc(s,t)))},i=>{let s=e.indexOf(i.ref);s!==-1&&e.splice(s,1)})},mixin(r,...e){for(let t of e)Object.defineProperties(r.prototype,Object.getOwnPropertyDescriptors(t))}}});var Hg=Or((EO,Gh)=>{"use strict";var dk=Object.prototype.hasOwnProperty,Ze="~";function Un(){}Object.create&&(Un.prototype=Object.create(null),new Un().__proto__||(Ze=!1));function fk(r,e,t){this.fn=r,this.context=e,this.once=t||!1}function Vg(r,e,t,i,s){if(typeof t!="function")throw new TypeError("The listener must be a function");var n=new fk(t,i||r,s),o=Ze?Ze+e:e;return r._events[o]?r._events[o].fn?r._events[o]=[r._events[o],n]:r._events[o].push(n):(r._events[o]=n,r._eventsCount++),r}function Dc(r,e){--r._eventsCount===0?r._events=new Un:delete r._events[e]}function qe(){this._events=new Un,this._eventsCount=0}qe.prototype.eventNames=function(){var e=[],t,i;if(this._eventsCount===0)return e;for(i in t=this._events)dk.call(t,i)&&e.push(Ze?i.slice(1):i);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e};qe.prototype.listeners=function(e){var t=Ze?Ze+e:e,i=this._events[t];if(!i)return[];if(i.fn)return[i.fn];for(var s=0,n=i.length,o=new Array(n);s<n;s++)o[s]=i[s].fn;return o};qe.prototype.listenerCount=function(e){var t=Ze?Ze+e:e,i=this._events[t];return i?i.fn?1:i.length:0};qe.prototype.emit=function(e,t,i,s,n,o){var a=Ze?Ze+e:e;if(!this._events[a])return!1;var c=this._events[a],u=arguments.length,l,h;if(c.fn){switch(c.once&&this.removeListener(e,c.fn,void 0,!0),u){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,t),!0;case 3:return c.fn.call(c.context,t,i),!0;case 4:return c.fn.call(c.context,t,i,s),!0;case 5:return c.fn.call(c.context,t,i,s,n),!0;case 6:return c.fn.call(c.context,t,i,s,n,o),!0}for(h=1,l=new Array(u-1);h<u;h++)l[h-1]=arguments[h];c.fn.apply(c.context,l)}else{var f=c.length,d;for(h=0;h<f;h++)switch(c[h].once&&this.removeListener(e,c[h].fn,void 0,!0),u){case 1:c[h].fn.call(c[h].context);break;case 2:c[h].fn.call(c[h].context,t);break;case 3:c[h].fn.call(c[h].context,t,i);break;case 4:c[h].fn.call(c[h].context,t,i,s);break;default:if(!l)for(d=1,l=new Array(u-1);d<u;d++)l[d-1]=arguments[d];c[h].fn.apply(c[h].context,l)}}return!0};qe.prototype.on=function(e,t,i){return Vg(this,e,t,i,!1)};qe.prototype.once=function(e,t,i){return Vg(this,e,t,i,!0)};qe.prototype.removeListener=function(e,t,i,s){var n=Ze?Ze+e:e;if(!this._events[n])return this;if(!t)return Dc(this,n),this;var o=this._events[n];if(o.fn)o.fn===t&&(!s||o.once)&&(!i||o.context===i)&&Dc(this,n);else{for(var a=0,c=[],u=o.length;a<u;a++)(o[a].fn!==t||s&&!o[a].once||i&&o[a].context!==i)&&c.push(o[a]);c.length?this._events[n]=c.length===1?c[0]:c:Dc(this,n)}return this};qe.prototype.removeAllListeners=function(e){var t;return e?(t=Ze?Ze+e:e,this._events[t]&&Dc(this,t)):(this._events=new Un,this._eventsCount=0),this};qe.prototype.off=qe.prototype.removeListener;qe.prototype.addListener=qe.prototype.on;qe.prefixed=Ze;qe.EventEmitter=qe;typeof Gh<"u"&&(Gh.exports=qe)});var Wg,oe,Ve=p(()=>{Wg=Ah(Hg(),1),oe=Wg.default});var mk,pr,Ue,St,Zg,$g,Nh,pk,Mc,Jg,ex,qg,jg,Xg,On,gk,xk,_k,bk,Vh,Yg,yk,Lh,zh,Kg,Hh,Mt,Qg,tx,rx=p(()=>{mk={grad:.9,turn:360,rad:360/(2*Math.PI)},pr=function(r){return typeof r=="string"?r.length>0:typeof r=="number"},Ue=function(r,e,t){return e===void 0&&(e=0),t===void 0&&(t=Math.pow(10,e)),Math.round(t*r)/t+0},St=function(r,e,t){return e===void 0&&(e=0),t===void 0&&(t=1),r>t?t:r>e?r:e},Zg=function(r){return(r=isFinite(r)?r%360:0)>0?r:r+360},$g=function(r){return{r:St(r.r,0,255),g:St(r.g,0,255),b:St(r.b,0,255),a:St(r.a)}},Nh=function(r){return{r:Ue(r.r),g:Ue(r.g),b:Ue(r.b),a:Ue(r.a,3)}},pk=/^#([0-9a-f]{3,8})$/i,Mc=function(r){var e=r.toString(16);return e.length<2?"0"+e:e},Jg=function(r){var e=r.r,t=r.g,i=r.b,s=r.a,n=Math.max(e,t,i),o=n-Math.min(e,t,i),a=o?n===e?(t-i)/o:n===t?2+(i-e)/o:4+(e-t)/o:0;return{h:60*(a<0?a+6:a),s:n?o/n*100:0,v:n/255*100,a:s}},ex=function(r){var e=r.h,t=r.s,i=r.v,s=r.a;e=e/360*6,t/=100,i/=100;var n=Math.floor(e),o=i*(1-t),a=i*(1-(e-n)*t),c=i*(1-(1-e+n)*t),u=n%6;return{r:255*[i,a,o,o,c,i][u],g:255*[c,i,i,a,o,o][u],b:255*[o,o,c,i,i,a][u],a:s}},qg=function(r){return{h:Zg(r.h),s:St(r.s,0,100),l:St(r.l,0,100),a:St(r.a)}},jg=function(r){return{h:Ue(r.h),s:Ue(r.s),l:Ue(r.l),a:Ue(r.a,3)}},Xg=function(r){return ex((t=(e=r).s,{h:e.h,s:(t*=((i=e.l)<50?i:100-i)/100)>0?2*t/(i+t)*100:0,v:i+t,a:e.a}));var e,t,i},On=function(r){return{h:(e=Jg(r)).h,s:(s=(200-(t=e.s))*(i=e.v)/100)>0&&s<200?t*i/100/(s<=100?s:200-s)*100:0,l:s/2,a:e.a};var e,t,i,s},gk=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,xk=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,_k=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,bk=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Vh={string:[[function(r){var e=pk.exec(r);return e?(r=e[1]).length<=4?{r:parseInt(r[0]+r[0],16),g:parseInt(r[1]+r[1],16),b:parseInt(r[2]+r[2],16),a:r.length===4?Ue(parseInt(r[3]+r[3],16)/255,2):1}:r.length===6||r.length===8?{r:parseInt(r.substr(0,2),16),g:parseInt(r.substr(2,2),16),b:parseInt(r.substr(4,2),16),a:r.length===8?Ue(parseInt(r.substr(6,2),16)/255,2):1}:null:null},"hex"],[function(r){var e=_k.exec(r)||bk.exec(r);return e?e[2]!==e[4]||e[4]!==e[6]?null:$g({r:Number(e[1])/(e[2]?100/255:1),g:Number(e[3])/(e[4]?100/255:1),b:Number(e[5])/(e[6]?100/255:1),a:e[7]===void 0?1:Number(e[7])/(e[8]?100:1)}):null},"rgb"],[function(r){var e=gk.exec(r)||xk.exec(r);if(!e)return null;var t,i,s=qg({h:(t=e[1],i=e[2],i===void 0&&(i="deg"),Number(t)*(mk[i]||1)),s:Number(e[3]),l:Number(e[4]),a:e[5]===void 0?1:Number(e[5])/(e[6]?100:1)});return Xg(s)},"hsl"]],object:[[function(r){var e=r.r,t=r.g,i=r.b,s=r.a,n=s===void 0?1:s;return pr(e)&&pr(t)&&pr(i)?$g({r:Number(e),g:Number(t),b:Number(i),a:Number(n)}):null},"rgb"],[function(r){var e=r.h,t=r.s,i=r.l,s=r.a,n=s===void 0?1:s;if(!pr(e)||!pr(t)||!pr(i))return null;var o=qg({h:Number(e),s:Number(t),l:Number(i),a:Number(n)});return Xg(o)},"hsl"],[function(r){var e=r.h,t=r.s,i=r.v,s=r.a,n=s===void 0?1:s;if(!pr(e)||!pr(t)||!pr(i))return null;var o=function(a){return{h:Zg(a.h),s:St(a.s,0,100),v:St(a.v,0,100),a:St(a.a)}}({h:Number(e),s:Number(t),v:Number(i),a:Number(n)});return ex(o)},"hsv"]]},Yg=function(r,e){for(var t=0;t<e.length;t++){var i=e[t][0](r);if(i)return[i,e[t][1]]}return[null,void 0]},yk=function(r){return typeof r=="string"?Yg(r.trim(),Vh.string):typeof r=="object"&&r!==null?Yg(r,Vh.object):[null,void 0]},Lh=function(r,e){var t=On(r);return{h:t.h,s:St(t.s+100*e,0,100),l:t.l,a:t.a}},zh=function(r){return(299*r.r+587*r.g+114*r.b)/1e3/255},Kg=function(r,e){var t=On(r);return{h:t.h,s:t.s,l:St(t.l+100*e,0,100),a:t.a}},Hh=function(){function r(e){this.parsed=yk(e)[0],this.rgba=this.parsed||{r:0,g:0,b:0,a:1}}return r.prototype.isValid=function(){return this.parsed!==null},r.prototype.brightness=function(){return Ue(zh(this.rgba),2)},r.prototype.isDark=function(){return zh(this.rgba)<.5},r.prototype.isLight=function(){return zh(this.rgba)>=.5},r.prototype.toHex=function(){return e=Nh(this.rgba),t=e.r,i=e.g,s=e.b,o=(n=e.a)<1?Mc(Ue(255*n)):"","#"+Mc(t)+Mc(i)+Mc(s)+o;var e,t,i,s,n,o},r.prototype.toRgb=function(){return Nh(this.rgba)},r.prototype.toRgbString=function(){return e=Nh(this.rgba),t=e.r,i=e.g,s=e.b,(n=e.a)<1?"rgba("+t+", "+i+", "+s+", "+n+")":"rgb("+t+", "+i+", "+s+")";var e,t,i,s,n},r.prototype.toHsl=function(){return jg(On(this.rgba))},r.prototype.toHslString=function(){return e=jg(On(this.rgba)),t=e.h,i=e.s,s=e.l,(n=e.a)<1?"hsla("+t+", "+i+"%, "+s+"%, "+n+")":"hsl("+t+", "+i+"%, "+s+"%)";var e,t,i,s,n},r.prototype.toHsv=function(){return e=Jg(this.rgba),{h:Ue(e.h),s:Ue(e.s),v:Ue(e.v),a:Ue(e.a,3)};var e},r.prototype.invert=function(){return Mt({r:255-(e=this.rgba).r,g:255-e.g,b:255-e.b,a:e.a});var e},r.prototype.saturate=function(e){return e===void 0&&(e=.1),Mt(Lh(this.rgba,e))},r.prototype.desaturate=function(e){return e===void 0&&(e=.1),Mt(Lh(this.rgba,-e))},r.prototype.grayscale=function(){return Mt(Lh(this.rgba,-1))},r.prototype.lighten=function(e){return e===void 0&&(e=.1),Mt(Kg(this.rgba,e))},r.prototype.darken=function(e){return e===void 0&&(e=.1),Mt(Kg(this.rgba,-e))},r.prototype.rotate=function(e){return e===void 0&&(e=15),this.hue(this.hue()+e)},r.prototype.alpha=function(e){return typeof e=="number"?Mt({r:(t=this.rgba).r,g:t.g,b:t.b,a:e}):Ue(this.rgba.a,3);var t},r.prototype.hue=function(e){var t=On(this.rgba);return typeof e=="number"?Mt({h:e,s:t.s,l:t.l,a:t.a}):Ue(t.h)},r.prototype.isEqual=function(e){return this.toHex()===Mt(e).toHex()},r}(),Mt=function(r){return r instanceof Hh?r:new Hh(r)},Qg=[],tx=function(r){r.forEach(function(e){Qg.indexOf(e)<0&&(e(Hh,Vh),Qg.push(e))})}});function ix(r,e){var t={white:"#ffffff",bisque:"#ffe4c4",blue:"#0000ff",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",antiquewhite:"#faebd7",aqua:"#00ffff",azure:"#f0ffff",whitesmoke:"#f5f5f5",papayawhip:"#ffefd5",plum:"#dda0dd",blanchedalmond:"#ffebcd",black:"#000000",gold:"#ffd700",goldenrod:"#daa520",gainsboro:"#dcdcdc",cornsilk:"#fff8dc",cornflowerblue:"#6495ed",burlywood:"#deb887",aquamarine:"#7fffd4",beige:"#f5f5dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkkhaki:"#bdb76b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",peachpuff:"#ffdab9",darkmagenta:"#8b008b",darkred:"#8b0000",darkorchid:"#9932cc",darkorange:"#ff8c00",darkslateblue:"#483d8b",gray:"#808080",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",deeppink:"#ff1493",deepskyblue:"#00bfff",wheat:"#f5deb3",firebrick:"#b22222",floralwhite:"#fffaf0",ghostwhite:"#f8f8ff",darkviolet:"#9400d3",magenta:"#ff00ff",green:"#008000",dodgerblue:"#1e90ff",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",blueviolet:"#8a2be2",forestgreen:"#228b22",lawngreen:"#7cfc00",indianred:"#cd5c5c",indigo:"#4b0082",fuchsia:"#ff00ff",brown:"#a52a2a",maroon:"#800000",mediumblue:"#0000cd",lightcoral:"#f08080",darkturquoise:"#00ced1",lightcyan:"#e0ffff",ivory:"#fffff0",lightyellow:"#ffffe0",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",linen:"#faf0e6",mediumaquamarine:"#66cdaa",lemonchiffon:"#fffacd",lime:"#00ff00",khaki:"#f0e68c",mediumseagreen:"#3cb371",limegreen:"#32cd32",mediumspringgreen:"#00fa9a",lightskyblue:"#87cefa",lightblue:"#add8e6",midnightblue:"#191970",lightpink:"#ffb6c1",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",mintcream:"#f5fffa",lightslategray:"#778899",lightslategrey:"#778899",navajowhite:"#ffdead",navy:"#000080",mediumvioletred:"#c71585",powderblue:"#b0e0e6",palegoldenrod:"#eee8aa",oldlace:"#fdf5e6",paleturquoise:"#afeeee",mediumturquoise:"#48d1cc",mediumorchid:"#ba55d3",rebeccapurple:"#663399",lightsteelblue:"#b0c4de",mediumslateblue:"#7b68ee",thistle:"#d8bfd8",tan:"#d2b48c",orchid:"#da70d6",mediumpurple:"#9370db",purple:"#800080",pink:"#ffc0cb",skyblue:"#87ceeb",springgreen:"#00ff7f",palegreen:"#98fb98",red:"#ff0000",yellow:"#ffff00",slateblue:"#6a5acd",lavenderblush:"#fff0f5",peru:"#cd853f",palevioletred:"#db7093",violet:"#ee82ee",teal:"#008080",slategray:"#708090",slategrey:"#708090",aliceblue:"#f0f8ff",darkseagreen:"#8fbc8f",darkolivegreen:"#556b2f",greenyellow:"#adff2f",seagreen:"#2e8b57",seashell:"#fff5ee",tomato:"#ff6347",silver:"#c0c0c0",sienna:"#a0522d",lavender:"#e6e6fa",lightgreen:"#90ee90",orange:"#ffa500",orangered:"#ff4500",steelblue:"#4682b4",royalblue:"#4169e1",turquoise:"#40e0d0",yellowgreen:"#9acd32",salmon:"#fa8072",saddlebrown:"#8b4513",sandybrown:"#f4a460",rosybrown:"#bc8f8f",darksalmon:"#e9967a",lightgoldenrodyellow:"#fafad2",snow:"#fffafa",lightgrey:"#d3d3d3",lightgray:"#d3d3d3",dimgray:"#696969",dimgrey:"#696969",olivedrab:"#6b8e23",olive:"#808000"},i={};for(var s in t)i[t[s]]=s;var n={};r.prototype.toName=function(o){if(!(this.rgba.a||this.rgba.r||this.rgba.g||this.rgba.b))return"transparent";var a,c,u=i[this.toHex()];if(u)return u;if(o?.closest){var l=this.toRgb(),h=1/0,f="black";if(!n.length)for(var d in t)n[d]=new r(t[d]).toRgb();for(var m in t){var x=(a=l,c=n[m],Math.pow(a.r-c.r,2)+Math.pow(a.g-c.g,2)+Math.pow(a.b-c.b,2));x<h&&(h=x,f=m)}return f}},e.string.push([function(o){var a=o.toLowerCase(),c=a==="transparent"?"#0000":t[a];return c?new r(c).toRgb():null},"name"])}var sx=p(()=>{});var ns,q,He=p(()=>{rx();sx();tx([ix]);ns=class Gn{constructor(e=16777215){this._value=null,this._components=new Float32Array(4),this._components.fill(1),this._int=16777215,this.value=e}get red(){return this._components[0]}get green(){return this._components[1]}get blue(){return this._components[2]}get alpha(){return this._components[3]}setValue(e){return this.value=e,this}set value(e){if(e instanceof Gn)this._value=this._cloneSource(e._value),this._int=e._int,this._components.set(e._components);else{if(e===null)throw new Error("Cannot set Color#value to null");(this._value===null||!this._isSourceEqual(this._value,e))&&(this._value=this._cloneSource(e),this._normalize(this._value))}}get value(){return this._value}_cloneSource(e){return typeof e=="string"||typeof e=="number"||e instanceof Number||e===null?e:Array.isArray(e)||ArrayBuffer.isView(e)?e.slice(0):typeof e=="object"&&e!==null?{...e}:e}_isSourceEqual(e,t){let i=typeof e;if(i!==typeof t)return!1;if(i==="number"||i==="string"||e instanceof Number)return e===t;if(Array.isArray(e)&&Array.isArray(t)||ArrayBuffer.isView(e)&&ArrayBuffer.isView(t))return e.length!==t.length?!1:e.every((n,o)=>n===t[o]);if(e!==null&&t!==null){let n=Object.keys(e),o=Object.keys(t);return n.length!==o.length?!1:n.every(a=>e[a]===t[a])}return e===t}toRgba(){let[e,t,i,s]=this._components;return{r:e,g:t,b:i,a:s}}toRgb(){let[e,t,i]=this._components;return{r:e,g:t,b:i}}toRgbaString(){let[e,t,i]=this.toUint8RgbArray();return`rgba(${e},${t},${i},${this.alpha})`}toUint8RgbArray(e){let[t,i,s]=this._components;return this._arrayRgb||(this._arrayRgb=[]),e||(e=this._arrayRgb),e[0]=Math.round(t*255),e[1]=Math.round(i*255),e[2]=Math.round(s*255),e}toArray(e){this._arrayRgba||(this._arrayRgba=[]),e||(e=this._arrayRgba);let[t,i,s,n]=this._components;return e[0]=t,e[1]=i,e[2]=s,e[3]=n,e}toRgbArray(e){this._arrayRgb||(this._arrayRgb=[]),e||(e=this._arrayRgb);let[t,i,s]=this._components;return e[0]=t,e[1]=i,e[2]=s,e}toNumber(){return this._int}toBgrNumber(){let[e,t,i]=this.toUint8RgbArray();return(i<<16)+(t<<8)+e}toLittleEndianNumber(){let e=this._int;return(e>>16)+(e&65280)+((e&255)<<16)}multiply(e){let[t,i,s,n]=Gn._temp.setValue(e)._components;return this._components[0]*=t,this._components[1]*=i,this._components[2]*=s,this._components[3]*=n,this._refreshInt(),this._value=null,this}premultiply(e,t=!0){return t&&(this._components[0]*=e,this._components[1]*=e,this._components[2]*=e),this._components[3]=e,this._refreshInt(),this._value=null,this}toPremultiplied(e,t=!0){if(e===1)return(255<<24)+this._int;if(e===0)return t?0:this._int;let i=this._int>>16&255,s=this._int>>8&255,n=this._int&255;return t&&(i=i*e+.5|0,s=s*e+.5|0,n=n*e+.5|0),(e*255<<24)+(i<<16)+(s<<8)+n}toHex(){let e=this._int.toString(16);return`#${"000000".substring(0,6-e.length)+e}`}toHexa(){let t=Math.round(this._components[3]*255).toString(16);return this.toHex()+"00".substring(0,2-t.length)+t}setAlpha(e){return this._components[3]=this._clamp(e),this}_normalize(e){let t,i,s,n;if((typeof e=="number"||e instanceof Number)&&e>=0&&e<=16777215){let o=e;t=(o>>16&255)/255,i=(o>>8&255)/255,s=(o&255)/255,n=1}else if((Array.isArray(e)||e instanceof Float32Array)&&e.length>=3&&e.length<=4)e=this._clamp(e),[t,i,s,n=1]=e;else if((e instanceof Uint8Array||e instanceof Uint8ClampedArray)&&e.length>=3&&e.length<=4)e=this._clamp(e,0,255),[t,i,s,n=255]=e,t/=255,i/=255,s/=255,n/=255;else if(typeof e=="string"||typeof e=="object"){if(typeof e=="string"){let a=Gn.HEX_PATTERN.exec(e);a&&(e=`#${a[2]}`)}let o=Mt(e);o.isValid()&&({r:t,g:i,b:s,a:n}=o.rgba,t/=255,i/=255,s/=255)}if(t!==void 0)this._components[0]=t,this._components[1]=i,this._components[2]=s,this._components[3]=n,this._refreshInt();else throw new Error(`Unable to convert color ${e}`)}_refreshInt(){this._clamp(this._components);let[e,t,i]=this._components;this._int=(e*255<<16)+(t*255<<8)+(i*255|0)}_clamp(e,t=0,i=1){return typeof e=="number"?Math.min(Math.max(e,t),i):(e.forEach((s,n)=>{e[n]=Math.min(Math.max(s,t),i)}),e)}static isColorLike(e){return typeof e=="number"||typeof e=="string"||e instanceof Number||e instanceof Gn||Array.isArray(e)||e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Float32Array||e.r!==void 0&&e.g!==void 0&&e.b!==void 0||e.r!==void 0&&e.g!==void 0&&e.b!==void 0&&e.a!==void 0||e.h!==void 0&&e.s!==void 0&&e.l!==void 0||e.h!==void 0&&e.s!==void 0&&e.l!==void 0&&e.a!==void 0||e.h!==void 0&&e.s!==void 0&&e.v!==void 0||e.h!==void 0&&e.s!==void 0&&e.v!==void 0&&e.a!==void 0}};ns.shared=new ns;ns._temp=new ns;ns.HEX_PATTERN=/^(#|0x)?(([a-f0-9]{3}){1,2}([a-f0-9]{2})?)$/i;q=ns});var nx,ox=p(()=>{"use strict";nx={cullArea:null,cullable:!1,cullableChildren:!0}});var ax,cx,ux,Wh=p(()=>{"use strict";ax=Math.PI*2,cx=180/Math.PI,ux=Math.PI/180});var Z,$h,It=p(()=>{"use strict";Z=class r{constructor(e=0,t=0){this.x=0,this.y=0,this.x=e,this.y=t}clone(){return new r(this.x,this.y)}copyFrom(e){return this.set(e.x,e.y),this}copyTo(e){return e.set(this.x,this.y),e}equals(e){return e.x===this.x&&e.y===this.y}set(e=0,t=e){return this.x=e,this.y=t,this}toString(){return`[pixi.js/math:Point x=${this.x} y=${this.y}]`}static get shared(){return $h.x=0,$h.y=0,$h}},$h=new Z});var R,Tk,wk,ee=p(()=>{Wh();It();R=class r{constructor(e=1,t=0,i=0,s=1,n=0,o=0){this.array=null,this.a=e,this.b=t,this.c=i,this.d=s,this.tx=n,this.ty=o}fromArray(e){this.a=e[0],this.b=e[1],this.c=e[3],this.d=e[4],this.tx=e[2],this.ty=e[5]}set(e,t,i,s,n,o){return this.a=e,this.b=t,this.c=i,this.d=s,this.tx=n,this.ty=o,this}toArray(e,t){this.array||(this.array=new Float32Array(9));let i=t||this.array;return e?(i[0]=this.a,i[1]=this.b,i[2]=0,i[3]=this.c,i[4]=this.d,i[5]=0,i[6]=this.tx,i[7]=this.ty,i[8]=1):(i[0]=this.a,i[1]=this.c,i[2]=this.tx,i[3]=this.b,i[4]=this.d,i[5]=this.ty,i[6]=0,i[7]=0,i[8]=1),i}apply(e,t){t=t||new Z;let i=e.x,s=e.y;return t.x=this.a*i+this.c*s+this.tx,t.y=this.b*i+this.d*s+this.ty,t}applyInverse(e,t){t=t||new Z;let i=this.a,s=this.b,n=this.c,o=this.d,a=this.tx,c=this.ty,u=1/(i*o+n*-s),l=e.x,h=e.y;return t.x=o*u*l+-n*u*h+(c*n-a*o)*u,t.y=i*u*h+-s*u*l+(-c*i+a*s)*u,t}translate(e,t){return this.tx+=e,this.ty+=t,this}scale(e,t){return this.a*=e,this.d*=t,this.c*=e,this.b*=t,this.tx*=e,this.ty*=t,this}rotate(e){let t=Math.cos(e),i=Math.sin(e),s=this.a,n=this.c,o=this.tx;return this.a=s*t-this.b*i,this.b=s*i+this.b*t,this.c=n*t-this.d*i,this.d=n*i+this.d*t,this.tx=o*t-this.ty*i,this.ty=o*i+this.ty*t,this}append(e){let t=this.a,i=this.b,s=this.c,n=this.d;return this.a=e.a*t+e.b*s,this.b=e.a*i+e.b*n,this.c=e.c*t+e.d*s,this.d=e.c*i+e.d*n,this.tx=e.tx*t+e.ty*s+this.tx,this.ty=e.tx*i+e.ty*n+this.ty,this}appendFrom(e,t){let i=e.a,s=e.b,n=e.c,o=e.d,a=e.tx,c=e.ty,u=t.a,l=t.b,h=t.c,f=t.d;return this.a=i*u+s*h,this.b=i*l+s*f,this.c=n*u+o*h,this.d=n*l+o*f,this.tx=a*u+c*h+t.tx,this.ty=a*l+c*f+t.ty,this}setTransform(e,t,i,s,n,o,a,c,u){return this.a=Math.cos(a+u)*n,this.b=Math.sin(a+u)*n,this.c=-Math.sin(a-c)*o,this.d=Math.cos(a-c)*o,this.tx=e-(i*this.a+s*this.c),this.ty=t-(i*this.b+s*this.d),this}prepend(e){let t=this.tx;if(e.a!==1||e.b!==0||e.c!==0||e.d!==1){let i=this.a,s=this.c;this.a=i*e.a+this.b*e.c,this.b=i*e.b+this.b*e.d,this.c=s*e.a+this.d*e.c,this.d=s*e.b+this.d*e.d}return this.tx=t*e.a+this.ty*e.c+e.tx,this.ty=t*e.b+this.ty*e.d+e.ty,this}decompose(e){let t=this.a,i=this.b,s=this.c,n=this.d,o=e.pivot,a=-Math.atan2(-s,n),c=Math.atan2(i,t),u=Math.abs(a+c);return u<1e-5||Math.abs(ax-u)<1e-5?(e.rotation=c,e.skew.x=e.skew.y=0):(e.rotation=0,e.skew.x=a,e.skew.y=c),e.scale.x=Math.sqrt(t*t+i*i),e.scale.y=Math.sqrt(s*s+n*n),e.position.x=this.tx+(o.x*t+o.y*s),e.position.y=this.ty+(o.x*i+o.y*n),e}invert(){let e=this.a,t=this.b,i=this.c,s=this.d,n=this.tx,o=e*s-t*i;return this.a=s/o,this.b=-t/o,this.c=-i/o,this.d=e/o,this.tx=(i*this.ty-s*n)/o,this.ty=-(e*this.ty-t*n)/o,this}isIdentity(){return this.a===1&&this.b===0&&this.c===0&&this.d===1&&this.tx===0&&this.ty===0}identity(){return this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0,this}clone(){let e=new r;return e.a=this.a,e.b=this.b,e.c=this.c,e.d=this.d,e.tx=this.tx,e.ty=this.ty,e}copyTo(e){return e.a=this.a,e.b=this.b,e.c=this.c,e.d=this.d,e.tx=this.tx,e.ty=this.ty,e}copyFrom(e){return this.a=e.a,this.b=e.b,this.c=e.c,this.d=e.d,this.tx=e.tx,this.ty=e.ty,this}equals(e){return e.a===this.a&&e.b===this.b&&e.c===this.c&&e.d===this.d&&e.tx===this.tx&&e.ty===this.ty}toString(){return`[pixi.js:Matrix a=${this.a} b=${this.b} c=${this.c} d=${this.d} tx=${this.tx} ty=${this.ty}]`}static get IDENTITY(){return wk.identity()}static get shared(){return Tk.identity()}},Tk=new R,wk=new R});var We,Ic=p(()=>{"use strict";We=class r{constructor(e,t,i){this._x=t||0,this._y=i||0,this._observer=e}clone(e){return new r(e??this._observer,this._x,this._y)}set(e=0,t=e){return(this._x!==e||this._y!==t)&&(this._x=e,this._y=t,this._observer._onUpdate(this)),this}copyFrom(e){return(this._x!==e.x||this._y!==e.y)&&(this._x=e.x,this._y=e.y,this._observer._onUpdate(this)),this}copyTo(e){return e.set(this._x,this._y),e}equals(e){return e.x===this._x&&e.y===this._y}toString(){return`[pixi.js/math:ObservablePoint x=${this._x} y=${this._y} scope=${this._observer}]`}get x(){return this._x}set x(e){this._x!==e&&(this._x=e,this._observer._onUpdate(this))}get y(){return this._y}set y(e){this._y!==e&&(this._y=e,this._observer._onUpdate(this))}}});function K(r="default"){return qh[r]===void 0&&(qh[r]=-1),++qh[r]}var qh,Oe=p(()=>{"use strict";qh={default:-1}});function z(r,e,t=3){if(lx[e])return;let i=new Error().stack;typeof i>"u"?console.warn("PixiJS Deprecation Warning: ",`${e}
2
2
  Deprecated since v${r}`):(i=i.split(`
3
3
  `).splice(t).join(`
4
4
  `),console.groupCollapsed?(console.groupCollapsed("%cPixiJS Deprecation Warning: %c%s","color:#614108;background:#fffbe6","font-weight:normal;color:#614108;background:#fffbe6",`${e}
5
5
  Deprecated since v${r}`),console.warn(i),console.groupEnd()):(console.warn("PixiJS Deprecation Warning: ",`${e}
6
- Deprecated since v${r}`),console.warn(i))),F0[e]=!0}var F0,$,U0,ye=p(()=>{"use strict";F0={},$="8.0.0",U0="8.3.4"});var Ii,Rd=p(()=>{"use strict";Ii=class{constructor(e,t){this._pool=[],this._count=0,this._index=0,this._classType=e,t&&this.prepopulate(t)}prepopulate(e){for(let t=0;t<e;t++)this._pool[this._index++]=new this._classType;this._count+=e}get(e){let t;return this._index>0?t=this._pool[--this._index]:t=new this._classType,t.init?.(e),t}return(e){e.reset?.(),this._pool[this._index++]=e}get totalSize(){return this._count}get totalFree(){return this._index}get totalUsed(){return this._count-this._index}clear(){this._pool.length=0,this._index=0}}});var Dd,me,br=p(()=>{Rd();Dd=class{constructor(){this._poolsByClass=new Map}prepopulate(e,t){this.getPool(e).prepopulate(t)}get(e,t){return this.getPool(e).get(t)}return(e){this.getPool(e.constructor).return(e)}getPool(e){return this._poolsByClass.has(e)||this._poolsByClass.set(e,new Ii(e)),this._poolsByClass.get(e)}stats(){let e={};return this._poolsByClass.forEach(t=>{let i=e[t._classType.name]?t._classType.name+t._classType.ID:t._classType.name;e[i]={free:t.totalFree,used:t.totalUsed,size:t.totalSize}}),e}},me=new Dd});var O0,G0=p(()=>{ye();O0={get isCachedAsTexture(){return!!this.renderGroup?.isCachedAsTexture},cacheAsTexture(r){typeof r=="boolean"&&r===!1?this.disableRenderGroup():(this.enableRenderGroup(),this.renderGroup.enableCacheAsTexture(r===!0?{}:r))},updateCacheTexture(){this.renderGroup?.updateCacheTexture()},get cacheAsBitmap(){return this.isCachedAsTexture},set cacheAsBitmap(r){z("v8.6.0","cacheAsBitmap is deprecated, use cacheAsTexture instead."),this.cacheAsTexture(r)}}});function _u(r,e,t){let i=r.length,s;if(e>=i||t===0)return;t=e+t>i?i-e:t;let n=i-t;for(s=e;s<n;++s)r[s]=r[s+t];r.length=n}var Md=p(()=>{"use strict"});var N0,L0=p(()=>{Md();ye();N0={allowChildren:!0,removeChildren(r=0,e){let t=e??this.children.length,i=t-r,s=[];if(i>0&&i<=t){for(let o=t-1;o>=r;o--){let a=this.children[o];a&&(s.push(a),a.parent=null)}_u(this.children,r,t);let n=this.renderGroup||this.parentRenderGroup;n&&n.removeChildren(s);for(let o=0;o<s.length;++o){let a=s[o];a.parentRenderLayer?.detach(a),this.emit("childRemoved",a,this,o),s[o].emit("removed",this)}return s.length>0&&this._didViewChangeTick++,s}else if(i===0&&this.children.length===0)return s;throw new RangeError("removeChildren: numeric values are outside the acceptable range.")},removeChildAt(r){let e=this.getChildAt(r);return this.removeChild(e)},getChildAt(r){if(r<0||r>=this.children.length)throw new Error(`getChildAt: Index (${r}) does not exist.`);return this.children[r]},setChildIndex(r,e){if(e<0||e>=this.children.length)throw new Error(`The index ${e} supplied is out of bounds ${this.children.length}`);this.getChildIndex(r),this.addChildAt(r,e)},getChildIndex(r){let e=this.children.indexOf(r);if(e===-1)throw new Error("The supplied Container must be a child of the caller");return e},addChildAt(r,e){this.allowChildren||z($,"addChildAt: Only Containers will be allowed to add children in v8.0.0");let{children:t}=this;if(e<0||e>t.length)throw new Error(`${r}addChildAt: The index ${e} supplied is out of bounds ${t.length}`);if(r.parent){let s=r.parent.children.indexOf(r);if(r.parent===this&&s===e)return r;s!==-1&&r.parent.children.splice(s,1)}e===t.length?t.push(r):t.splice(e,0,r),r.parent=this,r.didChange=!0,r._updateFlags=15;let i=this.renderGroup||this.parentRenderGroup;return i&&i.addChild(r),this.sortableChildren&&(this.sortDirty=!0),this.emit("childAdded",r,this,e),r.emit("added",this),r},swapChildren(r,e){if(r===e)return;let t=this.getChildIndex(r),i=this.getChildIndex(e);this.children[t]=e,this.children[i]=r;let s=this.renderGroup||this.parentRenderGroup;s&&(s.structureDidChange=!0),this._didContainerChangeTick++},removeFromParent(){this.parent?.removeChild(this)},reparentChild(...r){return r.length===1?this.reparentChildAt(r[0],this.children.length):(r.forEach(e=>this.reparentChildAt(e,this.children.length)),r[0])},reparentChildAt(r,e){if(r.parent===this)return this.setChildIndex(r,e),r;let t=r.worldTransform.clone();r.removeFromParent(),this.addChildAt(r,e);let i=this.worldTransform.clone();return i.invert(),t.prepend(i),r.setFromMatrix(t),r}}});var z0,V0=p(()=>{"use strict";z0={collectRenderables(r,e,t){this.parentRenderLayer&&this.parentRenderLayer!==t||this.globalDisplayStatus<7||!this.includeInBuild||(this.sortableChildren&&this.sortChildren(),this.isSimple?this.collectRenderablesSimple(r,e,t):this.renderGroup?e.renderPipes.renderGroup.addRenderGroup(this.renderGroup,r):this.collectRenderablesWithEffects(r,e,t))},collectRenderablesSimple(r,e,t){let i=this.children,s=i.length;for(let n=0;n<s;n++)i[n].collectRenderables(r,e,t)},collectRenderablesWithEffects(r,e,t){let{renderPipes:i}=e;for(let s=0;s<this.effects.length;s++){let n=this.effects[s];i[n.pipe].push(n,this,r)}this.collectRenderablesSimple(r,e,t);for(let s=this.effects.length-1;s>=0;s--){let n=this.effects[s];i[n.pipe].pop(n,this,r)}}}});var yr,bu=p(()=>{"use strict";yr=class{constructor(){this.pipe="filter",this.priority=1}destroy(){for(let e=0;e<this.filters.length;e++)this.filters[e].destroy();this.filters=null,this.filterArea=null}}});var Id,yu,H0=p(()=>{B();br();Id=class{constructor(){this._effectClasses=[],this._tests=[],this._initialized=!1}init(){this._initialized||(this._initialized=!0,this._effectClasses.forEach(e=>{this.add({test:e.test,maskClass:e})}))}add(e){this._tests.push(e)}getMaskEffect(e){this._initialized||this.init();for(let t=0;t<this._tests.length;t++){let i=this._tests[t];if(i.test(e))return me.get(i.maskClass,e)}return e}returnMaskEffect(e){me.return(e)}},yu=new Id;O.handleByList(b.MaskEffect,yu._effectClasses)});var W0,$0=p(()=>{bu();H0();W0={_maskEffect:null,_maskOptions:{inverse:!1},_filterEffect:null,effects:[],_markStructureAsChanged(){let r=this.renderGroup||this.parentRenderGroup;r&&(r.structureDidChange=!0)},addEffect(r){this.effects.indexOf(r)===-1&&(this.effects.push(r),this.effects.sort((t,i)=>t.priority-i.priority),this._markStructureAsChanged(),this._updateIsSimple())},removeEffect(r){let e=this.effects.indexOf(r);e!==-1&&(this.effects.splice(e,1),this._markStructureAsChanged(),this._updateIsSimple())},set mask(r){let e=this._maskEffect;e?.mask!==r&&(e&&(this.removeEffect(e),yu.returnMaskEffect(e),this._maskEffect=null),r!=null&&(this._maskEffect=yu.getMaskEffect(r),this.addEffect(this._maskEffect)))},get mask(){return this._maskEffect?.mask},setMask(r){this._maskOptions={...this._maskOptions,...r},r.mask&&(this.mask=r.mask),this._markStructureAsChanged()},set filters(r){!Array.isArray(r)&&r&&(r=[r]);let e=this._filterEffect||(this._filterEffect=new yr);r=r;let t=r?.length>0,i=e.filters?.length>0,s=t!==i;r=Array.isArray(r)?r.slice(0):r,e.filters=Object.freeze(r),s&&(t?this.addEffect(e):(this.removeEffect(e),e.filters=r??null))},get filters(){return this._filterEffect?.filters},set filterArea(r){this._filterEffect||(this._filterEffect=new yr),this._filterEffect.filterArea=r},get filterArea(){return this._filterEffect?.filterArea}}});var q0,j0=p(()=>{ye();q0={label:null,get name(){return z($,"Container.name property has been removed, use Container.label instead"),this.label},set name(r){z($,"Container.name property has been removed, use Container.label instead"),this.label=r},getChildByName(r,e=!1){return this.getChildByLabel(r,e)},getChildByLabel(r,e=!1){let t=this.children;for(let i=0;i<t.length;i++){let s=t[i];if(s.label===r||r instanceof RegExp&&r.test(s.label))return s}if(e)for(let i=0;i<t.length;i++){let n=t[i].getChildByLabel(r,!0);if(n)return n}return null},getChildrenByLabel(r,e=!1,t=[]){let i=this.children;for(let s=0;s<i.length;s++){let n=i[s];(n.label===r||r instanceof RegExp&&r.test(n.label))&&t.push(n)}if(e)for(let s=0;s<i.length;s++)i[s].getChildrenByLabel(r,!0,t);return t}}});var Tu,Y,Ge=p(()=>{Ft();Tu=[new J,new J,new J,new J],Y=class r{constructor(e=0,t=0,i=0,s=0){this.type="rectangle",this.x=Number(e),this.y=Number(t),this.width=Number(i),this.height=Number(s)}get left(){return this.x}get right(){return this.x+this.width}get top(){return this.y}get bottom(){return this.y+this.height}isEmpty(){return this.left===this.right||this.top===this.bottom}static get EMPTY(){return new r(0,0,0,0)}clone(){return new r(this.x,this.y,this.width,this.height)}copyFromBounds(e){return this.x=e.minX,this.y=e.minY,this.width=e.maxX-e.minX,this.height=e.maxY-e.minY,this}copyFrom(e){return this.x=e.x,this.y=e.y,this.width=e.width,this.height=e.height,this}copyTo(e){return e.copyFrom(this),e}contains(e,t){return this.width<=0||this.height<=0?!1:e>=this.x&&e<this.x+this.width&&t>=this.y&&t<this.y+this.height}strokeContains(e,t,i,s=.5){let{width:n,height:o}=this;if(n<=0||o<=0)return!1;let a=this.x,c=this.y,u=i*(1-s),l=i-u,h=a-u,f=a+n+u,d=c-u,m=c+o+u,x=a+l,g=a+n-l,_=c+l,y=c+o-l;return e>=h&&e<=f&&t>=d&&t<=m&&!(e>x&&e<g&&t>_&&t<y)}intersects(e,t){if(!t){let D=this.x<e.x?e.x:this.x;if((this.right>e.right?e.right:this.right)<=D)return!1;let P=this.y<e.y?e.y:this.y;return(this.bottom>e.bottom?e.bottom:this.bottom)>P}let i=this.left,s=this.right,n=this.top,o=this.bottom;if(s<=i||o<=n)return!1;let a=Tu[0].set(e.left,e.top),c=Tu[1].set(e.left,e.bottom),u=Tu[2].set(e.right,e.top),l=Tu[3].set(e.right,e.bottom);if(u.x<=a.x||c.y<=a.y)return!1;let h=Math.sign(t.a*t.d-t.b*t.c);if(h===0||(t.apply(a,a),t.apply(c,c),t.apply(u,u),t.apply(l,l),Math.max(a.x,c.x,u.x,l.x)<=i||Math.min(a.x,c.x,u.x,l.x)>=s||Math.max(a.y,c.y,u.y,l.y)<=n||Math.min(a.y,c.y,u.y,l.y)>=o))return!1;let f=h*(c.y-a.y),d=h*(a.x-c.x),m=f*i+d*n,x=f*s+d*n,g=f*i+d*o,_=f*s+d*o;if(Math.max(m,x,g,_)<=f*a.x+d*a.y||Math.min(m,x,g,_)>=f*l.x+d*l.y)return!1;let y=h*(a.y-u.y),S=h*(u.x-a.x),T=y*i+S*n,C=y*s+S*n,v=y*i+S*o,E=y*s+S*o;return!(Math.max(T,C,v,E)<=y*a.x+S*a.y||Math.min(T,C,v,E)>=y*l.x+S*l.y)}pad(e=0,t=e){return this.x-=e,this.y-=t,this.width+=e*2,this.height+=t*2,this}fit(e){let t=Math.max(this.x,e.x),i=Math.min(this.x+this.width,e.x+e.width),s=Math.max(this.y,e.y),n=Math.min(this.y+this.height,e.y+e.height);return this.x=t,this.width=Math.max(i-t,0),this.y=s,this.height=Math.max(n-s,0),this}ceil(e=1,t=.001){let i=Math.ceil((this.x+this.width-t)*e)/e,s=Math.ceil((this.y+this.height-t)*e)/e;return this.x=Math.floor((this.x+t)*e)/e,this.y=Math.floor((this.y+t)*e)/e,this.width=i-this.x,this.height=s-this.y,this}enlarge(e){let t=Math.min(this.x,e.x),i=Math.max(this.x+this.width,e.x+e.width),s=Math.min(this.y,e.y),n=Math.max(this.y+this.height,e.y+e.height);return this.x=t,this.width=i-t,this.y=s,this.height=n-s,this}getBounds(e){return e||(e=new r),e.copyFrom(this),e}containsRect(e){if(this.width<=0||this.height<=0)return!1;let t=e.x,i=e.y,s=e.x+e.width,n=e.y+e.height;return t>=this.x&&t<this.x+this.width&&i>=this.y&&i<this.y+this.height&&s>=this.x&&s<this.x+this.width&&n>=this.y&&n<this.y+this.height}set(e,t,i,s){return this.x=e,this.y=t,this.width=i,this.height=s,this}toString(){return`[pixi.js/math:Rectangle x=${this.x} y=${this.y} width=${this.width} height=${this.height}]`}}});var X0,ae,at=p(()=>{te();Ge();X0=new R,ae=class r{constructor(e=1/0,t=1/0,i=-1/0,s=-1/0){this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0,this.matrix=X0,this.minX=e,this.minY=t,this.maxX=i,this.maxY=s}isEmpty(){return this.minX>this.maxX||this.minY>this.maxY}get rectangle(){this._rectangle||(this._rectangle=new Y);let e=this._rectangle;return this.minX>this.maxX||this.minY>this.maxY?(e.x=0,e.y=0,e.width=0,e.height=0):e.copyFromBounds(this),e}clear(){return this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0,this.matrix=X0,this}set(e,t,i,s){this.minX=e,this.minY=t,this.maxX=i,this.maxY=s}addFrame(e,t,i,s,n){n||(n=this.matrix);let o=n.a,a=n.b,c=n.c,u=n.d,l=n.tx,h=n.ty,f=this.minX,d=this.minY,m=this.maxX,x=this.maxY,g=o*e+c*t+l,_=a*e+u*t+h;g<f&&(f=g),_<d&&(d=_),g>m&&(m=g),_>x&&(x=_),g=o*i+c*t+l,_=a*i+u*t+h,g<f&&(f=g),_<d&&(d=_),g>m&&(m=g),_>x&&(x=_),g=o*e+c*s+l,_=a*e+u*s+h,g<f&&(f=g),_<d&&(d=_),g>m&&(m=g),_>x&&(x=_),g=o*i+c*s+l,_=a*i+u*s+h,g<f&&(f=g),_<d&&(d=_),g>m&&(m=g),_>x&&(x=_),this.minX=f,this.minY=d,this.maxX=m,this.maxY=x}addRect(e,t){this.addFrame(e.x,e.y,e.x+e.width,e.y+e.height,t)}addBounds(e,t){this.addFrame(e.minX,e.minY,e.maxX,e.maxY,t)}addBoundsMask(e){this.minX=this.minX>e.minX?this.minX:e.minX,this.minY=this.minY>e.minY?this.minY:e.minY,this.maxX=this.maxX<e.maxX?this.maxX:e.maxX,this.maxY=this.maxY<e.maxY?this.maxY:e.maxY}applyMatrix(e){let t=this.minX,i=this.minY,s=this.maxX,n=this.maxY,{a:o,b:a,c,d:u,tx:l,ty:h}=e,f=o*t+c*i+l,d=a*t+u*i+h;this.minX=f,this.minY=d,this.maxX=f,this.maxY=d,f=o*s+c*i+l,d=a*s+u*i+h,this.minX=f<this.minX?f:this.minX,this.minY=d<this.minY?d:this.minY,this.maxX=f>this.maxX?f:this.maxX,this.maxY=d>this.maxY?d:this.maxY,f=o*t+c*n+l,d=a*t+u*n+h,this.minX=f<this.minX?f:this.minX,this.minY=d<this.minY?d:this.minY,this.maxX=f>this.maxX?f:this.maxX,this.maxY=d>this.maxY?d:this.maxY,f=o*s+c*n+l,d=a*s+u*n+h,this.minX=f<this.minX?f:this.minX,this.minY=d<this.minY?d:this.minY,this.maxX=f>this.maxX?f:this.maxX,this.maxY=d>this.maxY?d:this.maxY}fit(e){return this.minX<e.left&&(this.minX=e.left),this.maxX>e.right&&(this.maxX=e.right),this.minY<e.top&&(this.minY=e.top),this.maxY>e.bottom&&(this.maxY=e.bottom),this}fitBounds(e,t,i,s){return this.minX<e&&(this.minX=e),this.maxX>t&&(this.maxX=t),this.minY<i&&(this.minY=i),this.maxY>s&&(this.maxY=s),this}pad(e,t=e){return this.minX-=e,this.maxX+=e,this.minY-=t,this.maxY+=t,this}ceil(){return this.minX=Math.floor(this.minX),this.minY=Math.floor(this.minY),this.maxX=Math.ceil(this.maxX),this.maxY=Math.ceil(this.maxY),this}clone(){return new r(this.minX,this.minY,this.maxX,this.maxY)}scale(e,t=e){return this.minX*=e,this.minY*=t,this.maxX*=e,this.maxY*=t,this}get x(){return this.minX}set x(e){let t=this.maxX-this.minX;this.minX=e,this.maxX=e+t}get y(){return this.minY}set y(e){let t=this.maxY-this.minY;this.minY=e,this.maxY=e+t}get width(){return this.maxX-this.minX}set width(e){this.maxX=this.minX+e}get height(){return this.maxY-this.minY}set height(e){this.maxY=this.minY+e}get left(){return this.minX}get right(){return this.maxX}get top(){return this.minY}get bottom(){return this.maxY}get isPositive(){return this.maxX-this.minX>0&&this.maxY-this.minY>0}get isValid(){return this.minX+this.minY!==1/0}addVertexData(e,t,i,s){let n=this.minX,o=this.minY,a=this.maxX,c=this.maxY;s||(s=this.matrix);let u=s.a,l=s.b,h=s.c,f=s.d,d=s.tx,m=s.ty;for(let x=t;x<i;x+=2){let g=e[x],_=e[x+1],y=u*g+h*_+d,S=l*g+f*_+m;n=y<n?y:n,o=S<o?S:o,a=y>a?y:a,c=S>c?S:c}this.minX=n,this.minY=o,this.maxX=a,this.maxY=c}containsPoint(e,t){return this.minX<=e&&this.minY<=t&&this.maxX>=e&&this.maxY>=t}toString(){return`[pixi.js:Bounds minX=${this.minX} minY=${this.minY} maxX=${this.maxX} maxY=${this.maxY} width=${this.width} height=${this.height}]`}copyFrom(e){return this.minX=e.minX,this.minY=e.minY,this.maxX=e.maxX,this.maxY=e.maxY,this}}});var De,xt,Fi=p(()=>{te();Rd();at();De=new Ii(R),xt=new Ii(ae)});var ZA,Y0,K0=p(()=>{te();at();Fi();ZA=new R,Y0={getFastGlobalBounds(r,e){e||(e=new ae),e.clear(),this._getGlobalBoundsRecursive(!!r,e,this.parentRenderLayer),e.isValid||e.set(0,0,0,0);let t=this.renderGroup||this.parentRenderGroup;return e.applyMatrix(t.worldTransform),e},_getGlobalBoundsRecursive(r,e,t){let i=e;if(r&&this.parentRenderLayer&&this.parentRenderLayer!==t||this.localDisplayStatus!==7||!this.measurable)return;let s=!!this.effects.length;if((this.renderGroup||s)&&(i=xt.get().clear()),this.boundsArea)e.addRect(this.boundsArea,this.worldTransform);else{if(this.renderPipeId){let o=this.bounds;i.addFrame(o.minX,o.minY,o.maxX,o.maxY,this.groupTransform)}let n=this.children;for(let o=0;o<n.length;o++)n[o]._getGlobalBoundsRecursive(r,i,t)}if(s){let n=!1,o=this.renderGroup||this.parentRenderGroup;for(let a=0;a<this.effects.length;a++)this.effects[a].addBounds&&(n||(n=!0,i.applyMatrix(o.worldTransform)),this.effects[a].addBounds(i,!0));n&&(i.applyMatrix(o.worldTransform.copyTo(ZA).invert()),e.addBounds(i,this.relativeGroupTransform)),e.addBounds(i),xt.return(i)}else this.renderGroup&&(e.addBounds(i,this.relativeGroupTransform),xt.return(i))}}});function Es(r,e,t){t.clear();let i,s;return r.parent?e?i=r.parent.worldTransform:(s=De.get().identity(),i=wu(r,s)):i=R.IDENTITY,Q0(r,t,i,e),s&&De.return(s),t.isValid||t.set(0,0,0,0),t}function Q0(r,e,t,i){if(!r.visible||!r.measurable)return;let s;i?s=r.worldTransform:(r.updateLocalTransform(),s=De.get(),s.appendFrom(r.localTransform,t));let n=e,o=!!r.effects.length;if(o&&(e=xt.get().clear()),r.boundsArea)e.addRect(r.boundsArea,s);else{r.bounds&&(e.matrix=s,e.addBounds(r.bounds));for(let a=0;a<r.children.length;a++)Q0(r.children[a],e,s,i)}if(o){for(let a=0;a<r.effects.length;a++)r.effects[a].addBounds?.(e);n.addBounds(e,R.IDENTITY),xt.return(e)}i||De.return(s)}function wu(r,e){let t=r.parent;return t&&(wu(t,e),t.updateLocalTransform(),e.append(t.localTransform)),e}var uo=p(()=>{te();Fi()});function Su(r,e){if(r===16777215||!e)return e;if(e===16777215||!r)return r;let t=r>>16&255,i=r>>8&255,s=r&255,n=e>>16&255,o=e>>8&255,a=e&255,c=t*n/255|0,u=i*o/255|0,l=s*a/255|0;return(c<<16)+(u<<8)+l}var Fd=p(()=>{"use strict"});function ks(r,e){return r===Z0?e:e===Z0?r:Su(r,e)}var Z0,Ud=p(()=>{Fd();Z0=16777215});function lo(r){return((r&255)<<16)+(r&65280)+(r>>16&255)}var J0,e_=p(()=>{uo();Fi();Ud();J0={getGlobalAlpha(r){if(r)return this.renderGroup?this.renderGroup.worldAlpha:this.parentRenderGroup?this.parentRenderGroup.worldAlpha*this.alpha:this.alpha;let e=this.alpha,t=this.parent;for(;t;)e*=t.alpha,t=t.parent;return e},getGlobalTransform(r,e){if(e)return r.copyFrom(this.worldTransform);this.updateLocalTransform();let t=wu(this,De.get().identity());return r.appendFrom(this.localTransform,t),De.return(t),r},getGlobalTint(r){if(r)return this.renderGroup?lo(this.renderGroup.worldColor):this.parentRenderGroup?lo(ks(this.localColor,this.parentRenderGroup.worldColor)):this.tint;let e=this.localColor,t=this.parent;for(;t;)e=ks(e,t.localColor),t=t.parent;return lo(e)}}});function As(r,e,t){return e.clear(),t||(t=R.IDENTITY),t_(r,e,t,r,!0),e.isValid||e.set(0,0,0,0),e}function t_(r,e,t,i,s){let n;if(s)n=De.get(),n=t.copyTo(n);else{if(!r.visible||!r.measurable)return;r.updateLocalTransform();let c=r.localTransform;n=De.get(),n.appendFrom(c,t)}let o=e,a=!!r.effects.length;if(a&&(e=xt.get().clear()),r.boundsArea)e.addRect(r.boundsArea,n);else{r.renderPipeId&&(e.matrix=n,e.addBounds(r.bounds));let c=r.children;for(let u=0;u<c.length;u++)t_(c[u],e,n,i,!1)}if(a){for(let c=0;c<r.effects.length;c++)r.effects[c].addLocalBounds?.(e,i);o.addBounds(e,R.IDENTITY),xt.return(e)}De.return(n)}var vu=p(()=>{te();Fi()});function Od(r,e){let t=r.children;for(let i=0;i<t.length;i++){let s=t[i],n=s.uid,o=(s._didViewChangeTick&65535)<<16|s._didContainerChangeTick&65535,a=e.index;(e.data[a]!==n||e.data[a+1]!==o)&&(e.data[e.index]=n,e.data[e.index+1]=o,e.didChange=!0),e.index=a+2,s.children.length&&Od(s,e)}return e.didChange}var r_=p(()=>{"use strict"});var JA,i_,s_=p(()=>{te();at();uo();vu();r_();JA=new R,i_={_localBoundsCacheId:-1,_localBoundsCacheData:null,_setWidth(r,e){let t=Math.sign(this.scale.x)||1;e!==0?this.scale.x=r/e*t:this.scale.x=t},_setHeight(r,e){let t=Math.sign(this.scale.y)||1;e!==0?this.scale.y=r/e*t:this.scale.y=t},getLocalBounds(){this._localBoundsCacheData||(this._localBoundsCacheData={data:[],index:1,didChange:!1,localBounds:new ae});let r=this._localBoundsCacheData;return r.index=1,r.didChange=!1,r.data[0]!==this._didViewChangeTick&&(r.didChange=!0,r.data[0]=this._didViewChangeTick),Od(this,r),r.didChange&&As(this,r.localBounds,JA),r.localBounds},getBounds(r,e){return Es(this,r,e||new ae)}}});var n_,o_=p(()=>{"use strict";n_={_onRender:null,set onRender(r){let e=this.renderGroup||this.parentRenderGroup;if(!r){this._onRender&&e?.removeOnRender(this),this._onRender=null;return}this._onRender||e?.addOnRender(this),this._onRender=r},get onRender(){return this._onRender}}});function eP(r,e){return r._zIndex-e._zIndex}var a_,c_=p(()=>{"use strict";a_={_zIndex:0,sortDirty:!1,sortableChildren:!1,get zIndex(){return this._zIndex},set zIndex(r){this._zIndex!==r&&(this._zIndex=r,this.depthOfChildModified())},depthOfChildModified(){this.parent&&(this.parent.sortableChildren=!0,this.parent.sortDirty=!0),this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0)},sortChildren(){this.sortDirty&&(this.sortDirty=!1,this.children.sort(eP))}}});var u_,l_=p(()=>{Ft();Fi();u_={getGlobalPosition(r=new J,e=!1){return this.parent?this.parent.toGlobal(this._position,r,e):(r.x=this._position.x,r.y=this._position.y),r},toGlobal(r,e,t=!1){let i=this.getGlobalTransform(De.get(),t);return e=i.apply(r,e),De.return(i),e},toLocal(r,e,t,i){e&&(r=e.toGlobal(r,t,i));let s=this.getGlobalTransform(De.get(),i);return t=s.applyInverse(r,t),De.return(s),t}}});var Ps,Gd=p(()=>{Oe();Ps=class{constructor(){this.uid=K("instructionSet"),this.instructions=[],this.instructionSize=0,this.renderables=[],this.gcTick=0}reset(){this.instructionSize=0}add(e){this.instructions[this.instructionSize++]=e}log(){this.instructions.length=this.instructionSize,console.table(this.instructions,["type","action"])}}});function Tr(r){return r+=r===0?1:0,--r,r|=r>>>1,r|=r>>>2,r|=r>>>4,r|=r>>>8,r|=r>>>16,r+1}function Nd(r){return!(r&r-1)&&!!r}var ho=p(()=>{"use strict"});function Cu(r){let e={};for(let t in r)r[t]!==void 0&&(e[t]=r[t]);return e}var Ld=p(()=>{"use strict"});function tP(r){let e=h_[r];return e===void 0&&(h_[r]=K("resource")),e}var h_,d_,et,Ui=p(()=>{Ve();Oe();ye();h_=Object.create(null);d_=class f_ extends oe{constructor(e={}){super(),this._resourceType="textureSampler",this._touched=0,this._maxAnisotropy=1,this.destroyed=!1,e={...f_.defaultOptions,...e},this.addressMode=e.addressMode,this.addressModeU=e.addressModeU??this.addressModeU,this.addressModeV=e.addressModeV??this.addressModeV,this.addressModeW=e.addressModeW??this.addressModeW,this.scaleMode=e.scaleMode,this.magFilter=e.magFilter??this.magFilter,this.minFilter=e.minFilter??this.minFilter,this.mipmapFilter=e.mipmapFilter??this.mipmapFilter,this.lodMinClamp=e.lodMinClamp,this.lodMaxClamp=e.lodMaxClamp,this.compare=e.compare,this.maxAnisotropy=e.maxAnisotropy??1}set addressMode(e){this.addressModeU=e,this.addressModeV=e,this.addressModeW=e}get addressMode(){return this.addressModeU}set wrapMode(e){z($,"TextureStyle.wrapMode is now TextureStyle.addressMode"),this.addressMode=e}get wrapMode(){return this.addressMode}set scaleMode(e){this.magFilter=e,this.minFilter=e,this.mipmapFilter=e}get scaleMode(){return this.magFilter}set maxAnisotropy(e){this._maxAnisotropy=Math.min(e,16),this._maxAnisotropy>1&&(this.scaleMode="linear")}get maxAnisotropy(){return this._maxAnisotropy}get _resourceId(){return this._sharedResourceId||this._generateResourceId()}update(){this.emit("change",this),this._sharedResourceId=null}_generateResourceId(){let e=`${this.addressModeU}-${this.addressModeV}-${this.addressModeW}-${this.magFilter}-${this.minFilter}-${this.mipmapFilter}-${this.lodMinClamp}-${this.lodMaxClamp}-${this.compare}-${this._maxAnisotropy}`;return this._sharedResourceId=tP(e),this._resourceId}destroy(){this.destroyed=!0,this.emit("destroy",this),this.emit("change",this),this.removeAllListeners()}};d_.defaultOptions={addressMode:"clamp-to-edge",scaleMode:"linear"};et=d_});var m_,se,tt=p(()=>{Ve();ho();Ld();Oe();Ui();m_=class p_ extends oe{constructor(e={}){super(),this.options=e,this.uid=K("textureSource"),this._resourceType="textureSource",this._resourceId=K("resource"),this.uploadMethodId="unknown",this._resolution=1,this.pixelWidth=1,this.pixelHeight=1,this.width=1,this.height=1,this.sampleCount=1,this.mipLevelCount=1,this.autoGenerateMipmaps=!1,this.format="rgba8unorm",this.dimension="2d",this.antialias=!1,this._touched=0,this._batchTick=-1,this._textureBindLocation=-1,e={...p_.defaultOptions,...e},this.label=e.label??"",this.resource=e.resource,this.autoGarbageCollect=e.autoGarbageCollect,this._resolution=e.resolution,e.width?this.pixelWidth=e.width*this._resolution:this.pixelWidth=this.resource?this.resourceWidth??1:1,e.height?this.pixelHeight=e.height*this._resolution:this.pixelHeight=this.resource?this.resourceHeight??1:1,this.width=this.pixelWidth/this._resolution,this.height=this.pixelHeight/this._resolution,this.format=e.format,this.dimension=e.dimensions,this.mipLevelCount=e.mipLevelCount,this.autoGenerateMipmaps=e.autoGenerateMipmaps,this.sampleCount=e.sampleCount,this.antialias=e.antialias,this.alphaMode=e.alphaMode,this.style=new et(Cu(e)),this.destroyed=!1,this._refreshPOT()}get source(){return this}get style(){return this._style}set style(e){this.style!==e&&(this._style?.off("change",this._onStyleChange,this),this._style=e,this._style?.on("change",this._onStyleChange,this),this._onStyleChange())}get addressMode(){return this._style.addressMode}set addressMode(e){this._style.addressMode=e}get repeatMode(){return this._style.addressMode}set repeatMode(e){this._style.addressMode=e}get magFilter(){return this._style.magFilter}set magFilter(e){this._style.magFilter=e}get minFilter(){return this._style.minFilter}set minFilter(e){this._style.minFilter=e}get mipmapFilter(){return this._style.mipmapFilter}set mipmapFilter(e){this._style.mipmapFilter=e}get lodMinClamp(){return this._style.lodMinClamp}set lodMinClamp(e){this._style.lodMinClamp=e}get lodMaxClamp(){return this._style.lodMaxClamp}set lodMaxClamp(e){this._style.lodMaxClamp=e}_onStyleChange(){this.emit("styleChange",this)}update(){if(this.resource){let e=this._resolution;if(this.resize(this.resourceWidth/e,this.resourceHeight/e))return}this.emit("update",this)}destroy(){this.destroyed=!0,this.emit("destroy",this),this.emit("change",this),this._style&&(this._style.destroy(),this._style=null),this.uploadMethodId=null,this.resource=null,this.removeAllListeners()}unload(){this._resourceId=K("resource"),this.emit("change",this),this.emit("unload",this)}get resourceWidth(){let{resource:e}=this;return e.naturalWidth||e.videoWidth||e.displayWidth||e.width}get resourceHeight(){let{resource:e}=this;return e.naturalHeight||e.videoHeight||e.displayHeight||e.height}get resolution(){return this._resolution}set resolution(e){this._resolution!==e&&(this._resolution=e,this.width=this.pixelWidth/e,this.height=this.pixelHeight/e)}resize(e,t,i){i||(i=this._resolution),e||(e=this.width),t||(t=this.height);let s=Math.round(e*i),n=Math.round(t*i);return this.width=s/i,this.height=n/i,this._resolution=i,this.pixelWidth===s&&this.pixelHeight===n?!1:(this._refreshPOT(),this.pixelWidth=s,this.pixelHeight=n,this.emit("resize",this),this._resourceId=K("resource"),this.emit("change",this),!0)}updateMipmaps(){this.autoGenerateMipmaps&&this.mipLevelCount>1&&this.emit("updateMipmaps",this)}set wrapMode(e){this._style.wrapMode=e}get wrapMode(){return this._style.wrapMode}set scaleMode(e){this._style.scaleMode=e}get scaleMode(){return this._style.scaleMode}_refreshPOT(){this.isPowerOfTwo=Nd(this.pixelWidth)&&Nd(this.pixelHeight)}static test(e){throw new Error("Unimplemented")}};m_.defaultOptions={resolution:1,format:"bgra8unorm",alphaMode:"premultiply-alpha-on-upload",dimensions:"2d",mipLevelCount:1,autoGenerateMipmaps:!1,sampleCount:1,antialias:!1,autoGarbageCollect:!1};se=m_});function rP(){for(let r=0;r<16;r++){let e=[];zd.push(e);for(let t=0;t<16;t++){let i=Eu(Oi[r]*Oi[t]+Ni[r]*Gi[t]),s=Eu(Gi[r]*Oi[t]+Li[r]*Gi[t]),n=Eu(Oi[r]*Ni[t]+Ni[r]*Li[t]),o=Eu(Gi[r]*Ni[t]+Li[r]*Li[t]);for(let a=0;a<16;a++)if(Oi[a]===i&&Gi[a]===s&&Ni[a]===n&&Li[a]===o){e.push(a);break}}}for(let r=0;r<16;r++){let e=new R;e.set(Oi[r],Gi[r],Ni[r],Li[r],0,0),g_.push(e)}}var Oi,Gi,Ni,Li,zd,g_,Eu,xe,x_=p(()=>{te();Oi=[1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1,0,1],Gi=[0,1,1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1],Ni=[0,-1,-1,-1,0,1,1,1,0,1,1,1,0,-1,-1,-1],Li=[1,1,0,-1,-1,-1,0,1,-1,-1,0,1,1,1,0,-1],zd=[],g_=[],Eu=Math.sign;rP();xe={E:0,SE:1,S:2,SW:3,W:4,NW:5,N:6,NE:7,MIRROR_VERTICAL:8,MAIN_DIAGONAL:10,MIRROR_HORIZONTAL:12,REVERSE_DIAGONAL:14,uX:r=>Oi[r],uY:r=>Gi[r],vX:r=>Ni[r],vY:r=>Li[r],inv:r=>r&8?r&15:-r&7,add:(r,e)=>zd[r][e],sub:(r,e)=>zd[r][xe.inv(e)],rotate180:r=>r^4,isVertical:r=>(r&3)===2,byDirection:(r,e)=>Math.abs(r)*2<=Math.abs(e)?e>=0?xe.S:xe.N:Math.abs(e)*2<=Math.abs(r)?r>0?xe.E:xe.W:e>0?r>0?xe.SE:xe.SW:r>0?xe.NE:xe.NW,matrixAppendRotationInv:(r,e,t=0,i=0)=>{let s=g_[xe.inv(e)];s.tx=t,s.ty=i,r.append(s)}}});var Vd,__=p(()=>{"use strict";Vd=()=>{}});var zi,Hd=p(()=>{B();tt();zi=class extends se{constructor(e){let t=e.resource||new Float32Array(e.width*e.height*4),i=e.format;i||(t instanceof Float32Array?i="rgba32float":t instanceof Int32Array||t instanceof Uint32Array?i="rgba32uint":t instanceof Int16Array||t instanceof Uint16Array?i="rgba16uint":(t instanceof Int8Array,i="bgra8unorm")),super({...e,resource:t,format:i}),this.uploadMethodId="buffer"}static test(e){return e instanceof Int8Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Int16Array||e instanceof Uint16Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Float32Array}};zi.extension=b.TextureSource});var b_,Bs,Wd=p(()=>{te();b_=new R,Bs=class{constructor(e,t){this.mapCoord=new R,this.uClampFrame=new Float32Array(4),this.uClampOffset=new Float32Array(2),this._textureID=-1,this._updateID=0,this.clampOffset=0,typeof t>"u"?this.clampMargin=e.width<10?0:.5:this.clampMargin=t,this.isSimple=!1,this.texture=e}get texture(){return this._texture}set texture(e){this.texture!==e&&(this._texture?.removeListener("update",this.update,this),this._texture=e,this._texture.addListener("update",this.update,this),this.update())}multiplyUvs(e,t){t===void 0&&(t=e);let i=this.mapCoord;for(let s=0;s<e.length;s+=2){let n=e[s],o=e[s+1];t[s]=n*i.a+o*i.c+i.tx,t[s+1]=n*i.b+o*i.d+i.ty}return t}update(){let e=this._texture;this._updateID++;let t=e.uvs;this.mapCoord.set(t.x1-t.x0,t.y1-t.y0,t.x3-t.x0,t.y3-t.y0,t.x0,t.y0);let i=e.orig,s=e.trim;s&&(b_.set(i.width/s.width,0,0,i.height/s.height,-s.x/s.width,-s.y/s.height),this.mapCoord.append(b_));let n=e.source,o=this.uClampFrame,a=this.clampMargin/n._resolution,c=this.clampOffset/n._resolution;return o[0]=(e.frame.x+a+c)/n.width,o[1]=(e.frame.y+a+c)/n.height,o[2]=(e.frame.x+e.frame.width-a+c)/n.width,o[3]=(e.frame.y+e.frame.height-a+c)/n.height,this.uClampOffset[0]=this.clampOffset/n.pixelWidth,this.uClampOffset[1]=this.clampOffset/n.pixelHeight,this.isSimple=e.frame.width===n.width&&e.frame.height===n.height&&e.rotate===0,!0}}});var M,le=p(()=>{Ve();x_();Ge();Oe();ye();__();Hd();tt();Wd();M=class extends oe{constructor({source:e,label:t,frame:i,orig:s,trim:n,defaultAnchor:o,defaultBorders:a,rotate:c,dynamic:u}={}){if(super(),this.uid=K("texture"),this.uvs={x0:0,y0:0,x1:0,y1:0,x2:0,y2:0,x3:0,y3:0},this.frame=new Y,this.noFrame=!1,this.dynamic=!1,this.isTexture=!0,this.label=t,this.source=e?.source??new se,this.noFrame=!i,i)this.frame.copyFrom(i);else{let{width:l,height:h}=this._source;this.frame.width=l,this.frame.height=h}this.orig=s||this.frame,this.trim=n,this.rotate=c??0,this.defaultAnchor=o,this.defaultBorders=a,this.destroyed=!1,this.dynamic=u||!1,this.updateUvs()}set source(e){this._source&&this._source.off("resize",this.update,this),this._source=e,e.on("resize",this.update,this),this.emit("update",this)}get source(){return this._source}get textureMatrix(){return this._textureMatrix||(this._textureMatrix=new Bs(this)),this._textureMatrix}get width(){return this.orig.width}get height(){return this.orig.height}updateUvs(){let{uvs:e,frame:t}=this,{width:i,height:s}=this._source,n=t.x/i,o=t.y/s,a=t.width/i,c=t.height/s,u=this.rotate;if(u){let l=a/2,h=c/2,f=n+l,d=o+h;u=xe.add(u,xe.NW),e.x0=f+l*xe.uX(u),e.y0=d+h*xe.uY(u),u=xe.add(u,2),e.x1=f+l*xe.uX(u),e.y1=d+h*xe.uY(u),u=xe.add(u,2),e.x2=f+l*xe.uX(u),e.y2=d+h*xe.uY(u),u=xe.add(u,2),e.x3=f+l*xe.uX(u),e.y3=d+h*xe.uY(u)}else e.x0=n,e.y0=o,e.x1=n+a,e.y1=o,e.x2=n+a,e.y2=o+c,e.x3=n,e.y3=o+c}destroy(e=!1){this._source&&e&&(this._source.destroy(),this._source=null),this._textureMatrix=null,this.destroyed=!0,this.emit("destroy",this),this.removeAllListeners()}update(){this.noFrame&&(this.frame.width=this._source.width,this.frame.height=this._source.height),this.updateUvs(),this.emit("update",this)}get baseTexture(){return z($,"Texture.baseTexture is now Texture.source"),this._source}};M.EMPTY=new M({label:"EMPTY",source:new se({label:"EMPTY"})});M.EMPTY.destroy=Vd;M.WHITE=new M({source:new zi({resource:new Uint8Array([255,255,255,255]),width:1,height:1,alphaMode:"premultiply-alpha-on-upload",label:"WHITE"}),label:"WHITE"});M.WHITE.destroy=Vd});var iP,$d,Te,Hr=p(()=>{ho();tt();le();Ui();iP=0,$d=class{constructor(e){this._poolKeyHash=Object.create(null),this._texturePool={},this.textureOptions=e||{},this.enableFullScreen=!1,this.textureStyle=new et(this.textureOptions)}createTexture(e,t,i){let s=new se({...this.textureOptions,width:e,height:t,resolution:1,antialias:i,autoGarbageCollect:!1});return new M({source:s,label:`texturePool_${iP++}`})}getOptimalTexture(e,t,i=1,s){let n=Math.ceil(e*i-1e-6),o=Math.ceil(t*i-1e-6);n=Tr(n),o=Tr(o);let a=(n<<17)+(o<<1)+(s?1:0);this._texturePool[a]||(this._texturePool[a]=[]);let c=this._texturePool[a].pop();return c||(c=this.createTexture(n,o,s)),c.source._resolution=i,c.source.width=n/i,c.source.height=o/i,c.source.pixelWidth=n,c.source.pixelHeight=o,c.frame.x=0,c.frame.y=0,c.frame.width=e,c.frame.height=t,c.updateUvs(),this._poolKeyHash[c.uid]=a,c}getSameSizeTexture(e,t=!1){let i=e.source;return this.getOptimalTexture(e.width,e.height,i._resolution,t)}returnTexture(e,t=!1){let i=this._poolKeyHash[e.uid];t&&(e.source.style=this.textureStyle),this._texturePool[i].push(e)}clear(e){if(e=e!==!1,e)for(let t in this._texturePool){let i=this._texturePool[t];if(i)for(let s=0;s<i.length;s++)i[s].destroy(!0)}this._texturePool={}}},Te=new $d});var ku,y_=p(()=>{te();Gd();Hr();ku=class{constructor(){this.renderPipeId="renderGroup",this.root=null,this.canBundle=!1,this.renderGroupParent=null,this.renderGroupChildren=[],this.worldTransform=new R,this.worldColorAlpha=4294967295,this.worldColor=16777215,this.worldAlpha=1,this.childrenToUpdate=Object.create(null),this.updateTick=0,this.gcTick=0,this.childrenRenderablesToUpdate={list:[],index:0},this.structureDidChange=!0,this.instructionSet=new Ps,this._onRenderContainers=[],this.textureNeedsUpdate=!0,this.isCachedAsTexture=!1,this._matrixDirty=7}init(e){this.root=e,e._onRender&&this.addOnRender(e),e.didChange=!0;let t=e.children;for(let i=0;i<t.length;i++){let s=t[i];s._updateFlags=15,this.addChild(s)}}enableCacheAsTexture(e={}){this.textureOptions=e,this.isCachedAsTexture=!0,this.textureNeedsUpdate=!0}disableCacheAsTexture(){this.isCachedAsTexture=!1,this.texture&&(Te.returnTexture(this.texture),this.texture=null)}updateCacheTexture(){this.textureNeedsUpdate=!0}reset(){this.renderGroupChildren.length=0;for(let e in this.childrenToUpdate){let t=this.childrenToUpdate[e];t.list.fill(null),t.index=0}this.childrenRenderablesToUpdate.index=0,this.childrenRenderablesToUpdate.list.fill(null),this.root=null,this.updateTick=0,this.structureDidChange=!0,this._onRenderContainers.length=0,this.renderGroupParent=null,this.disableCacheAsTexture()}get localTransform(){return this.root.localTransform}addRenderGroupChild(e){e.renderGroupParent&&e.renderGroupParent._removeRenderGroupChild(e),e.renderGroupParent=this,this.renderGroupChildren.push(e)}_removeRenderGroupChild(e){let t=this.renderGroupChildren.indexOf(e);t>-1&&this.renderGroupChildren.splice(t,1),e.renderGroupParent=null}addChild(e){if(this.structureDidChange=!0,e.parentRenderGroup=this,e.updateTick=-1,e.parent===this.root?e.relativeRenderGroupDepth=1:e.relativeRenderGroupDepth=e.parent.relativeRenderGroupDepth+1,e.didChange=!0,this.onChildUpdate(e),e.renderGroup){this.addRenderGroupChild(e.renderGroup);return}e._onRender&&this.addOnRender(e);let t=e.children;for(let i=0;i<t.length;i++)this.addChild(t[i])}removeChild(e){if(this.structureDidChange=!0,e._onRender&&(e.renderGroup||this.removeOnRender(e)),e.parentRenderGroup=null,e.renderGroup){this._removeRenderGroupChild(e.renderGroup);return}let t=e.children;for(let i=0;i<t.length;i++)this.removeChild(t[i])}removeChildren(e){for(let t=0;t<e.length;t++)this.removeChild(e[t])}onChildUpdate(e){let t=this.childrenToUpdate[e.relativeRenderGroupDepth];t||(t=this.childrenToUpdate[e.relativeRenderGroupDepth]={index:0,list:[]}),t.list[t.index++]=e}updateRenderable(e){e.globalDisplayStatus<7||(this.instructionSet.renderPipes[e.renderPipeId].updateRenderable(e),e.didViewUpdate=!1)}onChildViewUpdate(e){this.childrenRenderablesToUpdate.list[this.childrenRenderablesToUpdate.index++]=e}get isRenderable(){return this.root.localDisplayStatus===7&&this.worldAlpha>0}addOnRender(e){this._onRenderContainers.push(e)}removeOnRender(e){this._onRenderContainers.splice(this._onRenderContainers.indexOf(e),1)}runOnRender(e){for(let t=0;t<this._onRenderContainers.length;t++)this._onRenderContainers[t]._onRender(e)}destroy(){this.disableCacheAsTexture(),this.renderGroupParent=null,this.root=null,this.childrenRenderablesToUpdate=null,this.childrenToUpdate=null,this.renderGroupChildren=null,this._onRenderContainers=null,this.instructionSet=null}getChildren(e=[]){let t=this.root.children;for(let i=0;i<t.length;i++)this._getChildren(t[i],e);return e}_getChildren(e,t=[]){if(t.push(e),e.renderGroup)return t;let i=e.children;for(let s=0;s<i.length;s++)this._getChildren(i[s],t);return t}invalidateMatrices(){this._matrixDirty=7}get inverseWorldTransform(){return(this._matrixDirty&1)===0?this._inverseWorldTransform:(this._matrixDirty&=-2,this._inverseWorldTransform||(this._inverseWorldTransform=new R),this._inverseWorldTransform.copyFrom(this.worldTransform).invert())}get textureOffsetInverseTransform(){return(this._matrixDirty&2)===0?this._textureOffsetInverseTransform:(this._matrixDirty&=-3,this._textureOffsetInverseTransform||(this._textureOffsetInverseTransform=new R),this._textureOffsetInverseTransform.copyFrom(this.inverseWorldTransform).translate(-this._textureBounds.x,-this._textureBounds.y))}get inverseParentTextureTransform(){if((this._matrixDirty&4)===0)return this._inverseParentTextureTransform;this._matrixDirty&=-5;let e=this._parentCacheAsTextureRenderGroup;return e?(this._inverseParentTextureTransform||(this._inverseParentTextureTransform=new R),this._inverseParentTextureTransform.copyFrom(this.worldTransform).prepend(e.inverseWorldTransform).translate(-e._textureBounds.x,-e._textureBounds.y)):this.worldTransform}get cacheToLocalTransform(){return this._parentCacheAsTextureRenderGroup?this._parentCacheAsTextureRenderGroup.textureOffsetInverseTransform:null}}});function T_(r,e,t={}){for(let i in e)!t[i]&&e[i]!==void 0&&(r[i]=e[i])}var w_=p(()=>{"use strict"});var qd,jd,Xd,Rs,fo,Vi,we,jt=p(()=>{Ve();He();R0();B();te();Ad();xu();Oe();ye();br();G0();L0();V0();$0();j0();K0();e_();s_();o_();c_();l_();y_();w_();qd=new We(null),jd=new We(null),Xd=new We(null,1,1),Rs=1,fo=2,Vi=4,we=class r extends oe{constructor(e={}){super(),this.uid=K("renderable"),this._updateFlags=15,this.renderGroup=null,this.parentRenderGroup=null,this.parentRenderGroupIndex=0,this.didChange=!1,this.didViewUpdate=!1,this.relativeRenderGroupDepth=0,this.children=[],this.parent=null,this.includeInBuild=!0,this.measurable=!0,this.isSimple=!0,this.updateTick=-1,this.localTransform=new R,this.relativeGroupTransform=new R,this.groupTransform=this.relativeGroupTransform,this.destroyed=!1,this._position=new We(this,0,0),this._scale=Xd,this._pivot=jd,this._skew=qd,this._cx=1,this._sx=0,this._cy=0,this._sy=1,this._rotation=0,this.localColor=16777215,this.localAlpha=1,this.groupAlpha=1,this.groupColor=16777215,this.groupColorAlpha=4294967295,this.localBlendMode="inherit",this.groupBlendMode="normal",this.localDisplayStatus=7,this.globalDisplayStatus=7,this._didContainerChangeTick=0,this._didViewChangeTick=0,this._didLocalTransformChangeId=-1,this.effects=[],T_(this,e,{children:!0,parent:!0,effects:!0}),e.children?.forEach(t=>this.addChild(t)),e.parent?.addChild(this)}static mixin(e){z("8.8.0","Container.mixin is deprecated, please use extensions.mixin instead."),O.mixin(r,e)}set _didChangeId(e){this._didViewChangeTick=e>>12&4095,this._didContainerChangeTick=e&4095}get _didChangeId(){return this._didContainerChangeTick&4095|(this._didViewChangeTick&4095)<<12}addChild(...e){if(this.allowChildren||z($,"addChild: Only Containers will be allowed to add children in v8.0.0"),e.length>1){for(let s=0;s<e.length;s++)this.addChild(e[s]);return e[0]}let t=e[0],i=this.renderGroup||this.parentRenderGroup;return t.parent===this?(this.children.splice(this.children.indexOf(t),1),this.children.push(t),i&&(i.structureDidChange=!0),t):(t.parent&&t.parent.removeChild(t),this.children.push(t),this.sortableChildren&&(this.sortDirty=!0),t.parent=this,t.didChange=!0,t._updateFlags=15,i&&i.addChild(t),this.emit("childAdded",t,this,this.children.length-1),t.emit("added",this),this._didViewChangeTick++,t._zIndex!==0&&t.depthOfChildModified(),t)}removeChild(...e){if(e.length>1){for(let s=0;s<e.length;s++)this.removeChild(e[s]);return e[0]}let t=e[0],i=this.children.indexOf(t);return i>-1&&(this._didViewChangeTick++,this.children.splice(i,1),this.renderGroup?this.renderGroup.removeChild(t):this.parentRenderGroup&&this.parentRenderGroup.removeChild(t),t.parentRenderLayer&&t.parentRenderLayer.detach(t),t.parent=null,this.emit("childRemoved",t,this,i),t.emit("removed",this)),t}_onUpdate(e){e&&e===this._skew&&this._updateSkew(),this._didContainerChangeTick++,!this.didChange&&(this.didChange=!0,this.parentRenderGroup&&this.parentRenderGroup.onChildUpdate(this))}set isRenderGroup(e){!!this.renderGroup!==e&&(e?this.enableRenderGroup():this.disableRenderGroup())}get isRenderGroup(){return!!this.renderGroup}enableRenderGroup(){if(this.renderGroup)return;let e=this.parentRenderGroup;e?.removeChild(this),this.renderGroup=me.get(ku,this),this.groupTransform=R.IDENTITY,e?.addChild(this),this._updateIsSimple()}disableRenderGroup(){if(!this.renderGroup)return;let e=this.parentRenderGroup;e?.removeChild(this),me.return(this.renderGroup),this.renderGroup=null,this.groupTransform=this.relativeGroupTransform,e?.addChild(this),this._updateIsSimple()}_updateIsSimple(){this.isSimple=!this.renderGroup&&this.effects.length===0}get worldTransform(){return this._worldTransform||(this._worldTransform=new R),this.renderGroup?this._worldTransform.copyFrom(this.renderGroup.worldTransform):this.parentRenderGroup&&this._worldTransform.appendFrom(this.relativeGroupTransform,this.parentRenderGroup.worldTransform),this._worldTransform}get x(){return this._position.x}set x(e){this._position.x=e}get y(){return this._position.y}set y(e){this._position.y=e}get position(){return this._position}set position(e){this._position.copyFrom(e)}get rotation(){return this._rotation}set rotation(e){this._rotation!==e&&(this._rotation=e,this._onUpdate(this._skew))}get angle(){return this.rotation*M0}set angle(e){this.rotation=e*I0}get pivot(){return this._pivot===jd&&(this._pivot=new We(this,0,0)),this._pivot}set pivot(e){this._pivot===jd&&(this._pivot=new We(this,0,0)),typeof e=="number"?this._pivot.set(e):this._pivot.copyFrom(e)}get skew(){return this._skew===qd&&(this._skew=new We(this,0,0)),this._skew}set skew(e){this._skew===qd&&(this._skew=new We(this,0,0)),this._skew.copyFrom(e)}get scale(){return this._scale===Xd&&(this._scale=new We(this,1,1)),this._scale}set scale(e){this._scale===Xd&&(this._scale=new We(this,0,0)),typeof e=="number"?this._scale.set(e):this._scale.copyFrom(e)}get width(){return Math.abs(this.scale.x*this.getLocalBounds().width)}set width(e){let t=this.getLocalBounds().width;this._setWidth(e,t)}get height(){return Math.abs(this.scale.y*this.getLocalBounds().height)}set height(e){let t=this.getLocalBounds().height;this._setHeight(e,t)}getSize(e){e||(e={});let t=this.getLocalBounds();return e.width=Math.abs(this.scale.x*t.width),e.height=Math.abs(this.scale.y*t.height),e}setSize(e,t){let i=this.getLocalBounds();typeof e=="object"?(t=e.height??e.width,e=e.width):t??(t=e),e!==void 0&&this._setWidth(e,i.width),t!==void 0&&this._setHeight(t,i.height)}_updateSkew(){let e=this._rotation,t=this._skew;this._cx=Math.cos(e+t._y),this._sx=Math.sin(e+t._y),this._cy=-Math.sin(e-t._x),this._sy=Math.cos(e-t._x)}updateTransform(e){return this.position.set(typeof e.x=="number"?e.x:this.position.x,typeof e.y=="number"?e.y:this.position.y),this.scale.set(typeof e.scaleX=="number"?e.scaleX||1:this.scale.x,typeof e.scaleY=="number"?e.scaleY||1:this.scale.y),this.rotation=typeof e.rotation=="number"?e.rotation:this.rotation,this.skew.set(typeof e.skewX=="number"?e.skewX:this.skew.x,typeof e.skewY=="number"?e.skewY:this.skew.y),this.pivot.set(typeof e.pivotX=="number"?e.pivotX:this.pivot.x,typeof e.pivotY=="number"?e.pivotY:this.pivot.y),this}setFromMatrix(e){e.decompose(this)}updateLocalTransform(){let e=this._didContainerChangeTick;if(this._didLocalTransformChangeId===e)return;this._didLocalTransformChangeId=e;let t=this.localTransform,i=this._scale,s=this._pivot,n=this._position,o=i._x,a=i._y,c=s._x,u=s._y;t.a=this._cx*o,t.b=this._sx*o,t.c=this._cy*a,t.d=this._sy*a,t.tx=n._x-(c*t.a+u*t.c),t.ty=n._y-(c*t.b+u*t.d)}set alpha(e){e!==this.localAlpha&&(this.localAlpha=e,this._updateFlags|=Rs,this._onUpdate())}get alpha(){return this.localAlpha}set tint(e){let i=q.shared.setValue(e??16777215).toBgrNumber();i!==this.localColor&&(this.localColor=i,this._updateFlags|=Rs,this._onUpdate())}get tint(){return lo(this.localColor)}set blendMode(e){this.localBlendMode!==e&&(this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._updateFlags|=fo,this.localBlendMode=e,this._onUpdate())}get blendMode(){return this.localBlendMode}get visible(){return!!(this.localDisplayStatus&2)}set visible(e){let t=e?2:0;(this.localDisplayStatus&2)!==t&&(this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._updateFlags|=Vi,this.localDisplayStatus^=2,this._onUpdate())}get culled(){return!(this.localDisplayStatus&4)}set culled(e){let t=e?0:4;(this.localDisplayStatus&4)!==t&&(this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._updateFlags|=Vi,this.localDisplayStatus^=4,this._onUpdate())}get renderable(){return!!(this.localDisplayStatus&1)}set renderable(e){let t=e?1:0;(this.localDisplayStatus&1)!==t&&(this._updateFlags|=Vi,this.localDisplayStatus^=1,this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._onUpdate())}get isRenderable(){return this.localDisplayStatus===7&&this.groupAlpha>0}destroy(e=!1){if(this.destroyed)return;this.destroyed=!0;let t;if(this.children.length&&(t=this.removeChildren(0,this.children.length)),this.removeFromParent(),this.parent=null,this._maskEffect=null,this._filterEffect=null,this.effects=null,this._position=null,this._scale=null,this._pivot=null,this._skew=null,this.emit("destroyed",this),this.removeAllListeners(),(typeof e=="boolean"?e:e?.children)&&t)for(let s=0;s<t.length;++s)t[s].destroy(e);this.renderGroup?.destroy(),this.renderGroup=null}};O.mixin(we,N0,Y0,u_,n_,i_,W0,q0,a_,B0,O0,J0,z0)});var Wr,Au=p(()=>{Ft();Wr=class r{constructor(e){this.bubbles=!0,this.cancelBubble=!0,this.cancelable=!1,this.composed=!1,this.defaultPrevented=!1,this.eventPhase=r.prototype.NONE,this.propagationStopped=!1,this.propagationImmediatelyStopped=!1,this.layer=new J,this.page=new J,this.NONE=0,this.CAPTURING_PHASE=1,this.AT_TARGET=2,this.BUBBLING_PHASE=3,this.manager=e}get layerX(){return this.layer.x}get layerY(){return this.layer.y}get pageX(){return this.page.x}get pageY(){return this.page.y}get data(){return this}composedPath(){return this.manager&&(!this.path||this.path[this.path.length-1]!==this.target)&&(this.path=this.target?this.manager.propagationPath(this.target):[]),this.path}initEvent(e,t,i){throw new Error("initEvent() is a legacy DOM API. It is not implemented in the Federated Events API.")}initUIEvent(e,t,i,s,n){throw new Error("initUIEvent() is a legacy DOM API. It is not implemented in the Federated Events API.")}preventDefault(){this.nativeEvent instanceof Event&&this.nativeEvent.cancelable&&this.nativeEvent.preventDefault(),this.defaultPrevented=!0}stopImmediatePropagation(){this.propagationImmediatelyStopped=!0}stopPropagation(){this.propagationStopped=!0}}});function sP(r){return function(e){return e.test(r)}}function mo(r){var e={userAgent:"",platform:"",maxTouchPoints:0};!r&&typeof navigator<"u"?e={userAgent:navigator.userAgent,platform:navigator.platform,maxTouchPoints:navigator.maxTouchPoints||0}:typeof r=="string"?e.userAgent=r:r&&r.userAgent&&(e={userAgent:r.userAgent,platform:r.platform,maxTouchPoints:r.maxTouchPoints||0});var t=e.userAgent,i=t.split("[FBAN");typeof i[1]<"u"&&(t=i[0]),i=t.split("Twitter"),typeof i[1]<"u"&&(t=i[0]);var s=sP(t),n={apple:{phone:s(Yd)&&!s(wr),ipod:s(S_),tablet:!s(Yd)&&(s(v_)||M_(e))&&!s(wr),universal:s(C_),device:(s(Yd)||s(S_)||s(v_)||s(C_)||M_(e))&&!s(wr)},amazon:{phone:s(Ds),tablet:!s(Ds)&&s(Pu),device:s(Ds)||s(Pu)},android:{phone:!s(wr)&&s(Ds)||!s(wr)&&s(Kd),tablet:!s(wr)&&!s(Ds)&&!s(Kd)&&(s(Pu)||s(E_)),device:!s(wr)&&(s(Ds)||s(Pu)||s(Kd)||s(E_))||s(/\bokhttp\b/i)},windows:{phone:s(wr),tablet:s(k_),device:s(wr)||s(k_)},other:{blackberry:s(A_),blackberry10:s(P_),opera:s(B_),firefox:s(D_),chrome:s(R_),device:s(A_)||s(P_)||s(B_)||s(D_)||s(R_)},any:!1,phone:!1,tablet:!1};return n.any=n.apple.device||n.android.device||n.windows.device||n.other.device,n.phone=n.apple.phone||n.android.phone||n.windows.phone,n.tablet=n.apple.tablet||n.android.tablet||n.windows.tablet,n}var Yd,S_,v_,C_,Kd,E_,Ds,Pu,wr,k_,A_,P_,B_,R_,D_,M_,Qd=p(()=>{Yd=/iPhone/i,S_=/iPod/i,v_=/iPad/i,C_=/\biOS-universal(?:.+)Mac\b/i,Kd=/\bAndroid(?:.+)Mobile\b/i,E_=/Android/i,Ds=/(?:SD4930UR|\bSilk(?:.+)Mobile\b)/i,Pu=/Silk/i,wr=/Windows Phone/i,k_=/\bWindows(?:.+)ARM\b/i,A_=/BlackBerry/i,P_=/BB10/i,B_=/Opera Mini/i,R_=/\b(CriOS|Chrome)(?:.+)Mobile/i,D_=/Mobile(?:.+)Firefox\b/i,M_=function(r){return typeof r<"u"&&r.platform==="MacIntel"&&typeof r.maxTouchPoints=="number"&&r.maxTouchPoints>1&&typeof MSStream>"u"}});var I_=p(()=>{Qd();Qd()});var nP,F_,U_=p(()=>{I_();nP=mo.default??mo,F_=nP(globalThis.navigator)});var oP,Bu,aP,cP,O_,G_,uP,lP,hP,Zd,L_,z_=p(()=>{Au();B();U_();Md();oP=9,Bu=100,aP=0,cP=0,O_=2,G_=1,uP=-1e3,lP=-1e3,hP=2,Zd=class N_{constructor(e,t=F_){this._mobileInfo=t,this.debug=!1,this._activateOnTab=!0,this._deactivateOnMouseMove=!0,this._isActive=!1,this._isMobileAccessibility=!1,this._div=null,this._pool=[],this._renderId=0,this._children=[],this._androidUpdateCount=0,this._androidUpdateFrequency=500,this._hookDiv=null,(t.tablet||t.phone)&&this._createTouchHook(),this._renderer=e}get isActive(){return this._isActive}get isMobileAccessibility(){return this._isMobileAccessibility}get hookDiv(){return this._hookDiv}_createTouchHook(){let e=document.createElement("button");e.style.width=`${G_}px`,e.style.height=`${G_}px`,e.style.position="absolute",e.style.top=`${uP}px`,e.style.left=`${lP}px`,e.style.zIndex=hP.toString(),e.style.backgroundColor="#FF0000",e.title="select to enable accessibility for this content",e.addEventListener("focus",()=>{this._isMobileAccessibility=!0,this._activate(),this._destroyTouchHook()}),document.body.appendChild(e),this._hookDiv=e}_destroyTouchHook(){this._hookDiv&&(document.body.removeChild(this._hookDiv),this._hookDiv=null)}_activate(){if(this._isActive)return;this._isActive=!0,this._div||(this._div=document.createElement("div"),this._div.style.width=`${Bu}px`,this._div.style.height=`${Bu}px`,this._div.style.position="absolute",this._div.style.top=`${aP}px`,this._div.style.left=`${cP}px`,this._div.style.zIndex=O_.toString(),this._div.style.pointerEvents="none"),this._activateOnTab&&(this._onKeyDown=this._onKeyDown.bind(this),globalThis.addEventListener("keydown",this._onKeyDown,!1)),this._deactivateOnMouseMove&&(this._onMouseMove=this._onMouseMove.bind(this),globalThis.document.addEventListener("mousemove",this._onMouseMove,!0));let e=this._renderer.view.canvas;if(e.parentNode)e.parentNode.appendChild(this._div),this._initAccessibilitySetup();else{let t=new MutationObserver(()=>{e.parentNode&&(e.parentNode.appendChild(this._div),t.disconnect(),this._initAccessibilitySetup())});t.observe(document.body,{childList:!0,subtree:!0})}}_initAccessibilitySetup(){this._renderer.runners.postrender.add(this),this._renderer.lastObjectRendered&&this._updateAccessibleObjects(this._renderer.lastObjectRendered)}_deactivate(){if(!(!this._isActive||this._isMobileAccessibility)){this._isActive=!1,globalThis.document.removeEventListener("mousemove",this._onMouseMove,!0),this._activateOnTab&&globalThis.addEventListener("keydown",this._onKeyDown,!1),this._renderer.runners.postrender.remove(this);for(let e of this._children)e._accessibleDiv&&e._accessibleDiv.parentNode&&(e._accessibleDiv.parentNode.removeChild(e._accessibleDiv),e._accessibleDiv=null),e._accessibleActive=!1;this._pool.forEach(e=>{e.parentNode&&e.parentNode.removeChild(e)}),this._div&&this._div.parentNode&&this._div.parentNode.removeChild(this._div),this._pool=[],this._children=[]}}_updateAccessibleObjects(e){if(!e.visible||!e.accessibleChildren)return;e.accessible&&(e._accessibleActive||this._addChild(e),e._renderId=this._renderId);let t=e.children;if(t)for(let i=0;i<t.length;i++)this._updateAccessibleObjects(t[i])}init(e){let i={accessibilityOptions:{...N_.defaultOptions,...e?.accessibilityOptions||{}}};this.debug=i.accessibilityOptions.debug,this._activateOnTab=i.accessibilityOptions.activateOnTab,this._deactivateOnMouseMove=i.accessibilityOptions.deactivateOnMouseMove,i.accessibilityOptions.enabledByDefault?this._activate():this._activateOnTab&&(this._onKeyDown=this._onKeyDown.bind(this),globalThis.addEventListener("keydown",this._onKeyDown,!1)),this._renderer.runners.postrender.remove(this)}postrender(){let e=performance.now();if(this._mobileInfo.android.device&&e<this._androidUpdateCount||(this._androidUpdateCount=e+this._androidUpdateFrequency,!this._renderer.renderingToScreen||!this._renderer.view.canvas))return;let t=new Set;if(this._renderer.lastObjectRendered){this._updateAccessibleObjects(this._renderer.lastObjectRendered);for(let i of this._children)i._renderId===this._renderId&&t.add(this._children.indexOf(i))}for(let i=this._children.length-1;i>=0;i--){let s=this._children[i];t.has(i)||(s._accessibleDiv&&s._accessibleDiv.parentNode&&(s._accessibleDiv.parentNode.removeChild(s._accessibleDiv),this._pool.push(s._accessibleDiv),s._accessibleDiv=null),s._accessibleActive=!1,_u(this._children,i,1))}if(this._renderer.renderingToScreen){let{x:i,y:s,width:n,height:o}=this._renderer.screen,a=this._div;a.style.left=`${i}px`,a.style.top=`${s}px`,a.style.width=`${n}px`,a.style.height=`${o}px`}for(let i=0;i<this._children.length;i++){let s=this._children[i];if(!s._accessibleActive||!s._accessibleDiv)continue;let n=s._accessibleDiv,o=s.hitArea||s.getBounds().rectangle;if(s.hitArea){let a=s.worldTransform,c=this._renderer.resolution,u=this._renderer.resolution;n.style.left=`${(a.tx+o.x*a.a)*c}px`,n.style.top=`${(a.ty+o.y*a.d)*u}px`,n.style.width=`${o.width*a.a*c}px`,n.style.height=`${o.height*a.d*u}px`}else{this._capHitArea(o);let a=this._renderer.resolution,c=this._renderer.resolution;n.style.left=`${o.x*a}px`,n.style.top=`${o.y*c}px`,n.style.width=`${o.width*a}px`,n.style.height=`${o.height*c}px`}}this._renderId++}_updateDebugHTML(e){e.innerHTML=`type: ${e.type}</br> title : ${e.title}</br> tabIndex: ${e.tabIndex}`}_capHitArea(e){e.x<0&&(e.width+=e.x,e.x=0),e.y<0&&(e.height+=e.y,e.y=0);let{width:t,height:i}=this._renderer;e.x+e.width>t&&(e.width=t-e.x),e.y+e.height>i&&(e.height=i-e.y)}_addChild(e){let t=this._pool.pop();t||(e.accessibleType==="button"?t=document.createElement("button"):(t=document.createElement(e.accessibleType),t.style.cssText=`
6
+ Deprecated since v${r}`),console.warn(i))),lx[e]=!0}var lx,$,hx,ye=p(()=>{"use strict";lx={},$="8.0.0",hx="8.3.4"});var xi,jh=p(()=>{"use strict";xi=class{constructor(e,t){this._pool=[],this._count=0,this._index=0,this._classType=e,t&&this.prepopulate(t)}prepopulate(e){for(let t=0;t<e;t++)this._pool[this._index++]=new this._classType;this._count+=e}get(e){let t;return this._index>0?t=this._pool[--this._index]:t=new this._classType,t.init?.(e),t}return(e){e.reset?.(),this._pool[this._index++]=e}get totalSize(){return this._count}get totalFree(){return this._index}get totalUsed(){return this._count-this._index}clear(){this._pool.length=0,this._index=0}}});var Xh,pe,gr=p(()=>{jh();Xh=class{constructor(){this._poolsByClass=new Map}prepopulate(e,t){this.getPool(e).prepopulate(t)}get(e,t){return this.getPool(e).get(t)}return(e){this.getPool(e.constructor).return(e)}getPool(e){return this._poolsByClass.has(e)||this._poolsByClass.set(e,new xi(e)),this._poolsByClass.get(e)}stats(){let e={};return this._poolsByClass.forEach(t=>{let i=e[t._classType.name]?t._classType.name+t._classType.ID:t._classType.name;e[i]={free:t.totalFree,used:t.totalUsed,size:t.totalSize}}),e}},pe=new Xh});var dx,fx=p(()=>{ye();dx={get isCachedAsTexture(){return!!this.renderGroup?.isCachedAsTexture},cacheAsTexture(r){typeof r=="boolean"&&r===!1?this.disableRenderGroup():(this.enableRenderGroup(),this.renderGroup.enableCacheAsTexture(r===!0?{}:r))},updateCacheTexture(){this.renderGroup?.updateCacheTexture()},get cacheAsBitmap(){return this.isCachedAsTexture},set cacheAsBitmap(r){z("v8.6.0","cacheAsBitmap is deprecated, use cacheAsTexture instead."),this.cacheAsTexture(r)}}});function Fc(r,e,t){let i=r.length,s;if(e>=i||t===0)return;t=e+t>i?i-e:t;let n=i-t;for(s=e;s<n;++s)r[s]=r[s+t];r.length=n}var Yh=p(()=>{"use strict"});var mx,px=p(()=>{Yh();ye();mx={allowChildren:!0,removeChildren(r=0,e){let t=e??this.children.length,i=t-r,s=[];if(i>0&&i<=t){for(let o=t-1;o>=r;o--){let a=this.children[o];a&&(s.push(a),a.parent=null)}Fc(this.children,r,t);let n=this.renderGroup||this.parentRenderGroup;n&&n.removeChildren(s);for(let o=0;o<s.length;++o){let a=s[o];a.parentRenderLayer?.detach(a),this.emit("childRemoved",a,this,o),s[o].emit("removed",this)}return s.length>0&&this._didViewChangeTick++,s}else if(i===0&&this.children.length===0)return s;throw new RangeError("removeChildren: numeric values are outside the acceptable range.")},removeChildAt(r){let e=this.getChildAt(r);return this.removeChild(e)},getChildAt(r){if(r<0||r>=this.children.length)throw new Error(`getChildAt: Index (${r}) does not exist.`);return this.children[r]},setChildIndex(r,e){if(e<0||e>=this.children.length)throw new Error(`The index ${e} supplied is out of bounds ${this.children.length}`);this.getChildIndex(r),this.addChildAt(r,e)},getChildIndex(r){let e=this.children.indexOf(r);if(e===-1)throw new Error("The supplied Container must be a child of the caller");return e},addChildAt(r,e){this.allowChildren||z($,"addChildAt: Only Containers will be allowed to add children in v8.0.0");let{children:t}=this;if(e<0||e>t.length)throw new Error(`${r}addChildAt: The index ${e} supplied is out of bounds ${t.length}`);if(r.parent){let s=r.parent.children.indexOf(r);if(r.parent===this&&s===e)return r;s!==-1&&r.parent.children.splice(s,1)}e===t.length?t.push(r):t.splice(e,0,r),r.parent=this,r.didChange=!0,r._updateFlags=15;let i=this.renderGroup||this.parentRenderGroup;return i&&i.addChild(r),this.sortableChildren&&(this.sortDirty=!0),this.emit("childAdded",r,this,e),r.emit("added",this),r},swapChildren(r,e){if(r===e)return;let t=this.getChildIndex(r),i=this.getChildIndex(e);this.children[t]=e,this.children[i]=r;let s=this.renderGroup||this.parentRenderGroup;s&&(s.structureDidChange=!0),this._didContainerChangeTick++},removeFromParent(){this.parent?.removeChild(this)},reparentChild(...r){return r.length===1?this.reparentChildAt(r[0],this.children.length):(r.forEach(e=>this.reparentChildAt(e,this.children.length)),r[0])},reparentChildAt(r,e){if(r.parent===this)return this.setChildIndex(r,e),r;let t=r.worldTransform.clone();r.removeFromParent(),this.addChildAt(r,e);let i=this.worldTransform.clone();return i.invert(),t.prepend(i),r.setFromMatrix(t),r}}});var gx,xx=p(()=>{"use strict";gx={collectRenderables(r,e,t){this.parentRenderLayer&&this.parentRenderLayer!==t||this.globalDisplayStatus<7||!this.includeInBuild||(this.sortableChildren&&this.sortChildren(),this.isSimple?this.collectRenderablesSimple(r,e,t):this.renderGroup?e.renderPipes.renderGroup.addRenderGroup(this.renderGroup,r):this.collectRenderablesWithEffects(r,e,t))},collectRenderablesSimple(r,e,t){let i=this.children,s=i.length;for(let n=0;n<s;n++)i[n].collectRenderables(r,e,t)},collectRenderablesWithEffects(r,e,t){let{renderPipes:i}=e;for(let s=0;s<this.effects.length;s++){let n=this.effects[s];i[n.pipe].push(n,this,r)}this.collectRenderablesSimple(r,e,t);for(let s=this.effects.length-1;s>=0;s--){let n=this.effects[s];i[n.pipe].pop(n,this,r)}}}});var xr,Uc=p(()=>{"use strict";xr=class{constructor(){this.pipe="filter",this.priority=1}destroy(){for(let e=0;e<this.filters.length;e++)this.filters[e].destroy();this.filters=null,this.filterArea=null}}});var Kh,Oc,_x=p(()=>{P();gr();Kh=class{constructor(){this._effectClasses=[],this._tests=[],this._initialized=!1}init(){this._initialized||(this._initialized=!0,this._effectClasses.forEach(e=>{this.add({test:e.test,maskClass:e})}))}add(e){this._tests.push(e)}getMaskEffect(e){this._initialized||this.init();for(let t=0;t<this._tests.length;t++){let i=this._tests[t];if(i.test(e))return pe.get(i.maskClass,e)}return e}returnMaskEffect(e){pe.return(e)}},Oc=new Kh;O.handleByList(b.MaskEffect,Oc._effectClasses)});var bx,yx=p(()=>{Uc();_x();bx={_maskEffect:null,_maskOptions:{inverse:!1},_filterEffect:null,effects:[],_markStructureAsChanged(){let r=this.renderGroup||this.parentRenderGroup;r&&(r.structureDidChange=!0)},addEffect(r){this.effects.indexOf(r)===-1&&(this.effects.push(r),this.effects.sort((t,i)=>t.priority-i.priority),this._markStructureAsChanged(),this._updateIsSimple())},removeEffect(r){let e=this.effects.indexOf(r);e!==-1&&(this.effects.splice(e,1),this._markStructureAsChanged(),this._updateIsSimple())},set mask(r){let e=this._maskEffect;e?.mask!==r&&(e&&(this.removeEffect(e),Oc.returnMaskEffect(e),this._maskEffect=null),r!=null&&(this._maskEffect=Oc.getMaskEffect(r),this.addEffect(this._maskEffect)))},get mask(){return this._maskEffect?.mask},setMask(r){this._maskOptions={...this._maskOptions,...r},r.mask&&(this.mask=r.mask),this._markStructureAsChanged()},set filters(r){!Array.isArray(r)&&r&&(r=[r]);let e=this._filterEffect||(this._filterEffect=new xr);r=r;let t=r?.length>0,i=e.filters?.length>0,s=t!==i;r=Array.isArray(r)?r.slice(0):r,e.filters=Object.freeze(r),s&&(t?this.addEffect(e):(this.removeEffect(e),e.filters=r??null))},get filters(){return this._filterEffect?.filters},set filterArea(r){this._filterEffect||(this._filterEffect=new xr),this._filterEffect.filterArea=r},get filterArea(){return this._filterEffect?.filterArea}}});var Tx,wx=p(()=>{ye();Tx={label:null,get name(){return z($,"Container.name property has been removed, use Container.label instead"),this.label},set name(r){z($,"Container.name property has been removed, use Container.label instead"),this.label=r},getChildByName(r,e=!1){return this.getChildByLabel(r,e)},getChildByLabel(r,e=!1){let t=this.children;for(let i=0;i<t.length;i++){let s=t[i];if(s.label===r||r instanceof RegExp&&r.test(s.label))return s}if(e)for(let i=0;i<t.length;i++){let n=t[i].getChildByLabel(r,!0);if(n)return n}return null},getChildrenByLabel(r,e=!1,t=[]){let i=this.children;for(let s=0;s<i.length;s++){let n=i[s];(n.label===r||r instanceof RegExp&&r.test(n.label))&&t.push(n)}if(e)for(let s=0;s<i.length;s++)i[s].getChildrenByLabel(r,!0,t);return t}}});var Gc,Y,Ge=p(()=>{It();Gc=[new Z,new Z,new Z,new Z],Y=class r{constructor(e=0,t=0,i=0,s=0){this.type="rectangle",this.x=Number(e),this.y=Number(t),this.width=Number(i),this.height=Number(s)}get left(){return this.x}get right(){return this.x+this.width}get top(){return this.y}get bottom(){return this.y+this.height}isEmpty(){return this.left===this.right||this.top===this.bottom}static get EMPTY(){return new r(0,0,0,0)}clone(){return new r(this.x,this.y,this.width,this.height)}copyFromBounds(e){return this.x=e.minX,this.y=e.minY,this.width=e.maxX-e.minX,this.height=e.maxY-e.minY,this}copyFrom(e){return this.x=e.x,this.y=e.y,this.width=e.width,this.height=e.height,this}copyTo(e){return e.copyFrom(this),e}contains(e,t){return this.width<=0||this.height<=0?!1:e>=this.x&&e<this.x+this.width&&t>=this.y&&t<this.y+this.height}strokeContains(e,t,i,s=.5){let{width:n,height:o}=this;if(n<=0||o<=0)return!1;let a=this.x,c=this.y,u=i*(1-s),l=i-u,h=a-u,f=a+n+u,d=c-u,m=c+o+u,x=a+l,g=a+n-l,_=c+l,y=c+o-l;return e>=h&&e<=f&&t>=d&&t<=m&&!(e>x&&e<g&&t>_&&t<y)}intersects(e,t){if(!t){let M=this.x<e.x?e.x:this.x;if((this.right>e.right?e.right:this.right)<=M)return!1;let B=this.y<e.y?e.y:this.y;return(this.bottom>e.bottom?e.bottom:this.bottom)>B}let i=this.left,s=this.right,n=this.top,o=this.bottom;if(s<=i||o<=n)return!1;let a=Gc[0].set(e.left,e.top),c=Gc[1].set(e.left,e.bottom),u=Gc[2].set(e.right,e.top),l=Gc[3].set(e.right,e.bottom);if(u.x<=a.x||c.y<=a.y)return!1;let h=Math.sign(t.a*t.d-t.b*t.c);if(h===0||(t.apply(a,a),t.apply(c,c),t.apply(u,u),t.apply(l,l),Math.max(a.x,c.x,u.x,l.x)<=i||Math.min(a.x,c.x,u.x,l.x)>=s||Math.max(a.y,c.y,u.y,l.y)<=n||Math.min(a.y,c.y,u.y,l.y)>=o))return!1;let f=h*(c.y-a.y),d=h*(a.x-c.x),m=f*i+d*n,x=f*s+d*n,g=f*i+d*o,_=f*s+d*o;if(Math.max(m,x,g,_)<=f*a.x+d*a.y||Math.min(m,x,g,_)>=f*l.x+d*l.y)return!1;let y=h*(a.y-u.y),S=h*(u.x-a.x),T=y*i+S*n,C=y*s+S*n,v=y*i+S*o,E=y*s+S*o;return!(Math.max(T,C,v,E)<=y*a.x+S*a.y||Math.min(T,C,v,E)>=y*l.x+S*l.y)}pad(e=0,t=e){return this.x-=e,this.y-=t,this.width+=e*2,this.height+=t*2,this}fit(e){let t=Math.max(this.x,e.x),i=Math.min(this.x+this.width,e.x+e.width),s=Math.max(this.y,e.y),n=Math.min(this.y+this.height,e.y+e.height);return this.x=t,this.width=Math.max(i-t,0),this.y=s,this.height=Math.max(n-s,0),this}ceil(e=1,t=.001){let i=Math.ceil((this.x+this.width-t)*e)/e,s=Math.ceil((this.y+this.height-t)*e)/e;return this.x=Math.floor((this.x+t)*e)/e,this.y=Math.floor((this.y+t)*e)/e,this.width=i-this.x,this.height=s-this.y,this}enlarge(e){let t=Math.min(this.x,e.x),i=Math.max(this.x+this.width,e.x+e.width),s=Math.min(this.y,e.y),n=Math.max(this.y+this.height,e.y+e.height);return this.x=t,this.width=i-t,this.y=s,this.height=n-s,this}getBounds(e){return e||(e=new r),e.copyFrom(this),e}containsRect(e){if(this.width<=0||this.height<=0)return!1;let t=e.x,i=e.y,s=e.x+e.width,n=e.y+e.height;return t>=this.x&&t<this.x+this.width&&i>=this.y&&i<this.y+this.height&&s>=this.x&&s<this.x+this.width&&n>=this.y&&n<this.y+this.height}set(e,t,i,s){return this.x=e,this.y=t,this.width=i,this.height=s,this}toString(){return`[pixi.js/math:Rectangle x=${this.x} y=${this.y} width=${this.width} height=${this.height}]`}}});var Sx,ae,ot=p(()=>{ee();Ge();Sx=new R,ae=class r{constructor(e=1/0,t=1/0,i=-1/0,s=-1/0){this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0,this.matrix=Sx,this.minX=e,this.minY=t,this.maxX=i,this.maxY=s}isEmpty(){return this.minX>this.maxX||this.minY>this.maxY}get rectangle(){this._rectangle||(this._rectangle=new Y);let e=this._rectangle;return this.minX>this.maxX||this.minY>this.maxY?(e.x=0,e.y=0,e.width=0,e.height=0):e.copyFromBounds(this),e}clear(){return this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0,this.matrix=Sx,this}set(e,t,i,s){this.minX=e,this.minY=t,this.maxX=i,this.maxY=s}addFrame(e,t,i,s,n){n||(n=this.matrix);let o=n.a,a=n.b,c=n.c,u=n.d,l=n.tx,h=n.ty,f=this.minX,d=this.minY,m=this.maxX,x=this.maxY,g=o*e+c*t+l,_=a*e+u*t+h;g<f&&(f=g),_<d&&(d=_),g>m&&(m=g),_>x&&(x=_),g=o*i+c*t+l,_=a*i+u*t+h,g<f&&(f=g),_<d&&(d=_),g>m&&(m=g),_>x&&(x=_),g=o*e+c*s+l,_=a*e+u*s+h,g<f&&(f=g),_<d&&(d=_),g>m&&(m=g),_>x&&(x=_),g=o*i+c*s+l,_=a*i+u*s+h,g<f&&(f=g),_<d&&(d=_),g>m&&(m=g),_>x&&(x=_),this.minX=f,this.minY=d,this.maxX=m,this.maxY=x}addRect(e,t){this.addFrame(e.x,e.y,e.x+e.width,e.y+e.height,t)}addBounds(e,t){this.addFrame(e.minX,e.minY,e.maxX,e.maxY,t)}addBoundsMask(e){this.minX=this.minX>e.minX?this.minX:e.minX,this.minY=this.minY>e.minY?this.minY:e.minY,this.maxX=this.maxX<e.maxX?this.maxX:e.maxX,this.maxY=this.maxY<e.maxY?this.maxY:e.maxY}applyMatrix(e){let t=this.minX,i=this.minY,s=this.maxX,n=this.maxY,{a:o,b:a,c,d:u,tx:l,ty:h}=e,f=o*t+c*i+l,d=a*t+u*i+h;this.minX=f,this.minY=d,this.maxX=f,this.maxY=d,f=o*s+c*i+l,d=a*s+u*i+h,this.minX=f<this.minX?f:this.minX,this.minY=d<this.minY?d:this.minY,this.maxX=f>this.maxX?f:this.maxX,this.maxY=d>this.maxY?d:this.maxY,f=o*t+c*n+l,d=a*t+u*n+h,this.minX=f<this.minX?f:this.minX,this.minY=d<this.minY?d:this.minY,this.maxX=f>this.maxX?f:this.maxX,this.maxY=d>this.maxY?d:this.maxY,f=o*s+c*n+l,d=a*s+u*n+h,this.minX=f<this.minX?f:this.minX,this.minY=d<this.minY?d:this.minY,this.maxX=f>this.maxX?f:this.maxX,this.maxY=d>this.maxY?d:this.maxY}fit(e){return this.minX<e.left&&(this.minX=e.left),this.maxX>e.right&&(this.maxX=e.right),this.minY<e.top&&(this.minY=e.top),this.maxY>e.bottom&&(this.maxY=e.bottom),this}fitBounds(e,t,i,s){return this.minX<e&&(this.minX=e),this.maxX>t&&(this.maxX=t),this.minY<i&&(this.minY=i),this.maxY>s&&(this.maxY=s),this}pad(e,t=e){return this.minX-=e,this.maxX+=e,this.minY-=t,this.maxY+=t,this}ceil(){return this.minX=Math.floor(this.minX),this.minY=Math.floor(this.minY),this.maxX=Math.ceil(this.maxX),this.maxY=Math.ceil(this.maxY),this}clone(){return new r(this.minX,this.minY,this.maxX,this.maxY)}scale(e,t=e){return this.minX*=e,this.minY*=t,this.maxX*=e,this.maxY*=t,this}get x(){return this.minX}set x(e){let t=this.maxX-this.minX;this.minX=e,this.maxX=e+t}get y(){return this.minY}set y(e){let t=this.maxY-this.minY;this.minY=e,this.maxY=e+t}get width(){return this.maxX-this.minX}set width(e){this.maxX=this.minX+e}get height(){return this.maxY-this.minY}set height(e){this.maxY=this.minY+e}get left(){return this.minX}get right(){return this.maxX}get top(){return this.minY}get bottom(){return this.maxY}get isPositive(){return this.maxX-this.minX>0&&this.maxY-this.minY>0}get isValid(){return this.minX+this.minY!==1/0}addVertexData(e,t,i,s){let n=this.minX,o=this.minY,a=this.maxX,c=this.maxY;s||(s=this.matrix);let u=s.a,l=s.b,h=s.c,f=s.d,d=s.tx,m=s.ty;for(let x=t;x<i;x+=2){let g=e[x],_=e[x+1],y=u*g+h*_+d,S=l*g+f*_+m;n=y<n?y:n,o=S<o?S:o,a=y>a?y:a,c=S>c?S:c}this.minX=n,this.minY=o,this.maxX=a,this.maxY=c}containsPoint(e,t){return this.minX<=e&&this.minY<=t&&this.maxX>=e&&this.maxY>=t}toString(){return`[pixi.js:Bounds minX=${this.minX} minY=${this.minY} maxX=${this.maxX} maxY=${this.maxY} width=${this.width} height=${this.height}]`}copyFrom(e){return this.minX=e.minX,this.minY=e.minY,this.maxX=e.maxX,this.maxY=e.maxY,this}}});var Re,gt,_i=p(()=>{ee();jh();ot();Re=new xi(R),gt=new xi(ae)});var Sk,vx,Cx=p(()=>{ee();ot();_i();Sk=new R,vx={getFastGlobalBounds(r,e){e||(e=new ae),e.clear(),this._getGlobalBoundsRecursive(!!r,e,this.parentRenderLayer),e.isValid||e.set(0,0,0,0);let t=this.renderGroup||this.parentRenderGroup;return e.applyMatrix(t.worldTransform),e},_getGlobalBoundsRecursive(r,e,t){let i=e;if(r&&this.parentRenderLayer&&this.parentRenderLayer!==t||this.localDisplayStatus!==7||!this.measurable)return;let s=!!this.effects.length;if((this.renderGroup||s)&&(i=gt.get().clear()),this.boundsArea)e.addRect(this.boundsArea,this.worldTransform);else{if(this.renderPipeId){let o=this.bounds;i.addFrame(o.minX,o.minY,o.maxX,o.maxY,this.groupTransform)}let n=this.children;for(let o=0;o<n.length;o++)n[o]._getGlobalBoundsRecursive(r,i,t)}if(s){let n=!1,o=this.renderGroup||this.parentRenderGroup;for(let a=0;a<this.effects.length;a++)this.effects[a].addBounds&&(n||(n=!0,i.applyMatrix(o.worldTransform)),this.effects[a].addBounds(i,!0));n&&(i.applyMatrix(o.worldTransform.copyTo(Sk).invert()),e.addBounds(i,this.relativeGroupTransform)),e.addBounds(i),gt.return(i)}else this.renderGroup&&(e.addBounds(i,this.relativeGroupTransform),gt.return(i))}}});function os(r,e,t){t.clear();let i,s;return r.parent?e?i=r.parent.worldTransform:(s=Re.get().identity(),i=Nc(r,s)):i=R.IDENTITY,Ex(r,t,i,e),s&&Re.return(s),t.isValid||t.set(0,0,0,0),t}function Ex(r,e,t,i){if(!r.visible||!r.measurable)return;let s;i?s=r.worldTransform:(r.updateLocalTransform(),s=Re.get(),s.appendFrom(r.localTransform,t));let n=e,o=!!r.effects.length;if(o&&(e=gt.get().clear()),r.boundsArea)e.addRect(r.boundsArea,s);else{r.bounds&&(e.matrix=s,e.addBounds(r.bounds));for(let a=0;a<r.children.length;a++)Ex(r.children[a],e,s,i)}if(o){for(let a=0;a<r.effects.length;a++)r.effects[a].addBounds?.(e);n.addBounds(e,R.IDENTITY),gt.return(e)}i||Re.return(s)}function Nc(r,e){let t=r.parent;return t&&(Nc(t,e),t.updateLocalTransform(),e.append(t.localTransform)),e}var Nn=p(()=>{ee();_i()});function Lc(r,e){if(r===16777215||!e)return e;if(e===16777215||!r)return r;let t=r>>16&255,i=r>>8&255,s=r&255,n=e>>16&255,o=e>>8&255,a=e&255,c=t*n/255|0,u=i*o/255|0,l=s*a/255|0;return(c<<16)+(u<<8)+l}var Qh=p(()=>{"use strict"});function as(r,e){return r===kx?e:e===kx?r:Lc(r,e)}var kx,Zh=p(()=>{Qh();kx=16777215});function Ln(r){return((r&255)<<16)+(r&65280)+(r>>16&255)}var Ax,Px=p(()=>{Nn();_i();Zh();Ax={getGlobalAlpha(r){if(r)return this.renderGroup?this.renderGroup.worldAlpha:this.parentRenderGroup?this.parentRenderGroup.worldAlpha*this.alpha:this.alpha;let e=this.alpha,t=this.parent;for(;t;)e*=t.alpha,t=t.parent;return e},getGlobalTransform(r,e){if(e)return r.copyFrom(this.worldTransform);this.updateLocalTransform();let t=Nc(this,Re.get().identity());return r.appendFrom(this.localTransform,t),Re.return(t),r},getGlobalTint(r){if(r)return this.renderGroup?Ln(this.renderGroup.worldColor):this.parentRenderGroup?Ln(as(this.localColor,this.parentRenderGroup.worldColor)):this.tint;let e=this.localColor,t=this.parent;for(;t;)e=as(e,t.localColor),t=t.parent;return Ln(e)}}});function cs(r,e,t){return e.clear(),t||(t=R.IDENTITY),Bx(r,e,t,r,!0),e.isValid||e.set(0,0,0,0),e}function Bx(r,e,t,i,s){let n;if(s)n=Re.get(),n=t.copyTo(n);else{if(!r.visible||!r.measurable)return;r.updateLocalTransform();let c=r.localTransform;n=Re.get(),n.appendFrom(c,t)}let o=e,a=!!r.effects.length;if(a&&(e=gt.get().clear()),r.boundsArea)e.addRect(r.boundsArea,n);else{r.renderPipeId&&(e.matrix=n,e.addBounds(r.bounds));let c=r.children;for(let u=0;u<c.length;u++)Bx(c[u],e,n,i,!1)}if(a){for(let c=0;c<r.effects.length;c++)r.effects[c].addLocalBounds?.(e,i);o.addBounds(e,R.IDENTITY),gt.return(e)}Re.return(n)}var zc=p(()=>{ee();_i()});function Jh(r,e){let t=r.children;for(let i=0;i<t.length;i++){let s=t[i],n=s.uid,o=(s._didViewChangeTick&65535)<<16|s._didContainerChangeTick&65535,a=e.index;(e.data[a]!==n||e.data[a+1]!==o)&&(e.data[e.index]=n,e.data[e.index+1]=o,e.didChange=!0),e.index=a+2,s.children.length&&Jh(s,e)}return e.didChange}var Rx=p(()=>{"use strict"});var vk,Dx,Mx=p(()=>{ee();ot();Nn();zc();Rx();vk=new R,Dx={_localBoundsCacheId:-1,_localBoundsCacheData:null,_setWidth(r,e){let t=Math.sign(this.scale.x)||1;e!==0?this.scale.x=r/e*t:this.scale.x=t},_setHeight(r,e){let t=Math.sign(this.scale.y)||1;e!==0?this.scale.y=r/e*t:this.scale.y=t},getLocalBounds(){this._localBoundsCacheData||(this._localBoundsCacheData={data:[],index:1,didChange:!1,localBounds:new ae});let r=this._localBoundsCacheData;return r.index=1,r.didChange=!1,r.data[0]!==this._didViewChangeTick&&(r.didChange=!0,r.data[0]=this._didViewChangeTick),Jh(this,r),r.didChange&&cs(this,r.localBounds,vk),r.localBounds},getBounds(r,e){return os(this,r,e||new ae)}}});var Ix,Fx=p(()=>{"use strict";Ix={_onRender:null,set onRender(r){let e=this.renderGroup||this.parentRenderGroup;if(!r){this._onRender&&e?.removeOnRender(this),this._onRender=null;return}this._onRender||e?.addOnRender(this),this._onRender=r},get onRender(){return this._onRender}}});function Ck(r,e){return r._zIndex-e._zIndex}var Ux,Ox=p(()=>{"use strict";Ux={_zIndex:0,sortDirty:!1,sortableChildren:!1,get zIndex(){return this._zIndex},set zIndex(r){this._zIndex!==r&&(this._zIndex=r,this.depthOfChildModified())},depthOfChildModified(){this.parent&&(this.parent.sortableChildren=!0,this.parent.sortDirty=!0),this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0)},sortChildren(){this.sortDirty&&(this.sortDirty=!1,this.children.sort(Ck))}}});var Gx,Nx=p(()=>{It();_i();Gx={getGlobalPosition(r=new Z,e=!1){return this.parent?this.parent.toGlobal(this._position,r,e):(r.x=this._position.x,r.y=this._position.y),r},toGlobal(r,e,t=!1){let i=this.getGlobalTransform(Re.get(),t);return e=i.apply(r,e),Re.return(i),e},toLocal(r,e,t,i){e&&(r=e.toGlobal(r,t,i));let s=this.getGlobalTransform(Re.get(),i);return t=s.applyInverse(r,t),Re.return(s),t}}});var us,ed=p(()=>{Oe();us=class{constructor(){this.uid=K("instructionSet"),this.instructions=[],this.instructionSize=0,this.renderables=[],this.gcTick=0}reset(){this.instructionSize=0}add(e){this.instructions[this.instructionSize++]=e}log(){this.instructions.length=this.instructionSize,console.table(this.instructions,["type","action"])}}});function _r(r){return r+=r===0?1:0,--r,r|=r>>>1,r|=r>>>2,r|=r>>>4,r|=r>>>8,r|=r>>>16,r+1}function td(r){return!(r&r-1)&&!!r}var zn=p(()=>{"use strict"});function Vc(r){let e={};for(let t in r)r[t]!==void 0&&(e[t]=r[t]);return e}var rd=p(()=>{"use strict"});function Ek(r){let e=Lx[r];return e===void 0&&(Lx[r]=K("resource")),e}var Lx,zx,Je,bi=p(()=>{Ve();Oe();ye();Lx=Object.create(null);zx=class Vx extends oe{constructor(e={}){super(),this._resourceType="textureSampler",this._touched=0,this._maxAnisotropy=1,this.destroyed=!1,e={...Vx.defaultOptions,...e},this.addressMode=e.addressMode,this.addressModeU=e.addressModeU??this.addressModeU,this.addressModeV=e.addressModeV??this.addressModeV,this.addressModeW=e.addressModeW??this.addressModeW,this.scaleMode=e.scaleMode,this.magFilter=e.magFilter??this.magFilter,this.minFilter=e.minFilter??this.minFilter,this.mipmapFilter=e.mipmapFilter??this.mipmapFilter,this.lodMinClamp=e.lodMinClamp,this.lodMaxClamp=e.lodMaxClamp,this.compare=e.compare,this.maxAnisotropy=e.maxAnisotropy??1}set addressMode(e){this.addressModeU=e,this.addressModeV=e,this.addressModeW=e}get addressMode(){return this.addressModeU}set wrapMode(e){z($,"TextureStyle.wrapMode is now TextureStyle.addressMode"),this.addressMode=e}get wrapMode(){return this.addressMode}set scaleMode(e){this.magFilter=e,this.minFilter=e,this.mipmapFilter=e}get scaleMode(){return this.magFilter}set maxAnisotropy(e){this._maxAnisotropy=Math.min(e,16),this._maxAnisotropy>1&&(this.scaleMode="linear")}get maxAnisotropy(){return this._maxAnisotropy}get _resourceId(){return this._sharedResourceId||this._generateResourceId()}update(){this.emit("change",this),this._sharedResourceId=null}_generateResourceId(){let e=`${this.addressModeU}-${this.addressModeV}-${this.addressModeW}-${this.magFilter}-${this.minFilter}-${this.mipmapFilter}-${this.lodMinClamp}-${this.lodMaxClamp}-${this.compare}-${this._maxAnisotropy}`;return this._sharedResourceId=Ek(e),this._resourceId}destroy(){this.destroyed=!0,this.emit("destroy",this),this.emit("change",this),this.removeAllListeners()}};zx.defaultOptions={addressMode:"clamp-to-edge",scaleMode:"linear"};Je=zx});var Hx,se,et=p(()=>{Ve();zn();rd();Oe();bi();Hx=class Wx extends oe{constructor(e={}){super(),this.options=e,this.uid=K("textureSource"),this._resourceType="textureSource",this._resourceId=K("resource"),this.uploadMethodId="unknown",this._resolution=1,this.pixelWidth=1,this.pixelHeight=1,this.width=1,this.height=1,this.sampleCount=1,this.mipLevelCount=1,this.autoGenerateMipmaps=!1,this.format="rgba8unorm",this.dimension="2d",this.antialias=!1,this._touched=0,this._batchTick=-1,this._textureBindLocation=-1,e={...Wx.defaultOptions,...e},this.label=e.label??"",this.resource=e.resource,this.autoGarbageCollect=e.autoGarbageCollect,this._resolution=e.resolution,e.width?this.pixelWidth=e.width*this._resolution:this.pixelWidth=this.resource?this.resourceWidth??1:1,e.height?this.pixelHeight=e.height*this._resolution:this.pixelHeight=this.resource?this.resourceHeight??1:1,this.width=this.pixelWidth/this._resolution,this.height=this.pixelHeight/this._resolution,this.format=e.format,this.dimension=e.dimensions,this.mipLevelCount=e.mipLevelCount,this.autoGenerateMipmaps=e.autoGenerateMipmaps,this.sampleCount=e.sampleCount,this.antialias=e.antialias,this.alphaMode=e.alphaMode,this.style=new Je(Vc(e)),this.destroyed=!1,this._refreshPOT()}get source(){return this}get style(){return this._style}set style(e){this.style!==e&&(this._style?.off("change",this._onStyleChange,this),this._style=e,this._style?.on("change",this._onStyleChange,this),this._onStyleChange())}get addressMode(){return this._style.addressMode}set addressMode(e){this._style.addressMode=e}get repeatMode(){return this._style.addressMode}set repeatMode(e){this._style.addressMode=e}get magFilter(){return this._style.magFilter}set magFilter(e){this._style.magFilter=e}get minFilter(){return this._style.minFilter}set minFilter(e){this._style.minFilter=e}get mipmapFilter(){return this._style.mipmapFilter}set mipmapFilter(e){this._style.mipmapFilter=e}get lodMinClamp(){return this._style.lodMinClamp}set lodMinClamp(e){this._style.lodMinClamp=e}get lodMaxClamp(){return this._style.lodMaxClamp}set lodMaxClamp(e){this._style.lodMaxClamp=e}_onStyleChange(){this.emit("styleChange",this)}update(){if(this.resource){let e=this._resolution;if(this.resize(this.resourceWidth/e,this.resourceHeight/e))return}this.emit("update",this)}destroy(){this.destroyed=!0,this.emit("destroy",this),this.emit("change",this),this._style&&(this._style.destroy(),this._style=null),this.uploadMethodId=null,this.resource=null,this.removeAllListeners()}unload(){this._resourceId=K("resource"),this.emit("change",this),this.emit("unload",this)}get resourceWidth(){let{resource:e}=this;return e.naturalWidth||e.videoWidth||e.displayWidth||e.width}get resourceHeight(){let{resource:e}=this;return e.naturalHeight||e.videoHeight||e.displayHeight||e.height}get resolution(){return this._resolution}set resolution(e){this._resolution!==e&&(this._resolution=e,this.width=this.pixelWidth/e,this.height=this.pixelHeight/e)}resize(e,t,i){i||(i=this._resolution),e||(e=this.width),t||(t=this.height);let s=Math.round(e*i),n=Math.round(t*i);return this.width=s/i,this.height=n/i,this._resolution=i,this.pixelWidth===s&&this.pixelHeight===n?!1:(this._refreshPOT(),this.pixelWidth=s,this.pixelHeight=n,this.emit("resize",this),this._resourceId=K("resource"),this.emit("change",this),!0)}updateMipmaps(){this.autoGenerateMipmaps&&this.mipLevelCount>1&&this.emit("updateMipmaps",this)}set wrapMode(e){this._style.wrapMode=e}get wrapMode(){return this._style.wrapMode}set scaleMode(e){this._style.scaleMode=e}get scaleMode(){return this._style.scaleMode}_refreshPOT(){this.isPowerOfTwo=td(this.pixelWidth)&&td(this.pixelHeight)}static test(e){throw new Error("Unimplemented")}};Hx.defaultOptions={resolution:1,format:"bgra8unorm",alphaMode:"premultiply-alpha-on-upload",dimensions:"2d",mipLevelCount:1,autoGenerateMipmaps:!1,sampleCount:1,antialias:!1,autoGarbageCollect:!1};se=Hx});function kk(){for(let r=0;r<16;r++){let e=[];id.push(e);for(let t=0;t<16;t++){let i=Hc(yi[r]*yi[t]+wi[r]*Ti[t]),s=Hc(Ti[r]*yi[t]+Si[r]*Ti[t]),n=Hc(yi[r]*wi[t]+wi[r]*Si[t]),o=Hc(Ti[r]*wi[t]+Si[r]*Si[t]);for(let a=0;a<16;a++)if(yi[a]===i&&Ti[a]===s&&wi[a]===n&&Si[a]===o){e.push(a);break}}}for(let r=0;r<16;r++){let e=new R;e.set(yi[r],Ti[r],wi[r],Si[r],0,0),$x.push(e)}}var yi,Ti,wi,Si,id,$x,Hc,xe,qx=p(()=>{ee();yi=[1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1,0,1],Ti=[0,1,1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1],wi=[0,-1,-1,-1,0,1,1,1,0,1,1,1,0,-1,-1,-1],Si=[1,1,0,-1,-1,-1,0,1,-1,-1,0,1,1,1,0,-1],id=[],$x=[],Hc=Math.sign;kk();xe={E:0,SE:1,S:2,SW:3,W:4,NW:5,N:6,NE:7,MIRROR_VERTICAL:8,MAIN_DIAGONAL:10,MIRROR_HORIZONTAL:12,REVERSE_DIAGONAL:14,uX:r=>yi[r],uY:r=>Ti[r],vX:r=>wi[r],vY:r=>Si[r],inv:r=>r&8?r&15:-r&7,add:(r,e)=>id[r][e],sub:(r,e)=>id[r][xe.inv(e)],rotate180:r=>r^4,isVertical:r=>(r&3)===2,byDirection:(r,e)=>Math.abs(r)*2<=Math.abs(e)?e>=0?xe.S:xe.N:Math.abs(e)*2<=Math.abs(r)?r>0?xe.E:xe.W:e>0?r>0?xe.SE:xe.SW:r>0?xe.NE:xe.NW,matrixAppendRotationInv:(r,e,t=0,i=0)=>{let s=$x[xe.inv(e)];s.tx=t,s.ty=i,r.append(s)}}});var sd,jx=p(()=>{"use strict";sd=()=>{}});var vi,nd=p(()=>{P();et();vi=class extends se{constructor(e){let t=e.resource||new Float32Array(e.width*e.height*4),i=e.format;i||(t instanceof Float32Array?i="rgba32float":t instanceof Int32Array||t instanceof Uint32Array?i="rgba32uint":t instanceof Int16Array||t instanceof Uint16Array?i="rgba16uint":(t instanceof Int8Array,i="bgra8unorm")),super({...e,resource:t,format:i}),this.uploadMethodId="buffer"}static test(e){return e instanceof Int8Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Int16Array||e instanceof Uint16Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Float32Array}};vi.extension=b.TextureSource});var Xx,ls,od=p(()=>{ee();Xx=new R,ls=class{constructor(e,t){this.mapCoord=new R,this.uClampFrame=new Float32Array(4),this.uClampOffset=new Float32Array(2),this._textureID=-1,this._updateID=0,this.clampOffset=0,typeof t>"u"?this.clampMargin=e.width<10?0:.5:this.clampMargin=t,this.isSimple=!1,this.texture=e}get texture(){return this._texture}set texture(e){this.texture!==e&&(this._texture?.removeListener("update",this.update,this),this._texture=e,this._texture.addListener("update",this.update,this),this.update())}multiplyUvs(e,t){t===void 0&&(t=e);let i=this.mapCoord;for(let s=0;s<e.length;s+=2){let n=e[s],o=e[s+1];t[s]=n*i.a+o*i.c+i.tx,t[s+1]=n*i.b+o*i.d+i.ty}return t}update(){let e=this._texture;this._updateID++;let t=e.uvs;this.mapCoord.set(t.x1-t.x0,t.y1-t.y0,t.x3-t.x0,t.y3-t.y0,t.x0,t.y0);let i=e.orig,s=e.trim;s&&(Xx.set(i.width/s.width,0,0,i.height/s.height,-s.x/s.width,-s.y/s.height),this.mapCoord.append(Xx));let n=e.source,o=this.uClampFrame,a=this.clampMargin/n._resolution,c=this.clampOffset/n._resolution;return o[0]=(e.frame.x+a+c)/n.width,o[1]=(e.frame.y+a+c)/n.height,o[2]=(e.frame.x+e.frame.width-a+c)/n.width,o[3]=(e.frame.y+e.frame.height-a+c)/n.height,this.uClampOffset[0]=this.clampOffset/n.pixelWidth,this.uClampOffset[1]=this.clampOffset/n.pixelHeight,this.isSimple=e.frame.width===n.width&&e.frame.height===n.height&&e.rotate===0,!0}}});var D,le=p(()=>{Ve();qx();Ge();Oe();ye();jx();nd();et();od();D=class extends oe{constructor({source:e,label:t,frame:i,orig:s,trim:n,defaultAnchor:o,defaultBorders:a,rotate:c,dynamic:u}={}){if(super(),this.uid=K("texture"),this.uvs={x0:0,y0:0,x1:0,y1:0,x2:0,y2:0,x3:0,y3:0},this.frame=new Y,this.noFrame=!1,this.dynamic=!1,this.isTexture=!0,this.label=t,this.source=e?.source??new se,this.noFrame=!i,i)this.frame.copyFrom(i);else{let{width:l,height:h}=this._source;this.frame.width=l,this.frame.height=h}this.orig=s||this.frame,this.trim=n,this.rotate=c??0,this.defaultAnchor=o,this.defaultBorders=a,this.destroyed=!1,this.dynamic=u||!1,this.updateUvs()}set source(e){this._source&&this._source.off("resize",this.update,this),this._source=e,e.on("resize",this.update,this),this.emit("update",this)}get source(){return this._source}get textureMatrix(){return this._textureMatrix||(this._textureMatrix=new ls(this)),this._textureMatrix}get width(){return this.orig.width}get height(){return this.orig.height}updateUvs(){let{uvs:e,frame:t}=this,{width:i,height:s}=this._source,n=t.x/i,o=t.y/s,a=t.width/i,c=t.height/s,u=this.rotate;if(u){let l=a/2,h=c/2,f=n+l,d=o+h;u=xe.add(u,xe.NW),e.x0=f+l*xe.uX(u),e.y0=d+h*xe.uY(u),u=xe.add(u,2),e.x1=f+l*xe.uX(u),e.y1=d+h*xe.uY(u),u=xe.add(u,2),e.x2=f+l*xe.uX(u),e.y2=d+h*xe.uY(u),u=xe.add(u,2),e.x3=f+l*xe.uX(u),e.y3=d+h*xe.uY(u)}else e.x0=n,e.y0=o,e.x1=n+a,e.y1=o,e.x2=n+a,e.y2=o+c,e.x3=n,e.y3=o+c}destroy(e=!1){this._source&&e&&(this._source.destroy(),this._source=null),this._textureMatrix=null,this.destroyed=!0,this.emit("destroy",this),this.removeAllListeners()}update(){this.noFrame&&(this.frame.width=this._source.width,this.frame.height=this._source.height),this.updateUvs(),this.emit("update",this)}get baseTexture(){return z($,"Texture.baseTexture is now Texture.source"),this._source}};D.EMPTY=new D({label:"EMPTY",source:new se({label:"EMPTY"})});D.EMPTY.destroy=sd;D.WHITE=new D({source:new vi({resource:new Uint8Array([255,255,255,255]),width:1,height:1,alphaMode:"premultiply-alpha-on-upload",label:"WHITE"}),label:"WHITE"});D.WHITE.destroy=sd});var Ak,ad,Te,Lr=p(()=>{zn();et();le();bi();Ak=0,ad=class{constructor(e){this._poolKeyHash=Object.create(null),this._texturePool={},this.textureOptions=e||{},this.enableFullScreen=!1,this.textureStyle=new Je(this.textureOptions)}createTexture(e,t,i){let s=new se({...this.textureOptions,width:e,height:t,resolution:1,antialias:i,autoGarbageCollect:!1});return new D({source:s,label:`texturePool_${Ak++}`})}getOptimalTexture(e,t,i=1,s){let n=Math.ceil(e*i-1e-6),o=Math.ceil(t*i-1e-6);n=_r(n),o=_r(o);let a=(n<<17)+(o<<1)+(s?1:0);this._texturePool[a]||(this._texturePool[a]=[]);let c=this._texturePool[a].pop();return c||(c=this.createTexture(n,o,s)),c.source._resolution=i,c.source.width=n/i,c.source.height=o/i,c.source.pixelWidth=n,c.source.pixelHeight=o,c.frame.x=0,c.frame.y=0,c.frame.width=e,c.frame.height=t,c.updateUvs(),this._poolKeyHash[c.uid]=a,c}getSameSizeTexture(e,t=!1){let i=e.source;return this.getOptimalTexture(e.width,e.height,i._resolution,t)}returnTexture(e,t=!1){let i=this._poolKeyHash[e.uid];t&&(e.source.style=this.textureStyle),this._texturePool[i].push(e)}clear(e){if(e=e!==!1,e)for(let t in this._texturePool){let i=this._texturePool[t];if(i)for(let s=0;s<i.length;s++)i[s].destroy(!0)}this._texturePool={}}},Te=new ad});var Wc,Yx=p(()=>{ee();ed();Lr();Wc=class{constructor(){this.renderPipeId="renderGroup",this.root=null,this.canBundle=!1,this.renderGroupParent=null,this.renderGroupChildren=[],this.worldTransform=new R,this.worldColorAlpha=4294967295,this.worldColor=16777215,this.worldAlpha=1,this.childrenToUpdate=Object.create(null),this.updateTick=0,this.gcTick=0,this.childrenRenderablesToUpdate={list:[],index:0},this.structureDidChange=!0,this.instructionSet=new us,this._onRenderContainers=[],this.textureNeedsUpdate=!0,this.isCachedAsTexture=!1,this._matrixDirty=7}init(e){this.root=e,e._onRender&&this.addOnRender(e),e.didChange=!0;let t=e.children;for(let i=0;i<t.length;i++){let s=t[i];s._updateFlags=15,this.addChild(s)}}enableCacheAsTexture(e={}){this.textureOptions=e,this.isCachedAsTexture=!0,this.textureNeedsUpdate=!0}disableCacheAsTexture(){this.isCachedAsTexture=!1,this.texture&&(Te.returnTexture(this.texture),this.texture=null)}updateCacheTexture(){this.textureNeedsUpdate=!0}reset(){this.renderGroupChildren.length=0;for(let e in this.childrenToUpdate){let t=this.childrenToUpdate[e];t.list.fill(null),t.index=0}this.childrenRenderablesToUpdate.index=0,this.childrenRenderablesToUpdate.list.fill(null),this.root=null,this.updateTick=0,this.structureDidChange=!0,this._onRenderContainers.length=0,this.renderGroupParent=null,this.disableCacheAsTexture()}get localTransform(){return this.root.localTransform}addRenderGroupChild(e){e.renderGroupParent&&e.renderGroupParent._removeRenderGroupChild(e),e.renderGroupParent=this,this.renderGroupChildren.push(e)}_removeRenderGroupChild(e){let t=this.renderGroupChildren.indexOf(e);t>-1&&this.renderGroupChildren.splice(t,1),e.renderGroupParent=null}addChild(e){if(this.structureDidChange=!0,e.parentRenderGroup=this,e.updateTick=-1,e.parent===this.root?e.relativeRenderGroupDepth=1:e.relativeRenderGroupDepth=e.parent.relativeRenderGroupDepth+1,e.didChange=!0,this.onChildUpdate(e),e.renderGroup){this.addRenderGroupChild(e.renderGroup);return}e._onRender&&this.addOnRender(e);let t=e.children;for(let i=0;i<t.length;i++)this.addChild(t[i])}removeChild(e){if(this.structureDidChange=!0,e._onRender&&(e.renderGroup||this.removeOnRender(e)),e.parentRenderGroup=null,e.renderGroup){this._removeRenderGroupChild(e.renderGroup);return}let t=e.children;for(let i=0;i<t.length;i++)this.removeChild(t[i])}removeChildren(e){for(let t=0;t<e.length;t++)this.removeChild(e[t])}onChildUpdate(e){let t=this.childrenToUpdate[e.relativeRenderGroupDepth];t||(t=this.childrenToUpdate[e.relativeRenderGroupDepth]={index:0,list:[]}),t.list[t.index++]=e}updateRenderable(e){e.globalDisplayStatus<7||(this.instructionSet.renderPipes[e.renderPipeId].updateRenderable(e),e.didViewUpdate=!1)}onChildViewUpdate(e){this.childrenRenderablesToUpdate.list[this.childrenRenderablesToUpdate.index++]=e}get isRenderable(){return this.root.localDisplayStatus===7&&this.worldAlpha>0}addOnRender(e){this._onRenderContainers.push(e)}removeOnRender(e){this._onRenderContainers.splice(this._onRenderContainers.indexOf(e),1)}runOnRender(e){for(let t=0;t<this._onRenderContainers.length;t++)this._onRenderContainers[t]._onRender(e)}destroy(){this.disableCacheAsTexture(),this.renderGroupParent=null,this.root=null,this.childrenRenderablesToUpdate=null,this.childrenToUpdate=null,this.renderGroupChildren=null,this._onRenderContainers=null,this.instructionSet=null}getChildren(e=[]){let t=this.root.children;for(let i=0;i<t.length;i++)this._getChildren(t[i],e);return e}_getChildren(e,t=[]){if(t.push(e),e.renderGroup)return t;let i=e.children;for(let s=0;s<i.length;s++)this._getChildren(i[s],t);return t}invalidateMatrices(){this._matrixDirty=7}get inverseWorldTransform(){return(this._matrixDirty&1)===0?this._inverseWorldTransform:(this._matrixDirty&=-2,this._inverseWorldTransform||(this._inverseWorldTransform=new R),this._inverseWorldTransform.copyFrom(this.worldTransform).invert())}get textureOffsetInverseTransform(){return(this._matrixDirty&2)===0?this._textureOffsetInverseTransform:(this._matrixDirty&=-3,this._textureOffsetInverseTransform||(this._textureOffsetInverseTransform=new R),this._textureOffsetInverseTransform.copyFrom(this.inverseWorldTransform).translate(-this._textureBounds.x,-this._textureBounds.y))}get inverseParentTextureTransform(){if((this._matrixDirty&4)===0)return this._inverseParentTextureTransform;this._matrixDirty&=-5;let e=this._parentCacheAsTextureRenderGroup;return e?(this._inverseParentTextureTransform||(this._inverseParentTextureTransform=new R),this._inverseParentTextureTransform.copyFrom(this.worldTransform).prepend(e.inverseWorldTransform).translate(-e._textureBounds.x,-e._textureBounds.y)):this.worldTransform}get cacheToLocalTransform(){return this._parentCacheAsTextureRenderGroup?this._parentCacheAsTextureRenderGroup.textureOffsetInverseTransform:null}}});function Kx(r,e,t={}){for(let i in e)!t[i]&&e[i]!==void 0&&(r[i]=e[i])}var Qx=p(()=>{"use strict"});var cd,ud,ld,hs,Vn,Ci,we,Ht=p(()=>{Ve();He();ox();P();ee();Wh();Ic();Oe();ye();gr();fx();px();xx();yx();wx();Cx();Px();Mx();Fx();Ox();Nx();Yx();Qx();cd=new We(null),ud=new We(null),ld=new We(null,1,1),hs=1,Vn=2,Ci=4,we=class r extends oe{constructor(e={}){super(),this.uid=K("renderable"),this._updateFlags=15,this.renderGroup=null,this.parentRenderGroup=null,this.parentRenderGroupIndex=0,this.didChange=!1,this.didViewUpdate=!1,this.relativeRenderGroupDepth=0,this.children=[],this.parent=null,this.includeInBuild=!0,this.measurable=!0,this.isSimple=!0,this.updateTick=-1,this.localTransform=new R,this.relativeGroupTransform=new R,this.groupTransform=this.relativeGroupTransform,this.destroyed=!1,this._position=new We(this,0,0),this._scale=ld,this._pivot=ud,this._skew=cd,this._cx=1,this._sx=0,this._cy=0,this._sy=1,this._rotation=0,this.localColor=16777215,this.localAlpha=1,this.groupAlpha=1,this.groupColor=16777215,this.groupColorAlpha=4294967295,this.localBlendMode="inherit",this.groupBlendMode="normal",this.localDisplayStatus=7,this.globalDisplayStatus=7,this._didContainerChangeTick=0,this._didViewChangeTick=0,this._didLocalTransformChangeId=-1,this.effects=[],Kx(this,e,{children:!0,parent:!0,effects:!0}),e.children?.forEach(t=>this.addChild(t)),e.parent?.addChild(this)}static mixin(e){z("8.8.0","Container.mixin is deprecated, please use extensions.mixin instead."),O.mixin(r,e)}set _didChangeId(e){this._didViewChangeTick=e>>12&4095,this._didContainerChangeTick=e&4095}get _didChangeId(){return this._didContainerChangeTick&4095|(this._didViewChangeTick&4095)<<12}addChild(...e){if(this.allowChildren||z($,"addChild: Only Containers will be allowed to add children in v8.0.0"),e.length>1){for(let s=0;s<e.length;s++)this.addChild(e[s]);return e[0]}let t=e[0],i=this.renderGroup||this.parentRenderGroup;return t.parent===this?(this.children.splice(this.children.indexOf(t),1),this.children.push(t),i&&(i.structureDidChange=!0),t):(t.parent&&t.parent.removeChild(t),this.children.push(t),this.sortableChildren&&(this.sortDirty=!0),t.parent=this,t.didChange=!0,t._updateFlags=15,i&&i.addChild(t),this.emit("childAdded",t,this,this.children.length-1),t.emit("added",this),this._didViewChangeTick++,t._zIndex!==0&&t.depthOfChildModified(),t)}removeChild(...e){if(e.length>1){for(let s=0;s<e.length;s++)this.removeChild(e[s]);return e[0]}let t=e[0],i=this.children.indexOf(t);return i>-1&&(this._didViewChangeTick++,this.children.splice(i,1),this.renderGroup?this.renderGroup.removeChild(t):this.parentRenderGroup&&this.parentRenderGroup.removeChild(t),t.parentRenderLayer&&t.parentRenderLayer.detach(t),t.parent=null,this.emit("childRemoved",t,this,i),t.emit("removed",this)),t}_onUpdate(e){e&&e===this._skew&&this._updateSkew(),this._didContainerChangeTick++,!this.didChange&&(this.didChange=!0,this.parentRenderGroup&&this.parentRenderGroup.onChildUpdate(this))}set isRenderGroup(e){!!this.renderGroup!==e&&(e?this.enableRenderGroup():this.disableRenderGroup())}get isRenderGroup(){return!!this.renderGroup}enableRenderGroup(){if(this.renderGroup)return;let e=this.parentRenderGroup;e?.removeChild(this),this.renderGroup=pe.get(Wc,this),this.groupTransform=R.IDENTITY,e?.addChild(this),this._updateIsSimple()}disableRenderGroup(){if(!this.renderGroup)return;let e=this.parentRenderGroup;e?.removeChild(this),pe.return(this.renderGroup),this.renderGroup=null,this.groupTransform=this.relativeGroupTransform,e?.addChild(this),this._updateIsSimple()}_updateIsSimple(){this.isSimple=!this.renderGroup&&this.effects.length===0}get worldTransform(){return this._worldTransform||(this._worldTransform=new R),this.renderGroup?this._worldTransform.copyFrom(this.renderGroup.worldTransform):this.parentRenderGroup&&this._worldTransform.appendFrom(this.relativeGroupTransform,this.parentRenderGroup.worldTransform),this._worldTransform}get x(){return this._position.x}set x(e){this._position.x=e}get y(){return this._position.y}set y(e){this._position.y=e}get position(){return this._position}set position(e){this._position.copyFrom(e)}get rotation(){return this._rotation}set rotation(e){this._rotation!==e&&(this._rotation=e,this._onUpdate(this._skew))}get angle(){return this.rotation*cx}set angle(e){this.rotation=e*ux}get pivot(){return this._pivot===ud&&(this._pivot=new We(this,0,0)),this._pivot}set pivot(e){this._pivot===ud&&(this._pivot=new We(this,0,0)),typeof e=="number"?this._pivot.set(e):this._pivot.copyFrom(e)}get skew(){return this._skew===cd&&(this._skew=new We(this,0,0)),this._skew}set skew(e){this._skew===cd&&(this._skew=new We(this,0,0)),this._skew.copyFrom(e)}get scale(){return this._scale===ld&&(this._scale=new We(this,1,1)),this._scale}set scale(e){this._scale===ld&&(this._scale=new We(this,0,0)),typeof e=="number"?this._scale.set(e):this._scale.copyFrom(e)}get width(){return Math.abs(this.scale.x*this.getLocalBounds().width)}set width(e){let t=this.getLocalBounds().width;this._setWidth(e,t)}get height(){return Math.abs(this.scale.y*this.getLocalBounds().height)}set height(e){let t=this.getLocalBounds().height;this._setHeight(e,t)}getSize(e){e||(e={});let t=this.getLocalBounds();return e.width=Math.abs(this.scale.x*t.width),e.height=Math.abs(this.scale.y*t.height),e}setSize(e,t){let i=this.getLocalBounds();typeof e=="object"?(t=e.height??e.width,e=e.width):t??(t=e),e!==void 0&&this._setWidth(e,i.width),t!==void 0&&this._setHeight(t,i.height)}_updateSkew(){let e=this._rotation,t=this._skew;this._cx=Math.cos(e+t._y),this._sx=Math.sin(e+t._y),this._cy=-Math.sin(e-t._x),this._sy=Math.cos(e-t._x)}updateTransform(e){return this.position.set(typeof e.x=="number"?e.x:this.position.x,typeof e.y=="number"?e.y:this.position.y),this.scale.set(typeof e.scaleX=="number"?e.scaleX||1:this.scale.x,typeof e.scaleY=="number"?e.scaleY||1:this.scale.y),this.rotation=typeof e.rotation=="number"?e.rotation:this.rotation,this.skew.set(typeof e.skewX=="number"?e.skewX:this.skew.x,typeof e.skewY=="number"?e.skewY:this.skew.y),this.pivot.set(typeof e.pivotX=="number"?e.pivotX:this.pivot.x,typeof e.pivotY=="number"?e.pivotY:this.pivot.y),this}setFromMatrix(e){e.decompose(this)}updateLocalTransform(){let e=this._didContainerChangeTick;if(this._didLocalTransformChangeId===e)return;this._didLocalTransformChangeId=e;let t=this.localTransform,i=this._scale,s=this._pivot,n=this._position,o=i._x,a=i._y,c=s._x,u=s._y;t.a=this._cx*o,t.b=this._sx*o,t.c=this._cy*a,t.d=this._sy*a,t.tx=n._x-(c*t.a+u*t.c),t.ty=n._y-(c*t.b+u*t.d)}set alpha(e){e!==this.localAlpha&&(this.localAlpha=e,this._updateFlags|=hs,this._onUpdate())}get alpha(){return this.localAlpha}set tint(e){let i=q.shared.setValue(e??16777215).toBgrNumber();i!==this.localColor&&(this.localColor=i,this._updateFlags|=hs,this._onUpdate())}get tint(){return Ln(this.localColor)}set blendMode(e){this.localBlendMode!==e&&(this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._updateFlags|=Vn,this.localBlendMode=e,this._onUpdate())}get blendMode(){return this.localBlendMode}get visible(){return!!(this.localDisplayStatus&2)}set visible(e){let t=e?2:0;(this.localDisplayStatus&2)!==t&&(this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._updateFlags|=Ci,this.localDisplayStatus^=2,this._onUpdate())}get culled(){return!(this.localDisplayStatus&4)}set culled(e){let t=e?0:4;(this.localDisplayStatus&4)!==t&&(this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._updateFlags|=Ci,this.localDisplayStatus^=4,this._onUpdate())}get renderable(){return!!(this.localDisplayStatus&1)}set renderable(e){let t=e?1:0;(this.localDisplayStatus&1)!==t&&(this._updateFlags|=Ci,this.localDisplayStatus^=1,this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._onUpdate())}get isRenderable(){return this.localDisplayStatus===7&&this.groupAlpha>0}destroy(e=!1){if(this.destroyed)return;this.destroyed=!0;let t;if(this.children.length&&(t=this.removeChildren(0,this.children.length)),this.removeFromParent(),this.parent=null,this._maskEffect=null,this._filterEffect=null,this.effects=null,this._position=null,this._scale=null,this._pivot=null,this._skew=null,this.emit("destroyed",this),this.removeAllListeners(),(typeof e=="boolean"?e:e?.children)&&t)for(let s=0;s<t.length;++s)t[s].destroy(e);this.renderGroup?.destroy(),this.renderGroup=null}};O.mixin(we,mx,vx,Gx,Ix,Dx,bx,Tx,Ux,nx,dx,Ax,gx)});var zr,$c=p(()=>{It();zr=class r{constructor(e){this.bubbles=!0,this.cancelBubble=!0,this.cancelable=!1,this.composed=!1,this.defaultPrevented=!1,this.eventPhase=r.prototype.NONE,this.propagationStopped=!1,this.propagationImmediatelyStopped=!1,this.layer=new Z,this.page=new Z,this.NONE=0,this.CAPTURING_PHASE=1,this.AT_TARGET=2,this.BUBBLING_PHASE=3,this.manager=e}get layerX(){return this.layer.x}get layerY(){return this.layer.y}get pageX(){return this.page.x}get pageY(){return this.page.y}get data(){return this}composedPath(){return this.manager&&(!this.path||this.path[this.path.length-1]!==this.target)&&(this.path=this.target?this.manager.propagationPath(this.target):[]),this.path}initEvent(e,t,i){throw new Error("initEvent() is a legacy DOM API. It is not implemented in the Federated Events API.")}initUIEvent(e,t,i,s,n){throw new Error("initUIEvent() is a legacy DOM API. It is not implemented in the Federated Events API.")}preventDefault(){this.nativeEvent instanceof Event&&this.nativeEvent.cancelable&&this.nativeEvent.preventDefault(),this.defaultPrevented=!0}stopImmediatePropagation(){this.propagationImmediatelyStopped=!0}stopPropagation(){this.propagationStopped=!0}}});function Pk(r){return function(e){return e.test(r)}}function Hn(r){var e={userAgent:"",platform:"",maxTouchPoints:0};!r&&typeof navigator<"u"?e={userAgent:navigator.userAgent,platform:navigator.platform,maxTouchPoints:navigator.maxTouchPoints||0}:typeof r=="string"?e.userAgent=r:r&&r.userAgent&&(e={userAgent:r.userAgent,platform:r.platform,maxTouchPoints:r.maxTouchPoints||0});var t=e.userAgent,i=t.split("[FBAN");typeof i[1]<"u"&&(t=i[0]),i=t.split("Twitter"),typeof i[1]<"u"&&(t=i[0]);var s=Pk(t),n={apple:{phone:s(hd)&&!s(br),ipod:s(Zx),tablet:!s(hd)&&(s(Jx)||c0(e))&&!s(br),universal:s(e0),device:(s(hd)||s(Zx)||s(Jx)||s(e0)||c0(e))&&!s(br)},amazon:{phone:s(ds),tablet:!s(ds)&&s(qc),device:s(ds)||s(qc)},android:{phone:!s(br)&&s(ds)||!s(br)&&s(dd),tablet:!s(br)&&!s(ds)&&!s(dd)&&(s(qc)||s(t0)),device:!s(br)&&(s(ds)||s(qc)||s(dd)||s(t0))||s(/\bokhttp\b/i)},windows:{phone:s(br),tablet:s(r0),device:s(br)||s(r0)},other:{blackberry:s(i0),blackberry10:s(s0),opera:s(n0),firefox:s(a0),chrome:s(o0),device:s(i0)||s(s0)||s(n0)||s(a0)||s(o0)},any:!1,phone:!1,tablet:!1};return n.any=n.apple.device||n.android.device||n.windows.device||n.other.device,n.phone=n.apple.phone||n.android.phone||n.windows.phone,n.tablet=n.apple.tablet||n.android.tablet||n.windows.tablet,n}var hd,Zx,Jx,e0,dd,t0,ds,qc,br,r0,i0,s0,n0,o0,a0,c0,fd=p(()=>{hd=/iPhone/i,Zx=/iPod/i,Jx=/iPad/i,e0=/\biOS-universal(?:.+)Mac\b/i,dd=/\bAndroid(?:.+)Mobile\b/i,t0=/Android/i,ds=/(?:SD4930UR|\bSilk(?:.+)Mobile\b)/i,qc=/Silk/i,br=/Windows Phone/i,r0=/\bWindows(?:.+)ARM\b/i,i0=/BlackBerry/i,s0=/BB10/i,n0=/Opera Mini/i,o0=/\b(CriOS|Chrome)(?:.+)Mobile/i,a0=/Mobile(?:.+)Firefox\b/i,c0=function(r){return typeof r<"u"&&r.platform==="MacIntel"&&typeof r.maxTouchPoints=="number"&&r.maxTouchPoints>1&&typeof MSStream>"u"}});var u0=p(()=>{fd();fd()});var Bk,l0,h0=p(()=>{u0();Bk=Hn.default??Hn,l0=Bk(globalThis.navigator)});var Rk,jc,Dk,Mk,d0,f0,Ik,Fk,Uk,md,p0,g0=p(()=>{$c();P();h0();Yh();Rk=9,jc=100,Dk=0,Mk=0,d0=2,f0=1,Ik=-1e3,Fk=-1e3,Uk=2,md=class m0{constructor(e,t=l0){this._mobileInfo=t,this.debug=!1,this._activateOnTab=!0,this._deactivateOnMouseMove=!0,this._isActive=!1,this._isMobileAccessibility=!1,this._div=null,this._pool=[],this._renderId=0,this._children=[],this._androidUpdateCount=0,this._androidUpdateFrequency=500,this._hookDiv=null,(t.tablet||t.phone)&&this._createTouchHook(),this._renderer=e}get isActive(){return this._isActive}get isMobileAccessibility(){return this._isMobileAccessibility}get hookDiv(){return this._hookDiv}_createTouchHook(){let e=document.createElement("button");e.style.width=`${f0}px`,e.style.height=`${f0}px`,e.style.position="absolute",e.style.top=`${Ik}px`,e.style.left=`${Fk}px`,e.style.zIndex=Uk.toString(),e.style.backgroundColor="#FF0000",e.title="select to enable accessibility for this content",e.addEventListener("focus",()=>{this._isMobileAccessibility=!0,this._activate(),this._destroyTouchHook()}),document.body.appendChild(e),this._hookDiv=e}_destroyTouchHook(){this._hookDiv&&(document.body.removeChild(this._hookDiv),this._hookDiv=null)}_activate(){if(this._isActive)return;this._isActive=!0,this._div||(this._div=document.createElement("div"),this._div.style.width=`${jc}px`,this._div.style.height=`${jc}px`,this._div.style.position="absolute",this._div.style.top=`${Dk}px`,this._div.style.left=`${Mk}px`,this._div.style.zIndex=d0.toString(),this._div.style.pointerEvents="none"),this._activateOnTab&&(this._onKeyDown=this._onKeyDown.bind(this),globalThis.addEventListener("keydown",this._onKeyDown,!1)),this._deactivateOnMouseMove&&(this._onMouseMove=this._onMouseMove.bind(this),globalThis.document.addEventListener("mousemove",this._onMouseMove,!0));let e=this._renderer.view.canvas;if(e.parentNode)e.parentNode.appendChild(this._div),this._initAccessibilitySetup();else{let t=new MutationObserver(()=>{e.parentNode&&(e.parentNode.appendChild(this._div),t.disconnect(),this._initAccessibilitySetup())});t.observe(document.body,{childList:!0,subtree:!0})}}_initAccessibilitySetup(){this._renderer.runners.postrender.add(this),this._renderer.lastObjectRendered&&this._updateAccessibleObjects(this._renderer.lastObjectRendered)}_deactivate(){if(!(!this._isActive||this._isMobileAccessibility)){this._isActive=!1,globalThis.document.removeEventListener("mousemove",this._onMouseMove,!0),this._activateOnTab&&globalThis.addEventListener("keydown",this._onKeyDown,!1),this._renderer.runners.postrender.remove(this);for(let e of this._children)e._accessibleDiv&&e._accessibleDiv.parentNode&&(e._accessibleDiv.parentNode.removeChild(e._accessibleDiv),e._accessibleDiv=null),e._accessibleActive=!1;this._pool.forEach(e=>{e.parentNode&&e.parentNode.removeChild(e)}),this._div&&this._div.parentNode&&this._div.parentNode.removeChild(this._div),this._pool=[],this._children=[]}}_updateAccessibleObjects(e){if(!e.visible||!e.accessibleChildren)return;e.accessible&&(e._accessibleActive||this._addChild(e),e._renderId=this._renderId);let t=e.children;if(t)for(let i=0;i<t.length;i++)this._updateAccessibleObjects(t[i])}init(e){let i={accessibilityOptions:{...m0.defaultOptions,...e?.accessibilityOptions||{}}};this.debug=i.accessibilityOptions.debug,this._activateOnTab=i.accessibilityOptions.activateOnTab,this._deactivateOnMouseMove=i.accessibilityOptions.deactivateOnMouseMove,i.accessibilityOptions.enabledByDefault?this._activate():this._activateOnTab&&(this._onKeyDown=this._onKeyDown.bind(this),globalThis.addEventListener("keydown",this._onKeyDown,!1)),this._renderer.runners.postrender.remove(this)}postrender(){let e=performance.now();if(this._mobileInfo.android.device&&e<this._androidUpdateCount||(this._androidUpdateCount=e+this._androidUpdateFrequency,!this._renderer.renderingToScreen||!this._renderer.view.canvas))return;let t=new Set;if(this._renderer.lastObjectRendered){this._updateAccessibleObjects(this._renderer.lastObjectRendered);for(let i of this._children)i._renderId===this._renderId&&t.add(this._children.indexOf(i))}for(let i=this._children.length-1;i>=0;i--){let s=this._children[i];t.has(i)||(s._accessibleDiv&&s._accessibleDiv.parentNode&&(s._accessibleDiv.parentNode.removeChild(s._accessibleDiv),this._pool.push(s._accessibleDiv),s._accessibleDiv=null),s._accessibleActive=!1,Fc(this._children,i,1))}if(this._renderer.renderingToScreen){let{x:i,y:s,width:n,height:o}=this._renderer.screen,a=this._div;a.style.left=`${i}px`,a.style.top=`${s}px`,a.style.width=`${n}px`,a.style.height=`${o}px`}for(let i=0;i<this._children.length;i++){let s=this._children[i];if(!s._accessibleActive||!s._accessibleDiv)continue;let n=s._accessibleDiv,o=s.hitArea||s.getBounds().rectangle;if(s.hitArea){let a=s.worldTransform,c=this._renderer.resolution,u=this._renderer.resolution;n.style.left=`${(a.tx+o.x*a.a)*c}px`,n.style.top=`${(a.ty+o.y*a.d)*u}px`,n.style.width=`${o.width*a.a*c}px`,n.style.height=`${o.height*a.d*u}px`}else{this._capHitArea(o);let a=this._renderer.resolution,c=this._renderer.resolution;n.style.left=`${o.x*a}px`,n.style.top=`${o.y*c}px`,n.style.width=`${o.width*a}px`,n.style.height=`${o.height*c}px`}}this._renderId++}_updateDebugHTML(e){e.innerHTML=`type: ${e.type}</br> title : ${e.title}</br> tabIndex: ${e.tabIndex}`}_capHitArea(e){e.x<0&&(e.width+=e.x,e.x=0),e.y<0&&(e.height+=e.y,e.y=0);let{width:t,height:i}=this._renderer;e.x+e.width>t&&(e.width=t-e.x),e.y+e.height>i&&(e.height=i-e.y)}_addChild(e){let t=this._pool.pop();t||(e.accessibleType==="button"?t=document.createElement("button"):(t=document.createElement(e.accessibleType),t.style.cssText=`
7
7
  color: transparent;
8
8
  pointer-events: none;
9
9
  padding: 0;
@@ -16,9 +16,9 @@ Deprecated since v${r}`),console.warn(i))),F0[e]=!0}var F0,$,U0,ye=p(()=>{"use s
16
16
  -webkit-user-select: none;
17
17
  -moz-user-select: none;
18
18
  -ms-user-select: none;
19
- `,e.accessibleText&&(t.innerText=e.accessibleText)),t.style.width=`${Bu}px`,t.style.height=`${Bu}px`,t.style.backgroundColor=this.debug?"rgba(255,255,255,0.5)":"transparent",t.style.position="absolute",t.style.zIndex=O_.toString(),t.style.borderStyle="none",navigator.userAgent.toLowerCase().includes("chrome")?t.setAttribute("aria-live","off"):t.setAttribute("aria-live","polite"),navigator.userAgent.match(/rv:.*Gecko\//)?t.setAttribute("aria-relevant","additions"):t.setAttribute("aria-relevant","text"),t.addEventListener("click",this._onClick.bind(this)),t.addEventListener("focus",this._onFocus.bind(this)),t.addEventListener("focusout",this._onFocusOut.bind(this))),t.style.pointerEvents=e.accessiblePointerEvents,t.type=e.accessibleType,e.accessibleTitle&&e.accessibleTitle!==null?t.title=e.accessibleTitle:(!e.accessibleHint||e.accessibleHint===null)&&(t.title=`container ${e.tabIndex}`),e.accessibleHint&&e.accessibleHint!==null&&t.setAttribute("aria-label",e.accessibleHint),this.debug&&this._updateDebugHTML(t),e._accessibleActive=!0,e._accessibleDiv=t,t.container=e,this._children.push(e),this._div.appendChild(e._accessibleDiv),e.interactive&&(e._accessibleDiv.tabIndex=e.tabIndex)}_dispatchEvent(e,t){let{container:i}=e.target,s=this._renderer.events.rootBoundary,n=Object.assign(new Wr(s),{target:i});s.rootTarget=this._renderer.lastObjectRendered,t.forEach(o=>s.dispatchEvent(n,o))}_onClick(e){this._dispatchEvent(e,["click","pointertap","tap"])}_onFocus(e){e.target.getAttribute("aria-live")||e.target.setAttribute("aria-live","assertive"),this._dispatchEvent(e,["mouseover"])}_onFocusOut(e){e.target.getAttribute("aria-live")||e.target.setAttribute("aria-live","polite"),this._dispatchEvent(e,["mouseout"])}_onKeyDown(e){e.keyCode!==oP||!this._activateOnTab||this._activate()}_onMouseMove(e){e.movementX===0&&e.movementY===0||this._deactivate()}destroy(){this._deactivate(),this._destroyTouchHook(),this._div=null,this._pool=null,this._children=null,this._renderer=null,this._activateOnTab&&globalThis.removeEventListener("keydown",this._onKeyDown)}setAccessibilityEnabled(e){e?this._activate():this._deactivate()}};Zd.extension={type:[b.WebGLSystem,b.WebGPUSystem],name:"accessibility"};Zd.defaultOptions={enabledByDefault:!1,debug:!1,activateOnTab:!0,deactivateOnMouseMove:!0};L_=Zd});var V_,H_=p(()=>{"use strict";V_={accessible:!1,accessibleTitle:null,accessibleHint:null,tabIndex:0,accessibleType:"button",accessibleText:null,accessiblePointerEvents:"auto",accessibleChildren:!0,_accessibleActive:!1,_accessibleDiv:null,_renderId:-1}});var W_=p(()=>{B();jt();z_();H_();O.add(L_);O.mixin(we,V_)});var po,$_=p(()=>{B();po=class{static init(e){Object.defineProperty(this,"resizeTo",{set(t){globalThis.removeEventListener("resize",this.queueResize),this._resizeTo=t,t&&(globalThis.addEventListener("resize",this.queueResize),this.resize())},get(){return this._resizeTo}}),this.queueResize=()=>{this._resizeTo&&(this._cancelResize(),this._resizeId=requestAnimationFrame(()=>this.resize()))},this._cancelResize=()=>{this._resizeId&&(cancelAnimationFrame(this._resizeId),this._resizeId=null)},this.resize=()=>{if(!this._resizeTo)return;this._cancelResize();let t,i;if(this._resizeTo===globalThis.window)t=globalThis.innerWidth,i=globalThis.innerHeight;else{let{clientWidth:s,clientHeight:n}=this._resizeTo;t=s,i=n}this.renderer.resize(t,i),this.render()},this._resizeId=null,this._resizeTo=null,this.resizeTo=e.resizeTo||null}static destroy(){globalThis.removeEventListener("resize",this.queueResize),this._cancelResize(),this._cancelResize=null,this.queueResize=null,this.resizeTo=null,this.resize=null}};po.extension=b.Application});var $r,Ru=p(()=>{"use strict";$r=(r=>(r[r.INTERACTION=50]="INTERACTION",r[r.HIGH=25]="HIGH",r[r.NORMAL=0]="NORMAL",r[r.LOW=-25]="LOW",r[r.UTILITY=-50]="UTILITY",r))($r||{})});var Ms,q_=p(()=>{"use strict";Ms=class{constructor(e,t=null,i=0,s=!1){this.next=null,this.previous=null,this._destroyed=!1,this._fn=e,this._context=t,this.priority=i,this._once=s}match(e,t=null){return this._fn===e&&this._context===t}emit(e){this._fn&&(this._context?this._fn.call(this._context,e):this._fn(e));let t=this.next;return this._once&&this.destroy(!0),this._destroyed&&(this.next=null),t}connect(e){this.previous=e,e.next&&(e.next.previous=this),this.next=e.next,e.next=this}destroy(e=!1){this._destroyed=!0,this._fn=null,this._context=null,this.previous&&(this.previous.next=this.next),this.next&&(this.next.previous=this.previous);let t=this.next;return this.next=e?null:t,this.previous=null,t}}});var j_,ct,go=p(()=>{Ru();q_();j_=class _t{constructor(){this.autoStart=!1,this.deltaTime=1,this.lastTime=-1,this.speed=1,this.started=!1,this._requestId=null,this._maxElapsedMS=100,this._minElapsedMS=0,this._protected=!1,this._lastFrame=-1,this._head=new Ms(null,null,1/0),this.deltaMS=1/_t.targetFPMS,this.elapsedMS=1/_t.targetFPMS,this._tick=e=>{this._requestId=null,this.started&&(this.update(e),this.started&&this._requestId===null&&this._head.next&&(this._requestId=requestAnimationFrame(this._tick)))}}_requestIfNeeded(){this._requestId===null&&this._head.next&&(this.lastTime=performance.now(),this._lastFrame=this.lastTime,this._requestId=requestAnimationFrame(this._tick))}_cancelIfNeeded(){this._requestId!==null&&(cancelAnimationFrame(this._requestId),this._requestId=null)}_startIfPossible(){this.started?this._requestIfNeeded():this.autoStart&&this.start()}add(e,t,i=$r.NORMAL){return this._addListener(new Ms(e,t,i))}addOnce(e,t,i=$r.NORMAL){return this._addListener(new Ms(e,t,i,!0))}_addListener(e){let t=this._head.next,i=this._head;if(!t)e.connect(i);else{for(;t;){if(e.priority>t.priority){e.connect(i);break}i=t,t=t.next}e.previous||e.connect(i)}return this._startIfPossible(),this}remove(e,t){let i=this._head.next;for(;i;)i.match(e,t)?i=i.destroy():i=i.next;return this._head.next||this._cancelIfNeeded(),this}get count(){if(!this._head)return 0;let e=0,t=this._head;for(;t=t.next;)e++;return e}start(){this.started||(this.started=!0,this._requestIfNeeded())}stop(){this.started&&(this.started=!1,this._cancelIfNeeded())}destroy(){if(!this._protected){this.stop();let e=this._head.next;for(;e;)e=e.destroy(!0);this._head.destroy(),this._head=null}}update(e=performance.now()){let t;if(e>this.lastTime){if(t=this.elapsedMS=e-this.lastTime,t>this._maxElapsedMS&&(t=this._maxElapsedMS),t*=this.speed,this._minElapsedMS){let n=e-this._lastFrame|0;if(n<this._minElapsedMS)return;this._lastFrame=e-n%this._minElapsedMS}this.deltaMS=t,this.deltaTime=this.deltaMS*_t.targetFPMS;let i=this._head,s=i.next;for(;s;)s=s.emit(this);i.next||this._cancelIfNeeded()}else this.deltaTime=this.deltaMS=this.elapsedMS=0;this.lastTime=e}get FPS(){return 1e3/this.elapsedMS}get minFPS(){return 1e3/this._maxElapsedMS}set minFPS(e){let t=Math.min(this.maxFPS,e),i=Math.min(Math.max(0,t)/1e3,_t.targetFPMS);this._maxElapsedMS=1/i}get maxFPS(){return this._minElapsedMS?Math.round(1e3/this._minElapsedMS):0}set maxFPS(e){if(e===0)this._minElapsedMS=0;else{let t=Math.max(this.minFPS,e);this._minElapsedMS=1/(t/1e3)}}static get shared(){if(!_t._shared){let e=_t._shared=new _t;e.autoStart=!0,e._protected=!0}return _t._shared}static get system(){if(!_t._system){let e=_t._system=new _t;e.autoStart=!0,e._protected=!0}return _t._system}};j_.targetFPMS=.06;ct=j_});var xo,X_=p(()=>{B();Ru();go();xo=class{static init(e){e=Object.assign({autoStart:!0,sharedTicker:!1},e),Object.defineProperty(this,"ticker",{set(t){this._ticker&&this._ticker.remove(this.render,this),this._ticker=t,t&&t.add(this.render,this,$r.LOW)},get(){return this._ticker}}),this.stop=()=>{this._ticker.stop()},this.start=()=>{this._ticker.start()},this._ticker=null,this.ticker=e.sharedTicker?ct.shared:new ct,e.autoStart&&this.start()}static destroy(){if(this._ticker){let e=this._ticker;this.ticker=null,e.destroy()}}};xo.extension=b.Application});var Jd=p(()=>{B();$_();X_();O.add(po);O.add(xo)});function N(...r){ef!==Y_&&(ef++,ef===Y_?console.warn("PixiJS Warning: too many warnings, no more warnings will be reported to the console by PixiJS."):console.warn("PixiJS Warning: ",...r))}var ef,Y_,pe=p(()=>{"use strict";ef=0,Y_=500});var tf,Xt,rf=p(()=>{Ru();go();tf=class{constructor(){this.interactionFrequency=10,this._deltaTime=0,this._didMove=!1,this._tickerAdded=!1,this._pauseUpdate=!0}init(e){this.removeTickerListener(),this.events=e,this.interactionFrequency=10,this._deltaTime=0,this._didMove=!1,this._tickerAdded=!1,this._pauseUpdate=!0}get pauseUpdate(){return this._pauseUpdate}set pauseUpdate(e){this._pauseUpdate=e}addTickerListener(){this._tickerAdded||!this.domElement||(ct.system.add(this._tickerUpdate,this,$r.INTERACTION),this._tickerAdded=!0)}removeTickerListener(){this._tickerAdded&&(ct.system.remove(this._tickerUpdate,this),this._tickerAdded=!1)}pointerMoved(){this._didMove=!0}_update(){if(!this.domElement||this._pauseUpdate)return;if(this._didMove){this._didMove=!1;return}let e=this.events._rootPointerEvent;this.events.supportsTouchEvents&&e.pointerType==="touch"||globalThis.document.dispatchEvent(this.events.supportsPointerEvents?new PointerEvent("pointermove",{clientX:e.clientX,clientY:e.clientY,pointerType:e.pointerType,pointerId:e.pointerId}):new MouseEvent("mousemove",{clientX:e.clientX,clientY:e.clientY}))}_tickerUpdate(e){this._deltaTime+=e.deltaTime,!(this._deltaTime<this.interactionFrequency)&&(this._deltaTime=0,this._update())}},Xt=new tf});var Sr,Du=p(()=>{Ft();Au();Sr=class extends Wr{constructor(){super(...arguments),this.client=new J,this.movement=new J,this.offset=new J,this.global=new J,this.screen=new J}get clientX(){return this.client.x}get clientY(){return this.client.y}get x(){return this.clientX}get y(){return this.clientY}get movementX(){return this.movement.x}get movementY(){return this.movement.y}get offsetX(){return this.offset.x}get offsetY(){return this.offset.y}get globalX(){return this.global.x}get globalY(){return this.global.y}get screenX(){return this.screen.x}get screenY(){return this.screen.y}getLocalPosition(e,t,i){return e.worldTransform.applyInverse(i||this.global,t)}getModifierState(e){return"getModifierState"in this.nativeEvent&&this.nativeEvent.getModifierState(e)}initMouseEvent(e,t,i,s,n,o,a,c,u,l,h,f,d,m,x){throw new Error("Method not implemented.")}}});var rt,sf=p(()=>{Du();rt=class extends Sr{constructor(){super(...arguments),this.width=0,this.height=0,this.isPrimary=!1}getCoalescedEvents(){return this.type==="pointermove"||this.type==="mousemove"||this.type==="touchmove"?[this]:[]}getPredictedEvents(){throw new Error("getPredictedEvents is not supported!")}}});var Yt,nf=p(()=>{Du();Yt=class extends Sr{constructor(){super(...arguments),this.DOM_DELTA_PIXEL=0,this.DOM_DELTA_LINE=1,this.DOM_DELTA_PAGE=2}};Yt.DOM_DELTA_PIXEL=0;Yt.DOM_DELTA_LINE=1;Yt.DOM_DELTA_PAGE=2});var dP,fP,_o,Mu,K_=p(()=>{Ve();Ft();pe();rf();Du();sf();nf();dP=2048,fP=new J,_o=new J,Mu=class{constructor(e){this.dispatch=new oe,this.moveOnAll=!1,this.enableGlobalMoveEvents=!0,this.mappingState={trackingData:{}},this.eventPool=new Map,this._allInteractiveElements=[],this._hitElements=[],this._isPointerMoveEvent=!1,this.rootTarget=e,this.hitPruneFn=this.hitPruneFn.bind(this),this.hitTestFn=this.hitTestFn.bind(this),this.mapPointerDown=this.mapPointerDown.bind(this),this.mapPointerMove=this.mapPointerMove.bind(this),this.mapPointerOut=this.mapPointerOut.bind(this),this.mapPointerOver=this.mapPointerOver.bind(this),this.mapPointerUp=this.mapPointerUp.bind(this),this.mapPointerUpOutside=this.mapPointerUpOutside.bind(this),this.mapWheel=this.mapWheel.bind(this),this.mappingTable={},this.addEventMapping("pointerdown",this.mapPointerDown),this.addEventMapping("pointermove",this.mapPointerMove),this.addEventMapping("pointerout",this.mapPointerOut),this.addEventMapping("pointerleave",this.mapPointerOut),this.addEventMapping("pointerover",this.mapPointerOver),this.addEventMapping("pointerup",this.mapPointerUp),this.addEventMapping("pointerupoutside",this.mapPointerUpOutside),this.addEventMapping("wheel",this.mapWheel)}addEventMapping(e,t){this.mappingTable[e]||(this.mappingTable[e]=[]),this.mappingTable[e].push({fn:t,priority:0}),this.mappingTable[e].sort((i,s)=>i.priority-s.priority)}dispatchEvent(e,t){e.propagationStopped=!1,e.propagationImmediatelyStopped=!1,this.propagate(e,t),this.dispatch.emit(t||e.type,e)}mapEvent(e){if(!this.rootTarget)return;let t=this.mappingTable[e.type];if(t)for(let i=0,s=t.length;i<s;i++)t[i].fn(e);else N(`[EventBoundary]: Event mapping not defined for ${e.type}`)}hitTest(e,t){Xt.pauseUpdate=!0;let s=this._isPointerMoveEvent&&this.enableGlobalMoveEvents?"hitTestMoveRecursive":"hitTestRecursive",n=this[s](this.rootTarget,this.rootTarget.eventMode,fP.set(e,t),this.hitTestFn,this.hitPruneFn);return n&&n[0]}propagate(e,t){if(!e.target)return;let i=e.composedPath();e.eventPhase=e.CAPTURING_PHASE;for(let s=0,n=i.length-1;s<n;s++)if(e.currentTarget=i[s],this.notifyTarget(e,t),e.propagationStopped||e.propagationImmediatelyStopped)return;if(e.eventPhase=e.AT_TARGET,e.currentTarget=e.target,this.notifyTarget(e,t),!(e.propagationStopped||e.propagationImmediatelyStopped)){e.eventPhase=e.BUBBLING_PHASE;for(let s=i.length-2;s>=0;s--)if(e.currentTarget=i[s],this.notifyTarget(e,t),e.propagationStopped||e.propagationImmediatelyStopped)return}}all(e,t,i=this._allInteractiveElements){if(i.length===0)return;e.eventPhase=e.BUBBLING_PHASE;let s=Array.isArray(t)?t:[t];for(let n=i.length-1;n>=0;n--)s.forEach(o=>{e.currentTarget=i[n],this.notifyTarget(e,o)})}propagationPath(e){let t=[e];for(let i=0;i<dP&&e!==this.rootTarget&&e.parent;i++){if(!e.parent)throw new Error("Cannot find propagation path to disconnected target");t.push(e.parent),e=e.parent}return t.reverse(),t}hitTestMoveRecursive(e,t,i,s,n,o=!1){let a=!1;if(this._interactivePrune(e))return null;if((e.eventMode==="dynamic"||t==="dynamic")&&(Xt.pauseUpdate=!1),e.interactiveChildren&&e.children){let l=e.children;for(let h=l.length-1;h>=0;h--){let f=l[h],d=this.hitTestMoveRecursive(f,this._isInteractive(t)?t:f.eventMode,i,s,n,o||n(e,i));if(d){if(d.length>0&&!d[d.length-1].parent)continue;let m=e.isInteractive();(d.length>0||m)&&(m&&this._allInteractiveElements.push(e),d.push(e)),this._hitElements.length===0&&(this._hitElements=d),a=!0}}}let c=this._isInteractive(t),u=e.isInteractive();return u&&u&&this._allInteractiveElements.push(e),o||this._hitElements.length>0?null:a?this._hitElements:c&&!n(e,i)&&s(e,i)?u?[e]:[]:null}hitTestRecursive(e,t,i,s,n){if(this._interactivePrune(e)||n(e,i))return null;if((e.eventMode==="dynamic"||t==="dynamic")&&(Xt.pauseUpdate=!1),e.interactiveChildren&&e.children){let c=e.children,u=i;for(let l=c.length-1;l>=0;l--){let h=c[l],f=this.hitTestRecursive(h,this._isInteractive(t)?t:h.eventMode,u,s,n);if(f){if(f.length>0&&!f[f.length-1].parent)continue;let d=e.isInteractive();return(f.length>0||d)&&f.push(e),f}}}let o=this._isInteractive(t),a=e.isInteractive();return o&&s(e,i)?a?[e]:[]:null}_isInteractive(e){return e==="static"||e==="dynamic"}_interactivePrune(e){return!e||!e.visible||!e.renderable||!e.measurable||e.eventMode==="none"||e.eventMode==="passive"&&!e.interactiveChildren}hitPruneFn(e,t){if(e.hitArea&&(e.worldTransform.applyInverse(t,_o),!e.hitArea.contains(_o.x,_o.y)))return!0;if(e.effects&&e.effects.length)for(let i=0;i<e.effects.length;i++){let s=e.effects[i];if(s.containsPoint&&!s.containsPoint(t,this.hitTestFn))return!0}return!1}hitTestFn(e,t){return e.hitArea?!0:e?.containsPoint?(e.worldTransform.applyInverse(t,_o),e.containsPoint(_o)):!1}notifyTarget(e,t){if(!e.currentTarget.isInteractive())return;t??(t=e.type);let i=`on${t}`;e.currentTarget[i]?.(e);let s=e.eventPhase===e.CAPTURING_PHASE||e.eventPhase===e.AT_TARGET?`${t}capture`:t;this._notifyListeners(e,s),e.eventPhase===e.AT_TARGET&&this._notifyListeners(e,t)}mapPointerDown(e){if(!(e instanceof rt)){N("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=this.createPointerEvent(e);if(this.dispatchEvent(t,"pointerdown"),t.pointerType==="touch")this.dispatchEvent(t,"touchstart");else if(t.pointerType==="mouse"||t.pointerType==="pen"){let s=t.button===2;this.dispatchEvent(t,s?"rightdown":"mousedown")}let i=this.trackingData(e.pointerId);i.pressTargetsByButton[e.button]=t.composedPath(),this.freeEvent(t)}mapPointerMove(e){if(!(e instanceof rt)){N("EventBoundary cannot map a non-pointer event as a pointer event");return}this._allInteractiveElements.length=0,this._hitElements.length=0,this._isPointerMoveEvent=!0;let t=this.createPointerEvent(e);this._isPointerMoveEvent=!1;let i=t.pointerType==="mouse"||t.pointerType==="pen",s=this.trackingData(e.pointerId),n=this.findMountedTarget(s.overTargets);if(s.overTargets?.length>0&&n!==t.target){let c=e.type==="mousemove"?"mouseout":"pointerout",u=this.createPointerEvent(e,c,n);if(this.dispatchEvent(u,"pointerout"),i&&this.dispatchEvent(u,"mouseout"),!t.composedPath().includes(n)){let l=this.createPointerEvent(e,"pointerleave",n);for(l.eventPhase=l.AT_TARGET;l.target&&!t.composedPath().includes(l.target);)l.currentTarget=l.target,this.notifyTarget(l),i&&this.notifyTarget(l,"mouseleave"),l.target=l.target.parent;this.freeEvent(l)}this.freeEvent(u)}if(n!==t.target){let c=e.type==="mousemove"?"mouseover":"pointerover",u=this.clonePointerEvent(t,c);this.dispatchEvent(u,"pointerover"),i&&this.dispatchEvent(u,"mouseover");let l=n?.parent;for(;l&&l!==this.rootTarget.parent&&l!==t.target;)l=l.parent;if(!l||l===this.rootTarget.parent){let f=this.clonePointerEvent(t,"pointerenter");for(f.eventPhase=f.AT_TARGET;f.target&&f.target!==n&&f.target!==this.rootTarget.parent;)f.currentTarget=f.target,this.notifyTarget(f),i&&this.notifyTarget(f,"mouseenter"),f.target=f.target.parent;this.freeEvent(f)}this.freeEvent(u)}let o=[],a=this.enableGlobalMoveEvents??!0;this.moveOnAll?o.push("pointermove"):this.dispatchEvent(t,"pointermove"),a&&o.push("globalpointermove"),t.pointerType==="touch"&&(this.moveOnAll?o.splice(1,0,"touchmove"):this.dispatchEvent(t,"touchmove"),a&&o.push("globaltouchmove")),i&&(this.moveOnAll?o.splice(1,0,"mousemove"):this.dispatchEvent(t,"mousemove"),a&&o.push("globalmousemove"),this.cursor=t.target?.cursor),o.length>0&&this.all(t,o),this._allInteractiveElements.length=0,this._hitElements.length=0,s.overTargets=t.composedPath(),this.freeEvent(t)}mapPointerOver(e){if(!(e instanceof rt)){N("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=this.trackingData(e.pointerId),i=this.createPointerEvent(e),s=i.pointerType==="mouse"||i.pointerType==="pen";this.dispatchEvent(i,"pointerover"),s&&this.dispatchEvent(i,"mouseover"),i.pointerType==="mouse"&&(this.cursor=i.target?.cursor);let n=this.clonePointerEvent(i,"pointerenter");for(n.eventPhase=n.AT_TARGET;n.target&&n.target!==this.rootTarget.parent;)n.currentTarget=n.target,this.notifyTarget(n),s&&this.notifyTarget(n,"mouseenter"),n.target=n.target.parent;t.overTargets=i.composedPath(),this.freeEvent(i),this.freeEvent(n)}mapPointerOut(e){if(!(e instanceof rt)){N("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=this.trackingData(e.pointerId);if(t.overTargets){let i=e.pointerType==="mouse"||e.pointerType==="pen",s=this.findMountedTarget(t.overTargets),n=this.createPointerEvent(e,"pointerout",s);this.dispatchEvent(n),i&&this.dispatchEvent(n,"mouseout");let o=this.createPointerEvent(e,"pointerleave",s);for(o.eventPhase=o.AT_TARGET;o.target&&o.target!==this.rootTarget.parent;)o.currentTarget=o.target,this.notifyTarget(o),i&&this.notifyTarget(o,"mouseleave"),o.target=o.target.parent;t.overTargets=null,this.freeEvent(n),this.freeEvent(o)}this.cursor=null}mapPointerUp(e){if(!(e instanceof rt)){N("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=performance.now(),i=this.createPointerEvent(e);if(this.dispatchEvent(i,"pointerup"),i.pointerType==="touch")this.dispatchEvent(i,"touchend");else if(i.pointerType==="mouse"||i.pointerType==="pen"){let a=i.button===2;this.dispatchEvent(i,a?"rightup":"mouseup")}let s=this.trackingData(e.pointerId),n=this.findMountedTarget(s.pressTargetsByButton[e.button]),o=n;if(n&&!i.composedPath().includes(n)){let a=n;for(;a&&!i.composedPath().includes(a);){if(i.currentTarget=a,this.notifyTarget(i,"pointerupoutside"),i.pointerType==="touch")this.notifyTarget(i,"touchendoutside");else if(i.pointerType==="mouse"||i.pointerType==="pen"){let c=i.button===2;this.notifyTarget(i,c?"rightupoutside":"mouseupoutside")}a=a.parent}delete s.pressTargetsByButton[e.button],o=a}if(o){let a=this.clonePointerEvent(i,"click");a.target=o,a.path=null,s.clicksByButton[e.button]||(s.clicksByButton[e.button]={clickCount:0,target:a.target,timeStamp:t});let c=s.clicksByButton[e.button];if(c.target===a.target&&t-c.timeStamp<200?++c.clickCount:c.clickCount=1,c.target=a.target,c.timeStamp=t,a.detail=c.clickCount,a.pointerType==="mouse"){let u=a.button===2;this.dispatchEvent(a,u?"rightclick":"click")}else a.pointerType==="touch"&&this.dispatchEvent(a,"tap");this.dispatchEvent(a,"pointertap"),this.freeEvent(a)}this.freeEvent(i)}mapPointerUpOutside(e){if(!(e instanceof rt)){N("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=this.trackingData(e.pointerId),i=this.findMountedTarget(t.pressTargetsByButton[e.button]),s=this.createPointerEvent(e);if(i){let n=i;for(;n;)s.currentTarget=n,this.notifyTarget(s,"pointerupoutside"),s.pointerType==="touch"?this.notifyTarget(s,"touchendoutside"):(s.pointerType==="mouse"||s.pointerType==="pen")&&this.notifyTarget(s,s.button===2?"rightupoutside":"mouseupoutside"),n=n.parent;delete t.pressTargetsByButton[e.button]}this.freeEvent(s)}mapWheel(e){if(!(e instanceof Yt)){N("EventBoundary cannot map a non-wheel event as a wheel event");return}let t=this.createWheelEvent(e);this.dispatchEvent(t),this.freeEvent(t)}findMountedTarget(e){if(!e)return null;let t=e[0];for(let i=1;i<e.length&&e[i].parent===t;i++)t=e[i];return t}createPointerEvent(e,t,i){let s=this.allocateEvent(rt);return this.copyPointerData(e,s),this.copyMouseData(e,s),this.copyData(e,s),s.nativeEvent=e.nativeEvent,s.originalEvent=e,s.target=i??this.hitTest(s.global.x,s.global.y)??this._hitElements[0],typeof t=="string"&&(s.type=t),s}createWheelEvent(e){let t=this.allocateEvent(Yt);return this.copyWheelData(e,t),this.copyMouseData(e,t),this.copyData(e,t),t.nativeEvent=e.nativeEvent,t.originalEvent=e,t.target=this.hitTest(t.global.x,t.global.y),t}clonePointerEvent(e,t){let i=this.allocateEvent(rt);return i.nativeEvent=e.nativeEvent,i.originalEvent=e.originalEvent,this.copyPointerData(e,i),this.copyMouseData(e,i),this.copyData(e,i),i.target=e.target,i.path=e.composedPath().slice(),i.type=t??i.type,i}copyWheelData(e,t){t.deltaMode=e.deltaMode,t.deltaX=e.deltaX,t.deltaY=e.deltaY,t.deltaZ=e.deltaZ}copyPointerData(e,t){e instanceof rt&&t instanceof rt&&(t.pointerId=e.pointerId,t.width=e.width,t.height=e.height,t.isPrimary=e.isPrimary,t.pointerType=e.pointerType,t.pressure=e.pressure,t.tangentialPressure=e.tangentialPressure,t.tiltX=e.tiltX,t.tiltY=e.tiltY,t.twist=e.twist)}copyMouseData(e,t){e instanceof Sr&&t instanceof Sr&&(t.altKey=e.altKey,t.button=e.button,t.buttons=e.buttons,t.client.copyFrom(e.client),t.ctrlKey=e.ctrlKey,t.metaKey=e.metaKey,t.movement.copyFrom(e.movement),t.screen.copyFrom(e.screen),t.shiftKey=e.shiftKey,t.global.copyFrom(e.global))}copyData(e,t){t.isTrusted=e.isTrusted,t.srcElement=e.srcElement,t.timeStamp=performance.now(),t.type=e.type,t.detail=e.detail,t.view=e.view,t.which=e.which,t.layer.copyFrom(e.layer),t.page.copyFrom(e.page)}trackingData(e){return this.mappingState.trackingData[e]||(this.mappingState.trackingData[e]={pressTargetsByButton:{},clicksByButton:{},overTarget:null}),this.mappingState.trackingData[e]}allocateEvent(e){this.eventPool.has(e)||this.eventPool.set(e,[]);let t=this.eventPool.get(e).pop()||new e(this);return t.eventPhase=t.NONE,t.currentTarget=null,t.defaultPrevented=!1,t.path=null,t.target=null,t}freeEvent(e){if(e.manager!==this)throw new Error("It is illegal to free an event not managed by this EventBoundary!");let t=e.constructor;this.eventPool.has(t)||this.eventPool.set(t,[]),this.eventPool.get(t).push(e)}_notifyListeners(e,t){let i=e.currentTarget._events[t];if(i)if("fn"in i)i.once&&e.currentTarget.removeListener(t,i.fn,void 0,!0),i.fn.call(i.context,e);else for(let s=0,n=i.length;s<n&&!e.propagationImmediatelyStopped;s++)i[s].once&&e.currentTarget.removeListener(t,i[s].fn,void 0,!0),i[s].fn.call(i[s].context,e)}}});var mP,pP,af,Iu,cf=p(()=>{B();K_();rf();sf();nf();mP=1,pP={touchstart:"pointerdown",touchend:"pointerup",touchendoutside:"pointerupoutside",touchmove:"pointermove",touchcancel:"pointercancel"},af=class of{constructor(e){this.supportsTouchEvents="ontouchstart"in globalThis,this.supportsPointerEvents=!!globalThis.PointerEvent,this.domElement=null,this.resolution=1,this.renderer=e,this.rootBoundary=new Mu(null),Xt.init(this),this.autoPreventDefault=!0,this._eventsAdded=!1,this._rootPointerEvent=new rt(null),this._rootWheelEvent=new Yt(null),this.cursorStyles={default:"inherit",pointer:"pointer"},this.features=new Proxy({...of.defaultEventFeatures},{set:(t,i,s)=>(i==="globalMove"&&(this.rootBoundary.enableGlobalMoveEvents=s),t[i]=s,!0)}),this._onPointerDown=this._onPointerDown.bind(this),this._onPointerMove=this._onPointerMove.bind(this),this._onPointerUp=this._onPointerUp.bind(this),this._onPointerOverOut=this._onPointerOverOut.bind(this),this.onWheel=this.onWheel.bind(this)}static get defaultEventMode(){return this._defaultEventMode}init(e){let{canvas:t,resolution:i}=this.renderer;this.setTargetElement(t),this.resolution=i,of._defaultEventMode=e.eventMode??"passive",Object.assign(this.features,e.eventFeatures??{}),this.rootBoundary.enableGlobalMoveEvents=this.features.globalMove}resolutionChange(e){this.resolution=e}destroy(){this.setTargetElement(null),this.renderer=null,this._currentCursor=null}setCursor(e){e||(e="default");let t=!0;if(globalThis.OffscreenCanvas&&this.domElement instanceof OffscreenCanvas&&(t=!1),this._currentCursor===e)return;this._currentCursor=e;let i=this.cursorStyles[e];if(i)switch(typeof i){case"string":t&&(this.domElement.style.cursor=i);break;case"function":i(e);break;case"object":t&&Object.assign(this.domElement.style,i);break}else t&&typeof e=="string"&&!Object.prototype.hasOwnProperty.call(this.cursorStyles,e)&&(this.domElement.style.cursor=e)}get pointer(){return this._rootPointerEvent}_onPointerDown(e){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;let t=this._normalizeToPointerData(e);this.autoPreventDefault&&t[0].isNormalized&&(e.cancelable||!("cancelable"in e))&&e.preventDefault();for(let i=0,s=t.length;i<s;i++){let n=t[i],o=this._bootstrapEvent(this._rootPointerEvent,n);this.rootBoundary.mapEvent(o)}this.setCursor(this.rootBoundary.cursor)}_onPointerMove(e){if(!this.features.move)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered,Xt.pointerMoved();let t=this._normalizeToPointerData(e);for(let i=0,s=t.length;i<s;i++){let n=this._bootstrapEvent(this._rootPointerEvent,t[i]);this.rootBoundary.mapEvent(n)}this.setCursor(this.rootBoundary.cursor)}_onPointerUp(e){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;let t=e.target;e.composedPath&&e.composedPath().length>0&&(t=e.composedPath()[0]);let i=t!==this.domElement?"outside":"",s=this._normalizeToPointerData(e);for(let n=0,o=s.length;n<o;n++){let a=this._bootstrapEvent(this._rootPointerEvent,s[n]);a.type+=i,this.rootBoundary.mapEvent(a)}this.setCursor(this.rootBoundary.cursor)}_onPointerOverOut(e){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;let t=this._normalizeToPointerData(e);for(let i=0,s=t.length;i<s;i++){let n=this._bootstrapEvent(this._rootPointerEvent,t[i]);this.rootBoundary.mapEvent(n)}this.setCursor(this.rootBoundary.cursor)}onWheel(e){if(!this.features.wheel)return;let t=this.normalizeWheelEvent(e);this.rootBoundary.rootTarget=this.renderer.lastObjectRendered,this.rootBoundary.mapEvent(t)}setTargetElement(e){this._removeEvents(),this.domElement=e,Xt.domElement=e,this._addEvents()}_addEvents(){if(this._eventsAdded||!this.domElement)return;Xt.addTickerListener();let e=this.domElement.style;e&&(globalThis.navigator.msPointerEnabled?(e.msContentZooming="none",e.msTouchAction="none"):this.supportsPointerEvents&&(e.touchAction="none")),this.supportsPointerEvents?(globalThis.document.addEventListener("pointermove",this._onPointerMove,!0),this.domElement.addEventListener("pointerdown",this._onPointerDown,!0),this.domElement.addEventListener("pointerleave",this._onPointerOverOut,!0),this.domElement.addEventListener("pointerover",this._onPointerOverOut,!0),globalThis.addEventListener("pointerup",this._onPointerUp,!0)):(globalThis.document.addEventListener("mousemove",this._onPointerMove,!0),this.domElement.addEventListener("mousedown",this._onPointerDown,!0),this.domElement.addEventListener("mouseout",this._onPointerOverOut,!0),this.domElement.addEventListener("mouseover",this._onPointerOverOut,!0),globalThis.addEventListener("mouseup",this._onPointerUp,!0),this.supportsTouchEvents&&(this.domElement.addEventListener("touchstart",this._onPointerDown,!0),this.domElement.addEventListener("touchend",this._onPointerUp,!0),this.domElement.addEventListener("touchmove",this._onPointerMove,!0))),this.domElement.addEventListener("wheel",this.onWheel,{passive:!0,capture:!0}),this._eventsAdded=!0}_removeEvents(){if(!this._eventsAdded||!this.domElement)return;Xt.removeTickerListener();let e=this.domElement.style;e&&(globalThis.navigator.msPointerEnabled?(e.msContentZooming="",e.msTouchAction=""):this.supportsPointerEvents&&(e.touchAction="")),this.supportsPointerEvents?(globalThis.document.removeEventListener("pointermove",this._onPointerMove,!0),this.domElement.removeEventListener("pointerdown",this._onPointerDown,!0),this.domElement.removeEventListener("pointerleave",this._onPointerOverOut,!0),this.domElement.removeEventListener("pointerover",this._onPointerOverOut,!0),globalThis.removeEventListener("pointerup",this._onPointerUp,!0)):(globalThis.document.removeEventListener("mousemove",this._onPointerMove,!0),this.domElement.removeEventListener("mousedown",this._onPointerDown,!0),this.domElement.removeEventListener("mouseout",this._onPointerOverOut,!0),this.domElement.removeEventListener("mouseover",this._onPointerOverOut,!0),globalThis.removeEventListener("mouseup",this._onPointerUp,!0),this.supportsTouchEvents&&(this.domElement.removeEventListener("touchstart",this._onPointerDown,!0),this.domElement.removeEventListener("touchend",this._onPointerUp,!0),this.domElement.removeEventListener("touchmove",this._onPointerMove,!0))),this.domElement.removeEventListener("wheel",this.onWheel,!0),this.domElement=null,this._eventsAdded=!1}mapPositionToPoint(e,t,i){let s=this.domElement.isConnected?this.domElement.getBoundingClientRect():{x:0,y:0,width:this.domElement.width,height:this.domElement.height,left:0,top:0},n=1/this.resolution;e.x=(t-s.left)*(this.domElement.width/s.width)*n,e.y=(i-s.top)*(this.domElement.height/s.height)*n}_normalizeToPointerData(e){let t=[];if(this.supportsTouchEvents&&e instanceof TouchEvent)for(let i=0,s=e.changedTouches.length;i<s;i++){let n=e.changedTouches[i];typeof n.button>"u"&&(n.button=0),typeof n.buttons>"u"&&(n.buttons=1),typeof n.isPrimary>"u"&&(n.isPrimary=e.touches.length===1&&e.type==="touchstart"),typeof n.width>"u"&&(n.width=n.radiusX||1),typeof n.height>"u"&&(n.height=n.radiusY||1),typeof n.tiltX>"u"&&(n.tiltX=0),typeof n.tiltY>"u"&&(n.tiltY=0),typeof n.pointerType>"u"&&(n.pointerType="touch"),typeof n.pointerId>"u"&&(n.pointerId=n.identifier||0),typeof n.pressure>"u"&&(n.pressure=n.force||.5),typeof n.twist>"u"&&(n.twist=0),typeof n.tangentialPressure>"u"&&(n.tangentialPressure=0),typeof n.layerX>"u"&&(n.layerX=n.offsetX=n.clientX),typeof n.layerY>"u"&&(n.layerY=n.offsetY=n.clientY),n.isNormalized=!0,n.type=e.type,t.push(n)}else if(!globalThis.MouseEvent||e instanceof MouseEvent&&(!this.supportsPointerEvents||!(e instanceof globalThis.PointerEvent))){let i=e;typeof i.isPrimary>"u"&&(i.isPrimary=!0),typeof i.width>"u"&&(i.width=1),typeof i.height>"u"&&(i.height=1),typeof i.tiltX>"u"&&(i.tiltX=0),typeof i.tiltY>"u"&&(i.tiltY=0),typeof i.pointerType>"u"&&(i.pointerType="mouse"),typeof i.pointerId>"u"&&(i.pointerId=mP),typeof i.pressure>"u"&&(i.pressure=.5),typeof i.twist>"u"&&(i.twist=0),typeof i.tangentialPressure>"u"&&(i.tangentialPressure=0),i.isNormalized=!0,t.push(i)}else t.push(e);return t}normalizeWheelEvent(e){let t=this._rootWheelEvent;return this._transferMouseData(t,e),t.deltaX=e.deltaX,t.deltaY=e.deltaY,t.deltaZ=e.deltaZ,t.deltaMode=e.deltaMode,this.mapPositionToPoint(t.screen,e.clientX,e.clientY),t.global.copyFrom(t.screen),t.offset.copyFrom(t.screen),t.nativeEvent=e,t.type=e.type,t}_bootstrapEvent(e,t){return e.originalEvent=null,e.nativeEvent=t,e.pointerId=t.pointerId,e.width=t.width,e.height=t.height,e.isPrimary=t.isPrimary,e.pointerType=t.pointerType,e.pressure=t.pressure,e.tangentialPressure=t.tangentialPressure,e.tiltX=t.tiltX,e.tiltY=t.tiltY,e.twist=t.twist,this._transferMouseData(e,t),this.mapPositionToPoint(e.screen,t.clientX,t.clientY),e.global.copyFrom(e.screen),e.offset.copyFrom(e.screen),e.isTrusted=t.isTrusted,e.type==="pointerleave"&&(e.type="pointerout"),e.type.startsWith("mouse")&&(e.type=e.type.replace("mouse","pointer")),e.type.startsWith("touch")&&(e.type=pP[e.type]||e.type),e}_transferMouseData(e,t){e.isTrusted=t.isTrusted,e.srcElement=t.srcElement,e.timeStamp=performance.now(),e.type=t.type,e.altKey=t.altKey,e.button=t.button,e.buttons=t.buttons,e.client.x=t.clientX,e.client.y=t.clientY,e.ctrlKey=t.ctrlKey,e.metaKey=t.metaKey,e.movement.x=t.movementX,e.movement.y=t.movementY,e.page.x=t.pageX,e.page.y=t.pageY,e.relatedTarget=null,e.shiftKey=t.shiftKey}};af.extension={name:"events",type:[b.WebGLSystem,b.CanvasSystem,b.WebGPUSystem],priority:-1};af.defaultEventFeatures={move:!0,globalMove:!0,click:!0,wheel:!0};Iu=af});var Q_,Z_=p(()=>{cf();Au();Q_={onclick:null,onmousedown:null,onmouseenter:null,onmouseleave:null,onmousemove:null,onglobalmousemove:null,onmouseout:null,onmouseover:null,onmouseup:null,onmouseupoutside:null,onpointercancel:null,onpointerdown:null,onpointerenter:null,onpointerleave:null,onpointermove:null,onglobalpointermove:null,onpointerout:null,onpointerover:null,onpointertap:null,onpointerup:null,onpointerupoutside:null,onrightclick:null,onrightdown:null,onrightup:null,onrightupoutside:null,ontap:null,ontouchcancel:null,ontouchend:null,ontouchendoutside:null,ontouchmove:null,onglobaltouchmove:null,ontouchstart:null,onwheel:null,get interactive(){return this.eventMode==="dynamic"||this.eventMode==="static"},set interactive(r){this.eventMode=r?"static":"passive"},_internalEventMode:void 0,get eventMode(){return this._internalEventMode??Iu.defaultEventMode},set eventMode(r){this._internalEventMode=r},isInteractive(){return this.eventMode==="static"||this.eventMode==="dynamic"},interactiveChildren:!0,hitArea:null,addEventListener(r,e,t){let i=typeof t=="boolean"&&t||typeof t=="object"&&t.capture,s=typeof t=="object"?t.signal:void 0,n=typeof t=="object"?t.once===!0:!1,o=typeof e=="function"?void 0:e;r=i?`${r}capture`:r;let a=typeof e=="function"?e:e.handleEvent,c=this;s&&s.addEventListener("abort",()=>{c.off(r,a,o)}),n?c.once(r,a,o):c.on(r,a,o)},removeEventListener(r,e,t){let i=typeof t=="boolean"&&t||typeof t=="object"&&t.capture,s=typeof e=="function"?void 0:e;r=i?`${r}capture`:r,e=typeof e=="function"?e:e.handleEvent,this.off(r,e,s)},dispatchEvent(r){if(!(r instanceof Wr))throw new Error("Container cannot propagate events outside of the Federated Events API");return r.defaultPrevented=!1,r.path=null,r.target=this,r.manager.dispatchEvent(r),!r.defaultPrevented}}});var J_=p(()=>{B();jt();cf();Z_();O.add(Iu);O.mixin(we,Q_)});var bo,eb=p(()=>{B();bo=class{constructor(e){this._attachedDomElements=[],this._renderer=e,this._renderer.runners.postrender.add(this),this._domElement=document.createElement("div"),this._domElement.style.position="absolute",this._domElement.style.top="0",this._domElement.style.left="0",this._domElement.style.pointerEvents="none",this._domElement.style.zIndex="1000"}addRenderable(e,t){this._attachedDomElements.includes(e)||this._attachedDomElements.push(e)}updateRenderable(e){}validateRenderable(e){return!0}postrender(){let e=this._attachedDomElements;if(e.length===0){this._domElement.remove();return}let t=this._renderer.view.canvas;this._domElement.parentNode!==t.parentNode&&t.parentNode?.appendChild(this._domElement);let i=parseFloat(t.style.width)/t.width*this._renderer.resolution,s=parseFloat(t.style.height)/t.height*this._renderer.resolution;this._domElement.style.transform=`translate(${t.offsetLeft}px, ${t.offsetTop}px) scale(${i}, ${s})`;for(let n=0;n<e.length;n++){let o=e[n],a=o.element;if(!o.parent||o.globalDisplayStatus<7)a?.remove(),e.splice(n,1),n--;else{this._domElement.contains(a)||(a.style.position="absolute",a.style.pointerEvents="auto",this._domElement.appendChild(a));let c=o.worldTransform,u=o._anchor,l=o.width*u.x,h=o.height*u.y;a.style.transformOrigin=`${l}px ${h}px`,a.style.transform=`matrix(${c.a}, ${c.b}, ${c.c}, ${c.d}, ${c.tx-l}, ${c.ty-h})`,a.style.opacity=o.groupAlpha.toString()}}}destroy(){this._renderer.runners.postrender.remove(this);for(let e=0;e<this._attachedDomElements.length;e++)this._attachedDomElements[e].element?.remove();this._attachedDomElements.length=0,this._domElement.remove(),this._renderer=null}};bo.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"dom"}});var qr,Fu=p(()=>{at();jt();qr=class extends we{constructor(e){super(e),this.canBundle=!0,this.allowChildren=!1,this._roundPixels=0,this._lastUsed=-1,this._gpuData=Object.create(null),this._bounds=new ae(0,1,0,0),this._boundsDirty=!0}get bounds(){return this._boundsDirty?(this.updateBounds(),this._boundsDirty=!1,this._bounds):this._bounds}get roundPixels(){return!!this._roundPixels}set roundPixels(e){this._roundPixels=e?1:0}containsPoint(e){let t=this.bounds,{x:i,y:s}=e;return i>=t.minX&&i<=t.maxX&&s>=t.minY&&s<=t.maxY}onViewUpdate(){if(this._didViewChangeTick++,this._boundsDirty=!0,this.didViewUpdate)return;this.didViewUpdate=!0;let e=this.renderGroup||this.parentRenderGroup;e&&e.onChildViewUpdate(this)}destroy(e){super.destroy(e),this._bounds=null;for(let t in this._gpuData)this._gpuData[t].destroy?.();this._gpuData=null}collectRenderablesSimple(e,t,i){let{renderPipes:s}=t;s.blendMode.setBlendMode(this,this.groupBlendMode,e),s[this.renderPipeId].addRenderable(this,e),this.didViewUpdate=!1;let o=this.children,a=o.length;for(let c=0;c<a;c++)o[c].collectRenderables(e,t,i)}}});var tb=p(()=>{B();eb();O.add(bo)});var uf,rb=p(()=>{"use strict";uf=(r=>(r[r.Low=0]="Low",r[r.Normal=1]="Normal",r[r.High=2]="High",r))(uf||{})});var ib,sb=p(()=>{"use strict";ib={createCanvas:(r,e)=>{let t=document.createElement("canvas");return t.width=r,t.height=e,t},getCanvasRenderingContext2D:()=>CanvasRenderingContext2D,getWebGLRenderingContext:()=>WebGLRenderingContext,getNavigator:()=>navigator,getBaseUrl:()=>document.baseURI??window.location.href,getFontFaceSet:()=>document.fonts,fetch:(r,e)=>fetch(r,e),parseXML:r=>new DOMParser().parseFromString(r,"text/xml")}});var nb,W,Ce=p(()=>{sb();nb=ib,W={get(){return nb},set(r){nb=r}}});function Ut(r){if(typeof r!="string")throw new TypeError(`Path must be a string. Received ${JSON.stringify(r)}`)}function yo(r){return r.split("?")[0].split("#")[0]}function gP(r){return r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function xP(r,e,t){return r.replace(new RegExp(gP(e),"g"),t)}function _P(r,e){let t="",i=0,s=-1,n=0,o=-1;for(let a=0;a<=r.length;++a){if(a<r.length)o=r.charCodeAt(a);else{if(o===47)break;o=47}if(o===47){if(!(s===a-1||n===1))if(s!==a-1&&n===2){if(t.length<2||i!==2||t.charCodeAt(t.length-1)!==46||t.charCodeAt(t.length-2)!==46){if(t.length>2){let c=t.lastIndexOf("/");if(c!==t.length-1){c===-1?(t="",i=0):(t=t.slice(0,c),i=t.length-1-t.lastIndexOf("/")),s=a,n=0;continue}}else if(t.length===2||t.length===1){t="",i=0,s=a,n=0;continue}}e&&(t.length>0?t+="/..":t="..",i=2)}else t.length>0?t+=`/${r.slice(s+1,a)}`:t=r.slice(s+1,a),i=a-s-1;s=a,n=0}else o===46&&n!==-1?++n:n=-1}return t}var Hi,lf=p(()=>{Ce();Hi={toPosix(r){return xP(r,"\\","/")},isUrl(r){return/^https?:/.test(this.toPosix(r))},isDataUrl(r){return/^data:([a-z]+\/[a-z0-9-+.]+(;[a-z0-9-.!#$%*+.{}|~`]+=[a-z0-9-.!#$%*+.{}()_|~`]+)*)?(;base64)?,([a-z0-9!$&',()*+;=\-._~:@\/?%\s<>]*?)$/i.test(r)},isBlobUrl(r){return r.startsWith("blob:")},hasProtocol(r){return/^[^/:]+:/.test(this.toPosix(r))},getProtocol(r){Ut(r),r=this.toPosix(r);let e=/^file:\/\/\//.exec(r);if(e)return e[0];let t=/^[^/:]+:\/{0,2}/.exec(r);return t?t[0]:""},toAbsolute(r,e,t){if(Ut(r),this.isDataUrl(r)||this.isBlobUrl(r))return r;let i=yo(this.toPosix(e??W.get().getBaseUrl())),s=yo(this.toPosix(t??this.rootname(i)));return r=this.toPosix(r),r.startsWith("/")?Hi.join(s,r.slice(1)):this.isAbsolute(r)?r:this.join(i,r)},normalize(r){if(Ut(r),r.length===0)return".";if(this.isDataUrl(r)||this.isBlobUrl(r))return r;r=this.toPosix(r);let e="",t=r.startsWith("/");this.hasProtocol(r)&&(e=this.rootname(r),r=r.slice(e.length));let i=r.endsWith("/");return r=_P(r,!1),r.length>0&&i&&(r+="/"),t?`/${r}`:e+r},isAbsolute(r){return Ut(r),r=this.toPosix(r),this.hasProtocol(r)?!0:r.startsWith("/")},join(...r){if(r.length===0)return".";let e;for(let t=0;t<r.length;++t){let i=r[t];if(Ut(i),i.length>0)if(e===void 0)e=i;else{let s=r[t-1]??"";this.joinExtensions.includes(this.extname(s).toLowerCase())?e+=`/../${i}`:e+=`/${i}`}}return e===void 0?".":this.normalize(e)},dirname(r){if(Ut(r),r.length===0)return".";r=this.toPosix(r);let e=r.charCodeAt(0),t=e===47,i=-1,s=!0,n=this.getProtocol(r),o=r;r=r.slice(n.length);for(let a=r.length-1;a>=1;--a)if(e=r.charCodeAt(a),e===47){if(!s){i=a;break}}else s=!1;return i===-1?t?"/":this.isUrl(o)?n+r:n:t&&i===1?"//":n+r.slice(0,i)},rootname(r){Ut(r),r=this.toPosix(r);let e="";if(r.startsWith("/")?e="/":e=this.getProtocol(r),this.isUrl(r)){let t=r.indexOf("/",e.length);t!==-1?e=r.slice(0,t):e=r,e.endsWith("/")||(e+="/")}return e},basename(r,e){Ut(r),e&&Ut(e),r=yo(this.toPosix(r));let t=0,i=-1,s=!0,n;if(e!==void 0&&e.length>0&&e.length<=r.length){if(e.length===r.length&&e===r)return"";let o=e.length-1,a=-1;for(n=r.length-1;n>=0;--n){let c=r.charCodeAt(n);if(c===47){if(!s){t=n+1;break}}else a===-1&&(s=!1,a=n+1),o>=0&&(c===e.charCodeAt(o)?--o===-1&&(i=n):(o=-1,i=a))}return t===i?i=a:i===-1&&(i=r.length),r.slice(t,i)}for(n=r.length-1;n>=0;--n)if(r.charCodeAt(n)===47){if(!s){t=n+1;break}}else i===-1&&(s=!1,i=n+1);return i===-1?"":r.slice(t,i)},extname(r){Ut(r),r=yo(this.toPosix(r));let e=-1,t=0,i=-1,s=!0,n=0;for(let o=r.length-1;o>=0;--o){let a=r.charCodeAt(o);if(a===47){if(!s){t=o+1;break}continue}i===-1&&(s=!1,i=o+1),a===46?e===-1?e=o:n!==1&&(n=1):e!==-1&&(n=-1)}return e===-1||i===-1||n===0||n===1&&e===i-1&&e===t+1?"":r.slice(e,i)},parse(r){Ut(r);let e={root:"",dir:"",base:"",ext:"",name:""};if(r.length===0)return e;r=yo(this.toPosix(r));let t=r.charCodeAt(0),i=this.isAbsolute(r),s,n="";e.root=this.rootname(r),i||this.hasProtocol(r)?s=1:s=0;let o=-1,a=0,c=-1,u=!0,l=r.length-1,h=0;for(;l>=s;--l){if(t=r.charCodeAt(l),t===47){if(!u){a=l+1;break}continue}c===-1&&(u=!1,c=l+1),t===46?o===-1?o=l:h!==1&&(h=1):o!==-1&&(h=-1)}return o===-1||c===-1||h===0||h===1&&o===c-1&&o===a+1?c!==-1&&(a===0&&i?e.base=e.name=r.slice(1,c):e.base=e.name=r.slice(a,c)):(a===0&&i?(e.name=r.slice(1,o),e.base=r.slice(1,c)):(e.name=r.slice(a,o),e.base=r.slice(a,c)),e.ext=r.slice(o,c)),e.dir=this.dirname(r),n&&(e.dir=n+e.dir),e},sep:"/",delimiter:":",joinExtensions:[".html"]}});var jr,hf=p(()=>{"use strict";jr=(r,e,t=!1)=>(Array.isArray(r)||(r=[r]),e?r.map(i=>typeof i=="string"||t?e(i):i):r)});function ob(r,e,t,i,s){let n=e[t];for(let o=0;o<n.length;o++){let a=n[o];t<e.length-1?ob(r.replace(i[t],a),e,t+1,i,s):s.push(r.replace(i[t],a))}}function ab(r){let e=/\{(.*?)\}/g,t=r.match(e),i=[];if(t){let s=[];t.forEach(n=>{let o=n.substring(1,n.length-1).split(",");s.push(o)}),ob(r,s,0,t,i)}else i.push(r);return i}var cb=p(()=>{"use strict"});var df,ub=p(()=>{"use strict";df=r=>!Array.isArray(r)});function bP(r){return r.split(".").pop().split("?").shift().split("#").shift()}var To,lb=p(()=>{pe();lf();hf();cb();ub();To=class{constructor(){this._defaultBundleIdentifierOptions={connector:"-",createBundleAssetId:(e,t)=>`${e}${this._bundleIdConnector}${t}`,extractAssetIdFromBundle:(e,t)=>t.replace(`${e}${this._bundleIdConnector}`,"")},this._bundleIdConnector=this._defaultBundleIdentifierOptions.connector,this._createBundleAssetId=this._defaultBundleIdentifierOptions.createBundleAssetId,this._extractAssetIdFromBundle=this._defaultBundleIdentifierOptions.extractAssetIdFromBundle,this._assetMap={},this._preferredOrder=[],this._parsers=[],this._resolverHash={},this._bundles={}}setBundleIdentifier(e){if(this._bundleIdConnector=e.connector??this._bundleIdConnector,this._createBundleAssetId=e.createBundleAssetId??this._createBundleAssetId,this._extractAssetIdFromBundle=e.extractAssetIdFromBundle??this._extractAssetIdFromBundle,this._extractAssetIdFromBundle("foo",this._createBundleAssetId("foo","bar"))!=="bar")throw new Error("[Resolver] GenerateBundleAssetId are not working correctly")}prefer(...e){e.forEach(t=>{this._preferredOrder.push(t),t.priority||(t.priority=Object.keys(t.params))}),this._resolverHash={}}set basePath(e){this._basePath=e}get basePath(){return this._basePath}set rootPath(e){this._rootPath=e}get rootPath(){return this._rootPath}get parsers(){return this._parsers}reset(){this.setBundleIdentifier(this._defaultBundleIdentifierOptions),this._assetMap={},this._preferredOrder=[],this._resolverHash={},this._rootPath=null,this._basePath=null,this._manifest=null,this._bundles={},this._defaultSearchParams=null}setDefaultSearchParams(e){if(typeof e=="string")this._defaultSearchParams=e;else{let t=e;this._defaultSearchParams=Object.keys(t).map(i=>`${encodeURIComponent(i)}=${encodeURIComponent(t[i])}`).join("&")}}getAlias(e){let{alias:t,src:i}=e;return jr(t||i,n=>typeof n=="string"?n:Array.isArray(n)?n.map(o=>o?.src??o):n?.src?n.src:n,!0)}addManifest(e){this._manifest&&N("[Resolver] Manifest already exists, this will be overwritten"),this._manifest=e,e.bundles.forEach(t=>{this.addBundle(t.name,t.assets)})}addBundle(e,t){let i=[],s=t;Array.isArray(t)||(s=Object.entries(t).map(([n,o])=>typeof o=="string"||Array.isArray(o)?{alias:n,src:o}:{alias:n,...o})),s.forEach(n=>{let o=n.src,a=n.alias,c;if(typeof a=="string"){let u=this._createBundleAssetId(e,a);i.push(u),c=[a,u]}else{let u=a.map(l=>this._createBundleAssetId(e,l));i.push(...u),c=[...a,...u]}this.add({...n,alias:c,src:o})}),this._bundles[e]=i}add(e){let t=[];Array.isArray(e)?t.push(...e):t.push(e);let i;i=n=>{this.hasKey(n)&&N(`[Resolver] already has key: ${n} overwriting`)},jr(t).forEach(n=>{let{src:o}=n,{data:a,format:c,loadParser:u}=n,l=jr(o).map(d=>typeof d=="string"?ab(d):Array.isArray(d)?d:[d]),h=this.getAlias(n);Array.isArray(h)?h.forEach(i):i(h);let f=[];l.forEach(d=>{d.forEach(m=>{let x={};if(typeof m!="object"){x.src=m;for(let g=0;g<this._parsers.length;g++){let _=this._parsers[g];if(_.test(m)){x=_.parse(m);break}}}else a=m.data??a,c=m.format??c,u=m.loadParser??u,x={...x,...m};if(!h)throw new Error(`[Resolver] alias is undefined for this asset: ${x.src}`);x=this._buildResolvedAsset(x,{aliases:h,data:a,format:c,loadParser:u}),f.push(x)})}),h.forEach(d=>{this._assetMap[d]=f})})}resolveBundle(e){let t=df(e);e=jr(e);let i={};return e.forEach(s=>{let n=this._bundles[s];if(n){let o=this.resolve(n),a={};for(let c in o){let u=o[c];a[this._extractAssetIdFromBundle(s,c)]=u}i[s]=a}}),t?i[e[0]]:i}resolveUrl(e){let t=this.resolve(e);if(typeof e!="string"){let i={};for(let s in t)i[s]=t[s].src;return i}return t.src}resolve(e){let t=df(e);e=jr(e);let i={};return e.forEach(s=>{if(!this._resolverHash[s])if(this._assetMap[s]){let n=this._assetMap[s],o=this._getPreferredOrder(n);o?.priority.forEach(a=>{o.params[a].forEach(c=>{let u=n.filter(l=>l[a]?l[a]===c:!1);u.length&&(n=u)})}),this._resolverHash[s]=n[0]}else this._resolverHash[s]=this._buildResolvedAsset({alias:[s],src:s},{});i[s]=this._resolverHash[s]}),t?i[e[0]]:i}hasKey(e){return!!this._assetMap[e]}hasBundle(e){return!!this._bundles[e]}_getPreferredOrder(e){for(let t=0;t<e.length;t++){let i=e[t],s=this._preferredOrder.find(n=>n.params.format.includes(i.format));if(s)return s}return this._preferredOrder[0]}_appendDefaultSearchParams(e){if(!this._defaultSearchParams)return e;let t=/\?/.test(e)?"&":"?";return`${e}${t}${this._defaultSearchParams}`}_buildResolvedAsset(e,t){let{aliases:i,data:s,loadParser:n,format:o}=t;return(this._basePath||this._rootPath)&&(e.src=Hi.toAbsolute(e.src,this._basePath,this._rootPath)),e.alias=i??e.alias??[e.src],e.src=this._appendDefaultSearchParams(e.src),e.data={...s||{},...e.data},e.loadParser=n??e.loadParser,e.format=o??e.format??bP(e.src),e}};To.RETINA_PREFIX=/@([0-9\.]+)x/});var ff,hb=p(()=>{"use strict";ff=(r,e)=>{let t=e.split("?")[1];return t&&(r+=`?${t}`),r}});var db,mf,fb=p(()=>{Ge();tt();le();db=class wo{constructor(e,t){this.linkedSheets=[];let i=e;e?.source instanceof se&&(i={texture:e,data:t});let{texture:s,data:n,cachePrefix:o=""}=i;this.cachePrefix=o,this._texture=s instanceof M?s:null,this.textureSource=s.source,this.textures={},this.animations={},this.data=n;let a=parseFloat(n.meta.scale);a?(this.resolution=a,s.source.resolution=this.resolution):this.resolution=s.source._resolution,this._frames=this.data.frames,this._frameKeys=Object.keys(this._frames),this._batchIndex=0,this._callback=null}parse(){return new Promise(e=>{this._callback=e,this._batchIndex=0,this._frameKeys.length<=wo.BATCH_SIZE?(this._processFrames(0),this._processAnimations(),this._parseComplete()):this._nextBatch()})}_processFrames(e){let t=e,i=wo.BATCH_SIZE;for(;t-e<i&&t<this._frameKeys.length;){let s=this._frameKeys[t],n=this._frames[s],o=n.frame;if(o){let a=null,c=null,u=n.trimmed!==!1&&n.sourceSize?n.sourceSize:n.frame,l=new Y(0,0,Math.floor(u.w)/this.resolution,Math.floor(u.h)/this.resolution);n.rotated?a=new Y(Math.floor(o.x)/this.resolution,Math.floor(o.y)/this.resolution,Math.floor(o.h)/this.resolution,Math.floor(o.w)/this.resolution):a=new Y(Math.floor(o.x)/this.resolution,Math.floor(o.y)/this.resolution,Math.floor(o.w)/this.resolution,Math.floor(o.h)/this.resolution),n.trimmed!==!1&&n.spriteSourceSize&&(c=new Y(Math.floor(n.spriteSourceSize.x)/this.resolution,Math.floor(n.spriteSourceSize.y)/this.resolution,Math.floor(o.w)/this.resolution,Math.floor(o.h)/this.resolution)),this.textures[s]=new M({source:this.textureSource,frame:a,orig:l,trim:c,rotate:n.rotated?2:0,defaultAnchor:n.anchor,defaultBorders:n.borders,label:s.toString()})}t++}}_processAnimations(){let e=this.data.animations||{};for(let t in e){this.animations[t]=[];for(let i=0;i<e[t].length;i++){let s=e[t][i];this.animations[t].push(this.textures[s])}}}_parseComplete(){let e=this._callback;this._callback=null,this._batchIndex=0,e.call(this,this.textures)}_nextBatch(){this._processFrames(this._batchIndex*wo.BATCH_SIZE),this._batchIndex++,setTimeout(()=>{this._batchIndex*wo.BATCH_SIZE<this._frameKeys.length?this._nextBatch():(this._processAnimations(),this._parseComplete())},0)}destroy(e=!1){for(let t in this.textures)this.textures[t].destroy();this._frames=null,this._frameKeys=null,this.data=null,this.textures=null,e&&(this._texture?.destroy(),this.textureSource.destroy()),this._texture=null,this.textureSource=null,this.linkedSheets=[]}};db.BATCH_SIZE=1e3;mf=db});function mb(r,e,t){let i={};if(r.forEach(s=>{i[s]=e}),Object.keys(e.textures).forEach(s=>{i[`${e.cachePrefix}${s}`]=e.textures[s]}),!t){let s=Hi.dirname(r[0]);e.linkedSheets.forEach((n,o)=>{let a=mb([`${s}/${e.data.meta.related_multi_packs[o]}`],n,!0);Object.assign(i,a)})}return i}var yP,pb,gb=p(()=>{rb();lb();hb();B();le();lf();fb();yP=["jpg","png","jpeg","avif","webp","basis","etc2","bc7","bc6h","bc5","bc4","bc3","bc2","bc1","eac","astc"];pb={extension:b.Asset,cache:{test:r=>r instanceof mf,getCacheableAssets:(r,e)=>mb(r,e,!1)},resolver:{extension:{type:b.ResolveParser,name:"resolveSpritesheet"},test:r=>{let t=r.split("?")[0].split("."),i=t.pop(),s=t.pop();return i==="json"&&yP.includes(s)},parse:r=>{let e=r.split(".");return{resolution:parseFloat(To.RETINA_PREFIX.exec(r)?.[1]??"1"),format:e[e.length-2],src:r}}},loader:{name:"spritesheetLoader",extension:{type:b.LoadParser,priority:uf.Normal,name:"spritesheetLoader"},async testParse(r,e){return Hi.extname(e.src).toLowerCase()===".json"&&!!r.frames},async parse(r,e,t){let{texture:i,imageFilename:s,textureOptions:n,cachePrefix:o}=e?.data??{},a=Hi.dirname(e.src);a&&a.lastIndexOf("/")!==a.length-1&&(a+="/");let c;if(i instanceof M)c=i;else{let h=ff(a+(s??r.meta.image),e.src);c=(await t.load([{src:h,data:n}]))[h]}let u=new mf({texture:c.source,data:r,cachePrefix:o});await u.parse();let l=r?.meta?.related_multi_packs;if(Array.isArray(l)){let h=[];for(let d of l){if(typeof d!="string")continue;let m=a+d;e.data?.ignoreMultiPack||(m=ff(m,e.src),h.push(t.load({src:m,data:{textureOptions:n,ignoreMultiPack:!0}})))}let f=await Promise.all(h);u.linkedSheets=f,f.forEach(d=>{d.linkedSheets=[u].concat(u.linkedSheets.filter(m=>m!==d))})}return u},async unload(r,e,t){await t.unload(r.textureSource._sourceOrigin),r.destroy(!1)}}}});var Uu=p(()=>{B();gb();O.add(pb)});function Ou(r,e,t){let{width:i,height:s}=t.orig,n=t.trim;if(n){let o=n.width,a=n.height;r.minX=n.x-e._x*i,r.maxX=r.minX+o,r.minY=n.y-e._y*s,r.maxY=r.minY+a}else r.minX=-e._x*i,r.maxX=r.minX+i,r.minY=-e._y*s,r.maxY=r.minY+s}var pf=p(()=>{"use strict"});var Kt,Gu=p(()=>{xu();le();pf();ye();Fu();Kt=class r extends qr{constructor(e=M.EMPTY){e instanceof M&&(e={texture:e});let{texture:t=M.EMPTY,anchor:i,roundPixels:s,width:n,height:o,...a}=e;super({label:"Sprite",...a}),this.renderPipeId="sprite",this.batched=!0,this._visualBounds={minX:0,maxX:1,minY:0,maxY:0},this._anchor=new We({_onUpdate:()=>{this.onViewUpdate()}}),i?this.anchor=i:t.defaultAnchor&&(this.anchor=t.defaultAnchor),this.texture=t,this.allowChildren=!1,this.roundPixels=s??!1,n!==void 0&&(this.width=n),o!==void 0&&(this.height=o)}static from(e,t=!1){return e instanceof M?new r(e):new r(M.from(e,t))}set texture(e){e||(e=M.EMPTY);let t=this._texture;t!==e&&(t&&t.dynamic&&t.off("update",this.onViewUpdate,this),e.dynamic&&e.on("update",this.onViewUpdate,this),this._texture=e,this._width&&this._setWidth(this._width,this._texture.orig.width),this._height&&this._setHeight(this._height,this._texture.orig.height),this.onViewUpdate())}get texture(){return this._texture}get visualBounds(){return Ou(this._visualBounds,this._anchor,this._texture),this._visualBounds}get sourceBounds(){return z("8.6.1","Sprite.sourceBounds is deprecated, use visualBounds instead."),this.visualBounds}updateBounds(){let e=this._anchor,t=this._texture,i=this._bounds,{width:s,height:n}=t.orig;i.minX=-e._x*s,i.maxX=i.minX+s,i.minY=-e._y*n,i.maxY=i.minY+n}destroy(e=!1){if(super.destroy(e),typeof e=="boolean"?e:e?.texture){let i=typeof e=="boolean"?e:e?.textureSource;this._texture.destroy(i)}this._texture=null,this._visualBounds=null,this._bounds=null,this._anchor=null,this._gpuData=null}get anchor(){return this._anchor}set anchor(e){typeof e=="number"?this._anchor.set(e):this._anchor.copyFrom(e)}get width(){return Math.abs(this.scale.x)*this._texture.orig.width}set width(e){this._setWidth(e,this._texture.orig.width),this._width=e}get height(){return Math.abs(this.scale.y)*this._texture.orig.height}set height(e){this._setHeight(e,this._texture.orig.height),this._height=e}getSize(e){return e||(e={}),e.width=Math.abs(this.scale.x)*this._texture.orig.width,e.height=Math.abs(this.scale.y)*this._texture.orig.height,e}setSize(e,t){typeof e=="object"?(t=e.height??e.width,e=e.width):t??(t=e),e!==void 0&&this._setWidth(e,this._texture.orig.width),t!==void 0&&this._setHeight(t,this._texture.orig.height)}}});function Nu(r,e,t){let i=TP;r.measurable=!0,Es(r,t,i),e.addBoundsMask(i),r.measurable=!1}var TP,gf=p(()=>{at();uo();TP=new ae});function Lu(r,e,t){let i=xt.get();r.measurable=!0;let s=De.get().identity(),n=xb(r,t,s);As(r,i,n),r.measurable=!1,e.addBoundsMask(i),De.return(s),xt.return(i)}function xb(r,e,t){return r?(r!==e&&(xb(r.parent,e,t),r.updateLocalTransform(),t.append(r.localTransform)),t):(N("Mask bounds, renderable is not inside the root container"),t)}var xf=p(()=>{vu();Fi();pe()});var So,_b=p(()=>{B();Gu();gf();xf();So=class{constructor(e){this.priority=0,this.inverse=!1,this.pipe="alphaMask",e?.mask&&this.init(e.mask)}init(e){this.mask=e,this.renderMaskToTexture=!(e instanceof Kt),this.mask.renderable=this.renderMaskToTexture,this.mask.includeInBuild=!this.renderMaskToTexture,this.mask.measurable=!1}reset(){this.mask.measurable=!0,this.mask=null}addBounds(e,t){this.inverse||Nu(this.mask,e,t)}addLocalBounds(e,t){Lu(this.mask,e,t)}containsPoint(e,t){let i=this.mask;return t(i,e)}destroy(){this.reset()}static test(e){return e instanceof Kt}};So.extension=b.MaskEffect});var vo,bb=p(()=>{B();vo=class{constructor(e){this.priority=0,this.pipe="colorMask",e?.mask&&this.init(e.mask)}init(e){this.mask=e}destroy(){}static test(e){return typeof e=="number"}};vo.extension=b.MaskEffect});var Co,yb=p(()=>{B();jt();gf();xf();Co=class{constructor(e){this.priority=0,this.pipe="stencilMask",e?.mask&&this.init(e.mask)}init(e){this.mask=e,this.mask.includeInBuild=!1,this.mask.measurable=!1}reset(){this.mask.measurable=!0,this.mask.includeInBuild=!0,this.mask=null}addBounds(e,t){Nu(this.mask,e,t)}addLocalBounds(e,t){Lu(this.mask,e,t)}containsPoint(e,t){let i=this.mask;return t(i,e)}destroy(){this.reset()}static test(e){return e instanceof we}};Co.extension=b.MaskEffect});var je,Is=p(()=>{Ce();B();tt();je=class extends se{constructor(e){e.resource||(e.resource=W.get().createCanvas()),e.width||(e.width=e.resource.width,e.autoDensity||(e.width/=e.resolution)),e.height||(e.height=e.resource.height,e.autoDensity||(e.height/=e.resolution)),super(e),this.uploadMethodId="image",this.autoDensity=e.autoDensity,this.resizeCanvas(),this.transparent=!!e.transparent}resizeCanvas(){this.autoDensity&&"style"in this.resource&&(this.resource.style.width=`${this.width}px`,this.resource.style.height=`${this.height}px`),(this.resource.width!==this.pixelWidth||this.resource.height!==this.pixelHeight)&&(this.resource.width=this.pixelWidth,this.resource.height=this.pixelHeight)}resize(e=this.width,t=this.height,i=this._resolution){let s=super.resize(e,t,i);return s&&this.resizeCanvas(),s}static test(e){return globalThis.HTMLCanvasElement&&e instanceof HTMLCanvasElement||globalThis.OffscreenCanvas&&e instanceof OffscreenCanvas}get context2D(){return this._context2D||(this._context2D=this.resource.getContext("2d"))}};je.extension=b.TextureSource});var Qt,zu=p(()=>{B();tt();Qt=class extends se{constructor(e){super(e),this.uploadMethodId="image",this.autoGarbageCollect=!0}static test(e){return globalThis.HTMLImageElement&&e instanceof HTMLImageElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap||globalThis.VideoFrame&&e instanceof VideoFrame}};Qt.extension=b.TextureSource});async function Tb(){return _f??(_f=(async()=>{let e=document.createElement("canvas").getContext("webgl");if(!e)return"premultiply-alpha-on-upload";let t=await new Promise(o=>{let a=document.createElement("video");a.onloadeddata=()=>o(a),a.onerror=()=>o(null),a.autoplay=!1,a.crossOrigin="anonymous",a.preload="auto",a.src="data:video/webm;base64,GkXfo59ChoEBQveBAULygQRC84EIQoKEd2VibUKHgQJChYECGFOAZwEAAAAAAAHTEU2bdLpNu4tTq4QVSalmU6yBoU27i1OrhBZUrmtTrIHGTbuMU6uEElTDZ1OsggEXTbuMU6uEHFO7a1OsggG97AEAAAAAAABZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVSalmoCrXsYMPQkBNgIRMYXZmV0GETGF2ZkSJiEBEAAAAAAAAFlSua8yuAQAAAAAAAEPXgQFzxYgAAAAAAAAAAZyBACK1nIN1bmSIgQCGhVZfVlA5g4EBI+ODhAJiWgDglLCBArqBApqBAlPAgQFVsIRVuYEBElTDZ9Vzc9JjwItjxYgAAAAAAAAAAWfInEWjh0VOQ09ERVJEh49MYXZjIGxpYnZweC12cDlnyKJFo4hEVVJBVElPTkSHlDAwOjAwOjAwLjA0MDAwMDAwMAAAH0O2dcfngQCgwqGggQAAAIJJg0IAABAAFgA4JBwYSgAAICAAEb///4r+AAB1oZ2mm+6BAaWWgkmDQgAAEAAWADgkHBhKAAAgIABIQBxTu2uRu4+zgQC3iveBAfGCAXHwgQM=",a.load()});if(!t)return"premultiply-alpha-on-upload";let i=e.createTexture();e.bindTexture(e.TEXTURE_2D,i);let s=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,s),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,i,0),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),e.pixelStorei(e.UNPACK_COLORSPACE_CONVERSION_WEBGL,e.NONE),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t);let n=new Uint8Array(4);return e.readPixels(0,0,1,1,e.RGBA,e.UNSIGNED_BYTE,n),e.deleteFramebuffer(s),e.deleteTexture(i),e.getExtension("WEBGL_lose_context")?.loseContext(),n[0]<=n[3]?"premultiplied-alpha":"premultiply-alpha-on-upload"})()),_f}var _f,wb=p(()=>{"use strict"});var Vu,vb,Cb=p(()=>{B();go();wb();tt();Vu=class Sb extends se{constructor(e){super(e),this.isReady=!1,this.uploadMethodId="video",e={...Sb.defaultOptions,...e},this._autoUpdate=!0,this._isConnectedToTicker=!1,this._updateFPS=e.updateFPS||0,this._msToNextUpdate=0,this.autoPlay=e.autoPlay!==!1,this.alphaMode=e.alphaMode??"premultiply-alpha-on-upload",this._videoFrameRequestCallback=this._videoFrameRequestCallback.bind(this),this._videoFrameRequestCallbackHandle=null,this._load=null,this._resolve=null,this._reject=null,this._onCanPlay=this._onCanPlay.bind(this),this._onCanPlayThrough=this._onCanPlayThrough.bind(this),this._onError=this._onError.bind(this),this._onPlayStart=this._onPlayStart.bind(this),this._onPlayStop=this._onPlayStop.bind(this),this._onSeeked=this._onSeeked.bind(this),e.autoLoad!==!1&&this.load()}updateFrame(){if(!this.destroyed){if(this._updateFPS){let e=ct.shared.elapsedMS*this.resource.playbackRate;this._msToNextUpdate=Math.floor(this._msToNextUpdate-e)}(!this._updateFPS||this._msToNextUpdate<=0)&&(this._msToNextUpdate=this._updateFPS?Math.floor(1e3/this._updateFPS):0),this.isValid&&this.update()}}_videoFrameRequestCallback(){this.updateFrame(),this.destroyed?this._videoFrameRequestCallbackHandle=null:this._videoFrameRequestCallbackHandle=this.resource.requestVideoFrameCallback(this._videoFrameRequestCallback)}get isValid(){return!!this.resource.videoWidth&&!!this.resource.videoHeight}async load(){if(this._load)return this._load;let e=this.resource,t=this.options;return(e.readyState===e.HAVE_ENOUGH_DATA||e.readyState===e.HAVE_FUTURE_DATA)&&e.width&&e.height&&(e.complete=!0),e.addEventListener("play",this._onPlayStart),e.addEventListener("pause",this._onPlayStop),e.addEventListener("seeked",this._onSeeked),this._isSourceReady()?this._mediaReady():(t.preload||e.addEventListener("canplay",this._onCanPlay),e.addEventListener("canplaythrough",this._onCanPlayThrough),e.addEventListener("error",this._onError,!0)),this.alphaMode=await Tb(),this._load=new Promise((i,s)=>{this.isValid?i(this):(this._resolve=i,this._reject=s,t.preloadTimeoutMs!==void 0&&(this._preloadTimeout=setTimeout(()=>{this._onError(new ErrorEvent(`Preload exceeded timeout of ${t.preloadTimeoutMs}ms`))})),e.load())}),this._load}_onError(e){this.resource.removeEventListener("error",this._onError,!0),this.emit("error",e),this._reject&&(this._reject(e),this._reject=null,this._resolve=null)}_isSourcePlaying(){let e=this.resource;return!e.paused&&!e.ended}_isSourceReady(){return this.resource.readyState>2}_onPlayStart(){this.isValid||this._mediaReady(),this._configureAutoUpdate()}_onPlayStop(){this._configureAutoUpdate()}_onSeeked(){this._autoUpdate&&!this._isSourcePlaying()&&(this._msToNextUpdate=0,this.updateFrame(),this._msToNextUpdate=0)}_onCanPlay(){this.resource.removeEventListener("canplay",this._onCanPlay),this._mediaReady()}_onCanPlayThrough(){this.resource.removeEventListener("canplaythrough",this._onCanPlay),this._preloadTimeout&&(clearTimeout(this._preloadTimeout),this._preloadTimeout=void 0),this._mediaReady()}_mediaReady(){let e=this.resource;this.isValid&&(this.isReady=!0,this.resize(e.videoWidth,e.videoHeight)),this._msToNextUpdate=0,this.updateFrame(),this._msToNextUpdate=0,this._resolve&&(this._resolve(this),this._resolve=null,this._reject=null),this._isSourcePlaying()?this._onPlayStart():this.autoPlay&&this.resource.play()}destroy(){this._configureAutoUpdate();let e=this.resource;e&&(e.removeEventListener("play",this._onPlayStart),e.removeEventListener("pause",this._onPlayStop),e.removeEventListener("seeked",this._onSeeked),e.removeEventListener("canplay",this._onCanPlay),e.removeEventListener("canplaythrough",this._onCanPlayThrough),e.removeEventListener("error",this._onError,!0),e.pause(),e.src="",e.load()),super.destroy()}get autoUpdate(){return this._autoUpdate}set autoUpdate(e){e!==this._autoUpdate&&(this._autoUpdate=e,this._configureAutoUpdate())}get updateFPS(){return this._updateFPS}set updateFPS(e){e!==this._updateFPS&&(this._updateFPS=e,this._configureAutoUpdate())}_configureAutoUpdate(){this._autoUpdate&&this._isSourcePlaying()?!this._updateFPS&&this.resource.requestVideoFrameCallback?(this._isConnectedToTicker&&(ct.shared.remove(this.updateFrame,this),this._isConnectedToTicker=!1,this._msToNextUpdate=0),this._videoFrameRequestCallbackHandle===null&&(this._videoFrameRequestCallbackHandle=this.resource.requestVideoFrameCallback(this._videoFrameRequestCallback))):(this._videoFrameRequestCallbackHandle!==null&&(this.resource.cancelVideoFrameCallback(this._videoFrameRequestCallbackHandle),this._videoFrameRequestCallbackHandle=null),this._isConnectedToTicker||(ct.shared.add(this.updateFrame,this),this._isConnectedToTicker=!0,this._msToNextUpdate=0)):(this._videoFrameRequestCallbackHandle!==null&&(this.resource.cancelVideoFrameCallback(this._videoFrameRequestCallbackHandle),this._videoFrameRequestCallbackHandle=null),this._isConnectedToTicker&&(ct.shared.remove(this.updateFrame,this),this._isConnectedToTicker=!1,this._msToNextUpdate=0))}static test(e){return globalThis.HTMLVideoElement&&e instanceof HTMLVideoElement}};Vu.extension=b.TextureSource;Vu.defaultOptions={...se.defaultOptions,autoLoad:!0,autoPlay:!0,updateFPS:0,crossorigin:!0,loop:!1,muted:!0,playsinline:!0,preload:!1};Vu.MIME_TYPES={ogv:"video/ogg",mov:"video/quicktime",m4v:"video/mp4"};vb=Vu});var bf,Me,Eo=p(()=>{pe();hf();bf=class{constructor(){this._parsers=[],this._cache=new Map,this._cacheMap=new Map}reset(){this._cacheMap.clear(),this._cache.clear()}has(e){return this._cache.has(e)}get(e){let t=this._cache.get(e);return t||N(`[Assets] Asset id ${e} was not found in the Cache`),t}set(e,t){let i=jr(e),s;for(let c=0;c<this.parsers.length;c++){let u=this.parsers[c];if(u.test(t)){s=u.getCacheableAssets(i,t);break}}let n=new Map(Object.entries(s||{}));s||i.forEach(c=>{n.set(c,t)});let o=[...n.keys()],a={cacheKeys:o,keys:i};i.forEach(c=>{this._cacheMap.set(c,a)}),o.forEach(c=>{let u=s?s[c]:t;this._cache.has(c)&&this._cache.get(c)!==u&&N("[Cache] already has key:",c),this._cache.set(c,n.get(c))})}remove(e){if(!this._cacheMap.has(e)){N(`[Assets] Asset id ${e} was not found in the Cache`);return}let t=this._cacheMap.get(e);t.cacheKeys.forEach(s=>{this._cache.delete(s)}),t.keys.forEach(s=>{this._cacheMap.delete(s)})}get parsers(){return this._parsers}},Me=new bf});function Eb(r={}){let e=r&&r.resource,t=e?r.resource:r,i=e?r:{resource:r};for(let s=0;s<yf.length;s++){let n=yf[s];if(n.test(t))return new n(i)}throw new Error(`Could not find a source type for resource: ${i.resource}`)}function kb(r={},e=!1){let t=r&&r.resource,i=t?r.resource:r,s=t?r:{resource:r};if(!e&&Me.has(i))return Me.get(i);let n=new M({source:Eb(s)});return n.on("destroy",()=>{Me.has(i)&&Me.remove(i)}),e||Me.set(i,n),n}function Ab(r,e=!1){return typeof r=="string"?Me.get(r):r instanceof se?new M({source:r}):kb(r,e)}var yf,Tf=p(()=>{Eo();B();tt();le();yf=[];O.handleByList(b.TextureSource,yf);M.from=Ab;se.from=Eb});var Hu=p(()=>{B();_b();bb();yb();Hd();Is();zu();Cb();Tf();O.add(So,vo,Co,vb,Qt,je,zi)});var Ne,Xr=p(()=>{"use strict";Ne=class{constructor(e){this.resources=Object.create(null),this._dirty=!0;let t=0;for(let i in e){let s=e[i];this.setResource(s,t++)}this._updateKey()}_updateKey(){if(!this._dirty)return;this._dirty=!1;let e=[],t=0;for(let i in this.resources)e[t++]=this.resources[i]._resourceId;this._key=e.join("|")}setResource(e,t){let i=this.resources[t];e!==i&&(i&&e.off?.("change",this.onResourceChange,this),e.on?.("change",this.onResourceChange,this),this.resources[t]=e,this._dirty=!0)}getResource(e){return this.resources[e]}_touch(e){let t=this.resources;for(let i in t)t[i]._touched=e}destroy(){let e=this.resources;for(let t in e)e[t].off?.("change",this.onResourceChange,this);this.resources=null}onResourceChange(e){if(this._dirty=!0,e.destroyed){let t=this.resources;for(let i in t)t[i]===e&&(t[i]=null)}else this._updateKey()}}});function Fs(r,e,t){let i=2166136261;for(let s=0;s<e;s++)i^=r[s].uid,i=Math.imul(i,16777619),i>>>=0;return Pb[i]||wP(r,e,i,t)}function wP(r,e,t,i){let s={},n=0;for(let a=0;a<i;a++){let c=a<e?r[a]:M.EMPTY.source;s[n++]=c.source,s[n++]=c.style}let o=new Ne(s);return Pb[t]=o,o}var Pb,Wu=p(()=>{Xr();le();Pb={}});var Zt,wf=p(()=>{"use strict";Zt=class{constructor(e){typeof e=="number"?this.rawBinaryData=new ArrayBuffer(e):e instanceof Uint8Array?this.rawBinaryData=e.buffer:this.rawBinaryData=e,this.uint32View=new Uint32Array(this.rawBinaryData),this.float32View=new Float32Array(this.rawBinaryData),this.size=this.rawBinaryData.byteLength}get int8View(){return this._int8View||(this._int8View=new Int8Array(this.rawBinaryData)),this._int8View}get uint8View(){return this._uint8View||(this._uint8View=new Uint8Array(this.rawBinaryData)),this._uint8View}get int16View(){return this._int16View||(this._int16View=new Int16Array(this.rawBinaryData)),this._int16View}get int32View(){return this._int32View||(this._int32View=new Int32Array(this.rawBinaryData)),this._int32View}get float64View(){return this._float64Array||(this._float64Array=new Float64Array(this.rawBinaryData)),this._float64Array}get bigUint64View(){return this._bigUint64Array||(this._bigUint64Array=new BigUint64Array(this.rawBinaryData)),this._bigUint64Array}view(e){return this[`${e}View`]}destroy(){this.rawBinaryData=null,this._int8View=null,this._uint8View=null,this._int16View=null,this.uint16View=null,this._int32View=null,this.uint32View=null,this.float32View=null}static sizeOf(e){switch(e){case"int8":case"uint8":return 1;case"int16":case"uint16":return 2;case"int32":case"uint32":case"float32":return 4;default:throw new Error(`${e} isn't a valid view type`)}}}});function ko(r,e){let t=r.byteLength/8|0,i=new Float64Array(r,0,t);new Float64Array(e,0,t).set(i);let n=r.byteLength-t*8;if(n>0){let o=new Uint8Array(r,t*8,n);new Uint8Array(e,t*8,n).set(o)}}var Sf=p(()=>{"use strict"});var Bb,fe,Wi=p(()=>{"use strict";Bb={normal:"normal-npm",add:"add-npm",screen:"screen-npm"},fe=(r=>(r[r.DISABLED=0]="DISABLED",r[r.RENDERING_MASK_ADD=1]="RENDERING_MASK_ADD",r[r.MASK_ACTIVE=2]="MASK_ACTIVE",r[r.INVERSE_MASK_ACTIVE=3]="INVERSE_MASK_ACTIVE",r[r.RENDERING_MASK_REMOVE=4]="RENDERING_MASK_REMOVE",r[r.NONE=5]="NONE",r))(fe||{})});function vr(r,e){return e.alphaMode==="no-premultiply-alpha"&&Bb[r]||r}var Ao=p(()=>{Wi()});function qu(){return(!$u||$u?.isContextLost())&&($u=W.get().createCanvas().getContext("webgl",{})),$u}var $u,vf=p(()=>{Ce()});function vP(r){let e="";for(let t=0;t<r;++t)t>0&&(e+=`
20
- else `),t<r-1&&(e+=`if(test == ${t}.0){}`);return e}function ju(r,e){if(r===0)throw new Error("Invalid value of `0` passed to `checkMaxIfStatementsInShader`");let t=e.createShader(e.FRAGMENT_SHADER);try{for(;;){let i=SP.replace(/%forloop%/gi,vP(r));if(e.shaderSource(t,i),e.compileShader(t),!e.getShaderParameter(t,e.COMPILE_STATUS))r=r/2|0;else break}}finally{e.deleteShader(t)}return r}var SP,Cf=p(()=>{"use strict";SP=["precision mediump float;","void main(void){","float test = 0.1;","%forloop%","gl_FragColor = vec4(0.0);","}"].join(`
21
- `)});function Rb(){if(Us)return Us;let r=qu();return Us=r.getParameter(r.MAX_TEXTURE_IMAGE_UNITS),Us=ju(Us,r),r.getExtension("WEBGL_lose_context")?.loseContext(),Us}var Us,Db=p(()=>{vf();Cf();Us=null});var Xu,Mb=p(()=>{"use strict";Xu=class{constructor(){this.ids=Object.create(null),this.textures=[],this.count=0}clear(){for(let e=0;e<this.count;e++){let t=this.textures[e];this.textures[e]=null,this.ids[t.uid]=null}this.count=0}}});function Ib(){return kf>0?Ub[--kf]:new Ef}function Fb(r){Ub[kf++]=r}var Ef,Ub,kf,Po,Ob,Nb,Lb=p(()=>{Oe();wf();ye();Sf();Ao();Db();Mb();Ef=class{constructor(){this.renderPipeId="batch",this.action="startBatch",this.start=0,this.size=0,this.textures=new Xu,this.blendMode="normal",this.topology="triangle-strip",this.canBundle=!0}destroy(){this.textures=null,this.gpuBindGroup=null,this.bindGroup=null,this.batcher=null}},Ub=[],kf=0;Po=0,Ob=class Gb{constructor(e){this.uid=K("batcher"),this.dirty=!0,this.batchIndex=0,this.batches=[],this._elements=[],e={...Gb.defaultOptions,...e},e.maxTextures||(z("v8.8.0","maxTextures is a required option for Batcher now, please pass it in the options"),e.maxTextures=Rb());let{maxTextures:t,attributesInitialSize:i,indicesInitialSize:s}=e;this.attributeBuffer=new Zt(i*4),this.indexBuffer=new Uint16Array(s),this.maxTextures=t}begin(){this.elementSize=0,this.elementStart=0,this.indexSize=0,this.attributeSize=0;for(let e=0;e<this.batchIndex;e++)Fb(this.batches[e]);this.batchIndex=0,this._batchIndexStart=0,this._batchIndexSize=0,this.dirty=!0}add(e){this._elements[this.elementSize++]=e,e._indexStart=this.indexSize,e._attributeStart=this.attributeSize,e._batcher=this,this.indexSize+=e.indexSize,this.attributeSize+=e.attributeSize*this.vertexSize}checkAndUpdateTexture(e,t){let i=e._batch.textures.ids[t._source.uid];return!i&&i!==0?!1:(e._textureId=i,e.texture=t,!0)}updateElement(e){this.dirty=!0;let t=this.attributeBuffer;e.packAsQuad?this.packQuadAttributes(e,t.float32View,t.uint32View,e._attributeStart,e._textureId):this.packAttributes(e,t.float32View,t.uint32View,e._attributeStart,e._textureId)}break(e){let t=this._elements;if(!t[this.elementStart])return;let i=Ib(),s=i.textures;s.clear();let n=t[this.elementStart],o=vr(n.blendMode,n.texture._source),a=n.topology;this.attributeSize*4>this.attributeBuffer.size&&this._resizeAttributeBuffer(this.attributeSize*4),this.indexSize>this.indexBuffer.length&&this._resizeIndexBuffer(this.indexSize);let c=this.attributeBuffer.float32View,u=this.attributeBuffer.uint32View,l=this.indexBuffer,h=this._batchIndexSize,f=this._batchIndexStart,d="startBatch",m=this.maxTextures;for(let x=this.elementStart;x<this.elementSize;++x){let g=t[x];t[x]=null;let y=g.texture._source,S=vr(g.blendMode,y),T=o!==S||a!==g.topology;if(y._batchTick===Po&&!T){g._textureId=y._textureBindLocation,h+=g.indexSize,g.packAsQuad?(this.packQuadAttributes(g,c,u,g._attributeStart,g._textureId),this.packQuadIndex(l,g._indexStart,g._attributeStart/this.vertexSize)):(this.packAttributes(g,c,u,g._attributeStart,g._textureId),this.packIndex(g,l,g._indexStart,g._attributeStart/this.vertexSize)),g._batch=i;continue}y._batchTick=Po,(s.count>=m||T)&&(this._finishBatch(i,f,h-f,s,o,a,e,d),d="renderBatch",f=h,o=S,a=g.topology,i=Ib(),s=i.textures,s.clear(),++Po),g._textureId=y._textureBindLocation=s.count,s.ids[y.uid]=s.count,s.textures[s.count++]=y,g._batch=i,h+=g.indexSize,g.packAsQuad?(this.packQuadAttributes(g,c,u,g._attributeStart,g._textureId),this.packQuadIndex(l,g._indexStart,g._attributeStart/this.vertexSize)):(this.packAttributes(g,c,u,g._attributeStart,g._textureId),this.packIndex(g,l,g._indexStart,g._attributeStart/this.vertexSize))}s.count>0&&(this._finishBatch(i,f,h-f,s,o,a,e,d),f=h,++Po),this.elementStart=this.elementSize,this._batchIndexStart=f,this._batchIndexSize=h}_finishBatch(e,t,i,s,n,o,a,c){e.gpuBindGroup=null,e.bindGroup=null,e.action=c,e.batcher=this,e.textures=s,e.blendMode=n,e.topology=o,e.start=t,e.size=i,++Po,this.batches[this.batchIndex++]=e,a.add(e)}finish(e){this.break(e)}ensureAttributeBuffer(e){e*4<=this.attributeBuffer.size||this._resizeAttributeBuffer(e*4)}ensureIndexBuffer(e){e<=this.indexBuffer.length||this._resizeIndexBuffer(e)}_resizeAttributeBuffer(e){let t=Math.max(e,this.attributeBuffer.size*2),i=new Zt(t);ko(this.attributeBuffer.rawBinaryData,i.rawBinaryData),this.attributeBuffer=i}_resizeIndexBuffer(e){let t=this.indexBuffer,i=Math.max(e,t.length*1.5);i+=i%2;let s=i>65535?new Uint32Array(i):new Uint16Array(i);if(s.BYTES_PER_ELEMENT!==t.BYTES_PER_ELEMENT)for(let n=0;n<t.length;n++)s[n]=t[n];else ko(t.buffer,s.buffer);this.indexBuffer=s}packQuadIndex(e,t,i){e[t]=i+0,e[t+1]=i+1,e[t+2]=i+2,e[t+3]=i+0,e[t+4]=i+2,e[t+5]=i+3}packIndex(e,t,i,s){let n=e.indices,o=e.indexSize,a=e.indexOffset,c=e.attributeOffset;for(let u=0;u<o;u++)t[i++]=s+n[u+a]-c}destroy(){for(let e=0;e<this.batches.length;e++)Fb(this.batches[e]);this.batches=null;for(let e=0;e<this._elements.length;e++)this._elements[e]._batch=null;this._elements=null,this.indexBuffer=null,this.attributeBuffer.destroy(),this.attributeBuffer=null}};Ob.defaultOptions={maxTextures:null,attributesInitialSize:4,indicesInitialSize:6};Nb=Ob});var Q,Cr=p(()=>{"use strict";Q=(r=>(r[r.MAP_READ=1]="MAP_READ",r[r.MAP_WRITE=2]="MAP_WRITE",r[r.COPY_SRC=4]="COPY_SRC",r[r.COPY_DST=8]="COPY_DST",r[r.INDEX=16]="INDEX",r[r.VERTEX=32]="VERTEX",r[r.UNIFORM=64]="UNIFORM",r[r.STORAGE=128]="STORAGE",r[r.INDIRECT=256]="INDIRECT",r[r.QUERY_RESOLVE=512]="QUERY_RESOLVE",r[r.STATIC=1024]="STATIC",r))(Q||{})});var Ee,Yr=p(()=>{Ve();Oe();Cr();Ee=class extends oe{constructor(e){let{data:t,size:i}=e,{usage:s,label:n,shrinkToFit:o}=e;super(),this.uid=K("buffer"),this._resourceType="buffer",this._resourceId=K("resource"),this._touched=0,this._updateID=1,this._dataInt32=null,this.shrinkToFit=!0,this.destroyed=!1,t instanceof Array&&(t=new Float32Array(t)),this._data=t,i??(i=t?.byteLength);let a=!!t;this.descriptor={size:i,usage:s,mappedAtCreation:a,label:n},this.shrinkToFit=o??!0}get data(){return this._data}set data(e){this.setDataWithSize(e,e.length,!0)}get dataInt32(){return this._dataInt32||(this._dataInt32=new Int32Array(this.data.buffer)),this._dataInt32}get static(){return!!(this.descriptor.usage&Q.STATIC)}set static(e){e?this.descriptor.usage|=Q.STATIC:this.descriptor.usage&=~Q.STATIC}setDataWithSize(e,t,i){if(this._updateID++,this._updateSize=t*e.BYTES_PER_ELEMENT,this._data===e){i&&this.emit("update",this);return}let s=this._data;if(this._data=e,this._dataInt32=null,!s||s.length!==e.length){!this.shrinkToFit&&s&&e.byteLength<s.byteLength?i&&this.emit("update",this):(this.descriptor.size=e.byteLength,this._resourceId=K("resource"),this.emit("change",this));return}i&&this.emit("update",this)}update(e){this._updateSize=e??this._updateSize,this._updateID++,this.emit("update",this)}destroy(){this.destroyed=!0,this.emit("destroy",this),this.emit("change",this),this._data=null,this.descriptor=null,this.removeAllListeners()}}});function Af(r,e){if(!(r instanceof Ee)){let t=e?Q.INDEX:Q.VERTEX;r instanceof Array&&(e?(r=new Uint32Array(r),t=Q.INDEX|Q.COPY_DST):(r=new Float32Array(r),t=Q.VERTEX|Q.COPY_DST)),r=new Ee({data:r,label:e?"index-mesh-buffer":"vertex-mesh-buffer",usage:t})}return r}var zb=p(()=>{Yr();Cr()});function Vb(r,e,t){let i=r.getAttribute(e);if(!i)return t.minX=0,t.minY=0,t.maxX=0,t.maxY=0,t;let s=i.buffer.data,n=1/0,o=1/0,a=-1/0,c=-1/0,u=s.BYTES_PER_ELEMENT,l=(i.offset||0)/u,h=(i.stride||2*4)/u;for(let f=l;f<s.length;f+=h){let d=s[f],m=s[f+1];d>a&&(a=d),m>c&&(c=m),d<n&&(n=d),m<o&&(o=m)}return t.minX=n,t.minY=o,t.maxX=a,t.maxY=c,t}var Hb=p(()=>{"use strict"});function CP(r){return(r instanceof Ee||Array.isArray(r)||r.BYTES_PER_ELEMENT)&&(r={buffer:r}),r.buffer=Af(r.buffer,!1),r}var At,Os=p(()=>{Ve();at();Oe();Yr();zb();Hb();At=class extends oe{constructor(e={}){super(),this.uid=K("geometry"),this._layoutKey=0,this.instanceCount=1,this._bounds=new ae,this._boundsDirty=!0;let{attributes:t,indexBuffer:i,topology:s}=e;if(this.buffers=[],this.attributes={},t)for(let n in t)this.addAttribute(n,t[n]);this.instanceCount=e.instanceCount??1,i&&this.addIndex(i),this.topology=s||"triangle-list"}onBufferUpdate(){this._boundsDirty=!0,this.emit("update",this)}getAttribute(e){return this.attributes[e]}getIndex(){return this.indexBuffer}getBuffer(e){return this.getAttribute(e).buffer}getSize(){for(let e in this.attributes){let t=this.attributes[e];return t.buffer.data.length/(t.stride/4||t.size)}return 0}addAttribute(e,t){let i=CP(t);this.buffers.indexOf(i.buffer)===-1&&(this.buffers.push(i.buffer),i.buffer.on("update",this.onBufferUpdate,this),i.buffer.on("change",this.onBufferUpdate,this)),this.attributes[e]=i}addIndex(e){this.indexBuffer=Af(e,!0),this.buffers.push(this.indexBuffer)}get bounds(){return this._boundsDirty?(this._boundsDirty=!1,Vb(this,"aPosition",this._bounds)):this._bounds}destroy(e=!1){this.emit("destroy",this),this.removeAllListeners(),e&&this.buffers.forEach(t=>t.destroy()),this.attributes=null,this.buffers=null,this.indexBuffer=null,this._bounds=null}}});var EP,kP,Yu,Wb=p(()=>{Yr();Cr();Os();EP=new Float32Array(1),kP=new Uint32Array(1),Yu=class extends At{constructor(){let t=new Ee({data:EP,label:"attribute-batch-buffer",usage:Q.VERTEX|Q.COPY_DST,shrinkToFit:!1}),i=new Ee({data:kP,label:"index-batch-buffer",usage:Q.INDEX|Q.COPY_DST,shrinkToFit:!1}),s=6*4;super({attributes:{aPosition:{buffer:t,format:"float32x2",stride:s,offset:0},aUV:{buffer:t,format:"float32x2",stride:s,offset:2*4},aColor:{buffer:t,format:"unorm8x4",stride:s,offset:4*4},aTextureIdAndRound:{buffer:t,format:"uint16x2",stride:s,offset:5*4}},indexBuffer:i})}}});function Er(r,e){let t=$b[r];return t===void 0&&(Pf[e]===void 0&&(Pf[e]=1),$b[r]=t=Pf[e]++),t}var Pf,$b,Bo=p(()=>{"use strict";Pf=Object.create(null),$b=Object.create(null)});function qb(){if(!Ku){Ku="mediump";let r=qu();r&&r.getShaderPrecisionFormat&&(Ku=r.getShaderPrecisionFormat(r.FRAGMENT_SHADER,r.HIGH_FLOAT).precision?"highp":"mediump")}return Ku}var Ku,jb=p(()=>{vf()});function Xb(r,e,t){return e?r:t?(r=r.replace("out vec4 finalColor;",""),`
19
+ `,e.accessibleText&&(t.innerText=e.accessibleText)),t.style.width=`${jc}px`,t.style.height=`${jc}px`,t.style.backgroundColor=this.debug?"rgba(255,255,255,0.5)":"transparent",t.style.position="absolute",t.style.zIndex=d0.toString(),t.style.borderStyle="none",navigator.userAgent.toLowerCase().includes("chrome")?t.setAttribute("aria-live","off"):t.setAttribute("aria-live","polite"),navigator.userAgent.match(/rv:.*Gecko\//)?t.setAttribute("aria-relevant","additions"):t.setAttribute("aria-relevant","text"),t.addEventListener("click",this._onClick.bind(this)),t.addEventListener("focus",this._onFocus.bind(this)),t.addEventListener("focusout",this._onFocusOut.bind(this))),t.style.pointerEvents=e.accessiblePointerEvents,t.type=e.accessibleType,e.accessibleTitle&&e.accessibleTitle!==null?t.title=e.accessibleTitle:(!e.accessibleHint||e.accessibleHint===null)&&(t.title=`container ${e.tabIndex}`),e.accessibleHint&&e.accessibleHint!==null&&t.setAttribute("aria-label",e.accessibleHint),this.debug&&this._updateDebugHTML(t),e._accessibleActive=!0,e._accessibleDiv=t,t.container=e,this._children.push(e),this._div.appendChild(e._accessibleDiv),e.interactive&&(e._accessibleDiv.tabIndex=e.tabIndex)}_dispatchEvent(e,t){let{container:i}=e.target,s=this._renderer.events.rootBoundary,n=Object.assign(new zr(s),{target:i});s.rootTarget=this._renderer.lastObjectRendered,t.forEach(o=>s.dispatchEvent(n,o))}_onClick(e){this._dispatchEvent(e,["click","pointertap","tap"])}_onFocus(e){e.target.getAttribute("aria-live")||e.target.setAttribute("aria-live","assertive"),this._dispatchEvent(e,["mouseover"])}_onFocusOut(e){e.target.getAttribute("aria-live")||e.target.setAttribute("aria-live","polite"),this._dispatchEvent(e,["mouseout"])}_onKeyDown(e){e.keyCode!==Rk||!this._activateOnTab||this._activate()}_onMouseMove(e){e.movementX===0&&e.movementY===0||this._deactivate()}destroy(){this._deactivate(),this._destroyTouchHook(),this._div=null,this._pool=null,this._children=null,this._renderer=null,this._activateOnTab&&globalThis.removeEventListener("keydown",this._onKeyDown)}setAccessibilityEnabled(e){e?this._activate():this._deactivate()}};md.extension={type:[b.WebGLSystem,b.WebGPUSystem],name:"accessibility"};md.defaultOptions={enabledByDefault:!1,debug:!1,activateOnTab:!0,deactivateOnMouseMove:!0};p0=md});var x0,_0=p(()=>{"use strict";x0={accessible:!1,accessibleTitle:null,accessibleHint:null,tabIndex:0,accessibleType:"button",accessibleText:null,accessiblePointerEvents:"auto",accessibleChildren:!0,_accessibleActive:!1,_accessibleDiv:null,_renderId:-1}});var b0=p(()=>{P();Ht();g0();_0();O.add(p0);O.mixin(we,x0)});var Wn,y0=p(()=>{P();Wn=class{static init(e){Object.defineProperty(this,"resizeTo",{set(t){globalThis.removeEventListener("resize",this.queueResize),this._resizeTo=t,t&&(globalThis.addEventListener("resize",this.queueResize),this.resize())},get(){return this._resizeTo}}),this.queueResize=()=>{this._resizeTo&&(this._cancelResize(),this._resizeId=requestAnimationFrame(()=>this.resize()))},this._cancelResize=()=>{this._resizeId&&(cancelAnimationFrame(this._resizeId),this._resizeId=null)},this.resize=()=>{if(!this._resizeTo)return;this._cancelResize();let t,i;if(this._resizeTo===globalThis.window)t=globalThis.innerWidth,i=globalThis.innerHeight;else{let{clientWidth:s,clientHeight:n}=this._resizeTo;t=s,i=n}this.renderer.resize(t,i),this.render()},this._resizeId=null,this._resizeTo=null,this.resizeTo=e.resizeTo||null}static destroy(){globalThis.removeEventListener("resize",this.queueResize),this._cancelResize(),this._cancelResize=null,this.queueResize=null,this.resizeTo=null,this.resize=null}};Wn.extension=b.Application});var Vr,Xc=p(()=>{"use strict";Vr=(r=>(r[r.INTERACTION=50]="INTERACTION",r[r.HIGH=25]="HIGH",r[r.NORMAL=0]="NORMAL",r[r.LOW=-25]="LOW",r[r.UTILITY=-50]="UTILITY",r))(Vr||{})});var fs,T0=p(()=>{"use strict";fs=class{constructor(e,t=null,i=0,s=!1){this.next=null,this.previous=null,this._destroyed=!1,this._fn=e,this._context=t,this.priority=i,this._once=s}match(e,t=null){return this._fn===e&&this._context===t}emit(e){this._fn&&(this._context?this._fn.call(this._context,e):this._fn(e));let t=this.next;return this._once&&this.destroy(!0),this._destroyed&&(this.next=null),t}connect(e){this.previous=e,e.next&&(e.next.previous=this),this.next=e.next,e.next=this}destroy(e=!1){this._destroyed=!0,this._fn=null,this._context=null,this.previous&&(this.previous.next=this.next),this.next&&(this.next.previous=this.previous);let t=this.next;return this.next=e?null:t,this.previous=null,t}}});var w0,at,$n=p(()=>{Xc();T0();w0=class xt{constructor(){this.autoStart=!1,this.deltaTime=1,this.lastTime=-1,this.speed=1,this.started=!1,this._requestId=null,this._maxElapsedMS=100,this._minElapsedMS=0,this._protected=!1,this._lastFrame=-1,this._head=new fs(null,null,1/0),this.deltaMS=1/xt.targetFPMS,this.elapsedMS=1/xt.targetFPMS,this._tick=e=>{this._requestId=null,this.started&&(this.update(e),this.started&&this._requestId===null&&this._head.next&&(this._requestId=requestAnimationFrame(this._tick)))}}_requestIfNeeded(){this._requestId===null&&this._head.next&&(this.lastTime=performance.now(),this._lastFrame=this.lastTime,this._requestId=requestAnimationFrame(this._tick))}_cancelIfNeeded(){this._requestId!==null&&(cancelAnimationFrame(this._requestId),this._requestId=null)}_startIfPossible(){this.started?this._requestIfNeeded():this.autoStart&&this.start()}add(e,t,i=Vr.NORMAL){return this._addListener(new fs(e,t,i))}addOnce(e,t,i=Vr.NORMAL){return this._addListener(new fs(e,t,i,!0))}_addListener(e){let t=this._head.next,i=this._head;if(!t)e.connect(i);else{for(;t;){if(e.priority>t.priority){e.connect(i);break}i=t,t=t.next}e.previous||e.connect(i)}return this._startIfPossible(),this}remove(e,t){let i=this._head.next;for(;i;)i.match(e,t)?i=i.destroy():i=i.next;return this._head.next||this._cancelIfNeeded(),this}get count(){if(!this._head)return 0;let e=0,t=this._head;for(;t=t.next;)e++;return e}start(){this.started||(this.started=!0,this._requestIfNeeded())}stop(){this.started&&(this.started=!1,this._cancelIfNeeded())}destroy(){if(!this._protected){this.stop();let e=this._head.next;for(;e;)e=e.destroy(!0);this._head.destroy(),this._head=null}}update(e=performance.now()){let t;if(e>this.lastTime){if(t=this.elapsedMS=e-this.lastTime,t>this._maxElapsedMS&&(t=this._maxElapsedMS),t*=this.speed,this._minElapsedMS){let n=e-this._lastFrame|0;if(n<this._minElapsedMS)return;this._lastFrame=e-n%this._minElapsedMS}this.deltaMS=t,this.deltaTime=this.deltaMS*xt.targetFPMS;let i=this._head,s=i.next;for(;s;)s=s.emit(this);i.next||this._cancelIfNeeded()}else this.deltaTime=this.deltaMS=this.elapsedMS=0;this.lastTime=e}get FPS(){return 1e3/this.elapsedMS}get minFPS(){return 1e3/this._maxElapsedMS}set minFPS(e){let t=Math.min(this.maxFPS,e),i=Math.min(Math.max(0,t)/1e3,xt.targetFPMS);this._maxElapsedMS=1/i}get maxFPS(){return this._minElapsedMS?Math.round(1e3/this._minElapsedMS):0}set maxFPS(e){if(e===0)this._minElapsedMS=0;else{let t=Math.max(this.minFPS,e);this._minElapsedMS=1/(t/1e3)}}static get shared(){if(!xt._shared){let e=xt._shared=new xt;e.autoStart=!0,e._protected=!0}return xt._shared}static get system(){if(!xt._system){let e=xt._system=new xt;e.autoStart=!0,e._protected=!0}return xt._system}};w0.targetFPMS=.06;at=w0});var qn,S0=p(()=>{P();Xc();$n();qn=class{static init(e){e=Object.assign({autoStart:!0,sharedTicker:!1},e),Object.defineProperty(this,"ticker",{set(t){this._ticker&&this._ticker.remove(this.render,this),this._ticker=t,t&&t.add(this.render,this,Vr.LOW)},get(){return this._ticker}}),this.stop=()=>{this._ticker.stop()},this.start=()=>{this._ticker.start()},this._ticker=null,this.ticker=e.sharedTicker?at.shared:new at,e.autoStart&&this.start()}static destroy(){if(this._ticker){let e=this._ticker;this.ticker=null,e.destroy()}}};qn.extension=b.Application});var pd=p(()=>{P();y0();S0();O.add(Wn);O.add(qn)});function G(...r){gd!==v0&&(gd++,gd===v0?console.warn("PixiJS Warning: too many warnings, no more warnings will be reported to the console by PixiJS."):console.warn("PixiJS Warning: ",...r))}var gd,v0,ge=p(()=>{"use strict";gd=0,v0=500});var xd,Wt,_d=p(()=>{Xc();$n();xd=class{constructor(){this.interactionFrequency=10,this._deltaTime=0,this._didMove=!1,this._tickerAdded=!1,this._pauseUpdate=!0}init(e){this.removeTickerListener(),this.events=e,this.interactionFrequency=10,this._deltaTime=0,this._didMove=!1,this._tickerAdded=!1,this._pauseUpdate=!0}get pauseUpdate(){return this._pauseUpdate}set pauseUpdate(e){this._pauseUpdate=e}addTickerListener(){this._tickerAdded||!this.domElement||(at.system.add(this._tickerUpdate,this,Vr.INTERACTION),this._tickerAdded=!0)}removeTickerListener(){this._tickerAdded&&(at.system.remove(this._tickerUpdate,this),this._tickerAdded=!1)}pointerMoved(){this._didMove=!0}_update(){if(!this.domElement||this._pauseUpdate)return;if(this._didMove){this._didMove=!1;return}let e=this.events._rootPointerEvent;this.events.supportsTouchEvents&&e.pointerType==="touch"||globalThis.document.dispatchEvent(this.events.supportsPointerEvents?new PointerEvent("pointermove",{clientX:e.clientX,clientY:e.clientY,pointerType:e.pointerType,pointerId:e.pointerId}):new MouseEvent("mousemove",{clientX:e.clientX,clientY:e.clientY}))}_tickerUpdate(e){this._deltaTime+=e.deltaTime,!(this._deltaTime<this.interactionFrequency)&&(this._deltaTime=0,this._update())}},Wt=new xd});var yr,Yc=p(()=>{It();$c();yr=class extends zr{constructor(){super(...arguments),this.client=new Z,this.movement=new Z,this.offset=new Z,this.global=new Z,this.screen=new Z}get clientX(){return this.client.x}get clientY(){return this.client.y}get x(){return this.clientX}get y(){return this.clientY}get movementX(){return this.movement.x}get movementY(){return this.movement.y}get offsetX(){return this.offset.x}get offsetY(){return this.offset.y}get globalX(){return this.global.x}get globalY(){return this.global.y}get screenX(){return this.screen.x}get screenY(){return this.screen.y}getLocalPosition(e,t,i){return e.worldTransform.applyInverse(i||this.global,t)}getModifierState(e){return"getModifierState"in this.nativeEvent&&this.nativeEvent.getModifierState(e)}initMouseEvent(e,t,i,s,n,o,a,c,u,l,h,f,d,m,x){throw new Error("Method not implemented.")}}});var tt,bd=p(()=>{Yc();tt=class extends yr{constructor(){super(...arguments),this.width=0,this.height=0,this.isPrimary=!1}getCoalescedEvents(){return this.type==="pointermove"||this.type==="mousemove"||this.type==="touchmove"?[this]:[]}getPredictedEvents(){throw new Error("getPredictedEvents is not supported!")}}});var $t,yd=p(()=>{Yc();$t=class extends yr{constructor(){super(...arguments),this.DOM_DELTA_PIXEL=0,this.DOM_DELTA_LINE=1,this.DOM_DELTA_PAGE=2}};$t.DOM_DELTA_PIXEL=0;$t.DOM_DELTA_LINE=1;$t.DOM_DELTA_PAGE=2});var Ok,Gk,jn,Kc,C0=p(()=>{Ve();It();ge();_d();Yc();bd();yd();Ok=2048,Gk=new Z,jn=new Z,Kc=class{constructor(e){this.dispatch=new oe,this.moveOnAll=!1,this.enableGlobalMoveEvents=!0,this.mappingState={trackingData:{}},this.eventPool=new Map,this._allInteractiveElements=[],this._hitElements=[],this._isPointerMoveEvent=!1,this.rootTarget=e,this.hitPruneFn=this.hitPruneFn.bind(this),this.hitTestFn=this.hitTestFn.bind(this),this.mapPointerDown=this.mapPointerDown.bind(this),this.mapPointerMove=this.mapPointerMove.bind(this),this.mapPointerOut=this.mapPointerOut.bind(this),this.mapPointerOver=this.mapPointerOver.bind(this),this.mapPointerUp=this.mapPointerUp.bind(this),this.mapPointerUpOutside=this.mapPointerUpOutside.bind(this),this.mapWheel=this.mapWheel.bind(this),this.mappingTable={},this.addEventMapping("pointerdown",this.mapPointerDown),this.addEventMapping("pointermove",this.mapPointerMove),this.addEventMapping("pointerout",this.mapPointerOut),this.addEventMapping("pointerleave",this.mapPointerOut),this.addEventMapping("pointerover",this.mapPointerOver),this.addEventMapping("pointerup",this.mapPointerUp),this.addEventMapping("pointerupoutside",this.mapPointerUpOutside),this.addEventMapping("wheel",this.mapWheel)}addEventMapping(e,t){this.mappingTable[e]||(this.mappingTable[e]=[]),this.mappingTable[e].push({fn:t,priority:0}),this.mappingTable[e].sort((i,s)=>i.priority-s.priority)}dispatchEvent(e,t){e.propagationStopped=!1,e.propagationImmediatelyStopped=!1,this.propagate(e,t),this.dispatch.emit(t||e.type,e)}mapEvent(e){if(!this.rootTarget)return;let t=this.mappingTable[e.type];if(t)for(let i=0,s=t.length;i<s;i++)t[i].fn(e);else G(`[EventBoundary]: Event mapping not defined for ${e.type}`)}hitTest(e,t){Wt.pauseUpdate=!0;let s=this._isPointerMoveEvent&&this.enableGlobalMoveEvents?"hitTestMoveRecursive":"hitTestRecursive",n=this[s](this.rootTarget,this.rootTarget.eventMode,Gk.set(e,t),this.hitTestFn,this.hitPruneFn);return n&&n[0]}propagate(e,t){if(!e.target)return;let i=e.composedPath();e.eventPhase=e.CAPTURING_PHASE;for(let s=0,n=i.length-1;s<n;s++)if(e.currentTarget=i[s],this.notifyTarget(e,t),e.propagationStopped||e.propagationImmediatelyStopped)return;if(e.eventPhase=e.AT_TARGET,e.currentTarget=e.target,this.notifyTarget(e,t),!(e.propagationStopped||e.propagationImmediatelyStopped)){e.eventPhase=e.BUBBLING_PHASE;for(let s=i.length-2;s>=0;s--)if(e.currentTarget=i[s],this.notifyTarget(e,t),e.propagationStopped||e.propagationImmediatelyStopped)return}}all(e,t,i=this._allInteractiveElements){if(i.length===0)return;e.eventPhase=e.BUBBLING_PHASE;let s=Array.isArray(t)?t:[t];for(let n=i.length-1;n>=0;n--)s.forEach(o=>{e.currentTarget=i[n],this.notifyTarget(e,o)})}propagationPath(e){let t=[e];for(let i=0;i<Ok&&e!==this.rootTarget&&e.parent;i++){if(!e.parent)throw new Error("Cannot find propagation path to disconnected target");t.push(e.parent),e=e.parent}return t.reverse(),t}hitTestMoveRecursive(e,t,i,s,n,o=!1){let a=!1;if(this._interactivePrune(e))return null;if((e.eventMode==="dynamic"||t==="dynamic")&&(Wt.pauseUpdate=!1),e.interactiveChildren&&e.children){let l=e.children;for(let h=l.length-1;h>=0;h--){let f=l[h],d=this.hitTestMoveRecursive(f,this._isInteractive(t)?t:f.eventMode,i,s,n,o||n(e,i));if(d){if(d.length>0&&!d[d.length-1].parent)continue;let m=e.isInteractive();(d.length>0||m)&&(m&&this._allInteractiveElements.push(e),d.push(e)),this._hitElements.length===0&&(this._hitElements=d),a=!0}}}let c=this._isInteractive(t),u=e.isInteractive();return u&&u&&this._allInteractiveElements.push(e),o||this._hitElements.length>0?null:a?this._hitElements:c&&!n(e,i)&&s(e,i)?u?[e]:[]:null}hitTestRecursive(e,t,i,s,n){if(this._interactivePrune(e)||n(e,i))return null;if((e.eventMode==="dynamic"||t==="dynamic")&&(Wt.pauseUpdate=!1),e.interactiveChildren&&e.children){let c=e.children,u=i;for(let l=c.length-1;l>=0;l--){let h=c[l],f=this.hitTestRecursive(h,this._isInteractive(t)?t:h.eventMode,u,s,n);if(f){if(f.length>0&&!f[f.length-1].parent)continue;let d=e.isInteractive();return(f.length>0||d)&&f.push(e),f}}}let o=this._isInteractive(t),a=e.isInteractive();return o&&s(e,i)?a?[e]:[]:null}_isInteractive(e){return e==="static"||e==="dynamic"}_interactivePrune(e){return!e||!e.visible||!e.renderable||!e.measurable||e.eventMode==="none"||e.eventMode==="passive"&&!e.interactiveChildren}hitPruneFn(e,t){if(e.hitArea&&(e.worldTransform.applyInverse(t,jn),!e.hitArea.contains(jn.x,jn.y)))return!0;if(e.effects&&e.effects.length)for(let i=0;i<e.effects.length;i++){let s=e.effects[i];if(s.containsPoint&&!s.containsPoint(t,this.hitTestFn))return!0}return!1}hitTestFn(e,t){return e.hitArea?!0:e?.containsPoint?(e.worldTransform.applyInverse(t,jn),e.containsPoint(jn)):!1}notifyTarget(e,t){if(!e.currentTarget.isInteractive())return;t??(t=e.type);let i=`on${t}`;e.currentTarget[i]?.(e);let s=e.eventPhase===e.CAPTURING_PHASE||e.eventPhase===e.AT_TARGET?`${t}capture`:t;this._notifyListeners(e,s),e.eventPhase===e.AT_TARGET&&this._notifyListeners(e,t)}mapPointerDown(e){if(!(e instanceof tt)){G("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=this.createPointerEvent(e);if(this.dispatchEvent(t,"pointerdown"),t.pointerType==="touch")this.dispatchEvent(t,"touchstart");else if(t.pointerType==="mouse"||t.pointerType==="pen"){let s=t.button===2;this.dispatchEvent(t,s?"rightdown":"mousedown")}let i=this.trackingData(e.pointerId);i.pressTargetsByButton[e.button]=t.composedPath(),this.freeEvent(t)}mapPointerMove(e){if(!(e instanceof tt)){G("EventBoundary cannot map a non-pointer event as a pointer event");return}this._allInteractiveElements.length=0,this._hitElements.length=0,this._isPointerMoveEvent=!0;let t=this.createPointerEvent(e);this._isPointerMoveEvent=!1;let i=t.pointerType==="mouse"||t.pointerType==="pen",s=this.trackingData(e.pointerId),n=this.findMountedTarget(s.overTargets);if(s.overTargets?.length>0&&n!==t.target){let c=e.type==="mousemove"?"mouseout":"pointerout",u=this.createPointerEvent(e,c,n);if(this.dispatchEvent(u,"pointerout"),i&&this.dispatchEvent(u,"mouseout"),!t.composedPath().includes(n)){let l=this.createPointerEvent(e,"pointerleave",n);for(l.eventPhase=l.AT_TARGET;l.target&&!t.composedPath().includes(l.target);)l.currentTarget=l.target,this.notifyTarget(l),i&&this.notifyTarget(l,"mouseleave"),l.target=l.target.parent;this.freeEvent(l)}this.freeEvent(u)}if(n!==t.target){let c=e.type==="mousemove"?"mouseover":"pointerover",u=this.clonePointerEvent(t,c);this.dispatchEvent(u,"pointerover"),i&&this.dispatchEvent(u,"mouseover");let l=n?.parent;for(;l&&l!==this.rootTarget.parent&&l!==t.target;)l=l.parent;if(!l||l===this.rootTarget.parent){let f=this.clonePointerEvent(t,"pointerenter");for(f.eventPhase=f.AT_TARGET;f.target&&f.target!==n&&f.target!==this.rootTarget.parent;)f.currentTarget=f.target,this.notifyTarget(f),i&&this.notifyTarget(f,"mouseenter"),f.target=f.target.parent;this.freeEvent(f)}this.freeEvent(u)}let o=[],a=this.enableGlobalMoveEvents??!0;this.moveOnAll?o.push("pointermove"):this.dispatchEvent(t,"pointermove"),a&&o.push("globalpointermove"),t.pointerType==="touch"&&(this.moveOnAll?o.splice(1,0,"touchmove"):this.dispatchEvent(t,"touchmove"),a&&o.push("globaltouchmove")),i&&(this.moveOnAll?o.splice(1,0,"mousemove"):this.dispatchEvent(t,"mousemove"),a&&o.push("globalmousemove"),this.cursor=t.target?.cursor),o.length>0&&this.all(t,o),this._allInteractiveElements.length=0,this._hitElements.length=0,s.overTargets=t.composedPath(),this.freeEvent(t)}mapPointerOver(e){if(!(e instanceof tt)){G("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=this.trackingData(e.pointerId),i=this.createPointerEvent(e),s=i.pointerType==="mouse"||i.pointerType==="pen";this.dispatchEvent(i,"pointerover"),s&&this.dispatchEvent(i,"mouseover"),i.pointerType==="mouse"&&(this.cursor=i.target?.cursor);let n=this.clonePointerEvent(i,"pointerenter");for(n.eventPhase=n.AT_TARGET;n.target&&n.target!==this.rootTarget.parent;)n.currentTarget=n.target,this.notifyTarget(n),s&&this.notifyTarget(n,"mouseenter"),n.target=n.target.parent;t.overTargets=i.composedPath(),this.freeEvent(i),this.freeEvent(n)}mapPointerOut(e){if(!(e instanceof tt)){G("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=this.trackingData(e.pointerId);if(t.overTargets){let i=e.pointerType==="mouse"||e.pointerType==="pen",s=this.findMountedTarget(t.overTargets),n=this.createPointerEvent(e,"pointerout",s);this.dispatchEvent(n),i&&this.dispatchEvent(n,"mouseout");let o=this.createPointerEvent(e,"pointerleave",s);for(o.eventPhase=o.AT_TARGET;o.target&&o.target!==this.rootTarget.parent;)o.currentTarget=o.target,this.notifyTarget(o),i&&this.notifyTarget(o,"mouseleave"),o.target=o.target.parent;t.overTargets=null,this.freeEvent(n),this.freeEvent(o)}this.cursor=null}mapPointerUp(e){if(!(e instanceof tt)){G("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=performance.now(),i=this.createPointerEvent(e);if(this.dispatchEvent(i,"pointerup"),i.pointerType==="touch")this.dispatchEvent(i,"touchend");else if(i.pointerType==="mouse"||i.pointerType==="pen"){let a=i.button===2;this.dispatchEvent(i,a?"rightup":"mouseup")}let s=this.trackingData(e.pointerId),n=this.findMountedTarget(s.pressTargetsByButton[e.button]),o=n;if(n&&!i.composedPath().includes(n)){let a=n;for(;a&&!i.composedPath().includes(a);){if(i.currentTarget=a,this.notifyTarget(i,"pointerupoutside"),i.pointerType==="touch")this.notifyTarget(i,"touchendoutside");else if(i.pointerType==="mouse"||i.pointerType==="pen"){let c=i.button===2;this.notifyTarget(i,c?"rightupoutside":"mouseupoutside")}a=a.parent}delete s.pressTargetsByButton[e.button],o=a}if(o){let a=this.clonePointerEvent(i,"click");a.target=o,a.path=null,s.clicksByButton[e.button]||(s.clicksByButton[e.button]={clickCount:0,target:a.target,timeStamp:t});let c=s.clicksByButton[e.button];if(c.target===a.target&&t-c.timeStamp<200?++c.clickCount:c.clickCount=1,c.target=a.target,c.timeStamp=t,a.detail=c.clickCount,a.pointerType==="mouse"){let u=a.button===2;this.dispatchEvent(a,u?"rightclick":"click")}else a.pointerType==="touch"&&this.dispatchEvent(a,"tap");this.dispatchEvent(a,"pointertap"),this.freeEvent(a)}this.freeEvent(i)}mapPointerUpOutside(e){if(!(e instanceof tt)){G("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=this.trackingData(e.pointerId),i=this.findMountedTarget(t.pressTargetsByButton[e.button]),s=this.createPointerEvent(e);if(i){let n=i;for(;n;)s.currentTarget=n,this.notifyTarget(s,"pointerupoutside"),s.pointerType==="touch"?this.notifyTarget(s,"touchendoutside"):(s.pointerType==="mouse"||s.pointerType==="pen")&&this.notifyTarget(s,s.button===2?"rightupoutside":"mouseupoutside"),n=n.parent;delete t.pressTargetsByButton[e.button]}this.freeEvent(s)}mapWheel(e){if(!(e instanceof $t)){G("EventBoundary cannot map a non-wheel event as a wheel event");return}let t=this.createWheelEvent(e);this.dispatchEvent(t),this.freeEvent(t)}findMountedTarget(e){if(!e)return null;let t=e[0];for(let i=1;i<e.length&&e[i].parent===t;i++)t=e[i];return t}createPointerEvent(e,t,i){let s=this.allocateEvent(tt);return this.copyPointerData(e,s),this.copyMouseData(e,s),this.copyData(e,s),s.nativeEvent=e.nativeEvent,s.originalEvent=e,s.target=i??this.hitTest(s.global.x,s.global.y)??this._hitElements[0],typeof t=="string"&&(s.type=t),s}createWheelEvent(e){let t=this.allocateEvent($t);return this.copyWheelData(e,t),this.copyMouseData(e,t),this.copyData(e,t),t.nativeEvent=e.nativeEvent,t.originalEvent=e,t.target=this.hitTest(t.global.x,t.global.y),t}clonePointerEvent(e,t){let i=this.allocateEvent(tt);return i.nativeEvent=e.nativeEvent,i.originalEvent=e.originalEvent,this.copyPointerData(e,i),this.copyMouseData(e,i),this.copyData(e,i),i.target=e.target,i.path=e.composedPath().slice(),i.type=t??i.type,i}copyWheelData(e,t){t.deltaMode=e.deltaMode,t.deltaX=e.deltaX,t.deltaY=e.deltaY,t.deltaZ=e.deltaZ}copyPointerData(e,t){e instanceof tt&&t instanceof tt&&(t.pointerId=e.pointerId,t.width=e.width,t.height=e.height,t.isPrimary=e.isPrimary,t.pointerType=e.pointerType,t.pressure=e.pressure,t.tangentialPressure=e.tangentialPressure,t.tiltX=e.tiltX,t.tiltY=e.tiltY,t.twist=e.twist)}copyMouseData(e,t){e instanceof yr&&t instanceof yr&&(t.altKey=e.altKey,t.button=e.button,t.buttons=e.buttons,t.client.copyFrom(e.client),t.ctrlKey=e.ctrlKey,t.metaKey=e.metaKey,t.movement.copyFrom(e.movement),t.screen.copyFrom(e.screen),t.shiftKey=e.shiftKey,t.global.copyFrom(e.global))}copyData(e,t){t.isTrusted=e.isTrusted,t.srcElement=e.srcElement,t.timeStamp=performance.now(),t.type=e.type,t.detail=e.detail,t.view=e.view,t.which=e.which,t.layer.copyFrom(e.layer),t.page.copyFrom(e.page)}trackingData(e){return this.mappingState.trackingData[e]||(this.mappingState.trackingData[e]={pressTargetsByButton:{},clicksByButton:{},overTarget:null}),this.mappingState.trackingData[e]}allocateEvent(e){this.eventPool.has(e)||this.eventPool.set(e,[]);let t=this.eventPool.get(e).pop()||new e(this);return t.eventPhase=t.NONE,t.currentTarget=null,t.defaultPrevented=!1,t.path=null,t.target=null,t}freeEvent(e){if(e.manager!==this)throw new Error("It is illegal to free an event not managed by this EventBoundary!");let t=e.constructor;this.eventPool.has(t)||this.eventPool.set(t,[]),this.eventPool.get(t).push(e)}_notifyListeners(e,t){let i=e.currentTarget._events[t];if(i)if("fn"in i)i.once&&e.currentTarget.removeListener(t,i.fn,void 0,!0),i.fn.call(i.context,e);else for(let s=0,n=i.length;s<n&&!e.propagationImmediatelyStopped;s++)i[s].once&&e.currentTarget.removeListener(t,i[s].fn,void 0,!0),i[s].fn.call(i[s].context,e)}}});var Nk,Lk,wd,Qc,Sd=p(()=>{P();C0();_d();bd();yd();Nk=1,Lk={touchstart:"pointerdown",touchend:"pointerup",touchendoutside:"pointerupoutside",touchmove:"pointermove",touchcancel:"pointercancel"},wd=class Td{constructor(e){this.supportsTouchEvents="ontouchstart"in globalThis,this.supportsPointerEvents=!!globalThis.PointerEvent,this.domElement=null,this.resolution=1,this.renderer=e,this.rootBoundary=new Kc(null),Wt.init(this),this.autoPreventDefault=!0,this._eventsAdded=!1,this._rootPointerEvent=new tt(null),this._rootWheelEvent=new $t(null),this.cursorStyles={default:"inherit",pointer:"pointer"},this.features=new Proxy({...Td.defaultEventFeatures},{set:(t,i,s)=>(i==="globalMove"&&(this.rootBoundary.enableGlobalMoveEvents=s),t[i]=s,!0)}),this._onPointerDown=this._onPointerDown.bind(this),this._onPointerMove=this._onPointerMove.bind(this),this._onPointerUp=this._onPointerUp.bind(this),this._onPointerOverOut=this._onPointerOverOut.bind(this),this.onWheel=this.onWheel.bind(this)}static get defaultEventMode(){return this._defaultEventMode}init(e){let{canvas:t,resolution:i}=this.renderer;this.setTargetElement(t),this.resolution=i,Td._defaultEventMode=e.eventMode??"passive",Object.assign(this.features,e.eventFeatures??{}),this.rootBoundary.enableGlobalMoveEvents=this.features.globalMove}resolutionChange(e){this.resolution=e}destroy(){this.setTargetElement(null),this.renderer=null,this._currentCursor=null}setCursor(e){e||(e="default");let t=!0;if(globalThis.OffscreenCanvas&&this.domElement instanceof OffscreenCanvas&&(t=!1),this._currentCursor===e)return;this._currentCursor=e;let i=this.cursorStyles[e];if(i)switch(typeof i){case"string":t&&(this.domElement.style.cursor=i);break;case"function":i(e);break;case"object":t&&Object.assign(this.domElement.style,i);break}else t&&typeof e=="string"&&!Object.prototype.hasOwnProperty.call(this.cursorStyles,e)&&(this.domElement.style.cursor=e)}get pointer(){return this._rootPointerEvent}_onPointerDown(e){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;let t=this._normalizeToPointerData(e);this.autoPreventDefault&&t[0].isNormalized&&(e.cancelable||!("cancelable"in e))&&e.preventDefault();for(let i=0,s=t.length;i<s;i++){let n=t[i],o=this._bootstrapEvent(this._rootPointerEvent,n);this.rootBoundary.mapEvent(o)}this.setCursor(this.rootBoundary.cursor)}_onPointerMove(e){if(!this.features.move)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered,Wt.pointerMoved();let t=this._normalizeToPointerData(e);for(let i=0,s=t.length;i<s;i++){let n=this._bootstrapEvent(this._rootPointerEvent,t[i]);this.rootBoundary.mapEvent(n)}this.setCursor(this.rootBoundary.cursor)}_onPointerUp(e){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;let t=e.target;e.composedPath&&e.composedPath().length>0&&(t=e.composedPath()[0]);let i=t!==this.domElement?"outside":"",s=this._normalizeToPointerData(e);for(let n=0,o=s.length;n<o;n++){let a=this._bootstrapEvent(this._rootPointerEvent,s[n]);a.type+=i,this.rootBoundary.mapEvent(a)}this.setCursor(this.rootBoundary.cursor)}_onPointerOverOut(e){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;let t=this._normalizeToPointerData(e);for(let i=0,s=t.length;i<s;i++){let n=this._bootstrapEvent(this._rootPointerEvent,t[i]);this.rootBoundary.mapEvent(n)}this.setCursor(this.rootBoundary.cursor)}onWheel(e){if(!this.features.wheel)return;let t=this.normalizeWheelEvent(e);this.rootBoundary.rootTarget=this.renderer.lastObjectRendered,this.rootBoundary.mapEvent(t)}setTargetElement(e){this._removeEvents(),this.domElement=e,Wt.domElement=e,this._addEvents()}_addEvents(){if(this._eventsAdded||!this.domElement)return;Wt.addTickerListener();let e=this.domElement.style;e&&(globalThis.navigator.msPointerEnabled?(e.msContentZooming="none",e.msTouchAction="none"):this.supportsPointerEvents&&(e.touchAction="none")),this.supportsPointerEvents?(globalThis.document.addEventListener("pointermove",this._onPointerMove,!0),this.domElement.addEventListener("pointerdown",this._onPointerDown,!0),this.domElement.addEventListener("pointerleave",this._onPointerOverOut,!0),this.domElement.addEventListener("pointerover",this._onPointerOverOut,!0),globalThis.addEventListener("pointerup",this._onPointerUp,!0)):(globalThis.document.addEventListener("mousemove",this._onPointerMove,!0),this.domElement.addEventListener("mousedown",this._onPointerDown,!0),this.domElement.addEventListener("mouseout",this._onPointerOverOut,!0),this.domElement.addEventListener("mouseover",this._onPointerOverOut,!0),globalThis.addEventListener("mouseup",this._onPointerUp,!0),this.supportsTouchEvents&&(this.domElement.addEventListener("touchstart",this._onPointerDown,!0),this.domElement.addEventListener("touchend",this._onPointerUp,!0),this.domElement.addEventListener("touchmove",this._onPointerMove,!0))),this.domElement.addEventListener("wheel",this.onWheel,{passive:!0,capture:!0}),this._eventsAdded=!0}_removeEvents(){if(!this._eventsAdded||!this.domElement)return;Wt.removeTickerListener();let e=this.domElement.style;e&&(globalThis.navigator.msPointerEnabled?(e.msContentZooming="",e.msTouchAction=""):this.supportsPointerEvents&&(e.touchAction="")),this.supportsPointerEvents?(globalThis.document.removeEventListener("pointermove",this._onPointerMove,!0),this.domElement.removeEventListener("pointerdown",this._onPointerDown,!0),this.domElement.removeEventListener("pointerleave",this._onPointerOverOut,!0),this.domElement.removeEventListener("pointerover",this._onPointerOverOut,!0),globalThis.removeEventListener("pointerup",this._onPointerUp,!0)):(globalThis.document.removeEventListener("mousemove",this._onPointerMove,!0),this.domElement.removeEventListener("mousedown",this._onPointerDown,!0),this.domElement.removeEventListener("mouseout",this._onPointerOverOut,!0),this.domElement.removeEventListener("mouseover",this._onPointerOverOut,!0),globalThis.removeEventListener("mouseup",this._onPointerUp,!0),this.supportsTouchEvents&&(this.domElement.removeEventListener("touchstart",this._onPointerDown,!0),this.domElement.removeEventListener("touchend",this._onPointerUp,!0),this.domElement.removeEventListener("touchmove",this._onPointerMove,!0))),this.domElement.removeEventListener("wheel",this.onWheel,!0),this.domElement=null,this._eventsAdded=!1}mapPositionToPoint(e,t,i){let s=this.domElement.isConnected?this.domElement.getBoundingClientRect():{x:0,y:0,width:this.domElement.width,height:this.domElement.height,left:0,top:0},n=1/this.resolution;e.x=(t-s.left)*(this.domElement.width/s.width)*n,e.y=(i-s.top)*(this.domElement.height/s.height)*n}_normalizeToPointerData(e){let t=[];if(this.supportsTouchEvents&&e instanceof TouchEvent)for(let i=0,s=e.changedTouches.length;i<s;i++){let n=e.changedTouches[i];typeof n.button>"u"&&(n.button=0),typeof n.buttons>"u"&&(n.buttons=1),typeof n.isPrimary>"u"&&(n.isPrimary=e.touches.length===1&&e.type==="touchstart"),typeof n.width>"u"&&(n.width=n.radiusX||1),typeof n.height>"u"&&(n.height=n.radiusY||1),typeof n.tiltX>"u"&&(n.tiltX=0),typeof n.tiltY>"u"&&(n.tiltY=0),typeof n.pointerType>"u"&&(n.pointerType="touch"),typeof n.pointerId>"u"&&(n.pointerId=n.identifier||0),typeof n.pressure>"u"&&(n.pressure=n.force||.5),typeof n.twist>"u"&&(n.twist=0),typeof n.tangentialPressure>"u"&&(n.tangentialPressure=0),typeof n.layerX>"u"&&(n.layerX=n.offsetX=n.clientX),typeof n.layerY>"u"&&(n.layerY=n.offsetY=n.clientY),n.isNormalized=!0,n.type=e.type,t.push(n)}else if(!globalThis.MouseEvent||e instanceof MouseEvent&&(!this.supportsPointerEvents||!(e instanceof globalThis.PointerEvent))){let i=e;typeof i.isPrimary>"u"&&(i.isPrimary=!0),typeof i.width>"u"&&(i.width=1),typeof i.height>"u"&&(i.height=1),typeof i.tiltX>"u"&&(i.tiltX=0),typeof i.tiltY>"u"&&(i.tiltY=0),typeof i.pointerType>"u"&&(i.pointerType="mouse"),typeof i.pointerId>"u"&&(i.pointerId=Nk),typeof i.pressure>"u"&&(i.pressure=.5),typeof i.twist>"u"&&(i.twist=0),typeof i.tangentialPressure>"u"&&(i.tangentialPressure=0),i.isNormalized=!0,t.push(i)}else t.push(e);return t}normalizeWheelEvent(e){let t=this._rootWheelEvent;return this._transferMouseData(t,e),t.deltaX=e.deltaX,t.deltaY=e.deltaY,t.deltaZ=e.deltaZ,t.deltaMode=e.deltaMode,this.mapPositionToPoint(t.screen,e.clientX,e.clientY),t.global.copyFrom(t.screen),t.offset.copyFrom(t.screen),t.nativeEvent=e,t.type=e.type,t}_bootstrapEvent(e,t){return e.originalEvent=null,e.nativeEvent=t,e.pointerId=t.pointerId,e.width=t.width,e.height=t.height,e.isPrimary=t.isPrimary,e.pointerType=t.pointerType,e.pressure=t.pressure,e.tangentialPressure=t.tangentialPressure,e.tiltX=t.tiltX,e.tiltY=t.tiltY,e.twist=t.twist,this._transferMouseData(e,t),this.mapPositionToPoint(e.screen,t.clientX,t.clientY),e.global.copyFrom(e.screen),e.offset.copyFrom(e.screen),e.isTrusted=t.isTrusted,e.type==="pointerleave"&&(e.type="pointerout"),e.type.startsWith("mouse")&&(e.type=e.type.replace("mouse","pointer")),e.type.startsWith("touch")&&(e.type=Lk[e.type]||e.type),e}_transferMouseData(e,t){e.isTrusted=t.isTrusted,e.srcElement=t.srcElement,e.timeStamp=performance.now(),e.type=t.type,e.altKey=t.altKey,e.button=t.button,e.buttons=t.buttons,e.client.x=t.clientX,e.client.y=t.clientY,e.ctrlKey=t.ctrlKey,e.metaKey=t.metaKey,e.movement.x=t.movementX,e.movement.y=t.movementY,e.page.x=t.pageX,e.page.y=t.pageY,e.relatedTarget=null,e.shiftKey=t.shiftKey}};wd.extension={name:"events",type:[b.WebGLSystem,b.CanvasSystem,b.WebGPUSystem],priority:-1};wd.defaultEventFeatures={move:!0,globalMove:!0,click:!0,wheel:!0};Qc=wd});var E0,k0=p(()=>{Sd();$c();E0={onclick:null,onmousedown:null,onmouseenter:null,onmouseleave:null,onmousemove:null,onglobalmousemove:null,onmouseout:null,onmouseover:null,onmouseup:null,onmouseupoutside:null,onpointercancel:null,onpointerdown:null,onpointerenter:null,onpointerleave:null,onpointermove:null,onglobalpointermove:null,onpointerout:null,onpointerover:null,onpointertap:null,onpointerup:null,onpointerupoutside:null,onrightclick:null,onrightdown:null,onrightup:null,onrightupoutside:null,ontap:null,ontouchcancel:null,ontouchend:null,ontouchendoutside:null,ontouchmove:null,onglobaltouchmove:null,ontouchstart:null,onwheel:null,get interactive(){return this.eventMode==="dynamic"||this.eventMode==="static"},set interactive(r){this.eventMode=r?"static":"passive"},_internalEventMode:void 0,get eventMode(){return this._internalEventMode??Qc.defaultEventMode},set eventMode(r){this._internalEventMode=r},isInteractive(){return this.eventMode==="static"||this.eventMode==="dynamic"},interactiveChildren:!0,hitArea:null,addEventListener(r,e,t){let i=typeof t=="boolean"&&t||typeof t=="object"&&t.capture,s=typeof t=="object"?t.signal:void 0,n=typeof t=="object"?t.once===!0:!1,o=typeof e=="function"?void 0:e;r=i?`${r}capture`:r;let a=typeof e=="function"?e:e.handleEvent,c=this;s&&s.addEventListener("abort",()=>{c.off(r,a,o)}),n?c.once(r,a,o):c.on(r,a,o)},removeEventListener(r,e,t){let i=typeof t=="boolean"&&t||typeof t=="object"&&t.capture,s=typeof e=="function"?void 0:e;r=i?`${r}capture`:r,e=typeof e=="function"?e:e.handleEvent,this.off(r,e,s)},dispatchEvent(r){if(!(r instanceof zr))throw new Error("Container cannot propagate events outside of the Federated Events API");return r.defaultPrevented=!1,r.path=null,r.target=this,r.manager.dispatchEvent(r),!r.defaultPrevented}}});var A0=p(()=>{P();Ht();Sd();k0();O.add(Qc);O.mixin(we,E0)});var Xn,P0=p(()=>{P();Xn=class{constructor(e){this._attachedDomElements=[],this._renderer=e,this._renderer.runners.postrender.add(this),this._domElement=document.createElement("div"),this._domElement.style.position="absolute",this._domElement.style.top="0",this._domElement.style.left="0",this._domElement.style.pointerEvents="none",this._domElement.style.zIndex="1000"}addRenderable(e,t){this._attachedDomElements.includes(e)||this._attachedDomElements.push(e)}updateRenderable(e){}validateRenderable(e){return!0}postrender(){let e=this._attachedDomElements;if(e.length===0){this._domElement.remove();return}let t=this._renderer.view.canvas;this._domElement.parentNode!==t.parentNode&&t.parentNode?.appendChild(this._domElement);let i=parseFloat(t.style.width)/t.width*this._renderer.resolution,s=parseFloat(t.style.height)/t.height*this._renderer.resolution;this._domElement.style.transform=`translate(${t.offsetLeft}px, ${t.offsetTop}px) scale(${i}, ${s})`;for(let n=0;n<e.length;n++){let o=e[n],a=o.element;if(!o.parent||o.globalDisplayStatus<7)a?.remove(),e.splice(n,1),n--;else{this._domElement.contains(a)||(a.style.position="absolute",a.style.pointerEvents="auto",this._domElement.appendChild(a));let c=o.worldTransform,u=o._anchor,l=o.width*u.x,h=o.height*u.y;a.style.transformOrigin=`${l}px ${h}px`,a.style.transform=`matrix(${c.a}, ${c.b}, ${c.c}, ${c.d}, ${c.tx-l}, ${c.ty-h})`,a.style.opacity=o.groupAlpha.toString()}}}destroy(){this._renderer.runners.postrender.remove(this);for(let e=0;e<this._attachedDomElements.length;e++)this._attachedDomElements[e].element?.remove();this._attachedDomElements.length=0,this._domElement.remove(),this._renderer=null}};Xn.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"dom"}});var Hr,Zc=p(()=>{ot();Ht();Hr=class extends we{constructor(e){super(e),this.canBundle=!0,this.allowChildren=!1,this._roundPixels=0,this._lastUsed=-1,this._gpuData=Object.create(null),this._bounds=new ae(0,1,0,0),this._boundsDirty=!0}get bounds(){return this._boundsDirty?(this.updateBounds(),this._boundsDirty=!1,this._bounds):this._bounds}get roundPixels(){return!!this._roundPixels}set roundPixels(e){this._roundPixels=e?1:0}containsPoint(e){let t=this.bounds,{x:i,y:s}=e;return i>=t.minX&&i<=t.maxX&&s>=t.minY&&s<=t.maxY}onViewUpdate(){if(this._didViewChangeTick++,this._boundsDirty=!0,this.didViewUpdate)return;this.didViewUpdate=!0;let e=this.renderGroup||this.parentRenderGroup;e&&e.onChildViewUpdate(this)}destroy(e){super.destroy(e),this._bounds=null;for(let t in this._gpuData)this._gpuData[t].destroy?.();this._gpuData=null}collectRenderablesSimple(e,t,i){let{renderPipes:s}=t;s.blendMode.setBlendMode(this,this.groupBlendMode,e),s[this.renderPipeId].addRenderable(this,e),this.didViewUpdate=!1;let o=this.children,a=o.length;for(let c=0;c<a;c++)o[c].collectRenderables(e,t,i)}}});var B0=p(()=>{P();P0();O.add(Xn)});var vd,R0=p(()=>{"use strict";vd=(r=>(r[r.Low=0]="Low",r[r.Normal=1]="Normal",r[r.High=2]="High",r))(vd||{})});var D0,M0=p(()=>{"use strict";D0={createCanvas:(r,e)=>{let t=document.createElement("canvas");return t.width=r,t.height=e,t},getCanvasRenderingContext2D:()=>CanvasRenderingContext2D,getWebGLRenderingContext:()=>WebGLRenderingContext,getNavigator:()=>navigator,getBaseUrl:()=>document.baseURI??window.location.href,getFontFaceSet:()=>document.fonts,fetch:(r,e)=>fetch(r,e),parseXML:r=>new DOMParser().parseFromString(r,"text/xml")}});var I0,W,ve=p(()=>{M0();I0=D0,W={get(){return I0},set(r){I0=r}}});function Ft(r){if(typeof r!="string")throw new TypeError(`Path must be a string. Received ${JSON.stringify(r)}`)}function Yn(r){return r.split("?")[0].split("#")[0]}function zk(r){return r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Vk(r,e,t){return r.replace(new RegExp(zk(e),"g"),t)}function Hk(r,e){let t="",i=0,s=-1,n=0,o=-1;for(let a=0;a<=r.length;++a){if(a<r.length)o=r.charCodeAt(a);else{if(o===47)break;o=47}if(o===47){if(!(s===a-1||n===1))if(s!==a-1&&n===2){if(t.length<2||i!==2||t.charCodeAt(t.length-1)!==46||t.charCodeAt(t.length-2)!==46){if(t.length>2){let c=t.lastIndexOf("/");if(c!==t.length-1){c===-1?(t="",i=0):(t=t.slice(0,c),i=t.length-1-t.lastIndexOf("/")),s=a,n=0;continue}}else if(t.length===2||t.length===1){t="",i=0,s=a,n=0;continue}}e&&(t.length>0?t+="/..":t="..",i=2)}else t.length>0?t+=`/${r.slice(s+1,a)}`:t=r.slice(s+1,a),i=a-s-1;s=a,n=0}else o===46&&n!==-1?++n:n=-1}return t}var Ei,Cd=p(()=>{ve();Ei={toPosix(r){return Vk(r,"\\","/")},isUrl(r){return/^https?:/.test(this.toPosix(r))},isDataUrl(r){return/^data:([a-z]+\/[a-z0-9-+.]+(;[a-z0-9-.!#$%*+.{}|~`]+=[a-z0-9-.!#$%*+.{}()_|~`]+)*)?(;base64)?,([a-z0-9!$&',()*+;=\-._~:@\/?%\s<>]*?)$/i.test(r)},isBlobUrl(r){return r.startsWith("blob:")},hasProtocol(r){return/^[^/:]+:/.test(this.toPosix(r))},getProtocol(r){Ft(r),r=this.toPosix(r);let e=/^file:\/\/\//.exec(r);if(e)return e[0];let t=/^[^/:]+:\/{0,2}/.exec(r);return t?t[0]:""},toAbsolute(r,e,t){if(Ft(r),this.isDataUrl(r)||this.isBlobUrl(r))return r;let i=Yn(this.toPosix(e??W.get().getBaseUrl())),s=Yn(this.toPosix(t??this.rootname(i)));return r=this.toPosix(r),r.startsWith("/")?Ei.join(s,r.slice(1)):this.isAbsolute(r)?r:this.join(i,r)},normalize(r){if(Ft(r),r.length===0)return".";if(this.isDataUrl(r)||this.isBlobUrl(r))return r;r=this.toPosix(r);let e="",t=r.startsWith("/");this.hasProtocol(r)&&(e=this.rootname(r),r=r.slice(e.length));let i=r.endsWith("/");return r=Hk(r,!1),r.length>0&&i&&(r+="/"),t?`/${r}`:e+r},isAbsolute(r){return Ft(r),r=this.toPosix(r),this.hasProtocol(r)?!0:r.startsWith("/")},join(...r){if(r.length===0)return".";let e;for(let t=0;t<r.length;++t){let i=r[t];if(Ft(i),i.length>0)if(e===void 0)e=i;else{let s=r[t-1]??"";this.joinExtensions.includes(this.extname(s).toLowerCase())?e+=`/../${i}`:e+=`/${i}`}}return e===void 0?".":this.normalize(e)},dirname(r){if(Ft(r),r.length===0)return".";r=this.toPosix(r);let e=r.charCodeAt(0),t=e===47,i=-1,s=!0,n=this.getProtocol(r),o=r;r=r.slice(n.length);for(let a=r.length-1;a>=1;--a)if(e=r.charCodeAt(a),e===47){if(!s){i=a;break}}else s=!1;return i===-1?t?"/":this.isUrl(o)?n+r:n:t&&i===1?"//":n+r.slice(0,i)},rootname(r){Ft(r),r=this.toPosix(r);let e="";if(r.startsWith("/")?e="/":e=this.getProtocol(r),this.isUrl(r)){let t=r.indexOf("/",e.length);t!==-1?e=r.slice(0,t):e=r,e.endsWith("/")||(e+="/")}return e},basename(r,e){Ft(r),e&&Ft(e),r=Yn(this.toPosix(r));let t=0,i=-1,s=!0,n;if(e!==void 0&&e.length>0&&e.length<=r.length){if(e.length===r.length&&e===r)return"";let o=e.length-1,a=-1;for(n=r.length-1;n>=0;--n){let c=r.charCodeAt(n);if(c===47){if(!s){t=n+1;break}}else a===-1&&(s=!1,a=n+1),o>=0&&(c===e.charCodeAt(o)?--o===-1&&(i=n):(o=-1,i=a))}return t===i?i=a:i===-1&&(i=r.length),r.slice(t,i)}for(n=r.length-1;n>=0;--n)if(r.charCodeAt(n)===47){if(!s){t=n+1;break}}else i===-1&&(s=!1,i=n+1);return i===-1?"":r.slice(t,i)},extname(r){Ft(r),r=Yn(this.toPosix(r));let e=-1,t=0,i=-1,s=!0,n=0;for(let o=r.length-1;o>=0;--o){let a=r.charCodeAt(o);if(a===47){if(!s){t=o+1;break}continue}i===-1&&(s=!1,i=o+1),a===46?e===-1?e=o:n!==1&&(n=1):e!==-1&&(n=-1)}return e===-1||i===-1||n===0||n===1&&e===i-1&&e===t+1?"":r.slice(e,i)},parse(r){Ft(r);let e={root:"",dir:"",base:"",ext:"",name:""};if(r.length===0)return e;r=Yn(this.toPosix(r));let t=r.charCodeAt(0),i=this.isAbsolute(r),s,n="";e.root=this.rootname(r),i||this.hasProtocol(r)?s=1:s=0;let o=-1,a=0,c=-1,u=!0,l=r.length-1,h=0;for(;l>=s;--l){if(t=r.charCodeAt(l),t===47){if(!u){a=l+1;break}continue}c===-1&&(u=!1,c=l+1),t===46?o===-1?o=l:h!==1&&(h=1):o!==-1&&(h=-1)}return o===-1||c===-1||h===0||h===1&&o===c-1&&o===a+1?c!==-1&&(a===0&&i?e.base=e.name=r.slice(1,c):e.base=e.name=r.slice(a,c)):(a===0&&i?(e.name=r.slice(1,o),e.base=r.slice(1,c)):(e.name=r.slice(a,o),e.base=r.slice(a,c)),e.ext=r.slice(o,c)),e.dir=this.dirname(r),n&&(e.dir=n+e.dir),e},sep:"/",delimiter:":",joinExtensions:[".html"]}});var Wr,Ed=p(()=>{"use strict";Wr=(r,e,t=!1)=>(Array.isArray(r)||(r=[r]),e?r.map(i=>typeof i=="string"||t?e(i):i):r)});function F0(r,e,t,i,s){let n=e[t];for(let o=0;o<n.length;o++){let a=n[o];t<e.length-1?F0(r.replace(i[t],a),e,t+1,i,s):s.push(r.replace(i[t],a))}}function U0(r){let e=/\{(.*?)\}/g,t=r.match(e),i=[];if(t){let s=[];t.forEach(n=>{let o=n.substring(1,n.length-1).split(",");s.push(o)}),F0(r,s,0,t,i)}else i.push(r);return i}var O0=p(()=>{"use strict"});var kd,G0=p(()=>{"use strict";kd=r=>!Array.isArray(r)});function Wk(r){return r.split(".").pop().split("?").shift().split("#").shift()}var Kn,N0=p(()=>{ge();Cd();Ed();O0();G0();Kn=class{constructor(){this._defaultBundleIdentifierOptions={connector:"-",createBundleAssetId:(e,t)=>`${e}${this._bundleIdConnector}${t}`,extractAssetIdFromBundle:(e,t)=>t.replace(`${e}${this._bundleIdConnector}`,"")},this._bundleIdConnector=this._defaultBundleIdentifierOptions.connector,this._createBundleAssetId=this._defaultBundleIdentifierOptions.createBundleAssetId,this._extractAssetIdFromBundle=this._defaultBundleIdentifierOptions.extractAssetIdFromBundle,this._assetMap={},this._preferredOrder=[],this._parsers=[],this._resolverHash={},this._bundles={}}setBundleIdentifier(e){if(this._bundleIdConnector=e.connector??this._bundleIdConnector,this._createBundleAssetId=e.createBundleAssetId??this._createBundleAssetId,this._extractAssetIdFromBundle=e.extractAssetIdFromBundle??this._extractAssetIdFromBundle,this._extractAssetIdFromBundle("foo",this._createBundleAssetId("foo","bar"))!=="bar")throw new Error("[Resolver] GenerateBundleAssetId are not working correctly")}prefer(...e){e.forEach(t=>{this._preferredOrder.push(t),t.priority||(t.priority=Object.keys(t.params))}),this._resolverHash={}}set basePath(e){this._basePath=e}get basePath(){return this._basePath}set rootPath(e){this._rootPath=e}get rootPath(){return this._rootPath}get parsers(){return this._parsers}reset(){this.setBundleIdentifier(this._defaultBundleIdentifierOptions),this._assetMap={},this._preferredOrder=[],this._resolverHash={},this._rootPath=null,this._basePath=null,this._manifest=null,this._bundles={},this._defaultSearchParams=null}setDefaultSearchParams(e){if(typeof e=="string")this._defaultSearchParams=e;else{let t=e;this._defaultSearchParams=Object.keys(t).map(i=>`${encodeURIComponent(i)}=${encodeURIComponent(t[i])}`).join("&")}}getAlias(e){let{alias:t,src:i}=e;return Wr(t||i,n=>typeof n=="string"?n:Array.isArray(n)?n.map(o=>o?.src??o):n?.src?n.src:n,!0)}addManifest(e){this._manifest&&G("[Resolver] Manifest already exists, this will be overwritten"),this._manifest=e,e.bundles.forEach(t=>{this.addBundle(t.name,t.assets)})}addBundle(e,t){let i=[],s=t;Array.isArray(t)||(s=Object.entries(t).map(([n,o])=>typeof o=="string"||Array.isArray(o)?{alias:n,src:o}:{alias:n,...o})),s.forEach(n=>{let o=n.src,a=n.alias,c;if(typeof a=="string"){let u=this._createBundleAssetId(e,a);i.push(u),c=[a,u]}else{let u=a.map(l=>this._createBundleAssetId(e,l));i.push(...u),c=[...a,...u]}this.add({...n,alias:c,src:o})}),this._bundles[e]=i}add(e){let t=[];Array.isArray(e)?t.push(...e):t.push(e);let i;i=n=>{this.hasKey(n)&&G(`[Resolver] already has key: ${n} overwriting`)},Wr(t).forEach(n=>{let{src:o}=n,{data:a,format:c,loadParser:u}=n,l=Wr(o).map(d=>typeof d=="string"?U0(d):Array.isArray(d)?d:[d]),h=this.getAlias(n);Array.isArray(h)?h.forEach(i):i(h);let f=[];l.forEach(d=>{d.forEach(m=>{let x={};if(typeof m!="object"){x.src=m;for(let g=0;g<this._parsers.length;g++){let _=this._parsers[g];if(_.test(m)){x=_.parse(m);break}}}else a=m.data??a,c=m.format??c,u=m.loadParser??u,x={...x,...m};if(!h)throw new Error(`[Resolver] alias is undefined for this asset: ${x.src}`);x=this._buildResolvedAsset(x,{aliases:h,data:a,format:c,loadParser:u}),f.push(x)})}),h.forEach(d=>{this._assetMap[d]=f})})}resolveBundle(e){let t=kd(e);e=Wr(e);let i={};return e.forEach(s=>{let n=this._bundles[s];if(n){let o=this.resolve(n),a={};for(let c in o){let u=o[c];a[this._extractAssetIdFromBundle(s,c)]=u}i[s]=a}}),t?i[e[0]]:i}resolveUrl(e){let t=this.resolve(e);if(typeof e!="string"){let i={};for(let s in t)i[s]=t[s].src;return i}return t.src}resolve(e){let t=kd(e);e=Wr(e);let i={};return e.forEach(s=>{if(!this._resolverHash[s])if(this._assetMap[s]){let n=this._assetMap[s],o=this._getPreferredOrder(n);o?.priority.forEach(a=>{o.params[a].forEach(c=>{let u=n.filter(l=>l[a]?l[a]===c:!1);u.length&&(n=u)})}),this._resolverHash[s]=n[0]}else this._resolverHash[s]=this._buildResolvedAsset({alias:[s],src:s},{});i[s]=this._resolverHash[s]}),t?i[e[0]]:i}hasKey(e){return!!this._assetMap[e]}hasBundle(e){return!!this._bundles[e]}_getPreferredOrder(e){for(let t=0;t<e.length;t++){let i=e[t],s=this._preferredOrder.find(n=>n.params.format.includes(i.format));if(s)return s}return this._preferredOrder[0]}_appendDefaultSearchParams(e){if(!this._defaultSearchParams)return e;let t=/\?/.test(e)?"&":"?";return`${e}${t}${this._defaultSearchParams}`}_buildResolvedAsset(e,t){let{aliases:i,data:s,loadParser:n,format:o}=t;return(this._basePath||this._rootPath)&&(e.src=Ei.toAbsolute(e.src,this._basePath,this._rootPath)),e.alias=i??e.alias??[e.src],e.src=this._appendDefaultSearchParams(e.src),e.data={...s||{},...e.data},e.loadParser=n??e.loadParser,e.format=o??e.format??Wk(e.src),e}};Kn.RETINA_PREFIX=/@([0-9\.]+)x/});var Ad,L0=p(()=>{"use strict";Ad=(r,e)=>{let t=e.split("?")[1];return t&&(r+=`?${t}`),r}});var z0,Pd,V0=p(()=>{Ge();et();le();z0=class Qn{constructor(e,t){this.linkedSheets=[];let i=e;e?.source instanceof se&&(i={texture:e,data:t});let{texture:s,data:n,cachePrefix:o=""}=i;this.cachePrefix=o,this._texture=s instanceof D?s:null,this.textureSource=s.source,this.textures={},this.animations={},this.data=n;let a=parseFloat(n.meta.scale);a?(this.resolution=a,s.source.resolution=this.resolution):this.resolution=s.source._resolution,this._frames=this.data.frames,this._frameKeys=Object.keys(this._frames),this._batchIndex=0,this._callback=null}parse(){return new Promise(e=>{this._callback=e,this._batchIndex=0,this._frameKeys.length<=Qn.BATCH_SIZE?(this._processFrames(0),this._processAnimations(),this._parseComplete()):this._nextBatch()})}_processFrames(e){let t=e,i=Qn.BATCH_SIZE;for(;t-e<i&&t<this._frameKeys.length;){let s=this._frameKeys[t],n=this._frames[s],o=n.frame;if(o){let a=null,c=null,u=n.trimmed!==!1&&n.sourceSize?n.sourceSize:n.frame,l=new Y(0,0,Math.floor(u.w)/this.resolution,Math.floor(u.h)/this.resolution);n.rotated?a=new Y(Math.floor(o.x)/this.resolution,Math.floor(o.y)/this.resolution,Math.floor(o.h)/this.resolution,Math.floor(o.w)/this.resolution):a=new Y(Math.floor(o.x)/this.resolution,Math.floor(o.y)/this.resolution,Math.floor(o.w)/this.resolution,Math.floor(o.h)/this.resolution),n.trimmed!==!1&&n.spriteSourceSize&&(c=new Y(Math.floor(n.spriteSourceSize.x)/this.resolution,Math.floor(n.spriteSourceSize.y)/this.resolution,Math.floor(o.w)/this.resolution,Math.floor(o.h)/this.resolution)),this.textures[s]=new D({source:this.textureSource,frame:a,orig:l,trim:c,rotate:n.rotated?2:0,defaultAnchor:n.anchor,defaultBorders:n.borders,label:s.toString()})}t++}}_processAnimations(){let e=this.data.animations||{};for(let t in e){this.animations[t]=[];for(let i=0;i<e[t].length;i++){let s=e[t][i];this.animations[t].push(this.textures[s])}}}_parseComplete(){let e=this._callback;this._callback=null,this._batchIndex=0,e.call(this,this.textures)}_nextBatch(){this._processFrames(this._batchIndex*Qn.BATCH_SIZE),this._batchIndex++,setTimeout(()=>{this._batchIndex*Qn.BATCH_SIZE<this._frameKeys.length?this._nextBatch():(this._processAnimations(),this._parseComplete())},0)}destroy(e=!1){for(let t in this.textures)this.textures[t].destroy();this._frames=null,this._frameKeys=null,this.data=null,this.textures=null,e&&(this._texture?.destroy(),this.textureSource.destroy()),this._texture=null,this.textureSource=null,this.linkedSheets=[]}};z0.BATCH_SIZE=1e3;Pd=z0});function H0(r,e,t){let i={};if(r.forEach(s=>{i[s]=e}),Object.keys(e.textures).forEach(s=>{i[`${e.cachePrefix}${s}`]=e.textures[s]}),!t){let s=Ei.dirname(r[0]);e.linkedSheets.forEach((n,o)=>{let a=H0([`${s}/${e.data.meta.related_multi_packs[o]}`],n,!0);Object.assign(i,a)})}return i}var $k,W0,$0=p(()=>{R0();N0();L0();P();le();Cd();V0();$k=["jpg","png","jpeg","avif","webp","basis","etc2","bc7","bc6h","bc5","bc4","bc3","bc2","bc1","eac","astc"];W0={extension:b.Asset,cache:{test:r=>r instanceof Pd,getCacheableAssets:(r,e)=>H0(r,e,!1)},resolver:{extension:{type:b.ResolveParser,name:"resolveSpritesheet"},test:r=>{let t=r.split("?")[0].split("."),i=t.pop(),s=t.pop();return i==="json"&&$k.includes(s)},parse:r=>{let e=r.split(".");return{resolution:parseFloat(Kn.RETINA_PREFIX.exec(r)?.[1]??"1"),format:e[e.length-2],src:r}}},loader:{name:"spritesheetLoader",extension:{type:b.LoadParser,priority:vd.Normal,name:"spritesheetLoader"},async testParse(r,e){return Ei.extname(e.src).toLowerCase()===".json"&&!!r.frames},async parse(r,e,t){let{texture:i,imageFilename:s,textureOptions:n,cachePrefix:o}=e?.data??{},a=Ei.dirname(e.src);a&&a.lastIndexOf("/")!==a.length-1&&(a+="/");let c;if(i instanceof D)c=i;else{let h=Ad(a+(s??r.meta.image),e.src);c=(await t.load([{src:h,data:n}]))[h]}let u=new Pd({texture:c.source,data:r,cachePrefix:o});await u.parse();let l=r?.meta?.related_multi_packs;if(Array.isArray(l)){let h=[];for(let d of l){if(typeof d!="string")continue;let m=a+d;e.data?.ignoreMultiPack||(m=Ad(m,e.src),h.push(t.load({src:m,data:{textureOptions:n,ignoreMultiPack:!0}})))}let f=await Promise.all(h);u.linkedSheets=f,f.forEach(d=>{d.linkedSheets=[u].concat(u.linkedSheets.filter(m=>m!==d))})}return u},async unload(r,e,t){await t.unload(r.textureSource._sourceOrigin),r.destroy(!1)}}}});var Jc=p(()=>{P();$0();O.add(W0)});function eu(r,e,t){let{width:i,height:s}=t.orig,n=t.trim;if(n){let o=n.width,a=n.height;r.minX=n.x-e._x*i,r.maxX=r.minX+o,r.minY=n.y-e._y*s,r.maxY=r.minY+a}else r.minX=-e._x*i,r.maxX=r.minX+i,r.minY=-e._y*s,r.maxY=r.minY+s}var Bd=p(()=>{"use strict"});var qt,tu=p(()=>{Ic();le();Bd();ye();Zc();qt=class r extends Hr{constructor(e=D.EMPTY){e instanceof D&&(e={texture:e});let{texture:t=D.EMPTY,anchor:i,roundPixels:s,width:n,height:o,...a}=e;super({label:"Sprite",...a}),this.renderPipeId="sprite",this.batched=!0,this._visualBounds={minX:0,maxX:1,minY:0,maxY:0},this._anchor=new We({_onUpdate:()=>{this.onViewUpdate()}}),i?this.anchor=i:t.defaultAnchor&&(this.anchor=t.defaultAnchor),this.texture=t,this.allowChildren=!1,this.roundPixels=s??!1,n!==void 0&&(this.width=n),o!==void 0&&(this.height=o)}static from(e,t=!1){return e instanceof D?new r(e):new r(D.from(e,t))}set texture(e){e||(e=D.EMPTY);let t=this._texture;t!==e&&(t&&t.dynamic&&t.off("update",this.onViewUpdate,this),e.dynamic&&e.on("update",this.onViewUpdate,this),this._texture=e,this._width&&this._setWidth(this._width,this._texture.orig.width),this._height&&this._setHeight(this._height,this._texture.orig.height),this.onViewUpdate())}get texture(){return this._texture}get visualBounds(){return eu(this._visualBounds,this._anchor,this._texture),this._visualBounds}get sourceBounds(){return z("8.6.1","Sprite.sourceBounds is deprecated, use visualBounds instead."),this.visualBounds}updateBounds(){let e=this._anchor,t=this._texture,i=this._bounds,{width:s,height:n}=t.orig;i.minX=-e._x*s,i.maxX=i.minX+s,i.minY=-e._y*n,i.maxY=i.minY+n}destroy(e=!1){if(super.destroy(e),typeof e=="boolean"?e:e?.texture){let i=typeof e=="boolean"?e:e?.textureSource;this._texture.destroy(i)}this._texture=null,this._visualBounds=null,this._bounds=null,this._anchor=null,this._gpuData=null}get anchor(){return this._anchor}set anchor(e){typeof e=="number"?this._anchor.set(e):this._anchor.copyFrom(e)}get width(){return Math.abs(this.scale.x)*this._texture.orig.width}set width(e){this._setWidth(e,this._texture.orig.width),this._width=e}get height(){return Math.abs(this.scale.y)*this._texture.orig.height}set height(e){this._setHeight(e,this._texture.orig.height),this._height=e}getSize(e){return e||(e={}),e.width=Math.abs(this.scale.x)*this._texture.orig.width,e.height=Math.abs(this.scale.y)*this._texture.orig.height,e}setSize(e,t){typeof e=="object"?(t=e.height??e.width,e=e.width):t??(t=e),e!==void 0&&this._setWidth(e,this._texture.orig.width),t!==void 0&&this._setHeight(t,this._texture.orig.height)}}});function ru(r,e,t){let i=qk;r.measurable=!0,os(r,t,i),e.addBoundsMask(i),r.measurable=!1}var qk,Rd=p(()=>{ot();Nn();qk=new ae});function iu(r,e,t){let i=gt.get();r.measurable=!0;let s=Re.get().identity(),n=q0(r,t,s);cs(r,i,n),r.measurable=!1,e.addBoundsMask(i),Re.return(s),gt.return(i)}function q0(r,e,t){return r?(r!==e&&(q0(r.parent,e,t),r.updateLocalTransform(),t.append(r.localTransform)),t):(G("Mask bounds, renderable is not inside the root container"),t)}var Dd=p(()=>{zc();_i();ge()});var Zn,j0=p(()=>{P();tu();Rd();Dd();Zn=class{constructor(e){this.priority=0,this.inverse=!1,this.pipe="alphaMask",e?.mask&&this.init(e.mask)}init(e){this.mask=e,this.renderMaskToTexture=!(e instanceof qt),this.mask.renderable=this.renderMaskToTexture,this.mask.includeInBuild=!this.renderMaskToTexture,this.mask.measurable=!1}reset(){this.mask.measurable=!0,this.mask=null}addBounds(e,t){this.inverse||ru(this.mask,e,t)}addLocalBounds(e,t){iu(this.mask,e,t)}containsPoint(e,t){let i=this.mask;return t(i,e)}destroy(){this.reset()}static test(e){return e instanceof qt}};Zn.extension=b.MaskEffect});var Jn,X0=p(()=>{P();Jn=class{constructor(e){this.priority=0,this.pipe="colorMask",e?.mask&&this.init(e.mask)}init(e){this.mask=e}destroy(){}static test(e){return typeof e=="number"}};Jn.extension=b.MaskEffect});var eo,Y0=p(()=>{P();Ht();Rd();Dd();eo=class{constructor(e){this.priority=0,this.pipe="stencilMask",e?.mask&&this.init(e.mask)}init(e){this.mask=e,this.mask.includeInBuild=!1,this.mask.measurable=!1}reset(){this.mask.measurable=!0,this.mask.includeInBuild=!0,this.mask=null}addBounds(e,t){ru(this.mask,e,t)}addLocalBounds(e,t){iu(this.mask,e,t)}containsPoint(e,t){let i=this.mask;return t(i,e)}destroy(){this.reset()}static test(e){return e instanceof we}};eo.extension=b.MaskEffect});var je,ms=p(()=>{ve();P();et();je=class extends se{constructor(e){e.resource||(e.resource=W.get().createCanvas()),e.width||(e.width=e.resource.width,e.autoDensity||(e.width/=e.resolution)),e.height||(e.height=e.resource.height,e.autoDensity||(e.height/=e.resolution)),super(e),this.uploadMethodId="image",this.autoDensity=e.autoDensity,this.resizeCanvas(),this.transparent=!!e.transparent}resizeCanvas(){this.autoDensity&&"style"in this.resource&&(this.resource.style.width=`${this.width}px`,this.resource.style.height=`${this.height}px`),(this.resource.width!==this.pixelWidth||this.resource.height!==this.pixelHeight)&&(this.resource.width=this.pixelWidth,this.resource.height=this.pixelHeight)}resize(e=this.width,t=this.height,i=this._resolution){let s=super.resize(e,t,i);return s&&this.resizeCanvas(),s}static test(e){return globalThis.HTMLCanvasElement&&e instanceof HTMLCanvasElement||globalThis.OffscreenCanvas&&e instanceof OffscreenCanvas}get context2D(){return this._context2D||(this._context2D=this.resource.getContext("2d"))}};je.extension=b.TextureSource});var jt,su=p(()=>{P();et();jt=class extends se{constructor(e){super(e),this.uploadMethodId="image",this.autoGarbageCollect=!0}static test(e){return globalThis.HTMLImageElement&&e instanceof HTMLImageElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap||globalThis.VideoFrame&&e instanceof VideoFrame}};jt.extension=b.TextureSource});async function K0(){return Md??(Md=(async()=>{let e=document.createElement("canvas").getContext("webgl");if(!e)return"premultiply-alpha-on-upload";let t=await new Promise(o=>{let a=document.createElement("video");a.onloadeddata=()=>o(a),a.onerror=()=>o(null),a.autoplay=!1,a.crossOrigin="anonymous",a.preload="auto",a.src="data:video/webm;base64,GkXfo59ChoEBQveBAULygQRC84EIQoKEd2VibUKHgQJChYECGFOAZwEAAAAAAAHTEU2bdLpNu4tTq4QVSalmU6yBoU27i1OrhBZUrmtTrIHGTbuMU6uEElTDZ1OsggEXTbuMU6uEHFO7a1OsggG97AEAAAAAAABZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVSalmoCrXsYMPQkBNgIRMYXZmV0GETGF2ZkSJiEBEAAAAAAAAFlSua8yuAQAAAAAAAEPXgQFzxYgAAAAAAAAAAZyBACK1nIN1bmSIgQCGhVZfVlA5g4EBI+ODhAJiWgDglLCBArqBApqBAlPAgQFVsIRVuYEBElTDZ9Vzc9JjwItjxYgAAAAAAAAAAWfInEWjh0VOQ09ERVJEh49MYXZjIGxpYnZweC12cDlnyKJFo4hEVVJBVElPTkSHlDAwOjAwOjAwLjA0MDAwMDAwMAAAH0O2dcfngQCgwqGggQAAAIJJg0IAABAAFgA4JBwYSgAAICAAEb///4r+AAB1oZ2mm+6BAaWWgkmDQgAAEAAWADgkHBhKAAAgIABIQBxTu2uRu4+zgQC3iveBAfGCAXHwgQM=",a.load()});if(!t)return"premultiply-alpha-on-upload";let i=e.createTexture();e.bindTexture(e.TEXTURE_2D,i);let s=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,s),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,i,0),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),e.pixelStorei(e.UNPACK_COLORSPACE_CONVERSION_WEBGL,e.NONE),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t);let n=new Uint8Array(4);return e.readPixels(0,0,1,1,e.RGBA,e.UNSIGNED_BYTE,n),e.deleteFramebuffer(s),e.deleteTexture(i),e.getExtension("WEBGL_lose_context")?.loseContext(),n[0]<=n[3]?"premultiplied-alpha":"premultiply-alpha-on-upload"})()),Md}var Md,Q0=p(()=>{"use strict"});var nu,J0,e_=p(()=>{P();$n();Q0();et();nu=class Z0 extends se{constructor(e){super(e),this.isReady=!1,this.uploadMethodId="video",e={...Z0.defaultOptions,...e},this._autoUpdate=!0,this._isConnectedToTicker=!1,this._updateFPS=e.updateFPS||0,this._msToNextUpdate=0,this.autoPlay=e.autoPlay!==!1,this.alphaMode=e.alphaMode??"premultiply-alpha-on-upload",this._videoFrameRequestCallback=this._videoFrameRequestCallback.bind(this),this._videoFrameRequestCallbackHandle=null,this._load=null,this._resolve=null,this._reject=null,this._onCanPlay=this._onCanPlay.bind(this),this._onCanPlayThrough=this._onCanPlayThrough.bind(this),this._onError=this._onError.bind(this),this._onPlayStart=this._onPlayStart.bind(this),this._onPlayStop=this._onPlayStop.bind(this),this._onSeeked=this._onSeeked.bind(this),e.autoLoad!==!1&&this.load()}updateFrame(){if(!this.destroyed){if(this._updateFPS){let e=at.shared.elapsedMS*this.resource.playbackRate;this._msToNextUpdate=Math.floor(this._msToNextUpdate-e)}(!this._updateFPS||this._msToNextUpdate<=0)&&(this._msToNextUpdate=this._updateFPS?Math.floor(1e3/this._updateFPS):0),this.isValid&&this.update()}}_videoFrameRequestCallback(){this.updateFrame(),this.destroyed?this._videoFrameRequestCallbackHandle=null:this._videoFrameRequestCallbackHandle=this.resource.requestVideoFrameCallback(this._videoFrameRequestCallback)}get isValid(){return!!this.resource.videoWidth&&!!this.resource.videoHeight}async load(){if(this._load)return this._load;let e=this.resource,t=this.options;return(e.readyState===e.HAVE_ENOUGH_DATA||e.readyState===e.HAVE_FUTURE_DATA)&&e.width&&e.height&&(e.complete=!0),e.addEventListener("play",this._onPlayStart),e.addEventListener("pause",this._onPlayStop),e.addEventListener("seeked",this._onSeeked),this._isSourceReady()?this._mediaReady():(t.preload||e.addEventListener("canplay",this._onCanPlay),e.addEventListener("canplaythrough",this._onCanPlayThrough),e.addEventListener("error",this._onError,!0)),this.alphaMode=await K0(),this._load=new Promise((i,s)=>{this.isValid?i(this):(this._resolve=i,this._reject=s,t.preloadTimeoutMs!==void 0&&(this._preloadTimeout=setTimeout(()=>{this._onError(new ErrorEvent(`Preload exceeded timeout of ${t.preloadTimeoutMs}ms`))})),e.load())}),this._load}_onError(e){this.resource.removeEventListener("error",this._onError,!0),this.emit("error",e),this._reject&&(this._reject(e),this._reject=null,this._resolve=null)}_isSourcePlaying(){let e=this.resource;return!e.paused&&!e.ended}_isSourceReady(){return this.resource.readyState>2}_onPlayStart(){this.isValid||this._mediaReady(),this._configureAutoUpdate()}_onPlayStop(){this._configureAutoUpdate()}_onSeeked(){this._autoUpdate&&!this._isSourcePlaying()&&(this._msToNextUpdate=0,this.updateFrame(),this._msToNextUpdate=0)}_onCanPlay(){this.resource.removeEventListener("canplay",this._onCanPlay),this._mediaReady()}_onCanPlayThrough(){this.resource.removeEventListener("canplaythrough",this._onCanPlay),this._preloadTimeout&&(clearTimeout(this._preloadTimeout),this._preloadTimeout=void 0),this._mediaReady()}_mediaReady(){let e=this.resource;this.isValid&&(this.isReady=!0,this.resize(e.videoWidth,e.videoHeight)),this._msToNextUpdate=0,this.updateFrame(),this._msToNextUpdate=0,this._resolve&&(this._resolve(this),this._resolve=null,this._reject=null),this._isSourcePlaying()?this._onPlayStart():this.autoPlay&&this.resource.play()}destroy(){this._configureAutoUpdate();let e=this.resource;e&&(e.removeEventListener("play",this._onPlayStart),e.removeEventListener("pause",this._onPlayStop),e.removeEventListener("seeked",this._onSeeked),e.removeEventListener("canplay",this._onCanPlay),e.removeEventListener("canplaythrough",this._onCanPlayThrough),e.removeEventListener("error",this._onError,!0),e.pause(),e.src="",e.load()),super.destroy()}get autoUpdate(){return this._autoUpdate}set autoUpdate(e){e!==this._autoUpdate&&(this._autoUpdate=e,this._configureAutoUpdate())}get updateFPS(){return this._updateFPS}set updateFPS(e){e!==this._updateFPS&&(this._updateFPS=e,this._configureAutoUpdate())}_configureAutoUpdate(){this._autoUpdate&&this._isSourcePlaying()?!this._updateFPS&&this.resource.requestVideoFrameCallback?(this._isConnectedToTicker&&(at.shared.remove(this.updateFrame,this),this._isConnectedToTicker=!1,this._msToNextUpdate=0),this._videoFrameRequestCallbackHandle===null&&(this._videoFrameRequestCallbackHandle=this.resource.requestVideoFrameCallback(this._videoFrameRequestCallback))):(this._videoFrameRequestCallbackHandle!==null&&(this.resource.cancelVideoFrameCallback(this._videoFrameRequestCallbackHandle),this._videoFrameRequestCallbackHandle=null),this._isConnectedToTicker||(at.shared.add(this.updateFrame,this),this._isConnectedToTicker=!0,this._msToNextUpdate=0)):(this._videoFrameRequestCallbackHandle!==null&&(this.resource.cancelVideoFrameCallback(this._videoFrameRequestCallbackHandle),this._videoFrameRequestCallbackHandle=null),this._isConnectedToTicker&&(at.shared.remove(this.updateFrame,this),this._isConnectedToTicker=!1,this._msToNextUpdate=0))}static test(e){return globalThis.HTMLVideoElement&&e instanceof HTMLVideoElement}};nu.extension=b.TextureSource;nu.defaultOptions={...se.defaultOptions,autoLoad:!0,autoPlay:!0,updateFPS:0,crossorigin:!0,loop:!1,muted:!0,playsinline:!0,preload:!1};nu.MIME_TYPES={ogv:"video/ogg",mov:"video/quicktime",m4v:"video/mp4"};J0=nu});var Id,De,to=p(()=>{ge();Ed();Id=class{constructor(){this._parsers=[],this._cache=new Map,this._cacheMap=new Map}reset(){this._cacheMap.clear(),this._cache.clear()}has(e){return this._cache.has(e)}get(e){let t=this._cache.get(e);return t||G(`[Assets] Asset id ${e} was not found in the Cache`),t}set(e,t){let i=Wr(e),s;for(let c=0;c<this.parsers.length;c++){let u=this.parsers[c];if(u.test(t)){s=u.getCacheableAssets(i,t);break}}let n=new Map(Object.entries(s||{}));s||i.forEach(c=>{n.set(c,t)});let o=[...n.keys()],a={cacheKeys:o,keys:i};i.forEach(c=>{this._cacheMap.set(c,a)}),o.forEach(c=>{let u=s?s[c]:t;this._cache.has(c)&&this._cache.get(c)!==u&&G("[Cache] already has key:",c),this._cache.set(c,n.get(c))})}remove(e){if(!this._cacheMap.has(e)){G(`[Assets] Asset id ${e} was not found in the Cache`);return}let t=this._cacheMap.get(e);t.cacheKeys.forEach(s=>{this._cache.delete(s)}),t.keys.forEach(s=>{this._cacheMap.delete(s)})}get parsers(){return this._parsers}},De=new Id});function t_(r={}){let e=r&&r.resource,t=e?r.resource:r,i=e?r:{resource:r};for(let s=0;s<Fd.length;s++){let n=Fd[s];if(n.test(t))return new n(i)}throw new Error(`Could not find a source type for resource: ${i.resource}`)}function r_(r={},e=!1){let t=r&&r.resource,i=t?r.resource:r,s=t?r:{resource:r};if(!e&&De.has(i))return De.get(i);let n=new D({source:t_(s)});return n.on("destroy",()=>{De.has(i)&&De.remove(i)}),e||De.set(i,n),n}function i_(r,e=!1){return typeof r=="string"?De.get(r):r instanceof se?new D({source:r}):r_(r,e)}var Fd,Ud=p(()=>{to();P();et();le();Fd=[];O.handleByList(b.TextureSource,Fd);D.from=i_;se.from=t_});var ou=p(()=>{P();j0();X0();Y0();nd();ms();su();e_();Ud();O.add(Zn,Jn,eo,J0,jt,je,vi)});var Ne,$r=p(()=>{"use strict";Ne=class{constructor(e){this.resources=Object.create(null),this._dirty=!0;let t=0;for(let i in e){let s=e[i];this.setResource(s,t++)}this._updateKey()}_updateKey(){if(!this._dirty)return;this._dirty=!1;let e=[],t=0;for(let i in this.resources)e[t++]=this.resources[i]._resourceId;this._key=e.join("|")}setResource(e,t){let i=this.resources[t];e!==i&&(i&&e.off?.("change",this.onResourceChange,this),e.on?.("change",this.onResourceChange,this),this.resources[t]=e,this._dirty=!0)}getResource(e){return this.resources[e]}_touch(e){let t=this.resources;for(let i in t)t[i]._touched=e}destroy(){let e=this.resources;for(let t in e)e[t].off?.("change",this.onResourceChange,this);this.resources=null}onResourceChange(e){if(this._dirty=!0,e.destroyed){let t=this.resources;for(let i in t)t[i]===e&&(t[i]=null)}else this._updateKey()}}});function ps(r,e,t){let i=2166136261;for(let s=0;s<e;s++)i^=r[s].uid,i=Math.imul(i,16777619),i>>>=0;return s_[i]||jk(r,e,i,t)}function jk(r,e,t,i){let s={},n=0;for(let a=0;a<i;a++){let c=a<e?r[a]:D.EMPTY.source;s[n++]=c.source,s[n++]=c.style}let o=new Ne(s);return s_[t]=o,o}var s_,au=p(()=>{$r();le();s_={}});var Xt,Od=p(()=>{"use strict";Xt=class{constructor(e){typeof e=="number"?this.rawBinaryData=new ArrayBuffer(e):e instanceof Uint8Array?this.rawBinaryData=e.buffer:this.rawBinaryData=e,this.uint32View=new Uint32Array(this.rawBinaryData),this.float32View=new Float32Array(this.rawBinaryData),this.size=this.rawBinaryData.byteLength}get int8View(){return this._int8View||(this._int8View=new Int8Array(this.rawBinaryData)),this._int8View}get uint8View(){return this._uint8View||(this._uint8View=new Uint8Array(this.rawBinaryData)),this._uint8View}get int16View(){return this._int16View||(this._int16View=new Int16Array(this.rawBinaryData)),this._int16View}get int32View(){return this._int32View||(this._int32View=new Int32Array(this.rawBinaryData)),this._int32View}get float64View(){return this._float64Array||(this._float64Array=new Float64Array(this.rawBinaryData)),this._float64Array}get bigUint64View(){return this._bigUint64Array||(this._bigUint64Array=new BigUint64Array(this.rawBinaryData)),this._bigUint64Array}view(e){return this[`${e}View`]}destroy(){this.rawBinaryData=null,this._int8View=null,this._uint8View=null,this._int16View=null,this.uint16View=null,this._int32View=null,this.uint32View=null,this.float32View=null}static sizeOf(e){switch(e){case"int8":case"uint8":return 1;case"int16":case"uint16":return 2;case"int32":case"uint32":case"float32":return 4;default:throw new Error(`${e} isn't a valid view type`)}}}});function ro(r,e){let t=r.byteLength/8|0,i=new Float64Array(r,0,t);new Float64Array(e,0,t).set(i);let n=r.byteLength-t*8;if(n>0){let o=new Uint8Array(r,t*8,n);new Uint8Array(e,t*8,n).set(o)}}var Gd=p(()=>{"use strict"});var n_,me,ki=p(()=>{"use strict";n_={normal:"normal-npm",add:"add-npm",screen:"screen-npm"},me=(r=>(r[r.DISABLED=0]="DISABLED",r[r.RENDERING_MASK_ADD=1]="RENDERING_MASK_ADD",r[r.MASK_ACTIVE=2]="MASK_ACTIVE",r[r.INVERSE_MASK_ACTIVE=3]="INVERSE_MASK_ACTIVE",r[r.RENDERING_MASK_REMOVE=4]="RENDERING_MASK_REMOVE",r[r.NONE=5]="NONE",r))(me||{})});function Tr(r,e){return e.alphaMode==="no-premultiply-alpha"&&n_[r]||r}var io=p(()=>{ki()});function uu(){return(!cu||cu?.isContextLost())&&(cu=W.get().createCanvas().getContext("webgl",{})),cu}var cu,Nd=p(()=>{ve()});function Yk(r){let e="";for(let t=0;t<r;++t)t>0&&(e+=`
20
+ else `),t<r-1&&(e+=`if(test == ${t}.0){}`);return e}function lu(r,e){if(r===0)throw new Error("Invalid value of `0` passed to `checkMaxIfStatementsInShader`");let t=e.createShader(e.FRAGMENT_SHADER);try{for(;;){let i=Xk.replace(/%forloop%/gi,Yk(r));if(e.shaderSource(t,i),e.compileShader(t),!e.getShaderParameter(t,e.COMPILE_STATUS))r=r/2|0;else break}}finally{e.deleteShader(t)}return r}var Xk,Ld=p(()=>{"use strict";Xk=["precision mediump float;","void main(void){","float test = 0.1;","%forloop%","gl_FragColor = vec4(0.0);","}"].join(`
21
+ `)});function o_(){if(gs)return gs;let r=uu();return gs=r.getParameter(r.MAX_TEXTURE_IMAGE_UNITS),gs=lu(gs,r),r.getExtension("WEBGL_lose_context")?.loseContext(),gs}var gs,a_=p(()=>{Nd();Ld();gs=null});var hu,c_=p(()=>{"use strict";hu=class{constructor(){this.ids=Object.create(null),this.textures=[],this.count=0}clear(){for(let e=0;e<this.count;e++){let t=this.textures[e];this.textures[e]=null,this.ids[t.uid]=null}this.count=0}}});function u_(){return Vd>0?h_[--Vd]:new zd}function l_(r){h_[Vd++]=r}var zd,h_,Vd,so,d_,m_,p_=p(()=>{Oe();Od();ye();Gd();io();a_();c_();zd=class{constructor(){this.renderPipeId="batch",this.action="startBatch",this.start=0,this.size=0,this.textures=new hu,this.blendMode="normal",this.topology="triangle-strip",this.canBundle=!0}destroy(){this.textures=null,this.gpuBindGroup=null,this.bindGroup=null,this.batcher=null}},h_=[],Vd=0;so=0,d_=class f_{constructor(e){this.uid=K("batcher"),this.dirty=!0,this.batchIndex=0,this.batches=[],this._elements=[],e={...f_.defaultOptions,...e},e.maxTextures||(z("v8.8.0","maxTextures is a required option for Batcher now, please pass it in the options"),e.maxTextures=o_());let{maxTextures:t,attributesInitialSize:i,indicesInitialSize:s}=e;this.attributeBuffer=new Xt(i*4),this.indexBuffer=new Uint16Array(s),this.maxTextures=t}begin(){this.elementSize=0,this.elementStart=0,this.indexSize=0,this.attributeSize=0;for(let e=0;e<this.batchIndex;e++)l_(this.batches[e]);this.batchIndex=0,this._batchIndexStart=0,this._batchIndexSize=0,this.dirty=!0}add(e){this._elements[this.elementSize++]=e,e._indexStart=this.indexSize,e._attributeStart=this.attributeSize,e._batcher=this,this.indexSize+=e.indexSize,this.attributeSize+=e.attributeSize*this.vertexSize}checkAndUpdateTexture(e,t){let i=e._batch.textures.ids[t._source.uid];return!i&&i!==0?!1:(e._textureId=i,e.texture=t,!0)}updateElement(e){this.dirty=!0;let t=this.attributeBuffer;e.packAsQuad?this.packQuadAttributes(e,t.float32View,t.uint32View,e._attributeStart,e._textureId):this.packAttributes(e,t.float32View,t.uint32View,e._attributeStart,e._textureId)}break(e){let t=this._elements;if(!t[this.elementStart])return;let i=u_(),s=i.textures;s.clear();let n=t[this.elementStart],o=Tr(n.blendMode,n.texture._source),a=n.topology;this.attributeSize*4>this.attributeBuffer.size&&this._resizeAttributeBuffer(this.attributeSize*4),this.indexSize>this.indexBuffer.length&&this._resizeIndexBuffer(this.indexSize);let c=this.attributeBuffer.float32View,u=this.attributeBuffer.uint32View,l=this.indexBuffer,h=this._batchIndexSize,f=this._batchIndexStart,d="startBatch",m=this.maxTextures;for(let x=this.elementStart;x<this.elementSize;++x){let g=t[x];t[x]=null;let y=g.texture._source,S=Tr(g.blendMode,y),T=o!==S||a!==g.topology;if(y._batchTick===so&&!T){g._textureId=y._textureBindLocation,h+=g.indexSize,g.packAsQuad?(this.packQuadAttributes(g,c,u,g._attributeStart,g._textureId),this.packQuadIndex(l,g._indexStart,g._attributeStart/this.vertexSize)):(this.packAttributes(g,c,u,g._attributeStart,g._textureId),this.packIndex(g,l,g._indexStart,g._attributeStart/this.vertexSize)),g._batch=i;continue}y._batchTick=so,(s.count>=m||T)&&(this._finishBatch(i,f,h-f,s,o,a,e,d),d="renderBatch",f=h,o=S,a=g.topology,i=u_(),s=i.textures,s.clear(),++so),g._textureId=y._textureBindLocation=s.count,s.ids[y.uid]=s.count,s.textures[s.count++]=y,g._batch=i,h+=g.indexSize,g.packAsQuad?(this.packQuadAttributes(g,c,u,g._attributeStart,g._textureId),this.packQuadIndex(l,g._indexStart,g._attributeStart/this.vertexSize)):(this.packAttributes(g,c,u,g._attributeStart,g._textureId),this.packIndex(g,l,g._indexStart,g._attributeStart/this.vertexSize))}s.count>0&&(this._finishBatch(i,f,h-f,s,o,a,e,d),f=h,++so),this.elementStart=this.elementSize,this._batchIndexStart=f,this._batchIndexSize=h}_finishBatch(e,t,i,s,n,o,a,c){e.gpuBindGroup=null,e.bindGroup=null,e.action=c,e.batcher=this,e.textures=s,e.blendMode=n,e.topology=o,e.start=t,e.size=i,++so,this.batches[this.batchIndex++]=e,a.add(e)}finish(e){this.break(e)}ensureAttributeBuffer(e){e*4<=this.attributeBuffer.size||this._resizeAttributeBuffer(e*4)}ensureIndexBuffer(e){e<=this.indexBuffer.length||this._resizeIndexBuffer(e)}_resizeAttributeBuffer(e){let t=Math.max(e,this.attributeBuffer.size*2),i=new Xt(t);ro(this.attributeBuffer.rawBinaryData,i.rawBinaryData),this.attributeBuffer=i}_resizeIndexBuffer(e){let t=this.indexBuffer,i=Math.max(e,t.length*1.5);i+=i%2;let s=i>65535?new Uint32Array(i):new Uint16Array(i);if(s.BYTES_PER_ELEMENT!==t.BYTES_PER_ELEMENT)for(let n=0;n<t.length;n++)s[n]=t[n];else ro(t.buffer,s.buffer);this.indexBuffer=s}packQuadIndex(e,t,i){e[t]=i+0,e[t+1]=i+1,e[t+2]=i+2,e[t+3]=i+0,e[t+4]=i+2,e[t+5]=i+3}packIndex(e,t,i,s){let n=e.indices,o=e.indexSize,a=e.indexOffset,c=e.attributeOffset;for(let u=0;u<o;u++)t[i++]=s+n[u+a]-c}destroy(){for(let e=0;e<this.batches.length;e++)l_(this.batches[e]);this.batches=null;for(let e=0;e<this._elements.length;e++)this._elements[e]._batch=null;this._elements=null,this.indexBuffer=null,this.attributeBuffer.destroy(),this.attributeBuffer=null}};d_.defaultOptions={maxTextures:null,attributesInitialSize:4,indicesInitialSize:6};m_=d_});var Q,wr=p(()=>{"use strict";Q=(r=>(r[r.MAP_READ=1]="MAP_READ",r[r.MAP_WRITE=2]="MAP_WRITE",r[r.COPY_SRC=4]="COPY_SRC",r[r.COPY_DST=8]="COPY_DST",r[r.INDEX=16]="INDEX",r[r.VERTEX=32]="VERTEX",r[r.UNIFORM=64]="UNIFORM",r[r.STORAGE=128]="STORAGE",r[r.INDIRECT=256]="INDIRECT",r[r.QUERY_RESOLVE=512]="QUERY_RESOLVE",r[r.STATIC=1024]="STATIC",r))(Q||{})});var Ce,qr=p(()=>{Ve();Oe();wr();Ce=class extends oe{constructor(e){let{data:t,size:i}=e,{usage:s,label:n,shrinkToFit:o}=e;super(),this.uid=K("buffer"),this._resourceType="buffer",this._resourceId=K("resource"),this._touched=0,this._updateID=1,this._dataInt32=null,this.shrinkToFit=!0,this.destroyed=!1,t instanceof Array&&(t=new Float32Array(t)),this._data=t,i??(i=t?.byteLength);let a=!!t;this.descriptor={size:i,usage:s,mappedAtCreation:a,label:n},this.shrinkToFit=o??!0}get data(){return this._data}set data(e){this.setDataWithSize(e,e.length,!0)}get dataInt32(){return this._dataInt32||(this._dataInt32=new Int32Array(this.data.buffer)),this._dataInt32}get static(){return!!(this.descriptor.usage&Q.STATIC)}set static(e){e?this.descriptor.usage|=Q.STATIC:this.descriptor.usage&=~Q.STATIC}setDataWithSize(e,t,i){if(this._updateID++,this._updateSize=t*e.BYTES_PER_ELEMENT,this._data===e){i&&this.emit("update",this);return}let s=this._data;if(this._data=e,this._dataInt32=null,!s||s.length!==e.length){!this.shrinkToFit&&s&&e.byteLength<s.byteLength?i&&this.emit("update",this):(this.descriptor.size=e.byteLength,this._resourceId=K("resource"),this.emit("change",this));return}i&&this.emit("update",this)}update(e){this._updateSize=e??this._updateSize,this._updateID++,this.emit("update",this)}destroy(){this.destroyed=!0,this.emit("destroy",this),this.emit("change",this),this._data=null,this.descriptor=null,this.removeAllListeners()}}});function Hd(r,e){if(!(r instanceof Ce)){let t=e?Q.INDEX:Q.VERTEX;r instanceof Array&&(e?(r=new Uint32Array(r),t=Q.INDEX|Q.COPY_DST):(r=new Float32Array(r),t=Q.VERTEX|Q.COPY_DST)),r=new Ce({data:r,label:e?"index-mesh-buffer":"vertex-mesh-buffer",usage:t})}return r}var g_=p(()=>{qr();wr()});function x_(r,e,t){let i=r.getAttribute(e);if(!i)return t.minX=0,t.minY=0,t.maxX=0,t.maxY=0,t;let s=i.buffer.data,n=1/0,o=1/0,a=-1/0,c=-1/0,u=s.BYTES_PER_ELEMENT,l=(i.offset||0)/u,h=(i.stride||8)/u;for(let f=l;f<s.length;f+=h){let d=s[f],m=s[f+1];d>a&&(a=d),m>c&&(c=m),d<n&&(n=d),m<o&&(o=m)}return t.minX=n,t.minY=o,t.maxX=a,t.maxY=c,t}var __=p(()=>{"use strict"});function Kk(r){return(r instanceof Ce||Array.isArray(r)||r.BYTES_PER_ELEMENT)&&(r={buffer:r}),r.buffer=Hd(r.buffer,!1),r}var vt,xs=p(()=>{Ve();ot();Oe();qr();g_();__();vt=class extends oe{constructor(e={}){super(),this.uid=K("geometry"),this._layoutKey=0,this.instanceCount=1,this._bounds=new ae,this._boundsDirty=!0;let{attributes:t,indexBuffer:i,topology:s}=e;if(this.buffers=[],this.attributes={},t)for(let n in t)this.addAttribute(n,t[n]);this.instanceCount=e.instanceCount??1,i&&this.addIndex(i),this.topology=s||"triangle-list"}onBufferUpdate(){this._boundsDirty=!0,this.emit("update",this)}getAttribute(e){return this.attributes[e]}getIndex(){return this.indexBuffer}getBuffer(e){return this.getAttribute(e).buffer}getSize(){for(let e in this.attributes){let t=this.attributes[e];return t.buffer.data.length/(t.stride/4||t.size)}return 0}addAttribute(e,t){let i=Kk(t);this.buffers.indexOf(i.buffer)===-1&&(this.buffers.push(i.buffer),i.buffer.on("update",this.onBufferUpdate,this),i.buffer.on("change",this.onBufferUpdate,this)),this.attributes[e]=i}addIndex(e){this.indexBuffer=Hd(e,!0),this.buffers.push(this.indexBuffer)}get bounds(){return this._boundsDirty?(this._boundsDirty=!1,x_(this,"aPosition",this._bounds)):this._bounds}destroy(e=!1){this.emit("destroy",this),this.removeAllListeners(),e&&this.buffers.forEach(t=>t.destroy()),this.attributes=null,this.buffers=null,this.indexBuffer=null,this._bounds=null}}});var Qk,Zk,du,b_=p(()=>{qr();wr();xs();Qk=new Float32Array(1),Zk=new Uint32Array(1),du=class extends vt{constructor(){let t=new Ce({data:Qk,label:"attribute-batch-buffer",usage:Q.VERTEX|Q.COPY_DST,shrinkToFit:!1}),i=new Ce({data:Zk,label:"index-batch-buffer",usage:Q.INDEX|Q.COPY_DST,shrinkToFit:!1}),s=24;super({attributes:{aPosition:{buffer:t,format:"float32x2",stride:s,offset:0},aUV:{buffer:t,format:"float32x2",stride:s,offset:8},aColor:{buffer:t,format:"unorm8x4",stride:s,offset:16},aTextureIdAndRound:{buffer:t,format:"uint16x2",stride:s,offset:20}},indexBuffer:i})}}});function Sr(r,e){let t=y_[r];return t===void 0&&(Wd[e]===void 0&&(Wd[e]=1),y_[r]=t=Wd[e]++),t}var Wd,y_,no=p(()=>{"use strict";Wd=Object.create(null),y_=Object.create(null)});function T_(){if(!fu){fu="mediump";let r=uu();r&&r.getShaderPrecisionFormat&&(fu=r.getShaderPrecisionFormat(r.FRAGMENT_SHADER,r.HIGH_FLOAT).precision?"highp":"mediump")}return fu}var fu,w_=p(()=>{Nd()});function S_(r,e,t){return e?r:t?(r=r.replace("out vec4 finalColor;",""),`
22
22
 
23
23
  #ifdef GL_ES // This checks if it is WebGL1
24
24
  #define in varying
@@ -33,27 +33,27 @@ else `),t<r-1&&(e+=`if(test == ${t}.0){}`);return e}function ju(r,e){if(r===0)th
33
33
  #define out varying
34
34
  #endif
35
35
  ${r}
36
- `}var Yb=p(()=>{"use strict"});function Kb(r,e,t){let i=t?e.maxSupportedFragmentPrecision:e.maxSupportedVertexPrecision;if(r.substring(0,9)!=="precision"){let s=t?e.requestedFragmentPrecision:e.requestedVertexPrecision;return s==="highp"&&i!=="highp"&&(s="mediump"),`precision ${s} float;
37
- ${r}`}else if(i!=="highp"&&r.substring(0,15)==="precision highp")return r.replace("precision highp","precision mediump");return r}var Qb=p(()=>{"use strict"});function Zb(r,e){return e?`#version 300 es
38
- ${r}`:r}var Jb=p(()=>{"use strict"});function ey(r,{name:e="pixi-program"},t=!0){e=e.replace(/\s+/g,"-"),e+=t?"-fragment":"-vertex";let i=t?AP:PP;return i[e]?(i[e]++,e+=`-${i[e]}`):i[e]=1,r.indexOf("#define SHADER_NAME")!==-1?r:`${`#define SHADER_NAME ${e}`}
39
- ${r}`}var AP,PP,ty=p(()=>{"use strict";AP={},PP={}});function ry(r,e){return e?r.replace("#version 300 es",""):r}var iy=p(()=>{"use strict"});var Bf,Rf,sy,Pt,$i=p(()=>{Bo();jb();Yb();Qb();Jb();ty();iy();Bf={stripVersion:ry,ensurePrecision:Kb,addProgramDefines:Xb,setProgramName:ey,insertVersion:Zb},Rf=Object.create(null),sy=class Df{constructor(e){e={...Df.defaultOptions,...e};let t=e.fragment.indexOf("#version 300 es")!==-1,i={stripVersion:t,ensurePrecision:{requestedFragmentPrecision:e.preferredFragmentPrecision,requestedVertexPrecision:e.preferredVertexPrecision,maxSupportedVertexPrecision:"highp",maxSupportedFragmentPrecision:qb()},setProgramName:{name:e.name},addProgramDefines:t,insertVersion:t},s=e.fragment,n=e.vertex;Object.keys(Bf).forEach(o=>{let a=i[o];s=Bf[o](s,a,!0),n=Bf[o](n,a,!1)}),this.fragment=s,this.vertex=n,this.transformFeedbackVaryings=e.transformFeedbackVaryings,this._key=Er(`${this.vertex}:${this.fragment}`,"gl-program")}destroy(){this.fragment=null,this.vertex=null,this._attributeData=null,this._uniformData=null,this._uniformBlockData=null,this.transformFeedbackVaryings=null}static from(e){let t=`${e.vertex}:${e.fragment}`;return Rf[t]||(Rf[t]=new Df(e)),Rf[t]}};sy.defaultOptions={preferredVertexPrecision:"highp",preferredFragmentPrecision:"mediump"};Pt=sy});function ut(r){return ny[r]??ny.float32}var ny,qi=p(()=>{"use strict";ny={uint8x2:{size:2,stride:2,normalised:!1},uint8x4:{size:4,stride:4,normalised:!1},sint8x2:{size:2,stride:2,normalised:!1},sint8x4:{size:4,stride:4,normalised:!1},unorm8x2:{size:2,stride:2,normalised:!0},unorm8x4:{size:4,stride:4,normalised:!0},snorm8x2:{size:2,stride:2,normalised:!0},snorm8x4:{size:4,stride:4,normalised:!0},uint16x2:{size:2,stride:4,normalised:!1},uint16x4:{size:4,stride:8,normalised:!1},sint16x2:{size:2,stride:4,normalised:!1},sint16x4:{size:4,stride:8,normalised:!1},unorm16x2:{size:2,stride:4,normalised:!0},unorm16x4:{size:4,stride:8,normalised:!0},snorm16x2:{size:2,stride:4,normalised:!0},snorm16x4:{size:4,stride:8,normalised:!0},float16x2:{size:2,stride:4,normalised:!1},float16x4:{size:4,stride:8,normalised:!1},float32:{size:1,stride:4,normalised:!1},float32x2:{size:2,stride:8,normalised:!1},float32x3:{size:3,stride:12,normalised:!1},float32x4:{size:4,stride:16,normalised:!1},uint32:{size:1,stride:4,normalised:!1},uint32x2:{size:2,stride:8,normalised:!1},uint32x3:{size:3,stride:12,normalised:!1},uint32x4:{size:4,stride:16,normalised:!1},sint32:{size:1,stride:4,normalised:!1},sint32x2:{size:2,stride:8,normalised:!1},sint32x3:{size:3,stride:12,normalised:!1},sint32x4:{size:4,stride:16,normalised:!1}}});function oy({source:r,entryPoint:e}){let t={},i=r.indexOf(`fn ${e}`);if(i!==-1){let s=r.indexOf("->",i);if(s!==-1){let n=r.substring(i,s),o=/@location\((\d+)\)\s+([a-zA-Z0-9_]+)\s*:\s*([a-zA-Z0-9_<>]+)(?:,|\s|$)/g,a;for(;(a=o.exec(n))!==null;){let c=BP[a[3]]??"float32";t[a[2]]={location:parseInt(a[1],10),format:c,stride:ut(c).stride,offset:0,instance:!1,start:0}}}}return t}var BP,ay=p(()=>{qi();BP={f32:"float32","vec2<f32>":"float32x2","vec3<f32>":"float32x3","vec4<f32>":"float32x4",vec2f:"float32x2",vec3f:"float32x3",vec4f:"float32x4",i32:"sint32","vec2<i32>":"sint32x2","vec3<i32>":"sint32x3","vec4<i32>":"sint32x4",u32:"uint32","vec2<u32>":"uint32x2","vec3<u32>":"uint32x3","vec4<u32>":"uint32x4",bool:"uint32","vec2<bool>":"uint32x2","vec3<bool>":"uint32x3","vec4<bool>":"uint32x4"}});function Qu(r){let e=/(^|[^/])@(group|binding)\(\d+\)[^;]+;/g,t=/@group\((\d+)\)/,i=/@binding\((\d+)\)/,s=/var(<[^>]+>)? (\w+)/,n=/:\s*(\w+)/,o=/struct\s+(\w+)\s*{([^}]+)}/g,a=/(\w+)\s*:\s*([\w\<\>]+)/g,c=/struct\s+(\w+)/,u=r.match(e)?.map(h=>({group:parseInt(h.match(t)[1],10),binding:parseInt(h.match(i)[1],10),name:h.match(s)[2],isUniform:h.match(s)[1]==="<uniform>",type:h.match(n)[1]}));if(!u)return{groups:[],structs:[]};let l=r.match(o)?.map(h=>{let f=h.match(c)[1],d=h.match(a).reduce((m,x)=>{let[g,_]=x.split(":");return m[g.trim()]=_.trim(),m},{});return d?{name:f,members:d}:null}).filter(({name:h})=>u.some(f=>f.type===h))??[];return{groups:u,structs:l}}var cy=p(()=>{"use strict"});var Gs,uy=p(()=>{"use strict";Gs=(r=>(r[r.VERTEX=1]="VERTEX",r[r.FRAGMENT=2]="FRAGMENT",r[r.COMPUTE=4]="COMPUTE",r))(Gs||{})});function ly({groups:r}){let e=[];for(let t=0;t<r.length;t++){let i=r[t];e[i.group]||(e[i.group]=[]),i.isUniform?e[i.group].push({binding:i.binding,visibility:Gs.VERTEX|Gs.FRAGMENT,buffer:{type:"uniform"}}):i.type==="sampler"?e[i.group].push({binding:i.binding,visibility:Gs.FRAGMENT,sampler:{type:"filtering"}}):i.type==="texture_2d"&&e[i.group].push({binding:i.binding,visibility:Gs.FRAGMENT,texture:{sampleType:"float",viewDimension:"2d",multisampled:!1}})}return e}var hy=p(()=>{uy()});function dy({groups:r}){let e=[];for(let t=0;t<r.length;t++){let i=r[t];e[i.group]||(e[i.group]={}),e[i.group][i.name]=i.binding}return e}var fy=p(()=>{"use strict"});function my(r,e){let t=new Set,i=new Set,s=[...r.structs,...e.structs].filter(o=>t.has(o.name)?!1:(t.add(o.name),!0)),n=[...r.groups,...e.groups].filter(o=>{let a=`${o.name}-${o.binding}`;return i.has(a)?!1:(i.add(a),!0)});return{structs:s,groups:n}}var py=p(()=>{"use strict"});var Mf,Bt,Ns=p(()=>{Bo();ay();cy();hy();fy();py();Mf=Object.create(null),Bt=class r{constructor(e){this._layoutKey=0,this._attributeLocationsKey=0;let{fragment:t,vertex:i,layout:s,gpuLayout:n,name:o}=e;if(this.name=o,this.fragment=t,this.vertex=i,t.source===i.source){let a=Qu(t.source);this.structsAndGroups=a}else{let a=Qu(i.source),c=Qu(t.source);this.structsAndGroups=my(a,c)}this.layout=s??dy(this.structsAndGroups),this.gpuLayout=n??ly(this.structsAndGroups),this.autoAssignGlobalUniforms=this.layout[0]?.globalUniforms!==void 0,this.autoAssignLocalUniforms=this.layout[1]?.localUniforms!==void 0,this._generateProgramKey()}_generateProgramKey(){let{vertex:e,fragment:t}=this,i=e.source+t.source+e.entryPoint+t.entryPoint;this._layoutKey=Er(i,"program")}get attributeData(){return this._attributeData??(this._attributeData=oy(this.vertex)),this._attributeData}destroy(){this.gpuLayout=null,this.layout=null,this.structsAndGroups=null,this.fragment=null,this.vertex=null}static from(e){let t=`${e.vertex.source}:${e.fragment.source}:${e.fragment.entryPoint}:${e.vertex.entryPoint}`;return Mf[t]||(Mf[t]=new r(e)),Mf[t]}}});function If(r,e,t){if(r)for(let i in r){let s=i.toLocaleLowerCase(),n=e[s];if(n){let o=r[i];i==="header"&&(o=o.replace(/@in\s+[^;]+;\s*/g,"").replace(/@out\s+[^;]+;\s*/g,"")),t&&n.push(`//----${t}----//`),n.push(o)}else N(`${i} placement hook does not exist in shader`)}}var gy=p(()=>{pe()});function Ff(r){let e={};return(r.match(RP)?.map(i=>i.replace(/[{()}]/g,""))??[]).forEach(i=>{e[i]=[]}),e}var RP,xy=p(()=>{"use strict";RP=/\{\{(.*?)\}\}/g});function _y(r,e){let t,i=/@in\s+([^;]+);/g;for(;(t=i.exec(r))!==null;)e.push(t[1])}function Uf(r,e,t=!1){let i=[];_y(e,i),r.forEach(a=>{a.header&&_y(a.header,i)});let s=i;t&&s.sort();let n=s.map((a,c)=>` @location(${c}) ${a},`).join(`
36
+ `}var v_=p(()=>{"use strict"});function C_(r,e,t){let i=t?e.maxSupportedFragmentPrecision:e.maxSupportedVertexPrecision;if(r.substring(0,9)!=="precision"){let s=t?e.requestedFragmentPrecision:e.requestedVertexPrecision;return s==="highp"&&i!=="highp"&&(s="mediump"),`precision ${s} float;
37
+ ${r}`}else if(i!=="highp"&&r.substring(0,15)==="precision highp")return r.replace("precision highp","precision mediump");return r}var E_=p(()=>{"use strict"});function k_(r,e){return e?`#version 300 es
38
+ ${r}`:r}var A_=p(()=>{"use strict"});function P_(r,{name:e="pixi-program"},t=!0){e=e.replace(/\s+/g,"-"),e+=t?"-fragment":"-vertex";let i=t?Jk:eA;return i[e]?(i[e]++,e+=`-${i[e]}`):i[e]=1,r.indexOf("#define SHADER_NAME")!==-1?r:`${`#define SHADER_NAME ${e}`}
39
+ ${r}`}var Jk,eA,B_=p(()=>{"use strict";Jk={},eA={}});function R_(r,e){return e?r.replace("#version 300 es",""):r}var D_=p(()=>{"use strict"});var $d,qd,M_,Ct,Ai=p(()=>{no();w_();v_();E_();A_();B_();D_();$d={stripVersion:R_,ensurePrecision:C_,addProgramDefines:S_,setProgramName:P_,insertVersion:k_},qd=Object.create(null),M_=class jd{constructor(e){e={...jd.defaultOptions,...e};let t=e.fragment.indexOf("#version 300 es")!==-1,i={stripVersion:t,ensurePrecision:{requestedFragmentPrecision:e.preferredFragmentPrecision,requestedVertexPrecision:e.preferredVertexPrecision,maxSupportedVertexPrecision:"highp",maxSupportedFragmentPrecision:T_()},setProgramName:{name:e.name},addProgramDefines:t,insertVersion:t},s=e.fragment,n=e.vertex;Object.keys($d).forEach(o=>{let a=i[o];s=$d[o](s,a,!0),n=$d[o](n,a,!1)}),this.fragment=s,this.vertex=n,this.transformFeedbackVaryings=e.transformFeedbackVaryings,this._key=Sr(`${this.vertex}:${this.fragment}`,"gl-program")}destroy(){this.fragment=null,this.vertex=null,this._attributeData=null,this._uniformData=null,this._uniformBlockData=null,this.transformFeedbackVaryings=null}static from(e){let t=`${e.vertex}:${e.fragment}`;return qd[t]||(qd[t]=new jd(e)),qd[t]}};M_.defaultOptions={preferredVertexPrecision:"highp",preferredFragmentPrecision:"mediump"};Ct=M_});function ct(r){return I_[r]??I_.float32}var I_,Pi=p(()=>{"use strict";I_={uint8x2:{size:2,stride:2,normalised:!1},uint8x4:{size:4,stride:4,normalised:!1},sint8x2:{size:2,stride:2,normalised:!1},sint8x4:{size:4,stride:4,normalised:!1},unorm8x2:{size:2,stride:2,normalised:!0},unorm8x4:{size:4,stride:4,normalised:!0},snorm8x2:{size:2,stride:2,normalised:!0},snorm8x4:{size:4,stride:4,normalised:!0},uint16x2:{size:2,stride:4,normalised:!1},uint16x4:{size:4,stride:8,normalised:!1},sint16x2:{size:2,stride:4,normalised:!1},sint16x4:{size:4,stride:8,normalised:!1},unorm16x2:{size:2,stride:4,normalised:!0},unorm16x4:{size:4,stride:8,normalised:!0},snorm16x2:{size:2,stride:4,normalised:!0},snorm16x4:{size:4,stride:8,normalised:!0},float16x2:{size:2,stride:4,normalised:!1},float16x4:{size:4,stride:8,normalised:!1},float32:{size:1,stride:4,normalised:!1},float32x2:{size:2,stride:8,normalised:!1},float32x3:{size:3,stride:12,normalised:!1},float32x4:{size:4,stride:16,normalised:!1},uint32:{size:1,stride:4,normalised:!1},uint32x2:{size:2,stride:8,normalised:!1},uint32x3:{size:3,stride:12,normalised:!1},uint32x4:{size:4,stride:16,normalised:!1},sint32:{size:1,stride:4,normalised:!1},sint32x2:{size:2,stride:8,normalised:!1},sint32x3:{size:3,stride:12,normalised:!1},sint32x4:{size:4,stride:16,normalised:!1}}});function F_({source:r,entryPoint:e}){let t={},i=r.indexOf(`fn ${e}`);if(i!==-1){let s=r.indexOf("->",i);if(s!==-1){let n=r.substring(i,s),o=/@location\((\d+)\)\s+([a-zA-Z0-9_]+)\s*:\s*([a-zA-Z0-9_<>]+)(?:,|\s|$)/g,a;for(;(a=o.exec(n))!==null;){let c=tA[a[3]]??"float32";t[a[2]]={location:parseInt(a[1],10),format:c,stride:ct(c).stride,offset:0,instance:!1,start:0}}}}return t}var tA,U_=p(()=>{Pi();tA={f32:"float32","vec2<f32>":"float32x2","vec3<f32>":"float32x3","vec4<f32>":"float32x4",vec2f:"float32x2",vec3f:"float32x3",vec4f:"float32x4",i32:"sint32","vec2<i32>":"sint32x2","vec3<i32>":"sint32x3","vec4<i32>":"sint32x4",u32:"uint32","vec2<u32>":"uint32x2","vec3<u32>":"uint32x3","vec4<u32>":"uint32x4",bool:"uint32","vec2<bool>":"uint32x2","vec3<bool>":"uint32x3","vec4<bool>":"uint32x4"}});function mu(r){let e=/(^|[^/])@(group|binding)\(\d+\)[^;]+;/g,t=/@group\((\d+)\)/,i=/@binding\((\d+)\)/,s=/var(<[^>]+>)? (\w+)/,n=/:\s*(\w+)/,o=/struct\s+(\w+)\s*{([^}]+)}/g,a=/(\w+)\s*:\s*([\w\<\>]+)/g,c=/struct\s+(\w+)/,u=r.match(e)?.map(h=>({group:parseInt(h.match(t)[1],10),binding:parseInt(h.match(i)[1],10),name:h.match(s)[2],isUniform:h.match(s)[1]==="<uniform>",type:h.match(n)[1]}));if(!u)return{groups:[],structs:[]};let l=r.match(o)?.map(h=>{let f=h.match(c)[1],d=h.match(a).reduce((m,x)=>{let[g,_]=x.split(":");return m[g.trim()]=_.trim(),m},{});return d?{name:f,members:d}:null}).filter(({name:h})=>u.some(f=>f.type===h))??[];return{groups:u,structs:l}}var O_=p(()=>{"use strict"});var _s,G_=p(()=>{"use strict";_s=(r=>(r[r.VERTEX=1]="VERTEX",r[r.FRAGMENT=2]="FRAGMENT",r[r.COMPUTE=4]="COMPUTE",r))(_s||{})});function N_({groups:r}){let e=[];for(let t=0;t<r.length;t++){let i=r[t];e[i.group]||(e[i.group]=[]),i.isUniform?e[i.group].push({binding:i.binding,visibility:_s.VERTEX|_s.FRAGMENT,buffer:{type:"uniform"}}):i.type==="sampler"?e[i.group].push({binding:i.binding,visibility:_s.FRAGMENT,sampler:{type:"filtering"}}):i.type==="texture_2d"&&e[i.group].push({binding:i.binding,visibility:_s.FRAGMENT,texture:{sampleType:"float",viewDimension:"2d",multisampled:!1}})}return e}var L_=p(()=>{G_()});function z_({groups:r}){let e=[];for(let t=0;t<r.length;t++){let i=r[t];e[i.group]||(e[i.group]={}),e[i.group][i.name]=i.binding}return e}var V_=p(()=>{"use strict"});function H_(r,e){let t=new Set,i=new Set,s=[...r.structs,...e.structs].filter(o=>t.has(o.name)?!1:(t.add(o.name),!0)),n=[...r.groups,...e.groups].filter(o=>{let a=`${o.name}-${o.binding}`;return i.has(a)?!1:(i.add(a),!0)});return{structs:s,groups:n}}var W_=p(()=>{"use strict"});var Xd,Et,bs=p(()=>{no();U_();O_();L_();V_();W_();Xd=Object.create(null),Et=class r{constructor(e){this._layoutKey=0,this._attributeLocationsKey=0;let{fragment:t,vertex:i,layout:s,gpuLayout:n,name:o}=e;if(this.name=o,this.fragment=t,this.vertex=i,t.source===i.source){let a=mu(t.source);this.structsAndGroups=a}else{let a=mu(i.source),c=mu(t.source);this.structsAndGroups=H_(a,c)}this.layout=s??z_(this.structsAndGroups),this.gpuLayout=n??N_(this.structsAndGroups),this.autoAssignGlobalUniforms=this.layout[0]?.globalUniforms!==void 0,this.autoAssignLocalUniforms=this.layout[1]?.localUniforms!==void 0,this._generateProgramKey()}_generateProgramKey(){let{vertex:e,fragment:t}=this,i=e.source+t.source+e.entryPoint+t.entryPoint;this._layoutKey=Sr(i,"program")}get attributeData(){return this._attributeData??(this._attributeData=F_(this.vertex)),this._attributeData}destroy(){this.gpuLayout=null,this.layout=null,this.structsAndGroups=null,this.fragment=null,this.vertex=null}static from(e){let t=`${e.vertex.source}:${e.fragment.source}:${e.fragment.entryPoint}:${e.vertex.entryPoint}`;return Xd[t]||(Xd[t]=new r(e)),Xd[t]}}});function Yd(r,e,t){if(r)for(let i in r){let s=i.toLocaleLowerCase(),n=e[s];if(n){let o=r[i];i==="header"&&(o=o.replace(/@in\s+[^;]+;\s*/g,"").replace(/@out\s+[^;]+;\s*/g,"")),t&&n.push(`//----${t}----//`),n.push(o)}else G(`${i} placement hook does not exist in shader`)}}var $_=p(()=>{ge()});function Kd(r){let e={};return(r.match(rA)?.map(i=>i.replace(/[{()}]/g,""))??[]).forEach(i=>{e[i]=[]}),e}var rA,q_=p(()=>{"use strict";rA=/\{\{(.*?)\}\}/g});function j_(r,e){let t,i=/@in\s+([^;]+);/g;for(;(t=i.exec(r))!==null;)e.push(t[1])}function Qd(r,e,t=!1){let i=[];j_(e,i),r.forEach(a=>{a.header&&j_(a.header,i)});let s=i;t&&s.sort();let n=s.map((a,c)=>` @location(${c}) ${a},`).join(`
40
40
  `),o=e.replace(/@in\s+[^;]+;\s*/g,"");return o=o.replace("{{in}}",`
41
41
  ${n}
42
- `),o}var by=p(()=>{"use strict"});function yy(r,e){let t,i=/@out\s+([^;]+);/g;for(;(t=i.exec(r))!==null;)e.push(t[1])}function DP(r){let t=/\b(\w+)\s*:/g.exec(r);return t?t[1]:""}function MP(r){let e=/@.*?\s+/g;return r.replace(e,"")}function Ty(r,e){let t=[];yy(e,t),r.forEach(c=>{c.header&&yy(c.header,t)});let i=0,s=t.sort().map(c=>c.indexOf("builtin")>-1?c:`@location(${i++}) ${c}`).join(`,
43
- `),n=t.sort().map(c=>` var ${MP(c)};`).join(`
42
+ `),o}var X_=p(()=>{"use strict"});function Y_(r,e){let t,i=/@out\s+([^;]+);/g;for(;(t=i.exec(r))!==null;)e.push(t[1])}function iA(r){let t=/\b(\w+)\s*:/g.exec(r);return t?t[1]:""}function sA(r){let e=/@.*?\s+/g;return r.replace(e,"")}function K_(r,e){let t=[];Y_(e,t),r.forEach(c=>{c.header&&Y_(c.header,t)});let i=0,s=t.sort().map(c=>c.indexOf("builtin")>-1?c:`@location(${i++}) ${c}`).join(`,
43
+ `),n=t.sort().map(c=>` var ${sA(c)};`).join(`
44
44
  `),o=`return VSOutput(
45
- ${t.sort().map(c=>` ${DP(c)}`).join(`,
45
+ ${t.sort().map(c=>` ${iA(c)}`).join(`,
46
46
  `)});`,a=e.replace(/@out\s+[^;]+;\s*/g,"");return a=a.replace("{{struct}}",`
47
47
  ${s}
48
48
  `),a=a.replace("{{start}}",`
49
49
  ${n}
50
50
  `),a=a.replace("{{return}}",`
51
51
  ${o}
52
- `),a}var wy=p(()=>{"use strict"});function Of(r,e){let t=r;for(let i in e){let s=e[i];s.join(`
52
+ `),a}var Q_=p(()=>{"use strict"});function Zd(r,e){let t=r;for(let i in e){let s=e[i];s.join(`
53
53
  `).length?t=t.replace(`{{${i}}}`,`//-----${i} START-----//
54
54
  ${s.join(`
55
55
  `)}
56
- //----${i} FINISH----//`):t=t.replace(`{{${i}}}`,"")}return t}var Sy=p(()=>{"use strict"});function vy({template:r,bits:e}){let t=Ey(r,e);if(Kr[t])return Kr[t];let{vertex:i,fragment:s}=FP(r,e);return Kr[t]=ky(i,s,e),Kr[t]}function Cy({template:r,bits:e}){let t=Ey(r,e);return Kr[t]||(Kr[t]=ky(r.vertex,r.fragment,e)),Kr[t]}function FP(r,e){let t=e.map(o=>o.vertex).filter(o=>!!o),i=e.map(o=>o.fragment).filter(o=>!!o),s=Uf(t,r.vertex,!0);s=Ty(t,s);let n=Uf(i,r.fragment,!0);return{vertex:s,fragment:n}}function Ey(r,e){return e.map(t=>(Gf.has(t)||Gf.set(t,IP++),Gf.get(t))).sort((t,i)=>t-i).join("-")+r.vertex+r.fragment}function ky(r,e,t){let i=Ff(r),s=Ff(e);return t.forEach(n=>{If(n.vertex,i,n.name),If(n.fragment,s,n.name)}),{vertex:Of(r,i),fragment:Of(e,s)}}var Kr,Gf,IP,Ay=p(()=>{gy();xy();by();wy();Sy();Kr=Object.create(null),Gf=new Map,IP=0});var Py,By,Ry,Dy,My=p(()=>{"use strict";Py=`
56
+ //----${i} FINISH----//`):t=t.replace(`{{${i}}}`,"")}return t}var Z_=p(()=>{"use strict"});function J_({template:r,bits:e}){let t=tb(r,e);if(jr[t])return jr[t];let{vertex:i,fragment:s}=oA(r,e);return jr[t]=rb(i,s,e),jr[t]}function eb({template:r,bits:e}){let t=tb(r,e);return jr[t]||(jr[t]=rb(r.vertex,r.fragment,e)),jr[t]}function oA(r,e){let t=e.map(o=>o.vertex).filter(o=>!!o),i=e.map(o=>o.fragment).filter(o=>!!o),s=Qd(t,r.vertex,!0);s=K_(t,s);let n=Qd(i,r.fragment,!0);return{vertex:s,fragment:n}}function tb(r,e){return e.map(t=>(Jd.has(t)||Jd.set(t,nA++),Jd.get(t))).sort((t,i)=>t-i).join("-")+r.vertex+r.fragment}function rb(r,e,t){let i=Kd(r),s=Kd(e);return t.forEach(n=>{Yd(n.vertex,i,n.name),Yd(n.fragment,s,n.name)}),{vertex:Zd(r,i),fragment:Zd(e,s)}}var jr,Jd,nA,ib=p(()=>{$_();q_();X_();Q_();Z_();jr=Object.create(null),Jd=new Map,nA=0});var sb,nb,ob,ab,cb=p(()=>{"use strict";sb=`
57
57
  @in aPosition: vec2<f32>;
58
58
  @in aUV: vec2<f32>;
59
59
 
@@ -97,7 +97,7 @@ ${s.join(`
97
97
 
98
98
  {{return}}
99
99
  };
100
- `,By=`
100
+ `,nb=`
101
101
  @in vUV : vec2<f32>;
102
102
  @in vColor : vec4<f32>;
103
103
 
@@ -120,7 +120,7 @@ ${s.join(`
120
120
 
121
121
  return finalColor;
122
122
  };
123
- `,Ry=`
123
+ `,ob=`
124
124
  in vec2 aPosition;
125
125
  in vec2 aUV;
126
126
 
@@ -156,7 +156,7 @@ ${s.join(`
156
156
 
157
157
  {{end}}
158
158
  }
159
- `,Dy=`
159
+ `,ab=`
160
160
 
161
161
  in vec4 vColor;
162
162
  in vec2 vUV;
@@ -177,7 +177,7 @@ ${s.join(`
177
177
 
178
178
  {{end}}
179
179
  }
180
- `});var Iy,Fy,Uy=p(()=>{"use strict";Iy={name:"global-uniforms-bit",vertex:{header:`
180
+ `});var ub,lb,hb=p(()=>{"use strict";ub={name:"global-uniforms-bit",vertex:{header:`
181
181
  struct GlobalUniforms {
182
182
  uProjectionMatrix:mat3x3<f32>,
183
183
  uWorldTransformMatrix:mat3x3<f32>,
@@ -186,22 +186,22 @@ ${s.join(`
186
186
  }
187
187
 
188
188
  @group(0) @binding(0) var<uniform> globalUniforms : GlobalUniforms;
189
- `}},Fy={name:"global-uniforms-bit",vertex:{header:`
189
+ `}},lb={name:"global-uniforms-bit",vertex:{header:`
190
190
  uniform mat3 uProjectionMatrix;
191
191
  uniform mat3 uWorldTransformMatrix;
192
192
  uniform vec4 uWorldColorAlpha;
193
193
  uniform vec2 uResolution;
194
- `}}});function Jt({bits:r,name:e}){let t=vy({template:{fragment:By,vertex:Py},bits:[Iy,...r]});return Bt.from({name:e,vertex:{source:t.vertex,entryPoint:"main"},fragment:{source:t.fragment,entryPoint:"main"}})}function er({bits:r,name:e}){return new Pt({name:e,...Cy({template:{vertex:Ry,fragment:Dy},bits:[Fy,...r]})})}var Qr=p(()=>{$i();Ns();Ay();My();Uy()});var Ls,zs,Ro=p(()=>{"use strict";Ls={name:"color-bit",vertex:{header:`
194
+ `}}});function Yt({bits:r,name:e}){let t=J_({template:{fragment:nb,vertex:sb},bits:[ub,...r]});return Et.from({name:e,vertex:{source:t.vertex,entryPoint:"main"},fragment:{source:t.fragment,entryPoint:"main"}})}function Kt({bits:r,name:e}){return new Ct({name:e,...eb({template:{vertex:ob,fragment:ab},bits:[lb,...r]})})}var Xr=p(()=>{Ai();bs();ib();cb();hb()});var ys,Ts,oo=p(()=>{"use strict";ys={name:"color-bit",vertex:{header:`
195
195
  @in aColor: vec4<f32>;
196
196
  `,main:`
197
197
  vColor *= vec4<f32>(aColor.rgb * aColor.a, aColor.a);
198
- `}},zs={name:"color-bit",vertex:{header:`
198
+ `}},Ts={name:"color-bit",vertex:{header:`
199
199
  in vec4 aColor;
200
200
  `,main:`
201
201
  vColor *= vec4(aColor.rgb * aColor.a, aColor.a);
202
- `}}});function UP(r){let e=[];if(r===1)e.push("@group(1) @binding(0) var textureSource1: texture_2d<f32>;"),e.push("@group(1) @binding(1) var textureSampler1: sampler;");else{let t=0;for(let i=0;i<r;i++)e.push(`@group(1) @binding(${t++}) var textureSource${i+1}: texture_2d<f32>;`),e.push(`@group(1) @binding(${t++}) var textureSampler${i+1}: sampler;`)}return e.join(`
203
- `)}function OP(r){let e=[];if(r===1)e.push("outColor = textureSampleGrad(textureSource1, textureSampler1, vUV, uvDx, uvDy);");else{e.push("switch vTextureId {");for(let t=0;t<r;t++)t===r-1?e.push(" default:{"):e.push(` case ${t}:{`),e.push(` outColor = textureSampleGrad(textureSource${t+1}, textureSampler${t+1}, vUV, uvDx, uvDy);`),e.push(" break;}");e.push("}")}return e.join(`
204
- `)}function Vs(r){return Nf[r]||(Nf[r]={name:"texture-batch-bit",vertex:{header:`
202
+ `}}});function aA(r){let e=[];if(r===1)e.push("@group(1) @binding(0) var textureSource1: texture_2d<f32>;"),e.push("@group(1) @binding(1) var textureSampler1: sampler;");else{let t=0;for(let i=0;i<r;i++)e.push(`@group(1) @binding(${t++}) var textureSource${i+1}: texture_2d<f32>;`),e.push(`@group(1) @binding(${t++}) var textureSampler${i+1}: sampler;`)}return e.join(`
203
+ `)}function cA(r){let e=[];if(r===1)e.push("outColor = textureSampleGrad(textureSource1, textureSampler1, vUV, uvDx, uvDy);");else{e.push("switch vTextureId {");for(let t=0;t<r;t++)t===r-1?e.push(" default:{"):e.push(` case ${t}:{`),e.push(` outColor = textureSampleGrad(textureSource${t+1}, textureSampler${t+1}, vUV, uvDx, uvDy);`),e.push(" break;}");e.push("}")}return e.join(`
204
+ `)}function ws(r){return ef[r]||(ef[r]={name:"texture-batch-bit",vertex:{header:`
205
205
  @in aTextureIdAndRound: vec2<u32>;
206
206
  @out @interpolate(flat) vTextureId : u32;
207
207
  `,main:`
@@ -214,14 +214,14 @@ ${s.join(`
214
214
  `},fragment:{header:`
215
215
  @in @interpolate(flat) vTextureId: u32;
216
216
 
217
- ${UP(r)}
217
+ ${aA(r)}
218
218
  `,main:`
219
219
  var uvDx = dpdx(vUV);
220
220
  var uvDy = dpdy(vUV);
221
221
 
222
- ${OP(r)}
223
- `}}),Nf[r]}function GP(r){let e=[];for(let t=0;t<r;t++)t>0&&e.push("else"),t<r-1&&e.push(`if(vTextureId < ${t}.5)`),e.push("{"),e.push(` outColor = texture(uTextures[${t}], vUV);`),e.push("}");return e.join(`
224
- `)}function Hs(r){return Lf[r]||(Lf[r]={name:"texture-batch-bit",vertex:{header:`
222
+ ${cA(r)}
223
+ `}}),ef[r]}function uA(r){let e=[];for(let t=0;t<r;t++)t>0&&e.push("else"),t<r-1&&e.push(`if(vTextureId < ${t}.5)`),e.push("{"),e.push(` outColor = texture(uTextures[${t}], vUV);`),e.push("}");return e.join(`
224
+ `)}function Ss(r){return tf[r]||(tf[r]={name:"texture-batch-bit",vertex:{header:`
225
225
  in vec2 aTextureIdAndRound;
226
226
  out float vTextureId;
227
227
 
@@ -239,18 +239,18 @@ ${s.join(`
239
239
 
240
240
  `,main:`
241
241
 
242
- ${GP(r)}
243
- `}}),Lf[r]}var Nf,Lf,Do=p(()=>{"use strict";Nf={};Lf={}});var tr,rr,Zr=p(()=>{"use strict";tr={name:"round-pixels-bit",vertex:{header:`
242
+ ${uA(r)}
243
+ `}}),tf[r]}var ef,tf,ao=p(()=>{"use strict";ef={};tf={}});var Qt,Zt,Yr=p(()=>{"use strict";Qt={name:"round-pixels-bit",vertex:{header:`
244
244
  fn roundPixels(position: vec2<f32>, targetSize: vec2<f32>) -> vec2<f32>
245
245
  {
246
246
  return (floor(((position * 0.5 + 0.5) * targetSize) + 0.5) / targetSize) * 2.0 - 1.0;
247
247
  }
248
- `}},rr={name:"round-pixels-bit",vertex:{header:`
248
+ `}},Zt={name:"round-pixels-bit",vertex:{header:`
249
249
  vec2 roundPixels(vec2 position, vec2 targetSize)
250
250
  {
251
251
  return (floor(((position * 0.5 + 0.5) * targetSize) + 0.5) / targetSize) * 2.0 - 1.0;
252
252
  }
253
- `}}});var zf,Oy,Gy=p(()=>{"use strict";zf=["f32","i32","vec2<f32>","vec3<f32>","vec4<f32>","mat2x2<f32>","mat3x3<f32>","mat4x4<f32>","mat3x2<f32>","mat4x2<f32>","mat2x3<f32>","mat4x3<f32>","mat2x4<f32>","mat3x4<f32>","vec2<i32>","vec3<i32>","vec4<i32>"],Oy=zf.reduce((r,e)=>(r[e]=!0,r),{})});function Ny(r,e){switch(r){case"f32":return 0;case"vec2<f32>":return new Float32Array(2*e);case"vec3<f32>":return new Float32Array(3*e);case"vec4<f32>":return new Float32Array(4*e);case"mat2x2<f32>":return new Float32Array([1,0,0,1]);case"mat3x3<f32>":return new Float32Array([1,0,0,0,1,0,0,0,1]);case"mat4x4<f32>":return new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}return null}var Ly=p(()=>{"use strict"});var zy,ce,it=p(()=>{Oe();Bo();Gy();Ly();zy=class Vy{constructor(e,t){this._touched=0,this.uid=K("uniform"),this._resourceType="uniformGroup",this._resourceId=K("resource"),this.isUniformGroup=!0,this._dirtyId=0,this.destroyed=!1,t={...Vy.defaultOptions,...t},this.uniformStructures=e;let i={};for(let s in e){let n=e[s];if(n.name=s,n.size=n.size??1,!Oy[n.type])throw new Error(`Uniform type ${n.type} is not supported. Supported uniform types are: ${zf.join(", ")}`);n.value??(n.value=Ny(n.type,n.size)),i[s]=n.value}this.uniforms=i,this._dirtyId=1,this.ubo=t.ubo,this.isStatic=t.isStatic,this._signature=Er(Object.keys(i).map(s=>`${s}-${e[s].type}`).join("-"),"uniform-group")}update(){this._dirtyId++}};zy.defaultOptions={ubo:!1,isStatic:!1};ce=zy});function Ws(r){let e=Hy[r];if(e)return e;let t=new Int32Array(r);for(let i=0;i<r;i++)t[i]=i;return e=Hy[r]=new ce({uTextures:{value:t,type:"i32",size:r}},{isStatic:!0}),e}var Hy,Zu=p(()=>{it();Hy={}});var Ie,ir=p(()=>{"use strict";Ie=(r=>(r[r.WEBGL=1]="WEBGL",r[r.WEBGPU=2]="WEBGPU",r[r.BOTH=3]="BOTH",r))(Ie||{})});var ke,Ot=p(()=>{Ve();Oe();$i();Xr();Ns();ir();it();ke=class r extends oe{constructor(e){super(),this.uid=K("shader"),this._uniformBindMap=Object.create(null),this._ownedBindGroups=[];let{gpuProgram:t,glProgram:i,groups:s,resources:n,compatibleRenderers:o,groupMap:a}=e;this.gpuProgram=t,this.glProgram=i,o===void 0&&(o=0,t&&(o|=Ie.WEBGPU),i&&(o|=Ie.WEBGL)),this.compatibleRenderers=o;let c={};if(!n&&!s&&(n={}),n&&s)throw new Error("[Shader] Cannot have both resources and groups");if(!t&&s&&!a)throw new Error("[Shader] No group map or WebGPU shader provided - consider using resources instead.");if(!t&&s&&a)for(let u in a)for(let l in a[u]){let h=a[u][l];c[h]={group:u,binding:l,name:h}}else if(t&&s&&!a){let u=t.structsAndGroups.groups;a={},u.forEach(l=>{a[l.group]=a[l.group]||{},a[l.group][l.binding]=l.name,c[l.name]=l})}else if(n){s={},a={},t&&t.structsAndGroups.groups.forEach(h=>{a[h.group]=a[h.group]||{},a[h.group][h.binding]=h.name,c[h.name]=h});let u=0;for(let l in n)c[l]||(s[99]||(s[99]=new Ne,this._ownedBindGroups.push(s[99])),c[l]={group:99,binding:u,name:l},a[99]=a[99]||{},a[99][u]=l,u++);for(let l in n){let h=l,f=n[l];!f.source&&!f._resourceType&&(f=new ce(f));let d=c[h];d&&(s[d.group]||(s[d.group]=new Ne,this._ownedBindGroups.push(s[d.group])),s[d.group].setResource(f,d.binding))}}this.groups=s,this._uniformBindMap=a,this.resources=this._buildResourceAccessor(s,c)}addResource(e,t,i){var s,n;(s=this._uniformBindMap)[t]||(s[t]={}),(n=this._uniformBindMap[t])[i]||(n[i]=e),this.groups[t]||(this.groups[t]=new Ne,this._ownedBindGroups.push(this.groups[t]))}_buildResourceAccessor(e,t){let i={};for(let s in t){let n=t[s];Object.defineProperty(i,n.name,{get(){return e[n.group].getResource(n.binding)},set(o){e[n.group].setResource(o,n.binding)}})}return i}destroy(e=!1){this.emit("destroy",this),e&&(this.gpuProgram?.destroy(),this.glProgram?.destroy()),this.gpuProgram=null,this.glProgram=null,this.removeAllListeners(),this._uniformBindMap=null,this._ownedBindGroups.forEach(t=>{t.destroy()}),this._ownedBindGroups=null,this.resources=null,this.groups=null}static from(e){let{gpu:t,gl:i,...s}=e,n,o;return t&&(n=Bt.from(t)),i&&(o=Pt.from(i)),new r({gpuProgram:n,glProgram:o,...s})}}});var Ju,Wy=p(()=>{Qr();Ro();Do();Zr();Zu();Ot();Ju=class extends ke{constructor(e){let t=er({name:"batch",bits:[zs,Hs(e),rr]}),i=Jt({name:"batch",bits:[Ls,Vs(e),tr]});super({glProgram:t,gpuProgram:i,resources:{batchSamplers:Ws(e)}})}}});var Vf,$y,Mo,Hf=p(()=>{B();Lb();Wb();Wy();Vf=null,$y=class qy extends Nb{constructor(e){super(e),this.geometry=new Yu,this.name=qy.extension.name,this.vertexSize=6,Vf??(Vf=new Ju(e.maxTextures)),this.shader=Vf}packAttributes(e,t,i,s,n){let o=n<<16|e.roundPixels&65535,a=e.transform,c=a.a,u=a.b,l=a.c,h=a.d,f=a.tx,d=a.ty,{positions:m,uvs:x}=e,g=e.color,_=e.attributeOffset,y=_+e.attributeSize;for(let S=_;S<y;S++){let T=S*2,C=m[T],v=m[T+1];t[s++]=c*C+l*v+f,t[s++]=h*v+u*C+d,t[s++]=x[T],t[s++]=x[T+1],i[s++]=g,i[s++]=o}}packQuadAttributes(e,t,i,s,n){let o=e.texture,a=e.transform,c=a.a,u=a.b,l=a.c,h=a.d,f=a.tx,d=a.ty,m=e.bounds,x=m.maxX,g=m.minX,_=m.maxY,y=m.minY,S=o.uvs,T=e.color,C=n<<16|e.roundPixels&65535;t[s+0]=c*g+l*y+f,t[s+1]=h*y+u*g+d,t[s+2]=S.x0,t[s+3]=S.y0,i[s+4]=T,i[s+5]=C,t[s+6]=c*x+l*y+f,t[s+7]=h*y+u*x+d,t[s+8]=S.x1,t[s+9]=S.y1,i[s+10]=T,i[s+11]=C,t[s+12]=c*x+l*_+f,t[s+13]=h*_+u*x+d,t[s+14]=S.x2,t[s+15]=S.y2,i[s+16]=T,i[s+17]=C,t[s+18]=c*g+l*_+f,t[s+19]=h*_+u*g+d,t[s+20]=S.x3,t[s+21]=S.y3,i[s+22]=T,i[s+23]=C}};$y.extension={type:[b.Batcher],name:"default"};Mo=$y});function jy(r,e,t,i,s,n,o,a=null){let c=0;t*=e,s*=n;let u=a.a,l=a.b,h=a.c,f=a.d,d=a.tx,m=a.ty;for(;c<o;){let x=r[t],g=r[t+1];i[s]=u*x+h*g+d,i[s+1]=l*x+f*g+m,s+=n,t+=e,c++}}function Xy(r,e,t,i){let s=0;for(e*=t;s<i;)r[e]=0,r[e+1]=0,e+=t,s++}var Yy=p(()=>{"use strict"});function Wf(r,e,t,i,s){let n=e.a,o=e.b,a=e.c,c=e.d,u=e.tx,l=e.ty;t||(t=0),i||(i=2),s||(s=r.length/i-t);let h=t*i;for(let f=0;f<s;f++){let d=r[h],m=r[h+1];r[h]=n*d+a*m+u,r[h+1]=o*d+c*m+l,h+=i}}var Ky=p(()=>{"use strict"});var NP,ji,$f=p(()=>{te();Fd();NP=new R,ji=class{constructor(){this.packAsQuad=!1,this.batcherName="default",this.topology="triangle-list",this.applyTransform=!0,this.roundPixels=0,this._batcher=null,this._batch=null}get uvs(){return this.geometryData.uvs}get positions(){return this.geometryData.vertices}get indices(){return this.geometryData.indices}get blendMode(){return this.renderable&&this.applyTransform?this.renderable.groupBlendMode:"normal"}get color(){let e=this.baseColor,t=e>>16|e&65280|(e&255)<<16,i=this.renderable;return i?Su(t,i.groupColor)+(this.alpha*i.groupAlpha*255<<24):t+(this.alpha*255<<24)}get transform(){return this.renderable?.groupTransform||NP}copyTo(e){e.indexOffset=this.indexOffset,e.indexSize=this.indexSize,e.attributeOffset=this.attributeOffset,e.attributeSize=this.attributeSize,e.baseColor=this.baseColor,e.alpha=this.alpha,e.texture=this.texture,e.geometryData=this.geometryData,e.topology=this.topology}reset(){this.applyTransform=!0,this.renderable=null,this.topology="triangle-list"}}});var $s,Qy,Zy,Jy=p(()=>{B();$s={extension:{type:b.ShapeBuilder,name:"circle"},build(r,e){let t,i,s,n,o,a;if(r.type==="circle"){let T=r;if(o=a=T.radius,o<=0)return!1;t=T.x,i=T.y,s=n=0}else if(r.type==="ellipse"){let T=r;if(o=T.halfWidth,a=T.halfHeight,o<=0||a<=0)return!1;t=T.x,i=T.y,s=n=0}else{let T=r,C=T.width/2,v=T.height/2;t=T.x+C,i=T.y+v,o=a=Math.max(0,Math.min(T.radius,Math.min(C,v))),s=C-o,n=v-a}if(s<0||n<0)return!1;let c=Math.ceil(2.3*Math.sqrt(o+a)),u=c*8+(s?4:0)+(n?4:0);if(u===0)return!1;if(c===0)return e[0]=e[6]=t+s,e[1]=e[3]=i+n,e[2]=e[4]=t-s,e[5]=e[7]=i-n,!0;let l=0,h=c*4+(s?2:0)+2,f=h,d=u,m=s+o,x=n,g=t+m,_=t-m,y=i+x;if(e[l++]=g,e[l++]=y,e[--h]=y,e[--h]=_,n){let T=i-x;e[f++]=_,e[f++]=T,e[--d]=T,e[--d]=g}for(let T=1;T<c;T++){let C=Math.PI/2*(T/c),v=s+Math.cos(C)*o,E=n+Math.sin(C)*a,D=t+v,A=t-v,P=i+E,k=i-E;e[l++]=D,e[l++]=P,e[--h]=P,e[--h]=A,e[f++]=A,e[f++]=k,e[--d]=k,e[--d]=D}m=s,x=n+a,g=t+m,_=t-m,y=i+x;let S=i-x;return e[l++]=g,e[l++]=y,e[--d]=S,e[--d]=g,s&&(e[l++]=_,e[l++]=y,e[--d]=S,e[--d]=_),!0},triangulate(r,e,t,i,s,n){if(r.length===0)return;let o=0,a=0;for(let l=0;l<r.length;l+=2)o+=r[l],a+=r[l+1];o/=r.length/2,a/=r.length/2;let c=i;e[c*t]=o,e[c*t+1]=a;let u=c++;for(let l=0;l<r.length;l+=2)e[c*t]=r[l],e[c*t+1]=r[l+1],l>0&&(s[n++]=c,s[n++]=u,s[n++]=c-1),c++;s[n++]=u+1,s[n++]=u,s[n++]=c-1}},Qy={...$s,extension:{...$s.extension,name:"ellipse"}},Zy={...$s,extension:{...$s.extension,name:"roundedRectangle"}}});function e2(r){let e=r.length;if(e<6)return 1;let t=0;for(let i=0,s=r[e-2],n=r[e-1];i<e;i+=2){let o=r[i],a=r[i+1];t+=(o-s)*(a+n),s=o,n=a}return t<0?-1:1}var t2=p(()=>{"use strict"});function r2(r,e,t,i,s,n,o,a){let c=r-t*s,u=e-i*s,l=r+t*n,h=e+i*n,f,d;o?(f=i,d=-t):(f=-i,d=t);let m=c+f,x=u+d,g=l+f,_=h+d;return a.push(m,x),a.push(g,_),2}function Xi(r,e,t,i,s,n,o,a){let c=t-r,u=i-e,l=Math.atan2(c,u),h=Math.atan2(s-r,n-e);a&&l<h?l+=Math.PI*2:!a&&l>h&&(h+=Math.PI*2);let f=l,d=h-l,m=Math.abs(d),x=Math.sqrt(c*c+u*u),g=(15*m*Math.sqrt(x)/Math.PI>>0)+1,_=d/g;if(f+=_,a){o.push(r,e),o.push(t,i);for(let y=1,S=f;y<g;y++,S+=_)o.push(r,e),o.push(r+Math.sin(S)*x,e+Math.cos(S)*x);o.push(r,e),o.push(s,n)}else{o.push(t,i),o.push(r,e);for(let y=1,S=f;y<g;y++,S+=_)o.push(r+Math.sin(S)*x,e+Math.cos(S)*x),o.push(r,e);o.push(s,n),o.push(r,e)}return g*2}function i2(r,e,t,i,s,n){let o=1e-4;if(r.length===0)return;let a=e,c=a.alignment;if(e.alignment!==.5){let de=e2(r);t&&(de*=-1),c=(c-.5)*de+.5}let u=new J(r[0],r[1]),l=new J(r[r.length-2],r[r.length-1]),h=i,f=Math.abs(u.x-l.x)<o&&Math.abs(u.y-l.y)<o;if(h){r=r.slice(),f&&(r.pop(),r.pop(),l.set(r[r.length-2],r[r.length-1]));let de=(u.x+l.x)*.5,Ir=(l.y+u.y)*.5;r.unshift(de,Ir),r.push(de,Ir)}let d=s,m=r.length/2,x=r.length,g=d.length/2,_=a.width/2,y=_*_,S=a.miterLimit*a.miterLimit,T=r[0],C=r[1],v=r[2],E=r[3],D=0,A=0,P=-(C-E),k=T-v,G=0,j=0,be=Math.sqrt(P*P+k*k);P/=be,k/=be,P*=_,k*=_;let Tt=c,U=(1-Tt)*2,H=Tt*2;h||(a.cap==="round"?x+=Xi(T-P*(U-H)*.5,C-k*(U-H)*.5,T-P*U,C-k*U,T+P*H,C+k*H,d,!0)+2:a.cap==="square"&&(x+=r2(T,C,P,k,U,H,!0,d))),d.push(T-P*U,C-k*U),d.push(T+P*H,C+k*H);for(let de=1;de<m-1;++de){T=r[(de-1)*2],C=r[(de-1)*2+1],v=r[de*2],E=r[de*2+1],D=r[(de+1)*2],A=r[(de+1)*2+1],P=-(C-E),k=T-v,be=Math.sqrt(P*P+k*k),P/=be,k/=be,P*=_,k*=_,G=-(E-A),j=v-D,be=Math.sqrt(G*G+j*j),G/=be,j/=be,G*=_,j*=_;let Ir=v-T,kn=C-E,An=v-D,Pn=A-E,xg=Ir*An+kn*Pn,hc=kn*An-Pn*Ir,Bn=hc<0;if(Math.abs(hc)<.001*Math.abs(xg)){d.push(v-P*U,E-k*U),d.push(v+P*H,E+k*H),xg>=0&&(a.join==="round"?x+=Xi(v,E,v-P*U,E-k*U,v-G*U,E-j*U,d,!1)+4:x+=2,d.push(v-G*H,E-j*H),d.push(v+G*U,E+j*U));continue}let _g=(-P+T)*(-k+E)-(-P+v)*(-k+C),bg=(-G+D)*(-j+E)-(-G+v)*(-j+A),dc=(Ir*bg-An*_g)/hc,fc=(Pn*_g-kn*bg)/hc,Sh=(dc-v)*(dc-v)+(fc-E)*(fc-E),oi=v+(dc-v)*U,ai=E+(fc-E)*U,ci=v-(dc-v)*H,ui=E-(fc-E)*H,LE=Math.min(Ir*Ir+kn*kn,An*An+Pn*Pn),yg=Bn?U:H,zE=LE+yg*yg*y;Sh<=zE?a.join==="bevel"||Sh/y>S?(Bn?(d.push(oi,ai),d.push(v+P*H,E+k*H),d.push(oi,ai),d.push(v+G*H,E+j*H)):(d.push(v-P*U,E-k*U),d.push(ci,ui),d.push(v-G*U,E-j*U),d.push(ci,ui)),x+=2):a.join==="round"?Bn?(d.push(oi,ai),d.push(v+P*H,E+k*H),x+=Xi(v,E,v+P*H,E+k*H,v+G*H,E+j*H,d,!0)+4,d.push(oi,ai),d.push(v+G*H,E+j*H)):(d.push(v-P*U,E-k*U),d.push(ci,ui),x+=Xi(v,E,v-P*U,E-k*U,v-G*U,E-j*U,d,!1)+4,d.push(v-G*U,E-j*U),d.push(ci,ui)):(d.push(oi,ai),d.push(ci,ui)):(d.push(v-P*U,E-k*U),d.push(v+P*H,E+k*H),a.join==="round"?Bn?x+=Xi(v,E,v+P*H,E+k*H,v+G*H,E+j*H,d,!0)+2:x+=Xi(v,E,v-P*U,E-k*U,v-G*U,E-j*U,d,!1)+2:a.join==="miter"&&Sh/y<=S&&(Bn?(d.push(ci,ui),d.push(ci,ui)):(d.push(oi,ai),d.push(oi,ai)),x+=2),d.push(v-G*U,E-j*U),d.push(v+G*H,E+j*H),x+=2)}T=r[(m-2)*2],C=r[(m-2)*2+1],v=r[(m-1)*2],E=r[(m-1)*2+1],P=-(C-E),k=T-v,be=Math.sqrt(P*P+k*k),P/=be,k/=be,P*=_,k*=_,d.push(v-P*U,E-k*U),d.push(v+P*H,E+k*H),h||(a.cap==="round"?x+=Xi(v-P*(U-H)*.5,E-k*(U-H)*.5,v-P*U,E-k*U,v+P*H,E+k*H,d,!1)+2:a.cap==="square"&&(x+=r2(v,E,P,k,U,H,!1,d)));let wh=1e-4*1e-4;for(let de=g;de<x+g-2;++de)T=d[de*2],C=d[de*2+1],v=d[(de+1)*2],E=d[(de+1)*2+1],D=d[(de+2)*2],A=d[(de+2)*2+1],!(Math.abs(T*(E-A)+v*(A-C)+D*(C-E))<wh)&&n.push(de,de+1,de+2)}var s2=p(()=>{Ft();t2()});function n2(r,e,t,i){let s=1e-4;if(r.length===0)return;let n=r[0],o=r[1],a=r[r.length-2],c=r[r.length-1],u=e||Math.abs(n-a)<s&&Math.abs(o-c)<s,l=t,h=r.length/2,f=l.length/2;for(let d=0;d<h;d++)l.push(r[d*2]),l.push(r[d*2+1]);for(let d=0;d<h-1;d++)i.push(f+d,f+d+1);u&&i.push(f+h-1,f)}var o2=p(()=>{});function rl(r,e,t=2){let i=e&&e.length,s=i?e[0]*t:r.length,n=c2(r,0,s,t,!0),o=[];if(!n||n.next===n.prev)return o;let a,c,u;if(i&&(n=qP(r,e,n,t)),r.length>80*t){a=1/0,c=1/0;let l=-1/0,h=-1/0;for(let f=t;f<s;f+=t){let d=r[f],m=r[f+1];d<a&&(a=d),m<c&&(c=m),d>l&&(l=d),m>h&&(h=m)}u=Math.max(l-a,h-c),u=u!==0?32767/u:0}return Fo(n,o,t,a,c,u,0),o}function c2(r,e,t,i,s){let n;if(s===iB(r,e,t,i)>0)for(let o=e;o<t;o+=i)n=a2(o/i|0,r[o],r[o+1],n);else for(let o=t-i;o>=e;o-=i)n=a2(o/i|0,r[o],r[o+1],n);return n&&qs(n,n.next)&&(Oo(n),n=n.next),n}function Yi(r,e){if(!r)return r;e||(e=r);let t=r,i;do if(i=!1,!t.steiner&&(qs(t,t.next)||Se(t.prev,t,t.next)===0)){if(Oo(t),t=e=t.prev,t===t.next)break;i=!0}else t=t.next;while(i||t!==e);return e}function Fo(r,e,t,i,s,n,o){if(!r)return;!o&&n&&QP(r,i,s,n);let a=r;for(;r.prev!==r.next;){let c=r.prev,u=r.next;if(n?HP(r,i,s,n):VP(r)){e.push(c.i,r.i,u.i),Oo(r),r=u.next,a=u.next;continue}if(r=u,r===a){o?o===1?(r=WP(Yi(r),e),Fo(r,e,t,i,s,n,2)):o===2&&$P(r,e,t,i,s,n):Fo(Yi(r),e,t,i,s,n,1);break}}}function VP(r){let e=r.prev,t=r,i=r.next;if(Se(e,t,i)>=0)return!1;let s=e.x,n=t.x,o=i.x,a=e.y,c=t.y,u=i.y,l=Math.min(s,n,o),h=Math.min(a,c,u),f=Math.max(s,n,o),d=Math.max(a,c,u),m=i.next;for(;m!==e;){if(m.x>=l&&m.x<=f&&m.y>=h&&m.y<=d&&Io(s,a,n,c,o,u,m.x,m.y)&&Se(m.prev,m,m.next)>=0)return!1;m=m.next}return!0}function HP(r,e,t,i){let s=r.prev,n=r,o=r.next;if(Se(s,n,o)>=0)return!1;let a=s.x,c=n.x,u=o.x,l=s.y,h=n.y,f=o.y,d=Math.min(a,c,u),m=Math.min(l,h,f),x=Math.max(a,c,u),g=Math.max(l,h,f),_=qf(d,m,e,t,i),y=qf(x,g,e,t,i),S=r.prevZ,T=r.nextZ;for(;S&&S.z>=_&&T&&T.z<=y;){if(S.x>=d&&S.x<=x&&S.y>=m&&S.y<=g&&S!==s&&S!==o&&Io(a,l,c,h,u,f,S.x,S.y)&&Se(S.prev,S,S.next)>=0||(S=S.prevZ,T.x>=d&&T.x<=x&&T.y>=m&&T.y<=g&&T!==s&&T!==o&&Io(a,l,c,h,u,f,T.x,T.y)&&Se(T.prev,T,T.next)>=0))return!1;T=T.nextZ}for(;S&&S.z>=_;){if(S.x>=d&&S.x<=x&&S.y>=m&&S.y<=g&&S!==s&&S!==o&&Io(a,l,c,h,u,f,S.x,S.y)&&Se(S.prev,S,S.next)>=0)return!1;S=S.prevZ}for(;T&&T.z<=y;){if(T.x>=d&&T.x<=x&&T.y>=m&&T.y<=g&&T!==s&&T!==o&&Io(a,l,c,h,u,f,T.x,T.y)&&Se(T.prev,T,T.next)>=0)return!1;T=T.nextZ}return!0}function WP(r,e){let t=r;do{let i=t.prev,s=t.next.next;!qs(i,s)&&l2(i,t,t.next,s)&&Uo(i,s)&&Uo(s,i)&&(e.push(i.i,t.i,s.i),Oo(t),Oo(t.next),t=r=s),t=t.next}while(t!==r);return Yi(t)}function $P(r,e,t,i,s,n){let o=r;do{let a=o.next.next;for(;a!==o.prev;){if(o.i!==a.i&&eB(o,a)){let c=h2(o,a);o=Yi(o,o.next),c=Yi(c,c.next),Fo(o,e,t,i,s,n,0),Fo(c,e,t,i,s,n,0);return}a=a.next}o=o.next}while(o!==r)}function qP(r,e,t,i){let s=[];for(let n=0,o=e.length;n<o;n++){let a=e[n]*i,c=n<o-1?e[n+1]*i:r.length,u=c2(r,a,c,i,!1);u===u.next&&(u.steiner=!0),s.push(JP(u))}s.sort(jP);for(let n=0;n<s.length;n++)t=XP(s[n],t);return t}function jP(r,e){let t=r.x-e.x;if(t===0&&(t=r.y-e.y,t===0)){let i=(r.next.y-r.y)/(r.next.x-r.x),s=(e.next.y-e.y)/(e.next.x-e.x);t=i-s}return t}function XP(r,e){let t=YP(r,e);if(!t)return e;let i=h2(t,r);return Yi(i,i.next),Yi(t,t.next)}function YP(r,e){let t=e,i=r.x,s=r.y,n=-1/0,o;if(qs(r,t))return t;do{if(qs(r,t.next))return t.next;if(s<=t.y&&s>=t.next.y&&t.next.y!==t.y){let h=t.x+(s-t.y)*(t.next.x-t.x)/(t.next.y-t.y);if(h<=i&&h>n&&(n=h,o=t.x<t.next.x?t:t.next,h===i))return o}t=t.next}while(t!==e);if(!o)return null;let a=o,c=o.x,u=o.y,l=1/0;t=o;do{if(i>=t.x&&t.x>=c&&i!==t.x&&u2(s<u?i:n,s,c,u,s<u?n:i,s,t.x,t.y)){let h=Math.abs(s-t.y)/(i-t.x);Uo(t,r)&&(h<l||h===l&&(t.x>o.x||t.x===o.x&&KP(o,t)))&&(o=t,l=h)}t=t.next}while(t!==a);return o}function KP(r,e){return Se(r.prev,r,e.prev)<0&&Se(e.next,r,r.next)<0}function QP(r,e,t,i){let s=r;do s.z===0&&(s.z=qf(s.x,s.y,e,t,i)),s.prevZ=s.prev,s.nextZ=s.next,s=s.next;while(s!==r);s.prevZ.nextZ=null,s.prevZ=null,ZP(s)}function ZP(r){let e,t=1;do{let i=r,s;r=null;let n=null;for(e=0;i;){e++;let o=i,a=0;for(let u=0;u<t&&(a++,o=o.nextZ,!!o);u++);let c=t;for(;a>0||c>0&&o;)a!==0&&(c===0||!o||i.z<=o.z)?(s=i,i=i.nextZ,a--):(s=o,o=o.nextZ,c--),n?n.nextZ=s:r=s,s.prevZ=n,n=s;i=o}n.nextZ=null,t*=2}while(e>1);return r}function qf(r,e,t,i,s){return r=(r-t)*s|0,e=(e-i)*s|0,r=(r|r<<8)&16711935,r=(r|r<<4)&252645135,r=(r|r<<2)&858993459,r=(r|r<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,r|e<<1}function JP(r){let e=r,t=r;do(e.x<t.x||e.x===t.x&&e.y<t.y)&&(t=e),e=e.next;while(e!==r);return t}function u2(r,e,t,i,s,n,o,a){return(s-o)*(e-a)>=(r-o)*(n-a)&&(r-o)*(i-a)>=(t-o)*(e-a)&&(t-o)*(n-a)>=(s-o)*(i-a)}function Io(r,e,t,i,s,n,o,a){return!(r===o&&e===a)&&u2(r,e,t,i,s,n,o,a)}function eB(r,e){return r.next.i!==e.i&&r.prev.i!==e.i&&!tB(r,e)&&(Uo(r,e)&&Uo(e,r)&&rB(r,e)&&(Se(r.prev,r,e.prev)||Se(r,e.prev,e))||qs(r,e)&&Se(r.prev,r,r.next)>0&&Se(e.prev,e,e.next)>0)}function Se(r,e,t){return(e.y-r.y)*(t.x-e.x)-(e.x-r.x)*(t.y-e.y)}function qs(r,e){return r.x===e.x&&r.y===e.y}function l2(r,e,t,i){let s=tl(Se(r,e,t)),n=tl(Se(r,e,i)),o=tl(Se(t,i,r)),a=tl(Se(t,i,e));return!!(s!==n&&o!==a||s===0&&el(r,t,e)||n===0&&el(r,i,e)||o===0&&el(t,r,i)||a===0&&el(t,e,i))}function el(r,e,t){return e.x<=Math.max(r.x,t.x)&&e.x>=Math.min(r.x,t.x)&&e.y<=Math.max(r.y,t.y)&&e.y>=Math.min(r.y,t.y)}function tl(r){return r>0?1:r<0?-1:0}function tB(r,e){let t=r;do{if(t.i!==r.i&&t.next.i!==r.i&&t.i!==e.i&&t.next.i!==e.i&&l2(t,t.next,r,e))return!0;t=t.next}while(t!==r);return!1}function Uo(r,e){return Se(r.prev,r,r.next)<0?Se(r,e,r.next)>=0&&Se(r,r.prev,e)>=0:Se(r,e,r.prev)<0||Se(r,r.next,e)<0}function rB(r,e){let t=r,i=!1,s=(r.x+e.x)/2,n=(r.y+e.y)/2;do t.y>n!=t.next.y>n&&t.next.y!==t.y&&s<(t.next.x-t.x)*(n-t.y)/(t.next.y-t.y)+t.x&&(i=!i),t=t.next;while(t!==r);return i}function h2(r,e){let t=jf(r.i,r.x,r.y),i=jf(e.i,e.x,e.y),s=r.next,n=e.prev;return r.next=e,e.prev=r,t.next=s,s.prev=t,i.next=t,t.prev=i,n.next=i,i.prev=n,i}function a2(r,e,t,i){let s=jf(r,e,t);return i?(s.next=i.next,s.prev=i,i.next.prev=s,i.next=s):(s.prev=s,s.next=s),s}function Oo(r){r.next.prev=r.prev,r.prev.next=r.next,r.prevZ&&(r.prevZ.nextZ=r.nextZ),r.nextZ&&(r.nextZ.prevZ=r.prevZ)}function jf(r,e,t){return{i:r,x:e,y:t,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:!1}}function iB(r,e,t,i){let s=0;for(let n=e,o=t-i;n<t;n+=i)s+=(r[o]-r[n])*(r[n+1]+r[o+1]),o=n;return s}var d2=p(()=>{});var f2,m2=p(()=>{d2();Ve();f2=rl.default||rl});function il(r,e,t,i,s,n,o){let a=f2(r,e,2);if(!a)return;for(let u=0;u<a.length;u+=3)n[o++]=a[u]+s,n[o++]=a[u+1]+s,n[o++]=a[u+2]+s;let c=s*i;for(let u=0;u<r.length;u+=2)t[c]=r[u],t[c+1]=r[u+1],c+=i}var Xf=p(()=>{m2()});var sB,p2,g2=p(()=>{B();Xf();sB=[],p2={extension:{type:b.ShapeBuilder,name:"polygon"},build(r,e){for(let t=0;t<r.points.length;t++)e[t]=r.points[t];return!0},triangulate(r,e,t,i,s,n){il(r,sB,e,t,i,s,n)}}});var x2,_2=p(()=>{B();x2={extension:{type:b.ShapeBuilder,name:"rectangle"},build(r,e){let t=r,i=t.x,s=t.y,n=t.width,o=t.height;return n>0&&o>0?(e[0]=i,e[1]=s,e[2]=i+n,e[3]=s,e[4]=i+n,e[5]=s+o,e[6]=i,e[7]=s+o,!0):!1},triangulate(r,e,t,i,s,n){let o=0;i*=t,e[i+o]=r[0],e[i+o+1]=r[1],o+=t,e[i+o]=r[2],e[i+o+1]=r[3],o+=t,e[i+o]=r[6],e[i+o+1]=r[7],o+=t,e[i+o]=r[4],e[i+o+1]=r[5],o+=t;let a=i/t;s[n++]=a,s[n++]=a+1,s[n++]=a+2,s[n++]=a+1,s[n++]=a+3,s[n++]=a+2}}});var b2,y2=p(()=>{B();b2={extension:{type:b.ShapeBuilder,name:"triangle"},build(r,e){return e[0]=r.x,e[1]=r.y,e[2]=r.x2,e[3]=r.y2,e[4]=r.x3,e[5]=r.y3,!0},triangulate(r,e,t,i,s,n){let o=0;i*=t,e[i+o]=r[0],e[i+o+1]=r[1],o+=t,e[i+o]=r[2],e[i+o+1]=r[3],o+=t,e[i+o]=r[4],e[i+o+1]=r[5];let a=i/t;s[n++]=a,s[n++]=a+1,s[n++]=a+2}}});function w2(r,e){for(let t=0;t<e.length;t++){let i=e[t];r.addColorStop(i.offset,i.color)}}function S2(r,e){let t=W.get().createCanvas(r,e),i=t.getContext("2d");return{canvas:t,context:i}}function nB(r){let e=r[0]??{};return(typeof e=="number"||r[1])&&(z("8.5.2","use options object instead"),e={type:"linear",start:{x:r[0],y:r[1]},end:{x:r[2],y:r[3]},textureSpace:r[4],textureSize:r[5]??lt.defaultLinearOptions.textureSize}),e}var T2,Kf,lt,js=p(()=>{He();Ce();te();zu();le();Oe();ye();Ld();T2=[{offset:0,color:"white"},{offset:1,color:"black"}],Kf=class Yf{constructor(...e){this.uid=K("fillGradient"),this.type="linear",this.colorStops=[];let t=nB(e);t={...t.type==="radial"?Yf.defaultRadialOptions:Yf.defaultLinearOptions,...Cu(t)},this._textureSize=t.textureSize,this._wrapMode=t.wrapMode,t.type==="radial"?(this.center=t.center,this.outerCenter=t.outerCenter??this.center,this.innerRadius=t.innerRadius,this.outerRadius=t.outerRadius,this.scale=t.scale,this.rotation=t.rotation):(this.start=t.start,this.end=t.end),this.textureSpace=t.textureSpace,this.type=t.type,t.colorStops.forEach(s=>{this.addColorStop(s.offset,s.color)})}addColorStop(e,t){return this.colorStops.push({offset:e,color:q.shared.setValue(t).toHexa()}),this}buildLinearGradient(){if(this.texture)return;let{x:e,y:t}=this.start,{x:i,y:s}=this.end,n=i-e,o=s-t,a=n<0||o<0;if(this._wrapMode==="clamp-to-edge"){if(n<0){let g=e;e=i,i=g,n*=-1}if(o<0){let g=t;t=s,s=g,o*=-1}}let c=this.colorStops.length?this.colorStops:T2,u=this._textureSize,{canvas:l,context:h}=S2(u,1),f=a?h.createLinearGradient(this._textureSize,0,0,0):h.createLinearGradient(0,0,this._textureSize,0);w2(f,c),h.fillStyle=f,h.fillRect(0,0,u,1),this.texture=new M({source:new Qt({resource:l,addressMode:this._wrapMode})});let d=Math.sqrt(n*n+o*o),m=Math.atan2(o,n),x=new R;x.scale(d/u,1),x.rotate(m),x.translate(e,t),this.textureSpace==="local"&&x.scale(u,u),this.transform=x}buildGradient(){this.type==="linear"?this.buildLinearGradient():this.buildRadialGradient()}buildRadialGradient(){if(this.texture)return;let e=this.colorStops.length?this.colorStops:T2,t=this._textureSize,{canvas:i,context:s}=S2(t,t),{x:n,y:o}=this.center,{x:a,y:c}=this.outerCenter,u=this.innerRadius,l=this.outerRadius,h=a-l,f=c-l,d=t/(l*2),m=(n-h)*d,x=(o-f)*d,g=s.createRadialGradient(m,x,u*d,(a-h)*d,(c-f)*d,l*d);w2(g,e),s.fillStyle=e[e.length-1].color,s.fillRect(0,0,t,t),s.fillStyle=g,s.translate(m,x),s.rotate(this.rotation),s.scale(1,this.scale),s.translate(-m,-x),s.fillRect(0,0,t,t),this.texture=new M({source:new Qt({resource:i,addressMode:this._wrapMode})});let _=new R;_.scale(1/d,1/d),_.translate(h,f),this.textureSpace==="local"&&_.scale(t,t),this.transform=_}get styleKey(){return this.uid}destroy(){this.texture?.destroy(!0),this.texture=null}};Kf.defaultLinearOptions={start:{x:0,y:0},end:{x:0,y:1},colorStops:[],textureSpace:"local",type:"linear",textureSize:256,wrapMode:"clamp-to-edge"};Kf.defaultRadialOptions={center:{x:.5,y:.5},innerRadius:0,outerRadius:.5,colorStops:[],scale:1,textureSpace:"local",type:"radial",textureSize:256,wrapMode:"clamp-to-edge"};lt=Kf});function v2(r,e,t,i){let s=e.matrix?r.copyFrom(e.matrix).invert():r.identity();if(e.textureSpace==="local"){let o=t.getBounds(aB);e.width&&o.pad(e.width);let{x:a,y:c}=o,u=1/o.width,l=1/o.height,h=-a*u,f=-c*l,d=s.a,m=s.b,x=s.c,g=s.d;s.a*=u,s.b*=u,s.c*=l,s.d*=l,s.tx=h*d+f*x+s.tx,s.ty=h*m+f*g+s.ty}else s.translate(e.texture.frame.x,e.texture.frame.y),s.scale(1/e.texture.source.width,1/e.texture.source.height);let n=e.texture.source.style;return!(e.fill instanceof lt)&&n.addressMode==="clamp-to-edge"&&(n.addressMode="repeat",n.update()),i&&s.append(oB.copyFrom(i).invert()),s}var oB,aB,C2=p(()=>{te();Ge();js();oB=new R,aB=new Y});function k2(r,e){let{geometryData:t,batches:i}=e;i.length=0,t.indices.length=0,t.vertices.length=0,t.uvs.length=0;for(let s=0;s<r.instructions.length;s++){let n=r.instructions[s];if(n.action==="texture")lB(n.data,i,t);else if(n.action==="fill"||n.action==="stroke"){let o=n.action==="stroke",a=n.data.path.shapePath,c=n.data.style,u=n.data.hole;o&&u&&E2(u.shapePath,c,!0,i,t),u&&(a.shapePrimitives[a.shapePrimitives.length-1].holes=u.shapePath.shapePrimitives),E2(a,c,o,i,t)}}}function lB(r,e,t){let i=[],s=sl.rectangle,n=cB;n.x=r.dx,n.y=r.dy,n.width=r.dw,n.height=r.dh;let o=r.transform;if(!s.build(n,i))return;let{vertices:a,uvs:c,indices:u}=t,l=u.length,h=a.length/2;o&&Wf(i,o),s.triangulate(i,a,2,h,u,l);let f=r.image,d=f.uvs;c.push(d.x0,d.y0,d.x1,d.y1,d.x3,d.y3,d.x2,d.y2);let m=me.get(ji);m.indexOffset=l,m.indexSize=u.length-l,m.attributeOffset=h,m.attributeSize=a.length/2-h,m.baseColor=r.style,m.alpha=r.alpha,m.texture=f,m.geometryData=t,e.push(m)}function E2(r,e,t,i,s){let{vertices:n,uvs:o,indices:a}=s;r.shapePrimitives.forEach(({shape:c,transform:u,holes:l})=>{let h=[],f=sl[c.type];if(!f.build(c,h))return;let d=a.length,m=n.length/2,x="triangle-list";if(u&&Wf(h,u),t){let S=c.closePath??!0,T=e;T.pixelLine?(n2(h,S,n,a),x="line-list"):i2(h,T,!1,S,n,a)}else if(l){let S=[],T=h.slice();hB(l).forEach(v=>{S.push(T.length/2),T.push(...v)}),il(T,S,n,2,m,a,d)}else f.triangulate(h,n,2,m,a,d);let g=o.length/2,_=e.texture;if(_!==M.WHITE){let S=v2(uB,e,c,u);jy(n,2,m,o,g,2,n.length/2-m,S)}else Xy(o,g,2,n.length/2-m);let y=me.get(ji);y.indexOffset=d,y.indexSize=a.length-d,y.attributeOffset=m,y.attributeSize=n.length/2-m,y.baseColor=e.color,y.alpha=e.alpha,y.texture=_,y.geometryData=s,y.topology=x,i.push(y)})}function hB(r){let e=[];for(let t=0;t<r.length;t++){let i=r[t].shape,s=[];sl[i.type].build(i,s)&&e.push(s)}return e}var sl,cB,uB,A2=p(()=>{B();te();Ge();Yy();Ky();le();br();$f();Jy();s2();o2();g2();_2();y2();C2();Xf();sl={};O.handleByMap(b.ShapeBuilder,sl);O.add(x2,p2,b2,$s,Qy,Zy);cB=new Y,uB=new R});var Qf,Zf,em,Xs,nl=p(()=>{B();Wu();Hf();Gd();ye();br();A2();Qf=class{constructor(){this.batches=[],this.geometryData={vertices:[],uvs:[],indices:[]}}},Zf=class{constructor(){this.instructions=new Ps}init(e){this.batcher=new Mo({maxTextures:e}),this.instructions.reset()}get geometry(){return z(U0,"GraphicsContextRenderData#geometry is deprecated, please use batcher.geometry instead."),this.batcher.geometry}},em=class Jf{constructor(e){this._gpuContextHash={},this._graphicsDataContextHash=Object.create(null),this._renderer=e,e.renderableGC.addManagedHash(this,"_gpuContextHash"),e.renderableGC.addManagedHash(this,"_graphicsDataContextHash")}init(e){Jf.defaultOptions.bezierSmoothness=e?.bezierSmoothness??Jf.defaultOptions.bezierSmoothness}getContextRenderData(e){return this._graphicsDataContextHash[e.uid]||this._initContextRenderData(e)}updateGpuContext(e){let t=this._gpuContextHash[e.uid]||this._initContext(e);if(e.dirty){t?this._cleanGraphicsContextData(e):t=this._initContext(e),k2(e,t);let i=e.batchMode;e.customShader||i==="no-batch"?t.isBatchable=!1:i==="auto"?t.isBatchable=t.geometryData.vertices.length<400:t.isBatchable=!0,e.dirty=!1}return t}getGpuContext(e){return this._gpuContextHash[e.uid]||this._initContext(e)}_initContextRenderData(e){let t=me.get(Zf,{maxTextures:this._renderer.limits.maxBatchableTextures}),{batches:i,geometryData:s}=this._gpuContextHash[e.uid],n=s.vertices.length,o=s.indices.length;for(let l=0;l<i.length;l++)i[l].applyTransform=!1;let a=t.batcher;a.ensureAttributeBuffer(n),a.ensureIndexBuffer(o),a.begin();for(let l=0;l<i.length;l++){let h=i[l];a.add(h)}a.finish(t.instructions);let c=a.geometry;c.indexBuffer.setDataWithSize(a.indexBuffer,a.indexSize,!0),c.buffers[0].setDataWithSize(a.attributeBuffer.float32View,a.attributeSize,!0);let u=a.batches;for(let l=0;l<u.length;l++){let h=u[l];h.bindGroup=Fs(h.textures.textures,h.textures.count,this._renderer.limits.maxBatchableTextures)}return this._graphicsDataContextHash[e.uid]=t,t}_initContext(e){let t=new Qf;return t.context=e,this._gpuContextHash[e.uid]=t,e.on("destroy",this.onGraphicsContextDestroy,this),this._gpuContextHash[e.uid]}onGraphicsContextDestroy(e){this._cleanGraphicsContextData(e),e.off("destroy",this.onGraphicsContextDestroy,this),this._gpuContextHash[e.uid]=null}_cleanGraphicsContextData(e){let t=this._gpuContextHash[e.uid];t.isBatchable||this._graphicsDataContextHash[e.uid]&&(me.return(this.getContextRenderData(e)),this._graphicsDataContextHash[e.uid]=null),t.batches&&t.batches.forEach(i=>{me.return(i)})}destroy(){for(let e in this._gpuContextHash)this._gpuContextHash[e]&&this.onGraphicsContextDestroy(this._gpuContextHash[e].context)}};em.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"graphicsContext"};em.defaultOptions={bezierSmoothness:.5};Xs=em});var dB,tm,rm,im,sm,nm,om,am,Pe,Gt=p(()=>{"use strict";dB={normal:0,add:1,multiply:2,screen:3,overlay:4,erase:5,"normal-npm":6,"add-npm":7,"screen-npm":8,min:9,max:10},tm=0,rm=1,im=2,sm=3,nm=4,om=5,am=class P2{constructor(){this.data=0,this.blendMode="normal",this.polygonOffset=0,this.blend=!0,this.depthMask=!0}get blend(){return!!(this.data&1<<tm)}set blend(e){!!(this.data&1<<tm)!==e&&(this.data^=1<<tm)}get offsets(){return!!(this.data&1<<rm)}set offsets(e){!!(this.data&1<<rm)!==e&&(this.data^=1<<rm)}set cullMode(e){if(e==="none"){this.culling=!1;return}this.culling=!0,this.clockwiseFrontFace=e==="front"}get cullMode(){return this.culling?this.clockwiseFrontFace?"front":"back":"none"}get culling(){return!!(this.data&1<<im)}set culling(e){!!(this.data&1<<im)!==e&&(this.data^=1<<im)}get depthTest(){return!!(this.data&1<<sm)}set depthTest(e){!!(this.data&1<<sm)!==e&&(this.data^=1<<sm)}get depthMask(){return!!(this.data&1<<om)}set depthMask(e){!!(this.data&1<<om)!==e&&(this.data^=1<<om)}get clockwiseFrontFace(){return!!(this.data&1<<nm)}set clockwiseFrontFace(e){!!(this.data&1<<nm)!==e&&(this.data^=1<<nm)}get blendMode(){return this._blendMode}set blendMode(e){this.blend=e!=="none",this._blendMode=e,this._blendModeId=dB[e]||0}get polygonOffset(){return this._polygonOffset}set polygonOffset(e){this.offsets=!!e,this._polygonOffset=e}toString(){return`[pixi.js/core:State blendMode=${this.blendMode} clockwiseFrontFace=${this.clockwiseFrontFace} culling=${this.culling} depthMask=${this.depthMask} polygonOffset=${this.polygonOffset}]`}static for2d(){let e=new P2;return e.depthTest=!1,e.blend=!0,e}};am.default2d=am.for2d();Pe=am});function sr(r,e,t){let i=(r>>24&255)/255;e[t++]=(r&255)/255*i,e[t++]=(r>>8&255)/255*i,e[t++]=(r>>16&255)/255*i,e[t++]=i}var Ys=p(()=>{"use strict"});var cm,Go,B2=p(()=>{B();Gt();br();Ys();$f();cm=class{constructor(){this.batches=[],this.batched=!1}destroy(){this.batches.forEach(e=>{me.return(e)}),this.batches.length=0}},Go=class{constructor(e,t){this.state=Pe.for2d(),this.renderer=e,this._adaptor=t,this.renderer.runners.contextChange.add(this)}contextChange(){this._adaptor.contextChange(this.renderer)}validateRenderable(e){let t=e.context,i=!!e._gpuData,s=this.renderer.graphicsContext.updateGpuContext(t);return!!(s.isBatchable||i!==s.isBatchable)}addRenderable(e,t){let i=this.renderer.graphicsContext.updateGpuContext(e.context);e.didViewUpdate&&this._rebuild(e),i.isBatchable?this._addToBatcher(e,t):(this.renderer.renderPipes.batch.break(t),t.add(e))}updateRenderable(e){let i=this._getGpuDataForRenderable(e).batches;for(let s=0;s<i.length;s++){let n=i[s];n._batcher.updateElement(n)}}execute(e){if(!e.isRenderable)return;let t=this.renderer,i=e.context;if(!t.graphicsContext.getGpuContext(i).batches.length)return;let n=i.customShader||this._adaptor.shader;this.state.blendMode=e.groupBlendMode;let o=n.resources.localUniforms.uniforms;o.uTransformMatrix=e.groupTransform,o.uRound=t._roundPixels|e._roundPixels,sr(e.groupColorAlpha,o.uColor,0),this._adaptor.execute(this,e)}_rebuild(e){let t=this._getGpuDataForRenderable(e),i=this.renderer.graphicsContext.updateGpuContext(e.context);t.destroy(),i.isBatchable&&this._updateBatchesForRenderable(e,t)}_addToBatcher(e,t){let i=this.renderer.renderPipes.batch,s=this._getGpuDataForRenderable(e).batches;for(let n=0;n<s.length;n++){let o=s[n];i.addToBatch(o,t)}}_getGpuDataForRenderable(e){return e._gpuData[this.renderer.uid]||this._initGpuDataForRenderable(e)}_initGpuDataForRenderable(e){let t=new cm;return e._gpuData[this.renderer.uid]=t,t}_updateBatchesForRenderable(e,t){let i=e.context,s=this.renderer.graphicsContext.getGpuContext(i),n=this.renderer._roundPixels|e._roundPixels;t.batches=s.batches.map(o=>{let a=me.get(ji);return o.copyTo(a),a.renderable=e,a.roundPixels=n,a})}destroy(){this.renderer=null,this._adaptor.destroy(),this._adaptor=null,this.state=null}};Go.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"graphics"}});var um=p(()=>{B();nl();B2();O.add(Go);O.add(Xs)});var Jr,ol=p(()=>{"use strict";Jr=class{constructor(){this.batcherName="default",this.packAsQuad=!1,this.indexOffset=0,this.attributeOffset=0,this.roundPixels=0,this._batcher=null,this._batch=null,this._textureMatrixUpdateId=-1,this._uvUpdateId=-1}get blendMode(){return this.renderable.groupBlendMode}get topology(){return this._topology||this.geometry.topology}set topology(e){this._topology=e}reset(){this.renderable=null,this.texture=null,this._batcher=null,this._batch=null,this.geometry=null,this._uvUpdateId=-1,this._textureMatrixUpdateId=-1}setTexture(e){this.texture!==e&&(this.texture=e,this._textureMatrixUpdateId=-1)}get uvs(){let t=this.geometry.getBuffer("aUV"),i=t.data,s=i,n=this.texture.textureMatrix;return n.isSimple||(s=this._transformedUvs,(this._textureMatrixUpdateId!==n._updateID||this._uvUpdateId!==t._updateID)&&((!s||s.length<i.length)&&(s=this._transformedUvs=new Float32Array(i.length)),this._textureMatrixUpdateId=n._updateID,this._uvUpdateId=t._updateID,n.multiplyUvs(i,s))),s}get positions(){return this.geometry.positions}get indices(){return this.geometry.indices}get color(){return this.renderable.groupColorAlpha}get groupTransform(){return this.renderable.groupTransform}get attributeSize(){return this.geometry.positions.length/2}get indexSize(){return this.geometry.indices.length}}});var al,No,R2=p(()=>{B();te();Xr();it();Ao();Ys();ol();al=class{destroy(){}},No=class{constructor(e,t){this.localUniforms=new ce({uTransformMatrix:{value:new R,type:"mat3x3<f32>"},uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uRound:{value:0,type:"f32"}}),this.localUniformsBindGroup=new Ne({0:this.localUniforms}),this.renderer=e,this._adaptor=t,this._adaptor.init()}validateRenderable(e){let t=this._getMeshData(e),i=t.batched,s=e.batched;if(t.batched=s,i!==s)return!0;if(s){let n=e._geometry;if(n.indices.length!==t.indexSize||n.positions.length!==t.vertexSize)return t.indexSize=n.indices.length,t.vertexSize=n.positions.length,!0;let o=this._getBatchableMesh(e);return o.texture.uid!==e._texture.uid&&(o._textureMatrixUpdateId=-1),!o._batcher.checkAndUpdateTexture(o,e._texture)}return!1}addRenderable(e,t){let i=this.renderer.renderPipes.batch,{batched:s}=this._getMeshData(e);if(s){let n=this._getBatchableMesh(e);n.setTexture(e._texture),n.geometry=e._geometry,i.addToBatch(n,t)}else i.break(t),t.add(e)}updateRenderable(e){if(e.batched){let t=this._getBatchableMesh(e);t.setTexture(e._texture),t.geometry=e._geometry,t._batcher.updateElement(t)}}execute(e){if(!e.isRenderable)return;e.state.blendMode=vr(e.groupBlendMode,e.texture._source);let t=this.localUniforms;t.uniforms.uTransformMatrix=e.groupTransform,t.uniforms.uRound=this.renderer._roundPixels|e._roundPixels,t.update(),sr(e.groupColorAlpha,t.uniforms.uColor,0),this._adaptor.execute(this,e)}_getMeshData(e){var t,i;return(t=e._gpuData)[i=this.renderer.uid]||(t[i]=new al),e._gpuData[this.renderer.uid].meshData||this._initMeshData(e)}_initMeshData(e){return e._gpuData[this.renderer.uid].meshData={batched:e.batched,indexSize:e._geometry.indices?.length,vertexSize:e._geometry.positions?.length},e._gpuData[this.renderer.uid].meshData}_getBatchableMesh(e){var t,i;return(t=e._gpuData)[i=this.renderer.uid]||(t[i]=new al),e._gpuData[this.renderer.uid].batchableMesh||this._initBatchableMesh(e)}_initBatchableMesh(e){let t=new Jr;return t.renderable=e,t.setTexture(e._texture),t.transform=e.groupTransform,t.roundPixels=this.renderer._roundPixels|e._roundPixels,e._gpuData[this.renderer.uid].batchableMesh=t,t}destroy(){this.localUniforms=null,this.localUniformsBindGroup=null,this._adaptor.destroy(),this._adaptor=null,this.renderer=null}};No.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"mesh"}});var lm=p(()=>{B();R2();O.add(No)});var cl,D2=p(()=>{"use strict";cl=class{execute(e,t){let i=e.state,s=e.renderer,n=t.shader||e.defaultShader;n.resources.uTexture=t.texture._source,n.resources.uniforms=e.localUniforms;let o=s.gl,a=e.getBuffers(t);s.shader.bind(n),s.state.set(i),s.geometry.bind(a.geometry,n.glProgram);let u=a.geometry.indexBuffer.data.BYTES_PER_ELEMENT===2?o.UNSIGNED_SHORT:o.UNSIGNED_INT;o.drawElements(o.TRIANGLES,t.particleChildren.length*6,u,0)}}});function hm(r,e=null){let t=r*6;if(t>65535?e||(e=new Uint32Array(t)):e||(e=new Uint16Array(t)),e.length!==t)throw new Error(`Out buffer length is incorrect, got ${e.length} and expected ${t}`);for(let i=0,s=0;i<t;i+=6,s+=4)e[i+0]=s+0,e[i+1]=s+1,e[i+2]=s+2,e[i+3]=s+0,e[i+4]=s+2,e[i+5]=s+3;return e}var M2=p(()=>{"use strict"});function F2(r){return{dynamicUpdate:I2(r,!0),staticUpdate:I2(r,!1)}}function I2(r,e){let t=[];t.push(`
253
+ `}}});var rf,db,fb=p(()=>{"use strict";rf=["f32","i32","vec2<f32>","vec3<f32>","vec4<f32>","mat2x2<f32>","mat3x3<f32>","mat4x4<f32>","mat3x2<f32>","mat4x2<f32>","mat2x3<f32>","mat4x3<f32>","mat2x4<f32>","mat3x4<f32>","vec2<i32>","vec3<i32>","vec4<i32>"],db=rf.reduce((r,e)=>(r[e]=!0,r),{})});function mb(r,e){switch(r){case"f32":return 0;case"vec2<f32>":return new Float32Array(2*e);case"vec3<f32>":return new Float32Array(3*e);case"vec4<f32>":return new Float32Array(4*e);case"mat2x2<f32>":return new Float32Array([1,0,0,1]);case"mat3x3<f32>":return new Float32Array([1,0,0,0,1,0,0,0,1]);case"mat4x4<f32>":return new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}return null}var pb=p(()=>{"use strict"});var gb,ce,rt=p(()=>{Oe();no();fb();pb();gb=class xb{constructor(e,t){this._touched=0,this.uid=K("uniform"),this._resourceType="uniformGroup",this._resourceId=K("resource"),this.isUniformGroup=!0,this._dirtyId=0,this.destroyed=!1,t={...xb.defaultOptions,...t},this.uniformStructures=e;let i={};for(let s in e){let n=e[s];if(n.name=s,n.size=n.size??1,!db[n.type])throw new Error(`Uniform type ${n.type} is not supported. Supported uniform types are: ${rf.join(", ")}`);n.value??(n.value=mb(n.type,n.size)),i[s]=n.value}this.uniforms=i,this._dirtyId=1,this.ubo=t.ubo,this.isStatic=t.isStatic,this._signature=Sr(Object.keys(i).map(s=>`${s}-${e[s].type}`).join("-"),"uniform-group")}update(){this._dirtyId++}};gb.defaultOptions={ubo:!1,isStatic:!1};ce=gb});function vs(r){let e=_b[r];if(e)return e;let t=new Int32Array(r);for(let i=0;i<r;i++)t[i]=i;return e=_b[r]=new ce({uTextures:{value:t,type:"i32",size:r}},{isStatic:!0}),e}var _b,pu=p(()=>{rt();_b={}});var Me,Jt=p(()=>{"use strict";Me=(r=>(r[r.WEBGL=1]="WEBGL",r[r.WEBGPU=2]="WEBGPU",r[r.BOTH=3]="BOTH",r))(Me||{})});var Ee,Ut=p(()=>{Ve();Oe();Ai();$r();bs();Jt();rt();Ee=class r extends oe{constructor(e){super(),this.uid=K("shader"),this._uniformBindMap=Object.create(null),this._ownedBindGroups=[];let{gpuProgram:t,glProgram:i,groups:s,resources:n,compatibleRenderers:o,groupMap:a}=e;this.gpuProgram=t,this.glProgram=i,o===void 0&&(o=0,t&&(o|=Me.WEBGPU),i&&(o|=Me.WEBGL)),this.compatibleRenderers=o;let c={};if(!n&&!s&&(n={}),n&&s)throw new Error("[Shader] Cannot have both resources and groups");if(!t&&s&&!a)throw new Error("[Shader] No group map or WebGPU shader provided - consider using resources instead.");if(!t&&s&&a)for(let u in a)for(let l in a[u]){let h=a[u][l];c[h]={group:u,binding:l,name:h}}else if(t&&s&&!a){let u=t.structsAndGroups.groups;a={},u.forEach(l=>{a[l.group]=a[l.group]||{},a[l.group][l.binding]=l.name,c[l.name]=l})}else if(n){s={},a={},t&&t.structsAndGroups.groups.forEach(h=>{a[h.group]=a[h.group]||{},a[h.group][h.binding]=h.name,c[h.name]=h});let u=0;for(let l in n)c[l]||(s[99]||(s[99]=new Ne,this._ownedBindGroups.push(s[99])),c[l]={group:99,binding:u,name:l},a[99]=a[99]||{},a[99][u]=l,u++);for(let l in n){let h=l,f=n[l];!f.source&&!f._resourceType&&(f=new ce(f));let d=c[h];d&&(s[d.group]||(s[d.group]=new Ne,this._ownedBindGroups.push(s[d.group])),s[d.group].setResource(f,d.binding))}}this.groups=s,this._uniformBindMap=a,this.resources=this._buildResourceAccessor(s,c)}addResource(e,t,i){var s,n;(s=this._uniformBindMap)[t]||(s[t]={}),(n=this._uniformBindMap[t])[i]||(n[i]=e),this.groups[t]||(this.groups[t]=new Ne,this._ownedBindGroups.push(this.groups[t]))}_buildResourceAccessor(e,t){let i={};for(let s in t){let n=t[s];Object.defineProperty(i,n.name,{get(){return e[n.group].getResource(n.binding)},set(o){e[n.group].setResource(o,n.binding)}})}return i}destroy(e=!1){this.emit("destroy",this),e&&(this.gpuProgram?.destroy(),this.glProgram?.destroy()),this.gpuProgram=null,this.glProgram=null,this.removeAllListeners(),this._uniformBindMap=null,this._ownedBindGroups.forEach(t=>{t.destroy()}),this._ownedBindGroups=null,this.resources=null,this.groups=null}static from(e){let{gpu:t,gl:i,...s}=e,n,o;return t&&(n=Et.from(t)),i&&(o=Ct.from(i)),new r({gpuProgram:n,glProgram:o,...s})}}});var gu,bb=p(()=>{Xr();oo();ao();Yr();pu();Ut();gu=class extends Ee{constructor(e){let t=Kt({name:"batch",bits:[Ts,Ss(e),Zt]}),i=Yt({name:"batch",bits:[ys,ws(e),Qt]});super({glProgram:t,gpuProgram:i,resources:{batchSamplers:vs(e)}})}}});var sf,yb,co,nf=p(()=>{P();p_();b_();bb();sf=null,yb=class Tb extends m_{constructor(e){super(e),this.geometry=new du,this.name=Tb.extension.name,this.vertexSize=6,sf??(sf=new gu(e.maxTextures)),this.shader=sf}packAttributes(e,t,i,s,n){let o=n<<16|e.roundPixels&65535,a=e.transform,c=a.a,u=a.b,l=a.c,h=a.d,f=a.tx,d=a.ty,{positions:m,uvs:x}=e,g=e.color,_=e.attributeOffset,y=_+e.attributeSize;for(let S=_;S<y;S++){let T=S*2,C=m[T],v=m[T+1];t[s++]=c*C+l*v+f,t[s++]=h*v+u*C+d,t[s++]=x[T],t[s++]=x[T+1],i[s++]=g,i[s++]=o}}packQuadAttributes(e,t,i,s,n){let o=e.texture,a=e.transform,c=a.a,u=a.b,l=a.c,h=a.d,f=a.tx,d=a.ty,m=e.bounds,x=m.maxX,g=m.minX,_=m.maxY,y=m.minY,S=o.uvs,T=e.color,C=n<<16|e.roundPixels&65535;t[s+0]=c*g+l*y+f,t[s+1]=h*y+u*g+d,t[s+2]=S.x0,t[s+3]=S.y0,i[s+4]=T,i[s+5]=C,t[s+6]=c*x+l*y+f,t[s+7]=h*y+u*x+d,t[s+8]=S.x1,t[s+9]=S.y1,i[s+10]=T,i[s+11]=C,t[s+12]=c*x+l*_+f,t[s+13]=h*_+u*x+d,t[s+14]=S.x2,t[s+15]=S.y2,i[s+16]=T,i[s+17]=C,t[s+18]=c*g+l*_+f,t[s+19]=h*_+u*g+d,t[s+20]=S.x3,t[s+21]=S.y3,i[s+22]=T,i[s+23]=C}};yb.extension={type:[b.Batcher],name:"default"};co=yb});function wb(r,e,t,i,s,n,o,a=null){let c=0;t*=e,s*=n;let u=a.a,l=a.b,h=a.c,f=a.d,d=a.tx,m=a.ty;for(;c<o;){let x=r[t],g=r[t+1];i[s]=u*x+h*g+d,i[s+1]=l*x+f*g+m,s+=n,t+=e,c++}}function Sb(r,e,t,i){let s=0;for(e*=t;s<i;)r[e]=0,r[e+1]=0,e+=t,s++}var vb=p(()=>{"use strict"});function of(r,e,t,i,s){let n=e.a,o=e.b,a=e.c,c=e.d,u=e.tx,l=e.ty;t||(t=0),i||(i=2),s||(s=r.length/i-t);let h=t*i;for(let f=0;f<s;f++){let d=r[h],m=r[h+1];r[h]=n*d+a*m+u,r[h+1]=o*d+c*m+l,h+=i}}var Cb=p(()=>{"use strict"});var lA,Bi,af=p(()=>{ee();Qh();lA=new R,Bi=class{constructor(){this.packAsQuad=!1,this.batcherName="default",this.topology="triangle-list",this.applyTransform=!0,this.roundPixels=0,this._batcher=null,this._batch=null}get uvs(){return this.geometryData.uvs}get positions(){return this.geometryData.vertices}get indices(){return this.geometryData.indices}get blendMode(){return this.renderable&&this.applyTransform?this.renderable.groupBlendMode:"normal"}get color(){let e=this.baseColor,t=e>>16|e&65280|(e&255)<<16,i=this.renderable;return i?Lc(t,i.groupColor)+(this.alpha*i.groupAlpha*255<<24):t+(this.alpha*255<<24)}get transform(){return this.renderable?.groupTransform||lA}copyTo(e){e.indexOffset=this.indexOffset,e.indexSize=this.indexSize,e.attributeOffset=this.attributeOffset,e.attributeSize=this.attributeSize,e.baseColor=this.baseColor,e.alpha=this.alpha,e.texture=this.texture,e.geometryData=this.geometryData,e.topology=this.topology}reset(){this.applyTransform=!0,this.renderable=null,this.topology="triangle-list"}}});var Cs,Eb,kb,Ab=p(()=>{P();Cs={extension:{type:b.ShapeBuilder,name:"circle"},build(r,e){let t,i,s,n,o,a;if(r.type==="circle"){let T=r;if(o=a=T.radius,o<=0)return!1;t=T.x,i=T.y,s=n=0}else if(r.type==="ellipse"){let T=r;if(o=T.halfWidth,a=T.halfHeight,o<=0||a<=0)return!1;t=T.x,i=T.y,s=n=0}else{let T=r,C=T.width/2,v=T.height/2;t=T.x+C,i=T.y+v,o=a=Math.max(0,Math.min(T.radius,Math.min(C,v))),s=C-o,n=v-a}if(s<0||n<0)return!1;let c=Math.ceil(2.3*Math.sqrt(o+a)),u=c*8+(s?4:0)+(n?4:0);if(u===0)return!1;if(c===0)return e[0]=e[6]=t+s,e[1]=e[3]=i+n,e[2]=e[4]=t-s,e[5]=e[7]=i-n,!0;let l=0,h=c*4+(s?2:0)+2,f=h,d=u,m=s+o,x=n,g=t+m,_=t-m,y=i+x;if(e[l++]=g,e[l++]=y,e[--h]=y,e[--h]=_,n){let T=i-x;e[f++]=_,e[f++]=T,e[--d]=T,e[--d]=g}for(let T=1;T<c;T++){let C=Math.PI/2*(T/c),v=s+Math.cos(C)*o,E=n+Math.sin(C)*a,M=t+v,A=t-v,B=i+E,k=i-E;e[l++]=M,e[l++]=B,e[--h]=B,e[--h]=A,e[f++]=A,e[f++]=k,e[--d]=k,e[--d]=M}m=s,x=n+a,g=t+m,_=t-m,y=i+x;let S=i-x;return e[l++]=g,e[l++]=y,e[--d]=S,e[--d]=g,s&&(e[l++]=_,e[l++]=y,e[--d]=S,e[--d]=_),!0},triangulate(r,e,t,i,s,n){if(r.length===0)return;let o=0,a=0;for(let l=0;l<r.length;l+=2)o+=r[l],a+=r[l+1];o/=r.length/2,a/=r.length/2;let c=i;e[c*t]=o,e[c*t+1]=a;let u=c++;for(let l=0;l<r.length;l+=2)e[c*t]=r[l],e[c*t+1]=r[l+1],l>0&&(s[n++]=c,s[n++]=u,s[n++]=c-1),c++;s[n++]=u+1,s[n++]=u,s[n++]=c-1}},Eb={...Cs,extension:{...Cs.extension,name:"ellipse"}},kb={...Cs,extension:{...Cs.extension,name:"roundedRectangle"}}});function Pb(r){let e=r.length;if(e<6)return 1;let t=0;for(let i=0,s=r[e-2],n=r[e-1];i<e;i+=2){let o=r[i],a=r[i+1];t+=(o-s)*(a+n),s=o,n=a}return t<0?-1:1}var Bb=p(()=>{"use strict"});function Rb(r,e,t,i,s,n,o,a){let c=r-t*s,u=e-i*s,l=r+t*n,h=e+i*n,f,d;o?(f=i,d=-t):(f=-i,d=t);let m=c+f,x=u+d,g=l+f,_=h+d;return a.push(m,x),a.push(g,_),2}function Ri(r,e,t,i,s,n,o,a){let c=t-r,u=i-e,l=Math.atan2(c,u),h=Math.atan2(s-r,n-e);a&&l<h?l+=Math.PI*2:!a&&l>h&&(h+=Math.PI*2);let f=l,d=h-l,m=Math.abs(d),x=Math.sqrt(c*c+u*u),g=(15*m*Math.sqrt(x)/Math.PI>>0)+1,_=d/g;if(f+=_,a){o.push(r,e),o.push(t,i);for(let y=1,S=f;y<g;y++,S+=_)o.push(r,e),o.push(r+Math.sin(S)*x,e+Math.cos(S)*x);o.push(r,e),o.push(s,n)}else{o.push(t,i),o.push(r,e);for(let y=1,S=f;y<g;y++,S+=_)o.push(r+Math.sin(S)*x,e+Math.cos(S)*x),o.push(r,e);o.push(s,n),o.push(r,e)}return g*2}function Db(r,e,t,i,s,n){let o=1e-4;if(r.length===0)return;let a=e,c=a.alignment;if(e.alignment!==.5){let fe=Pb(r);t&&(fe*=-1),c=(c-.5)*fe+.5}let u=new Z(r[0],r[1]),l=new Z(r[r.length-2],r[r.length-1]),h=i,f=Math.abs(u.x-l.x)<o&&Math.abs(u.y-l.y)<o;if(h){r=r.slice(),f&&(r.pop(),r.pop(),l.set(r[r.length-2],r[r.length-1]));let fe=(u.x+l.x)*.5,Ur=(l.y+u.y)*.5;r.unshift(fe,Ur),r.push(fe,Ur)}let d=s,m=r.length/2,x=r.length,g=d.length/2,_=a.width/2,y=_*_,S=a.miterLimit*a.miterLimit,T=r[0],C=r[1],v=r[2],E=r[3],M=0,A=0,B=-(C-E),k=T-v,L=0,j=0,be=Math.sqrt(B*B+k*k);B/=be,k/=be,B*=_,k*=_;let wt=c,U=(1-wt)*2,H=wt*2;h||(a.cap==="round"?x+=Ri(T-B*(U-H)*.5,C-k*(U-H)*.5,T-B*U,C-k*U,T+B*H,C+k*H,d,!0)+2:a.cap==="square"&&(x+=Rb(T,C,B,k,U,H,!0,d))),d.push(T-B*U,C-k*U),d.push(T+B*H,C+k*H);for(let fe=1;fe<m-1;++fe){T=r[(fe-1)*2],C=r[(fe-1)*2+1],v=r[fe*2],E=r[fe*2+1],M=r[(fe+1)*2],A=r[(fe+1)*2+1],B=-(C-E),k=T-v,be=Math.sqrt(B*B+k*k),B/=be,k/=be,B*=_,k*=_,L=-(E-A),j=v-M,be=Math.sqrt(L*L+j*j),L/=be,j/=be,L*=_,j*=_;let Ur=v-T,En=C-E,kn=v-M,An=A-E,gg=Ur*kn+En*An,lc=En*kn-An*Ur,Pn=lc<0;if(Math.abs(lc)<.001*Math.abs(gg)){d.push(v-B*U,E-k*U),d.push(v+B*H,E+k*H),gg>=0&&(a.join==="round"?x+=Ri(v,E,v-B*U,E-k*U,v-L*U,E-j*U,d,!1)+4:x+=2,d.push(v-L*H,E-j*H),d.push(v+L*U,E+j*U));continue}let xg=(-B+T)*(-k+E)-(-B+v)*(-k+C),_g=(-L+M)*(-j+E)-(-L+v)*(-j+A),hc=(Ur*_g-kn*xg)/lc,dc=(An*xg-En*_g)/lc,Eh=(hc-v)*(hc-v)+(dc-E)*(dc-E),ci=v+(hc-v)*U,ui=E+(dc-E)*U,li=v-(hc-v)*H,hi=E-(dc-E)*H,HE=Math.min(Ur*Ur+En*En,kn*kn+An*An),bg=Pn?U:H,WE=HE+bg*bg*y;Eh<=WE?a.join==="bevel"||Eh/y>S?(Pn?(d.push(ci,ui),d.push(v+B*H,E+k*H),d.push(ci,ui),d.push(v+L*H,E+j*H)):(d.push(v-B*U,E-k*U),d.push(li,hi),d.push(v-L*U,E-j*U),d.push(li,hi)),x+=2):a.join==="round"?Pn?(d.push(ci,ui),d.push(v+B*H,E+k*H),x+=Ri(v,E,v+B*H,E+k*H,v+L*H,E+j*H,d,!0)+4,d.push(ci,ui),d.push(v+L*H,E+j*H)):(d.push(v-B*U,E-k*U),d.push(li,hi),x+=Ri(v,E,v-B*U,E-k*U,v-L*U,E-j*U,d,!1)+4,d.push(v-L*U,E-j*U),d.push(li,hi)):(d.push(ci,ui),d.push(li,hi)):(d.push(v-B*U,E-k*U),d.push(v+B*H,E+k*H),a.join==="round"?Pn?x+=Ri(v,E,v+B*H,E+k*H,v+L*H,E+j*H,d,!0)+2:x+=Ri(v,E,v-B*U,E-k*U,v-L*U,E-j*U,d,!1)+2:a.join==="miter"&&Eh/y<=S&&(Pn?(d.push(li,hi),d.push(li,hi)):(d.push(ci,ui),d.push(ci,ui)),x+=2),d.push(v-L*U,E-j*U),d.push(v+L*H,E+j*H),x+=2)}T=r[(m-2)*2],C=r[(m-2)*2+1],v=r[(m-1)*2],E=r[(m-1)*2+1],B=-(C-E),k=T-v,be=Math.sqrt(B*B+k*k),B/=be,k/=be,B*=_,k*=_,d.push(v-B*U,E-k*U),d.push(v+B*H,E+k*H),h||(a.cap==="round"?x+=Ri(v-B*(U-H)*.5,E-k*(U-H)*.5,v-B*U,E-k*U,v+B*H,E+k*H,d,!1)+2:a.cap==="square"&&(x+=Rb(v,E,B,k,U,H,!1,d)));let Ch=1e-4*1e-4;for(let fe=g;fe<x+g-2;++fe)T=d[fe*2],C=d[fe*2+1],v=d[(fe+1)*2],E=d[(fe+1)*2+1],M=d[(fe+2)*2],A=d[(fe+2)*2+1],!(Math.abs(T*(E-A)+v*(A-C)+M*(C-E))<Ch)&&n.push(fe,fe+1,fe+2)}var Mb=p(()=>{It();Bb()});function Ib(r,e,t,i){let s=1e-4;if(r.length===0)return;let n=r[0],o=r[1],a=r[r.length-2],c=r[r.length-1],u=e||Math.abs(n-a)<s&&Math.abs(o-c)<s,l=t,h=r.length/2,f=l.length/2;for(let d=0;d<h;d++)l.push(r[d*2]),l.push(r[d*2+1]);for(let d=0;d<h-1;d++)i.push(f+d,f+d+1);u&&i.push(f+h-1,f)}var Fb=p(()=>{});function bu(r,e,t=2){let i=e&&e.length,s=i?e[0]*t:r.length,n=Ob(r,0,s,t,!0),o=[];if(!n||n.next===n.prev)return o;let a,c,u;if(i&&(n=xA(r,e,n,t)),r.length>80*t){a=1/0,c=1/0;let l=-1/0,h=-1/0;for(let f=t;f<s;f+=t){let d=r[f],m=r[f+1];d<a&&(a=d),m<c&&(c=m),d>l&&(l=d),m>h&&(h=m)}u=Math.max(l-a,h-c),u=u!==0?32767/u:0}return lo(n,o,t,a,c,u,0),o}function Ob(r,e,t,i,s){let n;if(s===AA(r,e,t,i)>0)for(let o=e;o<t;o+=i)n=Ub(o/i|0,r[o],r[o+1],n);else for(let o=t-i;o>=e;o-=i)n=Ub(o/i|0,r[o],r[o+1],n);return n&&Es(n,n.next)&&(fo(n),n=n.next),n}function Di(r,e){if(!r)return r;e||(e=r);let t=r,i;do if(i=!1,!t.steiner&&(Es(t,t.next)||Se(t.prev,t,t.next)===0)){if(fo(t),t=e=t.prev,t===t.next)break;i=!0}else t=t.next;while(i||t!==e);return e}function lo(r,e,t,i,s,n,o){if(!r)return;!o&&n&&wA(r,i,s,n);let a=r;for(;r.prev!==r.next;){let c=r.prev,u=r.next;if(n?mA(r,i,s,n):fA(r)){e.push(c.i,r.i,u.i),fo(r),r=u.next,a=u.next;continue}if(r=u,r===a){o?o===1?(r=pA(Di(r),e),lo(r,e,t,i,s,n,2)):o===2&&gA(r,e,t,i,s,n):lo(Di(r),e,t,i,s,n,1);break}}}function fA(r){let e=r.prev,t=r,i=r.next;if(Se(e,t,i)>=0)return!1;let s=e.x,n=t.x,o=i.x,a=e.y,c=t.y,u=i.y,l=Math.min(s,n,o),h=Math.min(a,c,u),f=Math.max(s,n,o),d=Math.max(a,c,u),m=i.next;for(;m!==e;){if(m.x>=l&&m.x<=f&&m.y>=h&&m.y<=d&&uo(s,a,n,c,o,u,m.x,m.y)&&Se(m.prev,m,m.next)>=0)return!1;m=m.next}return!0}function mA(r,e,t,i){let s=r.prev,n=r,o=r.next;if(Se(s,n,o)>=0)return!1;let a=s.x,c=n.x,u=o.x,l=s.y,h=n.y,f=o.y,d=Math.min(a,c,u),m=Math.min(l,h,f),x=Math.max(a,c,u),g=Math.max(l,h,f),_=cf(d,m,e,t,i),y=cf(x,g,e,t,i),S=r.prevZ,T=r.nextZ;for(;S&&S.z>=_&&T&&T.z<=y;){if(S.x>=d&&S.x<=x&&S.y>=m&&S.y<=g&&S!==s&&S!==o&&uo(a,l,c,h,u,f,S.x,S.y)&&Se(S.prev,S,S.next)>=0||(S=S.prevZ,T.x>=d&&T.x<=x&&T.y>=m&&T.y<=g&&T!==s&&T!==o&&uo(a,l,c,h,u,f,T.x,T.y)&&Se(T.prev,T,T.next)>=0))return!1;T=T.nextZ}for(;S&&S.z>=_;){if(S.x>=d&&S.x<=x&&S.y>=m&&S.y<=g&&S!==s&&S!==o&&uo(a,l,c,h,u,f,S.x,S.y)&&Se(S.prev,S,S.next)>=0)return!1;S=S.prevZ}for(;T&&T.z<=y;){if(T.x>=d&&T.x<=x&&T.y>=m&&T.y<=g&&T!==s&&T!==o&&uo(a,l,c,h,u,f,T.x,T.y)&&Se(T.prev,T,T.next)>=0)return!1;T=T.nextZ}return!0}function pA(r,e){let t=r;do{let i=t.prev,s=t.next.next;!Es(i,s)&&Nb(i,t,t.next,s)&&ho(i,s)&&ho(s,i)&&(e.push(i.i,t.i,s.i),fo(t),fo(t.next),t=r=s),t=t.next}while(t!==r);return Di(t)}function gA(r,e,t,i,s,n){let o=r;do{let a=o.next.next;for(;a!==o.prev;){if(o.i!==a.i&&CA(o,a)){let c=Lb(o,a);o=Di(o,o.next),c=Di(c,c.next),lo(o,e,t,i,s,n,0),lo(c,e,t,i,s,n,0);return}a=a.next}o=o.next}while(o!==r)}function xA(r,e,t,i){let s=[];for(let n=0,o=e.length;n<o;n++){let a=e[n]*i,c=n<o-1?e[n+1]*i:r.length,u=Ob(r,a,c,i,!1);u===u.next&&(u.steiner=!0),s.push(vA(u))}s.sort(_A);for(let n=0;n<s.length;n++)t=bA(s[n],t);return t}function _A(r,e){let t=r.x-e.x;if(t===0&&(t=r.y-e.y,t===0)){let i=(r.next.y-r.y)/(r.next.x-r.x),s=(e.next.y-e.y)/(e.next.x-e.x);t=i-s}return t}function bA(r,e){let t=yA(r,e);if(!t)return e;let i=Lb(t,r);return Di(i,i.next),Di(t,t.next)}function yA(r,e){let t=e,i=r.x,s=r.y,n=-1/0,o;if(Es(r,t))return t;do{if(Es(r,t.next))return t.next;if(s<=t.y&&s>=t.next.y&&t.next.y!==t.y){let h=t.x+(s-t.y)*(t.next.x-t.x)/(t.next.y-t.y);if(h<=i&&h>n&&(n=h,o=t.x<t.next.x?t:t.next,h===i))return o}t=t.next}while(t!==e);if(!o)return null;let a=o,c=o.x,u=o.y,l=1/0;t=o;do{if(i>=t.x&&t.x>=c&&i!==t.x&&Gb(s<u?i:n,s,c,u,s<u?n:i,s,t.x,t.y)){let h=Math.abs(s-t.y)/(i-t.x);ho(t,r)&&(h<l||h===l&&(t.x>o.x||t.x===o.x&&TA(o,t)))&&(o=t,l=h)}t=t.next}while(t!==a);return o}function TA(r,e){return Se(r.prev,r,e.prev)<0&&Se(e.next,r,r.next)<0}function wA(r,e,t,i){let s=r;do s.z===0&&(s.z=cf(s.x,s.y,e,t,i)),s.prevZ=s.prev,s.nextZ=s.next,s=s.next;while(s!==r);s.prevZ.nextZ=null,s.prevZ=null,SA(s)}function SA(r){let e,t=1;do{let i=r,s;r=null;let n=null;for(e=0;i;){e++;let o=i,a=0;for(let u=0;u<t&&(a++,o=o.nextZ,!!o);u++);let c=t;for(;a>0||c>0&&o;)a!==0&&(c===0||!o||i.z<=o.z)?(s=i,i=i.nextZ,a--):(s=o,o=o.nextZ,c--),n?n.nextZ=s:r=s,s.prevZ=n,n=s;i=o}n.nextZ=null,t*=2}while(e>1);return r}function cf(r,e,t,i,s){return r=(r-t)*s|0,e=(e-i)*s|0,r=(r|r<<8)&16711935,r=(r|r<<4)&252645135,r=(r|r<<2)&858993459,r=(r|r<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,r|e<<1}function vA(r){let e=r,t=r;do(e.x<t.x||e.x===t.x&&e.y<t.y)&&(t=e),e=e.next;while(e!==r);return t}function Gb(r,e,t,i,s,n,o,a){return(s-o)*(e-a)>=(r-o)*(n-a)&&(r-o)*(i-a)>=(t-o)*(e-a)&&(t-o)*(n-a)>=(s-o)*(i-a)}function uo(r,e,t,i,s,n,o,a){return!(r===o&&e===a)&&Gb(r,e,t,i,s,n,o,a)}function CA(r,e){return r.next.i!==e.i&&r.prev.i!==e.i&&!EA(r,e)&&(ho(r,e)&&ho(e,r)&&kA(r,e)&&(Se(r.prev,r,e.prev)||Se(r,e.prev,e))||Es(r,e)&&Se(r.prev,r,r.next)>0&&Se(e.prev,e,e.next)>0)}function Se(r,e,t){return(e.y-r.y)*(t.x-e.x)-(e.x-r.x)*(t.y-e.y)}function Es(r,e){return r.x===e.x&&r.y===e.y}function Nb(r,e,t,i){let s=_u(Se(r,e,t)),n=_u(Se(r,e,i)),o=_u(Se(t,i,r)),a=_u(Se(t,i,e));return!!(s!==n&&o!==a||s===0&&xu(r,t,e)||n===0&&xu(r,i,e)||o===0&&xu(t,r,i)||a===0&&xu(t,e,i))}function xu(r,e,t){return e.x<=Math.max(r.x,t.x)&&e.x>=Math.min(r.x,t.x)&&e.y<=Math.max(r.y,t.y)&&e.y>=Math.min(r.y,t.y)}function _u(r){return r>0?1:r<0?-1:0}function EA(r,e){let t=r;do{if(t.i!==r.i&&t.next.i!==r.i&&t.i!==e.i&&t.next.i!==e.i&&Nb(t,t.next,r,e))return!0;t=t.next}while(t!==r);return!1}function ho(r,e){return Se(r.prev,r,r.next)<0?Se(r,e,r.next)>=0&&Se(r,r.prev,e)>=0:Se(r,e,r.prev)<0||Se(r,r.next,e)<0}function kA(r,e){let t=r,i=!1,s=(r.x+e.x)/2,n=(r.y+e.y)/2;do t.y>n!=t.next.y>n&&t.next.y!==t.y&&s<(t.next.x-t.x)*(n-t.y)/(t.next.y-t.y)+t.x&&(i=!i),t=t.next;while(t!==r);return i}function Lb(r,e){let t=uf(r.i,r.x,r.y),i=uf(e.i,e.x,e.y),s=r.next,n=e.prev;return r.next=e,e.prev=r,t.next=s,s.prev=t,i.next=t,t.prev=i,n.next=i,i.prev=n,i}function Ub(r,e,t,i){let s=uf(r,e,t);return i?(s.next=i.next,s.prev=i,i.next.prev=s,i.next=s):(s.prev=s,s.next=s),s}function fo(r){r.next.prev=r.prev,r.prev.next=r.next,r.prevZ&&(r.prevZ.nextZ=r.nextZ),r.nextZ&&(r.nextZ.prevZ=r.prevZ)}function uf(r,e,t){return{i:r,x:e,y:t,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:!1}}function AA(r,e,t,i){let s=0;for(let n=e,o=t-i;n<t;n+=i)s+=(r[o]-r[n])*(r[n+1]+r[o+1]),o=n;return s}var zb=p(()=>{});var Vb,Hb=p(()=>{zb();Ve();Vb=bu.default||bu});function yu(r,e,t,i,s,n,o){let a=Vb(r,e,2);if(!a)return;for(let u=0;u<a.length;u+=3)n[o++]=a[u]+s,n[o++]=a[u+1]+s,n[o++]=a[u+2]+s;let c=s*i;for(let u=0;u<r.length;u+=2)t[c]=r[u],t[c+1]=r[u+1],c+=i}var lf=p(()=>{Hb()});var PA,Wb,$b=p(()=>{P();lf();PA=[],Wb={extension:{type:b.ShapeBuilder,name:"polygon"},build(r,e){for(let t=0;t<r.points.length;t++)e[t]=r.points[t];return!0},triangulate(r,e,t,i,s,n){yu(r,PA,e,t,i,s,n)}}});var qb,jb=p(()=>{P();qb={extension:{type:b.ShapeBuilder,name:"rectangle"},build(r,e){let t=r,i=t.x,s=t.y,n=t.width,o=t.height;return n>0&&o>0?(e[0]=i,e[1]=s,e[2]=i+n,e[3]=s,e[4]=i+n,e[5]=s+o,e[6]=i,e[7]=s+o,!0):!1},triangulate(r,e,t,i,s,n){let o=0;i*=t,e[i+o]=r[0],e[i+o+1]=r[1],o+=t,e[i+o]=r[2],e[i+o+1]=r[3],o+=t,e[i+o]=r[6],e[i+o+1]=r[7],o+=t,e[i+o]=r[4],e[i+o+1]=r[5],o+=t;let a=i/t;s[n++]=a,s[n++]=a+1,s[n++]=a+2,s[n++]=a+1,s[n++]=a+3,s[n++]=a+2}}});var Xb,Yb=p(()=>{P();Xb={extension:{type:b.ShapeBuilder,name:"triangle"},build(r,e){return e[0]=r.x,e[1]=r.y,e[2]=r.x2,e[3]=r.y2,e[4]=r.x3,e[5]=r.y3,!0},triangulate(r,e,t,i,s,n){let o=0;i*=t,e[i+o]=r[0],e[i+o+1]=r[1],o+=t,e[i+o]=r[2],e[i+o+1]=r[3],o+=t,e[i+o]=r[4],e[i+o+1]=r[5];let a=i/t;s[n++]=a,s[n++]=a+1,s[n++]=a+2}}});function Qb(r,e){for(let t=0;t<e.length;t++){let i=e[t];r.addColorStop(i.offset,i.color)}}function Zb(r,e){let t=W.get().createCanvas(r,e),i=t.getContext("2d");return{canvas:t,context:i}}function BA(r){let e=r[0]??{};return(typeof e=="number"||r[1])&&(z("8.5.2","use options object instead"),e={type:"linear",start:{x:r[0],y:r[1]},end:{x:r[2],y:r[3]},textureSpace:r[4],textureSize:r[5]??ut.defaultLinearOptions.textureSize}),e}var Kb,df,ut,ks=p(()=>{He();ve();ee();su();le();Oe();ye();rd();Kb=[{offset:0,color:"white"},{offset:1,color:"black"}],df=class hf{constructor(...e){this.uid=K("fillGradient"),this.type="linear",this.colorStops=[];let t=BA(e);t={...t.type==="radial"?hf.defaultRadialOptions:hf.defaultLinearOptions,...Vc(t)},this._textureSize=t.textureSize,this._wrapMode=t.wrapMode,t.type==="radial"?(this.center=t.center,this.outerCenter=t.outerCenter??this.center,this.innerRadius=t.innerRadius,this.outerRadius=t.outerRadius,this.scale=t.scale,this.rotation=t.rotation):(this.start=t.start,this.end=t.end),this.textureSpace=t.textureSpace,this.type=t.type,t.colorStops.forEach(s=>{this.addColorStop(s.offset,s.color)})}addColorStop(e,t){return this.colorStops.push({offset:e,color:q.shared.setValue(t).toHexa()}),this}buildLinearGradient(){if(this.texture)return;let{x:e,y:t}=this.start,{x:i,y:s}=this.end,n=i-e,o=s-t,a=n<0||o<0;if(this._wrapMode==="clamp-to-edge"){if(n<0){let g=e;e=i,i=g,n*=-1}if(o<0){let g=t;t=s,s=g,o*=-1}}let c=this.colorStops.length?this.colorStops:Kb,u=this._textureSize,{canvas:l,context:h}=Zb(u,1),f=a?h.createLinearGradient(this._textureSize,0,0,0):h.createLinearGradient(0,0,this._textureSize,0);Qb(f,c),h.fillStyle=f,h.fillRect(0,0,u,1),this.texture=new D({source:new jt({resource:l,addressMode:this._wrapMode})});let d=Math.sqrt(n*n+o*o),m=Math.atan2(o,n),x=new R;x.scale(d/u,1),x.rotate(m),x.translate(e,t),this.textureSpace==="local"&&x.scale(u,u),this.transform=x}buildGradient(){this.type==="linear"?this.buildLinearGradient():this.buildRadialGradient()}buildRadialGradient(){if(this.texture)return;let e=this.colorStops.length?this.colorStops:Kb,t=this._textureSize,{canvas:i,context:s}=Zb(t,t),{x:n,y:o}=this.center,{x:a,y:c}=this.outerCenter,u=this.innerRadius,l=this.outerRadius,h=a-l,f=c-l,d=t/(l*2),m=(n-h)*d,x=(o-f)*d,g=s.createRadialGradient(m,x,u*d,(a-h)*d,(c-f)*d,l*d);Qb(g,e),s.fillStyle=e[e.length-1].color,s.fillRect(0,0,t,t),s.fillStyle=g,s.translate(m,x),s.rotate(this.rotation),s.scale(1,this.scale),s.translate(-m,-x),s.fillRect(0,0,t,t),this.texture=new D({source:new jt({resource:i,addressMode:this._wrapMode})});let _=new R;_.scale(1/d,1/d),_.translate(h,f),this.textureSpace==="local"&&_.scale(t,t),this.transform=_}get styleKey(){return this.uid}destroy(){this.texture?.destroy(!0),this.texture=null}};df.defaultLinearOptions={start:{x:0,y:0},end:{x:0,y:1},colorStops:[],textureSpace:"local",type:"linear",textureSize:256,wrapMode:"clamp-to-edge"};df.defaultRadialOptions={center:{x:.5,y:.5},innerRadius:0,outerRadius:.5,colorStops:[],scale:1,textureSpace:"local",type:"radial",textureSize:256,wrapMode:"clamp-to-edge"};ut=df});function Jb(r,e,t,i){let s=e.matrix?r.copyFrom(e.matrix).invert():r.identity();if(e.textureSpace==="local"){let o=t.getBounds(DA);e.width&&o.pad(e.width);let{x:a,y:c}=o,u=1/o.width,l=1/o.height,h=-a*u,f=-c*l,d=s.a,m=s.b,x=s.c,g=s.d;s.a*=u,s.b*=u,s.c*=l,s.d*=l,s.tx=h*d+f*x+s.tx,s.ty=h*m+f*g+s.ty}else s.translate(e.texture.frame.x,e.texture.frame.y),s.scale(1/e.texture.source.width,1/e.texture.source.height);let n=e.texture.source.style;return!(e.fill instanceof ut)&&n.addressMode==="clamp-to-edge"&&(n.addressMode="repeat",n.update()),i&&s.append(RA.copyFrom(i).invert()),s}var RA,DA,ey=p(()=>{ee();Ge();ks();RA=new R,DA=new Y});function ry(r,e){let{geometryData:t,batches:i}=e;i.length=0,t.indices.length=0,t.vertices.length=0,t.uvs.length=0;for(let s=0;s<r.instructions.length;s++){let n=r.instructions[s];if(n.action==="texture")FA(n.data,i,t);else if(n.action==="fill"||n.action==="stroke"){let o=n.action==="stroke",a=n.data.path.shapePath,c=n.data.style,u=n.data.hole;o&&u&&ty(u.shapePath,c,!0,i,t),u&&(a.shapePrimitives[a.shapePrimitives.length-1].holes=u.shapePath.shapePrimitives),ty(a,c,o,i,t)}}}function FA(r,e,t){let i=[],s=Tu.rectangle,n=MA;n.x=r.dx,n.y=r.dy,n.width=r.dw,n.height=r.dh;let o=r.transform;if(!s.build(n,i))return;let{vertices:a,uvs:c,indices:u}=t,l=u.length,h=a.length/2;o&&of(i,o),s.triangulate(i,a,2,h,u,l);let f=r.image,d=f.uvs;c.push(d.x0,d.y0,d.x1,d.y1,d.x3,d.y3,d.x2,d.y2);let m=pe.get(Bi);m.indexOffset=l,m.indexSize=u.length-l,m.attributeOffset=h,m.attributeSize=a.length/2-h,m.baseColor=r.style,m.alpha=r.alpha,m.texture=f,m.geometryData=t,e.push(m)}function ty(r,e,t,i,s){let{vertices:n,uvs:o,indices:a}=s;r.shapePrimitives.forEach(({shape:c,transform:u,holes:l})=>{let h=[],f=Tu[c.type];if(!f.build(c,h))return;let d=a.length,m=n.length/2,x="triangle-list";if(u&&of(h,u),t){let S=c.closePath??!0,T=e;T.pixelLine?(Ib(h,S,n,a),x="line-list"):Db(h,T,!1,S,n,a)}else if(l){let S=[],T=h.slice();UA(l).forEach(v=>{S.push(T.length/2),T.push(...v)}),yu(T,S,n,2,m,a,d)}else f.triangulate(h,n,2,m,a,d);let g=o.length/2,_=e.texture;if(_!==D.WHITE){let S=Jb(IA,e,c,u);wb(n,2,m,o,g,2,n.length/2-m,S)}else Sb(o,g,2,n.length/2-m);let y=pe.get(Bi);y.indexOffset=d,y.indexSize=a.length-d,y.attributeOffset=m,y.attributeSize=n.length/2-m,y.baseColor=e.color,y.alpha=e.alpha,y.texture=_,y.geometryData=s,y.topology=x,i.push(y)})}function UA(r){let e=[];for(let t=0;t<r.length;t++){let i=r[t].shape,s=[];Tu[i.type].build(i,s)&&e.push(s)}return e}var Tu,MA,IA,iy=p(()=>{P();ee();Ge();vb();Cb();le();gr();af();Ab();Mb();Fb();$b();jb();Yb();ey();lf();Tu={};O.handleByMap(b.ShapeBuilder,Tu);O.add(qb,Wb,Xb,Cs,Eb,kb);MA=new Y,IA=new R});var ff,mf,gf,As,wu=p(()=>{P();au();nf();ed();ye();gr();iy();ff=class{constructor(){this.batches=[],this.geometryData={vertices:[],uvs:[],indices:[]}}},mf=class{constructor(){this.instructions=new us}init(e){this.batcher=new co({maxTextures:e}),this.instructions.reset()}get geometry(){return z(hx,"GraphicsContextRenderData#geometry is deprecated, please use batcher.geometry instead."),this.batcher.geometry}},gf=class pf{constructor(e){this._gpuContextHash={},this._graphicsDataContextHash=Object.create(null),this._renderer=e,e.renderableGC.addManagedHash(this,"_gpuContextHash"),e.renderableGC.addManagedHash(this,"_graphicsDataContextHash")}init(e){pf.defaultOptions.bezierSmoothness=e?.bezierSmoothness??pf.defaultOptions.bezierSmoothness}getContextRenderData(e){return this._graphicsDataContextHash[e.uid]||this._initContextRenderData(e)}updateGpuContext(e){let t=this._gpuContextHash[e.uid]||this._initContext(e);if(e.dirty){t?this._cleanGraphicsContextData(e):t=this._initContext(e),ry(e,t);let i=e.batchMode;e.customShader||i==="no-batch"?t.isBatchable=!1:i==="auto"?t.isBatchable=t.geometryData.vertices.length<400:t.isBatchable=!0,e.dirty=!1}return t}getGpuContext(e){return this._gpuContextHash[e.uid]||this._initContext(e)}_initContextRenderData(e){let t=pe.get(mf,{maxTextures:this._renderer.limits.maxBatchableTextures}),{batches:i,geometryData:s}=this._gpuContextHash[e.uid],n=s.vertices.length,o=s.indices.length;for(let l=0;l<i.length;l++)i[l].applyTransform=!1;let a=t.batcher;a.ensureAttributeBuffer(n),a.ensureIndexBuffer(o),a.begin();for(let l=0;l<i.length;l++){let h=i[l];a.add(h)}a.finish(t.instructions);let c=a.geometry;c.indexBuffer.setDataWithSize(a.indexBuffer,a.indexSize,!0),c.buffers[0].setDataWithSize(a.attributeBuffer.float32View,a.attributeSize,!0);let u=a.batches;for(let l=0;l<u.length;l++){let h=u[l];h.bindGroup=ps(h.textures.textures,h.textures.count,this._renderer.limits.maxBatchableTextures)}return this._graphicsDataContextHash[e.uid]=t,t}_initContext(e){let t=new ff;return t.context=e,this._gpuContextHash[e.uid]=t,e.on("destroy",this.onGraphicsContextDestroy,this),this._gpuContextHash[e.uid]}onGraphicsContextDestroy(e){this._cleanGraphicsContextData(e),e.off("destroy",this.onGraphicsContextDestroy,this),this._gpuContextHash[e.uid]=null}_cleanGraphicsContextData(e){let t=this._gpuContextHash[e.uid];t.isBatchable||this._graphicsDataContextHash[e.uid]&&(pe.return(this.getContextRenderData(e)),this._graphicsDataContextHash[e.uid]=null),t.batches&&t.batches.forEach(i=>{pe.return(i)})}destroy(){for(let e in this._gpuContextHash)this._gpuContextHash[e]&&this.onGraphicsContextDestroy(this._gpuContextHash[e].context)}};gf.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"graphicsContext"};gf.defaultOptions={bezierSmoothness:.5};As=gf});var OA,xf,_f,bf,yf,Tf,wf,Sf,Ae,Ot=p(()=>{"use strict";OA={normal:0,add:1,multiply:2,screen:3,overlay:4,erase:5,"normal-npm":6,"add-npm":7,"screen-npm":8,min:9,max:10},xf=0,_f=1,bf=2,yf=3,Tf=4,wf=5,Sf=class sy{constructor(){this.data=0,this.blendMode="normal",this.polygonOffset=0,this.blend=!0,this.depthMask=!0}get blend(){return!!(this.data&1<<xf)}set blend(e){!!(this.data&1<<xf)!==e&&(this.data^=1<<xf)}get offsets(){return!!(this.data&1<<_f)}set offsets(e){!!(this.data&1<<_f)!==e&&(this.data^=1<<_f)}set cullMode(e){if(e==="none"){this.culling=!1;return}this.culling=!0,this.clockwiseFrontFace=e==="front"}get cullMode(){return this.culling?this.clockwiseFrontFace?"front":"back":"none"}get culling(){return!!(this.data&1<<bf)}set culling(e){!!(this.data&1<<bf)!==e&&(this.data^=1<<bf)}get depthTest(){return!!(this.data&1<<yf)}set depthTest(e){!!(this.data&1<<yf)!==e&&(this.data^=1<<yf)}get depthMask(){return!!(this.data&1<<wf)}set depthMask(e){!!(this.data&1<<wf)!==e&&(this.data^=1<<wf)}get clockwiseFrontFace(){return!!(this.data&1<<Tf)}set clockwiseFrontFace(e){!!(this.data&1<<Tf)!==e&&(this.data^=1<<Tf)}get blendMode(){return this._blendMode}set blendMode(e){this.blend=e!=="none",this._blendMode=e,this._blendModeId=OA[e]||0}get polygonOffset(){return this._polygonOffset}set polygonOffset(e){this.offsets=!!e,this._polygonOffset=e}toString(){return`[pixi.js/core:State blendMode=${this.blendMode} clockwiseFrontFace=${this.clockwiseFrontFace} culling=${this.culling} depthMask=${this.depthMask} polygonOffset=${this.polygonOffset}]`}static for2d(){let e=new sy;return e.depthTest=!1,e.blend=!0,e}};Sf.default2d=Sf.for2d();Ae=Sf});function er(r,e,t){let i=(r>>24&255)/255;e[t++]=(r&255)/255*i,e[t++]=(r>>8&255)/255*i,e[t++]=(r>>16&255)/255*i,e[t++]=i}var Ps=p(()=>{"use strict"});var vf,mo,ny=p(()=>{P();Ot();gr();Ps();af();vf=class{constructor(){this.batches=[],this.batched=!1}destroy(){this.batches.forEach(e=>{pe.return(e)}),this.batches.length=0}},mo=class{constructor(e,t){this.state=Ae.for2d(),this.renderer=e,this._adaptor=t,this.renderer.runners.contextChange.add(this)}contextChange(){this._adaptor.contextChange(this.renderer)}validateRenderable(e){let t=e.context,i=!!e._gpuData,s=this.renderer.graphicsContext.updateGpuContext(t);return!!(s.isBatchable||i!==s.isBatchable)}addRenderable(e,t){let i=this.renderer.graphicsContext.updateGpuContext(e.context);e.didViewUpdate&&this._rebuild(e),i.isBatchable?this._addToBatcher(e,t):(this.renderer.renderPipes.batch.break(t),t.add(e))}updateRenderable(e){let i=this._getGpuDataForRenderable(e).batches;for(let s=0;s<i.length;s++){let n=i[s];n._batcher.updateElement(n)}}execute(e){if(!e.isRenderable)return;let t=this.renderer,i=e.context;if(!t.graphicsContext.getGpuContext(i).batches.length)return;let n=i.customShader||this._adaptor.shader;this.state.blendMode=e.groupBlendMode;let o=n.resources.localUniforms.uniforms;o.uTransformMatrix=e.groupTransform,o.uRound=t._roundPixels|e._roundPixels,er(e.groupColorAlpha,o.uColor,0),this._adaptor.execute(this,e)}_rebuild(e){let t=this._getGpuDataForRenderable(e),i=this.renderer.graphicsContext.updateGpuContext(e.context);t.destroy(),i.isBatchable&&this._updateBatchesForRenderable(e,t)}_addToBatcher(e,t){let i=this.renderer.renderPipes.batch,s=this._getGpuDataForRenderable(e).batches;for(let n=0;n<s.length;n++){let o=s[n];i.addToBatch(o,t)}}_getGpuDataForRenderable(e){return e._gpuData[this.renderer.uid]||this._initGpuDataForRenderable(e)}_initGpuDataForRenderable(e){let t=new vf;return e._gpuData[this.renderer.uid]=t,t}_updateBatchesForRenderable(e,t){let i=e.context,s=this.renderer.graphicsContext.getGpuContext(i),n=this.renderer._roundPixels|e._roundPixels;t.batches=s.batches.map(o=>{let a=pe.get(Bi);return o.copyTo(a),a.renderable=e,a.roundPixels=n,a})}destroy(){this.renderer=null,this._adaptor.destroy(),this._adaptor=null,this.state=null}};mo.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"graphics"}});var Cf=p(()=>{P();wu();ny();O.add(mo);O.add(As)});var Kr,Su=p(()=>{"use strict";Kr=class{constructor(){this.batcherName="default",this.packAsQuad=!1,this.indexOffset=0,this.attributeOffset=0,this.roundPixels=0,this._batcher=null,this._batch=null,this._textureMatrixUpdateId=-1,this._uvUpdateId=-1}get blendMode(){return this.renderable.groupBlendMode}get topology(){return this._topology||this.geometry.topology}set topology(e){this._topology=e}reset(){this.renderable=null,this.texture=null,this._batcher=null,this._batch=null,this.geometry=null,this._uvUpdateId=-1,this._textureMatrixUpdateId=-1}setTexture(e){this.texture!==e&&(this.texture=e,this._textureMatrixUpdateId=-1)}get uvs(){let t=this.geometry.getBuffer("aUV"),i=t.data,s=i,n=this.texture.textureMatrix;return n.isSimple||(s=this._transformedUvs,(this._textureMatrixUpdateId!==n._updateID||this._uvUpdateId!==t._updateID)&&((!s||s.length<i.length)&&(s=this._transformedUvs=new Float32Array(i.length)),this._textureMatrixUpdateId=n._updateID,this._uvUpdateId=t._updateID,n.multiplyUvs(i,s))),s}get positions(){return this.geometry.positions}get indices(){return this.geometry.indices}get color(){return this.renderable.groupColorAlpha}get groupTransform(){return this.renderable.groupTransform}get attributeSize(){return this.geometry.positions.length/2}get indexSize(){return this.geometry.indices.length}}});var vu,po,oy=p(()=>{P();ee();$r();rt();io();Ps();Su();vu=class{destroy(){}},po=class{constructor(e,t){this.localUniforms=new ce({uTransformMatrix:{value:new R,type:"mat3x3<f32>"},uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uRound:{value:0,type:"f32"}}),this.localUniformsBindGroup=new Ne({0:this.localUniforms}),this.renderer=e,this._adaptor=t,this._adaptor.init()}validateRenderable(e){let t=this._getMeshData(e),i=t.batched,s=e.batched;if(t.batched=s,i!==s)return!0;if(s){let n=e._geometry;if(n.indices.length!==t.indexSize||n.positions.length!==t.vertexSize)return t.indexSize=n.indices.length,t.vertexSize=n.positions.length,!0;let o=this._getBatchableMesh(e);return o.texture.uid!==e._texture.uid&&(o._textureMatrixUpdateId=-1),!o._batcher.checkAndUpdateTexture(o,e._texture)}return!1}addRenderable(e,t){let i=this.renderer.renderPipes.batch,{batched:s}=this._getMeshData(e);if(s){let n=this._getBatchableMesh(e);n.setTexture(e._texture),n.geometry=e._geometry,i.addToBatch(n,t)}else i.break(t),t.add(e)}updateRenderable(e){if(e.batched){let t=this._getBatchableMesh(e);t.setTexture(e._texture),t.geometry=e._geometry,t._batcher.updateElement(t)}}execute(e){if(!e.isRenderable)return;e.state.blendMode=Tr(e.groupBlendMode,e.texture._source);let t=this.localUniforms;t.uniforms.uTransformMatrix=e.groupTransform,t.uniforms.uRound=this.renderer._roundPixels|e._roundPixels,t.update(),er(e.groupColorAlpha,t.uniforms.uColor,0),this._adaptor.execute(this,e)}_getMeshData(e){var t,i;return(t=e._gpuData)[i=this.renderer.uid]||(t[i]=new vu),e._gpuData[this.renderer.uid].meshData||this._initMeshData(e)}_initMeshData(e){return e._gpuData[this.renderer.uid].meshData={batched:e.batched,indexSize:e._geometry.indices?.length,vertexSize:e._geometry.positions?.length},e._gpuData[this.renderer.uid].meshData}_getBatchableMesh(e){var t,i;return(t=e._gpuData)[i=this.renderer.uid]||(t[i]=new vu),e._gpuData[this.renderer.uid].batchableMesh||this._initBatchableMesh(e)}_initBatchableMesh(e){let t=new Kr;return t.renderable=e,t.setTexture(e._texture),t.transform=e.groupTransform,t.roundPixels=this.renderer._roundPixels|e._roundPixels,e._gpuData[this.renderer.uid].batchableMesh=t,t}destroy(){this.localUniforms=null,this.localUniformsBindGroup=null,this._adaptor.destroy(),this._adaptor=null,this.renderer=null}};po.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"mesh"}});var Ef=p(()=>{P();oy();O.add(po)});var Cu,ay=p(()=>{"use strict";Cu=class{execute(e,t){let i=e.state,s=e.renderer,n=t.shader||e.defaultShader;n.resources.uTexture=t.texture._source,n.resources.uniforms=e.localUniforms;let o=s.gl,a=e.getBuffers(t);s.shader.bind(n),s.state.set(i),s.geometry.bind(a.geometry,n.glProgram);let u=a.geometry.indexBuffer.data.BYTES_PER_ELEMENT===2?o.UNSIGNED_SHORT:o.UNSIGNED_INT;o.drawElements(o.TRIANGLES,t.particleChildren.length*6,u,0)}}});function kf(r,e=null){let t=r*6;if(t>65535?e||(e=new Uint32Array(t)):e||(e=new Uint16Array(t)),e.length!==t)throw new Error(`Out buffer length is incorrect, got ${e.length} and expected ${t}`);for(let i=0,s=0;i<t;i+=6,s+=4)e[i+0]=s+0,e[i+1]=s+1,e[i+2]=s+2,e[i+3]=s+0,e[i+4]=s+2,e[i+5]=s+3;return e}var cy=p(()=>{"use strict"});function ly(r){return{dynamicUpdate:uy(r,!0),staticUpdate:uy(r,!1)}}function uy(r,e){let t=[];t.push(`
254
254
 
255
255
  var index = 0;
256
256
 
@@ -258,13 +258,13 @@ ${s.join(`
258
258
  {
259
259
  const p = ps[i];
260
260
 
261
- `);let i=0;for(let n in r){let o=r[n];if(e!==o.dynamic)continue;t.push(`offset = index + ${i}`),t.push(o.code);let a=ut(o.format);i+=a.stride/4}t.push(`
261
+ `);let i=0;for(let n in r){let o=r[n];if(e!==o.dynamic)continue;t.push(`offset = index + ${i}`),t.push(o.code);let a=ct(o.format);i+=a.stride/4}t.push(`
262
262
  index += stride * 4;
263
263
  }
264
264
  `),t.unshift(`
265
265
  var stride = ${i};
266
266
  `);let s=t.join(`
267
- `);return new Function("ps","f32v","u32v",s)}var U2=p(()=>{qi()});function fB(r){let e=[];for(let t in r){let i=r[t];e.push(t,i.code,i.dynamic?"d":"s")}return e.join("_")}var ul,O2=p(()=>{Yr();Cr();Os();qi();wf();M2();U2();ul=class{constructor(e){this._size=0,this._generateParticleUpdateCache={};let t=this._size=e.size??1e3,i=e.properties,s=0,n=0;for(let l in i){let h=i[l],f=ut(h.format);h.dynamic?n+=f.stride:s+=f.stride}this._dynamicStride=n/4,this._staticStride=s/4,this.staticAttributeBuffer=new Zt(t*4*s),this.dynamicAttributeBuffer=new Zt(t*4*n),this.indexBuffer=hm(t);let o=new At,a=0,c=0;this._staticBuffer=new Ee({data:new Float32Array(1),label:"static-particle-buffer",shrinkToFit:!1,usage:Q.VERTEX|Q.COPY_DST}),this._dynamicBuffer=new Ee({data:new Float32Array(1),label:"dynamic-particle-buffer",shrinkToFit:!1,usage:Q.VERTEX|Q.COPY_DST});for(let l in i){let h=i[l],f=ut(h.format);h.dynamic?(o.addAttribute(h.attributeName,{buffer:this._dynamicBuffer,stride:this._dynamicStride*4,offset:a*4,format:h.format}),a+=f.size):(o.addAttribute(h.attributeName,{buffer:this._staticBuffer,stride:this._staticStride*4,offset:c*4,format:h.format}),c+=f.size)}o.addIndex(this.indexBuffer);let u=this.getParticleUpdate(i);this._dynamicUpload=u.dynamicUpdate,this._staticUpload=u.staticUpdate,this.geometry=o}getParticleUpdate(e){let t=fB(e);return this._generateParticleUpdateCache[t]?this._generateParticleUpdateCache[t]:(this._generateParticleUpdateCache[t]=this.generateParticleUpdate(e),this._generateParticleUpdateCache[t])}generateParticleUpdate(e){return F2(e)}update(e,t){e.length>this._size&&(t=!0,this._size=Math.max(e.length,this._size*1.5|0),this.staticAttributeBuffer=new Zt(this._size*this._staticStride*4*4),this.dynamicAttributeBuffer=new Zt(this._size*this._dynamicStride*4*4),this.indexBuffer=hm(this._size),this.geometry.indexBuffer.setDataWithSize(this.indexBuffer,this.indexBuffer.byteLength,!0));let i=this.dynamicAttributeBuffer;if(this._dynamicUpload(e,i.float32View,i.uint32View),this._dynamicBuffer.setDataWithSize(this.dynamicAttributeBuffer.float32View,e.length*this._dynamicStride*4,!0),t){let s=this.staticAttributeBuffer;this._staticUpload(e,s.float32View,s.uint32View),this._staticBuffer.setDataWithSize(s.float32View,e.length*this._staticStride*4,!0)}}destroy(){this._staticBuffer.destroy(),this._dynamicBuffer.destroy(),this.geometry.destroy()}}});var G2,N2=p(()=>{G2=`varying vec2 vUV;
267
+ `);return new Function("ps","f32v","u32v",s)}var hy=p(()=>{Pi()});function GA(r){let e=[];for(let t in r){let i=r[t];e.push(t,i.code,i.dynamic?"d":"s")}return e.join("_")}var Eu,dy=p(()=>{qr();wr();xs();Pi();Od();cy();hy();Eu=class{constructor(e){this._size=0,this._generateParticleUpdateCache={};let t=this._size=e.size??1e3,i=e.properties,s=0,n=0;for(let l in i){let h=i[l],f=ct(h.format);h.dynamic?n+=f.stride:s+=f.stride}this._dynamicStride=n/4,this._staticStride=s/4,this.staticAttributeBuffer=new Xt(t*4*s),this.dynamicAttributeBuffer=new Xt(t*4*n),this.indexBuffer=kf(t);let o=new vt,a=0,c=0;this._staticBuffer=new Ce({data:new Float32Array(1),label:"static-particle-buffer",shrinkToFit:!1,usage:Q.VERTEX|Q.COPY_DST}),this._dynamicBuffer=new Ce({data:new Float32Array(1),label:"dynamic-particle-buffer",shrinkToFit:!1,usage:Q.VERTEX|Q.COPY_DST});for(let l in i){let h=i[l],f=ct(h.format);h.dynamic?(o.addAttribute(h.attributeName,{buffer:this._dynamicBuffer,stride:this._dynamicStride*4,offset:a*4,format:h.format}),a+=f.size):(o.addAttribute(h.attributeName,{buffer:this._staticBuffer,stride:this._staticStride*4,offset:c*4,format:h.format}),c+=f.size)}o.addIndex(this.indexBuffer);let u=this.getParticleUpdate(i);this._dynamicUpload=u.dynamicUpdate,this._staticUpload=u.staticUpdate,this.geometry=o}getParticleUpdate(e){let t=GA(e);return this._generateParticleUpdateCache[t]?this._generateParticleUpdateCache[t]:(this._generateParticleUpdateCache[t]=this.generateParticleUpdate(e),this._generateParticleUpdateCache[t])}generateParticleUpdate(e){return ly(e)}update(e,t){e.length>this._size&&(t=!0,this._size=Math.max(e.length,this._size*1.5|0),this.staticAttributeBuffer=new Xt(this._size*this._staticStride*4*4),this.dynamicAttributeBuffer=new Xt(this._size*this._dynamicStride*4*4),this.indexBuffer=kf(this._size),this.geometry.indexBuffer.setDataWithSize(this.indexBuffer,this.indexBuffer.byteLength,!0));let i=this.dynamicAttributeBuffer;if(this._dynamicUpload(e,i.float32View,i.uint32View),this._dynamicBuffer.setDataWithSize(this.dynamicAttributeBuffer.float32View,e.length*this._dynamicStride*4,!0),t){let s=this.staticAttributeBuffer;this._staticUpload(e,s.float32View,s.uint32View),this._staticBuffer.setDataWithSize(s.float32View,e.length*this._staticStride*4,!0)}}destroy(){this._staticBuffer.destroy(),this._dynamicBuffer.destroy(),this.geometry.destroy()}}});var fy,my=p(()=>{fy=`varying vec2 vUV;
268
268
  varying vec4 vColor;
269
269
 
270
270
  uniform sampler2D uTexture;
@@ -272,7 +272,7 @@ uniform sampler2D uTexture;
272
272
  void main(void){
273
273
  vec4 color = texture2D(uTexture, vUV) * vColor;
274
274
  gl_FragColor = color;
275
- }`});var L2,z2=p(()=>{L2=`attribute vec2 aVertex;
275
+ }`});var py,gy=p(()=>{py=`attribute vec2 aVertex;
276
276
  attribute vec2 aUV;
277
277
  attribute vec4 aColor;
278
278
 
@@ -311,7 +311,7 @@ void main(void){
311
311
  vUV = aUV;
312
312
  vColor = vec4(aColor.rgb * aColor.a, aColor.a) * uColor;
313
313
  }
314
- `});var dm,V2=p(()=>{dm=`
314
+ `});var Af,xy=p(()=>{Af=`
315
315
  struct ParticleUniforms {
316
316
  uProjectionMatrix:mat3x3<f32>,
317
317
  uColor:vec4<f32>,
@@ -364,8 +364,8 @@ fn mainFragment(
364
364
  var sample = textureSample(uTexture, uSampler, uv) * color;
365
365
 
366
366
  return sample;
367
- }`});var ll,H2=p(()=>{He();te();$i();Ns();Ot();le();Ui();N2();z2();V2();ll=class extends ke{constructor(){let e=Pt.from({vertex:L2,fragment:G2}),t=Bt.from({fragment:{source:dm,entryPoint:"mainFragment"},vertex:{source:dm,entryPoint:"mainVertex"}});super({glProgram:e,gpuProgram:t,resources:{uTexture:M.WHITE.source,uSampler:new et({}),uniforms:{uTranslationMatrix:{value:new R,type:"mat3x3<f32>"},uColor:{value:new q(16777215),type:"vec4<f32>"},uRound:{value:1,type:"f32"},uResolution:{value:[0,0],type:"vec2<f32>"}}}})}}});var Ks,fm=p(()=>{te();it();Ao();Gt();Ys();O2();H2();Ks=class{constructor(e,t){this.state=Pe.for2d(),this.localUniforms=new ce({uTranslationMatrix:{value:new R,type:"mat3x3<f32>"},uColor:{value:new Float32Array(4),type:"vec4<f32>"},uRound:{value:1,type:"f32"},uResolution:{value:[0,0],type:"vec2<f32>"}}),this.renderer=e,this.adaptor=t,this.defaultShader=new ll,this.state=Pe.for2d()}validateRenderable(e){return!1}addRenderable(e,t){this.renderer.renderPipes.batch.break(t),t.add(e)}getBuffers(e){return e._gpuData[this.renderer.uid]||this._initBuffer(e)}_initBuffer(e){return e._gpuData[this.renderer.uid]=new ul({size:e.particleChildren.length,properties:e._properties}),e._gpuData[this.renderer.uid]}updateRenderable(e){}execute(e){let t=e.particleChildren;if(t.length===0)return;let i=this.renderer,s=this.getBuffers(e);e.texture||(e.texture=t[0].texture);let n=this.state;s.update(t,e._childrenDirty),e._childrenDirty=!1,n.blendMode=vr(e.blendMode,e.texture._source);let o=this.localUniforms.uniforms,a=o.uTranslationMatrix;e.worldTransform.copyTo(a),a.prepend(i.globalUniforms.globalUniformData.projectionMatrix),o.uResolution=i.globalUniforms.globalUniformData.resolution,o.uRound=i._roundPixels|e._roundPixels,sr(e.groupColorAlpha,o.uColor,0),this.adaptor.execute(this,e)}destroy(){this.defaultShader&&(this.defaultShader.destroy(),this.defaultShader=null)}}});var Lo,W2=p(()=>{B();D2();fm();Lo=class extends Ks{constructor(e){super(e,new cl)}};Lo.extension={type:[b.WebGLPipes],name:"particle"}});var hl,$2=p(()=>{"use strict";hl=class{execute(e,t){let i=e.renderer,s=t.shader||e.defaultShader;s.groups[0]=i.renderPipes.uniformBatch.getUniformBindGroup(e.localUniforms,!0),s.groups[1]=i.texture.getTextureBindGroup(t.texture);let n=e.state,o=e.getBuffers(t);i.encoder.draw({geometry:o.geometry,shader:t.shader||e.defaultShader,state:n,size:t.particleChildren.length*6})}}});var zo,q2=p(()=>{B();$2();fm();zo=class extends Ks{constructor(e){super(e,new hl)}};zo.extension={type:[b.WebGPUPipes],name:"particle"}});var mm=p(()=>{B();W2();q2();O.add(Lo);O.add(zo)});function Vo(r,e){let{texture:t,bounds:i}=r;Ou(i,e._anchor,t);let s=e._style._getFinalPadding();i.minX-=s,i.minY-=s,i.maxX-=s,i.maxY-=s}var pm=p(()=>{pf()});var nr,Ho=p(()=>{"use strict";nr=class{constructor(){this.batcherName="default",this.topology="triangle-list",this.attributeSize=4,this.indexSize=6,this.packAsQuad=!0,this.roundPixels=0,this._attributeStart=0,this._batcher=null,this._batch=null}get blendMode(){return this.renderable.groupBlendMode}get color(){return this.renderable.groupColorAlpha}reset(){this.renderable=null,this.texture=null,this._batcher=null,this._batch=null,this.bounds=null}destroy(){}}});var dl,j2=p(()=>{Ho();dl=class extends nr{constructor(e){super(),this._renderer=e,e.runners.resolutionChange.add(this)}resolutionChange(){let e=this.renderable;e._autoResolution&&e.onViewUpdate()}destroy(){this._renderer.canvasText.returnTexture(this.texture),this._renderer=null}}});var Wo,X2=p(()=>{B();pm();j2();Wo=class{constructor(e){this._renderer=e}validateRenderable(e){return e._didTextUpdate}addRenderable(e,t){let i=this._getGpuText(e);e._didTextUpdate&&(this._updateGpuText(e),e._didTextUpdate=!1),this._renderer.renderPipes.batch.addToBatch(i,t)}updateRenderable(e){let t=this._getGpuText(e);t._batcher.updateElement(t)}_updateGpuText(e){let t=this._getGpuText(e);t.texture&&this._renderer.canvasText.returnTexture(t.texture),e._resolution=e._autoResolution?this._renderer.resolution:e.resolution,t.texture=t.texture=this._renderer.canvasText.getTexture(e),Vo(t,e)}_getGpuText(e){return e._gpuData[this._renderer.uid]||this.initGpuText(e)}initGpuText(e){let t=new dl(this._renderer);return t.renderable=e,t.transform=e.groupTransform,t.bounds={minX:0,maxX:1,minY:0,maxY:0},t.roundPixels=this._renderer._roundPixels|e._roundPixels,e._gpuData[this._renderer.uid]=t,t}destroy(){this._renderer=null}};Wo.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"text"}});var Y2,kr,fl=p(()=>{te();Oe();Y2={repeat:{addressModeU:"repeat",addressModeV:"repeat"},"repeat-x":{addressModeU:"repeat",addressModeV:"clamp-to-edge"},"repeat-y":{addressModeU:"clamp-to-edge",addressModeV:"repeat"},"no-repeat":{addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}},kr=class{constructor(e,t){this.uid=K("fillPattern"),this.transform=new R,this._styleKey=null,this.texture=e,this.transform.scale(1/e.frame.width,1/e.frame.height),t&&(e.source.style.addressModeU=Y2[t].addressModeU,e.source.style.addressModeV=Y2[t].addressModeV)}setTransform(e){let t=this.texture;this.transform.copyFrom(e),this.transform.invert(),this.transform.scale(1/t.frame.width,1/t.frame.height),this._styleKey=null}get styleKey(){return this._styleKey?this._styleKey:(this._styleKey=`fill-pattern-${this.uid}-${this.texture.uid}-${this.transform.toArray().join("-")}`,this._styleKey)}}});var Q2=Fr((K7,K2)=>{K2.exports=pB;var gm={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},mB=/([astvzqmhlc])([^astvzqmhlc]*)/ig;function pB(r){var e=[];return r.replace(mB,function(t,i,s){var n=i.toLowerCase();for(s=xB(s),n=="m"&&s.length>2&&(e.push([i].concat(s.splice(0,2))),n="l",i=i=="m"?"l":"L");;){if(s.length==gm[n])return s.unshift(i),e.push(s);if(s.length<gm[n])throw new Error("malformed path data");e.push([i].concat(s.splice(0,gm[n])))}}),e}var gB=/-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/ig;function xB(r){var e=r.match(gB);return e?e.map(Number):[]}});function J2(r,e){let t=(0,Z2.default)(r),i=[],s=null,n=0,o=0;for(let a=0;a<t.length;a++){let c=t[a],u=c[0],l=c;switch(u){case"M":n=l[1],o=l[2],e.moveTo(n,o);break;case"m":n+=l[1],o+=l[2],e.moveTo(n,o);break;case"H":n=l[1],e.lineTo(n,o);break;case"h":n+=l[1],e.lineTo(n,o);break;case"V":o=l[1],e.lineTo(n,o);break;case"v":o+=l[1],e.lineTo(n,o);break;case"L":n=l[1],o=l[2],e.lineTo(n,o);break;case"l":n+=l[1],o+=l[2],e.lineTo(n,o);break;case"C":n=l[5],o=l[6],e.bezierCurveTo(l[1],l[2],l[3],l[4],n,o);break;case"c":e.bezierCurveTo(n+l[1],o+l[2],n+l[3],o+l[4],n+l[5],o+l[6]),n+=l[5],o+=l[6];break;case"S":n=l[3],o=l[4],e.bezierCurveToShort(l[1],l[2],n,o);break;case"s":e.bezierCurveToShort(n+l[1],o+l[2],n+l[3],o+l[4]),n+=l[3],o+=l[4];break;case"Q":n=l[3],o=l[4],e.quadraticCurveTo(l[1],l[2],n,o);break;case"q":e.quadraticCurveTo(n+l[1],o+l[2],n+l[3],o+l[4]),n+=l[3],o+=l[4];break;case"T":n=l[1],o=l[2],e.quadraticCurveToShort(n,o);break;case"t":n+=l[1],o+=l[2],e.quadraticCurveToShort(n,o);break;case"A":n=l[6],o=l[7],e.arcToSvg(l[1],l[2],l[3],l[4],l[5],n,o);break;case"a":n+=l[6],o+=l[7],e.arcToSvg(l[1],l[2],l[3],l[4],l[5],n,o);break;case"Z":case"z":e.closePath(),i.length>0&&(s=i.pop(),s?(n=s.startX,o=s.startY):(n=0,o=0)),s=null;break;default:N(`Unknown SVG path command: ${u}`)}u!=="Z"&&u!=="z"&&s===null&&(s={startX:n,startY:o},i.push(s))}return e}var Z2,eT=p(()=>{Z2=Ch(Q2(),1);pe()});var ml,tT=p(()=>{Ge();ml=class r{constructor(e=0,t=0,i=0){this.type="circle",this.x=e,this.y=t,this.radius=i}clone(){return new r(this.x,this.y,this.radius)}contains(e,t){if(this.radius<=0)return!1;let i=this.radius*this.radius,s=this.x-e,n=this.y-t;return s*=s,n*=n,s+n<=i}strokeContains(e,t,i,s=.5){if(this.radius===0)return!1;let n=this.x-e,o=this.y-t,a=this.radius,c=(1-s)*i,u=Math.sqrt(n*n+o*o);return u<=a+c&&u>a-(i-c)}getBounds(e){return e||(e=new Y),e.x=this.x-this.radius,e.y=this.y-this.radius,e.width=this.radius*2,e.height=this.radius*2,e}copyFrom(e){return this.x=e.x,this.y=e.y,this.radius=e.radius,this}copyTo(e){return e.copyFrom(this),e}toString(){return`[pixi.js/math:Circle x=${this.x} y=${this.y} radius=${this.radius}]`}}});var pl,rT=p(()=>{Ge();pl=class r{constructor(e=0,t=0,i=0,s=0){this.type="ellipse",this.x=e,this.y=t,this.halfWidth=i,this.halfHeight=s}clone(){return new r(this.x,this.y,this.halfWidth,this.halfHeight)}contains(e,t){if(this.halfWidth<=0||this.halfHeight<=0)return!1;let i=(e-this.x)/this.halfWidth,s=(t-this.y)/this.halfHeight;return i*=i,s*=s,i+s<=1}strokeContains(e,t,i,s=.5){let{halfWidth:n,halfHeight:o}=this;if(n<=0||o<=0)return!1;let a=i*(1-s),c=i-a,u=n-c,l=o-c,h=n+a,f=o+a,d=e-this.x,m=t-this.y,x=d*d/(u*u)+m*m/(l*l),g=d*d/(h*h)+m*m/(f*f);return x>1&&g<=1}getBounds(e){return e||(e=new Y),e.x=this.x-this.halfWidth,e.y=this.y-this.halfHeight,e.width=this.halfWidth*2,e.height=this.halfHeight*2,e}copyFrom(e){return this.x=e.x,this.y=e.y,this.halfWidth=e.halfWidth,this.halfHeight=e.halfHeight,this}copyTo(e){return e.copyFrom(this),e}toString(){return`[pixi.js/math:Ellipse x=${this.x} y=${this.y} halfWidth=${this.halfWidth} halfHeight=${this.halfHeight}]`}}});function iT(r,e,t,i,s,n){let o=r-t,a=e-i,c=s-t,u=n-i,l=o*c+a*u,h=c*c+u*u,f=-1;h!==0&&(f=l/h);let d,m;f<0?(d=t,m=i):f>1?(d=s,m=n):(d=t+f*c,m=i+f*u);let x=r-d,g=e-m;return x*x+g*g}var sT=p(()=>{"use strict"});var _B,bB,Qs,nT=p(()=>{sT();Ge();Qs=class r{constructor(...e){this.type="polygon";let t=Array.isArray(e[0])?e[0]:e;if(typeof t[0]!="number"){let i=[];for(let s=0,n=t.length;s<n;s++)i.push(t[s].x,t[s].y);t=i}this.points=t,this.closePath=!0}isClockwise(){let e=0,t=this.points,i=t.length;for(let s=0;s<i;s+=2){let n=t[s],o=t[s+1],a=t[(s+2)%i],c=t[(s+3)%i];e+=(a-n)*(c+o)}return e<0}containsPolygon(e){let t=this.getBounds(_B),i=e.getBounds(bB);if(!t.containsRect(i))return!1;let s=e.points;for(let n=0;n<s.length;n+=2){let o=s[n],a=s[n+1];if(!this.contains(o,a))return!1}return!0}clone(){let e=this.points.slice(),t=new r(e);return t.closePath=this.closePath,t}contains(e,t){let i=!1,s=this.points.length/2;for(let n=0,o=s-1;n<s;o=n++){let a=this.points[n*2],c=this.points[n*2+1],u=this.points[o*2],l=this.points[o*2+1];c>t!=l>t&&e<(u-a)*((t-c)/(l-c))+a&&(i=!i)}return i}strokeContains(e,t,i,s=.5){let n=i*i,o=n*(1-s),a=n-o,{points:c}=this,u=c.length-(this.closePath?0:2);for(let l=0;l<u;l+=2){let h=c[l],f=c[l+1],d=c[(l+2)%c.length],m=c[(l+3)%c.length],x=iT(e,t,h,f,d,m),g=Math.sign((d-h)*(t-f)-(m-f)*(e-h));if(x<=(g<0?a:o))return!0}return!1}getBounds(e){e||(e=new Y);let t=this.points,i=1/0,s=-1/0,n=1/0,o=-1/0;for(let a=0,c=t.length;a<c;a+=2){let u=t[a],l=t[a+1];i=u<i?u:i,s=u>s?u:s,n=l<n?l:n,o=l>o?l:o}return e.x=i,e.width=s-i,e.y=n,e.height=o-n,e}copyFrom(e){return this.points=e.points.slice(),this.closePath=e.closePath,this}copyTo(e){return e.copyFrom(this),e}toString(){return`[pixi.js/math:PolygoncloseStroke=${this.closePath}points=${this.points.reduce((e,t)=>`${e}, ${t}`,"")}]`}get lastX(){return this.points[this.points.length-2]}get lastY(){return this.points[this.points.length-1]}get x(){return this.points[this.points.length-2]}get y(){return this.points[this.points.length-1]}}});var gl,xl,oT=p(()=>{Ge();gl=(r,e,t,i,s,n,o)=>{let a=r-t,c=e-i,u=Math.sqrt(a*a+c*c);return u>=s-n&&u<=s+o},xl=class r{constructor(e=0,t=0,i=0,s=0,n=20){this.type="roundedRectangle",this.x=e,this.y=t,this.width=i,this.height=s,this.radius=n}getBounds(e){return e||(e=new Y),e.x=this.x,e.y=this.y,e.width=this.width,e.height=this.height,e}clone(){return new r(this.x,this.y,this.width,this.height,this.radius)}copyFrom(e){return this.x=e.x,this.y=e.y,this.width=e.width,this.height=e.height,this}copyTo(e){return e.copyFrom(this),e}contains(e,t){if(this.width<=0||this.height<=0)return!1;if(e>=this.x&&e<=this.x+this.width&&t>=this.y&&t<=this.y+this.height){let i=Math.max(0,Math.min(this.radius,Math.min(this.width,this.height)/2));if(t>=this.y+i&&t<=this.y+this.height-i||e>=this.x+i&&e<=this.x+this.width-i)return!0;let s=e-(this.x+i),n=t-(this.y+i),o=i*i;if(s*s+n*n<=o||(s=e-(this.x+this.width-i),s*s+n*n<=o)||(n=t-(this.y+this.height-i),s*s+n*n<=o)||(s=e-(this.x+i),s*s+n*n<=o))return!0}return!1}strokeContains(e,t,i,s=.5){let{x:n,y:o,width:a,height:c,radius:u}=this,l=i*(1-s),h=i-l,f=n+u,d=o+u,m=a-u*2,x=c-u*2,g=n+a,_=o+c;return(e>=n-l&&e<=n+h||e>=g-h&&e<=g+l)&&t>=d&&t<=d+x||(t>=o-l&&t<=o+h||t>=_-h&&t<=_+l)&&e>=f&&e<=f+m?!0:e<f&&t<d&&gl(e,t,f,d,u,h,l)||e>g-u&&t<d&&gl(e,t,g-u,d,u,h,l)||e>g-u&&t>_-u&&gl(e,t,g-u,_-u,u,h,l)||e<f&&t>_-u&&gl(e,t,f,_-u,u,h,l)}toString(){return`[pixi.js/math:RoundedRectangle x=${this.x} y=${this.y}width=${this.width} height=${this.height} radius=${this.radius}]`}}});function bl(r,e,t,i,s,n,o,a,c,u){let h=Math.min(.99,Math.max(0,u??Xs.defaultOptions.bezierSmoothness)),f=(TB-h)/1;return f*=f,wB(e,t,i,s,n,o,a,c,r,f),r}function wB(r,e,t,i,s,n,o,a,c,u){_m(r,e,t,i,s,n,o,a,c,u,0),c.push(o,a)}function _m(r,e,t,i,s,n,o,a,c,u,l){if(l>yB)return;let h=Math.PI,f=(r+t)/2,d=(e+i)/2,m=(t+s)/2,x=(i+n)/2,g=(s+o)/2,_=(n+a)/2,y=(f+m)/2,S=(d+x)/2,T=(m+g)/2,C=(x+_)/2,v=(y+T)/2,E=(S+C)/2;if(l>0){let D=o-r,A=a-e,P=Math.abs((t-o)*A-(i-a)*D),k=Math.abs((s-o)*A-(n-a)*D),G,j;if(P>_l&&k>_l){if((P+k)*(P+k)<=u*(D*D+A*A)){if(Zs<xm){c.push(v,E);return}let be=Math.atan2(n-i,s-t);if(G=Math.abs(be-Math.atan2(i-e,t-r)),j=Math.abs(Math.atan2(a-n,o-s)-be),G>=h&&(G=2*h-G),j>=h&&(j=2*h-j),G+j<Zs){c.push(v,E);return}if(Ki!==0){if(G>Ki){c.push(t,i);return}if(j>Ki){c.push(s,n);return}}}}else if(P>_l){if(P*P<=u*(D*D+A*A)){if(Zs<xm){c.push(v,E);return}if(G=Math.abs(Math.atan2(n-i,s-t)-Math.atan2(i-e,t-r)),G>=h&&(G=2*h-G),G<Zs){c.push(t,i),c.push(s,n);return}if(Ki!==0&&G>Ki){c.push(t,i);return}}}else if(k>_l){if(k*k<=u*(D*D+A*A)){if(Zs<xm){c.push(v,E);return}if(G=Math.abs(Math.atan2(a-n,o-s)-Math.atan2(n-i,s-t)),G>=h&&(G=2*h-G),G<Zs){c.push(t,i),c.push(s,n);return}if(Ki!==0&&G>Ki){c.push(s,n);return}}}else if(D=v-(r+o)/2,A=E-(e+a)/2,D*D+A*A<=u){c.push(v,E);return}}_m(r,e,f,d,y,S,v,E,c,u,l+1),_m(v,E,T,C,g,_,o,a,c,u,l+1)}var yB,_l,TB,xm,Zs,Ki,bm=p(()=>{nl();yB=8,_l=11920929e-14,TB=1,xm=.01,Zs=0,Ki=0});function cT(r,e,t,i,s,n,o,a){let u=Math.min(.99,Math.max(0,a??Xs.defaultOptions.bezierSmoothness)),l=(CB-u)/1;return l*=l,kB(e,t,i,s,n,o,r,l),r}function kB(r,e,t,i,s,n,o,a){ym(o,r,e,t,i,s,n,a,0),o.push(s,n)}function ym(r,e,t,i,s,n,o,a,c){if(c>SB)return;let u=Math.PI,l=(e+i)/2,h=(t+s)/2,f=(i+n)/2,d=(s+o)/2,m=(l+f)/2,x=(h+d)/2,g=n-e,_=o-t,y=Math.abs((i-n)*_-(s-o)*g);if(y>vB){if(y*y<=a*(g*g+_*_)){if(aT<EB){r.push(m,x);return}let S=Math.abs(Math.atan2(o-s,n-i)-Math.atan2(s-t,i-e));if(S>=u&&(S=2*u-S),S<aT){r.push(m,x);return}}}else if(g=m-(e+n)/2,_=x-(t+o)/2,g*g+_*_<=a){r.push(m,x);return}ym(r,e,t,l,h,m,x,a,c+1),ym(r,m,x,f,d,n,o,a,c+1)}var SB,vB,CB,EB,aT,uT=p(()=>{nl();SB=8,vB=11920929e-14,CB=1,EB=.01,aT=0});function yl(r,e,t,i,s,n,o,a){let c=Math.abs(s-n);(!o&&s>n||o&&n>s)&&(c=2*Math.PI-c),a||(a=Math.max(6,Math.floor(6*Math.pow(i,1/3)*(c/Math.PI)))),a=Math.max(a,3);let u=c/a,l=s;u*=o?-1:1;for(let h=0;h<a+1;h++){let f=Math.cos(l),d=Math.sin(l),m=e+f*i,x=t+d*i;r.push(m,x),l+=u}}var Tm=p(()=>{"use strict"});function lT(r,e,t,i,s,n){let o=r[r.length-2],c=r[r.length-1]-t,u=o-e,l=s-t,h=i-e,f=Math.abs(c*h-u*l);if(f<1e-8||n===0){(r[r.length-2]!==e||r[r.length-1]!==t)&&r.push(e,t);return}let d=c*c+u*u,m=l*l+h*h,x=c*l+u*h,g=n*Math.sqrt(d)/f,_=n*Math.sqrt(m)/f,y=g*x/d,S=_*x/m,T=g*h+_*u,C=g*l+_*c,v=u*(_+y),E=c*(_+y),D=h*(g+S),A=l*(g+S),P=Math.atan2(E-C,v-T),k=Math.atan2(A-C,D-T);yl(r,T+e,C+t,n,P,k,u*l>h*c)}var hT=p(()=>{Tm()});function AB(r,e){let t=e===-1.5707963267948966?-.551915024494:1.3333333333333333*Math.tan(e/4),i=e===1.5707963267948966?.551915024494:t,s=Math.cos(r),n=Math.sin(r),o=Math.cos(r+e),a=Math.sin(r+e);return[{x:s-n*i,y:n+s*i},{x:o+a*i,y:a-o*i},{x:o,y:a}]}function fT(r,e,t,i,s,n,o,a=0,c=0,u=0){if(n===0||o===0)return;let l=Math.sin(a*$o/360),h=Math.cos(a*$o/360),f=h*(e-i)/2+l*(t-s)/2,d=-l*(e-i)/2+h*(t-s)/2;if(f===0&&d===0)return;n=Math.abs(n),o=Math.abs(o);let m=Math.pow(f,2)/Math.pow(n,2)+Math.pow(d,2)/Math.pow(o,2);m>1&&(n*=Math.sqrt(m),o*=Math.sqrt(m)),PB(e,t,i,s,n,o,c,u,l,h,f,d,wm);let{ang1:x,ang2:g}=wm,{centerX:_,centerY:y}=wm,S=Math.abs(g)/($o/4);Math.abs(1-S)<1e-7&&(S=1);let T=Math.max(Math.ceil(S),1);g/=T;let C=r[r.length-2],v=r[r.length-1],E={x:0,y:0};for(let D=0;D<T;D++){let A=AB(x,g),{x:P,y:k}=Sm(A[0],n,o,h,l,_,y,E),{x:G,y:j}=Sm(A[1],n,o,h,l,_,y,E),{x:be,y:Tt}=Sm(A[2],n,o,h,l,_,y,E);bl(r,C,v,P,k,G,j,be,Tt),C=be,v=Tt,x+=g}}var $o,wm,Sm,dT,PB,mT=p(()=>{bm();$o=Math.PI*2,wm={centerX:0,centerY:0,ang1:0,ang2:0},Sm=({x:r,y:e},t,i,s,n,o,a,c)=>{r*=t,e*=i;let u=s*r-n*e,l=n*r+s*e;return c.x=u+o,c.y=l+a,c};dT=(r,e,t,i)=>{let s=r*i-e*t<0?-1:1,n=r*t+e*i;return n>1&&(n=1),n<-1&&(n=-1),s*Math.acos(n)},PB=(r,e,t,i,s,n,o,a,c,u,l,h,f)=>{let d=Math.pow(s,2),m=Math.pow(n,2),x=Math.pow(l,2),g=Math.pow(h,2),_=d*m-d*g-m*x;_<0&&(_=0),_/=d*g+m*x,_=Math.sqrt(_)*(o===a?-1:1);let y=_*s/n*h,S=_*-n/s*l,T=u*y-c*S+(r+t)/2,C=c*y+u*S+(e+i)/2,v=(l-y)/s,E=(h-S)/n,D=(-l-y)/s,A=(-h-S)/n,P=dT(1,0,v,E),k=dT(v,E,D,A);a===0&&k>0&&(k-=$o),a===1&&k<0&&(k+=$o),f.centerX=T,f.centerY=C,f.ang1=P,f.ang2=k}});function pT(r,e,t){let i=(o,a)=>{let c=a.x-o.x,u=a.y-o.y,l=Math.sqrt(c*c+u*u),h=c/l,f=u/l;return{len:l,nx:h,ny:f}},s=(o,a)=>{o===0?r.moveTo(a.x,a.y):r.lineTo(a.x,a.y)},n=e[e.length-1];for(let o=0;o<e.length;o++){let a=e[o%e.length],c=a.radius??t;if(c<=0){s(o,a),n=a;continue}let u=e[(o+1)%e.length],l=i(a,n),h=i(a,u);if(l.len<1e-4||h.len<1e-4){s(o,a),n=a;continue}let f=Math.asin(l.nx*h.ny-l.ny*h.nx),d=1,m=!1;l.nx*h.nx-l.ny*-h.ny<0?f<0?f=Math.PI+f:(f=Math.PI-f,d=-1,m=!0):f>0&&(d=-1,m=!0);let x=f/2,g,_=Math.abs(Math.cos(x)*c/Math.sin(x));_>Math.min(l.len/2,h.len/2)?(_=Math.min(l.len/2,h.len/2),g=Math.abs(_*Math.sin(x)/Math.cos(x))):g=c;let y=a.x+h.nx*_+-h.ny*g*d,S=a.y+h.ny*_+h.nx*g*d,T=Math.atan2(l.ny,l.nx)+Math.PI/2*d,C=Math.atan2(h.ny,h.nx)-Math.PI/2*d;o===0&&r.moveTo(y+Math.cos(T)*g,S+Math.sin(T)*g),r.arc(y,S,g,T,C,m),n=a}}function gT(r,e,t,i){let s=(a,c)=>Math.sqrt((a.x-c.x)**2+(a.y-c.y)**2),n=(a,c,u)=>({x:a.x+(c.x-a.x)*u,y:a.y+(c.y-a.y)*u}),o=e.length;for(let a=0;a<o;a++){let c=e[(a+1)%o],u=c.radius??t;if(u<=0){a===0?r.moveTo(c.x,c.y):r.lineTo(c.x,c.y);continue}let l=e[a],h=e[(a+2)%o],f=s(l,c),d;if(f<1e-4)d=c;else{let g=Math.min(f/2,u);d=n(c,l,g/f)}let m=s(h,c),x;if(m<1e-4)x=c;else{let g=Math.min(m/2,u);x=n(c,h,g/m)}a===0?r.moveTo(d.x,d.y):r.lineTo(d.x,d.y),r.quadraticCurveTo(c.x,c.y,x.x,x.y,i)}}var xT=p(()=>{"use strict"});var BB,Tl,_T=p(()=>{tT();rT();nT();Ge();oT();at();bm();uT();Tm();hT();mT();xT();BB=new Y,Tl=class{constructor(e){this.shapePrimitives=[],this._currentPoly=null,this._bounds=new ae,this._graphicsPath2D=e,this.signed=e.checkForHoles}moveTo(e,t){return this.startPoly(e,t),this}lineTo(e,t){this._ensurePoly();let i=this._currentPoly.points,s=i[i.length-2],n=i[i.length-1];return(s!==e||n!==t)&&i.push(e,t),this}arc(e,t,i,s,n,o){this._ensurePoly(!1);let a=this._currentPoly.points;return yl(a,e,t,i,s,n,o),this}arcTo(e,t,i,s,n){this._ensurePoly();let o=this._currentPoly.points;return lT(o,e,t,i,s,n),this}arcToSvg(e,t,i,s,n,o,a){let c=this._currentPoly.points;return fT(c,this._currentPoly.lastX,this._currentPoly.lastY,o,a,e,t,i,s,n),this}bezierCurveTo(e,t,i,s,n,o,a){this._ensurePoly();let c=this._currentPoly;return bl(this._currentPoly.points,c.lastX,c.lastY,e,t,i,s,n,o,a),this}quadraticCurveTo(e,t,i,s,n){this._ensurePoly();let o=this._currentPoly;return cT(this._currentPoly.points,o.lastX,o.lastY,e,t,i,s,n),this}closePath(){return this.endPoly(!0),this}addPath(e,t){this.endPoly(),t&&!t.isIdentity()&&(e=e.clone(!0),e.transform(t));let i=this.shapePrimitives,s=i.length;for(let n=0;n<e.instructions.length;n++){let o=e.instructions[n];this[o.action](...o.data)}if(e.checkForHoles&&i.length-s>1){let n=null;for(let o=s;o<i.length;o++){let a=i[o];if(a.shape.type==="polygon"){let c=a.shape,u=n?.shape;u&&u.containsPolygon(c)?(n.holes||(n.holes=[]),n.holes.push(a),i.copyWithin(o,o+1),i.length--,o--):n=a}}}return this}finish(e=!1){this.endPoly(e)}rect(e,t,i,s,n){return this.drawShape(new Y(e,t,i,s),n),this}circle(e,t,i,s){return this.drawShape(new ml(e,t,i),s),this}poly(e,t,i){let s=new Qs(e);return s.closePath=t,this.drawShape(s,i),this}regularPoly(e,t,i,s,n=0,o){s=Math.max(s|0,3);let a=-1*Math.PI/2+n,c=Math.PI*2/s,u=[];for(let l=0;l<s;l++){let h=a-l*c;u.push(e+i*Math.cos(h),t+i*Math.sin(h))}return this.poly(u,!0,o),this}roundPoly(e,t,i,s,n,o=0,a){if(s=Math.max(s|0,3),n<=0)return this.regularPoly(e,t,i,s,o);let c=i*Math.sin(Math.PI/s)-.001;n=Math.min(n,c);let u=-1*Math.PI/2+o,l=Math.PI*2/s,h=(s-2)*Math.PI/s/2;for(let f=0;f<s;f++){let d=f*l+u,m=e+i*Math.cos(d),x=t+i*Math.sin(d),g=d+Math.PI+h,_=d-Math.PI-h,y=m+n*Math.cos(g),S=x+n*Math.sin(g),T=m+n*Math.cos(_),C=x+n*Math.sin(_);f===0?this.moveTo(y,S):this.lineTo(y,S),this.quadraticCurveTo(m,x,T,C,a)}return this.closePath()}roundShape(e,t,i=!1,s){return e.length<3?this:(i?gT(this,e,t,s):pT(this,e,t),this.closePath())}filletRect(e,t,i,s,n){if(n===0)return this.rect(e,t,i,s);let o=Math.min(i,s)/2,a=Math.min(o,Math.max(-o,n)),c=e+i,u=t+s,l=a<0?-a:0,h=Math.abs(a);return this.moveTo(e,t+h).arcTo(e+l,t+l,e+h,t,h).lineTo(c-h,t).arcTo(c-l,t+l,c,t+h,h).lineTo(c,u-h).arcTo(c-l,u-l,e+i-h,u,h).lineTo(e+h,u).arcTo(e+l,u-l,e,u-h,h).closePath()}chamferRect(e,t,i,s,n,o){if(n<=0)return this.rect(e,t,i,s);let a=Math.min(n,Math.min(i,s)/2),c=e+i,u=t+s,l=[e+a,t,c-a,t,c,t+a,c,u-a,c-a,u,e+a,u,e,u-a,e,t+a];for(let h=l.length-1;h>=2;h-=2)l[h]===l[h-2]&&l[h-1]===l[h-3]&&l.splice(h-1,2);return this.poly(l,!0,o)}ellipse(e,t,i,s,n){return this.drawShape(new pl(e,t,i,s),n),this}roundRect(e,t,i,s,n,o){return this.drawShape(new xl(e,t,i,s,n),o),this}drawShape(e,t){return this.endPoly(),this.shapePrimitives.push({shape:e,transform:t}),this}startPoly(e,t){let i=this._currentPoly;return i&&this.endPoly(),i=new Qs,i.points.push(e,t),this._currentPoly=i,this}endPoly(e=!1){let t=this._currentPoly;return t&&t.points.length>2&&(t.closePath=e,this.shapePrimitives.push({shape:t})),this._currentPoly=null,this}_ensurePoly(e=!0){if(!this._currentPoly&&(this._currentPoly=new Qs,e)){let t=this.shapePrimitives[this.shapePrimitives.length-1];if(t){let i=t.shape.x,s=t.shape.y;if(t.transform&&!t.transform.isIdentity()){let n=t.transform,o=i;i=n.a*i+n.c*s+n.tx,s=n.b*o+n.d*s+n.ty}this._currentPoly.points.push(i,s)}else this._currentPoly.points.push(0,0)}}buildPath(){let e=this._graphicsPath2D;this.shapePrimitives.length=0,this._currentPoly=null;for(let t=0;t<e.instructions.length;t++){let i=e.instructions[t];this[i.action](...i.data)}this.finish()}get bounds(){let e=this._bounds;e.clear();let t=this.shapePrimitives;for(let i=0;i<t.length;i++){let s=t[i],n=s.shape.getBounds(BB);s.transform?e.addRect(n,s.transform):e.addRect(n)}return e}}});function qo(r,e){return r?r.prepend(e):e.clone()}var ei,vm=p(()=>{Ft();Oe();pe();eT();_T();ei=class r{constructor(e,t=!1){this.instructions=[],this.uid=K("graphicsPath"),this._dirty=!0,this.checkForHoles=t,typeof e=="string"?J2(e,this):this.instructions=e?.slice()??[]}get shapePath(){return this._shapePath||(this._shapePath=new Tl(this)),this._dirty&&(this._dirty=!1,this._shapePath.buildPath()),this._shapePath}addPath(e,t){return e=e.clone(),this.instructions.push({action:"addPath",data:[e,t]}),this._dirty=!0,this}arc(...e){return this.instructions.push({action:"arc",data:e}),this._dirty=!0,this}arcTo(...e){return this.instructions.push({action:"arcTo",data:e}),this._dirty=!0,this}arcToSvg(...e){return this.instructions.push({action:"arcToSvg",data:e}),this._dirty=!0,this}bezierCurveTo(...e){return this.instructions.push({action:"bezierCurveTo",data:e}),this._dirty=!0,this}bezierCurveToShort(e,t,i,s,n){let o=this.instructions[this.instructions.length-1],a=this.getLastPoint(J.shared),c=0,u=0;if(!o||o.action!=="bezierCurveTo")c=a.x,u=a.y;else{c=o.data[2],u=o.data[3];let l=a.x,h=a.y;c=l+(l-c),u=h+(h-u)}return this.instructions.push({action:"bezierCurveTo",data:[c,u,e,t,i,s,n]}),this._dirty=!0,this}closePath(){return this.instructions.push({action:"closePath",data:[]}),this._dirty=!0,this}ellipse(...e){return this.instructions.push({action:"ellipse",data:e}),this._dirty=!0,this}lineTo(...e){return this.instructions.push({action:"lineTo",data:e}),this._dirty=!0,this}moveTo(...e){return this.instructions.push({action:"moveTo",data:e}),this}quadraticCurveTo(...e){return this.instructions.push({action:"quadraticCurveTo",data:e}),this._dirty=!0,this}quadraticCurveToShort(e,t,i){let s=this.instructions[this.instructions.length-1],n=this.getLastPoint(J.shared),o=0,a=0;if(!s||s.action!=="quadraticCurveTo")o=n.x,a=n.y;else{o=s.data[0],a=s.data[1];let c=n.x,u=n.y;o=c+(c-o),a=u+(u-a)}return this.instructions.push({action:"quadraticCurveTo",data:[o,a,e,t,i]}),this._dirty=!0,this}rect(e,t,i,s,n){return this.instructions.push({action:"rect",data:[e,t,i,s,n]}),this._dirty=!0,this}circle(e,t,i,s){return this.instructions.push({action:"circle",data:[e,t,i,s]}),this._dirty=!0,this}roundRect(...e){return this.instructions.push({action:"roundRect",data:e}),this._dirty=!0,this}poly(...e){return this.instructions.push({action:"poly",data:e}),this._dirty=!0,this}regularPoly(...e){return this.instructions.push({action:"regularPoly",data:e}),this._dirty=!0,this}roundPoly(...e){return this.instructions.push({action:"roundPoly",data:e}),this._dirty=!0,this}roundShape(...e){return this.instructions.push({action:"roundShape",data:e}),this._dirty=!0,this}filletRect(...e){return this.instructions.push({action:"filletRect",data:e}),this._dirty=!0,this}chamferRect(...e){return this.instructions.push({action:"chamferRect",data:e}),this._dirty=!0,this}star(e,t,i,s,n,o,a){n||(n=s/2);let c=-1*Math.PI/2+o,u=i*2,l=Math.PI*2/u,h=[];for(let f=0;f<u;f++){let d=f%2?n:s,m=f*l+c;h.push(e+d*Math.cos(m),t+d*Math.sin(m))}return this.poly(h,!0,a),this}clone(e=!1){let t=new r;if(t.checkForHoles=this.checkForHoles,!e)t.instructions=this.instructions.slice();else for(let i=0;i<this.instructions.length;i++){let s=this.instructions[i];t.instructions.push({action:s.action,data:s.data.slice()})}return t}clear(){return this.instructions.length=0,this._dirty=!0,this}transform(e){if(e.isIdentity())return this;let t=e.a,i=e.b,s=e.c,n=e.d,o=e.tx,a=e.ty,c=0,u=0,l=0,h=0,f=0,d=0,m=0,x=0;for(let g=0;g<this.instructions.length;g++){let _=this.instructions[g],y=_.data;switch(_.action){case"moveTo":case"lineTo":c=y[0],u=y[1],y[0]=t*c+s*u+o,y[1]=i*c+n*u+a;break;case"bezierCurveTo":l=y[0],h=y[1],f=y[2],d=y[3],c=y[4],u=y[5],y[0]=t*l+s*h+o,y[1]=i*l+n*h+a,y[2]=t*f+s*d+o,y[3]=i*f+n*d+a,y[4]=t*c+s*u+o,y[5]=i*c+n*u+a;break;case"quadraticCurveTo":l=y[0],h=y[1],c=y[2],u=y[3],y[0]=t*l+s*h+o,y[1]=i*l+n*h+a,y[2]=t*c+s*u+o,y[3]=i*c+n*u+a;break;case"arcToSvg":c=y[5],u=y[6],m=y[0],x=y[1],y[0]=t*m+s*x,y[1]=i*m+n*x,y[5]=t*c+s*u+o,y[6]=i*c+n*u+a;break;case"circle":y[4]=qo(y[3],e);break;case"rect":y[4]=qo(y[4],e);break;case"ellipse":y[8]=qo(y[8],e);break;case"roundRect":y[5]=qo(y[5],e);break;case"addPath":y[0].transform(e);break;case"poly":y[2]=qo(y[2],e);break;default:N("unknown transform action",_.action);break}}return this._dirty=!0,this}get bounds(){return this.shapePath.bounds}getLastPoint(e){let t=this.instructions.length-1,i=this.instructions[t];if(!i)return e.x=0,e.y=0,e;for(;i.action==="closePath";){if(t--,t<0)return e.x=0,e.y=0,e;i=this.instructions[t]}switch(i.action){case"moveTo":case"lineTo":e.x=i.data[0],e.y=i.data[1];break;case"quadraticCurveTo":e.x=i.data[2],e.y=i.data[3];break;case"bezierCurveTo":e.x=i.data[4],e.y=i.data[5];break;case"arc":case"arcToSvg":e.x=i.data[5],e.y=i.data[6];break;case"addPath":i.data[0].getLastPoint(e);break}return e}}});function _e(r,e,t){let i=r.getAttribute(e);return i?Number(i):t}var Cm=p(()=>{"use strict"});function bT(r,e){let t=r.querySelectorAll("defs");for(let i=0;i<t.length;i++){let s=t[i];for(let n=0;n<s.children.length;n++){let o=s.children[n];switch(o.nodeName.toLowerCase()){case"lineargradient":e.defs[o.id]=RB(o);break;case"radialgradient":e.defs[o.id]=DB(o);break;default:break}}}}function RB(r){let e=_e(r,"x1",0),t=_e(r,"y1",0),i=_e(r,"x2",1),s=_e(r,"y2",0),n=r.getAttribute("gradientUnits")||"objectBoundingBox",o=new lt(e,t,i,s,n==="objectBoundingBox"?"local":"global");for(let a=0;a<r.children.length;a++){let c=r.children[a],u=_e(c,"offset",0),l=q.shared.setValue(c.getAttribute("stop-color")).toNumber();o.addColorStop(u,l)}return o}function DB(r){return N("[SVG Parser] Radial gradients are not yet supported"),new lt(0,0,1,0)}var yT=p(()=>{He();pe();js();Cm()});function Em(r){let e=r.match(/url\s*\(\s*['"]?\s*#([^'"\s)]+)\s*['"]?\s*\)/i);return e?e[1]:""}var TT=p(()=>{"use strict"});function km(r,e){let t=r.getAttribute("style"),i={},s={},n={strokeStyle:i,fillStyle:s,useFill:!1,useStroke:!1};for(let o in wT){let a=r.getAttribute(o);a&&ST(e,n,o,a.trim())}if(t){let o=t.split(";");for(let a=0;a<o.length;a++){let c=o[a].trim(),[u,l]=c.split(":");wT[u]&&ST(e,n,u,l.trim())}}return{strokeStyle:n.useStroke?i:null,fillStyle:n.useFill?s:null,useFill:n.useFill,useStroke:n.useStroke}}function ST(r,e,t,i){switch(t){case"stroke":if(i!=="none"){if(i.startsWith("url(")){let s=Em(i);e.strokeStyle.fill=r.defs[s]}else e.strokeStyle.color=q.shared.setValue(i).toNumber();e.useStroke=!0}break;case"stroke-width":e.strokeStyle.width=Number(i);break;case"fill":if(i!=="none"){if(i.startsWith("url(")){let s=Em(i);e.fillStyle.fill=r.defs[s]}else e.fillStyle.color=q.shared.setValue(i).toNumber();e.useFill=!0}break;case"fill-opacity":e.fillStyle.alpha=Number(i);break;case"stroke-opacity":e.strokeStyle.alpha=Number(i);break;case"opacity":e.fillStyle.alpha=Number(i),e.strokeStyle.alpha=Number(i);break}}var wT,vT=p(()=>{He();TT();wT={fill:{type:"paint",default:0},"fill-opacity":{type:"number",default:1},stroke:{type:"paint",default:0},"stroke-width":{type:"number",default:1},"stroke-opacity":{type:"number",default:1},"stroke-linecap":{type:"string",default:"butt"},"stroke-linejoin":{type:"string",default:"miter"},"stroke-miterlimit":{type:"number",default:10},"stroke-dasharray":{type:"string",default:"none"},"stroke-dashoffset":{type:"number",default:0},opacity:{type:"number",default:1}}});function CT(r,e){if(typeof r=="string"){let o=document.createElement("div");o.innerHTML=r.trim(),r=o.querySelector("svg")}let t={context:e,defs:{},path:new ei};bT(r,t);let i=r.children,{fillStyle:s,strokeStyle:n}=km(r,t);for(let o=0;o<i.length;o++){let a=i[o];a.nodeName.toLowerCase()!=="defs"&&ET(a,t,s,n)}return e}function ET(r,e,t,i){let s=r.children,{fillStyle:n,strokeStyle:o}=km(r,e);n&&t?t={...t,...n}:n&&(t=n),o&&i?i={...i,...o}:o&&(i=o);let a=!t&&!i;a&&(t={color:0});let c,u,l,h,f,d,m,x,g,_,y,S,T,C,v,E,D;switch(r.nodeName.toLowerCase()){case"path":C=r.getAttribute("d"),r.getAttribute("fill-rule")==="evenodd"&&N("SVG Evenodd fill rule not supported, your svg may render incorrectly"),v=new ei(C,!0),e.context.path(v),t&&e.context.fill(t),i&&e.context.stroke(i);break;case"circle":m=_e(r,"cx",0),x=_e(r,"cy",0),g=_e(r,"r",0),e.context.ellipse(m,x,g,g),t&&e.context.fill(t),i&&e.context.stroke(i);break;case"rect":c=_e(r,"x",0),u=_e(r,"y",0),E=_e(r,"width",0),D=_e(r,"height",0),_=_e(r,"rx",0),y=_e(r,"ry",0),_||y?e.context.roundRect(c,u,E,D,_||y):e.context.rect(c,u,E,D),t&&e.context.fill(t),i&&e.context.stroke(i);break;case"ellipse":m=_e(r,"cx",0),x=_e(r,"cy",0),_=_e(r,"rx",0),y=_e(r,"ry",0),e.context.beginPath(),e.context.ellipse(m,x,_,y),t&&e.context.fill(t),i&&e.context.stroke(i);break;case"line":l=_e(r,"x1",0),h=_e(r,"y1",0),f=_e(r,"x2",0),d=_e(r,"y2",0),e.context.beginPath(),e.context.moveTo(l,h),e.context.lineTo(f,d),i&&e.context.stroke(i);break;case"polygon":T=r.getAttribute("points"),S=T.match(/\d+/g).map(A=>parseInt(A,10)),e.context.poly(S,!0),t&&e.context.fill(t),i&&e.context.stroke(i);break;case"polyline":T=r.getAttribute("points"),S=T.match(/\d+/g).map(A=>parseInt(A,10)),e.context.poly(S,!1),i&&e.context.stroke(i);break;case"g":case"svg":break;default:{N(`[SVG parser] <${r.nodeName}> elements unsupported`);break}}a&&(t=null);for(let A=0;A<s.length;A++)ET(s[A],e,t,i)}var kT=p(()=>{pe();vm();yT();Cm();vT()});function MB(r){return q.isColorLike(r)}function AT(r){return r instanceof kr}function PT(r){return r instanceof lt}function IB(r){return r instanceof M}function FB(r,e,t){let i=q.shared.setValue(e??0);return r.color=i.toNumber(),r.alpha=i.alpha===1?t.alpha:i.alpha,r.texture=M.WHITE,{...t,...r}}function UB(r,e,t){return r.texture=e,{...t,...r}}function BT(r,e,t){return r.fill=e,r.color=16777215,r.texture=e.texture,r.matrix=e.transform,{...t,...r}}function RT(r,e,t){return e.buildGradient(),r.fill=e,r.color=16777215,r.texture=e.texture,r.matrix=e.transform,r.textureSpace=e.textureSpace,{...t,...r}}function OB(r,e){let t={...e,...r},i=q.shared.setValue(t.color);return t.alpha*=i.alpha,t.color=i.toNumber(),t}function Ar(r,e){if(r==null)return null;let t={},i=r;return MB(r)?FB(t,r,e):IB(r)?UB(t,r,e):AT(r)?BT(t,r,e):PT(r)?RT(t,r,e):i.fill&&AT(i.fill)?BT(i,i.fill,e):i.fill&&PT(i.fill)?RT(i,i.fill,e):OB(i,e)}function Js(r,e){let{width:t,alignment:i,miterLimit:s,cap:n,join:o,pixelLine:a,...c}=e,u=Ar(r,c);return u?{width:t,alignment:i,miterLimit:s,cap:n,join:o,pixelLine:a,...u}:null}var Am=p(()=>{He();le();js();fl()});var GB,DT,Pm,bt,Bm=p(()=>{Ve();He();te();Ft();le();Oe();ye();at();vm();kT();Am();GB=new J,DT=new R,Pm=class or extends oe{constructor(){super(...arguments),this.uid=K("graphicsContext"),this.dirty=!0,this.batchMode="auto",this.instructions=[],this._activePath=new ei,this._transform=new R,this._fillStyle={...or.defaultFillStyle},this._strokeStyle={...or.defaultStrokeStyle},this._stateStack=[],this._tick=0,this._bounds=new ae,this._boundsDirty=!0}clone(){let e=new or;return e.batchMode=this.batchMode,e.instructions=this.instructions.slice(),e._activePath=this._activePath.clone(),e._transform=this._transform.clone(),e._fillStyle={...this._fillStyle},e._strokeStyle={...this._strokeStyle},e._stateStack=this._stateStack.slice(),e._bounds=this._bounds.clone(),e._boundsDirty=!0,e}get fillStyle(){return this._fillStyle}set fillStyle(e){this._fillStyle=Ar(e,or.defaultFillStyle)}get strokeStyle(){return this._strokeStyle}set strokeStyle(e){this._strokeStyle=Js(e,or.defaultStrokeStyle)}setFillStyle(e){return this._fillStyle=Ar(e,or.defaultFillStyle),this}setStrokeStyle(e){return this._strokeStyle=Ar(e,or.defaultStrokeStyle),this}texture(e,t,i,s,n,o){return this.instructions.push({action:"texture",data:{image:e,dx:i||0,dy:s||0,dw:n||e.frame.width,dh:o||e.frame.height,transform:this._transform.clone(),alpha:this._fillStyle.alpha,style:t?q.shared.setValue(t).toNumber():16777215}}),this.onUpdate(),this}beginPath(){return this._activePath=new ei,this}fill(e,t){let i,s=this.instructions[this.instructions.length-1];return this._tick===0&&s&&s.action==="stroke"?i=s.data.path:i=this._activePath.clone(),i?(e!=null&&(t!==void 0&&typeof e=="number"&&(z($,"GraphicsContext.fill(color, alpha) is deprecated, use GraphicsContext.fill({ color, alpha }) instead"),e={color:e,alpha:t}),this._fillStyle=Ar(e,or.defaultFillStyle)),this.instructions.push({action:"fill",data:{style:this.fillStyle,path:i}}),this.onUpdate(),this._initNextPathLocation(),this._tick=0,this):this}_initNextPathLocation(){let{x:e,y:t}=this._activePath.getLastPoint(J.shared);this._activePath.clear(),this._activePath.moveTo(e,t)}stroke(e){let t,i=this.instructions[this.instructions.length-1];return this._tick===0&&i&&i.action==="fill"?t=i.data.path:t=this._activePath.clone(),t?(e!=null&&(this._strokeStyle=Js(e,or.defaultStrokeStyle)),this.instructions.push({action:"stroke",data:{style:this.strokeStyle,path:t}}),this.onUpdate(),this._initNextPathLocation(),this._tick=0,this):this}cut(){for(let e=0;e<2;e++){let t=this.instructions[this.instructions.length-1-e],i=this._activePath.clone();if(t&&(t.action==="stroke"||t.action==="fill"))if(t.data.hole)t.data.hole.addPath(i);else{t.data.hole=i;break}}return this._initNextPathLocation(),this}arc(e,t,i,s,n,o){this._tick++;let a=this._transform;return this._activePath.arc(a.a*e+a.c*t+a.tx,a.b*e+a.d*t+a.ty,i,s,n,o),this}arcTo(e,t,i,s,n){this._tick++;let o=this._transform;return this._activePath.arcTo(o.a*e+o.c*t+o.tx,o.b*e+o.d*t+o.ty,o.a*i+o.c*s+o.tx,o.b*i+o.d*s+o.ty,n),this}arcToSvg(e,t,i,s,n,o,a){this._tick++;let c=this._transform;return this._activePath.arcToSvg(e,t,i,s,n,c.a*o+c.c*a+c.tx,c.b*o+c.d*a+c.ty),this}bezierCurveTo(e,t,i,s,n,o,a){this._tick++;let c=this._transform;return this._activePath.bezierCurveTo(c.a*e+c.c*t+c.tx,c.b*e+c.d*t+c.ty,c.a*i+c.c*s+c.tx,c.b*i+c.d*s+c.ty,c.a*n+c.c*o+c.tx,c.b*n+c.d*o+c.ty,a),this}closePath(){return this._tick++,this._activePath?.closePath(),this}ellipse(e,t,i,s){return this._tick++,this._activePath.ellipse(e,t,i,s,this._transform.clone()),this}circle(e,t,i){return this._tick++,this._activePath.circle(e,t,i,this._transform.clone()),this}path(e){return this._tick++,this._activePath.addPath(e,this._transform.clone()),this}lineTo(e,t){this._tick++;let i=this._transform;return this._activePath.lineTo(i.a*e+i.c*t+i.tx,i.b*e+i.d*t+i.ty),this}moveTo(e,t){this._tick++;let i=this._transform,s=this._activePath.instructions,n=i.a*e+i.c*t+i.tx,o=i.b*e+i.d*t+i.ty;return s.length===1&&s[0].action==="moveTo"?(s[0].data[0]=n,s[0].data[1]=o,this):(this._activePath.moveTo(n,o),this)}quadraticCurveTo(e,t,i,s,n){this._tick++;let o=this._transform;return this._activePath.quadraticCurveTo(o.a*e+o.c*t+o.tx,o.b*e+o.d*t+o.ty,o.a*i+o.c*s+o.tx,o.b*i+o.d*s+o.ty,n),this}rect(e,t,i,s){return this._tick++,this._activePath.rect(e,t,i,s,this._transform.clone()),this}roundRect(e,t,i,s,n){return this._tick++,this._activePath.roundRect(e,t,i,s,n,this._transform.clone()),this}poly(e,t){return this._tick++,this._activePath.poly(e,t,this._transform.clone()),this}regularPoly(e,t,i,s,n=0,o){return this._tick++,this._activePath.regularPoly(e,t,i,s,n,o),this}roundPoly(e,t,i,s,n,o){return this._tick++,this._activePath.roundPoly(e,t,i,s,n,o),this}roundShape(e,t,i,s){return this._tick++,this._activePath.roundShape(e,t,i,s),this}filletRect(e,t,i,s,n){return this._tick++,this._activePath.filletRect(e,t,i,s,n),this}chamferRect(e,t,i,s,n,o){return this._tick++,this._activePath.chamferRect(e,t,i,s,n,o),this}star(e,t,i,s,n=0,o=0){return this._tick++,this._activePath.star(e,t,i,s,n,o,this._transform.clone()),this}svg(e){return this._tick++,CT(e,this),this}restore(){let e=this._stateStack.pop();return e&&(this._transform=e.transform,this._fillStyle=e.fillStyle,this._strokeStyle=e.strokeStyle),this}save(){return this._stateStack.push({transform:this._transform.clone(),fillStyle:{...this._fillStyle},strokeStyle:{...this._strokeStyle}}),this}getTransform(){return this._transform}resetTransform(){return this._transform.identity(),this}rotate(e){return this._transform.rotate(e),this}scale(e,t=e){return this._transform.scale(e,t),this}setTransform(e,t,i,s,n,o){return e instanceof R?(this._transform.set(e.a,e.b,e.c,e.d,e.tx,e.ty),this):(this._transform.set(e,t,i,s,n,o),this)}transform(e,t,i,s,n,o){return e instanceof R?(this._transform.append(e),this):(DT.set(e,t,i,s,n,o),this._transform.append(DT),this)}translate(e,t=e){return this._transform.translate(e,t),this}clear(){return this._activePath.clear(),this.instructions.length=0,this.resetTransform(),this.onUpdate(),this}onUpdate(){this.dirty||(this.emit("update",this,16),this.dirty=!0,this._boundsDirty=!0)}get bounds(){if(!this._boundsDirty)return this._bounds;let e=this._bounds;e.clear();for(let t=0;t<this.instructions.length;t++){let i=this.instructions[t],s=i.action;if(s==="fill"){let n=i.data;e.addBounds(n.path.bounds)}else if(s==="texture"){let n=i.data;e.addFrame(n.dx,n.dy,n.dx+n.dw,n.dy+n.dh,n.transform)}if(s==="stroke"){let n=i.data,o=n.style.alignment,a=n.style.width*(1-o),c=n.path.bounds;e.addFrame(c.minX-a,c.minY-a,c.maxX+a,c.maxY+a)}}return e}containsPoint(e){if(!this.bounds.containsPoint(e.x,e.y))return!1;let t=this.instructions,i=!1;for(let s=0;s<t.length;s++){let n=t[s],o=n.data,a=o.path;if(!n.action||!a)continue;let c=o.style,u=a.shapePath.shapePrimitives;for(let l=0;l<u.length;l++){let h=u[l].shape;if(!c||!h)continue;let f=u[l].transform,d=f?f.applyInverse(e,GB):e;if(n.action==="fill")i=h.contains(d.x,d.y);else{let x=c;i=h.strokeContains(d.x,d.y,x.width,x.alignment)}let m=o.hole;if(m){let x=m.shapePath?.shapePrimitives;if(x)for(let g=0;g<x.length;g++)x[g].shape.contains(d.x,d.y)&&(i=!1)}if(i)return!0}}return i}destroy(e=!1){if(this._stateStack.length=0,this._transform=null,this.emit("destroy",this),this.removeAllListeners(),typeof e=="boolean"?e:e?.texture){let i=typeof e=="boolean"?e:e?.textureSource;this._fillStyle.texture&&this._fillStyle.texture.destroy(i),this._strokeStyle.texture&&this._strokeStyle.texture.destroy(i)}this._fillStyle=null,this._strokeStyle=null,this.instructions=null,this._activePath=null,this._bounds=null,this._stateStack=null,this.customShader=null,this._transform=null}};Pm.defaultFillStyle={color:16777215,alpha:1,texture:M.WHITE,matrix:null,fill:null,textureSpace:"local"};Pm.defaultStrokeStyle={width:1,color:16777215,alpha:1,alignment:.5,miterLimit:10,cap:"butt",join:"miter",texture:M.WHITE,matrix:null,fill:null,textureSpace:"local",pixelLine:!1};bt=Pm});function IT(r){let e=[],t=0;for(let i=0;i<MT.length;i++){let s=`_${MT[i]}`;e[t++]=r[s]}return t=FT(r._fill,e,t),t=LB(r._stroke,e,t),t=zB(r.dropShadow,e,t),t=NB(r.filters,e,t),e.join("-")}function NB(r,e,t){if(!r)return t;for(let i of r)e[t++]=i.uid;return t}function FT(r,e,t){return r&&(e[t++]=r.color,e[t++]=r.alpha,e[t++]=r.fill?.styleKey),t}function LB(r,e,t){return r&&(t=FT(r,e,t),e[t++]=r.width,e[t++]=r.alignment,e[t++]=r.cap,e[t++]=r.join,e[t++]=r.miterLimit),t}function zB(r,e,t){return r&&(e[t++]=r.alpha,e[t++]=r.angle,e[t++]=r.blur,e[t++]=r.distance,e[t++]=q.shared.setValue(r.color).toNumber()),t}var MT,UT=p(()=>{He();MT=["align","breakWords","cssOverrides","fontVariant","fontWeight","leading","letterSpacing","lineHeight","padding","textBaseline","trim","whiteSpace","wordWrap","wordWrapWidth","fontFamily","fontStyle","fontSize"]});function VB(r){let e=r;if(typeof e.dropShadow=="boolean"&&e.dropShadow){let t=ht.defaultDropShadow;r.dropShadow={alpha:e.dropShadowAlpha??t.alpha,angle:e.dropShadowAngle??t.angle,blur:e.dropShadowBlur??t.blur,color:e.dropShadowColor??t.color,distance:e.dropShadowDistance??t.distance}}if(e.strokeThickness!==void 0){z($,"strokeThickness is now a part of stroke");let t=e.stroke,i={};if(q.isColorLike(t))i.color=t;else if(t instanceof lt||t instanceof kr)i.fill=t;else if(Object.hasOwnProperty.call(t,"color")||Object.hasOwnProperty.call(t,"fill"))i=t;else throw new Error("Invalid stroke value.");r.stroke={...i,width:e.strokeThickness}}if(Array.isArray(e.fillGradientStops)){z($,"gradient fill is now a fill pattern: `new FillGradient(...)`");let t;r.fontSize==null?r.fontSize=ht.defaultTextStyle.fontSize:typeof r.fontSize=="string"?t=parseInt(r.fontSize,10):t=r.fontSize;let i=new lt({start:{x:0,y:0},end:{x:0,y:(t||0)*1.7}}),s=e.fillGradientStops.map(n=>q.shared.setValue(n).toNumber());s.forEach((n,o)=>{let a=o/(s.length-1);i.addColorStop(a,n)}),r.fill={fill:i}}}var Rm,ht,tn=p(()=>{Ve();He();ye();js();fl();Bm();Am();UT();Rm=class en extends oe{constructor(e={}){super(),VB(e);let t={...en.defaultTextStyle,...e};for(let i in t){let s=i;this[s]=t[i]}this.update()}get align(){return this._align}set align(e){this._align=e,this.update()}get breakWords(){return this._breakWords}set breakWords(e){this._breakWords=e,this.update()}get dropShadow(){return this._dropShadow}set dropShadow(e){e!==null&&typeof e=="object"?this._dropShadow=this._createProxy({...en.defaultDropShadow,...e}):this._dropShadow=e?this._createProxy({...en.defaultDropShadow}):null,this.update()}get fontFamily(){return this._fontFamily}set fontFamily(e){this._fontFamily=e,this.update()}get fontSize(){return this._fontSize}set fontSize(e){typeof e=="string"?this._fontSize=parseInt(e,10):this._fontSize=e,this.update()}get fontStyle(){return this._fontStyle}set fontStyle(e){this._fontStyle=e.toLowerCase(),this.update()}get fontVariant(){return this._fontVariant}set fontVariant(e){this._fontVariant=e,this.update()}get fontWeight(){return this._fontWeight}set fontWeight(e){this._fontWeight=e,this.update()}get leading(){return this._leading}set leading(e){this._leading=e,this.update()}get letterSpacing(){return this._letterSpacing}set letterSpacing(e){this._letterSpacing=e,this.update()}get lineHeight(){return this._lineHeight}set lineHeight(e){this._lineHeight=e,this.update()}get padding(){return this._padding}set padding(e){this._padding=e,this.update()}get filters(){return this._filters}set filters(e){this._filters=e,this.update()}get trim(){return this._trim}set trim(e){this._trim=e,this.update()}get textBaseline(){return this._textBaseline}set textBaseline(e){this._textBaseline=e,this.update()}get whiteSpace(){return this._whiteSpace}set whiteSpace(e){this._whiteSpace=e,this.update()}get wordWrap(){return this._wordWrap}set wordWrap(e){this._wordWrap=e,this.update()}get wordWrapWidth(){return this._wordWrapWidth}set wordWrapWidth(e){this._wordWrapWidth=e,this.update()}get fill(){return this._originalFill}set fill(e){e!==this._originalFill&&(this._originalFill=e,this._isFillStyle(e)&&(this._originalFill=this._createProxy({...bt.defaultFillStyle,...e},()=>{this._fill=Ar({...this._originalFill},bt.defaultFillStyle)})),this._fill=Ar(e===0?"black":e,bt.defaultFillStyle),this.update())}get stroke(){return this._originalStroke}set stroke(e){e!==this._originalStroke&&(this._originalStroke=e,this._isFillStyle(e)&&(this._originalStroke=this._createProxy({...bt.defaultStrokeStyle,...e},()=>{this._stroke=Js({...this._originalStroke},bt.defaultStrokeStyle)})),this._stroke=Js(e,bt.defaultStrokeStyle),this.update())}_generateKey(){return this._styleKey=IT(this),this._styleKey}update(){this._styleKey=null,this.emit("update",this)}reset(){let e=en.defaultTextStyle;for(let t in e)this[t]=e[t]}get styleKey(){return this._styleKey||this._generateKey()}clone(){return new en({align:this.align,breakWords:this.breakWords,dropShadow:this._dropShadow?{...this._dropShadow}:null,fill:this._fill,fontFamily:this.fontFamily,fontSize:this.fontSize,fontStyle:this.fontStyle,fontVariant:this.fontVariant,fontWeight:this.fontWeight,leading:this.leading,letterSpacing:this.letterSpacing,lineHeight:this.lineHeight,padding:this.padding,stroke:this._stroke,textBaseline:this.textBaseline,whiteSpace:this.whiteSpace,wordWrap:this.wordWrap,wordWrapWidth:this.wordWrapWidth,filters:this._filters?[...this._filters]:void 0})}_getFinalPadding(){let e=0;if(this._filters)for(let t=0;t<this._filters.length;t++)e+=this._filters[t].padding;return Math.max(this._padding,e)}destroy(e=!1){if(this.removeAllListeners(),typeof e=="boolean"?e:e?.texture){let i=typeof e=="boolean"?e:e?.textureSource;this._fill?.texture&&this._fill.texture.destroy(i),this._originalFill?.texture&&this._originalFill.texture.destroy(i),this._stroke?.texture&&this._stroke.texture.destroy(i),this._originalStroke?.texture&&this._originalStroke.texture.destroy(i)}this._fill=null,this._stroke=null,this.dropShadow=null,this._originalStroke=null,this._originalFill=null}_createProxy(e,t){return new Proxy(e,{set:(i,s,n)=>(i[s]=n,t?.(s,n),this.update(),!0)})}_isFillStyle(e){return(e??null)!==null&&!(q.isColorLike(e)||e instanceof lt||e instanceof kr)}};Rm.defaultDropShadow={alpha:1,angle:Math.PI/6,blur:0,color:"black",distance:5};Rm.defaultTextStyle={align:"left",breakWords:!1,dropShadow:null,fill:"black",fontFamily:"Arial",fontSize:26,fontStyle:"normal",fontVariant:"normal",fontWeight:"normal",leading:0,letterSpacing:0,lineHeight:0,padding:0,stroke:null,textBaseline:"alphabetic",trim:!1,whiteSpace:"pre",wordWrap:!1,wordWrapWidth:100};ht=Rm});function wl(r,e,t,i){let s=HB;s.minX=0,s.minY=0,s.maxX=r.width/i|0,s.maxY=r.height/i|0;let n=Te.getOptimalTexture(s.width,s.height,i,!1);return n.source.uploadMethodId="image",n.source.resource=r,n.source.alphaMode="premultiply-alpha-on-upload",n.frame.width=e/i,n.frame.height=t/i,n.source.emit("update",n.source),n.updateUvs(),n}var HB,Dm=p(()=>{Hr();at();HB=new ae});var Mm,yt,rn=p(()=>{Ce();ho();Mm=class{constructor(e){this._canvasPool=Object.create(null),this.canvasOptions=e||{},this.enableFullScreen=!1}_createCanvasAndContext(e,t){let i=W.get().createCanvas();i.width=e,i.height=t;let s=i.getContext("2d");return{canvas:i,context:s}}getOptimalCanvasAndContext(e,t,i=1){e=Math.ceil(e*i-1e-6),t=Math.ceil(t*i-1e-6),e=Tr(e),t=Tr(t);let s=(e<<17)+(t<<1);this._canvasPool[s]||(this._canvasPool[s]=[]);let n=this._canvasPool[s].pop();return n||(n=this._createCanvasAndContext(e,t)),n}returnCanvasAndContext(e){let t=e.canvas,{width:i,height:s}=t,n=(i<<17)+(s<<1);e.context.clearRect(0,0,i,s),this._canvasPool[n].push(e)}clear(){this._canvasPool={}}},yt=new Mm});function WB(r,e){Qi||(Qi=W.get().createCanvas(256,128),Pr=Qi.getContext("2d",{willReadFrequently:!0}),Pr.globalCompositeOperation="copy",Pr.globalAlpha=1),(Qi.width<r||Qi.height<e)&&(Qi.width=Tr(r),Qi.height=Tr(e))}function OT(r,e,t){for(let i=0,s=4*t*e;i<e;++i,s+=4)if(r[s+3]!==0)return!1;return!0}function GT(r,e,t,i,s){let n=4*e;for(let o=i,a=i*n+4*t;o<=s;++o,a+=n)if(r[a+3]!==0)return!1;return!0}function NT(...r){let e=r[0];e.canvas||(e={canvas:r[0],resolution:r[1]});let{canvas:t}=e,i=Math.min(e.resolution??1,1),s=e.width??t.width,n=e.height??t.height,o=e.output;if(WB(s,n),!Pr)throw new TypeError("Failed to get canvas 2D context");Pr.drawImage(t,0,0,s,n,0,0,s*i,n*i);let c=Pr.getImageData(0,0,s,n).data,u=0,l=0,h=s-1,f=n-1;for(;l<n&&OT(c,s,l);)++l;if(l===n)return Y.EMPTY;for(;OT(c,s,f);)--f;for(;GT(c,s,u,l,f);)++u;for(;GT(c,s,h,l,f);)--h;return++h,++f,Pr.globalCompositeOperation="source-over",Pr.strokeRect(u,l,h-u,f-l),Pr.globalCompositeOperation="copy",o??(o=new Y),o.set(u/i,l/i,(h-u)/i,(f-l)/i),o}var Qi,Pr,LT=p(()=>{Ce();ho();Ge();Qi=null,Pr=null});function Zi(r){let e=typeof r.fontSize=="number"?`${r.fontSize}px`:r.fontSize,t=r.fontFamily;Array.isArray(r.fontFamily)||(t=r.fontFamily.split(","));for(let i=t.length-1;i>=0;i--){let s=t[i].trim();!/([\"\'])[^\'\"]+\1/.test(s)&&!$B.includes(s)&&(s=`"${s}"`),t[i]=s}return`${r.fontStyle} ${r.fontVariant} ${r.fontWeight} ${e} ${t.join(",")}`}var $B,Sl=p(()=>{"use strict";$B=["serif","sans-serif","monospace","cursive","fantasy","system-ui"]});var Im,ar,Xe,sn=p(()=>{Ce();Sl();Im={willReadFrequently:!0},ar=class V{static get experimentalLetterSpacingSupported(){let e=V._experimentalLetterSpacingSupported;if(e===void 0){let t=W.get().getCanvasRenderingContext2D().prototype;e=V._experimentalLetterSpacingSupported="letterSpacing"in t||"textLetterSpacing"in t}return e}constructor(e,t,i,s,n,o,a,c,u){this.text=e,this.style=t,this.width=i,this.height=s,this.lines=n,this.lineWidths=o,this.lineHeight=a,this.maxLineWidth=c,this.fontProperties=u}static measureText(e=" ",t,i=V._canvas,s=t.wordWrap){let n=Zi(t),o=V.measureFont(n);o.fontSize===0&&(o.fontSize=t.fontSize,o.ascent=t.fontSize);let a=V.__context;a.font=n;let u=(s?V._wordWrap(e,t,i):e).split(/(?:\r\n|\r|\n)/),l=new Array(u.length),h=0;for(let _=0;_<u.length;_++){let y=V._measureText(u[_],t.letterSpacing,a);l[_]=y,h=Math.max(h,y)}let f=t._stroke?.width||0,d=h+f;t.dropShadow&&(d+=t.dropShadow.distance);let m=t.lineHeight||o.fontSize,x=Math.max(m,o.fontSize+f)+(u.length-1)*(m+t.leading);return t.dropShadow&&(x+=t.dropShadow.distance),new V(e,t,d,x,u,l,m+t.leading,h,o)}static _measureText(e,t,i){let s=!1;V.experimentalLetterSpacingSupported&&(V.experimentalLetterSpacing?(i.letterSpacing=`${t}px`,i.textLetterSpacing=`${t}px`,s=!0):(i.letterSpacing="0px",i.textLetterSpacing="0px"));let n=i.measureText(e),o=n.width,a=-n.actualBoundingBoxLeft,u=n.actualBoundingBoxRight-a;if(o>0)if(s)o-=t,u-=t;else{let l=(V.graphemeSegmenter(e).length-1)*t;o+=l,u+=l}return Math.max(o,u)}static _wordWrap(e,t,i=V._canvas){let s=i.getContext("2d",Im),n=0,o="",a="",c=Object.create(null),{letterSpacing:u,whiteSpace:l}=t,h=V._collapseSpaces(l),f=V._collapseNewlines(l),d=!h,m=t.wordWrapWidth+u,x=V._tokenize(e);for(let g=0;g<x.length;g++){let _=x[g];if(V._isNewline(_)){if(!f){a+=V._addLine(o),d=!h,o="",n=0;continue}_=" "}if(h){let S=V.isBreakingSpace(_),T=V.isBreakingSpace(o[o.length-1]);if(S&&T)continue}let y=V._getFromCache(_,u,c,s);if(y>m)if(o!==""&&(a+=V._addLine(o),o="",n=0),V.canBreakWords(_,t.breakWords)){let S=V.wordWrapSplit(_);for(let T=0;T<S.length;T++){let C=S[T],v=C,E=1;for(;S[T+E];){let A=S[T+E];if(!V.canBreakChars(v,A,_,T,t.breakWords))C+=A;else break;v=A,E++}T+=E-1;let D=V._getFromCache(C,u,c,s);D+n>m&&(a+=V._addLine(o),d=!1,o="",n=0),o+=C,n+=D}}else{o.length>0&&(a+=V._addLine(o),o="",n=0);let S=g===x.length-1;a+=V._addLine(_,!S),d=!1,o="",n=0}else y+n>m&&(d=!1,a+=V._addLine(o),o="",n=0),(o.length>0||!V.isBreakingSpace(_)||d)&&(o+=_,n+=y)}return a+=V._addLine(o,!1),a}static _addLine(e,t=!0){return e=V._trimRight(e),e=t?`${e}
368
- `:e,e}static _getFromCache(e,t,i,s){let n=i[e];return typeof n!="number"&&(n=V._measureText(e,t,s)+t,i[e]=n),n}static _collapseSpaces(e){return e==="normal"||e==="pre-line"}static _collapseNewlines(e){return e==="normal"}static _trimRight(e){if(typeof e!="string")return"";for(let t=e.length-1;t>=0;t--){let i=e[t];if(!V.isBreakingSpace(i))break;e=e.slice(0,-1)}return e}static _isNewline(e){return typeof e!="string"?!1:V._newlines.includes(e.charCodeAt(0))}static isBreakingSpace(e,t){return typeof e!="string"?!1:V._breakingSpaces.includes(e.charCodeAt(0))}static _tokenize(e){let t=[],i="";if(typeof e!="string")return t;for(let s=0;s<e.length;s++){let n=e[s],o=e[s+1];if(V.isBreakingSpace(n,o)||V._isNewline(n)){i!==""&&(t.push(i),i=""),t.push(n);continue}i+=n}return i!==""&&t.push(i),t}static canBreakWords(e,t){return t}static canBreakChars(e,t,i,s,n){return!0}static wordWrapSplit(e){return V.graphemeSegmenter(e)}static measureFont(e){if(V._fonts[e])return V._fonts[e];let t=V._context;t.font=e;let i=t.measureText(V.METRICS_STRING+V.BASELINE_SYMBOL),s={ascent:i.actualBoundingBoxAscent,descent:i.actualBoundingBoxDescent,fontSize:i.actualBoundingBoxAscent+i.actualBoundingBoxDescent};return V._fonts[e]=s,s}static clearMetrics(e=""){e?delete V._fonts[e]:V._fonts={}}static get _canvas(){if(!V.__canvas){let e;try{let t=new OffscreenCanvas(0,0);if(t.getContext("2d",Im)?.measureText)return V.__canvas=t,t;e=W.get().createCanvas()}catch{e=W.get().createCanvas()}e.width=e.height=10,V.__canvas=e}return V.__canvas}static get _context(){return V.__context||(V.__context=V._canvas.getContext("2d",Im)),V.__context}};ar.METRICS_STRING="|\xC9q\xC5";ar.BASELINE_SYMBOL="M";ar.BASELINE_MULTIPLIER=1.4;ar.HEIGHT_MULTIPLIER=2;ar.graphemeSegmenter=(()=>{if(typeof Intl?.Segmenter=="function"){let r=new Intl.Segmenter;return e=>{let t=r.segment(e),i=[],s=0;for(let n of t)i[s++]=n.segment;return i}}return r=>[...r]})();ar.experimentalLetterSpacing=!1;ar._fonts={};ar._newlines=[10,13];ar._breakingSpaces=[9,32,8192,8193,8194,8195,8196,8197,8198,8200,8201,8202,8287,12288];Xe=ar});function nn(r,e,t,i=0){if(r.texture===M.WHITE&&!r.fill)return q.shared.setValue(r.color).setAlpha(r.alpha??1).toHexa();if(r.fill){if(r.fill instanceof kr){let s=r.fill,n=e.createPattern(s.texture.source.resource,"repeat"),o=s.transform.copyTo(R.shared);return o.scale(s.texture.frame.width,s.texture.frame.height),n.setTransform(o),n}else if(r.fill instanceof lt){let s=r.fill,n=s.type==="linear",o=s.textureSpace==="local",a=1,c=1;o&&t&&(a=t.width+i,c=t.height+i);let u,l=!1;if(n){let{start:h,end:f}=s;u=e.createLinearGradient(h.x*a,h.y*c,f.x*a,f.y*c),l=Math.abs(f.x-h.x)<Math.abs((f.y-h.y)*.1)}else{let{center:h,innerRadius:f,outerCenter:d,outerRadius:m}=s;u=e.createRadialGradient(h.x*a,h.y*c,f*a,d.x*a,d.y*c,m*a)}if(l&&o&&t){let h=t.lineHeight/c;for(let f=0;f<t.lines.length;f++){let d=(f*t.lineHeight+i/2)/c;s.colorStops.forEach(m=>{let x=d+m.offset*h;u.addColorStop(Math.floor(x*zT)/zT,q.shared.setValue(m.color).toHex())})}}else s.colorStops.forEach(h=>{u.addColorStop(h.offset,q.shared.setValue(h.color).toHex())});return u}}else{let s=e.createPattern(r.texture.source.resource,"repeat"),n=r.matrix.copyTo(R.shared);return n.scale(r.texture.frame.width,r.texture.frame.height),s.setTransform(n),s}return N("FillStyle not recognised",r),"red"}var zT,Fm=p(()=>{He();te();le();pe();js();fl();zT=1e5});var VT,Um,Ji,Om=p(()=>{He();Ge();rn();LT();sn();Sl();Fm();VT=new Y,Um=class{getCanvasAndContext(e){let{text:t,style:i,resolution:s=1}=e,n=i._getFinalPadding(),o=Xe.measureText(t||" ",i),a=Math.ceil(Math.ceil(Math.max(1,o.width)+n*2)*s),c=Math.ceil(Math.ceil(Math.max(1,o.height)+n*2)*s),u=yt.getOptimalCanvasAndContext(a,c);this._renderTextToCanvas(t,i,n,s,u);let l=i.trim?NT({canvas:u.canvas,width:a,height:c,resolution:1,output:VT}):VT.set(0,0,a,c);return{canvasAndContext:u,frame:l}}returnCanvasAndContext(e){yt.returnCanvasAndContext(e)}_renderTextToCanvas(e,t,i,s,n){let{canvas:o,context:a}=n,c=Zi(t),u=Xe.measureText(e||" ",t),l=u.lines,h=u.lineHeight,f=u.lineWidths,d=u.maxLineWidth,m=u.fontProperties,x=o.height;if(a.resetTransform(),a.scale(s,s),a.textBaseline=t.textBaseline,t._stroke?.width){let S=t._stroke;a.lineWidth=S.width,a.miterLimit=S.miterLimit,a.lineJoin=S.join,a.lineCap=S.cap}a.font=c;let g,_,y=t.dropShadow?2:1;for(let S=0;S<y;++S){let T=t.dropShadow&&S===0,C=T?Math.ceil(Math.max(1,x)+i*2):0,v=C*s;if(T){a.fillStyle="black",a.strokeStyle="black";let A=t.dropShadow,P=A.color,k=A.alpha;a.shadowColor=q.shared.setValue(P).setAlpha(k).toRgbaString();let G=A.blur*s,j=A.distance*s;a.shadowBlur=G,a.shadowOffsetX=Math.cos(A.angle)*j,a.shadowOffsetY=Math.sin(A.angle)*j+v}else{if(a.fillStyle=t._fill?nn(t._fill,a,u):null,t._stroke?.width){let A=t._stroke.width*t._stroke.alignment;a.strokeStyle=nn(t._stroke,a,u,A)}a.shadowColor="black"}let E=(h-m.fontSize)/2;h-m.fontSize<0&&(E=0);let D=t._stroke?.width??0;for(let A=0;A<l.length;A++)g=D/2,_=D/2+A*h+m.ascent+E,t.align==="right"?g+=d-f[A]:t.align==="center"&&(g+=(d-f[A])/2),t._stroke?.width&&this._drawLetterSpacing(l[A],t,n,g+i,_+i-C,!0),t._fill!==void 0&&this._drawLetterSpacing(l[A],t,n,g+i,_+i-C)}}_drawLetterSpacing(e,t,i,s,n,o=!1){let{context:a}=i,c=t.letterSpacing,u=!1;if(Xe.experimentalLetterSpacingSupported&&(Xe.experimentalLetterSpacing?(a.letterSpacing=`${c}px`,a.textLetterSpacing=`${c}px`,u=!0):(a.letterSpacing="0px",a.textLetterSpacing="0px")),c===0||u){o?a.strokeText(e,s,n):a.fillText(e,s,n);return}let l=s,h=Xe.graphemeSegmenter(e),f=a.measureText(e).width,d=0;for(let m=0;m<h.length;++m){let x=h[m];o?a.strokeText(x,l,n):a.fillText(x,l,n);let g="";for(let _=m+1;_<h.length;++_)g+=h[_];d=a.measureText(g).width,l+=f-d+c,f=d}}},Ji=new Um});var jo,HT=p(()=>{B();Hr();Ui();ye();tn();Dm();Om();jo=class{constructor(e){this._renderer=e}getTexture(e,t,i,s){typeof e=="string"&&(z("8.0.0","CanvasTextSystem.getTexture: Use object TextOptions instead of separate arguments"),e={text:e,style:i,resolution:t}),e.style instanceof ht||(e.style=new ht(e.style)),e.textureStyle instanceof et||(e.textureStyle=new et(e.textureStyle)),typeof e.text!="string"&&(e.text=e.text.toString());let{text:n,style:o,textureStyle:a}=e,c=e.resolution??this._renderer.resolution,{frame:u,canvasAndContext:l}=Ji.getCanvasAndContext({text:n,style:o,resolution:c}),h=wl(l.canvas,u.width,u.height,c);if(a&&(h.source.style=a),o.trim&&(u.pad(o.padding),h.frame.copyFrom(u),h.updateUvs()),o.filters){let f=this._applyFilters(h,o.filters);return this.returnTexture(h),Ji.returnCanvasAndContext(l),f}return this._renderer.texture.initSource(h._source),Ji.returnCanvasAndContext(l),h}returnTexture(e){let t=e.source;t.resource=null,t.uploadMethodId="unknown",t.alphaMode="no-premultiply-alpha",Te.returnTexture(e,!0)}renderTextToCanvas(){z("8.10.0","CanvasTextSystem.renderTextToCanvas: no longer supported, use CanvasTextSystem.getTexture instead")}_applyFilters(e,t){let i=this._renderer.renderTarget.renderTarget,s=this._renderer.filter.generateFilteredTexture({texture:e,filters:t});return this._renderer.renderTarget.bind(i,!1),s}destroy(){this._renderer=null}};jo.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"canvasText"}});var Gm=p(()=>{B();X2();HT();O.add(jo);O.add(Wo)});var vl,WT=p(()=>{ye();Fu();Bm();vl=class r extends qr{constructor(e){e instanceof bt&&(e={context:e});let{context:t,roundPixels:i,...s}=e||{};super({label:"Graphics",...s}),this.renderPipeId="graphics",t?this._context=t:this._context=this._ownedContext=new bt,this._context.on("update",this.onViewUpdate,this),this.didViewUpdate=!0,this.allowChildren=!1,this.roundPixels=i??!1}set context(e){e!==this._context&&(this._context.off("update",this.onViewUpdate,this),this._context=e,this._context.on("update",this.onViewUpdate,this),this.onViewUpdate())}get context(){return this._context}get bounds(){return this._context.bounds}updateBounds(){}containsPoint(e){return this._context.containsPoint(e)}destroy(e){this._ownedContext&&!e?this._ownedContext.destroy(e):(e===!0||e?.context===!0)&&this._context.destroy(e),this._ownedContext=null,this._context=null,super.destroy(e)}_callContextMethod(e,t){return this.context[e](...t),this}setFillStyle(...e){return this._callContextMethod("setFillStyle",e)}setStrokeStyle(...e){return this._callContextMethod("setStrokeStyle",e)}fill(...e){return this._callContextMethod("fill",e)}stroke(...e){return this._callContextMethod("stroke",e)}texture(...e){return this._callContextMethod("texture",e)}beginPath(){return this._callContextMethod("beginPath",[])}cut(){return this._callContextMethod("cut",[])}arc(...e){return this._callContextMethod("arc",e)}arcTo(...e){return this._callContextMethod("arcTo",e)}arcToSvg(...e){return this._callContextMethod("arcToSvg",e)}bezierCurveTo(...e){return this._callContextMethod("bezierCurveTo",e)}closePath(){return this._callContextMethod("closePath",[])}ellipse(...e){return this._callContextMethod("ellipse",e)}circle(...e){return this._callContextMethod("circle",e)}path(...e){return this._callContextMethod("path",e)}lineTo(...e){return this._callContextMethod("lineTo",e)}moveTo(...e){return this._callContextMethod("moveTo",e)}quadraticCurveTo(...e){return this._callContextMethod("quadraticCurveTo",e)}rect(...e){return this._callContextMethod("rect",e)}roundRect(...e){return this._callContextMethod("roundRect",e)}poly(...e){return this._callContextMethod("poly",e)}regularPoly(...e){return this._callContextMethod("regularPoly",e)}roundPoly(...e){return this._callContextMethod("roundPoly",e)}roundShape(...e){return this._callContextMethod("roundShape",e)}filletRect(...e){return this._callContextMethod("filletRect",e)}chamferRect(...e){return this._callContextMethod("chamferRect",e)}star(...e){return this._callContextMethod("star",e)}svg(...e){return this._callContextMethod("svg",e)}restore(...e){return this._callContextMethod("restore",e)}save(){return this._callContextMethod("save",[])}getTransform(){return this.context.getTransform()}resetTransform(){return this._callContextMethod("resetTransform",[])}rotateTransform(...e){return this._callContextMethod("rotate",e)}scaleTransform(...e){return this._callContextMethod("scale",e)}setTransform(...e){return this._callContextMethod("setTransform",e)}transform(...e){return this._callContextMethod("transform",e)}translateTransform(...e){return this._callContextMethod("translate",e)}clear(){return this._callContextMethod("clear",[])}get fillStyle(){return this._context.fillStyle}set fillStyle(e){this._context.fillStyle=e}get strokeStyle(){return this._context.strokeStyle}set strokeStyle(e){this._context.strokeStyle=e}clone(e=!1){return e?new r(this._context.clone()):(this._ownedContext=null,new r(this._context))}lineStyle(e,t,i){z($,"Graphics#lineStyle is no longer needed. Use Graphics#setStrokeStyle to set the stroke style.");let s={};return e&&(s.width=e),t&&(s.color=t),i&&(s.alpha=i),this.context.strokeStyle=s,this}beginFill(e,t){z($,"Graphics#beginFill is no longer needed. Use Graphics#fill to fill the shape with the desired style.");let i={};return e!==void 0&&(i.color=e),t!==void 0&&(i.alpha=t),this.context.fillStyle=i,this}endFill(){z($,"Graphics#endFill is no longer needed. Use Graphics#fill to fill the shape with the desired style."),this.context.fill();let e=this.context.strokeStyle;return(e.width!==bt.defaultStrokeStyle.width||e.color!==bt.defaultStrokeStyle.color||e.alpha!==bt.defaultStrokeStyle.alpha)&&this.context.stroke(),this}drawCircle(...e){return z($,"Graphics#drawCircle has been renamed to Graphics#circle"),this._callContextMethod("circle",e)}drawEllipse(...e){return z($,"Graphics#drawEllipse has been renamed to Graphics#ellipse"),this._callContextMethod("ellipse",e)}drawPolygon(...e){return z($,"Graphics#drawPolygon has been renamed to Graphics#poly"),this._callContextMethod("poly",e)}drawRect(...e){return z($,"Graphics#drawRect has been renamed to Graphics#rect"),this._callContextMethod("rect",e)}drawRoundedRect(...e){return z($,"Graphics#drawRoundedRect has been renamed to Graphics#roundRect"),this._callContextMethod("roundRect",e)}drawStar(...e){return z($,"Graphics#drawStar has been renamed to Graphics#star"),this._callContextMethod("star",e)}}});var $T,qT,jT=p(()=>{"use strict";$T={name:"local-uniform-msdf-bit",vertex:{header:`
367
+ }`});var ku,_y=p(()=>{He();ee();Ai();bs();Ut();le();bi();my();gy();xy();ku=class extends Ee{constructor(){let e=Ct.from({vertex:py,fragment:fy}),t=Et.from({fragment:{source:Af,entryPoint:"mainFragment"},vertex:{source:Af,entryPoint:"mainVertex"}});super({glProgram:e,gpuProgram:t,resources:{uTexture:D.WHITE.source,uSampler:new Je({}),uniforms:{uTranslationMatrix:{value:new R,type:"mat3x3<f32>"},uColor:{value:new q(16777215),type:"vec4<f32>"},uRound:{value:1,type:"f32"},uResolution:{value:[0,0],type:"vec2<f32>"}}}})}}});var Bs,Pf=p(()=>{ee();rt();io();Ot();Ps();dy();_y();Bs=class{constructor(e,t){this.state=Ae.for2d(),this.localUniforms=new ce({uTranslationMatrix:{value:new R,type:"mat3x3<f32>"},uColor:{value:new Float32Array(4),type:"vec4<f32>"},uRound:{value:1,type:"f32"},uResolution:{value:[0,0],type:"vec2<f32>"}}),this.renderer=e,this.adaptor=t,this.defaultShader=new ku,this.state=Ae.for2d()}validateRenderable(e){return!1}addRenderable(e,t){this.renderer.renderPipes.batch.break(t),t.add(e)}getBuffers(e){return e._gpuData[this.renderer.uid]||this._initBuffer(e)}_initBuffer(e){return e._gpuData[this.renderer.uid]=new Eu({size:e.particleChildren.length,properties:e._properties}),e._gpuData[this.renderer.uid]}updateRenderable(e){}execute(e){let t=e.particleChildren;if(t.length===0)return;let i=this.renderer,s=this.getBuffers(e);e.texture||(e.texture=t[0].texture);let n=this.state;s.update(t,e._childrenDirty),e._childrenDirty=!1,n.blendMode=Tr(e.blendMode,e.texture._source);let o=this.localUniforms.uniforms,a=o.uTranslationMatrix;e.worldTransform.copyTo(a),a.prepend(i.globalUniforms.globalUniformData.projectionMatrix),o.uResolution=i.globalUniforms.globalUniformData.resolution,o.uRound=i._roundPixels|e._roundPixels,er(e.groupColorAlpha,o.uColor,0),this.adaptor.execute(this,e)}destroy(){this.defaultShader&&(this.defaultShader.destroy(),this.defaultShader=null)}}});var go,by=p(()=>{P();ay();Pf();go=class extends Bs{constructor(e){super(e,new Cu)}};go.extension={type:[b.WebGLPipes],name:"particle"}});var Au,yy=p(()=>{"use strict";Au=class{execute(e,t){let i=e.renderer,s=t.shader||e.defaultShader;s.groups[0]=i.renderPipes.uniformBatch.getUniformBindGroup(e.localUniforms,!0),s.groups[1]=i.texture.getTextureBindGroup(t.texture);let n=e.state,o=e.getBuffers(t);i.encoder.draw({geometry:o.geometry,shader:t.shader||e.defaultShader,state:n,size:t.particleChildren.length*6})}}});var xo,Ty=p(()=>{P();yy();Pf();xo=class extends Bs{constructor(e){super(e,new Au)}};xo.extension={type:[b.WebGPUPipes],name:"particle"}});var Bf=p(()=>{P();by();Ty();O.add(go);O.add(xo)});function _o(r,e){let{texture:t,bounds:i}=r;eu(i,e._anchor,t);let s=e._style._getFinalPadding();i.minX-=s,i.minY-=s,i.maxX-=s,i.maxY-=s}var Rf=p(()=>{Bd()});var tr,bo=p(()=>{"use strict";tr=class{constructor(){this.batcherName="default",this.topology="triangle-list",this.attributeSize=4,this.indexSize=6,this.packAsQuad=!0,this.roundPixels=0,this._attributeStart=0,this._batcher=null,this._batch=null}get blendMode(){return this.renderable.groupBlendMode}get color(){return this.renderable.groupColorAlpha}reset(){this.renderable=null,this.texture=null,this._batcher=null,this._batch=null,this.bounds=null}destroy(){}}});var Pu,wy=p(()=>{bo();Pu=class extends tr{constructor(e){super(),this._renderer=e,e.runners.resolutionChange.add(this)}resolutionChange(){let e=this.renderable;e._autoResolution&&e.onViewUpdate()}destroy(){this._renderer.canvasText.returnTexture(this.texture),this._renderer=null}}});var yo,Sy=p(()=>{P();Rf();wy();yo=class{constructor(e){this._renderer=e}validateRenderable(e){return e._didTextUpdate}addRenderable(e,t){let i=this._getGpuText(e);e._didTextUpdate&&(this._updateGpuText(e),e._didTextUpdate=!1),this._renderer.renderPipes.batch.addToBatch(i,t)}updateRenderable(e){let t=this._getGpuText(e);t._batcher.updateElement(t)}_updateGpuText(e){let t=this._getGpuText(e);t.texture&&this._renderer.canvasText.returnTexture(t.texture),e._resolution=e._autoResolution?this._renderer.resolution:e.resolution,t.texture=t.texture=this._renderer.canvasText.getTexture(e),_o(t,e)}_getGpuText(e){return e._gpuData[this._renderer.uid]||this.initGpuText(e)}initGpuText(e){let t=new Pu(this._renderer);return t.renderable=e,t.transform=e.groupTransform,t.bounds={minX:0,maxX:1,minY:0,maxY:0},t.roundPixels=this._renderer._roundPixels|e._roundPixels,e._gpuData[this._renderer.uid]=t,t}destroy(){this._renderer=null}};yo.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"text"}});var vy,vr,Bu=p(()=>{ee();Oe();vy={repeat:{addressModeU:"repeat",addressModeV:"repeat"},"repeat-x":{addressModeU:"repeat",addressModeV:"clamp-to-edge"},"repeat-y":{addressModeU:"clamp-to-edge",addressModeV:"repeat"},"no-repeat":{addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}},vr=class{constructor(e,t){this.uid=K("fillPattern"),this.transform=new R,this._styleKey=null,this.texture=e,this.transform.scale(1/e.frame.width,1/e.frame.height),t&&(e.source.style.addressModeU=vy[t].addressModeU,e.source.style.addressModeV=vy[t].addressModeV)}setTransform(e){let t=this.texture;this.transform.copyFrom(e),this.transform.invert(),this.transform.scale(1/t.frame.width,1/t.frame.height),this._styleKey=null}get styleKey(){return this._styleKey?this._styleKey:(this._styleKey=`fill-pattern-${this.uid}-${this.texture.uid}-${this.transform.toArray().join("-")}`,this._styleKey)}}});var Ey=Or((tW,Cy)=>{Cy.exports=LA;var Df={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},NA=/([astvzqmhlc])([^astvzqmhlc]*)/ig;function LA(r){var e=[];return r.replace(NA,function(t,i,s){var n=i.toLowerCase();for(s=VA(s),n=="m"&&s.length>2&&(e.push([i].concat(s.splice(0,2))),n="l",i=i=="m"?"l":"L");;){if(s.length==Df[n])return s.unshift(i),e.push(s);if(s.length<Df[n])throw new Error("malformed path data");e.push([i].concat(s.splice(0,Df[n])))}}),e}var zA=/-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/ig;function VA(r){var e=r.match(zA);return e?e.map(Number):[]}});function Ay(r,e){let t=(0,ky.default)(r),i=[],s=null,n=0,o=0;for(let a=0;a<t.length;a++){let c=t[a],u=c[0],l=c;switch(u){case"M":n=l[1],o=l[2],e.moveTo(n,o);break;case"m":n+=l[1],o+=l[2],e.moveTo(n,o);break;case"H":n=l[1],e.lineTo(n,o);break;case"h":n+=l[1],e.lineTo(n,o);break;case"V":o=l[1],e.lineTo(n,o);break;case"v":o+=l[1],e.lineTo(n,o);break;case"L":n=l[1],o=l[2],e.lineTo(n,o);break;case"l":n+=l[1],o+=l[2],e.lineTo(n,o);break;case"C":n=l[5],o=l[6],e.bezierCurveTo(l[1],l[2],l[3],l[4],n,o);break;case"c":e.bezierCurveTo(n+l[1],o+l[2],n+l[3],o+l[4],n+l[5],o+l[6]),n+=l[5],o+=l[6];break;case"S":n=l[3],o=l[4],e.bezierCurveToShort(l[1],l[2],n,o);break;case"s":e.bezierCurveToShort(n+l[1],o+l[2],n+l[3],o+l[4]),n+=l[3],o+=l[4];break;case"Q":n=l[3],o=l[4],e.quadraticCurveTo(l[1],l[2],n,o);break;case"q":e.quadraticCurveTo(n+l[1],o+l[2],n+l[3],o+l[4]),n+=l[3],o+=l[4];break;case"T":n=l[1],o=l[2],e.quadraticCurveToShort(n,o);break;case"t":n+=l[1],o+=l[2],e.quadraticCurveToShort(n,o);break;case"A":n=l[6],o=l[7],e.arcToSvg(l[1],l[2],l[3],l[4],l[5],n,o);break;case"a":n+=l[6],o+=l[7],e.arcToSvg(l[1],l[2],l[3],l[4],l[5],n,o);break;case"Z":case"z":e.closePath(),i.length>0&&(s=i.pop(),s?(n=s.startX,o=s.startY):(n=0,o=0)),s=null;break;default:G(`Unknown SVG path command: ${u}`)}u!=="Z"&&u!=="z"&&s===null&&(s={startX:n,startY:o},i.push(s))}return e}var ky,Py=p(()=>{ky=Ah(Ey(),1);ge()});var Ru,By=p(()=>{Ge();Ru=class r{constructor(e=0,t=0,i=0){this.type="circle",this.x=e,this.y=t,this.radius=i}clone(){return new r(this.x,this.y,this.radius)}contains(e,t){if(this.radius<=0)return!1;let i=this.radius*this.radius,s=this.x-e,n=this.y-t;return s*=s,n*=n,s+n<=i}strokeContains(e,t,i,s=.5){if(this.radius===0)return!1;let n=this.x-e,o=this.y-t,a=this.radius,c=(1-s)*i,u=Math.sqrt(n*n+o*o);return u<=a+c&&u>a-(i-c)}getBounds(e){return e||(e=new Y),e.x=this.x-this.radius,e.y=this.y-this.radius,e.width=this.radius*2,e.height=this.radius*2,e}copyFrom(e){return this.x=e.x,this.y=e.y,this.radius=e.radius,this}copyTo(e){return e.copyFrom(this),e}toString(){return`[pixi.js/math:Circle x=${this.x} y=${this.y} radius=${this.radius}]`}}});var Du,Ry=p(()=>{Ge();Du=class r{constructor(e=0,t=0,i=0,s=0){this.type="ellipse",this.x=e,this.y=t,this.halfWidth=i,this.halfHeight=s}clone(){return new r(this.x,this.y,this.halfWidth,this.halfHeight)}contains(e,t){if(this.halfWidth<=0||this.halfHeight<=0)return!1;let i=(e-this.x)/this.halfWidth,s=(t-this.y)/this.halfHeight;return i*=i,s*=s,i+s<=1}strokeContains(e,t,i,s=.5){let{halfWidth:n,halfHeight:o}=this;if(n<=0||o<=0)return!1;let a=i*(1-s),c=i-a,u=n-c,l=o-c,h=n+a,f=o+a,d=e-this.x,m=t-this.y,x=d*d/(u*u)+m*m/(l*l),g=d*d/(h*h)+m*m/(f*f);return x>1&&g<=1}getBounds(e){return e||(e=new Y),e.x=this.x-this.halfWidth,e.y=this.y-this.halfHeight,e.width=this.halfWidth*2,e.height=this.halfHeight*2,e}copyFrom(e){return this.x=e.x,this.y=e.y,this.halfWidth=e.halfWidth,this.halfHeight=e.halfHeight,this}copyTo(e){return e.copyFrom(this),e}toString(){return`[pixi.js/math:Ellipse x=${this.x} y=${this.y} halfWidth=${this.halfWidth} halfHeight=${this.halfHeight}]`}}});function Dy(r,e,t,i,s,n){let o=r-t,a=e-i,c=s-t,u=n-i,l=o*c+a*u,h=c*c+u*u,f=-1;h!==0&&(f=l/h);let d,m;f<0?(d=t,m=i):f>1?(d=s,m=n):(d=t+f*c,m=i+f*u);let x=r-d,g=e-m;return x*x+g*g}var My=p(()=>{"use strict"});var HA,WA,Rs,Iy=p(()=>{My();Ge();Rs=class r{constructor(...e){this.type="polygon";let t=Array.isArray(e[0])?e[0]:e;if(typeof t[0]!="number"){let i=[];for(let s=0,n=t.length;s<n;s++)i.push(t[s].x,t[s].y);t=i}this.points=t,this.closePath=!0}isClockwise(){let e=0,t=this.points,i=t.length;for(let s=0;s<i;s+=2){let n=t[s],o=t[s+1],a=t[(s+2)%i],c=t[(s+3)%i];e+=(a-n)*(c+o)}return e<0}containsPolygon(e){let t=this.getBounds(HA),i=e.getBounds(WA);if(!t.containsRect(i))return!1;let s=e.points;for(let n=0;n<s.length;n+=2){let o=s[n],a=s[n+1];if(!this.contains(o,a))return!1}return!0}clone(){let e=this.points.slice(),t=new r(e);return t.closePath=this.closePath,t}contains(e,t){let i=!1,s=this.points.length/2;for(let n=0,o=s-1;n<s;o=n++){let a=this.points[n*2],c=this.points[n*2+1],u=this.points[o*2],l=this.points[o*2+1];c>t!=l>t&&e<(u-a)*((t-c)/(l-c))+a&&(i=!i)}return i}strokeContains(e,t,i,s=.5){let n=i*i,o=n*(1-s),a=n-o,{points:c}=this,u=c.length-(this.closePath?0:2);for(let l=0;l<u;l+=2){let h=c[l],f=c[l+1],d=c[(l+2)%c.length],m=c[(l+3)%c.length],x=Dy(e,t,h,f,d,m),g=Math.sign((d-h)*(t-f)-(m-f)*(e-h));if(x<=(g<0?a:o))return!0}return!1}getBounds(e){e||(e=new Y);let t=this.points,i=1/0,s=-1/0,n=1/0,o=-1/0;for(let a=0,c=t.length;a<c;a+=2){let u=t[a],l=t[a+1];i=u<i?u:i,s=u>s?u:s,n=l<n?l:n,o=l>o?l:o}return e.x=i,e.width=s-i,e.y=n,e.height=o-n,e}copyFrom(e){return this.points=e.points.slice(),this.closePath=e.closePath,this}copyTo(e){return e.copyFrom(this),e}toString(){return`[pixi.js/math:PolygoncloseStroke=${this.closePath}points=${this.points.reduce((e,t)=>`${e}, ${t}`,"")}]`}get lastX(){return this.points[this.points.length-2]}get lastY(){return this.points[this.points.length-1]}get x(){return this.points[this.points.length-2]}get y(){return this.points[this.points.length-1]}}});var Mu,Iu,Fy=p(()=>{Ge();Mu=(r,e,t,i,s,n,o)=>{let a=r-t,c=e-i,u=Math.sqrt(a*a+c*c);return u>=s-n&&u<=s+o},Iu=class r{constructor(e=0,t=0,i=0,s=0,n=20){this.type="roundedRectangle",this.x=e,this.y=t,this.width=i,this.height=s,this.radius=n}getBounds(e){return e||(e=new Y),e.x=this.x,e.y=this.y,e.width=this.width,e.height=this.height,e}clone(){return new r(this.x,this.y,this.width,this.height,this.radius)}copyFrom(e){return this.x=e.x,this.y=e.y,this.width=e.width,this.height=e.height,this}copyTo(e){return e.copyFrom(this),e}contains(e,t){if(this.width<=0||this.height<=0)return!1;if(e>=this.x&&e<=this.x+this.width&&t>=this.y&&t<=this.y+this.height){let i=Math.max(0,Math.min(this.radius,Math.min(this.width,this.height)/2));if(t>=this.y+i&&t<=this.y+this.height-i||e>=this.x+i&&e<=this.x+this.width-i)return!0;let s=e-(this.x+i),n=t-(this.y+i),o=i*i;if(s*s+n*n<=o||(s=e-(this.x+this.width-i),s*s+n*n<=o)||(n=t-(this.y+this.height-i),s*s+n*n<=o)||(s=e-(this.x+i),s*s+n*n<=o))return!0}return!1}strokeContains(e,t,i,s=.5){let{x:n,y:o,width:a,height:c,radius:u}=this,l=i*(1-s),h=i-l,f=n+u,d=o+u,m=a-u*2,x=c-u*2,g=n+a,_=o+c;return(e>=n-l&&e<=n+h||e>=g-h&&e<=g+l)&&t>=d&&t<=d+x||(t>=o-l&&t<=o+h||t>=_-h&&t<=_+l)&&e>=f&&e<=f+m?!0:e<f&&t<d&&Mu(e,t,f,d,u,h,l)||e>g-u&&t<d&&Mu(e,t,g-u,d,u,h,l)||e>g-u&&t>_-u&&Mu(e,t,g-u,_-u,u,h,l)||e<f&&t>_-u&&Mu(e,t,f,_-u,u,h,l)}toString(){return`[pixi.js/math:RoundedRectangle x=${this.x} y=${this.y}width=${this.width} height=${this.height} radius=${this.radius}]`}}});function Uu(r,e,t,i,s,n,o,a,c,u){let h=Math.min(.99,Math.max(0,u??As.defaultOptions.bezierSmoothness)),f=(qA-h)/1;return f*=f,jA(e,t,i,s,n,o,a,c,r,f),r}function jA(r,e,t,i,s,n,o,a,c,u){If(r,e,t,i,s,n,o,a,c,u,0),c.push(o,a)}function If(r,e,t,i,s,n,o,a,c,u,l){if(l>$A)return;let h=Math.PI,f=(r+t)/2,d=(e+i)/2,m=(t+s)/2,x=(i+n)/2,g=(s+o)/2,_=(n+a)/2,y=(f+m)/2,S=(d+x)/2,T=(m+g)/2,C=(x+_)/2,v=(y+T)/2,E=(S+C)/2;if(l>0){let M=o-r,A=a-e,B=Math.abs((t-o)*A-(i-a)*M),k=Math.abs((s-o)*A-(n-a)*M),L,j;if(B>Fu&&k>Fu){if((B+k)*(B+k)<=u*(M*M+A*A)){if(Ds<Mf){c.push(v,E);return}let be=Math.atan2(n-i,s-t);if(L=Math.abs(be-Math.atan2(i-e,t-r)),j=Math.abs(Math.atan2(a-n,o-s)-be),L>=h&&(L=2*h-L),j>=h&&(j=2*h-j),L+j<Ds){c.push(v,E);return}if(Mi!==0){if(L>Mi){c.push(t,i);return}if(j>Mi){c.push(s,n);return}}}}else if(B>Fu){if(B*B<=u*(M*M+A*A)){if(Ds<Mf){c.push(v,E);return}if(L=Math.abs(Math.atan2(n-i,s-t)-Math.atan2(i-e,t-r)),L>=h&&(L=2*h-L),L<Ds){c.push(t,i),c.push(s,n);return}if(Mi!==0&&L>Mi){c.push(t,i);return}}}else if(k>Fu){if(k*k<=u*(M*M+A*A)){if(Ds<Mf){c.push(v,E);return}if(L=Math.abs(Math.atan2(a-n,o-s)-Math.atan2(n-i,s-t)),L>=h&&(L=2*h-L),L<Ds){c.push(t,i),c.push(s,n);return}if(Mi!==0&&L>Mi){c.push(s,n);return}}}else if(M=v-(r+o)/2,A=E-(e+a)/2,M*M+A*A<=u){c.push(v,E);return}}If(r,e,f,d,y,S,v,E,c,u,l+1),If(v,E,T,C,g,_,o,a,c,u,l+1)}var $A,Fu,qA,Mf,Ds,Mi,Ff=p(()=>{wu();$A=8,Fu=11920929e-14,qA=1,Mf=.01,Ds=0,Mi=0});function Oy(r,e,t,i,s,n,o,a){let u=Math.min(.99,Math.max(0,a??As.defaultOptions.bezierSmoothness)),l=(KA-u)/1;return l*=l,ZA(e,t,i,s,n,o,r,l),r}function ZA(r,e,t,i,s,n,o,a){Uf(o,r,e,t,i,s,n,a,0),o.push(s,n)}function Uf(r,e,t,i,s,n,o,a,c){if(c>XA)return;let u=Math.PI,l=(e+i)/2,h=(t+s)/2,f=(i+n)/2,d=(s+o)/2,m=(l+f)/2,x=(h+d)/2,g=n-e,_=o-t,y=Math.abs((i-n)*_-(s-o)*g);if(y>YA){if(y*y<=a*(g*g+_*_)){if(Uy<QA){r.push(m,x);return}let S=Math.abs(Math.atan2(o-s,n-i)-Math.atan2(s-t,i-e));if(S>=u&&(S=2*u-S),S<Uy){r.push(m,x);return}}}else if(g=m-(e+n)/2,_=x-(t+o)/2,g*g+_*_<=a){r.push(m,x);return}Uf(r,e,t,l,h,m,x,a,c+1),Uf(r,m,x,f,d,n,o,a,c+1)}var XA,YA,KA,QA,Uy,Gy=p(()=>{wu();XA=8,YA=11920929e-14,KA=1,QA=.01,Uy=0});function Ou(r,e,t,i,s,n,o,a){let c=Math.abs(s-n);(!o&&s>n||o&&n>s)&&(c=2*Math.PI-c),a||(a=Math.max(6,Math.floor(6*Math.pow(i,1/3)*(c/Math.PI)))),a=Math.max(a,3);let u=c/a,l=s;u*=o?-1:1;for(let h=0;h<a+1;h++){let f=Math.cos(l),d=Math.sin(l),m=e+f*i,x=t+d*i;r.push(m,x),l+=u}}var Of=p(()=>{"use strict"});function Ny(r,e,t,i,s,n){let o=r[r.length-2],c=r[r.length-1]-t,u=o-e,l=s-t,h=i-e,f=Math.abs(c*h-u*l);if(f<1e-8||n===0){(r[r.length-2]!==e||r[r.length-1]!==t)&&r.push(e,t);return}let d=c*c+u*u,m=l*l+h*h,x=c*l+u*h,g=n*Math.sqrt(d)/f,_=n*Math.sqrt(m)/f,y=g*x/d,S=_*x/m,T=g*h+_*u,C=g*l+_*c,v=u*(_+y),E=c*(_+y),M=h*(g+S),A=l*(g+S),B=Math.atan2(E-C,v-T),k=Math.atan2(A-C,M-T);Ou(r,T+e,C+t,n,B,k,u*l>h*c)}var Ly=p(()=>{Of()});function JA(r,e){let t=e===-1.5707963267948966?-.551915024494:1.3333333333333333*Math.tan(e/4),i=e===1.5707963267948966?.551915024494:t,s=Math.cos(r),n=Math.sin(r),o=Math.cos(r+e),a=Math.sin(r+e);return[{x:s-n*i,y:n+s*i},{x:o+a*i,y:a-o*i},{x:o,y:a}]}function Vy(r,e,t,i,s,n,o,a=0,c=0,u=0){if(n===0||o===0)return;let l=Math.sin(a*To/360),h=Math.cos(a*To/360),f=h*(e-i)/2+l*(t-s)/2,d=-l*(e-i)/2+h*(t-s)/2;if(f===0&&d===0)return;n=Math.abs(n),o=Math.abs(o);let m=Math.pow(f,2)/Math.pow(n,2)+Math.pow(d,2)/Math.pow(o,2);m>1&&(n*=Math.sqrt(m),o*=Math.sqrt(m)),eP(e,t,i,s,n,o,c,u,l,h,f,d,Gf);let{ang1:x,ang2:g}=Gf,{centerX:_,centerY:y}=Gf,S=Math.abs(g)/(To/4);Math.abs(1-S)<1e-7&&(S=1);let T=Math.max(Math.ceil(S),1);g/=T;let C=r[r.length-2],v=r[r.length-1],E={x:0,y:0};for(let M=0;M<T;M++){let A=JA(x,g),{x:B,y:k}=Nf(A[0],n,o,h,l,_,y,E),{x:L,y:j}=Nf(A[1],n,o,h,l,_,y,E),{x:be,y:wt}=Nf(A[2],n,o,h,l,_,y,E);Uu(r,C,v,B,k,L,j,be,wt),C=be,v=wt,x+=g}}var To,Gf,Nf,zy,eP,Hy=p(()=>{Ff();To=Math.PI*2,Gf={centerX:0,centerY:0,ang1:0,ang2:0},Nf=({x:r,y:e},t,i,s,n,o,a,c)=>{r*=t,e*=i;let u=s*r-n*e,l=n*r+s*e;return c.x=u+o,c.y=l+a,c};zy=(r,e,t,i)=>{let s=r*i-e*t<0?-1:1,n=r*t+e*i;return n>1&&(n=1),n<-1&&(n=-1),s*Math.acos(n)},eP=(r,e,t,i,s,n,o,a,c,u,l,h,f)=>{let d=Math.pow(s,2),m=Math.pow(n,2),x=Math.pow(l,2),g=Math.pow(h,2),_=d*m-d*g-m*x;_<0&&(_=0),_/=d*g+m*x,_=Math.sqrt(_)*(o===a?-1:1);let y=_*s/n*h,S=_*-n/s*l,T=u*y-c*S+(r+t)/2,C=c*y+u*S+(e+i)/2,v=(l-y)/s,E=(h-S)/n,M=(-l-y)/s,A=(-h-S)/n,B=zy(1,0,v,E),k=zy(v,E,M,A);a===0&&k>0&&(k-=To),a===1&&k<0&&(k+=To),f.centerX=T,f.centerY=C,f.ang1=B,f.ang2=k}});function Wy(r,e,t){let i=(o,a)=>{let c=a.x-o.x,u=a.y-o.y,l=Math.sqrt(c*c+u*u),h=c/l,f=u/l;return{len:l,nx:h,ny:f}},s=(o,a)=>{o===0?r.moveTo(a.x,a.y):r.lineTo(a.x,a.y)},n=e[e.length-1];for(let o=0;o<e.length;o++){let a=e[o%e.length],c=a.radius??t;if(c<=0){s(o,a),n=a;continue}let u=e[(o+1)%e.length],l=i(a,n),h=i(a,u);if(l.len<1e-4||h.len<1e-4){s(o,a),n=a;continue}let f=Math.asin(l.nx*h.ny-l.ny*h.nx),d=1,m=!1;l.nx*h.nx-l.ny*-h.ny<0?f<0?f=Math.PI+f:(f=Math.PI-f,d=-1,m=!0):f>0&&(d=-1,m=!0);let x=f/2,g,_=Math.abs(Math.cos(x)*c/Math.sin(x));_>Math.min(l.len/2,h.len/2)?(_=Math.min(l.len/2,h.len/2),g=Math.abs(_*Math.sin(x)/Math.cos(x))):g=c;let y=a.x+h.nx*_+-h.ny*g*d,S=a.y+h.ny*_+h.nx*g*d,T=Math.atan2(l.ny,l.nx)+Math.PI/2*d,C=Math.atan2(h.ny,h.nx)-Math.PI/2*d;o===0&&r.moveTo(y+Math.cos(T)*g,S+Math.sin(T)*g),r.arc(y,S,g,T,C,m),n=a}}function $y(r,e,t,i){let s=(a,c)=>Math.sqrt((a.x-c.x)**2+(a.y-c.y)**2),n=(a,c,u)=>({x:a.x+(c.x-a.x)*u,y:a.y+(c.y-a.y)*u}),o=e.length;for(let a=0;a<o;a++){let c=e[(a+1)%o],u=c.radius??t;if(u<=0){a===0?r.moveTo(c.x,c.y):r.lineTo(c.x,c.y);continue}let l=e[a],h=e[(a+2)%o],f=s(l,c),d;if(f<1e-4)d=c;else{let g=Math.min(f/2,u);d=n(c,l,g/f)}let m=s(h,c),x;if(m<1e-4)x=c;else{let g=Math.min(m/2,u);x=n(c,h,g/m)}a===0?r.moveTo(d.x,d.y):r.lineTo(d.x,d.y),r.quadraticCurveTo(c.x,c.y,x.x,x.y,i)}}var qy=p(()=>{"use strict"});var tP,Gu,jy=p(()=>{By();Ry();Iy();Ge();Fy();ot();Ff();Gy();Of();Ly();Hy();qy();tP=new Y,Gu=class{constructor(e){this.shapePrimitives=[],this._currentPoly=null,this._bounds=new ae,this._graphicsPath2D=e,this.signed=e.checkForHoles}moveTo(e,t){return this.startPoly(e,t),this}lineTo(e,t){this._ensurePoly();let i=this._currentPoly.points,s=i[i.length-2],n=i[i.length-1];return(s!==e||n!==t)&&i.push(e,t),this}arc(e,t,i,s,n,o){this._ensurePoly(!1);let a=this._currentPoly.points;return Ou(a,e,t,i,s,n,o),this}arcTo(e,t,i,s,n){this._ensurePoly();let o=this._currentPoly.points;return Ny(o,e,t,i,s,n),this}arcToSvg(e,t,i,s,n,o,a){let c=this._currentPoly.points;return Vy(c,this._currentPoly.lastX,this._currentPoly.lastY,o,a,e,t,i,s,n),this}bezierCurveTo(e,t,i,s,n,o,a){this._ensurePoly();let c=this._currentPoly;return Uu(this._currentPoly.points,c.lastX,c.lastY,e,t,i,s,n,o,a),this}quadraticCurveTo(e,t,i,s,n){this._ensurePoly();let o=this._currentPoly;return Oy(this._currentPoly.points,o.lastX,o.lastY,e,t,i,s,n),this}closePath(){return this.endPoly(!0),this}addPath(e,t){this.endPoly(),t&&!t.isIdentity()&&(e=e.clone(!0),e.transform(t));let i=this.shapePrimitives,s=i.length;for(let n=0;n<e.instructions.length;n++){let o=e.instructions[n];this[o.action](...o.data)}if(e.checkForHoles&&i.length-s>1){let n=null;for(let o=s;o<i.length;o++){let a=i[o];if(a.shape.type==="polygon"){let c=a.shape,u=n?.shape;u&&u.containsPolygon(c)?(n.holes||(n.holes=[]),n.holes.push(a),i.copyWithin(o,o+1),i.length--,o--):n=a}}}return this}finish(e=!1){this.endPoly(e)}rect(e,t,i,s,n){return this.drawShape(new Y(e,t,i,s),n),this}circle(e,t,i,s){return this.drawShape(new Ru(e,t,i),s),this}poly(e,t,i){let s=new Rs(e);return s.closePath=t,this.drawShape(s,i),this}regularPoly(e,t,i,s,n=0,o){s=Math.max(s|0,3);let a=-1*Math.PI/2+n,c=Math.PI*2/s,u=[];for(let l=0;l<s;l++){let h=a-l*c;u.push(e+i*Math.cos(h),t+i*Math.sin(h))}return this.poly(u,!0,o),this}roundPoly(e,t,i,s,n,o=0,a){if(s=Math.max(s|0,3),n<=0)return this.regularPoly(e,t,i,s,o);let c=i*Math.sin(Math.PI/s)-.001;n=Math.min(n,c);let u=-1*Math.PI/2+o,l=Math.PI*2/s,h=(s-2)*Math.PI/s/2;for(let f=0;f<s;f++){let d=f*l+u,m=e+i*Math.cos(d),x=t+i*Math.sin(d),g=d+Math.PI+h,_=d-Math.PI-h,y=m+n*Math.cos(g),S=x+n*Math.sin(g),T=m+n*Math.cos(_),C=x+n*Math.sin(_);f===0?this.moveTo(y,S):this.lineTo(y,S),this.quadraticCurveTo(m,x,T,C,a)}return this.closePath()}roundShape(e,t,i=!1,s){return e.length<3?this:(i?$y(this,e,t,s):Wy(this,e,t),this.closePath())}filletRect(e,t,i,s,n){if(n===0)return this.rect(e,t,i,s);let o=Math.min(i,s)/2,a=Math.min(o,Math.max(-o,n)),c=e+i,u=t+s,l=a<0?-a:0,h=Math.abs(a);return this.moveTo(e,t+h).arcTo(e+l,t+l,e+h,t,h).lineTo(c-h,t).arcTo(c-l,t+l,c,t+h,h).lineTo(c,u-h).arcTo(c-l,u-l,e+i-h,u,h).lineTo(e+h,u).arcTo(e+l,u-l,e,u-h,h).closePath()}chamferRect(e,t,i,s,n,o){if(n<=0)return this.rect(e,t,i,s);let a=Math.min(n,Math.min(i,s)/2),c=e+i,u=t+s,l=[e+a,t,c-a,t,c,t+a,c,u-a,c-a,u,e+a,u,e,u-a,e,t+a];for(let h=l.length-1;h>=2;h-=2)l[h]===l[h-2]&&l[h-1]===l[h-3]&&l.splice(h-1,2);return this.poly(l,!0,o)}ellipse(e,t,i,s,n){return this.drawShape(new Du(e,t,i,s),n),this}roundRect(e,t,i,s,n,o){return this.drawShape(new Iu(e,t,i,s,n),o),this}drawShape(e,t){return this.endPoly(),this.shapePrimitives.push({shape:e,transform:t}),this}startPoly(e,t){let i=this._currentPoly;return i&&this.endPoly(),i=new Rs,i.points.push(e,t),this._currentPoly=i,this}endPoly(e=!1){let t=this._currentPoly;return t&&t.points.length>2&&(t.closePath=e,this.shapePrimitives.push({shape:t})),this._currentPoly=null,this}_ensurePoly(e=!0){if(!this._currentPoly&&(this._currentPoly=new Rs,e)){let t=this.shapePrimitives[this.shapePrimitives.length-1];if(t){let i=t.shape.x,s=t.shape.y;if(t.transform&&!t.transform.isIdentity()){let n=t.transform,o=i;i=n.a*i+n.c*s+n.tx,s=n.b*o+n.d*s+n.ty}this._currentPoly.points.push(i,s)}else this._currentPoly.points.push(0,0)}}buildPath(){let e=this._graphicsPath2D;this.shapePrimitives.length=0,this._currentPoly=null;for(let t=0;t<e.instructions.length;t++){let i=e.instructions[t];this[i.action](...i.data)}this.finish()}get bounds(){let e=this._bounds;e.clear();let t=this.shapePrimitives;for(let i=0;i<t.length;i++){let s=t[i],n=s.shape.getBounds(tP);s.transform?e.addRect(n,s.transform):e.addRect(n)}return e}}});function wo(r,e){return r?r.prepend(e):e.clone()}var Qr,Lf=p(()=>{It();Oe();ge();Py();jy();Qr=class r{constructor(e,t=!1){this.instructions=[],this.uid=K("graphicsPath"),this._dirty=!0,this.checkForHoles=t,typeof e=="string"?Ay(e,this):this.instructions=e?.slice()??[]}get shapePath(){return this._shapePath||(this._shapePath=new Gu(this)),this._dirty&&(this._dirty=!1,this._shapePath.buildPath()),this._shapePath}addPath(e,t){return e=e.clone(),this.instructions.push({action:"addPath",data:[e,t]}),this._dirty=!0,this}arc(...e){return this.instructions.push({action:"arc",data:e}),this._dirty=!0,this}arcTo(...e){return this.instructions.push({action:"arcTo",data:e}),this._dirty=!0,this}arcToSvg(...e){return this.instructions.push({action:"arcToSvg",data:e}),this._dirty=!0,this}bezierCurveTo(...e){return this.instructions.push({action:"bezierCurveTo",data:e}),this._dirty=!0,this}bezierCurveToShort(e,t,i,s,n){let o=this.instructions[this.instructions.length-1],a=this.getLastPoint(Z.shared),c=0,u=0;if(!o||o.action!=="bezierCurveTo")c=a.x,u=a.y;else{c=o.data[2],u=o.data[3];let l=a.x,h=a.y;c=l+(l-c),u=h+(h-u)}return this.instructions.push({action:"bezierCurveTo",data:[c,u,e,t,i,s,n]}),this._dirty=!0,this}closePath(){return this.instructions.push({action:"closePath",data:[]}),this._dirty=!0,this}ellipse(...e){return this.instructions.push({action:"ellipse",data:e}),this._dirty=!0,this}lineTo(...e){return this.instructions.push({action:"lineTo",data:e}),this._dirty=!0,this}moveTo(...e){return this.instructions.push({action:"moveTo",data:e}),this}quadraticCurveTo(...e){return this.instructions.push({action:"quadraticCurveTo",data:e}),this._dirty=!0,this}quadraticCurveToShort(e,t,i){let s=this.instructions[this.instructions.length-1],n=this.getLastPoint(Z.shared),o=0,a=0;if(!s||s.action!=="quadraticCurveTo")o=n.x,a=n.y;else{o=s.data[0],a=s.data[1];let c=n.x,u=n.y;o=c+(c-o),a=u+(u-a)}return this.instructions.push({action:"quadraticCurveTo",data:[o,a,e,t,i]}),this._dirty=!0,this}rect(e,t,i,s,n){return this.instructions.push({action:"rect",data:[e,t,i,s,n]}),this._dirty=!0,this}circle(e,t,i,s){return this.instructions.push({action:"circle",data:[e,t,i,s]}),this._dirty=!0,this}roundRect(...e){return this.instructions.push({action:"roundRect",data:e}),this._dirty=!0,this}poly(...e){return this.instructions.push({action:"poly",data:e}),this._dirty=!0,this}regularPoly(...e){return this.instructions.push({action:"regularPoly",data:e}),this._dirty=!0,this}roundPoly(...e){return this.instructions.push({action:"roundPoly",data:e}),this._dirty=!0,this}roundShape(...e){return this.instructions.push({action:"roundShape",data:e}),this._dirty=!0,this}filletRect(...e){return this.instructions.push({action:"filletRect",data:e}),this._dirty=!0,this}chamferRect(...e){return this.instructions.push({action:"chamferRect",data:e}),this._dirty=!0,this}star(e,t,i,s,n,o,a){n||(n=s/2);let c=-1*Math.PI/2+o,u=i*2,l=Math.PI*2/u,h=[];for(let f=0;f<u;f++){let d=f%2?n:s,m=f*l+c;h.push(e+d*Math.cos(m),t+d*Math.sin(m))}return this.poly(h,!0,a),this}clone(e=!1){let t=new r;if(t.checkForHoles=this.checkForHoles,!e)t.instructions=this.instructions.slice();else for(let i=0;i<this.instructions.length;i++){let s=this.instructions[i];t.instructions.push({action:s.action,data:s.data.slice()})}return t}clear(){return this.instructions.length=0,this._dirty=!0,this}transform(e){if(e.isIdentity())return this;let t=e.a,i=e.b,s=e.c,n=e.d,o=e.tx,a=e.ty,c=0,u=0,l=0,h=0,f=0,d=0,m=0,x=0;for(let g=0;g<this.instructions.length;g++){let _=this.instructions[g],y=_.data;switch(_.action){case"moveTo":case"lineTo":c=y[0],u=y[1],y[0]=t*c+s*u+o,y[1]=i*c+n*u+a;break;case"bezierCurveTo":l=y[0],h=y[1],f=y[2],d=y[3],c=y[4],u=y[5],y[0]=t*l+s*h+o,y[1]=i*l+n*h+a,y[2]=t*f+s*d+o,y[3]=i*f+n*d+a,y[4]=t*c+s*u+o,y[5]=i*c+n*u+a;break;case"quadraticCurveTo":l=y[0],h=y[1],c=y[2],u=y[3],y[0]=t*l+s*h+o,y[1]=i*l+n*h+a,y[2]=t*c+s*u+o,y[3]=i*c+n*u+a;break;case"arcToSvg":c=y[5],u=y[6],m=y[0],x=y[1],y[0]=t*m+s*x,y[1]=i*m+n*x,y[5]=t*c+s*u+o,y[6]=i*c+n*u+a;break;case"circle":y[4]=wo(y[3],e);break;case"rect":y[4]=wo(y[4],e);break;case"ellipse":y[8]=wo(y[8],e);break;case"roundRect":y[5]=wo(y[5],e);break;case"addPath":y[0].transform(e);break;case"poly":y[2]=wo(y[2],e);break;default:G("unknown transform action",_.action);break}}return this._dirty=!0,this}get bounds(){return this.shapePath.bounds}getLastPoint(e){let t=this.instructions.length-1,i=this.instructions[t];if(!i)return e.x=0,e.y=0,e;for(;i.action==="closePath";){if(t--,t<0)return e.x=0,e.y=0,e;i=this.instructions[t]}switch(i.action){case"moveTo":case"lineTo":e.x=i.data[0],e.y=i.data[1];break;case"quadraticCurveTo":e.x=i.data[2],e.y=i.data[3];break;case"bezierCurveTo":e.x=i.data[4],e.y=i.data[5];break;case"arc":case"arcToSvg":e.x=i.data[5],e.y=i.data[6];break;case"addPath":i.data[0].getLastPoint(e);break}return e}}});function _e(r,e,t){let i=r.getAttribute(e);return i?Number(i):t}var zf=p(()=>{"use strict"});function Xy(r,e){let t=r.querySelectorAll("defs");for(let i=0;i<t.length;i++){let s=t[i];for(let n=0;n<s.children.length;n++){let o=s.children[n];switch(o.nodeName.toLowerCase()){case"lineargradient":e.defs[o.id]=rP(o);break;case"radialgradient":e.defs[o.id]=iP(o);break;default:break}}}}function rP(r){let e=_e(r,"x1",0),t=_e(r,"y1",0),i=_e(r,"x2",1),s=_e(r,"y2",0),n=r.getAttribute("gradientUnits")||"objectBoundingBox",o=new ut(e,t,i,s,n==="objectBoundingBox"?"local":"global");for(let a=0;a<r.children.length;a++){let c=r.children[a],u=_e(c,"offset",0),l=q.shared.setValue(c.getAttribute("stop-color")).toNumber();o.addColorStop(u,l)}return o}function iP(r){return G("[SVG Parser] Radial gradients are not yet supported"),new ut(0,0,1,0)}var Yy=p(()=>{He();ge();ks();zf()});function Vf(r){let e=r.match(/url\s*\(\s*['"]?\s*#([^'"\s)]+)\s*['"]?\s*\)/i);return e?e[1]:""}var Ky=p(()=>{"use strict"});function Hf(r,e){let t=r.getAttribute("style"),i={},s={},n={strokeStyle:i,fillStyle:s,useFill:!1,useStroke:!1};for(let o in Qy){let a=r.getAttribute(o);a&&Zy(e,n,o,a.trim())}if(t){let o=t.split(";");for(let a=0;a<o.length;a++){let c=o[a].trim(),[u,l]=c.split(":");Qy[u]&&Zy(e,n,u,l.trim())}}return{strokeStyle:n.useStroke?i:null,fillStyle:n.useFill?s:null,useFill:n.useFill,useStroke:n.useStroke}}function Zy(r,e,t,i){switch(t){case"stroke":if(i!=="none"){if(i.startsWith("url(")){let s=Vf(i);e.strokeStyle.fill=r.defs[s]}else e.strokeStyle.color=q.shared.setValue(i).toNumber();e.useStroke=!0}break;case"stroke-width":e.strokeStyle.width=Number(i);break;case"fill":if(i!=="none"){if(i.startsWith("url(")){let s=Vf(i);e.fillStyle.fill=r.defs[s]}else e.fillStyle.color=q.shared.setValue(i).toNumber();e.useFill=!0}break;case"fill-opacity":e.fillStyle.alpha=Number(i);break;case"stroke-opacity":e.strokeStyle.alpha=Number(i);break;case"opacity":e.fillStyle.alpha=Number(i),e.strokeStyle.alpha=Number(i);break}}var Qy,Jy=p(()=>{He();Ky();Qy={fill:{type:"paint",default:0},"fill-opacity":{type:"number",default:1},stroke:{type:"paint",default:0},"stroke-width":{type:"number",default:1},"stroke-opacity":{type:"number",default:1},"stroke-linecap":{type:"string",default:"butt"},"stroke-linejoin":{type:"string",default:"miter"},"stroke-miterlimit":{type:"number",default:10},"stroke-dasharray":{type:"string",default:"none"},"stroke-dashoffset":{type:"number",default:0},opacity:{type:"number",default:1}}});function e2(r,e){if(typeof r=="string"){let o=document.createElement("div");o.innerHTML=r.trim(),r=o.querySelector("svg")}let t={context:e,defs:{},path:new Qr};Xy(r,t);let i=r.children,{fillStyle:s,strokeStyle:n}=Hf(r,t);for(let o=0;o<i.length;o++){let a=i[o];a.nodeName.toLowerCase()!=="defs"&&t2(a,t,s,n)}return e}function t2(r,e,t,i){let s=r.children,{fillStyle:n,strokeStyle:o}=Hf(r,e);n&&t?t={...t,...n}:n&&(t=n),o&&i?i={...i,...o}:o&&(i=o);let a=!t&&!i;a&&(t={color:0});let c,u,l,h,f,d,m,x,g,_,y,S,T,C,v,E,M;switch(r.nodeName.toLowerCase()){case"path":C=r.getAttribute("d"),r.getAttribute("fill-rule")==="evenodd"&&G("SVG Evenodd fill rule not supported, your svg may render incorrectly"),v=new Qr(C,!0),e.context.path(v),t&&e.context.fill(t),i&&e.context.stroke(i);break;case"circle":m=_e(r,"cx",0),x=_e(r,"cy",0),g=_e(r,"r",0),e.context.ellipse(m,x,g,g),t&&e.context.fill(t),i&&e.context.stroke(i);break;case"rect":c=_e(r,"x",0),u=_e(r,"y",0),E=_e(r,"width",0),M=_e(r,"height",0),_=_e(r,"rx",0),y=_e(r,"ry",0),_||y?e.context.roundRect(c,u,E,M,_||y):e.context.rect(c,u,E,M),t&&e.context.fill(t),i&&e.context.stroke(i);break;case"ellipse":m=_e(r,"cx",0),x=_e(r,"cy",0),_=_e(r,"rx",0),y=_e(r,"ry",0),e.context.beginPath(),e.context.ellipse(m,x,_,y),t&&e.context.fill(t),i&&e.context.stroke(i);break;case"line":l=_e(r,"x1",0),h=_e(r,"y1",0),f=_e(r,"x2",0),d=_e(r,"y2",0),e.context.beginPath(),e.context.moveTo(l,h),e.context.lineTo(f,d),i&&e.context.stroke(i);break;case"polygon":T=r.getAttribute("points"),S=T.match(/\d+/g).map(A=>parseInt(A,10)),e.context.poly(S,!0),t&&e.context.fill(t),i&&e.context.stroke(i);break;case"polyline":T=r.getAttribute("points"),S=T.match(/\d+/g).map(A=>parseInt(A,10)),e.context.poly(S,!1),i&&e.context.stroke(i);break;case"g":case"svg":break;default:{G(`[SVG parser] <${r.nodeName}> elements unsupported`);break}}a&&(t=null);for(let A=0;A<s.length;A++)t2(s[A],e,t,i)}var r2=p(()=>{ge();Lf();Yy();zf();Jy()});function sP(r){return q.isColorLike(r)}function i2(r){return r instanceof vr}function s2(r){return r instanceof ut}function nP(r){return r instanceof D}function oP(r,e,t){let i=q.shared.setValue(e??0);return r.color=i.toNumber(),r.alpha=i.alpha===1?t.alpha:i.alpha,r.texture=D.WHITE,{...t,...r}}function aP(r,e,t){return r.texture=e,{...t,...r}}function n2(r,e,t){return r.fill=e,r.color=16777215,r.texture=e.texture,r.matrix=e.transform,{...t,...r}}function o2(r,e,t){return e.buildGradient(),r.fill=e,r.color=16777215,r.texture=e.texture,r.matrix=e.transform,r.textureSpace=e.textureSpace,{...t,...r}}function cP(r,e){let t={...e,...r},i=q.shared.setValue(t.color);return t.alpha*=i.alpha,t.color=i.toNumber(),t}function Cr(r,e){if(r==null)return null;let t={},i=r;return sP(r)?oP(t,r,e):nP(r)?aP(t,r,e):i2(r)?n2(t,r,e):s2(r)?o2(t,r,e):i.fill&&i2(i.fill)?n2(i,i.fill,e):i.fill&&s2(i.fill)?o2(i,i.fill,e):cP(i,e)}function Ms(r,e){let{width:t,alignment:i,miterLimit:s,cap:n,join:o,pixelLine:a,...c}=e,u=Cr(r,c);return u?{width:t,alignment:i,miterLimit:s,cap:n,join:o,pixelLine:a,...u}:null}var Wf=p(()=>{He();le();ks();Bu()});var uP,a2,$f,_t,qf=p(()=>{Ve();He();ee();It();le();Oe();ye();ot();Lf();r2();Wf();uP=new Z,a2=new R,$f=class rr extends oe{constructor(){super(...arguments),this.uid=K("graphicsContext"),this.dirty=!0,this.batchMode="auto",this.instructions=[],this._activePath=new Qr,this._transform=new R,this._fillStyle={...rr.defaultFillStyle},this._strokeStyle={...rr.defaultStrokeStyle},this._stateStack=[],this._tick=0,this._bounds=new ae,this._boundsDirty=!0}clone(){let e=new rr;return e.batchMode=this.batchMode,e.instructions=this.instructions.slice(),e._activePath=this._activePath.clone(),e._transform=this._transform.clone(),e._fillStyle={...this._fillStyle},e._strokeStyle={...this._strokeStyle},e._stateStack=this._stateStack.slice(),e._bounds=this._bounds.clone(),e._boundsDirty=!0,e}get fillStyle(){return this._fillStyle}set fillStyle(e){this._fillStyle=Cr(e,rr.defaultFillStyle)}get strokeStyle(){return this._strokeStyle}set strokeStyle(e){this._strokeStyle=Ms(e,rr.defaultStrokeStyle)}setFillStyle(e){return this._fillStyle=Cr(e,rr.defaultFillStyle),this}setStrokeStyle(e){return this._strokeStyle=Cr(e,rr.defaultStrokeStyle),this}texture(e,t,i,s,n,o){return this.instructions.push({action:"texture",data:{image:e,dx:i||0,dy:s||0,dw:n||e.frame.width,dh:o||e.frame.height,transform:this._transform.clone(),alpha:this._fillStyle.alpha,style:t?q.shared.setValue(t).toNumber():16777215}}),this.onUpdate(),this}beginPath(){return this._activePath=new Qr,this}fill(e,t){let i,s=this.instructions[this.instructions.length-1];return this._tick===0&&s&&s.action==="stroke"?i=s.data.path:i=this._activePath.clone(),i?(e!=null&&(t!==void 0&&typeof e=="number"&&(z($,"GraphicsContext.fill(color, alpha) is deprecated, use GraphicsContext.fill({ color, alpha }) instead"),e={color:e,alpha:t}),this._fillStyle=Cr(e,rr.defaultFillStyle)),this.instructions.push({action:"fill",data:{style:this.fillStyle,path:i}}),this.onUpdate(),this._initNextPathLocation(),this._tick=0,this):this}_initNextPathLocation(){let{x:e,y:t}=this._activePath.getLastPoint(Z.shared);this._activePath.clear(),this._activePath.moveTo(e,t)}stroke(e){let t,i=this.instructions[this.instructions.length-1];return this._tick===0&&i&&i.action==="fill"?t=i.data.path:t=this._activePath.clone(),t?(e!=null&&(this._strokeStyle=Ms(e,rr.defaultStrokeStyle)),this.instructions.push({action:"stroke",data:{style:this.strokeStyle,path:t}}),this.onUpdate(),this._initNextPathLocation(),this._tick=0,this):this}cut(){for(let e=0;e<2;e++){let t=this.instructions[this.instructions.length-1-e],i=this._activePath.clone();if(t&&(t.action==="stroke"||t.action==="fill"))if(t.data.hole)t.data.hole.addPath(i);else{t.data.hole=i;break}}return this._initNextPathLocation(),this}arc(e,t,i,s,n,o){this._tick++;let a=this._transform;return this._activePath.arc(a.a*e+a.c*t+a.tx,a.b*e+a.d*t+a.ty,i,s,n,o),this}arcTo(e,t,i,s,n){this._tick++;let o=this._transform;return this._activePath.arcTo(o.a*e+o.c*t+o.tx,o.b*e+o.d*t+o.ty,o.a*i+o.c*s+o.tx,o.b*i+o.d*s+o.ty,n),this}arcToSvg(e,t,i,s,n,o,a){this._tick++;let c=this._transform;return this._activePath.arcToSvg(e,t,i,s,n,c.a*o+c.c*a+c.tx,c.b*o+c.d*a+c.ty),this}bezierCurveTo(e,t,i,s,n,o,a){this._tick++;let c=this._transform;return this._activePath.bezierCurveTo(c.a*e+c.c*t+c.tx,c.b*e+c.d*t+c.ty,c.a*i+c.c*s+c.tx,c.b*i+c.d*s+c.ty,c.a*n+c.c*o+c.tx,c.b*n+c.d*o+c.ty,a),this}closePath(){return this._tick++,this._activePath?.closePath(),this}ellipse(e,t,i,s){return this._tick++,this._activePath.ellipse(e,t,i,s,this._transform.clone()),this}circle(e,t,i){return this._tick++,this._activePath.circle(e,t,i,this._transform.clone()),this}path(e){return this._tick++,this._activePath.addPath(e,this._transform.clone()),this}lineTo(e,t){this._tick++;let i=this._transform;return this._activePath.lineTo(i.a*e+i.c*t+i.tx,i.b*e+i.d*t+i.ty),this}moveTo(e,t){this._tick++;let i=this._transform,s=this._activePath.instructions,n=i.a*e+i.c*t+i.tx,o=i.b*e+i.d*t+i.ty;return s.length===1&&s[0].action==="moveTo"?(s[0].data[0]=n,s[0].data[1]=o,this):(this._activePath.moveTo(n,o),this)}quadraticCurveTo(e,t,i,s,n){this._tick++;let o=this._transform;return this._activePath.quadraticCurveTo(o.a*e+o.c*t+o.tx,o.b*e+o.d*t+o.ty,o.a*i+o.c*s+o.tx,o.b*i+o.d*s+o.ty,n),this}rect(e,t,i,s){return this._tick++,this._activePath.rect(e,t,i,s,this._transform.clone()),this}roundRect(e,t,i,s,n){return this._tick++,this._activePath.roundRect(e,t,i,s,n,this._transform.clone()),this}poly(e,t){return this._tick++,this._activePath.poly(e,t,this._transform.clone()),this}regularPoly(e,t,i,s,n=0,o){return this._tick++,this._activePath.regularPoly(e,t,i,s,n,o),this}roundPoly(e,t,i,s,n,o){return this._tick++,this._activePath.roundPoly(e,t,i,s,n,o),this}roundShape(e,t,i,s){return this._tick++,this._activePath.roundShape(e,t,i,s),this}filletRect(e,t,i,s,n){return this._tick++,this._activePath.filletRect(e,t,i,s,n),this}chamferRect(e,t,i,s,n,o){return this._tick++,this._activePath.chamferRect(e,t,i,s,n,o),this}star(e,t,i,s,n=0,o=0){return this._tick++,this._activePath.star(e,t,i,s,n,o,this._transform.clone()),this}svg(e){return this._tick++,e2(e,this),this}restore(){let e=this._stateStack.pop();return e&&(this._transform=e.transform,this._fillStyle=e.fillStyle,this._strokeStyle=e.strokeStyle),this}save(){return this._stateStack.push({transform:this._transform.clone(),fillStyle:{...this._fillStyle},strokeStyle:{...this._strokeStyle}}),this}getTransform(){return this._transform}resetTransform(){return this._transform.identity(),this}rotate(e){return this._transform.rotate(e),this}scale(e,t=e){return this._transform.scale(e,t),this}setTransform(e,t,i,s,n,o){return e instanceof R?(this._transform.set(e.a,e.b,e.c,e.d,e.tx,e.ty),this):(this._transform.set(e,t,i,s,n,o),this)}transform(e,t,i,s,n,o){return e instanceof R?(this._transform.append(e),this):(a2.set(e,t,i,s,n,o),this._transform.append(a2),this)}translate(e,t=e){return this._transform.translate(e,t),this}clear(){return this._activePath.clear(),this.instructions.length=0,this.resetTransform(),this.onUpdate(),this}onUpdate(){this.dirty||(this.emit("update",this,16),this.dirty=!0,this._boundsDirty=!0)}get bounds(){if(!this._boundsDirty)return this._bounds;let e=this._bounds;e.clear();for(let t=0;t<this.instructions.length;t++){let i=this.instructions[t],s=i.action;if(s==="fill"){let n=i.data;e.addBounds(n.path.bounds)}else if(s==="texture"){let n=i.data;e.addFrame(n.dx,n.dy,n.dx+n.dw,n.dy+n.dh,n.transform)}if(s==="stroke"){let n=i.data,o=n.style.alignment,a=n.style.width*(1-o),c=n.path.bounds;e.addFrame(c.minX-a,c.minY-a,c.maxX+a,c.maxY+a)}}return e}containsPoint(e){if(!this.bounds.containsPoint(e.x,e.y))return!1;let t=this.instructions,i=!1;for(let s=0;s<t.length;s++){let n=t[s],o=n.data,a=o.path;if(!n.action||!a)continue;let c=o.style,u=a.shapePath.shapePrimitives;for(let l=0;l<u.length;l++){let h=u[l].shape;if(!c||!h)continue;let f=u[l].transform,d=f?f.applyInverse(e,uP):e;if(n.action==="fill")i=h.contains(d.x,d.y);else{let x=c;i=h.strokeContains(d.x,d.y,x.width,x.alignment)}let m=o.hole;if(m){let x=m.shapePath?.shapePrimitives;if(x)for(let g=0;g<x.length;g++)x[g].shape.contains(d.x,d.y)&&(i=!1)}if(i)return!0}}return i}destroy(e=!1){if(this._stateStack.length=0,this._transform=null,this.emit("destroy",this),this.removeAllListeners(),typeof e=="boolean"?e:e?.texture){let i=typeof e=="boolean"?e:e?.textureSource;this._fillStyle.texture&&this._fillStyle.texture.destroy(i),this._strokeStyle.texture&&this._strokeStyle.texture.destroy(i)}this._fillStyle=null,this._strokeStyle=null,this.instructions=null,this._activePath=null,this._bounds=null,this._stateStack=null,this.customShader=null,this._transform=null}};$f.defaultFillStyle={color:16777215,alpha:1,texture:D.WHITE,matrix:null,fill:null,textureSpace:"local"};$f.defaultStrokeStyle={width:1,color:16777215,alpha:1,alignment:.5,miterLimit:10,cap:"butt",join:"miter",texture:D.WHITE,matrix:null,fill:null,textureSpace:"local",pixelLine:!1};_t=$f});function u2(r){let e=[],t=0;for(let i=0;i<c2.length;i++){let s=`_${c2[i]}`;e[t++]=r[s]}return t=l2(r._fill,e,t),t=hP(r._stroke,e,t),t=dP(r.dropShadow,e,t),t=lP(r.filters,e,t),e.join("-")}function lP(r,e,t){if(!r)return t;for(let i of r)e[t++]=i.uid;return t}function l2(r,e,t){return r&&(e[t++]=r.color,e[t++]=r.alpha,e[t++]=r.fill?.styleKey),t}function hP(r,e,t){return r&&(t=l2(r,e,t),e[t++]=r.width,e[t++]=r.alignment,e[t++]=r.cap,e[t++]=r.join,e[t++]=r.miterLimit),t}function dP(r,e,t){return r&&(e[t++]=r.alpha,e[t++]=r.angle,e[t++]=r.blur,e[t++]=r.distance,e[t++]=q.shared.setValue(r.color).toNumber()),t}var c2,h2=p(()=>{He();c2=["align","breakWords","cssOverrides","fontVariant","fontWeight","leading","letterSpacing","lineHeight","padding","textBaseline","trim","whiteSpace","wordWrap","wordWrapWidth","fontFamily","fontStyle","fontSize"]});function fP(r){let e=r;if(typeof e.dropShadow=="boolean"&&e.dropShadow){let t=lt.defaultDropShadow;r.dropShadow={alpha:e.dropShadowAlpha??t.alpha,angle:e.dropShadowAngle??t.angle,blur:e.dropShadowBlur??t.blur,color:e.dropShadowColor??t.color,distance:e.dropShadowDistance??t.distance}}if(e.strokeThickness!==void 0){z($,"strokeThickness is now a part of stroke");let t=e.stroke,i={};if(q.isColorLike(t))i.color=t;else if(t instanceof ut||t instanceof vr)i.fill=t;else if(Object.hasOwnProperty.call(t,"color")||Object.hasOwnProperty.call(t,"fill"))i=t;else throw new Error("Invalid stroke value.");r.stroke={...i,width:e.strokeThickness}}if(Array.isArray(e.fillGradientStops)){z($,"gradient fill is now a fill pattern: `new FillGradient(...)`");let t;r.fontSize==null?r.fontSize=lt.defaultTextStyle.fontSize:typeof r.fontSize=="string"?t=parseInt(r.fontSize,10):t=r.fontSize;let i=new ut({start:{x:0,y:0},end:{x:0,y:(t||0)*1.7}}),s=e.fillGradientStops.map(n=>q.shared.setValue(n).toNumber());s.forEach((n,o)=>{let a=o/(s.length-1);i.addColorStop(a,n)}),r.fill={fill:i}}}var jf,lt,Fs=p(()=>{Ve();He();ye();ks();Bu();qf();Wf();h2();jf=class Is extends oe{constructor(e={}){super(),fP(e);let t={...Is.defaultTextStyle,...e};for(let i in t){let s=i;this[s]=t[i]}this.update()}get align(){return this._align}set align(e){this._align=e,this.update()}get breakWords(){return this._breakWords}set breakWords(e){this._breakWords=e,this.update()}get dropShadow(){return this._dropShadow}set dropShadow(e){e!==null&&typeof e=="object"?this._dropShadow=this._createProxy({...Is.defaultDropShadow,...e}):this._dropShadow=e?this._createProxy({...Is.defaultDropShadow}):null,this.update()}get fontFamily(){return this._fontFamily}set fontFamily(e){this._fontFamily=e,this.update()}get fontSize(){return this._fontSize}set fontSize(e){typeof e=="string"?this._fontSize=parseInt(e,10):this._fontSize=e,this.update()}get fontStyle(){return this._fontStyle}set fontStyle(e){this._fontStyle=e.toLowerCase(),this.update()}get fontVariant(){return this._fontVariant}set fontVariant(e){this._fontVariant=e,this.update()}get fontWeight(){return this._fontWeight}set fontWeight(e){this._fontWeight=e,this.update()}get leading(){return this._leading}set leading(e){this._leading=e,this.update()}get letterSpacing(){return this._letterSpacing}set letterSpacing(e){this._letterSpacing=e,this.update()}get lineHeight(){return this._lineHeight}set lineHeight(e){this._lineHeight=e,this.update()}get padding(){return this._padding}set padding(e){this._padding=e,this.update()}get filters(){return this._filters}set filters(e){this._filters=e,this.update()}get trim(){return this._trim}set trim(e){this._trim=e,this.update()}get textBaseline(){return this._textBaseline}set textBaseline(e){this._textBaseline=e,this.update()}get whiteSpace(){return this._whiteSpace}set whiteSpace(e){this._whiteSpace=e,this.update()}get wordWrap(){return this._wordWrap}set wordWrap(e){this._wordWrap=e,this.update()}get wordWrapWidth(){return this._wordWrapWidth}set wordWrapWidth(e){this._wordWrapWidth=e,this.update()}get fill(){return this._originalFill}set fill(e){e!==this._originalFill&&(this._originalFill=e,this._isFillStyle(e)&&(this._originalFill=this._createProxy({..._t.defaultFillStyle,...e},()=>{this._fill=Cr({...this._originalFill},_t.defaultFillStyle)})),this._fill=Cr(e===0?"black":e,_t.defaultFillStyle),this.update())}get stroke(){return this._originalStroke}set stroke(e){e!==this._originalStroke&&(this._originalStroke=e,this._isFillStyle(e)&&(this._originalStroke=this._createProxy({..._t.defaultStrokeStyle,...e},()=>{this._stroke=Ms({...this._originalStroke},_t.defaultStrokeStyle)})),this._stroke=Ms(e,_t.defaultStrokeStyle),this.update())}_generateKey(){return this._styleKey=u2(this),this._styleKey}update(){this._styleKey=null,this.emit("update",this)}reset(){let e=Is.defaultTextStyle;for(let t in e)this[t]=e[t]}get styleKey(){return this._styleKey||this._generateKey()}clone(){return new Is({align:this.align,breakWords:this.breakWords,dropShadow:this._dropShadow?{...this._dropShadow}:null,fill:this._fill,fontFamily:this.fontFamily,fontSize:this.fontSize,fontStyle:this.fontStyle,fontVariant:this.fontVariant,fontWeight:this.fontWeight,leading:this.leading,letterSpacing:this.letterSpacing,lineHeight:this.lineHeight,padding:this.padding,stroke:this._stroke,textBaseline:this.textBaseline,whiteSpace:this.whiteSpace,wordWrap:this.wordWrap,wordWrapWidth:this.wordWrapWidth,filters:this._filters?[...this._filters]:void 0})}_getFinalPadding(){let e=0;if(this._filters)for(let t=0;t<this._filters.length;t++)e+=this._filters[t].padding;return Math.max(this._padding,e)}destroy(e=!1){if(this.removeAllListeners(),typeof e=="boolean"?e:e?.texture){let i=typeof e=="boolean"?e:e?.textureSource;this._fill?.texture&&this._fill.texture.destroy(i),this._originalFill?.texture&&this._originalFill.texture.destroy(i),this._stroke?.texture&&this._stroke.texture.destroy(i),this._originalStroke?.texture&&this._originalStroke.texture.destroy(i)}this._fill=null,this._stroke=null,this.dropShadow=null,this._originalStroke=null,this._originalFill=null}_createProxy(e,t){return new Proxy(e,{set:(i,s,n)=>(i[s]=n,t?.(s,n),this.update(),!0)})}_isFillStyle(e){return(e??null)!==null&&!(q.isColorLike(e)||e instanceof ut||e instanceof vr)}};jf.defaultDropShadow={alpha:1,angle:Math.PI/6,blur:0,color:"black",distance:5};jf.defaultTextStyle={align:"left",breakWords:!1,dropShadow:null,fill:"black",fontFamily:"Arial",fontSize:26,fontStyle:"normal",fontVariant:"normal",fontWeight:"normal",leading:0,letterSpacing:0,lineHeight:0,padding:0,stroke:null,textBaseline:"alphabetic",trim:!1,whiteSpace:"pre",wordWrap:!1,wordWrapWidth:100};lt=jf});function Nu(r,e,t,i){let s=mP;s.minX=0,s.minY=0,s.maxX=r.width/i|0,s.maxY=r.height/i|0;let n=Te.getOptimalTexture(s.width,s.height,i,!1);return n.source.uploadMethodId="image",n.source.resource=r,n.source.alphaMode="premultiply-alpha-on-upload",n.frame.width=e/i,n.frame.height=t/i,n.source.emit("update",n.source),n.updateUvs(),n}var mP,Xf=p(()=>{Lr();ot();mP=new ae});var Yf,bt,Us=p(()=>{ve();zn();Yf=class{constructor(e){this._canvasPool=Object.create(null),this.canvasOptions=e||{},this.enableFullScreen=!1}_createCanvasAndContext(e,t){let i=W.get().createCanvas();i.width=e,i.height=t;let s=i.getContext("2d");return{canvas:i,context:s}}getOptimalCanvasAndContext(e,t,i=1){e=Math.ceil(e*i-1e-6),t=Math.ceil(t*i-1e-6),e=_r(e),t=_r(t);let s=(e<<17)+(t<<1);this._canvasPool[s]||(this._canvasPool[s]=[]);let n=this._canvasPool[s].pop();return n||(n=this._createCanvasAndContext(e,t)),n}returnCanvasAndContext(e){let t=e.canvas,{width:i,height:s}=t,n=(i<<17)+(s<<1);e.context.clearRect(0,0,i,s),this._canvasPool[n].push(e)}clear(){this._canvasPool={}}},bt=new Yf});function pP(r,e){Ii||(Ii=W.get().createCanvas(256,128),Er=Ii.getContext("2d",{willReadFrequently:!0}),Er.globalCompositeOperation="copy",Er.globalAlpha=1),(Ii.width<r||Ii.height<e)&&(Ii.width=_r(r),Ii.height=_r(e))}function d2(r,e,t){for(let i=0,s=4*t*e;i<e;++i,s+=4)if(r[s+3]!==0)return!1;return!0}function f2(r,e,t,i,s){let n=4*e;for(let o=i,a=i*n+4*t;o<=s;++o,a+=n)if(r[a+3]!==0)return!1;return!0}function m2(...r){let e=r[0];e.canvas||(e={canvas:r[0],resolution:r[1]});let{canvas:t}=e,i=Math.min(e.resolution??1,1),s=e.width??t.width,n=e.height??t.height,o=e.output;if(pP(s,n),!Er)throw new TypeError("Failed to get canvas 2D context");Er.drawImage(t,0,0,s,n,0,0,s*i,n*i);let c=Er.getImageData(0,0,s,n).data,u=0,l=0,h=s-1,f=n-1;for(;l<n&&d2(c,s,l);)++l;if(l===n)return Y.EMPTY;for(;d2(c,s,f);)--f;for(;f2(c,s,u,l,f);)++u;for(;f2(c,s,h,l,f);)--h;return++h,++f,Er.globalCompositeOperation="source-over",Er.strokeRect(u,l,h-u,f-l),Er.globalCompositeOperation="copy",o??(o=new Y),o.set(u/i,l/i,(h-u)/i,(f-l)/i),o}var Ii,Er,p2=p(()=>{ve();zn();Ge();Ii=null,Er=null});function Fi(r){let e=typeof r.fontSize=="number"?`${r.fontSize}px`:r.fontSize,t=r.fontFamily;Array.isArray(r.fontFamily)||(t=r.fontFamily.split(","));for(let i=t.length-1;i>=0;i--){let s=t[i].trim();!/([\"\'])[^\'\"]+\1/.test(s)&&!gP.includes(s)&&(s=`"${s}"`),t[i]=s}return`${r.fontStyle} ${r.fontVariant} ${r.fontWeight} ${e} ${t.join(",")}`}var gP,Lu=p(()=>{"use strict";gP=["serif","sans-serif","monospace","cursive","fantasy","system-ui"]});var Kf,ir,Xe,Os=p(()=>{ve();Lu();Kf={willReadFrequently:!0},ir=class V{static get experimentalLetterSpacingSupported(){let e=V._experimentalLetterSpacingSupported;if(e===void 0){let t=W.get().getCanvasRenderingContext2D().prototype;e=V._experimentalLetterSpacingSupported="letterSpacing"in t||"textLetterSpacing"in t}return e}constructor(e,t,i,s,n,o,a,c,u){this.text=e,this.style=t,this.width=i,this.height=s,this.lines=n,this.lineWidths=o,this.lineHeight=a,this.maxLineWidth=c,this.fontProperties=u}static measureText(e=" ",t,i=V._canvas,s=t.wordWrap){let n=Fi(t),o=V.measureFont(n);o.fontSize===0&&(o.fontSize=t.fontSize,o.ascent=t.fontSize);let a=V.__context;a.font=n;let u=(s?V._wordWrap(e,t,i):e).split(/(?:\r\n|\r|\n)/),l=new Array(u.length),h=0;for(let _=0;_<u.length;_++){let y=V._measureText(u[_],t.letterSpacing,a);l[_]=y,h=Math.max(h,y)}let f=t._stroke?.width||0,d=h+f;t.dropShadow&&(d+=t.dropShadow.distance);let m=t.lineHeight||o.fontSize,x=Math.max(m,o.fontSize+f)+(u.length-1)*(m+t.leading);return t.dropShadow&&(x+=t.dropShadow.distance),new V(e,t,d,x,u,l,m+t.leading,h,o)}static _measureText(e,t,i){let s=!1;V.experimentalLetterSpacingSupported&&(V.experimentalLetterSpacing?(i.letterSpacing=`${t}px`,i.textLetterSpacing=`${t}px`,s=!0):(i.letterSpacing="0px",i.textLetterSpacing="0px"));let n=i.measureText(e),o=n.width,a=-n.actualBoundingBoxLeft,u=n.actualBoundingBoxRight-a;if(o>0)if(s)o-=t,u-=t;else{let l=(V.graphemeSegmenter(e).length-1)*t;o+=l,u+=l}return Math.max(o,u)}static _wordWrap(e,t,i=V._canvas){let s=i.getContext("2d",Kf),n=0,o="",a="",c=Object.create(null),{letterSpacing:u,whiteSpace:l}=t,h=V._collapseSpaces(l),f=V._collapseNewlines(l),d=!h,m=t.wordWrapWidth+u,x=V._tokenize(e);for(let g=0;g<x.length;g++){let _=x[g];if(V._isNewline(_)){if(!f){a+=V._addLine(o),d=!h,o="",n=0;continue}_=" "}if(h){let S=V.isBreakingSpace(_),T=V.isBreakingSpace(o[o.length-1]);if(S&&T)continue}let y=V._getFromCache(_,u,c,s);if(y>m)if(o!==""&&(a+=V._addLine(o),o="",n=0),V.canBreakWords(_,t.breakWords)){let S=V.wordWrapSplit(_);for(let T=0;T<S.length;T++){let C=S[T],v=C,E=1;for(;S[T+E];){let A=S[T+E];if(!V.canBreakChars(v,A,_,T,t.breakWords))C+=A;else break;v=A,E++}T+=E-1;let M=V._getFromCache(C,u,c,s);M+n>m&&(a+=V._addLine(o),d=!1,o="",n=0),o+=C,n+=M}}else{o.length>0&&(a+=V._addLine(o),o="",n=0);let S=g===x.length-1;a+=V._addLine(_,!S),d=!1,o="",n=0}else y+n>m&&(d=!1,a+=V._addLine(o),o="",n=0),(o.length>0||!V.isBreakingSpace(_)||d)&&(o+=_,n+=y)}return a+=V._addLine(o,!1),a}static _addLine(e,t=!0){return e=V._trimRight(e),e=t?`${e}
368
+ `:e,e}static _getFromCache(e,t,i,s){let n=i[e];return typeof n!="number"&&(n=V._measureText(e,t,s)+t,i[e]=n),n}static _collapseSpaces(e){return e==="normal"||e==="pre-line"}static _collapseNewlines(e){return e==="normal"}static _trimRight(e){if(typeof e!="string")return"";for(let t=e.length-1;t>=0;t--){let i=e[t];if(!V.isBreakingSpace(i))break;e=e.slice(0,-1)}return e}static _isNewline(e){return typeof e!="string"?!1:V._newlines.includes(e.charCodeAt(0))}static isBreakingSpace(e,t){return typeof e!="string"?!1:V._breakingSpaces.includes(e.charCodeAt(0))}static _tokenize(e){let t=[],i="";if(typeof e!="string")return t;for(let s=0;s<e.length;s++){let n=e[s],o=e[s+1];if(V.isBreakingSpace(n,o)||V._isNewline(n)){i!==""&&(t.push(i),i=""),t.push(n);continue}i+=n}return i!==""&&t.push(i),t}static canBreakWords(e,t){return t}static canBreakChars(e,t,i,s,n){return!0}static wordWrapSplit(e){return V.graphemeSegmenter(e)}static measureFont(e){if(V._fonts[e])return V._fonts[e];let t=V._context;t.font=e;let i=t.measureText(V.METRICS_STRING+V.BASELINE_SYMBOL),s={ascent:i.actualBoundingBoxAscent,descent:i.actualBoundingBoxDescent,fontSize:i.actualBoundingBoxAscent+i.actualBoundingBoxDescent};return V._fonts[e]=s,s}static clearMetrics(e=""){e?delete V._fonts[e]:V._fonts={}}static get _canvas(){if(!V.__canvas){let e;try{let t=new OffscreenCanvas(0,0);if(t.getContext("2d",Kf)?.measureText)return V.__canvas=t,t;e=W.get().createCanvas()}catch{e=W.get().createCanvas()}e.width=e.height=10,V.__canvas=e}return V.__canvas}static get _context(){return V.__context||(V.__context=V._canvas.getContext("2d",Kf)),V.__context}};ir.METRICS_STRING="|\xC9q\xC5";ir.BASELINE_SYMBOL="M";ir.BASELINE_MULTIPLIER=1.4;ir.HEIGHT_MULTIPLIER=2;ir.graphemeSegmenter=(()=>{if(typeof Intl?.Segmenter=="function"){let r=new Intl.Segmenter;return e=>{let t=r.segment(e),i=[],s=0;for(let n of t)i[s++]=n.segment;return i}}return r=>[...r]})();ir.experimentalLetterSpacing=!1;ir._fonts={};ir._newlines=[10,13];ir._breakingSpaces=[9,32,8192,8193,8194,8195,8196,8197,8198,8200,8201,8202,8287,12288];Xe=ir});function Gs(r,e,t,i=0){if(r.texture===D.WHITE&&!r.fill)return q.shared.setValue(r.color).setAlpha(r.alpha??1).toHexa();if(r.fill){if(r.fill instanceof vr){let s=r.fill,n=e.createPattern(s.texture.source.resource,"repeat"),o=s.transform.copyTo(R.shared);return o.scale(s.texture.frame.width,s.texture.frame.height),n.setTransform(o),n}else if(r.fill instanceof ut){let s=r.fill,n=s.type==="linear",o=s.textureSpace==="local",a=1,c=1;o&&t&&(a=t.width+i,c=t.height+i);let u,l=!1;if(n){let{start:h,end:f}=s;u=e.createLinearGradient(h.x*a,h.y*c,f.x*a,f.y*c),l=Math.abs(f.x-h.x)<Math.abs((f.y-h.y)*.1)}else{let{center:h,innerRadius:f,outerCenter:d,outerRadius:m}=s;u=e.createRadialGradient(h.x*a,h.y*c,f*a,d.x*a,d.y*c,m*a)}if(l&&o&&t){let h=t.lineHeight/c;for(let f=0;f<t.lines.length;f++){let d=(f*t.lineHeight+i/2)/c;s.colorStops.forEach(m=>{let x=d+m.offset*h;u.addColorStop(Math.floor(x*g2)/g2,q.shared.setValue(m.color).toHex())})}}else s.colorStops.forEach(h=>{u.addColorStop(h.offset,q.shared.setValue(h.color).toHex())});return u}}else{let s=e.createPattern(r.texture.source.resource,"repeat"),n=r.matrix.copyTo(R.shared);return n.scale(r.texture.frame.width,r.texture.frame.height),s.setTransform(n),s}return G("FillStyle not recognised",r),"red"}var g2,Qf=p(()=>{He();ee();le();ge();ks();Bu();g2=1e5});var x2,Zf,Ui,Jf=p(()=>{He();Ge();Us();p2();Os();Lu();Qf();x2=new Y,Zf=class{getCanvasAndContext(e){let{text:t,style:i,resolution:s=1}=e,n=i._getFinalPadding(),o=Xe.measureText(t||" ",i),a=Math.ceil(Math.ceil(Math.max(1,o.width)+n*2)*s),c=Math.ceil(Math.ceil(Math.max(1,o.height)+n*2)*s),u=bt.getOptimalCanvasAndContext(a,c);this._renderTextToCanvas(t,i,n,s,u);let l=i.trim?m2({canvas:u.canvas,width:a,height:c,resolution:1,output:x2}):x2.set(0,0,a,c);return{canvasAndContext:u,frame:l}}returnCanvasAndContext(e){bt.returnCanvasAndContext(e)}_renderTextToCanvas(e,t,i,s,n){let{canvas:o,context:a}=n,c=Fi(t),u=Xe.measureText(e||" ",t),l=u.lines,h=u.lineHeight,f=u.lineWidths,d=u.maxLineWidth,m=u.fontProperties,x=o.height;if(a.resetTransform(),a.scale(s,s),a.textBaseline=t.textBaseline,t._stroke?.width){let S=t._stroke;a.lineWidth=S.width,a.miterLimit=S.miterLimit,a.lineJoin=S.join,a.lineCap=S.cap}a.font=c;let g,_,y=t.dropShadow?2:1;for(let S=0;S<y;++S){let T=t.dropShadow&&S===0,C=T?Math.ceil(Math.max(1,x)+i*2):0,v=C*s;if(T){a.fillStyle="black",a.strokeStyle="black";let A=t.dropShadow,B=A.color,k=A.alpha;a.shadowColor=q.shared.setValue(B).setAlpha(k).toRgbaString();let L=A.blur*s,j=A.distance*s;a.shadowBlur=L,a.shadowOffsetX=Math.cos(A.angle)*j,a.shadowOffsetY=Math.sin(A.angle)*j+v}else{if(a.fillStyle=t._fill?Gs(t._fill,a,u):null,t._stroke?.width){let A=t._stroke.width*t._stroke.alignment;a.strokeStyle=Gs(t._stroke,a,u,A)}a.shadowColor="black"}let E=(h-m.fontSize)/2;h-m.fontSize<0&&(E=0);let M=t._stroke?.width??0;for(let A=0;A<l.length;A++)g=M/2,_=M/2+A*h+m.ascent+E,t.align==="right"?g+=d-f[A]:t.align==="center"&&(g+=(d-f[A])/2),t._stroke?.width&&this._drawLetterSpacing(l[A],t,n,g+i,_+i-C,!0),t._fill!==void 0&&this._drawLetterSpacing(l[A],t,n,g+i,_+i-C)}}_drawLetterSpacing(e,t,i,s,n,o=!1){let{context:a}=i,c=t.letterSpacing,u=!1;if(Xe.experimentalLetterSpacingSupported&&(Xe.experimentalLetterSpacing?(a.letterSpacing=`${c}px`,a.textLetterSpacing=`${c}px`,u=!0):(a.letterSpacing="0px",a.textLetterSpacing="0px")),c===0||u){o?a.strokeText(e,s,n):a.fillText(e,s,n);return}let l=s,h=Xe.graphemeSegmenter(e),f=a.measureText(e).width,d=0;for(let m=0;m<h.length;++m){let x=h[m];o?a.strokeText(x,l,n):a.fillText(x,l,n);let g="";for(let _=m+1;_<h.length;++_)g+=h[_];d=a.measureText(g).width,l+=f-d+c,f=d}}},Ui=new Zf});var So,_2=p(()=>{P();Lr();bi();ye();Fs();Xf();Jf();So=class{constructor(e){this._renderer=e}getTexture(e,t,i,s){typeof e=="string"&&(z("8.0.0","CanvasTextSystem.getTexture: Use object TextOptions instead of separate arguments"),e={text:e,style:i,resolution:t}),e.style instanceof lt||(e.style=new lt(e.style)),e.textureStyle instanceof Je||(e.textureStyle=new Je(e.textureStyle)),typeof e.text!="string"&&(e.text=e.text.toString());let{text:n,style:o,textureStyle:a}=e,c=e.resolution??this._renderer.resolution,{frame:u,canvasAndContext:l}=Ui.getCanvasAndContext({text:n,style:o,resolution:c}),h=Nu(l.canvas,u.width,u.height,c);if(a&&(h.source.style=a),o.trim&&(u.pad(o.padding),h.frame.copyFrom(u),h.updateUvs()),o.filters){let f=this._applyFilters(h,o.filters);return this.returnTexture(h),Ui.returnCanvasAndContext(l),f}return this._renderer.texture.initSource(h._source),Ui.returnCanvasAndContext(l),h}returnTexture(e){let t=e.source;t.resource=null,t.uploadMethodId="unknown",t.alphaMode="no-premultiply-alpha",Te.returnTexture(e,!0)}renderTextToCanvas(){z("8.10.0","CanvasTextSystem.renderTextToCanvas: no longer supported, use CanvasTextSystem.getTexture instead")}_applyFilters(e,t){let i=this._renderer.renderTarget.renderTarget,s=this._renderer.filter.generateFilteredTexture({texture:e,filters:t});return this._renderer.renderTarget.bind(i,!1),s}destroy(){this._renderer=null}};So.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"canvasText"}});var em=p(()=>{P();Sy();_2();O.add(So);O.add(yo)});var zu,b2=p(()=>{ye();Zc();qf();zu=class r extends Hr{constructor(e){e instanceof _t&&(e={context:e});let{context:t,roundPixels:i,...s}=e||{};super({label:"Graphics",...s}),this.renderPipeId="graphics",t?this._context=t:this._context=this._ownedContext=new _t,this._context.on("update",this.onViewUpdate,this),this.didViewUpdate=!0,this.allowChildren=!1,this.roundPixels=i??!1}set context(e){e!==this._context&&(this._context.off("update",this.onViewUpdate,this),this._context=e,this._context.on("update",this.onViewUpdate,this),this.onViewUpdate())}get context(){return this._context}get bounds(){return this._context.bounds}updateBounds(){}containsPoint(e){return this._context.containsPoint(e)}destroy(e){this._ownedContext&&!e?this._ownedContext.destroy(e):(e===!0||e?.context===!0)&&this._context.destroy(e),this._ownedContext=null,this._context=null,super.destroy(e)}_callContextMethod(e,t){return this.context[e](...t),this}setFillStyle(...e){return this._callContextMethod("setFillStyle",e)}setStrokeStyle(...e){return this._callContextMethod("setStrokeStyle",e)}fill(...e){return this._callContextMethod("fill",e)}stroke(...e){return this._callContextMethod("stroke",e)}texture(...e){return this._callContextMethod("texture",e)}beginPath(){return this._callContextMethod("beginPath",[])}cut(){return this._callContextMethod("cut",[])}arc(...e){return this._callContextMethod("arc",e)}arcTo(...e){return this._callContextMethod("arcTo",e)}arcToSvg(...e){return this._callContextMethod("arcToSvg",e)}bezierCurveTo(...e){return this._callContextMethod("bezierCurveTo",e)}closePath(){return this._callContextMethod("closePath",[])}ellipse(...e){return this._callContextMethod("ellipse",e)}circle(...e){return this._callContextMethod("circle",e)}path(...e){return this._callContextMethod("path",e)}lineTo(...e){return this._callContextMethod("lineTo",e)}moveTo(...e){return this._callContextMethod("moveTo",e)}quadraticCurveTo(...e){return this._callContextMethod("quadraticCurveTo",e)}rect(...e){return this._callContextMethod("rect",e)}roundRect(...e){return this._callContextMethod("roundRect",e)}poly(...e){return this._callContextMethod("poly",e)}regularPoly(...e){return this._callContextMethod("regularPoly",e)}roundPoly(...e){return this._callContextMethod("roundPoly",e)}roundShape(...e){return this._callContextMethod("roundShape",e)}filletRect(...e){return this._callContextMethod("filletRect",e)}chamferRect(...e){return this._callContextMethod("chamferRect",e)}star(...e){return this._callContextMethod("star",e)}svg(...e){return this._callContextMethod("svg",e)}restore(...e){return this._callContextMethod("restore",e)}save(){return this._callContextMethod("save",[])}getTransform(){return this.context.getTransform()}resetTransform(){return this._callContextMethod("resetTransform",[])}rotateTransform(...e){return this._callContextMethod("rotate",e)}scaleTransform(...e){return this._callContextMethod("scale",e)}setTransform(...e){return this._callContextMethod("setTransform",e)}transform(...e){return this._callContextMethod("transform",e)}translateTransform(...e){return this._callContextMethod("translate",e)}clear(){return this._callContextMethod("clear",[])}get fillStyle(){return this._context.fillStyle}set fillStyle(e){this._context.fillStyle=e}get strokeStyle(){return this._context.strokeStyle}set strokeStyle(e){this._context.strokeStyle=e}clone(e=!1){return e?new r(this._context.clone()):(this._ownedContext=null,new r(this._context))}lineStyle(e,t,i){z($,"Graphics#lineStyle is no longer needed. Use Graphics#setStrokeStyle to set the stroke style.");let s={};return e&&(s.width=e),t&&(s.color=t),i&&(s.alpha=i),this.context.strokeStyle=s,this}beginFill(e,t){z($,"Graphics#beginFill is no longer needed. Use Graphics#fill to fill the shape with the desired style.");let i={};return e!==void 0&&(i.color=e),t!==void 0&&(i.alpha=t),this.context.fillStyle=i,this}endFill(){z($,"Graphics#endFill is no longer needed. Use Graphics#fill to fill the shape with the desired style."),this.context.fill();let e=this.context.strokeStyle;return(e.width!==_t.defaultStrokeStyle.width||e.color!==_t.defaultStrokeStyle.color||e.alpha!==_t.defaultStrokeStyle.alpha)&&this.context.stroke(),this}drawCircle(...e){return z($,"Graphics#drawCircle has been renamed to Graphics#circle"),this._callContextMethod("circle",e)}drawEllipse(...e){return z($,"Graphics#drawEllipse has been renamed to Graphics#ellipse"),this._callContextMethod("ellipse",e)}drawPolygon(...e){return z($,"Graphics#drawPolygon has been renamed to Graphics#poly"),this._callContextMethod("poly",e)}drawRect(...e){return z($,"Graphics#drawRect has been renamed to Graphics#rect"),this._callContextMethod("rect",e)}drawRoundedRect(...e){return z($,"Graphics#drawRoundedRect has been renamed to Graphics#roundRect"),this._callContextMethod("roundRect",e)}drawStar(...e){return z($,"Graphics#drawStar has been renamed to Graphics#star"),this._callContextMethod("star",e)}}});var y2,T2,w2=p(()=>{"use strict";y2={name:"local-uniform-msdf-bit",vertex:{header:`
369
369
  struct LocalUniforms {
370
370
  uColor:vec4<f32>,
371
371
  uTransformMatrix:mat3x3<f32>,
@@ -392,7 +392,7 @@ fn mainFragment(
392
392
  @group(2) @binding(0) var<uniform> localUniforms : LocalUniforms;
393
393
  `,main:`
394
394
  outColor = vec4<f32>(calculateMSDFAlpha(outColor, localUniforms.uColor, localUniforms.uDistance));
395
- `}},qT={name:"local-uniform-msdf-bit",vertex:{header:`
395
+ `}},T2={name:"local-uniform-msdf-bit",vertex:{header:`
396
396
  uniform mat3 uTransformMatrix;
397
397
  uniform vec4 uColor;
398
398
  uniform float uRound;
@@ -408,7 +408,7 @@ fn mainFragment(
408
408
  uniform float uDistance;
409
409
  `,main:`
410
410
  outColor = vec4(calculateMSDFAlpha(outColor, vColor, uDistance));
411
- `}}});var XT,YT,KT=p(()=>{"use strict";XT={name:"msdf-bit",fragment:{header:`
411
+ `}}});var S2,v2,C2=p(()=>{"use strict";S2={name:"msdf-bit",fragment:{header:`
412
412
  fn calculateMSDFAlpha(msdfColor:vec4<f32>, shapeColor:vec4<f32>, distance:f32) -> f32 {
413
413
 
414
414
  // MSDF
@@ -435,7 +435,7 @@ fn mainFragment(
435
435
  return coverage;
436
436
 
437
437
  }
438
- `}},YT={name:"msdf-bit",fragment:{header:`
438
+ `}},v2={name:"msdf-bit",fragment:{header:`
439
439
  float calculateMSDFAlpha(vec4 msdfColor, vec4 shapeColor, float distance) {
440
440
 
441
441
  // MSDF
@@ -462,16 +462,16 @@ fn mainFragment(
462
462
 
463
463
  return coverage;
464
464
  }
465
- `}}});var Nm,Lm,Cl,QT=p(()=>{te();Qr();Ro();Do();Zr();Zu();Ot();it();jT();KT();Cl=class extends ke{constructor(e){let t=new ce({uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uTransformMatrix:{value:new R,type:"mat3x3<f32>"},uDistance:{value:4,type:"f32"},uRound:{value:0,type:"f32"}});Nm??(Nm=Jt({name:"sdf-shader",bits:[Ls,Vs(e),$T,XT,tr]})),Lm??(Lm=er({name:"sdf-shader",bits:[zs,Hs(e),qT,YT,rr]})),super({glProgram:Lm,gpuProgram:Nm,resources:{localUniforms:t,batchSamplers:Ws(e)}})}}});var El,ZT=p(()=>{Ve();ye();El=class extends oe{constructor(){super(...arguments),this.chars=Object.create(null),this.lineHeight=0,this.fontFamily="",this.fontMetrics={fontSize:0,ascent:0,descent:0},this.baseLineOffset=0,this.distanceField={type:"none",range:0},this.pages=[],this.applyFillAsTint=!0,this.baseMeasurementFontSize=100,this.baseRenderedFontSize=100}get font(){return z($,"BitmapFont.font is deprecated, please use BitmapFont.fontFamily instead."),this.fontFamily}get pageTextures(){return z($,"BitmapFont.pageTextures is deprecated, please use BitmapFont.pages instead."),this.pages}get size(){return z($,"BitmapFont.size is deprecated, please use BitmapFont.fontMetrics.fontSize instead."),this.fontMetrics.fontSize}get distanceFieldRange(){return z($,"BitmapFont.distanceFieldRange is deprecated, please use BitmapFont.distanceField.range instead."),this.distanceField.range}get distanceFieldType(){return z($,"BitmapFont.distanceFieldType is deprecated, please use BitmapFont.distanceField.type instead."),this.distanceField.type}destroy(e=!1){this.emit("destroy",this),this.removeAllListeners();for(let t in this.chars)this.chars[t].texture?.destroy();this.chars=null,e&&(this.pages.forEach(t=>t.texture.destroy(!0)),this.pages=null)}}});var JT,zm,tw=p(()=>{He();Ge();rn();zu();le();Ui();ye();sn();Sl();Fm();tn();ZT();JT=class ew extends El{constructor(e){super(),this.resolution=1,this.pages=[],this._padding=0,this._measureCache=Object.create(null),this._currentChars=[],this._currentX=0,this._currentY=0,this._currentMaxCharHeight=0,this._currentPageIndex=-1,this._skipKerning=!1;let t={...ew.defaultOptions,...e};this._textureSize=t.textureSize,this._mipmap=t.mipmap;let i=t.style.clone();t.overrideFill&&(i._fill.color=16777215,i._fill.alpha=1,i._fill.texture=M.WHITE,i._fill.fill=null),this.applyFillAsTint=t.overrideFill;let s=i.fontSize;i.fontSize=this.baseMeasurementFontSize;let n=Zi(i);t.overrideSize?i._stroke&&(i._stroke.width*=this.baseRenderedFontSize/s):i.fontSize=this.baseRenderedFontSize=s,this._style=i,this._skipKerning=t.skipKerning??!1,this.resolution=t.resolution??1,this._padding=t.padding??4,t.textureStyle&&(this._textureStyle=t.textureStyle instanceof et?t.textureStyle:new et(t.textureStyle)),this.fontMetrics=Xe.measureFont(n),this.lineHeight=i.lineHeight||this.fontMetrics.fontSize||i.fontSize}ensureCharacters(e){let t=Xe.graphemeSegmenter(e).filter(g=>!this._currentChars.includes(g)).filter((g,_,y)=>y.indexOf(g)===_);if(!t.length)return;this._currentChars=[...this._currentChars,...t];let i;this._currentPageIndex===-1?i=this._nextPage():i=this.pages[this._currentPageIndex];let{canvas:s,context:n}=i.canvasAndContext,o=i.texture.source,a=this._style,c=this._currentX,u=this._currentY,l=this._currentMaxCharHeight,h=this.baseRenderedFontSize/this.baseMeasurementFontSize,f=this._padding*h,d=!1,m=s.width/this.resolution,x=s.height/this.resolution;for(let g=0;g<t.length;g++){let _=t[g],y=Xe.measureText(_,a,s,!1);y.lineHeight=y.height;let S=y.width*h,T=Math.ceil((a.fontStyle==="italic"?2:1)*S),C=y.height*h,v=T+f*2,E=C+f*2;if(d=!1,_!==`
466
- `&&_!=="\r"&&_!==" "&&_!==" "&&(d=!0,l=Math.ceil(Math.max(E,l))),c+v>m&&(u+=l,l=E,c=0,u+l>x)){o.update();let A=this._nextPage();s=A.canvasAndContext.canvas,n=A.canvasAndContext.context,o=A.texture.source,c=0,u=0,l=0}let D=S/h-(a.dropShadow?.distance??0)-(a._stroke?.width??0);if(this.chars[_]={id:_.codePointAt(0),xOffset:-this._padding,yOffset:-this._padding,xAdvance:D,kerning:{}},d){this._drawGlyph(n,y,c+f,u+f,h,a);let A=o.width*h,P=o.height*h,k=new Y(c/A*o.width,u/P*o.height,v/A*o.width,E/P*o.height);this.chars[_].texture=new M({source:o,frame:k}),c+=Math.ceil(v)}}o.update(),this._currentX=c,this._currentY=u,this._currentMaxCharHeight=l,this._skipKerning&&this._applyKerning(t,n)}get pageTextures(){return z($,"BitmapFont.pageTextures is deprecated, please use BitmapFont.pages instead."),this.pages}_applyKerning(e,t){let i=this._measureCache;for(let s=0;s<e.length;s++){let n=e[s];for(let o=0;o<this._currentChars.length;o++){let a=this._currentChars[o],c=i[n];c||(c=i[n]=t.measureText(n).width);let u=i[a];u||(u=i[a]=t.measureText(a).width);let l=t.measureText(n+a).width,h=l-(c+u);h&&(this.chars[n].kerning[a]=h),l=t.measureText(n+a).width,h=l-(c+u),h&&(this.chars[a].kerning[n]=h)}}}_nextPage(){this._currentPageIndex++;let e=this.resolution,t=yt.getOptimalCanvasAndContext(this._textureSize,this._textureSize,e);this._setupContext(t.context,this._style,e);let i=e*(this.baseRenderedFontSize/this.baseMeasurementFontSize),s=new M({source:new Qt({resource:t.canvas,resolution:i,alphaMode:"premultiply-alpha-on-upload",autoGenerateMipmaps:this._mipmap})});this._textureStyle&&(s.source.style=this._textureStyle);let n={canvasAndContext:t,texture:s};return this.pages[this._currentPageIndex]=n,n}_setupContext(e,t,i){t.fontSize=this.baseRenderedFontSize,e.scale(i,i),e.font=Zi(t),t.fontSize=this.baseMeasurementFontSize,e.textBaseline=t.textBaseline;let s=t._stroke,n=s?.width??0;if(s&&(e.lineWidth=n,e.lineJoin=s.join,e.miterLimit=s.miterLimit,e.strokeStyle=nn(s,e)),t._fill&&(e.fillStyle=nn(t._fill,e)),t.dropShadow){let o=t.dropShadow,a=q.shared.setValue(o.color).toArray(),c=o.blur*i,u=o.distance*i;e.shadowColor=`rgba(${a[0]*255},${a[1]*255},${a[2]*255},${o.alpha})`,e.shadowBlur=c,e.shadowOffsetX=Math.cos(o.angle)*u,e.shadowOffsetY=Math.sin(o.angle)*u}else e.shadowColor="black",e.shadowBlur=0,e.shadowOffsetX=0,e.shadowOffsetY=0}_drawGlyph(e,t,i,s,n,o){let a=t.text,c=t.fontProperties,l=(o._stroke?.width??0)*n,h=i+l/2,f=s-l/2,d=c.descent*n,m=t.lineHeight*n;o.stroke&&l&&e.strokeText(a,h,f+m-d),o._fill&&e.fillText(a,h,f+m-d)}destroy(){super.destroy();for(let e=0;e<this.pages.length;e++){let{canvasAndContext:t,texture:i}=this.pages[e];yt.returnCanvasAndContext(t),i.destroy(!0)}this.pages=null}};JT.defaultOptions={textureSize:512,style:new ht,mipmap:!0};zm=JT});function kl(r,e,t,i){let s={width:0,height:0,offsetY:0,scale:e.fontSize/t.baseMeasurementFontSize,lines:[{width:0,charPositions:[],spaceWidth:0,spacesIndex:[],chars:[]}]};s.offsetY=t.baseLineOffset;let n=s.lines[0],o=null,a=!0,c={spaceWord:!1,width:0,start:0,index:0,positions:[],chars:[]},u=m=>{let x=n.width;for(let g=0;g<c.index;g++){let _=m.positions[g];n.chars.push(m.chars[g]),n.charPositions.push(_+x)}n.width+=m.width,a=!1,c.width=0,c.index=0,c.chars.length=0},l=()=>{let m=n.chars.length-1;if(i){let x=n.chars[m];for(;x===" ";)n.width-=t.chars[x].xAdvance,x=n.chars[--m]}s.width=Math.max(s.width,n.width),n={width:0,charPositions:[],chars:[],spaceWidth:0,spacesIndex:[]},a=!0,s.lines.push(n),s.height+=t.lineHeight},h=t.baseMeasurementFontSize/e.fontSize,f=e.letterSpacing*h,d=e.wordWrapWidth*h;for(let m=0;m<r.length+1;m++){let x,g=m===r.length;g||(x=r[m]);let _=t.chars[x]||t.chars[" "];if(/(?:\s)/.test(x)||x==="\r"||x===`
465
+ `}}});var tm,rm,Vu,E2=p(()=>{ee();Xr();oo();ao();Yr();pu();Ut();rt();w2();C2();Vu=class extends Ee{constructor(e){let t=new ce({uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uTransformMatrix:{value:new R,type:"mat3x3<f32>"},uDistance:{value:4,type:"f32"},uRound:{value:0,type:"f32"}});tm??(tm=Yt({name:"sdf-shader",bits:[ys,ws(e),y2,S2,Qt]})),rm??(rm=Kt({name:"sdf-shader",bits:[Ts,Ss(e),T2,v2,Zt]})),super({glProgram:rm,gpuProgram:tm,resources:{localUniforms:t,batchSamplers:vs(e)}})}}});var Hu,k2=p(()=>{Ve();ye();Hu=class extends oe{constructor(){super(...arguments),this.chars=Object.create(null),this.lineHeight=0,this.fontFamily="",this.fontMetrics={fontSize:0,ascent:0,descent:0},this.baseLineOffset=0,this.distanceField={type:"none",range:0},this.pages=[],this.applyFillAsTint=!0,this.baseMeasurementFontSize=100,this.baseRenderedFontSize=100}get font(){return z($,"BitmapFont.font is deprecated, please use BitmapFont.fontFamily instead."),this.fontFamily}get pageTextures(){return z($,"BitmapFont.pageTextures is deprecated, please use BitmapFont.pages instead."),this.pages}get size(){return z($,"BitmapFont.size is deprecated, please use BitmapFont.fontMetrics.fontSize instead."),this.fontMetrics.fontSize}get distanceFieldRange(){return z($,"BitmapFont.distanceFieldRange is deprecated, please use BitmapFont.distanceField.range instead."),this.distanceField.range}get distanceFieldType(){return z($,"BitmapFont.distanceFieldType is deprecated, please use BitmapFont.distanceField.type instead."),this.distanceField.type}destroy(e=!1){this.emit("destroy",this),this.removeAllListeners();for(let t in this.chars)this.chars[t].texture?.destroy();this.chars=null,e&&(this.pages.forEach(t=>t.texture.destroy(!0)),this.pages=null)}}});var A2,im,B2=p(()=>{He();Ge();Us();su();le();bi();ye();Os();Lu();Qf();Fs();k2();A2=class P2 extends Hu{constructor(e){super(),this.resolution=1,this.pages=[],this._padding=0,this._measureCache=Object.create(null),this._currentChars=[],this._currentX=0,this._currentY=0,this._currentMaxCharHeight=0,this._currentPageIndex=-1,this._skipKerning=!1;let t={...P2.defaultOptions,...e};this._textureSize=t.textureSize,this._mipmap=t.mipmap;let i=t.style.clone();t.overrideFill&&(i._fill.color=16777215,i._fill.alpha=1,i._fill.texture=D.WHITE,i._fill.fill=null),this.applyFillAsTint=t.overrideFill;let s=i.fontSize;i.fontSize=this.baseMeasurementFontSize;let n=Fi(i);t.overrideSize?i._stroke&&(i._stroke.width*=this.baseRenderedFontSize/s):i.fontSize=this.baseRenderedFontSize=s,this._style=i,this._skipKerning=t.skipKerning??!1,this.resolution=t.resolution??1,this._padding=t.padding??4,t.textureStyle&&(this._textureStyle=t.textureStyle instanceof Je?t.textureStyle:new Je(t.textureStyle)),this.fontMetrics=Xe.measureFont(n),this.lineHeight=i.lineHeight||this.fontMetrics.fontSize||i.fontSize}ensureCharacters(e){let t=Xe.graphemeSegmenter(e).filter(g=>!this._currentChars.includes(g)).filter((g,_,y)=>y.indexOf(g)===_);if(!t.length)return;this._currentChars=[...this._currentChars,...t];let i;this._currentPageIndex===-1?i=this._nextPage():i=this.pages[this._currentPageIndex];let{canvas:s,context:n}=i.canvasAndContext,o=i.texture.source,a=this._style,c=this._currentX,u=this._currentY,l=this._currentMaxCharHeight,h=this.baseRenderedFontSize/this.baseMeasurementFontSize,f=this._padding*h,d=!1,m=s.width/this.resolution,x=s.height/this.resolution;for(let g=0;g<t.length;g++){let _=t[g],y=Xe.measureText(_,a,s,!1);y.lineHeight=y.height;let S=y.width*h,T=Math.ceil((a.fontStyle==="italic"?2:1)*S),C=y.height*h,v=T+f*2,E=C+f*2;if(d=!1,_!==`
466
+ `&&_!=="\r"&&_!==" "&&_!==" "&&(d=!0,l=Math.ceil(Math.max(E,l))),c+v>m&&(u+=l,l=E,c=0,u+l>x)){o.update();let A=this._nextPage();s=A.canvasAndContext.canvas,n=A.canvasAndContext.context,o=A.texture.source,c=0,u=0,l=0}let M=S/h-(a.dropShadow?.distance??0)-(a._stroke?.width??0);if(this.chars[_]={id:_.codePointAt(0),xOffset:-this._padding,yOffset:-this._padding,xAdvance:M,kerning:{}},d){this._drawGlyph(n,y,c+f,u+f,h,a);let A=o.width*h,B=o.height*h,k=new Y(c/A*o.width,u/B*o.height,v/A*o.width,E/B*o.height);this.chars[_].texture=new D({source:o,frame:k}),c+=Math.ceil(v)}}o.update(),this._currentX=c,this._currentY=u,this._currentMaxCharHeight=l,this._skipKerning&&this._applyKerning(t,n)}get pageTextures(){return z($,"BitmapFont.pageTextures is deprecated, please use BitmapFont.pages instead."),this.pages}_applyKerning(e,t){let i=this._measureCache;for(let s=0;s<e.length;s++){let n=e[s];for(let o=0;o<this._currentChars.length;o++){let a=this._currentChars[o],c=i[n];c||(c=i[n]=t.measureText(n).width);let u=i[a];u||(u=i[a]=t.measureText(a).width);let l=t.measureText(n+a).width,h=l-(c+u);h&&(this.chars[n].kerning[a]=h),l=t.measureText(n+a).width,h=l-(c+u),h&&(this.chars[a].kerning[n]=h)}}}_nextPage(){this._currentPageIndex++;let e=this.resolution,t=bt.getOptimalCanvasAndContext(this._textureSize,this._textureSize,e);this._setupContext(t.context,this._style,e);let i=e*(this.baseRenderedFontSize/this.baseMeasurementFontSize),s=new D({source:new jt({resource:t.canvas,resolution:i,alphaMode:"premultiply-alpha-on-upload",autoGenerateMipmaps:this._mipmap})});this._textureStyle&&(s.source.style=this._textureStyle);let n={canvasAndContext:t,texture:s};return this.pages[this._currentPageIndex]=n,n}_setupContext(e,t,i){t.fontSize=this.baseRenderedFontSize,e.scale(i,i),e.font=Fi(t),t.fontSize=this.baseMeasurementFontSize,e.textBaseline=t.textBaseline;let s=t._stroke,n=s?.width??0;if(s&&(e.lineWidth=n,e.lineJoin=s.join,e.miterLimit=s.miterLimit,e.strokeStyle=Gs(s,e)),t._fill&&(e.fillStyle=Gs(t._fill,e)),t.dropShadow){let o=t.dropShadow,a=q.shared.setValue(o.color).toArray(),c=o.blur*i,u=o.distance*i;e.shadowColor=`rgba(${a[0]*255},${a[1]*255},${a[2]*255},${o.alpha})`,e.shadowBlur=c,e.shadowOffsetX=Math.cos(o.angle)*u,e.shadowOffsetY=Math.sin(o.angle)*u}else e.shadowColor="black",e.shadowBlur=0,e.shadowOffsetX=0,e.shadowOffsetY=0}_drawGlyph(e,t,i,s,n,o){let a=t.text,c=t.fontProperties,l=(o._stroke?.width??0)*n,h=i+l/2,f=s-l/2,d=c.descent*n,m=t.lineHeight*n;o.stroke&&l&&e.strokeText(a,h,f+m-d),o._fill&&e.fillText(a,h,f+m-d)}destroy(){super.destroy();for(let e=0;e<this.pages.length;e++){let{canvasAndContext:t,texture:i}=this.pages[e];bt.returnCanvasAndContext(t),i.destroy(!0)}this.pages=null}};A2.defaultOptions={textureSize:512,style:new lt,mipmap:!0};im=A2});function Wu(r,e,t,i){let s={width:0,height:0,offsetY:0,scale:e.fontSize/t.baseMeasurementFontSize,lines:[{width:0,charPositions:[],spaceWidth:0,spacesIndex:[],chars:[]}]};s.offsetY=t.baseLineOffset;let n=s.lines[0],o=null,a=!0,c={spaceWord:!1,width:0,start:0,index:0,positions:[],chars:[]},u=m=>{let x=n.width;for(let g=0;g<c.index;g++){let _=m.positions[g];n.chars.push(m.chars[g]),n.charPositions.push(_+x)}n.width+=m.width,a=!1,c.width=0,c.index=0,c.chars.length=0},l=()=>{let m=n.chars.length-1;if(i){let x=n.chars[m];for(;x===" ";)n.width-=t.chars[x].xAdvance,x=n.chars[--m]}s.width=Math.max(s.width,n.width),n={width:0,charPositions:[],chars:[],spaceWidth:0,spacesIndex:[]},a=!0,s.lines.push(n),s.height+=t.lineHeight},h=t.baseMeasurementFontSize/e.fontSize,f=e.letterSpacing*h,d=e.wordWrapWidth*h;for(let m=0;m<r.length+1;m++){let x,g=m===r.length;g||(x=r[m]);let _=t.chars[x]||t.chars[" "];if(/(?:\s)/.test(x)||x==="\r"||x===`
467
467
  `||g){if(!a&&e.wordWrap&&n.width+c.width-f>d?(l(),u(c),g||n.charPositions.push(0)):(c.start=n.width,u(c),g||n.charPositions.push(0)),x==="\r"||x===`
468
- `)n.width!==0&&l();else if(!g){let C=_.xAdvance+(_.kerning[o]||0)+f;n.width+=C,n.spaceWidth=C,n.spacesIndex.push(n.charPositions.length),n.chars.push(x)}}else{let T=_.kerning[o]||0,C=_.xAdvance+T+f;c.positions[c.index++]=c.width+T,c.chars.push(x),c.width+=C}o=x}return l(),e.align==="center"?qB(s):e.align==="right"?jB(s):e.align==="justify"&&XB(s),s}function qB(r){for(let e=0;e<r.lines.length;e++){let t=r.lines[e],i=r.width/2-t.width/2;for(let s=0;s<t.charPositions.length;s++)t.charPositions[s]+=i}}function jB(r){for(let e=0;e<r.lines.length;e++){let t=r.lines[e],i=r.width-t.width;for(let s=0;s<t.charPositions.length;s++)t.charPositions[s]+=i}}function XB(r){let e=r.width;for(let t=0;t<r.lines.length;t++){let i=r.lines[t],s=0,n=i.spacesIndex[s++],o=0,a=i.spacesIndex.length,u=(e-i.width)/a;for(let l=0;l<i.charPositions.length;l++)l===n&&(n=i.spacesIndex[s++],o+=u),i.charPositions[l]+=o}}var Vm=p(()=>{"use strict"});function rw(r){if(r==="")return[];typeof r=="string"&&(r=[r]);let e=[];for(let t=0,i=r.length;t<i;t++){let s=r[t];if(Array.isArray(s)){if(s.length!==2)throw new Error(`[BitmapFont]: Invalid character range length, expecting 2 got ${s.length}.`);if(s[0].length===0||s[1].length===0)throw new Error("[BitmapFont]: Invalid character delimiter.");let n=s[0].charCodeAt(0),o=s[1].charCodeAt(0);if(o<n)throw new Error("[BitmapFont]: Invalid character range.");for(let a=n,c=o;a<=c;a++)e.push(String.fromCharCode(a))}else e.push(...Array.from(s))}if(e.length===0)throw new Error("[BitmapFont]: Empty set when resolving characters.");return e}var iw=p(()=>{"use strict"});var Al,Hm,sw,nw=p(()=>{Eo();ye();pe();sn();tn();tw();Vm();iw();Al=0,Hm=class{constructor(){this.ALPHA=[["a","z"],["A","Z"]," "],this.NUMERIC=[["0","9"]],this.ALPHANUMERIC=[["a","z"],["A","Z"],["0","9"]," "],this.ASCII=[[" ","~"]],this.defaultOptions={chars:this.ALPHANUMERIC,resolution:1,padding:4,skipKerning:!1,textureStyle:null}}getFont(e,t){let i=`${t.fontFamily}-bitmap`,s=!0;if(t._fill.fill&&!t._stroke)i+=t._fill.fill.styleKey,s=!1;else if(t._stroke||t.dropShadow){let o=t.styleKey;o=o.substring(0,o.lastIndexOf("-")),i=`${o}-bitmap`,s=!1}if(!Me.has(i)){let o=new zm({style:t,overrideFill:s,overrideSize:!0,...this.defaultOptions});Al++,Al>50&&N("BitmapText",`You have dynamically created ${Al} bitmap fonts, this can be inefficient. Try pre installing your font styles using \`BitmapFont.install({name:"style1", style})\``),o.once("destroy",()=>{Al--,Me.remove(i)}),Me.set(i,o)}let n=Me.get(i);return n.ensureCharacters?.(e),n}getLayout(e,t,i=!0){let s=this.getFont(e,t),n=Xe.graphemeSegmenter(e);return kl(n,t,s,i)}measureText(e,t,i=!0){return this.getLayout(e,t,i)}install(...e){let t=e[0];typeof t=="string"&&(t={name:t,style:e[1],chars:e[2]?.chars,resolution:e[2]?.resolution,padding:e[2]?.padding,skipKerning:e[2]?.skipKerning},z($,"BitmapFontManager.install(name, style, options) is deprecated, use BitmapFontManager.install({name, style, ...options})"));let i=t?.name;if(!i)throw new Error("[BitmapFontManager] Property `name` is required.");t={...this.defaultOptions,...t};let s=t.style,n=s instanceof ht?s:new ht(s),o=n._fill.fill!==null&&n._fill.fill!==void 0,a=new zm({style:n,overrideFill:o,skipKerning:t.skipKerning,padding:t.padding,resolution:t.resolution,overrideSize:!1,textureStyle:t.textureStyle}),c=rw(t.chars);return a.ensureCharacters(c.join("")),Me.set(`${i}-bitmap`,a),a.once("destroy",()=>Me.remove(`${i}-bitmap`)),a}uninstall(e){let t=`${e}-bitmap`,i=Me.get(t);i&&i.destroy()}},sw=new Hm});function ow(r,e){e.groupTransform=r.groupTransform,e.groupColorAlpha=r.groupColorAlpha,e.groupColor=r.groupColor,e.groupBlendMode=r.groupBlendMode,e.globalDisplayStatus=r.globalDisplayStatus,e.groupTransform=r.groupTransform,e.localDisplayStatus=r.localDisplayStatus,e.groupAlpha=r.groupAlpha,e._roundPixels=r._roundPixels}var Wm,Xo,aw=p(()=>{Eo();B();WT();sn();QT();nw();Vm();Wm=class extends vl{destroy(){this.context.customShader&&this.context.customShader.destroy(),super.destroy()}},Xo=class{constructor(e){this._renderer=e,this._renderer.renderableGC.addManagedHash(this,"_gpuBitmapText")}validateRenderable(e){let t=this._getGpuBitmapText(e);return e._didTextUpdate&&(e._didTextUpdate=!1,this._updateContext(e,t)),this._renderer.renderPipes.graphics.validateRenderable(t)}addRenderable(e,t){let i=this._getGpuBitmapText(e);ow(e,i),e._didTextUpdate&&(e._didTextUpdate=!1,this._updateContext(e,i)),this._renderer.renderPipes.graphics.addRenderable(i,t),i.context.customShader&&this._updateDistanceField(e)}updateRenderable(e){let t=this._getGpuBitmapText(e);ow(e,t),this._renderer.renderPipes.graphics.updateRenderable(t),t.context.customShader&&this._updateDistanceField(e)}_updateContext(e,t){let{context:i}=t,s=sw.getFont(e.text,e._style);i.clear(),s.distanceField.type!=="none"&&(i.customShader||(i.customShader=new Cl(this._renderer.limits.maxBatchableTextures)));let n=Xe.graphemeSegmenter(e.text),o=e._style,a=s.baseLineOffset,c=kl(n,o,s,!0),u=0,l=o.padding,h=c.scale,f=c.width,d=c.height+c.offsetY;o._stroke&&(f+=o._stroke.width/h,d+=o._stroke.width/h),i.translate(-e._anchor._x*f-l,-e._anchor._y*d-l).scale(h,h);let m=s.applyFillAsTint?o._fill.color:16777215;for(let x=0;x<c.lines.length;x++){let g=c.lines[x];for(let _=0;_<g.charPositions.length;_++){let y=n[u++],S=s.chars[y];S?.texture&&i.texture(S.texture,m||"black",Math.round(g.charPositions[_]+S.xOffset),Math.round(a+S.yOffset))}a+=s.lineHeight}}_getGpuBitmapText(e){return e._gpuData[this._renderer.uid]||this.initGpuText(e)}initGpuText(e){let t=new Wm;return e._gpuData[this._renderer.uid]=t,this._updateContext(e,t),t}_updateDistanceField(e){let t=this._getGpuBitmapText(e).context,i=e._style.fontFamily,s=Me.get(`${i}-bitmap`),{a:n,b:o,c:a,d:c}=e.groupTransform,u=Math.sqrt(n*n+o*o),l=Math.sqrt(a*a+c*c),h=(Math.abs(u)+Math.abs(l))/2,f=s.baseRenderedFontSize/e._style.fontSize,d=h*s.distanceField.range*(1/f);t.customShader.resources.localUniforms.uniforms.uDistance=d}destroy(){this._renderer=null}};Xo.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"bitmapText"}});var $m=p(()=>{B();aw();O.add(Xo)});var Pl,cw=p(()=>{Ho();Pl=class extends nr{constructor(e){super(),this.generatingTexture=!1,this._renderer=e,e.runners.resolutionChange.add(this)}resolutionChange(){let e=this.renderable;e._autoResolution&&e.onViewUpdate()}destroy(){this._renderer.htmlText.returnTexturePromise(this.texturePromise),this.texturePromise=null,this._renderer=null}}});var Yo,uw=p(()=>{B();le();pm();cw();Yo=class{constructor(e){this._renderer=e}validateRenderable(e){return e._didTextUpdate}addRenderable(e,t){let i=this._getGpuText(e);e._didTextUpdate&&(this._updateGpuText(e).catch(s=>{console.error(s)}),e._didTextUpdate=!1,Vo(i,e)),this._renderer.renderPipes.batch.addToBatch(i,t)}updateRenderable(e){let t=this._getGpuText(e);t._batcher.updateElement(t)}async _updateGpuText(e){e._didTextUpdate=!1;let t=this._getGpuText(e);if(t.generatingTexture)return;t.texturePromise&&(this._renderer.htmlText.returnTexturePromise(t.texturePromise),t.texturePromise=null),t.generatingTexture=!0,e._resolution=e._autoResolution?this._renderer.resolution:e.resolution;let i=this._renderer.htmlText.getTexturePromise(e);t.texturePromise=i,t.texture=await i;let s=e.renderGroup||e.parentRenderGroup;s&&(s.structureDidChange=!0),t.generatingTexture=!1,Vo(t,e)}_getGpuText(e){return e._gpuData[this._renderer.uid]||this.initGpuText(e)}initGpuText(e){let t=new Pl(this._renderer);return t.renderable=e,t.transform=e.groupTransform,t.texture=M.EMPTY,t.bounds={minX:0,maxX:1,minY:0,maxY:0},t.roundPixels=this._renderer._roundPixels|e._roundPixels,e._resolution=e._autoResolution?this._renderer.resolution:e.resolution,e._gpuData[this._renderer.uid]=t,t}destroy(){this._renderer=null}};Yo.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"htmlText"}});function lw(){let{userAgent:r}=W.get().getNavigator();return/^((?!chrome|android).)*safari/i.test(r)}var hw=p(()=>{Ce()});var dw,fw,on,qm=p(()=>{"use strict";dw="http://www.w3.org/2000/svg",fw="http://www.w3.org/1999/xhtml",on=class{constructor(){this.svgRoot=document.createElementNS(dw,"svg"),this.foreignObject=document.createElementNS(dw,"foreignObject"),this.domElement=document.createElementNS(fw,"div"),this.styleElement=document.createElementNS(fw,"style"),this.image=new Image;let{foreignObject:e,svgRoot:t,styleElement:i,domElement:s}=this;e.setAttribute("width","10000"),e.setAttribute("height","10000"),e.style.overflow="hidden",t.appendChild(e),e.appendChild(i),e.appendChild(s)}}});function gw(r){let e=r._stroke,t=r._fill,s=[`div { ${[`color: ${q.shared.setValue(t.color).toHex()}`,`font-size: ${r.fontSize}px`,`font-family: ${r.fontFamily}`,`font-weight: ${r.fontWeight}`,`font-style: ${r.fontStyle}`,`font-variant: ${r.fontVariant}`,`letter-spacing: ${r.letterSpacing}px`,`text-align: ${r.align}`,`padding: ${r.padding}px`,`white-space: ${r.whiteSpace==="pre"&&r.wordWrap?"pre-wrap":r.whiteSpace}`,...r.lineHeight?[`line-height: ${r.lineHeight}px`]:[],...r.wordWrap?[`word-wrap: ${r.breakWords?"break-all":"break-word"}`,`max-width: ${r.wordWrapWidth}px`]:[],...e?[_w(e)]:[],...r.dropShadow?[xw(r.dropShadow)]:[],...r.cssOverrides].join(";")} }`];return YB(r.tagStyles,s),s.join(" ")}function xw(r){let e=q.shared.setValue(r.color).setAlpha(r.alpha).toHexa(),t=Math.round(Math.cos(r.angle)*r.distance),i=Math.round(Math.sin(r.angle)*r.distance),s=`${t}px ${i}px`;return r.blur>0?`text-shadow: ${s} ${r.blur}px ${e}`:`text-shadow: ${s} ${e}`}function _w(r){return[`-webkit-text-stroke-width: ${r.width}px`,`-webkit-text-stroke-color: ${q.shared.setValue(r.color).toHex()}`,`text-stroke-width: ${r.width}px`,`text-stroke-color: ${q.shared.setValue(r.color).toHex()}`,"paint-order: stroke"].join(";")}function YB(r,e){for(let t in r){let i=r[t],s=[];for(let n in i)pw[n]?s.push(pw[n](i[n])):mw[n]&&s.push(mw[n].replace("{{VALUE}}",i[n]));e.push(`${t} { ${s.join(";")} }`)}}var mw,pw,bw=p(()=>{He();mw={fontSize:"font-size: {{VALUE}}px",fontFamily:"font-family: {{VALUE}}",fontWeight:"font-weight: {{VALUE}}",fontStyle:"font-style: {{VALUE}}",fontVariant:"font-variant: {{VALUE}}",letterSpacing:"letter-spacing: {{VALUE}}px",align:"text-align: {{VALUE}}",padding:"padding: {{VALUE}}px",whiteSpace:"white-space: {{VALUE}}",lineHeight:"line-height: {{VALUE}}px",wordWrapWidth:"max-width: {{VALUE}}px"},pw={fill:r=>`color: ${q.shared.setValue(r).toHex()}`,breakWords:r=>`word-wrap: ${r?"break-all":"break-word"}`,stroke:_w,dropShadow:xw}});var Bl,yw=p(()=>{pe();tn();bw();Bl=class r extends ht{constructor(e={}){super(e),this._cssOverrides=[],this.cssOverrides=e.cssOverrides??[],this.tagStyles=e.tagStyles??{}}set cssOverrides(e){this._cssOverrides=e instanceof Array?e:[e],this.update()}get cssOverrides(){return this._cssOverrides}update(){this._cssStyle=null,super.update()}clone(){return new r({align:this.align,breakWords:this.breakWords,dropShadow:this.dropShadow?{...this.dropShadow}:null,fill:this._fill,fontFamily:this.fontFamily,fontSize:this.fontSize,fontStyle:this.fontStyle,fontVariant:this.fontVariant,fontWeight:this.fontWeight,letterSpacing:this.letterSpacing,lineHeight:this.lineHeight,padding:this.padding,stroke:this._stroke,whiteSpace:this.whiteSpace,wordWrap:this.wordWrap,wordWrapWidth:this.wordWrapWidth,cssOverrides:this.cssOverrides,tagStyles:{...this.tagStyles}})}get cssStyle(){return this._cssStyle||(this._cssStyle=gw(this)),this._cssStyle}addOverride(...e){let t=e.filter(i=>!this.cssOverrides.includes(i));t.length>0&&(this.cssOverrides.push(...t),this.update())}removeOverride(...e){let t=e.filter(i=>this.cssOverrides.includes(i));t.length>0&&(this.cssOverrides=this.cssOverrides.filter(i=>!t.includes(i)),this.update())}set fill(e){typeof e!="string"&&typeof e!="number"&&N("[HTMLTextStyle] only color fill is not supported by HTMLText"),super.fill=e}set stroke(e){e&&typeof e!="string"&&typeof e!="number"&&N("[HTMLTextStyle] only color stroke is not supported by HTMLText"),super.stroke=e}}});function Tw(r,e){let t=e.fontFamily,i=[],s={},n=/font-family:([^;"\s]+)/g,o=r.match(n);function a(c){s[c]||(i.push(c),s[c]=!0)}if(Array.isArray(t))for(let c=0;c<t.length;c++)a(t[c]);else a(t);o&&o.forEach(c=>{let u=c.split(":")[1].trim();a(u)});for(let c in e.tagStyles){let u=e.tagStyles[c].fontFamily;a(u)}return i}var ww=p(()=>{"use strict"});async function Sw(r){let t=await(await W.get().fetch(r)).blob(),i=new FileReader;return await new Promise((n,o)=>{i.onloadend=()=>n(i.result),i.onerror=o,i.readAsDataURL(t)})}var vw=p(()=>{Ce()});async function jm(r,e){let t=await Sw(e);return`@font-face {
468
+ `)n.width!==0&&l();else if(!g){let C=_.xAdvance+(_.kerning[o]||0)+f;n.width+=C,n.spaceWidth=C,n.spacesIndex.push(n.charPositions.length),n.chars.push(x)}}else{let T=_.kerning[o]||0,C=_.xAdvance+T+f;c.positions[c.index++]=c.width+T,c.chars.push(x),c.width+=C}o=x}return l(),e.align==="center"?xP(s):e.align==="right"?_P(s):e.align==="justify"&&bP(s),s}function xP(r){for(let e=0;e<r.lines.length;e++){let t=r.lines[e],i=r.width/2-t.width/2;for(let s=0;s<t.charPositions.length;s++)t.charPositions[s]+=i}}function _P(r){for(let e=0;e<r.lines.length;e++){let t=r.lines[e],i=r.width-t.width;for(let s=0;s<t.charPositions.length;s++)t.charPositions[s]+=i}}function bP(r){let e=r.width;for(let t=0;t<r.lines.length;t++){let i=r.lines[t],s=0,n=i.spacesIndex[s++],o=0,a=i.spacesIndex.length,u=(e-i.width)/a;for(let l=0;l<i.charPositions.length;l++)l===n&&(n=i.spacesIndex[s++],o+=u),i.charPositions[l]+=o}}var sm=p(()=>{"use strict"});function R2(r){if(r==="")return[];typeof r=="string"&&(r=[r]);let e=[];for(let t=0,i=r.length;t<i;t++){let s=r[t];if(Array.isArray(s)){if(s.length!==2)throw new Error(`[BitmapFont]: Invalid character range length, expecting 2 got ${s.length}.`);if(s[0].length===0||s[1].length===0)throw new Error("[BitmapFont]: Invalid character delimiter.");let n=s[0].charCodeAt(0),o=s[1].charCodeAt(0);if(o<n)throw new Error("[BitmapFont]: Invalid character range.");for(let a=n,c=o;a<=c;a++)e.push(String.fromCharCode(a))}else e.push(...Array.from(s))}if(e.length===0)throw new Error("[BitmapFont]: Empty set when resolving characters.");return e}var D2=p(()=>{"use strict"});var $u,nm,M2,I2=p(()=>{to();ye();ge();Os();Fs();B2();sm();D2();$u=0,nm=class{constructor(){this.ALPHA=[["a","z"],["A","Z"]," "],this.NUMERIC=[["0","9"]],this.ALPHANUMERIC=[["a","z"],["A","Z"],["0","9"]," "],this.ASCII=[[" ","~"]],this.defaultOptions={chars:this.ALPHANUMERIC,resolution:1,padding:4,skipKerning:!1,textureStyle:null}}getFont(e,t){let i=`${t.fontFamily}-bitmap`,s=!0;if(t._fill.fill&&!t._stroke)i+=t._fill.fill.styleKey,s=!1;else if(t._stroke||t.dropShadow){let o=t.styleKey;o=o.substring(0,o.lastIndexOf("-")),i=`${o}-bitmap`,s=!1}if(!De.has(i)){let o=new im({style:t,overrideFill:s,overrideSize:!0,...this.defaultOptions});$u++,$u>50&&G("BitmapText",`You have dynamically created ${$u} bitmap fonts, this can be inefficient. Try pre installing your font styles using \`BitmapFont.install({name:"style1", style})\``),o.once("destroy",()=>{$u--,De.remove(i)}),De.set(i,o)}let n=De.get(i);return n.ensureCharacters?.(e),n}getLayout(e,t,i=!0){let s=this.getFont(e,t),n=Xe.graphemeSegmenter(e);return Wu(n,t,s,i)}measureText(e,t,i=!0){return this.getLayout(e,t,i)}install(...e){let t=e[0];typeof t=="string"&&(t={name:t,style:e[1],chars:e[2]?.chars,resolution:e[2]?.resolution,padding:e[2]?.padding,skipKerning:e[2]?.skipKerning},z($,"BitmapFontManager.install(name, style, options) is deprecated, use BitmapFontManager.install({name, style, ...options})"));let i=t?.name;if(!i)throw new Error("[BitmapFontManager] Property `name` is required.");t={...this.defaultOptions,...t};let s=t.style,n=s instanceof lt?s:new lt(s),o=n._fill.fill!==null&&n._fill.fill!==void 0,a=new im({style:n,overrideFill:o,skipKerning:t.skipKerning,padding:t.padding,resolution:t.resolution,overrideSize:!1,textureStyle:t.textureStyle}),c=R2(t.chars);return a.ensureCharacters(c.join("")),De.set(`${i}-bitmap`,a),a.once("destroy",()=>De.remove(`${i}-bitmap`)),a}uninstall(e){let t=`${e}-bitmap`,i=De.get(t);i&&i.destroy()}},M2=new nm});function F2(r,e){e.groupTransform=r.groupTransform,e.groupColorAlpha=r.groupColorAlpha,e.groupColor=r.groupColor,e.groupBlendMode=r.groupBlendMode,e.globalDisplayStatus=r.globalDisplayStatus,e.groupTransform=r.groupTransform,e.localDisplayStatus=r.localDisplayStatus,e.groupAlpha=r.groupAlpha,e._roundPixels=r._roundPixels}var om,vo,U2=p(()=>{to();P();b2();Os();E2();I2();sm();om=class extends zu{destroy(){this.context.customShader&&this.context.customShader.destroy(),super.destroy()}},vo=class{constructor(e){this._renderer=e,this._renderer.renderableGC.addManagedHash(this,"_gpuBitmapText")}validateRenderable(e){let t=this._getGpuBitmapText(e);return e._didTextUpdate&&(e._didTextUpdate=!1,this._updateContext(e,t)),this._renderer.renderPipes.graphics.validateRenderable(t)}addRenderable(e,t){let i=this._getGpuBitmapText(e);F2(e,i),e._didTextUpdate&&(e._didTextUpdate=!1,this._updateContext(e,i)),this._renderer.renderPipes.graphics.addRenderable(i,t),i.context.customShader&&this._updateDistanceField(e)}updateRenderable(e){let t=this._getGpuBitmapText(e);F2(e,t),this._renderer.renderPipes.graphics.updateRenderable(t),t.context.customShader&&this._updateDistanceField(e)}_updateContext(e,t){let{context:i}=t,s=M2.getFont(e.text,e._style);i.clear(),s.distanceField.type!=="none"&&(i.customShader||(i.customShader=new Vu(this._renderer.limits.maxBatchableTextures)));let n=Xe.graphemeSegmenter(e.text),o=e._style,a=s.baseLineOffset,c=Wu(n,o,s,!0),u=0,l=o.padding,h=c.scale,f=c.width,d=c.height+c.offsetY;o._stroke&&(f+=o._stroke.width/h,d+=o._stroke.width/h),i.translate(-e._anchor._x*f-l,-e._anchor._y*d-l).scale(h,h);let m=s.applyFillAsTint?o._fill.color:16777215;for(let x=0;x<c.lines.length;x++){let g=c.lines[x];for(let _=0;_<g.charPositions.length;_++){let y=n[u++],S=s.chars[y];S?.texture&&i.texture(S.texture,m||"black",Math.round(g.charPositions[_]+S.xOffset),Math.round(a+S.yOffset))}a+=s.lineHeight}}_getGpuBitmapText(e){return e._gpuData[this._renderer.uid]||this.initGpuText(e)}initGpuText(e){let t=new om;return e._gpuData[this._renderer.uid]=t,this._updateContext(e,t),t}_updateDistanceField(e){let t=this._getGpuBitmapText(e).context,i=e._style.fontFamily,s=De.get(`${i}-bitmap`),{a:n,b:o,c:a,d:c}=e.groupTransform,u=Math.sqrt(n*n+o*o),l=Math.sqrt(a*a+c*c),h=(Math.abs(u)+Math.abs(l))/2,f=s.baseRenderedFontSize/e._style.fontSize,d=h*s.distanceField.range*(1/f);t.customShader.resources.localUniforms.uniforms.uDistance=d}destroy(){this._renderer=null}};vo.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"bitmapText"}});var am=p(()=>{P();U2();O.add(vo)});var qu,O2=p(()=>{bo();qu=class extends tr{constructor(e){super(),this.generatingTexture=!1,this._renderer=e,e.runners.resolutionChange.add(this)}resolutionChange(){let e=this.renderable;e._autoResolution&&e.onViewUpdate()}destroy(){this._renderer.htmlText.returnTexturePromise(this.texturePromise),this.texturePromise=null,this._renderer=null}}});var Co,G2=p(()=>{P();le();Rf();O2();Co=class{constructor(e){this._renderer=e}validateRenderable(e){return e._didTextUpdate}addRenderable(e,t){let i=this._getGpuText(e);e._didTextUpdate&&(this._updateGpuText(e).catch(s=>{console.error(s)}),e._didTextUpdate=!1,_o(i,e)),this._renderer.renderPipes.batch.addToBatch(i,t)}updateRenderable(e){let t=this._getGpuText(e);t._batcher.updateElement(t)}async _updateGpuText(e){e._didTextUpdate=!1;let t=this._getGpuText(e);if(t.generatingTexture)return;t.texturePromise&&(this._renderer.htmlText.returnTexturePromise(t.texturePromise),t.texturePromise=null),t.generatingTexture=!0,e._resolution=e._autoResolution?this._renderer.resolution:e.resolution;let i=this._renderer.htmlText.getTexturePromise(e);t.texturePromise=i,t.texture=await i;let s=e.renderGroup||e.parentRenderGroup;s&&(s.structureDidChange=!0),t.generatingTexture=!1,_o(t,e)}_getGpuText(e){return e._gpuData[this._renderer.uid]||this.initGpuText(e)}initGpuText(e){let t=new qu(this._renderer);return t.renderable=e,t.transform=e.groupTransform,t.texture=D.EMPTY,t.bounds={minX:0,maxX:1,minY:0,maxY:0},t.roundPixels=this._renderer._roundPixels|e._roundPixels,e._resolution=e._autoResolution?this._renderer.resolution:e.resolution,e._gpuData[this._renderer.uid]=t,t}destroy(){this._renderer=null}};Co.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"htmlText"}});function N2(){let{userAgent:r}=W.get().getNavigator();return/^((?!chrome|android).)*safari/i.test(r)}var L2=p(()=>{ve()});var z2,V2,Ns,cm=p(()=>{"use strict";z2="http://www.w3.org/2000/svg",V2="http://www.w3.org/1999/xhtml",Ns=class{constructor(){this.svgRoot=document.createElementNS(z2,"svg"),this.foreignObject=document.createElementNS(z2,"foreignObject"),this.domElement=document.createElementNS(V2,"div"),this.styleElement=document.createElementNS(V2,"style"),this.image=new Image;let{foreignObject:e,svgRoot:t,styleElement:i,domElement:s}=this;e.setAttribute("width","10000"),e.setAttribute("height","10000"),e.style.overflow="hidden",t.appendChild(e),e.appendChild(i),e.appendChild(s)}}});function $2(r){let e=r._stroke,t=r._fill,s=[`div { ${[`color: ${q.shared.setValue(t.color).toHex()}`,`font-size: ${r.fontSize}px`,`font-family: ${r.fontFamily}`,`font-weight: ${r.fontWeight}`,`font-style: ${r.fontStyle}`,`font-variant: ${r.fontVariant}`,`letter-spacing: ${r.letterSpacing}px`,`text-align: ${r.align}`,`padding: ${r.padding}px`,`white-space: ${r.whiteSpace==="pre"&&r.wordWrap?"pre-wrap":r.whiteSpace}`,...r.lineHeight?[`line-height: ${r.lineHeight}px`]:[],...r.wordWrap?[`word-wrap: ${r.breakWords?"break-all":"break-word"}`,`max-width: ${r.wordWrapWidth}px`]:[],...e?[j2(e)]:[],...r.dropShadow?[q2(r.dropShadow)]:[],...r.cssOverrides].join(";")} }`];return yP(r.tagStyles,s),s.join(" ")}function q2(r){let e=q.shared.setValue(r.color).setAlpha(r.alpha).toHexa(),t=Math.round(Math.cos(r.angle)*r.distance),i=Math.round(Math.sin(r.angle)*r.distance),s=`${t}px ${i}px`;return r.blur>0?`text-shadow: ${s} ${r.blur}px ${e}`:`text-shadow: ${s} ${e}`}function j2(r){return[`-webkit-text-stroke-width: ${r.width}px`,`-webkit-text-stroke-color: ${q.shared.setValue(r.color).toHex()}`,`text-stroke-width: ${r.width}px`,`text-stroke-color: ${q.shared.setValue(r.color).toHex()}`,"paint-order: stroke"].join(";")}function yP(r,e){for(let t in r){let i=r[t],s=[];for(let n in i)W2[n]?s.push(W2[n](i[n])):H2[n]&&s.push(H2[n].replace("{{VALUE}}",i[n]));e.push(`${t} { ${s.join(";")} }`)}}var H2,W2,X2=p(()=>{He();H2={fontSize:"font-size: {{VALUE}}px",fontFamily:"font-family: {{VALUE}}",fontWeight:"font-weight: {{VALUE}}",fontStyle:"font-style: {{VALUE}}",fontVariant:"font-variant: {{VALUE}}",letterSpacing:"letter-spacing: {{VALUE}}px",align:"text-align: {{VALUE}}",padding:"padding: {{VALUE}}px",whiteSpace:"white-space: {{VALUE}}",lineHeight:"line-height: {{VALUE}}px",wordWrapWidth:"max-width: {{VALUE}}px"},W2={fill:r=>`color: ${q.shared.setValue(r).toHex()}`,breakWords:r=>`word-wrap: ${r?"break-all":"break-word"}`,stroke:j2,dropShadow:q2}});var ju,Y2=p(()=>{ge();Fs();X2();ju=class r extends lt{constructor(e={}){super(e),this._cssOverrides=[],this.cssOverrides=e.cssOverrides??[],this.tagStyles=e.tagStyles??{}}set cssOverrides(e){this._cssOverrides=e instanceof Array?e:[e],this.update()}get cssOverrides(){return this._cssOverrides}update(){this._cssStyle=null,super.update()}clone(){return new r({align:this.align,breakWords:this.breakWords,dropShadow:this.dropShadow?{...this.dropShadow}:null,fill:this._fill,fontFamily:this.fontFamily,fontSize:this.fontSize,fontStyle:this.fontStyle,fontVariant:this.fontVariant,fontWeight:this.fontWeight,letterSpacing:this.letterSpacing,lineHeight:this.lineHeight,padding:this.padding,stroke:this._stroke,whiteSpace:this.whiteSpace,wordWrap:this.wordWrap,wordWrapWidth:this.wordWrapWidth,cssOverrides:this.cssOverrides,tagStyles:{...this.tagStyles}})}get cssStyle(){return this._cssStyle||(this._cssStyle=$2(this)),this._cssStyle}addOverride(...e){let t=e.filter(i=>!this.cssOverrides.includes(i));t.length>0&&(this.cssOverrides.push(...t),this.update())}removeOverride(...e){let t=e.filter(i=>this.cssOverrides.includes(i));t.length>0&&(this.cssOverrides=this.cssOverrides.filter(i=>!t.includes(i)),this.update())}set fill(e){typeof e!="string"&&typeof e!="number"&&G("[HTMLTextStyle] only color fill is not supported by HTMLText"),super.fill=e}set stroke(e){e&&typeof e!="string"&&typeof e!="number"&&G("[HTMLTextStyle] only color stroke is not supported by HTMLText"),super.stroke=e}}});function K2(r,e){let t=e.fontFamily,i=[],s={},n=/font-family:([^;"\s]+)/g,o=r.match(n);function a(c){s[c]||(i.push(c),s[c]=!0)}if(Array.isArray(t))for(let c=0;c<t.length;c++)a(t[c]);else a(t);o&&o.forEach(c=>{let u=c.split(":")[1].trim();a(u)});for(let c in e.tagStyles){let u=e.tagStyles[c].fontFamily;a(u)}return i}var Q2=p(()=>{"use strict"});async function Z2(r){let t=await(await W.get().fetch(r)).blob(),i=new FileReader;return await new Promise((n,o)=>{i.onloadend=()=>n(i.result),i.onerror=o,i.readAsDataURL(t)})}var J2=p(()=>{ve()});async function um(r,e){let t=await Z2(e);return`@font-face {
469
469
  font-family: "${r.fontFamily}";
470
470
  src: url('${t}');
471
471
  font-weight: ${r.fontWeight};
472
472
  font-style: ${r.fontStyle};
473
- }`}var Cw=p(()=>{vw()});async function Ew(r,e,t){let i=r.filter(s=>Me.has(`${s}-and-url`)).map((s,n)=>{if(!Rl.has(s)){let{url:o}=Me.get(`${s}-and-url`);n===0?Rl.set(s,jm({fontWeight:e.fontWeight,fontStyle:e.fontStyle,fontFamily:s},o)):Rl.set(s,jm({fontWeight:t.fontWeight,fontStyle:t.fontStyle,fontFamily:s},o))}return Rl.get(s)});return(await Promise.all(i)).join(`
474
- `)}var Rl,kw=p(()=>{Eo();Cw();Rl=new Map});function Aw(r,e,t,i,s){let{domElement:n,styleElement:o,svgRoot:a}=s;n.innerHTML=`<style>${e.cssStyle}</style><div style='padding:0;'>${r}</div>`,n.setAttribute("style",`transform: scale(${t});transform-origin: top left; display: inline-block`),o.textContent=i;let{width:c,height:u}=s.image;return a.setAttribute("width",c.toString()),a.setAttribute("height",u.toString()),new XMLSerializer().serializeToString(a)}var Pw=p(()=>{"use strict"});function Bw(r,e){let t=yt.getOptimalCanvasAndContext(r.width,r.height,e),{context:i}=t;return i.clearRect(0,0,r.width,r.height),i.drawImage(r,0,0),t}var Rw=p(()=>{rn()});function Dw(r,e,t){return new Promise(async i=>{t&&await new Promise(s=>setTimeout(s,100)),r.onload=()=>{i()},r.src=`data:image/svg+xml;charset=utf8,${encodeURIComponent(e)}`,r.crossOrigin="anonymous"})}var Mw=p(()=>{"use strict"});function Fw(r,e,t,i){i||(i=Iw||(Iw=new on));let{domElement:s,styleElement:n,svgRoot:o}=i;s.innerHTML=`<style>${e.cssStyle};</style><div style='padding:0'>${r}</div>`,s.setAttribute("style","transform-origin: top left; display: inline-block"),t&&(n.textContent=t),document.body.appendChild(o);let a=s.getBoundingClientRect();o.remove();let c=e.padding*2;return{width:a.width-c,height:a.height-c}}var Iw,Uw=p(()=>{qm()});var Ko,Ow=p(()=>{B();rn();Hr();ir();hw();pe();br();Dm();qm();yw();ww();kw();Pw();Rw();Mw();Uw();Ko=class{constructor(e){this._renderer=e,this._createCanvas=e.type===Ie.WEBGPU}getTexture(e){return this.getTexturePromise(e)}getTexturePromise(e){return this._buildTexturePromise(e)}async _buildTexturePromise(e){let{text:t,style:i,resolution:s,textureStyle:n}=e,o=me.get(on),a=Tw(t,i),c=await Ew(a,i,Bl.defaultTextStyle),u=Fw(t,i,c,o),l=Math.ceil(Math.ceil(Math.max(1,u.width)+i.padding*2)*s),h=Math.ceil(Math.ceil(Math.max(1,u.height)+i.padding*2)*s),f=o.image,d=2;f.width=(l|0)+d,f.height=(h|0)+d;let m=Aw(t,i,s,c,o);await Dw(f,m,lw()&&a.length>0);let x=f,g;this._createCanvas&&(g=Bw(f,s));let _=wl(g?g.canvas:x,f.width-d,f.height-d,s);return n&&(_.source.style=n),this._createCanvas&&(this._renderer.texture.initSource(_.source),yt.returnCanvasAndContext(g)),me.return(o),_}returnTexturePromise(e){e.then(t=>{this._cleanUp(t)}).catch(()=>{N("HTMLTextSystem: Failed to clean texture")})}_cleanUp(e){Te.returnTexture(e,!0),e.source.resource=null,e.source.uploadMethodId="unknown"}destroy(){this._renderer=null}};Ko.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"htmlText"}});var Xm=p(()=>{B();uw();Ow();O.add(Ko);O.add(Yo)});var Gw,an,Dl=p(()=>{Yr();Cr();Os();ye();Gw=class Nw extends At{constructor(...e){let t=e[0]??{};t instanceof Float32Array&&(z($,"use new MeshGeometry({ positions, uvs, indices }) instead"),t={positions:t,uvs:e[1],indices:e[2]}),t={...Nw.defaultOptions,...t};let i=t.positions||new Float32Array([0,0,1,0,1,1,0,1]),s=t.uvs;s||(t.positions?s=new Float32Array(i.length):s=new Float32Array([0,0,1,0,1,1,0,1]));let n=t.indices||new Uint32Array([0,1,2,0,2,3]),o=t.shrinkBuffersToFit,a=new Ee({data:i,label:"attribute-mesh-positions",shrinkToFit:o,usage:Q.VERTEX|Q.COPY_DST}),c=new Ee({data:s,label:"attribute-mesh-uvs",shrinkToFit:o,usage:Q.VERTEX|Q.COPY_DST}),u=new Ee({data:n,label:"index-mesh-buffer",shrinkToFit:o,usage:Q.INDEX|Q.COPY_DST});super({attributes:{aPosition:{buffer:a,format:"float32x2",stride:2*4,offset:0},aUV:{buffer:c,format:"float32x2",stride:2*4,offset:0}},indexBuffer:u,topology:t.topology}),this.batchMode="auto"}get positions(){return this.attributes.aPosition.buffer.data}set positions(e){this.attributes.aPosition.buffer.data=e}get uvs(){return this.attributes.aUV.buffer.data}set uvs(e){this.attributes.aUV.buffer.data=e}get indices(){return this.indexBuffer.data}set indices(e){this.indexBuffer.data=e}};Gw.defaultOptions={topology:"triangle-list",shrinkBuffersToFit:!1};an=Gw});var es,Lw,cn,un=p(()=>{"use strict";es={name:"local-uniform-bit",vertex:{header:`
473
+ }`}var eT=p(()=>{J2()});async function tT(r,e,t){let i=r.filter(s=>De.has(`${s}-and-url`)).map((s,n)=>{if(!Xu.has(s)){let{url:o}=De.get(`${s}-and-url`);n===0?Xu.set(s,um({fontWeight:e.fontWeight,fontStyle:e.fontStyle,fontFamily:s},o)):Xu.set(s,um({fontWeight:t.fontWeight,fontStyle:t.fontStyle,fontFamily:s},o))}return Xu.get(s)});return(await Promise.all(i)).join(`
474
+ `)}var Xu,rT=p(()=>{to();eT();Xu=new Map});function iT(r,e,t,i,s){let{domElement:n,styleElement:o,svgRoot:a}=s;n.innerHTML=`<style>${e.cssStyle}</style><div style='padding:0;'>${r}</div>`,n.setAttribute("style",`transform: scale(${t});transform-origin: top left; display: inline-block`),o.textContent=i;let{width:c,height:u}=s.image;return a.setAttribute("width",c.toString()),a.setAttribute("height",u.toString()),new XMLSerializer().serializeToString(a)}var sT=p(()=>{"use strict"});function nT(r,e){let t=bt.getOptimalCanvasAndContext(r.width,r.height,e),{context:i}=t;return i.clearRect(0,0,r.width,r.height),i.drawImage(r,0,0),t}var oT=p(()=>{Us()});function aT(r,e,t){return new Promise(async i=>{t&&await new Promise(s=>setTimeout(s,100)),r.onload=()=>{i()},r.src=`data:image/svg+xml;charset=utf8,${encodeURIComponent(e)}`,r.crossOrigin="anonymous"})}var cT=p(()=>{"use strict"});function lT(r,e,t,i){i||(i=uT||(uT=new Ns));let{domElement:s,styleElement:n,svgRoot:o}=i;s.innerHTML=`<style>${e.cssStyle};</style><div style='padding:0'>${r}</div>`,s.setAttribute("style","transform-origin: top left; display: inline-block"),t&&(n.textContent=t),document.body.appendChild(o);let a=s.getBoundingClientRect();o.remove();let c=e.padding*2;return{width:a.width-c,height:a.height-c}}var uT,hT=p(()=>{cm()});var Eo,dT=p(()=>{P();Us();Lr();Jt();L2();ge();gr();Xf();cm();Y2();Q2();rT();sT();oT();cT();hT();Eo=class{constructor(e){this._renderer=e,this._createCanvas=e.type===Me.WEBGPU}getTexture(e){return this.getTexturePromise(e)}getTexturePromise(e){return this._buildTexturePromise(e)}async _buildTexturePromise(e){let{text:t,style:i,resolution:s,textureStyle:n}=e,o=pe.get(Ns),a=K2(t,i),c=await tT(a,i,ju.defaultTextStyle),u=lT(t,i,c,o),l=Math.ceil(Math.ceil(Math.max(1,u.width)+i.padding*2)*s),h=Math.ceil(Math.ceil(Math.max(1,u.height)+i.padding*2)*s),f=o.image,d=2;f.width=(l|0)+d,f.height=(h|0)+d;let m=iT(t,i,s,c,o);await aT(f,m,N2()&&a.length>0);let x=f,g;this._createCanvas&&(g=nT(f,s));let _=Nu(g?g.canvas:x,f.width-d,f.height-d,s);return n&&(_.source.style=n),this._createCanvas&&(this._renderer.texture.initSource(_.source),bt.returnCanvasAndContext(g)),pe.return(o),_}returnTexturePromise(e){e.then(t=>{this._cleanUp(t)}).catch(()=>{G("HTMLTextSystem: Failed to clean texture")})}_cleanUp(e){Te.returnTexture(e,!0),e.source.resource=null,e.source.uploadMethodId="unknown"}destroy(){this._renderer=null}};Eo.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"htmlText"}});var lm=p(()=>{P();G2();dT();O.add(Eo);O.add(Co)});var fT,Ls,Yu=p(()=>{qr();wr();xs();ye();fT=class mT extends vt{constructor(...e){let t=e[0]??{};t instanceof Float32Array&&(z($,"use new MeshGeometry({ positions, uvs, indices }) instead"),t={positions:t,uvs:e[1],indices:e[2]}),t={...mT.defaultOptions,...t};let i=t.positions||new Float32Array([0,0,1,0,1,1,0,1]),s=t.uvs;s||(t.positions?s=new Float32Array(i.length):s=new Float32Array([0,0,1,0,1,1,0,1]));let n=t.indices||new Uint32Array([0,1,2,0,2,3]),o=t.shrinkBuffersToFit,a=new Ce({data:i,label:"attribute-mesh-positions",shrinkToFit:o,usage:Q.VERTEX|Q.COPY_DST}),c=new Ce({data:s,label:"attribute-mesh-uvs",shrinkToFit:o,usage:Q.VERTEX|Q.COPY_DST}),u=new Ce({data:n,label:"index-mesh-buffer",shrinkToFit:o,usage:Q.INDEX|Q.COPY_DST});super({attributes:{aPosition:{buffer:a,format:"float32x2",stride:8,offset:0},aUV:{buffer:c,format:"float32x2",stride:8,offset:0}},indexBuffer:u,topology:t.topology}),this.batchMode="auto"}get positions(){return this.attributes.aPosition.buffer.data}set positions(e){this.attributes.aPosition.buffer.data=e}get uvs(){return this.attributes.aUV.buffer.data}set uvs(e){this.attributes.aUV.buffer.data=e}get indices(){return this.indexBuffer.data}set indices(e){this.indexBuffer.data=e}};fT.defaultOptions={topology:"triangle-list",shrinkBuffersToFit:!1};Ls=fT});var Oi,pT,zs,Vs=p(()=>{"use strict";Oi={name:"local-uniform-bit",vertex:{header:`
475
475
 
476
476
  struct LocalUniforms {
477
477
  uTransformMatrix:mat3x3<f32>,
@@ -488,7 +488,7 @@ fn mainFragment(
488
488
  {
489
489
  vPosition = vec4(roundPixels(vPosition.xy, globalUniforms.uResolution), vPosition.zw);
490
490
  }
491
- `}},Lw={...es,vertex:{...es.vertex,header:es.vertex.header.replace("group(1)","group(2)")}},cn={name:"local-uniform-bit",vertex:{header:`
491
+ `}},pT={...Oi,vertex:{...Oi.vertex,header:Oi.vertex.header.replace("group(1)","group(2)")}},zs={name:"local-uniform-bit",vertex:{header:`
492
492
 
493
493
  uniform mat3 uTransformMatrix;
494
494
  uniform vec4 uColor;
@@ -501,7 +501,7 @@ fn mainFragment(
501
501
  {
502
502
  gl_Position.xy = roundPixels(gl_Position.xy, uResolution);
503
503
  }
504
- `}}});var zw,Vw,Hw=p(()=>{"use strict";zw={name:"tiling-bit",vertex:{header:`
504
+ `}}});var gT,xT,_T=p(()=>{"use strict";gT={name:"tiling-bit",vertex:{header:`
505
505
  struct TilingUniforms {
506
506
  uMapCoord:mat3x3<f32>,
507
507
  uClampFrame:vec4<f32>,
@@ -544,7 +544,7 @@ fn mainFragment(
544
544
  }
545
545
 
546
546
  outColor = textureSampleBias(uTexture, uSampler, coord, bias);
547
- `}},Vw={name:"tiling-bit",vertex:{header:`
547
+ `}},xT={name:"tiling-bit",vertex:{header:`
548
548
  uniform mat3 uTextureTransform;
549
549
  uniform vec4 uSizeAnchor;
550
550
 
@@ -566,7 +566,7 @@ fn mainFragment(
566
566
 
567
567
  outColor = texture(uTexture, coord, unclamped == coord ? 0.0 : -32.0);// lod-bias very negative to force lod 0
568
568
 
569
- `}}});var Ym,Km,Ml,Ww=p(()=>{te();Qr();un();Zr();Ot();it();le();Hw();Ml=class extends ke{constructor(){Ym??(Ym=Jt({name:"tiling-sprite-shader",bits:[es,zw,tr]})),Km??(Km=er({name:"tiling-sprite-shader",bits:[cn,Vw,rr]}));let e=new ce({uMapCoord:{value:new R,type:"mat3x3<f32>"},uClampFrame:{value:new Float32Array([0,0,1,1]),type:"vec4<f32>"},uClampOffset:{value:new Float32Array([0,0]),type:"vec2<f32>"},uTextureTransform:{value:new R,type:"mat3x3<f32>"},uSizeAnchor:{value:new Float32Array([100,100,.5,.5]),type:"vec4<f32>"}});super({glProgram:Km,gpuProgram:Ym,resources:{localUniforms:new ce({uTransformMatrix:{value:new R,type:"mat3x3<f32>"},uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uRound:{value:0,type:"f32"}}),tilingUniforms:e,uTexture:M.EMPTY.source,uSampler:M.EMPTY.source.style}})}updateUniforms(e,t,i,s,n,o){let a=this.resources.tilingUniforms,c=o.width,u=o.height,l=o.textureMatrix,h=a.uniforms.uTextureTransform;h.set(i.a*c/e,i.b*c/t,i.c*u/e,i.d*u/t,i.tx/e,i.ty/t),h.invert(),a.uniforms.uMapCoord=l.mapCoord,a.uniforms.uClampFrame=l.uClampFrame,a.uniforms.uClampOffset=l.uClampOffset,a.uniforms.uTextureTransform=h,a.uniforms.uSizeAnchor[0]=e,a.uniforms.uSizeAnchor[1]=t,a.uniforms.uSizeAnchor[2]=s,a.uniforms.uSizeAnchor[3]=n,o&&(this.resources.uTexture=o.source,this.resources.uSampler=o.source.style)}}});var Il,$w=p(()=>{Dl();Il=class extends an{constructor(){super({positions:new Float32Array([0,0,1,0,1,1,0,1]),uvs:new Float32Array([0,0,1,0,1,1,0,1]),indices:new Uint32Array([0,1,2,0,2,3])})}}});function qw(r,e){let t=r.anchor.x,i=r.anchor.y;e[0]=-t*r.width,e[1]=-i*r.height,e[2]=(1-t)*r.width,e[3]=-i*r.height,e[4]=(1-t)*r.width,e[5]=(1-i)*r.height,e[6]=-t*r.width,e[7]=(1-i)*r.height}var jw=p(()=>{"use strict"});function Xw(r,e,t,i){let s=0,n=r.length/(e||2),o=i.a,a=i.b,c=i.c,u=i.d,l=i.tx,h=i.ty;for(t*=e;s<n;){let f=r[t],d=r[t+1];r[t]=o*f+c*d+l,r[t+1]=a*f+u*d+h,t+=e,s++}}var Yw=p(()=>{"use strict"});function Kw(r,e){let t=r.texture,i=t.frame.width,s=t.frame.height,n=0,o=0;r.applyAnchorToTexture&&(n=r.anchor.x,o=r.anchor.y),e[0]=e[6]=-n,e[2]=e[4]=1-n,e[1]=e[3]=-o,e[5]=e[7]=1-o;let a=R.shared;a.copyFrom(r._tileTransform.matrix),a.tx/=r.width,a.ty/=r.height,a.invert(),a.scale(r.width/i,r.height/s),Xw(e,2,0,a)}var Qw=p(()=>{te();Yw()});var Fl,Qm,Qo,Zw=p(()=>{B();Ao();Gt();ir();Ys();ol();Dl();Ww();$w();jw();Qw();Fl=new Il,Qm=class{constructor(){this.canBatch=!0,this.geometry=new an({indices:Fl.indices.slice(),positions:Fl.positions.slice(),uvs:Fl.uvs.slice()})}destroy(){this.geometry.destroy(),this.shader?.destroy()}},Qo=class{constructor(e){this._state=Pe.default2d,this._renderer=e}validateRenderable(e){let t=this._getTilingSpriteData(e),i=t.canBatch;this._updateCanBatch(e);let s=t.canBatch;if(s&&s===i){let{batchableMesh:n}=t;return!n._batcher.checkAndUpdateTexture(n,e.texture)}return i!==s}addRenderable(e,t){let i=this._renderer.renderPipes.batch;this._updateCanBatch(e);let s=this._getTilingSpriteData(e),{geometry:n,canBatch:o}=s;if(o){s.batchableMesh||(s.batchableMesh=new Jr);let a=s.batchableMesh;e.didViewUpdate&&(this._updateBatchableMesh(e),a.geometry=n,a.renderable=e,a.transform=e.groupTransform,a.setTexture(e._texture)),a.roundPixels=this._renderer._roundPixels|e._roundPixels,i.addToBatch(a,t)}else i.break(t),s.shader||(s.shader=new Ml),this.updateRenderable(e),t.add(e)}execute(e){let{shader:t}=this._getTilingSpriteData(e);t.groups[0]=this._renderer.globalUniforms.bindGroup;let i=t.resources.localUniforms.uniforms;i.uTransformMatrix=e.groupTransform,i.uRound=this._renderer._roundPixels|e._roundPixels,sr(e.groupColorAlpha,i.uColor,0),this._state.blendMode=vr(e.groupBlendMode,e.texture._source),this._renderer.encoder.draw({geometry:Fl,shader:t,state:this._state})}updateRenderable(e){let t=this._getTilingSpriteData(e),{canBatch:i}=t;if(i){let{batchableMesh:s}=t;e.didViewUpdate&&this._updateBatchableMesh(e),s._batcher.updateElement(s)}else if(e.didViewUpdate){let{shader:s}=t;s.updateUniforms(e.width,e.height,e._tileTransform.matrix,e.anchor.x,e.anchor.y,e.texture)}}_getTilingSpriteData(e){return e._gpuData[this._renderer.uid]||this._initTilingSpriteData(e)}_initTilingSpriteData(e){let t=new Qm;return t.renderable=e,e._gpuData[this._renderer.uid]=t,t}_updateBatchableMesh(e){let t=this._getTilingSpriteData(e),{geometry:i}=t,s=e.texture.source.style;s.addressMode!=="repeat"&&(s.addressMode="repeat",s.update()),Kw(e,i.uvs),qw(e,i.positions)}destroy(){this._renderer=null}_updateCanBatch(e){let t=this._getTilingSpriteData(e),i=e.texture,s=!0;return this._renderer.type===Ie.WEBGL&&(s=this._renderer.context.supports.nonPowOf2wrapping),t.canBatch=i.textureMatrix.isSimple&&(s||i.source.isPowerOfTwo),t.canBatch}};Qo.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"tilingSprite"}});var Zm=p(()=>{B();Zw();O.add(Qo)});var Jw,tS,rS=p(()=>{ye();Dl();Jw=class eS extends an{constructor(...e){super({});let t=e[0]??{};typeof t=="number"&&(z($,"PlaneGeometry constructor changed please use { width, height, verticesX, verticesY } instead"),t={width:t,height:e[1],verticesX:e[2],verticesY:e[3]}),this.build(t)}build(e){e={...eS.defaultOptions,...e},this.verticesX=this.verticesX??e.verticesX,this.verticesY=this.verticesY??e.verticesY,this.width=this.width??e.width,this.height=this.height??e.height;let t=this.verticesX*this.verticesY,i=[],s=[],n=[],o=this.verticesX-1,a=this.verticesY-1,c=this.width/o,u=this.height/a;for(let h=0;h<t;h++){let f=h%this.verticesX,d=h/this.verticesX|0;i.push(f*c,d*u),s.push(f/o,d/a)}let l=o*a;for(let h=0;h<l;h++){let f=h%o,d=h/o|0,m=d*this.verticesX+f,x=d*this.verticesX+f+1,g=(d+1)*this.verticesX+f,_=(d+1)*this.verticesX+f+1;n.push(m,x,g,x,_,g)}this.buffers[0].data=new Float32Array(i),this.buffers[1].data=new Float32Array(s),this.indexBuffer.data=new Uint32Array(n),this.buffers[0].update(),this.buffers[1].update(),this.indexBuffer.update()}};Jw.defaultOptions={width:100,height:100,verticesX:10,verticesY:10};tS=Jw});var iS,nS,oS=p(()=>{rS();iS=class sS extends tS{constructor(e={}){e={...sS.defaultOptions,...e},super({width:e.width,height:e.height,verticesX:4,verticesY:4}),this.update(e)}update(e){this.width=e.width??this.width,this.height=e.height??this.height,this._originalWidth=e.originalWidth??this._originalWidth,this._originalHeight=e.originalHeight??this._originalHeight,this._leftWidth=e.leftWidth??this._leftWidth,this._rightWidth=e.rightWidth??this._rightWidth,this._topHeight=e.topHeight??this._topHeight,this._bottomHeight=e.bottomHeight??this._bottomHeight,this._anchorX=e.anchor?.x,this._anchorY=e.anchor?.y,this.updateUvs(),this.updatePositions()}updatePositions(){let e=this.positions,{width:t,height:i,_leftWidth:s,_rightWidth:n,_topHeight:o,_bottomHeight:a,_anchorX:c,_anchorY:u}=this,l=s+n,h=t>l?1:t/l,f=o+a,d=i>f?1:i/f,m=Math.min(h,d),x=c*t,g=u*i;e[0]=e[8]=e[16]=e[24]=-x,e[2]=e[10]=e[18]=e[26]=s*m-x,e[4]=e[12]=e[20]=e[28]=t-n*m-x,e[6]=e[14]=e[22]=e[30]=t-x,e[1]=e[3]=e[5]=e[7]=-g,e[9]=e[11]=e[13]=e[15]=o*m-g,e[17]=e[19]=e[21]=e[23]=i-a*m-g,e[25]=e[27]=e[29]=e[31]=i-g,this.getBuffer("aPosition").update()}updateUvs(){let e=this.uvs;e[0]=e[8]=e[16]=e[24]=0,e[1]=e[3]=e[5]=e[7]=0,e[6]=e[14]=e[22]=e[30]=1,e[25]=e[27]=e[29]=e[31]=1;let t=1/this._originalWidth,i=1/this._originalHeight;e[2]=e[10]=e[18]=e[26]=t*this._leftWidth,e[9]=e[11]=e[13]=e[15]=i*this._topHeight,e[4]=e[12]=e[20]=e[28]=1-t*this._rightWidth,e[17]=e[19]=e[21]=e[23]=1-i*this._bottomHeight,this.getBuffer("aUV").update()}};iS.defaultOptions={width:100,height:100,leftWidth:10,topHeight:10,rightWidth:10,bottomHeight:10,originalWidth:100,originalHeight:100};nS=iS});var Jm,Zo,aS=p(()=>{B();ol();oS();Jm=class extends Jr{constructor(){super(),this.geometry=new nS}destroy(){this.geometry.destroy()}},Zo=class{constructor(e){this._renderer=e}addRenderable(e,t){let i=this._getGpuSprite(e);e.didViewUpdate&&this._updateBatchableSprite(e,i),this._renderer.renderPipes.batch.addToBatch(i,t)}updateRenderable(e){let t=this._getGpuSprite(e);e.didViewUpdate&&this._updateBatchableSprite(e,t),t._batcher.updateElement(t)}validateRenderable(e){let t=this._getGpuSprite(e);return!t._batcher.checkAndUpdateTexture(t,e._texture)}_updateBatchableSprite(e,t){t.geometry.update(e),t.setTexture(e._texture)}_getGpuSprite(e){return e._gpuData[this._renderer.uid]||this._initGPUSprite(e)}_initGPUSprite(e){let t=e._gpuData[this._renderer.uid]=new Jm,i=t;return i.renderable=e,i.transform=e.groupTransform,i.texture=e._texture,i.roundPixels=this._renderer._roundPixels|e._roundPixels,e.didViewUpdate||this._updateBatchableSprite(e,i),t}destroy(){this._renderer=null}};Zo.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"nineSliceSprite"}});var ep=p(()=>{B();aS();O.add(Zo)});var Jo,cS=p(()=>{B();Jo=class{constructor(e){this._renderer=e}push(e,t,i){this._renderer.renderPipes.batch.break(i),i.add({renderPipeId:"filter",canBundle:!1,action:"pushFilter",container:t,filterEffect:e})}pop(e,t,i){this._renderer.renderPipes.batch.break(i),i.add({renderPipeId:"filter",action:"popFilter",canBundle:!1})}execute(e){e.action==="pushFilter"?this._renderer.filter.push(e):e.action==="popFilter"&&this._renderer.filter.pop()}destroy(){this._renderer=null}};Jo.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"filter"}});function uS(r,e){e.clear();let t=e.matrix;for(let i=0;i<r.length;i++){let s=r[i];s.globalDisplayStatus<7||(e.matrix=s.worldTransform,e.addBounds(s.bounds))}return e.matrix=t,e}var lS=p(()=>{"use strict"});var KB,tp,ea,hS=p(()=>{B();te();Xr();Os();it();le();Hr();ir();at();lS();pe();KB=new At({attributes:{aPosition:{buffer:new Float32Array([0,0,1,0,1,1,0,1]),format:"float32x2",stride:2*4,offset:0}},indexBuffer:new Uint32Array([0,1,2,0,2,3])}),tp=class{constructor(){this.skip=!1,this.inputTexture=null,this.backTexture=null,this.filters=null,this.bounds=new ae,this.container=null,this.blendRequired=!1,this.outputRenderSurface=null,this.outputOffset={x:0,y:0},this.globalFrame={x:0,y:0,width:0,height:0}}},ea=class{constructor(e){this._filterStackIndex=0,this._filterStack=[],this._filterGlobalUniforms=new ce({uInputSize:{value:new Float32Array(4),type:"vec4<f32>"},uInputPixel:{value:new Float32Array(4),type:"vec4<f32>"},uInputClamp:{value:new Float32Array(4),type:"vec4<f32>"},uOutputFrame:{value:new Float32Array(4),type:"vec4<f32>"},uGlobalFrame:{value:new Float32Array(4),type:"vec4<f32>"},uOutputTexture:{value:new Float32Array(4),type:"vec4<f32>"}}),this._globalFilterBindGroup=new Ne({}),this.renderer=e}get activeBackTexture(){return this._activeFilterData?.backTexture}push(e){let t=this.renderer,i=e.filterEffect.filters,s=this._pushFilterData();s.skip=!1,s.filters=i,s.container=e.container,s.outputRenderSurface=t.renderTarget.renderSurface;let n=t.renderTarget.renderTarget.colorTexture.source,o=n.resolution,a=n.antialias;if(i.length===0){s.skip=!0;return}let c=s.bounds;if(e.renderables?uS(e.renderables,c):e.filterEffect.filterArea?(c.clear(),c.addRect(e.filterEffect.filterArea),c.applyMatrix(e.container.worldTransform)):e.container.getFastGlobalBounds(!0,c),e.container){let x=(e.container.renderGroup||e.container.parentRenderGroup).cacheToLocalTransform;x&&c.applyMatrix(x)}if(this._calculateFilterBounds(s,t.renderTarget.rootViewPort,a,o,1),s.skip)return;let u=this._getPreviousFilterData(),l=o,h=0,f=0;u&&(h=u.bounds.minX,f=u.bounds.minY,l=u.inputTexture.source._resolution),s.outputOffset.x=c.minX-h,s.outputOffset.y=c.minY-f;let d=s.globalFrame;if(d.x=h*l,d.y=f*l,d.width=n.width*l,d.height=n.height*l,s.backTexture=M.EMPTY,s.blendRequired){t.renderTarget.finishRenderPass();let m=t.renderTarget.getRenderTarget(s.outputRenderSurface);s.backTexture=this.getBackTexture(m,c,u?.bounds)}s.inputTexture=Te.getOptimalTexture(c.width,c.height,s.resolution,s.antialias),t.renderTarget.bind(s.inputTexture,!0),t.globalUniforms.push({offset:c})}generateFilteredTexture({texture:e,filters:t}){let i=this._pushFilterData();this._activeFilterData=i,i.skip=!1,i.filters=t;let s=e.source,n=s.resolution,o=s.antialias;if(t.length===0)return i.skip=!0,e;let a=i.bounds;if(a.addRect(e.frame),this._calculateFilterBounds(i,a.rectangle,o,n,0),i.skip)return e;let c=n,u=0,l=0;i.outputOffset.x=-a.minX,i.outputOffset.y=-a.minY;let h=i.globalFrame;h.x=u*c,h.y=l*c,h.width=s.width*c,h.height=s.height*c,i.outputRenderSurface=Te.getOptimalTexture(a.width,a.height,i.resolution,i.antialias),i.backTexture=M.EMPTY,i.inputTexture=e,this.renderer.renderTarget.finishRenderPass(),this._applyFiltersToTexture(i,!0);let d=i.outputRenderSurface;return d.source.alphaMode="premultiplied-alpha",d}pop(){let e=this.renderer,t=this._popFilterData();t.skip||(e.globalUniforms.pop(),e.renderTarget.finishRenderPass(),this._activeFilterData=t,this._applyFiltersToTexture(t,!1),t.blendRequired&&Te.returnTexture(t.backTexture),Te.returnTexture(t.inputTexture))}getBackTexture(e,t,i){let s=e.colorTexture.source._resolution,n=Te.getOptimalTexture(t.width,t.height,s,!1),o=t.minX,a=t.minY;i&&(o-=i.minX,a-=i.minY),o=Math.floor(o*s),a=Math.floor(a*s);let c=Math.ceil(t.width*s),u=Math.ceil(t.height*s);return this.renderer.renderTarget.copyToTexture(e,n,{x:o,y:a},{width:c,height:u},{x:0,y:0}),n}applyFilter(e,t,i,s){let n=this.renderer,o=this._activeFilterData,a=o.outputRenderSurface,c=this._filterGlobalUniforms,u=c.uniforms,l=u.uOutputFrame,h=u.uInputSize,f=u.uInputPixel,d=u.uInputClamp,m=u.uGlobalFrame,x=u.uOutputTexture;a===i?(l[0]=o.outputOffset.x,l[1]=o.outputOffset.y):(l[0]=0,l[1]=0),l[2]=t.frame.width,l[3]=t.frame.height,h[0]=t.source.width,h[1]=t.source.height,h[2]=1/h[0],h[3]=1/h[1],f[0]=t.source.pixelWidth,f[1]=t.source.pixelHeight,f[2]=1/f[0],f[3]=1/f[1],d[0]=.5*f[2],d[1]=.5*f[3],d[2]=t.frame.width*h[2]-.5*f[2],d[3]=t.frame.height*h[3]-.5*f[3],m[0]=o.globalFrame.x,m[1]=o.globalFrame.y,m[2]=o.globalFrame.width,m[3]=o.globalFrame.height,i instanceof M&&(i.source.resource=null);let g=this.renderer.renderTarget.getRenderTarget(i);if(n.renderTarget.bind(i,!!s),i instanceof M?(x[0]=i.frame.width,x[1]=i.frame.height):(x[0]=g.width,x[1]=g.height),x[2]=g.isRoot?-1:1,c.update(),n.renderPipes.uniformBatch){let _=n.renderPipes.uniformBatch.getUboResource(c);this._globalFilterBindGroup.setResource(_,0)}else this._globalFilterBindGroup.setResource(c,0);this._globalFilterBindGroup.setResource(t.source,1),this._globalFilterBindGroup.setResource(t.source.style,2),e.groups[0]=this._globalFilterBindGroup,n.encoder.draw({geometry:KB,shader:e,state:e._state,topology:"triangle-list"}),n.type===Ie.WEBGL&&n.renderTarget.finishRenderPass()}calculateSpriteMatrix(e,t){let i=this._activeFilterData,s=e.set(i.inputTexture._source.width,0,0,i.inputTexture._source.height,i.bounds.minX,i.bounds.minY),n=t.worldTransform.copyTo(R.shared),o=t.renderGroup||t.parentRenderGroup;return o&&o.cacheToLocalTransform&&n.prepend(o.cacheToLocalTransform),n.invert(),s.prepend(n),s.scale(1/t.texture.frame.width,1/t.texture.frame.height),s.translate(t.anchor.x,t.anchor.y),s}destroy(){}_applyFiltersToTexture(e,t){let i=e.inputTexture,s=e.bounds,n=e.filters;if(this._globalFilterBindGroup.setResource(i.source.style,2),this._globalFilterBindGroup.setResource(e.backTexture.source,3),n.length===1)n[0].apply(this,i,e.outputRenderSurface,t);else{let o=e.inputTexture,a=Te.getOptimalTexture(s.width,s.height,o.source._resolution,!1),c=a,u=0;for(u=0;u<n.length-1;++u){n[u].apply(this,o,c,!0);let h=o;o=c,c=h}n[u].apply(this,o,e.outputRenderSurface,t),Te.returnTexture(a)}}_calculateFilterBounds(e,t,i,s,n){let o=this.renderer,a=e.bounds,c=e.filters,u=1/0,l=0,h=!0,f=!1,d=!1,m=!0;for(let x=0;x<c.length;x++){let g=c[x];if(u=Math.min(u,g.resolution==="inherit"?s:g.resolution),l+=g.padding,g.antialias==="off"?h=!1:g.antialias==="inherit"&&h&&(h=i),g.clipToViewport||(m=!1),!!!(g.compatibleRenderers&o.type)){d=!1;break}if(g.blendRequired&&!(o.backBuffer?.useBackBuffer??!0)){N("Blend filter requires backBuffer on WebGL renderer to be enabled. Set `useBackBuffer: true` in the renderer options."),d=!1;break}d=g.enabled||d,f||(f=g.blendRequired)}if(!d){e.skip=!0;return}if(m&&a.fitBounds(0,t.width/s,0,t.height/s),a.scale(u).ceil().scale(1/u).pad((l|0)*n),!a.isPositive){e.skip=!0;return}e.antialias=h,e.resolution=u,e.blendRequired=f}_popFilterData(){return this._filterStackIndex--,this._filterStack[this._filterStackIndex]}_getPreviousFilterData(){let e,t=this._filterStackIndex-1;for(;t>1&&(t--,e=this._filterStack[t],!!e.skip););return e}_pushFilterData(){let e=this._filterStack[this._filterStackIndex];return e||(e=this._filterStack[this._filterStackIndex]=new tp),this._filterStackIndex++,e}};ea.extension={type:[b.WebGLSystem,b.WebGPUSystem],name:"filter"}});var rp=p(()=>{B();cS();hS();O.add(ea);O.add(Jo)});var QB={};var dS=p(()=>{W_();Jd();J_();tb();Uu();Hu();um();lm();mm();Gm();$m();Xm();Zm();ep();rp()});var ZB={};var mS=p(()=>{Jd();Uu();Hu();um();lm();mm();Gm();$m();Xm();Zm();ep();rp()});var gS,xS,_S=p(()=>{$i();Ns();Ot();Gt();gS=class ip extends ke{constructor(e){e={...ip.defaultOptions,...e},super(e),this.enabled=!0,this._state=Pe.for2d(),this.blendMode=e.blendMode,this.padding=e.padding,typeof e.antialias=="boolean"?this.antialias=e.antialias?"on":"off":this.antialias=e.antialias,this.resolution=e.resolution,this.blendRequired=e.blendRequired,this.clipToViewport=e.clipToViewport,this.addResource("uTexture",0,1)}apply(e,t,i,s){e.applyFilter(this,t,i,s)}get blendMode(){return this._state.blendMode}set blendMode(e){this._state.blendMode=e}static from(e){let{gpu:t,gl:i,...s}=e,n,o;return t&&(n=Bt.from(t)),i&&(o=Pt.from(i)),new ip({gpuProgram:n,glProgram:o,...s})}};gS.defaultOptions={blendMode:"normal",resolution:1,padding:0,antialias:"off",blendRequired:!1,clipToViewport:!0};xS=gS});async function bS(r){if(!r)for(let e=0;e<sp.length;e++){let t=sp[e];if(t.value.test()){await t.value.load();return}}}var sp,yS=p(()=>{B();sp=[];O.handleByNamedList(b.Environment,sp)});function Ul(){if(typeof ta=="boolean")return ta;try{ta=new Function("param1","param2","param3","return param1[param2] === param3;")({a:"b"},"a","b")===!0}catch{ta=!1}return ta}var ta,np=p(()=>{"use strict"});var Le,ln=p(()=>{"use strict";Le=(r=>(r[r.NONE=0]="NONE",r[r.COLOR=16384]="COLOR",r[r.STENCIL=1024]="STENCIL",r[r.DEPTH=256]="DEPTH",r[r.COLOR_DEPTH=16640]="COLOR_DEPTH",r[r.COLOR_STENCIL=17408]="COLOR_STENCIL",r[r.DEPTH_STENCIL=1280]="DEPTH_STENCIL",r[r.ALL=17664]="ALL",r))(Le||{})});var hn,op=p(()=>{"use strict";hn=class{constructor(e){this.items=[],this._name=e}emit(e,t,i,s,n,o,a,c){let{name:u,items:l}=this;for(let h=0,f=l.length;h<f;h++)l[h][u](e,t,i,s,n,o,a,c);return this}add(e){return e[this._name]&&(this.remove(e),this.items.push(e)),this}remove(e){let t=this.items.indexOf(e);return t!==-1&&this.items.splice(t,1),this}contains(e){return this.items.indexOf(e)!==-1}removeAll(){return this.items.length=0,this}destroy(){this.removeAll(),this.items=null,this._name=null}get empty(){return this.items.length===0}get name(){return this._name}}});var JB,TS,ti,ra=p(()=>{He();yS();jt();np();Oe();ye();ln();op();Ve();JB=["init","destroy","contextChange","resolutionChange","resetState","renderEnd","renderStart","render","update","postrender","prerender"],TS=class wS extends oe{constructor(e){super(),this.uid=K("renderer"),this.runners=Object.create(null),this.renderPipes=Object.create(null),this._initOptions={},this._systemsHash=Object.create(null),this.type=e.type,this.name=e.name,this.config=e;let t=[...JB,...this.config.runners??[]];this._addRunners(...t),this._unsafeEvalCheck()}async init(e={}){let t=e.skipExtensionImports===!0?!0:e.manageImports===!1;await bS(t),this._addSystems(this.config.systems),this._addPipes(this.config.renderPipes,this.config.renderPipeAdaptors);for(let i in this._systemsHash)e={...this._systemsHash[i].constructor.defaultOptions,...e};e={...wS.defaultOptions,...e},this._roundPixels=e.roundPixels?1:0;for(let i=0;i<this.runners.init.items.length;i++)await this.runners.init.items[i].init(e);this._initOptions=e}render(e,t){let i=e;if(i instanceof we&&(i={container:i},t&&(z($,"passing a second argument is deprecated, please use render options instead"),i.target=t.renderTexture)),i.target||(i.target=this.view.renderTarget),i.target===this.view.renderTarget&&(this._lastObjectRendered=i.container,i.clearColor??(i.clearColor=this.background.colorRgba),i.clear??(i.clear=this.background.clearBeforeRender)),i.clearColor){let s=Array.isArray(i.clearColor)&&i.clearColor.length===4;i.clearColor=s?i.clearColor:q.shared.setValue(i.clearColor).toArray()}i.transform||(i.container.updateLocalTransform(),i.transform=i.container.localTransform),i.container.enableRenderGroup(),this.runners.prerender.emit(i),this.runners.renderStart.emit(i),this.runners.render.emit(i),this.runners.renderEnd.emit(i),this.runners.postrender.emit(i)}resize(e,t,i){let s=this.view.resolution;this.view.resize(e,t,i),this.emit("resize",this.view.screen.width,this.view.screen.height,this.view.resolution),i!==void 0&&i!==s&&this.runners.resolutionChange.emit(i)}clear(e={}){let t=this;e.target||(e.target=t.renderTarget.renderTarget),e.clearColor||(e.clearColor=this.background.colorRgba),e.clear??(e.clear=Le.ALL);let{clear:i,clearColor:s,target:n}=e;q.shared.setValue(s??this.background.colorRgba),t.renderTarget.clear(n,i,q.shared.toArray())}get resolution(){return this.view.resolution}set resolution(e){this.view.resolution=e,this.runners.resolutionChange.emit(e)}get width(){return this.view.texture.frame.width}get height(){return this.view.texture.frame.height}get canvas(){return this.view.canvas}get lastObjectRendered(){return this._lastObjectRendered}get renderingToScreen(){return this.renderTarget.renderingToScreen}get screen(){return this.view.screen}_addRunners(...e){e.forEach(t=>{this.runners[t]=new hn(t)})}_addSystems(e){let t;for(t in e){let i=e[t];this._addSystem(i.value,i.name)}}_addSystem(e,t){let i=new e(this);if(this[t])throw new Error(`Whoops! The name "${t}" is already in use`);this[t]=i,this._systemsHash[t]=i;for(let s in this.runners)this.runners[s].add(i);return this}_addPipes(e,t){let i=t.reduce((s,n)=>(s[n.name]=n.value,s),{});e.forEach(s=>{let n=s.value,o=s.name,a=i[o];this.renderPipes[o]=new n(this,a?new a:null)})}destroy(e=!1){this.runners.destroy.items.reverse(),this.runners.destroy.emit(e),Object.values(this.runners).forEach(t=>{t.destroy()}),this._systemsHash=null,this.renderPipes=null}generateTexture(e){return this.textureGenerator.generateTexture(e)}get roundPixels(){return!!this._roundPixels}_unsafeEvalCheck(){if(!Ul())throw new Error("Current environment does not allow unsafe-eval, please use pixi.js/unsafe-eval module to enable support.")}resetState(){this.runners.resetState.emit()}};TS.defaultOptions={resolution:1,failIfMajorPerformanceCaveat:!1,roundPixels:!1};ti=TS});var ia,CS=p(()=>{B();te();Wu();Qr();Ro();Do();un();Zr();Ot();it();ia=class{constructor(){this._maxTextures=0}contextChange(e){let t=new ce({uTransformMatrix:{value:new R,type:"mat3x3<f32>"},uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uRound:{value:0,type:"f32"}});this._maxTextures=e.limits.maxBatchableTextures;let i=Jt({name:"graphics",bits:[Ls,Vs(this._maxTextures),Lw,tr]});this.shader=new ke({gpuProgram:i,resources:{localUniforms:t}})}execute(e,t){let i=t.context,s=i.customShader||this.shader,n=e.renderer,o=n.graphicsContext,{batcher:a,instructions:c}=o.getContextRenderData(i),u=n.encoder;u.setGeometry(a.geometry,s.gpuProgram);let l=n.globalUniforms.bindGroup;u.setBindGroup(0,l,s.gpuProgram);let h=n.renderPipes.uniformBatch.getUniformBindGroup(s.resources.localUniforms,!0);u.setBindGroup(2,h,s.gpuProgram);let f=c.instructions,d=null;for(let m=0;m<c.instructionSize;m++){let x=f[m];if(x.topology!==d&&(d=x.topology,u.setPipelineFromGeometryProgramAndState(a.geometry,s.gpuProgram,e.state,x.topology)),s.groups[1]=x.bindGroup,!x.gpuBindGroup){let g=x.textures;x.bindGroup=Fs(g.textures,g.count,this._maxTextures),x.gpuBindGroup=n.bindGroup.getBindGroup(x.bindGroup,s.gpuProgram,1)}u.setBindGroup(1,x.bindGroup,s.gpuProgram),u.renderPassEncoder.drawIndexed(x.size,1,x.start)}}destroy(){this.shader.destroy(!0),this.shader=null}};ia.extension={type:[b.WebGPUPipesAdaptor],name:"graphics"}});var ES,kS,ap=p(()=>{"use strict";ES={name:"texture-bit",vertex:{header:`
569
+ `}}});var hm,dm,Ku,bT=p(()=>{ee();Xr();Vs();Yr();Ut();rt();le();_T();Ku=class extends Ee{constructor(){hm??(hm=Yt({name:"tiling-sprite-shader",bits:[Oi,gT,Qt]})),dm??(dm=Kt({name:"tiling-sprite-shader",bits:[zs,xT,Zt]}));let e=new ce({uMapCoord:{value:new R,type:"mat3x3<f32>"},uClampFrame:{value:new Float32Array([0,0,1,1]),type:"vec4<f32>"},uClampOffset:{value:new Float32Array([0,0]),type:"vec2<f32>"},uTextureTransform:{value:new R,type:"mat3x3<f32>"},uSizeAnchor:{value:new Float32Array([100,100,.5,.5]),type:"vec4<f32>"}});super({glProgram:dm,gpuProgram:hm,resources:{localUniforms:new ce({uTransformMatrix:{value:new R,type:"mat3x3<f32>"},uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uRound:{value:0,type:"f32"}}),tilingUniforms:e,uTexture:D.EMPTY.source,uSampler:D.EMPTY.source.style}})}updateUniforms(e,t,i,s,n,o){let a=this.resources.tilingUniforms,c=o.width,u=o.height,l=o.textureMatrix,h=a.uniforms.uTextureTransform;h.set(i.a*c/e,i.b*c/t,i.c*u/e,i.d*u/t,i.tx/e,i.ty/t),h.invert(),a.uniforms.uMapCoord=l.mapCoord,a.uniforms.uClampFrame=l.uClampFrame,a.uniforms.uClampOffset=l.uClampOffset,a.uniforms.uTextureTransform=h,a.uniforms.uSizeAnchor[0]=e,a.uniforms.uSizeAnchor[1]=t,a.uniforms.uSizeAnchor[2]=s,a.uniforms.uSizeAnchor[3]=n,o&&(this.resources.uTexture=o.source,this.resources.uSampler=o.source.style)}}});var Qu,yT=p(()=>{Yu();Qu=class extends Ls{constructor(){super({positions:new Float32Array([0,0,1,0,1,1,0,1]),uvs:new Float32Array([0,0,1,0,1,1,0,1]),indices:new Uint32Array([0,1,2,0,2,3])})}}});function TT(r,e){let t=r.anchor.x,i=r.anchor.y;e[0]=-t*r.width,e[1]=-i*r.height,e[2]=(1-t)*r.width,e[3]=-i*r.height,e[4]=(1-t)*r.width,e[5]=(1-i)*r.height,e[6]=-t*r.width,e[7]=(1-i)*r.height}var wT=p(()=>{"use strict"});function ST(r,e,t,i){let s=0,n=r.length/(e||2),o=i.a,a=i.b,c=i.c,u=i.d,l=i.tx,h=i.ty;for(t*=e;s<n;){let f=r[t],d=r[t+1];r[t]=o*f+c*d+l,r[t+1]=a*f+u*d+h,t+=e,s++}}var vT=p(()=>{"use strict"});function CT(r,e){let t=r.texture,i=t.frame.width,s=t.frame.height,n=0,o=0;r.applyAnchorToTexture&&(n=r.anchor.x,o=r.anchor.y),e[0]=e[6]=-n,e[2]=e[4]=1-n,e[1]=e[3]=-o,e[5]=e[7]=1-o;let a=R.shared;a.copyFrom(r._tileTransform.matrix),a.tx/=r.width,a.ty/=r.height,a.invert(),a.scale(r.width/i,r.height/s),ST(e,2,0,a)}var ET=p(()=>{ee();vT()});var Zu,fm,ko,kT=p(()=>{P();io();Ot();Jt();Ps();Su();Yu();bT();yT();wT();ET();Zu=new Qu,fm=class{constructor(){this.canBatch=!0,this.geometry=new Ls({indices:Zu.indices.slice(),positions:Zu.positions.slice(),uvs:Zu.uvs.slice()})}destroy(){this.geometry.destroy(),this.shader?.destroy()}},ko=class{constructor(e){this._state=Ae.default2d,this._renderer=e}validateRenderable(e){let t=this._getTilingSpriteData(e),i=t.canBatch;this._updateCanBatch(e);let s=t.canBatch;if(s&&s===i){let{batchableMesh:n}=t;return!n._batcher.checkAndUpdateTexture(n,e.texture)}return i!==s}addRenderable(e,t){let i=this._renderer.renderPipes.batch;this._updateCanBatch(e);let s=this._getTilingSpriteData(e),{geometry:n,canBatch:o}=s;if(o){s.batchableMesh||(s.batchableMesh=new Kr);let a=s.batchableMesh;e.didViewUpdate&&(this._updateBatchableMesh(e),a.geometry=n,a.renderable=e,a.transform=e.groupTransform,a.setTexture(e._texture)),a.roundPixels=this._renderer._roundPixels|e._roundPixels,i.addToBatch(a,t)}else i.break(t),s.shader||(s.shader=new Ku),this.updateRenderable(e),t.add(e)}execute(e){let{shader:t}=this._getTilingSpriteData(e);t.groups[0]=this._renderer.globalUniforms.bindGroup;let i=t.resources.localUniforms.uniforms;i.uTransformMatrix=e.groupTransform,i.uRound=this._renderer._roundPixels|e._roundPixels,er(e.groupColorAlpha,i.uColor,0),this._state.blendMode=Tr(e.groupBlendMode,e.texture._source),this._renderer.encoder.draw({geometry:Zu,shader:t,state:this._state})}updateRenderable(e){let t=this._getTilingSpriteData(e),{canBatch:i}=t;if(i){let{batchableMesh:s}=t;e.didViewUpdate&&this._updateBatchableMesh(e),s._batcher.updateElement(s)}else if(e.didViewUpdate){let{shader:s}=t;s.updateUniforms(e.width,e.height,e._tileTransform.matrix,e.anchor.x,e.anchor.y,e.texture)}}_getTilingSpriteData(e){return e._gpuData[this._renderer.uid]||this._initTilingSpriteData(e)}_initTilingSpriteData(e){let t=new fm;return t.renderable=e,e._gpuData[this._renderer.uid]=t,t}_updateBatchableMesh(e){let t=this._getTilingSpriteData(e),{geometry:i}=t,s=e.texture.source.style;s.addressMode!=="repeat"&&(s.addressMode="repeat",s.update()),CT(e,i.uvs),TT(e,i.positions)}destroy(){this._renderer=null}_updateCanBatch(e){let t=this._getTilingSpriteData(e),i=e.texture,s=!0;return this._renderer.type===Me.WEBGL&&(s=this._renderer.context.supports.nonPowOf2wrapping),t.canBatch=i.textureMatrix.isSimple&&(s||i.source.isPowerOfTwo),t.canBatch}};ko.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"tilingSprite"}});var mm=p(()=>{P();kT();O.add(ko)});var AT,BT,RT=p(()=>{ye();Yu();AT=class PT extends Ls{constructor(...e){super({});let t=e[0]??{};typeof t=="number"&&(z($,"PlaneGeometry constructor changed please use { width, height, verticesX, verticesY } instead"),t={width:t,height:e[1],verticesX:e[2],verticesY:e[3]}),this.build(t)}build(e){e={...PT.defaultOptions,...e},this.verticesX=this.verticesX??e.verticesX,this.verticesY=this.verticesY??e.verticesY,this.width=this.width??e.width,this.height=this.height??e.height;let t=this.verticesX*this.verticesY,i=[],s=[],n=[],o=this.verticesX-1,a=this.verticesY-1,c=this.width/o,u=this.height/a;for(let h=0;h<t;h++){let f=h%this.verticesX,d=h/this.verticesX|0;i.push(f*c,d*u),s.push(f/o,d/a)}let l=o*a;for(let h=0;h<l;h++){let f=h%o,d=h/o|0,m=d*this.verticesX+f,x=d*this.verticesX+f+1,g=(d+1)*this.verticesX+f,_=(d+1)*this.verticesX+f+1;n.push(m,x,g,x,_,g)}this.buffers[0].data=new Float32Array(i),this.buffers[1].data=new Float32Array(s),this.indexBuffer.data=new Uint32Array(n),this.buffers[0].update(),this.buffers[1].update(),this.indexBuffer.update()}};AT.defaultOptions={width:100,height:100,verticesX:10,verticesY:10};BT=AT});var DT,IT,FT=p(()=>{RT();DT=class MT extends BT{constructor(e={}){e={...MT.defaultOptions,...e},super({width:e.width,height:e.height,verticesX:4,verticesY:4}),this.update(e)}update(e){this.width=e.width??this.width,this.height=e.height??this.height,this._originalWidth=e.originalWidth??this._originalWidth,this._originalHeight=e.originalHeight??this._originalHeight,this._leftWidth=e.leftWidth??this._leftWidth,this._rightWidth=e.rightWidth??this._rightWidth,this._topHeight=e.topHeight??this._topHeight,this._bottomHeight=e.bottomHeight??this._bottomHeight,this._anchorX=e.anchor?.x,this._anchorY=e.anchor?.y,this.updateUvs(),this.updatePositions()}updatePositions(){let e=this.positions,{width:t,height:i,_leftWidth:s,_rightWidth:n,_topHeight:o,_bottomHeight:a,_anchorX:c,_anchorY:u}=this,l=s+n,h=t>l?1:t/l,f=o+a,d=i>f?1:i/f,m=Math.min(h,d),x=c*t,g=u*i;e[0]=e[8]=e[16]=e[24]=-x,e[2]=e[10]=e[18]=e[26]=s*m-x,e[4]=e[12]=e[20]=e[28]=t-n*m-x,e[6]=e[14]=e[22]=e[30]=t-x,e[1]=e[3]=e[5]=e[7]=-g,e[9]=e[11]=e[13]=e[15]=o*m-g,e[17]=e[19]=e[21]=e[23]=i-a*m-g,e[25]=e[27]=e[29]=e[31]=i-g,this.getBuffer("aPosition").update()}updateUvs(){let e=this.uvs;e[0]=e[8]=e[16]=e[24]=0,e[1]=e[3]=e[5]=e[7]=0,e[6]=e[14]=e[22]=e[30]=1,e[25]=e[27]=e[29]=e[31]=1;let t=1/this._originalWidth,i=1/this._originalHeight;e[2]=e[10]=e[18]=e[26]=t*this._leftWidth,e[9]=e[11]=e[13]=e[15]=i*this._topHeight,e[4]=e[12]=e[20]=e[28]=1-t*this._rightWidth,e[17]=e[19]=e[21]=e[23]=1-i*this._bottomHeight,this.getBuffer("aUV").update()}};DT.defaultOptions={width:100,height:100,leftWidth:10,topHeight:10,rightWidth:10,bottomHeight:10,originalWidth:100,originalHeight:100};IT=DT});var pm,Ao,UT=p(()=>{P();Su();FT();pm=class extends Kr{constructor(){super(),this.geometry=new IT}destroy(){this.geometry.destroy()}},Ao=class{constructor(e){this._renderer=e}addRenderable(e,t){let i=this._getGpuSprite(e);e.didViewUpdate&&this._updateBatchableSprite(e,i),this._renderer.renderPipes.batch.addToBatch(i,t)}updateRenderable(e){let t=this._getGpuSprite(e);e.didViewUpdate&&this._updateBatchableSprite(e,t),t._batcher.updateElement(t)}validateRenderable(e){let t=this._getGpuSprite(e);return!t._batcher.checkAndUpdateTexture(t,e._texture)}_updateBatchableSprite(e,t){t.geometry.update(e),t.setTexture(e._texture)}_getGpuSprite(e){return e._gpuData[this._renderer.uid]||this._initGPUSprite(e)}_initGPUSprite(e){let t=e._gpuData[this._renderer.uid]=new pm,i=t;return i.renderable=e,i.transform=e.groupTransform,i.texture=e._texture,i.roundPixels=this._renderer._roundPixels|e._roundPixels,e.didViewUpdate||this._updateBatchableSprite(e,i),t}destroy(){this._renderer=null}};Ao.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"nineSliceSprite"}});var gm=p(()=>{P();UT();O.add(Ao)});var Po,OT=p(()=>{P();Po=class{constructor(e){this._renderer=e}push(e,t,i){this._renderer.renderPipes.batch.break(i),i.add({renderPipeId:"filter",canBundle:!1,action:"pushFilter",container:t,filterEffect:e})}pop(e,t,i){this._renderer.renderPipes.batch.break(i),i.add({renderPipeId:"filter",action:"popFilter",canBundle:!1})}execute(e){e.action==="pushFilter"?this._renderer.filter.push(e):e.action==="popFilter"&&this._renderer.filter.pop()}destroy(){this._renderer=null}};Po.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"filter"}});function GT(r,e){e.clear();let t=e.matrix;for(let i=0;i<r.length;i++){let s=r[i];s.globalDisplayStatus<7||(e.matrix=s.worldTransform,e.addBounds(s.bounds))}return e.matrix=t,e}var NT=p(()=>{"use strict"});var TP,xm,Bo,LT=p(()=>{P();ee();$r();xs();rt();le();Lr();Jt();ot();NT();ge();TP=new vt({attributes:{aPosition:{buffer:new Float32Array([0,0,1,0,1,1,0,1]),format:"float32x2",stride:8,offset:0}},indexBuffer:new Uint32Array([0,1,2,0,2,3])}),xm=class{constructor(){this.skip=!1,this.inputTexture=null,this.backTexture=null,this.filters=null,this.bounds=new ae,this.container=null,this.blendRequired=!1,this.outputRenderSurface=null,this.outputOffset={x:0,y:0},this.globalFrame={x:0,y:0,width:0,height:0}}},Bo=class{constructor(e){this._filterStackIndex=0,this._filterStack=[],this._filterGlobalUniforms=new ce({uInputSize:{value:new Float32Array(4),type:"vec4<f32>"},uInputPixel:{value:new Float32Array(4),type:"vec4<f32>"},uInputClamp:{value:new Float32Array(4),type:"vec4<f32>"},uOutputFrame:{value:new Float32Array(4),type:"vec4<f32>"},uGlobalFrame:{value:new Float32Array(4),type:"vec4<f32>"},uOutputTexture:{value:new Float32Array(4),type:"vec4<f32>"}}),this._globalFilterBindGroup=new Ne({}),this.renderer=e}get activeBackTexture(){return this._activeFilterData?.backTexture}push(e){let t=this.renderer,i=e.filterEffect.filters,s=this._pushFilterData();s.skip=!1,s.filters=i,s.container=e.container,s.outputRenderSurface=t.renderTarget.renderSurface;let n=t.renderTarget.renderTarget.colorTexture.source,o=n.resolution,a=n.antialias;if(i.length===0){s.skip=!0;return}let c=s.bounds;if(e.renderables?GT(e.renderables,c):e.filterEffect.filterArea?(c.clear(),c.addRect(e.filterEffect.filterArea),c.applyMatrix(e.container.worldTransform)):e.container.getFastGlobalBounds(!0,c),e.container){let x=(e.container.renderGroup||e.container.parentRenderGroup).cacheToLocalTransform;x&&c.applyMatrix(x)}if(this._calculateFilterBounds(s,t.renderTarget.rootViewPort,a,o,1),s.skip)return;let u=this._getPreviousFilterData(),l=o,h=0,f=0;u&&(h=u.bounds.minX,f=u.bounds.minY,l=u.inputTexture.source._resolution),s.outputOffset.x=c.minX-h,s.outputOffset.y=c.minY-f;let d=s.globalFrame;if(d.x=h*l,d.y=f*l,d.width=n.width*l,d.height=n.height*l,s.backTexture=D.EMPTY,s.blendRequired){t.renderTarget.finishRenderPass();let m=t.renderTarget.getRenderTarget(s.outputRenderSurface);s.backTexture=this.getBackTexture(m,c,u?.bounds)}s.inputTexture=Te.getOptimalTexture(c.width,c.height,s.resolution,s.antialias),t.renderTarget.bind(s.inputTexture,!0),t.globalUniforms.push({offset:c})}generateFilteredTexture({texture:e,filters:t}){let i=this._pushFilterData();this._activeFilterData=i,i.skip=!1,i.filters=t;let s=e.source,n=s.resolution,o=s.antialias;if(t.length===0)return i.skip=!0,e;let a=i.bounds;if(a.addRect(e.frame),this._calculateFilterBounds(i,a.rectangle,o,n,0),i.skip)return e;let c=n,u=0,l=0;i.outputOffset.x=-a.minX,i.outputOffset.y=-a.minY;let h=i.globalFrame;h.x=u*c,h.y=l*c,h.width=s.width*c,h.height=s.height*c,i.outputRenderSurface=Te.getOptimalTexture(a.width,a.height,i.resolution,i.antialias),i.backTexture=D.EMPTY,i.inputTexture=e,this.renderer.renderTarget.finishRenderPass(),this._applyFiltersToTexture(i,!0);let d=i.outputRenderSurface;return d.source.alphaMode="premultiplied-alpha",d}pop(){let e=this.renderer,t=this._popFilterData();t.skip||(e.globalUniforms.pop(),e.renderTarget.finishRenderPass(),this._activeFilterData=t,this._applyFiltersToTexture(t,!1),t.blendRequired&&Te.returnTexture(t.backTexture),Te.returnTexture(t.inputTexture))}getBackTexture(e,t,i){let s=e.colorTexture.source._resolution,n=Te.getOptimalTexture(t.width,t.height,s,!1),o=t.minX,a=t.minY;i&&(o-=i.minX,a-=i.minY),o=Math.floor(o*s),a=Math.floor(a*s);let c=Math.ceil(t.width*s),u=Math.ceil(t.height*s);return this.renderer.renderTarget.copyToTexture(e,n,{x:o,y:a},{width:c,height:u},{x:0,y:0}),n}applyFilter(e,t,i,s){let n=this.renderer,o=this._activeFilterData,a=o.outputRenderSurface,c=this._filterGlobalUniforms,u=c.uniforms,l=u.uOutputFrame,h=u.uInputSize,f=u.uInputPixel,d=u.uInputClamp,m=u.uGlobalFrame,x=u.uOutputTexture;a===i?(l[0]=o.outputOffset.x,l[1]=o.outputOffset.y):(l[0]=0,l[1]=0),l[2]=t.frame.width,l[3]=t.frame.height,h[0]=t.source.width,h[1]=t.source.height,h[2]=1/h[0],h[3]=1/h[1],f[0]=t.source.pixelWidth,f[1]=t.source.pixelHeight,f[2]=1/f[0],f[3]=1/f[1],d[0]=.5*f[2],d[1]=.5*f[3],d[2]=t.frame.width*h[2]-.5*f[2],d[3]=t.frame.height*h[3]-.5*f[3],m[0]=o.globalFrame.x,m[1]=o.globalFrame.y,m[2]=o.globalFrame.width,m[3]=o.globalFrame.height,i instanceof D&&(i.source.resource=null);let g=this.renderer.renderTarget.getRenderTarget(i);if(n.renderTarget.bind(i,!!s),i instanceof D?(x[0]=i.frame.width,x[1]=i.frame.height):(x[0]=g.width,x[1]=g.height),x[2]=g.isRoot?-1:1,c.update(),n.renderPipes.uniformBatch){let _=n.renderPipes.uniformBatch.getUboResource(c);this._globalFilterBindGroup.setResource(_,0)}else this._globalFilterBindGroup.setResource(c,0);this._globalFilterBindGroup.setResource(t.source,1),this._globalFilterBindGroup.setResource(t.source.style,2),e.groups[0]=this._globalFilterBindGroup,n.encoder.draw({geometry:TP,shader:e,state:e._state,topology:"triangle-list"}),n.type===Me.WEBGL&&n.renderTarget.finishRenderPass()}calculateSpriteMatrix(e,t){let i=this._activeFilterData,s=e.set(i.inputTexture._source.width,0,0,i.inputTexture._source.height,i.bounds.minX,i.bounds.minY),n=t.worldTransform.copyTo(R.shared),o=t.renderGroup||t.parentRenderGroup;return o&&o.cacheToLocalTransform&&n.prepend(o.cacheToLocalTransform),n.invert(),s.prepend(n),s.scale(1/t.texture.frame.width,1/t.texture.frame.height),s.translate(t.anchor.x,t.anchor.y),s}destroy(){}_applyFiltersToTexture(e,t){let i=e.inputTexture,s=e.bounds,n=e.filters;if(this._globalFilterBindGroup.setResource(i.source.style,2),this._globalFilterBindGroup.setResource(e.backTexture.source,3),n.length===1)n[0].apply(this,i,e.outputRenderSurface,t);else{let o=e.inputTexture,a=Te.getOptimalTexture(s.width,s.height,o.source._resolution,!1),c=a,u=0;for(u=0;u<n.length-1;++u){n[u].apply(this,o,c,!0);let h=o;o=c,c=h}n[u].apply(this,o,e.outputRenderSurface,t),Te.returnTexture(a)}}_calculateFilterBounds(e,t,i,s,n){let o=this.renderer,a=e.bounds,c=e.filters,u=1/0,l=0,h=!0,f=!1,d=!1,m=!0;for(let x=0;x<c.length;x++){let g=c[x];if(u=Math.min(u,g.resolution==="inherit"?s:g.resolution),l+=g.padding,g.antialias==="off"?h=!1:g.antialias==="inherit"&&h&&(h=i),g.clipToViewport||(m=!1),!!!(g.compatibleRenderers&o.type)){d=!1;break}if(g.blendRequired&&!(o.backBuffer?.useBackBuffer??!0)){G("Blend filter requires backBuffer on WebGL renderer to be enabled. Set `useBackBuffer: true` in the renderer options."),d=!1;break}d=g.enabled||d,f||(f=g.blendRequired)}if(!d){e.skip=!0;return}if(m&&a.fitBounds(0,t.width/s,0,t.height/s),a.scale(u).ceil().scale(1/u).pad((l|0)*n),!a.isPositive){e.skip=!0;return}e.antialias=h,e.resolution=u,e.blendRequired=f}_popFilterData(){return this._filterStackIndex--,this._filterStack[this._filterStackIndex]}_getPreviousFilterData(){let e,t=this._filterStackIndex-1;for(;t>1&&(t--,e=this._filterStack[t],!!e.skip););return e}_pushFilterData(){let e=this._filterStack[this._filterStackIndex];return e||(e=this._filterStack[this._filterStackIndex]=new xm),this._filterStackIndex++,e}};Bo.extension={type:[b.WebGLSystem,b.WebGPUSystem],name:"filter"}});var _m=p(()=>{P();OT();LT();O.add(Bo);O.add(Po)});var wP={};var zT=p(()=>{b0();pd();A0();B0();Jc();ou();Cf();Ef();Bf();em();am();lm();mm();gm();_m()});var SP={};var HT=p(()=>{pd();Jc();ou();Cf();Ef();Bf();em();am();lm();mm();gm();_m()});var $T,qT,jT=p(()=>{Ai();bs();Ut();Ot();$T=class bm extends Ee{constructor(e){e={...bm.defaultOptions,...e},super(e),this.enabled=!0,this._state=Ae.for2d(),this.blendMode=e.blendMode,this.padding=e.padding,typeof e.antialias=="boolean"?this.antialias=e.antialias?"on":"off":this.antialias=e.antialias,this.resolution=e.resolution,this.blendRequired=e.blendRequired,this.clipToViewport=e.clipToViewport,this.addResource("uTexture",0,1)}apply(e,t,i,s){e.applyFilter(this,t,i,s)}get blendMode(){return this._state.blendMode}set blendMode(e){this._state.blendMode=e}static from(e){let{gpu:t,gl:i,...s}=e,n,o;return t&&(n=Et.from(t)),i&&(o=Ct.from(i)),new bm({gpuProgram:n,glProgram:o,...s})}};$T.defaultOptions={blendMode:"normal",resolution:1,padding:0,antialias:"off",blendRequired:!1,clipToViewport:!0};qT=$T});async function XT(r){if(!r)for(let e=0;e<ym.length;e++){let t=ym[e];if(t.value.test()){await t.value.load();return}}}var ym,YT=p(()=>{P();ym=[];O.handleByNamedList(b.Environment,ym)});function Ju(){if(typeof Ro=="boolean")return Ro;try{Ro=new Function("param1","param2","param3","return param1[param2] === param3;")({a:"b"},"a","b")===!0}catch{Ro=!1}return Ro}var Ro,Tm=p(()=>{"use strict"});var Le,Hs=p(()=>{"use strict";Le=(r=>(r[r.NONE=0]="NONE",r[r.COLOR=16384]="COLOR",r[r.STENCIL=1024]="STENCIL",r[r.DEPTH=256]="DEPTH",r[r.COLOR_DEPTH=16640]="COLOR_DEPTH",r[r.COLOR_STENCIL=17408]="COLOR_STENCIL",r[r.DEPTH_STENCIL=1280]="DEPTH_STENCIL",r[r.ALL=17664]="ALL",r))(Le||{})});var Ws,wm=p(()=>{"use strict";Ws=class{constructor(e){this.items=[],this._name=e}emit(e,t,i,s,n,o,a,c){let{name:u,items:l}=this;for(let h=0,f=l.length;h<f;h++)l[h][u](e,t,i,s,n,o,a,c);return this}add(e){return e[this._name]&&(this.remove(e),this.items.push(e)),this}remove(e){let t=this.items.indexOf(e);return t!==-1&&this.items.splice(t,1),this}contains(e){return this.items.indexOf(e)!==-1}removeAll(){return this.items.length=0,this}destroy(){this.removeAll(),this.items=null,this._name=null}get empty(){return this.items.length===0}get name(){return this._name}}});var vP,KT,Zr,Do=p(()=>{He();YT();Ht();Tm();Oe();ye();Hs();wm();Ve();vP=["init","destroy","contextChange","resolutionChange","resetState","renderEnd","renderStart","render","update","postrender","prerender"],KT=class QT extends oe{constructor(e){super(),this.uid=K("renderer"),this.runners=Object.create(null),this.renderPipes=Object.create(null),this._initOptions={},this._systemsHash=Object.create(null),this.type=e.type,this.name=e.name,this.config=e;let t=[...vP,...this.config.runners??[]];this._addRunners(...t),this._unsafeEvalCheck()}async init(e={}){let t=e.skipExtensionImports===!0?!0:e.manageImports===!1;await XT(t),this._addSystems(this.config.systems),this._addPipes(this.config.renderPipes,this.config.renderPipeAdaptors);for(let i in this._systemsHash)e={...this._systemsHash[i].constructor.defaultOptions,...e};e={...QT.defaultOptions,...e},this._roundPixels=e.roundPixels?1:0;for(let i=0;i<this.runners.init.items.length;i++)await this.runners.init.items[i].init(e);this._initOptions=e}render(e,t){let i=e;if(i instanceof we&&(i={container:i},t&&(z($,"passing a second argument is deprecated, please use render options instead"),i.target=t.renderTexture)),i.target||(i.target=this.view.renderTarget),i.target===this.view.renderTarget&&(this._lastObjectRendered=i.container,i.clearColor??(i.clearColor=this.background.colorRgba),i.clear??(i.clear=this.background.clearBeforeRender)),i.clearColor){let s=Array.isArray(i.clearColor)&&i.clearColor.length===4;i.clearColor=s?i.clearColor:q.shared.setValue(i.clearColor).toArray()}i.transform||(i.container.updateLocalTransform(),i.transform=i.container.localTransform),i.container.enableRenderGroup(),this.runners.prerender.emit(i),this.runners.renderStart.emit(i),this.runners.render.emit(i),this.runners.renderEnd.emit(i),this.runners.postrender.emit(i)}resize(e,t,i){let s=this.view.resolution;this.view.resize(e,t,i),this.emit("resize",this.view.screen.width,this.view.screen.height,this.view.resolution),i!==void 0&&i!==s&&this.runners.resolutionChange.emit(i)}clear(e={}){let t=this;e.target||(e.target=t.renderTarget.renderTarget),e.clearColor||(e.clearColor=this.background.colorRgba),e.clear??(e.clear=Le.ALL);let{clear:i,clearColor:s,target:n}=e;q.shared.setValue(s??this.background.colorRgba),t.renderTarget.clear(n,i,q.shared.toArray())}get resolution(){return this.view.resolution}set resolution(e){this.view.resolution=e,this.runners.resolutionChange.emit(e)}get width(){return this.view.texture.frame.width}get height(){return this.view.texture.frame.height}get canvas(){return this.view.canvas}get lastObjectRendered(){return this._lastObjectRendered}get renderingToScreen(){return this.renderTarget.renderingToScreen}get screen(){return this.view.screen}_addRunners(...e){e.forEach(t=>{this.runners[t]=new Ws(t)})}_addSystems(e){let t;for(t in e){let i=e[t];this._addSystem(i.value,i.name)}}_addSystem(e,t){let i=new e(this);if(this[t])throw new Error(`Whoops! The name "${t}" is already in use`);this[t]=i,this._systemsHash[t]=i;for(let s in this.runners)this.runners[s].add(i);return this}_addPipes(e,t){let i=t.reduce((s,n)=>(s[n.name]=n.value,s),{});e.forEach(s=>{let n=s.value,o=s.name,a=i[o];this.renderPipes[o]=new n(this,a?new a:null)})}destroy(e=!1){this.runners.destroy.items.reverse(),this.runners.destroy.emit(e),Object.values(this.runners).forEach(t=>{t.destroy()}),this._systemsHash=null,this.renderPipes=null}generateTexture(e){return this.textureGenerator.generateTexture(e)}get roundPixels(){return!!this._roundPixels}_unsafeEvalCheck(){if(!Ju())throw new Error("Current environment does not allow unsafe-eval, please use pixi.js/unsafe-eval module to enable support.")}resetState(){this.runners.resetState.emit()}};KT.defaultOptions={resolution:1,failIfMajorPerformanceCaveat:!1,roundPixels:!1};Zr=KT});var Mo,ew=p(()=>{P();ee();au();Xr();oo();ao();Vs();Yr();Ut();rt();Mo=class{constructor(){this._maxTextures=0}contextChange(e){let t=new ce({uTransformMatrix:{value:new R,type:"mat3x3<f32>"},uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uRound:{value:0,type:"f32"}});this._maxTextures=e.limits.maxBatchableTextures;let i=Yt({name:"graphics",bits:[ys,ws(this._maxTextures),pT,Qt]});this.shader=new Ee({gpuProgram:i,resources:{localUniforms:t}})}execute(e,t){let i=t.context,s=i.customShader||this.shader,n=e.renderer,o=n.graphicsContext,{batcher:a,instructions:c}=o.getContextRenderData(i),u=n.encoder;u.setGeometry(a.geometry,s.gpuProgram);let l=n.globalUniforms.bindGroup;u.setBindGroup(0,l,s.gpuProgram);let h=n.renderPipes.uniformBatch.getUniformBindGroup(s.resources.localUniforms,!0);u.setBindGroup(2,h,s.gpuProgram);let f=c.instructions,d=null;for(let m=0;m<c.instructionSize;m++){let x=f[m];if(x.topology!==d&&(d=x.topology,u.setPipelineFromGeometryProgramAndState(a.geometry,s.gpuProgram,e.state,x.topology)),s.groups[1]=x.bindGroup,!x.gpuBindGroup){let g=x.textures;x.bindGroup=ps(g.textures,g.count,this._maxTextures),x.gpuBindGroup=n.bindGroup.getBindGroup(x.bindGroup,s.gpuProgram,1)}u.setBindGroup(1,x.bindGroup,s.gpuProgram),u.renderPassEncoder.drawIndexed(x.size,1,x.start)}}destroy(){this.shader.destroy(!0),this.shader=null}};Mo.extension={type:[b.WebGPUPipesAdaptor],name:"graphics"}});var tw,rw,Sm=p(()=>{"use strict";tw={name:"texture-bit",vertex:{header:`
570
570
 
571
571
  struct TextureUniforms {
572
572
  uTextureMatrix:mat3x3<f32>,
@@ -582,7 +582,7 @@ fn mainFragment(
582
582
 
583
583
  `,main:`
584
584
  outColor = textureSample(uTexture, uSampler, vUV);
585
- `}},kS={name:"texture-bit",vertex:{header:`
585
+ `}},rw={name:"texture-bit",vertex:{header:`
586
586
  uniform mat3 uTextureMatrix;
587
587
  `,main:`
588
588
  uv = (uTextureMatrix * vec3(uv, 1.0)).xy;
@@ -592,7 +592,7 @@ fn mainFragment(
592
592
 
593
593
  `,main:`
594
594
  outColor = texture(uTexture, vUV);
595
- `}}});var sa,AS=p(()=>{B();te();Qr();un();Zr();ap();Ot();le();pe();sa=class{init(){let e=Jt({name:"mesh",bits:[es,ES,tr]});this._shader=new ke({gpuProgram:e,resources:{uTexture:M.EMPTY._source,uSampler:M.EMPTY._source.style,textureUniforms:{uTextureMatrix:{type:"mat3x3<f32>",value:new R}}}})}execute(e,t){let i=e.renderer,s=t._shader;if(!s)s=this._shader,s.groups[2]=i.texture.getTextureBindGroup(t.texture);else if(!s.gpuProgram){N("Mesh shader has no gpuProgram",t.shader);return}let n=s.gpuProgram;if(n.autoAssignGlobalUniforms&&(s.groups[0]=i.globalUniforms.bindGroup),n.autoAssignLocalUniforms){let o=e.localUniforms;s.groups[1]=i.renderPipes.uniformBatch.getUniformBindGroup(o,!0)}i.encoder.draw({geometry:t._geometry,shader:s,state:t.state})}destroy(){this._shader.destroy(!0),this._shader=null}};sa.extension={type:[b.WebGPUPipesAdaptor],name:"mesh"}});var Nl,na,PS=p(()=>{B();Gt();Wu();Nl=Pe.for2d(),na=class{start(e,t,i){let s=e.renderer,n=s.encoder,o=i.gpuProgram;this._shader=i,this._geometry=t,n.setGeometry(t,o),Nl.blendMode="normal",s.pipeline.getPipeline(t,o,Nl);let a=s.globalUniforms.bindGroup;n.resetBindGroup(1),n.setBindGroup(0,a,o)}execute(e,t){let i=this._shader.gpuProgram,s=e.renderer,n=s.encoder;if(!t.bindGroup){let c=t.textures;t.bindGroup=Fs(c.textures,c.count,s.limits.maxBatchableTextures)}Nl.blendMode=t.blendMode;let o=s.bindGroup.getBindGroup(t.bindGroup,i,1),a=s.pipeline.getPipeline(this._geometry,i,Nl,t.topology);t.bindGroup._touch(s.textureGC.count),n.setPipeline(a),n.renderPassEncoder.setBindGroup(1,o),n.renderPassEncoder.drawIndexed(t.size,1,t.start)}};na.extension={type:[b.WebGPUPipesAdaptor],name:"batch"}});var oa,BS=p(()=>{B();oa=class{constructor(e){this._renderer=e}updateRenderable(){}destroyRenderable(){}validateRenderable(){return!1}addRenderable(e,t){this._renderer.renderPipes.batch.break(t),t.add(e)}execute(e){e.isRenderable&&e.render(this._renderer)}destroy(){this._renderer=null}};oa.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"customRender"}});function aa(r,e){let t=r.instructionSet,i=t.instructions;for(let s=0;s<t.instructionSize;s++){let n=i[s];e[n.renderPipeId].execute(n)}}var cp=p(()=>{"use strict"});var eR,ca,RS=p(()=>{B();te();br();Ho();cp();eR=new R,ca=class{constructor(e){this._renderer=e}addRenderGroup(e,t){e.isCachedAsTexture?this._addRenderableCacheAsTexture(e,t):this._addRenderableDirect(e,t)}execute(e){e.isRenderable&&(e.isCachedAsTexture?this._executeCacheAsTexture(e):this._executeDirect(e))}destroy(){this._renderer=null}_addRenderableDirect(e,t){this._renderer.renderPipes.batch.break(t),e._batchableRenderGroup&&(me.return(e._batchableRenderGroup),e._batchableRenderGroup=null),t.add(e)}_addRenderableCacheAsTexture(e,t){let i=e._batchableRenderGroup??(e._batchableRenderGroup=me.get(nr));i.renderable=e.root,i.transform=e.root.relativeGroupTransform,i.texture=e.texture,i.bounds=e._textureBounds,t.add(e),this._renderer.renderPipes.batch.addToBatch(i,t)}_executeCacheAsTexture(e){if(e.textureNeedsUpdate){e.textureNeedsUpdate=!1;let t=eR.identity().translate(-e._textureBounds.x,-e._textureBounds.y);this._renderer.renderTarget.push(e.texture,!0,null,e.texture.frame),this._renderer.globalUniforms.push({worldTransformMatrix:t,worldColor:4294967295}),aa(e,this._renderer.renderPipes),this._renderer.renderTarget.finishRenderPass(),this._renderer.renderTarget.pop(),this._renderer.globalUniforms.pop()}e._batchableRenderGroup._batcher.updateElement(e._batchableRenderGroup),e._batchableRenderGroup._batcher.geometry.buffers[0].update()}_executeDirect(e){this._renderer.globalUniforms.push({worldTransformMatrix:e.inverseParentTextureTransform,worldColor:e.worldColorAlpha}),aa(e,this._renderer.renderPipes),this._renderer.globalUniforms.pop()}};ca.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"renderGroup"}});function ua(r,e){e||(e=0);for(let t=e;t<r.length&&r[t];t++)r[t]=null}var up=p(()=>{"use strict"});function lp(r,e=!1){rR(r);let t=r.childrenToUpdate,i=r.updateTick++;for(let s in t){let n=Number(s),o=t[s],a=o.list,c=o.index;for(let u=0;u<c;u++){let l=a[u];l.parentRenderGroup===r&&l.relativeRenderGroupDepth===n&&IS(l,i,0)}ua(a,c),o.index=0}if(e)for(let s=0;s<r.renderGroupChildren.length;s++)lp(r.renderGroupChildren[s],e)}function rR(r){let e=r.root,t;if(r.renderGroupParent){let i=r.renderGroupParent;r.worldTransform.appendFrom(e.relativeGroupTransform,i.worldTransform),r.worldColor=ks(e.groupColor,i.worldColor),t=e.groupAlpha*i.worldAlpha}else r.worldTransform.copyFrom(e.localTransform),r.worldColor=e.localColor,t=e.localAlpha;t=t<0?0:t>1?1:t,r.worldAlpha=t,r.worldColorAlpha=r.worldColor+((t*255|0)<<24)}function IS(r,e,t){if(e===r.updateTick)return;r.updateTick=e,r.didChange=!1;let i=r.localTransform;r.updateLocalTransform();let s=r.parent;if(s&&!s.renderGroup?(t|=r._updateFlags,r.relativeGroupTransform.appendFrom(i,s.relativeGroupTransform),t&DS&&MS(r,s,t)):(t=r._updateFlags,r.relativeGroupTransform.copyFrom(i),t&DS&&MS(r,tR,t)),!r.renderGroup){let n=r.children,o=n.length;for(let u=0;u<o;u++)IS(n[u],e,t);let a=r.parentRenderGroup,c=r;c.renderPipeId&&!a.structureDidChange&&a.updateRenderable(c)}}function MS(r,e,t){if(t&Rs){r.groupColor=ks(r.localColor,e.groupColor);let i=r.localAlpha*e.groupAlpha;i=i<0?0:i>1?1:i,r.groupAlpha=i,r.groupColorAlpha=r.groupColor+((i*255|0)<<24)}t&fo&&(r.groupBlendMode=r.localBlendMode==="inherit"?e.groupBlendMode:r.localBlendMode),t&Vi&&(r.globalDisplayStatus=r.localDisplayStatus&e.globalDisplayStatus),r._updateFlags=0}var tR,DS,FS=p(()=>{jt();up();Ud();tR=new we,DS=Vi|Rs|fo});function US(r,e){let{list:t,index:i}=r.childrenRenderablesToUpdate,s=!1;for(let n=0;n<i;n++){let o=t[n];if(s=e[o.renderPipeId].validateRenderable(o),s)break}return r.structureDidChange=s,s}var OS=p(()=>{"use strict"});var iR,la,GS=p(()=>{B();te();Hr();at();up();cp();FS();OS();iR=new R,la=class{constructor(e){this._renderer=e}render({container:e,transform:t}){let i=e.parent,s=e.renderGroup.renderGroupParent;e.parent=null,e.renderGroup.renderGroupParent=null;let n=this._renderer,o=iR;t&&(o=o.copyFrom(e.renderGroup.localTransform),e.renderGroup.localTransform.copyFrom(t));let a=n.renderPipes;this._updateCachedRenderGroups(e.renderGroup,null),this._updateRenderGroups(e.renderGroup),n.globalUniforms.start({worldTransformMatrix:t?e.renderGroup.localTransform:e.renderGroup.worldTransform,worldColor:e.renderGroup.worldColorAlpha}),aa(e.renderGroup,a),a.uniformBatch&&a.uniformBatch.renderEnd(),t&&e.renderGroup.localTransform.copyFrom(o),e.parent=i,e.renderGroup.renderGroupParent=s}destroy(){this._renderer=null}_updateCachedRenderGroups(e,t){if(e.isCachedAsTexture){if(!e.updateCacheTexture)return;t=e}e._parentCacheAsTextureRenderGroup=t;for(let i=e.renderGroupChildren.length-1;i>=0;i--)this._updateCachedRenderGroups(e.renderGroupChildren[i],t);if(e.invalidateMatrices(),e.isCachedAsTexture){if(e.textureNeedsUpdate){let i=e.root.getLocalBounds();i.ceil();let s=e.texture;e.texture&&Te.returnTexture(e.texture);let n=this._renderer,o=e.textureOptions.resolution||n.view.resolution,a=e.textureOptions.antialias??n.view.antialias;e.texture=Te.getOptimalTexture(i.width,i.height,o,a),e._textureBounds||(e._textureBounds=new ae),e._textureBounds.copyFrom(i),s!==e.texture&&e.renderGroupParent&&(e.renderGroupParent.structureDidChange=!0)}}else e.texture&&(Te.returnTexture(e.texture),e.texture=null)}_updateRenderGroups(e){let t=this._renderer,i=t.renderPipes;if(e.runOnRender(t),e.instructionSet.renderPipes=i,e.structureDidChange?ua(e.childrenRenderablesToUpdate.list,0):US(e,i),lp(e),e.structureDidChange?(e.structureDidChange=!1,this._buildInstructions(e,t)):this._updateRenderables(e),e.childrenRenderablesToUpdate.index=0,t.renderPipes.batch.upload(e.instructionSet),!(e.isCachedAsTexture&&!e.textureNeedsUpdate))for(let s=0;s<e.renderGroupChildren.length;s++)this._updateRenderGroups(e.renderGroupChildren[s])}_updateRenderables(e){let{list:t,index:i}=e.childrenRenderablesToUpdate;for(let s=0;s<i;s++){let n=t[s];n.didViewUpdate&&e.updateRenderable(n)}ua(t,i)}_buildInstructions(e,t){let i=e.root,s=e.instructionSet;s.reset();let n=t.renderPipes?t:t.batch.renderer,o=n.renderPipes;o.batch.buildStart(s),o.blendMode.buildStart(),o.colorMask.buildStart(),i.sortableChildren&&i.sortChildren(),i.collectRenderablesWithEffects(s,n,null),o.batch.buildEnd(s),o.blendMode.buildEnd(s)}};la.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"renderGroup"}});var ha,NS=p(()=>{B();Ho();ha=class{constructor(e){this._renderer=e}addRenderable(e,t){let i=this._getGpuSprite(e);e.didViewUpdate&&this._updateBatchableSprite(e,i),this._renderer.renderPipes.batch.addToBatch(i,t)}updateRenderable(e){let t=this._getGpuSprite(e);e.didViewUpdate&&this._updateBatchableSprite(e,t),t._batcher.updateElement(t)}validateRenderable(e){let t=this._getGpuSprite(e);return!t._batcher.checkAndUpdateTexture(t,e._texture)}_updateBatchableSprite(e,t){t.bounds=e.visualBounds,t.texture=e._texture}_getGpuSprite(e){return e._gpuData[this._renderer.uid]||this._initGPUSprite(e)}_initGPUSprite(e){let t=new nr;return t.renderable=e,t.transform=e.groupTransform,t.texture=e._texture,t.bounds=e.visualBounds,t.roundPixels=this._renderer._roundPixels|e._roundPixels,e._gpuData[this._renderer.uid]=t,t}destroy(){this._renderer=null}};ha.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"sprite"}});var dn,hp=p(()=>{Ve();dn="8.10.1"});var dp,da,LS=p(()=>{B();hp();dp=class{static init(){globalThis.__PIXI_APP_INIT__?.(this,dn)}static destroy(){}};dp.extension=b.Application;da=class{constructor(e){this._renderer=e}init(){globalThis.__PIXI_RENDERER_INIT__?.(this._renderer,dn)}destroy(){this._renderer=null}};da.extension={type:[b.WebGLSystem,b.WebGPUSystem],name:"initHook",priority:-10}});var fp,mp,VS=p(()=>{B();Gt();Hf();fp=class zS{constructor(e,t){this.state=Pe.for2d(),this._batchersByInstructionSet=Object.create(null),this._activeBatches=Object.create(null),this.renderer=e,this._adaptor=t,this._adaptor.init?.(this)}static getBatcher(e){return new this._availableBatchers[e]}buildStart(e){let t=this._batchersByInstructionSet[e.uid];t||(t=this._batchersByInstructionSet[e.uid]=Object.create(null),t.default||(t.default=new Mo({maxTextures:this.renderer.limits.maxBatchableTextures}))),this._activeBatches=t,this._activeBatch=this._activeBatches.default;for(let i in this._activeBatches)this._activeBatches[i].begin()}addToBatch(e,t){if(this._activeBatch.name!==e.batcherName){this._activeBatch.break(t);let i=this._activeBatches[e.batcherName];i||(i=this._activeBatches[e.batcherName]=zS.getBatcher(e.batcherName),i.begin()),this._activeBatch=i}this._activeBatch.add(e)}break(e){this._activeBatch.break(e)}buildEnd(e){this._activeBatch.break(e);let t=this._activeBatches;for(let i in t){let s=t[i],n=s.geometry;n.indexBuffer.setDataWithSize(s.indexBuffer,s.indexSize,!0),n.buffers[0].setDataWithSize(s.attributeBuffer.float32View,s.attributeSize,!1)}}upload(e){let t=this._batchersByInstructionSet[e.uid];for(let i in t){let s=t[i],n=s.geometry;s.dirty&&(s.dirty=!1,n.buffers[0].update(s.attributeSize*4))}}execute(e){if(e.action==="startBatch"){let t=e.batcher,i=t.geometry,s=t.shader;this._adaptor.start(this,i,s)}this._adaptor.execute(this,e)}destroy(){this.state=null,this.renderer=null,this._adaptor=null;for(let e in this._activeBatches)this._activeBatches[e].destroy();this._activeBatches=null}};fp.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"batch"};fp._availableBatchers=Object.create(null);mp=fp;O.handleByMap(b.Batcher,mp._availableBatchers);O.add(Mo)});var HS,WS=p(()=>{HS=`in vec2 vMaskCoord;
595
+ `}}});var Io,iw=p(()=>{P();ee();Xr();Vs();Yr();Sm();Ut();le();ge();Io=class{init(){let e=Yt({name:"mesh",bits:[Oi,tw,Qt]});this._shader=new Ee({gpuProgram:e,resources:{uTexture:D.EMPTY._source,uSampler:D.EMPTY._source.style,textureUniforms:{uTextureMatrix:{type:"mat3x3<f32>",value:new R}}}})}execute(e,t){let i=e.renderer,s=t._shader;if(!s)s=this._shader,s.groups[2]=i.texture.getTextureBindGroup(t.texture);else if(!s.gpuProgram){G("Mesh shader has no gpuProgram",t.shader);return}let n=s.gpuProgram;if(n.autoAssignGlobalUniforms&&(s.groups[0]=i.globalUniforms.bindGroup),n.autoAssignLocalUniforms){let o=e.localUniforms;s.groups[1]=i.renderPipes.uniformBatch.getUniformBindGroup(o,!0)}i.encoder.draw({geometry:t._geometry,shader:s,state:t.state})}destroy(){this._shader.destroy(!0),this._shader=null}};Io.extension={type:[b.WebGPUPipesAdaptor],name:"mesh"}});var rl,Fo,sw=p(()=>{P();Ot();au();rl=Ae.for2d(),Fo=class{start(e,t,i){let s=e.renderer,n=s.encoder,o=i.gpuProgram;this._shader=i,this._geometry=t,n.setGeometry(t,o),rl.blendMode="normal",s.pipeline.getPipeline(t,o,rl);let a=s.globalUniforms.bindGroup;n.resetBindGroup(1),n.setBindGroup(0,a,o)}execute(e,t){let i=this._shader.gpuProgram,s=e.renderer,n=s.encoder;if(!t.bindGroup){let c=t.textures;t.bindGroup=ps(c.textures,c.count,s.limits.maxBatchableTextures)}rl.blendMode=t.blendMode;let o=s.bindGroup.getBindGroup(t.bindGroup,i,1),a=s.pipeline.getPipeline(this._geometry,i,rl,t.topology);t.bindGroup._touch(s.textureGC.count),n.setPipeline(a),n.renderPassEncoder.setBindGroup(1,o),n.renderPassEncoder.drawIndexed(t.size,1,t.start)}};Fo.extension={type:[b.WebGPUPipesAdaptor],name:"batch"}});var Uo,nw=p(()=>{P();Uo=class{constructor(e){this._renderer=e}updateRenderable(){}destroyRenderable(){}validateRenderable(){return!1}addRenderable(e,t){this._renderer.renderPipes.batch.break(t),t.add(e)}execute(e){e.isRenderable&&e.render(this._renderer)}destroy(){this._renderer=null}};Uo.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"customRender"}});function Oo(r,e){let t=r.instructionSet,i=t.instructions;for(let s=0;s<t.instructionSize;s++){let n=i[s];e[n.renderPipeId].execute(n)}}var vm=p(()=>{"use strict"});var CP,Go,ow=p(()=>{P();ee();gr();bo();vm();CP=new R,Go=class{constructor(e){this._renderer=e}addRenderGroup(e,t){e.isCachedAsTexture?this._addRenderableCacheAsTexture(e,t):this._addRenderableDirect(e,t)}execute(e){e.isRenderable&&(e.isCachedAsTexture?this._executeCacheAsTexture(e):this._executeDirect(e))}destroy(){this._renderer=null}_addRenderableDirect(e,t){this._renderer.renderPipes.batch.break(t),e._batchableRenderGroup&&(pe.return(e._batchableRenderGroup),e._batchableRenderGroup=null),t.add(e)}_addRenderableCacheAsTexture(e,t){let i=e._batchableRenderGroup??(e._batchableRenderGroup=pe.get(tr));i.renderable=e.root,i.transform=e.root.relativeGroupTransform,i.texture=e.texture,i.bounds=e._textureBounds,t.add(e),this._renderer.renderPipes.batch.addToBatch(i,t)}_executeCacheAsTexture(e){if(e.textureNeedsUpdate){e.textureNeedsUpdate=!1;let t=CP.identity().translate(-e._textureBounds.x,-e._textureBounds.y);this._renderer.renderTarget.push(e.texture,!0,null,e.texture.frame),this._renderer.globalUniforms.push({worldTransformMatrix:t,worldColor:4294967295}),Oo(e,this._renderer.renderPipes),this._renderer.renderTarget.finishRenderPass(),this._renderer.renderTarget.pop(),this._renderer.globalUniforms.pop()}e._batchableRenderGroup._batcher.updateElement(e._batchableRenderGroup),e._batchableRenderGroup._batcher.geometry.buffers[0].update()}_executeDirect(e){this._renderer.globalUniforms.push({worldTransformMatrix:e.inverseParentTextureTransform,worldColor:e.worldColorAlpha}),Oo(e,this._renderer.renderPipes),this._renderer.globalUniforms.pop()}};Go.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"renderGroup"}});function No(r,e){e||(e=0);for(let t=e;t<r.length&&r[t];t++)r[t]=null}var Cm=p(()=>{"use strict"});function Em(r,e=!1){kP(r);let t=r.childrenToUpdate,i=r.updateTick++;for(let s in t){let n=Number(s),o=t[s],a=o.list,c=o.index;for(let u=0;u<c;u++){let l=a[u];l.parentRenderGroup===r&&l.relativeRenderGroupDepth===n&&uw(l,i,0)}No(a,c),o.index=0}if(e)for(let s=0;s<r.renderGroupChildren.length;s++)Em(r.renderGroupChildren[s],e)}function kP(r){let e=r.root,t;if(r.renderGroupParent){let i=r.renderGroupParent;r.worldTransform.appendFrom(e.relativeGroupTransform,i.worldTransform),r.worldColor=as(e.groupColor,i.worldColor),t=e.groupAlpha*i.worldAlpha}else r.worldTransform.copyFrom(e.localTransform),r.worldColor=e.localColor,t=e.localAlpha;t=t<0?0:t>1?1:t,r.worldAlpha=t,r.worldColorAlpha=r.worldColor+((t*255|0)<<24)}function uw(r,e,t){if(e===r.updateTick)return;r.updateTick=e,r.didChange=!1;let i=r.localTransform;r.updateLocalTransform();let s=r.parent;if(s&&!s.renderGroup?(t|=r._updateFlags,r.relativeGroupTransform.appendFrom(i,s.relativeGroupTransform),t&aw&&cw(r,s,t)):(t=r._updateFlags,r.relativeGroupTransform.copyFrom(i),t&aw&&cw(r,EP,t)),!r.renderGroup){let n=r.children,o=n.length;for(let u=0;u<o;u++)uw(n[u],e,t);let a=r.parentRenderGroup,c=r;c.renderPipeId&&!a.structureDidChange&&a.updateRenderable(c)}}function cw(r,e,t){if(t&hs){r.groupColor=as(r.localColor,e.groupColor);let i=r.localAlpha*e.groupAlpha;i=i<0?0:i>1?1:i,r.groupAlpha=i,r.groupColorAlpha=r.groupColor+((i*255|0)<<24)}t&Vn&&(r.groupBlendMode=r.localBlendMode==="inherit"?e.groupBlendMode:r.localBlendMode),t&Ci&&(r.globalDisplayStatus=r.localDisplayStatus&e.globalDisplayStatus),r._updateFlags=0}var EP,aw,lw=p(()=>{Ht();Cm();Zh();EP=new we,aw=Ci|hs|Vn});function hw(r,e){let{list:t,index:i}=r.childrenRenderablesToUpdate,s=!1;for(let n=0;n<i;n++){let o=t[n];if(s=e[o.renderPipeId].validateRenderable(o),s)break}return r.structureDidChange=s,s}var dw=p(()=>{"use strict"});var AP,Lo,fw=p(()=>{P();ee();Lr();ot();Cm();vm();lw();dw();AP=new R,Lo=class{constructor(e){this._renderer=e}render({container:e,transform:t}){let i=e.parent,s=e.renderGroup.renderGroupParent;e.parent=null,e.renderGroup.renderGroupParent=null;let n=this._renderer,o=AP;t&&(o=o.copyFrom(e.renderGroup.localTransform),e.renderGroup.localTransform.copyFrom(t));let a=n.renderPipes;this._updateCachedRenderGroups(e.renderGroup,null),this._updateRenderGroups(e.renderGroup),n.globalUniforms.start({worldTransformMatrix:t?e.renderGroup.localTransform:e.renderGroup.worldTransform,worldColor:e.renderGroup.worldColorAlpha}),Oo(e.renderGroup,a),a.uniformBatch&&a.uniformBatch.renderEnd(),t&&e.renderGroup.localTransform.copyFrom(o),e.parent=i,e.renderGroup.renderGroupParent=s}destroy(){this._renderer=null}_updateCachedRenderGroups(e,t){if(e.isCachedAsTexture){if(!e.updateCacheTexture)return;t=e}e._parentCacheAsTextureRenderGroup=t;for(let i=e.renderGroupChildren.length-1;i>=0;i--)this._updateCachedRenderGroups(e.renderGroupChildren[i],t);if(e.invalidateMatrices(),e.isCachedAsTexture){if(e.textureNeedsUpdate){let i=e.root.getLocalBounds();i.ceil();let s=e.texture;e.texture&&Te.returnTexture(e.texture);let n=this._renderer,o=e.textureOptions.resolution||n.view.resolution,a=e.textureOptions.antialias??n.view.antialias;e.texture=Te.getOptimalTexture(i.width,i.height,o,a),e._textureBounds||(e._textureBounds=new ae),e._textureBounds.copyFrom(i),s!==e.texture&&e.renderGroupParent&&(e.renderGroupParent.structureDidChange=!0)}}else e.texture&&(Te.returnTexture(e.texture),e.texture=null)}_updateRenderGroups(e){let t=this._renderer,i=t.renderPipes;if(e.runOnRender(t),e.instructionSet.renderPipes=i,e.structureDidChange?No(e.childrenRenderablesToUpdate.list,0):hw(e,i),Em(e),e.structureDidChange?(e.structureDidChange=!1,this._buildInstructions(e,t)):this._updateRenderables(e),e.childrenRenderablesToUpdate.index=0,t.renderPipes.batch.upload(e.instructionSet),!(e.isCachedAsTexture&&!e.textureNeedsUpdate))for(let s=0;s<e.renderGroupChildren.length;s++)this._updateRenderGroups(e.renderGroupChildren[s])}_updateRenderables(e){let{list:t,index:i}=e.childrenRenderablesToUpdate;for(let s=0;s<i;s++){let n=t[s];n.didViewUpdate&&e.updateRenderable(n)}No(t,i)}_buildInstructions(e,t){let i=e.root,s=e.instructionSet;s.reset();let n=t.renderPipes?t:t.batch.renderer,o=n.renderPipes;o.batch.buildStart(s),o.blendMode.buildStart(),o.colorMask.buildStart(),i.sortableChildren&&i.sortChildren(),i.collectRenderablesWithEffects(s,n,null),o.batch.buildEnd(s),o.blendMode.buildEnd(s)}};Lo.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"renderGroup"}});var zo,mw=p(()=>{P();bo();zo=class{constructor(e){this._renderer=e}addRenderable(e,t){let i=this._getGpuSprite(e);e.didViewUpdate&&this._updateBatchableSprite(e,i),this._renderer.renderPipes.batch.addToBatch(i,t)}updateRenderable(e){let t=this._getGpuSprite(e);e.didViewUpdate&&this._updateBatchableSprite(e,t),t._batcher.updateElement(t)}validateRenderable(e){let t=this._getGpuSprite(e);return!t._batcher.checkAndUpdateTexture(t,e._texture)}_updateBatchableSprite(e,t){t.bounds=e.visualBounds,t.texture=e._texture}_getGpuSprite(e){return e._gpuData[this._renderer.uid]||this._initGPUSprite(e)}_initGPUSprite(e){let t=new tr;return t.renderable=e,t.transform=e.groupTransform,t.texture=e._texture,t.bounds=e.visualBounds,t.roundPixels=this._renderer._roundPixels|e._roundPixels,e._gpuData[this._renderer.uid]=t,t}destroy(){this._renderer=null}};zo.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"sprite"}});var $s,km=p(()=>{Ve();$s="8.10.1"});var Am,Vo,pw=p(()=>{P();km();Am=class{static init(){globalThis.__PIXI_APP_INIT__?.(this,$s)}static destroy(){}};Am.extension=b.Application;Vo=class{constructor(e){this._renderer=e}init(){globalThis.__PIXI_RENDERER_INIT__?.(this._renderer,$s)}destroy(){this._renderer=null}};Vo.extension={type:[b.WebGLSystem,b.WebGPUSystem],name:"initHook",priority:-10}});var Pm,Bm,xw=p(()=>{P();Ot();nf();Pm=class gw{constructor(e,t){this.state=Ae.for2d(),this._batchersByInstructionSet=Object.create(null),this._activeBatches=Object.create(null),this.renderer=e,this._adaptor=t,this._adaptor.init?.(this)}static getBatcher(e){return new this._availableBatchers[e]}buildStart(e){let t=this._batchersByInstructionSet[e.uid];t||(t=this._batchersByInstructionSet[e.uid]=Object.create(null),t.default||(t.default=new co({maxTextures:this.renderer.limits.maxBatchableTextures}))),this._activeBatches=t,this._activeBatch=this._activeBatches.default;for(let i in this._activeBatches)this._activeBatches[i].begin()}addToBatch(e,t){if(this._activeBatch.name!==e.batcherName){this._activeBatch.break(t);let i=this._activeBatches[e.batcherName];i||(i=this._activeBatches[e.batcherName]=gw.getBatcher(e.batcherName),i.begin()),this._activeBatch=i}this._activeBatch.add(e)}break(e){this._activeBatch.break(e)}buildEnd(e){this._activeBatch.break(e);let t=this._activeBatches;for(let i in t){let s=t[i],n=s.geometry;n.indexBuffer.setDataWithSize(s.indexBuffer,s.indexSize,!0),n.buffers[0].setDataWithSize(s.attributeBuffer.float32View,s.attributeSize,!1)}}upload(e){let t=this._batchersByInstructionSet[e.uid];for(let i in t){let s=t[i],n=s.geometry;s.dirty&&(s.dirty=!1,n.buffers[0].update(s.attributeSize*4))}}execute(e){if(e.action==="startBatch"){let t=e.batcher,i=t.geometry,s=t.shader;this._adaptor.start(this,i,s)}this._adaptor.execute(this,e)}destroy(){this.state=null,this.renderer=null,this._adaptor=null;for(let e in this._activeBatches)this._activeBatches[e].destroy();this._activeBatches=null}};Pm.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"batch"};Pm._availableBatchers=Object.create(null);Bm=Pm;O.handleByMap(b.Batcher,Bm._availableBatchers);O.add(co)});var _w,bw=p(()=>{_w=`in vec2 vMaskCoord;
596
596
  in vec2 vTextureCoord;
597
597
 
598
598
  uniform sampler2D uTexture;
@@ -626,7 +626,7 @@ void main(void)
626
626
 
627
627
  finalColor = original * a;
628
628
  }
629
- `});var $S,qS=p(()=>{$S=`in vec2 aPosition;
629
+ `});var yw,Tw=p(()=>{yw=`in vec2 aPosition;
630
630
 
631
631
  out vec2 vTextureCoord;
632
632
  out vec2 vMaskCoord;
@@ -663,7 +663,7 @@ void main(void)
663
663
  vTextureCoord = filterTextureCoord(aPosition);
664
664
  vMaskCoord = getFilterCoord(aPosition);
665
665
  }
666
- `});var pp,jS=p(()=>{pp=`struct GlobalFilterUniforms {
666
+ `});var Rm,ww=p(()=>{Rm=`struct GlobalFilterUniforms {
667
667
  uInputSize:vec4<f32>,
668
668
  uInputPixel:vec4<f32>,
669
669
  uInputClamp:vec4<f32>,
@@ -761,9 +761,9 @@ fn mainFragment(
761
761
 
762
762
  return source * a;
763
763
  }
764
- `});var Ll,XS=p(()=>{te();$i();Ns();it();Wd();_S();WS();qS();jS();Ll=class extends xS{constructor(e){let{sprite:t,...i}=e,s=new Bs(t.texture),n=new ce({uFilterMatrix:{value:new R,type:"mat3x3<f32>"},uMaskClamp:{value:s.uClampFrame,type:"vec4<f32>"},uAlpha:{value:1,type:"f32"},uInverse:{value:e.inverse?1:0,type:"f32"}}),o=Bt.from({vertex:{source:pp,entryPoint:"mainVertex"},fragment:{source:pp,entryPoint:"mainFragment"}}),a=Pt.from({vertex:$S,fragment:HS,name:"mask-filter"});super({...i,gpuProgram:o,glProgram:a,resources:{filterUniforms:n,uMaskTexture:t.texture.source}}),this.sprite=t,this._textureMatrix=s}set inverse(e){this.resources.filterUniforms.uniforms.uInverse=e?1:0}get inverse(){return this.resources.filterUniforms.uniforms.uInverse===1}apply(e,t,i,s){this._textureMatrix.texture=this.sprite.texture,e.calculateSpriteMatrix(this.resources.filterUniforms.uniforms.uFilterMatrix,this.sprite).prepend(this._textureMatrix.mapCoord),this.resources.uMaskTexture=this.sprite.texture.source,e.applyFilter(this,t,i,s)}}});var sR,gp,fa,YS=p(()=>{B();bu();XS();at();uo();Gu();br();le();Hr();ir();sR=new ae,gp=class extends yr{constructor(){super(),this.filters=[new Ll({sprite:new Kt(M.EMPTY),inverse:!1,resolution:"inherit",antialias:"inherit"})]}get sprite(){return this.filters[0].sprite}set sprite(e){this.filters[0].sprite=e}get inverse(){return this.filters[0].inverse}set inverse(e){this.filters[0].inverse=e}},fa=class{constructor(e){this._activeMaskStage=[],this._renderer=e}push(e,t,i){let s=this._renderer;if(s.renderPipes.batch.break(i),i.add({renderPipeId:"alphaMask",action:"pushMaskBegin",mask:e,inverse:t._maskOptions.inverse,canBundle:!1,maskedContainer:t}),e.inverse=t._maskOptions.inverse,e.renderMaskToTexture){let n=e.mask;n.includeInBuild=!0,n.collectRenderables(i,s,null),n.includeInBuild=!1}s.renderPipes.batch.break(i),i.add({renderPipeId:"alphaMask",action:"pushMaskEnd",mask:e,maskedContainer:t,inverse:t._maskOptions.inverse,canBundle:!1})}pop(e,t,i){this._renderer.renderPipes.batch.break(i),i.add({renderPipeId:"alphaMask",action:"popMaskEnd",mask:e,inverse:t._maskOptions.inverse,canBundle:!1})}execute(e){let t=this._renderer,i=e.mask.renderMaskToTexture;if(e.action==="pushMaskBegin"){let s=me.get(gp);if(s.inverse=e.inverse,i){e.mask.mask.measurable=!0;let n=Es(e.mask.mask,!0,sR);e.mask.mask.measurable=!1,n.ceil();let o=t.renderTarget.renderTarget.colorTexture.source,a=Te.getOptimalTexture(n.width,n.height,o._resolution,o.antialias);t.renderTarget.push(a,!0),t.globalUniforms.push({offset:n,worldColor:4294967295});let c=s.sprite;c.texture=a,c.worldTransform.tx=n.minX,c.worldTransform.ty=n.minY,this._activeMaskStage.push({filterEffect:s,maskedContainer:e.maskedContainer,filterTexture:a})}else s.sprite=e.mask.mask,this._activeMaskStage.push({filterEffect:s,maskedContainer:e.maskedContainer})}else if(e.action==="pushMaskEnd"){let s=this._activeMaskStage[this._activeMaskStage.length-1];i&&(t.type===Ie.WEBGL&&t.renderTarget.finishRenderPass(),t.renderTarget.pop(),t.globalUniforms.pop()),t.filter.push({renderPipeId:"filter",action:"pushFilter",container:s.maskedContainer,filterEffect:s.filterEffect,canBundle:!1})}else if(e.action==="popMaskEnd"){t.filter.pop();let s=this._activeMaskStage.pop();i&&Te.returnTexture(s.filterTexture),me.return(s.filterEffect)}}destroy(){this._renderer=null,this._activeMaskStage=null}};fa.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"alphaMask"}});var ma,KS=p(()=>{B();ma=class{constructor(e){this._colorStack=[],this._colorStackIndex=0,this._currentColor=0,this._renderer=e}buildStart(){this._colorStack[0]=15,this._colorStackIndex=1,this._currentColor=15}push(e,t,i){this._renderer.renderPipes.batch.break(i);let n=this._colorStack;n[this._colorStackIndex]=n[this._colorStackIndex-1]&e.mask;let o=this._colorStack[this._colorStackIndex];o!==this._currentColor&&(this._currentColor=o,i.add({renderPipeId:"colorMask",colorMask:o,canBundle:!1})),this._colorStackIndex++}pop(e,t,i){this._renderer.renderPipes.batch.break(i);let n=this._colorStack;this._colorStackIndex--;let o=n[this._colorStackIndex-1];o!==this._currentColor&&(this._currentColor=o,i.add({renderPipeId:"colorMask",colorMask:o,canBundle:!1}))}execute(e){this._renderer.colorMask.setMask(e.colorMask)}destroy(){this._colorStack=null}};ma.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"colorMask"}});var pa,QS=p(()=>{B();ln();Wi();pa=class{constructor(e){this._maskStackHash={},this._maskHash=new WeakMap,this._renderer=e}push(e,t,i){var s;let n=e,o=this._renderer;o.renderPipes.batch.break(i),o.renderPipes.blendMode.setBlendMode(n.mask,"none",i),i.add({renderPipeId:"stencilMask",action:"pushMaskBegin",mask:e,inverse:t._maskOptions.inverse,canBundle:!1});let a=n.mask;a.includeInBuild=!0,this._maskHash.has(n)||this._maskHash.set(n,{instructionsStart:0,instructionsLength:0});let c=this._maskHash.get(n);c.instructionsStart=i.instructionSize,a.collectRenderables(i,o,null),a.includeInBuild=!1,o.renderPipes.batch.break(i),i.add({renderPipeId:"stencilMask",action:"pushMaskEnd",mask:e,inverse:t._maskOptions.inverse,canBundle:!1});let u=i.instructionSize-c.instructionsStart-1;c.instructionsLength=u;let l=o.renderTarget.renderTarget.uid;(s=this._maskStackHash)[l]??(s[l]=0)}pop(e,t,i){let s=e,n=this._renderer;n.renderPipes.batch.break(i),n.renderPipes.blendMode.setBlendMode(s.mask,"none",i),i.add({renderPipeId:"stencilMask",action:"popMaskBegin",inverse:t._maskOptions.inverse,canBundle:!1});let o=this._maskHash.get(e);for(let a=0;a<o.instructionsLength;a++)i.instructions[i.instructionSize++]=i.instructions[o.instructionsStart++];i.add({renderPipeId:"stencilMask",action:"popMaskEnd",canBundle:!1})}execute(e){var t;let i=this._renderer,s=i.renderTarget.renderTarget.uid,n=(t=this._maskStackHash)[s]??(t[s]=0);e.action==="pushMaskBegin"?(i.renderTarget.ensureDepthStencil(),i.stencil.setStencilMode(fe.RENDERING_MASK_ADD,n),n++,i.colorMask.setMask(0)):e.action==="pushMaskEnd"?(e.inverse?i.stencil.setStencilMode(fe.INVERSE_MASK_ACTIVE,n):i.stencil.setStencilMode(fe.MASK_ACTIVE,n),i.colorMask.setMask(15)):e.action==="popMaskBegin"?(i.colorMask.setMask(0),n!==0?i.stencil.setStencilMode(fe.RENDERING_MASK_REMOVE,n):(i.renderTarget.clear(null,Le.STENCIL),i.stencil.setStencilMode(fe.DISABLED,n)),n--):e.action==="popMaskEnd"&&(e.inverse?i.stencil.setStencilMode(fe.INVERSE_MASK_ACTIVE,n):i.stencil.setStencilMode(fe.MASK_ACTIVE,n),i.colorMask.setMask(15)),this._maskStackHash[s]=n}destroy(){this._renderer=null,this._maskStackHash=null,this._maskHash=null}};pa.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"stencilMask"}});var xp,JS,ev=p(()=>{He();B();xp=class ZS{constructor(){this.clearBeforeRender=!0,this._backgroundColor=new q(0),this.color=this._backgroundColor,this.alpha=1}init(e){e={...ZS.defaultOptions,...e},this.clearBeforeRender=e.clearBeforeRender,this.color=e.background||e.backgroundColor||this._backgroundColor,this.alpha=e.backgroundAlpha,this._backgroundColor.setAlpha(e.backgroundAlpha)}get color(){return this._backgroundColor}set color(e){this._backgroundColor.setValue(e)}get alpha(){return this._backgroundColor.alpha}set alpha(e){this._backgroundColor.setAlpha(e)}get colorRgba(){return this._backgroundColor.toArray()}destroy(){}};xp.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"background",priority:0};xp.defaultOptions={backgroundAlpha:1,backgroundColor:0,clearBeforeRender:!0};JS=xp});var ga,xa,tv=p(()=>{B();bu();pe();ga={};O.handle(b.BlendMode,r=>{if(!r.name)throw new Error("BlendMode extension must have a name property");ga[r.name]=r.ref},r=>{delete ga[r.name]});xa=class{constructor(e){this._isAdvanced=!1,this._filterHash=Object.create(null),this._renderer=e,this._renderer.runners.prerender.add(this)}prerender(){this._activeBlendMode="normal",this._isAdvanced=!1}setBlendMode(e,t,i){if(this._activeBlendMode===t){this._isAdvanced&&this._renderableList.push(e);return}this._activeBlendMode=t,this._isAdvanced&&this._endAdvancedBlendMode(i),this._isAdvanced=!!ga[t],this._isAdvanced&&(this._beginAdvancedBlendMode(i),this._renderableList.push(e))}_beginAdvancedBlendMode(e){this._renderer.renderPipes.batch.break(e);let t=this._activeBlendMode;if(!ga[t]){N(`Unable to assign BlendMode: '${t}'. You may want to include: import 'pixi.js/advanced-blend-modes'`);return}let i=this._filterHash[t];i||(i=this._filterHash[t]=new yr,i.filters=[new ga[t]]);let s={renderPipeId:"filter",action:"pushFilter",renderables:[],filterEffect:i,canBundle:!1};this._renderableList=s.renderables,e.add(s)}_endAdvancedBlendMode(e){this._renderableList=null,this._renderer.renderPipes.batch.break(e),e.add({renderPipeId:"filter",action:"popFilter",canBundle:!1})}buildStart(){this._isAdvanced=!1}buildEnd(e){this._isAdvanced&&this._endAdvancedBlendMode(e)}destroy(){this._renderer=null,this._renderableList=null;for(let e in this._filterHash)this._filterHash[e].destroy();this._filterHash=null}};xa.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"blendMode"}});var _p,bp,iv,sv=p(()=>{B();jt();le();_p={png:"image/png",jpg:"image/jpeg",webp:"image/webp"},bp=class rv{constructor(e){this._renderer=e}_normalizeOptions(e,t={}){return e instanceof we||e instanceof M?{target:e,...t}:{...t,...e}}async image(e){let t=new Image;return t.src=await this.base64(e),t}async base64(e){e=this._normalizeOptions(e,rv.defaultImageOptions);let{format:t,quality:i}=e,s=this.canvas(e);if(s.toBlob!==void 0)return new Promise((n,o)=>{s.toBlob(a=>{if(!a){o(new Error("ICanvas.toBlob failed!"));return}let c=new FileReader;c.onload=()=>n(c.result),c.onerror=o,c.readAsDataURL(a)},_p[t],i)});if(s.toDataURL!==void 0)return s.toDataURL(_p[t],i);if(s.convertToBlob!==void 0){let n=await s.convertToBlob({type:_p[t],quality:i});return new Promise((o,a)=>{let c=new FileReader;c.onload=()=>o(c.result),c.onerror=a,c.readAsDataURL(n)})}throw new Error("Extract.base64() requires ICanvas.toDataURL, ICanvas.toBlob, or ICanvas.convertToBlob to be implemented")}canvas(e){e=this._normalizeOptions(e);let t=e.target,i=this._renderer;if(t instanceof M)return i.texture.generateCanvas(t);let s=i.textureGenerator.generateTexture(e),n=i.texture.generateCanvas(s);return s.destroy(!0),n}pixels(e){e=this._normalizeOptions(e);let t=e.target,i=this._renderer,s=t instanceof M?t:i.textureGenerator.generateTexture(e),n=i.texture.getPixels(s);return t instanceof we&&s.destroy(!0),n}texture(e){return e=this._normalizeOptions(e),e.target instanceof M?e.target:this._renderer.textureGenerator.generateTexture(e)}download(e){e=this._normalizeOptions(e);let t=this.canvas(e),i=document.createElement("a");i.download=e.filename??"image.png",i.href=t.toDataURL("image/png"),document.body.appendChild(i),i.click(),document.body.removeChild(i)}log(e){let t=e.width??200;e=this._normalizeOptions(e);let i=this.canvas(e),s=i.toDataURL();console.log(`[Pixi Texture] ${i.width}px ${i.height}px`);let n=["font-size: 1px;",`padding: ${t}px 300px;`,`background: url(${s}) no-repeat;`,"background-size: contain;"].join(" ");console.log("%c ",n)}destroy(){this._renderer=null}};bp.extension={type:[b.WebGLSystem,b.WebGPUSystem],name:"extract"};bp.defaultImageOptions={format:"png",quality:1};iv=bp});var zl,nv=p(()=>{tt();le();zl=class r extends M{static create(e){return new r({source:new se(e)})}resize(e,t,i){return this.source.resize(e,t,i),this}}});var nR,oR,aR,_a,ov=p(()=>{He();B();te();Ge();at();vu();jt();nv();nR=new Y,oR=new ae,aR=[0,0,0,0],_a=class{constructor(e){this._renderer=e}generateTexture(e){e instanceof we&&(e={target:e,frame:void 0,textureSourceOptions:{},resolution:void 0});let t=e.resolution||this._renderer.resolution,i=e.antialias||this._renderer.view.antialias,s=e.target,n=e.clearColor;n?n=Array.isArray(n)&&n.length===4?n:q.shared.setValue(n).toArray():n=aR;let o=e.frame?.copyTo(nR)||As(s,oR).rectangle;o.width=Math.max(o.width,1/t)|0,o.height=Math.max(o.height,1/t)|0;let a=zl.create({...e.textureSourceOptions,width:o.width,height:o.height,resolution:t,antialias:i}),c=R.shared.translate(-o.x,-o.y);return this._renderer.render({container:s,transform:c,target:a,clearColor:n}),a.source.updateMipmaps(),a}destroy(){this._renderer=null}};_a.extension={type:[b.WebGLSystem,b.WebGPUSystem],name:"textureGenerator"}});var ba,av=p(()=>{B();te();Ft();Ys();Xr();ir();it();ba=class{constructor(e){this._stackIndex=0,this._globalUniformDataStack=[],this._uniformsPool=[],this._activeUniforms=[],this._bindGroupPool=[],this._activeBindGroups=[],this._renderer=e}reset(){this._stackIndex=0;for(let e=0;e<this._activeUniforms.length;e++)this._uniformsPool.push(this._activeUniforms[e]);for(let e=0;e<this._activeBindGroups.length;e++)this._bindGroupPool.push(this._activeBindGroups[e]);this._activeUniforms.length=0,this._activeBindGroups.length=0}start(e){this.reset(),this.push(e)}bind({size:e,projectionMatrix:t,worldTransformMatrix:i,worldColor:s,offset:n}){let o=this._renderer.renderTarget.renderTarget,a=this._stackIndex?this._globalUniformDataStack[this._stackIndex-1]:{projectionData:o,worldTransformMatrix:new R,worldColor:4294967295,offset:new J},c={projectionMatrix:t||this._renderer.renderTarget.projectionMatrix,resolution:e||o.size,worldTransformMatrix:i||a.worldTransformMatrix,worldColor:s||a.worldColor,offset:n||a.offset,bindGroup:null},u=this._uniformsPool.pop()||this._createUniforms();this._activeUniforms.push(u);let l=u.uniforms;l.uProjectionMatrix=c.projectionMatrix,l.uResolution=c.resolution,l.uWorldTransformMatrix.copyFrom(c.worldTransformMatrix),l.uWorldTransformMatrix.tx-=c.offset.x,l.uWorldTransformMatrix.ty-=c.offset.y,sr(c.worldColor,l.uWorldColorAlpha,0),u.update();let h;this._renderer.renderPipes.uniformBatch?h=this._renderer.renderPipes.uniformBatch.getUniformBindGroup(u,!1):(h=this._bindGroupPool.pop()||new Ne,this._activeBindGroups.push(h),h.setResource(u,0)),c.bindGroup=h,this._currentGlobalUniformData=c}push(e){this.bind(e),this._globalUniformDataStack[this._stackIndex++]=this._currentGlobalUniformData}pop(){this._currentGlobalUniformData=this._globalUniformDataStack[--this._stackIndex-1],this._renderer.type===Ie.WEBGL&&this._currentGlobalUniformData.bindGroup.resources[0].update()}get bindGroup(){return this._currentGlobalUniformData.bindGroup}get globalUniformData(){return this._currentGlobalUniformData}get uniformGroup(){return this._currentGlobalUniformData.bindGroup.resources[0]}_createUniforms(){return new ce({uProjectionMatrix:{value:new R,type:"mat3x3<f32>"},uWorldTransformMatrix:{value:new R,type:"mat3x3<f32>"},uWorldColorAlpha:{value:new Float32Array(4),type:"vec4<f32>"},uResolution:{value:[0,0],type:"vec2<f32>"}},{isStatic:!0})}destroy(){this._renderer=null}};ba.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"globalUniforms"}});var cR,ya,cv=p(()=>{B();go();cR=1,ya=class{constructor(){this._tasks=[],this._offset=0}init(){ct.system.add(this._update,this)}repeat(e,t,i=!0){let s=cR++,n=0;return i&&(this._offset+=1e3,n=this._offset),this._tasks.push({func:e,duration:t,start:performance.now(),offset:n,last:performance.now(),repeat:!0,id:s}),s}cancel(e){for(let t=0;t<this._tasks.length;t++)if(this._tasks[t].id===e){this._tasks.splice(t,1);return}}_update(){let e=performance.now();for(let t=0;t<this._tasks.length;t++){let i=this._tasks[t];if(e-i.offset-i.last>=i.duration){let s=e-i.start;i.func(s),i.last=e}}}destroy(){ct.system.remove(this._update,this),this._tasks.length=0}};ya.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"scheduler",priority:0}});function lv(r){if(!uv){if(W.get().getNavigator().userAgent.toLowerCase().indexOf("chrome")>-1){let e=[`%c %c %c %c %c PixiJS %c v${dn} (${r}) http://www.pixijs.com/
764
+ `});var il,Sw=p(()=>{ee();Ai();bs();rt();od();jT();bw();Tw();ww();il=class extends qT{constructor(e){let{sprite:t,...i}=e,s=new ls(t.texture),n=new ce({uFilterMatrix:{value:new R,type:"mat3x3<f32>"},uMaskClamp:{value:s.uClampFrame,type:"vec4<f32>"},uAlpha:{value:1,type:"f32"},uInverse:{value:e.inverse?1:0,type:"f32"}}),o=Et.from({vertex:{source:Rm,entryPoint:"mainVertex"},fragment:{source:Rm,entryPoint:"mainFragment"}}),a=Ct.from({vertex:yw,fragment:_w,name:"mask-filter"});super({...i,gpuProgram:o,glProgram:a,resources:{filterUniforms:n,uMaskTexture:t.texture.source}}),this.sprite=t,this._textureMatrix=s}set inverse(e){this.resources.filterUniforms.uniforms.uInverse=e?1:0}get inverse(){return this.resources.filterUniforms.uniforms.uInverse===1}apply(e,t,i,s){this._textureMatrix.texture=this.sprite.texture,e.calculateSpriteMatrix(this.resources.filterUniforms.uniforms.uFilterMatrix,this.sprite).prepend(this._textureMatrix.mapCoord),this.resources.uMaskTexture=this.sprite.texture.source,e.applyFilter(this,t,i,s)}}});var PP,Dm,Ho,vw=p(()=>{P();Uc();Sw();ot();Nn();tu();gr();le();Lr();Jt();PP=new ae,Dm=class extends xr{constructor(){super(),this.filters=[new il({sprite:new qt(D.EMPTY),inverse:!1,resolution:"inherit",antialias:"inherit"})]}get sprite(){return this.filters[0].sprite}set sprite(e){this.filters[0].sprite=e}get inverse(){return this.filters[0].inverse}set inverse(e){this.filters[0].inverse=e}},Ho=class{constructor(e){this._activeMaskStage=[],this._renderer=e}push(e,t,i){let s=this._renderer;if(s.renderPipes.batch.break(i),i.add({renderPipeId:"alphaMask",action:"pushMaskBegin",mask:e,inverse:t._maskOptions.inverse,canBundle:!1,maskedContainer:t}),e.inverse=t._maskOptions.inverse,e.renderMaskToTexture){let n=e.mask;n.includeInBuild=!0,n.collectRenderables(i,s,null),n.includeInBuild=!1}s.renderPipes.batch.break(i),i.add({renderPipeId:"alphaMask",action:"pushMaskEnd",mask:e,maskedContainer:t,inverse:t._maskOptions.inverse,canBundle:!1})}pop(e,t,i){this._renderer.renderPipes.batch.break(i),i.add({renderPipeId:"alphaMask",action:"popMaskEnd",mask:e,inverse:t._maskOptions.inverse,canBundle:!1})}execute(e){let t=this._renderer,i=e.mask.renderMaskToTexture;if(e.action==="pushMaskBegin"){let s=pe.get(Dm);if(s.inverse=e.inverse,i){e.mask.mask.measurable=!0;let n=os(e.mask.mask,!0,PP);e.mask.mask.measurable=!1,n.ceil();let o=t.renderTarget.renderTarget.colorTexture.source,a=Te.getOptimalTexture(n.width,n.height,o._resolution,o.antialias);t.renderTarget.push(a,!0),t.globalUniforms.push({offset:n,worldColor:4294967295});let c=s.sprite;c.texture=a,c.worldTransform.tx=n.minX,c.worldTransform.ty=n.minY,this._activeMaskStage.push({filterEffect:s,maskedContainer:e.maskedContainer,filterTexture:a})}else s.sprite=e.mask.mask,this._activeMaskStage.push({filterEffect:s,maskedContainer:e.maskedContainer})}else if(e.action==="pushMaskEnd"){let s=this._activeMaskStage[this._activeMaskStage.length-1];i&&(t.type===Me.WEBGL&&t.renderTarget.finishRenderPass(),t.renderTarget.pop(),t.globalUniforms.pop()),t.filter.push({renderPipeId:"filter",action:"pushFilter",container:s.maskedContainer,filterEffect:s.filterEffect,canBundle:!1})}else if(e.action==="popMaskEnd"){t.filter.pop();let s=this._activeMaskStage.pop();i&&Te.returnTexture(s.filterTexture),pe.return(s.filterEffect)}}destroy(){this._renderer=null,this._activeMaskStage=null}};Ho.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"alphaMask"}});var Wo,Cw=p(()=>{P();Wo=class{constructor(e){this._colorStack=[],this._colorStackIndex=0,this._currentColor=0,this._renderer=e}buildStart(){this._colorStack[0]=15,this._colorStackIndex=1,this._currentColor=15}push(e,t,i){this._renderer.renderPipes.batch.break(i);let n=this._colorStack;n[this._colorStackIndex]=n[this._colorStackIndex-1]&e.mask;let o=this._colorStack[this._colorStackIndex];o!==this._currentColor&&(this._currentColor=o,i.add({renderPipeId:"colorMask",colorMask:o,canBundle:!1})),this._colorStackIndex++}pop(e,t,i){this._renderer.renderPipes.batch.break(i);let n=this._colorStack;this._colorStackIndex--;let o=n[this._colorStackIndex-1];o!==this._currentColor&&(this._currentColor=o,i.add({renderPipeId:"colorMask",colorMask:o,canBundle:!1}))}execute(e){this._renderer.colorMask.setMask(e.colorMask)}destroy(){this._colorStack=null}};Wo.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"colorMask"}});var $o,Ew=p(()=>{P();Hs();ki();$o=class{constructor(e){this._maskStackHash={},this._maskHash=new WeakMap,this._renderer=e}push(e,t,i){var s;let n=e,o=this._renderer;o.renderPipes.batch.break(i),o.renderPipes.blendMode.setBlendMode(n.mask,"none",i),i.add({renderPipeId:"stencilMask",action:"pushMaskBegin",mask:e,inverse:t._maskOptions.inverse,canBundle:!1});let a=n.mask;a.includeInBuild=!0,this._maskHash.has(n)||this._maskHash.set(n,{instructionsStart:0,instructionsLength:0});let c=this._maskHash.get(n);c.instructionsStart=i.instructionSize,a.collectRenderables(i,o,null),a.includeInBuild=!1,o.renderPipes.batch.break(i),i.add({renderPipeId:"stencilMask",action:"pushMaskEnd",mask:e,inverse:t._maskOptions.inverse,canBundle:!1});let u=i.instructionSize-c.instructionsStart-1;c.instructionsLength=u;let l=o.renderTarget.renderTarget.uid;(s=this._maskStackHash)[l]??(s[l]=0)}pop(e,t,i){let s=e,n=this._renderer;n.renderPipes.batch.break(i),n.renderPipes.blendMode.setBlendMode(s.mask,"none",i),i.add({renderPipeId:"stencilMask",action:"popMaskBegin",inverse:t._maskOptions.inverse,canBundle:!1});let o=this._maskHash.get(e);for(let a=0;a<o.instructionsLength;a++)i.instructions[i.instructionSize++]=i.instructions[o.instructionsStart++];i.add({renderPipeId:"stencilMask",action:"popMaskEnd",canBundle:!1})}execute(e){var t;let i=this._renderer,s=i.renderTarget.renderTarget.uid,n=(t=this._maskStackHash)[s]??(t[s]=0);e.action==="pushMaskBegin"?(i.renderTarget.ensureDepthStencil(),i.stencil.setStencilMode(me.RENDERING_MASK_ADD,n),n++,i.colorMask.setMask(0)):e.action==="pushMaskEnd"?(e.inverse?i.stencil.setStencilMode(me.INVERSE_MASK_ACTIVE,n):i.stencil.setStencilMode(me.MASK_ACTIVE,n),i.colorMask.setMask(15)):e.action==="popMaskBegin"?(i.colorMask.setMask(0),n!==0?i.stencil.setStencilMode(me.RENDERING_MASK_REMOVE,n):(i.renderTarget.clear(null,Le.STENCIL),i.stencil.setStencilMode(me.DISABLED,n)),n--):e.action==="popMaskEnd"&&(e.inverse?i.stencil.setStencilMode(me.INVERSE_MASK_ACTIVE,n):i.stencil.setStencilMode(me.MASK_ACTIVE,n),i.colorMask.setMask(15)),this._maskStackHash[s]=n}destroy(){this._renderer=null,this._maskStackHash=null,this._maskHash=null}};$o.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"stencilMask"}});var Mm,Aw,Pw=p(()=>{He();P();Mm=class kw{constructor(){this.clearBeforeRender=!0,this._backgroundColor=new q(0),this.color=this._backgroundColor,this.alpha=1}init(e){e={...kw.defaultOptions,...e},this.clearBeforeRender=e.clearBeforeRender,this.color=e.background||e.backgroundColor||this._backgroundColor,this.alpha=e.backgroundAlpha,this._backgroundColor.setAlpha(e.backgroundAlpha)}get color(){return this._backgroundColor}set color(e){this._backgroundColor.setValue(e)}get alpha(){return this._backgroundColor.alpha}set alpha(e){this._backgroundColor.setAlpha(e)}get colorRgba(){return this._backgroundColor.toArray()}destroy(){}};Mm.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"background",priority:0};Mm.defaultOptions={backgroundAlpha:1,backgroundColor:0,clearBeforeRender:!0};Aw=Mm});var qo,jo,Bw=p(()=>{P();Uc();ge();qo={};O.handle(b.BlendMode,r=>{if(!r.name)throw new Error("BlendMode extension must have a name property");qo[r.name]=r.ref},r=>{delete qo[r.name]});jo=class{constructor(e){this._isAdvanced=!1,this._filterHash=Object.create(null),this._renderer=e,this._renderer.runners.prerender.add(this)}prerender(){this._activeBlendMode="normal",this._isAdvanced=!1}setBlendMode(e,t,i){if(this._activeBlendMode===t){this._isAdvanced&&this._renderableList.push(e);return}this._activeBlendMode=t,this._isAdvanced&&this._endAdvancedBlendMode(i),this._isAdvanced=!!qo[t],this._isAdvanced&&(this._beginAdvancedBlendMode(i),this._renderableList.push(e))}_beginAdvancedBlendMode(e){this._renderer.renderPipes.batch.break(e);let t=this._activeBlendMode;if(!qo[t]){G(`Unable to assign BlendMode: '${t}'. You may want to include: import 'pixi.js/advanced-blend-modes'`);return}let i=this._filterHash[t];i||(i=this._filterHash[t]=new xr,i.filters=[new qo[t]]);let s={renderPipeId:"filter",action:"pushFilter",renderables:[],filterEffect:i,canBundle:!1};this._renderableList=s.renderables,e.add(s)}_endAdvancedBlendMode(e){this._renderableList=null,this._renderer.renderPipes.batch.break(e),e.add({renderPipeId:"filter",action:"popFilter",canBundle:!1})}buildStart(){this._isAdvanced=!1}buildEnd(e){this._isAdvanced&&this._endAdvancedBlendMode(e)}destroy(){this._renderer=null,this._renderableList=null;for(let e in this._filterHash)this._filterHash[e].destroy();this._filterHash=null}};jo.extension={type:[b.WebGLPipes,b.WebGPUPipes,b.CanvasPipes],name:"blendMode"}});var Im,Fm,Dw,Mw=p(()=>{P();Ht();le();Im={png:"image/png",jpg:"image/jpeg",webp:"image/webp"},Fm=class Rw{constructor(e){this._renderer=e}_normalizeOptions(e,t={}){return e instanceof we||e instanceof D?{target:e,...t}:{...t,...e}}async image(e){let t=new Image;return t.src=await this.base64(e),t}async base64(e){e=this._normalizeOptions(e,Rw.defaultImageOptions);let{format:t,quality:i}=e,s=this.canvas(e);if(s.toBlob!==void 0)return new Promise((n,o)=>{s.toBlob(a=>{if(!a){o(new Error("ICanvas.toBlob failed!"));return}let c=new FileReader;c.onload=()=>n(c.result),c.onerror=o,c.readAsDataURL(a)},Im[t],i)});if(s.toDataURL!==void 0)return s.toDataURL(Im[t],i);if(s.convertToBlob!==void 0){let n=await s.convertToBlob({type:Im[t],quality:i});return new Promise((o,a)=>{let c=new FileReader;c.onload=()=>o(c.result),c.onerror=a,c.readAsDataURL(n)})}throw new Error("Extract.base64() requires ICanvas.toDataURL, ICanvas.toBlob, or ICanvas.convertToBlob to be implemented")}canvas(e){e=this._normalizeOptions(e);let t=e.target,i=this._renderer;if(t instanceof D)return i.texture.generateCanvas(t);let s=i.textureGenerator.generateTexture(e),n=i.texture.generateCanvas(s);return s.destroy(!0),n}pixels(e){e=this._normalizeOptions(e);let t=e.target,i=this._renderer,s=t instanceof D?t:i.textureGenerator.generateTexture(e),n=i.texture.getPixels(s);return t instanceof we&&s.destroy(!0),n}texture(e){return e=this._normalizeOptions(e),e.target instanceof D?e.target:this._renderer.textureGenerator.generateTexture(e)}download(e){e=this._normalizeOptions(e);let t=this.canvas(e),i=document.createElement("a");i.download=e.filename??"image.png",i.href=t.toDataURL("image/png"),document.body.appendChild(i),i.click(),document.body.removeChild(i)}log(e){let t=e.width??200;e=this._normalizeOptions(e);let i=this.canvas(e),s=i.toDataURL();console.log(`[Pixi Texture] ${i.width}px ${i.height}px`);let n=["font-size: 1px;",`padding: ${t}px 300px;`,`background: url(${s}) no-repeat;`,"background-size: contain;"].join(" ");console.log("%c ",n)}destroy(){this._renderer=null}};Fm.extension={type:[b.WebGLSystem,b.WebGPUSystem],name:"extract"};Fm.defaultImageOptions={format:"png",quality:1};Dw=Fm});var sl,Iw=p(()=>{et();le();sl=class r extends D{static create(e){return new r({source:new se(e)})}resize(e,t,i){return this.source.resize(e,t,i),this}}});var BP,RP,DP,Xo,Fw=p(()=>{He();P();ee();Ge();ot();zc();Ht();Iw();BP=new Y,RP=new ae,DP=[0,0,0,0],Xo=class{constructor(e){this._renderer=e}generateTexture(e){e instanceof we&&(e={target:e,frame:void 0,textureSourceOptions:{},resolution:void 0});let t=e.resolution||this._renderer.resolution,i=e.antialias||this._renderer.view.antialias,s=e.target,n=e.clearColor;n?n=Array.isArray(n)&&n.length===4?n:q.shared.setValue(n).toArray():n=DP;let o=e.frame?.copyTo(BP)||cs(s,RP).rectangle;o.width=Math.max(o.width,1/t)|0,o.height=Math.max(o.height,1/t)|0;let a=sl.create({...e.textureSourceOptions,width:o.width,height:o.height,resolution:t,antialias:i}),c=R.shared.translate(-o.x,-o.y);return this._renderer.render({container:s,transform:c,target:a,clearColor:n}),a.source.updateMipmaps(),a}destroy(){this._renderer=null}};Xo.extension={type:[b.WebGLSystem,b.WebGPUSystem],name:"textureGenerator"}});var Yo,Uw=p(()=>{P();ee();It();Ps();$r();Jt();rt();Yo=class{constructor(e){this._stackIndex=0,this._globalUniformDataStack=[],this._uniformsPool=[],this._activeUniforms=[],this._bindGroupPool=[],this._activeBindGroups=[],this._renderer=e}reset(){this._stackIndex=0;for(let e=0;e<this._activeUniforms.length;e++)this._uniformsPool.push(this._activeUniforms[e]);for(let e=0;e<this._activeBindGroups.length;e++)this._bindGroupPool.push(this._activeBindGroups[e]);this._activeUniforms.length=0,this._activeBindGroups.length=0}start(e){this.reset(),this.push(e)}bind({size:e,projectionMatrix:t,worldTransformMatrix:i,worldColor:s,offset:n}){let o=this._renderer.renderTarget.renderTarget,a=this._stackIndex?this._globalUniformDataStack[this._stackIndex-1]:{projectionData:o,worldTransformMatrix:new R,worldColor:4294967295,offset:new Z},c={projectionMatrix:t||this._renderer.renderTarget.projectionMatrix,resolution:e||o.size,worldTransformMatrix:i||a.worldTransformMatrix,worldColor:s||a.worldColor,offset:n||a.offset,bindGroup:null},u=this._uniformsPool.pop()||this._createUniforms();this._activeUniforms.push(u);let l=u.uniforms;l.uProjectionMatrix=c.projectionMatrix,l.uResolution=c.resolution,l.uWorldTransformMatrix.copyFrom(c.worldTransformMatrix),l.uWorldTransformMatrix.tx-=c.offset.x,l.uWorldTransformMatrix.ty-=c.offset.y,er(c.worldColor,l.uWorldColorAlpha,0),u.update();let h;this._renderer.renderPipes.uniformBatch?h=this._renderer.renderPipes.uniformBatch.getUniformBindGroup(u,!1):(h=this._bindGroupPool.pop()||new Ne,this._activeBindGroups.push(h),h.setResource(u,0)),c.bindGroup=h,this._currentGlobalUniformData=c}push(e){this.bind(e),this._globalUniformDataStack[this._stackIndex++]=this._currentGlobalUniformData}pop(){this._currentGlobalUniformData=this._globalUniformDataStack[--this._stackIndex-1],this._renderer.type===Me.WEBGL&&this._currentGlobalUniformData.bindGroup.resources[0].update()}get bindGroup(){return this._currentGlobalUniformData.bindGroup}get globalUniformData(){return this._currentGlobalUniformData}get uniformGroup(){return this._currentGlobalUniformData.bindGroup.resources[0]}_createUniforms(){return new ce({uProjectionMatrix:{value:new R,type:"mat3x3<f32>"},uWorldTransformMatrix:{value:new R,type:"mat3x3<f32>"},uWorldColorAlpha:{value:new Float32Array(4),type:"vec4<f32>"},uResolution:{value:[0,0],type:"vec2<f32>"}},{isStatic:!0})}destroy(){this._renderer=null}};Yo.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"globalUniforms"}});var MP,Ko,Ow=p(()=>{P();$n();MP=1,Ko=class{constructor(){this._tasks=[],this._offset=0}init(){at.system.add(this._update,this)}repeat(e,t,i=!0){let s=MP++,n=0;return i&&(this._offset+=1e3,n=this._offset),this._tasks.push({func:e,duration:t,start:performance.now(),offset:n,last:performance.now(),repeat:!0,id:s}),s}cancel(e){for(let t=0;t<this._tasks.length;t++)if(this._tasks[t].id===e){this._tasks.splice(t,1);return}}_update(){let e=performance.now();for(let t=0;t<this._tasks.length;t++){let i=this._tasks[t];if(e-i.offset-i.last>=i.duration){let s=e-i.start;i.func(s),i.last=e}}}destroy(){at.system.remove(this._update,this),this._tasks.length=0}};Ko.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"scheduler",priority:0}});function Nw(r){if(!Gw){if(W.get().getNavigator().userAgent.toLowerCase().indexOf("chrome")>-1){let e=[`%c %c %c %c %c PixiJS %c v${$s} (${r}) http://www.pixijs.com/
765
765
 
766
- `,"background: #E72264; padding:5px 0;","background: #6CA2EA; padding:5px 0;","background: #B5D33D; padding:5px 0;","background: #FED23F; padding:5px 0;","color: #FFFFFF; background: #E72264; padding:5px 0;","color: #E72264; background: #FFFFFF; padding:5px 0;"];globalThis.console.log(...e)}else globalThis.console&&globalThis.console.log(`PixiJS ${dn} - ${r} - http://www.pixijs.com/`);uv=!0}}var uv,hv=p(()=>{Ce();hp();uv=!1});var fn,dv=p(()=>{B();hv();ir();fn=class{constructor(e){this._renderer=e}init(e){if(e.hello){let t=this._renderer.name;this._renderer.type===Ie.WEBGL&&(t+=` ${this._renderer.context.webGLVersion}`),lv(t)}}};fn.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"hello",priority:-2};fn.defaultOptions={hello:!1}});function fv(r){let e=!1;for(let i in r)if(r[i]==null){e=!0;break}if(!e)return r;let t=Object.create(null);for(let i in r){let s=r[i];s&&(t[i]=s)}return t}function mv(r){let e=0;for(let t=0;t<r.length;t++)r[t]==null?e++:r[t-e]=r[t];return r.length-=e,r}var pv=p(()=>{"use strict"});var uR,yp,xv,_v=p(()=>{B();pv();uR=0,yp=class gv{constructor(e){this._managedRenderables=[],this._managedHashes=[],this._managedArrays=[],this._renderer=e}init(e){e={...gv.defaultOptions,...e},this.maxUnusedTime=e.renderableGCMaxUnusedTime,this._frequency=e.renderableGCFrequency,this.enabled=e.renderableGCActive}get enabled(){return!!this._handler}set enabled(e){this.enabled!==e&&(e?(this._handler=this._renderer.scheduler.repeat(()=>this.run(),this._frequency,!1),this._hashHandler=this._renderer.scheduler.repeat(()=>{for(let t of this._managedHashes)t.context[t.hash]=fv(t.context[t.hash])},this._frequency),this._arrayHandler=this._renderer.scheduler.repeat(()=>{for(let t of this._managedArrays)mv(t.context[t.hash])},this._frequency)):(this._renderer.scheduler.cancel(this._handler),this._renderer.scheduler.cancel(this._hashHandler),this._renderer.scheduler.cancel(this._arrayHandler)))}addManagedHash(e,t){this._managedHashes.push({context:e,hash:t})}addManagedArray(e,t){this._managedArrays.push({context:e,hash:t})}prerender({container:e}){this._now=performance.now(),e.renderGroup.gcTick=uR++,this._updateInstructionGCTick(e.renderGroup,e.renderGroup.gcTick)}addRenderable(e){this.enabled&&(e._lastUsed===-1&&(this._managedRenderables.push(e),e.once("destroyed",this._removeRenderable,this)),e._lastUsed=this._now)}run(){let e=this._now,t=this._managedRenderables,i=this._renderer.renderPipes,s=0;for(let n=0;n<t.length;n++){let o=t[n];if(o===null){s++;continue}let a=o.renderGroup??o.parentRenderGroup,c=a?.instructionSet?.gcTick??-1;if((a?.gcTick??0)===c&&(o._lastUsed=e),e-o._lastUsed>this.maxUnusedTime){if(!o.destroyed){let u=i;a&&(a.structureDidChange=!0),u[o.renderPipeId].destroyRenderable(o)}o._lastUsed=-1,s++,o.off("destroyed",this._removeRenderable,this)}else t[n-s]=o}t.length-=s}destroy(){this.enabled=!1,this._renderer=null,this._managedRenderables.length=0,this._managedHashes.length=0,this._managedArrays.length=0}_removeRenderable(e){let t=this._managedRenderables.indexOf(e);t>=0&&(e.off("destroyed",this._removeRenderable,this),this._managedRenderables[t]=null)}_updateInstructionGCTick(e,t){e.instructionSet.gcTick=t;for(let i of e.renderGroupChildren)this._updateInstructionGCTick(i,t)}};yp.extension={type:[b.WebGLSystem,b.WebGPUSystem],name:"renderableGC",priority:0};yp.defaultOptions={renderableGCActive:!0,renderableGCMaxUnusedTime:6e4,renderableGCFrequency:3e4};xv=yp});var Tp,yv,Tv=p(()=>{B();Tp=class bv{constructor(e){this._renderer=e,this.count=0,this.checkCount=0}init(e){e={...bv.defaultOptions,...e},this.checkCountMax=e.textureGCCheckCountMax,this.maxIdle=e.textureGCAMaxIdle??e.textureGCMaxIdle,this.active=e.textureGCActive}postrender(){this._renderer.renderingToScreen&&(this.count++,this.active&&(this.checkCount++,this.checkCount>this.checkCountMax&&(this.checkCount=0,this.run())))}run(){let e=this._renderer.texture.managedTextures;for(let t=0;t<e.length;t++){let i=e[t];i.autoGarbageCollect&&i.resource&&i._touched>-1&&this.count-i._touched>this.maxIdle&&(i._touched=-1,i.unload())}}destroy(){this._renderer=null}};Tp.extension={type:[b.WebGLSystem,b.WebGPUSystem],name:"textureGC"};Tp.defaultOptions={textureGCActive:!0,textureGCAMaxIdle:null,textureGCMaxIdle:60*60,textureGCCheckCountMax:600};yv=Tp});var wv,Ta,wp=p(()=>{Oe();tt();le();wv=class Sv{constructor(e={}){if(this.uid=K("renderTarget"),this.colorTextures=[],this.dirtyId=0,this.isRoot=!1,this._size=new Float32Array(2),this._managedColorTextures=!1,e={...Sv.defaultOptions,...e},this.stencil=e.stencil,this.depth=e.depth,this.isRoot=e.isRoot,typeof e.colorTextures=="number"){this._managedColorTextures=!0;for(let t=0;t<e.colorTextures;t++)this.colorTextures.push(new se({width:e.width,height:e.height,resolution:e.resolution,antialias:e.antialias}))}else{this.colorTextures=[...e.colorTextures.map(i=>i.source)];let t=this.colorTexture.source;this.resize(t.width,t.height,t._resolution)}this.colorTexture.source.on("resize",this.onSourceResize,this),(e.depthStencilTexture||this.stencil)&&(e.depthStencilTexture instanceof M||e.depthStencilTexture instanceof se?this.depthStencilTexture=e.depthStencilTexture.source:this.ensureDepthStencilTexture())}get size(){let e=this._size;return e[0]=this.pixelWidth,e[1]=this.pixelHeight,e}get width(){return this.colorTexture.source.width}get height(){return this.colorTexture.source.height}get pixelWidth(){return this.colorTexture.source.pixelWidth}get pixelHeight(){return this.colorTexture.source.pixelHeight}get resolution(){return this.colorTexture.source._resolution}get colorTexture(){return this.colorTextures[0]}onSourceResize(e){this.resize(e.width,e.height,e._resolution,!0)}ensureDepthStencilTexture(){this.depthStencilTexture||(this.depthStencilTexture=new se({width:this.width,height:this.height,resolution:this.resolution,format:"depth24plus-stencil8",autoGenerateMipmaps:!1,antialias:!1,mipLevelCount:1}))}resize(e,t,i=this.resolution,s=!1){this.dirtyId++,this.colorTextures.forEach((n,o)=>{s&&o===0||n.source.resize(e,t,i)}),this.depthStencilTexture&&this.depthStencilTexture.source.resize(e,t,i)}destroy(){this.colorTexture.source.off("resize",this.onSourceResize,this),this._managedColorTextures&&this.colorTextures.forEach(e=>{e.destroy()}),this.depthStencilTexture&&(this.depthStencilTexture.destroy(),delete this.depthStencilTexture)}};wv.defaultOptions={width:0,height:0,resolution:1,colorTextures:1,stencil:!1,depth:!1,antialias:!1,isRoot:!1};Ta=wv});function Vl(r,e){if(!wa.has(r)){let t=new M({source:new je({resource:r,...e})}),i=()=>{wa.get(r)===t&&wa.delete(r)};t.once("destroy",i),t.source.once("destroy",i),wa.set(r,t)}return wa.get(r)}var wa,Sp=p(()=>{Is();le();wa=new Map});var vp,Cv,Ev=p(()=>{Ce();B();Ge();ye();wp();Sp();vp=class vv{get autoDensity(){return this.texture.source.autoDensity}set autoDensity(e){this.texture.source.autoDensity=e}get resolution(){return this.texture.source._resolution}set resolution(e){this.texture.source.resize(this.texture.source.width,this.texture.source.height,e)}init(e){e={...vv.defaultOptions,...e},e.view&&(z($,"ViewSystem.view has been renamed to ViewSystem.canvas"),e.canvas=e.view),this.screen=new Y(0,0,e.width,e.height),this.canvas=e.canvas||W.get().createCanvas(),this.antialias=!!e.antialias,this.texture=Vl(this.canvas,e),this.renderTarget=new Ta({colorTextures:[this.texture],depth:!!e.depth,isRoot:!0}),this.texture.source.transparent=e.backgroundAlpha<1,this.resolution=e.resolution}resize(e,t,i){this.texture.source.resize(e,t,i),this.screen.width=this.texture.frame.width,this.screen.height=this.texture.frame.height}destroy(e=!1){(typeof e=="boolean"?e:!!e?.removeView)&&this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas)}};vp.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"view",priority:0};vp.defaultOptions={width:800,height:600,autoDensity:!1,antialias:!1};Cv=vp});var Hl,Wl,Cp=p(()=>{BS();RS();GS();NS();LS();VS();YS();KS();QS();ev();tv();sv();ov();av();cv();dv();_v();Tv();Ev();Hl=[JS,ba,fn,Cv,la,yv,_a,iv,da,xv,ya],Wl=[xa,mp,ha,ca,fa,pa,ma,oa]});var Sa,kv=p(()=>{B();Sa=class{constructor(e){this._hash=Object.create(null),this._renderer=e,this._renderer.renderableGC.addManagedHash(this,"_hash")}contextChange(e){this._gpu=e}getBindGroup(e,t,i){return e._updateKey(),this._hash[e._key]||this._createBindGroup(e,t,i)}_createBindGroup(e,t,i){let s=this._gpu.device,n=t.layout[i],o=[],a=this._renderer;for(let l in n){let h=e.resources[l]??e.resources[n[l]],f;if(h._resourceType==="uniformGroup"){let d=h;a.ubo.updateUniformGroup(d);let m=d.buffer;f={buffer:a.buffer.getGPUBuffer(m),offset:0,size:m.descriptor.size}}else if(h._resourceType==="buffer"){let d=h;f={buffer:a.buffer.getGPUBuffer(d),offset:0,size:d.descriptor.size}}else if(h._resourceType==="bufferResource"){let d=h;f={buffer:a.buffer.getGPUBuffer(d.buffer),offset:d.offset,size:d.size}}else if(h._resourceType==="textureSampler"){let d=h;f=a.texture.getGpuSampler(d)}else if(h._resourceType==="textureSource"){let d=h;f=a.texture.getGpuSource(d).createView({})}o.push({binding:n[l],resource:f})}let c=a.shader.getProgramData(t).bindGroups[i],u=s.createBindGroup({layout:c,entries:o});return this._hash[e._key]=u,u}destroy(){for(let e of Object.keys(this._hash))this._hash[e]=null;this._hash=null,this._renderer=null}};Sa.extension={type:[b.WebGPUSystem],name:"bindGroup"}});var va,Av=p(()=>{B();Sf();va=class{constructor(e){this._gpuBuffers=Object.create(null),this._managedBuffers=[],e.renderableGC.addManagedHash(this,"_gpuBuffers")}contextChange(e){this._gpu=e}getGPUBuffer(e){return this._gpuBuffers[e.uid]||this.createGPUBuffer(e)}updateBuffer(e){let t=this._gpuBuffers[e.uid]||this.createGPUBuffer(e),i=e.data;return e._updateID&&i&&(e._updateID=0,this._gpu.device.queue.writeBuffer(t,0,i.buffer,0,(e._updateSize||i.byteLength)+3&-4)),t}destroyAll(){for(let e in this._gpuBuffers)this._gpuBuffers[e].destroy();this._gpuBuffers={}}createGPUBuffer(e){this._gpuBuffers[e.uid]||(e.on("update",this.updateBuffer,this),e.on("change",this.onBufferChange,this),e.on("destroy",this.onBufferDestroy,this),this._managedBuffers.push(e));let t=this._gpu.device.createBuffer(e.descriptor);return e._updateID=0,e.data&&(ko(e.data.buffer,t.getMappedRange()),t.unmap()),this._gpuBuffers[e.uid]=t,t}onBufferChange(e){this._gpuBuffers[e.uid].destroy(),e._updateID=0,this._gpuBuffers[e.uid]=this.createGPUBuffer(e)}onBufferDestroy(e){this._managedBuffers.splice(this._managedBuffers.indexOf(e),1),this._destroyBuffer(e)}destroy(){this._managedBuffers.forEach(e=>this._destroyBuffer(e)),this._managedBuffers=null,this._gpuBuffers=null}_destroyBuffer(e){this._gpuBuffers[e.uid].destroy(),e.off("update",this.updateBuffer,this),e.off("change",this.onBufferChange,this),e.off("destroy",this.onBufferDestroy,this),this._gpuBuffers[e.uid]=null}};va.extension={type:[b.WebGPUSystem],name:"buffer"}});var Ca,Pv=p(()=>{B();Ca=class{constructor(e){this._colorMaskCache=15,this._renderer=e}setMask(e){this._colorMaskCache!==e&&(this._colorMaskCache=e,this._renderer.pipeline.setColorMask(e))}destroy(){this._renderer=null,this._colorMaskCache=null}};Ca.extension={type:[b.WebGPUSystem],name:"colorMask"}});var mn,Bv=p(()=>{Ce();B();mn=class{constructor(e){this._renderer=e}async init(e){return this._initPromise?this._initPromise:(this._initPromise=this._createDeviceAndAdaptor(e).then(t=>{this.gpu=t,this._renderer.runners.contextChange.emit(this.gpu)}),this._initPromise)}contextChange(e){this._renderer.gpu=e}async _createDeviceAndAdaptor(e){let t=await W.get().getNavigator().gpu.requestAdapter({powerPreference:e.powerPreference,forceFallbackAdapter:e.forceFallbackAdapter}),i=["texture-compression-bc","texture-compression-astc","texture-compression-etc2"].filter(n=>t.features.has(n)),s=await t.requestDevice({requiredFeatures:i});return{adapter:t,device:s}}destroy(){this.gpu=null,this._renderer=null}};mn.extension={type:[b.WebGPUSystem],name:"device"};mn.defaultOptions={powerPreference:void 0,forceFallbackAdapter:!1}});var Ea,Rv=p(()=>{B();Ea=class{constructor(e){this._boundBindGroup=Object.create(null),this._boundVertexBuffer=Object.create(null),this._renderer=e}renderStart(){this.commandFinished=new Promise(e=>{this._resolveCommandFinished=e}),this.commandEncoder=this._renderer.gpu.device.createCommandEncoder()}beginRenderPass(e){this.endRenderPass(),this._clearCache(),this.renderPassEncoder=this.commandEncoder.beginRenderPass(e.descriptor)}endRenderPass(){this.renderPassEncoder&&this.renderPassEncoder.end(),this.renderPassEncoder=null}setViewport(e){this.renderPassEncoder.setViewport(e.x,e.y,e.width,e.height,0,1)}setPipelineFromGeometryProgramAndState(e,t,i,s){let n=this._renderer.pipeline.getPipeline(e,t,i,s);this.setPipeline(n)}setPipeline(e){this._boundPipeline!==e&&(this._boundPipeline=e,this.renderPassEncoder.setPipeline(e))}_setVertexBuffer(e,t){this._boundVertexBuffer[e]!==t&&(this._boundVertexBuffer[e]=t,this.renderPassEncoder.setVertexBuffer(e,this._renderer.buffer.updateBuffer(t)))}_setIndexBuffer(e){if(this._boundIndexBuffer===e)return;this._boundIndexBuffer=e;let t=e.data.BYTES_PER_ELEMENT===2?"uint16":"uint32";this.renderPassEncoder.setIndexBuffer(this._renderer.buffer.updateBuffer(e),t)}resetBindGroup(e){this._boundBindGroup[e]=null}setBindGroup(e,t,i){if(this._boundBindGroup[e]===t)return;this._boundBindGroup[e]=t,t._touch(this._renderer.textureGC.count);let s=this._renderer.bindGroup.getBindGroup(t,i,e);this.renderPassEncoder.setBindGroup(e,s)}setGeometry(e,t){let i=this._renderer.pipeline.getBufferNamesToBind(e,t);for(let s in i)this._setVertexBuffer(s,e.attributes[i[s]].buffer);e.indexBuffer&&this._setIndexBuffer(e.indexBuffer)}_setShaderBindGroups(e,t){for(let i in e.groups){let s=e.groups[i];t||this._syncBindGroup(s),this.setBindGroup(i,s,e.gpuProgram)}}_syncBindGroup(e){for(let t in e.resources){let i=e.resources[t];i.isUniformGroup&&this._renderer.ubo.updateUniformGroup(i)}}draw(e){let{geometry:t,shader:i,state:s,topology:n,size:o,start:a,instanceCount:c,skipSync:u}=e;this.setPipelineFromGeometryProgramAndState(t,i.gpuProgram,s,n),this.setGeometry(t,i.gpuProgram),this._setShaderBindGroups(i,u),t.indexBuffer?this.renderPassEncoder.drawIndexed(o||t.indexBuffer.data.length,c??t.instanceCount,a||0):this.renderPassEncoder.draw(o||t.getSize(),c??t.instanceCount,a||0)}finishRenderPass(){this.renderPassEncoder&&(this.renderPassEncoder.end(),this.renderPassEncoder=null)}postrender(){this.finishRenderPass(),this._gpu.device.queue.submit([this.commandEncoder.finish()]),this._resolveCommandFinished(),this.commandEncoder=null}restoreRenderPass(){let e=this._renderer.renderTarget.adaptor.getDescriptor(this._renderer.renderTarget.renderTarget,!1,[0,0,0,1]);this.renderPassEncoder=this.commandEncoder.beginRenderPass(e);let t=this._boundPipeline,i={...this._boundVertexBuffer},s=this._boundIndexBuffer,n={...this._boundBindGroup};this._clearCache();let o=this._renderer.renderTarget.viewport;this.renderPassEncoder.setViewport(o.x,o.y,o.width,o.height,0,1),this.setPipeline(t);for(let a in i)this._setVertexBuffer(a,i[a]);for(let a in n)this.setBindGroup(a,n[a],null);this._setIndexBuffer(s)}_clearCache(){for(let e=0;e<16;e++)this._boundBindGroup[e]=null,this._boundVertexBuffer[e]=null;this._boundIndexBuffer=null,this._boundPipeline=null}destroy(){this._renderer=null,this._gpu=null,this._boundBindGroup=null,this._boundVertexBuffer=null,this._boundIndexBuffer=null,this._boundPipeline=null}contextChange(e){this._gpu=e}};Ea.extension={type:[b.WebGPUSystem],name:"encoder",priority:1}});var ka,Dv=p(()=>{B();ka=class{constructor(e){this._renderer=e}contextChange(){this.maxTextures=this._renderer.device.gpu.device.limits.maxSampledTexturesPerShaderStage,this.maxBatchableTextures=this.maxTextures}destroy(){}};ka.extension={type:[b.WebGPUSystem],name:"limits"}});var Aa,Mv=p(()=>{B();Wi();Aa=class{constructor(e){this._renderTargetStencilState=Object.create(null),this._renderer=e,e.renderTarget.onRenderTargetChange.add(this)}onRenderTargetChange(e){let t=this._renderTargetStencilState[e.uid];t||(t=this._renderTargetStencilState[e.uid]={stencilMode:fe.DISABLED,stencilReference:0}),this._activeRenderTarget=e,this.setStencilMode(t.stencilMode,t.stencilReference)}setStencilMode(e,t){let i=this._renderTargetStencilState[this._activeRenderTarget.uid];i.stencilMode=e,i.stencilReference=t;let s=this._renderer;s.pipeline.setStencilMode(e),s.encoder.renderPassEncoder.setStencilReference(t)}destroy(){this._renderer.renderTarget.onRenderTargetChange.remove(this),this._renderer=null,this._activeRenderTarget=null,this._renderTargetStencilState=null}};Aa.extension={type:[b.WebGPUSystem],name:"stencil"}});var pn,Ep=p(()=>{np();Yr();Cr();pn=class{constructor(e){this._syncFunctionHash=Object.create(null),this._adaptor=e,this._systemCheck()}_systemCheck(){if(!Ul())throw new Error("Current environment does not allow unsafe-eval, please use pixi.js/unsafe-eval module to enable support.")}ensureUniformGroup(e){let t=this.getUniformGroupData(e);e.buffer||(e.buffer=new Ee({data:new Float32Array(t.layout.size/4),usage:Q.UNIFORM|Q.COPY_DST}))}getUniformGroupData(e){return this._syncFunctionHash[e._signature]||this._initUniformGroup(e)}_initUniformGroup(e){let t=e._signature,i=this._syncFunctionHash[t];if(!i){let s=Object.keys(e.uniformStructures).map(a=>e.uniformStructures[a]),n=this._adaptor.createUboElements(s),o=this._generateUboSync(n.uboElements);i=this._syncFunctionHash[t]={layout:n,syncFunction:o}}return this._syncFunctionHash[t]}_generateUboSync(e){return this._adaptor.generateUboSync(e)}syncUniformGroup(e,t,i){let s=this.getUniformGroupData(e);e.buffer||(e.buffer=new Ee({data:new Float32Array(s.layout.size/4),usage:Q.UNIFORM|Q.COPY_DST}));let n=null;return t||(t=e.buffer.data,n=e.buffer.dataInt32),i||(i=0),s.syncFunction(e.uniforms,t,n,i),!0}updateUniformGroup(e){if(e.isStatic&&!e._dirtyId)return!1;e._dirtyId=0;let t=this.syncUniformGroup(e);return e.buffer.update(),t}destroy(){this._syncFunctionHash=null}}});function Iv(r){let e=r.map(i=>({data:i,offset:0,size:0})),t=0;for(let i=0;i<e.length;i++){let s=e[i],n=Pa[s.data.type].size,o=Pa[s.data.type].align;if(!Pa[s.data.type])throw new Error(`[Pixi.js] WebGPU UniformBuffer: Unknown type ${s.data.type}`);s.data.size>1&&(n=Math.max(n,o)*s.data.size),t=Math.ceil(t/o)*o,s.size=n,s.offset=t,t+=n}return t=Math.ceil(t/16)*16,{uboElements:e,size:t}}var Pa,kp=p(()=>{"use strict";Pa={i32:{align:4,size:4},u32:{align:4,size:4},f32:{align:4,size:4},f16:{align:2,size:2},"vec2<i32>":{align:8,size:8},"vec2<u32>":{align:8,size:8},"vec2<f32>":{align:8,size:8},"vec2<f16>":{align:4,size:4},"vec3<i32>":{align:16,size:12},"vec3<u32>":{align:16,size:12},"vec3<f32>":{align:16,size:12},"vec3<f16>":{align:8,size:6},"vec4<i32>":{align:16,size:16},"vec4<u32>":{align:16,size:16},"vec4<f32>":{align:16,size:16},"vec4<f16>":{align:8,size:8},"mat2x2<f32>":{align:8,size:16},"mat2x2<f16>":{align:4,size:8},"mat3x2<f32>":{align:8,size:24},"mat3x2<f16>":{align:4,size:12},"mat4x2<f32>":{align:8,size:32},"mat4x2<f16>":{align:4,size:16},"mat2x3<f32>":{align:16,size:32},"mat2x3<f16>":{align:8,size:16},"mat3x3<f32>":{align:16,size:48},"mat3x3<f16>":{align:8,size:24},"mat4x3<f32>":{align:16,size:64},"mat4x3<f16>":{align:8,size:32},"mat2x4<f32>":{align:16,size:32},"mat2x4<f16>":{align:8,size:16},"mat3x4<f32>":{align:16,size:48},"mat3x4<f16>":{align:8,size:24},"mat4x4<f32>":{align:16,size:64},"mat4x4<f16>":{align:8,size:32}}});var Br,Ap=p(()=>{"use strict";Br=[{type:"mat3x3<f32>",test:r=>r.value.a!==void 0,ubo:`
766
+ `,"background: #E72264; padding:5px 0;","background: #6CA2EA; padding:5px 0;","background: #B5D33D; padding:5px 0;","background: #FED23F; padding:5px 0;","color: #FFFFFF; background: #E72264; padding:5px 0;","color: #E72264; background: #FFFFFF; padding:5px 0;"];globalThis.console.log(...e)}else globalThis.console&&globalThis.console.log(`PixiJS ${$s} - ${r} - http://www.pixijs.com/`);Gw=!0}}var Gw,Lw=p(()=>{ve();km();Gw=!1});var qs,zw=p(()=>{P();Lw();Jt();qs=class{constructor(e){this._renderer=e}init(e){if(e.hello){let t=this._renderer.name;this._renderer.type===Me.WEBGL&&(t+=` ${this._renderer.context.webGLVersion}`),Nw(t)}}};qs.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"hello",priority:-2};qs.defaultOptions={hello:!1}});function Vw(r){let e=!1;for(let i in r)if(r[i]==null){e=!0;break}if(!e)return r;let t=Object.create(null);for(let i in r){let s=r[i];s&&(t[i]=s)}return t}function Hw(r){let e=0;for(let t=0;t<r.length;t++)r[t]==null?e++:r[t-e]=r[t];return r.length-=e,r}var Ww=p(()=>{"use strict"});var IP,Um,qw,jw=p(()=>{P();Ww();IP=0,Um=class $w{constructor(e){this._managedRenderables=[],this._managedHashes=[],this._managedArrays=[],this._renderer=e}init(e){e={...$w.defaultOptions,...e},this.maxUnusedTime=e.renderableGCMaxUnusedTime,this._frequency=e.renderableGCFrequency,this.enabled=e.renderableGCActive}get enabled(){return!!this._handler}set enabled(e){this.enabled!==e&&(e?(this._handler=this._renderer.scheduler.repeat(()=>this.run(),this._frequency,!1),this._hashHandler=this._renderer.scheduler.repeat(()=>{for(let t of this._managedHashes)t.context[t.hash]=Vw(t.context[t.hash])},this._frequency),this._arrayHandler=this._renderer.scheduler.repeat(()=>{for(let t of this._managedArrays)Hw(t.context[t.hash])},this._frequency)):(this._renderer.scheduler.cancel(this._handler),this._renderer.scheduler.cancel(this._hashHandler),this._renderer.scheduler.cancel(this._arrayHandler)))}addManagedHash(e,t){this._managedHashes.push({context:e,hash:t})}addManagedArray(e,t){this._managedArrays.push({context:e,hash:t})}prerender({container:e}){this._now=performance.now(),e.renderGroup.gcTick=IP++,this._updateInstructionGCTick(e.renderGroup,e.renderGroup.gcTick)}addRenderable(e){this.enabled&&(e._lastUsed===-1&&(this._managedRenderables.push(e),e.once("destroyed",this._removeRenderable,this)),e._lastUsed=this._now)}run(){let e=this._now,t=this._managedRenderables,i=this._renderer.renderPipes,s=0;for(let n=0;n<t.length;n++){let o=t[n];if(o===null){s++;continue}let a=o.renderGroup??o.parentRenderGroup,c=a?.instructionSet?.gcTick??-1;if((a?.gcTick??0)===c&&(o._lastUsed=e),e-o._lastUsed>this.maxUnusedTime){if(!o.destroyed){let u=i;a&&(a.structureDidChange=!0),u[o.renderPipeId].destroyRenderable(o)}o._lastUsed=-1,s++,o.off("destroyed",this._removeRenderable,this)}else t[n-s]=o}t.length-=s}destroy(){this.enabled=!1,this._renderer=null,this._managedRenderables.length=0,this._managedHashes.length=0,this._managedArrays.length=0}_removeRenderable(e){let t=this._managedRenderables.indexOf(e);t>=0&&(e.off("destroyed",this._removeRenderable,this),this._managedRenderables[t]=null)}_updateInstructionGCTick(e,t){e.instructionSet.gcTick=t;for(let i of e.renderGroupChildren)this._updateInstructionGCTick(i,t)}};Um.extension={type:[b.WebGLSystem,b.WebGPUSystem],name:"renderableGC",priority:0};Um.defaultOptions={renderableGCActive:!0,renderableGCMaxUnusedTime:6e4,renderableGCFrequency:3e4};qw=Um});var Om,Yw,Kw=p(()=>{P();Om=class Xw{constructor(e){this._renderer=e,this.count=0,this.checkCount=0}init(e){e={...Xw.defaultOptions,...e},this.checkCountMax=e.textureGCCheckCountMax,this.maxIdle=e.textureGCAMaxIdle??e.textureGCMaxIdle,this.active=e.textureGCActive}postrender(){this._renderer.renderingToScreen&&(this.count++,this.active&&(this.checkCount++,this.checkCount>this.checkCountMax&&(this.checkCount=0,this.run())))}run(){let e=this._renderer.texture.managedTextures;for(let t=0;t<e.length;t++){let i=e[t];i.autoGarbageCollect&&i.resource&&i._touched>-1&&this.count-i._touched>this.maxIdle&&(i._touched=-1,i.unload())}}destroy(){this._renderer=null}};Om.extension={type:[b.WebGLSystem,b.WebGPUSystem],name:"textureGC"};Om.defaultOptions={textureGCActive:!0,textureGCAMaxIdle:null,textureGCMaxIdle:3600,textureGCCheckCountMax:600};Yw=Om});var Qw,Qo,Gm=p(()=>{Oe();et();le();Qw=class Zw{constructor(e={}){if(this.uid=K("renderTarget"),this.colorTextures=[],this.dirtyId=0,this.isRoot=!1,this._size=new Float32Array(2),this._managedColorTextures=!1,e={...Zw.defaultOptions,...e},this.stencil=e.stencil,this.depth=e.depth,this.isRoot=e.isRoot,typeof e.colorTextures=="number"){this._managedColorTextures=!0;for(let t=0;t<e.colorTextures;t++)this.colorTextures.push(new se({width:e.width,height:e.height,resolution:e.resolution,antialias:e.antialias}))}else{this.colorTextures=[...e.colorTextures.map(i=>i.source)];let t=this.colorTexture.source;this.resize(t.width,t.height,t._resolution)}this.colorTexture.source.on("resize",this.onSourceResize,this),(e.depthStencilTexture||this.stencil)&&(e.depthStencilTexture instanceof D||e.depthStencilTexture instanceof se?this.depthStencilTexture=e.depthStencilTexture.source:this.ensureDepthStencilTexture())}get size(){let e=this._size;return e[0]=this.pixelWidth,e[1]=this.pixelHeight,e}get width(){return this.colorTexture.source.width}get height(){return this.colorTexture.source.height}get pixelWidth(){return this.colorTexture.source.pixelWidth}get pixelHeight(){return this.colorTexture.source.pixelHeight}get resolution(){return this.colorTexture.source._resolution}get colorTexture(){return this.colorTextures[0]}onSourceResize(e){this.resize(e.width,e.height,e._resolution,!0)}ensureDepthStencilTexture(){this.depthStencilTexture||(this.depthStencilTexture=new se({width:this.width,height:this.height,resolution:this.resolution,format:"depth24plus-stencil8",autoGenerateMipmaps:!1,antialias:!1,mipLevelCount:1}))}resize(e,t,i=this.resolution,s=!1){this.dirtyId++,this.colorTextures.forEach((n,o)=>{s&&o===0||n.source.resize(e,t,i)}),this.depthStencilTexture&&this.depthStencilTexture.source.resize(e,t,i)}destroy(){this.colorTexture.source.off("resize",this.onSourceResize,this),this._managedColorTextures&&this.colorTextures.forEach(e=>{e.destroy()}),this.depthStencilTexture&&(this.depthStencilTexture.destroy(),delete this.depthStencilTexture)}};Qw.defaultOptions={width:0,height:0,resolution:1,colorTextures:1,stencil:!1,depth:!1,antialias:!1,isRoot:!1};Qo=Qw});function nl(r,e){if(!Zo.has(r)){let t=new D({source:new je({resource:r,...e})}),i=()=>{Zo.get(r)===t&&Zo.delete(r)};t.once("destroy",i),t.source.once("destroy",i),Zo.set(r,t)}return Zo.get(r)}var Zo,Nm=p(()=>{ms();le();Zo=new Map});var Lm,eS,tS=p(()=>{ve();P();Ge();ye();Gm();Nm();Lm=class Jw{get autoDensity(){return this.texture.source.autoDensity}set autoDensity(e){this.texture.source.autoDensity=e}get resolution(){return this.texture.source._resolution}set resolution(e){this.texture.source.resize(this.texture.source.width,this.texture.source.height,e)}init(e){e={...Jw.defaultOptions,...e},e.view&&(z($,"ViewSystem.view has been renamed to ViewSystem.canvas"),e.canvas=e.view),this.screen=new Y(0,0,e.width,e.height),this.canvas=e.canvas||W.get().createCanvas(),this.antialias=!!e.antialias,this.texture=nl(this.canvas,e),this.renderTarget=new Qo({colorTextures:[this.texture],depth:!!e.depth,isRoot:!0}),this.texture.source.transparent=e.backgroundAlpha<1,this.resolution=e.resolution}resize(e,t,i){this.texture.source.resize(e,t,i),this.screen.width=this.texture.frame.width,this.screen.height=this.texture.frame.height}destroy(e=!1){(typeof e=="boolean"?e:!!e?.removeView)&&this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas)}};Lm.extension={type:[b.WebGLSystem,b.WebGPUSystem,b.CanvasSystem],name:"view",priority:0};Lm.defaultOptions={width:800,height:600,autoDensity:!1,antialias:!1};eS=Lm});var ol,al,zm=p(()=>{nw();ow();fw();mw();pw();xw();vw();Cw();Ew();Pw();Bw();Mw();Fw();Uw();Ow();zw();jw();Kw();tS();ol=[Aw,Yo,qs,eS,Lo,Yw,Xo,Dw,Vo,qw,Ko],al=[jo,Bm,zo,Go,Ho,$o,Wo,Uo]});var Jo,rS=p(()=>{P();Jo=class{constructor(e){this._hash=Object.create(null),this._renderer=e,this._renderer.renderableGC.addManagedHash(this,"_hash")}contextChange(e){this._gpu=e}getBindGroup(e,t,i){return e._updateKey(),this._hash[e._key]||this._createBindGroup(e,t,i)}_createBindGroup(e,t,i){let s=this._gpu.device,n=t.layout[i],o=[],a=this._renderer;for(let l in n){let h=e.resources[l]??e.resources[n[l]],f;if(h._resourceType==="uniformGroup"){let d=h;a.ubo.updateUniformGroup(d);let m=d.buffer;f={buffer:a.buffer.getGPUBuffer(m),offset:0,size:m.descriptor.size}}else if(h._resourceType==="buffer"){let d=h;f={buffer:a.buffer.getGPUBuffer(d),offset:0,size:d.descriptor.size}}else if(h._resourceType==="bufferResource"){let d=h;f={buffer:a.buffer.getGPUBuffer(d.buffer),offset:d.offset,size:d.size}}else if(h._resourceType==="textureSampler"){let d=h;f=a.texture.getGpuSampler(d)}else if(h._resourceType==="textureSource"){let d=h;f=a.texture.getGpuSource(d).createView({})}o.push({binding:n[l],resource:f})}let c=a.shader.getProgramData(t).bindGroups[i],u=s.createBindGroup({layout:c,entries:o});return this._hash[e._key]=u,u}destroy(){for(let e of Object.keys(this._hash))this._hash[e]=null;this._hash=null,this._renderer=null}};Jo.extension={type:[b.WebGPUSystem],name:"bindGroup"}});var ea,iS=p(()=>{P();Gd();ea=class{constructor(e){this._gpuBuffers=Object.create(null),this._managedBuffers=[],e.renderableGC.addManagedHash(this,"_gpuBuffers")}contextChange(e){this._gpu=e}getGPUBuffer(e){return this._gpuBuffers[e.uid]||this.createGPUBuffer(e)}updateBuffer(e){let t=this._gpuBuffers[e.uid]||this.createGPUBuffer(e),i=e.data;return e._updateID&&i&&(e._updateID=0,this._gpu.device.queue.writeBuffer(t,0,i.buffer,0,(e._updateSize||i.byteLength)+3&-4)),t}destroyAll(){for(let e in this._gpuBuffers)this._gpuBuffers[e].destroy();this._gpuBuffers={}}createGPUBuffer(e){this._gpuBuffers[e.uid]||(e.on("update",this.updateBuffer,this),e.on("change",this.onBufferChange,this),e.on("destroy",this.onBufferDestroy,this),this._managedBuffers.push(e));let t=this._gpu.device.createBuffer(e.descriptor);return e._updateID=0,e.data&&(ro(e.data.buffer,t.getMappedRange()),t.unmap()),this._gpuBuffers[e.uid]=t,t}onBufferChange(e){this._gpuBuffers[e.uid].destroy(),e._updateID=0,this._gpuBuffers[e.uid]=this.createGPUBuffer(e)}onBufferDestroy(e){this._managedBuffers.splice(this._managedBuffers.indexOf(e),1),this._destroyBuffer(e)}destroy(){this._managedBuffers.forEach(e=>this._destroyBuffer(e)),this._managedBuffers=null,this._gpuBuffers=null}_destroyBuffer(e){this._gpuBuffers[e.uid].destroy(),e.off("update",this.updateBuffer,this),e.off("change",this.onBufferChange,this),e.off("destroy",this.onBufferDestroy,this),this._gpuBuffers[e.uid]=null}};ea.extension={type:[b.WebGPUSystem],name:"buffer"}});var ta,sS=p(()=>{P();ta=class{constructor(e){this._colorMaskCache=15,this._renderer=e}setMask(e){this._colorMaskCache!==e&&(this._colorMaskCache=e,this._renderer.pipeline.setColorMask(e))}destroy(){this._renderer=null,this._colorMaskCache=null}};ta.extension={type:[b.WebGPUSystem],name:"colorMask"}});var js,nS=p(()=>{ve();P();js=class{constructor(e){this._renderer=e}async init(e){return this._initPromise?this._initPromise:(this._initPromise=this._createDeviceAndAdaptor(e).then(t=>{this.gpu=t,this._renderer.runners.contextChange.emit(this.gpu)}),this._initPromise)}contextChange(e){this._renderer.gpu=e}async _createDeviceAndAdaptor(e){let t=await W.get().getNavigator().gpu.requestAdapter({powerPreference:e.powerPreference,forceFallbackAdapter:e.forceFallbackAdapter}),i=["texture-compression-bc","texture-compression-astc","texture-compression-etc2"].filter(n=>t.features.has(n)),s=await t.requestDevice({requiredFeatures:i});return{adapter:t,device:s}}destroy(){this.gpu=null,this._renderer=null}};js.extension={type:[b.WebGPUSystem],name:"device"};js.defaultOptions={powerPreference:void 0,forceFallbackAdapter:!1}});var ra,oS=p(()=>{P();ra=class{constructor(e){this._boundBindGroup=Object.create(null),this._boundVertexBuffer=Object.create(null),this._renderer=e}renderStart(){this.commandFinished=new Promise(e=>{this._resolveCommandFinished=e}),this.commandEncoder=this._renderer.gpu.device.createCommandEncoder()}beginRenderPass(e){this.endRenderPass(),this._clearCache(),this.renderPassEncoder=this.commandEncoder.beginRenderPass(e.descriptor)}endRenderPass(){this.renderPassEncoder&&this.renderPassEncoder.end(),this.renderPassEncoder=null}setViewport(e){this.renderPassEncoder.setViewport(e.x,e.y,e.width,e.height,0,1)}setPipelineFromGeometryProgramAndState(e,t,i,s){let n=this._renderer.pipeline.getPipeline(e,t,i,s);this.setPipeline(n)}setPipeline(e){this._boundPipeline!==e&&(this._boundPipeline=e,this.renderPassEncoder.setPipeline(e))}_setVertexBuffer(e,t){this._boundVertexBuffer[e]!==t&&(this._boundVertexBuffer[e]=t,this.renderPassEncoder.setVertexBuffer(e,this._renderer.buffer.updateBuffer(t)))}_setIndexBuffer(e){if(this._boundIndexBuffer===e)return;this._boundIndexBuffer=e;let t=e.data.BYTES_PER_ELEMENT===2?"uint16":"uint32";this.renderPassEncoder.setIndexBuffer(this._renderer.buffer.updateBuffer(e),t)}resetBindGroup(e){this._boundBindGroup[e]=null}setBindGroup(e,t,i){if(this._boundBindGroup[e]===t)return;this._boundBindGroup[e]=t,t._touch(this._renderer.textureGC.count);let s=this._renderer.bindGroup.getBindGroup(t,i,e);this.renderPassEncoder.setBindGroup(e,s)}setGeometry(e,t){let i=this._renderer.pipeline.getBufferNamesToBind(e,t);for(let s in i)this._setVertexBuffer(s,e.attributes[i[s]].buffer);e.indexBuffer&&this._setIndexBuffer(e.indexBuffer)}_setShaderBindGroups(e,t){for(let i in e.groups){let s=e.groups[i];t||this._syncBindGroup(s),this.setBindGroup(i,s,e.gpuProgram)}}_syncBindGroup(e){for(let t in e.resources){let i=e.resources[t];i.isUniformGroup&&this._renderer.ubo.updateUniformGroup(i)}}draw(e){let{geometry:t,shader:i,state:s,topology:n,size:o,start:a,instanceCount:c,skipSync:u}=e;this.setPipelineFromGeometryProgramAndState(t,i.gpuProgram,s,n),this.setGeometry(t,i.gpuProgram),this._setShaderBindGroups(i,u),t.indexBuffer?this.renderPassEncoder.drawIndexed(o||t.indexBuffer.data.length,c??t.instanceCount,a||0):this.renderPassEncoder.draw(o||t.getSize(),c??t.instanceCount,a||0)}finishRenderPass(){this.renderPassEncoder&&(this.renderPassEncoder.end(),this.renderPassEncoder=null)}postrender(){this.finishRenderPass(),this._gpu.device.queue.submit([this.commandEncoder.finish()]),this._resolveCommandFinished(),this.commandEncoder=null}restoreRenderPass(){let e=this._renderer.renderTarget.adaptor.getDescriptor(this._renderer.renderTarget.renderTarget,!1,[0,0,0,1]);this.renderPassEncoder=this.commandEncoder.beginRenderPass(e);let t=this._boundPipeline,i={...this._boundVertexBuffer},s=this._boundIndexBuffer,n={...this._boundBindGroup};this._clearCache();let o=this._renderer.renderTarget.viewport;this.renderPassEncoder.setViewport(o.x,o.y,o.width,o.height,0,1),this.setPipeline(t);for(let a in i)this._setVertexBuffer(a,i[a]);for(let a in n)this.setBindGroup(a,n[a],null);this._setIndexBuffer(s)}_clearCache(){for(let e=0;e<16;e++)this._boundBindGroup[e]=null,this._boundVertexBuffer[e]=null;this._boundIndexBuffer=null,this._boundPipeline=null}destroy(){this._renderer=null,this._gpu=null,this._boundBindGroup=null,this._boundVertexBuffer=null,this._boundIndexBuffer=null,this._boundPipeline=null}contextChange(e){this._gpu=e}};ra.extension={type:[b.WebGPUSystem],name:"encoder",priority:1}});var ia,aS=p(()=>{P();ia=class{constructor(e){this._renderer=e}contextChange(){this.maxTextures=this._renderer.device.gpu.device.limits.maxSampledTexturesPerShaderStage,this.maxBatchableTextures=this.maxTextures}destroy(){}};ia.extension={type:[b.WebGPUSystem],name:"limits"}});var sa,cS=p(()=>{P();ki();sa=class{constructor(e){this._renderTargetStencilState=Object.create(null),this._renderer=e,e.renderTarget.onRenderTargetChange.add(this)}onRenderTargetChange(e){let t=this._renderTargetStencilState[e.uid];t||(t=this._renderTargetStencilState[e.uid]={stencilMode:me.DISABLED,stencilReference:0}),this._activeRenderTarget=e,this.setStencilMode(t.stencilMode,t.stencilReference)}setStencilMode(e,t){let i=this._renderTargetStencilState[this._activeRenderTarget.uid];i.stencilMode=e,i.stencilReference=t;let s=this._renderer;s.pipeline.setStencilMode(e),s.encoder.renderPassEncoder.setStencilReference(t)}destroy(){this._renderer.renderTarget.onRenderTargetChange.remove(this),this._renderer=null,this._activeRenderTarget=null,this._renderTargetStencilState=null}};sa.extension={type:[b.WebGPUSystem],name:"stencil"}});var Xs,Vm=p(()=>{Tm();qr();wr();Xs=class{constructor(e){this._syncFunctionHash=Object.create(null),this._adaptor=e,this._systemCheck()}_systemCheck(){if(!Ju())throw new Error("Current environment does not allow unsafe-eval, please use pixi.js/unsafe-eval module to enable support.")}ensureUniformGroup(e){let t=this.getUniformGroupData(e);e.buffer||(e.buffer=new Ce({data:new Float32Array(t.layout.size/4),usage:Q.UNIFORM|Q.COPY_DST}))}getUniformGroupData(e){return this._syncFunctionHash[e._signature]||this._initUniformGroup(e)}_initUniformGroup(e){let t=e._signature,i=this._syncFunctionHash[t];if(!i){let s=Object.keys(e.uniformStructures).map(a=>e.uniformStructures[a]),n=this._adaptor.createUboElements(s),o=this._generateUboSync(n.uboElements);i=this._syncFunctionHash[t]={layout:n,syncFunction:o}}return this._syncFunctionHash[t]}_generateUboSync(e){return this._adaptor.generateUboSync(e)}syncUniformGroup(e,t,i){let s=this.getUniformGroupData(e);e.buffer||(e.buffer=new Ce({data:new Float32Array(s.layout.size/4),usage:Q.UNIFORM|Q.COPY_DST}));let n=null;return t||(t=e.buffer.data,n=e.buffer.dataInt32),i||(i=0),s.syncFunction(e.uniforms,t,n,i),!0}updateUniformGroup(e){if(e.isStatic&&!e._dirtyId)return!1;e._dirtyId=0;let t=this.syncUniformGroup(e);return e.buffer.update(),t}destroy(){this._syncFunctionHash=null}}});function uS(r){let e=r.map(i=>({data:i,offset:0,size:0})),t=0;for(let i=0;i<e.length;i++){let s=e[i],n=na[s.data.type].size,o=na[s.data.type].align;if(!na[s.data.type])throw new Error(`[Pixi.js] WebGPU UniformBuffer: Unknown type ${s.data.type}`);s.data.size>1&&(n=Math.max(n,o)*s.data.size),t=Math.ceil(t/o)*o,s.size=n,s.offset=t,t+=n}return t=Math.ceil(t/16)*16,{uboElements:e,size:t}}var na,Hm=p(()=>{"use strict";na={i32:{align:4,size:4},u32:{align:4,size:4},f32:{align:4,size:4},f16:{align:2,size:2},"vec2<i32>":{align:8,size:8},"vec2<u32>":{align:8,size:8},"vec2<f32>":{align:8,size:8},"vec2<f16>":{align:4,size:4},"vec3<i32>":{align:16,size:12},"vec3<u32>":{align:16,size:12},"vec3<f32>":{align:16,size:12},"vec3<f16>":{align:8,size:6},"vec4<i32>":{align:16,size:16},"vec4<u32>":{align:16,size:16},"vec4<f32>":{align:16,size:16},"vec4<f16>":{align:8,size:8},"mat2x2<f32>":{align:8,size:16},"mat2x2<f16>":{align:4,size:8},"mat3x2<f32>":{align:8,size:24},"mat3x2<f16>":{align:4,size:12},"mat4x2<f32>":{align:8,size:32},"mat4x2<f16>":{align:4,size:16},"mat2x3<f32>":{align:16,size:32},"mat2x3<f16>":{align:8,size:16},"mat3x3<f32>":{align:16,size:48},"mat3x3<f16>":{align:8,size:24},"mat4x3<f32>":{align:16,size:64},"mat4x3<f16>":{align:8,size:32},"mat2x4<f32>":{align:16,size:32},"mat2x4<f16>":{align:8,size:16},"mat3x4<f32>":{align:16,size:48},"mat3x4<f16>":{align:8,size:24},"mat4x4<f32>":{align:16,size:64},"mat4x4<f16>":{align:8,size:32}}});var kr,Wm=p(()=>{"use strict";kr=[{type:"mat3x3<f32>",test:r=>r.value.a!==void 0,ubo:`
767
767
  var matrix = uv[name].toArray(true);
768
768
  data[offset] = matrix[0];
769
769
  data[offset + 1] = matrix[1];
@@ -834,23 +834,23 @@ fn mainFragment(
834
834
  cv[2] = v.blue;
835
835
  gl.uniform3f(ud[name].location, v.red, v.green, v.blue);
836
836
  }
837
- `}]});function $l(r,e,t,i){let s=[`
837
+ `}]});function cl(r,e,t,i){let s=[`
838
838
  var v = null;
839
839
  var v2 = null;
840
840
  var t = 0;
841
841
  var index = 0;
842
842
  var name = null;
843
843
  var arrayOffset = null;
844
- `],n=0;for(let a=0;a<r.length;a++){let c=r[a],u=c.data.name,l=!1,h=0;for(let f=0;f<Br.length;f++)if(Br[f].test(c.data)){h=c.offset/4,s.push(`name = "${u}";`,`offset += ${h-n};`,Br[f][e]||Br[f].ubo),l=!0;break}if(!l)if(c.data.size>1)h=c.offset/4,s.push(t(c,h-n));else{let f=i[c.data.type];h=c.offset/4,s.push(`
844
+ `],n=0;for(let a=0;a<r.length;a++){let c=r[a],u=c.data.name,l=!1,h=0;for(let f=0;f<kr.length;f++)if(kr[f].test(c.data)){h=c.offset/4,s.push(`name = "${u}";`,`offset += ${h-n};`,kr[f][e]||kr[f].ubo),l=!0;break}if(!l)if(c.data.size>1)h=c.offset/4,s.push(t(c,h-n));else{let f=i[c.data.type];h=c.offset/4,s.push(`
845
845
  v = uv.${u};
846
846
  offset += ${h-n};
847
847
  ${f};
848
848
  `)}n=h}let o=s.join(`
849
- `);return new Function("uv","data","dataInt32","offset",o)}var Pp=p(()=>{Ap()});function gn(r,e){return`
849
+ `);return new Function("uv","data","dataInt32","offset",o)}var $m=p(()=>{Wm()});function Ys(r,e){return`
850
850
  for (let i = 0; i < ${r*e}; i++) {
851
851
  data[offset + (((i / ${r})|0) * 4) + (i % ${r})] = v[i];
852
852
  }
853
- `}var Bp,Fv,Rp=p(()=>{"use strict";Bp={f32:`
853
+ `}var qm,lS,jm=p(()=>{"use strict";qm={f32:`
854
854
  data[offset] = v;`,i32:`
855
855
  dataInt32[offset] = v;`,"vec2<f32>":`
856
856
  data[offset] = v[0];
@@ -886,12 +886,12 @@ fn mainFragment(
886
886
  data[offset + 10] = v[8];`,"mat4x4<f32>":`
887
887
  for (let i = 0; i < 16; i++) {
888
888
  data[offset + i] = v[i];
889
- }`,"mat3x2<f32>":gn(3,2),"mat4x2<f32>":gn(4,2),"mat2x3<f32>":gn(2,3),"mat4x3<f32>":gn(4,3),"mat2x4<f32>":gn(2,4),"mat3x4<f32>":gn(3,4)},Fv={...Bp,"mat2x2<f32>":`
889
+ }`,"mat3x2<f32>":Ys(3,2),"mat4x2<f32>":Ys(4,2),"mat2x3<f32>":Ys(2,3),"mat4x3<f32>":Ys(4,3),"mat2x4<f32>":Ys(2,4),"mat3x4<f32>":Ys(3,4)},lS={...qm,"mat2x2<f32>":`
890
890
  data[offset] = v[0];
891
891
  data[offset + 1] = v[1];
892
892
  data[offset + 2] = v[2];
893
893
  data[offset + 3] = v[3];
894
- `}});function Uv(r,e){let{size:t,align:i}=Pa[r.data.type],s=(i-t)/4,n=r.data.type.indexOf("i32")>=0?"dataInt32":"data";return`
894
+ `}});function hS(r,e){let{size:t,align:i}=na[r.data.type],s=(i-t)/4,n=r.data.type.indexOf("i32")>=0?"dataInt32":"data";return`
895
895
  v = uv.${r.data.name};
896
896
  ${e!==0?`offset += ${e};`:""}
897
897
 
@@ -907,7 +907,7 @@ fn mainFragment(
907
907
  }
908
908
  ${s!==0?`arrayOffset += ${s};`:""}
909
909
  }
910
- `}var Ov=p(()=>{kp()});function Gv(r){return $l(r,"uboWgsl",Uv,Fv)}var Nv=p(()=>{Pp();Rp();Ov()});var Ba,Lv=p(()=>{B();Ep();kp();Nv();Ba=class extends pn{constructor(){super({createUboElements:Iv,generateUboSync:Gv})}};Ba.extension={type:[b.WebGPUSystem],name:"ubo"}});var ri,ql=p(()=>{Ve();Oe();ri=class extends oe{constructor({buffer:e,offset:t,size:i}){super(),this.uid=K("buffer"),this._resourceType="bufferResource",this._touched=0,this._resourceId=K("resource"),this._bufferResource=!0,this.destroyed=!1,this.buffer=e,this.offset=t|0,this.size=i,this.buffer.on("change",this.onBufferChange,this)}onBufferChange(){this._resourceId=K("resource"),this.emit("change",this)}destroy(e=!1){this.destroyed=!0,e&&this.buffer.destroy(),this.emit("change",this),this.buffer=null}}});var jl,zv=p(()=>{"use strict";jl=class{constructor({minUniformOffsetAlignment:e}){this._minUniformOffsetAlignment=256,this.byteIndex=0,this._minUniformOffsetAlignment=e,this.data=new Float32Array(65535)}clear(){this.byteIndex=0}addEmptyGroup(e){if(e>this._minUniformOffsetAlignment/4)throw new Error(`UniformBufferBatch: array is too large: ${e*4}`);let t=this.byteIndex,i=t+e*4;if(i=Math.ceil(i/this._minUniformOffsetAlignment)*this._minUniformOffsetAlignment,i>this.data.length*4)throw new Error("UniformBufferBatch: ubo batch got too big");return this.byteIndex=i,t}addGroup(e){let t=this.addEmptyGroup(e.length);for(let i=0;i<e.length;i++)this.data[t/4+i]=e[i];return t}destroy(){this.data=null}}});var ii,Ra,Vv=p(()=>{B();Yr();ql();Cr();zv();Xr();ii=128,Ra=class{constructor(e){this._bindGroupHash=Object.create(null),this._buffers=[],this._bindGroups=[],this._bufferResources=[],this._renderer=e,this._renderer.renderableGC.addManagedHash(this,"_bindGroupHash"),this._batchBuffer=new jl({minUniformOffsetAlignment:ii});let t=256/ii;for(let i=0;i<t;i++){let s=Q.UNIFORM|Q.COPY_DST;i===0&&(s|=Q.COPY_SRC),this._buffers.push(new Ee({data:this._batchBuffer.data,usage:s}))}}renderEnd(){this._uploadBindGroups(),this._resetBindGroups()}_resetBindGroups(){for(let e in this._bindGroupHash)this._bindGroupHash[e]=null;this._batchBuffer.clear()}getUniformBindGroup(e,t){if(!t&&this._bindGroupHash[e.uid])return this._bindGroupHash[e.uid];this._renderer.ubo.ensureUniformGroup(e);let i=e.buffer.data,s=this._batchBuffer.addEmptyGroup(i.length);return this._renderer.ubo.syncUniformGroup(e,this._batchBuffer.data,s/4),this._bindGroupHash[e.uid]=this._getBindGroup(s/ii),this._bindGroupHash[e.uid]}getUboResource(e){this._renderer.ubo.updateUniformGroup(e);let t=e.buffer.data,i=this._batchBuffer.addGroup(t);return this._getBufferResource(i/ii)}getArrayBindGroup(e){let t=this._batchBuffer.addGroup(e);return this._getBindGroup(t/ii)}getArrayBufferResource(e){let i=this._batchBuffer.addGroup(e)/ii;return this._getBufferResource(i)}_getBufferResource(e){if(!this._bufferResources[e]){let t=this._buffers[e%2];this._bufferResources[e]=new ri({buffer:t,offset:(e/2|0)*256,size:ii})}return this._bufferResources[e]}_getBindGroup(e){if(!this._bindGroups[e]){let t=new Ne({0:this._getBufferResource(e)});this._bindGroups[e]=t}return this._bindGroups[e]}_uploadBindGroups(){let e=this._renderer.buffer,t=this._buffers[0];t.update(this._batchBuffer.byteIndex),e.updateBuffer(t);let i=this._renderer.gpu.device.createCommandEncoder();for(let s=1;s<this._buffers.length;s++){let n=this._buffers[s];i.copyBufferToBuffer(e.getGPUBuffer(t),ii,e.getGPUBuffer(n),0,this._batchBuffer.byteIndex)}this._renderer.gpu.device.queue.submit([i.finish()])}destroy(){for(let e=0;e<this._bindGroups.length;e++)this._bindGroups[e].destroy();this._bindGroups=null,this._bindGroupHash=null;for(let e=0;e<this._buffers.length;e++)this._buffers[e].destroy();this._buffers=null;for(let e=0;e<this._bufferResources.length;e++)this._bufferResources[e].destroy();this._bufferResources=null,this._batchBuffer.destroy(),this._bindGroupHash=null,this._renderer=null}};Ra.extension={type:[b.WebGPUPipes],name:"uniformBatch"}});function Xl(r,e){for(let t in r.attributes){let i=r.attributes[t],s=e[t];s?(i.format??(i.format=s.format),i.offset??(i.offset=s.offset),i.instance??(i.instance=s.instance)):N(`Attribute ${t} is not present in the shader, but is present in the geometry. Unable to infer attribute details.`)}lR(r)}function lR(r){let{buffers:e,attributes:t}=r,i={},s={};for(let n in e){let o=e[n];i[o.uid]=0,s[o.uid]=0}for(let n in t){let o=t[n];i[o.buffer.uid]+=ut(o.format).stride}for(let n in t){let o=t[n];o.stride??(o.stride=i[o.buffer.uid]),o.start??(o.start=s[o.buffer.uid]),s[o.buffer.uid]+=ut(o.format).stride}}var Dp=p(()=>{pe();qi()});var cr,Mp=p(()=>{Wi();cr=[];cr[fe.NONE]=void 0;cr[fe.DISABLED]={stencilWriteMask:0,stencilReadMask:0};cr[fe.RENDERING_MASK_ADD]={stencilFront:{compare:"equal",passOp:"increment-clamp"},stencilBack:{compare:"equal",passOp:"increment-clamp"}};cr[fe.RENDERING_MASK_REMOVE]={stencilFront:{compare:"equal",passOp:"decrement-clamp"},stencilBack:{compare:"equal",passOp:"decrement-clamp"}};cr[fe.MASK_ACTIVE]={stencilWriteMask:0,stencilFront:{compare:"equal",passOp:"keep"},stencilBack:{compare:"equal",passOp:"keep"}};cr[fe.INVERSE_MASK_ACTIVE]={stencilWriteMask:0,stencilFront:{compare:"not-equal",passOp:"keep"},stencilBack:{compare:"not-equal",passOp:"keep"}}});function dR(r,e,t,i,s){return r<<24|e<<16|t<<10|i<<5|s}function fR(r,e,t,i){return t<<6|r<<3|i<<1|e}var hR,Da,Hv=p(()=>{B();pe();Dp();Wi();Bo();Mp();hR={"point-list":0,"line-list":1,"line-strip":2,"triangle-list":3,"triangle-strip":4};Da=class{constructor(e){this._moduleCache=Object.create(null),this._bufferLayoutsCache=Object.create(null),this._bindingNamesCache=Object.create(null),this._pipeCache=Object.create(null),this._pipeStateCaches=Object.create(null),this._colorMask=15,this._multisampleCount=1,this._renderer=e}contextChange(e){this._gpu=e,this.setStencilMode(fe.DISABLED),this._updatePipeHash()}setMultisampleCount(e){this._multisampleCount!==e&&(this._multisampleCount=e,this._updatePipeHash())}setRenderTarget(e){this._multisampleCount=e.msaaSamples,this._depthStencilAttachment=e.descriptor.depthStencilAttachment?1:0,this._updatePipeHash()}setColorMask(e){this._colorMask!==e&&(this._colorMask=e,this._updatePipeHash())}setStencilMode(e){this._stencilMode!==e&&(this._stencilMode=e,this._stencilState=cr[e],this._updatePipeHash())}setPipeline(e,t,i,s){let n=this.getPipeline(e,t,i);s.setPipeline(n)}getPipeline(e,t,i,s){e._layoutKey||(Xl(e,t.attributeData),this._generateBufferKey(e)),s||(s=e.topology);let n=dR(e._layoutKey,t._layoutKey,i.data,i._blendModeId,hR[s]);return this._pipeCache[n]?this._pipeCache[n]:(this._pipeCache[n]=this._createPipeline(e,t,i,s),this._pipeCache[n])}_createPipeline(e,t,i,s){let n=this._gpu.device,o=this._createVertexBufferLayouts(e,t),a=this._renderer.state.getColorTargets(i);a[0].writeMask=this._stencilMode===fe.RENDERING_MASK_ADD?0:this._colorMask;let c=this._renderer.shader.getProgramData(t).pipeline,u={vertex:{module:this._getModule(t.vertex.source),entryPoint:t.vertex.entryPoint,buffers:o},fragment:{module:this._getModule(t.fragment.source),entryPoint:t.fragment.entryPoint,targets:a},primitive:{topology:s,cullMode:i.cullMode},layout:c,multisample:{count:this._multisampleCount},label:"PIXI Pipeline"};return this._depthStencilAttachment&&(u.depthStencil={...this._stencilState,format:"depth24plus-stencil8",depthWriteEnabled:i.depthTest,depthCompare:i.depthTest?"less":"always"}),n.createRenderPipeline(u)}_getModule(e){return this._moduleCache[e]||this._createModule(e)}_createModule(e){let t=this._gpu.device;return this._moduleCache[e]=t.createShaderModule({code:e}),this._moduleCache[e]}_generateBufferKey(e){let t=[],i=0,s=Object.keys(e.attributes).sort();for(let o=0;o<s.length;o++){let a=e.attributes[s[o]];t[i++]=a.offset,t[i++]=a.format,t[i++]=a.stride,t[i++]=a.instance}let n=t.join("|");return e._layoutKey=Er(n,"geometry"),e._layoutKey}_generateAttributeLocationsKey(e){let t=[],i=0,s=Object.keys(e.attributeData).sort();for(let o=0;o<s.length;o++){let a=e.attributeData[s[o]];t[i++]=a.location}let n=t.join("|");return e._attributeLocationsKey=Er(n,"programAttributes"),e._attributeLocationsKey}getBufferNamesToBind(e,t){let i=e._layoutKey<<16|t._attributeLocationsKey;if(this._bindingNamesCache[i])return this._bindingNamesCache[i];let s=this._createVertexBufferLayouts(e,t),n=Object.create(null),o=t.attributeData;for(let a=0;a<s.length;a++){let u=Object.values(s[a].attributes)[0].shaderLocation;for(let l in o)if(o[l].location===u){n[a]=l;break}}return this._bindingNamesCache[i]=n,n}_createVertexBufferLayouts(e,t){t._attributeLocationsKey||this._generateAttributeLocationsKey(t);let i=e._layoutKey<<16|t._attributeLocationsKey;if(this._bufferLayoutsCache[i])return this._bufferLayoutsCache[i];let s=[];return e.buffers.forEach(n=>{let o={arrayStride:0,stepMode:"vertex",attributes:[]},a=o.attributes;for(let c in t.attributeData){let u=e.attributes[c];(u.divisor??1)!==1&&N(`Attribute ${c} has an invalid divisor value of '${u.divisor}'. WebGPU only supports a divisor value of 1`),u.buffer===n&&(o.arrayStride=u.stride,o.stepMode=u.instance?"instance":"vertex",a.push({shaderLocation:t.attributeData[c].location,offset:u.offset,format:u.format}))}a.length&&s.push(o)}),this._bufferLayoutsCache[i]=s,s}_updatePipeHash(){let e=fR(this._stencilMode,this._multisampleCount,this._colorMask,this._depthStencilAttachment);this._pipeStateCaches[e]||(this._pipeStateCaches[e]=Object.create(null)),this._pipeCache=this._pipeStateCaches[e]}destroy(){this._renderer=null,this._bufferLayoutsCache=null}};Da.extension={type:[b.WebGPUSystem],name:"pipeline"}});function Wv(r,e,t,i,s,n){let o=n?1:-1;return r.identity(),r.a=1/i*2,r.d=o*(1/s*2),r.tx=-1-e*r.a,r.ty=-o-t*r.d,r}var $v=p(()=>{"use strict"});function qv(r){let e=r.colorTexture.source.resource;return globalThis.HTMLCanvasElement&&e instanceof HTMLCanvasElement&&document.body.contains(e)}var jv=p(()=>{"use strict"});var xn,Ip=p(()=>{te();Ge();ln();$v();op();Is();tt();le();Sp();jv();wp();xn=class{constructor(e){this.rootViewPort=new Y,this.viewport=new Y,this.onRenderTargetChange=new hn("onRenderTargetChange"),this.projectionMatrix=new R,this.defaultClearColor=[0,0,0,0],this._renderSurfaceToRenderTargetHash=new Map,this._gpuRenderTargetHash=Object.create(null),this._renderTargetStack=[],this._renderer=e,e.renderableGC.addManagedHash(this,"_gpuRenderTargetHash")}finishRenderPass(){this.adaptor.finishRenderPass(this.renderTarget)}renderStart({target:e,clear:t,clearColor:i,frame:s}){this._renderTargetStack.length=0,this.push(e,t,i,s),this.rootViewPort.copyFrom(this.viewport),this.rootRenderTarget=this.renderTarget,this.renderingToScreen=qv(this.rootRenderTarget),this.adaptor.prerender?.(this.rootRenderTarget)}postrender(){this.adaptor.postrender?.(this.rootRenderTarget)}bind(e,t=!0,i,s){let n=this.getRenderTarget(e),o=this.renderTarget!==n;this.renderTarget=n,this.renderSurface=e;let a=this.getGpuRenderTarget(n);(n.pixelWidth!==a.width||n.pixelHeight!==a.height)&&(this.adaptor.resizeGpuRenderTarget(n),a.width=n.pixelWidth,a.height=n.pixelHeight);let c=n.colorTexture,u=this.viewport,l=c.pixelWidth,h=c.pixelHeight;if(!s&&e instanceof M&&(s=e.frame),s){let f=c._resolution;u.x=s.x*f+.5|0,u.y=s.y*f+.5|0,u.width=s.width*f+.5|0,u.height=s.height*f+.5|0}else u.x=0,u.y=0,u.width=l,u.height=h;return Wv(this.projectionMatrix,0,0,u.width/c.resolution,u.height/c.resolution,!n.isRoot),this.adaptor.startRenderPass(n,t,i,u),o&&this.onRenderTargetChange.emit(n),n}clear(e,t=Le.ALL,i){t&&(e&&(e=this.getRenderTarget(e)),this.adaptor.clear(e||this.renderTarget,t,i,this.viewport))}contextChange(){this._gpuRenderTargetHash=Object.create(null)}push(e,t=Le.ALL,i,s){let n=this.bind(e,t,i,s);return this._renderTargetStack.push({renderTarget:n,frame:s}),n}pop(){this._renderTargetStack.pop();let e=this._renderTargetStack[this._renderTargetStack.length-1];this.bind(e.renderTarget,!1,null,e.frame)}getRenderTarget(e){return e.isTexture&&(e=e.source),this._renderSurfaceToRenderTargetHash.get(e)??this._initRenderTarget(e)}copyToTexture(e,t,i,s,n){i.x<0&&(s.width+=i.x,n.x-=i.x,i.x=0),i.y<0&&(s.height+=i.y,n.y-=i.y,i.y=0);let{pixelWidth:o,pixelHeight:a}=e;return s.width=Math.min(s.width,o-i.x),s.height=Math.min(s.height,a-i.y),this.adaptor.copyToTexture(e,t,i,s,n)}ensureDepthStencil(){this.renderTarget.stencil||(this.renderTarget.stencil=!0,this.adaptor.startRenderPass(this.renderTarget,!1,null,this.viewport))}destroy(){this._renderer=null,this._renderSurfaceToRenderTargetHash.forEach((e,t)=>{e!==t&&e.destroy()}),this._renderSurfaceToRenderTargetHash.clear(),this._gpuRenderTargetHash=Object.create(null)}_initRenderTarget(e){let t=null;return je.test(e)&&(e=Vl(e).source),e instanceof Ta?t=e:e instanceof se&&(t=new Ta({colorTextures:[e]}),e.source instanceof je&&(t.isRoot=!0),e.once("destroy",()=>{t.destroy(),this._renderSurfaceToRenderTargetHash.delete(e);let i=this._gpuRenderTargetHash[t.uid];i&&(this._gpuRenderTargetHash[t.uid]=null,this.adaptor.destroyGpuRenderTarget(i))})),this._renderSurfaceToRenderTargetHash.set(e,t),t}getGpuRenderTarget(e){return this._gpuRenderTargetHash[e.uid]||(this._gpuRenderTargetHash[e.uid]=this.adaptor.initGpuRenderTarget(e))}resetState(){this.renderTarget=null,this.renderSurface=null}}});var Yl,Xv=p(()=>{"use strict";Yl=class{constructor(){this.contexts=[],this.msaaTextures=[],this.msaaSamples=1}}});var Kl,Yv=p(()=>{ln();Is();tt();Xv();Kl=class{init(e,t){this._renderer=e,this._renderTargetSystem=t}copyToTexture(e,t,i,s,n){let o=this._renderer,a=this._getGpuColorTexture(e),c=o.texture.getGpuSource(t.source);return o.encoder.commandEncoder.copyTextureToTexture({texture:a,origin:i},{texture:c,origin:n},s),t}startRenderPass(e,t=!0,i,s){let o=this._renderTargetSystem.getGpuRenderTarget(e),a=this.getDescriptor(e,t,i);o.descriptor=a,this._renderer.pipeline.setRenderTarget(o),this._renderer.encoder.beginRenderPass(o),this._renderer.encoder.setViewport(s)}finishRenderPass(){this._renderer.encoder.endRenderPass()}_getGpuColorTexture(e){let t=this._renderTargetSystem.getGpuRenderTarget(e);return t.contexts[0]?t.contexts[0].getCurrentTexture():this._renderer.texture.getGpuSource(e.colorTextures[0].source)}getDescriptor(e,t,i){typeof t=="boolean"&&(t=t?Le.ALL:Le.NONE);let s=this._renderTargetSystem,n=s.getGpuRenderTarget(e),o=e.colorTextures.map((u,l)=>{let h=n.contexts[l],f,d;h?f=h.getCurrentTexture().createView():f=this._renderer.texture.getGpuSource(u).createView({mipLevelCount:1}),n.msaaTextures[l]&&(d=f,f=this._renderer.texture.getTextureView(n.msaaTextures[l]));let m=t&Le.COLOR?"clear":"load";return i??(i=s.defaultClearColor),{view:f,resolveTarget:d,clearValue:i,storeOp:"store",loadOp:m}}),a;if((e.stencil||e.depth)&&!e.depthStencilTexture&&(e.ensureDepthStencilTexture(),e.depthStencilTexture.source.sampleCount=n.msaa?4:1),e.depthStencilTexture){let u=t&Le.STENCIL?"clear":"load",l=t&Le.DEPTH?"clear":"load";a={view:this._renderer.texture.getGpuSource(e.depthStencilTexture.source).createView(),stencilStoreOp:"store",stencilLoadOp:u,depthClearValue:1,depthLoadOp:l,depthStoreOp:"store"}}return{colorAttachments:o,depthStencilAttachment:a}}clear(e,t=!0,i,s){if(!t)return;let{gpu:n,encoder:o}=this._renderer,a=n.device;if(o.commandEncoder===null){let u=a.createCommandEncoder(),l=this.getDescriptor(e,t,i),h=u.beginRenderPass(l);h.setViewport(s.x,s.y,s.width,s.height,0,1),h.end();let f=u.finish();a.queue.submit([f])}else this.startRenderPass(e,t,i,s)}initGpuRenderTarget(e){e.isRoot=!0;let t=new Yl;return e.colorTextures.forEach((i,s)=>{if(i instanceof je){let n=i.resource.getContext("webgpu"),o=i.transparent?"premultiplied":"opaque";try{n.configure({device:this._renderer.gpu.device,usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.COPY_SRC,format:"bgra8unorm",alphaMode:o})}catch(a){console.error(a)}t.contexts[s]=n}if(t.msaa=i.source.antialias,i.source.antialias){let n=new se({width:0,height:0,sampleCount:4});t.msaaTextures[s]=n}}),t.msaa&&(t.msaaSamples=4,e.depthStencilTexture&&(e.depthStencilTexture.source.sampleCount=4)),t}destroyGpuRenderTarget(e){e.contexts.forEach(t=>{t.unconfigure()}),e.msaaTextures.forEach(t=>{t.destroy()}),e.msaaTextures.length=0,e.contexts.length=0}ensureDepthStencilTexture(e){let t=this._renderTargetSystem.getGpuRenderTarget(e);e.depthStencilTexture&&t.msaa&&(e.depthStencilTexture.source.sampleCount=4)}resizeGpuRenderTarget(e){let t=this._renderTargetSystem.getGpuRenderTarget(e);t.width=e.width,t.height=e.height,t.msaa&&e.colorTextures.forEach((i,s)=>{t.msaaTextures[s]?.resize(i.source.width,i.source.height,i.source._resolution)})}}});var Ma,Kv=p(()=>{B();Ip();Yv();Ma=class extends xn{constructor(e){super(e),this.adaptor=new Kl,this.adaptor.init(e,this)}};Ma.extension={type:[b.WebGPUSystem],name:"renderTarget"}});var Ia,Qv=p(()=>{B();Ia=class{constructor(){this._gpuProgramData=Object.create(null)}contextChange(e){this._gpu=e}getProgramData(e){return this._gpuProgramData[e._layoutKey]||this._createGPUProgramData(e)}_createGPUProgramData(e){let t=this._gpu.device,i=e.gpuLayout.map(n=>t.createBindGroupLayout({entries:n})),s={bindGroupLayouts:i};return this._gpuProgramData[e._layoutKey]={bindGroups:i,pipeline:t.createPipelineLayout(s)},this._gpuProgramData[e._layoutKey]}destroy(){this._gpu=null,this._gpuProgramData=null}};Ia.extension={type:[b.WebGPUSystem],name:"shader"}});var st,Zv=p(()=>{"use strict";st={};st.normal={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"}};st.add={alpha:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one",operation:"add"}};st.multiply={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"dst",dstFactor:"one-minus-src-alpha",operation:"add"}};st.screen={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src",operation:"add"}};st.overlay={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src",operation:"add"}};st.none={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"zero",dstFactor:"zero",operation:"add"}};st["normal-npm"]={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha",operation:"add"}};st["add-npm"]={alpha:{srcFactor:"one",dstFactor:"one",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one",operation:"add"}};st["screen-npm"]={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one-minus-src",operation:"add"}};st.erase={alpha:{srcFactor:"zero",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"zero",dstFactor:"one-minus-src",operation:"add"}};st.min={alpha:{srcFactor:"one",dstFactor:"one",operation:"min"},color:{srcFactor:"one",dstFactor:"one",operation:"min"}};st.max={alpha:{srcFactor:"one",dstFactor:"one",operation:"max"},color:{srcFactor:"one",dstFactor:"one",operation:"max"}}});var Fa,Jv=p(()=>{B();Gt();Zv();Fa=class{constructor(){this.defaultState=new Pe,this.defaultState.blend=!0}contextChange(e){this.gpu=e}getColorTargets(e){return[{format:"bgra8unorm",writeMask:0,blend:st[e.blendMode]||st.normal}]}destroy(){this.gpu=null}};Fa.extension={type:[b.WebGPUSystem],name:"state"}});var e1,t1=p(()=>{"use strict";e1={type:"image",upload(r,e,t){let i=r.resource,s=(r.pixelWidth|0)*(r.pixelHeight|0),n=i.byteLength/s;t.device.queue.writeTexture({texture:e},i,{offset:0,rowsPerImage:r.pixelHeight,bytesPerRow:r.pixelHeight*n},{width:r.pixelWidth,height:r.pixelHeight,depthOrArrayLayers:1})}}});var Fp,mR,r1,i1=p(()=>{"use strict";Fp={"bc1-rgba-unorm":{blockBytes:8,blockWidth:4,blockHeight:4},"bc2-rgba-unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"bc3-rgba-unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"bc7-rgba-unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"etc1-rgb-unorm":{blockBytes:8,blockWidth:4,blockHeight:4},"etc2-rgba8unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"astc-4x4-unorm":{blockBytes:16,blockWidth:4,blockHeight:4}},mR={blockBytes:4,blockWidth:1,blockHeight:1},r1={type:"compressed",upload(r,e,t){let i=r.pixelWidth,s=r.pixelHeight,n=Fp[r.format]||mR;for(let o=0;o<r.resource.length;o++){let a=r.resource[o],c=Math.ceil(i/n.blockWidth)*n.blockBytes;t.device.queue.writeTexture({texture:e,mipLevel:o},a,{offset:0,bytesPerRow:c},{width:Math.ceil(i/n.blockWidth)*n.blockWidth,height:Math.ceil(s/n.blockHeight)*n.blockHeight,depthOrArrayLayers:1}),i=Math.max(i>>1,1),s=Math.max(s>>1,1)}}}});var Ql,Up=p(()=>{Ce();pe();Ql={type:"image",upload(r,e,t){let i=r.resource;if(!i)return;if(globalThis.HTMLImageElement&&i instanceof HTMLImageElement){let a=W.get().createCanvas(i.width,i.height);a.getContext("2d").drawImage(i,0,0,i.width,i.height),r.resource=a,N("ImageSource: Image element passed, converting to canvas and replacing resource.")}let s=Math.min(e.width,r.resourceWidth||r.pixelWidth),n=Math.min(e.height,r.resourceHeight||r.pixelHeight),o=r.alphaMode==="premultiply-alpha-on-upload";t.device.queue.copyExternalImageToTexture({source:i},{texture:e,premultipliedAlpha:o},{width:s,height:n})}}});var s1,n1=p(()=>{Up();s1={type:"video",upload(r,e,t){Ql.upload(r,e,t)}}});var Zl,o1=p(()=>{"use strict";Zl=class{constructor(e){this.device=e,this.sampler=e.createSampler({minFilter:"linear"}),this.pipelines={}}_getMipmapPipeline(e){let t=this.pipelines[e];return t||(this.mipmapShaderModule||(this.mipmapShaderModule=this.device.createShaderModule({code:`
910
+ `}var dS=p(()=>{Hm()});function fS(r){return cl(r,"uboWgsl",hS,lS)}var mS=p(()=>{$m();jm();dS()});var oa,pS=p(()=>{P();Vm();Hm();mS();oa=class extends Xs{constructor(){super({createUboElements:uS,generateUboSync:fS})}};oa.extension={type:[b.WebGPUSystem],name:"ubo"}});var Jr,ul=p(()=>{Ve();Oe();Jr=class extends oe{constructor({buffer:e,offset:t,size:i}){super(),this.uid=K("buffer"),this._resourceType="bufferResource",this._touched=0,this._resourceId=K("resource"),this._bufferResource=!0,this.destroyed=!1,this.buffer=e,this.offset=t|0,this.size=i,this.buffer.on("change",this.onBufferChange,this)}onBufferChange(){this._resourceId=K("resource"),this.emit("change",this)}destroy(e=!1){this.destroyed=!0,e&&this.buffer.destroy(),this.emit("change",this),this.buffer=null}}});var ll,gS=p(()=>{"use strict";ll=class{constructor({minUniformOffsetAlignment:e}){this._minUniformOffsetAlignment=256,this.byteIndex=0,this._minUniformOffsetAlignment=e,this.data=new Float32Array(65535)}clear(){this.byteIndex=0}addEmptyGroup(e){if(e>this._minUniformOffsetAlignment/4)throw new Error(`UniformBufferBatch: array is too large: ${e*4}`);let t=this.byteIndex,i=t+e*4;if(i=Math.ceil(i/this._minUniformOffsetAlignment)*this._minUniformOffsetAlignment,i>this.data.length*4)throw new Error("UniformBufferBatch: ubo batch got too big");return this.byteIndex=i,t}addGroup(e){let t=this.addEmptyGroup(e.length);for(let i=0;i<e.length;i++)this.data[t/4+i]=e[i];return t}destroy(){this.data=null}}});var ei,aa,xS=p(()=>{P();qr();ul();wr();gS();$r();ei=128,aa=class{constructor(e){this._bindGroupHash=Object.create(null),this._buffers=[],this._bindGroups=[],this._bufferResources=[],this._renderer=e,this._renderer.renderableGC.addManagedHash(this,"_bindGroupHash"),this._batchBuffer=new ll({minUniformOffsetAlignment:ei});let t=256/ei;for(let i=0;i<t;i++){let s=Q.UNIFORM|Q.COPY_DST;i===0&&(s|=Q.COPY_SRC),this._buffers.push(new Ce({data:this._batchBuffer.data,usage:s}))}}renderEnd(){this._uploadBindGroups(),this._resetBindGroups()}_resetBindGroups(){for(let e in this._bindGroupHash)this._bindGroupHash[e]=null;this._batchBuffer.clear()}getUniformBindGroup(e,t){if(!t&&this._bindGroupHash[e.uid])return this._bindGroupHash[e.uid];this._renderer.ubo.ensureUniformGroup(e);let i=e.buffer.data,s=this._batchBuffer.addEmptyGroup(i.length);return this._renderer.ubo.syncUniformGroup(e,this._batchBuffer.data,s/4),this._bindGroupHash[e.uid]=this._getBindGroup(s/ei),this._bindGroupHash[e.uid]}getUboResource(e){this._renderer.ubo.updateUniformGroup(e);let t=e.buffer.data,i=this._batchBuffer.addGroup(t);return this._getBufferResource(i/ei)}getArrayBindGroup(e){let t=this._batchBuffer.addGroup(e);return this._getBindGroup(t/ei)}getArrayBufferResource(e){let i=this._batchBuffer.addGroup(e)/ei;return this._getBufferResource(i)}_getBufferResource(e){if(!this._bufferResources[e]){let t=this._buffers[e%2];this._bufferResources[e]=new Jr({buffer:t,offset:(e/2|0)*256,size:ei})}return this._bufferResources[e]}_getBindGroup(e){if(!this._bindGroups[e]){let t=new Ne({0:this._getBufferResource(e)});this._bindGroups[e]=t}return this._bindGroups[e]}_uploadBindGroups(){let e=this._renderer.buffer,t=this._buffers[0];t.update(this._batchBuffer.byteIndex),e.updateBuffer(t);let i=this._renderer.gpu.device.createCommandEncoder();for(let s=1;s<this._buffers.length;s++){let n=this._buffers[s];i.copyBufferToBuffer(e.getGPUBuffer(t),ei,e.getGPUBuffer(n),0,this._batchBuffer.byteIndex)}this._renderer.gpu.device.queue.submit([i.finish()])}destroy(){for(let e=0;e<this._bindGroups.length;e++)this._bindGroups[e].destroy();this._bindGroups=null,this._bindGroupHash=null;for(let e=0;e<this._buffers.length;e++)this._buffers[e].destroy();this._buffers=null;for(let e=0;e<this._bufferResources.length;e++)this._bufferResources[e].destroy();this._bufferResources=null,this._batchBuffer.destroy(),this._bindGroupHash=null,this._renderer=null}};aa.extension={type:[b.WebGPUPipes],name:"uniformBatch"}});function hl(r,e){for(let t in r.attributes){let i=r.attributes[t],s=e[t];s?(i.format??(i.format=s.format),i.offset??(i.offset=s.offset),i.instance??(i.instance=s.instance)):G(`Attribute ${t} is not present in the shader, but is present in the geometry. Unable to infer attribute details.`)}FP(r)}function FP(r){let{buffers:e,attributes:t}=r,i={},s={};for(let n in e){let o=e[n];i[o.uid]=0,s[o.uid]=0}for(let n in t){let o=t[n];i[o.buffer.uid]+=ct(o.format).stride}for(let n in t){let o=t[n];o.stride??(o.stride=i[o.buffer.uid]),o.start??(o.start=s[o.buffer.uid]),s[o.buffer.uid]+=ct(o.format).stride}}var Xm=p(()=>{ge();Pi()});var sr,Ym=p(()=>{ki();sr=[];sr[me.NONE]=void 0;sr[me.DISABLED]={stencilWriteMask:0,stencilReadMask:0};sr[me.RENDERING_MASK_ADD]={stencilFront:{compare:"equal",passOp:"increment-clamp"},stencilBack:{compare:"equal",passOp:"increment-clamp"}};sr[me.RENDERING_MASK_REMOVE]={stencilFront:{compare:"equal",passOp:"decrement-clamp"},stencilBack:{compare:"equal",passOp:"decrement-clamp"}};sr[me.MASK_ACTIVE]={stencilWriteMask:0,stencilFront:{compare:"equal",passOp:"keep"},stencilBack:{compare:"equal",passOp:"keep"}};sr[me.INVERSE_MASK_ACTIVE]={stencilWriteMask:0,stencilFront:{compare:"not-equal",passOp:"keep"},stencilBack:{compare:"not-equal",passOp:"keep"}}});function OP(r,e,t,i,s){return r<<24|e<<16|t<<10|i<<5|s}function GP(r,e,t,i){return t<<6|r<<3|i<<1|e}var UP,ca,_S=p(()=>{P();ge();Xm();ki();no();Ym();UP={"point-list":0,"line-list":1,"line-strip":2,"triangle-list":3,"triangle-strip":4};ca=class{constructor(e){this._moduleCache=Object.create(null),this._bufferLayoutsCache=Object.create(null),this._bindingNamesCache=Object.create(null),this._pipeCache=Object.create(null),this._pipeStateCaches=Object.create(null),this._colorMask=15,this._multisampleCount=1,this._renderer=e}contextChange(e){this._gpu=e,this.setStencilMode(me.DISABLED),this._updatePipeHash()}setMultisampleCount(e){this._multisampleCount!==e&&(this._multisampleCount=e,this._updatePipeHash())}setRenderTarget(e){this._multisampleCount=e.msaaSamples,this._depthStencilAttachment=e.descriptor.depthStencilAttachment?1:0,this._updatePipeHash()}setColorMask(e){this._colorMask!==e&&(this._colorMask=e,this._updatePipeHash())}setStencilMode(e){this._stencilMode!==e&&(this._stencilMode=e,this._stencilState=sr[e],this._updatePipeHash())}setPipeline(e,t,i,s){let n=this.getPipeline(e,t,i);s.setPipeline(n)}getPipeline(e,t,i,s){e._layoutKey||(hl(e,t.attributeData),this._generateBufferKey(e)),s||(s=e.topology);let n=OP(e._layoutKey,t._layoutKey,i.data,i._blendModeId,UP[s]);return this._pipeCache[n]?this._pipeCache[n]:(this._pipeCache[n]=this._createPipeline(e,t,i,s),this._pipeCache[n])}_createPipeline(e,t,i,s){let n=this._gpu.device,o=this._createVertexBufferLayouts(e,t),a=this._renderer.state.getColorTargets(i);a[0].writeMask=this._stencilMode===me.RENDERING_MASK_ADD?0:this._colorMask;let c=this._renderer.shader.getProgramData(t).pipeline,u={vertex:{module:this._getModule(t.vertex.source),entryPoint:t.vertex.entryPoint,buffers:o},fragment:{module:this._getModule(t.fragment.source),entryPoint:t.fragment.entryPoint,targets:a},primitive:{topology:s,cullMode:i.cullMode},layout:c,multisample:{count:this._multisampleCount},label:"PIXI Pipeline"};return this._depthStencilAttachment&&(u.depthStencil={...this._stencilState,format:"depth24plus-stencil8",depthWriteEnabled:i.depthTest,depthCompare:i.depthTest?"less":"always"}),n.createRenderPipeline(u)}_getModule(e){return this._moduleCache[e]||this._createModule(e)}_createModule(e){let t=this._gpu.device;return this._moduleCache[e]=t.createShaderModule({code:e}),this._moduleCache[e]}_generateBufferKey(e){let t=[],i=0,s=Object.keys(e.attributes).sort();for(let o=0;o<s.length;o++){let a=e.attributes[s[o]];t[i++]=a.offset,t[i++]=a.format,t[i++]=a.stride,t[i++]=a.instance}let n=t.join("|");return e._layoutKey=Sr(n,"geometry"),e._layoutKey}_generateAttributeLocationsKey(e){let t=[],i=0,s=Object.keys(e.attributeData).sort();for(let o=0;o<s.length;o++){let a=e.attributeData[s[o]];t[i++]=a.location}let n=t.join("|");return e._attributeLocationsKey=Sr(n,"programAttributes"),e._attributeLocationsKey}getBufferNamesToBind(e,t){let i=e._layoutKey<<16|t._attributeLocationsKey;if(this._bindingNamesCache[i])return this._bindingNamesCache[i];let s=this._createVertexBufferLayouts(e,t),n=Object.create(null),o=t.attributeData;for(let a=0;a<s.length;a++){let u=Object.values(s[a].attributes)[0].shaderLocation;for(let l in o)if(o[l].location===u){n[a]=l;break}}return this._bindingNamesCache[i]=n,n}_createVertexBufferLayouts(e,t){t._attributeLocationsKey||this._generateAttributeLocationsKey(t);let i=e._layoutKey<<16|t._attributeLocationsKey;if(this._bufferLayoutsCache[i])return this._bufferLayoutsCache[i];let s=[];return e.buffers.forEach(n=>{let o={arrayStride:0,stepMode:"vertex",attributes:[]},a=o.attributes;for(let c in t.attributeData){let u=e.attributes[c];(u.divisor??1)!==1&&G(`Attribute ${c} has an invalid divisor value of '${u.divisor}'. WebGPU only supports a divisor value of 1`),u.buffer===n&&(o.arrayStride=u.stride,o.stepMode=u.instance?"instance":"vertex",a.push({shaderLocation:t.attributeData[c].location,offset:u.offset,format:u.format}))}a.length&&s.push(o)}),this._bufferLayoutsCache[i]=s,s}_updatePipeHash(){let e=GP(this._stencilMode,this._multisampleCount,this._colorMask,this._depthStencilAttachment);this._pipeStateCaches[e]||(this._pipeStateCaches[e]=Object.create(null)),this._pipeCache=this._pipeStateCaches[e]}destroy(){this._renderer=null,this._bufferLayoutsCache=null}};ca.extension={type:[b.WebGPUSystem],name:"pipeline"}});function bS(r,e,t,i,s,n){let o=n?1:-1;return r.identity(),r.a=1/i*2,r.d=o*(1/s*2),r.tx=-1-e*r.a,r.ty=-o-t*r.d,r}var yS=p(()=>{"use strict"});function TS(r){let e=r.colorTexture.source.resource;return globalThis.HTMLCanvasElement&&e instanceof HTMLCanvasElement&&document.body.contains(e)}var wS=p(()=>{"use strict"});var Ks,Km=p(()=>{ee();Ge();Hs();yS();wm();ms();et();le();Nm();wS();Gm();Ks=class{constructor(e){this.rootViewPort=new Y,this.viewport=new Y,this.onRenderTargetChange=new Ws("onRenderTargetChange"),this.projectionMatrix=new R,this.defaultClearColor=[0,0,0,0],this._renderSurfaceToRenderTargetHash=new Map,this._gpuRenderTargetHash=Object.create(null),this._renderTargetStack=[],this._renderer=e,e.renderableGC.addManagedHash(this,"_gpuRenderTargetHash")}finishRenderPass(){this.adaptor.finishRenderPass(this.renderTarget)}renderStart({target:e,clear:t,clearColor:i,frame:s}){this._renderTargetStack.length=0,this.push(e,t,i,s),this.rootViewPort.copyFrom(this.viewport),this.rootRenderTarget=this.renderTarget,this.renderingToScreen=TS(this.rootRenderTarget),this.adaptor.prerender?.(this.rootRenderTarget)}postrender(){this.adaptor.postrender?.(this.rootRenderTarget)}bind(e,t=!0,i,s){let n=this.getRenderTarget(e),o=this.renderTarget!==n;this.renderTarget=n,this.renderSurface=e;let a=this.getGpuRenderTarget(n);(n.pixelWidth!==a.width||n.pixelHeight!==a.height)&&(this.adaptor.resizeGpuRenderTarget(n),a.width=n.pixelWidth,a.height=n.pixelHeight);let c=n.colorTexture,u=this.viewport,l=c.pixelWidth,h=c.pixelHeight;if(!s&&e instanceof D&&(s=e.frame),s){let f=c._resolution;u.x=s.x*f+.5|0,u.y=s.y*f+.5|0,u.width=s.width*f+.5|0,u.height=s.height*f+.5|0}else u.x=0,u.y=0,u.width=l,u.height=h;return bS(this.projectionMatrix,0,0,u.width/c.resolution,u.height/c.resolution,!n.isRoot),this.adaptor.startRenderPass(n,t,i,u),o&&this.onRenderTargetChange.emit(n),n}clear(e,t=Le.ALL,i){t&&(e&&(e=this.getRenderTarget(e)),this.adaptor.clear(e||this.renderTarget,t,i,this.viewport))}contextChange(){this._gpuRenderTargetHash=Object.create(null)}push(e,t=Le.ALL,i,s){let n=this.bind(e,t,i,s);return this._renderTargetStack.push({renderTarget:n,frame:s}),n}pop(){this._renderTargetStack.pop();let e=this._renderTargetStack[this._renderTargetStack.length-1];this.bind(e.renderTarget,!1,null,e.frame)}getRenderTarget(e){return e.isTexture&&(e=e.source),this._renderSurfaceToRenderTargetHash.get(e)??this._initRenderTarget(e)}copyToTexture(e,t,i,s,n){i.x<0&&(s.width+=i.x,n.x-=i.x,i.x=0),i.y<0&&(s.height+=i.y,n.y-=i.y,i.y=0);let{pixelWidth:o,pixelHeight:a}=e;return s.width=Math.min(s.width,o-i.x),s.height=Math.min(s.height,a-i.y),this.adaptor.copyToTexture(e,t,i,s,n)}ensureDepthStencil(){this.renderTarget.stencil||(this.renderTarget.stencil=!0,this.adaptor.startRenderPass(this.renderTarget,!1,null,this.viewport))}destroy(){this._renderer=null,this._renderSurfaceToRenderTargetHash.forEach((e,t)=>{e!==t&&e.destroy()}),this._renderSurfaceToRenderTargetHash.clear(),this._gpuRenderTargetHash=Object.create(null)}_initRenderTarget(e){let t=null;return je.test(e)&&(e=nl(e).source),e instanceof Qo?t=e:e instanceof se&&(t=new Qo({colorTextures:[e]}),e.source instanceof je&&(t.isRoot=!0),e.once("destroy",()=>{t.destroy(),this._renderSurfaceToRenderTargetHash.delete(e);let i=this._gpuRenderTargetHash[t.uid];i&&(this._gpuRenderTargetHash[t.uid]=null,this.adaptor.destroyGpuRenderTarget(i))})),this._renderSurfaceToRenderTargetHash.set(e,t),t}getGpuRenderTarget(e){return this._gpuRenderTargetHash[e.uid]||(this._gpuRenderTargetHash[e.uid]=this.adaptor.initGpuRenderTarget(e))}resetState(){this.renderTarget=null,this.renderSurface=null}}});var dl,SS=p(()=>{"use strict";dl=class{constructor(){this.contexts=[],this.msaaTextures=[],this.msaaSamples=1}}});var fl,vS=p(()=>{Hs();ms();et();SS();fl=class{init(e,t){this._renderer=e,this._renderTargetSystem=t}copyToTexture(e,t,i,s,n){let o=this._renderer,a=this._getGpuColorTexture(e),c=o.texture.getGpuSource(t.source);return o.encoder.commandEncoder.copyTextureToTexture({texture:a,origin:i},{texture:c,origin:n},s),t}startRenderPass(e,t=!0,i,s){let o=this._renderTargetSystem.getGpuRenderTarget(e),a=this.getDescriptor(e,t,i);o.descriptor=a,this._renderer.pipeline.setRenderTarget(o),this._renderer.encoder.beginRenderPass(o),this._renderer.encoder.setViewport(s)}finishRenderPass(){this._renderer.encoder.endRenderPass()}_getGpuColorTexture(e){let t=this._renderTargetSystem.getGpuRenderTarget(e);return t.contexts[0]?t.contexts[0].getCurrentTexture():this._renderer.texture.getGpuSource(e.colorTextures[0].source)}getDescriptor(e,t,i){typeof t=="boolean"&&(t=t?Le.ALL:Le.NONE);let s=this._renderTargetSystem,n=s.getGpuRenderTarget(e),o=e.colorTextures.map((u,l)=>{let h=n.contexts[l],f,d;h?f=h.getCurrentTexture().createView():f=this._renderer.texture.getGpuSource(u).createView({mipLevelCount:1}),n.msaaTextures[l]&&(d=f,f=this._renderer.texture.getTextureView(n.msaaTextures[l]));let m=t&Le.COLOR?"clear":"load";return i??(i=s.defaultClearColor),{view:f,resolveTarget:d,clearValue:i,storeOp:"store",loadOp:m}}),a;if((e.stencil||e.depth)&&!e.depthStencilTexture&&(e.ensureDepthStencilTexture(),e.depthStencilTexture.source.sampleCount=n.msaa?4:1),e.depthStencilTexture){let u=t&Le.STENCIL?"clear":"load",l=t&Le.DEPTH?"clear":"load";a={view:this._renderer.texture.getGpuSource(e.depthStencilTexture.source).createView(),stencilStoreOp:"store",stencilLoadOp:u,depthClearValue:1,depthLoadOp:l,depthStoreOp:"store"}}return{colorAttachments:o,depthStencilAttachment:a}}clear(e,t=!0,i,s){if(!t)return;let{gpu:n,encoder:o}=this._renderer,a=n.device;if(o.commandEncoder===null){let u=a.createCommandEncoder(),l=this.getDescriptor(e,t,i),h=u.beginRenderPass(l);h.setViewport(s.x,s.y,s.width,s.height,0,1),h.end();let f=u.finish();a.queue.submit([f])}else this.startRenderPass(e,t,i,s)}initGpuRenderTarget(e){e.isRoot=!0;let t=new dl;return e.colorTextures.forEach((i,s)=>{if(i instanceof je){let n=i.resource.getContext("webgpu"),o=i.transparent?"premultiplied":"opaque";try{n.configure({device:this._renderer.gpu.device,usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.COPY_SRC,format:"bgra8unorm",alphaMode:o})}catch(a){console.error(a)}t.contexts[s]=n}if(t.msaa=i.source.antialias,i.source.antialias){let n=new se({width:0,height:0,sampleCount:4});t.msaaTextures[s]=n}}),t.msaa&&(t.msaaSamples=4,e.depthStencilTexture&&(e.depthStencilTexture.source.sampleCount=4)),t}destroyGpuRenderTarget(e){e.contexts.forEach(t=>{t.unconfigure()}),e.msaaTextures.forEach(t=>{t.destroy()}),e.msaaTextures.length=0,e.contexts.length=0}ensureDepthStencilTexture(e){let t=this._renderTargetSystem.getGpuRenderTarget(e);e.depthStencilTexture&&t.msaa&&(e.depthStencilTexture.source.sampleCount=4)}resizeGpuRenderTarget(e){let t=this._renderTargetSystem.getGpuRenderTarget(e);t.width=e.width,t.height=e.height,t.msaa&&e.colorTextures.forEach((i,s)=>{t.msaaTextures[s]?.resize(i.source.width,i.source.height,i.source._resolution)})}}});var ua,CS=p(()=>{P();Km();vS();ua=class extends Ks{constructor(e){super(e),this.adaptor=new fl,this.adaptor.init(e,this)}};ua.extension={type:[b.WebGPUSystem],name:"renderTarget"}});var la,ES=p(()=>{P();la=class{constructor(){this._gpuProgramData=Object.create(null)}contextChange(e){this._gpu=e}getProgramData(e){return this._gpuProgramData[e._layoutKey]||this._createGPUProgramData(e)}_createGPUProgramData(e){let t=this._gpu.device,i=e.gpuLayout.map(n=>t.createBindGroupLayout({entries:n})),s={bindGroupLayouts:i};return this._gpuProgramData[e._layoutKey]={bindGroups:i,pipeline:t.createPipelineLayout(s)},this._gpuProgramData[e._layoutKey]}destroy(){this._gpu=null,this._gpuProgramData=null}};la.extension={type:[b.WebGPUSystem],name:"shader"}});var it,kS=p(()=>{"use strict";it={};it.normal={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"}};it.add={alpha:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one",operation:"add"}};it.multiply={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"dst",dstFactor:"one-minus-src-alpha",operation:"add"}};it.screen={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src",operation:"add"}};it.overlay={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src",operation:"add"}};it.none={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"zero",dstFactor:"zero",operation:"add"}};it["normal-npm"]={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha",operation:"add"}};it["add-npm"]={alpha:{srcFactor:"one",dstFactor:"one",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one",operation:"add"}};it["screen-npm"]={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one-minus-src",operation:"add"}};it.erase={alpha:{srcFactor:"zero",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"zero",dstFactor:"one-minus-src",operation:"add"}};it.min={alpha:{srcFactor:"one",dstFactor:"one",operation:"min"},color:{srcFactor:"one",dstFactor:"one",operation:"min"}};it.max={alpha:{srcFactor:"one",dstFactor:"one",operation:"max"},color:{srcFactor:"one",dstFactor:"one",operation:"max"}}});var ha,AS=p(()=>{P();Ot();kS();ha=class{constructor(){this.defaultState=new Ae,this.defaultState.blend=!0}contextChange(e){this.gpu=e}getColorTargets(e){return[{format:"bgra8unorm",writeMask:0,blend:it[e.blendMode]||it.normal}]}destroy(){this.gpu=null}};ha.extension={type:[b.WebGPUSystem],name:"state"}});var PS,BS=p(()=>{"use strict";PS={type:"image",upload(r,e,t){let i=r.resource,s=(r.pixelWidth|0)*(r.pixelHeight|0),n=i.byteLength/s;t.device.queue.writeTexture({texture:e},i,{offset:0,rowsPerImage:r.pixelHeight,bytesPerRow:r.pixelHeight*n},{width:r.pixelWidth,height:r.pixelHeight,depthOrArrayLayers:1})}}});var Qm,NP,RS,DS=p(()=>{"use strict";Qm={"bc1-rgba-unorm":{blockBytes:8,blockWidth:4,blockHeight:4},"bc2-rgba-unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"bc3-rgba-unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"bc7-rgba-unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"etc1-rgb-unorm":{blockBytes:8,blockWidth:4,blockHeight:4},"etc2-rgba8unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"astc-4x4-unorm":{blockBytes:16,blockWidth:4,blockHeight:4}},NP={blockBytes:4,blockWidth:1,blockHeight:1},RS={type:"compressed",upload(r,e,t){let i=r.pixelWidth,s=r.pixelHeight,n=Qm[r.format]||NP;for(let o=0;o<r.resource.length;o++){let a=r.resource[o],c=Math.ceil(i/n.blockWidth)*n.blockBytes;t.device.queue.writeTexture({texture:e,mipLevel:o},a,{offset:0,bytesPerRow:c},{width:Math.ceil(i/n.blockWidth)*n.blockWidth,height:Math.ceil(s/n.blockHeight)*n.blockHeight,depthOrArrayLayers:1}),i=Math.max(i>>1,1),s=Math.max(s>>1,1)}}}});var ml,Zm=p(()=>{ve();ge();ml={type:"image",upload(r,e,t){let i=r.resource;if(!i)return;if(globalThis.HTMLImageElement&&i instanceof HTMLImageElement){let a=W.get().createCanvas(i.width,i.height);a.getContext("2d").drawImage(i,0,0,i.width,i.height),r.resource=a,G("ImageSource: Image element passed, converting to canvas and replacing resource.")}let s=Math.min(e.width,r.resourceWidth||r.pixelWidth),n=Math.min(e.height,r.resourceHeight||r.pixelHeight),o=r.alphaMode==="premultiply-alpha-on-upload";t.device.queue.copyExternalImageToTexture({source:i},{texture:e,premultipliedAlpha:o},{width:s,height:n})}}});var MS,IS=p(()=>{Zm();MS={type:"video",upload(r,e,t){ml.upload(r,e,t)}}});var pl,FS=p(()=>{"use strict";pl=class{constructor(e){this.device=e,this.sampler=e.createSampler({minFilter:"linear"}),this.pipelines={}}_getMipmapPipeline(e){let t=this.pipelines[e];return t||(this.mipmapShaderModule||(this.mipmapShaderModule=this.device.createShaderModule({code:`
911
911
  var<private> pos : array<vec2<f32>, 3> = array<vec2<f32>, 3>(
912
912
  vec2<f32>(-1.0, -1.0), vec2<f32>(-1.0, 3.0), vec2<f32>(3.0, -1.0));
913
913
 
@@ -931,7 +931,7 @@ fn mainFragment(
931
931
  fn fragmentMain(@location(0) texCoord : vec2<f32>) -> @location(0) vec4<f32> {
932
932
  return textureSample(img, imgSampler, texCoord);
933
933
  }
934
- `})),t=this.device.createRenderPipeline({layout:"auto",vertex:{module:this.mipmapShaderModule,entryPoint:"vertexMain"},fragment:{module:this.mipmapShaderModule,entryPoint:"fragmentMain",targets:[{format:e}]}}),this.pipelines[e]=t),t}generateMipmap(e){let t=this._getMipmapPipeline(e.format);if(e.dimension==="3d"||e.dimension==="1d")throw new Error("Generating mipmaps for non-2d textures is currently unsupported!");let i=e,s=e.depthOrArrayLayers||1,n=e.usage&GPUTextureUsage.RENDER_ATTACHMENT;if(!n){let c={size:{width:Math.ceil(e.width/2),height:Math.ceil(e.height/2),depthOrArrayLayers:s},format:e.format,usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC|GPUTextureUsage.RENDER_ATTACHMENT,mipLevelCount:e.mipLevelCount-1};i=this.device.createTexture(c)}let o=this.device.createCommandEncoder({}),a=t.getBindGroupLayout(0);for(let c=0;c<s;++c){let u=e.createView({baseMipLevel:0,mipLevelCount:1,dimension:"2d",baseArrayLayer:c,arrayLayerCount:1}),l=n?1:0;for(let h=1;h<e.mipLevelCount;++h){let f=i.createView({baseMipLevel:l++,mipLevelCount:1,dimension:"2d",baseArrayLayer:c,arrayLayerCount:1}),d=o.beginRenderPass({colorAttachments:[{view:f,storeOp:"store",loadOp:"clear",clearValue:{r:0,g:0,b:0,a:0}}]}),m=this.device.createBindGroup({layout:a,entries:[{binding:0,resource:this.sampler},{binding:1,resource:u}]});d.setPipeline(t),d.setBindGroup(0,m),d.draw(3,1,0,0),d.end(),u=f}}if(!n){let c={width:Math.ceil(e.width/2),height:Math.ceil(e.height/2),depthOrArrayLayers:s};for(let u=1;u<e.mipLevelCount;++u)o.copyTextureToTexture({texture:i,mipLevel:u-1},{texture:e,mipLevel:u},c),c.width=Math.ceil(c.width/2),c.height=Math.ceil(c.height/2)}return this.device.queue.submit([o.finish()]),n||i.destroy(),e}}});var Ua,a1=p(()=>{Ce();B();it();rn();Xr();t1();i1();Up();n1();o1();Ua=class{constructor(e){this.managedTextures=[],this._gpuSources=Object.create(null),this._gpuSamplers=Object.create(null),this._bindGroupHash=Object.create(null),this._textureViewHash=Object.create(null),this._uploads={image:Ql,buffer:e1,video:s1,compressed:r1},this._renderer=e,e.renderableGC.addManagedHash(this,"_gpuSources"),e.renderableGC.addManagedHash(this,"_gpuSamplers"),e.renderableGC.addManagedHash(this,"_bindGroupHash"),e.renderableGC.addManagedHash(this,"_textureViewHash")}contextChange(e){this._gpu=e}initSource(e){if(e.autoGenerateMipmaps){let c=Math.max(e.pixelWidth,e.pixelHeight);e.mipLevelCount=Math.floor(Math.log2(c))+1}let t=GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST;e.uploadMethodId!=="compressed"&&(t|=GPUTextureUsage.RENDER_ATTACHMENT,t|=GPUTextureUsage.COPY_SRC);let i=Fp[e.format]||{blockBytes:4,blockWidth:1,blockHeight:1},s=Math.ceil(e.pixelWidth/i.blockWidth)*i.blockWidth,n=Math.ceil(e.pixelHeight/i.blockHeight)*i.blockHeight,o={label:e.label,size:{width:s,height:n},format:e.format,sampleCount:e.sampleCount,mipLevelCount:e.mipLevelCount,dimension:e.dimension,usage:t},a=this._gpu.device.createTexture(o);return this._gpuSources[e.uid]=a,this.managedTextures.includes(e)||(e.on("update",this.onSourceUpdate,this),e.on("resize",this.onSourceResize,this),e.on("destroy",this.onSourceDestroy,this),e.on("unload",this.onSourceUnload,this),e.on("updateMipmaps",this.onUpdateMipmaps,this),this.managedTextures.push(e)),this.onSourceUpdate(e),a}onSourceUpdate(e){let t=this.getGpuSource(e);t&&(this._uploads[e.uploadMethodId]&&this._uploads[e.uploadMethodId].upload(e,t,this._gpu),e.autoGenerateMipmaps&&e.mipLevelCount>1&&this.onUpdateMipmaps(e))}onSourceUnload(e){let t=this._gpuSources[e.uid];t&&(this._gpuSources[e.uid]=null,t.destroy())}onUpdateMipmaps(e){this._mipmapGenerator||(this._mipmapGenerator=new Zl(this._gpu.device));let t=this.getGpuSource(e);this._mipmapGenerator.generateMipmap(t)}onSourceDestroy(e){e.off("update",this.onSourceUpdate,this),e.off("unload",this.onSourceUnload,this),e.off("destroy",this.onSourceDestroy,this),e.off("resize",this.onSourceResize,this),e.off("updateMipmaps",this.onUpdateMipmaps,this),this.managedTextures.splice(this.managedTextures.indexOf(e),1),this.onSourceUnload(e)}onSourceResize(e){let t=this._gpuSources[e.uid];t?(t.width!==e.pixelWidth||t.height!==e.pixelHeight)&&(this._textureViewHash[e.uid]=null,this._bindGroupHash[e.uid]=null,this.onSourceUnload(e),this.initSource(e)):this.initSource(e)}_initSampler(e){return this._gpuSamplers[e._resourceId]=this._gpu.device.createSampler(e),this._gpuSamplers[e._resourceId]}getGpuSampler(e){return this._gpuSamplers[e._resourceId]||this._initSampler(e)}getGpuSource(e){return this._gpuSources[e.uid]||this.initSource(e)}getTextureBindGroup(e){return this._bindGroupHash[e.uid]??this._createTextureBindGroup(e)}_createTextureBindGroup(e){let t=e.source;return this._bindGroupHash[e.uid]=new Ne({0:t,1:t.style,2:new ce({uTextureMatrix:{type:"mat3x3<f32>",value:e.textureMatrix.mapCoord}})}),this._bindGroupHash[e.uid]}getTextureView(e){let t=e.source;return this._textureViewHash[t.uid]??this._createTextureView(t)}_createTextureView(e){return this._textureViewHash[e.uid]=this.getGpuSource(e).createView(),this._textureViewHash[e.uid]}generateCanvas(e){let t=this._renderer,i=t.gpu.device.createCommandEncoder(),s=W.get().createCanvas();s.width=e.source.pixelWidth,s.height=e.source.pixelHeight;let n=s.getContext("webgpu");return n.configure({device:t.gpu.device,usage:GPUTextureUsage.COPY_DST|GPUTextureUsage.COPY_SRC,format:W.get().getNavigator().gpu.getPreferredCanvasFormat(),alphaMode:"premultiplied"}),i.copyTextureToTexture({texture:t.texture.getGpuSource(e.source),origin:{x:0,y:0}},{texture:n.getCurrentTexture()},{width:s.width,height:s.height}),t.gpu.device.queue.submit([i.finish()]),s}getPixels(e){let t=this.generateCanvas(e),i=yt.getOptimalCanvasAndContext(t.width,t.height),s=i.context;s.drawImage(t,0,0);let{width:n,height:o}=t,a=s.getImageData(0,0,n,o),c=new Uint8ClampedArray(a.data.buffer);return yt.returnCanvasAndContext(i),{pixels:c,width:n,height:o}}destroy(){this.managedTextures.slice().forEach(e=>this.onSourceDestroy(e)),this.managedTextures=null;for(let e of Object.keys(this._bindGroupHash)){let t=Number(e);this._bindGroupHash[t]?.destroy(),this._bindGroupHash[t]=null}this._gpu=null,this._mipmapGenerator=null,this._gpuSources=null,this._bindGroupHash=null,this._textureViewHash=null,this._gpuSamplers=null}};Ua.extension={type:[b.WebGPUSystem],name:"texture"}});var h1={};Tg(h1,{WebGPURenderer:()=>Op});var pR,gR,xR,c1,u1,l1,Op,d1=p(()=>{B();CS();AS();PS();ra();Cp();ir();kv();Av();Pv();Bv();Rv();Dv();Mv();Lv();Vv();Hv();Kv();Qv();Jv();a1();pR=[...Hl,Ba,Ea,mn,ka,va,Ua,Ma,Ia,Fa,Da,Ca,Aa,Sa],gR=[...Wl,Ra],xR=[na,sa,ia],c1=[],u1=[],l1=[];O.handleByNamedList(b.WebGPUSystem,c1);O.handleByNamedList(b.WebGPUPipes,u1);O.handleByNamedList(b.WebGPUPipesAdaptor,l1);O.add(...pR,...gR,...xR);Op=class extends ti{constructor(){let e={name:"webgpu",type:Ie.WEBGPU,systems:c1,renderPipes:u1,renderPipeAdaptors:l1};super(e)}}});var Oa,f1=p(()=>{B();te();Qr();Ro();Do();un();Zr();Zu();Ot();it();Oa=class{contextChange(e){let t=new ce({uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uTransformMatrix:{value:new R,type:"mat3x3<f32>"},uRound:{value:0,type:"f32"}}),i=e.limits.maxBatchableTextures,s=er({name:"graphics",bits:[zs,Hs(i),cn,rr]});this.shader=new ke({glProgram:s,resources:{localUniforms:t,batchSamplers:Ws(i)}})}execute(e,t){let i=t.context,s=i.customShader||this.shader,n=e.renderer,o=n.graphicsContext,{batcher:a,instructions:c}=o.getContextRenderData(i);s.groups[0]=n.globalUniforms.bindGroup,n.state.set(e.state),n.shader.bind(s),n.geometry.bind(a.geometry,s.glProgram);let u=c.instructions;for(let l=0;l<c.instructionSize;l++){let h=u[l];if(h.size){for(let f=0;f<h.textures.count;f++)n.texture.bind(h.textures.textures[f],f);n.geometry.draw(h.topology,h.size,h.start)}}}destroy(){this.shader.destroy(!0),this.shader=null}};Oa.extension={type:[b.WebGLPipesAdaptor],name:"graphics"}});var Ga,m1=p(()=>{B();te();Qr();un();Zr();ap();Ot();le();pe();Ga=class{init(){let e=er({name:"mesh",bits:[cn,kS,rr]});this._shader=new ke({glProgram:e,resources:{uTexture:M.EMPTY.source,textureUniforms:{uTextureMatrix:{type:"mat3x3<f32>",value:new R}}}})}execute(e,t){let i=e.renderer,s=t._shader;if(s){if(!s.glProgram){N("Mesh shader has no glProgram",t.shader);return}}else{s=this._shader;let n=t.texture,o=n.source;s.resources.uTexture=o,s.resources.uSampler=o.style,s.resources.textureUniforms.uniforms.uTextureMatrix=n.textureMatrix.mapCoord}s.groups[100]=i.globalUniforms.bindGroup,s.groups[101]=e.localUniformsBindGroup,i.encoder.draw({geometry:t._geometry,shader:s,state:t.state})}destroy(){this._shader.destroy(!0),this._shader=null}};Ga.extension={type:[b.WebGLPipesAdaptor],name:"mesh"}});var Na,p1=p(()=>{B();Gt();Na=class{constructor(){this._tempState=Pe.for2d(),this._didUploadHash={}}init(e){e.renderer.runners.contextChange.add(this)}contextChange(){this._didUploadHash={}}start(e,t,i){let s=e.renderer,n=this._didUploadHash[i.uid];s.shader.bind(i,n),n||(this._didUploadHash[i.uid]=!0),s.shader.updateUniformGroup(s.globalUniforms.uniformGroup),s.geometry.bind(t,i.glProgram)}execute(e,t){let i=e.renderer;this._tempState.blendMode=t.blendMode,i.state.set(this._tempState);let s=t.textures.textures;for(let n=0;n<t.textures.count;n++)i.texture.bind(s[n],n);i.geometry.draw(t.topology,t.size,t.start)}};Na.extension={type:[b.WebGLPipesAdaptor],name:"batch"}});var La,g1=p(()=>{"use strict";La=(r=>(r[r.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER",r[r.ARRAY_BUFFER=34962]="ARRAY_BUFFER",r[r.UNIFORM_BUFFER=35345]="UNIFORM_BUFFER",r))(La||{})});var Jl,x1=p(()=>{"use strict";Jl=class{constructor(e,t){this._lastBindBaseLocation=-1,this._lastBindCallId=-1,this.buffer=e||null,this.updateID=-1,this.byteLength=-1,this.type=t}}});var za,_1=p(()=>{B();Cr();g1();x1();za=class{constructor(e){this._gpuBuffers=Object.create(null),this._boundBufferBases=Object.create(null),this._minBaseLocation=0,this._nextBindBaseIndex=this._minBaseLocation,this._bindCallId=0,this._renderer=e,this._renderer.renderableGC.addManagedHash(this,"_gpuBuffers")}destroy(){this._renderer=null,this._gl=null,this._gpuBuffers=null,this._boundBufferBases=null}contextChange(){this._gl=this._renderer.gl,this._gpuBuffers=Object.create(null),this._maxBindings=this._renderer.limits.maxUniformBindings}getGlBuffer(e){return this._gpuBuffers[e.uid]||this.createGLBuffer(e)}bind(e){let{_gl:t}=this,i=this.getGlBuffer(e);t.bindBuffer(i.type,i.buffer)}bindBufferBase(e,t){let{_gl:i}=this;this._boundBufferBases[t]!==e&&(this._boundBufferBases[t]=e,e._lastBindBaseLocation=t,i.bindBufferBase(i.UNIFORM_BUFFER,t,e.buffer))}nextBindBase(e){this._bindCallId++,this._minBaseLocation=0,e&&(this._boundBufferBases[0]=null,this._minBaseLocation=1,this._nextBindBaseIndex<1&&(this._nextBindBaseIndex=1))}freeLocationForBufferBase(e){let t=this.getLastBindBaseLocation(e);if(t>=this._minBaseLocation)return e._lastBindCallId=this._bindCallId,t;let i=0,s=this._nextBindBaseIndex;for(;i<2;){s>=this._maxBindings&&(s=this._minBaseLocation,i++);let n=this._boundBufferBases[s];if(n&&n._lastBindCallId===this._bindCallId){s++;continue}break}return t=s,this._nextBindBaseIndex=s+1,i>=2?-1:(e._lastBindCallId=this._bindCallId,this._boundBufferBases[t]=null,t)}getLastBindBaseLocation(e){let t=e._lastBindBaseLocation;return this._boundBufferBases[t]===e?t:-1}bindBufferRange(e,t,i,s){let{_gl:n}=this;i||(i=0),t||(t=0),this._boundBufferBases[t]=null,n.bindBufferRange(n.UNIFORM_BUFFER,t||0,e.buffer,i*256,s||256)}updateBuffer(e){let{_gl:t}=this,i=this.getGlBuffer(e);if(e._updateID===i.updateID)return i;i.updateID=e._updateID,t.bindBuffer(i.type,i.buffer);let s=e.data,n=e.descriptor.usage&Q.STATIC?t.STATIC_DRAW:t.DYNAMIC_DRAW;return s?i.byteLength>=s.byteLength?t.bufferSubData(i.type,0,s,0,e._updateSize/s.BYTES_PER_ELEMENT):(i.byteLength=s.byteLength,t.bufferData(i.type,s,n)):(i.byteLength=e.descriptor.size,t.bufferData(i.type,i.byteLength,n)),i}destroyAll(){let e=this._gl;for(let t in this._gpuBuffers)e.deleteBuffer(this._gpuBuffers[t].buffer);this._gpuBuffers=Object.create(null)}onBufferDestroy(e,t){let i=this._gpuBuffers[e.uid],s=this._gl;t||s.deleteBuffer(i.buffer),this._gpuBuffers[e.uid]=null}createGLBuffer(e){let{_gl:t}=this,i=La.ARRAY_BUFFER;e.descriptor.usage&Q.INDEX?i=La.ELEMENT_ARRAY_BUFFER:e.descriptor.usage&Q.UNIFORM&&(i=La.UNIFORM_BUFFER);let s=new Jl(t.createBuffer(),i);return this._gpuBuffers[e.uid]=s,e.on("destroy",this.onBufferDestroy,this),s}resetState(){this._boundBufferBases=Object.create(null)}};za.extension={type:[b.WebGLSystem],name:"buffer"}});var Gp,y1,T1=p(()=>{Ce();B();pe();Gp=class b1{constructor(e){this.supports={uint32Indices:!0,uniformBufferObject:!0,vertexArrayObject:!0,srgbTextures:!0,nonPowOf2wrapping:!0,msaa:!0,nonPowOf2mipmaps:!0},this._renderer=e,this.extensions=Object.create(null),this.handleContextLost=this.handleContextLost.bind(this),this.handleContextRestored=this.handleContextRestored.bind(this)}get isLost(){return!this.gl||this.gl.isContextLost()}contextChange(e){this.gl=e,this._renderer.gl=e}init(e){e={...b1.defaultOptions,...e};let t=this.multiView=e.multiView;if(e.context&&t&&(N("Renderer created with both a context and multiview enabled. Disabling multiView as both cannot work together."),t=!1),t?this.canvas=W.get().createCanvas(this._renderer.canvas.width,this._renderer.canvas.height):this.canvas=this._renderer.view.canvas,e.context)this.initFromContext(e.context);else{let i=this._renderer.background.alpha<1,s=e.premultipliedAlpha??!0,n=e.antialias&&!this._renderer.backBuffer.useBackBuffer;this.createContext(e.preferWebGLVersion,{alpha:i,premultipliedAlpha:s,antialias:n,stencil:!0,preserveDrawingBuffer:e.preserveDrawingBuffer,powerPreference:e.powerPreference??"default"})}}ensureCanvasSize(e){if(!this.multiView){e!==this.canvas&&N("multiView is disabled, but targetCanvas is not the main canvas");return}let{canvas:t}=this;(t.width<e.width||t.height<e.height)&&(t.width=Math.max(e.width,e.width),t.height=Math.max(e.height,e.height))}initFromContext(e){this.gl=e,this.webGLVersion=e instanceof W.get().getWebGLRenderingContext()?1:2,this.getExtensions(),this.validateContext(e),this._renderer.runners.contextChange.emit(e);let t=this._renderer.view.canvas;t.addEventListener("webglcontextlost",this.handleContextLost,!1),t.addEventListener("webglcontextrestored",this.handleContextRestored,!1)}createContext(e,t){let i,s=this.canvas;if(e===2&&(i=s.getContext("webgl2",t)),!i&&(i=s.getContext("webgl",t),!i))throw new Error("This browser does not support WebGL. Try using the canvas renderer");this.gl=i,this.initFromContext(this.gl)}getExtensions(){let{gl:e}=this,t={anisotropicFiltering:e.getExtension("EXT_texture_filter_anisotropic"),floatTextureLinear:e.getExtension("OES_texture_float_linear"),s3tc:e.getExtension("WEBGL_compressed_texture_s3tc"),s3tc_sRGB:e.getExtension("WEBGL_compressed_texture_s3tc_srgb"),etc:e.getExtension("WEBGL_compressed_texture_etc"),etc1:e.getExtension("WEBGL_compressed_texture_etc1"),pvrtc:e.getExtension("WEBGL_compressed_texture_pvrtc")||e.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"),atc:e.getExtension("WEBGL_compressed_texture_atc"),astc:e.getExtension("WEBGL_compressed_texture_astc"),bptc:e.getExtension("EXT_texture_compression_bptc"),rgtc:e.getExtension("EXT_texture_compression_rgtc"),loseContext:e.getExtension("WEBGL_lose_context")};if(this.webGLVersion===1)this.extensions={...t,drawBuffers:e.getExtension("WEBGL_draw_buffers"),depthTexture:e.getExtension("WEBGL_depth_texture"),vertexArrayObject:e.getExtension("OES_vertex_array_object")||e.getExtension("MOZ_OES_vertex_array_object")||e.getExtension("WEBKIT_OES_vertex_array_object"),uint32ElementIndex:e.getExtension("OES_element_index_uint"),floatTexture:e.getExtension("OES_texture_float"),floatTextureLinear:e.getExtension("OES_texture_float_linear"),textureHalfFloat:e.getExtension("OES_texture_half_float"),textureHalfFloatLinear:e.getExtension("OES_texture_half_float_linear"),vertexAttribDivisorANGLE:e.getExtension("ANGLE_instanced_arrays"),srgb:e.getExtension("EXT_sRGB")};else{this.extensions={...t,colorBufferFloat:e.getExtension("EXT_color_buffer_float")};let i=e.getExtension("WEBGL_provoking_vertex");i&&i.provokingVertexWEBGL(i.FIRST_VERTEX_CONVENTION_WEBGL)}}handleContextLost(e){e.preventDefault(),this._contextLossForced&&(this._contextLossForced=!1,setTimeout(()=>{this.gl.isContextLost()&&this.extensions.loseContext?.restoreContext()},0))}handleContextRestored(){this.getExtensions(),this._renderer.runners.contextChange.emit(this.gl)}destroy(){let e=this._renderer.view.canvas;this._renderer=null,e.removeEventListener("webglcontextlost",this.handleContextLost),e.removeEventListener("webglcontextrestored",this.handleContextRestored),this.gl.useProgram(null),this.extensions.loseContext?.loseContext()}forceContextLoss(){this.extensions.loseContext?.loseContext(),this._contextLossForced=!0}validateContext(e){let t=e.getContextAttributes();t&&!t.stencil&&N("Provided WebGL context does not have a stencil buffer, masks may not render correctly");let i=this.supports,s=this.webGLVersion===2,n=this.extensions;i.uint32Indices=s||!!n.uint32ElementIndex,i.uniformBufferObject=s,i.vertexArrayObject=s||!!n.vertexArrayObject,i.srgbTextures=s||!!n.srgb,i.nonPowOf2wrapping=s,i.nonPowOf2mipmaps=s,i.msaa=s,i.uint32Indices||N("Provided WebGL context does not support 32 index buffer, large scenes may not render correctly")}};Gp.extension={type:[b.WebGLSystem],name:"context"};Gp.defaultOptions={context:null,premultipliedAlpha:!0,preserveDrawingBuffer:!1,powerPreference:void 0,preferWebGLVersion:2,multiView:!1};y1=Gp});var eh,Np,ie,Lp=p(()=>{"use strict";eh=(r=>(r[r.RGBA=6408]="RGBA",r[r.RGB=6407]="RGB",r[r.RG=33319]="RG",r[r.RED=6403]="RED",r[r.RGBA_INTEGER=36249]="RGBA_INTEGER",r[r.RGB_INTEGER=36248]="RGB_INTEGER",r[r.RG_INTEGER=33320]="RG_INTEGER",r[r.RED_INTEGER=36244]="RED_INTEGER",r[r.ALPHA=6406]="ALPHA",r[r.LUMINANCE=6409]="LUMINANCE",r[r.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA",r[r.DEPTH_COMPONENT=6402]="DEPTH_COMPONENT",r[r.DEPTH_STENCIL=34041]="DEPTH_STENCIL",r))(eh||{}),Np=(r=>(r[r.TEXTURE_2D=3553]="TEXTURE_2D",r[r.TEXTURE_CUBE_MAP=34067]="TEXTURE_CUBE_MAP",r[r.TEXTURE_2D_ARRAY=35866]="TEXTURE_2D_ARRAY",r[r.TEXTURE_CUBE_MAP_POSITIVE_X=34069]="TEXTURE_CUBE_MAP_POSITIVE_X",r[r.TEXTURE_CUBE_MAP_NEGATIVE_X=34070]="TEXTURE_CUBE_MAP_NEGATIVE_X",r[r.TEXTURE_CUBE_MAP_POSITIVE_Y=34071]="TEXTURE_CUBE_MAP_POSITIVE_Y",r[r.TEXTURE_CUBE_MAP_NEGATIVE_Y=34072]="TEXTURE_CUBE_MAP_NEGATIVE_Y",r[r.TEXTURE_CUBE_MAP_POSITIVE_Z=34073]="TEXTURE_CUBE_MAP_POSITIVE_Z",r[r.TEXTURE_CUBE_MAP_NEGATIVE_Z=34074]="TEXTURE_CUBE_MAP_NEGATIVE_Z",r))(Np||{}),ie=(r=>(r[r.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",r[r.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",r[r.UNSIGNED_SHORT_5_6_5=33635]="UNSIGNED_SHORT_5_6_5",r[r.UNSIGNED_SHORT_4_4_4_4=32819]="UNSIGNED_SHORT_4_4_4_4",r[r.UNSIGNED_SHORT_5_5_5_1=32820]="UNSIGNED_SHORT_5_5_5_1",r[r.UNSIGNED_INT=5125]="UNSIGNED_INT",r[r.UNSIGNED_INT_10F_11F_11F_REV=35899]="UNSIGNED_INT_10F_11F_11F_REV",r[r.UNSIGNED_INT_2_10_10_10_REV=33640]="UNSIGNED_INT_2_10_10_10_REV",r[r.UNSIGNED_INT_24_8=34042]="UNSIGNED_INT_24_8",r[r.UNSIGNED_INT_5_9_9_9_REV=35902]="UNSIGNED_INT_5_9_9_9_REV",r[r.BYTE=5120]="BYTE",r[r.SHORT=5122]="SHORT",r[r.INT=5124]="INT",r[r.FLOAT=5126]="FLOAT",r[r.FLOAT_32_UNSIGNED_INT_24_8_REV=36269]="FLOAT_32_UNSIGNED_INT_24_8_REV",r[r.HALF_FLOAT=36193]="HALF_FLOAT",r))(ie||{})});function S1(r){return w1[r]??w1.float32}var w1,v1=p(()=>{Lp();w1={uint8x2:ie.UNSIGNED_BYTE,uint8x4:ie.UNSIGNED_BYTE,sint8x2:ie.BYTE,sint8x4:ie.BYTE,unorm8x2:ie.UNSIGNED_BYTE,unorm8x4:ie.UNSIGNED_BYTE,snorm8x2:ie.BYTE,snorm8x4:ie.BYTE,uint16x2:ie.UNSIGNED_SHORT,uint16x4:ie.UNSIGNED_SHORT,sint16x2:ie.SHORT,sint16x4:ie.SHORT,unorm16x2:ie.UNSIGNED_SHORT,unorm16x4:ie.UNSIGNED_SHORT,snorm16x2:ie.SHORT,snorm16x4:ie.SHORT,float16x2:ie.HALF_FLOAT,float16x4:ie.HALF_FLOAT,float32:ie.FLOAT,float32x2:ie.FLOAT,float32x3:ie.FLOAT,float32x4:ie.FLOAT,uint32:ie.UNSIGNED_INT,uint32x2:ie.UNSIGNED_INT,uint32x3:ie.UNSIGNED_INT,uint32x4:ie.UNSIGNED_INT,sint32:ie.INT,sint32x2:ie.INT,sint32x3:ie.INT,sint32x4:ie.INT}});var _R,Va,C1=p(()=>{B();qi();Dp();v1();_R={"point-list":0,"line-list":1,"line-strip":3,"triangle-list":4,"triangle-strip":5},Va=class{constructor(e){this._geometryVaoHash=Object.create(null),this._renderer=e,this._activeGeometry=null,this._activeVao=null,this.hasVao=!0,this.hasInstance=!0,this._renderer.renderableGC.addManagedHash(this,"_geometryVaoHash")}contextChange(){let e=this.gl=this._renderer.gl;if(!this._renderer.context.supports.vertexArrayObject)throw new Error("[PixiJS] Vertex Array Objects are not supported on this device");let t=this._renderer.context.extensions.vertexArrayObject;t&&(e.createVertexArray=()=>t.createVertexArrayOES(),e.bindVertexArray=s=>t.bindVertexArrayOES(s),e.deleteVertexArray=s=>t.deleteVertexArrayOES(s));let i=this._renderer.context.extensions.vertexAttribDivisorANGLE;i&&(e.drawArraysInstanced=(s,n,o,a)=>{i.drawArraysInstancedANGLE(s,n,o,a)},e.drawElementsInstanced=(s,n,o,a,c)=>{i.drawElementsInstancedANGLE(s,n,o,a,c)},e.vertexAttribDivisor=(s,n)=>i.vertexAttribDivisorANGLE(s,n)),this._activeGeometry=null,this._activeVao=null,this._geometryVaoHash=Object.create(null)}bind(e,t){let i=this.gl;this._activeGeometry=e;let s=this.getVao(e,t);this._activeVao!==s&&(this._activeVao=s,i.bindVertexArray(s)),this.updateBuffers()}resetState(){this.unbind()}updateBuffers(){let e=this._activeGeometry,t=this._renderer.buffer;for(let i=0;i<e.buffers.length;i++){let s=e.buffers[i];t.updateBuffer(s)}}checkCompatibility(e,t){let i=e.attributes,s=t._attributeData;for(let n in s)if(!i[n])throw new Error(`shader and geometry incompatible, geometry missing the "${n}" attribute`)}getSignature(e,t){let i=e.attributes,s=t._attributeData,n=["g",e.uid];for(let o in i)s[o]&&n.push(o,s[o].location);return n.join("-")}getVao(e,t){return this._geometryVaoHash[e.uid]?.[t._key]||this.initGeometryVao(e,t)}initGeometryVao(e,t,i=!0){let s=this._renderer.gl,n=this._renderer.buffer;this._renderer.shader._getProgramData(t),this.checkCompatibility(e,t);let o=this.getSignature(e,t);this._geometryVaoHash[e.uid]||(this._geometryVaoHash[e.uid]=Object.create(null),e.on("destroy",this.onGeometryDestroy,this));let a=this._geometryVaoHash[e.uid],c=a[o];if(c)return a[t._key]=c,c;Xl(e,t._attributeData);let u=e.buffers;c=s.createVertexArray(),s.bindVertexArray(c);for(let l=0;l<u.length;l++){let h=u[l];n.bind(h)}return this.activateVao(e,t),a[t._key]=c,a[o]=c,s.bindVertexArray(null),c}onGeometryDestroy(e,t){let i=this._geometryVaoHash[e.uid],s=this.gl;if(i){if(t)for(let n in i)this._activeVao!==i[n]&&this.unbind(),s.deleteVertexArray(i[n]);this._geometryVaoHash[e.uid]=null}}destroyAll(e=!1){let t=this.gl;for(let i in this._geometryVaoHash){if(e)for(let s in this._geometryVaoHash[i]){let n=this._geometryVaoHash[i];this._activeVao!==n&&this.unbind(),t.deleteVertexArray(n[s])}this._geometryVaoHash[i]=null}}activateVao(e,t){let i=this._renderer.gl,s=this._renderer.buffer,n=e.attributes;e.indexBuffer&&s.bind(e.indexBuffer);let o=null;for(let a in n){let c=n[a],u=c.buffer,l=s.getGlBuffer(u),h=t._attributeData[a];if(h){o!==l&&(s.bind(u),o=l);let f=h.location;i.enableVertexAttribArray(f);let d=ut(c.format),m=S1(c.format);if(h.format?.substring(1,4)==="int"?i.vertexAttribIPointer(f,d.size,m,c.stride,c.offset):i.vertexAttribPointer(f,d.size,m,d.normalised,c.stride,c.offset),c.instance)if(this.hasInstance){let x=c.divisor??1;i.vertexAttribDivisor(f,x)}else throw new Error("geometry error, GPU Instancing is not supported on this device")}}}draw(e,t,i,s){let{gl:n}=this._renderer,o=this._activeGeometry,a=_R[e||o.topology];if(s??(s=o.instanceCount),o.indexBuffer){let c=o.indexBuffer.data.BYTES_PER_ELEMENT,u=c===2?n.UNSIGNED_SHORT:n.UNSIGNED_INT;s>1?n.drawElementsInstanced(a,t||o.indexBuffer.data.length,u,(i||0)*c,s):n.drawElements(a,t||o.indexBuffer.data.length,u,(i||0)*c)}else s>1?n.drawArraysInstanced(a,i||0,t||o.getSize(),s):n.drawArrays(a,i||0,t||o.getSize());return this}unbind(){this.gl.bindVertexArray(null),this._activeVao=null,this._activeGeometry=null}destroy(){this._renderer=null,this.gl=null,this._activeVao=null,this._activeGeometry=null}};Va.extension={type:[b.WebGLSystem],name:"geometry"}});var bR,zp,k1,A1=p(()=>{B();pe();Os();Ot();Gt();tt();le();$i();bR=new At({attributes:{aPosition:[-1,-1,3,-1,-1,3]}}),zp=class E1{constructor(e){this.useBackBuffer=!1,this._useBackBufferThisRender=!1,this._renderer=e}init(e={}){let{useBackBuffer:t,antialias:i}={...E1.defaultOptions,...e};this.useBackBuffer=t,this._antialias=i,this._renderer.context.supports.msaa||(N("antialiasing, is not supported on when using the back buffer"),this._antialias=!1),this._state=Pe.for2d();let s=new Pt({vertex:`
934
+ `})),t=this.device.createRenderPipeline({layout:"auto",vertex:{module:this.mipmapShaderModule,entryPoint:"vertexMain"},fragment:{module:this.mipmapShaderModule,entryPoint:"fragmentMain",targets:[{format:e}]}}),this.pipelines[e]=t),t}generateMipmap(e){let t=this._getMipmapPipeline(e.format);if(e.dimension==="3d"||e.dimension==="1d")throw new Error("Generating mipmaps for non-2d textures is currently unsupported!");let i=e,s=e.depthOrArrayLayers||1,n=e.usage&GPUTextureUsage.RENDER_ATTACHMENT;if(!n){let c={size:{width:Math.ceil(e.width/2),height:Math.ceil(e.height/2),depthOrArrayLayers:s},format:e.format,usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC|GPUTextureUsage.RENDER_ATTACHMENT,mipLevelCount:e.mipLevelCount-1};i=this.device.createTexture(c)}let o=this.device.createCommandEncoder({}),a=t.getBindGroupLayout(0);for(let c=0;c<s;++c){let u=e.createView({baseMipLevel:0,mipLevelCount:1,dimension:"2d",baseArrayLayer:c,arrayLayerCount:1}),l=n?1:0;for(let h=1;h<e.mipLevelCount;++h){let f=i.createView({baseMipLevel:l++,mipLevelCount:1,dimension:"2d",baseArrayLayer:c,arrayLayerCount:1}),d=o.beginRenderPass({colorAttachments:[{view:f,storeOp:"store",loadOp:"clear",clearValue:{r:0,g:0,b:0,a:0}}]}),m=this.device.createBindGroup({layout:a,entries:[{binding:0,resource:this.sampler},{binding:1,resource:u}]});d.setPipeline(t),d.setBindGroup(0,m),d.draw(3,1,0,0),d.end(),u=f}}if(!n){let c={width:Math.ceil(e.width/2),height:Math.ceil(e.height/2),depthOrArrayLayers:s};for(let u=1;u<e.mipLevelCount;++u)o.copyTextureToTexture({texture:i,mipLevel:u-1},{texture:e,mipLevel:u},c),c.width=Math.ceil(c.width/2),c.height=Math.ceil(c.height/2)}return this.device.queue.submit([o.finish()]),n||i.destroy(),e}}});var da,US=p(()=>{ve();P();rt();Us();$r();BS();DS();Zm();IS();FS();da=class{constructor(e){this.managedTextures=[],this._gpuSources=Object.create(null),this._gpuSamplers=Object.create(null),this._bindGroupHash=Object.create(null),this._textureViewHash=Object.create(null),this._uploads={image:ml,buffer:PS,video:MS,compressed:RS},this._renderer=e,e.renderableGC.addManagedHash(this,"_gpuSources"),e.renderableGC.addManagedHash(this,"_gpuSamplers"),e.renderableGC.addManagedHash(this,"_bindGroupHash"),e.renderableGC.addManagedHash(this,"_textureViewHash")}contextChange(e){this._gpu=e}initSource(e){if(e.autoGenerateMipmaps){let c=Math.max(e.pixelWidth,e.pixelHeight);e.mipLevelCount=Math.floor(Math.log2(c))+1}let t=GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST;e.uploadMethodId!=="compressed"&&(t|=GPUTextureUsage.RENDER_ATTACHMENT,t|=GPUTextureUsage.COPY_SRC);let i=Qm[e.format]||{blockBytes:4,blockWidth:1,blockHeight:1},s=Math.ceil(e.pixelWidth/i.blockWidth)*i.blockWidth,n=Math.ceil(e.pixelHeight/i.blockHeight)*i.blockHeight,o={label:e.label,size:{width:s,height:n},format:e.format,sampleCount:e.sampleCount,mipLevelCount:e.mipLevelCount,dimension:e.dimension,usage:t},a=this._gpu.device.createTexture(o);return this._gpuSources[e.uid]=a,this.managedTextures.includes(e)||(e.on("update",this.onSourceUpdate,this),e.on("resize",this.onSourceResize,this),e.on("destroy",this.onSourceDestroy,this),e.on("unload",this.onSourceUnload,this),e.on("updateMipmaps",this.onUpdateMipmaps,this),this.managedTextures.push(e)),this.onSourceUpdate(e),a}onSourceUpdate(e){let t=this.getGpuSource(e);t&&(this._uploads[e.uploadMethodId]&&this._uploads[e.uploadMethodId].upload(e,t,this._gpu),e.autoGenerateMipmaps&&e.mipLevelCount>1&&this.onUpdateMipmaps(e))}onSourceUnload(e){let t=this._gpuSources[e.uid];t&&(this._gpuSources[e.uid]=null,t.destroy())}onUpdateMipmaps(e){this._mipmapGenerator||(this._mipmapGenerator=new pl(this._gpu.device));let t=this.getGpuSource(e);this._mipmapGenerator.generateMipmap(t)}onSourceDestroy(e){e.off("update",this.onSourceUpdate,this),e.off("unload",this.onSourceUnload,this),e.off("destroy",this.onSourceDestroy,this),e.off("resize",this.onSourceResize,this),e.off("updateMipmaps",this.onUpdateMipmaps,this),this.managedTextures.splice(this.managedTextures.indexOf(e),1),this.onSourceUnload(e)}onSourceResize(e){let t=this._gpuSources[e.uid];t?(t.width!==e.pixelWidth||t.height!==e.pixelHeight)&&(this._textureViewHash[e.uid]=null,this._bindGroupHash[e.uid]=null,this.onSourceUnload(e),this.initSource(e)):this.initSource(e)}_initSampler(e){return this._gpuSamplers[e._resourceId]=this._gpu.device.createSampler(e),this._gpuSamplers[e._resourceId]}getGpuSampler(e){return this._gpuSamplers[e._resourceId]||this._initSampler(e)}getGpuSource(e){return this._gpuSources[e.uid]||this.initSource(e)}getTextureBindGroup(e){return this._bindGroupHash[e.uid]??this._createTextureBindGroup(e)}_createTextureBindGroup(e){let t=e.source;return this._bindGroupHash[e.uid]=new Ne({0:t,1:t.style,2:new ce({uTextureMatrix:{type:"mat3x3<f32>",value:e.textureMatrix.mapCoord}})}),this._bindGroupHash[e.uid]}getTextureView(e){let t=e.source;return this._textureViewHash[t.uid]??this._createTextureView(t)}_createTextureView(e){return this._textureViewHash[e.uid]=this.getGpuSource(e).createView(),this._textureViewHash[e.uid]}generateCanvas(e){let t=this._renderer,i=t.gpu.device.createCommandEncoder(),s=W.get().createCanvas();s.width=e.source.pixelWidth,s.height=e.source.pixelHeight;let n=s.getContext("webgpu");return n.configure({device:t.gpu.device,usage:GPUTextureUsage.COPY_DST|GPUTextureUsage.COPY_SRC,format:W.get().getNavigator().gpu.getPreferredCanvasFormat(),alphaMode:"premultiplied"}),i.copyTextureToTexture({texture:t.texture.getGpuSource(e.source),origin:{x:0,y:0}},{texture:n.getCurrentTexture()},{width:s.width,height:s.height}),t.gpu.device.queue.submit([i.finish()]),s}getPixels(e){let t=this.generateCanvas(e),i=bt.getOptimalCanvasAndContext(t.width,t.height),s=i.context;s.drawImage(t,0,0);let{width:n,height:o}=t,a=s.getImageData(0,0,n,o),c=new Uint8ClampedArray(a.data.buffer);return bt.returnCanvasAndContext(i),{pixels:c,width:n,height:o}}destroy(){this.managedTextures.slice().forEach(e=>this.onSourceDestroy(e)),this.managedTextures=null;for(let e of Object.keys(this._bindGroupHash)){let t=Number(e);this._bindGroupHash[t]?.destroy(),this._bindGroupHash[t]=null}this._gpu=null,this._mipmapGenerator=null,this._gpuSources=null,this._bindGroupHash=null,this._textureViewHash=null,this._gpuSamplers=null}};da.extension={type:[b.WebGPUSystem],name:"texture"}});var LS={};yg(LS,{WebGPURenderer:()=>Jm});var LP,zP,VP,OS,GS,NS,Jm,zS=p(()=>{P();ew();iw();sw();Do();zm();Jt();rS();iS();sS();nS();oS();aS();cS();pS();xS();_S();CS();ES();AS();US();LP=[...ol,oa,ra,js,ia,ea,da,ua,la,ha,ca,ta,sa,Jo],zP=[...al,aa],VP=[Fo,Io,Mo],OS=[],GS=[],NS=[];O.handleByNamedList(b.WebGPUSystem,OS);O.handleByNamedList(b.WebGPUPipes,GS);O.handleByNamedList(b.WebGPUPipesAdaptor,NS);O.add(...LP,...zP,...VP);Jm=class extends Zr{constructor(){let e={name:"webgpu",type:Me.WEBGPU,systems:OS,renderPipes:GS,renderPipeAdaptors:NS};super(e)}}});var fa,VS=p(()=>{P();ee();Xr();oo();ao();Vs();Yr();pu();Ut();rt();fa=class{contextChange(e){let t=new ce({uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uTransformMatrix:{value:new R,type:"mat3x3<f32>"},uRound:{value:0,type:"f32"}}),i=e.limits.maxBatchableTextures,s=Kt({name:"graphics",bits:[Ts,Ss(i),zs,Zt]});this.shader=new Ee({glProgram:s,resources:{localUniforms:t,batchSamplers:vs(i)}})}execute(e,t){let i=t.context,s=i.customShader||this.shader,n=e.renderer,o=n.graphicsContext,{batcher:a,instructions:c}=o.getContextRenderData(i);s.groups[0]=n.globalUniforms.bindGroup,n.state.set(e.state),n.shader.bind(s),n.geometry.bind(a.geometry,s.glProgram);let u=c.instructions;for(let l=0;l<c.instructionSize;l++){let h=u[l];if(h.size){for(let f=0;f<h.textures.count;f++)n.texture.bind(h.textures.textures[f],f);n.geometry.draw(h.topology,h.size,h.start)}}}destroy(){this.shader.destroy(!0),this.shader=null}};fa.extension={type:[b.WebGLPipesAdaptor],name:"graphics"}});var ma,HS=p(()=>{P();ee();Xr();Vs();Yr();Sm();Ut();le();ge();ma=class{init(){let e=Kt({name:"mesh",bits:[zs,rw,Zt]});this._shader=new Ee({glProgram:e,resources:{uTexture:D.EMPTY.source,textureUniforms:{uTextureMatrix:{type:"mat3x3<f32>",value:new R}}}})}execute(e,t){let i=e.renderer,s=t._shader;if(s){if(!s.glProgram){G("Mesh shader has no glProgram",t.shader);return}}else{s=this._shader;let n=t.texture,o=n.source;s.resources.uTexture=o,s.resources.uSampler=o.style,s.resources.textureUniforms.uniforms.uTextureMatrix=n.textureMatrix.mapCoord}s.groups[100]=i.globalUniforms.bindGroup,s.groups[101]=e.localUniformsBindGroup,i.encoder.draw({geometry:t._geometry,shader:s,state:t.state})}destroy(){this._shader.destroy(!0),this._shader=null}};ma.extension={type:[b.WebGLPipesAdaptor],name:"mesh"}});var pa,WS=p(()=>{P();Ot();pa=class{constructor(){this._tempState=Ae.for2d(),this._didUploadHash={}}init(e){e.renderer.runners.contextChange.add(this)}contextChange(){this._didUploadHash={}}start(e,t,i){let s=e.renderer,n=this._didUploadHash[i.uid];s.shader.bind(i,n),n||(this._didUploadHash[i.uid]=!0),s.shader.updateUniformGroup(s.globalUniforms.uniformGroup),s.geometry.bind(t,i.glProgram)}execute(e,t){let i=e.renderer;this._tempState.blendMode=t.blendMode,i.state.set(this._tempState);let s=t.textures.textures;for(let n=0;n<t.textures.count;n++)i.texture.bind(s[n],n);i.geometry.draw(t.topology,t.size,t.start)}};pa.extension={type:[b.WebGLPipesAdaptor],name:"batch"}});var ga,$S=p(()=>{"use strict";ga=(r=>(r[r.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER",r[r.ARRAY_BUFFER=34962]="ARRAY_BUFFER",r[r.UNIFORM_BUFFER=35345]="UNIFORM_BUFFER",r))(ga||{})});var gl,qS=p(()=>{"use strict";gl=class{constructor(e,t){this._lastBindBaseLocation=-1,this._lastBindCallId=-1,this.buffer=e||null,this.updateID=-1,this.byteLength=-1,this.type=t}}});var xa,jS=p(()=>{P();wr();$S();qS();xa=class{constructor(e){this._gpuBuffers=Object.create(null),this._boundBufferBases=Object.create(null),this._minBaseLocation=0,this._nextBindBaseIndex=this._minBaseLocation,this._bindCallId=0,this._renderer=e,this._renderer.renderableGC.addManagedHash(this,"_gpuBuffers")}destroy(){this._renderer=null,this._gl=null,this._gpuBuffers=null,this._boundBufferBases=null}contextChange(){this._gl=this._renderer.gl,this._gpuBuffers=Object.create(null),this._maxBindings=this._renderer.limits.maxUniformBindings}getGlBuffer(e){return this._gpuBuffers[e.uid]||this.createGLBuffer(e)}bind(e){let{_gl:t}=this,i=this.getGlBuffer(e);t.bindBuffer(i.type,i.buffer)}bindBufferBase(e,t){let{_gl:i}=this;this._boundBufferBases[t]!==e&&(this._boundBufferBases[t]=e,e._lastBindBaseLocation=t,i.bindBufferBase(i.UNIFORM_BUFFER,t,e.buffer))}nextBindBase(e){this._bindCallId++,this._minBaseLocation=0,e&&(this._boundBufferBases[0]=null,this._minBaseLocation=1,this._nextBindBaseIndex<1&&(this._nextBindBaseIndex=1))}freeLocationForBufferBase(e){let t=this.getLastBindBaseLocation(e);if(t>=this._minBaseLocation)return e._lastBindCallId=this._bindCallId,t;let i=0,s=this._nextBindBaseIndex;for(;i<2;){s>=this._maxBindings&&(s=this._minBaseLocation,i++);let n=this._boundBufferBases[s];if(n&&n._lastBindCallId===this._bindCallId){s++;continue}break}return t=s,this._nextBindBaseIndex=s+1,i>=2?-1:(e._lastBindCallId=this._bindCallId,this._boundBufferBases[t]=null,t)}getLastBindBaseLocation(e){let t=e._lastBindBaseLocation;return this._boundBufferBases[t]===e?t:-1}bindBufferRange(e,t,i,s){let{_gl:n}=this;i||(i=0),t||(t=0),this._boundBufferBases[t]=null,n.bindBufferRange(n.UNIFORM_BUFFER,t||0,e.buffer,i*256,s||256)}updateBuffer(e){let{_gl:t}=this,i=this.getGlBuffer(e);if(e._updateID===i.updateID)return i;i.updateID=e._updateID,t.bindBuffer(i.type,i.buffer);let s=e.data,n=e.descriptor.usage&Q.STATIC?t.STATIC_DRAW:t.DYNAMIC_DRAW;return s?i.byteLength>=s.byteLength?t.bufferSubData(i.type,0,s,0,e._updateSize/s.BYTES_PER_ELEMENT):(i.byteLength=s.byteLength,t.bufferData(i.type,s,n)):(i.byteLength=e.descriptor.size,t.bufferData(i.type,i.byteLength,n)),i}destroyAll(){let e=this._gl;for(let t in this._gpuBuffers)e.deleteBuffer(this._gpuBuffers[t].buffer);this._gpuBuffers=Object.create(null)}onBufferDestroy(e,t){let i=this._gpuBuffers[e.uid],s=this._gl;t||s.deleteBuffer(i.buffer),this._gpuBuffers[e.uid]=null}createGLBuffer(e){let{_gl:t}=this,i=ga.ARRAY_BUFFER;e.descriptor.usage&Q.INDEX?i=ga.ELEMENT_ARRAY_BUFFER:e.descriptor.usage&Q.UNIFORM&&(i=ga.UNIFORM_BUFFER);let s=new gl(t.createBuffer(),i);return this._gpuBuffers[e.uid]=s,e.on("destroy",this.onBufferDestroy,this),s}resetState(){this._boundBufferBases=Object.create(null)}};xa.extension={type:[b.WebGLSystem],name:"buffer"}});var ep,YS,KS=p(()=>{ve();P();ge();ep=class XS{constructor(e){this.supports={uint32Indices:!0,uniformBufferObject:!0,vertexArrayObject:!0,srgbTextures:!0,nonPowOf2wrapping:!0,msaa:!0,nonPowOf2mipmaps:!0},this._renderer=e,this.extensions=Object.create(null),this.handleContextLost=this.handleContextLost.bind(this),this.handleContextRestored=this.handleContextRestored.bind(this)}get isLost(){return!this.gl||this.gl.isContextLost()}contextChange(e){this.gl=e,this._renderer.gl=e}init(e){e={...XS.defaultOptions,...e};let t=this.multiView=e.multiView;if(e.context&&t&&(G("Renderer created with both a context and multiview enabled. Disabling multiView as both cannot work together."),t=!1),t?this.canvas=W.get().createCanvas(this._renderer.canvas.width,this._renderer.canvas.height):this.canvas=this._renderer.view.canvas,e.context)this.initFromContext(e.context);else{let i=this._renderer.background.alpha<1,s=e.premultipliedAlpha??!0,n=e.antialias&&!this._renderer.backBuffer.useBackBuffer;this.createContext(e.preferWebGLVersion,{alpha:i,premultipliedAlpha:s,antialias:n,stencil:!0,preserveDrawingBuffer:e.preserveDrawingBuffer,powerPreference:e.powerPreference??"default"})}}ensureCanvasSize(e){if(!this.multiView){e!==this.canvas&&G("multiView is disabled, but targetCanvas is not the main canvas");return}let{canvas:t}=this;(t.width<e.width||t.height<e.height)&&(t.width=Math.max(e.width,e.width),t.height=Math.max(e.height,e.height))}initFromContext(e){this.gl=e,this.webGLVersion=e instanceof W.get().getWebGLRenderingContext()?1:2,this.getExtensions(),this.validateContext(e),this._renderer.runners.contextChange.emit(e);let t=this._renderer.view.canvas;t.addEventListener("webglcontextlost",this.handleContextLost,!1),t.addEventListener("webglcontextrestored",this.handleContextRestored,!1)}createContext(e,t){let i,s=this.canvas;if(e===2&&(i=s.getContext("webgl2",t)),!i&&(i=s.getContext("webgl",t),!i))throw new Error("This browser does not support WebGL. Try using the canvas renderer");this.gl=i,this.initFromContext(this.gl)}getExtensions(){let{gl:e}=this,t={anisotropicFiltering:e.getExtension("EXT_texture_filter_anisotropic"),floatTextureLinear:e.getExtension("OES_texture_float_linear"),s3tc:e.getExtension("WEBGL_compressed_texture_s3tc"),s3tc_sRGB:e.getExtension("WEBGL_compressed_texture_s3tc_srgb"),etc:e.getExtension("WEBGL_compressed_texture_etc"),etc1:e.getExtension("WEBGL_compressed_texture_etc1"),pvrtc:e.getExtension("WEBGL_compressed_texture_pvrtc")||e.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"),atc:e.getExtension("WEBGL_compressed_texture_atc"),astc:e.getExtension("WEBGL_compressed_texture_astc"),bptc:e.getExtension("EXT_texture_compression_bptc"),rgtc:e.getExtension("EXT_texture_compression_rgtc"),loseContext:e.getExtension("WEBGL_lose_context")};if(this.webGLVersion===1)this.extensions={...t,drawBuffers:e.getExtension("WEBGL_draw_buffers"),depthTexture:e.getExtension("WEBGL_depth_texture"),vertexArrayObject:e.getExtension("OES_vertex_array_object")||e.getExtension("MOZ_OES_vertex_array_object")||e.getExtension("WEBKIT_OES_vertex_array_object"),uint32ElementIndex:e.getExtension("OES_element_index_uint"),floatTexture:e.getExtension("OES_texture_float"),floatTextureLinear:e.getExtension("OES_texture_float_linear"),textureHalfFloat:e.getExtension("OES_texture_half_float"),textureHalfFloatLinear:e.getExtension("OES_texture_half_float_linear"),vertexAttribDivisorANGLE:e.getExtension("ANGLE_instanced_arrays"),srgb:e.getExtension("EXT_sRGB")};else{this.extensions={...t,colorBufferFloat:e.getExtension("EXT_color_buffer_float")};let i=e.getExtension("WEBGL_provoking_vertex");i&&i.provokingVertexWEBGL(i.FIRST_VERTEX_CONVENTION_WEBGL)}}handleContextLost(e){e.preventDefault(),this._contextLossForced&&(this._contextLossForced=!1,setTimeout(()=>{this.gl.isContextLost()&&this.extensions.loseContext?.restoreContext()},0))}handleContextRestored(){this.getExtensions(),this._renderer.runners.contextChange.emit(this.gl)}destroy(){let e=this._renderer.view.canvas;this._renderer=null,e.removeEventListener("webglcontextlost",this.handleContextLost),e.removeEventListener("webglcontextrestored",this.handleContextRestored),this.gl.useProgram(null),this.extensions.loseContext?.loseContext()}forceContextLoss(){this.extensions.loseContext?.loseContext(),this._contextLossForced=!0}validateContext(e){let t=e.getContextAttributes();t&&!t.stencil&&G("Provided WebGL context does not have a stencil buffer, masks may not render correctly");let i=this.supports,s=this.webGLVersion===2,n=this.extensions;i.uint32Indices=s||!!n.uint32ElementIndex,i.uniformBufferObject=s,i.vertexArrayObject=s||!!n.vertexArrayObject,i.srgbTextures=s||!!n.srgb,i.nonPowOf2wrapping=s,i.nonPowOf2mipmaps=s,i.msaa=s,i.uint32Indices||G("Provided WebGL context does not support 32 index buffer, large scenes may not render correctly")}};ep.extension={type:[b.WebGLSystem],name:"context"};ep.defaultOptions={context:null,premultipliedAlpha:!0,preserveDrawingBuffer:!1,powerPreference:void 0,preferWebGLVersion:2,multiView:!1};YS=ep});var xl,tp,re,rp=p(()=>{"use strict";xl=(r=>(r[r.RGBA=6408]="RGBA",r[r.RGB=6407]="RGB",r[r.RG=33319]="RG",r[r.RED=6403]="RED",r[r.RGBA_INTEGER=36249]="RGBA_INTEGER",r[r.RGB_INTEGER=36248]="RGB_INTEGER",r[r.RG_INTEGER=33320]="RG_INTEGER",r[r.RED_INTEGER=36244]="RED_INTEGER",r[r.ALPHA=6406]="ALPHA",r[r.LUMINANCE=6409]="LUMINANCE",r[r.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA",r[r.DEPTH_COMPONENT=6402]="DEPTH_COMPONENT",r[r.DEPTH_STENCIL=34041]="DEPTH_STENCIL",r))(xl||{}),tp=(r=>(r[r.TEXTURE_2D=3553]="TEXTURE_2D",r[r.TEXTURE_CUBE_MAP=34067]="TEXTURE_CUBE_MAP",r[r.TEXTURE_2D_ARRAY=35866]="TEXTURE_2D_ARRAY",r[r.TEXTURE_CUBE_MAP_POSITIVE_X=34069]="TEXTURE_CUBE_MAP_POSITIVE_X",r[r.TEXTURE_CUBE_MAP_NEGATIVE_X=34070]="TEXTURE_CUBE_MAP_NEGATIVE_X",r[r.TEXTURE_CUBE_MAP_POSITIVE_Y=34071]="TEXTURE_CUBE_MAP_POSITIVE_Y",r[r.TEXTURE_CUBE_MAP_NEGATIVE_Y=34072]="TEXTURE_CUBE_MAP_NEGATIVE_Y",r[r.TEXTURE_CUBE_MAP_POSITIVE_Z=34073]="TEXTURE_CUBE_MAP_POSITIVE_Z",r[r.TEXTURE_CUBE_MAP_NEGATIVE_Z=34074]="TEXTURE_CUBE_MAP_NEGATIVE_Z",r))(tp||{}),re=(r=>(r[r.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",r[r.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",r[r.UNSIGNED_SHORT_5_6_5=33635]="UNSIGNED_SHORT_5_6_5",r[r.UNSIGNED_SHORT_4_4_4_4=32819]="UNSIGNED_SHORT_4_4_4_4",r[r.UNSIGNED_SHORT_5_5_5_1=32820]="UNSIGNED_SHORT_5_5_5_1",r[r.UNSIGNED_INT=5125]="UNSIGNED_INT",r[r.UNSIGNED_INT_10F_11F_11F_REV=35899]="UNSIGNED_INT_10F_11F_11F_REV",r[r.UNSIGNED_INT_2_10_10_10_REV=33640]="UNSIGNED_INT_2_10_10_10_REV",r[r.UNSIGNED_INT_24_8=34042]="UNSIGNED_INT_24_8",r[r.UNSIGNED_INT_5_9_9_9_REV=35902]="UNSIGNED_INT_5_9_9_9_REV",r[r.BYTE=5120]="BYTE",r[r.SHORT=5122]="SHORT",r[r.INT=5124]="INT",r[r.FLOAT=5126]="FLOAT",r[r.FLOAT_32_UNSIGNED_INT_24_8_REV=36269]="FLOAT_32_UNSIGNED_INT_24_8_REV",r[r.HALF_FLOAT=36193]="HALF_FLOAT",r))(re||{})});function ZS(r){return QS[r]??QS.float32}var QS,JS=p(()=>{rp();QS={uint8x2:re.UNSIGNED_BYTE,uint8x4:re.UNSIGNED_BYTE,sint8x2:re.BYTE,sint8x4:re.BYTE,unorm8x2:re.UNSIGNED_BYTE,unorm8x4:re.UNSIGNED_BYTE,snorm8x2:re.BYTE,snorm8x4:re.BYTE,uint16x2:re.UNSIGNED_SHORT,uint16x4:re.UNSIGNED_SHORT,sint16x2:re.SHORT,sint16x4:re.SHORT,unorm16x2:re.UNSIGNED_SHORT,unorm16x4:re.UNSIGNED_SHORT,snorm16x2:re.SHORT,snorm16x4:re.SHORT,float16x2:re.HALF_FLOAT,float16x4:re.HALF_FLOAT,float32:re.FLOAT,float32x2:re.FLOAT,float32x3:re.FLOAT,float32x4:re.FLOAT,uint32:re.UNSIGNED_INT,uint32x2:re.UNSIGNED_INT,uint32x3:re.UNSIGNED_INT,uint32x4:re.UNSIGNED_INT,sint32:re.INT,sint32x2:re.INT,sint32x3:re.INT,sint32x4:re.INT}});var HP,_a,ev=p(()=>{P();Pi();Xm();JS();HP={"point-list":0,"line-list":1,"line-strip":3,"triangle-list":4,"triangle-strip":5},_a=class{constructor(e){this._geometryVaoHash=Object.create(null),this._renderer=e,this._activeGeometry=null,this._activeVao=null,this.hasVao=!0,this.hasInstance=!0,this._renderer.renderableGC.addManagedHash(this,"_geometryVaoHash")}contextChange(){let e=this.gl=this._renderer.gl;if(!this._renderer.context.supports.vertexArrayObject)throw new Error("[PixiJS] Vertex Array Objects are not supported on this device");let t=this._renderer.context.extensions.vertexArrayObject;t&&(e.createVertexArray=()=>t.createVertexArrayOES(),e.bindVertexArray=s=>t.bindVertexArrayOES(s),e.deleteVertexArray=s=>t.deleteVertexArrayOES(s));let i=this._renderer.context.extensions.vertexAttribDivisorANGLE;i&&(e.drawArraysInstanced=(s,n,o,a)=>{i.drawArraysInstancedANGLE(s,n,o,a)},e.drawElementsInstanced=(s,n,o,a,c)=>{i.drawElementsInstancedANGLE(s,n,o,a,c)},e.vertexAttribDivisor=(s,n)=>i.vertexAttribDivisorANGLE(s,n)),this._activeGeometry=null,this._activeVao=null,this._geometryVaoHash=Object.create(null)}bind(e,t){let i=this.gl;this._activeGeometry=e;let s=this.getVao(e,t);this._activeVao!==s&&(this._activeVao=s,i.bindVertexArray(s)),this.updateBuffers()}resetState(){this.unbind()}updateBuffers(){let e=this._activeGeometry,t=this._renderer.buffer;for(let i=0;i<e.buffers.length;i++){let s=e.buffers[i];t.updateBuffer(s)}}checkCompatibility(e,t){let i=e.attributes,s=t._attributeData;for(let n in s)if(!i[n])throw new Error(`shader and geometry incompatible, geometry missing the "${n}" attribute`)}getSignature(e,t){let i=e.attributes,s=t._attributeData,n=["g",e.uid];for(let o in i)s[o]&&n.push(o,s[o].location);return n.join("-")}getVao(e,t){return this._geometryVaoHash[e.uid]?.[t._key]||this.initGeometryVao(e,t)}initGeometryVao(e,t,i=!0){let s=this._renderer.gl,n=this._renderer.buffer;this._renderer.shader._getProgramData(t),this.checkCompatibility(e,t);let o=this.getSignature(e,t);this._geometryVaoHash[e.uid]||(this._geometryVaoHash[e.uid]=Object.create(null),e.on("destroy",this.onGeometryDestroy,this));let a=this._geometryVaoHash[e.uid],c=a[o];if(c)return a[t._key]=c,c;hl(e,t._attributeData);let u=e.buffers;c=s.createVertexArray(),s.bindVertexArray(c);for(let l=0;l<u.length;l++){let h=u[l];n.bind(h)}return this.activateVao(e,t),a[t._key]=c,a[o]=c,s.bindVertexArray(null),c}onGeometryDestroy(e,t){let i=this._geometryVaoHash[e.uid],s=this.gl;if(i){if(t)for(let n in i)this._activeVao!==i[n]&&this.unbind(),s.deleteVertexArray(i[n]);this._geometryVaoHash[e.uid]=null}}destroyAll(e=!1){let t=this.gl;for(let i in this._geometryVaoHash){if(e)for(let s in this._geometryVaoHash[i]){let n=this._geometryVaoHash[i];this._activeVao!==n&&this.unbind(),t.deleteVertexArray(n[s])}this._geometryVaoHash[i]=null}}activateVao(e,t){let i=this._renderer.gl,s=this._renderer.buffer,n=e.attributes;e.indexBuffer&&s.bind(e.indexBuffer);let o=null;for(let a in n){let c=n[a],u=c.buffer,l=s.getGlBuffer(u),h=t._attributeData[a];if(h){o!==l&&(s.bind(u),o=l);let f=h.location;i.enableVertexAttribArray(f);let d=ct(c.format),m=ZS(c.format);if(h.format?.substring(1,4)==="int"?i.vertexAttribIPointer(f,d.size,m,c.stride,c.offset):i.vertexAttribPointer(f,d.size,m,d.normalised,c.stride,c.offset),c.instance)if(this.hasInstance){let x=c.divisor??1;i.vertexAttribDivisor(f,x)}else throw new Error("geometry error, GPU Instancing is not supported on this device")}}}draw(e,t,i,s){let{gl:n}=this._renderer,o=this._activeGeometry,a=HP[e||o.topology];if(s??(s=o.instanceCount),o.indexBuffer){let c=o.indexBuffer.data.BYTES_PER_ELEMENT,u=c===2?n.UNSIGNED_SHORT:n.UNSIGNED_INT;s>1?n.drawElementsInstanced(a,t||o.indexBuffer.data.length,u,(i||0)*c,s):n.drawElements(a,t||o.indexBuffer.data.length,u,(i||0)*c)}else s>1?n.drawArraysInstanced(a,i||0,t||o.getSize(),s):n.drawArrays(a,i||0,t||o.getSize());return this}unbind(){this.gl.bindVertexArray(null),this._activeVao=null,this._activeGeometry=null}destroy(){this._renderer=null,this.gl=null,this._activeVao=null,this._activeGeometry=null}};_a.extension={type:[b.WebGLSystem],name:"geometry"}});var WP,ip,rv,iv=p(()=>{P();ge();xs();Ut();Ot();et();le();Ai();WP=new vt({attributes:{aPosition:[-1,-1,3,-1,-1,3]}}),ip=class tv{constructor(e){this.useBackBuffer=!1,this._useBackBufferThisRender=!1,this._renderer=e}init(e={}){let{useBackBuffer:t,antialias:i}={...tv.defaultOptions,...e};this.useBackBuffer=t,this._antialias=i,this._renderer.context.supports.msaa||(G("antialiasing, is not supported on when using the back buffer"),this._antialias=!1),this._state=Ae.for2d();let s=new Ct({vertex:`
935
935
  attribute vec2 aPosition;
936
936
  out vec2 vUv;
937
937
 
@@ -950,7 +950,7 @@ fn mainFragment(
950
950
 
951
951
  void main() {
952
952
  finalColor = texture(uTexture, vUv);
953
- }`,name:"big-triangle"});this._bigTriangleShader=new ke({glProgram:s,resources:{uTexture:M.WHITE.source}})}renderStart(e){let t=this._renderer.renderTarget.getRenderTarget(e.target);if(this._useBackBufferThisRender=this.useBackBuffer&&!!t.isRoot,this._useBackBufferThisRender){let i=this._renderer.renderTarget.getRenderTarget(e.target);this._targetTexture=i.colorTexture,e.target=this._getBackBufferTexture(i.colorTexture)}}renderEnd(){this._presentBackBuffer()}_presentBackBuffer(){let e=this._renderer;e.renderTarget.finishRenderPass(),this._useBackBufferThisRender&&(e.renderTarget.bind(this._targetTexture,!1),this._bigTriangleShader.resources.uTexture=this._backBufferTexture.source,e.encoder.draw({geometry:bR,shader:this._bigTriangleShader,state:this._state}))}_getBackBufferTexture(e){return this._backBufferTexture=this._backBufferTexture||new M({source:new se({width:e.width,height:e.height,resolution:e._resolution,antialias:this._antialias})}),this._backBufferTexture.source.resize(e.width,e.height,e._resolution),this._backBufferTexture}destroy(){this._backBufferTexture&&(this._backBufferTexture.destroy(),this._backBufferTexture=null)}};zp.extension={type:[b.WebGLSystem],name:"backBuffer",priority:1};zp.defaultOptions={useBackBuffer:!1};k1=zp});var Ha,P1=p(()=>{B();Ha=class{constructor(e){this._colorMaskCache=15,this._renderer=e}setMask(e){this._colorMaskCache!==e&&(this._colorMaskCache=e,this._renderer.gl.colorMask(!!(e&8),!!(e&4),!!(e&2),!!(e&1)))}};Ha.extension={type:[b.WebGLSystem],name:"colorMask"}});var Wa,B1=p(()=>{B();Wa=class{constructor(e){this.commandFinished=Promise.resolve(),this._renderer=e}setGeometry(e,t){this._renderer.geometry.bind(e,t.glProgram)}finishRenderPass(){}draw(e){let t=this._renderer,{geometry:i,shader:s,state:n,skipSync:o,topology:a,size:c,start:u,instanceCount:l}=e;t.shader.bind(s,o),t.geometry.bind(i,t.shader._activeProgram),n&&t.state.set(n),t.geometry.draw(a,c,u,l??i.instanceCount)}destroy(){this._renderer=null}};Wa.extension={type:[b.WebGLSystem],name:"encoder"}});var $a,R1=p(()=>{B();Cf();$a=class{constructor(e){this._renderer=e}contextChange(){let e=this._renderer.gl;this.maxTextures=e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS),this.maxBatchableTextures=ju(this.maxTextures,e),this.maxUniformBindings=e.getParameter(e.MAX_UNIFORM_BUFFER_BINDINGS)}destroy(){}};$a.extension={type:[b.WebGLSystem],name:"limits"}});var qa,D1=p(()=>{B();Mp();Wi();qa=class{constructor(e){this._stencilCache={enabled:!1,stencilReference:0,stencilMode:fe.NONE},this._renderTargetStencilState=Object.create(null),e.renderTarget.onRenderTargetChange.add(this)}contextChange(e){this._gl=e,this._comparisonFuncMapping={always:e.ALWAYS,never:e.NEVER,equal:e.EQUAL,"not-equal":e.NOTEQUAL,less:e.LESS,"less-equal":e.LEQUAL,greater:e.GREATER,"greater-equal":e.GEQUAL},this._stencilOpsMapping={keep:e.KEEP,zero:e.ZERO,replace:e.REPLACE,invert:e.INVERT,"increment-clamp":e.INCR,"decrement-clamp":e.DECR,"increment-wrap":e.INCR_WRAP,"decrement-wrap":e.DECR_WRAP},this.resetState()}onRenderTargetChange(e){if(this._activeRenderTarget===e)return;this._activeRenderTarget=e;let t=this._renderTargetStencilState[e.uid];t||(t=this._renderTargetStencilState[e.uid]={stencilMode:fe.DISABLED,stencilReference:0}),this.setStencilMode(t.stencilMode,t.stencilReference)}resetState(){this._stencilCache.enabled=!1,this._stencilCache.stencilMode=fe.NONE,this._stencilCache.stencilReference=0}setStencilMode(e,t){let i=this._renderTargetStencilState[this._activeRenderTarget.uid],s=this._gl,n=cr[e],o=this._stencilCache;if(i.stencilMode=e,i.stencilReference=t,e===fe.DISABLED){this._stencilCache.enabled&&(this._stencilCache.enabled=!1,s.disable(s.STENCIL_TEST));return}this._stencilCache.enabled||(this._stencilCache.enabled=!0,s.enable(s.STENCIL_TEST)),(e!==o.stencilMode||o.stencilReference!==t)&&(o.stencilMode=e,o.stencilReference=t,s.stencilFunc(this._comparisonFuncMapping[n.stencilBack.compare],t,255),s.stencilOp(s.KEEP,s.KEEP,this._stencilOpsMapping[n.stencilBack.passOp]))}};qa.extension={type:[b.WebGLSystem],name:"stencil"}});function M1(r){let e=r.map(n=>({data:n,offset:0,size:0})),t=16,i=0,s=0;for(let n=0;n<e.length;n++){let o=e[n];if(i=Vp[o.data.type],!i)throw new Error(`Unknown type ${o.data.type}`);o.data.size>1&&(i=Math.max(i,t)*o.data.size);let a=i===12?16:i;o.size=i;let c=s%t;c>0&&t-c<a?s+=(t-c)%16:s+=(i-c%i)%i,o.offset=s,s+=i}return s=Math.ceil(s/16)*16,{uboElements:e,size:s}}var Vp,Hp=p(()=>{"use strict";Vp={f32:4,i32:4,"vec2<f32>":8,"vec3<f32>":12,"vec4<f32>":16,"vec2<i32>":8,"vec3<i32>":12,"vec4<i32>":16,"mat2x2<f32>":32,"mat3x3<f32>":48,"mat4x4<f32>":64}});function I1(r,e){let t=Math.max(Vp[r.data.type]/16,1),i=r.data.value.length/r.data.size,s=(4-i%4)%4,n=r.data.type.indexOf("i32")>=0?"dataInt32":"data";return`
953
+ }`,name:"big-triangle"});this._bigTriangleShader=new Ee({glProgram:s,resources:{uTexture:D.WHITE.source}})}renderStart(e){let t=this._renderer.renderTarget.getRenderTarget(e.target);if(this._useBackBufferThisRender=this.useBackBuffer&&!!t.isRoot,this._useBackBufferThisRender){let i=this._renderer.renderTarget.getRenderTarget(e.target);this._targetTexture=i.colorTexture,e.target=this._getBackBufferTexture(i.colorTexture)}}renderEnd(){this._presentBackBuffer()}_presentBackBuffer(){let e=this._renderer;e.renderTarget.finishRenderPass(),this._useBackBufferThisRender&&(e.renderTarget.bind(this._targetTexture,!1),this._bigTriangleShader.resources.uTexture=this._backBufferTexture.source,e.encoder.draw({geometry:WP,shader:this._bigTriangleShader,state:this._state}))}_getBackBufferTexture(e){return this._backBufferTexture=this._backBufferTexture||new D({source:new se({width:e.width,height:e.height,resolution:e._resolution,antialias:this._antialias})}),this._backBufferTexture.source.resize(e.width,e.height,e._resolution),this._backBufferTexture}destroy(){this._backBufferTexture&&(this._backBufferTexture.destroy(),this._backBufferTexture=null)}};ip.extension={type:[b.WebGLSystem],name:"backBuffer",priority:1};ip.defaultOptions={useBackBuffer:!1};rv=ip});var ba,sv=p(()=>{P();ba=class{constructor(e){this._colorMaskCache=15,this._renderer=e}setMask(e){this._colorMaskCache!==e&&(this._colorMaskCache=e,this._renderer.gl.colorMask(!!(e&8),!!(e&4),!!(e&2),!!(e&1)))}};ba.extension={type:[b.WebGLSystem],name:"colorMask"}});var ya,nv=p(()=>{P();ya=class{constructor(e){this.commandFinished=Promise.resolve(),this._renderer=e}setGeometry(e,t){this._renderer.geometry.bind(e,t.glProgram)}finishRenderPass(){}draw(e){let t=this._renderer,{geometry:i,shader:s,state:n,skipSync:o,topology:a,size:c,start:u,instanceCount:l}=e;t.shader.bind(s,o),t.geometry.bind(i,t.shader._activeProgram),n&&t.state.set(n),t.geometry.draw(a,c,u,l??i.instanceCount)}destroy(){this._renderer=null}};ya.extension={type:[b.WebGLSystem],name:"encoder"}});var Ta,ov=p(()=>{P();Ld();Ta=class{constructor(e){this._renderer=e}contextChange(){let e=this._renderer.gl;this.maxTextures=e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS),this.maxBatchableTextures=lu(this.maxTextures,e),this.maxUniformBindings=e.getParameter(e.MAX_UNIFORM_BUFFER_BINDINGS)}destroy(){}};Ta.extension={type:[b.WebGLSystem],name:"limits"}});var wa,av=p(()=>{P();Ym();ki();wa=class{constructor(e){this._stencilCache={enabled:!1,stencilReference:0,stencilMode:me.NONE},this._renderTargetStencilState=Object.create(null),e.renderTarget.onRenderTargetChange.add(this)}contextChange(e){this._gl=e,this._comparisonFuncMapping={always:e.ALWAYS,never:e.NEVER,equal:e.EQUAL,"not-equal":e.NOTEQUAL,less:e.LESS,"less-equal":e.LEQUAL,greater:e.GREATER,"greater-equal":e.GEQUAL},this._stencilOpsMapping={keep:e.KEEP,zero:e.ZERO,replace:e.REPLACE,invert:e.INVERT,"increment-clamp":e.INCR,"decrement-clamp":e.DECR,"increment-wrap":e.INCR_WRAP,"decrement-wrap":e.DECR_WRAP},this.resetState()}onRenderTargetChange(e){if(this._activeRenderTarget===e)return;this._activeRenderTarget=e;let t=this._renderTargetStencilState[e.uid];t||(t=this._renderTargetStencilState[e.uid]={stencilMode:me.DISABLED,stencilReference:0}),this.setStencilMode(t.stencilMode,t.stencilReference)}resetState(){this._stencilCache.enabled=!1,this._stencilCache.stencilMode=me.NONE,this._stencilCache.stencilReference=0}setStencilMode(e,t){let i=this._renderTargetStencilState[this._activeRenderTarget.uid],s=this._gl,n=sr[e],o=this._stencilCache;if(i.stencilMode=e,i.stencilReference=t,e===me.DISABLED){this._stencilCache.enabled&&(this._stencilCache.enabled=!1,s.disable(s.STENCIL_TEST));return}this._stencilCache.enabled||(this._stencilCache.enabled=!0,s.enable(s.STENCIL_TEST)),(e!==o.stencilMode||o.stencilReference!==t)&&(o.stencilMode=e,o.stencilReference=t,s.stencilFunc(this._comparisonFuncMapping[n.stencilBack.compare],t,255),s.stencilOp(s.KEEP,s.KEEP,this._stencilOpsMapping[n.stencilBack.passOp]))}};wa.extension={type:[b.WebGLSystem],name:"stencil"}});function cv(r){let e=r.map(n=>({data:n,offset:0,size:0})),t=16,i=0,s=0;for(let n=0;n<e.length;n++){let o=e[n];if(i=sp[o.data.type],!i)throw new Error(`Unknown type ${o.data.type}`);o.data.size>1&&(i=Math.max(i,t)*o.data.size);let a=i===12?16:i;o.size=i;let c=s%t;c>0&&t-c<a?s+=(t-c)%16:s+=(i-c%i)%i,o.offset=s,s+=i}return s=Math.ceil(s/16)*16,{uboElements:e,size:s}}var sp,np=p(()=>{"use strict";sp={f32:4,i32:4,"vec2<f32>":8,"vec3<f32>":12,"vec4<f32>":16,"vec2<i32>":8,"vec3<i32>":12,"vec4<i32>":16,"mat2x2<f32>":32,"mat3x3<f32>":48,"mat4x4<f32>":64}});function uv(r,e){let t=Math.max(sp[r.data.type]/16,1),i=r.data.value.length/r.data.size,s=(4-i%4)%4,n=r.data.type.indexOf("i32")>=0?"dataInt32":"data";return`
954
954
  v = uv.${r.data.name};
955
955
  offset += ${e};
956
956
 
@@ -966,7 +966,7 @@ fn mainFragment(
966
966
  }
967
967
  ${s!==0?`arrayOffset += ${s};`:""}
968
968
  }
969
- `}var F1=p(()=>{Hp()});function U1(r){return $l(r,"uboStd40",I1,Bp)}var O1=p(()=>{Pp();Rp();F1()});var ja,G1=p(()=>{B();Ep();Hp();O1();ja=class extends pn{constructor(){super({createUboElements:M1,generateUboSync:U1})}};ja.extension={type:[b.WebGLSystem],name:"ubo"}});var th,N1=p(()=>{"use strict";th=class{constructor(){this.width=-1,this.height=-1,this.msaa=!1,this.msaaRenderBuffer=[]}}});var rh,L1=p(()=>{Ge();pe();Is();ln();N1();rh=class{constructor(){this._clearColorCache=[0,0,0,0],this._viewPortCache=new Y}init(e,t){this._renderer=e,this._renderTargetSystem=t,e.runners.contextChange.add(this)}contextChange(){this._clearColorCache=[0,0,0,0],this._viewPortCache=new Y}copyToTexture(e,t,i,s,n){let o=this._renderTargetSystem,a=this._renderer,c=o.getGpuRenderTarget(e),u=a.gl;return this.finishRenderPass(e),u.bindFramebuffer(u.FRAMEBUFFER,c.resolveTargetFramebuffer),a.texture.bind(t,0),u.copyTexSubImage2D(u.TEXTURE_2D,0,n.x,n.y,i.x,i.y,s.width,s.height),t}startRenderPass(e,t=!0,i,s){let n=this._renderTargetSystem,o=e.colorTexture,a=n.getGpuRenderTarget(e),c=s.y;e.isRoot&&(c=o.pixelHeight-s.height),e.colorTextures.forEach(h=>{this._renderer.texture.unbind(h)});let u=this._renderer.gl;u.bindFramebuffer(u.FRAMEBUFFER,a.framebuffer);let l=this._viewPortCache;(l.x!==s.x||l.y!==c||l.width!==s.width||l.height!==s.height)&&(l.x=s.x,l.y=c,l.width=s.width,l.height=s.height,u.viewport(s.x,c,s.width,s.height)),!a.depthStencilRenderBuffer&&(e.stencil||e.depth)&&this._initStencil(a),this.clear(e,t,i)}finishRenderPass(e){let i=this._renderTargetSystem.getGpuRenderTarget(e);if(!i.msaa)return;let s=this._renderer.gl;s.bindFramebuffer(s.FRAMEBUFFER,i.resolveTargetFramebuffer),s.bindFramebuffer(s.READ_FRAMEBUFFER,i.framebuffer),s.blitFramebuffer(0,0,i.width,i.height,0,0,i.width,i.height,s.COLOR_BUFFER_BIT,s.NEAREST),s.bindFramebuffer(s.FRAMEBUFFER,i.framebuffer)}initGpuRenderTarget(e){let i=this._renderer.gl,s=new th;return e.colorTexture instanceof je?(this._renderer.context.ensureCanvasSize(e.colorTexture.resource),s.framebuffer=null,s):(this._initColor(e,s),i.bindFramebuffer(i.FRAMEBUFFER,null),s)}destroyGpuRenderTarget(e){let t=this._renderer.gl;e.framebuffer&&(t.deleteFramebuffer(e.framebuffer),e.framebuffer=null),e.resolveTargetFramebuffer&&(t.deleteFramebuffer(e.resolveTargetFramebuffer),e.resolveTargetFramebuffer=null),e.depthStencilRenderBuffer&&(t.deleteRenderbuffer(e.depthStencilRenderBuffer),e.depthStencilRenderBuffer=null),e.msaaRenderBuffer.forEach(i=>{t.deleteRenderbuffer(i)}),e.msaaRenderBuffer=null}clear(e,t,i){if(!t)return;let s=this._renderTargetSystem;typeof t=="boolean"&&(t=t?Le.ALL:Le.NONE);let n=this._renderer.gl;if(t&Le.COLOR){i??(i=s.defaultClearColor);let o=this._clearColorCache,a=i;(o[0]!==a[0]||o[1]!==a[1]||o[2]!==a[2]||o[3]!==a[3])&&(o[0]=a[0],o[1]=a[1],o[2]=a[2],o[3]=a[3],n.clearColor(a[0],a[1],a[2],a[3]))}n.clear(t)}resizeGpuRenderTarget(e){if(e.isRoot)return;let i=this._renderTargetSystem.getGpuRenderTarget(e);this._resizeColor(e,i),(e.stencil||e.depth)&&this._resizeStencil(i)}_initColor(e,t){let i=this._renderer,s=i.gl,n=s.createFramebuffer();if(t.resolveTargetFramebuffer=n,s.bindFramebuffer(s.FRAMEBUFFER,n),t.width=e.colorTexture.source.pixelWidth,t.height=e.colorTexture.source.pixelHeight,e.colorTextures.forEach((o,a)=>{let c=o.source;c.antialias&&(i.context.supports.msaa?t.msaa=!0:N("[RenderTexture] Antialiasing on textures is not supported in WebGL1")),i.texture.bindSource(c,0);let l=i.texture.getGlSource(c).texture;s.framebufferTexture2D(s.FRAMEBUFFER,s.COLOR_ATTACHMENT0+a,3553,l,0)}),t.msaa){let o=s.createFramebuffer();t.framebuffer=o,s.bindFramebuffer(s.FRAMEBUFFER,o),e.colorTextures.forEach((a,c)=>{let u=s.createRenderbuffer();t.msaaRenderBuffer[c]=u})}else t.framebuffer=n;this._resizeColor(e,t)}_resizeColor(e,t){let i=e.colorTexture.source;if(t.width=i.pixelWidth,t.height=i.pixelHeight,e.colorTextures.forEach((s,n)=>{n!==0&&s.source.resize(i.width,i.height,i._resolution)}),t.msaa){let s=this._renderer,n=s.gl,o=t.framebuffer;n.bindFramebuffer(n.FRAMEBUFFER,o),e.colorTextures.forEach((a,c)=>{let u=a.source;s.texture.bindSource(u,0);let h=s.texture.getGlSource(u).internalFormat,f=t.msaaRenderBuffer[c];n.bindRenderbuffer(n.RENDERBUFFER,f),n.renderbufferStorageMultisample(n.RENDERBUFFER,4,h,u.pixelWidth,u.pixelHeight),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0+c,n.RENDERBUFFER,f)})}}_initStencil(e){if(e.framebuffer===null)return;let t=this._renderer.gl,i=t.createRenderbuffer();e.depthStencilRenderBuffer=i,t.bindRenderbuffer(t.RENDERBUFFER,i),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.RENDERBUFFER,i),this._resizeStencil(e)}_resizeStencil(e){let t=this._renderer.gl;t.bindRenderbuffer(t.RENDERBUFFER,e.depthStencilRenderBuffer),e.msaa?t.renderbufferStorageMultisample(t.RENDERBUFFER,4,t.DEPTH24_STENCIL8,e.width,e.height):t.renderbufferStorage(t.RENDERBUFFER,this._renderer.context.webGLVersion===2?t.DEPTH24_STENCIL8:t.DEPTH_STENCIL,e.width,e.height)}prerender(e){let t=e.colorTexture.resource;this._renderer.context.multiView&&je.test(t)&&this._renderer.context.ensureCanvasSize(t)}postrender(e){if(this._renderer.context.multiView&&je.test(e.colorTexture.resource)){let t=this._renderer.context.canvas,i=e.colorTexture;i.context2D.drawImage(t,0,i.pixelHeight-t.height)}}}});var Xa,z1=p(()=>{B();Ip();L1();Xa=class extends xn{constructor(e){super(e),this.adaptor=new rh,this.adaptor.init(e,this)}};Xa.extension={type:[b.WebGLSystem],name:"renderTarget"}});function V1(r,e){let t=[],i=[`
969
+ `}var lv=p(()=>{np()});function hv(r){return cl(r,"uboStd40",uv,qm)}var dv=p(()=>{$m();jm();lv()});var Sa,fv=p(()=>{P();Vm();np();dv();Sa=class extends Xs{constructor(){super({createUboElements:cv,generateUboSync:hv})}};Sa.extension={type:[b.WebGLSystem],name:"ubo"}});var _l,mv=p(()=>{"use strict";_l=class{constructor(){this.width=-1,this.height=-1,this.msaa=!1,this.msaaRenderBuffer=[]}}});var bl,pv=p(()=>{Ge();ge();ms();Hs();mv();bl=class{constructor(){this._clearColorCache=[0,0,0,0],this._viewPortCache=new Y}init(e,t){this._renderer=e,this._renderTargetSystem=t,e.runners.contextChange.add(this)}contextChange(){this._clearColorCache=[0,0,0,0],this._viewPortCache=new Y}copyToTexture(e,t,i,s,n){let o=this._renderTargetSystem,a=this._renderer,c=o.getGpuRenderTarget(e),u=a.gl;return this.finishRenderPass(e),u.bindFramebuffer(u.FRAMEBUFFER,c.resolveTargetFramebuffer),a.texture.bind(t,0),u.copyTexSubImage2D(u.TEXTURE_2D,0,n.x,n.y,i.x,i.y,s.width,s.height),t}startRenderPass(e,t=!0,i,s){let n=this._renderTargetSystem,o=e.colorTexture,a=n.getGpuRenderTarget(e),c=s.y;e.isRoot&&(c=o.pixelHeight-s.height),e.colorTextures.forEach(h=>{this._renderer.texture.unbind(h)});let u=this._renderer.gl;u.bindFramebuffer(u.FRAMEBUFFER,a.framebuffer);let l=this._viewPortCache;(l.x!==s.x||l.y!==c||l.width!==s.width||l.height!==s.height)&&(l.x=s.x,l.y=c,l.width=s.width,l.height=s.height,u.viewport(s.x,c,s.width,s.height)),!a.depthStencilRenderBuffer&&(e.stencil||e.depth)&&this._initStencil(a),this.clear(e,t,i)}finishRenderPass(e){let i=this._renderTargetSystem.getGpuRenderTarget(e);if(!i.msaa)return;let s=this._renderer.gl;s.bindFramebuffer(s.FRAMEBUFFER,i.resolveTargetFramebuffer),s.bindFramebuffer(s.READ_FRAMEBUFFER,i.framebuffer),s.blitFramebuffer(0,0,i.width,i.height,0,0,i.width,i.height,s.COLOR_BUFFER_BIT,s.NEAREST),s.bindFramebuffer(s.FRAMEBUFFER,i.framebuffer)}initGpuRenderTarget(e){let i=this._renderer.gl,s=new _l;return e.colorTexture instanceof je?(this._renderer.context.ensureCanvasSize(e.colorTexture.resource),s.framebuffer=null,s):(this._initColor(e,s),i.bindFramebuffer(i.FRAMEBUFFER,null),s)}destroyGpuRenderTarget(e){let t=this._renderer.gl;e.framebuffer&&(t.deleteFramebuffer(e.framebuffer),e.framebuffer=null),e.resolveTargetFramebuffer&&(t.deleteFramebuffer(e.resolveTargetFramebuffer),e.resolveTargetFramebuffer=null),e.depthStencilRenderBuffer&&(t.deleteRenderbuffer(e.depthStencilRenderBuffer),e.depthStencilRenderBuffer=null),e.msaaRenderBuffer.forEach(i=>{t.deleteRenderbuffer(i)}),e.msaaRenderBuffer=null}clear(e,t,i){if(!t)return;let s=this._renderTargetSystem;typeof t=="boolean"&&(t=t?Le.ALL:Le.NONE);let n=this._renderer.gl;if(t&Le.COLOR){i??(i=s.defaultClearColor);let o=this._clearColorCache,a=i;(o[0]!==a[0]||o[1]!==a[1]||o[2]!==a[2]||o[3]!==a[3])&&(o[0]=a[0],o[1]=a[1],o[2]=a[2],o[3]=a[3],n.clearColor(a[0],a[1],a[2],a[3]))}n.clear(t)}resizeGpuRenderTarget(e){if(e.isRoot)return;let i=this._renderTargetSystem.getGpuRenderTarget(e);this._resizeColor(e,i),(e.stencil||e.depth)&&this._resizeStencil(i)}_initColor(e,t){let i=this._renderer,s=i.gl,n=s.createFramebuffer();if(t.resolveTargetFramebuffer=n,s.bindFramebuffer(s.FRAMEBUFFER,n),t.width=e.colorTexture.source.pixelWidth,t.height=e.colorTexture.source.pixelHeight,e.colorTextures.forEach((o,a)=>{let c=o.source;c.antialias&&(i.context.supports.msaa?t.msaa=!0:G("[RenderTexture] Antialiasing on textures is not supported in WebGL1")),i.texture.bindSource(c,0);let l=i.texture.getGlSource(c).texture;s.framebufferTexture2D(s.FRAMEBUFFER,s.COLOR_ATTACHMENT0+a,3553,l,0)}),t.msaa){let o=s.createFramebuffer();t.framebuffer=o,s.bindFramebuffer(s.FRAMEBUFFER,o),e.colorTextures.forEach((a,c)=>{let u=s.createRenderbuffer();t.msaaRenderBuffer[c]=u})}else t.framebuffer=n;this._resizeColor(e,t)}_resizeColor(e,t){let i=e.colorTexture.source;if(t.width=i.pixelWidth,t.height=i.pixelHeight,e.colorTextures.forEach((s,n)=>{n!==0&&s.source.resize(i.width,i.height,i._resolution)}),t.msaa){let s=this._renderer,n=s.gl,o=t.framebuffer;n.bindFramebuffer(n.FRAMEBUFFER,o),e.colorTextures.forEach((a,c)=>{let u=a.source;s.texture.bindSource(u,0);let h=s.texture.getGlSource(u).internalFormat,f=t.msaaRenderBuffer[c];n.bindRenderbuffer(n.RENDERBUFFER,f),n.renderbufferStorageMultisample(n.RENDERBUFFER,4,h,u.pixelWidth,u.pixelHeight),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0+c,n.RENDERBUFFER,f)})}}_initStencil(e){if(e.framebuffer===null)return;let t=this._renderer.gl,i=t.createRenderbuffer();e.depthStencilRenderBuffer=i,t.bindRenderbuffer(t.RENDERBUFFER,i),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.RENDERBUFFER,i),this._resizeStencil(e)}_resizeStencil(e){let t=this._renderer.gl;t.bindRenderbuffer(t.RENDERBUFFER,e.depthStencilRenderBuffer),e.msaa?t.renderbufferStorageMultisample(t.RENDERBUFFER,4,t.DEPTH24_STENCIL8,e.width,e.height):t.renderbufferStorage(t.RENDERBUFFER,this._renderer.context.webGLVersion===2?t.DEPTH24_STENCIL8:t.DEPTH_STENCIL,e.width,e.height)}prerender(e){let t=e.colorTexture.resource;this._renderer.context.multiView&&je.test(t)&&this._renderer.context.ensureCanvasSize(t)}postrender(e){if(this._renderer.context.multiView&&je.test(e.colorTexture.resource)){let t=this._renderer.context.canvas,i=e.colorTexture;i.context2D.drawImage(t,0,i.pixelHeight-t.height)}}}});var va,gv=p(()=>{P();Km();pv();va=class extends Ks{constructor(e){super(e),this.adaptor=new bl,this.adaptor.init(e,this)}};va.extension={type:[b.WebGLSystem],name:"renderTarget"}});function xv(r,e){let t=[],i=[`
970
970
  var g = s.groups;
971
971
  var sS = r.shader;
972
972
  var p = s.glProgram;
@@ -982,7 +982,7 @@ fn mainFragment(
982
982
  );
983
983
  `)}else t.push(`
984
984
  ugS.updateUniformGroup(resources[${l}], p, sD);
985
- `);else if(h instanceof ri){let f=r._uniformBindMap[c][Number(l)];t.push(`
985
+ `);else if(h instanceof Jr){let f=r._uniformBindMap[c][Number(l)];t.push(`
986
986
  sS.bindUniformBlock(
987
987
  resources[${l}],
988
988
  '${f}',
@@ -993,10 +993,10 @@ fn mainFragment(
993
993
  `)),e._gl.uniform1i(d.location,n),t.push(`
994
994
  tS.bind(resources[${l}], ${n});
995
995
  `),n++)}}}let a=[...i,...t].join(`
996
- `);return new Function("r","s","sD",a)}var H1=p(()=>{ql();it();tt()});var ih,W1=p(()=>{"use strict";ih=class{constructor(e,t){this.program=e,this.uniformData=t,this.uniformGroups={},this.uniformDirtyGroups={},this.uniformBlockBindings={}}destroy(){this.uniformData=null,this.uniformGroups=null,this.uniformDirtyGroups=null,this.uniformBlockBindings=null,this.program=null}}});function Wp(r,e,t){let i=r.createShader(e);return r.shaderSource(i,t),r.compileShader(i),i}var $1=p(()=>{"use strict"});function $p(r){let e=new Array(r);for(let t=0;t<e.length;t++)e[t]=!1;return e}function sh(r,e){switch(r){case"float":return 0;case"vec2":return new Float32Array(2*e);case"vec3":return new Float32Array(3*e);case"vec4":return new Float32Array(4*e);case"int":case"uint":case"sampler2D":case"sampler2DArray":return 0;case"ivec2":return new Int32Array(2*e);case"ivec3":return new Int32Array(3*e);case"ivec4":return new Int32Array(4*e);case"uvec2":return new Uint32Array(2*e);case"uvec3":return new Uint32Array(3*e);case"uvec4":return new Uint32Array(4*e);case"bool":return!1;case"bvec2":return $p(2*e);case"bvec3":return $p(3*e);case"bvec4":return $p(4*e);case"mat2":return new Float32Array([1,0,0,1]);case"mat3":return new Float32Array([1,0,0,0,1,0,0,0,1]);case"mat4":return new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}return null}var qp=p(()=>{"use strict"});function jp(r,e){if(!nh){let t=Object.keys(q1);nh={};for(let i=0;i<t.length;++i){let s=t[i];nh[r[s]]=q1[s]}}return nh[e]}function j1(r,e){let t=jp(r,e);return yR[t]||"float32"}var nh,q1,yR,Xp=p(()=>{"use strict";nh=null,q1={FLOAT:"float",FLOAT_VEC2:"vec2",FLOAT_VEC3:"vec3",FLOAT_VEC4:"vec4",INT:"int",INT_VEC2:"ivec2",INT_VEC3:"ivec3",INT_VEC4:"ivec4",UNSIGNED_INT:"uint",UNSIGNED_INT_VEC2:"uvec2",UNSIGNED_INT_VEC3:"uvec3",UNSIGNED_INT_VEC4:"uvec4",BOOL:"bool",BOOL_VEC2:"bvec2",BOOL_VEC3:"bvec3",BOOL_VEC4:"bvec4",FLOAT_MAT2:"mat2",FLOAT_MAT3:"mat3",FLOAT_MAT4:"mat4",SAMPLER_2D:"sampler2D",INT_SAMPLER_2D:"sampler2D",UNSIGNED_INT_SAMPLER_2D:"sampler2D",SAMPLER_CUBE:"samplerCube",INT_SAMPLER_CUBE:"samplerCube",UNSIGNED_INT_SAMPLER_CUBE:"samplerCube",SAMPLER_2D_ARRAY:"sampler2DArray",INT_SAMPLER_2D_ARRAY:"sampler2DArray",UNSIGNED_INT_SAMPLER_2D_ARRAY:"sampler2DArray"},yR={float:"float32",vec2:"float32x2",vec3:"float32x3",vec4:"float32x4",int:"sint32",ivec2:"sint32x2",ivec3:"sint32x3",ivec4:"sint32x4",uint:"uint32",uvec2:"uint32x2",uvec3:"uint32x3",uvec4:"uint32x4",bool:"uint32",bvec2:"uint32x2",bvec3:"uint32x3",bvec4:"uint32x4"}});function X1(r,e,t=!1){let i={},s=e.getProgramParameter(r,e.ACTIVE_ATTRIBUTES);for(let o=0;o<s;o++){let a=e.getActiveAttrib(r,o);if(a.name.startsWith("gl_"))continue;let c=j1(e,a.type);i[a.name]={location:0,format:c,stride:ut(c).stride,offset:0,instance:!1,start:0}}let n=Object.keys(i);if(t){n.sort((o,a)=>o>a?1:-1);for(let o=0;o<n.length;o++)i[n[o]].location=o,e.bindAttribLocation(r,o,n[o]);e.linkProgram(r)}else for(let o=0;o<n.length;o++)i[n[o]].location=e.getAttribLocation(r,n[o]);return i}var Y1=p(()=>{qi();Xp()});function K1(r,e){if(!e.ACTIVE_UNIFORM_BLOCKS)return{};let t={},i=e.getProgramParameter(r,e.ACTIVE_UNIFORM_BLOCKS);for(let s=0;s<i;s++){let n=e.getActiveUniformBlockName(r,s),o=e.getUniformBlockIndex(r,n),a=e.getActiveUniformBlockParameter(r,s,e.UNIFORM_BLOCK_DATA_SIZE);t[n]={name:n,index:o,size:a}}return t}var Q1=p(()=>{"use strict"});function Z1(r,e){let t={},i=e.getProgramParameter(r,e.ACTIVE_UNIFORMS);for(let s=0;s<i;s++){let n=e.getActiveUniform(r,s),o=n.name.replace(/\[.*?\]$/,""),a=!!n.name.match(/\[.*?\]$/),c=jp(e,n.type);t[o]={name:o,index:s,type:c,size:n.size,isArray:a,value:sh(c,n.size)}}return t}var J1=p(()=>{qp();Xp()});function eC(r,e){let t=r.getShaderSource(e).split(`
996
+ `);return new Function("r","s","sD",a)}var _v=p(()=>{ul();rt();et()});var yl,bv=p(()=>{"use strict";yl=class{constructor(e,t){this.program=e,this.uniformData=t,this.uniformGroups={},this.uniformDirtyGroups={},this.uniformBlockBindings={}}destroy(){this.uniformData=null,this.uniformGroups=null,this.uniformDirtyGroups=null,this.uniformBlockBindings=null,this.program=null}}});function op(r,e,t){let i=r.createShader(e);return r.shaderSource(i,t),r.compileShader(i),i}var yv=p(()=>{"use strict"});function ap(r){let e=new Array(r);for(let t=0;t<e.length;t++)e[t]=!1;return e}function Tl(r,e){switch(r){case"float":return 0;case"vec2":return new Float32Array(2*e);case"vec3":return new Float32Array(3*e);case"vec4":return new Float32Array(4*e);case"int":case"uint":case"sampler2D":case"sampler2DArray":return 0;case"ivec2":return new Int32Array(2*e);case"ivec3":return new Int32Array(3*e);case"ivec4":return new Int32Array(4*e);case"uvec2":return new Uint32Array(2*e);case"uvec3":return new Uint32Array(3*e);case"uvec4":return new Uint32Array(4*e);case"bool":return!1;case"bvec2":return ap(2*e);case"bvec3":return ap(3*e);case"bvec4":return ap(4*e);case"mat2":return new Float32Array([1,0,0,1]);case"mat3":return new Float32Array([1,0,0,0,1,0,0,0,1]);case"mat4":return new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}return null}var cp=p(()=>{"use strict"});function up(r,e){if(!wl){let t=Object.keys(Tv);wl={};for(let i=0;i<t.length;++i){let s=t[i];wl[r[s]]=Tv[s]}}return wl[e]}function wv(r,e){let t=up(r,e);return $P[t]||"float32"}var wl,Tv,$P,lp=p(()=>{"use strict";wl=null,Tv={FLOAT:"float",FLOAT_VEC2:"vec2",FLOAT_VEC3:"vec3",FLOAT_VEC4:"vec4",INT:"int",INT_VEC2:"ivec2",INT_VEC3:"ivec3",INT_VEC4:"ivec4",UNSIGNED_INT:"uint",UNSIGNED_INT_VEC2:"uvec2",UNSIGNED_INT_VEC3:"uvec3",UNSIGNED_INT_VEC4:"uvec4",BOOL:"bool",BOOL_VEC2:"bvec2",BOOL_VEC3:"bvec3",BOOL_VEC4:"bvec4",FLOAT_MAT2:"mat2",FLOAT_MAT3:"mat3",FLOAT_MAT4:"mat4",SAMPLER_2D:"sampler2D",INT_SAMPLER_2D:"sampler2D",UNSIGNED_INT_SAMPLER_2D:"sampler2D",SAMPLER_CUBE:"samplerCube",INT_SAMPLER_CUBE:"samplerCube",UNSIGNED_INT_SAMPLER_CUBE:"samplerCube",SAMPLER_2D_ARRAY:"sampler2DArray",INT_SAMPLER_2D_ARRAY:"sampler2DArray",UNSIGNED_INT_SAMPLER_2D_ARRAY:"sampler2DArray"},$P={float:"float32",vec2:"float32x2",vec3:"float32x3",vec4:"float32x4",int:"sint32",ivec2:"sint32x2",ivec3:"sint32x3",ivec4:"sint32x4",uint:"uint32",uvec2:"uint32x2",uvec3:"uint32x3",uvec4:"uint32x4",bool:"uint32",bvec2:"uint32x2",bvec3:"uint32x3",bvec4:"uint32x4"}});function Sv(r,e,t=!1){let i={},s=e.getProgramParameter(r,e.ACTIVE_ATTRIBUTES);for(let o=0;o<s;o++){let a=e.getActiveAttrib(r,o);if(a.name.startsWith("gl_"))continue;let c=wv(e,a.type);i[a.name]={location:0,format:c,stride:ct(c).stride,offset:0,instance:!1,start:0}}let n=Object.keys(i);if(t){n.sort((o,a)=>o>a?1:-1);for(let o=0;o<n.length;o++)i[n[o]].location=o,e.bindAttribLocation(r,o,n[o]);e.linkProgram(r)}else for(let o=0;o<n.length;o++)i[n[o]].location=e.getAttribLocation(r,n[o]);return i}var vv=p(()=>{Pi();lp()});function Cv(r,e){if(!e.ACTIVE_UNIFORM_BLOCKS)return{};let t={},i=e.getProgramParameter(r,e.ACTIVE_UNIFORM_BLOCKS);for(let s=0;s<i;s++){let n=e.getActiveUniformBlockName(r,s),o=e.getUniformBlockIndex(r,n),a=e.getActiveUniformBlockParameter(r,s,e.UNIFORM_BLOCK_DATA_SIZE);t[n]={name:n,index:o,size:a}}return t}var Ev=p(()=>{"use strict"});function kv(r,e){let t={},i=e.getProgramParameter(r,e.ACTIVE_UNIFORMS);for(let s=0;s<i;s++){let n=e.getActiveUniform(r,s),o=n.name.replace(/\[.*?\]$/,""),a=!!n.name.match(/\[.*?\]$/),c=up(e,n.type);t[o]={name:o,index:s,type:c,size:n.size,isArray:a,value:Tl(c,n.size)}}return t}var Av=p(()=>{cp();lp()});function Pv(r,e){let t=r.getShaderSource(e).split(`
997
997
  `).map((u,l)=>`${l}: ${u}`),i=r.getShaderInfoLog(e),s=i.split(`
998
998
  `),n={},o=s.map(u=>parseFloat(u.replace(/^ERROR\: 0\:([\d]+)\:.*$/,"$1"))).filter(u=>u&&!n[u]?(n[u]=!0,!0):!1),a=[""];o.forEach(u=>{t[u-1]=`%c${t[u-1]}%c`,a.push("background: #FF0000; color:#FFFFFF; font-size: 10px","font-size: 10px")});let c=t.join(`
999
- `);a[0]=c,console.error(i),console.groupCollapsed("click to view full shader code"),console.warn(...a),console.groupEnd()}function tC(r,e,t,i){r.getProgramParameter(e,r.LINK_STATUS)||(r.getShaderParameter(t,r.COMPILE_STATUS)||eC(r,t),r.getShaderParameter(i,r.COMPILE_STATUS)||eC(r,i),console.error("PixiJS Error: Could not initialize shader."),r.getProgramInfoLog(e)!==""&&console.warn("PixiJS Warning: gl.getProgramInfoLog()",r.getProgramInfoLog(e)))}var rC=p(()=>{"use strict"});function iC(r,e){let t=Wp(r,r.VERTEX_SHADER,e.vertex),i=Wp(r,r.FRAGMENT_SHADER,e.fragment),s=r.createProgram();r.attachShader(s,t),r.attachShader(s,i);let n=e.transformFeedbackVaryings;n&&(typeof r.transformFeedbackVaryings!="function"?N("TransformFeedback is not supported but TransformFeedbackVaryings are given."):r.transformFeedbackVaryings(s,n.names,n.bufferMode==="separate"?r.SEPARATE_ATTRIBS:r.INTERLEAVED_ATTRIBS)),r.linkProgram(s),r.getProgramParameter(s,r.LINK_STATUS)||tC(r,s,t,i),e._attributeData=X1(s,r,!/^[ \t]*#[ \t]*version[ \t]+300[ \t]+es[ \t]*$/m.test(e.vertex)),e._uniformData=Z1(s,r),e._uniformBlockData=K1(s,r),r.deleteShader(t),r.deleteShader(i);let o={};for(let c in e._uniformData){let u=e._uniformData[c];o[c]={location:r.getUniformLocation(s,c),value:sh(u.type,u.size)}}return new ih(s,o)}var sC=p(()=>{pe();W1();$1();qp();Y1();Q1();J1();rC()});var oh,Ya,nC=p(()=>{B();H1();sC();oh={textureCount:0,blockIndex:0},Ya=class{constructor(e){this._activeProgram=null,this._programDataHash=Object.create(null),this._shaderSyncFunctions=Object.create(null),this._renderer=e,this._renderer.renderableGC.addManagedHash(this,"_programDataHash")}contextChange(e){this._gl=e,this._programDataHash=Object.create(null),this._shaderSyncFunctions=Object.create(null),this._activeProgram=null}bind(e,t){if(this._setProgram(e.glProgram),t)return;oh.textureCount=0,oh.blockIndex=0;let i=this._shaderSyncFunctions[e.glProgram._key];i||(i=this._shaderSyncFunctions[e.glProgram._key]=this._generateShaderSync(e,this)),this._renderer.buffer.nextBindBase(!!e.glProgram.transformFeedbackVaryings),i(this._renderer,e,oh)}updateUniformGroup(e){this._renderer.uniformGroup.updateUniformGroup(e,this._activeProgram,oh)}bindUniformBlock(e,t,i=0){let s=this._renderer.buffer,n=this._getProgramData(this._activeProgram),o=e._bufferResource;o||this._renderer.ubo.updateUniformGroup(e);let a=e.buffer,c=s.updateBuffer(a),u=s.freeLocationForBufferBase(c);if(o){let{offset:h,size:f}=e;h===0&&f===a.data.byteLength?s.bindBufferBase(c,u):s.bindBufferRange(c,u,h)}else s.getLastBindBaseLocation(c)!==u&&s.bindBufferBase(c,u);let l=this._activeProgram._uniformBlockData[t].index;n.uniformBlockBindings[i]!==u&&(n.uniformBlockBindings[i]=u,this._renderer.gl.uniformBlockBinding(n.program,l,u))}_setProgram(e){if(this._activeProgram===e)return;this._activeProgram=e;let t=this._getProgramData(e);this._gl.useProgram(t.program)}_getProgramData(e){return this._programDataHash[e._key]||this._createProgramData(e)}_createProgramData(e){let t=e._key;return this._programDataHash[t]=iC(this._gl,e),this._programDataHash[t]}destroy(){for(let e of Object.keys(this._programDataHash))this._programDataHash[e].destroy(),this._programDataHash[e]=null;this._programDataHash=null}_generateShaderSync(e,t){return V1(e,t)}resetState(){this._activeProgram=null}};Ya.extension={type:[b.WebGLSystem],name:"shader"}});var oC,aC,cC=p(()=>{"use strict";oC={f32:`if (cv !== v) {
999
+ `);a[0]=c,console.error(i),console.groupCollapsed("click to view full shader code"),console.warn(...a),console.groupEnd()}function Bv(r,e,t,i){r.getProgramParameter(e,r.LINK_STATUS)||(r.getShaderParameter(t,r.COMPILE_STATUS)||Pv(r,t),r.getShaderParameter(i,r.COMPILE_STATUS)||Pv(r,i),console.error("PixiJS Error: Could not initialize shader."),r.getProgramInfoLog(e)!==""&&console.warn("PixiJS Warning: gl.getProgramInfoLog()",r.getProgramInfoLog(e)))}var Rv=p(()=>{"use strict"});function Dv(r,e){let t=op(r,r.VERTEX_SHADER,e.vertex),i=op(r,r.FRAGMENT_SHADER,e.fragment),s=r.createProgram();r.attachShader(s,t),r.attachShader(s,i);let n=e.transformFeedbackVaryings;n&&(typeof r.transformFeedbackVaryings!="function"?G("TransformFeedback is not supported but TransformFeedbackVaryings are given."):r.transformFeedbackVaryings(s,n.names,n.bufferMode==="separate"?r.SEPARATE_ATTRIBS:r.INTERLEAVED_ATTRIBS)),r.linkProgram(s),r.getProgramParameter(s,r.LINK_STATUS)||Bv(r,s,t,i),e._attributeData=Sv(s,r,!/^[ \t]*#[ \t]*version[ \t]+300[ \t]+es[ \t]*$/m.test(e.vertex)),e._uniformData=kv(s,r),e._uniformBlockData=Cv(s,r),r.deleteShader(t),r.deleteShader(i);let o={};for(let c in e._uniformData){let u=e._uniformData[c];o[c]={location:r.getUniformLocation(s,c),value:Tl(u.type,u.size)}}return new yl(s,o)}var Mv=p(()=>{ge();bv();yv();cp();vv();Ev();Av();Rv()});var Sl,Ca,Iv=p(()=>{P();_v();Mv();Sl={textureCount:0,blockIndex:0},Ca=class{constructor(e){this._activeProgram=null,this._programDataHash=Object.create(null),this._shaderSyncFunctions=Object.create(null),this._renderer=e,this._renderer.renderableGC.addManagedHash(this,"_programDataHash")}contextChange(e){this._gl=e,this._programDataHash=Object.create(null),this._shaderSyncFunctions=Object.create(null),this._activeProgram=null}bind(e,t){if(this._setProgram(e.glProgram),t)return;Sl.textureCount=0,Sl.blockIndex=0;let i=this._shaderSyncFunctions[e.glProgram._key];i||(i=this._shaderSyncFunctions[e.glProgram._key]=this._generateShaderSync(e,this)),this._renderer.buffer.nextBindBase(!!e.glProgram.transformFeedbackVaryings),i(this._renderer,e,Sl)}updateUniformGroup(e){this._renderer.uniformGroup.updateUniformGroup(e,this._activeProgram,Sl)}bindUniformBlock(e,t,i=0){let s=this._renderer.buffer,n=this._getProgramData(this._activeProgram),o=e._bufferResource;o||this._renderer.ubo.updateUniformGroup(e);let a=e.buffer,c=s.updateBuffer(a),u=s.freeLocationForBufferBase(c);if(o){let{offset:h,size:f}=e;h===0&&f===a.data.byteLength?s.bindBufferBase(c,u):s.bindBufferRange(c,u,h)}else s.getLastBindBaseLocation(c)!==u&&s.bindBufferBase(c,u);let l=this._activeProgram._uniformBlockData[t].index;n.uniformBlockBindings[i]!==u&&(n.uniformBlockBindings[i]=u,this._renderer.gl.uniformBlockBinding(n.program,l,u))}_setProgram(e){if(this._activeProgram===e)return;this._activeProgram=e;let t=this._getProgramData(e);this._gl.useProgram(t.program)}_getProgramData(e){return this._programDataHash[e._key]||this._createProgramData(e)}_createProgramData(e){let t=e._key;return this._programDataHash[t]=Dv(this._gl,e),this._programDataHash[t]}destroy(){for(let e of Object.keys(this._programDataHash))this._programDataHash[e].destroy(),this._programDataHash[e]=null;this._programDataHash=null}_generateShaderSync(e,t){return xv(e,t)}resetState(){this._activeProgram=null}};Ca.extension={type:[b.WebGLSystem],name:"shader"}});var Fv,Uv,Ov=p(()=>{"use strict";Fv={f32:`if (cv !== v) {
1000
1000
  cu.value = v;
1001
1001
  gl.uniform1f(location, v);
1002
1002
  }`,"vec2<f32>":`if (cv[0] !== v[0] || cv[1] !== v[1]) {
@@ -1068,7 +1068,7 @@ fn mainFragment(
1068
1068
  cv[2] = v[2];
1069
1069
  cv[3] = v[3];
1070
1070
  gl.uniform4i(location, v[0], v[1], v[2], v[3]);
1071
- }`,"mat2x2<f32>":"gl.uniformMatrix2fv(location, false, v);","mat3x3<f32>":"gl.uniformMatrix3fv(location, false, v);","mat4x4<f32>":"gl.uniformMatrix4fv(location, false, v);"},aC={f32:"gl.uniform1fv(location, v);","vec2<f32>":"gl.uniform2fv(location, v);","vec3<f32>":"gl.uniform3fv(location, v);","vec4<f32>":"gl.uniform4fv(location, v);","mat2x2<f32>":"gl.uniformMatrix2fv(location, false, v);","mat3x3<f32>":"gl.uniformMatrix3fv(location, false, v);","mat4x4<f32>":"gl.uniformMatrix4fv(location, false, v);",i32:"gl.uniform1iv(location, v);","vec2<i32>":"gl.uniform2iv(location, v);","vec3<i32>":"gl.uniform3iv(location, v);","vec4<i32>":"gl.uniform4iv(location, v);",u32:"gl.uniform1iv(location, v);","vec2<u32>":"gl.uniform2iv(location, v);","vec3<u32>":"gl.uniform3iv(location, v);","vec4<u32>":"gl.uniform4iv(location, v);",bool:"gl.uniform1iv(location, v);","vec2<bool>":"gl.uniform2iv(location, v);","vec3<bool>":"gl.uniform3iv(location, v);","vec4<bool>":"gl.uniform4iv(location, v);"}});function uC(r,e){let t=[`
1071
+ }`,"mat2x2<f32>":"gl.uniformMatrix2fv(location, false, v);","mat3x3<f32>":"gl.uniformMatrix3fv(location, false, v);","mat4x4<f32>":"gl.uniformMatrix4fv(location, false, v);"},Uv={f32:"gl.uniform1fv(location, v);","vec2<f32>":"gl.uniform2fv(location, v);","vec3<f32>":"gl.uniform3fv(location, v);","vec4<f32>":"gl.uniform4fv(location, v);","mat2x2<f32>":"gl.uniformMatrix2fv(location, false, v);","mat3x3<f32>":"gl.uniformMatrix3fv(location, false, v);","mat4x4<f32>":"gl.uniformMatrix4fv(location, false, v);",i32:"gl.uniform1iv(location, v);","vec2<i32>":"gl.uniform2iv(location, v);","vec3<i32>":"gl.uniform3iv(location, v);","vec4<i32>":"gl.uniform4iv(location, v);",u32:"gl.uniform1iv(location, v);","vec2<u32>":"gl.uniform2iv(location, v);","vec3<u32>":"gl.uniform3iv(location, v);","vec4<u32>":"gl.uniform4iv(location, v);",bool:"gl.uniform1iv(location, v);","vec2<bool>":"gl.uniform2iv(location, v);","vec3<bool>":"gl.uniform3iv(location, v);","vec4<bool>":"gl.uniform4iv(location, v);"}});function Gv(r,e){let t=[`
1072
1072
  var v = null;
1073
1073
  var cv = null;
1074
1074
  var cu = null;
@@ -1079,24 +1079,24 @@ fn mainFragment(
1079
1079
  renderer.shader.bindUniformBlock(uv.${i}, "${i}");
1080
1080
  `):t.push(`
1081
1081
  renderer.shader.updateUniformGroup(uv.${i});
1082
- `):r.uniforms[i]instanceof ri&&t.push(`
1082
+ `):r.uniforms[i]instanceof Jr&&t.push(`
1083
1083
  renderer.shader.bindBufferResource(uv.${i}, "${i}");
1084
- `);continue}let s=r.uniformStructures[i],n=!1;for(let o=0;o<Br.length;o++){let a=Br[o];if(s.type===a.type&&a.test(s)){t.push(`name = "${i}";`,Br[o].uniform),n=!0;break}}if(!n){let a=(s.size===1?oC:aC)[s.type].replace("location",`ud["${i}"].location`);t.push(`
1084
+ `);continue}let s=r.uniformStructures[i],n=!1;for(let o=0;o<kr.length;o++){let a=kr[o];if(s.type===a.type&&a.test(s)){t.push(`name = "${i}";`,kr[o].uniform),n=!0;break}}if(!n){let a=(s.size===1?Fv:Uv)[s.type].replace("location",`ud["${i}"].location`);t.push(`
1085
1085
  cu = ud["${i}"];
1086
1086
  cv = cu.value;
1087
1087
  v = uv["${i}"];
1088
1088
  ${a};`)}}return new Function("ud","uv","renderer","syncData",t.join(`
1089
- `))}var lC=p(()=>{ql();it();Ap();cC()});var Ka,hC=p(()=>{B();lC();Ka=class{constructor(e){this._cache={},this._uniformGroupSyncHash={},this._renderer=e,this.gl=null,this._cache={}}contextChange(e){this.gl=e}updateUniformGroup(e,t,i){let s=this._renderer.shader._getProgramData(t);(!e.isStatic||e._dirtyId!==s.uniformDirtyGroups[e.uid])&&(s.uniformDirtyGroups[e.uid]=e._dirtyId,this._getUniformSyncFunction(e,t)(s.uniformData,e.uniforms,this._renderer,i))}_getUniformSyncFunction(e,t){return this._uniformGroupSyncHash[e._signature]?.[t._key]||this._createUniformSyncFunction(e,t)}_createUniformSyncFunction(e,t){let i=this._uniformGroupSyncHash[e._signature]||(this._uniformGroupSyncHash[e._signature]={}),s=this._getSignature(e,t._uniformData,"u");return this._cache[s]||(this._cache[s]=this._generateUniformsSync(e,t._uniformData)),i[t._key]=this._cache[s],i[t._key]}_generateUniformsSync(e,t){return uC(e,t)}_getSignature(e,t,i){let s=e.uniforms,n=[`${i}-`];for(let o in s)n.push(o),t[o]&&n.push(t[o].type);return n.join("-")}destroy(){this._renderer=null,this._cache=null}};Ka.extension={type:[b.WebGLSystem],name:"uniformGroup"}});function dC(r){let e={};if(e.normal=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e.add=[r.ONE,r.ONE],e.multiply=[r.DST_COLOR,r.ONE_MINUS_SRC_ALPHA,r.ONE,r.ONE_MINUS_SRC_ALPHA],e.screen=[r.ONE,r.ONE_MINUS_SRC_COLOR,r.ONE,r.ONE_MINUS_SRC_ALPHA],e.none=[0,0],e["normal-npm"]=[r.SRC_ALPHA,r.ONE_MINUS_SRC_ALPHA,r.ONE,r.ONE_MINUS_SRC_ALPHA],e["add-npm"]=[r.SRC_ALPHA,r.ONE,r.ONE,r.ONE],e["screen-npm"]=[r.SRC_ALPHA,r.ONE_MINUS_SRC_COLOR,r.ONE,r.ONE_MINUS_SRC_ALPHA],e.erase=[r.ZERO,r.ONE_MINUS_SRC_ALPHA],!(r instanceof W.get().getWebGLRenderingContext()))e.min=[r.ONE,r.ONE,r.ONE,r.ONE,r.MIN,r.MIN],e.max=[r.ONE,r.ONE,r.ONE,r.ONE,r.MAX,r.MAX];else{let i=r.getExtension("EXT_blend_minmax");i&&(e.min=[r.ONE,r.ONE,r.ONE,r.ONE,i.MIN_EXT,i.MIN_EXT],e.max=[r.ONE,r.ONE,r.ONE,r.ONE,i.MAX_EXT,i.MAX_EXT])}return e}var fC=p(()=>{Ce()});var TR,wR,SR,vR,CR,ER,mC,pC,gC=p(()=>{B();Gt();fC();TR=0,wR=1,SR=2,vR=3,CR=4,ER=5,mC=class Yp{constructor(e){this._invertFrontFace=!1,this.gl=null,this.stateId=0,this.polygonOffset=0,this.blendMode="none",this._blendEq=!1,this.map=[],this.map[TR]=this.setBlend,this.map[wR]=this.setOffset,this.map[SR]=this.setCullFace,this.map[vR]=this.setDepthTest,this.map[CR]=this.setFrontFace,this.map[ER]=this.setDepthMask,this.checks=[],this.defaultState=Pe.for2d(),e.renderTarget.onRenderTargetChange.add(this)}onRenderTargetChange(e){this._invertFrontFace=!e.isRoot,this._cullFace?this.setFrontFace(this._frontFace):this._frontFaceDirty=!0}contextChange(e){this.gl=e,this.blendModesMap=dC(e),this.resetState()}set(e){if(e||(e=this.defaultState),this.stateId!==e.data){let t=this.stateId^e.data,i=0;for(;t;)t&1&&this.map[i].call(this,!!(e.data&1<<i)),t>>=1,i++;this.stateId=e.data}for(let t=0;t<this.checks.length;t++)this.checks[t](this,e)}forceState(e){e||(e=this.defaultState);for(let t=0;t<this.map.length;t++)this.map[t].call(this,!!(e.data&1<<t));for(let t=0;t<this.checks.length;t++)this.checks[t](this,e);this.stateId=e.data}setBlend(e){this._updateCheck(Yp._checkBlendMode,e),this.gl[e?"enable":"disable"](this.gl.BLEND)}setOffset(e){this._updateCheck(Yp._checkPolygonOffset,e),this.gl[e?"enable":"disable"](this.gl.POLYGON_OFFSET_FILL)}setDepthTest(e){this.gl[e?"enable":"disable"](this.gl.DEPTH_TEST)}setDepthMask(e){this.gl.depthMask(e)}setCullFace(e){this._cullFace=e,this.gl[e?"enable":"disable"](this.gl.CULL_FACE),this._cullFace&&this._frontFaceDirty&&this.setFrontFace(this._frontFace)}setFrontFace(e){this._frontFace=e,this._frontFaceDirty=!1;let t=this._invertFrontFace?!e:e;this._glFrontFace!==t&&(this._glFrontFace=t,this.gl.frontFace(this.gl[t?"CW":"CCW"]))}setBlendMode(e){if(this.blendModesMap[e]||(e="normal"),e===this.blendMode)return;this.blendMode=e;let t=this.blendModesMap[e],i=this.gl;t.length===2?i.blendFunc(t[0],t[1]):i.blendFuncSeparate(t[0],t[1],t[2],t[3]),t.length===6?(this._blendEq=!0,i.blendEquationSeparate(t[4],t[5])):this._blendEq&&(this._blendEq=!1,i.blendEquationSeparate(i.FUNC_ADD,i.FUNC_ADD))}setPolygonOffset(e,t){this.gl.polygonOffset(e,t)}resetState(){this._glFrontFace=!1,this._frontFace=!1,this._cullFace=!1,this._frontFaceDirty=!1,this._invertFrontFace=!1,this.gl.frontFace(this.gl.CCW),this.gl.pixelStorei(this.gl.UNPACK_FLIP_Y_WEBGL,!1),this.forceState(this.defaultState),this._blendEq=!0,this.blendMode="",this.setBlendMode("normal")}_updateCheck(e,t){let i=this.checks.indexOf(e);t&&i===-1?this.checks.push(e):!t&&i!==-1&&this.checks.splice(i,1)}static _checkBlendMode(e,t){e.setBlendMode(t.blendMode)}static _checkPolygonOffset(e,t){e.setPolygonOffset(1,t.polygonOffset)}destroy(){this.gl=null,this.checks.length=0}};mC.extension={type:[b.WebGLSystem],name:"state"};pC=mC});var ah,xC=p(()=>{Lp();ah=class{constructor(e){this.target=Np.TEXTURE_2D,this.texture=e,this.width=-1,this.height=-1,this.type=ie.UNSIGNED_BYTE,this.internalFormat=eh.RGBA,this.format=eh.RGBA,this.samplerType=0}}});var _C,bC=p(()=>{"use strict";_C={id:"buffer",upload(r,e,t){e.width===r.width||e.height===r.height?t.texSubImage2D(t.TEXTURE_2D,0,0,0,r.width,r.height,e.format,e.type,r.resource):t.texImage2D(e.target,0,e.internalFormat,r.width,r.height,0,e.format,e.type,r.resource),e.width=r.width,e.height=r.height}}});var kR,yC,TC=p(()=>{"use strict";kR={"bc1-rgba-unorm":!0,"bc1-rgba-unorm-srgb":!0,"bc2-rgba-unorm":!0,"bc2-rgba-unorm-srgb":!0,"bc3-rgba-unorm":!0,"bc3-rgba-unorm-srgb":!0,"bc4-r-unorm":!0,"bc4-r-snorm":!0,"bc5-rg-unorm":!0,"bc5-rg-snorm":!0,"bc6h-rgb-ufloat":!0,"bc6h-rgb-float":!0,"bc7-rgba-unorm":!0,"bc7-rgba-unorm-srgb":!0,"etc2-rgb8unorm":!0,"etc2-rgb8unorm-srgb":!0,"etc2-rgb8a1unorm":!0,"etc2-rgb8a1unorm-srgb":!0,"etc2-rgba8unorm":!0,"etc2-rgba8unorm-srgb":!0,"eac-r11unorm":!0,"eac-r11snorm":!0,"eac-rg11unorm":!0,"eac-rg11snorm":!0,"astc-4x4-unorm":!0,"astc-4x4-unorm-srgb":!0,"astc-5x4-unorm":!0,"astc-5x4-unorm-srgb":!0,"astc-5x5-unorm":!0,"astc-5x5-unorm-srgb":!0,"astc-6x5-unorm":!0,"astc-6x5-unorm-srgb":!0,"astc-6x6-unorm":!0,"astc-6x6-unorm-srgb":!0,"astc-8x5-unorm":!0,"astc-8x5-unorm-srgb":!0,"astc-8x6-unorm":!0,"astc-8x6-unorm-srgb":!0,"astc-8x8-unorm":!0,"astc-8x8-unorm-srgb":!0,"astc-10x5-unorm":!0,"astc-10x5-unorm-srgb":!0,"astc-10x6-unorm":!0,"astc-10x6-unorm-srgb":!0,"astc-10x8-unorm":!0,"astc-10x8-unorm-srgb":!0,"astc-10x10-unorm":!0,"astc-10x10-unorm-srgb":!0,"astc-12x10-unorm":!0,"astc-12x10-unorm-srgb":!0,"astc-12x12-unorm":!0,"astc-12x12-unorm-srgb":!0},yC={id:"compressed",upload(r,e,t){t.pixelStorei(t.UNPACK_ALIGNMENT,4);let i=r.pixelWidth,s=r.pixelHeight,n=!!kR[r.format];for(let o=0;o<r.resource.length;o++){let a=r.resource[o];n?t.compressedTexImage2D(t.TEXTURE_2D,o,e.internalFormat,i,s,0,a):t.texImage2D(t.TEXTURE_2D,o,e.internalFormat,i,s,0,e.format,e.type,a),i=Math.max(i>>1,1),s=Math.max(s>>1,1)}}}});var ch,Kp=p(()=>{"use strict";ch={id:"image",upload(r,e,t,i){let s=e.width,n=e.height,o=r.pixelWidth,a=r.pixelHeight,c=r.resourceWidth,u=r.resourceHeight;c<o||u<a?((s!==o||n!==a)&&t.texImage2D(e.target,0,e.internalFormat,o,a,0,e.format,e.type,null),i===2?t.texSubImage2D(t.TEXTURE_2D,0,0,0,c,u,e.format,e.type,r.resource):t.texSubImage2D(t.TEXTURE_2D,0,0,0,e.format,e.type,r.resource)):s===o&&n===a?t.texSubImage2D(t.TEXTURE_2D,0,0,0,e.format,e.type,r.resource):i===2?t.texImage2D(e.target,0,e.internalFormat,o,a,0,e.format,e.type,r.resource):t.texImage2D(e.target,0,e.internalFormat,e.format,e.type,r.resource),e.width=o,e.height=a}}});var wC,SC=p(()=>{Kp();wC={id:"video",upload(r,e,t,i){if(!r.isValid){t.texImage2D(e.target,0,e.internalFormat,1,1,0,e.format,e.type,null);return}ch.upload(r,e,t,i)}}});var Qp,vC,uh,CC,EC=p(()=>{"use strict";Qp={linear:9729,nearest:9728},vC={linear:{linear:9987,nearest:9985},nearest:{linear:9986,nearest:9984}},uh={"clamp-to-edge":33071,repeat:10497,"mirror-repeat":33648},CC={never:512,less:513,equal:514,"less-equal":515,greater:516,"not-equal":517,"greater-equal":518,always:519}});function Zp(r,e,t,i,s,n,o,a){let c=n;if(!a||r.addressModeU!=="repeat"||r.addressModeV!=="repeat"||r.addressModeW!=="repeat"){let u=uh[o?"clamp-to-edge":r.addressModeU],l=uh[o?"clamp-to-edge":r.addressModeV],h=uh[o?"clamp-to-edge":r.addressModeW];e[s](c,e.TEXTURE_WRAP_S,u),e[s](c,e.TEXTURE_WRAP_T,l),e.TEXTURE_WRAP_R&&e[s](c,e.TEXTURE_WRAP_R,h)}if((!a||r.magFilter!=="linear")&&e[s](c,e.TEXTURE_MAG_FILTER,Qp[r.magFilter]),t){if(!a||r.mipmapFilter!=="linear"){let u=vC[r.minFilter][r.mipmapFilter];e[s](c,e.TEXTURE_MIN_FILTER,u)}}else e[s](c,e.TEXTURE_MIN_FILTER,Qp[r.minFilter]);if(i&&r.maxAnisotropy>1){let u=Math.min(r.maxAnisotropy,e.getParameter(i.MAX_TEXTURE_MAX_ANISOTROPY_EXT));e[s](c,i.TEXTURE_MAX_ANISOTROPY_EXT,u)}r.compare&&e[s](c,e.TEXTURE_COMPARE_FUNC,CC[r.compare])}var kC=p(()=>{EC()});function AC(r){return{r8unorm:r.RED,r8snorm:r.RED,r8uint:r.RED,r8sint:r.RED,r16uint:r.RED,r16sint:r.RED,r16float:r.RED,rg8unorm:r.RG,rg8snorm:r.RG,rg8uint:r.RG,rg8sint:r.RG,r32uint:r.RED,r32sint:r.RED,r32float:r.RED,rg16uint:r.RG,rg16sint:r.RG,rg16float:r.RG,rgba8unorm:r.RGBA,"rgba8unorm-srgb":r.RGBA,rgba8snorm:r.RGBA,rgba8uint:r.RGBA,rgba8sint:r.RGBA,bgra8unorm:r.RGBA,"bgra8unorm-srgb":r.RGBA,rgb9e5ufloat:r.RGB,rgb10a2unorm:r.RGBA,rg11b10ufloat:r.RGB,rg32uint:r.RG,rg32sint:r.RG,rg32float:r.RG,rgba16uint:r.RGBA,rgba16sint:r.RGBA,rgba16float:r.RGBA,rgba32uint:r.RGBA,rgba32sint:r.RGBA,rgba32float:r.RGBA,stencil8:r.STENCIL_INDEX8,depth16unorm:r.DEPTH_COMPONENT,depth24plus:r.DEPTH_COMPONENT,"depth24plus-stencil8":r.DEPTH_STENCIL,depth32float:r.DEPTH_COMPONENT,"depth32float-stencil8":r.DEPTH_STENCIL}}var PC=p(()=>{"use strict"});function BC(r,e){let t={},i=r.RGBA;return r instanceof W.get().getWebGLRenderingContext()?e.srgb&&(t={"rgba8unorm-srgb":e.srgb.SRGB8_ALPHA8_EXT,"bgra8unorm-srgb":e.srgb.SRGB8_ALPHA8_EXT}):(t={"rgba8unorm-srgb":r.SRGB8_ALPHA8,"bgra8unorm-srgb":r.SRGB8_ALPHA8},i=r.RGBA8),{r8unorm:r.R8,r8snorm:r.R8_SNORM,r8uint:r.R8UI,r8sint:r.R8I,r16uint:r.R16UI,r16sint:r.R16I,r16float:r.R16F,rg8unorm:r.RG8,rg8snorm:r.RG8_SNORM,rg8uint:r.RG8UI,rg8sint:r.RG8I,r32uint:r.R32UI,r32sint:r.R32I,r32float:r.R32F,rg16uint:r.RG16UI,rg16sint:r.RG16I,rg16float:r.RG16F,rgba8unorm:r.RGBA,...t,rgba8snorm:r.RGBA8_SNORM,rgba8uint:r.RGBA8UI,rgba8sint:r.RGBA8I,bgra8unorm:i,rgb9e5ufloat:r.RGB9_E5,rgb10a2unorm:r.RGB10_A2,rg11b10ufloat:r.R11F_G11F_B10F,rg32uint:r.RG32UI,rg32sint:r.RG32I,rg32float:r.RG32F,rgba16uint:r.RGBA16UI,rgba16sint:r.RGBA16I,rgba16float:r.RGBA16F,rgba32uint:r.RGBA32UI,rgba32sint:r.RGBA32I,rgba32float:r.RGBA32F,stencil8:r.STENCIL_INDEX8,depth16unorm:r.DEPTH_COMPONENT16,depth24plus:r.DEPTH_COMPONENT24,"depth24plus-stencil8":r.DEPTH24_STENCIL8,depth32float:r.DEPTH_COMPONENT32F,"depth32float-stencil8":r.DEPTH32F_STENCIL8,...e.s3tc?{"bc1-rgba-unorm":e.s3tc.COMPRESSED_RGBA_S3TC_DXT1_EXT,"bc2-rgba-unorm":e.s3tc.COMPRESSED_RGBA_S3TC_DXT3_EXT,"bc3-rgba-unorm":e.s3tc.COMPRESSED_RGBA_S3TC_DXT5_EXT}:{},...e.s3tc_sRGB?{"bc1-rgba-unorm-srgb":e.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,"bc2-rgba-unorm-srgb":e.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,"bc3-rgba-unorm-srgb":e.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}:{},...e.rgtc?{"bc4-r-unorm":e.rgtc.COMPRESSED_RED_RGTC1_EXT,"bc4-r-snorm":e.rgtc.COMPRESSED_SIGNED_RED_RGTC1_EXT,"bc5-rg-unorm":e.rgtc.COMPRESSED_RED_GREEN_RGTC2_EXT,"bc5-rg-snorm":e.rgtc.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}:{},...e.bptc?{"bc6h-rgb-float":e.bptc.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT,"bc6h-rgb-ufloat":e.bptc.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT,"bc7-rgba-unorm":e.bptc.COMPRESSED_RGBA_BPTC_UNORM_EXT,"bc7-rgba-unorm-srgb":e.bptc.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT}:{},...e.etc?{"etc2-rgb8unorm":e.etc.COMPRESSED_RGB8_ETC2,"etc2-rgb8unorm-srgb":e.etc.COMPRESSED_SRGB8_ETC2,"etc2-rgb8a1unorm":e.etc.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,"etc2-rgb8a1unorm-srgb":e.etc.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,"etc2-rgba8unorm":e.etc.COMPRESSED_RGBA8_ETC2_EAC,"etc2-rgba8unorm-srgb":e.etc.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,"eac-r11unorm":e.etc.COMPRESSED_R11_EAC,"eac-rg11unorm":e.etc.COMPRESSED_SIGNED_RG11_EAC}:{},...e.astc?{"astc-4x4-unorm":e.astc.COMPRESSED_RGBA_ASTC_4x4_KHR,"astc-4x4-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,"astc-5x4-unorm":e.astc.COMPRESSED_RGBA_ASTC_5x4_KHR,"astc-5x4-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR,"astc-5x5-unorm":e.astc.COMPRESSED_RGBA_ASTC_5x5_KHR,"astc-5x5-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,"astc-6x5-unorm":e.astc.COMPRESSED_RGBA_ASTC_6x5_KHR,"astc-6x5-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,"astc-6x6-unorm":e.astc.COMPRESSED_RGBA_ASTC_6x6_KHR,"astc-6x6-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,"astc-8x5-unorm":e.astc.COMPRESSED_RGBA_ASTC_8x5_KHR,"astc-8x5-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,"astc-8x6-unorm":e.astc.COMPRESSED_RGBA_ASTC_8x6_KHR,"astc-8x6-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,"astc-8x8-unorm":e.astc.COMPRESSED_RGBA_ASTC_8x8_KHR,"astc-8x8-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,"astc-10x5-unorm":e.astc.COMPRESSED_RGBA_ASTC_10x5_KHR,"astc-10x5-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,"astc-10x6-unorm":e.astc.COMPRESSED_RGBA_ASTC_10x6_KHR,"astc-10x6-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,"astc-10x8-unorm":e.astc.COMPRESSED_RGBA_ASTC_10x8_KHR,"astc-10x8-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,"astc-10x10-unorm":e.astc.COMPRESSED_RGBA_ASTC_10x10_KHR,"astc-10x10-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,"astc-12x10-unorm":e.astc.COMPRESSED_RGBA_ASTC_12x10_KHR,"astc-12x10-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,"astc-12x12-unorm":e.astc.COMPRESSED_RGBA_ASTC_12x12_KHR,"astc-12x12-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR}:{}}}var RC=p(()=>{Ce()});function DC(r){return{r8unorm:r.UNSIGNED_BYTE,r8snorm:r.BYTE,r8uint:r.UNSIGNED_BYTE,r8sint:r.BYTE,r16uint:r.UNSIGNED_SHORT,r16sint:r.SHORT,r16float:r.HALF_FLOAT,rg8unorm:r.UNSIGNED_BYTE,rg8snorm:r.BYTE,rg8uint:r.UNSIGNED_BYTE,rg8sint:r.BYTE,r32uint:r.UNSIGNED_INT,r32sint:r.INT,r32float:r.FLOAT,rg16uint:r.UNSIGNED_SHORT,rg16sint:r.SHORT,rg16float:r.HALF_FLOAT,rgba8unorm:r.UNSIGNED_BYTE,"rgba8unorm-srgb":r.UNSIGNED_BYTE,rgba8snorm:r.BYTE,rgba8uint:r.UNSIGNED_BYTE,rgba8sint:r.BYTE,bgra8unorm:r.UNSIGNED_BYTE,"bgra8unorm-srgb":r.UNSIGNED_BYTE,rgb9e5ufloat:r.UNSIGNED_INT_5_9_9_9_REV,rgb10a2unorm:r.UNSIGNED_INT_2_10_10_10_REV,rg11b10ufloat:r.UNSIGNED_INT_10F_11F_11F_REV,rg32uint:r.UNSIGNED_INT,rg32sint:r.INT,rg32float:r.FLOAT,rgba16uint:r.UNSIGNED_SHORT,rgba16sint:r.SHORT,rgba16float:r.HALF_FLOAT,rgba32uint:r.UNSIGNED_INT,rgba32sint:r.INT,rgba32float:r.FLOAT,stencil8:r.UNSIGNED_BYTE,depth16unorm:r.UNSIGNED_SHORT,depth24plus:r.UNSIGNED_INT,"depth24plus-stencil8":r.UNSIGNED_INT_24_8,depth32float:r.FLOAT,"depth32float-stencil8":r.FLOAT_32_UNSIGNED_INT_24_8_REV}}var MC=p(()=>{"use strict"});var AR,Qa,IC=p(()=>{Ce();B();le();xC();bC();TC();Kp();SC();kC();PC();RC();MC();AR=4,Qa=class{constructor(e){this.managedTextures=[],this._glTextures=Object.create(null),this._glSamplers=Object.create(null),this._boundTextures=[],this._activeTextureLocation=-1,this._boundSamplers=Object.create(null),this._uploads={image:ch,buffer:_C,video:wC,compressed:yC},this._premultiplyAlpha=!1,this._useSeparateSamplers=!1,this._renderer=e,this._renderer.renderableGC.addManagedHash(this,"_glTextures"),this._renderer.renderableGC.addManagedHash(this,"_glSamplers")}contextChange(e){this._gl=e,this._mapFormatToInternalFormat||(this._mapFormatToInternalFormat=BC(e,this._renderer.context.extensions),this._mapFormatToType=DC(e),this._mapFormatToFormat=AC(e)),this._glTextures=Object.create(null),this._glSamplers=Object.create(null),this._boundSamplers=Object.create(null),this._premultiplyAlpha=!1;for(let t=0;t<16;t++)this.bind(M.EMPTY,t)}initSource(e){this.bind(e)}bind(e,t=0){let i=e.source;e?(this.bindSource(i,t),this._useSeparateSamplers&&this._bindSampler(i.style,t)):(this.bindSource(null,t),this._useSeparateSamplers&&this._bindSampler(null,t))}bindSource(e,t=0){let i=this._gl;if(e._touched=this._renderer.textureGC.count,this._boundTextures[t]!==e){this._boundTextures[t]=e,this._activateLocation(t),e||(e=M.EMPTY.source);let s=this.getGlSource(e);i.bindTexture(s.target,s.texture)}}_bindSampler(e,t=0){let i=this._gl;if(!e){this._boundSamplers[t]=null,i.bindSampler(t,null);return}let s=this._getGlSampler(e);this._boundSamplers[t]!==s&&(this._boundSamplers[t]=s,i.bindSampler(t,s))}unbind(e){let t=e.source,i=this._boundTextures,s=this._gl;for(let n=0;n<i.length;n++)if(i[n]===t){this._activateLocation(n);let o=this.getGlSource(t);s.bindTexture(o.target,null),i[n]=null}}_activateLocation(e){this._activeTextureLocation!==e&&(this._activeTextureLocation=e,this._gl.activeTexture(this._gl.TEXTURE0+e))}_initSource(e){let t=this._gl,i=new ah(t.createTexture());if(i.type=this._mapFormatToType[e.format],i.internalFormat=this._mapFormatToInternalFormat[e.format],i.format=this._mapFormatToFormat[e.format],e.autoGenerateMipmaps&&(this._renderer.context.supports.nonPowOf2mipmaps||e.isPowerOfTwo)){let s=Math.max(e.width,e.height);e.mipLevelCount=Math.floor(Math.log2(s))+1}return this._glTextures[e.uid]=i,this.managedTextures.includes(e)||(e.on("update",this.onSourceUpdate,this),e.on("resize",this.onSourceUpdate,this),e.on("styleChange",this.onStyleChange,this),e.on("destroy",this.onSourceDestroy,this),e.on("unload",this.onSourceUnload,this),e.on("updateMipmaps",this.onUpdateMipmaps,this),this.managedTextures.push(e)),this.onSourceUpdate(e),this.updateStyle(e,!1),i}onStyleChange(e){this.updateStyle(e,!1)}updateStyle(e,t){let i=this._gl,s=this.getGlSource(e);i.bindTexture(i.TEXTURE_2D,s.texture),this._boundTextures[this._activeTextureLocation]=e,Zp(e.style,i,e.mipLevelCount>1,this._renderer.context.extensions.anisotropicFiltering,"texParameteri",i.TEXTURE_2D,!this._renderer.context.supports.nonPowOf2wrapping&&!e.isPowerOfTwo,t)}onSourceUnload(e){let t=this._glTextures[e.uid];t&&(this.unbind(e),this._glTextures[e.uid]=null,this._gl.deleteTexture(t.texture))}onSourceUpdate(e){let t=this._gl,i=this.getGlSource(e);t.bindTexture(t.TEXTURE_2D,i.texture),this._boundTextures[this._activeTextureLocation]=e;let s=e.alphaMode==="premultiply-alpha-on-upload";this._premultiplyAlpha!==s&&(this._premultiplyAlpha=s,t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,s)),this._uploads[e.uploadMethodId]?this._uploads[e.uploadMethodId].upload(e,i,t,this._renderer.context.webGLVersion):t.texImage2D(t.TEXTURE_2D,0,t.RGBA,e.pixelWidth,e.pixelHeight,0,t.RGBA,t.UNSIGNED_BYTE,null),e.autoGenerateMipmaps&&e.mipLevelCount>1&&this.onUpdateMipmaps(e,!1)}onUpdateMipmaps(e,t=!0){t&&this.bindSource(e,0);let i=this.getGlSource(e);this._gl.generateMipmap(i.target)}onSourceDestroy(e){e.off("destroy",this.onSourceDestroy,this),e.off("update",this.onSourceUpdate,this),e.off("resize",this.onSourceUpdate,this),e.off("unload",this.onSourceUnload,this),e.off("styleChange",this.onStyleChange,this),e.off("updateMipmaps",this.onUpdateMipmaps,this),this.managedTextures.splice(this.managedTextures.indexOf(e),1),this.onSourceUnload(e)}_initSampler(e){let t=this._gl,i=this._gl.createSampler();return this._glSamplers[e._resourceId]=i,Zp(e,t,this._boundTextures[this._activeTextureLocation].mipLevelCount>1,this._renderer.context.extensions.anisotropicFiltering,"samplerParameteri",i,!1,!0),this._glSamplers[e._resourceId]}_getGlSampler(e){return this._glSamplers[e._resourceId]||this._initSampler(e)}getGlSource(e){return this._glTextures[e.uid]||this._initSource(e)}generateCanvas(e){let{pixels:t,width:i,height:s}=this.getPixels(e),n=W.get().createCanvas();n.width=i,n.height=s;let o=n.getContext("2d");if(o){let a=o.createImageData(i,s);a.data.set(t),o.putImageData(a,0,0)}return n}getPixels(e){let t=e.source.resolution,i=e.frame,s=Math.max(Math.round(i.width*t),1),n=Math.max(Math.round(i.height*t),1),o=new Uint8Array(AR*s*n),a=this._renderer,c=a.renderTarget.getRenderTarget(e),u=a.renderTarget.getGpuRenderTarget(c),l=a.gl;return l.bindFramebuffer(l.FRAMEBUFFER,u.resolveTargetFramebuffer),l.readPixels(Math.round(i.x*t),Math.round(i.y*t),s,n,l.RGBA,l.UNSIGNED_BYTE,o),{pixels:new Uint8ClampedArray(o.buffer),width:s,height:n}}destroy(){this.managedTextures.slice().forEach(e=>this.onSourceDestroy(e)),this.managedTextures=null,this._renderer=null}resetState(){this._activeTextureLocation=-1,this._boundTextures.fill(M.EMPTY.source),this._boundSamplers=Object.create(null);let e=this._gl;this._premultiplyAlpha=!1,e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,this._premultiplyAlpha)}};Qa.extension={type:[b.WebGLSystem],name:"texture"}});var GC={};Tg(GC,{WebGLRenderer:()=>Jp});var PR,BR,RR,FC,UC,OC,Jp,NC=p(()=>{B();f1();m1();p1();ra();Cp();ir();_1();T1();C1();A1();P1();B1();R1();D1();G1();z1();nC();hC();gC();IC();PR=[...Hl,ja,k1,y1,$a,za,Qa,Xa,Va,Ka,Ya,Wa,pC,qa,Ha],BR=[...Wl],RR=[Na,Ga,Oa],FC=[],UC=[],OC=[];O.handleByNamedList(b.WebGLSystem,FC);O.handleByNamedList(b.WebGLPipes,UC);O.handleByNamedList(b.WebGLPipesAdaptor,OC);O.add(...PR,...BR,...RR);Jp=class extends ti{constructor(){let e={name:"webgl",type:Ie.WEBGL,systems:FC,renderPipes:UC,renderPipeAdaptors:OC};super(e)}}});var Za=Fr(_n=>{"use strict";function DR(r,e,t){if(t===void 0&&(t=Array.prototype),r&&typeof t.find=="function")return t.find.call(r,e);for(var i=0;i<r.length;i++)if(Object.prototype.hasOwnProperty.call(r,i)){var s=r[i];if(e.call(void 0,s,i,r))return s}}function tg(r,e){return e===void 0&&(e=Object),e&&typeof e.freeze=="function"?e.freeze(r):r}function MR(r,e){if(r===null||typeof r!="object")throw new TypeError("target is not an object");for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[t]=e[t]);return r}var zC=tg({HTML:"text/html",isHTML:function(r){return r===zC.HTML},XML_APPLICATION:"application/xml",XML_TEXT:"text/xml",XML_XHTML_APPLICATION:"application/xhtml+xml",XML_SVG_IMAGE:"image/svg+xml"}),VC=tg({HTML:"http://www.w3.org/1999/xhtml",isHTML:function(r){return r===VC.HTML},SVG:"http://www.w3.org/2000/svg",XML:"http://www.w3.org/XML/1998/namespace",XMLNS:"http://www.w3.org/2000/xmlns/"});_n.assign=MR;_n.find=DR;_n.freeze=tg;_n.MIME_TYPE=zC;_n.NAMESPACE=VC});var dg=Fr(si=>{var KC=Za(),ur=KC.find,Ja=KC.NAMESPACE;function IR(r){return r!==""}function FR(r){return r?r.split(/[\t\n\f\r ]+/).filter(IR):[]}function UR(r,e){return r.hasOwnProperty(e)||(r[e]=!0),r}function HC(r){if(!r)return[];var e=FR(r);return Object.keys(e.reduce(UR,{}))}function OR(r){return function(e){return r&&r.indexOf(e)!==-1}}function tc(r,e){for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t])}function ft(r,e){var t=r.prototype;if(!(t instanceof e)){let s=function(){};var i=s;s.prototype=e.prototype,s=new s,tc(t,s),r.prototype=t=s}t.constructor!=r&&(typeof r!="function"&&console.error("unknown Class:"+r),t.constructor=r)}var mt={},Nt=mt.ELEMENT_NODE=1,yn=mt.ATTRIBUTE_NODE=2,lh=mt.TEXT_NODE=3,QC=mt.CDATA_SECTION_NODE=4,ZC=mt.ENTITY_REFERENCE_NODE=5,GR=mt.ENTITY_NODE=6,JC=mt.PROCESSING_INSTRUCTION_NODE=7,eE=mt.COMMENT_NODE=8,tE=mt.DOCUMENT_NODE=9,rE=mt.DOCUMENT_TYPE_NODE=10,Dr=mt.DOCUMENT_FRAGMENT_NODE=11,NR=mt.NOTATION_NODE=12,Ye={},ze={},Coe=Ye.INDEX_SIZE_ERR=(ze[1]="Index size error",1),Eoe=Ye.DOMSTRING_SIZE_ERR=(ze[2]="DOMString size error",2),dt=Ye.HIERARCHY_REQUEST_ERR=(ze[3]="Hierarchy request error",3),koe=Ye.WRONG_DOCUMENT_ERR=(ze[4]="Wrong document",4),Aoe=Ye.INVALID_CHARACTER_ERR=(ze[5]="Invalid character",5),Poe=Ye.NO_DATA_ALLOWED_ERR=(ze[6]="No data allowed",6),Boe=Ye.NO_MODIFICATION_ALLOWED_ERR=(ze[7]="No modification allowed",7),iE=Ye.NOT_FOUND_ERR=(ze[8]="Not found",8),Roe=Ye.NOT_SUPPORTED_ERR=(ze[9]="Not supported",9),WC=Ye.INUSE_ATTRIBUTE_ERR=(ze[10]="Attribute in use",10),Doe=Ye.INVALID_STATE_ERR=(ze[11]="Invalid state",11),Moe=Ye.SYNTAX_ERR=(ze[12]="Syntax error",12),Ioe=Ye.INVALID_MODIFICATION_ERR=(ze[13]="Invalid modification",13),Foe=Ye.NAMESPACE_ERR=(ze[14]="Invalid namespace",14),Uoe=Ye.INVALID_ACCESS_ERR=(ze[15]="Invalid access",15);function Be(r,e){if(e instanceof Error)var t=e;else t=this,Error.call(this,ze[r]),this.message=ze[r],Error.captureStackTrace&&Error.captureStackTrace(this,Be);return t.code=r,e&&(this.message=this.message+": "+e),t}Be.prototype=Error.prototype;tc(Ye,Be);function Rr(){}Rr.prototype={length:0,item:function(r){return r>=0&&r<this.length?this[r]:null},toString:function(r,e){for(var t=[],i=0;i<this.length;i++)bn(this[i],t,r,e);return t.join("")},filter:function(r){return Array.prototype.filter.call(this,r)},indexOf:function(r){return Array.prototype.indexOf.call(this,r)}};function Tn(r,e){this._node=r,this._refresh=e,sg(this)}function sg(r){var e=r._node._inc||r._node.ownerDocument._inc;if(r._inc!==e){var t=r._refresh(r._node);if(pE(r,"length",t.length),!r.$$length||t.length<r.$$length)for(var i=t.length;i in r;i++)Object.prototype.hasOwnProperty.call(r,i)&&delete r[i];tc(t,r),r._inc=e}}Tn.prototype.item=function(r){return sg(this),this[r]||null};ft(Tn,Rr);function hh(){}function sE(r,e){for(var t=r.length;t--;)if(r[t]===e)return t}function $C(r,e,t,i){if(i?e[sE(e,i)]=t:e[e.length++]=t,r){t.ownerElement=r;var s=r.ownerDocument;s&&(i&&aE(s,r,i),LR(s,r,t))}}function qC(r,e,t){var i=sE(e,t);if(i>=0){for(var s=e.length-1;i<s;)e[i]=e[++i];if(e.length=s,r){var n=r.ownerDocument;n&&(aE(n,r,t),t.ownerElement=null)}}else throw new Be(iE,new Error(r.tagName+"@"+t))}hh.prototype={length:0,item:Rr.prototype.item,getNamedItem:function(r){for(var e=this.length;e--;){var t=this[e];if(t.nodeName==r)return t}},setNamedItem:function(r){var e=r.ownerElement;if(e&&e!=this._ownerElement)throw new Be(WC);var t=this.getNamedItem(r.nodeName);return $C(this._ownerElement,this,r,t),t},setNamedItemNS:function(r){var e=r.ownerElement,t;if(e&&e!=this._ownerElement)throw new Be(WC);return t=this.getNamedItemNS(r.namespaceURI,r.localName),$C(this._ownerElement,this,r,t),t},removeNamedItem:function(r){var e=this.getNamedItem(r);return qC(this._ownerElement,this,e),e},removeNamedItemNS:function(r,e){var t=this.getNamedItemNS(r,e);return qC(this._ownerElement,this,t),t},getNamedItemNS:function(r,e){for(var t=this.length;t--;){var i=this[t];if(i.localName==e&&i.namespaceURI==r)return i}return null}};function nE(){}nE.prototype={hasFeature:function(r,e){return!0},createDocument:function(r,e,t){var i=new rc;if(i.implementation=this,i.childNodes=new Rr,i.doctype=t||null,t&&i.appendChild(t),e){var s=i.createElementNS(r,e);i.appendChild(s)}return i},createDocumentType:function(r,e,t){var i=new mh;return i.name=r,i.nodeName=r,i.publicId=e||"",i.systemId=t||"",i}};function ue(){}ue.prototype={firstChild:null,lastChild:null,previousSibling:null,nextSibling:null,attributes:null,parentNode:null,childNodes:null,ownerDocument:null,nodeValue:null,namespaceURI:null,prefix:null,localName:null,insertBefore:function(r,e){return dh(this,r,e)},replaceChild:function(r,e){dh(this,r,e,uE),e&&this.removeChild(e)},removeChild:function(r){return cE(this,r)},appendChild:function(r){return this.insertBefore(r,null)},hasChildNodes:function(){return this.firstChild!=null},cloneNode:function(r){return ig(this.ownerDocument||this,this,r)},normalize:function(){for(var r=this.firstChild;r;){var e=r.nextSibling;e&&e.nodeType==lh&&r.nodeType==lh?(this.removeChild(e),r.appendData(e.data)):(r.normalize(),r=e)}},isSupported:function(r,e){return this.ownerDocument.implementation.hasFeature(r,e)},hasAttributes:function(){return this.attributes.length>0},lookupPrefix:function(r){for(var e=this;e;){var t=e._nsMap;if(t){for(var i in t)if(Object.prototype.hasOwnProperty.call(t,i)&&t[i]===r)return i}e=e.nodeType==yn?e.ownerDocument:e.parentNode}return null},lookupNamespaceURI:function(r){for(var e=this;e;){var t=e._nsMap;if(t&&Object.prototype.hasOwnProperty.call(t,r))return t[r];e=e.nodeType==yn?e.ownerDocument:e.parentNode}return null},isDefaultNamespace:function(r){var e=this.lookupPrefix(r);return e==null}};function oE(r){return r=="<"&&"&lt;"||r==">"&&"&gt;"||r=="&"&&"&amp;"||r=='"'&&"&quot;"||"&#"+r.charCodeAt()+";"}tc(mt,ue);tc(mt,ue.prototype);function ec(r,e){if(e(r))return!0;if(r=r.firstChild)do if(ec(r,e))return!0;while(r=r.nextSibling)}function rc(){this.ownerDocument=this}function LR(r,e,t){r&&r._inc++;var i=t.namespaceURI;i===Ja.XMLNS&&(e._nsMap[t.prefix?t.localName:""]=t.value)}function aE(r,e,t,i){r&&r._inc++;var s=t.namespaceURI;s===Ja.XMLNS&&delete e._nsMap[t.prefix?t.localName:""]}function ng(r,e,t){if(r&&r._inc){r._inc++;var i=e.childNodes;if(t)i[i.length++]=t;else{for(var s=e.firstChild,n=0;s;)i[n++]=s,s=s.nextSibling;i.length=n,delete i[i.length]}}}function cE(r,e){var t=e.previousSibling,i=e.nextSibling;return t?t.nextSibling=i:r.firstChild=i,i?i.previousSibling=t:r.lastChild=t,e.parentNode=null,e.previousSibling=null,e.nextSibling=null,ng(r.ownerDocument,r),e}function zR(r){return r&&(r.nodeType===ue.DOCUMENT_NODE||r.nodeType===ue.DOCUMENT_FRAGMENT_NODE||r.nodeType===ue.ELEMENT_NODE)}function VR(r){return r&&(lr(r)||og(r)||Mr(r)||r.nodeType===ue.DOCUMENT_FRAGMENT_NODE||r.nodeType===ue.COMMENT_NODE||r.nodeType===ue.PROCESSING_INSTRUCTION_NODE)}function Mr(r){return r&&r.nodeType===ue.DOCUMENT_TYPE_NODE}function lr(r){return r&&r.nodeType===ue.ELEMENT_NODE}function og(r){return r&&r.nodeType===ue.TEXT_NODE}function jC(r,e){var t=r.childNodes||[];if(ur(t,lr)||Mr(e))return!1;var i=ur(t,Mr);return!(e&&i&&t.indexOf(i)>t.indexOf(e))}function XC(r,e){var t=r.childNodes||[];function i(n){return lr(n)&&n!==e}if(ur(t,i))return!1;var s=ur(t,Mr);return!(e&&s&&t.indexOf(s)>t.indexOf(e))}function HR(r,e,t){if(!zR(r))throw new Be(dt,"Unexpected parent node type "+r.nodeType);if(t&&t.parentNode!==r)throw new Be(iE,"child not in parent");if(!VR(e)||Mr(e)&&r.nodeType!==ue.DOCUMENT_NODE)throw new Be(dt,"Unexpected node type "+e.nodeType+" for parent node type "+r.nodeType)}function WR(r,e,t){var i=r.childNodes||[],s=e.childNodes||[];if(e.nodeType===ue.DOCUMENT_FRAGMENT_NODE){var n=s.filter(lr);if(n.length>1||ur(s,og))throw new Be(dt,"More than one element or text in fragment");if(n.length===1&&!jC(r,t))throw new Be(dt,"Element in fragment can not be inserted before doctype")}if(lr(e)&&!jC(r,t))throw new Be(dt,"Only one element can be added and only after doctype");if(Mr(e)){if(ur(i,Mr))throw new Be(dt,"Only one doctype is allowed");var o=ur(i,lr);if(t&&i.indexOf(o)<i.indexOf(t))throw new Be(dt,"Doctype can only be inserted before an element");if(!t&&o)throw new Be(dt,"Doctype can not be appended since element is present")}}function uE(r,e,t){var i=r.childNodes||[],s=e.childNodes||[];if(e.nodeType===ue.DOCUMENT_FRAGMENT_NODE){var n=s.filter(lr);if(n.length>1||ur(s,og))throw new Be(dt,"More than one element or text in fragment");if(n.length===1&&!XC(r,t))throw new Be(dt,"Element in fragment can not be inserted before doctype")}if(lr(e)&&!XC(r,t))throw new Be(dt,"Only one element can be added and only after doctype");if(Mr(e)){let c=function(u){return Mr(u)&&u!==t};var a=c;if(ur(i,c))throw new Be(dt,"Only one doctype is allowed");var o=ur(i,lr);if(t&&i.indexOf(o)<i.indexOf(t))throw new Be(dt,"Doctype can only be inserted before an element")}}function dh(r,e,t,i){HR(r,e,t),r.nodeType===ue.DOCUMENT_NODE&&(i||WR)(r,e,t);var s=e.parentNode;if(s&&s.removeChild(e),e.nodeType===Dr){var n=e.firstChild;if(n==null)return e;var o=e.lastChild}else n=o=e;var a=t?t.previousSibling:r.lastChild;n.previousSibling=a,o.nextSibling=t,a?a.nextSibling=n:r.firstChild=n,t==null?r.lastChild=o:t.previousSibling=o;do n.parentNode=r;while(n!==o&&(n=n.nextSibling));return ng(r.ownerDocument||r,r),e.nodeType==Dr&&(e.firstChild=e.lastChild=null),e}function $R(r,e){return e.parentNode&&e.parentNode.removeChild(e),e.parentNode=r,e.previousSibling=r.lastChild,e.nextSibling=null,e.previousSibling?e.previousSibling.nextSibling=e:r.firstChild=e,r.lastChild=e,ng(r.ownerDocument,r,e),e}rc.prototype={nodeName:"#document",nodeType:tE,doctype:null,documentElement:null,_inc:1,insertBefore:function(r,e){if(r.nodeType==Dr){for(var t=r.firstChild;t;){var i=t.nextSibling;this.insertBefore(t,e),t=i}return r}return dh(this,r,e),r.ownerDocument=this,this.documentElement===null&&r.nodeType===Nt&&(this.documentElement=r),r},removeChild:function(r){return this.documentElement==r&&(this.documentElement=null),cE(this,r)},replaceChild:function(r,e){dh(this,r,e,uE),r.ownerDocument=this,e&&this.removeChild(e),lr(r)&&(this.documentElement=r)},importNode:function(r,e){return mE(this,r,e)},getElementById:function(r){var e=null;return ec(this.documentElement,function(t){if(t.nodeType==Nt&&t.getAttribute("id")==r)return e=t,!0}),e},getElementsByClassName:function(r){var e=HC(r);return new Tn(this,function(t){var i=[];return e.length>0&&ec(t.documentElement,function(s){if(s!==t&&s.nodeType===Nt){var n=s.getAttribute("class");if(n){var o=r===n;if(!o){var a=HC(n);o=e.every(OR(a))}o&&i.push(s)}}}),i})},createElement:function(r){var e=new ts;e.ownerDocument=this,e.nodeName=r,e.tagName=r,e.localName=r,e.childNodes=new Rr;var t=e.attributes=new hh;return t._ownerElement=e,e},createDocumentFragment:function(){var r=new ph;return r.ownerDocument=this,r.childNodes=new Rr,r},createTextNode:function(r){var e=new ag;return e.ownerDocument=this,e.appendData(r),e},createComment:function(r){var e=new cg;return e.ownerDocument=this,e.appendData(r),e},createCDATASection:function(r){var e=new ug;return e.ownerDocument=this,e.appendData(r),e},createProcessingInstruction:function(r,e){var t=new hg;return t.ownerDocument=this,t.tagName=t.nodeName=t.target=r,t.nodeValue=t.data=e,t},createAttribute:function(r){var e=new fh;return e.ownerDocument=this,e.name=r,e.nodeName=r,e.localName=r,e.specified=!0,e},createEntityReference:function(r){var e=new lg;return e.ownerDocument=this,e.nodeName=r,e},createElementNS:function(r,e){var t=new ts,i=e.split(":"),s=t.attributes=new hh;return t.childNodes=new Rr,t.ownerDocument=this,t.nodeName=e,t.tagName=e,t.namespaceURI=r,i.length==2?(t.prefix=i[0],t.localName=i[1]):t.localName=e,s._ownerElement=t,t},createAttributeNS:function(r,e){var t=new fh,i=e.split(":");return t.ownerDocument=this,t.nodeName=e,t.name=e,t.namespaceURI=r,t.specified=!0,i.length==2?(t.prefix=i[0],t.localName=i[1]):t.localName=e,t}};ft(rc,ue);function ts(){this._nsMap={}}ts.prototype={nodeType:Nt,hasAttribute:function(r){return this.getAttributeNode(r)!=null},getAttribute:function(r){var e=this.getAttributeNode(r);return e&&e.value||""},getAttributeNode:function(r){return this.attributes.getNamedItem(r)},setAttribute:function(r,e){var t=this.ownerDocument.createAttribute(r);t.value=t.nodeValue=""+e,this.setAttributeNode(t)},removeAttribute:function(r){var e=this.getAttributeNode(r);e&&this.removeAttributeNode(e)},appendChild:function(r){return r.nodeType===Dr?this.insertBefore(r,null):$R(this,r)},setAttributeNode:function(r){return this.attributes.setNamedItem(r)},setAttributeNodeNS:function(r){return this.attributes.setNamedItemNS(r)},removeAttributeNode:function(r){return this.attributes.removeNamedItem(r.nodeName)},removeAttributeNS:function(r,e){var t=this.getAttributeNodeNS(r,e);t&&this.removeAttributeNode(t)},hasAttributeNS:function(r,e){return this.getAttributeNodeNS(r,e)!=null},getAttributeNS:function(r,e){var t=this.getAttributeNodeNS(r,e);return t&&t.value||""},setAttributeNS:function(r,e,t){var i=this.ownerDocument.createAttributeNS(r,e);i.value=i.nodeValue=""+t,this.setAttributeNode(i)},getAttributeNodeNS:function(r,e){return this.attributes.getNamedItemNS(r,e)},getElementsByTagName:function(r){return new Tn(this,function(e){var t=[];return ec(e,function(i){i!==e&&i.nodeType==Nt&&(r==="*"||i.tagName==r)&&t.push(i)}),t})},getElementsByTagNameNS:function(r,e){return new Tn(this,function(t){var i=[];return ec(t,function(s){s!==t&&s.nodeType===Nt&&(r==="*"||s.namespaceURI===r)&&(e==="*"||s.localName==e)&&i.push(s)}),i})}};rc.prototype.getElementsByTagName=ts.prototype.getElementsByTagName;rc.prototype.getElementsByTagNameNS=ts.prototype.getElementsByTagNameNS;ft(ts,ue);function fh(){}fh.prototype.nodeType=yn;ft(fh,ue);function ic(){}ic.prototype={data:"",substringData:function(r,e){return this.data.substring(r,r+e)},appendData:function(r){r=this.data+r,this.nodeValue=this.data=r,this.length=r.length},insertData:function(r,e){this.replaceData(r,0,e)},appendChild:function(r){throw new Error(ze[dt])},deleteData:function(r,e){this.replaceData(r,e,"")},replaceData:function(r,e,t){var i=this.data.substring(0,r),s=this.data.substring(r+e);t=i+t+s,this.nodeValue=this.data=t,this.length=t.length}};ft(ic,ue);function ag(){}ag.prototype={nodeName:"#text",nodeType:lh,splitText:function(r){var e=this.data,t=e.substring(r);e=e.substring(0,r),this.data=this.nodeValue=e,this.length=e.length;var i=this.ownerDocument.createTextNode(t);return this.parentNode&&this.parentNode.insertBefore(i,this.nextSibling),i}};ft(ag,ic);function cg(){}cg.prototype={nodeName:"#comment",nodeType:eE};ft(cg,ic);function ug(){}ug.prototype={nodeName:"#cdata-section",nodeType:QC};ft(ug,ic);function mh(){}mh.prototype.nodeType=rE;ft(mh,ue);function lE(){}lE.prototype.nodeType=NR;ft(lE,ue);function hE(){}hE.prototype.nodeType=GR;ft(hE,ue);function lg(){}lg.prototype.nodeType=ZC;ft(lg,ue);function ph(){}ph.prototype.nodeName="#document-fragment";ph.prototype.nodeType=Dr;ft(ph,ue);function hg(){}hg.prototype.nodeType=JC;ft(hg,ue);function dE(){}dE.prototype.serializeToString=function(r,e,t){return fE.call(r,e,t)};ue.prototype.toString=fE;function fE(r,e){var t=[],i=this.nodeType==9&&this.documentElement||this,s=i.prefix,n=i.namespaceURI;if(n&&s==null){var s=i.lookupPrefix(n);if(s==null)var o=[{namespace:n,prefix:null}]}return bn(this,t,r,e,o),t.join("")}function YC(r,e,t){var i=r.prefix||"",s=r.namespaceURI;if(!s||i==="xml"&&s===Ja.XML||s===Ja.XMLNS)return!1;for(var n=t.length;n--;){var o=t[n];if(o.prefix===i)return o.namespace!==s}return!0}function rg(r,e,t){r.push(" ",e,'="',t.replace(/[<>&"\t\n\r]/g,oE),'"')}function bn(r,e,t,i,s){if(s||(s=[]),i)if(r=i(r),r){if(typeof r=="string"){e.push(r);return}}else return;switch(r.nodeType){case Nt:var n=r.attributes,o=n.length,_=r.firstChild,a=r.tagName;t=Ja.isHTML(r.namespaceURI)||t;var c=a;if(!t&&!r.prefix&&r.namespaceURI){for(var u,l=0;l<n.length;l++)if(n.item(l).name==="xmlns"){u=n.item(l).value;break}if(!u)for(var h=s.length-1;h>=0;h--){var f=s[h];if(f.prefix===""&&f.namespace===r.namespaceURI){u=f.namespace;break}}if(u!==r.namespaceURI)for(var h=s.length-1;h>=0;h--){var f=s[h];if(f.namespace===r.namespaceURI){f.prefix&&(c=f.prefix+":"+a);break}}}e.push("<",c);for(var d=0;d<o;d++){var m=n.item(d);m.prefix=="xmlns"?s.push({prefix:m.localName,namespace:m.value}):m.nodeName=="xmlns"&&s.push({prefix:"",namespace:m.value})}for(var d=0;d<o;d++){var m=n.item(d);if(YC(m,t,s)){var x=m.prefix||"",g=m.namespaceURI;rg(e,x?"xmlns:"+x:"xmlns",g),s.push({prefix:x,namespace:g})}bn(m,e,t,i,s)}if(a===c&&YC(r,t,s)){var x=r.prefix||"",g=r.namespaceURI;rg(e,x?"xmlns:"+x:"xmlns",g),s.push({prefix:x,namespace:g})}if(_||t&&!/^(?:meta|link|img|br|hr|input)$/i.test(a)){if(e.push(">"),t&&/^script$/i.test(a))for(;_;)_.data?e.push(_.data):bn(_,e,t,i,s.slice()),_=_.nextSibling;else for(;_;)bn(_,e,t,i,s.slice()),_=_.nextSibling;e.push("</",c,">")}else e.push("/>");return;case tE:case Dr:for(var _=r.firstChild;_;)bn(_,e,t,i,s.slice()),_=_.nextSibling;return;case yn:return rg(e,r.name,r.value);case lh:return e.push(r.data.replace(/[<&>]/g,oE));case QC:return e.push("<![CDATA[",r.data,"]]>");case eE:return e.push("<!--",r.data,"-->");case rE:var y=r.publicId,S=r.systemId;if(e.push("<!DOCTYPE ",r.name),y)e.push(" PUBLIC ",y),S&&S!="."&&e.push(" ",S),e.push(">");else if(S&&S!=".")e.push(" SYSTEM ",S,">");else{var T=r.internalSubset;T&&e.push(" [",T,"]"),e.push(">")}return;case JC:return e.push("<?",r.target," ",r.data,"?>");case ZC:return e.push("&",r.nodeName,";");default:e.push("??",r.nodeName)}}function mE(r,e,t){var i;switch(e.nodeType){case Nt:i=e.cloneNode(!1),i.ownerDocument=r;case Dr:break;case yn:t=!0;break}if(i||(i=e.cloneNode(!1)),i.ownerDocument=r,i.parentNode=null,t)for(var s=e.firstChild;s;)i.appendChild(mE(r,s,t)),s=s.nextSibling;return i}function ig(r,e,t){var i=new e.constructor;for(var s in e)if(Object.prototype.hasOwnProperty.call(e,s)){var n=e[s];typeof n!="object"&&n!=i[s]&&(i[s]=n)}switch(e.childNodes&&(i.childNodes=new Rr),i.ownerDocument=r,i.nodeType){case Nt:var o=e.attributes,a=i.attributes=new hh,c=o.length;a._ownerElement=i;for(var u=0;u<c;u++)i.setAttributeNode(ig(r,o.item(u),!0));break;case yn:t=!0}if(t)for(var l=e.firstChild;l;)i.appendChild(ig(r,l,t)),l=l.nextSibling;return i}function pE(r,e,t){r[e]=t}try{if(Object.defineProperty){let r=function(e){switch(e.nodeType){case Nt:case Dr:var t=[];for(e=e.firstChild;e;)e.nodeType!==7&&e.nodeType!==8&&t.push(r(e)),e=e.nextSibling;return t.join("");default:return e.nodeValue}};qR=r,Object.defineProperty(Tn.prototype,"length",{get:function(){return sg(this),this.$$length}}),Object.defineProperty(ue.prototype,"textContent",{get:function(){return r(this)},set:function(e){switch(this.nodeType){case Nt:case Dr:for(;this.firstChild;)this.removeChild(this.firstChild);(e||String(e))&&this.appendChild(this.ownerDocument.createTextNode(e));break;default:this.data=e,this.value=e,this.nodeValue=e}}}),pE=function(e,t,i){e["$$"+t]=i}}}catch{}var qR;si.DocumentType=mh;si.DOMException=Be;si.DOMImplementation=nE;si.Element=ts;si.Node=ue;si.NodeList=Rr;si.XMLSerializer=dE});var xE=Fr(sc=>{"use strict";var gE=Za().freeze;sc.XML_ENTITIES=gE({amp:"&",apos:"'",gt:">",lt:"<",quot:'"'});sc.HTML_ENTITIES=gE({Aacute:"\xC1",aacute:"\xE1",Abreve:"\u0102",abreve:"\u0103",ac:"\u223E",acd:"\u223F",acE:"\u223E\u0333",Acirc:"\xC2",acirc:"\xE2",acute:"\xB4",Acy:"\u0410",acy:"\u0430",AElig:"\xC6",aelig:"\xE6",af:"\u2061",Afr:"\u{1D504}",afr:"\u{1D51E}",Agrave:"\xC0",agrave:"\xE0",alefsym:"\u2135",aleph:"\u2135",Alpha:"\u0391",alpha:"\u03B1",Amacr:"\u0100",amacr:"\u0101",amalg:"\u2A3F",AMP:"&",amp:"&",And:"\u2A53",and:"\u2227",andand:"\u2A55",andd:"\u2A5C",andslope:"\u2A58",andv:"\u2A5A",ang:"\u2220",ange:"\u29A4",angle:"\u2220",angmsd:"\u2221",angmsdaa:"\u29A8",angmsdab:"\u29A9",angmsdac:"\u29AA",angmsdad:"\u29AB",angmsdae:"\u29AC",angmsdaf:"\u29AD",angmsdag:"\u29AE",angmsdah:"\u29AF",angrt:"\u221F",angrtvb:"\u22BE",angrtvbd:"\u299D",angsph:"\u2222",angst:"\xC5",angzarr:"\u237C",Aogon:"\u0104",aogon:"\u0105",Aopf:"\u{1D538}",aopf:"\u{1D552}",ap:"\u2248",apacir:"\u2A6F",apE:"\u2A70",ape:"\u224A",apid:"\u224B",apos:"'",ApplyFunction:"\u2061",approx:"\u2248",approxeq:"\u224A",Aring:"\xC5",aring:"\xE5",Ascr:"\u{1D49C}",ascr:"\u{1D4B6}",Assign:"\u2254",ast:"*",asymp:"\u2248",asympeq:"\u224D",Atilde:"\xC3",atilde:"\xE3",Auml:"\xC4",auml:"\xE4",awconint:"\u2233",awint:"\u2A11",backcong:"\u224C",backepsilon:"\u03F6",backprime:"\u2035",backsim:"\u223D",backsimeq:"\u22CD",Backslash:"\u2216",Barv:"\u2AE7",barvee:"\u22BD",Barwed:"\u2306",barwed:"\u2305",barwedge:"\u2305",bbrk:"\u23B5",bbrktbrk:"\u23B6",bcong:"\u224C",Bcy:"\u0411",bcy:"\u0431",bdquo:"\u201E",becaus:"\u2235",Because:"\u2235",because:"\u2235",bemptyv:"\u29B0",bepsi:"\u03F6",bernou:"\u212C",Bernoullis:"\u212C",Beta:"\u0392",beta:"\u03B2",beth:"\u2136",between:"\u226C",Bfr:"\u{1D505}",bfr:"\u{1D51F}",bigcap:"\u22C2",bigcirc:"\u25EF",bigcup:"\u22C3",bigodot:"\u2A00",bigoplus:"\u2A01",bigotimes:"\u2A02",bigsqcup:"\u2A06",bigstar:"\u2605",bigtriangledown:"\u25BD",bigtriangleup:"\u25B3",biguplus:"\u2A04",bigvee:"\u22C1",bigwedge:"\u22C0",bkarow:"\u290D",blacklozenge:"\u29EB",blacksquare:"\u25AA",blacktriangle:"\u25B4",blacktriangledown:"\u25BE",blacktriangleleft:"\u25C2",blacktriangleright:"\u25B8",blank:"\u2423",blk12:"\u2592",blk14:"\u2591",blk34:"\u2593",block:"\u2588",bne:"=\u20E5",bnequiv:"\u2261\u20E5",bNot:"\u2AED",bnot:"\u2310",Bopf:"\u{1D539}",bopf:"\u{1D553}",bot:"\u22A5",bottom:"\u22A5",bowtie:"\u22C8",boxbox:"\u29C9",boxDL:"\u2557",boxDl:"\u2556",boxdL:"\u2555",boxdl:"\u2510",boxDR:"\u2554",boxDr:"\u2553",boxdR:"\u2552",boxdr:"\u250C",boxH:"\u2550",boxh:"\u2500",boxHD:"\u2566",boxHd:"\u2564",boxhD:"\u2565",boxhd:"\u252C",boxHU:"\u2569",boxHu:"\u2567",boxhU:"\u2568",boxhu:"\u2534",boxminus:"\u229F",boxplus:"\u229E",boxtimes:"\u22A0",boxUL:"\u255D",boxUl:"\u255C",boxuL:"\u255B",boxul:"\u2518",boxUR:"\u255A",boxUr:"\u2559",boxuR:"\u2558",boxur:"\u2514",boxV:"\u2551",boxv:"\u2502",boxVH:"\u256C",boxVh:"\u256B",boxvH:"\u256A",boxvh:"\u253C",boxVL:"\u2563",boxVl:"\u2562",boxvL:"\u2561",boxvl:"\u2524",boxVR:"\u2560",boxVr:"\u255F",boxvR:"\u255E",boxvr:"\u251C",bprime:"\u2035",Breve:"\u02D8",breve:"\u02D8",brvbar:"\xA6",Bscr:"\u212C",bscr:"\u{1D4B7}",bsemi:"\u204F",bsim:"\u223D",bsime:"\u22CD",bsol:"\\",bsolb:"\u29C5",bsolhsub:"\u27C8",bull:"\u2022",bullet:"\u2022",bump:"\u224E",bumpE:"\u2AAE",bumpe:"\u224F",Bumpeq:"\u224E",bumpeq:"\u224F",Cacute:"\u0106",cacute:"\u0107",Cap:"\u22D2",cap:"\u2229",capand:"\u2A44",capbrcup:"\u2A49",capcap:"\u2A4B",capcup:"\u2A47",capdot:"\u2A40",CapitalDifferentialD:"\u2145",caps:"\u2229\uFE00",caret:"\u2041",caron:"\u02C7",Cayleys:"\u212D",ccaps:"\u2A4D",Ccaron:"\u010C",ccaron:"\u010D",Ccedil:"\xC7",ccedil:"\xE7",Ccirc:"\u0108",ccirc:"\u0109",Cconint:"\u2230",ccups:"\u2A4C",ccupssm:"\u2A50",Cdot:"\u010A",cdot:"\u010B",cedil:"\xB8",Cedilla:"\xB8",cemptyv:"\u29B2",cent:"\xA2",CenterDot:"\xB7",centerdot:"\xB7",Cfr:"\u212D",cfr:"\u{1D520}",CHcy:"\u0427",chcy:"\u0447",check:"\u2713",checkmark:"\u2713",Chi:"\u03A7",chi:"\u03C7",cir:"\u25CB",circ:"\u02C6",circeq:"\u2257",circlearrowleft:"\u21BA",circlearrowright:"\u21BB",circledast:"\u229B",circledcirc:"\u229A",circleddash:"\u229D",CircleDot:"\u2299",circledR:"\xAE",circledS:"\u24C8",CircleMinus:"\u2296",CirclePlus:"\u2295",CircleTimes:"\u2297",cirE:"\u29C3",cire:"\u2257",cirfnint:"\u2A10",cirmid:"\u2AEF",cirscir:"\u29C2",ClockwiseContourIntegral:"\u2232",CloseCurlyDoubleQuote:"\u201D",CloseCurlyQuote:"\u2019",clubs:"\u2663",clubsuit:"\u2663",Colon:"\u2237",colon:":",Colone:"\u2A74",colone:"\u2254",coloneq:"\u2254",comma:",",commat:"@",comp:"\u2201",compfn:"\u2218",complement:"\u2201",complexes:"\u2102",cong:"\u2245",congdot:"\u2A6D",Congruent:"\u2261",Conint:"\u222F",conint:"\u222E",ContourIntegral:"\u222E",Copf:"\u2102",copf:"\u{1D554}",coprod:"\u2210",Coproduct:"\u2210",COPY:"\xA9",copy:"\xA9",copysr:"\u2117",CounterClockwiseContourIntegral:"\u2233",crarr:"\u21B5",Cross:"\u2A2F",cross:"\u2717",Cscr:"\u{1D49E}",cscr:"\u{1D4B8}",csub:"\u2ACF",csube:"\u2AD1",csup:"\u2AD0",csupe:"\u2AD2",ctdot:"\u22EF",cudarrl:"\u2938",cudarrr:"\u2935",cuepr:"\u22DE",cuesc:"\u22DF",cularr:"\u21B6",cularrp:"\u293D",Cup:"\u22D3",cup:"\u222A",cupbrcap:"\u2A48",CupCap:"\u224D",cupcap:"\u2A46",cupcup:"\u2A4A",cupdot:"\u228D",cupor:"\u2A45",cups:"\u222A\uFE00",curarr:"\u21B7",curarrm:"\u293C",curlyeqprec:"\u22DE",curlyeqsucc:"\u22DF",curlyvee:"\u22CE",curlywedge:"\u22CF",curren:"\xA4",curvearrowleft:"\u21B6",curvearrowright:"\u21B7",cuvee:"\u22CE",cuwed:"\u22CF",cwconint:"\u2232",cwint:"\u2231",cylcty:"\u232D",Dagger:"\u2021",dagger:"\u2020",daleth:"\u2138",Darr:"\u21A1",dArr:"\u21D3",darr:"\u2193",dash:"\u2010",Dashv:"\u2AE4",dashv:"\u22A3",dbkarow:"\u290F",dblac:"\u02DD",Dcaron:"\u010E",dcaron:"\u010F",Dcy:"\u0414",dcy:"\u0434",DD:"\u2145",dd:"\u2146",ddagger:"\u2021",ddarr:"\u21CA",DDotrahd:"\u2911",ddotseq:"\u2A77",deg:"\xB0",Del:"\u2207",Delta:"\u0394",delta:"\u03B4",demptyv:"\u29B1",dfisht:"\u297F",Dfr:"\u{1D507}",dfr:"\u{1D521}",dHar:"\u2965",dharl:"\u21C3",dharr:"\u21C2",DiacriticalAcute:"\xB4",DiacriticalDot:"\u02D9",DiacriticalDoubleAcute:"\u02DD",DiacriticalGrave:"`",DiacriticalTilde:"\u02DC",diam:"\u22C4",Diamond:"\u22C4",diamond:"\u22C4",diamondsuit:"\u2666",diams:"\u2666",die:"\xA8",DifferentialD:"\u2146",digamma:"\u03DD",disin:"\u22F2",div:"\xF7",divide:"\xF7",divideontimes:"\u22C7",divonx:"\u22C7",DJcy:"\u0402",djcy:"\u0452",dlcorn:"\u231E",dlcrop:"\u230D",dollar:"$",Dopf:"\u{1D53B}",dopf:"\u{1D555}",Dot:"\xA8",dot:"\u02D9",DotDot:"\u20DC",doteq:"\u2250",doteqdot:"\u2251",DotEqual:"\u2250",dotminus:"\u2238",dotplus:"\u2214",dotsquare:"\u22A1",doublebarwedge:"\u2306",DoubleContourIntegral:"\u222F",DoubleDot:"\xA8",DoubleDownArrow:"\u21D3",DoubleLeftArrow:"\u21D0",DoubleLeftRightArrow:"\u21D4",DoubleLeftTee:"\u2AE4",DoubleLongLeftArrow:"\u27F8",DoubleLongLeftRightArrow:"\u27FA",DoubleLongRightArrow:"\u27F9",DoubleRightArrow:"\u21D2",DoubleRightTee:"\u22A8",DoubleUpArrow:"\u21D1",DoubleUpDownArrow:"\u21D5",DoubleVerticalBar:"\u2225",DownArrow:"\u2193",Downarrow:"\u21D3",downarrow:"\u2193",DownArrowBar:"\u2913",DownArrowUpArrow:"\u21F5",DownBreve:"\u0311",downdownarrows:"\u21CA",downharpoonleft:"\u21C3",downharpoonright:"\u21C2",DownLeftRightVector:"\u2950",DownLeftTeeVector:"\u295E",DownLeftVector:"\u21BD",DownLeftVectorBar:"\u2956",DownRightTeeVector:"\u295F",DownRightVector:"\u21C1",DownRightVectorBar:"\u2957",DownTee:"\u22A4",DownTeeArrow:"\u21A7",drbkarow:"\u2910",drcorn:"\u231F",drcrop:"\u230C",Dscr:"\u{1D49F}",dscr:"\u{1D4B9}",DScy:"\u0405",dscy:"\u0455",dsol:"\u29F6",Dstrok:"\u0110",dstrok:"\u0111",dtdot:"\u22F1",dtri:"\u25BF",dtrif:"\u25BE",duarr:"\u21F5",duhar:"\u296F",dwangle:"\u29A6",DZcy:"\u040F",dzcy:"\u045F",dzigrarr:"\u27FF",Eacute:"\xC9",eacute:"\xE9",easter:"\u2A6E",Ecaron:"\u011A",ecaron:"\u011B",ecir:"\u2256",Ecirc:"\xCA",ecirc:"\xEA",ecolon:"\u2255",Ecy:"\u042D",ecy:"\u044D",eDDot:"\u2A77",Edot:"\u0116",eDot:"\u2251",edot:"\u0117",ee:"\u2147",efDot:"\u2252",Efr:"\u{1D508}",efr:"\u{1D522}",eg:"\u2A9A",Egrave:"\xC8",egrave:"\xE8",egs:"\u2A96",egsdot:"\u2A98",el:"\u2A99",Element:"\u2208",elinters:"\u23E7",ell:"\u2113",els:"\u2A95",elsdot:"\u2A97",Emacr:"\u0112",emacr:"\u0113",empty:"\u2205",emptyset:"\u2205",EmptySmallSquare:"\u25FB",emptyv:"\u2205",EmptyVerySmallSquare:"\u25AB",emsp:"\u2003",emsp13:"\u2004",emsp14:"\u2005",ENG:"\u014A",eng:"\u014B",ensp:"\u2002",Eogon:"\u0118",eogon:"\u0119",Eopf:"\u{1D53C}",eopf:"\u{1D556}",epar:"\u22D5",eparsl:"\u29E3",eplus:"\u2A71",epsi:"\u03B5",Epsilon:"\u0395",epsilon:"\u03B5",epsiv:"\u03F5",eqcirc:"\u2256",eqcolon:"\u2255",eqsim:"\u2242",eqslantgtr:"\u2A96",eqslantless:"\u2A95",Equal:"\u2A75",equals:"=",EqualTilde:"\u2242",equest:"\u225F",Equilibrium:"\u21CC",equiv:"\u2261",equivDD:"\u2A78",eqvparsl:"\u29E5",erarr:"\u2971",erDot:"\u2253",Escr:"\u2130",escr:"\u212F",esdot:"\u2250",Esim:"\u2A73",esim:"\u2242",Eta:"\u0397",eta:"\u03B7",ETH:"\xD0",eth:"\xF0",Euml:"\xCB",euml:"\xEB",euro:"\u20AC",excl:"!",exist:"\u2203",Exists:"\u2203",expectation:"\u2130",ExponentialE:"\u2147",exponentiale:"\u2147",fallingdotseq:"\u2252",Fcy:"\u0424",fcy:"\u0444",female:"\u2640",ffilig:"\uFB03",fflig:"\uFB00",ffllig:"\uFB04",Ffr:"\u{1D509}",ffr:"\u{1D523}",filig:"\uFB01",FilledSmallSquare:"\u25FC",FilledVerySmallSquare:"\u25AA",fjlig:"fj",flat:"\u266D",fllig:"\uFB02",fltns:"\u25B1",fnof:"\u0192",Fopf:"\u{1D53D}",fopf:"\u{1D557}",ForAll:"\u2200",forall:"\u2200",fork:"\u22D4",forkv:"\u2AD9",Fouriertrf:"\u2131",fpartint:"\u2A0D",frac12:"\xBD",frac13:"\u2153",frac14:"\xBC",frac15:"\u2155",frac16:"\u2159",frac18:"\u215B",frac23:"\u2154",frac25:"\u2156",frac34:"\xBE",frac35:"\u2157",frac38:"\u215C",frac45:"\u2158",frac56:"\u215A",frac58:"\u215D",frac78:"\u215E",frasl:"\u2044",frown:"\u2322",Fscr:"\u2131",fscr:"\u{1D4BB}",gacute:"\u01F5",Gamma:"\u0393",gamma:"\u03B3",Gammad:"\u03DC",gammad:"\u03DD",gap:"\u2A86",Gbreve:"\u011E",gbreve:"\u011F",Gcedil:"\u0122",Gcirc:"\u011C",gcirc:"\u011D",Gcy:"\u0413",gcy:"\u0433",Gdot:"\u0120",gdot:"\u0121",gE:"\u2267",ge:"\u2265",gEl:"\u2A8C",gel:"\u22DB",geq:"\u2265",geqq:"\u2267",geqslant:"\u2A7E",ges:"\u2A7E",gescc:"\u2AA9",gesdot:"\u2A80",gesdoto:"\u2A82",gesdotol:"\u2A84",gesl:"\u22DB\uFE00",gesles:"\u2A94",Gfr:"\u{1D50A}",gfr:"\u{1D524}",Gg:"\u22D9",gg:"\u226B",ggg:"\u22D9",gimel:"\u2137",GJcy:"\u0403",gjcy:"\u0453",gl:"\u2277",gla:"\u2AA5",glE:"\u2A92",glj:"\u2AA4",gnap:"\u2A8A",gnapprox:"\u2A8A",gnE:"\u2269",gne:"\u2A88",gneq:"\u2A88",gneqq:"\u2269",gnsim:"\u22E7",Gopf:"\u{1D53E}",gopf:"\u{1D558}",grave:"`",GreaterEqual:"\u2265",GreaterEqualLess:"\u22DB",GreaterFullEqual:"\u2267",GreaterGreater:"\u2AA2",GreaterLess:"\u2277",GreaterSlantEqual:"\u2A7E",GreaterTilde:"\u2273",Gscr:"\u{1D4A2}",gscr:"\u210A",gsim:"\u2273",gsime:"\u2A8E",gsiml:"\u2A90",Gt:"\u226B",GT:">",gt:">",gtcc:"\u2AA7",gtcir:"\u2A7A",gtdot:"\u22D7",gtlPar:"\u2995",gtquest:"\u2A7C",gtrapprox:"\u2A86",gtrarr:"\u2978",gtrdot:"\u22D7",gtreqless:"\u22DB",gtreqqless:"\u2A8C",gtrless:"\u2277",gtrsim:"\u2273",gvertneqq:"\u2269\uFE00",gvnE:"\u2269\uFE00",Hacek:"\u02C7",hairsp:"\u200A",half:"\xBD",hamilt:"\u210B",HARDcy:"\u042A",hardcy:"\u044A",hArr:"\u21D4",harr:"\u2194",harrcir:"\u2948",harrw:"\u21AD",Hat:"^",hbar:"\u210F",Hcirc:"\u0124",hcirc:"\u0125",hearts:"\u2665",heartsuit:"\u2665",hellip:"\u2026",hercon:"\u22B9",Hfr:"\u210C",hfr:"\u{1D525}",HilbertSpace:"\u210B",hksearow:"\u2925",hkswarow:"\u2926",hoarr:"\u21FF",homtht:"\u223B",hookleftarrow:"\u21A9",hookrightarrow:"\u21AA",Hopf:"\u210D",hopf:"\u{1D559}",horbar:"\u2015",HorizontalLine:"\u2500",Hscr:"\u210B",hscr:"\u{1D4BD}",hslash:"\u210F",Hstrok:"\u0126",hstrok:"\u0127",HumpDownHump:"\u224E",HumpEqual:"\u224F",hybull:"\u2043",hyphen:"\u2010",Iacute:"\xCD",iacute:"\xED",ic:"\u2063",Icirc:"\xCE",icirc:"\xEE",Icy:"\u0418",icy:"\u0438",Idot:"\u0130",IEcy:"\u0415",iecy:"\u0435",iexcl:"\xA1",iff:"\u21D4",Ifr:"\u2111",ifr:"\u{1D526}",Igrave:"\xCC",igrave:"\xEC",ii:"\u2148",iiiint:"\u2A0C",iiint:"\u222D",iinfin:"\u29DC",iiota:"\u2129",IJlig:"\u0132",ijlig:"\u0133",Im:"\u2111",Imacr:"\u012A",imacr:"\u012B",image:"\u2111",ImaginaryI:"\u2148",imagline:"\u2110",imagpart:"\u2111",imath:"\u0131",imof:"\u22B7",imped:"\u01B5",Implies:"\u21D2",in:"\u2208",incare:"\u2105",infin:"\u221E",infintie:"\u29DD",inodot:"\u0131",Int:"\u222C",int:"\u222B",intcal:"\u22BA",integers:"\u2124",Integral:"\u222B",intercal:"\u22BA",Intersection:"\u22C2",intlarhk:"\u2A17",intprod:"\u2A3C",InvisibleComma:"\u2063",InvisibleTimes:"\u2062",IOcy:"\u0401",iocy:"\u0451",Iogon:"\u012E",iogon:"\u012F",Iopf:"\u{1D540}",iopf:"\u{1D55A}",Iota:"\u0399",iota:"\u03B9",iprod:"\u2A3C",iquest:"\xBF",Iscr:"\u2110",iscr:"\u{1D4BE}",isin:"\u2208",isindot:"\u22F5",isinE:"\u22F9",isins:"\u22F4",isinsv:"\u22F3",isinv:"\u2208",it:"\u2062",Itilde:"\u0128",itilde:"\u0129",Iukcy:"\u0406",iukcy:"\u0456",Iuml:"\xCF",iuml:"\xEF",Jcirc:"\u0134",jcirc:"\u0135",Jcy:"\u0419",jcy:"\u0439",Jfr:"\u{1D50D}",jfr:"\u{1D527}",jmath:"\u0237",Jopf:"\u{1D541}",jopf:"\u{1D55B}",Jscr:"\u{1D4A5}",jscr:"\u{1D4BF}",Jsercy:"\u0408",jsercy:"\u0458",Jukcy:"\u0404",jukcy:"\u0454",Kappa:"\u039A",kappa:"\u03BA",kappav:"\u03F0",Kcedil:"\u0136",kcedil:"\u0137",Kcy:"\u041A",kcy:"\u043A",Kfr:"\u{1D50E}",kfr:"\u{1D528}",kgreen:"\u0138",KHcy:"\u0425",khcy:"\u0445",KJcy:"\u040C",kjcy:"\u045C",Kopf:"\u{1D542}",kopf:"\u{1D55C}",Kscr:"\u{1D4A6}",kscr:"\u{1D4C0}",lAarr:"\u21DA",Lacute:"\u0139",lacute:"\u013A",laemptyv:"\u29B4",lagran:"\u2112",Lambda:"\u039B",lambda:"\u03BB",Lang:"\u27EA",lang:"\u27E8",langd:"\u2991",langle:"\u27E8",lap:"\u2A85",Laplacetrf:"\u2112",laquo:"\xAB",Larr:"\u219E",lArr:"\u21D0",larr:"\u2190",larrb:"\u21E4",larrbfs:"\u291F",larrfs:"\u291D",larrhk:"\u21A9",larrlp:"\u21AB",larrpl:"\u2939",larrsim:"\u2973",larrtl:"\u21A2",lat:"\u2AAB",lAtail:"\u291B",latail:"\u2919",late:"\u2AAD",lates:"\u2AAD\uFE00",lBarr:"\u290E",lbarr:"\u290C",lbbrk:"\u2772",lbrace:"{",lbrack:"[",lbrke:"\u298B",lbrksld:"\u298F",lbrkslu:"\u298D",Lcaron:"\u013D",lcaron:"\u013E",Lcedil:"\u013B",lcedil:"\u013C",lceil:"\u2308",lcub:"{",Lcy:"\u041B",lcy:"\u043B",ldca:"\u2936",ldquo:"\u201C",ldquor:"\u201E",ldrdhar:"\u2967",ldrushar:"\u294B",ldsh:"\u21B2",lE:"\u2266",le:"\u2264",LeftAngleBracket:"\u27E8",LeftArrow:"\u2190",Leftarrow:"\u21D0",leftarrow:"\u2190",LeftArrowBar:"\u21E4",LeftArrowRightArrow:"\u21C6",leftarrowtail:"\u21A2",LeftCeiling:"\u2308",LeftDoubleBracket:"\u27E6",LeftDownTeeVector:"\u2961",LeftDownVector:"\u21C3",LeftDownVectorBar:"\u2959",LeftFloor:"\u230A",leftharpoondown:"\u21BD",leftharpoonup:"\u21BC",leftleftarrows:"\u21C7",LeftRightArrow:"\u2194",Leftrightarrow:"\u21D4",leftrightarrow:"\u2194",leftrightarrows:"\u21C6",leftrightharpoons:"\u21CB",leftrightsquigarrow:"\u21AD",LeftRightVector:"\u294E",LeftTee:"\u22A3",LeftTeeArrow:"\u21A4",LeftTeeVector:"\u295A",leftthreetimes:"\u22CB",LeftTriangle:"\u22B2",LeftTriangleBar:"\u29CF",LeftTriangleEqual:"\u22B4",LeftUpDownVector:"\u2951",LeftUpTeeVector:"\u2960",LeftUpVector:"\u21BF",LeftUpVectorBar:"\u2958",LeftVector:"\u21BC",LeftVectorBar:"\u2952",lEg:"\u2A8B",leg:"\u22DA",leq:"\u2264",leqq:"\u2266",leqslant:"\u2A7D",les:"\u2A7D",lescc:"\u2AA8",lesdot:"\u2A7F",lesdoto:"\u2A81",lesdotor:"\u2A83",lesg:"\u22DA\uFE00",lesges:"\u2A93",lessapprox:"\u2A85",lessdot:"\u22D6",lesseqgtr:"\u22DA",lesseqqgtr:"\u2A8B",LessEqualGreater:"\u22DA",LessFullEqual:"\u2266",LessGreater:"\u2276",lessgtr:"\u2276",LessLess:"\u2AA1",lesssim:"\u2272",LessSlantEqual:"\u2A7D",LessTilde:"\u2272",lfisht:"\u297C",lfloor:"\u230A",Lfr:"\u{1D50F}",lfr:"\u{1D529}",lg:"\u2276",lgE:"\u2A91",lHar:"\u2962",lhard:"\u21BD",lharu:"\u21BC",lharul:"\u296A",lhblk:"\u2584",LJcy:"\u0409",ljcy:"\u0459",Ll:"\u22D8",ll:"\u226A",llarr:"\u21C7",llcorner:"\u231E",Lleftarrow:"\u21DA",llhard:"\u296B",lltri:"\u25FA",Lmidot:"\u013F",lmidot:"\u0140",lmoust:"\u23B0",lmoustache:"\u23B0",lnap:"\u2A89",lnapprox:"\u2A89",lnE:"\u2268",lne:"\u2A87",lneq:"\u2A87",lneqq:"\u2268",lnsim:"\u22E6",loang:"\u27EC",loarr:"\u21FD",lobrk:"\u27E6",LongLeftArrow:"\u27F5",Longleftarrow:"\u27F8",longleftarrow:"\u27F5",LongLeftRightArrow:"\u27F7",Longleftrightarrow:"\u27FA",longleftrightarrow:"\u27F7",longmapsto:"\u27FC",LongRightArrow:"\u27F6",Longrightarrow:"\u27F9",longrightarrow:"\u27F6",looparrowleft:"\u21AB",looparrowright:"\u21AC",lopar:"\u2985",Lopf:"\u{1D543}",lopf:"\u{1D55D}",loplus:"\u2A2D",lotimes:"\u2A34",lowast:"\u2217",lowbar:"_",LowerLeftArrow:"\u2199",LowerRightArrow:"\u2198",loz:"\u25CA",lozenge:"\u25CA",lozf:"\u29EB",lpar:"(",lparlt:"\u2993",lrarr:"\u21C6",lrcorner:"\u231F",lrhar:"\u21CB",lrhard:"\u296D",lrm:"\u200E",lrtri:"\u22BF",lsaquo:"\u2039",Lscr:"\u2112",lscr:"\u{1D4C1}",Lsh:"\u21B0",lsh:"\u21B0",lsim:"\u2272",lsime:"\u2A8D",lsimg:"\u2A8F",lsqb:"[",lsquo:"\u2018",lsquor:"\u201A",Lstrok:"\u0141",lstrok:"\u0142",Lt:"\u226A",LT:"<",lt:"<",ltcc:"\u2AA6",ltcir:"\u2A79",ltdot:"\u22D6",lthree:"\u22CB",ltimes:"\u22C9",ltlarr:"\u2976",ltquest:"\u2A7B",ltri:"\u25C3",ltrie:"\u22B4",ltrif:"\u25C2",ltrPar:"\u2996",lurdshar:"\u294A",luruhar:"\u2966",lvertneqq:"\u2268\uFE00",lvnE:"\u2268\uFE00",macr:"\xAF",male:"\u2642",malt:"\u2720",maltese:"\u2720",Map:"\u2905",map:"\u21A6",mapsto:"\u21A6",mapstodown:"\u21A7",mapstoleft:"\u21A4",mapstoup:"\u21A5",marker:"\u25AE",mcomma:"\u2A29",Mcy:"\u041C",mcy:"\u043C",mdash:"\u2014",mDDot:"\u223A",measuredangle:"\u2221",MediumSpace:"\u205F",Mellintrf:"\u2133",Mfr:"\u{1D510}",mfr:"\u{1D52A}",mho:"\u2127",micro:"\xB5",mid:"\u2223",midast:"*",midcir:"\u2AF0",middot:"\xB7",minus:"\u2212",minusb:"\u229F",minusd:"\u2238",minusdu:"\u2A2A",MinusPlus:"\u2213",mlcp:"\u2ADB",mldr:"\u2026",mnplus:"\u2213",models:"\u22A7",Mopf:"\u{1D544}",mopf:"\u{1D55E}",mp:"\u2213",Mscr:"\u2133",mscr:"\u{1D4C2}",mstpos:"\u223E",Mu:"\u039C",mu:"\u03BC",multimap:"\u22B8",mumap:"\u22B8",nabla:"\u2207",Nacute:"\u0143",nacute:"\u0144",nang:"\u2220\u20D2",nap:"\u2249",napE:"\u2A70\u0338",napid:"\u224B\u0338",napos:"\u0149",napprox:"\u2249",natur:"\u266E",natural:"\u266E",naturals:"\u2115",nbsp:"\xA0",nbump:"\u224E\u0338",nbumpe:"\u224F\u0338",ncap:"\u2A43",Ncaron:"\u0147",ncaron:"\u0148",Ncedil:"\u0145",ncedil:"\u0146",ncong:"\u2247",ncongdot:"\u2A6D\u0338",ncup:"\u2A42",Ncy:"\u041D",ncy:"\u043D",ndash:"\u2013",ne:"\u2260",nearhk:"\u2924",neArr:"\u21D7",nearr:"\u2197",nearrow:"\u2197",nedot:"\u2250\u0338",NegativeMediumSpace:"\u200B",NegativeThickSpace:"\u200B",NegativeThinSpace:"\u200B",NegativeVeryThinSpace:"\u200B",nequiv:"\u2262",nesear:"\u2928",nesim:"\u2242\u0338",NestedGreaterGreater:"\u226B",NestedLessLess:"\u226A",NewLine:`
1090
- `,nexist:"\u2204",nexists:"\u2204",Nfr:"\u{1D511}",nfr:"\u{1D52B}",ngE:"\u2267\u0338",nge:"\u2271",ngeq:"\u2271",ngeqq:"\u2267\u0338",ngeqslant:"\u2A7E\u0338",nges:"\u2A7E\u0338",nGg:"\u22D9\u0338",ngsim:"\u2275",nGt:"\u226B\u20D2",ngt:"\u226F",ngtr:"\u226F",nGtv:"\u226B\u0338",nhArr:"\u21CE",nharr:"\u21AE",nhpar:"\u2AF2",ni:"\u220B",nis:"\u22FC",nisd:"\u22FA",niv:"\u220B",NJcy:"\u040A",njcy:"\u045A",nlArr:"\u21CD",nlarr:"\u219A",nldr:"\u2025",nlE:"\u2266\u0338",nle:"\u2270",nLeftarrow:"\u21CD",nleftarrow:"\u219A",nLeftrightarrow:"\u21CE",nleftrightarrow:"\u21AE",nleq:"\u2270",nleqq:"\u2266\u0338",nleqslant:"\u2A7D\u0338",nles:"\u2A7D\u0338",nless:"\u226E",nLl:"\u22D8\u0338",nlsim:"\u2274",nLt:"\u226A\u20D2",nlt:"\u226E",nltri:"\u22EA",nltrie:"\u22EC",nLtv:"\u226A\u0338",nmid:"\u2224",NoBreak:"\u2060",NonBreakingSpace:"\xA0",Nopf:"\u2115",nopf:"\u{1D55F}",Not:"\u2AEC",not:"\xAC",NotCongruent:"\u2262",NotCupCap:"\u226D",NotDoubleVerticalBar:"\u2226",NotElement:"\u2209",NotEqual:"\u2260",NotEqualTilde:"\u2242\u0338",NotExists:"\u2204",NotGreater:"\u226F",NotGreaterEqual:"\u2271",NotGreaterFullEqual:"\u2267\u0338",NotGreaterGreater:"\u226B\u0338",NotGreaterLess:"\u2279",NotGreaterSlantEqual:"\u2A7E\u0338",NotGreaterTilde:"\u2275",NotHumpDownHump:"\u224E\u0338",NotHumpEqual:"\u224F\u0338",notin:"\u2209",notindot:"\u22F5\u0338",notinE:"\u22F9\u0338",notinva:"\u2209",notinvb:"\u22F7",notinvc:"\u22F6",NotLeftTriangle:"\u22EA",NotLeftTriangleBar:"\u29CF\u0338",NotLeftTriangleEqual:"\u22EC",NotLess:"\u226E",NotLessEqual:"\u2270",NotLessGreater:"\u2278",NotLessLess:"\u226A\u0338",NotLessSlantEqual:"\u2A7D\u0338",NotLessTilde:"\u2274",NotNestedGreaterGreater:"\u2AA2\u0338",NotNestedLessLess:"\u2AA1\u0338",notni:"\u220C",notniva:"\u220C",notnivb:"\u22FE",notnivc:"\u22FD",NotPrecedes:"\u2280",NotPrecedesEqual:"\u2AAF\u0338",NotPrecedesSlantEqual:"\u22E0",NotReverseElement:"\u220C",NotRightTriangle:"\u22EB",NotRightTriangleBar:"\u29D0\u0338",NotRightTriangleEqual:"\u22ED",NotSquareSubset:"\u228F\u0338",NotSquareSubsetEqual:"\u22E2",NotSquareSuperset:"\u2290\u0338",NotSquareSupersetEqual:"\u22E3",NotSubset:"\u2282\u20D2",NotSubsetEqual:"\u2288",NotSucceeds:"\u2281",NotSucceedsEqual:"\u2AB0\u0338",NotSucceedsSlantEqual:"\u22E1",NotSucceedsTilde:"\u227F\u0338",NotSuperset:"\u2283\u20D2",NotSupersetEqual:"\u2289",NotTilde:"\u2241",NotTildeEqual:"\u2244",NotTildeFullEqual:"\u2247",NotTildeTilde:"\u2249",NotVerticalBar:"\u2224",npar:"\u2226",nparallel:"\u2226",nparsl:"\u2AFD\u20E5",npart:"\u2202\u0338",npolint:"\u2A14",npr:"\u2280",nprcue:"\u22E0",npre:"\u2AAF\u0338",nprec:"\u2280",npreceq:"\u2AAF\u0338",nrArr:"\u21CF",nrarr:"\u219B",nrarrc:"\u2933\u0338",nrarrw:"\u219D\u0338",nRightarrow:"\u21CF",nrightarrow:"\u219B",nrtri:"\u22EB",nrtrie:"\u22ED",nsc:"\u2281",nsccue:"\u22E1",nsce:"\u2AB0\u0338",Nscr:"\u{1D4A9}",nscr:"\u{1D4C3}",nshortmid:"\u2224",nshortparallel:"\u2226",nsim:"\u2241",nsime:"\u2244",nsimeq:"\u2244",nsmid:"\u2224",nspar:"\u2226",nsqsube:"\u22E2",nsqsupe:"\u22E3",nsub:"\u2284",nsubE:"\u2AC5\u0338",nsube:"\u2288",nsubset:"\u2282\u20D2",nsubseteq:"\u2288",nsubseteqq:"\u2AC5\u0338",nsucc:"\u2281",nsucceq:"\u2AB0\u0338",nsup:"\u2285",nsupE:"\u2AC6\u0338",nsupe:"\u2289",nsupset:"\u2283\u20D2",nsupseteq:"\u2289",nsupseteqq:"\u2AC6\u0338",ntgl:"\u2279",Ntilde:"\xD1",ntilde:"\xF1",ntlg:"\u2278",ntriangleleft:"\u22EA",ntrianglelefteq:"\u22EC",ntriangleright:"\u22EB",ntrianglerighteq:"\u22ED",Nu:"\u039D",nu:"\u03BD",num:"#",numero:"\u2116",numsp:"\u2007",nvap:"\u224D\u20D2",nVDash:"\u22AF",nVdash:"\u22AE",nvDash:"\u22AD",nvdash:"\u22AC",nvge:"\u2265\u20D2",nvgt:">\u20D2",nvHarr:"\u2904",nvinfin:"\u29DE",nvlArr:"\u2902",nvle:"\u2264\u20D2",nvlt:"<\u20D2",nvltrie:"\u22B4\u20D2",nvrArr:"\u2903",nvrtrie:"\u22B5\u20D2",nvsim:"\u223C\u20D2",nwarhk:"\u2923",nwArr:"\u21D6",nwarr:"\u2196",nwarrow:"\u2196",nwnear:"\u2927",Oacute:"\xD3",oacute:"\xF3",oast:"\u229B",ocir:"\u229A",Ocirc:"\xD4",ocirc:"\xF4",Ocy:"\u041E",ocy:"\u043E",odash:"\u229D",Odblac:"\u0150",odblac:"\u0151",odiv:"\u2A38",odot:"\u2299",odsold:"\u29BC",OElig:"\u0152",oelig:"\u0153",ofcir:"\u29BF",Ofr:"\u{1D512}",ofr:"\u{1D52C}",ogon:"\u02DB",Ograve:"\xD2",ograve:"\xF2",ogt:"\u29C1",ohbar:"\u29B5",ohm:"\u03A9",oint:"\u222E",olarr:"\u21BA",olcir:"\u29BE",olcross:"\u29BB",oline:"\u203E",olt:"\u29C0",Omacr:"\u014C",omacr:"\u014D",Omega:"\u03A9",omega:"\u03C9",Omicron:"\u039F",omicron:"\u03BF",omid:"\u29B6",ominus:"\u2296",Oopf:"\u{1D546}",oopf:"\u{1D560}",opar:"\u29B7",OpenCurlyDoubleQuote:"\u201C",OpenCurlyQuote:"\u2018",operp:"\u29B9",oplus:"\u2295",Or:"\u2A54",or:"\u2228",orarr:"\u21BB",ord:"\u2A5D",order:"\u2134",orderof:"\u2134",ordf:"\xAA",ordm:"\xBA",origof:"\u22B6",oror:"\u2A56",orslope:"\u2A57",orv:"\u2A5B",oS:"\u24C8",Oscr:"\u{1D4AA}",oscr:"\u2134",Oslash:"\xD8",oslash:"\xF8",osol:"\u2298",Otilde:"\xD5",otilde:"\xF5",Otimes:"\u2A37",otimes:"\u2297",otimesas:"\u2A36",Ouml:"\xD6",ouml:"\xF6",ovbar:"\u233D",OverBar:"\u203E",OverBrace:"\u23DE",OverBracket:"\u23B4",OverParenthesis:"\u23DC",par:"\u2225",para:"\xB6",parallel:"\u2225",parsim:"\u2AF3",parsl:"\u2AFD",part:"\u2202",PartialD:"\u2202",Pcy:"\u041F",pcy:"\u043F",percnt:"%",period:".",permil:"\u2030",perp:"\u22A5",pertenk:"\u2031",Pfr:"\u{1D513}",pfr:"\u{1D52D}",Phi:"\u03A6",phi:"\u03C6",phiv:"\u03D5",phmmat:"\u2133",phone:"\u260E",Pi:"\u03A0",pi:"\u03C0",pitchfork:"\u22D4",piv:"\u03D6",planck:"\u210F",planckh:"\u210E",plankv:"\u210F",plus:"+",plusacir:"\u2A23",plusb:"\u229E",pluscir:"\u2A22",plusdo:"\u2214",plusdu:"\u2A25",pluse:"\u2A72",PlusMinus:"\xB1",plusmn:"\xB1",plussim:"\u2A26",plustwo:"\u2A27",pm:"\xB1",Poincareplane:"\u210C",pointint:"\u2A15",Popf:"\u2119",popf:"\u{1D561}",pound:"\xA3",Pr:"\u2ABB",pr:"\u227A",prap:"\u2AB7",prcue:"\u227C",prE:"\u2AB3",pre:"\u2AAF",prec:"\u227A",precapprox:"\u2AB7",preccurlyeq:"\u227C",Precedes:"\u227A",PrecedesEqual:"\u2AAF",PrecedesSlantEqual:"\u227C",PrecedesTilde:"\u227E",preceq:"\u2AAF",precnapprox:"\u2AB9",precneqq:"\u2AB5",precnsim:"\u22E8",precsim:"\u227E",Prime:"\u2033",prime:"\u2032",primes:"\u2119",prnap:"\u2AB9",prnE:"\u2AB5",prnsim:"\u22E8",prod:"\u220F",Product:"\u220F",profalar:"\u232E",profline:"\u2312",profsurf:"\u2313",prop:"\u221D",Proportion:"\u2237",Proportional:"\u221D",propto:"\u221D",prsim:"\u227E",prurel:"\u22B0",Pscr:"\u{1D4AB}",pscr:"\u{1D4C5}",Psi:"\u03A8",psi:"\u03C8",puncsp:"\u2008",Qfr:"\u{1D514}",qfr:"\u{1D52E}",qint:"\u2A0C",Qopf:"\u211A",qopf:"\u{1D562}",qprime:"\u2057",Qscr:"\u{1D4AC}",qscr:"\u{1D4C6}",quaternions:"\u210D",quatint:"\u2A16",quest:"?",questeq:"\u225F",QUOT:'"',quot:'"',rAarr:"\u21DB",race:"\u223D\u0331",Racute:"\u0154",racute:"\u0155",radic:"\u221A",raemptyv:"\u29B3",Rang:"\u27EB",rang:"\u27E9",rangd:"\u2992",range:"\u29A5",rangle:"\u27E9",raquo:"\xBB",Rarr:"\u21A0",rArr:"\u21D2",rarr:"\u2192",rarrap:"\u2975",rarrb:"\u21E5",rarrbfs:"\u2920",rarrc:"\u2933",rarrfs:"\u291E",rarrhk:"\u21AA",rarrlp:"\u21AC",rarrpl:"\u2945",rarrsim:"\u2974",Rarrtl:"\u2916",rarrtl:"\u21A3",rarrw:"\u219D",rAtail:"\u291C",ratail:"\u291A",ratio:"\u2236",rationals:"\u211A",RBarr:"\u2910",rBarr:"\u290F",rbarr:"\u290D",rbbrk:"\u2773",rbrace:"}",rbrack:"]",rbrke:"\u298C",rbrksld:"\u298E",rbrkslu:"\u2990",Rcaron:"\u0158",rcaron:"\u0159",Rcedil:"\u0156",rcedil:"\u0157",rceil:"\u2309",rcub:"}",Rcy:"\u0420",rcy:"\u0440",rdca:"\u2937",rdldhar:"\u2969",rdquo:"\u201D",rdquor:"\u201D",rdsh:"\u21B3",Re:"\u211C",real:"\u211C",realine:"\u211B",realpart:"\u211C",reals:"\u211D",rect:"\u25AD",REG:"\xAE",reg:"\xAE",ReverseElement:"\u220B",ReverseEquilibrium:"\u21CB",ReverseUpEquilibrium:"\u296F",rfisht:"\u297D",rfloor:"\u230B",Rfr:"\u211C",rfr:"\u{1D52F}",rHar:"\u2964",rhard:"\u21C1",rharu:"\u21C0",rharul:"\u296C",Rho:"\u03A1",rho:"\u03C1",rhov:"\u03F1",RightAngleBracket:"\u27E9",RightArrow:"\u2192",Rightarrow:"\u21D2",rightarrow:"\u2192",RightArrowBar:"\u21E5",RightArrowLeftArrow:"\u21C4",rightarrowtail:"\u21A3",RightCeiling:"\u2309",RightDoubleBracket:"\u27E7",RightDownTeeVector:"\u295D",RightDownVector:"\u21C2",RightDownVectorBar:"\u2955",RightFloor:"\u230B",rightharpoondown:"\u21C1",rightharpoonup:"\u21C0",rightleftarrows:"\u21C4",rightleftharpoons:"\u21CC",rightrightarrows:"\u21C9",rightsquigarrow:"\u219D",RightTee:"\u22A2",RightTeeArrow:"\u21A6",RightTeeVector:"\u295B",rightthreetimes:"\u22CC",RightTriangle:"\u22B3",RightTriangleBar:"\u29D0",RightTriangleEqual:"\u22B5",RightUpDownVector:"\u294F",RightUpTeeVector:"\u295C",RightUpVector:"\u21BE",RightUpVectorBar:"\u2954",RightVector:"\u21C0",RightVectorBar:"\u2953",ring:"\u02DA",risingdotseq:"\u2253",rlarr:"\u21C4",rlhar:"\u21CC",rlm:"\u200F",rmoust:"\u23B1",rmoustache:"\u23B1",rnmid:"\u2AEE",roang:"\u27ED",roarr:"\u21FE",robrk:"\u27E7",ropar:"\u2986",Ropf:"\u211D",ropf:"\u{1D563}",roplus:"\u2A2E",rotimes:"\u2A35",RoundImplies:"\u2970",rpar:")",rpargt:"\u2994",rppolint:"\u2A12",rrarr:"\u21C9",Rrightarrow:"\u21DB",rsaquo:"\u203A",Rscr:"\u211B",rscr:"\u{1D4C7}",Rsh:"\u21B1",rsh:"\u21B1",rsqb:"]",rsquo:"\u2019",rsquor:"\u2019",rthree:"\u22CC",rtimes:"\u22CA",rtri:"\u25B9",rtrie:"\u22B5",rtrif:"\u25B8",rtriltri:"\u29CE",RuleDelayed:"\u29F4",ruluhar:"\u2968",rx:"\u211E",Sacute:"\u015A",sacute:"\u015B",sbquo:"\u201A",Sc:"\u2ABC",sc:"\u227B",scap:"\u2AB8",Scaron:"\u0160",scaron:"\u0161",sccue:"\u227D",scE:"\u2AB4",sce:"\u2AB0",Scedil:"\u015E",scedil:"\u015F",Scirc:"\u015C",scirc:"\u015D",scnap:"\u2ABA",scnE:"\u2AB6",scnsim:"\u22E9",scpolint:"\u2A13",scsim:"\u227F",Scy:"\u0421",scy:"\u0441",sdot:"\u22C5",sdotb:"\u22A1",sdote:"\u2A66",searhk:"\u2925",seArr:"\u21D8",searr:"\u2198",searrow:"\u2198",sect:"\xA7",semi:";",seswar:"\u2929",setminus:"\u2216",setmn:"\u2216",sext:"\u2736",Sfr:"\u{1D516}",sfr:"\u{1D530}",sfrown:"\u2322",sharp:"\u266F",SHCHcy:"\u0429",shchcy:"\u0449",SHcy:"\u0428",shcy:"\u0448",ShortDownArrow:"\u2193",ShortLeftArrow:"\u2190",shortmid:"\u2223",shortparallel:"\u2225",ShortRightArrow:"\u2192",ShortUpArrow:"\u2191",shy:"\xAD",Sigma:"\u03A3",sigma:"\u03C3",sigmaf:"\u03C2",sigmav:"\u03C2",sim:"\u223C",simdot:"\u2A6A",sime:"\u2243",simeq:"\u2243",simg:"\u2A9E",simgE:"\u2AA0",siml:"\u2A9D",simlE:"\u2A9F",simne:"\u2246",simplus:"\u2A24",simrarr:"\u2972",slarr:"\u2190",SmallCircle:"\u2218",smallsetminus:"\u2216",smashp:"\u2A33",smeparsl:"\u29E4",smid:"\u2223",smile:"\u2323",smt:"\u2AAA",smte:"\u2AAC",smtes:"\u2AAC\uFE00",SOFTcy:"\u042C",softcy:"\u044C",sol:"/",solb:"\u29C4",solbar:"\u233F",Sopf:"\u{1D54A}",sopf:"\u{1D564}",spades:"\u2660",spadesuit:"\u2660",spar:"\u2225",sqcap:"\u2293",sqcaps:"\u2293\uFE00",sqcup:"\u2294",sqcups:"\u2294\uFE00",Sqrt:"\u221A",sqsub:"\u228F",sqsube:"\u2291",sqsubset:"\u228F",sqsubseteq:"\u2291",sqsup:"\u2290",sqsupe:"\u2292",sqsupset:"\u2290",sqsupseteq:"\u2292",squ:"\u25A1",Square:"\u25A1",square:"\u25A1",SquareIntersection:"\u2293",SquareSubset:"\u228F",SquareSubsetEqual:"\u2291",SquareSuperset:"\u2290",SquareSupersetEqual:"\u2292",SquareUnion:"\u2294",squarf:"\u25AA",squf:"\u25AA",srarr:"\u2192",Sscr:"\u{1D4AE}",sscr:"\u{1D4C8}",ssetmn:"\u2216",ssmile:"\u2323",sstarf:"\u22C6",Star:"\u22C6",star:"\u2606",starf:"\u2605",straightepsilon:"\u03F5",straightphi:"\u03D5",strns:"\xAF",Sub:"\u22D0",sub:"\u2282",subdot:"\u2ABD",subE:"\u2AC5",sube:"\u2286",subedot:"\u2AC3",submult:"\u2AC1",subnE:"\u2ACB",subne:"\u228A",subplus:"\u2ABF",subrarr:"\u2979",Subset:"\u22D0",subset:"\u2282",subseteq:"\u2286",subseteqq:"\u2AC5",SubsetEqual:"\u2286",subsetneq:"\u228A",subsetneqq:"\u2ACB",subsim:"\u2AC7",subsub:"\u2AD5",subsup:"\u2AD3",succ:"\u227B",succapprox:"\u2AB8",succcurlyeq:"\u227D",Succeeds:"\u227B",SucceedsEqual:"\u2AB0",SucceedsSlantEqual:"\u227D",SucceedsTilde:"\u227F",succeq:"\u2AB0",succnapprox:"\u2ABA",succneqq:"\u2AB6",succnsim:"\u22E9",succsim:"\u227F",SuchThat:"\u220B",Sum:"\u2211",sum:"\u2211",sung:"\u266A",Sup:"\u22D1",sup:"\u2283",sup1:"\xB9",sup2:"\xB2",sup3:"\xB3",supdot:"\u2ABE",supdsub:"\u2AD8",supE:"\u2AC6",supe:"\u2287",supedot:"\u2AC4",Superset:"\u2283",SupersetEqual:"\u2287",suphsol:"\u27C9",suphsub:"\u2AD7",suplarr:"\u297B",supmult:"\u2AC2",supnE:"\u2ACC",supne:"\u228B",supplus:"\u2AC0",Supset:"\u22D1",supset:"\u2283",supseteq:"\u2287",supseteqq:"\u2AC6",supsetneq:"\u228B",supsetneqq:"\u2ACC",supsim:"\u2AC8",supsub:"\u2AD4",supsup:"\u2AD6",swarhk:"\u2926",swArr:"\u21D9",swarr:"\u2199",swarrow:"\u2199",swnwar:"\u292A",szlig:"\xDF",Tab:" ",target:"\u2316",Tau:"\u03A4",tau:"\u03C4",tbrk:"\u23B4",Tcaron:"\u0164",tcaron:"\u0165",Tcedil:"\u0162",tcedil:"\u0163",Tcy:"\u0422",tcy:"\u0442",tdot:"\u20DB",telrec:"\u2315",Tfr:"\u{1D517}",tfr:"\u{1D531}",there4:"\u2234",Therefore:"\u2234",therefore:"\u2234",Theta:"\u0398",theta:"\u03B8",thetasym:"\u03D1",thetav:"\u03D1",thickapprox:"\u2248",thicksim:"\u223C",ThickSpace:"\u205F\u200A",thinsp:"\u2009",ThinSpace:"\u2009",thkap:"\u2248",thksim:"\u223C",THORN:"\xDE",thorn:"\xFE",Tilde:"\u223C",tilde:"\u02DC",TildeEqual:"\u2243",TildeFullEqual:"\u2245",TildeTilde:"\u2248",times:"\xD7",timesb:"\u22A0",timesbar:"\u2A31",timesd:"\u2A30",tint:"\u222D",toea:"\u2928",top:"\u22A4",topbot:"\u2336",topcir:"\u2AF1",Topf:"\u{1D54B}",topf:"\u{1D565}",topfork:"\u2ADA",tosa:"\u2929",tprime:"\u2034",TRADE:"\u2122",trade:"\u2122",triangle:"\u25B5",triangledown:"\u25BF",triangleleft:"\u25C3",trianglelefteq:"\u22B4",triangleq:"\u225C",triangleright:"\u25B9",trianglerighteq:"\u22B5",tridot:"\u25EC",trie:"\u225C",triminus:"\u2A3A",TripleDot:"\u20DB",triplus:"\u2A39",trisb:"\u29CD",tritime:"\u2A3B",trpezium:"\u23E2",Tscr:"\u{1D4AF}",tscr:"\u{1D4C9}",TScy:"\u0426",tscy:"\u0446",TSHcy:"\u040B",tshcy:"\u045B",Tstrok:"\u0166",tstrok:"\u0167",twixt:"\u226C",twoheadleftarrow:"\u219E",twoheadrightarrow:"\u21A0",Uacute:"\xDA",uacute:"\xFA",Uarr:"\u219F",uArr:"\u21D1",uarr:"\u2191",Uarrocir:"\u2949",Ubrcy:"\u040E",ubrcy:"\u045E",Ubreve:"\u016C",ubreve:"\u016D",Ucirc:"\xDB",ucirc:"\xFB",Ucy:"\u0423",ucy:"\u0443",udarr:"\u21C5",Udblac:"\u0170",udblac:"\u0171",udhar:"\u296E",ufisht:"\u297E",Ufr:"\u{1D518}",ufr:"\u{1D532}",Ugrave:"\xD9",ugrave:"\xF9",uHar:"\u2963",uharl:"\u21BF",uharr:"\u21BE",uhblk:"\u2580",ulcorn:"\u231C",ulcorner:"\u231C",ulcrop:"\u230F",ultri:"\u25F8",Umacr:"\u016A",umacr:"\u016B",uml:"\xA8",UnderBar:"_",UnderBrace:"\u23DF",UnderBracket:"\u23B5",UnderParenthesis:"\u23DD",Union:"\u22C3",UnionPlus:"\u228E",Uogon:"\u0172",uogon:"\u0173",Uopf:"\u{1D54C}",uopf:"\u{1D566}",UpArrow:"\u2191",Uparrow:"\u21D1",uparrow:"\u2191",UpArrowBar:"\u2912",UpArrowDownArrow:"\u21C5",UpDownArrow:"\u2195",Updownarrow:"\u21D5",updownarrow:"\u2195",UpEquilibrium:"\u296E",upharpoonleft:"\u21BF",upharpoonright:"\u21BE",uplus:"\u228E",UpperLeftArrow:"\u2196",UpperRightArrow:"\u2197",Upsi:"\u03D2",upsi:"\u03C5",upsih:"\u03D2",Upsilon:"\u03A5",upsilon:"\u03C5",UpTee:"\u22A5",UpTeeArrow:"\u21A5",upuparrows:"\u21C8",urcorn:"\u231D",urcorner:"\u231D",urcrop:"\u230E",Uring:"\u016E",uring:"\u016F",urtri:"\u25F9",Uscr:"\u{1D4B0}",uscr:"\u{1D4CA}",utdot:"\u22F0",Utilde:"\u0168",utilde:"\u0169",utri:"\u25B5",utrif:"\u25B4",uuarr:"\u21C8",Uuml:"\xDC",uuml:"\xFC",uwangle:"\u29A7",vangrt:"\u299C",varepsilon:"\u03F5",varkappa:"\u03F0",varnothing:"\u2205",varphi:"\u03D5",varpi:"\u03D6",varpropto:"\u221D",vArr:"\u21D5",varr:"\u2195",varrho:"\u03F1",varsigma:"\u03C2",varsubsetneq:"\u228A\uFE00",varsubsetneqq:"\u2ACB\uFE00",varsupsetneq:"\u228B\uFE00",varsupsetneqq:"\u2ACC\uFE00",vartheta:"\u03D1",vartriangleleft:"\u22B2",vartriangleright:"\u22B3",Vbar:"\u2AEB",vBar:"\u2AE8",vBarv:"\u2AE9",Vcy:"\u0412",vcy:"\u0432",VDash:"\u22AB",Vdash:"\u22A9",vDash:"\u22A8",vdash:"\u22A2",Vdashl:"\u2AE6",Vee:"\u22C1",vee:"\u2228",veebar:"\u22BB",veeeq:"\u225A",vellip:"\u22EE",Verbar:"\u2016",verbar:"|",Vert:"\u2016",vert:"|",VerticalBar:"\u2223",VerticalLine:"|",VerticalSeparator:"\u2758",VerticalTilde:"\u2240",VeryThinSpace:"\u200A",Vfr:"\u{1D519}",vfr:"\u{1D533}",vltri:"\u22B2",vnsub:"\u2282\u20D2",vnsup:"\u2283\u20D2",Vopf:"\u{1D54D}",vopf:"\u{1D567}",vprop:"\u221D",vrtri:"\u22B3",Vscr:"\u{1D4B1}",vscr:"\u{1D4CB}",vsubnE:"\u2ACB\uFE00",vsubne:"\u228A\uFE00",vsupnE:"\u2ACC\uFE00",vsupne:"\u228B\uFE00",Vvdash:"\u22AA",vzigzag:"\u299A",Wcirc:"\u0174",wcirc:"\u0175",wedbar:"\u2A5F",Wedge:"\u22C0",wedge:"\u2227",wedgeq:"\u2259",weierp:"\u2118",Wfr:"\u{1D51A}",wfr:"\u{1D534}",Wopf:"\u{1D54E}",wopf:"\u{1D568}",wp:"\u2118",wr:"\u2240",wreath:"\u2240",Wscr:"\u{1D4B2}",wscr:"\u{1D4CC}",xcap:"\u22C2",xcirc:"\u25EF",xcup:"\u22C3",xdtri:"\u25BD",Xfr:"\u{1D51B}",xfr:"\u{1D535}",xhArr:"\u27FA",xharr:"\u27F7",Xi:"\u039E",xi:"\u03BE",xlArr:"\u27F8",xlarr:"\u27F5",xmap:"\u27FC",xnis:"\u22FB",xodot:"\u2A00",Xopf:"\u{1D54F}",xopf:"\u{1D569}",xoplus:"\u2A01",xotime:"\u2A02",xrArr:"\u27F9",xrarr:"\u27F6",Xscr:"\u{1D4B3}",xscr:"\u{1D4CD}",xsqcup:"\u2A06",xuplus:"\u2A04",xutri:"\u25B3",xvee:"\u22C1",xwedge:"\u22C0",Yacute:"\xDD",yacute:"\xFD",YAcy:"\u042F",yacy:"\u044F",Ycirc:"\u0176",ycirc:"\u0177",Ycy:"\u042B",ycy:"\u044B",yen:"\xA5",Yfr:"\u{1D51C}",yfr:"\u{1D536}",YIcy:"\u0407",yicy:"\u0457",Yopf:"\u{1D550}",yopf:"\u{1D56A}",Yscr:"\u{1D4B4}",yscr:"\u{1D4CE}",YUcy:"\u042E",yucy:"\u044E",Yuml:"\u0178",yuml:"\xFF",Zacute:"\u0179",zacute:"\u017A",Zcaron:"\u017D",zcaron:"\u017E",Zcy:"\u0417",zcy:"\u0437",Zdot:"\u017B",zdot:"\u017C",zeetrf:"\u2128",ZeroWidthSpace:"\u200B",Zeta:"\u0396",zeta:"\u03B6",Zfr:"\u2128",zfr:"\u{1D537}",ZHcy:"\u0416",zhcy:"\u0436",zigrarr:"\u21DD",Zopf:"\u2124",zopf:"\u{1D56B}",Zscr:"\u{1D4B5}",zscr:"\u{1D4CF}",zwj:"\u200D",zwnj:"\u200C"});sc.entityMap=sc.HTML_ENTITIES});var CE=Fr(mg=>{var cc=Za().NAMESPACE,fg=/[A-Z_a-z\xC0-\xD6\xD8-\xF6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,_E=new RegExp("[\\-\\.0-9"+fg.source.slice(1,-1)+"\\u00B7\\u0300-\\u036F\\u203F-\\u2040]"),bE=new RegExp("^"+fg.source+_E.source+"*(?::"+fg.source+_E.source+"*)?$"),nc=0,ni=1,wn=2,oc=3,Sn=4,vn=5,ac=6,gh=7;function Cn(r,e){this.message=r,this.locator=e,Error.captureStackTrace&&Error.captureStackTrace(this,Cn)}Cn.prototype=new Error;Cn.prototype.name=Cn.name;function wE(){}wE.prototype={parse:function(r,e,t){var i=this.domBuilder;i.startDocument(),SE(e,e={}),jR(r,e,t,i,this.errorHandler),i.endDocument()}};function jR(r,e,t,i,s){function n(U){if(U>65535){U-=65536;var H=55296+(U>>10),wh=56320+(U&1023);return String.fromCharCode(H,wh)}else return String.fromCharCode(U)}function o(U){var H=U.slice(1,-1);return Object.hasOwnProperty.call(t,H)?t[H]:H.charAt(0)==="#"?n(parseInt(H.substr(1).replace("x","0x"))):(s.error("entity not found:"+U),U)}function a(U){if(U>x){var H=r.substring(x,U).replace(/&#?\w+;/g,o);f&&c(x),i.characters(H,0,U-x),x=U}}function c(U,H){for(;U>=l&&(H=h.exec(r));)u=H.index,l=u+H[0].length,f.lineNumber++;f.columnNumber=U-u+1}for(var u=0,l=0,h=/.*(?:\r\n?|\n)|.*$/g,f=i.locator,d=[{currentNSMap:e}],m={},x=0;;){try{var g=r.indexOf("<",x);if(g<0){if(!r.substr(x).match(/^\s*$/)){var _=i.doc,y=_.createTextNode(r.substr(x));_.appendChild(y),i.currentElement=y}return}switch(g>x&&a(g),r.charAt(g+1)){case"/":var k=r.indexOf(">",g+3),S=r.substring(g+2,k).replace(/[ \t\n\r]+$/g,""),T=d.pop();k<0?(S=r.substring(g+2).replace(/[\s<].*/,""),s.error("end tag name: "+S+" is not complete:"+T.tagName),k=g+1+S.length):S.match(/\s</)&&(S=S.replace(/[\s<].*/,""),s.error("end tag name: "+S+" maybe not complete"),k=g+1+S.length);var C=T.localNSMap,v=T.tagName==S,E=v||T.tagName&&T.tagName.toLowerCase()==S.toLowerCase();if(E){if(i.endElement(T.uri,T.localName,S),C)for(var D in C)Object.prototype.hasOwnProperty.call(C,D)&&i.endPrefixMapping(D);v||s.fatalError("end tag name: "+S+" is not match the current start tagName:"+T.tagName)}else d.push(T);k++;break;case"?":f&&c(g),k=ZR(r,g,i);break;case"!":f&&c(g),k=QR(r,g,i,s);break;default:f&&c(g);var A=new vE,P=d[d.length-1].currentNSMap,k=XR(r,g,A,P,o,s),G=A.length;if(!A.closed&&KR(r,k,A.tagName,m)&&(A.closed=!0,t.nbsp||s.warning("unclosed xml attribute")),f&&G){for(var j=yE(f,{}),be=0;be<G;be++){var Tt=A[be];c(Tt.offset),Tt.locator=yE(f,{})}i.locator=j,TE(A,i,P)&&d.push(A),i.locator=f}else TE(A,i,P)&&d.push(A);cc.isHTML(A.uri)&&!A.closed?k=YR(r,k,A.tagName,o,i):k++}}catch(U){if(U instanceof Cn)throw U;s.error("element parse error: "+U),k=-1}k>x?x=k:a(Math.max(g,x)+1)}}function yE(r,e){return e.lineNumber=r.lineNumber,e.columnNumber=r.columnNumber,e}function XR(r,e,t,i,s,n){function o(d,m,x){t.attributeNames.hasOwnProperty(d)&&n.fatalError("Attribute "+d+" redefined"),t.addValue(d,m.replace(/[\t\n\r]/g," ").replace(/&#?\w+;/g,s),x)}for(var a,c,u=++e,l=nc;;){var h=r.charAt(u);switch(h){case"=":if(l===ni)a=r.slice(e,u),l=oc;else if(l===wn)l=oc;else throw new Error("attribute equal must after attrName");break;case"'":case'"':if(l===oc||l===ni)if(l===ni&&(n.warning('attribute value must after "="'),a=r.slice(e,u)),e=u+1,u=r.indexOf(h,e),u>0)c=r.slice(e,u),o(a,c,e-1),l=vn;else throw new Error("attribute value no end '"+h+"' match");else if(l==Sn)c=r.slice(e,u),o(a,c,e),n.warning('attribute "'+a+'" missed start quot('+h+")!!"),e=u+1,l=vn;else throw new Error('attribute value must after "="');break;case"/":switch(l){case nc:t.setTagName(r.slice(e,u));case vn:case ac:case gh:l=gh,t.closed=!0;case Sn:case ni:break;case wn:t.closed=!0;break;default:throw new Error("attribute invalid close char('/')")}break;case"":return n.error("unexpected end of input"),l==nc&&t.setTagName(r.slice(e,u)),u;case">":switch(l){case nc:t.setTagName(r.slice(e,u));case vn:case ac:case gh:break;case Sn:case ni:c=r.slice(e,u),c.slice(-1)==="/"&&(t.closed=!0,c=c.slice(0,-1));case wn:l===wn&&(c=a),l==Sn?(n.warning('attribute "'+c+'" missed quot(")!'),o(a,c,e)):((!cc.isHTML(i[""])||!c.match(/^(?:disabled|checked|selected)$/i))&&n.warning('attribute "'+c+'" missed value!! "'+c+'" instead!!'),o(c,c,e));break;case oc:throw new Error("attribute value missed!!")}return u;case"\x80":h=" ";default:if(h<=" ")switch(l){case nc:t.setTagName(r.slice(e,u)),l=ac;break;case ni:a=r.slice(e,u),l=wn;break;case Sn:var c=r.slice(e,u);n.warning('attribute "'+c+'" missed quot(")!!'),o(a,c,e);case vn:l=ac;break}else switch(l){case wn:var f=t.tagName;(!cc.isHTML(i[""])||!a.match(/^(?:disabled|checked|selected)$/i))&&n.warning('attribute "'+a+'" missed value!! "'+a+'" instead2!!'),o(a,a,e),e=u,l=ni;break;case vn:n.warning('attribute space is required"'+a+'"!!');case ac:l=ni,e=u;break;case oc:l=Sn,e=u;break;case gh:throw new Error("elements closed character '/' and '>' must be connected to")}}u++}}function TE(r,e,t){for(var i=r.tagName,s=null,h=r.length;h--;){var n=r[h],o=n.qName,a=n.value,f=o.indexOf(":");if(f>0)var c=n.prefix=o.slice(0,f),u=o.slice(f+1),l=c==="xmlns"&&u;else u=o,c=null,l=o==="xmlns"&&"";n.localName=u,l!==!1&&(s==null&&(s={},SE(t,t={})),t[l]=s[l]=a,n.uri=cc.XMLNS,e.startPrefixMapping(l,a))}for(var h=r.length;h--;){n=r[h];var c=n.prefix;c&&(c==="xml"&&(n.uri=cc.XML),c!=="xmlns"&&(n.uri=t[c||""]))}var f=i.indexOf(":");f>0?(c=r.prefix=i.slice(0,f),u=r.localName=i.slice(f+1)):(c=null,u=r.localName=i);var d=r.uri=t[c||""];if(e.startElement(d,u,i,r),r.closed){if(e.endElement(d,u,i),s)for(c in s)Object.prototype.hasOwnProperty.call(s,c)&&e.endPrefixMapping(c)}else return r.currentNSMap=t,r.localNSMap=s,!0}function YR(r,e,t,i,s){if(/^(?:script|textarea)$/i.test(t)){var n=r.indexOf("</"+t+">",e),o=r.substring(e+1,n);if(/[&<]/.test(o))return/^script$/i.test(t)?(s.characters(o,0,o.length),n):(o=o.replace(/&#?\w+;/g,i),s.characters(o,0,o.length),n)}return e+1}function KR(r,e,t,i){var s=i[t];return s==null&&(s=r.lastIndexOf("</"+t+">"),s<e&&(s=r.lastIndexOf("</"+t)),i[t]=s),s<e}function SE(r,e){for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t])}function QR(r,e,t,i){var s=r.charAt(e+2);switch(s){case"-":if(r.charAt(e+3)==="-"){var n=r.indexOf("-->",e+4);return n>e?(t.comment(r,e+4,n-e-4),n+3):(i.error("Unclosed comment"),-1)}else return-1;default:if(r.substr(e+3,6)=="CDATA["){var n=r.indexOf("]]>",e+9);return t.startCDATA(),t.characters(r,e+9,n-e-9),t.endCDATA(),n+3}var o=JR(r,e),a=o.length;if(a>1&&/!doctype/i.test(o[0][0])){var c=o[1][0],u=!1,l=!1;a>3&&(/^public$/i.test(o[2][0])?(u=o[3][0],l=a>4&&o[4][0]):/^system$/i.test(o[2][0])&&(l=o[3][0]));var h=o[a-1];return t.startDTD(c,u,l),t.endDTD(),h.index+h[0].length}}return-1}function ZR(r,e,t){var i=r.indexOf("?>",e);if(i){var s=r.substring(e,i).match(/^<\?(\S*)\s*([\s\S]*?)\s*$/);if(s){var n=s[0].length;return t.processingInstruction(s[1],s[2]),i+2}else return-1}return-1}function vE(){this.attributeNames={}}vE.prototype={setTagName:function(r){if(!bE.test(r))throw new Error("invalid tagName:"+r);this.tagName=r},addValue:function(r,e,t){if(!bE.test(r))throw new Error("invalid attribute:"+r);this.attributeNames[r]=this.length,this[this.length++]={qName:r,value:e,offset:t}},length:0,getLocalName:function(r){return this[r].localName},getLocator:function(r){return this[r].locator},getQName:function(r){return this[r].qName},getURI:function(r){return this[r].uri},getValue:function(r){return this[r].value}};function JR(r,e){var t,i=[],s=/'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g;for(s.lastIndex=e,s.exec(r);t=s.exec(r);)if(i.push(t),t[1])return i}mg.XMLReader=wE;mg.ParseError=Cn});var DE=Fr(_h=>{var eD=Za(),tD=dg(),EE=xE(),PE=CE(),rD=tD.DOMImplementation,kE=eD.NAMESPACE,iD=PE.ParseError,sD=PE.XMLReader;function BE(r){return r.replace(/\r[\n\u0085]/g,`
1089
+ `))}var Nv=p(()=>{ul();rt();Wm();Ov()});var Ea,Lv=p(()=>{P();Nv();Ea=class{constructor(e){this._cache={},this._uniformGroupSyncHash={},this._renderer=e,this.gl=null,this._cache={}}contextChange(e){this.gl=e}updateUniformGroup(e,t,i){let s=this._renderer.shader._getProgramData(t);(!e.isStatic||e._dirtyId!==s.uniformDirtyGroups[e.uid])&&(s.uniformDirtyGroups[e.uid]=e._dirtyId,this._getUniformSyncFunction(e,t)(s.uniformData,e.uniforms,this._renderer,i))}_getUniformSyncFunction(e,t){return this._uniformGroupSyncHash[e._signature]?.[t._key]||this._createUniformSyncFunction(e,t)}_createUniformSyncFunction(e,t){let i=this._uniformGroupSyncHash[e._signature]||(this._uniformGroupSyncHash[e._signature]={}),s=this._getSignature(e,t._uniformData,"u");return this._cache[s]||(this._cache[s]=this._generateUniformsSync(e,t._uniformData)),i[t._key]=this._cache[s],i[t._key]}_generateUniformsSync(e,t){return Gv(e,t)}_getSignature(e,t,i){let s=e.uniforms,n=[`${i}-`];for(let o in s)n.push(o),t[o]&&n.push(t[o].type);return n.join("-")}destroy(){this._renderer=null,this._cache=null}};Ea.extension={type:[b.WebGLSystem],name:"uniformGroup"}});function zv(r){let e={};if(e.normal=[r.ONE,r.ONE_MINUS_SRC_ALPHA],e.add=[r.ONE,r.ONE],e.multiply=[r.DST_COLOR,r.ONE_MINUS_SRC_ALPHA,r.ONE,r.ONE_MINUS_SRC_ALPHA],e.screen=[r.ONE,r.ONE_MINUS_SRC_COLOR,r.ONE,r.ONE_MINUS_SRC_ALPHA],e.none=[0,0],e["normal-npm"]=[r.SRC_ALPHA,r.ONE_MINUS_SRC_ALPHA,r.ONE,r.ONE_MINUS_SRC_ALPHA],e["add-npm"]=[r.SRC_ALPHA,r.ONE,r.ONE,r.ONE],e["screen-npm"]=[r.SRC_ALPHA,r.ONE_MINUS_SRC_COLOR,r.ONE,r.ONE_MINUS_SRC_ALPHA],e.erase=[r.ZERO,r.ONE_MINUS_SRC_ALPHA],!(r instanceof W.get().getWebGLRenderingContext()))e.min=[r.ONE,r.ONE,r.ONE,r.ONE,r.MIN,r.MIN],e.max=[r.ONE,r.ONE,r.ONE,r.ONE,r.MAX,r.MAX];else{let i=r.getExtension("EXT_blend_minmax");i&&(e.min=[r.ONE,r.ONE,r.ONE,r.ONE,i.MIN_EXT,i.MIN_EXT],e.max=[r.ONE,r.ONE,r.ONE,r.ONE,i.MAX_EXT,i.MAX_EXT])}return e}var Vv=p(()=>{ve()});var qP,jP,XP,YP,KP,QP,Hv,Wv,$v=p(()=>{P();Ot();Vv();qP=0,jP=1,XP=2,YP=3,KP=4,QP=5,Hv=class hp{constructor(e){this._invertFrontFace=!1,this.gl=null,this.stateId=0,this.polygonOffset=0,this.blendMode="none",this._blendEq=!1,this.map=[],this.map[qP]=this.setBlend,this.map[jP]=this.setOffset,this.map[XP]=this.setCullFace,this.map[YP]=this.setDepthTest,this.map[KP]=this.setFrontFace,this.map[QP]=this.setDepthMask,this.checks=[],this.defaultState=Ae.for2d(),e.renderTarget.onRenderTargetChange.add(this)}onRenderTargetChange(e){this._invertFrontFace=!e.isRoot,this._cullFace?this.setFrontFace(this._frontFace):this._frontFaceDirty=!0}contextChange(e){this.gl=e,this.blendModesMap=zv(e),this.resetState()}set(e){if(e||(e=this.defaultState),this.stateId!==e.data){let t=this.stateId^e.data,i=0;for(;t;)t&1&&this.map[i].call(this,!!(e.data&1<<i)),t>>=1,i++;this.stateId=e.data}for(let t=0;t<this.checks.length;t++)this.checks[t](this,e)}forceState(e){e||(e=this.defaultState);for(let t=0;t<this.map.length;t++)this.map[t].call(this,!!(e.data&1<<t));for(let t=0;t<this.checks.length;t++)this.checks[t](this,e);this.stateId=e.data}setBlend(e){this._updateCheck(hp._checkBlendMode,e),this.gl[e?"enable":"disable"](this.gl.BLEND)}setOffset(e){this._updateCheck(hp._checkPolygonOffset,e),this.gl[e?"enable":"disable"](this.gl.POLYGON_OFFSET_FILL)}setDepthTest(e){this.gl[e?"enable":"disable"](this.gl.DEPTH_TEST)}setDepthMask(e){this.gl.depthMask(e)}setCullFace(e){this._cullFace=e,this.gl[e?"enable":"disable"](this.gl.CULL_FACE),this._cullFace&&this._frontFaceDirty&&this.setFrontFace(this._frontFace)}setFrontFace(e){this._frontFace=e,this._frontFaceDirty=!1;let t=this._invertFrontFace?!e:e;this._glFrontFace!==t&&(this._glFrontFace=t,this.gl.frontFace(this.gl[t?"CW":"CCW"]))}setBlendMode(e){if(this.blendModesMap[e]||(e="normal"),e===this.blendMode)return;this.blendMode=e;let t=this.blendModesMap[e],i=this.gl;t.length===2?i.blendFunc(t[0],t[1]):i.blendFuncSeparate(t[0],t[1],t[2],t[3]),t.length===6?(this._blendEq=!0,i.blendEquationSeparate(t[4],t[5])):this._blendEq&&(this._blendEq=!1,i.blendEquationSeparate(i.FUNC_ADD,i.FUNC_ADD))}setPolygonOffset(e,t){this.gl.polygonOffset(e,t)}resetState(){this._glFrontFace=!1,this._frontFace=!1,this._cullFace=!1,this._frontFaceDirty=!1,this._invertFrontFace=!1,this.gl.frontFace(this.gl.CCW),this.gl.pixelStorei(this.gl.UNPACK_FLIP_Y_WEBGL,!1),this.forceState(this.defaultState),this._blendEq=!0,this.blendMode="",this.setBlendMode("normal")}_updateCheck(e,t){let i=this.checks.indexOf(e);t&&i===-1?this.checks.push(e):!t&&i!==-1&&this.checks.splice(i,1)}static _checkBlendMode(e,t){e.setBlendMode(t.blendMode)}static _checkPolygonOffset(e,t){e.setPolygonOffset(1,t.polygonOffset)}destroy(){this.gl=null,this.checks.length=0}};Hv.extension={type:[b.WebGLSystem],name:"state"};Wv=Hv});var vl,qv=p(()=>{rp();vl=class{constructor(e){this.target=tp.TEXTURE_2D,this.texture=e,this.width=-1,this.height=-1,this.type=re.UNSIGNED_BYTE,this.internalFormat=xl.RGBA,this.format=xl.RGBA,this.samplerType=0}}});var jv,Xv=p(()=>{"use strict";jv={id:"buffer",upload(r,e,t){e.width===r.width||e.height===r.height?t.texSubImage2D(t.TEXTURE_2D,0,0,0,r.width,r.height,e.format,e.type,r.resource):t.texImage2D(e.target,0,e.internalFormat,r.width,r.height,0,e.format,e.type,r.resource),e.width=r.width,e.height=r.height}}});var ZP,Yv,Kv=p(()=>{"use strict";ZP={"bc1-rgba-unorm":!0,"bc1-rgba-unorm-srgb":!0,"bc2-rgba-unorm":!0,"bc2-rgba-unorm-srgb":!0,"bc3-rgba-unorm":!0,"bc3-rgba-unorm-srgb":!0,"bc4-r-unorm":!0,"bc4-r-snorm":!0,"bc5-rg-unorm":!0,"bc5-rg-snorm":!0,"bc6h-rgb-ufloat":!0,"bc6h-rgb-float":!0,"bc7-rgba-unorm":!0,"bc7-rgba-unorm-srgb":!0,"etc2-rgb8unorm":!0,"etc2-rgb8unorm-srgb":!0,"etc2-rgb8a1unorm":!0,"etc2-rgb8a1unorm-srgb":!0,"etc2-rgba8unorm":!0,"etc2-rgba8unorm-srgb":!0,"eac-r11unorm":!0,"eac-r11snorm":!0,"eac-rg11unorm":!0,"eac-rg11snorm":!0,"astc-4x4-unorm":!0,"astc-4x4-unorm-srgb":!0,"astc-5x4-unorm":!0,"astc-5x4-unorm-srgb":!0,"astc-5x5-unorm":!0,"astc-5x5-unorm-srgb":!0,"astc-6x5-unorm":!0,"astc-6x5-unorm-srgb":!0,"astc-6x6-unorm":!0,"astc-6x6-unorm-srgb":!0,"astc-8x5-unorm":!0,"astc-8x5-unorm-srgb":!0,"astc-8x6-unorm":!0,"astc-8x6-unorm-srgb":!0,"astc-8x8-unorm":!0,"astc-8x8-unorm-srgb":!0,"astc-10x5-unorm":!0,"astc-10x5-unorm-srgb":!0,"astc-10x6-unorm":!0,"astc-10x6-unorm-srgb":!0,"astc-10x8-unorm":!0,"astc-10x8-unorm-srgb":!0,"astc-10x10-unorm":!0,"astc-10x10-unorm-srgb":!0,"astc-12x10-unorm":!0,"astc-12x10-unorm-srgb":!0,"astc-12x12-unorm":!0,"astc-12x12-unorm-srgb":!0},Yv={id:"compressed",upload(r,e,t){t.pixelStorei(t.UNPACK_ALIGNMENT,4);let i=r.pixelWidth,s=r.pixelHeight,n=!!ZP[r.format];for(let o=0;o<r.resource.length;o++){let a=r.resource[o];n?t.compressedTexImage2D(t.TEXTURE_2D,o,e.internalFormat,i,s,0,a):t.texImage2D(t.TEXTURE_2D,o,e.internalFormat,i,s,0,e.format,e.type,a),i=Math.max(i>>1,1),s=Math.max(s>>1,1)}}}});var Cl,dp=p(()=>{"use strict";Cl={id:"image",upload(r,e,t,i){let s=e.width,n=e.height,o=r.pixelWidth,a=r.pixelHeight,c=r.resourceWidth,u=r.resourceHeight;c<o||u<a?((s!==o||n!==a)&&t.texImage2D(e.target,0,e.internalFormat,o,a,0,e.format,e.type,null),i===2?t.texSubImage2D(t.TEXTURE_2D,0,0,0,c,u,e.format,e.type,r.resource):t.texSubImage2D(t.TEXTURE_2D,0,0,0,e.format,e.type,r.resource)):s===o&&n===a?t.texSubImage2D(t.TEXTURE_2D,0,0,0,e.format,e.type,r.resource):i===2?t.texImage2D(e.target,0,e.internalFormat,o,a,0,e.format,e.type,r.resource):t.texImage2D(e.target,0,e.internalFormat,e.format,e.type,r.resource),e.width=o,e.height=a}}});var Qv,Zv=p(()=>{dp();Qv={id:"video",upload(r,e,t,i){if(!r.isValid){t.texImage2D(e.target,0,e.internalFormat,1,1,0,e.format,e.type,null);return}Cl.upload(r,e,t,i)}}});var fp,Jv,El,e1,t1=p(()=>{"use strict";fp={linear:9729,nearest:9728},Jv={linear:{linear:9987,nearest:9985},nearest:{linear:9986,nearest:9984}},El={"clamp-to-edge":33071,repeat:10497,"mirror-repeat":33648},e1={never:512,less:513,equal:514,"less-equal":515,greater:516,"not-equal":517,"greater-equal":518,always:519}});function mp(r,e,t,i,s,n,o,a){let c=n;if(!a||r.addressModeU!=="repeat"||r.addressModeV!=="repeat"||r.addressModeW!=="repeat"){let u=El[o?"clamp-to-edge":r.addressModeU],l=El[o?"clamp-to-edge":r.addressModeV],h=El[o?"clamp-to-edge":r.addressModeW];e[s](c,e.TEXTURE_WRAP_S,u),e[s](c,e.TEXTURE_WRAP_T,l),e.TEXTURE_WRAP_R&&e[s](c,e.TEXTURE_WRAP_R,h)}if((!a||r.magFilter!=="linear")&&e[s](c,e.TEXTURE_MAG_FILTER,fp[r.magFilter]),t){if(!a||r.mipmapFilter!=="linear"){let u=Jv[r.minFilter][r.mipmapFilter];e[s](c,e.TEXTURE_MIN_FILTER,u)}}else e[s](c,e.TEXTURE_MIN_FILTER,fp[r.minFilter]);if(i&&r.maxAnisotropy>1){let u=Math.min(r.maxAnisotropy,e.getParameter(i.MAX_TEXTURE_MAX_ANISOTROPY_EXT));e[s](c,i.TEXTURE_MAX_ANISOTROPY_EXT,u)}r.compare&&e[s](c,e.TEXTURE_COMPARE_FUNC,e1[r.compare])}var r1=p(()=>{t1()});function i1(r){return{r8unorm:r.RED,r8snorm:r.RED,r8uint:r.RED,r8sint:r.RED,r16uint:r.RED,r16sint:r.RED,r16float:r.RED,rg8unorm:r.RG,rg8snorm:r.RG,rg8uint:r.RG,rg8sint:r.RG,r32uint:r.RED,r32sint:r.RED,r32float:r.RED,rg16uint:r.RG,rg16sint:r.RG,rg16float:r.RG,rgba8unorm:r.RGBA,"rgba8unorm-srgb":r.RGBA,rgba8snorm:r.RGBA,rgba8uint:r.RGBA,rgba8sint:r.RGBA,bgra8unorm:r.RGBA,"bgra8unorm-srgb":r.RGBA,rgb9e5ufloat:r.RGB,rgb10a2unorm:r.RGBA,rg11b10ufloat:r.RGB,rg32uint:r.RG,rg32sint:r.RG,rg32float:r.RG,rgba16uint:r.RGBA,rgba16sint:r.RGBA,rgba16float:r.RGBA,rgba32uint:r.RGBA,rgba32sint:r.RGBA,rgba32float:r.RGBA,stencil8:r.STENCIL_INDEX8,depth16unorm:r.DEPTH_COMPONENT,depth24plus:r.DEPTH_COMPONENT,"depth24plus-stencil8":r.DEPTH_STENCIL,depth32float:r.DEPTH_COMPONENT,"depth32float-stencil8":r.DEPTH_STENCIL}}var s1=p(()=>{"use strict"});function n1(r,e){let t={},i=r.RGBA;return r instanceof W.get().getWebGLRenderingContext()?e.srgb&&(t={"rgba8unorm-srgb":e.srgb.SRGB8_ALPHA8_EXT,"bgra8unorm-srgb":e.srgb.SRGB8_ALPHA8_EXT}):(t={"rgba8unorm-srgb":r.SRGB8_ALPHA8,"bgra8unorm-srgb":r.SRGB8_ALPHA8},i=r.RGBA8),{r8unorm:r.R8,r8snorm:r.R8_SNORM,r8uint:r.R8UI,r8sint:r.R8I,r16uint:r.R16UI,r16sint:r.R16I,r16float:r.R16F,rg8unorm:r.RG8,rg8snorm:r.RG8_SNORM,rg8uint:r.RG8UI,rg8sint:r.RG8I,r32uint:r.R32UI,r32sint:r.R32I,r32float:r.R32F,rg16uint:r.RG16UI,rg16sint:r.RG16I,rg16float:r.RG16F,rgba8unorm:r.RGBA,...t,rgba8snorm:r.RGBA8_SNORM,rgba8uint:r.RGBA8UI,rgba8sint:r.RGBA8I,bgra8unorm:i,rgb9e5ufloat:r.RGB9_E5,rgb10a2unorm:r.RGB10_A2,rg11b10ufloat:r.R11F_G11F_B10F,rg32uint:r.RG32UI,rg32sint:r.RG32I,rg32float:r.RG32F,rgba16uint:r.RGBA16UI,rgba16sint:r.RGBA16I,rgba16float:r.RGBA16F,rgba32uint:r.RGBA32UI,rgba32sint:r.RGBA32I,rgba32float:r.RGBA32F,stencil8:r.STENCIL_INDEX8,depth16unorm:r.DEPTH_COMPONENT16,depth24plus:r.DEPTH_COMPONENT24,"depth24plus-stencil8":r.DEPTH24_STENCIL8,depth32float:r.DEPTH_COMPONENT32F,"depth32float-stencil8":r.DEPTH32F_STENCIL8,...e.s3tc?{"bc1-rgba-unorm":e.s3tc.COMPRESSED_RGBA_S3TC_DXT1_EXT,"bc2-rgba-unorm":e.s3tc.COMPRESSED_RGBA_S3TC_DXT3_EXT,"bc3-rgba-unorm":e.s3tc.COMPRESSED_RGBA_S3TC_DXT5_EXT}:{},...e.s3tc_sRGB?{"bc1-rgba-unorm-srgb":e.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,"bc2-rgba-unorm-srgb":e.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,"bc3-rgba-unorm-srgb":e.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}:{},...e.rgtc?{"bc4-r-unorm":e.rgtc.COMPRESSED_RED_RGTC1_EXT,"bc4-r-snorm":e.rgtc.COMPRESSED_SIGNED_RED_RGTC1_EXT,"bc5-rg-unorm":e.rgtc.COMPRESSED_RED_GREEN_RGTC2_EXT,"bc5-rg-snorm":e.rgtc.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}:{},...e.bptc?{"bc6h-rgb-float":e.bptc.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT,"bc6h-rgb-ufloat":e.bptc.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT,"bc7-rgba-unorm":e.bptc.COMPRESSED_RGBA_BPTC_UNORM_EXT,"bc7-rgba-unorm-srgb":e.bptc.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT}:{},...e.etc?{"etc2-rgb8unorm":e.etc.COMPRESSED_RGB8_ETC2,"etc2-rgb8unorm-srgb":e.etc.COMPRESSED_SRGB8_ETC2,"etc2-rgb8a1unorm":e.etc.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,"etc2-rgb8a1unorm-srgb":e.etc.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,"etc2-rgba8unorm":e.etc.COMPRESSED_RGBA8_ETC2_EAC,"etc2-rgba8unorm-srgb":e.etc.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,"eac-r11unorm":e.etc.COMPRESSED_R11_EAC,"eac-rg11unorm":e.etc.COMPRESSED_SIGNED_RG11_EAC}:{},...e.astc?{"astc-4x4-unorm":e.astc.COMPRESSED_RGBA_ASTC_4x4_KHR,"astc-4x4-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,"astc-5x4-unorm":e.astc.COMPRESSED_RGBA_ASTC_5x4_KHR,"astc-5x4-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR,"astc-5x5-unorm":e.astc.COMPRESSED_RGBA_ASTC_5x5_KHR,"astc-5x5-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,"astc-6x5-unorm":e.astc.COMPRESSED_RGBA_ASTC_6x5_KHR,"astc-6x5-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,"astc-6x6-unorm":e.astc.COMPRESSED_RGBA_ASTC_6x6_KHR,"astc-6x6-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,"astc-8x5-unorm":e.astc.COMPRESSED_RGBA_ASTC_8x5_KHR,"astc-8x5-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,"astc-8x6-unorm":e.astc.COMPRESSED_RGBA_ASTC_8x6_KHR,"astc-8x6-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,"astc-8x8-unorm":e.astc.COMPRESSED_RGBA_ASTC_8x8_KHR,"astc-8x8-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,"astc-10x5-unorm":e.astc.COMPRESSED_RGBA_ASTC_10x5_KHR,"astc-10x5-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,"astc-10x6-unorm":e.astc.COMPRESSED_RGBA_ASTC_10x6_KHR,"astc-10x6-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,"astc-10x8-unorm":e.astc.COMPRESSED_RGBA_ASTC_10x8_KHR,"astc-10x8-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,"astc-10x10-unorm":e.astc.COMPRESSED_RGBA_ASTC_10x10_KHR,"astc-10x10-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,"astc-12x10-unorm":e.astc.COMPRESSED_RGBA_ASTC_12x10_KHR,"astc-12x10-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,"astc-12x12-unorm":e.astc.COMPRESSED_RGBA_ASTC_12x12_KHR,"astc-12x12-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR}:{}}}var o1=p(()=>{ve()});function a1(r){return{r8unorm:r.UNSIGNED_BYTE,r8snorm:r.BYTE,r8uint:r.UNSIGNED_BYTE,r8sint:r.BYTE,r16uint:r.UNSIGNED_SHORT,r16sint:r.SHORT,r16float:r.HALF_FLOAT,rg8unorm:r.UNSIGNED_BYTE,rg8snorm:r.BYTE,rg8uint:r.UNSIGNED_BYTE,rg8sint:r.BYTE,r32uint:r.UNSIGNED_INT,r32sint:r.INT,r32float:r.FLOAT,rg16uint:r.UNSIGNED_SHORT,rg16sint:r.SHORT,rg16float:r.HALF_FLOAT,rgba8unorm:r.UNSIGNED_BYTE,"rgba8unorm-srgb":r.UNSIGNED_BYTE,rgba8snorm:r.BYTE,rgba8uint:r.UNSIGNED_BYTE,rgba8sint:r.BYTE,bgra8unorm:r.UNSIGNED_BYTE,"bgra8unorm-srgb":r.UNSIGNED_BYTE,rgb9e5ufloat:r.UNSIGNED_INT_5_9_9_9_REV,rgb10a2unorm:r.UNSIGNED_INT_2_10_10_10_REV,rg11b10ufloat:r.UNSIGNED_INT_10F_11F_11F_REV,rg32uint:r.UNSIGNED_INT,rg32sint:r.INT,rg32float:r.FLOAT,rgba16uint:r.UNSIGNED_SHORT,rgba16sint:r.SHORT,rgba16float:r.HALF_FLOAT,rgba32uint:r.UNSIGNED_INT,rgba32sint:r.INT,rgba32float:r.FLOAT,stencil8:r.UNSIGNED_BYTE,depth16unorm:r.UNSIGNED_SHORT,depth24plus:r.UNSIGNED_INT,"depth24plus-stencil8":r.UNSIGNED_INT_24_8,depth32float:r.FLOAT,"depth32float-stencil8":r.FLOAT_32_UNSIGNED_INT_24_8_REV}}var c1=p(()=>{"use strict"});var JP,ka,u1=p(()=>{ve();P();le();qv();Xv();Kv();dp();Zv();r1();s1();o1();c1();JP=4,ka=class{constructor(e){this.managedTextures=[],this._glTextures=Object.create(null),this._glSamplers=Object.create(null),this._boundTextures=[],this._activeTextureLocation=-1,this._boundSamplers=Object.create(null),this._uploads={image:Cl,buffer:jv,video:Qv,compressed:Yv},this._premultiplyAlpha=!1,this._useSeparateSamplers=!1,this._renderer=e,this._renderer.renderableGC.addManagedHash(this,"_glTextures"),this._renderer.renderableGC.addManagedHash(this,"_glSamplers")}contextChange(e){this._gl=e,this._mapFormatToInternalFormat||(this._mapFormatToInternalFormat=n1(e,this._renderer.context.extensions),this._mapFormatToType=a1(e),this._mapFormatToFormat=i1(e)),this._glTextures=Object.create(null),this._glSamplers=Object.create(null),this._boundSamplers=Object.create(null),this._premultiplyAlpha=!1;for(let t=0;t<16;t++)this.bind(D.EMPTY,t)}initSource(e){this.bind(e)}bind(e,t=0){let i=e.source;e?(this.bindSource(i,t),this._useSeparateSamplers&&this._bindSampler(i.style,t)):(this.bindSource(null,t),this._useSeparateSamplers&&this._bindSampler(null,t))}bindSource(e,t=0){let i=this._gl;if(e._touched=this._renderer.textureGC.count,this._boundTextures[t]!==e){this._boundTextures[t]=e,this._activateLocation(t),e||(e=D.EMPTY.source);let s=this.getGlSource(e);i.bindTexture(s.target,s.texture)}}_bindSampler(e,t=0){let i=this._gl;if(!e){this._boundSamplers[t]=null,i.bindSampler(t,null);return}let s=this._getGlSampler(e);this._boundSamplers[t]!==s&&(this._boundSamplers[t]=s,i.bindSampler(t,s))}unbind(e){let t=e.source,i=this._boundTextures,s=this._gl;for(let n=0;n<i.length;n++)if(i[n]===t){this._activateLocation(n);let o=this.getGlSource(t);s.bindTexture(o.target,null),i[n]=null}}_activateLocation(e){this._activeTextureLocation!==e&&(this._activeTextureLocation=e,this._gl.activeTexture(this._gl.TEXTURE0+e))}_initSource(e){let t=this._gl,i=new vl(t.createTexture());if(i.type=this._mapFormatToType[e.format],i.internalFormat=this._mapFormatToInternalFormat[e.format],i.format=this._mapFormatToFormat[e.format],e.autoGenerateMipmaps&&(this._renderer.context.supports.nonPowOf2mipmaps||e.isPowerOfTwo)){let s=Math.max(e.width,e.height);e.mipLevelCount=Math.floor(Math.log2(s))+1}return this._glTextures[e.uid]=i,this.managedTextures.includes(e)||(e.on("update",this.onSourceUpdate,this),e.on("resize",this.onSourceUpdate,this),e.on("styleChange",this.onStyleChange,this),e.on("destroy",this.onSourceDestroy,this),e.on("unload",this.onSourceUnload,this),e.on("updateMipmaps",this.onUpdateMipmaps,this),this.managedTextures.push(e)),this.onSourceUpdate(e),this.updateStyle(e,!1),i}onStyleChange(e){this.updateStyle(e,!1)}updateStyle(e,t){let i=this._gl,s=this.getGlSource(e);i.bindTexture(i.TEXTURE_2D,s.texture),this._boundTextures[this._activeTextureLocation]=e,mp(e.style,i,e.mipLevelCount>1,this._renderer.context.extensions.anisotropicFiltering,"texParameteri",i.TEXTURE_2D,!this._renderer.context.supports.nonPowOf2wrapping&&!e.isPowerOfTwo,t)}onSourceUnload(e){let t=this._glTextures[e.uid];t&&(this.unbind(e),this._glTextures[e.uid]=null,this._gl.deleteTexture(t.texture))}onSourceUpdate(e){let t=this._gl,i=this.getGlSource(e);t.bindTexture(t.TEXTURE_2D,i.texture),this._boundTextures[this._activeTextureLocation]=e;let s=e.alphaMode==="premultiply-alpha-on-upload";this._premultiplyAlpha!==s&&(this._premultiplyAlpha=s,t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,s)),this._uploads[e.uploadMethodId]?this._uploads[e.uploadMethodId].upload(e,i,t,this._renderer.context.webGLVersion):t.texImage2D(t.TEXTURE_2D,0,t.RGBA,e.pixelWidth,e.pixelHeight,0,t.RGBA,t.UNSIGNED_BYTE,null),e.autoGenerateMipmaps&&e.mipLevelCount>1&&this.onUpdateMipmaps(e,!1)}onUpdateMipmaps(e,t=!0){t&&this.bindSource(e,0);let i=this.getGlSource(e);this._gl.generateMipmap(i.target)}onSourceDestroy(e){e.off("destroy",this.onSourceDestroy,this),e.off("update",this.onSourceUpdate,this),e.off("resize",this.onSourceUpdate,this),e.off("unload",this.onSourceUnload,this),e.off("styleChange",this.onStyleChange,this),e.off("updateMipmaps",this.onUpdateMipmaps,this),this.managedTextures.splice(this.managedTextures.indexOf(e),1),this.onSourceUnload(e)}_initSampler(e){let t=this._gl,i=this._gl.createSampler();return this._glSamplers[e._resourceId]=i,mp(e,t,this._boundTextures[this._activeTextureLocation].mipLevelCount>1,this._renderer.context.extensions.anisotropicFiltering,"samplerParameteri",i,!1,!0),this._glSamplers[e._resourceId]}_getGlSampler(e){return this._glSamplers[e._resourceId]||this._initSampler(e)}getGlSource(e){return this._glTextures[e.uid]||this._initSource(e)}generateCanvas(e){let{pixels:t,width:i,height:s}=this.getPixels(e),n=W.get().createCanvas();n.width=i,n.height=s;let o=n.getContext("2d");if(o){let a=o.createImageData(i,s);a.data.set(t),o.putImageData(a,0,0)}return n}getPixels(e){let t=e.source.resolution,i=e.frame,s=Math.max(Math.round(i.width*t),1),n=Math.max(Math.round(i.height*t),1),o=new Uint8Array(JP*s*n),a=this._renderer,c=a.renderTarget.getRenderTarget(e),u=a.renderTarget.getGpuRenderTarget(c),l=a.gl;return l.bindFramebuffer(l.FRAMEBUFFER,u.resolveTargetFramebuffer),l.readPixels(Math.round(i.x*t),Math.round(i.y*t),s,n,l.RGBA,l.UNSIGNED_BYTE,o),{pixels:new Uint8ClampedArray(o.buffer),width:s,height:n}}destroy(){this.managedTextures.slice().forEach(e=>this.onSourceDestroy(e)),this.managedTextures=null,this._renderer=null}resetState(){this._activeTextureLocation=-1,this._boundTextures.fill(D.EMPTY.source),this._boundSamplers=Object.create(null);let e=this._gl;this._premultiplyAlpha=!1,e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,this._premultiplyAlpha)}};ka.extension={type:[b.WebGLSystem],name:"texture"}});var f1={};yg(f1,{WebGLRenderer:()=>pp});var eB,tB,rB,l1,h1,d1,pp,m1=p(()=>{P();VS();HS();WS();Do();zm();Jt();jS();KS();ev();iv();sv();nv();ov();av();fv();gv();Iv();Lv();$v();u1();eB=[...ol,Sa,rv,YS,Ta,xa,ka,va,_a,Ea,Ca,ya,Wv,wa,ba],tB=[...al],rB=[pa,ma,fa],l1=[],h1=[],d1=[];O.handleByNamedList(b.WebGLSystem,l1);O.handleByNamedList(b.WebGLPipes,h1);O.handleByNamedList(b.WebGLPipesAdaptor,d1);O.add(...eB,...tB,...rB);pp=class extends Zr{constructor(){let e={name:"webgl",type:Me.WEBGL,systems:l1,renderPipes:h1,renderPipeAdaptors:d1};super(e)}}});var Aa=Or(Qs=>{"use strict";function iB(r,e,t){if(t===void 0&&(t=Array.prototype),r&&typeof t.find=="function")return t.find.call(r,e);for(var i=0;i<r.length;i++)if(Object.prototype.hasOwnProperty.call(r,i)){var s=r[i];if(e.call(void 0,s,i,r))return s}}function xp(r,e){return e===void 0&&(e=Object),e&&typeof e.freeze=="function"?e.freeze(r):r}function sB(r,e){if(r===null||typeof r!="object")throw new TypeError("target is not an object");for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[t]=e[t]);return r}var g1=xp({HTML:"text/html",isHTML:function(r){return r===g1.HTML},XML_APPLICATION:"application/xml",XML_TEXT:"text/xml",XML_XHTML_APPLICATION:"application/xhtml+xml",XML_SVG_IMAGE:"image/svg+xml"}),x1=xp({HTML:"http://www.w3.org/1999/xhtml",isHTML:function(r){return r===x1.HTML},SVG:"http://www.w3.org/2000/svg",XML:"http://www.w3.org/XML/1998/namespace",XMLNS:"http://www.w3.org/2000/xmlns/"});Qs.assign=sB;Qs.find=iB;Qs.freeze=xp;Qs.MIME_TYPE=g1;Qs.NAMESPACE=x1});var Ap=Or(ti=>{var C1=Aa(),nr=C1.find,Pa=C1.NAMESPACE;function nB(r){return r!==""}function oB(r){return r?r.split(/[\t\n\f\r ]+/).filter(nB):[]}function aB(r,e){return r.hasOwnProperty(e)||(r[e]=!0),r}function _1(r){if(!r)return[];var e=oB(r);return Object.keys(e.reduce(aB,{}))}function cB(r){return function(e){return r&&r.indexOf(e)!==-1}}function Ra(r,e){for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t])}function dt(r,e){var t=r.prototype;if(!(t instanceof e)){let s=function(){};var i=s;s.prototype=e.prototype,s=new s,Ra(t,s),r.prototype=t=s}t.constructor!=r&&(typeof r!="function"&&console.error("unknown Class:"+r),t.constructor=r)}var ft={},Gt=ft.ELEMENT_NODE=1,Js=ft.ATTRIBUTE_NODE=2,kl=ft.TEXT_NODE=3,E1=ft.CDATA_SECTION_NODE=4,k1=ft.ENTITY_REFERENCE_NODE=5,uB=ft.ENTITY_NODE=6,A1=ft.PROCESSING_INSTRUCTION_NODE=7,P1=ft.COMMENT_NODE=8,B1=ft.DOCUMENT_NODE=9,R1=ft.DOCUMENT_TYPE_NODE=10,Pr=ft.DOCUMENT_FRAGMENT_NODE=11,lB=ft.NOTATION_NODE=12,Ye={},ze={},Bie=Ye.INDEX_SIZE_ERR=(ze[1]="Index size error",1),Rie=Ye.DOMSTRING_SIZE_ERR=(ze[2]="DOMString size error",2),ht=Ye.HIERARCHY_REQUEST_ERR=(ze[3]="Hierarchy request error",3),Die=Ye.WRONG_DOCUMENT_ERR=(ze[4]="Wrong document",4),Mie=Ye.INVALID_CHARACTER_ERR=(ze[5]="Invalid character",5),Iie=Ye.NO_DATA_ALLOWED_ERR=(ze[6]="No data allowed",6),Fie=Ye.NO_MODIFICATION_ALLOWED_ERR=(ze[7]="No modification allowed",7),D1=Ye.NOT_FOUND_ERR=(ze[8]="Not found",8),Uie=Ye.NOT_SUPPORTED_ERR=(ze[9]="Not supported",9),b1=Ye.INUSE_ATTRIBUTE_ERR=(ze[10]="Attribute in use",10),Oie=Ye.INVALID_STATE_ERR=(ze[11]="Invalid state",11),Gie=Ye.SYNTAX_ERR=(ze[12]="Syntax error",12),Nie=Ye.INVALID_MODIFICATION_ERR=(ze[13]="Invalid modification",13),Lie=Ye.NAMESPACE_ERR=(ze[14]="Invalid namespace",14),zie=Ye.INVALID_ACCESS_ERR=(ze[15]="Invalid access",15);function Pe(r,e){if(e instanceof Error)var t=e;else t=this,Error.call(this,ze[r]),this.message=ze[r],Error.captureStackTrace&&Error.captureStackTrace(this,Pe);return t.code=r,e&&(this.message=this.message+": "+e),t}Pe.prototype=Error.prototype;Ra(Ye,Pe);function Ar(){}Ar.prototype={length:0,item:function(r){return r>=0&&r<this.length?this[r]:null},toString:function(r,e){for(var t=[],i=0;i<this.length;i++)Zs(this[i],t,r,e);return t.join("")},filter:function(r){return Array.prototype.filter.call(this,r)},indexOf:function(r){return Array.prototype.indexOf.call(this,r)}};function en(r,e){this._node=r,this._refresh=e,yp(this)}function yp(r){var e=r._node._inc||r._node.ownerDocument._inc;if(r._inc!==e){var t=r._refresh(r._node);if(W1(r,"length",t.length),!r.$$length||t.length<r.$$length)for(var i=t.length;i in r;i++)Object.prototype.hasOwnProperty.call(r,i)&&delete r[i];Ra(t,r),r._inc=e}}en.prototype.item=function(r){return yp(this),this[r]||null};dt(en,Ar);function Al(){}function M1(r,e){for(var t=r.length;t--;)if(r[t]===e)return t}function y1(r,e,t,i){if(i?e[M1(e,i)]=t:e[e.length++]=t,r){t.ownerElement=r;var s=r.ownerDocument;s&&(i&&U1(s,r,i),hB(s,r,t))}}function T1(r,e,t){var i=M1(e,t);if(i>=0){for(var s=e.length-1;i<s;)e[i]=e[++i];if(e.length=s,r){var n=r.ownerDocument;n&&(U1(n,r,t),t.ownerElement=null)}}else throw new Pe(D1,new Error(r.tagName+"@"+t))}Al.prototype={length:0,item:Ar.prototype.item,getNamedItem:function(r){for(var e=this.length;e--;){var t=this[e];if(t.nodeName==r)return t}},setNamedItem:function(r){var e=r.ownerElement;if(e&&e!=this._ownerElement)throw new Pe(b1);var t=this.getNamedItem(r.nodeName);return y1(this._ownerElement,this,r,t),t},setNamedItemNS:function(r){var e=r.ownerElement,t;if(e&&e!=this._ownerElement)throw new Pe(b1);return t=this.getNamedItemNS(r.namespaceURI,r.localName),y1(this._ownerElement,this,r,t),t},removeNamedItem:function(r){var e=this.getNamedItem(r);return T1(this._ownerElement,this,e),e},removeNamedItemNS:function(r,e){var t=this.getNamedItemNS(r,e);return T1(this._ownerElement,this,t),t},getNamedItemNS:function(r,e){for(var t=this.length;t--;){var i=this[t];if(i.localName==e&&i.namespaceURI==r)return i}return null}};function I1(){}I1.prototype={hasFeature:function(r,e){return!0},createDocument:function(r,e,t){var i=new Da;if(i.implementation=this,i.childNodes=new Ar,i.doctype=t||null,t&&i.appendChild(t),e){var s=i.createElementNS(r,e);i.appendChild(s)}return i},createDocumentType:function(r,e,t){var i=new Rl;return i.name=r,i.nodeName=r,i.publicId=e||"",i.systemId=t||"",i}};function ue(){}ue.prototype={firstChild:null,lastChild:null,previousSibling:null,nextSibling:null,attributes:null,parentNode:null,childNodes:null,ownerDocument:null,nodeValue:null,namespaceURI:null,prefix:null,localName:null,insertBefore:function(r,e){return Pl(this,r,e)},replaceChild:function(r,e){Pl(this,r,e,G1),e&&this.removeChild(e)},removeChild:function(r){return O1(this,r)},appendChild:function(r){return this.insertBefore(r,null)},hasChildNodes:function(){return this.firstChild!=null},cloneNode:function(r){return bp(this.ownerDocument||this,this,r)},normalize:function(){for(var r=this.firstChild;r;){var e=r.nextSibling;e&&e.nodeType==kl&&r.nodeType==kl?(this.removeChild(e),r.appendData(e.data)):(r.normalize(),r=e)}},isSupported:function(r,e){return this.ownerDocument.implementation.hasFeature(r,e)},hasAttributes:function(){return this.attributes.length>0},lookupPrefix:function(r){for(var e=this;e;){var t=e._nsMap;if(t){for(var i in t)if(Object.prototype.hasOwnProperty.call(t,i)&&t[i]===r)return i}e=e.nodeType==Js?e.ownerDocument:e.parentNode}return null},lookupNamespaceURI:function(r){for(var e=this;e;){var t=e._nsMap;if(t&&Object.prototype.hasOwnProperty.call(t,r))return t[r];e=e.nodeType==Js?e.ownerDocument:e.parentNode}return null},isDefaultNamespace:function(r){var e=this.lookupPrefix(r);return e==null}};function F1(r){return r=="<"&&"&lt;"||r==">"&&"&gt;"||r=="&"&&"&amp;"||r=='"'&&"&quot;"||"&#"+r.charCodeAt()+";"}Ra(ft,ue);Ra(ft,ue.prototype);function Ba(r,e){if(e(r))return!0;if(r=r.firstChild)do if(Ba(r,e))return!0;while(r=r.nextSibling)}function Da(){this.ownerDocument=this}function hB(r,e,t){r&&r._inc++;var i=t.namespaceURI;i===Pa.XMLNS&&(e._nsMap[t.prefix?t.localName:""]=t.value)}function U1(r,e,t,i){r&&r._inc++;var s=t.namespaceURI;s===Pa.XMLNS&&delete e._nsMap[t.prefix?t.localName:""]}function Tp(r,e,t){if(r&&r._inc){r._inc++;var i=e.childNodes;if(t)i[i.length++]=t;else{for(var s=e.firstChild,n=0;s;)i[n++]=s,s=s.nextSibling;i.length=n,delete i[i.length]}}}function O1(r,e){var t=e.previousSibling,i=e.nextSibling;return t?t.nextSibling=i:r.firstChild=i,i?i.previousSibling=t:r.lastChild=t,e.parentNode=null,e.previousSibling=null,e.nextSibling=null,Tp(r.ownerDocument,r),e}function dB(r){return r&&(r.nodeType===ue.DOCUMENT_NODE||r.nodeType===ue.DOCUMENT_FRAGMENT_NODE||r.nodeType===ue.ELEMENT_NODE)}function fB(r){return r&&(or(r)||wp(r)||Br(r)||r.nodeType===ue.DOCUMENT_FRAGMENT_NODE||r.nodeType===ue.COMMENT_NODE||r.nodeType===ue.PROCESSING_INSTRUCTION_NODE)}function Br(r){return r&&r.nodeType===ue.DOCUMENT_TYPE_NODE}function or(r){return r&&r.nodeType===ue.ELEMENT_NODE}function wp(r){return r&&r.nodeType===ue.TEXT_NODE}function w1(r,e){var t=r.childNodes||[];if(nr(t,or)||Br(e))return!1;var i=nr(t,Br);return!(e&&i&&t.indexOf(i)>t.indexOf(e))}function S1(r,e){var t=r.childNodes||[];function i(n){return or(n)&&n!==e}if(nr(t,i))return!1;var s=nr(t,Br);return!(e&&s&&t.indexOf(s)>t.indexOf(e))}function mB(r,e,t){if(!dB(r))throw new Pe(ht,"Unexpected parent node type "+r.nodeType);if(t&&t.parentNode!==r)throw new Pe(D1,"child not in parent");if(!fB(e)||Br(e)&&r.nodeType!==ue.DOCUMENT_NODE)throw new Pe(ht,"Unexpected node type "+e.nodeType+" for parent node type "+r.nodeType)}function pB(r,e,t){var i=r.childNodes||[],s=e.childNodes||[];if(e.nodeType===ue.DOCUMENT_FRAGMENT_NODE){var n=s.filter(or);if(n.length>1||nr(s,wp))throw new Pe(ht,"More than one element or text in fragment");if(n.length===1&&!w1(r,t))throw new Pe(ht,"Element in fragment can not be inserted before doctype")}if(or(e)&&!w1(r,t))throw new Pe(ht,"Only one element can be added and only after doctype");if(Br(e)){if(nr(i,Br))throw new Pe(ht,"Only one doctype is allowed");var o=nr(i,or);if(t&&i.indexOf(o)<i.indexOf(t))throw new Pe(ht,"Doctype can only be inserted before an element");if(!t&&o)throw new Pe(ht,"Doctype can not be appended since element is present")}}function G1(r,e,t){var i=r.childNodes||[],s=e.childNodes||[];if(e.nodeType===ue.DOCUMENT_FRAGMENT_NODE){var n=s.filter(or);if(n.length>1||nr(s,wp))throw new Pe(ht,"More than one element or text in fragment");if(n.length===1&&!S1(r,t))throw new Pe(ht,"Element in fragment can not be inserted before doctype")}if(or(e)&&!S1(r,t))throw new Pe(ht,"Only one element can be added and only after doctype");if(Br(e)){let c=function(u){return Br(u)&&u!==t};var a=c;if(nr(i,c))throw new Pe(ht,"Only one doctype is allowed");var o=nr(i,or);if(t&&i.indexOf(o)<i.indexOf(t))throw new Pe(ht,"Doctype can only be inserted before an element")}}function Pl(r,e,t,i){mB(r,e,t),r.nodeType===ue.DOCUMENT_NODE&&(i||pB)(r,e,t);var s=e.parentNode;if(s&&s.removeChild(e),e.nodeType===Pr){var n=e.firstChild;if(n==null)return e;var o=e.lastChild}else n=o=e;var a=t?t.previousSibling:r.lastChild;n.previousSibling=a,o.nextSibling=t,a?a.nextSibling=n:r.firstChild=n,t==null?r.lastChild=o:t.previousSibling=o;do n.parentNode=r;while(n!==o&&(n=n.nextSibling));return Tp(r.ownerDocument||r,r),e.nodeType==Pr&&(e.firstChild=e.lastChild=null),e}function gB(r,e){return e.parentNode&&e.parentNode.removeChild(e),e.parentNode=r,e.previousSibling=r.lastChild,e.nextSibling=null,e.previousSibling?e.previousSibling.nextSibling=e:r.firstChild=e,r.lastChild=e,Tp(r.ownerDocument,r,e),e}Da.prototype={nodeName:"#document",nodeType:B1,doctype:null,documentElement:null,_inc:1,insertBefore:function(r,e){if(r.nodeType==Pr){for(var t=r.firstChild;t;){var i=t.nextSibling;this.insertBefore(t,e),t=i}return r}return Pl(this,r,e),r.ownerDocument=this,this.documentElement===null&&r.nodeType===Gt&&(this.documentElement=r),r},removeChild:function(r){return this.documentElement==r&&(this.documentElement=null),O1(this,r)},replaceChild:function(r,e){Pl(this,r,e,G1),r.ownerDocument=this,e&&this.removeChild(e),or(r)&&(this.documentElement=r)},importNode:function(r,e){return H1(this,r,e)},getElementById:function(r){var e=null;return Ba(this.documentElement,function(t){if(t.nodeType==Gt&&t.getAttribute("id")==r)return e=t,!0}),e},getElementsByClassName:function(r){var e=_1(r);return new en(this,function(t){var i=[];return e.length>0&&Ba(t.documentElement,function(s){if(s!==t&&s.nodeType===Gt){var n=s.getAttribute("class");if(n){var o=r===n;if(!o){var a=_1(n);o=e.every(cB(a))}o&&i.push(s)}}}),i})},createElement:function(r){var e=new Gi;e.ownerDocument=this,e.nodeName=r,e.tagName=r,e.localName=r,e.childNodes=new Ar;var t=e.attributes=new Al;return t._ownerElement=e,e},createDocumentFragment:function(){var r=new Dl;return r.ownerDocument=this,r.childNodes=new Ar,r},createTextNode:function(r){var e=new Sp;return e.ownerDocument=this,e.appendData(r),e},createComment:function(r){var e=new vp;return e.ownerDocument=this,e.appendData(r),e},createCDATASection:function(r){var e=new Cp;return e.ownerDocument=this,e.appendData(r),e},createProcessingInstruction:function(r,e){var t=new kp;return t.ownerDocument=this,t.tagName=t.nodeName=t.target=r,t.nodeValue=t.data=e,t},createAttribute:function(r){var e=new Bl;return e.ownerDocument=this,e.name=r,e.nodeName=r,e.localName=r,e.specified=!0,e},createEntityReference:function(r){var e=new Ep;return e.ownerDocument=this,e.nodeName=r,e},createElementNS:function(r,e){var t=new Gi,i=e.split(":"),s=t.attributes=new Al;return t.childNodes=new Ar,t.ownerDocument=this,t.nodeName=e,t.tagName=e,t.namespaceURI=r,i.length==2?(t.prefix=i[0],t.localName=i[1]):t.localName=e,s._ownerElement=t,t},createAttributeNS:function(r,e){var t=new Bl,i=e.split(":");return t.ownerDocument=this,t.nodeName=e,t.name=e,t.namespaceURI=r,t.specified=!0,i.length==2?(t.prefix=i[0],t.localName=i[1]):t.localName=e,t}};dt(Da,ue);function Gi(){this._nsMap={}}Gi.prototype={nodeType:Gt,hasAttribute:function(r){return this.getAttributeNode(r)!=null},getAttribute:function(r){var e=this.getAttributeNode(r);return e&&e.value||""},getAttributeNode:function(r){return this.attributes.getNamedItem(r)},setAttribute:function(r,e){var t=this.ownerDocument.createAttribute(r);t.value=t.nodeValue=""+e,this.setAttributeNode(t)},removeAttribute:function(r){var e=this.getAttributeNode(r);e&&this.removeAttributeNode(e)},appendChild:function(r){return r.nodeType===Pr?this.insertBefore(r,null):gB(this,r)},setAttributeNode:function(r){return this.attributes.setNamedItem(r)},setAttributeNodeNS:function(r){return this.attributes.setNamedItemNS(r)},removeAttributeNode:function(r){return this.attributes.removeNamedItem(r.nodeName)},removeAttributeNS:function(r,e){var t=this.getAttributeNodeNS(r,e);t&&this.removeAttributeNode(t)},hasAttributeNS:function(r,e){return this.getAttributeNodeNS(r,e)!=null},getAttributeNS:function(r,e){var t=this.getAttributeNodeNS(r,e);return t&&t.value||""},setAttributeNS:function(r,e,t){var i=this.ownerDocument.createAttributeNS(r,e);i.value=i.nodeValue=""+t,this.setAttributeNode(i)},getAttributeNodeNS:function(r,e){return this.attributes.getNamedItemNS(r,e)},getElementsByTagName:function(r){return new en(this,function(e){var t=[];return Ba(e,function(i){i!==e&&i.nodeType==Gt&&(r==="*"||i.tagName==r)&&t.push(i)}),t})},getElementsByTagNameNS:function(r,e){return new en(this,function(t){var i=[];return Ba(t,function(s){s!==t&&s.nodeType===Gt&&(r==="*"||s.namespaceURI===r)&&(e==="*"||s.localName==e)&&i.push(s)}),i})}};Da.prototype.getElementsByTagName=Gi.prototype.getElementsByTagName;Da.prototype.getElementsByTagNameNS=Gi.prototype.getElementsByTagNameNS;dt(Gi,ue);function Bl(){}Bl.prototype.nodeType=Js;dt(Bl,ue);function Ma(){}Ma.prototype={data:"",substringData:function(r,e){return this.data.substring(r,r+e)},appendData:function(r){r=this.data+r,this.nodeValue=this.data=r,this.length=r.length},insertData:function(r,e){this.replaceData(r,0,e)},appendChild:function(r){throw new Error(ze[ht])},deleteData:function(r,e){this.replaceData(r,e,"")},replaceData:function(r,e,t){var i=this.data.substring(0,r),s=this.data.substring(r+e);t=i+t+s,this.nodeValue=this.data=t,this.length=t.length}};dt(Ma,ue);function Sp(){}Sp.prototype={nodeName:"#text",nodeType:kl,splitText:function(r){var e=this.data,t=e.substring(r);e=e.substring(0,r),this.data=this.nodeValue=e,this.length=e.length;var i=this.ownerDocument.createTextNode(t);return this.parentNode&&this.parentNode.insertBefore(i,this.nextSibling),i}};dt(Sp,Ma);function vp(){}vp.prototype={nodeName:"#comment",nodeType:P1};dt(vp,Ma);function Cp(){}Cp.prototype={nodeName:"#cdata-section",nodeType:E1};dt(Cp,Ma);function Rl(){}Rl.prototype.nodeType=R1;dt(Rl,ue);function N1(){}N1.prototype.nodeType=lB;dt(N1,ue);function L1(){}L1.prototype.nodeType=uB;dt(L1,ue);function Ep(){}Ep.prototype.nodeType=k1;dt(Ep,ue);function Dl(){}Dl.prototype.nodeName="#document-fragment";Dl.prototype.nodeType=Pr;dt(Dl,ue);function kp(){}kp.prototype.nodeType=A1;dt(kp,ue);function z1(){}z1.prototype.serializeToString=function(r,e,t){return V1.call(r,e,t)};ue.prototype.toString=V1;function V1(r,e){var t=[],i=this.nodeType==9&&this.documentElement||this,s=i.prefix,n=i.namespaceURI;if(n&&s==null){var s=i.lookupPrefix(n);if(s==null)var o=[{namespace:n,prefix:null}]}return Zs(this,t,r,e,o),t.join("")}function v1(r,e,t){var i=r.prefix||"",s=r.namespaceURI;if(!s||i==="xml"&&s===Pa.XML||s===Pa.XMLNS)return!1;for(var n=t.length;n--;){var o=t[n];if(o.prefix===i)return o.namespace!==s}return!0}function _p(r,e,t){r.push(" ",e,'="',t.replace(/[<>&"\t\n\r]/g,F1),'"')}function Zs(r,e,t,i,s){if(s||(s=[]),i)if(r=i(r),r){if(typeof r=="string"){e.push(r);return}}else return;switch(r.nodeType){case Gt:var n=r.attributes,o=n.length,_=r.firstChild,a=r.tagName;t=Pa.isHTML(r.namespaceURI)||t;var c=a;if(!t&&!r.prefix&&r.namespaceURI){for(var u,l=0;l<n.length;l++)if(n.item(l).name==="xmlns"){u=n.item(l).value;break}if(!u)for(var h=s.length-1;h>=0;h--){var f=s[h];if(f.prefix===""&&f.namespace===r.namespaceURI){u=f.namespace;break}}if(u!==r.namespaceURI)for(var h=s.length-1;h>=0;h--){var f=s[h];if(f.namespace===r.namespaceURI){f.prefix&&(c=f.prefix+":"+a);break}}}e.push("<",c);for(var d=0;d<o;d++){var m=n.item(d);m.prefix=="xmlns"?s.push({prefix:m.localName,namespace:m.value}):m.nodeName=="xmlns"&&s.push({prefix:"",namespace:m.value})}for(var d=0;d<o;d++){var m=n.item(d);if(v1(m,t,s)){var x=m.prefix||"",g=m.namespaceURI;_p(e,x?"xmlns:"+x:"xmlns",g),s.push({prefix:x,namespace:g})}Zs(m,e,t,i,s)}if(a===c&&v1(r,t,s)){var x=r.prefix||"",g=r.namespaceURI;_p(e,x?"xmlns:"+x:"xmlns",g),s.push({prefix:x,namespace:g})}if(_||t&&!/^(?:meta|link|img|br|hr|input)$/i.test(a)){if(e.push(">"),t&&/^script$/i.test(a))for(;_;)_.data?e.push(_.data):Zs(_,e,t,i,s.slice()),_=_.nextSibling;else for(;_;)Zs(_,e,t,i,s.slice()),_=_.nextSibling;e.push("</",c,">")}else e.push("/>");return;case B1:case Pr:for(var _=r.firstChild;_;)Zs(_,e,t,i,s.slice()),_=_.nextSibling;return;case Js:return _p(e,r.name,r.value);case kl:return e.push(r.data.replace(/[<&>]/g,F1));case E1:return e.push("<![CDATA[",r.data,"]]>");case P1:return e.push("<!--",r.data,"-->");case R1:var y=r.publicId,S=r.systemId;if(e.push("<!DOCTYPE ",r.name),y)e.push(" PUBLIC ",y),S&&S!="."&&e.push(" ",S),e.push(">");else if(S&&S!=".")e.push(" SYSTEM ",S,">");else{var T=r.internalSubset;T&&e.push(" [",T,"]"),e.push(">")}return;case A1:return e.push("<?",r.target," ",r.data,"?>");case k1:return e.push("&",r.nodeName,";");default:e.push("??",r.nodeName)}}function H1(r,e,t){var i;switch(e.nodeType){case Gt:i=e.cloneNode(!1),i.ownerDocument=r;case Pr:break;case Js:t=!0;break}if(i||(i=e.cloneNode(!1)),i.ownerDocument=r,i.parentNode=null,t)for(var s=e.firstChild;s;)i.appendChild(H1(r,s,t)),s=s.nextSibling;return i}function bp(r,e,t){var i=new e.constructor;for(var s in e)if(Object.prototype.hasOwnProperty.call(e,s)){var n=e[s];typeof n!="object"&&n!=i[s]&&(i[s]=n)}switch(e.childNodes&&(i.childNodes=new Ar),i.ownerDocument=r,i.nodeType){case Gt:var o=e.attributes,a=i.attributes=new Al,c=o.length;a._ownerElement=i;for(var u=0;u<c;u++)i.setAttributeNode(bp(r,o.item(u),!0));break;case Js:t=!0}if(t)for(var l=e.firstChild;l;)i.appendChild(bp(r,l,t)),l=l.nextSibling;return i}function W1(r,e,t){r[e]=t}try{if(Object.defineProperty){let r=function(e){switch(e.nodeType){case Gt:case Pr:var t=[];for(e=e.firstChild;e;)e.nodeType!==7&&e.nodeType!==8&&t.push(r(e)),e=e.nextSibling;return t.join("");default:return e.nodeValue}};xB=r,Object.defineProperty(en.prototype,"length",{get:function(){return yp(this),this.$$length}}),Object.defineProperty(ue.prototype,"textContent",{get:function(){return r(this)},set:function(e){switch(this.nodeType){case Gt:case Pr:for(;this.firstChild;)this.removeChild(this.firstChild);(e||String(e))&&this.appendChild(this.ownerDocument.createTextNode(e));break;default:this.data=e,this.value=e,this.nodeValue=e}}}),W1=function(e,t,i){e["$$"+t]=i}}}catch{}var xB;ti.DocumentType=Rl;ti.DOMException=Pe;ti.DOMImplementation=I1;ti.Element=Gi;ti.Node=ue;ti.NodeList=Ar;ti.XMLSerializer=z1});var q1=Or(Ia=>{"use strict";var $1=Aa().freeze;Ia.XML_ENTITIES=$1({amp:"&",apos:"'",gt:">",lt:"<",quot:'"'});Ia.HTML_ENTITIES=$1({Aacute:"\xC1",aacute:"\xE1",Abreve:"\u0102",abreve:"\u0103",ac:"\u223E",acd:"\u223F",acE:"\u223E\u0333",Acirc:"\xC2",acirc:"\xE2",acute:"\xB4",Acy:"\u0410",acy:"\u0430",AElig:"\xC6",aelig:"\xE6",af:"\u2061",Afr:"\u{1D504}",afr:"\u{1D51E}",Agrave:"\xC0",agrave:"\xE0",alefsym:"\u2135",aleph:"\u2135",Alpha:"\u0391",alpha:"\u03B1",Amacr:"\u0100",amacr:"\u0101",amalg:"\u2A3F",AMP:"&",amp:"&",And:"\u2A53",and:"\u2227",andand:"\u2A55",andd:"\u2A5C",andslope:"\u2A58",andv:"\u2A5A",ang:"\u2220",ange:"\u29A4",angle:"\u2220",angmsd:"\u2221",angmsdaa:"\u29A8",angmsdab:"\u29A9",angmsdac:"\u29AA",angmsdad:"\u29AB",angmsdae:"\u29AC",angmsdaf:"\u29AD",angmsdag:"\u29AE",angmsdah:"\u29AF",angrt:"\u221F",angrtvb:"\u22BE",angrtvbd:"\u299D",angsph:"\u2222",angst:"\xC5",angzarr:"\u237C",Aogon:"\u0104",aogon:"\u0105",Aopf:"\u{1D538}",aopf:"\u{1D552}",ap:"\u2248",apacir:"\u2A6F",apE:"\u2A70",ape:"\u224A",apid:"\u224B",apos:"'",ApplyFunction:"\u2061",approx:"\u2248",approxeq:"\u224A",Aring:"\xC5",aring:"\xE5",Ascr:"\u{1D49C}",ascr:"\u{1D4B6}",Assign:"\u2254",ast:"*",asymp:"\u2248",asympeq:"\u224D",Atilde:"\xC3",atilde:"\xE3",Auml:"\xC4",auml:"\xE4",awconint:"\u2233",awint:"\u2A11",backcong:"\u224C",backepsilon:"\u03F6",backprime:"\u2035",backsim:"\u223D",backsimeq:"\u22CD",Backslash:"\u2216",Barv:"\u2AE7",barvee:"\u22BD",Barwed:"\u2306",barwed:"\u2305",barwedge:"\u2305",bbrk:"\u23B5",bbrktbrk:"\u23B6",bcong:"\u224C",Bcy:"\u0411",bcy:"\u0431",bdquo:"\u201E",becaus:"\u2235",Because:"\u2235",because:"\u2235",bemptyv:"\u29B0",bepsi:"\u03F6",bernou:"\u212C",Bernoullis:"\u212C",Beta:"\u0392",beta:"\u03B2",beth:"\u2136",between:"\u226C",Bfr:"\u{1D505}",bfr:"\u{1D51F}",bigcap:"\u22C2",bigcirc:"\u25EF",bigcup:"\u22C3",bigodot:"\u2A00",bigoplus:"\u2A01",bigotimes:"\u2A02",bigsqcup:"\u2A06",bigstar:"\u2605",bigtriangledown:"\u25BD",bigtriangleup:"\u25B3",biguplus:"\u2A04",bigvee:"\u22C1",bigwedge:"\u22C0",bkarow:"\u290D",blacklozenge:"\u29EB",blacksquare:"\u25AA",blacktriangle:"\u25B4",blacktriangledown:"\u25BE",blacktriangleleft:"\u25C2",blacktriangleright:"\u25B8",blank:"\u2423",blk12:"\u2592",blk14:"\u2591",blk34:"\u2593",block:"\u2588",bne:"=\u20E5",bnequiv:"\u2261\u20E5",bNot:"\u2AED",bnot:"\u2310",Bopf:"\u{1D539}",bopf:"\u{1D553}",bot:"\u22A5",bottom:"\u22A5",bowtie:"\u22C8",boxbox:"\u29C9",boxDL:"\u2557",boxDl:"\u2556",boxdL:"\u2555",boxdl:"\u2510",boxDR:"\u2554",boxDr:"\u2553",boxdR:"\u2552",boxdr:"\u250C",boxH:"\u2550",boxh:"\u2500",boxHD:"\u2566",boxHd:"\u2564",boxhD:"\u2565",boxhd:"\u252C",boxHU:"\u2569",boxHu:"\u2567",boxhU:"\u2568",boxhu:"\u2534",boxminus:"\u229F",boxplus:"\u229E",boxtimes:"\u22A0",boxUL:"\u255D",boxUl:"\u255C",boxuL:"\u255B",boxul:"\u2518",boxUR:"\u255A",boxUr:"\u2559",boxuR:"\u2558",boxur:"\u2514",boxV:"\u2551",boxv:"\u2502",boxVH:"\u256C",boxVh:"\u256B",boxvH:"\u256A",boxvh:"\u253C",boxVL:"\u2563",boxVl:"\u2562",boxvL:"\u2561",boxvl:"\u2524",boxVR:"\u2560",boxVr:"\u255F",boxvR:"\u255E",boxvr:"\u251C",bprime:"\u2035",Breve:"\u02D8",breve:"\u02D8",brvbar:"\xA6",Bscr:"\u212C",bscr:"\u{1D4B7}",bsemi:"\u204F",bsim:"\u223D",bsime:"\u22CD",bsol:"\\",bsolb:"\u29C5",bsolhsub:"\u27C8",bull:"\u2022",bullet:"\u2022",bump:"\u224E",bumpE:"\u2AAE",bumpe:"\u224F",Bumpeq:"\u224E",bumpeq:"\u224F",Cacute:"\u0106",cacute:"\u0107",Cap:"\u22D2",cap:"\u2229",capand:"\u2A44",capbrcup:"\u2A49",capcap:"\u2A4B",capcup:"\u2A47",capdot:"\u2A40",CapitalDifferentialD:"\u2145",caps:"\u2229\uFE00",caret:"\u2041",caron:"\u02C7",Cayleys:"\u212D",ccaps:"\u2A4D",Ccaron:"\u010C",ccaron:"\u010D",Ccedil:"\xC7",ccedil:"\xE7",Ccirc:"\u0108",ccirc:"\u0109",Cconint:"\u2230",ccups:"\u2A4C",ccupssm:"\u2A50",Cdot:"\u010A",cdot:"\u010B",cedil:"\xB8",Cedilla:"\xB8",cemptyv:"\u29B2",cent:"\xA2",CenterDot:"\xB7",centerdot:"\xB7",Cfr:"\u212D",cfr:"\u{1D520}",CHcy:"\u0427",chcy:"\u0447",check:"\u2713",checkmark:"\u2713",Chi:"\u03A7",chi:"\u03C7",cir:"\u25CB",circ:"\u02C6",circeq:"\u2257",circlearrowleft:"\u21BA",circlearrowright:"\u21BB",circledast:"\u229B",circledcirc:"\u229A",circleddash:"\u229D",CircleDot:"\u2299",circledR:"\xAE",circledS:"\u24C8",CircleMinus:"\u2296",CirclePlus:"\u2295",CircleTimes:"\u2297",cirE:"\u29C3",cire:"\u2257",cirfnint:"\u2A10",cirmid:"\u2AEF",cirscir:"\u29C2",ClockwiseContourIntegral:"\u2232",CloseCurlyDoubleQuote:"\u201D",CloseCurlyQuote:"\u2019",clubs:"\u2663",clubsuit:"\u2663",Colon:"\u2237",colon:":",Colone:"\u2A74",colone:"\u2254",coloneq:"\u2254",comma:",",commat:"@",comp:"\u2201",compfn:"\u2218",complement:"\u2201",complexes:"\u2102",cong:"\u2245",congdot:"\u2A6D",Congruent:"\u2261",Conint:"\u222F",conint:"\u222E",ContourIntegral:"\u222E",Copf:"\u2102",copf:"\u{1D554}",coprod:"\u2210",Coproduct:"\u2210",COPY:"\xA9",copy:"\xA9",copysr:"\u2117",CounterClockwiseContourIntegral:"\u2233",crarr:"\u21B5",Cross:"\u2A2F",cross:"\u2717",Cscr:"\u{1D49E}",cscr:"\u{1D4B8}",csub:"\u2ACF",csube:"\u2AD1",csup:"\u2AD0",csupe:"\u2AD2",ctdot:"\u22EF",cudarrl:"\u2938",cudarrr:"\u2935",cuepr:"\u22DE",cuesc:"\u22DF",cularr:"\u21B6",cularrp:"\u293D",Cup:"\u22D3",cup:"\u222A",cupbrcap:"\u2A48",CupCap:"\u224D",cupcap:"\u2A46",cupcup:"\u2A4A",cupdot:"\u228D",cupor:"\u2A45",cups:"\u222A\uFE00",curarr:"\u21B7",curarrm:"\u293C",curlyeqprec:"\u22DE",curlyeqsucc:"\u22DF",curlyvee:"\u22CE",curlywedge:"\u22CF",curren:"\xA4",curvearrowleft:"\u21B6",curvearrowright:"\u21B7",cuvee:"\u22CE",cuwed:"\u22CF",cwconint:"\u2232",cwint:"\u2231",cylcty:"\u232D",Dagger:"\u2021",dagger:"\u2020",daleth:"\u2138",Darr:"\u21A1",dArr:"\u21D3",darr:"\u2193",dash:"\u2010",Dashv:"\u2AE4",dashv:"\u22A3",dbkarow:"\u290F",dblac:"\u02DD",Dcaron:"\u010E",dcaron:"\u010F",Dcy:"\u0414",dcy:"\u0434",DD:"\u2145",dd:"\u2146",ddagger:"\u2021",ddarr:"\u21CA",DDotrahd:"\u2911",ddotseq:"\u2A77",deg:"\xB0",Del:"\u2207",Delta:"\u0394",delta:"\u03B4",demptyv:"\u29B1",dfisht:"\u297F",Dfr:"\u{1D507}",dfr:"\u{1D521}",dHar:"\u2965",dharl:"\u21C3",dharr:"\u21C2",DiacriticalAcute:"\xB4",DiacriticalDot:"\u02D9",DiacriticalDoubleAcute:"\u02DD",DiacriticalGrave:"`",DiacriticalTilde:"\u02DC",diam:"\u22C4",Diamond:"\u22C4",diamond:"\u22C4",diamondsuit:"\u2666",diams:"\u2666",die:"\xA8",DifferentialD:"\u2146",digamma:"\u03DD",disin:"\u22F2",div:"\xF7",divide:"\xF7",divideontimes:"\u22C7",divonx:"\u22C7",DJcy:"\u0402",djcy:"\u0452",dlcorn:"\u231E",dlcrop:"\u230D",dollar:"$",Dopf:"\u{1D53B}",dopf:"\u{1D555}",Dot:"\xA8",dot:"\u02D9",DotDot:"\u20DC",doteq:"\u2250",doteqdot:"\u2251",DotEqual:"\u2250",dotminus:"\u2238",dotplus:"\u2214",dotsquare:"\u22A1",doublebarwedge:"\u2306",DoubleContourIntegral:"\u222F",DoubleDot:"\xA8",DoubleDownArrow:"\u21D3",DoubleLeftArrow:"\u21D0",DoubleLeftRightArrow:"\u21D4",DoubleLeftTee:"\u2AE4",DoubleLongLeftArrow:"\u27F8",DoubleLongLeftRightArrow:"\u27FA",DoubleLongRightArrow:"\u27F9",DoubleRightArrow:"\u21D2",DoubleRightTee:"\u22A8",DoubleUpArrow:"\u21D1",DoubleUpDownArrow:"\u21D5",DoubleVerticalBar:"\u2225",DownArrow:"\u2193",Downarrow:"\u21D3",downarrow:"\u2193",DownArrowBar:"\u2913",DownArrowUpArrow:"\u21F5",DownBreve:"\u0311",downdownarrows:"\u21CA",downharpoonleft:"\u21C3",downharpoonright:"\u21C2",DownLeftRightVector:"\u2950",DownLeftTeeVector:"\u295E",DownLeftVector:"\u21BD",DownLeftVectorBar:"\u2956",DownRightTeeVector:"\u295F",DownRightVector:"\u21C1",DownRightVectorBar:"\u2957",DownTee:"\u22A4",DownTeeArrow:"\u21A7",drbkarow:"\u2910",drcorn:"\u231F",drcrop:"\u230C",Dscr:"\u{1D49F}",dscr:"\u{1D4B9}",DScy:"\u0405",dscy:"\u0455",dsol:"\u29F6",Dstrok:"\u0110",dstrok:"\u0111",dtdot:"\u22F1",dtri:"\u25BF",dtrif:"\u25BE",duarr:"\u21F5",duhar:"\u296F",dwangle:"\u29A6",DZcy:"\u040F",dzcy:"\u045F",dzigrarr:"\u27FF",Eacute:"\xC9",eacute:"\xE9",easter:"\u2A6E",Ecaron:"\u011A",ecaron:"\u011B",ecir:"\u2256",Ecirc:"\xCA",ecirc:"\xEA",ecolon:"\u2255",Ecy:"\u042D",ecy:"\u044D",eDDot:"\u2A77",Edot:"\u0116",eDot:"\u2251",edot:"\u0117",ee:"\u2147",efDot:"\u2252",Efr:"\u{1D508}",efr:"\u{1D522}",eg:"\u2A9A",Egrave:"\xC8",egrave:"\xE8",egs:"\u2A96",egsdot:"\u2A98",el:"\u2A99",Element:"\u2208",elinters:"\u23E7",ell:"\u2113",els:"\u2A95",elsdot:"\u2A97",Emacr:"\u0112",emacr:"\u0113",empty:"\u2205",emptyset:"\u2205",EmptySmallSquare:"\u25FB",emptyv:"\u2205",EmptyVerySmallSquare:"\u25AB",emsp:"\u2003",emsp13:"\u2004",emsp14:"\u2005",ENG:"\u014A",eng:"\u014B",ensp:"\u2002",Eogon:"\u0118",eogon:"\u0119",Eopf:"\u{1D53C}",eopf:"\u{1D556}",epar:"\u22D5",eparsl:"\u29E3",eplus:"\u2A71",epsi:"\u03B5",Epsilon:"\u0395",epsilon:"\u03B5",epsiv:"\u03F5",eqcirc:"\u2256",eqcolon:"\u2255",eqsim:"\u2242",eqslantgtr:"\u2A96",eqslantless:"\u2A95",Equal:"\u2A75",equals:"=",EqualTilde:"\u2242",equest:"\u225F",Equilibrium:"\u21CC",equiv:"\u2261",equivDD:"\u2A78",eqvparsl:"\u29E5",erarr:"\u2971",erDot:"\u2253",Escr:"\u2130",escr:"\u212F",esdot:"\u2250",Esim:"\u2A73",esim:"\u2242",Eta:"\u0397",eta:"\u03B7",ETH:"\xD0",eth:"\xF0",Euml:"\xCB",euml:"\xEB",euro:"\u20AC",excl:"!",exist:"\u2203",Exists:"\u2203",expectation:"\u2130",ExponentialE:"\u2147",exponentiale:"\u2147",fallingdotseq:"\u2252",Fcy:"\u0424",fcy:"\u0444",female:"\u2640",ffilig:"\uFB03",fflig:"\uFB00",ffllig:"\uFB04",Ffr:"\u{1D509}",ffr:"\u{1D523}",filig:"\uFB01",FilledSmallSquare:"\u25FC",FilledVerySmallSquare:"\u25AA",fjlig:"fj",flat:"\u266D",fllig:"\uFB02",fltns:"\u25B1",fnof:"\u0192",Fopf:"\u{1D53D}",fopf:"\u{1D557}",ForAll:"\u2200",forall:"\u2200",fork:"\u22D4",forkv:"\u2AD9",Fouriertrf:"\u2131",fpartint:"\u2A0D",frac12:"\xBD",frac13:"\u2153",frac14:"\xBC",frac15:"\u2155",frac16:"\u2159",frac18:"\u215B",frac23:"\u2154",frac25:"\u2156",frac34:"\xBE",frac35:"\u2157",frac38:"\u215C",frac45:"\u2158",frac56:"\u215A",frac58:"\u215D",frac78:"\u215E",frasl:"\u2044",frown:"\u2322",Fscr:"\u2131",fscr:"\u{1D4BB}",gacute:"\u01F5",Gamma:"\u0393",gamma:"\u03B3",Gammad:"\u03DC",gammad:"\u03DD",gap:"\u2A86",Gbreve:"\u011E",gbreve:"\u011F",Gcedil:"\u0122",Gcirc:"\u011C",gcirc:"\u011D",Gcy:"\u0413",gcy:"\u0433",Gdot:"\u0120",gdot:"\u0121",gE:"\u2267",ge:"\u2265",gEl:"\u2A8C",gel:"\u22DB",geq:"\u2265",geqq:"\u2267",geqslant:"\u2A7E",ges:"\u2A7E",gescc:"\u2AA9",gesdot:"\u2A80",gesdoto:"\u2A82",gesdotol:"\u2A84",gesl:"\u22DB\uFE00",gesles:"\u2A94",Gfr:"\u{1D50A}",gfr:"\u{1D524}",Gg:"\u22D9",gg:"\u226B",ggg:"\u22D9",gimel:"\u2137",GJcy:"\u0403",gjcy:"\u0453",gl:"\u2277",gla:"\u2AA5",glE:"\u2A92",glj:"\u2AA4",gnap:"\u2A8A",gnapprox:"\u2A8A",gnE:"\u2269",gne:"\u2A88",gneq:"\u2A88",gneqq:"\u2269",gnsim:"\u22E7",Gopf:"\u{1D53E}",gopf:"\u{1D558}",grave:"`",GreaterEqual:"\u2265",GreaterEqualLess:"\u22DB",GreaterFullEqual:"\u2267",GreaterGreater:"\u2AA2",GreaterLess:"\u2277",GreaterSlantEqual:"\u2A7E",GreaterTilde:"\u2273",Gscr:"\u{1D4A2}",gscr:"\u210A",gsim:"\u2273",gsime:"\u2A8E",gsiml:"\u2A90",Gt:"\u226B",GT:">",gt:">",gtcc:"\u2AA7",gtcir:"\u2A7A",gtdot:"\u22D7",gtlPar:"\u2995",gtquest:"\u2A7C",gtrapprox:"\u2A86",gtrarr:"\u2978",gtrdot:"\u22D7",gtreqless:"\u22DB",gtreqqless:"\u2A8C",gtrless:"\u2277",gtrsim:"\u2273",gvertneqq:"\u2269\uFE00",gvnE:"\u2269\uFE00",Hacek:"\u02C7",hairsp:"\u200A",half:"\xBD",hamilt:"\u210B",HARDcy:"\u042A",hardcy:"\u044A",hArr:"\u21D4",harr:"\u2194",harrcir:"\u2948",harrw:"\u21AD",Hat:"^",hbar:"\u210F",Hcirc:"\u0124",hcirc:"\u0125",hearts:"\u2665",heartsuit:"\u2665",hellip:"\u2026",hercon:"\u22B9",Hfr:"\u210C",hfr:"\u{1D525}",HilbertSpace:"\u210B",hksearow:"\u2925",hkswarow:"\u2926",hoarr:"\u21FF",homtht:"\u223B",hookleftarrow:"\u21A9",hookrightarrow:"\u21AA",Hopf:"\u210D",hopf:"\u{1D559}",horbar:"\u2015",HorizontalLine:"\u2500",Hscr:"\u210B",hscr:"\u{1D4BD}",hslash:"\u210F",Hstrok:"\u0126",hstrok:"\u0127",HumpDownHump:"\u224E",HumpEqual:"\u224F",hybull:"\u2043",hyphen:"\u2010",Iacute:"\xCD",iacute:"\xED",ic:"\u2063",Icirc:"\xCE",icirc:"\xEE",Icy:"\u0418",icy:"\u0438",Idot:"\u0130",IEcy:"\u0415",iecy:"\u0435",iexcl:"\xA1",iff:"\u21D4",Ifr:"\u2111",ifr:"\u{1D526}",Igrave:"\xCC",igrave:"\xEC",ii:"\u2148",iiiint:"\u2A0C",iiint:"\u222D",iinfin:"\u29DC",iiota:"\u2129",IJlig:"\u0132",ijlig:"\u0133",Im:"\u2111",Imacr:"\u012A",imacr:"\u012B",image:"\u2111",ImaginaryI:"\u2148",imagline:"\u2110",imagpart:"\u2111",imath:"\u0131",imof:"\u22B7",imped:"\u01B5",Implies:"\u21D2",in:"\u2208",incare:"\u2105",infin:"\u221E",infintie:"\u29DD",inodot:"\u0131",Int:"\u222C",int:"\u222B",intcal:"\u22BA",integers:"\u2124",Integral:"\u222B",intercal:"\u22BA",Intersection:"\u22C2",intlarhk:"\u2A17",intprod:"\u2A3C",InvisibleComma:"\u2063",InvisibleTimes:"\u2062",IOcy:"\u0401",iocy:"\u0451",Iogon:"\u012E",iogon:"\u012F",Iopf:"\u{1D540}",iopf:"\u{1D55A}",Iota:"\u0399",iota:"\u03B9",iprod:"\u2A3C",iquest:"\xBF",Iscr:"\u2110",iscr:"\u{1D4BE}",isin:"\u2208",isindot:"\u22F5",isinE:"\u22F9",isins:"\u22F4",isinsv:"\u22F3",isinv:"\u2208",it:"\u2062",Itilde:"\u0128",itilde:"\u0129",Iukcy:"\u0406",iukcy:"\u0456",Iuml:"\xCF",iuml:"\xEF",Jcirc:"\u0134",jcirc:"\u0135",Jcy:"\u0419",jcy:"\u0439",Jfr:"\u{1D50D}",jfr:"\u{1D527}",jmath:"\u0237",Jopf:"\u{1D541}",jopf:"\u{1D55B}",Jscr:"\u{1D4A5}",jscr:"\u{1D4BF}",Jsercy:"\u0408",jsercy:"\u0458",Jukcy:"\u0404",jukcy:"\u0454",Kappa:"\u039A",kappa:"\u03BA",kappav:"\u03F0",Kcedil:"\u0136",kcedil:"\u0137",Kcy:"\u041A",kcy:"\u043A",Kfr:"\u{1D50E}",kfr:"\u{1D528}",kgreen:"\u0138",KHcy:"\u0425",khcy:"\u0445",KJcy:"\u040C",kjcy:"\u045C",Kopf:"\u{1D542}",kopf:"\u{1D55C}",Kscr:"\u{1D4A6}",kscr:"\u{1D4C0}",lAarr:"\u21DA",Lacute:"\u0139",lacute:"\u013A",laemptyv:"\u29B4",lagran:"\u2112",Lambda:"\u039B",lambda:"\u03BB",Lang:"\u27EA",lang:"\u27E8",langd:"\u2991",langle:"\u27E8",lap:"\u2A85",Laplacetrf:"\u2112",laquo:"\xAB",Larr:"\u219E",lArr:"\u21D0",larr:"\u2190",larrb:"\u21E4",larrbfs:"\u291F",larrfs:"\u291D",larrhk:"\u21A9",larrlp:"\u21AB",larrpl:"\u2939",larrsim:"\u2973",larrtl:"\u21A2",lat:"\u2AAB",lAtail:"\u291B",latail:"\u2919",late:"\u2AAD",lates:"\u2AAD\uFE00",lBarr:"\u290E",lbarr:"\u290C",lbbrk:"\u2772",lbrace:"{",lbrack:"[",lbrke:"\u298B",lbrksld:"\u298F",lbrkslu:"\u298D",Lcaron:"\u013D",lcaron:"\u013E",Lcedil:"\u013B",lcedil:"\u013C",lceil:"\u2308",lcub:"{",Lcy:"\u041B",lcy:"\u043B",ldca:"\u2936",ldquo:"\u201C",ldquor:"\u201E",ldrdhar:"\u2967",ldrushar:"\u294B",ldsh:"\u21B2",lE:"\u2266",le:"\u2264",LeftAngleBracket:"\u27E8",LeftArrow:"\u2190",Leftarrow:"\u21D0",leftarrow:"\u2190",LeftArrowBar:"\u21E4",LeftArrowRightArrow:"\u21C6",leftarrowtail:"\u21A2",LeftCeiling:"\u2308",LeftDoubleBracket:"\u27E6",LeftDownTeeVector:"\u2961",LeftDownVector:"\u21C3",LeftDownVectorBar:"\u2959",LeftFloor:"\u230A",leftharpoondown:"\u21BD",leftharpoonup:"\u21BC",leftleftarrows:"\u21C7",LeftRightArrow:"\u2194",Leftrightarrow:"\u21D4",leftrightarrow:"\u2194",leftrightarrows:"\u21C6",leftrightharpoons:"\u21CB",leftrightsquigarrow:"\u21AD",LeftRightVector:"\u294E",LeftTee:"\u22A3",LeftTeeArrow:"\u21A4",LeftTeeVector:"\u295A",leftthreetimes:"\u22CB",LeftTriangle:"\u22B2",LeftTriangleBar:"\u29CF",LeftTriangleEqual:"\u22B4",LeftUpDownVector:"\u2951",LeftUpTeeVector:"\u2960",LeftUpVector:"\u21BF",LeftUpVectorBar:"\u2958",LeftVector:"\u21BC",LeftVectorBar:"\u2952",lEg:"\u2A8B",leg:"\u22DA",leq:"\u2264",leqq:"\u2266",leqslant:"\u2A7D",les:"\u2A7D",lescc:"\u2AA8",lesdot:"\u2A7F",lesdoto:"\u2A81",lesdotor:"\u2A83",lesg:"\u22DA\uFE00",lesges:"\u2A93",lessapprox:"\u2A85",lessdot:"\u22D6",lesseqgtr:"\u22DA",lesseqqgtr:"\u2A8B",LessEqualGreater:"\u22DA",LessFullEqual:"\u2266",LessGreater:"\u2276",lessgtr:"\u2276",LessLess:"\u2AA1",lesssim:"\u2272",LessSlantEqual:"\u2A7D",LessTilde:"\u2272",lfisht:"\u297C",lfloor:"\u230A",Lfr:"\u{1D50F}",lfr:"\u{1D529}",lg:"\u2276",lgE:"\u2A91",lHar:"\u2962",lhard:"\u21BD",lharu:"\u21BC",lharul:"\u296A",lhblk:"\u2584",LJcy:"\u0409",ljcy:"\u0459",Ll:"\u22D8",ll:"\u226A",llarr:"\u21C7",llcorner:"\u231E",Lleftarrow:"\u21DA",llhard:"\u296B",lltri:"\u25FA",Lmidot:"\u013F",lmidot:"\u0140",lmoust:"\u23B0",lmoustache:"\u23B0",lnap:"\u2A89",lnapprox:"\u2A89",lnE:"\u2268",lne:"\u2A87",lneq:"\u2A87",lneqq:"\u2268",lnsim:"\u22E6",loang:"\u27EC",loarr:"\u21FD",lobrk:"\u27E6",LongLeftArrow:"\u27F5",Longleftarrow:"\u27F8",longleftarrow:"\u27F5",LongLeftRightArrow:"\u27F7",Longleftrightarrow:"\u27FA",longleftrightarrow:"\u27F7",longmapsto:"\u27FC",LongRightArrow:"\u27F6",Longrightarrow:"\u27F9",longrightarrow:"\u27F6",looparrowleft:"\u21AB",looparrowright:"\u21AC",lopar:"\u2985",Lopf:"\u{1D543}",lopf:"\u{1D55D}",loplus:"\u2A2D",lotimes:"\u2A34",lowast:"\u2217",lowbar:"_",LowerLeftArrow:"\u2199",LowerRightArrow:"\u2198",loz:"\u25CA",lozenge:"\u25CA",lozf:"\u29EB",lpar:"(",lparlt:"\u2993",lrarr:"\u21C6",lrcorner:"\u231F",lrhar:"\u21CB",lrhard:"\u296D",lrm:"\u200E",lrtri:"\u22BF",lsaquo:"\u2039",Lscr:"\u2112",lscr:"\u{1D4C1}",Lsh:"\u21B0",lsh:"\u21B0",lsim:"\u2272",lsime:"\u2A8D",lsimg:"\u2A8F",lsqb:"[",lsquo:"\u2018",lsquor:"\u201A",Lstrok:"\u0141",lstrok:"\u0142",Lt:"\u226A",LT:"<",lt:"<",ltcc:"\u2AA6",ltcir:"\u2A79",ltdot:"\u22D6",lthree:"\u22CB",ltimes:"\u22C9",ltlarr:"\u2976",ltquest:"\u2A7B",ltri:"\u25C3",ltrie:"\u22B4",ltrif:"\u25C2",ltrPar:"\u2996",lurdshar:"\u294A",luruhar:"\u2966",lvertneqq:"\u2268\uFE00",lvnE:"\u2268\uFE00",macr:"\xAF",male:"\u2642",malt:"\u2720",maltese:"\u2720",Map:"\u2905",map:"\u21A6",mapsto:"\u21A6",mapstodown:"\u21A7",mapstoleft:"\u21A4",mapstoup:"\u21A5",marker:"\u25AE",mcomma:"\u2A29",Mcy:"\u041C",mcy:"\u043C",mdash:"\u2014",mDDot:"\u223A",measuredangle:"\u2221",MediumSpace:"\u205F",Mellintrf:"\u2133",Mfr:"\u{1D510}",mfr:"\u{1D52A}",mho:"\u2127",micro:"\xB5",mid:"\u2223",midast:"*",midcir:"\u2AF0",middot:"\xB7",minus:"\u2212",minusb:"\u229F",minusd:"\u2238",minusdu:"\u2A2A",MinusPlus:"\u2213",mlcp:"\u2ADB",mldr:"\u2026",mnplus:"\u2213",models:"\u22A7",Mopf:"\u{1D544}",mopf:"\u{1D55E}",mp:"\u2213",Mscr:"\u2133",mscr:"\u{1D4C2}",mstpos:"\u223E",Mu:"\u039C",mu:"\u03BC",multimap:"\u22B8",mumap:"\u22B8",nabla:"\u2207",Nacute:"\u0143",nacute:"\u0144",nang:"\u2220\u20D2",nap:"\u2249",napE:"\u2A70\u0338",napid:"\u224B\u0338",napos:"\u0149",napprox:"\u2249",natur:"\u266E",natural:"\u266E",naturals:"\u2115",nbsp:"\xA0",nbump:"\u224E\u0338",nbumpe:"\u224F\u0338",ncap:"\u2A43",Ncaron:"\u0147",ncaron:"\u0148",Ncedil:"\u0145",ncedil:"\u0146",ncong:"\u2247",ncongdot:"\u2A6D\u0338",ncup:"\u2A42",Ncy:"\u041D",ncy:"\u043D",ndash:"\u2013",ne:"\u2260",nearhk:"\u2924",neArr:"\u21D7",nearr:"\u2197",nearrow:"\u2197",nedot:"\u2250\u0338",NegativeMediumSpace:"\u200B",NegativeThickSpace:"\u200B",NegativeThinSpace:"\u200B",NegativeVeryThinSpace:"\u200B",nequiv:"\u2262",nesear:"\u2928",nesim:"\u2242\u0338",NestedGreaterGreater:"\u226B",NestedLessLess:"\u226A",NewLine:`
1090
+ `,nexist:"\u2204",nexists:"\u2204",Nfr:"\u{1D511}",nfr:"\u{1D52B}",ngE:"\u2267\u0338",nge:"\u2271",ngeq:"\u2271",ngeqq:"\u2267\u0338",ngeqslant:"\u2A7E\u0338",nges:"\u2A7E\u0338",nGg:"\u22D9\u0338",ngsim:"\u2275",nGt:"\u226B\u20D2",ngt:"\u226F",ngtr:"\u226F",nGtv:"\u226B\u0338",nhArr:"\u21CE",nharr:"\u21AE",nhpar:"\u2AF2",ni:"\u220B",nis:"\u22FC",nisd:"\u22FA",niv:"\u220B",NJcy:"\u040A",njcy:"\u045A",nlArr:"\u21CD",nlarr:"\u219A",nldr:"\u2025",nlE:"\u2266\u0338",nle:"\u2270",nLeftarrow:"\u21CD",nleftarrow:"\u219A",nLeftrightarrow:"\u21CE",nleftrightarrow:"\u21AE",nleq:"\u2270",nleqq:"\u2266\u0338",nleqslant:"\u2A7D\u0338",nles:"\u2A7D\u0338",nless:"\u226E",nLl:"\u22D8\u0338",nlsim:"\u2274",nLt:"\u226A\u20D2",nlt:"\u226E",nltri:"\u22EA",nltrie:"\u22EC",nLtv:"\u226A\u0338",nmid:"\u2224",NoBreak:"\u2060",NonBreakingSpace:"\xA0",Nopf:"\u2115",nopf:"\u{1D55F}",Not:"\u2AEC",not:"\xAC",NotCongruent:"\u2262",NotCupCap:"\u226D",NotDoubleVerticalBar:"\u2226",NotElement:"\u2209",NotEqual:"\u2260",NotEqualTilde:"\u2242\u0338",NotExists:"\u2204",NotGreater:"\u226F",NotGreaterEqual:"\u2271",NotGreaterFullEqual:"\u2267\u0338",NotGreaterGreater:"\u226B\u0338",NotGreaterLess:"\u2279",NotGreaterSlantEqual:"\u2A7E\u0338",NotGreaterTilde:"\u2275",NotHumpDownHump:"\u224E\u0338",NotHumpEqual:"\u224F\u0338",notin:"\u2209",notindot:"\u22F5\u0338",notinE:"\u22F9\u0338",notinva:"\u2209",notinvb:"\u22F7",notinvc:"\u22F6",NotLeftTriangle:"\u22EA",NotLeftTriangleBar:"\u29CF\u0338",NotLeftTriangleEqual:"\u22EC",NotLess:"\u226E",NotLessEqual:"\u2270",NotLessGreater:"\u2278",NotLessLess:"\u226A\u0338",NotLessSlantEqual:"\u2A7D\u0338",NotLessTilde:"\u2274",NotNestedGreaterGreater:"\u2AA2\u0338",NotNestedLessLess:"\u2AA1\u0338",notni:"\u220C",notniva:"\u220C",notnivb:"\u22FE",notnivc:"\u22FD",NotPrecedes:"\u2280",NotPrecedesEqual:"\u2AAF\u0338",NotPrecedesSlantEqual:"\u22E0",NotReverseElement:"\u220C",NotRightTriangle:"\u22EB",NotRightTriangleBar:"\u29D0\u0338",NotRightTriangleEqual:"\u22ED",NotSquareSubset:"\u228F\u0338",NotSquareSubsetEqual:"\u22E2",NotSquareSuperset:"\u2290\u0338",NotSquareSupersetEqual:"\u22E3",NotSubset:"\u2282\u20D2",NotSubsetEqual:"\u2288",NotSucceeds:"\u2281",NotSucceedsEqual:"\u2AB0\u0338",NotSucceedsSlantEqual:"\u22E1",NotSucceedsTilde:"\u227F\u0338",NotSuperset:"\u2283\u20D2",NotSupersetEqual:"\u2289",NotTilde:"\u2241",NotTildeEqual:"\u2244",NotTildeFullEqual:"\u2247",NotTildeTilde:"\u2249",NotVerticalBar:"\u2224",npar:"\u2226",nparallel:"\u2226",nparsl:"\u2AFD\u20E5",npart:"\u2202\u0338",npolint:"\u2A14",npr:"\u2280",nprcue:"\u22E0",npre:"\u2AAF\u0338",nprec:"\u2280",npreceq:"\u2AAF\u0338",nrArr:"\u21CF",nrarr:"\u219B",nrarrc:"\u2933\u0338",nrarrw:"\u219D\u0338",nRightarrow:"\u21CF",nrightarrow:"\u219B",nrtri:"\u22EB",nrtrie:"\u22ED",nsc:"\u2281",nsccue:"\u22E1",nsce:"\u2AB0\u0338",Nscr:"\u{1D4A9}",nscr:"\u{1D4C3}",nshortmid:"\u2224",nshortparallel:"\u2226",nsim:"\u2241",nsime:"\u2244",nsimeq:"\u2244",nsmid:"\u2224",nspar:"\u2226",nsqsube:"\u22E2",nsqsupe:"\u22E3",nsub:"\u2284",nsubE:"\u2AC5\u0338",nsube:"\u2288",nsubset:"\u2282\u20D2",nsubseteq:"\u2288",nsubseteqq:"\u2AC5\u0338",nsucc:"\u2281",nsucceq:"\u2AB0\u0338",nsup:"\u2285",nsupE:"\u2AC6\u0338",nsupe:"\u2289",nsupset:"\u2283\u20D2",nsupseteq:"\u2289",nsupseteqq:"\u2AC6\u0338",ntgl:"\u2279",Ntilde:"\xD1",ntilde:"\xF1",ntlg:"\u2278",ntriangleleft:"\u22EA",ntrianglelefteq:"\u22EC",ntriangleright:"\u22EB",ntrianglerighteq:"\u22ED",Nu:"\u039D",nu:"\u03BD",num:"#",numero:"\u2116",numsp:"\u2007",nvap:"\u224D\u20D2",nVDash:"\u22AF",nVdash:"\u22AE",nvDash:"\u22AD",nvdash:"\u22AC",nvge:"\u2265\u20D2",nvgt:">\u20D2",nvHarr:"\u2904",nvinfin:"\u29DE",nvlArr:"\u2902",nvle:"\u2264\u20D2",nvlt:"<\u20D2",nvltrie:"\u22B4\u20D2",nvrArr:"\u2903",nvrtrie:"\u22B5\u20D2",nvsim:"\u223C\u20D2",nwarhk:"\u2923",nwArr:"\u21D6",nwarr:"\u2196",nwarrow:"\u2196",nwnear:"\u2927",Oacute:"\xD3",oacute:"\xF3",oast:"\u229B",ocir:"\u229A",Ocirc:"\xD4",ocirc:"\xF4",Ocy:"\u041E",ocy:"\u043E",odash:"\u229D",Odblac:"\u0150",odblac:"\u0151",odiv:"\u2A38",odot:"\u2299",odsold:"\u29BC",OElig:"\u0152",oelig:"\u0153",ofcir:"\u29BF",Ofr:"\u{1D512}",ofr:"\u{1D52C}",ogon:"\u02DB",Ograve:"\xD2",ograve:"\xF2",ogt:"\u29C1",ohbar:"\u29B5",ohm:"\u03A9",oint:"\u222E",olarr:"\u21BA",olcir:"\u29BE",olcross:"\u29BB",oline:"\u203E",olt:"\u29C0",Omacr:"\u014C",omacr:"\u014D",Omega:"\u03A9",omega:"\u03C9",Omicron:"\u039F",omicron:"\u03BF",omid:"\u29B6",ominus:"\u2296",Oopf:"\u{1D546}",oopf:"\u{1D560}",opar:"\u29B7",OpenCurlyDoubleQuote:"\u201C",OpenCurlyQuote:"\u2018",operp:"\u29B9",oplus:"\u2295",Or:"\u2A54",or:"\u2228",orarr:"\u21BB",ord:"\u2A5D",order:"\u2134",orderof:"\u2134",ordf:"\xAA",ordm:"\xBA",origof:"\u22B6",oror:"\u2A56",orslope:"\u2A57",orv:"\u2A5B",oS:"\u24C8",Oscr:"\u{1D4AA}",oscr:"\u2134",Oslash:"\xD8",oslash:"\xF8",osol:"\u2298",Otilde:"\xD5",otilde:"\xF5",Otimes:"\u2A37",otimes:"\u2297",otimesas:"\u2A36",Ouml:"\xD6",ouml:"\xF6",ovbar:"\u233D",OverBar:"\u203E",OverBrace:"\u23DE",OverBracket:"\u23B4",OverParenthesis:"\u23DC",par:"\u2225",para:"\xB6",parallel:"\u2225",parsim:"\u2AF3",parsl:"\u2AFD",part:"\u2202",PartialD:"\u2202",Pcy:"\u041F",pcy:"\u043F",percnt:"%",period:".",permil:"\u2030",perp:"\u22A5",pertenk:"\u2031",Pfr:"\u{1D513}",pfr:"\u{1D52D}",Phi:"\u03A6",phi:"\u03C6",phiv:"\u03D5",phmmat:"\u2133",phone:"\u260E",Pi:"\u03A0",pi:"\u03C0",pitchfork:"\u22D4",piv:"\u03D6",planck:"\u210F",planckh:"\u210E",plankv:"\u210F",plus:"+",plusacir:"\u2A23",plusb:"\u229E",pluscir:"\u2A22",plusdo:"\u2214",plusdu:"\u2A25",pluse:"\u2A72",PlusMinus:"\xB1",plusmn:"\xB1",plussim:"\u2A26",plustwo:"\u2A27",pm:"\xB1",Poincareplane:"\u210C",pointint:"\u2A15",Popf:"\u2119",popf:"\u{1D561}",pound:"\xA3",Pr:"\u2ABB",pr:"\u227A",prap:"\u2AB7",prcue:"\u227C",prE:"\u2AB3",pre:"\u2AAF",prec:"\u227A",precapprox:"\u2AB7",preccurlyeq:"\u227C",Precedes:"\u227A",PrecedesEqual:"\u2AAF",PrecedesSlantEqual:"\u227C",PrecedesTilde:"\u227E",preceq:"\u2AAF",precnapprox:"\u2AB9",precneqq:"\u2AB5",precnsim:"\u22E8",precsim:"\u227E",Prime:"\u2033",prime:"\u2032",primes:"\u2119",prnap:"\u2AB9",prnE:"\u2AB5",prnsim:"\u22E8",prod:"\u220F",Product:"\u220F",profalar:"\u232E",profline:"\u2312",profsurf:"\u2313",prop:"\u221D",Proportion:"\u2237",Proportional:"\u221D",propto:"\u221D",prsim:"\u227E",prurel:"\u22B0",Pscr:"\u{1D4AB}",pscr:"\u{1D4C5}",Psi:"\u03A8",psi:"\u03C8",puncsp:"\u2008",Qfr:"\u{1D514}",qfr:"\u{1D52E}",qint:"\u2A0C",Qopf:"\u211A",qopf:"\u{1D562}",qprime:"\u2057",Qscr:"\u{1D4AC}",qscr:"\u{1D4C6}",quaternions:"\u210D",quatint:"\u2A16",quest:"?",questeq:"\u225F",QUOT:'"',quot:'"',rAarr:"\u21DB",race:"\u223D\u0331",Racute:"\u0154",racute:"\u0155",radic:"\u221A",raemptyv:"\u29B3",Rang:"\u27EB",rang:"\u27E9",rangd:"\u2992",range:"\u29A5",rangle:"\u27E9",raquo:"\xBB",Rarr:"\u21A0",rArr:"\u21D2",rarr:"\u2192",rarrap:"\u2975",rarrb:"\u21E5",rarrbfs:"\u2920",rarrc:"\u2933",rarrfs:"\u291E",rarrhk:"\u21AA",rarrlp:"\u21AC",rarrpl:"\u2945",rarrsim:"\u2974",Rarrtl:"\u2916",rarrtl:"\u21A3",rarrw:"\u219D",rAtail:"\u291C",ratail:"\u291A",ratio:"\u2236",rationals:"\u211A",RBarr:"\u2910",rBarr:"\u290F",rbarr:"\u290D",rbbrk:"\u2773",rbrace:"}",rbrack:"]",rbrke:"\u298C",rbrksld:"\u298E",rbrkslu:"\u2990",Rcaron:"\u0158",rcaron:"\u0159",Rcedil:"\u0156",rcedil:"\u0157",rceil:"\u2309",rcub:"}",Rcy:"\u0420",rcy:"\u0440",rdca:"\u2937",rdldhar:"\u2969",rdquo:"\u201D",rdquor:"\u201D",rdsh:"\u21B3",Re:"\u211C",real:"\u211C",realine:"\u211B",realpart:"\u211C",reals:"\u211D",rect:"\u25AD",REG:"\xAE",reg:"\xAE",ReverseElement:"\u220B",ReverseEquilibrium:"\u21CB",ReverseUpEquilibrium:"\u296F",rfisht:"\u297D",rfloor:"\u230B",Rfr:"\u211C",rfr:"\u{1D52F}",rHar:"\u2964",rhard:"\u21C1",rharu:"\u21C0",rharul:"\u296C",Rho:"\u03A1",rho:"\u03C1",rhov:"\u03F1",RightAngleBracket:"\u27E9",RightArrow:"\u2192",Rightarrow:"\u21D2",rightarrow:"\u2192",RightArrowBar:"\u21E5",RightArrowLeftArrow:"\u21C4",rightarrowtail:"\u21A3",RightCeiling:"\u2309",RightDoubleBracket:"\u27E7",RightDownTeeVector:"\u295D",RightDownVector:"\u21C2",RightDownVectorBar:"\u2955",RightFloor:"\u230B",rightharpoondown:"\u21C1",rightharpoonup:"\u21C0",rightleftarrows:"\u21C4",rightleftharpoons:"\u21CC",rightrightarrows:"\u21C9",rightsquigarrow:"\u219D",RightTee:"\u22A2",RightTeeArrow:"\u21A6",RightTeeVector:"\u295B",rightthreetimes:"\u22CC",RightTriangle:"\u22B3",RightTriangleBar:"\u29D0",RightTriangleEqual:"\u22B5",RightUpDownVector:"\u294F",RightUpTeeVector:"\u295C",RightUpVector:"\u21BE",RightUpVectorBar:"\u2954",RightVector:"\u21C0",RightVectorBar:"\u2953",ring:"\u02DA",risingdotseq:"\u2253",rlarr:"\u21C4",rlhar:"\u21CC",rlm:"\u200F",rmoust:"\u23B1",rmoustache:"\u23B1",rnmid:"\u2AEE",roang:"\u27ED",roarr:"\u21FE",robrk:"\u27E7",ropar:"\u2986",Ropf:"\u211D",ropf:"\u{1D563}",roplus:"\u2A2E",rotimes:"\u2A35",RoundImplies:"\u2970",rpar:")",rpargt:"\u2994",rppolint:"\u2A12",rrarr:"\u21C9",Rrightarrow:"\u21DB",rsaquo:"\u203A",Rscr:"\u211B",rscr:"\u{1D4C7}",Rsh:"\u21B1",rsh:"\u21B1",rsqb:"]",rsquo:"\u2019",rsquor:"\u2019",rthree:"\u22CC",rtimes:"\u22CA",rtri:"\u25B9",rtrie:"\u22B5",rtrif:"\u25B8",rtriltri:"\u29CE",RuleDelayed:"\u29F4",ruluhar:"\u2968",rx:"\u211E",Sacute:"\u015A",sacute:"\u015B",sbquo:"\u201A",Sc:"\u2ABC",sc:"\u227B",scap:"\u2AB8",Scaron:"\u0160",scaron:"\u0161",sccue:"\u227D",scE:"\u2AB4",sce:"\u2AB0",Scedil:"\u015E",scedil:"\u015F",Scirc:"\u015C",scirc:"\u015D",scnap:"\u2ABA",scnE:"\u2AB6",scnsim:"\u22E9",scpolint:"\u2A13",scsim:"\u227F",Scy:"\u0421",scy:"\u0441",sdot:"\u22C5",sdotb:"\u22A1",sdote:"\u2A66",searhk:"\u2925",seArr:"\u21D8",searr:"\u2198",searrow:"\u2198",sect:"\xA7",semi:";",seswar:"\u2929",setminus:"\u2216",setmn:"\u2216",sext:"\u2736",Sfr:"\u{1D516}",sfr:"\u{1D530}",sfrown:"\u2322",sharp:"\u266F",SHCHcy:"\u0429",shchcy:"\u0449",SHcy:"\u0428",shcy:"\u0448",ShortDownArrow:"\u2193",ShortLeftArrow:"\u2190",shortmid:"\u2223",shortparallel:"\u2225",ShortRightArrow:"\u2192",ShortUpArrow:"\u2191",shy:"\xAD",Sigma:"\u03A3",sigma:"\u03C3",sigmaf:"\u03C2",sigmav:"\u03C2",sim:"\u223C",simdot:"\u2A6A",sime:"\u2243",simeq:"\u2243",simg:"\u2A9E",simgE:"\u2AA0",siml:"\u2A9D",simlE:"\u2A9F",simne:"\u2246",simplus:"\u2A24",simrarr:"\u2972",slarr:"\u2190",SmallCircle:"\u2218",smallsetminus:"\u2216",smashp:"\u2A33",smeparsl:"\u29E4",smid:"\u2223",smile:"\u2323",smt:"\u2AAA",smte:"\u2AAC",smtes:"\u2AAC\uFE00",SOFTcy:"\u042C",softcy:"\u044C",sol:"/",solb:"\u29C4",solbar:"\u233F",Sopf:"\u{1D54A}",sopf:"\u{1D564}",spades:"\u2660",spadesuit:"\u2660",spar:"\u2225",sqcap:"\u2293",sqcaps:"\u2293\uFE00",sqcup:"\u2294",sqcups:"\u2294\uFE00",Sqrt:"\u221A",sqsub:"\u228F",sqsube:"\u2291",sqsubset:"\u228F",sqsubseteq:"\u2291",sqsup:"\u2290",sqsupe:"\u2292",sqsupset:"\u2290",sqsupseteq:"\u2292",squ:"\u25A1",Square:"\u25A1",square:"\u25A1",SquareIntersection:"\u2293",SquareSubset:"\u228F",SquareSubsetEqual:"\u2291",SquareSuperset:"\u2290",SquareSupersetEqual:"\u2292",SquareUnion:"\u2294",squarf:"\u25AA",squf:"\u25AA",srarr:"\u2192",Sscr:"\u{1D4AE}",sscr:"\u{1D4C8}",ssetmn:"\u2216",ssmile:"\u2323",sstarf:"\u22C6",Star:"\u22C6",star:"\u2606",starf:"\u2605",straightepsilon:"\u03F5",straightphi:"\u03D5",strns:"\xAF",Sub:"\u22D0",sub:"\u2282",subdot:"\u2ABD",subE:"\u2AC5",sube:"\u2286",subedot:"\u2AC3",submult:"\u2AC1",subnE:"\u2ACB",subne:"\u228A",subplus:"\u2ABF",subrarr:"\u2979",Subset:"\u22D0",subset:"\u2282",subseteq:"\u2286",subseteqq:"\u2AC5",SubsetEqual:"\u2286",subsetneq:"\u228A",subsetneqq:"\u2ACB",subsim:"\u2AC7",subsub:"\u2AD5",subsup:"\u2AD3",succ:"\u227B",succapprox:"\u2AB8",succcurlyeq:"\u227D",Succeeds:"\u227B",SucceedsEqual:"\u2AB0",SucceedsSlantEqual:"\u227D",SucceedsTilde:"\u227F",succeq:"\u2AB0",succnapprox:"\u2ABA",succneqq:"\u2AB6",succnsim:"\u22E9",succsim:"\u227F",SuchThat:"\u220B",Sum:"\u2211",sum:"\u2211",sung:"\u266A",Sup:"\u22D1",sup:"\u2283",sup1:"\xB9",sup2:"\xB2",sup3:"\xB3",supdot:"\u2ABE",supdsub:"\u2AD8",supE:"\u2AC6",supe:"\u2287",supedot:"\u2AC4",Superset:"\u2283",SupersetEqual:"\u2287",suphsol:"\u27C9",suphsub:"\u2AD7",suplarr:"\u297B",supmult:"\u2AC2",supnE:"\u2ACC",supne:"\u228B",supplus:"\u2AC0",Supset:"\u22D1",supset:"\u2283",supseteq:"\u2287",supseteqq:"\u2AC6",supsetneq:"\u228B",supsetneqq:"\u2ACC",supsim:"\u2AC8",supsub:"\u2AD4",supsup:"\u2AD6",swarhk:"\u2926",swArr:"\u21D9",swarr:"\u2199",swarrow:"\u2199",swnwar:"\u292A",szlig:"\xDF",Tab:" ",target:"\u2316",Tau:"\u03A4",tau:"\u03C4",tbrk:"\u23B4",Tcaron:"\u0164",tcaron:"\u0165",Tcedil:"\u0162",tcedil:"\u0163",Tcy:"\u0422",tcy:"\u0442",tdot:"\u20DB",telrec:"\u2315",Tfr:"\u{1D517}",tfr:"\u{1D531}",there4:"\u2234",Therefore:"\u2234",therefore:"\u2234",Theta:"\u0398",theta:"\u03B8",thetasym:"\u03D1",thetav:"\u03D1",thickapprox:"\u2248",thicksim:"\u223C",ThickSpace:"\u205F\u200A",thinsp:"\u2009",ThinSpace:"\u2009",thkap:"\u2248",thksim:"\u223C",THORN:"\xDE",thorn:"\xFE",Tilde:"\u223C",tilde:"\u02DC",TildeEqual:"\u2243",TildeFullEqual:"\u2245",TildeTilde:"\u2248",times:"\xD7",timesb:"\u22A0",timesbar:"\u2A31",timesd:"\u2A30",tint:"\u222D",toea:"\u2928",top:"\u22A4",topbot:"\u2336",topcir:"\u2AF1",Topf:"\u{1D54B}",topf:"\u{1D565}",topfork:"\u2ADA",tosa:"\u2929",tprime:"\u2034",TRADE:"\u2122",trade:"\u2122",triangle:"\u25B5",triangledown:"\u25BF",triangleleft:"\u25C3",trianglelefteq:"\u22B4",triangleq:"\u225C",triangleright:"\u25B9",trianglerighteq:"\u22B5",tridot:"\u25EC",trie:"\u225C",triminus:"\u2A3A",TripleDot:"\u20DB",triplus:"\u2A39",trisb:"\u29CD",tritime:"\u2A3B",trpezium:"\u23E2",Tscr:"\u{1D4AF}",tscr:"\u{1D4C9}",TScy:"\u0426",tscy:"\u0446",TSHcy:"\u040B",tshcy:"\u045B",Tstrok:"\u0166",tstrok:"\u0167",twixt:"\u226C",twoheadleftarrow:"\u219E",twoheadrightarrow:"\u21A0",Uacute:"\xDA",uacute:"\xFA",Uarr:"\u219F",uArr:"\u21D1",uarr:"\u2191",Uarrocir:"\u2949",Ubrcy:"\u040E",ubrcy:"\u045E",Ubreve:"\u016C",ubreve:"\u016D",Ucirc:"\xDB",ucirc:"\xFB",Ucy:"\u0423",ucy:"\u0443",udarr:"\u21C5",Udblac:"\u0170",udblac:"\u0171",udhar:"\u296E",ufisht:"\u297E",Ufr:"\u{1D518}",ufr:"\u{1D532}",Ugrave:"\xD9",ugrave:"\xF9",uHar:"\u2963",uharl:"\u21BF",uharr:"\u21BE",uhblk:"\u2580",ulcorn:"\u231C",ulcorner:"\u231C",ulcrop:"\u230F",ultri:"\u25F8",Umacr:"\u016A",umacr:"\u016B",uml:"\xA8",UnderBar:"_",UnderBrace:"\u23DF",UnderBracket:"\u23B5",UnderParenthesis:"\u23DD",Union:"\u22C3",UnionPlus:"\u228E",Uogon:"\u0172",uogon:"\u0173",Uopf:"\u{1D54C}",uopf:"\u{1D566}",UpArrow:"\u2191",Uparrow:"\u21D1",uparrow:"\u2191",UpArrowBar:"\u2912",UpArrowDownArrow:"\u21C5",UpDownArrow:"\u2195",Updownarrow:"\u21D5",updownarrow:"\u2195",UpEquilibrium:"\u296E",upharpoonleft:"\u21BF",upharpoonright:"\u21BE",uplus:"\u228E",UpperLeftArrow:"\u2196",UpperRightArrow:"\u2197",Upsi:"\u03D2",upsi:"\u03C5",upsih:"\u03D2",Upsilon:"\u03A5",upsilon:"\u03C5",UpTee:"\u22A5",UpTeeArrow:"\u21A5",upuparrows:"\u21C8",urcorn:"\u231D",urcorner:"\u231D",urcrop:"\u230E",Uring:"\u016E",uring:"\u016F",urtri:"\u25F9",Uscr:"\u{1D4B0}",uscr:"\u{1D4CA}",utdot:"\u22F0",Utilde:"\u0168",utilde:"\u0169",utri:"\u25B5",utrif:"\u25B4",uuarr:"\u21C8",Uuml:"\xDC",uuml:"\xFC",uwangle:"\u29A7",vangrt:"\u299C",varepsilon:"\u03F5",varkappa:"\u03F0",varnothing:"\u2205",varphi:"\u03D5",varpi:"\u03D6",varpropto:"\u221D",vArr:"\u21D5",varr:"\u2195",varrho:"\u03F1",varsigma:"\u03C2",varsubsetneq:"\u228A\uFE00",varsubsetneqq:"\u2ACB\uFE00",varsupsetneq:"\u228B\uFE00",varsupsetneqq:"\u2ACC\uFE00",vartheta:"\u03D1",vartriangleleft:"\u22B2",vartriangleright:"\u22B3",Vbar:"\u2AEB",vBar:"\u2AE8",vBarv:"\u2AE9",Vcy:"\u0412",vcy:"\u0432",VDash:"\u22AB",Vdash:"\u22A9",vDash:"\u22A8",vdash:"\u22A2",Vdashl:"\u2AE6",Vee:"\u22C1",vee:"\u2228",veebar:"\u22BB",veeeq:"\u225A",vellip:"\u22EE",Verbar:"\u2016",verbar:"|",Vert:"\u2016",vert:"|",VerticalBar:"\u2223",VerticalLine:"|",VerticalSeparator:"\u2758",VerticalTilde:"\u2240",VeryThinSpace:"\u200A",Vfr:"\u{1D519}",vfr:"\u{1D533}",vltri:"\u22B2",vnsub:"\u2282\u20D2",vnsup:"\u2283\u20D2",Vopf:"\u{1D54D}",vopf:"\u{1D567}",vprop:"\u221D",vrtri:"\u22B3",Vscr:"\u{1D4B1}",vscr:"\u{1D4CB}",vsubnE:"\u2ACB\uFE00",vsubne:"\u228A\uFE00",vsupnE:"\u2ACC\uFE00",vsupne:"\u228B\uFE00",Vvdash:"\u22AA",vzigzag:"\u299A",Wcirc:"\u0174",wcirc:"\u0175",wedbar:"\u2A5F",Wedge:"\u22C0",wedge:"\u2227",wedgeq:"\u2259",weierp:"\u2118",Wfr:"\u{1D51A}",wfr:"\u{1D534}",Wopf:"\u{1D54E}",wopf:"\u{1D568}",wp:"\u2118",wr:"\u2240",wreath:"\u2240",Wscr:"\u{1D4B2}",wscr:"\u{1D4CC}",xcap:"\u22C2",xcirc:"\u25EF",xcup:"\u22C3",xdtri:"\u25BD",Xfr:"\u{1D51B}",xfr:"\u{1D535}",xhArr:"\u27FA",xharr:"\u27F7",Xi:"\u039E",xi:"\u03BE",xlArr:"\u27F8",xlarr:"\u27F5",xmap:"\u27FC",xnis:"\u22FB",xodot:"\u2A00",Xopf:"\u{1D54F}",xopf:"\u{1D569}",xoplus:"\u2A01",xotime:"\u2A02",xrArr:"\u27F9",xrarr:"\u27F6",Xscr:"\u{1D4B3}",xscr:"\u{1D4CD}",xsqcup:"\u2A06",xuplus:"\u2A04",xutri:"\u25B3",xvee:"\u22C1",xwedge:"\u22C0",Yacute:"\xDD",yacute:"\xFD",YAcy:"\u042F",yacy:"\u044F",Ycirc:"\u0176",ycirc:"\u0177",Ycy:"\u042B",ycy:"\u044B",yen:"\xA5",Yfr:"\u{1D51C}",yfr:"\u{1D536}",YIcy:"\u0407",yicy:"\u0457",Yopf:"\u{1D550}",yopf:"\u{1D56A}",Yscr:"\u{1D4B4}",yscr:"\u{1D4CE}",YUcy:"\u042E",yucy:"\u044E",Yuml:"\u0178",yuml:"\xFF",Zacute:"\u0179",zacute:"\u017A",Zcaron:"\u017D",zcaron:"\u017E",Zcy:"\u0417",zcy:"\u0437",Zdot:"\u017B",zdot:"\u017C",zeetrf:"\u2128",ZeroWidthSpace:"\u200B",Zeta:"\u0396",zeta:"\u03B6",Zfr:"\u2128",zfr:"\u{1D537}",ZHcy:"\u0416",zhcy:"\u0436",zigrarr:"\u21DD",Zopf:"\u2124",zopf:"\u{1D56B}",Zscr:"\u{1D4B5}",zscr:"\u{1D4CF}",zwj:"\u200D",zwnj:"\u200C"});Ia.entityMap=Ia.HTML_ENTITIES});var eC=Or(Bp=>{var Ga=Aa().NAMESPACE,Pp=/[A-Z_a-z\xC0-\xD6\xD8-\xF6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,j1=new RegExp("[\\-\\.0-9"+Pp.source.slice(1,-1)+"\\u00B7\\u0300-\\u036F\\u203F-\\u2040]"),X1=new RegExp("^"+Pp.source+j1.source+"*(?::"+Pp.source+j1.source+"*)?$"),Fa=0,ri=1,tn=2,Ua=3,rn=4,sn=5,Oa=6,Ml=7;function nn(r,e){this.message=r,this.locator=e,Error.captureStackTrace&&Error.captureStackTrace(this,nn)}nn.prototype=new Error;nn.prototype.name=nn.name;function Q1(){}Q1.prototype={parse:function(r,e,t){var i=this.domBuilder;i.startDocument(),Z1(e,e={}),_B(r,e,t,i,this.errorHandler),i.endDocument()}};function _B(r,e,t,i,s){function n(U){if(U>65535){U-=65536;var H=55296+(U>>10),Ch=56320+(U&1023);return String.fromCharCode(H,Ch)}else return String.fromCharCode(U)}function o(U){var H=U.slice(1,-1);return Object.hasOwnProperty.call(t,H)?t[H]:H.charAt(0)==="#"?n(parseInt(H.substr(1).replace("x","0x"))):(s.error("entity not found:"+U),U)}function a(U){if(U>x){var H=r.substring(x,U).replace(/&#?\w+;/g,o);f&&c(x),i.characters(H,0,U-x),x=U}}function c(U,H){for(;U>=l&&(H=h.exec(r));)u=H.index,l=u+H[0].length,f.lineNumber++;f.columnNumber=U-u+1}for(var u=0,l=0,h=/.*(?:\r\n?|\n)|.*$/g,f=i.locator,d=[{currentNSMap:e}],m={},x=0;;){try{var g=r.indexOf("<",x);if(g<0){if(!r.substr(x).match(/^\s*$/)){var _=i.doc,y=_.createTextNode(r.substr(x));_.appendChild(y),i.currentElement=y}return}switch(g>x&&a(g),r.charAt(g+1)){case"/":var k=r.indexOf(">",g+3),S=r.substring(g+2,k).replace(/[ \t\n\r]+$/g,""),T=d.pop();k<0?(S=r.substring(g+2).replace(/[\s<].*/,""),s.error("end tag name: "+S+" is not complete:"+T.tagName),k=g+1+S.length):S.match(/\s</)&&(S=S.replace(/[\s<].*/,""),s.error("end tag name: "+S+" maybe not complete"),k=g+1+S.length);var C=T.localNSMap,v=T.tagName==S,E=v||T.tagName&&T.tagName.toLowerCase()==S.toLowerCase();if(E){if(i.endElement(T.uri,T.localName,S),C)for(var M in C)Object.prototype.hasOwnProperty.call(C,M)&&i.endPrefixMapping(M);v||s.fatalError("end tag name: "+S+" is not match the current start tagName:"+T.tagName)}else d.push(T);k++;break;case"?":f&&c(g),k=SB(r,g,i);break;case"!":f&&c(g),k=wB(r,g,i,s);break;default:f&&c(g);var A=new J1,B=d[d.length-1].currentNSMap,k=bB(r,g,A,B,o,s),L=A.length;if(!A.closed&&TB(r,k,A.tagName,m)&&(A.closed=!0,t.nbsp||s.warning("unclosed xml attribute")),f&&L){for(var j=Y1(f,{}),be=0;be<L;be++){var wt=A[be];c(wt.offset),wt.locator=Y1(f,{})}i.locator=j,K1(A,i,B)&&d.push(A),i.locator=f}else K1(A,i,B)&&d.push(A);Ga.isHTML(A.uri)&&!A.closed?k=yB(r,k,A.tagName,o,i):k++}}catch(U){if(U instanceof nn)throw U;s.error("element parse error: "+U),k=-1}k>x?x=k:a(Math.max(g,x)+1)}}function Y1(r,e){return e.lineNumber=r.lineNumber,e.columnNumber=r.columnNumber,e}function bB(r,e,t,i,s,n){function o(d,m,x){t.attributeNames.hasOwnProperty(d)&&n.fatalError("Attribute "+d+" redefined"),t.addValue(d,m.replace(/[\t\n\r]/g," ").replace(/&#?\w+;/g,s),x)}for(var a,c,u=++e,l=Fa;;){var h=r.charAt(u);switch(h){case"=":if(l===ri)a=r.slice(e,u),l=Ua;else if(l===tn)l=Ua;else throw new Error("attribute equal must after attrName");break;case"'":case'"':if(l===Ua||l===ri)if(l===ri&&(n.warning('attribute value must after "="'),a=r.slice(e,u)),e=u+1,u=r.indexOf(h,e),u>0)c=r.slice(e,u),o(a,c,e-1),l=sn;else throw new Error("attribute value no end '"+h+"' match");else if(l==rn)c=r.slice(e,u),o(a,c,e),n.warning('attribute "'+a+'" missed start quot('+h+")!!"),e=u+1,l=sn;else throw new Error('attribute value must after "="');break;case"/":switch(l){case Fa:t.setTagName(r.slice(e,u));case sn:case Oa:case Ml:l=Ml,t.closed=!0;case rn:case ri:break;case tn:t.closed=!0;break;default:throw new Error("attribute invalid close char('/')")}break;case"":return n.error("unexpected end of input"),l==Fa&&t.setTagName(r.slice(e,u)),u;case">":switch(l){case Fa:t.setTagName(r.slice(e,u));case sn:case Oa:case Ml:break;case rn:case ri:c=r.slice(e,u),c.slice(-1)==="/"&&(t.closed=!0,c=c.slice(0,-1));case tn:l===tn&&(c=a),l==rn?(n.warning('attribute "'+c+'" missed quot(")!'),o(a,c,e)):((!Ga.isHTML(i[""])||!c.match(/^(?:disabled|checked|selected)$/i))&&n.warning('attribute "'+c+'" missed value!! "'+c+'" instead!!'),o(c,c,e));break;case Ua:throw new Error("attribute value missed!!")}return u;case"\x80":h=" ";default:if(h<=" ")switch(l){case Fa:t.setTagName(r.slice(e,u)),l=Oa;break;case ri:a=r.slice(e,u),l=tn;break;case rn:var c=r.slice(e,u);n.warning('attribute "'+c+'" missed quot(")!!'),o(a,c,e);case sn:l=Oa;break}else switch(l){case tn:var f=t.tagName;(!Ga.isHTML(i[""])||!a.match(/^(?:disabled|checked|selected)$/i))&&n.warning('attribute "'+a+'" missed value!! "'+a+'" instead2!!'),o(a,a,e),e=u,l=ri;break;case sn:n.warning('attribute space is required"'+a+'"!!');case Oa:l=ri,e=u;break;case Ua:l=rn,e=u;break;case Ml:throw new Error("elements closed character '/' and '>' must be connected to")}}u++}}function K1(r,e,t){for(var i=r.tagName,s=null,h=r.length;h--;){var n=r[h],o=n.qName,a=n.value,f=o.indexOf(":");if(f>0)var c=n.prefix=o.slice(0,f),u=o.slice(f+1),l=c==="xmlns"&&u;else u=o,c=null,l=o==="xmlns"&&"";n.localName=u,l!==!1&&(s==null&&(s={},Z1(t,t={})),t[l]=s[l]=a,n.uri=Ga.XMLNS,e.startPrefixMapping(l,a))}for(var h=r.length;h--;){n=r[h];var c=n.prefix;c&&(c==="xml"&&(n.uri=Ga.XML),c!=="xmlns"&&(n.uri=t[c||""]))}var f=i.indexOf(":");f>0?(c=r.prefix=i.slice(0,f),u=r.localName=i.slice(f+1)):(c=null,u=r.localName=i);var d=r.uri=t[c||""];if(e.startElement(d,u,i,r),r.closed){if(e.endElement(d,u,i),s)for(c in s)Object.prototype.hasOwnProperty.call(s,c)&&e.endPrefixMapping(c)}else return r.currentNSMap=t,r.localNSMap=s,!0}function yB(r,e,t,i,s){if(/^(?:script|textarea)$/i.test(t)){var n=r.indexOf("</"+t+">",e),o=r.substring(e+1,n);if(/[&<]/.test(o))return/^script$/i.test(t)?(s.characters(o,0,o.length),n):(o=o.replace(/&#?\w+;/g,i),s.characters(o,0,o.length),n)}return e+1}function TB(r,e,t,i){var s=i[t];return s==null&&(s=r.lastIndexOf("</"+t+">"),s<e&&(s=r.lastIndexOf("</"+t)),i[t]=s),s<e}function Z1(r,e){for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t])}function wB(r,e,t,i){var s=r.charAt(e+2);switch(s){case"-":if(r.charAt(e+3)==="-"){var n=r.indexOf("-->",e+4);return n>e?(t.comment(r,e+4,n-e-4),n+3):(i.error("Unclosed comment"),-1)}else return-1;default:if(r.substr(e+3,6)=="CDATA["){var n=r.indexOf("]]>",e+9);return t.startCDATA(),t.characters(r,e+9,n-e-9),t.endCDATA(),n+3}var o=vB(r,e),a=o.length;if(a>1&&/!doctype/i.test(o[0][0])){var c=o[1][0],u=!1,l=!1;a>3&&(/^public$/i.test(o[2][0])?(u=o[3][0],l=a>4&&o[4][0]):/^system$/i.test(o[2][0])&&(l=o[3][0]));var h=o[a-1];return t.startDTD(c,u,l),t.endDTD(),h.index+h[0].length}}return-1}function SB(r,e,t){var i=r.indexOf("?>",e);if(i){var s=r.substring(e,i).match(/^<\?(\S*)\s*([\s\S]*?)\s*$/);if(s){var n=s[0].length;return t.processingInstruction(s[1],s[2]),i+2}else return-1}return-1}function J1(){this.attributeNames={}}J1.prototype={setTagName:function(r){if(!X1.test(r))throw new Error("invalid tagName:"+r);this.tagName=r},addValue:function(r,e,t){if(!X1.test(r))throw new Error("invalid attribute:"+r);this.attributeNames[r]=this.length,this[this.length++]={qName:r,value:e,offset:t}},length:0,getLocalName:function(r){return this[r].localName},getLocator:function(r){return this[r].locator},getQName:function(r){return this[r].qName},getURI:function(r){return this[r].uri},getValue:function(r){return this[r].value}};function vB(r,e){var t,i=[],s=/'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g;for(s.lastIndex=e,s.exec(r);t=s.exec(r);)if(i.push(t),t[1])return i}Bp.XMLReader=Q1;Bp.ParseError=nn});var aC=Or(Fl=>{var CB=Aa(),EB=Ap(),tC=q1(),sC=eC(),kB=EB.DOMImplementation,rC=CB.NAMESPACE,AB=sC.ParseError,PB=sC.XMLReader;function nC(r){return r.replace(/\r[\n\u0085]/g,`
1091
1091
  `).replace(/[\r\u0085\u2028]/g,`
1092
- `)}function RE(r){this.options=r||{locator:{}}}RE.prototype.parseFromString=function(r,e){var t=this.options,i=new sD,s=t.domBuilder||new uc,n=t.errorHandler,o=t.locator,a=t.xmlns||{},c=/\/x?html?$/.test(e),u=c?EE.HTML_ENTITIES:EE.XML_ENTITIES;o&&s.setDocumentLocator(o),i.errorHandler=nD(n,s,o),i.domBuilder=t.domBuilder||s,c&&(a[""]=kE.HTML),a.xml=a.xml||kE.XML;var l=t.normalizeLineEndings||BE;return r&&typeof r=="string"?i.parse(l(r),a,u):i.errorHandler.error("invalid doc source"),s.doc};function nD(r,e,t){if(!r){if(e instanceof uc)return e;r=e}var i={},s=r instanceof Function;t=t||{};function n(o){var a=r[o];!a&&s&&(a=r.length==2?function(c){r(o,c)}:r),i[o]=a&&function(c){a("[xmldom "+o+"] "+c+pg(t))}||function(){}}return n("warning"),n("error"),n("fatalError"),i}function uc(){this.cdata=!1}function En(r,e){e.lineNumber=r.lineNumber,e.columnNumber=r.columnNumber}uc.prototype={startDocument:function(){this.doc=new rD().createDocument(null,null,null),this.locator&&(this.doc.documentURI=this.locator.systemId)},startElement:function(r,e,t,i){var s=this.doc,n=s.createElementNS(r,t||e),o=i.length;xh(this,n),this.currentElement=n,this.locator&&En(this.locator,n);for(var a=0;a<o;a++){var r=i.getURI(a),c=i.getValue(a),t=i.getQName(a),u=s.createAttributeNS(r,t);this.locator&&En(i.getLocator(a),u),u.value=u.nodeValue=c,n.setAttributeNode(u)}},endElement:function(r,e,t){var i=this.currentElement,s=i.tagName;this.currentElement=i.parentNode},startPrefixMapping:function(r,e){},endPrefixMapping:function(r){},processingInstruction:function(r,e){var t=this.doc.createProcessingInstruction(r,e);this.locator&&En(this.locator,t),xh(this,t)},ignorableWhitespace:function(r,e,t){},characters:function(r,e,t){if(r=AE.apply(this,arguments),r){if(this.cdata)var i=this.doc.createCDATASection(r);else var i=this.doc.createTextNode(r);this.currentElement?this.currentElement.appendChild(i):/^\s*$/.test(r)&&this.doc.appendChild(i),this.locator&&En(this.locator,i)}},skippedEntity:function(r){},endDocument:function(){this.doc.normalize()},setDocumentLocator:function(r){(this.locator=r)&&(r.lineNumber=0)},comment:function(r,e,t){r=AE.apply(this,arguments);var i=this.doc.createComment(r);this.locator&&En(this.locator,i),xh(this,i)},startCDATA:function(){this.cdata=!0},endCDATA:function(){this.cdata=!1},startDTD:function(r,e,t){var i=this.doc.implementation;if(i&&i.createDocumentType){var s=i.createDocumentType(r,e,t);this.locator&&En(this.locator,s),xh(this,s),this.doc.doctype=s}},warning:function(r){console.warn("[xmldom warning] "+r,pg(this.locator))},error:function(r){console.error("[xmldom error] "+r,pg(this.locator))},fatalError:function(r){throw new iD(r,this.locator)}};function pg(r){if(r)return`
1093
- @`+(r.systemId||"")+"#[line:"+r.lineNumber+",col:"+r.columnNumber+"]"}function AE(r,e,t){return typeof r=="string"?r.substr(e,t):r.length>=e+t||e?new java.lang.String(r,e,t)+"":r}"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl".replace(/\w+/g,function(r){uc.prototype[r]=function(){return null}});function xh(r,e){r.currentElement?r.currentElement.appendChild(e):r.doc.appendChild(e)}_h.__DOMHandler=uc;_h.normalizeLineEndings=BE;_h.DOMParser=RE});var IE=Fr(bh=>{var ME=dg();bh.DOMImplementation=ME.DOMImplementation;bh.XMLSerializer=ME.XMLSerializer;bh.DOMParser=DE().DOMParser});var Ur;(function(r){r.version="2.0";function e(t){return"id"in t?t.id:null}r.getId=e,r.errorCodes={serverError:-32e3,unexposedError:-32001}})(Ur||(Ur={}));var mc=class extends Error{name=this.constructor.name},li=class extends Error{name=this.constructor.name};async function wg({tap:r,request:e,action:t}){let i=Ur.getId(e);try{let s=await t();return i===null?null:{id:i,result:s,jsonrpc:Ur.version}}catch(s){return r.rpcError({request:e,error:s}),i===null?null:{id:i,jsonrpc:Ur.version,error:s instanceof mc?{code:Ur.errorCodes.serverError,message:s.message}:{code:Ur.errorCodes.unexposedError,message:"unexposed error"}}}}var pc=()=>r=>({plain:r.none,errMessage:r.mix(r.brightRed,r.bold),errName:r.red,errStack:r.mix(r.red,r.dim),timestamp:r.blue,timestampErr:r.red});function Sg(){return pc()}var Or=Object.freeze({black:"\x1B[30m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",white:"\x1B[37m",brightBlack:"\x1B[90m",brightRed:"\x1B[91m",brightGreen:"\x1B[92m",brightYellow:"\x1B[93m",brightBlue:"\x1B[94m",brightMagenta:"\x1B[95m",brightCyan:"\x1B[96m",brightWhite:"\x1B[97m",bgBlack:"\x1B[40m",bgRed:"\x1B[41m",bgGreen:"\x1B[42m",bgYellow:"\x1B[43m",bgBlue:"\x1B[44m",bgMagenta:"\x1B[45m",bgCyan:"\x1B[46m",bgWhite:"\x1B[47m",bgBrightBlack:"\x1B[100m",bgBrightRed:"\x1B[101m",bgBrightGreen:"\x1B[102m",bgBrightYellow:"\x1B[103m",bgBrightBlue:"\x1B[104m",bgBrightMagenta:"\x1B[105m",bgBrightCyan:"\x1B[106m",bgBrightWhite:"\x1B[107m",bold:"\x1B[1m",dim:"\x1B[2m",italic:"\x1B[3m",underline:"\x1B[4m",inverse:"\x1B[7m",hidden:"\x1B[8m",strikethrough:"\x1B[9m",reset:"\x1B[0m"});var gc=()=>({none:r=>r,uncolor:YE,mix:KE,hex:QE,rgb:vg,bgRgb:ZE});function YE(r){return r.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,"")}function KE(...r){return e=>{for(let t of r)e=t(e);return e}}function QE(r){r=r.replace(/^#/,"");let e,t,i,s;if(r.length===3)e=parseInt(r.split("").map(n=>n+n).join(""),16);else if(r.length===6)e=parseInt(r,16);else throw new Error("Invalid hex color");return t=e>>16&255,i=e>>8&255,s=e&255,vg(t,i,s)}function vg(r,e,t){let i=`\x1B[38;2;${r};${e};${t}m`;return s=>`${i}${s}${Or.reset}`}function ZE(r,e,t){let i=`\x1B[48;2;${r};${e};${t}m`;return s=>`${i}${s}${Or.reset}`}var Rn={...Object.fromEntries(Object.entries(Or).map(([r])=>[r,e=>e])),...gc()};var Dn={...Object.fromEntries(Object.entries(Or).map(([r,e])=>[r,t=>`${e}${t}${Or.reset}`])),...gc()};function Eh(){return typeof Deno<"u"&&typeof Deno.version<"u"}function kh(){return typeof process<"u"&&process.versions&&process.versions.node}function Cg(){return kh()?process.env.FORCE_COLOR||process.stdout.isTTY&&process.env.TERM!=="dumb":Eh()?Deno.env.get("FORCE_COLOR")||Deno.isatty(Deno.stdout.rid)&&Deno.env.get("TERM")!=="dumb":!1}var Ah=()=>Cg()?Dn:Rn;var xc=()=>({colors:r,theme:e})=>{let t=e(r);function i(o){let a=o.stack?`
1092
+ `)}function oC(r){this.options=r||{locator:{}}}oC.prototype.parseFromString=function(r,e){var t=this.options,i=new PB,s=t.domBuilder||new Na,n=t.errorHandler,o=t.locator,a=t.xmlns||{},c=/\/x?html?$/.test(e),u=c?tC.HTML_ENTITIES:tC.XML_ENTITIES;o&&s.setDocumentLocator(o),i.errorHandler=BB(n,s,o),i.domBuilder=t.domBuilder||s,c&&(a[""]=rC.HTML),a.xml=a.xml||rC.XML;var l=t.normalizeLineEndings||nC;return r&&typeof r=="string"?i.parse(l(r),a,u):i.errorHandler.error("invalid doc source"),s.doc};function BB(r,e,t){if(!r){if(e instanceof Na)return e;r=e}var i={},s=r instanceof Function;t=t||{};function n(o){var a=r[o];!a&&s&&(a=r.length==2?function(c){r(o,c)}:r),i[o]=a&&function(c){a("[xmldom "+o+"] "+c+Rp(t))}||function(){}}return n("warning"),n("error"),n("fatalError"),i}function Na(){this.cdata=!1}function on(r,e){e.lineNumber=r.lineNumber,e.columnNumber=r.columnNumber}Na.prototype={startDocument:function(){this.doc=new kB().createDocument(null,null,null),this.locator&&(this.doc.documentURI=this.locator.systemId)},startElement:function(r,e,t,i){var s=this.doc,n=s.createElementNS(r,t||e),o=i.length;Il(this,n),this.currentElement=n,this.locator&&on(this.locator,n);for(var a=0;a<o;a++){var r=i.getURI(a),c=i.getValue(a),t=i.getQName(a),u=s.createAttributeNS(r,t);this.locator&&on(i.getLocator(a),u),u.value=u.nodeValue=c,n.setAttributeNode(u)}},endElement:function(r,e,t){var i=this.currentElement,s=i.tagName;this.currentElement=i.parentNode},startPrefixMapping:function(r,e){},endPrefixMapping:function(r){},processingInstruction:function(r,e){var t=this.doc.createProcessingInstruction(r,e);this.locator&&on(this.locator,t),Il(this,t)},ignorableWhitespace:function(r,e,t){},characters:function(r,e,t){if(r=iC.apply(this,arguments),r){if(this.cdata)var i=this.doc.createCDATASection(r);else var i=this.doc.createTextNode(r);this.currentElement?this.currentElement.appendChild(i):/^\s*$/.test(r)&&this.doc.appendChild(i),this.locator&&on(this.locator,i)}},skippedEntity:function(r){},endDocument:function(){this.doc.normalize()},setDocumentLocator:function(r){(this.locator=r)&&(r.lineNumber=0)},comment:function(r,e,t){r=iC.apply(this,arguments);var i=this.doc.createComment(r);this.locator&&on(this.locator,i),Il(this,i)},startCDATA:function(){this.cdata=!0},endCDATA:function(){this.cdata=!1},startDTD:function(r,e,t){var i=this.doc.implementation;if(i&&i.createDocumentType){var s=i.createDocumentType(r,e,t);this.locator&&on(this.locator,s),Il(this,s),this.doc.doctype=s}},warning:function(r){console.warn("[xmldom warning] "+r,Rp(this.locator))},error:function(r){console.error("[xmldom error] "+r,Rp(this.locator))},fatalError:function(r){throw new AB(r,this.locator)}};function Rp(r){if(r)return`
1093
+ @`+(r.systemId||"")+"#[line:"+r.lineNumber+",col:"+r.columnNumber+"]"}function iC(r,e,t){return typeof r=="string"?r.substr(e,t):r.length>=e+t||e?new java.lang.String(r,e,t)+"":r}"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl".replace(/\w+/g,function(r){Na.prototype[r]=function(){return null}});function Il(r,e){r.currentElement?r.currentElement.appendChild(e):r.doc.appendChild(e)}Fl.__DOMHandler=Na;Fl.normalizeLineEndings=nC;Fl.DOMParser=oC});var uC=Or(Ul=>{var cC=Ap();Ul.DOMImplementation=cC.DOMImplementation;Ul.XMLSerializer=cC.XMLSerializer;Ul.DOMParser=aC().DOMParser});function Ph(r,e){return{error:t=>r.error({...e,...t}),rpcRequest:t=>r.rpcRequest({...e,...t}),rpcError:t=>r.rpcError({...e,...t})}}var fc=()=>r=>({plain:r.none,errMessage:r.mix(r.brightRed,r.bold),errName:r.red,errStack:r.mix(r.red,r.dim),timestamp:r.blue,timestampErr:r.red});function Tg(){return fc()}var Gr=Object.freeze({black:"\x1B[30m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",white:"\x1B[37m",brightBlack:"\x1B[90m",brightRed:"\x1B[91m",brightGreen:"\x1B[92m",brightYellow:"\x1B[93m",brightBlue:"\x1B[94m",brightMagenta:"\x1B[95m",brightCyan:"\x1B[96m",brightWhite:"\x1B[97m",bgBlack:"\x1B[40m",bgRed:"\x1B[41m",bgGreen:"\x1B[42m",bgYellow:"\x1B[43m",bgBlue:"\x1B[44m",bgMagenta:"\x1B[45m",bgCyan:"\x1B[46m",bgWhite:"\x1B[47m",bgBrightBlack:"\x1B[100m",bgBrightRed:"\x1B[101m",bgBrightGreen:"\x1B[102m",bgBrightYellow:"\x1B[103m",bgBrightBlue:"\x1B[104m",bgBrightMagenta:"\x1B[105m",bgBrightCyan:"\x1B[106m",bgBrightWhite:"\x1B[107m",bold:"\x1B[1m",dim:"\x1B[2m",italic:"\x1B[3m",underline:"\x1B[4m",inverse:"\x1B[7m",hidden:"\x1B[8m",strikethrough:"\x1B[9m",reset:"\x1B[0m"});var mc=()=>({none:r=>r,uncolor:ZE,mix:JE,hex:ek,rgb:wg,bgRgb:tk});function ZE(r){return r.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,"")}function JE(...r){return e=>{for(let t of r)e=t(e);return e}}function ek(r){r=r.replace(/^#/,"");let e,t,i,s;if(r.length===3)e=parseInt(r.split("").map(n=>n+n).join(""),16);else if(r.length===6)e=parseInt(r,16);else throw new Error("Invalid hex color");return t=e>>16&255,i=e>>8&255,s=e&255,wg(t,i,s)}function wg(r,e,t){let i=`\x1B[38;2;${r};${e};${t}m`;return s=>`${i}${s}${Gr.reset}`}function tk(r,e,t){let i=`\x1B[48;2;${r};${e};${t}m`;return s=>`${i}${s}${Gr.reset}`}var Bn={...Object.fromEntries(Object.entries(Gr).map(([r])=>[r,e=>e])),...mc()};var Rn={...Object.fromEntries(Object.entries(Gr).map(([r,e])=>[r,t=>`${e}${t}${Gr.reset}`])),...mc()};function Bh(){return typeof Deno<"u"&&typeof Deno.version<"u"}function Rh(){return typeof process<"u"&&process.versions&&process.versions.node}function Sg(){return Rh()?process.env.FORCE_COLOR||process.stdout.isTTY&&process.env.TERM!=="dumb":Bh()?Deno.env.get("FORCE_COLOR")||Deno.isatty(Deno.stdout.rid)&&Deno.env.get("TERM")!=="dumb":!1}var Dh=()=>Sg()?Rn:Bn;var pc=()=>({colors:r,theme:e})=>{let t=e(r);function i(o){let a=o.stack?`
1094
1094
  `+o.stack+`
1095
- `:"";return[t.errName(o.name+":"),t.errMessage(o.message)].join(" ")+t.errStack(a)}function s(o){return o&&o instanceof Error?i(o):o}function n(o){return o&&o instanceof Error?i(o):t.errMessage(o)}return{stdout:o=>o.map(s),stderr:o=>o.map(n)}};function Mn(...r){return e=>({stdout:t=>{for(let i of r)t=i(e).stdout(t);return t},stderr:t=>{for(let i of r)t=i(e).stderr(t);return t}})}function JE(){return{icon:"\u{1F6A8}",now:()=>Date.now()}}var _c=r=>({colors:e,theme:t})=>{let i={...JE(),...r},s=t(e),n=new Date(i.now()),o=n.getUTCFullYear().toString().padStart(4,"0"),a=(n.getUTCMonth()+1).toString().padStart(2,"0"),c=n.getUTCDate().toString().padStart(2,"0"),u=`${o}-${a}-${c}`,l=n.getUTCHours().toString().padStart(2,"0"),h=n.getUTCMinutes().toString().padStart(2,"0"),f=n.getUTCSeconds().toString().padStart(2,"0"),d=n.getUTCMilliseconds().toString().padStart(3,"0"),m=`${l}:${h}:${f}.${d}`,x=`${u}::${m}`;return{stdout:g=>[s.timestamp(x),...g],stderr:g=>[s.timestampErr(x),...[i.icon].filter(Boolean),...g]}};function Eg(){return Mn(xc(),_c())}var bc=()=>({stdout:async r=>{await Deno.stdout.write(new TextEncoder().encode(r+`
1095
+ `:"";return[t.errName(o.name+":"),t.errMessage(o.message)].join(" ")+t.errStack(a)}function s(o){return o&&o instanceof Error?i(o):o}function n(o){return o&&o instanceof Error?i(o):t.errMessage(o)}return{stdout:o=>o.map(s),stderr:o=>o.map(n)}};function Dn(...r){return e=>({stdout:t=>{for(let i of r)t=i(e).stdout(t);return t},stderr:t=>{for(let i of r)t=i(e).stderr(t);return t}})}function rk(){return{icon:"\u{1F6A8}",now:()=>Date.now()}}var gc=r=>({colors:e,theme:t})=>{let i={...rk(),...r},s=t(e),n=new Date(i.now()),o=n.getUTCFullYear().toString().padStart(4,"0"),a=(n.getUTCMonth()+1).toString().padStart(2,"0"),c=n.getUTCDate().toString().padStart(2,"0"),u=`${o}-${a}-${c}`,l=n.getUTCHours().toString().padStart(2,"0"),h=n.getUTCMinutes().toString().padStart(2,"0"),f=n.getUTCSeconds().toString().padStart(2,"0"),d=n.getUTCMilliseconds().toString().padStart(3,"0"),m=`${l}:${h}:${f}.${d}`,x=`${u}::${m}`;return{stdout:g=>[s.timestamp(x),...g],stderr:g=>[s.timestampErr(x),...[i.icon].filter(Boolean),...g]}};function vg(){return Dn(pc(),gc())}var xc=()=>({stdout:async r=>{await Deno.stdout.write(new TextEncoder().encode(r+`
1096
1096
  `))},stderr:async r=>{await Deno.stderr.write(new TextEncoder().encode(r+`
1097
- `))}});var yc=()=>({stdout:async r=>void process.stdout.write(r+`
1097
+ `))}});var _c=()=>({stdout:async r=>void process.stdout.write(r+`
1098
1098
  `),stderr:async r=>void process.stderr.write(r+`
1099
- `)});var Tc=()=>({stdout:async r=>console.log(r),stderr:async r=>console.error(r)});var kg=()=>Eh()?bc():kh()?yc():Tc();var Ag=()=>({stdout:async()=>{},stderr:async()=>{}});function Pg(){return()=>({stdout:r=>r,stderr:r=>r})}var hi=class r{static writers={auto:kg,void:Ag,deno:bc,node:yc,console:Tc};static colors={auto:Ah,colorful:()=>Dn,colorless:()=>Rn};static themes={auto:Sg,basic:pc};static shapers={auto:Eg,none:Pg,errors:xc,timestamp:_c};writer=r.writers.auto();colors=r.colors.auto();theme=r.themes.auto();shaper=r.shapers.auto();async log(...e){await this.writer.stdout(this.shaper(this).stdout(e).join(" "))}async error(...e){await this.writer.stderr(this.shaper(this).stderr(e).join(" "))}setWriter(e){return this.writer=e,this}setColors(e){return this.colors=e,this}setTheme(e){return this.theme=e,this}setShaper(...e){return this.shaper=Mn(...e),this}};var Lt=Object.freeze({eq(r,e){if(r.length!==e.length)return!1;for(let t=0;t<=r.length;t++)if(r.at(t)!==e.at(t))return!1;return!0},random(r){return crypto.getRandomValues(new Uint8Array(r))}});var di=Object.freeze({fromBytes(r){return[...r].map(e=>e.toString(16).padStart(2,"0")).join("")},toBytes(r){if(r.length%2!==0)throw new Error("must have even number of hex characters");let e=new Uint8Array(r.length/2);for(let t=0;t<r.length;t+=2)e[t/2]=parseInt(r.slice(t,t+2),16);return e},random(r=32){return this.fromBytes(Lt.random(r))},string(r){return di.fromBytes(r)},bytes(r){return di.toBytes(r)}});var Ph=58,wc="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",Bh=Object.freeze({fromBytes(r){let e=BigInt("0x"+di.fromBytes(r)),t="";for(;e>0;){let i=e%BigInt(Ph);e=e/BigInt(Ph),t=wc[Number(i)]+t}for(let i of r)if(i===0)t=wc[0]+t;else break;return t},toBytes(r){let e=BigInt(0);for(let o of r){let a=wc.indexOf(o);if(a===-1)throw new Error(`Invalid character '${o}' in base58 string`);e=e*BigInt(Ph)+BigInt(a)}let t=e.toString(16);t.length%2!==0&&(t="0"+t);let i=di.toBytes(t),s=0;for(let o of r)if(o===wc[0])s++;else break;let n=new Uint8Array(s+i.length);return n.set(i,s),n},random(r=32){return this.fromBytes(Lt.random(r))},string(r){return Bh.fromBytes(r)},bytes(r){return Bh.toBytes(r)}});var Bg=class{lexicon;static lexicons=Object.freeze({base2:{characters:"01"},hex:{characters:"0123456789abcdef"},base36:{characters:"0123456789abcdefghijklmnopqrstuvwxyz"},base58:{characters:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"},base62:{characters:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"},base64url:{negativePrefix:"~",characters:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"},base64:{characters:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",padding:{character:"=",size:4}}});lookup;negativePrefix;constructor(e){this.lexicon=e,this.lookup=Object.fromEntries([...e.characters].map((t,i)=>[t,i])),this.negativePrefix=e.negativePrefix??"-"}toBytes(e){let t=Math.log2(this.lexicon.characters.length);if(Number.isInteger(t)){let a=0,c=0,u=[];for(let l of e){if(l===this.lexicon.padding?.character)continue;let h=this.lookup[l];if(h===void 0)throw new Error(`Invalid character: ${l}`);for(a=a<<t|h,c+=t;c>=8;)c-=8,u.push(a>>c&255)}return new Uint8Array(u)}let i=0n,s=BigInt(this.lexicon.characters.length),n=!1;e.startsWith(this.negativePrefix)&&(e=e.slice(this.negativePrefix.length),n=!0);for(let a of e){let c=this.lookup[a];if(c===void 0)throw new Error(`Invalid character: ${a}`);i=i*s+BigInt(c)}let o=[];for(;i>0n;)o.unshift(Number(i%256n)),i=i/256n;return new Uint8Array(o)}fromBytes(e){let t=Math.log2(this.lexicon.characters.length);if(Number.isInteger(t)){let o=0,a=0,c="";for(let u of e)for(o=o<<8|u,a+=8;a>=t;){a-=t;let l=o>>a&(1<<t)-1;c+=this.lexicon.characters[l]}if(a>0){let u=o<<t-a&(1<<t)-1;c+=this.lexicon.characters[u]}if(this.lexicon.padding)for(;c.length%this.lexicon.padding.size!==0;)c+=this.lexicon.padding.character;return c}let i=0n;for(let o of e)i=(i<<8n)+BigInt(o);if(i===0n)return this.lexicon.characters[0];let s=BigInt(this.lexicon.characters.length),n="";for(;i>0n;)n=this.lexicon.characters[Number(i%s)]+n,i=i/s;return n}toInteger(e){if(!e)return 0;let t=0n,i=!1,s=BigInt(this.lexicon.characters.length);e.startsWith(this.negativePrefix)&&(e=e.slice(this.negativePrefix.length),i=!0);for(let n of e){let o=this.lookup[n];if(o===void 0)throw new Error(`Invalid character: ${n}`);t=t*s+BigInt(o)}return Number(i?-t:t)}fromInteger(e){e=Math.floor(e);let t=e<0,i=BigInt(t?-e:e);if(i===0n)return this.lexicon.characters[0];let s=BigInt(this.lexicon.characters.length),n="";for(;i>0n;)n=this.lexicon.characters[Number(i%s)]+n,i=i/s;return t?`${this.negativePrefix}${n}`:n}random(e=32){return this.fromBytes(Lt.random(e))}};var Rh=Object.freeze({fromBytes(r){return typeof btoa=="function"?btoa(String.fromCharCode(...r)):Buffer.from(r).toString("base64")},toBytes(r){return typeof atob=="function"?Uint8Array.from(atob(r),e=>e.charCodeAt(0)):Uint8Array.from(Buffer.from(r,"base64"))},random(r=32){return this.fromBytes(Lt.random(r))},string(r){return Rh.fromBytes(r)},bytes(r){return Rh.toBytes(r)}});var Rg=Object.freeze({fromBytes(r){return new TextDecoder().decode(r)},toBytes(r){return new TextEncoder().encode(r)},string(r){return Rg.fromBytes(r)},bytes(r){return Rg.toBytes(r)}});var Sc=Object.freeze({set:r=>r!=null,unset:r=>r==null,boolean:r=>typeof r=="boolean",number:r=>typeof r=="number",string:r=>typeof r=="string",bigint:r=>typeof r=="bigint",object:r=>typeof r=="object"&&r!==null,array:r=>Array.isArray(r),fn:r=>typeof r=="function",symbol:r=>typeof r=="symbol"});var Dh=class extends Error{milliseconds;name=this.constructor.name;constructor(e,t){super(`${t}, timed out in ${(e/1e3).toFixed(1)} seconds`),this.milliseconds=e}};function Mh(r,e,t){return r<=0||r===1/0?t():new Promise((i,s)=>{let n=setTimeout(()=>s(new Dh(r,e)),r);t().then(i).catch(s).finally(()=>clearTimeout(n))})}function Rt(){let r,e,t=new Promise((s,n)=>{r=s,e=n});function i(s){return s.then(r).catch(e),t}return{promise:t,resolve:r,reject:e,entangle:i}}function Dg(r,e){let t=r;for(let i of e)if(t=t[i],Sc.unset(t))break;return t}var vc=class{items;#e=[];constructor(e){this.items=e,this.#e=[...e]}pull(){this.#e.length===0&&(this.#e=[...this.items]);let e=Math.floor(Math.random()*this.#e.length),[t]=this.#e.splice(e,1);return t}};function ek(r){return{map:e=>Mg(r,e),filter:e=>Ig(r,e)}}ek.pipe=Object.freeze({map:r=>e=>Mg(e,r),filter:r=>e=>Ig(e,r)});var Mg=(r,e)=>Object.fromEntries(Object.entries(r).map(([t,i])=>[t,e(i,t)])),Ig=(r,e)=>Object.fromEntries(Object.entries(r).filter(([t,i])=>e(i,t)));function tk(){let r=new Set;function e(n){return r.add(n),()=>{r.delete(n)}}async function t(...n){await Promise.all([...r].map(o=>o(...n)))}async function i(){let{promise:n,resolve:o}=Rt(),a=e((...c)=>{o(c),a()});return n}function s(){r.clear()}return e.pub=t,e.sub=e,e.on=e,e.once=i,e.clear=s,t.pub=t,t.sub=e,t.on=e,t.once=i,t.clear=s,[t,e]}function Cc(r){let e=tk()[0];return r&&e.sub(r),e}var fi=class{#e=[];add(...e){return this.#e.push(...e),this}disposable(e){return this.bag(e,()=>e.dispose())}bag(e,t){return this.add(()=>t(e)),e}dispose(){for(let e of this.#e.reverse())e();this.#e=[]}};var Ec=class extends vc{constructor(){super(["\u{1F436}","\u{1F415}","\u{1F429}","\u{1F43A}","\u{1F98A}","\u{1F99D}","\u{1F431}","\u{1F408}","\u{1F42F}","\u{1F405}","\u{1F406}","\u{1F434}","\u{1F40E}","\u{1F984}","\u{1F993}","\u{1F98D}","\u{1F9A7}","\u{1F9A3}","\u{1F418}","\u{1F98F}","\u{1F99B}","\u{1F42D}","\u{1F401}","\u{1F400}","\u{1F439}","\u{1F430}","\u{1F407}","\u{1F9A8}","\u{1F9A1}","\u{1F998}","\u{1F999}","\u{1F43F}\uFE0F","\u{1F9A6}","\u{1F9A5}","\u{1F43B}","\u{1F428}","\u{1F43C}","\u{1F9AB}","\u{1F437}","\u{1F43D}","\u{1F416}","\u{1F417}","\u{1F42E}","\u{1F404}","\u{1F403}","\u{1F402}","\u{1F98C}","\u{1F410}","\u{1F40F}","\u{1F411}","\u{1F42A}","\u{1F42B}","\u{1F426}","\u{1F427}","\u{1F985}","\u{1F986}","\u{1F9A2}","\u{1F989}","\u{1F9A9}","\u{1F9A4}","\u{1F438}","\u{1F98E}","\u{1F422}","\u{1F40D}","\u{1F40A}","\u{1F420}","\u{1F41F}","\u{1F988}","\u{1F421}","\u{1F42C}","\u{1F40B}","\u{1F433}","\u{1F41E}","\u{1F41C}","\u{1F41D}","\u{1F98B}","\u{1F40C}","\u{1F997}","\u{1FAB2}","\u{1F99F}","\u{1F9A0}","\u{1FAC3}"])}};var In=class extends hi{static dummy(){return new this().setWriter(hi.writers.void())}request=async({request:e,label:t})=>{let i=this.colors.none;this.log(...[t].filter(Boolean),i(`${e.method}()`))};rpcError=async({request:e,error:t,label:i})=>{this.error(...[i].filter(Boolean),`${e.method}()`,t)};#e=new Ec;#t(e){return[this.colors.yellow(`[${e.ip}]`),this.colors.green(e.headers.origin?e.headers.origin:"(no-origin)")].join(" ")}http(e){let t=this.#t(e);return{error:this.error.bind(this),request:i=>this.request({...i,label:t}),rpcError:i=>this.rpcError({...i,label:t})}}webSocket(e){let t=this.#t(e),i=this.#e.pull(),s=this.colors.yellow,n=o=>{let a=t+" "+(o?i+s(" <-"):i+s(" ->"));return{error:this.error.bind(this),request:c=>this.request({...c,label:a}),rpcError:c=>this.rpcError({...c,label:a})}};return{remote:n(!0),local:n(!1)}}};var mi=class extends In{request=async()=>{}};var Fn=new mi;function rs({fns:r,tap:e=Fn}){return async t=>{let i=t.method.split("."),s=Dg(r,i),n=async()=>await s(...t.params);return e.request({request:t}),await wg({tap:e,request:t,action:n})}}var Fg=Symbol("tune"),rk=Symbol("query"),ik=Symbol("notify"),sk=Symbol("settings");function Ug(r){function e(t){let i={notify:void 0};return new Proxy(()=>{},{apply:(s,n,o)=>r(t,o,i),get:(s,n)=>{if(n!=="then")return n===Fg?o=>(...a)=>r(t,a,{...i,...o}):n===ik?(...o)=>r(t,o,{...i,notify:!0}):n===rk?(...o)=>r(t,o,{...i,notify:!1}):n===sk?i:(s[n]||(s[n]=e([...t,n])),s[n])},set:(s,n,o)=>(s[n]=o,!0)})}return e([])}function Gr(r){let{endpoint:e,tap:t=Fn}=r,i=1;return Ug(async(s,n,o)=>{let a=o.notify??r.notify??!1,c=o.transfer,u={jsonrpc:"2.0",method:s.join("."),params:n},l=a?u:{...u,id:i++};t.request({request:l});let h=await e(l,{transfer:c});if(a&&!h)return null;if(!h)throw new li("response was null, but shouldn't be, because the request was not a notification");if("error"in h)throw new li(r.label?`${r.label}: ${h.error.message}`:h.error.message);return h.result})}function Un(r){return Gr({endpoint:rs(r),tap:r.tap})}var pi=class{recv=Cc();sendRequest=Cc();sendResponse=Cc();static makeEntangledPair({origin:e="example.e280.org"}={}){let t=new this,i=new this,s=[t.sendRequest.sub(o=>i.recv(o,{origin:e})),t.sendResponse.sub(o=>i.recv(o,{origin:e})),i.sendRequest.sub(o=>t.recv(o,{origin:e})),i.sendResponse.sub(o=>t.recv(o,{origin:e}))];return[t,i,()=>s.forEach(o=>o())]}};var hr=class{transfer=void 0};function kc(r,e){return r.addEventListener("message",e),()=>r.removeEventListener("message",e)}function Og(r,e){return async(t,{transfer:i}={})=>{if("id"in t){let s=Rt();return e(t,i,s.promise),r.wait(t.id,t.method).then(n=>(s.resolve(n),n))}else{let s=Promise.resolve(null);return e(t,i,s),s}}}function Gg(r){let e=[],t=[];for(let i of Array.isArray(r)?r:[r])"method"in i?e.push(i):t.push(i);return{requests:e,responses:t}}async function Ng(r,e){let t=(await Promise.all(e.map(async i=>r(i)))).filter(i=>i!==null);return t.length===0?null:t.length===1?t[0]:t}var is=class extends pi{#e=new fi;constructor(e){super(),this.#e.add(this.sendRequest.sub((t,i)=>e.postMessage(t,i)),this.sendResponse.sub((t,i)=>e.postMessage(t,i)),kc(e,t=>this.recv(t.data,t)))}dispose(){this.#e.dispose()}};var Ih=Object.freeze({timeout:6e4,maxRequestBytes:1e7});var On=class{timeout;pending=new Map;constructor(e){this.timeout=e}async wait(e,t){let i=Rt();return this.pending.set(e,{method:t,deferred:i}),await Mh(this.timeout,`request #${e} ${t}()`,()=>i.promise)}deliverResponse(e){let t=this.pending.get(e.id);t&&("error"in e?t.deferred.reject(new li(e.error.message)):t.deferred.resolve(e))}};var ss=class{options;waiter;remoteEndpoint;remote;constructor(e){this.options=e;let{conduit:t}=e;this.waiter=new On(e.timeout??Ih.timeout),this.remoteEndpoint=Og(this.waiter,t.sendRequest.pub.bind(t.sendRequest)),this.remote=Gr({endpoint:this.remoteEndpoint,tap:e.tap}),t.recv.sub(i=>this.recv(i))}async recv(e){let t=new hr,{conduit:i,getLocalEndpoint:s}=this.options,{requests:n,responses:o}=Gg(e);for(let c of o)this.waiter.deliverResponse(c);if(!s)return;let a=await Ng(s(this.remote,t),n);a&&await i.sendResponse(a,t.transfer)}};var gi=class{host;constructor(e){this.host=e}},xi=class{work;constructor(e){this.work=e}};var dr=new mi;async function Lg(r,e,t={}){let i=t.tap??dr,s=new ss({tap:i,timeout:t.timeout??1/0,conduit:new is(r.getSelf()),getLocalEndpoint:(n,o)=>rs({tap:i,fns:e(new gi(n.host),o)})});return await s.remote.meta.ready(),s.remote.host}var ns=class{worker;messenger;constructor(e,t){this.worker=e,this.messenger=t}static async make(e,t){let i=t.tap??dr,s=e.loadWorker(t.workerUrl,t.label),n=Rt(),o={async ready(){n.resolve()}},a=new ss({tap:i,timeout:t.timeout??1/0,conduit:new is(s),getLocalEndpoint:(c,u)=>rs({tap:i,fns:{meta:o,host:t.setupHost(new xi(c),u)}})});return await n.promise,new this(s,a)}get work(){return this.messenger.remote}terminate(){this.worker.terminate()}};var Ac=class{threads;static async make(e,t){let i=t.workerCount??e.guessOptimalThreadCount(),s=await Promise.all([...Array(i)].map(async(n,o)=>ns.make(e,{...t,label:t.label??`${t.label??"comrade"}_${o+1}`})));return new this(s,{tap:t.tap})}work;#e=new Set;#t=[];constructor(e,t={}){this.threads=e;let i=t.tap??dr,s=async(n,o)=>this.#i({request:n,prom:Rt(),transfer:o?.transfer});this.work=Gr({tap:i,endpoint:s}),e.forEach(n=>this.#e.add(n))}get threadCount(){return this.threads.length}terminate(){for(let e of this.threads)e.terminate()}#i(e){return this.#t.push(e),this.#r(),e.prom.promise}#r(){for(;this.#e.size>0&&this.#t.length>0;){let e=[...this.#e].pop();this.#e.delete(e);let t=this.#t.shift();this.#e.delete(e);let i=e.messenger.remoteEndpoint(t.request,{transfer:t.transfer});t.prom.entangle(i).finally(()=>{this.#e.add(e),this.#r()})}}};var zg=r=>({thread:e=>ns.make(r,e),cluster:e=>Ac.make(r,e),worker:(e,t={})=>Lg(r,e,t),work:e=>e,host:e=>e,mocks(e){let{setupWork:t,setupHost:i,tap:s=dr}=e,n=new gi,o=new xi;return o.work=Un({tap:s,fns:t(n,new hr)}),n.host=Un({tap:s,fns:i(o,new hr)}),{workShell:o,hostShell:n,work:o.work,host:n.host}},mockWork(e,t=dr){let i=new gi,s=new xi;return s.work=Un({tap:t,fns:e(i,new hr)}),{workShell:s,hostShell:i,work:s.work,mockHost:n=>(i.host=Un({tap:t,fns:n(s,new hr)}),{workShell:s,hostShell:i,work:s.work,host:i.host})}}});var Vg=()=>({getSelf(){return self},guessOptimalThreadCount(){let r=navigator.hardwareConcurrency??1;return Math.max(1,r-1)},loadWorker(r,e){return new window.Worker(r,{name:e,type:"module"})},async loadWasm(r){return WebAssembly.instantiateStreaming(fetch(r))}});var ok=Vg(),Pc=zg(ok);function w(r){if(!r)throw new Error("Assertion failed.")}var Bc=r=>{let e=(r%360+360)%360;if(e===0||e===90||e===180||e===270)return e;throw new Error(`Invalid rotation ${r}.`)},he=r=>r&&r[r.length-1],_i=r=>r>=0&&r<2**32,pt=class r{constructor(e){this.bytes=e,this.pos=0}seekToByte(e){this.pos=8*e}readBit(){let e=Math.floor(this.pos/8),t=this.bytes[e]??0,i=7-(this.pos&7),s=(t&1<<i)>>i;return this.pos++,s}readBits(e){let t=0;for(let i=0;i<e;i++)t<<=1,t|=this.readBit();return t}readAlignedByte(){if(this.pos%8!==0)throw new Error("Bitstream is not byte-aligned.");let e=this.pos/8,t=this.bytes[e]??0;return this.pos+=8,t}skipBits(e){this.pos+=e}getBitsLeft(){return this.bytes.length*8-this.pos}clone(){let e=new r(this.bytes);return e.pos=this.pos,e}},L=r=>{let e=0;for(;r.readBit()===0&&e<32;)e++;if(e>=32)throw new Error("Invalid exponential-Golomb code.");return(1<<e)-1+r.readBits(e)},os=r=>{let e=L(r);return(e&1)===0?-(e>>1):e+1>>1};var zt=r=>r instanceof Uint8Array?r:r instanceof ArrayBuffer?new Uint8Array(r):new Uint8Array(r.buffer,r.byteOffset,r.byteLength),St=r=>r instanceof DataView?r:r instanceof ArrayBuffer?new DataView(r):new DataView(r.buffer,r.byteOffset,r.byteLength),bi=new TextEncoder,Fh=r=>Object.fromEntries(Object.entries(r).map(([e,t])=>[t,e])),yi={bt709:1,bt470bg:5,smpte170m:6,bt2020:9,smpte432:12},Rc=Fh(yi),Ti={bt709:1,smpte170m:6,linear:8,"iec61966-2-1":13,pg:16,hlg:18},Dc=Fh(Ti),wi={rgb:0,bt709:1,bt470bg:5,smpte170m:6,"bt2020-ncl":9},Mc=Fh(wi),Hg=r=>!!r&&!!r.primaries&&!!r.transfer&&!!r.matrix&&r.fullRange!==void 0,as=r=>r instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&r instanceof SharedArrayBuffer||ArrayBuffer.isView(r),wt=class{constructor(){this.currentPromise=Promise.resolve()}async acquire(){let e,t=new Promise(s=>{e=s}),i=this.currentPromise;return this.currentPromise=t,await i,e}},Uh=r=>[...r].map(e=>e.toString(16).padStart(2,"0")).join(""),Oh=r=>(r=r>>1&1431655765|(r&1431655765)<<1,r=r>>2&858993459|(r&858993459)<<2,r=r>>4&252645135|(r&252645135)<<4,r=r>>8&16711935|(r&16711935)<<8,r=r>>16&65535|(r&65535)<<16,r>>>0),Ae=(r,e,t)=>{let i=0,s=r.length-1,n=-1;for(;i<=s;){let o=i+s>>1,a=t(r[o]);a===e?(n=o,s=o-1):a<e?i=o+1:s=o-1}return n},Z=(r,e,t)=>{let i=0,s=r.length-1,n=-1;for(;i<=s;){let o=i+(s-i+1)/2|0;t(r[o])<=e?(n=o,i=o+1):s=o-1}return n},Ke=()=>{let r,e;return{promise:new Promise((i,s)=>{r=i,e=s}),resolve:r,reject:e}},Wg=(r,e)=>{let t=r.indexOf(e);t!==-1&&r.splice(t,1)},Gh=(r,e)=>{for(let t=r.length-1;t>=0;t--)if(e(r[t]))return r[t]},Ic=(r,e)=>{for(let t=r.length-1;t>=0;t--)if(e(r[t]))return t;return-1},$g=async function*(r){Symbol.iterator in r?yield*r[Symbol.iterator]():yield*r[Symbol.asyncIterator]()},qg=r=>{if(!(Symbol.iterator in r)&&!(Symbol.asyncIterator in r))throw new TypeError("Argument must be an iterable or async iterable.")},Gn=r=>{throw new Error(`Unexpected value: ${r}`)},Nh=(r,e,t)=>{let i=r.getUint8(e),s=r.getUint8(e+1),n=r.getUint8(e+2);return t?i|s<<8|n<<16:i<<16|s<<8|n},jg=(r,e,t)=>Nh(r,e,t)<<8>>8,Lh=(r,e,t,i)=>{t=t>>>0,t=t&16777215,i?(r.setUint8(e,t&255),r.setUint8(e+1,t>>>8&255),r.setUint8(e+2,t>>>16&255)):(r.setUint8(e,t>>>16&255),r.setUint8(e+1,t>>>8&255),r.setUint8(e+2,t&255))},Xg=(r,e,t,i)=>{t=$e(t,-8388608,8388607),t<0&&(t=t+16777216&16777215),Lh(r,e,t,i)};var $e=(r,e,t)=>Math.max(e,Math.min(t,r)),nt="und",cs=(r,e)=>{let t=10**e;return Math.round(r*t)/t},Yg=(r,e)=>Math.round(r/e)*e,Kg=r=>{let e=0;for(;r;)e++,r>>=1;return e},ak=/^[a-z]{3}$/,us=r=>ak.test(r),Vt=1e6*(1+Number.EPSILON),Fc=(r,e)=>{let t={...r};for(let i in e)typeof r[i]=="object"&&r[i]!==null&&typeof e[i]=="object"&&e[i]!==null?t[i]=Fc(r[i],e[i]):t[i]=e[i];return t},zh=async(r,e,t)=>{let i=0;for(;;)try{return await fetch(r,e)}catch(s){console.error("Retrying failed fetch. Error:",s),i++;let n=t(i);if(n===null)throw s;if(!Number.isFinite(n)||n<0)throw new TypeError("Retry delay must be a non-negative finite number.");n>0&&await new Promise(o=>setTimeout(o,1e3*n))}},Qg=(r,e)=>{let t=r<0?-1:1;r=Math.abs(r);let i=0,s=1,n=1,o=0,a=r;for(;;){let c=Math.floor(a),u=c*n+i,l=c*o+s;if(l>e)return{numerator:t*n,denominator:o};if(i=n,s=o,n=u,o=l,a=1/(a-c),!isFinite(a))break}return{numerator:t*n,denominator:o}},Nr=class{constructor(){this.currentPromise=Promise.resolve()}call(e){return this.currentPromise=this.currentPromise.then(e)}};var Uc=[],Oc=[],Zg=[],Jg=[];var mr=["avc","hevc","vp9","av1","vp8"],Re=["pcm-s16","pcm-s16be","pcm-s24","pcm-s24be","pcm-s32","pcm-s32be","pcm-f32","pcm-f32be","pcm-f64","pcm-f64be","pcm-u8","pcm-s8","ulaw","alaw"],Vh=["aac","opus","mp3","vorbis","flac"],Lr=[...Vh,...Re],ls=["webvtt"],ex=[{maxMacroblocks:99,maxBitrate:64e3,level:10},{maxMacroblocks:396,maxBitrate:192e3,level:11},{maxMacroblocks:396,maxBitrate:384e3,level:12},{maxMacroblocks:396,maxBitrate:768e3,level:13},{maxMacroblocks:396,maxBitrate:2e6,level:20},{maxMacroblocks:792,maxBitrate:4e6,level:21},{maxMacroblocks:1620,maxBitrate:4e6,level:22},{maxMacroblocks:1620,maxBitrate:1e7,level:30},{maxMacroblocks:3600,maxBitrate:14e6,level:31},{maxMacroblocks:5120,maxBitrate:2e7,level:32},{maxMacroblocks:8192,maxBitrate:2e7,level:40},{maxMacroblocks:8192,maxBitrate:5e7,level:41},{maxMacroblocks:8704,maxBitrate:5e7,level:42},{maxMacroblocks:22080,maxBitrate:135e6,level:50},{maxMacroblocks:36864,maxBitrate:24e7,level:51},{maxMacroblocks:36864,maxBitrate:24e7,level:52},{maxMacroblocks:139264,maxBitrate:24e7,level:60},{maxMacroblocks:139264,maxBitrate:48e7,level:61},{maxMacroblocks:139264,maxBitrate:8e8,level:62}],tx=[{maxPictureSize:36864,maxBitrate:128e3,tier:"L",level:30},{maxPictureSize:122880,maxBitrate:15e5,tier:"L",level:60},{maxPictureSize:245760,maxBitrate:3e6,tier:"L",level:63},{maxPictureSize:552960,maxBitrate:6e6,tier:"L",level:90},{maxPictureSize:983040,maxBitrate:1e7,tier:"L",level:93},{maxPictureSize:2228224,maxBitrate:12e6,tier:"L",level:120},{maxPictureSize:2228224,maxBitrate:3e7,tier:"H",level:120},{maxPictureSize:2228224,maxBitrate:2e7,tier:"L",level:123},{maxPictureSize:2228224,maxBitrate:5e7,tier:"H",level:123},{maxPictureSize:8912896,maxBitrate:25e6,tier:"L",level:150},{maxPictureSize:8912896,maxBitrate:1e8,tier:"H",level:150},{maxPictureSize:8912896,maxBitrate:4e7,tier:"L",level:153},{maxPictureSize:8912896,maxBitrate:16e7,tier:"H",level:153},{maxPictureSize:8912896,maxBitrate:6e7,tier:"L",level:156},{maxPictureSize:8912896,maxBitrate:24e7,tier:"H",level:156},{maxPictureSize:35651584,maxBitrate:6e7,tier:"L",level:180},{maxPictureSize:35651584,maxBitrate:24e7,tier:"H",level:180},{maxPictureSize:35651584,maxBitrate:12e7,tier:"L",level:183},{maxPictureSize:35651584,maxBitrate:48e7,tier:"H",level:183},{maxPictureSize:35651584,maxBitrate:24e7,tier:"L",level:186},{maxPictureSize:35651584,maxBitrate:8e8,tier:"H",level:186}],fr=[{maxPictureSize:36864,maxBitrate:2e5,level:10},{maxPictureSize:73728,maxBitrate:8e5,level:11},{maxPictureSize:122880,maxBitrate:18e5,level:20},{maxPictureSize:245760,maxBitrate:36e5,level:21},{maxPictureSize:552960,maxBitrate:72e5,level:30},{maxPictureSize:983040,maxBitrate:12e6,level:31},{maxPictureSize:2228224,maxBitrate:18e6,level:40},{maxPictureSize:2228224,maxBitrate:3e7,level:41},{maxPictureSize:8912896,maxBitrate:6e7,level:50},{maxPictureSize:8912896,maxBitrate:12e7,level:51},{maxPictureSize:8912896,maxBitrate:18e7,level:52},{maxPictureSize:35651584,maxBitrate:18e7,level:60},{maxPictureSize:35651584,maxBitrate:24e7,level:61},{maxPictureSize:35651584,maxBitrate:48e7,level:62}],rx=[{maxPictureSize:147456,maxBitrate:15e5,tier:"M",level:0},{maxPictureSize:278784,maxBitrate:3e6,tier:"M",level:1},{maxPictureSize:665856,maxBitrate:6e6,tier:"M",level:4},{maxPictureSize:1065024,maxBitrate:1e7,tier:"M",level:5},{maxPictureSize:2359296,maxBitrate:12e6,tier:"M",level:8},{maxPictureSize:2359296,maxBitrate:3e7,tier:"H",level:8},{maxPictureSize:2359296,maxBitrate:2e7,tier:"M",level:9},{maxPictureSize:2359296,maxBitrate:5e7,tier:"H",level:9},{maxPictureSize:8912896,maxBitrate:3e7,tier:"M",level:12},{maxPictureSize:8912896,maxBitrate:1e8,tier:"H",level:12},{maxPictureSize:8912896,maxBitrate:4e7,tier:"M",level:13},{maxPictureSize:8912896,maxBitrate:16e7,tier:"H",level:13},{maxPictureSize:8912896,maxBitrate:6e7,tier:"M",level:14},{maxPictureSize:8912896,maxBitrate:24e7,tier:"H",level:14},{maxPictureSize:35651584,maxBitrate:6e7,tier:"M",level:15},{maxPictureSize:35651584,maxBitrate:24e7,tier:"H",level:15},{maxPictureSize:35651584,maxBitrate:6e7,tier:"M",level:16},{maxPictureSize:35651584,maxBitrate:24e7,tier:"H",level:16},{maxPictureSize:35651584,maxBitrate:1e8,tier:"M",level:17},{maxPictureSize:35651584,maxBitrate:48e7,tier:"H",level:17},{maxPictureSize:35651584,maxBitrate:16e7,tier:"M",level:18},{maxPictureSize:35651584,maxBitrate:8e8,tier:"H",level:18},{maxPictureSize:35651584,maxBitrate:16e7,tier:"M",level:19},{maxPictureSize:35651584,maxBitrate:8e8,tier:"H",level:19}],ix=".01.01.01.01.00",sx=".0.110.01.01.01.0",nx=(r,e,t,i)=>{if(r==="avc"){let n=Math.ceil(e/16)*Math.ceil(t/16),o=ex.find(h=>n<=h.maxMacroblocks&&i<=h.maxBitrate)??he(ex),a=o?o.level:0,c="64".padStart(2,"0"),u="00",l=a.toString(16).padStart(2,"0");return`avc1.${c}${u}${l}`}else if(r==="hevc"){let s="",o="6",a=e*t,c=tx.find(l=>a<=l.maxPictureSize&&i<=l.maxBitrate)??he(tx);return`hev1.${s}1.${o}.${c.tier}${c.level}.B0`}else{if(r==="vp8")return"vp8";if(r==="vp9"){let s="00",n=e*t,o=fr.find(c=>n<=c.maxPictureSize&&i<=c.maxBitrate)??he(fr);return`vp09.${s}.${o.level.toString().padStart(2,"0")}.08`}else if(r==="av1"){let n=e*t,o=rx.find(u=>n<=u.maxPictureSize&&i<=u.maxBitrate)??he(rx);return`av01.0.${o.level.toString().padStart(2,"0")}${o.tier}.08`}}throw new TypeError(`Unhandled codec '${r}'.`)};var ox=r=>{let e=r.split("."),s=(1<<7)+1,n=Number(e[1]),o=e[2],a=Number(o.slice(0,-1)),c=(n<<5)+a,u=o.slice(-1)==="H"?1:0,h=Number(e[3])===8?0:1,f=0,d=e[4]?Number(e[4]):0,m=e[5]?Number(e[5][0]):1,x=e[5]?Number(e[5][1]):1,g=e[5]?Number(e[5][2]):0,_=(u<<7)+(h<<6)+(f<<5)+(d<<4)+(m<<3)+(x<<2)+g;return[s,c,_,0]},Gc=r=>{let{codec:e,codecDescription:t,colorSpace:i,avcCodecInfo:s,hevcCodecInfo:n,vp9CodecInfo:o,av1CodecInfo:a}=r;if(e==="avc"){if(s){let c=new Uint8Array([s.avcProfileIndication,s.profileCompatibility,s.avcLevelIndication]);return`avc1.${Uh(c)}`}if(!t||t.byteLength<4)throw new TypeError("AVC decoder description is not provided or is not at least 4 bytes long.");return`avc1.${Uh(t.subarray(1,4))}`}else if(e==="hevc"){let c,u,l,h,f,d;if(n)c=n.generalProfileSpace,u=n.generalProfileIdc,l=Oh(n.generalProfileCompatibilityFlags),h=n.generalTierFlag,f=n.generalLevelIdc,d=[...n.generalConstraintIndicatorFlags];else{if(!t||t.byteLength<23)throw new TypeError("HEVC decoder description is not provided or is not at least 23 bytes long.");let x=St(t),g=x.getUint8(1);c=g>>6&3,u=g&31,l=Oh(x.getUint32(2)),h=g>>5&1,f=x.getUint8(12),d=[];for(let _=0;_<6;_++)d.push(x.getUint8(6+_))}let m="hev1.";for(m+=["","A","B","C"][c]+u,m+=".",m+=l.toString(16).toUpperCase(),m+=".",m+=h===0?"L":"H",m+=f;d.length>0&&d[d.length-1]===0;)d.pop();return d.length>0&&(m+=".",m+=d.map(x=>x.toString(16).toUpperCase()).join(".")),m}else{if(e==="vp8")return"vp8";if(e==="vp9"){if(!o){let _=r.width*r.height,y=he(fr).level;for(let S of fr)if(_<=S.maxPictureSize){y=S.level;break}return`vp09.00.${y.toString().padStart(2,"0")}.08`}let c=o.profile.toString().padStart(2,"0"),u=o.level.toString().padStart(2,"0"),l=o.bitDepth.toString().padStart(2,"0"),h=o.chromaSubsampling.toString().padStart(2,"0"),f=o.colourPrimaries.toString().padStart(2,"0"),d=o.transferCharacteristics.toString().padStart(2,"0"),m=o.matrixCoefficients.toString().padStart(2,"0"),x=o.videoFullRangeFlag.toString().padStart(2,"0"),g=`vp09.${c}.${u}.${l}.${h}`;return g+=`.${f}.${d}.${m}.${x}`,g.endsWith(ix)&&(g=g.slice(0,-ix.length)),g}else if(e==="av1"){if(!a){let S=r.width*r.height,T=he(fr).level;for(let C of fr)if(S<=C.maxPictureSize){T=C.level;break}return`av01.0.${T.toString().padStart(2,"0")}M.08`}let c=a.profile,u=a.level.toString().padStart(2,"0"),l=a.tier?"H":"M",h=a.bitDepth.toString().padStart(2,"0"),f=a.monochrome?"1":"0",d=100*a.chromaSubsamplingX+10*a.chromaSubsamplingY+1*(a.chromaSubsamplingX&&a.chromaSubsamplingY?a.chromaSamplePosition:0),m=i?.primaries?yi[i.primaries]:1,x=i?.transfer?Ti[i.transfer]:1,g=i?.matrix?wi[i.matrix]:1,_=i?.fullRange?1:0,y=`av01.${c}.${u}${l}.${h}`;return y+=`.${f}.${d.toString().padStart(3,"0")}`,y+=`.${m.toString().padStart(2,"0")}`,y+=`.${x.toString().padStart(2,"0")}`,y+=`.${g.toString().padStart(2,"0")}`,y+=`.${_}`,y.endsWith(sx)&&(y=y.slice(0,-sx.length)),y}}throw new TypeError(`Unhandled codec '${e}'.`)},ax=(r,e,t)=>{if(r==="aac")return e>=2&&t<=24e3?"mp4a.40.29":t<=24e3?"mp4a.40.5":"mp4a.40.2";if(r==="mp3")return"mp3";if(r==="opus")return"opus";if(r==="vorbis")return"vorbis";if(r==="flac")return"flac";if(Re.includes(r))return r;throw new TypeError(`Unhandled codec '${r}'.`)},Nc=r=>{let{codec:e,codecDescription:t,aacCodecInfo:i}=r;if(e==="aac"){if(!i)throw new TypeError("AAC codec info must be provided.");return i.isMpeg2?"mp4a.67":`mp4a.40.${Hh(t).objectType}`}else{if(e==="mp3")return"mp3";if(e==="opus")return"opus";if(e==="vorbis")return"vorbis";if(e==="flac")return"flac";if(e&&Re.includes(e))return e}throw new TypeError(`Unhandled codec '${e}'.`)},Hh=r=>{if(!r||r.byteLength<2)throw new TypeError("AAC description must be at least 2 bytes long.");let e=new pt(r),t=e.readBits(5);t===31&&(t=32+e.readBits(6));let i=e.readBits(4),s=null;if(i===15)s=e.readBits(24);else{let a=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350];i<a.length&&(s=a[i])}let n=e.readBits(4),o=null;return n>=1&&n<=7&&(o={1:1,2:2,3:3,4:4,5:5,6:6,7:8}[n]),{objectType:t,frequencyIndex:i,sampleRate:s,channelConfiguration:n,numberOfChannels:o}},cx=48e3,ux=/^pcm-([usf])(\d+)+(be)?$/,gt=r=>{if(w(Re.includes(r)),r==="ulaw")return{dataType:"ulaw",sampleSize:1,littleEndian:!0,silentValue:255};if(r==="alaw")return{dataType:"alaw",sampleSize:1,littleEndian:!0,silentValue:213};let e=ux.exec(r);w(e);let t;e[1]==="u"?t="unsigned":e[1]==="s"?t="signed":t="float";let i=Number(e[2])/8,s=e[3]!=="be",n=r==="pcm-u8"?2**7:0;return{dataType:t,sampleSize:i,littleEndian:s,silentValue:n}},Wh=r=>r.startsWith("avc1")||r.startsWith("avc3")?"avc":r.startsWith("hev1")||r.startsWith("hvc1")?"hevc":r==="vp8"?"vp8":r.startsWith("vp09")?"vp9":r.startsWith("av01")?"av1":r.startsWith("mp4a.40")||r==="mp4a.67"?"aac":r==="mp3"||r==="mp4a.69"||r==="mp4a.6B"||r==="mp4a.6b"?"mp3":r==="opus"?"opus":r==="vorbis"?"vorbis":r==="flac"?"flac":r==="ulaw"?"ulaw":r==="alaw"?"alaw":ux.test(r)?r:r==="webvtt"?"webvtt":null,lx=r=>r==="avc"?{avc:{format:"avc"}}:r==="hevc"?{hevc:{format:"hevc"}}:{},hx=r=>r==="aac"?{aac:{format:"aac"}}:r==="opus"?{opus:{format:"opus"}}:{},vt=class{constructor(e){this._factor=e}_toVideoBitrate(e,t,i){let s=t*i,n={avc:1,hevc:.6,vp9:.6,av1:.4,vp8:1.2},o=1920*1080,a=3e6,c=Math.pow(s/o,.95),h=a*c*n[e]*this._factor;return Math.ceil(h/1e3)*1e3}_toAudioBitrate(e){if(Re.includes(e)||e==="flac")return;let i={aac:128e3,opus:64e3,mp3:16e4,vorbis:64e3}[e];if(!i)throw new Error(`Unhandled codec: ${e}`);let s=i*this._factor;return e==="aac"?s=[96e3,128e3,16e4,192e3].reduce((o,a)=>Math.abs(a-s)<Math.abs(o-s)?a:o):e==="opus"||e==="vorbis"?s=Math.max(6e3,s):e==="mp3"&&(s=[8e3,16e3,24e3,32e3,4e4,48e3,64e3,8e4,96e3,112e3,128e3,16e4,192e3,224e3,256e3,32e4].reduce((o,a)=>Math.abs(a-s)<Math.abs(o-s)?a:o)),Math.round(s/1e3)*1e3}},hO=new vt(.3),dO=new vt(.6),fO=new vt(1),mO=new vt(2),pO=new vt(4),ck=["avc1","avc3","hev1","hvc1","vp8","vp09","av01"],uk=/^(avc1|avc3)\.[0-9a-fA-F]{6}$/,lk=/^(hev1|hvc1)\.(?:[ABC]?\d+)\.[0-9a-fA-F]{1,8}\.[LH]\d+(?:\.[0-9a-fA-F]{1,2}){0,6}$/,hk=/^vp09(?:\.\d{2}){3}(?:(?:\.\d{2}){5})?$/,dk=/^av01\.\d\.\d{2}[MH]\.\d{2}(?:\.\d\.\d{3}\.\d{2}\.\d{2}\.\d{2}\.\d)?$/,dx=r=>{if(!r)throw new TypeError("Video chunk metadata must be provided.");if(typeof r!="object")throw new TypeError("Video chunk metadata must be an object.");if(!r.decoderConfig)throw new TypeError("Video chunk metadata must include a decoder configuration.");if(typeof r.decoderConfig!="object")throw new TypeError("Video chunk metadata decoder configuration must be an object.");if(typeof r.decoderConfig.codec!="string")throw new TypeError("Video chunk metadata decoder configuration must specify a codec string.");if(!ck.some(e=>r.decoderConfig.codec.startsWith(e)))throw new TypeError("Video chunk metadata decoder configuration codec string must be a valid video codec string as specified in the WebCodecs Codec Registry.");if(!Number.isInteger(r.decoderConfig.codedWidth)||r.decoderConfig.codedWidth<=0)throw new TypeError("Video chunk metadata decoder configuration must specify a valid codedWidth (positive integer).");if(!Number.isInteger(r.decoderConfig.codedHeight)||r.decoderConfig.codedHeight<=0)throw new TypeError("Video chunk metadata decoder configuration must specify a valid codedHeight (positive integer).");if(r.decoderConfig.description!==void 0&&!as(r.decoderConfig.description))throw new TypeError("Video chunk metadata decoder configuration description, when defined, must be an ArrayBuffer or an ArrayBuffer view.");if(r.decoderConfig.colorSpace!==void 0){let{colorSpace:e}=r.decoderConfig;if(typeof e!="object")throw new TypeError("Video chunk metadata decoder configuration colorSpace, when provided, must be an object.");let t=Object.keys(yi);if(e.primaries!=null&&!t.includes(e.primaries))throw new TypeError(`Video chunk metadata decoder configuration colorSpace primaries, when defined, must be one of ${t.join(", ")}.`);let i=Object.keys(Ti);if(e.transfer!=null&&!i.includes(e.transfer))throw new TypeError(`Video chunk metadata decoder configuration colorSpace transfer, when defined, must be one of ${i.join(", ")}.`);let s=Object.keys(wi);if(e.matrix!=null&&!s.includes(e.matrix))throw new TypeError(`Video chunk metadata decoder configuration colorSpace matrix, when defined, must be one of ${s.join(", ")}.`);if(e.fullRange!=null&&typeof e.fullRange!="boolean")throw new TypeError("Video chunk metadata decoder configuration colorSpace fullRange, when defined, must be a boolean.")}if(r.decoderConfig.codec.startsWith("avc1")||r.decoderConfig.codec.startsWith("avc3")){if(!uk.test(r.decoderConfig.codec))throw new TypeError("Video chunk metadata decoder configuration codec string for AVC must be a valid AVC codec string as specified in Section 3.4 of RFC 6381.")}else if(r.decoderConfig.codec.startsWith("hev1")||r.decoderConfig.codec.startsWith("hvc1")){if(!lk.test(r.decoderConfig.codec))throw new TypeError("Video chunk metadata decoder configuration codec string for HEVC must be a valid HEVC codec string as specified in Section E.3 of ISO 14496-15.")}else if(r.decoderConfig.codec.startsWith("vp8")){if(r.decoderConfig.codec!=="vp8")throw new TypeError('Video chunk metadata decoder configuration codec string for VP8 must be "vp8".')}else if(r.decoderConfig.codec.startsWith("vp09")){if(!hk.test(r.decoderConfig.codec))throw new TypeError('Video chunk metadata decoder configuration codec string for VP9 must be a valid VP9 codec string as specified in Section "Codecs Parameter String" of https://www.webmproject.org/vp9/mp4/.')}else if(r.decoderConfig.codec.startsWith("av01")&&!dk.test(r.decoderConfig.codec))throw new TypeError('Video chunk metadata decoder configuration codec string for AV1 must be a valid AV1 codec string as specified in Section "Codecs Parameter String" of https://aomediacodec.github.io/av1-isobmff/.')},fk=["mp4a","mp3","opus","vorbis","flac","ulaw","alaw","pcm"],fx=r=>{if(!r)throw new TypeError("Audio chunk metadata must be provided.");if(typeof r!="object")throw new TypeError("Audio chunk metadata must be an object.");if(!r.decoderConfig)throw new TypeError("Audio chunk metadata must include a decoder configuration.");if(typeof r.decoderConfig!="object")throw new TypeError("Audio chunk metadata decoder configuration must be an object.");if(typeof r.decoderConfig.codec!="string")throw new TypeError("Audio chunk metadata decoder configuration must specify a codec string.");if(!fk.some(e=>r.decoderConfig.codec.startsWith(e)))throw new TypeError("Audio chunk metadata decoder configuration codec string must be a valid audio codec string as specified in the WebCodecs Codec Registry.");if(!Number.isInteger(r.decoderConfig.sampleRate)||r.decoderConfig.sampleRate<=0)throw new TypeError("Audio chunk metadata decoder configuration must specify a valid sampleRate (positive integer).");if(!Number.isInteger(r.decoderConfig.numberOfChannels)||r.decoderConfig.numberOfChannels<=0)throw new TypeError("Audio chunk metadata decoder configuration must specify a valid numberOfChannels (positive integer).");if(r.decoderConfig.description!==void 0&&!as(r.decoderConfig.description))throw new TypeError("Audio chunk metadata decoder configuration description, when defined, must be an ArrayBuffer or an ArrayBuffer view.");if(r.decoderConfig.codec.startsWith("mp4a")&&r.decoderConfig.codec!=="mp4a.69"&&r.decoderConfig.codec!=="mp4a.6B"&&r.decoderConfig.codec!=="mp4a.6b"){if(!["mp4a.40.2","mp4a.40.02","mp4a.40.5","mp4a.40.05","mp4a.40.29","mp4a.67"].includes(r.decoderConfig.codec))throw new TypeError("Audio chunk metadata decoder configuration codec string for AAC must be a valid AAC codec string as specified in https://www.w3.org/TR/webcodecs-aac-codec-registration/.");if(!r.decoderConfig.description)throw new TypeError("Audio chunk metadata decoder configuration for AAC must include a description, which is expected to be an AudioSpecificConfig as specified in ISO 14496-3.")}else if(r.decoderConfig.codec.startsWith("mp3")||r.decoderConfig.codec.startsWith("mp4a")){if(r.decoderConfig.codec!=="mp3"&&r.decoderConfig.codec!=="mp4a.69"&&r.decoderConfig.codec!=="mp4a.6B"&&r.decoderConfig.codec!=="mp4a.6b")throw new TypeError('Audio chunk metadata decoder configuration codec string for MP3 must be "mp3", "mp4a.69" or "mp4a.6B".')}else if(r.decoderConfig.codec.startsWith("opus")){if(r.decoderConfig.codec!=="opus")throw new TypeError('Audio chunk metadata decoder configuration codec string for Opus must be "opus".');if(r.decoderConfig.description&&r.decoderConfig.description.byteLength<18)throw new TypeError("Audio chunk metadata decoder configuration description, when specified, is expected to be an Identification Header as specified in Section 5.1 of RFC 7845.")}else if(r.decoderConfig.codec.startsWith("vorbis")){if(r.decoderConfig.codec!=="vorbis")throw new TypeError('Audio chunk metadata decoder configuration codec string for Vorbis must be "vorbis".');if(!r.decoderConfig.description)throw new TypeError("Audio chunk metadata decoder configuration for Vorbis must include a description, which is expected to adhere to the format described in https://www.w3.org/TR/webcodecs-vorbis-codec-registration/.")}else if(r.decoderConfig.codec.startsWith("flac")){if(r.decoderConfig.codec!=="flac")throw new TypeError('Audio chunk metadata decoder configuration codec string for FLAC must be "flac".');if(!r.decoderConfig.description||r.decoderConfig.description.byteLength<42)throw new TypeError("Audio chunk metadata decoder configuration for FLAC must include a description, which is expected to adhere to the format described in https://www.w3.org/TR/webcodecs-flac-codec-registration/.")}else if((r.decoderConfig.codec.startsWith("pcm")||r.decoderConfig.codec.startsWith("ulaw")||r.decoderConfig.codec.startsWith("alaw"))&&!Re.includes(r.decoderConfig.codec))throw new TypeError(`Audio chunk metadata decoder configuration codec string for PCM must be one of the supported PCM codecs (${Re.join(", ")}).`)},mx=r=>{if(!r)throw new TypeError("Subtitle metadata must be provided.");if(typeof r!="object")throw new TypeError("Subtitle metadata must be an object.");if(!r.config)throw new TypeError("Subtitle metadata must include a config object.");if(typeof r.config!="object")throw new TypeError("Subtitle metadata config must be an object.");if(typeof r.config.description!="string")throw new TypeError("Subtitle metadata config description must be a string.")};var $h=/<(?:(\d{2}):)?(\d{2}):(\d{2}).(\d{3})>/g;var px=r=>{let e=Math.floor(r/36e5),t=Math.floor(r%(60*60*1e3)/(60*1e3)),i=Math.floor(r%(60*1e3)/1e3),s=r%1e3;return e.toString().padStart(2,"0")+":"+t.toString().padStart(2,"0")+":"+i.toString().padStart(2,"0")+"."+s.toString().padStart(3,"0")};var Xh=r=>{let e=[],t=0;for(;t<r.length;){let i=-1,s=0;for(let n=t;n<r.length-3;n++){if(r[n]===0&&r[n+1]===0&&r[n+2]===1){i=n,s=3;break}if(n<r.length-4&&r[n]===0&&r[n+1]===0&&r[n+2]===0&&r[n+3]===1){i=n,s=4;break}}if(i===-1)break;if(t>0&&i>t){let n=r.subarray(t,i);n.length>0&&e.push(n)}t=i+s}if(t<r.length){let i=r.subarray(t);i.length>0&&e.push(i)}return e},jh=r=>{let e=[],t=r.length;for(let i=0;i<t;i++)i+2<t&&r[i]===0&&r[i+1]===0&&r[i+2]===3?(e.push(0,0),i+=2):e.push(r[i]);return new Uint8Array(e)},yx=r=>{let t=Xh(r);if(t.length===0)return null;let i=0;for(let a of t)i+=4+a.byteLength;let s=new Uint8Array(i),n=new DataView(s.buffer),o=0;for(let a of t){let c=a.byteLength;n.setUint32(o,c,!1),o+=4,s.set(a,o),o+=a.byteLength}return s},qh=r=>r[0]&31,Lc=r=>{try{let e=Xh(r),t=e.filter(f=>qh(f)===7),i=e.filter(f=>qh(f)===8),s=e.filter(f=>qh(f)===13);if(t.length===0||i.length===0)return null;let n=t[0],o=new pt(jh(n));if(o.skipBits(1),o.skipBits(2),o.readBits(5)!==7)return console.error("Invalid SPS NAL unit type"),null;let c=o.readAlignedByte(),u=o.readAlignedByte(),l=o.readAlignedByte(),h={configurationVersion:1,avcProfileIndication:c,profileCompatibility:u,avcLevelIndication:l,lengthSizeMinusOne:3,sequenceParameterSets:t,pictureParameterSets:i,chromaFormat:null,bitDepthLumaMinus8:null,bitDepthChromaMinus8:null,sequenceParameterSetExt:null};if(c===100||c===110||c===122||c===144){L(o);let f=L(o);f===3&&o.skipBits(1);let d=L(o),m=L(o);h.chromaFormat=f,h.bitDepthLumaMinus8=d,h.bitDepthChromaMinus8=m,h.sequenceParameterSetExt=s}return h}catch(e){return console.error("Error building AVC Decoder Configuration Record:",e),null}},Tx=r=>{let e=[];e.push(r.configurationVersion),e.push(r.avcProfileIndication),e.push(r.profileCompatibility),e.push(r.avcLevelIndication),e.push(252|r.lengthSizeMinusOne&3),e.push(224|r.sequenceParameterSets.length&31);for(let t of r.sequenceParameterSets){let i=t.byteLength;e.push(i>>8),e.push(i&255);for(let s=0;s<i;s++)e.push(t[s])}e.push(r.pictureParameterSets.length);for(let t of r.pictureParameterSets){let i=t.byteLength;e.push(i>>8),e.push(i&255);for(let s=0;s<i;s++)e.push(t[s])}if(r.avcProfileIndication===100||r.avcProfileIndication===110||r.avcProfileIndication===122||r.avcProfileIndication===144){w(r.chromaFormat!==null),w(r.bitDepthLumaMinus8!==null),w(r.bitDepthChromaMinus8!==null),w(r.sequenceParameterSetExt!==null),e.push(252|r.chromaFormat&3),e.push(248|r.bitDepthLumaMinus8&7),e.push(248|r.bitDepthChromaMinus8&7),e.push(r.sequenceParameterSetExt.length);for(let t of r.sequenceParameterSetExt){let i=t.byteLength;e.push(i>>8),e.push(i&255);for(let s=0;s<i;s++)e.push(t[s])}}return new Uint8Array(e)},gx=32,xx=33,_x=34,mk=39,pk=40,hs=r=>r[0]>>1&63,zc=r=>{try{let e=Xh(r),t=e.filter(P=>hs(P)===gx),i=e.filter(P=>hs(P)===xx),s=e.filter(P=>hs(P)===_x),n=e.filter(P=>hs(P)===mk||hs(P)===pk);if(i.length===0||s.length===0)return null;let o=i[0],a=new pt(jh(o));a.skipBits(16),a.readBits(4);let c=a.readBits(3),u=a.readBits(1),{general_profile_space:l,general_tier_flag:h,general_profile_idc:f,general_profile_compatibility_flags:d,general_constraint_indicator_flags:m,general_level_idc:x}=gk(a,c);L(a);let g=L(a);g===3&&a.skipBits(1),L(a),L(a),a.readBits(1)&&(L(a),L(a),L(a),L(a));let _=L(a),y=L(a);L(a);let T=a.readBits(1)?0:c;for(let P=T;P<=c;P++)L(a),L(a),L(a);L(a),L(a),L(a),L(a),L(a),L(a),a.readBits(1)&&a.readBits(1)&&xk(a),a.skipBits(1),a.skipBits(1),a.readBits(1)&&(a.skipBits(4),a.skipBits(4),L(a),L(a),a.skipBits(1));let C=L(a);if(_k(a,C),a.readBits(1)){let P=L(a);for(let k=0;k<P;k++)L(a),a.skipBits(1)}a.skipBits(1),a.skipBits(1);let v=0;a.readBits(1)&&(v=yk(a,c));let E=0;if(s.length>0){let P=s[0],k=new pt(jh(P));k.skipBits(16),L(k),L(k),k.skipBits(1),k.skipBits(1),k.skipBits(3),k.skipBits(1),k.skipBits(1),L(k),L(k),os(k),k.skipBits(1),k.skipBits(1),k.readBits(1)&&L(k),os(k),os(k),k.skipBits(1),k.skipBits(1),k.skipBits(1),k.skipBits(1);let G=k.readBits(1),j=k.readBits(1);!G&&!j?E=0:G&&!j?E=2:!G&&j?E=3:E=0}let D=[...t.length?[{arrayCompleteness:1,nalUnitType:gx,nalUnits:t}]:[],...i.length?[{arrayCompleteness:1,nalUnitType:xx,nalUnits:i}]:[],...s.length?[{arrayCompleteness:1,nalUnitType:_x,nalUnits:s}]:[],...n.length?[{arrayCompleteness:1,nalUnitType:hs(n[0]),nalUnits:n}]:[]];return{configurationVersion:1,generalProfileSpace:l,generalTierFlag:h,generalProfileIdc:f,generalProfileCompatibilityFlags:d,generalConstraintIndicatorFlags:m,generalLevelIdc:x,minSpatialSegmentationIdc:v,parallelismType:E,chromaFormatIdc:g,bitDepthLumaMinus8:_,bitDepthChromaMinus8:y,avgFrameRate:0,constantFrameRate:0,numTemporalLayers:c+1,temporalIdNested:u,lengthSizeMinusOne:3,arrays:D}}catch(e){return console.error("Error building HEVC Decoder Configuration Record:",e),null}},gk=(r,e)=>{let t=r.readBits(2),i=r.readBits(1),s=r.readBits(5),n=0;for(let l=0;l<32;l++)n=n<<1|r.readBits(1);let o=new Uint8Array(6);for(let l=0;l<6;l++)o[l]=r.readBits(8);let a=r.readBits(8),c=[],u=[];for(let l=0;l<e;l++)c.push(r.readBits(1)),u.push(r.readBits(1));if(e>0)for(let l=e;l<8;l++)r.skipBits(2);for(let l=0;l<e;l++)c[l]&&r.skipBits(88),u[l]&&r.skipBits(8);return{general_profile_space:t,general_tier_flag:i,general_profile_idc:s,general_profile_compatibility_flags:n,general_constraint_indicator_flags:o,general_level_idc:a}},xk=r=>{for(let e=0;e<4;e++)for(let t=0;t<(e===3?2:6);t++)if(!r.readBits(1))L(r);else{let s=Math.min(64,1<<4+(e<<1));e>1&&os(r);for(let n=0;n<s;n++)os(r)}},_k=(r,e)=>{let t=[];for(let i=0;i<e;i++)t[i]=bk(r,i,e,t)},bk=(r,e,t,i)=>{let s=0,n=0,o=0;if(e!==0&&(n=r.readBits(1)),n){if(e===t){let c=L(r);o=e-(c+1)}else o=e-1;r.readBits(1),L(r);let a=i[o]??0;for(let c=0;c<=a;c++)r.readBits(1)||r.readBits(1);s=i[o]}else{let a=L(r),c=L(r);for(let u=0;u<a;u++)L(r),r.readBits(1);for(let u=0;u<c;u++)L(r),r.readBits(1);s=a+c}return s},yk=(r,e)=>{if(r.readBits(1)&&r.readBits(8)===255&&(r.readBits(16),r.readBits(16)),r.readBits(1)&&r.readBits(1),r.readBits(1)&&(r.readBits(3),r.readBits(1),r.readBits(1)&&(r.readBits(8),r.readBits(8),r.readBits(8))),r.readBits(1)&&(L(r),L(r)),r.readBits(1),r.readBits(1),r.readBits(1),r.readBits(1)&&(L(r),L(r),L(r),L(r)),r.readBits(1)&&(r.readBits(32),r.readBits(32),r.readBits(1)&&L(r),r.readBits(1)&&Tk(r,!0,e)),r.readBits(1)){r.readBits(1),r.readBits(1),r.readBits(1);let t=L(r);return L(r),L(r),L(r),L(r),t}return 0},Tk=(r,e,t)=>{let i=!1,s=!1,n=!1;e&&(i=r.readBits(1)===1,s=r.readBits(1)===1,(i||s)&&(n=r.readBits(1)===1,n&&(r.readBits(8),r.readBits(5),r.readBits(1),r.readBits(5)),r.readBits(4),r.readBits(4),n&&r.readBits(4),r.readBits(5),r.readBits(5),r.readBits(5)));for(let o=0;o<=t;o++){let a=r.readBits(1)===1,c=!0;a||(c=r.readBits(1)===1);let u=!1;c?L(r):u=r.readBits(1)===1;let l=1;u||(l=L(r)+1),i&&bx(r,l,n),s&&bx(r,l,n)}},bx=(r,e,t)=>{for(let i=0;i<e;i++)L(r),L(r),t&&(L(r),L(r)),r.readBits(1)},wx=r=>{let e=[];e.push(r.configurationVersion),e.push((r.generalProfileSpace&3)<<6|(r.generalTierFlag&1)<<5|r.generalProfileIdc&31),e.push(r.generalProfileCompatibilityFlags>>>24&255),e.push(r.generalProfileCompatibilityFlags>>>16&255),e.push(r.generalProfileCompatibilityFlags>>>8&255),e.push(r.generalProfileCompatibilityFlags&255),e.push(...r.generalConstraintIndicatorFlags),e.push(r.generalLevelIdc&255),e.push(240|r.minSpatialSegmentationIdc>>8&15),e.push(r.minSpatialSegmentationIdc&255),e.push(252|r.parallelismType&3),e.push(252|r.chromaFormatIdc&3),e.push(248|r.bitDepthLumaMinus8&7),e.push(248|r.bitDepthChromaMinus8&7),e.push(r.avgFrameRate>>8&255),e.push(r.avgFrameRate&255),e.push((r.constantFrameRate&3)<<6|(r.numTemporalLayers&7)<<3|(r.temporalIdNested&1)<<2|r.lengthSizeMinusOne&3),e.push(r.arrays.length&255);for(let t of r.arrays){e.push((t.arrayCompleteness&1)<<7|0|t.nalUnitType&63),e.push(t.nalUnits.length>>8&255),e.push(t.nalUnits.length&255);for(let i of t.nalUnits){e.push(i.length>>8&255),e.push(i.length&255);for(let s=0;s<i.length;s++)e.push(i[s])}}return new Uint8Array(e)},Vc=r=>{let e=r[r.length-1];if(e&&(e&224)===192){let E=((e&24)>>3)+1,A=2+((e&7)+1)*E;if(r[r.length-A]!==e)return null;let P=0,k=r.length-A+1;for(let G=0;G<E;G++){if(!r[k+G])return null;P|=r[k+G]<<8*G}r=r.subarray(0,P)}let t=new pt(r);if(t.readBits(2)!==2)return null;let s=t.readBits(1),o=(t.readBits(1)<<1)+s;if(o===3&&t.skipBits(1),t.readBits(1)===1||t.readBits(1)!==0||(t.skipBits(2),t.readBits(24)!==4817730))return null;let l=8;o>=2&&(l=t.readBits(1)?12:10);let h=t.readBits(3),f=0,d=0;if(h!==7)if(d=t.readBits(1),o===1||o===3){let D=t.readBits(1),A=t.readBits(1);f=!D&&!A?3:D&&!A?2:1,t.skipBits(1)}else f=1;else f=3,d=1;let m=t.readBits(16),x=t.readBits(16),g=m+1,_=x+1,y=g*_,S=he(fr).level;for(let E of fr)if(y<=E.maxPictureSize){S=E.level;break}return{profile:o,level:S,bitDepth:l,chromaSubsampling:f,videoFullRangeFlag:d,colourPrimaries:h===2?1:h===1?6:2,transferCharacteristics:h===2?1:h===1?6:2,matrixCoefficients:h===7?0:h===2?1:h===1?6:2}},Hc=r=>{let e=new pt(r),t=()=>{let i=0;for(let s=0;s<8;s++){let n=e.readAlignedByte();if(n===void 0)return 0;if(i|=(n&127)<<s*7,!(n&128))break;if(s===7&&n&128)return null}return i>=2**32-1?null:i};for(;e.getBitsLeft()>=8;){let i=e.readBits(8),s=i>>3&15,n=i>>2&1,o=i>>1&1;n&&e.skipBits(8);let a;if(o){let c=t();if(c===null)return null;a=c}else a=Math.floor(e.getBitsLeft()/8);if(s===1){let c=e.readBits(3),u=e.readBits(1),l=e.readBits(1),h=0,f=0,d=0;if(l)h=e.readBits(5);else{if(e.readBits(1)&&(e.skipBits(32),e.skipBits(32),e.readBits(1)))return null;let C=e.readBits(1);C&&(d=e.readBits(5),e.skipBits(32),e.skipBits(5),e.skipBits(5));let v=e.readBits(5);for(let E=0;E<=v;E++){e.skipBits(12);let D=e.readBits(5);if(E===0&&(h=D),D>7){let P=e.readBits(1);E===0&&(f=P)}if(C&&e.readBits(1)){let k=d+1;e.skipBits(k),e.skipBits(k),e.skipBits(1)}e.readBits(1)&&e.skipBits(4)}}let m=e.readBits(1),x=8;c===2&&m?x=e.readBits(1)?12:10:c<=2&&(x=m?10:8);let g=0;c!==1&&(g=e.readBits(1));let _=1,y=1,S=0;return g||(c===0?(_=1,y=1):c===1?(_=0,y=0):x===12&&(_=e.readBits(1),_&&(y=e.readBits(1))),_&&y&&(S=e.readBits(2))),{profile:c,level:h,tier:f,bitDepth:x,monochrome:g,chromaSubsamplingX:_,chromaSubsamplingY:y,chromaSamplePosition:S}}e.skipBits(a*8)}return null},Wc=r=>{let e=St(r),t=e.getUint8(9),i=e.getUint16(10,!0),s=e.getUint32(12,!0),n=e.getInt16(16,!0),o=e.getUint8(18),a=null;return o&&(a=r.subarray(19,21+t)),{outputChannelCount:t,preSkip:i,inputSampleRate:s,outputGain:n,channelMappingFamily:o,channelMappingTable:a}},wk=[480,960,1920,2880,480,960,1920,2880,480,960,1920,2880,480,960,480,960,120,240,480,960,120,240,480,960,120,240,480,960,120,240,480,960],Sx=r=>{let e=r[0]>>3;return{durationInSamples:wk[e]}},vx=r=>{if(r.length<7)throw new Error("Setup header is too short.");if(r[0]!==5)throw new Error("Wrong packet type in Setup header.");if(String.fromCharCode(...r.slice(1,7))!=="vorbis")throw new Error("Invalid packet signature in Setup header.");let t=r.length,i=new Uint8Array(t);for(let h=0;h<t;h++)i[h]=r[t-1-h];let s=new pt(i),n=0;for(;s.getBitsLeft()>97;)if(s.readBits(1)===1){n=s.pos;break}if(n===0)throw new Error("Invalid Setup header: framing bit not found.");let o=0,a=!1,c=0;for(;s.getBitsLeft()>=97;){let h=s.pos,f=s.readBits(8),d=s.readBits(16),m=s.readBits(16);if(f>63||d!==0||m!==0){s.pos=h;break}if(s.skipBits(1),o++,o>64)break;s.clone().readBits(6)+1===o&&(a=!0,c=o)}if(!a)throw new Error("Invalid Setup header: mode header not found.");if(c>63)throw new Error(`Unsupported mode count: ${c}.`);let u=c;s.pos=0,s.skipBits(n);let l=Array(u).fill(0);for(let h=u-1;h>=0;h--)s.skipBits(40),l[h]=s.readBits(1);return{modeBlockflags:l}};var Nn=class{constructor(e){this.writer=e,this.helper=new Uint8Array(8),this.helperView=new DataView(this.helper.buffer),this.offsets=new WeakMap}writeU32(e){this.helperView.setUint32(0,e,!1),this.writer.write(this.helper.subarray(0,4))}writeU64(e){this.helperView.setUint32(0,Math.floor(e/2**32),!1),this.helperView.setUint32(4,e,!1),this.writer.write(this.helper.subarray(0,8))}writeAscii(e){for(let t=0;t<e.length;t++)this.helperView.setUint8(t%8,e.charCodeAt(t)),t%8===7&&this.writer.write(this.helper);e.length%8!==0&&this.writer.write(this.helper.subarray(0,e.length%8))}writeBox(e){if(this.offsets.set(e,this.writer.getPos()),e.contents&&!e.children)this.writeBoxHeader(e,e.size??e.contents.byteLength+8),this.writer.write(e.contents);else{let t=this.writer.getPos();if(this.writeBoxHeader(e,0),e.contents&&this.writer.write(e.contents),e.children)for(let n of e.children)n&&this.writeBox(n);let i=this.writer.getPos(),s=e.size??i-t;this.writer.seek(t),this.writeBoxHeader(e,s),this.writer.seek(i)}}writeBoxHeader(e,t){this.writeU32(e.largeSize?1:t),this.writeAscii(e.type),e.largeSize&&this.writeU64(t)}measureBoxHeader(e){return 8+(e.largeSize?8:0)}patchBox(e){let t=this.offsets.get(e);w(t!==void 0);let i=this.writer.getPos();this.writer.seek(t),this.writeBox(e),this.writer.seek(i)}measureBox(e){if(e.contents&&!e.children)return this.measureBoxHeader(e)+e.contents.byteLength;{let t=this.measureBoxHeader(e);if(e.contents&&(t+=e.contents.byteLength),e.children)for(let i of e.children)i&&(t+=this.measureBox(i));return t}}},re=new Uint8Array(8),Wt=new DataView(re.buffer),ve=r=>[(r%256+256)%256],X=r=>(Wt.setUint16(0,r,!1),[re[0],re[1]]),Ex=r=>(Wt.setInt16(0,r,!1),[re[0],re[1]]),kx=r=>(Wt.setUint32(0,r,!1),[re[1],re[2],re[3]]),F=r=>(Wt.setUint32(0,r,!1),[re[0],re[1],re[2],re[3]]),Vr=r=>(Wt.setInt32(0,r,!1),[re[0],re[1],re[2],re[3]]),Si=r=>(Wt.setUint32(0,Math.floor(r/2**32),!1),Wt.setUint32(4,r,!1),[re[0],re[1],re[2],re[3],re[4],re[5],re[6],re[7]]),Ax=r=>(Wt.setInt16(0,2**8*r,!1),[re[0],re[1]]),pr=r=>(Wt.setInt32(0,2**16*r,!1),[re[0],re[1],re[2],re[3]]),Yh=r=>(Wt.setInt32(0,2**30*r,!1),[re[0],re[1],re[2],re[3]]),Kh=(r,e)=>{let t=[],i=r;do{let s=i&127;i>>=7,t.length>0&&(s|=128),t.push(s),e!==void 0&&e--}while(i>0||e);return t.reverse()},Qe=(r,e=!1)=>{let t=Array(r.length).fill(null).map((i,s)=>r.charCodeAt(s));return e&&t.push(0),t},Zh=r=>{let e=null;for(let t of r)(!e||t.timestamp>e.timestamp)&&(e=t);return e},Px=r=>{let e=r*(Math.PI/180),t=Math.round(Math.cos(e)),i=Math.round(Math.sin(e));return[t,i,0,-i,t,0,0,0,1]},Bx=Px(0),Rx=r=>[pr(r[0]),pr(r[1]),Yh(r[2]),pr(r[3]),pr(r[4]),Yh(r[5]),pr(r[6]),pr(r[7]),Yh(r[8])],ee=(r,e,t)=>({type:r,contents:e&&new Uint8Array(e.flat(10)),children:t}),ne=(r,e,t,i,s)=>ee(r,[ve(e),kx(t),i??[]],s),Dx=r=>r.isQuickTime?ee("ftyp",[Qe("qt "),F(512),Qe("qt ")]):r.fragmented?ee("ftyp",[Qe("iso5"),F(512),Qe("iso5"),Qe("iso6"),Qe("mp41")]):ee("ftyp",[Qe("isom"),F(512),Qe("isom"),r.holdsAvc?Qe("avc1"):[],Qe("mp41")]),qc=r=>({type:"mdat",largeSize:r}),Ln=(r,e,t=!1)=>ee("moov",void 0,[Sk(e,r),...r.map(i=>vk(i,e)),t?oA(r):null]),Sk=(r,e)=>{let t=Fe(Math.max(0,...e.filter(o=>o.samples.length>0).map(o=>{let a=Zh(o.samples);return a.timestamp+a.duration})),$c),i=Math.max(0,...e.map(o=>o.track.id))+1,s=!_i(r)||!_i(t),n=s?Si:F;return ne("mvhd",+s,0,[n(r),n(r),F($c),n(t),pr(1),Ax(1),Array(10).fill(0),Rx(Bx),Array(24).fill(0),F(i)])},vk=(r,e)=>ee("trak",void 0,[Ck(r,e),Ek(r,e)]),Ck=(r,e)=>{let t=Zh(r.samples),i=Fe(t?t.timestamp+t.duration:0,$c),s=!_i(e)||!_i(i),n=s?Si:F,o;if(r.type==="video"){let a=r.track.metadata.rotation;o=Px(a??0)}else o=Bx;return ne("tkhd",+s,3,[n(e),n(e),F(r.track.id),F(0),n(i),Array(8).fill(0),X(0),X(r.track.id),Ax(r.type==="audio"?1:0),X(0),Rx(o),pr(r.type==="video"?r.info.width:0),pr(r.type==="video"?r.info.height:0)])},Ek=(r,e)=>ee("mdia",void 0,[kk(r,e),Bk(r),Rk(r)]),kk=(r,e)=>{let t=Zh(r.samples),i=Fe(t?t.timestamp+t.duration:0,r.timescale),s=!_i(e)||!_i(i),n=s?Si:F,o=0;for(let a of r.track.metadata.languageCode??nt)o<<=5,o+=a.charCodeAt(0)-96;return ne("mdhd",+s,0,[n(e),n(e),F(r.timescale),n(i),X(o),X(0)])},Ak={video:"vide",audio:"soun",subtitle:"text"},Pk={video:"MediabunnyVideoHandler",audio:"MediabunnySoundHandler",subtitle:"MediabunnyTextHandler"},Bk=r=>ne("hdlr",0,0,[Qe("mhlr"),Qe(Ak[r.type]),F(0),F(0),F(0),Qe(Pk[r.type],!0)]),Rk=r=>ee("minf",void 0,[Fk[r.type](),Uk(),Nk(r)]),Dk=()=>ne("vmhd",0,1,[X(0),X(0),X(0),X(0)]),Mk=()=>ne("smhd",0,0,[X(0),X(0)]),Ik=()=>ne("nmhd",0,0),Fk={video:Dk,audio:Mk,subtitle:Ik},Uk=()=>ee("dinf",void 0,[Ok()]),Ok=()=>ne("dref",0,0,[F(1)],[Gk()]),Gk=()=>ne("url ",0,1),Nk=r=>{let e=r.compositionTimeOffsetTable.length>1||r.compositionTimeOffsetTable.some(t=>t.sampleCompositionTimeOffset!==0);return ee("stbl",void 0,[Lk(r),Jk(r),e?sA(r):null,e?nA(r):null,tA(r),rA(r),iA(r),eA(r)])},Lk=r=>{let e;if(r.type==="video")e=zk(pA[r.track.source._codec],r);else if(r.type==="audio"){let t=Gx(r.track.source._codec,r.muxer.isQuickTime);w(t),e=qk(t,r)}else r.type==="subtitle"&&(e=Qk(_A[r.track.source._codec],r));return w(e),ne("stsd",0,0,[F(1)],[e])},zk=(r,e)=>ee(r,[Array(6).fill(0),X(1),X(0),X(0),Array(12).fill(0),X(e.info.width),X(e.info.height),F(4718592),F(4718592),F(0),X(1),Array(32).fill(0),X(24),Ex(65535)],[gA[e.track.source._codec](e),Hg(e.info.decoderConfig.colorSpace)?Vk(e):null]),Vk=r=>ee("colr",[Qe("nclx"),X(yi[r.info.decoderConfig.colorSpace.primaries]),X(Ti[r.info.decoderConfig.colorSpace.transfer]),X(wi[r.info.decoderConfig.colorSpace.matrix]),ve((r.info.decoderConfig.colorSpace.fullRange?1:0)<<7)]),Hk=r=>r.info.decoderConfig&&ee("avcC",[...zt(r.info.decoderConfig.description)]),Wk=r=>r.info.decoderConfig&&ee("hvcC",[...zt(r.info.decoderConfig.description)]),Cx=r=>{if(!r.info.decoderConfig)return null;let e=r.info.decoderConfig,t=e.codec.split("."),i=Number(t[1]),s=Number(t[2]),n=Number(t[3]),o=t[4]?Number(t[4]):1,a=t[8]?Number(t[8]):Number(e.colorSpace?.fullRange??0),c=(n<<4)+(o<<1)+a,u=t[5]?Number(t[5]):e.colorSpace?.primaries?yi[e.colorSpace.primaries]:2,l=t[6]?Number(t[6]):e.colorSpace?.transfer?Ti[e.colorSpace.transfer]:2,h=t[7]?Number(t[7]):e.colorSpace?.matrix?wi[e.colorSpace.matrix]:2;return ne("vpcC",1,0,[ve(i),ve(s),ve(c),ve(u),ve(l),ve(h),X(0)])},$k=r=>ee("av1C",ox(r.info.decoderConfig.codec)),qk=(r,e)=>{let t=0,i,s=16;if(Re.includes(e.track.source._codec)){let n=e.track.source._codec,{sampleSize:o}=gt(n);s=8*o,s>16&&(t=1)}return t===0?i=[Array(6).fill(0),X(1),X(t),X(0),F(0),X(e.info.numberOfChannels),X(s),X(0),X(0),X(e.info.sampleRate<2**16?e.info.sampleRate:0),X(0)]:i=[Array(6).fill(0),X(1),X(t),X(0),F(0),X(e.info.numberOfChannels),X(Math.min(s,16)),X(0),X(0),X(e.info.sampleRate<2**16?e.info.sampleRate:0),X(0),F(1),F(s/8),F(e.info.numberOfChannels*s/8),F(2)],ee(r,i,[xA(e.track.source._codec,e.muxer.isQuickTime)?.(e)??null])},Qh=r=>{let e;switch(r.track.source._codec){case"aac":e=64;break;case"mp3":e=107;break;case"vorbis":e=221;break;default:throw new Error(`Unhandled audio codec: ${r.track.source._codec}`)}let t=[...ve(e),...ve(21),...kx(0),...F(0),...F(0)];if(r.info.decoderConfig.description){let i=zt(r.info.decoderConfig.description);t=[...t,...ve(5),...Kh(i.byteLength),...i]}return t=[...X(1),...ve(0),...ve(4),...Kh(t.length),...t,...ve(6),...ve(1),...ve(2)],t=[...ve(3),...Kh(t.length),...t],ne("esds",0,0,t)},zr=r=>ee("wave",void 0,[jk(r),Xk(r),ee("\0\0\0\0")]),jk=r=>ee("frma",[Qe(Gx(r.track.source._codec,r.muxer.isQuickTime))]),Xk=r=>{let{littleEndian:e}=gt(r.track.source._codec);return ee("enda",[X(+e)])},Yk=r=>{let e=r.info.numberOfChannels,t=3840,i=r.info.sampleRate,s=0,n=0,o=new Uint8Array(0),a=r.info.decoderConfig?.description;if(a){w(a.byteLength>=18);let c=zt(a),u=Wc(c);e=u.outputChannelCount,t=u.preSkip,i=u.inputSampleRate,s=u.outputGain,n=u.channelMappingFamily,u.channelMappingTable&&(o=u.channelMappingTable)}return ee("dOps",[ve(0),ve(e),X(t),F(i),Ex(s),ve(n),...o])},Kk=r=>{let e=r.info.decoderConfig?.description;w(e);let t=zt(e);return ne("dfLa",0,0,[...t.subarray(4)])},Ht=r=>{let{littleEndian:e,sampleSize:t}=gt(r.track.source._codec),i=+e;return ne("pcmC",0,0,[ve(i),ve(8*t)])},Qk=(r,e)=>ee(r,[Array(6).fill(0),X(1)],[bA[e.track.source._codec](e)]),Zk=r=>ee("vttC",[...bi.encode(r.info.config.description)]);var Jk=r=>ne("stts",0,0,[F(r.timeToSampleTable.length),r.timeToSampleTable.map(e=>[F(e.sampleCount),F(e.sampleDelta)])]),eA=r=>{if(r.samples.every(t=>t.type==="key"))return null;let e=[...r.samples.entries()].filter(([,t])=>t.type==="key");return ne("stss",0,0,[F(e.length),e.map(([t])=>F(t+1))])},tA=r=>ne("stsc",0,0,[F(r.compactlyCodedChunkTable.length),r.compactlyCodedChunkTable.map(e=>[F(e.firstChunk),F(e.samplesPerChunk),F(1)])]),rA=r=>{if(r.type==="audio"&&r.info.requiresPcmTransformation){let{sampleSize:e}=gt(r.track.source._codec);return ne("stsz",0,0,[F(e*r.info.numberOfChannels),F(r.samples.reduce((t,i)=>t+Fe(i.duration,r.timescale),0))])}return ne("stsz",0,0,[F(0),F(r.samples.length),r.samples.map(e=>F(e.size))])},iA=r=>r.finalizedChunks.length>0&&he(r.finalizedChunks).offset>=2**32?ne("co64",0,0,[F(r.finalizedChunks.length),r.finalizedChunks.map(e=>Si(e.offset))]):ne("stco",0,0,[F(r.finalizedChunks.length),r.finalizedChunks.map(e=>F(e.offset))]),sA=r=>ne("ctts",1,0,[F(r.compositionTimeOffsetTable.length),r.compositionTimeOffsetTable.map(e=>[F(e.sampleCount),Vr(e.sampleCompositionTimeOffset)])]),nA=r=>{let e=1/0,t=-1/0,i=1/0,s=-1/0;w(r.compositionTimeOffsetTable.length>0),w(r.samples.length>0);for(let o=0;o<r.compositionTimeOffsetTable.length;o++){let a=r.compositionTimeOffsetTable[o];e=Math.min(e,a.sampleCompositionTimeOffset),t=Math.max(t,a.sampleCompositionTimeOffset)}for(let o=0;o<r.samples.length;o++){let a=r.samples[o];i=Math.min(i,Fe(a.timestamp,r.timescale)),s=Math.max(s,Fe(a.timestamp+a.duration,r.timescale))}let n=Math.max(-e,0);return s>=2**31?null:ne("cslg",0,0,[Vr(n),Vr(e),Vr(t),Vr(i),Vr(s)])},oA=r=>ee("mvex",void 0,r.map(aA)),aA=r=>ne("trex",0,0,[F(r.track.id),F(1),F(0),F(0),F(0)]),Jh=(r,e)=>ee("moof",void 0,[cA(r),...e.map(uA)]),cA=r=>ne("mfhd",0,0,[F(r)]),Mx=r=>{let e=0,t=0,i=0,s=0,n=r.type==="delta";return t|=+n,n?e|=1:e|=2,e<<24|t<<16|i<<8|s},uA=r=>ee("traf",void 0,[lA(r),hA(r),dA(r)]),lA=r=>{w(r.currentChunk);let e=0;e|=8,e|=16,e|=32,e|=131072;let t=r.currentChunk.samples[1]??r.currentChunk.samples[0],i={duration:t.timescaleUnitsToNextSample,size:t.size,flags:Mx(t)};return ne("tfhd",0,e,[F(r.track.id),F(i.duration),F(i.size),F(i.flags)])},hA=r=>(w(r.currentChunk),ne("tfdt",1,0,[Si(Fe(r.currentChunk.startTimestamp,r.timescale))])),dA=r=>{w(r.currentChunk);let e=r.currentChunk.samples.map(x=>x.timescaleUnitsToNextSample),t=r.currentChunk.samples.map(x=>x.size),i=r.currentChunk.samples.map(Mx),s=r.currentChunk.samples.map(x=>Fe(x.timestamp-x.decodeTimestamp,r.timescale)),n=new Set(e),o=new Set(t),a=new Set(i),c=new Set(s),u=a.size===2&&i[0]!==i[1],l=n.size>1,h=o.size>1,f=!u&&a.size>1,d=c.size>1||[...c].some(x=>x!==0),m=0;return m|=1,m|=4*+u,m|=256*+l,m|=512*+h,m|=1024*+f,m|=2048*+d,ne("trun",1,m,[F(r.currentChunk.samples.length),F(r.currentChunk.offset-r.currentChunk.moofOffset||0),u?F(i[0]):[],r.currentChunk.samples.map((x,g)=>[l?F(e[g]):[],h?F(t[g]):[],f?F(i[g]):[],d?Vr(s[g]):[]])])},Ix=r=>ee("mfra",void 0,[...r.map(fA),mA()]),fA=(r,e)=>ne("tfra",1,0,[F(r.track.id),F(63),F(r.finalizedChunks.length),r.finalizedChunks.map(i=>[Si(Fe(i.samples[0].timestamp,r.timescale)),Si(i.moofOffset),F(e+1),F(1),F(1)])]),mA=()=>ne("mfro",0,0,[F(0)]),Fx=()=>ee("vtte"),Ux=(r,e,t,i,s)=>ee("vttc",void 0,[s!==null?ee("vsid",[Vr(s)]):null,t!==null?ee("iden",[...bi.encode(t)]):null,e!==null?ee("ctim",[...bi.encode(px(e))]):null,i!==null?ee("sttg",[...bi.encode(i)]):null,ee("payl",[...bi.encode(r)])]),Ox=r=>ee("vtta",[...bi.encode(r)]),pA={avc:"avc1",hevc:"hvc1",vp8:"vp08",vp9:"vp09",av1:"av01"},gA={avc:Hk,hevc:Wk,vp8:Cx,vp9:Cx,av1:$k},Gx=(r,e)=>{switch(r){case"aac":return"mp4a";case"mp3":return"mp4a";case"opus":return"Opus";case"vorbis":return"mp4a";case"flac":return"fLaC";case"ulaw":return"ulaw";case"alaw":return"alaw";case"pcm-u8":return"raw ";case"pcm-s8":return"sowt"}if(e)switch(r){case"pcm-s16":return"sowt";case"pcm-s16be":return"twos";case"pcm-s24":return"in24";case"pcm-s24be":return"in24";case"pcm-s32":return"in32";case"pcm-s32be":return"in32";case"pcm-f32":return"fl32";case"pcm-f32be":return"fl32";case"pcm-f64":return"fl64";case"pcm-f64be":return"fl64"}else switch(r){case"pcm-s16":return"ipcm";case"pcm-s16be":return"ipcm";case"pcm-s24":return"ipcm";case"pcm-s24be":return"ipcm";case"pcm-s32":return"ipcm";case"pcm-s32be":return"ipcm";case"pcm-f32":return"fpcm";case"pcm-f32be":return"fpcm";case"pcm-f64":return"fpcm";case"pcm-f64be":return"fpcm"}},xA=(r,e)=>{switch(r){case"aac":return Qh;case"mp3":return Qh;case"opus":return Yk;case"vorbis":return Qh;case"flac":return Kk}if(e)switch(r){case"pcm-s24":return zr;case"pcm-s24be":return zr;case"pcm-s32":return zr;case"pcm-s32be":return zr;case"pcm-f32":return zr;case"pcm-f32be":return zr;case"pcm-f64":return zr;case"pcm-f64be":return zr}else switch(r){case"pcm-s16":return Ht;case"pcm-s16be":return Ht;case"pcm-s24":return Ht;case"pcm-s24be":return Ht;case"pcm-s32":return Ht;case"pcm-s32be":return Ht;case"pcm-f32":return Ht;case"pcm-f32be":return Ht;case"pcm-f64":return Ht;case"pcm-f64be":return Ht}return null},_A={webvtt:"wvtt"},bA={webvtt:Zk};var jc=class{constructor(e){this.mutex=new wt,this.firstMediaStreamTimestamp=null,this.trackTimestampInfo=new WeakMap,this.output=e}onTrackClose(e){}validateAndNormalizeTimestamp(e,t,i){t+=e.source._timestampOffset;let s=this.trackTimestampInfo.get(e);if(!s){if(!i)throw new Error("First frame must be a key frame.");s={maxTimestamp:t,maxTimestampBeforeLastKeyFrame:t},this.trackTimestampInfo.set(e,s)}if(t<0)throw new Error(`Timestamps must be non-negative (got ${t}s).`);if(i&&(s.maxTimestampBeforeLastKeyFrame=s.maxTimestamp),t<s.maxTimestampBeforeLastKeyFrame)throw new Error(`Timestamps cannot be smaller than the highest timestamp of the previous run (a run begins with a key frame and ends right before the next key frame). Got ${t}s, but highest timestamp is ${s.maxTimestampBeforeLastKeyFrame}s.`);return s.maxTimestamp=Math.max(s.maxTimestamp,t),t}};var Xc=class{constructor(){this.ensureMonotonicity=!1,this.trackedWrites=null,this.trackedStart=-1,this.trackedEnd=-1}start(){}maybeTrackWrites(e){if(!this.trackedWrites)return;let t=this.getPos();if(t<this.trackedStart){if(t+e.byteLength<=this.trackedStart)return;e=e.subarray(this.trackedStart-t),t=0}let i=t+e.byteLength-this.trackedStart,s=this.trackedWrites.byteLength;for(;s<i;)s*=2;if(s!==this.trackedWrites.byteLength){let n=new Uint8Array(s);n.set(this.trackedWrites,0),this.trackedWrites=n}this.trackedWrites.set(e,t-this.trackedStart),this.trackedEnd=Math.max(this.trackedEnd,t+e.byteLength)}startTrackingWrites(){this.trackedWrites=new Uint8Array(2**10),this.trackedStart=this.getPos(),this.trackedEnd=this.trackedStart}stopTrackingWrites(){if(!this.trackedWrites)throw new Error("Internal error: Can't get tracked writes since nothing was tracked.");let t={data:this.trackedWrites.subarray(0,this.trackedEnd-this.trackedStart),start:this.trackedStart,end:this.trackedEnd};return this.trackedWrites=null,t}},ed=2**16,td=2**32,ds=class extends Xc{constructor(e){if(super(),this.pos=0,this.maxPos=0,this.target=e,this.supportsResize="resize"in new ArrayBuffer(0),this.supportsResize)try{this.buffer=new ArrayBuffer(ed,{maxByteLength:td})}catch{this.buffer=new ArrayBuffer(ed),this.supportsResize=!1}else this.buffer=new ArrayBuffer(ed);this.bytes=new Uint8Array(this.buffer)}ensureSize(e){let t=this.buffer.byteLength;for(;t<e;)t*=2;if(t!==this.buffer.byteLength){if(t>td)throw new Error(`ArrayBuffer exceeded maximum size of ${td} bytes. Please consider using another target.`);if(this.supportsResize)this.buffer.resize(t);else{let i=new ArrayBuffer(t),s=new Uint8Array(i);s.set(this.bytes,0),this.buffer=i,this.bytes=s}}}write(e){this.maybeTrackWrites(e),this.ensureSize(this.pos+e.byteLength),this.bytes.set(e,this.pos),this.pos+=e.byteLength,this.maxPos=Math.max(this.maxPos,this.pos)}seek(e){this.pos=e}getPos(){return this.pos}async flush(){}async finalize(){this.ensureSize(this.pos),this.target.buffer=this.buffer.slice(0,Math.max(this.maxPos,this.pos))}async close(){}getSlice(e,t){return this.bytes.slice(e,t)}},yA=2**24,TA=2,Yc=class extends Xc{constructor(e){super(),this.pos=0,this.sections=[],this.lastWriteEnd=0,this.lastFlushEnd=0,this.writer=null,this.chunks=[],this.target=e,this.chunked=e._options.chunked??!1,this.chunkSize=e._options.chunkSize??yA}start(){this.writer=this.target._writable.getWriter()}write(e){if(this.pos>this.lastWriteEnd){let t=this.pos-this.lastWriteEnd;this.pos=this.lastWriteEnd,this.write(new Uint8Array(t))}this.maybeTrackWrites(e),this.sections.push({data:e.slice(),start:this.pos}),this.pos+=e.byteLength,this.lastWriteEnd=Math.max(this.lastWriteEnd,this.pos)}seek(e){this.pos=e}getPos(){return this.pos}async flush(){if(this.pos>this.lastWriteEnd){let i=this.pos-this.lastWriteEnd;this.pos=this.lastWriteEnd,this.write(new Uint8Array(i))}if(w(this.writer),this.sections.length===0)return;let e=[],t=[...this.sections].sort((i,s)=>i.start-s.start);e.push({start:t[0].start,size:t[0].data.byteLength});for(let i=1;i<t.length;i++){let s=e[e.length-1],n=t[i];n.start<=s.start+s.size?s.size=Math.max(s.size,n.start+n.data.byteLength-s.start):e.push({start:n.start,size:n.data.byteLength})}for(let i of e){i.data=new Uint8Array(i.size);for(let s of this.sections)i.start<=s.start&&s.start<i.start+i.size&&i.data.set(s.data,s.start-i.start);if(this.writer.desiredSize!==null&&this.writer.desiredSize<=0&&await this.writer.ready,this.chunked)this.writeDataIntoChunks(i.data,i.start),this.tryToFlushChunks();else{if(this.ensureMonotonicity&&i.start!==this.lastFlushEnd)throw new Error("Internal error: Monotonicity violation.");this.writer.write({type:"write",data:i.data,position:i.start}),this.lastFlushEnd=i.start+i.data.byteLength}}this.sections.length=0}writeDataIntoChunks(e,t){let i=this.chunks.findIndex(c=>c.start<=t&&t<c.start+this.chunkSize);i===-1&&(i=this.createChunk(t));let s=this.chunks[i],n=t-s.start,o=e.subarray(0,Math.min(this.chunkSize-n,e.byteLength));s.data.set(o,n);let a={start:n,end:n+o.byteLength};if(this.insertSectionIntoChunk(s,a),s.written[0].start===0&&s.written[0].end===this.chunkSize&&(s.shouldFlush=!0),this.chunks.length>TA){for(let c=0;c<this.chunks.length-1;c++)this.chunks[c].shouldFlush=!0;this.tryToFlushChunks()}o.byteLength<e.byteLength&&this.writeDataIntoChunks(e.subarray(o.byteLength),t+o.byteLength)}insertSectionIntoChunk(e,t){let i=0,s=e.written.length-1,n=-1;for(;i<=s;){let o=Math.floor(i+(s-i+1)/2);e.written[o].start<=t.start?(i=o+1,n=o):s=o-1}for(e.written.splice(n+1,0,t),(n===-1||e.written[n].end<t.start)&&n++;n<e.written.length-1&&e.written[n].end>=e.written[n+1].start;)e.written[n].end=Math.max(e.written[n].end,e.written[n+1].end),e.written.splice(n+1,1)}createChunk(e){let i={start:Math.floor(e/this.chunkSize)*this.chunkSize,data:new Uint8Array(this.chunkSize),written:[],shouldFlush:!1};return this.chunks.push(i),this.chunks.sort((s,n)=>s.start-n.start),this.chunks.indexOf(i)}tryToFlushChunks(e=!1){w(this.writer);for(let t=0;t<this.chunks.length;t++){let i=this.chunks[t];if(!(!i.shouldFlush&&!e)){for(let s of i.written){let n=i.start+s.start;if(this.ensureMonotonicity&&n!==this.lastFlushEnd)throw new Error("Internal error: Monotonicity violation.");this.writer.write({type:"write",data:i.data.subarray(s.start,s.end),position:n}),this.lastFlushEnd=i.start+s.end}this.chunks.splice(t--,1)}}}finalize(){return this.chunked&&this.tryToFlushChunks(!0),w(this.writer),this.writer.close()}async close(){return this.writer?.close()}};var vi=class{constructor(){this._output=null}},zn=class extends vi{constructor(){super(...arguments),this.buffer=null}_createWriter(){return new ds(this)}},Vn=class extends vi{constructor(e,t={}){if(super(),!(e instanceof WritableStream))throw new TypeError("StreamTarget requires a WritableStream instance.");if(t!=null&&typeof t!="object")throw new TypeError("StreamTarget options, when provided, must be an object.");if(t.chunked!==void 0&&typeof t.chunked!="boolean")throw new TypeError("options.chunked, when provided, must be a boolean.");if(t.chunkSize!==void 0&&(!Number.isInteger(t.chunkSize)||t.chunkSize<1024))throw new TypeError("options.chunkSize, when provided, must be an integer and not smaller than 1024.");this._writable=e,this._options=t}_createWriter(){return new Yc(this)}};var Kc=r=>{let t=(r.hasVideo?"video/":r.hasAudio?"audio/":"application/")+(r.isQuickTime?"quicktime":"mp4");if(r.codecStrings.length>0){let i=[...new Set(r.codecStrings)];t+=`; codecs="${i.join(", ")}"`}return t};var $c=1e3,wA=2082844800,Fe=(r,e,t=!0)=>{let i=r*e;return t?Math.round(i):i},Qc=class extends jc{constructor(e,t){super(e),this.auxTarget=new zn,this.auxWriter=this.auxTarget._createWriter(),this.auxBoxWriter=new Nn(this.auxWriter),this.mdat=null,this.trackDatas=[],this.allTracksKnown=Ke(),this.creationTime=Math.floor(Date.now()/1e3)+wA,this.finalizedChunks=[],this.nextFragmentNumber=1,this.maxWrittenTimestamp=-1/0,this.format=t,this.writer=e._writer,this.boxWriter=new Nn(this.writer),this.isQuickTime=t instanceof fs;let i=this.writer instanceof ds?"in-memory":!1;this.fastStart=t._options.fastStart??i,this.isFragmented=this.fastStart==="fragmented",(this.fastStart==="in-memory"||this.isFragmented)&&(this.writer.ensureMonotonicity=!0),this.minimumFragmentDuration=t._options.minimumFragmentDuration??1}async start(){let e=await this.mutex.acquire(),t=this.output._tracks.some(i=>i.type==="video"&&i.source._codec==="avc");if(this.format._options.onFtyp&&this.writer.startTrackingWrites(),this.boxWriter.writeBox(Dx({isQuickTime:this.isQuickTime,holdsAvc:t,fragmented:this.isFragmented})),this.format._options.onFtyp){let{data:i,start:s}=this.writer.stopTrackingWrites();this.format._options.onFtyp(i,s)}this.fastStart==="in-memory"?this.mdat=qc(!1):this.isFragmented||(this.format._options.onMdat&&this.writer.startTrackingWrites(),this.mdat=qc(!0),this.boxWriter.writeBox(this.mdat)),await this.writer.flush(),e()}allTracksAreKnown(){for(let e of this.output._tracks)if(!e.source._closed&&!this.trackDatas.some(t=>t.track===e))return!1;return!0}async getMimeType(){await this.allTracksKnown.promise;let e=this.trackDatas.map(t=>t.type==="video"||t.type==="audio"?t.info.decoderConfig.codec:{webvtt:"wvtt"}[t.track.source._codec]);return Kc({isQuickTime:this.isQuickTime,hasVideo:this.trackDatas.some(t=>t.type==="video"),hasAudio:this.trackDatas.some(t=>t.type==="audio"),codecStrings:e})}getVideoTrackData(e,t,i){let s=this.trackDatas.find(u=>u.track===e);if(s)return s;dx(i),w(i),w(i.decoderConfig);let n={...i.decoderConfig};w(n.codedWidth!==void 0),w(n.codedHeight!==void 0);let o=!1;if(e.source._codec==="avc"&&!n.description){let u=Lc(t.data);if(!u)throw new Error("Couldn't extract an AVCDecoderConfigurationRecord from the AVC packet. Make sure the packets are in Annex B format (as specified in ITU-T-REC-H.264) when not providing a description, or provide a description (must be an AVCDecoderConfigurationRecord as specified in ISO 14496-15) and ensure the packets are in AVCC format.");n.description=Tx(u),o=!0}else if(e.source._codec==="hevc"&&!n.description){let u=zc(t.data);if(!u)throw new Error("Couldn't extract an HEVCDecoderConfigurationRecord from the HEVC packet. Make sure the packets are in Annex B format (as specified in ITU-T-REC-H.265) when not providing a description, or provide a description (must be an HEVCDecoderConfigurationRecord as specified in ISO 14496-15) and ensure the packets are in HEVC format.");n.description=wx(u),o=!0}let a=Qg(1/(e.metadata.frameRate??57600),1e6).denominator,c={muxer:this,track:e,type:"video",info:{width:n.codedWidth,height:n.codedHeight,decoderConfig:n,requiresAnnexBTransformation:o},timescale:a,samples:[],sampleQueue:[],timestampProcessingQueue:[],timeToSampleTable:[],compositionTimeOffsetTable:[],lastTimescaleUnits:null,lastSample:null,finalizedChunks:[],currentChunk:null,compactlyCodedChunkTable:[]};return this.trackDatas.push(c),this.trackDatas.sort((u,l)=>u.track.id-l.track.id),this.allTracksAreKnown()&&this.allTracksKnown.resolve(),c}getAudioTrackData(e,t){let i=this.trackDatas.find(n=>n.track===e);if(i)return i;fx(t),w(t),w(t.decoderConfig);let s={muxer:this,track:e,type:"audio",info:{numberOfChannels:t.decoderConfig.numberOfChannels,sampleRate:t.decoderConfig.sampleRate,decoderConfig:t.decoderConfig,requiresPcmTransformation:!this.isFragmented&&Re.includes(e.source._codec)},timescale:t.decoderConfig.sampleRate,samples:[],sampleQueue:[],timestampProcessingQueue:[],timeToSampleTable:[],compositionTimeOffsetTable:[],lastTimescaleUnits:null,lastSample:null,finalizedChunks:[],currentChunk:null,compactlyCodedChunkTable:[]};return this.trackDatas.push(s),this.trackDatas.sort((n,o)=>n.track.id-o.track.id),this.allTracksAreKnown()&&this.allTracksKnown.resolve(),s}getSubtitleTrackData(e,t){let i=this.trackDatas.find(n=>n.track===e);if(i)return i;mx(t),w(t),w(t.config);let s={muxer:this,track:e,type:"subtitle",info:{config:t.config},timescale:1e3,samples:[],sampleQueue:[],timestampProcessingQueue:[],timeToSampleTable:[],compositionTimeOffsetTable:[],lastTimescaleUnits:null,lastSample:null,finalizedChunks:[],currentChunk:null,compactlyCodedChunkTable:[],lastCueEndTimestamp:0,cueQueue:[],nextSourceId:0,cueToSourceId:new WeakMap};return this.trackDatas.push(s),this.trackDatas.sort((n,o)=>n.track.id-o.track.id),this.allTracksAreKnown()&&this.allTracksKnown.resolve(),s}async addEncodedVideoPacket(e,t,i){let s=await this.mutex.acquire();try{let n=this.getVideoTrackData(e,t,i),o=t.data;if(n.info.requiresAnnexBTransformation){let u=yx(o);if(!u)throw new Error("Failed to transform packet data. Make sure all packets are provided in Annex B format, as specified in ITU-T-REC-H.264 and ITU-T-REC-H.265.");o=u}let a=this.validateAndNormalizeTimestamp(n.track,t.timestamp,t.type==="key"),c=this.createSampleForTrack(n,o,a,t.duration,t.type);await this.registerSample(n,c)}finally{s()}}async addEncodedAudioPacket(e,t,i){let s=await this.mutex.acquire();try{let n=this.getAudioTrackData(e,i),o=this.validateAndNormalizeTimestamp(n.track,t.timestamp,t.type==="key"),a=this.createSampleForTrack(n,t.data,o,t.duration,t.type);n.info.requiresPcmTransformation&&await this.maybePadWithSilence(n,o),await this.registerSample(n,a)}finally{s()}}async maybePadWithSilence(e,t){let i=he(e.samples),s=i?i.timestamp+i.duration:0,n=t-s,o=Fe(n,e.timescale);if(o>0){let{sampleSize:a,silentValue:c}=gt(e.info.decoderConfig.codec),u=o*e.info.numberOfChannels,l=new Uint8Array(a*u).fill(c),h=this.createSampleForTrack(e,new Uint8Array(l.buffer),s,n,"key");await this.registerSample(e,h)}}async addSubtitleCue(e,t,i){let s=await this.mutex.acquire();try{let n=this.getSubtitleTrackData(e,i);this.validateAndNormalizeTimestamp(n.track,t.timestamp,!0),e.source._codec==="webvtt"&&(n.cueQueue.push(t),await this.processWebVTTCues(n,t.timestamp))}finally{s()}}async processWebVTTCues(e,t){for(;e.cueQueue.length>0;){let i=new Set([]);for(let u of e.cueQueue)w(u.timestamp<=t),w(e.lastCueEndTimestamp<=u.timestamp+u.duration),i.add(Math.max(u.timestamp,e.lastCueEndTimestamp)),i.add(u.timestamp+u.duration);let s=[...i].sort((u,l)=>u-l),n=s[0],o=s[1]??n;if(t<o)break;if(e.lastCueEndTimestamp<n){this.auxWriter.seek(0);let u=Fx();this.auxBoxWriter.writeBox(u);let l=this.auxWriter.getSlice(0,this.auxWriter.getPos()),h=this.createSampleForTrack(e,l,e.lastCueEndTimestamp,n-e.lastCueEndTimestamp,"key");await this.registerSample(e,h),e.lastCueEndTimestamp=n}this.auxWriter.seek(0);for(let u=0;u<e.cueQueue.length;u++){let l=e.cueQueue[u];if(l.timestamp>=o)break;$h.lastIndex=0;let h=$h.test(l.text),f=l.timestamp+l.duration,d=e.cueToSourceId.get(l);if(d===void 0&&o<f&&(d=e.nextSourceId++,e.cueToSourceId.set(l,d)),l.notes){let x=Ox(l.notes);this.auxBoxWriter.writeBox(x)}let m=Ux(l.text,h?n:null,l.identifier??null,l.settings??null,d??null);this.auxBoxWriter.writeBox(m),f===o&&e.cueQueue.splice(u--,1)}let a=this.auxWriter.getSlice(0,this.auxWriter.getPos()),c=this.createSampleForTrack(e,a,n,o-n,"key");await this.registerSample(e,c),e.lastCueEndTimestamp=o}}createSampleForTrack(e,t,i,s,n){return{timestamp:i,decodeTimestamp:i,duration:s,data:t,size:t.byteLength,type:n,timescaleUnitsToNextSample:Fe(s,e.timescale)}}processTimestamps(e,t){if(e.timestampProcessingQueue.length===0)return;if(e.type==="audio"&&e.info.requiresPcmTransformation){let s=0;for(let n=0;n<e.timestampProcessingQueue.length;n++){let o=e.timestampProcessingQueue[n],a=Fe(o.duration,e.timescale);s+=a}if(e.timeToSampleTable.length===0)e.timeToSampleTable.push({sampleCount:s,sampleDelta:1});else{let n=he(e.timeToSampleTable);n.sampleCount+=s}e.timestampProcessingQueue.length=0;return}let i=e.timestampProcessingQueue.map(s=>s.timestamp).sort((s,n)=>s-n);for(let s=0;s<e.timestampProcessingQueue.length;s++){let n=e.timestampProcessingQueue[s];n.decodeTimestamp=i[s],!this.isFragmented&&e.lastTimescaleUnits===null&&(n.decodeTimestamp=0);let o=Fe(n.timestamp-n.decodeTimestamp,e.timescale),a=Fe(n.duration,e.timescale);if(e.lastTimescaleUnits!==null){w(e.lastSample);let c=Fe(n.decodeTimestamp,e.timescale,!1),u=Math.round(c-e.lastTimescaleUnits);if(w(u>=0),e.lastTimescaleUnits+=u,e.lastSample.timescaleUnitsToNextSample=u,!this.isFragmented){let l=he(e.timeToSampleTable);if(w(l),l.sampleCount===1){l.sampleDelta=u;let f=e.timeToSampleTable[e.timeToSampleTable.length-2];f&&f.sampleDelta===u&&(f.sampleCount++,e.timeToSampleTable.pop(),l=f)}else l.sampleDelta!==u&&(l.sampleCount--,e.timeToSampleTable.push(l={sampleCount:1,sampleDelta:u}));l.sampleDelta===a?l.sampleCount++:e.timeToSampleTable.push({sampleCount:1,sampleDelta:a});let h=he(e.compositionTimeOffsetTable);w(h),h.sampleCompositionTimeOffset===o?h.sampleCount++:e.compositionTimeOffsetTable.push({sampleCount:1,sampleCompositionTimeOffset:o})}}else e.lastTimescaleUnits=Fe(n.decodeTimestamp,e.timescale,!1),this.isFragmented||(e.timeToSampleTable.push({sampleCount:1,sampleDelta:a}),e.compositionTimeOffsetTable.push({sampleCount:1,sampleCompositionTimeOffset:o}));e.lastSample=n}if(e.timestampProcessingQueue.length=0,w(e.lastSample),w(e.lastTimescaleUnits!==null),t!==void 0&&e.lastSample.timescaleUnitsToNextSample===0){w(t.type==="key");let s=Fe(t.timestamp,e.timescale,!1),n=Math.round(s-e.lastTimescaleUnits);e.lastSample.timescaleUnitsToNextSample=n}}async registerSample(e,t){t.type==="key"&&this.processTimestamps(e,t),e.timestampProcessingQueue.push(t),this.isFragmented?(e.sampleQueue.push(t),await this.interleaveSamples()):await this.addSampleToTrack(e,t)}async addSampleToTrack(e,t){this.isFragmented||e.samples.push(t);let i=!1;if(!e.currentChunk)i=!0;else{e.currentChunk.startTimestamp=Math.min(e.currentChunk.startTimestamp,t.timestamp);let s=t.timestamp-e.currentChunk.startTimestamp;if(this.isFragmented){let n=this.trackDatas.every(o=>{if(e===o)return t.type==="key";let a=o.sampleQueue[0];return a?a.type==="key":o.track.source._closed});s>=this.minimumFragmentDuration&&n&&t.timestamp>this.maxWrittenTimestamp&&(i=!0,await this.finalizeFragment())}else i=s>=.5}i&&(e.currentChunk&&await this.finalizeCurrentChunk(e),e.currentChunk={startTimestamp:t.timestamp,samples:[],offset:null,moofOffset:null}),w(e.currentChunk),e.currentChunk.samples.push(t),this.isFragmented&&(this.maxWrittenTimestamp=Math.max(this.maxWrittenTimestamp,t.timestamp))}async finalizeCurrentChunk(e){if(w(!this.isFragmented),!e.currentChunk)return;e.finalizedChunks.push(e.currentChunk),this.finalizedChunks.push(e.currentChunk);let t=e.currentChunk.samples.length;if(e.type==="audio"&&e.info.requiresPcmTransformation&&(t=e.currentChunk.samples.reduce((i,s)=>i+Fe(s.duration,e.timescale),0)),(e.compactlyCodedChunkTable.length===0||he(e.compactlyCodedChunkTable).samplesPerChunk!==t)&&e.compactlyCodedChunkTable.push({firstChunk:e.finalizedChunks.length,samplesPerChunk:t}),this.fastStart==="in-memory"){e.currentChunk.offset=0;return}e.currentChunk.offset=this.writer.getPos();for(let i of e.currentChunk.samples)w(i.data),this.writer.write(i.data),i.data=null;await this.writer.flush()}async interleaveSamples(e=!1){if(w(this.isFragmented),!(!e&&!this.allTracksAreKnown()))e:for(;;){let t=null,i=1/0;for(let n of this.trackDatas){if(!e&&n.sampleQueue.length===0&&!n.track.source._closed)break e;n.sampleQueue.length>0&&n.sampleQueue[0].timestamp<i&&(t=n,i=n.sampleQueue[0].timestamp)}if(!t)break;let s=t.sampleQueue.shift();await this.addSampleToTrack(t,s)}}async finalizeFragment(e=!0){w(this.isFragmented);let t=this.nextFragmentNumber++;if(t===1){this.format._options.onMoov&&this.writer.startTrackingWrites();let d=Ln(this.trackDatas,this.creationTime,!0);if(this.boxWriter.writeBox(d),this.format._options.onMoov){let{data:m,start:x}=this.writer.stopTrackingWrites();this.format._options.onMoov(m,x)}}let i=this.trackDatas.filter(d=>d.currentChunk),s=Jh(t,i),n=this.writer.getPos(),o=n+this.boxWriter.measureBox(s),a=16,c=o+a,u=1/0;for(let d of i){d.currentChunk.offset=c,d.currentChunk.moofOffset=n;for(let m of d.currentChunk.samples)c+=m.size;u=Math.min(u,d.currentChunk.startTimestamp)}let l=c-o;this.format._options.onMoof&&this.writer.startTrackingWrites();let h=Jh(t,i);if(this.boxWriter.writeBox(h),this.format._options.onMoof){let{data:d,start:m}=this.writer.stopTrackingWrites();this.format._options.onMoof(d,m,u)}w(this.writer.getPos()===o),this.format._options.onMdat&&this.writer.startTrackingWrites();let f=qc(l>=2**32);f.size=l,this.boxWriter.writeBox(f),this.writer.seek(o+a);for(let d of i)for(let m of d.currentChunk.samples)this.writer.write(m.data),m.data=null;if(this.format._options.onMdat){let{data:d,start:m}=this.writer.stopTrackingWrites();this.format._options.onMdat(d,m)}for(let d of i)d.finalizedChunks.push(d.currentChunk),this.finalizedChunks.push(d.currentChunk),d.currentChunk=null;e&&await this.writer.flush()}async onTrackClose(e){let t=await this.mutex.acquire();if(e.type==="subtitle"&&e.source._codec==="webvtt"){let i=this.trackDatas.find(s=>s.track===e);i&&await this.processWebVTTCues(i,1/0)}this.allTracksAreKnown()&&this.allTracksKnown.resolve(),this.isFragmented&&await this.interleaveSamples(),t()}async finalize(){let e=await this.mutex.acquire();this.allTracksKnown.resolve();for(let t of this.trackDatas)t.type==="subtitle"&&t.track.source._codec==="webvtt"&&await this.processWebVTTCues(t,1/0);if(this.isFragmented){await this.interleaveSamples(!0);for(let t of this.trackDatas)this.processTimestamps(t);await this.finalizeFragment(!1)}else for(let t of this.trackDatas)this.processTimestamps(t),await this.finalizeCurrentChunk(t);if(this.fastStart==="in-memory"){w(this.mdat);let t;for(let s=0;s<2;s++){let n=Ln(this.trackDatas,this.creationTime),o=this.boxWriter.measureBox(n);t=this.boxWriter.measureBox(this.mdat);let a=this.writer.getPos()+o+t;for(let c of this.finalizedChunks){c.offset=a;for(let{data:u}of c.samples)w(u),a+=u.byteLength,t+=u.byteLength}if(a<2**32)break;t>=2**32&&(this.mdat.largeSize=!0)}this.format._options.onMoov&&this.writer.startTrackingWrites();let i=Ln(this.trackDatas,this.creationTime);if(this.boxWriter.writeBox(i),this.format._options.onMoov){let{data:s,start:n}=this.writer.stopTrackingWrites();this.format._options.onMoov(s,n)}this.format._options.onMdat&&this.writer.startTrackingWrites(),this.mdat.size=t,this.boxWriter.writeBox(this.mdat);for(let s of this.finalizedChunks)for(let n of s.samples)w(n.data),this.writer.write(n.data),n.data=null;if(this.format._options.onMdat){let{data:s,start:n}=this.writer.stopTrackingWrites();this.format._options.onMdat(s,n)}}else if(this.isFragmented){let t=this.writer.getPos(),i=Ix(this.trackDatas);this.boxWriter.writeBox(i);let s=this.writer.getPos()-t;this.writer.seek(this.writer.getPos()-4),this.boxWriter.writeU32(s)}else{w(this.mdat);let t=this.boxWriter.offsets.get(this.mdat);w(t!==void 0);let i=this.writer.getPos()-t;if(this.mdat.size=i,this.mdat.largeSize=i>=2**32,this.boxWriter.patchBox(this.mdat),this.format._options.onMdat){let{data:n,start:o}=this.writer.stopTrackingWrites();this.format._options.onMdat(n,o)}this.format._options.onMoov&&this.writer.startTrackingWrites();let s=Ln(this.trackDatas,this.creationTime);if(this.boxWriter.writeBox(s),this.format._options.onMoov){let{data:n,start:o}=this.writer.stopTrackingWrites();this.format._options.onMoov(n,o)}}e()}};var I;(function(r){r[r.EBML=440786851]="EBML",r[r.EBMLVersion=17030]="EBMLVersion",r[r.EBMLReadVersion=17143]="EBMLReadVersion",r[r.EBMLMaxIDLength=17138]="EBMLMaxIDLength",r[r.EBMLMaxSizeLength=17139]="EBMLMaxSizeLength",r[r.DocType=17026]="DocType",r[r.DocTypeVersion=17031]="DocTypeVersion",r[r.DocTypeReadVersion=17029]="DocTypeReadVersion",r[r.SeekHead=290298740]="SeekHead",r[r.Seek=19899]="Seek",r[r.SeekID=21419]="SeekID",r[r.SeekPosition=21420]="SeekPosition",r[r.Duration=17545]="Duration",r[r.Info=357149030]="Info",r[r.TimestampScale=2807729]="TimestampScale",r[r.MuxingApp=19840]="MuxingApp",r[r.WritingApp=22337]="WritingApp",r[r.Tracks=374648427]="Tracks",r[r.TrackEntry=174]="TrackEntry",r[r.TrackNumber=215]="TrackNumber",r[r.TrackUID=29637]="TrackUID",r[r.TrackType=131]="TrackType",r[r.FlagEnabled=185]="FlagEnabled",r[r.FlagDefault=136]="FlagDefault",r[r.FlagForced=21930]="FlagForced",r[r.FlagLacing=156]="FlagLacing",r[r.Language=2274716]="Language",r[r.CodecID=134]="CodecID",r[r.CodecPrivate=25506]="CodecPrivate",r[r.CodecDelay=22186]="CodecDelay",r[r.SeekPreRoll=22203]="SeekPreRoll",r[r.DefaultDuration=2352003]="DefaultDuration",r[r.Video=224]="Video",r[r.PixelWidth=176]="PixelWidth",r[r.PixelHeight=186]="PixelHeight",r[r.Audio=225]="Audio",r[r.SamplingFrequency=181]="SamplingFrequency",r[r.Channels=159]="Channels",r[r.BitDepth=25188]="BitDepth",r[r.Segment=408125543]="Segment",r[r.SimpleBlock=163]="SimpleBlock",r[r.BlockGroup=160]="BlockGroup",r[r.Block=161]="Block",r[r.BlockAdditions=30113]="BlockAdditions",r[r.BlockMore=166]="BlockMore",r[r.BlockAdditional=165]="BlockAdditional",r[r.BlockAddID=238]="BlockAddID",r[r.BlockDuration=155]="BlockDuration",r[r.ReferenceBlock=251]="ReferenceBlock",r[r.Cluster=524531317]="Cluster",r[r.Timestamp=231]="Timestamp",r[r.Cues=475249515]="Cues",r[r.CuePoint=187]="CuePoint",r[r.CueTime=179]="CueTime",r[r.CueTrackPositions=183]="CueTrackPositions",r[r.CueTrack=247]="CueTrack",r[r.CueClusterPosition=241]="CueClusterPosition",r[r.Colour=21936]="Colour",r[r.MatrixCoefficients=21937]="MatrixCoefficients",r[r.TransferCharacteristics=21946]="TransferCharacteristics",r[r.Primaries=21947]="Primaries",r[r.Range=21945]="Range",r[r.Projection=30320]="Projection",r[r.ProjectionType=30321]="ProjectionType",r[r.ProjectionPoseRoll=30325]="ProjectionPoseRoll",r[r.Attachments=423732329]="Attachments",r[r.Chapters=272869232]="Chapters",r[r.Tags=307544935]="Tags"})(I||(I={}));var SA=[I.EBML,I.Segment],vA=[I.EBMLMaxIDLength,I.EBMLMaxSizeLength,I.SeekHead,I.Info,I.Cluster,I.Tracks,I.Cues,I.Attachments,I.Chapters,I.Tags],rd=[...SA,...vA];var Nx=8,Zc=2,Ci=4+Nx,Ei=class{constructor(e){this.reader=e,this.pos=0}readBytes(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);return this.pos+=e,new Uint8Array(t.buffer,i,e)}readU8(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+1);return this.pos++,e.getUint8(t)}readS16(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+2);return this.pos+=2,e.getInt16(t,!1)}readVarIntSize(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+1),i=e.getUint8(t),s=1,n=128;for(;(i&n)===0&&s<8;)s++,n>>=1;return s}readVarInt(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+1),i=e.getUint8(t),s=1,n=128;for(;(i&n)===0&&s<Nx;)s++,n>>=1;let{view:o,offset:a}=this.reader.getViewAndOffset(this.pos,this.pos+s),c=i&n-1;for(let u=1;u<s;u++)c*=256,c+=o.getUint8(a+u);return this.pos+=s,c}readUnsignedInt(e){if(e<1||e>8)throw new Error("Bad unsigned int size "+e);let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e),s=0;for(let n=0;n<e;n++)s*=256,s+=t.getUint8(i+n);return this.pos+=e,s}readSignedInt(e){let t=this.readUnsignedInt(e);return t&1<<e*8-1&&(t-=2**(e*8)),t}readFloat(e){if(e===0)return 0;if(e!==4&&e!==8)throw new Error("Bad float size "+e);let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e),s=e===4?t.getFloat32(i,!1):t.getFloat64(i,!1);return this.pos+=e,s}readString(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);return this.pos+=e,String.fromCharCode(...new Uint8Array(t.buffer,i,e))}readElementId(){let e=this.readVarIntSize();return this.readUnsignedInt(e)}readElementSize(){let e=this.readU8();return e===255?e=null:(this.pos--,e=this.readVarInt(),e===72057594037927940&&(e=null)),e}readElementHeader(){let e=this.readElementId(),t=this.readElementSize();return{id:e,size:t}}async searchForNextElementId(e,t){let s=new Set(e);for(;this.pos<t-Ci;){this.reader.rangeIsLoaded(this.pos,this.pos+Ci)||await this.reader.loadRange(this.pos,Math.min(this.pos+1048576,t));let n=this.pos,o=this.readElementHeader();if(s.has(o.id))return n;ki(o.size),this.pos+=o.size}return null}},Dt={avc:"V_MPEG4/ISO/AVC",hevc:"V_MPEGH/ISO/HEVC",vp8:"V_VP8",vp9:"V_VP9",av1:"V_AV1",aac:"A_AAC",mp3:"A_MPEG/L3",opus:"A_OPUS",vorbis:"A_VORBIS",flac:"A_FLAC","pcm-u8":"A_PCM/INT/LIT","pcm-s16":"A_PCM/INT/LIT","pcm-s16be":"A_PCM/INT/BIG","pcm-s24":"A_PCM/INT/LIT","pcm-s24be":"A_PCM/INT/BIG","pcm-s32":"A_PCM/INT/LIT","pcm-s32be":"A_PCM/INT/BIG","pcm-f32":"A_PCM/FLOAT/IEEE","pcm-f64":"A_PCM/FLOAT/IEEE",webvtt:"S_TEXT/WEBVTT"};function ki(r){if(r===null)throw new Error("Undefined element size is used in a place where it is not supported.")}var Lx=r=>{let t=(r.hasVideo?"video/":r.hasAudio?"audio/":"application/")+(r.isWebM?"webm":"x-matroska");if(r.codecStrings.length>0){let i=[...new Set(r.codecStrings.filter(Boolean))];t+=`; codecs="${i.join(", ")}"`}return t};var CA={1:[-1,32,40,48,56,64,80,96,112,128,160,192,224,256,320,-1],2:[-1,32,48,56,64,80,96,112,128,160,192,224,256,320,384,-1],3:[-1,32,64,96,128,160,192,224,256,288,320,352,384,416,448,-1]},EA={1:[-1,32,48,56,64,80,96,112,128,144,160,176,192,224,256,-1],2:[-1,8,16,24,32,40,48,56,64,80,96,112,128,144,160,-1],3:[-1,8,16,24,32,40,48,56,64,80,96,112,128,144,160,-1]},kA={0:[11025,12e3,8e3,-1],2:[22050,24e3,16e3,-1],3:[44100,48e3,32e3,-1]},zx=1483304551,Vx=1231971951,AA=(r,e,t,i)=>Math.floor(r===3?(12*e/t+i)*4:144*e/t+i),Hx=(r,e)=>r===3?e===3?21:36:e===3?13:21,Wx=(r,e)=>{let t=e.pos,i=r>>>24,s=r>>>16&255,n=r>>>8&255,o=r&255;if(i!==255&&s!==255&&n!==255&&o!==255)return e.pos+=4,null;if(e.pos+=1,i!==255||(s&224)!==224)return null;let a=s>>3&3,c=s>>1&3,u=n>>4&15,l=n>>2&3,h=n>>1&1,f=o>>6&3,d=o>>4&3,m=o>>3&1,x=o>>2&1,g=o&3,_=a===3?CA[c]?.[u]:EA[c]?.[u];if(!_||_===-1)return null;let y=_*1e3,S=kA[a]?.[l];if(!S||S===-1)return null;let T=AA(c,y,S,h);if(e.fileSize!==null&&e.fileSize-t<T)return null;let C;return a===3?C=c===3?384:1152:c===3?C=384:c===2?C=1152:C=576,{startPos:t,totalSize:T,mpegVersionId:a,layer:c,bitrate:y,frequencyIndex:l,sampleRate:S,channel:f,modeExtension:d,copyright:m,original:x,emphasis:g,audioSamplesInFrame:C}};var id=1399285583,PA=79764919,$x=new Uint32Array(256);for(let r=0;r<256;r++){let e=r<<24;for(let t=0;t<8;t++)e=e&2147483648?e<<1^PA:e<<1;$x[r]=e>>>0&4294967295}var qx=r=>{let e=St(r),t=e.getUint32(22,!0);e.setUint32(22,0,!0);let i=0;for(let s=0;s<r.length;s++){let n=r[s];i=(i<<8^$x[i>>>24^n])>>>0}return e.setUint32(22,t,!0),i},jx=(r,e,t)=>{let i=0,s=null;if(r.length>0)if(e.codec==="vorbis"){w(e.vorbisInfo);let n=e.vorbisInfo.modeBlockflags.length,a=(1<<Kg(n-1))-1<<1,c=(r[0]&a)>>1;if(c>=e.vorbisInfo.modeBlockflags.length)throw new Error("Invalid mode number.");let u=t,l=e.vorbisInfo.modeBlockflags[c];if(s=e.vorbisInfo.blocksizes[l],l===1){let h=(a|1)+1,f=r[0]&h?1:0;u=e.vorbisInfo.blocksizes[f]}i=u!==null?u+s>>2:0}else e.codec==="opus"&&(i=Sx(r).durationInSamples);return{durationInSamples:i,vorbisBlockSize:s}},Xx=r=>{let e="audio/ogg";if(r.codecStrings){let t=[...new Set(r.codecStrings)];e+=`; codecs="${t.join(", ")}"`}return e};var ps=27,Ai=282,Yx=Ai+255*255,ms=class{constructor(e){this.reader=e,this.pos=0}readBytes(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);return this.pos+=e,new Uint8Array(t.buffer,i,e)}readU8(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+1);return this.pos+=1,e.getUint8(t)}readU32(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+4);return this.pos+=4,e.getUint32(t,!0)}readI32(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+4);return this.pos+=4,e.getInt32(t,!0)}readI64(){let e=this.readU32();return this.readI32()*4294967296+e}readAscii(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);this.pos+=e;let s="";for(let n=0;n<e;n++)s+=String.fromCharCode(t.getUint8(i+n));return s}readPageHeader(){let e=this.pos;if(this.readU32()!==id)return null;this.pos+=1;let i=this.readU8(),s=this.readI64(),n=this.readU32(),o=this.readU32(),a=this.readU32(),c=this.readU8(),u=new Uint8Array(c);for(let d=0;d<c;d++)u[d]=this.readU8();let l=27+c,h=u.reduce((d,m)=>d+m,0),f=l+h;return{headerStartPos:e,totalSize:f,dataStartPos:e+l,dataSize:h,headerType:i,granulePosition:s,serialNumber:n,sequenceNumber:o,checksum:a,lacingValues:u}}findNextPageHeader(e){for(;this.pos<e-3;){let t=this.readU32(),i=t&255,s=t>>>8&255,n=t>>>16&255,o=t>>>24&255,a=79;if(!(i!==a&&s!==a&&n!==a&&o!==a)){if(this.pos-=4,t===id)return!0;this.pos+=1}}return!1}};var Ct=class{constructor(e){this.input=e}};var ot=new Uint8Array(0),ge=class r{constructor(e,t,i,s,n=-1,o){if(this.data=e,this.type=t,this.timestamp=i,this.duration=s,this.sequenceNumber=n,e===ot&&o===void 0)throw new Error("Internal error: byteLength must be explicitly provided when constructing metadata-only packets.");if(o===void 0&&(o=e.byteLength),!(e instanceof Uint8Array))throw new TypeError("data must be a Uint8Array.");if(t!=="key"&&t!=="delta")throw new TypeError('type must be either "key" or "delta".');if(!Number.isFinite(i))throw new TypeError("timestamp must be a number.");if(!Number.isFinite(s)||s<0)throw new TypeError("duration must be a non-negative number.");if(!Number.isFinite(n))throw new TypeError("sequenceNumber must be a number.");if(!Number.isInteger(o)||o<0)throw new TypeError("byteLength must be a non-negative integer.");this.byteLength=o}get isMetadataOnly(){return this.data===ot}get microsecondTimestamp(){return Math.trunc(Vt*this.timestamp)}get microsecondDuration(){return Math.trunc(Vt*this.duration)}toEncodedVideoChunk(){if(this.isMetadataOnly)throw new TypeError("Metadata-only packets cannot be converted to a video chunk.");if(typeof EncodedVideoChunk>"u")throw new Error("Your browser does not support EncodedVideoChunk.");return new EncodedVideoChunk({data:this.data,type:this.type,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration})}toEncodedAudioChunk(){if(this.isMetadataOnly)throw new TypeError("Metadata-only packets cannot be converted to an audio chunk.");if(typeof EncodedAudioChunk>"u")throw new Error("Your browser does not support EncodedAudioChunk.");return new EncodedAudioChunk({data:this.data,type:this.type,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration})}static fromEncodedChunk(e){if(!(e instanceof EncodedVideoChunk||e instanceof EncodedAudioChunk))throw new TypeError("chunk must be an EncodedVideoChunk or EncodedAudioChunk.");let t=new Uint8Array(e.byteLength);return e.copyTo(t),new r(t,e.type,e.timestamp/1e6,(e.duration??0)/1e6)}clone(e){if(e!==void 0&&(typeof e!="object"||e===null))throw new TypeError("options, when provided, must be an object.");if(e?.timestamp!==void 0&&!Number.isFinite(e.timestamp))throw new TypeError("options.timestamp, when provided, must be a number.");if(e?.duration!==void 0&&!Number.isFinite(e.duration))throw new TypeError("options.duration, when provided, must be a number.");return new r(this.data,this.type,e?.timestamp??this.timestamp,e?.duration??this.duration,this.sequenceNumber,this.byteLength)}};var Kx=r=>{let i=r,s=4096,n=0,o=12,a=0;for(i<0&&(i=-i,n=128),i+=33,i>8191&&(i=8191);(i&s)!==s&&o>=5;)s>>=1,o--;return a=i>>o-4&15,~(n|o-5<<4|a)&255},Qx=r=>{let t=0,i=0,s=~r;s&128&&(s&=-129,t=-1),i=((s&240)>>4)+5;let n=(1<<i|(s&15)<<i-4|1<<i-5)-33;return t===0?n:-n},Zx=r=>{let t=2048,i=0,s=11,n=0,o=r;for(o<0&&(o=-o,i=128),o>4095&&(o=4095);(o&t)!==t&&s>=5;)t>>=1,s--;return n=o>>(s===4?1:s-4)&15,(i|s-4<<4|n)^85},Jx=r=>{let e=0,t=0,i=r^85;i&128&&(i&=-129,e=-1),t=((i&240)>>4)+4;let s=0;return t!==4?s=1<<t|(i&15)<<t-4|1<<t-5:s=i<<1|1,e===0?s:-s};var $t=class r{get displayWidth(){return this.rotation%180===0?this.codedWidth:this.codedHeight}get displayHeight(){return this.rotation%180===0?this.codedHeight:this.codedWidth}get microsecondTimestamp(){return Math.trunc(Vt*this.timestamp)}get microsecondDuration(){return Math.trunc(Vt*this.duration)}constructor(e,t){if(this._closed=!1,e instanceof ArrayBuffer||ArrayBuffer.isView(e)){if(!t||typeof t!="object")throw new TypeError("init must be an object.");if(!("format"in t)||typeof t.format!="string")throw new TypeError("init.format must be a string.");if(!Number.isInteger(t.codedWidth)||t.codedWidth<=0)throw new TypeError("init.codedWidth must be a positive integer.");if(!Number.isInteger(t.codedHeight)||t.codedHeight<=0)throw new TypeError("init.codedHeight must be a positive integer.");if(t.rotation!==void 0&&![0,90,180,270].includes(t.rotation))throw new TypeError("init.rotation, when provided, must be 0, 90, 180, or 270.");if(!Number.isFinite(t.timestamp))throw new TypeError("init.timestamp must be a number.");if(t.duration!==void 0&&(!Number.isFinite(t.duration)||t.duration<0))throw new TypeError("init.duration, when provided, must be a non-negative number.");this._data=zt(e).slice(),this.format=t.format,this.codedWidth=t.codedWidth,this.codedHeight=t.codedHeight,this.rotation=t.rotation??0,this.timestamp=t.timestamp,this.duration=t.duration??0,this.colorSpace=new VideoColorSpace(t.colorSpace)}else if(typeof VideoFrame<"u"&&e instanceof VideoFrame){if(t?.rotation!==void 0&&![0,90,180,270].includes(t.rotation))throw new TypeError("init.rotation, when provided, must be 0, 90, 180, or 270.");if(t?.timestamp!==void 0&&!Number.isFinite(t?.timestamp))throw new TypeError("init.timestamp, when provided, must be a number.");if(t?.duration!==void 0&&(!Number.isFinite(t.duration)||t.duration<0))throw new TypeError("init.duration, when provided, must be a non-negative number.");this._data=e,this.format=e.format,this.codedWidth=e.codedWidth,this.codedHeight=e.codedHeight,this.rotation=t?.rotation??0,this.timestamp=t?.timestamp??e.timestamp/1e6,this.duration=t?.duration??(e.duration??0)/1e6,this.colorSpace=e.colorSpace}else if(typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement||typeof SVGImageElement<"u"&&e instanceof SVGImageElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap||typeof HTMLVideoElement<"u"&&e instanceof HTMLVideoElement||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof OffscreenCanvas<"u"&&e instanceof OffscreenCanvas){if(!t||typeof t!="object")throw new TypeError("init must be an object.");if(t.rotation!==void 0&&![0,90,180,270].includes(t.rotation))throw new TypeError("init.rotation, when provided, must be 0, 90, 180, or 270.");if(!Number.isFinite(t.timestamp))throw new TypeError("init.timestamp must be a number.");if(t.duration!==void 0&&(!Number.isFinite(t.duration)||t.duration<0))throw new TypeError("init.duration, when provided, must be a non-negative number.");if(typeof VideoFrame<"u")return new r(new VideoFrame(e,{timestamp:Math.trunc(t.timestamp*Vt),duration:Math.trunc((t.duration??0)*Vt)}),t);let i=0,s=0;if("naturalWidth"in e?(i=e.naturalWidth,s=e.naturalHeight):"videoWidth"in e?(i=e.videoWidth,s=e.videoHeight):"width"in e&&(i=Number(e.width),s=Number(e.height)),!i||!s)throw new TypeError("Could not determine dimensions.");let n=new OffscreenCanvas(i,s),o=n.getContext("2d",{alpha:!1,willReadFrequently:!0});w(o),o.drawImage(e,0,0),this._data=n,this.format="RGBX",this.codedWidth=i,this.codedHeight=s,this.rotation=t.rotation??0,this.timestamp=t.timestamp,this.duration=t.duration??0,this.colorSpace=new VideoColorSpace({matrix:"rgb",primaries:"bt709",transfer:"iec61966-2-1",fullRange:!0})}else throw new TypeError("Invalid data type: Must be a BufferSource or CanvasImageSource.")}clone(){if(this._closed)throw new Error("VideoSample is closed.");return w(this._data!==null),Hn(this._data)?new r(this._data.clone(),{timestamp:this.timestamp,duration:this.duration}):this._data instanceof Uint8Array?new r(this._data.slice(),{format:this.format,codedWidth:this.codedWidth,codedHeight:this.codedHeight,timestamp:this.timestamp,duration:this.duration,colorSpace:this.colorSpace}):new r(this._data,{format:this.format,codedWidth:this.codedWidth,codedHeight:this.codedHeight,timestamp:this.timestamp,duration:this.duration,colorSpace:this.colorSpace})}close(){this._closed||(Hn(this._data)?this._data.close():this._data=null,this._closed=!0)}allocationSize(){if(this._closed)throw new Error("VideoSample is closed.");return w(this._data!==null),Hn(this._data)?this._data.allocationSize():this._data instanceof Uint8Array?this._data.byteLength:this.codedWidth*this.codedHeight*4}async copyTo(e){if(!as(e))throw new TypeError("destination must be an ArrayBuffer or an ArrayBuffer view.");if(this._closed)throw new Error("VideoSample is closed.");if(w(this._data!==null),Hn(this._data))await this._data.copyTo(e);else if(this._data instanceof Uint8Array)zt(e).set(this._data);else{let i=this._data.getContext("2d",{alpha:!1});w(i);let s=i.getImageData(0,0,this.codedWidth,this.codedHeight);zt(e).set(s.data)}}toVideoFrame(){if(this._closed)throw new Error("VideoSample is closed.");return w(this._data!==null),Hn(this._data)?new VideoFrame(this._data,{timestamp:this.microsecondTimestamp,duration:this.microsecondDuration||void 0}):this._data instanceof Uint8Array?new VideoFrame(this._data,{format:this.format,codedWidth:this.codedWidth,codedHeight:this.codedHeight,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration,colorSpace:this.colorSpace}):new VideoFrame(this._data,{timestamp:this.microsecondTimestamp,duration:this.microsecondDuration})}draw(e,t,i,s,n,o,a,c,u){let l=0,h=0,f=this.displayWidth,d=this.displayHeight,m=0,x=0,g=this.displayWidth,_=this.displayHeight;if(o!==void 0?(l=t,h=i,f=s,d=n,m=o,x=a,c!==void 0?(g=c,_=u):(g=f,_=d)):(m=t,x=i,s!==void 0&&(g=s,_=n)),!(typeof CanvasRenderingContext2D<"u"&&e instanceof CanvasRenderingContext2D||typeof OffscreenCanvasRenderingContext2D<"u"&&e instanceof OffscreenCanvasRenderingContext2D))throw new TypeError("context must be a CanvasRenderingContext2D or OffscreenCanvasRenderingContext2D.");if(!Number.isFinite(l))throw new TypeError("sx must be a number.");if(!Number.isFinite(h))throw new TypeError("sy must be a number.");if(!Number.isFinite(f)||f<0)throw new TypeError("sWidth must be a non-negative number.");if(!Number.isFinite(d)||d<0)throw new TypeError("sHeight must be a non-negative number.");if(!Number.isFinite(m))throw new TypeError("dx must be a number.");if(!Number.isFinite(x))throw new TypeError("dy must be a number.");if(!Number.isFinite(g)||g<0)throw new TypeError("dWidth must be a non-negative number.");if(!Number.isFinite(_)||_<0)throw new TypeError("dHeight must be a non-negative number.");if(this._closed)throw new Error("VideoSample is closed.");this.rotation===90?[l,h,f,d]=[h,this.codedHeight-l-f,d,f]:this.rotation===180?[l,h]=[this.codedWidth-l-f,this.codedHeight-h-d]:this.rotation===270&&([l,h,f,d]=[this.codedWidth-h-d,l,d,f]);let y=this.toCanvasImageSource();e.save();let S=m+g/2,T=x+_/2;e.translate(S,T),e.rotate(this.rotation*Math.PI/180);let C=this.rotation%180===0?1:g/_;e.scale(1/C,C),e.drawImage(y,l,h,f,d,-g/2,-_/2,g,_),e.restore()}toCanvasImageSource(){if(this._closed)throw new Error("VideoSample is closed.");if(w(this._data!==null),this._data instanceof Uint8Array){let e=this.toVideoFrame();return queueMicrotask(()=>e.close()),e}else return this._data}setRotation(e){if(![0,90,180,270].includes(e))throw new TypeError("newRotation must be 0, 90, 180, or 270.");this.rotation=e}setTimestamp(e){if(!Number.isFinite(e))throw new TypeError("newTimestamp must be a number.");this.timestamp=e}setDuration(e){if(!Number.isFinite(e)||e<0)throw new TypeError("newDuration must be a non-negative number.");this.duration=e}},Hn=r=>typeof VideoFrame<"u"&&r instanceof VideoFrame,sd=new Set(["f32","f32-planar","s16","s16-planar","s32","s32-planar","u8","u8-planar"]),Mt=class r{get microsecondTimestamp(){return Math.trunc(Vt*this.timestamp)}get microsecondDuration(){return Math.trunc(Vt*this.duration)}constructor(e){if(this._closed=!1,$n(e)){if(e.format===null)throw new TypeError("AudioData with null format is not supported.");this._data=e,this.format=e.format,this.sampleRate=e.sampleRate,this.numberOfFrames=e.numberOfFrames,this.numberOfChannels=e.numberOfChannels,this.timestamp=e.timestamp/1e6,this.duration=e.numberOfFrames/e.sampleRate}else{if(!e||typeof e!="object")throw new TypeError("Invalid AudioDataInit: must be an object.");if(!sd.has(e.format))throw new TypeError("Invalid AudioDataInit: invalid format.");if(!Number.isFinite(e.sampleRate)||e.sampleRate<=0)throw new TypeError("Invalid AudioDataInit: sampleRate must be > 0.");if(!Number.isInteger(e.numberOfChannels)||e.numberOfChannels===0)throw new TypeError("Invalid AudioDataInit: numberOfChannels must be an integer > 0.");if(!Number.isFinite(e?.timestamp))throw new TypeError("init.timestamp must be a number.");let t=e.data.byteLength/(Wn(e.format)*e.numberOfChannels);if(!Number.isInteger(t))throw new TypeError("Invalid AudioDataInit: data size is not a multiple of frame size.");this.format=e.format,this.sampleRate=e.sampleRate,this.numberOfFrames=t,this.numberOfChannels=e.numberOfChannels,this.timestamp=e.timestamp,this.duration=t/e.sampleRate;let i;if(e.data instanceof ArrayBuffer)i=new Uint8Array(e.data);else if(ArrayBuffer.isView(e.data))i=new Uint8Array(e.data.buffer,e.data.byteOffset,e.data.byteLength);else throw new TypeError("Invalid AudioDataInit: data is not a BufferSource.");let s=this.numberOfFrames*this.numberOfChannels*Wn(this.format);if(i.byteLength<s)throw new TypeError("Invalid AudioDataInit: insufficient data size.");this._data=i}}allocationSize(e){if(!e||typeof e!="object")throw new TypeError("options must be an object.");if(!Number.isInteger(e.planeIndex)||e.planeIndex<0)throw new TypeError("planeIndex must be a non-negative integer.");if(e.format!==void 0&&!sd.has(e.format))throw new TypeError("Invalid format.");if(e.frameOffset!==void 0&&(!Number.isInteger(e.frameOffset)||e.frameOffset<0))throw new TypeError("frameOffset must be a non-negative integer.");if(e.frameCount!==void 0&&(!Number.isInteger(e.frameCount)||e.frameCount<0))throw new TypeError("frameCount must be a non-negative integer.");if(this._closed)throw new Error("AudioSample is closed.");let t=e.format??this.format,i=e.frameOffset??0;if(i>=this.numberOfFrames)throw new RangeError("frameOffset out of range");let s=e.frameCount!==void 0?e.frameCount:this.numberOfFrames-i;if(s>this.numberOfFrames-i)throw new RangeError("frameCount out of range");let n=Wn(t),o=Jc(t);if(o&&e.planeIndex>=this.numberOfChannels)throw new RangeError("planeIndex out of range");if(!o&&e.planeIndex!==0)throw new RangeError("planeIndex out of range");return(o?s:s*this.numberOfChannels)*n}copyTo(e,t){if(!as(e))throw new TypeError("destination must be an ArrayBuffer or an ArrayBuffer view.");if(!t||typeof t!="object")throw new TypeError("options must be an object.");if(!Number.isInteger(t.planeIndex)||t.planeIndex<0)throw new TypeError("planeIndex must be a non-negative integer.");if(t.format!==void 0&&!sd.has(t.format))throw new TypeError("Invalid format.");if(t.frameOffset!==void 0&&(!Number.isInteger(t.frameOffset)||t.frameOffset<0))throw new TypeError("frameOffset must be a non-negative integer.");if(t.frameCount!==void 0&&(!Number.isInteger(t.frameCount)||t.frameCount<0))throw new TypeError("frameCount must be a non-negative integer.");if(this._closed)throw new Error("AudioSample is closed.");let{planeIndex:i,format:s,frameCount:n,frameOffset:o}=t,a=s??this.format;if(!a)throw new Error("Destination format not determined");let c=this.numberOfFrames,u=this.numberOfChannels,l=o??0;if(l>=c)throw new RangeError("frameOffset out of range");let h=n!==void 0?n:c-l;if(h>c-l)throw new RangeError("frameCount out of range");let f=Wn(a),d=Jc(a);if(d&&i>=u)throw new RangeError("planeIndex out of range");if(!d&&i!==0)throw new RangeError("planeIndex out of range");let x=(d?h:h*u)*f;if(e.byteLength<x)throw new RangeError("Destination buffer is too small");let g=St(e),_=RA(a);if($n(this._data))if(d)if(a==="f32-planar")this._data.copyTo(e,{planeIndex:i,frameOffset:l,frameCount:h,format:"f32-planar"});else{let y=new ArrayBuffer(h*4),S=new Float32Array(y);this._data.copyTo(S,{planeIndex:i,frameOffset:l,frameCount:h,format:"f32-planar"});let T=new DataView(y);for(let C=0;C<h;C++){let v=C*f,E=T.getFloat32(C*4,!0);_(g,v,E)}}else{let y=u,S=new Float32Array(h);for(let T=0;T<y;T++){this._data.copyTo(S,{planeIndex:T,frameOffset:l,frameCount:h,format:"f32-planar"});for(let C=0;C<h;C++){let E=(C*y+T)*f;_(g,E,S[C])}}}else{let y=this._data,S=new DataView(y.buffer,y.byteOffset,y.byteLength),T=this.format,C=BA(T),v=Wn(T),E=Jc(T);for(let D=0;D<h;D++)if(d){let A=D*f,P;E?P=(i*c+(D+l))*v:P=((D+l)*u+i)*v;let k=C(S,P);_(g,A,k)}else for(let A=0;A<u;A++){let k=(D*u+A)*f,G;E?G=(A*c+(D+l))*v:G=((D+l)*u+A)*v;let j=C(S,G);_(g,k,j)}}}clone(){if(this._closed)throw new Error("AudioSample is closed.");if($n(this._data)){let e=new r(this._data.clone());return e.setTimestamp(this.timestamp),e}else return new r({format:this.format,sampleRate:this.sampleRate,numberOfFrames:this.numberOfFrames,numberOfChannels:this.numberOfChannels,timestamp:this.timestamp,data:this._data})}close(){this._closed||($n(this._data)?this._data.close():this._data=new Uint8Array(0),this._closed=!0)}toAudioData(){if(this._closed)throw new Error("AudioSample is closed.");if($n(this._data)){if(this._data.timestamp===this.microsecondTimestamp)return this._data.clone();if(Jc(this.format)){let e=this.allocationSize({planeIndex:0,format:this.format}),t=new ArrayBuffer(e*this.numberOfChannels);for(let i=0;i<this.numberOfChannels;i++)this.copyTo(new Uint8Array(t,i*e,e),{planeIndex:i,format:this.format});return new AudioData({format:this.format,sampleRate:this.sampleRate,numberOfFrames:this.numberOfFrames,numberOfChannels:this.numberOfChannels,timestamp:this.microsecondTimestamp,data:t})}else{let e=new ArrayBuffer(this.allocationSize({planeIndex:0,format:this.format}));return this.copyTo(e,{planeIndex:0,format:this.format}),new AudioData({format:this.format,sampleRate:this.sampleRate,numberOfFrames:this.numberOfFrames,numberOfChannels:this.numberOfChannels,timestamp:this.microsecondTimestamp,data:e})}}else return new AudioData({format:this.format,sampleRate:this.sampleRate,numberOfFrames:this.numberOfFrames,numberOfChannels:this.numberOfChannels,timestamp:this.microsecondTimestamp,data:this._data})}toAudioBuffer(){if(this._closed)throw new Error("AudioSample is closed.");let e=new AudioBuffer({numberOfChannels:this.numberOfChannels,length:this.numberOfFrames,sampleRate:this.sampleRate}),t=new Float32Array(this.allocationSize({planeIndex:0,format:"f32-planar"})/4);for(let i=0;i<this.numberOfChannels;i++)this.copyTo(t,{planeIndex:i,format:"f32-planar"}),e.copyToChannel(t,i);return e}setTimestamp(e){if(!Number.isFinite(e))throw new TypeError("newTimestamp must be a number.");this.timestamp=e}},Wn=r=>{switch(r){case"u8":case"u8-planar":return 1;case"s16":case"s16-planar":return 2;case"s32":case"s32-planar":return 4;case"f32":case"f32-planar":return 4;default:throw new Error("Unknown AudioSampleFormat")}},Jc=r=>{switch(r){case"u8-planar":case"s16-planar":case"s32-planar":case"f32-planar":return!0;default:return!1}},BA=r=>{switch(r){case"u8":case"u8-planar":return(e,t)=>(e.getUint8(t)-128)/128;case"s16":case"s16-planar":return(e,t)=>e.getInt16(t,!0)/32768;case"s32":case"s32-planar":return(e,t)=>e.getInt32(t,!0)/2147483648;case"f32":case"f32-planar":return(e,t)=>e.getFloat32(t,!0)}},RA=r=>{switch(r){case"u8":case"u8-planar":return(e,t,i)=>e.setUint8(t,$e((i+1)*127.5,0,255));case"s16":case"s16-planar":return(e,t,i)=>e.setInt16(t,$e(Math.round(i*32767),-32768,32767),!0);case"s32":case"s32-planar":return(e,t,i)=>e.setInt32(t,$e(Math.round(i*2147483647),-2147483648,2147483647),!0);case"f32":case"f32-planar":return(e,t,i)=>e.setFloat32(t,i,!0)}},$n=r=>typeof AudioData<"u"&&r instanceof AudioData;var gs=r=>{if(!r||typeof r!="object")throw new TypeError("options must be an object.");if(r.metadataOnly!==void 0&&typeof r.metadataOnly!="boolean")throw new TypeError("options.metadataOnly, when defined, must be a boolean.")},Pi=r=>{if(typeof r!="number"||Number.isNaN(r))throw new TypeError("timestamp must be a number.")},Bi=class{constructor(e){if(!(e instanceof xs))throw new TypeError("track must be an InputTrack.");this._track=e}getFirstPacket(e={}){return gs(e),this._track._backing.getFirstPacket(e)}getPacket(e,t={}){return Pi(e),gs(t),this._track._backing.getPacket(e,t)}getNextPacket(e,t={}){if(!(e instanceof ge))throw new TypeError("packet must be an EncodedPacket.");return gs(t),this._track._backing.getNextPacket(e,t)}getKeyPacket(e,t={}){return Pi(e),gs(t),this._track._backing.getKeyPacket(e,t)}getNextKeyPacket(e,t={}){if(!(e instanceof ge))throw new TypeError("packet must be an EncodedPacket.");return gs(t),this._track._backing.getNextKeyPacket(e,t)}packets(e,t,i={}){if(e!==void 0&&!(e instanceof ge))throw new TypeError("startPacket must be an EncodedPacket.");if(e!==void 0&&e.isMetadataOnly&&!i?.metadataOnly)throw new TypeError("startPacket can only be metadata-only if options.metadataOnly is enabled.");if(t!==void 0&&!(t instanceof ge))throw new TypeError("endPacket must be an EncodedPacket.");gs(i);let s=[],{promise:n,resolve:o}=Ke(),{promise:a,resolve:c}=Ke(),u=!1,l=!1,h=null,f=[],d=()=>Math.max(2,f.length);return(async()=>{let m=e??await this.getFirstPacket(i);for(;m&&!l&&!(t&&m.sequenceNumber>=t?.sequenceNumber);){if(s.length>d()){({promise:a,resolve:c}=Ke()),await a;continue}s.push(m),o(),{promise:n,resolve:o}=Ke(),m=await this.getNextPacket(m,i)}u=!0,o()})().catch(m=>{h||(h=m,o())}),{async next(){for(;;){if(l)return{value:void 0,done:!0};if(h)throw h;if(s.length>0){let m=s.shift(),x=performance.now();for(f.push(x);f.length>0&&x-f[0]>=1e3;)f.shift();return c(),{value:m,done:!1}}else{if(u)return{value:void 0,done:!0};await n}}},async return(){return l=!0,c(),o(),{value:void 0,done:!0}},async throw(m){throw m},[Symbol.asyncIterator](){return this}}}},qn=class{constructor(e,t){this.onSample=e,this.onError=t}},jn=class{mediaSamplesInRange(e=0,t=1/0){Pi(e),Pi(t);let i=[],s=!1,n=null,{promise:o,resolve:a}=Ke(),{promise:c,resolve:u}=Ke(),l=!1,h=!1,f=!1,d=null;return(async()=>{let m=new Error,x=await this._createDecoder(C=>{if(u(),C.timestamp>=t&&(h=!0),h){C.close();return}n&&(C.timestamp>e?(i.push(n),s=!0):n.close()),C.timestamp>=e&&(i.push(C),s=!0),n=s?null:C,i.length>0&&(a(),{promise:o,resolve:a}=Ke())},C=>{d||(C.stack=m.stack,d=C,a())}),g=this._createPacketSink(),_=await g.getKeyPacket(e)??await g.getFirstPacket();if(!_)return;let y=_,S;if(t<1/0){let C=await g.getPacket(t),v=C?C.type==="key"&&C.timestamp===t?C:await g.getNextKeyPacket(C):null;v&&(S=v)}let T=g.packets(_,S);for(await T.next();y&&!h;){let C=e0(i.length);if(i.length+x.getDecodeQueueSize()>C){({promise:c,resolve:u}=Ke()),await c;continue}x.decode(y);let v=await T.next();if(v.done)break;y=v.value}await T.return(),f||await x.flush(),x.close(),!s&&n&&i.push(n),l=!0,a()})().catch(m=>{d||(d=m,a())}),{async next(){for(;;){if(f)return{value:void 0,done:!0};if(d)throw d;if(i.length>0){let m=i.shift();return u(),{value:m,done:!1}}else if(!l)await o;else return{value:void 0,done:!0}}},async return(){f=!0,h=!0,u(),a(),n?.close();for(let m of i)m.close();return{value:void 0,done:!0}},async throw(m){throw m},[Symbol.asyncIterator](){return this}}}mediaSamplesAtTimestamps(e){qg(e);let t=$g(e),i=[],s=[],{promise:n,resolve:o}=Ke(),{promise:a,resolve:c}=Ke(),u=!1,l=!1,h=null,f=d=>{s.push(d),o(),{promise:n,resolve:o}=Ke()};return(async()=>{let d=new Error,m=await this._createDecoder(C=>{if(c(),l){C.close();return}let v=0;for(;i.length>0&&C.timestamp-i[0]>-1e-10;)v++,i.shift();if(v>0)for(let E=0;E<v;E++)f(E<v-1?C.clone():C);else C.close()},C=>{h||(C.stack=d.stack,h=C,o())}),x=this._createPacketSink(),g=null,_=null,y=-1,S=async()=>{w(_);let C=_;for(m.decode(C);C.sequenceNumber<y;){let v=e0(s.length);for(;s.length+m.getDecodeQueueSize()>v&&!l;)({promise:a,resolve:c}=Ke()),await a;if(l)break;let E=await x.getNextPacket(C);w(E),C=E,m.decode(E)}y=-1},T=async()=>{await m.flush();for(let C=0;C<i.length;C++)f(null);i.length=0};for await(let C of t){if(Pi(C),l)break;let v=await x.getPacket(C),E=v&&await x.getKeyPacket(C);if(!E){y!==-1&&(await S(),await T()),f(null),g=null;continue}g&&(E.sequenceNumber!==_.sequenceNumber||v.timestamp<g.timestamp)&&(await S(),await T()),i.push(v.timestamp),y=Math.max(v.sequenceNumber,y),g=v,_=E}l||(y!==-1&&await S(),await T()),m.close(),u=!0,o()})().catch(d=>{h||(h=d,o())}),{async next(){for(;;){if(l)return{value:void 0,done:!0};if(h)throw h;if(s.length>0){let d=s.shift();return w(d!==void 0),c(),{value:d,done:!1}}else if(!u)await n;else return{value:void 0,done:!0}}},async return(){l=!0,c(),o();for(let d of s)d?.close();return{value:void 0,done:!0}},async throw(d){throw d},[Symbol.asyncIterator](){return this}}}},e0=r=>r===0?40:8,nd=class extends qn{constructor(e,t,i,s,n,o){super(e,t),this.rotation=n,this.timeResolution=o,this.decoder=null,this.customDecoder=null,this.customDecoderCallSerializer=new Nr,this.customDecoderQueueSize=0,this.sampleQueue=[];let a=u=>{if(this.sampleQueue.length>0&&u.timestamp>=he(this.sampleQueue).timestamp){for(let h of this.sampleQueue)this.finalizeAndEmitSample(h);this.sampleQueue.length=0}let l=Z(this.sampleQueue,u.timestamp,h=>h.timestamp);this.sampleQueue.splice(l+1,0,u)},c=Uc.find(u=>u.supports(i,s));c?(this.customDecoder=new c,this.customDecoder.codec=i,this.customDecoder.config=s,this.customDecoder.onSample=u=>{if(!(u instanceof $t))throw new TypeError("The argument passed to onSample must be a VideoSample.");a(u)},this.customDecoderCallSerializer.call(()=>this.customDecoder.init())):(this.decoder=new VideoDecoder({output:u=>a(new $t(u)),error:t}),this.decoder.configure(s))}finalizeAndEmitSample(e){e.setTimestamp(Math.round(e.timestamp*this.timeResolution)/this.timeResolution),e.setDuration(Math.round(e.duration*this.timeResolution)/this.timeResolution),e.setRotation(this.rotation),this.onSample(e)}getDecodeQueueSize(){return this.customDecoder?this.customDecoderQueueSize:(w(this.decoder),this.decoder.decodeQueueSize)}decode(e){this.customDecoder?(this.customDecoderQueueSize++,this.customDecoderCallSerializer.call(()=>this.customDecoder.decode(e)).then(()=>this.customDecoderQueueSize--)):(w(this.decoder),this.decoder.decode(e.toEncodedVideoChunk()))}async flush(){this.customDecoder?await this.customDecoderCallSerializer.call(()=>this.customDecoder.flush()):(w(this.decoder),await this.decoder.flush());for(let e of this.sampleQueue)this.finalizeAndEmitSample(e);this.sampleQueue.length=0}close(){this.customDecoder?this.customDecoderCallSerializer.call(()=>this.customDecoder.close()):(w(this.decoder),this.decoder.close());for(let e of this.sampleQueue)e.close();this.sampleQueue.length=0}},Xn=class extends jn{constructor(e){if(!(e instanceof gr))throw new TypeError("videoTrack must be an InputVideoTrack.");super(),this._videoTrack=e}async _createDecoder(e,t){if(!await this._videoTrack.canDecode())throw new Error("This video track cannot be decoded by this browser. Make sure to check decodability before using a track.");let i=this._videoTrack.codec,s=this._videoTrack.rotation,n=await this._videoTrack.getDecoderConfig(),o=this._videoTrack.timeResolution;return w(i&&n),new nd(e,t,i,n,s,o)}_createPacketSink(){return new Bi(this._videoTrack)}async getSample(e){Pi(e);for await(let t of this.mediaSamplesAtTimestamps([e]))return t;throw new Error("Internal error: Iterator returned nothing.")}samples(e=0,t=1/0){return this.mediaSamplesInRange(e,t)}samplesAtTimestamps(e){return this.mediaSamplesAtTimestamps(e)}};var od=class extends qn{constructor(e,t,i,s){super(e,t),this.decoder=null,this.customDecoder=null,this.customDecoderCallSerializer=new Nr,this.customDecoderQueueSize=0;let n=a=>{let c=s.sampleRate;a.setTimestamp(Math.round(a.timestamp*c)/c),e(a)},o=Oc.find(a=>a.supports(i,s));o?(this.customDecoder=new o,this.customDecoder.codec=i,this.customDecoder.config=s,this.customDecoder.onSample=a=>{if(!(a instanceof Mt))throw new TypeError("The argument passed to onSample must be an AudioSample.");n(a)},this.customDecoderCallSerializer.call(()=>this.customDecoder.init())):(this.decoder=new AudioDecoder({output:a=>n(new Mt(a)),error:t}),this.decoder.configure(s))}getDecodeQueueSize(){return this.customDecoder?this.customDecoderQueueSize:(w(this.decoder),this.decoder.decodeQueueSize)}decode(e){this.customDecoder?(this.customDecoderQueueSize++,this.customDecoderCallSerializer.call(()=>this.customDecoder.decode(e)).then(()=>this.customDecoderQueueSize--)):(w(this.decoder),this.decoder.decode(e.toEncodedAudioChunk()))}flush(){return this.customDecoder?this.customDecoderCallSerializer.call(()=>this.customDecoder.flush()):(w(this.decoder),this.decoder.flush())}close(){this.customDecoder?this.customDecoderCallSerializer.call(()=>this.customDecoder.close()):(w(this.decoder),this.decoder.close())}},ad=class extends qn{constructor(e,t,i){super(e,t),this.decoderConfig=i,this.currentTimestamp=null,w(Re.includes(i.codec)),this.codec=i.codec;let{dataType:s,sampleSize:n,littleEndian:o}=gt(this.codec);switch(this.inputSampleSize=n,n){case 1:s==="unsigned"?this.readInputValue=(a,c)=>a.getUint8(c)-2**7:s==="signed"?this.readInputValue=(a,c)=>a.getInt8(c):s==="ulaw"?this.readInputValue=(a,c)=>Qx(a.getUint8(c)):s==="alaw"?this.readInputValue=(a,c)=>Jx(a.getUint8(c)):w(!1);break;case 2:s==="unsigned"?this.readInputValue=(a,c)=>a.getUint16(c,o)-2**15:s==="signed"?this.readInputValue=(a,c)=>a.getInt16(c,o):w(!1);break;case 3:s==="unsigned"?this.readInputValue=(a,c)=>Nh(a,c,o)-2**23:s==="signed"?this.readInputValue=(a,c)=>jg(a,c,o):w(!1);break;case 4:s==="unsigned"?this.readInputValue=(a,c)=>a.getUint32(c,o)-2**31:s==="signed"?this.readInputValue=(a,c)=>a.getInt32(c,o):s==="float"?this.readInputValue=(a,c)=>a.getFloat32(c,o):w(!1);break;case 8:s==="float"?this.readInputValue=(a,c)=>a.getFloat64(c,o):w(!1);break;default:Gn(n),w(!1)}switch(n){case 1:s==="ulaw"||s==="alaw"?(this.outputSampleSize=2,this.outputFormat="s16",this.writeOutputValue=(a,c,u)=>a.setInt16(c,u,!0)):(this.outputSampleSize=1,this.outputFormat="u8",this.writeOutputValue=(a,c,u)=>a.setUint8(c,u+2**7));break;case 2:this.outputSampleSize=2,this.outputFormat="s16",this.writeOutputValue=(a,c,u)=>a.setInt16(c,u,!0);break;case 3:this.outputSampleSize=4,this.outputFormat="s32",this.writeOutputValue=(a,c,u)=>a.setInt32(c,u<<8,!0);break;case 4:this.outputSampleSize=4,s==="float"?(this.outputFormat="f32",this.writeOutputValue=(a,c,u)=>a.setFloat32(c,u,!0)):(this.outputFormat="s32",this.writeOutputValue=(a,c,u)=>a.setInt32(c,u,!0));break;case 8:this.outputSampleSize=4,this.outputFormat="f32",this.writeOutputValue=(a,c,u)=>a.setFloat32(c,u,!0);break;default:Gn(n),w(!1)}}getDecodeQueueSize(){return 0}decode(e){let t=St(e.data),i=e.byteLength/this.decoderConfig.numberOfChannels/this.inputSampleSize,s=i*this.decoderConfig.numberOfChannels*this.outputSampleSize,n=new ArrayBuffer(s),o=new DataView(n);for(let l=0;l<i*this.decoderConfig.numberOfChannels;l++){let h=l*this.inputSampleSize,f=l*this.outputSampleSize,d=this.readInputValue(t,h);this.writeOutputValue(o,f,d)}let a=i/this.decoderConfig.sampleRate;(this.currentTimestamp===null||Math.abs(e.timestamp-this.currentTimestamp)>=a)&&(this.currentTimestamp=e.timestamp);let c=this.currentTimestamp;this.currentTimestamp+=a;let u=new Mt({format:this.outputFormat,data:n,numberOfChannels:this.decoderConfig.numberOfChannels,sampleRate:this.decoderConfig.sampleRate,numberOfFrames:i,timestamp:c});this.onSample(u)}async flush(){}close(){}},Yn=class extends jn{constructor(e){if(!(e instanceof Ze))throw new TypeError("audioTrack must be an InputAudioTrack.");super(),this._audioTrack=e}async _createDecoder(e,t){if(!await this._audioTrack.canDecode())throw new Error("This audio track cannot be decoded by this browser. Make sure to check decodability before using a track.");let i=this._audioTrack.codec,s=await this._audioTrack.getDecoderConfig();return w(i&&s),Re.includes(s.codec)?new ad(e,t,s):new od(e,t,i,s)}_createPacketSink(){return new Bi(this._audioTrack)}async getSample(e){Pi(e);for await(let t of this.mediaSamplesAtTimestamps([e]))return t;throw new Error("Internal error: Iterator returned nothing.")}samples(e=0,t=1/0){return this.mediaSamplesInRange(e,t)}samplesAtTimestamps(e){return this.mediaSamplesAtTimestamps(e)}};var xs=class{constructor(e){this._backing=e}isVideoTrack(){return this instanceof gr}isAudioTrack(){return this instanceof Ze}get id(){return this._backing.getId()}get languageCode(){return this._backing.getLanguageCode()}get timeResolution(){return this._backing.getTimeResolution()}getFirstTimestamp(){return this._backing.getFirstTimestamp()}computeDuration(){return this._backing.computeDuration()}async computePacketStats(e=1/0){let t=new Bi(this),i=1/0,s=-1/0,n=0,o=0;for await(let a of t.packets(void 0,void 0,{metadataOnly:!0})){if(n>=e&&a.timestamp>=s)break;i=Math.min(i,a.timestamp),s=Math.max(s,a.timestamp+a.duration),n++,o+=a.byteLength}return{packetCount:n,averagePacketRate:n?Number((n/(s-i)).toPrecision(16)):0,averageBitrate:n?Number((8*o/(s-i)).toPrecision(16)):0}}},gr=class extends xs{constructor(e){super(e),this._backing=e}get type(){return"video"}get codec(){return this._backing.getCodec()}get codedWidth(){return this._backing.getCodedWidth()}get codedHeight(){return this._backing.getCodedHeight()}get rotation(){return this._backing.getRotation()}get displayWidth(){return this._backing.getRotation()%180===0?this._backing.getCodedWidth():this._backing.getCodedHeight()}get displayHeight(){return this._backing.getRotation()%180===0?this._backing.getCodedHeight():this._backing.getCodedWidth()}getColorSpace(){return this._backing.getColorSpace()}async hasHighDynamicRange(){let e=await this._backing.getColorSpace();return e.primaries==="bt2020"||e.primaries==="smpte432"||e.transfer==="pg"||e.transfer==="hlg"||e.matrix==="bt2020-ncl"}getDecoderConfig(){return this._backing.getDecoderConfig()}async getCodecParameterString(){return(await this._backing.getDecoderConfig())?.codec??null}async canDecode(){try{let e=await this._backing.getDecoderConfig();if(!e)return!1;let t=this._backing.getCodec();return w(t!==null),Uc.some(s=>s.supports(t,e))?!0:typeof VideoDecoder>"u"?!1:(await VideoDecoder.isConfigSupported(e)).supported===!0}catch(e){return console.error("Error during decodability check:",e),!1}}},Ze=class extends xs{constructor(e){super(e),this._backing=e}get type(){return"audio"}get codec(){return this._backing.getCodec()}get numberOfChannels(){return this._backing.getNumberOfChannels()}get sampleRate(){return this._backing.getSampleRate()}getDecoderConfig(){return this._backing.getDecoderConfig()}async getCodecParameterString(){return(await this._backing.getDecoderConfig())?.codec??null}async canDecode(){try{let e=await this._backing.getDecoderConfig();if(!e)return!1;let t=this._backing.getCodec();return w(t!==null),Oc.some(i=>i.supports(t,e))||e.codec.startsWith("pcm-")?!0:typeof AudioDecoder>"u"?!1:(await AudioDecoder.isConfigSupported(e)).supported===!0}catch(e){return console.error("Error during decodability check:",e),!1}}};var Et=class{constructor(e,t=1/0){this.source=e,this.maxStorableBytes=t,this.loadedSegments=[],this.loadingSegments=[],this.sourceSizePromise=null,this.nextAge=0,this.totalStoredBytes=0}async loadRange(e,t){if(t=Math.min(t,await this.source.getSize()),e>=t)return;let i=this.loadingSegments.find(c=>c.start<=e&&c.end>=t);if(i){await i.promise;return}let s=Z(this.loadedSegments,e,c=>c.start);if(s!==-1)for(let c=s;c<this.loadedSegments.length;c++){let u=this.loadedSegments[c];if(u.start>e)break;if(u.end>=t)return}this.source.onread?.(e,t);let n=this.source._read(e,t),o={start:e,end:t,promise:n};this.loadingSegments.push(o);let a=await n;Wg(this.loadingSegments,o),this.insertIntoLoadedSegments(e,a)}rangeIsLoaded(e,t){if(t<=e)return!0;let i=Z(this.loadedSegments,e,s=>s.start);if(i===-1)return!1;for(let s=i;s<this.loadedSegments.length;s++){let n=this.loadedSegments[s];if(n.start>e)break;if(n.end>=t)return!0}return!1}insertIntoLoadedSegments(e,t){let i={start:e,end:e+t.byteLength,bytes:t,view:new DataView(t.buffer),age:this.nextAge++},s=Z(this.loadedSegments,e,n=>n.start);(s===-1||this.loadedSegments[s].start<i.start)&&s++,this.loadedSegments.splice(s,0,i),this.totalStoredBytes+=t.byteLength;for(let n=s+1;n<this.loadedSegments.length;n++){let o=this.loadedSegments[n];if(o.start>=i.end)break;i.start<=o.start&&o.end<=i.end&&(this.loadedSegments.splice(n,1),n--)}for(;this.totalStoredBytes>this.maxStorableBytes&&this.loadedSegments.length>1;){let n=null,o=-1;for(let a=0;a<this.loadedSegments.length;a++){let c=this.loadedSegments[a];(!n||c.age<n.age)&&(n=c,o=a)}w(n),this.totalStoredBytes-=n.bytes.byteLength,this.loadedSegments.splice(o,1)}}getViewAndOffset(e,t){let i=Z(this.loadedSegments,e,n=>n.start),s=null;if(i!==-1)for(let n=i;n<this.loadedSegments.length;n++){let o=this.loadedSegments[n];if(o.start>e)break;if(t<=o.end){s=o;break}}if(!s)throw new Error(`No segment loaded for range [${e}, ${t}).`);return s.age=this.nextAge++,{view:s.view,offset:s.bytes.byteOffset+e-s.start}}forgetRange(e,t){if(t<=e)return;let i=Z(this.loadedSegments,e,n=>n.start);if(i===-1)return;let s=this.loadedSegments[i];s.start!==e||s.end!==t||(this.loadedSegments.splice(i,1),this.totalStoredBytes-=s.bytes.byteLength)}};var Ri=class{constructor(e){this.reader=e,this.pos=0,this.littleEndian=!0}readBytes(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);return this.pos+=e,new Uint8Array(t.buffer,i,e)}readU16(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+2);return this.pos+=2,e.getUint16(t,this.littleEndian)}readU32(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+4);return this.pos+=4,e.getUint32(t,this.littleEndian)}readAscii(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);this.pos+=e;let s="";for(let n=0;n<e;n++)s+=String.fromCharCode(t.getUint8(i+n));return s}};var xr;(function(r){r[r.PCM=1]="PCM",r[r.IEEE_FLOAT=3]="IEEE_FLOAT",r[r.ALAW=6]="ALAW",r[r.MULAW=7]="MULAW",r[r.EXTENSIBLE=65534]="EXTENSIBLE"})(xr||(xr={}));var eu=class extends Ct{constructor(e){super(e),this.metadataPromise=null,this.dataStart=-1,this.dataSize=-1,this.audioInfo=null,this.tracks=[],this.metadataReader=new Ri(e._mainReader),this.chunkReader=new Ri(new Et(e.source,64*2**20))}async readMetadata(){return this.metadataPromise??=(async()=>{let e=await this.metadataReader.reader.source.getSize(),t=this.metadataReader.readAscii(4);this.metadataReader.littleEndian=t==="RIFF";let i=Math.min(this.metadataReader.readU32()+8,e);if(this.metadataReader.readAscii(4)!=="WAVE")throw new Error("Invalid WAVE file - wrong format");for(this.metadataReader.pos=12;this.metadataReader.pos<i;){await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+8);let o=this.metadataReader.readAscii(4),a=this.metadataReader.readU32(),c=this.metadataReader.pos;o==="fmt "?await this.parseFmtChunk(a):o==="data"&&(this.dataStart=this.metadataReader.pos,this.dataSize=Math.min(a,i-this.dataStart)),this.metadataReader.pos=c+a+(a&1)}if(!this.audioInfo)throw new Error('Invalid WAVE file - missing "fmt " chunk');if(this.dataStart===-1)throw new Error('Invalid WAVE file - missing "data" chunk');let n=this.audioInfo.blockSizeInBytes;this.dataSize=Math.floor(this.dataSize/n)*n,this.tracks.push(new Ze(new cd(this)))})()}async parseFmtChunk(e){await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+e);let t=this.metadataReader.readU16(),i=this.metadataReader.readU16(),s=this.metadataReader.readU32();this.metadataReader.pos+=4;let n=this.metadataReader.readU16(),o;if(e===14?o=8:o=this.metadataReader.readU16(),e>=18&&t!==357){let a=this.metadataReader.readU16(),c=e-18;if(Math.min(c,a)>=22&&t===xr.EXTENSIBLE){this.metadataReader.pos+=6;let l=this.metadataReader.readBytes(16);t=l[0]|l[1]<<8}}(t===xr.MULAW||t===xr.ALAW)&&(o=8),this.audioInfo={format:t,numberOfChannels:i,sampleRate:s,sampleSizeInBytes:Math.ceil(o/8),blockSizeInBytes:n}}getCodec(){if(w(this.audioInfo),this.audioInfo.format===xr.MULAW)return"ulaw";if(this.audioInfo.format===xr.ALAW)return"alaw";if(this.audioInfo.format===xr.PCM){if(this.audioInfo.sampleSizeInBytes===1)return"pcm-u8";if(this.audioInfo.sampleSizeInBytes===2)return"pcm-s16";if(this.audioInfo.sampleSizeInBytes===3)return"pcm-s24";if(this.audioInfo.sampleSizeInBytes===4)return"pcm-s32"}return this.audioInfo.format===xr.IEEE_FLOAT&&this.audioInfo.sampleSizeInBytes===4?"pcm-f32":null}async getMimeType(){return"audio/wav"}async computeDuration(){return await this.readMetadata(),w(this.audioInfo),this.dataSize/this.audioInfo.blockSizeInBytes/this.audioInfo.sampleRate}async getTracks(){return await this.readMetadata(),this.tracks}},_s=2048,cd=class{constructor(e){this.demuxer=e}getId(){return 1}getCodec(){return this.demuxer.getCodec()}async getDecoderConfig(){let e=this.demuxer.getCodec();return e?(w(this.demuxer.audioInfo),{codec:e,numberOfChannels:this.demuxer.audioInfo.numberOfChannels,sampleRate:this.demuxer.audioInfo.sampleRate}):null}computeDuration(){return this.demuxer.computeDuration()}getNumberOfChannels(){return w(this.demuxer.audioInfo),this.demuxer.audioInfo.numberOfChannels}getSampleRate(){return w(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}getTimeResolution(){return w(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}getLanguageCode(){return nt}async getFirstTimestamp(){return 0}async getPacketAtIndex(e,t){w(this.demuxer.audioInfo);let i=e*_s*this.demuxer.audioInfo.blockSizeInBytes;if(i>=this.demuxer.dataSize)return null;let s=Math.min(_s*this.demuxer.audioInfo.blockSizeInBytes,this.demuxer.dataSize-i),n;if(t.metadataOnly)n=ot;else{let c=_s*this.demuxer.audioInfo.blockSizeInBytes,u=Math.ceil(2**19/c)*c,l=Math.floor(i/u)*u,h=l+u;await this.demuxer.chunkReader.reader.loadRange(this.demuxer.dataStart+l,this.demuxer.dataStart+h),this.demuxer.chunkReader.pos=this.demuxer.dataStart+i,n=this.demuxer.chunkReader.readBytes(s)}let o=e*_s/this.demuxer.audioInfo.sampleRate,a=s/this.demuxer.audioInfo.blockSizeInBytes/this.demuxer.audioInfo.sampleRate;return new ge(n,"key",o,a,e,s)}getFirstPacket(e){return this.getPacketAtIndex(0,e)}getPacket(e,t){w(this.demuxer.audioInfo);let i=Math.floor(e*this.demuxer.audioInfo.sampleRate/_s);return this.getPacketAtIndex(i,t)}getNextPacket(e,t){w(this.demuxer.audioInfo);let i=Math.round(e.timestamp*this.demuxer.audioInfo.sampleRate/_s);return this.getPacketAtIndex(i+1,t)}getKeyPacket(e,t){return this.getPacket(e,t)}getNextKeyPacket(e,t){return this.getNextPacket(e,t)}};var bs=class{getSupportedVideoCodecs(){return this.getSupportedCodecs().filter(e=>mr.includes(e))}getSupportedAudioCodecs(){return this.getSupportedCodecs().filter(e=>Lr.includes(e))}getSupportedSubtitleCodecs(){return this.getSupportedCodecs().filter(e=>ls.includes(e))}_codecUnsupportedHint(e){return""}},Kn=class extends bs{constructor(e={}){if(!e||typeof e!="object")throw new TypeError("options must be an object.");if(e.fastStart!==void 0&&![!1,"in-memory","fragmented"].includes(e.fastStart))throw new TypeError('options.fastStart, when provided, must be false, "in-memory", or "fragmented".');if(e.minimumFragmentDuration!==void 0&&(!Number.isFinite(e.minimumFragmentDuration)||e.minimumFragmentDuration<0))throw new TypeError("options.minimumFragmentDuration, when provided, must be a non-negative number.");if(e.onFtyp!==void 0&&typeof e.onFtyp!="function")throw new TypeError("options.onFtyp, when provided, must be a function.");if(e.onMoov!==void 0&&typeof e.onMoov!="function")throw new TypeError("options.onMoov, when provided, must be a function.");if(e.onMdat!==void 0&&typeof e.onMdat!="function")throw new TypeError("options.onMdat, when provided, must be a function.");if(e.onMoof!==void 0&&typeof e.onMoof!="function")throw new TypeError("options.onMoof, when provided, must be a function.");super(),this._options=e}getSupportedTrackCounts(){return{video:{min:0,max:1/0},audio:{min:0,max:1/0},subtitle:{min:0,max:1/0},total:{min:1,max:2**32-1}}}get supportsVideoRotationMetadata(){return!0}_createMuxer(e){return new Qc(e,this)}},ys=class extends Kn{get _name(){return"MP4"}get fileExtension(){return".mp4"}get mimeType(){return"video/mp4"}getSupportedCodecs(){return[...mr,...Vh,"pcm-s16","pcm-s16be","pcm-s24","pcm-s24be","pcm-s32","pcm-s32be","pcm-f32","pcm-f32be","pcm-f64","pcm-f64be",...ls]}_codecUnsupportedHint(e){return new fs().getSupportedCodecs().includes(e)?" Switching to MOV will grant support for this codec.":""}},fs=class extends Kn{get _name(){return"MOV"}get fileExtension(){return".mov"}get mimeType(){return"video/quicktime"}getSupportedCodecs(){return[...mr,...Lr]}_codecUnsupportedHint(e){return new ys().getSupportedCodecs().includes(e)?" Switching to MP4 will grant support for this codec.":""}};var Ts=class{constructor(){this._connectedTrack=null,this._closingPromise=null,this._closed=!1,this._timestampOffset=0}_ensureValidAdd(){if(!this._connectedTrack)throw new Error("Source is not connected to an output track.");if(this._connectedTrack.output.state==="canceled")throw new Error("Output has been canceled.");if(this._connectedTrack.output.state==="finalizing"||this._connectedTrack.output.state==="finalized")throw new Error("Output has been finalized.");if(this._connectedTrack.output.state==="pending")throw new Error("Output has not started.");if(this._closed)throw new Error("Source is closed.")}_start(){}async _flushAndClose(){}close(){if(this._closingPromise)return;let e=this._connectedTrack;if(!e)throw new Error("Cannot call close without connecting the source to an output track.");if(e.output.state==="pending")throw new Error("Cannot call close before output has been started.");this._closingPromise=(async()=>{await this._flushAndClose(),this._closed=!0,!(e.output.state==="finalizing"||e.output.state==="finalized")&&e.output._muxer.onTrackClose(e)})()}async _flushOrWaitForClose(){return this._closingPromise?this._closingPromise:this._flushAndClose()}},ws=class extends Ts{constructor(e){if(super(),this._connectedTrack=null,!mr.includes(e))throw new TypeError(`Invalid video codec '${e}'. Must be one of: ${mr.join(", ")}.`);this._codec=e}};var DA=r=>{if(!r||typeof r!="object")throw new TypeError("Encoding config must be an object.");if(!mr.includes(r.codec))throw new TypeError(`Invalid video codec '${r.codec}'. Must be one of: ${mr.join(", ")}.`);if(!(r.bitrate instanceof vt)&&(!Number.isInteger(r.bitrate)||r.bitrate<=0))throw new TypeError("config.bitrate must be a positive integer or a quality.");if(r.latencyMode!==void 0&&!["quality","realtime"].includes(r.latencyMode))throw new TypeError("config.latencyMode, when provided, must be 'quality' or 'realtime'.");if(r.keyFrameInterval!==void 0&&(!Number.isFinite(r.keyFrameInterval)||r.keyFrameInterval<0))throw new TypeError("config.keyFrameInterval, when provided, must be a non-negative number.");if(r.fullCodecString!==void 0&&typeof r.fullCodecString!="string")throw new TypeError("config.fullCodecString, when provided, must be a string.");if(r.fullCodecString!==void 0&&Wh(r.fullCodecString)!==r.codec)throw new TypeError(`config.fullCodecString, when provided, must be a string that matches the specified codec (${r.codec}).`);if(r.onEncodedPacket!==void 0&&typeof r.onEncodedPacket!="function")throw new TypeError("config.onEncodedChunk, when provided, must be a function.");if(r.onEncoderConfig!==void 0&&typeof r.onEncoderConfig!="function")throw new TypeError("config.onEncoderConfig, when provided, must be a function.")},ud=class{constructor(e,t){this.source=e,this.encodingConfig=t,this.ensureEncoderPromise=null,this.encoderInitialized=!1,this.encoder=null,this.muxer=null,this.lastMultipleOfKeyFrameInterval=-1,this.lastWidth=null,this.lastHeight=null,this.customEncoder=null,this.customEncoderCallSerializer=new Nr,this.customEncoderQueueSize=0,this.encoderError=null}async add(e,t,i){if(this.checkForEncoderError(),this.source._ensureValidAdd(),this.lastWidth!==null&&this.lastHeight!==null){if(e.codedWidth!==this.lastWidth||e.codedHeight!==this.lastHeight)throw new Error(`Video sample size must remain constant. Expected ${this.lastWidth}x${this.lastHeight}, got ${e.codedWidth}x${e.codedHeight}.`)}else this.lastWidth=e.codedWidth,this.lastHeight=e.codedHeight;this.encoderInitialized||(this.ensureEncoderPromise||this.ensureEncoder(e),this.encoderInitialized||await this.ensureEncoderPromise),w(this.encoderInitialized);let s=this.encodingConfig.keyFrameInterval??5,n=Math.floor(e.timestamp/s),o={...i,keyFrame:i?.keyFrame||s===0||n!==this.lastMultipleOfKeyFrameInterval};if(this.lastMultipleOfKeyFrameInterval=n,this.customEncoder){this.customEncoderQueueSize++;let a=this.customEncoderCallSerializer.call(()=>this.customEncoder.encode(e,o)).then(()=>{this.customEncoderQueueSize--,t&&e.close()}).catch(c=>{this.encoderError??=c});this.customEncoderQueueSize>=4&&await a}else{w(this.encoder);let a=e.toVideoFrame();this.encoder.encode(a,o),a.close(),t&&e.close(),this.encoder.encodeQueueSize>=4&&await new Promise(c=>this.encoder.addEventListener("dequeue",c,{once:!0}))}await this.muxer.mutex.currentPromise}async ensureEncoder(e){if(!this.encoder)return this.ensureEncoderPromise=(async()=>{let t=e.codedWidth,i=e.codedHeight,s=this.encodingConfig.bitrate instanceof vt?this.encodingConfig.bitrate._toVideoBitrate(this.encodingConfig.codec,t,i):this.encodingConfig.bitrate,n={codec:this.encodingConfig.fullCodecString??nx(this.encodingConfig.codec,t,i,s),width:t,height:i,bitrate:s,framerate:this.source._connectedTrack?.metadata.frameRate,latencyMode:this.encodingConfig.latencyMode,...lx(this.encodingConfig.codec)};this.encodingConfig.onEncoderConfig?.(n);let o=Zg.find(a=>a.supports(this.encodingConfig.codec,n));if(o)this.customEncoder=new o,this.customEncoder.codec=this.encodingConfig.codec,this.customEncoder.config=n,this.customEncoder.onPacket=(a,c)=>{if(!(a instanceof ge))throw new TypeError("The first argument passed to onPacket must be an EncodedPacket.");if(c!==void 0&&(!c||typeof c!="object"))throw new TypeError("The second argument passed to onPacket must be an object or undefined.");this.encodingConfig.onEncodedPacket?.(a,c),this.muxer.addEncodedVideoPacket(this.source._connectedTrack,a,c)},await this.customEncoder.init();else{if(typeof VideoEncoder>"u")throw new Error("VideoEncoder is not supported by this browser.");if(!(await VideoEncoder.isConfigSupported(n)).supported)throw new Error(`This specific encoder configuration (${n.codec}, ${n.bitrate} bps, ${n.width}x${n.height}) is not supported by this browser. Consider using another codec or changing your video parameters.`);this.encoder=new VideoEncoder({output:(c,u)=>{let l=ge.fromEncodedChunk(c);this.encodingConfig.onEncodedPacket?.(l,u),this.muxer.addEncodedVideoPacket(this.source._connectedTrack,l,u)},error:c=>{this.encoderError??=c}}),this.encoder.configure(n)}w(this.source._connectedTrack),this.muxer=this.source._connectedTrack.output._muxer,this.encoderInitialized=!0})()}async flushAndClose(){this.checkForEncoderError(),this.customEncoder?(this.customEncoderCallSerializer.call(()=>this.customEncoder.flush()),await this.customEncoderCallSerializer.call(()=>this.customEncoder.close())):this.encoder&&(await this.encoder.flush(),this.encoder.close()),this.checkForEncoderError()}getQueueSize(){return this.customEncoder?this.customEncoderQueueSize:this.encoder?.encodeQueueSize??0}checkForEncoderError(){if(this.encoderError)throw this.encoderError.stack=new Error().stack,this.encoderError}},Qn=class extends ws{constructor(e){DA(e),super(e.codec),this._encoder=new ud(this,e)}add(e,t){if(!(e instanceof $t))throw new TypeError("videoSample must be a VideoSample.");return this._encoder.add(e,!1,t)}_flushAndClose(){return this._encoder.flushAndClose()}};var Ss=class extends Ts{constructor(e){if(super(),this._connectedTrack=null,!Lr.includes(e))throw new TypeError(`Invalid audio codec '${e}'. Must be one of: ${Lr.join(", ")}.`);this._codec=e}};var MA=r=>{if(!r||typeof r!="object")throw new TypeError("Encoding config must be an object.");if(!Lr.includes(r.codec))throw new TypeError(`Invalid audio codec '${r.codec}'. Must be one of: ${Lr.join(", ")}.`);if(r.bitrate===void 0&&(!Re.includes(r.codec)||r.codec==="flac"))throw new TypeError("config.bitrate must be provided for compressed audio codecs.");if(r.bitrate!==void 0&&!(r.bitrate instanceof vt)&&(!Number.isInteger(r.bitrate)||r.bitrate<=0))throw new TypeError("config.bitrate, when provided, must be a positive integer or a quality.");if(r.fullCodecString!==void 0&&typeof r.fullCodecString!="string")throw new TypeError("config.fullCodecString, when provided, must be a string.");if(r.fullCodecString!==void 0&&Wh(r.fullCodecString)!==r.codec)throw new TypeError(`config.fullCodecString, when provided, must be a string that matches the specified codec (${r.codec}).`);if(r.onEncodedPacket!==void 0&&typeof r.onEncodedPacket!="function")throw new TypeError("config.onEncodedChunk, when provided, must be a function.");if(r.onEncoderConfig!==void 0&&typeof r.onEncoderConfig!="function")throw new TypeError("config.onEncoderConfig, when provided, must be a function.")},ld=class{constructor(e,t){this.source=e,this.encodingConfig=t,this.ensureEncoderPromise=null,this.encoderInitialized=!1,this.encoder=null,this.muxer=null,this.lastNumberOfChannels=null,this.lastSampleRate=null,this.isPcmEncoder=!1,this.outputSampleSize=null,this.writeOutputValue=null,this.customEncoder=null,this.customEncoderCallSerializer=new Nr,this.customEncoderQueueSize=0,this.encoderError=null}async add(e,t){if(this.checkForEncoderError(),this.source._ensureValidAdd(),this.lastNumberOfChannels!==null&&this.lastSampleRate!==null){if(e.numberOfChannels!==this.lastNumberOfChannels||e.sampleRate!==this.lastSampleRate)throw new Error(`Audio parameters must remain constant. Expected ${this.lastNumberOfChannels} channels at ${this.lastSampleRate} Hz, got ${e.numberOfChannels} channels at ${e.sampleRate} Hz.`)}else this.lastNumberOfChannels=e.numberOfChannels,this.lastSampleRate=e.sampleRate;if(this.encoderInitialized||(this.ensureEncoderPromise||this.ensureEncoder(e),this.encoderInitialized||await this.ensureEncoderPromise),w(this.encoderInitialized),this.customEncoder){this.customEncoderQueueSize++;let i=this.customEncoderCallSerializer.call(()=>this.customEncoder.encode(e)).then(()=>{this.customEncoderQueueSize--,t&&e.close()}).catch(s=>{this.encoderError??=s});this.customEncoderQueueSize>=4&&await i,await this.muxer.mutex.currentPromise}else if(this.isPcmEncoder)await this.doPcmEncoding(e,t);else{w(this.encoder);let i=e.toAudioData();this.encoder.encode(i),i.close(),t&&e.close(),this.encoder.encodeQueueSize>=4&&await new Promise(s=>this.encoder.addEventListener("dequeue",s,{once:!0})),await this.muxer.mutex.currentPromise}}async doPcmEncoding(e,t){w(this.outputSampleSize),w(this.writeOutputValue);let{numberOfChannels:i,numberOfFrames:s,sampleRate:n,timestamp:o}=e,a=2048,c=[];for(let f=0;f<s;f+=a){let d=Math.min(a,e.numberOfFrames-f),m=d*i*this.outputSampleSize,x=new ArrayBuffer(m),g=new DataView(x);c.push({frameCount:d,view:g})}let u=e.allocationSize({planeIndex:0,format:"f32-planar"}),l=new Float32Array(u/Float32Array.BYTES_PER_ELEMENT);for(let f=0;f<i;f++){e.copyTo(l,{planeIndex:f,format:"f32-planar"});for(let d=0;d<c.length;d++){let{frameCount:m,view:x}=c[d];for(let g=0;g<m;g++)this.writeOutputValue(x,(g*i+f)*this.outputSampleSize,l[d*a+g])}}t&&e.close();let h={decoderConfig:{codec:this.encodingConfig.codec,numberOfChannels:i,sampleRate:n}};for(let f=0;f<c.length;f++){let{frameCount:d,view:m}=c[f],x=m.buffer,g=f*a,_=new ge(new Uint8Array(x),"key",o+g/n,d/n);this.encodingConfig.onEncodedPacket?.(_,h),await this.muxer.addEncodedAudioPacket(this.source._connectedTrack,_,h)}}ensureEncoder(e){if(!this.encoderInitialized)return this.ensureEncoderPromise=(async()=>{let{numberOfChannels:t,sampleRate:i}=e,s=this.encodingConfig.bitrate instanceof vt?this.encodingConfig.bitrate._toAudioBitrate(this.encodingConfig.codec):this.encodingConfig.bitrate,n={codec:this.encodingConfig.fullCodecString??ax(this.encodingConfig.codec,t,i),numberOfChannels:t,sampleRate:i,bitrate:s,...hx(this.encodingConfig.codec)};this.encodingConfig.onEncoderConfig?.(n);let o=Jg.find(a=>a.supports(this.encodingConfig.codec,n));if(o)this.customEncoder=new o,this.customEncoder.codec=this.encodingConfig.codec,this.customEncoder.config=n,this.customEncoder.onPacket=(a,c)=>{if(!(a instanceof ge))throw new TypeError("The first argument passed to onPacket must be an EncodedPacket.");if(c!==void 0&&(!c||typeof c!="object"))throw new TypeError("The second argument passed to onPacket must be an object or undefined.");this.encodingConfig.onEncodedPacket?.(a,c),this.muxer.addEncodedAudioPacket(this.source._connectedTrack,a,c)},await this.customEncoder.init();else if(Re.includes(this.encodingConfig.codec))this.initPcmEncoder();else{if(typeof AudioEncoder>"u")throw new Error("AudioEncoder is not supported by this browser.");if(!(await AudioEncoder.isConfigSupported(n)).supported)throw new Error(`This specific encoder configuration (${n.codec}, ${n.bitrate} bps, ${n.numberOfChannels} channels, ${n.sampleRate} Hz) is not supported by this browser. Consider using another codec or changing your audio parameters.`);this.encoder=new AudioEncoder({output:(c,u)=>{let l=ge.fromEncodedChunk(c);this.encodingConfig.onEncodedPacket?.(l,u),this.muxer.addEncodedAudioPacket(this.source._connectedTrack,l,u)},error:c=>{this.encoderError??=c}}),this.encoder.configure(n)}w(this.source._connectedTrack),this.muxer=this.source._connectedTrack.output._muxer,this.encoderInitialized=!0})()}initPcmEncoder(){this.isPcmEncoder=!0;let e=this.encodingConfig.codec,{dataType:t,sampleSize:i,littleEndian:s}=gt(e);switch(this.outputSampleSize=i,i){case 1:t==="unsigned"?this.writeOutputValue=(n,o,a)=>n.setUint8(o,$e((a+1)*127.5,0,255)):t==="signed"?this.writeOutputValue=(n,o,a)=>{n.setInt8(o,$e(Math.round(a*128),-128,127))}:t==="ulaw"?this.writeOutputValue=(n,o,a)=>{let c=$e(Math.floor(a*32767),-32768,32767);n.setUint8(o,Kx(c))}:t==="alaw"?this.writeOutputValue=(n,o,a)=>{let c=$e(Math.floor(a*32767),-32768,32767);n.setUint8(o,Zx(c))}:w(!1);break;case 2:t==="unsigned"?this.writeOutputValue=(n,o,a)=>n.setUint16(o,$e((a+1)*32767.5,0,65535),s):t==="signed"?this.writeOutputValue=(n,o,a)=>n.setInt16(o,$e(Math.round(a*32767),-32768,32767),s):w(!1);break;case 3:t==="unsigned"?this.writeOutputValue=(n,o,a)=>Lh(n,o,$e((a+1)*83886075e-1,0,16777215),s):t==="signed"?this.writeOutputValue=(n,o,a)=>Xg(n,o,$e(Math.round(a*8388607),-8388608,8388607),s):w(!1);break;case 4:t==="unsigned"?this.writeOutputValue=(n,o,a)=>n.setUint32(o,$e((a+1)*21474836475e-1,0,4294967295),s):t==="signed"?this.writeOutputValue=(n,o,a)=>n.setInt32(o,$e(Math.round(a*2147483647),-2147483648,2147483647),s):t==="float"?this.writeOutputValue=(n,o,a)=>n.setFloat32(o,a,s):w(!1);break;case 8:t==="float"?this.writeOutputValue=(n,o,a)=>n.setFloat64(o,a,s):w(!1);break;default:Gn(i),w(!1)}}async flushAndClose(){this.checkForEncoderError(),this.customEncoder?(this.customEncoderCallSerializer.call(()=>this.customEncoder.flush()),await this.customEncoderCallSerializer.call(()=>this.customEncoder.close())):this.encoder&&(await this.encoder.flush(),this.encoder.close()),this.checkForEncoderError()}getQueueSize(){return this.customEncoder?this.customEncoderQueueSize:this.isPcmEncoder?0:this.encoder?.encodeQueueSize??0}checkForEncoderError(){if(this.encoderError)throw this.encoderError.stack=new Error().stack,this.encoderError}},Zn=class extends Ss{constructor(e){MA(e),super(e.codec),this._encoder=new ld(this,e)}add(e){if(!(e instanceof Mt))throw new TypeError("audioSample must be an AudioSample.");return this._encoder.add(e,!1)}_flushAndClose(){return this._encoder.flushAndClose()}};var Jn=class extends Ts{constructor(e){if(super(),this._connectedTrack=null,!ls.includes(e))throw new TypeError(`Invalid subtitle codec '${e}'. Must be one of: ${ls.join(", ")}.`);this._codec=e}};var t0=["video","audio","subtitle"],hd=r=>{if(!r||typeof r!="object")throw new TypeError("metadata must be an object.");if(r.languageCode!==void 0&&!us(r.languageCode))throw new TypeError("metadata.languageCode must be a three-letter, ISO 639-2/T language code.")},eo=class{constructor(e){if(this.state="pending",this._tracks=[],this._startPromise=null,this._cancelPromise=null,this._finalizePromise=null,this._mutex=new wt,!e||typeof e!="object")throw new TypeError("options must be an object.");if(!(e.format instanceof bs))throw new TypeError("options.format must be an OutputFormat.");if(!(e.target instanceof vi))throw new TypeError("options.target must be a Target.");if(e.target._output)throw new Error("Target is already used for another output.");e.target._output=this,this.format=e.format,this.target=e.target,this._writer=e.target._createWriter(),this._muxer=e.format._createMuxer(this)}addVideoTrack(e,t={}){if(!(e instanceof ws))throw new TypeError("source must be a VideoSource.");if(hd(t),t.rotation!==void 0&&![0,90,180,270].includes(t.rotation))throw new TypeError(`Invalid video rotation: ${t.rotation}. Has to be 0, 90, 180 or 270.`);if(!this.format.supportsVideoRotationMetadata&&t.rotation)throw new Error(`${this.format._name} does not support video rotation metadata.`);if(t.frameRate!==void 0&&(!Number.isFinite(t.frameRate)||t.frameRate<=0))throw new TypeError(`Invalid video frame rate: ${t.frameRate}. Must be a positive number.`);this._addTrack("video",e,t)}addAudioTrack(e,t={}){if(!(e instanceof Ss))throw new TypeError("source must be an AudioSource.");hd(t),this._addTrack("audio",e,t)}addSubtitleTrack(e,t={}){if(!(e instanceof Jn))throw new TypeError("source must be a SubtitleSource.");hd(t),this._addTrack("subtitle",e,t)}_addTrack(e,t,i){if(this.state!=="pending")throw new Error("Cannot add track after output has been started or canceled.");if(t._connectedTrack)throw new Error("Source is already used for a track.");let s=this.format.getSupportedTrackCounts(),n=this._tracks.reduce((u,l)=>u+(l.type===e?1:0),0),o=s[e].max;if(n===o)throw new Error(o===0?`${this.format._name} does not support ${e} tracks.`:`${this.format._name} does not support more than ${o} ${e} track${o===1?"":"s"}.`);let a=s.total.max;if(this._tracks.length===a)throw new Error(`${this.format._name} does not support more than ${a} tracks${a===1?"":"s"} in total.`);let c={id:this._tracks.length+1,output:this,type:e,source:t,metadata:i};if(c.type==="video"){let u=this.format.getSupportedVideoCodecs();if(u.length===0)throw new Error(`${this.format._name} does not support video tracks.`+this.format._codecUnsupportedHint(c.source._codec));if(!u.includes(c.source._codec))throw new Error(`Codec '${c.source._codec}' cannot be contained within ${this.format._name}. Supported video codecs are: ${u.map(l=>`'${l}'`).join(", ")}.`+this.format._codecUnsupportedHint(c.source._codec))}else if(c.type==="audio"){let u=this.format.getSupportedAudioCodecs();if(u.length===0)throw new Error(`${this.format._name} does not support audio tracks.`+this.format._codecUnsupportedHint(c.source._codec));if(!u.includes(c.source._codec))throw new Error(`Codec '${c.source._codec}' cannot be contained within ${this.format._name}. Supported audio codecs are: ${u.map(l=>`'${l}'`).join(", ")}.`+this.format._codecUnsupportedHint(c.source._codec))}else if(c.type==="subtitle"){let u=this.format.getSupportedSubtitleCodecs();if(u.length===0)throw new Error(`${this.format._name} does not support subtitle tracks.`+this.format._codecUnsupportedHint(c.source._codec));if(!u.includes(c.source._codec))throw new Error(`Codec '${c.source._codec}' cannot be contained within ${this.format._name}. Supported subtitle codecs are: ${u.map(l=>`'${l}'`).join(", ")}.`+this.format._codecUnsupportedHint(c.source._codec))}this._tracks.push(c),t._connectedTrack=c}async start(){let e=this.format.getSupportedTrackCounts();for(let i of t0){let s=this._tracks.reduce((o,a)=>o+(a.type===i?1:0),0),n=e[i].min;if(s<n)throw new Error(n===e[i].max?`${this.format._name} requires exactly ${n} ${i} track${n===1?"":"s"}.`:`${this.format._name} requires at least ${n} ${i} track${n===1?"":"s"}.`)}let t=e.total.min;if(this._tracks.length<t)throw new Error(t===e.total.max?`${this.format._name} requires exactly ${t} track${t===1?"":"s"}.`:`${this.format._name} requires at least ${t} track${t===1?"":"s"}.`);if(this.state==="canceled")throw new Error("Output has been canceled.");return this._startPromise?(console.warn("Output has already been started."),this._startPromise):this._startPromise=(async()=>{this.state="started",this._writer.start();let i=await this._mutex.acquire();await this._muxer.start();for(let s of this._tracks)s.source._start();i()})()}getMimeType(){return this._muxer.getMimeType()}async cancel(){if(this._cancelPromise)return console.warn("Output has already been canceled."),this._cancelPromise;if(this.state==="finalizing"||this.state==="finalized"){console.warn("Output has already been finalized.");return}return this._cancelPromise=(async()=>{this.state="canceled";let e=await this._mutex.acquire(),t=this._tracks.map(i=>i.source._flushOrWaitForClose());await Promise.all(t),await this._writer.close(),e()})()}async finalize(){if(this.state==="pending")throw new Error("Cannot finalize before starting.");if(this.state==="canceled")throw new Error("Cannot finalize after canceling.");return this._finalizePromise?(console.warn("Output has already been finalized."),this._finalizePromise):this._finalizePromise=(async()=>{this.state="finalizing";let e=await this._mutex.acquire(),t=this._tracks.map(i=>i.source._flushOrWaitForClose());await Promise.all(t),await this._muxer.finalize(),await this._writer.flush(),await this._writer.finalize(),this.state="finalized",e()})()}};var Di=class{constructor(){this._sizePromise=null,this.onread=null}getSize(){return this._sizePromise??=this._retrieveSize()}};var to=class extends Di{constructor(e){if(!(e instanceof Blob))throw new TypeError("blob must be a Blob.");super(),this._blob=e}async _read(e,t){let s=await this._blob.slice(e,t).arrayBuffer();return new Uint8Array(s)}async _retrieveSize(){return this._blob.size}},ro=class extends Di{constructor(e,t={}){if(typeof e!="string"&&!(e instanceof URL))throw new TypeError("url must be a string or URL.");if(!t||typeof t!="object")throw new TypeError("options must be an object.");if(t.requestInit!==void 0&&(!t.requestInit||typeof t.requestInit!="object"))throw new TypeError("options.requestInit, when provided, must be an object.");if(t.getRetryDelay!==void 0&&typeof t.getRetryDelay!="function")throw new TypeError("options.getRetryDelay, when provided, must be a function.");super(),this._fullData=null,this._url=e,this._options=t}async _makeRequest(e){let t={};e&&(t.Range=`bytes=${e.start}-${e.end-1}`);let i=await zh(this._url,Fc(this._options.requestInit??{},{method:"GET",headers:t}),this._options.getRetryDelay??(()=>null));if(!i.ok)throw new Error(`Error fetching ${this._url}: ${i.status} ${i.statusText}`);let s=await i.arrayBuffer();return e||(this._fullData=s),{response:s,statusCode:i.status}}async _read(e,t){if(this._fullData)return new Uint8Array(this._fullData,e,t-e);let{response:i,statusCode:s}=await this._makeRequest({start:e,end:t});return s===200?new Uint8Array(i).subarray(e,t):new Uint8Array(i)}async _retrieveSize(){if(this._fullData)return this._fullData.byteLength;let e=await zh(this._url,Fc(this._options.requestInit??{},{method:"GET",headers:{Range:"bytes=0-0"}}),this._options.getRetryDelay??(()=>null));if(e.status===206){let i=e.headers.get("Content-Range");if(i){let s=i.match(/bytes \d+-\d+\/(\d+)/);if(s&&s[1])return parseInt(s[1],10)}}let{response:t}=await this._makeRequest();return t.byteLength}};var Mi=class{constructor(e){this.reader=e,this.pos=0}readBytes(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);return this.pos+=e,new Uint8Array(t.buffer,i,e)}readU8(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+1);return this.pos++,e.getUint8(t)}readU16(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+2);return this.pos+=2,e.getUint16(t,!1)}readI16(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+2);return this.pos+=2,e.getInt16(t,!1)}readU24(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+3);this.pos+=3;let i=e.getUint16(t,!1),s=e.getUint8(t+2);return i*256+s}readU32(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+4);return this.pos+=4,e.getUint32(t,!1)}readI32(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+4);return this.pos+=4,e.getInt32(t,!1)}readU64(){let e=this.readU32(),t=this.readU32();return e*4294967296+t}readI64(){let e=this.readI32(),t=this.readU32();return e*4294967296+t}readF64(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+8);return this.pos+=8,e.getFloat64(t,!1)}readFixed_16_16(){return this.readI32()/65536}readFixed_2_30(){return this.readI32()/1073741824}readAscii(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);this.pos+=e;let s="";for(let n=0;n<e;n++)s+=String.fromCharCode(t.getUint8(i+n));return s}readIsomVariableInteger(){let e=0;for(let t=0;t<4;t++){e<<=7;let i=this.readU8();if(e|=i&127,(i&128)===0)break}return e}readBoxHeader(){let e=this.readU32(),t=this.readAscii(4),i=8;return e===1&&(e=this.readU64(),i=16),{name:t,totalSize:e,headerSize:i,contentSize:e-i}}};var ru=class extends Ct{constructor(e){super(e),this.currentTrack=null,this.tracks=[],this.metadataPromise=null,this.movieTimescale=-1,this.movieDurationInTimescale=-1,this.isQuickTime=!1,this.isFragmented=!1,this.fragmentTrackDefaults=[],this.fragments=[],this.currentFragment=null,this.fragmentLookupMutex=new wt,this.metadataReader=new Mi(e._mainReader),this.chunkReader=new Mi(new Et(e.source,64*2**20))}async computeDuration(){let e=await this.getTracks(),t=await Promise.all(e.map(i=>i.computeDuration()));return Math.max(0,...t)}async getTracks(){return await this.readMetadata(),this.tracks.map(e=>e.inputTrack)}async getMimeType(){await this.readMetadata();let e=await Promise.all(this.tracks.map(t=>t.inputTrack.getCodecParameterString()));return Kc({isQuickTime:this.isQuickTime,hasVideo:this.tracks.some(t=>t.info?.type==="video"),hasAudio:this.tracks.some(t=>t.info?.type==="audio"),codecStrings:e.filter(Boolean)})}readMetadata(){return this.metadataPromise??=(async()=>{let e=await this.metadataReader.reader.source.getSize();for(;this.metadataReader.pos<e;){await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+16);let t=this.metadataReader.pos,i=this.metadataReader.readBoxHeader();if(i.name==="ftyp"){let s=this.metadataReader.readAscii(4);this.isQuickTime=s==="qt "}else if(i.name==="moov"){await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+i.contentSize),this.readContiguousBoxes(i.contentSize);for(let s of this.tracks){let n=s.editListPreviousSegmentDurations/this.movieTimescale;s.editListOffset-=Math.round(n*s.timescale)}break}this.metadataReader.pos=t+i.totalSize}if(this.isFragmented){await this.metadataReader.reader.loadRange(e-4,e),this.metadataReader.pos=e-4;let t=this.metadataReader.readU32(),i=e-t;if(i>=0&&i<e){await this.metadataReader.reader.loadRange(i,e),this.metadataReader.pos=i;let s=this.metadataReader.readBoxHeader();s.name==="mfra"&&this.readContiguousBoxes(s.contentSize)}}})()}getSampleTableForTrack(e){if(e.sampleTable)return e.sampleTable;let t={sampleTimingEntries:[],sampleCompositionTimeOffsets:[],sampleSizes:[],keySampleIndices:null,chunkOffsets:[],sampleToChunk:[],presentationTimestamps:null,presentationTimestampIndexMap:null};if(e.sampleTable=t,this.metadataReader.pos=e.sampleTableByteOffset,this.currentTrack=e,this.traverseBox(),this.currentTrack=null,e.info?.type==="audio"&&e.info.codec&&Re.includes(e.info.codec)&&t.sampleCompositionTimeOffsets.length===0){w(e.info?.type==="audio");let s=gt(e.info.codec),n=[],o=[];for(let a=0;a<t.sampleToChunk.length;a++){let c=t.sampleToChunk[a],u=t.sampleToChunk[a+1],l=(u?u.startChunkIndex:t.chunkOffsets.length)-c.startChunkIndex;for(let h=0;h<l;h++){let f=c.startSampleIndex+h*c.samplesPerChunk,d=f+c.samplesPerChunk,m=Z(t.sampleTimingEntries,f,E=>E.startIndex),x=t.sampleTimingEntries[m],g=Z(t.sampleTimingEntries,d,E=>E.startIndex),_=t.sampleTimingEntries[g],y=x.startDecodeTimestamp+(f-x.startIndex)*x.delta,T=_.startDecodeTimestamp+(d-_.startIndex)*_.delta-y,C=he(n);C&&C.delta===T?C.count++:n.push({startIndex:c.startChunkIndex+h,startDecodeTimestamp:y,count:1,delta:T});let v=c.samplesPerChunk*s.sampleSize*e.info.numberOfChannels;o.push(v)}c.startSampleIndex=c.startChunkIndex,c.samplesPerChunk=1}t.sampleTimingEntries=n,t.sampleSizes=o}if(t.sampleCompositionTimeOffsets.length>0){t.presentationTimestamps=[];for(let s of t.sampleTimingEntries)for(let n=0;n<s.count;n++)t.presentationTimestamps.push({presentationTimestamp:s.startDecodeTimestamp+n*s.delta,sampleIndex:s.startIndex+n});for(let s of t.sampleCompositionTimeOffsets)for(let n=0;n<s.count;n++){let o=s.startIndex+n,a=t.presentationTimestamps[o];a&&(a.presentationTimestamp+=s.offset)}t.presentationTimestamps.sort((s,n)=>s.presentationTimestamp-n.presentationTimestamp),t.presentationTimestampIndexMap=Array(t.presentationTimestamps.length).fill(-1);for(let s=0;s<t.presentationTimestamps.length;s++)t.presentationTimestampIndexMap[t.presentationTimestamps[s].sampleIndex]=s}return t}async readFragment(){let e=this.metadataReader.pos;await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+16);let t=this.metadataReader.readBoxHeader();w(t.name==="moof");let i=this.metadataReader.pos;await this.metadataReader.reader.loadRange(i,i+t.contentSize),this.metadataReader.pos=e,this.traverseBox();let s=Ae(this.fragments,e,o=>o.moofOffset);w(s!==-1);let n=this.fragments[s];w(n.moofOffset===e),this.metadataReader.reader.forgetRange(i,i+t.contentSize);for(let[o,a]of n.trackData){if(a.startTimestampIsFinal)continue;let c=this.tracks.find(d=>d.id===o);this.metadataReader.pos=0;let u=null,l=null,h=Z(c.fragments,e-1,d=>d.moofOffset);h!==-1&&(u=c.fragments[h],l=u,this.metadataReader.pos=u.moofOffset+u.moofSize);let f=this.metadataReader.pos===0;for(;this.metadataReader.pos<e;){if(u?.nextFragment)u=u.nextFragment,this.metadataReader.pos=u.moofOffset+u.moofSize;else{await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+16);let d=this.metadataReader.pos,m=this.metadataReader.readBoxHeader();if(m.name==="moof"){let x=Ae(this.fragments,d,_=>_.moofOffset),g;x===-1?(this.metadataReader.pos=d,g=await this.readFragment()):g=this.fragments[x],u&&(u.nextFragment=g),u=g,f&&(g.isKnownToBeFirstFragment=!0,f=!1)}this.metadataReader.pos=d+m.totalSize}u&&u.trackData.has(o)&&(l=u)}if(l){let d=l.trackData.get(o);w(d.startTimestampIsFinal),i0(a,d.endTimestamp)}a.startTimestampIsFinal=!0}return n}readContiguousBoxes(e){let t=this.metadataReader.pos;for(;this.metadataReader.pos-t<=e-8;)this.traverseBox()}traverseBox(){let e=this.metadataReader.pos,t=this.metadataReader.readBoxHeader(),i=e+t.totalSize;switch(t.name){case"mdia":case"minf":case"dinf":case"mfra":case"edts":this.readContiguousBoxes(t.contentSize);break;case"mvhd":{let s=this.metadataReader.readU8();this.metadataReader.pos+=3,s===1?(this.metadataReader.pos+=16,this.movieTimescale=this.metadataReader.readU32(),this.movieDurationInTimescale=this.metadataReader.readU64()):(this.metadataReader.pos+=8,this.movieTimescale=this.metadataReader.readU32(),this.movieDurationInTimescale=this.metadataReader.readU32())}break;case"trak":{let s={id:-1,demuxer:this,inputTrack:null,info:null,timescale:-1,durationInMovieTimescale:-1,durationInMediaTimescale:-1,rotation:0,languageCode:nt,sampleTableByteOffset:-1,sampleTable:null,fragmentLookupTable:null,currentFragmentState:null,fragments:[],fragmentsWithKeyFrame:[],editListPreviousSegmentDurations:0,editListOffset:0};if(this.currentTrack=s,this.readContiguousBoxes(t.contentSize),s.id!==-1&&s.timescale!==-1&&s.info!==null){if(s.info.type==="video"&&s.info.width!==-1){let n=s;s.inputTrack=new gr(new dd(n)),this.tracks.push(s)}else if(s.info.type==="audio"&&s.info.numberOfChannels!==-1){let n=s;s.inputTrack=new Ze(new fd(n)),this.tracks.push(s)}}this.currentTrack=null}break;case"tkhd":{let s=this.currentTrack;w(s);let n=this.metadataReader.readU8();if(!((this.metadataReader.readU24()&1)!==0))break;if(n===0)this.metadataReader.pos+=8,s.id=this.metadataReader.readU32(),this.metadataReader.pos+=4,s.durationInMovieTimescale=this.metadataReader.readU32();else if(n===1)this.metadataReader.pos+=16,s.id=this.metadataReader.readU32(),this.metadataReader.pos+=4,s.durationInMovieTimescale=this.metadataReader.readU64();else throw new Error(`Incorrect track header version ${n}.`);this.metadataReader.pos+=2*4+2+2+2+2;let c=[this.metadataReader.readFixed_16_16(),this.metadataReader.readFixed_16_16(),this.metadataReader.readFixed_2_30(),this.metadataReader.readFixed_16_16(),this.metadataReader.readFixed_16_16(),this.metadataReader.readFixed_2_30(),this.metadataReader.readFixed_16_16(),this.metadataReader.readFixed_16_16(),this.metadataReader.readFixed_2_30()],u=Bc(Yg(GA(c),90));w(u===0||u===90||u===180||u===270),s.rotation=u}break;case"elst":{let s=this.currentTrack;w(s);let n=this.metadataReader.readU8();this.metadataReader.pos+=3;let o=!1,a=0,c=this.metadataReader.readU32();for(let u=0;u<c;u++){let l=n===1?this.metadataReader.readU64():this.metadataReader.readU32(),h=n===1?this.metadataReader.readI64():this.metadataReader.readI32(),f=this.metadataReader.readFixed_16_16();if(l!==0){if(o){console.warn("Unsupported edit list: multiple edits are not currently supported. Only using first edit.");break}if(h===-1){a+=l;continue}if(f!==1){console.warn("Unsupported edit list entry: media rate must be 1.");break}s.editListPreviousSegmentDurations=a,s.editListOffset=h,o=!0}}}break;case"mdhd":{let s=this.currentTrack;w(s);let n=this.metadataReader.readU8();this.metadataReader.pos+=3,n===0?(this.metadataReader.pos+=8,s.timescale=this.metadataReader.readU32(),s.durationInMediaTimescale=this.metadataReader.readU32()):n===1&&(this.metadataReader.pos+=16,s.timescale=this.metadataReader.readU32(),s.durationInMediaTimescale=this.metadataReader.readU64());let o=this.metadataReader.readU16();if(o>0){s.languageCode="";for(let a=0;a<3;a++)s.languageCode=String.fromCharCode(96+(o&31))+s.languageCode,o>>=5;us(s.languageCode)||(s.languageCode=nt)}}break;case"hdlr":{let s=this.currentTrack;w(s),this.metadataReader.pos+=8;let n=this.metadataReader.readAscii(4);n==="vide"?s.info={type:"video",width:-1,height:-1,codec:null,codecDescription:null,colorSpace:null,avcCodecInfo:null,hevcCodecInfo:null,vp9CodecInfo:null,av1CodecInfo:null}:n==="soun"&&(s.info={type:"audio",numberOfChannels:-1,sampleRate:-1,codec:null,codecDescription:null,aacCodecInfo:null})}break;case"stbl":{let s=this.currentTrack;w(s),s.sampleTableByteOffset=e,this.readContiguousBoxes(t.contentSize)}break;case"stsd":{let s=this.currentTrack;if(w(s),s.info===null||s.sampleTable)break;let n=this.metadataReader.readU8();this.metadataReader.pos+=3;let o=this.metadataReader.readU32();for(let a=0;a<o;a++){let c=this.metadataReader.pos,u=this.metadataReader.readBoxHeader(),l=u.name.toLowerCase();if(s.info.type==="video")l==="avc1"?s.info.codec="avc":l==="hvc1"||l==="hev1"?s.info.codec="hevc":l==="vp08"?s.info.codec="vp8":l==="vp09"?s.info.codec="vp9":l==="av01"?s.info.codec="av1":console.warn(`Unsupported video codec (sample entry type '${u.name}').`),this.metadataReader.pos+=6*1+2+2+2+3*4,s.info.width=this.metadataReader.readU16(),s.info.height=this.metadataReader.readU16(),this.metadataReader.pos+=50,this.readContiguousBoxes(c+u.totalSize-this.metadataReader.pos);else{l==="mp4a"||(l==="opus"?s.info.codec="opus":l==="flac"?s.info.codec="flac":l==="twos"||l==="sowt"||l==="raw "||l==="in24"||l==="in32"||l==="fl32"||l==="fl64"||l==="lpcm"||l==="ipcm"||l==="fpcm"||(l==="ulaw"?s.info.codec="ulaw":l==="alaw"?s.info.codec="alaw":console.warn(`Unsupported audio codec (sample entry type '${u.name}').`))),this.metadataReader.pos+=6*1+2;let h=this.metadataReader.readU16();this.metadataReader.pos+=3*2;let f=this.metadataReader.readU16(),d=this.metadataReader.readU16();this.metadataReader.pos+=2*2;let m=this.metadataReader.readU32()/65536;if(n===0&&h>0){if(h===1)this.metadataReader.pos+=4,d=8*this.metadataReader.readU32(),this.metadataReader.pos+=2*4;else if(h===2){this.metadataReader.pos+=4,m=this.metadataReader.readF64(),f=this.metadataReader.readU32(),this.metadataReader.pos+=4,d=this.metadataReader.readU32();let x=this.metadataReader.readU32();if(this.metadataReader.pos+=2*4,l==="lpcm"){let g=d+7>>3,_=!!(x&1),y=!!(x&2),S=x&4?-1:0;d>0&&d<=64&&(_?d===32&&(s.info.codec=y?"pcm-f32be":"pcm-f32"):S&1<<g-1?g===1?s.info.codec="pcm-s8":g===2?s.info.codec=y?"pcm-s16be":"pcm-s16":g===3?s.info.codec=y?"pcm-s24be":"pcm-s24":g===4&&(s.info.codec=y?"pcm-s32be":"pcm-s32"):g===1&&(s.info.codec="pcm-u8")),s.info.codec===null&&console.warn("Unsupported PCM format.")}}}s.info.numberOfChannels=f,s.info.sampleRate=m,l==="twos"?d===8?s.info.codec="pcm-s8":d===16?s.info.codec="pcm-s16be":(console.warn(`Unsupported sample size ${d} for codec 'twos'.`),s.info.codec=null):l==="sowt"?d===8?s.info.codec="pcm-s8":d===16?s.info.codec="pcm-s16":(console.warn(`Unsupported sample size ${d} for codec 'sowt'.`),s.info.codec=null):l==="raw "?s.info.codec="pcm-u8":l==="in24"?s.info.codec="pcm-s24be":l==="in32"?s.info.codec="pcm-s32be":l==="fl32"?s.info.codec="pcm-f32be":l==="fl64"?s.info.codec="pcm-f64be":l==="ipcm"?s.info.codec="pcm-s16be":l==="fpcm"&&(s.info.codec="pcm-f32be"),this.readContiguousBoxes(c+u.totalSize-this.metadataReader.pos)}}}break;case"avcC":{let s=this.currentTrack;w(s&&s.info),s.info.codecDescription=this.metadataReader.readBytes(t.contentSize)}break;case"hvcC":{let s=this.currentTrack;w(s&&s.info),s.info.codecDescription=this.metadataReader.readBytes(t.contentSize)}break;case"vpcC":{let s=this.currentTrack;w(s&&s.info?.type==="video"),this.metadataReader.pos+=4;let n=this.metadataReader.readU8(),o=this.metadataReader.readU8(),a=this.metadataReader.readU8(),c=a>>4,u=a>>1&7,l=a&1,h=this.metadataReader.readU8(),f=this.metadataReader.readU8(),d=this.metadataReader.readU8();s.info.vp9CodecInfo={profile:n,level:o,bitDepth:c,chromaSubsampling:u,videoFullRangeFlag:l,colourPrimaries:h,transferCharacteristics:f,matrixCoefficients:d}}break;case"av1C":{let s=this.currentTrack;w(s&&s.info?.type==="video"),this.metadataReader.pos+=1;let n=this.metadataReader.readU8(),o=n>>5,a=n&31,c=this.metadataReader.readU8(),u=c>>7,l=c>>6&1,h=c>>5&1,f=c>>4&1,d=c>>3&1,m=c>>2&1,x=c&3,g=o==2&&l?h?12:10:l?10:8;s.info.av1CodecInfo={profile:o,level:a,tier:u,bitDepth:g,monochrome:f,chromaSubsamplingX:d,chromaSubsamplingY:m,chromaSamplePosition:x}}break;case"colr":{let s=this.currentTrack;if(w(s&&s.info?.type==="video"),this.metadataReader.readAscii(4)!=="nclx")break;let o=this.metadataReader.readU16(),a=this.metadataReader.readU16(),c=this.metadataReader.readU16(),u=!!(this.metadataReader.readU8()&128);s.info.colorSpace={primaries:Rc[o],transfer:Dc[a],matrix:Mc[c],fullRange:u}}break;case"wave":this.readContiguousBoxes(t.contentSize);break;case"esds":{let s=this.currentTrack;w(s&&s.info?.type==="audio"),this.metadataReader.pos+=4;let n=this.metadataReader.readU8();w(n===3),this.metadataReader.readIsomVariableInteger(),this.metadataReader.pos+=2;let o=this.metadataReader.readU8(),a=(o&128)!==0,c=(o&64)!==0,u=(o&32)!==0;if(a&&(this.metadataReader.pos+=2),c){let m=this.metadataReader.readU8();this.metadataReader.pos+=m}u&&(this.metadataReader.pos+=2);let l=this.metadataReader.readU8();w(l===4);let h=this.metadataReader.readIsomVariableInteger(),f=this.metadataReader.pos,d=this.metadataReader.readU8();if(d===64||d===103?(s.info.codec="aac",s.info.aacCodecInfo={isMpeg2:d===103}):d===105||d===107?s.info.codec="mp3":d===221?s.info.codec="vorbis":console.warn(`Unsupported audio codec (objectTypeIndication ${d}) - discarding track.`),this.metadataReader.pos+=12,h>this.metadataReader.pos-f){let m=this.metadataReader.readU8();w(m===5);let x=this.metadataReader.readIsomVariableInteger();if(s.info.codecDescription=this.metadataReader.readBytes(x),s.info.codec==="aac"){let g=Hh(s.info.codecDescription);g.numberOfChannels!==null&&(s.info.numberOfChannels=g.numberOfChannels),g.sampleRate!==null&&(s.info.sampleRate=g.sampleRate)}}}break;case"enda":{let s=this.currentTrack;w(s&&s.info?.type==="audio"),this.metadataReader.readU16()&255&&(s.info.codec==="pcm-s16be"?s.info.codec="pcm-s16":s.info.codec==="pcm-s24be"?s.info.codec="pcm-s24":s.info.codec==="pcm-s32be"?s.info.codec="pcm-s32":s.info.codec==="pcm-f32be"?s.info.codec="pcm-f32":s.info.codec==="pcm-f64be"&&(s.info.codec="pcm-f64"))}break;case"pcmC":{let s=this.currentTrack;w(s&&s.info?.type==="audio"),this.metadataReader.pos+=4;let o=!!(this.metadataReader.readU8()&1),a=this.metadataReader.readU8();s.info.codec==="pcm-s16be"?o?a===16?s.info.codec="pcm-s16":a===24?s.info.codec="pcm-s24":a===32?s.info.codec="pcm-s32":(console.warn(`Invalid ipcm sample size ${a}.`),s.info.codec=null):a===16?s.info.codec="pcm-s16be":a===24?s.info.codec="pcm-s24be":a===32?s.info.codec="pcm-s32be":(console.warn(`Invalid ipcm sample size ${a}.`),s.info.codec=null):s.info.codec==="pcm-f32be"&&(o?a===32?s.info.codec="pcm-f32":a===64?s.info.codec="pcm-f64":(console.warn(`Invalid fpcm sample size ${a}.`),s.info.codec=null):a===32?s.info.codec="pcm-f32be":a===64?s.info.codec="pcm-f64be":(console.warn(`Invalid fpcm sample size ${a}.`),s.info.codec=null));break}case"dOps":{let s=this.currentTrack;w(s&&s.info?.type==="audio"),this.metadataReader.pos+=1;let n=this.metadataReader.readU8(),o=this.metadataReader.readU16(),a=this.metadataReader.readU32(),c=this.metadataReader.readI16(),u=this.metadataReader.readU8(),l;u!==0?l=this.metadataReader.readBytes(2+n):l=new Uint8Array(0);let h=new Uint8Array(19+l.byteLength),f=new DataView(h.buffer);f.setUint32(0,1332770163,!1),f.setUint32(4,1214603620,!1),f.setUint8(8,1),f.setUint8(9,n),f.setUint16(10,o,!0),f.setUint32(12,a,!0),f.setInt16(16,c,!0),f.setUint8(18,u),h.set(l,19),s.info.codecDescription=h,s.info.numberOfChannels=n,s.info.sampleRate=a}break;case"dfLa":{let s=this.currentTrack;w(s&&s.info?.type==="audio"),this.metadataReader.pos+=4;let n=127,o=128,a=this.metadataReader.pos;for(;this.metadataReader.pos<i;){let f=this.metadataReader.readU8(),d=this.metadataReader.readU24();if((f&n)===0){this.metadataReader.pos+=10;let x=this.metadataReader.readU32(),g=x>>>12,_=(x>>9&7)+1;s.info.sampleRate=g,s.info.numberOfChannels=_,this.metadataReader.pos+=20}else this.metadataReader.pos+=d;if(f&o)break}let c=this.metadataReader.pos;this.metadataReader.pos=a;let u=this.metadataReader.readBytes(c-a),l=new Uint8Array(4+u.byteLength);new DataView(l.buffer).setUint32(0,1716281667,!1),l.set(u,4),s.info.codecDescription=l}break;case"stts":{let s=this.currentTrack;if(w(s),!s.sampleTable)break;this.metadataReader.pos+=4;let n=this.metadataReader.readU32(),o=0,a=0;for(let c=0;c<n;c++){let u=this.metadataReader.readU32(),l=this.metadataReader.readU32();s.sampleTable.sampleTimingEntries.push({startIndex:o,startDecodeTimestamp:a,count:u,delta:l}),o+=u,a+=u*l}}break;case"ctts":{let s=this.currentTrack;if(w(s),!s.sampleTable)break;this.metadataReader.pos+=4;let n=this.metadataReader.readU32(),o=0;for(let a=0;a<n;a++){let c=this.metadataReader.readU32(),u=this.metadataReader.readI32();s.sampleTable.sampleCompositionTimeOffsets.push({startIndex:o,count:c,offset:u}),o+=c}}break;case"stsz":{let s=this.currentTrack;if(w(s),!s.sampleTable)break;this.metadataReader.pos+=4;let n=this.metadataReader.readU32(),o=this.metadataReader.readU32();if(n===0)for(let a=0;a<o;a++){let c=this.metadataReader.readU32();s.sampleTable.sampleSizes.push(c)}else s.sampleTable.sampleSizes.push(n)}break;case"stz2":{let s=this.currentTrack;if(w(s),!s.sampleTable)break;this.metadataReader.pos+=4,this.metadataReader.pos+=3;let n=this.metadataReader.readU8(),o=this.metadataReader.readU32(),a=this.metadataReader.readBytes(Math.ceil(o*n/8)),c=new pt(a);for(let u=0;u<o;u++){let l=c.readBits(n);s.sampleTable.sampleSizes.push(l)}}break;case"stss":{let s=this.currentTrack;if(w(s),!s.sampleTable)break;this.metadataReader.pos+=4,s.sampleTable.keySampleIndices=[];let n=this.metadataReader.readU32();for(let o=0;o<n;o++){let a=this.metadataReader.readU32()-1;s.sampleTable.keySampleIndices.push(a)}}break;case"stsc":{let s=this.currentTrack;if(w(s),!s.sampleTable)break;this.metadataReader.pos+=4;let n=this.metadataReader.readU32();for(let a=0;a<n;a++){let c=this.metadataReader.readU32()-1,u=this.metadataReader.readU32(),l=this.metadataReader.readU32();s.sampleTable.sampleToChunk.push({startSampleIndex:-1,startChunkIndex:c,samplesPerChunk:u,sampleDescriptionIndex:l})}let o=0;for(let a=0;a<s.sampleTable.sampleToChunk.length;a++)if(s.sampleTable.sampleToChunk[a].startSampleIndex=o,a<s.sampleTable.sampleToChunk.length-1){let u=s.sampleTable.sampleToChunk[a+1].startChunkIndex-s.sampleTable.sampleToChunk[a].startChunkIndex;o+=u*s.sampleTable.sampleToChunk[a].samplesPerChunk}}break;case"stco":{let s=this.currentTrack;if(w(s),!s.sampleTable)break;this.metadataReader.pos+=4;let n=this.metadataReader.readU32();for(let o=0;o<n;o++){let a=this.metadataReader.readU32();s.sampleTable.chunkOffsets.push(a)}}break;case"co64":{let s=this.currentTrack;if(w(s),!s.sampleTable)break;this.metadataReader.pos+=4;let n=this.metadataReader.readU32();for(let o=0;o<n;o++){let a=this.metadataReader.readU64();s.sampleTable.chunkOffsets.push(a)}}break;case"mvex":this.isFragmented=!0,this.readContiguousBoxes(t.contentSize);break;case"mehd":{let s=this.metadataReader.readU8();this.metadataReader.pos+=3;let n=s===1?this.metadataReader.readU64():this.metadataReader.readU32();this.movieDurationInTimescale=n}break;case"trex":{this.metadataReader.pos+=4;let s=this.metadataReader.readU32(),n=this.metadataReader.readU32(),o=this.metadataReader.readU32(),a=this.metadataReader.readU32(),c=this.metadataReader.readU32();this.fragmentTrackDefaults.push({trackId:s,defaultSampleDescriptionIndex:n,defaultSampleDuration:o,defaultSampleSize:a,defaultSampleFlags:c})}break;case"tfra":{let s=this.metadataReader.readU8();this.metadataReader.pos+=3;let n=this.metadataReader.readU32(),o=this.tracks.find(_=>_.id===n);if(!o)break;o.fragmentLookupTable=[];let a=this.metadataReader.readU32(),c=(a&48)>>4,u=(a&12)>>2,l=a&3,h=this.metadataReader,f=[h.readU8.bind(h),h.readU16.bind(h),h.readU24.bind(h),h.readU32.bind(h)],d=f[c],m=f[u],x=f[l],g=this.metadataReader.readU32();for(let _=0;_<g;_++){let y=s===1?this.metadataReader.readU64():this.metadataReader.readU32(),S=s===1?this.metadataReader.readU64():this.metadataReader.readU32(),T=d(),C=m(),v=x();o.fragmentLookupTable.push({timestamp:y,moofOffset:S})}}break;case"moof":{this.currentFragment={moofOffset:e,moofSize:t.totalSize,implicitBaseDataOffset:e,trackData:new Map,dataStart:1/0,dataEnd:0,nextFragment:null,isKnownToBeFirstFragment:!1},this.readContiguousBoxes(t.contentSize);let s=Z(this.fragments,this.currentFragment.moofOffset,n=>n.moofOffset);this.fragments.splice(s+1,0,this.currentFragment);for(let[,n]of this.currentFragment.trackData){let o=n.samples[0],a=he(n.samples);this.currentFragment.dataStart=Math.min(this.currentFragment.dataStart,o.byteOffset),this.currentFragment.dataEnd=Math.max(this.currentFragment.dataEnd,a.byteOffset+a.byteSize)}this.currentFragment=null}break;case"traf":if(w(this.currentFragment),this.readContiguousBoxes(t.contentSize),this.currentTrack){let s=this.currentFragment.trackData.get(this.currentTrack.id);if(s){let n=Z(this.currentTrack.fragments,this.currentFragment.moofOffset,c=>c.moofOffset);if(this.currentTrack.fragments.splice(n+1,0,this.currentFragment),s.firstKeyFrameTimestamp!==null){let c=Z(this.currentTrack.fragmentsWithKeyFrame,this.currentFragment.moofOffset,u=>u.moofOffset);this.currentTrack.fragmentsWithKeyFrame.splice(c+1,0,this.currentFragment)}let{currentFragmentState:a}=this.currentTrack;w(a),a.startTimestamp!==null&&(i0(s,a.startTimestamp),s.startTimestampIsFinal=!0)}this.currentTrack.currentFragmentState=null,this.currentTrack=null}break;case"tfhd":{w(this.currentFragment),this.metadataReader.pos+=1;let s=this.metadataReader.readU24(),n=!!(s&1),o=!!(s&2),a=!!(s&8),c=!!(s&16),u=!!(s&32),l=!!(s&65536),h=!!(s&131072),f=this.metadataReader.readU32(),d=this.tracks.find(x=>x.id===f);if(!d)break;let m=this.fragmentTrackDefaults.find(x=>x.trackId===f);this.currentTrack=d,d.currentFragmentState={baseDataOffset:this.currentFragment.implicitBaseDataOffset,sampleDescriptionIndex:m?.defaultSampleDescriptionIndex??null,defaultSampleDuration:m?.defaultSampleDuration??null,defaultSampleSize:m?.defaultSampleSize??null,defaultSampleFlags:m?.defaultSampleFlags??null,startTimestamp:null},n?d.currentFragmentState.baseDataOffset=this.metadataReader.readU64():h&&(d.currentFragmentState.baseDataOffset=this.currentFragment.moofOffset),o&&(d.currentFragmentState.sampleDescriptionIndex=this.metadataReader.readU32()),a&&(d.currentFragmentState.defaultSampleDuration=this.metadataReader.readU32()),c&&(d.currentFragmentState.defaultSampleSize=this.metadataReader.readU32()),u&&(d.currentFragmentState.defaultSampleFlags=this.metadataReader.readU32()),l&&(d.currentFragmentState.defaultSampleDuration=0)}break;case"tfdt":{let s=this.currentTrack;if(!s)break;w(s.currentFragmentState);let n=this.metadataReader.readU8();this.metadataReader.pos+=3;let o=n===0?this.metadataReader.readU32():this.metadataReader.readU64();s.currentFragmentState.startTimestamp=o}break;case"trun":{let s=this.currentTrack;if(!s)break;if(w(this.currentFragment),w(s.currentFragmentState),this.currentFragment.trackData.has(s.id)){console.warn("Can't have two trun boxes for the same track in one fragment. Ignoring...");break}let n=this.metadataReader.readU8(),o=this.metadataReader.readU24(),a=!!(o&1),c=!!(o&4),u=!!(o&256),l=!!(o&512),h=!!(o&1024),f=!!(o&2048),d=this.metadataReader.readU32(),m=s.currentFragmentState.baseDataOffset;a&&(m+=this.metadataReader.readI32());let x=null;c&&(x=this.metadataReader.readU32());let g=m;if(d===0){this.currentFragment.implicitBaseDataOffset=g;break}let _=0,y={startTimestamp:0,endTimestamp:0,firstKeyFrameTimestamp:null,samples:[],presentationTimestamps:[],startTimestampIsFinal:!1};this.currentFragment.trackData.set(s.id,y);for(let C=0;C<d;C++){let v;u?v=this.metadataReader.readU32():(w(s.currentFragmentState.defaultSampleDuration!==null),v=s.currentFragmentState.defaultSampleDuration);let E;l?E=this.metadataReader.readU32():(w(s.currentFragmentState.defaultSampleSize!==null),E=s.currentFragmentState.defaultSampleSize);let D;h?D=this.metadataReader.readU32():(w(s.currentFragmentState.defaultSampleFlags!==null),D=s.currentFragmentState.defaultSampleFlags),C===0&&x!==null&&(D=x);let A=0;f&&(n===0?A=this.metadataReader.readU32():A=this.metadataReader.readI32());let P=!(D&65536);y.samples.push({presentationTimestamp:_+A,duration:v,byteOffset:g,byteSize:E,isKeyFrame:P}),g+=E,_+=v}y.presentationTimestamps=y.samples.map((C,v)=>({presentationTimestamp:C.presentationTimestamp,sampleIndex:v})).sort((C,v)=>C.presentationTimestamp-v.presentationTimestamp);for(let C=0;C<y.presentationTimestamps.length;C++){let v=y.presentationTimestamps[C],E=y.samples[v.sampleIndex];if(y.firstKeyFrameTimestamp===null&&E.isKeyFrame&&(y.firstKeyFrameTimestamp=E.presentationTimestamp),C<y.presentationTimestamps.length-1){let D=y.presentationTimestamps[C+1];E.duration=D.presentationTimestamp-v.presentationTimestamp}}let S=y.samples[y.presentationTimestamps[0].sampleIndex],T=y.samples[he(y.presentationTimestamps).sampleIndex];y.startTimestamp=S.presentationTimestamp,y.endTimestamp=T.presentationTimestamp+T.duration,this.currentFragment.implicitBaseDataOffset=g}break}this.metadataReader.pos=i}},iu=class{constructor(e){this.internalTrack=e,this.packetToSampleIndex=new WeakMap,this.packetToFragmentLocation=new WeakMap}getId(){return this.internalTrack.id}getCodec(){throw new Error("Not implemented on base class.")}getLanguageCode(){return this.internalTrack.languageCode}getTimeResolution(){return this.internalTrack.timescale}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}async getFirstTimestamp(){return(await this.getFirstPacket({metadataOnly:!0}))?.timestamp??0}async getFirstPacket(e){return this.internalTrack.demuxer.isFragmented?this.performFragmentedLookup(()=>{let t=this.internalTrack.demuxer.fragments[0]??null;if(t?.isKnownToBeFirstFragment){let i=t;for(;i;){if(i.trackData.get(this.internalTrack.id))return{fragmentIndex:Ae(this.internalTrack.fragments,i.moofOffset,n=>n.moofOffset),sampleIndex:0,correctSampleFound:!0};i=i.nextFragment}}return{fragmentIndex:-1,sampleIndex:-1,correctSampleFound:!1}},-1/0,1/0,e):this.fetchPacketForSampleIndex(0,e)}mapTimestampIntoTimescale(e){return cs(e*this.internalTrack.timescale,14)+this.internalTrack.editListOffset}async getPacket(e,t){let i=this.mapTimestampIntoTimescale(e);if(this.internalTrack.demuxer.isFragmented)return this.performFragmentedLookup(()=>this.findSampleInFragmentsForTimestamp(i),i,i,t);{let s=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),n=r0(s,i);return this.fetchPacketForSampleIndex(n,t)}}async getNextPacket(e,t){if(this.internalTrack.demuxer.isFragmented){let s=this.packetToFragmentLocation.get(e);if(s===void 0)throw new Error("Packet was not created from this track.");let n=s.fragment.trackData.get(this.internalTrack.id),o=n.samples[s.sampleIndex],a=Ae(this.internalTrack.fragments,s.fragment.moofOffset,c=>c.moofOffset);return w(a!==-1),this.performFragmentedLookup(()=>{if(s.sampleIndex+1<n.samples.length)return{fragmentIndex:a,sampleIndex:s.sampleIndex+1,correctSampleFound:!0};{let c=s.fragment;for(;c.nextFragment;)if(c=c.nextFragment,c.trackData.get(this.internalTrack.id)){let l=Ae(this.internalTrack.fragments,c.moofOffset,h=>h.moofOffset);return w(l!==-1),{fragmentIndex:l,sampleIndex:0,correctSampleFound:!0}}return{fragmentIndex:a,sampleIndex:-1,correctSampleFound:!1}}},o.presentationTimestamp,1/0,t)}let i=this.packetToSampleIndex.get(e);if(i===void 0)throw new Error("Packet was not created from this track.");return this.fetchPacketForSampleIndex(i+1,t)}async getKeyPacket(e,t){let i=this.mapTimestampIntoTimescale(e);if(this.internalTrack.demuxer.isFragmented)return this.performFragmentedLookup(()=>this.findKeySampleInFragmentsForTimestamp(i),i,i,t);let s=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),n=r0(s,i),o=n===-1?-1:UA(s,n);return this.fetchPacketForSampleIndex(o,t)}async getNextKeyPacket(e,t){if(this.internalTrack.demuxer.isFragmented){let o=this.packetToFragmentLocation.get(e);if(o===void 0)throw new Error("Packet was not created from this track.");let a=o.fragment.trackData.get(this.internalTrack.id),c=a.samples[o.sampleIndex],u=Ae(this.internalTrack.fragments,o.fragment.moofOffset,l=>l.moofOffset);return w(u!==-1),this.performFragmentedLookup(()=>{let l=a.samples.findIndex((h,f)=>h.isKeyFrame&&f>o.sampleIndex);if(l!==-1)return{fragmentIndex:u,sampleIndex:l,correctSampleFound:!0};{let h=o.fragment;for(;h.nextFragment;){h=h.nextFragment;let f=h.trackData.get(this.internalTrack.id);if(f&&f.firstKeyFrameTimestamp!==null){let d=Ae(this.internalTrack.fragments,h.moofOffset,x=>x.moofOffset);w(d!==-1);let m=f.samples.findIndex(x=>x.isKeyFrame);return w(m!==-1),{fragmentIndex:d,sampleIndex:m,correctSampleFound:!0}}}return{fragmentIndex:u,sampleIndex:-1,correctSampleFound:!1}}},c.presentationTimestamp,1/0,t)}let i=this.packetToSampleIndex.get(e);if(i===void 0)throw new Error("Packet was not created from this track.");let s=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),n=OA(s,i);return this.fetchPacketForSampleIndex(n,t)}async fetchPacketForSampleIndex(e,t){if(e===-1)return null;let i=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),s=FA(i,e);if(!s)return null;let n;t.metadataOnly?n=ot:(await this.internalTrack.demuxer.chunkReader.reader.loadRange(s.chunkOffset,s.chunkOffset+s.chunkSize),this.internalTrack.demuxer.chunkReader.pos=s.sampleOffset,n=this.internalTrack.demuxer.chunkReader.readBytes(s.sampleSize));let o=(s.presentationTimestamp-this.internalTrack.editListOffset)/this.internalTrack.timescale,a=s.duration/this.internalTrack.timescale,c=new ge(n,s.isKeyFrame?"key":"delta",o,a,e,s.sampleSize);return this.packetToSampleIndex.set(c,e),c}async fetchPacketInFragment(e,t,i){if(t===-1)return null;let n=e.trackData.get(this.internalTrack.id).samples[t];w(n);let o;i.metadataOnly?o=ot:(await this.internalTrack.demuxer.chunkReader.reader.loadRange(e.dataStart,e.dataEnd),this.internalTrack.demuxer.chunkReader.pos=n.byteOffset,o=this.internalTrack.demuxer.chunkReader.readBytes(n.byteSize));let a=(n.presentationTimestamp-this.internalTrack.editListOffset)/this.internalTrack.timescale,c=n.duration/this.internalTrack.timescale,u=new ge(o,n.isKeyFrame?"key":"delta",a,c,e.moofOffset+t,n.byteSize);return this.packetToFragmentLocation.set(u,{fragment:e,sampleIndex:t}),u}findSampleInFragmentsForTimestamp(e){let t=Z(this.internalTrack.fragments,e,n=>n.trackData.get(this.internalTrack.id).startTimestamp),i=-1,s=!1;if(t!==-1){let o=this.internalTrack.fragments[t].trackData.get(this.internalTrack.id),a=Z(o.presentationTimestamps,e,c=>c.presentationTimestamp);w(a!==-1),i=o.presentationTimestamps[a].sampleIndex,s=e<o.endTimestamp}return{fragmentIndex:t,sampleIndex:i,correctSampleFound:s}}findKeySampleInFragmentsForTimestamp(e){let t=Z(this.internalTrack.fragmentsWithKeyFrame,e,o=>o.trackData.get(this.internalTrack.id).startTimestamp),i=-1,s=-1,n=!1;if(t!==-1){let o=this.internalTrack.fragmentsWithKeyFrame[t];i=Ae(this.internalTrack.fragments,o.moofOffset,l=>l.moofOffset),w(i!==-1);let a=o.trackData.get(this.internalTrack.id),c=Ic(a.presentationTimestamps,l=>a.samples[l.sampleIndex].isKeyFrame&&l.presentationTimestamp<=e);w(c!==-1),s=a.presentationTimestamps[c].sampleIndex,n=e<a.endTimestamp}return{fragmentIndex:i,sampleIndex:s,correctSampleFound:n}}async performFragmentedLookup(e,t,i,s){let n=this.internalTrack.demuxer,o=await n.fragmentLookupMutex.acquire();try{let{fragmentIndex:a,sampleIndex:c,correctSampleFound:u}=e();if(u){let T=this.internalTrack.fragments[a];return this.fetchPacketInFragment(T,c,s)}let l=n.metadataReader,h=await l.reader.source.getSize(),f=null,d=a,m=c,x=this.internalTrack.fragmentLookupTable?Z(this.internalTrack.fragmentLookupTable,t,T=>T.timestamp):-1,g=x!==-1?this.internalTrack.fragmentLookupTable[x]:null,_=!1;if(a===-1)l.pos=g?.moofOffset??0,_=l.pos===0;else{let T=this.internalTrack.fragments[a];!g||T.moofOffset>=g.moofOffset?(l.pos=T.moofOffset+T.moofSize,f=T):l.pos=g.moofOffset}for(;l.pos<h;){if(f){let v=f.trackData.get(this.internalTrack.id);if(v&&v.startTimestamp>i)break;if(f.nextFragment){l.pos=f.nextFragment.moofOffset+f.nextFragment.moofSize,f=f.nextFragment;continue}}await l.reader.loadRange(l.pos,l.pos+16);let T=l.pos,C=l.readBoxHeader();if(C.name==="moof"){let v=Ae(n.fragments,T,k=>k.moofOffset),E;v===-1?(l.pos=T,E=await n.readFragment()):E=n.fragments[v],f&&(f.nextFragment=E),f=E,_&&(E.isKnownToBeFirstFragment=!0,_=!1);let{fragmentIndex:D,sampleIndex:A,correctSampleFound:P}=e();if(P){let k=this.internalTrack.fragments[D];return this.fetchPacketInFragment(k,A,s)}D!==-1&&(d=D,m=A)}l.pos=T+C.totalSize}let y=null,S=d!==-1?this.internalTrack.fragments[d]:null;if(S&&(y=await this.fetchPacketInFragment(S,m,s)),!y&&g&&(!S||S.moofOffset<g.moofOffset)){let C=this.internalTrack.fragmentLookupTable[x-1]?.timestamp??-1/0;return this.performFragmentedLookup(e,C,i,s)}return y}finally{o()}}},dd=class extends iu{constructor(e){super(e),this.decoderConfigPromise=null,this.internalTrack=e}getCodec(){return this.internalTrack.info.codec}getCodedWidth(){return this.internalTrack.info.width}getCodedHeight(){return this.internalTrack.info.height}getRotation(){return this.internalTrack.rotation}async getColorSpace(){return{primaries:this.internalTrack.info.colorSpace?.primaries,transfer:this.internalTrack.info.colorSpace?.transfer,matrix:this.internalTrack.info.colorSpace?.matrix,fullRange:this.internalTrack.info.colorSpace?.fullRange}}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfigPromise??=(async()=>{if(this.internalTrack.info.codec==="vp9"&&!this.internalTrack.info.vp9CodecInfo){let e=await this.getFirstPacket({});this.internalTrack.info.vp9CodecInfo=e&&Vc(e.data)}else if(this.internalTrack.info.codec==="av1"&&!this.internalTrack.info.av1CodecInfo){let e=await this.getFirstPacket({});this.internalTrack.info.av1CodecInfo=e&&Hc(e.data)}return{codec:Gc(this.internalTrack.info),codedWidth:this.internalTrack.info.width,codedHeight:this.internalTrack.info.height,description:this.internalTrack.info.codecDescription??void 0,colorSpace:this.internalTrack.info.colorSpace??void 0}})():null}},fd=class extends iu{constructor(e){super(e),this.decoderConfig=null,this.internalTrack=e}getCodec(){return this.internalTrack.info.codec}getNumberOfChannels(){return this.internalTrack.info.numberOfChannels}getSampleRate(){return this.internalTrack.info.sampleRate}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfig??={codec:Nc(this.internalTrack.info),numberOfChannels:this.internalTrack.info.numberOfChannels,sampleRate:this.internalTrack.info.sampleRate,description:this.internalTrack.info.codecDescription??void 0}:null}},r0=(r,e)=>{if(r.presentationTimestamps){let t=Z(r.presentationTimestamps,e,i=>i.presentationTimestamp);return t===-1?-1:r.presentationTimestamps[t].sampleIndex}else{let t=Z(r.sampleTimingEntries,e,s=>s.startDecodeTimestamp);if(t===-1)return-1;let i=r.sampleTimingEntries[t];return i.startIndex+Math.min(Math.floor((e-i.startDecodeTimestamp)/i.delta),i.count-1)}},FA=(r,e)=>{let t=Z(r.sampleTimingEntries,e,_=>_.startIndex),i=r.sampleTimingEntries[t];if(!i||i.startIndex+i.count<=e)return null;let n=i.startDecodeTimestamp+(e-i.startIndex)*i.delta,o=Z(r.sampleCompositionTimeOffsets,e,_=>_.startIndex),a=r.sampleCompositionTimeOffsets[o];a&&e-a.startIndex<a.count&&(n+=a.offset);let c=r.sampleSizes[Math.min(e,r.sampleSizes.length-1)],u=Z(r.sampleToChunk,e,_=>_.startSampleIndex),l=r.sampleToChunk[u];w(l);let h=l.startChunkIndex+Math.floor((e-l.startSampleIndex)/l.samplesPerChunk),f=r.chunkOffsets[h],d=l.startSampleIndex+(h-l.startChunkIndex)*l.samplesPerChunk,m=0,x=f;if(r.sampleSizes.length===1)x+=c*(e-d),m+=c*l.samplesPerChunk;else for(let _=d;_<d+l.samplesPerChunk;_++){let y=r.sampleSizes[_];_<e&&(x+=y),m+=y}let g=i.delta;if(r.presentationTimestamps){let _=r.presentationTimestampIndexMap[e];w(_!==void 0),_<r.presentationTimestamps.length-1&&(g=r.presentationTimestamps[_+1].presentationTimestamp-n)}return{presentationTimestamp:n,duration:g,sampleOffset:x,sampleSize:c,chunkOffset:f,chunkSize:m,isKeyFrame:r.keySampleIndices?Ae(r.keySampleIndices,e,_=>_)!==-1:!0}},UA=(r,e)=>{if(!r.keySampleIndices)return e;let t=Z(r.keySampleIndices,e,i=>i);return r.keySampleIndices[t]??-1},OA=(r,e)=>{if(!r.keySampleIndices)return e+1;let t=Z(r.keySampleIndices,e,i=>i);return r.keySampleIndices[t+1]??-1},i0=(r,e)=>{r.startTimestamp+=e,r.endTimestamp+=e;for(let t of r.samples)t.presentationTimestamp+=e;for(let t of r.presentationTimestamps)t.presentationTimestamp+=e},GA=r=>{let[e,,,t]=r,i=Math.hypot(e,t),s=e/i,n=t/i;return-Math.atan2(n,s)*(180/Math.PI)};var md=[{id:I.SeekHead,flag:"seekHeadSeen"},{id:I.Info,flag:"infoSeen"},{id:I.Tracks,flag:"tracksSeen"},{id:I.Cues,flag:"cuesSeen"}],su=class extends Ct{constructor(e){super(e),this.readMetadataPromise=null,this.segments=[],this.currentSegment=null,this.currentTrack=null,this.currentCluster=null,this.currentBlock=null,this.currentCueTime=null,this.isWebM=!1,this.metadataReader=new Ei(e._mainReader),this.clusterReader=new Ei(new Et(e.source,64*2**20))}async computeDuration(){let e=await this.getTracks(),t=await Promise.all(e.map(i=>i.computeDuration()));return Math.max(0,...t)}async getTracks(){return await this.readMetadata(),this.segments.flatMap(e=>e.tracks.map(t=>t.inputTrack))}async getMimeType(){await this.readMetadata();let e=await this.getTracks(),t=await Promise.all(e.map(i=>i.getCodecParameterString()));return Lx({isWebM:this.isWebM,hasVideo:this.segments.some(i=>i.tracks.some(s=>s.info?.type==="video")),hasAudio:this.segments.some(i=>i.tracks.some(s=>s.info?.type==="audio")),codecStrings:t.filter(Boolean)})}readMetadata(){return this.readMetadataPromise??=(async()=>{this.metadataReader.pos=0;let e=await this.input.source.getSize();for(;this.metadataReader.pos<=e-Zc;){await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+Ci);let{id:t,size:i}=this.metadataReader.readElementHeader(),s=this.metadataReader.pos;if(t===I.EBML)ki(i),await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+i),this.readContiguousElements(this.metadataReader,i);else if(t===I.Segment&&(await this.readSegment(i),i===null))break;ki(i),this.metadataReader.pos=s+i}})()}async readSegment(e){let t=this.metadataReader.pos;this.currentSegment={seekHeadSeen:!1,infoSeen:!1,tracksSeen:!1,cuesSeen:!1,timestampScale:-1,timestampFactor:-1,duration:-1,seekEntries:[],tracks:[],cuePoints:[],dataStartPos:t,elementEndPos:e===null?await this.input.source.getSize():t+e,clusterSeekStartPos:t,clusters:[],clusterLookupMutex:new wt},this.segments.push(this.currentSegment),await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+2**14);let i=!1;for(;this.metadataReader.pos<this.currentSegment.elementEndPos;){await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+Ci);let c=this.metadataReader.pos,{id:u,size:l}=this.metadataReader.readElementHeader(),h=this.metadataReader.pos,f=md.findIndex(d=>d.id===u);if(f!==-1){let d=md[f].flag;this.currentSegment[d]=!0,ki(l),await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+l),this.readContiguousElements(this.metadataReader,l)}else u===I.Cluster&&(i||(i=!0,this.currentSegment.clusterSeekStartPos=c));if(this.currentSegment.infoSeen&&this.currentSegment.tracksSeen&&this.currentSegment.cuesSeen)break;if(this.currentSegment.seekHeadSeen){let d=this.currentSegment.infoSeen,m=this.currentSegment.tracksSeen,x=this.currentSegment.cuesSeen;for(let g of this.currentSegment.seekEntries)g.id===I.Info?d=!0:g.id===I.Tracks?m=!0:g.id===I.Cues&&(x=!0);if(d&&m&&x)break}if(l===null)break;this.metadataReader.pos=h+l,i||(this.currentSegment.clusterSeekStartPos=this.metadataReader.pos)}for(let c of md){if(this.currentSegment[c.flag])continue;let u=this.currentSegment.seekEntries.find(f=>f.id===c.id);if(!u)continue;this.metadataReader.pos=t+u.segmentPosition,await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+2**12);let{id:l,size:h}=this.metadataReader.readElementHeader();l===c.id&&(ki(h),this.currentSegment[c.flag]=!0,await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+h),this.readContiguousElements(this.metadataReader,h))}this.currentSegment.tracks.sort((c,u)=>Number(u.isDefault)-Number(c.isDefault)),this.currentSegment.cuePoints.sort((c,u)=>c.clusterPosition-u.clusterPosition);let s=this.currentSegment.tracks.map(c=>c.id),n=new Set,o=null,a=null;for(let c of this.currentSegment.cuePoints){if(c.clusterPosition!==o){for(let l of n)w(a),this.currentSegment.tracks.find(f=>f.id===l).cuePoints.push(a);for(let l of s)n.add(l)}if(a=c,!n.has(c.trackId))continue;this.currentSegment.tracks.find(l=>l.id===c.trackId).cuePoints.push(c),n.delete(c.trackId),o=c.clusterPosition}for(let c of n)w(a),this.currentSegment.tracks.find(l=>l.id===c).cuePoints.push(a);for(let c of this.currentSegment.tracks)c.cuePoints.sort((u,l)=>u.time-l.time);this.currentSegment=null}async readCluster(e){await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+Ci);let t=this.metadataReader.pos,i=this.metadataReader.readElementHeader(),s=i.id,n=i.size,o=this.metadataReader.pos;n===null&&(this.clusterReader.pos=o,n=(await this.clusterReader.searchForNextElementId(rd,e.elementEndPos)??e.elementEndPos)-o),w(s===I.Cluster),this.clusterReader.pos=o,await this.clusterReader.reader.loadRange(this.clusterReader.pos,this.clusterReader.pos+n);let a={elementStartPos:t,elementEndPos:o+n,dataStartPos:o,timestamp:-1,trackData:new Map,nextCluster:null,isKnownToBeFirstCluster:!1};this.currentCluster=a,this.readContiguousElements(this.clusterReader,n);for(let[u,l]of a.trackData){let h=!1;w(l.blocks.length>0);for(let x=0;x<l.blocks.length;x++){let g=l.blocks[x];g.timestamp+=a.timestamp,h||=g.referencedTimestamps.length>0}h&&(l.blocks=NA(l.blocks)),l.presentationTimestamps=l.blocks.map((x,g)=>({timestamp:x.timestamp,blockIndex:g})).sort((x,g)=>x.timestamp-g.timestamp);for(let x=0;x<l.presentationTimestamps.length;x++){let g=l.presentationTimestamps[x],_=l.blocks[g.blockIndex];if(l.firstKeyFrameTimestamp===null&&_.isKeyFrame&&(l.firstKeyFrameTimestamp=_.timestamp),x<l.presentationTimestamps.length-1){let y=l.presentationTimestamps[x+1];_.duration=y.timestamp-_.timestamp}}let f=l.blocks[l.presentationTimestamps[0].blockIndex],d=l.blocks[he(l.presentationTimestamps).blockIndex];l.startTimestamp=f.timestamp,l.endTimestamp=d.timestamp+d.duration;let m=e.tracks.find(x=>x.id===u);if(m){let x=Z(m.clusters,a.elementStartPos,_=>_.elementStartPos);if(m.clusters.splice(x+1,0,a),l.firstKeyFrameTimestamp!==null){let _=Z(m.clustersWithKeyFrame,a.elementStartPos,y=>y.elementStartPos);m.clustersWithKeyFrame.splice(_+1,0,a)}}}let c=Z(e.clusters,t,u=>u.elementStartPos);return e.clusters.splice(c+1,0,a),this.currentCluster=null,a}getTrackDataInCluster(e,t){let i=e.trackData.get(t);return i||(i={startTimestamp:0,endTimestamp:0,firstKeyFrameTimestamp:null,blocks:[],presentationTimestamps:[]},e.trackData.set(t,i)),i}readContiguousElements(e,t){let i=e.pos;for(;e.pos-i<=t-Zc;)this.traverseElement(e)}traverseElement(e){let{id:t,size:i}=e.readElementHeader(),s=e.pos;switch(ki(i),t){case I.DocType:this.isWebM=e.readString(i)==="webm";break;case I.Seek:{if(!this.currentSegment)break;let n={id:-1,segmentPosition:-1};this.currentSegment.seekEntries.push(n),this.readContiguousElements(e,i),(n.id===-1||n.segmentPosition===-1)&&this.currentSegment.seekEntries.pop()}break;case I.SeekID:{let n=this.currentSegment?.seekEntries[this.currentSegment.seekEntries.length-1];if(!n)break;n.id=e.readUnsignedInt(i)}break;case I.SeekPosition:{let n=this.currentSegment?.seekEntries[this.currentSegment.seekEntries.length-1];if(!n)break;n.segmentPosition=e.readUnsignedInt(i)}break;case I.TimestampScale:{if(!this.currentSegment)break;this.currentSegment.timestampScale=e.readUnsignedInt(i),this.currentSegment.timestampFactor=1e9/this.currentSegment.timestampScale}break;case I.Duration:{if(!this.currentSegment)break;this.currentSegment.duration=e.readFloat(i)}break;case I.TrackEntry:{if(!this.currentSegment)break;if(this.currentTrack={id:-1,segment:this.currentSegment,demuxer:this,clusters:[],clustersWithKeyFrame:[],cuePoints:[],isDefault:!1,inputTrack:null,codecId:null,codecPrivate:null,languageCode:nt,info:null},this.readContiguousElements(e,i),this.currentTrack&&this.currentTrack.id!==-1&&this.currentTrack.codecId&&this.currentTrack.info){let n=this.currentTrack.codecId.indexOf("/"),o=n===-1?this.currentTrack.codecId:this.currentTrack.codecId.slice(0,n);if(this.currentTrack.info.type==="video"&&this.currentTrack.info.width!==-1&&this.currentTrack.info.height!==-1){this.currentTrack.codecId===Dt.avc?(this.currentTrack.info.codec="avc",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):this.currentTrack.codecId===Dt.hevc?(this.currentTrack.info.codec="hevc",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):o===Dt.vp8?this.currentTrack.info.codec="vp8":o===Dt.vp9?this.currentTrack.info.codec="vp9":o===Dt.av1&&(this.currentTrack.info.codec="av1");let a=this.currentTrack,c=new gr(new pd(a));this.currentTrack.inputTrack=c,this.currentSegment.tracks.push(this.currentTrack)}else if(this.currentTrack.info.type==="audio"&&this.currentTrack.info.numberOfChannels!==-1&&this.currentTrack.info.sampleRate!==-1){o===Dt.aac?(this.currentTrack.info.codec="aac",this.currentTrack.info.aacCodecInfo={isMpeg2:this.currentTrack.codecId.includes("MPEG2")},this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):this.currentTrack.codecId===Dt.mp3?this.currentTrack.info.codec="mp3":o===Dt.opus?(this.currentTrack.info.codec="opus",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):o===Dt.vorbis?(this.currentTrack.info.codec="vorbis",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):o===Dt.flac?(this.currentTrack.info.codec="flac",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):this.currentTrack.codecId==="A_PCM/INT/LIT"?this.currentTrack.info.bitDepth===8?this.currentTrack.info.codec="pcm-u8":this.currentTrack.info.bitDepth===16?this.currentTrack.info.codec="pcm-s16":this.currentTrack.info.bitDepth===24?this.currentTrack.info.codec="pcm-s24":this.currentTrack.info.bitDepth===32&&(this.currentTrack.info.codec="pcm-s32"):this.currentTrack.codecId==="A_PCM/INT/BIG"?this.currentTrack.info.bitDepth===8?this.currentTrack.info.codec="pcm-u8":this.currentTrack.info.bitDepth===16?this.currentTrack.info.codec="pcm-s16be":this.currentTrack.info.bitDepth===24?this.currentTrack.info.codec="pcm-s24be":this.currentTrack.info.bitDepth===32&&(this.currentTrack.info.codec="pcm-s32be"):this.currentTrack.codecId==="A_PCM/FLOAT/IEEE"&&(this.currentTrack.info.bitDepth===32?this.currentTrack.info.codec="pcm-f32":this.currentTrack.info.bitDepth===64&&(this.currentTrack.info.codec="pcm-f64"));let a=this.currentTrack,c=new Ze(new gd(a));this.currentTrack.inputTrack=c,this.currentSegment.tracks.push(this.currentTrack)}}this.currentTrack=null}break;case I.TrackNumber:{if(!this.currentTrack)break;this.currentTrack.id=e.readUnsignedInt(i)}break;case I.TrackType:{if(!this.currentTrack)break;let n=e.readUnsignedInt(i);n===1?this.currentTrack.info={type:"video",width:-1,height:-1,rotation:0,codec:null,codecDescription:null,colorSpace:null}:n===2&&(this.currentTrack.info={type:"audio",numberOfChannels:-1,sampleRate:-1,bitDepth:-1,codec:null,codecDescription:null,aacCodecInfo:null})}break;case I.FlagEnabled:{if(!this.currentTrack)break;e.readUnsignedInt(i)||(this.currentSegment.tracks.pop(),this.currentTrack=null)}break;case I.FlagDefault:{if(!this.currentTrack)break;this.currentTrack.isDefault=!!e.readUnsignedInt(i)}break;case I.CodecID:{if(!this.currentTrack)break;this.currentTrack.codecId=e.readString(i)}break;case I.CodecPrivate:{if(!this.currentTrack)break;this.currentTrack.codecPrivate=e.readBytes(i)}break;case I.Language:{if(!this.currentTrack)break;this.currentTrack.languageCode=e.readString(i),us(this.currentTrack.languageCode)||(this.currentTrack.languageCode=nt)}break;case I.Video:{if(this.currentTrack?.info?.type!=="video")break;this.readContiguousElements(e,i)}break;case I.PixelWidth:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.width=e.readUnsignedInt(i)}break;case I.PixelHeight:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.height=e.readUnsignedInt(i)}break;case I.Colour:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.colorSpace={},this.readContiguousElements(e,i)}break;case I.MatrixCoefficients:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;let n=e.readUnsignedInt(i),o=Mc[n]??null;this.currentTrack.info.colorSpace.matrix=o}break;case I.Range:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;this.currentTrack.info.colorSpace.fullRange=e.readUnsignedInt(i)===2}break;case I.TransferCharacteristics:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;let n=e.readUnsignedInt(i),o=Dc[n]??null;this.currentTrack.info.colorSpace.transfer=o}break;case I.Primaries:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;let n=e.readUnsignedInt(i),o=Rc[n]??null;this.currentTrack.info.colorSpace.primaries=o}break;case I.Projection:{if(this.currentTrack?.info?.type!=="video")break;this.readContiguousElements(e,i)}break;case I.ProjectionPoseRoll:{if(this.currentTrack?.info?.type!=="video")break;let o=-e.readFloat(i);try{this.currentTrack.info.rotation=Bc(o)}catch{}}break;case I.Audio:{if(this.currentTrack?.info?.type!=="audio")break;this.readContiguousElements(e,i)}break;case I.SamplingFrequency:{if(this.currentTrack?.info?.type!=="audio")break;this.currentTrack.info.sampleRate=e.readFloat(i)}break;case I.Channels:{if(this.currentTrack?.info?.type!=="audio")break;this.currentTrack.info.numberOfChannels=e.readUnsignedInt(i)}break;case I.BitDepth:{if(this.currentTrack?.info?.type!=="audio")break;this.currentTrack.info.bitDepth=e.readUnsignedInt(i)}break;case I.CuePoint:{if(!this.currentSegment)break;this.readContiguousElements(e,i),this.currentCueTime=null}break;case I.CueTime:this.currentCueTime=e.readUnsignedInt(i);break;case I.CueTrackPositions:{if(this.currentCueTime===null)break;w(this.currentSegment);let n={time:this.currentCueTime,trackId:-1,clusterPosition:-1};this.currentSegment.cuePoints.push(n),this.readContiguousElements(e,i),(n.trackId===-1||n.clusterPosition===-1)&&this.currentSegment.cuePoints.pop()}break;case I.CueTrack:{let n=this.currentSegment?.cuePoints[this.currentSegment.cuePoints.length-1];if(!n)break;n.trackId=e.readUnsignedInt(i)}break;case I.CueClusterPosition:{let n=this.currentSegment?.cuePoints[this.currentSegment.cuePoints.length-1];if(!n)break;w(this.currentSegment),n.clusterPosition=this.currentSegment.dataStartPos+e.readUnsignedInt(i)}break;case I.Timestamp:{if(!this.currentCluster)break;this.currentCluster.timestamp=e.readUnsignedInt(i)}break;case I.SimpleBlock:{if(!this.currentCluster)break;let n=e.readVarInt(),o=e.readS16(),c=!!(e.readU8()&128);this.getTrackDataInCluster(this.currentCluster,n).blocks.push({timestamp:o,duration:0,isKeyFrame:c,referencedTimestamps:[],data:e.readBytes(i-(e.pos-s))})}break;case I.BlockGroup:{if(!this.currentCluster)break;if(this.readContiguousElements(e,i),this.currentBlock){for(let n=0;n<this.currentBlock.referencedTimestamps.length;n++)this.currentBlock.referencedTimestamps[n]+=this.currentBlock.timestamp;this.currentBlock=null}}break;case I.Block:{if(!this.currentCluster)break;let n=e.readVarInt(),o=e.readS16(),a=e.readU8(),c=this.getTrackDataInCluster(this.currentCluster,n);this.currentBlock={timestamp:o,duration:0,isKeyFrame:!0,referencedTimestamps:[],data:e.readBytes(i-(e.pos-s))},c.blocks.push(this.currentBlock)}break;case I.BlockDuration:{if(!this.currentBlock)break;this.currentBlock.duration=e.readUnsignedInt(i)}break;case I.ReferenceBlock:{if(!this.currentBlock)break;this.currentBlock.isKeyFrame=!1;let n=e.readSignedInt(i);this.currentBlock.referencedTimestamps.push(n)}break}e.pos=s+i}},nu=class{constructor(e){this.internalTrack=e,this.packetToClusterLocation=new WeakMap}getId(){return this.internalTrack.id}getCodec(){throw new Error("Not implemented on base class.")}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}getLanguageCode(){return this.internalTrack.languageCode}async getFirstTimestamp(){return(await this.getFirstPacket({metadataOnly:!0}))?.timestamp??0}getTimeResolution(){return this.internalTrack.segment.timestampFactor}async getFirstPacket(e){return this.performClusterLookup(()=>{let t=this.internalTrack.segment.clusters[0]??null;if(t?.isKnownToBeFirstCluster){let i=t;for(;i;){if(i.trackData.get(this.internalTrack.id))return{clusterIndex:Ae(this.internalTrack.clusters,i.elementStartPos,n=>n.elementStartPos),blockIndex:0,correctBlockFound:!0};i=i.nextCluster}}return{clusterIndex:-1,blockIndex:-1,correctBlockFound:!1}},-1/0,1/0,e)}intoTimescale(e){return cs(e*this.internalTrack.segment.timestampFactor,14)}async getPacket(e,t){let i=this.intoTimescale(e);return this.performClusterLookup(()=>this.findBlockInClustersForTimestamp(i),i,i,t)}async getNextPacket(e,t){let i=this.packetToClusterLocation.get(e);if(i===void 0)throw new Error("Packet was not created from this track.");let s=i.cluster.trackData.get(this.internalTrack.id),n=s.blocks[i.blockIndex],o=Ae(this.internalTrack.clusters,i.cluster.elementStartPos,a=>a.elementStartPos);return w(o!==-1),this.performClusterLookup(()=>{if(i.blockIndex+1<s.blocks.length)return{clusterIndex:o,blockIndex:i.blockIndex+1,correctBlockFound:!0};{let a=i.cluster;for(;a.nextCluster;)if(a=a.nextCluster,a.trackData.get(this.internalTrack.id)){let u=Ae(this.internalTrack.clusters,a.elementStartPos,l=>l.elementStartPos);return w(u!==-1),{clusterIndex:u,blockIndex:0,correctBlockFound:!0}}return{clusterIndex:o,blockIndex:-1,correctBlockFound:!1}}},n.timestamp,1/0,t)}async getKeyPacket(e,t){let i=this.intoTimescale(e);return this.performClusterLookup(()=>this.findKeyBlockInClustersForTimestamp(i),i,i,t)}async getNextKeyPacket(e,t){let i=this.packetToClusterLocation.get(e);if(i===void 0)throw new Error("Packet was not created from this track.");let s=i.cluster.trackData.get(this.internalTrack.id),n=s.blocks[i.blockIndex],o=Ae(this.internalTrack.clusters,i.cluster.elementStartPos,a=>a.elementStartPos);return w(o!==-1),this.performClusterLookup(()=>{let a=s.blocks.findIndex((c,u)=>c.isKeyFrame&&u>i.blockIndex);if(a!==-1)return{clusterIndex:o,blockIndex:a,correctBlockFound:!0};{let c=i.cluster;for(;c.nextCluster;){c=c.nextCluster;let u=c.trackData.get(this.internalTrack.id);if(u&&u.firstKeyFrameTimestamp!==null){let l=Ae(this.internalTrack.clusters,c.elementStartPos,f=>f.elementStartPos);w(l!==-1);let h=u.blocks.findIndex(f=>f.isKeyFrame);return w(h!==-1),{clusterIndex:l,blockIndex:h,correctBlockFound:!0}}}return{clusterIndex:o,blockIndex:-1,correctBlockFound:!1}}},n.timestamp,1/0,t)}async fetchPacketInCluster(e,t,i){if(t===-1)return null;let n=e.trackData.get(this.internalTrack.id).blocks[t];w(n);let o=i.metadataOnly?ot:n.data,a=n.timestamp/this.internalTrack.segment.timestampFactor,c=n.duration/this.internalTrack.segment.timestampFactor,u=new ge(o,n.isKeyFrame?"key":"delta",a,c,e.dataStartPos+t,n.data.byteLength);return this.packetToClusterLocation.set(u,{cluster:e,blockIndex:t}),u}findBlockInClustersForTimestamp(e){let t=Z(this.internalTrack.clusters,e,n=>n.trackData.get(this.internalTrack.id).startTimestamp),i=-1,s=!1;if(t!==-1){let o=this.internalTrack.clusters[t].trackData.get(this.internalTrack.id),a=Z(o.presentationTimestamps,e,c=>c.timestamp);w(a!==-1),i=o.presentationTimestamps[a].blockIndex,s=e<o.endTimestamp}return{clusterIndex:t,blockIndex:i,correctBlockFound:s}}findKeyBlockInClustersForTimestamp(e){let t=Z(this.internalTrack.clustersWithKeyFrame,e,o=>o.trackData.get(this.internalTrack.id).firstKeyFrameTimestamp),i=-1,s=-1,n=!1;if(t!==-1){let o=this.internalTrack.clustersWithKeyFrame[t];i=Ae(this.internalTrack.clusters,o.elementStartPos,l=>l.elementStartPos),w(i!==-1);let a=o.trackData.get(this.internalTrack.id),c=Ic(a.presentationTimestamps,l=>a.blocks[l.blockIndex].isKeyFrame&&l.timestamp<=e);w(c!==-1),s=a.presentationTimestamps[c].blockIndex,n=e<a.endTimestamp}return{clusterIndex:i,blockIndex:s,correctBlockFound:n}}async performClusterLookup(e,t,i,s){let{demuxer:n,segment:o}=this.internalTrack,a=await o.clusterLookupMutex.acquire();try{let{clusterIndex:c,blockIndex:u,correctBlockFound:l}=e();if(l){let C=this.internalTrack.clusters[c];return this.fetchPacketInCluster(C,u,s)}let h=n.metadataReader,f=n.clusterReader,d=null,m=c,x=u,g=Z(this.internalTrack.cuePoints,t,C=>C.time),_=g!==-1?this.internalTrack.cuePoints[g]:null,y=!1;if(c===-1)h.pos=_?.clusterPosition??o.clusterSeekStartPos,y=h.pos===o.clusterSeekStartPos;else{let C=this.internalTrack.clusters[c];!_||C.elementStartPos>=_.clusterPosition?(h.pos=C.elementEndPos,d=C):h.pos=_.clusterPosition}for(;h.pos<o.elementEndPos;){if(d){let P=d.trackData.get(this.internalTrack.id);if(P&&P.startTimestamp>i)break;if(d.nextCluster){h.pos=d.nextCluster.elementEndPos,d=d.nextCluster;continue}}await h.reader.loadRange(h.pos,h.pos+Ci);let C=h.pos,v=h.readElementHeader(),E=v.id,D=v.size,A=h.pos;if(E===I.Cluster){let P=Ae(o.clusters,C,Tt=>Tt.elementStartPos),k;P===-1?(h.pos=C,k=await n.readCluster(o)):k=o.clusters[P],d&&(d.nextCluster=k),d=k,y&&(k.isKnownToBeFirstCluster=!0,y=!1);let{clusterIndex:G,blockIndex:j,correctBlockFound:be}=e();if(be){let Tt=this.internalTrack.clusters[G];return this.fetchPacketInCluster(Tt,j,s)}G!==-1&&(m=G,x=j)}if(D===null){E===I.Cluster?(w(d),D=d.elementEndPos-A):(f.pos=A,D=(await f.searchForNextElementId(rd,o.elementEndPos)??o.elementEndPos)-A);let P=A+D;if(P>o.elementEndPos-Zc)break;if(f.pos=P,f.readElementId()===I.Segment){o.elementEndPos=P;break}}h.pos=A+D}let S=null,T=m!==-1?this.internalTrack.clusters[m]:null;if(T&&(S=await this.fetchPacketInCluster(T,x,s)),!S&&_&&(!T||T.elementStartPos<_.clusterPosition)){let v=this.internalTrack.cuePoints[g-1]?.time??-1/0;return this.performClusterLookup(e,v,i,s)}return S}finally{a()}}},pd=class extends nu{constructor(e){super(e),this.decoderConfigPromise=null,this.internalTrack=e}getCodec(){return this.internalTrack.info.codec}getCodedWidth(){return this.internalTrack.info.width}getCodedHeight(){return this.internalTrack.info.height}getRotation(){return this.internalTrack.info.rotation}async getColorSpace(){return{primaries:this.internalTrack.info.colorSpace?.primaries,transfer:this.internalTrack.info.colorSpace?.transfer,matrix:this.internalTrack.info.colorSpace?.matrix,fullRange:this.internalTrack.info.colorSpace?.fullRange}}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfigPromise??=(async()=>{let e=null;return(this.internalTrack.info.codec==="vp9"||this.internalTrack.info.codec==="av1"||this.internalTrack.info.codec==="avc"&&!this.internalTrack.info.codecDescription||this.internalTrack.info.codec==="hevc"&&!this.internalTrack.info.codecDescription)&&(e=await this.getFirstPacket({})),{codec:Gc({width:this.internalTrack.info.width,height:this.internalTrack.info.height,codec:this.internalTrack.info.codec,codecDescription:this.internalTrack.info.codecDescription,colorSpace:this.internalTrack.info.colorSpace,avcCodecInfo:this.internalTrack.info.codec==="avc"&&e?Lc(e.data):null,hevcCodecInfo:this.internalTrack.info.codec==="hevc"&&e?zc(e.data):null,vp9CodecInfo:this.internalTrack.info.codec==="vp9"&&e?Vc(e.data):null,av1CodecInfo:this.internalTrack.info.codec==="av1"&&e?Hc(e.data):null}),codedWidth:this.internalTrack.info.width,codedHeight:this.internalTrack.info.height,description:this.internalTrack.info.codecDescription??void 0,colorSpace:this.internalTrack.info.colorSpace??void 0}})():null}},gd=class extends nu{constructor(e){super(e),this.decoderConfig=null,this.internalTrack=e}getCodec(){return this.internalTrack.info.codec}getNumberOfChannels(){return this.internalTrack.info.numberOfChannels}getSampleRate(){return this.internalTrack.info.sampleRate}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfig??={codec:Nc({codec:this.internalTrack.info.codec,codecDescription:this.internalTrack.info.codecDescription,aacCodecInfo:this.internalTrack.info.aacCodecInfo}),numberOfChannels:this.internalTrack.info.numberOfChannels,sampleRate:this.internalTrack.info.sampleRate,description:this.internalTrack.info.codecDescription??void 0}:null}},NA=r=>{let e=new Map;for(let n=0;n<r.length;n++){let o=r[n];e.set(o.timestamp,o)}let t=new Set,i=[],s=n=>{if(!t.has(n)){t.add(n);for(let o=0;o<n.referencedTimestamps.length;o++){let a=n.referencedTimestamps[o],c=e.get(a);c&&s(c)}i.push(n)}};for(let n=0;n<r.length;n++)s(r[n]);return i};var vs=class{constructor(e){this.reader=e,this.pos=0,this.fileSize=null}readBytes(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);return this.pos+=e,new Uint8Array(t.buffer,i,e)}readU16(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+2);return this.pos+=2,e.getUint16(t,!1)}readU32(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+4);return this.pos+=4,e.getUint32(t,!1)}readAscii(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);this.pos+=e;let s="";for(let n=0;n<e;n++)s+=String.fromCharCode(t.getUint8(i+n));return s}readId3(){return this.readAscii(3)!=="ID3"?(this.pos-=3,null):(this.pos+=3,{size:LA(this.readU32())})}readNextFrameHeader(e){for(w(this.fileSize),e??=this.fileSize;this.pos<=e-4;){let t=this.readU32();this.pos-=4;let i=Wx(t,this);if(i)return i}return null}},LA=r=>{let e=2130706432,t=0;for(;e!==0;)t>>=1,t|=r&e,e>>=8;return t};var ou=class extends Ct{constructor(e){super(e),this.metadataPromise=null,this.firstFrameHeader=null,this.allSamples=[],this.tracks=[],this.reader=new vs(e._mainReader)}async readMetadata(){return this.metadataPromise??=(async()=>{let e=await this.input.source.getSize();this.reader.fileSize=e,await this.reader.reader.loadRange(0,e);let t=this.reader.readId3();t&&(this.reader.pos+=t.size);let i=0;for(;;){let s=this.reader.readNextFrameHeader();if(!s)break;let n=Hx(s.mpegVersionId,s.channel);this.reader.pos=s.startPos+n;let o=this.reader.readU32(),a=o===zx||o===Vx;if(this.reader.pos=s.startPos+s.totalSize-1,a)continue;this.firstFrameHeader||(this.firstFrameHeader=s);let c=s.audioSamplesInFrame/s.sampleRate,u={timestamp:i/s.sampleRate,duration:c,dataStart:s.startPos,dataSize:s.totalSize};this.allSamples.push(u),i+=s.audioSamplesInFrame}if(!this.firstFrameHeader)throw new Error("No MP3 frames found.");this.tracks=[new Ze(new _d(this))]})()}async getMimeType(){return"audio/mpeg"}async getTracks(){return await this.readMetadata(),this.tracks}async computeDuration(){await this.readMetadata();let e=he(this.allSamples);return w(e),e.timestamp+e.duration}},_d=class{constructor(e){this.demuxer=e}getId(){return 1}async getFirstTimestamp(){return 0}getTimeResolution(){return w(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.sampleRate/this.demuxer.firstFrameHeader.audioSamplesInFrame}computeDuration(){return this.demuxer.computeDuration()}getLanguageCode(){return nt}getCodec(){return"mp3"}getNumberOfChannels(){return w(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.channel===3?1:2}getSampleRate(){return w(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.sampleRate}async getDecoderConfig(){return w(this.demuxer.firstFrameHeader),{codec:"mp3",numberOfChannels:this.demuxer.firstFrameHeader.channel===3?1:2,sampleRate:this.demuxer.firstFrameHeader.sampleRate}}getPacketAtIndex(e,t){if(e===-1)return null;let i=this.demuxer.allSamples[e];if(!i)return null;let s;return t.metadataOnly?s=ot:(this.demuxer.reader.pos=i.dataStart,s=this.demuxer.reader.readBytes(i.dataSize)),new ge(s,"key",i.timestamp,i.duration,e,i.dataSize)}async getFirstPacket(e){return this.getPacketAtIndex(0,e)}async getNextPacket(e,t){let i=Ae(this.demuxer.allSamples,e.timestamp,s=>s.timestamp);if(i===-1)throw new Error("Packet was not created from this track.");return this.getPacketAtIndex(i+1,t)}async getPacket(e,t){let i=Z(this.demuxer.allSamples,e,s=>s.timestamp);return this.getPacketAtIndex(i,t)}getKeyPacket(e,t){return this.getPacket(e,t)}getNextKeyPacket(e,t){return this.getNextPacket(e,t)}};var au=class extends Ct{constructor(e){super(e),this.readingMutex=new wt,this.metadataPromise=null,this.fileSize=null,this.bitstreams=[],this.tracks=[],this.reader=new ms(new Et(e.source,64*2**20))}async readMetadata(){return this.metadataPromise??=(async()=>{for(this.fileSize=await this.input.source.getSize();this.reader.pos<this.fileSize-ps;){await this.reader.reader.loadRange(this.reader.pos,this.reader.pos+Ai);let e=this.reader.readPageHeader();if(!e||!!!(e.headerType&2))break;this.bitstreams.push({serialNumber:e.serialNumber,bosPage:e,description:null,numberOfChannels:-1,sampleRate:-1,codecInfo:{codec:null,vorbisInfo:null,opusInfo:null},lastMetadataPacket:null}),this.reader.pos=e.headerStartPos+e.totalSize}for(let e of this.bitstreams){let t=await this.readPacket(this.reader,e.bosPage,0);t&&(t.data.byteLength>=7&&t.data[0]===1&&t.data[1]===118&&t.data[2]===111&&t.data[3]===114&&t.data[4]===98&&t.data[5]===105&&t.data[6]===115?await this.readVorbisMetadata(t,e):t.data.byteLength>=8&&t.data[0]===79&&t.data[1]===112&&t.data[2]===117&&t.data[3]===115&&t.data[4]===72&&t.data[5]===101&&t.data[6]===97&&t.data[7]===100&&await this.readOpusMetadata(t,e),e.codecInfo.codec!==null&&this.tracks.push(new Ze(new bd(e,this))))}})()}async readVorbisMetadata(e,t){let i=await this.findNextPacketStart(this.reader,e);if(!i)return;let s=await this.readPacket(this.reader,i.startPage,i.startSegmentIndex);if(!s||(i=await this.findNextPacketStart(this.reader,s),!i))return;let n=await this.readPacket(this.reader,i.startPage,i.startSegmentIndex);if(!n||s.data[0]!==3||n.data[0]!==5)return;let o=[],a=h=>{for(;o.push(Math.min(255,h)),!(h<255);)h-=255};a(e.data.length),a(s.data.length);let c=new Uint8Array(1+o.length+e.data.length+s.data.length+n.data.length);c[0]=o.length,c.set(o,1),c.set(e.data,1+o.length),c.set(s.data,1+o.length+e.data.length),c.set(n.data,1+o.length+e.data.length+s.data.length),t.codecInfo.codec="vorbis",t.description=c,t.lastMetadataPacket=n;let u=St(e.data);t.numberOfChannels=u.getUint8(11),t.sampleRate=u.getUint32(12,!0);let l=u.getUint8(28);t.codecInfo.vorbisInfo={blocksizes:[1<<(l&15),1<<(l>>4)],modeBlockflags:vx(n.data).modeBlockflags}}async readOpusMetadata(e,t){let i=await this.findNextPacketStart(this.reader,e);if(!i)return;let s=await this.readPacket(this.reader,i.startPage,i.startSegmentIndex);if(!s)return;t.codecInfo.codec="opus",t.description=e.data,t.lastMetadataPacket=s;let n=Wc(e.data);t.numberOfChannels=n.outputChannelCount,t.sampleRate=n.inputSampleRate,t.codecInfo.opusInfo={preSkip:n.preSkip}}async readPacket(e,t,i){w(i<t.lacingValues.length),w(this.fileSize);let s=0;for(let f=0;f<i;f++)s+=t.lacingValues[f];let n=t,o=s,a=i,c=[];e:for(;;){await e.reader.loadRange(n.dataStartPos,n.dataStartPos+n.dataSize),e.pos=n.dataStartPos;let f=e.readBytes(n.dataSize);for(;;){if(a===n.lacingValues.length){c.push(f.subarray(s,o));break}let d=n.lacingValues[a];if(o+=d,d<255){c.push(f.subarray(s,o));break e}a++}for(;;){if(e.pos=n.headerStartPos+n.totalSize,e.pos>=this.fileSize-ps)return null;await e.reader.loadRange(e.pos,e.pos+Ai);let d=e.readPageHeader();if(!d)return null;if(n=d,n.serialNumber===t.serialNumber)break}s=0,o=0,a=0}let u=c.reduce((f,d)=>f+d.length,0),l=new Uint8Array(u),h=0;for(let f=0;f<c.length;f++){let d=c[f];l.set(d,h),h+=d.length}return{data:l,endPage:n,endSegmentIndex:a}}async findNextPacketStart(e,t){if(w(this.fileSize!==null),t.endSegmentIndex<t.endPage.lacingValues.length-1)return{startPage:t.endPage,startSegmentIndex:t.endSegmentIndex+1};if(!!(t.endPage.headerType&4))return null;for(e.pos=t.endPage.headerStartPos+t.endPage.totalSize;;){if(e.pos>=this.fileSize-ps)return null;await e.reader.loadRange(e.pos,e.pos+Ai);let s=e.readPageHeader();if(!s)return null;if(s.serialNumber===t.endPage.serialNumber)return{startPage:s,startSegmentIndex:0};e.pos=s.headerStartPos+s.totalSize}}async getMimeType(){await this.readMetadata();let e=await Promise.all(this.tracks.map(t=>t.getCodecParameterString()));return Xx({codecStrings:e.filter(Boolean)})}async getTracks(){return await this.readMetadata(),this.tracks}async computeDuration(){let e=await this.getTracks(),t=await Promise.all(e.map(i=>i.computeDuration()));return Math.max(0,...t)}},bd=class{constructor(e,t){this.bitstream=e,this.demuxer=t,this.encodedPacketToMetadata=new WeakMap,this.internalSampleRate=e.codecInfo.codec==="opus"?cx:e.sampleRate}getId(){return this.bitstream.serialNumber}getNumberOfChannels(){return this.bitstream.numberOfChannels}getSampleRate(){return this.bitstream.sampleRate}getTimeResolution(){return this.bitstream.sampleRate}getCodec(){return this.bitstream.codecInfo.codec}async getDecoderConfig(){return w(this.bitstream.codecInfo.codec),{codec:this.bitstream.codecInfo.codec,numberOfChannels:this.bitstream.numberOfChannels,sampleRate:this.bitstream.sampleRate,description:this.bitstream.description??void 0}}getLanguageCode(){return nt}async getFirstTimestamp(){return 0}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}granulePositionToTimestampInSamples(e){return this.bitstream.codecInfo.codec==="opus"?(w(this.bitstream.codecInfo.opusInfo),e-this.bitstream.codecInfo.opusInfo.preSkip):e}createEncodedPacketFromOggPacket(e,t,i){if(!e)return null;let{durationInSamples:s,vorbisBlockSize:n}=jx(e.data,this.bitstream.codecInfo,t.vorbisLastBlocksize),o=new ge(i.metadataOnly?ot:e.data,"key",Math.max(0,t.timestampInSamples)/this.internalSampleRate,s/this.internalSampleRate,e.endPage.headerStartPos+e.endSegmentIndex,e.data.byteLength);return this.encodedPacketToMetadata.set(o,{packet:e,timestampInSamples:t.timestampInSamples,durationInSamples:s,vorbisBlockSize:n}),o}async getFirstPacket(e,t=!0){let i=t?await this.demuxer.readingMutex.acquire():null;try{w(this.bitstream.lastMetadataPacket);let s=await this.demuxer.findNextPacketStart(this.demuxer.reader,this.bitstream.lastMetadataPacket);if(!s)return null;let n=0;this.bitstream.codecInfo.codec==="opus"&&(w(this.bitstream.codecInfo.opusInfo),n-=this.bitstream.codecInfo.opusInfo.preSkip);let o=await this.demuxer.readPacket(this.demuxer.reader,s.startPage,s.startSegmentIndex);return this.createEncodedPacketFromOggPacket(o,{timestampInSamples:n,vorbisLastBlocksize:null},e)}finally{i?.()}}async getNextPacket(e,t){let i=await this.demuxer.readingMutex.acquire();try{let s=this.encodedPacketToMetadata.get(e);if(!s)throw new Error("Packet was not created from this track.");let n=await this.demuxer.findNextPacketStart(this.demuxer.reader,s.packet);if(!n)return null;let o=s.timestampInSamples+s.durationInSamples,a=await this.demuxer.readPacket(this.demuxer.reader,n.startPage,n.startSegmentIndex);return this.createEncodedPacketFromOggPacket(a,{timestampInSamples:o,vorbisLastBlocksize:s.vorbisBlockSize},t)}finally{i()}}async getPacket(e,t){let i=await this.demuxer.readingMutex.acquire();try{w(this.demuxer.fileSize!==null);let s=cs(e*this.internalSampleRate,14);if(s===0)return this.getFirstPacket(t,!1);if(s<0)return null;let n=this.demuxer.reader;w(this.bitstream.lastMetadataPacket);let o=await this.demuxer.findNextPacketStart(n,this.bitstream.lastMetadataPacket);if(!o)return null;let a=o.startPage,c=this.demuxer.fileSize,u=[a];e:for(;a.headerStartPos+a.totalSize<c;){let T=a.headerStartPos,C=Math.floor((T+c)/2),v=C;for(;;){let E=Math.min(v+Yx,c-ps);if(await n.reader.loadRange(v,E),n.pos=v,!n.findNextPageHeader(E)){c=C+ps;continue e}await n.reader.loadRange(n.pos,n.pos+Ai);let A=n.readPageHeader();w(A);let P=!1;if(A.serialNumber===this.bitstream.serialNumber)P=!0;else{await n.reader.loadRange(A.headerStartPos,A.headerStartPos+A.totalSize),n.pos=A.headerStartPos;let G=n.readBytes(A.totalSize);P=qx(G)===A.checksum}if(!P){v=A.headerStartPos+4;continue}if(P&&A.serialNumber!==this.bitstream.serialNumber){v=A.headerStartPos+A.totalSize;continue}if(A.granulePosition===-1){v=A.headerStartPos+A.totalSize;continue}this.granulePositionToTimestampInSamples(A.granulePosition)>s?c=A.headerStartPos:(a=A,u.push(A));continue e}}let l=o.startPage;for(let T of u){if(T.granulePosition===a.granulePosition)break;(!l||T.headerStartPos>l.headerStartPos)&&(l=T)}let h=l,f=[h];for(;!(h.serialNumber===this.bitstream.serialNumber&&h.granulePosition===a.granulePosition);){n.pos=h.headerStartPos+h.totalSize,await n.reader.loadRange(n.pos,n.pos+Ai);let T=n.readPageHeader();w(T),h=T,h.serialNumber===this.bitstream.serialNumber&&f.push(h)}w(h.granulePosition!==-1);let d=null,m,x,g=h,_=0;if(h.headerStartPos===o.startPage.headerStartPos)m=this.granulePositionToTimestampInSamples(0),x=!0,d=0;else{m=0,x=!1;for(let v=h.lacingValues.length-1;v>=0;v--)if(h.lacingValues[v]<255){d=v+1;break}if(d===null)throw new Error("Invalid page with granule position: no packets end on this page.");_=d-1;let T={data:ot,endPage:g,endSegmentIndex:_};if(await this.demuxer.findNextPacketStart(n,T)){let v=n0(f,h,d);w(v);let E=s0(f,v.page,v.segmentIndex);E&&(h=E.page,d=E.segmentIndex)}else for(;;){let v=n0(f,h,d);if(!v)break;let E=s0(f,v.page,v.segmentIndex);if(!E)break;if(h=E.page,d=E.segmentIndex,v.page.headerStartPos!==g.headerStartPos){g=v.page,_=v.segmentIndex;break}}}let y=null,S=null;for(;h!==null;){w(d!==null);let T=await this.demuxer.readPacket(n,h,d);if(!T)break;if(!(h.headerStartPos===o.startPage.headerStartPos&&d<o.startSegmentIndex)){let E=this.createEncodedPacketFromOggPacket(T,{timestampInSamples:m,vorbisLastBlocksize:S?.vorbisBlockSize??null},t);w(E);let D=this.encodedPacketToMetadata.get(E);if(w(D),!x&&T.endPage.headerStartPos===g.headerStartPos&&T.endSegmentIndex===_?(m=this.granulePositionToTimestampInSamples(h.granulePosition),x=!0,E=this.createEncodedPacketFromOggPacket(T,{timestampInSamples:m-D.durationInSamples,vorbisLastBlocksize:S?.vorbisBlockSize??null},t),w(E),D=this.encodedPacketToMetadata.get(E),w(D)):m+=D.durationInSamples,y=E,S=D,x&&(Math.max(m,0)>s||Math.max(D.timestampInSamples,0)===s))break}let v=await this.demuxer.findNextPacketStart(n,T);if(!v)break;h=v.startPage,d=v.startSegmentIndex}return y}finally{i()}}getKeyPacket(e,t){return this.getPacket(e,t)}getNextKeyPacket(e,t){return this.getNextPacket(e,t)}},s0=(r,e,t)=>{let i=e,s=t;e:for(;;){for(s--,s;s>=0;s--)if(i.lacingValues[s]<255){s++;break e}if(w(s===-1),!(i.headerType&1)){s=0;break}let o=Gh(r,a=>a.headerStartPos<i.headerStartPos);if(!o)return null;i=o,s=i.lacingValues.length}if(w(s!==-1),s===i.lacingValues.length){let n=r[r.indexOf(i)+1];w(n),i=n,s=0}return{page:i,segmentIndex:s}},n0=(r,e,t)=>{if(t>0)return{page:e,segmentIndex:t-1};let i=Gh(r,s=>s.headerStartPos<e.headerStartPos);return i?{page:i,segmentIndex:i.lacingValues.length-1}:null};var qt=class{},io=class extends qt{async _getMajorBrand(e){if(await e._mainReader.source.getSize()<12)return null;let i=new Mi(e._mainReader);return i.pos=4,i.readAscii(4)!=="ftyp"?null:i.readAscii(4)}_createDemuxer(e){return new ru(e)}},cu=class extends io{async _canReadInput(e){let t=await this._getMajorBrand(e);return!!t&&t!=="qt "}get name(){return"MP4"}get mimeType(){return"video/mp4"}},uu=class extends io{async _canReadInput(e){return await this._getMajorBrand(e)==="qt "}get name(){return"QuickTime File Format"}get mimeType(){return"video/quicktime"}},so=class extends qt{async isSupportedEBMLOfDocType(e,t){if(await e._mainReader.source.getSize()<8)return!1;let s=new Ei(e._mainReader),n=s.readVarIntSize();if(n<1||n>8||s.readUnsignedInt(n)!==I.EBML)return!1;let a=s.readElementSize();if(a===null)return!1;let c=s.pos;for(;s.pos<c+a;){let{id:u,size:l}=s.readElementHeader(),h=s.pos;if(l===null)return!1;switch(u){case I.EBMLVersion:if(s.readUnsignedInt(l)!==1)return!1;break;case I.EBMLReadVersion:if(s.readUnsignedInt(l)!==1)return!1;break;case I.DocType:if(s.readString(l)!==t)return!1;break;case I.DocTypeVersion:if(s.readUnsignedInt(l)>4)return!1;break}s.pos=h+l}return!0}_canReadInput(e){return this.isSupportedEBMLOfDocType(e,"matroska")}_createDemuxer(e){return new su(e)}get name(){return"Matroska"}get mimeType(){return"video/x-matroska"}},lu=class extends so{_canReadInput(e){return this.isSupportedEBMLOfDocType(e,"webm")}get name(){return"WebM"}get mimeType(){return"video/webm"}},hu=class extends qt{async _canReadInput(e){let t=await e._mainReader.source.getSize();if(t<4)return!1;let i=new vs(e._mainReader);i.fileSize=t;let s=i.readId3();s&&(i.pos+=s.size);let n=i.pos;await i.reader.loadRange(i.pos,i.pos+4096);let o=i.readNextFrameHeader(Math.min(n+4096,t));if(!o)return!1;if(s)return!0;i.pos=o.startPos+o.totalSize,await i.reader.loadRange(i.pos,i.pos+4);let a=i.readNextFrameHeader(i.pos+4);return!(!a||o.channel!==a.channel||o.sampleRate!==a.sampleRate)}_createDemuxer(e){return new ou(e)}get name(){return"MP3"}get mimeType(){return"audio/mpeg"}},du=class extends qt{async _canReadInput(e){if(await e._mainReader.source.getSize()<12)return!1;let i=new Ri(e._mainReader),s=i.readAscii(4);return s!=="RIFF"&&s!=="RIFX"?!1:(i.pos=8,i.readAscii(4)==="WAVE")}_createDemuxer(e){return new eu(e)}get name(){return"WAVE"}get mimeType(){return"audio/wav"}},fu=class extends qt{async _canReadInput(e){return await e._mainReader.source.getSize()<4?!1:new ms(e._mainReader).readAscii(4)==="OggS"}_createDemuxer(e){return new au(e)}get name(){return"Ogg"}get mimeType(){return"application/ogg"}},o0=new cu,a0=new uu,c0=new so,u0=new lu,l0=new hu,h0=new du,d0=new fu,yd=[o0,a0,c0,u0,h0,d0,l0];var no=class{constructor(e){if(this._demuxerPromise=null,this._format=null,!e||typeof e!="object")throw new TypeError("options must be an object.");if(!Array.isArray(e.formats)||e.formats.some(t=>!(t instanceof qt)))throw new TypeError("options.formats must be an array of InputFormat.");if(!(e.source instanceof Di))throw new TypeError("options.source must be a Source.");this._formats=e.formats,this._source=e.source,this._mainReader=new Et(e.source)}_getDemuxer(){return this._demuxerPromise??=(async()=>{await this._mainReader.loadRange(0,4096);for(let e of this._formats)if(await e._canReadInput(this))return this._format=e,e._createDemuxer(this);throw new Error("Input has an unsupported or unrecognizable format.")})()}get source(){return this._source}async getFormat(){return await this._getDemuxer(),w(this._format),this._format}async computeDuration(){return(await this._getDemuxer()).computeDuration()}async getTracks(){return(await this._getDemuxer()).getTracks()}async getVideoTracks(){return(await this.getTracks()).filter(t=>t.isVideoTrack())}async getPrimaryVideoTrack(){return(await this.getTracks()).find(t=>t.isVideoTrack())??null}async getAudioTracks(){return(await this.getTracks()).filter(t=>t.isAudioTrack())}async getPrimaryAudioTrack(){return(await this.getTracks()).find(t=>t.isAudioTrack())??null}async getMimeType(){return(await this._getDemuxer()).getMimeType()}};B();var fS={extension:{type:b.Environment,name:"browser",priority:-1},test:()=>!0,load:async()=>{await Promise.resolve().then(()=>(dS(),QB))}};B();var pS={extension:{type:b.Environment,name:"webworker",priority:0},test:()=>typeof self<"u"&&self.WorkerGlobalScope!==void 0,load:async()=>{await Promise.resolve().then(()=>(mS(),ZB))}};B();Hu();Uu();Ce();ra();var Ol;function SS(r){return Ol!==void 0||(Ol=(()=>{let e={stencil:!0,failIfMajorPerformanceCaveat:r??ti.defaultOptions.failIfMajorPerformanceCaveat};try{if(!W.get().getWebGLRenderingContext())return!1;let i=W.get().createCanvas().getContext("webgl",e),s=!!i?.getContextAttributes()?.stencil;if(i){let n=i.getExtension("WEBGL_lose_context");n&&n.loseContext()}return i=null,s}catch{return!1}})()),Ol}Ce();var Gl;async function vS(r={}){return Gl!==void 0||(Gl=await(async()=>{let e=W.get().getNavigator().gpu;if(!e)return!1;try{return await(await e.requestAdapter(r)).requestDevice(),!0}catch{return!1}})()),Gl}ra();var LC=["webgl","webgpu","canvas"];async function eg(r){let e=[];r.preference?(e.push(r.preference),LC.forEach(n=>{n!==r.preference&&e.push(n)})):e=LC.slice();let t,i={};for(let n=0;n<e.length;n++){let o=e[n];if(o==="webgpu"&&await vS()){let{WebGPURenderer:a}=await Promise.resolve().then(()=>(d1(),h1));t=a,i={...r,...r.webgpu};break}else if(o==="webgl"&&SS(r.failIfMajorPerformanceCaveat??ti.defaultOptions.failIfMajorPerformanceCaveat)){let{WebGLRenderer:a}=await Promise.resolve().then(()=>(NC(),GC));t=a,i={...r,...r.webgl};break}else if(o==="canvas")throw i={...r},new Error("CanvasRenderer is not yet implemented")}if(delete i.webgpu,delete i.webgl,!t)throw new Error("No available renderer for the current environment");let s=new t;return await s.init(i),s}var FE=Ch(IE(),1),gg={createCanvas:(r,e)=>new OffscreenCanvas(r??0,e??0),getCanvasRenderingContext2D:()=>OffscreenCanvasRenderingContext2D,getWebGLRenderingContext:()=>WebGLRenderingContext,getNavigator:()=>navigator,getBaseUrl:()=>globalThis.location.href,getFontFaceSet:()=>globalThis.fonts,fetch:(r,e)=>fetch(r,e),parseXML:r=>new FE.DOMParser().parseFromString(r,"text/xml")};Ui();xu();ye();Fu();var yh=class extends qr{constructor(e,t){let{text:i,resolution:s,style:n,anchor:o,width:a,height:c,roundPixels:u,...l}=e;super({...l}),this.batched=!0,this._resolution=null,this._autoResolution=!0,this._didTextUpdate=!0,this._styleClass=t,this.text=i??"",this.style=n,this.resolution=s??null,this.allowChildren=!1,this._anchor=new We({_onUpdate:()=>{this.onViewUpdate()}}),o&&(this.anchor=o),this.roundPixels=u??!1,a!==void 0&&(this.width=a),c!==void 0&&(this.height=c)}get anchor(){return this._anchor}set anchor(e){typeof e=="number"?this._anchor.set(e):this._anchor.copyFrom(e)}set text(e){e=e.toString(),this._text!==e&&(this._text=e,this.onViewUpdate())}get text(){return this._text}set resolution(e){this._autoResolution=e===null,this._resolution=e,this.onViewUpdate()}get resolution(){return this._resolution}get style(){return this._style}set style(e){e||(e={}),this._style?.off("update",this.onViewUpdate,this),e instanceof this._styleClass?this._style=e:this._style=new this._styleClass(e),this._style.on("update",this.onViewUpdate,this),this.onViewUpdate()}get width(){return Math.abs(this.scale.x)*this.bounds.width}set width(e){this._setWidth(e,this.bounds.width)}get height(){return Math.abs(this.scale.y)*this.bounds.height}set height(e){this._setHeight(e,this.bounds.height)}getSize(e){return e||(e={}),e.width=Math.abs(this.scale.x)*this.bounds.width,e.height=Math.abs(this.scale.y)*this.bounds.height,e}setSize(e,t){typeof e=="object"?(t=e.height??e.width,e=e.width):t??(t=e),e!==void 0&&this._setWidth(e,this.bounds.width),t!==void 0&&this._setHeight(t,this.bounds.height)}containsPoint(e){let t=this.bounds.width,i=this.bounds.height,s=-t*this.anchor.x,n=0;return e.x>=s&&e.x<=s+t&&(n=-i*this.anchor.y,e.y>=n&&e.y<=n+i)}onViewUpdate(){this.didViewUpdate||(this._didTextUpdate=!0),super.onViewUpdate()}destroy(e=!1){super.destroy(e),this.owner=null,this._bounds=null,this._anchor=null,(typeof e=="boolean"?e:e?.style)&&this._style.destroy(e),this._style=null,this._text=null}};function UE(r,e){let t=r[0]??{};return(typeof t=="string"||r[1])&&(z($,`use new ${e}({ text: "hi!", style }) instead`),t={text:t,style:r[1]}),t}Om();sn();tn();var lc=class extends yh{constructor(...e){let t=UE(e,"Text");super(t,ht),this.renderPipeId="text",t.textureStyle&&(this.textureStyle=t.textureStyle instanceof et?t.textureStyle:new et(t.textureStyle))}updateBounds(){let e=this._bounds,t=this._anchor,i=0,s=0;if(this._style.trim){let{frame:n,canvasAndContext:o}=Ji.getCanvasAndContext({text:this.text,style:this._style,resolution:1});Ji.returnCanvasAndContext(o),i=n.width,s=n.height}else{let n=Xe.measureText(this._text,this._style);i=n.width,s=n.height}e.minX=-t._x*i,e.maxX=e.minX+i,e.minY=-t._y*s,e.maxY=e.minY+s}};Ce();le();Tf();jt();Gu();Ve();O.add(fS,pS);W.set(gg);var OE=Pc.work(({host:r},e)=>({async hello(){await r.world()},async decode({source:t,video:i,audio:s}){let n=async()=>{if(t instanceof FileSystemFileHandle){let d=await t.getFile();return new to(d)}else return new ro(t)},o=new no({source:await n(),formats:yd}),[a,c]=await Promise.all([o.getPrimaryVideoTrack(),o.getPrimaryAudioTrack()]),u=await a?.canDecode(),l=await c?.canDecode(),h=i.getWriter(),f=s.getWriter();await Promise.all([(async()=>{if(u&&a){let d=new Xn(a);for await(let m of d.samples()){let x=m.toVideoFrame();await h.write(x),m.close(),x.close()}await h.close()}})(),(async()=>{if(l&&c){let d=new Yn(c);for await(let m of d.samples()){let x=m.toAudioData();await f.write(x),m.close(),x.close()}await f.close()}})()])},async encode({readables:t,config:i,bridge:s}){let n=new eo({format:new ys,target:new Vn(s,{chunked:!0})}),o=new Qn(i.video);n.addVideoTrack(o);let a=new Zn(i.audio);n.addAudioTrack(a),await n.start();let c=t.video.getReader(),u=t.audio.getReader();await Promise.all([(async()=>{for(;;){let{done:l,value:h}=await c.read();if(l)break;let f=new $t(h);await o.add(f),f.close()}})(),(async()=>{for(;;){let{done:l,value:h}=await u.read();if(l)break;let f=new Mt(h);await a.add(f),f.close(),h.close()}})()]),await n.finalize()},async composite(t){let{stage:i,renderer:s}=await oD(1920,1080);i.removeChildren();let{baseFrame:n,disposables:o}=await GE(t,i);s.render(i);let a=new VideoFrame(s.canvas,{timestamp:n?.timestamp,duration:n?.duration??void 0});n?.close(),s.clear();for(let c of o)c.destroy(!0);return e.transfer=[a],a}})),Th=null;async function oD(r,e){if(Th)return Th;let t=await eg({width:r,height:e,preference:"webgl",background:"black",preferWebGLVersion:2}),i=new we;return Th={renderer:t,stage:i},Th}async function GE(r,e,t=[]){if(Array.isArray(r)){let i;for(let s of r){let n=await GE(s,e,t);i??=n.baseFrame}return{baseFrame:i,disposables:t}}if(!aD(r))return console.warn("Invalid layer",r),{disposables:t};switch(r.kind){case"text":return cD(r,e,t);case"image":return uD(r,e,t);default:return console.warn("Unknown layer kind",r.kind),{disposables:t}}}function aD(r){return!!r&&typeof r=="object"&&typeof r.kind=="string"}function cD(r,e,t){let i=new lc({text:r.content,style:{fontFamily:"sans-serif",fontSize:r.fontSize??48,fill:r.color??"white"}});return NE(i,r),e.addChild(i),t.push(i),{disposables:t}}function uD(r,e,t){let i=M.from(r.frame),s=new Kt(i);return NE(s,r),e.addChild(s),t.push(s,i),{baseFrame:r.frame,disposables:t}}function NE(r,e={}){e.x&&(r.x=e.x),e.y&&(r.y=e.y),e.scale&&r.scale.set(e.scale),e.opacity&&(r.alpha=e.opacity),e.anchor&&"anchor"in r&&r.anchor.set(e.anchor)}await Pc.worker(OE);
1099
+ `)});var bc=()=>({stdout:async r=>console.log(r),stderr:async r=>console.error(r)});var Cg=()=>Bh()?xc():Rh()?_c():bc();var Eg=()=>({stdout:async()=>{},stderr:async()=>{}});function kg(){return()=>({stdout:r=>r,stderr:r=>r})}var rs=class r{static writers={auto:Cg,void:Eg,deno:xc,node:_c,console:bc};static colors={auto:Dh,colorful:()=>Rn,colorless:()=>Bn};static themes={auto:Tg,basic:fc};static shapers={auto:vg,none:kg,errors:pc,timestamp:gc};writer=r.writers.auto();colors=r.colors.auto();theme=r.themes.auto();shaper=r.shapers.auto();async log(...e){await this.writer.stdout(this.shaper(this).stdout(e).join(" "))}async error(...e){await this.writer.stderr(this.shaper(this).stderr(e).join(" "))}setWriter(e){return this.writer=e,this}setColors(e){return this.colors=e,this}setTheme(e){return this.theme=e,this}setShaper(...e){return this.shaper=Dn(...e),this}};var Mn=class extends rs{static dummy(){return new this().setWriter(rs.writers.void())}rpcRequest=async({request:e,...t})=>{let i=this.colors.none;this.log(...this.#e(t),i(`${e.method}()`))};rpcError=async({request:e,error:t,...i})=>{this.error(...this.#e(i),`${e.method}()`,t)};#e({meta:e,label:t,remote:i}){let s=this.colors.mix(this.colors.blue,this.colors.dim),n=this.colors.mix(this.colors.cyan,this.colors.dim);return[e?this.#t(e):void 0,t||void 0,i===void 0?void 0:i?s("<-"):n("->")].filter(Boolean)}#t(e){let{headers:t}=e.request;return[this.colors.yellow(`[${e.ip}]`),this.colors.green(t.origin?t.origin:"(no-origin)")].join(" ")}};var zt=class extends Mn{rpcRequest=async()=>{}};var Vt=Object.freeze({eq(r,e){if(r.length!==e.length)return!1;for(let t=0;t<=r.length;t++)if(r.at(t)!==e.at(t))return!1;return!0},random(r){return crypto.getRandomValues(new Uint8Array(r))}});var di=Object.freeze({fromBytes(r){return[...r].map(e=>e.toString(16).padStart(2,"0")).join("")},toBytes(r){if(r.length%2!==0)throw new Error("must have even number of hex characters");let e=new Uint8Array(r.length/2);for(let t=0;t<r.length;t+=2)e[t/2]=parseInt(r.slice(t,t+2),16);return e},random(r=32){return this.fromBytes(Vt.random(r))},string(r){return di.fromBytes(r)},bytes(r){return di.toBytes(r)}});var Mh=58,yc="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",Ih=Object.freeze({fromBytes(r){let e=BigInt("0x"+di.fromBytes(r)),t="";for(;e>0;){let i=e%BigInt(Mh);e=e/BigInt(Mh),t=yc[Number(i)]+t}for(let i of r)if(i===0)t=yc[0]+t;else break;return t},toBytes(r){let e=BigInt(0);for(let o of r){let a=yc.indexOf(o);if(a===-1)throw new Error(`Invalid character '${o}' in base58 string`);e=e*BigInt(Mh)+BigInt(a)}let t=e.toString(16);t.length%2!==0&&(t="0"+t);let i=di.toBytes(t),s=0;for(let o of r)if(o===yc[0])s++;else break;let n=new Uint8Array(s+i.length);return n.set(i,s),n},random(r=32){return this.fromBytes(Vt.random(r))},string(r){return Ih.fromBytes(r)},bytes(r){return Ih.toBytes(r)}});var Ag=class{lexicon;static lexicons=Object.freeze({base2:{characters:"01"},hex:{characters:"0123456789abcdef"},base36:{characters:"0123456789abcdefghijklmnopqrstuvwxyz"},base58:{characters:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"},base62:{characters:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"},base64url:{negativePrefix:"~",characters:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"},base64:{characters:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",padding:{character:"=",size:4}}});lookup;negativePrefix;constructor(e){this.lexicon=e,this.lookup=Object.fromEntries([...e.characters].map((t,i)=>[t,i])),this.negativePrefix=e.negativePrefix??"-"}toBytes(e){let t=Math.log2(this.lexicon.characters.length);if(Number.isInteger(t)){let a=0,c=0,u=[];for(let l of e){if(l===this.lexicon.padding?.character)continue;let h=this.lookup[l];if(h===void 0)throw new Error(`Invalid character: ${l}`);for(a=a<<t|h,c+=t;c>=8;)c-=8,u.push(a>>c&255)}return new Uint8Array(u)}let i=0n,s=BigInt(this.lexicon.characters.length),n=!1;e.startsWith(this.negativePrefix)&&(e=e.slice(this.negativePrefix.length),n=!0);for(let a of e){let c=this.lookup[a];if(c===void 0)throw new Error(`Invalid character: ${a}`);i=i*s+BigInt(c)}let o=[];for(;i>0n;)o.unshift(Number(i%256n)),i=i/256n;return new Uint8Array(o)}fromBytes(e){let t=Math.log2(this.lexicon.characters.length);if(Number.isInteger(t)){let o=0,a=0,c="";for(let u of e)for(o=o<<8|u,a+=8;a>=t;){a-=t;let l=o>>a&(1<<t)-1;c+=this.lexicon.characters[l]}if(a>0){let u=o<<t-a&(1<<t)-1;c+=this.lexicon.characters[u]}if(this.lexicon.padding)for(;c.length%this.lexicon.padding.size!==0;)c+=this.lexicon.padding.character;return c}let i=0n;for(let o of e)i=(i<<8n)+BigInt(o);if(i===0n)return this.lexicon.characters[0];let s=BigInt(this.lexicon.characters.length),n="";for(;i>0n;)n=this.lexicon.characters[Number(i%s)]+n,i=i/s;return n}toInteger(e){if(!e)return 0;let t=0n,i=!1,s=BigInt(this.lexicon.characters.length);e.startsWith(this.negativePrefix)&&(e=e.slice(this.negativePrefix.length),i=!0);for(let n of e){let o=this.lookup[n];if(o===void 0)throw new Error(`Invalid character: ${n}`);t=t*s+BigInt(o)}return Number(i?-t:t)}fromInteger(e){e=Math.floor(e);let t=e<0,i=BigInt(t?-e:e);if(i===0n)return this.lexicon.characters[0];let s=BigInt(this.lexicon.characters.length),n="";for(;i>0n;)n=this.lexicon.characters[Number(i%s)]+n,i=i/s;return t?`${this.negativePrefix}${n}`:n}random(e=32){return this.fromBytes(Vt.random(e))}};var Fh=Object.freeze({fromBytes(r){return typeof btoa=="function"?btoa(String.fromCharCode(...r)):Buffer.from(r).toString("base64")},toBytes(r){return typeof atob=="function"?Uint8Array.from(atob(r),e=>e.charCodeAt(0)):Uint8Array.from(Buffer.from(r,"base64"))},random(r=32){return this.fromBytes(Vt.random(r))},string(r){return Fh.fromBytes(r)},bytes(r){return Fh.toBytes(r)}});var Pg=Object.freeze({fromBytes(r){return new TextDecoder().decode(r)},toBytes(r){return new TextEncoder().encode(r)},string(r){return Pg.fromBytes(r)},bytes(r){return Pg.toBytes(r)}});var Tc=Object.freeze({set:r=>r!=null,unset:r=>r==null,boolean:r=>typeof r=="boolean",number:r=>typeof r=="number",string:r=>typeof r=="string",bigint:r=>typeof r=="bigint",object:r=>typeof r=="object"&&r!==null,array:r=>Array.isArray(r),fn:r=>typeof r=="function",symbol:r=>typeof r=="symbol"});var In=class extends Error{milliseconds;name=this.constructor.name;constructor(e){super(`deadline exceeded (${(e/1e3).toFixed(1)} seconds)`),this.milliseconds=e}};function wc(r,e){return r<=0||r===1/0?e():new Promise((t,i)=>{let s=setTimeout(()=>i(new In(r)),r);e().then(t).catch(i).finally(()=>clearTimeout(s))})}function Dt(){let r,e,t=new Promise((s,n)=>{r=s,e=n});function i(s){return s.then(r).catch(e),t}return{promise:t,resolve:r,reject:e,entangle:i}}function Bg(r,e){let t=r;for(let i of e)if(t=t[i],Tc.unset(t))break;return t}function ik(r){return{map:e=>Rg(r,e),filter:e=>Dg(r,e)}}ik.pipe=Object.freeze({map:r=>e=>Rg(e,r),filter:r=>e=>Dg(e,r)});var Rg=(r,e)=>Object.fromEntries(Object.entries(r).map(([t,i])=>[t,e(i,t)])),Dg=(r,e)=>Object.fromEntries(Object.entries(r).filter(([t,i])=>e(i,t)));function sk(){let r=new Set;function e(n){return r.add(n),()=>{r.delete(n)}}async function t(...n){await Promise.all([...r].map(o=>o(...n)))}async function i(){let{promise:n,resolve:o}=Dt(),a=e((...c)=>{o(c),a()});return n}function s(){r.clear()}return e.pub=t,e.sub=e,e.on=e,e.next=i,e.clear=s,t.pub=t,t.sub=e,t.on=e,t.next=i,t.clear=s,[t,e]}function Sc(r){let e=sk()[0];return r&&e.sub(r),e}var dr=class{#e=[];add(...e){return this.#e.push(...e),this}disposable(e){return this.bag(e,()=>e.dispose())}bag(e,t){return this.add(()=>t(e)),e}dispose(){for(let e of this.#e.reverse())e();this.#e=[]}};var Nr;(function(r){r.version="2.0";function e(t){return"id"in t?t.id:null}r.getId=e,r.errorCodes={serverError:-32e3,unexposedError:-32001}})(Nr||(Nr={}));var vc=class extends Error{name=this.constructor.name},fi=class extends Error{name=this.constructor.name};async function Mg({tap:r,request:e,action:t}){let i=Nr.getId(e);try{let s=await t();return i===null?null:{id:i,result:s,jsonrpc:Nr.version}}catch(s){return r.rpcError({request:e,error:s}),i===null?null:{id:i,jsonrpc:Nr.version,error:s instanceof vc?{code:Nr.errorCodes.serverError,message:s.message}:{code:Nr.errorCodes.unexposedError,message:"unexposed error"}}}}function Cc(r){let e=r.tap??new zt;return async t=>{let i=t.method.split("."),s=Bg(r.fns,i),n=async()=>await s(...t.params);return e.rpcRequest({request:t}),await Mg({tap:e,request:t,action:n})}}var Ig=Symbol("tune"),nk=Symbol("query"),ok=Symbol("notify"),ak=Symbol("settings");function Fg(r){function e(t){let i={notify:void 0};return new Proxy(()=>{},{apply:(s,n,o)=>r(t,o,i),get:(s,n)=>{if(n!=="then")return n===Ig?o=>(...a)=>r(t,a,{...i,...o}):n===ok?(...o)=>r(t,o,{...i,notify:!0}):n===nk?(...o)=>r(t,o,{...i,notify:!1}):n===ak?i:(s[n]||(s[n]=e([...t,n])),s[n])},set:(s,n,o)=>(s[n]=o,!0)})}return e([])}function mi(r){let{endpoint:e,tap:t=new zt}=r,i=1;return Fg(async(s,n,o)=>{let a=o.notify??r.notify??!1,c=o.transfer,u={jsonrpc:"2.0",method:s.join("."),params:n},l=a?u:{...u,id:i++};t.rpcRequest({request:l});let h=await e(l,{transfer:c});if(a&&!h)return null;if(!h)throw new fi("response was null, but shouldn't be, because the request was not a notification");if("error"in h)throw new fi(r.label?`${r.label}: ${h.error.message}`:h.error.message);return h.result})}function Fn(r){return mi({endpoint:Cc(r),tap:r.tap})}var pi=class{recv=Sc();sendRequest=Sc();sendResponse=Sc();static makeEntangledPair({origin:e="example.e280.org"}={}){let t=new this,i=new this,s=[t.sendRequest.sub(o=>i.recv(o,{origin:e})),t.sendResponse.sub(o=>i.recv(o,{origin:e})),i.sendRequest.sub(o=>t.recv(o,{origin:e})),i.sendResponse.sub(o=>t.recv(o,{origin:e}))];return[t,i,()=>s.forEach(o=>o())]}};function Ec(r,e){return r.addEventListener("message",e),()=>r.removeEventListener("message",e)}function Ug(r,e){return async(t,{transfer:i}={})=>{if("id"in t){let s=Dt();return e(t,i,s.promise),r.wait(t.id,t.method).then(n=>(s.resolve(n),n))}else{let s=Promise.resolve(null);return e(t,i,s),s}}}function Og(r){let e=[],t=[];for(let i of Array.isArray(r)?r:[r])"method"in i?e.push(i):t.push(i);return{requests:e,responses:t}}async function Gg(r,e){let t=(await Promise.all(e.map(async i=>r(i)))).filter(i=>i!==null);return t.length===0?null:t.length===1?t[0]:t}var is=class extends pi{#e=new dr;constructor(e){super(),this.#e.add(this.sendRequest.sub((t,i)=>e.postMessage(t,i)),this.sendResponse.sub((t,i)=>e.postMessage(t,i)),Ec(e,t=>this.recv(t.data,t)))}dispose(){this.#e.dispose()}};var kc=class{remote;transfer;constructor(e){this.remote=e}};var Uh=Object.freeze({timeout:6e4,maxRequestBytes:1e7});var Ac=class{timeout;pending=new Map;constructor(e){this.timeout=e}async wait(e,t){let i=Dt();return this.pending.set(e,{method:t,deferred:i}),await wc(this.timeout,()=>i.promise).catch(s=>{throw s instanceof In&&(s.message=`request #${e} ${t}(), ${s.message}`),s})}deliverResponse(e){let t=this.pending.get(e.id);t&&("error"in e?t.deferred.reject(new fi(e.error.message)):t.deferred.resolve(e))}};var gi=class{options;remote;remoteEndpoint;#e;#t=new dr;constructor(e){this.options=e;let{conduit:t,tap:i}=e;this.#e=new Ac(e.timeout??Uh.timeout),this.remoteEndpoint=Ug(this.#e,t.sendRequest.pub.bind(t.sendRequest)),this.remote=mi({endpoint:this.remoteEndpoint,tap:i&&Ph(i,{remote:!0})}),this.#t.add(t.recv.sub(s=>this.recv(s)))}async recv(e){let t=new kc(this.remote),{conduit:i,rpc:s,tap:n}=this.options,{requests:o,responses:a}=Og(e);for(let h of a)this.#e.deliverResponse(h);if(!s)return;let c=await s(t),u=Cc({fns:c,tap:n&&Ph(n,{remote:!1})}),l=await Gg(u,o);l&&await i.sendResponse(l,t.transfer)}dispose(){this.#t.dispose()}};var fr={derive:{host:r=>({host:r.remote.host,get transfer(){return r.transfer},set transfer(e){r.transfer=e}}),work:r=>({work:r.remote,get transfer(){return r.transfer},set transfer(e){r.transfer=e}})},mock:{host:()=>({host:void 0,transfer:void 0}),work:()=>({work:void 0,transfer:void 0})}};var mr=new zt;async function Ng(r,e,t={}){let i=t.tap??mr,s=new gi({tap:i,timeout:t.timeout??1/0,conduit:new is(r.getSelf()),rpc:async n=>e(fr.derive.host(n))});return await s.remote.infra.ready(),s.remote.host}var ss=class{worker;messenger;constructor(e,t){this.worker=e,this.messenger=t}static async make(e,t){let i=t.tap??mr,s=t.label??"comrade",n=e.loadWorker(t.workerUrl,s),o=Dt(),a={async ready(){o.resolve()}},c=new gi({tap:i,timeout:t.timeout??1/0,conduit:new is(n),rpc:async u=>({infra:a,host:t.setupHost(fr.derive.work(u))})});return await o.promise,new this(n,c)}get work(){return this.messenger.remote}terminate(){this.worker.terminate()}};var Pc=class{threads;static async make(e,t){let i=t.workerCount??e.guessOptimalThreadCount(),s=await Promise.all([...Array(i)].map(async(n,o)=>ss.make(e,{...t,label:t.label??`${t.label??"comrade"}_${o+1}`})));return new this(s,{tap:t.tap})}work;#e=new Set;#t=[];constructor(e,t={}){this.threads=e;let i=t.tap??mr,s=async(n,o)=>this.#i({request:n,prom:Dt(),transfer:o?.transfer});this.work=mi({tap:i,endpoint:s}),e.forEach(n=>this.#e.add(n))}get threadCount(){return this.threads.length}terminate(){for(let e of this.threads)e.terminate()}#i(e){return this.#t.push(e),this.#r(),e.prom.promise}#r(){for(;this.#e.size>0&&this.#t.length>0;){let e=[...this.#e].pop();this.#e.delete(e);let t=this.#t.shift();this.#e.delete(e);let i=e.messenger.remoteEndpoint(t.request,{transfer:t.transfer});t.prom.entangle(i).finally(()=>{this.#e.add(e),this.#r()})}}};var Lg=r=>({thread:e=>ss.make(r,e),cluster:e=>Pc.make(r,e),worker:(e,t={})=>Ng(r,e,t),work:e=>e,host:e=>e,mocks(e){let{setupWork:t,setupHost:i,tap:s=mr}=e,n=fr.mock.host(),o=fr.mock.work();return o.work=Fn({tap:s,fns:t(n)}),n.host=Fn({tap:s,fns:i(o)}),{workShell:o,hostShell:n,work:o.work,host:n.host}},mockWork(e,t=mr){let i=fr.mock.host(),s=fr.mock.work();return s.work=Fn({tap:t,fns:e(i)}),{workShell:s,hostShell:i,work:s.work,mockHost:n=>(i.host=Fn({tap:t,fns:n(s)}),{workShell:s,hostShell:i,work:s.work,host:i.host})}}});var zg=()=>({getSelf(){return self},guessOptimalThreadCount(){let r=navigator.hardwareConcurrency??1;return Math.max(1,r-1)},loadWorker(r,e){return new window.Worker(r,{name:e,type:"module"})},async loadWasm(r){return WebAssembly.instantiateStreaming(fetch(r))}});var hk=zg(),Bc=Lg(hk);P();var VT={extension:{type:b.Environment,name:"browser",priority:-1},test:()=>!0,load:async()=>{await Promise.resolve().then(()=>(zT(),wP))}};P();var WT={extension:{type:b.Environment,name:"webworker",priority:0},test:()=>typeof self<"u"&&self.WorkerGlobalScope!==void 0,load:async()=>{await Promise.resolve().then(()=>(HT(),SP))}};P();ou();Jc();ve();Do();var el;function ZT(r){return el!==void 0||(el=(()=>{let e={stencil:!0,failIfMajorPerformanceCaveat:r??Zr.defaultOptions.failIfMajorPerformanceCaveat};try{if(!W.get().getWebGLRenderingContext())return!1;let i=W.get().createCanvas().getContext("webgl",e),s=!!i?.getContextAttributes()?.stencil;if(i){let n=i.getExtension("WEBGL_lose_context");n&&n.loseContext()}return i=null,s}catch{return!1}})()),el}ve();var tl;async function JT(r={}){return tl!==void 0||(tl=await(async()=>{let e=W.get().getNavigator().gpu;if(!e)return!1;try{return await(await e.requestAdapter(r)).requestDevice(),!0}catch{return!1}})()),tl}Do();var p1=["webgl","webgpu","canvas"];async function gp(r){let e=[];r.preference?(e.push(r.preference),p1.forEach(n=>{n!==r.preference&&e.push(n)})):e=p1.slice();let t,i={};for(let n=0;n<e.length;n++){let o=e[n];if(o==="webgpu"&&await JT()){let{WebGPURenderer:a}=await Promise.resolve().then(()=>(zS(),LS));t=a,i={...r,...r.webgpu};break}else if(o==="webgl"&&ZT(r.failIfMajorPerformanceCaveat??Zr.defaultOptions.failIfMajorPerformanceCaveat)){let{WebGLRenderer:a}=await Promise.resolve().then(()=>(m1(),f1));t=a,i={...r,...r.webgl};break}else if(o==="canvas")throw i={...r},new Error("CanvasRenderer is not yet implemented")}if(delete i.webgpu,delete i.webgl,!t)throw new Error("No available renderer for the current environment");let s=new t;return await s.init(i),s}var lC=Ah(uC(),1),Dp={createCanvas:(r,e)=>new OffscreenCanvas(r??0,e??0),getCanvasRenderingContext2D:()=>OffscreenCanvasRenderingContext2D,getWebGLRenderingContext:()=>WebGLRenderingContext,getNavigator:()=>navigator,getBaseUrl:()=>globalThis.location.href,getFontFaceSet:()=>globalThis.fonts,fetch:(r,e)=>fetch(r,e),parseXML:r=>new lC.DOMParser().parseFromString(r,"text/xml")};bi();Ic();ye();Zc();var Ol=class extends Hr{constructor(e,t){let{text:i,resolution:s,style:n,anchor:o,width:a,height:c,roundPixels:u,...l}=e;super({...l}),this.batched=!0,this._resolution=null,this._autoResolution=!0,this._didTextUpdate=!0,this._styleClass=t,this.text=i??"",this.style=n,this.resolution=s??null,this.allowChildren=!1,this._anchor=new We({_onUpdate:()=>{this.onViewUpdate()}}),o&&(this.anchor=o),this.roundPixels=u??!1,a!==void 0&&(this.width=a),c!==void 0&&(this.height=c)}get anchor(){return this._anchor}set anchor(e){typeof e=="number"?this._anchor.set(e):this._anchor.copyFrom(e)}set text(e){e=e.toString(),this._text!==e&&(this._text=e,this.onViewUpdate())}get text(){return this._text}set resolution(e){this._autoResolution=e===null,this._resolution=e,this.onViewUpdate()}get resolution(){return this._resolution}get style(){return this._style}set style(e){e||(e={}),this._style?.off("update",this.onViewUpdate,this),e instanceof this._styleClass?this._style=e:this._style=new this._styleClass(e),this._style.on("update",this.onViewUpdate,this),this.onViewUpdate()}get width(){return Math.abs(this.scale.x)*this.bounds.width}set width(e){this._setWidth(e,this.bounds.width)}get height(){return Math.abs(this.scale.y)*this.bounds.height}set height(e){this._setHeight(e,this.bounds.height)}getSize(e){return e||(e={}),e.width=Math.abs(this.scale.x)*this.bounds.width,e.height=Math.abs(this.scale.y)*this.bounds.height,e}setSize(e,t){typeof e=="object"?(t=e.height??e.width,e=e.width):t??(t=e),e!==void 0&&this._setWidth(e,this.bounds.width),t!==void 0&&this._setHeight(t,this.bounds.height)}containsPoint(e){let t=this.bounds.width,i=this.bounds.height,s=-t*this.anchor.x,n=0;return e.x>=s&&e.x<=s+t&&(n=-i*this.anchor.y,e.y>=n&&e.y<=n+i)}onViewUpdate(){this.didViewUpdate||(this._didTextUpdate=!0),super.onViewUpdate()}destroy(e=!1){super.destroy(e),this.owner=null,this._bounds=null,this._anchor=null,(typeof e=="boolean"?e:e?.style)&&this._style.destroy(e),this._style=null,this._text=null}};function hC(r,e){let t=r[0]??{};return(typeof t=="string"||r[1])&&(z($,`use new ${e}({ text: "hi!", style }) instead`),t={text:t,style:r[1]}),t}Jf();Os();Fs();var La=class extends Ol{constructor(...e){let t=hC(e,"Text");super(t,lt),this.renderPipeId="text",t.textureStyle&&(this.textureStyle=t.textureStyle instanceof Je?t.textureStyle:new Je(t.textureStyle))}updateBounds(){let e=this._bounds,t=this._anchor,i=0,s=0;if(this._style.trim){let{frame:n,canvasAndContext:o}=Ui.getCanvasAndContext({text:this.text,style:this._style,resolution:1});Ui.returnCanvasAndContext(o),i=n.width,s=n.height}else{let n=Xe.measureText(this._text,this._style);i=n.width,s=n.height}e.minX=-t._x*i,e.maxX=e.minX+i,e.minY=-t._y*s,e.maxY=e.minY+s}};ve();le();Ud();Ht();tu();Ve();O.add(VT,WT);function w(r){if(!r)throw new Error("Assertion failed.")}var Gl=r=>{let e=(r%360+360)%360;if(e===0||e===90||e===180||e===270)return e;throw new Error(`Invalid rotation ${r}.`)},he=r=>r&&r[r.length-1],Ni=r=>r>=0&&r<2**32,$e=class r{constructor(e){this.bytes=e,this.pos=0}seekToByte(e){this.pos=8*e}readBit(){let e=Math.floor(this.pos/8),t=this.bytes[e]??0,i=7-(this.pos&7),s=(t&1<<i)>>i;return this.pos++,s}readBits(e){if(e===1)return this.readBit();let t=0;for(let i=0;i<e;i++)t<<=1,t|=this.readBit();return t}readAlignedByte(){if(this.pos%8!==0)throw new Error("Bitstream is not byte-aligned.");let e=this.pos/8,t=this.bytes[e]??0;return this.pos+=8,t}skipBits(e){this.pos+=e}getBitsLeft(){return this.bytes.length*8-this.pos}clone(){let e=new r(this.bytes);return e.pos=this.pos,e}},N=r=>{let e=0;for(;r.readBits(1)===0&&e<32;)e++;if(e>=32)throw new Error("Invalid exponential-Golomb code.");return(1<<e)-1+r.readBits(e)},an=r=>{let e=N(r);return(e&1)===0?-(e>>1):e+1>>1};var yt=r=>r instanceof Uint8Array?r:r instanceof ArrayBuffer?new Uint8Array(r):new Uint8Array(r.buffer,r.byteOffset,r.byteLength),At=r=>r instanceof DataView?r:r instanceof ArrayBuffer?new DataView(r):new DataView(r.buffer,r.byteOffset,r.byteLength),Li=new TextEncoder,Mp=r=>Object.fromEntries(Object.entries(r).map(([e,t])=>[t,e])),zi={bt709:1,bt470bg:5,smpte170m:6,bt2020:9,smpte432:12},Nl=Mp(zi),Vi={bt709:1,smpte170m:6,linear:8,"iec61966-2-1":13,pg:16,hlg:18},Ll=Mp(Vi),Hi={rgb:0,bt709:1,bt470bg:5,smpte170m:6,"bt2020-ncl":9},zl=Mp(Hi),dC=r=>!!r&&!!r.primaries&&!!r.transfer&&!!r.matrix&&r.fullRange!==void 0,cn=r=>r instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&r instanceof SharedArrayBuffer||ArrayBuffer.isView(r),kt=class{constructor(){this.currentPromise=Promise.resolve()}async acquire(){let e,t=new Promise(s=>{e=s}),i=this.currentPromise;return this.currentPromise=t,await i,e}},Ip=r=>[...r].map(e=>e.toString(16).padStart(2,"0")).join(""),Fp=r=>(r=r>>1&1431655765|(r&1431655765)<<1,r=r>>2&858993459|(r&858993459)<<2,r=r>>4&252645135|(r&252645135)<<4,r=r>>8&16711935|(r&16711935)<<8,r=r>>16&65535|(r&65535)<<16,r>>>0),Be=(r,e,t)=>{let i=0,s=r.length-1,n=-1;for(;i<=s;){let o=i+s>>1,a=t(r[o]);a===e?(n=o,s=o-1):a<e?i=o+1:s=o-1}return n},J=(r,e,t)=>{let i=0,s=r.length-1,n=-1;for(;i<=s;){let o=i+(s-i+1)/2|0;t(r[o])<=e?(n=o,i=o+1):s=o-1}return n},Ke=()=>{let r,e;return{promise:new Promise((i,s)=>{r=i,e=s}),resolve:r,reject:e}},fC=(r,e)=>{let t=r.indexOf(e);t!==-1&&r.splice(t,1)},Up=(r,e)=>{for(let t=r.length-1;t>=0;t--)if(e(r[t]))return r[t]},Vl=(r,e)=>{for(let t=r.length-1;t>=0;t--)if(e(r[t]))return t;return-1},mC=async function*(r){Symbol.iterator in r?yield*r[Symbol.iterator]():yield*r[Symbol.asyncIterator]()},pC=r=>{if(!(Symbol.iterator in r)&&!(Symbol.asyncIterator in r))throw new TypeError("Argument must be an iterable or async iterable.")},si=r=>{throw new Error(`Unexpected value: ${r}`)},Op=(r,e,t)=>{let i=r.getUint8(e),s=r.getUint8(e+1),n=r.getUint8(e+2);return t?i|s<<8|n<<16:i<<16|s<<8|n},gC=(r,e,t)=>Op(r,e,t)<<8>>8,Gp=(r,e,t,i)=>{t=t>>>0,t=t&16777215,i?(r.setUint8(e,t&255),r.setUint8(e+1,t>>>8&255),r.setUint8(e+2,t>>>16&255)):(r.setUint8(e,t>>>16&255),r.setUint8(e+1,t>>>8&255),r.setUint8(e+2,t&255))},xC=(r,e,t,i)=>{t=Qe(t,-8388608,8388607),t<0&&(t=t+16777216&16777215),Gp(r,e,t,i)};var Qe=(r,e,t)=>Math.max(e,Math.min(t,r)),mt="und",un=(r,e)=>{let t=10**e;return Math.round(r*t)/t},_C=(r,e)=>Math.round(r/e)*e,bC=r=>{let e=0;for(;r;)e++,r>>=1;return e},RB=/^[a-z]{3}$/,ln=r=>RB.test(r),ar=1e6*(1+Number.EPSILON),za=(r,e)=>{let t={...r};for(let i in e)typeof r[i]=="object"&&r[i]!==null&&typeof e[i]=="object"&&e[i]!==null?t[i]=za(r[i],e[i]):t[i]=e[i];return t},Hl=async(r,e,t)=>{let i=0;for(;;)try{return await fetch(r,e)}catch(s){i++;let n=t(i);if(n===null)throw s;if(console.error("Retrying failed fetch. Error:",s),!Number.isFinite(n)||n<0)throw new TypeError("Retry delay must be a non-negative finite number.");n>0&&await new Promise(o=>setTimeout(o,1e3*n))}},yC=(r,e)=>{let t=r<0?-1:1;r=Math.abs(r);let i=0,s=1,n=1,o=0,a=r;for(;;){let c=Math.floor(a),u=c*n+i,l=c*o+s;if(l>e)return{numerator:t*n,denominator:o};if(i=n,s=o,n=u,o=l,a=1/(a-c),!isFinite(a))break}return{numerator:t*n,denominator:o}},ii=class{constructor(){this.currentPromise=Promise.resolve()}call(e){return this.currentPromise=this.currentPromise.then(e)}};var Wl=[],$l=[],TC=[],wC=[];var Dr=["avc","hevc","vp9","av1","vp8"],Ie=["pcm-s16","pcm-s16be","pcm-s24","pcm-s24be","pcm-s32","pcm-s32be","pcm-f32","pcm-f32be","pcm-f64","pcm-f64be","pcm-u8","pcm-s8","ulaw","alaw"],Np=["aac","opus","mp3","vorbis","flac"],ni=[...Np,...Ie],hn=["webvtt"],SC=[{maxMacroblocks:99,maxBitrate:64e3,level:10},{maxMacroblocks:396,maxBitrate:192e3,level:11},{maxMacroblocks:396,maxBitrate:384e3,level:12},{maxMacroblocks:396,maxBitrate:768e3,level:13},{maxMacroblocks:396,maxBitrate:2e6,level:20},{maxMacroblocks:792,maxBitrate:4e6,level:21},{maxMacroblocks:1620,maxBitrate:4e6,level:22},{maxMacroblocks:1620,maxBitrate:1e7,level:30},{maxMacroblocks:3600,maxBitrate:14e6,level:31},{maxMacroblocks:5120,maxBitrate:2e7,level:32},{maxMacroblocks:8192,maxBitrate:2e7,level:40},{maxMacroblocks:8192,maxBitrate:5e7,level:41},{maxMacroblocks:8704,maxBitrate:5e7,level:42},{maxMacroblocks:22080,maxBitrate:135e6,level:50},{maxMacroblocks:36864,maxBitrate:24e7,level:51},{maxMacroblocks:36864,maxBitrate:24e7,level:52},{maxMacroblocks:139264,maxBitrate:24e7,level:60},{maxMacroblocks:139264,maxBitrate:48e7,level:61},{maxMacroblocks:139264,maxBitrate:8e8,level:62}],vC=[{maxPictureSize:36864,maxBitrate:128e3,tier:"L",level:30},{maxPictureSize:122880,maxBitrate:15e5,tier:"L",level:60},{maxPictureSize:245760,maxBitrate:3e6,tier:"L",level:63},{maxPictureSize:552960,maxBitrate:6e6,tier:"L",level:90},{maxPictureSize:983040,maxBitrate:1e7,tier:"L",level:93},{maxPictureSize:2228224,maxBitrate:12e6,tier:"L",level:120},{maxPictureSize:2228224,maxBitrate:3e7,tier:"H",level:120},{maxPictureSize:2228224,maxBitrate:2e7,tier:"L",level:123},{maxPictureSize:2228224,maxBitrate:5e7,tier:"H",level:123},{maxPictureSize:8912896,maxBitrate:25e6,tier:"L",level:150},{maxPictureSize:8912896,maxBitrate:1e8,tier:"H",level:150},{maxPictureSize:8912896,maxBitrate:4e7,tier:"L",level:153},{maxPictureSize:8912896,maxBitrate:16e7,tier:"H",level:153},{maxPictureSize:8912896,maxBitrate:6e7,tier:"L",level:156},{maxPictureSize:8912896,maxBitrate:24e7,tier:"H",level:156},{maxPictureSize:35651584,maxBitrate:6e7,tier:"L",level:180},{maxPictureSize:35651584,maxBitrate:24e7,tier:"H",level:180},{maxPictureSize:35651584,maxBitrate:12e7,tier:"L",level:183},{maxPictureSize:35651584,maxBitrate:48e7,tier:"H",level:183},{maxPictureSize:35651584,maxBitrate:24e7,tier:"L",level:186},{maxPictureSize:35651584,maxBitrate:8e8,tier:"H",level:186}],Rr=[{maxPictureSize:36864,maxBitrate:2e5,level:10},{maxPictureSize:73728,maxBitrate:8e5,level:11},{maxPictureSize:122880,maxBitrate:18e5,level:20},{maxPictureSize:245760,maxBitrate:36e5,level:21},{maxPictureSize:552960,maxBitrate:72e5,level:30},{maxPictureSize:983040,maxBitrate:12e6,level:31},{maxPictureSize:2228224,maxBitrate:18e6,level:40},{maxPictureSize:2228224,maxBitrate:3e7,level:41},{maxPictureSize:8912896,maxBitrate:6e7,level:50},{maxPictureSize:8912896,maxBitrate:12e7,level:51},{maxPictureSize:8912896,maxBitrate:18e7,level:52},{maxPictureSize:35651584,maxBitrate:18e7,level:60},{maxPictureSize:35651584,maxBitrate:24e7,level:61},{maxPictureSize:35651584,maxBitrate:48e7,level:62}],CC=[{maxPictureSize:147456,maxBitrate:15e5,tier:"M",level:0},{maxPictureSize:278784,maxBitrate:3e6,tier:"M",level:1},{maxPictureSize:665856,maxBitrate:6e6,tier:"M",level:4},{maxPictureSize:1065024,maxBitrate:1e7,tier:"M",level:5},{maxPictureSize:2359296,maxBitrate:12e6,tier:"M",level:8},{maxPictureSize:2359296,maxBitrate:3e7,tier:"H",level:8},{maxPictureSize:2359296,maxBitrate:2e7,tier:"M",level:9},{maxPictureSize:2359296,maxBitrate:5e7,tier:"H",level:9},{maxPictureSize:8912896,maxBitrate:3e7,tier:"M",level:12},{maxPictureSize:8912896,maxBitrate:1e8,tier:"H",level:12},{maxPictureSize:8912896,maxBitrate:4e7,tier:"M",level:13},{maxPictureSize:8912896,maxBitrate:16e7,tier:"H",level:13},{maxPictureSize:8912896,maxBitrate:6e7,tier:"M",level:14},{maxPictureSize:8912896,maxBitrate:24e7,tier:"H",level:14},{maxPictureSize:35651584,maxBitrate:6e7,tier:"M",level:15},{maxPictureSize:35651584,maxBitrate:24e7,tier:"H",level:15},{maxPictureSize:35651584,maxBitrate:6e7,tier:"M",level:16},{maxPictureSize:35651584,maxBitrate:24e7,tier:"H",level:16},{maxPictureSize:35651584,maxBitrate:1e8,tier:"M",level:17},{maxPictureSize:35651584,maxBitrate:48e7,tier:"H",level:17},{maxPictureSize:35651584,maxBitrate:16e7,tier:"M",level:18},{maxPictureSize:35651584,maxBitrate:8e8,tier:"H",level:18},{maxPictureSize:35651584,maxBitrate:16e7,tier:"M",level:19},{maxPictureSize:35651584,maxBitrate:8e8,tier:"H",level:19}],EC=".01.01.01.01.00",kC=".0.110.01.01.01.0",AC=(r,e,t,i)=>{if(r==="avc"){let n=Math.ceil(e/16)*Math.ceil(t/16),o=SC.find(h=>n<=h.maxMacroblocks&&i<=h.maxBitrate)??he(SC),a=o?o.level:0,c="64".padStart(2,"0"),u="00",l=a.toString(16).padStart(2,"0");return`avc1.${c}${u}${l}`}else if(r==="hevc"){let a=e*t,c=vC.find(l=>a<=l.maxPictureSize&&i<=l.maxBitrate)??he(vC);return`hev1.1.6.${c.tier}${c.level}.B0`}else{if(r==="vp8")return"vp8";if(r==="vp9"){let n=e*t;return`vp09.00.${(Rr.find(c=>n<=c.maxPictureSize&&i<=c.maxBitrate)??he(Rr)).level.toString().padStart(2,"0")}.08`}else if(r==="av1"){let n=e*t,o=CC.find(u=>n<=u.maxPictureSize&&i<=u.maxBitrate)??he(CC);return`av01.0.${o.level.toString().padStart(2,"0")}${o.tier}.08`}}throw new TypeError(`Unhandled codec '${r}'.`)};var PC=r=>{let e=r.split("."),s=(1<<7)+1,n=Number(e[1]),o=e[2],a=Number(o.slice(0,-1)),c=(n<<5)+a,u=o.slice(-1)==="H"?1:0,h=Number(e[3])===8?0:1,f=0,d=e[4]?Number(e[4]):0,m=e[5]?Number(e[5][0]):1,x=e[5]?Number(e[5][1]):1,g=e[5]?Number(e[5][2]):0,_=(u<<7)+(h<<6)+(f<<5)+(d<<4)+(m<<3)+(x<<2)+g;return[s,c,_,0]},ql=r=>{let{codec:e,codecDescription:t,colorSpace:i,avcCodecInfo:s,hevcCodecInfo:n,vp9CodecInfo:o,av1CodecInfo:a}=r;if(e==="avc"){if(s){let c=new Uint8Array([s.avcProfileIndication,s.profileCompatibility,s.avcLevelIndication]);return`avc1.${Ip(c)}`}if(!t||t.byteLength<4)throw new TypeError("AVC decoder description is not provided or is not at least 4 bytes long.");return`avc1.${Ip(t.subarray(1,4))}`}else if(e==="hevc"){let c,u,l,h,f,d;if(n)c=n.generalProfileSpace,u=n.generalProfileIdc,l=Fp(n.generalProfileCompatibilityFlags),h=n.generalTierFlag,f=n.generalLevelIdc,d=[...n.generalConstraintIndicatorFlags];else{if(!t||t.byteLength<23)throw new TypeError("HEVC decoder description is not provided or is not at least 23 bytes long.");let x=At(t),g=x.getUint8(1);c=g>>6&3,u=g&31,l=Fp(x.getUint32(2)),h=g>>5&1,f=x.getUint8(12),d=[];for(let _=0;_<6;_++)d.push(x.getUint8(6+_))}let m="hev1.";for(m+=["","A","B","C"][c]+u,m+=".",m+=l.toString(16).toUpperCase(),m+=".",m+=h===0?"L":"H",m+=f;d.length>0&&d[d.length-1]===0;)d.pop();return d.length>0&&(m+=".",m+=d.map(x=>x.toString(16).toUpperCase()).join(".")),m}else{if(e==="vp8")return"vp8";if(e==="vp9"){if(!o){let _=r.width*r.height,y=he(Rr).level;for(let S of Rr)if(_<=S.maxPictureSize){y=S.level;break}return`vp09.00.${y.toString().padStart(2,"0")}.08`}let c=o.profile.toString().padStart(2,"0"),u=o.level.toString().padStart(2,"0"),l=o.bitDepth.toString().padStart(2,"0"),h=o.chromaSubsampling.toString().padStart(2,"0"),f=o.colourPrimaries.toString().padStart(2,"0"),d=o.transferCharacteristics.toString().padStart(2,"0"),m=o.matrixCoefficients.toString().padStart(2,"0"),x=o.videoFullRangeFlag.toString().padStart(2,"0"),g=`vp09.${c}.${u}.${l}.${h}`;return g+=`.${f}.${d}.${m}.${x}`,g.endsWith(EC)&&(g=g.slice(0,-EC.length)),g}else if(e==="av1"){if(!a){let S=r.width*r.height,T=he(Rr).level;for(let C of Rr)if(S<=C.maxPictureSize){T=C.level;break}return`av01.0.${T.toString().padStart(2,"0")}M.08`}let c=a.profile,u=a.level.toString().padStart(2,"0"),l=a.tier?"H":"M",h=a.bitDepth.toString().padStart(2,"0"),f=a.monochrome?"1":"0",d=100*a.chromaSubsamplingX+10*a.chromaSubsamplingY+1*(a.chromaSubsamplingX&&a.chromaSubsamplingY?a.chromaSamplePosition:0),m=i?.primaries?zi[i.primaries]:1,x=i?.transfer?Vi[i.transfer]:1,g=i?.matrix?Hi[i.matrix]:1,_=i?.fullRange?1:0,y=`av01.${c}.${u}${l}.${h}`;return y+=`.${f}.${d.toString().padStart(3,"0")}`,y+=`.${m.toString().padStart(2,"0")}`,y+=`.${x.toString().padStart(2,"0")}`,y+=`.${g.toString().padStart(2,"0")}`,y+=`.${_}`,y.endsWith(kC)&&(y=y.slice(0,-kC.length)),y}}throw new TypeError(`Unhandled codec '${e}'.`)},BC=(r,e,t)=>{if(r==="aac")return e>=2&&t<=24e3?"mp4a.40.29":t<=24e3?"mp4a.40.5":"mp4a.40.2";if(r==="mp3")return"mp3";if(r==="opus")return"opus";if(r==="vorbis")return"vorbis";if(r==="flac")return"flac";if(Ie.includes(r))return r;throw new TypeError(`Unhandled codec '${r}'.`)},jl=r=>{let{codec:e,codecDescription:t,aacCodecInfo:i}=r;if(e==="aac"){if(!i)throw new TypeError("AAC codec info must be provided.");return i.isMpeg2?"mp4a.67":`mp4a.40.${Lp(t).objectType}`}else{if(e==="mp3")return"mp3";if(e==="opus")return"opus";if(e==="vorbis")return"vorbis";if(e==="flac")return"flac";if(e&&Ie.includes(e))return e}throw new TypeError(`Unhandled codec '${e}'.`)},Lp=r=>{if(!r||r.byteLength<2)throw new TypeError("AAC description must be at least 2 bytes long.");let e=new $e(r),t=e.readBits(5);t===31&&(t=32+e.readBits(6));let i=e.readBits(4),s=null;if(i===15)s=e.readBits(24);else{let a=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350];i<a.length&&(s=a[i])}let n=e.readBits(4),o=null;return n>=1&&n<=7&&(o={1:1,2:2,3:3,4:4,5:5,6:6,7:8}[n]),{objectType:t,frequencyIndex:i,sampleRate:s,channelConfiguration:n,numberOfChannels:o}},RC=48e3,DC=/^pcm-([usf])(\d+)+(be)?$/,Tt=r=>{if(w(Ie.includes(r)),r==="ulaw")return{dataType:"ulaw",sampleSize:1,littleEndian:!0,silentValue:255};if(r==="alaw")return{dataType:"alaw",sampleSize:1,littleEndian:!0,silentValue:213};let e=DC.exec(r);w(e);let t;e[1]==="u"?t="unsigned":e[1]==="s"?t="signed":t="float";let i=Number(e[2])/8,s=e[3]!=="be",n=r==="pcm-u8"?2**7:0;return{dataType:t,sampleSize:i,littleEndian:s,silentValue:n}},zp=r=>r.startsWith("avc1")||r.startsWith("avc3")?"avc":r.startsWith("hev1")||r.startsWith("hvc1")?"hevc":r==="vp8"?"vp8":r.startsWith("vp09")?"vp9":r.startsWith("av01")?"av1":r.startsWith("mp4a.40")||r==="mp4a.67"?"aac":r==="mp3"||r==="mp4a.69"||r==="mp4a.6B"||r==="mp4a.6b"?"mp3":r==="opus"?"opus":r==="vorbis"?"vorbis":r==="flac"?"flac":r==="ulaw"?"ulaw":r==="alaw"?"alaw":DC.test(r)?r:r==="webvtt"?"webvtt":null,MC=r=>r==="avc"?{avc:{format:"avc"}}:r==="hevc"?{hevc:{format:"hevc"}}:{},IC=r=>r==="aac"?{aac:{format:"aac"}}:r==="opus"?{opus:{format:"opus"}}:{},Pt=class{constructor(e){this._factor=e}_toVideoBitrate(e,t,i){let s=t*i,n={avc:1,hevc:.6,vp9:.6,av1:.4,vp8:1.2},o=1920*1080,a=3e6,c=Math.pow(s/o,.95),h=a*c*n[e]*this._factor;return Math.ceil(h/1e3)*1e3}_toAudioBitrate(e){if(Ie.includes(e)||e==="flac")return;let i={aac:128e3,opus:64e3,mp3:16e4,vorbis:64e3}[e];if(!i)throw new Error(`Unhandled codec: ${e}`);let s=i*this._factor;return e==="aac"?s=[96e3,128e3,16e4,192e3].reduce((o,a)=>Math.abs(a-s)<Math.abs(o-s)?a:o):e==="opus"||e==="vorbis"?s=Math.max(6e3,s):e==="mp3"&&(s=[8e3,16e3,24e3,32e3,4e4,48e3,64e3,8e4,96e3,112e3,128e3,16e4,192e3,224e3,256e3,32e4].reduce((o,a)=>Math.abs(a-s)<Math.abs(o-s)?a:o)),Math.round(s/1e3)*1e3}},vse=new Pt(.3),Cse=new Pt(.6),Ese=new Pt(1),kse=new Pt(2),Ase=new Pt(4),DB=["avc1","avc3","hev1","hvc1","vp8","vp09","av01"],MB=/^(avc1|avc3)\.[0-9a-fA-F]{6}$/,IB=/^(hev1|hvc1)\.(?:[ABC]?\d+)\.[0-9a-fA-F]{1,8}\.[LH]\d+(?:\.[0-9a-fA-F]{1,2}){0,6}$/,FB=/^vp09(?:\.\d{2}){3}(?:(?:\.\d{2}){5})?$/,UB=/^av01\.\d\.\d{2}[MH]\.\d{2}(?:\.\d\.\d{3}\.\d{2}\.\d{2}\.\d{2}\.\d)?$/,FC=r=>{if(!r)throw new TypeError("Video chunk metadata must be provided.");if(typeof r!="object")throw new TypeError("Video chunk metadata must be an object.");if(!r.decoderConfig)throw new TypeError("Video chunk metadata must include a decoder configuration.");if(typeof r.decoderConfig!="object")throw new TypeError("Video chunk metadata decoder configuration must be an object.");if(typeof r.decoderConfig.codec!="string")throw new TypeError("Video chunk metadata decoder configuration must specify a codec string.");if(!DB.some(e=>r.decoderConfig.codec.startsWith(e)))throw new TypeError("Video chunk metadata decoder configuration codec string must be a valid video codec string as specified in the WebCodecs Codec Registry.");if(!Number.isInteger(r.decoderConfig.codedWidth)||r.decoderConfig.codedWidth<=0)throw new TypeError("Video chunk metadata decoder configuration must specify a valid codedWidth (positive integer).");if(!Number.isInteger(r.decoderConfig.codedHeight)||r.decoderConfig.codedHeight<=0)throw new TypeError("Video chunk metadata decoder configuration must specify a valid codedHeight (positive integer).");if(r.decoderConfig.description!==void 0&&!cn(r.decoderConfig.description))throw new TypeError("Video chunk metadata decoder configuration description, when defined, must be an ArrayBuffer or an ArrayBuffer view.");if(r.decoderConfig.colorSpace!==void 0){let{colorSpace:e}=r.decoderConfig;if(typeof e!="object")throw new TypeError("Video chunk metadata decoder configuration colorSpace, when provided, must be an object.");let t=Object.keys(zi);if(e.primaries!=null&&!t.includes(e.primaries))throw new TypeError(`Video chunk metadata decoder configuration colorSpace primaries, when defined, must be one of ${t.join(", ")}.`);let i=Object.keys(Vi);if(e.transfer!=null&&!i.includes(e.transfer))throw new TypeError(`Video chunk metadata decoder configuration colorSpace transfer, when defined, must be one of ${i.join(", ")}.`);let s=Object.keys(Hi);if(e.matrix!=null&&!s.includes(e.matrix))throw new TypeError(`Video chunk metadata decoder configuration colorSpace matrix, when defined, must be one of ${s.join(", ")}.`);if(e.fullRange!=null&&typeof e.fullRange!="boolean")throw new TypeError("Video chunk metadata decoder configuration colorSpace fullRange, when defined, must be a boolean.")}if(r.decoderConfig.codec.startsWith("avc1")||r.decoderConfig.codec.startsWith("avc3")){if(!MB.test(r.decoderConfig.codec))throw new TypeError("Video chunk metadata decoder configuration codec string for AVC must be a valid AVC codec string as specified in Section 3.4 of RFC 6381.")}else if(r.decoderConfig.codec.startsWith("hev1")||r.decoderConfig.codec.startsWith("hvc1")){if(!IB.test(r.decoderConfig.codec))throw new TypeError("Video chunk metadata decoder configuration codec string for HEVC must be a valid HEVC codec string as specified in Section E.3 of ISO 14496-15.")}else if(r.decoderConfig.codec.startsWith("vp8")){if(r.decoderConfig.codec!=="vp8")throw new TypeError('Video chunk metadata decoder configuration codec string for VP8 must be "vp8".')}else if(r.decoderConfig.codec.startsWith("vp09")){if(!FB.test(r.decoderConfig.codec))throw new TypeError('Video chunk metadata decoder configuration codec string for VP9 must be a valid VP9 codec string as specified in Section "Codecs Parameter String" of https://www.webmproject.org/vp9/mp4/.')}else if(r.decoderConfig.codec.startsWith("av01")&&!UB.test(r.decoderConfig.codec))throw new TypeError('Video chunk metadata decoder configuration codec string for AV1 must be a valid AV1 codec string as specified in Section "Codecs Parameter String" of https://aomediacodec.github.io/av1-isobmff/.')},OB=["mp4a","mp3","opus","vorbis","flac","ulaw","alaw","pcm"],UC=r=>{if(!r)throw new TypeError("Audio chunk metadata must be provided.");if(typeof r!="object")throw new TypeError("Audio chunk metadata must be an object.");if(!r.decoderConfig)throw new TypeError("Audio chunk metadata must include a decoder configuration.");if(typeof r.decoderConfig!="object")throw new TypeError("Audio chunk metadata decoder configuration must be an object.");if(typeof r.decoderConfig.codec!="string")throw new TypeError("Audio chunk metadata decoder configuration must specify a codec string.");if(!OB.some(e=>r.decoderConfig.codec.startsWith(e)))throw new TypeError("Audio chunk metadata decoder configuration codec string must be a valid audio codec string as specified in the WebCodecs Codec Registry.");if(!Number.isInteger(r.decoderConfig.sampleRate)||r.decoderConfig.sampleRate<=0)throw new TypeError("Audio chunk metadata decoder configuration must specify a valid sampleRate (positive integer).");if(!Number.isInteger(r.decoderConfig.numberOfChannels)||r.decoderConfig.numberOfChannels<=0)throw new TypeError("Audio chunk metadata decoder configuration must specify a valid numberOfChannels (positive integer).");if(r.decoderConfig.description!==void 0&&!cn(r.decoderConfig.description))throw new TypeError("Audio chunk metadata decoder configuration description, when defined, must be an ArrayBuffer or an ArrayBuffer view.");if(r.decoderConfig.codec.startsWith("mp4a")&&r.decoderConfig.codec!=="mp4a.69"&&r.decoderConfig.codec!=="mp4a.6B"&&r.decoderConfig.codec!=="mp4a.6b"){if(!["mp4a.40.2","mp4a.40.02","mp4a.40.5","mp4a.40.05","mp4a.40.29","mp4a.67"].includes(r.decoderConfig.codec))throw new TypeError("Audio chunk metadata decoder configuration codec string for AAC must be a valid AAC codec string as specified in https://www.w3.org/TR/webcodecs-aac-codec-registration/.");if(!r.decoderConfig.description)throw new TypeError("Audio chunk metadata decoder configuration for AAC must include a description, which is expected to be an AudioSpecificConfig as specified in ISO 14496-3.")}else if(r.decoderConfig.codec.startsWith("mp3")||r.decoderConfig.codec.startsWith("mp4a")){if(r.decoderConfig.codec!=="mp3"&&r.decoderConfig.codec!=="mp4a.69"&&r.decoderConfig.codec!=="mp4a.6B"&&r.decoderConfig.codec!=="mp4a.6b")throw new TypeError('Audio chunk metadata decoder configuration codec string for MP3 must be "mp3", "mp4a.69" or "mp4a.6B".')}else if(r.decoderConfig.codec.startsWith("opus")){if(r.decoderConfig.codec!=="opus")throw new TypeError('Audio chunk metadata decoder configuration codec string for Opus must be "opus".');if(r.decoderConfig.description&&r.decoderConfig.description.byteLength<18)throw new TypeError("Audio chunk metadata decoder configuration description, when specified, is expected to be an Identification Header as specified in Section 5.1 of RFC 7845.")}else if(r.decoderConfig.codec.startsWith("vorbis")){if(r.decoderConfig.codec!=="vorbis")throw new TypeError('Audio chunk metadata decoder configuration codec string for Vorbis must be "vorbis".');if(!r.decoderConfig.description)throw new TypeError("Audio chunk metadata decoder configuration for Vorbis must include a description, which is expected to adhere to the format described in https://www.w3.org/TR/webcodecs-vorbis-codec-registration/.")}else if(r.decoderConfig.codec.startsWith("flac")){if(r.decoderConfig.codec!=="flac")throw new TypeError('Audio chunk metadata decoder configuration codec string for FLAC must be "flac".');if(!r.decoderConfig.description||r.decoderConfig.description.byteLength<42)throw new TypeError("Audio chunk metadata decoder configuration for FLAC must include a description, which is expected to adhere to the format described in https://www.w3.org/TR/webcodecs-flac-codec-registration/.")}else if((r.decoderConfig.codec.startsWith("pcm")||r.decoderConfig.codec.startsWith("ulaw")||r.decoderConfig.codec.startsWith("alaw"))&&!Ie.includes(r.decoderConfig.codec))throw new TypeError(`Audio chunk metadata decoder configuration codec string for PCM must be one of the supported PCM codecs (${Ie.join(", ")}).`)},OC=r=>{if(!r)throw new TypeError("Subtitle metadata must be provided.");if(typeof r!="object")throw new TypeError("Subtitle metadata must be an object.");if(!r.config)throw new TypeError("Subtitle metadata must include a config object.");if(typeof r.config!="object")throw new TypeError("Subtitle metadata config must be an object.");if(typeof r.config.description!="string")throw new TypeError("Subtitle metadata config description must be a string.")};var Vp=/<(?:(\d{2}):)?(\d{2}):(\d{2}).(\d{3})>/g;var GC=r=>{let e=Math.floor(r/36e5),t=Math.floor(r%(3600*1e3)/(60*1e3)),i=Math.floor(r%(60*1e3)/1e3),s=r%1e3;return e.toString().padStart(2,"0")+":"+t.toString().padStart(2,"0")+":"+i.toString().padStart(2,"0")+"."+s.toString().padStart(3,"0")};var Va=r=>{let e=[],t=0;for(;t<r.length;){let i=-1,s=0;for(let n=t;n<r.length-3;n++){if(r[n]===0&&r[n+1]===0&&r[n+2]===1){i=n,s=3;break}if(n<r.length-4&&r[n]===0&&r[n+1]===0&&r[n+2]===0&&r[n+3]===1){i=n,s=4;break}}if(i===-1)break;if(t>0&&i>t){let n=r.subarray(t,i);n.length>0&&e.push(n)}t=i+s}if(t<r.length){let i=r.subarray(t);i.length>0&&e.push(i)}return e},NC=(r,e)=>{let t=[],i=0,s=new DataView(r.buffer,r.byteOffset,r.byteLength);for(;i+e<=r.length;){let n;e===1?n=s.getUint8(i):e===2?n=s.getUint16(i,!1):e===3?n=(s.getUint16(i,!1)<<8)+s.getUint8(i+2):e===4?n=s.getUint32(i,!1):(si(e),w(!1)),i+=e;let o=r.subarray(i,i+n);t.push(o),i+=n}return t},Hp=r=>{let e=[],t=r.length;for(let i=0;i<t;i++)i+2<t&&r[i]===0&&r[i+1]===0&&r[i+2]===3?(e.push(0,0),i+=2):e.push(r[i]);return new Uint8Array(e)},WC=r=>{let t=Va(r);if(t.length===0)return null;let i=0;for(let a of t)i+=4+a.byteLength;let s=new Uint8Array(i),n=new DataView(s.buffer),o=0;for(let a of t){let c=a.byteLength;n.setUint32(o,c,!1),o+=4,s.set(a,o),o+=a.byteLength}return s},Xl=r=>r[0]&31,Yl=r=>{try{let e=Va(r),t=e.filter(f=>Xl(f)===7),i=e.filter(f=>Xl(f)===8),s=e.filter(f=>Xl(f)===13);if(t.length===0||i.length===0)return null;let n=t[0],o=new $e(Hp(n));if(o.skipBits(1),o.skipBits(2),o.readBits(5)!==7)return console.error("Invalid SPS NAL unit type"),null;let c=o.readAlignedByte(),u=o.readAlignedByte(),l=o.readAlignedByte(),h={configurationVersion:1,avcProfileIndication:c,profileCompatibility:u,avcLevelIndication:l,lengthSizeMinusOne:3,sequenceParameterSets:t,pictureParameterSets:i,chromaFormat:null,bitDepthLumaMinus8:null,bitDepthChromaMinus8:null,sequenceParameterSetExt:null};if(c===100||c===110||c===122||c===144){N(o);let f=N(o);f===3&&o.skipBits(1);let d=N(o),m=N(o);h.chromaFormat=f,h.bitDepthLumaMinus8=d,h.bitDepthChromaMinus8=m,h.sequenceParameterSetExt=s}return h}catch(e){return console.error("Error building AVC Decoder Configuration Record:",e),null}},$C=r=>{let e=[];e.push(r.configurationVersion),e.push(r.avcProfileIndication),e.push(r.profileCompatibility),e.push(r.avcLevelIndication),e.push(252|r.lengthSizeMinusOne&3),e.push(224|r.sequenceParameterSets.length&31);for(let t of r.sequenceParameterSets){let i=t.byteLength;e.push(i>>8),e.push(i&255);for(let s=0;s<i;s++)e.push(t[s])}e.push(r.pictureParameterSets.length);for(let t of r.pictureParameterSets){let i=t.byteLength;e.push(i>>8),e.push(i&255);for(let s=0;s<i;s++)e.push(t[s])}if(r.avcProfileIndication===100||r.avcProfileIndication===110||r.avcProfileIndication===122||r.avcProfileIndication===144){w(r.chromaFormat!==null),w(r.bitDepthLumaMinus8!==null),w(r.bitDepthChromaMinus8!==null),w(r.sequenceParameterSetExt!==null),e.push(252|r.chromaFormat&3),e.push(248|r.bitDepthLumaMinus8&7),e.push(248|r.bitDepthChromaMinus8&7),e.push(r.sequenceParameterSetExt.length);for(let t of r.sequenceParameterSetExt){let i=t.byteLength;e.push(i>>8),e.push(i&255);for(let s=0;s<i;s++)e.push(t[s])}}return new Uint8Array(e)},LC=32,zC=33,VC=34,GB=39,NB=40,Wi=r=>r[0]>>1&63,Kl=r=>{try{let e=Va(r),t=e.filter(B=>Wi(B)===LC),i=e.filter(B=>Wi(B)===zC),s=e.filter(B=>Wi(B)===VC),n=e.filter(B=>Wi(B)===GB||Wi(B)===NB);if(i.length===0||s.length===0)return null;let o=i[0],a=new $e(Hp(o));a.skipBits(16),a.readBits(4);let c=a.readBits(3),u=a.readBits(1),{general_profile_space:l,general_tier_flag:h,general_profile_idc:f,general_profile_compatibility_flags:d,general_constraint_indicator_flags:m,general_level_idc:x}=LB(a,c);N(a);let g=N(a);g===3&&a.skipBits(1),N(a),N(a),a.readBits(1)&&(N(a),N(a),N(a),N(a));let _=N(a),y=N(a);N(a);let T=a.readBits(1)?0:c;for(let B=T;B<=c;B++)N(a),N(a),N(a);N(a),N(a),N(a),N(a),N(a),N(a),a.readBits(1)&&a.readBits(1)&&zB(a),a.skipBits(1),a.skipBits(1),a.readBits(1)&&(a.skipBits(4),a.skipBits(4),N(a),N(a),a.skipBits(1));let C=N(a);if(VB(a,C),a.readBits(1)){let B=N(a);for(let k=0;k<B;k++)N(a),a.skipBits(1)}a.skipBits(1),a.skipBits(1);let v=0;a.readBits(1)&&(v=WB(a,c));let E=0;if(s.length>0){let B=s[0],k=new $e(Hp(B));k.skipBits(16),N(k),N(k),k.skipBits(1),k.skipBits(1),k.skipBits(3),k.skipBits(1),k.skipBits(1),N(k),N(k),an(k),k.skipBits(1),k.skipBits(1),k.readBits(1)&&N(k),an(k),an(k),k.skipBits(1),k.skipBits(1),k.skipBits(1),k.skipBits(1);let L=k.readBits(1),j=k.readBits(1);!L&&!j?E=0:L&&!j?E=2:!L&&j?E=3:E=0}let M=[...t.length?[{arrayCompleteness:1,nalUnitType:LC,nalUnits:t}]:[],...i.length?[{arrayCompleteness:1,nalUnitType:zC,nalUnits:i}]:[],...s.length?[{arrayCompleteness:1,nalUnitType:VC,nalUnits:s}]:[],...n.length?[{arrayCompleteness:1,nalUnitType:Wi(n[0]),nalUnits:n}]:[]];return{configurationVersion:1,generalProfileSpace:l,generalTierFlag:h,generalProfileIdc:f,generalProfileCompatibilityFlags:d,generalConstraintIndicatorFlags:m,generalLevelIdc:x,minSpatialSegmentationIdc:v,parallelismType:E,chromaFormatIdc:g,bitDepthLumaMinus8:_,bitDepthChromaMinus8:y,avgFrameRate:0,constantFrameRate:0,numTemporalLayers:c+1,temporalIdNested:u,lengthSizeMinusOne:3,arrays:M}}catch(e){return console.error("Error building HEVC Decoder Configuration Record:",e),null}},LB=(r,e)=>{let t=r.readBits(2),i=r.readBits(1),s=r.readBits(5),n=0;for(let l=0;l<32;l++)n=n<<1|r.readBits(1);let o=new Uint8Array(6);for(let l=0;l<6;l++)o[l]=r.readBits(8);let a=r.readBits(8),c=[],u=[];for(let l=0;l<e;l++)c.push(r.readBits(1)),u.push(r.readBits(1));if(e>0)for(let l=e;l<8;l++)r.skipBits(2);for(let l=0;l<e;l++)c[l]&&r.skipBits(88),u[l]&&r.skipBits(8);return{general_profile_space:t,general_tier_flag:i,general_profile_idc:s,general_profile_compatibility_flags:n,general_constraint_indicator_flags:o,general_level_idc:a}},zB=r=>{for(let e=0;e<4;e++)for(let t=0;t<(e===3?2:6);t++)if(!r.readBits(1))N(r);else{let s=Math.min(64,1<<4+(e<<1));e>1&&an(r);for(let n=0;n<s;n++)an(r)}},VB=(r,e)=>{let t=[];for(let i=0;i<e;i++)t[i]=HB(r,i,e,t)},HB=(r,e,t,i)=>{let s=0,n=0,o=0;if(e!==0&&(n=r.readBits(1)),n){if(e===t){let c=N(r);o=e-(c+1)}else o=e-1;r.readBits(1),N(r);let a=i[o]??0;for(let c=0;c<=a;c++)r.readBits(1)||r.readBits(1);s=i[o]}else{let a=N(r),c=N(r);for(let u=0;u<a;u++)N(r),r.readBits(1);for(let u=0;u<c;u++)N(r),r.readBits(1);s=a+c}return s},WB=(r,e)=>{if(r.readBits(1)&&r.readBits(8)===255&&(r.readBits(16),r.readBits(16)),r.readBits(1)&&r.readBits(1),r.readBits(1)&&(r.readBits(3),r.readBits(1),r.readBits(1)&&(r.readBits(8),r.readBits(8),r.readBits(8))),r.readBits(1)&&(N(r),N(r)),r.readBits(1),r.readBits(1),r.readBits(1),r.readBits(1)&&(N(r),N(r),N(r),N(r)),r.readBits(1)&&(r.readBits(32),r.readBits(32),r.readBits(1)&&N(r),r.readBits(1)&&$B(r,!0,e)),r.readBits(1)){r.readBits(1),r.readBits(1),r.readBits(1);let t=N(r);return N(r),N(r),N(r),N(r),t}return 0},$B=(r,e,t)=>{let i=!1,s=!1,n=!1;e&&(i=r.readBits(1)===1,s=r.readBits(1)===1,(i||s)&&(n=r.readBits(1)===1,n&&(r.readBits(8),r.readBits(5),r.readBits(1),r.readBits(5)),r.readBits(4),r.readBits(4),n&&r.readBits(4),r.readBits(5),r.readBits(5),r.readBits(5)));for(let o=0;o<=t;o++){let a=r.readBits(1)===1,c=!0;a||(c=r.readBits(1)===1);let u=!1;c?N(r):u=r.readBits(1)===1;let l=1;u||(l=N(r)+1),i&&HC(r,l,n),s&&HC(r,l,n)}},HC=(r,e,t)=>{for(let i=0;i<e;i++)N(r),N(r),t&&(N(r),N(r)),r.readBits(1)},qC=r=>{let e=[];e.push(r.configurationVersion),e.push((r.generalProfileSpace&3)<<6|(r.generalTierFlag&1)<<5|r.generalProfileIdc&31),e.push(r.generalProfileCompatibilityFlags>>>24&255),e.push(r.generalProfileCompatibilityFlags>>>16&255),e.push(r.generalProfileCompatibilityFlags>>>8&255),e.push(r.generalProfileCompatibilityFlags&255),e.push(...r.generalConstraintIndicatorFlags),e.push(r.generalLevelIdc&255),e.push(240|r.minSpatialSegmentationIdc>>8&15),e.push(r.minSpatialSegmentationIdc&255),e.push(252|r.parallelismType&3),e.push(252|r.chromaFormatIdc&3),e.push(248|r.bitDepthLumaMinus8&7),e.push(248|r.bitDepthChromaMinus8&7),e.push(r.avgFrameRate>>8&255),e.push(r.avgFrameRate&255),e.push((r.constantFrameRate&3)<<6|(r.numTemporalLayers&7)<<3|(r.temporalIdNested&1)<<2|r.lengthSizeMinusOne&3),e.push(r.arrays.length&255);for(let t of r.arrays){e.push((t.arrayCompleteness&1)<<7|0|t.nalUnitType&63),e.push(t.nalUnits.length>>8&255),e.push(t.nalUnits.length&255);for(let i of t.nalUnits){e.push(i.length>>8&255),e.push(i.length&255);for(let s=0;s<i.length;s++)e.push(i[s])}}return new Uint8Array(e)},Ql=r=>{let e=new $e(r);if(e.readBits(2)!==2)return null;let i=e.readBits(1),n=(e.readBits(1)<<1)+i;if(n===3&&e.skipBits(1),e.readBits(1)===1||e.readBits(1)!==0||(e.skipBits(2),e.readBits(24)!==4817730))return null;let u=8;n>=2&&(u=e.readBits(1)?12:10);let l=e.readBits(3),h=0,f=0;if(l!==7)if(f=e.readBits(1),n===1||n===3){let E=e.readBits(1),M=e.readBits(1);h=!E&&!M?3:E&&!M?2:1,e.skipBits(1)}else h=1;else h=3,f=1;let d=e.readBits(16),m=e.readBits(16),x=d+1,g=m+1,_=x*g,y=he(Rr).level;for(let v of Rr)if(_<=v.maxPictureSize){y=v.level;break}return{profile:n,level:y,bitDepth:u,chromaSubsampling:h,videoFullRangeFlag:f,colourPrimaries:l===2?1:l===1?6:2,transferCharacteristics:l===2?1:l===1?6:2,matrixCoefficients:l===7?0:l===2?1:l===1?6:2}};function*jC(r){let e=new $e(r),t=()=>{let i=0;for(let s=0;s<8;s++){let n=e.readAlignedByte();if(i|=(n&127)<<s*7,!(n&128))break;if(s===7&&n&128)return null}return i>=2**32-1?null:i};for(;e.getBitsLeft()>=8;){e.skipBits(1);let i=e.readBits(4),s=e.readBits(1),n=e.readBits(1);e.skipBits(1),s&&e.skipBits(8);let o;if(n){let a=t();if(a===null)return;o=a}else o=Math.floor(e.getBitsLeft()/8);w(e.pos%8===0),yield{type:i,data:r.subarray(e.pos/8,e.pos/8+o)},e.skipBits(o*8)}}var Zl=r=>{for(let{type:e,data:t}of jC(r)){if(e!==1)continue;let i=new $e(t),s=i.readBits(3),n=i.readBits(1),o=i.readBits(1),a=0,c=0,u=0;if(o)a=i.readBits(5);else{if(i.readBits(1)&&(i.skipBits(32),i.skipBits(32),i.readBits(1)))return null;let _=i.readBits(1);_&&(u=i.readBits(5),i.skipBits(32),i.skipBits(5),i.skipBits(5));let y=i.readBits(5);for(let S=0;S<=y;S++){i.skipBits(12);let T=i.readBits(5);if(S===0&&(a=T),T>7){let v=i.readBits(1);S===0&&(c=v)}if(_&&i.readBits(1)){let E=u+1;i.skipBits(E),i.skipBits(E),i.skipBits(1)}i.readBits(1)&&i.skipBits(4)}}let l=i.readBits(1),h=8;s===2&&l?h=i.readBits(1)?12:10:s<=2&&(h=l?10:8);let f=0;s!==1&&(f=i.readBits(1));let d=1,m=1,x=0;return f||(s===0?(d=1,m=1):s===1?(d=0,m=0):h===12&&(d=i.readBits(1),d&&(m=i.readBits(1))),d&&m&&(x=i.readBits(2))),{profile:s,level:a,tier:c,bitDepth:h,monochrome:f,chromaSubsamplingX:d,chromaSubsamplingY:m,chromaSamplePosition:x}}return null},Jl=r=>{let e=At(r),t=e.getUint8(9),i=e.getUint16(10,!0),s=e.getUint32(12,!0),n=e.getInt16(16,!0),o=e.getUint8(18),a=null;return o&&(a=r.subarray(19,21+t)),{outputChannelCount:t,preSkip:i,inputSampleRate:s,outputGain:n,channelMappingFamily:o,channelMappingTable:a}},qB=[480,960,1920,2880,480,960,1920,2880,480,960,1920,2880,480,960,480,960,120,240,480,960,120,240,480,960,120,240,480,960,120,240,480,960],XC=r=>{let e=r[0]>>3;return{durationInSamples:qB[e]}},YC=r=>{if(r.length<7)throw new Error("Setup header is too short.");if(r[0]!==5)throw new Error("Wrong packet type in Setup header.");if(String.fromCharCode(...r.slice(1,7))!=="vorbis")throw new Error("Invalid packet signature in Setup header.");let t=r.length,i=new Uint8Array(t);for(let h=0;h<t;h++)i[h]=r[t-1-h];let s=new $e(i),n=0;for(;s.getBitsLeft()>97;)if(s.readBits(1)===1){n=s.pos;break}if(n===0)throw new Error("Invalid Setup header: framing bit not found.");let o=0,a=!1,c=0;for(;s.getBitsLeft()>=97;){let h=s.pos,f=s.readBits(8),d=s.readBits(16),m=s.readBits(16);if(f>63||d!==0||m!==0){s.pos=h;break}if(s.skipBits(1),o++,o>64)break;s.clone().readBits(6)+1===o&&(a=!0,c=o)}if(!a)throw new Error("Invalid Setup header: mode header not found.");if(c>63)throw new Error(`Unsupported mode count: ${c}.`);let u=c;s.pos=0,s.skipBits(n);let l=Array(u).fill(0);for(let h=u-1;h>=0;h--)s.skipBits(40),l[h]=s.readBits(1);return{modeBlockflags:l}},KC=async(r,e)=>{switch(w(r.codec),r.codec){case"avc":{let t=await r.getDecoderConfig();w(t);let i;if(t.description){let a=(yt(t.description)[4]&3)+1;i=NC(e.data,a)}else i=Va(e.data);return i.some(n=>Xl(n)===5)?"key":"delta"}case"hevc":{let t=await r.getDecoderConfig();w(t);let i;if(t.description){let a=(yt(t.description)[21]&3)+1;i=NC(e.data,a)}else i=Va(e.data);return i.some(n=>{let o=Wi(n);return 16<=o&&o<=23})?"key":"delta"}case"vp8":return(e.data[0]&1)===0?"key":"delta";case"vp9":{let t=new $e(e.data);if(t.readBits(2)!==2)return null;let i=t.readBits(1);return(t.readBits(1)<<1)+i===3&&t.skipBits(1),t.readBits(1)?null:t.readBits(1)===0?"key":"delta"}case"av1":{let t=!1;for(let{type:i,data:s}of jC(e.data))if(i===1){let n=new $e(s);n.skipBits(4),t=!!n.readBits(1)}else if(i===3||i===6||i===7){if(t)return"key";let n=new $e(s);return n.readBits(1)?null:n.readBits(2)===0?"key":"delta"}return null}default:si(r.codec),w(!1)}};var Ha=class{constructor(e){this.writer=e,this.helper=new Uint8Array(8),this.helperView=new DataView(this.helper.buffer),this.offsets=new WeakMap}writeU32(e){this.helperView.setUint32(0,e,!1),this.writer.write(this.helper.subarray(0,4))}writeU64(e){this.helperView.setUint32(0,Math.floor(e/2**32),!1),this.helperView.setUint32(4,e,!1),this.writer.write(this.helper.subarray(0,8))}writeAscii(e){for(let t=0;t<e.length;t++)this.helperView.setUint8(t%8,e.charCodeAt(t)),t%8===7&&this.writer.write(this.helper);e.length%8!==0&&this.writer.write(this.helper.subarray(0,e.length%8))}writeBox(e){if(this.offsets.set(e,this.writer.getPos()),e.contents&&!e.children)this.writeBoxHeader(e,e.size??e.contents.byteLength+8),this.writer.write(e.contents);else{let t=this.writer.getPos();if(this.writeBoxHeader(e,0),e.contents&&this.writer.write(e.contents),e.children)for(let n of e.children)n&&this.writeBox(n);let i=this.writer.getPos(),s=e.size??i-t;this.writer.seek(t),this.writeBoxHeader(e,s),this.writer.seek(i)}}writeBoxHeader(e,t){this.writeU32(e.largeSize?1:t),this.writeAscii(e.type),e.largeSize&&this.writeU64(t)}measureBoxHeader(e){return 8+(e.largeSize?8:0)}patchBox(e){let t=this.offsets.get(e);w(t!==void 0);let i=this.writer.getPos();this.writer.seek(t),this.writeBox(e),this.writer.seek(i)}measureBox(e){if(e.contents&&!e.children)return this.measureBoxHeader(e)+e.contents.byteLength;{let t=this.measureBoxHeader(e);if(e.contents&&(t+=e.contents.byteLength),e.children)for(let i of e.children)i&&(t+=this.measureBox(i));return t}}},ie=new Uint8Array(8),ur=new DataView(ie.buffer),ke=r=>[(r%256+256)%256],X=r=>(ur.setUint16(0,r,!1),[ie[0],ie[1]]),ZC=r=>(ur.setInt16(0,r,!1),[ie[0],ie[1]]),JC=r=>(ur.setUint32(0,r,!1),[ie[1],ie[2],ie[3]]),F=r=>(ur.setUint32(0,r,!1),[ie[0],ie[1],ie[2],ie[3]]),ai=r=>(ur.setInt32(0,r,!1),[ie[0],ie[1],ie[2],ie[3]]),$i=r=>(ur.setUint32(0,Math.floor(r/2**32),!1),ur.setUint32(4,r,!1),[ie[0],ie[1],ie[2],ie[3],ie[4],ie[5],ie[6],ie[7]]),eE=r=>(ur.setInt16(0,2**8*r,!1),[ie[0],ie[1]]),Mr=r=>(ur.setInt32(0,2**16*r,!1),[ie[0],ie[1],ie[2],ie[3]]),Wp=r=>(ur.setInt32(0,2**30*r,!1),[ie[0],ie[1],ie[2],ie[3]]),$p=(r,e)=>{let t=[],i=r;do{let s=i&127;i>>=7,t.length>0&&(s|=128),t.push(s),e!==void 0&&e--}while(i>0||e);return t.reverse()},st=(r,e=!1)=>{let t=Array(r.length).fill(null).map((i,s)=>r.charCodeAt(s));return e&&t.push(0),t},jp=r=>{let e=null;for(let t of r)(!e||t.timestamp>e.timestamp)&&(e=t);return e},tE=r=>{let e=r*(Math.PI/180),t=Math.round(Math.cos(e)),i=Math.round(Math.sin(e));return[t,i,0,-i,t,0,0,0,1]},rE=tE(0),iE=r=>[Mr(r[0]),Mr(r[1]),Wp(r[2]),Mr(r[3]),Mr(r[4]),Wp(r[5]),Mr(r[6]),Mr(r[7]),Wp(r[8])],te=(r,e,t)=>({type:r,contents:e&&new Uint8Array(e.flat(10)),children:t}),ne=(r,e,t,i,s)=>te(r,[ke(e),JC(t),i??[]],s),sE=r=>r.isQuickTime?te("ftyp",[st("qt "),F(512),st("qt ")]):r.fragmented?te("ftyp",[st("iso5"),F(512),st("iso5"),st("iso6"),st("mp41")]):te("ftyp",[st("isom"),F(512),st("isom"),r.holdsAvc?st("avc1"):[],st("mp41")]),th=r=>({type:"mdat",largeSize:r}),Wa=(r,e,t=!1)=>te("moov",void 0,[jB(e,r),...r.map(i=>XB(i,e)),t?BR(r):null]),jB=(r,e)=>{let t=Fe(Math.max(0,...e.filter(o=>o.samples.length>0).map(o=>{let a=jp(o.samples);return a.timestamp+a.duration})),eh),i=Math.max(0,...e.map(o=>o.track.id))+1,s=!Ni(r)||!Ni(t),n=s?$i:F;return ne("mvhd",+s,0,[n(r),n(r),F(eh),n(t),Mr(1),eE(1),Array(10).fill(0),iE(rE),Array(24).fill(0),F(i)])},XB=(r,e)=>te("trak",void 0,[YB(r,e),KB(r,e)]),YB=(r,e)=>{let t=jp(r.samples),i=Fe(t?t.timestamp+t.duration:0,eh),s=!Ni(e)||!Ni(i),n=s?$i:F,o;if(r.type==="video"){let a=r.track.metadata.rotation;o=tE(a??0)}else o=rE;return ne("tkhd",+s,3,[n(e),n(e),F(r.track.id),F(0),n(i),Array(8).fill(0),X(0),X(r.track.id),eE(r.type==="audio"?1:0),X(0),iE(o),Mr(r.type==="video"?r.info.width:0),Mr(r.type==="video"?r.info.height:0)])},KB=(r,e)=>te("mdia",void 0,[QB(r,e),eR(r),tR(r)]),QB=(r,e)=>{let t=jp(r.samples),i=Fe(t?t.timestamp+t.duration:0,r.timescale),s=!Ni(e)||!Ni(i),n=s?$i:F,o=0;for(let a of r.track.metadata.languageCode??mt)o<<=5,o+=a.charCodeAt(0)-96;return ne("mdhd",+s,0,[n(e),n(e),F(r.timescale),n(i),X(o),X(0)])},ZB={video:"vide",audio:"soun",subtitle:"text"},JB={video:"MediabunnyVideoHandler",audio:"MediabunnySoundHandler",subtitle:"MediabunnyTextHandler"},eR=r=>ne("hdlr",0,0,[st("mhlr"),st(ZB[r.type]),F(0),F(0),F(0),st(JB[r.type],!0)]),tR=r=>te("minf",void 0,[nR[r.type](),oR(),uR(r)]),rR=()=>ne("vmhd",0,1,[X(0),X(0),X(0),X(0)]),iR=()=>ne("smhd",0,0,[X(0),X(0)]),sR=()=>ne("nmhd",0,0),nR={video:rR,audio:iR,subtitle:sR},oR=()=>te("dinf",void 0,[aR()]),aR=()=>ne("dref",0,0,[F(1)],[cR()]),cR=()=>ne("url ",0,1),uR=r=>{let e=r.compositionTimeOffsetTable.length>1||r.compositionTimeOffsetTable.some(t=>t.sampleCompositionTimeOffset!==0);return te("stbl",void 0,[lR(r),SR(r),e?AR(r):null,e?PR(r):null,CR(r),ER(r),kR(r),vR(r)])},lR=r=>{let e;if(r.type==="video")e=hR(NR[r.track.source._codec],r);else if(r.type==="audio"){let t=lE(r.track.source._codec,r.muxer.isQuickTime);w(t),e=gR(t,r)}else r.type==="subtitle"&&(e=TR(VR[r.track.source._codec],r));return w(e),ne("stsd",0,0,[F(1)],[e])},hR=(r,e)=>te(r,[Array(6).fill(0),X(1),X(0),X(0),Array(12).fill(0),X(e.info.width),X(e.info.height),F(4718592),F(4718592),F(0),X(1),Array(32).fill(0),X(24),ZC(65535)],[LR[e.track.source._codec](e),dC(e.info.decoderConfig.colorSpace)?dR(e):null]),dR=r=>te("colr",[st("nclx"),X(zi[r.info.decoderConfig.colorSpace.primaries]),X(Vi[r.info.decoderConfig.colorSpace.transfer]),X(Hi[r.info.decoderConfig.colorSpace.matrix]),ke((r.info.decoderConfig.colorSpace.fullRange?1:0)<<7)]),fR=r=>r.info.decoderConfig&&te("avcC",[...yt(r.info.decoderConfig.description)]),mR=r=>r.info.decoderConfig&&te("hvcC",[...yt(r.info.decoderConfig.description)]),QC=r=>{if(!r.info.decoderConfig)return null;let e=r.info.decoderConfig,t=e.codec.split("."),i=Number(t[1]),s=Number(t[2]),n=Number(t[3]),o=t[4]?Number(t[4]):1,a=t[8]?Number(t[8]):Number(e.colorSpace?.fullRange??0),c=(n<<4)+(o<<1)+a,u=t[5]?Number(t[5]):e.colorSpace?.primaries?zi[e.colorSpace.primaries]:2,l=t[6]?Number(t[6]):e.colorSpace?.transfer?Vi[e.colorSpace.transfer]:2,h=t[7]?Number(t[7]):e.colorSpace?.matrix?Hi[e.colorSpace.matrix]:2;return ne("vpcC",1,0,[ke(i),ke(s),ke(c),ke(u),ke(l),ke(h),X(0)])},pR=r=>te("av1C",PC(r.info.decoderConfig.codec)),gR=(r,e)=>{let t=0,i,s=16;if(Ie.includes(e.track.source._codec)){let n=e.track.source._codec,{sampleSize:o}=Tt(n);s=8*o,s>16&&(t=1)}return t===0?i=[Array(6).fill(0),X(1),X(t),X(0),F(0),X(e.info.numberOfChannels),X(s),X(0),X(0),X(e.info.sampleRate<2**16?e.info.sampleRate:0),X(0)]:i=[Array(6).fill(0),X(1),X(t),X(0),F(0),X(e.info.numberOfChannels),X(Math.min(s,16)),X(0),X(0),X(e.info.sampleRate<2**16?e.info.sampleRate:0),X(0),F(1),F(s/8),F(e.info.numberOfChannels*s/8),F(2)],te(r,i,[zR(e.track.source._codec,e.muxer.isQuickTime)?.(e)??null])},qp=r=>{let e;switch(r.track.source._codec){case"aac":e=64;break;case"mp3":e=107;break;case"vorbis":e=221;break;default:throw new Error(`Unhandled audio codec: ${r.track.source._codec}`)}let t=[...ke(e),...ke(21),...JC(0),...F(0),...F(0)];if(r.info.decoderConfig.description){let i=yt(r.info.decoderConfig.description);t=[...t,...ke(5),...$p(i.byteLength),...i]}return t=[...X(1),...ke(0),...ke(4),...$p(t.length),...t,...ke(6),...ke(1),...ke(2)],t=[...ke(3),...$p(t.length),...t],ne("esds",0,0,t)},oi=r=>te("wave",void 0,[xR(r),_R(r),te("\0\0\0\0")]),xR=r=>te("frma",[st(lE(r.track.source._codec,r.muxer.isQuickTime))]),_R=r=>{let{littleEndian:e}=Tt(r.track.source._codec);return te("enda",[X(+e)])},bR=r=>{let e=r.info.numberOfChannels,t=3840,i=r.info.sampleRate,s=0,n=0,o=new Uint8Array(0),a=r.info.decoderConfig?.description;if(a){w(a.byteLength>=18);let c=yt(a),u=Jl(c);e=u.outputChannelCount,t=u.preSkip,i=u.inputSampleRate,s=u.outputGain,n=u.channelMappingFamily,u.channelMappingTable&&(o=u.channelMappingTable)}return te("dOps",[ke(0),ke(e),X(t),F(i),ZC(s),ke(n),...o])},yR=r=>{let e=r.info.decoderConfig?.description;w(e);let t=yt(e);return ne("dfLa",0,0,[...t.subarray(4)])},cr=r=>{let{littleEndian:e,sampleSize:t}=Tt(r.track.source._codec),i=+e;return ne("pcmC",0,0,[ke(i),ke(8*t)])},TR=(r,e)=>te(r,[Array(6).fill(0),X(1)],[HR[e.track.source._codec](e)]),wR=r=>te("vttC",[...Li.encode(r.info.config.description)]);var SR=r=>ne("stts",0,0,[F(r.timeToSampleTable.length),r.timeToSampleTable.map(e=>[F(e.sampleCount),F(e.sampleDelta)])]),vR=r=>{if(r.samples.every(t=>t.type==="key"))return null;let e=[...r.samples.entries()].filter(([,t])=>t.type==="key");return ne("stss",0,0,[F(e.length),e.map(([t])=>F(t+1))])},CR=r=>ne("stsc",0,0,[F(r.compactlyCodedChunkTable.length),r.compactlyCodedChunkTable.map(e=>[F(e.firstChunk),F(e.samplesPerChunk),F(1)])]),ER=r=>{if(r.type==="audio"&&r.info.requiresPcmTransformation){let{sampleSize:e}=Tt(r.track.source._codec);return ne("stsz",0,0,[F(e*r.info.numberOfChannels),F(r.samples.reduce((t,i)=>t+Fe(i.duration,r.timescale),0))])}return ne("stsz",0,0,[F(0),F(r.samples.length),r.samples.map(e=>F(e.size))])},kR=r=>r.finalizedChunks.length>0&&he(r.finalizedChunks).offset>=2**32?ne("co64",0,0,[F(r.finalizedChunks.length),r.finalizedChunks.map(e=>$i(e.offset))]):ne("stco",0,0,[F(r.finalizedChunks.length),r.finalizedChunks.map(e=>F(e.offset))]),AR=r=>ne("ctts",1,0,[F(r.compositionTimeOffsetTable.length),r.compositionTimeOffsetTable.map(e=>[F(e.sampleCount),ai(e.sampleCompositionTimeOffset)])]),PR=r=>{let e=1/0,t=-1/0,i=1/0,s=-1/0;w(r.compositionTimeOffsetTable.length>0),w(r.samples.length>0);for(let o=0;o<r.compositionTimeOffsetTable.length;o++){let a=r.compositionTimeOffsetTable[o];e=Math.min(e,a.sampleCompositionTimeOffset),t=Math.max(t,a.sampleCompositionTimeOffset)}for(let o=0;o<r.samples.length;o++){let a=r.samples[o];i=Math.min(i,Fe(a.timestamp,r.timescale)),s=Math.max(s,Fe(a.timestamp+a.duration,r.timescale))}let n=Math.max(-e,0);return s>=2**31?null:ne("cslg",0,0,[ai(n),ai(e),ai(t),ai(i),ai(s)])},BR=r=>te("mvex",void 0,r.map(RR)),RR=r=>ne("trex",0,0,[F(r.track.id),F(1),F(0),F(0),F(0)]),Xp=(r,e)=>te("moof",void 0,[DR(r),...e.map(MR)]),DR=r=>ne("mfhd",0,0,[F(r)]),nE=r=>{let e=0,t=0,i=0,s=0,n=r.type==="delta";return t|=+n,n?e|=1:e|=2,e<<24|t<<16|i<<8|s},MR=r=>te("traf",void 0,[IR(r),FR(r),UR(r)]),IR=r=>{w(r.currentChunk);let e=0;e|=8,e|=16,e|=32,e|=131072;let t=r.currentChunk.samples[1]??r.currentChunk.samples[0],i={duration:t.timescaleUnitsToNextSample,size:t.size,flags:nE(t)};return ne("tfhd",0,e,[F(r.track.id),F(i.duration),F(i.size),F(i.flags)])},FR=r=>(w(r.currentChunk),ne("tfdt",1,0,[$i(Fe(r.currentChunk.startTimestamp,r.timescale))])),UR=r=>{w(r.currentChunk);let e=r.currentChunk.samples.map(x=>x.timescaleUnitsToNextSample),t=r.currentChunk.samples.map(x=>x.size),i=r.currentChunk.samples.map(nE),s=r.currentChunk.samples.map(x=>Fe(x.timestamp-x.decodeTimestamp,r.timescale)),n=new Set(e),o=new Set(t),a=new Set(i),c=new Set(s),u=a.size===2&&i[0]!==i[1],l=n.size>1,h=o.size>1,f=!u&&a.size>1,d=c.size>1||[...c].some(x=>x!==0),m=0;return m|=1,m|=4*+u,m|=256*+l,m|=512*+h,m|=1024*+f,m|=2048*+d,ne("trun",1,m,[F(r.currentChunk.samples.length),F(r.currentChunk.offset-r.currentChunk.moofOffset||0),u?F(i[0]):[],r.currentChunk.samples.map((x,g)=>[l?F(e[g]):[],h?F(t[g]):[],f?F(i[g]):[],d?ai(s[g]):[]])])},oE=r=>te("mfra",void 0,[...r.map(OR),GR()]),OR=(r,e)=>ne("tfra",1,0,[F(r.track.id),F(63),F(r.finalizedChunks.length),r.finalizedChunks.map(i=>[$i(Fe(i.samples[0].timestamp,r.timescale)),$i(i.moofOffset),F(e+1),F(1),F(1)])]),GR=()=>ne("mfro",0,0,[F(0)]),aE=()=>te("vtte"),cE=(r,e,t,i,s)=>te("vttc",void 0,[s!==null?te("vsid",[ai(s)]):null,t!==null?te("iden",[...Li.encode(t)]):null,e!==null?te("ctim",[...Li.encode(GC(e))]):null,i!==null?te("sttg",[...Li.encode(i)]):null,te("payl",[...Li.encode(r)])]),uE=r=>te("vtta",[...Li.encode(r)]),NR={avc:"avc1",hevc:"hvc1",vp8:"vp08",vp9:"vp09",av1:"av01"},LR={avc:fR,hevc:mR,vp8:QC,vp9:QC,av1:pR},lE=(r,e)=>{switch(r){case"aac":return"mp4a";case"mp3":return"mp4a";case"opus":return"Opus";case"vorbis":return"mp4a";case"flac":return"fLaC";case"ulaw":return"ulaw";case"alaw":return"alaw";case"pcm-u8":return"raw ";case"pcm-s8":return"sowt"}if(e)switch(r){case"pcm-s16":return"sowt";case"pcm-s16be":return"twos";case"pcm-s24":return"in24";case"pcm-s24be":return"in24";case"pcm-s32":return"in32";case"pcm-s32be":return"in32";case"pcm-f32":return"fl32";case"pcm-f32be":return"fl32";case"pcm-f64":return"fl64";case"pcm-f64be":return"fl64"}else switch(r){case"pcm-s16":return"ipcm";case"pcm-s16be":return"ipcm";case"pcm-s24":return"ipcm";case"pcm-s24be":return"ipcm";case"pcm-s32":return"ipcm";case"pcm-s32be":return"ipcm";case"pcm-f32":return"fpcm";case"pcm-f32be":return"fpcm";case"pcm-f64":return"fpcm";case"pcm-f64be":return"fpcm"}},zR=(r,e)=>{switch(r){case"aac":return qp;case"mp3":return qp;case"opus":return bR;case"vorbis":return qp;case"flac":return yR}if(e)switch(r){case"pcm-s24":return oi;case"pcm-s24be":return oi;case"pcm-s32":return oi;case"pcm-s32be":return oi;case"pcm-f32":return oi;case"pcm-f32be":return oi;case"pcm-f64":return oi;case"pcm-f64be":return oi}else switch(r){case"pcm-s16":return cr;case"pcm-s16be":return cr;case"pcm-s24":return cr;case"pcm-s24be":return cr;case"pcm-s32":return cr;case"pcm-s32be":return cr;case"pcm-f32":return cr;case"pcm-f32be":return cr;case"pcm-f64":return cr;case"pcm-f64be":return cr}return null},VR={webvtt:"wvtt"},HR={webvtt:wR};var rh=class{constructor(e){this.mutex=new kt,this.firstMediaStreamTimestamp=null,this.trackTimestampInfo=new WeakMap,this.output=e}onTrackClose(e){}validateAndNormalizeTimestamp(e,t,i){t+=e.source._timestampOffset;let s=this.trackTimestampInfo.get(e);if(!s){if(!i)throw new Error("First frame must be a key frame.");s={maxTimestamp:t,maxTimestampBeforeLastKeyFrame:t},this.trackTimestampInfo.set(e,s)}if(t<0)throw new Error(`Timestamps must be non-negative (got ${t}s).`);if(i&&(s.maxTimestampBeforeLastKeyFrame=s.maxTimestamp),t<s.maxTimestampBeforeLastKeyFrame)throw new Error(`Timestamps cannot be smaller than the highest timestamp of the previous run (a run begins with a key frame and ends right before the next key frame). Got ${t}s, but highest timestamp is ${s.maxTimestampBeforeLastKeyFrame}s.`);return s.maxTimestamp=Math.max(s.maxTimestamp,t),t}};var ih=class{constructor(){this.ensureMonotonicity=!1,this.trackedWrites=null,this.trackedStart=-1,this.trackedEnd=-1}start(){}maybeTrackWrites(e){if(!this.trackedWrites)return;let t=this.getPos();if(t<this.trackedStart){if(t+e.byteLength<=this.trackedStart)return;e=e.subarray(this.trackedStart-t),t=0}let i=t+e.byteLength-this.trackedStart,s=this.trackedWrites.byteLength;for(;s<i;)s*=2;if(s!==this.trackedWrites.byteLength){let n=new Uint8Array(s);n.set(this.trackedWrites,0),this.trackedWrites=n}this.trackedWrites.set(e,t-this.trackedStart),this.trackedEnd=Math.max(this.trackedEnd,t+e.byteLength)}startTrackingWrites(){this.trackedWrites=new Uint8Array(2**10),this.trackedStart=this.getPos(),this.trackedEnd=this.trackedStart}stopTrackingWrites(){if(!this.trackedWrites)throw new Error("Internal error: Can't get tracked writes since nothing was tracked.");let t={data:this.trackedWrites.subarray(0,this.trackedEnd-this.trackedStart),start:this.trackedStart,end:this.trackedEnd};return this.trackedWrites=null,t}},Yp=2**16,Kp=2**32,dn=class extends ih{constructor(e){if(super(),this.pos=0,this.maxPos=0,this.target=e,this.supportsResize="resize"in new ArrayBuffer(0),this.supportsResize)try{this.buffer=new ArrayBuffer(Yp,{maxByteLength:Kp})}catch{this.buffer=new ArrayBuffer(Yp),this.supportsResize=!1}else this.buffer=new ArrayBuffer(Yp);this.bytes=new Uint8Array(this.buffer)}ensureSize(e){let t=this.buffer.byteLength;for(;t<e;)t*=2;if(t!==this.buffer.byteLength){if(t>Kp)throw new Error(`ArrayBuffer exceeded maximum size of ${Kp} bytes. Please consider using another target.`);if(this.supportsResize)this.buffer.resize(t);else{let i=new ArrayBuffer(t),s=new Uint8Array(i);s.set(this.bytes,0),this.buffer=i,this.bytes=s}}}write(e){this.maybeTrackWrites(e),this.ensureSize(this.pos+e.byteLength),this.bytes.set(e,this.pos),this.pos+=e.byteLength,this.maxPos=Math.max(this.maxPos,this.pos)}seek(e){this.pos=e}getPos(){return this.pos}async flush(){}async finalize(){this.ensureSize(this.pos),this.target.buffer=this.buffer.slice(0,Math.max(this.maxPos,this.pos))}async close(){}getSlice(e,t){return this.bytes.slice(e,t)}},WR=2**24,$R=2,sh=class extends ih{constructor(e){super(),this.pos=0,this.sections=[],this.lastWriteEnd=0,this.lastFlushEnd=0,this.writer=null,this.chunks=[],this.target=e,this.chunked=e._options.chunked??!1,this.chunkSize=e._options.chunkSize??WR}start(){this.writer=this.target._writable.getWriter()}write(e){if(this.pos>this.lastWriteEnd){let t=this.pos-this.lastWriteEnd;this.pos=this.lastWriteEnd,this.write(new Uint8Array(t))}this.maybeTrackWrites(e),this.sections.push({data:e.slice(),start:this.pos}),this.pos+=e.byteLength,this.lastWriteEnd=Math.max(this.lastWriteEnd,this.pos)}seek(e){this.pos=e}getPos(){return this.pos}async flush(){if(this.pos>this.lastWriteEnd){let i=this.pos-this.lastWriteEnd;this.pos=this.lastWriteEnd,this.write(new Uint8Array(i))}if(w(this.writer),this.sections.length===0)return;let e=[],t=[...this.sections].sort((i,s)=>i.start-s.start);e.push({start:t[0].start,size:t[0].data.byteLength});for(let i=1;i<t.length;i++){let s=e[e.length-1],n=t[i];n.start<=s.start+s.size?s.size=Math.max(s.size,n.start+n.data.byteLength-s.start):e.push({start:n.start,size:n.data.byteLength})}for(let i of e){i.data=new Uint8Array(i.size);for(let s of this.sections)i.start<=s.start&&s.start<i.start+i.size&&i.data.set(s.data,s.start-i.start);if(this.writer.desiredSize!==null&&this.writer.desiredSize<=0&&await this.writer.ready,this.chunked)this.writeDataIntoChunks(i.data,i.start),this.tryToFlushChunks();else{if(this.ensureMonotonicity&&i.start!==this.lastFlushEnd)throw new Error("Internal error: Monotonicity violation.");this.writer.write({type:"write",data:i.data,position:i.start}),this.lastFlushEnd=i.start+i.data.byteLength}}this.sections.length=0}writeDataIntoChunks(e,t){let i=this.chunks.findIndex(c=>c.start<=t&&t<c.start+this.chunkSize);i===-1&&(i=this.createChunk(t));let s=this.chunks[i],n=t-s.start,o=e.subarray(0,Math.min(this.chunkSize-n,e.byteLength));s.data.set(o,n);let a={start:n,end:n+o.byteLength};if(this.insertSectionIntoChunk(s,a),s.written[0].start===0&&s.written[0].end===this.chunkSize&&(s.shouldFlush=!0),this.chunks.length>$R){for(let c=0;c<this.chunks.length-1;c++)this.chunks[c].shouldFlush=!0;this.tryToFlushChunks()}o.byteLength<e.byteLength&&this.writeDataIntoChunks(e.subarray(o.byteLength),t+o.byteLength)}insertSectionIntoChunk(e,t){let i=0,s=e.written.length-1,n=-1;for(;i<=s;){let o=Math.floor(i+(s-i+1)/2);e.written[o].start<=t.start?(i=o+1,n=o):s=o-1}for(e.written.splice(n+1,0,t),(n===-1||e.written[n].end<t.start)&&n++;n<e.written.length-1&&e.written[n].end>=e.written[n+1].start;)e.written[n].end=Math.max(e.written[n].end,e.written[n+1].end),e.written.splice(n+1,1)}createChunk(e){let i={start:Math.floor(e/this.chunkSize)*this.chunkSize,data:new Uint8Array(this.chunkSize),written:[],shouldFlush:!1};return this.chunks.push(i),this.chunks.sort((s,n)=>s.start-n.start),this.chunks.indexOf(i)}tryToFlushChunks(e=!1){w(this.writer);for(let t=0;t<this.chunks.length;t++){let i=this.chunks[t];if(!(!i.shouldFlush&&!e)){for(let s of i.written){let n=i.start+s.start;if(this.ensureMonotonicity&&n!==this.lastFlushEnd)throw new Error("Internal error: Monotonicity violation.");this.writer.write({type:"write",data:i.data.subarray(s.start,s.end),position:n}),this.lastFlushEnd=i.start+s.end}this.chunks.splice(t--,1)}}}finalize(){return this.chunked&&this.tryToFlushChunks(!0),w(this.writer),this.writer.close()}async close(){return this.writer?.close()}};var qi=class{constructor(){this._output=null}},$a=class extends qi{constructor(){super(...arguments),this.buffer=null}_createWriter(){return new dn(this)}},qa=class extends qi{constructor(e,t={}){if(super(),!(e instanceof WritableStream))throw new TypeError("StreamTarget requires a WritableStream instance.");if(t!=null&&typeof t!="object")throw new TypeError("StreamTarget options, when provided, must be an object.");if(t.chunked!==void 0&&typeof t.chunked!="boolean")throw new TypeError("options.chunked, when provided, must be a boolean.");if(t.chunkSize!==void 0&&(!Number.isInteger(t.chunkSize)||t.chunkSize<1024))throw new TypeError("options.chunkSize, when provided, must be an integer and not smaller than 1024.");this._writable=e,this._options=t}_createWriter(){return new sh(this)}};var nh=r=>{let t=(r.hasVideo?"video/":r.hasAudio?"audio/":"application/")+(r.isQuickTime?"quicktime":"mp4");if(r.codecStrings.length>0){let i=[...new Set(r.codecStrings)];t+=`; codecs="${i.join(", ")}"`}return t};var ji=class{constructor(e){this.reader=e,this.pos=0}readBytes(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);return this.pos+=e,new Uint8Array(t.buffer,i,e)}readU8(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+1);return this.pos++,e.getUint8(t)}readU16(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+2);return this.pos+=2,e.getUint16(t,!1)}readI16(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+2);return this.pos+=2,e.getInt16(t,!1)}readU24(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+3);this.pos+=3;let i=e.getUint16(t,!1),s=e.getUint8(t+2);return i*256+s}readU32(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+4);return this.pos+=4,e.getUint32(t,!1)}readI32(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+4);return this.pos+=4,e.getInt32(t,!1)}readU64(){let e=this.readU32(),t=this.readU32();return e*4294967296+t}readI64(){let e=this.readI32(),t=this.readU32();return e*4294967296+t}readF64(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+8);return this.pos+=8,e.getFloat64(t,!1)}readFixed_16_16(){return this.readI32()/65536}readFixed_2_30(){return this.readI32()/1073741824}readAscii(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);this.pos+=e;let s="";for(let n=0;n<e;n++)s+=String.fromCharCode(t.getUint8(i+n));return s}readIsomVariableInteger(){let e=0;for(let t=0;t<4;t++){e<<=7;let i=this.readU8();if(e|=i&127,(i&128)===0)break}return e}readBoxHeader(){let e=this.readU32(),t=this.readAscii(4),i=8;return e===1&&(e=this.readU64(),i=16),{name:t,totalSize:e,headerSize:i,contentSize:e-i}}};var eh=1e3,qR=2082844800,Fe=(r,e,t=!0)=>{let i=r*e;return t?Math.round(i):i},ah=class extends rh{constructor(e,t){super(e),this.auxTarget=new $a,this.auxWriter=this.auxTarget._createWriter(),this.auxBoxWriter=new Ha(this.auxWriter),this.mdat=null,this.trackDatas=[],this.allTracksKnown=Ke(),this.creationTime=Math.floor(Date.now()/1e3)+qR,this.finalizedChunks=[],this.nextFragmentNumber=1,this.maxWrittenTimestamp=-1/0,this.format=t,this.writer=e._writer,this.boxWriter=new Ha(this.writer),this.isQuickTime=t instanceof mn;let i=this.writer instanceof dn?"in-memory":!1;this.fastStart=t._options.fastStart??i,this.isFragmented=this.fastStart==="fragmented",(this.fastStart==="in-memory"||this.isFragmented)&&(this.writer.ensureMonotonicity=!0),this.minimumFragmentDuration=t._options.minimumFragmentDuration??1}async start(){let e=await this.mutex.acquire(),t=this.output._tracks.some(i=>i.type==="video"&&i.source._codec==="avc");if(this.format._options.onFtyp&&this.writer.startTrackingWrites(),this.boxWriter.writeBox(sE({isQuickTime:this.isQuickTime,holdsAvc:t,fragmented:this.isFragmented})),this.format._options.onFtyp){let{data:i,start:s}=this.writer.stopTrackingWrites();this.format._options.onFtyp(i,s)}this.fastStart==="in-memory"?this.mdat=th(!1):this.isFragmented||(this.format._options.onMdat&&this.writer.startTrackingWrites(),this.mdat=th(!0),this.boxWriter.writeBox(this.mdat)),await this.writer.flush(),e()}allTracksAreKnown(){for(let e of this.output._tracks)if(!e.source._closed&&!this.trackDatas.some(t=>t.track===e))return!1;return!0}async getMimeType(){await this.allTracksKnown.promise;let e=this.trackDatas.map(t=>t.type==="video"||t.type==="audio"?t.info.decoderConfig.codec:{webvtt:"wvtt"}[t.track.source._codec]);return nh({isQuickTime:this.isQuickTime,hasVideo:this.trackDatas.some(t=>t.type==="video"),hasAudio:this.trackDatas.some(t=>t.type==="audio"),codecStrings:e})}getVideoTrackData(e,t,i){let s=this.trackDatas.find(u=>u.track===e);if(s)return s;FC(i),w(i),w(i.decoderConfig);let n={...i.decoderConfig};w(n.codedWidth!==void 0),w(n.codedHeight!==void 0);let o=!1;if(e.source._codec==="avc"&&!n.description){let u=Yl(t.data);if(!u)throw new Error("Couldn't extract an AVCDecoderConfigurationRecord from the AVC packet. Make sure the packets are in Annex B format (as specified in ITU-T-REC-H.264) when not providing a description, or provide a description (must be an AVCDecoderConfigurationRecord as specified in ISO 14496-15) and ensure the packets are in AVCC format.");n.description=$C(u),o=!0}else if(e.source._codec==="hevc"&&!n.description){let u=Kl(t.data);if(!u)throw new Error("Couldn't extract an HEVCDecoderConfigurationRecord from the HEVC packet. Make sure the packets are in Annex B format (as specified in ITU-T-REC-H.265) when not providing a description, or provide a description (must be an HEVCDecoderConfigurationRecord as specified in ISO 14496-15) and ensure the packets are in HEVC format.");n.description=qC(u),o=!0}let a=yC(1/(e.metadata.frameRate??57600),1e6).denominator,c={muxer:this,track:e,type:"video",info:{width:n.codedWidth,height:n.codedHeight,decoderConfig:n,requiresAnnexBTransformation:o},timescale:a,samples:[],sampleQueue:[],timestampProcessingQueue:[],timeToSampleTable:[],compositionTimeOffsetTable:[],lastTimescaleUnits:null,lastSample:null,finalizedChunks:[],currentChunk:null,compactlyCodedChunkTable:[]};return this.trackDatas.push(c),this.trackDatas.sort((u,l)=>u.track.id-l.track.id),this.allTracksAreKnown()&&this.allTracksKnown.resolve(),c}getAudioTrackData(e,t){let i=this.trackDatas.find(n=>n.track===e);if(i)return i;UC(t),w(t),w(t.decoderConfig);let s={muxer:this,track:e,type:"audio",info:{numberOfChannels:t.decoderConfig.numberOfChannels,sampleRate:t.decoderConfig.sampleRate,decoderConfig:t.decoderConfig,requiresPcmTransformation:!this.isFragmented&&Ie.includes(e.source._codec)},timescale:t.decoderConfig.sampleRate,samples:[],sampleQueue:[],timestampProcessingQueue:[],timeToSampleTable:[],compositionTimeOffsetTable:[],lastTimescaleUnits:null,lastSample:null,finalizedChunks:[],currentChunk:null,compactlyCodedChunkTable:[]};return this.trackDatas.push(s),this.trackDatas.sort((n,o)=>n.track.id-o.track.id),this.allTracksAreKnown()&&this.allTracksKnown.resolve(),s}getSubtitleTrackData(e,t){let i=this.trackDatas.find(n=>n.track===e);if(i)return i;OC(t),w(t),w(t.config);let s={muxer:this,track:e,type:"subtitle",info:{config:t.config},timescale:1e3,samples:[],sampleQueue:[],timestampProcessingQueue:[],timeToSampleTable:[],compositionTimeOffsetTable:[],lastTimescaleUnits:null,lastSample:null,finalizedChunks:[],currentChunk:null,compactlyCodedChunkTable:[],lastCueEndTimestamp:0,cueQueue:[],nextSourceId:0,cueToSourceId:new WeakMap};return this.trackDatas.push(s),this.trackDatas.sort((n,o)=>n.track.id-o.track.id),this.allTracksAreKnown()&&this.allTracksKnown.resolve(),s}async addEncodedVideoPacket(e,t,i){let s=await this.mutex.acquire();try{let n=this.getVideoTrackData(e,t,i),o=t.data;if(n.info.requiresAnnexBTransformation){let u=WC(o);if(!u)throw new Error("Failed to transform packet data. Make sure all packets are provided in Annex B format, as specified in ITU-T-REC-H.264 and ITU-T-REC-H.265.");o=u}let a=this.validateAndNormalizeTimestamp(n.track,t.timestamp,t.type==="key"),c=this.createSampleForTrack(n,o,a,t.duration,t.type);await this.registerSample(n,c)}finally{s()}}async addEncodedAudioPacket(e,t,i){let s=await this.mutex.acquire();try{let n=this.getAudioTrackData(e,i),o=this.validateAndNormalizeTimestamp(n.track,t.timestamp,t.type==="key"),a=this.createSampleForTrack(n,t.data,o,t.duration,t.type);n.info.requiresPcmTransformation&&await this.maybePadWithSilence(n,o),await this.registerSample(n,a)}finally{s()}}async maybePadWithSilence(e,t){let i=he(e.samples),s=i?i.timestamp+i.duration:0,n=t-s,o=Fe(n,e.timescale);if(o>0){let{sampleSize:a,silentValue:c}=Tt(e.info.decoderConfig.codec),u=o*e.info.numberOfChannels,l=new Uint8Array(a*u).fill(c),h=this.createSampleForTrack(e,new Uint8Array(l.buffer),s,n,"key");await this.registerSample(e,h)}}async addSubtitleCue(e,t,i){let s=await this.mutex.acquire();try{let n=this.getSubtitleTrackData(e,i);this.validateAndNormalizeTimestamp(n.track,t.timestamp,!0),e.source._codec==="webvtt"&&(n.cueQueue.push(t),await this.processWebVTTCues(n,t.timestamp))}finally{s()}}async processWebVTTCues(e,t){for(;e.cueQueue.length>0;){let i=new Set([]);for(let u of e.cueQueue)w(u.timestamp<=t),w(e.lastCueEndTimestamp<=u.timestamp+u.duration),i.add(Math.max(u.timestamp,e.lastCueEndTimestamp)),i.add(u.timestamp+u.duration);let s=[...i].sort((u,l)=>u-l),n=s[0],o=s[1]??n;if(t<o)break;if(e.lastCueEndTimestamp<n){this.auxWriter.seek(0);let u=aE();this.auxBoxWriter.writeBox(u);let l=this.auxWriter.getSlice(0,this.auxWriter.getPos()),h=this.createSampleForTrack(e,l,e.lastCueEndTimestamp,n-e.lastCueEndTimestamp,"key");await this.registerSample(e,h),e.lastCueEndTimestamp=n}this.auxWriter.seek(0);for(let u=0;u<e.cueQueue.length;u++){let l=e.cueQueue[u];if(l.timestamp>=o)break;Vp.lastIndex=0;let h=Vp.test(l.text),f=l.timestamp+l.duration,d=e.cueToSourceId.get(l);if(d===void 0&&o<f&&(d=e.nextSourceId++,e.cueToSourceId.set(l,d)),l.notes){let x=uE(l.notes);this.auxBoxWriter.writeBox(x)}let m=cE(l.text,h?n:null,l.identifier??null,l.settings??null,d??null);this.auxBoxWriter.writeBox(m),f===o&&e.cueQueue.splice(u--,1)}let a=this.auxWriter.getSlice(0,this.auxWriter.getPos()),c=this.createSampleForTrack(e,a,n,o-n,"key");await this.registerSample(e,c),e.lastCueEndTimestamp=o}}createSampleForTrack(e,t,i,s,n){return{timestamp:i,decodeTimestamp:i,duration:s,data:t,size:t.byteLength,type:n,timescaleUnitsToNextSample:Fe(s,e.timescale)}}processTimestamps(e,t){if(e.timestampProcessingQueue.length===0)return;if(e.type==="audio"&&e.info.requiresPcmTransformation){let s=0;for(let n=0;n<e.timestampProcessingQueue.length;n++){let o=e.timestampProcessingQueue[n],a=Fe(o.duration,e.timescale);s+=a}if(e.timeToSampleTable.length===0)e.timeToSampleTable.push({sampleCount:s,sampleDelta:1});else{let n=he(e.timeToSampleTable);n.sampleCount+=s}e.timestampProcessingQueue.length=0;return}let i=e.timestampProcessingQueue.map(s=>s.timestamp).sort((s,n)=>s-n);for(let s=0;s<e.timestampProcessingQueue.length;s++){let n=e.timestampProcessingQueue[s];n.decodeTimestamp=i[s],!this.isFragmented&&e.lastTimescaleUnits===null&&(n.decodeTimestamp=0);let o=Fe(n.timestamp-n.decodeTimestamp,e.timescale),a=Fe(n.duration,e.timescale);if(e.lastTimescaleUnits!==null){w(e.lastSample);let c=Fe(n.decodeTimestamp,e.timescale,!1),u=Math.round(c-e.lastTimescaleUnits);if(w(u>=0),e.lastTimescaleUnits+=u,e.lastSample.timescaleUnitsToNextSample=u,!this.isFragmented){let l=he(e.timeToSampleTable);if(w(l),l.sampleCount===1){l.sampleDelta=u;let f=e.timeToSampleTable[e.timeToSampleTable.length-2];f&&f.sampleDelta===u&&(f.sampleCount++,e.timeToSampleTable.pop(),l=f)}else l.sampleDelta!==u&&(l.sampleCount--,e.timeToSampleTable.push(l={sampleCount:1,sampleDelta:u}));l.sampleDelta===a?l.sampleCount++:e.timeToSampleTable.push({sampleCount:1,sampleDelta:a});let h=he(e.compositionTimeOffsetTable);w(h),h.sampleCompositionTimeOffset===o?h.sampleCount++:e.compositionTimeOffsetTable.push({sampleCount:1,sampleCompositionTimeOffset:o})}}else e.lastTimescaleUnits=Fe(n.decodeTimestamp,e.timescale,!1),this.isFragmented||(e.timeToSampleTable.push({sampleCount:1,sampleDelta:a}),e.compositionTimeOffsetTable.push({sampleCount:1,sampleCompositionTimeOffset:o}));e.lastSample=n}if(e.timestampProcessingQueue.length=0,w(e.lastSample),w(e.lastTimescaleUnits!==null),t!==void 0&&e.lastSample.timescaleUnitsToNextSample===0){w(t.type==="key");let s=Fe(t.timestamp,e.timescale,!1),n=Math.round(s-e.lastTimescaleUnits);e.lastSample.timescaleUnitsToNextSample=n}}async registerSample(e,t){t.type==="key"&&this.processTimestamps(e,t),e.timestampProcessingQueue.push(t),this.isFragmented?(e.sampleQueue.push(t),await this.interleaveSamples()):await this.addSampleToTrack(e,t)}async addSampleToTrack(e,t){this.isFragmented||e.samples.push(t);let i=!1;if(!e.currentChunk)i=!0;else{e.currentChunk.startTimestamp=Math.min(e.currentChunk.startTimestamp,t.timestamp);let s=t.timestamp-e.currentChunk.startTimestamp;if(this.isFragmented){let n=this.trackDatas.every(o=>{if(e===o)return t.type==="key";let a=o.sampleQueue[0];return a?a.type==="key":o.track.source._closed});s>=this.minimumFragmentDuration&&n&&t.timestamp>this.maxWrittenTimestamp&&(i=!0,await this.finalizeFragment())}else i=s>=.5}i&&(e.currentChunk&&await this.finalizeCurrentChunk(e),e.currentChunk={startTimestamp:t.timestamp,samples:[],offset:null,moofOffset:null}),w(e.currentChunk),e.currentChunk.samples.push(t),this.isFragmented&&(this.maxWrittenTimestamp=Math.max(this.maxWrittenTimestamp,t.timestamp))}async finalizeCurrentChunk(e){if(w(!this.isFragmented),!e.currentChunk)return;e.finalizedChunks.push(e.currentChunk),this.finalizedChunks.push(e.currentChunk);let t=e.currentChunk.samples.length;if(e.type==="audio"&&e.info.requiresPcmTransformation&&(t=e.currentChunk.samples.reduce((i,s)=>i+Fe(s.duration,e.timescale),0)),(e.compactlyCodedChunkTable.length===0||he(e.compactlyCodedChunkTable).samplesPerChunk!==t)&&e.compactlyCodedChunkTable.push({firstChunk:e.finalizedChunks.length,samplesPerChunk:t}),this.fastStart==="in-memory"){e.currentChunk.offset=0;return}e.currentChunk.offset=this.writer.getPos();for(let i of e.currentChunk.samples)w(i.data),this.writer.write(i.data),i.data=null;await this.writer.flush()}async interleaveSamples(e=!1){if(w(this.isFragmented),!(!e&&!this.allTracksAreKnown()))e:for(;;){let t=null,i=1/0;for(let n of this.trackDatas){if(!e&&n.sampleQueue.length===0&&!n.track.source._closed)break e;n.sampleQueue.length>0&&n.sampleQueue[0].timestamp<i&&(t=n,i=n.sampleQueue[0].timestamp)}if(!t)break;let s=t.sampleQueue.shift();await this.addSampleToTrack(t,s)}}async finalizeFragment(e=!0){w(this.isFragmented);let t=this.nextFragmentNumber++;if(t===1){this.format._options.onMoov&&this.writer.startTrackingWrites();let d=Wa(this.trackDatas,this.creationTime,!0);if(this.boxWriter.writeBox(d),this.format._options.onMoov){let{data:m,start:x}=this.writer.stopTrackingWrites();this.format._options.onMoov(m,x)}}let i=this.trackDatas.filter(d=>d.currentChunk),s=Xp(t,i),n=this.writer.getPos(),o=n+this.boxWriter.measureBox(s),a=o+8,c=1/0;for(let d of i){d.currentChunk.offset=a,d.currentChunk.moofOffset=n;for(let m of d.currentChunk.samples)a+=m.size;c=Math.min(c,d.currentChunk.startTimestamp)}let u=a-o,l=u>=2**32;if(l)for(let d of i)d.currentChunk.offset+=8;this.format._options.onMoof&&this.writer.startTrackingWrites();let h=Xp(t,i);if(this.boxWriter.writeBox(h),this.format._options.onMoof){let{data:d,start:m}=this.writer.stopTrackingWrites();this.format._options.onMoof(d,m,c)}w(this.writer.getPos()===o),this.format._options.onMdat&&this.writer.startTrackingWrites();let f=th(l);f.size=u,this.boxWriter.writeBox(f),this.writer.seek(o+(l?16:8));for(let d of i)for(let m of d.currentChunk.samples)this.writer.write(m.data),m.data=null;if(this.format._options.onMdat){let{data:d,start:m}=this.writer.stopTrackingWrites();this.format._options.onMdat(d,m)}for(let d of i)d.finalizedChunks.push(d.currentChunk),this.finalizedChunks.push(d.currentChunk),d.currentChunk=null;e&&await this.writer.flush()}async onTrackClose(e){let t=await this.mutex.acquire();if(e.type==="subtitle"&&e.source._codec==="webvtt"){let i=this.trackDatas.find(s=>s.track===e);i&&await this.processWebVTTCues(i,1/0)}this.allTracksAreKnown()&&this.allTracksKnown.resolve(),this.isFragmented&&await this.interleaveSamples(),t()}async finalize(){let e=await this.mutex.acquire();this.allTracksKnown.resolve();for(let t of this.trackDatas)t.type==="subtitle"&&t.track.source._codec==="webvtt"&&await this.processWebVTTCues(t,1/0);if(this.isFragmented){await this.interleaveSamples(!0);for(let t of this.trackDatas)this.processTimestamps(t);await this.finalizeFragment(!1)}else for(let t of this.trackDatas)this.processTimestamps(t),await this.finalizeCurrentChunk(t);if(this.fastStart==="in-memory"){w(this.mdat);let t;for(let s=0;s<2;s++){let n=Wa(this.trackDatas,this.creationTime),o=this.boxWriter.measureBox(n);t=this.boxWriter.measureBox(this.mdat);let a=this.writer.getPos()+o+t;for(let c of this.finalizedChunks){c.offset=a;for(let{data:u}of c.samples)w(u),a+=u.byteLength,t+=u.byteLength}if(a<2**32)break;t>=2**32&&(this.mdat.largeSize=!0)}this.format._options.onMoov&&this.writer.startTrackingWrites();let i=Wa(this.trackDatas,this.creationTime);if(this.boxWriter.writeBox(i),this.format._options.onMoov){let{data:s,start:n}=this.writer.stopTrackingWrites();this.format._options.onMoov(s,n)}this.format._options.onMdat&&this.writer.startTrackingWrites(),this.mdat.size=t,this.boxWriter.writeBox(this.mdat);for(let s of this.finalizedChunks)for(let n of s.samples)w(n.data),this.writer.write(n.data),n.data=null;if(this.format._options.onMdat){let{data:s,start:n}=this.writer.stopTrackingWrites();this.format._options.onMdat(s,n)}}else if(this.isFragmented){let t=this.writer.getPos(),i=oE(this.trackDatas);this.boxWriter.writeBox(i);let s=this.writer.getPos()-t;this.writer.seek(this.writer.getPos()-4),this.boxWriter.writeU32(s)}else{w(this.mdat);let t=this.boxWriter.offsets.get(this.mdat);w(t!==void 0);let i=this.writer.getPos()-t;if(this.mdat.size=i,this.mdat.largeSize=i>=2**32,this.boxWriter.patchBox(this.mdat),this.format._options.onMdat){let{data:n,start:o}=this.writer.stopTrackingWrites();this.format._options.onMdat(n,o)}this.format._options.onMoov&&this.writer.startTrackingWrites();let s=Wa(this.trackDatas,this.creationTime);if(this.boxWriter.writeBox(s),this.format._options.onMoov){let{data:n,start:o}=this.writer.stopTrackingWrites();this.format._options.onMoov(n,o)}}e()}};var I;(function(r){r[r.EBML=440786851]="EBML",r[r.EBMLVersion=17030]="EBMLVersion",r[r.EBMLReadVersion=17143]="EBMLReadVersion",r[r.EBMLMaxIDLength=17138]="EBMLMaxIDLength",r[r.EBMLMaxSizeLength=17139]="EBMLMaxSizeLength",r[r.DocType=17026]="DocType",r[r.DocTypeVersion=17031]="DocTypeVersion",r[r.DocTypeReadVersion=17029]="DocTypeReadVersion",r[r.SeekHead=290298740]="SeekHead",r[r.Seek=19899]="Seek",r[r.SeekID=21419]="SeekID",r[r.SeekPosition=21420]="SeekPosition",r[r.Duration=17545]="Duration",r[r.Info=357149030]="Info",r[r.TimestampScale=2807729]="TimestampScale",r[r.MuxingApp=19840]="MuxingApp",r[r.WritingApp=22337]="WritingApp",r[r.Tracks=374648427]="Tracks",r[r.TrackEntry=174]="TrackEntry",r[r.TrackNumber=215]="TrackNumber",r[r.TrackUID=29637]="TrackUID",r[r.TrackType=131]="TrackType",r[r.FlagEnabled=185]="FlagEnabled",r[r.FlagDefault=136]="FlagDefault",r[r.FlagForced=21930]="FlagForced",r[r.FlagLacing=156]="FlagLacing",r[r.Language=2274716]="Language",r[r.CodecID=134]="CodecID",r[r.CodecPrivate=25506]="CodecPrivate",r[r.CodecDelay=22186]="CodecDelay",r[r.SeekPreRoll=22203]="SeekPreRoll",r[r.DefaultDuration=2352003]="DefaultDuration",r[r.Video=224]="Video",r[r.PixelWidth=176]="PixelWidth",r[r.PixelHeight=186]="PixelHeight",r[r.Audio=225]="Audio",r[r.SamplingFrequency=181]="SamplingFrequency",r[r.Channels=159]="Channels",r[r.BitDepth=25188]="BitDepth",r[r.Segment=408125543]="Segment",r[r.SimpleBlock=163]="SimpleBlock",r[r.BlockGroup=160]="BlockGroup",r[r.Block=161]="Block",r[r.BlockAdditions=30113]="BlockAdditions",r[r.BlockMore=166]="BlockMore",r[r.BlockAdditional=165]="BlockAdditional",r[r.BlockAddID=238]="BlockAddID",r[r.BlockDuration=155]="BlockDuration",r[r.ReferenceBlock=251]="ReferenceBlock",r[r.Cluster=524531317]="Cluster",r[r.Timestamp=231]="Timestamp",r[r.Cues=475249515]="Cues",r[r.CuePoint=187]="CuePoint",r[r.CueTime=179]="CueTime",r[r.CueTrackPositions=183]="CueTrackPositions",r[r.CueTrack=247]="CueTrack",r[r.CueClusterPosition=241]="CueClusterPosition",r[r.Colour=21936]="Colour",r[r.MatrixCoefficients=21937]="MatrixCoefficients",r[r.TransferCharacteristics=21946]="TransferCharacteristics",r[r.Primaries=21947]="Primaries",r[r.Range=21945]="Range",r[r.Projection=30320]="Projection",r[r.ProjectionType=30321]="ProjectionType",r[r.ProjectionPoseRoll=30325]="ProjectionPoseRoll",r[r.Attachments=423732329]="Attachments",r[r.Chapters=272869232]="Chapters",r[r.Tags=307544935]="Tags"})(I||(I={}));var jR=[I.EBML,I.Segment],XR=[I.EBMLMaxIDLength,I.EBMLMaxSizeLength,I.SeekHead,I.Info,I.Cluster,I.Tracks,I.Cues,I.Attachments,I.Chapters,I.Tags],ch=[...jR,...XR];var hE=8,uh=2,Xi=4+hE,Yi=class{constructor(e){this.reader=e,this.pos=0}readBytes(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);return this.pos+=e,new Uint8Array(t.buffer,i,e)}readU8(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+1);return this.pos++,e.getUint8(t)}readS16(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+2);return this.pos+=2,e.getInt16(t,!1)}readVarIntSize(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+1),i=e.getUint8(t),s=1,n=128;for(;(i&n)===0&&s<8;)s++,n>>=1;return s}readVarInt(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+1),i=e.getUint8(t),s=1,n=128;for(;(i&n)===0&&s<hE;)s++,n>>=1;let{view:o,offset:a}=this.reader.getViewAndOffset(this.pos,this.pos+s),c=i&n-1;for(let u=1;u<s;u++)c*=256,c+=o.getUint8(a+u);return this.pos+=s,c}readUnsignedInt(e){if(e<1||e>8)throw new Error("Bad unsigned int size "+e);let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e),s=0;for(let n=0;n<e;n++)s*=256,s+=t.getUint8(i+n);return this.pos+=e,s}readSignedInt(e){let t=this.readUnsignedInt(e);return t&1<<e*8-1&&(t-=2**(e*8)),t}readFloat(e){if(e===0)return 0;if(e!==4&&e!==8)throw new Error("Bad float size "+e);let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e),s=e===4?t.getFloat32(i,!1):t.getFloat64(i,!1);return this.pos+=e,s}readString(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);return this.pos+=e,String.fromCharCode(...new Uint8Array(t.buffer,i,e))}readElementId(){let e=this.readVarIntSize();return this.readUnsignedInt(e)}readElementSize(){let e=this.readU8();return e===255?e=null:(this.pos--,e=this.readVarInt(),e===72057594037927940&&(e=null)),e}readElementHeader(){let e=this.readElementId(),t=this.readElementSize();return{id:e,size:t}}async searchForNextElementId(e,t){let s=new Set(e);for(;this.pos<t-Xi;){this.reader.rangeIsLoaded(this.pos,this.pos+Xi)||await this.reader.loadRange(this.pos,Math.min(this.pos+1048576,t));let n=this.pos,o=this.readElementHeader();if(s.has(o.id))return n;Ki(o.size),this.pos+=o.size}return null}},Nt={avc:"V_MPEG4/ISO/AVC",hevc:"V_MPEGH/ISO/HEVC",vp8:"V_VP8",vp9:"V_VP9",av1:"V_AV1",aac:"A_AAC",mp3:"A_MPEG/L3",opus:"A_OPUS",vorbis:"A_VORBIS",flac:"A_FLAC","pcm-u8":"A_PCM/INT/LIT","pcm-s16":"A_PCM/INT/LIT","pcm-s16be":"A_PCM/INT/BIG","pcm-s24":"A_PCM/INT/LIT","pcm-s24be":"A_PCM/INT/BIG","pcm-s32":"A_PCM/INT/LIT","pcm-s32be":"A_PCM/INT/BIG","pcm-f32":"A_PCM/FLOAT/IEEE","pcm-f64":"A_PCM/FLOAT/IEEE",webvtt:"S_TEXT/WEBVTT"};function Ki(r){if(r===null)throw new Error("Undefined element size is used in a place where it is not supported.")}var dE=r=>{let t=(r.hasVideo?"video/":r.hasAudio?"audio/":"application/")+(r.isWebM?"webm":"x-matroska");if(r.codecStrings.length>0){let i=[...new Set(r.codecStrings.filter(Boolean))];t+=`; codecs="${i.join(", ")}"`}return t};var YR={1:[-1,32,40,48,56,64,80,96,112,128,160,192,224,256,320,-1],2:[-1,32,48,56,64,80,96,112,128,160,192,224,256,320,384,-1],3:[-1,32,64,96,128,160,192,224,256,288,320,352,384,416,448,-1]},KR={1:[-1,32,48,56,64,80,96,112,128,144,160,176,192,224,256,-1],2:[-1,8,16,24,32,40,48,56,64,80,96,112,128,144,160,-1],3:[-1,8,16,24,32,40,48,56,64,80,96,112,128,144,160,-1]},QR={0:[11025,12e3,8e3,-1],2:[22050,24e3,16e3,-1],3:[44100,48e3,32e3,-1]},fE=1483304551,mE=1231971951,ZR=(r,e,t,i)=>Math.floor(r===3?(12*e/t+i)*4:144*e/t+i),pE=(r,e)=>r===3?e===3?21:36:e===3?13:21,gE=(r,e)=>{let t=e.pos,i=r>>>24,s=r>>>16&255,n=r>>>8&255,o=r&255;if(i!==255&&s!==255&&n!==255&&o!==255)return e.pos+=4,null;if(e.pos+=1,i!==255||(s&224)!==224)return null;let a=s>>3&3,c=s>>1&3,u=n>>4&15,l=n>>2&3,h=n>>1&1,f=o>>6&3,d=o>>4&3,m=o>>3&1,x=o>>2&1,g=o&3,_=a===3?YR[c]?.[u]:KR[c]?.[u];if(!_||_===-1)return null;let y=_*1e3,S=QR[a]?.[l];if(!S||S===-1)return null;let T=ZR(c,y,S,h);if(e.fileSize!==null&&e.fileSize-t<T)return null;let C;return a===3?C=c===3?384:1152:c===3?C=384:c===2?C=1152:C=576,{startPos:t,totalSize:T,mpegVersionId:a,layer:c,bitrate:y,frequencyIndex:l,sampleRate:S,channel:f,modeExtension:d,copyright:m,original:x,emphasis:g,audioSamplesInFrame:C}};var Qp=1399285583,JR=79764919,xE=new Uint32Array(256);for(let r=0;r<256;r++){let e=r<<24;for(let t=0;t<8;t++)e=e&2147483648?e<<1^JR:e<<1;xE[r]=e>>>0&4294967295}var _E=r=>{let e=At(r),t=e.getUint32(22,!0);e.setUint32(22,0,!0);let i=0;for(let s=0;s<r.length;s++){let n=r[s];i=(i<<8^xE[i>>>24^n])>>>0}return e.setUint32(22,t,!0),i},bE=(r,e,t)=>{let i=0,s=null;if(r.length>0)if(e.codec==="vorbis"){w(e.vorbisInfo);let n=e.vorbisInfo.modeBlockflags.length,a=(1<<bC(n-1))-1<<1,c=(r[0]&a)>>1;if(c>=e.vorbisInfo.modeBlockflags.length)throw new Error("Invalid mode number.");let u=t,l=e.vorbisInfo.modeBlockflags[c];if(s=e.vorbisInfo.blocksizes[l],l===1){let h=(a|1)+1,f=r[0]&h?1:0;u=e.vorbisInfo.blocksizes[f]}i=u!==null?u+s>>2:0}else e.codec==="opus"&&(i=XC(r).durationInSamples);return{durationInSamples:i,vorbisBlockSize:s}},yE=r=>{let e="audio/ogg";if(r.codecStrings){let t=[...new Set(r.codecStrings)];e+=`; codecs="${t.join(", ")}"`}return e};var gn=27,Qi=282,TE=Qi+65025,pn=class{constructor(e){this.reader=e,this.pos=0}readBytes(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);return this.pos+=e,new Uint8Array(t.buffer,i,e)}readU8(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+1);return this.pos+=1,e.getUint8(t)}readU32(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+4);return this.pos+=4,e.getUint32(t,!0)}readI32(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+4);return this.pos+=4,e.getInt32(t,!0)}readI64(){let e=this.readU32();return this.readI32()*4294967296+e}readAscii(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);this.pos+=e;let s="";for(let n=0;n<e;n++)s+=String.fromCharCode(t.getUint8(i+n));return s}readPageHeader(){let e=this.pos;if(this.readU32()!==Qp)return null;this.pos+=1;let i=this.readU8(),s=this.readI64(),n=this.readU32(),o=this.readU32(),a=this.readU32(),c=this.readU8(),u=new Uint8Array(c);for(let d=0;d<c;d++)u[d]=this.readU8();let l=27+c,h=u.reduce((d,m)=>d+m,0),f=l+h;return{headerStartPos:e,totalSize:f,dataStartPos:e+l,dataSize:h,headerType:i,granulePosition:s,serialNumber:n,sequenceNumber:o,checksum:a,lacingValues:u}}findNextPageHeader(e){for(;this.pos<e-3;){let t=this.readU32(),i=t&255,s=t>>>8&255,n=t>>>16&255,o=t>>>24&255,a=79;if(!(i!==a&&s!==a&&n!==a&&o!==a)){if(this.pos-=4,t===Qp)return!0;this.pos+=1}}return!1}};var Bt=class{constructor(e){this.input=e}};var pt=new Uint8Array(0),de=class r{constructor(e,t,i,s,n=-1,o){if(this.data=e,this.type=t,this.timestamp=i,this.duration=s,this.sequenceNumber=n,e===pt&&o===void 0)throw new Error("Internal error: byteLength must be explicitly provided when constructing metadata-only packets.");if(o===void 0&&(o=e.byteLength),!(e instanceof Uint8Array))throw new TypeError("data must be a Uint8Array.");if(t!=="key"&&t!=="delta")throw new TypeError('type must be either "key" or "delta".');if(!Number.isFinite(i))throw new TypeError("timestamp must be a number.");if(!Number.isFinite(s)||s<0)throw new TypeError("duration must be a non-negative number.");if(!Number.isFinite(n))throw new TypeError("sequenceNumber must be a number.");if(!Number.isInteger(o)||o<0)throw new TypeError("byteLength must be a non-negative integer.");this.byteLength=o}get isMetadataOnly(){return this.data===pt}get microsecondTimestamp(){return Math.trunc(ar*this.timestamp)}get microsecondDuration(){return Math.trunc(ar*this.duration)}toEncodedVideoChunk(){if(this.isMetadataOnly)throw new TypeError("Metadata-only packets cannot be converted to a video chunk.");if(typeof EncodedVideoChunk>"u")throw new Error("Your browser does not support EncodedVideoChunk.");return new EncodedVideoChunk({data:this.data,type:this.type,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration})}toEncodedAudioChunk(){if(this.isMetadataOnly)throw new TypeError("Metadata-only packets cannot be converted to an audio chunk.");if(typeof EncodedAudioChunk>"u")throw new Error("Your browser does not support EncodedAudioChunk.");return new EncodedAudioChunk({data:this.data,type:this.type,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration})}static fromEncodedChunk(e){if(!(e instanceof EncodedVideoChunk||e instanceof EncodedAudioChunk))throw new TypeError("chunk must be an EncodedVideoChunk or EncodedAudioChunk.");let t=new Uint8Array(e.byteLength);return e.copyTo(t),new r(t,e.type,e.timestamp/1e6,(e.duration??0)/1e6)}clone(e){if(e!==void 0&&(typeof e!="object"||e===null))throw new TypeError("options, when provided, must be an object.");if(e?.timestamp!==void 0&&!Number.isFinite(e.timestamp))throw new TypeError("options.timestamp, when provided, must be a number.");if(e?.duration!==void 0&&!Number.isFinite(e.duration))throw new TypeError("options.duration, when provided, must be a number.");return new r(this.data,this.type,e?.timestamp??this.timestamp,e?.duration??this.duration,this.sequenceNumber,this.byteLength)}};var wE=r=>{let i=r,s=4096,n=0,o=12,a=0;for(i<0&&(i=-i,n=128),i+=33,i>8191&&(i=8191);(i&s)!==s&&o>=5;)s>>=1,o--;return a=i>>o-4&15,~(n|o-5<<4|a)&255},SE=r=>{let t=0,i=0,s=~r;s&128&&(s&=-129,t=-1),i=((s&240)>>4)+5;let n=(1<<i|(s&15)<<i-4|1<<i-5)-33;return t===0?n:-n},vE=r=>{let t=2048,i=0,s=11,n=0,o=r;for(o<0&&(o=-o,i=128),o>4095&&(o=4095);(o&t)!==t&&s>=5;)t>>=1,s--;return n=o>>(s===4?1:s-4)&15,(i|s-4<<4|n)^85},CE=r=>{let e=0,t=0,i=r^85;i&128&&(i&=-129,e=-1),t=((i&240)>>4)+4;let s=0;return t!==4?s=1<<t|(i&15)<<t-4|1<<t-5:s=i<<1|1,e===0?s:-s};var lr=class r{get displayWidth(){return this.rotation%180===0?this.codedWidth:this.codedHeight}get displayHeight(){return this.rotation%180===0?this.codedHeight:this.codedWidth}get microsecondTimestamp(){return Math.trunc(ar*this.timestamp)}get microsecondDuration(){return Math.trunc(ar*this.duration)}constructor(e,t){if(this._closed=!1,e instanceof ArrayBuffer||ArrayBuffer.isView(e)){if(!t||typeof t!="object")throw new TypeError("init must be an object.");if(!("format"in t)||typeof t.format!="string")throw new TypeError("init.format must be a string.");if(!Number.isInteger(t.codedWidth)||t.codedWidth<=0)throw new TypeError("init.codedWidth must be a positive integer.");if(!Number.isInteger(t.codedHeight)||t.codedHeight<=0)throw new TypeError("init.codedHeight must be a positive integer.");if(t.rotation!==void 0&&![0,90,180,270].includes(t.rotation))throw new TypeError("init.rotation, when provided, must be 0, 90, 180, or 270.");if(!Number.isFinite(t.timestamp))throw new TypeError("init.timestamp must be a number.");if(t.duration!==void 0&&(!Number.isFinite(t.duration)||t.duration<0))throw new TypeError("init.duration, when provided, must be a non-negative number.");this._data=yt(e).slice(),this.format=t.format,this.codedWidth=t.codedWidth,this.codedHeight=t.codedHeight,this.rotation=t.rotation??0,this.timestamp=t.timestamp,this.duration=t.duration??0,this.colorSpace=new VideoColorSpace(t.colorSpace)}else if(typeof VideoFrame<"u"&&e instanceof VideoFrame){if(t?.rotation!==void 0&&![0,90,180,270].includes(t.rotation))throw new TypeError("init.rotation, when provided, must be 0, 90, 180, or 270.");if(t?.timestamp!==void 0&&!Number.isFinite(t?.timestamp))throw new TypeError("init.timestamp, when provided, must be a number.");if(t?.duration!==void 0&&(!Number.isFinite(t.duration)||t.duration<0))throw new TypeError("init.duration, when provided, must be a non-negative number.");this._data=e,this.format=e.format,this.codedWidth=e.codedWidth,this.codedHeight=e.codedHeight,this.rotation=t?.rotation??0,this.timestamp=t?.timestamp??e.timestamp/1e6,this.duration=t?.duration??(e.duration??0)/1e6,this.colorSpace=e.colorSpace}else if(typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement||typeof SVGImageElement<"u"&&e instanceof SVGImageElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap||typeof HTMLVideoElement<"u"&&e instanceof HTMLVideoElement||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof OffscreenCanvas<"u"&&e instanceof OffscreenCanvas){if(!t||typeof t!="object")throw new TypeError("init must be an object.");if(t.rotation!==void 0&&![0,90,180,270].includes(t.rotation))throw new TypeError("init.rotation, when provided, must be 0, 90, 180, or 270.");if(!Number.isFinite(t.timestamp))throw new TypeError("init.timestamp must be a number.");if(t.duration!==void 0&&(!Number.isFinite(t.duration)||t.duration<0))throw new TypeError("init.duration, when provided, must be a non-negative number.");if(typeof VideoFrame<"u")return new r(new VideoFrame(e,{timestamp:Math.trunc(t.timestamp*ar),duration:Math.trunc((t.duration??0)*ar)}),t);let i=0,s=0;if("naturalWidth"in e?(i=e.naturalWidth,s=e.naturalHeight):"videoWidth"in e?(i=e.videoWidth,s=e.videoHeight):"width"in e&&(i=Number(e.width),s=Number(e.height)),!i||!s)throw new TypeError("Could not determine dimensions.");let n=new OffscreenCanvas(i,s),o=n.getContext("2d",{alpha:!1,willReadFrequently:!0});w(o),o.drawImage(e,0,0),this._data=n,this.format="RGBX",this.codedWidth=i,this.codedHeight=s,this.rotation=t.rotation??0,this.timestamp=t.timestamp,this.duration=t.duration??0,this.colorSpace=new VideoColorSpace({matrix:"rgb",primaries:"bt709",transfer:"iec61966-2-1",fullRange:!0})}else throw new TypeError("Invalid data type: Must be a BufferSource or CanvasImageSource.")}clone(){if(this._closed)throw new Error("VideoSample is closed.");return w(this._data!==null),ja(this._data)?new r(this._data.clone(),{timestamp:this.timestamp,duration:this.duration,rotation:this.rotation}):this._data instanceof Uint8Array?new r(this._data.slice(),{format:this.format,codedWidth:this.codedWidth,codedHeight:this.codedHeight,timestamp:this.timestamp,duration:this.duration,colorSpace:this.colorSpace,rotation:this.rotation}):new r(this._data,{format:this.format,codedWidth:this.codedWidth,codedHeight:this.codedHeight,timestamp:this.timestamp,duration:this.duration,colorSpace:this.colorSpace,rotation:this.rotation})}close(){this._closed||(ja(this._data)?this._data.close():this._data=null,this._closed=!0)}allocationSize(){if(this._closed)throw new Error("VideoSample is closed.");return w(this._data!==null),ja(this._data)?this._data.allocationSize():this._data instanceof Uint8Array?this._data.byteLength:this.codedWidth*this.codedHeight*4}async copyTo(e){if(!cn(e))throw new TypeError("destination must be an ArrayBuffer or an ArrayBuffer view.");if(this._closed)throw new Error("VideoSample is closed.");if(w(this._data!==null),ja(this._data))await this._data.copyTo(e);else if(this._data instanceof Uint8Array)yt(e).set(this._data);else{let i=this._data.getContext("2d",{alpha:!1});w(i);let s=i.getImageData(0,0,this.codedWidth,this.codedHeight);yt(e).set(s.data)}}toVideoFrame(){if(this._closed)throw new Error("VideoSample is closed.");return w(this._data!==null),ja(this._data)?new VideoFrame(this._data,{timestamp:this.microsecondTimestamp,duration:this.microsecondDuration||void 0}):this._data instanceof Uint8Array?new VideoFrame(this._data,{format:this.format,codedWidth:this.codedWidth,codedHeight:this.codedHeight,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration,colorSpace:this.colorSpace}):new VideoFrame(this._data,{timestamp:this.microsecondTimestamp,duration:this.microsecondDuration})}draw(e,t,i,s,n,o,a,c,u){let l=0,h=0,f=this.displayWidth,d=this.displayHeight,m=0,x=0,g=this.displayWidth,_=this.displayHeight;if(o!==void 0?(l=t,h=i,f=s,d=n,m=o,x=a,c!==void 0?(g=c,_=u):(g=f,_=d)):(m=t,x=i,s!==void 0&&(g=s,_=n)),!(typeof CanvasRenderingContext2D<"u"&&e instanceof CanvasRenderingContext2D||typeof OffscreenCanvasRenderingContext2D<"u"&&e instanceof OffscreenCanvasRenderingContext2D))throw new TypeError("context must be a CanvasRenderingContext2D or OffscreenCanvasRenderingContext2D.");if(!Number.isFinite(l))throw new TypeError("sx must be a number.");if(!Number.isFinite(h))throw new TypeError("sy must be a number.");if(!Number.isFinite(f)||f<0)throw new TypeError("sWidth must be a non-negative number.");if(!Number.isFinite(d)||d<0)throw new TypeError("sHeight must be a non-negative number.");if(!Number.isFinite(m))throw new TypeError("dx must be a number.");if(!Number.isFinite(x))throw new TypeError("dy must be a number.");if(!Number.isFinite(g)||g<0)throw new TypeError("dWidth must be a non-negative number.");if(!Number.isFinite(_)||_<0)throw new TypeError("dHeight must be a non-negative number.");if(this._closed)throw new Error("VideoSample is closed.");this.rotation===90?[l,h,f,d]=[h,this.codedHeight-l-f,d,f]:this.rotation===180?[l,h]=[this.codedWidth-l-f,this.codedHeight-h-d]:this.rotation===270&&([l,h,f,d]=[this.codedWidth-h-d,l,d,f]);let y=this.toCanvasImageSource();e.save();let S=m+g/2,T=x+_/2;e.translate(S,T),e.rotate(this.rotation*Math.PI/180);let C=this.rotation%180===0?1:g/_;e.scale(1/C,C),e.drawImage(y,l,h,f,d,-g/2,-_/2,g,_),e.restore()}toCanvasImageSource(){if(this._closed)throw new Error("VideoSample is closed.");if(w(this._data!==null),this._data instanceof Uint8Array){let e=this.toVideoFrame();return queueMicrotask(()=>e.close()),e}else return this._data}setRotation(e){if(![0,90,180,270].includes(e))throw new TypeError("newRotation must be 0, 90, 180, or 270.");this.rotation=e}setTimestamp(e){if(!Number.isFinite(e))throw new TypeError("newTimestamp must be a number.");this.timestamp=e}setDuration(e){if(!Number.isFinite(e)||e<0)throw new TypeError("newDuration must be a non-negative number.");this.duration=e}},ja=r=>typeof VideoFrame<"u"&&r instanceof VideoFrame,Zp=new Set(["f32","f32-planar","s16","s16-planar","s32","s32-planar","u8","u8-planar"]),Lt=class r{get microsecondTimestamp(){return Math.trunc(ar*this.timestamp)}get microsecondDuration(){return Math.trunc(ar*this.duration)}constructor(e){if(this._closed=!1,Ya(e)){if(e.format===null)throw new TypeError("AudioData with null format is not supported.");this._data=e,this.format=e.format,this.sampleRate=e.sampleRate,this.numberOfFrames=e.numberOfFrames,this.numberOfChannels=e.numberOfChannels,this.timestamp=e.timestamp/1e6,this.duration=e.numberOfFrames/e.sampleRate}else{if(!e||typeof e!="object")throw new TypeError("Invalid AudioDataInit: must be an object.");if(!Zp.has(e.format))throw new TypeError("Invalid AudioDataInit: invalid format.");if(!Number.isFinite(e.sampleRate)||e.sampleRate<=0)throw new TypeError("Invalid AudioDataInit: sampleRate must be > 0.");if(!Number.isInteger(e.numberOfChannels)||e.numberOfChannels===0)throw new TypeError("Invalid AudioDataInit: numberOfChannels must be an integer > 0.");if(!Number.isFinite(e?.timestamp))throw new TypeError("init.timestamp must be a number.");let t=e.data.byteLength/(Xa(e.format)*e.numberOfChannels);if(!Number.isInteger(t))throw new TypeError("Invalid AudioDataInit: data size is not a multiple of frame size.");this.format=e.format,this.sampleRate=e.sampleRate,this.numberOfFrames=t,this.numberOfChannels=e.numberOfChannels,this.timestamp=e.timestamp,this.duration=t/e.sampleRate;let i;if(e.data instanceof ArrayBuffer)i=new Uint8Array(e.data);else if(ArrayBuffer.isView(e.data))i=new Uint8Array(e.data.buffer,e.data.byteOffset,e.data.byteLength);else throw new TypeError("Invalid AudioDataInit: data is not a BufferSource.");let s=this.numberOfFrames*this.numberOfChannels*Xa(this.format);if(i.byteLength<s)throw new TypeError("Invalid AudioDataInit: insufficient data size.");this._data=i}}allocationSize(e){if(!e||typeof e!="object")throw new TypeError("options must be an object.");if(!Number.isInteger(e.planeIndex)||e.planeIndex<0)throw new TypeError("planeIndex must be a non-negative integer.");if(e.format!==void 0&&!Zp.has(e.format))throw new TypeError("Invalid format.");if(e.frameOffset!==void 0&&(!Number.isInteger(e.frameOffset)||e.frameOffset<0))throw new TypeError("frameOffset must be a non-negative integer.");if(e.frameCount!==void 0&&(!Number.isInteger(e.frameCount)||e.frameCount<0))throw new TypeError("frameCount must be a non-negative integer.");if(this._closed)throw new Error("AudioSample is closed.");let t=e.format??this.format,i=e.frameOffset??0;if(i>=this.numberOfFrames)throw new RangeError("frameOffset out of range");let s=e.frameCount!==void 0?e.frameCount:this.numberOfFrames-i;if(s>this.numberOfFrames-i)throw new RangeError("frameCount out of range");let n=Xa(t),o=lh(t);if(o&&e.planeIndex>=this.numberOfChannels)throw new RangeError("planeIndex out of range");if(!o&&e.planeIndex!==0)throw new RangeError("planeIndex out of range");return(o?s:s*this.numberOfChannels)*n}copyTo(e,t){if(!cn(e))throw new TypeError("destination must be an ArrayBuffer or an ArrayBuffer view.");if(!t||typeof t!="object")throw new TypeError("options must be an object.");if(!Number.isInteger(t.planeIndex)||t.planeIndex<0)throw new TypeError("planeIndex must be a non-negative integer.");if(t.format!==void 0&&!Zp.has(t.format))throw new TypeError("Invalid format.");if(t.frameOffset!==void 0&&(!Number.isInteger(t.frameOffset)||t.frameOffset<0))throw new TypeError("frameOffset must be a non-negative integer.");if(t.frameCount!==void 0&&(!Number.isInteger(t.frameCount)||t.frameCount<0))throw new TypeError("frameCount must be a non-negative integer.");if(this._closed)throw new Error("AudioSample is closed.");let{planeIndex:i,format:s,frameCount:n,frameOffset:o}=t,a=s??this.format;if(!a)throw new Error("Destination format not determined");let c=this.numberOfFrames,u=this.numberOfChannels,l=o??0;if(l>=c)throw new RangeError("frameOffset out of range");let h=n!==void 0?n:c-l;if(h>c-l)throw new RangeError("frameCount out of range");let f=Xa(a),d=lh(a);if(d&&i>=u)throw new RangeError("planeIndex out of range");if(!d&&i!==0)throw new RangeError("planeIndex out of range");let x=(d?h:h*u)*f;if(e.byteLength<x)throw new RangeError("Destination buffer is too small");let g=At(e),_=tD(a);if(Ya(this._data))if(d)if(a==="f32-planar")this._data.copyTo(e,{planeIndex:i,frameOffset:l,frameCount:h,format:"f32-planar"});else{let y=new ArrayBuffer(h*4),S=new Float32Array(y);this._data.copyTo(S,{planeIndex:i,frameOffset:l,frameCount:h,format:"f32-planar"});let T=new DataView(y);for(let C=0;C<h;C++){let v=C*f,E=T.getFloat32(C*4,!0);_(g,v,E)}}else{let y=u,S=new Float32Array(h);for(let T=0;T<y;T++){this._data.copyTo(S,{planeIndex:T,frameOffset:l,frameCount:h,format:"f32-planar"});for(let C=0;C<h;C++){let E=(C*y+T)*f;_(g,E,S[C])}}}else{let y=this._data,S=new DataView(y.buffer,y.byteOffset,y.byteLength),T=this.format,C=eD(T),v=Xa(T),E=lh(T);for(let M=0;M<h;M++)if(d){let A=M*f,B;E?B=(i*c+(M+l))*v:B=((M+l)*u+i)*v;let k=C(S,B);_(g,A,k)}else for(let A=0;A<u;A++){let k=(M*u+A)*f,L;E?L=(A*c+(M+l))*v:L=((M+l)*u+A)*v;let j=C(S,L);_(g,k,j)}}}clone(){if(this._closed)throw new Error("AudioSample is closed.");if(Ya(this._data)){let e=new r(this._data.clone());return e.setTimestamp(this.timestamp),e}else return new r({format:this.format,sampleRate:this.sampleRate,numberOfFrames:this.numberOfFrames,numberOfChannels:this.numberOfChannels,timestamp:this.timestamp,data:this._data})}close(){this._closed||(Ya(this._data)?this._data.close():this._data=new Uint8Array(0),this._closed=!0)}toAudioData(){if(this._closed)throw new Error("AudioSample is closed.");if(Ya(this._data)){if(this._data.timestamp===this.microsecondTimestamp)return this._data.clone();if(lh(this.format)){let e=this.allocationSize({planeIndex:0,format:this.format}),t=new ArrayBuffer(e*this.numberOfChannels);for(let i=0;i<this.numberOfChannels;i++)this.copyTo(new Uint8Array(t,i*e,e),{planeIndex:i,format:this.format});return new AudioData({format:this.format,sampleRate:this.sampleRate,numberOfFrames:this.numberOfFrames,numberOfChannels:this.numberOfChannels,timestamp:this.microsecondTimestamp,data:t})}else{let e=new ArrayBuffer(this.allocationSize({planeIndex:0,format:this.format}));return this.copyTo(e,{planeIndex:0,format:this.format}),new AudioData({format:this.format,sampleRate:this.sampleRate,numberOfFrames:this.numberOfFrames,numberOfChannels:this.numberOfChannels,timestamp:this.microsecondTimestamp,data:e})}}else return new AudioData({format:this.format,sampleRate:this.sampleRate,numberOfFrames:this.numberOfFrames,numberOfChannels:this.numberOfChannels,timestamp:this.microsecondTimestamp,data:this._data})}toAudioBuffer(){if(this._closed)throw new Error("AudioSample is closed.");let e=new AudioBuffer({numberOfChannels:this.numberOfChannels,length:this.numberOfFrames,sampleRate:this.sampleRate}),t=new Float32Array(this.allocationSize({planeIndex:0,format:"f32-planar"})/4);for(let i=0;i<this.numberOfChannels;i++)this.copyTo(t,{planeIndex:i,format:"f32-planar"}),e.copyToChannel(t,i);return e}setTimestamp(e){if(!Number.isFinite(e))throw new TypeError("newTimestamp must be a number.");this.timestamp=e}static fromAudioBuffer(e,t){if(!(e instanceof AudioBuffer))throw new TypeError("audioBuffer must be an AudioBuffer.");let i=64*1024*1024,s=e.numberOfChannels,n=e.sampleRate,o=e.length,a=Math.floor(i/s),c=0,u=o,l=[];for(;u>0;){let h=Math.min(a,u),f=new Float32Array(s*h);for(let m=0;m<s;m++)e.copyFromChannel(f.subarray(m*h,m*h+h),m,c);let d=new r({format:"f32-planar",sampleRate:n,numberOfFrames:h,numberOfChannels:s,timestamp:t+c/n,data:f});l.push(d),c+=h,u-=h}return l}},Xa=r=>{switch(r){case"u8":case"u8-planar":return 1;case"s16":case"s16-planar":return 2;case"s32":case"s32-planar":return 4;case"f32":case"f32-planar":return 4;default:throw new Error("Unknown AudioSampleFormat")}},lh=r=>{switch(r){case"u8-planar":case"s16-planar":case"s32-planar":case"f32-planar":return!0;default:return!1}},eD=r=>{switch(r){case"u8":case"u8-planar":return(e,t)=>(e.getUint8(t)-128)/128;case"s16":case"s16-planar":return(e,t)=>e.getInt16(t,!0)/32768;case"s32":case"s32-planar":return(e,t)=>e.getInt32(t,!0)/2147483648;case"f32":case"f32-planar":return(e,t)=>e.getFloat32(t,!0)}},tD=r=>{switch(r){case"u8":case"u8-planar":return(e,t,i)=>e.setUint8(t,Qe((i+1)*127.5,0,255));case"s16":case"s16-planar":return(e,t,i)=>e.setInt16(t,Qe(Math.round(i*32767),-32768,32767),!0);case"s32":case"s32-planar":return(e,t,i)=>e.setInt32(t,Qe(Math.round(i*2147483647),-2147483648,2147483647),!0);case"f32":case"f32-planar":return(e,t,i)=>e.setFloat32(t,i,!0)}},Ya=r=>typeof AudioData<"u"&&r instanceof AudioData;var xn=r=>{if(!r||typeof r!="object")throw new TypeError("options must be an object.");if(r.metadataOnly!==void 0&&typeof r.metadataOnly!="boolean")throw new TypeError("options.metadataOnly, when defined, must be a boolean.");if(r.verifyKeyPackets!==void 0&&typeof r.verifyKeyPackets!="boolean")throw new TypeError("options.verifyKeyPackets, when defined, must be a boolean.");if(r.verifyKeyPackets&&r.metadataOnly)throw new TypeError("options.verifyKeyPackets and options.metadataOnly cannot be enabled together.")},Zi=r=>{if(typeof r!="number"||Number.isNaN(r))throw new TypeError("timestamp must be a number.")},Jp=(r,e,t)=>t.verifyKeyPackets?e.then(async i=>{if(!i||i.type==="delta")return i;let s=await r.determinePacketType(i);return s&&(i.type=s),i}):e,Ji=class{constructor(e){if(!(e instanceof _n))throw new TypeError("track must be an InputTrack.");this._track=e}getFirstPacket(e={}){return xn(e),Jp(this._track,this._track._backing.getFirstPacket(e),e)}getPacket(e,t={}){return Zi(e),xn(t),Jp(this._track,this._track._backing.getPacket(e,t),t)}getNextPacket(e,t={}){if(!(e instanceof de))throw new TypeError("packet must be an EncodedPacket.");return xn(t),Jp(this._track,this._track._backing.getNextPacket(e,t),t)}async getKeyPacket(e,t={}){if(Zi(e),xn(t),!t.verifyKeyPackets)return this._track._backing.getKeyPacket(e,t);let i=await this._track._backing.getKeyPacket(e,t);return!i||i.type==="delta"?i:await this._track.determinePacketType(i)==="delta"?this.getKeyPacket(i.timestamp-1/this._track.timeResolution,t):i}async getNextKeyPacket(e,t={}){if(!(e instanceof de))throw new TypeError("packet must be an EncodedPacket.");if(xn(t),!t.verifyKeyPackets)return this._track._backing.getNextKeyPacket(e,t);let i=await this._track._backing.getNextKeyPacket(e,t);return!i||i.type==="delta"?i:await this._track.determinePacketType(i)==="delta"?this.getNextKeyPacket(i,t):i}packets(e,t,i={}){if(e!==void 0&&!(e instanceof de))throw new TypeError("startPacket must be an EncodedPacket.");if(e!==void 0&&e.isMetadataOnly&&!i?.metadataOnly)throw new TypeError("startPacket can only be metadata-only if options.metadataOnly is enabled.");if(t!==void 0&&!(t instanceof de))throw new TypeError("endPacket must be an EncodedPacket.");xn(i);let s=[],{promise:n,resolve:o}=Ke(),{promise:a,resolve:c}=Ke(),u=!1,l=!1,h=null,f=[],d=()=>Math.max(2,f.length);return(async()=>{let m=e??await this.getFirstPacket(i);for(;m&&!l&&!(t&&m.sequenceNumber>=t?.sequenceNumber);){if(s.length>d()){({promise:a,resolve:c}=Ke()),await a;continue}s.push(m),o(),{promise:n,resolve:o}=Ke(),m=await this.getNextPacket(m,i)}u=!0,o()})().catch(m=>{h||(h=m,o())}),{async next(){for(;;){if(l)return{value:void 0,done:!0};if(h)throw h;if(s.length>0){let m=s.shift(),x=performance.now();for(f.push(x);f.length>0&&x-f[0]>=1e3;)f.shift();return c(),{value:m,done:!1}}else{if(u)return{value:void 0,done:!0};await n}}},async return(){return l=!0,c(),o(),{value:void 0,done:!0}},async throw(m){throw m},[Symbol.asyncIterator](){return this}}}},Ka=class{constructor(e,t){this.onSample=e,this.onError=t}},Qa=class{mediaSamplesInRange(e=0,t=1/0){Zi(e),Zi(t);let i=[],s=!1,n=null,{promise:o,resolve:a}=Ke(),{promise:c,resolve:u}=Ke(),l=!1,h=!1,f=!1,d=null;return(async()=>{let m=new Error,x=await this._createDecoder(C=>{if(u(),C.timestamp>=t&&(h=!0),h){C.close();return}n&&(C.timestamp>e?(i.push(n),s=!0):n.close()),C.timestamp>=e&&(i.push(C),s=!0),n=s?null:C,i.length>0&&(a(),{promise:o,resolve:a}=Ke())},C=>{d||(C.stack=m.stack,d=C,a())}),g=this._createPacketSink(),_=await g.getKeyPacket(e,{verifyKeyPackets:!0})??await g.getFirstPacket();if(!_)return;let y=_,S;if(t<1/0){let C=await g.getPacket(t),v=C?C.type==="key"&&C.timestamp===t?C:await g.getNextKeyPacket(C,{verifyKeyPackets:!0}):null;v&&(S=v)}let T=g.packets(_,S);for(await T.next();y&&!h;){let C=EE(i.length);if(i.length+x.getDecodeQueueSize()>C){({promise:c,resolve:u}=Ke()),await c;continue}x.decode(y);let v=await T.next();if(v.done)break;y=v.value}await T.return(),f||await x.flush(),x.close(),!s&&n&&i.push(n),l=!0,a()})().catch(m=>{d||(d=m,a())}),{async next(){for(;;){if(f)return{value:void 0,done:!0};if(d)throw d;if(i.length>0){let m=i.shift();return u(),{value:m,done:!1}}else if(!l)await o;else return{value:void 0,done:!0}}},async return(){f=!0,h=!0,u(),a(),n?.close();for(let m of i)m.close();return{value:void 0,done:!0}},async throw(m){throw m},[Symbol.asyncIterator](){return this}}}mediaSamplesAtTimestamps(e){pC(e);let t=mC(e),i=[],s=[],{promise:n,resolve:o}=Ke(),{promise:a,resolve:c}=Ke(),u=!1,l=!1,h=null,f=d=>{s.push(d),o(),{promise:n,resolve:o}=Ke()};return(async()=>{let d=new Error,m=await this._createDecoder(C=>{if(c(),l){C.close();return}let v=0;for(;i.length>0&&C.timestamp-i[0]>-1e-10;)v++,i.shift();if(v>0)for(let E=0;E<v;E++)f(E<v-1?C.clone():C);else C.close()},C=>{h||(C.stack=d.stack,h=C,o())}),x=this._createPacketSink(),g=null,_=null,y=-1,S=async()=>{w(_);let C=_;for(m.decode(C);C.sequenceNumber<y;){let v=EE(s.length);for(;s.length+m.getDecodeQueueSize()>v&&!l;)({promise:a,resolve:c}=Ke()),await a;if(l)break;let E=await x.getNextPacket(C);w(E),C=E,m.decode(E)}y=-1},T=async()=>{await m.flush();for(let C=0;C<i.length;C++)f(null);i.length=0};for await(let C of t){if(Zi(C),l)break;let v=await x.getPacket(C),E=v&&await x.getKeyPacket(C,{verifyKeyPackets:!0});if(!E){y!==-1&&(await S(),await T()),f(null),g=null;continue}g&&(E.sequenceNumber!==_.sequenceNumber||v.timestamp<g.timestamp)&&(await S(),await T()),i.push(v.timestamp),y=Math.max(v.sequenceNumber,y),g=v,_=E}l||(y!==-1&&await S(),await T()),m.close(),u=!0,o()})().catch(d=>{h||(h=d,o())}),{async next(){for(;;){if(l)return{value:void 0,done:!0};if(h)throw h;if(s.length>0){let d=s.shift();return w(d!==void 0),c(),{value:d,done:!1}}else if(!u)await n;else return{value:void 0,done:!0}}},async return(){l=!0,c(),o();for(let d of s)d?.close();return{value:void 0,done:!0}},async throw(d){throw d},[Symbol.asyncIterator](){return this}}}},EE=r=>r===0?40:8,eg=class extends Ka{constructor(e,t,i,s,n,o){super(e,t),this.rotation=n,this.timeResolution=o,this.decoder=null,this.customDecoder=null,this.customDecoderCallSerializer=new ii,this.customDecoderQueueSize=0,this.sampleQueue=[];let a=u=>{if(this.sampleQueue.length>0&&u.timestamp>=he(this.sampleQueue).timestamp){for(let h of this.sampleQueue)this.finalizeAndEmitSample(h);this.sampleQueue.length=0}let l=J(this.sampleQueue,u.timestamp,h=>h.timestamp);this.sampleQueue.splice(l+1,0,u)},c=Wl.find(u=>u.supports(i,s));c?(this.customDecoder=new c,this.customDecoder.codec=i,this.customDecoder.config=s,this.customDecoder.onSample=u=>{if(!(u instanceof lr))throw new TypeError("The argument passed to onSample must be a VideoSample.");a(u)},this.customDecoderCallSerializer.call(()=>this.customDecoder.init())):(this.decoder=new VideoDecoder({output:u=>a(new lr(u)),error:t}),this.decoder.configure(s))}finalizeAndEmitSample(e){e.setTimestamp(Math.round(e.timestamp*this.timeResolution)/this.timeResolution),e.setDuration(Math.round(e.duration*this.timeResolution)/this.timeResolution),e.setRotation(this.rotation),this.onSample(e)}getDecodeQueueSize(){return this.customDecoder?this.customDecoderQueueSize:(w(this.decoder),this.decoder.decodeQueueSize)}decode(e){this.customDecoder?(this.customDecoderQueueSize++,this.customDecoderCallSerializer.call(()=>this.customDecoder.decode(e)).then(()=>this.customDecoderQueueSize--)):(w(this.decoder),this.decoder.decode(e.toEncodedVideoChunk()))}async flush(){this.customDecoder?await this.customDecoderCallSerializer.call(()=>this.customDecoder.flush()):(w(this.decoder),await this.decoder.flush());for(let e of this.sampleQueue)this.finalizeAndEmitSample(e);this.sampleQueue.length=0}close(){this.customDecoder?this.customDecoderCallSerializer.call(()=>this.customDecoder.close()):(w(this.decoder),this.decoder.close());for(let e of this.sampleQueue)e.close();this.sampleQueue.length=0}},Za=class extends Qa{constructor(e){if(!(e instanceof Ir))throw new TypeError("videoTrack must be an InputVideoTrack.");super(),this._videoTrack=e}async _createDecoder(e,t){if(!await this._videoTrack.canDecode())throw new Error("This video track cannot be decoded by this browser. Make sure to check decodability before using a track.");let i=this._videoTrack.codec,s=this._videoTrack.rotation,n=await this._videoTrack.getDecoderConfig(),o=this._videoTrack.timeResolution;return w(i&&n),new eg(e,t,i,n,s,o)}_createPacketSink(){return new Ji(this._videoTrack)}async getSample(e){Zi(e);for await(let t of this.mediaSamplesAtTimestamps([e]))return t;throw new Error("Internal error: Iterator returned nothing.")}samples(e=0,t=1/0){return this.mediaSamplesInRange(e,t)}samplesAtTimestamps(e){return this.mediaSamplesAtTimestamps(e)}};var tg=class extends Ka{constructor(e,t,i,s){super(e,t),this.decoder=null,this.customDecoder=null,this.customDecoderCallSerializer=new ii,this.customDecoderQueueSize=0;let n=a=>{let c=s.sampleRate;a.setTimestamp(Math.round(a.timestamp*c)/c),e(a)},o=$l.find(a=>a.supports(i,s));o?(this.customDecoder=new o,this.customDecoder.codec=i,this.customDecoder.config=s,this.customDecoder.onSample=a=>{if(!(a instanceof Lt))throw new TypeError("The argument passed to onSample must be an AudioSample.");n(a)},this.customDecoderCallSerializer.call(()=>this.customDecoder.init())):(this.decoder=new AudioDecoder({output:a=>n(new Lt(a)),error:t}),this.decoder.configure(s))}getDecodeQueueSize(){return this.customDecoder?this.customDecoderQueueSize:(w(this.decoder),this.decoder.decodeQueueSize)}decode(e){this.customDecoder?(this.customDecoderQueueSize++,this.customDecoderCallSerializer.call(()=>this.customDecoder.decode(e)).then(()=>this.customDecoderQueueSize--)):(w(this.decoder),this.decoder.decode(e.toEncodedAudioChunk()))}flush(){return this.customDecoder?this.customDecoderCallSerializer.call(()=>this.customDecoder.flush()):(w(this.decoder),this.decoder.flush())}close(){this.customDecoder?this.customDecoderCallSerializer.call(()=>this.customDecoder.close()):(w(this.decoder),this.decoder.close())}},rg=class extends Ka{constructor(e,t,i){super(e,t),this.decoderConfig=i,this.currentTimestamp=null,w(Ie.includes(i.codec)),this.codec=i.codec;let{dataType:s,sampleSize:n,littleEndian:o}=Tt(this.codec);switch(this.inputSampleSize=n,n){case 1:s==="unsigned"?this.readInputValue=(a,c)=>a.getUint8(c)-2**7:s==="signed"?this.readInputValue=(a,c)=>a.getInt8(c):s==="ulaw"?this.readInputValue=(a,c)=>SE(a.getUint8(c)):s==="alaw"?this.readInputValue=(a,c)=>CE(a.getUint8(c)):w(!1);break;case 2:s==="unsigned"?this.readInputValue=(a,c)=>a.getUint16(c,o)-2**15:s==="signed"?this.readInputValue=(a,c)=>a.getInt16(c,o):w(!1);break;case 3:s==="unsigned"?this.readInputValue=(a,c)=>Op(a,c,o)-2**23:s==="signed"?this.readInputValue=(a,c)=>gC(a,c,o):w(!1);break;case 4:s==="unsigned"?this.readInputValue=(a,c)=>a.getUint32(c,o)-2**31:s==="signed"?this.readInputValue=(a,c)=>a.getInt32(c,o):s==="float"?this.readInputValue=(a,c)=>a.getFloat32(c,o):w(!1);break;case 8:s==="float"?this.readInputValue=(a,c)=>a.getFloat64(c,o):w(!1);break;default:si(n),w(!1)}switch(n){case 1:s==="ulaw"||s==="alaw"?(this.outputSampleSize=2,this.outputFormat="s16",this.writeOutputValue=(a,c,u)=>a.setInt16(c,u,!0)):(this.outputSampleSize=1,this.outputFormat="u8",this.writeOutputValue=(a,c,u)=>a.setUint8(c,u+2**7));break;case 2:this.outputSampleSize=2,this.outputFormat="s16",this.writeOutputValue=(a,c,u)=>a.setInt16(c,u,!0);break;case 3:this.outputSampleSize=4,this.outputFormat="s32",this.writeOutputValue=(a,c,u)=>a.setInt32(c,u<<8,!0);break;case 4:this.outputSampleSize=4,s==="float"?(this.outputFormat="f32",this.writeOutputValue=(a,c,u)=>a.setFloat32(c,u,!0)):(this.outputFormat="s32",this.writeOutputValue=(a,c,u)=>a.setInt32(c,u,!0));break;case 8:this.outputSampleSize=4,this.outputFormat="f32",this.writeOutputValue=(a,c,u)=>a.setFloat32(c,u,!0);break;default:si(n),w(!1)}}getDecodeQueueSize(){return 0}decode(e){let t=At(e.data),i=e.byteLength/this.decoderConfig.numberOfChannels/this.inputSampleSize,s=i*this.decoderConfig.numberOfChannels*this.outputSampleSize,n=new ArrayBuffer(s),o=new DataView(n);for(let l=0;l<i*this.decoderConfig.numberOfChannels;l++){let h=l*this.inputSampleSize,f=l*this.outputSampleSize,d=this.readInputValue(t,h);this.writeOutputValue(o,f,d)}let a=i/this.decoderConfig.sampleRate;(this.currentTimestamp===null||Math.abs(e.timestamp-this.currentTimestamp)>=a)&&(this.currentTimestamp=e.timestamp);let c=this.currentTimestamp;this.currentTimestamp+=a;let u=new Lt({format:this.outputFormat,data:n,numberOfChannels:this.decoderConfig.numberOfChannels,sampleRate:this.decoderConfig.sampleRate,numberOfFrames:i,timestamp:c});this.onSample(u)}async flush(){}close(){}},Ja=class extends Qa{constructor(e){if(!(e instanceof nt))throw new TypeError("audioTrack must be an InputAudioTrack.");super(),this._audioTrack=e}async _createDecoder(e,t){if(!await this._audioTrack.canDecode())throw new Error("This audio track cannot be decoded by this browser. Make sure to check decodability before using a track.");let i=this._audioTrack.codec,s=await this._audioTrack.getDecoderConfig();return w(i&&s),Ie.includes(s.codec)?new rg(e,t,s):new tg(e,t,i,s)}_createPacketSink(){return new Ji(this._audioTrack)}async getSample(e){Zi(e);for await(let t of this.mediaSamplesAtTimestamps([e]))return t;throw new Error("Internal error: Iterator returned nothing.")}samples(e=0,t=1/0){return this.mediaSamplesInRange(e,t)}samplesAtTimestamps(e){return this.mediaSamplesAtTimestamps(e)}};var _n=class{constructor(e){this._backing=e}isVideoTrack(){return this instanceof Ir}isAudioTrack(){return this instanceof nt}get id(){return this._backing.getId()}get languageCode(){return this._backing.getLanguageCode()}get timeResolution(){return this._backing.getTimeResolution()}getFirstTimestamp(){return this._backing.getFirstTimestamp()}computeDuration(){return this._backing.computeDuration()}async computePacketStats(e=1/0){let t=new Ji(this),i=1/0,s=-1/0,n=0,o=0;for await(let a of t.packets(void 0,void 0,{metadataOnly:!0})){if(n>=e&&a.timestamp>=s)break;i=Math.min(i,a.timestamp),s=Math.max(s,a.timestamp+a.duration),n++,o+=a.byteLength}return{packetCount:n,averagePacketRate:n?Number((n/(s-i)).toPrecision(16)):0,averageBitrate:n?Number((8*o/(s-i)).toPrecision(16)):0}}},Ir=class extends _n{constructor(e){super(e),this._backing=e}get type(){return"video"}get codec(){return this._backing.getCodec()}get codedWidth(){return this._backing.getCodedWidth()}get codedHeight(){return this._backing.getCodedHeight()}get rotation(){return this._backing.getRotation()}get displayWidth(){return this._backing.getRotation()%180===0?this._backing.getCodedWidth():this._backing.getCodedHeight()}get displayHeight(){return this._backing.getRotation()%180===0?this._backing.getCodedHeight():this._backing.getCodedWidth()}getColorSpace(){return this._backing.getColorSpace()}async hasHighDynamicRange(){let e=await this._backing.getColorSpace();return e.primaries==="bt2020"||e.primaries==="smpte432"||e.transfer==="pg"||e.transfer==="hlg"||e.matrix==="bt2020-ncl"}getDecoderConfig(){return this._backing.getDecoderConfig()}async getCodecParameterString(){return(await this._backing.getDecoderConfig())?.codec??null}async canDecode(){try{let e=await this._backing.getDecoderConfig();if(!e)return!1;let t=this._backing.getCodec();return w(t!==null),Wl.some(s=>s.supports(t,e))?!0:typeof VideoDecoder>"u"?!1:(await VideoDecoder.isConfigSupported(e)).supported===!0}catch(e){return console.error("Error during decodability check:",e),!1}}async determinePacketType(e){if(!(e instanceof de))throw new TypeError("packet must be an EncodedPacket.");if(e.isMetadataOnly)throw new TypeError("packet must not be metadata-only to determine its type.");return this.codec===null?null:KC(this,e)}},nt=class extends _n{constructor(e){super(e),this._backing=e}get type(){return"audio"}get codec(){return this._backing.getCodec()}get numberOfChannels(){return this._backing.getNumberOfChannels()}get sampleRate(){return this._backing.getSampleRate()}getDecoderConfig(){return this._backing.getDecoderConfig()}async getCodecParameterString(){return(await this._backing.getDecoderConfig())?.codec??null}async canDecode(){try{let e=await this._backing.getDecoderConfig();if(!e)return!1;let t=this._backing.getCodec();return w(t!==null),$l.some(i=>i.supports(t,e))||e.codec.startsWith("pcm-")?!0:typeof AudioDecoder>"u"?!1:(await AudioDecoder.isConfigSupported(e)).supported===!0}catch(e){return console.error("Error during decodability check:",e),!1}}async determinePacketType(e){if(!(e instanceof de))throw new TypeError("packet must be an EncodedPacket.");return this.codec===null?null:"key"}};var Rt=class{constructor(e,t=1/0){this.source=e,this.maxStorableBytes=t,this.loadedSegments=[],this.loadingSegments=[],this.sourceSizePromise=null,this.nextAge=0,this.totalStoredBytes=0}async loadRange(e,t){if(t=Math.min(t,await this.source.getSize()),e>=t)return;let i=this.loadingSegments.find(c=>c.start<=e&&c.end>=t);if(i){await i.promise;return}let s=J(this.loadedSegments,e,c=>c.start);if(s!==-1)for(let c=s;c<this.loadedSegments.length;c++){let u=this.loadedSegments[c];if(u.start>e)break;if(u.end>=t)return}this.source.onread?.(e,t);let n=this.source._read(e,t),o={start:e,end:t,promise:n};this.loadingSegments.push(o);let a=await n;fC(this.loadingSegments,o),this.insertIntoLoadedSegments(e,a)}rangeIsLoaded(e,t){if(t<=e)return!0;let i=J(this.loadedSegments,e,s=>s.start);if(i===-1)return!1;for(let s=i;s<this.loadedSegments.length;s++){let n=this.loadedSegments[s];if(n.start>e)break;if(n.end>=t)return!0}return!1}insertIntoLoadedSegments(e,t){let i={start:e,end:e+t.byteLength,bytes:t,view:new DataView(t.buffer),age:this.nextAge++},s=J(this.loadedSegments,e,n=>n.start);(s===-1||this.loadedSegments[s].start<i.start)&&s++,this.loadedSegments.splice(s,0,i),this.totalStoredBytes+=t.byteLength;for(let n=s+1;n<this.loadedSegments.length;n++){let o=this.loadedSegments[n];if(o.start>=i.end)break;i.start<=o.start&&o.end<=i.end&&(this.loadedSegments.splice(n,1),n--)}for(;this.totalStoredBytes>this.maxStorableBytes&&this.loadedSegments.length>1;){let n=null,o=-1;for(let a=0;a<this.loadedSegments.length;a++){let c=this.loadedSegments[a];(!n||c.age<n.age)&&(n=c,o=a)}w(n),this.totalStoredBytes-=n.bytes.byteLength,this.loadedSegments.splice(o,1)}}getViewAndOffset(e,t){let i=J(this.loadedSegments,e,n=>n.start),s=null;if(i!==-1)for(let n=i;n<this.loadedSegments.length;n++){let o=this.loadedSegments[n];if(o.start>e)break;if(t<=o.end){s=o;break}}if(!s)throw new Error(`No segment loaded for range [${e}, ${t}).`);return s.age=this.nextAge++,{view:s.view,offset:s.bytes.byteOffset+e-s.start}}forgetRange(e,t){if(t<=e)return;let i=J(this.loadedSegments,e,n=>n.start);if(i===-1)return;let s=this.loadedSegments[i];s.start!==e||s.end!==t||(this.loadedSegments.splice(i,1),this.totalStoredBytes-=s.bytes.byteLength)}};var es=class{constructor(e){this.reader=e,this.pos=0,this.littleEndian=!0}readBytes(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);return this.pos+=e,new Uint8Array(t.buffer,i,e)}readU16(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+2);return this.pos+=2,e.getUint16(t,this.littleEndian)}readU32(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+4);return this.pos+=4,e.getUint32(t,this.littleEndian)}readU64(){let e,t;return this.littleEndian?(e=this.readU32(),t=this.readU32()):(t=this.readU32(),e=this.readU32()),t*4294967296+e}readAscii(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);this.pos+=e;let s="";for(let n=0;n<e;n++)s+=String.fromCharCode(t.getUint8(i+n));return s}};var Fr;(function(r){r[r.PCM=1]="PCM",r[r.IEEE_FLOAT=3]="IEEE_FLOAT",r[r.ALAW=6]="ALAW",r[r.MULAW=7]="MULAW",r[r.EXTENSIBLE=65534]="EXTENSIBLE"})(Fr||(Fr={}));var hh=class extends Bt{constructor(e){super(e),this.metadataPromise=null,this.dataStart=-1,this.dataSize=-1,this.audioInfo=null,this.tracks=[],this.metadataReader=new es(e._mainReader),this.chunkReader=new es(new Rt(e.source,64*2**20))}async readMetadata(){return this.metadataPromise??=(async()=>{let e=await this.metadataReader.reader.source.getSize(),t=this.metadataReader.readAscii(4);this.metadataReader.littleEndian=t!=="RIFX";let i=t==="RF64",s=this.metadataReader.readU32(),n=i?e:Math.min(s+8,e);if(this.metadataReader.readAscii(4)!=="WAVE")throw new Error("Invalid WAVE file - wrong format");this.metadataReader.pos=12;let a=0,c=null;for(;this.metadataReader.pos<n;){await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+8);let l=this.metadataReader.readAscii(4),h=this.metadataReader.readU32(),f=this.metadataReader.pos;if(i&&a===0&&l!=="ds64")throw new Error('Invalid RF64 file: First chunk must be "ds64".');if(l==="fmt ")await this.parseFmtChunk(h);else if(l==="data")c??=h,this.dataStart=this.metadataReader.pos,this.dataSize=Math.min(c,n-this.dataStart);else if(l==="ds64"){let d=this.metadataReader.readU64();c=this.metadataReader.readU64(),n=Math.min(d+8,e)}this.metadataReader.pos=f+h+(h&1),a++}if(!this.audioInfo)throw new Error('Invalid WAVE file - missing "fmt " chunk');if(this.dataStart===-1)throw new Error('Invalid WAVE file - missing "data" chunk');let u=this.audioInfo.blockSizeInBytes;this.dataSize=Math.floor(this.dataSize/u)*u,this.tracks.push(new nt(new ig(this)))})()}async parseFmtChunk(e){await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+e);let t=this.metadataReader.readU16(),i=this.metadataReader.readU16(),s=this.metadataReader.readU32();this.metadataReader.pos+=4;let n=this.metadataReader.readU16(),o;if(e===14?o=8:o=this.metadataReader.readU16(),e>=18&&t!==357){let a=this.metadataReader.readU16(),c=e-18;if(Math.min(c,a)>=22&&t===Fr.EXTENSIBLE){this.metadataReader.pos+=6;let l=this.metadataReader.readBytes(16);t=l[0]|l[1]<<8}}(t===Fr.MULAW||t===Fr.ALAW)&&(o=8),this.audioInfo={format:t,numberOfChannels:i,sampleRate:s,sampleSizeInBytes:Math.ceil(o/8),blockSizeInBytes:n}}getCodec(){if(w(this.audioInfo),this.audioInfo.format===Fr.MULAW)return"ulaw";if(this.audioInfo.format===Fr.ALAW)return"alaw";if(this.audioInfo.format===Fr.PCM){if(this.audioInfo.sampleSizeInBytes===1)return"pcm-u8";if(this.audioInfo.sampleSizeInBytes===2)return"pcm-s16";if(this.audioInfo.sampleSizeInBytes===3)return"pcm-s24";if(this.audioInfo.sampleSizeInBytes===4)return"pcm-s32"}return this.audioInfo.format===Fr.IEEE_FLOAT&&this.audioInfo.sampleSizeInBytes===4?"pcm-f32":null}async getMimeType(){return"audio/wav"}async computeDuration(){return await this.readMetadata(),w(this.audioInfo),this.dataSize/this.audioInfo.blockSizeInBytes/this.audioInfo.sampleRate}async getTracks(){return await this.readMetadata(),this.tracks}},bn=2048,ig=class{constructor(e){this.demuxer=e}getId(){return 1}getCodec(){return this.demuxer.getCodec()}async getDecoderConfig(){let e=this.demuxer.getCodec();return e?(w(this.demuxer.audioInfo),{codec:e,numberOfChannels:this.demuxer.audioInfo.numberOfChannels,sampleRate:this.demuxer.audioInfo.sampleRate}):null}computeDuration(){return this.demuxer.computeDuration()}getNumberOfChannels(){return w(this.demuxer.audioInfo),this.demuxer.audioInfo.numberOfChannels}getSampleRate(){return w(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}getTimeResolution(){return w(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}getLanguageCode(){return mt}async getFirstTimestamp(){return 0}async getPacketAtIndex(e,t){w(this.demuxer.audioInfo);let i=e*bn*this.demuxer.audioInfo.blockSizeInBytes;if(i>=this.demuxer.dataSize)return null;let s=Math.min(bn*this.demuxer.audioInfo.blockSizeInBytes,this.demuxer.dataSize-i),n;if(t.metadataOnly)n=pt;else{let c=bn*this.demuxer.audioInfo.blockSizeInBytes,u=Math.ceil(2**19/c)*c,l=Math.floor(i/u)*u,h=l+u;await this.demuxer.chunkReader.reader.loadRange(this.demuxer.dataStart+l,this.demuxer.dataStart+h),this.demuxer.chunkReader.pos=this.demuxer.dataStart+i,n=this.demuxer.chunkReader.readBytes(s)}let o=e*bn/this.demuxer.audioInfo.sampleRate,a=s/this.demuxer.audioInfo.blockSizeInBytes/this.demuxer.audioInfo.sampleRate;return new de(n,"key",o,a,e,s)}getFirstPacket(e){return this.getPacketAtIndex(0,e)}getPacket(e,t){w(this.demuxer.audioInfo);let i=Math.floor(e*this.demuxer.audioInfo.sampleRate/bn);return this.getPacketAtIndex(i,t)}getNextPacket(e,t){w(this.demuxer.audioInfo);let i=Math.round(e.timestamp*this.demuxer.audioInfo.sampleRate/bn);return this.getPacketAtIndex(i+1,t)}getKeyPacket(e,t){return this.getPacket(e,t)}getNextKeyPacket(e,t){return this.getNextPacket(e,t)}};var yn=class{getSupportedVideoCodecs(){return this.getSupportedCodecs().filter(e=>Dr.includes(e))}getSupportedAudioCodecs(){return this.getSupportedCodecs().filter(e=>ni.includes(e))}getSupportedSubtitleCodecs(){return this.getSupportedCodecs().filter(e=>hn.includes(e))}_codecUnsupportedHint(e){return""}},ec=class extends yn{constructor(e={}){if(!e||typeof e!="object")throw new TypeError("options must be an object.");if(e.fastStart!==void 0&&![!1,"in-memory","fragmented"].includes(e.fastStart))throw new TypeError('options.fastStart, when provided, must be false, "in-memory", or "fragmented".');if(e.minimumFragmentDuration!==void 0&&(!Number.isFinite(e.minimumFragmentDuration)||e.minimumFragmentDuration<0))throw new TypeError("options.minimumFragmentDuration, when provided, must be a non-negative number.");if(e.onFtyp!==void 0&&typeof e.onFtyp!="function")throw new TypeError("options.onFtyp, when provided, must be a function.");if(e.onMoov!==void 0&&typeof e.onMoov!="function")throw new TypeError("options.onMoov, when provided, must be a function.");if(e.onMdat!==void 0&&typeof e.onMdat!="function")throw new TypeError("options.onMdat, when provided, must be a function.");if(e.onMoof!==void 0&&typeof e.onMoof!="function")throw new TypeError("options.onMoof, when provided, must be a function.");super(),this._options=e}getSupportedTrackCounts(){return{video:{min:0,max:1/0},audio:{min:0,max:1/0},subtitle:{min:0,max:1/0},total:{min:1,max:2**32-1}}}get supportsVideoRotationMetadata(){return!0}_createMuxer(e){return new ah(e,this)}},Tn=class extends ec{get _name(){return"MP4"}get fileExtension(){return".mp4"}get mimeType(){return"video/mp4"}getSupportedCodecs(){return[...Dr,...Np,"pcm-s16","pcm-s16be","pcm-s24","pcm-s24be","pcm-s32","pcm-s32be","pcm-f32","pcm-f32be","pcm-f64","pcm-f64be",...hn]}_codecUnsupportedHint(e){return new mn().getSupportedCodecs().includes(e)?" Switching to MOV will grant support for this codec.":""}},mn=class extends ec{get _name(){return"MOV"}get fileExtension(){return".mov"}get mimeType(){return"video/quicktime"}getSupportedCodecs(){return[...Dr,...ni]}_codecUnsupportedHint(e){return new Tn().getSupportedCodecs().includes(e)?" Switching to MP4 will grant support for this codec.":""}};var wn=class{constructor(){this._connectedTrack=null,this._closingPromise=null,this._closed=!1,this._timestampOffset=0}_ensureValidAdd(){if(!this._connectedTrack)throw new Error("Source is not connected to an output track.");if(this._connectedTrack.output.state==="canceled")throw new Error("Output has been canceled.");if(this._connectedTrack.output.state==="finalizing"||this._connectedTrack.output.state==="finalized")throw new Error("Output has been finalized.");if(this._connectedTrack.output.state==="pending")throw new Error("Output has not started.");if(this._closed)throw new Error("Source is closed.")}async _start(){}async _flushAndClose(){}close(){if(this._closingPromise)return;let e=this._connectedTrack;if(!e)throw new Error("Cannot call close without connecting the source to an output track.");if(e.output.state==="pending")throw new Error("Cannot call close before output has been started.");this._closingPromise=(async()=>{await this._flushAndClose(),this._closed=!0,!(e.output.state==="finalizing"||e.output.state==="finalized")&&e.output._muxer.onTrackClose(e)})()}async _flushOrWaitForClose(){return this._closingPromise?this._closingPromise:this._flushAndClose()}},Sn=class extends wn{constructor(e){if(super(),this._connectedTrack=null,!Dr.includes(e))throw new TypeError(`Invalid video codec '${e}'. Must be one of: ${Dr.join(", ")}.`);this._codec=e}};var rD=r=>{if(!r||typeof r!="object")throw new TypeError("Encoding config must be an object.");if(!Dr.includes(r.codec))throw new TypeError(`Invalid video codec '${r.codec}'. Must be one of: ${Dr.join(", ")}.`);if(!(r.bitrate instanceof Pt)&&(!Number.isInteger(r.bitrate)||r.bitrate<=0))throw new TypeError("config.bitrate must be a positive integer or a quality.");if(r.latencyMode!==void 0&&!["quality","realtime"].includes(r.latencyMode))throw new TypeError("config.latencyMode, when provided, must be 'quality' or 'realtime'.");if(r.keyFrameInterval!==void 0&&(!Number.isFinite(r.keyFrameInterval)||r.keyFrameInterval<0))throw new TypeError("config.keyFrameInterval, when provided, must be a non-negative number.");if(r.fullCodecString!==void 0&&typeof r.fullCodecString!="string")throw new TypeError("config.fullCodecString, when provided, must be a string.");if(r.fullCodecString!==void 0&&zp(r.fullCodecString)!==r.codec)throw new TypeError(`config.fullCodecString, when provided, must be a string that matches the specified codec (${r.codec}).`);if(r.onEncodedPacket!==void 0&&typeof r.onEncodedPacket!="function")throw new TypeError("config.onEncodedChunk, when provided, must be a function.");if(r.onEncoderConfig!==void 0&&typeof r.onEncoderConfig!="function")throw new TypeError("config.onEncoderConfig, when provided, must be a function.")},sg=class{constructor(e,t){this.source=e,this.encodingConfig=t,this.ensureEncoderPromise=null,this.encoderInitialized=!1,this.encoder=null,this.muxer=null,this.lastMultipleOfKeyFrameInterval=-1,this.lastWidth=null,this.lastHeight=null,this.customEncoder=null,this.customEncoderCallSerializer=new ii,this.customEncoderQueueSize=0,this.encoderError=null}async add(e,t,i){try{if(this.checkForEncoderError(),this.source._ensureValidAdd(),this.lastWidth!==null&&this.lastHeight!==null){if(e.codedWidth!==this.lastWidth||e.codedHeight!==this.lastHeight)throw new Error(`Video sample size must remain constant. Expected ${this.lastWidth}x${this.lastHeight}, got ${e.codedWidth}x${e.codedHeight}.`)}else this.lastWidth=e.codedWidth,this.lastHeight=e.codedHeight;this.encoderInitialized||(this.ensureEncoderPromise||this.ensureEncoder(e),this.encoderInitialized||await this.ensureEncoderPromise),w(this.encoderInitialized);let s=this.encodingConfig.keyFrameInterval??5,n=Math.floor(e.timestamp/s),o={...i,keyFrame:i?.keyFrame||s===0||n!==this.lastMultipleOfKeyFrameInterval};if(this.lastMultipleOfKeyFrameInterval=n,this.customEncoder){this.customEncoderQueueSize++;let a=this.customEncoderCallSerializer.call(()=>this.customEncoder.encode(e,o)).then(()=>{this.customEncoderQueueSize--,t&&e.close()}).catch(c=>{this.encoderError??=c});this.customEncoderQueueSize>=4&&await a}else{w(this.encoder);let a=e.toVideoFrame();this.encoder.encode(a,o),a.close(),t&&e.close(),this.encoder.encodeQueueSize>=4&&await new Promise(c=>this.encoder.addEventListener("dequeue",c,{once:!0}))}await this.muxer.mutex.currentPromise}finally{t&&e.close()}}async ensureEncoder(e){if(!this.encoder)return this.ensureEncoderPromise=(async()=>{let t=e.codedWidth,i=e.codedHeight,s=this.encodingConfig.bitrate instanceof Pt?this.encodingConfig.bitrate._toVideoBitrate(this.encodingConfig.codec,t,i):this.encodingConfig.bitrate,n={codec:this.encodingConfig.fullCodecString??AC(this.encodingConfig.codec,t,i,s),width:t,height:i,bitrate:s,framerate:this.source._connectedTrack?.metadata.frameRate,latencyMode:this.encodingConfig.latencyMode,...MC(this.encodingConfig.codec)};this.encodingConfig.onEncoderConfig?.(n);let o=TC.find(a=>a.supports(this.encodingConfig.codec,n));if(o)this.customEncoder=new o,this.customEncoder.codec=this.encodingConfig.codec,this.customEncoder.config=n,this.customEncoder.onPacket=(a,c)=>{if(!(a instanceof de))throw new TypeError("The first argument passed to onPacket must be an EncodedPacket.");if(c!==void 0&&(!c||typeof c!="object"))throw new TypeError("The second argument passed to onPacket must be an object or undefined.");this.encodingConfig.onEncodedPacket?.(a,c),this.muxer.addEncodedVideoPacket(this.source._connectedTrack,a,c)},await this.customEncoder.init();else{if(typeof VideoEncoder>"u")throw new Error("VideoEncoder is not supported by this browser.");if(!(await VideoEncoder.isConfigSupported(n)).supported)throw new Error(`This specific encoder configuration (${n.codec}, ${n.bitrate} bps, ${n.width}x${n.height}) is not supported by this browser. Consider using another codec or changing your video parameters.`);this.encoder=new VideoEncoder({output:(c,u)=>{let l=de.fromEncodedChunk(c);this.encodingConfig.onEncodedPacket?.(l,u),this.muxer.addEncodedVideoPacket(this.source._connectedTrack,l,u)},error:c=>{this.encoderError??=c}}),this.encoder.configure(n)}w(this.source._connectedTrack),this.muxer=this.source._connectedTrack.output._muxer,this.encoderInitialized=!0})()}async flushAndClose(){this.checkForEncoderError(),this.customEncoder?(this.customEncoderCallSerializer.call(()=>this.customEncoder.flush()),await this.customEncoderCallSerializer.call(()=>this.customEncoder.close())):this.encoder&&(await this.encoder.flush(),this.encoder.close()),this.checkForEncoderError()}getQueueSize(){return this.customEncoder?this.customEncoderQueueSize:this.encoder?.encodeQueueSize??0}checkForEncoderError(){if(this.encoderError)throw this.encoderError.stack=new Error().stack,this.encoderError}},tc=class extends Sn{constructor(e){rD(e),super(e.codec),this._encoder=new sg(this,e)}add(e,t){if(!(e instanceof lr))throw new TypeError("videoSample must be a VideoSample.");return this._encoder.add(e,!1,t)}_flushAndClose(){return this._encoder.flushAndClose()}};var vn=class extends wn{constructor(e){if(super(),this._connectedTrack=null,!ni.includes(e))throw new TypeError(`Invalid audio codec '${e}'. Must be one of: ${ni.join(", ")}.`);this._codec=e}};var iD=r=>{if(!r||typeof r!="object")throw new TypeError("Encoding config must be an object.");if(!ni.includes(r.codec))throw new TypeError(`Invalid audio codec '${r.codec}'. Must be one of: ${ni.join(", ")}.`);if(r.bitrate===void 0&&(!Ie.includes(r.codec)||r.codec==="flac"))throw new TypeError("config.bitrate must be provided for compressed audio codecs.");if(r.bitrate!==void 0&&!(r.bitrate instanceof Pt)&&(!Number.isInteger(r.bitrate)||r.bitrate<=0))throw new TypeError("config.bitrate, when provided, must be a positive integer or a quality.");if(r.fullCodecString!==void 0&&typeof r.fullCodecString!="string")throw new TypeError("config.fullCodecString, when provided, must be a string.");if(r.fullCodecString!==void 0&&zp(r.fullCodecString)!==r.codec)throw new TypeError(`config.fullCodecString, when provided, must be a string that matches the specified codec (${r.codec}).`);if(r.onEncodedPacket!==void 0&&typeof r.onEncodedPacket!="function")throw new TypeError("config.onEncodedChunk, when provided, must be a function.");if(r.onEncoderConfig!==void 0&&typeof r.onEncoderConfig!="function")throw new TypeError("config.onEncoderConfig, when provided, must be a function.")},ng=class{constructor(e,t){this.source=e,this.encodingConfig=t,this.ensureEncoderPromise=null,this.encoderInitialized=!1,this.encoder=null,this.muxer=null,this.lastNumberOfChannels=null,this.lastSampleRate=null,this.isPcmEncoder=!1,this.outputSampleSize=null,this.writeOutputValue=null,this.customEncoder=null,this.customEncoderCallSerializer=new ii,this.customEncoderQueueSize=0,this.encoderError=null}async add(e,t){try{if(this.checkForEncoderError(),this.source._ensureValidAdd(),this.lastNumberOfChannels!==null&&this.lastSampleRate!==null){if(e.numberOfChannels!==this.lastNumberOfChannels||e.sampleRate!==this.lastSampleRate)throw new Error(`Audio parameters must remain constant. Expected ${this.lastNumberOfChannels} channels at ${this.lastSampleRate} Hz, got ${e.numberOfChannels} channels at ${e.sampleRate} Hz.`)}else this.lastNumberOfChannels=e.numberOfChannels,this.lastSampleRate=e.sampleRate;if(this.encoderInitialized||(this.ensureEncoderPromise||this.ensureEncoder(e),this.encoderInitialized||await this.ensureEncoderPromise),w(this.encoderInitialized),this.customEncoder){this.customEncoderQueueSize++;let i=this.customEncoderCallSerializer.call(()=>this.customEncoder.encode(e)).then(()=>{this.customEncoderQueueSize--,t&&e.close()}).catch(s=>{this.encoderError??=s});this.customEncoderQueueSize>=4&&await i,await this.muxer.mutex.currentPromise}else if(this.isPcmEncoder)await this.doPcmEncoding(e,t);else{w(this.encoder);let i=e.toAudioData();this.encoder.encode(i),i.close(),t&&e.close(),this.encoder.encodeQueueSize>=4&&await new Promise(s=>this.encoder.addEventListener("dequeue",s,{once:!0})),await this.muxer.mutex.currentPromise}}finally{t&&e.close()}}async doPcmEncoding(e,t){w(this.outputSampleSize),w(this.writeOutputValue);let{numberOfChannels:i,numberOfFrames:s,sampleRate:n,timestamp:o}=e,a=2048,c=[];for(let f=0;f<s;f+=a){let d=Math.min(a,e.numberOfFrames-f),m=d*i*this.outputSampleSize,x=new ArrayBuffer(m),g=new DataView(x);c.push({frameCount:d,view:g})}let u=e.allocationSize({planeIndex:0,format:"f32-planar"}),l=new Float32Array(u/Float32Array.BYTES_PER_ELEMENT);for(let f=0;f<i;f++){e.copyTo(l,{planeIndex:f,format:"f32-planar"});for(let d=0;d<c.length;d++){let{frameCount:m,view:x}=c[d];for(let g=0;g<m;g++)this.writeOutputValue(x,(g*i+f)*this.outputSampleSize,l[d*a+g])}}t&&e.close();let h={decoderConfig:{codec:this.encodingConfig.codec,numberOfChannels:i,sampleRate:n}};for(let f=0;f<c.length;f++){let{frameCount:d,view:m}=c[f],x=m.buffer,g=f*a,_=new de(new Uint8Array(x),"key",o+g/n,d/n);this.encodingConfig.onEncodedPacket?.(_,h),await this.muxer.addEncodedAudioPacket(this.source._connectedTrack,_,h)}}ensureEncoder(e){if(!this.encoderInitialized)return this.ensureEncoderPromise=(async()=>{let{numberOfChannels:t,sampleRate:i}=e,s=this.encodingConfig.bitrate instanceof Pt?this.encodingConfig.bitrate._toAudioBitrate(this.encodingConfig.codec):this.encodingConfig.bitrate,n={codec:this.encodingConfig.fullCodecString??BC(this.encodingConfig.codec,t,i),numberOfChannels:t,sampleRate:i,bitrate:s,...IC(this.encodingConfig.codec)};this.encodingConfig.onEncoderConfig?.(n);let o=wC.find(a=>a.supports(this.encodingConfig.codec,n));if(o)this.customEncoder=new o,this.customEncoder.codec=this.encodingConfig.codec,this.customEncoder.config=n,this.customEncoder.onPacket=(a,c)=>{if(!(a instanceof de))throw new TypeError("The first argument passed to onPacket must be an EncodedPacket.");if(c!==void 0&&(!c||typeof c!="object"))throw new TypeError("The second argument passed to onPacket must be an object or undefined.");this.encodingConfig.onEncodedPacket?.(a,c),this.muxer.addEncodedAudioPacket(this.source._connectedTrack,a,c)},await this.customEncoder.init();else if(Ie.includes(this.encodingConfig.codec))this.initPcmEncoder();else{if(typeof AudioEncoder>"u")throw new Error("AudioEncoder is not supported by this browser.");if(!(await AudioEncoder.isConfigSupported(n)).supported)throw new Error(`This specific encoder configuration (${n.codec}, ${n.bitrate} bps, ${n.numberOfChannels} channels, ${n.sampleRate} Hz) is not supported by this browser. Consider using another codec or changing your audio parameters.`);this.encoder=new AudioEncoder({output:(c,u)=>{let l=de.fromEncodedChunk(c);this.encodingConfig.onEncodedPacket?.(l,u),this.muxer.addEncodedAudioPacket(this.source._connectedTrack,l,u)},error:c=>{this.encoderError??=c}}),this.encoder.configure(n)}w(this.source._connectedTrack),this.muxer=this.source._connectedTrack.output._muxer,this.encoderInitialized=!0})()}initPcmEncoder(){this.isPcmEncoder=!0;let e=this.encodingConfig.codec,{dataType:t,sampleSize:i,littleEndian:s}=Tt(e);switch(this.outputSampleSize=i,i){case 1:t==="unsigned"?this.writeOutputValue=(n,o,a)=>n.setUint8(o,Qe((a+1)*127.5,0,255)):t==="signed"?this.writeOutputValue=(n,o,a)=>{n.setInt8(o,Qe(Math.round(a*128),-128,127))}:t==="ulaw"?this.writeOutputValue=(n,o,a)=>{let c=Qe(Math.floor(a*32767),-32768,32767);n.setUint8(o,wE(c))}:t==="alaw"?this.writeOutputValue=(n,o,a)=>{let c=Qe(Math.floor(a*32767),-32768,32767);n.setUint8(o,vE(c))}:w(!1);break;case 2:t==="unsigned"?this.writeOutputValue=(n,o,a)=>n.setUint16(o,Qe((a+1)*32767.5,0,65535),s):t==="signed"?this.writeOutputValue=(n,o,a)=>n.setInt16(o,Qe(Math.round(a*32767),-32768,32767),s):w(!1);break;case 3:t==="unsigned"?this.writeOutputValue=(n,o,a)=>Gp(n,o,Qe((a+1)*83886075e-1,0,16777215),s):t==="signed"?this.writeOutputValue=(n,o,a)=>xC(n,o,Qe(Math.round(a*8388607),-8388608,8388607),s):w(!1);break;case 4:t==="unsigned"?this.writeOutputValue=(n,o,a)=>n.setUint32(o,Qe((a+1)*21474836475e-1,0,4294967295),s):t==="signed"?this.writeOutputValue=(n,o,a)=>n.setInt32(o,Qe(Math.round(a*2147483647),-2147483648,2147483647),s):t==="float"?this.writeOutputValue=(n,o,a)=>n.setFloat32(o,a,s):w(!1);break;case 8:t==="float"?this.writeOutputValue=(n,o,a)=>n.setFloat64(o,a,s):w(!1);break;default:si(i),w(!1)}}async flushAndClose(){this.checkForEncoderError(),this.customEncoder?(this.customEncoderCallSerializer.call(()=>this.customEncoder.flush()),await this.customEncoderCallSerializer.call(()=>this.customEncoder.close())):this.encoder&&(await this.encoder.flush(),this.encoder.close()),this.checkForEncoderError()}getQueueSize(){return this.customEncoder?this.customEncoderQueueSize:this.isPcmEncoder?0:this.encoder?.encodeQueueSize??0}checkForEncoderError(){if(this.encoderError)throw this.encoderError.stack=new Error().stack,this.encoderError}},rc=class extends vn{constructor(e){iD(e),super(e.codec),this._encoder=new ng(this,e)}add(e){if(!(e instanceof Lt))throw new TypeError("audioSample must be an AudioSample.");return this._encoder.add(e,!1)}_flushAndClose(){return this._encoder.flushAndClose()}};var ic=class extends wn{constructor(e){if(super(),this._connectedTrack=null,!hn.includes(e))throw new TypeError(`Invalid subtitle codec '${e}'. Must be one of: ${hn.join(", ")}.`);this._codec=e}};var kE=["video","audio","subtitle"],og=r=>{if(!r||typeof r!="object")throw new TypeError("metadata must be an object.");if(r.languageCode!==void 0&&!ln(r.languageCode))throw new TypeError("metadata.languageCode must be a three-letter, ISO 639-2/T language code.")},sc=class{constructor(e){if(this.state="pending",this._tracks=[],this._startPromise=null,this._cancelPromise=null,this._finalizePromise=null,this._mutex=new kt,!e||typeof e!="object")throw new TypeError("options must be an object.");if(!(e.format instanceof yn))throw new TypeError("options.format must be an OutputFormat.");if(!(e.target instanceof qi))throw new TypeError("options.target must be a Target.");if(e.target._output)throw new Error("Target is already used for another output.");e.target._output=this,this.format=e.format,this.target=e.target,this._writer=e.target._createWriter(),this._muxer=e.format._createMuxer(this)}addVideoTrack(e,t={}){if(!(e instanceof Sn))throw new TypeError("source must be a VideoSource.");if(og(t),t.rotation!==void 0&&![0,90,180,270].includes(t.rotation))throw new TypeError(`Invalid video rotation: ${t.rotation}. Has to be 0, 90, 180 or 270.`);if(!this.format.supportsVideoRotationMetadata&&t.rotation)throw new Error(`${this.format._name} does not support video rotation metadata.`);if(t.frameRate!==void 0&&(!Number.isFinite(t.frameRate)||t.frameRate<=0))throw new TypeError(`Invalid video frame rate: ${t.frameRate}. Must be a positive number.`);this._addTrack("video",e,t)}addAudioTrack(e,t={}){if(!(e instanceof vn))throw new TypeError("source must be an AudioSource.");og(t),this._addTrack("audio",e,t)}addSubtitleTrack(e,t={}){if(!(e instanceof ic))throw new TypeError("source must be a SubtitleSource.");og(t),this._addTrack("subtitle",e,t)}_addTrack(e,t,i){if(this.state!=="pending")throw new Error("Cannot add track after output has been started or canceled.");if(t._connectedTrack)throw new Error("Source is already used for a track.");let s=this.format.getSupportedTrackCounts(),n=this._tracks.reduce((u,l)=>u+(l.type===e?1:0),0),o=s[e].max;if(n===o)throw new Error(o===0?`${this.format._name} does not support ${e} tracks.`:`${this.format._name} does not support more than ${o} ${e} track${o===1?"":"s"}.`);let a=s.total.max;if(this._tracks.length===a)throw new Error(`${this.format._name} does not support more than ${a} tracks${a===1?"":"s"} in total.`);let c={id:this._tracks.length+1,output:this,type:e,source:t,metadata:i};if(c.type==="video"){let u=this.format.getSupportedVideoCodecs();if(u.length===0)throw new Error(`${this.format._name} does not support video tracks.`+this.format._codecUnsupportedHint(c.source._codec));if(!u.includes(c.source._codec))throw new Error(`Codec '${c.source._codec}' cannot be contained within ${this.format._name}. Supported video codecs are: ${u.map(l=>`'${l}'`).join(", ")}.`+this.format._codecUnsupportedHint(c.source._codec))}else if(c.type==="audio"){let u=this.format.getSupportedAudioCodecs();if(u.length===0)throw new Error(`${this.format._name} does not support audio tracks.`+this.format._codecUnsupportedHint(c.source._codec));if(!u.includes(c.source._codec))throw new Error(`Codec '${c.source._codec}' cannot be contained within ${this.format._name}. Supported audio codecs are: ${u.map(l=>`'${l}'`).join(", ")}.`+this.format._codecUnsupportedHint(c.source._codec))}else if(c.type==="subtitle"){let u=this.format.getSupportedSubtitleCodecs();if(u.length===0)throw new Error(`${this.format._name} does not support subtitle tracks.`+this.format._codecUnsupportedHint(c.source._codec));if(!u.includes(c.source._codec))throw new Error(`Codec '${c.source._codec}' cannot be contained within ${this.format._name}. Supported subtitle codecs are: ${u.map(l=>`'${l}'`).join(", ")}.`+this.format._codecUnsupportedHint(c.source._codec))}this._tracks.push(c),t._connectedTrack=c}async start(){let e=this.format.getSupportedTrackCounts();for(let i of kE){let s=this._tracks.reduce((o,a)=>o+(a.type===i?1:0),0),n=e[i].min;if(s<n)throw new Error(n===e[i].max?`${this.format._name} requires exactly ${n} ${i} track${n===1?"":"s"}.`:`${this.format._name} requires at least ${n} ${i} track${n===1?"":"s"}.`)}let t=e.total.min;if(this._tracks.length<t)throw new Error(t===e.total.max?`${this.format._name} requires exactly ${t} track${t===1?"":"s"}.`:`${this.format._name} requires at least ${t} track${t===1?"":"s"}.`);if(this.state==="canceled")throw new Error("Output has been canceled.");return this._startPromise?(console.warn("Output has already been started."),this._startPromise):this._startPromise=(async()=>{this.state="started",this._writer.start();let i=await this._mutex.acquire();await this._muxer.start();let s=this._tracks.map(n=>n.source._start());await Promise.all(s),i()})()}getMimeType(){return this._muxer.getMimeType()}async cancel(){if(this._cancelPromise)return console.warn("Output has already been canceled."),this._cancelPromise;if(this.state==="finalizing"||this.state==="finalized"){console.warn("Output has already been finalized.");return}return this._cancelPromise=(async()=>{this.state="canceled";let e=await this._mutex.acquire(),t=this._tracks.map(i=>i.source._flushOrWaitForClose());await Promise.all(t),await this._writer.close(),e()})()}async finalize(){if(this.state==="pending")throw new Error("Cannot finalize before starting.");if(this.state==="canceled")throw new Error("Cannot finalize after canceling.");return this._finalizePromise?(console.warn("Output has already been finalized."),this._finalizePromise):this._finalizePromise=(async()=>{this.state="finalizing";let e=await this._mutex.acquire(),t=this._tracks.map(i=>i.source._flushOrWaitForClose());await Promise.all(t),await this._muxer.finalize(),await this._writer.flush(),await this._writer.finalize(),this.state="finalized",e()})()}};var ts=class{constructor(){this._sizePromise=null,this.onread=null}getSize(){return this._sizePromise??=this._retrieveSize()}};var nc=class extends ts{constructor(e){if(!(e instanceof Blob))throw new TypeError("blob must be a Blob.");super(),this._blob=e}async _read(e,t){let s=await this._blob.slice(e,t).arrayBuffer();return new Uint8Array(s)}async _retrieveSize(){return this._blob.size}},oc=class extends ts{constructor(e,t={}){if(typeof e!="string"&&!(e instanceof URL))throw new TypeError("url must be a string or URL.");if(!t||typeof t!="object")throw new TypeError("options must be an object.");if(t.requestInit!==void 0&&(!t.requestInit||typeof t.requestInit!="object"))throw new TypeError("options.requestInit, when provided, must be an object.");if(t.getRetryDelay!==void 0&&typeof t.getRetryDelay!="function")throw new TypeError("options.getRetryDelay, when provided, must be a function.");super(),this._fullData=null,this._url=e,this._options=t}async _makeRequest(e){let t={};e&&(t.Range=`bytes=${e.start}-${e.end-1}`);let i=await Hl(this._url,za(this._options.requestInit??{},{method:"GET",headers:t}),this._options.getRetryDelay??(()=>null));if(!i.ok)throw new Error(`Error fetching ${this._url}: ${i.status} ${i.statusText}`);let s=await i.arrayBuffer();return i.status===200&&(this._fullData=s),{response:s,statusCode:i.status}}async _read(e,t){if(this._fullData)return new Uint8Array(this._fullData,e,t-e);let{response:i,statusCode:s}=await this._makeRequest({start:e,end:t});return s===200?new Uint8Array(i).subarray(e,t):new Uint8Array(i)}async _retrieveSize(){if(this._fullData)return this._fullData.byteLength;try{let i=await Hl(this._url,za(this._options.requestInit??{},{method:"HEAD"}),this._options.getRetryDelay??(()=>null));if(i.ok){let s=i.headers.get("Content-Length");if(s)return parseInt(s)}}catch{}let e=await Hl(this._url,za(this._options.requestInit??{},{method:"GET",headers:{Range:"bytes=0-0"}}),this._options.getRetryDelay??(()=>null));if(e.status===206){let i=e.headers.get("Content-Range");if(i){let s=i.match(/bytes \d+-\d+\/(\d+)/);if(s&&s[1])return parseInt(s[1])}}else if(e.status===200)return this._fullData=await e.arrayBuffer(),this._fullData.byteLength;let{response:t}=await this._makeRequest();return t.byteLength}};var dh=class extends Bt{constructor(e){super(e),this.currentTrack=null,this.tracks=[],this.metadataPromise=null,this.movieTimescale=-1,this.movieDurationInTimescale=-1,this.isQuickTime=!1,this.isFragmented=!1,this.fragmentTrackDefaults=[],this.fragments=[],this.currentFragment=null,this.fragmentLookupMutex=new kt,this.metadataReader=new ji(e._mainReader),this.chunkReader=new ji(new Rt(e.source,64*2**20))}async computeDuration(){let e=await this.getTracks(),t=await Promise.all(e.map(i=>i.computeDuration()));return Math.max(0,...t)}async getTracks(){return await this.readMetadata(),this.tracks.map(e=>e.inputTrack)}async getMimeType(){await this.readMetadata();let e=await Promise.all(this.tracks.map(t=>t.inputTrack.getCodecParameterString()));return nh({isQuickTime:this.isQuickTime,hasVideo:this.tracks.some(t=>t.info?.type==="video"),hasAudio:this.tracks.some(t=>t.info?.type==="audio"),codecStrings:e.filter(Boolean)})}readMetadata(){return this.metadataPromise??=(async()=>{let e=await this.metadataReader.reader.source.getSize();for(;this.metadataReader.pos<e;){await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+16);let t=this.metadataReader.pos,i=this.metadataReader.readBoxHeader();if(i.name==="ftyp"){let s=this.metadataReader.readAscii(4);this.isQuickTime=s==="qt "}else if(i.name==="moov"){await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+i.contentSize),this.readContiguousBoxes(i.contentSize);for(let s of this.tracks){let n=s.editListPreviousSegmentDurations/this.movieTimescale;s.editListOffset-=Math.round(n*s.timescale)}break}this.metadataReader.pos=t+i.totalSize}if(this.isFragmented){await this.metadataReader.reader.loadRange(e-4,e),this.metadataReader.pos=e-4;let t=this.metadataReader.readU32(),i=e-t;if(i>=0&&i<e){await this.metadataReader.reader.loadRange(i,e),this.metadataReader.pos=i;let s=this.metadataReader.readBoxHeader();s.name==="mfra"&&this.readContiguousBoxes(s.contentSize)}}})()}getSampleTableForTrack(e){if(e.sampleTable)return e.sampleTable;let t={sampleTimingEntries:[],sampleCompositionTimeOffsets:[],sampleSizes:[],keySampleIndices:null,chunkOffsets:[],sampleToChunk:[],presentationTimestamps:null,presentationTimestampIndexMap:null};if(e.sampleTable=t,this.metadataReader.pos=e.sampleTableByteOffset,this.currentTrack=e,this.traverseBox(),this.currentTrack=null,e.info?.type==="audio"&&e.info.codec&&Ie.includes(e.info.codec)&&t.sampleCompositionTimeOffsets.length===0){w(e.info?.type==="audio");let s=Tt(e.info.codec),n=[],o=[];for(let a=0;a<t.sampleToChunk.length;a++){let c=t.sampleToChunk[a],u=t.sampleToChunk[a+1],l=(u?u.startChunkIndex:t.chunkOffsets.length)-c.startChunkIndex;for(let h=0;h<l;h++){let f=c.startSampleIndex+h*c.samplesPerChunk,d=f+c.samplesPerChunk,m=J(t.sampleTimingEntries,f,E=>E.startIndex),x=t.sampleTimingEntries[m],g=J(t.sampleTimingEntries,d,E=>E.startIndex),_=t.sampleTimingEntries[g],y=x.startDecodeTimestamp+(f-x.startIndex)*x.delta,T=_.startDecodeTimestamp+(d-_.startIndex)*_.delta-y,C=he(n);C&&C.delta===T?C.count++:n.push({startIndex:c.startChunkIndex+h,startDecodeTimestamp:y,count:1,delta:T});let v=c.samplesPerChunk*s.sampleSize*e.info.numberOfChannels;o.push(v)}c.startSampleIndex=c.startChunkIndex,c.samplesPerChunk=1}t.sampleTimingEntries=n,t.sampleSizes=o}if(t.sampleCompositionTimeOffsets.length>0){t.presentationTimestamps=[];for(let s of t.sampleTimingEntries)for(let n=0;n<s.count;n++)t.presentationTimestamps.push({presentationTimestamp:s.startDecodeTimestamp+n*s.delta,sampleIndex:s.startIndex+n});for(let s of t.sampleCompositionTimeOffsets)for(let n=0;n<s.count;n++){let o=s.startIndex+n,a=t.presentationTimestamps[o];a&&(a.presentationTimestamp+=s.offset)}t.presentationTimestamps.sort((s,n)=>s.presentationTimestamp-n.presentationTimestamp),t.presentationTimestampIndexMap=Array(t.presentationTimestamps.length).fill(-1);for(let s=0;s<t.presentationTimestamps.length;s++)t.presentationTimestampIndexMap[t.presentationTimestamps[s].sampleIndex]=s}return t}async readFragment(){let e=this.metadataReader.pos;await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+16);let t=this.metadataReader.readBoxHeader();w(t.name==="moof");let i=this.metadataReader.pos;await this.metadataReader.reader.loadRange(i,i+t.contentSize),this.metadataReader.pos=e,this.traverseBox();let s=Be(this.fragments,e,o=>o.moofOffset);w(s!==-1);let n=this.fragments[s];w(n.moofOffset===e),this.metadataReader.reader.forgetRange(i,i+t.contentSize);for(let[o,a]of n.trackData){if(a.startTimestampIsFinal)continue;let c=this.tracks.find(d=>d.id===o);this.metadataReader.pos=0;let u=null,l=null,h=J(c.fragments,e-1,d=>d.moofOffset);h!==-1&&(u=c.fragments[h],l=u,this.metadataReader.pos=u.moofOffset+u.moofSize);let f=this.metadataReader.pos===0;for(;this.metadataReader.pos<e;){if(u?.nextFragment)u=u.nextFragment,this.metadataReader.pos=u.moofOffset+u.moofSize;else{await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+16);let d=this.metadataReader.pos,m=this.metadataReader.readBoxHeader();if(m.name==="moof"){let x=Be(this.fragments,d,_=>_.moofOffset),g;x===-1?(this.metadataReader.pos=d,g=await this.readFragment()):g=this.fragments[x],u&&(u.nextFragment=g),u=g,f&&(g.isKnownToBeFirstFragment=!0,f=!1)}this.metadataReader.pos=d+m.totalSize}u&&u.trackData.has(o)&&(l=u)}if(l){let d=l.trackData.get(o);w(d.startTimestampIsFinal),PE(a,d.endTimestamp)}a.startTimestampIsFinal=!0}return n}readContiguousBoxes(e){let t=this.metadataReader.pos;for(;this.metadataReader.pos-t<=e-8;)this.traverseBox()}traverseBox(){let e=this.metadataReader.pos,t=this.metadataReader.readBoxHeader(),i=e+t.totalSize;switch(t.name){case"mdia":case"minf":case"dinf":case"mfra":case"edts":this.readContiguousBoxes(t.contentSize);break;case"mvhd":{let s=this.metadataReader.readU8();this.metadataReader.pos+=3,s===1?(this.metadataReader.pos+=16,this.movieTimescale=this.metadataReader.readU32(),this.movieDurationInTimescale=this.metadataReader.readU64()):(this.metadataReader.pos+=8,this.movieTimescale=this.metadataReader.readU32(),this.movieDurationInTimescale=this.metadataReader.readU32())}break;case"trak":{let s={id:-1,demuxer:this,inputTrack:null,info:null,timescale:-1,durationInMovieTimescale:-1,durationInMediaTimescale:-1,rotation:0,languageCode:mt,sampleTableByteOffset:-1,sampleTable:null,fragmentLookupTable:null,currentFragmentState:null,fragments:[],fragmentsWithKeyFrame:[],editListPreviousSegmentDurations:0,editListOffset:0};if(this.currentTrack=s,this.readContiguousBoxes(t.contentSize),s.id!==-1&&s.timescale!==-1&&s.info!==null){if(s.info.type==="video"&&s.info.width!==-1){let n=s;s.inputTrack=new Ir(new ag(n)),this.tracks.push(s)}else if(s.info.type==="audio"&&s.info.numberOfChannels!==-1){let n=s;s.inputTrack=new nt(new cg(n)),this.tracks.push(s)}}this.currentTrack=null}break;case"tkhd":{let s=this.currentTrack;w(s);let n=this.metadataReader.readU8();if(!((this.metadataReader.readU24()&1)!==0))break;if(n===0)this.metadataReader.pos+=8,s.id=this.metadataReader.readU32(),this.metadataReader.pos+=4,s.durationInMovieTimescale=this.metadataReader.readU32();else if(n===1)this.metadataReader.pos+=16,s.id=this.metadataReader.readU32(),this.metadataReader.pos+=4,s.durationInMovieTimescale=this.metadataReader.readU64();else throw new Error(`Incorrect track header version ${n}.`);this.metadataReader.pos+=16;let c=[this.metadataReader.readFixed_16_16(),this.metadataReader.readFixed_16_16(),this.metadataReader.readFixed_2_30(),this.metadataReader.readFixed_16_16(),this.metadataReader.readFixed_16_16(),this.metadataReader.readFixed_2_30(),this.metadataReader.readFixed_16_16(),this.metadataReader.readFixed_16_16(),this.metadataReader.readFixed_2_30()],u=Gl(_C(aD(c),90));w(u===0||u===90||u===180||u===270),s.rotation=u}break;case"elst":{let s=this.currentTrack;w(s);let n=this.metadataReader.readU8();this.metadataReader.pos+=3;let o=!1,a=0,c=this.metadataReader.readU32();for(let u=0;u<c;u++){let l=n===1?this.metadataReader.readU64():this.metadataReader.readU32(),h=n===1?this.metadataReader.readI64():this.metadataReader.readI32(),f=this.metadataReader.readFixed_16_16();if(l!==0){if(o){console.warn("Unsupported edit list: multiple edits are not currently supported. Only using first edit.");break}if(h===-1){a+=l;continue}if(f!==1){console.warn("Unsupported edit list entry: media rate must be 1.");break}s.editListPreviousSegmentDurations=a,s.editListOffset=h,o=!0}}}break;case"mdhd":{let s=this.currentTrack;w(s);let n=this.metadataReader.readU8();this.metadataReader.pos+=3,n===0?(this.metadataReader.pos+=8,s.timescale=this.metadataReader.readU32(),s.durationInMediaTimescale=this.metadataReader.readU32()):n===1&&(this.metadataReader.pos+=16,s.timescale=this.metadataReader.readU32(),s.durationInMediaTimescale=this.metadataReader.readU64());let o=this.metadataReader.readU16();if(o>0){s.languageCode="";for(let a=0;a<3;a++)s.languageCode=String.fromCharCode(96+(o&31))+s.languageCode,o>>=5;ln(s.languageCode)||(s.languageCode=mt)}}break;case"hdlr":{let s=this.currentTrack;w(s),this.metadataReader.pos+=8;let n=this.metadataReader.readAscii(4);n==="vide"?s.info={type:"video",width:-1,height:-1,codec:null,codecDescription:null,colorSpace:null,avcCodecInfo:null,hevcCodecInfo:null,vp9CodecInfo:null,av1CodecInfo:null}:n==="soun"&&(s.info={type:"audio",numberOfChannels:-1,sampleRate:-1,codec:null,codecDescription:null,aacCodecInfo:null})}break;case"stbl":{let s=this.currentTrack;w(s),s.sampleTableByteOffset=e,this.readContiguousBoxes(t.contentSize)}break;case"stsd":{let s=this.currentTrack;if(w(s),s.info===null||s.sampleTable)break;let n=this.metadataReader.readU8();this.metadataReader.pos+=3;let o=this.metadataReader.readU32();for(let a=0;a<o;a++){let c=this.metadataReader.pos,u=this.metadataReader.readBoxHeader(),l=u.name.toLowerCase();if(s.info.type==="video")l==="avc1"?s.info.codec="avc":l==="hvc1"||l==="hev1"?s.info.codec="hevc":l==="vp08"?s.info.codec="vp8":l==="vp09"?s.info.codec="vp9":l==="av01"?s.info.codec="av1":console.warn(`Unsupported video codec (sample entry type '${u.name}').`),this.metadataReader.pos+=24,s.info.width=this.metadataReader.readU16(),s.info.height=this.metadataReader.readU16(),this.metadataReader.pos+=50,this.readContiguousBoxes(c+u.totalSize-this.metadataReader.pos);else{l==="mp4a"||(l==="opus"?s.info.codec="opus":l==="flac"?s.info.codec="flac":l==="twos"||l==="sowt"||l==="raw "||l==="in24"||l==="in32"||l==="fl32"||l==="fl64"||l==="lpcm"||l==="ipcm"||l==="fpcm"||(l==="ulaw"?s.info.codec="ulaw":l==="alaw"?s.info.codec="alaw":console.warn(`Unsupported audio codec (sample entry type '${u.name}').`))),this.metadataReader.pos+=8;let h=this.metadataReader.readU16();this.metadataReader.pos+=6;let f=this.metadataReader.readU16(),d=this.metadataReader.readU16();this.metadataReader.pos+=4;let m=this.metadataReader.readU32()/65536;if(n===0&&h>0){if(h===1)this.metadataReader.pos+=4,d=8*this.metadataReader.readU32(),this.metadataReader.pos+=8;else if(h===2){this.metadataReader.pos+=4,m=this.metadataReader.readF64(),f=this.metadataReader.readU32(),this.metadataReader.pos+=4,d=this.metadataReader.readU32();let x=this.metadataReader.readU32();if(this.metadataReader.pos+=8,l==="lpcm"){let g=d+7>>3,_=!!(x&1),y=!!(x&2),S=x&4?-1:0;d>0&&d<=64&&(_?d===32&&(s.info.codec=y?"pcm-f32be":"pcm-f32"):S&1<<g-1?g===1?s.info.codec="pcm-s8":g===2?s.info.codec=y?"pcm-s16be":"pcm-s16":g===3?s.info.codec=y?"pcm-s24be":"pcm-s24":g===4&&(s.info.codec=y?"pcm-s32be":"pcm-s32"):g===1&&(s.info.codec="pcm-u8")),s.info.codec===null&&console.warn("Unsupported PCM format.")}}}s.info.numberOfChannels=f,s.info.sampleRate=m,l==="twos"?d===8?s.info.codec="pcm-s8":d===16?s.info.codec="pcm-s16be":(console.warn(`Unsupported sample size ${d} for codec 'twos'.`),s.info.codec=null):l==="sowt"?d===8?s.info.codec="pcm-s8":d===16?s.info.codec="pcm-s16":(console.warn(`Unsupported sample size ${d} for codec 'sowt'.`),s.info.codec=null):l==="raw "?s.info.codec="pcm-u8":l==="in24"?s.info.codec="pcm-s24be":l==="in32"?s.info.codec="pcm-s32be":l==="fl32"?s.info.codec="pcm-f32be":l==="fl64"?s.info.codec="pcm-f64be":l==="ipcm"?s.info.codec="pcm-s16be":l==="fpcm"&&(s.info.codec="pcm-f32be"),this.readContiguousBoxes(c+u.totalSize-this.metadataReader.pos)}}}break;case"avcC":{let s=this.currentTrack;w(s&&s.info),s.info.codecDescription=this.metadataReader.readBytes(t.contentSize)}break;case"hvcC":{let s=this.currentTrack;w(s&&s.info),s.info.codecDescription=this.metadataReader.readBytes(t.contentSize)}break;case"vpcC":{let s=this.currentTrack;w(s&&s.info?.type==="video"),this.metadataReader.pos+=4;let n=this.metadataReader.readU8(),o=this.metadataReader.readU8(),a=this.metadataReader.readU8(),c=a>>4,u=a>>1&7,l=a&1,h=this.metadataReader.readU8(),f=this.metadataReader.readU8(),d=this.metadataReader.readU8();s.info.vp9CodecInfo={profile:n,level:o,bitDepth:c,chromaSubsampling:u,videoFullRangeFlag:l,colourPrimaries:h,transferCharacteristics:f,matrixCoefficients:d}}break;case"av1C":{let s=this.currentTrack;w(s&&s.info?.type==="video"),this.metadataReader.pos+=1;let n=this.metadataReader.readU8(),o=n>>5,a=n&31,c=this.metadataReader.readU8(),u=c>>7,l=c>>6&1,h=c>>5&1,f=c>>4&1,d=c>>3&1,m=c>>2&1,x=c&3,g=o==2&&l?h?12:10:l?10:8;s.info.av1CodecInfo={profile:o,level:a,tier:u,bitDepth:g,monochrome:f,chromaSubsamplingX:d,chromaSubsamplingY:m,chromaSamplePosition:x}}break;case"colr":{let s=this.currentTrack;if(w(s&&s.info?.type==="video"),this.metadataReader.readAscii(4)!=="nclx")break;let o=this.metadataReader.readU16(),a=this.metadataReader.readU16(),c=this.metadataReader.readU16(),u=!!(this.metadataReader.readU8()&128);s.info.colorSpace={primaries:Nl[o],transfer:Ll[a],matrix:zl[c],fullRange:u}}break;case"wave":this.readContiguousBoxes(t.contentSize);break;case"esds":{let s=this.currentTrack;w(s&&s.info?.type==="audio"),this.metadataReader.pos+=4;let n=this.metadataReader.readU8();w(n===3),this.metadataReader.readIsomVariableInteger(),this.metadataReader.pos+=2;let o=this.metadataReader.readU8(),a=(o&128)!==0,c=(o&64)!==0,u=(o&32)!==0;if(a&&(this.metadataReader.pos+=2),c){let m=this.metadataReader.readU8();this.metadataReader.pos+=m}u&&(this.metadataReader.pos+=2);let l=this.metadataReader.readU8();w(l===4);let h=this.metadataReader.readIsomVariableInteger(),f=this.metadataReader.pos,d=this.metadataReader.readU8();if(d===64||d===103?(s.info.codec="aac",s.info.aacCodecInfo={isMpeg2:d===103}):d===105||d===107?s.info.codec="mp3":d===221?s.info.codec="vorbis":console.warn(`Unsupported audio codec (objectTypeIndication ${d}) - discarding track.`),this.metadataReader.pos+=12,h>this.metadataReader.pos-f){let m=this.metadataReader.readU8();w(m===5);let x=this.metadataReader.readIsomVariableInteger();if(s.info.codecDescription=this.metadataReader.readBytes(x),s.info.codec==="aac"){let g=Lp(s.info.codecDescription);g.numberOfChannels!==null&&(s.info.numberOfChannels=g.numberOfChannels),g.sampleRate!==null&&(s.info.sampleRate=g.sampleRate)}}}break;case"enda":{let s=this.currentTrack;w(s&&s.info?.type==="audio"),this.metadataReader.readU16()&255&&(s.info.codec==="pcm-s16be"?s.info.codec="pcm-s16":s.info.codec==="pcm-s24be"?s.info.codec="pcm-s24":s.info.codec==="pcm-s32be"?s.info.codec="pcm-s32":s.info.codec==="pcm-f32be"?s.info.codec="pcm-f32":s.info.codec==="pcm-f64be"&&(s.info.codec="pcm-f64"))}break;case"pcmC":{let s=this.currentTrack;w(s&&s.info?.type==="audio"),this.metadataReader.pos+=4;let o=!!(this.metadataReader.readU8()&1),a=this.metadataReader.readU8();s.info.codec==="pcm-s16be"?o?a===16?s.info.codec="pcm-s16":a===24?s.info.codec="pcm-s24":a===32?s.info.codec="pcm-s32":(console.warn(`Invalid ipcm sample size ${a}.`),s.info.codec=null):a===16?s.info.codec="pcm-s16be":a===24?s.info.codec="pcm-s24be":a===32?s.info.codec="pcm-s32be":(console.warn(`Invalid ipcm sample size ${a}.`),s.info.codec=null):s.info.codec==="pcm-f32be"&&(o?a===32?s.info.codec="pcm-f32":a===64?s.info.codec="pcm-f64":(console.warn(`Invalid fpcm sample size ${a}.`),s.info.codec=null):a===32?s.info.codec="pcm-f32be":a===64?s.info.codec="pcm-f64be":(console.warn(`Invalid fpcm sample size ${a}.`),s.info.codec=null));break}case"dOps":{let s=this.currentTrack;w(s&&s.info?.type==="audio"),this.metadataReader.pos+=1;let n=this.metadataReader.readU8(),o=this.metadataReader.readU16(),a=this.metadataReader.readU32(),c=this.metadataReader.readI16(),u=this.metadataReader.readU8(),l;u!==0?l=this.metadataReader.readBytes(2+n):l=new Uint8Array(0);let h=new Uint8Array(19+l.byteLength),f=new DataView(h.buffer);f.setUint32(0,1332770163,!1),f.setUint32(4,1214603620,!1),f.setUint8(8,1),f.setUint8(9,n),f.setUint16(10,o,!0),f.setUint32(12,a,!0),f.setInt16(16,c,!0),f.setUint8(18,u),h.set(l,19),s.info.codecDescription=h,s.info.numberOfChannels=n,s.info.sampleRate=a}break;case"dfLa":{let s=this.currentTrack;w(s&&s.info?.type==="audio"),this.metadataReader.pos+=4;let n=127,o=128,a=this.metadataReader.pos;for(;this.metadataReader.pos<i;){let f=this.metadataReader.readU8(),d=this.metadataReader.readU24();if((f&n)===0){this.metadataReader.pos+=10;let x=this.metadataReader.readU32(),g=x>>>12,_=(x>>9&7)+1;s.info.sampleRate=g,s.info.numberOfChannels=_,this.metadataReader.pos+=20}else this.metadataReader.pos+=d;if(f&o)break}let c=this.metadataReader.pos;this.metadataReader.pos=a;let u=this.metadataReader.readBytes(c-a),l=new Uint8Array(4+u.byteLength);new DataView(l.buffer).setUint32(0,1716281667,!1),l.set(u,4),s.info.codecDescription=l}break;case"stts":{let s=this.currentTrack;if(w(s),!s.sampleTable)break;this.metadataReader.pos+=4;let n=this.metadataReader.readU32(),o=0,a=0;for(let c=0;c<n;c++){let u=this.metadataReader.readU32(),l=this.metadataReader.readU32();s.sampleTable.sampleTimingEntries.push({startIndex:o,startDecodeTimestamp:a,count:u,delta:l}),o+=u,a+=u*l}}break;case"ctts":{let s=this.currentTrack;if(w(s),!s.sampleTable)break;this.metadataReader.pos+=4;let n=this.metadataReader.readU32(),o=0;for(let a=0;a<n;a++){let c=this.metadataReader.readU32(),u=this.metadataReader.readI32();s.sampleTable.sampleCompositionTimeOffsets.push({startIndex:o,count:c,offset:u}),o+=c}}break;case"stsz":{let s=this.currentTrack;if(w(s),!s.sampleTable)break;this.metadataReader.pos+=4;let n=this.metadataReader.readU32(),o=this.metadataReader.readU32();if(n===0)for(let a=0;a<o;a++){let c=this.metadataReader.readU32();s.sampleTable.sampleSizes.push(c)}else s.sampleTable.sampleSizes.push(n)}break;case"stz2":{let s=this.currentTrack;if(w(s),!s.sampleTable)break;this.metadataReader.pos+=4,this.metadataReader.pos+=3;let n=this.metadataReader.readU8(),o=this.metadataReader.readU32(),a=this.metadataReader.readBytes(Math.ceil(o*n/8)),c=new $e(a);for(let u=0;u<o;u++){let l=c.readBits(n);s.sampleTable.sampleSizes.push(l)}}break;case"stss":{let s=this.currentTrack;if(w(s),!s.sampleTable)break;this.metadataReader.pos+=4,s.sampleTable.keySampleIndices=[];let n=this.metadataReader.readU32();for(let o=0;o<n;o++){let a=this.metadataReader.readU32()-1;s.sampleTable.keySampleIndices.push(a)}}break;case"stsc":{let s=this.currentTrack;if(w(s),!s.sampleTable)break;this.metadataReader.pos+=4;let n=this.metadataReader.readU32();for(let a=0;a<n;a++){let c=this.metadataReader.readU32()-1,u=this.metadataReader.readU32(),l=this.metadataReader.readU32();s.sampleTable.sampleToChunk.push({startSampleIndex:-1,startChunkIndex:c,samplesPerChunk:u,sampleDescriptionIndex:l})}let o=0;for(let a=0;a<s.sampleTable.sampleToChunk.length;a++)if(s.sampleTable.sampleToChunk[a].startSampleIndex=o,a<s.sampleTable.sampleToChunk.length-1){let u=s.sampleTable.sampleToChunk[a+1].startChunkIndex-s.sampleTable.sampleToChunk[a].startChunkIndex;o+=u*s.sampleTable.sampleToChunk[a].samplesPerChunk}}break;case"stco":{let s=this.currentTrack;if(w(s),!s.sampleTable)break;this.metadataReader.pos+=4;let n=this.metadataReader.readU32();for(let o=0;o<n;o++){let a=this.metadataReader.readU32();s.sampleTable.chunkOffsets.push(a)}}break;case"co64":{let s=this.currentTrack;if(w(s),!s.sampleTable)break;this.metadataReader.pos+=4;let n=this.metadataReader.readU32();for(let o=0;o<n;o++){let a=this.metadataReader.readU64();s.sampleTable.chunkOffsets.push(a)}}break;case"mvex":this.isFragmented=!0,this.readContiguousBoxes(t.contentSize);break;case"mehd":{let s=this.metadataReader.readU8();this.metadataReader.pos+=3;let n=s===1?this.metadataReader.readU64():this.metadataReader.readU32();this.movieDurationInTimescale=n}break;case"trex":{this.metadataReader.pos+=4;let s=this.metadataReader.readU32(),n=this.metadataReader.readU32(),o=this.metadataReader.readU32(),a=this.metadataReader.readU32(),c=this.metadataReader.readU32();this.fragmentTrackDefaults.push({trackId:s,defaultSampleDescriptionIndex:n,defaultSampleDuration:o,defaultSampleSize:a,defaultSampleFlags:c})}break;case"tfra":{let s=this.metadataReader.readU8();this.metadataReader.pos+=3;let n=this.metadataReader.readU32(),o=this.tracks.find(_=>_.id===n);if(!o)break;o.fragmentLookupTable=[];let a=this.metadataReader.readU32(),c=(a&48)>>4,u=(a&12)>>2,l=a&3,h=this.metadataReader,f=[h.readU8.bind(h),h.readU16.bind(h),h.readU24.bind(h),h.readU32.bind(h)],d=f[c],m=f[u],x=f[l],g=this.metadataReader.readU32();for(let _=0;_<g;_++){let y=s===1?this.metadataReader.readU64():this.metadataReader.readU32(),S=s===1?this.metadataReader.readU64():this.metadataReader.readU32(),T=d(),C=m(),v=x();o.fragmentLookupTable.push({timestamp:y,moofOffset:S})}}break;case"moof":{this.currentFragment={moofOffset:e,moofSize:t.totalSize,implicitBaseDataOffset:e,trackData:new Map,dataStart:1/0,dataEnd:0,nextFragment:null,isKnownToBeFirstFragment:!1},this.readContiguousBoxes(t.contentSize);let s=J(this.fragments,this.currentFragment.moofOffset,n=>n.moofOffset);this.fragments.splice(s+1,0,this.currentFragment);for(let[,n]of this.currentFragment.trackData){let o=n.samples[0],a=he(n.samples);this.currentFragment.dataStart=Math.min(this.currentFragment.dataStart,o.byteOffset),this.currentFragment.dataEnd=Math.max(this.currentFragment.dataEnd,a.byteOffset+a.byteSize)}this.currentFragment=null}break;case"traf":if(w(this.currentFragment),this.readContiguousBoxes(t.contentSize),this.currentTrack){let s=this.currentFragment.trackData.get(this.currentTrack.id);if(s){let n=J(this.currentTrack.fragments,this.currentFragment.moofOffset,c=>c.moofOffset);if(this.currentTrack.fragments.splice(n+1,0,this.currentFragment),s.firstKeyFrameTimestamp!==null){let c=J(this.currentTrack.fragmentsWithKeyFrame,this.currentFragment.moofOffset,u=>u.moofOffset);this.currentTrack.fragmentsWithKeyFrame.splice(c+1,0,this.currentFragment)}let{currentFragmentState:a}=this.currentTrack;w(a),a.startTimestamp!==null&&(PE(s,a.startTimestamp),s.startTimestampIsFinal=!0)}this.currentTrack.currentFragmentState=null,this.currentTrack=null}break;case"tfhd":{w(this.currentFragment),this.metadataReader.pos+=1;let s=this.metadataReader.readU24(),n=!!(s&1),o=!!(s&2),a=!!(s&8),c=!!(s&16),u=!!(s&32),l=!!(s&65536),h=!!(s&131072),f=this.metadataReader.readU32(),d=this.tracks.find(x=>x.id===f);if(!d)break;let m=this.fragmentTrackDefaults.find(x=>x.trackId===f);this.currentTrack=d,d.currentFragmentState={baseDataOffset:this.currentFragment.implicitBaseDataOffset,sampleDescriptionIndex:m?.defaultSampleDescriptionIndex??null,defaultSampleDuration:m?.defaultSampleDuration??null,defaultSampleSize:m?.defaultSampleSize??null,defaultSampleFlags:m?.defaultSampleFlags??null,startTimestamp:null},n?d.currentFragmentState.baseDataOffset=this.metadataReader.readU64():h&&(d.currentFragmentState.baseDataOffset=this.currentFragment.moofOffset),o&&(d.currentFragmentState.sampleDescriptionIndex=this.metadataReader.readU32()),a&&(d.currentFragmentState.defaultSampleDuration=this.metadataReader.readU32()),c&&(d.currentFragmentState.defaultSampleSize=this.metadataReader.readU32()),u&&(d.currentFragmentState.defaultSampleFlags=this.metadataReader.readU32()),l&&(d.currentFragmentState.defaultSampleDuration=0)}break;case"tfdt":{let s=this.currentTrack;if(!s)break;w(s.currentFragmentState);let n=this.metadataReader.readU8();this.metadataReader.pos+=3;let o=n===0?this.metadataReader.readU32():this.metadataReader.readU64();s.currentFragmentState.startTimestamp=o}break;case"trun":{let s=this.currentTrack;if(!s)break;if(w(this.currentFragment),w(s.currentFragmentState),this.currentFragment.trackData.has(s.id)){console.warn("Can't have two trun boxes for the same track in one fragment. Ignoring...");break}let n=this.metadataReader.readU8(),o=this.metadataReader.readU24(),a=!!(o&1),c=!!(o&4),u=!!(o&256),l=!!(o&512),h=!!(o&1024),f=!!(o&2048),d=this.metadataReader.readU32(),m=s.currentFragmentState.baseDataOffset;a&&(m+=this.metadataReader.readI32());let x=null;c&&(x=this.metadataReader.readU32());let g=m;if(d===0){this.currentFragment.implicitBaseDataOffset=g;break}let _=0,y={startTimestamp:0,endTimestamp:0,firstKeyFrameTimestamp:null,samples:[],presentationTimestamps:[],startTimestampIsFinal:!1};this.currentFragment.trackData.set(s.id,y);for(let C=0;C<d;C++){let v;u?v=this.metadataReader.readU32():(w(s.currentFragmentState.defaultSampleDuration!==null),v=s.currentFragmentState.defaultSampleDuration);let E;l?E=this.metadataReader.readU32():(w(s.currentFragmentState.defaultSampleSize!==null),E=s.currentFragmentState.defaultSampleSize);let M;h?M=this.metadataReader.readU32():(w(s.currentFragmentState.defaultSampleFlags!==null),M=s.currentFragmentState.defaultSampleFlags),C===0&&x!==null&&(M=x);let A=0;f&&(n===0?A=this.metadataReader.readU32():A=this.metadataReader.readI32());let B=!(M&65536);y.samples.push({presentationTimestamp:_+A,duration:v,byteOffset:g,byteSize:E,isKeyFrame:B}),g+=E,_+=v}y.presentationTimestamps=y.samples.map((C,v)=>({presentationTimestamp:C.presentationTimestamp,sampleIndex:v})).sort((C,v)=>C.presentationTimestamp-v.presentationTimestamp);for(let C=0;C<y.presentationTimestamps.length;C++){let v=y.presentationTimestamps[C],E=y.samples[v.sampleIndex];if(y.firstKeyFrameTimestamp===null&&E.isKeyFrame&&(y.firstKeyFrameTimestamp=E.presentationTimestamp),C<y.presentationTimestamps.length-1){let M=y.presentationTimestamps[C+1];E.duration=M.presentationTimestamp-v.presentationTimestamp}}let S=y.samples[y.presentationTimestamps[0].sampleIndex],T=y.samples[he(y.presentationTimestamps).sampleIndex];y.startTimestamp=S.presentationTimestamp,y.endTimestamp=T.presentationTimestamp+T.duration,this.currentFragment.implicitBaseDataOffset=g}break}this.metadataReader.pos=i}},fh=class{constructor(e){this.internalTrack=e,this.packetToSampleIndex=new WeakMap,this.packetToFragmentLocation=new WeakMap}getId(){return this.internalTrack.id}getCodec(){throw new Error("Not implemented on base class.")}getLanguageCode(){return this.internalTrack.languageCode}getTimeResolution(){return this.internalTrack.timescale}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}async getFirstTimestamp(){return(await this.getFirstPacket({metadataOnly:!0}))?.timestamp??0}async getFirstPacket(e){let t=await this.fetchPacketForSampleIndex(0,e);return t||!this.internalTrack.demuxer.isFragmented?t:this.performFragmentedLookup(()=>{let i=this.internalTrack.demuxer.fragments[0]??null;if(i?.isKnownToBeFirstFragment){let s=i;for(;s;){if(s.trackData.get(this.internalTrack.id))return{fragmentIndex:Be(this.internalTrack.fragments,s.moofOffset,o=>o.moofOffset),sampleIndex:0,correctSampleFound:!0};s=s.nextFragment}}return{fragmentIndex:-1,sampleIndex:-1,correctSampleFound:!1}},-1/0,1/0,e)}mapTimestampIntoTimescale(e){return un(e*this.internalTrack.timescale,14)+this.internalTrack.editListOffset}async getPacket(e,t){let i=this.mapTimestampIntoTimescale(e),s=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),n=AE(s,i),o=await this.fetchPacketForSampleIndex(n,t);return!BE(s)||!this.internalTrack.demuxer.isFragmented?o:this.performFragmentedLookup(()=>this.findSampleInFragmentsForTimestamp(i),i,i,t)}async getNextPacket(e,t){let i=this.packetToSampleIndex.get(e);if(i!==void 0)return this.fetchPacketForSampleIndex(i+1,t);let s=this.packetToFragmentLocation.get(e);if(s===void 0)throw new Error("Packet was not created from this track.");let n=s.fragment.trackData.get(this.internalTrack.id),o=n.samples[s.sampleIndex],a=Be(this.internalTrack.fragments,s.fragment.moofOffset,c=>c.moofOffset);return w(a!==-1),this.performFragmentedLookup(()=>{if(s.sampleIndex+1<n.samples.length)return{fragmentIndex:a,sampleIndex:s.sampleIndex+1,correctSampleFound:!0};{let c=s.fragment;for(;c.nextFragment;)if(c=c.nextFragment,c.trackData.get(this.internalTrack.id)){let l=Be(this.internalTrack.fragments,c.moofOffset,h=>h.moofOffset);return w(l!==-1),{fragmentIndex:l,sampleIndex:0,correctSampleFound:!0}}return{fragmentIndex:a,sampleIndex:-1,correctSampleFound:!1}}},o.presentationTimestamp,1/0,t)}async getKeyPacket(e,t){let i=this.mapTimestampIntoTimescale(e),s=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),n=AE(s,i),o=n===-1?-1:nD(s,n),a=await this.fetchPacketForSampleIndex(o,t);return!BE(s)||!this.internalTrack.demuxer.isFragmented?a:this.performFragmentedLookup(()=>this.findKeySampleInFragmentsForTimestamp(i),i,i,t)}async getNextKeyPacket(e,t){let i=this.packetToSampleIndex.get(e);if(i!==void 0){let c=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),u=oD(c,i);return this.fetchPacketForSampleIndex(u,t)}let s=this.packetToFragmentLocation.get(e);if(s===void 0)throw new Error("Packet was not created from this track.");let n=s.fragment.trackData.get(this.internalTrack.id),o=n.samples[s.sampleIndex],a=Be(this.internalTrack.fragments,s.fragment.moofOffset,c=>c.moofOffset);return w(a!==-1),this.performFragmentedLookup(()=>{let c=n.samples.findIndex((u,l)=>u.isKeyFrame&&l>s.sampleIndex);if(c!==-1)return{fragmentIndex:a,sampleIndex:c,correctSampleFound:!0};{let u=s.fragment;for(;u.nextFragment;){u=u.nextFragment;let l=u.trackData.get(this.internalTrack.id);if(l&&l.firstKeyFrameTimestamp!==null){let h=Be(this.internalTrack.fragments,u.moofOffset,d=>d.moofOffset);w(h!==-1);let f=l.samples.findIndex(d=>d.isKeyFrame);return w(f!==-1),{fragmentIndex:h,sampleIndex:f,correctSampleFound:!0}}}return{fragmentIndex:a,sampleIndex:-1,correctSampleFound:!1}}},o.presentationTimestamp,1/0,t)}async fetchPacketForSampleIndex(e,t){if(e===-1)return null;let i=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),s=sD(i,e);if(!s)return null;let n;t.metadataOnly?n=pt:(await this.internalTrack.demuxer.chunkReader.reader.loadRange(s.chunkOffset,s.chunkOffset+s.chunkSize),this.internalTrack.demuxer.chunkReader.pos=s.sampleOffset,n=this.internalTrack.demuxer.chunkReader.readBytes(s.sampleSize));let o=(s.presentationTimestamp-this.internalTrack.editListOffset)/this.internalTrack.timescale,a=s.duration/this.internalTrack.timescale,c=new de(n,s.isKeyFrame?"key":"delta",o,a,e,s.sampleSize);return this.packetToSampleIndex.set(c,e),c}async fetchPacketInFragment(e,t,i){if(t===-1)return null;let n=e.trackData.get(this.internalTrack.id).samples[t];w(n);let o;i.metadataOnly?o=pt:(await this.internalTrack.demuxer.chunkReader.reader.loadRange(e.dataStart,e.dataEnd),this.internalTrack.demuxer.chunkReader.pos=n.byteOffset,o=this.internalTrack.demuxer.chunkReader.readBytes(n.byteSize));let a=(n.presentationTimestamp-this.internalTrack.editListOffset)/this.internalTrack.timescale,c=n.duration/this.internalTrack.timescale,u=new de(o,n.isKeyFrame?"key":"delta",a,c,e.moofOffset+t,n.byteSize);return this.packetToFragmentLocation.set(u,{fragment:e,sampleIndex:t}),u}findSampleInFragmentsForTimestamp(e){let t=J(this.internalTrack.fragments,e,n=>n.trackData.get(this.internalTrack.id).startTimestamp),i=-1,s=!1;if(t!==-1){let o=this.internalTrack.fragments[t].trackData.get(this.internalTrack.id),a=J(o.presentationTimestamps,e,c=>c.presentationTimestamp);w(a!==-1),i=o.presentationTimestamps[a].sampleIndex,s=e<o.endTimestamp}return{fragmentIndex:t,sampleIndex:i,correctSampleFound:s}}findKeySampleInFragmentsForTimestamp(e){let t=J(this.internalTrack.fragmentsWithKeyFrame,e,o=>o.trackData.get(this.internalTrack.id).startTimestamp),i=-1,s=-1,n=!1;if(t!==-1){let o=this.internalTrack.fragmentsWithKeyFrame[t];i=Be(this.internalTrack.fragments,o.moofOffset,l=>l.moofOffset),w(i!==-1);let a=o.trackData.get(this.internalTrack.id),c=Vl(a.presentationTimestamps,l=>a.samples[l.sampleIndex].isKeyFrame&&l.presentationTimestamp<=e);w(c!==-1),s=a.presentationTimestamps[c].sampleIndex,n=e<a.endTimestamp}return{fragmentIndex:i,sampleIndex:s,correctSampleFound:n}}async performFragmentedLookup(e,t,i,s){let n=this.internalTrack.demuxer,o=await n.fragmentLookupMutex.acquire();try{let{fragmentIndex:a,sampleIndex:c,correctSampleFound:u}=e();if(u){let T=this.internalTrack.fragments[a];return this.fetchPacketInFragment(T,c,s)}let l=n.metadataReader,h=await l.reader.source.getSize(),f=null,d=a,m=c,x=this.internalTrack.fragmentLookupTable?J(this.internalTrack.fragmentLookupTable,t,T=>T.timestamp):-1,g=x!==-1?this.internalTrack.fragmentLookupTable[x]:null,_=!1;if(a===-1)l.pos=g?.moofOffset??0,_=l.pos===0;else{let T=this.internalTrack.fragments[a];!g||T.moofOffset>=g.moofOffset?(l.pos=T.moofOffset+T.moofSize,f=T):l.pos=g.moofOffset}for(;l.pos<h;){if(f){let v=f.trackData.get(this.internalTrack.id);if(v&&v.startTimestamp>i)break;if(f.nextFragment){l.pos=f.nextFragment.moofOffset+f.nextFragment.moofSize,f=f.nextFragment;continue}}await l.reader.loadRange(l.pos,l.pos+16);let T=l.pos,C=l.readBoxHeader();if(C.name==="moof"){let v=Be(n.fragments,T,k=>k.moofOffset),E;v===-1?(l.pos=T,E=await n.readFragment()):E=n.fragments[v],f&&(f.nextFragment=E),f=E,_&&(E.isKnownToBeFirstFragment=!0,_=!1);let{fragmentIndex:M,sampleIndex:A,correctSampleFound:B}=e();if(B){let k=this.internalTrack.fragments[M];return this.fetchPacketInFragment(k,A,s)}M!==-1&&(d=M,m=A)}l.pos=T+C.totalSize}let y=null,S=d!==-1?this.internalTrack.fragments[d]:null;if(S&&(y=await this.fetchPacketInFragment(S,m,s)),!y&&g&&(!S||S.moofOffset<g.moofOffset)){let C=this.internalTrack.fragmentLookupTable[x-1]?.timestamp??-1/0;return this.performFragmentedLookup(e,C,i,s)}return y}finally{o()}}},ag=class extends fh{constructor(e){super(e),this.decoderConfigPromise=null,this.internalTrack=e}getCodec(){return this.internalTrack.info.codec}getCodedWidth(){return this.internalTrack.info.width}getCodedHeight(){return this.internalTrack.info.height}getRotation(){return this.internalTrack.rotation}async getColorSpace(){return{primaries:this.internalTrack.info.colorSpace?.primaries,transfer:this.internalTrack.info.colorSpace?.transfer,matrix:this.internalTrack.info.colorSpace?.matrix,fullRange:this.internalTrack.info.colorSpace?.fullRange}}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfigPromise??=(async()=>{if(this.internalTrack.info.codec==="vp9"&&!this.internalTrack.info.vp9CodecInfo){let e=await this.getFirstPacket({});this.internalTrack.info.vp9CodecInfo=e&&Ql(e.data)}else if(this.internalTrack.info.codec==="av1"&&!this.internalTrack.info.av1CodecInfo){let e=await this.getFirstPacket({});this.internalTrack.info.av1CodecInfo=e&&Zl(e.data)}return{codec:ql(this.internalTrack.info),codedWidth:this.internalTrack.info.width,codedHeight:this.internalTrack.info.height,description:this.internalTrack.info.codecDescription??void 0,colorSpace:this.internalTrack.info.colorSpace??void 0}})():null}},cg=class extends fh{constructor(e){super(e),this.decoderConfig=null,this.internalTrack=e}getCodec(){return this.internalTrack.info.codec}getNumberOfChannels(){return this.internalTrack.info.numberOfChannels}getSampleRate(){return this.internalTrack.info.sampleRate}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfig??={codec:jl(this.internalTrack.info),numberOfChannels:this.internalTrack.info.numberOfChannels,sampleRate:this.internalTrack.info.sampleRate,description:this.internalTrack.info.codecDescription??void 0}:null}},AE=(r,e)=>{if(r.presentationTimestamps){let t=J(r.presentationTimestamps,e,i=>i.presentationTimestamp);return t===-1?-1:r.presentationTimestamps[t].sampleIndex}else{let t=J(r.sampleTimingEntries,e,s=>s.startDecodeTimestamp);if(t===-1)return-1;let i=r.sampleTimingEntries[t];return i.startIndex+Math.min(Math.floor((e-i.startDecodeTimestamp)/i.delta),i.count-1)}},sD=(r,e)=>{let t=J(r.sampleTimingEntries,e,_=>_.startIndex),i=r.sampleTimingEntries[t];if(!i||i.startIndex+i.count<=e)return null;let n=i.startDecodeTimestamp+(e-i.startIndex)*i.delta,o=J(r.sampleCompositionTimeOffsets,e,_=>_.startIndex),a=r.sampleCompositionTimeOffsets[o];a&&e-a.startIndex<a.count&&(n+=a.offset);let c=r.sampleSizes[Math.min(e,r.sampleSizes.length-1)],u=J(r.sampleToChunk,e,_=>_.startSampleIndex),l=r.sampleToChunk[u];w(l);let h=l.startChunkIndex+Math.floor((e-l.startSampleIndex)/l.samplesPerChunk),f=r.chunkOffsets[h],d=l.startSampleIndex+(h-l.startChunkIndex)*l.samplesPerChunk,m=0,x=f;if(r.sampleSizes.length===1)x+=c*(e-d),m+=c*l.samplesPerChunk;else for(let _=d;_<d+l.samplesPerChunk;_++){let y=r.sampleSizes[_];_<e&&(x+=y),m+=y}let g=i.delta;if(r.presentationTimestamps){let _=r.presentationTimestampIndexMap[e];w(_!==void 0),_<r.presentationTimestamps.length-1&&(g=r.presentationTimestamps[_+1].presentationTimestamp-n)}return{presentationTimestamp:n,duration:g,sampleOffset:x,sampleSize:c,chunkOffset:f,chunkSize:m,isKeyFrame:r.keySampleIndices?Be(r.keySampleIndices,e,_=>_)!==-1:!0}},nD=(r,e)=>{if(!r.keySampleIndices)return e;let t=J(r.keySampleIndices,e,i=>i);return r.keySampleIndices[t]??-1},oD=(r,e)=>{if(!r.keySampleIndices)return e+1;let t=J(r.keySampleIndices,e,i=>i);return r.keySampleIndices[t+1]??-1},PE=(r,e)=>{r.startTimestamp+=e,r.endTimestamp+=e;for(let t of r.samples)t.presentationTimestamp+=e;for(let t of r.presentationTimestamps)t.presentationTimestamp+=e},aD=r=>{let[e,,,t]=r,i=Math.hypot(e,t),s=e/i,n=t/i;return-Math.atan2(n,s)*(180/Math.PI)},BE=r=>r.sampleSizes.length===0;var ug=[{id:I.SeekHead,flag:"seekHeadSeen"},{id:I.Info,flag:"infoSeen"},{id:I.Tracks,flag:"tracksSeen"},{id:I.Cues,flag:"cuesSeen"}],mh=class extends Bt{constructor(e){super(e),this.readMetadataPromise=null,this.segments=[],this.currentSegment=null,this.currentTrack=null,this.currentCluster=null,this.currentBlock=null,this.currentCueTime=null,this.isWebM=!1,this.metadataReader=new Yi(e._mainReader),this.clusterReader=new Yi(new Rt(e.source,64*2**20))}async computeDuration(){let e=await this.getTracks(),t=await Promise.all(e.map(i=>i.computeDuration()));return Math.max(0,...t)}async getTracks(){return await this.readMetadata(),this.segments.flatMap(e=>e.tracks.map(t=>t.inputTrack))}async getMimeType(){await this.readMetadata();let e=await this.getTracks(),t=await Promise.all(e.map(i=>i.getCodecParameterString()));return dE({isWebM:this.isWebM,hasVideo:this.segments.some(i=>i.tracks.some(s=>s.info?.type==="video")),hasAudio:this.segments.some(i=>i.tracks.some(s=>s.info?.type==="audio")),codecStrings:t.filter(Boolean)})}readMetadata(){return this.readMetadataPromise??=(async()=>{this.metadataReader.pos=0;let e=await this.input.source.getSize();for(;this.metadataReader.pos<=e-uh;){await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+Xi);let t=this.metadataReader.readElementHeader(),i=t.id,s=t.size,n=this.metadataReader.pos;if(i===I.EBML)Ki(s),await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+s),this.readContiguousElements(this.metadataReader,s);else if(i===I.Segment){if(await this.readSegment(s),s===null)break}else if(i===I.Cluster){s===null&&(s=(await this.clusterReader.searchForNextElementId(ch,e)??e)-n);let o=he(this.segments);o&&(o.elementEndPos=n+s)}Ki(s),this.metadataReader.pos=n+s}})()}async readSegment(e){let t=this.metadataReader.pos;this.currentSegment={seekHeadSeen:!1,infoSeen:!1,tracksSeen:!1,cuesSeen:!1,timestampScale:-1,timestampFactor:-1,duration:-1,seekEntries:[],tracks:[],cuePoints:[],dataStartPos:t,elementEndPos:e===null?await this.input.source.getSize():t+e,clusterSeekStartPos:t,clusters:[],clusterLookupMutex:new kt},this.segments.push(this.currentSegment),await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+2**14);let i=!1;for(;this.metadataReader.pos<this.currentSegment.elementEndPos;){await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+Xi);let c=this.metadataReader.pos,{id:u,size:l}=this.metadataReader.readElementHeader(),h=this.metadataReader.pos,f=ug.findIndex(d=>d.id===u);if(f!==-1){let d=ug[f].flag;this.currentSegment[d]=!0,Ki(l),await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+l),this.readContiguousElements(this.metadataReader,l)}else u===I.Cluster&&(i||(i=!0,this.currentSegment.clusterSeekStartPos=c));if(this.currentSegment.infoSeen&&this.currentSegment.tracksSeen&&this.currentSegment.cuesSeen)break;if(this.currentSegment.seekHeadSeen){let d=this.currentSegment.infoSeen,m=this.currentSegment.tracksSeen,x=this.currentSegment.cuesSeen;for(let g of this.currentSegment.seekEntries)g.id===I.Info?d=!0:g.id===I.Tracks?m=!0:g.id===I.Cues&&(x=!0);if(d&&m&&x)break}if(l===null)break;this.metadataReader.pos=h+l,i||(this.currentSegment.clusterSeekStartPos=this.metadataReader.pos)}for(let c of ug){if(this.currentSegment[c.flag])continue;let u=this.currentSegment.seekEntries.find(f=>f.id===c.id);if(!u)continue;this.metadataReader.pos=t+u.segmentPosition,await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+2**12);let{id:l,size:h}=this.metadataReader.readElementHeader();l===c.id&&(Ki(h),this.currentSegment[c.flag]=!0,await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+h),this.readContiguousElements(this.metadataReader,h))}this.currentSegment.timestampScale===-1&&(this.currentSegment.timestampScale=1e6,this.currentSegment.timestampFactor=1e9/1e6),this.currentSegment.tracks.sort((c,u)=>Number(u.isDefault)-Number(c.isDefault)),this.currentSegment.cuePoints.sort((c,u)=>c.clusterPosition-u.clusterPosition);let s=this.currentSegment.tracks.map(c=>c.id),n=new Set,o=null,a=null;for(let c of this.currentSegment.cuePoints){if(c.clusterPosition!==o){for(let l of n)w(a),this.currentSegment.tracks.find(f=>f.id===l).cuePoints.push(a);for(let l of s)n.add(l)}if(a=c,!n.has(c.trackId))continue;this.currentSegment.tracks.find(l=>l.id===c.trackId).cuePoints.push(c),n.delete(c.trackId),o=c.clusterPosition}for(let c of n)w(a),this.currentSegment.tracks.find(l=>l.id===c).cuePoints.push(a);for(let c of this.currentSegment.tracks)c.cuePoints.sort((u,l)=>u.time-l.time);this.currentSegment=null}async readCluster(e){await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+Xi);let t=this.metadataReader.pos,i=this.metadataReader.readElementHeader(),s=i.id,n=i.size,o=this.metadataReader.pos;n===null&&(this.clusterReader.pos=o,n=(await this.clusterReader.searchForNextElementId(ch,e.elementEndPos)??e.elementEndPos)-o),w(s===I.Cluster),this.clusterReader.pos=o,await this.clusterReader.reader.loadRange(this.clusterReader.pos,this.clusterReader.pos+n);let a={elementStartPos:t,elementEndPos:o+n,dataStartPos:o,timestamp:-1,trackData:new Map,nextCluster:null,isKnownToBeFirstCluster:!1};this.currentCluster=a,this.readContiguousElements(this.clusterReader,n);for(let[u,l]of a.trackData){let h=!1;w(l.blocks.length>0);for(let x=0;x<l.blocks.length;x++){let g=l.blocks[x];g.timestamp+=a.timestamp,h||=g.referencedTimestamps.length>0}h&&(l.blocks=cD(l.blocks)),l.presentationTimestamps=l.blocks.map((x,g)=>({timestamp:x.timestamp,blockIndex:g})).sort((x,g)=>x.timestamp-g.timestamp);for(let x=0;x<l.presentationTimestamps.length;x++){let g=l.presentationTimestamps[x],_=l.blocks[g.blockIndex];if(l.firstKeyFrameTimestamp===null&&_.isKeyFrame&&(l.firstKeyFrameTimestamp=_.timestamp),x<l.presentationTimestamps.length-1){let y=l.presentationTimestamps[x+1];_.duration=y.timestamp-_.timestamp}}let f=l.blocks[l.presentationTimestamps[0].blockIndex],d=l.blocks[he(l.presentationTimestamps).blockIndex];l.startTimestamp=f.timestamp,l.endTimestamp=d.timestamp+d.duration;let m=e.tracks.find(x=>x.id===u);if(m){let x=J(m.clusters,a.elementStartPos,_=>_.elementStartPos);if(m.clusters.splice(x+1,0,a),l.firstKeyFrameTimestamp!==null){let _=J(m.clustersWithKeyFrame,a.elementStartPos,y=>y.elementStartPos);m.clustersWithKeyFrame.splice(_+1,0,a)}}}let c=J(e.clusters,t,u=>u.elementStartPos);return e.clusters.splice(c+1,0,a),this.currentCluster=null,a}getTrackDataInCluster(e,t){let i=e.trackData.get(t);return i||(i={startTimestamp:0,endTimestamp:0,firstKeyFrameTimestamp:null,blocks:[],presentationTimestamps:[]},e.trackData.set(t,i)),i}readContiguousElements(e,t){let i=e.pos;for(;e.pos-i<=t-uh;)this.traverseElement(e)}traverseElement(e){let{id:t,size:i}=e.readElementHeader(),s=e.pos;switch(Ki(i),t){case I.DocType:this.isWebM=e.readString(i)==="webm";break;case I.Seek:{if(!this.currentSegment)break;let n={id:-1,segmentPosition:-1};this.currentSegment.seekEntries.push(n),this.readContiguousElements(e,i),(n.id===-1||n.segmentPosition===-1)&&this.currentSegment.seekEntries.pop()}break;case I.SeekID:{let n=this.currentSegment?.seekEntries[this.currentSegment.seekEntries.length-1];if(!n)break;n.id=e.readUnsignedInt(i)}break;case I.SeekPosition:{let n=this.currentSegment?.seekEntries[this.currentSegment.seekEntries.length-1];if(!n)break;n.segmentPosition=e.readUnsignedInt(i)}break;case I.TimestampScale:{if(!this.currentSegment)break;this.currentSegment.timestampScale=e.readUnsignedInt(i),this.currentSegment.timestampFactor=1e9/this.currentSegment.timestampScale}break;case I.Duration:{if(!this.currentSegment)break;this.currentSegment.duration=e.readFloat(i)}break;case I.TrackEntry:{if(!this.currentSegment)break;if(this.currentTrack={id:-1,segment:this.currentSegment,demuxer:this,clusters:[],clustersWithKeyFrame:[],cuePoints:[],isDefault:!1,inputTrack:null,codecId:null,codecPrivate:null,languageCode:mt,info:null},this.readContiguousElements(e,i),this.currentTrack&&this.currentTrack.id!==-1&&this.currentTrack.codecId&&this.currentTrack.info){let n=this.currentTrack.codecId.indexOf("/"),o=n===-1?this.currentTrack.codecId:this.currentTrack.codecId.slice(0,n);if(this.currentTrack.info.type==="video"&&this.currentTrack.info.width!==-1&&this.currentTrack.info.height!==-1){this.currentTrack.codecId===Nt.avc?(this.currentTrack.info.codec="avc",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):this.currentTrack.codecId===Nt.hevc?(this.currentTrack.info.codec="hevc",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):o===Nt.vp8?this.currentTrack.info.codec="vp8":o===Nt.vp9?this.currentTrack.info.codec="vp9":o===Nt.av1&&(this.currentTrack.info.codec="av1");let a=this.currentTrack,c=new Ir(new lg(a));this.currentTrack.inputTrack=c,this.currentSegment.tracks.push(this.currentTrack)}else if(this.currentTrack.info.type==="audio"&&this.currentTrack.info.numberOfChannels!==-1&&this.currentTrack.info.sampleRate!==-1){o===Nt.aac?(this.currentTrack.info.codec="aac",this.currentTrack.info.aacCodecInfo={isMpeg2:this.currentTrack.codecId.includes("MPEG2")},this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):this.currentTrack.codecId===Nt.mp3?this.currentTrack.info.codec="mp3":o===Nt.opus?(this.currentTrack.info.codec="opus",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):o===Nt.vorbis?(this.currentTrack.info.codec="vorbis",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):o===Nt.flac?(this.currentTrack.info.codec="flac",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):this.currentTrack.codecId==="A_PCM/INT/LIT"?this.currentTrack.info.bitDepth===8?this.currentTrack.info.codec="pcm-u8":this.currentTrack.info.bitDepth===16?this.currentTrack.info.codec="pcm-s16":this.currentTrack.info.bitDepth===24?this.currentTrack.info.codec="pcm-s24":this.currentTrack.info.bitDepth===32&&(this.currentTrack.info.codec="pcm-s32"):this.currentTrack.codecId==="A_PCM/INT/BIG"?this.currentTrack.info.bitDepth===8?this.currentTrack.info.codec="pcm-u8":this.currentTrack.info.bitDepth===16?this.currentTrack.info.codec="pcm-s16be":this.currentTrack.info.bitDepth===24?this.currentTrack.info.codec="pcm-s24be":this.currentTrack.info.bitDepth===32&&(this.currentTrack.info.codec="pcm-s32be"):this.currentTrack.codecId==="A_PCM/FLOAT/IEEE"&&(this.currentTrack.info.bitDepth===32?this.currentTrack.info.codec="pcm-f32":this.currentTrack.info.bitDepth===64&&(this.currentTrack.info.codec="pcm-f64"));let a=this.currentTrack,c=new nt(new hg(a));this.currentTrack.inputTrack=c,this.currentSegment.tracks.push(this.currentTrack)}}this.currentTrack=null}break;case I.TrackNumber:{if(!this.currentTrack)break;this.currentTrack.id=e.readUnsignedInt(i)}break;case I.TrackType:{if(!this.currentTrack)break;let n=e.readUnsignedInt(i);n===1?this.currentTrack.info={type:"video",width:-1,height:-1,rotation:0,codec:null,codecDescription:null,colorSpace:null}:n===2&&(this.currentTrack.info={type:"audio",numberOfChannels:-1,sampleRate:-1,bitDepth:-1,codec:null,codecDescription:null,aacCodecInfo:null})}break;case I.FlagEnabled:{if(!this.currentTrack)break;e.readUnsignedInt(i)||(this.currentSegment.tracks.pop(),this.currentTrack=null)}break;case I.FlagDefault:{if(!this.currentTrack)break;this.currentTrack.isDefault=!!e.readUnsignedInt(i)}break;case I.CodecID:{if(!this.currentTrack)break;this.currentTrack.codecId=e.readString(i)}break;case I.CodecPrivate:{if(!this.currentTrack)break;this.currentTrack.codecPrivate=e.readBytes(i)}break;case I.Language:{if(!this.currentTrack)break;this.currentTrack.languageCode=e.readString(i),ln(this.currentTrack.languageCode)||(this.currentTrack.languageCode=mt)}break;case I.Video:{if(this.currentTrack?.info?.type!=="video")break;this.readContiguousElements(e,i)}break;case I.PixelWidth:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.width=e.readUnsignedInt(i)}break;case I.PixelHeight:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.height=e.readUnsignedInt(i)}break;case I.Colour:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.colorSpace={},this.readContiguousElements(e,i)}break;case I.MatrixCoefficients:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;let n=e.readUnsignedInt(i),o=zl[n]??null;this.currentTrack.info.colorSpace.matrix=o}break;case I.Range:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;this.currentTrack.info.colorSpace.fullRange=e.readUnsignedInt(i)===2}break;case I.TransferCharacteristics:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;let n=e.readUnsignedInt(i),o=Ll[n]??null;this.currentTrack.info.colorSpace.transfer=o}break;case I.Primaries:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;let n=e.readUnsignedInt(i),o=Nl[n]??null;this.currentTrack.info.colorSpace.primaries=o}break;case I.Projection:{if(this.currentTrack?.info?.type!=="video")break;this.readContiguousElements(e,i)}break;case I.ProjectionPoseRoll:{if(this.currentTrack?.info?.type!=="video")break;let o=-e.readFloat(i);try{this.currentTrack.info.rotation=Gl(o)}catch{}}break;case I.Audio:{if(this.currentTrack?.info?.type!=="audio")break;this.readContiguousElements(e,i)}break;case I.SamplingFrequency:{if(this.currentTrack?.info?.type!=="audio")break;this.currentTrack.info.sampleRate=e.readFloat(i)}break;case I.Channels:{if(this.currentTrack?.info?.type!=="audio")break;this.currentTrack.info.numberOfChannels=e.readUnsignedInt(i)}break;case I.BitDepth:{if(this.currentTrack?.info?.type!=="audio")break;this.currentTrack.info.bitDepth=e.readUnsignedInt(i)}break;case I.CuePoint:{if(!this.currentSegment)break;this.readContiguousElements(e,i),this.currentCueTime=null}break;case I.CueTime:this.currentCueTime=e.readUnsignedInt(i);break;case I.CueTrackPositions:{if(this.currentCueTime===null)break;w(this.currentSegment);let n={time:this.currentCueTime,trackId:-1,clusterPosition:-1};this.currentSegment.cuePoints.push(n),this.readContiguousElements(e,i),(n.trackId===-1||n.clusterPosition===-1)&&this.currentSegment.cuePoints.pop()}break;case I.CueTrack:{let n=this.currentSegment?.cuePoints[this.currentSegment.cuePoints.length-1];if(!n)break;n.trackId=e.readUnsignedInt(i)}break;case I.CueClusterPosition:{let n=this.currentSegment?.cuePoints[this.currentSegment.cuePoints.length-1];if(!n)break;w(this.currentSegment),n.clusterPosition=this.currentSegment.dataStartPos+e.readUnsignedInt(i)}break;case I.Timestamp:{if(!this.currentCluster)break;this.currentCluster.timestamp=e.readUnsignedInt(i)}break;case I.SimpleBlock:{if(!this.currentCluster)break;let n=e.readVarInt(),o=e.readS16(),c=!!(e.readU8()&128);this.getTrackDataInCluster(this.currentCluster,n).blocks.push({timestamp:o,duration:0,isKeyFrame:c,referencedTimestamps:[],data:e.readBytes(i-(e.pos-s))})}break;case I.BlockGroup:{if(!this.currentCluster)break;if(this.readContiguousElements(e,i),this.currentBlock){for(let n=0;n<this.currentBlock.referencedTimestamps.length;n++)this.currentBlock.referencedTimestamps[n]+=this.currentBlock.timestamp;this.currentBlock=null}}break;case I.Block:{if(!this.currentCluster)break;let n=e.readVarInt(),o=e.readS16(),a=e.readU8(),c=this.getTrackDataInCluster(this.currentCluster,n);this.currentBlock={timestamp:o,duration:0,isKeyFrame:!0,referencedTimestamps:[],data:e.readBytes(i-(e.pos-s))},c.blocks.push(this.currentBlock)}break;case I.BlockDuration:{if(!this.currentBlock)break;this.currentBlock.duration=e.readUnsignedInt(i)}break;case I.ReferenceBlock:{if(!this.currentBlock)break;this.currentBlock.isKeyFrame=!1;let n=e.readSignedInt(i);this.currentBlock.referencedTimestamps.push(n)}break}e.pos=s+i}},ph=class{constructor(e){this.internalTrack=e,this.packetToClusterLocation=new WeakMap}getId(){return this.internalTrack.id}getCodec(){throw new Error("Not implemented on base class.")}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}getLanguageCode(){return this.internalTrack.languageCode}async getFirstTimestamp(){return(await this.getFirstPacket({metadataOnly:!0}))?.timestamp??0}getTimeResolution(){return this.internalTrack.segment.timestampFactor}async getFirstPacket(e){return this.performClusterLookup(()=>{let t=this.internalTrack.segment.clusters[0]??null;if(t?.isKnownToBeFirstCluster){let i=t;for(;i;){if(i.trackData.get(this.internalTrack.id))return{clusterIndex:Be(this.internalTrack.clusters,i.elementStartPos,n=>n.elementStartPos),blockIndex:0,correctBlockFound:!0};i=i.nextCluster}}return{clusterIndex:-1,blockIndex:-1,correctBlockFound:!1}},-1/0,1/0,e)}intoTimescale(e){return un(e*this.internalTrack.segment.timestampFactor,14)}async getPacket(e,t){let i=this.intoTimescale(e);return this.performClusterLookup(()=>this.findBlockInClustersForTimestamp(i),i,i,t)}async getNextPacket(e,t){let i=this.packetToClusterLocation.get(e);if(i===void 0)throw new Error("Packet was not created from this track.");let s=i.cluster.trackData.get(this.internalTrack.id),n=s.blocks[i.blockIndex],o=Be(this.internalTrack.clusters,i.cluster.elementStartPos,a=>a.elementStartPos);return w(o!==-1),this.performClusterLookup(()=>{if(i.blockIndex+1<s.blocks.length)return{clusterIndex:o,blockIndex:i.blockIndex+1,correctBlockFound:!0};{let a=i.cluster;for(;a.nextCluster;)if(a=a.nextCluster,a.trackData.get(this.internalTrack.id)){let u=Be(this.internalTrack.clusters,a.elementStartPos,l=>l.elementStartPos);return w(u!==-1),{clusterIndex:u,blockIndex:0,correctBlockFound:!0}}return{clusterIndex:o,blockIndex:-1,correctBlockFound:!1}}},n.timestamp,1/0,t)}async getKeyPacket(e,t){let i=this.intoTimescale(e);return this.performClusterLookup(()=>this.findKeyBlockInClustersForTimestamp(i),i,i,t)}async getNextKeyPacket(e,t){let i=this.packetToClusterLocation.get(e);if(i===void 0)throw new Error("Packet was not created from this track.");let s=i.cluster.trackData.get(this.internalTrack.id),n=s.blocks[i.blockIndex],o=Be(this.internalTrack.clusters,i.cluster.elementStartPos,a=>a.elementStartPos);return w(o!==-1),this.performClusterLookup(()=>{let a=s.blocks.findIndex((c,u)=>c.isKeyFrame&&u>i.blockIndex);if(a!==-1)return{clusterIndex:o,blockIndex:a,correctBlockFound:!0};{let c=i.cluster;for(;c.nextCluster;){c=c.nextCluster;let u=c.trackData.get(this.internalTrack.id);if(u&&u.firstKeyFrameTimestamp!==null){let l=Be(this.internalTrack.clusters,c.elementStartPos,f=>f.elementStartPos);w(l!==-1);let h=u.blocks.findIndex(f=>f.isKeyFrame);return w(h!==-1),{clusterIndex:l,blockIndex:h,correctBlockFound:!0}}}return{clusterIndex:o,blockIndex:-1,correctBlockFound:!1}}},n.timestamp,1/0,t)}async fetchPacketInCluster(e,t,i){if(t===-1)return null;let n=e.trackData.get(this.internalTrack.id).blocks[t];w(n);let o=i.metadataOnly?pt:n.data,a=n.timestamp/this.internalTrack.segment.timestampFactor,c=n.duration/this.internalTrack.segment.timestampFactor,u=new de(o,n.isKeyFrame?"key":"delta",a,c,e.dataStartPos+t,n.data.byteLength);return this.packetToClusterLocation.set(u,{cluster:e,blockIndex:t}),u}findBlockInClustersForTimestamp(e){let t=J(this.internalTrack.clusters,e,n=>n.trackData.get(this.internalTrack.id).startTimestamp),i=-1,s=!1;if(t!==-1){let o=this.internalTrack.clusters[t].trackData.get(this.internalTrack.id),a=J(o.presentationTimestamps,e,c=>c.timestamp);w(a!==-1),i=o.presentationTimestamps[a].blockIndex,s=e<o.endTimestamp}return{clusterIndex:t,blockIndex:i,correctBlockFound:s}}findKeyBlockInClustersForTimestamp(e){let t=J(this.internalTrack.clustersWithKeyFrame,e,o=>o.trackData.get(this.internalTrack.id).firstKeyFrameTimestamp),i=-1,s=-1,n=!1;if(t!==-1){let o=this.internalTrack.clustersWithKeyFrame[t];i=Be(this.internalTrack.clusters,o.elementStartPos,l=>l.elementStartPos),w(i!==-1);let a=o.trackData.get(this.internalTrack.id),c=Vl(a.presentationTimestamps,l=>a.blocks[l.blockIndex].isKeyFrame&&l.timestamp<=e);w(c!==-1),s=a.presentationTimestamps[c].blockIndex,n=e<a.endTimestamp}return{clusterIndex:i,blockIndex:s,correctBlockFound:n}}async performClusterLookup(e,t,i,s){let{demuxer:n,segment:o}=this.internalTrack,a=await o.clusterLookupMutex.acquire();try{let{clusterIndex:c,blockIndex:u,correctBlockFound:l}=e();if(l){let C=this.internalTrack.clusters[c];return this.fetchPacketInCluster(C,u,s)}let h=n.metadataReader,f=n.clusterReader,d=null,m=c,x=u,g=J(this.internalTrack.cuePoints,t,C=>C.time),_=g!==-1?this.internalTrack.cuePoints[g]:null,y=!1;if(c===-1)h.pos=_?.clusterPosition??o.clusterSeekStartPos,y=h.pos===o.clusterSeekStartPos;else{let C=this.internalTrack.clusters[c];!_||C.elementStartPos>=_.clusterPosition?(h.pos=C.elementEndPos,d=C):h.pos=_.clusterPosition}for(;h.pos<o.elementEndPos;){if(d){let B=d.trackData.get(this.internalTrack.id);if(B&&B.startTimestamp>i)break;if(d.nextCluster){h.pos=d.nextCluster.elementEndPos,d=d.nextCluster;continue}}await h.reader.loadRange(h.pos,h.pos+Xi);let C=h.pos,v=h.readElementHeader(),E=v.id,M=v.size,A=h.pos;if(E===I.Cluster){let B=Be(o.clusters,C,wt=>wt.elementStartPos),k;B===-1?(h.pos=C,k=await n.readCluster(o)):k=o.clusters[B],d&&(d.nextCluster=k),d=k,y&&(k.isKnownToBeFirstCluster=!0,y=!1);let{clusterIndex:L,blockIndex:j,correctBlockFound:be}=e();if(be){let wt=this.internalTrack.clusters[L];return this.fetchPacketInCluster(wt,j,s)}L!==-1&&(m=L,x=j)}if(M===null){E===I.Cluster?(w(d),M=d.elementEndPos-A):(f.pos=A,M=(await f.searchForNextElementId(ch,o.elementEndPos)??o.elementEndPos)-A);let B=A+M;if(B>o.elementEndPos-uh)break;if(f.pos=B,f.readElementId()===I.Segment){o.elementEndPos=B;break}}h.pos=A+M}let S=null,T=m!==-1?this.internalTrack.clusters[m]:null;if(T&&(S=await this.fetchPacketInCluster(T,x,s)),!S&&_&&(!T||T.elementStartPos<_.clusterPosition)){let v=this.internalTrack.cuePoints[g-1]?.time??-1/0;return this.performClusterLookup(e,v,i,s)}return S}finally{a()}}},lg=class extends ph{constructor(e){super(e),this.decoderConfigPromise=null,this.internalTrack=e}getCodec(){return this.internalTrack.info.codec}getCodedWidth(){return this.internalTrack.info.width}getCodedHeight(){return this.internalTrack.info.height}getRotation(){return this.internalTrack.info.rotation}async getColorSpace(){return{primaries:this.internalTrack.info.colorSpace?.primaries,transfer:this.internalTrack.info.colorSpace?.transfer,matrix:this.internalTrack.info.colorSpace?.matrix,fullRange:this.internalTrack.info.colorSpace?.fullRange}}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfigPromise??=(async()=>{let e=null;return(this.internalTrack.info.codec==="vp9"||this.internalTrack.info.codec==="av1"||this.internalTrack.info.codec==="avc"&&!this.internalTrack.info.codecDescription||this.internalTrack.info.codec==="hevc"&&!this.internalTrack.info.codecDescription)&&(e=await this.getFirstPacket({})),{codec:ql({width:this.internalTrack.info.width,height:this.internalTrack.info.height,codec:this.internalTrack.info.codec,codecDescription:this.internalTrack.info.codecDescription,colorSpace:this.internalTrack.info.colorSpace,avcCodecInfo:this.internalTrack.info.codec==="avc"&&e?Yl(e.data):null,hevcCodecInfo:this.internalTrack.info.codec==="hevc"&&e?Kl(e.data):null,vp9CodecInfo:this.internalTrack.info.codec==="vp9"&&e?Ql(e.data):null,av1CodecInfo:this.internalTrack.info.codec==="av1"&&e?Zl(e.data):null}),codedWidth:this.internalTrack.info.width,codedHeight:this.internalTrack.info.height,description:this.internalTrack.info.codecDescription??void 0,colorSpace:this.internalTrack.info.colorSpace??void 0}})():null}},hg=class extends ph{constructor(e){super(e),this.decoderConfig=null,this.internalTrack=e}getCodec(){return this.internalTrack.info.codec}getNumberOfChannels(){return this.internalTrack.info.numberOfChannels}getSampleRate(){return this.internalTrack.info.sampleRate}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfig??={codec:jl({codec:this.internalTrack.info.codec,codecDescription:this.internalTrack.info.codecDescription,aacCodecInfo:this.internalTrack.info.aacCodecInfo}),numberOfChannels:this.internalTrack.info.numberOfChannels,sampleRate:this.internalTrack.info.sampleRate,description:this.internalTrack.info.codecDescription??void 0}:null}},cD=r=>{let e=new Map;for(let n=0;n<r.length;n++){let o=r[n];e.set(o.timestamp,o)}let t=new Set,i=[],s=n=>{if(!t.has(n)){t.add(n);for(let o=0;o<n.referencedTimestamps.length;o++){let a=n.referencedTimestamps[o],c=e.get(a);c&&s(c)}i.push(n)}};for(let n=0;n<r.length;n++)s(r[n]);return i};var Cn=class{constructor(e){this.reader=e,this.pos=0,this.fileSize=null}readBytes(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);return this.pos+=e,new Uint8Array(t.buffer,i,e)}readU16(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+2);return this.pos+=2,e.getUint16(t,!1)}readU32(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+4);return this.pos+=4,e.getUint32(t,!1)}readAscii(e){let{view:t,offset:i}=this.reader.getViewAndOffset(this.pos,this.pos+e);this.pos+=e;let s="";for(let n=0;n<e;n++)s+=String.fromCharCode(t.getUint8(i+n));return s}readId3(){return this.readAscii(3)!=="ID3"?(this.pos-=3,null):(this.pos+=3,{size:uD(this.readU32())})}readNextFrameHeader(e){for(w(this.fileSize),e??=this.fileSize;this.pos<=e-4;){let t=this.readU32();this.pos-=4;let i=gE(t,this);if(i)return i}return null}},uD=r=>{let e=2130706432,t=0;for(;e!==0;)t>>=1,t|=r&e,e>>=8;return t};var gh=class extends Bt{constructor(e){super(e),this.metadataPromise=null,this.firstFrameHeader=null,this.allSamples=[],this.tracks=[],this.reader=new Cn(e._mainReader)}async readMetadata(){return this.metadataPromise??=(async()=>{let e=await this.input.source.getSize();this.reader.fileSize=e,await this.reader.reader.loadRange(0,e);let t=this.reader.readId3();t&&(this.reader.pos+=t.size);let i=0;for(;;){let s=this.reader.readNextFrameHeader();if(!s)break;let n=pE(s.mpegVersionId,s.channel);this.reader.pos=s.startPos+n;let o=this.reader.readU32(),a=o===fE||o===mE;if(this.reader.pos=s.startPos+s.totalSize-1,a)continue;this.firstFrameHeader||(this.firstFrameHeader=s);let c=s.audioSamplesInFrame/s.sampleRate,u={timestamp:i/s.sampleRate,duration:c,dataStart:s.startPos,dataSize:s.totalSize};this.allSamples.push(u),i+=s.audioSamplesInFrame}if(!this.firstFrameHeader)throw new Error("No MP3 frames found.");this.tracks=[new nt(new fg(this))]})()}async getMimeType(){return"audio/mpeg"}async getTracks(){return await this.readMetadata(),this.tracks}async computeDuration(){await this.readMetadata();let e=he(this.allSamples);return w(e),e.timestamp+e.duration}},fg=class{constructor(e){this.demuxer=e}getId(){return 1}async getFirstTimestamp(){return 0}getTimeResolution(){return w(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.sampleRate/this.demuxer.firstFrameHeader.audioSamplesInFrame}computeDuration(){return this.demuxer.computeDuration()}getLanguageCode(){return mt}getCodec(){return"mp3"}getNumberOfChannels(){return w(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.channel===3?1:2}getSampleRate(){return w(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.sampleRate}async getDecoderConfig(){return w(this.demuxer.firstFrameHeader),{codec:"mp3",numberOfChannels:this.demuxer.firstFrameHeader.channel===3?1:2,sampleRate:this.demuxer.firstFrameHeader.sampleRate}}getPacketAtIndex(e,t){if(e===-1)return null;let i=this.demuxer.allSamples[e];if(!i)return null;let s;return t.metadataOnly?s=pt:(this.demuxer.reader.pos=i.dataStart,s=this.demuxer.reader.readBytes(i.dataSize)),new de(s,"key",i.timestamp,i.duration,e,i.dataSize)}async getFirstPacket(e){return this.getPacketAtIndex(0,e)}async getNextPacket(e,t){let i=Be(this.demuxer.allSamples,e.timestamp,s=>s.timestamp);if(i===-1)throw new Error("Packet was not created from this track.");return this.getPacketAtIndex(i+1,t)}async getPacket(e,t){let i=J(this.demuxer.allSamples,e,s=>s.timestamp);return this.getPacketAtIndex(i,t)}getKeyPacket(e,t){return this.getPacket(e,t)}getNextKeyPacket(e,t){return this.getNextPacket(e,t)}};var xh=class extends Bt{constructor(e){super(e),this.readingMutex=new kt,this.metadataPromise=null,this.fileSize=null,this.bitstreams=[],this.tracks=[],this.reader=new pn(new Rt(e.source,64*2**20))}async readMetadata(){return this.metadataPromise??=(async()=>{for(this.fileSize=await this.input.source.getSize();this.reader.pos<this.fileSize-gn;){await this.reader.reader.loadRange(this.reader.pos,this.reader.pos+Qi);let e=this.reader.readPageHeader();if(!e||!!!(e.headerType&2))break;this.bitstreams.push({serialNumber:e.serialNumber,bosPage:e,description:null,numberOfChannels:-1,sampleRate:-1,codecInfo:{codec:null,vorbisInfo:null,opusInfo:null},lastMetadataPacket:null}),this.reader.pos=e.headerStartPos+e.totalSize}for(let e of this.bitstreams){let t=await this.readPacket(this.reader,e.bosPage,0);t&&(t.data.byteLength>=7&&t.data[0]===1&&t.data[1]===118&&t.data[2]===111&&t.data[3]===114&&t.data[4]===98&&t.data[5]===105&&t.data[6]===115?await this.readVorbisMetadata(t,e):t.data.byteLength>=8&&t.data[0]===79&&t.data[1]===112&&t.data[2]===117&&t.data[3]===115&&t.data[4]===72&&t.data[5]===101&&t.data[6]===97&&t.data[7]===100&&await this.readOpusMetadata(t,e),e.codecInfo.codec!==null&&this.tracks.push(new nt(new mg(e,this))))}})()}async readVorbisMetadata(e,t){let i=await this.findNextPacketStart(this.reader,e);if(!i)return;let s=await this.readPacket(this.reader,i.startPage,i.startSegmentIndex);if(!s||(i=await this.findNextPacketStart(this.reader,s),!i))return;let n=await this.readPacket(this.reader,i.startPage,i.startSegmentIndex);if(!n||s.data[0]!==3||n.data[0]!==5)return;let o=[],a=h=>{for(;o.push(Math.min(255,h)),!(h<255);)h-=255};a(e.data.length),a(s.data.length);let c=new Uint8Array(1+o.length+e.data.length+s.data.length+n.data.length);c[0]=o.length,c.set(o,1),c.set(e.data,1+o.length),c.set(s.data,1+o.length+e.data.length),c.set(n.data,1+o.length+e.data.length+s.data.length),t.codecInfo.codec="vorbis",t.description=c,t.lastMetadataPacket=n;let u=At(e.data);t.numberOfChannels=u.getUint8(11),t.sampleRate=u.getUint32(12,!0);let l=u.getUint8(28);t.codecInfo.vorbisInfo={blocksizes:[1<<(l&15),1<<(l>>4)],modeBlockflags:YC(n.data).modeBlockflags}}async readOpusMetadata(e,t){let i=await this.findNextPacketStart(this.reader,e);if(!i)return;let s=await this.readPacket(this.reader,i.startPage,i.startSegmentIndex);if(!s)return;t.codecInfo.codec="opus",t.description=e.data,t.lastMetadataPacket=s;let n=Jl(e.data);t.numberOfChannels=n.outputChannelCount,t.sampleRate=n.inputSampleRate,t.codecInfo.opusInfo={preSkip:n.preSkip}}async readPacket(e,t,i){w(i<t.lacingValues.length),w(this.fileSize);let s=0;for(let f=0;f<i;f++)s+=t.lacingValues[f];let n=t,o=s,a=i,c=[];e:for(;;){await e.reader.loadRange(n.dataStartPos,n.dataStartPos+n.dataSize),e.pos=n.dataStartPos;let f=e.readBytes(n.dataSize);for(;;){if(a===n.lacingValues.length){c.push(f.subarray(s,o));break}let d=n.lacingValues[a];if(o+=d,d<255){c.push(f.subarray(s,o));break e}a++}for(;;){if(e.pos=n.headerStartPos+n.totalSize,e.pos>=this.fileSize-gn)return null;await e.reader.loadRange(e.pos,e.pos+Qi);let d=e.readPageHeader();if(!d)return null;if(n=d,n.serialNumber===t.serialNumber)break}s=0,o=0,a=0}let u=c.reduce((f,d)=>f+d.length,0),l=new Uint8Array(u),h=0;for(let f=0;f<c.length;f++){let d=c[f];l.set(d,h),h+=d.length}return{data:l,endPage:n,endSegmentIndex:a}}async findNextPacketStart(e,t){if(w(this.fileSize!==null),t.endSegmentIndex<t.endPage.lacingValues.length-1)return{startPage:t.endPage,startSegmentIndex:t.endSegmentIndex+1};if(!!(t.endPage.headerType&4))return null;for(e.pos=t.endPage.headerStartPos+t.endPage.totalSize;;){if(e.pos>=this.fileSize-gn)return null;await e.reader.loadRange(e.pos,e.pos+Qi);let s=e.readPageHeader();if(!s)return null;if(s.serialNumber===t.endPage.serialNumber)return{startPage:s,startSegmentIndex:0};e.pos=s.headerStartPos+s.totalSize}}async getMimeType(){await this.readMetadata();let e=await Promise.all(this.tracks.map(t=>t.getCodecParameterString()));return yE({codecStrings:e.filter(Boolean)})}async getTracks(){return await this.readMetadata(),this.tracks}async computeDuration(){let e=await this.getTracks(),t=await Promise.all(e.map(i=>i.computeDuration()));return Math.max(0,...t)}},mg=class{constructor(e,t){this.bitstream=e,this.demuxer=t,this.encodedPacketToMetadata=new WeakMap,this.internalSampleRate=e.codecInfo.codec==="opus"?RC:e.sampleRate}getId(){return this.bitstream.serialNumber}getNumberOfChannels(){return this.bitstream.numberOfChannels}getSampleRate(){return this.bitstream.sampleRate}getTimeResolution(){return this.bitstream.sampleRate}getCodec(){return this.bitstream.codecInfo.codec}async getDecoderConfig(){return w(this.bitstream.codecInfo.codec),{codec:this.bitstream.codecInfo.codec,numberOfChannels:this.bitstream.numberOfChannels,sampleRate:this.bitstream.sampleRate,description:this.bitstream.description??void 0}}getLanguageCode(){return mt}async getFirstTimestamp(){return 0}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}granulePositionToTimestampInSamples(e){return this.bitstream.codecInfo.codec==="opus"?(w(this.bitstream.codecInfo.opusInfo),e-this.bitstream.codecInfo.opusInfo.preSkip):e}createEncodedPacketFromOggPacket(e,t,i){if(!e)return null;let{durationInSamples:s,vorbisBlockSize:n}=bE(e.data,this.bitstream.codecInfo,t.vorbisLastBlocksize),o=new de(i.metadataOnly?pt:e.data,"key",Math.max(0,t.timestampInSamples)/this.internalSampleRate,s/this.internalSampleRate,e.endPage.headerStartPos+e.endSegmentIndex,e.data.byteLength);return this.encodedPacketToMetadata.set(o,{packet:e,timestampInSamples:t.timestampInSamples,durationInSamples:s,vorbisBlockSize:n}),o}async getFirstPacket(e,t=!0){let i=t?await this.demuxer.readingMutex.acquire():null;try{w(this.bitstream.lastMetadataPacket);let s=await this.demuxer.findNextPacketStart(this.demuxer.reader,this.bitstream.lastMetadataPacket);if(!s)return null;let n=0;this.bitstream.codecInfo.codec==="opus"&&(w(this.bitstream.codecInfo.opusInfo),n-=this.bitstream.codecInfo.opusInfo.preSkip);let o=await this.demuxer.readPacket(this.demuxer.reader,s.startPage,s.startSegmentIndex);return this.createEncodedPacketFromOggPacket(o,{timestampInSamples:n,vorbisLastBlocksize:null},e)}finally{i?.()}}async getNextPacket(e,t){let i=await this.demuxer.readingMutex.acquire();try{let s=this.encodedPacketToMetadata.get(e);if(!s)throw new Error("Packet was not created from this track.");let n=await this.demuxer.findNextPacketStart(this.demuxer.reader,s.packet);if(!n)return null;let o=s.timestampInSamples+s.durationInSamples,a=await this.demuxer.readPacket(this.demuxer.reader,n.startPage,n.startSegmentIndex);return this.createEncodedPacketFromOggPacket(a,{timestampInSamples:o,vorbisLastBlocksize:s.vorbisBlockSize},t)}finally{i()}}async getPacket(e,t){let i=await this.demuxer.readingMutex.acquire();try{w(this.demuxer.fileSize!==null);let s=un(e*this.internalSampleRate,14);if(s===0)return this.getFirstPacket(t,!1);if(s<0)return null;let n=this.demuxer.reader;w(this.bitstream.lastMetadataPacket);let o=await this.demuxer.findNextPacketStart(n,this.bitstream.lastMetadataPacket);if(!o)return null;let a=o.startPage,c=this.demuxer.fileSize,u=[a];e:for(;a.headerStartPos+a.totalSize<c;){let T=a.headerStartPos,C=Math.floor((T+c)/2),v=C;for(;;){let E=Math.min(v+TE,c-gn);if(await n.reader.loadRange(v,E),n.pos=v,!n.findNextPageHeader(E)){c=C+gn;continue e}await n.reader.loadRange(n.pos,n.pos+Qi);let A=n.readPageHeader();w(A);let B=!1;if(A.serialNumber===this.bitstream.serialNumber)B=!0;else{await n.reader.loadRange(A.headerStartPos,A.headerStartPos+A.totalSize),n.pos=A.headerStartPos;let L=n.readBytes(A.totalSize);B=_E(L)===A.checksum}if(!B){v=A.headerStartPos+4;continue}if(B&&A.serialNumber!==this.bitstream.serialNumber){v=A.headerStartPos+A.totalSize;continue}if(A.granulePosition===-1){v=A.headerStartPos+A.totalSize;continue}this.granulePositionToTimestampInSamples(A.granulePosition)>s?c=A.headerStartPos:(a=A,u.push(A));continue e}}let l=o.startPage;for(let T of u){if(T.granulePosition===a.granulePosition)break;(!l||T.headerStartPos>l.headerStartPos)&&(l=T)}let h=l,f=[h];for(;!(h.serialNumber===this.bitstream.serialNumber&&h.granulePosition===a.granulePosition);){n.pos=h.headerStartPos+h.totalSize,await n.reader.loadRange(n.pos,n.pos+Qi);let T=n.readPageHeader();w(T),h=T,h.serialNumber===this.bitstream.serialNumber&&f.push(h)}w(h.granulePosition!==-1);let d=null,m,x,g=h,_=0;if(h.headerStartPos===o.startPage.headerStartPos)m=this.granulePositionToTimestampInSamples(0),x=!0,d=0;else{m=0,x=!1;for(let v=h.lacingValues.length-1;v>=0;v--)if(h.lacingValues[v]<255){d=v+1;break}if(d===null)throw new Error("Invalid page with granule position: no packets end on this page.");_=d-1;let T={data:pt,endPage:g,endSegmentIndex:_};if(await this.demuxer.findNextPacketStart(n,T)){let v=DE(f,h,d);w(v);let E=RE(f,v.page,v.segmentIndex);E&&(h=E.page,d=E.segmentIndex)}else for(;;){let v=DE(f,h,d);if(!v)break;let E=RE(f,v.page,v.segmentIndex);if(!E)break;if(h=E.page,d=E.segmentIndex,v.page.headerStartPos!==g.headerStartPos){g=v.page,_=v.segmentIndex;break}}}let y=null,S=null;for(;h!==null;){w(d!==null);let T=await this.demuxer.readPacket(n,h,d);if(!T)break;if(!(h.headerStartPos===o.startPage.headerStartPos&&d<o.startSegmentIndex)){let E=this.createEncodedPacketFromOggPacket(T,{timestampInSamples:m,vorbisLastBlocksize:S?.vorbisBlockSize??null},t);w(E);let M=this.encodedPacketToMetadata.get(E);if(w(M),!x&&T.endPage.headerStartPos===g.headerStartPos&&T.endSegmentIndex===_?(m=this.granulePositionToTimestampInSamples(h.granulePosition),x=!0,E=this.createEncodedPacketFromOggPacket(T,{timestampInSamples:m-M.durationInSamples,vorbisLastBlocksize:S?.vorbisBlockSize??null},t),w(E),M=this.encodedPacketToMetadata.get(E),w(M)):m+=M.durationInSamples,y=E,S=M,x&&(Math.max(m,0)>s||Math.max(M.timestampInSamples,0)===s))break}let v=await this.demuxer.findNextPacketStart(n,T);if(!v)break;h=v.startPage,d=v.startSegmentIndex}return y}finally{i()}}getKeyPacket(e,t){return this.getPacket(e,t)}getNextKeyPacket(e,t){return this.getNextPacket(e,t)}},RE=(r,e,t)=>{let i=e,s=t;e:for(;;){for(s--,s;s>=0;s--)if(i.lacingValues[s]<255){s++;break e}if(w(s===-1),!(i.headerType&1)){s=0;break}let o=Up(r,a=>a.headerStartPos<i.headerStartPos);if(!o)return null;i=o,s=i.lacingValues.length}if(w(s!==-1),s===i.lacingValues.length){let n=r[r.indexOf(i)+1];w(n),i=n,s=0}return{page:i,segmentIndex:s}},DE=(r,e,t)=>{if(t>0)return{page:e,segmentIndex:t-1};let i=Up(r,s=>s.headerStartPos<e.headerStartPos);return i?{page:i,segmentIndex:i.lacingValues.length-1}:null};var hr=class{},ac=class extends hr{async _getMajorBrand(e){if(await e._mainReader.source.getSize()<12)return null;let i=new ji(e._mainReader);return i.pos=4,i.readAscii(4)!=="ftyp"?null:i.readAscii(4)}_createDemuxer(e){return new dh(e)}},_h=class extends ac{async _canReadInput(e){let t=await this._getMajorBrand(e);return!!t&&t!=="qt "}get name(){return"MP4"}get mimeType(){return"video/mp4"}},bh=class extends ac{async _canReadInput(e){return await this._getMajorBrand(e)==="qt "}get name(){return"QuickTime File Format"}get mimeType(){return"video/quicktime"}},cc=class extends hr{async isSupportedEBMLOfDocType(e,t){if(await e._mainReader.source.getSize()<8)return!1;let s=new Yi(e._mainReader),n=s.readVarIntSize();if(n<1||n>8||s.readUnsignedInt(n)!==I.EBML)return!1;let a=s.readElementSize();if(a===null)return!1;let c=s.pos;for(;s.pos<c+a;){let{id:u,size:l}=s.readElementHeader(),h=s.pos;if(l===null)return!1;switch(u){case I.EBMLVersion:if(s.readUnsignedInt(l)!==1)return!1;break;case I.EBMLReadVersion:if(s.readUnsignedInt(l)!==1)return!1;break;case I.DocType:if(s.readString(l)!==t)return!1;break;case I.DocTypeVersion:if(s.readUnsignedInt(l)>4)return!1;break}s.pos=h+l}return!0}_canReadInput(e){return this.isSupportedEBMLOfDocType(e,"matroska")}_createDemuxer(e){return new mh(e)}get name(){return"Matroska"}get mimeType(){return"video/x-matroska"}},yh=class extends cc{_canReadInput(e){return this.isSupportedEBMLOfDocType(e,"webm")}get name(){return"WebM"}get mimeType(){return"video/webm"}},Th=class extends hr{async _canReadInput(e){let t=await e._mainReader.source.getSize();if(t<4)return!1;let i=new Cn(e._mainReader);i.fileSize=t;let s=i.readId3();s&&(i.pos+=s.size);let n=i.pos;await i.reader.loadRange(i.pos,i.pos+4096);let o=i.readNextFrameHeader(Math.min(n+4096,t));if(!o)return!1;if(s)return!0;i.pos=o.startPos+o.totalSize,await i.reader.loadRange(i.pos,i.pos+4);let a=i.readNextFrameHeader(i.pos+4);return!(!a||o.channel!==a.channel||o.sampleRate!==a.sampleRate)}_createDemuxer(e){return new gh(e)}get name(){return"MP3"}get mimeType(){return"audio/mpeg"}},wh=class extends hr{async _canReadInput(e){if(await e._mainReader.source.getSize()<12)return!1;let i=new es(e._mainReader),s=i.readAscii(4);return s!=="RIFF"&&s!=="RIFX"&&s!=="RF64"?!1:(i.pos=8,i.readAscii(4)==="WAVE")}_createDemuxer(e){return new hh(e)}get name(){return"WAVE"}get mimeType(){return"audio/wav"}},Sh=class extends hr{async _canReadInput(e){return await e._mainReader.source.getSize()<4?!1:new pn(e._mainReader).readAscii(4)==="OggS"}_createDemuxer(e){return new xh(e)}get name(){return"Ogg"}get mimeType(){return"application/ogg"}},ME=new _h,IE=new bh,FE=new cc,UE=new yh,OE=new Th,GE=new wh,NE=new Sh,pg=[ME,IE,FE,UE,GE,NE,OE];var uc=class{constructor(e){if(this._demuxerPromise=null,this._format=null,!e||typeof e!="object")throw new TypeError("options must be an object.");if(!Array.isArray(e.formats)||e.formats.some(t=>!(t instanceof hr)))throw new TypeError("options.formats must be an array of InputFormat.");if(!(e.source instanceof ts))throw new TypeError("options.source must be a Source.");this._formats=e.formats,this._source=e.source,this._mainReader=new Rt(e.source)}_getDemuxer(){return this._demuxerPromise??=(async()=>{await this._mainReader.loadRange(0,4096);for(let e of this._formats)if(await e._canReadInput(this))return this._format=e,e._createDemuxer(this);throw new Error("Input has an unsupported or unrecognizable format.")})()}get source(){return this._source}async getFormat(){return await this._getDemuxer(),w(this._format),this._format}async computeDuration(){return(await this._getDemuxer()).computeDuration()}async getTracks(){return(await this._getDemuxer()).getTracks()}async getVideoTracks(){return(await this.getTracks()).filter(t=>t.isVideoTrack())}async getPrimaryVideoTrack(){return(await this.getTracks()).find(t=>t.isVideoTrack())??null}async getAudioTracks(){return(await this.getTracks()).filter(t=>t.isAudioTrack())}async getPrimaryAudioTrack(){return(await this.getTracks()).find(t=>t.isAudioTrack())??null}async getMimeType(){return(await this._getDemuxer()).getMimeType()}};W.set(Dp);var LE=Bc.work(r=>({async hello(){await r.host.world()},async decode({source:e,video:t,audio:i}){let s=async()=>e instanceof Blob?new nc(e):new oc(e),n=new uc({source:await s(),formats:pg}),[o,a]=await Promise.all([n.getPrimaryVideoTrack(),n.getPrimaryAudioTrack()]),c=await o?.canDecode(),u=await a?.canDecode(),l=t.getWriter(),h=i.getWriter();await Promise.all([(async()=>{if(c&&o){let f=new Za(o);for await(let d of f.samples()){let m=d.toVideoFrame();await l.write(m),d.close(),m.close()}await l.close()}})(),(async()=>{if(u&&a){let f=new Ja(a);for await(let d of f.samples()){let m=d.toAudioData();await h.write(m),d.close(),m.close()}await h.close()}})()])},async encode({readables:e,config:t,bridge:i}){let s=new sc({format:new Tn,target:new qa(i,{chunked:!0})}),n=new tc(t.video);s.addVideoTrack(n);let o=new rc(t.audio);s.addAudioTrack(o),await s.start();let a=e.video.getReader(),c=e.audio.getReader();await Promise.all([(async()=>{for(;;){let{done:u,value:l}=await a.read();if(u)break;let h=new lr(l);await n.add(h),h.close()}})(),(async()=>{for(;;){let{done:u,value:l}=await c.read();if(u)break;let h=new Lt(l);await o.add(h),h.close(),l.close()}})()]),await s.finalize()},async composite(e){let{stage:t,renderer:i}=await lD(1920,1080);t.removeChildren();let{baseFrame:s,disposables:n}=await zE(e,t);i.render(t);let o=new VideoFrame(i.canvas,{timestamp:s?.timestamp,duration:s?.duration??void 0});s?.close(),i.clear();for(let a of n)a.destroy(!0);return r.transfer=[o],o}})),vh=null;async function lD(r,e){if(vh)return vh;let t=await gp({width:r,height:e,preference:"webgl",background:"black",preferWebGLVersion:2}),i=new we;return vh={renderer:t,stage:i},vh}async function zE(r,e,t=[]){if(Array.isArray(r)){let i;for(let s of r){let n=await zE(s,e,t);i??=n.baseFrame}return{baseFrame:i,disposables:t}}if(!hD(r))return console.warn("Invalid layer",r),{disposables:t};switch(r.kind){case"text":return dD(r,e,t);case"image":return fD(r,e,t);default:return console.warn("Unknown layer kind",r.kind),{disposables:t}}}function hD(r){return!!r&&typeof r=="object"&&typeof r.kind=="string"}function dD(r,e,t){let i=new La({text:r.content,style:{fontFamily:"sans-serif",fontSize:r.fontSize??48,fill:r.color??"white"}});return VE(i,r),e.addChild(i),t.push(i),{disposables:t}}function fD(r,e,t){let i=D.from(r.frame),s=new qt(i);return VE(s,r),e.addChild(s),t.push(s,i),{baseFrame:r.frame,disposables:t}}function VE(r,e={}){e.x&&(r.x=e.x),e.y&&(r.y=e.y),e.scale&&r.scale.set(e.scale),e.opacity&&(r.alpha=e.opacity),e.anchor&&"anchor"in r&&r.anchor.set(e.anchor)}await Bc.worker(LE);
1100
1100
  /*! Bundled license information:
1101
1101
 
1102
1102
  mediabunny/dist/modules/misc.js:
@@ -1109,6 +1109,7 @@ mediabunny/dist/modules/muxer.js:
1109
1109
  mediabunny/dist/modules/writer.js:
1110
1110
  mediabunny/dist/modules/target.js:
1111
1111
  mediabunny/dist/modules/isobmff/isobmff-misc.js:
1112
+ mediabunny/dist/modules/isobmff/isobmff-reader.js:
1112
1113
  mediabunny/dist/modules/isobmff/isobmff-muxer.js:
1113
1114
  mediabunny/dist/modules/matroska/ebml.js:
1114
1115
  mediabunny/dist/modules/matroska/matroska-misc.js:
@@ -1128,7 +1129,6 @@ mediabunny/dist/modules/output-format.js:
1128
1129
  mediabunny/dist/modules/media-source.js:
1129
1130
  mediabunny/dist/modules/output.js:
1130
1131
  mediabunny/dist/modules/source.js:
1131
- mediabunny/dist/modules/isobmff/isobmff-reader.js:
1132
1132
  mediabunny/dist/modules/isobmff/isobmff-demuxer.js:
1133
1133
  mediabunny/dist/modules/matroska/matroska-demuxer.js:
1134
1134
  mediabunny/dist/modules/mp3/mp3-reader.js: