@lightningjs/renderer 2.2.0 → 2.3.0

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 (134) hide show
  1. package/dist/src/common/IAnimationController.d.ts +1 -1
  2. package/dist/src/core/CoreNode.js +6 -5
  3. package/dist/src/core/CoreNode.js.map +1 -1
  4. package/dist/src/core/Stage.d.ts +1 -0
  5. package/dist/src/core/Stage.js +2 -1
  6. package/dist/src/core/Stage.js.map +1 -1
  7. package/dist/src/core/animations/CoreAnimationController.js +3 -2
  8. package/dist/src/core/animations/CoreAnimationController.js.map +1 -1
  9. package/dist/src/core/renderers/CoreRenderer.d.ts +1 -0
  10. package/dist/src/core/renderers/CoreRenderer.js.map +1 -1
  11. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +1 -1
  12. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +1 -1
  13. package/dist/src/core/renderers/webgl/WebGlCoreShader.js +0 -9
  14. package/dist/src/core/renderers/webgl/WebGlCoreShader.js.map +1 -1
  15. package/dist/src/core/utils.d.ts +1 -1
  16. package/dist/src/main-api/Inspector.js +9 -0
  17. package/dist/src/main-api/Inspector.js.map +1 -1
  18. package/dist/src/main-api/Renderer.d.ts +10 -0
  19. package/dist/src/main-api/Renderer.js +2 -0
  20. package/dist/src/main-api/Renderer.js.map +1 -1
  21. package/dist/src/main-api/RendererMain.js +1 -1
  22. package/dist/src/main-api/RendererMain.js.map +1 -1
  23. package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.js.map +1 -1
  24. package/dist/src/render-drivers/main/MainCoreDriver.js.map +1 -1
  25. package/dist/src/render-drivers/main/MainOnlyNode.js.map +1 -1
  26. package/dist/src/render-drivers/main/MainOnlyTextNode.js.map +1 -1
  27. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js.map +1 -1
  28. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.d.ts +8 -4
  29. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js +53 -24
  30. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js.map +1 -1
  31. package/dist/src/render-drivers/threadx/ThreadXMainNode.js.map +1 -1
  32. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js.map +1 -1
  33. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js +6 -0
  34. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js.map +1 -1
  35. package/dist/src/render-drivers/threadx/worker/renderer.js.map +1 -1
  36. package/dist/src/render-drivers/utils.js +6 -1
  37. package/dist/src/render-drivers/utils.js.map +1 -1
  38. package/dist/src/utils.d.ts +1 -1
  39. package/dist/src/utils.js +2 -2
  40. package/dist/src/utils.js.map +1 -1
  41. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  42. package/dist/tsconfig.tsbuildinfo +1 -0
  43. package/package.json +1 -1
  44. package/src/common/IAnimationController.ts +5 -1
  45. package/src/core/CoreNode.ts +7 -7
  46. package/src/core/Stage.ts +3 -0
  47. package/src/core/animations/CoreAnimationController.ts +3 -2
  48. package/src/core/renderers/CoreRenderer.ts +1 -0
  49. package/src/core/renderers/webgl/WebGlCoreRenderer.ts +5 -1
  50. package/src/core/renderers/webgl/WebGlCoreShader.ts +0 -11
  51. package/src/main-api/Inspector.ts +12 -0
  52. package/src/main-api/Renderer.ts +13 -0
  53. package/src/utils.ts +2 -1
  54. package/dist/src/core/Matrix2DContext.d.ts +0 -15
  55. package/dist/src/core/Matrix2DContext.js +0 -45
  56. package/dist/src/core/Matrix2DContext.js.map +0 -1
  57. package/dist/src/core/lib/SpatialHash.d.ts +0 -38
  58. package/dist/src/core/lib/SpatialHash.js +0 -93
  59. package/dist/src/core/lib/SpatialHash.js.map +0 -1
  60. package/dist/src/core/lib/glm/common.d.ts +0 -162
  61. package/dist/src/core/lib/glm/common.js +0 -81
  62. package/dist/src/core/lib/glm/common.js.map +0 -1
  63. package/dist/src/core/lib/glm/index.d.ts +0 -11
  64. package/dist/src/core/lib/glm/index.js +0 -30
  65. package/dist/src/core/lib/glm/index.js.map +0 -1
  66. package/dist/src/core/lib/glm/mat2.d.ts +0 -219
  67. package/dist/src/core/lib/glm/mat2.js +0 -396
  68. package/dist/src/core/lib/glm/mat2.js.map +0 -1
  69. package/dist/src/core/lib/glm/mat2d.d.ts +0 -237
  70. package/dist/src/core/lib/glm/mat2d.js +0 -442
  71. package/dist/src/core/lib/glm/mat2d.js.map +0 -1
  72. package/dist/src/core/lib/glm/mat3.d.ts +0 -283
  73. package/dist/src/core/lib/glm/mat3.js +0 -680
  74. package/dist/src/core/lib/glm/mat3.js.map +0 -1
  75. package/dist/src/core/lib/glm/mat4.d.ts +0 -550
  76. package/dist/src/core/lib/glm/mat4.js +0 -1802
  77. package/dist/src/core/lib/glm/mat4.js.map +0 -1
  78. package/dist/src/core/lib/glm/quat.d.ts +0 -363
  79. package/dist/src/core/lib/glm/quat.js +0 -693
  80. package/dist/src/core/lib/glm/quat.js.map +0 -1
  81. package/dist/src/core/lib/glm/quat2.d.ts +0 -356
  82. package/dist/src/core/lib/glm/quat2.js +0 -754
  83. package/dist/src/core/lib/glm/quat2.js.map +0 -1
  84. package/dist/src/core/lib/glm/vec2.d.ts +0 -365
  85. package/dist/src/core/lib/glm/vec2.js +0 -569
  86. package/dist/src/core/lib/glm/vec2.js.map +0 -1
  87. package/dist/src/core/lib/glm/vec3.d.ts +0 -406
  88. package/dist/src/core/lib/glm/vec3.js +0 -720
  89. package/dist/src/core/lib/glm/vec3.js.map +0 -1
  90. package/dist/src/core/lib/glm/vec4.d.ts +0 -330
  91. package/dist/src/core/lib/glm/vec4.js +0 -608
  92. package/dist/src/core/lib/glm/vec4.js.map +0 -1
  93. package/dist/src/core/lib/renderToTexture.d.ts +0 -1
  94. package/dist/src/core/lib/renderToTexture.js +0 -2
  95. package/dist/src/core/lib/renderToTexture.js.map +0 -1
  96. package/dist/src/core/lib/textcompression-utils.d.ts +0 -1
  97. package/dist/src/core/lib/textcompression-utils.js +0 -2
  98. package/dist/src/core/lib/textcompression-utils.js.map +0 -1
  99. package/dist/src/core/lib/txcompression-utils.d.ts +0 -1
  100. package/dist/src/core/lib/txcompression-utils.js +0 -2
  101. package/dist/src/core/lib/txcompression-utils.js.map +0 -1
  102. package/dist/src/core/renderers/webgl/WebGlRenderTexture.d.ts +0 -29
  103. package/dist/src/core/renderers/webgl/WebGlRenderTexture.js +0 -86
  104. package/dist/src/core/renderers/webgl/WebGlRenderTexture.js.map +0 -1
  105. package/dist/src/core/renderers/webgl/shaders/DistortShader.d.ts +0 -44
  106. package/dist/src/core/renderers/webgl/shaders/DistortShader.js +0 -172
  107. package/dist/src/core/renderers/webgl/shaders/DistortShader.js.map +0 -1
  108. package/dist/src/core/renderers/webgl/shaders/RefractionShader.d.ts +0 -78
  109. package/dist/src/core/renderers/webgl/shaders/RefractionShader.js +0 -172
  110. package/dist/src/core/renderers/webgl/shaders/RefractionShader.js.map +0 -1
  111. package/dist/src/core/scene/Scene.d.ts +0 -59
  112. package/dist/src/core/scene/Scene.js +0 -106
  113. package/dist/src/core/scene/Scene.js.map +0 -1
  114. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.d.ts +0 -20
  115. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js +0 -55
  116. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js.map +0 -1
  117. package/dist/src/main-api/IRenderDriver.d.ts +0 -20
  118. package/dist/src/main-api/IRenderDriver.js +0 -20
  119. package/dist/src/main-api/IRenderDriver.js.map +0 -1
  120. package/dist/src/main-api/IShaderController.d.ts +0 -14
  121. package/dist/src/main-api/IShaderController.js +0 -30
  122. package/dist/src/main-api/IShaderController.js.map +0 -1
  123. package/dist/src/render-drivers/main/MainOnlyShaderController.d.ts +0 -6
  124. package/dist/src/render-drivers/main/MainOnlyShaderController.js +0 -15
  125. package/dist/src/render-drivers/main/MainOnlyShaderController.js.map +0 -1
  126. package/dist/src/render-drivers/main/MainRenderDriver.d.ts +0 -17
  127. package/dist/src/render-drivers/main/MainRenderDriver.js +0 -88
  128. package/dist/src/render-drivers/main/MainRenderDriver.js.map +0 -1
  129. package/dist/src/render-drivers/threadx/ThreadXMainShaderController.d.ts +0 -6
  130. package/dist/src/render-drivers/threadx/ThreadXMainShaderController.js +0 -15
  131. package/dist/src/render-drivers/threadx/ThreadXMainShaderController.js.map +0 -1
  132. package/dist/src/render-drivers/threadx/ThreadXRenderDriver.d.ts +0 -21
  133. package/dist/src/render-drivers/threadx/ThreadXRenderDriver.js +0 -198
  134. package/dist/src/render-drivers/threadx/ThreadXRenderDriver.js.map +0 -1
