@codexo/exojs 0.4.0 → 0.6.1

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 (138) hide show
  1. package/CHANGELOG.md +464 -163
  2. package/README.md +156 -141
  3. package/dist/esm/audio/AudioAnalyser.d.ts +0 -1
  4. package/dist/esm/audio/AudioAnalyser.js +0 -2
  5. package/dist/esm/audio/AudioAnalyser.js.map +1 -1
  6. package/dist/esm/core/Application.d.ts +4 -4
  7. package/dist/esm/core/Application.js +19 -19
  8. package/dist/esm/core/Application.js.map +1 -1
  9. package/dist/esm/core/Scene.d.ts +59 -24
  10. package/dist/esm/core/Scene.js +60 -18
  11. package/dist/esm/core/Scene.js.map +1 -1
  12. package/dist/esm/core/SceneManager.js +15 -9
  13. package/dist/esm/core/SceneManager.js.map +1 -1
  14. package/dist/esm/core/SceneNode.d.ts +45 -5
  15. package/dist/esm/core/SceneNode.js +136 -7
  16. package/dist/esm/core/SceneNode.js.map +1 -1
  17. package/dist/esm/index.js +3 -4
  18. package/dist/esm/index.js.map +1 -1
  19. package/dist/esm/math/index.d.ts +0 -1
  20. package/dist/esm/rendering/CallbackRenderPass.d.ts +3 -3
  21. package/dist/esm/rendering/CallbackRenderPass.js +2 -2
  22. package/dist/esm/rendering/CallbackRenderPass.js.map +1 -1
  23. package/dist/esm/rendering/Container.d.ts +10 -11
  24. package/dist/esm/rendering/Container.js +5 -5
  25. package/dist/esm/rendering/Container.js.map +1 -1
  26. package/dist/esm/rendering/Drawable.d.ts +2 -2
  27. package/dist/esm/rendering/Drawable.js +5 -5
  28. package/dist/esm/rendering/Drawable.js.map +1 -1
  29. package/dist/esm/rendering/{SceneRenderRuntime.d.ts → RenderBackend.d.ts} +21 -3
  30. package/dist/esm/rendering/RenderNode.d.ts +41 -5
  31. package/dist/esm/rendering/RenderNode.js +89 -24
  32. package/dist/esm/rendering/RenderNode.js.map +1 -1
  33. package/dist/esm/rendering/RenderPass.d.ts +2 -2
  34. package/dist/esm/rendering/RenderTargetPass.d.ts +3 -3
  35. package/dist/esm/rendering/RenderTargetPass.js +9 -9
  36. package/dist/esm/rendering/RenderTargetPass.js.map +1 -1
  37. package/dist/esm/rendering/Renderer.d.ts +3 -3
  38. package/dist/esm/rendering/RendererRegistry.d.ts +13 -7
  39. package/dist/esm/rendering/RendererRegistry.js +18 -10
  40. package/dist/esm/rendering/RendererRegistry.js.map +1 -1
  41. package/dist/esm/rendering/filters/BlurFilter.d.ts +2 -2
  42. package/dist/esm/rendering/filters/BlurFilter.js +5 -5
  43. package/dist/esm/rendering/filters/BlurFilter.js.map +1 -1
  44. package/dist/esm/rendering/filters/ColorFilter.d.ts +2 -2
  45. package/dist/esm/rendering/filters/ColorFilter.js +3 -3
  46. package/dist/esm/rendering/filters/ColorFilter.js.map +1 -1
  47. package/dist/esm/rendering/filters/Filter.d.ts +2 -2
  48. package/dist/esm/rendering/index.d.ts +6 -6
  49. package/dist/esm/rendering/primitives/Graphics.d.ts +3 -3
  50. package/dist/esm/rendering/primitives/Graphics.js.map +1 -1
  51. package/dist/esm/rendering/shader/Shader.d.ts +3 -3
  52. package/dist/esm/rendering/shader/Shader.js +10 -10
  53. package/dist/esm/rendering/text/Text.d.ts +2 -2
  54. package/dist/esm/rendering/text/Text.js +2 -2
  55. package/dist/esm/rendering/text/Text.js.map +1 -1
  56. package/dist/esm/rendering/texture/Sampler.d.ts +0 -3
  57. package/dist/esm/rendering/texture/Sampler.js +5 -7
  58. package/dist/esm/rendering/texture/Sampler.js.map +1 -1
  59. package/dist/esm/rendering/types.d.ts +4 -0
  60. package/dist/esm/rendering/types.js +4 -0
  61. package/dist/esm/rendering/types.js.map +1 -1
  62. package/dist/esm/rendering/video/Video.d.ts +2 -2
  63. package/dist/esm/rendering/video/Video.js +2 -2
  64. package/dist/esm/rendering/video/Video.js.map +1 -1
  65. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.d.ts +2 -2
  66. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js +35 -11
  67. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js.map +1 -1
  68. package/dist/esm/rendering/webgl2/AbstractWebGl2Renderer.d.ts +13 -13
  69. package/dist/esm/rendering/webgl2/AbstractWebGl2Renderer.js +20 -20
  70. package/dist/esm/rendering/webgl2/AbstractWebGl2Renderer.js.map +1 -1
  71. package/dist/esm/rendering/webgl2/{WebGl2RenderManager.d.ts → WebGl2Backend.d.ts} +15 -12
  72. package/dist/esm/rendering/webgl2/{WebGl2RenderManager.js → WebGl2Backend.js} +60 -38
  73. package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -0
  74. package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.d.ts +31 -0
  75. package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.js +186 -0
  76. package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.js.map +1 -0
  77. package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.d.ts +38 -7
  78. package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.js +281 -90
  79. package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.js.map +1 -1
  80. package/dist/esm/rendering/webgl2/WebGl2PrimitiveRenderer.d.ts +2 -2
  81. package/dist/esm/rendering/webgl2/WebGl2PrimitiveRenderer.js +15 -10
  82. package/dist/esm/rendering/webgl2/WebGl2PrimitiveRenderer.js.map +1 -1
  83. package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.js +12 -0
  84. package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.js.map +1 -1
  85. package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.d.ts +2 -0
  86. package/dist/esm/rendering/webgl2/{WebGl2ShaderRuntime.js → WebGl2ShaderProgram.js} +58 -18
  87. package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.js.map +1 -0
  88. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.d.ts +26 -7
  89. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js +260 -62
  90. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js.map +1 -1
  91. package/dist/esm/rendering/webgl2/WebGl2VertexArrayObject.d.ts +24 -1
  92. package/dist/esm/rendering/webgl2/WebGl2VertexArrayObject.js +6 -2
  93. package/dist/esm/rendering/webgl2/WebGl2VertexArrayObject.js.map +1 -1
  94. package/dist/esm/rendering/webgl2/glsl/mask-compose.frag.js +4 -0
  95. package/dist/esm/rendering/webgl2/glsl/mask-compose.frag.js.map +1 -0
  96. package/dist/esm/rendering/webgl2/glsl/mask-compose.vert.js +4 -0
  97. package/dist/esm/rendering/webgl2/glsl/mask-compose.vert.js.map +1 -0
  98. package/dist/esm/rendering/webgl2/glsl/particle.vert.js +1 -1
  99. package/dist/esm/rendering/webgl2/glsl/sprite.frag.js +1 -1
  100. package/dist/esm/rendering/webgl2/glsl/sprite.vert.js +1 -1
  101. package/dist/esm/rendering/webgpu/AbstractWebGpuRenderer.d.ts +9 -9
  102. package/dist/esm/rendering/webgpu/AbstractWebGpuRenderer.js +18 -18
  103. package/dist/esm/rendering/webgpu/AbstractWebGpuRenderer.js.map +1 -1
  104. package/dist/esm/rendering/webgpu/{WebGpuRenderManager.d.ts → WebGpuBackend.d.ts} +17 -14
  105. package/dist/esm/rendering/webgpu/{WebGpuRenderManager.js → WebGpuBackend.js} +74 -40
  106. package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -0
  107. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.d.ts +37 -0
  108. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js +279 -0
  109. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js.map +1 -0
  110. package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.d.ts +2 -3
  111. package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js +65 -82
  112. package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js.map +1 -1
  113. package/dist/esm/rendering/webgpu/WebGpuPrimitiveRenderer.d.ts +2 -3
  114. package/dist/esm/rendering/webgpu/WebGpuPrimitiveRenderer.js +24 -25
  115. package/dist/esm/rendering/webgpu/WebGpuPrimitiveRenderer.js.map +1 -1
  116. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts +28 -13
  117. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js +410 -382
  118. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js.map +1 -1
  119. package/dist/esm/resources/Loader.js +5 -3
  120. package/dist/esm/resources/Loader.js.map +1 -1
  121. package/dist/exo.esm.js +2500 -1399
  122. package/dist/exo.esm.js.map +1 -1
  123. package/package.json +20 -11
  124. package/dist/esm/math/Transformable.d.ts +0 -47
  125. package/dist/esm/math/Transformable.js +0 -140
  126. package/dist/esm/math/Transformable.js.map +0 -1
  127. package/dist/esm/rendering/webgl2/WebGl2RenderManager.js.map +0 -1
  128. package/dist/esm/rendering/webgl2/WebGl2RendererRuntime.d.ts +0 -15
  129. package/dist/esm/rendering/webgl2/WebGl2ShaderRuntime.d.ts +0 -2
  130. package/dist/esm/rendering/webgl2/WebGl2ShaderRuntime.js.map +0 -1
  131. package/dist/esm/rendering/webgpu/WebGpuRenderManager.js.map +0 -1
  132. package/dist/esm/rendering/webgpu/WebGpuRendererRuntime.d.ts +0 -8
  133. package/dist/exo.esm.min.js +0 -2
  134. package/dist/exo.esm.min.js.map +0 -1
  135. package/dist/exo.global.js +0 -17328
  136. package/dist/exo.global.js.map +0 -1
  137. package/dist/exo.global.min.js +0 -2
  138. package/dist/exo.global.min.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebGpuMaskCompositor.js","sources":["../../../../../src/rendering/webgpu/WebGpuMaskCompositor.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,11 +1,10 @@
