@luma.gl/webgpu 9.0.0-beta.4 → 9.0.0-beta.5

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 (60) hide show
  1. package/dist/adapter/helpers/accessor-to-format.js +99 -1
  2. package/dist/adapter/helpers/convert-texture-format.js +5 -5
  3. package/dist/adapter/helpers/generate-mipmaps.js +76 -82
  4. package/dist/adapter/helpers/get-bind-group.js +54 -41
  5. package/dist/adapter/helpers/get-vertex-buffer-layout.js +110 -80
  6. package/dist/adapter/helpers/webgpu-parameters.js +182 -125
  7. package/dist/adapter/resources/webgpu-buffer.js +110 -62
  8. package/dist/adapter/resources/webgpu-command-encoder.js +73 -49
  9. package/dist/adapter/resources/webgpu-compute-pass.js +54 -41
  10. package/dist/adapter/resources/webgpu-compute-pipeline.js +24 -19
  11. package/dist/adapter/resources/webgpu-external-texture.js +29 -19
  12. package/dist/adapter/resources/webgpu-framebuffer.js +11 -7
  13. package/dist/adapter/resources/webgpu-query.js +42 -1
  14. package/dist/adapter/resources/webgpu-render-pass.js +115 -105
  15. package/dist/adapter/resources/webgpu-render-pipeline.js +148 -83
  16. package/dist/adapter/resources/webgpu-sampler.js +18 -15
  17. package/dist/adapter/resources/webgpu-shader.js +55 -45
  18. package/dist/adapter/resources/webgpu-texture.js +129 -109
  19. package/dist/adapter/resources/webgpu-vertex-array.d.ts +4 -1
  20. package/dist/adapter/resources/webgpu-vertex-array.d.ts.map +1 -1
  21. package/dist/adapter/resources/webgpu-vertex-array.js +64 -41
  22. package/dist/adapter/webgpu-canvas-context.d.ts.map +1 -1
  23. package/dist/adapter/webgpu-canvas-context.js +100 -69
  24. package/dist/adapter/webgpu-device.d.ts.map +1 -1
  25. package/dist/adapter/webgpu-device.js +257 -230
  26. package/dist/adapter/webgpu-types.js +0 -2
  27. package/dist/dist.dev.js +661 -2178
  28. package/dist/glsl/glsllang.js +9 -6
  29. package/dist/index.cjs +58 -239
  30. package/dist/index.cjs.map +7 -0
  31. package/dist/index.js +9 -6
  32. package/dist.min.js +1 -22
  33. package/package.json +9 -7
  34. package/src/adapter/resources/webgpu-vertex-array.ts +5 -2
  35. package/src/adapter/webgpu-canvas-context.ts +1 -0
  36. package/src/adapter/webgpu-device.ts +16 -36
  37. package/dist/adapter/helpers/accessor-to-format.js.map +0 -1
  38. package/dist/adapter/helpers/convert-texture-format.js.map +0 -1
  39. package/dist/adapter/helpers/generate-mipmaps.js.map +0 -1
  40. package/dist/adapter/helpers/get-bind-group.js.map +0 -1
  41. package/dist/adapter/helpers/get-vertex-buffer-layout.js.map +0 -1
  42. package/dist/adapter/helpers/webgpu-parameters.js.map +0 -1
  43. package/dist/adapter/resources/webgpu-buffer.js.map +0 -1
  44. package/dist/adapter/resources/webgpu-command-encoder.js.map +0 -1
  45. package/dist/adapter/resources/webgpu-compute-pass.js.map +0 -1
  46. package/dist/adapter/resources/webgpu-compute-pipeline.js.map +0 -1
  47. package/dist/adapter/resources/webgpu-external-texture.js.map +0 -1
  48. package/dist/adapter/resources/webgpu-framebuffer.js.map +0 -1
  49. package/dist/adapter/resources/webgpu-query.js.map +0 -1
  50. package/dist/adapter/resources/webgpu-render-pass.js.map +0 -1
  51. package/dist/adapter/resources/webgpu-render-pipeline.js.map +0 -1
  52. package/dist/adapter/resources/webgpu-sampler.js.map +0 -1
  53. package/dist/adapter/resources/webgpu-shader.js.map +0 -1
  54. package/dist/adapter/resources/webgpu-texture.js.map +0 -1
  55. package/dist/adapter/resources/webgpu-vertex-array.js.map +0 -1
  56. package/dist/adapter/webgpu-canvas-context.js.map +0 -1
  57. package/dist/adapter/webgpu-device.js.map +0 -1
  58. package/dist/adapter/webgpu-types.js.map +0 -1
  59. package/dist/glsl/glsllang.js.map +0 -1
  60. package/dist/index.js.map +0 -1