@@ -1,198 +0,0 @@
1
- /*
2
- * If not stated otherwise in this file or this component's LICENSE file the
3
- * following copyright and licenses apply:
4
- *
5
- * Copyright 2023 Comcast Cable Communications Management, LLC.
6
- *
7
- * Licensed under the Apache License, Version 2.0 (the License);
8
- * you may not use this file except in compliance with the License.
9
- * You may obtain a copy of the License at
10
- *
11
- * http://www.apache.org/licenses/LICENSE-2.0
12
- *
13
- * Unless required by applicable law or agreed to in writing, software
14
- * distributed under the License is distributed on an "AS IS" BASIS,
15
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- * See the License for the specific language governing permissions and
17
- * limitations under the License.
18
- */
19
- import { ThreadX, BufferStruct } from '@lightningjs/threadx';
20
- import { NodeStruct } from './NodeStruct.js';
21
- import { ThreadXMainNode } from './ThreadXMainNode.js';
22
- import { assertTruthy } from '../../utils.js';
23
- import { TextNodeStruct, } from './TextNodeStruct.js';
24
- import { ThreadXMainTextNode } from './ThreadXMainTextNode.js';
25
- export class ThreadXRenderDriver {
26
- settings;
27
- threadx;
28
- rendererMain = null;
29
- root = null;
30
- constructor(settings) {
31
- this.settings = settings;
32
- this.threadx = ThreadX.init({
33
- workerId: 1,
34
- workerName: 'main',
35
- sharedObjectFactory: (buffer) => {
36
- const typeId = BufferStruct.extractTypeId(buffer);
37
- const rendererMain = this.rendererMain;
38
- assertTruthy(rendererMain);
39
- if (typeId === NodeStruct.typeId) {
40
- const nodeStruct = new NodeStruct(buffer);
41
- return nodeStruct.lock(() => {
42
- return new ThreadXMainNode(rendererMain, nodeStruct);
43
- });
44
- }
45
- else if (typeId === TextNodeStruct.typeId) {
46
- const nodeStruct = new TextNodeStruct(buffer);
47
- return nodeStruct.lock(() => {
48
- return new ThreadXMainTextNode(rendererMain, nodeStruct);
49
- });
50
- }
51
- return null;
52
- },
53
- });
54
- this.threadx.registerWorker('renderer', new Worker(this.settings.coreWorkerUrl, { type: 'module' }));
55
- }
56
- async init(rendererMain, rendererSettings, canvas) {
57
- this.rendererMain = rendererMain;
58
- const offscreenCanvas = canvas.transferControlToOffscreen();
59
- const rootNodeId = (await this.threadx.sendMessageAsync('renderer', {
60
- type: 'init',
61
- canvas: offscreenCanvas,
62
- appWidth: rendererSettings.appWidth,
63
- appHeight: rendererSettings.appHeight,
64
- deviceLogicalPixelRatio: rendererSettings.deviceLogicalPixelRatio,
65
- devicePhysicalPixelRatio: rendererSettings.devicePhysicalPixelRatio,
66
- clearColor: rendererSettings.clearColor,
67
- coreExtensionModule: rendererSettings.coreExtensionModule,
68
- }, [offscreenCanvas]));
69
- // The Render worker shares the root node with this worker during the
70
- // 'init' call above. That call returns the ID of the root node, which
71
- // we can use to retrieve it from the shared object store.
72
- const rootNode = this.threadx.getSharedObjectById(rootNodeId);
73
- assertTruthy(rootNode instanceof ThreadXMainNode, 'Unexpected root node type');
74
- this.root = rootNode;
75
- }
76
- getRootNode() {
77
- assertTruthy(this.root, 'Driver not initialized');
78
- return this.root;
79
- }
80
- createNode(props) {
81
- const rendererMain = this.rendererMain;
82
- assertTruthy(rendererMain);
83
- const bufferStruct = new NodeStruct();
84
- Object.assign(bufferStruct, {
85
- // Node specific properties
86
- x: props.x,
87
- y: props.y,
88
- width: props.width,
89
- height: props.height,
90
- parentId: props.parent ? props.parent.id : 0,
91
- clipping: props.clipping,
92
- color: props.color,
93
- colorTop: props.colorTop,
94
- colorRight: props.colorBottom,
95
- colorBottom: props.colorBottom,
96
- colorLeft: props.colorLeft,
97
- colorTl: props.colorTl,
98
- colorTr: props.colorTr,
99
- colorBl: props.colorBl,
100
- colorBr: props.colorBr,
101
- alpha: props.alpha,
102
- zIndex: props.zIndex,
103
- zIndexLocked: props.zIndexLocked,
104
- scaleX: props.scaleX,
105
- scaleY: props.scaleY,
106
- mount: props.mount,
107
- mountX: props.mountX,
108
- mountY: props.mountY,
109
- pivot: props.pivot,
110
- pivotX: props.pivotX,
111
- pivotY: props.pivotY,
112
- rotation: props.rotation,
113
- });
114
- const node = new ThreadXMainNode(rendererMain, bufferStruct);
115
- node.once('beforeDestroy', this.onBeforeDestroyNode.bind(this, node));
116
- this.threadx.shareObjects('renderer', [node]).catch(console.error);
117
- node.shader = props.shader ?? null;
118
- node.texture = props.texture ?? null;
119
- node.src = props.src ?? '';
120
- this.onCreateNode(node);
121
- return node;
122
- }
123
- createTextNode(props) {
124
- const rendererMain = this.rendererMain;
125
- assertTruthy(rendererMain);
126
- const bufferStruct = new TextNodeStruct();
127
- Object.assign(bufferStruct, {
128
- // Node specific properties
129
- x: props.x,
130
- y: props.y,
131
- width: props.width,
132
- height: props.height,
133
- parentId: props.parent ? props.parent.id : 0,
134
- clipping: props.clipping,
135
- color: props.color,
136
- colorTop: props.colorTop,
137
- colorRight: props.colorBottom,
138
- colorBottom: props.colorBottom,
139
- colorLeft: props.colorLeft,
140
- colorTl: props.colorTl,
141
- colorTr: props.colorTr,
142
- colorBl: props.colorBl,
143
- colorBr: props.colorBr,
144
- alpha: props.alpha,
145
- zIndex: props.zIndex,
146
- zIndexLocked: props.zIndexLocked,
147
- scaleX: props.scaleX,
148
- scaleY: props.scaleY,
149
- mount: props.mount,
150
- mountX: props.mountX,
151
- mountY: props.mountY,
152
- pivot: props.pivot,
153
- pivotX: props.pivotX,
154
- pivotY: props.pivotY,
155
- rotation: props.rotation,
156
- // Text specific properties
157
- text: props.text,
158
- textRendererOverride: props.textRendererOverride,
159
- fontSize: props.fontSize,
160
- fontFamily: props.fontFamily,
161
- fontWeight: props.fontWeight,
162
- fontStretch: props.fontStretch,
163
- fontStyle: props.fontStyle,
164
- contain: props.contain,
165
- letterSpacing: props.letterSpacing,
166
- offsetY: props.offsetY,
167
- textAlign: props.textAlign,
168
- scrollable: props.scrollable,
169
- scrollY: props.scrollY,
170
- });
171
- const node = new ThreadXMainTextNode(rendererMain, bufferStruct);
172
- node.once('beforeDestroy', this.onBeforeDestroyNode.bind(this, node));
173
- this.threadx.shareObjects('renderer', [node]).catch(console.error);
174
- node.shader = props.shader ?? null;
175
- node.texture = props.texture ?? null;
176
- node.src = props.src ?? '';
177
- node.debug = props.debug ?? {};
178
- this.onCreateNode(node);
179
- return node;
180
- }
181
- // TODO: Remove?
182
- destroyNode(node) {
183
- node.destroy();
184
- }
185
- releaseTexture(textureDescId) {
186
- this.threadx.sendMessage('renderer', {
187
- type: 'releaseTexture',
188
- textureDescId,
189
- });
190
- }
191
- onCreateNode(node) {
192
- return;
193
- }
194
- onBeforeDestroyNode(node) {
195
- return;
196
- }
197
- }
198
- //# sourceMappingURL=ThreadXRenderDriver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ThreadXRenderDriver.js","sourceRoot":"","sources":["../../../../src/render-drivers/threadx/ThreadXRenderDriver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAO7D,OAAO,EAAE,UAAU,EAAgC,MAAM,iBAAiB,CAAC;AAE3E,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAS9C,OAAO,EACL,cAAc,GAEf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAM/D,MAAM,OAAO,mBAAmB;IACtB,QAAQ,CAA0B;IAClC,OAAO,CAAU;IACjB,YAAY,GAAwB,IAAI,CAAC;IACzC,IAAI,GAAiB,IAAI,CAAC;IAElC,YAAY,QAAiC;QAC3C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;YAC1B,QAAQ,EAAE,CAAC;YACX,UAAU,EAAE,MAAM;YAClB,mBAAmB,EAAE,CAAC,MAAM,EAAE,EAAE;gBAC9B,MAAM,MAAM,GAAG,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;gBAClD,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;gBACvC,YAAY,CAAC,YAAY,CAAC,CAAC;gBAC3B,IAAI,MAAM,KAAK,UAAU,CAAC,MAAM,EAAE;oBAChC,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;oBAC1C,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE;wBAC1B,OAAO,IAAI,eAAe,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;oBACvD,CAAC,CAAC,CAAC;iBACJ;qBAAM,IAAI,MAAM,KAAK,cAAc,CAAC,MAAM,EAAE;oBAC3C,MAAM,UAAU,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;oBAC9C,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE;wBAC1B,OAAO,IAAI,mBAAmB,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;oBAC3D,CAAC,CAAC,CAAC;iBACJ;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;SACF,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,cAAc,CACzB,UAAU,EACV,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAC5D,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI,CACR,YAA0B,EAC1B,gBAAgD,EAChD,MAAyB;QAEzB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,MAAM,eAAe,GAAG,MAAM,CAAC,0BAA0B,EAAE,CAAC;QAC5D,MAAM,UAAU,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CACrD,UAAU,EACV;YACE,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,eAAe;YACvB,QAAQ,EAAE,gBAAgB,CAAC,QAAQ;YACnC,SAAS,EAAE,gBAAgB,CAAC,SAAS;YACrC,uBAAuB,EAAE,gBAAgB,CAAC,uBAAuB;YACjE,wBAAwB,EAAE,gBAAgB,CAAC,wBAAwB;YACnE,UAAU,EAAE,gBAAgB,CAAC,UAAU;YACvC,mBAAmB,EAAE,gBAAgB,CAAC,mBAAmB;SACrB,EACtC,CAAC,eAAe,CAAC,CAClB,CAAW,CAAC;QACb,qEAAqE;QACrE,sEAAsE;QACtE,0DAA0D;QAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAC9D,YAAY,CACV,QAAQ,YAAY,eAAe,EACnC,2BAA2B,CAC5B,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;IACvB,CAAC;IAED,WAAW;QACT,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,wBAAwB,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,UAAU,CAAC,KAAyB;QAClC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACvC,YAAY,CAAC,YAAY,CAAC,CAAC;QAC3B,MAAM,YAAY,GAAG,IAAI,UAAU,EAAE,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE;YAC1B,2BAA2B;YAC3B,CAAC,EAAE,KAAK,CAAC,CAAC;YACV,CAAC,EAAE,KAAK,CAAC,CAAC;YACV,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC5C,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,UAAU,EAAE,KAAK,CAAC,WAAW;YAC7B,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;SACS,CAAC,CAAC;QAErC,MAAM,IAAI,GAAG,IAAI,eAAe,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QAC7D,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QACtE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC;QACrC,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC;QAC3B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc,CAAC,KAA6B;QAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACvC,YAAY,CAAC,YAAY,CAAC,CAAC;QAC3B,MAAM,YAAY,GAAG,IAAI,cAAc,EAAE,CAAC;QAE1C,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE;YAC1B,2BAA2B;YAC3B,CAAC,EAAE,KAAK,CAAC,CAAC;YACV,CAAC,EAAE,KAAK,CAAC,CAAC;YACV,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC5C,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,UAAU,EAAE,KAAK,CAAC,WAAW;YAC7B,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YAExB,2BAA2B;YAC3B,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,oBAAoB,EAAE,KAAK,CAAC,oBAAoB;YAChD,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;SACe,CAAC,CAAC;QAEzC,MAAM,IAAI,GAAG,IAAI,mBAAmB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QACjE,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QACtE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAEnE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC;QACrC,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;QAE/B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB;IAChB,WAAW,CAAC,IAAW;QACrB,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED,cAAc,CAAC,aAAqB;QAClC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,EAAE;YACnC,IAAI,EAAE,gBAAgB;YACtB,aAAa;SACiC,CAAC,CAAC;IACpD,CAAC;IAED,YAAY,CAAC,IAAW;QACtB,OAAO;IACT,CAAC;IAED,mBAAmB,CAAC,IAAW;QAC7B,OAAO;IACT,CAAC;CACF"}