1
1
  import { AbstractWebGpuRenderer } from '@/rendering/webgpu/AbstractWebGpuRenderer';
2
- import type { WebGpuRendererRuntime } from '@/rendering/webgpu/WebGpuRendererRuntime';
2
+ import type { WebGpuBackend } from '@/rendering/webgpu/WebGpuBackend';
3
3
  import type { ParticleSystem } from '@/particles/ParticleSystem';
4
4
  export declare class WebGpuParticleRenderer extends AbstractWebGpuRenderer<ParticleSystem> {
5
5
  private readonly _drawCalls;
6
6
  private _drawCallCount;
7
7
  private readonly _uniformData;
8
- private _renderManager;
9
8
  private _device;
10
9
  private _shaderModule;
11
10
  private _uniformBindGroupLayout;
@@ -24,7 +23,7 @@ export declare class WebGpuParticleRenderer extends AbstractWebGpuRenderer<Parti
24
23
  render(system: ParticleSystem): void;
25
24
  flush(): void;
26
25
  destroy(): void;
27
- protected onConnect(runtime: WebGpuRendererRuntime): void;
26
+ protected onConnect(backend: WebGpuBackend): void;
28
27
  protected onDisconnect(): void;
29
28
  private _ensureCapacity;
30
29
  private _writeUniformData;
@@ -8,6 +8,8 @@ struct ProjectionUniforms {
8
8
  projection: mat4x4<f32>,
9
9
  translation: mat4x4<f32>,
10
10
  flags: vec4<f32>,
11
+ localBounds: vec4<f32>, // quadMin.xy, quadSize.xy
12
+ uvBounds: vec4<f32>, // uvMin.xy, uvMax.xy
11
13
  };
12
14
 
13
15
  @group(0) @binding(0)
@@ -19,16 +21,13 @@ var particleTexture: texture_2d<f32>;
19
21
  @group(1) @binding(1)
20
22
  var particleSampler: sampler;
21
23
 
24
+ // Per-instance attributes (one entry per particle, 24 bytes total).
22
25
  struct VertexInput {
23
- @location(0) unitPosition: vec2<f32>,
24
- @location(1) quadMin: vec2<f32>,
25
- @location(2) quadSize: vec2<f32>,
26
- @location(3) uvMin: vec2<f32>,
27
- @location(4) uvMax: vec2<f32>,
28
- @location(5) translation: vec2<f32>,
29
- @location(6) scale: vec2<f32>,
30
- @location(7) rotation: f32,
31
- @location(8) color: vec4<f32>,
26
+ @location(0) unitPosition: vec2<f32>, // per-vertex (static unit quad)
27
+ @location(1) translation: vec2<f32>,
28
+ @location(2) scale: vec2<f32>,
29
+ @location(3) rotation: f32,
30
+ @location(4) color: vec4<f32>,
32
31
  };
33
32
 
34
33
  struct VertexOutput {
@@ -39,7 +38,12 @@ struct VertexOutput {
39
38
 
40
39
  @vertex
41
40
  fn vertexMain(input: VertexInput) -> VertexOutput {
42
- let localPosition = input.quadMin + (input.unitPosition * input.quadSize);
41
+ let quadMin = uniforms.localBounds.xy;
42
+ let quadSize = uniforms.localBounds.zw;
43
+ let uvMin = uniforms.uvBounds.xy;
44
+ let uvMax = uniforms.uvBounds.zw;
45
+
46
+ let localPosition = quadMin + (input.unitPosition * quadSize);
43
47
  let radians = radians(input.rotation);
44
48
  let sinValue = sin(radians);
45
49
  let cosValue = cos(radians);
@@ -51,7 +55,7 @@ fn vertexMain(input: VertexInput) -> VertexOutput {
51
55
  var output: VertexOutput;
52
56
 
53
57
  output.position = uniforms.projection * uniforms.translation * vec4<f32>(rotated, 0.0, 1.0);
54
- output.texcoord = input.uvMin + ((input.uvMax - input.uvMin) * input.unitPosition);
58
+ output.texcoord = uvMin + ((uvMax - uvMin) * input.unitPosition);
55
59
  output.color = vec4(input.color.rgb * input.color.a, input.color.a);
56
60
 
57
61
  return output;
@@ -66,10 +70,10 @@ fn fragmentMain(input: VertexOutput) -> @location(0) vec4<f32> {
66
70
  }
67
71
  `;
68
72
  const staticVertexStrideBytes = 8;
69
- const instanceWords = 14;
70
- const instanceStrideBytes = 56;
73
+ const instanceWords = 6;
74
+ const instanceStrideBytes = 24;
71
75
  const indicesPerParticle = 6;
72
- const uniformByteLength = 144;
76
+ const uniformByteLength = 176;
73
77
  const initialParticleCapacity = 1;
74
78
  const staticVertexData = new Float32Array([
75
79
  0, 0,
@@ -85,7 +89,6 @@ class WebGpuParticleRenderer extends AbstractWebGpuRenderer {
85
89
  _drawCalls = [];
86
90
  _drawCallCount = 0;
87
91
  _uniformData = new Float32Array(uniformByteLength / Float32Array.BYTES_PER_ELEMENT);
88
- _renderManager = null;
89
92
  _device = null;
90
93
  _shaderModule = null;
91
94
  _uniformBindGroupLayout = null;
@@ -102,9 +105,9 @@ class WebGpuParticleRenderer extends AbstractWebGpuRenderer {
102
105
  _uint32View = new Uint32Array(this._instanceData);
103
106
  _pipelines = new Map();
104
107
  render(system) {
105
- const runtime = this._renderManager;
108
+ const backend = this._backend;
106
109
  const texture = system.texture;
107
- if (runtime === null
110
+ if (backend === null
108
111
  || !(texture instanceof Texture)
109
112
  || texture.source === null
110
113
  || texture.width === 0
@@ -112,7 +115,7 @@ class WebGpuParticleRenderer extends AbstractWebGpuRenderer {
112
115
  || system.particles.length === 0) {
113
116
  return;
114
117
  }
115
- runtime.setBlendMode(system.blendMode);
118
+ backend.setBlendMode(system.blendMode);
116
119
  const drawCallIndex = this._drawCallCount++;
117
120
  const drawCall = this._drawCalls[drawCallIndex];
118
121
  if (drawCall) {
@@ -129,32 +132,32 @@ class WebGpuParticleRenderer extends AbstractWebGpuRenderer {
129
132
  }
130
133
  }
131
134
  flush() {
132
- const runtime = this._renderManager;
135
+ const backend = this._backend;
133
136
  const device = this._device;
134
137
  const uniformBuffer = this._uniformBuffer;
135
138
  const uniformBindGroup = this._uniformBindGroup;
136
139
  const staticVertexBuffer = this._staticVertexBuffer;
137
140
  const indexBuffer = this._indexBuffer;
138
- if (!runtime || !device || !uniformBuffer || !uniformBindGroup || !staticVertexBuffer || !this._instanceBuffer || !indexBuffer) {
141
+ if (!backend || !device || !uniformBuffer || !uniformBindGroup || !staticVertexBuffer || !this._instanceBuffer || !indexBuffer) {
139
142
  return;
140
143
  }
141
- if (this._drawCallCount === 0 && !runtime.clearRequested) {
144
+ if (this._drawCallCount === 0 && !backend.clearRequested) {
142
145
  return;
143
146
  }
144
- const scissor = runtime.getScissorRect();
147
+ const scissor = backend.getScissorRect();
145
148
  const maskClipsAll = scissor !== null && (scissor.width <= 0 || scissor.height <= 0);
146
149
  // If no drawcalls will actually render (none queued, or the scissor
147
150
  // clips everything), but a clear is pending, open a single empty
148
151
  // pass so createColorAttachment consumes the clear state.
149
152
  if (this._drawCallCount === 0 || maskClipsAll) {
150
- if (runtime.clearRequested) {
153
+ if (backend.clearRequested) {
151
154
  const encoder = device.createCommandEncoder();
152
155
  const pass = encoder.beginRenderPass({
153
- colorAttachments: [runtime.createColorAttachment()],
156
+ colorAttachments: [backend.createColorAttachment()],
154
157
  });
155
- runtime.stats.renderPasses++;
158
+ backend.stats.renderPasses++;
156
159
  pass.end();
157
- runtime.submit(encoder.finish());
160
+ backend.submit(encoder.finish());
158
161
  }
159
162
  this._drawCallCount = 0;
160
163
  return;
@@ -175,8 +178,8 @@ class WebGpuParticleRenderer extends AbstractWebGpuRenderer {
175
178
  if (particleCount === 0) {
176
179
  continue;
177
180
  }
178
- const pipeline = this._getPipeline(drawCall.blendMode, runtime.renderTargetFormat);
179
- const textureBinding = runtime.getTextureBinding(drawCall.texture);
181
+ const pipeline = this._getPipeline(drawCall.blendMode, backend.renderTargetFormat);
182
+ const textureBinding = backend.getTextureBinding(drawCall.texture);
180
183
  const textureBindGroup = device.createBindGroup({
181
184
  layout: this._textureBindGroupLayout,
182
185
  entries: [{
@@ -189,14 +192,14 @@ class WebGpuParticleRenderer extends AbstractWebGpuRenderer {
189
192
  });
190
193
  this._ensureCapacity(particleCount);
191
194
  this._writeInstanceData(system.vertices, system.texCoords, system.particles);
192
- this._writeUniformData(runtime, system, drawCall.texture);
195
+ this._writeUniformData(backend, system, drawCall.texture);
193
196
  device.queue.writeBuffer(this._instanceBuffer, 0, this._instanceData, 0, particleCount * instanceStrideBytes);
194
197
  device.queue.writeBuffer(uniformBuffer, 0, this._uniformData.buffer, this._uniformData.byteOffset, this._uniformData.byteLength);
195
198
  const encoder = device.createCommandEncoder();
196
199
  const pass = encoder.beginRenderPass({
197
- colorAttachments: [runtime.createColorAttachment()],
200
+ colorAttachments: [backend.createColorAttachment()],
198
201
  });
199
- runtime.stats.renderPasses++;
202
+ backend.stats.renderPasses++;
200
203
  if (scissor !== null) {
201
204
  pass.setScissorRect(scissor.x, scissor.y, scissor.width, scissor.height);
202
205
  }
@@ -207,19 +210,19 @@ class WebGpuParticleRenderer extends AbstractWebGpuRenderer {
207
210
  pass.setVertexBuffer(1, this._instanceBuffer);
208
211
  pass.setIndexBuffer(indexBuffer, 'uint16');
209
212
  pass.drawIndexed(indicesPerParticle, particleCount, 0, 0, 0);
210
- runtime.stats.batches++;
211
- runtime.stats.drawCalls++;
213
+ backend.stats.batches++;
214
+ backend.stats.drawCalls++;
212
215
  pass.end();
213
- runtime.submit(encoder.finish());
216
+ backend.submit(encoder.finish());
214
217
  }
215
218
  this._drawCallCount = 0;
216
219
  }
217
220
  destroy() {
218
221
  this.disconnect();
219
222
  }
220
- onConnect(runtime) {
221
- this._renderManager = runtime;
222
- this._device = this._renderManager.device;
223
+ onConnect(backend) {
224
+ this._backend = backend;
225
+ this._device = this._backend.device;
223
226
  this._shaderModule = this._device.createShaderModule({ code: particleShaderSource });
224
227
  this._uniformBindGroupLayout = this._device.createBindGroupLayout({
225
228
  entries: [{
@@ -290,7 +293,7 @@ class WebGpuParticleRenderer extends AbstractWebGpuRenderer {
290
293
  this._uniformBindGroupLayout = null;
291
294
  this._shaderModule = null;
292
295
  this._device = null;
293
- this._renderManager = null;
296
+ this._backend = null;
294
297
  this._instanceBufferByteLength = 0;
295
298
  this._instanceData = new ArrayBuffer(instanceStrideBytes * initialParticleCapacity);
296
299
  this._float32View = new Float32Array(this._instanceData);
@@ -321,10 +324,20 @@ class WebGpuParticleRenderer extends AbstractWebGpuRenderer {
321
324
  this._instanceBufferByteLength = byteLength;
322
325
  }
323
326
  }
324
- _writeUniformData(runtime, system, texture) {
325
- const projection = runtime.view.getTransform().toArray(false);
327
+ _writeUniformData(backend, system, texture) {
328
+ const projection = backend.view.getTransform().toArray(false);
326
329
  const transform = system.getGlobalTransform().toArray(false);
327
- const shouldPremultiplySample = runtime.shouldPremultiplyTextureSample(texture);
330
+ const shouldPremultiplySample = backend.shouldPremultiplyTextureSample(texture);
331
+ const vertices = system.vertices;
332
+ const texCoords = system.texCoords;
333
+ const quadMinX = vertices[0];
334
+ const quadMinY = vertices[1];
335
+ const quadSizeX = vertices[2] - vertices[0];
336
+ const quadSizeY = vertices[3] - vertices[1];
337
+ const uvMinX = (texCoords[0] & 0xFFFF) / 0xFFFF;
338
+ const uvMinY = ((texCoords[0] >>> 16) & 0xFFFF) / 0xFFFF;
339
+ const uvMaxX = (texCoords[2] & 0xFFFF) / 0xFFFF;
340
+ const uvMaxY = ((texCoords[2] >>> 16) & 0xFFFF) / 0xFFFF;
328
341
  this._uniformData.set([
329
342
  projection[0], projection[1], 0, 0,
330
343
  projection[3], projection[4], 0, 0,
@@ -335,34 +348,20 @@ class WebGpuParticleRenderer extends AbstractWebGpuRenderer {
335
348
  0, 0, 1, 0,
336
349
  transform[6], transform[7], 0, transform[8],
337
350
  shouldPremultiplySample ? 1 : 0, 0, 0, 0,
351
+ quadMinX, quadMinY, quadSizeX, quadSizeY,
352
+ uvMinX, uvMinY, uvMaxX, uvMaxY,
338
353
  ]);
339
354
  }
340
- _writeInstanceData(vertices, texCoords, particles) {
341
- const quadMinX = vertices[0];
342
- const quadMinY = vertices[1];
343
- const quadSizeX = vertices[2] - vertices[0];
344
- const quadSizeY = vertices[3] - vertices[1];
345
- const uvMinX = (texCoords[0] & 0xFFFF) / 65535;
346
- const uvMinY = ((texCoords[0] >>> 16) & 0xFFFF) / 65535;
347
- const uvMaxX = (texCoords[2] & 0xFFFF) / 65535;
348
- const uvMaxY = ((texCoords[2] >>> 16) & 0xFFFF) / 65535;
355
+ _writeInstanceData(_vertices, _texCoords, particles) {
349
356
  for (let particleIndex = 0; particleIndex < particles.length; particleIndex++) {
350
357
  const particle = particles[particleIndex];
351
358
  const targetIndex = particleIndex * instanceWords;
352
- this._float32View[targetIndex] = quadMinX;
353
- this._float32View[targetIndex + 1] = quadMinY;
354
- this._float32View[targetIndex + 2] = quadSizeX;
355
- this._float32View[targetIndex + 3] = quadSizeY;
356
- this._float32View[targetIndex + 4] = uvMinX;
357
- this._float32View[targetIndex + 5] = uvMinY;
358
- this._float32View[targetIndex + 6] = uvMaxX;
359
- this._float32View[targetIndex + 7] = uvMaxY;
360
- this._float32View[targetIndex + 8] = particle.position.x;
361
- this._float32View[targetIndex + 9] = particle.position.y;
362
- this._float32View[targetIndex + 10] = particle.scale.x;
363
- this._float32View[targetIndex + 11] = particle.scale.y;
364
- this._float32View[targetIndex + 12] = particle.rotation;
365
- this._uint32View[targetIndex + 13] = particle.tint.toRgba();
359
+ this._float32View[targetIndex + 0] = particle.position.x;
360
+ this._float32View[targetIndex + 1] = particle.position.y;
361
+ this._float32View[targetIndex + 2] = particle.scale.x;
362
+ this._float32View[targetIndex + 3] = particle.scale.y;
363
+ this._float32View[targetIndex + 4] = particle.rotation;
364
+ this._uint32View[targetIndex + 5] = particle.tint.toRgba();
366
365
  }
367
366
  }
368
367
  _getPipeline(blendMode, format) {
@@ -397,26 +396,10 @@ class WebGpuParticleRenderer extends AbstractWebGpuRenderer {
397
396
  }, {
398
397
  shaderLocation: 3,
399
398
  offset: 16,
400
- format: 'float32x2',
401
- }, {
402
- shaderLocation: 4,
403
- offset: 24,
404
- format: 'float32x2',
405
- }, {
406
- shaderLocation: 5,
407
- offset: 32,
408
- format: 'float32x2',
409
- }, {
410
- shaderLocation: 6,
411
- offset: 40,
412
- format: 'float32x2',
413
- }, {
414
- shaderLocation: 7,
415
- offset: 48,
416
399
  format: 'float32',
417
400
  }, {
418
- shaderLocation: 8,
419
- offset: 52,
401
+ shaderLocation: 4,
402
+ offset: 20,
420
403
  format: 'unorm8x4',
421
404
  }],
422
405
  }],
@@ -1 +1 @@
1
- {"version":3,"file":"WebGpuParticleRenderer.js","sources":["../../../../../src/rendering/webgpu/WebGpuParticleRenderer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WebGpuParticleRenderer.js","sources":["../../../../../src/rendering/webgpu/WebGpuParticleRenderer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,12 +1,11 @@
1
1
  import { AbstractWebGpuRenderer } from '@/rendering/webgpu/AbstractWebGpuRenderer';
2
2
  import type { DrawableShape } from '@/rendering/primitives/DrawableShape';
3
- import type { WebGpuRendererRuntime } from '@/rendering/webgpu/WebGpuRendererRuntime';
3
+ import type { WebGpuBackend } from '@/rendering/webgpu/WebGpuBackend';
4
4
  export declare class WebGpuPrimitiveRenderer extends AbstractWebGpuRenderer<DrawableShape> {
5
5
  private readonly _combinedTransform;
6
6
  private readonly _drawCalls;
7
7
  private _drawCallCount;
8
8
  private readonly _pipelines;
9
- private _renderManager;
10
9
  private _device;
11
10
  private _shaderModule;
12
11
  private _pipelineLayout;
@@ -23,7 +22,7 @@ export declare class WebGpuPrimitiveRenderer extends AbstractWebGpuRenderer<Draw
23
22
  render(shape: DrawableShape): void;
24
23
  flush(): void;
25
24
  destroy(): void;
26
- protected onConnect(runtime: WebGpuRendererRuntime): void;
25
+ protected onConnect(backend: WebGpuBackend): void;
27
26
  protected onDisconnect(): void;
28
27
  private _writeShapeVertices;
29
28
  private _ensureVertexCapacity;
@@ -42,7 +42,6 @@ class WebGpuPrimitiveRenderer extends AbstractWebGpuRenderer {
42
42
  _drawCalls = [];
43
43
  _drawCallCount = 0;
44
44
  _pipelines = new Map();
45
- _renderManager = null;
46
45
  _device = null;
47
46
  _shaderModule = null;
48
47
  _pipelineLayout = null;
@@ -57,8 +56,8 @@ class WebGpuPrimitiveRenderer extends AbstractWebGpuRenderer {
57
56
  _generatedIndexData = new Uint16Array(0);
58
57
  _sequentialIndexData = new Uint16Array(0);
59
58
  render(shape) {
60
- const runtime = this._renderManager;
61
- if (runtime === null) {
59
+ const backend = this._backend;
60
+ if (backend === null) {
62
61
  throw new Error('Renderer not connected');
63
62
  }
64
63
  if (shape.drawMode !== RenderingPrimitives.Points
@@ -70,7 +69,7 @@ class WebGpuPrimitiveRenderer extends AbstractWebGpuRenderer {
70
69
  && shape.drawMode !== RenderingPrimitives.TriangleStrip) {
71
70
  throw new Error(`WebGPU primitive renderer does not support draw mode "${shape.drawMode}" yet.`);
72
71
  }
73
- runtime.setBlendMode(shape.blendMode);
72
+ backend.setBlendMode(shape.blendMode);
74
73
  if (shape.geometry.vertices.length === 0) {
75
74
  return;
76
75
  }
@@ -88,15 +87,15 @@ class WebGpuPrimitiveRenderer extends AbstractWebGpuRenderer {
88
87
  }
89
88
  }
90
89
  flush() {
91
- const runtime = this._renderManager;
90
+ const backend = this._backend;
92
91
  const device = this._device;
93
- if (!runtime || !device) {
92
+ if (!backend || !device) {
94
93
  return;
95
94
  }
96
- if (this._drawCallCount === 0 && !runtime.clearRequested) {
95
+ if (this._drawCallCount === 0 && !backend.clearRequested) {
97
96
  return;
98
97
  }
99
- const scissor = runtime.getScissorRect();
98
+ const scissor = backend.getScissorRect();
100
99
  const maskClipsAll = scissor !== null && (scissor.width <= 0 || scissor.height <= 0);
101
100
  // Phase 1: resolve drawcalls and record each one's offsets into the
102
101
  // shared packed buffers. Transform gets baked into the vertex data
@@ -118,7 +117,7 @@ class WebGpuPrimitiveRenderer extends AbstractWebGpuRenderer {
118
117
  topology: resolved.topology,
119
118
  usesStripIndex: resolved.usesStripIndex,
120
119
  blendMode: drawCall.blendMode,
121
- format: runtime.renderTargetFormat,
120
+ format: backend.renderTargetFormat,
122
121
  });
123
122
  plan.push({
124
123
  pipeline,
@@ -135,14 +134,14 @@ class WebGpuPrimitiveRenderer extends AbstractWebGpuRenderer {
135
134
  // a single empty pass so createColorAttachment consumes the clear
136
135
  // state exactly once.
137
136
  if (plan.length === 0) {
138
- if (runtime.clearRequested) {
137
+ if (backend.clearRequested) {
139
138
  const encoder = device.createCommandEncoder();
140
139
  const pass = encoder.beginRenderPass({
141
- colorAttachments: [runtime.createColorAttachment()],
140
+ colorAttachments: [backend.createColorAttachment()],
142
141
  });
143
- runtime.stats.renderPasses++;
142
+ backend.stats.renderPasses++;
144
143
  pass.end();
145
- runtime.submit(encoder.finish());
144
+ backend.submit(encoder.finish());
146
145
  }
147
146
  this._drawCallCount = 0;
148
147
  return;
@@ -168,7 +167,7 @@ class WebGpuPrimitiveRenderer extends AbstractWebGpuRenderer {
168
167
  }
169
168
  const drawCall = this._drawCalls[i];
170
169
  const shape = drawCall.shape;
171
- this._writeShapeVertices(runtime, shape, vOffset);
170
+ this._writeShapeVertices(backend, shape, vOffset);
172
171
  if (resolved.indices !== null && resolved.indexCount > 0) {
173
172
  this._packedIndexData.set(resolved.indices.subarray(0, resolved.indexCount), iOffset);
174
173
  iOffset += resolved.indexCount;
@@ -186,9 +185,9 @@ class WebGpuPrimitiveRenderer extends AbstractWebGpuRenderer {
186
185
  // baked into the vertex data.
187
186
  const encoder = device.createCommandEncoder();
188
187
  const pass = encoder.beginRenderPass({
189
- colorAttachments: [runtime.createColorAttachment()],
188
+ colorAttachments: [backend.createColorAttachment()],
190
189
  });
191
- runtime.stats.renderPasses++;
190
+ backend.stats.renderPasses++;
192
191
  if (scissor !== null) {
193
192
  pass.setScissorRect(scissor.x, scissor.y, scissor.width, scissor.height);
194
193
  }
@@ -202,20 +201,20 @@ class WebGpuPrimitiveRenderer extends AbstractWebGpuRenderer {
202
201
  else {
203
202
  pass.draw(planned.vertexCount);
204
203
  }
205
- runtime.stats.batches++;
206
- runtime.stats.drawCalls++;
204
+ backend.stats.batches++;
205
+ backend.stats.drawCalls++;
207
206
  }
208
207
  pass.end();
209
- runtime.submit(encoder.finish());
208
+ backend.submit(encoder.finish());
210
209
  this._drawCallCount = 0;
211
210
  }
212
211
  destroy() {
213
212
  this.disconnect();
214
213
  this._combinedTransform.destroy();
215
214
  }
216
- onConnect(runtime) {
217
- this._renderManager = runtime;
218
- this._device = this._renderManager.device;
215
+ onConnect(backend) {
216
+ this._backend = backend;
217
+ this._device = this._backend.device;
219
218
  this._shaderModule = this._device.createShaderModule({ code: primitiveShaderSource });
220
219
  // Transform is applied per-vertex on the CPU, so no uniform binding
221
220
  // is needed — the shader outputs input.position directly.
@@ -230,10 +229,10 @@ class WebGpuPrimitiveRenderer extends AbstractWebGpuRenderer {
230
229
  this._pipelineLayout = null;
231
230
  this._shaderModule = null;
232
231
  this._device = null;
233
- this._renderManager = null;
232
+ this._backend = null;
234
233
  this._drawCallCount = 0;
235
234
  }
236
- _writeShapeVertices(runtime, shape, vertexStart) {
235
+ _writeShapeVertices(backend, shape, vertexStart) {
237
236
  // Matrix.combine is `other * this` (see Matrix.rotate and
238
237
  // SceneNode.getGlobalTransform, both of which chain via
239
238
  // local.combine(parent.global) to yield parent.global * local).
@@ -243,7 +242,7 @@ class WebGpuPrimitiveRenderer extends AbstractWebGpuRenderer {
243
242
  // _combinedTransform = view * global.
244
243
  const matrix = this._combinedTransform
245
244
  .copy(shape.getGlobalTransform())
246
- .combine(runtime.view.getTransform());
245
+ .combine(backend.view.getTransform());
247
246
  // Match the original uniform-based WGSL layout exactly.
248
247
  //
249
248
  // The shader packs the Matrix's 9 fields into a 4x4 mat (column-major
@@ -1 +1 @@
1
- {"version":3,"file":"WebGpuPrimitiveRenderer.js","sources":["../../../../../src/rendering/webgpu/WebGpuPrimitiveRenderer.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAAA;AAWA,MAAM,qBAAqB,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;CAyB7B;AAED;AACA;AACA;AACA;AACA;AACA,MAAM,iBAAiB,GAAG,EAAE;AAC5B,MAAM,cAAc,GAAG,iBAAiB,GAAG,WAAW,CAAC,iBAAiB;AAsBlE,MAAO,uBAAwB,SAAQ,sBAAqC,CAAA;AAC7D,IAAA,kBAAkB,GAAW,IAAI,MAAM,EAAE;IACzC,UAAU,GAAmC,EAAE;IACxD,cAAc,GAAG,CAAC;AACT,IAAA,UAAU,GAAmC,IAAI,GAAG,EAA6B;IAE1F,cAAc,GAA+B,IAAI;IACjD,OAAO,GAAqB,IAAI;IAChC,aAAa,GAA2B,IAAI;IAC5C,eAAe,GAA6B,IAAI;IAChD,aAAa,GAAqB,IAAI;IACtC,YAAY,GAAqB,IAAI;IACrC,qBAAqB,GAAG,CAAC;IACzB,oBAAoB,GAAG,CAAC;AACxB,IAAA,WAAW,GAAgB,IAAI,WAAW,CAAC,CAAC,CAAC;IAC7C,YAAY,GAAiB,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC;IAC/D,WAAW,GAAgB,IAAI,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AAC5D,IAAA,gBAAgB,GAAgB,IAAI,WAAW,CAAC,CAAC,CAAC;AAClD,IAAA,mBAAmB,GAAgB,IAAI,WAAW,CAAC,CAAC,CAAC;AACrD,IAAA,oBAAoB,GAAgB,IAAI,WAAW,CAAC,CAAC,CAAC;AAEvD,IAAA,MAAM,CAAC,KAAoB,EAAA;AAC9B,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc;AAEnC,QAAA,IAAI,OAAO,KAAK,IAAI,EAAE;AAClB,YAAA,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC;QAC7C;AAEA,QAAA,IACI,KAAK,CAAC,QAAQ,KAAK,mBAAmB,CAAC;AACpC,eAAA,KAAK,CAAC,QAAQ,KAAK,mBAAmB,CAAC;AACvC,eAAA,KAAK,CAAC,QAAQ,KAAK,mBAAmB,CAAC;AACvC,eAAA,KAAK,CAAC,QAAQ,KAAK,mBAAmB,CAAC;AACvC,eAAA,KAAK,CAAC,QAAQ,KAAK,mBAAmB,CAAC;AACvC,eAAA,KAAK,CAAC,QAAQ,KAAK,mBAAmB,CAAC;AACvC,eAAA,KAAK,CAAC,QAAQ,KAAK,mBAAmB,CAAC,aAAa,EACzD;YACE,MAAM,IAAI,KAAK,CAAC,CAAA,sDAAA,EAAyD,KAAK,CAAC,QAAQ,CAAA,MAAA,CAAQ,CAAC;QACpG;AAEA,QAAA,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC;QAErC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YACtC;QACJ;AACA,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,EAAE;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QAE/C,IAAI,QAAQ,EAAE;AACV,YAAA,QAAQ,CAAC,KAAK,GAAG,KAAK;AACtB,YAAA,QAAQ,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS;QACxC;aAAO;AACH,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBACjB,KAAK;gBACL,SAAS,EAAE,KAAK,CAAC,SAAS;AAC7B,aAAA,CAAC;QACN;IACJ;IAEO,KAAK,GAAA;AACR,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc;AACnC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO;AAE3B,QAAA,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,EAAE;YACrB;QACJ;QAEA,IAAI,IAAI,CAAC,cAAc,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;YACtD;QACJ;AAEA,QAAA,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,EAAE;AACxC,QAAA,MAAM,YAAY,GAAG,OAAO,KAAK,IAAI,KAAK,OAAO,CAAC,KAAK,IAAI,CAAC,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;;;;QAapF,MAAM,IAAI,GAA6B,EAAE;QACzC,MAAM,iBAAiB,GAA4C,EAAE;QACrE,IAAI,aAAa,GAAG,CAAC;QACrB,IAAI,YAAY,GAAG,CAAC;QAEpB,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE;AAC1C,YAAA,KAAK,IAAI,aAAa,GAAG,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC,cAAc,EAAE,aAAa,EAAE,EAAE;gBAC9E,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;AAC/C,gBAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK;gBAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;AAE7C,gBAAA,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC;AAEhC,gBAAA,IAAI,QAAQ,KAAK,IAAI,EAAE;oBACnB;gBACJ;AAEA,gBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC;oBAC/B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;oBAC3B,cAAc,EAAE,QAAQ,CAAC,cAAc;oBACvC,SAAS,EAAE,QAAQ,CAAC,SAAS;oBAC7B,MAAM,EAAE,OAAO,CAAC,kBAAkB;AACrC,iBAAA,CAAC;gBAEF,IAAI,CAAC,IAAI,CAAC;oBACN,QAAQ;oBACR,gBAAgB,EAAE,aAAa,GAAG,iBAAiB;oBACnD,WAAW,EAAE,QAAQ,CAAC,WAAW;AACjC,oBAAA,eAAe,EAAE,YAAY,GAAG,WAAW,CAAC,iBAAiB;oBAC7D,UAAU,EAAE,QAAQ,CAAC,UAAU;AAClC,iBAAA,CAAC;AAEF,gBAAA,aAAa,IAAI,QAAQ,CAAC,WAAW;AACrC,gBAAA,YAAY,IAAI,QAAQ,CAAC,UAAU;YACvC;QACJ;;;;AAKA,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACnB,YAAA,IAAI,OAAO,CAAC,cAAc,EAAE;AACxB,gBAAA,MAAM,OAAO,GAAG,MAAM,CAAC,oBAAoB,EAAE;AAC7C,gBAAA,MAAM,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC;AACjC,oBAAA,gBAAgB,EAAE,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;AACtD,iBAAA,CAAC;AACF,gBAAA,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE;gBAC5B,IAAI,CAAC,GAAG,EAAE;gBACV,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACpC;AACA,YAAA,IAAI,CAAC,cAAc,GAAG,CAAC;YACvB;QACJ;;;;;AAMA,QAAA,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC;AACzC,QAAA,IAAI,YAAY,GAAG,CAAC,EAAE;AAClB,YAAA,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC;YACvC,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,YAAY,EAAE;AAC7C,gBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,WAAW,CACnC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CACpG;YACL;QACJ;QAEA;YACI,IAAI,OAAO,GAAG,CAAC;YACf,IAAI,OAAO,GAAG,CAAC;AAGf,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,EAAE,EAAE;AAC1C,gBAAA,MAAM,QAAQ,GAAG,iBAAiB,CAAC,CAAC,CAAC;AAErC,gBAAA,IAAI,QAAQ,KAAK,IAAI,EAAE;oBACnB;gBACJ;gBAEA,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AACnC,gBAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK;gBAE5B,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC;AAEjD,gBAAA,IAAI,QAAQ,CAAC,OAAO,KAAK,IAAI,IAAI,QAAQ,CAAC,UAAU,GAAG,CAAC,EAAE;oBACtD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;AACrF,oBAAA,OAAO,IAAI,QAAQ,CAAC,UAAU;gBAClC;AAEA,gBAAA,OAAO,IAAI,QAAQ,CAAC,WAAW;YAEnC;QACJ;;QAGA,MAAM,CAAC,KAAK,CAAC,WAAW,CACpB,IAAI,CAAC,aAAc,EACnB,CAAC,EACD,IAAI,CAAC,WAAW,EAChB,CAAC,EACD,aAAa,GAAG,iBAAiB,CACpC;AACD,QAAA,IAAI,YAAY,GAAG,CAAC,EAAE;AAClB,YAAA,MAAM,CAAC,KAAK,CAAC,WAAW,CACpB,IAAI,CAAC,YAAa,EAClB,CAAC,EACD,IAAI,CAAC,gBAAgB,CAAC,MAAqB,EAC3C,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAChC,YAAY,GAAG,WAAW,CAAC,iBAAiB,CAC/C;QACL;;;;AAKA,QAAA,MAAM,OAAO,GAAG,MAAM,CAAC,oBAAoB,EAAE;AAC7C,QAAA,MAAM,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC;AACjC,YAAA,gBAAgB,EAAE,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;AACtD,SAAA,CAAC;AACF,QAAA,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE;AAE5B,QAAA,IAAI,OAAO,KAAK,IAAI,EAAE;AAClB,YAAA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC;QAC5E;AAEA,QAAA,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE;AACxB,YAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC;AAClC,YAAA,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,aAAc,EAAE,OAAO,CAAC,gBAAgB,CAAC;AAEtE,YAAA,IAAI,OAAO,CAAC,UAAU,GAAG,CAAC,EAAE;AACxB,gBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAa,EAAE,QAAQ,EAAE,OAAO,CAAC,eAAe,CAAC;AAC1E,gBAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC;YACxC;iBAAO;AACH,gBAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;YAClC;AAEA,YAAA,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE;AACvB,YAAA,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE;QAC7B;QAEA,IAAI,CAAC,GAAG,EAAE;QACV,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;AAChC,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC;IAC3B;IAEO,OAAO,GAAA;QACV,IAAI,CAAC,UAAU,EAAE;AACjB,QAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;IACrC;AAEU,IAAA,SAAS,CAAC,OAA8B,EAAA;AAC9C,QAAA,IAAI,CAAC,cAAc,GAAG,OAA8B;QACpD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM;AACzC,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC;;;QAGrF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC;AACrD,YAAA,gBAAgB,EAAE,EAAE;AACvB,SAAA,CAAC;IACN;IAEU,YAAY,GAAA;QAClB,IAAI,CAAC,KAAK,EAAE;QACZ,IAAI,CAAC,eAAe,EAAE;AACtB,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;AAEvB,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI;AAC3B,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;AACzB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAC1B,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC;IAC3B;AAEQ,IAAA,mBAAmB,CAAC,OAA8B,EAAE,KAAoB,EAAE,WAAmB,EAAA;;;;;;;;AAQjG,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC;AACf,aAAA,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE;aAC/B,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;AAyBzC,QAAA,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;AAClB,QAAA,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;AAClB,QAAA,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;AAClB,QAAA,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;AAClB,QAAA,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC;AACnB,QAAA,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC;AACnB,QAAA,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC;QAEnB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE;AAClC,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ;AACxC,QAAA,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC;AAEvC,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;AAClC,YAAA,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC;YACzB,MAAM,WAAW,GAAG,CAAC,WAAW,GAAG,CAAC,IAAI,cAAc;AACtD,YAAA,MAAM,EAAE,GAAG,QAAQ,CAAC,WAAW,CAAC;YAChC,MAAM,EAAE,GAAG,QAAQ,CAAC,WAAW,GAAG,CAAC,CAAC;AAEpC,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE;AACzD,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE;YACzD,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC;YACtC,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,EAAE;YACvC,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,KAAK;QAC7C;IACJ;AAEQ,IAAA,qBAAqB,CAAC,WAAmB,EAAA;AAC7C,QAAA,MAAM,aAAa,GAAG,WAAW,GAAG,iBAAiB;QAErD,IAAI,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE;AAC7C,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,UAAU,KAAK,CAAC,GAAG,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,CAAC,CAAC;YAEnI,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC;YAC9C,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC;YACtD,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;QACxD;AAEA,QAAA,IAAI,aAAa,GAAG,IAAI,CAAC,qBAAqB,EAAE;AAC5C,YAAA,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE;YAC7B,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,qBAAqB,KAAK,CAAC,GAAG,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC;YAC3I,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAQ,CAAC,YAAY,CAAC;gBAC5C,IAAI,EAAE,IAAI,CAAC,qBAAqB;AAChC,gBAAA,KAAK,EAAE,cAAc,CAAC,MAAM,GAAG,cAAc,CAAC,QAAQ;AACzD,aAAA,CAAC;QACN;IACJ;AAEQ,IAAA,oBAAoB,CAAC,UAAkB,EAAA;AAC3C,QAAA,MAAM,aAAa,GAAG,UAAU,GAAG,WAAW,CAAC,iBAAiB;AAEhE,QAAA,IAAI,aAAa,GAAG,IAAI,CAAC,oBAAoB,EAAE;AAC3C,YAAA,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE;AAC5B,YAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,oBAAoB,KAAK,CAAC,GAAG,WAAW,CAAC,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;YACpJ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAQ,CAAC,YAAY,CAAC;gBAC3C,IAAI,EAAE,IAAI,CAAC,oBAAoB;AAC/B,gBAAA,KAAK,EAAE,cAAc,CAAC,KAAK,GAAG,cAAc,CAAC,QAAQ;AACxD,aAAA,CAAC;QACN;IACJ;AAEQ,IAAA,YAAY,CAAC,GAA+B,EAAA;QAChD,MAAM,WAAW,GAAG,CAAA,EAAG,GAAG,CAAC,QAAQ,CAAA,CAAA,EAAI,GAAG,CAAC,cAAc,GAAG,CAAC,GAAG,CAAC,CAAA,CAAA,EAAI,GAAG,CAAC,SAAS,CAAA,CAAA,EAAI,GAAG,CAAC,MAAM,CAAA,CAAE;QAClG,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC;QAEzD,IAAI,gBAAgB,EAAE;AAClB,YAAA,OAAO,gBAAgB;QAC3B;AAEA,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAQ,CAAC,oBAAoB,CAAC;YAChD,MAAM,EAAE,IAAI,CAAC,eAAgB;AAC7B,YAAA,MAAM,EAAE;gBACJ,MAAM,EAAE,IAAI,CAAC,aAAc;AAC3B,gBAAA,UAAU,EAAE,YAAY;AACxB,gBAAA,OAAO,EAAE,CAAC;AACN,wBAAA,WAAW,EAAE,iBAAiB;AAC9B,wBAAA,UAAU,EAAE,CAAC;AACT,gCAAA,cAAc,EAAE,CAAC;AACjB,gCAAA,MAAM,EAAE,CAAC;AACT,gCAAA,MAAM,EAAE,WAAW;6BACtB,EAAE;AACC,gCAAA,cAAc,EAAE,CAAC;AACjB,gCAAA,MAAM,EAAE,EAAE;AACV,gCAAA,MAAM,EAAE,UAAU;6BACrB,CAAC;qBACL,CAAC;AACL,aAAA;AACD,YAAA,QAAQ,EAAE;gBACN,MAAM,EAAE,IAAI,CAAC,aAAc;AAC3B,gBAAA,UAAU,EAAE,cAAc;AAC1B,gBAAA,OAAO,EAAE,CAAC;wBACN,MAAM,EAAE,GAAG,CAAC,MAAM;AAClB,wBAAA,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC;wBACzC,SAAS,EAAE,aAAa,CAAC,GAAG;qBAC/B,CAAC;AACL,aAAA;AACD,YAAA,SAAS,EAAE;gBACP,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,gBAAgB,EAAE,GAAG,CAAC,cAAc,GAAG,QAAQ,GAAG,SAAS;AAC9D,aAAA;AACJ,SAAA,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC;AAE1C,QAAA,OAAO,QAAQ;IACnB;AAEQ,IAAA,YAAY,CAAC,QAA6B,EAAA;QAC9C,QAAQ,QAAQ;YACZ,KAAK,mBAAmB,CAAC,MAAM;AAC3B,gBAAA,OAAO,YAAY;YACvB,KAAK,mBAAmB,CAAC,KAAK;AAC1B,gBAAA,OAAO,WAAW;YACtB,KAAK,mBAAmB,CAAC,QAAQ;YACjC,KAAK,mBAAmB,CAAC,SAAS;AAC9B,gBAAA,OAAO,YAAY;YACvB,KAAK,mBAAmB,CAAC,SAAS;YAClC,KAAK,mBAAmB,CAAC,WAAW;AAChC,gBAAA,OAAO,eAAe;YAC1B,KAAK,mBAAmB,CAAC,aAAa;AAClC,gBAAA,OAAO,gBAAgB;AAC3B,YAAA;AACI,gBAAA,MAAM,IAAI,KAAK,CAAC,yDAAyD,QAAQ,CAAA,MAAA,CAAQ,CAAC;;IAEtG;AAEQ,IAAA,gBAAgB,CAAC,KAAoB,EAAA;AACzC,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ;AACxC,QAAA,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC;AAEvC,QAAA,IAAI,WAAW,KAAK,CAAC,EAAE;AACnB,YAAA,OAAO,IAAI;QACf;AAEA,QAAA,QAAQ,KAAK,CAAC,QAAQ;YAClB,KAAK,mBAAmB,CAAC,QAAQ;AAC7B,gBAAA,OAAO,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;YAC7E,KAAK,mBAAmB,CAAC,WAAW;AAChC,gBAAA,OAAO,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;YAChF,SAAS;AACL,gBAAA,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO;gBACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC;AAClD,gBAAA,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM;AACjC,gBAAA,MAAM,cAAc,GAAG,UAAU,GAAG,CAAC,KACjC,KAAK,CAAC,QAAQ,KAAK,mBAAmB,CAAC;AACpC,uBAAA,KAAK,CAAC,QAAQ,KAAK,mBAAmB,CAAC,aAAa,CAC1D;AAED,gBAAA,IAAI,UAAU,GAAG,CAAC,EAAE;oBAChB,OAAO;wBACH,QAAQ;wBACR,cAAc;wBACd,WAAW;wBACX,OAAO;wBACP,UAAU;qBACb;gBACL;gBAEA,OAAO;oBACH,QAAQ;oBACR,cAAc;oBACd,WAAW;AACX,oBAAA,OAAO,EAAE,IAAI;AACb,oBAAA,UAAU,EAAE,CAAC;iBAChB;YACL;;IAER;IAEQ,wBAAwB,CAAC,OAAoB,EAAE,WAAmB,EAAA;QACtE,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC;AAC5F,QAAA,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM;AAExC,QAAA,IAAI,WAAW,GAAG,CAAC,EAAE;AACjB,YAAA,OAAO,IAAI;QACf;AAEA,QAAA,MAAM,cAAc,GAAG,WAAW,GAAG,CAAC;QACtC,MAAM,gBAAgB,GAAG,IAAI,CAAC,6BAA6B,CAAC,cAAc,CAAC;AAE3E,QAAA,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;QAC/D,gBAAgB,CAAC,WAAW,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC;QAEhD,OAAO;AACH,YAAA,QAAQ,EAAE,YAAY;AACtB,YAAA,cAAc,EAAE,IAAI;YACpB,WAAW;AACX,YAAA,OAAO,EAAE,gBAAgB;AACzB,YAAA,UAAU,EAAE,cAAc;SAC7B;IACL;IAEQ,2BAA2B,CAAC,OAAoB,EAAE,WAAmB,EAAA;QACzE,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC;AAC5F,QAAA,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM;AAExC,QAAA,IAAI,WAAW,GAAG,CAAC,EAAE;AACjB,YAAA,OAAO,IAAI;QACf;QAEA,MAAM,UAAU,GAAG,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC;QACxC,MAAM,gBAAgB,GAAG,IAAI,CAAC,6BAA6B,CAAC,UAAU,CAAC;QACvE,IAAI,WAAW,GAAG,CAAC;AAEnB,QAAA,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE;YAClD,gBAAgB,CAAC,WAAW,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC;YAClD,gBAAgB,CAAC,WAAW,EAAE,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC;YACtD,gBAAgB,CAAC,WAAW,EAAE,CAAC,GAAG,aAAa,CAAC,KAAK,GAAG,CAAC,CAAC;QAC9D;QAEA,OAAO;AACH,YAAA,QAAQ,EAAE,eAAe;AACzB,YAAA,cAAc,EAAE,KAAK;YACrB,WAAW;AACX,YAAA,OAAO,EAAE,gBAAgB;YACzB,UAAU;SACb;IACL;AAEQ,IAAA,qBAAqB,CAAC,WAAmB,EAAA;QAC7C,IAAI,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE;AAChD,YAAA,IAAI,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC;AAE9D,YAAA,OAAO,UAAU,GAAG,WAAW,EAAE;gBAC7B,UAAU,IAAI,CAAC;YACnB;YAEA,IAAI,CAAC,oBAAoB,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC;QAC3D;AAEA,QAAA,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,EAAE,KAAK,EAAE,EAAE;AAC9C,YAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,GAAG,KAAK;QAC5C;QAEA,OAAO,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC;IAC7D;AAEQ,IAAA,6BAA6B,CAAC,UAAkB,EAAA;QACpD,IAAI,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE;AAC9C,YAAA,IAAI,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC;AAE7D,YAAA,OAAO,UAAU,GAAG,UAAU,EAAE;gBAC5B,UAAU,IAAI,CAAC;YACnB;YAEA,IAAI,CAAC,mBAAmB,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC;QAC1D;QAEA,OAAO,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC;IAC3D;IAEQ,eAAe,GAAA;AACnB,QAAA,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE;AAC7B,QAAA,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE;AAC5B,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;AACzB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AACxB,QAAA,IAAI,CAAC,qBAAqB,GAAG,CAAC;AAC9B,QAAA,IAAI,CAAC,oBAAoB,GAAG,CAAC;IACjC;AACH;;;;"}
1
+ {"version":3,"file":"WebGpuPrimitiveRenderer.js","sources":["../../../../../src/rendering/webgpu/WebGpuPrimitiveRenderer.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAAA;AAUA,MAAM,qBAAqB,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;CAyB7B;AAED;AACA;AACA;AACA;AACA;AACA,MAAM,iBAAiB,GAAG,EAAE;AAC5B,MAAM,cAAc,GAAG,iBAAiB,GAAG,WAAW,CAAC,iBAAiB;AAsBlE,MAAO,uBAAwB,SAAQ,sBAAqC,CAAA;AAC7D,IAAA,kBAAkB,GAAW,IAAI,MAAM,EAAE;IACzC,UAAU,GAAmC,EAAE;IACxD,cAAc,GAAG,CAAC;AACT,IAAA,UAAU,GAAmC,IAAI,GAAG,EAA6B;IAE1F,OAAO,GAAqB,IAAI;IAChC,aAAa,GAA2B,IAAI;IAC5C,eAAe,GAA6B,IAAI;IAChD,aAAa,GAAqB,IAAI;IACtC,YAAY,GAAqB,IAAI;IACrC,qBAAqB,GAAG,CAAC;IACzB,oBAAoB,GAAG,CAAC;AACxB,IAAA,WAAW,GAAgB,IAAI,WAAW,CAAC,CAAC,CAAC;IAC7C,YAAY,GAAiB,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC;IAC/D,WAAW,GAAgB,IAAI,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AAC5D,IAAA,gBAAgB,GAAgB,IAAI,WAAW,CAAC,CAAC,CAAC;AAClD,IAAA,mBAAmB,GAAgB,IAAI,WAAW,CAAC,CAAC,CAAC;AACrD,IAAA,oBAAoB,GAAgB,IAAI,WAAW,CAAC,CAAC,CAAC;AAEvD,IAAA,MAAM,CAAC,KAAoB,EAAA;AAC9B,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ;AAE7B,QAAA,IAAI,OAAO,KAAK,IAAI,EAAE;AAClB,YAAA,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC;QAC7C;AAEA,QAAA,IACI,KAAK,CAAC,QAAQ,KAAK,mBAAmB,CAAC;AACpC,eAAA,KAAK,CAAC,QAAQ,KAAK,mBAAmB,CAAC;AACvC,eAAA,KAAK,CAAC,QAAQ,KAAK,mBAAmB,CAAC;AACvC,eAAA,KAAK,CAAC,QAAQ,KAAK,mBAAmB,CAAC;AACvC,eAAA,KAAK,CAAC,QAAQ,KAAK,mBAAmB,CAAC;AACvC,eAAA,KAAK,CAAC,QAAQ,KAAK,mBAAmB,CAAC;AACvC,eAAA,KAAK,CAAC,QAAQ,KAAK,mBAAmB,CAAC,aAAa,EACzD;YACE,MAAM,IAAI,KAAK,CAAC,CAAA,sDAAA,EAAyD,KAAK,CAAC,QAAQ,CAAA,MAAA,CAAQ,CAAC;QACpG;AAEA,QAAA,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC;QAErC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YACtC;QACJ;AACA,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,EAAE;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QAE/C,IAAI,QAAQ,EAAE;AACV,YAAA,QAAQ,CAAC,KAAK,GAAG,KAAK;AACtB,YAAA,QAAQ,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS;QACxC;aAAO;AACH,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBACjB,KAAK;gBACL,SAAS,EAAE,KAAK,CAAC,SAAS;AAC7B,aAAA,CAAC;QACN;IACJ;IAEO,KAAK,GAAA;AACR,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ;AAC7B,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO;AAE3B,QAAA,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,EAAE;YACrB;QACJ;QAEA,IAAI,IAAI,CAAC,cAAc,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;YACtD;QACJ;AAEA,QAAA,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,EAAE;AACxC,QAAA,MAAM,YAAY,GAAG,OAAO,KAAK,IAAI,KAAK,OAAO,CAAC,KAAK,IAAI,CAAC,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;;;;QAapF,MAAM,IAAI,GAA6B,EAAE;QACzC,MAAM,iBAAiB,GAA4C,EAAE;QACrE,IAAI,aAAa,GAAG,CAAC;QACrB,IAAI,YAAY,GAAG,CAAC;QAEpB,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE;AAC1C,YAAA,KAAK,IAAI,aAAa,GAAG,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC,cAAc,EAAE,aAAa,EAAE,EAAE;gBAC9E,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;AAC/C,gBAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK;gBAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;AAE7C,gBAAA,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC;AAEhC,gBAAA,IAAI,QAAQ,KAAK,IAAI,EAAE;oBACnB;gBACJ;AAEA,gBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC;oBAC/B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;oBAC3B,cAAc,EAAE,QAAQ,CAAC,cAAc;oBACvC,SAAS,EAAE,QAAQ,CAAC,SAAS;oBAC7B,MAAM,EAAE,OAAO,CAAC,kBAAkB;AACrC,iBAAA,CAAC;gBAEF,IAAI,CAAC,IAAI,CAAC;oBACN,QAAQ;oBACR,gBAAgB,EAAE,aAAa,GAAG,iBAAiB;oBACnD,WAAW,EAAE,QAAQ,CAAC,WAAW;AACjC,oBAAA,eAAe,EAAE,YAAY,GAAG,WAAW,CAAC,iBAAiB;oBAC7D,UAAU,EAAE,QAAQ,CAAC,UAAU;AAClC,iBAAA,CAAC;AAEF,gBAAA,aAAa,IAAI,QAAQ,CAAC,WAAW;AACrC,gBAAA,YAAY,IAAI,QAAQ,CAAC,UAAU;YACvC;QACJ;;;;AAKA,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACnB,YAAA,IAAI,OAAO,CAAC,cAAc,EAAE;AACxB,gBAAA,MAAM,OAAO,GAAG,MAAM,CAAC,oBAAoB,EAAE;AAC7C,gBAAA,MAAM,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC;AACjC,oBAAA,gBAAgB,EAAE,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;AACtD,iBAAA,CAAC;AACF,gBAAA,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE;gBAC5B,IAAI,CAAC,GAAG,EAAE;gBACV,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACpC;AACA,YAAA,IAAI,CAAC,cAAc,GAAG,CAAC;YACvB;QACJ;;;;;AAMA,QAAA,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC;AACzC,QAAA,IAAI,YAAY,GAAG,CAAC,EAAE;AAClB,YAAA,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC;YACvC,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,YAAY,EAAE;AAC7C,gBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,WAAW,CACnC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CACpG;YACL;QACJ;QAEA;YACI,IAAI,OAAO,GAAG,CAAC;YACf,IAAI,OAAO,GAAG,CAAC;AAGf,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,EAAE,EAAE;AAC1C,gBAAA,MAAM,QAAQ,GAAG,iBAAiB,CAAC,CAAC,CAAC;AAErC,gBAAA,IAAI,QAAQ,KAAK,IAAI,EAAE;oBACnB;gBACJ;gBAEA,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AACnC,gBAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK;gBAE5B,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC;AAEjD,gBAAA,IAAI,QAAQ,CAAC,OAAO,KAAK,IAAI,IAAI,QAAQ,CAAC,UAAU,GAAG,CAAC,EAAE;oBACtD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;AACrF,oBAAA,OAAO,IAAI,QAAQ,CAAC,UAAU;gBAClC;AAEA,gBAAA,OAAO,IAAI,QAAQ,CAAC,WAAW;YAEnC;QACJ;;QAGA,MAAM,CAAC,KAAK,CAAC,WAAW,CACpB,IAAI,CAAC,aAAc,EACnB,CAAC,EACD,IAAI,CAAC,WAAW,EAChB,CAAC,EACD,aAAa,GAAG,iBAAiB,CACpC;AACD,QAAA,IAAI,YAAY,GAAG,CAAC,EAAE;AAClB,YAAA,MAAM,CAAC,KAAK,CAAC,WAAW,CACpB,IAAI,CAAC,YAAa,EAClB,CAAC,EACD,IAAI,CAAC,gBAAgB,CAAC,MAAqB,EAC3C,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAChC,YAAY,GAAG,WAAW,CAAC,iBAAiB,CAC/C;QACL;;;;AAKA,QAAA,MAAM,OAAO,GAAG,MAAM,CAAC,oBAAoB,EAAE;AAC7C,QAAA,MAAM,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC;AACjC,YAAA,gBAAgB,EAAE,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;AACtD,SAAA,CAAC;AACF,QAAA,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE;AAE5B,QAAA,IAAI,OAAO,KAAK,IAAI,EAAE;AAClB,YAAA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC;QAC5E;AAEA,QAAA,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE;AACxB,YAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC;AAClC,YAAA,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,aAAc,EAAE,OAAO,CAAC,gBAAgB,CAAC;AAEtE,YAAA,IAAI,OAAO,CAAC,UAAU,GAAG,CAAC,EAAE;AACxB,gBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAa,EAAE,QAAQ,EAAE,OAAO,CAAC,eAAe,CAAC;AAC1E,gBAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC;YACxC;iBAAO;AACH,gBAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;YAClC;AAEA,YAAA,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE;AACvB,YAAA,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE;QAC7B;QAEA,IAAI,CAAC,GAAG,EAAE;QACV,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;AAChC,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC;IAC3B;IAEO,OAAO,GAAA;QACV,IAAI,CAAC,UAAU,EAAE;AACjB,QAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;IACrC;AAEU,IAAA,SAAS,CAAC,OAAsB,EAAA;AACtC,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAwB;QACxC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM;AACnC,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC;;;QAGrF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC;AACrD,YAAA,gBAAgB,EAAE,EAAE;AACvB,SAAA,CAAC;IACN;IAEU,YAAY,GAAA;QAClB,IAAI,CAAC,KAAK,EAAE;QACZ,IAAI,CAAC,eAAe,EAAE;AACtB,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;AAEvB,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI;AAC3B,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;AACzB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC;IAC3B;AAEQ,IAAA,mBAAmB,CAAC,OAAsB,EAAE,KAAoB,EAAE,WAAmB,EAAA;;;;;;;;AAQzF,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC;AACf,aAAA,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE;aAC/B,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;AAyBzC,QAAA,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;AAClB,QAAA,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;AAClB,QAAA,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;AAClB,QAAA,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;AAClB,QAAA,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC;AACnB,QAAA,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC;AACnB,QAAA,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC;QAEnB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE;AAClC,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ;AACxC,QAAA,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC;AAEvC,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;AAClC,YAAA,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC;YACzB,MAAM,WAAW,GAAG,CAAC,WAAW,GAAG,CAAC,IAAI,cAAc;AACtD,YAAA,MAAM,EAAE,GAAG,QAAQ,CAAC,WAAW,CAAC;YAChC,MAAM,EAAE,GAAG,QAAQ,CAAC,WAAW,GAAG,CAAC,CAAC;AAEpC,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE;AACzD,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE;YACzD,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC;YACtC,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,EAAE;YACvC,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,KAAK;QAC7C;IACJ;AAEQ,IAAA,qBAAqB,CAAC,WAAmB,EAAA;AAC7C,QAAA,MAAM,aAAa,GAAG,WAAW,GAAG,iBAAiB;QAErD,IAAI,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE;AAC7C,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,UAAU,KAAK,CAAC,GAAG,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,CAAC,CAAC;YAEnI,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC;YAC9C,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC;YACtD,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;QACxD;AAEA,QAAA,IAAI,aAAa,GAAG,IAAI,CAAC,qBAAqB,EAAE;AAC5C,YAAA,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE;YAC7B,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,qBAAqB,KAAK,CAAC,GAAG,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC;YAC3I,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAQ,CAAC,YAAY,CAAC;gBAC5C,IAAI,EAAE,IAAI,CAAC,qBAAqB;AAChC,gBAAA,KAAK,EAAE,cAAc,CAAC,MAAM,GAAG,cAAc,CAAC,QAAQ;AACzD,aAAA,CAAC;QACN;IACJ;AAEQ,IAAA,oBAAoB,CAAC,UAAkB,EAAA;AAC3C,QAAA,MAAM,aAAa,GAAG,UAAU,GAAG,WAAW,CAAC,iBAAiB;AAEhE,QAAA,IAAI,aAAa,GAAG,IAAI,CAAC,oBAAoB,EAAE;AAC3C,YAAA,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE;AAC5B,YAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,oBAAoB,KAAK,CAAC,GAAG,WAAW,CAAC,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;YACpJ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAQ,CAAC,YAAY,CAAC;gBAC3C,IAAI,EAAE,IAAI,CAAC,oBAAoB;AAC/B,gBAAA,KAAK,EAAE,cAAc,CAAC,KAAK,GAAG,cAAc,CAAC,QAAQ;AACxD,aAAA,CAAC;QACN;IACJ;AAEQ,IAAA,YAAY,CAAC,GAA+B,EAAA;QAChD,MAAM,WAAW,GAAG,CAAA,EAAG,GAAG,CAAC,QAAQ,CAAA,CAAA,EAAI,GAAG,CAAC,cAAc,GAAG,CAAC,GAAG,CAAC,CAAA,CAAA,EAAI,GAAG,CAAC,SAAS,CAAA,CAAA,EAAI,GAAG,CAAC,MAAM,CAAA,CAAE;QAClG,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC;QAEzD,IAAI,gBAAgB,EAAE;AAClB,YAAA,OAAO,gBAAgB;QAC3B;AAEA,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAQ,CAAC,oBAAoB,CAAC;YAChD,MAAM,EAAE,IAAI,CAAC,eAAgB;AAC7B,YAAA,MAAM,EAAE;gBACJ,MAAM,EAAE,IAAI,CAAC,aAAc;AAC3B,gBAAA,UAAU,EAAE,YAAY;AACxB,gBAAA,OAAO,EAAE,CAAC;AACN,wBAAA,WAAW,EAAE,iBAAiB;AAC9B,wBAAA,UAAU,EAAE,CAAC;AACT,gCAAA,cAAc,EAAE,CAAC;AACjB,gCAAA,MAAM,EAAE,CAAC;AACT,gCAAA,MAAM,EAAE,WAAW;6BACtB,EAAE;AACC,gCAAA,cAAc,EAAE,CAAC;AACjB,gCAAA,MAAM,EAAE,EAAE;AACV,gCAAA,MAAM,EAAE,UAAU;6BACrB,CAAC;qBACL,CAAC;AACL,aAAA;AACD,YAAA,QAAQ,EAAE;gBACN,MAAM,EAAE,IAAI,CAAC,aAAc;AAC3B,gBAAA,UAAU,EAAE,cAAc;AAC1B,gBAAA,OAAO,EAAE,CAAC;wBACN,MAAM,EAAE,GAAG,CAAC,MAAM;AAClB,wBAAA,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC;wBACzC,SAAS,EAAE,aAAa,CAAC,GAAG;qBAC/B,CAAC;AACL,aAAA;AACD,YAAA,SAAS,EAAE;gBACP,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,gBAAgB,EAAE,GAAG,CAAC,cAAc,GAAG,QAAQ,GAAG,SAAS;AAC9D,aAAA;AACJ,SAAA,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC;AAE1C,QAAA,OAAO,QAAQ;IACnB;AAEQ,IAAA,YAAY,CAAC,QAA6B,EAAA;QAC9C,QAAQ,QAAQ;YACZ,KAAK,mBAAmB,CAAC,MAAM;AAC3B,gBAAA,OAAO,YAAY;YACvB,KAAK,mBAAmB,CAAC,KAAK;AAC1B,gBAAA,OAAO,WAAW;YACtB,KAAK,mBAAmB,CAAC,QAAQ;YACjC,KAAK,mBAAmB,CAAC,SAAS;AAC9B,gBAAA,OAAO,YAAY;YACvB,KAAK,mBAAmB,CAAC,SAAS;YAClC,KAAK,mBAAmB,CAAC,WAAW;AAChC,gBAAA,OAAO,eAAe;YAC1B,KAAK,mBAAmB,CAAC,aAAa;AAClC,gBAAA,OAAO,gBAAgB;AAC3B,YAAA;AACI,gBAAA,MAAM,IAAI,KAAK,CAAC,yDAAyD,QAAQ,CAAA,MAAA,CAAQ,CAAC;;IAEtG;AAEQ,IAAA,gBAAgB,CAAC,KAAoB,EAAA;AACzC,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ;AACxC,QAAA,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC;AAEvC,QAAA,IAAI,WAAW,KAAK,CAAC,EAAE;AACnB,YAAA,OAAO,IAAI;QACf;AAEA,QAAA,QAAQ,KAAK,CAAC,QAAQ;YAClB,KAAK,mBAAmB,CAAC,QAAQ;AAC7B,gBAAA,OAAO,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;YAC7E,KAAK,mBAAmB,CAAC,WAAW;AAChC,gBAAA,OAAO,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;YAChF,SAAS;AACL,gBAAA,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO;gBACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC;AAClD,gBAAA,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM;AACjC,gBAAA,MAAM,cAAc,GAAG,UAAU,GAAG,CAAC,KACjC,KAAK,CAAC,QAAQ,KAAK,mBAAmB,CAAC;AACpC,uBAAA,KAAK,CAAC,QAAQ,KAAK,mBAAmB,CAAC,aAAa,CAC1D;AAED,gBAAA,IAAI,UAAU,GAAG,CAAC,EAAE;oBAChB,OAAO;wBACH,QAAQ;wBACR,cAAc;wBACd,WAAW;wBACX,OAAO;wBACP,UAAU;qBACb;gBACL;gBAEA,OAAO;oBACH,QAAQ;oBACR,cAAc;oBACd,WAAW;AACX,oBAAA,OAAO,EAAE,IAAI;AACb,oBAAA,UAAU,EAAE,CAAC;iBAChB;YACL;;IAER;IAEQ,wBAAwB,CAAC,OAAoB,EAAE,WAAmB,EAAA;QACtE,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC;AAC5F,QAAA,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM;AAExC,QAAA,IAAI,WAAW,GAAG,CAAC,EAAE;AACjB,YAAA,OAAO,IAAI;QACf;AAEA,QAAA,MAAM,cAAc,GAAG,WAAW,GAAG,CAAC;QACtC,MAAM,gBAAgB,GAAG,IAAI,CAAC,6BAA6B,CAAC,cAAc,CAAC;AAE3E,QAAA,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;QAC/D,gBAAgB,CAAC,WAAW,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC;QAEhD,OAAO;AACH,YAAA,QAAQ,EAAE,YAAY;AACtB,YAAA,cAAc,EAAE,IAAI;YACpB,WAAW;AACX,YAAA,OAAO,EAAE,gBAAgB;AACzB,YAAA,UAAU,EAAE,cAAc;SAC7B;IACL;IAEQ,2BAA2B,CAAC,OAAoB,EAAE,WAAmB,EAAA;QACzE,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC;AAC5F,QAAA,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM;AAExC,QAAA,IAAI,WAAW,GAAG,CAAC,EAAE;AACjB,YAAA,OAAO,IAAI;QACf;QAEA,MAAM,UAAU,GAAG,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC;QACxC,MAAM,gBAAgB,GAAG,IAAI,CAAC,6BAA6B,CAAC,UAAU,CAAC;QACvE,IAAI,WAAW,GAAG,CAAC;AAEnB,QAAA,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE;YAClD,gBAAgB,CAAC,WAAW,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC;YAClD,gBAAgB,CAAC,WAAW,EAAE,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC;YACtD,gBAAgB,CAAC,WAAW,EAAE,CAAC,GAAG,aAAa,CAAC,KAAK,GAAG,CAAC,CAAC;QAC9D;QAEA,OAAO;AACH,YAAA,QAAQ,EAAE,eAAe;AACzB,YAAA,cAAc,EAAE,KAAK;YACrB,WAAW;AACX,YAAA,OAAO,EAAE,gBAAgB;YACzB,UAAU;SACb;IACL;AAEQ,IAAA,qBAAqB,CAAC,WAAmB,EAAA;QAC7C,IAAI,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE;AAChD,YAAA,IAAI,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC;AAE9D,YAAA,OAAO,UAAU,GAAG,WAAW,EAAE;gBAC7B,UAAU,IAAI,CAAC;YACnB;YAEA,IAAI,CAAC,oBAAoB,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC;QAC3D;AAEA,QAAA,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,EAAE,KAAK,EAAE,EAAE;AAC9C,YAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,GAAG,KAAK;QAC5C;QAEA,OAAO,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC;IAC7D;AAEQ,IAAA,6BAA6B,CAAC,UAAkB,EAAA;QACpD,IAAI,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE;AAC9C,YAAA,IAAI,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC;AAE7D,YAAA,OAAO,UAAU,GAAG,UAAU,EAAE;gBAC5B,UAAU,IAAI,CAAC;YACnB;YAEA,IAAI,CAAC,mBAAmB,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC;QAC1D;QAEA,OAAO,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC;IAC3D;IAEQ,eAAe,GAAA;AACnB,QAAA,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE;AAC7B,QAAA,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE;AAC5B,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;AACzB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AACxB,QAAA,IAAI,CAAC,qBAAqB,GAAG,CAAC;AAC9B,QAAA,IAAI,CAAC,oBAAoB,GAAG,CAAC;IACjC;AACH;;;;"}