@@ -1,45 +1,68 @@
1
- let _Symbol$toStringTag;
1
+ // luma.gl, MIT license
2
+ // Copyright (c) vis.gl contributors
2
3
  import { VertexArray, log } from '@luma.gl/core';
3
4
  import { getBrowser } from '@probe.gl/env';
4
- _Symbol$toStringTag = Symbol.toStringTag;
5
+ /** VertexArrayObject wrapper */
5
6
  export class WebGPUVertexArray extends VertexArray {
6
- get [_Symbol$toStringTag]() {
7
- return 'WebGPUVertexArray';
8
- }
9
- static isConstantAttributeZeroSupported(device) {
10
- return device.info.type === 'webgl2' || getBrowser() === 'Chrome';
11
- }
12
- constructor(device, props) {
13
- super(device, props);
14
- this.device = void 0;
15
- this.handle = void 0;
16
- this.device = device;
17
- }
18
- destroy() {}
19
- setIndexBuffer(buffer) {
20
- this.indexBuffer = buffer;
21
- }
22
- setBuffer(bufferSlot, buffer) {
23
- this.attributes[bufferSlot] = buffer;
24
- }
25
- setConstant(location, value) {
26
- log.warn(`${this.id} constant attributes not supported on WebGPU`);
27
- }
28
- bindBeforeRender(renderPass, firstIndex, indexCount) {
29
- const webgpuRenderPass = renderPass;
30
- const webgpuIndexBuffer = this.indexBuffer;
31
- if (webgpuIndexBuffer !== null && webgpuIndexBuffer !== void 0 && webgpuIndexBuffer.handle) {
32
- log.warn('setting index buffer', webgpuIndexBuffer === null || webgpuIndexBuffer === void 0 ? void 0 : webgpuIndexBuffer.handle, webgpuIndexBuffer === null || webgpuIndexBuffer === void 0 ? void 0 : webgpuIndexBuffer.indexType)();
33
- webgpuRenderPass.handle.setIndexBuffer(webgpuIndexBuffer === null || webgpuIndexBuffer === void 0 ? void 0 : webgpuIndexBuffer.handle, webgpuIndexBuffer === null || webgpuIndexBuffer === void 0 ? void 0 : webgpuIndexBuffer.indexType);
34
- }
35
- for (let location = 0; location < this.maxVertexAttributes; location++) {
36
- const webgpuBuffer = this.attributes[location];
37
- if (webgpuBuffer !== null && webgpuBuffer !== void 0 && webgpuBuffer.handle) {
38
- log.warn(`setting vertex buffer ${location}`, webgpuBuffer === null || webgpuBuffer === void 0 ? void 0 : webgpuBuffer.handle)();
39
- webgpuRenderPass.handle.setVertexBuffer(location, webgpuBuffer === null || webgpuBuffer === void 0 ? void 0 : webgpuBuffer.handle);
40
- }
41
- }
42
- }
43
- unbindAfterRender(renderPass) {}
7
+ get [Symbol.toStringTag]() {
8
+ return 'WebGPUVertexArray';
9
+ }
10
+ device;
11
+ /** Vertex Array is a helper class under WebGPU */
12
+ handle;
13
+ /**
14
+ * Attribute 0 can not be disable on most desktop OpenGL based browsers
15
+ * TODO is this even an issue for WebGPU?
16
+ */
17
+ static isConstantAttributeZeroSupported(device) {
18
+ return getBrowser() === 'Chrome';
19
+ }
20
+ // Create a VertexArray
21
+ constructor(device, props) {
22
+ super(device, props);
23
+ this.device = device;
24
+ }
25
+ destroy() { }
26
+ /**
27
+ * Set an elements buffer, for indexed rendering.
28
+ * Must be a Buffer bound to buffer with usage bit Buffer.INDEX set.
29
+ */
30
+ setIndexBuffer(buffer) {
31
+ // assert(!elementBuffer || elementBuffer.glTarget === GL.ELEMENT_ARRAY_BUFFER, ERR_ELEMENTS);
32
+ this.indexBuffer = buffer;
33
+ }
34
+ /** Set a bufferSlot in vertex attributes array to a buffer, enables the bufferSlot, sets divisor */
35
+ setBuffer(bufferSlot, buffer) {
36
+ // Sanity check target
37
+ // if (buffer.glUsage === GL.ELEMENT_ARRAY_BUFFER) {
38
+ // throw new Error('Use setIndexBuffer');
39
+ // }
40
+ this.attributes[bufferSlot] = buffer;
41
+ }
42
+ /** Set a location in vertex attributes array to a constant value, disables the location */
43
+ setConstant(location, value) {
44
+ log.warn(`${this.id} constant attributes not supported on WebGPU`);
45
+ }
46
+ bindBeforeRender(renderPass, firstIndex, indexCount) {
47
+ const webgpuRenderPass = renderPass;
48
+ const webgpuIndexBuffer = this.indexBuffer;
49
+ if (webgpuIndexBuffer?.handle) {
50
+ // Note we can't unset an index buffer
51
+ log.warn('setting index buffer', webgpuIndexBuffer?.handle, webgpuIndexBuffer?.indexType)();
52
+ webgpuRenderPass.handle.setIndexBuffer(webgpuIndexBuffer?.handle, webgpuIndexBuffer?.indexType);
53
+ }
54
+ for (let location = 0; location < this.maxVertexAttributes; location++) {
55
+ const webgpuBuffer = this.attributes[location];
56
+ if (webgpuBuffer?.handle) {
57
+ log.warn(`setting vertex buffer ${location}`, webgpuBuffer?.handle)();
58
+ webgpuRenderPass.handle.setVertexBuffer(location, webgpuBuffer?.handle);
59
+ }
60
+ }
61
+ // TODO - emit warnings/errors/throw if constants have been set on this vertex array
62
+ }
63
+ unbindAfterRender(renderPass) {
64
+ // On WebGPU we don't need to unbind.
65
+ // In fact we can't easily do it. setIndexBuffer/setVertexBuffer don't accept null.
66
+ // Unbinding presumably happens automatically when the render pass is ended.
67
+ }
44
68
  }
45
- //# sourceMappingURL=webgpu-vertex-array.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"webgpu-canvas-context.d.ts","sourceRoot":"","sources":["../../src/adapter/webgpu-canvas-context.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,EAAC,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAC,MAAM,eAAe,CAAC;AAC9E,OAAO,EAAC,aAAa,EAAM,MAAM,eAAe,CAAC;AAEjD,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAC,iBAAiB,EAAC,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAC,aAAa,EAAC,MAAM,4BAA4B,CAAC;AAEzD;;;;GAIG;AACH,qBAAa,mBAAoB,SAAQ,aAAa;IACpD,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C,8EAA8E;IAC9E,QAAQ,CAAC,MAAM,EAAE,aAAa,CAA4C;IAC1E,gDAAgD;IAChD,kBAAkB,EAAE,aAAa,CAAiB;IAElD,OAAO,CAAC,sBAAsB,CAAwB;gBAE1C,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,kBAAkB;IAehF,2FAA2F;IAC3F,OAAO,IAAI,IAAI;IAIf,0EAA0E;IAC1E,qBAAqB,IAAI,iBAAiB;IA2B1C,sDAAsD;IACtD,MAAM;IA6BN,MAAM,CAAC,OAAO,CAAC,EAAE;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;KAAC,GAAG,IAAI;IAI7F,mEAAmE;IACnE,iBAAiB,IAAI,aAAa;IAOlC,8FAA8F;IAC9F,6BAA6B;CAY9B"}
1
+ {"version":3,"file":"webgpu-canvas-context.d.ts","sourceRoot":"","sources":["../../src/adapter/webgpu-canvas-context.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,EAAC,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAC,MAAM,eAAe,CAAC;AAC9E,OAAO,EAAC,aAAa,EAAM,MAAM,eAAe,CAAC;AAEjD,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAC,iBAAiB,EAAC,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAC,aAAa,EAAC,MAAM,4BAA4B,CAAC;AAEzD;;;;GAIG;AACH,qBAAa,mBAAoB,SAAQ,aAAa;IACpD,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C,8EAA8E;IAE9E,QAAQ,CAAC,MAAM,EAAE,aAAa,CAA4C;IAC1E,gDAAgD;IAChD,kBAAkB,EAAE,aAAa,CAAiB;IAElD,OAAO,CAAC,sBAAsB,CAAwB;gBAE1C,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,kBAAkB;IAehF,2FAA2F;IAC3F,OAAO,IAAI,IAAI;IAIf,0EAA0E;IAC1E,qBAAqB,IAAI,iBAAiB;IA2B1C,sDAAsD;IACtD,MAAM;IA6BN,MAAM,CAAC,OAAO,CAAC,EAAE;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;KAAC,GAAG,IAAI;IAI7F,mEAAmE;IACnE,iBAAiB,IAAI,aAAa;IAOlC,8FAA8F;IAC9F,6BAA6B;CAY9B"}
@@ -1,74 +1,105 @@
1
1
  import { CanvasContext, log } from '@luma.gl/core';
2
- import { getWebGPUTextureFormat } from "./helpers/convert-texture-format.js";
3
- import { WebGPUFramebuffer } from "./resources/webgpu-framebuffer.js";
2
+ import { getWebGPUTextureFormat } from './helpers/convert-texture-format';
3
+ import { WebGPUFramebuffer } from './resources/webgpu-framebuffer';
4
+ /**
5
+ * Holds a WebGPU Canvas Context
6
+ * The primary job of the CanvasContext is to generate textures for rendering into the current canvas
7
+ * It also manages canvas sizing calculations and resizing.
8
+ */
4
9
  export class WebGPUCanvasContext extends CanvasContext {
5
- constructor(device, adapter, props) {
6
- super(props);
7
- this.device = void 0;
8
- this.gpuCanvasContext = void 0;
9
- this.format = navigator.gpu.getPreferredCanvasFormat();
10
- this.depthStencilFormat = 'depth24plus';
11
- this.depthStencilAttachment = null;
12
- this.device = device;
13
- this.width = -1;
14
- this.height = -1;
15
- this._setAutoCreatedCanvasId(`${this.device.id}-canvas`);
16
- this.gpuCanvasContext = this.canvas.getContext('webgpu');
17
- this.format = 'bgra8unorm';
18
- }
19
- destroy() {
20
- this.gpuCanvasContext.unconfigure();
21
- }
22
- getCurrentFramebuffer() {
23
- this.update();
24
- const currentColorAttachment = this.getCurrentTexture();
25
- this.width = currentColorAttachment.width;
26
- this.height = currentColorAttachment.height;
27
- this._createDepthStencilAttachment();
28
- return new WebGPUFramebuffer(this.device, {
29
- colorAttachments: [currentColorAttachment],
30
- depthStencilAttachment: this.depthStencilAttachment
31
- });
32
- }
33
- update() {
34
- const [width, height] = this.getPixelSize();
35
- const sizeChanged = width !== this.width || height !== this.height;
36
- if (sizeChanged) {
37
- this.width = width;
38
- this.height = height;
39
- if (this.depthStencilAttachment) {
40
- this.depthStencilAttachment.destroy();
41
- this.depthStencilAttachment = null;
42
- }
43
- this.gpuCanvasContext.configure({
44
- device: this.device.handle,
45
- format: getWebGPUTextureFormat(this.format),
46
- colorSpace: this.props.colorSpace,
47
- alphaMode: this.props.alphaMode
48
- });
49
- log.log(1, `Resized to ${this.width}x${this.height}px`)();
10
+ device;
11
+ gpuCanvasContext;
12
+ /** Format of returned textures: "bgra8unorm", "rgba8unorm", "rgba16float". */
13
+ // @ts-ignore - TODO - fix this
14
+ format = navigator.gpu.getPreferredCanvasFormat();
15
+ /** Default stencil format for depth textures */
16
+ depthStencilFormat = 'depth24plus';
17
+ depthStencilAttachment = null;
18
+ constructor(device, adapter, props) {
19
+ super(props);
20
+ this.device = device;
21
+ // TODO - hack to trigger resize?
22
+ this.width = -1;
23
+ this.height = -1;
24
+ this._setAutoCreatedCanvasId(`${this.device.id}-canvas`);
25
+ // @ts-ignore TODO - we don't handle OffscreenRenderingContext.
26
+ this.gpuCanvasContext = this.canvas.getContext('webgpu');
27
+ // TODO this has been replaced
28
+ // this.format = this.gpuCanvasContext.getPreferredFormat(adapter);
29
+ this.format = 'bgra8unorm';
50
30
  }
51
- }
52
- resize(options) {
53
- this.update();
54
- }
55
- getCurrentTexture() {
56
- return this.device._createTexture({
57
- id: `${this.id}#color-texture`,
58
- handle: this.gpuCanvasContext.getCurrentTexture()
59
- });
60
- }
61
- _createDepthStencilAttachment() {
62
- if (!this.depthStencilAttachment) {
63
- this.depthStencilAttachment = this.device.createTexture({
64
- id: `${this.id}#depth-stencil-texture`,
65
- format: this.depthStencilFormat,
66
- width: this.width,
67
- height: this.height,
68
- usage: GPUTextureUsage.RENDER_ATTACHMENT
69
- });
31
+ /** Destroy any textures produced while configured and remove the context configuration. */
32
+ destroy() {
33
+ this.gpuCanvasContext.unconfigure();
34
+ }
35
+ /** Update framebuffer with properly resized "swap chain" texture views */
36
+ getCurrentFramebuffer() {
37
+ // Ensure the canvas context size is updated
38
+ this.update();
39
+ // Wrap the current canvas context texture in a luma.gl texture
40
+ // const currentColorAttachment = this.device.createTexture({
41
+ // id: 'default-render-target',
42
+ // handle: this.gpuCanvasContext.getCurrentTexture(),
43
+ // format: this.format,
44
+ // width: this.width,
45
+ // height: this.height
46
+ // });
47
+ // Wrap the current canvas context texture in a luma.gl texture
48
+ const currentColorAttachment = this.getCurrentTexture();
49
+ this.width = currentColorAttachment.width;
50
+ this.height = currentColorAttachment.height;
51
+ // Resize the depth stencil attachment
52
+ this._createDepthStencilAttachment();
53
+ return new WebGPUFramebuffer(this.device, {
54
+ colorAttachments: [currentColorAttachment],
55
+ depthStencilAttachment: this.depthStencilAttachment
56
+ });
57
+ }
58
+ /** Resizes and updates render targets if necessary */
59
+ update() {
60
+ const [width, height] = this.getPixelSize();
61
+ const sizeChanged = width !== this.width || height !== this.height;
62
+ if (sizeChanged) {
63
+ this.width = width;
64
+ this.height = height;
65
+ if (this.depthStencilAttachment) {
66
+ this.depthStencilAttachment.destroy();
67
+ this.depthStencilAttachment = null;
68
+ }
69
+ // Reconfigure the canvas size.
70
+ // https://www.w3.org/TR/webgpu/#canvas-configuration
71
+ this.gpuCanvasContext.configure({
72
+ device: this.device.handle,
73
+ format: getWebGPUTextureFormat(this.format),
74
+ // Can be used to define e.g. -srgb views
75
+ // viewFormats: [...]
76
+ colorSpace: this.props.colorSpace,
77
+ alphaMode: this.props.alphaMode
78
+ });
79
+ log.log(1, `Resized to ${this.width}x${this.height}px`)();
80
+ }
81
+ }
82
+ resize(options) {
83
+ this.update();
84
+ }
85
+ /** Wrap the current canvas context texture in a luma.gl texture */
86
+ getCurrentTexture() {
87
+ return this.device._createTexture({
88
+ id: `${this.id}#color-texture`,
89
+ handle: this.gpuCanvasContext.getCurrentTexture()
90
+ });
91
+ }
92
+ /** We build render targets on demand (i.e. not when size changes but when about to render) */
93
+ _createDepthStencilAttachment() {
94
+ if (!this.depthStencilAttachment) {
95
+ this.depthStencilAttachment = this.device.createTexture({
96
+ id: `${this.id}#depth-stencil-texture`,
97
+ format: this.depthStencilFormat,
98
+ width: this.width,
99
+ height: this.height,
100
+ usage: GPUTextureUsage.RENDER_ATTACHMENT
101
+ });
102
+ }
103
+ return this.depthStencilAttachment;
70
104
  }
71
- return this.depthStencilAttachment;
72
- }
73
105
  }
74
- //# sourceMappingURL=webgpu-canvas-context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"webgpu-device.d.ts","sourceRoot":"","sources":["../../src/adapter/webgpu-device.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webgpu-device.d.ts","sourceRoot":"","sources":["../../src/adapter/webgpu-device.ts"],"names":[],"mappings":";AAGA,OAAO,KAAK,EACV,WAAW,EACX,UAAU,EACV,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,YAAY,EACZ,WAAW,EACX,OAAO,EACP,YAAY,EACZ,aAAa,EACb,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAEhB,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAC,MAAM,EAA0B,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAC,YAAY,EAAC,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAC,aAAa,EAAC,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAC,qBAAqB,EAAC,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAC,aAAa,EAAC,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAC,YAAY,EAAC,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAC,oBAAoB,EAAC,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAC,iBAAiB,EAAC,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAC,qBAAqB,EAAC,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAC,gBAAgB,EAAC,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAC,iBAAiB,EAAC,MAAM,iCAAiC,CAAC;AAElE,OAAO,EAAC,iBAAiB,EAAC,MAAM,iCAAiC,CAAC;AAElE,OAAO,EAAC,mBAAmB,EAAC,MAAM,yBAAyB,CAAC;AAG5D,mCAAmC;AACnC,qBAAa,YAAa,SAAQ,MAAM;IACtC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,WAAW,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAC,CAAC,CAAC;IAC/D,aAAa,EAAE,mBAAmB,GAAG,IAAI,CAAQ;IAEjD,cAAc,EAAE,iBAAiB,GAAG,IAAI,CAAQ;IAChD,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAQ;IAE3C,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,OAAO,CAAkB;IAEjC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAY;IAE/B,mCAAmC;IACnC,MAAM,CAAC,WAAW,IAAI,OAAO;WAIhB,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;gBAsClD,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW;IAuDnG,OAAO,IAAI,IAAI;IAIf,IAAI,IAAI,IAAI,UAAU,CAErB;IAED,QAAQ,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;IAE7B,IAAI,MAAM,IAAI,YAAY,CAEzB;IAED,wBAAwB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO;IAIxD,oCAAoC;IACpC,yBAAyB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO;IAIzD,oCAAoC;IACpC,yBAAyB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO;IAIzD,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,GAAG,eAAe,GAAG,YAAY;IAK9E,cAAc,CAAC,KAAK,EAAE,YAAY,GAAG,aAAa;IAIlD,qBAAqB,CAAC,KAAK,EAAE,oBAAoB,GAAG,qBAAqB;IAIzE,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,YAAY;IAI9C,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,aAAa;IAIjD,oBAAoB,CAAC,KAAK,EAAE,mBAAmB,GAAG,oBAAoB;IAItE,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,iBAAiB;IAI7D,qBAAqB,CAAC,KAAK,EAAE,oBAAoB,GAAG,qBAAqB;IAIzE,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,iBAAiB;IAM7D;;;OAGG;IACH,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,gBAAgB;IAKzD,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,GAAG,iBAAiB;IAS5D,uBAAuB,CAAC,KAAK,EAAE,sBAAsB,GAAG,iBAAiB;IAIzE,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,GAAG,mBAAmB;IAInE;;;;;OAKG;IACH,oBAAoB,IAAI,gBAAgB;IAUxC,MAAM,IAAI,IAAI;IAUd,YAAY;IAmCZ,0BAA0B,CAAC,OAAO,EAAE;QAClC,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,KAAK,GAAG,cAAc,GAAG,YAAY,CAAC;QAC/C,UAAU,CAAC,EAAE,YAAY,GAAG,MAAM,CAAC;QACnC,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAE7B,MAAM,EAAE,WAAW,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,eAAe,CAAC;QAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QAEjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,IAAI;CAyCT"}